@ensuro/core 1.2.5 → 2.0.0-beta1
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/README.md +44 -17
- package/build/contracts/EToken.sol/EToken.json +141 -177
- package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +112 -315
- package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +34 -2
- package/build/contracts/Policy.sol/Policy.json +2 -2
- package/build/contracts/PolicyNFT.sol/PolicyNFT.json +16 -3
- package/build/contracts/PolicyPool.sol/PolicyPool.json +105 -351
- package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +32 -0
- package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +77 -72
- package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +761 -0
- package/build/contracts/{BaseAssetManager.sol/BaseAssetManager.json → Reserve.sol/Reserve.json} +23 -191
- package/build/contracts/RiskModule.sol/RiskModule.json +94 -302
- package/build/contracts/TimeScaled.sol/TimeScaled.json +24 -0
- package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +142 -325
- package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +15 -2
- package/build/contracts/dependencies/ERC1967Proxy.sol/ERC1967Proxy.json +64 -0
- package/build/{interfaces/IExchange.sol/IExchange.json → contracts/dependencies/IERC20Metadata.sol/IERC20Metadata.json} +83 -79
- package/build/{interfaces → contracts/interfaces}/IEToken.sol/IEToken.json +32 -97
- package/build/{interfaces → contracts/interfaces}/ILPWhitelist.sol/ILPWhitelist.json +1 -1
- package/build/{interfaces → contracts/interfaces}/IPolicyHolder.sol/IPolicyHolder.json +1 -1
- package/build/{interfaces → contracts/interfaces}/IPolicyNFT.sol/IPolicyNFT.json +1 -1
- package/build/{interfaces → contracts/interfaces}/IPolicyPool.sol/IPolicyPool.json +121 -108
- package/build/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +1 -1
- package/build/{interfaces → contracts/interfaces}/IPolicyPoolConfig.sol/IPolicyPoolConfig.json +20 -36
- package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +302 -0
- package/build/{interfaces → contracts/interfaces}/IRiskModule.sol/IRiskModule.json +58 -34
- package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
- package/build/{interfaces/IInsolvencyHook.sol/IInsolvencyHook.json → contracts/mocks/IMintableERC20.sol/IMintableERC20.json} +13 -8
- package/build/contracts/mocks/LinkTokenMock.sol/LinkTokenMock.json +370 -0
- package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +202 -0
- package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +35 -0
- package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +603 -0
- package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
- package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
- package/build/contracts/mocks/TestCurrencyUUPS.sol/TestCurrencyUUPS.json +353 -0
- package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +16 -3
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +16 -3
- package/contracts/EToken.sol +188 -273
- package/contracts/FlightDelayRiskModule.sol +30 -21
- package/contracts/LPManualWhitelist.sol +3 -3
- package/contracts/Policy.sol +48 -44
- package/contracts/PolicyNFT.sol +2 -2
- package/contracts/PolicyPool.sol +114 -467
- package/contracts/PolicyPoolComponent.sol +14 -3
- package/contracts/PolicyPoolConfig.sol +30 -73
- package/contracts/PremiumsAccount.sol +274 -0
- package/contracts/Reserve.sol +34 -0
- package/contracts/RiskModule.sol +216 -164
- package/contracts/TimeScaled.sol +134 -0
- package/contracts/TrustfulRiskModule.sol +23 -21
- package/contracts/dependencies/ERC1967Proxy.sol +19 -0
- package/contracts/dependencies/IERC20Metadata.sol +19 -0
- package/contracts/interfaces/IEToken.sol +172 -0
- package/{interfaces → contracts/interfaces}/ILPWhitelist.sol +0 -0
- package/{interfaces → contracts/interfaces}/IPolicyHolder.sol +0 -0
- package/{interfaces → contracts/interfaces}/IPolicyNFT.sol +0 -0
- package/contracts/interfaces/IPolicyPool.sol +138 -0
- package/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol +0 -0
- package/{interfaces → contracts/interfaces}/IPolicyPoolConfig.sol +31 -20
- package/contracts/interfaces/IPremiumsAccount.sol +71 -0
- package/contracts/interfaces/IRiskModule.sol +60 -0
- package/contracts/mocks/ForwardProxy.sol +66 -0
- package/contracts/mocks/IMintableERC20.sol +13 -0
- package/contracts/mocks/LinkTokenMock.sol +30 -0
- package/contracts/mocks/PolicyHolderMock.sol +68 -0
- package/contracts/mocks/PolicyPoolComponentMock.sol +17 -0
- package/contracts/mocks/PolicyPoolMock.sol +122 -0
- package/contracts/mocks/TestCurrency.sol +35 -0
- package/contracts/mocks/TestNFT.sol +23 -0
- package/contracts/upgraded/PolicyNFTv1.sol +1 -1
- package/js/test-utils.js +278 -0
- package/package.json +2 -2
- package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +0 -723
- package/build/contracts/DataTypes.sol/DataTypes.json +0 -10
- package/build/contracts/Exchange.sol/Exchange.json +0 -546
- package/build/contracts/extras/IPriceRiskModule.sol/IPriceRiskModule.json +0 -253
- package/build/contracts/extras/PriceRiskModule.sol/PriceRiskModule.json +0 -1036
- package/build/interfaces/IAssetManager.sol/IAssetManager.json +0 -31
- package/build/interfaces/IExchange.sol/IPriceOracle.json +0 -30
- package/contracts/AaveAssetManager.sol +0 -298
- package/contracts/BaseAssetManager.sol +0 -301
- package/contracts/DataTypes.sol +0 -287
- package/contracts/Exchange.sol +0 -173
- package/contracts/extras/IPriceRiskModule.sol +0 -41
- package/contracts/extras/PriceRiskModule.sol +0 -243
- package/interfaces/IAssetManager.sol +0 -23
- package/interfaces/IEToken.sol +0 -48
- package/interfaces/IExchange.sol +0 -59
- package/interfaces/IInsolvencyHook.sol +0 -27
- package/interfaces/IPolicyPool.sol +0 -44
- package/interfaces/IRiskModule.sol +0 -29
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
"indexed": false,
|
|
70
|
-
"internalType": "enum
|
|
70
|
+
"internalType": "enum PolicyPool.ETokenStatus",
|
|
71
71
|
"name": "newStatus",
|
|
72
72
|
"type": "uint8"
|
|
73
73
|
}
|
|
@@ -75,6 +75,19 @@
|
|
|
75
75
|
"name": "ETokenStatusChanged",
|
|
76
76
|
"type": "event"
|
|
77
77
|
},
|
|
78
|
+
{
|
|
79
|
+
"anonymous": false,
|
|
80
|
+
"inputs": [
|
|
81
|
+
{
|
|
82
|
+
"indexed": false,
|
|
83
|
+
"internalType": "uint8",
|
|
84
|
+
"name": "version",
|
|
85
|
+
"type": "uint8"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"name": "Initialized",
|
|
89
|
+
"type": "event"
|
|
90
|
+
},
|
|
78
91
|
{
|
|
79
92
|
"anonymous": false,
|
|
80
93
|
"inputs": [
|
|
@@ -103,7 +116,12 @@
|
|
|
103
116
|
},
|
|
104
117
|
{
|
|
105
118
|
"internalType": "uint256",
|
|
106
|
-
"name": "
|
|
119
|
+
"name": "jrScr",
|
|
120
|
+
"type": "uint256"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"internalType": "uint256",
|
|
124
|
+
"name": "srScr",
|
|
107
125
|
"type": "uint256"
|
|
108
126
|
},
|
|
109
127
|
{
|
|
@@ -118,17 +136,22 @@
|
|
|
118
136
|
},
|
|
119
137
|
{
|
|
120
138
|
"internalType": "uint256",
|
|
121
|
-
"name": "
|
|
139
|
+
"name": "ensuroCommission",
|
|
140
|
+
"type": "uint256"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"internalType": "uint256",
|
|
144
|
+
"name": "partnerCommission",
|
|
122
145
|
"type": "uint256"
|
|
123
146
|
},
|
|
124
147
|
{
|
|
125
148
|
"internalType": "uint256",
|
|
126
|
-
"name": "
|
|
149
|
+
"name": "jrCoc",
|
|
127
150
|
"type": "uint256"
|
|
128
151
|
},
|
|
129
152
|
{
|
|
130
153
|
"internalType": "uint256",
|
|
131
|
-
"name": "
|
|
154
|
+
"name": "srCoc",
|
|
132
155
|
"type": "uint256"
|
|
133
156
|
},
|
|
134
157
|
{
|
|
@@ -183,9 +206,15 @@
|
|
|
183
206
|
"internalType": "uint256",
|
|
184
207
|
"name": "policyId",
|
|
185
208
|
"type": "uint256"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"indexed": false,
|
|
212
|
+
"internalType": "uint256",
|
|
213
|
+
"name": "payout",
|
|
214
|
+
"type": "uint256"
|
|
186
215
|
}
|
|
187
216
|
],
|
|
188
|
-
"name": "
|
|
217
|
+
"name": "PolicyResolved",
|
|
189
218
|
"type": "event"
|
|
190
219
|
},
|
|
191
220
|
{
|
|
@@ -193,24 +222,18 @@
|
|
|
193
222
|
"inputs": [
|
|
194
223
|
{
|
|
195
224
|
"indexed": true,
|
|
196
|
-
"internalType": "contract
|
|
197
|
-
"name": "
|
|
225
|
+
"internalType": "contract IPremiumsAccount",
|
|
226
|
+
"name": "premiumsAccount",
|
|
198
227
|
"type": "address"
|
|
199
228
|
},
|
|
200
|
-
{
|
|
201
|
-
"indexed": true,
|
|
202
|
-
"internalType": "uint256",
|
|
203
|
-
"name": "policyId",
|
|
204
|
-
"type": "uint256"
|
|
205
|
-
},
|
|
206
229
|
{
|
|
207
230
|
"indexed": false,
|
|
208
|
-
"internalType": "
|
|
209
|
-
"name": "
|
|
210
|
-
"type": "
|
|
231
|
+
"internalType": "enum PolicyPool.ETokenStatus",
|
|
232
|
+
"name": "newStatus",
|
|
233
|
+
"type": "uint8"
|
|
211
234
|
}
|
|
212
235
|
],
|
|
213
|
-
"name": "
|
|
236
|
+
"name": "PremiumsAccountStatusChanged",
|
|
214
237
|
"type": "event"
|
|
215
238
|
},
|
|
216
239
|
{
|
|
@@ -239,25 +262,6 @@
|
|
|
239
262
|
"name": "Upgraded",
|
|
240
263
|
"type": "event"
|
|
241
264
|
},
|
|
242
|
-
{
|
|
243
|
-
"anonymous": false,
|
|
244
|
-
"inputs": [
|
|
245
|
-
{
|
|
246
|
-
"indexed": false,
|
|
247
|
-
"internalType": "bool",
|
|
248
|
-
"name": "moneyIn",
|
|
249
|
-
"type": "bool"
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
"indexed": false,
|
|
253
|
-
"internalType": "uint256",
|
|
254
|
-
"name": "value",
|
|
255
|
-
"type": "uint256"
|
|
256
|
-
}
|
|
257
|
-
],
|
|
258
|
-
"name": "WonPremiumsInOut",
|
|
259
|
-
"type": "event"
|
|
260
|
-
},
|
|
261
265
|
{
|
|
262
266
|
"inputs": [],
|
|
263
267
|
"name": "GUARDIAN_ROLE",
|
|
@@ -310,58 +314,6 @@
|
|
|
310
314
|
"stateMutability": "view",
|
|
311
315
|
"type": "function"
|
|
312
316
|
},
|
|
313
|
-
{
|
|
314
|
-
"inputs": [],
|
|
315
|
-
"name": "MAX_ETOKENS",
|
|
316
|
-
"outputs": [
|
|
317
|
-
{
|
|
318
|
-
"internalType": "uint256",
|
|
319
|
-
"name": "",
|
|
320
|
-
"type": "uint256"
|
|
321
|
-
}
|
|
322
|
-
],
|
|
323
|
-
"stateMutability": "view",
|
|
324
|
-
"type": "function"
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"inputs": [],
|
|
328
|
-
"name": "NEGLIGIBLE_AMOUNT",
|
|
329
|
-
"outputs": [
|
|
330
|
-
{
|
|
331
|
-
"internalType": "uint256",
|
|
332
|
-
"name": "",
|
|
333
|
-
"type": "uint256"
|
|
334
|
-
}
|
|
335
|
-
],
|
|
336
|
-
"stateMutability": "view",
|
|
337
|
-
"type": "function"
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
"inputs": [],
|
|
341
|
-
"name": "WITHDRAW_WON_PREMIUMS_ROLE",
|
|
342
|
-
"outputs": [
|
|
343
|
-
{
|
|
344
|
-
"internalType": "bytes32",
|
|
345
|
-
"name": "",
|
|
346
|
-
"type": "bytes32"
|
|
347
|
-
}
|
|
348
|
-
],
|
|
349
|
-
"stateMutability": "view",
|
|
350
|
-
"type": "function"
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
"inputs": [],
|
|
354
|
-
"name": "activePurePremiums",
|
|
355
|
-
"outputs": [
|
|
356
|
-
{
|
|
357
|
-
"internalType": "uint256",
|
|
358
|
-
"name": "",
|
|
359
|
-
"type": "uint256"
|
|
360
|
-
}
|
|
361
|
-
],
|
|
362
|
-
"stateMutability": "view",
|
|
363
|
-
"type": "function"
|
|
364
|
-
},
|
|
365
317
|
{
|
|
366
318
|
"inputs": [
|
|
367
319
|
{
|
|
@@ -378,34 +330,16 @@
|
|
|
378
330
|
{
|
|
379
331
|
"inputs": [
|
|
380
332
|
{
|
|
381
|
-
"internalType": "
|
|
382
|
-
"name": "
|
|
383
|
-
"type": "
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
"internalType": "bool",
|
|
387
|
-
"name": "positive",
|
|
388
|
-
"type": "bool"
|
|
333
|
+
"internalType": "contract IPremiumsAccount",
|
|
334
|
+
"name": "pa",
|
|
335
|
+
"type": "address"
|
|
389
336
|
}
|
|
390
337
|
],
|
|
391
|
-
"name": "
|
|
338
|
+
"name": "addPremiumsAccount",
|
|
392
339
|
"outputs": [],
|
|
393
340
|
"stateMutability": "nonpayable",
|
|
394
341
|
"type": "function"
|
|
395
342
|
},
|
|
396
|
-
{
|
|
397
|
-
"inputs": [],
|
|
398
|
-
"name": "borrowedActivePP",
|
|
399
|
-
"outputs": [
|
|
400
|
-
{
|
|
401
|
-
"internalType": "uint256",
|
|
402
|
-
"name": "",
|
|
403
|
-
"type": "uint256"
|
|
404
|
-
}
|
|
405
|
-
],
|
|
406
|
-
"stateMutability": "view",
|
|
407
|
-
"type": "function"
|
|
408
|
-
},
|
|
409
343
|
{
|
|
410
344
|
"inputs": [
|
|
411
345
|
{
|
|
@@ -414,7 +348,7 @@
|
|
|
414
348
|
"type": "address"
|
|
415
349
|
},
|
|
416
350
|
{
|
|
417
|
-
"internalType": "enum
|
|
351
|
+
"internalType": "enum PolicyPool.ETokenStatus",
|
|
418
352
|
"name": "newStatus",
|
|
419
353
|
"type": "uint8"
|
|
420
354
|
}
|
|
@@ -489,7 +423,12 @@
|
|
|
489
423
|
},
|
|
490
424
|
{
|
|
491
425
|
"internalType": "uint256",
|
|
492
|
-
"name": "
|
|
426
|
+
"name": "jrScr",
|
|
427
|
+
"type": "uint256"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"internalType": "uint256",
|
|
431
|
+
"name": "srScr",
|
|
493
432
|
"type": "uint256"
|
|
494
433
|
},
|
|
495
434
|
{
|
|
@@ -504,17 +443,22 @@
|
|
|
504
443
|
},
|
|
505
444
|
{
|
|
506
445
|
"internalType": "uint256",
|
|
507
|
-
"name": "
|
|
446
|
+
"name": "ensuroCommission",
|
|
508
447
|
"type": "uint256"
|
|
509
448
|
},
|
|
510
449
|
{
|
|
511
450
|
"internalType": "uint256",
|
|
512
|
-
"name": "
|
|
451
|
+
"name": "partnerCommission",
|
|
513
452
|
"type": "uint256"
|
|
514
453
|
},
|
|
515
454
|
{
|
|
516
455
|
"internalType": "uint256",
|
|
517
|
-
"name": "
|
|
456
|
+
"name": "jrCoc",
|
|
457
|
+
"type": "uint256"
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
"internalType": "uint256",
|
|
461
|
+
"name": "srCoc",
|
|
518
462
|
"type": "uint256"
|
|
519
463
|
},
|
|
520
464
|
{
|
|
@@ -543,38 +487,6 @@
|
|
|
543
487
|
"stateMutability": "nonpayable",
|
|
544
488
|
"type": "function"
|
|
545
489
|
},
|
|
546
|
-
{
|
|
547
|
-
"inputs": [
|
|
548
|
-
{
|
|
549
|
-
"internalType": "uint256",
|
|
550
|
-
"name": "index",
|
|
551
|
-
"type": "uint256"
|
|
552
|
-
}
|
|
553
|
-
],
|
|
554
|
-
"name": "getETokenAt",
|
|
555
|
-
"outputs": [
|
|
556
|
-
{
|
|
557
|
-
"internalType": "contract IEToken",
|
|
558
|
-
"name": "",
|
|
559
|
-
"type": "address"
|
|
560
|
-
}
|
|
561
|
-
],
|
|
562
|
-
"stateMutability": "view",
|
|
563
|
-
"type": "function"
|
|
564
|
-
},
|
|
565
|
-
{
|
|
566
|
-
"inputs": [],
|
|
567
|
-
"name": "getETokenCount",
|
|
568
|
-
"outputs": [
|
|
569
|
-
{
|
|
570
|
-
"internalType": "uint256",
|
|
571
|
-
"name": "",
|
|
572
|
-
"type": "uint256"
|
|
573
|
-
}
|
|
574
|
-
],
|
|
575
|
-
"stateMutability": "view",
|
|
576
|
-
"type": "function"
|
|
577
|
-
},
|
|
578
490
|
{
|
|
579
491
|
"inputs": [
|
|
580
492
|
{
|
|
@@ -586,7 +498,7 @@
|
|
|
586
498
|
"name": "getETokenStatus",
|
|
587
499
|
"outputs": [
|
|
588
500
|
{
|
|
589
|
-
"internalType": "enum
|
|
501
|
+
"internalType": "enum PolicyPool.ETokenStatus",
|
|
590
502
|
"name": "",
|
|
591
503
|
"type": "uint8"
|
|
592
504
|
}
|
|
@@ -594,91 +506,6 @@
|
|
|
594
506
|
"stateMutability": "view",
|
|
595
507
|
"type": "function"
|
|
596
508
|
},
|
|
597
|
-
{
|
|
598
|
-
"inputs": [],
|
|
599
|
-
"name": "getInvestable",
|
|
600
|
-
"outputs": [
|
|
601
|
-
{
|
|
602
|
-
"internalType": "uint256",
|
|
603
|
-
"name": "",
|
|
604
|
-
"type": "uint256"
|
|
605
|
-
}
|
|
606
|
-
],
|
|
607
|
-
"stateMutability": "view",
|
|
608
|
-
"type": "function"
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
"inputs": [
|
|
612
|
-
{
|
|
613
|
-
"internalType": "uint256",
|
|
614
|
-
"name": "policyId",
|
|
615
|
-
"type": "uint256"
|
|
616
|
-
},
|
|
617
|
-
{
|
|
618
|
-
"internalType": "contract IEToken",
|
|
619
|
-
"name": "etoken",
|
|
620
|
-
"type": "address"
|
|
621
|
-
}
|
|
622
|
-
],
|
|
623
|
-
"name": "getPolicyFund",
|
|
624
|
-
"outputs": [
|
|
625
|
-
{
|
|
626
|
-
"internalType": "uint256",
|
|
627
|
-
"name": "",
|
|
628
|
-
"type": "uint256"
|
|
629
|
-
}
|
|
630
|
-
],
|
|
631
|
-
"stateMutability": "view",
|
|
632
|
-
"type": "function"
|
|
633
|
-
},
|
|
634
|
-
{
|
|
635
|
-
"inputs": [
|
|
636
|
-
{
|
|
637
|
-
"internalType": "uint256",
|
|
638
|
-
"name": "policyId",
|
|
639
|
-
"type": "uint256"
|
|
640
|
-
},
|
|
641
|
-
{
|
|
642
|
-
"internalType": "uint256",
|
|
643
|
-
"name": "index",
|
|
644
|
-
"type": "uint256"
|
|
645
|
-
}
|
|
646
|
-
],
|
|
647
|
-
"name": "getPolicyFundAt",
|
|
648
|
-
"outputs": [
|
|
649
|
-
{
|
|
650
|
-
"internalType": "contract IEToken",
|
|
651
|
-
"name": "",
|
|
652
|
-
"type": "address"
|
|
653
|
-
},
|
|
654
|
-
{
|
|
655
|
-
"internalType": "uint256",
|
|
656
|
-
"name": "",
|
|
657
|
-
"type": "uint256"
|
|
658
|
-
}
|
|
659
|
-
],
|
|
660
|
-
"stateMutability": "view",
|
|
661
|
-
"type": "function"
|
|
662
|
-
},
|
|
663
|
-
{
|
|
664
|
-
"inputs": [
|
|
665
|
-
{
|
|
666
|
-
"internalType": "uint256",
|
|
667
|
-
"name": "policyId",
|
|
668
|
-
"type": "uint256"
|
|
669
|
-
}
|
|
670
|
-
],
|
|
671
|
-
"name": "getPolicyFundCount",
|
|
672
|
-
"outputs": [
|
|
673
|
-
{
|
|
674
|
-
"internalType": "uint256",
|
|
675
|
-
"name": "",
|
|
676
|
-
"type": "uint256"
|
|
677
|
-
}
|
|
678
|
-
],
|
|
679
|
-
"stateMutability": "view",
|
|
680
|
-
"type": "function"
|
|
681
|
-
},
|
|
682
509
|
{
|
|
683
510
|
"inputs": [],
|
|
684
511
|
"name": "initialize",
|
|
@@ -707,7 +534,12 @@
|
|
|
707
534
|
},
|
|
708
535
|
{
|
|
709
536
|
"internalType": "uint256",
|
|
710
|
-
"name": "
|
|
537
|
+
"name": "jrScr",
|
|
538
|
+
"type": "uint256"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"internalType": "uint256",
|
|
542
|
+
"name": "srScr",
|
|
711
543
|
"type": "uint256"
|
|
712
544
|
},
|
|
713
545
|
{
|
|
@@ -722,17 +554,22 @@
|
|
|
722
554
|
},
|
|
723
555
|
{
|
|
724
556
|
"internalType": "uint256",
|
|
725
|
-
"name": "
|
|
557
|
+
"name": "ensuroCommission",
|
|
558
|
+
"type": "uint256"
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"internalType": "uint256",
|
|
562
|
+
"name": "partnerCommission",
|
|
726
563
|
"type": "uint256"
|
|
727
564
|
},
|
|
728
565
|
{
|
|
729
566
|
"internalType": "uint256",
|
|
730
|
-
"name": "
|
|
567
|
+
"name": "jrCoc",
|
|
731
568
|
"type": "uint256"
|
|
732
569
|
},
|
|
733
570
|
{
|
|
734
571
|
"internalType": "uint256",
|
|
735
|
-
"name": "
|
|
572
|
+
"name": "srCoc",
|
|
736
573
|
"type": "uint256"
|
|
737
574
|
},
|
|
738
575
|
{
|
|
@@ -823,32 +660,6 @@
|
|
|
823
660
|
"stateMutability": "view",
|
|
824
661
|
"type": "function"
|
|
825
662
|
},
|
|
826
|
-
{
|
|
827
|
-
"inputs": [],
|
|
828
|
-
"name": "purePremiums",
|
|
829
|
-
"outputs": [
|
|
830
|
-
{
|
|
831
|
-
"internalType": "uint256",
|
|
832
|
-
"name": "",
|
|
833
|
-
"type": "uint256"
|
|
834
|
-
}
|
|
835
|
-
],
|
|
836
|
-
"stateMutability": "view",
|
|
837
|
-
"type": "function"
|
|
838
|
-
},
|
|
839
|
-
{
|
|
840
|
-
"inputs": [
|
|
841
|
-
{
|
|
842
|
-
"internalType": "uint256",
|
|
843
|
-
"name": "amount",
|
|
844
|
-
"type": "uint256"
|
|
845
|
-
}
|
|
846
|
-
],
|
|
847
|
-
"name": "receiveGrant",
|
|
848
|
-
"outputs": [],
|
|
849
|
-
"stateMutability": "nonpayable",
|
|
850
|
-
"type": "function"
|
|
851
|
-
},
|
|
852
663
|
{
|
|
853
664
|
"inputs": [
|
|
854
665
|
{
|
|
@@ -862,25 +673,6 @@
|
|
|
862
673
|
"stateMutability": "nonpayable",
|
|
863
674
|
"type": "function"
|
|
864
675
|
},
|
|
865
|
-
{
|
|
866
|
-
"inputs": [
|
|
867
|
-
{
|
|
868
|
-
"internalType": "contract IEToken",
|
|
869
|
-
"name": "eToken",
|
|
870
|
-
"type": "address"
|
|
871
|
-
}
|
|
872
|
-
],
|
|
873
|
-
"name": "repayETokenLoan",
|
|
874
|
-
"outputs": [
|
|
875
|
-
{
|
|
876
|
-
"internalType": "uint256",
|
|
877
|
-
"name": "",
|
|
878
|
-
"type": "uint256"
|
|
879
|
-
}
|
|
880
|
-
],
|
|
881
|
-
"stateMutability": "nonpayable",
|
|
882
|
-
"type": "function"
|
|
883
|
-
},
|
|
884
676
|
{
|
|
885
677
|
"inputs": [
|
|
886
678
|
{
|
|
@@ -902,7 +694,12 @@
|
|
|
902
694
|
},
|
|
903
695
|
{
|
|
904
696
|
"internalType": "uint256",
|
|
905
|
-
"name": "
|
|
697
|
+
"name": "jrScr",
|
|
698
|
+
"type": "uint256"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"internalType": "uint256",
|
|
702
|
+
"name": "srScr",
|
|
906
703
|
"type": "uint256"
|
|
907
704
|
},
|
|
908
705
|
{
|
|
@@ -917,17 +714,22 @@
|
|
|
917
714
|
},
|
|
918
715
|
{
|
|
919
716
|
"internalType": "uint256",
|
|
920
|
-
"name": "
|
|
717
|
+
"name": "ensuroCommission",
|
|
718
|
+
"type": "uint256"
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
"internalType": "uint256",
|
|
722
|
+
"name": "partnerCommission",
|
|
921
723
|
"type": "uint256"
|
|
922
724
|
},
|
|
923
725
|
{
|
|
924
726
|
"internalType": "uint256",
|
|
925
|
-
"name": "
|
|
727
|
+
"name": "jrCoc",
|
|
926
728
|
"type": "uint256"
|
|
927
729
|
},
|
|
928
730
|
{
|
|
929
731
|
"internalType": "uint256",
|
|
930
|
-
"name": "
|
|
732
|
+
"name": "srCoc",
|
|
931
733
|
"type": "uint256"
|
|
932
734
|
},
|
|
933
735
|
{
|
|
@@ -982,7 +784,12 @@
|
|
|
982
784
|
},
|
|
983
785
|
{
|
|
984
786
|
"internalType": "uint256",
|
|
985
|
-
"name": "
|
|
787
|
+
"name": "jrScr",
|
|
788
|
+
"type": "uint256"
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"internalType": "uint256",
|
|
792
|
+
"name": "srScr",
|
|
986
793
|
"type": "uint256"
|
|
987
794
|
},
|
|
988
795
|
{
|
|
@@ -997,17 +804,22 @@
|
|
|
997
804
|
},
|
|
998
805
|
{
|
|
999
806
|
"internalType": "uint256",
|
|
1000
|
-
"name": "
|
|
807
|
+
"name": "ensuroCommission",
|
|
808
|
+
"type": "uint256"
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
"internalType": "uint256",
|
|
812
|
+
"name": "partnerCommission",
|
|
1001
813
|
"type": "uint256"
|
|
1002
814
|
},
|
|
1003
815
|
{
|
|
1004
816
|
"internalType": "uint256",
|
|
1005
|
-
"name": "
|
|
817
|
+
"name": "jrCoc",
|
|
1006
818
|
"type": "uint256"
|
|
1007
819
|
},
|
|
1008
820
|
{
|
|
1009
821
|
"internalType": "uint256",
|
|
1010
|
-
"name": "
|
|
822
|
+
"name": "srCoc",
|
|
1011
823
|
"type": "uint256"
|
|
1012
824
|
},
|
|
1013
825
|
{
|
|
@@ -1041,32 +853,6 @@
|
|
|
1041
853
|
"stateMutability": "nonpayable",
|
|
1042
854
|
"type": "function"
|
|
1043
855
|
},
|
|
1044
|
-
{
|
|
1045
|
-
"inputs": [
|
|
1046
|
-
{
|
|
1047
|
-
"internalType": "contract IAssetManager",
|
|
1048
|
-
"name": "newAssetManager",
|
|
1049
|
-
"type": "address"
|
|
1050
|
-
}
|
|
1051
|
-
],
|
|
1052
|
-
"name": "setAssetManager",
|
|
1053
|
-
"outputs": [],
|
|
1054
|
-
"stateMutability": "nonpayable",
|
|
1055
|
-
"type": "function"
|
|
1056
|
-
},
|
|
1057
|
-
{
|
|
1058
|
-
"inputs": [],
|
|
1059
|
-
"name": "totalETokenSupply",
|
|
1060
|
-
"outputs": [
|
|
1061
|
-
{
|
|
1062
|
-
"internalType": "uint256",
|
|
1063
|
-
"name": "",
|
|
1064
|
-
"type": "uint256"
|
|
1065
|
-
}
|
|
1066
|
-
],
|
|
1067
|
-
"stateMutability": "view",
|
|
1068
|
-
"type": "function"
|
|
1069
|
-
},
|
|
1070
856
|
{
|
|
1071
857
|
"inputs": [],
|
|
1072
858
|
"name": "unpause",
|
|
@@ -1128,42 +914,10 @@
|
|
|
1128
914
|
],
|
|
1129
915
|
"stateMutability": "nonpayable",
|
|
1130
916
|
"type": "function"
|
|
1131
|
-
},
|
|
1132
|
-
{
|
|
1133
|
-
"inputs": [
|
|
1134
|
-
{
|
|
1135
|
-
"internalType": "uint256",
|
|
1136
|
-
"name": "amount",
|
|
1137
|
-
"type": "uint256"
|
|
1138
|
-
}
|
|
1139
|
-
],
|
|
1140
|
-
"name": "withdrawWonPremiums",
|
|
1141
|
-
"outputs": [
|
|
1142
|
-
{
|
|
1143
|
-
"internalType": "uint256",
|
|
1144
|
-
"name": "",
|
|
1145
|
-
"type": "uint256"
|
|
1146
|
-
}
|
|
1147
|
-
],
|
|
1148
|
-
"stateMutability": "nonpayable",
|
|
1149
|
-
"type": "function"
|
|
1150
|
-
},
|
|
1151
|
-
{
|
|
1152
|
-
"inputs": [],
|
|
1153
|
-
"name": "wonPurePremiums",
|
|
1154
|
-
"outputs": [
|
|
1155
|
-
{
|
|
1156
|
-
"internalType": "uint256",
|
|
1157
|
-
"name": "",
|
|
1158
|
-
"type": "uint256"
|
|
1159
|
-
}
|
|
1160
|
-
],
|
|
1161
|
-
"stateMutability": "view",
|
|
1162
|
-
"type": "function"
|
|
1163
917
|
}
|
|
1164
918
|
],
|
|
1165
|
-
"bytecode": "0x6101206040523060601b6080523480156200001957600080fd5b50604051620060a2380380620060a28339810160408190526200003c9162000105565b6001600160601b0319606084811b821660c05283811b82166101005282901b1660e0526040805163313ce56760e01b815290516003916001600160a01b0384169163313ce56791600480820192602092909190829003018186803b158015620000a457600080fd5b505afa158015620000b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000df919062000159565b620000eb91906200028f565b620000f890600a620001ce565b60a05250620002e4915050565b6000806000606084860312156200011b57600080fd5b83516200012881620002cb565b60208501519093506200013b81620002cb565b60408501519092506200014e81620002cb565b809150509250925092565b6000602082840312156200016c57600080fd5b815160ff811681146200017e57600080fd5b9392505050565b600181815b80851115620001c6578160001904821115620001aa57620001aa620002b5565b80851615620001b857918102915b93841c93908002906200018a565b509250929050565b60006200017e60ff841683600082620001ea5750600162000289565b81620001f95750600062000289565b81600181146200021257600281146200021d576200023d565b600191505062000289565b60ff841115620002315762000231620002b5565b50506001821b62000289565b5060208310610133831016604e8410600b841016171562000262575081810a62000289565b6200026e838362000185565b8060001904821115620002855762000285620002b5565b0290505b92915050565b600060ff821660ff841680821015620002ac57620002ac620002b5565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114620002e157600080fd5b50565b60805160601c60a05160c05160601c60e05160601c6101005160601c615c39620004696000396000818161067101528181610a140152818161349201528181613a52015281816141a701526143a501526000818161077a01528181610a9601528181610b6201528181610ca90152818161130b01528181611481015281816115a001528181611b6801528181613959015261496701526000818161052c0152818161092401528181610ac401528181611088015281816110f501528181611189015281816112280152818161133a0152818161180d01528181611c0201528181611cb401528181611d8c01528181611f40015281816120ea0152818161262a015281816127210152818161293f01528181612fc10152818161330701528181613385015281816135ea0152818161369d01528181613799015261384c01526000818161039401528181612a3101528181612a650152613e64015260008181610f6801528181610fa80152818161165a0152818161169a01526117290152615c396000f3fe60806040526004361061025c5760003560e01c806365e29c7e11610144578063b0ec4bcf116100b6578063dea167d51161007a578063dea167d514610756578063e5a6b10f1461076b578063e823584a1461079e578063f3fef3a3146107b3578063f67b2bad146107d3578063fcbb17fe146107f557600080fd5b8063b0ec4bcf14610695578063b63d382e146106b5578063b77ddfea146106d5578063ca143d18146106ea578063ce937e7b1461071757600080fd5b8063846253d111610108578063846253d1146105ae5780638a9defff146105ce5780638ca23bc9146105ee5780639e556b2b14610622578063ab60016914610642578063af02808a1461066257600080fd5b806365e29c7e1461050857806379502c551461051d5780638129fc1c1461056457806381ced71f146105795780638456cb591461059957600080fd5b80633f4ba83a116101dd57806352d1902d116101a157806352d1902d14610452578063536c9a43146104675780635b494dd51461047c5780635c975abb146104b057806363c0f4b1146104d357806365b71008146104e857600080fd5b80633f4ba83a146103b657806343060237146103cb57806347e7ef24146103eb5780634a47a3e01461040b5780634f1ef2861461043f57600080fd5b806324ea54f41161022457806324ea54f41461030b57806326ccbd221461032d5780632a2be82d146103425780633659cfe614610362578063396512fd1461038257600080fd5b8063066dda0e1461026157806319704a3a146102835780631a548a27146102b65780631c5c4aea146102cb578063220c262b146102eb575b600080fd5b34801561026d57600080fd5b5061028161027c3660046155d7565b610815565b005b34801561028f57600080fd5b506102a361029e366004615650565b610870565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b5060ce546102a3565b3480156102d757600080fd5b506102a36102e63660046156ae565b610d1e565b3480156102f757600080fd5b506102a36103063660046156ec565b610d3b565b34801561031757600080fd5b506102a3600080516020615be483398151915281565b34801561033957600080fd5b506102a3610d7d565b34801561034e57600080fd5b506102a361035d36600461540f565b610da1565b34801561036e57600080fd5b5061028161037d36600461540f565b610f5d565b34801561038e57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c257600080fd5b5061028161103d565b3480156103d757600080fd5b506102816103e636600461540f565b6110ea565b3480156103f757600080fd5b5061028161040636600461558e565b6114fd565b34801561041757600080fd5b506102a37fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b61028161044d366004615449565b61164f565b34801561045e57600080fd5b506102a361171c565b34801561047357600080fd5b5060d0546102a3565b34801561048857600080fd5b506102a37f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156104bc57600080fd5b5060335460ff1660405190151581526020016102ad565b3480156104df57600080fd5b506102a3600a81565b3480156104f457600080fd5b5061028161050336600461540f565b6117cf565b34801561051457600080fd5b506102a36119ec565b34801561052957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ad565b34801561057057600080fd5b50610281611ad2565b34801561058557600080fd5b506102816105943660046156ae565b611b5b565b3480156105a557600080fd5b50610281611bd6565b3480156105ba57600080fd5b506102a36105c93660046156ae565b611c6c565b3480156105da57600080fd5b506102816105e93660046155ba565b611e62565b3480156105fa57600080fd5b506102a37fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b79405781565b34801561062e57600080fd5b5061028161063d366004615606565b611f01565b34801561064e57600080fd5b5061028161065d3660046156c7565b611f3e565b34801561066e57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061054c565b3480156106a157600080fd5b5061054c6106b03660046156ae565b612080565b3480156106c157600080fd5b506102816106d036600461540f565b6120be565b3480156106e157600080fd5b506102a361236d565b3480156106f657600080fd5b5061070a61070536600461540f565b61242a565b6040516102ad919061576a565b34801561072357600080fd5b50610737610732366004615711565b612437565b604080516001600160a01b0390931683526020830191909152016102ad565b34801561076257600080fd5b506102a361245d565b34801561077757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061054c565b3480156107aa57600080fd5b5060cf546102a3565b3480156107bf57600080fd5b506102a36107ce36600461558e565b612469565b3480156107df57600080fd5b506102a3600080516020615b9d83398151915281565b34801561080157600080fd5b50610281610810366004615551565b6125df565b60335460ff16156108415760405162461bcd60e51b81526004016108389061585d565b60405180910390fd5b61086c61085336849003840184615633565b8261085f576000610865565b83602001355b600061284d565b5050565b600061087e60335460ff1690565b1561089b5760405162461bcd60e51b81526004016108389061585d565b6101208401516001600160a01b03811633146109055760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b6064820152608401610838565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b15801561096657600080fd5b505afa15801561097a573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b6109a59190615a24565b85526109b085612c1b565b8551600090815260cc602052604081209190915560a086015160ce8054919290916109dc908490615a24565b909155506109eb905085612c4b565b8451604051632851206560e21b81526001600160a01b03868116600483015260248201929092527f00000000000000000000000000000000000000000000000000000000000000009091169063a144819490604401600060405180830381600087803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b50505050610abe84308761010001518860a00151610a8c9190615a24565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612e09565b610b8a847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1b57600080fd5b505afa158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b53919061542c565b60c08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612e09565b60008560e00151118015610c205750806001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd257600080fd5b505afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a919061542c565b6001600160a01b0316846001600160a01b031614155b15610cd157610cd184826001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6257600080fd5b505afa158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a919061542c565b60e08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612e09565b806001600160a01b03167ff8da20dc84e4c9850943fcd1a0587142b2bac3fef70840ccee41f5edd22bc47786604051610d0a9190615920565b60405180910390a2505082515b9392505050565b600081815260cd60205260408120610d3590612e7a565b92915050565b600082815260cd6020526040812081908190610d579085612e85565b915091508115610d6a579150610d359050565b600092505050610d35565b505092915050565b600060cf5460d05460ce54610d929190615a24565b610d9c9190615a7d565b905090565b6000610daf60335460ff1690565b15610dcc5760405162461bcd60e51b81526004016108389061585d565b600080610dda60c985612ea1565b91509150818015610e1757506001816003811115610dfa57610dfa615b17565b1480610e1757506002816003811115610e1557610e15615b17565b145b610e5a5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610838565b6000846001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9557600080fd5b505afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061550e565b90506000610eda82612ed4565b90506001600160a01b038616631c0f4f81610ef58385615a7d565b6040518263ffffffff1660e01b8152600401610f1391815260200190565b600060405180830381600087803b158015610f2d57600080fd5b505af1158015610f41573d6000803e3d6000fd5b505050508082610f519190615a7d565b9450505050505b919050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610fa65760405162461bcd60e51b8152600401610838906157c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fef600080516020615b7d833981519152546001600160a01b031690565b6001600160a01b0316146110155760405162461bcd60e51b815260040161083890615811565b61101e81612f76565b6040805160008082526020820190925261103a91839190613017565b50565b60405163c5b8f5cf60e01b8152600080516020615be483398151915260048201819052600080516020615b9d8339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b5050505061086c613191565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461117c5760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792074686520506f6c696379506f6f6c436f6e6669672063616e20636860448201527030b733b29030b9b9b2ba26b0b730b3b2b960791b6064820152608401610838565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e057600080fd5b505afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611218919061542c565b6001600160a01b03161461144b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561127f57600080fd5b505afa158015611293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b7919061542c565b6001600160a01b031663cec16f3f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112f157600080fd5b505af1158015611305573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c9919061542c565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260006024820152604401602060405180830381600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144991906154f1565b505b6001600160a01b0381161561103a5760405163095ea7b360e01b81526001600160a01b03828116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c91906154f1565b60335460ff16156115205760405162461bcd60e51b81526004016108389061585d565b60008061152e60c985612ea1565b915091508180156115505750600181600381111561154e5761154e615b17565b145b6115935760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610838565b6115c86001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612e09565b6040516311f9fbc960e21b8152336004820152602481018490526001600160a01b038516906347e7ef2490604401602060405180830381600087803b15801561161057600080fd5b505af1158015611624573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611648919061550e565b5050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156116985760405162461bcd60e51b8152600401610838906157c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e1600080516020615b7d833981519152546001600160a01b031690565b6001600160a01b0316146117075760405162461bcd60e51b815260040161083890615811565b61171082612f76565b61086c82826001613017565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117bc5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610838565b50600080516020615b7d83398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561185757600080fd5b505afa15801561186b573d6000803e3d6000fd5b5060029250611878915050565b61188360c984613224565b600381111561189457611894615b17565b146118d95760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b6044820152606401610838565b816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191257600080fd5b505afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a919061550e565b156119a65760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b6064820152608401610838565b816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c60006040516119e0919061576a565b60405180910390a25050565b600080805b6119fb60c9612e7a565b811015611aa3576000611a0f60c983613241565b509050806001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4b57600080fd5b505afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a83919061550e565b611a8d9084615a24565b9250508080611a9b90615ae6565b9150506119f1565b506000611aae610d7d565b905081811115611ac957611ac28282615a7d565b9250505090565b60009250505090565b600054610100900460ff16611aed5760005460ff1615611af1565b303b155b611b0d5760405162461bcd60e51b815260040161083890615887565b600054610100900460ff16158015611b2f576000805461ffff19166101011790555b611b37613250565b611b3f613279565b611b476132a8565b801561103a576000805461ff001916905550565b611b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612e09565b611b9981613517565b6040805160018152602081018390527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a150565b6040516312d9a6ad60e01b8152600080516020615be483398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015611c4c57600080fd5b505afa158015611c60573d6000803e3d6000fd5b5050505061103a61357c565b6040516312d9a6ad60e01b81527fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b794057600482018190523360248301526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312d9a6ad9060440160006040518083038186803b158015611cf657600080fd5b505afa158015611d0a573d6000803e3d6000fd5b5050505060d054831115611d1e5760d05492505b60008311611d6e5760405162461bcd60e51b815260206004820152601760248201527f4e6f207072656d69756d7320746f2077697468647261770000000000000000006044820152606401610838565b8260d06000828254611d809190615a7d565b92505081905550611e217f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015611de357600080fd5b505afa158015611df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1b919061542c565b846135d4565b6040805160008152602081018590527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a15090919050565b60335460ff1615611e855760405162461bcd60e51b81526004016108389061585d565b42611e9861018083016101608401615733565b64ffffffffff161115611ee65760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610838565b61103a611ef836839003830183615633565b6000600161284d565b60335460ff1615611f245760405162461bcd60e51b81526004016108389061585d565b61086c611f3636849003840184615633565b82600061284d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015611f9757600080fd5b505afa158015611fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcf919061542c565b6001600160a01b0316336001600160a01b0316146120405760405162461bcd60e51b815260206004820152602860248201527f4f6e6c792061737365744d616e616765722063616e2063616c6c207468697320604482015267333ab731ba34b7b760c11b6064820152608401610838565b60335460ff16156120635760405162461bcd60e51b81526004016108389061585d565b80156120725761086c82613517565b61207b82612ed4565b505050565b6000808061208f60c985613241565b909250905060008160038111156120a8576120a8615b17565b146120b4575092915050565b5060009392505050565b6040516312d9a6ad60e01b8152600080516020615b9d83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561213457600080fd5b505afa158015612148573d6000803e3d6000fd5b50505050600a61215860c9612e7a565b106121af5760405162461bcd60e51b815260206004820152602160248201527f4d6178696d756d206e756d626572206f662045546f6b656e73207265616368656044820152601960fa1b6064820152608401610838565b6121ba60c983613980565b156122075760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c0000000000006044820152606401610838565b6001600160a01b0382166122545760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b6044820152606401610838565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b15801561229757600080fd5b505afa1580156122ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cf919061542c565b6001600160a01b0316146123255760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c00006044820152606401610838565b61233260c983600161398c565b50816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c60016040516119e0919061576a565b600080805b61237c60c9612e7a565b81101561242457600061239060c983613241565b509050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123cc57600080fd5b505afa1580156123e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612404919061550e565b61240e9084615a24565b925050808061241c90615ae6565b915050612372565b50919050565b6000610d3560c983613224565b600082815260cd60205260408120819061245190846139b2565b915091505b9250929050565b6000610d9c60c9612e7a565b600061247760335460ff1690565b156124945760405162461bcd60e51b81526004016108389061585d565b6000806124a260c986612ea1565b915091508180156124df575060018160038111156124c2576124c2615b17565b14806124df575060028160038111156124dd576124dd615b17565b145b61253d5760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610838565b60405163f3fef3a360e01b8152336004820181905260248201869052906000906001600160a01b0388169063f3fef3a390604401602060405180830381600087803b15801561258b57600080fd5b505af115801561259f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c3919061550e565b905080156125d5576125d582826135d4565b9695505050505050565b60405163c5b8f5cf60e01b8152600080516020615be483398151915260048201819052600080516020615b9d8339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561266c57600080fd5b505afa158015612680573d6000803e3d6000fd5b505050506126988460c961398090919063ffffffff16565b6126dc5760405162461bcd60e51b8152602060048201526015602482015274149a5cdac8135bd91d5b19481b9bdd08199bdd5b99605a1b6044820152606401610838565b60038360038111156126f0576126f0615b17565b1415806127a35750604051632474521560e21b8152600080516020615be483398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b15801561276b57600080fd5b505afa15801561277f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a391906154f1565b6127f95760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b6064820152608401610838565b61280560c9858561398c565b50836001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c8460405161283f919061576a565b60405180910390a250505050565b612856836139c1565b610120830151818061287057506001600160a01b03811633145b6128bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c69636965736044820152606401610838565b8215806128d457504284610160015164ffffffffff16115b6129205760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610838565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b15801561298157600080fd5b505afa158015612995573d6000803e3d6000fd5b5050505083602001518311156129e65760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610838565b600080841190508460a0015160ce6000828254612a039190615a7d565b909155506000905080612a17878488613a27565b915091508215612af0576000612a2d8884613b81565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612a6357612a6081613d8d565b90505b7f0000000000000000000000000000000000000000000000000000000000000000811115612aea5760405162461bcd60e51b815260206004820152602e60248201527f446f6e2774206b6e6f7720776865726520746f2074616b65207468652072657360448201526d74206f6620746865206d6f6e657960901b6064820152608401610838565b50612afd565b612afa8782613eac565b90505b612b0681613517565b6060870151604051634e5de6c960e11b815260048101919091526001600160a01b03851690639cbbcd9290602401600060405180830381600087803b158015612b4e57600080fd5b505af1158015612b62573d6000803e3d6000fd5b5050505086600001518761012001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e88604051612bab91815260200190565b60405180910390a38651600090815260cc602090815260408083208390558951835260cd909152812090818181818181612be582826152ff565b50505050505050506000861115612c07578651612c02908761418e565b612c12565b8651612c129061438c565b50505050505050565b600081604051602001612c2e9190615920565b604051602081830303815290604052805190602001209050919050565b8051600090815260cd60205260408120815b612c6760c9612e7a565b811015612df057600080612c7c60c984613241565b90925090506001816003811115612c9557612c95615b17565b14612ca1575050612dde565b610120860151610160870151604051630cd21c5560e21b81526001600160a01b03928316600482015264ffffffffff90911660248201529083169063334871549060440160206040518083038186803b158015612cfd57600080fd5b505afa158015612d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3591906154f1565b612d40575050612dde565b6000826001600160a01b031663e5ae143f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d7b57600080fd5b505afa158015612d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db3919061550e565b905080612dc257505050612dde565b612dcc8187615a24565b9550612dd98584836144d2565b505050505b80612de881615ae6565b915050612c5d565b5061207b8360600151612e02856144df565b8484614539565b6040516001600160a01b0380851660248301528316604482015260648101829052612e749085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261468c565b50505050565b6000610d358261475e565b6000808080612e948686614769565b9097909650945050505050565b6000808080612eb08686614769565b9150915081816003811115612ec757612ec7615b17565b9350935050509250929050565b600060d0548211612efe578160d06000828254612ef19190615a7d565b9091555060009392505050565b60d05415612f1b5760d054612f139083615a7d565b600060d05591505b60cf5460ce541115612f725760cf5460ce54612f379190615a7d565b8211612f4f578160cf6000828254612ef19190615a24565b60cf5460ce54612f5f9190615a7d565b612f699083615a7d565b60ce5460cf5591505b5090565b60405163c5b8f5cf60e01b8152600080516020615be483398151915260048201819052600080516020615b9d8339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561300357600080fd5b505afa158015612c12573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561304a5761207b836147ac565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561308357600080fd5b505afa9250505080156130b3575060408051601f3d908101601f191682019092526130b09181019061550e565b60015b6131165760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610838565b600080516020615b7d83398151915281146131855760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610838565b5061207b838383614848565b60335460ff166131da5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610838565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000613230838361486d565b6003811115610d1757610d17615b17565b6000808080612eb086866148e7565b600054610100900460ff166132775760405162461bcd60e51b8152600401610838906158d5565b565b600054610100900460ff166132a05760405162461bcd60e51b8152600401610838906158d5565b61327761491c565b600054610100900460ff166132c35760005460ff16156132c7565b303b155b6132e35760405162461bcd60e51b815260040161083890615887565b600054610100900460ff16158015613305576000805461ffff19166101011790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561336057600080fd5b505af1158015613374573d6000803e3d6000fd5b5050505060006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156133dc57600080fd5b505afa1580156133f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613414919061542c565b6001600160a01b0316146134905760405162461bcd60e51b815260206004820152603a60248201527f41737365744d616e616765722063616e277420626520736574206265666f726560448201527f20506f6c696379506f6f6c20696e697469616c697a6174696f6e0000000000006064820152608401610838565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156134eb57600080fd5b505af11580156134ff573d6000803e3d6000fd5b50505050801561103a576000805461ff001916905550565b8061351f5750565b8060cf5410613545578060cf600082825461353a9190615a7d565b9091555061103a9050565b60cf54156135625760cf5461355a9082615a7d565b600060cf5590505b8060d060008282546135749190615a24565b909155505050565b60335460ff161561359f5760405162461bcd60e51b81526004016108389061585d565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132073390565b806135dd575050565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561364157600080fd5b505afa158015613655573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613679919061542c565b6001600160a01b03161415801561369657508061369461494f565b105b1561378c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156136f457600080fd5b505afa158015613708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372c919061542c565b6001600160a01b0316631014a0c2826040518263ffffffff1660e01b815260040161375991815260200190565b600060405180830381600087803b15801561377357600080fd5b505af1158015613787573d6000803e3d6000fd5b505050505b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b1580156137f057600080fd5b505afa158015613804573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613828919061542c565b6001600160a01b03161415801561384557508061384361494f565b105b1561394c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b1580156138a357600080fd5b505afa1580156138b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138db919061542c565b6001600160a01b031663ee842dda6138f161494f565b6138fb9084615a7d565b6040518263ffffffff1660e01b815260040161391991815260200190565b600060405180830381600087803b15801561393357600080fd5b505af1158015613947573d6000803e3d6000fd5b505050505b61086c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683836149e9565b6000610d178383614a19565b60006139aa84848460038111156139a5576139a5615b17565b614a25565b949350505050565b6000808080612e9486866148e7565b8051158015906139e857508051600090815260cc60205260409020546139e682612c1b565b145b61103a5760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610838565b60008060008060008615613b215787516040516331a9108f60e11b8152613adf916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e91613a899160040190815260200190565b60206040518083038186803b158015613aa157600080fd5b505afa158015613ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad9919061542c565b876135d4565b858860a001511115613b0257858860a00151613afb9190615a7d565b9150613b74565b613b1a8860a0015187613b159190615a7d565b612ed4565b9250613b74565b8760a00151915060ce5460cf541115613b7457613b4d60ce5460cf54613b479190615a7d565b83614a4c565b90508060cf6000828254613b619190615a7d565b90915550613b7190508183615a7d565b91505b5090969095509350505050565b60008080613b8e856144df565b9050600080613b9c87614a5b565b8851600090815260cd602052604081209294509092505b613bbc82612e7a565b811015613d8057600080613bd084846139b2565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b158015613c1e57600080fd5b505af1158015613c32573d6000803e3d6000fd5b50505060608c0151613c4691508290614aa7565b90506001600160a01b03821663aa69d74b613c618784614ba7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b158015613ca257600080fd5b505af1158015613cb6573d6000803e3d6000fd5b5050505060008a1115613d6b576000613ccf8b83614ba7565b604051630c1ceca560e21b815260048101829052600160248201529091506001600160a01b03841690633073b29490604401602060405180830381600087803b158015613d1b57600080fd5b505af1158015613d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d53919061550e565b613d5d9082615a7d565b613d67908a615a24565b9850505b50508080613d7890615ae6565b915050613bb3565b5093979650505050505050565b6000805b613d9b60c9612e7a565b811015613ea557600080613db060c984613241565b90925090506001816003811115613dc957613dc9615b17565b14613dd5575050613e93565b604051630c1ceca560e21b815260048101869052600060248201526001600160a01b03831690633073b29490604401602060405180830381600087803b158015613e1e57600080fd5b505af1158015613e32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e56919061550e565b613e609086615a7d565b94507f00000000000000000000000000000000000000000000000000000000000000008511613e90575050613ea5565b50505b80613e9d81615ae6565b915050613d91565b5090919050565b600080613eb8846144df565b9050600080613ec686614a5b565b8751600090815260cd602052604081209294509092505b613ee682612e7a565b81101561418257600080613efa84846139b2565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b158015613f4857600080fd5b505af1158015613f5c573d6000803e3d6000fd5b50505060608b0151613f7091508290614aa7565b90506001600160a01b03821663aa69d74b613f8b8784614ba7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b158015613fcc57600080fd5b505af1158015613fe0573d6000803e3d6000fd5b5050505060008911801561406457506000826001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561402a57600080fd5b505afa15801561403e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614062919061550e565b115b1561416d5760a08a015160009061407b9083614ba7565b90506141008a6140fb856001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156140bd57600080fd5b505afa1580156140d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f5919061550e565b84614a4c565b614a4c565b604051631c0f4f8160e01b8152600481018290529091506001600160a01b03841690631c0f4f8190602401600060405180830381600087803b15801561414557600080fd5b505af1158015614159573d6000803e3d6000fd5b50505050808a6141699190615a7d565b9950505b5050808061417a90615ae6565b915050613edd565b50949695505050505050565b6040516331a9108f60e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b1580156141f157600080fd5b505afa158015614205573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614229919061542c565b90506001600160a01b0381163b61423f57505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044810186905260648101859052608401602060405180830381600087803b1580156142a457600080fd5b505af19250505080156142d4575060408051601f3d908101601f191682019092526142d191810190615527565b60015b61431c573d808015614302576040519150601f19603f3d011682016040523d82523d6000602084013e614307565b606091505b5080516143145750505050565b805181602001fd5b6001600160e01b03198116636b140e9f60e11b14612e745760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b6064820152608401610838565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b1580156143ef57600080fd5b505afa158015614403573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614427919061542c565b90506001600160a01b0381163b61443c575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401602060405180830381600087803b15801561449a57600080fd5b505af19250505080156144ca575060408051601f3d908101601f191682019092526144c791810190615527565b60015b61207b575050565b60006139aa848484614a25565b6000610d3561453483606001518461014001518561016001516145029190615a94565b64ffffffffff166145139190615a5e565b61010085015161452e906a1a1601fc4ea7109e000000614ba7565b90614aa7565b614c78565b838210156145975760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f75676874206f6365616e20746f20636f7665722074686520706044820152646f6c69637960d81b6064820152608401610838565b8360005b6145a483612e7a565b81101561468457600080806145b986856139b2565b9150915060016145c887612e7a565b6145d29190615a7d565b8410156145ee576145e78761452e8b84614ba7565b92506145f2565b8492505b60405163837c83a360e01b815260048101899052602481018490526001600160a01b0383169063837c83a390604401600060405180830381600087803b15801561463b57600080fd5b505af115801561464f573d6000803e3d6000fd5b506146619250889150849050856144d2565b5061466c8386615a7d565b9450505050808061467c90615ae6565b91505061459b565b505050505050565b60006146e1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614cf69092919063ffffffff16565b80519091501561207b57808060200190518101906146ff91906154f1565b61207b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610838565b6000610d3582614d05565b6001600160a01b03811660009081526002830160205260408120548190806147a1576147958585614a19565b60009250925050612456565b600192509050612456565b6001600160a01b0381163b6148195760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610838565b600080516020615b7d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61485183614d0f565b60008251118061485e5750805b1561207b57612e748383614d4f565b6001600160a01b03811660009081526002830160205260408120548015158061489b575061489b8484614a19565b610d175760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610838565b600080806148f58585614e43565b6001600160a01b038116600090815260029690960160205260409095205494959350505050565b600054610100900460ff166149435760405162461bcd60e51b8152600401610838906158d5565b6033805460ff19169055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156149b157600080fd5b505afa1580156149c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c919061550e565b6040516001600160a01b03831660248201526044810182905261207b90849063a9059cbb60e01b90606401612e3d565b6000610d178383614e4f565b6001600160a01b038216600090815260028401602052604081208290556139aa8484614e71565b6000818310613ea55781610d17565b6000806000614a6984614e86565b90508084610100015110614a9457600181856101000151614a8a9190615a7d565b9250925050915091565b600084610100015182614a8a9190615a7d565b600081614af65760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610838565b6000614b03600284615a3c565b9050670de0b6b3a7640000614b1a82600019615a7d565b614b249190615a3c565b841115614b7f5760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b8281614b93670de0b6b3a764000087615a5e565b614b9d9190615a24565b6139aa9190615a3c565b6000821580614bb4575081155b15614bc157506000610d35565b81614bd56002670de0b6b3a7640000615a3c565b614be190600019615a7d565b614beb9190615a3c565b831115614c465760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b670de0b6b3a7640000614c5a600282615a3c565b614c648486615a5e565b614c6e9190615a24565b610d179190615a3c565b600080614c89633b9aca0084615a5e565b905082614c9a633b9aca0083615a3c565b14610d355760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b6064820152608401610838565b60606139aa8484600085614eed565b6000610d35825490565b614d18816147ac565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b614db75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610838565b600080846001600160a01b031684604051614dd2919061574e565b600060405180830381855af49150503d8060008114614e0d576040519150601f19603f3d011682016040523d82523d6000602084013e614e12565b606091505b5091509150614e3a8282604051806060016040528060278152602001615bbd6027913961501e565b95945050505050565b6000610d178383615057565b6001600160a01b03811660009081526001830160205260408120541515610d17565b6000610d17836001600160a01b038416615081565b60008082610140015164ffffffffff1642614ea19190615a7d565b9050610d17614ee86e0612d847b578e7643c28ac00000000614ee2614ec5876144df565b614ecf9086615a5e565b614edc8860600151614c78565b906150d0565b9061518b565b61527f565b606082471015614f4e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610838565b6001600160a01b0385163b614fa55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610838565b600080866001600160a01b03168587604051614fc1919061574e565b60006040518083038185875af1925050503d8060008114614ffe576040519150601f19603f3d011682016040523d82523d6000602084013e615003565b606091505b509150915061501382828661501e565b979650505050505050565b6060831561502d575081610d17565b82511561503d5782518084602001fd5b8160405162461bcd60e51b81526004016108389190615792565b600082600001828154811061506e5761506e615b2d565b9060005260206000200154905092915050565b60008181526001830160205260408120546150c857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d35565b506000610d35565b60008215806150dd575081155b156150ea57506000610d35565b8161510260026b033b2e3c9fd0803ce8000000615a3c565b61510e90600019615a7d565b6151189190615a3c565b8311156151735760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b6b033b2e3c9fd0803ce8000000614c5a600282615a3c565b6000816151da5760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610838565b60006151e7600284615a3c565b90506b033b2e3c9fd0803ce800000061520282600019615a7d565b61520c9190615a3c565b8411156152675760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b8281614b936b033b2e3c9fd0803ce800000087615a5e565b6000806152916002633b9aca00615a3c565b9050600061529f8483615a24565b9050818110156152f15760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f776044820152606401610838565b6139aa633b9aca0082615a3c565b508054600082559060005260206000209081019061103a91905b80821115612f725760008155600101615319565b8035610f5881615b59565b6000610180828403121561242457600080fd5b6000610180828403121561535e57600080fd5b6153666159c9565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101206153cc81840161532d565b908201526101406153de8382016153fa565b908201526101606153f08382016153fa565b9082015292915050565b803564ffffffffff81168114610f5857600080fd5b60006020828403121561542157600080fd5b8135610d1781615b59565b60006020828403121561543e57600080fd5b8151610d1781615b59565b6000806040838503121561545c57600080fd5b823561546781615b59565b915060208381013567ffffffffffffffff8082111561548557600080fd5b818601915086601f83011261549957600080fd5b8135818111156154ab576154ab615b43565b6154bd601f8201601f191685016159f3565b915080825287848285010111156154d357600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561550357600080fd5b8151610d1781615b6e565b60006020828403121561552057600080fd5b5051919050565b60006020828403121561553957600080fd5b81516001600160e01b031981168114610d1757600080fd5b6000806040838503121561556457600080fd5b823561556f81615b59565b915060208301356004811061558357600080fd5b809150509250929050565b600080604083850312156155a157600080fd5b82356155ac81615b59565b946020939093013593505050565b600061018082840312156155cd57600080fd5b610d178383615338565b6000806101a083850312156155eb57600080fd5b6155f58484615338565b915061018083013561558381615b6e565b6000806101a0838503121561561a57600080fd5b6156248484615338565b94610180939093013593505050565b6000610180828403121561564657600080fd5b610d17838361534b565b60008060006101c0848603121561566657600080fd5b615670858561534b565b925061018084013561568181615b59565b91506101a08401356bffffffffffffffffffffffff811681146156a357600080fd5b809150509250925092565b6000602082840312156156c057600080fd5b5035919050565b600080604083850312156156da57600080fd5b82359150602083013561558381615b6e565b600080604083850312156156ff57600080fd5b82359150602083013561558381615b59565b6000806040838503121561572457600080fd5b50508035926020909101359150565b60006020828403121561574557600080fd5b610d17826153fa565b60008251615760818460208701615aba565b9190910192915050565b602081016004831061578c57634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600082518060208401526157b1816040850160208701615aba565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600061018082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161599a828501826001600160a01b03169052565b50506101408381015164ffffffffff81168483015250506101608381015164ffffffffff811684830152610d75565b604051610180810167ffffffffffffffff811182821017156159ed576159ed615b43565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615a1c57615a1c615b43565b604052919050565b60008219821115615a3757615a37615b01565b500190565b600082615a5957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615615a7857615a78615b01565b500290565b600082821015615a8f57615a8f615b01565b500390565b600064ffffffffff83811690831681811015615ab257615ab2615b01565b039392505050565b60005b83811015615ad5578181015183820152602001615abd565b83811115612e745750506000910152565b6000600019821415615afa57615afa615b01565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461103a57600080fd5b801515811461103a57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212201ab6e71ff190983488c431c6d49fae9407654bb5c8a6e8bcf67e91fcdba541c164736f6c63430008060033",
|
|
1166
|
-
"deployedBytecode": "0x60806040526004361061025c5760003560e01c806365e29c7e11610144578063b0ec4bcf116100b6578063dea167d51161007a578063dea167d514610756578063e5a6b10f1461076b578063e823584a1461079e578063f3fef3a3146107b3578063f67b2bad146107d3578063fcbb17fe146107f557600080fd5b8063b0ec4bcf14610695578063b63d382e146106b5578063b77ddfea146106d5578063ca143d18146106ea578063ce937e7b1461071757600080fd5b8063846253d111610108578063846253d1146105ae5780638a9defff146105ce5780638ca23bc9146105ee5780639e556b2b14610622578063ab60016914610642578063af02808a1461066257600080fd5b806365e29c7e1461050857806379502c551461051d5780638129fc1c1461056457806381ced71f146105795780638456cb591461059957600080fd5b80633f4ba83a116101dd57806352d1902d116101a157806352d1902d14610452578063536c9a43146104675780635b494dd51461047c5780635c975abb146104b057806363c0f4b1146104d357806365b71008146104e857600080fd5b80633f4ba83a146103b657806343060237146103cb57806347e7ef24146103eb5780634a47a3e01461040b5780634f1ef2861461043f57600080fd5b806324ea54f41161022457806324ea54f41461030b57806326ccbd221461032d5780632a2be82d146103425780633659cfe614610362578063396512fd1461038257600080fd5b8063066dda0e1461026157806319704a3a146102835780631a548a27146102b65780631c5c4aea146102cb578063220c262b146102eb575b600080fd5b34801561026d57600080fd5b5061028161027c3660046155d7565b610815565b005b34801561028f57600080fd5b506102a361029e366004615650565b610870565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b5060ce546102a3565b3480156102d757600080fd5b506102a36102e63660046156ae565b610d1e565b3480156102f757600080fd5b506102a36103063660046156ec565b610d3b565b34801561031757600080fd5b506102a3600080516020615be483398151915281565b34801561033957600080fd5b506102a3610d7d565b34801561034e57600080fd5b506102a361035d36600461540f565b610da1565b34801561036e57600080fd5b5061028161037d36600461540f565b610f5d565b34801561038e57600080fd5b506102a37f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c257600080fd5b5061028161103d565b3480156103d757600080fd5b506102816103e636600461540f565b6110ea565b3480156103f757600080fd5b5061028161040636600461558e565b6114fd565b34801561041757600080fd5b506102a37fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b61028161044d366004615449565b61164f565b34801561045e57600080fd5b506102a361171c565b34801561047357600080fd5b5060d0546102a3565b34801561048857600080fd5b506102a37f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156104bc57600080fd5b5060335460ff1660405190151581526020016102ad565b3480156104df57600080fd5b506102a3600a81565b3480156104f457600080fd5b5061028161050336600461540f565b6117cf565b34801561051457600080fd5b506102a36119ec565b34801561052957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102ad565b34801561057057600080fd5b50610281611ad2565b34801561058557600080fd5b506102816105943660046156ae565b611b5b565b3480156105a557600080fd5b50610281611bd6565b3480156105ba57600080fd5b506102a36105c93660046156ae565b611c6c565b3480156105da57600080fd5b506102816105e93660046155ba565b611e62565b3480156105fa57600080fd5b506102a37fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b79405781565b34801561062e57600080fd5b5061028161063d366004615606565b611f01565b34801561064e57600080fd5b5061028161065d3660046156c7565b611f3e565b34801561066e57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061054c565b3480156106a157600080fd5b5061054c6106b03660046156ae565b612080565b3480156106c157600080fd5b506102816106d036600461540f565b6120be565b3480156106e157600080fd5b506102a361236d565b3480156106f657600080fd5b5061070a61070536600461540f565b61242a565b6040516102ad919061576a565b34801561072357600080fd5b50610737610732366004615711565b612437565b604080516001600160a01b0390931683526020830191909152016102ad565b34801561076257600080fd5b506102a361245d565b34801561077757600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061054c565b3480156107aa57600080fd5b5060cf546102a3565b3480156107bf57600080fd5b506102a36107ce36600461558e565b612469565b3480156107df57600080fd5b506102a3600080516020615b9d83398151915281565b34801561080157600080fd5b50610281610810366004615551565b6125df565b60335460ff16156108415760405162461bcd60e51b81526004016108389061585d565b60405180910390fd5b61086c61085336849003840184615633565b8261085f576000610865565b83602001355b600061284d565b5050565b600061087e60335460ff1690565b1561089b5760405162461bcd60e51b81526004016108389061585d565b6101208401516001600160a01b03811633146109055760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b6064820152608401610838565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b15801561096657600080fd5b505afa15801561097a573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b6109a59190615a24565b85526109b085612c1b565b8551600090815260cc602052604081209190915560a086015160ce8054919290916109dc908490615a24565b909155506109eb905085612c4b565b8451604051632851206560e21b81526001600160a01b03868116600483015260248201929092527f00000000000000000000000000000000000000000000000000000000000000009091169063a144819490604401600060405180830381600087803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b50505050610abe84308761010001518860a00151610a8c9190615a24565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612e09565b610b8a847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1b57600080fd5b505afa158015610b2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b53919061542c565b60c08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612e09565b60008560e00151118015610c205750806001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd257600080fd5b505afa158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a919061542c565b6001600160a01b0316846001600160a01b031614155b15610cd157610cd184826001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6257600080fd5b505afa158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a919061542c565b60e08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612e09565b806001600160a01b03167ff8da20dc84e4c9850943fcd1a0587142b2bac3fef70840ccee41f5edd22bc47786604051610d0a9190615920565b60405180910390a2505082515b9392505050565b600081815260cd60205260408120610d3590612e7a565b92915050565b600082815260cd6020526040812081908190610d579085612e85565b915091508115610d6a579150610d359050565b600092505050610d35565b505092915050565b600060cf5460d05460ce54610d929190615a24565b610d9c9190615a7d565b905090565b6000610daf60335460ff1690565b15610dcc5760405162461bcd60e51b81526004016108389061585d565b600080610dda60c985612ea1565b91509150818015610e1757506001816003811115610dfa57610dfa615b17565b1480610e1757506002816003811115610e1557610e15615b17565b145b610e5a5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610838565b6000846001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9557600080fd5b505afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061550e565b90506000610eda82612ed4565b90506001600160a01b038616631c0f4f81610ef58385615a7d565b6040518263ffffffff1660e01b8152600401610f1391815260200190565b600060405180830381600087803b158015610f2d57600080fd5b505af1158015610f41573d6000803e3d6000fd5b505050508082610f519190615a7d565b9450505050505b919050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610fa65760405162461bcd60e51b8152600401610838906157c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fef600080516020615b7d833981519152546001600160a01b031690565b6001600160a01b0316146110155760405162461bcd60e51b815260040161083890615811565b61101e81612f76565b6040805160008082526020820190925261103a91839190613017565b50565b60405163c5b8f5cf60e01b8152600080516020615be483398151915260048201819052600080516020615b9d8339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b1580156110ca57600080fd5b505afa1580156110de573d6000803e3d6000fd5b5050505061086c613191565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461117c5760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792074686520506f6c696379506f6f6c436f6e6669672063616e20636860448201527030b733b29030b9b9b2ba26b0b730b3b2b960791b6064820152608401610838565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e057600080fd5b505afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611218919061542c565b6001600160a01b03161461144b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561127f57600080fd5b505afa158015611293573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b7919061542c565b6001600160a01b031663cec16f3f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156112f157600080fd5b505af1158015611305573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561139157600080fd5b505afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c9919061542c565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260006024820152604401602060405180830381600087803b15801561141157600080fd5b505af1158015611425573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144991906154f1565b505b6001600160a01b0381161561103a5760405163095ea7b360e01b81526001600160a01b03828116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b1580156114c557600080fd5b505af11580156114d9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086c91906154f1565b60335460ff16156115205760405162461bcd60e51b81526004016108389061585d565b60008061152e60c985612ea1565b915091508180156115505750600181600381111561154e5761154e615b17565b145b6115935760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610838565b6115c86001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086612e09565b6040516311f9fbc960e21b8152336004820152602481018490526001600160a01b038516906347e7ef2490604401602060405180830381600087803b15801561161057600080fd5b505af1158015611624573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611648919061550e565b5050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156116985760405162461bcd60e51b8152600401610838906157c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116e1600080516020615b7d833981519152546001600160a01b031690565b6001600160a01b0316146117075760405162461bcd60e51b815260040161083890615811565b61171082612f76565b61086c82826001613017565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117bc5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610838565b50600080516020615b7d83398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561185757600080fd5b505afa15801561186b573d6000803e3d6000fd5b5060029250611878915050565b61188360c984613224565b600381111561189457611894615b17565b146118d95760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b6044820152606401610838565b816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191257600080fd5b505afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a919061550e565b156119a65760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b6064820152608401610838565b816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c60006040516119e0919061576a565b60405180910390a25050565b600080805b6119fb60c9612e7a565b811015611aa3576000611a0f60c983613241565b509050806001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4b57600080fd5b505afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a83919061550e565b611a8d9084615a24565b9250508080611a9b90615ae6565b9150506119f1565b506000611aae610d7d565b905081811115611ac957611ac28282615a7d565b9250505090565b60009250505090565b600054610100900460ff16611aed5760005460ff1615611af1565b303b155b611b0d5760405162461bcd60e51b815260040161083890615887565b600054610100900460ff16158015611b2f576000805461ffff19166101011790555b611b37613250565b611b3f613279565b611b476132a8565b801561103a576000805461ff001916905550565b611b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612e09565b611b9981613517565b6040805160018152602081018390527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a150565b6040516312d9a6ad60e01b8152600080516020615be483398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015611c4c57600080fd5b505afa158015611c60573d6000803e3d6000fd5b5050505061103a61357c565b6040516312d9a6ad60e01b81527fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b794057600482018190523360248301526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312d9a6ad9060440160006040518083038186803b158015611cf657600080fd5b505afa158015611d0a573d6000803e3d6000fd5b5050505060d054831115611d1e5760d05492505b60008311611d6e5760405162461bcd60e51b815260206004820152601760248201527f4e6f207072656d69756d7320746f2077697468647261770000000000000000006044820152606401610838565b8260d06000828254611d809190615a7d565b92505081905550611e217f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015611de357600080fd5b505afa158015611df7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1b919061542c565b846135d4565b6040805160008152602081018590527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a15090919050565b60335460ff1615611e855760405162461bcd60e51b81526004016108389061585d565b42611e9861018083016101608401615733565b64ffffffffff161115611ee65760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610838565b61103a611ef836839003830183615633565b6000600161284d565b60335460ff1615611f245760405162461bcd60e51b81526004016108389061585d565b61086c611f3636849003840184615633565b82600061284d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015611f9757600080fd5b505afa158015611fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fcf919061542c565b6001600160a01b0316336001600160a01b0316146120405760405162461bcd60e51b815260206004820152602860248201527f4f6e6c792061737365744d616e616765722063616e2063616c6c207468697320604482015267333ab731ba34b7b760c11b6064820152608401610838565b60335460ff16156120635760405162461bcd60e51b81526004016108389061585d565b80156120725761086c82613517565b61207b82612ed4565b505050565b6000808061208f60c985613241565b909250905060008160038111156120a8576120a8615b17565b146120b4575092915050565b5060009392505050565b6040516312d9a6ad60e01b8152600080516020615b9d83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561213457600080fd5b505afa158015612148573d6000803e3d6000fd5b50505050600a61215860c9612e7a565b106121af5760405162461bcd60e51b815260206004820152602160248201527f4d6178696d756d206e756d626572206f662045546f6b656e73207265616368656044820152601960fa1b6064820152608401610838565b6121ba60c983613980565b156122075760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c0000000000006044820152606401610838565b6001600160a01b0382166122545760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b6044820152606401610838565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b15801561229757600080fd5b505afa1580156122ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cf919061542c565b6001600160a01b0316146123255760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c00006044820152606401610838565b61233260c983600161398c565b50816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c60016040516119e0919061576a565b600080805b61237c60c9612e7a565b81101561242457600061239060c983613241565b509050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123cc57600080fd5b505afa1580156123e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612404919061550e565b61240e9084615a24565b925050808061241c90615ae6565b915050612372565b50919050565b6000610d3560c983613224565b600082815260cd60205260408120819061245190846139b2565b915091505b9250929050565b6000610d9c60c9612e7a565b600061247760335460ff1690565b156124945760405162461bcd60e51b81526004016108389061585d565b6000806124a260c986612ea1565b915091508180156124df575060018160038111156124c2576124c2615b17565b14806124df575060028160038111156124dd576124dd615b17565b145b61253d5760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610838565b60405163f3fef3a360e01b8152336004820181905260248201869052906000906001600160a01b0388169063f3fef3a390604401602060405180830381600087803b15801561258b57600080fd5b505af115801561259f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c3919061550e565b905080156125d5576125d582826135d4565b9695505050505050565b60405163c5b8f5cf60e01b8152600080516020615be483398151915260048201819052600080516020615b9d8339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561266c57600080fd5b505afa158015612680573d6000803e3d6000fd5b505050506126988460c961398090919063ffffffff16565b6126dc5760405162461bcd60e51b8152602060048201526015602482015274149a5cdac8135bd91d5b19481b9bdd08199bdd5b99605a1b6044820152606401610838565b60038360038111156126f0576126f0615b17565b1415806127a35750604051632474521560e21b8152600080516020615be483398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b15801561276b57600080fd5b505afa15801561277f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a391906154f1565b6127f95760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b6064820152608401610838565b61280560c9858561398c565b50836001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c8460405161283f919061576a565b60405180910390a250505050565b612856836139c1565b610120830151818061287057506001600160a01b03811633145b6128bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c69636965736044820152606401610838565b8215806128d457504284610160015164ffffffffff16115b6129205760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610838565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b15801561298157600080fd5b505afa158015612995573d6000803e3d6000fd5b5050505083602001518311156129e65760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610838565b600080841190508460a0015160ce6000828254612a039190615a7d565b909155506000905080612a17878488613a27565b915091508215612af0576000612a2d8884613b81565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612a6357612a6081613d8d565b90505b7f0000000000000000000000000000000000000000000000000000000000000000811115612aea5760405162461bcd60e51b815260206004820152602e60248201527f446f6e2774206b6e6f7720776865726520746f2074616b65207468652072657360448201526d74206f6620746865206d6f6e657960901b6064820152608401610838565b50612afd565b612afa8782613eac565b90505b612b0681613517565b6060870151604051634e5de6c960e11b815260048101919091526001600160a01b03851690639cbbcd9290602401600060405180830381600087803b158015612b4e57600080fd5b505af1158015612b62573d6000803e3d6000fd5b5050505086600001518761012001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e88604051612bab91815260200190565b60405180910390a38651600090815260cc602090815260408083208390558951835260cd909152812090818181818181612be582826152ff565b50505050505050506000861115612c07578651612c02908761418e565b612c12565b8651612c129061438c565b50505050505050565b600081604051602001612c2e9190615920565b604051602081830303815290604052805190602001209050919050565b8051600090815260cd60205260408120815b612c6760c9612e7a565b811015612df057600080612c7c60c984613241565b90925090506001816003811115612c9557612c95615b17565b14612ca1575050612dde565b610120860151610160870151604051630cd21c5560e21b81526001600160a01b03928316600482015264ffffffffff90911660248201529083169063334871549060440160206040518083038186803b158015612cfd57600080fd5b505afa158015612d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3591906154f1565b612d40575050612dde565b6000826001600160a01b031663e5ae143f6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d7b57600080fd5b505afa158015612d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db3919061550e565b905080612dc257505050612dde565b612dcc8187615a24565b9550612dd98584836144d2565b505050505b80612de881615ae6565b915050612c5d565b5061207b8360600151612e02856144df565b8484614539565b6040516001600160a01b0380851660248301528316604482015260648101829052612e749085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261468c565b50505050565b6000610d358261475e565b6000808080612e948686614769565b9097909650945050505050565b6000808080612eb08686614769565b9150915081816003811115612ec757612ec7615b17565b9350935050509250929050565b600060d0548211612efe578160d06000828254612ef19190615a7d565b9091555060009392505050565b60d05415612f1b5760d054612f139083615a7d565b600060d05591505b60cf5460ce541115612f725760cf5460ce54612f379190615a7d565b8211612f4f578160cf6000828254612ef19190615a24565b60cf5460ce54612f5f9190615a7d565b612f699083615a7d565b60ce5460cf5591505b5090565b60405163c5b8f5cf60e01b8152600080516020615be483398151915260048201819052600080516020615b9d8339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561300357600080fd5b505afa158015612c12573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561304a5761207b836147ac565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561308357600080fd5b505afa9250505080156130b3575060408051601f3d908101601f191682019092526130b09181019061550e565b60015b6131165760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610838565b600080516020615b7d83398151915281146131855760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610838565b5061207b838383614848565b60335460ff166131da5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610838565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000613230838361486d565b6003811115610d1757610d17615b17565b6000808080612eb086866148e7565b600054610100900460ff166132775760405162461bcd60e51b8152600401610838906158d5565b565b600054610100900460ff166132a05760405162461bcd60e51b8152600401610838906158d5565b61327761491c565b600054610100900460ff166132c35760005460ff16156132c7565b303b155b6132e35760405162461bcd60e51b815260040161083890615887565b600054610100900460ff16158015613305576000805461ffff19166101011790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561336057600080fd5b505af1158015613374573d6000803e3d6000fd5b5050505060006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156133dc57600080fd5b505afa1580156133f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613414919061542c565b6001600160a01b0316146134905760405162461bcd60e51b815260206004820152603a60248201527f41737365744d616e616765722063616e277420626520736574206265666f726560448201527f20506f6c696379506f6f6c20696e697469616c697a6174696f6e0000000000006064820152608401610838565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156134eb57600080fd5b505af11580156134ff573d6000803e3d6000fd5b50505050801561103a576000805461ff001916905550565b8061351f5750565b8060cf5410613545578060cf600082825461353a9190615a7d565b9091555061103a9050565b60cf54156135625760cf5461355a9082615a7d565b600060cf5590505b8060d060008282546135749190615a24565b909155505050565b60335460ff161561359f5760405162461bcd60e51b81526004016108389061585d565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132073390565b806135dd575050565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561364157600080fd5b505afa158015613655573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613679919061542c565b6001600160a01b03161415801561369657508061369461494f565b105b1561378c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156136f457600080fd5b505afa158015613708573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372c919061542c565b6001600160a01b0316631014a0c2826040518263ffffffff1660e01b815260040161375991815260200190565b600060405180830381600087803b15801561377357600080fd5b505af1158015613787573d6000803e3d6000fd5b505050505b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b1580156137f057600080fd5b505afa158015613804573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613828919061542c565b6001600160a01b03161415801561384557508061384361494f565b105b1561394c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b1580156138a357600080fd5b505afa1580156138b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138db919061542c565b6001600160a01b031663ee842dda6138f161494f565b6138fb9084615a7d565b6040518263ffffffff1660e01b815260040161391991815260200190565b600060405180830381600087803b15801561393357600080fd5b505af1158015613947573d6000803e3d6000fd5b505050505b61086c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683836149e9565b6000610d178383614a19565b60006139aa84848460038111156139a5576139a5615b17565b614a25565b949350505050565b6000808080612e9486866148e7565b8051158015906139e857508051600090815260cc60205260409020546139e682612c1b565b145b61103a5760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610838565b60008060008060008615613b215787516040516331a9108f60e11b8152613adf916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e91613a899160040190815260200190565b60206040518083038186803b158015613aa157600080fd5b505afa158015613ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad9919061542c565b876135d4565b858860a001511115613b0257858860a00151613afb9190615a7d565b9150613b74565b613b1a8860a0015187613b159190615a7d565b612ed4565b9250613b74565b8760a00151915060ce5460cf541115613b7457613b4d60ce5460cf54613b479190615a7d565b83614a4c565b90508060cf6000828254613b619190615a7d565b90915550613b7190508183615a7d565b91505b5090969095509350505050565b60008080613b8e856144df565b9050600080613b9c87614a5b565b8851600090815260cd602052604081209294509092505b613bbc82612e7a565b811015613d8057600080613bd084846139b2565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b158015613c1e57600080fd5b505af1158015613c32573d6000803e3d6000fd5b50505060608c0151613c4691508290614aa7565b90506001600160a01b03821663aa69d74b613c618784614ba7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b158015613ca257600080fd5b505af1158015613cb6573d6000803e3d6000fd5b5050505060008a1115613d6b576000613ccf8b83614ba7565b604051630c1ceca560e21b815260048101829052600160248201529091506001600160a01b03841690633073b29490604401602060405180830381600087803b158015613d1b57600080fd5b505af1158015613d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d53919061550e565b613d5d9082615a7d565b613d67908a615a24565b9850505b50508080613d7890615ae6565b915050613bb3565b5093979650505050505050565b6000805b613d9b60c9612e7a565b811015613ea557600080613db060c984613241565b90925090506001816003811115613dc957613dc9615b17565b14613dd5575050613e93565b604051630c1ceca560e21b815260048101869052600060248201526001600160a01b03831690633073b29490604401602060405180830381600087803b158015613e1e57600080fd5b505af1158015613e32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e56919061550e565b613e609086615a7d565b94507f00000000000000000000000000000000000000000000000000000000000000008511613e90575050613ea5565b50505b80613e9d81615ae6565b915050613d91565b5090919050565b600080613eb8846144df565b9050600080613ec686614a5b565b8751600090815260cd602052604081209294509092505b613ee682612e7a565b81101561418257600080613efa84846139b2565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b158015613f4857600080fd5b505af1158015613f5c573d6000803e3d6000fd5b50505060608b0151613f7091508290614aa7565b90506001600160a01b03821663aa69d74b613f8b8784614ba7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b158015613fcc57600080fd5b505af1158015613fe0573d6000803e3d6000fd5b5050505060008911801561406457506000826001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561402a57600080fd5b505afa15801561403e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614062919061550e565b115b1561416d5760a08a015160009061407b9083614ba7565b90506141008a6140fb856001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156140bd57600080fd5b505afa1580156140d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f5919061550e565b84614a4c565b614a4c565b604051631c0f4f8160e01b8152600481018290529091506001600160a01b03841690631c0f4f8190602401600060405180830381600087803b15801561414557600080fd5b505af1158015614159573d6000803e3d6000fd5b50505050808a6141699190615a7d565b9950505b5050808061417a90615ae6565b915050613edd565b50949695505050505050565b6040516331a9108f60e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b1580156141f157600080fd5b505afa158015614205573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614229919061542c565b90506001600160a01b0381163b61423f57505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044810186905260648101859052608401602060405180830381600087803b1580156142a457600080fd5b505af19250505080156142d4575060408051601f3d908101601f191682019092526142d191810190615527565b60015b61431c573d808015614302576040519150601f19603f3d011682016040523d82523d6000602084013e614307565b606091505b5080516143145750505050565b805181602001fd5b6001600160e01b03198116636b140e9f60e11b14612e745760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b6064820152608401610838565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b1580156143ef57600080fd5b505afa158015614403573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614427919061542c565b90506001600160a01b0381163b61443c575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401602060405180830381600087803b15801561449a57600080fd5b505af19250505080156144ca575060408051601f3d908101601f191682019092526144c791810190615527565b60015b61207b575050565b60006139aa848484614a25565b6000610d3561453483606001518461014001518561016001516145029190615a94565b64ffffffffff166145139190615a5e565b61010085015161452e906a1a1601fc4ea7109e000000614ba7565b90614aa7565b614c78565b838210156145975760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f75676874206f6365616e20746f20636f7665722074686520706044820152646f6c69637960d81b6064820152608401610838565b8360005b6145a483612e7a565b81101561468457600080806145b986856139b2565b9150915060016145c887612e7a565b6145d29190615a7d565b8410156145ee576145e78761452e8b84614ba7565b92506145f2565b8492505b60405163837c83a360e01b815260048101899052602481018490526001600160a01b0383169063837c83a390604401600060405180830381600087803b15801561463b57600080fd5b505af115801561464f573d6000803e3d6000fd5b506146619250889150849050856144d2565b5061466c8386615a7d565b9450505050808061467c90615ae6565b91505061459b565b505050505050565b60006146e1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614cf69092919063ffffffff16565b80519091501561207b57808060200190518101906146ff91906154f1565b61207b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610838565b6000610d3582614d05565b6001600160a01b03811660009081526002830160205260408120548190806147a1576147958585614a19565b60009250925050612456565b600192509050612456565b6001600160a01b0381163b6148195760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610838565b600080516020615b7d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61485183614d0f565b60008251118061485e5750805b1561207b57612e748383614d4f565b6001600160a01b03811660009081526002830160205260408120548015158061489b575061489b8484614a19565b610d175760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610838565b600080806148f58585614e43565b6001600160a01b038116600090815260029690960160205260409095205494959350505050565b600054610100900460ff166149435760405162461bcd60e51b8152600401610838906158d5565b6033805460ff19169055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156149b157600080fd5b505afa1580156149c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9c919061550e565b6040516001600160a01b03831660248201526044810182905261207b90849063a9059cbb60e01b90606401612e3d565b6000610d178383614e4f565b6001600160a01b038216600090815260028401602052604081208290556139aa8484614e71565b6000818310613ea55781610d17565b6000806000614a6984614e86565b90508084610100015110614a9457600181856101000151614a8a9190615a7d565b9250925050915091565b600084610100015182614a8a9190615a7d565b600081614af65760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610838565b6000614b03600284615a3c565b9050670de0b6b3a7640000614b1a82600019615a7d565b614b249190615a3c565b841115614b7f5760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b8281614b93670de0b6b3a764000087615a5e565b614b9d9190615a24565b6139aa9190615a3c565b6000821580614bb4575081155b15614bc157506000610d35565b81614bd56002670de0b6b3a7640000615a3c565b614be190600019615a7d565b614beb9190615a3c565b831115614c465760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b670de0b6b3a7640000614c5a600282615a3c565b614c648486615a5e565b614c6e9190615a24565b610d179190615a3c565b600080614c89633b9aca0084615a5e565b905082614c9a633b9aca0083615a3c565b14610d355760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b6064820152608401610838565b60606139aa8484600085614eed565b6000610d35825490565b614d18816147ac565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b614db75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610838565b600080846001600160a01b031684604051614dd2919061574e565b600060405180830381855af49150503d8060008114614e0d576040519150601f19603f3d011682016040523d82523d6000602084013e614e12565b606091505b5091509150614e3a8282604051806060016040528060278152602001615bbd6027913961501e565b95945050505050565b6000610d178383615057565b6001600160a01b03811660009081526001830160205260408120541515610d17565b6000610d17836001600160a01b038416615081565b60008082610140015164ffffffffff1642614ea19190615a7d565b9050610d17614ee86e0612d847b578e7643c28ac00000000614ee2614ec5876144df565b614ecf9086615a5e565b614edc8860600151614c78565b906150d0565b9061518b565b61527f565b606082471015614f4e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610838565b6001600160a01b0385163b614fa55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610838565b600080866001600160a01b03168587604051614fc1919061574e565b60006040518083038185875af1925050503d8060008114614ffe576040519150601f19603f3d011682016040523d82523d6000602084013e615003565b606091505b509150915061501382828661501e565b979650505050505050565b6060831561502d575081610d17565b82511561503d5782518084602001fd5b8160405162461bcd60e51b81526004016108389190615792565b600082600001828154811061506e5761506e615b2d565b9060005260206000200154905092915050565b60008181526001830160205260408120546150c857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d35565b506000610d35565b60008215806150dd575081155b156150ea57506000610d35565b8161510260026b033b2e3c9fd0803ce8000000615a3c565b61510e90600019615a7d565b6151189190615a3c565b8311156151735760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b6b033b2e3c9fd0803ce8000000614c5a600282615a3c565b6000816151da5760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610838565b60006151e7600284615a3c565b90506b033b2e3c9fd0803ce800000061520282600019615a7d565b61520c9190615a3c565b8411156152675760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610838565b8281614b936b033b2e3c9fd0803ce800000087615a5e565b6000806152916002633b9aca00615a3c565b9050600061529f8483615a24565b9050818110156152f15760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f776044820152606401610838565b6139aa633b9aca0082615a3c565b508054600082559060005260206000209081019061103a91905b80821115612f725760008155600101615319565b8035610f5881615b59565b6000610180828403121561242457600080fd5b6000610180828403121561535e57600080fd5b6153666159c9565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101206153cc81840161532d565b908201526101406153de8382016153fa565b908201526101606153f08382016153fa565b9082015292915050565b803564ffffffffff81168114610f5857600080fd5b60006020828403121561542157600080fd5b8135610d1781615b59565b60006020828403121561543e57600080fd5b8151610d1781615b59565b6000806040838503121561545c57600080fd5b823561546781615b59565b915060208381013567ffffffffffffffff8082111561548557600080fd5b818601915086601f83011261549957600080fd5b8135818111156154ab576154ab615b43565b6154bd601f8201601f191685016159f3565b915080825287848285010111156154d357600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561550357600080fd5b8151610d1781615b6e565b60006020828403121561552057600080fd5b5051919050565b60006020828403121561553957600080fd5b81516001600160e01b031981168114610d1757600080fd5b6000806040838503121561556457600080fd5b823561556f81615b59565b915060208301356004811061558357600080fd5b809150509250929050565b600080604083850312156155a157600080fd5b82356155ac81615b59565b946020939093013593505050565b600061018082840312156155cd57600080fd5b610d178383615338565b6000806101a083850312156155eb57600080fd5b6155f58484615338565b915061018083013561558381615b6e565b6000806101a0838503121561561a57600080fd5b6156248484615338565b94610180939093013593505050565b6000610180828403121561564657600080fd5b610d17838361534b565b60008060006101c0848603121561566657600080fd5b615670858561534b565b925061018084013561568181615b59565b91506101a08401356bffffffffffffffffffffffff811681146156a357600080fd5b809150509250925092565b6000602082840312156156c057600080fd5b5035919050565b600080604083850312156156da57600080fd5b82359150602083013561558381615b6e565b600080604083850312156156ff57600080fd5b82359150602083013561558381615b59565b6000806040838503121561572457600080fd5b50508035926020909101359150565b60006020828403121561574557600080fd5b610d17826153fa565b60008251615760818460208701615aba565b9190910192915050565b602081016004831061578c57634e487b7160e01b600052602160045260246000fd5b91905290565b60208152600082518060208401526157b1816040850160208701615aba565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600061018082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161599a828501826001600160a01b03169052565b50506101408381015164ffffffffff81168483015250506101608381015164ffffffffff811684830152610d75565b604051610180810167ffffffffffffffff811182821017156159ed576159ed615b43565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615a1c57615a1c615b43565b604052919050565b60008219821115615a3757615a37615b01565b500190565b600082615a5957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615615a7857615a78615b01565b500290565b600082821015615a8f57615a8f615b01565b500390565b600064ffffffffff83811690831681811015615ab257615ab2615b01565b039392505050565b60005b83811015615ad5578181015183820152602001615abd565b83811115612e745750506000910152565b6000600019821415615afa57615afa615b01565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461103a57600080fd5b801515811461103a57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212201ab6e71ff190983488c431c6d49fae9407654bb5c8a6e8bcf67e91fcdba541c164736f6c63430008060033",
|
|
919
|
+
"bytecode": "0x6101006040523060601b6080523480156200001957600080fd5b5060405162003b5938038062003b598339810160408190526200003c9162000064565b6001600160601b0319606093841b811660a05291831b821660e05290911b1660c052620000d1565b6000806000606084860312156200007a57600080fd5b83516200008781620000b8565b60208501519093506200009a81620000b8565b6040850151909250620000ad81620000b8565b809150509250925092565b6001600160a01b0381168114620000ce57600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c613985620001d4600039600081816103ca0152818161139e01528181612391015281816127ec01528181612b670152612d650152600081816104630152818161072c01528181611411015281816114cb015281816115830152818161164f01526117980152600081816103190152818161063d015281816108d301528181610d62015281816110ff015281816111fc015281816115b10152818161183b01528181611c1a01528181611d2901528181611f01015281816122c501526127790152600081816105140152818161055d015281816107e5015281816108250152610c7e01526139856000f3fe6080604052600436106101665760003560e01c806379502c55116100d1578063b63d382e1161008a578063f3fef3a311610064578063f3fef3a314610487578063f67b2bad146104a7578063fcbb17fe146104c9578063ffa600e3146104e957600080fd5b8063b63d382e146103ee578063ca143d181461040e578063e5a6b10f1461045457600080fd5b806379502c551461030a5780637a702b3c146103515780638129fc1c146103715780638456cb5914610386578063917876601461039b578063af02808a146103bb57600080fd5b806352bab1941161012357806352bab1941461023e57806352d1902d1461025e5780635b494dd5146102735780635c975abb146102a757806365b71008146102ca5780636af6f1ef146102ea57600080fd5b806324ea54f41461016b5780633659cfe6146101a05780633f4ba83a146101c257806347e7ef24146101d75780634a47a3e0146101f75780634f1ef2861461022b575b600080fd5b34801561017757600080fd5b5061018d60008051602061393083398151915281565b6040519081526020015b60405180910390f35b3480156101ac57600080fd5b506101c06101bb366004613276565b610509565b005b3480156101ce57600080fd5b506101c06105f2565b3480156101e357600080fd5b506101c06101f23660046133f5565b6106a3565b34801561020357600080fd5b5061018d7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6101c06102393660046132b0565b6107da565b34801561024a57600080fd5b506101c0610259366004613276565b6108a7565b34801561026a57600080fd5b5061018d610c71565b34801561027f57600080fd5b5061018d7f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156102b357600080fd5b5060335460ff166040519015158152602001610197565b3480156102d657600080fd5b506101c06102e5366004613276565b610d24565b3480156102f657600080fd5b506101c0610305366004613421565b610f53565b34801561031657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610197565b34801561035d57600080fd5b506101c061036c36600461346d565b610fd7565b34801561037d57600080fd5b506101c0610ff9565b34801561039257600080fd5b506101c06110d3565b3480156103a757600080fd5b5061018d6103b63660046134b7565b611169565b3480156103c757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b3480156103fa57600080fd5b506101c0610409366004613276565b61180f565b34801561041a57600080fd5b50610447610429366004613276565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040516101979190613631565b34801561046057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b34801561049357600080fd5b5061018d6104a23660046133f5565b611a8c565b3480156104b357600080fd5b5061018d6000805160206138e983398151915281565b3480156104d557600080fd5b506101c06104e43660046133b8565b611bcf565b3480156104f557600080fd5b506101c061050436600461343e565b611e83565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561055b5760405162461bcd60e51b81526004016105529061368c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a46000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146105ca5760405162461bcd60e51b8152600401610552906136d8565b6105d381611eb6565b604080516000808252602082019092526105ef91839190611f60565b50565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561067f57600080fd5b505afa158015610693573d6000803e3d6000fd5b5050505061069f6120df565b5050565b6106ab612131565b6001600160a01b038216600090815260c9602052604090205460ff1660018160038111156106db576106db613879565b1461071f5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610552565b6107546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016338585612179565b6040516311f9fbc960e21b8152336004820152602481018390526001600160a01b038416906347e7ef2490604401602060405180830381600087803b15801561079c57600080fd5b505af11580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190613375565b50505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108235760405162461bcd60e51b81526004016105529061368c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661086c6000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146108925760405162461bcd60e51b8152600401610552906136d8565b61089b82611eb6565b61069f82826001611f60565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561091d57600080fd5b505afa158015610931573d6000803e3d6000fd5b505050506001600160a01b03821661098b5760405162461bcd60e51b815260206004820152601d60248201527f5072656d69756d734163636f756e742063616e2774206265207a65726f0000006044820152606401610552565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190613293565b6001600160a01b031614610a6c5760405162461bcd60e51b815260206004820152602760248201527f5072656d69756d734163636f756e74206e6f74206c696e6b656420746f2074686044820152661a5cc81c1bdbdb60ca1b6064820152608401610552565b6000826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190613293565b90506001600160a01b03811615610b4c576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050505b826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190613293565b90506001600160a01b03811615610c2a576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050505b826001600160a01b03167f834362a634fb37104727a80cf5e936b5b1798edffcf4a89935f19d04eb0e88ec6001604051610c649190613631565b60405180910390a2505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d115760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610552565b506000805160206138c983398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506001600160a01b038216600090815260c9602052604090205460ff166002816003811115610df457610df4613879565b14610e395760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b6044820152606401610552565b826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7257600080fd5b505afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa9190613375565b15610f065760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b6064820152608401610552565b6001600160a01b038316600081815260c96020526040808220805460ff19169055517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b610f5b612131565b42610f6e6101c083016101a08401613515565b64ffffffffff161115610fbc5760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610552565b6105ef610fce3683900383018361349a565b600060016121d3565b610fdf612131565b61069f610ff13684900384018461349a565b8260006121d3565b600054610100900460ff16158080156110195750600054600160ff909116105b806110335750303b158015611033575060005460ff166001145b61104f5760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015611072576000805461ff0019166101001790555b61107a6126a8565b6110826126cf565b61108a6126fe565b80156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6040516312d9a6ad60e01b815260008051602061393083398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506105ef61289f565b6000611173612131565b6101608401516001600160a01b03811633146111dd5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b6064820152608401610552565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b15801561123e57600080fd5b505afa158015611252573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b61127d9190613827565b8552611288856128dc565b60ca600087600001518152602001908152602001600020819055506000816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156112de57600080fd5b505afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190613293565b60405163e3638ea360e01b81529091506001600160a01b0382169063e3638ea3906113459089906004016137bd565b600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b50508751604051632851206560e21b81526001600160a01b03898116600483015260248201929092527f0000000000000000000000000000000000000000000000000000000000000000909116925063a14481949150604401600060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b50505060c087015161143b91506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169087908490612179565b610140860151156114f3576114f385826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190613293565b6101408901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b610120860151156115ab576115ab85826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190613293565b6101208901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b611677857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b15801561160857600080fd5b505afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116409190613293565b60e08901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b600086610100015111801561170e5750816001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f89190613293565b6001600160a01b0316856001600160a01b031614155b156117c0576117c085836001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b15801561175057600080fd5b505afa158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117889190613293565b6101008901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b876040516117f991906137bd565b60405180910390a25050835190505b9392505050565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b5050506001600160a01b038316600090815260c9602052604081205460ff1691508160038111156118cc576118cc613879565b146119195760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c0000000000006044820152606401610552565b6001600160a01b0383166119665760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b6044820152606401610552565b306001600160a01b0316836001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156119a957600080fd5b505afa1580156119bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e19190613293565b6001600160a01b031614611a375760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c00006044820152606401610552565b6001600160a01b038316600081815260c9602052604090819020805460ff1916600190811790915590517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b6000611a96612131565b6001600160a01b038316600090815260c9602052604090205460ff166001816003811115611ac657611ac6613879565b1480611ae357506002816003811115611ae157611ae1613879565b145b611b415760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610552565b60405163f3fef3a360e01b8152336004820181905260248201859052906001600160a01b0386169063f3fef3a390604401602060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc49190613375565b925050505b92915050565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611c5c57600080fd5b505afa158015611c70573d6000803e3d6000fd5b5050506001600160a01b038516600090815260c9602052604081205460ff169150816003811115611ca357611ca3613879565b1415611ce45760405162461bcd60e51b815260206004820152601060248201526f11551bdad95b881b9bdd08199bdd5b9960821b6044820152606401610552565b6003846003811115611cf857611cf8613879565b141580611dab5750604051632474521560e21b815260008051602061393083398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b158015611d7357600080fd5b505afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab9190613358565b611e015760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b6064820152608401610552565b6001600160a01b038516600090815260c960205260409020805485919060ff19166001836003811115611e3657611e36613879565b0217905550846001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c85604051611e749190613631565b60405180910390a25050505050565b611e8b612131565b61069f611e9d3684900384018461349a565b82611ea9576000611eaf565b83602001355b60006121d3565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611f4357600080fd5b505afa158015611f57573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f9857611f938361290c565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd157600080fd5b505afa925050508015612001575060408051601f3d908101601f19168201909252611ffe91810190613375565b60015b6120645760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610552565b6000805160206138c983398151915281146120d35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610552565b50611f938383836129a8565b6120e76129cd565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60335460ff16156121775760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610552565b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526107d4908590612a16565b6121dc83612ae8565b61016083015181806121f657506001600160a01b03811633145b6122425760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c69636965736044820152606401610552565b82158061225a575042846101a0015164ffffffffff16115b6122a65760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610552565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b15801561230757600080fd5b505afa15801561231b573d6000803e3d6000fd5b50505050836020015183111561236c5760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610552565b82158015906124f25784516040516331a9108f60e11b81526000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e916123c89160040190815260200190565b60206040518083038186803b1580156123e057600080fd5b505afa1580156123f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124189190613293565b9050826001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561245357600080fd5b505afa158015612467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248b9190613293565b6001600160a01b0316639d8c5ee78288886040518463ffffffff1660e01b81526004016124ba93929190613604565b600060405180830381600087803b1580156124d457600080fd5b505af11580156124e8573d6000803e3d6000fd5b50505050506125c1565b816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561252b57600080fd5b505afa15801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190613293565b6001600160a01b031663c7a9c70d866040518263ffffffff1660e01b815260040161258e91906137bd565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b505050505b6020850151604051636a448ef160e01b815260048101919091526001600160a01b03831690636a448ef190602401600060405180830381600087803b15801561260957600080fd5b505af115801561261d573d6000803e3d6000fd5b5050505084600001518561016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e8660405161266691815260200190565b60405180910390a38451600090815260ca602052604081205583156126965784516126919085612b4e565b6126a1565b84516126a190612d4c565b5050505050565b600054610100900460ff166121775760405162461bcd60e51b815260040161055290613772565b600054610100900460ff166126f65760405162461bcd60e51b815260040161055290613772565b612177612e92565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561284557600080fd5b505af1158015612859573d6000803e3d6000fd5b5050505080156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016110c8565b6128a7612131565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121143390565b6000816040516020016128ef91906137bd565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0381163b6129795760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610552565b6000805160206138c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6129b183612ec5565b6000825111806129be5750805b15611f93576107d48383612f05565b60335460ff166121775760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610552565b6000612a6b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ff09092919063ffffffff16565b805190915015611f935780806020019051810190612a899190613358565b611f935760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610552565b805115801590612b0f57508051600090815260ca6020526040902054612b0d826128dc565b145b6105ef5760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610552565b6040516331a9108f60e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612bb157600080fd5b505afa158015612bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be99190613293565b90506001600160a01b0381163b612bff57505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044810186905260648101859052608401602060405180830381600087803b158015612c6457600080fd5b505af1925050508015612c94575060408051601f3d908101601f19168201909252612c919181019061338e565b60015b612cdc573d808015612cc2576040519150601f19603f3d011682016040523d82523d6000602084013e612cc7565b606091505b508051612cd45750505050565b805181602001fd5b6001600160e01b03198116636b140e9f60e11b146107d45760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b6064820152608401610552565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612daf57600080fd5b505afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190613293565b90506001600160a01b0381163b612dfc575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401602060405180830381600087803b158015612e5a57600080fd5b505af1925050508015612e8a575060408051601f3d908101601f19168201909252612e879181019061338e565b60015b611f93575050565b600054610100900460ff16612eb95760405162461bcd60e51b815260040161055290613772565b6033805460ff19169055565b612ece8161290c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612f6d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610552565b600080846001600160a01b031684604051612f8891906135e8565b600060405180830381855af49150503d8060008114612fc3576040519150601f19603f3d011682016040523d82523d6000602084013e612fc8565b606091505b5091509150611bc4828260405180606001604052806027815260200161390960279139613007565b6060612fff8484600085613040565b949350505050565b60608315613016575081611808565b8251156130265782518084602001fd5b8160405162461bcd60e51b81526004016105529190613659565b6060824710156130a15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610552565b6001600160a01b0385163b6130f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610552565b600080866001600160a01b0316858760405161311491906135e8565b60006040518083038185875af1925050503d8060008114613151576040519150601f19603f3d011682016040523d82523d6000602084013e613156565b606091505b5091509150613166828286613007565b979650505050505050565b803561317c816138a5565b919050565b60006101c0828403121561319457600080fd5b50919050565b60006101c082840312156131ad57600080fd5b6131b56137cc565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160613233818401613171565b90820152610180613245838201613261565b908201526101a0613257838201613261565b9082015292915050565b803564ffffffffff8116811461317c57600080fd5b60006020828403121561328857600080fd5b8135611808816138a5565b6000602082840312156132a557600080fd5b8151611808816138a5565b600080604083850312156132c357600080fd5b82356132ce816138a5565b915060208381013567ffffffffffffffff808211156132ec57600080fd5b818601915086601f83011261330057600080fd5b8135818111156133125761331261388f565b613324601f8201601f191685016137f6565b9150808252878482850101111561333a57600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561336a57600080fd5b8151611808816138ba565b60006020828403121561338757600080fd5b5051919050565b6000602082840312156133a057600080fd5b81516001600160e01b03198116811461180857600080fd5b600080604083850312156133cb57600080fd5b82356133d6816138a5565b91506020830135600481106133ea57600080fd5b809150509250929050565b6000806040838503121561340857600080fd5b8235613413816138a5565b946020939093013593505050565b60006101c0828403121561343457600080fd5b6118088383613181565b6000806101e0838503121561345257600080fd5b61345c8484613181565b91506101c08301356133ea816138ba565b6000806101e0838503121561348157600080fd5b61348b8484613181565b946101c0939093013593505050565b60006101c082840312156134ad57600080fd5b611808838361319a565b600080600061020084860312156134cd57600080fd5b6134d7858561319a565b92506101c08401356134e8816138a5565b91506101e08401356bffffffffffffffffffffffff8116811461350a57600080fd5b809150509250925092565b60006020828403121561352757600080fd5b61180882613261565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201518184015250610160808201516135b9828501826001600160a01b03169052565b50506101808181015164ffffffffff81168483015250506101a08181015164ffffffffff8116848301526107d4565b600082516135fa81846020870161384d565b9190910192915050565b6001600160a01b038416815261020081016136226020830185613530565b826101e0830152949350505050565b602081016004831061365357634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000825180602084015261367881604085016020870161384d565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6101c08101611bc98284613530565b6040516101c0810167ffffffffffffffff811182821017156137f0576137f061388f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561381f5761381f61388f565b604052919050565b6000821982111561384857634e487b7160e01b600052601160045260246000fd5b500190565b60005b83811015613868578181015183820152602001613850565b838111156107d45750506000910152565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105ef57600080fd5b80151581146105ef57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212204c9dccbb67ddc08482365cdf6de8410e8afedcb1481ee9a3b9e305e0055a743864736f6c63430008060033",
|
|
920
|
+
"deployedBytecode": "0x6080604052600436106101665760003560e01c806379502c55116100d1578063b63d382e1161008a578063f3fef3a311610064578063f3fef3a314610487578063f67b2bad146104a7578063fcbb17fe146104c9578063ffa600e3146104e957600080fd5b8063b63d382e146103ee578063ca143d181461040e578063e5a6b10f1461045457600080fd5b806379502c551461030a5780637a702b3c146103515780638129fc1c146103715780638456cb5914610386578063917876601461039b578063af02808a146103bb57600080fd5b806352bab1941161012357806352bab1941461023e57806352d1902d1461025e5780635b494dd5146102735780635c975abb146102a757806365b71008146102ca5780636af6f1ef146102ea57600080fd5b806324ea54f41461016b5780633659cfe6146101a05780633f4ba83a146101c257806347e7ef24146101d75780634a47a3e0146101f75780634f1ef2861461022b575b600080fd5b34801561017757600080fd5b5061018d60008051602061393083398151915281565b6040519081526020015b60405180910390f35b3480156101ac57600080fd5b506101c06101bb366004613276565b610509565b005b3480156101ce57600080fd5b506101c06105f2565b3480156101e357600080fd5b506101c06101f23660046133f5565b6106a3565b34801561020357600080fd5b5061018d7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b6101c06102393660046132b0565b6107da565b34801561024a57600080fd5b506101c0610259366004613276565b6108a7565b34801561026a57600080fd5b5061018d610c71565b34801561027f57600080fd5b5061018d7f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156102b357600080fd5b5060335460ff166040519015158152602001610197565b3480156102d657600080fd5b506101c06102e5366004613276565b610d24565b3480156102f657600080fd5b506101c0610305366004613421565b610f53565b34801561031657600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610197565b34801561035d57600080fd5b506101c061036c36600461346d565b610fd7565b34801561037d57600080fd5b506101c0610ff9565b34801561039257600080fd5b506101c06110d3565b3480156103a757600080fd5b5061018d6103b63660046134b7565b611169565b3480156103c757600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b3480156103fa57600080fd5b506101c0610409366004613276565b61180f565b34801561041a57600080fd5b50610447610429366004613276565b6001600160a01b0316600090815260c9602052604090205460ff1690565b6040516101979190613631565b34801561046057600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610339565b34801561049357600080fd5b5061018d6104a23660046133f5565b611a8c565b3480156104b357600080fd5b5061018d6000805160206138e983398151915281565b3480156104d557600080fd5b506101c06104e43660046133b8565b611bcf565b3480156104f557600080fd5b506101c061050436600461343e565b611e83565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561055b5760405162461bcd60e51b81526004016105529061368c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a46000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146105ca5760405162461bcd60e51b8152600401610552906136d8565b6105d381611eb6565b604080516000808252602082019092526105ef91839190611f60565b50565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561067f57600080fd5b505afa158015610693573d6000803e3d6000fd5b5050505061069f6120df565b5050565b6106ab612131565b6001600160a01b038216600090815260c9602052604090205460ff1660018160038111156106db576106db613879565b1461071f5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b6044820152606401610552565b6107546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016338585612179565b6040516311f9fbc960e21b8152336004820152602481018390526001600160a01b038416906347e7ef2490604401602060405180830381600087803b15801561079c57600080fd5b505af11580156107b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d49190613375565b50505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108235760405162461bcd60e51b81526004016105529061368c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661086c6000805160206138c9833981519152546001600160a01b031690565b6001600160a01b0316146108925760405162461bcd60e51b8152600401610552906136d8565b61089b82611eb6565b61069f82826001611f60565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561091d57600080fd5b505afa158015610931573d6000803e3d6000fd5b505050506001600160a01b03821661098b5760405162461bcd60e51b815260206004820152601d60248201527f5072656d69756d734163636f756e742063616e2774206265207a65726f0000006044820152606401610552565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ce57600080fd5b505afa1580156109e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a069190613293565b6001600160a01b031614610a6c5760405162461bcd60e51b815260206004820152602760248201527f5072656d69756d734163636f756e74206e6f74206c696e6b656420746f2074686044820152661a5cc81c1bdbdb60ca1b6064820152608401610552565b6000826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190613293565b90506001600160a01b03811615610b4c576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610b3357600080fd5b505af1158015610b47573d6000803e3d6000fd5b505050505b826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190613293565b90506001600160a01b03811615610c2a576040516338ea38a760e21b81526001600160a01b03848116600483015282169063e3a8e29c90602401600060405180830381600087803b158015610c1157600080fd5b505af1158015610c25573d6000803e3d6000fd5b505050505b826001600160a01b03167f834362a634fb37104727a80cf5e936b5b1798edffcf4a89935f19d04eb0e88ec6001604051610c649190613631565b60405180910390a2505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d115760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610552565b506000805160206138c983398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015610dac57600080fd5b505afa158015610dc0573d6000803e3d6000fd5b505050506001600160a01b038216600090815260c9602052604090205460ff166002816003811115610df457610df4613879565b14610e395760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b6044820152606401610552565b826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7257600080fd5b505afa158015610e86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaa9190613375565b15610f065760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b6064820152608401610552565b6001600160a01b038316600081815260c96020526040808220805460ff19169055517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b610f5b612131565b42610f6e6101c083016101a08401613515565b64ffffffffff161115610fbc5760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b6044820152606401610552565b6105ef610fce3683900383018361349a565b600060016121d3565b610fdf612131565b61069f610ff13684900384018461349a565b8260006121d3565b600054610100900460ff16158080156110195750600054600160ff909116105b806110335750303b158015611033575060005460ff166001145b61104f5760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015611072576000805461ff0019166101001790555b61107a6126a8565b6110826126cf565b61108a6126fe565b80156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6040516312d9a6ad60e01b815260008051602061393083398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506105ef61289f565b6000611173612131565b6101608401516001600160a01b03811633146111dd5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b6064820152608401610552565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b15801561123e57600080fd5b505afa158015611252573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b61127d9190613827565b8552611288856128dc565b60ca600087600001518152602001908152602001600020819055506000816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b1580156112de57600080fd5b505afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190613293565b60405163e3638ea360e01b81529091506001600160a01b0382169063e3638ea3906113459089906004016137bd565b600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b50508751604051632851206560e21b81526001600160a01b03898116600483015260248201929092527f0000000000000000000000000000000000000000000000000000000000000000909116925063a14481949150604401600060405180830381600087803b1580156113e657600080fd5b505af11580156113fa573d6000803e3d6000fd5b50505060c087015161143b91506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169087908490612179565b610140860151156114f3576114f385826001600160a01b0316637b83037b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bb9190613293565b6101408901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b610120860151156115ab576115ab85826001600160a01b031663536ebbfc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190613293565b6101208901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b611677857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b15801561160857600080fd5b505afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116409190613293565b60e08901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b600086610100015111801561170e5750816001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b1580156116c057600080fd5b505afa1580156116d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f89190613293565b6001600160a01b0316856001600160a01b031614155b156117c0576117c085836001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b15801561175057600080fd5b505afa158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117889190613293565b6101008901516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190612179565b816001600160a01b03167f38f420e3792044ba61536a1f83956eefc878b3fb09a7d4a28790f05b6a3eaf3b876040516117f991906137bd565b60405180910390a25050835190505b9392505050565b6040516312d9a6ad60e01b81526000805160206138e983398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561188557600080fd5b505afa158015611899573d6000803e3d6000fd5b5050506001600160a01b038316600090815260c9602052604081205460ff1691508160038111156118cc576118cc613879565b146119195760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c0000000000006044820152606401610552565b6001600160a01b0383166119665760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b6044820152606401610552565b306001600160a01b0316836001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156119a957600080fd5b505afa1580156119bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e19190613293565b6001600160a01b031614611a375760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c00006044820152606401610552565b6001600160a01b038316600081815260c9602052604090819020805460ff1916600190811790915590517f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c91610c6491613631565b6000611a96612131565b6001600160a01b038316600090815260c9602052604090205460ff166001816003811115611ac657611ac6613879565b1480611ae357506002816003811115611ae157611ae1613879565b145b611b415760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b6064820152608401610552565b60405163f3fef3a360e01b8152336004820181905260248201859052906001600160a01b0386169063f3fef3a390604401602060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc49190613375565b925050505b92915050565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611c5c57600080fd5b505afa158015611c70573d6000803e3d6000fd5b5050506001600160a01b038516600090815260c9602052604081205460ff169150816003811115611ca357611ca3613879565b1415611ce45760405162461bcd60e51b815260206004820152601060248201526f11551bdad95b881b9bdd08199bdd5b9960821b6044820152606401610552565b6003846003811115611cf857611cf8613879565b141580611dab5750604051632474521560e21b815260008051602061393083398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b158015611d7357600080fd5b505afa158015611d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dab9190613358565b611e015760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b6064820152608401610552565b6001600160a01b038516600090815260c960205260409020805485919060ff19166001836003811115611e3657611e36613879565b0217905550846001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c85604051611e749190613631565b60405180910390a25050505050565b611e8b612131565b61069f611e9d3684900384018461349a565b82611ea9576000611eaf565b83602001355b60006121d3565b60405163c5b8f5cf60e01b8152600080516020613930833981519152600482018190526000805160206138e98339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015611f4357600080fd5b505afa158015611f57573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611f9857611f938361290c565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd157600080fd5b505afa925050508015612001575060408051601f3d908101601f19168201909252611ffe91810190613375565b60015b6120645760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610552565b6000805160206138c983398151915281146120d35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610552565b50611f938383836129a8565b6120e76129cd565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60335460ff16156121775760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610552565b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526107d4908590612a16565b6121dc83612ae8565b61016083015181806121f657506001600160a01b03811633145b6122425760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c69636965736044820152606401610552565b82158061225a575042846101a0015164ffffffffff16115b6122a65760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c69637900000000000000006044820152606401610552565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b15801561230757600080fd5b505afa15801561231b573d6000803e3d6000fd5b50505050836020015183111561236c5760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b6044820152606401610552565b82158015906124f25784516040516331a9108f60e11b81526000916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e916123c89160040190815260200190565b60206040518083038186803b1580156123e057600080fd5b505afa1580156123f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124189190613293565b9050826001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561245357600080fd5b505afa158015612467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248b9190613293565b6001600160a01b0316639d8c5ee78288886040518463ffffffff1660e01b81526004016124ba93929190613604565b600060405180830381600087803b1580156124d457600080fd5b505af11580156124e8573d6000803e3d6000fd5b50505050506125c1565b816001600160a01b03166373a952e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561252b57600080fd5b505afa15801561253f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125639190613293565b6001600160a01b031663c7a9c70d866040518263ffffffff1660e01b815260040161258e91906137bd565b600060405180830381600087803b1580156125a857600080fd5b505af11580156125bc573d6000803e3d6000fd5b505050505b6020850151604051636a448ef160e01b815260048101919091526001600160a01b03831690636a448ef190602401600060405180830381600087803b15801561260957600080fd5b505af115801561261d573d6000803e3d6000fd5b5050505084600001518561016001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e8660405161266691815260200190565b60405180910390a38451600090815260ca602052604081205583156126965784516126919085612b4e565b6126a1565b84516126a190612d4c565b5050505050565b600054610100900460ff166121775760405162461bcd60e51b815260040161055290613772565b600054610100900460ff166126f65760405162461bcd60e51b815260040161055290613772565b612177612e92565b600054610100900460ff161580801561271e5750600054600160ff909116105b806127385750303b158015612738575060005460ff166001145b6127545760405162461bcd60e51b815260040161055290613724565b6000805460ff191660011790558015612777576000805461ff0019166101001790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156127d257600080fd5b505af11580156127e6573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561284557600080fd5b505af1158015612859573d6000803e3d6000fd5b5050505080156105ef576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016110c8565b6128a7612131565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586121143390565b6000816040516020016128ef91906137bd565b604051602081830303815290604052805190602001209050919050565b6001600160a01b0381163b6129795760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610552565b6000805160206138c983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6129b183612ec5565b6000825111806129be5750805b15611f93576107d48383612f05565b60335460ff166121775760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610552565b6000612a6b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ff09092919063ffffffff16565b805190915015611f935780806020019051810190612a899190613358565b611f935760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610552565b805115801590612b0f57508051600090815260ca6020526040902054612b0d826128dc565b145b6105ef5760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b6044820152606401610552565b6040516331a9108f60e11b8152600481018390526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612bb157600080fd5b505afa158015612bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be99190613293565b90506001600160a01b0381163b612bff57505050565b6001600160a01b03811663d6281d3e336040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044810186905260648101859052608401602060405180830381600087803b158015612c6457600080fd5b505af1925050508015612c94575060408051601f3d908101601f19168201909252612c919181019061338e565b60015b612cdc573d808015612cc2576040519150601f19603f3d011682016040523d82523d6000602084013e612cc7565b606091505b508051612cd45750505050565b805181602001fd5b6001600160e01b03198116636b140e9f60e11b146107d45760405162461bcd60e51b815260206004820152602760248201527f496e76616c69642072657475726e2076616c75652066726f6d20506f6c696379604482015266102437b63232b960c91b6064820152608401610552565b6040516331a9108f60e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e9060240160206040518083038186803b158015612daf57600080fd5b505afa158015612dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de79190613293565b90506001600160a01b0381163b612dfc575050565b6001600160a01b03811663e8e617b7336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101859052606401602060405180830381600087803b158015612e5a57600080fd5b505af1925050508015612e8a575060408051601f3d908101601f19168201909252612e879181019061338e565b60015b611f93575050565b600054610100900460ff16612eb95760405162461bcd60e51b815260040161055290613772565b6033805460ff19169055565b612ece8161290c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612f6d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610552565b600080846001600160a01b031684604051612f8891906135e8565b600060405180830381855af49150503d8060008114612fc3576040519150601f19603f3d011682016040523d82523d6000602084013e612fc8565b606091505b5091509150611bc4828260405180606001604052806027815260200161390960279139613007565b6060612fff8484600085613040565b949350505050565b60608315613016575081611808565b8251156130265782518084602001fd5b8160405162461bcd60e51b81526004016105529190613659565b6060824710156130a15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610552565b6001600160a01b0385163b6130f85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610552565b600080866001600160a01b0316858760405161311491906135e8565b60006040518083038185875af1925050503d8060008114613151576040519150601f19603f3d011682016040523d82523d6000602084013e613156565b606091505b5091509150613166828286613007565b979650505050505050565b803561317c816138a5565b919050565b60006101c0828403121561319457600080fd5b50919050565b60006101c082840312156131ad57600080fd5b6131b56137cc565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100808301358183015250610120808301358183015250610140808301358183015250610160613233818401613171565b90820152610180613245838201613261565b908201526101a0613257838201613261565b9082015292915050565b803564ffffffffff8116811461317c57600080fd5b60006020828403121561328857600080fd5b8135611808816138a5565b6000602082840312156132a557600080fd5b8151611808816138a5565b600080604083850312156132c357600080fd5b82356132ce816138a5565b915060208381013567ffffffffffffffff808211156132ec57600080fd5b818601915086601f83011261330057600080fd5b8135818111156133125761331261388f565b613324601f8201601f191685016137f6565b9150808252878482850101111561333a57600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561336a57600080fd5b8151611808816138ba565b60006020828403121561338757600080fd5b5051919050565b6000602082840312156133a057600080fd5b81516001600160e01b03198116811461180857600080fd5b600080604083850312156133cb57600080fd5b82356133d6816138a5565b91506020830135600481106133ea57600080fd5b809150509250929050565b6000806040838503121561340857600080fd5b8235613413816138a5565b946020939093013593505050565b60006101c0828403121561343457600080fd5b6118088383613181565b6000806101e0838503121561345257600080fd5b61345c8484613181565b91506101c08301356133ea816138ba565b6000806101e0838503121561348157600080fd5b61348b8484613181565b946101c0939093013593505050565b60006101c082840312156134ad57600080fd5b611808838361319a565b600080600061020084860312156134cd57600080fd5b6134d7858561319a565b92506101c08401356134e8816138a5565b91506101e08401356bffffffffffffffffffffffff8116811461350a57600080fd5b809150509250925092565b60006020828403121561352757600080fd5b61180882613261565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e0830152610100808201518184015250610120808201518184015250610140808201518184015250610160808201516135b9828501826001600160a01b03169052565b50506101808181015164ffffffffff81168483015250506101a08181015164ffffffffff8116848301526107d4565b600082516135fa81846020870161384d565b9190910192915050565b6001600160a01b038416815261020081016136226020830185613530565b826101e0830152949350505050565b602081016004831061365357634e487b7160e01b600052602160045260246000fd5b91905290565b602081526000825180602084015261367881604085016020870161384d565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6101c08101611bc98284613530565b6040516101c0810167ffffffffffffffff811182821017156137f0576137f061388f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561381f5761381f61388f565b604052919050565b6000821982111561384857634e487b7160e01b600052601160045260246000fd5b500190565b60005b83811015613868578181015183820152602001613850565b838111156107d45750506000910152565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105ef57600080fd5b80151581146105ef57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a26469706673582212204c9dccbb67ddc08482365cdf6de8410e8afedcb1481ee9a3b9e305e0055a743864736f6c63430008060033",
|
|
1167
921
|
"linkReferences": {},
|
|
1168
922
|
"deployedLinkReferences": {}
|
|
1169
923
|
}
|