@flarenetwork/flare-periphery-contract-artifacts 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/coston/deploys/contractAddresses.d.ts +1 -0
  2. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  3. package/dist/coston/deploys/contractAddresses.js +1 -0
  4. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  5. package/dist/coston/deploys/coston.json +5 -0
  6. package/dist/coston/deploys/mapper.d.ts.map +1 -1
  7. package/dist/coston/deploys/mapper.js +6 -2
  8. package/dist/coston/deploys/mapper.js.map +1 -1
  9. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  10. package/dist/coston2/abis.coston2.js +8 -2
  11. package/dist/coston2/abis.coston2.js.map +1 -1
  12. package/dist/coston2/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  13. package/dist/coston2/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  14. package/dist/coston2/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  15. package/dist/coston2/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  16. package/dist/coston2/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  17. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  18. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  19. package/dist/coston2/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  20. package/dist/coston2/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  21. package/dist/coston2/deploys/contractAddresses.d.ts +2 -1
  22. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  23. package/dist/coston2/deploys/contractAddresses.js +5 -4
  24. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  25. package/dist/coston2/deploys/coston2.json +13 -8
  26. package/dist/coston2/deploys/mapper.d.ts.map +1 -1
  27. package/dist/coston2/deploys/mapper.js +6 -2
  28. package/dist/coston2/deploys/mapper.js.map +1 -1
  29. package/dist/flare/abis.flare.d.ts.map +1 -1
  30. package/dist/flare/abis.flare.js +8 -2
  31. package/dist/flare/abis.flare.js.map +1 -1
  32. package/dist/flare/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +72 -2
  33. package/dist/flare/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  34. package/dist/flare/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +2 -2
  35. package/dist/flare/artifacts/contracts/genesis/implementation/DistributionTreasury.sol/DistributionTreasury.json +17 -64
  36. package/dist/flare/artifacts/contracts/token/lib/IICombinedNatBalance.sol/IICombinedNatBalance.json +54 -0
  37. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +148 -231
  38. package/dist/flare/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  39. package/dist/flare/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  40. package/dist/flare/deploys/contractAddresses.d.ts +2 -1
  41. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  42. package/dist/flare/deploys/contractAddresses.js +5 -4
  43. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  44. package/dist/flare/deploys/flare.json +13 -8
  45. package/dist/flare/deploys/mapper.d.ts.map +1 -1
  46. package/dist/flare/deploys/mapper.js +6 -2
  47. package/dist/flare/deploys/mapper.js.map +1 -1
  48. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  49. package/dist/songbird/abis.songbird.js +52 -4
  50. package/dist/songbird/abis.songbird.js.map +1 -1
  51. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdatable.sol/AddressUpdatable.json +42 -0
  52. package/dist/songbird/artifacts/contracts/addressUpdater/implementation/AddressUpdater.sol/AddressUpdater.json +381 -0
  53. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdatable.sol/IIAddressUpdatable.json +29 -0
  54. package/dist/songbird/artifacts/contracts/addressUpdater/interface/IIAddressUpdater.sol/IIAddressUpdater.json +105 -0
  55. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +1151 -0
  56. package/dist/songbird/artifacts/contracts/claiming/implementation/CloneFactory.sol/CloneFactory.json +10 -0
  57. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +346 -0
  58. package/dist/songbird/artifacts/contracts/claiming/interface/IIClaimSetupManager.sol/IIClaimSetupManager.json +795 -0
  59. package/dist/songbird/artifacts/contracts/claiming/interface/IIDelegationAccount.sol/IIDelegationAccount.json +316 -0
  60. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +175 -26
  61. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +758 -146
  62. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtso.sol/IIFtso.json +162 -20
  63. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManager.sol/IIFtsoManager.json +321 -46
  64. package/dist/songbird/artifacts/contracts/ftso/interface/IIFtsoManagerV1.sol/IIFtsoManagerV1.json +102 -0
  65. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  66. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +43 -0
  67. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  68. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoMedian.sol/FtsoMedian.json +2 -2
  69. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +184 -3
  70. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  71. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  72. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +164 -22
  73. package/dist/songbird/artifacts/contracts/genesis/implementation/GovernanceSettings.sol/GovernanceSettings.json +224 -0
  74. package/dist/songbird/artifacts/contracts/genesis/implementation/PriceSubmitter.sol/PriceSubmitter.json +2 -2
  75. package/dist/songbird/artifacts/contracts/genesis/implementation/StateConnector.sol/StateConnector.json +106 -785
  76. package/dist/songbird/artifacts/contracts/genesis/interface/IFtsoManagerGenesis.sol/IFtsoManagerGenesis.json +24 -0
  77. package/dist/songbird/artifacts/contracts/{tokenPools/interface/IIDataAvailabilityRewardManager.sol/IIDataAvailabilityRewardManager.json → governance/implementation/GovernedBaseV2.sol/GovernedBaseV2.json} +97 -91
  78. package/dist/songbird/artifacts/contracts/governance/implementation/GovernedV2.sol/GovernedV2.json +220 -0
  79. package/dist/songbird/artifacts/contracts/governance/implementation/Governor.sol/Governor.json +22 -154
  80. package/dist/songbird/artifacts/contracts/governance/implementation/GovernorProposer.sol/GovernorProposer.json +126 -32
  81. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  82. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +161 -90
  83. package/dist/songbird/artifacts/contracts/governance/interface/IIPollingFoundation.sol/IIPollingFoundation.json +0 -31
  84. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  85. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  86. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  87. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  88. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  89. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  90. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  91. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  92. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +25 -2
  93. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  94. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +69 -0
  95. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +949 -0
  96. package/dist/songbird/artifacts/contracts/tokenPools/lib/DataProviderFee.sol/DataProviderFee.json +10 -0
  97. package/dist/songbird/artifacts/contracts/utils/implementation/AddressSet.sol/AddressSet.json +10 -0
  98. package/dist/songbird/artifacts/contracts/utils/implementation/FlareContractRegistry.sol/FlareContractRegistry.json +147 -0
  99. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +327 -33
  100. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoRegistryProxy.sol/FtsoRegistryProxy.json +272 -0
  101. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +440 -0
  102. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +238 -0
  103. package/dist/songbird/artifacts/contracts/utils/implementation/ProxyGoverned.sol/ProxyGoverned.json +256 -0
  104. package/dist/songbird/artifacts/contracts/utils/implementation/RevertErrorTracking.sol/RevertErrorTracking.json +2 -20
  105. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  106. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistry.sol/IIFtsoRegistry.json +175 -13
  107. package/dist/songbird/artifacts/contracts/utils/interface/IIFtsoRegistryV1.sol/IIFtsoRegistryV1.json +120 -0
  108. package/dist/songbird/artifacts/contracts/utils/interface/IIRandomProvider.sol/IIRandomProvider.json +60 -0
  109. package/dist/songbird/artifacts/contracts/utils/interface/IUpdateValidators.sol/IUpdateValidators.json +18 -0
  110. package/dist/songbird/deploys/contractAddresses.d.ts +3 -0
  111. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  112. package/dist/songbird/deploys/contractAddresses.js +19 -16
  113. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  114. package/dist/songbird/deploys/mapper.d.ts.map +1 -1
  115. package/dist/songbird/deploys/mapper.js +6 -2
  116. package/dist/songbird/deploys/mapper.js.map +1 -1
  117. package/dist/songbird/deploys/songbird.json +31 -16
  118. package/package.json +1 -1
  119. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  120. package/dist/flare/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -561
  121. package/dist/songbird/artifacts/contracts/tokenPools/implementation/DataAvailabilityRewardManager.sol/DataAvailabilityRewardManager.json +0 -566
@@ -11,13 +11,13 @@
11
11
  "type": "address"
12
12
  },
13
13
  {
14
- "internalType": "address",
15
- "name": "_addressUpdater",
14
+ "internalType": "contract FlareDaemon",
15
+ "name": "_flareDaemon",
16
16
  "type": "address"
17
17
  },
18
18
  {
19
- "internalType": "contract IPriceSubmitter",
20
- "name": "_priceSubmitter",
19
+ "internalType": "address",
20
+ "name": "_addressUpdater",
21
21
  "type": "address"
22
22
  },
23
23
  {
@@ -89,44 +89,6 @@
89
89
  "name": "AccountOptOut",
90
90
  "type": "event"
91
91
  },
92
- {
93
- "anonymous": false,
94
- "inputs": [
95
- {
96
- "indexed": false,
97
- "internalType": "address",
98
- "name": "rewardOwner",
99
- "type": "address"
100
- },
101
- {
102
- "indexed": false,
103
- "internalType": "address[]",
104
- "name": "recipients",
105
- "type": "address[]"
106
- }
107
- ],
108
- "name": "AllowedClaimRecipientsChanged",
109
- "type": "event"
110
- },
111
- {
112
- "anonymous": false,
113
- "inputs": [
114
- {
115
- "indexed": false,
116
- "internalType": "address",
117
- "name": "rewardOwner",
118
- "type": "address"
119
- },
120
- {
121
- "indexed": false,
122
- "internalType": "address[]",
123
- "name": "executors",
124
- "type": "address[]"
125
- }
126
- ],
127
- "name": "ClaimExecutorsChanged",
128
- "type": "event"
129
- },
130
92
  {
131
93
  "anonymous": false,
132
94
  "inputs": [
@@ -230,67 +192,30 @@
230
192
  "type": "event"
231
193
  },
232
194
  {
195
+ "anonymous": false,
233
196
  "inputs": [
234
197
  {
235
- "internalType": "address",
236
- "name": "_rewardOwner",
237
- "type": "address"
238
- }
239
- ],
240
- "name": "allowedClaimRecipients",
241
- "outputs": [
242
- {
243
- "internalType": "address[]",
244
- "name": "",
245
- "type": "address[]"
246
- }
247
- ],
248
- "stateMutability": "view",
249
- "type": "function"
250
- },
251
- {
252
- "inputs": [
253
- {
254
- "internalType": "bytes4",
255
- "name": "_selector",
256
- "type": "bytes4"
257
- }
258
- ],
259
- "name": "cancelGovernanceCall",
260
- "outputs": [],
261
- "stateMutability": "nonpayable",
262
- "type": "function"
263
- },
264
- {
265
- "inputs": [
266
- {
267
- "internalType": "address",
268
- "name": "_recipient",
269
- "type": "address"
198
+ "indexed": false,
199
+ "internalType": "bool",
200
+ "name": "useGoodRandom",
201
+ "type": "bool"
270
202
  },
271
203
  {
204
+ "indexed": false,
272
205
  "internalType": "uint256",
273
- "name": "_month",
274
- "type": "uint256"
275
- }
276
- ],
277
- "name": "claim",
278
- "outputs": [
279
- {
280
- "internalType": "uint256",
281
- "name": "_amountWei",
206
+ "name": "maxWaitForGoodRandomSeconds",
282
207
  "type": "uint256"
283
208
  }
284
209
  ],
285
- "stateMutability": "nonpayable",
286
- "type": "function"
210
+ "name": "UseGoodRandomSet",
211
+ "type": "event"
287
212
  },
288
213
  {
289
214
  "inputs": [
290
215
  {
291
- "internalType": "address",
292
- "name": "_recipient",
293
- "type": "address"
216
+ "internalType": "address[]",
217
+ "name": "_rewardOwners",
218
+ "type": "address[]"
294
219
  },
295
220
  {
296
221
  "internalType": "uint256",
@@ -298,43 +223,21 @@
298
223
  "type": "uint256"
299
224
  }
300
225
  ],
301
- "name": "claimAndWrap",
302
- "outputs": [
303
- {
304
- "internalType": "uint256",
305
- "name": "_amountWei",
306
- "type": "uint256"
307
- }
308
- ],
226
+ "name": "autoClaim",
227
+ "outputs": [],
309
228
  "stateMutability": "nonpayable",
310
229
  "type": "function"
311
230
  },
312
231
  {
313
232
  "inputs": [
314
233
  {
315
- "internalType": "address",
316
- "name": "_rewardOwner",
317
- "type": "address"
318
- },
319
- {
320
- "internalType": "address",
321
- "name": "_recipient",
322
- "type": "address"
323
- },
324
- {
325
- "internalType": "uint256",
326
- "name": "_month",
327
- "type": "uint256"
328
- }
329
- ],
330
- "name": "claimAndWrapByExecutor",
331
- "outputs": [
332
- {
333
- "internalType": "uint256",
334
- "name": "_amountWei",
335
- "type": "uint256"
234
+ "internalType": "bytes4",
235
+ "name": "_selector",
236
+ "type": "bytes4"
336
237
  }
337
238
  ],
239
+ "name": "cancelGovernanceCall",
240
+ "outputs": [],
338
241
  "stateMutability": "nonpayable",
339
242
  "type": "function"
340
243
  },
@@ -354,13 +257,18 @@
354
257
  "internalType": "uint256",
355
258
  "name": "_month",
356
259
  "type": "uint256"
260
+ },
261
+ {
262
+ "internalType": "bool",
263
+ "name": "_wrap",
264
+ "type": "bool"
357
265
  }
358
266
  ],
359
- "name": "claimByExecutor",
267
+ "name": "claim",
360
268
  "outputs": [
361
269
  {
362
270
  "internalType": "uint256",
363
- "name": "_amountWei",
271
+ "name": "_rewardAmount",
364
272
  "type": "uint256"
365
273
  }
366
274
  ],
@@ -368,19 +276,13 @@
368
276
  "type": "function"
369
277
  },
370
278
  {
371
- "inputs": [
372
- {
373
- "internalType": "address",
374
- "name": "_rewardOwner",
375
- "type": "address"
376
- }
377
- ],
378
- "name": "claimExecutors",
279
+ "inputs": [],
280
+ "name": "claimSetupManager",
379
281
  "outputs": [
380
282
  {
381
- "internalType": "address[]",
283
+ "internalType": "contract ClaimSetupManager",
382
284
  "name": "",
383
- "type": "address[]"
285
+ "type": "address"
384
286
  }
385
287
  ],
386
288
  "stateMutability": "view",
@@ -388,10 +290,10 @@
388
290
  },
