@wireio/stake 2.7.1 → 2.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,68 +13,6 @@ export type LiqsolCore = {
13
13
  "description": "Created with Anchor"
14
14
  },
15
15
  "instructions": [
16
- {
17
- "name": "accumulateUnstakeRequest",
18
- "docs": [
19
- "Accumulate unstake requests to be processed in next allocation cycle",
20
- "Multiple requests can be accumulated before calculating allocations",
21
- "Returns the target epoch when this unstake request will be processed",
22
- "We should not be able to call this without development feature enabled",
23
- ""
24
- ],
25
- "discriminator": [
26
- 24,
27
- 73,
28
- 69,
29
- 139,
30
- 36,
31
- 209,
32
- 105,
33
- 252
34
- ],
35
- "accounts": [
36
- {
37
- "name": "admin",
38
- "writable": true,
39
- "signer": true
40
- },
41
- {
42
- "name": "stakeAllocationState",
43
- "docs": [
44
- "Stake allocation state - to accumulate pending unstake requests"
45
- ],
46
- "writable": true
47
- },
48
- {
49
- "name": "stakeMetrics",
50
- "docs": [
51
- "Stake metrics - to validate total unstake amount is available"
52
- ]
53
- },
54
- {
55
- "name": "maintenanceLedger",
56
- "docs": [
57
- "Maintenance ledger - to determine target processing epoch"
58
- ]
59
- },
60
- {
61
- "name": "globalConfig",
62
- "docs": [
63
- "Global config for min_unstake_request setting"
64
- ]
65
- },
66
- {
67
- "name": "clock"
68
- }
69
- ],
70
- "args": [
71
- {
72
- "name": "amount",
73
- "type": "u64"
74
- }
75
- ],
76
- "returns": "u64"
77
- },
78
16
  {
79
17
  "name": "addTopPerformersBatch",
80
18
  "docs": [
@@ -127,74 +65,6 @@ export type LiqsolCore = {
127
65
  ],
128
66
  "args": []
129
67
  },
130
- {
131
- "name": "addValidatorV2",
132
- "docs": [
133
- "Add a new validator bbypassing the looking at leaderboard and getting validators form there"
134
- ],
135
- "discriminator": [
136
- 217,
137
- 158,
138
- 30,
139
- 19,
140
- 123,
141
- 99,
142
- 110,
143
- 30
144
- ],
145
- "accounts": [
146
- {
147
- "name": "authority",
148
- "writable": true,
149
- "signer": true
150
- },
151
- {
152
- "name": "activeList",
153
- "docs": [
154
- "Active list - will add the validator here"
155
- ],
156
- "writable": true
157
- },
158
- {
159
- "name": "validatorInfo",
160
- "docs": [
161
- "Create the validator info account"
162
- ],
163
- "writable": true
164
- },
165
- {
166
- "name": "validatorTransient",
167
- "docs": [
168
- "Create the validator transient account"
169
- ],
170
- "writable": true
171
- },
172
- {
173
- "name": "stakeAllocationState",
174
- "docs": [
175
- "Stake allocation state - to update total_active_vpp when adding validator"
176
- ],
177
- "writable": true
178
- },
179
- {
180
- "name": "systemProgram"
181
- }
182
- ],
183
- "args": [
184
- {
185
- "name": "voteAccount",
186
- "type": "pubkey"
187
- },
188
- {
189
- "name": "name",
190
- "type": "string"
191
- },
192
- {
193
- "name": "performanceScore",
194
- "type": "u8"
195
- }
196
- ]
197
- },
198
68
  {
199
69
  "name": "adminForceUnbondRole",
200
70
  "discriminator": [
@@ -278,43 +148,6 @@ export type LiqsolCore = {
278
148
  ],
279
149
  "args": []
280
150
  },
281
- {
282
- "name": "blacklistValidator",
283
- "docs": [
284
- "Blacklist a validator (user-facing, maintenance will handle graveyard movement)",
285
- "UnderPerforming is set automatically when score is updated",
286
- "Another serious emergency stop function"
287
- ],
288
- "discriminator": [
289
- 125,
290
- 42,
291
- 36,
292
- 229,
293
- 27,
294
- 38,
295
- 226,
296
- 62
297
- ],
298
- "accounts": [
299
- {
300
- "name": "validatorInfo",
301
- "writable": true
302
- },
303
- {
304
- "name": "stakeAllocationState",
305
- "docs": [
306
- "Stake allocation state - to update total_active_vpp when VPP changes"
307
- ],
308
- "writable": true
309
- }
310
- ],
311
- "args": [
312
- {
313
- "name": "voteAccount",
314
- "type": "pubkey"
315
- }
316
- ]
317
- },
318
151
  {
319
152
  "name": "bondRole",
320
153
  "discriminator": [
@@ -875,6 +708,10 @@ export type LiqsolCore = {
875
708
  "name": "epochState",
876
709
  "writable": true
877
710
  },
711
+ {
712
+ "name": "withdrawGlobal",
713
+ "writable": true
714
+ },
878
715
  {
879
716
  "name": "activeList"
880
717
  },
@@ -1943,69 +1780,6 @@ export type LiqsolCore = {
1943
1780
  }
1944
1781
  ]
1945
1782
  },
1946
- {
1947
- "name": "injectTestYield",
1948
- "discriminator": [
1949
- 55,
1950
- 41,
1951
- 251,
1952
- 228,
1953
- 58,
1954
- 191,
1955
- 103,
1956
- 248
1957
- ],
1958
- "accounts": [
1959
- {
1960
- "name": "admin",
1961
- "signer": true
1962
- },
1963
- {
1964
- "name": "globalConfig"
1965
- },
1966
- {
1967
- "name": "globalState",
1968
- "writable": true
1969
- },
1970
- {
1971
- "name": "distributionState",
1972
- "writable": true
1973
- },
1974
- {
1975
- "name": "liqsolMint",
1976
- "writable": true
1977
- },
1978
- {
1979
- "name": "poolAuthority"
1980
- },
1981
- {
1982
- "name": "liqsolPoolAta",
1983
- "writable": true
1984
- },
1985
- {
1986
- "name": "depositAuthority",
1987
- "writable": true
1988
- },
1989
- {
1990
- "name": "liqsolProgram"
1991
- },
1992
- {
1993
- "name": "liqsolMintAuthority"
1994
- },
1995
- {
1996
- "name": "instructionsSysvar"
1997
- },
1998
- {
1999
- "name": "tokenProgram"
2000
- }
2001
- ],
2002
- "args": [
2003
- {
2004
- "name": "amount",
2005
- "type": "u64"
2006
- }
2007
- ]
2008
- },
2009
1783
  {
2010
1784
  "name": "mergeActivatingStakes",
2011
1785
  "docs": [
@@ -2181,6 +1955,76 @@ export type LiqsolCore = {
2181
1955
  }
2182
1956
  ]
2183
1957
  },
1958
+ {
1959
+ "name": "migrateBatchOrchestrator",
1960
+ "docs": [
1961
+ "One-shot migration: realloc BatchOrchestrator for the four per-op",
1962
+ "`*_started_epoch: u16` fields + restored `_reserved` buffer.",
1963
+ "Idempotent, ungated. `payer` covers the rent delta."
1964
+ ],
1965
+ "discriminator": [
1966
+ 130,
1967
+ 240,
1968
+ 40,
1969
+ 175,
1970
+ 53,
1971
+ 209,
1972
+ 232,
1973
+ 11
1974
+ ],
1975
+ "accounts": [
1976
+ {
1977
+ "name": "payer",
1978
+ "writable": true,
1979
+ "signer": true
1980
+ },
1981
+ {
1982
+ "name": "batchOrchestrator",
1983
+ "docs": [
1984
+ "is the only authorization needed; the op is idempotent."
1985
+ ],
1986
+ "writable": true
1987
+ },
1988
+ {
1989
+ "name": "systemProgram"
1990
+ }
1991
+ ],
1992
+ "args": []
1993
+ },
1994
+ {
1995
+ "name": "migrateStakeMetrics",
1996
+ "docs": [
1997
+ "One-shot migration: realloc StakeMetrics for new fields (mev_reward + _reserved)"
1998
+ ],
1999
+ "discriminator": [
2000
+ 183,
2001
+ 154,
2002
+ 168,
2003
+ 221,
2004
+ 78,
2005
+ 179,
2006
+ 112,
2007
+ 165
2008
+ ],
2009
+ "accounts": [
2010
+ {
2011
+ "name": "globalConfig"
2012
+ },
2013
+ {
2014
+ "name": "admin",
2015
+ "writable": true,
2016
+ "signer": true
2017
+ },
2018
+ {
2019
+ "name": "stakeMetrics",
2020
+ "writable": true
2021
+ },
2022
+ {
2023
+ "name": "systemProgram"
2024
+ }
2025
+ ],
2026
+ "args": []
2027
+ },
2184
2028
  {
2185
2029
  "name": "migrateUserRecord",
2186
2030
  "discriminator": [
@@ -2218,6 +2062,37 @@ export type LiqsolCore = {
2218
2062
  ],
2219
2063
  "args": []
2220
2064
  },
2065
+ {
2066
+ "name": "migrateValidatorInfoBatch",
2067
+ "docs": [
2068
+ "One-shot migration: realloc ValidatorInfoAccounts for new fields (mev + _reserved)",
2069
+ "Pass validator_info PDAs via remaining_accounts"
2070
+ ],
2071
+ "discriminator": [
2072
+ 250,
2073
+ 77,
2074
+ 53,
2075
+ 116,
2076
+ 38,
2077
+ 22,
2078
+ 12,
2079
+ 100
2080
+ ],
2081
+ "accounts": [
2082
+ {
2083
+ "name": "globalConfig"
2084
+ },
2085
+ {
2086
+ "name": "admin",
2087
+ "writable": true,
2088
+ "signer": true
2089
+ },
2090
+ {
2091
+ "name": "systemProgram"
2092
+ }
2093
+ ],
2094
+ "args": []
2095
+ },
2221
2096
  {
2222
2097
  "name": "processGraveyardValidatorsBatch",
2223
2098
  "docs": [
@@ -3214,199 +3089,62 @@ export type LiqsolCore = {
3214
3089
  {
3215
3090
  "name": "maintenanceLedger",
3216
3091
  "docs": [
3217
- "Maintenance ledger - for accumulate_unstake_request"
3218
- ]
3219
- },
3220
- {
3221
- "name": "globalConfig",
3222
- "docs": [
3223
- "Global config for min_unstake_request setting"
3224
- ]
3225
- },
3226
- {
3227
- "name": "clock"
3228
- },
3229
- {
3230
- "name": "mintAuthority"
3231
- },
3232
- {
3233
- "name": "receiptData",
3234
- "writable": true
3235
- },
3236
- {
3237
- "name": "metadata",
3238
- "writable": true
3239
- },
3240
- {
3241
- "name": "nftMint",
3242
- "docs": [
3243
- "Uses global.next_receipt_id for deterministic, collision-free address generation"
3244
- ],
3245
- "writable": true
3246
- },
3247
- {
3248
- "name": "nftAta",
3249
- "writable": true
3250
- },
3251
- {
3252
- "name": "tokenProgram"
3253
- },
3254
- {
3255
- "name": "tokenInterface"
3256
- },
3257
- {
3258
- "name": "associatedTokenProgram"
3259
- },
3260
- {
3261
- "name": "systemProgram"
3262
- },
3263
- {
3264
- "name": "rent"
3265
- }
3266
- ],
3267
- "args": [
3268
- {
3269
- "name": "amount",
3270
- "type": "u64"
3271
- }
3272
- ]
3273
- },
3274
- {
3275
- "name": "resetDistributionState",
3276
- "discriminator": [
3277
- 159,
3278
- 183,
3279
- 162,
3280
- 74,
3281
- 228,
3282
- 135,
3283
- 157,
3284
- 79
3285
- ],
3286
- "accounts": [
3287
- {
3288
- "name": "admin",
3289
- "signer": true
3290
- },
3291
- {
3292
- "name": "distributionState",
3293
- "writable": true
3294
- }
3295
- ],
3296
- "args": []
3297
- },
3298
- {
3299
- "name": "resetGlobalState",
3300
- "discriminator": [
3301
- 252,
3302
- 41,
3303
- 117,
3304
- 110,
3305
- 248,
3306
- 165,
3307
- 48,
3308
- 88
3309
- ],
3310
- "accounts": [
3311
- {
3312
- "name": "admin",
3313
- "signer": true
3314
- },
3315
- {
3316
- "name": "globalConfig"
3317
- },
3318
- {
3319
- "name": "globalState",
3320
- "writable": true
3321
- },
3322
- {
3323
- "name": "poolAuthority"
3092
+ "Maintenance ledger - for accumulate_unstake_request"
3093
+ ]
3324
3094
  },
3325
3095
  {
3326
- "name": "liqsolMint"
3096
+ "name": "globalConfig",
3097
+ "docs": [
3098
+ "Global config for min_unstake_request setting"
3099
+ ]
3327
3100
  },
3328
3101
  {
3329
- "name": "liqsolPoolAta",
3330
- "writable": true
3102
+ "name": "clock"
3331
3103
  },
3332
3104
  {
3333
- "name": "tokenProgram"
3105
+ "name": "mintAuthority"
3334
3106
  },
3335
3107
  {
3336
- "name": "associatedTokenProgram"
3337
- }
3338
- ],
3339
- "args": []
3340
- },
3341
- {
3342
- "name": "resetPriceHistory",
3343
- "discriminator": [
3344
- 213,
3345
- 231,
3346
- 155,
3347
- 139,
3348
- 248,
3349
- 60,
3350
- 67,
3351
- 199
3352
- ],
3353
- "accounts": [
3354
- {
3355
- "name": "admin",
3356
- "writable": true,
3357
- "signer": true
3108
+ "name": "receiptData",
3109
+ "writable": true
3358
3110
  },
3359
3111
  {
3360
- "name": "globalConfig"
3112
+ "name": "metadata",
3113
+ "writable": true
3361
3114
  },
3362
3115
  {
3363
- "name": "trancheState",
3116
+ "name": "nftMint",
3117
+ "docs": [
3118
+ "Uses global.next_receipt_id for deterministic, collision-free address generation"
3119
+ ],
3364
3120
  "writable": true
3365
3121
  },
3366
3122
  {
3367
- "name": "priceHistory",
3123
+ "name": "nftAta",
3368
3124
  "writable": true
3369
3125
  },
3370
3126
  {
3371
- "name": "systemProgram"
3372
- }
3373
- ],
3374
- "args": []
3375
- },
3376
- {
3377
- "name": "resetTrancheState",
3378
- "discriminator": [
3379
- 106,
3380
- 102,
3381
- 143,
3382
- 40,
3383
- 152,
3384
- 173,
3385
- 165,
3386
- 168
3387
- ],
3388
- "accounts": [
3389
- {
3390
- "name": "admin",
3391
- "writable": true,
3392
- "signer": true
3127
+ "name": "tokenProgram"
3393
3128
  },
3394
3129
  {
3395
- "name": "globalConfig"
3130
+ "name": "tokenInterface"
3396
3131
  },
3397
3132
  {
3398
- "name": "trancheState",
3399
- "writable": true
3133
+ "name": "associatedTokenProgram"
3400
3134
  },
3401
3135
  {
3402
- "name": "priceHistory",
3403
- "writable": true
3136
+ "name": "systemProgram"
3404
3137
  },
3405
3138
  {
3406
- "name": "systemProgram"
3139
+ "name": "rent"
3407
3140
  }
3408
3141
  ],
3409
- "args": []
3142
+ "args": [
3143
+ {
3144
+ "name": "amount",
3145
+ "type": "u64"
3146
+ }
3147
+ ]
3410
3148
  },
3411
3149
  {
3412
3150
  "name": "setAdmin",
@@ -3462,45 +3200,6 @@ export type LiqsolCore = {
3462
3200
  ],
3463
3201
  "args": []
3464
3202
  },
3465
- {
3466
- "name": "setLastStateChangeEpoch",
3467
- "docs": [
3468
- "Admin function to directly set last_state_change_epoch (useful for testing cooldowns)"
3469
- ],
3470
- "discriminator": [
3471
- 94,
3472
- 57,
3473
- 139,
3474
- 195,
3475
- 123,
3476
- 224,
3477
- 227,
3478
- 106
3479
- ],
3480
- "accounts": [
3481
- {
3482
- "name": "validatorInfo",
3483
- "writable": true
3484
- },
3485
- {
3486
- "name": "stakeAllocationState",
3487
- "docs": [
3488
- "Stake allocation state - to update total_active_vpp when VPP changes"
3489
- ],
3490
- "writable": true
3491
- }
3492
- ],
3493
- "args": [
3494
- {
3495
- "name": "voteAccount",
3496
- "type": "pubkey"
3497
- },
3498
- {
3499
- "name": "epoch",
3500
- "type": "u16"
3501
- }
3502
- ]
3503
- },
3504
3203
  {
3505
3204
  "name": "setPaused",
3506
3205
  "discriminator": [
@@ -3848,6 +3547,20 @@ export type LiqsolCore = {
3848
3547
  },
3849
3548
  {
3850
3549
  "name": "stakeHistory"
3550
+ },
3551
+ {
3552
+ "name": "vault",
3553
+ "writable": true
3554
+ },
3555
+ {
3556
+ "name": "reservePool",
3557
+ "writable": true
3558
+ },
3559
+ {
3560
+ "name": "stakeProgram"
3561
+ },
3562
+ {
3563
+ "name": "clock"
3851
3564
  }
3852
3565
  ],
3853
3566
  "args": []
@@ -3989,34 +3702,6 @@ export type LiqsolCore = {
3989
3702
  }
3990
3703
  ]
3991
3704
  },
3992
- {
3993
- "name": "testClearActiveList",
3994
- "discriminator": [
3995
- 17,
3996
- 195,
3997
- 59,
3998
- 174,
3999
- 184,
4000
- 137,
4001
- 149,
4002
- 144
4003
- ],
4004
- "accounts": [
4005
- {
4006
- "name": "activeList",
4007
- "writable": true
4008
- },
4009
- {
4010
- "name": "processingState",
4011
- "writable": true
4012
- },
4013
- {
4014
- "name": "authority",
4015
- "signer": true
4016
- }
4017
- ],
4018
- "args": []
4019
- },
4020
3705
  {
4021
3706
  "name": "updateConfigBool",
4022
3707
  "discriminator": [
@@ -4947,12 +4632,61 @@ export type LiqsolCore = {
4947
4632
  ],
4948
4633
  "type": "u64"
4949
4634
  },
4635
+ {
4636
+ "name": "mevClaimsNextIndex",
4637
+ "docs": [
4638
+ "Next active_list index to process for MEV tip claims"
4639
+ ],
4640
+ "type": "u16"
4641
+ },
4642
+ {
4643
+ "name": "tempTotalMevReward",
4644
+ "docs": [
4645
+ "Temporary accumulator for MEV rewards across batches"
4646
+ ],
4647
+ "type": "u64"
4648
+ },
4649
+ {
4650
+ "name": "tempTotalOutstandingAmountToUnstake",
4651
+ "docs": [
4652
+ "Temporary accumulator for sum of validators' amount_to_unstake across batches"
4653
+ ],
4654
+ "type": "u64"
4655
+ },
4656
+ {
4657
+ "name": "validatorsSyncStartedEpoch",
4658
+ "docs": [
4659
+ "Owns validators_sync_processed_this_epoch."
4660
+ ],
4661
+ "type": "u16"
4662
+ },
4663
+ {
4664
+ "name": "leaderboardScoresStartedEpoch",
4665
+ "docs": [
4666
+ "Owns leaderboard_scores_next_index."
4667
+ ],
4668
+ "type": "u16"
4669
+ },
4670
+ {
4671
+ "name": "graveyardCleanupStartedEpoch",
4672
+ "docs": [
4673
+ "Owns graveyard_cleanup_next_index."
4674
+ ],
4675
+ "type": "u16"
4676
+ },
4677
+ {
4678
+ "name": "additionStartedEpoch",
4679
+ "docs": [
4680
+ "Owns addition_next_rank + addition_target_rank."
4681
+ ],
4682
+ "type": "u16"
4683
+ },
4950
4684
  {
4951
4685
  "name": "reserved",
4952
4686
  "type": {
4953
4687
  "array": [
4954
4688
  "u8",
4955
- 23
4689
+ 64
4956
4690
  ]
4957
4691
  }
4958
4692
  }
@@ -5442,6 +5176,15 @@ export type LiqsolCore = {
5442
5176
  1
5443
5177
  ]
5444
5178
  }
5179
+ },
5180
+ {
5181
+ "name": "reservedTrailing",
5182
+ "type": {
5183
+ "array": [
5184
+ "u8",
5185
+ 32
5186
+ ]
5187
+ }
5445
5188
  }
5446
5189
  ]
5447
5190
  }
