Add shutdown function to make actions before offline

[?]
Jan 22, 2019, 7:56 PM
5Y6YJ6UH55XJLPQ627ZGKTHW3IUFPFS5C4AYNCS6BX4BAWPLEZQAC

Dependencies

  • [2] WBU7UOQW Read chatroom from config
  • [3] IK3YDPTY Update deps
  • [4] 5A5UVGNM Move receiver closing logic out of xmpp processing
  • [5] QTCUURXN Add additional requirement for command stream
  • [6] TDOR5XQU Accept destination
  • [7] CBWCXUZZ Prepare adding new items to roster
  • [8] ALP2YJIU Rename XmppState to XmppProcessState
  • [9] QWE26TMV update deps
  • [10] RGOSS73U Convert self-presence to xmpp_parser's type
  • [11] OGMBXBKP Move online to XmppConnection
  • [12] VS6AHRWI Move XMPP to separate dir
  • [13] HU3NZX5Z Process self-presence via new processing code
  • [14] PVCRPP3B Some servers don't send to in initial presence
  • [15] 5OBTKGDL Update deps
  • [16] X6L47BHQ Use different structure for established xmpp connection
  • [17] ACXUIS63 Update dependecies
  • [18] 77USPY5I Sending messages works!
  • [19] UCY2DO3D Try to read request body
  • [20] QYY3KRGL Use failure instead Box<dyn Error>
  • [21] 3GEU7TC7 Welcome to 2018!
  • [22] 5IKA4GO7 Rename xmpp client field from "inner" to "client"
  • [23] AGIW6YR3 Use shared future for signal everywhere
  • [24] BWDUANCV Second part of processing result is only about stop_future
  • [25] HKSQO7JZ Enable hyper http server and configuration
  • [26] ZI4GJ72V Add message to xmpp command
  • [27] EOHEZXX3 Move request processing to structure
  • [28] 4LRBIGVT Show info about xmpp errors
  • [29] XGP44R5H Rework stopping xmpp connection
  • [30] FV6BJ5K6 Send self-presence and store account info in Rc so it willbe used in some future in parallel
  • [31] AYQZ2UIA Update deps
  • [32] FVVPKFTL Initial commit
  • [33] V5HDBSZM Use jid for receiver address
  • [34] OANBCLN5 Move xmpp client into XmppState
  • [35] NDDQQP2P Update deps
  • [36] OB3HA2MD Use Client::new_with_jid to parse jid only once