389
291
  {
390
292
  "inputs": [],
391
- "name": "claimSetupManager",
293
+ "name": "combinedNat",
392
294
  "outputs": [
393
295
  {
394
- "internalType": "contract ClaimSetupManager",
296
+ "internalType": "contract IICombinedNatBalance",
395
297
  "name": "",
396
298
  "type": "address"
397
299
  }
@@ -402,56 +304,26 @@
402
304
  {
403
305
  "inputs": [
404
306
  {
405
- "internalType": "uint256",
406
- "name": "_month",
407
- "type": "uint256"
408
- }
409
- ],
410
- "name": "claimToPersonalDelegationAccount",
411
- "outputs": [
412
- {
413
- "internalType": "uint256",
414
- "name": "_amountWei",
415
- "type": "uint256"
307
+ "internalType": "address[]",
308
+ "name": "_optOutAddresses",
309
+ "type": "address[]"
416
310
  }
417
311
  ],
312
+ "name": "confirmOptOutOfAirdrop",
313
+ "outputs": [],
418
314
  "stateMutability": "nonpayable",
419
315
  "type": "function"
420
316
  },
421
317
  {
422
- "inputs": [
423
- {
424
- "internalType": "address",
425
- "name": "_rewardOwner",
426
- "type": "address"
427
- },
428
- {
429
- "internalType": "uint256",
430
- "name": "_month",
431
- "type": "uint256"
432
- }
433
- ],
434
- "name": "claimToPersonalDelegationAccountByExecutor",
318
+ "inputs": [],
319
+ "name": "daemonize",
435
320
  "outputs": [
436
321
  {
437
- "internalType": "uint256",
438
- "name": "_amountWei",
439
- "type": "uint256"
440
- }
441
- ],
442
- "stateMutability": "nonpayable",
443
- "type": "function"
444
- },
445
- {
446
- "inputs": [
447
- {
448
- "internalType": "address[]",
449
- "name": "_optOutAddresses",
450
- "type": "address[]"
322
+ "internalType": "bool",
323
+ "name": "",
324
+ "type": "bool"
451
325
  }
452
326
  ],
453
- "name": "confirmOptOutOfAirdrop",
454
- "outputs": [],
455
327
  "stateMutability": "nonpayable",
456
328
  "type": "function"
457
329
  },
@@ -500,6 +372,19 @@
500
372
  "stateMutability": "nonpayable",
501
373
  "type": "function"
502
374
  },
375
+ {
376
+ "inputs": [],
377
+ "name": "flareDaemon",
378
+ "outputs": [
379
+ {
380
+ "internalType": "contract FlareDaemon",
381
+ "name": "",
382
+ "type": "address"
383
+ }
384
+ ],
385
+ "stateMutability": "view",
386
+ "type": "function"
387
+ },
503
388
  {
504
389
  "inputs": [],
505
390
  "name": "getAddressUpdater",
@@ -557,18 +442,17 @@
557
442
  "type": "function"
558
443
  },
559
444
  {
560
- "inputs": [
445
+ "inputs": [],
446
+ "name": "getClaimableMonths",
447
+ "outputs": [
561
448
  {
562
449
  "internalType": "uint256",
563
- "name": "_month",
450
+ "name": "_startMonth",
564
451
  "type": "uint256"
565
- }
566
- ],
567
- "name": "getClaimedAmount",
568
- "outputs": [
452
+ },
569
453
  {
570
454
  "internalType": "uint256",
571
- "name": "_amountWei",
455
+ "name": "_endMonth",
572
456
  "type": "uint256"
573
457
  }
574
458
  ],
@@ -576,27 +460,16 @@
576
460
  "type": "function"
577
461
  },
578
462
  {
579
- "inputs": [
580
- {
581
- "internalType": "address",
582
- "name": "_account",
583
- "type": "address"
584
- },
585
- {
586
- "internalType": "uint256",
587
- "name": "_month",
588
- "type": "uint256"
589
- }
590
- ],
591
- "name": "getClaimedAmountOf",
463
+ "inputs": [],
464
+ "name": "getContractName",
592
465
  "outputs": [
593
466
  {
594
- "internalType": "uint256",
595
- "name": "_amountWei",
596
- "type": "uint256"
467
+ "internalType": "string",
468
+ "name": "",
469
+ "type": "string"
597
470
  }
598
471
  ],
599
- "stateMutability": "view",
472
+ "stateMutability": "pure",
600
473
  "type": "function"
601
474
  },
602
475
  {
@@ -645,7 +518,7 @@
645
518
  "type": "uint256"
646
519
  }
647
520
  ],
648
- "stateMutability": "nonpayable",
521
+ "stateMutability": "view",
649
522
  "type": "function"
650
523
  },
651
524
  {
@@ -700,6 +573,38 @@
700
573
  "stateMutability": "view",
701
574
  "type": "function"
702
575
  },
