@wireio/stake 0.2.5 → 0.3.1

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 (97) hide show
  1. package/lib/stake.browser.js +2456 -2069
  2. package/lib/stake.browser.js.map +1 -1
  3. package/lib/stake.d.ts +25 -52
  4. package/lib/stake.js +2610 -2206
  5. package/lib/stake.js.map +1 -1
  6. package/lib/stake.m.js +2456 -2069
  7. package/lib/stake.m.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
  10. package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.json +807 -0
  11. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +1 -1
  12. package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +184 -346
  13. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
  14. package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
  15. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +1 -1
  16. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +1 -1
  17. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +1 -1
  18. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
  19. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
  20. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +1 -1
  21. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.json +36 -0
  22. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
  23. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
  24. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +1 -1
  25. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.json +226 -0
  26. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +1 -1
  27. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +59 -0
  28. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +1 -1
  29. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +14 -12
  30. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +1 -1
  31. package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
  32. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
  33. package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
  34. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
  35. package/src/assets/ethereum/ABI/liqEth/{RewardsERC20Pausable.sol/RewardsERC20Pausable.json → RewardsERC20.sol/RewardsERC20Upgradeable.json} +140 -78
  36. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
  37. package/src/assets/ethereum/ABI/liqEth/{RewardsERC20.sol/RewardsERC20.json → RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json} +218 -30
  38. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +1 -1
  39. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +2 -2
  40. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +1 -1
  41. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +2 -2
  42. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.dbg.json +4 -0
  43. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.json +10 -0
  44. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.dbg.json +4 -0
  45. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.json +10 -0
  46. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +1 -1
  47. package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +121 -55
  48. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +1 -1
  49. package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.json +836 -273
  50. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +1 -1
  51. package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +150 -168
  52. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +1 -1
  53. package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +301 -186
  54. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +1 -1
  55. package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +814 -206
  56. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +1 -1
  57. package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +244 -198
  58. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +1 -1
  59. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
  60. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +1 -1
  61. package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +165 -152
  62. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +1 -1
  63. package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +167 -282
  64. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +1 -1
  65. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +1 -1
  66. package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +2 -54
  67. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +1 -1
  68. package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.json +26 -8
  69. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +1 -1
  70. package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.json +2 -2
  71. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
  72. package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.json +1650 -0
  73. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +1 -1
  74. package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.json +2 -22
  75. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
  76. package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
  77. package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +1 -1
  78. package/src/networks/ethereum/clients/deposit.client.ts +11 -7
  79. package/src/networks/ethereum/clients/liq.client.ts +47 -0
  80. package/src/networks/ethereum/clients/pretoken.client.ts +47 -50
  81. package/src/networks/ethereum/contract.ts +24 -51
  82. package/src/networks/ethereum/ethereum.ts +29 -52
  83. package/src/networks/ethereum/types.ts +7 -6
  84. package/src/networks/ethereum/utils.ts +2 -8
  85. package/src/networks/solana/clients/token.client.ts +0 -1
  86. package/src/networks/solana/solana.ts +44 -145
  87. package/src/networks/solana/types.ts +4 -1
  88. package/src/networks/solana/utils.ts +1 -3
  89. package/src/types.ts +5 -33
  90. package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20.dbg.json +0 -4
  91. package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20Pausable.dbg.json +0 -4
  92. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.dbg.json +0 -4
  93. package/src/assets/ethereum/ABI/liqEth/Yield.sol/BeaconRoots.json +0 -10
  94. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.dbg.json +0 -4
  95. package/src/assets/ethereum/ABI/liqEth/Yield.sol/SSZ.json +0 -10
  96. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.dbg.json +0 -4
  97. package/src/assets/ethereum/ABI/outpost/Warrant.sol/Warrant.json +0 -1650
@@ -7,32 +7,49 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "admin",
10
+ "name": "authority",
11
11
  "type": "address"
12
12
  }
13
13
  ],
14
- "stateMutability": "nonpayable",
15
- "type": "constructor"
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
16
  },
17
17
  {
18
- "inputs": [],
19
- "name": "AccessControlBadConfirmation",
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
20
31
  "type": "error"
21
32
  },
22
33
  {
23
34
  "inputs": [
24
35
  {
25
36
  "internalType": "address",
26
- "name": "account",
37
+ "name": "caller",
27
38
  "type": "address"
28
- },
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
29
46
  {
30
- "internalType": "bytes32",
31
- "name": "neededRole",
32
- "type": "bytes32"
47
+ "internalType": "address",
48
+ "name": "target",
49
+ "type": "address"
33
50
  }
34
51
  ],
35
- "name": "AccessControlUnauthorizedAccount",
52
+ "name": "AddressEmptyCode",
36
53
  "type": "error"
37
54
  },
38
55
  {
@@ -62,6 +79,22 @@
62
79
  "name": "ECDSAInvalidSignatureS",
63
80
  "type": "error"
64
81
  },
