Repository: fractalide/fractalide (language: rust)

Issue:
Problem: modules/rs/crates/update.sh: Latest carnix does not work
Steps to reproduce:

1) Fix that `update.sh` calls `carnix nix`. It's now called `carnix generate-nix`.
2) The generated `Cargo.nix` requires some new parameters. Forward those from `buffet.pkgs`.
3) `(cd modules/rs/crates && ./update.sh)`
4) `./release.sh`

```
error: while evaluating the attribute 'mods.rs.cardano_0_1_0' at /home/clacke/git/fractalide/fractalide/modules/default.nix:4:3:
attribute 'cardano_0_1_0' missing, at /home/clacke/git/fractalide/fractalide/release.nix:8:15
```


Discussion / hints:

Fix patch:
diff --git a/modules/rs/crates/.gitignore b/modules/rs/crates/.gitignore
index 1ae47fad..f166ef9f 100644
--- a/modules/rs/crates/.gitignore
+++ b/modules/rs/crates/.gitignore
@@ -1,1 +1,2 @@
 /Cargo.toml
+/crates-io.nix
diff --git a/modules/rs/crates/Cargo.lock b/modules/rs/crates/Cargo.lock
index c1a156a1..eb526da9 100644
--- a/modules/rs/crates/Cargo.lock
+++ b/modules/rs/crates/Cargo.lock
@@ -1,9 +1,9 @@
 [[package]]
 name = "aho-corasick"
-version = "0.6.8"
+version = "0.6.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -15,7 +15,7 @@ dependencies = [
  "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
  "exe-common 0.1.0",
  "generate_msg 0.1.0",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "protocol 0.1.0",
  "rustfbp 0.3.34",