576
+ {
577
+ "inputs": [],
578
+ "name": "maxWaitForGoodRandomSeconds",
579
+ "outputs": [
580
+ {
581
+ "internalType": "uint256",
582
+ "name": "",
583
+ "type": "uint256"
584
+ }
585
+ ],
586
+ "stateMutability": "view",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [
591
+ {
592
+ "internalType": "address",
593
+ "name": "_rewardOwner",
594
+ "type": "address"
595
+ }
596
+ ],
597
+ "name": "nextClaimableMonth",
598
+ "outputs": [
599
+ {
600
+ "internalType": "uint256",
601
+ "name": "",
602
+ "type": "uint256"
603
+ }
604
+ ],
605
+ "stateMutability": "view",
606
+ "type": "function"
607
+ },
703
608
  {
704
609
  "inputs": [
705
610
  {
@@ -769,7 +674,7 @@
769
674
  "name": "priceSubmitter",
770
675
  "outputs": [
771
676
  {
772
- "internalType": "contract IPriceSubmitter",
677
+ "internalType": "contract IIRandomProvider",
773
678
  "name": "",
774
679
  "type": "address"
775
680
  }
@@ -792,26 +697,7 @@
792
697
  },
793
698
  {
794
699
  "inputs": [],
795
- "name": "secondsTillNextClaim",
796
- "outputs": [
797
- {
798
- "internalType": "uint256",
799
- "name": "_timeTill",
800
- "type": "uint256"
801
- }
802
- ],
803
- "stateMutability": "view",
804
- "type": "function"
805
- },
806
- {
807
- "inputs": [
808
- {
809
- "internalType": "address[]",
810
- "name": "_recipients",
811
- "type": "address[]"
812
- }
813
- ],
814
- "name": "setAllowedClaimRecipients",
700
+ "name": "sendFundsBackToTreasury",
815
701
  "outputs": [],
816
702
  "stateMutability": "nonpayable",
817
703
  "type": "function"
@@ -819,25 +705,30 @@
819
705
  {
820
706
  "inputs": [
821
707
  {
822
- "internalType": "address[]",
823
- "name": "_executors",
824
- "type": "address[]"
708
+ "internalType": "uint256",
709
+ "name": "_entitlementStartTs",
710
+ "type": "uint256"
825
711
  }
826
712
  ],
827
- "name": "setClaimExecutors",
713
+ "name": "setEntitlementStart",
828
714
  "outputs": [],
829
715
  "stateMutability": "nonpayable",
830
716
  "type": "function"
831
717
  },
832
718
  {
833
719
  "inputs": [
720
+ {
721
+ "internalType": "bool",
722
+ "name": "_useGoodRandom",
723
+ "type": "bool"
724
+ },
834
725
  {
835
726
  "internalType": "uint256",
836
- "name": "_entitlementStartTs",
727
+ "name": "_maxWaitForGoodRandomSeconds",
837
728
  "type": "uint256"
838
729
  }
839
730
  ],
840
- "name": "setEntitlementStart",
731
+ "name": "setUseGoodRandom",
841
732
  "outputs": [],
842
733
  "stateMutability": "nonpayable",
843
734
  "type": "function"
@@ -883,12 +774,12 @@
883
774
  },
884
775
  {
885
776
  "inputs": [],
886
- "name": "supply",
777
+ "name": "switchToFallbackMode",
887
778
  "outputs": [
888
779
  {
889
- "internalType": "contract Supply",
780
+ "internalType": "bool",
890
781
  "name": "",
891
- "type": "address"
782
+ "type": "bool"
892
783
  }
893
784
  ],
894
785
  "stateMutability": "view",
@@ -1072,6 +963,19 @@
1072
963
  "stateMutability": "nonpayable",
1073
964
  "type": "function"
1074
965
  },
966
+ {
967
+ "inputs": [],
968
+ "name": "useGoodRandom",
969
+ "outputs": [
970
+ {
971
+ "internalType": "bool",
972
+ "name": "",
973
+ "type": "bool"
974
+ }
975
+ ],
976
+ "stateMutability": "view",
977
+ "type": "function"
978
+ },
1075
979
  {
1076
980
  "inputs": [
1077
981
  {
@@ -1109,13 +1013,26 @@
1109
1013
  "stateMutability": "view",
1110
1014
  "type": "function"
1111
1015
  },
1016
+ {
1017
+ "inputs": [],
1018
+ "name": "waitingForGoodRandomSinceTs",
1019
+ "outputs": [
1020
+ {
1021
+ "internalType": "uint256",
1022
+ "name": "",
1023
+ "type": "uint256"
1024
+ }
1025
+ ],
1026
+ "stateMutability": "view",
1027
+ "type": "function"
1028
+ },
1112
1029
  {
1113
1030
  "stateMutability": "payable",
1114
1031
  "type": "receive"
1115
1032
  }
1116
1033
  ],
1117
- "bytecode": "0x60e06040523480156200001157600080fd5b5060405162004dbe38038062004dbe833981810160405260c08110156200003757600080fd5b508051602082015160408301516060840151608085015160a09095015193949293919290918486806001600160a01b038116156200007a576200007a8162000375565b506001600160a01b038116620000ca576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600255620000db8162000438565b5060408051808201909152600c81526b61646472657373207a65726f60a01b60208201526001600160a01b038516620001955760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001595781810151838201526020016200013f565b50505050905090810190601f168015620001875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051808201909152600c81526b61646472657373207a65726f60a01b60208201526001600160a01b038416620002115760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620001595781810151838201526020016200013f565b5081836001600160a01b03163110156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b81525090620002975760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620001595781810151838201526020016200013f565b5060408051808201909152600b81526a1a5b881d1a19481c185cdd60aa1b6020820152428210156200030c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620001595781810151838201526020016200013f565b506001600160601b0319606085811b821660a05284901b1660c0526003829055608081905260078190556040805182815290517f6887b4fbe6e282072c586eed840058a3507439898b1521541253e5a78a41c69b9181900360200190a15050505050506200045c565b600054600160a01b900460ff1615620003d5576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160a05160601c60c05160601c61490c620004b26000398061036c52806114c35280611ffc5280614211528061429b5280614312525080612f2452806140735250806127115280612c62525061490c6000f3fe6080604052600436106103385760003560e01c806399a60b8a116101ab578063d9d065c1116100f7578063e60eb6ff11610095578063f2325e381161006f578063f2325e3814610f0b578063f2a1f76714610f20578063f5a9838314610f35578063f937d6ad14610f4a57610418565b8063e60eb6ff14610ea2578063f12d31ae14610eb7578063f1e01c2214610ee157610418565b8063dfd14c34116100d1578063dfd14c3414610e06578063e17f212e14610e39578063e28ef1f714610e4e578063e4c1e96c14610e7857610418565b8063d9d065c114610d9d578063dcce6c0a14610dc7578063ddd1b67e14610df157610418565b8063aad3ec9611610164578063b00c0b761161013e578063b00c0b7614610b77578063c4db961914610ca7578063d2a4ac6114610cbc578063d461048314610d6a57610418565b8063aad3ec9614610b14578063ae67716114610b4d578063af3267fe14610b6257610418565b806399a60b8a14610a265780639d6a890f14610a5f5780639edbf00714610a925780639f71043e14610aa7578063a75e4f1414610abc578063aa7579ac14610aff57610418565b8063429c6e5b1161028557806362354e031161022357806375f12b21116101fd57806375f12b211461090f5780637d8ca2421461092457806389e6faa61461094e5780639119c4941461097857610418565b806362354e031461081357806367fc40291461082857806374e6310e1461085c57610418565b80635aa6e6751161025f5780635aa6e6751461078b5780635ff27079146107a057806361a30370146107d457806361d027b3146107fe57610418565b8063429c6e5b146107375780634bb5696a146107615780635267a15d1461077657610418565b806307da68f5116102f25780632dafdbbf116102cc5780632dafdbbf146106015780632e6584521461063457806333cd24001461066d5780633f317fe1146106b457610418565b806307da68f514610541578063220c1c1614610556578063257a7ee2146105d157610418565b80621dbaf81461041d578063014661da1461046857806302366648146104ab5780630421a176146104c0578063047fc9aa146104f95780630732d2ea1461052a57610418565b366104185760408051808201909152600d81526c7472656173757279206f6e6c7960981b6020820152336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103da5781810151838201526020016103c2565b50505050905090810190601f1680156104075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50005b600080fd5b34801561042957600080fd5b506104566004803603604081101561044057600080fd5b506001600160a01b038135169060200135610f5f565b60408051918252519081900360200190f35b34801561047457600080fd5b506104566004803603606081101561048b57600080fd5b506001600160a01b0381358116916020810135909116906040013561125d565b3480156104b757600080fd5b506104566113c7565b3480156104cc57600080fd5b50610456600480360360408110156104e357600080fd5b506001600160a01b0381351690602001356113cd565b34801561050557600080fd5b5061050e611471565b604080516001600160a01b039092168252519081900360200190f35b34801561053657600080fd5b5061053f611480565b005b34801561054d57600080fd5b5061053f61150c565b34801561056257600080fd5b5061053f6004803603602081101561057957600080fd5b810190602081018135600160201b81111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460208302840111600160201b831117156105c657600080fd5b50909250905061154d565b3480156105dd57600080fd5b50610456600480360360408110156105f457600080fd5b508035906020013561177a565b34801561060d57600080fd5b506106166117ab565b60408051938452602084019290925282820152519081900360600190f35b34801561064057600080fd5b506104566004803603604081101561065757600080fd5b506001600160a01b0381351690602001356118d3565b34801561067957600080fd5b506106a06004803603602081101561069057600080fd5b50356001600160a01b031661195d565b604080519115158252519081900360200190f35b3480156106c057600080fd5b506106e7600480360360208110156106d757600080fd5b50356001600160a01b0316611972565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561072357818101518382015260200161070b565b505050509050019250505060405180910390f35b34801561074357600080fd5b506104566004803603602081101561075a57600080fd5b50356119e8565b34801561076d57600080fd5b50610456611a7e565b34801561078257600080fd5b5061050e611bc2565b34801561079757600080fd5b5061050e611be7565b3480156107ac57600080fd5b5061053f600480360360208110156107c357600080fd5b50356001600160e01b031916611c7b565b3480156107e057600080fd5b5061050e600480360360208110156107f757600080fd5b5035611fd0565b34801561080a57600080fd5b5061050e611ffa565b34801561081f57600080fd5b5061050e61201e565b34801561083457600080fd5b5061053f6004803603602081101561084b57600080fd5b50356001600160e01b031916612029565b34801561086857600080fd5b506108906004803603602081101561087f57600080fd5b50356001600160e01b031916612111565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108d35781810151838201526020016108bb565b50505050905090810190601f1680156109005780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561091b57600080fd5b506106a06121b7565b34801561093057600080fd5b506104566004803603602081101561094757600080fd5b50356121c0565b34801561095a57600080fd5b506104566004803603602081101561097157600080fd5b5035612249565b34801561098457600080fd5b5061053f6004803603602081101561099b57600080fd5b810190602081018135600160201b8111156109b557600080fd5b8201836020820111156109c757600080fd5b803590602001918460208302840111600160201b831117156109e857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061225b945050505050565b348015610a3257600080fd5b5061045660048036036040811015610a4957600080fd5b506001600160a01b0381351690602001356122fd565b348015610a6b57600080fd5b5061053f60048036036020811015610a8257600080fd5b50356001600160a01b03166123db565b348015610a9e57600080fd5b5061050e612494565b348015610ab357600080fd5b506104566124a3565b348015610ac857600080fd5b5061045660048036036060811015610adf57600080fd5b506001600160a01b038135811691602081013590911690604001356124a9565b348015610b0b57600080fd5b50610456612583565b348015610b2057600080fd5b5061045660048036036040811015610b3757600080fd5b506001600160a01b038135169060200135612641565b348015610b5957600080fd5b5061045661270f565b348015610b6e57600080fd5b50610456612733565b348015610b8357600080fd5b5061053f60048036036040811015610b9a57600080fd5b810190602081018135600160201b811115610bb457600080fd5b820183602082011115610bc657600080fd5b803590602001918460208302840111600160201b83111715610be757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610c3657600080fd5b820183602082011115610c4857600080fd5b803590602001918460208302840111600160201b83111715610c6957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612739945050505050565b348015610cb357600080fd5b5061050e6127e0565b348015610cc857600080fd5b5061053f60048036036020811015610cdf57600080fd5b810190602081018135600160201b811115610cf957600080fd5b820183602082011115610d0b57600080fd5b803590602001918460208302840111600160201b83111715610d2c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506127ef945050505050565b348015610d7657600080fd5b506106a060048036036020811015610d8d57600080fd5b50356001600160a01b0316612879565b348015610da957600080fd5b5061045660048036036020811015610dc057600080fd5b503561288e565b348015610dd357600080fd5b5061045660048036036020811015610dea57600080fd5b50356128a0565b348015610dfd57600080fd5b50610456612af9565b348015610e1257600080fd5b506106e760048036036020811015610e2957600080fd5b50356001600160a01b0316612b28565b348015610e4557600080fd5b506106a0612b9c565b348015610e5a57600080fd5b5061053f60048036036020811015610e7157600080fd5b5035612bac565b348015610e8457600080fd5b5061045660048036036020811015610e9b57600080fd5b5035612d4b565b348015610eae57600080fd5b50610456612d5d565b348015610ec357600080fd5b5061045660048036036020811015610eda57600080fd5b5035612d63565b348015610eed57600080fd5b5061045660048036036020811015610f0457600080fd5b5035612d75565b348015610f1757600080fd5b50610456612d87565b348015610f2c57600080fd5b5061053f612d8d565b348015610f4157600080fd5b5061053f612e68565b348015610f5657600080fd5b5061050e612f22565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090610fd65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060028054141561101c576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556001600160a01b03831660009081526014602090815260408083203384526001018252918290205482518084019093526013835272636c61696d206578656375746f72206f6e6c7960681b918301919091526110bd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50601854604080516369ea238760e01b81526001600160a01b038681166004830152915160009392909216916369ea238791602480820192602092909190829003018186803b15801561110f57600080fd5b505afa158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505160408051808201909152601781527664656c65676174696f6e206163636f756e74207a65726f60481b60208201529091506001600160a01b0382166111c15760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506111cf8482856000612f46565b9150506001600255476111e0613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906112565760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5092915050565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906112d45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060028054141561131a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b60028055838361132a8282613085565b6113378686866000612f46565b92505050600160025547611349613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906113bf5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b509392505050565b60055481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906114445760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50506001600160a01b0382166000908152600f602090815260408083208484529091529020545b92915050565b6017546001600160a01b031681565b600054600160b01b900460ff16806114a25750600054600160a81b900460ff16155b156114ff576114af6131e5565b6006546000906114e9906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163161321a565b90506003548110156114f757fe5b60035561150a565b61150a600036613274565b565b600054600160b01b900460ff168061152e5750600054600160a81b900460ff16155b156114ff5761153b6131e5565b6013805460ff1916600117905561150a565b600054600160b01b900460ff168061156f5750600054600160a81b900460ff16155b1561176b5761157c6131e5565b8060005b8181101561176457600084848381811061159657fe5b602090810292909201356001600160a01b0316600081815260108452604090819020548151808301909252600d82526c1b9bdd081bdc1d1959081bdd5d609a1b948201949094529093509160ff1690506116315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b03811660009081526011602081815260409283902054835180850190945291835270185b1c9958591e481bdc1d1959081bdd5d607a1b9083015260ff16156116c25760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b0381166000818152601160209081526040808320805460ff1916600190811790915560128054808301825594527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344490930180546001600160a01b031916851790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a250600101611580565b5050611776565b611776600036613274565b5050565b600b602052816000526040600020818154811061179657600080fd5b90600052602060002001600091509150505481565b60008060006002805414156117f5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556017546001600160a01b0316331415611814576118146133f7565b60135460ff166118265760035461182a565b6006545b92506000915061184760055460045461321a90919063ffffffff16565b6001600255905047611857613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906118cd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50909192565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b8152509061194a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506119558383613683565b949350505050565b60106020526000908152604090205460ff1681565b6001600160a01b0381166000908152601460209081526040918290208054835181840281018401909452808452606093928301828280156119dc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119be575b50505050509050919050565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611a5f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5050336000908152600f60209081526040808320938352929052205490565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611af55760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50600754602490611b169062278d0090611b10904290613ad4565b90613b31565b106040518060400160405280601081526020016f185b1c9958591e48199a5b9a5cda195960821b81525090611b8c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50611bbc611bb262278d00611bac60075442613ad490919063ffffffff16565b90613b98565b62278d0090613ad4565b90505b90565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611c0a576000546001600160a01b0316611bbc565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4a57600080fd5b505afa158015611c5e573d6000803e3d6000fd5b505050506040513d6020811015611c7457600080fd5b5051905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b158015611cbf57600080fd5b505afa158015611cd3573d6000803e3d6000fd5b505050506040513d6020811015611ce957600080fd5b5051611d2c576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611d98576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611dee576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e885780601f10611e5d57610100808354040283529160200191611e88565b820191906000526020600020905b815481529060010190602001808311611e6b57829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250611ebc9150830182614776565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310611f045780518252601f199092019160209182019101611ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611f66576040519150601f19603f3d011682016040523d82523d6000602084013e611f6b565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611fca81613bff565b50505050565b60128181548110611fe057600080fd5b6000918252602090912001546001600160a01b0316905081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60076001609c1b0181565b612031613c1c565b6001600160e01b0319811660009081526001602052604090205461209c576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b0319811660009081526001602081905260408220828155919061210c90830182614776565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156121ad5780601f10612182576101008083540402835291602001916121ad565b820191906000526020600020905b81548152906001019060200180831161219057829003601f168201915b5050505050905082565b60135460ff1681565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906122375760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506122423383613683565b9392505050565b600a6020526000908152604090205481565b3360009081526014602052604090206122749082613c7b565b7fa802dcd9d0db82c5fc0b043e16d9ab77391cff1b84415bce9e95c4a8d6fe7146338260405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156122e65781810151838201526020016122ce565b50505050905001935050505060405180910390a150565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906123745760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506002805414156123ba576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556123cb3384846001612f46565b90506001600255476111e0613060565b600054600160a01b900460ff1615612431576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6016546001600160a01b031681565b60045481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906125205760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50600280541415612566576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b6002805583836125768282613085565b6113378686866001612f46565b600080601660009054906101000a90046001600160a01b03166001600160a01b031663deea13e76040518163ffffffff1660e01b815260040160206040518083038186803b1580156125d457600080fd5b505afa1580156125e8573d6000803e3d6000fd5b505050506040513d60208110156125fe57600080fd5b5051600854600090815260096020526040902054909150801580159061262357508181105b156126375760085460010192505050611bbf565b6008549250505090565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906126b85760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506002805414156126fe576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556123cb3384846000612f46565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b612741611bc2565b6001600160a01b0316336001600160a01b03161461279d576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6127d66127d183836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250613c8e565b613dbb565b6117768282613ddf565b6018546001600160a01b031681565b3360009081526015602052604090206128089082613c7b565b7ff650948f1320658fded6be6217b1fe9963894116bc6b3dbc9b1c2cc8cf2cb11f338260405180836001600160a01b031681526020018060200182810382528381815181526020019150805190602001906020028083836000838110156122e65781810151838201526020016122ce565b60116020526000908152604090205460ff1681565b600d6020526000908152604090205481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906129175760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060028054141561295d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b60028055601854604080516369ea238760e01b815233600482015290516000926001600160a01b0316916369ea2387916024808301926020929190829003018186803b1580156129ac57600080fd5b505afa1580156129c0573d6000803e3d6000fd5b505050506040513d60208110156129d657600080fd5b505160408051808201909152601781527664656c65676174696f6e206163636f756e74207a65726f60481b60208201529091506001600160a01b038216612a5e5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50612a6c3382856000612f46565b915050600160025547612a7d613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b81525090612af35760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50919050565b600080612b1160075442613ed390919063ffffffff16565b9150612b2290508162278d00613b31565b91505090565b6001600160a01b0381166000908152601560209081526040918290208054835181840281018401909452808452606093928301828280156119dc576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116119be5750505050509050919050565b600054600160a81b900460ff1681565b600054600160b01b900460ff1680612bce5750600054600160a81b900460ff16155b15612d3d57612bdb6131e5565b42600754116040518060400160405280600f81526020016e185b1c9958591e481cdd185c9d1959608a1b81525090612c545760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50428110158015612c8557507f00000000000000000000000000000000000000000000000000000000000000008111155b60405180604001604052806015815260200174077726f6e672073746172742074696d657374616d7605c1b81525090612cff5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060078190556040805182815290517f6887b4fbe6e282072c586eed840058a3507439898b1521541253e5a78a41c69b9181900360200190a1612d48565b612d48600036613274565b50565b600c6020526000908152604090205481565b60075481565b600e6020526000908152604090205481565b60096020526000908152604090205481565b60035481565b336000908152601060209081526040918290205482518084019093526011835270185b1c9958591e481bdc1d1959081bdd5d607a1b9183019190915260ff1615612e185760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50336000818152601060209081526040808320805460ff191660011790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a2565b612e70613c1c565b600054600160a81b900460ff1615612ecf576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000612f558786613683565b90925090508015613056576001600160a01b0387166000908152600f602090815260408083208884529091529020819055600454612f93908261321a565b6004556000858152600d6020526040902054612faf9082613ad4565b6000868152600d6020908152604080832093909355600e90522054612fd49083613ad4565b6000868152600e60205260409020558315612ff857612ff38682613ef5565b613002565b6130028682613f63565b856001600160a01b0316876001600160a01b03167fbdb59bec3f0c77052f6645d7365d5008c0affb5d51489a220d01bb1af96897b08784604051808381526020018281526020019250505060405180910390a35b9695505050505050565b6000611bbc60055461307f600454600654613ad490919063ffffffff16565b90613ad4565b6001600160a01b03821660009081526014602090815260408083203384526001018252918290205482518084019093526013835272636c61696d206578656375746f72206f6e6c7960681b918301919091526131225760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50816001600160a01b0316816001600160a01b0316148061316b57506001600160a01b038083166000908152601560209081526040808320938516835260019093019052205415155b604051806040016040528060158152602001741c9958da5c1a595b9d081b9bdd08185b1b1bddd959605a1b8152509061210c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b600054600160b01b900460ff16156132125733301461320057fe5b6000805460ff60b01b1916905561150a565b61150a613c1c565b600082820183811015612242576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61327c613c1c565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156132c457600080fd5b505afa1580156132d8573d6000803e3d6000fd5b505050506040513d60208110156132ee57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450613372939285019201906147ba565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b6007541580613407575042600754115b806134155750600854602411155b1561341f5761150a565b600061343660075442613ad490919063ffffffff16565b905060006134478262278d00613b31565b6000818152600a602052604090205490915043141561346757505061150a565b62278d0081028203600061347e8262093a80613b31565b90506000811180156134905750602483105b156134cc576000838152600960205260409020546134ba5760008381526009602052604090204390555b6000838152600a602052604090204390555b6016546040805163deea13e760e01b815290516000926001600160a01b03169163deea13e7916004808301926020929190829003018186803b15801561351157600080fd5b505afa158015613525573d6000803e3d6000fd5b505050506040513d602081101561353b57600080fd5b5051600854600090815260096020526040902054909150801580159061356057508181105b1561364557600880546000818152600d60205260409020546001909101909155801561364357600554613593908261321a565b600555601754604080516370d5ae0560e01b815290516000926001600160a01b0316916370d5ae05916004808301926020929190829003018186803b1580156135db57600080fd5b505afa1580156135ef573d6000803e3d6000fd5b505050506040513d602081101561360557600080fd5b50516040519091506001600160a01b0382169083156108fc029084906000818181858888f19350505050158015613640573d6000803e3d6000fd5b50505b505b8260041480156136555750602485105b8015613664575060135460ff16155b1561367b5761367285614029565b61367b856141ac565b505050505050565b60008042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906136fb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b03841660009081526011602081815260409283902054835180850190945291835270185b1c9958591e481bdc1d1959081bdd5d607a1b9083015260ff161561378c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5082613796612583565b11156040518060400160405280600d81526020016c1b5bdb9d1a08195e1c1a5c9959609a1b8152509061380a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506040805180820190915260138152726d6f6e7468206e6f7420636c61696d61626c6560681b6020820152602484106138845760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5061388d612af9565b83106040518060400160405280601781526020017f6d6f6e7468206e6f7420636c61696d61626c6520796574000000000000000000815250906139115760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b0384166000908152600f602090815260408083208684529091529020541561394657506000905080613acd565b6000838152600d602052604090205480613967576000809250925050613acd565b6000848152600b60209081526040808320805482518185028101850190935280835291929091908301828280156139bd57602002820191906000526020600020905b8154815260200190600101908083116139a9575b5050505050905060005b6003811015613a7a5760165482516001600160a01b0390911690634ee2cd7e9089908590859081106139f557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015613a4157600080fd5b505afa158015613a55573d6000803e3d6000fd5b505050506040513d6020811015613a6b57600080fd5b505194909401936001016139c7565b5083613a8e57600080935093505050613acd565b6000858152600e602052604090205484811415613ab05750909150613acd9050565b808510613ab957fe5b84613ac5848284614357565b945094505050505b9250929050565b600082821115613b2b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211613b87576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613b9057fe5b049392505050565b6000808211613bee576040805162461bcd60e51b815260206004820152601860248201527f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000604482015290519081900360640190fd5b818381613bf757fe5b069392505050565b3d604051818101604052816000823e8215613c18578181f35b8181fd5b613c24611be7565b6001600160a01b0316336001600160a01b03161461150a576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b613c848261445d565b61177682826144d5565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613cd2578181015183820152602001613cba565b50505050905090810190601f168015613cff5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015613d6757868181518110613d3557fe5b6020026020010151831415613d5f57858181518110613d5057fe5b60200260200101519150613d67565b600101613d20565b506001600160a01b038116613db2576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b613e0682826040518060400160405280600481526020016315d3985d60e21b815250613c8e565b601660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613e55828260405180604001604052806006815260200165537570706c7960d01b815250613c8e565b601760006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613eaf82826040518060400160405280601181526020017021b630b4b6a9b2ba3ab826b0b730b3b2b960791b815250613c8e565b601880546001600160a01b0319166001600160a01b03929092169190911790555050565b60008083831115613ee957506000905080613acd565b50600193919092039150565b6016546040805163b760faf960e01b81526001600160a01b0385811660048301529151919092169163b760faf991849160248082019260009290919082900301818588803b158015613f4657600080fd5b505af1158015613f5a573d6000803e3d6000fd5b50505050505050565b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114613fae576040519150601f19603f3d011682016040523d82523d6000602084013e613fb3565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b81525090611fca5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b600081815260096020908152604080832054600a909252808320548151600380825260808201909352929390928484038390049281602001602082028036833701905050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156140ca57600080fd5b505afa1580156140de573d6000803e3d6000fd5b505050506040513d60208110156140f457600080fd5b50514201905060005b600381101561416857604080516020808201949094528082018390528151808203830181526060909101909152805192019190912090600084838161413e57fe5b0685830288010190508084838151811061415457fe5b6020908102919091010152506001016140fd565b506000868152600b60209081526040909120835161418892850190614846565b5061419282614506565b6000968752600e6020526040909620959095555050505050565b6024811080156141c857506000818152600c6020526040902054155b15612d485760006141e86141e06001840160ed61469e565b6121346146f7565b905060006142c961429960065461420e856121346003546143579092919063ffffffff16565b037f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166329d71f6d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561426857600080fd5b505afa15801561427c573d6000803e3d6000fd5b505050506040513d602081101561429257600080fd5b50516146f7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316316146f7565b6000848152600c60209081526040808320849055600d9091528082208390556006805484019055805163ec8d877760e01b81526004810184905290519293506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ec8d87779260248084019391929182900301818387803b158015613f4657600080fd5b60008082116143a0576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836143ad57506000612242565b838302838582816143ba57fe5b0414156143d3578281816143ca57fe5b04915050612242565b60008386816143de57fe5b04905060008487816143ec57fe5b06905060008587816143fa57fe5b049050600086888161440857fe5b06905061445061441c88611b10868561469e565b61444a614429868661469e565b61444a614436898761469e565b61444a8d6144448c8b61469e565b9061469e565b9061321a565b9998505050505050505050565b805415612d4857805460018201906000908390600019810190811061447e57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400181205580548190806144ae57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561445d565b60005b815181101561210c576144fe838383815181106144f157fe5b602002602001015161470d565b6001016144d8565b6000805b60038110156145ab5760165483516001600160a01b039091169063981b24d09085908490811061453657fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561457257600080fd5b505afa158015614586573d6000803e3d6000fd5b505050506040513d602081101561459c57600080fd5b5051919091019060010161450a565b506012545b8015612af3578080600190039150506000601282815481106145ce57fe5b60009182526020822001546001600160a01b031691505b60038110156146975760165485516001600160a01b0390911690634ee2cd7e90849088908590811061461357fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561465f57600080fd5b505afa158015614673573d6000803e3d6000fd5b505050506040513d602081101561468957600080fd5b5051909303926001016145e5565b50506145b0565b6000826146ad5750600061146b565b828202828482816146ba57fe5b04146122425760405162461bcd60e51b81526004018080602001828103825260218152602001806148b66021913960400191505060405180910390fd5b60008183106147065781612242565b5090919050565b6001600160a01b03811660009081526001830160205260409020541561473257611776565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b50805460018160011615610100020316600290046000825580601f1061479c5750612d48565b601f016020900490600052602060002090810190612d489190614880565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826147f05760008555614836565b82601f1061480957805160ff1916838001178555614836565b82800160010185558215614836579182015b8281111561483657825182559160200191906001019061481b565b50614842929150614880565b5090565b828054828255906000526020600020908101928215614836579160200282018281111561483657825182559160200191906001019061481b565b5b80821115614842576000815560010161488156fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122043a2c729ca2059b9d8bcc9979a904cfb7ddb99ce790f43a150d343f0d5041af364736f6c63430007060033",
1118
- "deployedBytecode": "0x6080604052600436106103385760003560e01c806399a60b8a116101ab578063d9d065c1116100f7578063e60eb6ff11610095578063f2325e381161006f578063f2325e3814610f0b578063f2a1f76714610f20578063f5a9838314610f35578063f937d6ad14610f4a57610418565b8063e60eb6ff14610ea2578063f12d31ae14610eb7578063f1e01c2214610ee157610418565b8063dfd14c34116100d1578063dfd14c3414610e06578063e17f212e14610e39578063e28ef1f714610e4e578063e4c1e96c14610e7857610418565b8063d9d065c114610d9d578063dcce6c0a14610dc7578063ddd1b67e14610df157610418565b8063aad3ec9611610164578063b00c0b761161013e578063b00c0b7614610b77578063c4db961914610ca7578063d2a4ac6114610cbc578063d461048314610d6a57610418565b8063aad3ec9614610b14578063ae67716114610b4d578063af3267fe14610b6257610418565b806399a60b8a14610a265780639d6a890f14610a5f5780639edbf00714610a925780639f71043e14610aa7578063a75e4f1414610abc578063aa7579ac14610aff57610418565b8063429c6e5b1161028557806362354e031161022357806375f12b21116101fd57806375f12b211461090f5780637d8ca2421461092457806389e6faa61461094e5780639119c4941461097857610418565b806362354e031461081357806367fc40291461082857806374e6310e1461085c57610418565b80635aa6e6751161025f5780635aa6e6751461078b5780635ff27079146107a057806361a30370146107d457806361d027b3146107fe57610418565b8063429c6e5b146107375780634bb5696a146107615780635267a15d1461077657610418565b806307da68f5116102f25780632dafdbbf116102cc5780632dafdbbf146106015780632e6584521461063457806333cd24001461066d5780633f317fe1146106b457610418565b806307da68f514610541578063220c1c1614610556578063257a7ee2146105d157610418565b80621dbaf81461041d578063014661da1461046857806302366648146104ab5780630421a176146104c0578063047fc9aa146104f95780630732d2ea1461052a57610418565b366104185760408051808201909152600d81526c7472656173757279206f6e6c7960981b6020820152336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103da5781810151838201526020016103c2565b50505050905090810190601f1680156104075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50005b600080fd5b34801561042957600080fd5b506104566004803603604081101561044057600080fd5b506001600160a01b038135169060200135610f5f565b60408051918252519081900360200190f35b34801561047457600080fd5b506104566004803603606081101561048b57600080fd5b506001600160a01b0381358116916020810135909116906040013561125d565b3480156104b757600080fd5b506104566113c7565b3480156104cc57600080fd5b50610456600480360360408110156104e357600080fd5b506001600160a01b0381351690602001356113cd565b34801561050557600080fd5b5061050e611471565b604080516001600160a01b039092168252519081900360200190f35b34801561053657600080fd5b5061053f611480565b005b34801561054d57600080fd5b5061053f61150c565b34801561056257600080fd5b5061053f6004803603602081101561057957600080fd5b810190602081018135600160201b81111561059357600080fd5b8201836020820111156105a557600080fd5b803590602001918460208302840111600160201b831117156105c657600080fd5b50909250905061154d565b3480156105dd57600080fd5b50610456600480360360408110156105f457600080fd5b508035906020013561177a565b34801561060d57600080fd5b506106166117ab565b60408051938452602084019290925282820152519081900360600190f35b34801561064057600080fd5b506104566004803603604081101561065757600080fd5b506001600160a01b0381351690602001356118d3565b34801561067957600080fd5b506106a06004803603602081101561069057600080fd5b50356001600160a01b031661195d565b604080519115158252519081900360200190f35b3480156106c057600080fd5b506106e7600480360360208110156106d757600080fd5b50356001600160a01b0316611972565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561072357818101518382015260200161070b565b505050509050019250505060405180910390f35b34801561074357600080fd5b506104566004803603602081101561075a57600080fd5b50356119e8565b34801561076d57600080fd5b50610456611a7e565b34801561078257600080fd5b5061050e611bc2565b34801561079757600080fd5b5061050e611be7565b3480156107ac57600080fd5b5061053f600480360360208110156107c357600080fd5b50356001600160e01b031916611c7b565b3480156107e057600080fd5b5061050e600480360360208110156107f757600080fd5b5035611fd0565b34801561080a57600080fd5b5061050e611ffa565b34801561081f57600080fd5b5061050e61201e565b34801561083457600080fd5b5061053f6004803603602081101561084b57600080fd5b50356001600160e01b031916612029565b34801561086857600080fd5b506108906004803603602081101561087f57600080fd5b50356001600160e01b031916612111565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108d35781810151838201526020016108bb565b50505050905090810190601f1680156109005780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561091b57600080fd5b506106a06121b7565b34801561093057600080fd5b506104566004803603602081101561094757600080fd5b50356121c0565b34801561095a57600080fd5b506104566004803603602081101561097157600080fd5b5035612249565b34801561098457600080fd5b5061053f6004803603602081101561099b57600080fd5b810190602081018135600160201b8111156109b557600080fd5b8201836020820111156109c757600080fd5b803590602001918460208302840111600160201b831117156109e857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061225b945050505050565b348015610a3257600080fd5b5061045660048036036040811015610a4957600080fd5b506001600160a01b0381351690602001356122fd565b348015610a6b57600080fd5b5061053f60048036036020811015610a8257600080fd5b50356001600160a01b03166123db565b348015610a9e57600080fd5b5061050e612494565b348015610ab357600080fd5b506104566124a3565b348015610ac857600080fd5b5061045660048036036060811015610adf57600080fd5b506001600160a01b038135811691602081013590911690604001356124a9565b348015610b0b57600080fd5b50610456612583565b348015610b2057600080fd5b5061045660048036036040811015610b3757600080fd5b506001600160a01b038135169060200135612641565b348015610b5957600080fd5b5061045661270f565b348015610b6e57600080fd5b50610456612733565b348015610b8357600080fd5b5061053f60048036036040811015610b9a57600080fd5b810190602081018135600160201b811115610bb457600080fd5b820183602082011115610bc657600080fd5b803590602001918460208302840111600160201b83111715610be757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610c3657600080fd5b820183602082011115610c4857600080fd5b803590602001918460208302840111600160201b83111715610c6957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612739945050505050565b348015610cb357600080fd5b5061050e6127e0565b348015610cc857600080fd5b5061053f60048036036020811015610cdf57600080fd5b810190602081018135600160201b811115610cf957600080fd5b820183602082011115610d0b57600080fd5b803590602001918460208302840111600160201b83111715610d2c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506127ef945050505050565b348015610d7657600080fd5b506106a060048036036020811015610d8d57600080fd5b50356001600160a01b0316612879565b348015610da957600080fd5b5061045660048036036020811015610dc057600080fd5b503561288e565b348015610dd357600080fd5b5061045660048036036020811015610dea57600080fd5b50356128a0565b348015610dfd57600080fd5b50610456612af9565b348015610e1257600080fd5b506106e760048036036020811015610e2957600080fd5b50356001600160a01b0316612b28565b348015610e4557600080fd5b506106a0612b9c565b348015610e5a57600080fd5b5061053f60048036036020811015610e7157600080fd5b5035612bac565b348015610e8457600080fd5b5061045660048036036020811015610e9b57600080fd5b5035612d4b565b348015610eae57600080fd5b50610456612d5d565b348015610ec357600080fd5b5061045660048036036020811015610eda57600080fd5b5035612d63565b348015610eed57600080fd5b5061045660048036036020811015610f0457600080fd5b5035612d75565b348015610f1757600080fd5b50610456612d87565b348015610f2c57600080fd5b5061053f612d8d565b348015610f4157600080fd5b5061053f612e68565b348015610f5657600080fd5b5061050e612f22565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090610fd65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060028054141561101c576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556001600160a01b03831660009081526014602090815260408083203384526001018252918290205482518084019093526013835272636c61696d206578656375746f72206f6e6c7960681b918301919091526110bd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50601854604080516369ea238760e01b81526001600160a01b038681166004830152915160009392909216916369ea238791602480820192602092909190829003018186803b15801561110f57600080fd5b505afa158015611123573d6000803e3d6000fd5b505050506040513d602081101561113957600080fd5b505160408051808201909152601781527664656c65676174696f6e206163636f756e74207a65726f60481b60208201529091506001600160a01b0382166111c15760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506111cf8482856000612f46565b9150506001600255476111e0613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906112565760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5092915050565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906112d45760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060028054141561131a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b60028055838361132a8282613085565b6113378686866000612f46565b92505050600160025547611349613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906113bf5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b509392505050565b60055481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906114445760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50506001600160a01b0382166000908152600f602090815260408083208484529091529020545b92915050565b6017546001600160a01b031681565b600054600160b01b900460ff16806114a25750600054600160a81b900460ff16155b156114ff576114af6131e5565b6006546000906114e9906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163161321a565b90506003548110156114f757fe5b60035561150a565b61150a600036613274565b565b600054600160b01b900460ff168061152e5750600054600160a81b900460ff16155b156114ff5761153b6131e5565b6013805460ff1916600117905561150a565b600054600160b01b900460ff168061156f5750600054600160a81b900460ff16155b1561176b5761157c6131e5565b8060005b8181101561176457600084848381811061159657fe5b602090810292909201356001600160a01b0316600081815260108452604090819020548151808301909252600d82526c1b9bdd081bdc1d1959081bdd5d609a1b948201949094529093509160ff1690506116315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b03811660009081526011602081815260409283902054835180850190945291835270185b1c9958591e481bdc1d1959081bdd5d607a1b9083015260ff16156116c25760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b0381166000818152601160209081526040808320805460ff1916600190811790915560128054808301825594527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344490930180546001600160a01b031916851790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a250600101611580565b5050611776565b611776600036613274565b5050565b600b602052816000526040600020818154811061179657600080fd5b90600052602060002001600091509150505481565b60008060006002805414156117f5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556017546001600160a01b0316331415611814576118146133f7565b60135460ff166118265760035461182a565b6006545b92506000915061184760055460045461321a90919063ffffffff16565b6001600255905047611857613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906118cd5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50909192565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b8152509061194a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506119558383613683565b949350505050565b60106020526000908152604090205460ff1681565b6001600160a01b0381166000908152601460209081526040918290208054835181840281018401909452808452606093928301828280156119dc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119be575b50505050509050919050565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611a5f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5050336000908152600f60209081526040808320938352929052205490565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611af55760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50600754602490611b169062278d0090611b10904290613ad4565b90613b31565b106040518060400160405280601081526020016f185b1c9958591e48199a5b9a5cda195960821b81525090611b8c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50611bbc611bb262278d00611bac60075442613ad490919063ffffffff16565b90613b98565b62278d0090613ad4565b90505b90565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611c0a576000546001600160a01b0316611bbc565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4a57600080fd5b505afa158015611c5e573d6000803e3d6000fd5b505050506040513d6020811015611c7457600080fd5b5051905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b158015611cbf57600080fd5b505afa158015611cd3573d6000803e3d6000fd5b505050506040513d6020811015611ce957600080fd5b5051611d2c576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611d98576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611dee576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e885780601f10611e5d57610100808354040283529160200191611e88565b820191906000526020600020905b815481529060010190602001808311611e6b57829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250611ebc9150830182614776565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310611f045780518252601f199092019160209182019101611ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611f66576040519150601f19603f3d011682016040523d82523d6000602084013e611f6b565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611fca81613bff565b50505050565b60128181548110611fe057600080fd5b6000918252602090912001546001600160a01b0316905081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60076001609c1b0181565b612031613c1c565b6001600160e01b0319811660009081526001602052604090205461209c576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b0319811660009081526001602081905260408220828155919061210c90830182614776565b505050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156121ad5780601f10612182576101008083540402835291602001916121ad565b820191906000526020600020905b81548152906001019060200180831161219057829003601f168201915b5050505050905082565b60135460ff1681565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906122375760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506122423383613683565b9392505050565b600a6020526000908152604090205481565b3360009081526014602052604090206122749082613c7b565b7fa802dcd9d0db82c5fc0b043e16d9ab77391cff1b84415bce9e95c4a8d6fe7146338260405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156122e65781810151838201526020016122ce565b50505050905001935050505060405180910390a150565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906123745760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506002805414156123ba576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556123cb3384846001612f46565b90506001600255476111e0613060565b600054600160a01b900460ff1615612431576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6016546001600160a01b031681565b60045481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906125205760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50600280541415612566576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b6002805583836125768282613085565b6113378686866001612f46565b600080601660009054906101000a90046001600160a01b03166001600160a01b031663deea13e76040518163ffffffff1660e01b815260040160206040518083038186803b1580156125d457600080fd5b505afa1580156125e8573d6000803e3d6000fd5b505050506040513d60208110156125fe57600080fd5b5051600854600090815260096020526040902054909150801580159061262357508181105b156126375760085460010192505050611bbf565b6008549250505090565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906126b85760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506002805414156126fe576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b600280556123cb3384846000612f46565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b612741611bc2565b6001600160a01b0316336001600160a01b03161461279d576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6127d66127d183836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250613c8e565b613dbb565b6117768282613ddf565b6018546001600160a01b031681565b3360009081526015602052604090206128089082613c7b565b7ff650948f1320658fded6be6217b1fe9963894116bc6b3dbc9b1c2cc8cf2cb11f338260405180836001600160a01b031681526020018060200182810382528381815181526020019150805190602001906020028083836000838110156122e65781810151838201526020016122ce565b60116020526000908152604090205460ff1681565b600d6020526000908152604090205481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906129175760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060028054141561295d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614896833981519152604482015290519081900360640190fd5b60028055601854604080516369ea238760e01b815233600482015290516000926001600160a01b0316916369ea2387916024808301926020929190829003018186803b1580156129ac57600080fd5b505afa1580156129c0573d6000803e3d6000fd5b505050506040513d60208110156129d657600080fd5b505160408051808201909152601781527664656c65676174696f6e206163636f756e74207a65726f60481b60208201529091506001600160a01b038216612a5e5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50612a6c3382856000612f46565b915050600160025547612a7d613060565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b81525090612af35760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50919050565b600080612b1160075442613ed390919063ffffffff16565b9150612b2290508162278d00613b31565b91505090565b6001600160a01b0381166000908152601560209081526040918290208054835181840281018401909452808452606093928301828280156119dc576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116119be5750505050509050919050565b600054600160a81b900460ff1681565b600054600160b01b900460ff1680612bce5750600054600160a81b900460ff16155b15612d3d57612bdb6131e5565b42600754116040518060400160405280600f81526020016e185b1c9958591e481cdd185c9d1959608a1b81525090612c545760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50428110158015612c8557507f00000000000000000000000000000000000000000000000000000000000000008111155b60405180604001604052806015815260200174077726f6e672073746172742074696d657374616d7605c1b81525090612cff5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5060078190556040805182815290517f6887b4fbe6e282072c586eed840058a3507439898b1521541253e5a78a41c69b9181900360200190a1612d48565b612d48600036613274565b50565b600c6020526000908152604090205481565b60075481565b600e6020526000908152604090205481565b60096020526000908152604090205481565b60035481565b336000908152601060209081526040918290205482518084019093526011835270185b1c9958591e481bdc1d1959081bdd5d607a1b9183019190915260ff1615612e185760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50336000818152601060209081526040808320805460ff191660011790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a2565b612e70613c1c565b600054600160a81b900460ff1615612ecf576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000612f558786613683565b90925090508015613056576001600160a01b0387166000908152600f602090815260408083208884529091529020819055600454612f93908261321a565b6004556000858152600d6020526040902054612faf9082613ad4565b6000868152600d6020908152604080832093909355600e90522054612fd49083613ad4565b6000868152600e60205260409020558315612ff857612ff38682613ef5565b613002565b6130028682613f63565b856001600160a01b0316876001600160a01b03167fbdb59bec3f0c77052f6645d7365d5008c0affb5d51489a220d01bb1af96897b08784604051808381526020018281526020019250505060405180910390a35b9695505050505050565b6000611bbc60055461307f600454600654613ad490919063ffffffff16565b90613ad4565b6001600160a01b03821660009081526014602090815260408083203384526001018252918290205482518084019093526013835272636c61696d206578656375746f72206f6e6c7960681b918301919091526131225760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b50816001600160a01b0316816001600160a01b0316148061316b57506001600160a01b038083166000908152601560209081526040808320938516835260019093019052205415155b604051806040016040528060158152602001741c9958da5c1a595b9d081b9bdd08185b1b1bddd959605a1b8152509061210c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b600054600160b01b900460ff16156132125733301461320057fe5b6000805460ff60b01b1916905561150a565b61150a613c1c565b600082820183811015612242576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61327c613c1c565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156132c457600080fd5b505afa1580156132d8573d6000803e3d6000fd5b505050506040513d60208110156132ee57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450613372939285019201906147ba565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b6007541580613407575042600754115b806134155750600854602411155b1561341f5761150a565b600061343660075442613ad490919063ffffffff16565b905060006134478262278d00613b31565b6000818152600a602052604090205490915043141561346757505061150a565b62278d0081028203600061347e8262093a80613b31565b90506000811180156134905750602483105b156134cc576000838152600960205260409020546134ba5760008381526009602052604090204390555b6000838152600a602052604090204390555b6016546040805163deea13e760e01b815290516000926001600160a01b03169163deea13e7916004808301926020929190829003018186803b15801561351157600080fd5b505afa158015613525573d6000803e3d6000fd5b505050506040513d602081101561353b57600080fd5b5051600854600090815260096020526040902054909150801580159061356057508181105b1561364557600880546000818152600d60205260409020546001909101909155801561364357600554613593908261321a565b600555601754604080516370d5ae0560e01b815290516000926001600160a01b0316916370d5ae05916004808301926020929190829003018186803b1580156135db57600080fd5b505afa1580156135ef573d6000803e3d6000fd5b505050506040513d602081101561360557600080fd5b50516040519091506001600160a01b0382169083156108fc029084906000818181858888f19350505050158015613640573d6000803e3d6000fd5b50505b505b8260041480156136555750602485105b8015613664575060135460ff16155b1561367b5761367285614029565b61367b856141ac565b505050505050565b60008042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906136fb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b03841660009081526011602081815260409283902054835180850190945291835270185b1c9958591e481bdc1d1959081bdd5d607a1b9083015260ff161561378c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5082613796612583565b11156040518060400160405280600d81526020016c1b5bdb9d1a08195e1c1a5c9959609a1b8152509061380a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506040805180820190915260138152726d6f6e7468206e6f7420636c61696d61626c6560681b6020820152602484106138845760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b5061388d612af9565b83106040518060400160405280601781526020017f6d6f6e7468206e6f7420636c61696d61626c6520796574000000000000000000815250906139115760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b506001600160a01b0384166000908152600f602090815260408083208684529091529020541561394657506000905080613acd565b6000838152600d602052604090205480613967576000809250925050613acd565b6000848152600b60209081526040808320805482518185028101850190935280835291929091908301828280156139bd57602002820191906000526020600020905b8154815260200190600101908083116139a9575b5050505050905060005b6003811015613a7a5760165482516001600160a01b0390911690634ee2cd7e9089908590859081106139f557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b158015613a4157600080fd5b505afa158015613a55573d6000803e3d6000fd5b505050506040513d6020811015613a6b57600080fd5b505194909401936001016139c7565b5083613a8e57600080935093505050613acd565b6000858152600e602052604090205484811415613ab05750909150613acd9050565b808510613ab957fe5b84613ac5848284614357565b945094505050505b9250929050565b600082821115613b2b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211613b87576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613b9057fe5b049392505050565b6000808211613bee576040805162461bcd60e51b815260206004820152601860248201527f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000604482015290519081900360640190fd5b818381613bf757fe5b069392505050565b3d604051818101604052816000823e8215613c18578181f35b8181fd5b613c24611be7565b6001600160a01b0316336001600160a01b03161461150a576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b613c848261445d565b61177682826144d5565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613cd2578181015183820152602001613cba565b50505050905090810190601f168015613cff5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015613d6757868181518110613d3557fe5b6020026020010151831415613d5f57858181518110613d5057fe5b60200260200101519150613d67565b600101613d20565b506001600160a01b038116613db2576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b613e0682826040518060400160405280600481526020016315d3985d60e21b815250613c8e565b601660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613e55828260405180604001604052806006815260200165537570706c7960d01b815250613c8e565b601760006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613eaf82826040518060400160405280601181526020017021b630b4b6a9b2ba3ab826b0b730b3b2b960791b815250613c8e565b601880546001600160a01b0319166001600160a01b03929092169190911790555050565b60008083831115613ee957506000905080613acd565b50600193919092039150565b6016546040805163b760faf960e01b81526001600160a01b0385811660048301529151919092169163b760faf991849160248082019260009290919082900301818588803b158015613f4657600080fd5b505af1158015613f5a573d6000803e3d6000fd5b50505050505050565b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114613fae576040519150601f19603f3d011682016040523d82523d6000602084013e613fb3565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b81525090611fca5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103da5781810151838201526020016103c2565b600081815260096020908152604080832054600a909252808320548151600380825260808201909352929390928484038390049281602001602082028036833701905050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156140ca57600080fd5b505afa1580156140de573d6000803e3d6000fd5b505050506040513d60208110156140f457600080fd5b50514201905060005b600381101561416857604080516020808201949094528082018390528151808203830181526060909101909152805192019190912090600084838161413e57fe5b0685830288010190508084838151811061415457fe5b6020908102919091010152506001016140fd565b506000868152600b60209081526040909120835161418892850190614846565b5061419282614506565b6000968752600e6020526040909620959095555050505050565b6024811080156141c857506000818152600c6020526040902054155b15612d485760006141e86141e06001840160ed61469e565b6121346146f7565b905060006142c961429960065461420e856121346003546143579092919063ffffffff16565b037f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166329d71f6d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561426857600080fd5b505afa15801561427c573d6000803e3d6000fd5b505050506040513d602081101561429257600080fd5b50516146f7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316316146f7565b6000848152600c60209081526040808320849055600d9091528082208390556006805484019055805163ec8d877760e01b81526004810184905290519293506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ec8d87779260248084019391929182900301818387803b158015613f4657600080fd5b60008082116143a0576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836143ad57506000612242565b838302838582816143ba57fe5b0414156143d3578281816143ca57fe5b04915050612242565b60008386816143de57fe5b04905060008487816143ec57fe5b06905060008587816143fa57fe5b049050600086888161440857fe5b06905061445061441c88611b10868561469e565b61444a614429868661469e565b61444a614436898761469e565b61444a8d6144448c8b61469e565b9061469e565b9061321a565b9998505050505050505050565b805415612d4857805460018201906000908390600019810190811061447e57fe5b60009182526020808320909101546001600160a01b0316835282019290925260400181205580548190806144ae57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561445d565b60005b815181101561210c576144fe838383815181106144f157fe5b602002602001015161470d565b6001016144d8565b6000805b60038110156145ab5760165483516001600160a01b039091169063981b24d09085908490811061453657fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561457257600080fd5b505afa158015614586573d6000803e3d6000fd5b505050506040513d602081101561459c57600080fd5b5051919091019060010161450a565b506012545b8015612af3578080600190039150506000601282815481106145ce57fe5b60009182526020822001546001600160a01b031691505b60038110156146975760165485516001600160a01b0390911690634ee2cd7e90849088908590811061461357fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561465f57600080fd5b505afa158015614673573d6000803e3d6000fd5b505050506040513d602081101561468957600080fd5b5051909303926001016145e5565b50506145b0565b6000826146ad5750600061146b565b828202828482816146ba57fe5b04146122425760405162461bcd60e51b81526004018080602001828103825260218152602001806148b66021913960400191505060405180910390fd5b60008183106147065781612242565b5090919050565b6001600160a01b03811660009081526001830160205260409020541561473257611776565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b50805460018160011615610100020316600290046000825580601f1061479c5750612d48565b601f016020900490600052602060002090810190612d489190614880565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826147f05760008555614836565b82601f1061480957805160ff1916838001178555614836565b82800160010185558215614836579182015b8281111561483657825182559160200191906001019061481b565b50614842929150614880565b5090565b828054828255906000526020600020908101928215614836579160200282018281111561483657825182559160200191906001019061481b565b5b80821115614842576000815560010161488156fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122043a2c729ca2059b9d8bcc9979a904cfb7ddb99ce790f43a150d343f0d5041af364736f6c63430007060033",
1034
+ "bytecode": "0x60e06040523480156200001157600080fd5b50604051620049c2380380620049c2833981810160405260c08110156200003757600080fd5b508051602082015160408301516060840151608085015160a090950151939492939192909183868681806001600160a01b038116156200007c576200007c81620002ce565b506001600160a01b038116620000cc576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600160a01b0381166200011d576040805162461bcd60e51b8152602060048201526011602482015270666c617265206461656d6f6e207a65726f60781b604482015290519081900360640190fd5b60601b6001600160601b0319166080525060016002556200013e8162000391565b5060408051808201909152600c81526b61646472657373207a65726f60a01b60208201526001600160a01b038416620001f85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001bc578181015183820152602001620001a2565b50505050905090810190601f168015620001ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060408051808201909152600b81526a1a5b881d1a19481c185cdd60aa1b6020820152428210156200026d5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620001bc578181015183820152602001620001a2565b506001600160601b0319606084901b1660c052600382905560a081905260078190556040805182815290517f6887b4fbe6e282072c586eed840058a3507439898b1521541253e5a78a41c69b9181900360200190a1505050505050620003b5565b600054600160a01b900460ff16156200032e576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160601c60a05160c05160601c6145ad620004156000398061036d5280610f5252806116d15280611ddf528061387452806138fe52806139925250806126ef5280612b7b5250806117f352806124505280612a5352506145ad6000f3fe6080604052600436106103395760003560e01c8063a1077532116101ab578063ddd1b67e116100f7578063f1e01c2211610095578063f5a983831161006f578063f5a9838314610d0a578063f5f5ba7214610d1f578063f937d6ad14610da9578063f94fcc6d14610dbe57610419565b8063f1e01c2214610cb6578063f2325e3814610ce0578063f2a1f76714610cf557610419565b8063e28ef1f7116100d1578063e28ef1f714610c23578063e4c1e96c14610c4d578063e60eb6ff14610c77578063f12d31ae14610c8c57610419565b8063ddd1b67e14610be4578063e17f212e14610bf9578063e22fdece14610c0e57610419565b8063b0b742ac11610164578063c4db96191161013e578063c4db961914610b5d578063cb063fa214610b72578063d461048314610b87578063d9d065c114610bba57610419565b8063b0b742ac14610ae8578063b23b6ef114610afd578063b2c1219214610b1257610419565b8063a107753214610932578063a90a38e114610947578063aa7579ac14610979578063ae6771611461098e578063af3267fe146109a3578063b00c0b76146109b857610419565b806361a30370116102855780637d8ca242116102235780638dc305fa116101fd5780638dc305fa1461085a5780639d6a890f146108d55780639edbf007146109085780639f71043e1461091d57610419565b80637d8ca242146107f15780638635f8981461081b57806389e6faa61461083057610419565b806367fc40291161025f57806367fc4029146106e05780636d0e8c341461071457806374e6310e1461072957806375f12b21146107dc57610419565b806361a303701461068c57806361d027b3146106b657806362354e03146106cb57610419565b8063257a7ee2116102f257806333cd2400116102cc57806333cd2400146105cb5780635267a15d146106125780635aa6e675146106435780635ff270791461065857610419565b8063257a7ee21461052f5780632dafdbbf1461055f5780632e6584521461059257610419565b8063023666481461041e57806302573715146104455780630732d2ea1461047357806307da68f51461048a57806315c29c5b1461049f578063220c1c16146104b457610419565b366104195760408051808201909152600d81526c7472656173757279206f6e6c7960981b6020820152336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104165760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103db5781810151838201526020016103c3565b50505050905090810190601f1680156104085780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50005b600080fd5b34801561042a57600080fd5b50610433610df1565b60408051918252519081900360200190f35b34801561045157600080fd5b5061045a610df7565b6040805192835260208301919091528051918290030190f35b34801561047f57600080fd5b50610488610f36565b005b34801561049657600080fd5b50610488610f8b565b3480156104ab57600080fd5b50610433610fa2565b3480156104c057600080fd5b50610488600480360360208110156104d757600080fd5b810190602081018135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b509092509050610fa8565b34801561053b57600080fd5b506104336004803603604081101561055257600080fd5b508035906020013561114d565b34801561056b57600080fd5b5061057461117e565b60408051938452602084019290925282820152519081900360600190f35b34801561059e57600080fd5b50610433600480360360408110156105b557600080fd5b506001600160a01b0381351690602001356111dc565b3480156105d757600080fd5b506105fe600480360360208110156105ee57600080fd5b50356001600160a01b0316611280565b604080519115158252519081900360200190f35b34801561061e57600080fd5b50610627611295565b604080516001600160a01b039092168252519081900360200190f35b34801561064f57600080fd5b506106276112ba565b34801561066457600080fd5b506104886004803603602081101561067b57600080fd5b50356001600160e01b031916611350565b34801561069857600080fd5b50610627600480360360208110156106af57600080fd5b50356116a5565b3480156106c257600080fd5b506106276116cf565b3480156106d757600080fd5b506106276116f3565b3480156106ec57600080fd5b506104886004803603602081101561070357600080fd5b50356001600160e01b0319166116fe565b34801561072057600080fd5b506105fe6117e6565b34801561073557600080fd5b5061075d6004803603602081101561074c57600080fd5b50356001600160e01b031916611bdf565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107a0578181015183820152602001610788565b50505050905090810190601f1680156107cd5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156107e857600080fd5b506105fe611c85565b3480156107fd57600080fd5b506104336004803603602081101561081457600080fd5b5035611c8e565b34801561082757600080fd5b50610488611d2b565b34801561083c57600080fd5b506104336004803603602081101561085357600080fd5b5035611eda565b34801561086657600080fd5b506104886004803603604081101561087d57600080fd5b810190602081018135600160201b81111561089757600080fd5b8201836020820111156108a957600080fd5b803590602001918460208302840111600160201b831117156108ca57600080fd5b919350915035611eec565b3480156108e157600080fd5b50610488600480360360208110156108f857600080fd5b50356001600160a01b0316612380565b34801561091457600080fd5b50610627612439565b34801561092957600080fd5b50610433612448565b34801561093e57600080fd5b5061062761244e565b34801561095357600080fd5b506104886004803603604081101561096a57600080fd5b50803515159060200135612472565b34801561098557600080fd5b50610433612611565b34801561099a57600080fd5b506104336126ed565b3480156109af57600080fd5b50610433612711565b3480156109c457600080fd5b50610488600480360360408110156109db57600080fd5b810190602081018135600160201b8111156109f557600080fd5b820183602082011115610a0757600080fd5b803590602001918460208302840111600160201b83111715610a2857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460208302840111600160201b83111715610aaa57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612717945050505050565b348015610af457600080fd5b506106276127be565b348015610b0957600080fd5b506104336127cd565b348015610b1e57600080fd5b5061043360048036036080811015610b3557600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156127d3565b348015610b6957600080fd5b506106276129c3565b348015610b7e57600080fd5b506105fe6129d2565b348015610b9357600080fd5b506105fe60048036036020811015610baa57600080fd5b50356001600160a01b03166129e0565b348015610bc657600080fd5b5061043360048036036020811015610bdd57600080fd5b50356129f5565b348015610bf057600080fd5b50610433612a07565b348015610c0557600080fd5b506105fe612a36565b348015610c1a57600080fd5b506105fe612a46565b348015610c2f57600080fd5b5061048860048036036020811015610c4657600080fd5b5035612abf565b348015610c5957600080fd5b5061043360048036036020811015610c7057600080fd5b5035612c64565b348015610c8357600080fd5b50610433612c76565b348015610c9857600080fd5b5061043360048036036020811015610caf57600080fd5b5035612c7c565b348015610cc257600080fd5b5061043360048036036020811015610cd957600080fd5b5035612c8e565b348015610cec57600080fd5b50610433612ca0565b348015610d0157600080fd5b50610488612ca6565b348015610d1657600080fd5b50610488612d81565b348015610d2b57600080fd5b50610d34612e3b565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610d6e578181015183820152602001610d56565b50505050905090810190601f168015610d9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610db557600080fd5b50610627612e72565b348015610dca57600080fd5b5061043360048036036020811015610de157600080fd5b50356001600160a01b0316612e81565b60055481565b6008546040805180820190915260128152716e6f206d6f6e746820636c61696d61626c6560701b6020820152600091829190600160801b90046001600160801b0316610e845760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50610e8d612611565b6008549092506000196001600160801b03600160801b909204821601169050808211801590610ebc5750602482105b6040518060400160405280601081526020016f185b1c9958591e48199a5b9a5cda195960821b81525090610f315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b509091565b610f3e612e9c565b600654600090610f78906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001631612efb565b9050600354811015610f8657fe5b600355565b610f93612e9c565b6013805460ff19166001179055565b60145481565b600054600160b01b900460ff1680610fca5750600054600160a81b900460ff16155b1561113e57610fd7612f5e565b8060005b81811015611137576000848483818110610ff157fe5b602090810292909201356001600160a01b0316600081815260108452604090819020548151808301909252600d82526c1b9bdd081bdc1d1959081bdd5d609a1b948201949094529093509160ff16905061108c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5061109681612f93565b6001600160a01b0381166000818152601160209081526040808320805460ff1916600190811790915560128054808301825594527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344490930180546001600160a01b031916851790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a250600101610fdb565b5050611149565b611149600036613023565b5050565b600b602052816000526040600020818154811061116957600080fd5b90600052602060002001600091509150505481565b6013546000908190819060ff16611197576003546111b8565b6111b8476111b2600554600454612efb90919063ffffffff16565b90612efb565b9250600091506111d5600554600454612efb90919063ffffffff16565b9050909192565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906112535760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5061125d83612f93565b61126e611268612611565b836131a6565b6112788383613329565b949350505050565b60106020526000908152604090205460ff1681565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff166112dd576000546001600160a01b031661134a565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561131d57600080fd5b505afa158015611331573d6000803e3d6000fd5b505050506040513d602081101561134757600080fd5b50515b90505b90565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561139457600080fd5b505afa1580156113a8573d6000803e3d6000fd5b505050506040513d60208110156113be57600080fd5b5051611401576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600160205260409020805461146d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b80544210156114c3576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561155d5780601f106115325761010080835404028352916020019161155d565b820191906000526020600020905b81548152906001019060200180831161154057829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250611591915083018261443b565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106115d95780518252601f1990920191602091820191016115ba565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461163b576040519150601f19603f3d011682016040523d82523d6000602084013e611640565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161169f816134e4565b50505050565b601281815481106116b557600080fd5b6000918252602090912001546001600160a01b0316905081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60076001609c1b0181565b611706612e9c565b6001600160e01b03198116600090815260016020526040902054611771576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906117e19083018261443b565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611859576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b6002805414156118b0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600280556007544210806118d2575060085460246001600160801b0390911610155b156118df57506000611b57565b60006118f66007544261350190919063ffffffff16565b905060006119078262278d0061355e565b905062278d008102820360006119208262093a8061355e565b90506000811180156119325750602483105b801561194a5750600083815260096020526040902054155b156119615760008381526009602052604090204390555b600083118015611972575060248311155b801561198f575060001983016000908152600a6020526040902054155b156119ab5760001983016000908152600a602052604090204390555b6018546040805163deea13e760e01b815290516000926001600160a01b03169163deea13e7916004808301926020929190829003018186803b1580156119f057600080fd5b505afa158015611a04573d6000803e3d6000fd5b505050506040513d6020811015611a1a57600080fd5b50516008546001600160801b03166000908152600960205260409020549091508015801590611a4857508181105b15611ae8576008546001600160801b03166000908152600d6020526040812054611a7290476135c5565b600880546001600160801b03808216600101166fffffffffffffffffffffffffffffffff1990911617905590508015611ae657600554611ab29082612efb565b60055560405161dead9082156108fc029083906000818181858888f19350505050158015611ae4573d6000803e3d6000fd5b505b505b600085118015611af9575060248511155b8015611b1b57506008546001600160801b03600160801b909104166000198601145b8015611b2a575060135460ff16155b15611b4c57611b3b600186036135db565b15611b4c57611b4c60018603613830565b600196505050505050505b600160025547611b656139f4565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b81525090611bdb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5090565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f81018590048502860185019096528585529094919392909190830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050505050905082565b60135460ff1681565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611d055760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50611d0f33612f93565b611d1a611268612611565b611d243383613329565b9392505050565b600054600160b01b900460ff1680611d4d5750600054600160a81b900460ff16155b15611ecd57611d5a612f5e565b60135460408051808201909152600b81526a1b9bdd081cdd1bdc1c195960aa1b60208201529060ff16611dce5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506040516000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169047908381818185875af1925050503d8060008114611e3a576040519150601f19603f3d011682016040523d82523d6000602084013e611e3f565b606091505b50509050806040518060400160405280601981526020017f73656e64696e672066756e6473206261636b206661696c65640000000000000081525090611ec65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5050611ed8565b611ed8600036613023565b565b600a6020526000908152604090205481565b42600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611f615760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506013546040805180820190915260078152661cdd1bdc1c195960ca1b60208201529060ff1615611fd35760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060028054141561202b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002805560005b828110156120665761205e84848381811061204957fe5b905060200201356001600160a01b0316613a29565b600101612032565b506000612071612611565b905061207d81836131a6565b6019546040805163712441d960e11b81523360048201818152602483019384526044830188905260009485946001600160a01b039091169363e24883b293928b928b92606401846020850280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561213e57600080fd5b8101908080516040519392919084600160201b82111561215d57600080fd5b90830190602082018581111561217257600080fd5b82518660208202830111600160201b8211171561218e57600080fd5b82525081516020918201928201910280838360005b838110156121bb5781810151838201526020016121a3565b50505050919091016040525060200151929450919250600091508190505b868110156122d15760008888838181106121ef57fe5b905060200201356001600160a01b03169050600085838151811061220f57fe5b6020908102919091018101516001600160a01b03841660009081526011909252604082205490925060ff1661224c5761224a83838a8c613aa3565b015b816001600160a01b0316836001600160a01b0316146122735761227182838a8c613aa3565b015b60408051808201909152601881527f636c61696d656420616d6f756e7420746f6f20736d616c6c00000000000000006020820152948101946122b89082908890613bc5565b90506122c682826001613c1f565b5050506001016121d9565b506004546122df9082612efb565b6004556122f7336122f08489613d67565b6000613c1f565b505060016002555047905061230a6139f4565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b8152509061169f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b600054600160a01b900460ff16156123d6576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6018546001600160a01b031681565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff16806124945750600054600160a81b900460ff16155b1561113e576124a1612f5e565b8115612537576000811180156124ba575062093a808111155b60405180604001604052806012815260200171696e76616c696420706172616d657465727360701b815250906125315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506125b4565b604080518082019091526012815271696e76616c696420706172616d657465727360701b602082015281156125ad5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060006015555b6013805461ff001916610100841515908102919091179091556014829055604080519182526020820183905280517f5c9bf067f2a8b23128e64d5ce119251f51d6c0c24e0d7bf430c2dd77df3ec0929281900390910190a1611149565b600080601860009054906101000a90046001600160a01b03166001600160a01b031663deea13e76040518163ffffffff1660e01b815260040160206040518083038186803b15801561266257600080fd5b505afa158015612676573d6000803e3d6000fd5b505050506040513d602081101561268c57600080fd5b50516008546001600160801b031660009081526009602052604090205490915080158015906126ba57508181105b156126da5750506008546001600160801b0390811660010116905061134d565b50506008546001600160801b0316905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b61271f611295565b6001600160a01b0316336001600160a01b03161461277b576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6127b46127af83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250613dc0565b613eed565b6111498282613f11565b6017546001600160a01b031681565b60155481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b8152509061284a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506013546040805180820190915260078152661cdd1bdc1c195960ca1b60208201529060ff16156128bc5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50600280541415612914576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002805584846129248282614061565b612930878787876140ee565b6001600255925047915061294490506139f4565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906129ba5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50949350505050565b6019546001600160a01b031681565b601354610100900460ff1681565b60116020526000908152604090205460ff1681565b600d6020526000908152604090205481565b600080612a1f6007544261414290919063ffffffff16565b9150612a3090508162278d0061355e565b91505090565b600054600160a81b900460ff1681565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612ab9576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b50600090565b600054600160b01b900460ff1680612ae15750600054600160a81b900460ff16155b15612c5657612aee612f5e565b42600754116040518060400160405280600f81526020016e185b1c9958591e481cdd185c9d1959608a1b81525090612b675760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50621274ff1942018110801590612b9e57507f00000000000000000000000000000000000000000000000000000000000000008111155b60405180604001604052806015815260200174077726f6e672073746172742074696d657374616d7605c1b81525090612c185760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060078190556040805182815290517f6887b4fbe6e282072c586eed840058a3507439898b1521541253e5a78a41c69b9181900360200190a1612c61565b612c61600036613023565b50565b600c6020526000908152604090205481565b60075481565b600e6020526000908152604090205481565b60096020526000908152604090205481565b60035481565b336000908152601060209081526040918290205482518084019093526011835270185b1c9958591e481bdc1d1959081bdd5d607a1b9183019190915260ff1615612d315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50336000818152601060209081526040808320805460ff191660011790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a2565b612d89612e9c565b600054600160a81b900460ff1615612de8576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60408051808201909152601881527f446973747269627574696f6e546f44656c656761746f72730000000000000000602082015290565b6016546001600160a01b031681565b6000612e9482612e8f612611565b614164565b90505b919050565b612ea46112ba565b6001600160a01b0316336001600160a01b031614611ed8576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600082820183811015612f55576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600054600160b01b900460ff1615612f8b57333014612f7957fe5b6000805460ff60b01b19169055611ed8565b611ed8612e9c565b6001600160a01b03811660009081526011602081815260409283902054835180850190945291835270185b1c9958591e481bdc1d1959081bdd5d607a1b9083015260ff16156111495760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b61302b612e9c565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561307357600080fd5b505afa158015613087573d6000803e3d6000fd5b505050506040513d602081101561309d57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600160208181526040909220845181558483015180519194506131219392850192019061447f565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60408051808201909152600d81526c1b5bdb9d1a08195e1c1a5c9959609a1b6020820152818311156132195760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506040805180820190915260138152726d6f6e7468206e6f7420636c61696d61626c6560681b6020820152602482106132935760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060085460408051808201909152601781527f6d6f6e7468206e6f7420636c61696d61626c6520796574000000000000000000602082015290600160801b90046001600160801b031682106117e15760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b6001600160a01b0382166000908152600f60205260408120548190831015613356575060009050806134dd565b6000838152600d6020526040902054806133775760008092509250506134dd565b6000848152600b60209081526040808320805482518185028101850190935280835291929091908301828280156133cd57602002820191906000526020600020905b8154815260200190600101908083116133b9575b5050505050905060005b600381101561348a5760175482516001600160a01b0390911690634ee2cd7e90899085908590811061340557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561345157600080fd5b505afa158015613465573d6000803e3d6000fd5b505050506040513d602081101561347b57600080fd5b505194909401936001016133d7565b508361349e576000809350935050506134dd565b6000858152600e6020526040902054848114156134c057509091506134dd9050565b8085106134c957fe5b846134d5848284614187565b945094505050505b9250929050565b3d604051818101604052816000823e82156134fd578181f35b8181fd5b600082821115613558576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008082116135b4576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816135bd57fe5b049392505050565b60008183106135d45781612f55565b5090919050565b6013546000908190610100900460ff16156136b6576016546040805163a978fb6b60e01b815281516000936001600160a01b03169263a978fb6b9260048082019391829003018186803b15801561363157600080fd5b505afa158015613645573d6000803e3d6000fd5b505050506040513d604081101561365b57600080fd5b5080516020909101519092509050806136aa5760155461368357505042601555506000612e97565b42601454601554011161369a5760006015556136a5565b600092505050612e97565b6136b0565b60006015555b50613735565b601660009054906101000a90046001600160a01b03166001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561370457600080fd5b505afa158015613718573d6000803e3d6000fd5b505050506040513d602081101561372e57600080fd5b5051420190505b600083815260096020908152604080832054600a909252808320548151600380825260808201909352929390928484038390049281602001602082028036833701905050905060005b60038110156137e95760408051602080820198909852808201839052815180820383018152606090910190915280519601959095209460008387816137bf57fe5b068483028701019050808383815181106137d557fe5b60209081029190910101525060010161377e565b506000878152600b60209081526040909120825161380992840190614507565b506138138161428d565b6000888152600e6020526040902055506001945050505050919050565b600061384b6138436001840160ed613d67565b6121346135c5565b9050600061392c6138fc600654613871856121346003546141879092919063ffffffff16565b037f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166329d71f6d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156138cb57600080fd5b505afa1580156138df573d6000803e3d6000fd5b505050506040513d60208110156138f557600080fd5b50516135c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316316135c5565b6000848152600c60209081526040808320849055600d9091528082208390556006805484019055600880546001600160801b03600189018116600160801b029116179055805163ec8d877760e01b81526004810184905290519293506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ec8d87779260248084019391929182900301818387803b1580156139d757600080fd5b505af11580156139eb573d6000803e3d6000fd5b50505050505050565b60135460009060ff16612ab957613a24600554613a1e60045460065461350190919063ffffffff16565b90613501565b61134a565b60408051808201909152600e81526d726563697069656e74207a65726f60901b60208201526001600160a01b0382166111495760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b600080613ab08685614164565b90505b828111613b7b57600080613ac78884613329565b90925090508015613b71576000838152600d6020526040902054613aeb9082613501565b6000848152600d6020908152604080832093909355600e90522054613b109083613501565b6000848152600e60209081526040918290209290925580518581529182018390528051958301956001600160a01b03808b1693908c16927fbdb59bec3f0c77052f6645d7365d5008c0affb5d51489a220d01bb1af96897b092918290030190a35b5050600101613ab3565b506001600160a01b0385166000908152600f6020526040902054600183011115611278576001600160a01b0385166000908152600f60205260409020600183019055949350505050565b60008184841115613c175760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b505050900390565b81156117e1578015613c9a576018546040805163b760faf960e01b81526001600160a01b0386811660048301529151919092169163b760faf991859160248082019260009290919082900301818588803b158015613c7c57600080fd5b505af1158015613c90573d6000803e3d6000fd5b50505050506117e1565b6040516000906001600160a01b0385169084908381818185875af1925050503d8060008114613ce5576040519150601f19603f3d011682016040523d82523d6000602084013e613cea565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b81525090613d605760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5050505050565b600082613d7657506000612f58565b82820282848281613d8357fe5b0414612f555760405162461bcd60e51b81526004018080602001828103825260218152602001806145576021913960400191505060405180910390fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613e04578181015183820152602001613dec565b50505050905090810190601f168015613e315780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015613e9957868181518110613e6757fe5b6020026020010151831415613e9157858181518110613e8257fe5b60200260200101519150613e99565b600101613e52565b506001600160a01b038116613ee4576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b613f3882826040518060400160405280600481526020016315d3985d60e21b815250613dc0565b601860006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613f9282826040518060400160405280601181526020017021b630b4b6a9b2ba3ab826b0b730b3b2b960791b815250613dc0565b601960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613fe982826040518060400160405280600e81526020016d283934b1b2a9bab136b4ba3a32b960911b815250613dc0565b601660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061403d82826040518060400160405280600b81526020016a10dbdb589a5b995913985d60aa1b815250613dc0565b601780546001600160a01b0319166001600160a01b03929092169190911790555050565b336001600160a01b038316141561407757611149565b6019546040805163ce2caa5760e01b81523360048201526001600160a01b03858116602483015284811660448301529151919092169163ce2caa57916064808301926000929190829003018186803b1580156140d257600080fd5b505afa1580156140e6573d6000803e3d6000fd5b505050505050565b60006140f984613a29565b61410285612f93565b600061410c612611565b905061411881856131a6565b61412486868387613aa3565b6004549092506141349083612efb565b6004556129ba858385613c1f565b60008083831115614158575060009050806134dd565b50600193919092039150565b6001600160a01b0382166000908152600f6020526040812054612f55908361442b565b60008082116141d0576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836141dd57506000611d24565b838302838582816141ea57fe5b041415614203578281816141fa57fe5b04915050611d24565b600083868161420e57fe5b049050600084878161421c57fe5b069050600085878161422a57fe5b049050600086888161423857fe5b0690506142806142528861424c8685613d67565b9061355e565b6111b261425f8686613d67565b6111b261426c8987613d67565b6111b28d61427a8c8b613d67565b90613d67565b9998505050505050505050565b6000805b60038110156143325760175483516001600160a01b039091169063981b24d0908590849081106142bd57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156142f957600080fd5b505afa15801561430d573d6000803e3d6000fd5b505050506040513d602081101561432357600080fd5b50519190910190600101614291565b506012545b80156144255780806001900391505060006012828154811061435557fe5b60009182526020822001546001600160a01b031691505b600381101561441e5760175485516001600160a01b0390911690634ee2cd7e90849088908590811061439a57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156143e657600080fd5b505afa1580156143fa573d6000803e3d6000fd5b505050506040513d602081101561441057600080fd5b50519093039260010161436c565b5050614337565b50919050565b6000818310156135d45781612f55565b50805460018160011615610100020316600290046000825580601f106144615750612c61565b601f016020900490600052602060002090810190612c619190614541565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826144b557600085556144fb565b82601f106144ce57805160ff19168380011785556144fb565b828001600101855582156144fb579182015b828111156144fb5782518255916020019190600101906144e0565b50611bdb929150614541565b8280548282559060005260206000209081019282156144fb57916020028201828111156144fb5782518255916020019190600101906144e0565b5b80821115611bdb576000815560010161454256fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212202b7a96e33877ad4add6a3e5eade68e93d98c565135721ee0a077fa7bef4c166c64736f6c63430007060033",
1035
+ "deployedBytecode": "0x6080604052600436106103395760003560e01c8063a1077532116101ab578063ddd1b67e116100f7578063f1e01c2211610095578063f5a983831161006f578063f5a9838314610d0a578063f5f5ba7214610d1f578063f937d6ad14610da9578063f94fcc6d14610dbe57610419565b8063f1e01c2214610cb6578063f2325e3814610ce0578063f2a1f76714610cf557610419565b8063e28ef1f7116100d1578063e28ef1f714610c23578063e4c1e96c14610c4d578063e60eb6ff14610c77578063f12d31ae14610c8c57610419565b8063ddd1b67e14610be4578063e17f212e14610bf9578063e22fdece14610c0e57610419565b8063b0b742ac11610164578063c4db96191161013e578063c4db961914610b5d578063cb063fa214610b72578063d461048314610b87578063d9d065c114610bba57610419565b8063b0b742ac14610ae8578063b23b6ef114610afd578063b2c1219214610b1257610419565b8063a107753214610932578063a90a38e114610947578063aa7579ac14610979578063ae6771611461098e578063af3267fe146109a3578063b00c0b76146109b857610419565b806361a30370116102855780637d8ca242116102235780638dc305fa116101fd5780638dc305fa1461085a5780639d6a890f146108d55780639edbf007146109085780639f71043e1461091d57610419565b80637d8ca242146107f15780638635f8981461081b57806389e6faa61461083057610419565b806367fc40291161025f57806367fc4029146106e05780636d0e8c341461071457806374e6310e1461072957806375f12b21146107dc57610419565b806361a303701461068c57806361d027b3146106b657806362354e03146106cb57610419565b8063257a7ee2116102f257806333cd2400116102cc57806333cd2400146105cb5780635267a15d146106125780635aa6e675146106435780635ff270791461065857610419565b8063257a7ee21461052f5780632dafdbbf1461055f5780632e6584521461059257610419565b8063023666481461041e57806302573715146104455780630732d2ea1461047357806307da68f51461048a57806315c29c5b1461049f578063220c1c16146104b457610419565b366104195760408051808201909152600d81526c7472656173757279206f6e6c7960981b6020820152336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104165760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156103db5781810151838201526020016103c3565b50505050905090810190601f1680156104085780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50005b600080fd5b34801561042a57600080fd5b50610433610df1565b60408051918252519081900360200190f35b34801561045157600080fd5b5061045a610df7565b6040805192835260208301919091528051918290030190f35b34801561047f57600080fd5b50610488610f36565b005b34801561049657600080fd5b50610488610f8b565b3480156104ab57600080fd5b50610433610fa2565b3480156104c057600080fd5b50610488600480360360208110156104d757600080fd5b810190602081018135600160201b8111156104f157600080fd5b82018360208201111561050357600080fd5b803590602001918460208302840111600160201b8311171561052457600080fd5b509092509050610fa8565b34801561053b57600080fd5b506104336004803603604081101561055257600080fd5b508035906020013561114d565b34801561056b57600080fd5b5061057461117e565b60408051938452602084019290925282820152519081900360600190f35b34801561059e57600080fd5b50610433600480360360408110156105b557600080fd5b506001600160a01b0381351690602001356111dc565b3480156105d757600080fd5b506105fe600480360360208110156105ee57600080fd5b50356001600160a01b0316611280565b604080519115158252519081900360200190f35b34801561061e57600080fd5b50610627611295565b604080516001600160a01b039092168252519081900360200190f35b34801561064f57600080fd5b506106276112ba565b34801561066457600080fd5b506104886004803603602081101561067b57600080fd5b50356001600160e01b031916611350565b34801561069857600080fd5b50610627600480360360208110156106af57600080fd5b50356116a5565b3480156106c257600080fd5b506106276116cf565b3480156106d757600080fd5b506106276116f3565b3480156106ec57600080fd5b506104886004803603602081101561070357600080fd5b50356001600160e01b0319166116fe565b34801561072057600080fd5b506105fe6117e6565b34801561073557600080fd5b5061075d6004803603602081101561074c57600080fd5b50356001600160e01b031916611bdf565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107a0578181015183820152602001610788565b50505050905090810190601f1680156107cd5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156107e857600080fd5b506105fe611c85565b3480156107fd57600080fd5b506104336004803603602081101561081457600080fd5b5035611c8e565b34801561082757600080fd5b50610488611d2b565b34801561083c57600080fd5b506104336004803603602081101561085357600080fd5b5035611eda565b34801561086657600080fd5b506104886004803603604081101561087d57600080fd5b810190602081018135600160201b81111561089757600080fd5b8201836020820111156108a957600080fd5b803590602001918460208302840111600160201b831117156108ca57600080fd5b919350915035611eec565b3480156108e157600080fd5b50610488600480360360208110156108f857600080fd5b50356001600160a01b0316612380565b34801561091457600080fd5b50610627612439565b34801561092957600080fd5b50610433612448565b34801561093e57600080fd5b5061062761244e565b34801561095357600080fd5b506104886004803603604081101561096a57600080fd5b50803515159060200135612472565b34801561098557600080fd5b50610433612611565b34801561099a57600080fd5b506104336126ed565b3480156109af57600080fd5b50610433612711565b3480156109c457600080fd5b50610488600480360360408110156109db57600080fd5b810190602081018135600160201b8111156109f557600080fd5b820183602082011115610a0757600080fd5b803590602001918460208302840111600160201b83111715610a2857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610a7757600080fd5b820183602082011115610a8957600080fd5b803590602001918460208302840111600160201b83111715610aaa57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612717945050505050565b348015610af457600080fd5b506106276127be565b348015610b0957600080fd5b506104336127cd565b348015610b1e57600080fd5b5061043360048036036080811015610b3557600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013515156127d3565b348015610b6957600080fd5b506106276129c3565b348015610b7e57600080fd5b506105fe6129d2565b348015610b9357600080fd5b506105fe60048036036020811015610baa57600080fd5b50356001600160a01b03166129e0565b348015610bc657600080fd5b5061043360048036036020811015610bdd57600080fd5b50356129f5565b348015610bf057600080fd5b50610433612a07565b348015610c0557600080fd5b506105fe612a36565b348015610c1a57600080fd5b506105fe612a46565b348015610c2f57600080fd5b5061048860048036036020811015610c4657600080fd5b5035612abf565b348015610c5957600080fd5b5061043360048036036020811015610c7057600080fd5b5035612c64565b348015610c8357600080fd5b50610433612c76565b348015610c9857600080fd5b5061043360048036036020811015610caf57600080fd5b5035612c7c565b348015610cc257600080fd5b5061043360048036036020811015610cd957600080fd5b5035612c8e565b348015610cec57600080fd5b50610433612ca0565b348015610d0157600080fd5b50610488612ca6565b348015610d1657600080fd5b50610488612d81565b348015610d2b57600080fd5b50610d34612e3b565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610d6e578181015183820152602001610d56565b50505050905090810190601f168015610d9b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610db557600080fd5b50610627612e72565b348015610dca57600080fd5b5061043360048036036020811015610de157600080fd5b50356001600160a01b0316612e81565b60055481565b6008546040805180820190915260128152716e6f206d6f6e746820636c61696d61626c6560701b6020820152600091829190600160801b90046001600160801b0316610e845760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50610e8d612611565b6008549092506000196001600160801b03600160801b909204821601169050808211801590610ebc5750602482105b6040518060400160405280601081526020016f185b1c9958591e48199a5b9a5cda195960821b81525090610f315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b509091565b610f3e612e9c565b600654600090610f78906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001631612efb565b9050600354811015610f8657fe5b600355565b610f93612e9c565b6013805460ff19166001179055565b60145481565b600054600160b01b900460ff1680610fca5750600054600160a81b900460ff16155b1561113e57610fd7612f5e565b8060005b81811015611137576000848483818110610ff157fe5b602090810292909201356001600160a01b0316600081815260108452604090819020548151808301909252600d82526c1b9bdd081bdc1d1959081bdd5d609a1b948201949094529093509160ff16905061108c5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5061109681612f93565b6001600160a01b0381166000818152601160209081526040808320805460ff1916600190811790915560128054808301825594527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec344490930180546001600160a01b031916851790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a250600101610fdb565b5050611149565b611149600036613023565b5050565b600b602052816000526040600020818154811061116957600080fd5b90600052602060002001600091509150505481565b6013546000908190819060ff16611197576003546111b8565b6111b8476111b2600554600454612efb90919063ffffffff16565b90612efb565b9250600091506111d5600554600454612efb90919063ffffffff16565b9050909192565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b815250906112535760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5061125d83612f93565b61126e611268612611565b836131a6565b6112788383613329565b949350505050565b60106020526000908152604090205460ff1681565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff166112dd576000546001600160a01b031661134a565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561131d57600080fd5b505afa158015611331573d6000803e3d6000fd5b505050506040513d602081101561134757600080fd5b50515b90505b90565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561139457600080fd5b505afa1580156113a8573d6000803e3d6000fd5b505050506040513d60208110156113be57600080fd5b5051611401576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600160205260409020805461146d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b80544210156114c3576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561155d5780601f106115325761010080835404028352916020019161155d565b820191906000526020600020905b81548152906001019060200180831161154057829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250611591915083018261443b565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106115d95780518252601f1990920191602091820191016115ba565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461163b576040519150601f19603f3d011682016040523d82523d6000602084013e611640565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a161169f816134e4565b50505050565b601281815481106116b557600080fd5b6000918252602090912001546001600160a01b0316905081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60076001609c1b0181565b611706612e9c565b6001600160e01b03198116600090815260016020526040902054611771576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906117e19083018261443b565b505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611859576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b6002805414156118b0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600280556007544210806118d2575060085460246001600160801b0390911610155b156118df57506000611b57565b60006118f66007544261350190919063ffffffff16565b905060006119078262278d0061355e565b905062278d008102820360006119208262093a8061355e565b90506000811180156119325750602483105b801561194a5750600083815260096020526040902054155b156119615760008381526009602052604090204390555b600083118015611972575060248311155b801561198f575060001983016000908152600a6020526040902054155b156119ab5760001983016000908152600a602052604090204390555b6018546040805163deea13e760e01b815290516000926001600160a01b03169163deea13e7916004808301926020929190829003018186803b1580156119f057600080fd5b505afa158015611a04573d6000803e3d6000fd5b505050506040513d6020811015611a1a57600080fd5b50516008546001600160801b03166000908152600960205260409020549091508015801590611a4857508181105b15611ae8576008546001600160801b03166000908152600d6020526040812054611a7290476135c5565b600880546001600160801b03808216600101166fffffffffffffffffffffffffffffffff1990911617905590508015611ae657600554611ab29082612efb565b60055560405161dead9082156108fc029083906000818181858888f19350505050158015611ae4573d6000803e3d6000fd5b505b505b600085118015611af9575060248511155b8015611b1b57506008546001600160801b03600160801b909104166000198601145b8015611b2a575060135460ff16155b15611b4c57611b3b600186036135db565b15611b4c57611b4c60018603613830565b600196505050505050505b600160025547611b656139f4565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b81525090611bdb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5090565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f81018590048502860185019096528585529094919392909190830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050505050905082565b60135460ff1681565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611d055760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50611d0f33612f93565b611d1a611268612611565b611d243383613329565b9392505050565b600054600160b01b900460ff1680611d4d5750600054600160a81b900460ff16155b15611ecd57611d5a612f5e565b60135460408051808201909152600b81526a1b9bdd081cdd1bdc1c195960aa1b60208201529060ff16611dce5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506040516000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169047908381818185875af1925050503d8060008114611e3a576040519150601f19603f3d011682016040523d82523d6000602084013e611e3f565b606091505b50509050806040518060400160405280601981526020017f73656e64696e672066756e6473206261636b206661696c65640000000000000081525090611ec65760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5050611ed8565b611ed8600036613023565b565b600a6020526000908152604090205481565b42600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b81525090611f615760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506013546040805180820190915260078152661cdd1bdc1c195960ca1b60208201529060ff1615611fd35760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060028054141561202b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002805560005b828110156120665761205e84848381811061204957fe5b905060200201356001600160a01b0316613a29565b600101612032565b506000612071612611565b905061207d81836131a6565b6019546040805163712441d960e11b81523360048201818152602483019384526044830188905260009485946001600160a01b039091169363e24883b293928b928b92606401846020850280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b15801561210157600080fd5b505afa158015612115573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561213e57600080fd5b8101908080516040519392919084600160201b82111561215d57600080fd5b90830190602082018581111561217257600080fd5b82518660208202830111600160201b8211171561218e57600080fd5b82525081516020918201928201910280838360005b838110156121bb5781810151838201526020016121a3565b50505050919091016040525060200151929450919250600091508190505b868110156122d15760008888838181106121ef57fe5b905060200201356001600160a01b03169050600085838151811061220f57fe5b6020908102919091018101516001600160a01b03841660009081526011909252604082205490925060ff1661224c5761224a83838a8c613aa3565b015b816001600160a01b0316836001600160a01b0316146122735761227182838a8c613aa3565b015b60408051808201909152601881527f636c61696d656420616d6f756e7420746f6f20736d616c6c00000000000000006020820152948101946122b89082908890613bc5565b90506122c682826001613c1f565b5050506001016121d9565b506004546122df9082612efb565b6004556122f7336122f08489613d67565b6000613c1f565b505060016002555047905061230a6139f4565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b8152509061169f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b600054600160a01b900460ff16156123d6576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6018546001600160a01b031681565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160b01b900460ff16806124945750600054600160a81b900460ff16155b1561113e576124a1612f5e565b8115612537576000811180156124ba575062093a808111155b60405180604001604052806012815260200171696e76616c696420706172616d657465727360701b815250906125315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506125b4565b604080518082019091526012815271696e76616c696420706172616d657465727360701b602082015281156125ad5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060006015555b6013805461ff001916610100841515908102919091179091556014829055604080519182526020820183905280517f5c9bf067f2a8b23128e64d5ce119251f51d6c0c24e0d7bf430c2dd77df3ec0929281900390910190a1611149565b600080601860009054906101000a90046001600160a01b03166001600160a01b031663deea13e76040518163ffffffff1660e01b815260040160206040518083038186803b15801561266257600080fd5b505afa158015612676573d6000803e3d6000fd5b505050506040513d602081101561268c57600080fd5b50516008546001600160801b031660009081526009602052604090205490915080158015906126ba57508181105b156126da5750506008546001600160801b0390811660010116905061134d565b50506008546001600160801b0316905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60065481565b61271f611295565b6001600160a01b0316336001600160a01b03161461277b576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b6127b46127af83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250613dc0565b613eed565b6111498282613f11565b6017546001600160a01b031681565b60155481565b600042600754106040518060400160405280600b81526020016a1b9bdd081cdd185c9d195960aa1b8152509061284a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506013546040805180820190915260078152661cdd1bdc1c195960ca1b60208201529060ff16156128bc5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50600280541415612914576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002805584846129248282614061565b612930878787876140ee565b6001600255925047915061294490506139f4565b11156040518060400160405280600f81526020016e62616c616e636520746f6f206c6f7760881b815250906129ba5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50949350505050565b6019546001600160a01b031681565b601354610100900460ff1681565b60116020526000908152604090205460ff1681565b600d6020526000908152604090205481565b600080612a1f6007544261414290919063ffffffff16565b9150612a3090508162278d0061355e565b91505090565b600054600160a81b900460ff1681565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612ab9576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b50600090565b600054600160b01b900460ff1680612ae15750600054600160a81b900460ff16155b15612c5657612aee612f5e565b42600754116040518060400160405280600f81526020016e185b1c9958591e481cdd185c9d1959608a1b81525090612b675760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50621274ff1942018110801590612b9e57507f00000000000000000000000000000000000000000000000000000000000000008111155b60405180604001604052806015815260200174077726f6e672073746172742074696d657374616d7605c1b81525090612c185760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060078190556040805182815290517f6887b4fbe6e282072c586eed840058a3507439898b1521541253e5a78a41c69b9181900360200190a1612c61565b612c61600036613023565b50565b600c6020526000908152604090205481565b60075481565b600e6020526000908152604090205481565b60096020526000908152604090205481565b60035481565b336000908152601060209081526040918290205482518084019093526011835270185b1c9958591e481bdc1d1959081bdd5d607a1b9183019190915260ff1615612d315760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b50336000818152601060209081526040808320805460ff191660011790558051928352517f82b45541b9ba7a8fe574a801f120df904cff6cde36bee6c217c9514949aa0cb89281900390910190a2565b612d89612e9c565b600054600160a81b900460ff1615612de8576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60408051808201909152601881527f446973747269627574696f6e546f44656c656761746f72730000000000000000602082015290565b6016546001600160a01b031681565b6000612e9482612e8f612611565b614164565b90505b919050565b612ea46112ba565b6001600160a01b0316336001600160a01b031614611ed8576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600082820183811015612f55576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600054600160b01b900460ff1615612f8b57333014612f7957fe5b6000805460ff60b01b19169055611ed8565b611ed8612e9c565b6001600160a01b03811660009081526011602081815260409283902054835180850190945291835270185b1c9958591e481bdc1d1959081bdd5d607a1b9083015260ff16156111495760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b61302b612e9c565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561307357600080fd5b505afa158015613087573d6000803e3d6000fd5b505050506040513d602081101561309d57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b031986168152600160208181526040909220845181558483015180519194506131219392850192019061447f565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60408051808201909152600d81526c1b5bdb9d1a08195e1c1a5c9959609a1b6020820152818311156132195760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b506040805180820190915260138152726d6f6e7468206e6f7420636c61696d61626c6560681b6020820152602482106132935760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5060085460408051808201909152601781527f6d6f6e7468206e6f7420636c61696d61626c6520796574000000000000000000602082015290600160801b90046001600160801b031682106117e15760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b6001600160a01b0382166000908152600f60205260408120548190831015613356575060009050806134dd565b6000838152600d6020526040902054806133775760008092509250506134dd565b6000848152600b60209081526040808320805482518185028101850190935280835291929091908301828280156133cd57602002820191906000526020600020905b8154815260200190600101908083116133b9575b5050505050905060005b600381101561348a5760175482516001600160a01b0390911690634ee2cd7e90899085908590811061340557fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561345157600080fd5b505afa158015613465573d6000803e3d6000fd5b505050506040513d602081101561347b57600080fd5b505194909401936001016133d7565b508361349e576000809350935050506134dd565b6000858152600e6020526040902054848114156134c057509091506134dd9050565b8085106134c957fe5b846134d5848284614187565b945094505050505b9250929050565b3d604051818101604052816000823e82156134fd578181f35b8181fd5b600082821115613558576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008082116135b4576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816135bd57fe5b049392505050565b60008183106135d45781612f55565b5090919050565b6013546000908190610100900460ff16156136b6576016546040805163a978fb6b60e01b815281516000936001600160a01b03169263a978fb6b9260048082019391829003018186803b15801561363157600080fd5b505afa158015613645573d6000803e3d6000fd5b505050506040513d604081101561365b57600080fd5b5080516020909101519092509050806136aa5760155461368357505042601555506000612e97565b42601454601554011161369a5760006015556136a5565b600092505050612e97565b6136b0565b60006015555b50613735565b601660009054906101000a90046001600160a01b03166001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561370457600080fd5b505afa158015613718573d6000803e3d6000fd5b505050506040513d602081101561372e57600080fd5b5051420190505b600083815260096020908152604080832054600a909252808320548151600380825260808201909352929390928484038390049281602001602082028036833701905050905060005b60038110156137e95760408051602080820198909852808201839052815180820383018152606090910190915280519601959095209460008387816137bf57fe5b068483028701019050808383815181106137d557fe5b60209081029190910101525060010161377e565b506000878152600b60209081526040909120825161380992840190614507565b506138138161428d565b6000888152600e6020526040902055506001945050505050919050565b600061384b6138436001840160ed613d67565b6121346135c5565b9050600061392c6138fc600654613871856121346003546141879092919063ffffffff16565b037f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166329d71f6d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156138cb57600080fd5b505afa1580156138df573d6000803e3d6000fd5b505050506040513d60208110156138f557600080fd5b50516135c5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316316135c5565b6000848152600c60209081526040808320849055600d9091528082208390556006805484019055600880546001600160801b03600189018116600160801b029116179055805163ec8d877760e01b81526004810184905290519293506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263ec8d87779260248084019391929182900301818387803b1580156139d757600080fd5b505af11580156139eb573d6000803e3d6000fd5b50505050505050565b60135460009060ff16612ab957613a24600554613a1e60045460065461350190919063ffffffff16565b90613501565b61134a565b60408051808201909152600e81526d726563697069656e74207a65726f60901b60208201526001600160a01b0382166111495760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b600080613ab08685614164565b90505b828111613b7b57600080613ac78884613329565b90925090508015613b71576000838152600d6020526040902054613aeb9082613501565b6000848152600d6020908152604080832093909355600e90522054613b109083613501565b6000848152600e60209081526040918290209290925580518581529182018390528051958301956001600160a01b03808b1693908c16927fbdb59bec3f0c77052f6645d7365d5008c0affb5d51489a220d01bb1af96897b092918290030190a35b5050600101613ab3565b506001600160a01b0385166000908152600f6020526040902054600183011115611278576001600160a01b0385166000908152600f60205260409020600183019055949350505050565b60008184841115613c175760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b505050900390565b81156117e1578015613c9a576018546040805163b760faf960e01b81526001600160a01b0386811660048301529151919092169163b760faf991859160248082019260009290919082900301818588803b158015613c7c57600080fd5b505af1158015613c90573d6000803e3d6000fd5b50505050506117e1565b6040516000906001600160a01b0385169084908381818185875af1925050503d8060008114613ce5576040519150601f19603f3d011682016040523d82523d6000602084013e613cea565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b81525090613d605760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156103db5781810151838201526020016103c3565b5050505050565b600082613d7657506000612f58565b82820282848281613d8357fe5b0414612f555760405162461bcd60e51b81526004018080602001828103825260218152602001806145576021913960400191505060405180910390fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015613e04578181015183820152602001613dec565b50505050905090810190601f168015613e315780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015613e9957868181518110613e6757fe5b6020026020010151831415613e9157858181518110613e8257fe5b60200260200101519150613e99565b600101613e52565b506001600160a01b038116613ee4576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b613f3882826040518060400160405280600481526020016315d3985d60e21b815250613dc0565b601860006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613f9282826040518060400160405280601181526020017021b630b4b6a9b2ba3ab826b0b730b3b2b960791b815250613dc0565b601960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613fe982826040518060400160405280600e81526020016d283934b1b2a9bab136b4ba3a32b960911b815250613dc0565b601660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061403d82826040518060400160405280600b81526020016a10dbdb589a5b995913985d60aa1b815250613dc0565b601780546001600160a01b0319166001600160a01b03929092169190911790555050565b336001600160a01b038316141561407757611149565b6019546040805163ce2caa5760e01b81523360048201526001600160a01b03858116602483015284811660448301529151919092169163ce2caa57916064808301926000929190829003018186803b1580156140d257600080fd5b505afa1580156140e6573d6000803e3d6000fd5b505050505050565b60006140f984613a29565b61410285612f93565b600061410c612611565b905061411881856131a6565b61412486868387613aa3565b6004549092506141349083612efb565b6004556129ba858385613c1f565b60008083831115614158575060009050806134dd565b50600193919092039150565b6001600160a01b0382166000908152600f6020526040812054612f55908361442b565b60008082116141d0576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836141dd57506000611d24565b838302838582816141ea57fe5b041415614203578281816141fa57fe5b04915050611d24565b600083868161420e57fe5b049050600084878161421c57fe5b069050600085878161422a57fe5b049050600086888161423857fe5b0690506142806142528861424c8685613d67565b9061355e565b6111b261425f8686613d67565b6111b261426c8987613d67565b6111b28d61427a8c8b613d67565b90613d67565b9998505050505050505050565b6000805b60038110156143325760175483516001600160a01b039091169063981b24d0908590849081106142bd57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156142f957600080fd5b505afa15801561430d573d6000803e3d6000fd5b505050506040513d602081101561432357600080fd5b50519190910190600101614291565b506012545b80156144255780806001900391505060006012828154811061435557fe5b60009182526020822001546001600160a01b031691505b600381101561441e5760175485516001600160a01b0390911690634ee2cd7e90849088908590811061439a57fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b1580156143e657600080fd5b505afa1580156143fa573d6000803e3d6000fd5b505050506040513d602081101561441057600080fd5b50519093039260010161436c565b5050614337565b50919050565b6000818310156135d45781612f55565b50805460018160011615610100020316600290046000825580601f106144615750612c61565b601f016020900490600052602060002090810190612c619190614541565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826144b557600085556144fb565b82601f106144ce57805160ff19168380011785556144fb565b828001600101855582156144fb579182015b828111156144fb5782518255916020019190600101906144e0565b50611bdb929150614541565b8280548282559060005260206000209081019282156144fb57916020028201828111156144fb5782518255916020019190600101906144e0565b5b80821115611bdb576000815560010161454256fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212202b7a96e33877ad4add6a3e5eade68e93d98c565135721ee0a077fa7bef4c166c64736f6c63430007060033",
1119
1036
  "linkReferences": {},
1120
1037
  "deployedLinkReferences": {}
1121
1038
  }