82
+ {
83
+ "inputs": [
84
+ {
85
+ "internalType": "address",
86
+ "name": "implementation",
87
+ "type": "address"
88
+ }
89
+ ],
90
+ "name": "ERC1967InvalidImplementation",
91
+ "type": "error"
92
+ },
93
+ {
94
+ "inputs": [],
95
+ "name": "ERC1967NonPayable",
96
+ "type": "error"
97
+ },
65
98
  {
66
99
  "inputs": [
67
100
  {
@@ -185,6 +218,11 @@
185
218
  "name": "ExpectedPause",
186
219
  "type": "error"
187
220
  },
221
+ {
222
+ "inputs": [],
223
+ "name": "FailedCall",
224
+ "type": "error"
225
+ },
188
226
  {
189
227
  "inputs": [
190
228
  {
@@ -203,18 +241,49 @@
203
241
  },
204
242
  {
205
243
  "inputs": [],
206
- "name": "InvalidShortString",
244
+ "name": "InvalidInitialization",
245
+ "type": "error"
246
+ },
247
+ {
248
+ "inputs": [],
249
+ "name": "NotInitializing",
207
250
  "type": "error"
208
251
  },
209
252
  {
210
253
  "inputs": [
211
254
  {
212
- "internalType": "string",
213
- "name": "str",
214
- "type": "string"
255
+ "internalType": "address",
256
+ "name": "receiver",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "internalType": "uint256",
261
+ "name": "balance",
262
+ "type": "uint256"
263
+ },
264
+ {
265
+ "internalType": "uint256",
266
+ "name": "liqEthValue",
267
+ "type": "uint256"
215
268
  }
216
269
  ],
217
- "name": "StringTooLong",
270
+ "name": "RewardsERC20InsufficientValue",
271
+ "type": "error"
272
+ },
273
+ {
274
+ "inputs": [],
275
+ "name": "UUPSUnauthorizedCallContext",
276
+ "type": "error"
277
+ },
278
+ {
279
+ "inputs": [
280
+ {
281
+ "internalType": "bytes32",
282
+ "name": "slot",
283
+ "type": "bytes32"
284
+ }
285
+ ],
286
+ "name": "UUPSUnsupportedProxiableUUID",
218
287
  "type": "error"
219
288
  },
220
289
  {
@@ -242,6 +311,19 @@
242
311
  "name": "Approval",
243
312
  "type": "event"
244
313
  },
314
+ {
315
+ "anonymous": false,
316
+ "inputs": [
317
+ {
318
+ "indexed": false,
319
+ "internalType": "address",
320
+ "name": "authority",
321
+ "type": "address"
322
+ }
323
+ ],
324
+ "name": "AuthorityUpdated",
325
+ "type": "event"
326
+ },
245
327
  {
246
328
  "anonymous": false,
247
329
  "inputs": [],
@@ -291,87 +373,25 @@
291
373
  "inputs": [
292
374
  {
293
375
  "indexed": false,
294
- "internalType": "address",
295
- "name": "account",
296
- "type": "address"
297
- }
298
- ],
299
- "name": "Paused",
300
- "type": "event"
301
- },
302
- {
303
- "anonymous": false,
304
- "inputs": [
305
- {
306
- "indexed": true,
307
- "internalType": "bytes32",
308
- "name": "role",
309
- "type": "bytes32"
310
- },
311
- {
312
- "indexed": true,
313
- "internalType": "bytes32",
314
- "name": "previousAdminRole",
315
- "type": "bytes32"
316
- },
317
- {
318
- "indexed": true,
319
- "internalType": "bytes32",
320
- "name": "newAdminRole",
321
- "type": "bytes32"
322
- }
323
- ],
324
- "name": "RoleAdminChanged",
325
- "type": "event"
326
- },
327
- {
328
- "anonymous": false,
329
- "inputs": [
330
- {
331
- "indexed": true,
332
- "internalType": "bytes32",
333
- "name": "role",
334
- "type": "bytes32"
335
- },
336
- {
337
- "indexed": true,
338
- "internalType": "address",
339
- "name": "account",
340
- "type": "address"
341
- },
342
- {
343
- "indexed": true,
344
- "internalType": "address",
345
- "name": "sender",
346
- "type": "address"
376
+ "internalType": "uint64",
377
+ "name": "version",
378
+ "type": "uint64"
347
379
  }
348
380
  ],
349
- "name": "RoleGranted",
381
+ "name": "Initialized",
350
382
  "type": "event"
351
383
  },
352
384
  {
353
385
  "anonymous": false,
354
386
  "inputs": [
355
387
  {
356
- "indexed": true,
357
- "internalType": "bytes32",
358
- "name": "role",
359
- "type": "bytes32"
360
- },
361
- {
362
- "indexed": true,
388
+ "indexed": false,
363
389
  "internalType": "address",
364
390
  "name": "account",
365
391
  "type": "address"
366
- },
367
- {
368
- "indexed": true,
369
- "internalType": "address",
370
- "name": "sender",
371
- "type": "address"
372
392
  }
373
393
  ],
374
- "name": "RoleRevoked",
394
+ "name": "Paused",
375
395
  "type": "event"
376
396
  },
377
397
  {
@@ -463,17 +483,91 @@
463
483
  "type": "event"
464
484
  },
465
485
  {
466
- "inputs": [],
467
- "name": "DEFAULT_ADMIN_ROLE",
468
- "outputs": [
486
+ "anonymous": false,
487
+ "inputs": [
469
488
  {
470
- "internalType": "bytes32",
471
- "name": "",
472
- "type": "bytes32"
489
+ "indexed": true,
490
+ "internalType": "address",
491
+ "name": "implementation",
492
+ "type": "address"
473
493
  }
474
494
  ],
475
- "stateMutability": "view",
476
- "type": "function"
495
+ "name": "Upgraded",
496
+ "type": "event"
497
+ },
498
+ {
499
+ "anonymous": false,
500
+ "inputs": [
501
+ {
502
+ "indexed": true,
503
+ "internalType": "address",
504
+ "name": "from",
505
+ "type": "address"
506
+ },
507
+ {
508
+ "indexed": false,
509
+ "internalType": "uint256",
510
+ "name": "liqEthAmount",
511
+ "type": "uint256"
512
+ },
513
+ {
514
+ "indexed": false,
515
+ "internalType": "uint256",
516
+ "name": "shares",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "indexed": false,
521
+ "internalType": "uint256",
522
+ "name": "oldIndex",
523
+ "type": "uint256"
524
+ },
525
+ {
526
+ "indexed": false,
527
+ "internalType": "uint256",
528
+ "name": "newIndex",
529
+ "type": "uint256"
530
+ }
531
+ ],
532
+ "name": "ValueShiftedFrom",
533
+ "type": "event"
534
+ },
535
+ {
536
+ "anonymous": false,
537
+ "inputs": [
538
+ {
539
+ "indexed": true,
540
+ "internalType": "address",
541
+ "name": "to",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "indexed": false,
546
+ "internalType": "uint256",
547
+ "name": "liqEthAmount",
548
+ "type": "uint256"
549
+ },
550
+ {
551
+ "indexed": false,
552
+ "internalType": "uint256",
553
+ "name": "shares",
554
+ "type": "uint256"
555
+ },
556
+ {
557
+ "indexed": false,
558
+ "internalType": "uint256",
559
+ "name": "oldIndex",
560
+ "type": "uint256"
561
+ },
562
+ {
563
+ "indexed": false,
564
+ "internalType": "uint256",
565
+ "name": "newIndex",
566
+ "type": "uint256"
567
+ }
568
+ ],
569
+ "name": "ValueShiftedTo",
570
+ "type": "event"
477
571
  },
478
572
  {
479
573
  "inputs": [],
@@ -529,25 +623,12 @@
529
623
  },
530
624
  {
531
625
  "inputs": [],
532
- "name": "_index",
533
- "outputs": [
534
- {
535
- "internalType": "uint256",
536
- "name": "",
537
- "type": "uint256"
538
- }
539
- ],
540
- "stateMutability": "view",
541
- "type": "function"
542
- },
543
- {
544
- "inputs": [],
545
- "name": "_totalShares",
626
+ "name": "UPGRADE_INTERFACE_VERSION",
546
627
  "outputs": [
547
628
  {
548
- "internalType": "uint256",
629
+ "internalType": "string",
549
630
  "name": "",
550
- "type": "uint256"
631
+ "type": "string"
551
632
  }
552
633
  ],
553
634
  "stateMutability": "view",
@@ -555,12 +636,12 @@
555
636
  },
556
637
  {
557
638
  "inputs": [],
558
- "name": "_unit",
639
+ "name": "_withdrawalQueue",
559
640
  "outputs": [
560
641
  {
561
- "internalType": "uint256",
642
+ "internalType": "contract IWithdrawalRecord",
562
643
  "name": "",
563
- "type": "uint256"
644
+ "type": "address"
564
645
  }
565
646
  ],
566
647
  "stateMutability": "view",
@@ -614,6 +695,19 @@
614
695
  "stateMutability": "nonpayable",
615
696
  "type": "function"
616
697
  },
698
+ {
699
+ "inputs": [],
700
+ "name": "authority",
701
+ "outputs": [
702
+ {
703
+ "internalType": "address",
704
+ "name": "",
705
+ "type": "address"
706
+ }
707
+ ],
708
+ "stateMutability": "view",
709
+ "type": "function"
710
+ },
617
711
  {
618
712
  "inputs": [
619
713
  {
@@ -705,17 +799,24 @@
705
799
  {
706
800
  "inputs": [
707
801
  {
708
- "internalType": "bytes32",
709
- "name": "role",
710
- "type": "bytes32"
802
+ "internalType": "uint256",
803
+ "name": "tokenReward",
804
+ "type": "uint256"
711
805
  }
712
806
  ],
713
- "name": "getRoleAdmin",
807
+ "name": "increaseIndex",
808
+ "outputs": [],
809
+ "stateMutability": "nonpayable",
810
+ "type": "function"
811
+ },
812
+ {
813
+ "inputs": [],
814
+ "name": "index",
714
815
  "outputs": [
715
816
  {
716
- "internalType": "bytes32",
817
+ "internalType": "uint256",
717
818
  "name": "",
718
- "type": "bytes32"
819
+ "type": "uint256"
719
820
  }
720
821
  ],
721
822
  "stateMutability": "view",
@@ -724,58 +825,34 @@
724
825
  {
725
826
  "inputs": [
726
827
  {
727
- "internalType": "bytes32",
728
- "name": "role",
729
- "type": "bytes32"
828
+ "internalType": "address",
829
+ "name": "manager",
830
+ "type": "address"
730
831
  },
731
832
  {
732
- "internalType": "address",
733
- "name": "account",
833
+ "internalType": "contract IWithdrawalRecord",
834
+ "name": "withdrawalQueue",
734
835
  "type": "address"
735
836
  }
736
837
  ],
737
- "name": "grantRole",
838
+ "name": "initialize",
738
839
  "outputs": [],
739
840
  "stateMutability": "nonpayable",
740
841
  "type": "function"
741
842
  },
742
843
  {
743
- "inputs": [
744
- {
745
- "internalType": "bytes32",
746
- "name": "role",
747
- "type": "bytes32"
748
- },
749
- {
750
- "internalType": "address",
751
- "name": "account",
752
- "type": "address"
753
- }
754
- ],
755
- "name": "hasRole",
844
+ "inputs": [],
845
+ "name": "isConsumingScheduledOp",
756
846
  "outputs": [
757
847
  {
758
- "internalType": "bool",
848
+ "internalType": "bytes4",
759
849
  "name": "",
760
- "type": "bool"
850
+ "type": "bytes4"
761
851
  }
762
852
  ],
763
853
  "stateMutability": "view",
764
854
  "type": "function"
765
855
  },
766
- {
767
- "inputs": [
768
- {
769
- "internalType": "uint256",
770
- "name": "tokenReward",
771
- "type": "uint256"
772
- }
773
- ],
774
- "name": "increaseIndex",
775
- "outputs": [],
776
- "stateMutability": "nonpayable",
777
- "type": "function"
778
- },
779
856
  {
780
857
  "inputs": [
781
858
  {
@@ -915,37 +992,51 @@
915
992
  "type": "function"
916
993
  },
917
994
  {
918
- "inputs": [
995
+ "inputs": [],
996
+ "name": "proxiableUUID",
997
+ "outputs": [
919
998
  {
920
999
  "internalType": "bytes32",
921
- "name": "role",
1000
+ "name": "",
922
1001
  "type": "bytes32"
923
- },
1002
+ }
1003
+ ],
1004
+ "stateMutability": "view",
1005
+ "type": "function"
1006
+ },
1007
+ {
1008
+ "inputs": [
924
1009
  {
925
1010
  "internalType": "address",
926
- "name": "callerConfirmation",
1011
+ "name": "from",
927
1012
  "type": "address"
1013
+ },
1014
+ {
1015
+ "internalType": "uint256",
1016
+ "name": "tokenValue",
1017
+ "type": "uint256"
1018
+ }
1019
+ ],
1020
+ "name": "safeBurn",
1021
+ "outputs": [
1022
+ {
1023
+ "internalType": "uint256",
1024
+ "name": "shares",
1025
+ "type": "uint256"
928
1026
  }
929
1027
  ],
930
- "name": "renounceRole",
931
- "outputs": [],
932
1028
  "stateMutability": "nonpayable",
933
1029
  "type": "function"
934
1030
  },
935
1031
  {
936
1032
  "inputs": [
937
- {
938
- "internalType": "bytes32",
939
- "name": "role",
940
- "type": "bytes32"
941
- },
942
1033
  {
943
1034
  "internalType": "address",
944
- "name": "account",
1035
+ "name": "newAuthority",
945
1036
  "type": "address"
946
1037
  }
947
1038
  ],
948
- "name": "revokeRole",
1039
+ "name": "setAuthority",
949
1040
  "outputs": [],
950
1041
  "stateMutability": "nonpayable",
951
1042
  "type": "function"
@@ -959,38 +1050,31 @@
959
1050
  },
960
1051
  {
961
1052
  "internalType": "uint256",
962
- "name": "tokenValue",
963
- "type": "uint256"
964
- }
965
- ],
966
- "name": "safeBurn",
967
- "outputs": [
968
- {
969
- "internalType": "uint256",
970
- "name": "shares",
1053
+ "name": "liqEthAmount",
971
1054
  "type": "uint256"
972
1055
  }
973
1056
  ],
1057
+ "name": "shiftValueFrom",
1058
+ "outputs": [],
974
1059
  "stateMutability": "nonpayable",
975
1060
  "type": "function"
976
1061
  },
977
1062
  {
978
1063
  "inputs": [
979
1064
  {
980
- "internalType": "bytes4",
981
- "name": "interfaceId",
982
- "type": "bytes4"
983
- }
984
- ],
985
- "name": "supportsInterface",
986
- "outputs": [
1065
+ "internalType": "address",
1066
+ "name": "to",
1067
+ "type": "address"
1068
+ },
987
1069
  {
988
- "internalType": "bool",
989
- "name": "",
990
- "type": "bool"
1070
+ "internalType": "uint256",
1071
+ "name": "liqEthAmount",
1072
+ "type": "uint256"
991
1073
  }
992
1074
  ],
993
- "stateMutability": "view",
1075
+ "name": "shiftValueTo",
1076
+ "outputs": [],
1077
+ "stateMutability": "nonpayable",
994
1078
  "type": "function"
995
1079
  },
996
1080
  {
@@ -1072,16 +1156,47 @@
1072
1156
  "stateMutability": "nonpayable",
1073
1157
  "type": "function"
1074
1158
  },
1159
+ {
1160
+ "inputs": [],
1161
+ "name": "unit",
1162
+ "outputs": [
1163
+ {
1164
+ "internalType": "uint256",
1165
+ "name": "",
1166
+ "type": "uint256"
1167
+ }
1168
+ ],
1169
+ "stateMutability": "view",
1170
+ "type": "function"
1171
+ },
1075
1172
  {
1076
1173
  "inputs": [],
1077
1174
  "name": "unpause",
1078
1175
  "outputs": [],
1079
1176
  "stateMutability": "nonpayable",
1080
1177
  "type": "function"
1178
+ },
1179
+ {
1180
+ "inputs": [
1181
+ {
1182
+ "internalType": "address",
1183
+ "name": "newImplementation",
1184
+ "type": "address"
1185
+ },
1186
+ {
1187
+ "internalType": "bytes",
1188
+ "name": "data",
1189
+ "type": "bytes"
1190
+ }
1191
+ ],
1192
+ "name": "upgradeToAndCall",
1193
+ "outputs": [],
1194
+ "stateMutability": "payable",
1195
+ "type": "function"
1081
1196
  }
1082
1197
  ],
1083
- "bytecode": "0x6101603461046f57601f61232338819003918201601f19168301916001600160401b038311848410176103985780849260209460405283398101031261046f57516001600160a01b038116810361046f576040519061005d82610474565b6006825265098d2e28aa8960d31b908160208401526040519161007f83610474565b60068352650d8d2e28aa8960d31b60208401526040519061009f82610474565b600682526020820152604051906100b582610474565b60018252603160f81b60208301526100cc81610520565b610120526100d9826106df565b6101405260208151910120908160e0526020815191012080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b03821117610398576040525190206080523060c05282516001600160401b038111610398576005908154600181811c91168015610465575b602082101461037857601f811161041f575b50602094601f82116001146103b9579481929394956000926103ae575b50508160011b916000199060031b1c19161781555b8251906001600160401b0382116103985760065490600182811c9216801561038e575b602083101461037857601f8211610335575b5050602092601f82116001146102cf57928192936000926102c4575b50508160011b916000199060031b1c1916176006555b6b033b2e3c9fd0803ce800000060078190556008805460ff19166012179055600a556001600160a01b0381166102bb57506102693361048f565b50604051611abf90816108648239608051816114d5015260a051816115a1015260c0518161149f015260e051816115240152610100518161154a015261012051816108640152610140518161088e0152f35b6102699061048f565b015190503880610219565b601f19821693600660005260206000209160005b86811061031d5750836001959610610304575b505050811b0160065561022f565b015160001960f88460031b161c191690553880806102f6565b919260206001819286850151815501940192016102e3565b6006600052602060002090601f8401811c8201926020851061036e575b601f01901c01905b818110156101fd576000815560010161035a565b9192508291610352565b634e487b7160e01b600052602260045260246000fd5b91607f16916101eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806101b3565b601f198216958360005260206000209160005b888110610407575083600195969798106103ee575b505050811b0181556101c8565b015160001960f88460031b161c191690553880806103e1565b919260206001819286850151815501940192016103cc565b826000526020600020601f8301841c8101916020841061045b575b601f01841c01905b81811061044f5750610196565b60008155600101610442565b909150819061043a565b90607f1690610184565b600080fd5b604081019081106001600160401b0382111761039857604052565b6001600160a01b031660008181527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8602052604081205490919060ff1661051c57818052600c6020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5090565b805160209190828110156105ba575090601f82511161055b578082519201519080831061054c57501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b8285106105a1575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061057e565b6001600160401b038111610398576000928354926001938481811c911680156106d5575b838210146106c157601f811161068e575b5081601f841160011461062b57509282939183928694610620575b50501b916000199060031b1c191617905560ff90565b01519250388061060a565b919083601f1981168780528488209488905b88838310610674575050501061065b575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808061064e565b85870151885590960195948501948793509081019061063d565b85805284601f848820920160051c820191601f860160051c015b8281106106b65750506105ef565b8781550185906106a8565b634e487b7160e01b86526022600452602486fd5b90607f16906105de565b8051602090818110156107685750601f825111610709578082519201519080831061054c57501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851061074f575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935061072c565b9192916001600160401b0381116103985760019182548381811c91168015610859575b8282101461037857601f8111610823575b5080601f83116001146107d95750819293946000926107ce575b5050600019600383901b1c191690821b17905560ff90565b0151905038806107b6565b90601f198316958460005282600020926000905b88821061080c575050838596971061065b57505050811b01905560ff90565b8087859682949686015181550195019301906107ed565b8360005283601f83600020920160051c820191601f850160051c015b82811061084d57505061079c565b6000815501849061083f565b90607f169061078b56fe60806040908082526004918236101561001757600080fd5b600091823560e01c9081630186108014610f595750806301ffc9a714610f0357806302cea26b14610ee357806306fdde0314610e3057806307e2cea514610df6578063095ea7b314610dcd57806318160ddd14610da75780631b870ba714610d1457806323b872dd14610cd8578063248a9ca314610cad5780632f2ff15d14610c83578063313ce56714610c625780633644e51514610c4657806336568abe14610c015780633f4ba83a14610b9757806340c10f1914610a675780635c975abb14610a4457806370a08231146109fd5780637ecebe00146109c65780638456cb591461096c57806384b0196e1461084c57806391d148541461080557806395d89b41146107145780639d8e2177146106ee5780639f15d7001461059c578063a217fddf14610582578063a846ef7f14610564578063a9059cbb14610534578063b0428da614610516578063d505accf146103af578063d539139314610375578063d547741f14610335578063dd62ed3e146102e85763e39fa5d21461019b57600080fd5b346102e45760203660031901126102e45782356101b661113b565b600954600a54600754906101d9600a6101d08484876119ec565b048511156110fe565b83156102a157821561027257816101f091846119ec565b8381039181831161025f578085918402938404149114171561024c577fb762d39071f358aadf087b91215286e9bcf9076ce362828ff37c813424b35a2b939291610239916110f4565b9081600a5582519182526020820152a180f35b634e487b7160e01b855260118652602485fd5b634e487b7160e01b875260118852602487fd5b845162461bcd60e51b815260208189015260096024820152686e6f2073686172657360b81b6044820152606490fd5b845162461bcd60e51b8152602081890152601b60248201527f52657761726420616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b5080fd5b5082346103315781600319360112610331576020928291610307610fb5565b61030f610fd0565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b50829034610331578060031936011261033157610371913561036c600161035a610fd0565b93838752600c602052862001546111ef565b6115c7565b5080f35b50346102e457816003193601126102e457602090517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b5091346102e45760e03660031901126102e4576103ca610fb5565b6103d2610fd0565b906044359260643560843560ff81168103610512578142116104fb5760018060a01b0390818516928389526002602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176104e8578b525190206104b6916104ad9161048761149c565b908c519161190160f01b83526002830152602282015260c43591604260a43592206118b1565b90929192611961565b168181036104cd57866104ca87878761163e565b80f35b87516325c0072360e11b815292830152602482015260449150fd5b634e487b7160e01b8b526041875260248bfd5b875163313c898160e11b8152808401839052602490fd5b8680fd5b50346102e457816003193601126102e4576020906009549051908152f35b50346102e457806003193601126102e45760209061055d610553610fb5565b602435903361130b565b5160018152f35b50346102e457816003193601126102e4576020906007549051908152f35b50346102e457816003193601126102e45751908152602090f35b50346102e457806003193601126102e4576105b5610fb5565b602435926001600160a01b0382169182156106d7573383036106c7575b6105da6116d1565b6105e26116d1565b6105eb85610fe6565b908383526003602052848320549682881061067f5750508060209684845260038852038483205560095403600955817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37f8038d1806af22a919dcd5b2a4c313824e515ceb65343ff568379f92a1f3230108261066d85610fe6565b9481519086825287820152a251908152f35b6106c387876106948b600a54600754916119ec565b905163391434e360e21b81526001600160a01b0390951693850193845260208401526040830152829160600190565b0390fd5b6106d2853383611238565b6105d2565b8351634b637e8f60e11b8152808701839052602490fd5b50346102e457816003193601126102e457602090516b033b2e3c9fd0803ce80000008152f35b509034610802578060031936011261080257815191828260065461073781611066565b90818452602095600191876001821691826000146107db57505060011461077f575b50505061077b929161076c9103856110d2565b51928284938452830190610f75565b0390f35b9190869350600683527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b8284106107c3575050508201018161076c61077b610759565b8054848a0186015288955087949093019281016107aa565b60ff19168782015293151560051b8601909301935084925061076c915061077b9050610759565b80fd5b5082346103315781600319360112610331578160209360ff92610826610fd0565b90358252600c86528282206001600160a01b039091168252855220549151911615158152f35b508290346103315782600319360112610331576108887f00000000000000000000000000000000000000000000000000000000000000006116ef565b926108b27f00000000000000000000000000000000000000000000000000000000000000006117f0565b90825192602092602085019585871067ffffffffffffffff881117610959575092602061090f838896610902998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610f75565b91898303908a0152610f75565b924660608801523060808801528460a088015286840360c088015251928381520193925b82811061094257505050500390f35b835185528695509381019392810192600101610933565b634e487b7160e01b845260419052602483fd5b50346102e457816003193601126102e45760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258916109a96111b5565b6109b16116d1565b600160ff19600b541617600b5551338152a180f35b50346102e45760203660031901126102e45760209181906001600160a01b036109ed610fb5565b1681526002845220549051908152f35b50346102e45760203660031901126102e457602091610a3d9082906001600160a01b03610a28610fb5565b168152600385522054600a54600754916119ec565b9051908152f35b50346102e457816003193601126102e45760209060ff600b541690519015158152f35b50346102e457806003193601126102e457610a80610fb5565b92602435927ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc994858252602095600c8752848320338452875260ff858420541615610b7957506001600160a01b0316918215610b6457508190610ae16116d1565b610ae96116d1565b610af285610fe6565b610afe81600954611215565b600955828252600387528482209081540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37fd5103f333769455df788908e17b0f6f83838ebeae2cd1ed6f23ec20dad88c9a38261066d85610fe6565b60249184519163ec442f0560e01b8352820152fd5b845163e2517d3f60e01b815233818601526024810191909152604490fd5b508234610331578260031936011261033157610bb16111b5565b600b549060ff821615610bf3575060ff1916600b55513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b50346102e457806003193601126102e457610c1a610fd0565b90336001600160a01b03831603610c3757506103719192356115c7565b5163334bd91960e11b81528390fd5b50346102e457816003193601126102e457602090610a3d61149c565b50346102e457816003193601126102e45760209060ff600854169051908152f35b508290346103315780600319360112610331576103719135610ca8600161035a610fd0565b61141c565b5082346103315760203660031901126103315781602093600192358152600c85522001549051908152f35b50346102e45760603660031901126102e45760209061055d610cf8610fb5565b610d00610fd0565b60443591610d0f833383611238565b61130b565b50346102e45760203660031901126102e4578235610d3061113b565b600954600a5460075490610d4a600a6101d08484876119ec565b83156102a15782156102725783610d6583610d6a93866119ec565b611215565b81810291818304149015171561024c577f5cbb2dcb38e3f81288892582319561f83597c750f6e15b840461f14557b7c24a939291610239916110f4565b50346102e457816003193601126102e457602090610a3d600954600a54600754916119ec565b50346102e457806003193601126102e45760209061055d610dec610fb5565b602435903361163e565b50346102e457816003193601126102e457602090517f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c88152f35b5090346108025780600319360112610802578151918282600554610e5381611066565b90818452602095600191876001821691826000146107db575050600114610e875750505061077b929161076c9103856110d2565b9190869350600583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b828410610ecb575050508201018161076c61077b610759565b8054848a018601528895508794909301928101610eb2565b5090346108025760203660031901126108025750610a3d60209235610fe6565b50823461033157602036600319011261033157359063ffffffff60e01b82168092036103315760209250637965db0b60e01b8214918215610f48575b50519015158152f35b6301ffc9a760e01b14915083610f3f565b8390346102e457816003193601126102e457602090600a548152f35b919082519283825260005b848110610fa1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f80565b600435906001600160a01b0382168203610fcb57565b600080fd5b602435906001600160a01b0382168203610fcb57565b801561102a57600754600a54610ffd8183856119ec565b918115611014576110119309151590611215565b90565b634e487b7160e01b600052601260045260246000fd5b60405162461bcd60e51b8152602060048201526014602482015273416d6f756e742063616e2774206265207a65726f60601b6044820152606490fd5b90600182811c92168015611096575b602083101461108057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611075565b6040810190811067ffffffffffffffff8211176110bc57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176110bc57604052565b8115611014570490565b1561110557565b60405162461bcd60e51b815260206004820152600e60248201526d52656261736520746f6f2062696760901b6044820152606490fd5b3360009081527fad6800380182c080bdcbe0405f029414a274cf648936d4a4dfe109b0c29b356b60205260409020547f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c89060ff16156111975750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8602052604081205460ff16156111975750565b80600052600c60205260406000203360005260205260ff60406000205416156111975750565b9190820180921161122257565b634e487b7160e01b600052601160045260246000fd5b9160018060a01b038093169160009383855260046020526040938486209183169182875260205284862054926000198410611277575b50505050505050565b8484106112db575080156112c35781156112ab5785526004602052838520908552602052039120553880808080808061126e565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8551637dc7a0d960e11b81526001600160a01b039190911660048201526024810184905260448101859052606490fd5b916001600160a01b0380841692831561140357169283156113ea5761132e6116d1565b6113366116d1565b61133f82610fe6565b9060009084825260036020526040822054908382106113a257509160408282602095887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98965260038752038282205587815220908154019055604051908152a3565b6106c36113b68693600a54600754916119ec565b60405163391434e360e21b81526001600160a01b039093166004840152602483015260448201929092529081906064820190565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b90600091808352600c602052604083209160018060a01b03169182845260205260ff6040842054161560001461149757808352600c6020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316148061159e575b156114f7577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176110bc5760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146114ce565b90600091808352600c602052604083209160018060a01b03169182845260205260ff60408420541660001461149757808352600c602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6001600160a01b039081169182156116b8571691821561169f5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b60ff600b54166116dd57565b60405163d93c066560e01b8152600490fd5b60ff811461172d5760ff811690601f821161171b5760405191611711836110a0565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b506040516000816000549161174183611066565b808352926020906001908181169081156117cc575060011461176c575b5050611011925003826110d2565b915092600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563936000925b8284106117b45750611011945050508101602001388061175e565b85548785018301529485019486945092810192611799565b9150506020925061101194915060ff191682840152151560051b820101388061175e565b60ff81146118125760ff811690601f821161171b5760405191611711836110a0565b5060405160008160019160015461182881611066565b80845293602091600181169081156117cc5750600114611850575050611011925003826110d2565b91509260016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000925b8284106118995750611011945050508101602001388061175e565b8554878501830152948501948694509281019261187e565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161193557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156119295780516001600160a01b0381161561192057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6004111561194b57565b634e487b7160e01b600052602160045260246000fd5b61196a81611941565b80611973575050565b61197c81611941565b600181036119965760405163f645eedf60e01b8152600490fd5b61199f81611941565b600281036119c05760405163fce698f760e01b815260048101839052602490fd5b806119cc600392611941565b146119d45750565b602490604051906335e2f38360e21b82526004820152fd5b90916000198383099280830292838086109503948086039514611a7c5784831115611a63579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b50509061101192506110f456fea26469706673582212207bb1b925ff7557719bb930c413747e67761c82e5b0edd8c2847c4ee5153c5ec664736f6c63430008190033",
1084
- "deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081630186108014610f595750806301ffc9a714610f0357806302cea26b14610ee357806306fdde0314610e3057806307e2cea514610df6578063095ea7b314610dcd57806318160ddd14610da75780631b870ba714610d1457806323b872dd14610cd8578063248a9ca314610cad5780632f2ff15d14610c83578063313ce56714610c625780633644e51514610c4657806336568abe14610c015780633f4ba83a14610b9757806340c10f1914610a675780635c975abb14610a4457806370a08231146109fd5780637ecebe00146109c65780638456cb591461096c57806384b0196e1461084c57806391d148541461080557806395d89b41146107145780639d8e2177146106ee5780639f15d7001461059c578063a217fddf14610582578063a846ef7f14610564578063a9059cbb14610534578063b0428da614610516578063d505accf146103af578063d539139314610375578063d547741f14610335578063dd62ed3e146102e85763e39fa5d21461019b57600080fd5b346102e45760203660031901126102e45782356101b661113b565b600954600a54600754906101d9600a6101d08484876119ec565b048511156110fe565b83156102a157821561027257816101f091846119ec565b8381039181831161025f578085918402938404149114171561024c577fb762d39071f358aadf087b91215286e9bcf9076ce362828ff37c813424b35a2b939291610239916110f4565b9081600a5582519182526020820152a180f35b634e487b7160e01b855260118652602485fd5b634e487b7160e01b875260118852602487fd5b845162461bcd60e51b815260208189015260096024820152686e6f2073686172657360b81b6044820152606490fd5b845162461bcd60e51b8152602081890152601b60248201527f52657761726420616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b5080fd5b5082346103315781600319360112610331576020928291610307610fb5565b61030f610fd0565b6001600160a01b03918216845291865283832091168252845220549051908152f35b8280fd5b50829034610331578060031936011261033157610371913561036c600161035a610fd0565b93838752600c602052862001546111ef565b6115c7565b5080f35b50346102e457816003193601126102e457602090517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b5091346102e45760e03660031901126102e4576103ca610fb5565b6103d2610fd0565b906044359260643560843560ff81168103610512578142116104fb5760018060a01b0390818516928389526002602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176104e8578b525190206104b6916104ad9161048761149c565b908c519161190160f01b83526002830152602282015260c43591604260a43592206118b1565b90929192611961565b168181036104cd57866104ca87878761163e565b80f35b87516325c0072360e11b815292830152602482015260449150fd5b634e487b7160e01b8b526041875260248bfd5b875163313c898160e11b8152808401839052602490fd5b8680fd5b50346102e457816003193601126102e4576020906009549051908152f35b50346102e457806003193601126102e45760209061055d610553610fb5565b602435903361130b565b5160018152f35b50346102e457816003193601126102e4576020906007549051908152f35b50346102e457816003193601126102e45751908152602090f35b50346102e457806003193601126102e4576105b5610fb5565b602435926001600160a01b0382169182156106d7573383036106c7575b6105da6116d1565b6105e26116d1565b6105eb85610fe6565b908383526003602052848320549682881061067f5750508060209684845260038852038483205560095403600955817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37f8038d1806af22a919dcd5b2a4c313824e515ceb65343ff568379f92a1f3230108261066d85610fe6565b9481519086825287820152a251908152f35b6106c387876106948b600a54600754916119ec565b905163391434e360e21b81526001600160a01b0390951693850193845260208401526040830152829160600190565b0390fd5b6106d2853383611238565b6105d2565b8351634b637e8f60e11b8152808701839052602490fd5b50346102e457816003193601126102e457602090516b033b2e3c9fd0803ce80000008152f35b509034610802578060031936011261080257815191828260065461073781611066565b90818452602095600191876001821691826000146107db57505060011461077f575b50505061077b929161076c9103856110d2565b51928284938452830190610f75565b0390f35b9190869350600683527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b8284106107c3575050508201018161076c61077b610759565b8054848a0186015288955087949093019281016107aa565b60ff19168782015293151560051b8601909301935084925061076c915061077b9050610759565b80fd5b5082346103315781600319360112610331578160209360ff92610826610fd0565b90358252600c86528282206001600160a01b039091168252855220549151911615158152f35b508290346103315782600319360112610331576108887f00000000000000000000000000000000000000000000000000000000000000006116ef565b926108b27f00000000000000000000000000000000000000000000000000000000000000006117f0565b90825192602092602085019585871067ffffffffffffffff881117610959575092602061090f838896610902998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610f75565b91898303908a0152610f75565b924660608801523060808801528460a088015286840360c088015251928381520193925b82811061094257505050500390f35b835185528695509381019392810192600101610933565b634e487b7160e01b845260419052602483fd5b50346102e457816003193601126102e45760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258916109a96111b5565b6109b16116d1565b600160ff19600b541617600b5551338152a180f35b50346102e45760203660031901126102e45760209181906001600160a01b036109ed610fb5565b1681526002845220549051908152f35b50346102e45760203660031901126102e457602091610a3d9082906001600160a01b03610a28610fb5565b168152600385522054600a54600754916119ec565b9051908152f35b50346102e457816003193601126102e45760209060ff600b541690519015158152f35b50346102e457806003193601126102e457610a80610fb5565b92602435927ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc994858252602095600c8752848320338452875260ff858420541615610b7957506001600160a01b0316918215610b6457508190610ae16116d1565b610ae96116d1565b610af285610fe6565b610afe81600954611215565b600955828252600387528482209081540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868551878152a37fd5103f333769455df788908e17b0f6f83838ebeae2cd1ed6f23ec20dad88c9a38261066d85610fe6565b60249184519163ec442f0560e01b8352820152fd5b845163e2517d3f60e01b815233818601526024810191909152604490fd5b508234610331578260031936011261033157610bb16111b5565b600b549060ff821615610bf3575060ff1916600b55513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b50346102e457806003193601126102e457610c1a610fd0565b90336001600160a01b03831603610c3757506103719192356115c7565b5163334bd91960e11b81528390fd5b50346102e457816003193601126102e457602090610a3d61149c565b50346102e457816003193601126102e45760209060ff600854169051908152f35b508290346103315780600319360112610331576103719135610ca8600161035a610fd0565b61141c565b5082346103315760203660031901126103315781602093600192358152600c85522001549051908152f35b50346102e45760603660031901126102e45760209061055d610cf8610fb5565b610d00610fd0565b60443591610d0f833383611238565b61130b565b50346102e45760203660031901126102e4578235610d3061113b565b600954600a5460075490610d4a600a6101d08484876119ec565b83156102a15782156102725783610d6583610d6a93866119ec565b611215565b81810291818304149015171561024c577f5cbb2dcb38e3f81288892582319561f83597c750f6e15b840461f14557b7c24a939291610239916110f4565b50346102e457816003193601126102e457602090610a3d600954600a54600754916119ec565b50346102e457806003193601126102e45760209061055d610dec610fb5565b602435903361163e565b50346102e457816003193601126102e457602090517f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c88152f35b5090346108025780600319360112610802578151918282600554610e5381611066565b90818452602095600191876001821691826000146107db575050600114610e875750505061077b929161076c9103856110d2565b9190869350600583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b828410610ecb575050508201018161076c61077b610759565b8054848a018601528895508794909301928101610eb2565b5090346108025760203660031901126108025750610a3d60209235610fe6565b50823461033157602036600319011261033157359063ffffffff60e01b82168092036103315760209250637965db0b60e01b8214918215610f48575b50519015158152f35b6301ffc9a760e01b14915083610f3f565b8390346102e457816003193601126102e457602090600a548152f35b919082519283825260005b848110610fa1575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610f80565b600435906001600160a01b0382168203610fcb57565b600080fd5b602435906001600160a01b0382168203610fcb57565b801561102a57600754600a54610ffd8183856119ec565b918115611014576110119309151590611215565b90565b634e487b7160e01b600052601260045260246000fd5b60405162461bcd60e51b8152602060048201526014602482015273416d6f756e742063616e2774206265207a65726f60601b6044820152606490fd5b90600182811c92168015611096575b602083101461108057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611075565b6040810190811067ffffffffffffffff8211176110bc57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176110bc57604052565b8115611014570490565b1561110557565b60405162461bcd60e51b815260206004820152600e60248201526d52656261736520746f6f2062696760901b6044820152606490fd5b3360009081527fad6800380182c080bdcbe0405f029414a274cf648936d4a4dfe109b0c29b356b60205260409020547f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c89060ff16156111975750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e8602052604081205460ff16156111975750565b80600052600c60205260406000203360005260205260ff60406000205416156111975750565b9190820180921161122257565b634e487b7160e01b600052601160045260246000fd5b9160018060a01b038093169160009383855260046020526040938486209183169182875260205284862054926000198410611277575b50505050505050565b8484106112db575080156112c35781156112ab5785526004602052838520908552602052039120553880808080808061126e565b8451634a1406b160e11b815260048101879052602490fd5b845163e602df0560e01b815260048101879052602490fd5b8551637dc7a0d960e11b81526001600160a01b039190911660048201526024810184905260448101859052606490fd5b916001600160a01b0380841692831561140357169283156113ea5761132e6116d1565b6113366116d1565b61133f82610fe6565b9060009084825260036020526040822054908382106113a257509160408282602095887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98965260038752038282205587815220908154019055604051908152a3565b6106c36113b68693600a54600754916119ec565b60405163391434e360e21b81526001600160a01b039093166004840152602483015260448201929092529081906064820190565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b90600091808352600c602052604083209160018060a01b03169182845260205260ff6040842054161560001461149757808352600c6020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316148061159e575b156114f7577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176110bc5760405251902090565b507f000000000000000000000000000000000000000000000000000000000000000046146114ce565b90600091808352600c602052604083209160018060a01b03169182845260205260ff60408420541660001461149757808352600c602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b6001600160a01b039081169182156116b8571691821561169f5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260048252604060002085600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b60ff600b54166116dd57565b60405163d93c066560e01b8152600490fd5b60ff811461172d5760ff811690601f821161171b5760405191611711836110a0565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b506040516000816000549161174183611066565b808352926020906001908181169081156117cc575060011461176c575b5050611011925003826110d2565b915092600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563936000925b8284106117b45750611011945050508101602001388061175e565b85548785018301529485019486945092810192611799565b9150506020925061101194915060ff191682840152151560051b820101388061175e565b60ff81146118125760ff811690601f821161171b5760405191611711836110a0565b5060405160008160019160015461182881611066565b80845293602091600181169081156117cc5750600114611850575050611011925003826110d2565b91509260016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000925b8284106118995750611011945050508101602001388061175e565b8554878501830152948501948694509281019261187e565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161193557926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156119295780516001600160a01b0381161561192057918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6004111561194b57565b634e487b7160e01b600052602160045260246000fd5b61196a81611941565b80611973575050565b61197c81611941565b600181036119965760405163f645eedf60e01b8152600490fd5b61199f81611941565b600281036119c05760405163fce698f760e01b815260048101839052602490fd5b806119cc600392611941565b146119d45750565b602490604051906335e2f38360e21b82526004820152fd5b90916000198383099280830292838086109503948086039514611a7c5784831115611a63579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b50509061101192506110f456fea26469706673582212207bb1b925ff7557719bb930c413747e67761c82e5b0edd8c2847c4ee5153c5ec664736f6c63430008190033",
1198
+ "bytecode": "0x60a0806040523460295730608052613123908161002f82396080518181816111870152612aa50152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806302cea26b146120f757806306fdde031461204d57806307e2cea514612012578063095ea7b314611fec57806318160ddd14611fd15780631b870ba714611f5557806323b872dd14611f1d5780632986c0e514611ef2578063313ce56714611eb25780633644e51514611e975780633f4ba83a14611e1e57806340c10f1914611cd2578063485cc955146113f25780634f1ef286146111f157806352d1902d146111745780635c975abb1461114457806370a08231146110d45780637a9e5e4b146110595780637ecebe00146110005780638456cb5914610f9757806384b0196e14610e3b5780638797dfeb14610c2a5780638fb3603714610bd7578063907af6c014610bac57806395d89b4114610aa757806398b2f1601461086f5780639d8e2177146108485780639f15d700146105f1578063a9059cbb146105c0578063ad3cb1cc14610576578063bf7e214f14610540578063cdcc560014610517578063d505accf1461038a578063d53913931461034f578063dd62ed3e146103065763e39fa5d2146101a857600080fd5b34610301576020366003190112610301576004356101c636336124e2565b6101dc600a6101d361241a565b0482111561246c565b80156102bc5760008051602061300e8339815191525490811561028b577fb762d39071f358aadf087b91215286e9bcf9076ce362828ff37c813424b35a2b918161026e61023260409461022d61241a565b6123f7565b61026860008051602061308e83398151915254610250868285612910565b809681600080516020612f4e83398151915255612d7d565b906123f7565b60008051602061306e8339815191525582519182526020820152a1005b60405162461bcd60e51b81526020600482015260096024820152686e6f2073686172657360b81b6044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f52657761726420616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b600080fd5b346103015760403660031901126103015761031f612155565b61033061032a61216b565b916124a9565b9060018060a01b03166000526020526020604060002054604051908152f35b346103015760003660031901126103015760206040517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b346103015760e0366003190112610301576103a3612155565b6103ab61216b565b60443590606435926084359360ff85168503610301578042116104ff5760018060a01b039081831695866000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040600020908154916001830190556040519260208401927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452896040860152858816606086015288608086015260a085015260c084015260c0835260e08301918383106001600160401b038411176104e9576104b6936104ad936040525190206104866129f7565b906040519161190160f01b83526002830152602282015260c43591604260a4359220612b32565b90929192612be2565b168481036104cb57506104c99350612967565b005b60449085604051916325c0072360e11b835260048301526024820152fd5b634e487b7160e01b600052604160045260246000fd5b6024906040519063313c898160e11b82526004820152fd5b34610301576000366003190112610301576000546040516001600160a01b039091168152602090f35b3461030157600036600319011261030157600080516020612f2e833981519152546040516001600160a01b039091168152602090f35b34610301576000366003190112610301576105bc60405161059681612194565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612115565b0390f35b34610301576040366003190112610301576105e66105dc612155565b6024359033612740565b602060405160018152f35b346103015760403660031901126103015761060a612155565b602435906001600160a01b0380821690811561082f5733820361081f575b610630612b07565b610638612b07565b61064061241a565b60008051602061306e833981519152908561065c83548261265e565b60008051602061308e8339815191528054809861068c600080516020612f4e833981519152948554938491612d7d565b9989600052600080516020612fae83398151915292836020526040600020548c81106107d7575050505087600052602052604060002088815403905560008051602061300e833981519152888154818103835514156000146107c95761022d9261070695949261070192549154905491612d7d565b61265e565b90555b6000827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051888152a3817f8038d1806af22a919dcd5b2a4c313824e515ceb65343ff568379f92a1f32301060408051868152876020820152a26000541692833b156103015760446000928360405196879485936326995e5f60e21b8552600485015260248401525af19182156107bd576020926107ae575b50604051908152f35b6107b790612181565b826107a5565b6040513d6000823e3d90fd5b505050505060009055610709565b87939261081b926107e792612d7d565b60405163391434e360e21b81526001600160a01b039093166004840152602483015260448201929092529081906064820190565b0390fd5b61082a84338561266b565b610628565b604051634b637e8f60e11b815260006004820152602490fd5b346103015760003660031901126103015760206040516b033b2e3c9fd0803ce80000008152f35b3461030157604036600319011261030157610888612155565b6001600160a01b0381169060243590821580156108b857604051634b637e8f60e11b815260006004820152602490fd5b338403610a97575b6108cb831515612878565b61082f5782600052600080516020612fae8339815191529182602052604060002054600080516020612f4e83398151915290815460008051602061308e83398151915280549561091c878486612d7d565b90868210610a6557508561092f916123f7565b9061093861241a565b9761095360008051602061300e8339815191529586546123f7565b908115610a21577f533f82715fcbb2bcfb4016a949f797cb146ff629ae7061497ba49c3a921f57809961022d610a1c986109cb858f9d956109b76109f99a8f986109ae8e6109a86109f39d846109db9e612d7d565b9061265e565b91828855612910565b9e6000526020528d6040600020558d61265e565b8099555497889554958691612d7d565b918260008051602061306e8339815191525585612946565b116128c4565b604051948594859094939260609260808301968352602083015260408201520152565b0390a2005b606460405162461bcd60e51b815260206004820152602060248201527f4e6f206f746865722073686172657320746f206469737472696275746520746f6044820152fd5b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101869052606490fd5b610aa283338461266b565b6108c0565b34610301576000366003190112610301576040517f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7118054826000610aea8361225a565b9283835260209460019186600182169182600014610b8a575050600114610b2e575b5050610b1a925003836121af565b6105bc604051928284938452830190612115565b8592506000527f8e8879b336e5b07f58381d4bd014859b78667419272151a69affb85e7f9ca77b906000915b858310610b72575050610b1a93508201018580610b0c565b80548389018501528794508693909201918101610b5a565b9250935050610b1a94915060ff191682840152151560051b8201018580610b0c565b3461030157600036600319011261030157602060008051602061308e83398151915254604051908152f35b3461030157600036600319011261030157600080516020612f2e8339815191525460a01c60ff1615610c21576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b60206000610c0e565b3461030157604036600319011261030157610c43612155565b602435610c5036336124e2565b610c5b811515612878565b6001600160a01b038216918215610e225782600052600080516020612fae8339815191528060205260406000205491600080516020612f4e8339815191529182549260008051602061308e83398151915292835492610cbb848789612d7d565b610cc361241a565b94610cde60008051602061300e833981519152998a546123f7565b938415610dd257610cef83886123f7565b908b610d3360ff7f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7135460081c166064610d288287612c6d565b91860915159061265e565b10610da05750508a989561022d89966109cb87610a1c9b977f294a3cc6299d1f322723499283f8b463dabdf1089c17870224adaa01837d16039f9d6109f3988f98610d9b8a610d926109f99f956102686109b7976109db9f8790612910565b93848a5561265e565b612910565b6040516344e7f86360e11b81526001600160a01b039190911660048201526024810191909152604481018b9052606490fd5b60405162461bcd60e51b815260206004820152602260248201527f4e6f206f746865722073686172657320746f20646973747269627574652066726044820152616f6d60f01b6064820152608490fd5b60405163ec442f0560e01b815260006004820152602490fd5b34610301576000366003190112610301577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610f6e575b15610f3157610e82612294565b610e8a61235a565b6040516020808201928284106001600160401b038511176104e957916020610ee48594610ed6979660405260008452604051978897600f60f81b895260e0858a015260e0890190612115565b908782036040890152612115565b91466060870152306080870152600060a087015285830360c0870152519182815201929160005b828110610f1a57505050500390f35b835185528695509381019392810192600101610f0b565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610e75565b3461030157600036600319011261030157610fb236336124e2565b610fba612b07565b60008051602061302e833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b34610301576020366003190112610301576001600160a01b03611021612155565b166000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526020604060002054604051908152f35b3461030157602036600319011261030157611072612155565b600080516020612f2e833981519152546001600160a01b039190821633036110bd57803b156110a4576104c99061281f565b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b34610301576020366003190112610301576001600160a01b036110f5612155565b16600052600080516020612fae833981519152602052602061113c604060002054600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b604051908152f35b3461030157600036600319011261030157602060ff60008051602061302e83398151915254166040519015158152f35b34610301576000366003190112610301577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036111df5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b604036600319011261030157611205612155565b60249081356001600160401b0381116103015736602382011215610301578060040135611231816121d0565b9261123f60405194856121af565b818452602091828501933687838301011161030157816000928886930187378601015261126a612a9b565b61127436336124e2565b61127c612a9b565b6040516352d1902d60e01b81526001600160a01b03821694908381600481895afa600091816113c3575b506112c357604051634c9c8ce360e01b8152600481018790528790fd5b8590877f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc918281036113ae5750843b15611398575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511561137d575060006104c99481925190845af4903d15611374573d611357816121d0565b9061136560405192836121af565b8152600081943d92013e612eca565b60609250612eca565b93505050503461138957005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9091508481813d83116113eb575b6113db81836121af565b81010312610301575190886112a6565b503d6113d1565b346103015760403660031901126103015761140b612155565b6024356001600160a01b0381168103610301576000805160206130ae83398151915254916001600160401b03831680159081611cc2575b6001149081611cb8575b159081611caf575b50611c9d576114ad9060016001600160401b03198516176000805160206130ae8339815191525560ff8460401c1615611c70575b611490612a6c565b611498612a6c565b6114a0612a6c565b6114a8612a6c565b61281f565b6114b5612a6c565b604051916114c283612194565b6006835265098d2e28aa8960d31b6020840152604051916114e283612194565b60068352650d8d2e28aa8960d31b60208401526114fd612a6c565b611505612a6c565b61150d612a6c565b60405161151981612194565b60018152603160f81b602082015261152f612a6c565b611537612a6c565b84516001600160401b0381116104e95761155f600080516020612f8e8339815191525461225a565b601f8111611bfa575b50806020601f8211600114611b6d57600091611b62575b508160011b916000199060031b1c191617600080516020612f8e833981519152555b8051906001600160401b0382116104e95781906115cc600080516020612fce8339815191525461225a565b601f8111611ae1575b50602090601f8311600114611a4f57600092611a44575b50508160011b916000199060031b1c191617600080516020612fce833981519152555b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005560007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015561165f612a6c565b611667612a6c565b83516001600160401b0381116104e95761168f600080516020612f6e8339815191525461225a565b601f81116119ca575b50602094601f821160011461193e57948192939495600092611933575b50508160011b916000199060031b1c191617600080516020612f6e833981519152555b82516001600160401b0381116104e9577f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc71190611714825461225a565b601f81116118cf575b506020601f821160011461184a57819060ff9660009261183f575b50508160011b916000199060031b1c19161790555b6b033b2e3c9fd0803ce80000008060008051602061308e83398151915255610a127f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc71391825490600080516020612f4e8339815191525561ffff19161790556117b3612a6c565b6117bb612a6c565b60018060a01b03166bffffffffffffffffffffffff60a01b600054161760005560401c16156117e657005b68ff0000000000000000196000805160206130ae83398151915254166000805160206130ae833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b015190508680611738565b601f19821695836000527f8e8879b336e5b07f58381d4bd014859b78667419272151a69affb85e7f9ca77b9660005b8181106118b757509160ff979184600195941061189e575b505050811b01905561174d565b015160001960f88460031b161c19169055868080611891565b83830151895560019098019760209384019301611879565b826000527f8e8879b336e5b07f58381d4bd014859b78667419272151a69affb85e7f9ca77b601f830160051c81019160208410611929575b601f0160051c01905b81811061191d575061171d565b60008155600101611910565b9091508190611907565b0151905085806116b5565b601f19821695600080516020612f6e83398151915260005260008051602061304e8339815191529160005b8881106119b257508360019596979810611999575b505050811b01600080516020612f6e833981519152556116d8565b015160001960f88460031b161c1916905585808061197e565b91926020600181928685015181550194019201611969565b600080516020612f6e833981519152600052601f820160051c60008051602061304e833981519152019060208310611a2e575b601f0160051c60008051602061304e83398151915201905b818110611a225750611698565b60008155600101611a15565b60008051602061304e83398151915291506119fd565b0151905086806115ec565b9250600080516020612fce8339815191526000526000805160206130ce833981519152906000935b601f1984168510611ac6576001945083601f19811610611aad575b505050811b01600080516020612fce8339815191525561160f565b015160001960f88460031b161c19169055868080611a92565b81810151835560209485019460019093019290910190611a77565b909150600080516020612fce833981519152600052601f830160051c6000805160206130ce8339815191520160208410611b4d575b908392915b601f820160051c6000805160206130ce833981519152018110611b3e57506115d5565b60008155849350600101611b1b565b506000805160206130ce833981519152611b16565b90508601518761157f565b9150600080516020612f8e833981519152600052600080516020612fee8339815191526000925b601f1983168410611be2576001935082601f19811610611bc9575b5050811b01600080516020612f8e833981519152556115a1565b88015160001960f88460031b161c191690558780611baf565b88810151825560209384019360019092019101611b94565b600080516020612f8e833981519152600052601f820160051c600080516020612fee8339815191520160208310611c5b575b601f820160051c600080516020612fee833981519152018110611c4f5750611568565b60008155600101611c2c565b50600080516020612fee833981519152611c2c565b68ffffffffffffffffff19841668010000000000000001176000805160206130ae83398151915255611488565b60405163f92ee8a960e01b8152600490fd5b90501584611454565b303b15915061144c565b604085901c60ff16159150611442565b3461030157604036600319011261030157611ceb612155565b60243590611cf936336124e2565b6001600160a01b0316908115610e2257602091611d14612b07565b611d1c612b07565b7fd5103f333769455df788908e17b0f6f83838ebeae2cd1ed6f23ec20dad88c9a36040611d4761241a565b9360008051602061306e833981519152611dde611d6d611d688354856123f7565b6121eb565b9661022d611db68560008051602061300e83398151915293611d908c865461265e565b85558a600052600080516020612fae8339815191528d52886000208c815401905561265e565b9154600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b90558360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef888551858152a381519085825286820152a2604051908152f35b3461030157600036600319011261030157611e3936336124e2565b60008051602061302e833981519152805460ff811615611e855760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461030157600036600319011261030157602061113c6129f7565b3461030157600036600319011261030157602060ff7f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7135416604051908152f35b34610301576000366003190112610301576020600080516020612f4e83398151915254604051908152f35b34610301576060366003190112610301576105e6611f39612155565b611f4161216b565b60443591611f5083338361266b565b612740565b3461030157602036600319011261030157600435611f7336336124e2565b611f80600a6101d361241a565b80156102bc5760008051602061300e8339815191525490811561028b577f5cbb2dcb38e3f81288892582319561f83597c750f6e15b840461f14557b7c24a918161026e61023260409461070161241a565b3461030157600036600319011261030157602061113c61241a565b34610301576040366003190112610301576105e6612008612155565b6024359033612967565b346103015760003660031901126103015760206040517f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c88152f35b3461030157600036600319011261030157604051600080516020612f6e833981519152805482600061207e8361225a565b9283835260209460019186600182169182600014610b8a5750506001146120ad575050610b1a925003836121af565b85925060005260008051602061304e833981519152906000915b8583106120df575050610b1a93508201018580610b0c565b805483890185015287945086939092019181016120c7565b3461030157602036600319011261030157602061113c6004356121eb565b919082519283825260005b848110612141575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612120565b600435906001600160a01b038216820361030157565b602435906001600160a01b038216820361030157565b6001600160401b0381116104e957604052565b604081019081106001600160401b038211176104e957604052565b90601f801991011681019081106001600160401b038211176104e957604052565b6001600160401b0381116104e957601f01601f191660200190565b801561221e5761221b9060008051602061308e83398151915254600080516020612f4e8339815191525491612910565b90565b60405162461bcd60e51b8152602060048201526014602482015273416d6f756e742063616e2774206265207a65726f60601b6044820152606490fd5b90600182811c9216801561228a575b602083101461227457565b634e487b7160e01b600052602260045260246000fd5b91607f1691612269565b60405190600082600080516020612f8e833981519152918254926122b78461225a565b8084529360209160019182811690811561233457506001146122e5575b5050506122e3925003836121af565b565b6000908152600080516020612fee8339815191529590935091905b82841061231c57506122e39450505081016020013880806122d4565b85548885018301529485019487945092810192612300565b92505050602092506122e394915060ff191682840152151560051b8201013880806122d4565b60405190600082600080516020612fce8339815191529182549261237d8461225a565b8084529360209160019182811690811561233457506001146123a8575050506122e3925003836121af565b60009081526000805160206130ce8339815191529590935091905b8284106123df57506122e39450505081016020013880806122d4565b855488850183015294850194879450928101926123c3565b9190820391821161240457565b634e487b7160e01b600052601160045260246000fd5b61221b61245660008051602061300e83398151915254600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b60008051602061306e83398151915254906123f7565b1561247357565b60405162461bcd60e51b815260206004820152600e60248201526d52656261736520746f6f2062696760901b6044820152606490fd5b6001600160a01b031660009081527f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc70f6020526040902090565b600080516020612f2e8339815191528054909290916001600160a01b03808416926004811061030157600080604094855194602086019163b700961360e01b8352169485602482015230604482015263ffffffff60e01b84351660648201526064815260a081018181106001600160401b0382111761264a5791849188938452828052826020525190895afa612639575b15612582575b50505050505050565b63ffffffff16156126235760ff60a01b19948516600160a01b178655833b1561030157606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af1908115612619575061260a575b50815416905538808080808080612579565b61261390612181565b386125f8565b513d6000823e3d90fd5b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c150290612573565b634e487b7160e01b85526041600452602485fd5b9190820180921161240457565b9190612676836124a9565b9260018060a01b03908183169160009583875260205260408620549360001985106126a45750505050505050565b85851061270f57508116156126f65781156126dd57906126c760409493926124a9565b9085526020520391205538808080808080612579565b604051634a1406b160e11b815260048101869052602490fd5b60405163e602df0560e01b815260048101869052602490fd5b604051637dc7a0d960e11b81526001600160a01b039190911660048201526024810185905260448101869052606490fd5b916001600160a01b0380841692831561082f5716928315610e2257612763612b07565b61276b612b07565b61277361241a565b5061277d826121eb565b90600090848252600080516020612fae833981519152908160205260408320548481106127f057505091604082602094877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef979552855281812083815403905587815220908154019055604051908152a3565b9061081b6107e78793600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b600080516020612f2e83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b1561287f57565b60405162461bcd60e51b815260206004820152601b60248201527f4c697145746820616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b156128cb57565b60405162461bcd60e51b815260206004820152601e60248201527f496e76617269616e7420746f74616c537570706c792076696f6c6174656400006044820152606490fd5b9161291c818385612d7d565b9181156129305761221b930915159061265e565b634e487b7160e01b600052601260045260246000fd5b906129518183612ce6565b90801561293057600161221b930915159061265e565b916001600160a01b038084169283156129de57169283156129c5577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916129af6020926124a9565b85600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b6129ff612e1b565b612a07612e85565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c081018181106001600160401b038211176104e95760405251902090565b60ff6000805160206130ae8339815191525460401c1615612a8957565b604051631afcd79f60e31b8152600490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215612ad9575b50506111df57565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880612ad1565b60ff60008051602061302e8339815191525416612b2057565b60405163d93c066560e01b8152600490fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bb657926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612baa5780516001600160a01b03811615612ba157918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60041115612bcc57565b634e487b7160e01b600052602160045260246000fd5b612beb81612bc2565b80612bf4575050565b612bfd81612bc2565b60018103612c175760405163f645eedf60e01b8152600490fd5b612c2081612bc2565b60028103612c415760405163fce698f760e01b815260048101839052602490fd5b80612c4d600392612bc2565b14612c555750565b602490604051906335e2f38360e21b82526004820152fd5b60001982820982820291828083109203918083039214612cdc578160641115612cc9577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b6000196001820991818084109303928084039314612d715782811115612d5957806001830981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b634e487b71600052156003026011186020526024601cfd5b80925015612930570490565b90916000198383099280830292838086109503948086039514612e0d5784831115612df4579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b505080925015612930570490565b612e23612294565b8051908115612e33576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100548015612e605790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612e8d61235a565b8051908115612e9d576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101548015612e605790565b90612ef15750805115612edf57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580612f24575b612f02575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612efa56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7150884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc710a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1020884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc70ea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10342ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc714cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300390a762f871b0785569ac27b59765108af0fece04c8b582e72a901e61335fe4e0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7160884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc712f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75a2646970667358221220e5d2d285753a88baf71e71eb934c97a746b6425de4035fdb64d2c2ddc8abe75464736f6c63430008190033",
1199
+ "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806302cea26b146120f757806306fdde031461204d57806307e2cea514612012578063095ea7b314611fec57806318160ddd14611fd15780631b870ba714611f5557806323b872dd14611f1d5780632986c0e514611ef2578063313ce56714611eb25780633644e51514611e975780633f4ba83a14611e1e57806340c10f1914611cd2578063485cc955146113f25780634f1ef286146111f157806352d1902d146111745780635c975abb1461114457806370a08231146110d45780637a9e5e4b146110595780637ecebe00146110005780638456cb5914610f9757806384b0196e14610e3b5780638797dfeb14610c2a5780638fb3603714610bd7578063907af6c014610bac57806395d89b4114610aa757806398b2f1601461086f5780639d8e2177146108485780639f15d700146105f1578063a9059cbb146105c0578063ad3cb1cc14610576578063bf7e214f14610540578063cdcc560014610517578063d505accf1461038a578063d53913931461034f578063dd62ed3e146103065763e39fa5d2146101a857600080fd5b34610301576020366003190112610301576004356101c636336124e2565b6101dc600a6101d361241a565b0482111561246c565b80156102bc5760008051602061300e8339815191525490811561028b577fb762d39071f358aadf087b91215286e9bcf9076ce362828ff37c813424b35a2b918161026e61023260409461022d61241a565b6123f7565b61026860008051602061308e83398151915254610250868285612910565b809681600080516020612f4e83398151915255612d7d565b906123f7565b60008051602061306e8339815191525582519182526020820152a1005b60405162461bcd60e51b81526020600482015260096024820152686e6f2073686172657360b81b6044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f52657761726420616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b600080fd5b346103015760403660031901126103015761031f612155565b61033061032a61216b565b916124a9565b9060018060a01b03166000526020526020604060002054604051908152f35b346103015760003660031901126103015760206040517ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc98152f35b346103015760e0366003190112610301576103a3612155565b6103ab61216b565b60443590606435926084359360ff85168503610301578042116104ff5760018060a01b039081831695866000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040600020908154916001830190556040519260208401927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452896040860152858816606086015288608086015260a085015260c084015260c0835260e08301918383106001600160401b038411176104e9576104b6936104ad936040525190206104866129f7565b906040519161190160f01b83526002830152602282015260c43591604260a4359220612b32565b90929192612be2565b168481036104cb57506104c99350612967565b005b60449085604051916325c0072360e11b835260048301526024820152fd5b634e487b7160e01b600052604160045260246000fd5b6024906040519063313c898160e11b82526004820152fd5b34610301576000366003190112610301576000546040516001600160a01b039091168152602090f35b3461030157600036600319011261030157600080516020612f2e833981519152546040516001600160a01b039091168152602090f35b34610301576000366003190112610301576105bc60405161059681612194565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612115565b0390f35b34610301576040366003190112610301576105e66105dc612155565b6024359033612740565b602060405160018152f35b346103015760403660031901126103015761060a612155565b602435906001600160a01b0380821690811561082f5733820361081f575b610630612b07565b610638612b07565b61064061241a565b60008051602061306e833981519152908561065c83548261265e565b60008051602061308e8339815191528054809861068c600080516020612f4e833981519152948554938491612d7d565b9989600052600080516020612fae83398151915292836020526040600020548c81106107d7575050505087600052602052604060002088815403905560008051602061300e833981519152888154818103835514156000146107c95761022d9261070695949261070192549154905491612d7d565b61265e565b90555b6000827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051888152a3817f8038d1806af22a919dcd5b2a4c313824e515ceb65343ff568379f92a1f32301060408051868152876020820152a26000541692833b156103015760446000928360405196879485936326995e5f60e21b8552600485015260248401525af19182156107bd576020926107ae575b50604051908152f35b6107b790612181565b826107a5565b6040513d6000823e3d90fd5b505050505060009055610709565b87939261081b926107e792612d7d565b60405163391434e360e21b81526001600160a01b039093166004840152602483015260448201929092529081906064820190565b0390fd5b61082a84338561266b565b610628565b604051634b637e8f60e11b815260006004820152602490fd5b346103015760003660031901126103015760206040516b033b2e3c9fd0803ce80000008152f35b3461030157604036600319011261030157610888612155565b6001600160a01b0381169060243590821580156108b857604051634b637e8f60e11b815260006004820152602490fd5b338403610a97575b6108cb831515612878565b61082f5782600052600080516020612fae8339815191529182602052604060002054600080516020612f4e83398151915290815460008051602061308e83398151915280549561091c878486612d7d565b90868210610a6557508561092f916123f7565b9061093861241a565b9761095360008051602061300e8339815191529586546123f7565b908115610a21577f533f82715fcbb2bcfb4016a949f797cb146ff629ae7061497ba49c3a921f57809961022d610a1c986109cb858f9d956109b76109f99a8f986109ae8e6109a86109f39d846109db9e612d7d565b9061265e565b91828855612910565b9e6000526020528d6040600020558d61265e565b8099555497889554958691612d7d565b918260008051602061306e8339815191525585612946565b116128c4565b604051948594859094939260609260808301968352602083015260408201520152565b0390a2005b606460405162461bcd60e51b815260206004820152602060248201527f4e6f206f746865722073686172657320746f206469737472696275746520746f6044820152fd5b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101869052606490fd5b610aa283338461266b565b6108c0565b34610301576000366003190112610301576040517f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7118054826000610aea8361225a565b9283835260209460019186600182169182600014610b8a575050600114610b2e575b5050610b1a925003836121af565b6105bc604051928284938452830190612115565b8592506000527f8e8879b336e5b07f58381d4bd014859b78667419272151a69affb85e7f9ca77b906000915b858310610b72575050610b1a93508201018580610b0c565b80548389018501528794508693909201918101610b5a565b9250935050610b1a94915060ff191682840152151560051b8201018580610b0c565b3461030157600036600319011261030157602060008051602061308e83398151915254604051908152f35b3461030157600036600319011261030157600080516020612f2e8339815191525460a01c60ff1615610c21576020638fb3603760e01b5b6040516001600160e01b03199091168152f35b60206000610c0e565b3461030157604036600319011261030157610c43612155565b602435610c5036336124e2565b610c5b811515612878565b6001600160a01b038216918215610e225782600052600080516020612fae8339815191528060205260406000205491600080516020612f4e8339815191529182549260008051602061308e83398151915292835492610cbb848789612d7d565b610cc361241a565b94610cde60008051602061300e833981519152998a546123f7565b938415610dd257610cef83886123f7565b908b610d3360ff7f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7135460081c166064610d288287612c6d565b91860915159061265e565b10610da05750508a989561022d89966109cb87610a1c9b977f294a3cc6299d1f322723499283f8b463dabdf1089c17870224adaa01837d16039f9d6109f3988f98610d9b8a610d926109f99f956102686109b7976109db9f8790612910565b93848a5561265e565b612910565b6040516344e7f86360e11b81526001600160a01b039190911660048201526024810191909152604481018b9052606490fd5b60405162461bcd60e51b815260206004820152602260248201527f4e6f206f746865722073686172657320746f20646973747269627574652066726044820152616f6d60f01b6064820152608490fd5b60405163ec442f0560e01b815260006004820152602490fd5b34610301576000366003190112610301577fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100541580610f6e575b15610f3157610e82612294565b610e8a61235a565b6040516020808201928284106001600160401b038511176104e957916020610ee48594610ed6979660405260008452604051978897600f60f81b895260e0858a015260e0890190612115565b908782036040890152612115565b91466060870152306080870152600060a087015285830360c0870152519182815201929160005b828110610f1a57505050500390f35b835185528695509381019392810192600101610f0b565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015415610e75565b3461030157600036600319011261030157610fb236336124e2565b610fba612b07565b60008051602061302e833981519152600160ff198254161790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b34610301576020366003190112610301576001600160a01b03611021612155565b166000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526020604060002054604051908152f35b3461030157602036600319011261030157611072612155565b600080516020612f2e833981519152546001600160a01b039190821633036110bd57803b156110a4576104c99061281f565b6040516361798f2f60e11b815291166004820152602490fd5b60405162d1953b60e31b8152336004820152602490fd5b34610301576020366003190112610301576001600160a01b036110f5612155565b16600052600080516020612fae833981519152602052602061113c604060002054600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b604051908152f35b3461030157600036600319011261030157602060ff60008051602061302e83398151915254166040519015158152f35b34610301576000366003190112610301577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036111df5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b604036600319011261030157611205612155565b60249081356001600160401b0381116103015736602382011215610301578060040135611231816121d0565b9261123f60405194856121af565b818452602091828501933687838301011161030157816000928886930187378601015261126a612a9b565b61127436336124e2565b61127c612a9b565b6040516352d1902d60e01b81526001600160a01b03821694908381600481895afa600091816113c3575b506112c357604051634c9c8ce360e01b8152600481018790528790fd5b8590877f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc918281036113ae5750843b15611398575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a281511561137d575060006104c99481925190845af4903d15611374573d611357816121d0565b9061136560405192836121af565b8152600081943d92013e612eca565b60609250612eca565b93505050503461138957005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9091508481813d83116113eb575b6113db81836121af565b81010312610301575190886112a6565b503d6113d1565b346103015760403660031901126103015761140b612155565b6024356001600160a01b0381168103610301576000805160206130ae83398151915254916001600160401b03831680159081611cc2575b6001149081611cb8575b159081611caf575b50611c9d576114ad9060016001600160401b03198516176000805160206130ae8339815191525560ff8460401c1615611c70575b611490612a6c565b611498612a6c565b6114a0612a6c565b6114a8612a6c565b61281f565b6114b5612a6c565b604051916114c283612194565b6006835265098d2e28aa8960d31b6020840152604051916114e283612194565b60068352650d8d2e28aa8960d31b60208401526114fd612a6c565b611505612a6c565b61150d612a6c565b60405161151981612194565b60018152603160f81b602082015261152f612a6c565b611537612a6c565b84516001600160401b0381116104e95761155f600080516020612f8e8339815191525461225a565b601f8111611bfa575b50806020601f8211600114611b6d57600091611b62575b508160011b916000199060031b1c191617600080516020612f8e833981519152555b8051906001600160401b0382116104e95781906115cc600080516020612fce8339815191525461225a565b601f8111611ae1575b50602090601f8311600114611a4f57600092611a44575b50508160011b916000199060031b1c191617600080516020612fce833981519152555b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1005560007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1015561165f612a6c565b611667612a6c565b83516001600160401b0381116104e95761168f600080516020612f6e8339815191525461225a565b601f81116119ca575b50602094601f821160011461193e57948192939495600092611933575b50508160011b916000199060031b1c191617600080516020612f6e833981519152555b82516001600160401b0381116104e9577f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc71190611714825461225a565b601f81116118cf575b506020601f821160011461184a57819060ff9660009261183f575b50508160011b916000199060031b1c19161790555b6b033b2e3c9fd0803ce80000008060008051602061308e83398151915255610a127f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc71391825490600080516020612f4e8339815191525561ffff19161790556117b3612a6c565b6117bb612a6c565b60018060a01b03166bffffffffffffffffffffffff60a01b600054161760005560401c16156117e657005b68ff0000000000000000196000805160206130ae83398151915254166000805160206130ae833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b015190508680611738565b601f19821695836000527f8e8879b336e5b07f58381d4bd014859b78667419272151a69affb85e7f9ca77b9660005b8181106118b757509160ff979184600195941061189e575b505050811b01905561174d565b015160001960f88460031b161c19169055868080611891565b83830151895560019098019760209384019301611879565b826000527f8e8879b336e5b07f58381d4bd014859b78667419272151a69affb85e7f9ca77b601f830160051c81019160208410611929575b601f0160051c01905b81811061191d575061171d565b60008155600101611910565b9091508190611907565b0151905085806116b5565b601f19821695600080516020612f6e83398151915260005260008051602061304e8339815191529160005b8881106119b257508360019596979810611999575b505050811b01600080516020612f6e833981519152556116d8565b015160001960f88460031b161c1916905585808061197e565b91926020600181928685015181550194019201611969565b600080516020612f6e833981519152600052601f820160051c60008051602061304e833981519152019060208310611a2e575b601f0160051c60008051602061304e83398151915201905b818110611a225750611698565b60008155600101611a15565b60008051602061304e83398151915291506119fd565b0151905086806115ec565b9250600080516020612fce8339815191526000526000805160206130ce833981519152906000935b601f1984168510611ac6576001945083601f19811610611aad575b505050811b01600080516020612fce8339815191525561160f565b015160001960f88460031b161c19169055868080611a92565b81810151835560209485019460019093019290910190611a77565b909150600080516020612fce833981519152600052601f830160051c6000805160206130ce8339815191520160208410611b4d575b908392915b601f820160051c6000805160206130ce833981519152018110611b3e57506115d5565b60008155849350600101611b1b565b506000805160206130ce833981519152611b16565b90508601518761157f565b9150600080516020612f8e833981519152600052600080516020612fee8339815191526000925b601f1983168410611be2576001935082601f19811610611bc9575b5050811b01600080516020612f8e833981519152556115a1565b88015160001960f88460031b161c191690558780611baf565b88810151825560209384019360019092019101611b94565b600080516020612f8e833981519152600052601f820160051c600080516020612fee8339815191520160208310611c5b575b601f820160051c600080516020612fee833981519152018110611c4f5750611568565b60008155600101611c2c565b50600080516020612fee833981519152611c2c565b68ffffffffffffffffff19841668010000000000000001176000805160206130ae83398151915255611488565b60405163f92ee8a960e01b8152600490fd5b90501584611454565b303b15915061144c565b604085901c60ff16159150611442565b3461030157604036600319011261030157611ceb612155565b60243590611cf936336124e2565b6001600160a01b0316908115610e2257602091611d14612b07565b611d1c612b07565b7fd5103f333769455df788908e17b0f6f83838ebeae2cd1ed6f23ec20dad88c9a36040611d4761241a565b9360008051602061306e833981519152611dde611d6d611d688354856123f7565b6121eb565b9661022d611db68560008051602061300e83398151915293611d908c865461265e565b85558a600052600080516020612fae8339815191528d52886000208c815401905561265e565b9154600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b90558360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef888551858152a381519085825286820152a2604051908152f35b3461030157600036600319011261030157611e3936336124e2565b60008051602061302e833981519152805460ff811615611e855760ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b604051638dfc202b60e01b8152600490fd5b3461030157600036600319011261030157602061113c6129f7565b3461030157600036600319011261030157602060ff7f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7135416604051908152f35b34610301576000366003190112610301576020600080516020612f4e83398151915254604051908152f35b34610301576060366003190112610301576105e6611f39612155565b611f4161216b565b60443591611f5083338361266b565b612740565b3461030157602036600319011261030157600435611f7336336124e2565b611f80600a6101d361241a565b80156102bc5760008051602061300e8339815191525490811561028b577f5cbb2dcb38e3f81288892582319561f83597c750f6e15b840461f14557b7c24a918161026e61023260409461070161241a565b3461030157600036600319011261030157602061113c61241a565b34610301576040366003190112610301576105e6612008612155565b6024359033612967565b346103015760003660031901126103015760206040517f352d05fe3946dbe49277552ba941e744d5a96d9c60bc1ba0ea5f1d3ae000f7c88152f35b3461030157600036600319011261030157604051600080516020612f6e833981519152805482600061207e8361225a565b9283835260209460019186600182169182600014610b8a5750506001146120ad575050610b1a925003836121af565b85925060005260008051602061304e833981519152906000915b8583106120df575050610b1a93508201018580610b0c565b805483890185015287945086939092019181016120c7565b3461030157602036600319011261030157602061113c6004356121eb565b919082519283825260005b848110612141575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201612120565b600435906001600160a01b038216820361030157565b602435906001600160a01b038216820361030157565b6001600160401b0381116104e957604052565b604081019081106001600160401b038211176104e957604052565b90601f801991011681019081106001600160401b038211176104e957604052565b6001600160401b0381116104e957601f01601f191660200190565b801561221e5761221b9060008051602061308e83398151915254600080516020612f4e8339815191525491612910565b90565b60405162461bcd60e51b8152602060048201526014602482015273416d6f756e742063616e2774206265207a65726f60601b6044820152606490fd5b90600182811c9216801561228a575b602083101461227457565b634e487b7160e01b600052602260045260246000fd5b91607f1691612269565b60405190600082600080516020612f8e833981519152918254926122b78461225a565b8084529360209160019182811690811561233457506001146122e5575b5050506122e3925003836121af565b565b6000908152600080516020612fee8339815191529590935091905b82841061231c57506122e39450505081016020013880806122d4565b85548885018301529485019487945092810192612300565b92505050602092506122e394915060ff191682840152151560051b8201013880806122d4565b60405190600082600080516020612fce8339815191529182549261237d8461225a565b8084529360209160019182811690811561233457506001146123a8575050506122e3925003836121af565b60009081526000805160206130ce8339815191529590935091905b8284106123df57506122e39450505081016020013880806122d4565b855488850183015294850194879450928101926123c3565b9190820391821161240457565b634e487b7160e01b600052601160045260246000fd5b61221b61245660008051602061300e83398151915254600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b60008051602061306e83398151915254906123f7565b1561247357565b60405162461bcd60e51b815260206004820152600e60248201526d52656261736520746f6f2062696760901b6044820152606490fd5b6001600160a01b031660009081527f0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc70f6020526040902090565b600080516020612f2e8339815191528054909290916001600160a01b03808416926004811061030157600080604094855194602086019163b700961360e01b8352169485602482015230604482015263ffffffff60e01b84351660648201526064815260a081018181106001600160401b0382111761264a5791849188938452828052826020525190895afa612639575b15612582575b50505050505050565b63ffffffff16156126235760ff60a01b19948516600160a01b178655833b1561030157606493600092838551968780958194634a63ebf760e11b835260048301528860248301528060448301528084848401378181018301849052601f01601f191681010301925af1908115612619575061260a575b50815416905538808080808080612579565b61261390612181565b386125f8565b513d6000823e3d90fd5b50602491519062d1953b60e31b82526004820152fd5b50516020518060201c150290612573565b634e487b7160e01b85526041600452602485fd5b9190820180921161240457565b9190612676836124a9565b9260018060a01b03908183169160009583875260205260408620549360001985106126a45750505050505050565b85851061270f57508116156126f65781156126dd57906126c760409493926124a9565b9085526020520391205538808080808080612579565b604051634a1406b160e11b815260048101869052602490fd5b60405163e602df0560e01b815260048101869052602490fd5b604051637dc7a0d960e11b81526001600160a01b039190911660048201526024810185905260448101869052606490fd5b916001600160a01b0380841692831561082f5716928315610e2257612763612b07565b61276b612b07565b61277361241a565b5061277d826121eb565b90600090848252600080516020612fae833981519152908160205260408320548481106127f057505091604082602094877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef979552855281812083815403905587815220908154019055604051908152a3565b9061081b6107e78793600080516020612f4e8339815191525460008051602061308e8339815191525491612d7d565b600080516020612f2e83398151915280546001600160a01b0319166001600160a01b0390921691821790556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1565b1561287f57565b60405162461bcd60e51b815260206004820152601b60248201527f4c697145746820616d6f756e742063616e2774206265207a65726f00000000006044820152606490fd5b156128cb57565b60405162461bcd60e51b815260206004820152601e60248201527f496e76617269616e7420746f74616c537570706c792076696f6c6174656400006044820152606490fd5b9161291c818385612d7d565b9181156129305761221b930915159061265e565b634e487b7160e01b600052601260045260246000fd5b906129518183612ce6565b90801561293057600161221b930915159061265e565b916001600160a01b038084169283156129de57169283156129c5577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916129af6020926124a9565b85600052825280604060002055604051908152a3565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b6129ff612e1b565b612a07612e85565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c081018181106001600160401b038211176104e95760405251902090565b60ff6000805160206130ae8339815191525460401c1615612a8957565b604051631afcd79f60e31b8152600490fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114918215612ad9575b50506111df57565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141590503880612ad1565b60ff60008051602061302e8339815191525416612b2057565b60405163d93c066560e01b8152600490fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612bb657926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15612baa5780516001600160a01b03811615612ba157918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60041115612bcc57565b634e487b7160e01b600052602160045260246000fd5b612beb81612bc2565b80612bf4575050565b612bfd81612bc2565b60018103612c175760405163f645eedf60e01b8152600490fd5b612c2081612bc2565b60028103612c415760405163fce698f760e01b815260048101839052602490fd5b80612c4d600392612bc2565b14612c555750565b602490604051906335e2f38360e21b82526004820152fd5b60001982820982820291828083109203918083039214612cdc578160641115612cc9577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b634e487b7160005260116020526024601cfd5b5050606491500490565b6000196001820991818084109303928084039314612d715782811115612d5957806001830981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b634e487b71600052156003026011186020526024601cfd5b80925015612930570490565b90916000198383099280830292838086109503948086039514612e0d5784831115612df4579082910981600003821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82634e487b71600052156003026011186020526024601cfd5b505080925015612930570490565b612e23612294565b8051908115612e33576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100548015612e605790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612e8d61235a565b8051908115612e9d576020012090565b50507fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101548015612e605790565b90612ef15750805115612edf57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580612f24575b612f02575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15612efa56fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7150884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc710a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1020884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc70ea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10342ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc714cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300390a762f871b0785569ac27b59765108af0fece04c8b582e72a901e61335fe4e0884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc7160884e82fcc7297d19535a414a4643eca28263693df96068030530de873bbc712f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75a2646970667358221220e5d2d285753a88baf71e71eb934c97a746b6425de4035fdb64d2c2ddc8abe75464736f6c63430008190033",
1085
1200
  "linkReferences": {},
1086
1201
  "deployedLinkReferences": {}
1087
1202
  }