Change contents

  • edit in src/xmpp/stanzas.rs at line 3
    [3.26][3.26:83]()
    use xmpp_parsers::message::{Body, Message, MessageType};
  • replacement in src/xmpp/stanzas.rs at line 24
    [3.360][3.360:430]()
    pub fn make_add_roster(id: &str, jid: xmpp_parsers::Jid) -> Element {
    [3.360]
    [3.430]
    pub fn make_add_roster(id: &str, jid: jid::Jid) -> Element {
  • edit in src/xmpp/stanzas.rs at line 30
    [3.613][3.613:663]()
    ask: xmpp_parsers::roster::Ask::None,
  • edit in src/xmpp/stanzas.rs at line 37
    [3.796][3.796:952](),[3.952][3.207:227](),[3.207][3.207:227](),[3.227][3.953:1191](),[3.1191][3.455:457](),[3.455][3.455:457]()
    pub fn make_ask_subscribe(jid: xmpp_parsers::Jid) -> Element {
    let mut presence = Presence::new(PresenceType::Subscribe);
    presence.to = Some(jid);
    presence.into()
    }
    pub fn make_chat_message(jid: xmpp_parsers::Jid, text: String) -> Element {
    let mut message = Message::new(Some(jid));
    message.bodies.insert(String::new(), Body(text));
    message.type_ = MessageType::Chat;
    message.into()
    }
  • replacement in src/xmpp/mod.rs at line 15
    [3.1300][3.1300:1391]()
    roster: HashMap<xmpp_parsers::Jid, (xmpp_parsers::roster::Subscription, Vec<String>)>,
    [3.1300]
    [3.1391]
    roster: HashMap<jid::Jid, ()>,
  • replacement in src/xmpp/mod.rs at line 20
    [3.1542][3.1542:1616]()
    pending_add_roster_ids: HashMap<String, (xmpp_parsers::Jid, String)>,
    [3.1542]
    [3.1616]
    pending_add_roster_ids: HashMap<String, (jid::Jid, String)>,
  • replacement in src/xmpp/mod.rs at line 86
    [3.2671][3.2671:2727]()
    as Box<dyn Future<Item = _, Error = _>>
    [3.2671]
    [3.944]
    as Box<Future<Item = _, Error = _>>
  • replacement in src/xmpp/mod.rs at line 94
    [3.1591][3.2728:2918]()
    let client =
    Client::new_with_jid(account.jid.clone(), &account.password);
    info!("xmpp initialized");
    [3.1591]
    [3.1476]
    let res_client = Client::new(&account.jid, &account.password);
    match res_client {
    Err(_e) => Box::new(future::ok(future::Loop::Continue(account)))
    as Box<Future<Item = _, Error = _>>,
    Ok(client) => {
    info!("xmpp initialized");
  • replacement in src/xmpp/mod.rs at line 101
    [3.1477][3.2919:3055]()
    let stop_future2 = stop_future.clone();
    let stop_future3 = stop_future.clone();
    [3.1477]
    [3.1065]
    let stop_future2 = stop_future.clone();
    let stop_future3 = stop_future.clone();
  • replacement in src/xmpp/mod.rs at line 104
    [3.1066][3.3056:3467]()
    // future to wait for online
    Box::new(
    XmppConnection {
    state: XmppState {
    client,
    data: std::default::Default::default(),
    },
    account,
    [3.1066]
    [3.3128]
    // future to wait for online
    Box::new(
    XmppConnection {
    state: XmppState {
    client,
    data: std::default::Default::default(),
    },
    account,
    }
    .processing(XmppConnection::online, stop_future.clone())
    .map_err(|(acc, _)| acc)
    .and_then(|(conn, r)| match r {
    Ok(Either::A(_)) => future::ok(conn),
    Ok(Either::B(_)) => future::err(conn.account),
    Err(_e) => future::err(conn.account),
    })
    .and_then(|conn| conn.initial_roster(stop_future2))
    .and_then(|conn| conn.self_presence(stop_future3))
    .then(
    |r| match r {
    Ok(conn) => future::ok(future::Loop::Break(conn)),
    Err(acc) => future::ok(future::Loop::Continue(acc)),
    },
    ),
    )
  • replacement in src/xmpp/mod.rs at line 130
    [3.3162][3.3468:4405]()
    .processing(XmppConnection::online, stop_future.clone())
    .map_err(|(acc, _)| acc)
    .and_then(|(conn, r)| match r {
    Ok(Either::A(_)) => future::ok(conn),
    Ok(Either::B(_)) => future::err(conn.account),
    Err(_e) => future::err(conn.account),
    })
    .and_then(|conn| conn.initial_roster(stop_future2))
    .and_then(|conn| conn.self_presence(stop_future3))
    .then(|r| match r {
    Ok(conn) => future::ok(future::Loop::Break(conn)),
    Err(acc) => future::ok(future::Loop::Continue(acc)),
    }),
    )
    [3.3162]
    [3.3192]
    }
  • replacement in src/xmpp/mod.rs at line 161
    [3.4888][3.4888:4947]()
    if let Some((_, (jid, message))) =
    [3.4888]
    [3.4947]
    if let Some((_, (jid, _message))) =
  • edit in src/xmpp/mod.rs at line 166
    [3.5217][3.5217:5948]()
    if let Some(ref mut rdata) = self.state.data.roster.get_mut(&jid) {
    rdata.1.push(message);
    } else {
    self.state.data.roster.insert(
    jid,
    (xmpp_parsers::roster::Subscription::None, vec![message]),
    );
    }
    } else {
    warn!(
    "Wrong payload when adding {} to roster: {:?}",
    jid, iq.payload
    );
  • replacement in src/xmpp/mod.rs at line 173
    [3.6271][3.6271:8083]()
    for i in roster.items {
    if let Some(ref mut rdata) = self.state.data.roster.get_mut(&i.jid)
    {
    info!("Update {} in roster", i.jid);
    rdata.0 = i.subscription;
    if !rdata.1.is_empty() {
    let sub_to = match rdata.0 {
    xmpp_parsers::roster::Subscription::To => true,
    xmpp_parsers::roster::Subscription::Both => true,
    _ => false,
    };
    if sub_to {
    info!("Subscribed to {}", i.jid);
    let jid = i.jid.clone();
    self.state.data.send_queue.extend(
    rdata.1.drain(..).map(|message| {
    stanzas::make_chat_message(jid.clone(), message)
    }),
    )
    } else {
    info!("Not subscribed to {}", i.jid);
    self.state
    .data
    .send_queue
    .push_back(stanzas::make_ask_subscribe(i.jid));
    }
    }
    } else {
    [3.6271]
    [3.8083]
    self.state
    .data
    .roster
    .extend(roster.items.into_iter().map(|i| {
  • replacement in src/xmpp/mod.rs at line 178
    [3.8153][3.8153:8440]()
    self.state
    .data
    .roster
    .insert(i.jid, (i.subscription, vec![]));
    }
    }
    [3.8153]
    [3.8440]
    (i.jid, ())
    }));
  • replacement in src/xmpp/mod.rs at line 387
    [3.17734][3.17734:18005]()
    self.state
    .data
    .roster
    .insert(i.jid, (i.subscription, vec![]));
    [3.17734]
    [3.18005]
    self.state.data.roster.insert(i.jid, ());
  • replacement in src/xmpp/mod.rs at line 518
    [3.21716][3.21716:21800]()
    if let Some(ref mut rdata) = self.state.data.roster.get_mut(&cmd.xmpp_to) {
    [3.21716]
    [3.21800]
    if self.state.data.roster.get(&cmd.xmpp_to).is_some() {
  • edit in src/xmpp/mod.rs at line 520
    [3.21852][3.21852:22614]()
    let sub_to = match rdata.0 {
    xmpp_parsers::roster::Subscription::To => true,
    xmpp_parsers::roster::Subscription::Both => true,
    _ => false,
    };
    if sub_to {
    info!("Subscribed to {}", cmd.xmpp_to);
    self.state
    .data
    .send_queue
    .push_back(stanzas::make_chat_message(cmd.xmpp_to, cmd.message));
    } else {
    info!("Not subscribed to {}", cmd.xmpp_to);
    rdata.1.push(cmd.message);
    self.state
    .data
    .send_queue
    .push_back(stanzas::make_ask_subscribe(cmd.xmpp_to));
    }
  • edit in src/xmpp/mod.rs at line 535
    [3.12136]
    [3.3789]
    fn shutdown(self) -> impl Future<Item = (), Error = failure::Error> {
    info!("Shutdown connection");
    future::ok(())
    }
  • replacement in src/xmpp/mod.rs at line 543
    [3.60][3.23197:23285]()
    pub struct XmppCommand {
    pub xmpp_to: xmpp_parsers::Jid,
    pub message: String,
    }
    [3.60]
    [3.3816]
    pub struct XmppCommand;
  • replacement in src/xmpp/mod.rs at line 592
    [3.24278][3.24278:24363]()
    future::err(format_err!("Command receiver is gone"))
    [3.24278]
    [3.24363]
    error!("Command receiver is gone");
    future::ok(future::Loop::Break(Some(conn)))
  • replacement in src/xmpp/mod.rs at line 606
    [3.24895][3.24895:24963]()
    future::ok(future::Loop::Break(()))
    [3.24895]
    [3.24963]
    future::ok(future::Loop::Break(Some(conn)))
  • replacement in src/xmpp/mod.rs at line 609
    [3.25019][3.25019:25109]()
    Err(_) => future::err(format_err!("Command receiver is broken")),
    [3.25019]
    [3.25109]
    Err(_) => {
    error!("Command receiver is broken");
    future::ok(future::Loop::Break(Some(conn)))
    }
  • replacement in src/xmpp/mod.rs at line 635
    [3.26249][3.26249:26317]()
    future::ok(future::Loop::Break(()))
    [3.26249]
    [3.26317]
    future::ok(future::Loop::Break(None))
  • edit in src/xmpp/mod.rs at line 643
    [3.6451]
    [3.7379]
    .and_then(|opt_conn| {
    if let Some(conn) = opt_conn {
    Box::new(conn.shutdown()) as Box<dyn Future<Item = (), Error = _>>
    } else {
    Box::new(future::ok(()))
    }
    })
  • edit in src/main.rs at line 1
    [3.3533]
    [3.3581]
    #![deny(missing_docs)]
    //! XMPP client service
  • edit in src/main.rs at line 7
    [3.3621]
    [3.3643]
    extern crate minidom;
  • edit in src/main.rs at line 9
    [3.3656]
    [3.3712]
    extern crate log;
    extern crate env_logger;
    #[macro_use]
  • edit in src/main.rs at line 14
    [3.3759]
    [3.3787]
    extern crate tokio_channel;
  • edit in src/main.rs at line 17
    [3.3839]
    [3.3874]
    #[macro_use]
    extern crate failure;
  • edit in src/main.rs at line 20
    [3.3893]
    [3.3920]
    extern crate xmpp_parsers;
  • replacement in src/main.rs at line 22
    [3.3921][2.0:35]()
    use hyper::service::service_fn_ok;
    [3.3921]
    [3.3953]
    use hyper::service::service_fn;
  • edit in src/main.rs at line 25
    [3.4000]
    [3.4036]
    use tokio::runtime::current_thread;
  • edit in src/main.rs at line 27
    [3.4065]
    [3.4092]
    use tokio::prelude::Sink;
  • replacement in src/main.rs at line 31
    [3.4105][2.36:56]()
    use config::Config;
    [3.4105]
    [3.30772]
    use crate::config::Config;
  • replacement in src/main.rs at line 33
    [3.30773][2.57:151](),[2.151][3.31331:31333](),[3.31331][3.31331:31333]()
    fn hello_world(_req: Request<Body>) -> Response<Body> {
    Response::new(Body::from("Test"))
    }
    [3.30773]
    [3.31333]
    mod xmpp;
    use crate::xmpp::{xmpp_process, XmppCommand};
    mod stoppable_receiver;
    use crate::stoppable_receiver::stop_receiver;
  • edit in src/main.rs at line 40
    [3.30]
    [3.4287]
    env_logger::init();
  • replacement in src/main.rs at line 52
    [3.4638][2.152:177]()
    ).get_matches();
    [3.4638]
    [3.4672]
    )
    .get_matches();
  • replacement in src/main.rs at line 55
    [3.4673][2.178:266]()
    let config = Config::new(args.value_of("config").expect("Mandatory option config"))
    [3.4673]
    [3.4762]
    let config = Config::read(args.value_of("config").expect("Mandatory option config"))
  • replacement in src/main.rs at line 63
    [3.4954][2.267:292]()
    .map_err(|_| ())
    [3.4954]
    [3.5020]
    .map_err(|e| {
    error!("Cann't get CTRL+C signal: {}", e.0);
    e.0
    })
  • edit in src/main.rs at line 69
    [3.5106]
    [3.5106]
    let (cmd_send, cmd_recv) = tokio_channel::mpsc::channel(10);
  • replacement in src/main.rs at line 72
    [3.5155][2.293:339]()
    .serve(|| service_fn_ok(hello_world))
    [3.5155]
    [3.5935]
    .serve(move || {
    let cmd_send = cmd_send.clone();
    service_fn(move |_req: Request<Body>| {
    info!("Got request");
    cmd_send.clone().send(XmppCommand {}).then(|r| match r {
    Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted"))),
    Err(e) => {
    error!("Command sent error: {}", e);
    tokio::prelude::future::result(
    Response::builder()
    .status(hyper::StatusCode::BAD_REQUEST)
    .body(Body::from(format!("Command sent error: {}", e))),
    )
    }
    })
    })
    })
  • replacement in src/main.rs at line 90
    [3.5995][2.340:396]()
    .map_err(|e| eprintln!("server error: {}", e));
    [3.5995]
    [3.6048]
    .map_err(|e| error!("server error: {}", e));
    let mut rt = Runtime::new().expect("Cann't start tokio");
  • replacement in src/main.rs at line 94
    [3.6049][2.397:430]()
    hyper::rt::run(http_server);
    [3.6049]
    [3.61]
    rt.spawn(http_server);
    let xmpp_join = std::thread::spawn(move || -> Result<(), failure::Error> {
    let recv = stop_receiver(cmd_recv, ctrl_c.clone().map(|_| ()));
    // Launch single-threaded runtime
    let mut ctrt = current_thread::Runtime::new()?;
    let result = ctrt.block_on(xmpp_process(ctrl_c.clone(), recv, config.account));
    info!("Stopping xmpp thread");
    result
    });
    info!("Server started");
    rt.shutdown_on_idle().wait().expect("Shutdown error");
    info!("Server stopped");
    xmpp_join
    .join()
    .expect("Join xmpp thread")
    .expect("Result xmpp thread");
  • replacement in src/config.rs at line 10
    [2.549][2.549:603]()
    pub chatroom: HashMap<String, xmpp_parsers::Jid>,
    [2.549]
    [3.1549]
    pub chatrooms: HashMap<String, xmpp_parsers::Jid>,
  • replacement in src/config.rs at line 20
    [3.1681][2.604:668]()
    pub fn new<P: AsRef<Path>>(path: P) -> io::Result<Config> {
    [3.1681]
    [3.1745]
    pub fn read<P: AsRef<Path>>(path: P) -> io::Result<Self> {
  • edit in Cargo.toml at line 6
    [3.12171]
    [3.12171]
    edition = "2018"
  • edit in Cargo.toml at line 10
    [3.6857]
    [3.6879]
    tokio-channel = "0.1"
  • edit in Cargo.toml at line 13
    [2.1367]
    [3.6935]
    failure = "0.1"
  • edit in Cargo.toml at line 19
    [3.7012]
    [2.1368]
    log = "0.4"
    env_logger = "0.6"
    minidom = "=0.9.1" # dependency of tokio-xmpp
    xmpp-parsers = "0.11"
    try_from = "=0.2.2" # dependency of xmpp-parsers
  • edit in Cargo.lock at line 0
    [3.12201]
    [3.7323]
    [[package]]
    name = "aho-corasick"
    version = "0.6.9"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 18
    [3.7561][2.1370:1388]()
    version = "0.3.4"
    [3.7561]
    [2.1388]
    version = "0.3.6"
  • replacement in Cargo.lock at line 28
    [3.7789][2.1503:1521]()
    version = "0.4.7"
    [3.7789]
    [3.7807]
    version = "0.4.8"
  • replacement in Cargo.lock at line 31
    [3.7889][2.1522:1596]()
    "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.7889]
    [3.7963]
    "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 39
    [3.8093][2.1597:1669]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8093]
    [3.8165]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 53
    [2.2036][2.2036:2108]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.2036]
    [2.2108]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 65
    [3.9271][2.2366:2438]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.9271]
    [2.2438]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 76
    [2.2610][2.2610:2682]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.2610]
    [3.9778]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 124
    [3.11081][2.3310:3329]()
    version = "0.4.10"
    [3.11081]
    [3.11100]
    version = "0.4.11"
  • replacement in Cargo.lock at line 189
    [3.13233][2.3623:3695]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13233]
    [3.13305]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 197
    [3.16590][2.3696:3768]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16590]
    [3.34124]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 202
    [3.13561][2.3769:3787]()
    version = "0.6.1"
    [3.13561]
    [3.13579]
    version = "0.6.2"
  • replacement in Cargo.lock at line 205
    [3.13661][2.3788:3952]()
    "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)",
    [3.13661]
    [3.13825]
    "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)",
  • replacement in Cargo.lock at line 211
    [3.13865][2.3953:3971]()
    version = "0.5.2"
    [3.13865]
    [3.13883]
    version = "0.6.1"
  • replacement in Cargo.lock at line 214
    [3.13965][2.3972:4047]()
    "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13965]
    [3.14040]
    "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 216
    [3.14113][2.4048:4208]()
    "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)",
    [3.14113]
    [3.14273]
    "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)",
  • replacement in Cargo.lock at line 224
    [3.14466][2.4209:4227]()
    version = "0.5.0"
    [3.14466]
    [2.4227]
    version = "0.6.1"
  • edit in Cargo.lock at line 226
    [2.4292]
    [2.4292]
    dependencies = [
    "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 268
    [3.15825][2.4801:4820]()
    version = "0.8.10"
    [3.15825]
    [3.15844]
    version = "0.8.12"
  • edit in Cargo.lock at line 272
    [3.15999]
    [3.15999]
    ]
    [[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)",
  • replacement in Cargo.lock at line 316
    [3.17353][2.5212:5515]()
    "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.14 (registry+https://github.com/rust-lang/crates.io-index)",
    "synstructure 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.17353]
    [3.17657]
    "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)",
    "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 392
    [3.19586][2.5611:5630]()
    version = "0.1.13"
    [3.19586]
    [3.19605]
    version = "0.1.14"
  • replacement in Cargo.lock at line 396
    [2.5707][2.5707:5780]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.5707]
    [3.19836]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 399
    [3.19981][2.5781:5853]()
    "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19981]
    [3.20053]
    "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 401
    [3.20128][2.5854:5924]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20128]
    [2.5924]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 403
    [2.5995][2.5995:6068]()
    "string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.5995]
    [2.6068]
    "string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 412
    [3.20551][2.6145:6217]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20551]
    [3.20623]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 418
    [3.20726][2.6218:6237]()
    version = "0.1.13"
    [3.20726]
    [3.20745]
    version = "0.1.14"
  • replacement in Cargo.lock at line 421
    [3.20827][2.6238:6311]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20827]
    [3.20900]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 429
    [3.21092]
    [3.21092]
    source = "registry+https://github.com/rust-lang/crates.io-index"
    [[package]]
    name = "humantime"
    version = "1.2.0"
  • edit in Cargo.lock at line 435
    [3.21157]
    [3.21157]
    dependencies = [
    "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 441
    [3.21397][2.6312:6332]()
    version = "0.12.13"
    [3.21397]
    [3.21417]
    version = "0.12.17"
  • replacement in Cargo.lock at line 444
    [3.21499][2.6333:6406]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.21499]
    [3.21572]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 447
    [3.21729][2.6407:6549]()
    "h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
    "http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.21729]
    [3.21871]
    "h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
    "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 452
    [3.22089][2.6550:6620]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.22089]
    [3.22159]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 455
    [2.6693][2.6693:6766]()
    "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.6693]
    [2.6766]
    "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 458
    [2.6923][2.6923:7003]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.6923]
    [2.7003]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 460
    [2.7079][2.7079:7240]()
    "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
    "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.7079]
    [3.22850]
    "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)",
  • replacement in Cargo.lock at line 485
    [3.23535][2.7241:7313]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23535]
    [3.23607]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 491
    [3.23713][2.7314:7332]()
    version = "0.1.7"
    [3.23713]
    [3.23731]
    version = "0.1.9"
  • replacement in Cargo.lock at line 532
    [3.25092][2.7582:7600]()
    version = "1.1.0"
    [3.25092]
    [3.25110]
    version = "1.2.0"
  • edit in Cargo.lock at line 534
    [3.25175][2.7601:7700]()
    dependencies = [
    "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 537
    [3.25206][2.7701:7719]()
    version = "1.2.0"
    [3.25206]
    [3.25224]
    version = "1.2.1"
  • replacement in Cargo.lock at line 542
    [3.25316][2.7720:7739]()
    version = "0.2.43"
    [3.25316]
    [3.25335]
    version = "0.2.44"
  • replacement in Cargo.lock at line 552
    [3.25552][2.7740:7758]()
    version = "0.1.4"
    [3.25552]
    [3.25570]
    version = "0.1.5"
  • replacement in Cargo.lock at line 555
    [3.25652][2.7759:7836]()
    "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.25652]
    [3.25729]
    "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 557
    [3.25806][3.25806:25834](),[3.25806][3.25806:25834](),[3.25834][2.7837:8007]()
    ]
    [[package]]
    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)",
  • replacement in Cargo.lock at line 561
    [2.8035][2.8035:8053]()
    version = "0.4.5"
    [2.8035]
    [3.25852]
    version = "0.4.6"
  • replacement in Cargo.lock at line 589
    [2.8376][2.8376:8454]()
    "serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.8376]
    [3.26849]
    "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 602
    [3.27233][2.8530:8548]()
    version = "2.1.0"
    [3.27233]
    [3.27251]
    version = "2.1.1"
  • replacement in Cargo.lock at line 606
    [3.27406][2.8549:8621]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27406]
    [2.8621]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 634
    [3.28483][2.8954:9171]()
    "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)",
    [3.28483]
    [3.28700]
    "lazycell 1.2.1 (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)",
  • replacement in Cargo.lock at line 649
    [3.29191][2.9244:9316]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29191]
    [3.29263]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 669
    [3.29899][2.9317:9537]()
    "lazy_static 1.1.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)",
    [3.29899]
    [2.9537]
    "lazy_static 1.2.0 (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)",
  • replacement in Cargo.lock at line 678
    [2.9868][2.9868:9943]()
    "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.9868]
    [3.30679]
    "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 687
    [3.30882][2.9944:10016]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30882]
    [3.30954]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 701
    [3.31282][2.10017:10036]()
    version = "0.1.12"
    [3.31282]
    [3.31301]
    version = "0.1.13"
  • replacement in Cargo.lock at line 722
    [3.31827][2.10056:10128]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31827]
    [3.31899]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 733
    [3.32261][2.10150:10300]()
    "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.32261]
    [2.10300]
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 749
    [2.10470][2.10470:10542]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.10470]
    [3.32888]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 756
    [3.33073][2.10543:10561]()
    version = "0.3.3"
    [3.33073]
    [3.33091]
    version = "0.4.0"
  • replacement in Cargo.lock at line 767
    [3.33394][2.10581:10656]()
    "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33394]
    [2.10656]
    "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 776
    [3.33693][2.10759:10831]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33693]
    [2.10831]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 779
    [3.33916][2.10903:10978]()
    "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33916]
    [3.33991]
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 834
    [3.35464][2.11448:11467]()
    version = "0.4.20"
    [3.35464]
    [3.35483]
    version = "0.4.24"
  • replacement in Cargo.lock at line 850
    [3.35895][2.11488:11567]()
    "encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.35895]
    [2.11567]
    "encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 852
    [2.11641][2.11641:11784]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    "memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.11641]
    [3.36191]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 863
    [3.36333][2.11785:11803]()
    version = "0.6.8"
    [3.36333]
    [3.16647]
    version = "0.6.10"
  • replacement in Cargo.lock at line 866
    [3.16729][2.11804:11883]()
    "proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16729]
    [3.16808]
    "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 875
    [3.37153][2.11903:11975]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.37153]
    [3.37301]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 886
    [2.12151][2.12151:12223]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.12151]
    [2.12223]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 888
    [2.12299]
    [3.38260]
    "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)",
  • edit in Cargo.lock at line 907
    [3.38333]
    [3.38333]
    ]
    [[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)",
  • edit in Cargo.lock at line 929
    [3.38887]
    [3.38887]
    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"
  • edit in Cargo.lock at line 943
    [3.38952]
    [3.38952]
    dependencies = [
    "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • edit in Cargo.lock at line 948
    [3.38965]
    [3.39887]
    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]]
  • replacement in Cargo.lock at line 966
    [3.39910][2.12300:12319]()
    version = "0.1.40"
    [3.39910]
    [3.39929]
    version = "0.1.43"
  • edit in Cargo.lock at line 972
    [3.40048]
    [3.40259]
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
    [[package]]
    name = "regex"
    version = "1.0.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "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.2 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
    [[package]]
    name = "regex-syntax"
    version = "0.6.3"
  • replacement in Cargo.lock at line 994
    [3.40341][2.12320:12401]()
    "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.40341]
    [3.40729]
    "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1029
    [3.41801][2.12440:12458]()
    version = "0.2.6"
    [3.41801]
    [2.12458]
    version = "0.2.7"
  • replacement in Cargo.lock at line 1051
    [3.42407][2.12741:12819]()
    "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42407]
    [3.42485]
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1067
    [3.42985][2.12839:12911]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42985]
    [2.12911]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1077
    [3.43379][2.13020:13092]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43379]
    [3.43451]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1098
    [3.43904][2.13093:13167]()
    "hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43904]
    [2.13167]
    "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
    "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    "hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)",
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "minidom 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1105
    [2.13320][2.13320:13472]()
    "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    "tokio-signal 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.13320]
    [2.13472]
    "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
    "tokio-channel 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    "tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1109
    [2.13549][2.13549:13620]()
    "toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.13549]
    [3.44887]
    "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    "try_from 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
    "xmpp-parsers 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1124
    [3.45137][2.13661:13884]()
    "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.14 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45137]
    [3.45361]
    "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)",
  • replacement in Cargo.lock at line 1131
    [3.45396][2.13885:13904]()
    version = "1.0.32"
    [3.45396]
    [3.45415]
    version = "1.0.33"
  • replacement in Cargo.lock at line 1135
    [3.45568][2.13905:13975]()
    "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45568]
    [2.13975]
    "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1174
    [3.47047][2.14796:14814]()
    version = "0.1.5"
    [3.47047]
    [3.47065]
    version = "0.1.6"
  • replacement in Cargo.lock at line 1177
    [3.47147][2.14815:14962]()
    "arc-swap 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.47147]
    [3.47294]
    "arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1193
    [3.47552][2.14982:15000]()
    version = "0.6.5"
    [3.47552]
    [3.47570]
    version = "0.6.6"
  • replacement in Cargo.lock at line 1205
    [3.47935][2.15001:15154]()
    "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)",
    [3.47935]
    [3.48088]
    "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)",
  • replacement in Cargo.lock at line 1217
    [3.48316][2.15155:15173]()
    version = "0.1.1"
    [3.48316]
    [3.48334]
    version = "0.1.2"
  • replacement in Cargo.lock at line 1225
    [3.48534][2.15174:15252]()
    "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.48534]
    [3.48612]
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1241
    [2.15565][2.15565:15716]()
    "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)",
    [2.15565]
    [3.49563]
    "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)",
  • replacement in Cargo.lock at line 1268
    [3.50268][2.15717:15737]()
    version = "0.15.14"
    [3.50268]
    [3.50288]
    version = "0.15.22"
  • replacement in Cargo.lock at line 1271
    [3.50370][2.15738:15889]()
    "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)",
    [3.50370]
    [3.50522]
    "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)",
  • replacement in Cargo.lock at line 1286
    [3.50846][2.15890:15909]()
    version = "0.10.0"
    [3.50846]
    [3.50865]
    version = "0.10.1"
  • replacement in Cargo.lock at line 1289
    [3.50947][2.15910:16133]()
    "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.14 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.50947]
    [3.51171]
    "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)",
  • replacement in Cargo.lock at line 1297
    [3.51282][2.16134:16152]()
    version = "3.0.4"
    [3.51282]
    [3.51300]
    version = "3.0.5"
  • replacement in Cargo.lock at line 1301
    [3.51455][2.16153:16377]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51455]
    [3.51679]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
    "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1316
    [2.16469]
    [3.52387]
    ]
    [[package]]
    name = "termcolor"
    version = "1.0.4"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1331
    [3.52519][2.16470:16623]()
    "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)",
    [3.52519]
    [3.52672]
    "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)",
  • edit in Cargo.lock at line 1342
    [3.52966]
    [3.52966]
    ]
    [[package]]
    name = "thread_local"
    version = "0.3.6"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1357
    [3.53311][2.16644:16797]()
    "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)",
    [3.53311]
    [3.53464]
    "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)",
  • replacement in Cargo.lock at line 1364
    [3.53567][2.16798:16817]()
    version = "0.1.11"
    [3.53567]
    [3.53586]
    version = "0.1.13"
  • replacement in Cargo.lock at line 1367
    [3.53668][2.16818:16891]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53668]
    [3.53741]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1370
    [3.53887]
    [3.53962]
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1372
    [3.54040][2.16892:16979]()
    "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.54040]
    [2.16979]
    "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1376
    [2.17211][2.17211:17291]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.17211]
    [2.17291]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1378
    [2.17367][2.17367:17680]()
    "tokio-threadpool 0.1.8 (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.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.17367]
    [3.55024]
    "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]]
    name = "tokio-channel"
    version = "0.1.0"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1397
    [3.55160][2.17681:17754]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.55160]
    [3.55233]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1404
    [3.55429][2.17832:17850]()
    version = "0.1.3"
    [3.55429]
    [3.55447]
    version = "0.1.4"
  • replacement in Cargo.lock at line 1426
    [2.18047][2.18047:18130]()
    "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.18047]
    [3.56266]
    "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1434
    [3.56400][2.18151:18224]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56400]
    [3.56473]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1436
    [3.56548][2.18225:18295]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56548]
    [3.56618]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1441
    [3.56656][2.18296:18314]()
    version = "0.1.6"
    [3.56656]
    [3.56674]
    version = "0.1.7"
  • replacement in Cargo.lock at line 1444
    [3.56756][2.18315:18397]()
    "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56756]
    [3.56838]
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1446
    [3.56913][2.18398:18546]()
    "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)",
    [3.56913]
    [3.57061]
    "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)",
  • replacement in Cargo.lock at line 1458
    [3.57550][2.18929:18947]()
    version = "0.2.6"
    [3.57550]
    [3.57568]
    version = "0.2.7"
  • replacement in Cargo.lock at line 1462
    [3.57725][2.18948:19020]()
    "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57725]
    [3.57797]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1465
    [3.57942][2.19021:19099]()
    "signal-hook 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57942]
    [2.19099]
    "signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1468
    [2.19256][2.19256:19336]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.19256]
    [3.58257]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1477
    [3.58464][2.19356:19429]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.58464]
    [3.58537]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1482
    [2.19506][2.19506:19586]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.19506]
    [3.58911]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1487
    [3.58952][2.19587:19605]()
    version = "0.1.8"
    [3.58952]
    [3.58970]
    version = "0.1.9"
  • replacement in Cargo.lock at line 1490
    [3.59052][2.19606:19770]()
    "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)",
    [3.59052]
    [3.59216]
    "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)",
  • replacement in Cargo.lock at line 1493
    [3.59291][2.19771:19841]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59291]
    [2.19841]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1495
    [2.19916][2.19916:19987]()
    "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.19916]
    [2.19987]
    "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1501
    [3.59624][2.20069:20087]()
    version = "0.2.7"
    [3.59624]
    [3.59642]
    version = "0.2.8"
  • replacement in Cargo.lock at line 1504
    [3.59724][2.20088:20170]()
    "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59724]
    [3.59806]
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1522
    [3.60429][2.20420:20438]()
    version = "0.1.2"
    [3.60429]
    [3.60447]
    version = "0.1.3"
  • replacement in Cargo.lock at line 1525
    [3.60529][2.20439:20512]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.60529]
    [3.60602]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1527
    [3.60677][2.20513:20583]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.60677]
    [3.60747]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1531
    [2.20660][2.20660:20740]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.20660]
    [3.61052]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1536
    [3.61086][2.20741:20759]()
    version = "0.2.3"
    [3.61086]
    [3.61104]
    version = "0.2.4"
  • replacement in Cargo.lock at line 1539
    [3.61186][2.20760:20833]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.61186]
    [3.61259]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1542
    [3.61406][2.20834:20976]()
    "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)",
    [3.61406]
    [3.61548]
    "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)",
  • edit in Cargo.lock at line 1546
    [3.61693]
    [2.20977]
    "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1548
    [2.21053][2.21053:21133]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.21053]
    [3.61927]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1556
    [3.62062][2.21153:21226]()
    "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.62062]
    [3.62135]
    "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1565
    [2.21520][2.21520:21593]()
    "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.21520]
    [3.62802]
    "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1572
    [2.21988][2.21988:22064]()
    "xml5ever 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.21988]
    [2.22064]
    "xml5ever 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1578
    [3.63459][2.22145:22163]()
    version = "0.4.8"
    [3.63459]
    [3.63478]
    version = "0.4.10"
  • replacement in Cargo.lock at line 1593
    [3.64074][2.22413:22561]()
    "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)",
    [3.64074]
    [2.22561]
    "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)",
  • replacement in Cargo.lock at line 1596
    [2.22632][2.22632:22707]()
    "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.22632]
    [3.64368]
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1600
    [2.22865][2.22865:22945]()
    "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.22865]
    [2.22945]
    "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1602
    [2.23021][2.23021:23245]()
    "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)",
    "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.23021]
    [3.64979]
    "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)",
    "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1615
    [3.65349][2.23345:23568]()
    "ipconfig 0.1.7 (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)",
    [3.65349]
    [3.65572]
    "ipconfig 0.1.9 (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)",
  • replacement in Cargo.lock at line 1620
    [2.23647][2.23647:23795]()
    "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
    "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [2.23647]
    [2.23795]
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1638
    [3.66235]
    [3.66349]
    source = "registry+https://github.com/rust-lang/crates.io-index"
    [[package]]
    name = "ucd-util"
    version = "0.1.3"
  • replacement in Cargo.lock at line 1683
    [3.67338][2.23897:23915]()
    version = "1.7.1"
    [3.67338]
    [3.67356]
    version = "1.7.2"
  • edit in Cargo.lock at line 1694
    [2.23934]
    [3.67714]
    source = "registry+https://github.com/rust-lang/crates.io-index"
    [[package]]
    name = "utf8-ranges"
    version = "1.0.2"
  • replacement in Cargo.lock at line 1727
    [3.68551][2.24055:24125]()
    "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.68551]
    [3.68621]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1761
    [3.69508]
    [3.69717]
    name = "winapi-util"
    version = "0.1.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    dependencies = [
    "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
    [[package]]
  • edit in Cargo.lock at line 1771
    [3.69773]
    [3.69773]
    source = "registry+https://github.com/rust-lang/crates.io-index"
    [[package]]
    name = "wincolor"
    version = "1.0.1"
  • edit in Cargo.lock at line 1777
    [3.69838]
    [3.70122]
    dependencies = [
    "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
    "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 1809
    [3.70849][2.24126:24145]()
    version = "0.12.0"
    [3.70849]
    [3.70868]
    version = "0.12.1"
  • replacement in Cargo.lock at line 1812
    [3.70950][2.24146:24216]()
    "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.70950]
    [3.71020]
    "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1836
    [3.72117]
    [3.72272]
    "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e"
  • replacement in Cargo.lock at line 1838
    [3.72425][2.25042:25193]()
    "checksum arc-swap 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "af192669a9f44d2fb63c691a04183c8e12428f34041449270b08c0456587f5a5"
    [3.72425]
    [2.25193]
    "checksum arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5c5ed110e2537bdd3f5b9091707a8a5556a72ac49bbd7302ae0b28fdccb3246c"
  • replacement in Cargo.lock at line 1840
    [2.25344][2.25344:25495]()
    "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
    [2.25344]
    [3.72878]
    "checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc"
  • replacement in Cargo.lock at line 1851
    [2.26716][2.26716:26865]()
    "checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62"
    [2.26716]
    [3.74545]
    "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa"
  • replacement in Cargo.lock at line 1861
    [3.75914][2.27173:27647]()
    "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"
    [3.75914]
    [2.27647]
    "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"
  • replacement in Cargo.lock at line 1868
    [2.28104][2.28104:28259]()
    "checksum encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)" = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5"
    [2.28104]
    [2.28259]
    "checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb"
    "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
  • replacement in Cargo.lock at line 1884
    [2.28879][2.28879:29025]()
    "checksum h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed"
    [2.28879]
    [3.79616]
    "checksum h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "1ac030ae20dee464c5d0f36544d8b914a6bc606da44a57e052d2b0f5dae129e0"
  • replacement in Cargo.lock at line 1886
    [3.79767][2.29026:29174]()
    "checksum http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "24f58e8c2d8e886055c3ead7b28793e1455270b5fb39650984c224bc538ba581"
    [3.79767]
    [3.79915]
    "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab"
  • replacement in Cargo.lock at line 1888
    [3.80066][2.29175:29325]()
    "checksum hyper 0.12.13 (registry+https://github.com/rust-lang/crates.io-index)" = "95ffee0d1d30de4313fdaaa485891ce924991d45bbc18adfc8ac5b1639e62fbb"
    [3.80066]
    [3.80368]
    "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
    "checksum hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c49a75385d35ff5e9202755f09beb0b878a05c4c363fcc52b23eeb5dcb6782cc"
  • replacement in Cargo.lock at line 1893
    [3.80814][2.29326:29477]()
    "checksum ipconfig 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "fccb81dd962b29a25de46c4f46e497b75117aa816468b6fff7a63a598a192394"
    [3.80814]
    [3.80965]
    "checksum ipconfig 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "08f7eadeaf4b52700de180d147c4805f199854600b36faa963d91114827b2ffc"
  • replacement in Cargo.lock at line 1898
    [3.81562][2.29625:30078]()
    "checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7"
    "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"
    [3.81562]
    [3.82015]
    "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
    "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
    "checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
  • replacement in Cargo.lock at line 1902
    [3.82173][2.30079:30522]()
    "checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a"
    "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"
    [3.82173]
    [3.82470]
    "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
    "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
  • replacement in Cargo.lock at line 1908
    [3.83072][2.30678:30827]()
    "checksum memchr 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4b3629fe9fdbff6daa6c33b90f7c08355c1aca05a3d01fa8063b822fcf185f3b"
    [3.83072]
    [3.83221]
    "checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
  • replacement in Cargo.lock at line 1917
    [3.84432][2.30979:31129]()
    "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2"
    [3.84432]
    [3.84582]
    "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
  • replacement in Cargo.lock at line 1924
    [2.31589][2.31589:31742]()
    "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
    [2.31589]
    [2.31742]
    "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
  • replacement in Cargo.lock at line 1934
    [3.87055][2.32670:32825]()
    "checksum proc-macro2 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3d7b7eaaa90b4a90a932a9ea6666c95a389e424eff347f0f793979289429feee"
    [3.87055]
    [3.87210]
    "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09"
  • replacement in Cargo.lock at line 1938
    [3.87666][2.32980:33128]()
    "checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5"
    [3.87666]
    [2.33128]
    "checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
  • edit in Cargo.lock at line 1941
    [3.88109]
    [3.88410]
    "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"
  • replacement in Cargo.lock at line 1945
    [3.88714][2.33276:33433]()
    "checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1"
    [3.88714]
    [3.89481]
    "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"
  • edit in Cargo.lock at line 1951
    [3.89637]
    [3.89940]
    "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"
  • replacement in Cargo.lock at line 1957
    [3.90564][2.33746:33892]()
    "checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7"
    [3.90564]
    [2.33892]
    "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7"
  • replacement in Cargo.lock at line 1968
    [2.34822][2.34822:34976]()
    "checksum serde_json 1.0.32 (registry+https://github.com/rust-lang/crates.io-index)" = "43344e7ce05d0d8280c5940cabb4964bea626aa58b1ec0e8c73fa2a8512a38ce"
    [2.34822]
    [2.34976]
    "checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811"
  • replacement in Cargo.lock at line 1972
    [2.35418][2.35418:35572]()
    "checksum signal-hook 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f7ca1f1c0ed6c8beaab713ad902c041e4f09d06e1b4bb74c5fc553c078ed0110"
    [2.35418]
    [3.92998]
    "checksum signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8941ae94fa73d0f73b422774b3a40a7195cecd88d1c090f4b37ade7dc795ab66"
  • replacement in Cargo.lock at line 1975
    [2.35720][2.35720:35871]()
    "checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d"
    [2.35720]
    [3.93448]
    "checksum smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "622df2d454c29a4d89b30dc3b27b42d7d90d6b9e587dbf8f67652eb7514da484"
  • replacement in Cargo.lock at line 1978
    [3.93759][2.35872:36021]()
    "checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970"
    [3.93759]
    [3.93908]
    "checksum string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98998cced76115b1da46f63388b909d118a37ae0be0f82ad35773d4a4bc9d18d"
  • replacement in Cargo.lock at line 1984
    [3.94685][2.36022:36170]()
    "checksum syn 0.15.14 (registry+https://github.com/rust-lang/crates.io-index)" = "baaba45c6bf60fe29aaf241fa33306c0b75c801edea8378263a8f043b09a5634"
    [3.94685]
    [3.94833]
    "checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7"
  • replacement in Cargo.lock at line 1986
    [3.94982][2.36171:36478]()
    "checksum synstructure 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec37f4fab4bafaf6b5621c1d54e6aa5d4d059a8f84929e87abfdd7f9f04c6db2"
    "checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b"
    [3.94982]
    [2.36478]
    "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
    "checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2"
  • edit in Cargo.lock at line 1989
    [2.36628]
    [3.95591]
    "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
  • edit in Cargo.lock at line 1992
    [3.95893]
    [2.36629]
    "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
  • replacement in Cargo.lock at line 1994
    [2.36777][2.36777:36926]()
    "checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895"
    [2.36777]
    [3.96501]
    "checksum tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "a7817d4c98cc5be21360b3b37d6036fe9b7aefa5b7a201b7b16ff33423822f7d"
    "checksum tokio-channel 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "530d0fb87416dd531600f7cccc438bb35c5b91883065c9e6dca7cdecee991cfa"
  • replacement in Cargo.lock at line 1997
    [3.96655][2.36927:37090]()
    "checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c"
    [3.96655]
    [2.37090]
    "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6"
  • replacement in Cargo.lock at line 2001
    [2.37550][2.37550:37861]()
    "checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018"
    "checksum tokio-signal 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "40da88e6445ed335e14746b60986a6c8b3632b09bc9097df76b4a6ddd16f1f92"
    [2.37550]
    [2.37861]
    "checksum tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "502b625acb4ee13cbb3b90b8ca80e0addd263ddacf6931666ef751e610b07fb5"
    "checksum tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "dd6dc5276ea05ce379a16de90083ec80836440d5ef8a6a39545a3207373b8296"
  • replacement in Cargo.lock at line 2004
    [2.38013][2.38013:38326]()
    "checksum tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68"
    "checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e"
    [2.38013]
    [2.38326]
    "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"
  • replacement in Cargo.lock at line 2007
    [2.38478][2.38478:38782]()
    "checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c"
    "checksum tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70"
    [2.38478]
    [2.38782]
    "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"
  • replacement in Cargo.lock at line 2010
    [2.38935][2.38935:39082]()
    "checksum toml 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4a2ecc31b0351ea18b3fe11274b8db6e4d82bce861bbb22e6dbed40417902c65"
    [2.38935]
    [2.39082]
    "checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
  • edit in Cargo.lock at line 2016
    [3.99583]
    [3.99734]
    "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
  • replacement in Cargo.lock at line 2023
    [3.100671][2.39554:39700]()
    "checksum url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a321979c09843d272956e73700d12c4e7d3d92b2ee112b31548aef0d4efc5a6"
    [3.100671]
    [2.39700]
    "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
  • edit in Cargo.lock at line 2025
    [2.39848]
    [3.101119]
    "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
  • edit in Cargo.lock at line 2036
    [3.102642]
    [3.102796]
    "checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab"
  • edit in Cargo.lock at line 2038
    [3.102967]
    [3.103118]
    "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
  • replacement in Cargo.lock at line 2042
    [3.103570][2.40006:40158]()
    "checksum xml5ever 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ead952cf8bab253fb5cb56e1fff780747bbf7a7258fb0451afe645a166050b1f"
    [3.103570]
    [2.40158]
    "checksum xml5ever 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "32cd7ebf0203c620906230ce22caa5df0b603c32b6fef72a275a48f6a2ae64b9"