@@ -24,10 +24,10 @@ dependencies = [
 
 [[package]]
 name = "arrayvec"
-version = "0.4.7"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -35,7 +35,7 @@ name = "atty"
 version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -45,7 +45,7 @@ name = "base64"
 version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -56,15 +56,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "byteorder"
-version = "1.2.6"
+version = "1.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "bytes"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -72,10 +72,10 @@ dependencies = [
 name = "cardano"
 version = "0.1.0"
 dependencies = [
- "cbor_event 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cbor_event 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "cryptoxide 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -83,15 +83,15 @@ name = "cardano-storage"
 version = "0.1.0"
 dependencies = [
  "cardano 0.1.0",
- "cbor_event 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cbor_event 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "storage-units 0.1.0",
 ]
 
 [[package]]
 name = "cbor_event"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -101,7 +101,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "cfg-if"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -114,30 +114,33 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.6.1"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.5.2"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.5.0"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
 
 [[package]]
 name = "cryptoxide"
@@ -155,9 +158,21 @@ version = "0.5.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -167,14 +182,14 @@ version = "0.1.0"
 dependencies = [
  "cardano 0.1.0",
  "cardano-storage 0.1.0",
- "cbor_event 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cbor_event 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "protocol 0.1.0",
  "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde_yaml 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "storage-units 0.1.0",
  "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -196,7 +211,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "futures"
-version = "0.1.24"
+version = "0.1.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -204,7 +219,7 @@ name = "futures-cpupool"
 version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -222,7 +237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "humantime"
-version = "1.1.1"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -234,23 +249,23 @@ version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
  "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "mime 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
  "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
  "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "unicase 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -259,7 +274,7 @@ name = "iovec"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -279,11 +294,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "lazy_static"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-]
 
 [[package]]
 name = "lazycell"
@@ -292,7 +304,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "libc"
-version = "0.2.43"
+version = "0.2.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -311,10 +323,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "lock_api"
-version = "0.1.4"
+version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -323,15 +335,15 @@ name = "log"
 version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -339,16 +351,16 @@ name = "memchr"
 version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -359,10 +371,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "mime"
-version = "0.3.9"
+version = "0.3.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "unicase 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -375,8 +387,8 @@ dependencies = [
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
  "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -389,7 +401,7 @@ version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -409,14 +421,14 @@ name = "net2"
 version = "0.2.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "nodrop"
-version = "0.1.12"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -432,12 +444,12 @@ name = "num_cpus"
 version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "owning_ref"
-version = "0.3.3"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -448,7 +460,7 @@ name = "parking_lot"
 version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -457,10 +469,10 @@ name = "parking_lot_core"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -479,7 +491,7 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "0.4.20"
+version = "0.4.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -490,8 +502,8 @@ name = "protocol"
 version = "0.1.0"
 dependencies = [
  "cardano 0.1.0",
- "cbor_event 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cbor_event 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -509,10 +521,10 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "0.6.8"
+version = "0.6.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -521,7 +533,7 @@ version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -531,7 +543,7 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -542,11 +554,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "rand"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "rand_core"
 version = "0.2.2"
@@ -560,9 +599,42 @@ name = "rand_core"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
+[[package]]
+name = "rand_hc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_isaac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "redox_syscall"
-version = "0.1.40"
+version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -570,27 +642,27 @@ name = "redox_termios"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "regex"
-version = "1.0.5"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.2"
+version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -598,7 +670,7 @@ name = "relay"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -613,7 +685,7 @@ dependencies = [
 name = "rustfbp"
 version = "0.3.34"
 dependencies = [
- "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
@@ -648,17 +720,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "serde"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "serde_derive"
-version = "1.0.79"
+version = "1.0.80"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "syn 0.15.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -668,7 +740,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
  "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
  "yaml-rust 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -689,7 +761,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "smallvec"
-version = "0.6.5"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -720,11 +792,11 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "0.15.8"
+version = "0.15.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
- "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
  "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -746,8 +818,8 @@ name = "termion"
 version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
  "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -756,7 +828,7 @@ name = "thread_local"
 version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -772,30 +844,31 @@ name = "time"
 version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
  "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio"
-version = "0.1.11"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-fs 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-uds 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -803,9 +876,9 @@ name = "tokio-codec"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -813,25 +886,25 @@ name = "tokio-core"
 version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
  "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-current-thread"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -840,27 +913,27 @@ name = "tokio-executor"
 version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-fs"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-io"
-version = "0.1.9"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -868,7 +941,7 @@ name = "tokio-proto"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -876,25 +949,25 @@ dependencies = [
  "smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-reactor"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
  "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
  "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -902,7 +975,7 @@ name = "tokio-service"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -910,67 +983,68 @@ name = "tokio-tcp"
 version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-threadpool"
-version = "0.1.7"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-timer"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-udp"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
  "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
 name = "tokio-uds"
-version = "0.2.2"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
  "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -980,12 +1054,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "ucd-util"
-version = "0.1.1"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
 name = "unicase"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
  "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1006,7 +1080,7 @@ dependencies = [
 
 [[package]]
 name = "utf8-ranges"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
 [[package]]
@@ -1024,8 +1098,8 @@ name = "want"
 version = "0.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 dependencies = [
- "futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  "try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
@@ -1093,70 +1167,77 @@ dependencies = [
 ]
 
 [metadata]
-"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a"
-"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
+"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e"
+"checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc"
 "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
 "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
 "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
-"checksum byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "90492c5858dd7d2e78691cfb89f90d273a2800fc11d98f60786e5d87e2f83781"
-"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62"
-"checksum cbor_event 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29a95a1de12d1f5a3ff0c34cd2578f625a5feddb5d5672546ebbbecdb6287a0f"
+"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
+"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa"
+"checksum cbor_event 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd1877f29511f8bbca55667b55e29e8d4ed80729155c9c9236d99bc340282a6f"
 "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
-"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3"
+"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
 "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-"checksum crossbeam-deque 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3486aefc4c0487b9cb52372c97df0a48b8c249514af1ee99703bf70d2f2ceda1"
-"checksum crossbeam-epoch 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30fecfcac6abfef8771151f8be4abc9e4edc112c2bcb233314cafde2680536e9"
-"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015"
+"checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3"
+"checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8"
+"checksum crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c55913cc2799171a550e307918c0a360e8c16004820291bf3b638969b4a01816"
 "checksum cryptoxide 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc9be687df90da186ed5c6ada0b6b4d69f5ad914071870bc5d41277377d30427"
 "checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
 "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
+"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
 "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
 "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-"checksum futures 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "0c84b40c7e2de99ffd70602db314a7a8c26b2b3d830e6f7f7a142a8860ab3ca4"
+"checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b"
 "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
 "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
-"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e"
+"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
 "checksum hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)" = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7"
 "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
 "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
 "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
-"checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7"
+"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
 "checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0"
-"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"
+"checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
 "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2"
 "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e"
-"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a"
+"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
 "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f"
+"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
 "checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
-"checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b"
+"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
 "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
-"checksum mime 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "4b082692d3f6cf41b453af73839ce3dfc212c4411cbb2441dff80a716e38bd79"
+"checksum mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630"
 "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432"
 "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
 "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
 "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-"checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2"
+"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
 "checksum nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b"
 "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
-"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
+"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
 "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
 "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
 "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
 "checksum proc-macro2 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0"
-"checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee"
+"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09"
 "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
 "checksum quote 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408"
-"checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5"
+"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
 "checksum rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "15a732abf9d20f0ad8eeb6f909bf6868722d9a06e1e50802b6a70351f40b4eb1"
 "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd"
 "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c"
+"checksum rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a"
+"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a"
 "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372"
 "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db"
-"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1"
+"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+"checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05"
+"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3"
+"checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d"
 "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
-"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341"
-"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d"
+"checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467"
+"checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e"
 "checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
 "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
 "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
@@ -1164,43 +1245,43 @@ dependencies = [
 "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
 "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-"checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9"
-"checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe"
+"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef"
+"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c"
 "checksum serde_yaml 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ef8099d3df28273c99a1728190c7a9f19d444c941044f64adf986bee7ec53051"
 "checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
 "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d"
 "checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013"
-"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d"
+"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db"
 "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
 "checksum syn 0.12.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c97c05b8ebc34ddd6b967994d5c6e9852fa92f8b82b3858c39451f97346dcce5"
-"checksum syn 0.15.8 (registry+https://github.com/rust-lang/crates.io-index)" = "356d1c5043597c40489e9af2d2498c7fefc33e99b7d75b43be336c8a59b3e45e"
+"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7"
 "checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
 "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
 "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
 "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
 "checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
 "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b"
-"checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895"
+"checksum tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "a7817d4c98cc5be21360b3b37d6036fe9b7aefa5b7a201b7b16ff33423822f7d"
 "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
 "checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
-"checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c"
+"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6"
 "checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde"
-"checksum tokio-fs 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b5cbe4ca6e71cb0b62a66e4e6f53a8c06a6eefe46cc5f665ad6f274c9906f135"
-"checksum tokio-io 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "8b8a85fffbec3c5ab1ab62324570230dcd37ee5996a7859da5caf7b9d45e3e8c"
+"checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75"
+"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21"
 "checksum tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389"
-"checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018"
+"checksum tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "502b625acb4ee13cbb3b90b8ca80e0addd263ddacf6931666ef751e610b07fb5"
 "checksum tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
 "checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912"
-"checksum tokio-threadpool 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bbd8a8b911301c60cbfaa2a6588fb210e5c1038375b8bdecc47aa09a94c3c05f"
-"checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e"
-"checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c"
-"checksum tokio-uds 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "22e3aa6d1fcc19e635418dc0a30ab5bd65d347973d6f43f1a37bf8d9d1335fc9"
+"checksum tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "56c5556262383032878afad66943926a1d1f0967f17e94bd7764ceceb3b70e7f"
+"checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8"
+"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92"
+"checksum tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "99ce87382f6c1a24b513a72c048b2c8efe66cb5161c9061d00bee510f08dc168"
 "checksum try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2"
-"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d"
-"checksum unicase 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284b6d3db520d67fbe88fd778c21510d1b0ba4a551e5d0fbb023d33405f6de8a"
+"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
+"checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90"
 "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
 "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
-"checksum utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd70f467df6810094968e2fce0ee1bd0e87157aceb026a8c083bcf5e25b9efe4"
+"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
 "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
 "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
 "checksum want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1"
diff --git a/modules/rs/crates/Cargo.nix b/modules/rs/crates/Cargo.nix
index f138ea85..ceecdf9a 100644
--- a/modules/rs/crates/Cargo.nix
+++ b/modules/rs/crates/Cargo.nix
@@ -1,2589 +1,808 @@
-# Generated by carnix 0.7.2: carnix nix --src ./.
-{ lib, buildPlatform, buildRustCrate, fetchgit }:
-let kernel = buildPlatform.parsed.kernel.name;
-    abi = buildPlatform.parsed.abi.name;
-    include = includedFiles: src: builtins.filterSource (path: type:
-      lib.lists.any (f:
-        let p = toString (src + ("/" + f)); in
-        (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
-      ) includedFiles
-    ) src;
-    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
-    mapFeatures = features: map (fun: fun { features = features; });
-    mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if feat.${featureName} or false then
-        [ featureName ] ++ features
-      else
-        features
-    ) [] (builtins.attrNames feat);
+# Generated by carnix 0.8.11: carnix generate-nix --src ./.
+{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
+with buildRustCrateHelpers;
+let inherit (lib.lists) fold;
+    inherit (lib.attrsets) recursiveUpdate;
 in
-rec {
-  all_crates = f: all_crates_1_1_1 { features = all_crates_1_1_1_features { all_crates_1_1_1 = f; }; };
-  __all = [ (all_crates {}) ];
-  aho_corasick_0_6_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "aho-corasick";
-    version = "0.6.8";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "04bz5m32ykyn946iwxgbrl8nwca7ssxsqma140hgmkchaay80nfr";
-    libName = "aho_corasick";
-    crateBin = [ { name = "aho-corasick-dot"; path = "src/main.rs"; } ];
-    inherit dependencies buildDependencies features;
-  };
-  all_crates_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+let crates = cratesIO // rec {
+  crates.all_crates."1.1.1" = deps: { features?(features_.all_crates."1.1.1" deps {}) }: buildRustCrate {
     crateName = "all_crates";
     version = "1.1.1";
     authors = [ ];
-    src = ./.;
-    inherit dependencies buildDependencies features;
-  };
-  arrayvec_0_4_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "arrayvec";
-    version = "0.4.7";
-    authors = [ "bluss" ];
-    sha256 = "0fzgv7z1x1qnyd7j32vdcadk4k9wfx897y06mr3bw1yi52iqf4z4";
-    inherit dependencies buildDependencies features;
-  };
-  atty_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.11";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "0by1bj2km9jxi4i4g76zzi76fc2rcm9934jpnyrqd95zw344pb20";
-    inherit dependencies buildDependencies features;
-  };
-  base64_0_9_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "base64";
-    version = "0.9.3";
-    authors = [ "Alice Maz <alice@alicemaz.com>" "Marshall Pierce <marshall@mpierce.org>" ];
-    sha256 = "11hhz8ln4zbpn2h2gm9fbbb9j254wrd4fpmddlyah2rrnqsmmqkd";
-    inherit dependencies buildDependencies features;
-  };
-  bitflags_1_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bitflags";
-    version = "1.0.4";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1g1wmz2001qmfrd37dnd5qiss5njrw26aywmg6yhkmkbyrhjxb08";
-    inherit dependencies buildDependencies features;
-  };
-  byteorder_1_2_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "byteorder";
-    version = "1.2.6";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "12p5ms2jsqr5l1d3fskpqzjvnn4b41pzwbjbz9zfaj22ndhkk87d";
-    inherit dependencies buildDependencies features;
-  };
-  bytes_0_4_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "bytes";
-    version = "0.4.10";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0g7c9qc6g5vjajha0ykxv63fmpg39i9w204j6pc1lknr99i7w19a";
-    inherit dependencies buildDependencies features;
-  };
-  cardano_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] ./.;
+    dependencies = mapFeatures features ([
+      (crates."cardano"."${deps."all_crates"."1.1.1"."cardano"}" deps)
+      (crates."cardano_storage"."${deps."all_crates"."1.1.1"."cardano_storage"}" deps)
+      (cratesIO.crates."env_logger"."${deps."all_crates"."1.1.1"."env_logger"}" deps)
+      (crates."exe_common"."${deps."all_crates"."1.1.1"."exe_common"}" deps)
+      (crates."generate_msg"."${deps."all_crates"."1.1.1"."generate_msg"}" deps)
+      (cratesIO.crates."log"."${deps."all_crates"."1.1.1"."log"}" deps)
+      (cratesIO.crates."nom"."${deps."all_crates"."1.1.1"."nom"}" deps)
+      (crates."protocol"."${deps."all_crates"."1.1.1"."protocol"}" deps)
+      (crates."rustfbp"."${deps."all_crates"."1.1.1"."rustfbp"}" deps)
+      (crates."storage_units"."${deps."all_crates"."1.1.1"."storage_units"}" deps)
+    ]);
+  };
+  features_.all_crates."1.1.1" = deps: f: updateFeatures f (rec {
+    all_crates."1.1.1".default = (f.all_crates."1.1.1".default or true);
+    cardano."${deps.all_crates."1.1.1".cardano}".default = true;
+    cardano_storage."${deps.all_crates."1.1.1".cardano_storage}".default = true;
+    env_logger."${deps.all_crates."1.1.1".env_logger}".default = true;
+    exe_common."${deps.all_crates."1.1.1".exe_common}".default = true;
+    generate_msg."${deps.all_crates."1.1.1".generate_msg}".default = true;
+    log."${deps.all_crates."1.1.1".log}".default = true;
+    nom."${deps.all_crates."1.1.1".nom}".default = true;
+    protocol."${deps.all_crates."1.1.1".protocol}".default = true;
+    rustfbp."${deps.all_crates."1.1.1".rustfbp}".default = true;
+    storage_units."${deps.all_crates."1.1.1".storage_units}".default = true;
+  }) [
+    (features_.cardano."${deps."all_crates"."1.1.1"."cardano"}" deps)
+    (features_.cardano_storage."${deps."all_crates"."1.1.1"."cardano_storage"}" deps)
+    (cratesIO.features_.env_logger."${deps."all_crates"."1.1.1"."env_logger"}" deps)
+    (features_.exe_common."${deps."all_crates"."1.1.1"."exe_common"}" deps)
+    (features_.generate_msg."${deps."all_crates"."1.1.1"."generate_msg"}" deps)
+    (cratesIO.features_.log."${deps."all_crates"."1.1.1"."log"}" deps)
+    (cratesIO.features_.nom."${deps."all_crates"."1.1.1"."nom"}" deps)
+    (features_.protocol."${deps."all_crates"."1.1.1"."protocol"}" deps)
+    (features_.rustfbp."${deps."all_crates"."1.1.1"."rustfbp"}" deps)
+    (features_.storage_units."${deps."all_crates"."1.1.1"."storage_units"}" deps)
+  ];
+
+
+  crates.cardano."0.1.0" = deps: { features?(features_.cardano."0.1.0" deps {}) }: buildRustCrate {
     crateName = "cardano";
     version = "0.1.0";
     authors = [ "Vincent Hanquez <vincent.hanquez@iohk.io>" "Nicolas Di Prima <nicolas.diprima@iohk.io>" ];
-    src = "${fetchgit { url = "https://github.com/input-output-hk/rust-cardano.git"; rev = "4403a9fbd156213fcee3c0611b4f225e96de28d5"; sha256 = "06gkfzhfswjdynm1pb4d9y085q3y171abd9d4sl87y1b80mfpw9j"; }}/cardano";
-    inherit dependencies buildDependencies features;
-  };
-  cardano_storage_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] /nix/store/lk795k7bz6d9b9bhax09dhc5wpddmna5-rust-cardano-4403a9f/cardano;
+    dependencies = mapFeatures features ([
+      (cratesIO.crates."cbor_event"."${deps."cardano"."0.1.0"."cbor_event"}" deps)
+      (cratesIO.crates."cryptoxide"."${deps."cardano"."0.1.0"."cryptoxide"}" deps)
+    ]
+      ++ (if features.cardano."0.1.0".serde or false then [ (cratesIO.crates.serde."1.0.80" deps) ] else [])
+      ++ (if features.cardano."0.1.0".serde_derive or false then [ (cratesIO.crates.serde_derive."1.0.80" deps) ] else []));
+    features = mkFeatures (features."cardano"."0.1.0" or {});
+  };
+  features_.cardano."0.1.0" = deps: f: updateFeatures f (rec {
+    cardano = fold recursiveUpdate {} [
+      { "0.1.0".default = (f.cardano."0.1.0".default or true); }
+      { "0.1.0".serde =
+        (f.cardano."0.1.0".serde or false) ||
+        (f.cardano."0.1.0".generic-serialization or false) ||
+        (cardano."0.1.0"."generic-serialization" or false); }
+      { "0.1.0".serde_derive =
+        (f.cardano."0.1.0".serde_derive or false) ||
+        (f.cardano."0.1.0".generic-serialization or false) ||
+        (cardano."0.1.0"."generic-serialization" or false); }
+    ];
+    cbor_event."${deps.cardano."0.1.0".cbor_event}".default = true;
+    cryptoxide."${deps.cardano."0.1.0".cryptoxide}".default = true;
+    serde."${deps.cardano."0.1.0".serde}".default = true;
+    serde_derive."${deps.cardano."0.1.0".serde_derive}".default = true;
+  }) [
+    (cratesIO.features_.cbor_event."${deps."cardano"."0.1.0"."cbor_event"}" deps)
+    (cratesIO.features_.cryptoxide."${deps."cardano"."0.1.0"."cryptoxide"}" deps)
+    (cratesIO.features_.serde."${deps."cardano"."0.1.0"."serde"}" deps)
+    (cratesIO.features_.serde_derive."${deps."cardano"."0.1.0"."serde_derive"}" deps)
+  ];
+
+
+  crates.cardano_storage."0.1.0" = deps: { features?(features_.cardano_storage."0.1.0" deps {}) }: buildRustCrate {
     crateName = "cardano-storage";
     version = "0.1.0";
     authors = [ "Vincent Hanquez <vincent.hanquez@iohk.io>" "Nicolas Di Prima <nicolas.diprima@iohk.io>" ];
-    src = "${fetchgit { url = "https://github.com/input-output-hk/rust-cardano.git"; rev = "4403a9fbd156213fcee3c0611b4f225e96de28d5"; sha256 = "06gkfzhfswjdynm1pb4d9y085q3y171abd9d4sl87y1b80mfpw9j"; }}/storage";
-    inherit dependencies buildDependencies features;
-  };
-  cbor_event_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cbor_event";
-    version = "1.0.0";
-    authors = [ "Nicolas Di Prima <nicolas@primetype.co.uk>" "Vincent Hanquez <vincent@typed.io>" ];
-    sha256 = "1q0rjpq1gmw3bjcvz5rd1b0k9w33y8iw648vn0ly5gsjcp0n2cd5";
-    inherit dependencies buildDependencies features;
-  };
-  cc_1_0_25_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.25";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0pd8fhjlpr5qan984frkf1c8nxrqp6827wmmfzhm2840229z2hq0";
-    inherit dependencies buildDependencies features;
-  };
-  cfg_if_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cfg-if";
-    version = "0.1.5";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1i0w5v51fxnlfsfs9asrnx5bs2di4hcq363gbaw39wya3cmw6vky";
-    inherit dependencies buildDependencies features;
-  };
-  cloudabi_0_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cloudabi";
-    version = "0.0.3";
-    authors = [ "Nuxi (https://nuxi.nl/) and contributors" ];
-    sha256 = "1z9lby5sr6vslfd14d6igk03s7awf91mxpsfmsp3prxbxlk0x7h5";
-    libPath = "cloudabi.rs";
-    inherit dependencies buildDependencies features;
-  };
-  crossbeam_deque_0_6_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "crossbeam-deque";
-    version = "0.6.1";
-    authors = [ "The Crossbeam Project Developers" ];
-    sha256 = "00n2179ci0w3aw1k579y3g13rhckl631m41c25q689li8i36416m";
-    inherit dependencies buildDependencies features;
-  };
-  crossbeam_epoch_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "crossbeam-epoch";
-    version = "0.5.2";
-    authors = [ "The Crossbeam Project Developers" ];
-    sha256 = "1xv8ggicdjwsqsbawflyjwlq5nj4xks96yzp5w3sw9qby6l16wnd";
-    inherit dependencies buildDependencies features;
-  };
-  crossbeam_utils_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "crossbeam-utils";
-    version = "0.5.0";
-    authors = [ "The Crossbeam Project Developers" ];
-    sha256 = "1sx0s9lnv9ja3q9l649w7rn23d7mgvb3cl08zx69vp9x4rdpxdpn";
-    inherit dependencies buildDependencies features;
-  };
-  cryptoxide_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "cryptoxide";
-    version = "0.1.0";
-    authors = [ "Vincent Hanquez <vincent@typed.io>" "Nicolas Di Prima <nicolas@prime-type.co.uk>" "The Rust-Crypto Project Developers" ];
-    sha256 = "05ym36zpcywk9s2vj8az8d1w2x5harradnvrix5hiiav7ky8fq47";
-    inherit dependencies buildDependencies features;
-  };
-  dtoa_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "dtoa";
-    version = "0.4.3";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1xysdxdm24sk5ysim7lps4r2qaxfnj0sbakhmps4d42yssx30cw8";
-    inherit dependencies buildDependencies features;
-  };
-  env_logger_0_5_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "env_logger";
-    version = "0.5.13";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1q6vylngcz4bn088b4hvsl879l8yz1k2bma75waljb5p4h4kbb72";
-    inherit dependencies buildDependencies features;
-  };
-  exe_common_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] /nix/store/lk795k7bz6d9b9bhax09dhc5wpddmna5-rust-cardano-4403a9f/storage;
+    dependencies = mapFeatures features ([
+      (crates."cardano"."${deps."cardano_storage"."0.1.0"."cardano"}" deps)
+      (cratesIO.crates."cbor_event"."${deps."cardano_storage"."0.1.0"."cbor_event"}" deps)
+      (cratesIO.crates."log"."${deps."cardano_storage"."0.1.0"."log"}" deps)
+      (cratesIO.crates."rand"."${deps."cardano_storage"."0.1.0"."rand"}" deps)
+      (crates."storage_units"."${deps."cardano_storage"."0.1.0"."storage_units"}" deps)
+    ]);
+  };
+  features_.cardano_storage."0.1.0" = deps: f: updateFeatures f (rec {
+    cardano."${deps.cardano_storage."0.1.0".cardano}".default = true;
+    cardano_storage."0.1.0".default = (f.cardano_storage."0.1.0".default or true);
+    cbor_event."${deps.cardano_storage."0.1.0".cbor_event}".default = true;
+    log."${deps.cardano_storage."0.1.0".log}".default = true;
+    rand."${deps.cardano_storage."0.1.0".rand}".default = true;
+    storage_units."${deps.cardano_storage."0.1.0".storage_units}".default = true;
+  }) [
+    (features_.cardano."${deps."cardano_storage"."0.1.0"."cardano"}" deps)
+    (cratesIO.features_.cbor_event."${deps."cardano_storage"."0.1.0"."cbor_event"}" deps)
+    (cratesIO.features_.log."${deps."cardano_storage"."0.1.0"."log"}" deps)
+    (cratesIO.features_.rand."${deps."cardano_storage"."0.1.0"."rand"}" deps)
+    (features_.storage_units."${deps."cardano_storage"."0.1.0"."storage_units"}" deps)
+  ];
+
+
+  crates.exe_common."0.1.0" = deps: { features?(features_.exe_common."0.1.0" deps {}) }: buildRustCrate {
     crateName = "exe-common";
     version = "0.1.0";
     authors = [ "Vincent Hanquez <vincent.hanquez@iohk.io>" "Nicolas Di Prima <nicolas.diprima@iohk.io>" ];
-    src = "${fetchgit { url = "https://github.com/input-output-hk/rust-cardano.git"; rev = "4403a9fbd156213fcee3c0611b4f225e96de28d5"; sha256 = "06gkfzhfswjdynm1pb4d9y085q3y171abd9d4sl87y1b80mfpw9j"; }}/exe-common";
-    inherit dependencies buildDependencies features;
-  };
-  fuchsia_zircon_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fuchsia-zircon";
-    version = "0.3.3";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
-    inherit dependencies buildDependencies features;
-  };
-  fuchsia_zircon_sys_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "fuchsia-zircon-sys";
-    version = "0.3.3";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
-    inherit dependencies buildDependencies features;
-  };
-  futures_0_1_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "futures";
-    version = "0.1.24";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0dqdy4pnnfwpj6zjr22sc4yagym2wj7px1hnx1c0sc4ck4i01w54";
-    inherit dependencies buildDependencies features;
-  };
-  futures_cpupool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "futures-cpupool";
-    version = "0.1.8";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0ficd31n5ljiixy6x0vjglhq4fp0v1p4qzxm3v6ymsrb3z080l5c";
-    inherit dependencies buildDependencies features;
-  };
-  generate_msg_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] /nix/store/lk795k7bz6d9b9bhax09dhc5wpddmna5-rust-cardano-4403a9f/exe-common;
+    dependencies = mapFeatures features ([
+      (crates."cardano"."${deps."exe_common"."0.1.0"."cardano"}" deps)
+      (crates."cardano_storage"."${deps."exe_common"."0.1.0"."cardano_storage"}" deps)
+      (cratesIO.crates."cbor_event"."${deps."exe_common"."0.1.0"."cbor_event"}" deps)
+      (cratesIO.crates."futures"."${deps."exe_common"."0.1.0"."futures"}" deps)
+      (cratesIO.crates."hyper"."${deps."exe_common"."0.1.0"."hyper"}" deps)
+      (cratesIO.crates."log"."${deps."exe_common"."0.1.0"."log"}" deps)
+      (crates."protocol"."${deps."exe_common"."0.1.0"."protocol"}" deps)
+      (cratesIO.crates."rand"."${deps."exe_common"."0.1.0"."rand"}" deps)
+      (cratesIO.crates."serde"."${deps."exe_common"."0.1.0"."serde"}" deps)
+      (cratesIO.crates."serde_derive"."${deps."exe_common"."0.1.0"."serde_derive"}" deps)
+      (cratesIO.crates."serde_yaml"."${deps."exe_common"."0.1.0"."serde_yaml"}" deps)
+      (crates."storage_units"."${deps."exe_common"."0.1.0"."storage_units"}" deps)
+      (cratesIO.crates."tokio_core"."${deps."exe_common"."0.1.0"."tokio_core"}" deps)
+    ]);
+  };
+  features_.exe_common."0.1.0" = deps: f: updateFeatures f (rec {
+    cardano = fold recursiveUpdate {} [
+      { "${deps.exe_common."0.1.0".cardano}"."generic-serialization" = true; }
+      { "${deps.exe_common."0.1.0".cardano}".default = true; }
+    ];
+    cardano_storage."${deps.exe_common."0.1.0".cardano_storage}".default = true;
+    cbor_event."${deps.exe_common."0.1.0".cbor_event}".default = true;
+    exe_common."0.1.0".default = (f.exe_common."0.1.0".default or true);
+    futures."${deps.exe_common."0.1.0".futures}".default = true;
+    hyper."${deps.exe_common."0.1.0".hyper}".default = true;
+    log."${deps.exe_common."0.1.0".log}".default = true;
+    protocol."${deps.exe_common."0.1.0".protocol}".default = true;
+    rand."${deps.exe_common."0.1.0".rand}".default = true;
+    serde."${deps.exe_common."0.1.0".serde}".default = true;
+    serde_derive."${deps.exe_common."0.1.0".serde_derive}".default = true;
+    serde_yaml."${deps.exe_common."0.1.0".serde_yaml}".default = true;
+    storage_units."${deps.exe_common."0.1.0".storage_units}".default = true;
+    tokio_core."${deps.exe_common."0.1.0".tokio_core}".default = true;
+  }) [
+    (features_.cardano."${deps."exe_common"."0.1.0"."cardano"}" deps)
+    (features_.cardano_storage."${deps."exe_common"."0.1.0"."cardano_storage"}" deps)
+    (cratesIO.features_.cbor_event."${deps."exe_common"."0.1.0"."cbor_event"}" deps)
+    (cratesIO.features_.futures."${deps."exe_common"."0.1.0"."futures"}" deps)
+    (cratesIO.features_.hyper."${deps."exe_common"."0.1.0"."hyper"}" deps)
+    (cratesIO.features_.log."${deps."exe_common"."0.1.0"."log"}" deps)
+    (features_.protocol."${deps."exe_common"."0.1.0"."protocol"}" deps)
+    (cratesIO.features_.rand."${deps."exe_common"."0.1.0"."rand"}" deps)
+    (cratesIO.features_.serde."${deps."exe_common"."0.1.0"."serde"}" deps)
+    (cratesIO.features_.serde_derive."${deps."exe_common"."0.1.0"."serde_derive"}" deps)
+    (cratesIO.features_.serde_yaml."${deps."exe_common"."0.1.0"."serde_yaml"}" deps)
+    (features_.storage_units."${deps."exe_common"."0.1.0"."storage_units"}" deps)
+    (cratesIO.features_.tokio_core."${deps."exe_common"."0.1.0"."tokio_core"}" deps)
+  ];
+
+
+  crates.generate_msg."0.1.0" = deps: { features?(features_.generate_msg."0.1.0" deps {}) }: buildRustCrate {
     crateName = "generate_msg";
     version = "0.1.0";
     authors = [ "pe@pijul.org <pe@pijul.org>" ];
-    src = "${../generate-msg}";
-    inherit dependencies buildDependencies features;
-  };
-  httparse_1_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "httparse";
-    version = "1.3.3";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "1jymxy4bl0mzgp2dx0pzqzbr72sw5jmr5sjqiry4xr88z4z9qlyx";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  humantime_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "humantime";
-    version = "1.1.1";
-    authors = [ "Paul Colomiets <paul@colomiets.name>" ];
-    sha256 = "1lzdfsfzdikcp1qb6wcdvnsdv16pmzr7p7cv171vnbnyz2lrwbgn";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  hyper_0_11_27_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "hyper";
-    version = "0.11.27";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "0q5as4lhvh31bzk4qm7j84snrmxyxyaqk040rfk72b42dn98mryi";
-    inherit dependencies buildDependencies features;
-  };
-  iovec_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "iovec";
-    version = "0.1.2";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0vjymmb7wj4v4kza5jjn48fcdb85j3k37y7msjl3ifz0p9yiyp2r";
-    inherit dependencies buildDependencies features;
-  };
-  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  language_tags_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "language-tags";
-    version = "0.2.2";
-    authors = [ "Pyfisch <pyfisch@gmail.com>" ];
-    sha256 = "1zkrdzsqzzc7509kd7nngdwrp461glm2g09kqpzaqksp82frjdvy";
-    inherit dependencies buildDependencies features;
-  };
-  lazy_static_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "1.1.0";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1da2b6nxfc2l547qgl9kd1pn9sh1af96a6qx6xw8xdnv6hh5fag0";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  lazycell_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lazycell";
-    version = "1.2.0";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Nikita Pekin <contact@nikitapek.in>" ];
-    sha256 = "1lzdb3q17yjihw9hksynxgyg8wbph1h791wff8rrf1c2aqjwhmax";
-    inherit dependencies buildDependencies features;
-  };
-  libc_0_2_43_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.43";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0pshydmsq71kl9276zc2928ld50sp524ixcqkcqsgq410dx6c50b";
-    inherit dependencies buildDependencies features;
-  };
-  libloading_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "libloading";
-    version = "0.5.0";
-    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-    sha256 = "11vzjaka1y979aril4ggwp33p35yz2isvx9m5w88r5sdcmq6iscn";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  linked_hash_map_0_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "linked-hash-map";
-    version = "0.5.1";
-    authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" "Andrew Paseltiner <apaseltiner@gmail.com>" ];
-    sha256 = "1f29c7j53z7w5v0g115yii9dmmbsahr93ak375g48vi75v3p4030";
-    inherit dependencies buildDependencies features;
-  };
-  lock_api_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "lock_api";
-    version = "0.1.4";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "055dl3crjiid0bsmrwp3z3s6ypgscv4zsqgdj0pmhxr6zaas1da2";
-    inherit dependencies buildDependencies features;
-  };
-  log_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "log";
-    version = "0.3.9";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "19i9pwp7lhaqgzangcpw00kc3zsgcqcx84crv07xgz3v7d3kvfa2";
-    inherit dependencies buildDependencies features;
-  };
-  log_0_4_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "log";
-    version = "0.4.5";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1hdcj17al94ga90q7jx2y1rmxi68n3akra1awv3hr3s9b9zipgq6";
-    inherit dependencies buildDependencies features;
-  };
-  memchr_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "memchr";
-    version = "1.0.2";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "0dfb8ifl9nrc9kzgd5z91q6qg87sh285q1ih7xgrsglmqfav9lg7";
-    inherit dependencies buildDependencies features;
-  };
-  memchr_2_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "memchr";
-    version = "2.1.0";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "02w1fc5z1ccx8fbzgcr0mpk0xf2i9g4vbx9q5c2g8pjddbaqvjjq";
-    inherit dependencies buildDependencies features;
-  };
-  memoffset_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "memoffset";
-    version = "0.2.1";
-    authors = [ "Gilad Naaman <gilad.naaman@gmail.com>" ];
-    sha256 = "00vym01jk9slibq2nsiilgffp7n6k52a4q3n4dqp0xf5kzxvffcf";
-    inherit dependencies buildDependencies features;
-  };
-  mime_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "mime";
-    version = "0.3.9";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "0fns19sr62gqdzw3jy6pwqm1iy1q1ainb6cdvsg0kfwzy7nvyjww";
-    inherit dependencies buildDependencies features;
-  };
-  mio_0_6_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "mio";
-    version = "0.6.16";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "14vyrlmf0w984pi7ad9qvmlfj6vrb0wn6i8ik9j87w5za2r3rban";
-    inherit dependencies buildDependencies features;
-  };
-  mio_uds_0_6_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "mio-uds";
-    version = "0.6.7";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1gff9908pvvysv7zgxvyxy7x34fnhs088cr0j8mgwj8j24mswrhm";
-    inherit dependencies buildDependencies features;
-  };
-  miow_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "miow";
-    version = "0.2.1";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "14f8zkc6ix7mkyis1vsqnim8m29b6l55abkba3p2yz7j1ibcvrl0";
-    inherit dependencies buildDependencies features;
-  };
-  net2_0_2_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "net2";
-    version = "0.2.33";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1qnmajafgybj5wyxz9iffa8x5wgbwd2znfklmhqj7vl6lw1m65mq";
-    inherit dependencies buildDependencies features;
-  };
-  nodrop_0_1_12_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "nodrop";
-    version = "0.1.12";
-    authors = [ "bluss" ];
-    sha256 = "1b9rxvdg8061gxjc239l9slndf0ds3m6fy2sf3gs8f9kknqgl49d";
-    inherit dependencies buildDependencies features;
-  };
-  nom_3_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "nom";
-    version = "3.2.1";
-    authors = [ "contact@geoffroycouprie.com" ];
-    sha256 = "1vcllxrz9hdw6j25kn020ka3psz1vkaqh1hm3yfak2240zrxgi07";
-    inherit dependencies buildDependencies features;
-  };
-  num_cpus_1_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "num_cpus";
-    version = "1.8.0";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "1y6qnd9r8ga6y8mvlabdrr73nc8cshjjlzbvnanzyj9b8zzkfwk2";
-    inherit dependencies buildDependencies features;
-  };
-  owning_ref_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "owning_ref";
-    version = "0.3.3";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "13ivn0ydc0hf957ix0f5si9nnplzzykbr70hni1qz9m19i9kvmrh";
-    inherit dependencies buildDependencies features;
-  };
-  parking_lot_0_6_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "parking_lot";
-    version = "0.6.4";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0qwfysx8zfkj72sfcrqvd6pp7lgjmklyixsi3y0g6xjspw876rax";
-    inherit dependencies buildDependencies features;
-  };
-  parking_lot_core_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "parking_lot_core";
-    version = "0.3.1";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0h5p7dys8cx9y6ii4i57ampf7qdr8zmkpn543kd3h7nkhml8bw72";
-    inherit dependencies buildDependencies features;
-  };
-  percent_encoding_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "percent-encoding";
-    version = "1.0.1";
-    authors = [ "The rust-url developers" ];
-    sha256 = "04ahrp7aw4ip7fmadb0bknybmkfav0kk0gw4ps3ydq5w6hr0ib5i";
-    libPath = "lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  proc_macro2_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "proc-macro2";
-    version = "0.2.3";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1y47qagi1r1f13b4b66xagr3dn9hjlvba7i6f5mcb77qhkn8yg9c";
-    inherit dependencies buildDependencies features;
-  };
-  proc_macro2_0_4_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "proc-macro2";
-    version = "0.4.20";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0yr74b00d3wzg21kjvfln7vzzvf9aghbaff4c747i3grbd997ys2";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  protocol_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] /nix/store/9d4dmyh3pb2yqpw4hv7yvmsw3a8qsn1s-generate-msg;
+    dependencies = mapFeatures features ([
+      (cratesIO.crates."syn"."${deps."generate_msg"."0.1.0"."syn"}" deps)
+    ]);
+  };
+  features_.generate_msg."0.1.0" = deps: f: updateFeatures f (rec {
+    generate_msg."0.1.0".default = (f.generate_msg."0.1.0".default or true);
+    syn = fold recursiveUpdate {} [
+      { "${deps.generate_msg."0.1.0".syn}"."full" = true; }
+      { "${deps.generate_msg."0.1.0".syn}".default = true; }
+    ];
+  }) [
+    (cratesIO.features_.syn."${deps."generate_msg"."0.1.0"."syn"}" deps)
+  ];
+
+
+  crates.protocol."0.1.0" = deps: { features?(features_.protocol."0.1.0" deps {}) }: buildRustCrate {
     crateName = "protocol";
     version = "0.1.0";
     authors = [ "Vincent Hanquez <vincent.hanquez@iohk.io>" "Nicolas Di Prima <nicolas.diprima@iohk.io>" ];
-    src = "${fetchgit { url = "https://github.com/input-output-hk/rust-cardano.git"; rev = "4403a9fbd156213fcee3c0611b4f225e96de28d5"; sha256 = "06gkfzhfswjdynm1pb4d9y085q3y171abd9d4sl87y1b80mfpw9j"; }}/protocol";
-    inherit dependencies buildDependencies features;
-  };
-  quick_error_1_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "quick-error";
-    version = "1.2.2";
-    authors = [ "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" ];
-    sha256 = "192a3adc5phgpibgqblsdx1b421l5yg9bjbmv552qqq9f37h60k5";
-    inherit dependencies buildDependencies features;
-  };
-  quote_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "quote";
-    version = "0.4.2";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0rzka356p113f9hdcdc8ha78qar3qd6jpap9wnf5dza9hfs2k4bc";
-    inherit dependencies buildDependencies features;
-  };
-  quote_0_6_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "quote";
-    version = "0.6.8";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0dq6j23w6pmc4l6v490arixdwypy0b82z76nrzaingqhqri4p3mh";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_3_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.3.22";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0wrj12acx7l4hr7ag3nz8b50yhp8ancyq988bzmnnsxln67rsys0";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.4.3";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1644wri45l147822xy7dgdm4k7myxzs66cb795ga0x7dan11ci4f";
-    inherit dependencies buildDependencies features;
-  };
-  rand_0_5_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand";
-    version = "0.5.5";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0d7pnsh57qxhz1ghrzk113ddkn13kf2g758ffnbxq4nhwjfzhlc9";
-    inherit dependencies buildDependencies features;
-  };
-  rand_core_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand_core";
-    version = "0.2.2";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1cxnaxmsirz2wxsajsjkd1wk6lqfqbcprqkha4bq3didznrl22sc";
-    inherit dependencies buildDependencies features;
-  };
-  rand_core_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rand_core";
-    version = "0.3.0";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1vafw316apjys9va3j987s02djhqp7y21v671v3ix0p5j9bjq339";
-    inherit dependencies buildDependencies features;
-  };
-  redox_syscall_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "redox_syscall";
-    version = "0.1.40";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "132rnhrq49l3z7gjrwj2zfadgw6q0355s6a7id7x7c0d7sk72611";
-    libName = "syscall";
-    inherit dependencies buildDependencies features;
-  };
-  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "redox_termios";
-    version = "0.1.1";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
-    libPath = "src/lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  regex_1_0_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "regex";
-    version = "1.0.5";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1nb4dva9lhb3v76bdds9qcxldb2xy998sdraqnqaqdr6axfsfp02";
-    inherit dependencies buildDependencies features;
-  };
-  regex_syntax_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.6.2";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "109426mj7nhwr6szdzbcvn1a8g5zy52f9maqxjd9agm8wg87ylyw";
-    inherit dependencies buildDependencies features;
-  };
-  relay_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "relay";
-    version = "0.1.1";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "16csfaslbmj25iaxs88p8wcfh2zfpkh9isg9adid0nxjxvknh07r";
-    inherit dependencies buildDependencies features;
-  };
-  rustc_version_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "rustc_version";
-    version = "0.2.3";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0rgwzbgs3i9fqjm1p4ra3n7frafmpwl29c8lw85kv1rxn7n2zaa7";
-    inherit dependencies buildDependencies features;
-  };
-  rustfbp_0_3_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] /nix/store/lk795k7bz6d9b9bhax09dhc5wpddmna5-rust-cardano-4403a9f/exe-common/../protocol;
+    dependencies = mapFeatures features ([
+      (crates."cardano"."${deps."protocol"."0.1.0"."cardano"}" deps)
+      (cratesIO.crates."cbor_event"."${deps."protocol"."0.1.0"."cbor_event"}" deps)
+      (cratesIO.crates."log"."${deps."protocol"."0.1.0"."log"}" deps)
+    ]);
+  };
+  features_.protocol."0.1.0" = deps: f: updateFeatures f (rec {
+    cardano."${deps.protocol."0.1.0".cardano}".default = true;
+    cbor_event."${deps.protocol."0.1.0".cbor_event}".default = true;
+    log."${deps.protocol."0.1.0".log}".default = true;
+    protocol."0.1.0".default = (f.protocol."0.1.0".default or true);
+  }) [
+    (features_.cardano."${deps."protocol"."0.1.0"."cardano"}" deps)
+    (cratesIO.features_.cbor_event."${deps."protocol"."0.1.0"."cbor_event"}" deps)
+    (cratesIO.features_.log."${deps."protocol"."0.1.0"."log"}" deps)
+  ];
+
+
+  crates.rustfbp."0.3.34" = deps: { features?(features_.rustfbp."0.3.34" deps {}) }: buildRustCrate {
     crateName = "rustfbp";
     version = "0.3.34";
     authors = [ "Denis Michiels <dmichiels@gmail.com>" "Stewart Mackenzie <setori88@gmail.com>" ];
-    src = "${../rustfbp}";
-    inherit dependencies buildDependencies features;
-  };
-  safemem_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "safemem";
-    version = "0.3.0";
-    authors = [ "Austin Bonander <austin.bonander@gmail.com>" ];
-    sha256 = "0pr39b468d05f6m7m4alsngmj5p7an8df21apsxbi57k0lmwrr18";
-    inherit dependencies buildDependencies features;
-  };
-  scoped_tls_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scoped-tls";
-    version = "0.1.2";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0nblksgki698cqsclsnd6f1pq4yy34350dn2slaah9dlmx9z5xla";
-    inherit dependencies buildDependencies features;
-  };
-  scopeguard_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "scopeguard";
-    version = "0.3.3";
-    authors = [ "bluss" ];
-    sha256 = "0i1l013csrqzfz6c68pr5pi01hg5v5yahq8fsdmaxy6p8ygsjf3r";
-    inherit dependencies buildDependencies features;
-  };
-  semver_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "semver";
-    version = "0.9.0";
-    authors = [ "Steve Klabnik <steve@steveklabnik.com>" "The Rust Project Developers" ];
-    sha256 = "0azak2lb2wc36s3x15az886kck7rpnksrw14lalm157rg9sc9z63";
-    inherit dependencies buildDependencies features;
-  };
-  semver_parser_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "semver-parser";
-    version = "0.7.0";
-    authors = [ "Steve Klabnik <steve@steveklabnik.com>" ];
-    sha256 = "1da66c8413yakx0y15k8c055yna5lyb6fr0fw9318kdwkrk5k12h";
-    inherit dependencies buildDependencies features;
-  };
-  serde_1_0_79_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde";
-    version = "1.0.79";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "123jh1h8a7r1qk61n97arm1rwkzfg35a0j5a9nbmcy6y7xc4rbsc";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  serde_derive_1_0_79_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_derive";
-    version = "1.0.79";
-    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1waika12l2ibqyak53xq46rvh70zk9ql3m84aa4vkvjbl0z93qab";
-    procMacro = true;
-    inherit dependencies buildDependencies features;
-  };
-  serde_yaml_0_7_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "serde_yaml";
-    version = "0.7.5";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1ai03b8gii88kziljn4ja3ayd6mc3zy0y8aq2wncxwkh0gd707gd";
-    inherit dependencies buildDependencies features;
-  };
-  slab_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "slab";
-    version = "0.3.0";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0y6lhjggksh57hyfd3l6p9wgv5nhvw9c6djrysq7jnalz8fih21k";
-    inherit dependencies buildDependencies features;
-  };
-  slab_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "slab";
-    version = "0.4.1";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0njmznhcjp4aiznybxm7wacnb4q49ch98wizyf4lpn3rg6sjrak4";
-    inherit dependencies buildDependencies features;
-  };
-  smallvec_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "smallvec";
-    version = "0.2.1";
-    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
-    sha256 = "0rnsll9af52bpjngz0067dpm1ndqmh76i64a58fc118l4lvnjxw2";
-    libPath = "lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  smallvec_0_6_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "smallvec";
-    version = "0.6.5";
-    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
-    sha256 = "0jx49nb1c91936jaq30axc96wncdp2wdmspf1qc8iv85f1i44vvf";
-    libPath = "lib.rs";
-    inherit dependencies buildDependencies features;
-  };
-  stable_deref_trait_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "stable_deref_trait";
-    version = "1.1.1";
-    authors = [ "Robert Grosse <n210241048576@gmail.com>" ];
-    sha256 = "1xy9slzslrzr31nlnw52sl1d820b09y61b7f13lqgsn8n7y0l4g8";
-    inherit dependencies buildDependencies features;
-  };
-  storage_units_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    src = exclude [ ".git" "target" ] /nix/store/g4sjyz34avlm5hnlv0y4bm1fhqvyyvrc-rustfbp;
+    dependencies = mapFeatures features ([
+      (cratesIO.crates."env_logger"."${deps."rustfbp"."0.3.34"."env_logger"}" deps)
+      (cratesIO.crates."libloading"."${deps."rustfbp"."0.3.34"."libloading"}" deps)
+      (cratesIO.crates."threadpool"."${deps."rustfbp"."0.3.34"."threadpool"}" deps)
+    ]);
+  };
+  features_.rustfbp."0.3.34" = deps: f: updateFeatures f (rec {
+    env_logger."${deps.rustfbp."0.3.34".env_logger}".default = true;
+    libloading."${deps.rustfbp."0.3.34".libloading}".default = true;
+    rustfbp."0.3.34".default = (f.rustfbp."0.3.34".default or true);
+    threadpool."${deps.rustfbp."0.3.34".threadpool}".default = true;
+  }) [
+    (cratesIO.features_.env_logger."${deps."rustfbp"."0.3.34"."env_logger"}" deps)
+    (cratesIO.features_.libloading."${deps."rustfbp"."0.3.34"."libloading"}" deps)
+    (cratesIO.features_.threadpool."${deps."rustfbp"."0.3.34"."threadpool"}" deps)
+  ];
+
+
+  crates.storage_units."0.1.0" = deps: { features?(features_.storage_units."0.1.0" deps {}) }: buildRustCrate {
     crateName = "storage-units";
     version = "0.1.0";
     authors = [ "Vincent Hanquez <vincent.hanquez@iohk.io>" "Nicolas Di Prima <nicolas.diprima@iohk.io>" ];
-    src = "${fetchgit { url = "https://github.com/input-output-hk/rust-cardano.git"; rev = "4403a9fbd156213fcee3c0611b4f225e96de28d5"; sha256 = "06gkfzhfswjdynm1pb4d9y085q3y171abd9d4sl87y1b80mfpw9j"; }}/storage-units";
-    inherit dependencies buildDependencies features;
-  };
-  syn_0_12_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "syn";
-    version = "0.12.15";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0kkzav72yy0idzbh9zcg92dam3785xzrbxjjp8vxcis9z2zd6b13";
-    inherit dependencies buildDependencies features;
-  };
-  syn_0_15_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "syn";
-    version = "0.15.8";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "00zvgjkqwfb303x2z2f9wydbqpny6lwjhxh26g41imld2wf0l93z";
-    inherit dependencies buildDependencies features;
-  };
-  take_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "take";
-    version = "0.1.0";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "17rfh39di5n8w9aghpic2r94cndi3dr04l60nkjylmxfxr3iwlhd";
-    inherit dependencies buildDependencies features;
-  };
-  termcolor_1_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "termcolor";
-    version = "1.0.4";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0xydrjc0bxg08llcbcmkka29szdrfklk4vh6l6mdd67ajifqw1mv";
-    inherit dependencies buildDependencies features;
-  };
-  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "termion";
-    version = "1.5.1";
-    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
-    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
-    inherit dependencies buildDependencies features;
-  };
-  thread_local_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "thread_local";
-    version = "0.3.6";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "02rksdwjmz2pw9bmgbb4c0bgkbq5z6nvg510sq1s6y2j1gam0c7i";
-    inherit dependencies buildDependencies features;
-  };
-  threadpool_1_7_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "threadpool";
-    version = "1.7.1";
-    authors = [ "The Rust Project Developers" "Corey Farwell <coreyf@rwell.org>" "Stefan Schindler <dns2utf8@estada.ch>" ];
-    sha256 = "09g715plrn59kasvigqjrjqzcgqnaf6v6pia0xx03f18kvfmkq06";
-    inherit dependencies buildDependencies features;
-  };
-  time_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "time";
-    version = "0.1.40";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0wgnbjamljz6bqxsd5axc4p2mmhkqfrryj4gf2yswjaxiw5dd01m";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio";
-    version = "0.1.11";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1qzmy07idzv5klgv7yv92q0a528y8z2l97zm7daj2vxzbqp57amx";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_codec_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-codec";
-    version = "0.1.1";
-    authors = [ "Carl Lerche <me@carllerche.com>" "Bryan Burgers <bryan@burgers.io>" ];
-    sha256 = "0jc9lik540zyj4chbygg1rjh37m3zax8pd4bwcrwjmi1v56qwi4h";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_core_0_1_17_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-core";
-    version = "0.1.17";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1j6c5q3aakvb1hjx4r95xwl5ms8rp19k4qsr6v6ngwbvr6f9z6rs";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_current_thread_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-current-thread";
-    version = "0.1.3";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0nay6ar70s5xqx1hjqcpd1k3dp2n5r5smlkgjbfyyw5sjkfzf3kz";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_executor_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-executor";
-    version = "0.1.5";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "15j2ybs8w38gncgbxkvp2qsp6wl62ibi3rns0vlwggx7svmx4bf3";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_fs_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-fs";
-    version = "0.1.3";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "10xy1qzc975xp1bjfr62k4rlwm0v9p57mfzfb3yr6zpr4a7hjdbg";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_io_0_1_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-io";
-    version = "0.1.9";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1rr4y9zkxcvwww7lyaashvv295km6rabfhp7dwhwxvcy7cr4j7b3";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_proto_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-proto";
-    version = "0.1.1";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "030q9h8pn1ngm80klff5irglxxki60hf5maw0mppmmr46k773z66";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_reactor_0_1_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-reactor";
-    version = "0.1.6";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0xjy2b4pfyiyhb8whm0b1xxa3n6v5w8hl0p0cjqqrasci6v53n3s";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_service_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-service";
-    version = "0.1.0";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0c85wm5qz9fabg0k6k763j89m43n6max72d3a8sxcs940id6qmih";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_tcp_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-tcp";
-    version = "0.1.2";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0yvfwybqnyca24aj9as8rgydamjq0wrd9xbxxkjcasvsdmsv6z1d";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-threadpool";
-    version = "0.1.7";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "18i3fx3kzqwhaakg17q1kxh75l4m728zzb1jcqh5gpaf4ff5gydd";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_timer_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-timer";
-    version = "0.2.7";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0xajkivlrmg7ygc46jh24bv35vpw51kfm95b6bhnpifl5g04cc1f";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_udp_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-udp";
-    version = "0.1.2";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0wl30g8i66pylg1xgaqa5vwjg4hw7m714r6qx7jz0a42dc11ij48";
-    inherit dependencies buildDependencies features;
-  };
-  tokio_uds_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "tokio-uds";
-    version = "0.2.2";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1amm71fbrq10dlr64b0ayrwmm52vh8md3m86515kk0hld0444rfp";
-    inherit dependencies buildDependencies features;
-  };
-  try_lock_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "try-lock";
-    version = "0.1.0";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "0kfrqrb2xkjig54s3qfy80dpldknr19p3rmp0n82yk5929j879k3";
-    inherit dependencies buildDependencies features;
-  };
-  ucd_util_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ucd-util";
-    version = "0.1.1";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
-    inherit dependencies buildDependencies features;
-  };
-  unicase_2_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicase";
-    version = "2.1.0";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "1zzn16hh8fdx5pnbbnl32q8m2mh4vpd1jm9pdcv969ik83dw4byp";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  unicode_xid_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unicode-xid";
-    version = "0.1.0";
-    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
-    sha256 = "05wdmwlfzxhq3nhsxn6wx4q8dhxzzfb9szsz6wiw092m1rjj01zj";
-    inherit dependencies buildDependencies features;
-  };
-  unreachable_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "unreachable";
-    version = "1.0.0";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
-    inherit dependencies buildDependencies features;
-  };
-  utf8_ranges_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "utf8-ranges";
-    version = "1.0.1";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1s56ihd2c8ba6191078wivvv59247szaiszrh8x2rxqfsxlfrnpp";
-    inherit dependencies buildDependencies features;
-  };
-  version_check_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "version_check";
-    version = "0.1.5";
-    authors = [ "Sergio Benitez <sb@sergio.bz>" ];
-    sha256 = "1yrx9xblmwbafw2firxyqbj8f771kkzfd24n3q7xgwiqyhi0y8qd";
-    inherit dependencies buildDependencies features;
-  };
-  void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "void";
-    version = "1.0.2";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
-    inherit dependencies buildDependencies features;
-  };
-  want_0_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "want";
-    version = "0.0.4";
-    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
-    sha256 = "1l1qy4pvg5q71nrzfjldw9xzqhhgicj4slly1bal89hr2aaibpy0";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.3.6";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1d9jfp4cjd82sr1q4dgdlrkvm33zhhav9d7ihr0nivqbncr059m4";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_i686_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-i686-pc-windows-gnu";
-    version = "0.4.0";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_util_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-util";
-    version = "0.1.1";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "10madanla73aagbklx6y73r2g2vwq9w8a0qcghbbbpn9vfr6a95f";
-    inherit dependencies buildDependencies features;
-  };
-  winapi_x86_64_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "winapi-x86_64-pc-windows-gnu";
-    version = "0.4.0";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  wincolor_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "wincolor";
-    version = "1.0.1";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0gr7v4krmjba7yq16071rfacz42qbapas7mxk5nphjwb042a8gvz";
-    inherit dependencies buildDependencies features;
-  };
-  ws2_32_sys_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "ws2_32-sys";
-    version = "0.2.1";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1zpy9d9wk11sj17fczfngcj28w4xxjs3b4n036yzpy38dxp4f7kc";
-    libName = "ws2_32";
-    build = "build.rs";
-    inherit dependencies buildDependencies features;
-  };
-  yaml_rust_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-    crateName = "yaml-rust";
-    version = "0.4.2";
-    authors = [ "Yuheng Chen <yuhengchen@sensetime.com>" ];
-    sha256 = "1bxc5hhky8rk5r8hrv4ynppsfkivq07jbj458i3h8zkhc1ca33lk";
-    inherit dependencies buildDependencies features;
-  };
-  aho_corasick_0_6_8 = { features?(aho_corasick_0_6_8_features {}) }: aho_corasick_0_6_8_ {
-    dependencies = mapFeatures features ([ memchr_2_1_0 ]);
-  };
-  aho_corasick_0_6_8_features = f: updateFeatures f (rec {
-    aho_corasick_0_6_8.default = (f.aho_corasick_0_6_8.default or true);
-    memchr_2_1_0.default = true;
-  }) [ memchr_2_1_0_features ];
-  all_crates_1_1_1 = { features?(all_crates_1_1_1_features {}) }: all_crates_1_1_1_ {
-    dependencies = mapFeatures features ([ cardano_0_1_0 cardano_storage_0_1_0 env_logger_0_5_13 exe_common_0_1_0 generate_msg_0_1_0 log_0_4_5 nom_3_2_1 protocol_0_1_0 rustfbp_0_3_34 storage_units_0_1_0 ]);
-  };
-  all_crates_1_1_1_features = f: updateFeatures f (rec {
-    all_crates_1_1_1.default = (f.all_crates_1_1_1.default or true);
-    cardano_0_1_0.default = true;
-    cardano_storage_0_1_0.default = true;
-    env_logger_0_5_13.default = true;
-    exe_common_0_1_0.default = true;
-    generate_msg_0_1_0.default = true;
-    log_0_4_5.default = true;
-    nom_3_2_1.default = true;
-    protocol_0_1_0.default = true;
-    rustfbp_0_3_34.default = true;
-    storage_units_0_1_0.default = true;
-  }) [ cardano_0_1_0_features cardano_storage_0_1_0_features env_logger_0_5_13_features exe_common_0_1_0_features generate_msg_0_1_0_features log_0_4_5_features nom_3_2_1_features protocol_0_1_0_features rustfbp_0_3_34_features storage_units_0_1_0_features ];
-  arrayvec_0_4_7 = { features?(arrayvec_0_4_7_features {}) }: arrayvec_0_4_7_ {
-    dependencies = mapFeatures features ([ nodrop_0_1_12 ]);
-    features = mkFeatures (features.arrayvec_0_4_7 or {});
-  };
-  arrayvec_0_4_7_features = f: updateFeatures f (rec {
-    arrayvec_0_4_7.default = (f.arrayvec_0_4_7.default or true);
-    arrayvec_0_4_7.serde =
-      (f.arrayvec_0_4_7.serde or false) ||
-      (f.arrayvec_0_4_7.serde-1 or false) ||
-      (arrayvec_0_4_7.serde-1 or false);
-    arrayvec_0_4_7.std =
-      (f.arrayvec_0_4_7.std or false) ||
-      (f.arrayvec_0_4_7.default or false) ||
-      (arrayvec_0_4_7.default or false);
-    nodrop_0_1_12.default = (f.nodrop_0_1_12.default or false);
-  }) [ nodrop_0_1_12_features ];
-  atty_0_2_11 = { features?(atty_0_2_11_features {}) }: atty_0_2_11_ {
-    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_43 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-  };
-  atty_0_2_11_features = f: updateFeatures f (rec {
-    atty_0_2_11.default = (f.atty_0_2_11.default or true);
-    libc_0_2_43.default = (f.libc_0_2_43.default or false);
-    termion_1_5_1.default = true;
-    winapi_0_3_6.consoleapi = true;
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.minwinbase = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.processenv = true;
-    winapi_0_3_6.winbase = true;
-  }) [ termion_1_5_1_features libc_0_2_43_features winapi_0_3_6_features ];
-  base64_0_9_3 = { features?(base64_0_9_3_features {}) }: base64_0_9_3_ {
-    dependencies = mapFeatures features ([ byteorder_1_2_6 safemem_0_3_0 ]);
-  };
-  base64_0_9_3_features = f: updateFeatures f (rec {
-    base64_0_9_3.default = (f.base64_0_9_3.default or true);
-    byteorder_1_2_6.default = true;
-    safemem_0_3_0.default = true;
-  }) [ byteorder_1_2_6_features safemem_0_3_0_features ];
-  bitflags_1_0_4 = { features?(bitflags_1_0_4_features {}) }: bitflags_1_0_4_ {
-    features = mkFeatures (features.bitflags_1_0_4 or {});
-  };
-  bitflags_1_0_4_features = f: updateFeatures f (rec {
-    bitflags_1_0_4.default = (f.bitflags_1_0_4.default or true);
-  }) [];
-  byteorder_1_2_6 = { features?(byteorder_1_2_6_features {}) }: byteorder_1_2_6_ {
-    features = mkFeatures (features.byteorder_1_2_6 or {});
-  };
-  byteorder_1_2_6_features = f: updateFeatures f (rec {
-    byteorder_1_2_6.default = (f.byteorder_1_2_6.default or true);
-    byteorder_1_2_6.std =
-      (f.byteorder_1_2_6.std or false) ||
-      (f.byteorder_1_2_6.default or false) ||
-      (byteorder_1_2_6.default or false);
-  }) [];
-  bytes_0_4_10 = { features?(bytes_0_4_10_features {}) }: bytes_0_4_10_ {
-    dependencies = mapFeatures features ([ byteorder_1_2_6 iovec_0_1_2 ]);
-    features = mkFeatures (features.bytes_0_4_10 or {});
-  };
-  bytes_0_4_10_features = f: updateFeatures f (rec {
-    byteorder_1_2_6.default = true;
-    byteorder_1_2_6.i128 =
-      (f.byteorder_1_2_6.i128 or false) ||
-      (bytes_0_4_10.i128 or false) ||
-      (f.bytes_0_4_10.i128 or false);
-    bytes_0_4_10.default = (f.bytes_0_4_10.default or true);
-    iovec_0_1_2.default = true;
-  }) [ byteorder_1_2_6_features iovec_0_1_2_features ];
-  cardano_0_1_0 = { features?(cardano_0_1_0_features {}) }: cardano_0_1_0_ {
-    dependencies = mapFeatures features ([ cbor_event_1_0_0 cryptoxide_0_1_0 ]
-      ++ (if features.cardano_0_1_0.serde or false then [ serde_1_0_79 ] else [])
-      ++ (if features.cardano_0_1_0.serde_derive or false then [ serde_derive_1_0_79 ] else []));
-    features = mkFeatures (features.cardano_0_1_0 or {});
-  };
-  cardano_0_1_0_features = f: updateFeatures f (rec {
-    cardano_0_1_0.default = (f.cardano_0_1_0.default or true);
-    cardano_0_1_0.serde =
-      (f.cardano_0_1_0.serde or false) ||
-      (f.cardano_0_1_0.generic-serialization or false) ||
-      (cardano_0_1_0.generic-serialization or false);
-    cardano_0_1_0.serde_derive =
-      (f.cardano_0_1_0.serde_derive or false) ||
-      (f.cardano_0_1_0.generic-serialization or false) ||
-      (cardano_0_1_0.generic-serialization or false);
-    cbor_event_1_0_0.default = true;
-    cryptoxide_0_1_0.default = true;
-    serde_1_0_79.default = true;
-    serde_derive_1_0_79.default = true;
-  }) [ cbor_event_1_0_0_features cryptoxide_0_1_0_features serde_1_0_79_features serde_derive_1_0_79_features ];
-  cardano_storage_0_1_0 = { features?(cardano_storage_0_1_0_features {}) }: cardano_storage_0_1_0_ {
-    dependencies = mapFeatures features ([ cardano_0_1_0 cbor_event_1_0_0 log_0_4_5 rand_0_4_3 storage_units_0_1_0 ]);
-  };
-  cardano_storage_0_1_0_features = f: updateFeatures f (rec {
-    cardano_0_1_0.default = true;
-    cardano_storage_0_1_0.default = (f.cardano_storage_0_1_0.default or true);
-    cbor_event_1_0_0.default = true;
-    log_0_4_5.default = true;
-    rand_0_4_3.default = true;
-    storage_units_0_1_0.default = true;
-  }) [ cardano_0_1_0_features cbor_event_1_0_0_features log_0_4_5_features rand_0_4_3_features storage_units_0_1_0_features ];
-  cbor_event_1_0_0 = { features?(cbor_event_1_0_0_features {}) }: cbor_event_1_0_0_ {};
-  cbor_event_1_0_0_features = f: updateFeatures f (rec {
-    cbor_event_1_0_0.default = (f.cbor_event_1_0_0.default or true);
-  }) [];
-  cc_1_0_25 = { features?(cc_1_0_25_features {}) }: cc_1_0_25_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.cc_1_0_25 or {});
-  };
-  cc_1_0_25_features = f: updateFeatures f (rec {
-    cc_1_0_25.default = (f.cc_1_0_25.default or true);
-    cc_1_0_25.rayon =
-      (f.cc_1_0_25.rayon or false) ||
-      (f.cc_1_0_25.parallel or false) ||
-      (cc_1_0_25.parallel or false);
-  }) [];
-  cfg_if_0_1_5 = { features?(cfg_if_0_1_5_features {}) }: cfg_if_0_1_5_ {};
-  cfg_if_0_1_5_features = f: updateFeatures f (rec {
-    cfg_if_0_1_5.default = (f.cfg_if_0_1_5.default or true);
-  }) [];
-  cloudabi_0_0_3 = { features?(cloudabi_0_0_3_features {}) }: cloudabi_0_0_3_ {
-    dependencies = mapFeatures features ([ ]
-      ++ (if features.cloudabi_0_0_3.bitflags or false then [ bitflags_1_0_4 ] else []));
-    features = mkFeatures (features.cloudabi_0_0_3 or {});
-  };
-  cloudabi_0_0_3_features = f: updateFeatures f (rec {
-    bitflags_1_0_4.default = true;
-    cloudabi_0_0_3.bitflags =
-      (f.cloudabi_0_0_3.bitflags or false) ||
-      (f.cloudabi_0_0_3.default or false) ||
-      (cloudabi_0_0_3.default or false);
-    cloudabi_0_0_3.default = (f.cloudabi_0_0_3.default or true);
-  }) [ bitflags_1_0_4_features ];
-  crossbeam_deque_0_6_1 = { features?(crossbeam_deque_0_6_1_features {}) }: crossbeam_deque_0_6_1_ {
-    dependencies = mapFeatures features ([ crossbeam_epoch_0_5_2 crossbeam_utils_0_5_0 ]);
-  };
-  crossbeam_deque_0_6_1_features = f: updateFeatures f (rec {
-    crossbeam_deque_0_6_1.default = (f.crossbeam_deque_0_6_1.default or true);
-    crossbeam_epoch_0_5_2.default = true;
-    crossbeam_utils_0_5_0.default = true;
-  }) [ crossbeam_epoch_0_5_2_features crossbeam_utils_0_5_0_features ];
-  crossbeam_epoch_0_5_2 = { features?(crossbeam_epoch_0_5_2_features {}) }: crossbeam_epoch_0_5_2_ {
-    dependencies = mapFeatures features ([ arrayvec_0_4_7 cfg_if_0_1_5 crossbeam_utils_0_5_0 memoffset_0_2_1 scopeguard_0_3_3 ]
-      ++ (if features.crossbeam_epoch_0_5_2.lazy_static or false then [ lazy_static_1_1_0 ] else []));
-    features = mkFeatures (features.crossbeam_epoch_0_5_2 or {});
-  };
-  crossbeam_epoch_0_5_2_features = f: updateFeatures f (rec {
-    arrayvec_0_4_7.default = (f.arrayvec_0_4_7.default or false);
-    arrayvec_0_4_7.use_union =
-      (f.arrayvec_0_4_7.use_union or false) ||
-      (crossbeam_epoch_0_5_2.nightly or false) ||
-      (f.crossbeam_epoch_0_5_2.nightly or false);
-    cfg_if_0_1_5.default = true;
-    crossbeam_epoch_0_5_2.default = (f.crossbeam_epoch_0_5_2.default or true);
-    crossbeam_epoch_0_5_2.lazy_static =
-      (f.crossbeam_epoch_0_5_2.lazy_static or false) ||
-      (f.crossbeam_epoch_0_5_2.use_std or false) ||
-      (crossbeam_epoch_0_5_2.use_std or false);
-    crossbeam_epoch_0_5_2.use_std =
-      (f.crossbeam_epoch_0_5_2.use_std or false) ||
-      (f.crossbeam_epoch_0_5_2.default or false) ||
-      (crossbeam_epoch_0_5_2.default or false);
-    crossbeam_utils_0_5_0.default = (f.crossbeam_utils_0_5_0.default or false);
-    crossbeam_utils_0_5_0.use_std =
-      (f.crossbeam_utils_0_5_0.use_std or false) ||
-      (crossbeam_epoch_0_5_2.use_std or false) ||
-      (f.crossbeam_epoch_0_5_2.use_std or false);
-    lazy_static_1_1_0.default = true;
-    memoffset_0_2_1.default = true;
-    scopeguard_0_3_3.default = (f.scopeguard_0_3_3.default or false);
-  }) [ arrayvec_0_4_7_features cfg_if_0_1_5_features crossbeam_utils_0_5_0_features lazy_static_1_1_0_features memoffset_0_2_1_features scopeguard_0_3_3_features ];
-  crossbeam_utils_0_5_0 = { features?(crossbeam_utils_0_5_0_features {}) }: crossbeam_utils_0_5_0_ {
-    features = mkFeatures (features.crossbeam_utils_0_5_0 or {});
-  };
-  crossbeam_utils_0_5_0_features = f: updateFeatures f (rec {
-    crossbeam_utils_0_5_0.default = (f.crossbeam_utils_0_5_0.default or true);
-    crossbeam_utils_0_5_0.use_std =
-      (f.crossbeam_utils_0_5_0.use_std or false) ||
-      (f.crossbeam_utils_0_5_0.default or false) ||
-      (crossbeam_utils_0_5_0.default or false);
-  }) [];
-  cryptoxide_0_1_0 = { features?(cryptoxide_0_1_0_features {}) }: cryptoxide_0_1_0_ {};
-  cryptoxide_0_1_0_features = f: updateFeatures f (rec {
-    cryptoxide_0_1_0.default = (f.cryptoxide_0_1_0.default or true);
-  }) [];
-  dtoa_0_4_3 = { features?(dtoa_0_4_3_features {}) }: dtoa_0_4_3_ {};
-  dtoa_0_4_3_features = f: updateFeatures f (rec {
-    dtoa_0_4_3.default = (f.dtoa_0_4_3.default or true);
-  }) [];
-  env_logger_0_5_13 = { features?(env_logger_0_5_13_features {}) }: env_logger_0_5_13_ {
-    dependencies = mapFeatures features ([ atty_0_2_11 humantime_1_1_1 log_0_4_5 termcolor_1_0_4 ]
-      ++ (if features.env_logger_0_5_13.regex or false then [ regex_1_0_5 ] else []));
-    features = mkFeatures (features.env_logger_0_5_13 or {});
-  };
-  env_logger_0_5_13_features = f: updateFeatures f (rec {
-    atty_0_2_11.default = true;
-    env_logger_0_5_13.default = (f.env_logger_0_5_13.default or true);
-    env_logger_0_5_13.regex =
-      (f.env_logger_0_5_13.regex or false) ||
-      (f.env_logger_0_5_13.default or false) ||
-      (env_logger_0_5_13.default or false);
-    humantime_1_1_1.default = true;
-    log_0_4_5.default = true;
-    log_0_4_5.std = true;
-    regex_1_0_5.default = true;
-    termcolor_1_0_4.default = true;
-  }) [ atty_0_2_11_features humantime_1_1_1_features log_0_4_5_features regex_1_0_5_features termcolor_1_0_4_features ];
-  exe_common_0_1_0 = { features?(exe_common_0_1_0_features {}) }: exe_common_0_1_0_ {
-    dependencies = mapFeatures features ([ cardano_0_1_0 cardano_storage_0_1_0 cbor_event_1_0_0 futures_0_1_24 hyper_0_11_27 log_0_4_5 protocol_0_1_0 rand_0_4_3 serde_1_0_79 serde_derive_1_0_79 serde_yaml_0_7_5 storage_units_0_1_0 tokio_core_0_1_17 ]);
-  };
-  exe_common_0_1_0_features = f: updateFeatures f (rec {
-    cardano_0_1_0.default = true;
-    cardano_0_1_0.generic-serialization = true;
-    cardano_storage_0_1_0.default = true;
-    cbor_event_1_0_0.default = true;
-    exe_common_0_1_0.default = (f.exe_common_0_1_0.default or true);
-    futures_0_1_24.default = true;
-    hyper_0_11_27.default = true;
-    log_0_4_5.default = true;
-    protocol_0_1_0.default = true;
-    rand_0_4_3.default = true;
-    serde_1_0_79.default = true;
-    serde_derive_1_0_79.default = true;
-    serde_yaml_0_7_5.default = true;
-    storage_units_0_1_0.default = true;
-    tokio_core_0_1_17.default = true;
-  }) [ cardano_0_1_0_features cardano_storage_0_1_0_features cbor_event_1_0_0_features futures_0_1_24_features hyper_0_11_27_features log_0_4_5_features protocol_0_1_0_features rand_0_4_3_features serde_1_0_79_features serde_derive_1_0_79_features serde_yaml_0_7_5_features storage_units_0_1_0_features tokio_core_0_1_17_features ];
-  fuchsia_zircon_0_3_3 = { features?(fuchsia_zircon_0_3_3_features {}) }: fuchsia_zircon_0_3_3_ {
-    dependencies = mapFeatures features ([ bitflags_1_0_4 fuchsia_zircon_sys_0_3_3 ]);
-  };
-  fuchsia_zircon_0_3_3_features = f: updateFeatures f (rec {
-    bitflags_1_0_4.default = true;
-    fuchsia_zircon_0_3_3.default = (f.fuchsia_zircon_0_3_3.default or true);
-    fuchsia_zircon_sys_0_3_3.default = true;
-  }) [ bitflags_1_0_4_features fuchsia_zircon_sys_0_3_3_features ];
-  fuchsia_zircon_sys_0_3_3 = { features?(fuchsia_zircon_sys_0_3_3_features {}) }: fuchsia_zircon_sys_0_3_3_ {};
-  fuchsia_zircon_sys_0_3_3_features = f: updateFeatures f (rec {
-    fuchsia_zircon_sys_0_3_3.default = (f.fuchsia_zircon_sys_0_3_3.default or true);
-  }) [];
-  futures_0_1_24 = { features?(futures_0_1_24_features {}) }: futures_0_1_24_ {
-    features = mkFeatures (features.futures_0_1_24 or {});
-  };
-  futures_0_1_24_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = (f.futures_0_1_24.default or true);
-    futures_0_1_24.use_std =
-      (f.futures_0_1_24.use_std or false) ||
-      (f.futures_0_1_24.default or false) ||
-      (futures_0_1_24.default or false);
-    futures_0_1_24.with-deprecated =
-      (f.futures_0_1_24.with-deprecated or false) ||
-      (f.futures_0_1_24.default or false) ||
-      (futures_0_1_24.default or false);
-  }) [];
-  futures_cpupool_0_1_8 = { features?(futures_cpupool_0_1_8_features {}) }: futures_cpupool_0_1_8_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 num_cpus_1_8_0 ]);
-    features = mkFeatures (features.futures_cpupool_0_1_8 or {});
-  };
-  futures_cpupool_0_1_8_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = (f.futures_0_1_24.default or false);
-    futures_0_1_24.use_std = true;
-    futures_0_1_24.with-deprecated =
-      (f.futures_0_1_24.with-deprecated or false) ||
-      (futures_cpupool_0_1_8.with-deprecated or false) ||
-      (f.futures_cpupool_0_1_8.with-deprecated or false);
-    futures_cpupool_0_1_8.default = (f.futures_cpupool_0_1_8.default or true);
-    futures_cpupool_0_1_8.with-deprecated =
-      (f.futures_cpupool_0_1_8.with-deprecated or false) ||
-      (f.futures_cpupool_0_1_8.default or false) ||
-      (futures_cpupool_0_1_8.default or false);
-    num_cpus_1_8_0.default = true;
-  }) [ futures_0_1_24_features num_cpus_1_8_0_features ];
-  generate_msg_0_1_0 = { features?(generate_msg_0_1_0_features {}) }: generate_msg_0_1_0_ {
-    dependencies = mapFeatures features ([ syn_0_12_15 ]);
-  };
-  generate_msg_0_1_0_features = f: updateFeatures f (rec {
-    generate_msg_0_1_0.default = (f.generate_msg_0_1_0.default or true);
-    syn_0_12_15.default = true;
-    syn_0_12_15.full = true;
-  }) [ syn_0_12_15_features ];
-  httparse_1_3_3 = { features?(httparse_1_3_3_features {}) }: httparse_1_3_3_ {
-    features = mkFeatures (features.httparse_1_3_3 or {});
-  };
-  httparse_1_3_3_features = f: updateFeatures f (rec {
-    httparse_1_3_3.default = (f.httparse_1_3_3.default or true);
-    httparse_1_3_3.std =
-      (f.httparse_1_3_3.std or false) ||
-      (f.httparse_1_3_3.default or false) ||
-      (httparse_1_3_3.default or false);
-  }) [];
-  humantime_1_1_1 = { features?(humantime_1_1_1_features {}) }: humantime_1_1_1_ {
-    dependencies = mapFeatures features ([ quick_error_1_2_2 ]);
-  };
-  humantime_1_1_1_features = f: updateFeatures f (rec {
-    humantime_1_1_1.default = (f.humantime_1_1_1.default or true);
-    quick_error_1_2_2.default = true;
-  }) [ quick_error_1_2_2_features ];
-  hyper_0_11_27 = { features?(hyper_0_11_27_features {}) }: hyper_0_11_27_ {
-    dependencies = mapFeatures features ([ base64_0_9_3 bytes_0_4_10 futures_0_1_24 futures_cpupool_0_1_8 httparse_1_3_3 iovec_0_1_2 language_tags_0_2_2 log_0_4_5 mime_0_3_9 net2_0_2_33 percent_encoding_1_0_1 relay_0_1_1 time_0_1_40 tokio_core_0_1_17 tokio_io_0_1_9 tokio_service_0_1_0 unicase_2_1_0 want_0_0_4 ]
-      ++ (if features.hyper_0_11_27.tokio-proto or false then [ tokio_proto_0_1_1 ] else []));
-    features = mkFeatures (features.hyper_0_11_27 or {});
-  };
-  hyper_0_11_27_features = f: updateFeatures f (rec {
-    base64_0_9_3.default = true;
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    futures_cpupool_0_1_8.default = true;
-    httparse_1_3_3.default = true;
-    hyper_0_11_27.default = (f.hyper_0_11_27.default or true);
-    hyper_0_11_27.http =
-      (f.hyper_0_11_27.http or false) ||
-      (f.hyper_0_11_27.compat or false) ||
-      (hyper_0_11_27.compat or false);
-    hyper_0_11_27.server-proto =
-      (f.hyper_0_11_27.server-proto or false) ||
-      (f.hyper_0_11_27.default or false) ||
-      (hyper_0_11_27.default or false);
-    hyper_0_11_27.tokio-proto =
-      (f.hyper_0_11_27.tokio-proto or false) ||
-      (f.hyper_0_11_27.server-proto or false) ||
-      (hyper_0_11_27.server-proto or false);
-    iovec_0_1_2.default = true;
-    language_tags_0_2_2.default = true;
-    log_0_4_5.default = true;
-    mime_0_3_9.default = true;
-    net2_0_2_33.default = true;
-    percent_encoding_1_0_1.default = true;
-    relay_0_1_1.default = true;
-    time_0_1_40.default = true;
-    tokio_core_0_1_17.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_proto_0_1_1.default = true;
-    tokio_service_0_1_0.default = true;
-    unicase_2_1_0.default = true;
-    want_0_0_4.default = true;
-  }) [ base64_0_9_3_features bytes_0_4_10_features futures_0_1_24_features futures_cpupool_0_1_8_features httparse_1_3_3_features iovec_0_1_2_features language_tags_0_2_2_features log_0_4_5_features mime_0_3_9_features net2_0_2_33_features percent_encoding_1_0_1_features relay_0_1_1_features time_0_1_40_features tokio_core_0_1_17_features tokio_io_0_1_9_features tokio_proto_0_1_1_features tokio_service_0_1_0_features unicase_2_1_0_features want_0_0_4_features ];
-  iovec_0_1_2 = { features?(iovec_0_1_2_features {}) }: iovec_0_1_2_ {
-    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_43 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
-  };
-  iovec_0_1_2_features = f: updateFeatures f (rec {
-    iovec_0_1_2.default = (f.iovec_0_1_2.default or true);
-    libc_0_2_43.default = true;
-    winapi_0_2_8.default = true;
-  }) [ libc_0_2_43_features winapi_0_2_8_features ];
-  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
-    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
-    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
-  };
-  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
-    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
-    winapi_0_2_8.default = true;
-    winapi_build_0_1_1.default = true;
-  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
-  language_tags_0_2_2 = { features?(language_tags_0_2_2_features {}) }: language_tags_0_2_2_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.language_tags_0_2_2 or {});
-  };
-  language_tags_0_2_2_features = f: updateFeatures f (rec {
-    language_tags_0_2_2.default = (f.language_tags_0_2_2.default or true);
-    language_tags_0_2_2.heapsize =
-      (f.language_tags_0_2_2.heapsize or false) ||
-      (f.language_tags_0_2_2.heap_size or false) ||
-      (language_tags_0_2_2.heap_size or false);
-    language_tags_0_2_2.heapsize_plugin =
-      (f.language_tags_0_2_2.heapsize_plugin or false) ||
-      (f.language_tags_0_2_2.heap_size or false) ||
-      (language_tags_0_2_2.heap_size or false);
-  }) [];
-  lazy_static_1_1_0 = { features?(lazy_static_1_1_0_features {}) }: lazy_static_1_1_0_ {
-    dependencies = mapFeatures features ([]);
-    buildDependencies = mapFeatures features ([ version_check_0_1_5 ]);
-    features = mkFeatures (features.lazy_static_1_1_0 or {});
-  };
-  lazy_static_1_1_0_features = f: updateFeatures f (rec {
-    lazy_static_1_1_0.default = (f.lazy_static_1_1_0.default or true);
-    lazy_static_1_1_0.nightly =
-      (f.lazy_static_1_1_0.nightly or false) ||
-      (f.lazy_static_1_1_0.spin_no_std or false) ||
-      (lazy_static_1_1_0.spin_no_std or false);
-    lazy_static_1_1_0.spin =
-      (f.lazy_static_1_1_0.spin or false) ||
-      (f.lazy_static_1_1_0.spin_no_std or false) ||
-      (lazy_static_1_1_0.spin_no_std or false);
-    version_check_0_1_5.default = true;
-  }) [ version_check_0_1_5_features ];
-  lazycell_1_2_0 = { features?(lazycell_1_2_0_features {}) }: lazycell_1_2_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.lazycell_1_2_0 or {});
-  };
-  lazycell_1_2_0_features = f: updateFeatures f (rec {
-    lazycell_1_2_0.clippy =
-      (f.lazycell_1_2_0.clippy or false) ||
-      (f.lazycell_1_2_0.nightly-testing or false) ||
-      (lazycell_1_2_0.nightly-testing or false);
-    lazycell_1_2_0.default = (f.lazycell_1_2_0.default or true);
-    lazycell_1_2_0.nightly =
-      (f.lazycell_1_2_0.nightly or false) ||
-      (f.lazycell_1_2_0.nightly-testing or false) ||
-      (lazycell_1_2_0.nightly-testing or false);
-  }) [];
-  libc_0_2_43 = { features?(libc_0_2_43_features {}) }: libc_0_2_43_ {
-    features = mkFeatures (features.libc_0_2_43 or {});
-  };
-  libc_0_2_43_features = f: updateFeatures f (rec {
-    libc_0_2_43.default = (f.libc_0_2_43.default or true);
-    libc_0_2_43.use_std =
-      (f.libc_0_2_43.use_std or false) ||
-      (f.libc_0_2_43.default or false) ||
-      (libc_0_2_43.default or false);
-  }) [];
-  libloading_0_5_0 = { features?(libloading_0_5_0_features {}) }: libloading_0_5_0_ {
-    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-    buildDependencies = mapFeatures features ([ cc_1_0_25 ]);
-  };
-  libloading_0_5_0_features = f: updateFeatures f (rec {
-    cc_1_0_25.default = true;
-    libloading_0_5_0.default = (f.libloading_0_5_0.default or true);
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.errhandlingapi = true;
-    winapi_0_3_6.libloaderapi = true;
-    winapi_0_3_6.winerror = true;
-  }) [ cc_1_0_25_features winapi_0_3_6_features ];
-  linked_hash_map_0_5_1 = { features?(linked_hash_map_0_5_1_features {}) }: linked_hash_map_0_5_1_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.linked_hash_map_0_5_1 or {});
-  };
-  linked_hash_map_0_5_1_features = f: updateFeatures f (rec {
-    linked_hash_map_0_5_1.default = (f.linked_hash_map_0_5_1.default or true);
-    linked_hash_map_0_5_1.heapsize =
-      (f.linked_hash_map_0_5_1.heapsize or false) ||
-      (f.linked_hash_map_0_5_1.heapsize_impl or false) ||
-      (linked_hash_map_0_5_1.heapsize_impl or false);
-    linked_hash_map_0_5_1.serde =
-      (f.linked_hash_map_0_5_1.serde or false) ||
-      (f.linked_hash_map_0_5_1.serde_impl or false) ||
-      (linked_hash_map_0_5_1.serde_impl or false);
-    linked_hash_map_0_5_1.serde_test =
-      (f.linked_hash_map_0_5_1.serde_test or false) ||
-      (f.linked_hash_map_0_5_1.serde_impl or false) ||
-      (linked_hash_map_0_5_1.serde_impl or false);
-  }) [];
-  lock_api_0_1_4 = { features?(lock_api_0_1_4_features {}) }: lock_api_0_1_4_ {
-    dependencies = mapFeatures features ([ scopeguard_0_3_3 ]
-      ++ (if features.lock_api_0_1_4.owning_ref or false then [ owning_ref_0_3_3 ] else []));
-    features = mkFeatures (features.lock_api_0_1_4 or {});
-  };
-  lock_api_0_1_4_features = f: updateFeatures f (rec {
-    lock_api_0_1_4.default = (f.lock_api_0_1_4.default or true);
-    owning_ref_0_3_3.default = true;
-    scopeguard_0_3_3.default = (f.scopeguard_0_3_3.default or false);
-  }) [ owning_ref_0_3_3_features scopeguard_0_3_3_features ];
-  log_0_3_9 = { features?(log_0_3_9_features {}) }: log_0_3_9_ {
-    dependencies = mapFeatures features ([ log_0_4_5 ]);
-    features = mkFeatures (features.log_0_3_9 or {});
-  };
-  log_0_3_9_features = f: updateFeatures f (rec {
-    log_0_3_9.default = (f.log_0_3_9.default or true);
-    log_0_3_9.use_std =
-      (f.log_0_3_9.use_std or false) ||
-      (f.log_0_3_9.default or false) ||
-      (log_0_3_9.default or false);
-    log_0_4_5.default = true;
-    log_0_4_5.max_level_debug =
-      (f.log_0_4_5.max_level_debug or false) ||
-      (log_0_3_9.max_level_debug or false) ||
-      (f.log_0_3_9.max_level_debug or false);
-    log_0_4_5.max_level_error =
-      (f.log_0_4_5.max_level_error or false) ||
-      (log_0_3_9.max_level_error or false) ||
-      (f.log_0_3_9.max_level_error or false);
-    log_0_4_5.max_level_info =
-      (f.log_0_4_5.max_level_info or false) ||
-      (log_0_3_9.max_level_info or false) ||
-      (f.log_0_3_9.max_level_info or false);
-    log_0_4_5.max_level_off =
-      (f.log_0_4_5.max_level_off or false) ||
-      (log_0_3_9.max_level_off or false) ||
-      (f.log_0_3_9.max_level_off or false);
-    log_0_4_5.max_level_trace =
-      (f.log_0_4_5.max_level_trace or false) ||
-      (log_0_3_9.max_level_trace or false) ||
-      (f.log_0_3_9.max_level_trace or false);
-    log_0_4_5.max_level_warn =
-      (f.log_0_4_5.max_level_warn or false) ||
-      (log_0_3_9.max_level_warn or false) ||
-      (f.log_0_3_9.max_level_warn or false);
-    log_0_4_5.release_max_level_debug =
-      (f.log_0_4_5.release_max_level_debug or false) ||
-      (log_0_3_9.release_max_level_debug or false) ||
-      (f.log_0_3_9.release_max_level_debug or false);
-    log_0_4_5.release_max_level_error =
-      (f.log_0_4_5.release_max_level_error or false) ||
-      (log_0_3_9.release_max_level_error or false) ||
-      (f.log_0_3_9.release_max_level_error or false);
-    log_0_4_5.release_max_level_info =
-      (f.log_0_4_5.release_max_level_info or false) ||
-      (log_0_3_9.release_max_level_info or false) ||
-      (f.log_0_3_9.release_max_level_info or false);
-    log_0_4_5.release_max_level_off =
-      (f.log_0_4_5.release_max_level_off or false) ||
-      (log_0_3_9.release_max_level_off or false) ||
-      (f.log_0_3_9.release_max_level_off or false);
-    log_0_4_5.release_max_level_trace =
-      (f.log_0_4_5.release_max_level_trace or false) ||
-      (log_0_3_9.release_max_level_trace or false) ||
-      (f.log_0_3_9.release_max_level_trace or false);
-    log_0_4_5.release_max_level_warn =
-      (f.log_0_4_5.release_max_level_warn or false) ||
-      (log_0_3_9.release_max_level_warn or false) ||
-      (f.log_0_3_9.release_max_level_warn or false);
-    log_0_4_5.std =
-      (f.log_0_4_5.std or false) ||
-      (log_0_3_9.use_std or false) ||
-      (f.log_0_3_9.use_std or false);
-  }) [ log_0_4_5_features ];
-  log_0_4_5 = { features?(log_0_4_5_features {}) }: log_0_4_5_ {
-    dependencies = mapFeatures features ([ cfg_if_0_1_5 ]);
-    features = mkFeatures (features.log_0_4_5 or {});
-  };
-  log_0_4_5_features = f: updateFeatures f (rec {
-    cfg_if_0_1_5.default = true;
-    log_0_4_5.default = (f.log_0_4_5.default or true);
-  }) [ cfg_if_0_1_5_features ];
-  memchr_1_0_2 = { features?(memchr_1_0_2_features {}) }: memchr_1_0_2_ {
-    dependencies = mapFeatures features ([ ]
-      ++ (if features.memchr_1_0_2.libc or false then [ libc_0_2_43 ] else []));
-    features = mkFeatures (features.memchr_1_0_2 or {});
-  };
-  memchr_1_0_2_features = f: updateFeatures f (rec {
-    libc_0_2_43.default = (f.libc_0_2_43.default or false);
-    libc_0_2_43.use_std =
-      (f.libc_0_2_43.use_std or false) ||
-      (memchr_1_0_2.use_std or false) ||
-      (f.memchr_1_0_2.use_std or false);
-    memchr_1_0_2.default = (f.memchr_1_0_2.default or true);
-    memchr_1_0_2.libc =
-      (f.memchr_1_0_2.libc or false) ||
-      (f.memchr_1_0_2.default or false) ||
-      (memchr_1_0_2.default or false) ||
-      (f.memchr_1_0_2.use_std or false) ||
-      (memchr_1_0_2.use_std or false);
-    memchr_1_0_2.use_std =
-      (f.memchr_1_0_2.use_std or false) ||
-      (f.memchr_1_0_2.default or false) ||
-      (memchr_1_0_2.default or false);
-  }) [ libc_0_2_43_features ];
-  memchr_2_1_0 = { features?(memchr_2_1_0_features {}) }: memchr_2_1_0_ {
-    dependencies = mapFeatures features ([ cfg_if_0_1_5 ]
-      ++ (if features.memchr_2_1_0.libc or false then [ libc_0_2_43 ] else []));
-    buildDependencies = mapFeatures features ([ version_check_0_1_5 ]);
-    features = mkFeatures (features.memchr_2_1_0 or {});
-  };
-  memchr_2_1_0_features = f: updateFeatures f (rec {
-    cfg_if_0_1_5.default = true;
-    libc_0_2_43.default = (f.libc_0_2_43.default or false);
-    libc_0_2_43.use_std =
-      (f.libc_0_2_43.use_std or false) ||
-      (memchr_2_1_0.use_std or false) ||
-      (f.memchr_2_1_0.use_std or false);
-    memchr_2_1_0.default = (f.memchr_2_1_0.default or true);
-    memchr_2_1_0.libc =
-      (f.memchr_2_1_0.libc or false) ||
-      (f.memchr_2_1_0.default or false) ||
-      (memchr_2_1_0.default or false) ||
-      (f.memchr_2_1_0.use_std or false) ||
-      (memchr_2_1_0.use_std or false);
-    memchr_2_1_0.use_std =
-      (f.memchr_2_1_0.use_std or false) ||
-      (f.memchr_2_1_0.default or false) ||
-      (memchr_2_1_0.default or false);
-    version_check_0_1_5.default = true;
-  }) [ cfg_if_0_1_5_features libc_0_2_43_features version_check_0_1_5_features ];
-  memoffset_0_2_1 = { features?(memoffset_0_2_1_features {}) }: memoffset_0_2_1_ {};
-  memoffset_0_2_1_features = f: updateFeatures f (rec {
-    memoffset_0_2_1.default = (f.memoffset_0_2_1.default or true);
-  }) [];
-  mime_0_3_9 = { features?(mime_0_3_9_features {}) }: mime_0_3_9_ {
-    dependencies = mapFeatures features ([ unicase_2_1_0 ]);
-  };
-  mime_0_3_9_features = f: updateFeatures f (rec {
-    mime_0_3_9.default = (f.mime_0_3_9.default or true);
-    unicase_2_1_0.default = true;
-  }) [ unicase_2_1_0_features ];
-  mio_0_6_16 = { features?(mio_0_6_16_features {}) }: mio_0_6_16_ {
-    dependencies = mapFeatures features ([ iovec_0_1_2 lazycell_1_2_0 log_0_4_5 net2_0_2_33 slab_0_4_1 ])
-      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 fuchsia_zircon_sys_0_3_3 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_43 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 miow_0_2_1 winapi_0_2_8 ]) else []);
-    features = mkFeatures (features.mio_0_6_16 or {});
-  };
-  mio_0_6_16_features = f: updateFeatures f (rec {
-    fuchsia_zircon_0_3_3.default = true;
-    fuchsia_zircon_sys_0_3_3.default = true;
-    iovec_0_1_2.default = true;
-    kernel32_sys_0_2_2.default = true;
-    lazycell_1_2_0.default = true;
-    libc_0_2_43.default = true;
-    log_0_4_5.default = true;
-    mio_0_6_16.default = (f.mio_0_6_16.default or true);
-    mio_0_6_16.with-deprecated =
-      (f.mio_0_6_16.with-deprecated or false) ||
-      (f.mio_0_6_16.default or false) ||
-      (mio_0_6_16.default or false);
-    miow_0_2_1.default = true;
-    net2_0_2_33.default = true;
-    slab_0_4_1.default = true;
-    winapi_0_2_8.default = true;
-  }) [ iovec_0_1_2_features lazycell_1_2_0_features log_0_4_5_features net2_0_2_33_features slab_0_4_1_features fuchsia_zircon_0_3_3_features fuchsia_zircon_sys_0_3_3_features libc_0_2_43_features kernel32_sys_0_2_2_features miow_0_2_1_features winapi_0_2_8_features ];
-  mio_uds_0_6_7 = { features?(mio_uds_0_6_7_features {}) }: mio_uds_0_6_7_ {
-    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ iovec_0_1_2 libc_0_2_43 mio_0_6_16 ]) else []);
-  };
-  mio_uds_0_6_7_features = f: updateFeatures f (rec {
-    iovec_0_1_2.default = true;
-    libc_0_2_43.default = true;
-    mio_0_6_16.default = true;
-    mio_uds_0_6_7.default = (f.mio_uds_0_6_7.default or true);
-  }) [ iovec_0_1_2_features libc_0_2_43_features mio_0_6_16_features ];
-  miow_0_2_1 = { features?(miow_0_2_1_features {}) }: miow_0_2_1_ {
-    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 net2_0_2_33 winapi_0_2_8 ws2_32_sys_0_2_1 ]);
-  };
-  miow_0_2_1_features = f: updateFeatures f (rec {
-    kernel32_sys_0_2_2.default = true;
-    miow_0_2_1.default = (f.miow_0_2_1.default or true);
-    net2_0_2_33.default = (f.net2_0_2_33.default or false);
-    winapi_0_2_8.default = true;
-    ws2_32_sys_0_2_1.default = true;
-  }) [ kernel32_sys_0_2_2_features net2_0_2_33_features winapi_0_2_8_features ws2_32_sys_0_2_1_features ];
-  net2_0_2_33 = { features?(net2_0_2_33_features {}) }: net2_0_2_33_ {
-    dependencies = mapFeatures features ([ cfg_if_0_1_5 ])
-      ++ (if kernel == "redox" || (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_43 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-    features = mkFeatures (features.net2_0_2_33 or {});
-  };
-  net2_0_2_33_features = f: updateFeatures f (rec {
-    cfg_if_0_1_5.default = true;
-    libc_0_2_43.default = true;
-    net2_0_2_33.default = (f.net2_0_2_33.default or true);
-    net2_0_2_33.duration =
-      (f.net2_0_2_33.duration or false) ||
-      (f.net2_0_2_33.default or false) ||
-      (net2_0_2_33.default or false);
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.handleapi = true;
-    winapi_0_3_6.winsock2 = true;
-    winapi_0_3_6.ws2def = true;
-    winapi_0_3_6.ws2ipdef = true;
-    winapi_0_3_6.ws2tcpip = true;
-  }) [ cfg_if_0_1_5_features libc_0_2_43_features winapi_0_3_6_features ];
-  nodrop_0_1_12 = { features?(nodrop_0_1_12_features {}) }: nodrop_0_1_12_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.nodrop_0_1_12 or {});
-  };
-  nodrop_0_1_12_features = f: updateFeatures f (rec {
-    nodrop_0_1_12.default = (f.nodrop_0_1_12.default or true);
-    nodrop_0_1_12.nodrop-union =
-      (f.nodrop_0_1_12.nodrop-union or false) ||
-      (f.nodrop_0_1_12.use_union or false) ||
-      (nodrop_0_1_12.use_union or false);
-    nodrop_0_1_12.std =
-      (f.nodrop_0_1_12.std or false) ||
-      (f.nodrop_0_1_12.default or false) ||
-      (nodrop_0_1_12.default or false);
-  }) [];
-  nom_3_2_1 = { features?(nom_3_2_1_features {}) }: nom_3_2_1_ {
-    dependencies = mapFeatures features ([ memchr_1_0_2 ]);
-    features = mkFeatures (features.nom_3_2_1 or {});
-  };
-  nom_3_2_1_features = f: updateFeatures f (rec {
-    memchr_1_0_2.default = (f.memchr_1_0_2.default or false);
-    memchr_1_0_2.use_std =
-      (f.memchr_1_0_2.use_std or false) ||
-      (nom_3_2_1.std or false) ||
-      (f.nom_3_2_1.std or false);
-    nom_3_2_1.compiler_error =
-      (f.nom_3_2_1.compiler_error or false) ||
-      (f.nom_3_2_1.nightly or false) ||
-      (nom_3_2_1.nightly or false);
-    nom_3_2_1.default = (f.nom_3_2_1.default or true);
-    nom_3_2_1.lazy_static =
-      (f.nom_3_2_1.lazy_static or false) ||
-      (f.nom_3_2_1.regexp_macros or false) ||
-      (nom_3_2_1.regexp_macros or false);
-    nom_3_2_1.regex =
-      (f.nom_3_2_1.regex or false) ||
-      (f.nom_3_2_1.regexp or false) ||
-      (nom_3_2_1.regexp or false);
-    nom_3_2_1.regexp =
-      (f.nom_3_2_1.regexp or false) ||
-      (f.nom_3_2_1.regexp_macros or false) ||
-      (nom_3_2_1.regexp_macros or false);
-    nom_3_2_1.std =
-      (f.nom_3_2_1.std or false) ||
-      (f.nom_3_2_1.default or false) ||
-      (nom_3_2_1.default or false);
-    nom_3_2_1.stream =
-      (f.nom_3_2_1.stream or false) ||
-      (f.nom_3_2_1.default or false) ||
-      (nom_3_2_1.default or false);
-  }) [ memchr_1_0_2_features ];
-  num_cpus_1_8_0 = { features?(num_cpus_1_8_0_features {}) }: num_cpus_1_8_0_ {
-    dependencies = mapFeatures features ([ libc_0_2_43 ]);
-  };
-  num_cpus_1_8_0_features = f: updateFeatures f (rec {
-    libc_0_2_43.default = true;
-    num_cpus_1_8_0.default = (f.num_cpus_1_8_0.default or true);
-  }) [ libc_0_2_43_features ];
-  owning_ref_0_3_3 = { features?(owning_ref_0_3_3_features {}) }: owning_ref_0_3_3_ {
-    dependencies = mapFeatures features ([ stable_deref_trait_1_1_1 ]);
-  };
-  owning_ref_0_3_3_features = f: updateFeatures f (rec {
-    owning_ref_0_3_3.default = (f.owning_ref_0_3_3.default or true);
-    stable_deref_trait_1_1_1.default = true;
-  }) [ stable_deref_trait_1_1_1_features ];
-  parking_lot_0_6_4 = { features?(parking_lot_0_6_4_features {}) }: parking_lot_0_6_4_ {
-    dependencies = mapFeatures features ([ lock_api_0_1_4 parking_lot_core_0_3_1 ]);
-    features = mkFeatures (features.parking_lot_0_6_4 or {});
-  };
-  parking_lot_0_6_4_features = f: updateFeatures f (rec {
-    lock_api_0_1_4.default = true;
-    lock_api_0_1_4.nightly =
-      (f.lock_api_0_1_4.nightly or false) ||
-      (parking_lot_0_6_4.nightly or false) ||
-      (f.parking_lot_0_6_4.nightly or false);
-    lock_api_0_1_4.owning_ref =
-      (f.lock_api_0_1_4.owning_ref or false) ||
-      (parking_lot_0_6_4.owning_ref or false) ||
-      (f.parking_lot_0_6_4.owning_ref or false);
-    parking_lot_0_6_4.default = (f.parking_lot_0_6_4.default or true);
-    parking_lot_0_6_4.owning_ref =
-      (f.parking_lot_0_6_4.owning_ref or false) ||
-      (f.parking_lot_0_6_4.default or false) ||
-      (parking_lot_0_6_4.default or false);
-    parking_lot_core_0_3_1.deadlock_detection =
-      (f.parking_lot_core_0_3_1.deadlock_detection or false) ||
-      (parking_lot_0_6_4.deadlock_detection or false) ||
-      (f.parking_lot_0_6_4.deadlock_detection or false);
-    parking_lot_core_0_3_1.default = true;
-    parking_lot_core_0_3_1.nightly =
-      (f.parking_lot_core_0_3_1.nightly or false) ||
-      (parking_lot_0_6_4.nightly or false) ||
-      (f.parking_lot_0_6_4.nightly or false);
-  }) [ lock_api_0_1_4_features parking_lot_core_0_3_1_features ];
-  parking_lot_core_0_3_1 = { features?(parking_lot_core_0_3_1_features {}) }: parking_lot_core_0_3_1_ {
-    dependencies = mapFeatures features ([ rand_0_5_5 smallvec_0_6_5 ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_43 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-    buildDependencies = mapFeatures features ([ rustc_version_0_2_3 ]);
-    features = mkFeatures (features.parking_lot_core_0_3_1 or {});
-  };
-  parking_lot_core_0_3_1_features = f: updateFeatures f (rec {
-    libc_0_2_43.default = true;
-    parking_lot_core_0_3_1.backtrace =
-      (f.parking_lot_core_0_3_1.backtrace or false) ||
-      (f.parking_lot_core_0_3_1.deadlock_detection or false) ||
-      (parking_lot_core_0_3_1.deadlock_detection or false);
-    parking_lot_core_0_3_1.default = (f.parking_lot_core_0_3_1.default or true);
-    parking_lot_core_0_3_1.petgraph =
-      (f.parking_lot_core_0_3_1.petgraph or false) ||
-      (f.parking_lot_core_0_3_1.deadlock_detection or false) ||
-      (parking_lot_core_0_3_1.deadlock_detection or false);
-    parking_lot_core_0_3_1.thread-id =
-      (f.parking_lot_core_0_3_1.thread-id or false) ||
-      (f.parking_lot_core_0_3_1.deadlock_detection or false) ||
-      (parking_lot_core_0_3_1.deadlock_detection or false);
-    rand_0_5_5.default = true;
-    rustc_version_0_2_3.default = true;
-    smallvec_0_6_5.default = true;
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.errhandlingapi = true;
-    winapi_0_3_6.handleapi = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.ntstatus = true;
-    winapi_0_3_6.winbase = true;
-    winapi_0_3_6.winerror = true;
-    winapi_0_3_6.winnt = true;
-  }) [ rand_0_5_5_features smallvec_0_6_5_features rustc_version_0_2_3_features libc_0_2_43_features winapi_0_3_6_features ];
-  percent_encoding_1_0_1 = { features?(percent_encoding_1_0_1_features {}) }: percent_encoding_1_0_1_ {};
-  percent_encoding_1_0_1_features = f: updateFeatures f (rec {
-    percent_encoding_1_0_1.default = (f.percent_encoding_1_0_1.default or true);
-  }) [];
-  proc_macro2_0_2_3 = { features?(proc_macro2_0_2_3_features {}) }: proc_macro2_0_2_3_ {
-    dependencies = mapFeatures features ([ unicode_xid_0_1_0 ]);
-    features = mkFeatures (features.proc_macro2_0_2_3 or {});
-  };
-  proc_macro2_0_2_3_features = f: updateFeatures f (rec {
-    proc_macro2_0_2_3.default = (f.proc_macro2_0_2_3.default or true);
-    proc_macro2_0_2_3.proc-macro =
-      (f.proc_macro2_0_2_3.proc-macro or false) ||
-      (f.proc_macro2_0_2_3.default or false) ||
-      (proc_macro2_0_2_3.default or false) ||
-      (f.proc_macro2_0_2_3.nightly or false) ||
-      (proc_macro2_0_2_3.nightly or false);
-    unicode_xid_0_1_0.default = true;
-  }) [ unicode_xid_0_1_0_features ];
-  proc_macro2_0_4_20 = { features?(proc_macro2_0_4_20_features {}) }: proc_macro2_0_4_20_ {
-    dependencies = mapFeatures features ([ unicode_xid_0_1_0 ]);
-    features = mkFeatures (features.proc_macro2_0_4_20 or {});
-  };
-  proc_macro2_0_4_20_features = f: updateFeatures f (rec {
-    proc_macro2_0_4_20.default = (f.proc_macro2_0_4_20.default or true);
-    proc_macro2_0_4_20.proc-macro =
-      (f.proc_macro2_0_4_20.proc-macro or false) ||
-      (f.proc_macro2_0_4_20.default or false) ||
-      (proc_macro2_0_4_20.default or false) ||
-      (f.proc_macro2_0_4_20.nightly or false) ||
-      (proc_macro2_0_4_20.nightly or false);
-    unicode_xid_0_1_0.default = true;
-  }) [ unicode_xid_0_1_0_features ];
-  protocol_0_1_0 = { features?(protocol_0_1_0_features {}) }: protocol_0_1_0_ {
-    dependencies = mapFeatures features ([ cardano_0_1_0 cbor_event_1_0_0 log_0_4_5 ]);
-  };
-  protocol_0_1_0_features = f: updateFeatures f (rec {
-    cardano_0_1_0.default = true;
-    cbor_event_1_0_0.default = true;
-    log_0_4_5.default = true;
-    protocol_0_1_0.default = (f.protocol_0_1_0.default or true);
-  }) [ cardano_0_1_0_features cbor_event_1_0_0_features log_0_4_5_features ];
-  quick_error_1_2_2 = { features?(quick_error_1_2_2_features {}) }: quick_error_1_2_2_ {};
-  quick_error_1_2_2_features = f: updateFeatures f (rec {
-    quick_error_1_2_2.default = (f.quick_error_1_2_2.default or true);
-  }) [];
-  quote_0_4_2 = { features?(quote_0_4_2_features {}) }: quote_0_4_2_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_2_3 ]);
-  };
-  quote_0_4_2_features = f: updateFeatures f (rec {
-    proc_macro2_0_2_3.default = true;
-    quote_0_4_2.default = (f.quote_0_4_2.default or true);
-  }) [ proc_macro2_0_2_3_features ];
-  quote_0_6_8 = { features?(quote_0_6_8_features {}) }: quote_0_6_8_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_4_20 ]);
-    features = mkFeatures (features.quote_0_6_8 or {});
-  };
-  quote_0_6_8_features = f: updateFeatures f (rec {
-    proc_macro2_0_4_20.default = (f.proc_macro2_0_4_20.default or false);
-    proc_macro2_0_4_20.proc-macro =
-      (f.proc_macro2_0_4_20.proc-macro or false) ||
-      (quote_0_6_8.proc-macro or false) ||
-      (f.quote_0_6_8.proc-macro or false);
-    quote_0_6_8.default = (f.quote_0_6_8.default or true);
-    quote_0_6_8.proc-macro =
-      (f.quote_0_6_8.proc-macro or false) ||
-      (f.quote_0_6_8.default or false) ||
-      (quote_0_6_8.default or false);
-  }) [ proc_macro2_0_4_20_features ];
-  rand_0_3_22 = { features?(rand_0_3_22_features {}) }: rand_0_3_22_ {
-    dependencies = mapFeatures features ([ libc_0_2_43 rand_0_4_3 ])
-      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else []);
-    features = mkFeatures (features.rand_0_3_22 or {});
-  };
-  rand_0_3_22_features = f: updateFeatures f (rec {
-    fuchsia_zircon_0_3_3.default = true;
-    libc_0_2_43.default = true;
-    rand_0_3_22.default = (f.rand_0_3_22.default or true);
-    rand_0_3_22.i128_support =
-      (f.rand_0_3_22.i128_support or false) ||
-      (f.rand_0_3_22.nightly or false) ||
-      (rand_0_3_22.nightly or false);
-    rand_0_4_3.default = true;
-  }) [ libc_0_2_43_features rand_0_4_3_features fuchsia_zircon_0_3_3_features ];
-  rand_0_4_3 = { features?(rand_0_4_3_features {}) }: rand_0_4_3_ {
-    dependencies = (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ ]
-      ++ (if features.rand_0_4_3.libc or false then [ libc_0_2_43 ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-    features = mkFeatures (features.rand_0_4_3 or {});
-  };
-  rand_0_4_3_features = f: updateFeatures f (rec {
-    fuchsia_zircon_0_3_3.default = true;
-    libc_0_2_43.default = true;
-    rand_0_4_3.default = (f.rand_0_4_3.default or true);
-    rand_0_4_3.i128_support =
-      (f.rand_0_4_3.i128_support or false) ||
-      (f.rand_0_4_3.nightly or false) ||
-      (rand_0_4_3.nightly or false);
-    rand_0_4_3.libc =
-      (f.rand_0_4_3.libc or false) ||
-      (f.rand_0_4_3.std or false) ||
-      (rand_0_4_3.std or false);
-    rand_0_4_3.std =
-      (f.rand_0_4_3.std or false) ||
-      (f.rand_0_4_3.default or false) ||
-      (rand_0_4_3.default or false);
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.ntsecapi = true;
-    winapi_0_3_6.profileapi = true;
-    winapi_0_3_6.winnt = true;
-  }) [ fuchsia_zircon_0_3_3_features libc_0_2_43_features winapi_0_3_6_features ];
-  rand_0_5_5 = { features?(rand_0_5_5_features {}) }: rand_0_5_5_ {
-    dependencies = mapFeatures features ([ rand_core_0_2_2 ])
-      ++ (if kernel == "cloudabi" then mapFeatures features ([ ]
-      ++ (if features.rand_0_5_5.cloudabi or false then [ cloudabi_0_0_3 ] else [])) else [])
-      ++ (if kernel == "fuchsia" then mapFeatures features ([ ]
-      ++ (if features.rand_0_5_5.fuchsia-zircon or false then [ fuchsia_zircon_0_3_3 ] else [])) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ ]
-      ++ (if features.rand_0_5_5.libc or false then [ libc_0_2_43 ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ ]
-      ++ (if features.rand_0_5_5.winapi or false then [ winapi_0_3_6 ] else [])) else [])
-      ++ (if kernel == "wasm32-unknown-unknown" then mapFeatures features ([]) else []);
-    features = mkFeatures (features.rand_0_5_5 or {});
-  };
-  rand_0_5_5_features = f: updateFeatures f (rec {
-    cloudabi_0_0_3.default = true;
-    fuchsia_zircon_0_3_3.default = true;
-    libc_0_2_43.default = true;
-    rand_0_5_5.alloc =
-      (f.rand_0_5_5.alloc or false) ||
-      (f.rand_0_5_5.std or false) ||
-      (rand_0_5_5.std or false);
-    rand_0_5_5.cloudabi =
-      (f.rand_0_5_5.cloudabi or false) ||
-      (f.rand_0_5_5.std or false) ||
-      (rand_0_5_5.std or false);
-    rand_0_5_5.default = (f.rand_0_5_5.default or true);
-    rand_0_5_5.fuchsia-zircon =
-      (f.rand_0_5_5.fuchsia-zircon or false) ||
-      (f.rand_0_5_5.std or false) ||
-      (rand_0_5_5.std or false);
-    rand_0_5_5.i128_support =
-      (f.rand_0_5_5.i128_support or false) ||
-      (f.rand_0_5_5.nightly or false) ||
-      (rand_0_5_5.nightly or false);
-    rand_0_5_5.libc =
-      (f.rand_0_5_5.libc or false) ||
-      (f.rand_0_5_5.std or false) ||
-      (rand_0_5_5.std or false);
-    rand_0_5_5.serde =
-      (f.rand_0_5_5.serde or false) ||
-      (f.rand_0_5_5.serde1 or false) ||
-      (rand_0_5_5.serde1 or false);
-    rand_0_5_5.serde_derive =
-      (f.rand_0_5_5.serde_derive or false) ||
-      (f.rand_0_5_5.serde1 or false) ||
-      (rand_0_5_5.serde1 or false);
-    rand_0_5_5.std =
-      (f.rand_0_5_5.std or false) ||
-      (f.rand_0_5_5.default or false) ||
-      (rand_0_5_5.default or false);
-    rand_0_5_5.winapi =
-      (f.rand_0_5_5.winapi or false) ||
-      (f.rand_0_5_5.std or false) ||
-      (rand_0_5_5.std or false);
-    rand_core_0_2_2.alloc =
-      (f.rand_core_0_2_2.alloc or false) ||
-      (rand_0_5_5.alloc or false) ||
-      (f.rand_0_5_5.alloc or false);
-    rand_core_0_2_2.default = (f.rand_core_0_2_2.default or false);
-    rand_core_0_2_2.serde1 =
-      (f.rand_core_0_2_2.serde1 or false) ||
-      (rand_0_5_5.serde1 or false) ||
-      (f.rand_0_5_5.serde1 or false);
-    rand_core_0_2_2.std =
-      (f.rand_core_0_2_2.std or false) ||
-      (rand_0_5_5.std or false) ||
-      (f.rand_0_5_5.std or false);
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.ntsecapi = true;
-    winapi_0_3_6.profileapi = true;
-    winapi_0_3_6.winnt = true;
-  }) [ rand_core_0_2_2_features cloudabi_0_0_3_features fuchsia_zircon_0_3_3_features libc_0_2_43_features winapi_0_3_6_features ];
-  rand_core_0_2_2 = { features?(rand_core_0_2_2_features {}) }: rand_core_0_2_2_ {
-    dependencies = mapFeatures features ([ rand_core_0_3_0 ]);
-    features = mkFeatures (features.rand_core_0_2_2 or {});
-  };
-  rand_core_0_2_2_features = f: updateFeatures f (rec {
-    rand_core_0_2_2.default = (f.rand_core_0_2_2.default or true);
-    rand_core_0_3_0.alloc =
-      (f.rand_core_0_3_0.alloc or false) ||
-      (rand_core_0_2_2.alloc or false) ||
-      (f.rand_core_0_2_2.alloc or false);
-    rand_core_0_3_0.default = (f.rand_core_0_3_0.default or false);
-    rand_core_0_3_0.serde1 =
-      (f.rand_core_0_3_0.serde1 or false) ||
-      (rand_core_0_2_2.serde1 or false) ||
-      (f.rand_core_0_2_2.serde1 or false);
-    rand_core_0_3_0.std =
-      (f.rand_core_0_3_0.std or false) ||
-      (rand_core_0_2_2.std or false) ||
-      (f.rand_core_0_2_2.std or false);
-  }) [ rand_core_0_3_0_features ];
-  rand_core_0_3_0 = { features?(rand_core_0_3_0_features {}) }: rand_core_0_3_0_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.rand_core_0_3_0 or {});
-  };
-  rand_core_0_3_0_features = f: updateFeatures f (rec {
-    rand_core_0_3_0.alloc =
-      (f.rand_core_0_3_0.alloc or false) ||
-      (f.rand_core_0_3_0.std or false) ||
-      (rand_core_0_3_0.std or false);
-    rand_core_0_3_0.default = (f.rand_core_0_3_0.default or true);
-    rand_core_0_3_0.serde =
-      (f.rand_core_0_3_0.serde or false) ||
-      (f.rand_core_0_3_0.serde1 or false) ||
-      (rand_core_0_3_0.serde1 or false);
-    rand_core_0_3_0.serde_derive =
-      (f.rand_core_0_3_0.serde_derive or false) ||
-      (f.rand_core_0_3_0.serde1 or false) ||
-      (rand_core_0_3_0.serde1 or false);
-    rand_core_0_3_0.std =
-      (f.rand_core_0_3_0.std or false) ||
-      (f.rand_core_0_3_0.default or false) ||
-      (rand_core_0_3_0.default or false);
-  }) [];
-  redox_syscall_0_1_40 = { features?(redox_syscall_0_1_40_features {}) }: redox_syscall_0_1_40_ {};
-  redox_syscall_0_1_40_features = f: updateFeatures f (rec {
-    redox_syscall_0_1_40.default = (f.redox_syscall_0_1_40.default or true);
-  }) [];
-  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
-    dependencies = mapFeatures features ([ redox_syscall_0_1_40 ]);
-  };
-  redox_termios_0_1_1_features = f: updateFeatures f (rec {
-    redox_syscall_0_1_40.default = true;
-    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
-  }) [ redox_syscall_0_1_40_features ];
-  regex_1_0_5 = { features?(regex_1_0_5_features {}) }: regex_1_0_5_ {
-    dependencies = mapFeatures features ([ aho_corasick_0_6_8 memchr_2_1_0 regex_syntax_0_6_2 thread_local_0_3_6 utf8_ranges_1_0_1 ]);
-    features = mkFeatures (features.regex_1_0_5 or {});
-  };
-  regex_1_0_5_features = f: updateFeatures f (rec {
-    aho_corasick_0_6_8.default = true;
-    memchr_2_1_0.default = true;
-    regex_1_0_5.default = (f.regex_1_0_5.default or true);
-    regex_1_0_5.pattern =
-      (f.regex_1_0_5.pattern or false) ||
-      (f.regex_1_0_5.unstable or false) ||
-      (regex_1_0_5.unstable or false);
-    regex_1_0_5.use_std =
-      (f.regex_1_0_5.use_std or false) ||
-      (f.regex_1_0_5.default or false) ||
-      (regex_1_0_5.default or false);
-    regex_syntax_0_6_2.default = true;
-    thread_local_0_3_6.default = true;
-    utf8_ranges_1_0_1.default = true;
-  }) [ aho_corasick_0_6_8_features memchr_2_1_0_features regex_syntax_0_6_2_features thread_local_0_3_6_features utf8_ranges_1_0_1_features ];
-  regex_syntax_0_6_2 = { features?(regex_syntax_0_6_2_features {}) }: regex_syntax_0_6_2_ {
-    dependencies = mapFeatures features ([ ucd_util_0_1_1 ]);
-  };
-  regex_syntax_0_6_2_features = f: updateFeatures f (rec {
-    regex_syntax_0_6_2.default = (f.regex_syntax_0_6_2.default or true);
-    ucd_util_0_1_1.default = true;
-  }) [ ucd_util_0_1_1_features ];
-  relay_0_1_1 = { features?(relay_0_1_1_features {}) }: relay_0_1_1_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 ]);
-  };
-  relay_0_1_1_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    relay_0_1_1.default = (f.relay_0_1_1.default or true);
-  }) [ futures_0_1_24_features ];
-  rustc_version_0_2_3 = { features?(rustc_version_0_2_3_features {}) }: rustc_version_0_2_3_ {
-    dependencies = mapFeatures features ([ semver_0_9_0 ]);
-  };
-  rustc_version_0_2_3_features = f: updateFeatures f (rec {
-    rustc_version_0_2_3.default = (f.rustc_version_0_2_3.default or true);
-    semver_0_9_0.default = true;
-  }) [ semver_0_9_0_features ];
-  rustfbp_0_3_34 = { features?(rustfbp_0_3_34_features {}) }: rustfbp_0_3_34_ {
-    dependencies = mapFeatures features ([ env_logger_0_5_13 libloading_0_5_0 threadpool_1_7_1 ]);
-  };
-  rustfbp_0_3_34_features = f: updateFeatures f (rec {
-    env_logger_0_5_13.default = true;
-    libloading_0_5_0.default = true;
-    rustfbp_0_3_34.default = (f.rustfbp_0_3_34.default or true);
-    threadpool_1_7_1.default = true;
-  }) [ env_logger_0_5_13_features libloading_0_5_0_features threadpool_1_7_1_features ];
-  safemem_0_3_0 = { features?(safemem_0_3_0_features {}) }: safemem_0_3_0_ {
-    features = mkFeatures (features.safemem_0_3_0 or {});
-  };
-  safemem_0_3_0_features = f: updateFeatures f (rec {
-    safemem_0_3_0.default = (f.safemem_0_3_0.default or true);
-    safemem_0_3_0.std =
-      (f.safemem_0_3_0.std or false) ||
-      (f.safemem_0_3_0.default or false) ||
-      (safemem_0_3_0.default or false);
-  }) [];
-  scoped_tls_0_1_2 = { features?(scoped_tls_0_1_2_features {}) }: scoped_tls_0_1_2_ {
-    features = mkFeatures (features.scoped_tls_0_1_2 or {});
-  };
-  scoped_tls_0_1_2_features = f: updateFeatures f (rec {
-    scoped_tls_0_1_2.default = (f.scoped_tls_0_1_2.default or true);
-  }) [];
-  scopeguard_0_3_3 = { features?(scopeguard_0_3_3_features {}) }: scopeguard_0_3_3_ {
-    features = mkFeatures (features.scopeguard_0_3_3 or {});
-  };
-  scopeguard_0_3_3_features = f: updateFeatures f (rec {
-    scopeguard_0_3_3.default = (f.scopeguard_0_3_3.default or true);
-    scopeguard_0_3_3.use_std =
-      (f.scopeguard_0_3_3.use_std or false) ||
-      (f.scopeguard_0_3_3.default or false) ||
-      (scopeguard_0_3_3.default or false);
-  }) [];
-  semver_0_9_0 = { features?(semver_0_9_0_features {}) }: semver_0_9_0_ {
-    dependencies = mapFeatures features ([ semver_parser_0_7_0 ]);
-    features = mkFeatures (features.semver_0_9_0 or {});
-  };
-  semver_0_9_0_features = f: updateFeatures f (rec {
-    semver_0_9_0.default = (f.semver_0_9_0.default or true);
-    semver_0_9_0.serde =
-      (f.semver_0_9_0.serde or false) ||
-      (f.semver_0_9_0.ci or false) ||
-      (semver_0_9_0.ci or false);
-    semver_parser_0_7_0.default = true;
-  }) [ semver_parser_0_7_0_features ];
-  semver_parser_0_7_0 = { features?(semver_parser_0_7_0_features {}) }: semver_parser_0_7_0_ {};
-  semver_parser_0_7_0_features = f: updateFeatures f (rec {
-    semver_parser_0_7_0.default = (f.semver_parser_0_7_0.default or true);
-  }) [];
-  serde_1_0_79 = { features?(serde_1_0_79_features {}) }: serde_1_0_79_ {
-    dependencies = mapFeatures features ([]);
-    features = mkFeatures (features.serde_1_0_79 or {});
-  };
-  serde_1_0_79_features = f: updateFeatures f (rec {
-    serde_1_0_79.default = (f.serde_1_0_79.default or true);
-    serde_1_0_79.serde_derive =
-      (f.serde_1_0_79.serde_derive or false) ||
-      (f.serde_1_0_79.derive or false) ||
-      (serde_1_0_79.derive or false);
-    serde_1_0_79.std =
-      (f.serde_1_0_79.std or false) ||
-      (f.serde_1_0_79.default or false) ||
-      (serde_1_0_79.default or false);
-    serde_1_0_79.unstable =
-      (f.serde_1_0_79.unstable or false) ||
-      (f.serde_1_0_79.alloc or false) ||
-      (serde_1_0_79.alloc or false);
-  }) [];
-  serde_derive_1_0_79 = { features?(serde_derive_1_0_79_features {}) }: serde_derive_1_0_79_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_4_20 quote_0_6_8 syn_0_15_8 ]);
-    features = mkFeatures (features.serde_derive_1_0_79 or {});
-  };
-  serde_derive_1_0_79_features = f: updateFeatures f (rec {
-    proc_macro2_0_4_20.default = true;
-    quote_0_6_8.default = true;
-    serde_derive_1_0_79.default = (f.serde_derive_1_0_79.default or true);
-    syn_0_15_8.default = true;
-    syn_0_15_8.visit = true;
-  }) [ proc_macro2_0_4_20_features quote_0_6_8_features syn_0_15_8_features ];
-  serde_yaml_0_7_5 = { features?(serde_yaml_0_7_5_features {}) }: serde_yaml_0_7_5_ {
-    dependencies = mapFeatures features ([ dtoa_0_4_3 linked_hash_map_0_5_1 serde_1_0_79 yaml_rust_0_4_2 ]);
-  };
-  serde_yaml_0_7_5_features = f: updateFeatures f (rec {
-    dtoa_0_4_3.default = true;
-    linked_hash_map_0_5_1.default = true;
-    serde_1_0_79.default = true;
-    serde_yaml_0_7_5.default = (f.serde_yaml_0_7_5.default or true);
-    yaml_rust_0_4_2.default = true;
-  }) [ dtoa_0_4_3_features linked_hash_map_0_5_1_features serde_1_0_79_features yaml_rust_0_4_2_features ];
-  slab_0_3_0 = { features?(slab_0_3_0_features {}) }: slab_0_3_0_ {};
-  slab_0_3_0_features = f: updateFeatures f (rec {
-    slab_0_3_0.default = (f.slab_0_3_0.default or true);
-  }) [];
-  slab_0_4_1 = { features?(slab_0_4_1_features {}) }: slab_0_4_1_ {};
-  slab_0_4_1_features = f: updateFeatures f (rec {
-    slab_0_4_1.default = (f.slab_0_4_1.default or true);
-  }) [];
-  smallvec_0_2_1 = { features?(smallvec_0_2_1_features {}) }: smallvec_0_2_1_ {};
-  smallvec_0_2_1_features = f: updateFeatures f (rec {
-    smallvec_0_2_1.default = (f.smallvec_0_2_1.default or true);
-  }) [];
-  smallvec_0_6_5 = { features?(smallvec_0_6_5_features {}) }: smallvec_0_6_5_ {
-    dependencies = mapFeatures features ([ unreachable_1_0_0 ]);
-    features = mkFeatures (features.smallvec_0_6_5 or {});
-  };
-  smallvec_0_6_5_features = f: updateFeatures f (rec {
-    smallvec_0_6_5.default = (f.smallvec_0_6_5.default or true);
-    smallvec_0_6_5.std =
-      (f.smallvec_0_6_5.std or false) ||
-      (f.smallvec_0_6_5.default or false) ||
-      (smallvec_0_6_5.default or false);
-    unreachable_1_0_0.default = true;
-  }) [ unreachable_1_0_0_features ];
-  stable_deref_trait_1_1_1 = { features?(stable_deref_trait_1_1_1_features {}) }: stable_deref_trait_1_1_1_ {
-    features = mkFeatures (features.stable_deref_trait_1_1_1 or {});
-  };
-  stable_deref_trait_1_1_1_features = f: updateFeatures f (rec {
-    stable_deref_trait_1_1_1.default = (f.stable_deref_trait_1_1_1.default or true);
-    stable_deref_trait_1_1_1.std =
-      (f.stable_deref_trait_1_1_1.std or false) ||
-      (f.stable_deref_trait_1_1_1.default or false) ||
-      (stable_deref_trait_1_1_1.default or false);
-  }) [];
-  storage_units_0_1_0 = { features?(storage_units_0_1_0_features {}) }: storage_units_0_1_0_ {
-    dependencies = mapFeatures features ([ cryptoxide_0_1_0 rand_0_5_5 ]);
-  };
-  storage_units_0_1_0_features = f: updateFeatures f (rec {
-    cryptoxide_0_1_0.default = true;
-    rand_0_5_5.default = true;
-    storage_units_0_1_0.default = (f.storage_units_0_1_0.default or true);
-  }) [ cryptoxide_0_1_0_features rand_0_5_5_features ];
-  syn_0_12_15 = { features?(syn_0_12_15_features {}) }: syn_0_12_15_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_2_3 unicode_xid_0_1_0 ]
-      ++ (if features.syn_0_12_15.quote or false then [ quote_0_4_2 ] else []));
-    features = mkFeatures (features.syn_0_12_15 or {});
-  };
-  syn_0_12_15_features = f: updateFeatures f (rec {
-    proc_macro2_0_2_3.default = true;
-    quote_0_4_2.default = true;
-    syn_0_12_15.clone-impls =
-      (f.syn_0_12_15.clone-impls or false) ||
-      (f.syn_0_12_15.default or false) ||
-      (syn_0_12_15.default or false);
-    syn_0_12_15.default = (f.syn_0_12_15.default or true);
-    syn_0_12_15.derive =
-      (f.syn_0_12_15.derive or false) ||
-      (f.syn_0_12_15.default or false) ||
-      (syn_0_12_15.default or false);
-    syn_0_12_15.parsing =
-      (f.syn_0_12_15.parsing or false) ||
-      (f.syn_0_12_15.default or false) ||
-      (syn_0_12_15.default or false);
-    syn_0_12_15.printing =
-      (f.syn_0_12_15.printing or false) ||
-      (f.syn_0_12_15.default or false) ||
-      (syn_0_12_15.default or false);
-    syn_0_12_15.quote =
-      (f.syn_0_12_15.quote or false) ||
-      (f.syn_0_12_15.printing or false) ||
-      (syn_0_12_15.printing or false);
-    unicode_xid_0_1_0.default = true;
-  }) [ proc_macro2_0_2_3_features quote_0_4_2_features unicode_xid_0_1_0_features ];
-  syn_0_15_8 = { features?(syn_0_15_8_features {}) }: syn_0_15_8_ {
-    dependencies = mapFeatures features ([ proc_macro2_0_4_20 unicode_xid_0_1_0 ]
-      ++ (if features.syn_0_15_8.quote or false then [ quote_0_6_8 ] else []));
-    features = mkFeatures (features.syn_0_15_8 or {});
-  };
-  syn_0_15_8_features = f: updateFeatures f (rec {
-    proc_macro2_0_4_20.default = (f.proc_macro2_0_4_20.default or false);
-    proc_macro2_0_4_20.proc-macro =
-      (f.proc_macro2_0_4_20.proc-macro or false) ||
-      (syn_0_15_8.proc-macro or false) ||
-      (f.syn_0_15_8.proc-macro or false);
-    quote_0_6_8.default = (f.quote_0_6_8.default or false);
-    quote_0_6_8.proc-macro =
-      (f.quote_0_6_8.proc-macro or false) ||
-      (syn_0_15_8.proc-macro or false) ||
-      (f.syn_0_15_8.proc-macro or false);
-    syn_0_15_8.clone-impls =
-      (f.syn_0_15_8.clone-impls or false) ||
-      (f.syn_0_15_8.default or false) ||
-      (syn_0_15_8.default or false);
-    syn_0_15_8.default = (f.syn_0_15_8.default or true);
-    syn_0_15_8.derive =
-      (f.syn_0_15_8.derive or false) ||
-      (f.syn_0_15_8.default or false) ||
-      (syn_0_15_8.default or false);
-    syn_0_15_8.parsing =
-      (f.syn_0_15_8.parsing or false) ||
-      (f.syn_0_15_8.default or false) ||
-      (syn_0_15_8.default or false);
-    syn_0_15_8.printing =
-      (f.syn_0_15_8.printing or false) ||
-      (f.syn_0_15_8.default or false) ||
-      (syn_0_15_8.default or false);
-    syn_0_15_8.proc-macro =
-      (f.syn_0_15_8.proc-macro or false) ||
-      (f.syn_0_15_8.default or false) ||
-      (syn_0_15_8.default or false);
-    syn_0_15_8.quote =
-      (f.syn_0_15_8.quote or false) ||
-      (f.syn_0_15_8.printing or false) ||
-      (syn_0_15_8.printing or false);
-    unicode_xid_0_1_0.default = true;
-  }) [ proc_macro2_0_4_20_features quote_0_6_8_features unicode_xid_0_1_0_features ];
-  take_0_1_0 = { features?(take_0_1_0_features {}) }: take_0_1_0_ {};
-  take_0_1_0_features = f: updateFeatures f (rec {
-    take_0_1_0.default = (f.take_0_1_0.default or true);
-  }) [];
-  termcolor_1_0_4 = { features?(termcolor_1_0_4_features {}) }: termcolor_1_0_4_ {
-    dependencies = (if kernel == "windows" then mapFeatures features ([ wincolor_1_0_1 ]) else []);
-  };
-  termcolor_1_0_4_features = f: updateFeatures f (rec {
-    termcolor_1_0_4.default = (f.termcolor_1_0_4.default or true);
-    wincolor_1_0_1.default = true;
-  }) [ wincolor_1_0_1_features ];
-  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
-    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_43 ]) else [])
-      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 redox_termios_0_1_1 ]) else []);
-  };
-  termion_1_5_1_features = f: updateFeatures f (rec {
-    libc_0_2_43.default = true;
-    redox_syscall_0_1_40.default = true;
-    redox_termios_0_1_1.default = true;
-    termion_1_5_1.default = (f.termion_1_5_1.default or true);
-  }) [ libc_0_2_43_features redox_syscall_0_1_40_features redox_termios_0_1_1_features ];
-  thread_local_0_3_6 = { features?(thread_local_0_3_6_features {}) }: thread_local_0_3_6_ {
-    dependencies = mapFeatures features ([ lazy_static_1_1_0 ]);
-  };
-  thread_local_0_3_6_features = f: updateFeatures f (rec {
-    lazy_static_1_1_0.default = true;
-    thread_local_0_3_6.default = (f.thread_local_0_3_6.default or true);
-  }) [ lazy_static_1_1_0_features ];
-  threadpool_1_7_1 = { features?(threadpool_1_7_1_features {}) }: threadpool_1_7_1_ {
-    dependencies = mapFeatures features ([ num_cpus_1_8_0 ]);
-  };
-  threadpool_1_7_1_features = f: updateFeatures f (rec {
-    num_cpus_1_8_0.default = true;
-    threadpool_1_7_1.default = (f.threadpool_1_7_1.default or true);
-  }) [ num_cpus_1_8_0_features ];
-  time_0_1_40 = { features?(time_0_1_40_features {}) }: time_0_1_40_ {
-    dependencies = mapFeatures features ([ libc_0_2_43 ])
-      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-  };
-  time_0_1_40_features = f: updateFeatures f (rec {
-    libc_0_2_43.default = true;
-    redox_syscall_0_1_40.default = true;
-    time_0_1_40.default = (f.time_0_1_40.default or true);
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.minwinbase = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.ntdef = true;
-    winapi_0_3_6.profileapi = true;
-    winapi_0_3_6.std = true;
-    winapi_0_3_6.sysinfoapi = true;
-    winapi_0_3_6.timezoneapi = true;
-  }) [ libc_0_2_43_features redox_syscall_0_1_40_features winapi_0_3_6_features ];
-  tokio_0_1_11 = { features?(tokio_0_1_11_features {}) }: tokio_0_1_11_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 mio_0_6_16 tokio_codec_0_1_1 tokio_current_thread_0_1_3 tokio_executor_0_1_5 tokio_fs_0_1_3 tokio_io_0_1_9 tokio_reactor_0_1_6 tokio_tcp_0_1_2 tokio_threadpool_0_1_7 tokio_timer_0_2_7 tokio_udp_0_1_2 ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ tokio_uds_0_2_2 ]) else []);
-    features = mkFeatures (features.tokio_0_1_11 or {});
-  };
-  tokio_0_1_11_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    mio_0_6_16.default = true;
-    tokio_0_1_11.default = (f.tokio_0_1_11.default or true);
-    tokio_codec_0_1_1.default = true;
-    tokio_current_thread_0_1_3.default = true;
-    tokio_executor_0_1_5.default = true;
-    tokio_fs_0_1_3.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_reactor_0_1_6.default = true;
-    tokio_tcp_0_1_2.default = true;
-    tokio_threadpool_0_1_7.default = true;
-    tokio_timer_0_2_7.default = true;
-    tokio_udp_0_1_2.default = true;
-    tokio_uds_0_2_2.default = true;
-  }) [ bytes_0_4_10_features futures_0_1_24_features mio_0_6_16_features tokio_codec_0_1_1_features tokio_current_thread_0_1_3_features tokio_executor_0_1_5_features tokio_fs_0_1_3_features tokio_io_0_1_9_features tokio_reactor_0_1_6_features tokio_tcp_0_1_2_features tokio_threadpool_0_1_7_features tokio_timer_0_2_7_features tokio_udp_0_1_2_features tokio_uds_0_2_2_features ];
-  tokio_codec_0_1_1 = { features?(tokio_codec_0_1_1_features {}) }: tokio_codec_0_1_1_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 tokio_io_0_1_9 ]);
-  };
-  tokio_codec_0_1_1_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    tokio_codec_0_1_1.default = (f.tokio_codec_0_1_1.default or true);
-    tokio_io_0_1_9.default = true;
-  }) [ bytes_0_4_10_features futures_0_1_24_features tokio_io_0_1_9_features ];
-  tokio_core_0_1_17 = { features?(tokio_core_0_1_17_features {}) }: tokio_core_0_1_17_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 iovec_0_1_2 log_0_4_5 mio_0_6_16 scoped_tls_0_1_2 tokio_0_1_11 tokio_executor_0_1_5 tokio_io_0_1_9 tokio_reactor_0_1_6 tokio_timer_0_2_7 ]);
-  };
-  tokio_core_0_1_17_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    iovec_0_1_2.default = true;
-    log_0_4_5.default = true;
-    mio_0_6_16.default = true;
-    scoped_tls_0_1_2.default = true;
-    tokio_0_1_11.default = true;
-    tokio_core_0_1_17.default = (f.tokio_core_0_1_17.default or true);
-    tokio_executor_0_1_5.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_reactor_0_1_6.default = true;
-    tokio_timer_0_2_7.default = true;
-  }) [ bytes_0_4_10_features futures_0_1_24_features iovec_0_1_2_features log_0_4_5_features mio_0_6_16_features scoped_tls_0_1_2_features tokio_0_1_11_features tokio_executor_0_1_5_features tokio_io_0_1_9_features tokio_reactor_0_1_6_features tokio_timer_0_2_7_features ];
-  tokio_current_thread_0_1_3 = { features?(tokio_current_thread_0_1_3_features {}) }: tokio_current_thread_0_1_3_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 tokio_executor_0_1_5 ]);
-  };
-  tokio_current_thread_0_1_3_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    tokio_current_thread_0_1_3.default = (f.tokio_current_thread_0_1_3.default or true);
-    tokio_executor_0_1_5.default = true;
-  }) [ futures_0_1_24_features tokio_executor_0_1_5_features ];
-  tokio_executor_0_1_5 = { features?(tokio_executor_0_1_5_features {}) }: tokio_executor_0_1_5_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 ]);
-  };
-  tokio_executor_0_1_5_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    tokio_executor_0_1_5.default = (f.tokio_executor_0_1_5.default or true);
-  }) [ futures_0_1_24_features ];
-  tokio_fs_0_1_3 = { features?(tokio_fs_0_1_3_features {}) }: tokio_fs_0_1_3_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 tokio_io_0_1_9 tokio_threadpool_0_1_7 ]);
-  };
-  tokio_fs_0_1_3_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    tokio_fs_0_1_3.default = (f.tokio_fs_0_1_3.default or true);
-    tokio_io_0_1_9.default = true;
-    tokio_threadpool_0_1_7.default = true;
-  }) [ futures_0_1_24_features tokio_io_0_1_9_features tokio_threadpool_0_1_7_features ];
-  tokio_io_0_1_9 = { features?(tokio_io_0_1_9_features {}) }: tokio_io_0_1_9_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 log_0_4_5 ]);
-  };
-  tokio_io_0_1_9_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    log_0_4_5.default = true;
-    tokio_io_0_1_9.default = (f.tokio_io_0_1_9.default or true);
-  }) [ bytes_0_4_10_features futures_0_1_24_features log_0_4_5_features ];
-  tokio_proto_0_1_1 = { features?(tokio_proto_0_1_1_features {}) }: tokio_proto_0_1_1_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 log_0_3_9 net2_0_2_33 rand_0_3_22 slab_0_3_0 smallvec_0_2_1 take_0_1_0 tokio_core_0_1_17 tokio_io_0_1_9 tokio_service_0_1_0 ]);
-  };
-  tokio_proto_0_1_1_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    log_0_3_9.default = true;
-    net2_0_2_33.default = true;
-    rand_0_3_22.default = true;
-    slab_0_3_0.default = true;
-    smallvec_0_2_1.default = true;
-    take_0_1_0.default = true;
-    tokio_core_0_1_17.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_proto_0_1_1.default = (f.tokio_proto_0_1_1.default or true);
-    tokio_service_0_1_0.default = true;
-  }) [ futures_0_1_24_features log_0_3_9_features net2_0_2_33_features rand_0_3_22_features slab_0_3_0_features smallvec_0_2_1_features take_0_1_0_features tokio_core_0_1_17_features tokio_io_0_1_9_features tokio_service_0_1_0_features ];
-  tokio_reactor_0_1_6 = { features?(tokio_reactor_0_1_6_features {}) }: tokio_reactor_0_1_6_ {
-    dependencies = mapFeatures features ([ crossbeam_utils_0_5_0 futures_0_1_24 lazy_static_1_1_0 log_0_4_5 mio_0_6_16 num_cpus_1_8_0 parking_lot_0_6_4 slab_0_4_1 tokio_executor_0_1_5 tokio_io_0_1_9 ]);
-  };
-  tokio_reactor_0_1_6_features = f: updateFeatures f (rec {
-    crossbeam_utils_0_5_0.default = true;
-    futures_0_1_24.default = true;
-    lazy_static_1_1_0.default = true;
-    log_0_4_5.default = true;
-    mio_0_6_16.default = true;
-    num_cpus_1_8_0.default = true;
-    parking_lot_0_6_4.default = true;
-    slab_0_4_1.default = true;
-    tokio_executor_0_1_5.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_reactor_0_1_6.default = (f.tokio_reactor_0_1_6.default or true);
-  }) [ crossbeam_utils_0_5_0_features futures_0_1_24_features lazy_static_1_1_0_features log_0_4_5_features mio_0_6_16_features num_cpus_1_8_0_features parking_lot_0_6_4_features slab_0_4_1_features tokio_executor_0_1_5_features tokio_io_0_1_9_features ];
-  tokio_service_0_1_0 = { features?(tokio_service_0_1_0_features {}) }: tokio_service_0_1_0_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 ]);
-  };
-  tokio_service_0_1_0_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    tokio_service_0_1_0.default = (f.tokio_service_0_1_0.default or true);
-  }) [ futures_0_1_24_features ];
-  tokio_tcp_0_1_2 = { features?(tokio_tcp_0_1_2_features {}) }: tokio_tcp_0_1_2_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 iovec_0_1_2 mio_0_6_16 tokio_io_0_1_9 tokio_reactor_0_1_6 ]);
-  };
-  tokio_tcp_0_1_2_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    iovec_0_1_2.default = true;
-    mio_0_6_16.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_reactor_0_1_6.default = true;
-    tokio_tcp_0_1_2.default = (f.tokio_tcp_0_1_2.default or true);
-  }) [ bytes_0_4_10_features futures_0_1_24_features iovec_0_1_2_features mio_0_6_16_features tokio_io_0_1_9_features tokio_reactor_0_1_6_features ];
-  tokio_threadpool_0_1_7 = { features?(tokio_threadpool_0_1_7_features {}) }: tokio_threadpool_0_1_7_ {
-    dependencies = mapFeatures features ([ crossbeam_deque_0_6_1 crossbeam_utils_0_5_0 futures_0_1_24 log_0_4_5 num_cpus_1_8_0 rand_0_5_5 tokio_executor_0_1_5 ]);
-  };
-  tokio_threadpool_0_1_7_features = f: updateFeatures f (rec {
-    crossbeam_deque_0_6_1.default = true;
-    crossbeam_utils_0_5_0.default = true;
-    futures_0_1_24.default = true;
-    log_0_4_5.default = true;
-    num_cpus_1_8_0.default = true;
-    rand_0_5_5.default = true;
-    tokio_executor_0_1_5.default = true;
-    tokio_threadpool_0_1_7.default = (f.tokio_threadpool_0_1_7.default or true);
-  }) [ crossbeam_deque_0_6_1_features crossbeam_utils_0_5_0_features futures_0_1_24_features log_0_4_5_features num_cpus_1_8_0_features rand_0_5_5_features tokio_executor_0_1_5_features ];
-  tokio_timer_0_2_7 = { features?(tokio_timer_0_2_7_features {}) }: tokio_timer_0_2_7_ {
-    dependencies = mapFeatures features ([ crossbeam_utils_0_5_0 futures_0_1_24 slab_0_4_1 tokio_executor_0_1_5 ]);
-  };
-  tokio_timer_0_2_7_features = f: updateFeatures f (rec {
-    crossbeam_utils_0_5_0.default = true;
-    futures_0_1_24.default = true;
-    slab_0_4_1.default = true;
-    tokio_executor_0_1_5.default = true;
-    tokio_timer_0_2_7.default = (f.tokio_timer_0_2_7.default or true);
-  }) [ crossbeam_utils_0_5_0_features futures_0_1_24_features slab_0_4_1_features tokio_executor_0_1_5_features ];
-  tokio_udp_0_1_2 = { features?(tokio_udp_0_1_2_features {}) }: tokio_udp_0_1_2_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 log_0_4_5 mio_0_6_16 tokio_codec_0_1_1 tokio_io_0_1_9 tokio_reactor_0_1_6 ]);
-  };
-  tokio_udp_0_1_2_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    log_0_4_5.default = true;
-    mio_0_6_16.default = true;
-    tokio_codec_0_1_1.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_reactor_0_1_6.default = true;
-    tokio_udp_0_1_2.default = (f.tokio_udp_0_1_2.default or true);
-  }) [ bytes_0_4_10_features futures_0_1_24_features log_0_4_5_features mio_0_6_16_features tokio_codec_0_1_1_features tokio_io_0_1_9_features tokio_reactor_0_1_6_features ];
-  tokio_uds_0_2_2 = { features?(tokio_uds_0_2_2_features {}) }: tokio_uds_0_2_2_ {
-    dependencies = mapFeatures features ([ bytes_0_4_10 futures_0_1_24 iovec_0_1_2 libc_0_2_43 log_0_4_5 mio_0_6_16 mio_uds_0_6_7 tokio_io_0_1_9 tokio_reactor_0_1_6 ]);
-  };
-  tokio_uds_0_2_2_features = f: updateFeatures f (rec {
-    bytes_0_4_10.default = true;
-    futures_0_1_24.default = true;
-    iovec_0_1_2.default = true;
-    libc_0_2_43.default = true;
-    log_0_4_5.default = true;
-    mio_0_6_16.default = true;
-    mio_uds_0_6_7.default = true;
-    tokio_io_0_1_9.default = true;
-    tokio_reactor_0_1_6.default = true;
-    tokio_uds_0_2_2.default = (f.tokio_uds_0_2_2.default or true);
-  }) [ bytes_0_4_10_features futures_0_1_24_features iovec_0_1_2_features libc_0_2_43_features log_0_4_5_features mio_0_6_16_features mio_uds_0_6_7_features tokio_io_0_1_9_features tokio_reactor_0_1_6_features ];
-  try_lock_0_1_0 = { features?(try_lock_0_1_0_features {}) }: try_lock_0_1_0_ {};
-  try_lock_0_1_0_features = f: updateFeatures f (rec {
-    try_lock_0_1_0.default = (f.try_lock_0_1_0.default or true);
-  }) [];
-  ucd_util_0_1_1 = { features?(ucd_util_0_1_1_features {}) }: ucd_util_0_1_1_ {};
-  ucd_util_0_1_1_features = f: updateFeatures f (rec {
-    ucd_util_0_1_1.default = (f.ucd_util_0_1_1.default or true);
-  }) [];
-  unicase_2_1_0 = { features?(unicase_2_1_0_features {}) }: unicase_2_1_0_ {
-    buildDependencies = mapFeatures features ([ version_check_0_1_5 ]);
-    features = mkFeatures (features.unicase_2_1_0 or {});
-  };
-  unicase_2_1_0_features = f: updateFeatures f (rec {
-    unicase_2_1_0.default = (f.unicase_2_1_0.default or true);
-    version_check_0_1_5.default = true;
-  }) [ version_check_0_1_5_features ];
-  unicode_xid_0_1_0 = { features?(unicode_xid_0_1_0_features {}) }: unicode_xid_0_1_0_ {
-    features = mkFeatures (features.unicode_xid_0_1_0 or {});
-  };
-  unicode_xid_0_1_0_features = f: updateFeatures f (rec {
-    unicode_xid_0_1_0.default = (f.unicode_xid_0_1_0.default or true);
-  }) [];
-  unreachable_1_0_0 = { features?(unreachable_1_0_0_features {}) }: unreachable_1_0_0_ {
-    dependencies = mapFeatures features ([ void_1_0_2 ]);
-  };
-  unreachable_1_0_0_features = f: updateFeatures f (rec {
-    unreachable_1_0_0.default = (f.unreachable_1_0_0.default or true);
-    void_1_0_2.default = (f.void_1_0_2.default or false);
-  }) [ void_1_0_2_features ];
-  utf8_ranges_1_0_1 = { features?(utf8_ranges_1_0_1_features {}) }: utf8_ranges_1_0_1_ {};
-  utf8_ranges_1_0_1_features = f: updateFeatures f (rec {
-    utf8_ranges_1_0_1.default = (f.utf8_ranges_1_0_1.default or true);
-  }) [];
-  version_check_0_1_5 = { features?(version_check_0_1_5_features {}) }: version_check_0_1_5_ {};
-  version_check_0_1_5_features = f: updateFeatures f (rec {
-    version_check_0_1_5.default = (f.version_check_0_1_5.default or true);
-  }) [];
-  void_1_0_2 = { features?(void_1_0_2_features {}) }: void_1_0_2_ {
-    features = mkFeatures (features.void_1_0_2 or {});
-  };
-  void_1_0_2_features = f: updateFeatures f (rec {
-    void_1_0_2.default = (f.void_1_0_2.default or true);
-    void_1_0_2.std =
-      (f.void_1_0_2.std or false) ||
-      (f.void_1_0_2.default or false) ||
-      (void_1_0_2.default or false);
-  }) [];
-  want_0_0_4 = { features?(want_0_0_4_features {}) }: want_0_0_4_ {
-    dependencies = mapFeatures features ([ futures_0_1_24 log_0_4_5 try_lock_0_1_0 ]);
-  };
-  want_0_0_4_features = f: updateFeatures f (rec {
-    futures_0_1_24.default = true;
-    log_0_4_5.default = true;
-    try_lock_0_1_0.default = true;
-    want_0_0_4.default = (f.want_0_0_4.default or true);
-  }) [ futures_0_1_24_features log_0_4_5_features try_lock_0_1_0_features ];
-  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
-  winapi_0_2_8_features = f: updateFeatures f (rec {
-    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
-  }) [];
-  winapi_0_3_6 = { features?(winapi_0_3_6_features {}) }: winapi_0_3_6_ {
-    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([ winapi_i686_pc_windows_gnu_0_4_0 ]) else [])
-      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([ winapi_x86_64_pc_windows_gnu_0_4_0 ]) else []);
-    features = mkFeatures (features.winapi_0_3_6 or {});
-  };
-  winapi_0_3_6_features = f: updateFeatures f (rec {
-    winapi_0_3_6.default = (f.winapi_0_3_6.default or true);
-    winapi_i686_pc_windows_gnu_0_4_0.default = true;
-    winapi_x86_64_pc_windows_gnu_0_4_0.default = true;
-  }) [ winapi_i686_pc_windows_gnu_0_4_0_features winapi_x86_64_pc_windows_gnu_0_4_0_features ];
-  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
-  winapi_build_0_1_1_features = f: updateFeatures f (rec {
-    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
-  }) [];
-  winapi_i686_pc_windows_gnu_0_4_0 = { features?(winapi_i686_pc_windows_gnu_0_4_0_features {}) }: winapi_i686_pc_windows_gnu_0_4_0_ {};
-  winapi_i686_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
-    winapi_i686_pc_windows_gnu_0_4_0.default = (f.winapi_i686_pc_windows_gnu_0_4_0.default or true);
-  }) [];
-  winapi_util_0_1_1 = { features?(winapi_util_0_1_1_features {}) }: winapi_util_0_1_1_ {
-    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_6 ]) else []);
-  };
-  winapi_util_0_1_1_features = f: updateFeatures f (rec {
-    winapi_0_3_6.consoleapi = true;
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.errhandlingapi = true;
-    winapi_0_3_6.fileapi = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.processenv = true;
-    winapi_0_3_6.std = true;
-    winapi_0_3_6.winbase = true;
-    winapi_0_3_6.wincon = true;
-    winapi_0_3_6.winerror = true;
-    winapi_util_0_1_1.default = (f.winapi_util_0_1_1.default or true);
-  }) [ winapi_0_3_6_features ];
-  winapi_x86_64_pc_windows_gnu_0_4_0 = { features?(winapi_x86_64_pc_windows_gnu_0_4_0_features {}) }: winapi_x86_64_pc_windows_gnu_0_4_0_ {};
-  winapi_x86_64_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
-    winapi_x86_64_pc_windows_gnu_0_4_0.default = (f.winapi_x86_64_pc_windows_gnu_0_4_0.default or true);
-  }) [];
-  wincolor_1_0_1 = { features?(wincolor_1_0_1_features {}) }: wincolor_1_0_1_ {
-    dependencies = mapFeatures features ([ winapi_0_3_6 winapi_util_0_1_1 ]);
-  };
-  wincolor_1_0_1_features = f: updateFeatures f (rec {
-    winapi_0_3_6.default = true;
-    winapi_0_3_6.minwindef = true;
-    winapi_0_3_6.wincon = true;
-    winapi_util_0_1_1.default = true;
-    wincolor_1_0_1.default = (f.wincolor_1_0_1.default or true);
-  }) [ winapi_0_3_6_features winapi_util_0_1_1_features ];
-  ws2_32_sys_0_2_1 = { features?(ws2_32_sys_0_2_1_features {}) }: ws2_32_sys_0_2_1_ {
-    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
-    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
-  };
-  ws2_32_sys_0_2_1_features = f: updateFeatures f (rec {
-    winapi_0_2_8.default = true;
-    winapi_build_0_1_1.default = true;
-    ws2_32_sys_0_2_1.default = (f.ws2_32_sys_0_2_1.default or true);
-  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
-  yaml_rust_0_4_2 = { features?(yaml_rust_0_4_2_features {}) }: yaml_rust_0_4_2_ {
-    dependencies = mapFeatures features ([ linked_hash_map_0_5_1 ]);
-  };
-  yaml_rust_0_4_2_features = f: updateFeatures f (rec {
-    linked_hash_map_0_5_1.default = true;
-    yaml_rust_0_4_2.default = (f.yaml_rust_0_4_2.default or true);
-  }) [ linked_hash_map_0_5_1_features ];
+    src = exclude [ ".git" "target" ] /nix/store/lk795k7bz6d9b9bhax09dhc5wpddmna5-rust-cardano-4403a9f/exe-common/../storage-units;
+    dependencies = mapFeatures features ([
+      (cratesIO.crates."cryptoxide"."${deps."storage_units"."0.1.0"."cryptoxide"}" deps)
+      (cratesIO.crates."rand"."${deps."storage_units"."0.1.0"."rand"}" deps)
+    ]);
+  };
+  features_.storage_units."0.1.0" = deps: f: updateFeatures f (rec {
+    cryptoxide."${deps.storage_units."0.1.0".cryptoxide}".default = true;
+    rand."${deps.storage_units."0.1.0".rand}".default = true;
+    storage_units."0.1.0".default = (f.storage_units."0.1.0".default or true);
+  }) [
+    (cratesIO.features_.cryptoxide."${deps."storage_units"."0.1.0"."cryptoxide"}" deps)
+    (cratesIO.features_.rand."${deps."storage_units"."0.1.0"."rand"}" deps)
+  ];
+
+
+
+}; in
+
+rec {
+  all_crates = crates.crates.all_crates."1.1.1" deps;
+  __all = [ (all_crates {}) ];
+  deps.aho_corasick."0.6.9" = {
+    memchr = "2.1.1";
+  };
+  deps.all_crates."1.1.1" = {
+    cardano = "0.1.0";
+    cardano_storage = "0.1.0";
+    env_logger = "0.5.13";
+    exe_common = "0.1.0";
+    generate_msg = "0.1.0";
+    log = "0.4.6";
+    nom = "3.2.1";
+    protocol = "0.1.0";
+    rustfbp = "0.3.34";
+    storage_units = "0.1.0";
+  };
+  deps.arrayvec."0.4.8" = {
+    nodrop = "0.1.13";
+  };
+  deps.atty."0.2.11" = {
+    termion = "1.5.1";
+    libc = "0.2.44";
+    winapi = "0.3.6";
+  };
+  deps.base64."0.9.3" = {
+    byteorder = "1.2.7";
+    safemem = "0.3.0";
+  };
+  deps.bitflags."1.0.4" = {};
+  deps.byteorder."1.2.7" = {};
+  deps.bytes."0.4.11" = {
+    byteorder = "1.2.7";
+    iovec = "0.1.2";
+  };
+  deps.cardano."0.1.0" = {
+    cbor_event = "1.0.1";
+    cryptoxide = "0.1.0";
+    serde = "1.0.80";
+    serde_derive = "1.0.80";
+  };
+  deps.cardano_storage."0.1.0" = {
+    cardano = "0.1.0";
+    cbor_event = "1.0.1";
+    log = "0.4.6";
+    rand = "0.4.3";
+    storage_units = "0.1.0";
+  };
+  deps.cbor_event."1.0.1" = {};
+  deps.cc."1.0.25" = {};
+  deps.cfg_if."0.1.6" = {};
+  deps.cloudabi."0.0.3" = {
+    bitflags = "1.0.4";
+  };
+  deps.crossbeam_deque."0.6.2" = {
+    crossbeam_epoch = "0.6.1";
+    crossbeam_utils = "0.6.1";
+  };
+  deps.crossbeam_epoch."0.6.1" = {
+    arrayvec = "0.4.8";
+    cfg_if = "0.1.6";
+    crossbeam_utils = "0.6.1";
+    lazy_static = "1.2.0";
+    memoffset = "0.2.1";
+    scopeguard = "0.3.3";
+  };
+  deps.crossbeam_utils."0.6.1" = {
+    cfg_if = "0.1.6";
+  };
+  deps.cryptoxide."0.1.0" = {};
+  deps.dtoa."0.4.3" = {};
+  deps.env_logger."0.5.13" = {
+    atty = "0.2.11";
+    humantime = "1.2.0";
+    log = "0.4.6";
+    regex = "1.0.6";
+    termcolor = "1.0.4";
+  };
+  deps.env_logger."0.6.0" = {
+    atty = "0.2.11";
+    humantime = "1.2.0";
+    log = "0.4.6";
+    regex = "1.0.6";
+    termcolor = "1.0.4";
+  };
+  deps.exe_common."0.1.0" = {
+    cardano = "0.1.0";
+    cardano_storage = "0.1.0";
+    cbor_event = "1.0.1";
+    futures = "0.1.25";
+    hyper = "0.11.27";
+    log = "0.4.6";
+    protocol = "0.1.0";
+    rand = "0.4.3";
+    serde = "1.0.80";
+    serde_derive = "1.0.80";
+    serde_yaml = "0.7.5";
+    storage_units = "0.1.0";
+    tokio_core = "0.1.17";
+  };
+  deps.fuchsia_zircon."0.3.3" = {
+    bitflags = "1.0.4";
+    fuchsia_zircon_sys = "0.3.3";
+  };
+  deps.fuchsia_zircon_sys."0.3.3" = {};
+  deps.futures."0.1.25" = {};
+  deps.futures_cpupool."0.1.8" = {
+    futures = "0.1.25";
+    num_cpus = "1.8.0";
+  };
+  deps.generate_msg."0.1.0" = {
+    syn = "0.12.15";
+  };
+  deps.httparse."1.3.3" = {};
+  deps.humantime."1.2.0" = {
+    quick_error = "1.2.2";
+  };
+  deps.hyper."0.11.27" = {
+    base64 = "0.9.3";
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    futures_cpupool = "0.1.8";
+    httparse = "1.3.3";
+    iovec = "0.1.2";
+    language_tags = "0.2.2";
+    log = "0.4.6";
+    mime = "0.3.12";
+    net2 = "0.2.33";
+    percent_encoding = "1.0.1";
+    relay = "0.1.1";
+    time = "0.1.40";
+    tokio_core = "0.1.17";
+    tokio_io = "0.1.10";
+    tokio_proto = "0.1.1";
+    tokio_service = "0.1.0";
+    unicase = "2.2.0";
+    want = "0.0.4";
+  };
+  deps.iovec."0.1.2" = {
+    libc = "0.2.44";
+    winapi = "0.2.8";
+  };
+  deps.kernel32_sys."0.2.2" = {
+    winapi = "0.2.8";
+    winapi_build = "0.1.1";
+  };
+  deps.language_tags."0.2.2" = {};
+  deps.lazy_static."1.2.0" = {};
+  deps.lazycell."1.2.0" = {};
+  deps.libc."0.2.44" = {};
+  deps.libloading."0.5.0" = {
+    cc = "1.0.25";
+    winapi = "0.3.6";
+  };
+  deps.linked_hash_map."0.5.1" = {};
+  deps.lock_api."0.1.5" = {
+    owning_ref = "0.4.0";
+    scopeguard = "0.3.3";
+  };
+  deps.log."0.3.9" = {
+    log = "0.4.6";
+  };
+  deps.log."0.4.6" = {
+    cfg_if = "0.1.6";
+  };
+  deps.memchr."1.0.2" = {
+    libc = "0.2.44";
+  };
+  deps.memchr."2.1.1" = {
+    cfg_if = "0.1.6";
+    libc = "0.2.44";
+    version_check = "0.1.5";
+  };
+  deps.memoffset."0.2.1" = {};
+  deps.mime."0.3.12" = {
+    unicase = "2.2.0";
+  };
+  deps.mio."0.6.16" = {
+    iovec = "0.1.2";
+    lazycell = "1.2.0";
+    log = "0.4.6";
+    net2 = "0.2.33";
+    slab = "0.4.1";
+    fuchsia_zircon = "0.3.3";
+    fuchsia_zircon_sys = "0.3.3";
+    libc = "0.2.44";
+    kernel32_sys = "0.2.2";
+    miow = "0.2.1";
+    winapi = "0.2.8";
+  };
+  deps.mio_uds."0.6.7" = {
+    iovec = "0.1.2";
+    libc = "0.2.44";
+    mio = "0.6.16";
+  };
+  deps.miow."0.2.1" = {
+    kernel32_sys = "0.2.2";
+    net2 = "0.2.33";
+    winapi = "0.2.8";
+    ws2_32_sys = "0.2.1";
+  };
+  deps.net2."0.2.33" = {
+    cfg_if = "0.1.6";
+    libc = "0.2.44";
+    winapi = "0.3.6";
+  };
+  deps.nodrop."0.1.13" = {};
+  deps.nom."3.2.1" = {
+    memchr = "1.0.2";
+  };
+  deps.num_cpus."1.8.0" = {
+    libc = "0.2.44";
+  };
+  deps.owning_ref."0.4.0" = {
+    stable_deref_trait = "1.1.1";
+  };
+  deps.parking_lot."0.6.4" = {
+    lock_api = "0.1.5";
+    parking_lot_core = "0.3.1";
+  };
+  deps.parking_lot_core."0.3.1" = {
+    rand = "0.5.5";
+    smallvec = "0.6.7";
+    rustc_version = "0.2.3";
+    libc = "0.2.44";
+    winapi = "0.3.6";
+  };
+  deps.percent_encoding."1.0.1" = {};
+  deps.proc_macro2."0.2.3" = {
+    unicode_xid = "0.1.0";
+  };
+  deps.proc_macro2."0.4.24" = {
+    unicode_xid = "0.1.0";
+  };
+  deps.protocol."0.1.0" = {
+    cardano = "0.1.0";
+    cbor_event = "1.0.1";
+    log = "0.4.6";
+  };
+  deps.quick_error."1.2.2" = {};
+  deps.quote."0.4.2" = {
+    proc_macro2 = "0.2.3";
+  };
+  deps.quote."0.6.10" = {
+    proc_macro2 = "0.4.24";
+  };
+  deps.rand."0.3.22" = {
+    libc = "0.2.44";
+    rand = "0.4.3";
+    fuchsia_zircon = "0.3.3";
+  };
+  deps.rand."0.4.3" = {
+    fuchsia_zircon = "0.3.3";
+    libc = "0.2.44";
+    winapi = "0.3.6";
+  };
+  deps.rand."0.5.5" = {
+    rand_core = "0.2.2";
+    cloudabi = "0.0.3";
+    fuchsia_zircon = "0.3.3";
+    libc = "0.2.44";
+    winapi = "0.3.6";
+  };
+  deps.rand."0.6.1" = {
+    rand_chacha = "0.1.0";
+    rand_core = "0.3.0";
+    rand_hc = "0.1.0";
+    rand_isaac = "0.1.1";
+    rand_pcg = "0.1.1";
+    rand_xorshift = "0.1.0";
+    rustc_version = "0.2.3";
+    cloudabi = "0.0.3";
+    fuchsia_zircon = "0.3.3";
+    libc = "0.2.44";
+    winapi = "0.3.6";
+  };
+  deps.rand_chacha."0.1.0" = {
+    rand_core = "0.3.0";
+    rustc_version = "0.2.3";
+  };
+  deps.rand_core."0.2.2" = {
+    rand_core = "0.3.0";
+  };
+  deps.rand_core."0.3.0" = {};
+  deps.rand_hc."0.1.0" = {
+    rand_core = "0.3.0";
+  };
+  deps.rand_isaac."0.1.1" = {
+    rand_core = "0.3.0";
+  };
+  deps.rand_pcg."0.1.1" = {
+    rand_core = "0.3.0";
+    rustc_version = "0.2.3";
+  };
+  deps.rand_xorshift."0.1.0" = {
+    rand_core = "0.3.0";
+  };
+  deps.redox_syscall."0.1.43" = {};
+  deps.redox_termios."0.1.1" = {
+    redox_syscall = "0.1.43";
+  };
+  deps.regex."1.0.6" = {
+    aho_corasick = "0.6.9";
+    memchr = "2.1.1";
+    regex_syntax = "0.6.3";
+    thread_local = "0.3.6";
+    utf8_ranges = "1.0.2";
+  };
+  deps.regex_syntax."0.6.3" = {
+    ucd_util = "0.1.3";
+  };
+  deps.relay."0.1.1" = {
+    futures = "0.1.25";
+  };
+  deps.rustc_version."0.2.3" = {
+    semver = "0.9.0";
+  };
+  deps.rustfbp."0.3.34" = {
+    env_logger = "0.6.0";
+    libloading = "0.5.0";
+    threadpool = "1.7.1";
+  };
+  deps.safemem."0.3.0" = {};
+  deps.scoped_tls."0.1.2" = {};
+  deps.scopeguard."0.3.3" = {};
+  deps.semver."0.9.0" = {
+    semver_parser = "0.7.0";
+  };
+  deps.semver_parser."0.7.0" = {};
+  deps.serde."1.0.80" = {};
+  deps.serde_derive."1.0.80" = {
+    proc_macro2 = "0.4.24";
+    quote = "0.6.10";
+    syn = "0.15.22";
+  };
+  deps.serde_yaml."0.7.5" = {
+    dtoa = "0.4.3";
+    linked_hash_map = "0.5.1";
+    serde = "1.0.80";
+    yaml_rust = "0.4.2";
+  };
+  deps.slab."0.3.0" = {};
+  deps.slab."0.4.1" = {};
+  deps.smallvec."0.2.1" = {};
+  deps.smallvec."0.6.7" = {
+    unreachable = "1.0.0";
+  };
+  deps.stable_deref_trait."1.1.1" = {};
+  deps.storage_units."0.1.0" = {
+    cryptoxide = "0.1.0";
+    rand = "0.5.5";
+  };
+  deps.syn."0.12.15" = {
+    proc_macro2 = "0.2.3";
+    quote = "0.4.2";
+    unicode_xid = "0.1.0";
+  };
+  deps.syn."0.15.22" = {
+    proc_macro2 = "0.4.24";
+    quote = "0.6.10";
+    unicode_xid = "0.1.0";
+  };
+  deps.take."0.1.0" = {};
+  deps.termcolor."1.0.4" = {
+    wincolor = "1.0.1";
+  };
+  deps.termion."1.5.1" = {
+    libc = "0.2.44";
+    redox_syscall = "0.1.43";
+    redox_termios = "0.1.1";
+  };
+  deps.thread_local."0.3.6" = {
+    lazy_static = "1.2.0";
+  };
+  deps.threadpool."1.7.1" = {
+    num_cpus = "1.8.0";
+  };
+  deps.time."0.1.40" = {
+    libc = "0.2.44";
+    redox_syscall = "0.1.43";
+    winapi = "0.3.6";
+  };
+  deps.tokio."0.1.13" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    mio = "0.6.16";
+    num_cpus = "1.8.0";
+    tokio_codec = "0.1.1";
+    tokio_current_thread = "0.1.4";
+    tokio_executor = "0.1.5";
+    tokio_fs = "0.1.4";
+    tokio_io = "0.1.10";
+    tokio_reactor = "0.1.7";
+    tokio_tcp = "0.1.2";
+    tokio_threadpool = "0.1.9";
+    tokio_timer = "0.2.8";
+    tokio_udp = "0.1.3";
+    tokio_uds = "0.2.4";
+  };
+  deps.tokio_codec."0.1.1" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    tokio_io = "0.1.10";
+  };
+  deps.tokio_core."0.1.17" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    iovec = "0.1.2";
+    log = "0.4.6";
+    mio = "0.6.16";
+    scoped_tls = "0.1.2";
+    tokio = "0.1.13";
+    tokio_executor = "0.1.5";
+    tokio_io = "0.1.10";
+    tokio_reactor = "0.1.7";
+    tokio_timer = "0.2.8";
+  };
+  deps.tokio_current_thread."0.1.4" = {
+    futures = "0.1.25";
+    tokio_executor = "0.1.5";
+  };
+  deps.tokio_executor."0.1.5" = {
+    futures = "0.1.25";
+  };
+  deps.tokio_fs."0.1.4" = {
+    futures = "0.1.25";
+    tokio_io = "0.1.10";
+    tokio_threadpool = "0.1.9";
+  };
+  deps.tokio_io."0.1.10" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    log = "0.4.6";
+  };
+  deps.tokio_proto."0.1.1" = {
+    futures = "0.1.25";
+    log = "0.3.9";
+    net2 = "0.2.33";
+    rand = "0.3.22";
+    slab = "0.3.0";
+    smallvec = "0.2.1";
+    take = "0.1.0";
+    tokio_core = "0.1.17";
+    tokio_io = "0.1.10";
+    tokio_service = "0.1.0";
+  };
+  deps.tokio_reactor."0.1.7" = {
+    crossbeam_utils = "0.6.1";
+    futures = "0.1.25";
+    lazy_static = "1.2.0";
+    log = "0.4.6";
+    mio = "0.6.16";
+    num_cpus = "1.8.0";
+    parking_lot = "0.6.4";
+    slab = "0.4.1";
+    tokio_executor = "0.1.5";
+    tokio_io = "0.1.10";
+  };
+  deps.tokio_service."0.1.0" = {
+    futures = "0.1.25";
+  };
+  deps.tokio_tcp."0.1.2" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    iovec = "0.1.2";
+    mio = "0.6.16";
+    tokio_io = "0.1.10";
+    tokio_reactor = "0.1.7";
+  };
+  deps.tokio_threadpool."0.1.9" = {
+    crossbeam_deque = "0.6.2";
+    crossbeam_utils = "0.6.1";
+    futures = "0.1.25";
+    log = "0.4.6";
+    num_cpus = "1.8.0";
+    rand = "0.6.1";
+    tokio_executor = "0.1.5";
+  };
+  deps.tokio_timer."0.2.8" = {
+    crossbeam_utils = "0.6.1";
+    futures = "0.1.25";
+    slab = "0.4.1";
+    tokio_executor = "0.1.5";
+  };
+  deps.tokio_udp."0.1.3" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    log = "0.4.6";
+    mio = "0.6.16";
+    tokio_codec = "0.1.1";
+    tokio_io = "0.1.10";
+    tokio_reactor = "0.1.7";
+  };
+  deps.tokio_uds."0.2.4" = {
+    bytes = "0.4.11";
+    futures = "0.1.25";
+    iovec = "0.1.2";
+    libc = "0.2.44";
+    log = "0.4.6";
+    mio = "0.6.16";
+    mio_uds = "0.6.7";
+    tokio_codec = "0.1.1";
+    tokio_io = "0.1.10";
+    tokio_reactor = "0.1.7";
+  };
+  deps.try_lock."0.1.0" = {};
+  deps.ucd_util."0.1.3" = {};
+  deps.unicase."2.2.0" = {
+    version_check = "0.1.5";
+  };
+  deps.unicode_xid."0.1.0" = {};
+  deps.unreachable."1.0.0" = {
+    void = "1.0.2";
+  };
+  deps.utf8_ranges."1.0.2" = {};
+  deps.version_check."0.1.5" = {};
+  deps.void."1.0.2" = {};
+  deps.want."0.0.4" = {
+    futures = "0.1.25";
+    log = "0.4.6";
+    try_lock = "0.1.0";
+  };
+  deps.winapi."0.2.8" = {};
+  deps.winapi."0.3.6" = {
+    winapi_i686_pc_windows_gnu = "0.4.0";
+    winapi_x86_64_pc_windows_gnu = "0.4.0";
+  };
+  deps.winapi_build."0.1.1" = {};
+  deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
+  deps.winapi_util."0.1.1" = {
+    winapi = "0.3.6";
+  };
+  deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
+  deps.wincolor."1.0.1" = {
+    winapi = "0.3.6";
+    winapi_util = "0.1.1";
+  };
+  deps.ws2_32_sys."0.2.1" = {
+    winapi = "0.2.8";
+    winapi_build = "0.1.1";
+  };
+  deps.yaml_rust."0.4.2" = {
+    linked_hash_map = "0.5.1";
+  };
 }
