Unverified Commit 6a4757ac authored by Gavin Wood's avatar Gavin Wood Committed by GitHub
Browse files

Make Kusama decentralised and permissionless (#647)

* Remove Sudo

* Bump versions

* Fixes

* Remove other mentions of sudo

* Remove sudo from Cargo
parent 0526413f
Pipeline #70876 canceled with stages
in 2 minutes and 16 seconds
......@@ -11,11 +11,11 @@ dependencies = [
[[package]]
name = "adder"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"dlmalloc 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-parachain 0.7.4",
"polkadot-parachain 0.7.5",
"sp-io 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"substrate-wasm-builder-runner 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"tiny-keccak 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -25,14 +25,14 @@ dependencies = [
name = "adder-collator"
version = "0.1.0"
dependencies = [
"adder 0.7.4",
"adder 0.7.5",
"ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"exit-future 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-collator 0.7.4",
"polkadot-parachain 0.7.4",
"polkadot-primitives 0.7.4",
"polkadot-collator 0.7.5",
"polkadot-parachain 0.7.5",
"polkadot-primitives 0.7.5",
"sc-client 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-client-api 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sp-core 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -1508,7 +1508,7 @@ dependencies = [
[[package]]
name = "halt"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"substrate-wasm-builder-runner 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
......@@ -3084,20 +3084,6 @@ dependencies = [
"syn 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "pallet-sudo"
version = "2.0.0"
source = "git+https://github.com/paritytech/substrate?branch=polkadot-master#042dc459f3875d65bec412068ba1939172c5e8c2"
dependencies = [
"frame-support 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"frame-system 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
"sp-io 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sp-std 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
]
[[package]]
name = "pallet-timestamp"
version = "2.0.0"
......@@ -3456,18 +3442,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "polkadot"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"ctrlc 3.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-cli 0.7.4",
"polkadot-service 0.7.4",
"polkadot-cli 0.7.5",
"polkadot-service 0.7.5",
"vergen 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "polkadot-availability-store"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"kvdb 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"kvdb-memorydb 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3475,18 +3461,18 @@ dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-primitives 0.7.4",
"polkadot-primitives 0.7.5",
"sp-core 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
]
[[package]]
name = "polkadot-cli"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-service 0.7.4",
"polkadot-service 0.7.5",
"sc-cli 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"structopt 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3494,18 +3480,18 @@ dependencies = [
[[package]]
name = "polkadot-collator"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-timer 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-cli 0.7.4",
"polkadot-network 0.7.4",
"polkadot-primitives 0.7.4",
"polkadot-runtime 0.7.4",
"polkadot-service 0.7.4",
"polkadot-validation 0.7.4",
"polkadot-cli 0.7.5",
"polkadot-network 0.7.5",
"polkadot-primitives 0.7.5",
"polkadot-runtime 0.7.5",
"polkadot-service 0.7.5",
"polkadot-validation 0.7.5",
"sc-client 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-client-api 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-network 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -3517,10 +3503,10 @@ dependencies = [
[[package]]
name = "polkadot-erasure-coding"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-primitives 0.7.4",
"polkadot-primitives 0.7.5",
"reed-solomon-erasure 4.0.0 (git+https://github.com/paritytech/reed-solomon-erasure)",
"sp-core 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sp-trie 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -3528,15 +3514,15 @@ dependencies = [
[[package]]
name = "polkadot-executor"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"polkadot-runtime 0.7.4",
"polkadot-runtime 0.7.5",
"sc-executor 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
]
[[package]]
name = "polkadot-network"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
"exit-future 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3545,9 +3531,9 @@ dependencies = [
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-availability-store 0.7.4",
"polkadot-primitives 0.7.4",
"polkadot-validation 0.7.4",
"polkadot-availability-store 0.7.5",
"polkadot-primitives 0.7.5",
"polkadot-validation 0.7.5",
"sc-client 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-network 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sp-api 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -3559,11 +3545,11 @@ dependencies = [
[[package]]
name = "polkadot-parachain"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"adder 0.7.4",
"adder 0.7.5",
"derive_more 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
"halt 0.7.4",
"halt 0.7.5",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3578,12 +3564,12 @@ dependencies = [
[[package]]
name = "polkadot-primitives"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"bitvec 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)",
"pallet-babe 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-parachain 0.7.4",
"polkadot-parachain 0.7.5",
"pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"sc-application-crypto 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3597,12 +3583,12 @@ dependencies = [
[[package]]
name = "polkadot-rpc"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"jsonrpc-core 14.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"pallet-transaction-payment-rpc 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"polkadot-primitives 0.7.4",
"polkadot-runtime 0.7.4",
"polkadot-primitives 0.7.5",
"polkadot-runtime 0.7.5",
"sc-client 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-rpc 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sp-runtime 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -3612,7 +3598,7 @@ dependencies = [
[[package]]
name = "polkadot-runtime"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"bitvec 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)",
"frame-executive 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -3640,14 +3626,13 @@ dependencies = [
"pallet-session 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-staking 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-staking-reward-curve 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-sudo 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-timestamp 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-transaction-payment 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-transaction-payment-rpc-runtime-api 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-treasury 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-parachain 0.7.4",
"polkadot-primitives 0.7.4",
"polkadot-parachain 0.7.5",
"polkadot-primitives 0.7.5",
"rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.102 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3677,7 +3662,7 @@ dependencies = [
[[package]]
name = "polkadot-service"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"exit-future 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3689,13 +3674,13 @@ dependencies = [
"pallet-im-online 0.1.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"pallet-staking 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-availability-store 0.7.4",
"polkadot-executor 0.7.4",
"polkadot-network 0.7.4",
"polkadot-primitives 0.7.4",
"polkadot-rpc 0.7.4",
"polkadot-runtime 0.7.4",
"polkadot-validation 0.7.4",
"polkadot-availability-store 0.7.5",
"polkadot-executor 0.7.5",
"polkadot-network 0.7.5",
"polkadot-primitives 0.7.5",
"polkadot-rpc 0.7.5",
"polkadot-runtime 0.7.5",
"polkadot-validation 0.7.5",
"sc-authority-discovery 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-client 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-client-api 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -3723,16 +3708,16 @@ dependencies = [
[[package]]
name = "polkadot-statement-table"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-primitives 0.7.4",
"polkadot-primitives 0.7.5",
"sp-core 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
]
[[package]]
name = "polkadot-validation"
version = "0.7.4"
version = "0.7.5"
dependencies = [
"async-std 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitvec 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)",
......@@ -3745,11 +3730,11 @@ dependencies = [
"pallet-babe 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"parity-scale-codec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"polkadot-availability-store 0.7.4",
"polkadot-parachain 0.7.4",
"polkadot-primitives 0.7.4",
"polkadot-runtime 0.7.4",
"polkadot-statement-table 0.7.4",
"polkadot-availability-store 0.7.5",
"polkadot-parachain 0.7.5",
"polkadot-primitives 0.7.5",
"polkadot-runtime 0.7.5",
"polkadot-statement-table 0.7.5",
"sc-block-builder 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-client-api 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
"sc-finality-grandpa 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)",
......@@ -7152,7 +7137,6 @@ dependencies = [
"checksum pallet-session 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
"checksum pallet-staking 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
"checksum pallet-staking-reward-curve 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
"checksum pallet-sudo 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
"checksum pallet-timestamp 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
"checksum pallet-transaction-payment 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
"checksum pallet-transaction-payment-rpc 2.0.0 (git+https://github.com/paritytech/substrate?branch=polkadot-master)" = "<none>"
......
......@@ -4,7 +4,7 @@ path = "src/main.rs"
[package]
name = "polkadot"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
build = "build.rs"
edition = "2018"
......
[package]
name = "polkadot-availability-store"
description = "Persistent database for parachain data"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
[package]
name = "polkadot-cli"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Polkadot node implementation in Rust."
edition = "2018"
......
[package]
name = "polkadot-collator"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Collator node implementation"
edition = "2018"
......
[package]
name = "polkadot-erasure-coding"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
[package]
name = "polkadot-executor"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Polkadot node implementation in Rust."
edition = "2018"
......
[package]
name = "polkadot-network"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Polkadot-specific networking protocol"
edition = "2018"
......
[package]
name = "polkadot-parachain"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Types and utilities for creating and working with parachains"
edition = "2018"
......
[package]
name = "polkadot-primitives"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
[package]
name = "polkadot-rpc"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
[package]
name = "polkadot-runtime"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
build = "build.rs"
......@@ -52,7 +52,6 @@ session = { package = "pallet-session", git = "https://github.com/paritytech/sub
frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-master" }
staking = { package = "pallet-staking", git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-master" }
pallet-staking-reward-curve = { git = "https://github.com/paritytech/substrate", branch = "polkadot-master" }
sudo = { package = "pallet-sudo", git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-master" }
system = { package = "frame-system", git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-master" }
system_rpc_runtime_api = { package = "frame-system-rpc-runtime-api", git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-master" }
timestamp = { package = "pallet-timestamp", git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-master" }
......@@ -113,7 +112,6 @@ std = [
"sp-staking/std",
"session/std",
"staking/std",
"sudo/std",
"system/std",
"system_rpc_runtime_api/std",
"timestamp/std",
......
......@@ -97,7 +97,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
spec_name: create_runtime_str!("kusama"),
impl_name: create_runtime_str!("parity-kusama"),
authoring_version: 2,
spec_version: 1025,
spec_version: 1026,
impl_version: 0,
apis: RUNTIME_API_VERSIONS,
};
......@@ -536,11 +536,6 @@ impl claims::Trait for Runtime {
type Prefix = Prefix;
}
impl sudo::Trait for Runtime {
type Event = Event;
type Proposal = Call;
}
parameter_types! {
pub const ReservationFee: Balance = 1 * DOLLARS;
pub const MinLength: usize = 3;
......@@ -603,10 +598,6 @@ construct_runtime! {
Slots: slots::{Module, Call, Storage, Event<T>},
Registrar: registrar::{Module, Call, Storage, Event, Config<T>},
// Sudo. Usable initially.
// RELEASE: remove this for release build.
Sudo: sudo,
// Simple nicknames module.
Nicks: nicks::{Module, Call, Storage, Event<T>},
}
......
[package]
name = "polkadot-service"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
......@@ -20,7 +20,7 @@ use primitives::{Pair, Public, crypto::UncheckedInto, sr25519};
use polkadot_primitives::{AccountId, AccountPublic, parachain::ValidatorId};
use polkadot_runtime::{
AuthorityDiscoveryConfig, GenesisConfig, CouncilConfig, DemocracyConfig, SystemConfig,
SessionConfig, StakingConfig, BalancesConfig, SessionKeys, TechnicalCommitteeConfig, SudoConfig,
SessionConfig, StakingConfig, BalancesConfig, SessionKeys, TechnicalCommitteeConfig,
IndicesConfig, StakerStatus, WASM_BINARY, ClaimsConfig, ParachainsConfig, RegistrarConfig
};
use polkadot_runtime::constants::currency::DOTS;
......@@ -194,9 +194,6 @@ fn staging_testnet_config_genesis() -> GenesisConfig {
parachains: vec![],
_phdata: Default::default(),
}),
sudo: Some(SudoConfig {
key: endowed_accounts[0].clone(),
}),
claims: Some(ClaimsConfig {
claims: vec![],
vesting: vec![],
......@@ -334,9 +331,6 @@ pub fn testnet_genesis(
parachains: vec![],
_phdata: Default::default(),
}),
sudo: Some(SudoConfig {
key: root_key,
}),
claims: Some(ClaimsConfig {
claims: vec![],
vesting: vec![],
......
[package]
name = "polkadot-statement-table"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
[package]
name = "adder"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Test parachain which adds to a number as its state transition"
edition = "2018"
......
[package]
name = "halt"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
description = "Test parachain which executes forever"
edition = "2018"
......
[package]
name = "polkadot-validation"
version = "0.7.4"
version = "0.7.5"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment