@streamflow/staking 8.7.0 → 8.8.0-alpha.0-alpha.p305.df0bb0f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +1830 -47
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +991 -5
- package/dist/cjs/solana/descriptor/fee_manager.d.cts +1 -1
- package/dist/cjs/solana/descriptor/reward_pool.d.cts +296 -5
- package/dist/cjs/solana/descriptor/stake_pool.d.cts +497 -5
- package/dist/esm/index.d.ts +991 -5
- package/dist/esm/index.js +1829 -46
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/solana/descriptor/fee_manager.d.ts +1 -1
- package/dist/esm/solana/descriptor/idl/fee_manager.json +1 -1
- package/dist/esm/solana/descriptor/idl/governor.json +932 -0
- package/dist/esm/solana/descriptor/idl/reward_pool.json +296 -5
- package/dist/esm/solana/descriptor/idl/reward_pool_dynamic.json +46 -4
- package/dist/esm/solana/descriptor/idl/stake_pool.json +499 -7
- package/dist/esm/solana/descriptor/reward_pool.d.ts +296 -5
- package/dist/esm/solana/descriptor/stake_pool.d.ts +497 -5
- package/package.json +4 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"address": "STAKEvGqQTtzJZH6BWDcbpzXXn2BBerPAgQ3EGLN2GH",
|
|
3
3
|
"metadata": {
|
|
4
4
|
"name": "stake_pool",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.3.0",
|
|
6
6
|
"spec": "0.1.0",
|
|
7
7
|
"description": "Program to manage Stake Pools and stake/unstake tokens"
|
|
8
8
|
},
|
|
@@ -357,6 +357,174 @@
|
|
|
357
357
|
}
|
|
358
358
|
]
|
|
359
359
|
},
|
|
360
|
+
{
|
|
361
|
+
"name": "create_pool_v2",
|
|
362
|
+
"discriminator": [
|
|
363
|
+
133,
|
|
364
|
+
27,
|
|
365
|
+
21,
|
|
366
|
+
38,
|
|
367
|
+
67,
|
|
368
|
+
86,
|
|
369
|
+
91,
|
|
370
|
+
132
|
|
371
|
+
],
|
|
372
|
+
"accounts": [
|
|
373
|
+
{
|
|
374
|
+
"name": "stake_pool",
|
|
375
|
+
"writable": true,
|
|
376
|
+
"pda": {
|
|
377
|
+
"seeds": [
|
|
378
|
+
{
|
|
379
|
+
"kind": "const",
|
|
380
|
+
"value": [
|
|
381
|
+
115,
|
|
382
|
+
116,
|
|
383
|
+
97,
|
|
384
|
+
107,
|
|
385
|
+
101,
|
|
386
|
+
45,
|
|
387
|
+
112,
|
|
388
|
+
111,
|
|
389
|
+
111,
|
|
390
|
+
108
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"kind": "account",
|
|
395
|
+
"path": "mint"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"kind": "account",
|
|
399
|
+
"path": "creator"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"kind": "arg",
|
|
403
|
+
"path": "nonce"
|
|
404
|
+
}
|
|
405
|
+
]
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"name": "mint",
|
|
410
|
+
"docs": [
|
|
411
|
+
"Mint used for staking"
|
|
412
|
+
]
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"name": "vault",
|
|
416
|
+
"writable": true,
|
|
417
|
+
"pda": {
|
|
418
|
+
"seeds": [
|
|
419
|
+
{
|
|
420
|
+
"kind": "const",
|
|
421
|
+
"value": [
|
|
422
|
+
115,
|
|
423
|
+
116,
|
|
424
|
+
97,
|
|
425
|
+
107,
|
|
426
|
+
101,
|
|
427
|
+
45,
|
|
428
|
+
118,
|
|
429
|
+
97,
|
|
430
|
+
117,
|
|
431
|
+
108,
|
|
432
|
+
116
|
|
433
|
+
]
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"kind": "account",
|
|
437
|
+
"path": "stake_pool"
|
|
438
|
+
}
|
|
439
|
+
]
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"name": "stake_mint",
|
|
444
|
+
"writable": true,
|
|
445
|
+
"pda": {
|
|
446
|
+
"seeds": [
|
|
447
|
+
{
|
|
448
|
+
"kind": "const",
|
|
449
|
+
"value": [
|
|
450
|
+
115,
|
|
451
|
+
116,
|
|
452
|
+
97,
|
|
453
|
+
107,
|
|
454
|
+
101,
|
|
455
|
+
45,
|
|
456
|
+
109,
|
|
457
|
+
105,
|
|
458
|
+
110,
|
|
459
|
+
116
|
|
460
|
+
]
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"kind": "account",
|
|
464
|
+
"path": "stake_pool"
|
|
465
|
+
}
|
|
466
|
+
]
|
|
467
|
+
}
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"name": "creator",
|
|
471
|
+
"docs": [
|
|
472
|
+
"Stake Pool creator"
|
|
473
|
+
],
|
|
474
|
+
"writable": true,
|
|
475
|
+
"signer": true
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"name": "token_program"
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"name": "system_program",
|
|
482
|
+
"address": "11111111111111111111111111111111"
|
|
483
|
+
}
|
|
484
|
+
],
|
|
485
|
+
"args": [
|
|
486
|
+
{
|
|
487
|
+
"name": "nonce",
|
|
488
|
+
"type": "u8"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"name": "max_weight",
|
|
492
|
+
"type": "u64"
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"name": "min_duration",
|
|
496
|
+
"type": "u64"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"name": "max_duration",
|
|
500
|
+
"type": "u64"
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"name": "permissionless",
|
|
504
|
+
"type": "bool"
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"name": "freeze_stake_mint",
|
|
508
|
+
"type": "bool"
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"name": "unstake_period",
|
|
512
|
+
"type": "u64"
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
"name": "max_total_stake_cumulative",
|
|
516
|
+
"type": "u64"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"name": "expiry_ts",
|
|
520
|
+
"type": "u64"
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"name": "auto_unstake",
|
|
524
|
+
"type": "bool"
|
|
525
|
+
}
|
|
526
|
+
]
|
|
527
|
+
},
|
|
360
528
|
{
|
|
361
529
|
"name": "migrate_entry",
|
|
362
530
|
"discriminator": [
|
|
@@ -816,7 +984,60 @@
|
|
|
816
984
|
"docs": [
|
|
817
985
|
"Token Account to transfer Stake Mint tokens to"
|
|
818
986
|
],
|
|
819
|
-
"writable": true
|
|
987
|
+
"writable": true,
|
|
988
|
+
"pda": {
|
|
989
|
+
"seeds": [
|
|
990
|
+
{
|
|
991
|
+
"kind": "account",
|
|
992
|
+
"path": "authority"
|
|
993
|
+
},
|
|
994
|
+
{
|
|
995
|
+
"kind": "account",
|
|
996
|
+
"path": "token_program"
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
"kind": "account",
|
|
1000
|
+
"path": "stake_mint"
|
|
1001
|
+
}
|
|
1002
|
+
],
|
|
1003
|
+
"program": {
|
|
1004
|
+
"kind": "const",
|
|
1005
|
+
"value": [
|
|
1006
|
+
140,
|
|
1007
|
+
151,
|
|
1008
|
+
37,
|
|
1009
|
+
143,
|
|
1010
|
+
78,
|
|
1011
|
+
36,
|
|
1012
|
+
137,
|
|
1013
|
+
241,
|
|
1014
|
+
187,
|
|
1015
|
+
61,
|
|
1016
|
+
16,
|
|
1017
|
+
41,
|
|
1018
|
+
20,
|
|
1019
|
+
142,
|
|
1020
|
+
13,
|
|
1021
|
+
131,
|
|
1022
|
+
11,
|
|
1023
|
+
90,
|
|
1024
|
+
19,
|
|
1025
|
+
153,
|
|
1026
|
+
218,
|
|
1027
|
+
255,
|
|
1028
|
+
16,
|
|
1029
|
+
132,
|
|
1030
|
+
4,
|
|
1031
|
+
142,
|
|
1032
|
+
123,
|
|
1033
|
+
216,
|
|
1034
|
+
219,
|
|
1035
|
+
233,
|
|
1036
|
+
248,
|
|
1037
|
+
89
|
|
1038
|
+
]
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
820
1041
|
},
|
|
821
1042
|
{
|
|
822
1043
|
"name": "payer",
|
|
@@ -929,7 +1150,60 @@
|
|
|
929
1150
|
"docs": [
|
|
930
1151
|
"Stake Mint Token account"
|
|
931
1152
|
],
|
|
932
|
-
"writable": true
|
|
1153
|
+
"writable": true,
|
|
1154
|
+
"pda": {
|
|
1155
|
+
"seeds": [
|
|
1156
|
+
{
|
|
1157
|
+
"kind": "account",
|
|
1158
|
+
"path": "authority"
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
"kind": "account",
|
|
1162
|
+
"path": "token_program"
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
"kind": "account",
|
|
1166
|
+
"path": "stake_mint"
|
|
1167
|
+
}
|
|
1168
|
+
],
|
|
1169
|
+
"program": {
|
|
1170
|
+
"kind": "const",
|
|
1171
|
+
"value": [
|
|
1172
|
+
140,
|
|
1173
|
+
151,
|
|
1174
|
+
37,
|
|
1175
|
+
143,
|
|
1176
|
+
78,
|
|
1177
|
+
36,
|
|
1178
|
+
137,
|
|
1179
|
+
241,
|
|
1180
|
+
187,
|
|
1181
|
+
61,
|
|
1182
|
+
16,
|
|
1183
|
+
41,
|
|
1184
|
+
20,
|
|
1185
|
+
142,
|
|
1186
|
+
13,
|
|
1187
|
+
131,
|
|
1188
|
+
11,
|
|
1189
|
+
90,
|
|
1190
|
+
19,
|
|
1191
|
+
153,
|
|
1192
|
+
218,
|
|
1193
|
+
255,
|
|
1194
|
+
16,
|
|
1195
|
+
132,
|
|
1196
|
+
4,
|
|
1197
|
+
142,
|
|
1198
|
+
123,
|
|
1199
|
+
216,
|
|
1200
|
+
219,
|
|
1201
|
+
233,
|
|
1202
|
+
248,
|
|
1203
|
+
89
|
|
1204
|
+
]
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
933
1207
|
},
|
|
934
1208
|
{
|
|
935
1209
|
"name": "vault",
|
|
@@ -1013,6 +1287,154 @@
|
|
|
1013
1287
|
}
|
|
1014
1288
|
}
|
|
1015
1289
|
]
|
|
1290
|
+
},
|
|
1291
|
+
{
|
|
1292
|
+
"name": "unstake_as_worker",
|
|
1293
|
+
"discriminator": [
|
|
1294
|
+
18,
|
|
1295
|
+
36,
|
|
1296
|
+
224,
|
|
1297
|
+
241,
|
|
1298
|
+
46,
|
|
1299
|
+
185,
|
|
1300
|
+
228,
|
|
1301
|
+
142
|
|
1302
|
+
],
|
|
1303
|
+
"accounts": [
|
|
1304
|
+
{
|
|
1305
|
+
"name": "stake_pool",
|
|
1306
|
+
"writable": true,
|
|
1307
|
+
"relations": [
|
|
1308
|
+
"stake_entry"
|
|
1309
|
+
]
|
|
1310
|
+
},
|
|
1311
|
+
{
|
|
1312
|
+
"name": "stake_entry",
|
|
1313
|
+
"docs": [
|
|
1314
|
+
"Entry that stores Stake Metadata"
|
|
1315
|
+
],
|
|
1316
|
+
"writable": true
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
"name": "from",
|
|
1320
|
+
"docs": [
|
|
1321
|
+
"Stake Mint Token account"
|
|
1322
|
+
],
|
|
1323
|
+
"writable": true,
|
|
1324
|
+
"pda": {
|
|
1325
|
+
"seeds": [
|
|
1326
|
+
{
|
|
1327
|
+
"kind": "account",
|
|
1328
|
+
"path": "authority"
|
|
1329
|
+
},
|
|
1330
|
+
{
|
|
1331
|
+
"kind": "account",
|
|
1332
|
+
"path": "token_program"
|
|
1333
|
+
},
|
|
1334
|
+
{
|
|
1335
|
+
"kind": "account",
|
|
1336
|
+
"path": "stake_mint"
|
|
1337
|
+
}
|
|
1338
|
+
],
|
|
1339
|
+
"program": {
|
|
1340
|
+
"kind": "const",
|
|
1341
|
+
"value": [
|
|
1342
|
+
140,
|
|
1343
|
+
151,
|
|
1344
|
+
37,
|
|
1345
|
+
143,
|
|
1346
|
+
78,
|
|
1347
|
+
36,
|
|
1348
|
+
137,
|
|
1349
|
+
241,
|
|
1350
|
+
187,
|
|
1351
|
+
61,
|
|
1352
|
+
16,
|
|
1353
|
+
41,
|
|
1354
|
+
20,
|
|
1355
|
+
142,
|
|
1356
|
+
13,
|
|
1357
|
+
131,
|
|
1358
|
+
11,
|
|
1359
|
+
90,
|
|
1360
|
+
19,
|
|
1361
|
+
153,
|
|
1362
|
+
218,
|
|
1363
|
+
255,
|
|
1364
|
+
16,
|
|
1365
|
+
132,
|
|
1366
|
+
4,
|
|
1367
|
+
142,
|
|
1368
|
+
123,
|
|
1369
|
+
216,
|
|
1370
|
+
219,
|
|
1371
|
+
233,
|
|
1372
|
+
248,
|
|
1373
|
+
89
|
|
1374
|
+
]
|
|
1375
|
+
}
|
|
1376
|
+
}
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
"name": "vault",
|
|
1380
|
+
"docs": [
|
|
1381
|
+
"Escrow Account that stores Staked tokens"
|
|
1382
|
+
],
|
|
1383
|
+
"writable": true,
|
|
1384
|
+
"relations": [
|
|
1385
|
+
"stake_pool"
|
|
1386
|
+
]
|
|
1387
|
+
},
|
|
1388
|
+
{
|
|
1389
|
+
"name": "to",
|
|
1390
|
+
"writable": true
|
|
1391
|
+
},
|
|
1392
|
+
{
|
|
1393
|
+
"name": "authority",
|
|
1394
|
+
"writable": true
|
|
1395
|
+
},
|
|
1396
|
+
{
|
|
1397
|
+
"name": "worker",
|
|
1398
|
+
"docs": [
|
|
1399
|
+
"Auto unstake worker"
|
|
1400
|
+
],
|
|
1401
|
+
"writable": true,
|
|
1402
|
+
"signer": true,
|
|
1403
|
+
"address": "wdrwhnCv4pzW8beKsbPa4S2UDZrXenjg16KJdKSpb5u"
|
|
1404
|
+
},
|
|
1405
|
+
{
|
|
1406
|
+
"name": "mint",
|
|
1407
|
+
"docs": [
|
|
1408
|
+
"Original mint of staked tokens"
|
|
1409
|
+
],
|
|
1410
|
+
"writable": true,
|
|
1411
|
+
"relations": [
|
|
1412
|
+
"stake_pool"
|
|
1413
|
+
]
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
"name": "stake_mint",
|
|
1417
|
+
"docs": [
|
|
1418
|
+
"Stake Mint used to exchanged Staked tokens to"
|
|
1419
|
+
],
|
|
1420
|
+
"writable": true,
|
|
1421
|
+
"relations": [
|
|
1422
|
+
"stake_pool"
|
|
1423
|
+
]
|
|
1424
|
+
},
|
|
1425
|
+
{
|
|
1426
|
+
"name": "associated_token_program",
|
|
1427
|
+
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
|
1428
|
+
},
|
|
1429
|
+
{
|
|
1430
|
+
"name": "token_program"
|
|
1431
|
+
},
|
|
1432
|
+
{
|
|
1433
|
+
"name": "system_program",
|
|
1434
|
+
"address": "11111111111111111111111111111111"
|
|
1435
|
+
}
|
|
1436
|
+
],
|
|
1437
|
+
"args": []
|
|
1016
1438
|
}
|
|
1017
1439
|
],
|
|
1018
1440
|
"accounts": [
|
|
@@ -1060,7 +1482,7 @@
|
|
|
1060
1482
|
{
|
|
1061
1483
|
"code": 6000,
|
|
1062
1484
|
"name": "InvalidDuration",
|
|
1063
|
-
"msg": "Minimum duration must be less than the maximum"
|
|
1485
|
+
"msg": "Minimum duration must be less than the maximum, maximum should be a realistic number of seconds"
|
|
1064
1486
|
},
|
|
1065
1487
|
{
|
|
1066
1488
|
"code": 6001,
|
|
@@ -1155,7 +1577,42 @@
|
|
|
1155
1577
|
{
|
|
1156
1578
|
"code": 6019,
|
|
1157
1579
|
"name": "InvalidMinDuration",
|
|
1158
|
-
"msg": "Minimum duration should be at least 1"
|
|
1580
|
+
"msg": "Minimum duration should be at least 1, for auto-unstake 7 days at least"
|
|
1581
|
+
},
|
|
1582
|
+
{
|
|
1583
|
+
"code": 6020,
|
|
1584
|
+
"name": "AutoUnstakeNotPossible",
|
|
1585
|
+
"msg": "Auto unstake is not possible with unstake period or with a permissionless pool"
|
|
1586
|
+
},
|
|
1587
|
+
{
|
|
1588
|
+
"code": 6021,
|
|
1589
|
+
"name": "InvalidExpiry",
|
|
1590
|
+
"msg": "Expiry can not be less than max duration"
|
|
1591
|
+
},
|
|
1592
|
+
{
|
|
1593
|
+
"code": 6022,
|
|
1594
|
+
"name": "StakePayerNotSupported",
|
|
1595
|
+
"msg": "Separate payer account is not supported when staking in a pool with auto-unstake"
|
|
1596
|
+
},
|
|
1597
|
+
{
|
|
1598
|
+
"code": 6023,
|
|
1599
|
+
"name": "StakeAmountExceedsMax",
|
|
1600
|
+
"msg": "Stake amount exceeds max total stake"
|
|
1601
|
+
},
|
|
1602
|
+
{
|
|
1603
|
+
"code": 6024,
|
|
1604
|
+
"name": "StakeDurationExceedsExpiry",
|
|
1605
|
+
"msg": "Stake duration exceeds stake pool expiry"
|
|
1606
|
+
},
|
|
1607
|
+
{
|
|
1608
|
+
"code": 6025,
|
|
1609
|
+
"name": "AccountDelegateRevoked",
|
|
1610
|
+
"msg": "Token account delegate has been revoked by staker, can't burn tokens"
|
|
1611
|
+
},
|
|
1612
|
+
{
|
|
1613
|
+
"code": 6026,
|
|
1614
|
+
"name": "RefundNotPossible",
|
|
1615
|
+
"msg": "Refund not possible for this stake entry"
|
|
1159
1616
|
}
|
|
1160
1617
|
],
|
|
1161
1618
|
"types": [
|
|
@@ -1296,6 +1753,13 @@
|
|
|
1296
1753
|
],
|
|
1297
1754
|
"type": "bool"
|
|
1298
1755
|
},
|
|
1756
|
+
{
|
|
1757
|
+
"name": "auto_unstake",
|
|
1758
|
+
"docs": [
|
|
1759
|
+
"Whether auto unstaking is enabled, copied from the stake pool for use in instructions that don't require the stake pool account"
|
|
1760
|
+
],
|
|
1761
|
+
"type": "bool"
|
|
1762
|
+
},
|
|
1299
1763
|
{
|
|
1300
1764
|
"name": "_buffer",
|
|
1301
1765
|
"docs": [
|
|
@@ -1304,7 +1768,7 @@
|
|
|
1304
1768
|
"type": {
|
|
1305
1769
|
"array": [
|
|
1306
1770
|
"u8",
|
|
1307
|
-
|
|
1771
|
+
38
|
|
1308
1772
|
]
|
|
1309
1773
|
}
|
|
1310
1774
|
}
|
|
@@ -1435,6 +1899,34 @@
|
|
|
1435
1899
|
],
|
|
1436
1900
|
"type": "u64"
|
|
1437
1901
|
},
|
|
1902
|
+
{
|
|
1903
|
+
"name": "total_stake_capped",
|
|
1904
|
+
"docs": [
|
|
1905
|
+
"Whether amount of total staked tokens is limited by `remaining_total_stake` - stored as separate flag to not deal with `Option`"
|
|
1906
|
+
],
|
|
1907
|
+
"type": "bool"
|
|
1908
|
+
},
|
|
1909
|
+
{
|
|
1910
|
+
"name": "remaining_total_stake",
|
|
1911
|
+
"docs": [
|
|
1912
|
+
"Remaining total amount of staked tokens (cumulative)"
|
|
1913
|
+
],
|
|
1914
|
+
"type": "u64"
|
|
1915
|
+
},
|
|
1916
|
+
{
|
|
1917
|
+
"name": "expiry_ts",
|
|
1918
|
+
"docs": [
|
|
1919
|
+
"Time when stake pool expires, staking is not possible after expiration"
|
|
1920
|
+
],
|
|
1921
|
+
"type": "u64"
|
|
1922
|
+
},
|
|
1923
|
+
{
|
|
1924
|
+
"name": "auto_unstake",
|
|
1925
|
+
"docs": [
|
|
1926
|
+
"Whether auto unstaking is enabled, stake entries will be unstaked after duration"
|
|
1927
|
+
],
|
|
1928
|
+
"type": "bool"
|
|
1929
|
+
},
|
|
1438
1930
|
{
|
|
1439
1931
|
"name": "_buffer",
|
|
1440
1932
|
"docs": [
|
|
@@ -1443,7 +1935,7 @@
|
|
|
1443
1935
|
"type": {
|
|
1444
1936
|
"array": [
|
|
1445
1937
|
"u8",
|
|
1446
|
-
|
|
1938
|
+
37
|
|
1447
1939
|
]
|
|
1448
1940
|
}
|
|
1449
1941
|
}
|