@@ -5662,16 +5405,32 @@ export type LiqsolCore = {
5662
5405
  "type": "u8"
5663
5406
  },
5664
5407
  {
5665
- "name": "padding",
5408
+ "name": "align",
5666
5409
  "docs": [
5667
- "Reserved space for future upgrades"
5410
+ "Alignment byte (keeps u16 fields below properly aligned)"
5668
5411
  ],
5669
- "type": {
5670
- "array": [
5671
- "u8",
5672
- 5
5673
- ]
5674
- }
5412
+ "type": "u8"
5413
+ },
5414
+ {
5415
+ "name": "crankNextIndex",
5416
+ "docs": [
5417
+ "Next validator index to process during crank_update_scores"
5418
+ ],
5419
+ "type": "u16"
5420
+ },
5421
+ {
5422
+ "name": "lastCrankEpoch",
5423
+ "docs": [
5424
+ "Last epoch when crank_update_scores completed all validators"
5425
+ ],
5426
+ "type": "u16"
5427
+ },
5428
+ {
5429
+ "name": "crankStartedEpoch",
5430
+ "docs": [
5431
+ "Epoch when start_crank was called (signals an active crank cycle)"
5432
+ ],
5433
+ "type": "u16"
5675
5434
  }
5676
5435
  ]
5677
5436
  }
@@ -6331,9 +6090,13 @@ export type LiqsolCore = {
6331
6090
  "type": "bool"
6332
6091
  },
6333
6092
  {
6334
- "name": "additionNextRank",
6093
+ "name": "unstakeAllocationStartedEpoch",
6335
6094
  "docs": [
6336
- "DEPRECATED see BatchOrchestrator.addition_next_rank. Always 0."
6095
+ "Epoch in which the current unstake allocation cycle was started.",
6096
+ "Used to detect stale cycles that span epoch boundaries — if the epoch",
6097
+ "has advanced, the cycle is reset and restarted to avoid resuming",
6098
+ "against a mutated validator active list.",
6099
+ "(Repurposed from the deprecated addition_next_rank field — verified 0 on the mainnet.)"
6337
6100
  ],
6338
6101
  "type": "u16"
6339
6102
  },
@@ -6434,6 +6197,34 @@ export type LiqsolCore = {
6434
6197
  {
6435
6198
  "name": "bump",
6436
6199
  "type": "u8"
6200
+ },
6201
+ {
6202
+ "name": "mevReward",
6203
+ "docs": [
6204
+ "MEV rewards swept from main stake accounts this epoch (accumulated, reset after pay cycle)"
6205
+ ],
6206
+ "type": "u64"
6207
+ },
6208
+ {
6209
+ "name": "totalOutstandingAmountToUnstake",
6210
+ "docs": [
6211
+ "WNS-16: total amount_to_unstake across all validators at last metrics refresh.",
6212
+ "Represents allocated-but-not-yet-deactivated unstake obligations.",
6213
+ "Subtracted from unstakeable_stake in admission control to prevent double-promising."
6214
+ ],
6215
+ "type": "u64"
6216
+ },
6217
+ {
6218
+ "name": "reserved",
6219
+ "docs": [
6220
+ "Reserved space for future use"
6221
+ ],
6222
+ "type": {
6223
+ "array": [
6224
+ "u8",
6225
+ 24
6226
+ ]
6227
+ }
6437
6228
  }
6438
6229
  ]
6439
6230
  }
@@ -6760,6 +6551,25 @@ export type LiqsolCore = {
6760
6551
  {
6761
6552
  "name": "stateTransitionTriggerStakeAmount",
6762
6553
  "type": "u64"
6554
+ },
6555
+ {
6556
+ "name": "mevEarned",
6557
+ "docs": [
6558
+ "MEV reward swept for this validator in the current epoch"
6559
+ ],
6560
+ "type": "u64"
6561
+ },
6562
+ {
6563
+ "name": "reserved",
6564
+ "docs": [
6565
+ "Reserved space for future use"
6566
+ ],
6567
+ "type": {
6568
+ "array": [
6569
+ "u8",
6570
+ 24
6571
+ ]
6572
+ }
6763
6573
  }
6764
6574
  ]
6765
6575
  }