Skip to content

Commit d40fcba

Browse files
kianenigmaDrW3RKCrackTheCode016
authored
Meta Depreaction (#2172)
* bold steps towards deprecation * update * remoe unused * Apply suggestions from code review Co-authored-by: Radha <[email protected]> * nits * Update content/md/en/docs/polkadot-sdk/index.md Co-authored-by: bader y <[email protected]> * Update content/md/en/docs/polkadot-sdk/index.md Co-authored-by: bader y <[email protected]> * remove deprecated word --------- Co-authored-by: Radha <[email protected]> Co-authored-by: bader y <[email protected]>
1 parent c75cc23 commit d40fcba

26 files changed

+288
-111
lines changed

.netlify/_redirects

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Redirects from what the browser requests to what we serve
22

3-
/rustdocs https://paritytech.github.io/substrate/master/sc_service/ 301!
3+
/rustdocs https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html 301!
44

55
/how-to-guides /reference/ 301!
66

content/config/nav.yaml

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
menu:
2+
- polkadot-sdk
23
- quick-start
34
- learn
45
- install
@@ -10,6 +11,10 @@ menu:
1011
- reference
1112
- community
1213

14+
polkadot-sdk:
15+
title: Substrate to Polkadot SDK
16+
url: /polkadot-sdk/
17+
1318
quick-start:
1419
title: Quick start
1520
url: /quick-start/
@@ -84,7 +89,7 @@ install:
8489
url: /install/developer-tools/
8590
- title: Troubleshoot Rust issues
8691
url: /install/troubleshoot-rust-issues/
87-
92+
8893
#design:
8994
# title: Design
9095
# url: /design/
@@ -156,7 +161,7 @@ test:
156161
url: /test/simulate-parachains/
157162
- title: Check runtime
158163
url: /test/check-runtime/
159-
164+
160165
deploy:
161166
title: Deploy
162167
url: /deploy/

content/md/en/docs/build/genesis-configuration.md

+13-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ keywords:
55
---
66

77
<div class="warning">
8-
<strong>⚠️ WARNING:</strong> This page contains outdated information. Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/frame_support/pallet_macros/attr.genesis_build.html">Rust docs</a> for the most up-to-date documentation on this topic.
8+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/frame_support/pallet_macros/attr.genesis_build.html">Rust docs</a> for the most up-to-date documentation on this topic.
99
</div>
1010

1111

@@ -19,7 +19,7 @@ As you learned in [Chain specification](/build/chain-spec/), the chain specifica
1919
However, the chain specification doesn't create the storage items that get initialized when you start a node.
2020
Instead, the storage items are defined in the pallets included in the runtime as described in [Runtime storage](/build/runtime-storage/).
2121

22-
After you create storage items for the runtime, you can choose whether they should be set to some initial value as part of the genesis configuration and included in the genesis block.
22+
After you create storage items for the runtime, you can choose whether they should be set to some initial value as part of the genesis configuration and included in the genesis block.
2323
To specify the storage items that you want to set an initial state for, Substrate provides two specialized FRAME attribute macros.
2424

2525
The macros you can use to initialize storage items as part of the genesis configuration for a chain are:
@@ -120,12 +120,17 @@ All of the `GenesisConfig` types for the pallets that included in the constructi
120120
The aggregated `RuntimeGenesisConfig` implements the [`BuildStorage`](https://paritytech.github.io/substrate/master/sp_runtime/trait.BuildStorage.html) trait to build all of the initial storage items for the runtime.
121121
For example, the node template runtime builds storage items for the following pallets that have a `RuntimeGenesisConfig` specified by default:
122122

123-
- [System pallet](#system-pallet)
124-
- [Aura pallet](#aura-pallet)
125-
- [Grandpa pallet](#grandpa-pallet)
126-
- [Balances pallet](#balances-pallet)
127-
- [TransactionPayment pallet](#transactionpayment-pallet)
128-
- [Sudo pallet](#sudo-pallet)
123+
- [Configure a simple storage value](#configure-a-simple-storage-value)
124+
- [Configure macros in the pallet](#configure-macros-in-the-pallet)
125+
- [Configure the chain specification](#configure-the-chain-specification)
126+
- [Adding genesis configuration to the runtime](#adding-genesis-configuration-to-the-runtime)
127+
- [System pallet](#system-pallet)
128+
- [Aura pallet](#aura-pallet)
129+
- [Grandpa pallet](#grandpa-pallet)
130+
- [Balances pallet](#balances-pallet)
131+
- [TransactionPayment pallet](#transactionpayment-pallet)
132+
- [Sudo pallet](#sudo-pallet)
133+
- [Initialize storage items within a pallet](#initialize-storage-items-within-a-pallet)
129134

130135
### System pallet
131136

content/md/en/docs/build/origins.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ keywords:
66
---
77

88
<div class="warning">
9-
<strong>⚠️ WARNING:</strong> This page contains outdated information. Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_origin/index.html">Rust docs</a> for the most up-to-date documentation on this topic.
9+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_origin/index.html">Rust docs</a> for the most up-to-date documentation on this topic.
1010
</div>
1111

1212
The runtime origin is used by dispatchable functions to check where a call has come from.

content/md/en/docs/build/pallet-coupling.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,7 @@ keywords:
77
---
88

99
<div class="warning">
10-
<p>
11-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
12-
</p>
13-
<p>
14-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_pallet_coupling/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
15-
</p>
10+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_pallet_coupling/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
1611
</div>
1712

1813
The term **coupling** is often used to describe the degree to which two software modules depend on each other.

content/md/en/docs/build/remote-procedure-calls.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ keywords:
77
---
88

99
<div class="warning">
10-
<strong>⚠️ WARNING:</strong> This page may contain outdated information. Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/custom_runtime_api_rpc/index.html">Rust docs</a> for the most up-to-date documentation on this topic.
10+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/custom_runtime_api_rpc/index.html">Rust docs</a> for the most up-to-date documentation on this topic.
1111
</div>
1212

1313
Remote procedure calls, or RPC methods, are a way for an external program—for example, a browser or front-end application—to communicate with a Substrate node.

content/md/en/docs/examples/quickstart/index.html

+9-9
Original file line numberDiff line numberDiff line change
@@ -20,36 +20,36 @@
2020
}
2121
</style>
2222
</head>
23-
23+
2424
<body>
2525
<main role="main" class="container">
2626
<h1 style="font-family: sans-serif; font-weight: 500;">Display an account balance</h1>
2727
<p style="font-family: sans-serif;">Enter a development account address, then click <b>Get Balance</b>.</p>
28-
28+
2929
<input type="text" size="58" id="account_address"/>
3030
<input type="button" onclick="GetBalance()" value="Get Balance">
3131
<p class="output">Balance: <span id="polkadot-balance">Not Connected</span></p>
3232
</main>
33-
33+
3434
<script src="https://unpkg.com/@polkadot/util/bundle-polkadot-util.js"></script>
3535
<script src="https://unpkg.com/@polkadot/util-crypto/bundle-polkadot-util-crypto.js"></script>
3636
<script src="https://unpkg.com/@polkadot/types/bundle-polkadot-types.js"></script>
3737
<script src="https://unpkg.com/@polkadot/api/bundle-polkadot-api.js"></script>
38-
38+
3939
<script>
4040
async function GetBalance() {
4141
const ADDR = '5Gb6Zfe8K8NSKrkFLCgqs8LUdk7wKweXM5pN296jVqDpdziR';
42-
42+
4343
const { WsProvider, ApiPromise } = polkadotApi;
4444
const wsProvider = new WsProvider('ws://127.0.0.1:9944');
4545
const polkadot = await ApiPromise.create({ provider: wsProvider });
46-
46+
4747
let polkadotBalance = document.getElementById("polkadot-balance");
4848
const x = document.getElementById("account_address").value;
4949
const { data: balance } = await polkadot.query.system.account(x);
50-
50+
5151
polkadotBalance.innerText = balance.free;
52-
}
52+
}
5353
</script>
5454
</body>
55-
</html>
55+
</html>

content/md/en/docs/learn/offchain-operations.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ keywords:
55
---
66

77
<div class="warning">
8-
<p>
9-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
10-
</p>
11-
<p>
12-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
13-
</p>
8+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
149
</div>
1510

1611
There are many use cases where you might want to query data from an offchain source or process data without using on-chain resources before updating the on-chain state.
+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
title: Polkadot SDK
3+
description:
4+
keywords:
5+
- polkadot-sdk
6+
---
7+
8+
9+
## Substrate to Polkadot SDK
10+
11+
In [May
12+
2023](https://forum.polkadot.network/t/psa-parity-is-currently-working-on-merging-the-polkadot-stack-repositories-into-one-single-repository/2883),
13+
Parity Technologies started moving the three repositories that contained
14+
[`substrate`](https://github.com/paritytech/substrate),
15+
[`polkadot`](https://github.com/paritytech/polkadot), and
16+
[`cumulus`](https://github.com/paritytech/cumulus), formerly independent in development and
17+
branding, under one new mono-repo called
18+
[`polkadot-sdk`](https://github.com/paritytech/polkadot-sdk). Consequently, the [runtimes of the
19+
Polkadot and Kusama relay chains, and their system chains](https://github.com/polkadot-fellows/runtimes) were moved to be maintained by the [Polkadot fellowship](polkadot-fellows.github.io/dashboard/).
20+
21+
This transition gave birth to a new vision in which these tools are seen from the lens of being part of `polkadot-sdk` while still being independently useful.
22+
23+
Most impacted in this transition is **Substrate**, and part of this impact is the gradual deprecation of
24+
this website. The content on this website is no longer maintained and will be gradually moved to a
25+
new home. Consider the [resources below](#alternative-resources) as primary sources of information.
26+
27+
> You may still access the old content of this website in the navbar, but be aware of the fact that some content might not be up to date.
28+
29+
Note that **this does not impact the development of Substrate as a framework**. Substrate, as a framework, is still being maintained with full steam as a part of `polkadot-sdk`, and retains its full ability to be used to build both [standalone blockchains](https://github.com/paritytech/polkadot-sdk-solochain-template), or [Polkadot powered parachains](https://github.com/paritytech/polkadot-sdk-parachain-template).
30+
31+
## Alternative Resources
32+
33+
Below, you can find a number of replacement resources to learn more about Polkadot SDK:
34+
35+
- [Polkadot Wiki](https://wiki.polkadot.network/docs/build-guide)
36+
- [Polkadot Developers](https://github.com/polkadot-developers/)
37+
- [Polkadot Blockchain Academy](https://polkadot.com/blockchain-academy)
38+
- [Polkadot SDK Rust Docs](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html)
39+
- Polkadot Ecosystem Documentation by Papermoon (Work in progress, see progress [here](https://forum.polkadot.network/t/decentralized-futures-papermoon-first-updates/9265))

content/md/en/docs/reference/frame-macros.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description:
44
keywords:
55
---
66
<div class="warning">
7-
<strong>⚠️ WARNING:</strong> This section contains outdated information. Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/frame_support/attr.pallet.html">Rust docs</a> for the most up-to-date documentation on this topic.
7+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/frame_support/attr.pallet.html">Rust docs</a> for the most up-to-date documentation on this topic.
88
</div>
99

1010
Substrate uses customized [Rust macros](https://doc.rust-lang.org/book/ch19-06-macros.html) to generate code and aggregate the logic from the pallets you implement for a runtime.

content/md/en/docs/reference/how-to-guides/offchain-workers/index.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ keywords:
55
---
66

77
<div class="warning">
8-
<p>
9-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
10-
</p>
11-
<p>
12-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
13-
</p>
8+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
149
</div>
1510

1611
The _How-to_ guides in the _Offchain workers_ category illustrate common use cases for offchain operations.

content/md/en/docs/reference/how-to-guides/offchain-workers/offchain-http-requests.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,7 @@ keywords:
1010
---
1111

1212
<div class="warning">
13-
<p>
14-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
15-
</p>
16-
<p>
17-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
18-
</p>
13+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
1914
</div>
2015

2116
Because most blockchains can't access data that's hosted on servers outside of their own network, they typically use external third-party services—**oracles**—to pull information in from or push information out to locations that are outside of the network.

content/md/en/docs/reference/how-to-guides/offchain-workers/offchain-indexing.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,7 @@ keywords:
88
---
99

1010
<div class="warning">
11-
<p>
12-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
13-
</p>
14-
<p>
15-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
16-
</p>
11+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
1712
</div>
1813

1914
This guide will step you through how to pass data from an extrinsic to an offchain worker without writing to storage.

content/md/en/docs/reference/how-to-guides/offchain-workers/offchain-local-storage.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,7 @@ keywords:
99
---
1010

1111
<div class="warning">
12-
<p>
13-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
14-
</p>
15-
<p>
16-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
17-
</p>
12+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
1813
</div>
1914

2015
This guide will teach you how to use an offchain worker to save retrieved data in local storage for future access.

content/md/en/docs/reference/how-to-guides/pallet-design/use-loose-coupling.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ keywords:
55
---
66

77
<div class="warning">
8-
<p>
9-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
10-
</p>
11-
<p>
12-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_pallet_coupling/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
13-
</p>
8+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_pallet_coupling/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
149
</div>
1510

1611
This guide demonstrates how to reuse a function or type from one pallet in another pallet using a technique called **loose coupling**.

content/md/en/docs/reference/how-to-guides/pallet-design/use-tight-coupling.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ keywords:
55
---
66

77
<div class="warning">
8-
<p>
9-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
10-
</p>
11-
<p>
12-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_pallet_coupling/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
13-
</p>
8+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_pallet_coupling/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
149
</div>
1510

1611
Tight coupling two pallets is a technique to write pallets that re-use types and methods from an existing pallet.

content/md/en/docs/reference/xcm-reference.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,7 @@ keywords:
99
---
1010

1111
<div class="warning">
12-
<p>
13-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
14-
</p>
15-
<p>
16-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/xcm/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
17-
</p>
12+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/xcm/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
1813
</div>
1914

2015
This section provides reference information for the cross-consensus message (XCM) format.

content/md/en/docs/tutorials/build-application-logic/add-offchain-workers.md

+1-6
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,7 @@ keywords:
1212
---
1313

1414
<div class="warning">
15-
<p>
16-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
17-
</p>
18-
<p>
19-
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">`polkadot-sdk-docs` crate</a> for the most up-to-date documentation on this topic.
20-
</p>
15+
Please refer to the <a href="https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/frame_offchain_workers/index.html">Rust Docs</a> for the most up-to-date documentation on this topic.
2116
</div>
2217

2318
This tutorial illustrates how to modify a pallet to include an offchain worker and configure the pallet and runtime to enable the offchain worker to submit transactions that update the on-chain state.

content/md/en/docs/tutorials/integrate-with-tools/explore-sidecar-endpoints.md

-5
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ keywords:
55
---
66

77
<div class="warning">
8-
<p>
9-
<strong>⚠️ WARNING:</strong> This page contains potentially outdated information. Reading it might still be useful, yet we suggest taking it with a grain of salt.
10-
</p>
11-
<p>
128
Please refer to the <a href="https://paritytech.github.io/substrate-api-sidecar/dist/">Sidecar docs</a>, the <a href="https://github.com/paritytech/substrate-api-sidecar?tab=readme-ov-file#note">README</a> and the <a href="https://github.com/paritytech/substrate-api-sidecar/tree/master/guides">guides folder</a> for the most up-to-date documentation on this topic.
13-
</p>
149
</div>
1510

1611
The Substrate [sidecar](https://github.com/paritytech/substrate-api-sidecar) service provides a REST API for interacting with Substrate blockchain nodes built using FRAME.

content/md/en/homepage/get-started-homepage.md

+2
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ bodyLinkTwoTitle: Blockchain basics
1010
bodyLinkTwoURL: /learn/blockchain-basics/
1111
bodyLinkThreeTitle: Architecture and Rust libraries
1212
bodyLinkThreeURL: /learn/architecture/
13+
bodyLinkFourTitle:
14+
bodyLinkFourURL:
1315
---

content/md/en/homepage/get-technical-homepage.md

+2
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ bodyLinkTwoTitle: Rust for Substrate
1010
bodyLinkTwoURL: /learn/rust-basics/
1111
bodyLinkThreeTitle: Command-line tools
1212
bodyLinkThreeURL: /reference/command-line-tools/
13+
bodyLinkFourTitle:
14+
bodyLinkFourURL:
1315
---

content/md/en/homepage/hands-on-homepage.md

+2
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ bodyLinkTwoTitle: Simulate a network
1010
bodyLinkTwoURL: /tutorials/build-a-blockchain/simulate-network/
1111
bodyLinkThreeTitle: Add a pallet
1212
bodyLinkThreeURL: /tutorials/build-application-logic/add-a-pallet/
13+
bodyLinkFourTitle:
14+
bodyLinkFourURL:
1315
---

0 commit comments

Comments
 (0)