diff --git a/modules/rs/crates/default.nix b/modules/rs/crates/default.nix
index b5c4e1ba..6fb360a7 100644
--- a/modules/rs/crates/default.nix
+++ b/modules/rs/crates/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildPlatform, buildRustCrate, fetchgit, edgesModule, rustc, makeWrapper, stdenv }:
+{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit, edgesModule, rustc, makeWrapper, stdenv }:
 
 let
   mapFeatures = features: map (fun: fun { features = features; });
-  crates = import ./Cargo.nix { inherit lib buildPlatform buildRustCrate fetchgit; }; in
+  crates = import ./Cargo.nix { inherit lib buildPlatform buildRustCrate buildRustCrateHelpers cratesIO fetchgit; }; in
 crates // rec {
   rustfbp_0_3_34 = { features?(crates.rustfbp_0_3_34_features {}) }: (crates.rustfbp_0_3_34_ {
     dependencies = mapFeatures features ([ crates.env_logger_0_5_13 libloading_0_5_0 crates.threadpool_1_7_1 ]);
diff --git a/modules/rs/crates/update.sh b/modules/rs/crates/update.sh
index d7819d4e..eacedf9e 100755
--- a/modules/rs/crates/update.sh
+++ b/modules/rs/crates/update.sh
@@ -7,6 +7,6 @@ set -u
 nix-build Cargo.toml.nix | xargs cat > Cargo.toml.new
 mv Cargo.toml{.new,}
 cargo generate-lockfile
-carnix nix --src ./. 
+carnix generate-nix --src ./.
 nix-build Cargo.nix.nix | xargs cat > Cargo.nix.new
 mv Cargo.nix{.new,}
diff --git a/modules/rs/default.nix b/modules/rs/default.nix
index 14e651cd..d7e6bba1 100644
--- a/modules/rs/default.nix
+++ b/modules/rs/default.nix
@@ -2,7 +2,7 @@
 let
   crates = import ./crates {
     inherit (buffet) edgesModule;
-    inherit (buffet.pkgs) buildRustCrate fetchgit lib makeWrapper stdenv;
+    inherit (buffet.pkgs) buildRustCrate buildRustCrateHelpers cratesIO fetchgit lib makeWrapper stdenv;
     inherit (buffet.pkgs.rust) rustc;
     inherit (buffet.pkgs.stdenv) buildPlatform;
   };
diff --git a/release.nix b/release.nix
index 6eee97dc..22245453 100644
--- a/release.nix
+++ b/release.nix
@@ -5,8 +5,8 @@ let
   genJobs = pkgs: {
     inherit (pkgs) fractalide rkt-tests;
     rs-tests = import ./tests;
-    cardano = (import ./. { inherit pkgs; }).mods.rs.cardano_0_1_0;
-    rustfbp = (import ./. {}).mods.rs.rustfbp_0_3_34;
+    cardano = (import ./. { inherit pkgs; }).mods.rs.deps.cardano."0.1.0";
+    rustfbp = (import ./. {}).mods.rs.deps.rustfbp."0.3.34";
   };
 in
   (genJobs (import ./pkgs {})) //


Test patch: