From cb03388c69027d50707e8b0a3e3763ff473c9edc Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 2 Feb 2016 16:17:54 +1100 Subject: [PATCH 01/14] kill reallocn --- ssh/misc.c | 21 --------------------- ssh/misc.h | 1 - ssh/mux.c | 5 ++--- 3 files changed, 2 insertions(+), 25 deletions(-) diff --git a/ssh/misc.c b/ssh/misc.c index 0793433..c4541d3 100644 --- a/ssh/misc.c +++ b/ssh/misc.c @@ -1018,27 +1018,6 @@ iptos2str(int iptos) return iptos_str; } -int -reallocn(void **ptr, size_t nmemb, size_t size) -{ - void *new_ptr; - size_t new_size = nmemb * size; - - if (new_size == 0 || - SIZE_T_MAX / nmemb < size) { - *ptr = NULL; - return SSH_ERR_INVALID_ARGUMENT; - } - if (*ptr == NULL) - new_ptr = malloc(new_size); - else - new_ptr = realloc(*ptr, new_size); - if (new_ptr == NULL) - return SSH_ERR_ALLOC_FAIL; - *ptr = new_ptr; - return 0; -} - void lowercase(char *s) { diff --git a/ssh/misc.h b/ssh/misc.h index cee7a56..53d469b 100644 --- a/ssh/misc.h +++ b/ssh/misc.h @@ -54,7 +54,6 @@ char *tohex(const void *, size_t); void sanitise_stdfd(void); void ms_subtract_diff(struct timeval *, int *); void ms_to_timeval(struct timeval *, int); -int reallocn(void **ptr, size_t nmemb, size_t size); time_t monotime(void); void lowercase(char *s); int unix_listener(const char *, int, int); diff --git a/ssh/mux.c b/ssh/mux.c index 4928f03..03671d1 100644 --- a/ssh/mux.c +++ b/ssh/mux.c @@ -366,9 +366,8 @@ process_mux_new_session(u_int rid, Channel *c, struct sshbuf *m, struct sshbuf * free(cp); continue; } - if ((r = reallocn((void **)&cctx->env, env_len + 2, - sizeof(*cctx->env))) != 0) - goto malf; + cctx->env = xreallocarray(cctx->env, env_len + 2, + sizeof(*cctx->env)); cctx->env[env_len++] = cp; cctx->env[env_len] = NULL; if (env_len > MUX_MAX_ENV_VARS) { From 48f240556174494f99ba080099ac9f3e7d55c92f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 8 Mar 2016 15:14:28 +1100 Subject: [PATCH 02/14] cvs update 20160307; keep conflicts --- ssh/CVS/Entries | 110 ++++++++++----------- ssh/auth-options.c | 8 +- ssh/auth-rh-rsa.c | 14 ++- ssh/auth-rhosts.c | 9 +- ssh/auth.c | 156 ++++++++++++++++++++++++++++- ssh/auth.h | 4 +- ssh/auth2-hostbased.c | 8 +- ssh/canohost.c | 34 +++++-- ssh/canohost.h | 12 ++- ssh/channels.c | 17 +++- ssh/clientloop.c | 30 +++++- ssh/dh.c | 23 +++-- ssh/kex.c | 21 +++- ssh/kex.h | 3 +- ssh/misc.c | 13 ++- ssh/misc.h | 3 +- ssh/moduli-gen/CVS/Entries | 12 +-- ssh/moduli-gen/moduli.2048 | 89 ++++++++++------- ssh/moduli-gen/moduli.3072 | 73 +++++++------- ssh/moduli-gen/moduli.4096 | 67 +++++++------ ssh/moduli-gen/moduli.6144 | 70 ++++++------- ssh/moduli-gen/moduli.7680 | 60 +++++------ ssh/moduli-gen/moduli.8192 | 57 +++++------ ssh/monitor.c | 16 +-- ssh/monitor_fdpass.c | 8 +- ssh/monitor_wrap.c | 17 +++- ssh/monitor_wrap.h | 16 ++- ssh/myproposal.h | 21 +--- ssh/packet.c | 197 ++++++++++++++++++++++++++++--------- ssh/packet.h | 12 ++- ssh/progressmeter.c | 13 ++- ssh/readconf.c | 9 +- ssh/scp.c | 10 +- ssh/servconf.c | 17 +++- ssh/serverloop.c | 70 ++++++++++--- ssh/session.c | 58 +++++++++-- ssh/session.h | 4 +- ssh/sftp-client.c | 22 ++--- ssh/sftp-server-main.c | 4 +- ssh/sftp-server.c | 3 +- ssh/sftp.c | 3 +- ssh/ssh-add.c | 3 +- ssh/ssh-agent.c | 3 +- ssh/ssh-keygen.1 | 14 ++- ssh/ssh-keygen.c | 3 +- ssh/ssh-keyscan.c | 3 +- ssh/ssh-keysign.8 | 6 +- ssh/ssh-keysign.c | 3 +- ssh/ssh-pkcs11-helper.c | 3 +- ssh/ssh-pkcs11.c | 8 +- ssh/ssh.1 | 73 +++++--------- ssh/ssh.c | 13 ++- ssh/ssh_config | 6 +- ssh/ssh_config.5 | 40 +++----- ssh/sshconnect2.c | 19 +++- ssh/sshd.8 | 21 ++-- ssh/sshd.c | 139 ++++++++++++++++++++++++-- ssh/sshd_config | 4 +- ssh/sshd_config.5 | 44 ++++----- ssh/version.h | 4 +- ssh/xmalloc.c | 10 +- ssh/xmalloc.h | 3 +- 62 files changed, 1238 insertions(+), 577 deletions(-) diff --git a/ssh/CVS/Entries b/ssh/CVS/Entries index 8b3fcc2..4ce0484 100644 --- a/ssh/CVS/Entries +++ b/ssh/CVS/Entries @@ -13,21 +13,16 @@ D/sshd//// D/moduli-gen//// /nchan.c/1.63/Fri Jan 6 10:00:48 2012// /serverloop.h/1.6/Mon Mar 19 16:04:54 2012// -/session.h/1.31/Result of merge// /ssh-gss.h/1.11/Result of merge// /ttymodes.c/1.29/Mon Mar 19 16:04:54 2012// /Makefile/1.15/Tue Feb 9 08:55:31 2010// /auth-chall.c/1.14/Result of merge// -/canohost.h/1.11/Fri Jan 6 10:00:45 2012// /gss-serv-krb5.c/1.8/Result of merge// /auth-passwd.c/1.44/Result of merge// -/auth-rhosts.c/1.46/Result of merge// /auth1.c/1.82/Result of merge// /auth2-passwd.c/1.12/Result of merge// /digest.h/1.7/Result of merge// -/misc.h/1.54/Result of merge// /umac.c/1.11/Result of merge// -/auth-rh-rsa.c/1.44/Result of merge// /auth2-kbdint.c/1.7/Result of merge// /auth2-none.c/1.18/Result of merge// /monitor.h/1.19/Result of merge// @@ -40,31 +35,21 @@ D/moduli-gen//// /kexecdhc.c/1.10/Result of merge// /Makefile.inc/1.50/Result of merge// /auth-rsa.c/1.90/Result of merge// -/auth2-hostbased.c/1.25/Result of merge// -/canohost.c/1.72/Result of merge// /channels.h/1.118/Result of merge// /compat.h/1.48/Result of merge// /gss-serv.c/1.29/Result of merge// /kexgexc.c/1.22/Result of merge// /match.c/1.30/Result of merge// /dispatch.c/1.27/Result of merge// -/auth.c/1.113/Result of merge// /cipher.h/1.48/Result of merge// /compat.c/1.97/Result of merge// /servconf.h/1.120/Result of merge// -/ssh-pkcs11-helper.c/1.11/Result of merge// /auth-bsdauth.c/1.14/Result of merge// -/auth-options.c/1.70/Result of merge// -/auth.h/1.86/Result of merge+Mon Jan 11 11:16:20 2016// /auth2-chall.c/1.43/Result of merge// -/channels.c/1.348/Result of merge+Sun Dec 20 20:11:51 2015// /kexc25519s.c/1.10/Result of merge// /kexdhs.c/1.23/Result of merge// /kexecdhs.c/1.15/Result of merge// /kexgexs.c/1.26/Result of merge// -/monitor_wrap.h/1.29/Result of merge+Mon Jan 11 11:16:23 2016// -/session.c/1.279/Result of merge// -/ssh-keyscan.c/1.104/Result of merge// /ssh-pkcs11-client.c/1.6/Result of merge// /ssh-rsa.c/1.58/Result of merge+Mon Jan 11 11:16:25 2016// /ssh_api.c/1.5/Result of merge+Mon Jan 11 11:16:26 2016// @@ -111,14 +96,12 @@ D/moduli-gen//// /cipher-chachapoly.h/1.4/Mon Feb 1 06:34:45 2016// /cipher.c/1.101/Mon Feb 1 06:34:45 2016// /cleanup.c/1.5/Mon Feb 1 06:34:45 2016// -/clientloop.c/1.282/Result of merge+Mon Feb 1 06:34:58 2016// /clientloop.h/1.32/Result of merge+Mon Feb 1 06:34:58 2016// /crc32.c/1.11/Mon Feb 1 06:34:45 2016// /crc32.h/1.15/Mon Feb 1 06:34:45 2016// /crypto_api.h/1.3/Mon Feb 1 06:34:45 2016// /deattack.c/1.32/Mon Feb 1 06:34:45 2016// /deattack.h/1.11/Mon Feb 1 06:34:45 2016// -/dh.c/1.57/Mon Feb 1 06:34:45 2016// /dh.h/1.14/Mon Feb 1 06:34:45 2016// /digest-libc.c/1.5/Mon Feb 1 06:34:45 2016// /digest-openssl.c/1.5/Mon Feb 1 06:34:45 2016// @@ -138,8 +121,6 @@ D/moduli-gen//// /hmac.h/1.9/Mon Feb 1 06:34:45 2016// /hostfile.c/1.66/Mon Feb 1 06:34:45 2016// /hostfile.h/1.24/Mon Feb 1 06:34:45 2016// -/kex.c/1.116/Result of merge// -/kex.h/1.75/Result of merge// /kexc25519.c/1.9/Mon Feb 1 06:34:45 2016// /kexdh.c/1.25/Mon Feb 1 06:34:45 2016// /kexecdh.c/1.6/Mon Feb 1 06:34:45 2016// @@ -153,29 +134,20 @@ D/moduli-gen//// /mac.c/1.32/Mon Feb 1 06:34:45 2016// /mac.h/1.9/Mon Feb 1 06:34:45 2016// /match.h/1.16/Mon Feb 1 06:34:45 2016// -/misc.c/1.101/Result of merge// /moduli.c/1.30/Mon Feb 1 06:34:45 2016// -/monitor.c/1.156/Result of merge+Mon Feb 1 06:34:59 2016// -/monitor_fdpass.c/1.20/Mon Feb 1 06:34:45 2016// /monitor_fdpass.h/1.4/Mon Feb 1 06:34:45 2016// /monitor_mm.c/1.21/Mon Feb 1 06:34:45 2016// /monitor_mm.h/1.6/Mon Feb 1 06:34:45 2016// -/monitor_wrap.c/1.87/Result of merge+Mon Feb 1 06:34:59 2016// /msg.c/1.16/Mon Feb 1 06:34:45 2016// /msg.h/1.5/Mon Feb 1 06:34:45 2016// /mux.c/1.58/Result of merge+Mon Feb 1 06:34:59 2016// -/myproposal.h/1.49/Mon Feb 1 06:34:45 2016// /nchan.ms/1.8/Mon Feb 1 06:34:45 2016// /nchan2.ms/1.4/Mon Feb 1 06:34:45 2016// -/packet.c/1.226/Result of merge// -/packet.h/1.69/Result of merge// /pathnames.h/1.24/Mon Feb 1 06:34:45 2016// /pkcs11.h/1.3/Mon Feb 1 06:34:45 2016// /poly1305.c/1.3/Mon Feb 1 06:34:45 2016// /poly1305.h/1.4/Mon Feb 1 06:34:45 2016// -/progressmeter.c/1.41/Mon Feb 1 06:34:45 2016// /progressmeter.h/1.3/Mon Feb 1 06:34:45 2016// -/readconf.c/1.249/Mon Feb 1 06:34:59 2016// /readconf.h/1.113/Mon Feb 1 06:34:59 2016// /readpass.c/1.51/Mon Feb 1 06:34:45 2016// /rijndael.c/1.20/Mon Feb 1 06:34:45 2016// @@ -188,55 +160,32 @@ D/moduli-gen//// /sc25519.c/1.3/Mon Feb 1 06:34:46 2016// /sc25519.h/1.3/Mon Feb 1 06:34:46 2016// /scp.1/1.68/Mon Feb 1 06:34:46 2016// -/scp.c/1.184/Mon Feb 1 06:34:46 2016// -/servconf.c/1.284/Result of merge// -/serverloop.c/1.181/Result of merge// -/sftp-client.c/1.120/Mon Feb 1 06:34:46 2016// /sftp-client.h/1.27/Mon Feb 1 06:34:46 2016// /sftp-common.c/1.28/Mon Feb 1 06:34:46 2016// /sftp-common.h/1.12/Mon Feb 1 06:34:46 2016// /sftp-glob.c/1.27/Mon Feb 1 06:34:46 2016// -/sftp-server-main.c/1.4/Mon Feb 1 06:34:46 2016// /sftp-server.8/1.27/Mon Feb 1 06:34:46 2016// -/sftp-server.c/1.108/Mon Feb 1 06:34:46 2016// /sftp.1/1.102/Mon Feb 1 06:34:46 2016// -/sftp.c/1.171/Mon Feb 1 06:34:46 2016// /sftp.h/1.9/Mon Feb 1 06:34:46 2016// /smult_curve25519_ref.c/1.2/Mon Feb 1 06:34:46 2016// /ssh-add.1/1.62/Mon Feb 1 06:34:46 2016// -/ssh-add.c/1.127/Mon Feb 1 06:34:46 2016// /ssh-agent.1/1.62/Mon Feb 1 06:34:46 2016// -/ssh-agent.c/1.211/Mon Feb 1 06:34:46 2016// /ssh-dss.c/1.34/Mon Feb 1 06:34:46 2016// /ssh-ecdsa.c/1.12/Mon Feb 1 06:34:46 2016// /ssh-ed25519.c/1.6/Mon Feb 1 06:34:46 2016// -/ssh-keygen.1/1.129/Mon Feb 1 06:34:46 2016// -/ssh-keygen.c/1.287/Mon Feb 1 06:34:46 2016// /ssh-keyscan.1/1.38/Mon Feb 1 06:34:46 2016// -/ssh-keysign.8/1.14/Mon Feb 1 06:34:46 2016// -/ssh-keysign.c/1.51/Mon Feb 1 06:34:46 2016// /ssh-pkcs11-helper.8/1.4/Mon Feb 1 06:34:46 2016// -/ssh-pkcs11.c/1.21/Mon Feb 1 06:34:46 2016// /ssh-pkcs11.h/1.4/Mon Feb 1 06:34:46 2016// /ssh-sandbox.h/1.1/Mon Feb 1 06:34:46 2016// -/ssh.1/1.366/Mon Feb 1 06:34:46 2016// -/ssh.c/1.435/Result of merge+Mon Feb 1 06:34:59 2016// /ssh.h/1.83/Mon Feb 1 06:34:46 2016// /ssh1.h/1.6/Mon Feb 1 06:34:46 2016// /ssh2.h/1.17/Mon Feb 1 06:34:59 2016// /ssh_api.h/1.1/Mon Feb 1 06:34:46 2016// -/ssh_config/1.28/Mon Feb 1 06:34:46 2016// -/ssh_config.5/1.223/Mon Feb 1 06:34:46 2016// /sshbuf-getput-basic.c/1.5/Mon Feb 1 06:34:46 2016// /sshbuf-getput-crypto.c/1.5/Mon Feb 1 06:34:59 2016// /sshbuf-misc.c/1.5/Mon Feb 1 06:34:46 2016// /sshbuf.c/1.6/Result of merge+Mon Feb 1 06:34:59 2016// /sshconnect.c/1.271/Result of merge// -/sshconnect2.c/1.237/Result of merge+Mon Feb 1 06:34:59 2016// -/sshd.8/1.282/Mon Feb 1 06:34:46 2016// -/sshd.c/1.464/Result of merge+Mon Feb 1 06:34:59 2016// -/sshd_config/1.97/Mon Feb 1 06:34:46 2016// -/sshd_config.5/1.215/Mon Feb 1 06:34:46 2016// /ssherr.c/1.5/Mon Feb 1 06:34:46 2016// /ssherr.h/1.3/Mon Feb 1 06:34:46 2016// /sshkey.h/1.12/Mon Feb 1 06:34:46 2016// @@ -251,8 +200,59 @@ D/moduli-gen//// /uuencode.c/1.28/Mon Feb 1 06:34:46 2016// /uuencode.h/1.14/Mon Feb 1 06:34:46 2016// /verify.c/1.3/Mon Feb 1 06:34:46 2016// -/version.h/1.75/Mon Feb 1 06:34:46 2016// -/xmalloc.c/1.32/Mon Feb 1 06:34:46 2016// -/xmalloc.h/1.15/Mon Feb 1 06:34:46 2016// /opacket.c/1.5/Mon Feb 1 06:34:59 2016// -/opacket.h/1.5/Mon Feb 1 06:34:59 2016// +/auth-options.c/1.71/Result of merge+Tue Mar 8 04:13:30 2016// +/auth-rh-rsa.c/1.45/Result of merge+Tue Mar 8 04:13:30 2016// +/auth-rhosts.c/1.47/Result of merge+Tue Mar 8 04:13:30 2016// +/auth.c/1.114/Result of merge+Tue Mar 8 04:13:31 2016// +/auth.h/1.87/Result of merge// +/auth2-hostbased.c/1.26/Result of merge+Tue Mar 8 04:13:31 2016// +/canohost.c/1.73/Result of merge+Tue Mar 8 04:13:31 2016// +/canohost.h/1.12/Result of merge+Tue Mar 8 04:13:31 2016// +/channels.c/1.350/Result of merge+Tue Mar 8 04:13:31 2016// +/clientloop.c/1.284/Result of merge+Tue Mar 8 04:13:31 2016// +/dh.c/1.58/Tue Mar 8 04:13:31 2016// +/kex.c/1.117/Result of merge// +/kex.h/1.76/Result of merge// +/misc.c/1.102/Result of merge// +/misc.h/1.55/Tue Mar 8 04:13:31 2016// +/monitor.c/1.158/Result of merge+Tue Mar 8 04:13:31 2016// +/monitor_fdpass.c/1.21/Tue Mar 8 04:13:31 2016// +/monitor_wrap.c/1.88/Result of merge+Tue Mar 8 04:13:31 2016// +/monitor_wrap.h/1.30/Result of merge+Tue Mar 8 04:13:31 2016// +/myproposal.h/1.50/Tue Mar 8 04:13:31 2016// +/opacket.h/1.7/Tue Mar 8 04:13:31 2016// +/packet.c/1.230/Result of merge// +/packet.h/1.71/Result of merge+Tue Mar 8 04:13:31 2016// +/progressmeter.c/1.42/Tue Mar 8 04:13:31 2016// +/readconf.c/1.250/Tue Mar 8 04:13:31 2016// +/scp.c/1.185/Tue Mar 8 04:13:31 2016// +/servconf.c/1.286/Result of merge+Tue Mar 8 04:13:31 2016// +/serverloop.c/1.184/Result of merge+Tue Mar 8 04:13:31 2016// +/session.c/1.281/Result of merge+Tue Mar 8 04:13:31 2016// +/session.h/1.32/Result of merge// +/sftp-client.c/1.121/Tue Mar 8 04:13:31 2016// +/sftp-server-main.c/1.5/Tue Mar 8 04:13:31 2016// +/sftp-server.c/1.109/Tue Mar 8 04:13:31 2016// +/sftp.c/1.172/Tue Mar 8 04:13:31 2016// +/ssh-add.c/1.128/Tue Mar 8 04:13:31 2016// +/ssh-agent.c/1.212/Tue Mar 8 04:13:31 2016// +/ssh-keygen.1/1.130/Tue Mar 8 04:13:31 2016// +/ssh-keygen.c/1.288/Tue Mar 8 04:13:31 2016// +/ssh-keyscan.c/1.105/Result of merge// +/ssh-keysign.8/1.15/Tue Mar 8 04:13:31 2016// +/ssh-keysign.c/1.52/Tue Mar 8 04:13:31 2016// +/ssh-pkcs11-helper.c/1.12/Result of merge// +/ssh-pkcs11.c/1.22/Tue Mar 8 04:13:31 2016// +/ssh.1/1.369/Tue Mar 8 04:13:31 2016// +/ssh.c/1.437/Result of merge+Tue Mar 8 04:13:31 2016// +/ssh_config/1.30/Tue Mar 8 04:13:31 2016// +/ssh_config.5/1.228/Tue Mar 8 04:13:31 2016// +/sshconnect2.c/1.239/Result of merge+Tue Mar 8 04:13:31 2016// +/sshd.8/1.284/Tue Mar 8 04:13:31 2016// +/sshd.c/1.466/Result of merge+Tue Mar 8 04:13:31 2016// +/sshd_config/1.98/Tue Mar 8 04:13:31 2016// +/sshd_config.5/1.220/Tue Mar 8 04:13:31 2016// +/version.h/1.76/Tue Mar 8 04:13:31 2016// +/xmalloc.c/1.33/Tue Mar 8 04:13:31 2016// +/xmalloc.h/1.16/Tue Mar 8 04:13:31 2016// diff --git a/ssh/auth-options.c b/ssh/auth-options.c index 26d34d3..37e31be 100644 --- a/ssh/auth-options.c +++ b/ssh/auth-options.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-options.c,v 1.70 2015/12/10 17:08:40 mmcc Exp $ */ +/* $OpenBSD: auth-options.c,v 1.71 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -270,9 +270,15 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum) } cp = "from=\""; if (strncasecmp(opts, cp, strlen(cp)) == 0) { +<<<<<<< auth-options.c const char *remote_ip = ssh_remote_ipaddr(ssh); const char *remote_host = get_canonical_hostname( options.use_dns); +======= + const char *remote_ip = ssh_remote_ipaddr(ssh); + const char *remote_host = auth_get_canonical_hostname( + ssh, options.use_dns); +>>>>>>> 1.71 char *patterns = xmalloc(strlen(opts) + 1); opts += strlen(cp); diff --git a/ssh/auth-rh-rsa.c b/ssh/auth-rh-rsa.c index 27f1974..810b410 100644 --- a/ssh/auth-rh-rsa.c +++ b/ssh/auth-rh-rsa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-rh-rsa.c,v 1.44 2014/07/15 15:54:14 millert Exp $ */ +/* $OpenBSD: auth-rh-rsa.c,v 1.45 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -37,8 +37,13 @@ extern ServerOptions options; int +<<<<<<< auth-rh-rsa.c auth_rhosts_rsa_key_allowed(struct passwd *pw, char *cuser, char *chost, struct sshkey *client_host_key) +======= +auth_rhosts_rsa_key_allowed(struct passwd *pw, const char *cuser, + const char *chost, Key *client_host_key) +>>>>>>> 1.45 { HostStatus host_status; @@ -64,8 +69,13 @@ int auth_rhosts_rsa(struct authctxt *authctxt, char *cuser, struct sshkey *client_host_key) { +<<<<<<< auth-rh-rsa.c struct ssh *ssh = active_state; /* XXX */ char *chost; +======= + struct ssh *ssh = active_state; /* XXX */ + const char *chost; +>>>>>>> 1.45 struct passwd *pw = authctxt->pw; debug("Trying rhosts with RSA host authentication for client user %.100s", @@ -75,7 +85,7 @@ auth_rhosts_rsa(struct authctxt *authctxt, char *cuser, client_host_key->rsa == NULL) return 0; - chost = (char *)get_canonical_hostname(options.use_dns); + chost = auth_get_canonical_hostname(ssh, options.use_dns); debug("Rhosts RSA authentication: canonical host %.900s", chost); if (!PRIVSEP(auth_rhosts_rsa_key_allowed(pw, cuser, chost, client_host_key))) { diff --git a/ssh/auth-rhosts.c b/ssh/auth-rhosts.c index 02e86b5..c20057b 100644 --- a/ssh/auth-rhosts.c +++ b/ssh/auth-rhosts.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-rhosts.c,v 1.46 2014/12/23 22:42:48 djm Exp $ */ +/* $OpenBSD: auth-rhosts.c,v 1.47 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -30,6 +30,8 @@ #include "pathnames.h" #include "log.h" #include "misc.h" +#include "buffer.h" /* XXX */ +#include "key.h" /* XXX */ #include "servconf.h" #include "canohost.h" #include "sshkey.h" @@ -187,8 +189,13 @@ auth_rhosts(struct passwd *pw, const char *client_user) struct ssh *ssh = active_state; /* XXX */ const char *hostname, *ipaddr; +<<<<<<< auth-rhosts.c hostname = get_canonical_hostname(options.use_dns); ipaddr = ssh_remote_ipaddr(ssh); +======= + hostname = auth_get_canonical_hostname(ssh, options.use_dns); + ipaddr = ssh_remote_ipaddr(ssh); +>>>>>>> 1.47 return auth_rhosts2(pw, client_user, hostname, ipaddr); } diff --git a/ssh/auth.c b/ssh/auth.c index 2007b2e..c54efd9 100644 --- a/ssh/auth.c +++ b/ssh/auth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.c,v 1.113 2015/08/21 03:42:19 djm Exp $ */ +/* $OpenBSD: auth.c,v 1.114 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -37,6 +38,7 @@ #include #include #include +#include #include "xmalloc.h" #include "match.h" @@ -81,7 +83,11 @@ static struct sshbuf *auth_debug; int allowed_user(struct passwd * pw) { +<<<<<<< auth.c struct ssh *ssh = active_state; /* XXX */ +======= + struct ssh *ssh = active_state; /* XXX */ +>>>>>>> 1.114 struct stat st; const char *hostname = NULL, *ipaddr = NULL; u_int i; @@ -117,8 +123,13 @@ allowed_user(struct passwd * pw) if (options.num_deny_users > 0 || options.num_allow_users > 0 || options.num_deny_groups > 0 || options.num_allow_groups > 0) { +<<<<<<< auth.c hostname = get_canonical_hostname(options.use_dns); ipaddr = ssh_remote_ipaddr(ssh); +======= + hostname = auth_get_canonical_hostname(ssh, options.use_dns); + ipaddr = ssh_remote_ipaddr(ssh); +>>>>>>> 1.114 } /* Return false if user is listed in DenyUsers */ @@ -203,6 +214,7 @@ void auth_log(struct authctxt *authctxt, int authenticated, int partial, const char *method, const char *submethod) { + struct ssh *ssh = active_state; /* XXX */ void (*authlog) (const char *fmt,...) = verbose; char *authmsg; @@ -229,8 +241,13 @@ auth_log(struct authctxt *authctxt, int authenticated, int partial, submethod != NULL ? "/" : "", submethod == NULL ? "" : submethod, authctxt->valid ? "" : "invalid user ", authctxt->user, +<<<<<<< auth.c ssh_remote_ipaddr(active_state), /* XXX */ ssh_get_remote_port(active_state), +======= + ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh), +>>>>>>> 1.114 compat20 ? "ssh2" : "ssh1", authctxt->info != NULL ? ": " : "", authctxt->info != NULL ? authctxt->info : ""); @@ -241,12 +258,19 @@ auth_log(struct authctxt *authctxt, int authenticated, int partial, void auth_maxtries_exceeded(struct ssh *ssh, struct authctxt *authctxt) { + struct ssh *ssh = active_state; /* XXX */ + error("maximum authentication attempts exceeded for " "%s%.100s from %.200s port %d %s", authctxt->valid ? "" : "invalid user ", authctxt->user, +<<<<<<< auth.c ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh), +======= + ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh), +>>>>>>> 1.114 compat20 ? "ssh2" : "ssh1"); sshpkt_disconnect(ssh, "Too many authentication failures"); fatal("Too many authentication failures"); /* XXX */ @@ -259,8 +283,13 @@ auth_maxtries_exceeded(struct ssh *ssh, struct authctxt *authctxt) int auth_root_allowed(const char *method) { +<<<<<<< auth.c struct ssh *ssh = active_state; /* XXX */ +======= + struct ssh *ssh = active_state; /* XXX */ + +>>>>>>> 1.114 switch (options.permit_root_login) { case PERMIT_YES: return 1; @@ -277,7 +306,12 @@ auth_root_allowed(const char *method) } break; } +<<<<<<< auth.c logit("ROOT LOGIN REFUSED FROM %.200s", ssh_remote_ipaddr(ssh)); +======= + logit("ROOT LOGIN REFUSED FROM %.200s port %d", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.114 return 0; } @@ -517,7 +551,11 @@ auth_openprincipals(const char *file, struct passwd *pw, int strict_modes) struct passwd * getpwnamallow(const char *user) { +<<<<<<< auth.c struct ssh *ssh = active_state; /* XXX */ +======= + struct ssh *ssh = active_state; /* XXX */ +>>>>>>> 1.114 extern login_cap_t *lc; auth_session_t *as; struct passwd *pw; @@ -528,8 +566,13 @@ getpwnamallow(const char *user) pw = getpwnam(user); if (pw == NULL) { +<<<<<<< auth.c logit("Invalid user %.100s from %.100s", user, ssh_remote_ipaddr(ssh)); +======= + logit("Invalid user %.100s from %.100s port %d", + user, ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.114 return (NULL); } if (!allowed_user(pw)) @@ -651,3 +694,114 @@ fakepw(void) return (&fake); } + +/* + * Returns the remote DNS hostname as a string. The returned string must not + * be freed. NB. this will usually trigger a DNS query the first time it is + * called. + * This function does additional checks on the hostname to mitigate some + * attacks on legacy rhosts-style authentication. + * XXX is RhostsRSAAuthentication vulnerable to these? + * XXX Can we remove these checks? (or if not, remove RhostsRSAAuthentication?) + */ + +static char * +remote_hostname(struct ssh *ssh) +{ + struct sockaddr_storage from; + socklen_t fromlen; + struct addrinfo hints, *ai, *aitop; + char name[NI_MAXHOST], ntop2[NI_MAXHOST]; + const char *ntop = ssh_remote_ipaddr(ssh); + + /* Get IP address of client. */ + fromlen = sizeof(from); + memset(&from, 0, sizeof(from)); + if (getpeername(ssh_packet_get_connection_in(ssh), + (struct sockaddr *)&from, &fromlen) < 0) { + debug("getpeername failed: %.100s", strerror(errno)); + return strdup(ntop); + } + + debug3("Trying to reverse map address %.100s.", ntop); + /* Map the IP address to a host name. */ + if (getnameinfo((struct sockaddr *)&from, fromlen, name, sizeof(name), + NULL, 0, NI_NAMEREQD) != 0) { + /* Host name not found. Use ip address. */ + return strdup(ntop); + } + + /* + * if reverse lookup result looks like a numeric hostname, + * someone is trying to trick us by PTR record like following: + * 1.1.1.10.in-addr.arpa. IN PTR 2.3.4.5 + */ + memset(&hints, 0, sizeof(hints)); + hints.ai_socktype = SOCK_DGRAM; /*dummy*/ + hints.ai_flags = AI_NUMERICHOST; + if (getaddrinfo(name, NULL, &hints, &ai) == 0) { + logit("Nasty PTR record \"%s\" is set up for %s, ignoring", + name, ntop); + freeaddrinfo(ai); + return strdup(ntop); + } + + /* Names are stored in lowercase. */ + lowercase(name); + + /* + * Map it back to an IP address and check that the given + * address actually is an address of this host. This is + * necessary because anyone with access to a name server can + * define arbitrary names for an IP address. Mapping from + * name to IP address can be trusted better (but can still be + * fooled if the intruder has access to the name server of + * the domain). + */ + memset(&hints, 0, sizeof(hints)); + hints.ai_family = from.ss_family; + hints.ai_socktype = SOCK_STREAM; + if (getaddrinfo(name, NULL, &hints, &aitop) != 0) { + logit("reverse mapping checking getaddrinfo for %.700s " + "[%s] failed - POSSIBLE BREAK-IN ATTEMPT!", name, ntop); + return strdup(ntop); + } + /* Look for the address from the list of addresses. */ + for (ai = aitop; ai; ai = ai->ai_next) { + if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop2, + sizeof(ntop2), NULL, 0, NI_NUMERICHOST) == 0 && + (strcmp(ntop, ntop2) == 0)) + break; + } + freeaddrinfo(aitop); + /* If we reached the end of the list, the address was not there. */ + if (ai == NULL) { + /* Address not found for the host name. */ + logit("Address %.100s maps to %.600s, but this does not " + "map back to the address - POSSIBLE BREAK-IN ATTEMPT!", + ntop, name); + return strdup(ntop); + } + return strdup(name); +} + +/* + * Return the canonical name of the host in the other side of the current + * connection. The host name is cached, so it is efficient to call this + * several times. + */ + +const char * +auth_get_canonical_hostname(struct ssh *ssh, int use_dns) +{ + static char *dnsname; + + if (!use_dns) + return ssh_remote_ipaddr(ssh); + else if (dnsname != NULL) + return dnsname; + else { + dnsname = remote_hostname(ssh); + return dnsname; + } +} diff --git a/ssh/auth.h b/ssh/auth.h index 4a6ed28..9793c28 100644 --- a/ssh/auth.h +++ b/ssh/auth.h @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.h,v 1.86 2015/12/04 16:41:28 markus Exp $ */ +/* $OpenBSD: auth.h,v 1.87 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -172,6 +172,8 @@ FILE *auth_openkeyfile(const char *, struct passwd *, int); FILE *auth_openprincipals(const char *, struct passwd *, int); int auth_key_is_revoked(struct sshkey *); +const char *auth_get_canonical_hostname(struct ssh *, int); + HostStatus check_key_in_hostfiles(struct passwd *, struct sshkey *, const char *, const char *, const char *); diff --git a/ssh/auth2-hostbased.c b/ssh/auth2-hostbased.c index 1c8a986..de0e045 100644 --- a/ssh/auth2-hostbased.c +++ b/ssh/auth2-hostbased.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-hostbased.c,v 1.25 2015/05/04 06:10:48 djm Exp $ */ +/* $OpenBSD: auth2-hostbased.c,v 1.26 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -166,6 +166,7 @@ int hostbased_key_allowed(struct passwd *pw, const char *cuser, char *chost, struct sshkey *key) { + struct ssh *ssh = active_state; /* XXX */ const char *resolvedname, *ipaddr, *lookup, *reason; HostStatus host_status; int len; @@ -174,8 +175,13 @@ hostbased_key_allowed(struct passwd *pw, const char *cuser, char *chost, if (auth_key_is_revoked(key)) return 0; +<<<<<<< auth2-hostbased.c resolvedname = get_canonical_hostname(options.use_dns); ipaddr = ssh_remote_ipaddr(active_state); /* XXX */ +======= + resolvedname = auth_get_canonical_hostname(ssh, options.use_dns); + ipaddr = ssh_remote_ipaddr(ssh); +>>>>>>> 1.26 debug2("%s: chost %s resolvedname %s ipaddr %s", __func__, chost, resolvedname, ipaddr); diff --git a/ssh/canohost.c b/ssh/canohost.c index e295281..68c0456 100644 --- a/ssh/canohost.c +++ b/ssh/canohost.c @@ -1,4 +1,4 @@ -/* $OpenBSD: canohost.c,v 1.72 2015/03/01 15:44:40 millert Exp $ */ +/* $OpenBSD: canohost.c,v 1.73 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -32,6 +32,7 @@ #include "canohost.h" #include "misc.h" +<<<<<<< canohost.c static void check_ip_options(int, char *); /* @@ -198,6 +199,8 @@ get_canonical_hostname(int use_dns) return host; } +======= +>>>>>>> 1.73 /* * Returns the local/remote IP-address/hostname of socket as a string. * The returned string must be freed. @@ -215,12 +218,10 @@ get_socket_address(int sock, int remote, int flags) memset(&addr, 0, sizeof(addr)); if (remote) { - if (getpeername(sock, (struct sockaddr *)&addr, &addrlen) - < 0) + if (getpeername(sock, (struct sockaddr *)&addr, &addrlen) != 0) return NULL; } else { - if (getsockname(sock, (struct sockaddr *)&addr, &addrlen) - < 0) + if (getsockname(sock, (struct sockaddr *)&addr, &addrlen) != 0) return NULL; } @@ -230,7 +231,7 @@ get_socket_address(int sock, int remote, int flags) /* Get the address in ascii. */ if ((r = getnameinfo((struct sockaddr *)&addr, addrlen, ntop, sizeof(ntop), NULL, 0, flags)) != 0) { - error("get_socket_address: getnameinfo %d failed: %s", + error("%s: getnameinfo %d failed: %s", __func__, flags, ssh_gai_strerror(r)); return NULL; } @@ -275,7 +276,8 @@ get_local_name(int fd) /* Handle the case where we were passed a pipe */ if (gethostname(myname, sizeof(myname)) == -1) { - verbose("get_local_name: gethostname: %s", strerror(errno)); + verbose("%s: gethostname: %s", __func__, strerror(errno)); + host = xstrdup("UNKNOWN"); } else { host = xstrdup(myname); } @@ -283,6 +285,7 @@ get_local_name(int fd) return host; } +<<<<<<< canohost.c const char * get_remote_name_or_ip(u_int utmp_len, int use_dns) { @@ -296,9 +299,11 @@ get_remote_name_or_ip(u_int utmp_len, int use_dns) return remote; } +======= +>>>>>>> 1.73 /* Returns the local/remote port for the socket. */ -int +static int get_sock_port(int sock, int local) { struct sockaddr_storage from; @@ -328,11 +333,12 @@ get_sock_port(int sock, int local) /* Return port number. */ if ((r = getnameinfo((struct sockaddr *)&from, fromlen, NULL, 0, strport, sizeof(strport), NI_NUMERICSERV)) != 0) - fatal("get_sock_port: getnameinfo NI_NUMERICSERV failed: %s", + fatal("%s: getnameinfo NI_NUMERICSERV failed: %s", __func__, ssh_gai_strerror(r)); return atoi(strport); } +<<<<<<< canohost.c /* Returns remote/local port number for the current connection. */ static int @@ -349,6 +355,8 @@ ssh_get_port(struct ssh *ssh, int local) return get_sock_port(ssh_packet_get_connection_in(ssh), local); } +======= +>>>>>>> 1.73 int get_peer_port(int sock) { @@ -356,6 +364,7 @@ get_peer_port(int sock) } int +<<<<<<< canohost.c ssh_get_remote_port(struct ssh *ssh) { /* Cache to avoid getpeername() on a dead connection */ @@ -366,6 +375,13 @@ ssh_get_remote_port(struct ssh *ssh) int ssh_get_local_port(struct ssh *ssh) +======= +get_local_port(int sock) +>>>>>>> 1.73 { +<<<<<<< canohost.c return ssh_get_port(ssh, 1); +======= + return get_sock_port(sock, 1); +>>>>>>> 1.73 } diff --git a/ssh/canohost.h b/ssh/canohost.h index 261da96..3e3602b 100644 --- a/ssh/canohost.h +++ b/ssh/canohost.h @@ -1,4 +1,4 @@ -/* $OpenBSD: canohost.h,v 1.11 2009/05/27 06:31:25 andreas Exp $ */ +/* $OpenBSD: canohost.h,v 1.12 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen @@ -12,15 +12,25 @@ * called by a name other than "ssh" or "Secure Shell". */ +<<<<<<< canohost.h struct ssh; const char *get_canonical_hostname(int); const char *get_remote_name_or_ip(u_int, int); +======= +#ifndef _CANOHOST_H +#define _CANOHOST_H +>>>>>>> 1.12 char *get_peer_ipaddr(int); int get_peer_port(int); char *get_local_ipaddr(int); char *get_local_name(int); +int get_local_port(int); +<<<<<<< canohost.h int ssh_get_remote_port(struct ssh *); int ssh_get_local_port(struct ssh *); int get_sock_port(int, int); +======= +#endif /* _CANOHOST_H */ +>>>>>>> 1.12 diff --git a/ssh/channels.c b/ssh/channels.c index ee1dc6a..15b571c 100644 --- a/ssh/channels.c +++ b/ssh/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.348 2015/10/15 23:51:40 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.350 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1468,7 +1468,7 @@ port_open_helper(Channel *c, char *rtype) int r; char buf[1024]; char *local_ipaddr = get_local_ipaddr(c->sock); - int local_port = c->sock == -1 ? 65536 : get_sock_port(c->sock, 1); + int local_port = c->sock == -1 ? 65536 : get_local_port(c->sock); char *remote_ipaddr = get_peer_ipaddr(c->sock); int remote_port = get_peer_port(c->sock); @@ -1974,7 +1974,10 @@ read_mux(Channel *c, u_int need) if (sshbuf_len(c->input) < need) { rlen = need - sshbuf_len(c->input); len = read(c->rfd, buf, MIN(rlen, CHAN_RBUF)); + if (len < 0 && (errno == EINTR || errno == EAGAIN)) + return buffer_len(&c->input); if (len <= 0) { +<<<<<<< channels.c if (errno != EINTR && errno != EAGAIN) { debug2("channel %u: ctl read<=0 rfd %d len %d", c->self, c->rfd, len); @@ -1983,6 +1986,14 @@ read_mux(Channel *c, u_int need) } } else if ((r = sshbuf_put(c->input, buf, len)) != 0) CHANNEL_BUFFER_ERROR(c, r); +======= + debug2("channel %d: ctl read<=0 rfd %d len %d", + c->self, c->rfd, len); + chan_read_failed(c); + return 0; + } else + buffer_append(&c->input, buf, len); +>>>>>>> 1.350 } return sshbuf_len(c->input); } @@ -3074,7 +3085,7 @@ channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type, struct Forward *fwd, if (type == SSH_CHANNEL_RPORT_LISTENER && fwd->listen_port == 0 && allocated_listen_port != NULL && *allocated_listen_port == 0) { - *allocated_listen_port = get_sock_port(sock, 1); + *allocated_listen_port = get_local_port(sock); debug("Allocated listen port %d", *allocated_listen_port); } diff --git a/ssh/clientloop.c b/ssh/clientloop.c index de528b3..9f493b9 100644 --- a/ssh/clientloop.c +++ b/ssh/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.282 2016/01/29 23:04:46 dtucker Exp $ */ +/* $OpenBSD: clientloop.c,v 1.284 2016/02/08 10:57:07 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -311,8 +311,9 @@ client_x11_get_proto(const char *display, const char *xauth_path, proto[0] = data[0] = xauthfile[0] = xauthdir[0] = '\0'; if (!client_x11_display_valid(display)) { - logit("DISPLAY \"%s\" invalid; disabling X11 forwarding", - display); + if (display != NULL) + logit("DISPLAY \"%s\" invalid; disabling X11 forwarding", + display); return -1; } if (xauth_path != NULL && stat(xauth_path, &st) == -1) { @@ -1544,7 +1545,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, { fd_set *readset = NULL, *writeset = NULL; double start_time, total_time; - int r, max_fd = 0, max_fd2 = 0, len, rekeying = 0; + int r, max_fd = 0, max_fd2 = 0, len; u_int64_t ibytes, obytes; u_int nalloc = 0; char buf[100]; @@ -1660,10 +1661,21 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, if (compat20 && session_closed && !channel_still_open()) break; +<<<<<<< clientloop.c rekeying = (ssh->kex != NULL && !ssh->kex->done); if (rekeying) { +======= + if (ssh_packet_is_rekeying(active_state)) { +>>>>>>> 1.284 debug("rekeying in progress"); + } else if (need_rekeying) { + /* manual rekey request */ + debug("need rekeying"); + if ((r = kex_start_rekex(active_state)) != 0) + fatal("%s: kex_start_rekex: %s", __func__, + ssh_err(r)); + need_rekeying = 0; } else { /* * Make packets of buffered stdin data, and buffer @@ -1693,15 +1705,21 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, * available on one of the descriptors). */ max_fd2 = max_fd; +<<<<<<< clientloop.c client_wait_until_can_do_something(ssh, &readset, &writeset, &max_fd2, &nalloc, rekeying); +======= + client_wait_until_can_do_something(&readset, &writeset, + &max_fd2, &nalloc, ssh_packet_is_rekeying(active_state)); +>>>>>>> 1.284 if (quit_pending) break; /* Do channel operations unless rekeying in progress. */ - if (!rekeying) { + if (!ssh_packet_is_rekeying(active_state)) channel_after_select(readset, writeset); +<<<<<<< clientloop.c if (need_rekeying || ssh_packet_need_rekeying(ssh)) { debug("need rekeying"); ssh->kex->done = 0; @@ -1712,6 +1730,8 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, need_rekeying = 0; } } +======= +>>>>>>> 1.284 /* Buffer input from the connection. */ client_process_net_input(ssh, readset); diff --git a/ssh/dh.c b/ssh/dh.c index baefdba..e40a757 100644 --- a/ssh/dh.c +++ b/ssh/dh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dh.c,v 1.57 2015/05/27 23:39:18 dtucker Exp $ */ +/* $OpenBSD: dh.c,v 1.58 2016/02/28 22:27:00 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * @@ -243,12 +243,15 @@ dh_pub_is_valid(DH *dh, BIGNUM *dh_pub) bits_set++; debug2("bits set: %d/%d", bits_set, BN_num_bits(dh->p)); - /* if g==2 and bits_set==1 then computing log_g(dh_pub) is trivial */ - if (bits_set > 1) - return 1; - - logit("invalid public DH value (%d/%d)", bits_set, BN_num_bits(dh->p)); - return 0; + /* + * if g==2 and bits_set==1 then computing log_g(dh_pub) is trivial + */ + if (bits_set < 4) { + logit("invalid public DH value (%d/%d)", + bits_set, BN_num_bits(dh->p)); + return 0; + } + return 1; } int @@ -260,6 +263,12 @@ dh_gen_key(DH *dh, int need) (pbits = BN_num_bits(dh->p)) <= 0 || need > INT_MAX / 2 || 2 * need > pbits) return SSH_ERR_INVALID_ARGUMENT; + if (need < 256) + need = 256; + /* + * Pollard Rho, Big step/Little Step attacks are O(sqrt(n)), + * so double requested need here. + */ dh->length = MIN(need * 2, pbits - 1); if (DH_generate_key(dh) == 0 || !dh_pub_is_valid(dh, dh->pub_key)) { diff --git a/ssh/kex.c b/ssh/kex.c index f60af61..02a7146 100644 --- a/ssh/kex.c +++ b/ssh/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.116 2016/01/14 16:17:39 markus Exp $ */ +/* $OpenBSD: kex.c,v 1.117 2016/02/08 10:57:07 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * @@ -581,6 +581,25 @@ kex_setup(struct ssh *ssh, char *proposal[PROPOSAL_MAX]) return 0; } +/* + * Request key re-exchange, returns 0 on success or a ssherr.h error + * code otherwise. Must not be called if KEX is incomplete or in-progress. + */ +int +kex_start_rekex(struct ssh *ssh) +{ + if (ssh->kex == NULL) { + error("%s: no kex", __func__); + return SSH_ERR_INTERNAL_ERROR; + } + if (ssh->kex->done == 0) { + error("%s: requested twice", __func__); + return SSH_ERR_INTERNAL_ERROR; + } + ssh->kex->done = 0; + return kex_send_kexinit(ssh); +} + static int choose_enc(struct sshenc *enc, char *client, char *server) { diff --git a/ssh/kex.h b/ssh/kex.h index faf6f45..2c6e7be 100644 --- a/ssh/kex.h +++ b/ssh/kex.h @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.h,v 1.75 2016/01/14 16:17:39 markus Exp $ */ +/* $OpenBSD: kex.h,v 1.76 2016/02/08 10:57:07 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -167,6 +167,7 @@ int kex_input_ext_info(int, u_int32_t, struct ssh *); int kex_derive_keys(struct ssh *, u_char *, u_int, const struct sshbuf *); int kex_derive_keys_bn(struct ssh *, u_char *, u_int, const BIGNUM *); int kex_send_newkeys(struct ssh *); +int kex_start_rekex(struct ssh *); int kexdh_client(struct ssh *); int kexdh_server(struct ssh *); diff --git a/ssh/misc.c b/ssh/misc.c index c4541d3..705687b 100644 --- a/ssh/misc.c +++ b/ssh/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.101 2016/01/20 09:22:39 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.102 2016/03/02 22:42:40 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -872,6 +872,17 @@ monotime(void) return (ts.tv_sec); } +double +monotime_double(void) +{ + struct timespec ts; + + if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) + fatal("clock_gettime: %s", strerror(errno)); + + return (ts.tv_sec + (double)ts.tv_nsec / 1000000000); +} + void bandwidth_limit_init(struct bwlimit *bw, u_int64_t kbps, size_t buflen) { diff --git a/ssh/misc.h b/ssh/misc.h index 53d469b..1b81be8 100644 --- a/ssh/misc.h +++ b/ssh/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.54 2014/07/15 15:54:14 millert Exp $ */ +/* $OpenBSD: misc.h,v 1.55 2016/03/02 22:42:40 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -55,6 +55,7 @@ void sanitise_stdfd(void); void ms_subtract_diff(struct timeval *, int *); void ms_to_timeval(struct timeval *, int); time_t monotime(void); +double monotime_double(void); void lowercase(char *s); int unix_listener(const char *, int, int); diff --git a/ssh/moduli-gen/CVS/Entries b/ssh/moduli-gen/CVS/Entries index 7b85137..75507d1 100644 --- a/ssh/moduli-gen/CVS/Entries +++ b/ssh/moduli-gen/CVS/Entries @@ -1,9 +1,9 @@ /Makefile/1.5/Mon Feb 1 06:34:45 2016// /moduli-gen.sh/1.2/Mon Feb 1 06:34:45 2016// -/moduli.2048/1.5/Mon Feb 1 06:34:45 2016// -/moduli.3072/1.5/Mon Feb 1 06:34:45 2016// -/moduli.4096/1.5/Mon Feb 1 06:34:45 2016// -/moduli.6144/1.5/Mon Feb 1 06:34:45 2016// -/moduli.7680/1.4/Mon Feb 1 06:34:45 2016// -/moduli.8192/1.5/Mon Feb 1 06:34:45 2016// +/moduli.2048/1.6/Tue Mar 8 04:13:31 2016// +/moduli.3072/1.6/Tue Mar 8 04:13:31 2016// +/moduli.4096/1.6/Tue Mar 8 04:13:31 2016// +/moduli.6144/1.6/Tue Mar 8 04:13:31 2016// +/moduli.7680/1.5/Tue Mar 8 04:13:31 2016// +/moduli.8192/1.6/Tue Mar 8 04:13:31 2016// D diff --git a/ssh/moduli-gen/moduli.2048 b/ssh/moduli-gen/moduli.2048 index 3bc6a33..e7aa31d 100644 --- a/ssh/moduli-gen/moduli.2048 +++ b/ssh/moduli-gen/moduli.2048 @@ -1,34 +1,55 @@ -20150722024633 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC82E3847 -20150722024638 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC83EC70B -20150722024659 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC897368B -20150722024716 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC8DF1E4F -20150722024721 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC8F211EB -20150722024723 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC8F422DB -20150722024746 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC956BD83 -20150722024749 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC96010FF -20150722024824 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2EC9FBC12B -20150722024827 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECA01F5DB -20150722024853 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECA7B17C7 -20150722024855 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECA7DCB6B -20150722024930 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECB177B3F -20150722024936 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECB2A7853 -20150722024941 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECB3A60AF -20150722024950 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECB5FF357 -20150722024958 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECB7B5D9B -20150722025052 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECC72211F -20150722025104 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECCA52287 -20150722025115 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECCD31D8B -20150722025123 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECCEE546F -20150722025130 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECD0C7AEB -20150722025137 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECD259263 -20150722025220 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECDEBEF7B -20150722025244 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECE54FE63 -20150722025249 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECE677A53 -20150722025253 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECE6D476B -20150722025334 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECF29D0A3 -20150722025336 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECF309BA7 -20150722025351 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECF70679B -20150722025358 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECF91829B -20150722025415 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECFD1B663 -20150722025421 2 6 100 2047 2 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECFEB982B -20150722025424 2 6 100 2047 5 C866C026BDF6EE7AB2950158263FD8682A5F2D4A60F2A8490CA11F3727D43C859954C48F01EC2C131F9EC9CF10139A0FCFDF24BE7097DEAC195F817035A5E34D76455A23F3D9160E7D6A6D5D182C294DE2B15D350534EC9AE436C430B46F90F50AA3BC1129402D2F57E4F164889F5A63F1AA6822855B6EC9BAF34D417E2A31531A68FBBCB4D6F835623111450B814AA635B9B2715CE45C8326A6DFCC22E7DC1D5EAB98C7C02DC33CE1DF2B5D74DB234EB5A8B3F5AB35E9BA07E04E9FA9177962457C3BBC1D9DFDFB0BDEE5E00C834768D6825E01E3AAAE6F5EC898D255842FEB8644497CFE4084A7B610E48B1F6ADF8A4B096906F9E7646B26070F2ECFF0763F +20150520235007 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031E9A9C5F7 +20150520235015 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031E9CBB21F +20150520235039 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EA2E9623 +20150520235043 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EA33E3DF +20150520235057 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EA68038B +20150520235114 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EAAB0717 +20150520235122 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EAC2A7FB +20150520235125 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EAC82DD3 +20150520235154 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EB40583F +20150520235214 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EB94F247 +20150520235218 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EB9DF49F +20150520235239 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EBF7BE27 +20150520235244 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC0B4F4F +20150520235250 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC21070F +20150520235256 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC36541F +20150520235307 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EC5FE22B +20150520235322 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ECA1FB57 +20150520235331 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ECC3C823 +20150520235349 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED035187 +20150520235400 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED2F07DB +20150520235407 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED4620CF +20150520235422 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED86D39F +20150520235424 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED86E683 +20150520235427 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031ED8C3073 +20150520235443 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDCB1F63 +20150520235450 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDE00B77 +20150520235452 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDE42247 +20150520235458 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EDF8F493 +20150520235503 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE04D69F +20150520235508 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE14B92B +20150520235510 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE167933 +20150520235517 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE2DC63B +20150520235527 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE52259F +20150520235539 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EE829247 +20150520235557 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EED044BF +20150520235608 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EEFD34CF +20150520235614 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF0F709F +20150520235616 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF12110B +20150520235622 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF25FE1F +20150520235637 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EF6BF4D3 +20150520235654 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFAF28BF +20150520235701 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFBFB8BB +20150520235704 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFC7A62F +20150520235710 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031EFD79323 +20150520235725 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0158F1F +20150520235728 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F01A9E6B +20150520235743 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F055798B +20150520235752 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0730BC3 +20150520235757 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F08283FF +20150520235825 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0F451E3 +20150520235830 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F0FDEFB7 +20150520235901 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F1828ECF +20150521000008 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F185D7BF +20150521000011 2 6 100 2047 2 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F18C58FB +20150521000014 2 6 100 2047 5 F7360753237CF1837003CDFE89D99C8149BE6C4B4CCD9D09D834FF137878C452FB4FAB5CA51BE6619BC6FEC4184FA9A96D21FDE83505B67262EEA4870FD709F4DD3A2EC36E5746ED80D762467E794FE524992EAC42D2F0F391A63E027F24411B231D25AEFE60C9329CE8FFB61A8A123C74F6755211C8CFD59915CE0DE28579B66CB426D111F90B19A5BD83AB8C2CAB09FB1F09509B029883BD154B82418B4F3A9EE4564E5F344D5B911C10829C1E975817EB2DFF49F34D95277897A7198C9C4921037B8AA091C380663A6D5260F98FA784565DE2D977C50A1079B485F4BE63B4E3D6A63FD8DD59704116A41CB1C7C2AAA449071BFBAFB0F867FCC031F191F757 diff --git a/ssh/moduli-gen/moduli.3072 b/ssh/moduli-gen/moduli.3072 index 6320367..baab842 100644 --- a/ssh/moduli-gen/moduli.3072 +++ b/ssh/moduli-gen/moduli.3072 @@ -1,40 +1,33 @@ -20150722030156 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8883184EB -20150722030221 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8885280D7 -20150722030302 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8888422DF -20150722030423 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B888ED9E27 -20150722030430 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B888ED9F8F -20150722030549 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B889577E1F -20150722030555 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B889589D9B -20150722030607 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88962C113 -20150722030652 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8899A997B -20150722030707 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B889A9438F -20150722030755 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B889ED110B -20150722030839 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88A1E8A87 -20150722030909 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88A4550A3 -20150722031025 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88AADFB3B -20150722031353 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88BC5CACB -20150722031747 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88D010527 -20150722032103 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88E127463 -20150722032159 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88E64F35B -20150722032302 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88EB3235B -20150722032438 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88F2B25CB -20150722032457 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88F3BABB3 -20150722032547 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88F7B446B -20150722032608 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B88F8E9993 -20150722032740 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8900C1473 -20150722033335 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B89207477F -20150722033529 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8929ED5CB -20150722033631 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B892F55F87 -20150722033646 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8930238BF -20150722033743 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8934C5B2B -20150722033938 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B893DCFC47 -20150722034035 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B89427264B -20150722034447 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B89594040B -20150722034631 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B89622D577 -20150722034651 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8963A8027 -20150722034742 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8967EDA43 -20150722034901 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B896EF4903 -20150722035028 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B897574FA3 -20150722035317 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B8983B492B -20150722035341 2 6 100 3071 5 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B89852F147 -20150722035802 2 6 100 3071 2 DD490E2400A31888CF19145B49D3A235B4280C4F0C432386ED012FCEECA4670EEE07B93D2077FCF6CE7008A415FDF6C283647FC79CFDDD267021DC1654C53711A2721B1F5F3B9ECC16FBCE023DEAFE19A428398C29EDFD4E395F4A4BF02A62C31E14279827E430E64535573CA0A1381D8F96EDC42F9664768D3C66171626C5FD79A033A2F2E67A493379A28522BEA0B9672B17B2DDEEC2D03326E07DDE2FD8ECE3C6B3FFCAD019642C8ED895BF54095D0F1C01DD18A5942E404D2905C5ED3E78C88AE0EE7B95A6B1755A90B0A24164A2B2A80529EFB186A289A14EFBA9BEFF2BB991271359F00ABFA44E17617F7EF36B7F8DDE5485819E06C21F1A49C3F828C7D0251770B2D0906E1E09CBAAF5D1BC3D6A8BE72C8F98A399138096BE93CCBD0B87B2BFFC65F232396B3E4C6C5C418D58864C300F938F6174358EA73D330183EF8303540DE8BC8A5E9DFAC1D6D05AA083B3E154799C8977785C3CEC6652631D84A1D634E28660CFBBA7A1B96B2D0B34277B1317781EA355D70D6CF7B899BB9E63 +20150521000841 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CC7F06BB +20150521001025 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CD1057AB +20150521001131 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CD717D6F +20150521001248 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CDDA85F7 +20150521001453 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CE8959BF +20150521001510 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CE98227B +20150521001623 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CEF967BF +20150521001651 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CF18156B +20150521001758 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CF717197 +20150521001924 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622CFE1507B +20150521002244 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D0F75427 +20150521002509 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D1BD2823 +20150521002808 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D2B4950F +20150521002846 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D2E6D6D7 +20150521003203 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D3F5D0D3 +20150521003322 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D45851E3 +20150521003430 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D4AEE517 +20150521003629 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D5538E0B +20150521003714 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D58BAFCF +20150521003722 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D5916FC7 +20150521003739 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D5A378F7 +20150521004506 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D82B5113 +20150521004613 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D880CB43 +20150521004753 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D909305B +20150521004802 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D90DBDC3 +20150521005025 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D9CBF44F +20150521005051 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622D9E89DA7 +20150521005252 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DA8BA403 +20150521005347 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DAD07F73 +20150521005825 2 6 100 3071 2 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DC5CE5A3 +20150521005858 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DC84A597 +20150521010014 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DCE62957 +20150521010219 2 6 100 3071 5 E0C2D7F7B6E4C69A3B6632FC77BED88CAC663CE39D91DDF017816529795F33B591F80F445BE16F8FB51D11861682154B904AE2282FA0462EB6C508FD7B7AEC551A6C630FE9CC7E17E660377558E4F841CD77AABD81E6A0988823047B3A00C2E50C33035987D6EA42C65FD776051F5D43045848D4385FB37482DC9E5133D1B75E34CC81C2B87C9530F5229FF2154604A286C2E257D3A89CF330AEDBA16288E852277C5D7C6AA947B4510625312DF982A30A4D75679F707EB325CD4DF65C7A58154C6C05E28545DE69673B3EA9CCD41529A7CCEB49A3392D23E9AB083148DD956F8CA9B8CDD76496FF95B5782EE888C40EF1201EB3A52CAE1A635BBF82CD479B38DABD6DEE7A2844F8C614215B04CEBDD41039C2DC2D1CF00AFC78C0363E548FAE1DE8A7B535CC41CED767BE05F300F50C59307061ADE1CAA4614F8FEFAECE8F8C5DB3F425B348A206B0E95703EEA8785768CDB53972422C75B58A7AEA2AD9E2546EA991466E6AFE1FA157D75D3F6616DB715D10CCD6B71C73051FE622DD9517D7 diff --git a/ssh/moduli-gen/moduli.4096 b/ssh/moduli-gen/moduli.4096 index e90b39e..3fb464c 100644 --- a/ssh/moduli-gen/moduli.4096 +++ b/ssh/moduli-gen/moduli.4096 @@ -1,34 +1,33 @@ -20150722040757 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FC396C1A3 -20150722040946 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FC3D81E23 -20150722041148 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FC4249127 -20150722041613 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FC4C43EF7 -20150722042539 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FC626C79B -20150722044721 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FC96D85DB -20150722045414 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FCA6A4923 -20150722050126 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FCB76EC63 -20150722050202 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FCB8449A7 -20150722051553 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FCD7DBAD7 -20150722052427 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FCEBF487F -20150722052448 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FCEC4B03F -20150722054058 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD12B7DDB -20150722054354 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD1928FB3 -20150722055707 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD37AB867 -20150722060852 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD4D617F3 -20150722061637 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD5ADE05B -20150722062108 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD63CB8DB -20150722062757 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD75045A3 -20150722063637 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FD8A6FBB3 -20150722064808 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FDA655C0B -20150722065445 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FDB578C27 -20150722065736 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FDBC3912B -20150722065859 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FDBF3A5EF -20150722071027 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FDDAC3C53 -20150722071053 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FDDB5138B -20150722072829 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE05EB597 -20150722072853 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE06577E3 -20150722072912 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE069264F -20150722073308 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE0FC4F23 -20150722073549 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE157B3AB -20150722074849 2 6 100 4095 2 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE339439B -20150722074952 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE3575C37 -20150722075048 2 6 100 4095 5 CD66DFABED8EFE4322B3B9930BE5DA04896861DCF09434B0AF54F39DE91F4053E2D399FF0C3E23382BF2F217B735A203E47638DB0EF8C92BA4BC32A2769110EAA5B0247EB1D2C6A2B106CE6946061AC560440166A43F6F435E85D15BADCC871AA0294BFFB12DE905732030BA1FF122D4023E96DB3C7256343FA826D173BF040EDC65E4BCFF01DA7ED20DA96F694DC3CFA31E19DFC19EDCDA1FDE75441C0DDF8BB201720252BADF4F47458E4E3D3376A0C2D7BD7CC6EB1EB67F6E052A0D0B877693124F0608E7D3834C1F765F0F3FAA9CC441A5A3865157BC94FAB92DCDB3D63893139611E374F5FFDDFAD8EA0B25764F50A37FEF74AD5C9BAFB03FD37634FDD2EF93B047ABC8D8263D41D4408D4EC8AA380D141BBB402C8A92943C304F797C39A33E9EB39758CBE815DABFEB50F40533639F0161E32B0FEA473D196D01989227BDD4C3F71DEC04BBE300F7C81569B4F3AC499FA29E784F95144AD9F916DA4799214C0BE8BBFE587B1387457F19F812D7DD4AB03F6CDD0C0E01FC03CEFCE3BB588D95D36F7D254E0210B6808CF11FAC5E61B054EEDE44447E935B468E170F3C87CD1307BB7050CDD8A6CC2130066D2CC9532D5C0879FF7CA48BA6265F1E0790F97AAA6DE057F91C3D8B518740D38E73DF56CAAF1581573CDA8050C5C0F26AB72D4B0DB9B10923634CC42655A84BF85F9E6A552E6C070471B43AEC255FE371CD6F +20150521011229 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F951FEB83 +20150521011834 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F960399B7 +20150521012438 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F96EE7973 +20150521014010 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F99453213 +20150521015607 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9B549727 +20150521015640 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9B600A7B +20150521020946 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9D5299DF +20150521021536 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9E2793D3 +20150521022706 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877F9FE131CB +20150521023922 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA1BAC073 +20150521025234 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA3BC9483 +20150521025424 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA3FB3513 +20150521032445 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA87E0FAB +20150521032932 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA929F00F +20150521032947 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA92B272B +20150521033245 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FA9953D0B +20150521034828 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FABDD4AEF +20150521035044 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAC298C7F +20150521035111 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAC31F17B +20150521035749 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAD250357 +20150521040009 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAD788A73 +20150521040220 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FADC5F173 +20150521040316 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FADDFFC03 +20150521041042 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAEEBDEB3 +20150521041443 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FAF7AD7BB +20150521041831 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB007D653 +20150521041928 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB025C91B +20150521042301 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB0A4C143 +20150521042631 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB12009F7 +20150521042740 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB145360F +20150521043358 2 6 100 4095 2 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB22FAE93 +20150521044013 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB31527AF +20150521044543 2 6 100 4095 5 C8BCE52E2AE7AE1EC20056B2D0764047C92392C9DF75C3A57EB8AF1062A809E6EA975D9910AA5C55833CC47D4DA76E92BF63FEBB289E5FE2ED729429DE9567D0A489FA27B41810066B96602B2E555B34628A37C4CE04984D15C36F1EAD09081D2CB2147D5F0B7E8BCF0774FFCF5F649E0CB797DD23D0801C153B6B8480828CF165C7ED3181F316F371C6EC0B6EF6B8CBE36E5A4E8C070854668AF07FE6C73C3EB817CD0E8C7F264546A1B0402AC0FCEBA5032EBA2323769CC401D262971F4B44FC1151EC4F6E761709FD6ABDC84D9C36046811F54DC86D293D16D235DC712BF7346CDAC005AE5C0DCD96480C9BD0CF7C4BD50026553E27F957B6640BA6A87C6642FF3D97A3E63DA468276E3A22C0C3F2A1CFFB4F190D5E23700BB468EA31FD3EB87B44B51BDABDB0667FCFB618CECFB2BC440A5F2E237E93A6DFF96AB3561AF5EE1BDA21720129FF2123F7038C70B4CADF1BC70B2EF5EBC264E1E3B2A4B3780D4A11507D03A498A556A923B0EFAF90D024341A47818F03D5ADD961086C2573DABF02C4E2F303817D323E1D8D88EFBE3F5E0D6688593C65254907745CA6176C8ED7D6B830875A0BA8FFEEB1882742A4553E4E55A93A7AD4F3224B7BFA03E29C77DB0FCCE0E37E6D3A64C5555ED9555FA1E2C34EC04DA3B6E0AAA7BF64879BC4724859FE806E7DC49A5394AD3D01492F05AE69CF10C67B18BDFF8E877FB3DDFBB7 diff --git a/ssh/moduli-gen/moduli.6144 b/ssh/moduli-gen/moduli.6144 index 7a138b5..703ae10 100644 --- a/ssh/moduli-gen/moduli.6144 +++ b/ssh/moduli-gen/moduli.6144 @@ -1,35 +1,35 @@ -20150722084622 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BB669D633 -20150722085847 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BB6F92E9F -20150722093919 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BB90322AB -20150722100420 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BBA491B6B -20150722101311 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BBAB0C607 -20150722113718 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BBEA8BBA3 -20150722124423 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BC1EA3BE7 -20150722160016 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BCBC801A3 -20150722161415 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BCC765153 -20150722161806 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BCCA1D7CB -20150722164044 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BCDC91F5B -20150722165113 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BCE4A8603 -20150722172017 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BCFAE4713 -20150722182453 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BD2A735CB -20150722183834 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BD34CDACB -20150722200421 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BD75B18CF -20150722222905 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BDE2EAA7B -20150722223854 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BDE9782DF -20150722224433 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BDED3AC7F -20150722225205 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BDF2410BB -20150723002134 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BE33C78AF -20150723002940 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BE393CEE3 -20150723004654 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BE45D5457 -20150723010041 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BE4F93597 -20150723012612 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BE61CDC77 -20150723032145 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BEB60E0AB -20150723041641 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BEDD6F42B -20150723054042 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF1A34987 -20150723062354 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF35B6DA3 -20150723064313 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF4406337 -20150723070058 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF5090CAF -20150723070925 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF5674077 -20150723071217 2 6 100 6143 5 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF5805D5F -20150723080452 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BF7E1BF7B -20150723085816 2 6 100 6143 2 F4B3AA5670155948B77C147B913D2B683844E3AFBAA945A24ADEF56053F07D47F1769B7D51979E0B0577EF4A02F9503C0D47350E821E8908B74CBDD174DA1B48B13C8BD2F3F71367A1F30398296F47C535B15984D1D954AD84882C735145C178444A0B9F0401B663E44BF90CE4ECE38D2BE106BA584640EEAD84F262F828F155F6E39867274A4DD205F5314A971C95E0A78EAF61301D208D9E9DB959C29DAA031165B17E09805C6A6D2A3593FEC4C34AD356E294A27090244B43B55F1AE6E5DACC1262586170163E84A3FA5AA82FA3005BC687D97785FA4D8AB265F194BA155F3BA0E8D8AFF5E5511817C5F037D7E494FADFCB68D3EC70F9CDFC08BC0B5B5E6FEA0D09C9474D806E6B759D1FB15D4852284288A6B222F543E26294E5E8FA539F5ABFB384DC0FCD8218F5C097BFDBCA6CB954018126BA48CA27A17546EDE5A55264845385C018CB2E8394C7735F2B650C40734BD28D8DE17D5639A378B4B48874479D6B6097E59D36B86EF5B404732E3E8FAE62BE9DA3A78A409113136B64235362420154C057F491A44DDEF508FF10F51CD36C0EDE34DC40FB4BAF27E7BE9884BBCB50F2A400B4654CC49514EB8AD3DE5AC519F66F24F761B1DFCDADDFCE3E27F64E51D8BD8D51E8841C3A187741D2D97ACEC97895F4253DC31E7101C7902F649F0385CC59CC4D3578F4CD7742B5227FB15AEE54075A4630B6F117DDBF0EA3B880C34BF8C8F3075E8207FBE7280CE5F4F5E22071813FBB272381025A72AC12FCB442DF7814EBF5DB2836E1F6DFF14AF05EA9F01E06BD7E0A6603056F369C901B305AF09608293F5B5E76C8374726CC187EFF1F74918D740134B80CFC276BA7812ADE0A15E743A39164226DDA3BE3E4D4BEDA8D1DC6AD2BDDC064C28C0AA823AEF0C7AC7F668D9A9E68A20F0FC3D34F865148659C506264023AC4869ED1233817DFA9E00617B724D9E08C74A70B4B13B336AF156CB8357E0DFD3F94C84CFFCF47C219D7C66847E043549C17204CC00FECD8BAE08608BEB185154782F73DFDA31752CD70F0E4A3B59A3CB24B839EC476CC6C3B8927EA29892AC5F8831BFA34E353 +20150521004745 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F52665F2B +20150521003352 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F57C7B577 +20150521005557 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F591BBC57 +20150521014228 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5BDF5CE7 +20150521015455 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5C9CFD1F +20150521001701 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5CF6FF9B +20150521002558 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5D7C4FE3 +20150521003319 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5DE41DFB +20150521003721 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F5E1B5FAF +20150521010943 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F600B866F +20150521014141 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F61F01EC3 +20150521010312 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F65EAB753 +20150521002914 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F69FD9357 +20150521011058 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6C6B8513 +20150521013628 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6DE7D9EF +20150521015040 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6EB0C897 +20150521001307 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F6F15473B +20150521012712 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7377044B +20150521005218 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7767DEA3 +20150521003512 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7C5546F7 +20150521005420 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7D68EDC3 +20150521011347 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F7E859CF3 +20150521002429 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F819A93E7 +20150521004826 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F88D91A57 +20150521010541 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F89D29B9F +20150521012418 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8ADC38F7 +20150521015506 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8C91980B +20150521004000 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8E369B97 +20150521005659 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8F2B1BEB +20150521010328 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8F7DD1D3 +20150521011152 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F8FF052BB +20150521001457 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F92940463 +20150521011129 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F95C47DCB +20150521013515 2 6 100 6143 2 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F9710A103 +20150521013841 2 6 100 6143 5 D9F2DC4F4AB3E451AB7781730AE26AE5AB1927A8F93D05C7765C4F23947CBAD218690437DDE587137100CA657CB902597743E8B05CB9B821A48E081C451227F5E42404534A28EE1D0A52FA903FBB15B79139D130420B8C7BD2477CDF0C06CF4C9943DF76A74C3B503B2229A5628E13983B0426A10FD164A720488DE3A1639D004B694ADB5216C21F481519865529CE6E3C9C8B89AC00FBF2B4C1F0B0033AC2A5072A157B5D4346950917B055227557FF1EB5F0873D75E648BEE4B6F88D4B228CB89C7602E34F85BF86DDBD09CA39993C73FF59B0310754F0D24740316F7D8D21D67EC65C8715B7130EBC8E19EB712990BBB30D650ACB0B7864B632ABBC2AEE7221393A5C74B043568043480DB41821A0CE1E6D271456C2FDC243D39868FB0D7BDA3FAD5894F7DCBBC5751B77B3DF99F6E8A5BD7A5B82F594E3E0CA2BBF7DA74312227B323652E6856B597326206CAFF2380C23CF94B8CD3EAA56BE60F8C372887CD37A62FC6F5FD467ED96E7CD9C285E75C2C353E520DFB3F39FE7B8E35FFB485B1B043F52321675EDF4848266997D059810F71D21E9DB3E3AB1BCE3713DB67155F41B7C21939B285AB63DBF1770228E4EE36314310D89200F132E8ECF2968CDA0E57DBBCE589E4DDBAD009994A817032EFA52F0659A319FBD813901BF5847EC2D7979CBA5870F3DA25BE09673952628E1EA70C82EC0BE67B402E48DF85C5983516BBEEAB811D1ECAB02928D4087B826139D073501149D47B3339CDA763840E4492661FFEF96C81C816B862EEE820019CD83C93BF9DFF8EC8C59331780D5D86B164EC12BBE59F4C9E62FD7819A941D10AFE32179B2361A17618FA84864F58C09AECB817E67BC352371BB7D7F8209E4EB9002013A585092D4721B1CB464A8480CC76173989144EF51692E373E9CCEAC9807EF190D6BBDD3BB0D16CA87DC6A54890D6F074ABD83E3CF077F2F592C0745BE15D7D6871552BB6139E5CF70D684C6D1D0C4516733E0639BBEC847313BE3D1D923B6A5FAF43A5341DD8C0779881BEB92736BA4F18BD6CDC1FC922B3809ED244748101A6C7E30DDE0C232FA3F9733A497 diff --git a/ssh/moduli-gen/moduli.7680 b/ssh/moduli-gen/moduli.7680 index a060751..91836c0 100644 --- a/ssh/moduli-gen/moduli.7680 +++ b/ssh/moduli-gen/moduli.7680 @@ -1,36 +1,24 @@ -20150723105438 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FC30CD7BF -20150723120440 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FC4F136CB -20150723165920 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FCD24FFB7 -20150723170525 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FCD4A1AEF -20150723180932 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FCEEF30FF -20150723201416 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FD24010CB -20150723221826 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FD591451B -20150723224656 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FD645E14B -20150723231337 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FD6EC26FB -20150723232136 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FD715DD7B -20150723232527 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FD7268D63 -20150724023116 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FDBFAD66B -20150724070655 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FE315B31B -20150724080254 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FE4885BCB -20150724084948 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FE5B6440B -20150724085155 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FE5BA47DF -20150724171906 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FF3210373 -20150724172905 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FF35C986F -20150724173537 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FF37C808B -20150724183314 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FF4D72A8B -20150724191717 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FF5F5D7A3 -20150724195208 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1377FF6D0F807 -20150725022052 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A137800096FFCF -20150725042047 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A137800379602F -20150725063156 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A13780069C4D13 -20150725070244 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A13780075DB7FB -20150725083516 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1378009AB36F3 -20150725105929 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A137800D3ECB4F -20150725125455 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A137800FFF48E7 -20150725135028 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A13780115025C7 -20150725153221 2 6 100 7679 5 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1378013DF02EF -20150725221659 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A137801E10D86B -20150726000903 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1378021002223 -20150726042610 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A13780271A54EB -20150726051659 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A1378028446BBB -20150726080023 2 6 100 7679 2 D8A287CD280E004A6D449CD5E6B8429AE2D028C701436EECEC393D0CACF40CFEB8BABF9AC2FB40C1A6863A99626CF1D2BB3152E0E452D6FEA36209C0C4EDC83899BAF6DB6C7A516057F8A6A2FCBDD69EDC7F2DE975D0B14AF6ADEBDDBC501CB41F47B5A6E1EFF5ACBBE2DD4B756FA3208CFFC6A72E15DD8F5D17CE60FB0BA2DBDF6B451FE7CACA65F1F4E831D8D3AD04358E4050DFBF0B50D5F857CFBEDA78486FB3CC06BA4044525E622AF94CDECBA418605265D06D9BCEA459A82571BFAB79B36A36AE7B82AE9A4C2F5A16230FE029F53BDBCDB1D221E509B7EE72ED38125160F7EB35D8F36E7DAF78B53F57D1E2C3018941D4C7827151DFDC6AB52D869A9A7BA3B503B59C29CC7FD537A77F79B5546F4264D1196A1D5B30DC79E1185AA964179676CBE7BB3DE147C08220C74D8F70C081C219B484C32F4B5760922A7747BE08A73980D42606DC84F4166F996D1AED8E4DF9007DFC0E7B4EE860670BE5A795EE83A6529BCF8ED519AC16D88D0F25431D4F0028962A9D180DF0CC3C1C0CCA48EB462B340E5A300A289BA39E1C5CB019B4FBAFFE1345182D6D2334C2D22306C6BDC19FBB50CBDC5D8085593F669092B4BA77C9B2EAFE723326580A54E384BECC0B2E7964FBBD04B4E7F5DE9ADF769E9644E261A4AB590D2E571871E2B809B003433060AB2C3245FA9C72137B44FEF08228304DD6C70ACB4E0EB3102AE6EAAA095F43BC839CED51DE8D3ADD68CEEDD6B2835DED0997BC68D85BA0666BEEE92E0F562AF3BEA6C3875CBFA8C5F41240599B1FAB3D6F0C72D7E42C5A1567B4FD5C554EC4B775340F9D74496092683AE827339801998D2CFD22B24BFCA5BF6C631829140DB7CA26B0169DEDD4AA8A3C723257BBE243218B3F6857E806792D7F43E619C385DD613F71E1F2C1865E20C737CB66C2D52188B2EEDEEDF4EE29D3BADD9EE911BF206740D2C4B46A74146B81A2782B66738B2DF12A17916E00E1CE9F4D9971828D13A8C1CF5F701AA4369675A8CDF720E52EEA47B232824358AC4BD24D58B0758DD9931E4D4B189D80023B9646C91EE51D6C3F9461B7D7A9ED96678F88D11675A864262D8E23212070A197ABEB11C9DD036BA017C341F0B425DC7AF22E129B94BEAA06FC52FBF7FC776BE31BD132863FF42681E4C111F7FC4515AC123BACFA790A3068B2799D89A00F64F852B7C741B7C4DEAF5CB6C5BD2042128D5DF4A9525DD32FCF4C81F9CDEC83090EA13E733D7DE4BF55C25F180707F3A973B1255F44ABDD7BBD54540D14DB191A2D6CC902647C92D7C1694E9D8200384EB83942F59D00D12EB613F6EFD36AF26CE4870B2FCF66484570B9FA884928A137802C177CD3 +20150521041810 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7BE934407F +20150521070624 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7BEEB1E407 +20150521051555 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7BF50EEEC3 +20150521061258 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C00AF225F +20150521034225 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C058D5963 +20150521035956 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C0616723F +20150521054248 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C12F16C3F +20150521060112 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C1379EA23 +20150521023340 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C165F2773 +20150521043505 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C1A3EC717 +20150521024626 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C202ABED3 +20150521064303 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C27790087 +20150521060604 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C2F9DF583 +20150521062143 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C3003EEAB +20150521044311 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C363D0A77 +20150521053731 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C37D6EFCF +20150521065640 2 6 100 7679 5 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C3A20A2DF +20150521044717 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C3F622E8B +20150521065426 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C430ED7CB +20150521023632 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C445E575B +20150521032945 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C45EEE643 +20150521054538 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C49FB77CB +20150521024620 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C4D86D0FB +20150521042108 2 6 100 7679 2 D67DA234F46097F7EE3B230456E7C895BCA86395DF43D60D9D587C64EA4525FBCAD22442143068578CE8ECC8280B2D81F747B484AA668FFCDBEB067EB824B42E5FA1A40BC08EE8CC4A064298CB31C36340951EC7A006878C79C80068196180DA31E1DEF79A72B2D059203DDE461485D1B9783AF79E981CDAEF88589D8343E5B52D96FE90EA13194AFAF7459B17B80971720357ABD09CFE992966FFC1C239821C910F55D69E44277E5DE9841F4E5B2D25D6A265D321059B762F7D6AC5F0E260DEEB628D32940002B219B354486CC5BBF6390F19899EA5E145A28487029DF0517564A81FA10FA60AFA04CE77794775392829DB636E7F5EE00868D5027A6BA75CA922CEF3CA78683D14AB2E58439789033ACF441236F5E3C7849E3662B5123304F82D0061EA9C18EA1676A736FFD628AE982CCEAB8979568C43FB34207E0DEC7D8A6AA391846C910F77771ECF2D0531A234D3798BC1B1433091A895E23A77792F4BE403D526F1D260A3627F2E80E863A204A774F58D7DE2C5C4A7E463A46BC436F0B7AF07179EC334D31073BF035FD94454ECD54146473F786EA15A1CEBB3B9C0D282195AD612D33B31F5528DAB5231CB17A3DE9AB5C8BD7BF8F773C255845BC9B70A1E53A50E5AEA801FFE604A2B2C1FBE86A2A883632E7AE75ADA007FB6AB1AA529DE3151CAA8D1D07FA19EFF5679398340E720CF2CFC4E1AEDD73C44983CC8E610DD419AE2E88206573837D6E44018D9498B62F9C0B8EA7741450FC7DBFF7C546D3CBCBA5B9123577FD5531880A18F1275F9181A922803D8F03512C58B5FBBC41CE8095EDD920A3E36CEB6EDB56900E6CEC2928288909D61B3B426EBC54F0A69C261A848B358C3A8E332567B9FFC1A7A07E9414BB1F75DE0795CF87632F5D6A87A246FD4E98E70489F779FE99C5BC4DB24BFA860C3551888FC721CDBC6AB5783B02BEF893E0984B6FDB5142A1AFD3277FE8F36B87849BC00B3FB3ADAFE4EDAE4839B83894C27FEF93514D7E3FFB7A30E99C6875D96C582E81D45FB463DC37B8791FC28A759301FC2F9879960C82BC7C427382A41B9AEFAC0051A2C653E55A47B48860CDA32812A192C1508A6C012C7E4BBAB1619B7926549FD8CE27928618F035BE31D56CBC9586D88E00DA69341F6F01554E205344E49E8871CCF80F9FF5CB54479AFA66806DD02FAFEE7D43572B3AA22742635FE65BFC8004960DC679FC7F8C0E5B50B3CE1E446B7A5E189BB9AAFA06FEC472D6E67EA4905373A01A2B662F534131405FBAB9BBAE892F0C265439EA1ABC91B186B5AC1E53A0C786607B1069BC026359955CFD614D7F80DF416A08AB18991A0398A83DF3CF2D65D7C505E524B diff --git a/ssh/moduli-gen/moduli.8192 b/ssh/moduli-gen/moduli.8192 index 1afa4cc..50f0467 100644 --- a/ssh/moduli-gen/moduli.8192 +++ b/ssh/moduli-gen/moduli.8192 @@ -1,31 +1,26 @@ -20150726121533 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A921E4DDE3 -20150726121725 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A923DB3AD3 -20150726121908 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A92E4EC1FB -20150726122057 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A93102BC77 -20150726122249 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A93801B7F7 -20150726122426 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A9426DE433 -20150726122607 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A94D03F2C3 -20150726122752 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A951DCDFCB -20150726122945 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A955A87ABB -20150726123131 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A955D7F7FF -20150726123322 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A9588C55C3 -20150726123505 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A95A3B08FF -20150726123647 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A968F917E7 -20150726123831 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A96A4C6BF3 -20150726124013 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A96D52C167 -20150726124201 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A971D2EAD7 -20150726124340 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A9727A8027 -20150726124530 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A977C3B363 -20150726124724 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A97C61A2B3 -20150726124913 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A980DEF827 -20150726125103 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A986812423 -20150726125250 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A987CD625B -20150726125434 2 6 200 8191 5 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A98BC0A98F -20150726125618 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A98C2FB793 -20150726125803 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A98C830E13 -20150726125944 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A98D5FE6AB -20150726130129 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A99141A01B -20150726130314 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A992433403 -20150726130501 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A99F9F25F3 -20150726130650 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A99FD366C3 -20150726130835 2 6 200 8191 2 EBA64250F62CA85787FB53A6A91FFC2301588836CD2DD35196E8763363936A8BF2A01EF2A8D853091AB6A2ABAE59D7A0E1F8252175A4129E639A216E2DEBFE10A6075FEB4EC1AA301C4375254AE1EA466073F8278D793DDCB713BD8184C42A1C0746BAAB98978B3E6968460249094A9A2FB8154DDC64A255F8D5A261867FABFF58EA66E0C4A42FA8411ED244A6560A058841E01B615B25D03714FB57EA0E5FE6D8EB228A2613EAE24911258C696E6817E0D767F2E60340F5E51BD4139A20616ED43042925973CA9350D3B1C5764C23DDB6A4B8FA5F47617B56AD1E4976A801642E0D2A85456F3DBB4AB634CEA29DFC19D845FCE8D6C05ABA648E34D3BD14B3FEC2AAD1705298943429E1D5CD8A86DA3CA127B6F28E368605EBBE3FF56CB038FEDF696B3D0D414060979239CEFBB858607B86E9D6D28DC48CD006492E4E9A18517A90BBED7ED524D55E46F209FD02CA306D605138DD42CE083E3943D8771C1CE4DF7EA67961EA9A93D16C3FEF3F730D14E1391DE3451C378A138376430559B6BE744703611E10D3BD3F127F9C889277BF45B85EF7F602C960447545BE2FA38351AE0E0EF12C9CDC51725A82FCE456A25F21CA0C935A6DBE477C6C5B1257A2DA49A39CD124828411CD81BDF17060AA3BC5089B74659D095A7CD6517DB0FE9908E8685762EADFC776829EA345E3E5B546B45A1C8AC4C11B5225E965D06BFC8864E018072355EACA9187FED9D9FB9C291D7D32FF6D8A6E10A4B9BCDB81EFC188FDC04BD60563F1D181B6718A47F70EFFA692E19736EE86C8F7EB8AAEDB0622D605F92CA560DEB4B8163C022802BBD1AEBBC1C7D9CAA323F101B31AC4D106C251FE5D4443305A9CE48D1B6D79EA22055173C929A927EC881B62901A76D55D230369BF0B48B06788C9B9D9CDAC86494E2D744B8309C511113E7A4774117C4F04C1A1FB608893BED6A5E15AB34B039689EE8551E76C25261C03C7561B38B81E6DFE3D252206B909EE3738BD34C76C97CE0402D66A9B0513143392E2427AEED709CD0FD60ADF6F0F7146DF9A6AF2E989A3CEC840C2A1EFEDECA75EE3390FDCD9A98E6C4E66556C0EE4BBE8168A342FC409C30B0A03AD26C5D04F5C734F8E298F965E286B7CBBA8F9BA4BDF2D2105E94A84F22ABFF47007201BC901C82373077EA0A0FCE34EBE29D3E9FC093FB68A095F816F34545513150C7489D930186E2F5DBF5D977D5F428B01A44ABCF8A7719C36F36425B03065E77F5CC360E63B82EFF841C4FA5FED2823BC81F3E6E91CC8E0C211DEE2AFAE7E61432463AA0E2B5F7B20F9B1A585D61B163C20DAF31937733F8946C11C5EB7E772BCDD677A7EB3B8EADBDA222066117236C5CFCEA52E891909CAD344D7A2610F6A4DC7C97A817BBA61BF4D1168896E2A14C9C44A1042C28C5A4D04987E1ECBB20BF6D415B603418064A9A1A437B3 +20150521041835 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD3703FA7 +20150521051726 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD4CEF96F +20150521074626 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD86439C3 +20150521082439 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CD947F7F3 +20150521012012 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CE0694343 +20150521073153 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CE93D436F +20150521094433 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CEC4EE993 +20150521074128 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354CFA190CE3 +20150521014004 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D0235296F +20150521014736 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D025961EB +20150521065737 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D0961218F +20150521043653 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D163706C7 +20150521085322 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D1BC6858F +20150521093922 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D1CC27FE3 +20150521120407 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D1FE2874F +20150521124157 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D20A8A19B +20150521035417 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D24E0665B +20150521062806 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D2828F7AB +20150521074218 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D29B42017 +20150521114937 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D2F027D3F +20150521073847 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D3905A9FF +20150521024512 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D41DB2FFB +20150521024827 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D41E2852F +20150521042402 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D43D9B0E3 +20150521083756 2 6 100 8191 5 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D491D852F +20150521113241 2 6 100 8191 2 D7182545CB6AFDA1CCF5BB87F606DDD1CD25D4BAF110D7CCCC0BC78929189C09DC69308FBF76A16338AB8351B974081AEFE6F68B9DD0B3F661ED84DAF8736BF328122D00A803AD05DDB334CF5C98B2670F0B2ED0E2FA602CE2F6157A2A8E649A546957CE4F723C84B6AC46D64C5B329304181F2B70F48D15181C38777F4E18BB0344F5DAE703CC3A46B670713A7B99E536D30F92D1E5E683F2C5540105F425E01234968D1A63E0220A02721183E30302F029E4D0E0664E30329B730D99D03E53D67793F31BBA6C4274FB2ACA9181655B766246C598E4CD402737B682232B8534BE43A790ED6C04EF8047E1796048099B65EF415375D87BC7A01CB6086C9E23B667D22F52F5F44D6960601C15515D14F7D6A6BF6D7F6B1D834866ADF9FCFA1CDE00EF04C05591B05D4752471F124406D034BC8E6D71E03880BD3E7A77FD22E7D90B90A491E528EDE2E4B6FCF7C638883A4CDE80AF2C839569A4FB641C7B8948200DB0F51CA9B2613966C51F026A007D0696D14A4E4897556C7BB0E60A407B7B8C57643F278A47CC8089E24D38BAC1350A0E6D19FE540A773B8E90A6312D4B038C643B03ADDC741BDD3012F7714863BB63688E6145D47A6F40D15D6485E5AC278E229EA800FE705FEBEB2183CEF7C55DB952B627D4890B45441B3D4CF03BF0D132A7042C24447518B14956C11703131981CD69D7B6BA2A9F8C62057FE3A4319D17739DE0BBDAC9600E4809CD856E5F41C580863D93C251F0A31BA1CBCCAA499FEB79184E165C436A3B2FA9791C4526B47B0D1F6FE3BDE2730421E5DCA10483D91AA873ABD1236674EBE3A0D134C685CCE9D632280AE11C0D9CF7275517C1F14BCB81F2B23860D86F5028B21DF85868972EDF70A0704B3853EB1B16970834C661BC65693D38368DDB0D6E781DD2F52AE279913304601F5709E1C4B1A12B0FFDA93369001186FE8716027667F4B816E927A9977D3030CE211F4BE8B6F48836EABF4D8457FC5CFE39DF5BE96146D3B8C5BA11C3D75D252B0C190DEA5757049DE6BA89249166D60163ADDD38EAE171B53D44E135973AA05293AA7407693AE5478F480A3BE97BACBD8C7DE6EDF39EFB8BDDF8B0A2169228FD98A863C450129C8BA561A1D0F29C4EC75060A27E028E1321BCF7ADCB34B2C2B037E2C6B705F74002E0C844092025A630CFB2105F04D40135794DDF30C7E19187AE2AB8E6296C9EACFF43279F0ABE6E1150ABC2C3C8A6C4B95A7AA18CFBF953BF7662C16A0FE26D9EE7CF62BA16AA87B06373082E7551F42B8BE57BE19A50B059DC652BA46157FB7CC29AC1BF2834E668443637F87B2B12FD338706D69935D2C6348CF72F568B89B66345BF42209AA6D898F4388A54B4CFFD735EAF987CD6B738B401A14FACDAC97F63529118ED56DFB7DAC4967FFA252D185DBC29652E3F62A45D6BF990FB354D4CAD7D8B diff --git a/ssh/monitor.c b/ssh/monitor.c index 4f89607..7cbebbe 100644 --- a/ssh/monitor.c +++ b/ssh/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.156 2016/01/14 16:17:39 markus Exp $ */ +/* $OpenBSD: monitor.c,v 1.158 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -597,10 +597,9 @@ mm_answer_sign(int sock, struct sshbuf *m) struct ssh *ssh = active_state; /* XXX */ extern int auth_sock; /* XXX move to state struct? */ struct sshkey *key; - struct sshbuf *sigbuf; - u_char *p; - u_char *signature; - char *alg; + struct sshbuf *sigbuf = NULL; + u_char *p = NULL, *signature = NULL; + char *alg = NULL; size_t datlen, siglen, alglen; int r, is_proof = 0; u_int keyid; @@ -678,6 +677,7 @@ mm_answer_sign(int sock, struct sshbuf *m) if ((r = sshbuf_put_string(m, signature, siglen)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); + free(alg); free(p); free(signature); @@ -1234,7 +1234,11 @@ mm_answer_keyverify(int sock, struct sshbuf *m) static void mm_record_login(Session *s, struct passwd *pw) { +<<<<<<< monitor.c struct ssh *ssh = active_state; /* XXX */ +======= + struct ssh *ssh = active_state; /* XXX */ +>>>>>>> 1.158 socklen_t fromlen; struct sockaddr_storage from; @@ -1256,7 +1260,7 @@ mm_record_login(Session *s, struct passwd *pw) } /* Record that there was a login on that tty from the remote host. */ record_login(s->pid, s->tty, pw->pw_name, pw->pw_uid, - get_remote_name_or_ip(utmp_len, options.use_dns), + session_get_remote_name_or_ip(ssh, utmp_len, options.use_dns), (struct sockaddr *)&from, fromlen); } diff --git a/ssh/monitor_fdpass.c b/ssh/monitor_fdpass.c index 3e8a58d..06278bd 100644 --- a/ssh/monitor_fdpass.c +++ b/ssh/monitor_fdpass.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_fdpass.c,v 1.20 2015/02/25 23:05:47 djm Exp $ */ +/* $OpenBSD: monitor_fdpass.c,v 1.21 2016/02/29 20:22:36 jca Exp $ */ /* * Copyright 2001 Niels Provos * All rights reserved. @@ -79,8 +79,7 @@ mm_send_fd(int sock, int fd) } if (n != 1) { - error("%s: sendmsg: expected sent 1 got %ld", - __func__, (long)n); + error("%s: sendmsg: expected sent 1 got %zd", __func__, n); return -1; } return 0; @@ -123,8 +122,7 @@ mm_receive_fd(int sock) } if (n != 1) { - error("%s: recvmsg: expected received 1 got %ld", - __func__, (long)n); + error("%s: recvmsg: expected received 1 got %zd", __func__, n); return -1; } diff --git a/ssh/monitor_wrap.c b/ssh/monitor_wrap.c index 6aed17a..6525898 100644 --- a/ssh/monitor_wrap.c +++ b/ssh/monitor_wrap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.c,v 1.87 2016/01/14 16:17:40 markus Exp $ */ +/* $OpenBSD: monitor_wrap.c,v 1.88 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -408,15 +408,25 @@ mm_user_key_allowed(struct passwd *pw, struct sshkey *key, } int +<<<<<<< monitor_wrap.c mm_hostbased_key_allowed(struct passwd *pw, char *user, char *host, struct sshkey *key) +======= +mm_hostbased_key_allowed(struct passwd *pw, const char *user, const char *host, + Key *key) +>>>>>>> 1.88 { return (mm_key_allowed(MM_HOSTKEY, user, host, key, 0)); } int +<<<<<<< monitor_wrap.c mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, char *user, char *host, struct sshkey *key) +======= +mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, const char *user, + const char *host, Key *key) +>>>>>>> 1.88 { int ret; @@ -427,8 +437,13 @@ mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, char *user, } int +<<<<<<< monitor_wrap.c mm_key_allowed(enum mm_keytype type, char *user, char *host, struct sshkey *key, int pubkey_auth_attempt) +======= +mm_key_allowed(enum mm_keytype type, const char *user, const char *host, + Key *key, int pubkey_auth_attempt) +>>>>>>> 1.88 { struct sshbuf *m; u_char *blob; diff --git a/ssh/monitor_wrap.h b/ssh/monitor_wrap.h index 15ed40f..735aa05 100644 --- a/ssh/monitor_wrap.h +++ b/ssh/monitor_wrap.h @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.h,v 1.29 2015/12/04 16:41:28 markus Exp $ */ +/* $OpenBSD: monitor_wrap.h,v 1.30 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright 2002 Niels Provos @@ -45,6 +45,7 @@ int mm_sshkey_sign(struct sshkey *, u_char **, size_t *, const u_char *, size_t, void mm_inform_authserv(char *, char *); struct passwd *mm_getpwnamallow(const char *); char *mm_auth2_read_banner(void); +<<<<<<< monitor_wrap.h int mm_auth_password(struct authctxt *, char *); int mm_key_allowed(enum mm_keytype, char *, char *, struct sshkey *, int); int mm_user_key_allowed(struct passwd *, struct sshkey *, int); @@ -56,6 +57,19 @@ int mm_sshkey_verify(struct sshkey *, u_char *, size_t, int mm_auth_rsa_key_allowed(struct passwd *, BIGNUM *, struct sshkey **); int mm_auth_rsa_verify_response(struct sshkey *, BIGNUM *, u_char *); BIGNUM *mm_auth_rsa_generate_challenge(struct sshkey *); +======= +int mm_auth_password(struct Authctxt *, char *); +int mm_key_allowed(enum mm_keytype, const char *, const char *, Key *, int); +int mm_user_key_allowed(struct passwd *, Key *, int); +int mm_hostbased_key_allowed(struct passwd *, const char *, + const char *, Key *); +int mm_auth_rhosts_rsa_key_allowed(struct passwd *, const char *, + const char *, Key *); +int mm_key_verify(Key *, u_char *, u_int, u_char *, u_int); +int mm_auth_rsa_key_allowed(struct passwd *, BIGNUM *, Key **); +int mm_auth_rsa_verify_response(Key *, BIGNUM *, u_char *); +BIGNUM *mm_auth_rsa_generate_challenge(Key *); +>>>>>>> 1.30 #ifdef GSSAPI OM_uint32 mm_ssh_gssapi_server_ctx(Gssctxt **, gss_OID); diff --git a/ssh/myproposal.h b/ssh/myproposal.h index 57bee47..45b3583 100644 --- a/ssh/myproposal.h +++ b/ssh/myproposal.h @@ -1,4 +1,4 @@ -/* $OpenBSD: myproposal.h,v 1.49 2015/12/05 20:53:21 markus Exp $ */ +/* $OpenBSD: myproposal.h,v 1.50 2016/02/09 05:30:04 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -60,9 +60,7 @@ "aes128-gcm@openssh.com,aes256-gcm@openssh.com" #define KEX_CLIENT_ENCRYPT KEX_SERVER_ENCRYPT "," \ - "arcfour256,arcfour128," \ - "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc," \ - "aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se" + "aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc" #define KEX_SERVER_MAC \ "umac-64-etm@openssh.com," \ @@ -76,18 +74,9 @@ "hmac-sha2-512," \ "hmac-sha1" -#define KEX_CLIENT_MAC KEX_SERVER_MAC "," \ - "hmac-md5-etm@openssh.com," \ - "hmac-ripemd160-etm@openssh.com," \ - "hmac-sha1-96-etm@openssh.com," \ - "hmac-md5-96-etm@openssh.com," \ - "hmac-md5," \ - "hmac-ripemd160," \ - "hmac-ripemd160@openssh.com," \ - "hmac-sha1-96," \ - "hmac-md5-96" - -#else +#define KEX_CLIENT_MAC KEX_SERVER_MAC + +#else /* WITH_OPENSSL */ #define KEX_SERVER_KEX \ "curve25519-sha256@libssh.org" diff --git a/ssh/packet.c b/ssh/packet.c index a146b91..f638cf5 100644 --- a/ssh/packet.c +++ b/ssh/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.226 2016/01/29 05:46:01 djm Exp $ */ +/* $OpenBSD: packet.c,v 1.230 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -46,6 +46,7 @@ #include #include +#include #include #include #include @@ -252,6 +253,14 @@ ssh_alloc_session_state(void) return NULL; } +/* Returns nonzero if rekeying is in progress */ +int +ssh_packet_is_rekeying(struct ssh *ssh) +{ + return compat20 && + (ssh->state->rekeying || (ssh->kex != NULL && ssh->kex->done == 0)); +} + /* * Sets the descriptors used for communication. Disables encryption until * packet_set_encryption_key is called. @@ -281,7 +290,7 @@ ssh_packet_set_connection(struct ssh *ssh, int fd_in, int fd_out) (r = cipher_init(&state->receive_context, none, (const u_char *)"", 0, NULL, 0, CIPHER_DECRYPT)) != 0) { error("%s: cipher_init failed: %s", __func__, ssh_err(r)); - free(ssh); + free(ssh); /* XXX need ssh_free_session_state? */ return NULL; } state->newkeys[MODE_IN] = state->newkeys[MODE_OUT] = NULL; @@ -364,6 +373,9 @@ ssh_packet_connection_is_on_socket(struct ssh *ssh) struct sockaddr_storage from, to; socklen_t fromlen, tolen; + if (state->connection_in == -1 || state->connection_out == -1) + return 0; + /* filedescriptors in and out are the same, so it's a socket */ if (state->connection_in == state->connection_out) return 1; @@ -448,10 +460,14 @@ ssh_remote_ipaddr(struct ssh *ssh) if (ssh->remote_ipaddr == NULL) { if (ssh_packet_connection_is_on_socket(ssh)) { ssh->remote_ipaddr = get_peer_ipaddr(sock); - ssh->remote_port = get_sock_port(sock, 0); + ssh->remote_port = get_peer_port(sock); + ssh->local_ipaddr = get_local_ipaddr(sock); + ssh->local_port = get_local_port(sock); } else { ssh->remote_ipaddr = strdup("UNKNOWN"); - ssh->remote_port = 0; + ssh->remote_port = 65535; + ssh->local_ipaddr = strdup("UNKNOWN"); + ssh->local_port = 65535; } } return ssh->remote_ipaddr; @@ -466,6 +482,27 @@ ssh_remote_port(struct ssh *ssh) return ssh->remote_port; } +/* + * Returns the IP-address of the local host as a string. The returned + * string must not be freed. + */ + +const char * +ssh_local_ipaddr(struct ssh *ssh) +{ + (void)ssh_remote_ipaddr(ssh); /* Will lookup and cache. */ + return ssh->local_ipaddr; +} + +/* Returns the port number of the local host. */ + +int +ssh_local_port(struct ssh *ssh) +{ + (void)ssh_remote_ipaddr(ssh); /* Will lookup and cache. */ + return ssh->local_port; +} + /* Closes the connection and clears and frees internal data structures. */ void @@ -942,8 +979,10 @@ ssh_set_newkeys(struct ssh *ssh, int mode) if (state->newkeys[mode] != NULL) { debug("set_newkeys: rekeying, input %llu bytes %llu blocks, " "output %llu bytes %llu blocks", - state->p_read.bytes, state->p_read.blocks, - state->p_send.bytes, state->p_send.blocks); + (unsigned long long)state->p_read.bytes, + (unsigned long long)state->p_read.blocks, + (unsigned long long)state->p_send.bytes, + (unsigned long long)state->p_send.blocks); if ((r = cipher_cleanup(cc)) != 0) return r; enc = &state->newkeys[mode]->enc; @@ -1011,10 +1050,55 @@ ssh_set_newkeys(struct ssh *ssh, int mode) if (state->rekey_limit) *max_blocks = MIN(*max_blocks, state->rekey_limit / enc->block_size); - debug("rekey after %llu blocks", *max_blocks); + debug("rekey after %llu blocks", (unsigned long long)*max_blocks); return 0; } +#define MAX_PACKETS (1U<<31) +static int +ssh_packet_need_rekeying(struct ssh *ssh, u_int outbound_packet_len) +{ + struct session_state *state = ssh->state; + u_int32_t out_blocks; + + /* XXX client can't cope with rekeying pre-auth */ + if (!state->after_authentication) + return 0; + + /* Haven't keyed yet or KEX in progress. */ + if (ssh->kex == NULL || ssh_packet_is_rekeying(ssh)) + return 0; + + /* Peer can't rekey */ + if (ssh->compat & SSH_BUG_NOREKEY) + return 0; + + /* + * Permit one packet in or out per rekey - this allows us to + * make progress when rekey limits are very small. + */ + if (state->p_send.packets == 0 && state->p_read.packets == 0) + return 0; + + /* Time-based rekeying */ + if (state->rekey_interval != 0 && + state->rekey_time + state->rekey_interval <= monotime()) + return 1; + + /* Always rekey when MAX_PACKETS sent in either direction */ + if (state->p_send.packets > MAX_PACKETS || + state->p_read.packets > MAX_PACKETS) + return 1; + + /* Rekey after (cipher-specific) maxiumum blocks */ + out_blocks = roundup(outbound_packet_len, + state->newkeys[MODE_OUT]->enc.block_size); + return (state->max_blocks_out && + (state->p_send.blocks + out_blocks > state->max_blocks_out)) || + (state->max_blocks_in && + (state->p_read.blocks > state->max_blocks_in)); +} + /* * Delayed compression for SSH2 is enabled after authentication: * This happens on the server side after a SSH2_MSG_USERAUTH_SUCCESS is sent, @@ -1218,35 +1302,58 @@ ssh_packet_send2_wrapped(struct ssh *ssh) return r; } +/* returns non-zero if the specified packet type is usec by KEX */ +static int +ssh_packet_type_is_kex(u_char type) +{ + return + type >= SSH2_MSG_TRANSPORT_MIN && + type <= SSH2_MSG_TRANSPORT_MAX && + type != SSH2_MSG_SERVICE_REQUEST && + type != SSH2_MSG_SERVICE_ACCEPT && + type != SSH2_MSG_EXT_INFO; +} + int ssh_packet_send2(struct ssh *ssh) { struct session_state *state = ssh->state; struct packet *p; u_char type; - int r; + int r, need_rekey; + if (sshbuf_len(state->outgoing_packet) < 6) + return SSH_ERR_INTERNAL_ERROR; type = sshbuf_ptr(state->outgoing_packet)[5]; + need_rekey = !ssh_packet_type_is_kex(type) && + ssh_packet_need_rekeying(ssh, sshbuf_len(state->outgoing_packet)); - /* during rekeying we can only send key exchange messages */ - if (state->rekeying) { - if ((type < SSH2_MSG_TRANSPORT_MIN) || - (type > SSH2_MSG_TRANSPORT_MAX) || - (type == SSH2_MSG_SERVICE_REQUEST) || - (type == SSH2_MSG_SERVICE_ACCEPT) || - (type == SSH2_MSG_EXT_INFO)) { - debug("enqueue packet: %u", type); - p = calloc(1, sizeof(*p)); - if (p == NULL) - return SSH_ERR_ALLOC_FAIL; - p->type = type; - p->payload = state->outgoing_packet; - TAILQ_INSERT_TAIL(&state->outgoing, p, next); - state->outgoing_packet = sshbuf_new(); - if (state->outgoing_packet == NULL) - return SSH_ERR_ALLOC_FAIL; - return 0; + /* + * During rekeying we can only send key exchange messages. + * Queue everything else. + */ + if ((need_rekey || state->rekeying) && !ssh_packet_type_is_kex(type)) { + if (need_rekey) + debug3("%s: rekex triggered", __func__); + debug("enqueue packet: %u", type); + p = calloc(1, sizeof(*p)); + if (p == NULL) + return SSH_ERR_ALLOC_FAIL; + p->type = type; + p->payload = state->outgoing_packet; + TAILQ_INSERT_TAIL(&state->outgoing, p, next); + state->outgoing_packet = sshbuf_new(); + if (state->outgoing_packet == NULL) + return SSH_ERR_ALLOC_FAIL; + if (need_rekey) { + /* + * This packet triggered a rekey, so send the + * KEXINIT now. + * NB. reenters this function via kex_start_rekex(). + */ + return kex_start_rekex(ssh); } + return 0; } /* rekeying starts with sending KEXINIT */ @@ -1262,10 +1369,22 @@ ssh_packet_send2(struct ssh *ssh) state->rekey_time = monotime(); while ((p = TAILQ_FIRST(&state->outgoing))) { type = p->type; + /* + * If this packet triggers a rekex, then skip the + * remaining packets in the queue for now. + * NB. re-enters this function via kex_start_rekex. + */ + if (ssh_packet_need_rekeying(ssh, + sshbuf_len(p->payload))) { + debug3("%s: queued packet triggered rekex", + __func__); + return kex_start_rekex(ssh); + } debug("dequeue packet: %u", type); sshbuf_free(state->outgoing_packet); state->outgoing_packet = p->payload; TAILQ_REMOVE(&state->outgoing, p, next); + memset(p, 0, sizeof(*p)); free(p); if ((r = ssh_packet_send2_wrapped(ssh)) != 0) return r; @@ -1769,6 +1888,13 @@ ssh_packet_read_poll2(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) #endif /* reset for next packet */ state->packlen = 0; + + /* do we need to rekey? */ + if (ssh_packet_need_rekeying(ssh, 0)) { + debug3("%s: rekex triggered", __func__); + if ((r = kex_start_rekex(ssh)) != 0) + return r; + } out: return r; } @@ -2245,25 +2371,6 @@ ssh_packet_send_ignore(struct ssh *ssh, int nbytes) } } -#define MAX_PACKETS (1U<<31) -int -ssh_packet_need_rekeying(struct ssh *ssh) -{ - struct session_state *state = ssh->state; - - if (ssh->compat & SSH_BUG_NOREKEY) - return 0; - return - (state->p_send.packets > MAX_PACKETS) || - (state->p_read.packets > MAX_PACKETS) || - (state->max_blocks_out && - (state->p_send.blocks > state->max_blocks_out)) || - (state->max_blocks_in && - (state->p_read.blocks > state->max_blocks_in)) || - (state->rekey_interval != 0 && state->rekey_time + - state->rekey_interval <= monotime()); -} - void ssh_packet_set_rekey_limits(struct ssh *ssh, u_int64_t bytes, time_t seconds) { diff --git a/ssh/packet.h b/ssh/packet.h index 9f4685a..daa529d 100644 --- a/ssh/packet.h +++ b/ssh/packet.h @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.h,v 1.69 2016/01/29 02:54:45 dtucker Exp $ */ +/* $OpenBSD: packet.h,v 1.71 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen @@ -42,9 +42,15 @@ struct ssh { /* Key exchange */ struct kex *kex; +<<<<<<< packet.h /* Cached remote ip address and port*/ +======= + /* cached local and remote ip addresses and ports */ +>>>>>>> 1.71 char *remote_ipaddr; int remote_port; + char *local_ipaddr; + int local_port; /* Dispatcher table */ dispatch_fn *dispatch[DISPATCH_MAX]; @@ -79,6 +85,7 @@ int ssh_packet_get_connection_in(struct ssh *); int ssh_packet_get_connection_out(struct ssh *); void ssh_packet_close(struct ssh *); void ssh_packet_set_encryption_key(struct ssh *, const u_char *, u_int, int); +int ssh_packet_is_rekeying(struct ssh *); void ssh_packet_set_protocol_flags(struct ssh *, u_int); u_int ssh_packet_get_protocol_flags(struct ssh *); int ssh_packet_start_compression(struct ssh *, int); @@ -137,8 +144,9 @@ int ssh_packet_set_state(struct ssh *, struct sshbuf *); const char *ssh_remote_ipaddr(struct ssh *); int ssh_remote_port(struct ssh *); +const char *ssh_local_ipaddr(struct ssh *); +int ssh_local_port(struct ssh *); -int ssh_packet_need_rekeying(struct ssh *); void ssh_packet_set_rekey_limits(struct ssh *, u_int64_t, time_t); time_t ssh_packet_get_rekey_timeout(struct ssh *); diff --git a/ssh/progressmeter.c b/ssh/progressmeter.c index 5aeaee6..320edff 100644 --- a/ssh/progressmeter.c +++ b/ssh/progressmeter.c @@ -1,4 +1,4 @@ -/* $OpenBSD: progressmeter.c,v 1.41 2015/01/14 13:54:13 djm Exp $ */ +/* $OpenBSD: progressmeter.c,v 1.42 2016/03/02 22:42:40 dtucker Exp $ */ /* * Copyright (c) 2003 Nils Nordman. All rights reserved. * @@ -61,8 +61,8 @@ void refresh_progress_meter(void); /* signal handler for updating the progress meter */ static void update_progress_meter(int); -static time_t start; /* start progress */ -static time_t last_update; /* last progress update */ +static double start; /* start progress */ +static double last_update; /* last progress update */ static const char *file; /* name of the file being transferred */ static off_t start_pos; /* initial position of transfer */ static off_t end_pos; /* ending position of transfer */ @@ -118,9 +118,8 @@ void refresh_progress_meter(void) { char buf[MAX_WINSIZE + 1]; - time_t now; off_t transferred; - double elapsed; + double elapsed, now; int percent; off_t bytes_left; int cur_speed; @@ -130,7 +129,7 @@ refresh_progress_meter(void) transferred = *counter - (cur_pos ? cur_pos : start_pos); cur_pos = *counter; - now = monotime(); + now = monotime_double(); bytes_left = end_pos - cur_pos; if (bytes_left > 0) @@ -248,7 +247,7 @@ update_progress_meter(int ignore) void start_progress_meter(const char *f, off_t filesize, off_t *ctr) { - start = last_update = monotime(); + start = last_update = monotime_double(); file = f; start_pos = *ctr; end_pos = filesize; diff --git a/ssh/readconf.c b/ssh/readconf.c index a17d15c..0e2e9e0 100644 --- a/ssh/readconf.c +++ b/ssh/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.249 2016/01/29 02:54:45 dtucker Exp $ */ +/* $OpenBSD: readconf.c,v 1.250 2016/02/08 23:40:12 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -510,12 +510,15 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, */ port = options->port <= 0 ? default_ssh_port() : options->port; ruser = options->user == NULL ? pw->pw_name : options->user; - if (options->hostname != NULL) { + if (post_canon) { + host = xstrdup(options->hostname); + } else if (options->hostname != NULL) { /* NB. Please keep in sync with ssh.c:main() */ host = percent_expand(options->hostname, "h", host_arg, (char *)NULL); - } else + } else { host = xstrdup(host_arg); + } debug2("checking match for '%s' host %s originally %s", cp, host, original_host); diff --git a/ssh/scp.c b/ssh/scp.c index bfa4d6b..151f1bc 100644 --- a/ssh/scp.c +++ b/ssh/scp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.184 2015/11/27 00:49:31 deraadt Exp $ */ +/* $OpenBSD: scp.c,v 1.185 2016/03/02 22:43:52 dtucker Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -827,8 +827,6 @@ next: if (fd != -1) { haderr = errno; } unset_nonblock(remout); - if (showprogress) - stop_progress_meter(); if (fd != -1) { if (close(fd) < 0 && !haderr) @@ -840,6 +838,8 @@ next: if (fd != -1) { else run_err("%s: %s", name, strerror(haderr)); (void) response(); + if (showprogress) + stop_progress_meter(); } } @@ -1124,8 +1124,6 @@ bad: run_err("%s: %s", np, strerror(errno)); } } unset_nonblock(remin); - if (showprogress) - stop_progress_meter(); if (count != 0 && wrerr == NO && atomicio(vwrite, ofd, bp->buf, count) != count) { wrerr = YES; @@ -1156,6 +1154,8 @@ bad: run_err("%s: %s", np, strerror(errno)); wrerrno = errno; } (void) response(); + if (showprogress) + stop_progress_meter(); if (setimes && wrerr == NO) { setimes = 0; if (utimes(np, tv) < 0) { diff --git a/ssh/servconf.c b/ssh/servconf.c index 64a2299..43d93f0 100644 --- a/ssh/servconf.c +++ b/ssh/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.284 2016/01/29 02:54:45 dtucker Exp $ */ +/* $OpenBSD: servconf.c,v 1.286 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -340,9 +340,9 @@ fill_default_server_options(ServerOptions *options) assemble_algorithms(options); - /* Turn privilege separation on by default */ + /* Turn privilege separation and sandboxing on by default */ if (use_privsep == -1) - use_privsep = PRIVSEP_NOSANDBOX; + use_privsep = PRIVSEP_ON; #define CLEAR_ON_NONE(v) \ do { \ @@ -661,15 +661,26 @@ process_queued_listen_addrs(ServerOptions *options) struct connection_info * get_connection_info(int populate, int use_dns) { +<<<<<<< servconf.c struct ssh *ssh = active_state; /* XXX */ +======= + struct ssh *ssh = active_state; /* XXX */ +>>>>>>> 1.286 static struct connection_info ci; if (!populate) return &ci; +<<<<<<< servconf.c ci.host = get_canonical_hostname(use_dns); ci.address = ssh_remote_ipaddr(ssh); ci.laddress = get_local_ipaddr(ssh_packet_get_connection_in(ssh)); ci.lport = ssh_get_local_port(ssh); +======= + ci.host = auth_get_canonical_hostname(ssh, use_dns); + ci.address = ssh_remote_ipaddr(ssh); + ci.laddress = ssh_local_ipaddr(ssh); + ci.lport = ssh_local_port(ssh); +>>>>>>> 1.286 return &ci; } diff --git a/ssh/serverloop.c b/ssh/serverloop.c index c173d86..87a5645 100644 --- a/ssh/serverloop.c +++ b/ssh/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.181 2016/01/14 16:17:40 markus Exp $ */ +/* $OpenBSD: serverloop.c,v 1.184 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -278,8 +278,13 @@ client_alive_check(struct ssh *ssh) * for the duration of the wait (0 = infinite). */ static void +<<<<<<< serverloop.c wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writesetp, int *maxfdp, u_int *nallocp, u_int64_t max_time_milliseconds) +======= +wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp, int *maxfdp, + u_int *nallocp, u_int64_t max_time_ms) +>>>>>>> 1.184 { struct timeval tv, *tvp; int ret; @@ -290,9 +295,9 @@ wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writese channel_prepare_select(readsetp, writesetp, maxfdp, nallocp, &minwait_secs, 0); + /* XXX need proper deadline system for rekey/client alive */ if (minwait_secs != 0) - max_time_milliseconds = MIN(max_time_milliseconds, - (u_int)minwait_secs * 1000); + max_time_ms = MIN(max_time_ms, (u_int)minwait_secs * 1000); /* * if using client_alive, set the max timeout accordingly, @@ -302,11 +307,13 @@ wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writese * this could be randomized somewhat to make traffic * analysis more difficult, but we're not doing it yet. */ - if (compat20 && - max_time_milliseconds == 0 && options.client_alive_interval) { + if (compat20 && options.client_alive_interval) { + uint64_t keepalive_ms = + (uint64_t)options.client_alive_interval * 1000; + client_alive_scheduled = 1; - max_time_milliseconds = - (u_int64_t)options.client_alive_interval * 1000; + if (max_time_ms == 0 || max_time_ms > keepalive_ms) + max_time_ms = keepalive_ms; } if (compat20) { @@ -353,15 +360,21 @@ wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writese * If child has terminated and there is enough buffer space to read * from it, then read as much as is available and exit. */ +<<<<<<< serverloop.c if (child_terminated && ssh_packet_not_very_much_data_to_write(ssh)) if (max_time_milliseconds == 0 || client_alive_scheduled) max_time_milliseconds = 100; +======= + if (child_terminated && packet_not_very_much_data_to_write()) + if (max_time_ms == 0 || client_alive_scheduled) + max_time_ms = 100; +>>>>>>> 1.184 - if (max_time_milliseconds == 0) + if (max_time_ms == 0) tvp = NULL; else { - tv.tv_sec = max_time_milliseconds / 1000; - tv.tv_usec = 1000 * (max_time_milliseconds % 1000); + tv.tv_sec = max_time_ms / 1000; + tv.tv_usec = 1000 * (max_time_ms % 1000); tvp = &tv; } @@ -386,15 +399,25 @@ wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writese static void process_input(struct ssh *ssh, fd_set *readset) { +<<<<<<< serverloop.c int len, r; +======= + struct ssh *ssh = active_state; /* XXX */ + int len; +>>>>>>> 1.184 char buf[16384]; /* Read and buffer any input data from the client. */ if (FD_ISSET(connection_in, readset)) { len = read(connection_in, buf, sizeof(buf)); if (len == 0) { +<<<<<<< serverloop.c verbose("Connection closed by %.100s", ssh_remote_ipaddr(ssh)); +======= + verbose("Connection closed by %.100s port %d", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.184 connection_closed = 1; if (compat20) return; @@ -402,8 +425,14 @@ process_input(struct ssh *ssh, fd_set *readset) } else if (len < 0) { if (errno != EINTR && errno != EAGAIN) { verbose("Read error from remote host " +<<<<<<< serverloop.c "%.100s: %.100s", ssh_remote_ipaddr(ssh), strerror(errno)); +======= + "%.100s port %d: %.100s", + ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh), strerror(errno)); +>>>>>>> 1.184 cleanup_exit(255); } } else { @@ -818,7 +847,11 @@ void server_loop2(struct ssh *ssh) { fd_set *readset = NULL, *writeset = NULL; +<<<<<<< serverloop.c int r, rekeying = 0, max_fd; +======= + int max_fd; +>>>>>>> 1.184 u_int nalloc = 0; u_int64_t rekey_timeout_ms = 0; @@ -845,13 +878,24 @@ server_loop2(struct ssh *ssh) for (;;) { process_buffered_input_packets(ssh); +<<<<<<< serverloop.c rekeying = (ssh->kex != NULL && !ssh->kex->done); if (!rekeying && ssh_packet_not_very_much_data_to_write(ssh)) +======= + if (!ssh_packet_is_rekeying(active_state) && + packet_not_very_much_data_to_write()) +>>>>>>> 1.184 channel_output_poll(); +<<<<<<< serverloop.c if (options.rekey_interval > 0 && compat20 && !rekeying) rekey_timeout_ms = ssh_packet_get_rekey_timeout(ssh) * 1000; +======= + if (options.rekey_interval > 0 && compat20 && + !ssh_packet_is_rekeying(active_state)) + rekey_timeout_ms = packet_get_rekey_timeout() * 1000; +>>>>>>> 1.184 else rekey_timeout_ms = 0; wait_until_can_do_something(ssh, &readset, &writeset, &max_fd, @@ -864,8 +908,9 @@ server_loop2(struct ssh *ssh) } collect_children(); - if (!rekeying) { + if (!ssh_packet_is_rekeying(active_state)) channel_after_select(readset, writeset); +<<<<<<< serverloop.c if (ssh_packet_need_rekeying(ssh)) { debug("need rekeying"); ssh->kex->done = 0; @@ -876,6 +921,9 @@ server_loop2(struct ssh *ssh) } } process_input(ssh, readset); +======= + process_input(readset); +>>>>>>> 1.184 if (connection_closed) break; process_output(ssh, writeset); diff --git a/ssh/session.c b/ssh/session.c index a131130..825ff3e 100644 --- a/ssh/session.c +++ b/ssh/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.279 2015/10/24 22:52:22 djm Exp $ */ +/* $OpenBSD: session.c,v 1.281 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -716,10 +716,16 @@ do_exec_pty(Session *s, const char *command) int do_exec(Session *s, const char *command) { + struct ssh *ssh = active_state; /* XXX */ int ret; +<<<<<<< session.c const char *forced = NULL; char session_type[1024], *tty = NULL; struct ssh *ssh = s->ssh; +======= + const char *forced = NULL, *tty = NULL; + char session_type[1024]; +>>>>>>> 1.281 if (options.adm_forced_command) { original_command = command; @@ -754,13 +760,19 @@ do_exec(Session *s, const char *command) tty += 5; } - verbose("Starting session: %s%s%s for %s from %.200s port %d", + verbose("Starting session: %s%s%s for %s from %.200s port %d id %d", session_type, tty == NULL ? "" : " on ", tty == NULL ? "" : tty, s->pw->pw_name, +<<<<<<< session.c get_peer_ipaddr(ssh_packet_get_connection_in(ssh)), ssh_get_remote_port(ssh)); +======= + ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh), + s->self); +>>>>>>> 1.281 #ifdef GSSAPI if (options.gss_authentication) { @@ -791,6 +803,7 @@ do_exec(Session *s, const char *command) void do_login(Session *s, const char *command) { + struct ssh *ssh = active_state; /* XXX */ socklen_t fromlen; struct sockaddr_storage from; struct passwd *pw = s->pw; @@ -814,7 +827,7 @@ do_login(Session *s, const char *command) /* Record that there was a login on that tty from the remote host. */ if (!use_privsep) record_login(pid, s->tty, pw->pw_name, pw->pw_uid, - get_remote_name_or_ip(utmp_len, + session_get_remote_name_or_ip(ssh, utmp_len, options.use_dns), (struct sockaddr *)&from, fromlen); @@ -964,6 +977,7 @@ read_environment_file(char ***env, u_int *envsize, static char ** do_setup_env(Session *s, const char *shell) { + struct ssh *ssh = active_state; /* XXX */ char buf[256]; u_int i, envsize; char **env, *laddr; @@ -1026,14 +1040,24 @@ do_setup_env(Session *s, const char *shell) /* SSH_CLIENT deprecated */ snprintf(buf, sizeof buf, "%.50s %d %d", +<<<<<<< session.c ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh), ssh_get_local_port(ssh)); +======= + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), + ssh_local_port(ssh)); +>>>>>>> 1.281 child_set_env(&env, &envsize, "SSH_CLIENT", buf); laddr = get_local_ipaddr(ssh_packet_get_connection_in(ssh)); snprintf(buf, sizeof buf, "%.50s %d %.50s %d", +<<<<<<< session.c ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh), laddr, ssh_get_local_port(ssh)); +======= + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), + laddr, ssh_local_port(ssh)); +>>>>>>> 1.281 free(laddr); child_set_env(&env, &envsize, "SSH_CONNECTION", buf); @@ -1347,6 +1371,7 @@ child_close_fds(struct ssh *ssh) void do_child(Session *s, const char *command) { + struct ssh *ssh = active_state; /* XXX */ extern char **environ; char **env; char *argv[ARGV_MAX]; @@ -1394,14 +1419,14 @@ do_child(Session *s, const char *command) /* we have to stash the hostname before we close our socket. */ if (options.use_login) - hostname = get_remote_name_or_ip(utmp_len, + hostname = session_get_remote_name_or_ip(ssh, utmp_len, options.use_dns); /* * Close the connection descriptors; note that this is the child, and * the server will still have the socket open, and it is important * that we do not shutdown it. Note that the descriptors cannot be * closed before building the environment, as we call - * get_remote_ipaddr there. + * ssh_remote_ipaddr there. */ child_close_fds(s->ssh); @@ -2173,9 +2198,15 @@ session_exit_message(Session *s, int status) void session_close(Session *s) { + struct ssh *ssh = active_state; /* XXX */ u_int i; - debug("session_close: session %d pid %ld", s->self, (long)s->pid); + verbose("Close session: user %s from %.200s port %d id %d", + s->pw->pw_name, + ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh), + s->self); + if (s->ttyfd != -1) session_pty_cleanup(s); free(s->term); @@ -2410,3 +2441,18 @@ do_cleanup(struct authctxt *authctxt) if (!use_privsep || mm_is_monitor()) session_destroy_all(session_pty_cleanup2); } + +/* Return a name for the remote host that fits inside utmp_size */ + +const char * +session_get_remote_name_or_ip(struct ssh *ssh, u_int utmp_size, int use_dns) +{ + const char *remote = ""; + + if (utmp_size > 0) + remote = auth_get_canonical_hostname(ssh, use_dns); + if (utmp_size == 0 || strlen(remote) > utmp_size) + remote = ssh_remote_ipaddr(ssh); + return remote; +} + diff --git a/ssh/session.h b/ssh/session.h index bc86e10..8f15a4a 100644 --- a/ssh/session.h +++ b/ssh/session.h @@ -1,4 +1,4 @@ -/* $OpenBSD: session.h,v 1.31 2013/10/14 21:20:52 djm Exp $ */ +/* $OpenBSD: session.h,v 1.32 2016/03/07 19:02:43 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -83,4 +83,6 @@ void do_setusercontext(struct passwd *); void child_set_env(char ***envp, u_int *envsizep, const char *name, const char *value); +const char *session_get_remote_name_or_ip(struct ssh *, u_int, int); + #endif diff --git a/ssh/sftp-client.c b/ssh/sftp-client.c index a369f3b..3d1ed30 100644 --- a/ssh/sftp-client.c +++ b/ssh/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.120 2015/05/28 04:50:53 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.121 2016/02/11 02:21:34 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1748,7 +1748,7 @@ do_upload(struct sftp_conn *conn, const char *local_path, if (fsync_flag) (void)do_fsync(conn, handle, handle_len); - if (do_close(conn, handle, handle_len) != SSH2_FX_OK) + if (do_close(conn, handle, handle_len) != 0) status = SSH2_FX_FAILURE; free(handle); @@ -1761,12 +1761,11 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, int depth, int preserve_flag, int print_flag, int resume, int fsync_flag) { int ret = 0; - u_int status; DIR *dirp; struct dirent *dp; char *filename, *new_src, *new_dst; struct stat sb; - Attrib a; + Attrib a, *dirattrib; if (depth >= MAX_DIR_DEPTH) { error("Maximum directory depth exceeded: %d levels", depth); @@ -1793,17 +1792,18 @@ upload_dir_internal(struct sftp_conn *conn, const char *src, const char *dst, if (!preserve_flag) a.flags &= ~SSH2_FILEXFER_ATTR_ACMODTIME; - status = do_mkdir(conn, dst, &a, 0); /* - * we lack a portable status for errno EEXIST, - * so if we get a SSH2_FX_FAILURE back we must check - * if it was created successfully. + * sftp lacks a portable status value to match errno EEXIST, + * so if we get a failure back then we must check whether + * the path already existed and is a directory. */ - if (status != SSH2_FX_OK) { - if (status != SSH2_FX_FAILURE) + if (do_mkdir(conn, dst, &a, 0) != 0) { + if ((dirattrib = do_stat(conn, dst, 0)) == NULL) return -1; - if (do_stat(conn, dst, 0) == NULL) + if (!S_ISDIR(dirattrib->perm)) { + error("\"%s\" exists but is not a directory", dst); return -1; + } } if ((dirp = opendir(src)) == NULL) { diff --git a/ssh/sftp-server-main.c b/ssh/sftp-server-main.c index d17e834..4998263 100644 --- a/ssh/sftp-server-main.c +++ b/ssh/sftp-server-main.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server-main.c,v 1.4 2009/02/21 19:32:04 tobias Exp $ */ +/* $OpenBSD: sftp-server-main.c,v 1.5 2016/02/15 09:47:49 dtucker Exp $ */ /* * Copyright (c) 2008 Markus Friedl. All rights reserved. * @@ -24,6 +24,7 @@ #include "log.h" #include "sftp.h" #include "misc.h" +#include "xmalloc.h" void cleanup_exit(int i) @@ -36,6 +37,7 @@ main(int argc, char **argv) { struct passwd *user_pw; + ssh_malloc_init(); /* must be called before any mallocs */ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); diff --git a/ssh/sftp-server.c b/ssh/sftp-server.c index 19fbeaa..cc1e5e2 100644 --- a/ssh/sftp-server.c +++ b/ssh/sftp-server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server.c,v 1.108 2015/11/16 06:13:04 logan Exp $ */ +/* $OpenBSD: sftp-server.c,v 1.109 2016/02/15 09:47:49 dtucker Exp $ */ /* * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. * @@ -1483,6 +1483,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) extern char *optarg; extern char *__progname; + ssh_malloc_init(); /* must be called before any mallocs */ log_init(__progname, log_level, log_facility, log_stderr); pw = pwcopy(user_pw); diff --git a/ssh/sftp.c b/ssh/sftp.c index 50e2f58..fbe8bac 100644 --- a/ssh/sftp.c +++ b/ssh/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.171 2015/08/20 22:32:42 deraadt Exp $ */ +/* $OpenBSD: sftp.c,v 1.172 2016/02/15 09:47:49 dtucker Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -2206,6 +2206,7 @@ main(int argc, char **argv) size_t num_requests = DEFAULT_NUM_REQUESTS; long long limit_kbps = 0; + ssh_malloc_init(); /* must be called before any mallocs */ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); setlocale(LC_CTYPE, ""); diff --git a/ssh/ssh-add.c b/ssh/ssh-add.c index d45f64f..c64f8d5 100644 --- a/ssh/ssh-add.c +++ b/ssh/ssh-add.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-add.c,v 1.127 2015/12/11 02:31:47 mmcc Exp $ */ +/* $OpenBSD: ssh-add.c,v 1.128 2016/02/15 09:47:49 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -473,6 +473,7 @@ main(int argc, char **argv) int r, i, ch, deleting = 0, ret = 0, key_only = 0; int xflag = 0, lflag = 0, Dflag = 0; + ssh_malloc_init(); /* must be called before any mallocs */ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); diff --git a/ssh/ssh-agent.c b/ssh/ssh-agent.c index 771c419..9b60b38 100644 --- a/ssh/ssh-agent.c +++ b/ssh/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.211 2015/12/11 17:41:37 doug Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.212 2016/02/15 09:47:49 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1179,6 +1179,7 @@ main(int ac, char **av) size_t len; mode_t prev_mask; + ssh_malloc_init(); /* must be called before any mallocs */ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); diff --git a/ssh/ssh-keygen.1 b/ssh/ssh-keygen.1 index 74b3124..37a4fc2 100644 --- a/ssh/ssh-keygen.1 +++ b/ssh/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.129 2015/11/13 04:34:15 djm Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.130 2016/02/17 07:38:19 jmc Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: November 13 2015 $ +.Dd $Mdocdate: February 17 2016 $ .Dt SSH-KEYGEN 1 .Os .Sh NAME @@ -141,8 +141,12 @@ generates, manages and converts authentication keys for .Xr ssh 1 . .Nm -can create RSA keys for use by SSH protocol version 1 and -DSA, ECDSA, Ed25519 or RSA keys for use by SSH protocol version 2. +can create keys for use by SSH protocol versions 1 and 2. +Protocol 1 should not be used +and is only offered to support legacy devices. +It suffers from a number of cryptographic weaknesses +and doesn't support many of the advanced features available for protocol 2. +.Pp The type of key to be generated is specified with the .Fl t option. @@ -474,7 +478,7 @@ At present, no options are valid for host keys. .It Fl o Causes .Nm -to save SSH protocol 2 private keys using the new OpenSSH format rather than +to save private keys using the new OpenSSH format rather than the more compatible PEM format. The new format has increased resistance to brute-force password cracking but is not supported by versions of OpenSSH prior to 6.5. diff --git a/ssh/ssh-keygen.c b/ssh/ssh-keygen.c index 34596ef..ab8d804 100644 --- a/ssh/ssh-keygen.c +++ b/ssh/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.287 2015/12/11 03:19:09 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.288 2016/02/15 09:47:49 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -2248,6 +2248,7 @@ main(int argc, char **argv) extern int optind; extern char *optarg; + ssh_malloc_init(); /* must be called before any mallocs */ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); diff --git a/ssh/ssh-keyscan.c b/ssh/ssh-keyscan.c index 3912fc8..f77af92 100644 --- a/ssh/ssh-keyscan.c +++ b/ssh/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.104 2015/11/08 23:24:03 jmc Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.105 2016/02/15 09:47:49 dtucker Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -676,6 +676,7 @@ main(int argc, char **argv) extern int optind; extern char *optarg; + ssh_malloc_init(); /* must be called before any mallocs */ TAILQ_INIT(&tq); /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ diff --git a/ssh/ssh-keysign.8 b/ssh/ssh-keysign.8 index 69d0829..19b0dbc 100644 --- a/ssh/ssh-keysign.8 +++ b/ssh/ssh-keysign.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keysign.8,v 1.14 2013/12/07 11:58:46 naddy Exp $ +.\" $OpenBSD: ssh-keysign.8,v 1.15 2016/02/17 07:38:19 jmc Exp $ .\" .\" Copyright (c) 2002 Markus Friedl. All rights reserved. .\" @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: December 7 2013 $ +.Dd $Mdocdate: February 17 2016 $ .Dt SSH-KEYSIGN 8 .Os .Sh NAME @@ -35,7 +35,7 @@ is used by .Xr ssh 1 to access the local host keys and generate the digital signature -required during host-based authentication with SSH protocol version 2. +required during host-based authentication. .Pp .Nm is disabled by default and can only be enabled in the diff --git a/ssh/ssh-keysign.c b/ssh/ssh-keysign.c index 4f69cb0..c40bad9 100644 --- a/ssh/ssh-keysign.c +++ b/ssh/ssh-keysign.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keysign.c,v 1.51 2015/12/04 16:41:28 markus Exp $ */ +/* $OpenBSD: ssh-keysign.c,v 1.52 2016/02/15 09:47:49 dtucker Exp $ */ /* * Copyright (c) 2002 Markus Friedl. All rights reserved. * @@ -169,6 +169,7 @@ main(int argc, char **argv) char *host, *fp; size_t slen, dlen; + ssh_malloc_init(); /* must be called before any mallocs */ if (pledge("stdio rpath getpw dns id", NULL) != 0) fatal("%s: pledge: %s", __progname, strerror(errno)); diff --git a/ssh/ssh-pkcs11-helper.c b/ssh/ssh-pkcs11-helper.c index 77cc19f..62ed42a 100644 --- a/ssh/ssh-pkcs11-helper.c +++ b/ssh/ssh-pkcs11-helper.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-pkcs11-helper.c,v 1.11 2015/08/20 22:32:42 deraadt Exp $ */ +/* $OpenBSD: ssh-pkcs11-helper.c,v 1.12 2016/02/15 09:47:49 dtucker Exp $ */ /* * Copyright (c) 2010 Markus Friedl. All rights reserved. * @@ -290,6 +290,7 @@ main(int argc, char **argv) char buf[4*4096]; extern char *__progname; + ssh_malloc_init(); /* must be called before any mallocs */ TAILQ_INIT(&pkcs11_keylist); pkcs11_init(0); diff --git a/ssh/ssh-pkcs11.c b/ssh/ssh-pkcs11.c index 7af883f..d2e20ed 100644 --- a/ssh/ssh-pkcs11.c +++ b/ssh/ssh-pkcs11.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-pkcs11.c,v 1.21 2015/07/18 08:02:17 djm Exp $ */ +/* $OpenBSD: ssh-pkcs11.c,v 1.22 2016/02/12 00:20:30 djm Exp $ */ /* * Copyright (c) 2010 Markus Friedl. All rights reserved. * @@ -313,8 +313,10 @@ pkcs11_rsa_wrap(struct pkcs11_provider *provider, CK_ULONG slotidx, k11->slotidx = slotidx; /* identify key object on smartcard */ k11->keyid_len = keyid_attrib->ulValueLen; - k11->keyid = xmalloc(k11->keyid_len); - memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); + if (k11->keyid_len > 0) { + k11->keyid = xmalloc(k11->keyid_len); + memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len); + } k11->orig_finish = def->finish; memcpy(&k11->rsa_method, def, sizeof(k11->rsa_method)); k11->rsa_method.name = "pkcs11"; diff --git a/ssh/ssh.1 b/ssh/ssh.1 index 5b35b6c..cc53343 100644 --- a/ssh/ssh.1 +++ b/ssh/ssh.1 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.366 2015/11/15 22:26:49 jcs Exp $ -.Dd $Mdocdate: November 15 2015 $ +.\" $OpenBSD: ssh.1,v 1.369 2016/02/17 07:38:19 jmc Exp $ +.Dd $Mdocdate: February 17 2016 $ .Dt SSH 1 .Os .Sh NAME @@ -402,17 +402,15 @@ in for details. .Pp .It Fl m Ar mac_spec -Additionally, for protocol version 2 a comma-separated list of MAC -(message authentication code) algorithms can -be specified in order of preference. +A comma-separated list of MAC (message authentication code) algorithms, +specified in order of preference. See the .Cm MACs keyword for more information. .Pp .It Fl N Do not execute a remote command. -This is useful for just forwarding ports -(protocol version 2 only). +This is useful for just forwarding ports. .Pp .It Fl n Redirects stdin from @@ -664,8 +662,8 @@ for details. .Pp .It Fl s May be used to request invocation of a subsystem on the remote system. -Subsystems are a feature of the SSH2 protocol which facilitate the use -of SSH as a secure transport for other applications (eg.\& +Subsystems facilitate the use of SSH +as a secure transport for other applications (e.g.\& .Xr sftp 1 ) . The subsystem is specified as the remote command. .Pp @@ -710,7 +708,6 @@ Implies .Cm ExitOnForwardFailure and .Cm ClearAllForwardings . -Works with Protocol version 2 only. .Pp .It Fl w Xo .Ar local_tun Ns Op : Ns Ar remote_tun @@ -795,15 +792,10 @@ or the and .Fl 2 options (see above). -Both protocols support similar authentication methods, -but protocol 2 is the default since -it provides additional mechanisms for confidentiality -(the traffic is encrypted using AES, 3DES, Blowfish, CAST128, or Arcfour) -and integrity (hmac-md5, hmac-sha1, -hmac-sha2-256, hmac-sha2-512, -umac-64, umac-128, hmac-ripemd160). -Protocol 1 lacks a strong mechanism for ensuring the -integrity of the connection. +Protocol 1 should not be used +and is only offered to support legacy devices. +It suffers from a number of cryptographic weaknesses +and doesn't support many of the advanced features available for protocol 2. .Pp The methods available for authentication are: GSSAPI-based authentication, @@ -812,8 +804,9 @@ public key authentication, challenge-response authentication, and password authentication. Authentication methods are tried in the order specified above, -though protocol 2 has a configuration option to change the default order: -.Cm PreferredAuthentications . +though +.Cm PreferredAuthentications +can be used to change the default order. .Pp Host-based authentication works as follows: If the machine the user logs in from is listed in @@ -857,8 +850,6 @@ The server knows the public key, and only the user knows the private key. .Nm implements public key authentication protocol automatically, using one of the DSA, ECDSA, Ed25519 or RSA algorithms. -Protocol 1 is restricted to using only RSA keys, -but protocol 2 may use any. The HISTORY section of .Xr ssl 8 contains a brief discussion of the DSA and RSA algorithms. @@ -880,26 +871,26 @@ This stores the private key in .Pa ~/.ssh/identity (protocol 1), .Pa ~/.ssh/id_dsa -(protocol 2 DSA), +(DSA), .Pa ~/.ssh/id_ecdsa -(protocol 2 ECDSA), +(ECDSA), .Pa ~/.ssh/id_ed25519 -(protocol 2 Ed25519), +(Ed25519), or .Pa ~/.ssh/id_rsa -(protocol 2 RSA) +(RSA) and stores the public key in .Pa ~/.ssh/identity.pub (protocol 1), .Pa ~/.ssh/id_dsa.pub -(protocol 2 DSA), +(DSA), .Pa ~/.ssh/id_ecdsa.pub -(protocol 2 ECDSA), +(ECDSA), .Pa ~/.ssh/id_ed25519.pub -(protocol 2 Ed25519), +(Ed25519), or .Pa ~/.ssh/id_rsa.pub -(protocol 2 RSA) +(RSA) in the user's home directory. The user should then copy the public key to @@ -937,8 +928,6 @@ Challenge-response authentication works as follows: The server sends an arbitrary .Qq challenge text, and prompts for a response. -Protocol 2 allows multiple challenges and responses; -protocol 1 is restricted to just one challenge/response. Examples of challenge-response authentication include .Bx Authentication (see @@ -1037,7 +1026,7 @@ at logout when waiting for forwarded connection / X11 sessions to terminate. Display a list of escape characters. .It Cm ~B Send a BREAK to the remote system -(only useful for SSH protocol version 2 and if the peer supports it). +(only useful if the peer supports it). .It Cm ~C Open command line. Currently this allows the addition of port forwardings using the @@ -1070,7 +1059,7 @@ Basic help is available, using the option. .It Cm ~R Request rekeying of the connection -(only useful for SSH protocol version 2 and if the peer supports it). +(only useful if the peer supports it). .It Cm ~V Decrease the verbosity .Pq Ic LogLevel @@ -1538,20 +1527,6 @@ The file format and configuration options are described in .It Pa /etc/ssh/ssh_host_rsa_key These files contain the private parts of the host keys and are used for host-based authentication. -If protocol version 1 is used, -.Nm -must be setuid root, since the host key is readable only by root. -For protocol version 2, -.Nm -uses -.Xr ssh-keysign 8 -to access the host keys, -eliminating the requirement that -.Nm -be setuid root when host-based authentication is used. -By default -.Nm -is not setuid root. .Pp .It Pa /etc/ssh/ssh_known_hosts Systemwide list of known host keys. diff --git a/ssh/ssh.c b/ssh/ssh.c index b1641d5..e39f66e 100644 --- a/ssh/ssh.c +++ b/ssh/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.435 2016/01/14 16:17:40 markus Exp $ */ +/* $OpenBSD: ssh.c,v 1.437 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -518,7 +518,11 @@ set_addrinfo_port(struct addrinfo *addrs, int port) int main(int ac, char **av) { +<<<<<<< ssh.c struct ssh *ssh; +======= + struct ssh *ssh = NULL; +>>>>>>> 1.437 int i, r, opt, exit_status, use_syslog, config_test = 0; char *p, *cp, *line, *argv0, buf[PATH_MAX], *host_arg, *logfile; char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV]; @@ -533,6 +537,7 @@ main(int ac, char **av) struct ssh_digest_ctx *md; u_char conn_hash[SSH_DIGEST_MAX_LENGTH]; + ssh_malloc_init(); /* must be called before any mallocs */ /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); @@ -1209,6 +1214,8 @@ main(int ac, char **av) ssh_packet_set_timeout(ssh, options.server_alive_interval, options.server_alive_count_max); + ssh = active_state; /* XXX */ + if (timeout_ms > 0) debug3("timeout: %d ms remain after connect", timeout_ms); @@ -1315,7 +1322,11 @@ main(int ac, char **av) if (ssh_packet_connection_is_on_socket(ssh)) { verbose("Authenticated to %s ([%s]:%d).", host, +<<<<<<< ssh.c ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh)); +======= + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.437 } else { verbose("Authenticated to %s (via proxy).", host); } diff --git a/ssh/ssh_config b/ssh/ssh_config index 7a26886..0bfa8e0 100644 --- a/ssh/ssh_config +++ b/ssh/ssh_config @@ -1,4 +1,4 @@ -# $OpenBSD: ssh_config,v 1.28 2013/09/16 11:35:43 sthen Exp $ +# $OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $ # This is the ssh client system-wide configuration file. See # ssh_config(5) for more information. This file provides defaults for @@ -32,8 +32,10 @@ # IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa +# IdentityFile ~/.ssh/id_ecdsa +# IdentityFile ~/.ssh/id_ed25519 # Port 22 -# Protocol 2,1 +# Protocol 2 # Cipher 3des # Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc # MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 diff --git a/ssh/ssh_config.5 b/ssh/ssh_config.5 index 2ede53f..caf13a6 100644 --- a/ssh/ssh_config.5 +++ b/ssh/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.223 2015/11/15 23:58:04 jmc Exp $ -.Dd $Mdocdate: November 15 2015 $ +.\" $OpenBSD: ssh_config.5,v 1.228 2016/02/20 23:01:46 sobrado Exp $ +.Dd $Mdocdate: February 20 2016 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -262,6 +262,8 @@ Valid arguments are (use IPv4 only), or .Dq inet6 (use IPv6 only). +The default is +.Dq any . .It Cm BatchMode If set to .Dq yes , @@ -486,9 +488,7 @@ The default is: chacha20-poly1305@openssh.com, aes128-ctr,aes192-ctr,aes256-ctr, aes128-gcm@openssh.com,aes256-gcm@openssh.com, -arcfour256,arcfour128, -aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc, -aes192-cbc,aes256-cbc,arcfour +aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc .Ed .Pp The list of available ciphers may also be obtained using the @@ -826,12 +826,10 @@ The default is Specifies whether user authentication based on GSSAPI is allowed. The default is .Dq no . -Note that this option applies to protocol version 2 only. .It Cm GSSAPIDelegateCredentials Forward (delegate) credentials to the server. The default is .Dq no . -Note that this option applies to protocol version 2 only. .It Cm HashKnownHosts Indicates that .Xr ssh 1 @@ -858,9 +856,6 @@ or .Dq no . The default is .Dq no . -This option applies to protocol version 2 only and -is similar to -.Cm RhostsRSAAuthentication . .It Cm HostbasedKeyTypes Specifies the key types that will be used for hostbased authentication as a comma-separated pattern list. @@ -885,7 +880,7 @@ option of .Xr ssh 1 may be used to list supported key types. .It Cm HostKeyAlgorithms -Specifies the protocol version 2 host key algorithms +Specifies the host key algorithms that the client wants to use in order of preference. Alternately if the specified value begins with a .Sq + @@ -1172,8 +1167,7 @@ DEBUG2 and DEBUG3 each specify higher levels of verbose output. .It Cm MACs Specifies the MAC (message authentication code) algorithms in order of preference. -The MAC algorithm is used in protocol version 2 -for data integrity protection. +The MAC algorithm is used for data integrity protection. Multiple algorithms must be comma-separated. If the specified value begins with a .Sq + @@ -1189,13 +1183,9 @@ The default is: .Bd -literal -offset indent umac-64-etm@openssh.com,umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, +hmac-sha1-etm@openssh.com, umac-64@openssh.com,umac-128@openssh.com, -hmac-sha2-256,hmac-sha2-512, -hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com, -hmac-ripemd160-etm@openssh.com, -hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com, -hmac-md5,hmac-sha1,hmac-ripemd160, -hmac-sha1-96,hmac-md5-96 +hmac-sha2-256,hmac-sha2-512,hmac-sha1 .Ed .Pp The list of available MAC algorithms may also be obtained using the @@ -1249,8 +1239,7 @@ private RSA key. Specifies the port number to connect on the remote host. The default is 22. .It Cm PreferredAuthentications -Specifies the order in which the client should try protocol 2 -authentication methods. +Specifies the order in which the client should try authentication methods. This allows a client to prefer one method (e.g.\& .Cm keyboard-interactive ) over another method (e.g.\& @@ -1276,6 +1265,9 @@ will try version 2 and fall back to version 1 if version 2 is not available. The default is .Sq 2 . +Protocol 1 suffers from a number of cryptographic weaknesses and should +not be used. +It is only offered to support legacy devices. .It Cm ProxyCommand Specifies the command to use to connect to the server. The command @@ -1356,7 +1348,6 @@ or .Dq no . The default is .Dq yes . -This option applies to protocol version 2 only. .It Cm RekeyLimit Specifies the maximum amount of data that may be transmitted before the session key is renegotiated, optionally followed a maximum amount of @@ -1382,7 +1373,6 @@ is .Dq default none , which means that rekeying is performed after the cipher's default amount of data has been sent or received and no time based rekeying is done. -This option applies to protocol version 2 only. .It Cm RemoteForward Specifies that a TCP port on the remote machine be forwarded over the secure channel to the specified host and port from the local machine. @@ -1475,7 +1465,6 @@ Note that this option applies to protocol version 1 only. Specifies what variables from the local .Xr environ 7 should be sent to the server. -Note that environment passing is only supported for protocol 2. The server must also support it, and the server must be configured to accept these environment variables. Note that the @@ -1523,7 +1512,6 @@ If, for example, .Cm ServerAliveCountMax is left at the default, if the server becomes unresponsive, ssh will disconnect after approximately 45 seconds. -This option applies to protocol version 2 only. .It Cm ServerAliveInterval Sets a timeout interval in seconds after which if no data has been received from the server, @@ -1532,7 +1520,6 @@ will send a message through the encrypted channel to request a response from the server. The default is 0, indicating that these messages will not be sent to the server. -This option applies to protocol version 2 only. .It Cm StreamLocalBindMask Sets the octal file creation mode mask .Pq umask @@ -1729,7 +1716,6 @@ or .Dq ask . The default is .Dq no . -Note that this option applies to protocol version 2 only. .Pp See also VERIFYING HOST KEYS in .Xr ssh 1 . diff --git a/ssh/sshconnect2.c b/ssh/sshconnect2.c index 47250e7..82ad0bb 100644 --- a/ssh/sshconnect2.c +++ b/ssh/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.237 2016/01/14 22:56:56 markus Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.239 2016/02/23 01:34:14 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -1094,8 +1094,13 @@ identity_sign(struct ssh *ssh, struct identity *id, u_char **sigp, size_t *lenp, ssh->compat)); /* load the private key from the file */ if ((prv = load_identity_file(id)) == NULL) +<<<<<<< sshconnect2.c return (-1); /* XXX return decent error code */ ret = sshkey_sign(prv, sigp, lenp, data, datalen, alg, ssh->compat); +======= + return SSH_ERR_KEY_NOT_FOUND; + ret = sshkey_sign(prv, sigp, lenp, data, datalen, alg, compat); +>>>>>>> 1.239 sshkey_free(prv); return (ret); } @@ -1184,9 +1189,17 @@ sign_and_send_pubkey(struct ssh *ssh, struct identity *id) } /* generate signature */ +<<<<<<< sshconnect2.c if ((ret = identity_sign(ssh, id, &signature, &slen, sshbuf_ptr(b), sshbuf_len(b))) != 0) { error("%s: signing failed: %s", __func__, ssh_err(ret)); +======= + ret = identity_sign(id, &signature, &slen, + buffer_ptr(&b), buffer_len(&b), datafellows); + if (ret != 0) { + if (ret != SSH_ERR_KEY_NOT_FOUND) + error("%s: signing failed: %s", __func__, ssh_err(ret)); +>>>>>>> 1.239 free(blob); sshbuf_free(b); return 0; @@ -1273,7 +1286,11 @@ send_pubkey_test(struct ssh *ssh, struct identity *id) static struct sshkey * load_identity_file(struct identity *id) { +<<<<<<< sshconnect2.c struct sshkey *private = NULL; +======= + Key *private = NULL; +>>>>>>> 1.239 char prompt[300], *passphrase, *comment; int r, perm_ok = 0, quit = 0, i; struct stat st; diff --git a/ssh/sshd.8 b/ssh/sshd.8 index d32137a..b0b1a13 100644 --- a/ssh/sshd.8 +++ b/ssh/sshd.8 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd.8,v 1.282 2015/11/16 00:30:02 djm Exp $ -.Dd $Mdocdate: November 16 2015 $ +.\" $OpenBSD: sshd.8,v 1.284 2016/02/17 07:38:19 jmc Exp $ +.Dd $Mdocdate: February 17 2016 $ .Dt SSHD 8 .Os .Sh NAME @@ -275,14 +275,12 @@ though this can be changed via the .Cm Protocol option in .Xr sshd_config 5 . -Protocol 2 supports DSA, ECDSA, Ed25519 and RSA keys; -protocol 1 only supports RSA keys. -For both protocols, -each host has a host-specific key, -normally 2048 bits, -used to identify the host. +Protocol 1 should not be used +and is only offered to support legacy devices. .Pp -Forward security for protocol 1 is provided through +Each host has a host-specific key, +used to identify the host. +Partial forward security for protocol 1 is provided through an additional server key, normally 1024 bits, generated when the server starts. @@ -861,9 +859,12 @@ This file is for host-based authentication (see It should only be writable by root. .Pp .It Pa /etc/moduli -Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange". +Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange" +key exchange method. The file format is described in .Xr moduli 5 . +If no usable groups are found in this file then fixed internal groups will +be used. .Pp .It Pa /etc/motd See diff --git a/ssh/sshd.c b/ssh/sshd.c index 820527c..0cd7f85 100644 --- a/ssh/sshd.c +++ b/ssh/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.464 2016/01/29 02:54:45 dtucker Exp $ */ +/* $OpenBSD: sshd.c,v 1.466 2016/03/07 19:02:43 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -348,8 +348,13 @@ grace_alarm_handler(int sig) } /* Log error and exit. */ +<<<<<<< sshd.c sigdie("Timeout before authentication for %s", ssh_remote_ipaddr(active_state)); +======= + sigdie("Timeout before authentication for %s port %d", + ssh_remote_ipaddr(active_state), ssh_remote_port(active_state)); +>>>>>>> 1.466 } /* @@ -421,8 +426,13 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) if (atomicio(vwrite, sock_out, server_version_string, strlen(server_version_string)) != strlen(server_version_string)) { +<<<<<<< sshd.c logit("Could not write ident string to %s", ssh_remote_ipaddr(ssh)); +======= + logit("Could not write ident string to %s port %d", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.466 cleanup_exit(255); } @@ -430,8 +440,14 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) memset(buf, 0, sizeof(buf)); for (i = 0; i < sizeof(buf) - 1; i++) { if (atomicio(read, sock_in, &buf[i], 1) != 1) { +<<<<<<< sshd.c logit("Did not receive identification string from %s", ssh_remote_ipaddr(ssh)); +======= + logit("Did not receive identification string " + "from %s port %d", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.466 cleanup_exit(255); } if (buf[i] == '\r') { @@ -460,7 +476,11 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) (void) atomicio(vwrite, sock_out, s, strlen(s)); logit("Bad protocol version identification '%.100s' " "from %s port %d", client_version_string, +<<<<<<< sshd.c ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh)); +======= + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); +>>>>>>> 1.466 close(sock_in); close(sock_out); cleanup_exit(255); @@ -470,15 +490,29 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) ssh->compat = compat_datafellows(remote_version); +<<<<<<< sshd.c if ((ssh->compat & SSH_BUG_PROBE) != 0) { logit("probed from %s with %s. Don't panic.", ssh_remote_ipaddr(ssh), client_version_string); +======= + if ((ssh->compat & SSH_BUG_PROBE) != 0) { + logit("probed from %s port %d with %s. Don't panic.", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), + client_version_string); +>>>>>>> 1.466 cleanup_exit(255); } +<<<<<<< sshd.c if ((ssh->compat & SSH_BUG_SCANNER) != 0) { logit("scanned from %s with %s. Don't panic.", ssh_remote_ipaddr(ssh), client_version_string); +======= + if ((ssh->compat & SSH_BUG_SCANNER) != 0) { + logit("scanned from %s port %d with %s. Don't panic.", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), + client_version_string); +>>>>>>> 1.466 cleanup_exit(255); } if ((ssh->compat & SSH_BUG_RSASIGMD5) != 0) { @@ -530,8 +564,14 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) (void) atomicio(vwrite, sock_out, s, strlen(s)); close(sock_in); close(sock_out); +<<<<<<< sshd.c logit("Protocol major versions differ for %s: %.200s vs. %.200s", ssh_remote_ipaddr(ssh), +======= + logit("Protocol major versions differ for %s port %d: " + "%.200s vs. %.200s", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), +>>>>>>> 1.466 server_version_string, client_version_string); cleanup_exit(255); } @@ -1434,6 +1474,45 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) } } +/* + * If IP options are supported, make sure there are none (log and + * return an error if any are found). Basically we are worried about + * source routing; it can be used to pretend you are somebody + * (ip-address) you are not. That itself may be "almost acceptable" + * under certain circumstances, but rhosts autentication is useless + * if source routing is accepted. Notice also that if we just dropped + * source routing here, the other side could use IP spoofing to do + * rest of the interaction and could still bypass security. So we + * exit here if we detect any IP options. + */ +static void +check_ip_options(struct ssh *ssh) +{ + int sock_in = ssh_packet_get_connection_in(ssh); + struct sockaddr_storage from; + socklen_t option_size, i, fromlen = sizeof(from); + u_char opts[200]; + char text[sizeof(opts) * 3 + 1]; + + memset(&from, 0, sizeof(from)); + if (getpeername(sock_in, (struct sockaddr *)&from, + &fromlen) < 0) + return; + if (from.ss_family != AF_INET) + return; + /* XXX IPv6 options? */ + + if (getsockopt(sock_in, IPPROTO_IP, IP_OPTIONS, opts, + &option_size) >= 0 && option_size != 0) { + text[0] = '\0'; + for (i = 0; i < option_size; i++) + snprintf(text + i*3, sizeof(text) - i*3, + " %2.2x", opts[i]); + fatal("Connection from %.100s port %d with IP opts: %.800s", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), text); + } + return; +} /* * Main program for the daemon. @@ -1441,7 +1520,11 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) int main(int ac, char **av) { +<<<<<<< sshd.c struct ssh *ssh; +======= + struct ssh *ssh = NULL; +>>>>>>> 1.466 extern char *optarg; extern int optind; int r, opt, i, j, on = 1; @@ -1458,6 +1541,7 @@ main(int ac, char **av) int keytype; struct connection_info *connection_info = get_connection_info(0, 0); + ssh_malloc_init(); /* must be called before any mallocs */ /* Save argv. */ saved_argv = av; rexec_argc = ac; @@ -2030,28 +2114,35 @@ main(int ac, char **av) * Register our connection. This turns encryption off because we do * not have a key. */ +<<<<<<< sshd.c ssh = ssh_packet_set_connection(NULL, sock_in, sock_out); ssh_packet_set_server(ssh); active_state = ssh; /* XXX */ +======= + packet_set_connection(sock_in, sock_out); + packet_set_server(); + ssh = active_state; /* XXX */ + check_ip_options(ssh); +>>>>>>> 1.466 /* Set SO_KEEPALIVE if requested. */ if (options.tcp_keep_alive && ssh_packet_connection_is_on_socket(ssh) && setsockopt(sock_in, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) < 0) error("setsockopt SO_KEEPALIVE: %.100s", strerror(errno)); +<<<<<<< sshd.c if ((remote_port = ssh_get_remote_port(ssh)) < 0) { debug("get_remote_port failed"); +======= + if ((remote_port = ssh_remote_port(ssh)) < 0) { + debug("ssh_remote_port failed"); +>>>>>>> 1.466 cleanup_exit(255); } - /* - * We use get_canonical_hostname with usedns = 0 instead of - * get_remote_ipaddr here so IP options will be checked. - */ - (void) get_canonical_hostname(0); /* * The rest of the code depends on the fact that - * get_remote_ipaddr() caches the remote ip, even if + * ssh_remote_ipaddr() caches the remote ip, even if * the socket goes away. */ remote_ip = ssh_remote_ipaddr(ssh); @@ -2059,7 +2150,11 @@ main(int ac, char **av) /* Log the connection. */ laddr = get_local_ipaddr(sock_in); verbose("Connection from %s port %d on %s port %d", +<<<<<<< sshd.c remote_ip, remote_port, laddr, ssh_get_local_port(ssh)); +======= + remote_ip, remote_port, laddr, ssh_local_port(ssh)); +>>>>>>> 1.466 free(laddr); /* @@ -2182,8 +2277,13 @@ main(int ac, char **av) int ssh1_session_key(BIGNUM *session_key_int) { +<<<<<<< sshd.c int r, rsafail = 0; struct ssh *ssh = active_state; /* XXX */ +======= + struct ssh *ssh = active_state; /* XXX */ + int rsafail = 0; +>>>>>>> 1.466 if (BN_cmp(sensitive_data.server_key->rsa->n, sensitive_data.ssh1_host_key->rsa->n) > 0) { @@ -2191,9 +2291,13 @@ ssh1_session_key(BIGNUM *session_key_int) if (BN_num_bits(sensitive_data.server_key->rsa->n) < BN_num_bits(sensitive_data.ssh1_host_key->rsa->n) + SSH_KEY_BITS_RESERVED) { - fatal("do_connection: %s: " + fatal("do_connection: %s port %d: " "server_key %d < host_key %d + SSH_KEY_BITS_RESERVED %d", +<<<<<<< sshd.c ssh_remote_ipaddr(ssh), +======= + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), +>>>>>>> 1.466 BN_num_bits(sensitive_data.server_key->rsa->n), BN_num_bits(sensitive_data.ssh1_host_key->rsa->n), SSH_KEY_BITS_RESERVED); @@ -2215,9 +2319,13 @@ ssh1_session_key(BIGNUM *session_key_int) if (BN_num_bits(sensitive_data.ssh1_host_key->rsa->n) < BN_num_bits(sensitive_data.server_key->rsa->n) + SSH_KEY_BITS_RESERVED) { - fatal("do_connection: %s: " + fatal("do_connection: %s port %d: " "host_key %d < server_key %d + SSH_KEY_BITS_RESERVED %d", +<<<<<<< sshd.c ssh_remote_ipaddr(ssh), +======= + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), +>>>>>>> 1.466 BN_num_bits(sensitive_data.ssh1_host_key->rsa->n), BN_num_bits(sensitive_data.server_key->rsa->n), SSH_KEY_BITS_RESERVED); @@ -2244,7 +2352,13 @@ ssh1_session_key(BIGNUM *session_key_int) static void do_ssh1_kex(struct ssh *ssh) { +<<<<<<< sshd.c int i, len, r, rsafail = 0; +======= + struct ssh *ssh = active_state; /* XXX */ + int i, len; + int rsafail = 0; +>>>>>>> 1.466 BIGNUM *session_key_int, *fake_key_int, *real_key_int; u_char session_key[SSH_SESSION_KEY_LENGTH]; u_char fake_key_bytes[4096 / 8]; @@ -2364,9 +2478,16 @@ do_ssh1_kex(struct ssh *ssh) (void) BN_mask_bits(session_key_int, sizeof(session_key) * 8); len = BN_num_bytes(session_key_int); if (len < 0 || (u_int)len > sizeof(session_key)) { +<<<<<<< sshd.c error("do_ssh1_kex: bad session key len from %s: " "session_key_int %d > sizeof(session_key) %lu", ssh_remote_ipaddr(ssh), len, (u_long)sizeof(session_key)); +======= + error("%s: bad session key len from %s port %d: " + "session_key_int %d > sizeof(session_key) %lu", __func__, + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), + len, (u_long)sizeof(session_key)); +>>>>>>> 1.466 rsafail++; } else { explicit_bzero(session_key, sizeof(session_key)); diff --git a/ssh/sshd_config b/ssh/sshd_config index 4bf591e..7988b29 100644 --- a/ssh/sshd_config +++ b/ssh/sshd_config @@ -1,4 +1,4 @@ -# $OpenBSD: sshd_config,v 1.97 2015/08/06 14:53:21 deraadt Exp $ +# $OpenBSD: sshd_config,v 1.98 2016/02/17 05:29:04 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. @@ -84,7 +84,7 @@ AuthorizedKeysFile .ssh/authorized_keys #PrintLastLog yes #TCPKeepAlive yes #UseLogin no -UsePrivilegeSeparation sandbox # Default for new installations. +#UsePrivilegeSeparation sandbox #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 diff --git a/ssh/sshd_config.5 b/ssh/sshd_config.5 index 8e73fb8..aa43fba 100644 --- a/ssh/sshd_config.5 +++ b/ssh/sshd_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.215 2015/11/13 04:38:06 djm Exp $ -.Dd $Mdocdate: November 13 2015 $ +.\" $OpenBSD: sshd_config.5,v 1.220 2016/02/17 08:57:34 djm Exp $ +.Dd $Mdocdate: February 17 2016 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -70,8 +70,7 @@ See in .Xr ssh_config 5 for how to configure the client. -Note that environment passing is only supported for protocol 2, and -that the +The .Ev TERM environment variable is always sent whenever the client requests a pseudo-terminal as it is required by the protocol. @@ -226,7 +225,7 @@ of .Dq publickey,publickey will require successful authentication using two different public keys. .Pp -This option is only available for SSH protocol 2 and will yield a fatal +This option will yield a fatal error if enabled if protocol 1 is also enabled. Note that each authentication method listed should also be explicitly enabled in the configuration. @@ -373,7 +372,6 @@ authentication is allowed. If the argument is .Dq none then no banner is displayed. -This option is only available for protocol version 2. By default, no banner is displayed. .It Cm ChallengeResponseAuthentication Specifies whether challenge-response authentication is allowed. @@ -438,7 +436,7 @@ The default is indicating not to .Xr chroot 2 . .It Cm Ciphers -Specifies the ciphers allowed for protocol version 2. +Specifies the ciphers allowed. Multiple ciphers must be comma-separated. If the specified value begins with a .Sq + @@ -519,7 +517,6 @@ If .Cm ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds. -This option applies to protocol version 2 only. .It Cm ClientAliveInterval Sets a timeout interval in seconds after which if no data has been received from the client, @@ -528,7 +525,6 @@ will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. -This option applies to protocol version 2 only. .It Cm Compression Specifies whether compression is allowed, or delayed until the user has authenticated successfully. @@ -628,13 +624,11 @@ The default is Specifies whether user authentication based on GSSAPI is allowed. The default is .Dq no . -Note that this option applies to protocol version 2 only. .It Cm GSSAPICleanupCredentials Specifies whether to automatically destroy the user's credentials cache on logout. The default is .Dq yes . -Note that this option applies to protocol version 2 only. .It Cm GSSAPIStrictAcceptorCheck Determines whether to be strict about the identity of the GSSAPI acceptor a client authenticates against. @@ -677,9 +671,6 @@ may be used to list supported key types. Specifies whether rhosts or /etc/hosts.equiv authentication together with successful public key client host authentication is allowed (host-based authentication). -This option is similar to -.Cm RhostsRSAAuthentication -and applies to protocol version 2 only. The default is .Dq no . .It Cm HostbasedUsesNameFromPacketOnly @@ -750,7 +741,7 @@ is specified, the location of the socket will be read from the .Ev SSH_AUTH_SOCK environment variable. .It Cm HostKeyAlgorithms -Specifies the protocol version 2 host key algorithms +Specifies the host key algorithms that the server offers. The default for this option is: .Bd -literal -offset 3n @@ -971,8 +962,7 @@ DEBUG2 and DEBUG3 each specify higher levels of debugging output. Logging with a DEBUG level violates the privacy of users and is not recommended. .It Cm MACs Specifies the available MAC (message authentication code) algorithms. -The MAC algorithm is used in protocol version 2 -for data integrity protection. +The MAC algorithm is used for data integrity protection. Multiple algorithms must be comma-separated. If the specified value begins with a .Sq + @@ -1028,8 +1018,9 @@ The default is: .Bd -literal -offset indent umac-64-etm@openssh.com,umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, +hmac-sha1-etm@openssh.com, umac-64@openssh.com,umac-128@openssh.com, -hmac-sha2-256,hmac-sha2-512 +hmac-sha2-256,hmac-sha2-512,hmac-sha1 .Ed .Pp The list of available MAC algorithms may also be obtained using the @@ -1144,7 +1135,15 @@ Once the number of failures reaches half this value, additional failures are logged. The default is 6. .It Cm MaxSessions -Specifies the maximum number of open sessions permitted per network connection. +Specifies the maximum number of open shell, login or subsystem (e.g. sftp) +sessions permitted per network connection. +Multiple sessions may be established by clients that support connection +multiplexing. +Setting +.Cm MaxSessions +to 1 will effectively disable session multiplexing, whereas setting it to 0 +will prevent all shell, login and subsystem sessions while still permitting +forwarding. The default is 10. .It Cm MaxStartups Specifies the maximum number of concurrent unauthenticated connections to the @@ -1334,6 +1333,10 @@ and Multiple versions must be comma-separated. The default is .Sq 2 . +Protocol 1 suffers from a number of cryptographic weaknesses and should +not be used. +It is only offered to support legacy devices. +.Pp Note that the order of the protocol list does not indicate preference, because the client selects among multiple protocol versions offered by the server. @@ -1368,7 +1371,6 @@ may be used to list supported key types. Specifies whether public key authentication is allowed. The default is .Dq yes . -Note that this option applies to protocol version 2 only. .It Cm RekeyLimit Specifies the maximum amount of data that may be transmitted before the session key is renegotiated, optionally followed a maximum amount of @@ -1394,7 +1396,6 @@ is .Dq default none , which means that rekeying is performed after the cipher's default amount of data has been sent or received and no time based rekeying is done. -This option applies to protocol version 2 only. .It Cm RevokedKeys Specifies revoked public keys file, or .Dq none @@ -1481,7 +1482,6 @@ This may simplify configurations using to force a different filesystem root on clients. .Pp By default no subsystems are defined. -Note that this option applies to protocol version 2 only. .It Cm SyslogFacility Gives the facility code that is used when logging messages from .Xr sshd 8 . diff --git a/ssh/version.h b/ssh/version.h index fa3bdc4..998d4f6 100644 --- a/ssh/version.h +++ b/ssh/version.h @@ -1,3 +1,3 @@ -/* $OpenBSD: version.h,v 1.75 2015/08/21 03:45:26 djm Exp $ */ +/* $OpenBSD: version.h,v 1.76 2016/02/23 09:14:34 djm Exp $ */ -#define SSH_VERSION "OpenSSH_7.1" +#define SSH_VERSION "OpenSSH_7.2" diff --git a/ssh/xmalloc.c b/ssh/xmalloc.c index 0f37c61..039cae2 100644 --- a/ssh/xmalloc.c +++ b/ssh/xmalloc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.c,v 1.32 2015/04/24 01:36:01 deraadt Exp $ */ +/* $OpenBSD: xmalloc.c,v 1.33 2016/02/15 09:47:49 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -22,6 +22,14 @@ #include "xmalloc.h" #include "log.h" +void +ssh_malloc_init(void) +{ + extern char *malloc_options; + + malloc_options = "S"; +} + void * xmalloc(size_t size) { diff --git a/ssh/xmalloc.h b/ssh/xmalloc.h index 2bec77b..e499289 100644 --- a/ssh/xmalloc.h +++ b/ssh/xmalloc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.h,v 1.15 2015/04/24 01:36:01 deraadt Exp $ */ +/* $OpenBSD: xmalloc.h,v 1.16 2016/02/15 09:47:49 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -16,6 +16,7 @@ * called by a name other than "ssh" or "Secure Shell". */ +void ssh_malloc_init(void); void *xmalloc(size_t); void *xcalloc(size_t, size_t); void *xreallocarray(void *, size_t, size_t); From 73a167b41316ba57bb4cc0770beaf612aaf4cfe8 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 8 Mar 2016 17:23:22 +1100 Subject: [PATCH 03/14] resolve conflicts --- ssh/auth-options.c | 6 -- ssh/auth-rh-rsa.c | 12 +-- ssh/auth-rhosts.c | 7 -- ssh/auth.c | 39 -------- ssh/auth.h | 4 +- ssh/auth2-hostbased.c | 5 - ssh/canohost.c | 221 ------------------------------------------ ssh/canohost.h | 12 --- ssh/channels.c | 17 +--- ssh/clientloop.c | 35 ++----- ssh/monitor.c | 4 - ssh/monitor_wrap.c | 21 +--- ssh/monitor_wrap.h | 24 ++--- ssh/packet.h | 4 - ssh/servconf.c | 11 --- ssh/serverloop.c | 65 ++----------- ssh/session.c | 25 +---- ssh/ssh.c | 8 -- ssh/sshconnect2.c | 21 +--- ssh/sshd.c | 82 +--------------- 20 files changed, 32 insertions(+), 591 deletions(-) diff --git a/ssh/auth-options.c b/ssh/auth-options.c index 37e31be..8aff6ce 100644 --- a/ssh/auth-options.c +++ b/ssh/auth-options.c @@ -270,15 +270,9 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum) } cp = "from=\""; if (strncasecmp(opts, cp, strlen(cp)) == 0) { -<<<<<<< auth-options.c - const char *remote_ip = ssh_remote_ipaddr(ssh); - const char *remote_host = get_canonical_hostname( - options.use_dns); -======= const char *remote_ip = ssh_remote_ipaddr(ssh); const char *remote_host = auth_get_canonical_hostname( ssh, options.use_dns); ->>>>>>> 1.71 char *patterns = xmalloc(strlen(opts) + 1); opts += strlen(cp); diff --git a/ssh/auth-rh-rsa.c b/ssh/auth-rh-rsa.c index 810b410..d162b87 100644 --- a/ssh/auth-rh-rsa.c +++ b/ssh/auth-rh-rsa.c @@ -37,13 +37,8 @@ extern ServerOptions options; int -<<<<<<< auth-rh-rsa.c -auth_rhosts_rsa_key_allowed(struct passwd *pw, char *cuser, char *chost, - struct sshkey *client_host_key) -======= auth_rhosts_rsa_key_allowed(struct passwd *pw, const char *cuser, - const char *chost, Key *client_host_key) ->>>>>>> 1.45 + const char *chost, struct sshkey *client_host_key) { HostStatus host_status; @@ -69,13 +64,8 @@ int auth_rhosts_rsa(struct authctxt *authctxt, char *cuser, struct sshkey *client_host_key) { -<<<<<<< auth-rh-rsa.c - struct ssh *ssh = active_state; /* XXX */ - char *chost; -======= struct ssh *ssh = active_state; /* XXX */ const char *chost; ->>>>>>> 1.45 struct passwd *pw = authctxt->pw; debug("Trying rhosts with RSA host authentication for client user %.100s", diff --git a/ssh/auth-rhosts.c b/ssh/auth-rhosts.c index c20057b..0f4bbbd 100644 --- a/ssh/auth-rhosts.c +++ b/ssh/auth-rhosts.c @@ -30,8 +30,6 @@ #include "pathnames.h" #include "log.h" #include "misc.h" -#include "buffer.h" /* XXX */ -#include "key.h" /* XXX */ #include "servconf.h" #include "canohost.h" #include "sshkey.h" @@ -189,13 +187,8 @@ auth_rhosts(struct passwd *pw, const char *client_user) struct ssh *ssh = active_state; /* XXX */ const char *hostname, *ipaddr; -<<<<<<< auth-rhosts.c - hostname = get_canonical_hostname(options.use_dns); - ipaddr = ssh_remote_ipaddr(ssh); -======= hostname = auth_get_canonical_hostname(ssh, options.use_dns); ipaddr = ssh_remote_ipaddr(ssh); ->>>>>>> 1.47 return auth_rhosts2(pw, client_user, hostname, ipaddr); } diff --git a/ssh/auth.c b/ssh/auth.c index c54efd9..a8e31a8 100644 --- a/ssh/auth.c +++ b/ssh/auth.c @@ -83,11 +83,7 @@ static struct sshbuf *auth_debug; int allowed_user(struct passwd * pw) { -<<<<<<< auth.c - struct ssh *ssh = active_state; /* XXX */ -======= struct ssh *ssh = active_state; /* XXX */ ->>>>>>> 1.114 struct stat st; const char *hostname = NULL, *ipaddr = NULL; u_int i; @@ -123,13 +119,8 @@ allowed_user(struct passwd * pw) if (options.num_deny_users > 0 || options.num_allow_users > 0 || options.num_deny_groups > 0 || options.num_allow_groups > 0) { -<<<<<<< auth.c - hostname = get_canonical_hostname(options.use_dns); - ipaddr = ssh_remote_ipaddr(ssh); -======= hostname = auth_get_canonical_hostname(ssh, options.use_dns); ipaddr = ssh_remote_ipaddr(ssh); ->>>>>>> 1.114 } /* Return false if user is listed in DenyUsers */ @@ -241,13 +232,8 @@ auth_log(struct authctxt *authctxt, int authenticated, int partial, submethod != NULL ? "/" : "", submethod == NULL ? "" : submethod, authctxt->valid ? "" : "invalid user ", authctxt->user, -<<<<<<< auth.c - ssh_remote_ipaddr(active_state), /* XXX */ - ssh_get_remote_port(active_state), -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ->>>>>>> 1.114 compat20 ? "ssh2" : "ssh1", authctxt->info != NULL ? ": " : "", authctxt->info != NULL ? authctxt->info : ""); @@ -258,19 +244,12 @@ auth_log(struct authctxt *authctxt, int authenticated, int partial, void auth_maxtries_exceeded(struct ssh *ssh, struct authctxt *authctxt) { - struct ssh *ssh = active_state; /* XXX */ - error("maximum authentication attempts exceeded for " "%s%.100s from %.200s port %d %s", authctxt->valid ? "" : "invalid user ", authctxt->user, -<<<<<<< auth.c - ssh_remote_ipaddr(ssh), - ssh_get_remote_port(ssh), -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ->>>>>>> 1.114 compat20 ? "ssh2" : "ssh1"); sshpkt_disconnect(ssh, "Too many authentication failures"); fatal("Too many authentication failures"); /* XXX */ @@ -283,13 +262,8 @@ auth_maxtries_exceeded(struct ssh *ssh, struct authctxt *authctxt) int auth_root_allowed(const char *method) { -<<<<<<< auth.c - struct ssh *ssh = active_state; /* XXX */ - -======= struct ssh *ssh = active_state; /* XXX */ ->>>>>>> 1.114 switch (options.permit_root_login) { case PERMIT_YES: return 1; @@ -306,12 +280,8 @@ auth_root_allowed(const char *method) } break; } -<<<<<<< auth.c - logit("ROOT LOGIN REFUSED FROM %.200s", ssh_remote_ipaddr(ssh)); -======= logit("ROOT LOGIN REFUSED FROM %.200s port %d", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.114 return 0; } @@ -551,11 +521,7 @@ auth_openprincipals(const char *file, struct passwd *pw, int strict_modes) struct passwd * getpwnamallow(const char *user) { -<<<<<<< auth.c - struct ssh *ssh = active_state; /* XXX */ -======= struct ssh *ssh = active_state; /* XXX */ ->>>>>>> 1.114 extern login_cap_t *lc; auth_session_t *as; struct passwd *pw; @@ -566,13 +532,8 @@ getpwnamallow(const char *user) pw = getpwnam(user); if (pw == NULL) { -<<<<<<< auth.c - logit("Invalid user %.100s from %.100s", - user, ssh_remote_ipaddr(ssh)); -======= logit("Invalid user %.100s from %.100s port %d", user, ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.114 return (NULL); } if (!allowed_user(pw)) diff --git a/ssh/auth.h b/ssh/auth.h index 9793c28..ec9dad7 100644 --- a/ssh/auth.h +++ b/ssh/auth.h @@ -110,8 +110,8 @@ BIGNUM *auth_rsa_generate_challenge(struct sshkey *); int auth_rsa_verify_response(struct sshkey *, BIGNUM *, u_char[]); int auth_rsa_key_allowed(struct passwd *, BIGNUM *, struct sshkey **); -int auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, - struct sshkey *); +int auth_rhosts_rsa_key_allowed(struct passwd *, const char *, + const char *, struct sshkey *); int hostbased_key_allowed(struct passwd *, const char *, char *, struct sshkey *); int user_key_allowed(struct passwd *, struct sshkey *, int); diff --git a/ssh/auth2-hostbased.c b/ssh/auth2-hostbased.c index de0e045..bbbc740 100644 --- a/ssh/auth2-hostbased.c +++ b/ssh/auth2-hostbased.c @@ -175,13 +175,8 @@ hostbased_key_allowed(struct passwd *pw, const char *cuser, char *chost, if (auth_key_is_revoked(key)) return 0; -<<<<<<< auth2-hostbased.c - resolvedname = get_canonical_hostname(options.use_dns); - ipaddr = ssh_remote_ipaddr(active_state); /* XXX */ -======= resolvedname = auth_get_canonical_hostname(ssh, options.use_dns); ipaddr = ssh_remote_ipaddr(ssh); ->>>>>>> 1.26 debug2("%s: chost %s resolvedname %s ipaddr %s", __func__, chost, resolvedname, ipaddr); diff --git a/ssh/canohost.c b/ssh/canohost.c index 68c0456..3e29705 100644 --- a/ssh/canohost.c +++ b/ssh/canohost.c @@ -32,175 +32,6 @@ #include "canohost.h" #include "misc.h" -<<<<<<< canohost.c -static void check_ip_options(int, char *); - -/* - * Return the canonical name of the host at the other end of the socket. The - * caller should free the returned string. - */ - -static char * -get_remote_hostname(int sock, int use_dns) -{ - struct sockaddr_storage from; - socklen_t fromlen; - struct addrinfo hints, *ai, *aitop; - char name[NI_MAXHOST], ntop[NI_MAXHOST], ntop2[NI_MAXHOST]; - - /* Get IP address of client. */ - fromlen = sizeof(from); - memset(&from, 0, sizeof(from)); - if (getpeername(sock, (struct sockaddr *)&from, &fromlen) < 0) { - debug("getpeername failed: %.100s", strerror(errno)); - cleanup_exit(255); - } - - if (getnameinfo((struct sockaddr *)&from, fromlen, ntop, sizeof(ntop), - NULL, 0, NI_NUMERICHOST) != 0) - fatal("get_remote_hostname: getnameinfo NI_NUMERICHOST failed"); - - if (from.ss_family == AF_INET) - check_ip_options(sock, ntop); - - if (!use_dns) - return xstrdup(ntop); - - debug3("Trying to reverse map address %.100s.", ntop); - /* Map the IP address to a host name. */ - if (getnameinfo((struct sockaddr *)&from, fromlen, name, sizeof(name), - NULL, 0, NI_NAMEREQD) != 0) { - /* Host name not found. Use ip address. */ - return xstrdup(ntop); - } - - /* - * if reverse lookup result looks like a numeric hostname, - * someone is trying to trick us by PTR record like following: - * 1.1.1.10.in-addr.arpa. IN PTR 2.3.4.5 - */ - memset(&hints, 0, sizeof(hints)); - hints.ai_socktype = SOCK_DGRAM; /*dummy*/ - hints.ai_flags = AI_NUMERICHOST; - if (getaddrinfo(name, NULL, &hints, &ai) == 0) { - logit("Nasty PTR record \"%s\" is set up for %s, ignoring", - name, ntop); - freeaddrinfo(ai); - return xstrdup(ntop); - } - - /* Names are stores in lowercase. */ - lowercase(name); - - /* - * Map it back to an IP address and check that the given - * address actually is an address of this host. This is - * necessary because anyone with access to a name server can - * define arbitrary names for an IP address. Mapping from - * name to IP address can be trusted better (but can still be - * fooled if the intruder has access to the name server of - * the domain). - */ - memset(&hints, 0, sizeof(hints)); - hints.ai_family = from.ss_family; - hints.ai_socktype = SOCK_STREAM; - if (getaddrinfo(name, NULL, &hints, &aitop) != 0) { - logit("reverse mapping checking getaddrinfo for %.700s " - "[%s] failed - POSSIBLE BREAK-IN ATTEMPT!", name, ntop); - return xstrdup(ntop); - } - /* Look for the address from the list of addresses. */ - for (ai = aitop; ai; ai = ai->ai_next) { - if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop2, - sizeof(ntop2), NULL, 0, NI_NUMERICHOST) == 0 && - (strcmp(ntop, ntop2) == 0)) - break; - } - freeaddrinfo(aitop); - /* If we reached the end of the list, the address was not there. */ - if (!ai) { - /* Address not found for the host name. */ - logit("Address %.100s maps to %.600s, but this does not " - "map back to the address - POSSIBLE BREAK-IN ATTEMPT!", - ntop, name); - return xstrdup(ntop); - } - return xstrdup(name); -} - -/* - * If IP options are supported, make sure there are none (log and - * disconnect them if any are found). Basically we are worried about - * source routing; it can be used to pretend you are somebody - * (ip-address) you are not. That itself may be "almost acceptable" - * under certain circumstances, but rhosts autentication is useless - * if source routing is accepted. Notice also that if we just dropped - * source routing here, the other side could use IP spoofing to do - * rest of the interaction and could still bypass security. So we - * exit here if we detect any IP options. - */ -/* IPv4 only */ -static void -check_ip_options(int sock, char *ipaddr) -{ - u_char options[200]; - char text[sizeof(options) * 3 + 1]; - socklen_t option_size, i; - int ipproto; - struct protoent *ip; - - if ((ip = getprotobyname("ip")) != NULL) - ipproto = ip->p_proto; - else - ipproto = IPPROTO_IP; - option_size = sizeof(options); - if (getsockopt(sock, ipproto, IP_OPTIONS, options, - &option_size) >= 0 && option_size != 0) { - text[0] = '\0'; - for (i = 0; i < option_size; i++) - snprintf(text + i*3, sizeof(text) - i*3, - " %2.2x", options[i]); - fatal("Connection from %.100s with IP options:%.800s", - ipaddr, text); - } -} - -/* - * Return the canonical name of the host in the other side of the current - * connection. The host name is cached, so it is efficient to call this - * several times. - */ - -const char * -get_canonical_hostname(int use_dns) -{ - struct ssh *ssh = active_state; /* XXX */ - char *host; - static char *canonical_host_name = NULL; - static char *remote_ip = NULL; - - /* Check if we have previously retrieved name with same option. */ - if (use_dns && canonical_host_name != NULL) - return canonical_host_name; - if (!use_dns && remote_ip != NULL) - return remote_ip; - - /* Get the real hostname if socket; otherwise return UNKNOWN. */ - if (ssh_packet_connection_is_on_socket(ssh)) - host = get_remote_hostname( - ssh_packet_get_connection_in(ssh), use_dns); - else - host = "UNKNOWN"; - - if (use_dns) - canonical_host_name = host; - else - remote_ip = host; - return host; -} - -======= ->>>>>>> 1.73 /* * Returns the local/remote IP-address/hostname of socket as a string. * The returned string must be freed. @@ -285,22 +116,6 @@ get_local_name(int fd) return host; } -<<<<<<< canohost.c -const char * -get_remote_name_or_ip(u_int utmp_len, int use_dns) -{ - struct ssh *ssh = active_state; /* XXX */ - static const char *remote = ""; - - if (utmp_len > 0) - remote = get_canonical_hostname(use_dns); - if (utmp_len == 0 || strlen(remote) > utmp_len) - remote = ssh_remote_ipaddr(ssh); - return remote; -} - -======= ->>>>>>> 1.73 /* Returns the local/remote port for the socket. */ static int @@ -338,25 +153,6 @@ get_sock_port(int sock, int local) return atoi(strport); } -<<<<<<< canohost.c -/* Returns remote/local port number for the current connection. */ - -static int -ssh_get_port(struct ssh *ssh, int local) -{ - /* - * If the connection is not a socket, return 65535. This is - * intentionally chosen to be an unprivileged port number. - */ - if (!ssh_packet_connection_is_on_socket(ssh)) - return 65535; - - /* Get socket and return the port number. */ - return get_sock_port(ssh_packet_get_connection_in(ssh), local); -} - -======= ->>>>>>> 1.73 int get_peer_port(int sock) { @@ -364,24 +160,7 @@ get_peer_port(int sock) } int -<<<<<<< canohost.c -ssh_get_remote_port(struct ssh *ssh) -{ - /* Cache to avoid getpeername() on a dead connection */ - if (!ssh->remote_port) - ssh->remote_port = ssh_get_port(ssh, 0); - return ssh->remote_port; -} - -int -ssh_get_local_port(struct ssh *ssh) -======= get_local_port(int sock) ->>>>>>> 1.73 { -<<<<<<< canohost.c - return ssh_get_port(ssh, 1); -======= return get_sock_port(sock, 1); ->>>>>>> 1.73 } diff --git a/ssh/canohost.h b/ssh/canohost.h index 3e3602b..f9a7225 100644 --- a/ssh/canohost.h +++ b/ssh/canohost.h @@ -12,14 +12,8 @@ * called by a name other than "ssh" or "Secure Shell". */ -<<<<<<< canohost.h -struct ssh; -const char *get_canonical_hostname(int); -const char *get_remote_name_or_ip(u_int, int); -======= #ifndef _CANOHOST_H #define _CANOHOST_H ->>>>>>> 1.12 char *get_peer_ipaddr(int); int get_peer_port(int); @@ -27,10 +21,4 @@ char *get_local_ipaddr(int); char *get_local_name(int); int get_local_port(int); -<<<<<<< canohost.h -int ssh_get_remote_port(struct ssh *); -int ssh_get_local_port(struct ssh *); -int get_sock_port(int, int); -======= #endif /* _CANOHOST_H */ ->>>>>>> 1.12 diff --git a/ssh/channels.c b/ssh/channels.c index 15b571c..1100c08 100644 --- a/ssh/channels.c +++ b/ssh/channels.c @@ -1975,25 +1975,14 @@ read_mux(Channel *c, u_int need) rlen = need - sshbuf_len(c->input); len = read(c->rfd, buf, MIN(rlen, CHAN_RBUF)); if (len < 0 && (errno == EINTR || errno == EAGAIN)) - return buffer_len(&c->input); + return sshbuf_len(c->input); if (len <= 0) { -<<<<<<< channels.c - if (errno != EINTR && errno != EAGAIN) { - debug2("channel %u: ctl read<=0 rfd %d len %d", - c->self, c->rfd, len); - chan_read_failed(c); - return 0; - } - } else if ((r = sshbuf_put(c->input, buf, len)) != 0) - CHANNEL_BUFFER_ERROR(c, r); -======= debug2("channel %d: ctl read<=0 rfd %d len %d", c->self, c->rfd, len); chan_read_failed(c); return 0; - } else - buffer_append(&c->input, buf, len); ->>>>>>> 1.350 + } else if ((r = sshbuf_put(c->input, buf, len)) != 0) + CHANNEL_BUFFER_ERROR(c, r); } return sshbuf_len(c->input); } diff --git a/ssh/clientloop.c b/ssh/clientloop.c index 9f493b9..80b7474 100644 --- a/ssh/clientloop.c +++ b/ssh/clientloop.c @@ -618,7 +618,7 @@ server_alive_check(struct ssh *ssh) static void client_wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writesetp, - int *maxfdp, u_int *nallocp, int rekeying) + int *maxfdp, u_int *nallocp) { struct timeval tv, *tvp; int timeout_secs; @@ -627,7 +627,7 @@ client_wait_until_can_do_something(struct ssh *ssh, /* Add any selections by the channel mechanism. */ channel_prepare_select(readsetp, writesetp, maxfdp, nallocp, - &minwait_secs, rekeying); + &minwait_secs, ssh_packet_is_rekeying(ssh)); if (!compat20) { /* Read from the connection, unless our buffers are full. */ @@ -675,7 +675,8 @@ client_wait_until_can_do_something(struct ssh *ssh, timeout_secs = options.server_alive_interval; server_alive_time = now + options.server_alive_interval; } - if (options.rekey_interval > 0 && compat20 && !rekeying) + if (options.rekey_interval > 0 && compat20 && + !ssh_packet_is_rekeying(ssh)) timeout_secs = MIN(timeout_secs, ssh_packet_get_rekey_timeout(ssh)); set_control_persist_exit_time(); @@ -1661,13 +1662,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, if (compat20 && session_closed && !channel_still_open()) break; -<<<<<<< clientloop.c - rekeying = (ssh->kex != NULL && !ssh->kex->done); - - if (rekeying) { -======= - if (ssh_packet_is_rekeying(active_state)) { ->>>>>>> 1.284 + if (ssh_packet_is_rekeying(ssh)) { debug("rekeying in progress"); } else if (need_rekeying) { /* manual rekey request */ @@ -1705,13 +1700,8 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, * available on one of the descriptors). */ max_fd2 = max_fd; -<<<<<<< clientloop.c client_wait_until_can_do_something(ssh, &readset, &writeset, - &max_fd2, &nalloc, rekeying); -======= - client_wait_until_can_do_something(&readset, &writeset, - &max_fd2, &nalloc, ssh_packet_is_rekeying(active_state)); ->>>>>>> 1.284 + &max_fd2, &nalloc); if (quit_pending) break; @@ -1719,19 +1709,6 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, /* Do channel operations unless rekeying in progress. */ if (!ssh_packet_is_rekeying(active_state)) channel_after_select(readset, writeset); -<<<<<<< clientloop.c - if (need_rekeying || ssh_packet_need_rekeying(ssh)) { - debug("need rekeying"); - ssh->kex->done = 0; - if ((r = kex_send_kexinit(ssh)) != 0) { - fatal("%s: kex_send_kexinit: %s", - __func__, ssh_err(r)); - } - need_rekeying = 0; - } - } -======= ->>>>>>> 1.284 /* Buffer input from the connection. */ client_process_net_input(ssh, readset); diff --git a/ssh/monitor.c b/ssh/monitor.c index 7cbebbe..ba27b17 100644 --- a/ssh/monitor.c +++ b/ssh/monitor.c @@ -1234,11 +1234,7 @@ mm_answer_keyverify(int sock, struct sshbuf *m) static void mm_record_login(Session *s, struct passwd *pw) { -<<<<<<< monitor.c - struct ssh *ssh = active_state; /* XXX */ -======= struct ssh *ssh = active_state; /* XXX */ ->>>>>>> 1.158 socklen_t fromlen; struct sockaddr_storage from; diff --git a/ssh/monitor_wrap.c b/ssh/monitor_wrap.c index 6525898..69adab7 100644 --- a/ssh/monitor_wrap.c +++ b/ssh/monitor_wrap.c @@ -408,25 +408,15 @@ mm_user_key_allowed(struct passwd *pw, struct sshkey *key, } int -<<<<<<< monitor_wrap.c -mm_hostbased_key_allowed(struct passwd *pw, char *user, char *host, - struct sshkey *key) -======= mm_hostbased_key_allowed(struct passwd *pw, const char *user, const char *host, - Key *key) ->>>>>>> 1.88 + struct sshkey *key) { return (mm_key_allowed(MM_HOSTKEY, user, host, key, 0)); } int -<<<<<<< monitor_wrap.c -mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, char *user, - char *host, struct sshkey *key) -======= mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, const char *user, - const char *host, Key *key) ->>>>>>> 1.88 + const char *host, struct sshkey *key) { int ret; @@ -437,13 +427,8 @@ mm_auth_rhosts_rsa_key_allowed(struct passwd *pw, const char *user, } int -<<<<<<< monitor_wrap.c -mm_key_allowed(enum mm_keytype type, char *user, char *host, - struct sshkey *key, int pubkey_auth_attempt) -======= mm_key_allowed(enum mm_keytype type, const char *user, const char *host, - Key *key, int pubkey_auth_attempt) ->>>>>>> 1.88 + struct sshkey *key, int pubkey_auth_attempt) { struct sshbuf *m; u_char *blob; diff --git a/ssh/monitor_wrap.h b/ssh/monitor_wrap.h index 735aa05..4bf579e 100644 --- a/ssh/monitor_wrap.h +++ b/ssh/monitor_wrap.h @@ -45,31 +45,19 @@ int mm_sshkey_sign(struct sshkey *, u_char **, size_t *, const u_char *, size_t, void mm_inform_authserv(char *, char *); struct passwd *mm_getpwnamallow(const char *); char *mm_auth2_read_banner(void); -<<<<<<< monitor_wrap.h int mm_auth_password(struct authctxt *, char *); -int mm_key_allowed(enum mm_keytype, char *, char *, struct sshkey *, int); +int mm_key_allowed(enum mm_keytype, const char *, const char *, + struct sshkey *, int); int mm_user_key_allowed(struct passwd *, struct sshkey *, int); -int mm_hostbased_key_allowed(struct passwd *, char *, char *, struct sshkey *); -int mm_auth_rhosts_rsa_key_allowed(struct passwd *, char *, char *, - struct sshkey *); +int mm_hostbased_key_allowed(struct passwd *, const char *, + const char *, struct sshkey *); +int mm_auth_rhosts_rsa_key_allowed(struct passwd *, const char *, + const char *, struct sshkey *); int mm_sshkey_verify(struct sshkey *, u_char *, size_t, const u_char *, size_t, u_int); int mm_auth_rsa_key_allowed(struct passwd *, BIGNUM *, struct sshkey **); int mm_auth_rsa_verify_response(struct sshkey *, BIGNUM *, u_char *); BIGNUM *mm_auth_rsa_generate_challenge(struct sshkey *); -======= -int mm_auth_password(struct Authctxt *, char *); -int mm_key_allowed(enum mm_keytype, const char *, const char *, Key *, int); -int mm_user_key_allowed(struct passwd *, Key *, int); -int mm_hostbased_key_allowed(struct passwd *, const char *, - const char *, Key *); -int mm_auth_rhosts_rsa_key_allowed(struct passwd *, const char *, - const char *, Key *); -int mm_key_verify(Key *, u_char *, u_int, u_char *, u_int); -int mm_auth_rsa_key_allowed(struct passwd *, BIGNUM *, Key **); -int mm_auth_rsa_verify_response(Key *, BIGNUM *, u_char *); -BIGNUM *mm_auth_rsa_generate_challenge(Key *); ->>>>>>> 1.30 #ifdef GSSAPI OM_uint32 mm_ssh_gssapi_server_ctx(Gssctxt **, gss_OID); diff --git a/ssh/packet.h b/ssh/packet.h index daa529d..a6ec459 100644 --- a/ssh/packet.h +++ b/ssh/packet.h @@ -42,11 +42,7 @@ struct ssh { /* Key exchange */ struct kex *kex; -<<<<<<< packet.h - /* Cached remote ip address and port*/ -======= /* cached local and remote ip addresses and ports */ ->>>>>>> 1.71 char *remote_ipaddr; int remote_port; char *local_ipaddr; diff --git a/ssh/servconf.c b/ssh/servconf.c index 43d93f0..4aa45f7 100644 --- a/ssh/servconf.c +++ b/ssh/servconf.c @@ -661,26 +661,15 @@ process_queued_listen_addrs(ServerOptions *options) struct connection_info * get_connection_info(int populate, int use_dns) { -<<<<<<< servconf.c - struct ssh *ssh = active_state; /* XXX */ -======= struct ssh *ssh = active_state; /* XXX */ ->>>>>>> 1.286 static struct connection_info ci; if (!populate) return &ci; -<<<<<<< servconf.c - ci.host = get_canonical_hostname(use_dns); - ci.address = ssh_remote_ipaddr(ssh); - ci.laddress = get_local_ipaddr(ssh_packet_get_connection_in(ssh)); - ci.lport = ssh_get_local_port(ssh); -======= ci.host = auth_get_canonical_hostname(ssh, use_dns); ci.address = ssh_remote_ipaddr(ssh); ci.laddress = ssh_local_ipaddr(ssh); ci.lport = ssh_local_port(ssh); ->>>>>>> 1.286 return &ci; } diff --git a/ssh/serverloop.c b/ssh/serverloop.c index 87a5645..de3610d 100644 --- a/ssh/serverloop.c +++ b/ssh/serverloop.c @@ -278,13 +278,9 @@ client_alive_check(struct ssh *ssh) * for the duration of the wait (0 = infinite). */ static void -<<<<<<< serverloop.c -wait_until_can_do_something(struct ssh *ssh, fd_set **readsetp, fd_set **writesetp, - int *maxfdp, u_int *nallocp, u_int64_t max_time_milliseconds) -======= -wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp, int *maxfdp, +wait_until_can_do_something(struct ssh *ssh, + fd_set **readsetp, fd_set **writesetp, int *maxfdp, u_int *nallocp, u_int64_t max_time_ms) ->>>>>>> 1.184 { struct timeval tv, *tvp; int ret; @@ -360,15 +356,9 @@ wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp, int *maxfdp, * If child has terminated and there is enough buffer space to read * from it, then read as much as is available and exit. */ -<<<<<<< serverloop.c if (child_terminated && ssh_packet_not_very_much_data_to_write(ssh)) - if (max_time_milliseconds == 0 || client_alive_scheduled) - max_time_milliseconds = 100; -======= - if (child_terminated && packet_not_very_much_data_to_write()) if (max_time_ms == 0 || client_alive_scheduled) max_time_ms = 100; ->>>>>>> 1.184 if (max_time_ms == 0) tvp = NULL; @@ -399,25 +389,15 @@ wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp, int *maxfdp, static void process_input(struct ssh *ssh, fd_set *readset) { -<<<<<<< serverloop.c int len, r; -======= - struct ssh *ssh = active_state; /* XXX */ - int len; ->>>>>>> 1.184 char buf[16384]; /* Read and buffer any input data from the client. */ if (FD_ISSET(connection_in, readset)) { len = read(connection_in, buf, sizeof(buf)); if (len == 0) { -<<<<<<< serverloop.c - verbose("Connection closed by %.100s", - ssh_remote_ipaddr(ssh)); -======= verbose("Connection closed by %.100s port %d", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.184 connection_closed = 1; if (compat20) return; @@ -425,14 +405,9 @@ process_input(struct ssh *ssh, fd_set *readset) } else if (len < 0) { if (errno != EINTR && errno != EAGAIN) { verbose("Read error from remote host " -<<<<<<< serverloop.c - "%.100s: %.100s", - ssh_remote_ipaddr(ssh), strerror(errno)); -======= "%.100s port %d: %.100s", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), strerror(errno)); ->>>>>>> 1.184 cleanup_exit(255); } } else { @@ -847,11 +822,7 @@ void server_loop2(struct ssh *ssh) { fd_set *readset = NULL, *writeset = NULL; -<<<<<<< serverloop.c - int r, rekeying = 0, max_fd; -======= int max_fd; ->>>>>>> 1.184 u_int nalloc = 0; u_int64_t rekey_timeout_ms = 0; @@ -878,24 +849,13 @@ server_loop2(struct ssh *ssh) for (;;) { process_buffered_input_packets(ssh); -<<<<<<< serverloop.c - rekeying = (ssh->kex != NULL && !ssh->kex->done); - - if (!rekeying && ssh_packet_not_very_much_data_to_write(ssh)) -======= if (!ssh_packet_is_rekeying(active_state) && - packet_not_very_much_data_to_write()) ->>>>>>> 1.184 + ssh_packet_not_very_much_data_to_write(ssh)) channel_output_poll(); -<<<<<<< serverloop.c - if (options.rekey_interval > 0 && compat20 && !rekeying) + if (options.rekey_interval > 0 && compat20 && + !ssh_packet_is_rekeying(ssh)) rekey_timeout_ms = ssh_packet_get_rekey_timeout(ssh) * 1000; -======= - if (options.rekey_interval > 0 && compat20 && - !ssh_packet_is_rekeying(active_state)) - rekey_timeout_ms = packet_get_rekey_timeout() * 1000; ->>>>>>> 1.184 else rekey_timeout_ms = 0; wait_until_can_do_something(ssh, &readset, &writeset, &max_fd, @@ -908,22 +868,9 @@ server_loop2(struct ssh *ssh) } collect_children(); - if (!ssh_packet_is_rekeying(active_state)) + if (!ssh_packet_is_rekeying(ssh)) channel_after_select(readset, writeset); -<<<<<<< serverloop.c - if (ssh_packet_need_rekeying(ssh)) { - debug("need rekeying"); - ssh->kex->done = 0; - if ((r = kex_send_kexinit(ssh)) != 0) { - fatal("%s: kex_send_kexinit: %s", - __func__, ssh_err(r)); - } - } - } process_input(ssh, readset); -======= - process_input(readset); ->>>>>>> 1.184 if (connection_closed) break; process_output(ssh, writeset); diff --git a/ssh/session.c b/ssh/session.c index 825ff3e..b94c328 100644 --- a/ssh/session.c +++ b/ssh/session.c @@ -716,16 +716,10 @@ do_exec_pty(Session *s, const char *command) int do_exec(Session *s, const char *command) { - struct ssh *ssh = active_state; /* XXX */ int ret; -<<<<<<< session.c - const char *forced = NULL; - char session_type[1024], *tty = NULL; - struct ssh *ssh = s->ssh; -======= const char *forced = NULL, *tty = NULL; char session_type[1024]; ->>>>>>> 1.281 + struct ssh *ssh = s->ssh; if (options.adm_forced_command) { original_command = command; @@ -765,14 +759,9 @@ do_exec(Session *s, const char *command) tty == NULL ? "" : " on ", tty == NULL ? "" : tty, s->pw->pw_name, -<<<<<<< session.c - get_peer_ipaddr(ssh_packet_get_connection_in(ssh)), - ssh_get_remote_port(ssh)); -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), s->self); ->>>>>>> 1.281 #ifdef GSSAPI if (options.gss_authentication) { @@ -803,7 +792,6 @@ do_exec(Session *s, const char *command) void do_login(Session *s, const char *command) { - struct ssh *ssh = active_state; /* XXX */ socklen_t fromlen; struct sockaddr_storage from; struct passwd *pw = s->pw; @@ -977,7 +965,6 @@ read_environment_file(char ***env, u_int *envsize, static char ** do_setup_env(Session *s, const char *shell) { - struct ssh *ssh = active_state; /* XXX */ char buf[256]; u_int i, envsize; char **env, *laddr; @@ -1040,24 +1027,14 @@ do_setup_env(Session *s, const char *shell) /* SSH_CLIENT deprecated */ snprintf(buf, sizeof buf, "%.50s %d %d", -<<<<<<< session.c - ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh), - ssh_get_local_port(ssh)); -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ssh_local_port(ssh)); ->>>>>>> 1.281 child_set_env(&env, &envsize, "SSH_CLIENT", buf); laddr = get_local_ipaddr(ssh_packet_get_connection_in(ssh)); snprintf(buf, sizeof buf, "%.50s %d %.50s %d", -<<<<<<< session.c - ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh), laddr, - ssh_get_local_port(ssh)); -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), laddr, ssh_local_port(ssh)); ->>>>>>> 1.281 free(laddr); child_set_env(&env, &envsize, "SSH_CONNECTION", buf); diff --git a/ssh/ssh.c b/ssh/ssh.c index e39f66e..517bb77 100644 --- a/ssh/ssh.c +++ b/ssh/ssh.c @@ -518,11 +518,7 @@ set_addrinfo_port(struct addrinfo *addrs, int port) int main(int ac, char **av) { -<<<<<<< ssh.c - struct ssh *ssh; -======= struct ssh *ssh = NULL; ->>>>>>> 1.437 int i, r, opt, exit_status, use_syslog, config_test = 0; char *p, *cp, *line, *argv0, buf[PATH_MAX], *host_arg, *logfile; char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV]; @@ -1322,11 +1318,7 @@ main(int ac, char **av) if (ssh_packet_connection_is_on_socket(ssh)) { verbose("Authenticated to %s ([%s]:%d).", host, -<<<<<<< ssh.c - ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh)); -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.437 } else { verbose("Authenticated to %s (via proxy).", host); } diff --git a/ssh/sshconnect2.c b/ssh/sshconnect2.c index 82ad0bb..fc45d40 100644 --- a/ssh/sshconnect2.c +++ b/ssh/sshconnect2.c @@ -1094,13 +1094,8 @@ identity_sign(struct ssh *ssh, struct identity *id, u_char **sigp, size_t *lenp, ssh->compat)); /* load the private key from the file */ if ((prv = load_identity_file(id)) == NULL) -<<<<<<< sshconnect2.c - return (-1); /* XXX return decent error code */ - ret = sshkey_sign(prv, sigp, lenp, data, datalen, alg, ssh->compat); -======= return SSH_ERR_KEY_NOT_FOUND; - ret = sshkey_sign(prv, sigp, lenp, data, datalen, alg, compat); ->>>>>>> 1.239 + ret = sshkey_sign(prv, sigp, lenp, data, datalen, alg, ssh->compat); sshkey_free(prv); return (ret); } @@ -1189,17 +1184,11 @@ sign_and_send_pubkey(struct ssh *ssh, struct identity *id) } /* generate signature */ -<<<<<<< sshconnect2.c - if ((ret = identity_sign(ssh, id, &signature, &slen, - sshbuf_ptr(b), sshbuf_len(b))) != 0) { - error("%s: signing failed: %s", __func__, ssh_err(ret)); -======= - ret = identity_sign(id, &signature, &slen, - buffer_ptr(&b), buffer_len(&b), datafellows); + ret = identity_sign(ssh, id, &signature, &slen, + sshbuf_ptr(b), sshbuf_len(b)); if (ret != 0) { if (ret != SSH_ERR_KEY_NOT_FOUND) error("%s: signing failed: %s", __func__, ssh_err(ret)); ->>>>>>> 1.239 free(blob); sshbuf_free(b); return 0; @@ -1286,11 +1275,7 @@ send_pubkey_test(struct ssh *ssh, struct identity *id) static struct sshkey * load_identity_file(struct identity *id) { -<<<<<<< sshconnect2.c struct sshkey *private = NULL; -======= - Key *private = NULL; ->>>>>>> 1.239 char prompt[300], *passphrase, *comment; int r, perm_ok = 0, quit = 0, i; struct stat st; diff --git a/ssh/sshd.c b/ssh/sshd.c index 0cd7f85..cd5c254 100644 --- a/ssh/sshd.c +++ b/ssh/sshd.c @@ -348,13 +348,8 @@ grace_alarm_handler(int sig) } /* Log error and exit. */ -<<<<<<< sshd.c - sigdie("Timeout before authentication for %s", - ssh_remote_ipaddr(active_state)); -======= sigdie("Timeout before authentication for %s port %d", ssh_remote_ipaddr(active_state), ssh_remote_port(active_state)); ->>>>>>> 1.466 } /* @@ -426,13 +421,8 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) if (atomicio(vwrite, sock_out, server_version_string, strlen(server_version_string)) != strlen(server_version_string)) { -<<<<<<< sshd.c - logit("Could not write ident string to %s", - ssh_remote_ipaddr(ssh)); -======= logit("Could not write ident string to %s port %d", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.466 cleanup_exit(255); } @@ -440,14 +430,9 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) memset(buf, 0, sizeof(buf)); for (i = 0; i < sizeof(buf) - 1; i++) { if (atomicio(read, sock_in, &buf[i], 1) != 1) { -<<<<<<< sshd.c - logit("Did not receive identification string from %s", - ssh_remote_ipaddr(ssh)); -======= logit("Did not receive identification string " "from %s port %d", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.466 cleanup_exit(255); } if (buf[i] == '\r') { @@ -476,11 +461,7 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) (void) atomicio(vwrite, sock_out, s, strlen(s)); logit("Bad protocol version identification '%.100s' " "from %s port %d", client_version_string, -<<<<<<< sshd.c - ssh_remote_ipaddr(ssh), ssh_get_remote_port(ssh)); -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh)); ->>>>>>> 1.466 close(sock_in); close(sock_out); cleanup_exit(255); @@ -490,29 +471,16 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) ssh->compat = compat_datafellows(remote_version); -<<<<<<< sshd.c - if ((ssh->compat & SSH_BUG_PROBE) != 0) { - logit("probed from %s with %s. Don't panic.", - ssh_remote_ipaddr(ssh), client_version_string); -======= if ((ssh->compat & SSH_BUG_PROBE) != 0) { logit("probed from %s port %d with %s. Don't panic.", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), client_version_string); ->>>>>>> 1.466 cleanup_exit(255); } -<<<<<<< sshd.c - - if ((ssh->compat & SSH_BUG_SCANNER) != 0) { - logit("scanned from %s with %s. Don't panic.", - ssh_remote_ipaddr(ssh), client_version_string); -======= if ((ssh->compat & SSH_BUG_SCANNER) != 0) { logit("scanned from %s port %d with %s. Don't panic.", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), client_version_string); ->>>>>>> 1.466 cleanup_exit(255); } if ((ssh->compat & SSH_BUG_RSASIGMD5) != 0) { @@ -564,14 +532,9 @@ sshd_exchange_identification(struct ssh *ssh, int sock_in, int sock_out) (void) atomicio(vwrite, sock_out, s, strlen(s)); close(sock_in); close(sock_out); -<<<<<<< sshd.c - logit("Protocol major versions differ for %s: %.200s vs. %.200s", - ssh_remote_ipaddr(ssh), -======= logit("Protocol major versions differ for %s port %d: " "%.200s vs. %.200s", ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ->>>>>>> 1.466 server_version_string, client_version_string); cleanup_exit(255); } @@ -1520,11 +1483,7 @@ check_ip_options(struct ssh *ssh) int main(int ac, char **av) { -<<<<<<< sshd.c - struct ssh *ssh; -======= struct ssh *ssh = NULL; ->>>>>>> 1.466 extern char *optarg; extern int optind; int r, opt, i, j, on = 1; @@ -2114,29 +2073,18 @@ main(int ac, char **av) * Register our connection. This turns encryption off because we do * not have a key. */ -<<<<<<< sshd.c ssh = ssh_packet_set_connection(NULL, sock_in, sock_out); ssh_packet_set_server(ssh); active_state = ssh; /* XXX */ -======= - packet_set_connection(sock_in, sock_out); - packet_set_server(); - ssh = active_state; /* XXX */ check_ip_options(ssh); ->>>>>>> 1.466 /* Set SO_KEEPALIVE if requested. */ if (options.tcp_keep_alive && ssh_packet_connection_is_on_socket(ssh) && setsockopt(sock_in, SOL_SOCKET, SO_KEEPALIVE, &on, sizeof(on)) < 0) error("setsockopt SO_KEEPALIVE: %.100s", strerror(errno)); -<<<<<<< sshd.c - if ((remote_port = ssh_get_remote_port(ssh)) < 0) { - debug("get_remote_port failed"); -======= if ((remote_port = ssh_remote_port(ssh)) < 0) { debug("ssh_remote_port failed"); ->>>>>>> 1.466 cleanup_exit(255); } @@ -2150,11 +2098,7 @@ main(int ac, char **av) /* Log the connection. */ laddr = get_local_ipaddr(sock_in); verbose("Connection from %s port %d on %s port %d", -<<<<<<< sshd.c - remote_ip, remote_port, laddr, ssh_get_local_port(ssh)); -======= remote_ip, remote_port, laddr, ssh_local_port(ssh)); ->>>>>>> 1.466 free(laddr); /* @@ -2277,13 +2221,8 @@ main(int ac, char **av) int ssh1_session_key(BIGNUM *session_key_int) { -<<<<<<< sshd.c int r, rsafail = 0; struct ssh *ssh = active_state; /* XXX */ -======= - struct ssh *ssh = active_state; /* XXX */ - int rsafail = 0; ->>>>>>> 1.466 if (BN_cmp(sensitive_data.server_key->rsa->n, sensitive_data.ssh1_host_key->rsa->n) > 0) { @@ -2293,11 +2232,7 @@ ssh1_session_key(BIGNUM *session_key_int) SSH_KEY_BITS_RESERVED) { fatal("do_connection: %s port %d: " "server_key %d < host_key %d + SSH_KEY_BITS_RESERVED %d", -<<<<<<< sshd.c - ssh_remote_ipaddr(ssh), -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ->>>>>>> 1.466 BN_num_bits(sensitive_data.server_key->rsa->n), BN_num_bits(sensitive_data.ssh1_host_key->rsa->n), SSH_KEY_BITS_RESERVED); @@ -2321,11 +2256,7 @@ ssh1_session_key(BIGNUM *session_key_int) SSH_KEY_BITS_RESERVED) { fatal("do_connection: %s port %d: " "host_key %d < server_key %d + SSH_KEY_BITS_RESERVED %d", -<<<<<<< sshd.c - ssh_remote_ipaddr(ssh), -======= ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), ->>>>>>> 1.466 BN_num_bits(sensitive_data.ssh1_host_key->rsa->n), BN_num_bits(sensitive_data.server_key->rsa->n), SSH_KEY_BITS_RESERVED); @@ -2352,13 +2283,8 @@ ssh1_session_key(BIGNUM *session_key_int) static void do_ssh1_kex(struct ssh *ssh) { -<<<<<<< sshd.c int i, len, r, rsafail = 0; -======= - struct ssh *ssh = active_state; /* XXX */ - int i, len; - int rsafail = 0; ->>>>>>> 1.466 + BIGNUM *session_key_int, *fake_key_int, *real_key_int; u_char session_key[SSH_SESSION_KEY_LENGTH]; u_char fake_key_bytes[4096 / 8]; @@ -2478,16 +2404,10 @@ do_ssh1_kex(struct ssh *ssh) (void) BN_mask_bits(session_key_int, sizeof(session_key) * 8); len = BN_num_bytes(session_key_int); if (len < 0 || (u_int)len > sizeof(session_key)) { -<<<<<<< sshd.c - error("do_ssh1_kex: bad session key len from %s: " - "session_key_int %d > sizeof(session_key) %lu", - ssh_remote_ipaddr(ssh), len, (u_long)sizeof(session_key)); -======= error("%s: bad session key len from %s port %d: " "session_key_int %d > sizeof(session_key) %lu", __func__, ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), len, (u_long)sizeof(session_key)); ->>>>>>> 1.466 rsafail++; } else { explicit_bzero(session_key, sizeof(session_key)); From 670dc268f7a664f9a101fcac9ab14a3bb4216df6 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 8 Mar 2016 17:31:41 +1100 Subject: [PATCH 04/14] fixup --- ssh/ssh.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/ssh/ssh.c b/ssh/ssh.c index 517bb77..04acd3a 100644 --- a/ssh/ssh.c +++ b/ssh/ssh.c @@ -1210,8 +1210,6 @@ main(int ac, char **av) ssh_packet_set_timeout(ssh, options.server_alive_interval, options.server_alive_count_max); - ssh = active_state; /* XXX */ - if (timeout_ms > 0) debug3("timeout: %d ms remain after connect", timeout_ms); From 781677913fffb09973e2417355d1f1d679d8719e Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 12 Apr 2016 17:26:03 +1000 Subject: [PATCH 05/14] cvs update; keep conflicts --- ssh/CVS/Entries | 50 ++++++++++++++++++------------------ ssh/PROTOCOL | 4 ++- ssh/authfile.c | 34 ++++++++++++++++--------- ssh/dh.c | 14 +++++------ ssh/misc.c | 64 +++++++++++++++++++++++++++++++++++++---------- ssh/misc.h | 4 ++- ssh/mux.c | 4 +-- ssh/pathnames.h | 4 +-- ssh/readconf.c | 14 ++++++++++- ssh/session.c | 37 +++++++++++++++++++++++++-- ssh/sftp-client.c | 4 +-- ssh/sftp.c | 8 +++--- ssh/sshconnect2.c | 8 +++--- ssh/sshd_config.5 | 6 ++--- ssh/sshkey.c | 40 +++++++++++++++++------------ 15 files changed, 200 insertions(+), 95 deletions(-) diff --git a/ssh/CVS/Entries b/ssh/CVS/Entries index 4ce0484..2ae1849 100644 --- a/ssh/CVS/Entries +++ b/ssh/CVS/Entries @@ -56,11 +56,9 @@ D/moduli-gen//// /sshbuf.h/1.6/Result of merge// /sshconnect.h/1.29/Result of merge// /sshconnect1.c/1.78/Result of merge+Mon Jan 11 11:16:26 2016// -/sshkey.c/1.31/Result of merge// /sshlogin.c/1.32/Result of merge// /LICENCE/1.19/Mon Feb 1 06:34:45 2016// /OVERVIEW/1.12/Mon Feb 1 06:34:45 2016// -/PROTOCOL/1.29/Mon Feb 1 06:34:45 2016// /PROTOCOL.agent/1.8/Mon Feb 1 06:34:45 2016// /PROTOCOL.certkeys/1.9/Mon Feb 1 06:34:45 2016// /PROTOCOL.chacha20poly1305/1.2/Mon Feb 1 06:34:45 2016// @@ -76,16 +74,10 @@ D/moduli-gen//// /auth2-pubkey.c/1.55/Result of merge+Mon Feb 1 06:34:58 2016// /authfd.c/1.100/Mon Feb 1 06:34:45 2016// /authfd.h/1.39/Mon Feb 1 06:34:45 2016// -/authfile.c/1.120/Mon Feb 1 06:34:45 2016// /authfile.h/1.21/Mon Feb 1 06:34:45 2016// /bitmap.c/1.4/Mon Feb 1 06:34:45 2016// /bitmap.h/1.1/Mon Feb 1 06:34:45 2016// /blocks.c/1.3/Mon Feb 1 06:34:45 2016// -/bufaux.c/1.60/Mon Feb 1 00:24:22 2016// -/bufbn.c/1.12/Mon Feb 1 00:23:29 2016// -/bufec.c/1.4/Mon Feb 1 00:22:59 2016// -/buffer.c/1.36/Mon Feb 1 00:22:07 2016// -/buffer.h/1.25/Mon Feb 1 00:22:38 2016// /chacha.c/1.1/Mon Feb 1 06:34:45 2016// /chacha.h/1.3/Mon Feb 1 06:34:45 2016// /cipher-3des1.c/1.12/Mon Feb 1 06:34:45 2016// @@ -125,8 +117,6 @@ D/moduli-gen//// /kexdh.c/1.25/Mon Feb 1 06:34:45 2016// /kexecdh.c/1.6/Mon Feb 1 06:34:45 2016// /kexgex.c/1.29/Mon Feb 1 06:34:45 2016// -/key.c/1.129/Mon Feb 1 00:06:27 2016// -/key.h/1.49/Mon Feb 1 00:06:27 2016// /krl.c/1.37/Mon Feb 1 06:34:45 2016// /krl.h/1.5/Mon Feb 1 06:34:45 2016// /log.c/1.46/Mon Feb 1 06:34:45 2016// @@ -140,10 +130,8 @@ D/moduli-gen//// /monitor_mm.h/1.6/Mon Feb 1 06:34:45 2016// /msg.c/1.16/Mon Feb 1 06:34:45 2016// /msg.h/1.5/Mon Feb 1 06:34:45 2016// -/mux.c/1.58/Result of merge+Mon Feb 1 06:34:59 2016// /nchan.ms/1.8/Mon Feb 1 06:34:45 2016// /nchan2.ms/1.4/Mon Feb 1 06:34:45 2016// -/pathnames.h/1.24/Mon Feb 1 06:34:45 2016// /pkcs11.h/1.3/Mon Feb 1 06:34:45 2016// /poly1305.c/1.3/Mon Feb 1 06:34:45 2016// /poly1305.h/1.4/Mon Feb 1 06:34:45 2016// @@ -200,41 +188,30 @@ D/moduli-gen//// /uuencode.c/1.28/Mon Feb 1 06:34:46 2016// /uuencode.h/1.14/Mon Feb 1 06:34:46 2016// /verify.c/1.3/Mon Feb 1 06:34:46 2016// -/opacket.c/1.5/Mon Feb 1 06:34:59 2016// /auth-options.c/1.71/Result of merge+Tue Mar 8 04:13:30 2016// /auth-rh-rsa.c/1.45/Result of merge+Tue Mar 8 04:13:30 2016// /auth-rhosts.c/1.47/Result of merge+Tue Mar 8 04:13:30 2016// /auth.c/1.114/Result of merge+Tue Mar 8 04:13:31 2016// /auth.h/1.87/Result of merge// /auth2-hostbased.c/1.26/Result of merge+Tue Mar 8 04:13:31 2016// -/canohost.c/1.73/Result of merge+Tue Mar 8 04:13:31 2016// -/canohost.h/1.12/Result of merge+Tue Mar 8 04:13:31 2016// /channels.c/1.350/Result of merge+Tue Mar 8 04:13:31 2016// /clientloop.c/1.284/Result of merge+Tue Mar 8 04:13:31 2016// -/dh.c/1.58/Tue Mar 8 04:13:31 2016// /kex.c/1.117/Result of merge// /kex.h/1.76/Result of merge// -/misc.c/1.102/Result of merge// -/misc.h/1.55/Tue Mar 8 04:13:31 2016// /monitor.c/1.158/Result of merge+Tue Mar 8 04:13:31 2016// /monitor_fdpass.c/1.21/Tue Mar 8 04:13:31 2016// /monitor_wrap.c/1.88/Result of merge+Tue Mar 8 04:13:31 2016// /monitor_wrap.h/1.30/Result of merge+Tue Mar 8 04:13:31 2016// /myproposal.h/1.50/Tue Mar 8 04:13:31 2016// -/opacket.h/1.7/Tue Mar 8 04:13:31 2016// /packet.c/1.230/Result of merge// /packet.h/1.71/Result of merge+Tue Mar 8 04:13:31 2016// /progressmeter.c/1.42/Tue Mar 8 04:13:31 2016// -/readconf.c/1.250/Tue Mar 8 04:13:31 2016// /scp.c/1.185/Tue Mar 8 04:13:31 2016// /servconf.c/1.286/Result of merge+Tue Mar 8 04:13:31 2016// /serverloop.c/1.184/Result of merge+Tue Mar 8 04:13:31 2016// -/session.c/1.281/Result of merge+Tue Mar 8 04:13:31 2016// /session.h/1.32/Result of merge// -/sftp-client.c/1.121/Tue Mar 8 04:13:31 2016// /sftp-server-main.c/1.5/Tue Mar 8 04:13:31 2016// /sftp-server.c/1.109/Tue Mar 8 04:13:31 2016// -/sftp.c/1.172/Tue Mar 8 04:13:31 2016// /ssh-add.c/1.128/Tue Mar 8 04:13:31 2016// /ssh-agent.c/1.212/Tue Mar 8 04:13:31 2016// /ssh-keygen.1/1.130/Tue Mar 8 04:13:31 2016// @@ -248,11 +225,34 @@ D/moduli-gen//// /ssh.c/1.437/Result of merge+Tue Mar 8 04:13:31 2016// /ssh_config/1.30/Tue Mar 8 04:13:31 2016// /ssh_config.5/1.228/Tue Mar 8 04:13:31 2016// -/sshconnect2.c/1.239/Result of merge+Tue Mar 8 04:13:31 2016// /sshd.8/1.284/Tue Mar 8 04:13:31 2016// /sshd.c/1.466/Result of merge+Tue Mar 8 04:13:31 2016// /sshd_config/1.98/Tue Mar 8 04:13:31 2016// -/sshd_config.5/1.220/Tue Mar 8 04:13:31 2016// /version.h/1.76/Tue Mar 8 04:13:31 2016// /xmalloc.c/1.33/Tue Mar 8 04:13:31 2016// /xmalloc.h/1.16/Tue Mar 8 04:13:31 2016// +/PROTOCOL/1.30/Tue Apr 12 07:25:46 2016// +/authfile.c/1.121/Tue Apr 12 07:25:46 2016// +/bufaux.c/1.60/Tue Apr 12 07:25:46 2016// +/bufbn.c/1.12/Tue Apr 12 07:25:46 2016// +/bufec.c/1.4/Tue Apr 12 07:25:46 2016// +/buffer.c/1.36/Tue Apr 12 07:25:46 2016// +/buffer.h/1.25/Tue Apr 12 07:25:46 2016// +/canohost.c/1.73/Tue Mar 8 04:19:31 2016// +/canohost.h/1.12/Tue Mar 8 04:19:51 2016// +/dh.c/1.59/Tue Apr 12 07:25:46 2016// +/key.c/1.129/Tue Apr 12 07:25:46 2016// +/key.h/1.49/Tue Apr 12 07:25:46 2016// +/misc.c/1.104/Result of merge// +/misc.h/1.56/Tue Apr 12 07:25:46 2016// +/mux.c/1.59/Result of merge// +/opacket.c/1.5/Tue Apr 12 07:25:46 2016// +/opacket.h/1.7/Tue Apr 12 07:25:46 2016// +/pathnames.h/1.25/Tue Apr 12 07:25:46 2016// +/readconf.c/1.251/Tue Apr 12 07:25:46 2016// +/session.c/1.282/Result of merge+Tue Apr 12 07:25:46 2016// +/sftp-client.c/1.122/Tue Apr 12 07:25:46 2016// +/sftp.c/1.173/Tue Apr 12 07:25:46 2016// +/sshconnect2.c/1.240/Result of merge+Tue Apr 12 07:25:46 2016// +/sshd_config.5/1.221/Tue Apr 12 07:25:46 2016// +/sshkey.c/1.32/Result of merge// diff --git a/ssh/PROTOCOL b/ssh/PROTOCOL index 131adfe..c6f99a3 100644 --- a/ssh/PROTOCOL +++ b/ssh/PROTOCOL @@ -247,6 +247,8 @@ to request that the server make a connection to a Unix domain socket. uint32 initial window size uint32 maximum packet size string socket path + string reserved + uint32 reserved Similar to forwarded-tcpip, forwarded-streamlocal is sent by the server when the client has previously send the server a streamlocal-forward @@ -452,4 +454,4 @@ respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". -$OpenBSD: PROTOCOL,v 1.29 2015/07/17 03:09:19 djm Exp $ +$OpenBSD: PROTOCOL,v 1.30 2016/04/08 06:35:54 djm Exp $ diff --git a/ssh/authfile.c b/ssh/authfile.c index ac2e226..59771cb 100644 --- a/ssh/authfile.c +++ b/ssh/authfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: authfile.c,v 1.120 2015/12/11 04:21:11 mmcc Exp $ */ +/* $OpenBSD: authfile.c,v 1.121 2016/04/09 12:39:30 djm Exp $ */ /* * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved. * @@ -145,7 +145,8 @@ sshkey_load_public_rsa1(int fd, struct sshkey **keyp, char **commentp) struct sshbuf *b = NULL; int r; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if (commentp != NULL) *commentp = NULL; @@ -195,7 +196,8 @@ sshkey_load_private_type(int type, const char *filename, const char *passphrase, { int fd, r; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if (commentp != NULL) *commentp = NULL; @@ -226,6 +228,8 @@ sshkey_load_private_type_fd(int fd, int type, const char *passphrase, struct sshbuf *buffer = NULL; int r; + if (keyp != NULL) + *keyp = NULL; if ((buffer = sshbuf_new()) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto out; @@ -250,7 +254,8 @@ sshkey_load_private(const char *filename, const char *passphrase, struct sshbuf *buffer = NULL; int r, fd; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if (commentp != NULL) *commentp = NULL; @@ -403,7 +408,8 @@ sshkey_load_cert(const char *filename, struct sshkey **keyp) char *file = NULL; int r = SSH_ERR_INTERNAL_ERROR; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if (asprintf(&file, "%s-cert.pub", filename) == -1) return SSH_ERR_ALLOC_FAIL; @@ -413,11 +419,12 @@ sshkey_load_cert(const char *filename, struct sshkey **keyp) } if ((r = sshkey_try_load_public(pub, file, NULL)) != 0) goto out; - - *keyp = pub; - pub = NULL; + /* success */ + if (keyp != NULL) { + *keyp = pub; + pub = NULL; + } r = 0; - out: free(file); sshkey_free(pub); @@ -432,7 +439,8 @@ sshkey_load_private_cert(int type, const char *filename, const char *passphrase, struct sshkey *key = NULL, *cert = NULL; int r; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; switch (type) { #ifdef WITH_OPENSSL @@ -462,8 +470,10 @@ sshkey_load_private_cert(int type, const char *filename, const char *passphrase, (r = sshkey_cert_copy(cert, key)) != 0) goto out; r = 0; - *keyp = key; - key = NULL; + if (keyp != NULL) { + *keyp = key; + key = NULL; + } out: sshkey_free(key); sshkey_free(cert); diff --git a/ssh/dh.c b/ssh/dh.c index e40a757..d819aa6 100644 --- a/ssh/dh.c +++ b/ssh/dh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dh.c,v 1.58 2016/02/28 22:27:00 djm Exp $ */ +/* $OpenBSD: dh.c,v 1.59 2016/03/31 05:24:06 dtucker Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -148,10 +149,9 @@ choose_dh(int min, int wantbits, int max) int linenum; struct dhgroup dhg; - if ((f = fopen(_PATH_DH_MODULI, "r")) == NULL && - (f = fopen(_PATH_DH_PRIMES, "r")) == NULL) { - logit("WARNING: %s does not exist, using fixed modulus", - _PATH_DH_MODULI); + if ((f = fopen(_PATH_DH_MODULI, "r")) == NULL) { + logit("WARNING: could open open %s (%s), using fixed modulus", + _PATH_DH_MODULI, strerror(errno)); return (dh_new_group_fallback(max)); } @@ -179,7 +179,7 @@ choose_dh(int min, int wantbits, int max) if (bestcount == 0) { fclose(f); - logit("WARNING: no suitable primes in %s", _PATH_DH_PRIMES); + logit("WARNING: no suitable primes in %s", _PATH_DH_MODULI); return (dh_new_group_fallback(max)); } @@ -200,7 +200,7 @@ choose_dh(int min, int wantbits, int max) fclose(f); if (linenum != which+1) { logit("WARNING: line %d disappeared in %s, giving up", - which, _PATH_DH_PRIMES); + which, _PATH_DH_MODULI); return (dh_new_group_fallback(max)); } diff --git a/ssh/misc.c b/ssh/misc.c index 705687b..25add6f 100644 --- a/ssh/misc.c +++ b/ssh/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.102 2016/03/02 22:42:40 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.104 2016/04/06 06:42:17 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -76,9 +76,9 @@ set_nonblock(int fd) { int val; - val = fcntl(fd, F_GETFL, 0); + val = fcntl(fd, F_GETFL); if (val < 0) { - error("fcntl(%d, F_GETFL, 0): %s", fd, strerror(errno)); + error("fcntl(%d, F_GETFL): %s", fd, strerror(errno)); return (-1); } if (val & O_NONBLOCK) { @@ -100,9 +100,9 @@ unset_nonblock(int fd) { int val; - val = fcntl(fd, F_GETFL, 0); + val = fcntl(fd, F_GETFL); if (val < 0) { - error("fcntl(%d, F_GETFL, 0): %s", fd, strerror(errno)); + error("fcntl(%d, F_GETFL): %s", fd, strerror(errno)); return (-1); } if (!(val & O_NONBLOCK)) { @@ -706,16 +706,16 @@ sanitise_stdfd(void) strerror(errno)); exit(1); } - while (++dupfd <= 2) { - /* Only clobber closed fds */ - if (fcntl(dupfd, F_GETFL, 0) >= 0) - continue; - if (dup2(nullfd, dupfd) == -1) { - fprintf(stderr, "dup2: %s\n", strerror(errno)); - exit(1); + while (++dupfd <= STDERR_FILENO) { + /* Only populate closed fds. */ + if (fcntl(dupfd, F_GETFL) == -1 && errno == EBADF) { + if (dup2(nullfd, dupfd) == -1) { + fprintf(stderr, "dup2: %s\n", strerror(errno)); + exit(1); + } } } - if (nullfd > 2) + if (nullfd > STDERR_FILENO) close(nullfd); } @@ -1081,3 +1081,41 @@ unix_listener(const char *path, int backlog, int unlink_first) } return sock; } + +/* + * Compares two strings that maybe be NULL. Returns non-zero if strings + * are both NULL or are identical, returns zero otherwise. + */ +static int +strcmp_maybe_null(const char *a, const char *b) +{ + if ((a == NULL && b != NULL) || (a != NULL && b == NULL)) + return 0; + if (a != NULL && strcmp(a, b) != 0) + return 0; + return 1; +} + +/* + * Compare two forwards, returning non-zero if they are identical or + * zero otherwise. + */ +int +forward_equals(const struct Forward *a, const struct Forward *b) +{ + if (strcmp_maybe_null(a->listen_host, b->listen_host) == 0) + return 0; + if (a->listen_port != b->listen_port) + return 0; + if (strcmp_maybe_null(a->listen_path, b->listen_path) == 0) + return 0; + if (strcmp_maybe_null(a->connect_host, b->connect_host) == 0) + return 0; + if (a->connect_port != b->connect_port) + return 0; + if (strcmp_maybe_null(a->connect_path, b->connect_path) == 0) + return 0; + /* allocated_port and handle are not checked */ + return 1; +} + diff --git a/ssh/misc.h b/ssh/misc.h index 1b81be8..58f3f77 100644 --- a/ssh/misc.h +++ b/ssh/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.55 2016/03/02 22:42:40 dtucker Exp $ */ +/* $OpenBSD: misc.h,v 1.56 2016/04/06 06:42:17 djm Exp $ */ /* * Author: Tatu Ylonen @@ -27,6 +27,8 @@ struct Forward { int handle; /* Handle for dynamic listen ports */ }; +int forward_equals(const struct Forward *, const struct Forward *); + /* Common server and client forwarding options. */ struct ForwardOptions { int gateway_ports; /* Allow remote connects to forwarded ports. */ diff --git a/ssh/mux.c b/ssh/mux.c index 03671d1..262d013 100644 --- a/ssh/mux.c +++ b/ssh/mux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mux.c,v 1.58 2016/01/13 23:04:47 djm Exp $ */ +/* $OpenBSD: mux.c,v 1.59 2016/04/01 02:34:10 djm Exp $ */ /* * Copyright (c) 2002-2008 Damien Miller * @@ -1307,7 +1307,7 @@ muxserver_listen(struct ssh *ssh) /* Now atomically "move" the mux socket into position */ if (link(options.control_path, orig_control_path) != 0) { if (errno != EEXIST) { - fatal("%s: link mux listener %s => %s: %s", __func__, + fatal("%s: link mux listener %s => %s: %s", __func__, options.control_path, orig_control_path, strerror(errno)); } diff --git a/ssh/pathnames.h b/ssh/pathnames.h index e8035bb..e6bb640 100644 --- a/ssh/pathnames.h +++ b/ssh/pathnames.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pathnames.h,v 1.24 2013/12/06 13:39:49 markus Exp $ */ +/* $OpenBSD: pathnames.h,v 1.25 2016/03/31 05:24:06 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -36,8 +36,6 @@ #define _PATH_HOST_RSA_KEY_FILE SSHDIR "/ssh_host_rsa_key" #define _PATH_HOST_ED25519_KEY_FILE SSHDIR "/ssh_host_ed25519_key" #define _PATH_DH_MODULI ETCDIR "/moduli" -/* Backwards compatibility */ -#define _PATH_DH_PRIMES ETCDIR "/primes" #define _PATH_SSH_PROGRAM "/usr/bin/ssh" diff --git a/ssh/readconf.c b/ssh/readconf.c index 0e2e9e0..91a8e00 100644 --- a/ssh/readconf.c +++ b/ssh/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.250 2016/02/08 23:40:12 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.251 2016/04/06 06:42:17 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -284,10 +284,16 @@ add_local_forward(Options *options, const struct Forward *newfwd) { struct Forward *fwd; extern uid_t original_real_uid; + int i; if (newfwd->listen_port < IPPORT_RESERVED && original_real_uid != 0 && newfwd->listen_path == NULL) fatal("Privileged ports can only be forwarded by root."); + /* Don't add duplicates */ + for (i = 0; i < options->num_local_forwards; i++) { + if (forward_equals(newfwd, options->local_forwards + i)) + return; + } options->local_forwards = xreallocarray(options->local_forwards, options->num_local_forwards + 1, sizeof(*options->local_forwards)); @@ -310,7 +316,13 @@ void add_remote_forward(Options *options, const struct Forward *newfwd) { struct Forward *fwd; + int i; + /* Don't add duplicates */ + for (i = 0; i < options->num_remote_forwards; i++) { + if (forward_equals(newfwd, options->remote_forwards + i)) + return; + } options->remote_forwards = xreallocarray(options->remote_forwards, options->num_remote_forwards + 1, sizeof(*options->remote_forwards)); diff --git a/ssh/session.c b/ssh/session.c index b94c328..5397a14 100644 --- a/ssh/session.c +++ b/ssh/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.281 2016/03/07 19:02:43 djm Exp $ */ +/* $OpenBSD: session.c,v 1.282 2016/03/10 11:47:57 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -40,6 +40,7 @@ #include #include +#include #include #include #include @@ -262,6 +263,21 @@ do_authenticated(struct ssh *ssh) do_cleanup(authctxt); } +/* Check untrusted xauth strings for metacharacters */ +static int +xauth_valid_string(const char *s) +{ + size_t i; + + for (i = 0; s[i] != '\0'; i++) { + if (!isalnum((u_char)s[i]) && + s[i] != '.' && s[i] != ':' && s[i] != '/' && + s[i] != '-' && s[i] != '_') + return 0; + } + return 1; +} + /* * Prepares for an interactive session. This is called after the user has * been successfully authenticated. During this message exchange, pseudo @@ -338,9 +354,20 @@ do_authenticated1(struct ssh *ssh) } else { s->screen = 0; } +<<<<<<< session.c if ((r = sshpkt_get_end(ssh)) != 0) fatal("%s: %s", __func__, ssh_err(r)); success = session_setup_x11fwd(s); +======= + packet_check_eom(); + if (xauth_valid_string(s->auth_proto) && + xauth_valid_string(s->auth_data)) + success = session_setup_x11fwd(s); + else { + success = 0; + error("Invalid X11 forwarding data"); + } +>>>>>>> 1.282 if (!success) { free(s->auth_proto); free(s->auth_data); @@ -1841,7 +1868,13 @@ session_x11_req(Session *s) (r = sshpkt_get_end(ssh)) != 0) fatal("%s: %s", __func__, ssh_err(r)); - success = session_setup_x11fwd(s); + if (xauth_valid_string(s->auth_proto) && + xauth_valid_string(s->auth_data)) + success = session_setup_x11fwd(s); + else { + success = 0; + error("Invalid X11 forwarding data"); + } if (!success) { free(s->auth_proto); free(s->auth_data); diff --git a/ssh/sftp-client.c b/ssh/sftp-client.c index 3d1ed30..4af181f 100644 --- a/ssh/sftp-client.c +++ b/ssh/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.121 2016/02/11 02:21:34 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.122 2016/04/08 08:19:17 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1590,7 +1590,7 @@ do_upload(struct sftp_conn *conn, const char *local_path, if (resume) { /* Get remote file size if it exists */ if ((c = do_stat(conn, remote_path, 0)) == NULL) { - close(local_fd); + close(local_fd); return -1; } diff --git a/ssh/sftp.c b/ssh/sftp.c index fbe8bac..706e548 100644 --- a/ssh/sftp.c +++ b/ssh/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.172 2016/02/15 09:47:49 dtucker Exp $ */ +/* $OpenBSD: sftp.c,v 1.173 2016/04/08 08:19:17 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -713,7 +713,7 @@ process_put(struct sftp_conn *conn, char *src, char *dst, char *pwd, resume |= global_aflag; if (!quiet && resume) - printf("Resuming upload of %s to %s\n", g.gl_pathv[i], + printf("Resuming upload of %s to %s\n", g.gl_pathv[i], abs_dst); else if (!quiet && !resume) printf("Uploading %s to %s\n", g.gl_pathv[i], abs_dst); @@ -1183,7 +1183,7 @@ makeargv(const char *arg, int *argcp, int sloppy, char *lastquote, static int parse_args(const char **cpp, int *ignore_errors, int *aflag, - int *fflag, int *hflag, int *iflag, int *lflag, int *pflag, + int *fflag, int *hflag, int *iflag, int *lflag, int *pflag, int *rflag, int *sflag, unsigned long *n_arg, char **path1, char **path2) { @@ -1375,7 +1375,7 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, int err_abort) { char *path1, *path2, *tmp; - int ignore_errors = 0, aflag = 0, fflag = 0, hflag = 0, + int ignore_errors = 0, aflag = 0, fflag = 0, hflag = 0, iflag = 0; int lflag = 0, pflag = 0, rflag = 0, sflag = 0; int cmdnum, i; diff --git a/ssh/sshconnect2.c b/ssh/sshconnect2.c index fc45d40..8c55024 100644 --- a/ssh/sshconnect2.c +++ b/ssh/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.239 2016/02/23 01:34:14 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.240 2016/03/14 16:20:54 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -1174,12 +1174,14 @@ sign_and_send_pubkey(struct ssh *ssh, struct identity *id) "certificate", __func__, id->filename, id->agent_fd != -1 ? " from agent" : ""); } else { - /* XXX maybe verbose/error? */ - debug("%s: no private key for certificate " + debug("%s: no separate private key for certificate " "\"%s\"", __func__, id->filename); +<<<<<<< sshconnect2.c free(blob); sshbuf_free(b); return 0; +======= +>>>>>>> 1.240 } } diff --git a/ssh/sshd_config.5 b/ssh/sshd_config.5 index aa43fba..4f52988 100644 --- a/ssh/sshd_config.5 +++ b/ssh/sshd_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.220 2016/02/17 08:57:34 djm Exp $ -.Dd $Mdocdate: February 17 2016 $ +.\" $OpenBSD: sshd_config.5,v 1.221 2016/03/17 17:19:43 djm Exp $ +.Dd $Mdocdate: March 17 2016 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -1535,7 +1535,7 @@ very same IP address. If this option is set to .Dq no (the default) then only addresses and not host names may be used in -.Pa ~/.ssh/known_hosts +.Pa ~/.ssh/authorized_keys .Cm from and .Nm diff --git a/ssh/sshkey.c b/ssh/sshkey.c index 1e4c3ec..066e028 100644 --- a/ssh/sshkey.c +++ b/ssh/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.31 2015/12/11 04:21:12 mmcc Exp $ */ +/* $OpenBSD: sshkey.c,v 1.32 2016/04/09 12:39:30 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -1931,7 +1931,8 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, #ifdef DEBUG_PK /* XXX */ sshbuf_dump(b, stderr); #endif - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if ((copy = sshbuf_fromb(b)) == NULL) { ret = SSH_ERR_ALLOC_FAIL; goto out; @@ -2084,8 +2085,10 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, goto out; } ret = 0; - *keyp = key; - key = NULL; + if (keyp != NULL) { + *keyp = key; + key = NULL; + } out: sshbuf_free(copy); sshkey_free(key); @@ -3576,12 +3579,10 @@ sshkey_parse_public_rsa1_fileblob(struct sshbuf *blob, /* The encrypted private part is not parsed by this function. */ r = 0; - if (keyp != NULL) + if (keyp != NULL) { *keyp = pub; - else - sshkey_free(pub); - pub = NULL; - + pub = NULL; + } out: sshbuf_free(copy); sshkey_free(pub); @@ -3602,7 +3603,8 @@ sshkey_parse_private_rsa1(struct sshbuf *blob, const char *passphrase, const struct sshcipher *cipher; struct sshkey *prv = NULL; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if (commentp != NULL) *commentp = NULL; @@ -3688,8 +3690,10 @@ sshkey_parse_private_rsa1(struct sshbuf *blob, const char *passphrase, goto out; } r = 0; - *keyp = prv; - prv = NULL; + if (keyp != NULL) { + *keyp = prv; + prv = NULL; + } if (commentp != NULL) { *commentp = comment; comment = NULL; @@ -3714,7 +3718,8 @@ sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type, BIO *bio = NULL; int r; - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if ((bio = BIO_new(BIO_s_mem())) == NULL || sshbuf_len(blob) > INT_MAX) return SSH_ERR_ALLOC_FAIL; @@ -3781,8 +3786,10 @@ sshkey_parse_private_pem_fileblob(struct sshbuf *blob, int type, goto out; } r = 0; - *keyp = prv; - prv = NULL; + if (keyp != NULL) { + *keyp = prv; + prv = NULL; + } out: BIO_free(bio); if (pk != NULL) @@ -3796,7 +3803,8 @@ int sshkey_parse_private_fileblob_type(struct sshbuf *blob, int type, const char *passphrase, struct sshkey **keyp, char **commentp) { - *keyp = NULL; + if (keyp != NULL) + *keyp = NULL; if (commentp != NULL) *commentp = NULL; From 8b51409c635f5bbf0c4f1083e45173f36dfd81ab Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 12 Apr 2016 18:58:13 +1000 Subject: [PATCH 06/14] resolve conflicts --- ssh/session.c | 13 +++---------- ssh/sshconnect2.c | 6 ------ 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/ssh/session.c b/ssh/session.c index 5397a14..554446e 100644 --- a/ssh/session.c +++ b/ssh/session.c @@ -354,20 +354,13 @@ do_authenticated1(struct ssh *ssh) } else { s->screen = 0; } -<<<<<<< session.c if ((r = sshpkt_get_end(ssh)) != 0) - fatal("%s: %s", __func__, ssh_err(r)); - success = session_setup_x11fwd(s); -======= - packet_check_eom(); - if (xauth_valid_string(s->auth_proto) && + error("%s: X11 %s", __func__, ssh_err(r)); + else if (xauth_valid_string(s->auth_proto) && xauth_valid_string(s->auth_data)) success = session_setup_x11fwd(s); - else { - success = 0; + else error("Invalid X11 forwarding data"); - } ->>>>>>> 1.282 if (!success) { free(s->auth_proto); free(s->auth_data); diff --git a/ssh/sshconnect2.c b/ssh/sshconnect2.c index 8c55024..85e2c4b 100644 --- a/ssh/sshconnect2.c +++ b/ssh/sshconnect2.c @@ -1176,12 +1176,6 @@ sign_and_send_pubkey(struct ssh *ssh, struct identity *id) } else { debug("%s: no separate private key for certificate " "\"%s\"", __func__, id->filename); -<<<<<<< sshconnect2.c - free(blob); - sshbuf_free(b); - return 0; -======= ->>>>>>> 1.240 } } From 7cdd0f1dacaefd7cc79e3879d5ccafdb68f8aed6 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 12 Apr 2016 19:47:25 +1000 Subject: [PATCH 07/14] fixup --- ssh/clientloop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ssh/clientloop.c b/ssh/clientloop.c index 80b7474..31ad1cc 100644 --- a/ssh/clientloop.c +++ b/ssh/clientloop.c @@ -1667,7 +1667,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, } else if (need_rekeying) { /* manual rekey request */ debug("need rekeying"); - if ((r = kex_start_rekex(active_state)) != 0) + if ((r = kex_start_rekex(ssh)) != 0) fatal("%s: kex_start_rekex: %s", __func__, ssh_err(r)); need_rekeying = 0; @@ -1707,7 +1707,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, break; /* Do channel operations unless rekeying in progress. */ - if (!ssh_packet_is_rekeying(active_state)) + if (!ssh_packet_is_rekeying(ssh)) channel_after_select(readset, writeset); /* Buffer input from the connection. */ From 1911b6b0c1dd5f2eddd1db77ee53cf4aa87f972a Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 12 Apr 2016 19:47:37 +1000 Subject: [PATCH 08/14] cvs up regress; keep conflicts --- regress/CVS/Entries | 6 +++--- regress/Makefile | 17 +++++++++++++++-- regress/integrity.sh | 4 ++-- regress/proxy-connect.sh | 5 +++-- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/regress/CVS/Entries b/regress/CVS/Entries index c31a235..7b0ba02 100644 --- a/regress/CVS/Entries +++ b/regress/CVS/Entries @@ -1,4 +1,3 @@ -/Makefile/1.82/Result of merge+Mon Jan 11 21:37:50 2016// /host-expand.sh/1.4/Result of merge// D/unittests//// /addrmatch.sh/1.4/Mon Feb 1 06:34:45 2016// @@ -30,7 +29,6 @@ D/unittests//// /forwarding.sh/1.15/Mon Feb 1 06:34:45 2016// /hostkey-agent.sh/1.6/Mon Feb 1 06:34:45 2016// /hostkey-rotate.sh/1.5/Mon Feb 1 06:34:45 2016// -/integrity.sh/1.16/Mon Feb 1 06:34:45 2016// /kextype.sh/1.6/Mon Feb 1 06:34:45 2016// /key-options.sh/1.3/Mon Feb 1 06:34:45 2016// /keygen-change.sh/1.5/Mon Feb 1 06:34:45 2016// @@ -50,7 +48,6 @@ D/unittests//// /principals-command.sh/1.1/Mon Feb 1 06:34:45 2016// /proto-mismatch.sh/1.4/Mon Feb 1 06:34:45 2016// /proto-version.sh/1.5/Mon Feb 1 06:34:45 2016// -/proxy-connect.sh/1.8/Mon Feb 1 06:34:45 2016// /putty-ciphers.sh/1.4/Mon Feb 1 06:34:45 2016// /putty-kex.sh/1.3/Mon Feb 1 06:34:45 2016// /putty-transfer.sh/1.3/Mon Feb 1 06:34:45 2016// @@ -84,3 +81,6 @@ D/unittests//// /transfer.sh/1.3/Mon Feb 1 06:34:45 2016// /try-ciphers.sh/1.25/Mon Feb 1 06:34:45 2016// /yes-head.sh/1.5/Mon Feb 1 06:34:45 2016// +/Makefile/1.84/Result of merge+Tue Apr 12 09:47:07 2016// +/integrity.sh/1.18/Tue Apr 12 09:47:07 2016// +/proxy-connect.sh/1.9/Tue Apr 12 09:47:07 2016// diff --git a/regress/Makefile b/regress/Makefile index 53c95ff..2e918af 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -1,8 +1,15 @@ -# $OpenBSD: Makefile,v 1.82 2015/09/24 06:16:53 djm Exp $ +# $OpenBSD: Makefile,v 1.84 2016/03/04 02:30:36 djm Exp $ +<<<<<<< Makefile #.ifndef SKIP_UNIT #SUBDIR= unittests #.endif +======= +.ifndef SKIP_UNIT +SUBDIR= unittests +.endif +SUBDIR+= misc +>>>>>>> 1.84 REGRESS_FAIL_EARLY= yes REGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 @@ -210,7 +217,13 @@ INTEROP_TARGETS+=t-${t} # Not run by default interop: ${INTEROP_TARGETS} -clean: +.for s in ${SUBDIR} +CLEAN_SUBDIR+=c-${s} +c-${s}: + ${MAKE} -C ${.CURDIR}/${s} clean +.endfor + +clean: ${CLEAN_SUBDIR} rm -f ${CLEANFILES} test -z "${SUDO}" || ${SUDO} rm -f ${SUDO_CLEAN} rm -rf .putty diff --git a/regress/integrity.sh b/regress/integrity.sh index 423ef76..98dba77 100644 --- a/regress/integrity.sh +++ b/regress/integrity.sh @@ -1,4 +1,4 @@ -# $OpenBSD: integrity.sh,v 1.16 2015/03/24 20:22:17 markus Exp $ +# $OpenBSD: integrity.sh,v 1.18 2016/03/04 02:48:06 dtucker Exp $ # Placed in the Public Domain. tid="integrity" @@ -48,7 +48,7 @@ for m in $macs; do fail "ssh -m $m succeeds with bit-flip at $off" fi ecnt=$((ecnt+1)) - out=$(tail -2 $TEST_SSH_LOGFILE | egrep -v "^debug" | \ + out=$(egrep -v "^debug" $TEST_SSH_LOGFILE | tail -2 | \ tr -s '\r\n' '.') case "$out" in Bad?packet*) elen=$((elen+1)); skip=2;; diff --git a/regress/proxy-connect.sh b/regress/proxy-connect.sh index f816962..b7a43fa 100644 --- a/regress/proxy-connect.sh +++ b/regress/proxy-connect.sh @@ -1,4 +1,4 @@ -# $OpenBSD: proxy-connect.sh,v 1.8 2015/03/03 22:35:19 markus Exp $ +# $OpenBSD: proxy-connect.sh,v 1.9 2016/02/17 02:24:17 djm Exp $ # Placed in the Public Domain. tid="proxy connect" @@ -18,7 +18,8 @@ for ps in no yes; do fail "ssh proxyconnect protocol $p privsep=$ps comp=$c failed" fi if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then - fail "bad SSH_CONNECTION protocol $p privsep=$ps comp=$c" + fail "bad SSH_CONNECTION protocol $p privsep=$ps comp=$c: " \ + "$SSH_CONNECTION" fi done done From a35e1c593901758ef97f11bb8f5eecec1838028b Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 12 Apr 2016 19:48:44 +1000 Subject: [PATCH 09/14] resolve conflict --- regress/Makefile | 6 ------ 1 file changed, 6 deletions(-) diff --git a/regress/Makefile b/regress/Makefile index 2e918af..eb2217b 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -1,15 +1,9 @@ # $OpenBSD: Makefile,v 1.84 2016/03/04 02:30:36 djm Exp $ -<<<<<<< Makefile -#.ifndef SKIP_UNIT -#SUBDIR= unittests -#.endif -======= .ifndef SKIP_UNIT SUBDIR= unittests .endif SUBDIR+= misc ->>>>>>> 1.84 REGRESS_FAIL_EARLY= yes REGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 From 3035c39d7459485e9f89cd898b593ad1b42ba065 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 15 Apr 2016 11:47:19 +1000 Subject: [PATCH 10/14] unit tests are in regress/ now --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index d7026c5..2053168 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ # $OpenBSD:$ .if defined(LEAKMALLOC) -SUBDIR= leakmalloc ssh unittests +SUBDIR= leakmalloc sshunittests .else -SUBDIR= ssh unittests regress +SUBDIR= ssh regress .endif .include From 0bad1d42b55aafc92bd965e59816c506c70c03bc Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 15 Apr 2016 11:48:17 +1000 Subject: [PATCH 11/14] cvs up; no conflicts --- ssh/CVS/Entries | 8 ++-- ssh/readconf.c | 112 ++++++++++++++++++++++++++++++++++++++++++----- ssh/readconf.h | 3 +- ssh/ssh.1 | 5 ++- ssh/ssh_config.5 | 23 +++++++++- 5 files changed, 131 insertions(+), 20 deletions(-) diff --git a/ssh/CVS/Entries b/ssh/CVS/Entries index 2ae1849..7db5db7 100644 --- a/ssh/CVS/Entries +++ b/ssh/CVS/Entries @@ -136,7 +136,6 @@ D/moduli-gen//// /poly1305.c/1.3/Mon Feb 1 06:34:45 2016// /poly1305.h/1.4/Mon Feb 1 06:34:45 2016// /progressmeter.h/1.3/Mon Feb 1 06:34:45 2016// -/readconf.h/1.113/Mon Feb 1 06:34:59 2016// /readpass.c/1.51/Mon Feb 1 06:34:45 2016// /rijndael.c/1.20/Mon Feb 1 06:34:45 2016// /rijndael.h/1.14/Mon Feb 1 06:34:45 2016// @@ -221,10 +220,8 @@ D/moduli-gen//// /ssh-keysign.c/1.52/Tue Mar 8 04:13:31 2016// /ssh-pkcs11-helper.c/1.12/Result of merge// /ssh-pkcs11.c/1.22/Tue Mar 8 04:13:31 2016// -/ssh.1/1.369/Tue Mar 8 04:13:31 2016// /ssh.c/1.437/Result of merge+Tue Mar 8 04:13:31 2016// /ssh_config/1.30/Tue Mar 8 04:13:31 2016// -/ssh_config.5/1.228/Tue Mar 8 04:13:31 2016// /sshd.8/1.284/Tue Mar 8 04:13:31 2016// /sshd.c/1.466/Result of merge+Tue Mar 8 04:13:31 2016// /sshd_config/1.98/Tue Mar 8 04:13:31 2016// @@ -249,10 +246,13 @@ D/moduli-gen//// /opacket.c/1.5/Tue Apr 12 07:25:46 2016// /opacket.h/1.7/Tue Apr 12 07:25:46 2016// /pathnames.h/1.25/Tue Apr 12 07:25:46 2016// -/readconf.c/1.251/Tue Apr 12 07:25:46 2016// /session.c/1.282/Result of merge+Tue Apr 12 07:25:46 2016// /sftp-client.c/1.122/Tue Apr 12 07:25:46 2016// /sftp.c/1.173/Tue Apr 12 07:25:46 2016// /sshconnect2.c/1.240/Result of merge+Tue Apr 12 07:25:46 2016// /sshd_config.5/1.221/Tue Apr 12 07:25:46 2016// /sshkey.c/1.32/Result of merge// +/readconf.c/1.252/Fri Apr 15 01:47:48 2016// +/readconf.h/1.114/Fri Apr 15 01:47:48 2016// +/ssh.1/1.370/Fri Apr 15 01:47:48 2016// +/ssh_config.5/1.229/Fri Apr 15 01:47:48 2016// diff --git a/ssh/readconf.c b/ssh/readconf.c index 91a8e00..a407bab 100644 --- a/ssh/readconf.c +++ b/ssh/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.251 2016/04/06 06:42:17 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.252 2016/04/15 00:30:19 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -114,11 +115,18 @@ */ +static int read_config_file_depth(const char *filename, struct passwd *pw, + const char *host, const char *original_host, Options *options, + int flags, int *activep, int depth); +static int process_config_line_depth(Options *options, struct passwd *pw, + const char *host, const char *original_host, char *line, + const char *filename, int linenum, int *activep, int flags, int depth); + /* Keyword tokens. */ typedef enum { oBadOption, - oHost, oMatch, + oHost, oMatch, oInclude, oForwardAgent, oForwardX11, oForwardX11Trusted, oForwardX11Timeout, oGatewayPorts, oExitOnForwardFailure, oPasswordAuthentication, oRSAAuthentication, @@ -247,6 +255,7 @@ static struct { { "controlmaster", oControlMaster }, { "controlpersist", oControlPersist }, { "hashknownhosts", oHashKnownHosts }, + { "include", oInclude }, { "tunnel", oTunnel }, { "tunneldevice", oTunnelDevice }, { "localcommand", oLocalCommand }, @@ -772,22 +781,32 @@ static const struct multistate multistate_canonicalizehostname[] = { * Processes a single option line as used in the configuration files. This * only sets those values that have not already been set. */ -#define WHITESPACE " \t\r\n" int process_config_line(Options *options, struct passwd *pw, const char *host, const char *original_host, char *line, const char *filename, int linenum, int *activep, int flags) +{ + return process_config_line_depth(options, pw, host, original_host, + line, filename, linenum, activep, flags, 0); +} + +#define WHITESPACE " \t\r\n" +static int +process_config_line_depth(Options *options, struct passwd *pw, const char *host, + const char *original_host, char *line, const char *filename, + int linenum, int *activep, int flags, int depth) { char *s, **charptr, *endofnumber, *keyword, *arg, *arg2; char **cpptr, fwdarg[256]; u_int i, *uintptr, max_entries = 0; - int negated, opcode, *intptr, value, value2, cmdline = 0; + int r, oactive, negated, opcode, *intptr, value, value2, cmdline = 0; LogLevel *log_level_ptr; long long val64; size_t len; struct Forward fwd; const struct multistate *multistate_ptr; struct allowed_cname *cname; + glob_t gl; if (activep == NULL) { /* We are processing a command line directive */ cmdline = 1; @@ -1247,6 +1266,8 @@ process_config_line(Options *options, struct passwd *pw, const char *host, *activep = 0; arg2 = NULL; while ((arg = strdelim(&s)) != NULL && *arg != '\0') { + if ((flags & SSHCONF_NEVERMATCH) != 0) + break; negated = *arg == '!'; if (negated) arg++; @@ -1279,7 +1300,7 @@ process_config_line(Options *options, struct passwd *pw, const char *host, if (value < 0) fatal("%.200s line %d: Bad Match condition", filename, linenum); - *activep = value; + *activep = (flags & SSHCONF_NEVERMATCH) ? 0 : value; break; case oEscapeChar: @@ -1407,6 +1428,63 @@ process_config_line(Options *options, struct passwd *pw, const char *host, intptr = &options->visual_host_key; goto parse_flag; + case oInclude: + if (cmdline) + fatal("Include directive not supported as a " + "command-line option"); + value = 0; + while ((arg = strdelim(&s)) != NULL && *arg != '\0') { + /* + * Ensure all paths are anchored. User configuration + * files may begin with '~/' but system configurations + * must not. If the path is relative, then treat it + * as living in ~/.ssh for user configurations or + * /etc/ssh for system ones. + */ + if (*arg == '~' && (flags & SSHCONF_USERCONF) == 0) + fatal("%.200s line %d: bad include path %s.", + filename, linenum, arg); + if (*arg != '/' && *arg != '~') { + xasprintf(&arg2, "%s/%s", + (flags & SSHCONF_USERCONF) ? + "~/" _PATH_SSH_USER_DIR : SSHDIR, arg); + } else + arg2 = xstrdup(arg); + memset(&gl, 0, sizeof(gl)); + r = glob(arg2, GLOB_TILDE, NULL, &gl); + if (r == GLOB_NOMATCH) { + debug("%.200s line %d: include %s matched no " + "files",filename, linenum, arg2); + continue; + } else if (r != 0 || gl.gl_pathc < 0) + fatal("%.200s line %d: glob failed for %s.", + filename, linenum, arg2); + free(arg2); + oactive = *activep; + for (i = 0; i < (u_int)gl.gl_pathc; i++) { + debug3("%.200s line %d: Including file %s " + "depth %d%s", filename, linenum, + gl.gl_pathv[i], depth, + oactive ? "" : " (parse only)"); + r = read_config_file_depth(gl.gl_pathv[i], + pw, host, original_host, options, + flags | SSHCONF_CHECKPERM | + (oactive ? 0 : SSHCONF_NEVERMATCH), + activep, depth + 1); + /* + * don't let Match in includes clobber the + * containing file's Match state. + */ + *activep = oactive; + if (r != 1) + value = -1; + } + globfree(&gl); + } + if (value != 0) + return value; + break; + case oIPQoS: arg = strdelim(&s); if ((value = parse_ipqos(arg)) == -1) @@ -1565,22 +1643,35 @@ process_config_line(Options *options, struct passwd *pw, const char *host, return 0; } - /* * Reads the config file and modifies the options accordingly. Options * should already be initialized before this call. This never returns if * there is an error. If the file does not exist, this returns 0. */ - int read_config_file(const char *filename, struct passwd *pw, const char *host, const char *original_host, Options *options, int flags) +{ + int active = 1; + + return read_config_file_depth(filename, pw, host, original_host, + options, flags, &active, 0); +} + +#define READCONF_MAX_DEPTH 16 +static int +read_config_file_depth(const char *filename, struct passwd *pw, + const char *host, const char *original_host, Options *options, + int flags, int *activep, int depth) { FILE *f; char line[1024]; - int active, linenum; + int linenum; int bad_options = 0; + if (depth < 0 || depth > READCONF_MAX_DEPTH) + fatal("Too many recursive configuration includes"); + if ((f = fopen(filename, "r")) == NULL) return 0; @@ -1600,13 +1691,12 @@ read_config_file(const char *filename, struct passwd *pw, const char *host, * Mark that we are now processing the options. This flag is turned * on/off by Host specifications. */ - active = 1; linenum = 0; while (fgets(line, sizeof(line), f)) { /* Update line number counter. */ linenum++; - if (process_config_line(options, pw, host, original_host, - line, filename, linenum, &active, flags) != 0) + if (process_config_line_depth(options, pw, host, original_host, + line, filename, linenum, activep, flags, depth) != 0) bad_options++; } fclose(f); diff --git a/ssh/readconf.h b/ssh/readconf.h index c84d068..5f44510 100644 --- a/ssh/readconf.h +++ b/ssh/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.113 2016/01/14 16:17:40 markus Exp $ */ +/* $OpenBSD: readconf.h,v 1.114 2016/04/15 00:30:19 djm Exp $ */ /* * Author: Tatu Ylonen @@ -179,6 +179,7 @@ typedef struct { #define SSHCONF_CHECKPERM 1 /* check permissions on config file */ #define SSHCONF_USERCONF 2 /* user provided config file not system */ #define SSHCONF_POSTCANON 4 /* After hostname canonicalisation */ +#define SSHCONF_NEVERMATCH 8 /* Match/Host never matches; internal only */ #define SSH_UPDATE_HOSTKEYS_NO 0 #define SSH_UPDATE_HOSTKEYS_YES 1 diff --git a/ssh/ssh.1 b/ssh/ssh.1 index cc53343..85309ec 100644 --- a/ssh/ssh.1 +++ b/ssh/ssh.1 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.369 2016/02/17 07:38:19 jmc Exp $ -.Dd $Mdocdate: February 17 2016 $ +.\" $OpenBSD: ssh.1,v 1.370 2016/04/15 00:30:19 djm Exp $ +.Dd $Mdocdate: April 15 2016 $ .Dt SSH 1 .Os .Sh NAME @@ -503,6 +503,7 @@ For full details of the options listed below, and their possible values, see .It HostName .It IdentityFile .It IdentitiesOnly +.It Include .It IPQoS .It KbdInteractiveAuthentication .It KbdInteractiveDevices diff --git a/ssh/ssh_config.5 b/ssh/ssh_config.5 index caf13a6..880f110 100644 --- a/ssh/ssh_config.5 +++ b/ssh/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.228 2016/02/20 23:01:46 sobrado Exp $ -.Dd $Mdocdate: February 20 2016 $ +.\" $OpenBSD: ssh_config.5,v 1.229 2016/04/15 00:30:19 djm Exp $ +.Dd $Mdocdate: April 15 2016 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -1019,6 +1019,25 @@ It is recommended that .Cm IgnoreUnknown be listed early in the configuration file as it will not be applied to unknown options that appear before it. +.It Cm Include +Include the specified configuration file(s). +Multiple path names may be specified and each pathname may contain +.Xr glob 3 +wildcards and, for user configurations, shell-like +.Dq ~ +references to user home directories. +Files without absolute paths are assumed to be in +.Pa ~/.ssh +if included in a user configurations file or +.Pa /etc/ssh +if included from the system configuration file. +.Cm Include +directive may appear inside a +.Cm Match +or +.Cm Host +block +to perform conditional inclusion. .It Cm IPQoS Specifies the IPv4 type-of-service or DSCP class for connections. Accepted values are From 143da5969b2d968ff92531a7d2b164c6872f48a2 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 3 May 2016 18:33:54 +1000 Subject: [PATCH 12/14] cvs update; keep conflicts --- ssh/CVS/Entries | 366 +++++++++++++++--------------- ssh/auth2-chall.c | 8 +- ssh/auth2.c | 13 +- ssh/dh.c | 83 ++++++- ssh/dh.h | 4 +- ssh/kex.c | 7 +- ssh/kex.h | 17 +- ssh/kexc25519.c | 6 +- ssh/kexdh.c | 9 +- ssh/kexdhc.c | 10 +- ssh/kexdhs.c | 10 +- ssh/log.c | 4 +- ssh/moduli-gen/CVS/Entries | 16 +- ssh/monitor.c | 50 +++- ssh/myproposal.h | 8 +- ssh/scp/CVS/Entries | 2 +- ssh/servconf.c | 7 +- ssh/sftp-client.c | 5 +- ssh/sftp-server/CVS/Entries | 2 +- ssh/sftp/CVS/Entries | 2 +- ssh/ssh-add/CVS/Entries | 2 +- ssh/ssh-agent.c | 15 +- ssh/ssh-agent/CVS/Entries | 2 +- ssh/ssh-dss.c | 5 +- ssh/ssh-ecdsa.c | 5 +- ssh/ssh-ed25519.c | 5 +- ssh/ssh-keygen.c | 18 +- ssh/ssh-keygen/CVS/Entries | 2 +- ssh/ssh-keyscan.c | 5 +- ssh/ssh-keyscan/CVS/Entries | 2 +- ssh/ssh-keysign/CVS/Entries | 2 +- ssh/ssh-pkcs11-helper/CVS/Entries | 2 +- ssh/ssh-rsa.c | 5 +- ssh/ssh.c | 8 +- ssh/ssh_api.c | 8 +- ssh/ssh_config.5 | 8 +- ssh/sshbuf-misc.c | 25 +- ssh/sshbuf.h | 9 +- ssh/sshconnect2.c | 23 +- ssh/sshd.c | 30 ++- ssh/sshd_config.5 | 8 +- ssh/sshkey.c | 6 +- ssh/sshkey.h | 4 +- 43 files changed, 546 insertions(+), 282 deletions(-) diff --git a/ssh/CVS/Entries b/ssh/CVS/Entries index 7db5db7..add6177 100644 --- a/ssh/CVS/Entries +++ b/ssh/CVS/Entries @@ -27,11 +27,9 @@ D/moduli-gen//// /auth2-none.c/1.18/Result of merge// /monitor.h/1.19/Result of merge// /auth2-gss.c/1.22/Result of merge// -/auth2.c/1.135/Result of merge// /dispatch.h/1.12/Result of merge// /gss-genr.c/1.23/Result of merge// /kexc25519c.c/1.7/Result of merge// -/kexdhc.c/1.18/Result of merge// /kexecdhc.c/1.10/Result of merge// /Makefile.inc/1.50/Result of merge// /auth-rsa.c/1.90/Result of merge// @@ -45,148 +43,18 @@ D/moduli-gen//// /compat.c/1.97/Result of merge// /servconf.h/1.120/Result of merge// /auth-bsdauth.c/1.14/Result of merge// -/auth2-chall.c/1.43/Result of merge// /kexc25519s.c/1.10/Result of merge// -/kexdhs.c/1.23/Result of merge// /kexecdhs.c/1.15/Result of merge// /kexgexs.c/1.26/Result of merge// /ssh-pkcs11-client.c/1.6/Result of merge// -/ssh-rsa.c/1.58/Result of merge+Mon Jan 11 11:16:25 2016// -/ssh_api.c/1.5/Result of merge+Mon Jan 11 11:16:26 2016// -/sshbuf.h/1.6/Result of merge// /sshconnect.h/1.29/Result of merge// /sshconnect1.c/1.78/Result of merge+Mon Jan 11 11:16:26 2016// /sshlogin.c/1.32/Result of merge// -/LICENCE/1.19/Mon Feb 1 06:34:45 2016// -/OVERVIEW/1.12/Mon Feb 1 06:34:45 2016// -/PROTOCOL.agent/1.8/Mon Feb 1 06:34:45 2016// -/PROTOCOL.certkeys/1.9/Mon Feb 1 06:34:45 2016// -/PROTOCOL.chacha20poly1305/1.2/Mon Feb 1 06:34:45 2016// -/PROTOCOL.key/1.1/Mon Feb 1 06:34:45 2016// -/PROTOCOL.krl/1.3/Mon Feb 1 06:34:45 2016// -/PROTOCOL.mux/1.10/Mon Feb 1 06:34:45 2016// -/README/1.7/Mon Feb 1 06:34:45 2016// -/addrmatch.c/1.10/Mon Feb 1 06:34:45 2016// -/atomicio.c/1.27/Mon Feb 1 06:34:45 2016// -/atomicio.h/1.11/Mon Feb 1 06:34:45 2016// /auth-krb5.c/1.21/Result of merge// -/auth-options.h/1.21/Mon Feb 1 06:34:45 2016// /auth2-pubkey.c/1.55/Result of merge+Mon Feb 1 06:34:58 2016// -/authfd.c/1.100/Mon Feb 1 06:34:45 2016// -/authfd.h/1.39/Mon Feb 1 06:34:45 2016// -/authfile.h/1.21/Mon Feb 1 06:34:45 2016// -/bitmap.c/1.4/Mon Feb 1 06:34:45 2016// -/bitmap.h/1.1/Mon Feb 1 06:34:45 2016// -/blocks.c/1.3/Mon Feb 1 06:34:45 2016// -/chacha.c/1.1/Mon Feb 1 06:34:45 2016// -/chacha.h/1.3/Mon Feb 1 06:34:45 2016// -/cipher-3des1.c/1.12/Mon Feb 1 06:34:45 2016// -/cipher-aesctr.c/1.2/Mon Feb 1 06:34:45 2016// -/cipher-aesctr.h/1.1/Mon Feb 1 06:34:45 2016// -/cipher-bf1.c/1.7/Mon Feb 1 06:34:45 2016// -/cipher-chachapoly.c/1.7/Mon Feb 1 06:34:45 2016// -/cipher-chachapoly.h/1.4/Mon Feb 1 06:34:45 2016// -/cipher.c/1.101/Mon Feb 1 06:34:45 2016// -/cleanup.c/1.5/Mon Feb 1 06:34:45 2016// /clientloop.h/1.32/Result of merge+Mon Feb 1 06:34:58 2016// -/crc32.c/1.11/Mon Feb 1 06:34:45 2016// -/crc32.h/1.15/Mon Feb 1 06:34:45 2016// -/crypto_api.h/1.3/Mon Feb 1 06:34:45 2016// -/deattack.c/1.32/Mon Feb 1 06:34:45 2016// -/deattack.h/1.11/Mon Feb 1 06:34:45 2016// -/dh.h/1.14/Mon Feb 1 06:34:45 2016// -/digest-libc.c/1.5/Mon Feb 1 06:34:45 2016// -/digest-openssl.c/1.5/Mon Feb 1 06:34:45 2016// -/dns.c/1.35/Mon Feb 1 06:34:45 2016// -/dns.h/1.15/Mon Feb 1 06:34:45 2016// -/ed25519.c/1.3/Mon Feb 1 06:34:45 2016// -/fatal.c/1.7/Mon Feb 1 06:34:45 2016// -/fe25519.c/1.3/Mon Feb 1 06:34:45 2016// -/fe25519.h/1.3/Mon Feb 1 06:34:45 2016// -/ge25519.c/1.3/Mon Feb 1 06:34:45 2016// -/ge25519.h/1.4/Mon Feb 1 06:34:45 2016// -/ge25519_base.data/1.3/Mon Feb 1 06:34:45 2016// -/groupaccess.c/1.16/Mon Feb 1 06:34:45 2016// -/groupaccess.h/1.8/Mon Feb 1 06:34:45 2016// -/hash.c/1.3/Mon Feb 1 06:34:45 2016// -/hmac.c/1.12/Mon Feb 1 06:34:45 2016// -/hmac.h/1.9/Mon Feb 1 06:34:45 2016// -/hostfile.c/1.66/Mon Feb 1 06:34:45 2016// -/hostfile.h/1.24/Mon Feb 1 06:34:45 2016// -/kexc25519.c/1.9/Mon Feb 1 06:34:45 2016// -/kexdh.c/1.25/Mon Feb 1 06:34:45 2016// -/kexecdh.c/1.6/Mon Feb 1 06:34:45 2016// -/kexgex.c/1.29/Mon Feb 1 06:34:45 2016// -/krl.c/1.37/Mon Feb 1 06:34:45 2016// -/krl.h/1.5/Mon Feb 1 06:34:45 2016// -/log.c/1.46/Mon Feb 1 06:34:45 2016// -/log.h/1.20/Mon Feb 1 06:34:45 2016// -/mac.c/1.32/Mon Feb 1 06:34:45 2016// -/mac.h/1.9/Mon Feb 1 06:34:45 2016// -/match.h/1.16/Mon Feb 1 06:34:45 2016// -/moduli.c/1.30/Mon Feb 1 06:34:45 2016// -/monitor_fdpass.h/1.4/Mon Feb 1 06:34:45 2016// -/monitor_mm.c/1.21/Mon Feb 1 06:34:45 2016// -/monitor_mm.h/1.6/Mon Feb 1 06:34:45 2016// -/msg.c/1.16/Mon Feb 1 06:34:45 2016// -/msg.h/1.5/Mon Feb 1 06:34:45 2016// -/nchan.ms/1.8/Mon Feb 1 06:34:45 2016// -/nchan2.ms/1.4/Mon Feb 1 06:34:45 2016// -/pkcs11.h/1.3/Mon Feb 1 06:34:45 2016// -/poly1305.c/1.3/Mon Feb 1 06:34:45 2016// -/poly1305.h/1.4/Mon Feb 1 06:34:45 2016// -/progressmeter.h/1.3/Mon Feb 1 06:34:45 2016// -/readpass.c/1.51/Mon Feb 1 06:34:45 2016// -/rijndael.c/1.20/Mon Feb 1 06:34:45 2016// -/rijndael.h/1.14/Mon Feb 1 06:34:45 2016// -/rsa.c/1.32/Mon Feb 1 06:34:45 2016// -/rsa.h/1.17/Mon Feb 1 06:34:45 2016// -/sandbox-pledge.c/1.1/Mon Feb 1 06:34:45 2016// -/sandbox-rlimit.c/1.3/Mon Feb 1 06:34:45 2016// -/sandbox-systrace.c/1.18/Mon Feb 1 06:34:45 2016// -/sc25519.c/1.3/Mon Feb 1 06:34:46 2016// -/sc25519.h/1.3/Mon Feb 1 06:34:46 2016// -/scp.1/1.68/Mon Feb 1 06:34:46 2016// -/sftp-client.h/1.27/Mon Feb 1 06:34:46 2016// -/sftp-common.c/1.28/Mon Feb 1 06:34:46 2016// -/sftp-common.h/1.12/Mon Feb 1 06:34:46 2016// -/sftp-glob.c/1.27/Mon Feb 1 06:34:46 2016// -/sftp-server.8/1.27/Mon Feb 1 06:34:46 2016// -/sftp.1/1.102/Mon Feb 1 06:34:46 2016// -/sftp.h/1.9/Mon Feb 1 06:34:46 2016// -/smult_curve25519_ref.c/1.2/Mon Feb 1 06:34:46 2016// -/ssh-add.1/1.62/Mon Feb 1 06:34:46 2016// -/ssh-agent.1/1.62/Mon Feb 1 06:34:46 2016// -/ssh-dss.c/1.34/Mon Feb 1 06:34:46 2016// -/ssh-ecdsa.c/1.12/Mon Feb 1 06:34:46 2016// -/ssh-ed25519.c/1.6/Mon Feb 1 06:34:46 2016// -/ssh-keyscan.1/1.38/Mon Feb 1 06:34:46 2016// -/ssh-pkcs11-helper.8/1.4/Mon Feb 1 06:34:46 2016// -/ssh-pkcs11.h/1.4/Mon Feb 1 06:34:46 2016// -/ssh-sandbox.h/1.1/Mon Feb 1 06:34:46 2016// -/ssh.h/1.83/Mon Feb 1 06:34:46 2016// -/ssh1.h/1.6/Mon Feb 1 06:34:46 2016// -/ssh2.h/1.17/Mon Feb 1 06:34:59 2016// -/ssh_api.h/1.1/Mon Feb 1 06:34:46 2016// -/sshbuf-getput-basic.c/1.5/Mon Feb 1 06:34:46 2016// -/sshbuf-getput-crypto.c/1.5/Mon Feb 1 06:34:59 2016// -/sshbuf-misc.c/1.5/Mon Feb 1 06:34:46 2016// /sshbuf.c/1.6/Result of merge+Mon Feb 1 06:34:59 2016// /sshconnect.c/1.271/Result of merge// -/ssherr.c/1.5/Mon Feb 1 06:34:46 2016// -/ssherr.h/1.3/Mon Feb 1 06:34:46 2016// -/sshkey.h/1.12/Mon Feb 1 06:34:46 2016// -/sshlogin.h/1.8/Mon Feb 1 06:34:46 2016// -/sshpty.c/1.30/Mon Feb 1 06:34:46 2016// -/sshpty.h/1.12/Mon Feb 1 06:34:46 2016// -/sshtty.c/1.14/Mon Feb 1 06:34:46 2016// -/ttymodes.h/1.14/Mon Feb 1 06:34:46 2016// -/uidswap.c/1.39/Mon Feb 1 06:34:46 2016// -/uidswap.h/1.13/Mon Feb 1 06:34:46 2016// -/umac.h/1.3/Mon Feb 1 06:34:46 2016// -/uuencode.c/1.28/Mon Feb 1 06:34:46 2016// -/uuencode.h/1.14/Mon Feb 1 06:34:46 2016// -/verify.c/1.3/Mon Feb 1 06:34:46 2016// /auth-options.c/1.71/Result of merge+Tue Mar 8 04:13:30 2016// /auth-rh-rsa.c/1.45/Result of merge+Tue Mar 8 04:13:30 2016// /auth-rhosts.c/1.47/Result of merge+Tue Mar 8 04:13:30 2016// @@ -195,64 +63,196 @@ D/moduli-gen//// /auth2-hostbased.c/1.26/Result of merge+Tue Mar 8 04:13:31 2016// /channels.c/1.350/Result of merge+Tue Mar 8 04:13:31 2016// /clientloop.c/1.284/Result of merge+Tue Mar 8 04:13:31 2016// -/kex.c/1.117/Result of merge// -/kex.h/1.76/Result of merge// -/monitor.c/1.158/Result of merge+Tue Mar 8 04:13:31 2016// -/monitor_fdpass.c/1.21/Tue Mar 8 04:13:31 2016// /monitor_wrap.c/1.88/Result of merge+Tue Mar 8 04:13:31 2016// /monitor_wrap.h/1.30/Result of merge+Tue Mar 8 04:13:31 2016// -/myproposal.h/1.50/Tue Mar 8 04:13:31 2016// /packet.c/1.230/Result of merge// /packet.h/1.71/Result of merge+Tue Mar 8 04:13:31 2016// -/progressmeter.c/1.42/Tue Mar 8 04:13:31 2016// -/scp.c/1.185/Tue Mar 8 04:13:31 2016// -/servconf.c/1.286/Result of merge+Tue Mar 8 04:13:31 2016// /serverloop.c/1.184/Result of merge+Tue Mar 8 04:13:31 2016// /session.h/1.32/Result of merge// -/sftp-server-main.c/1.5/Tue Mar 8 04:13:31 2016// -/sftp-server.c/1.109/Tue Mar 8 04:13:31 2016// -/ssh-add.c/1.128/Tue Mar 8 04:13:31 2016// -/ssh-agent.c/1.212/Tue Mar 8 04:13:31 2016// -/ssh-keygen.1/1.130/Tue Mar 8 04:13:31 2016// -/ssh-keygen.c/1.288/Tue Mar 8 04:13:31 2016// -/ssh-keyscan.c/1.105/Result of merge// -/ssh-keysign.8/1.15/Tue Mar 8 04:13:31 2016// -/ssh-keysign.c/1.52/Tue Mar 8 04:13:31 2016// /ssh-pkcs11-helper.c/1.12/Result of merge// -/ssh-pkcs11.c/1.22/Tue Mar 8 04:13:31 2016// -/ssh.c/1.437/Result of merge+Tue Mar 8 04:13:31 2016// -/ssh_config/1.30/Tue Mar 8 04:13:31 2016// -/sshd.8/1.284/Tue Mar 8 04:13:31 2016// -/sshd.c/1.466/Result of merge+Tue Mar 8 04:13:31 2016// -/sshd_config/1.98/Tue Mar 8 04:13:31 2016// -/version.h/1.76/Tue Mar 8 04:13:31 2016// -/xmalloc.c/1.33/Tue Mar 8 04:13:31 2016// -/xmalloc.h/1.16/Tue Mar 8 04:13:31 2016// -/PROTOCOL/1.30/Tue Apr 12 07:25:46 2016// -/authfile.c/1.121/Tue Apr 12 07:25:46 2016// -/bufaux.c/1.60/Tue Apr 12 07:25:46 2016// -/bufbn.c/1.12/Tue Apr 12 07:25:46 2016// -/bufec.c/1.4/Tue Apr 12 07:25:46 2016// -/buffer.c/1.36/Tue Apr 12 07:25:46 2016// -/buffer.h/1.25/Tue Apr 12 07:25:46 2016// -/canohost.c/1.73/Tue Mar 8 04:19:31 2016// -/canohost.h/1.12/Tue Mar 8 04:19:51 2016// -/dh.c/1.59/Tue Apr 12 07:25:46 2016// -/key.c/1.129/Tue Apr 12 07:25:46 2016// -/key.h/1.49/Tue Apr 12 07:25:46 2016// /misc.c/1.104/Result of merge// -/misc.h/1.56/Tue Apr 12 07:25:46 2016// /mux.c/1.59/Result of merge// -/opacket.c/1.5/Tue Apr 12 07:25:46 2016// -/opacket.h/1.7/Tue Apr 12 07:25:46 2016// -/pathnames.h/1.25/Tue Apr 12 07:25:46 2016// /session.c/1.282/Result of merge+Tue Apr 12 07:25:46 2016// -/sftp-client.c/1.122/Tue Apr 12 07:25:46 2016// -/sftp.c/1.173/Tue Apr 12 07:25:46 2016// -/sshconnect2.c/1.240/Result of merge+Tue Apr 12 07:25:46 2016// -/sshd_config.5/1.221/Tue Apr 12 07:25:46 2016// -/sshkey.c/1.32/Result of merge// -/readconf.c/1.252/Fri Apr 15 01:47:48 2016// -/readconf.h/1.114/Fri Apr 15 01:47:48 2016// -/ssh.1/1.370/Fri Apr 15 01:47:48 2016// -/ssh_config.5/1.229/Fri Apr 15 01:47:48 2016// +/LICENCE/1.19/Wed Apr 27 11:45:39 2016// +/OVERVIEW/1.12/Tue May 3 08:32:34 2016// +/PROTOCOL/1.30/Tue May 3 08:32:34 2016// +/PROTOCOL.agent/1.8/Tue May 3 08:32:34 2016// +/PROTOCOL.certkeys/1.9/Wed Apr 27 11:45:39 2016// +/PROTOCOL.chacha20poly1305/1.2/Wed Apr 27 11:45:39 2016// +/PROTOCOL.key/1.1/Wed Apr 27 11:45:39 2016// +/PROTOCOL.krl/1.3/Tue May 3 08:32:34 2016// +/PROTOCOL.mux/1.10/Tue May 3 08:32:34 2016// +/README/1.7/Wed Apr 27 11:45:39 2016// +/addrmatch.c/1.10/Tue May 3 08:32:34 2016// +/atomicio.c/1.27/Wed Apr 27 11:45:39 2016// +/atomicio.h/1.11/Wed Apr 27 11:45:39 2016// +/auth-options.h/1.21/Wed Apr 27 11:45:39 2016// +/auth2-chall.c/1.44/Result of merge+Tue May 3 08:33:33 2016// +/auth2.c/1.136/Result of merge+Tue May 3 08:33:33 2016// +/authfd.c/1.100/Tue May 3 08:32:34 2016// +/authfd.h/1.39/Tue May 3 08:32:34 2016// +/authfile.c/1.121/Tue May 3 08:32:34 2016// +/authfile.h/1.21/Wed Apr 27 11:45:39 2016// +/bitmap.c/1.4/Tue May 3 08:32:34 2016// +/bitmap.h/1.1/Wed Apr 27 11:45:39 2016// +/blocks.c/1.3/Wed Apr 27 11:45:39 2016// +/bufaux.c/1.60/Tue May 3 08:33:33 2016// +/bufbn.c/1.12/Tue May 3 08:33:33 2016// +/bufec.c/1.4/Tue May 3 08:33:33 2016// +/buffer.c/1.36/Tue May 3 08:33:33 2016// +/buffer.h/1.25/Tue May 3 08:33:33 2016// +/canohost.c/1.73/Tue May 3 08:32:34 2016// +/canohost.h/1.12/Tue May 3 08:32:34 2016// +/chacha.c/1.1/Wed Apr 27 11:45:39 2016// +/chacha.h/1.3/Wed Apr 27 11:45:39 2016// +/cipher-3des1.c/1.12/Wed Apr 27 11:45:39 2016// +/cipher-aesctr.c/1.2/Wed Apr 27 11:45:39 2016// +/cipher-aesctr.h/1.1/Wed Apr 27 11:45:39 2016// +/cipher-bf1.c/1.7/Wed Apr 27 11:45:39 2016// +/cipher-chachapoly.c/1.7/Wed Apr 27 11:45:39 2016// +/cipher-chachapoly.h/1.4/Wed Apr 27 11:45:39 2016// +/cipher.c/1.101/Tue May 3 08:32:34 2016// +/cleanup.c/1.5/Wed Apr 27 11:45:39 2016// +/crc32.c/1.11/Wed Apr 27 11:45:39 2016// +/crc32.h/1.15/Wed Apr 27 11:45:39 2016// +/crypto_api.h/1.3/Wed Apr 27 11:45:39 2016// +/deattack.c/1.32/Tue May 3 08:32:34 2016// +/deattack.h/1.11/Tue May 3 08:32:34 2016// +/dh.c/1.60/Tue May 3 08:33:33 2016// +/dh.h/1.15/Tue May 3 08:33:33 2016// +/digest-libc.c/1.5/Tue May 3 08:32:34 2016// +/digest-openssl.c/1.5/Wed Apr 27 11:45:39 2016// +/dns.c/1.35/Tue May 3 08:32:34 2016// +/dns.h/1.15/Tue May 3 08:32:34 2016// +/ed25519.c/1.3/Wed Apr 27 11:45:39 2016// +/fatal.c/1.7/Wed Apr 27 11:45:39 2016// +/fe25519.c/1.3/Wed Apr 27 11:45:39 2016// +/fe25519.h/1.3/Wed Apr 27 11:45:39 2016// +/ge25519.c/1.3/Wed Apr 27 11:45:39 2016// +/ge25519.h/1.4/Tue May 3 08:32:34 2016// +/ge25519_base.data/1.3/Wed Apr 27 11:45:39 2016// +/groupaccess.c/1.16/Tue May 3 08:32:34 2016// +/groupaccess.h/1.8/Wed Apr 27 11:45:39 2016// +/hash.c/1.3/Wed Apr 27 11:45:39 2016// +/hmac.c/1.12/Tue May 3 08:32:34 2016// +/hmac.h/1.9/Wed Apr 27 11:45:39 2016// +/hostfile.c/1.66/Tue May 3 08:32:34 2016// +/hostfile.h/1.24/Tue May 3 08:32:34 2016// +/kex.c/1.118/Result of merge// +/kex.h/1.78/Result of merge// +/kexc25519.c/1.10/Tue May 3 08:33:33 2016// +/kexdh.c/1.26/Tue May 3 08:33:33 2016// +/kexdhc.c/1.19/Result of merge// +/kexdhs.c/1.24/Result of merge// +/kexecdh.c/1.6/Tue May 3 08:32:34 2016// +/kexgex.c/1.29/Tue May 3 08:32:34 2016// +/key.c/1.130/Tue May 3 08:33:34 2016// +/key.h/1.49/Tue May 3 08:33:34 2016// +/krl.c/1.37/Tue May 3 08:32:34 2016// +/krl.h/1.5/Tue May 3 08:32:34 2016// +/log.c/1.47/Tue May 3 08:33:34 2016// +/log.h/1.20/Wed Apr 27 11:45:39 2016// +/mac.c/1.32/Wed Apr 27 11:45:39 2016// +/mac.h/1.9/Wed Apr 27 11:45:39 2016// +/match.h/1.16/Tue May 3 08:32:34 2016// +/misc.h/1.56/Tue May 3 08:32:34 2016// +/moduli.c/1.30/Tue May 3 08:32:34 2016// +/monitor.c/1.160/Result of merge+Tue May 3 08:33:34 2016// +/monitor_fdpass.c/1.21/Tue May 3 08:32:34 2016// +/monitor_fdpass.h/1.4/Wed Apr 27 11:45:39 2016// +/monitor_mm.c/1.21/Tue May 3 08:32:34 2016// +/monitor_mm.h/1.6/Wed Apr 27 11:45:39 2016// +/msg.c/1.16/Wed Apr 27 11:45:39 2016// +/msg.h/1.5/Wed Apr 27 11:45:39 2016// +/myproposal.h/1.51/Tue May 3 08:33:34 2016// +/nchan.ms/1.8/Wed Apr 27 11:45:39 2016// +/nchan2.ms/1.4/Wed Apr 27 11:45:39 2016// +/opacket.c/1.5/Tue May 3 08:33:34 2016// +/opacket.h/1.7/Tue May 3 08:33:34 2016// +/pathnames.h/1.25/Tue May 3 08:32:34 2016// +/pkcs11.h/1.3/Wed Apr 27 11:45:39 2016// +/poly1305.c/1.3/Wed Apr 27 11:45:39 2016// +/poly1305.h/1.4/Wed Apr 27 11:45:39 2016// +/progressmeter.c/1.42/Tue May 3 08:32:34 2016// +/progressmeter.h/1.3/Wed Apr 27 11:45:39 2016// +/readconf.c/1.252/Tue May 3 08:32:34 2016// +/readconf.h/1.114/Tue May 3 08:32:34 2016// +/readpass.c/1.51/Tue May 3 08:32:34 2016// +/rijndael.c/1.20/Tue May 3 08:32:34 2016// +/rijndael.h/1.14/Wed Apr 27 11:45:39 2016// +/rsa.c/1.32/Wed Apr 27 11:45:39 2016// +/rsa.h/1.17/Wed Apr 27 11:45:39 2016// +/sandbox-pledge.c/1.1/Tue May 3 08:32:34 2016// +/sandbox-rlimit.c/1.3/Wed Apr 27 11:45:39 2016// +/sandbox-systrace.c/1.18/Tue May 3 08:32:34 2016// +/sc25519.c/1.3/Wed Apr 27 11:45:39 2016// +/sc25519.h/1.3/Wed Apr 27 11:45:39 2016// +/scp.1/1.68/Tue May 3 08:32:34 2016// +/scp.c/1.185/Tue May 3 08:32:34 2016// +/servconf.c/1.287/Result of merge+Tue May 3 08:33:34 2016// +/sftp-client.c/1.123/Tue May 3 08:33:34 2016// +/sftp-client.h/1.27/Tue May 3 08:32:34 2016// +/sftp-common.c/1.28/Tue May 3 08:32:34 2016// +/sftp-common.h/1.12/Wed Apr 27 11:45:39 2016// +/sftp-glob.c/1.27/Wed Apr 27 11:45:39 2016// +/sftp-server-main.c/1.5/Tue May 3 08:32:34 2016// +/sftp-server.8/1.27/Wed Apr 27 11:45:39 2016// +/sftp-server.c/1.109/Tue May 3 08:32:34 2016// +/sftp.1/1.102/Tue May 3 08:32:34 2016// +/sftp.c/1.173/Tue May 3 08:32:34 2016// +/sftp.h/1.9/Wed Apr 27 11:45:39 2016// +/smult_curve25519_ref.c/1.2/Wed Apr 27 11:45:39 2016// +/ssh-add.1/1.62/Tue May 3 08:32:34 2016// +/ssh-add.c/1.128/Tue May 3 08:32:34 2016// +/ssh-agent.1/1.62/Tue May 3 08:32:34 2016// +/ssh-agent.c/1.213/Tue May 3 08:33:34 2016// +/ssh-dss.c/1.35/Tue May 3 08:33:34 2016// +/ssh-ecdsa.c/1.13/Tue May 3 08:33:34 2016// +/ssh-ed25519.c/1.7/Tue May 3 08:33:34 2016// +/ssh-keygen.1/1.130/Tue May 3 08:32:34 2016// +/ssh-keygen.c/1.290/Tue May 3 08:33:34 2016// +/ssh-keyscan.1/1.38/Tue May 3 08:32:34 2016// +/ssh-keyscan.c/1.106/Result of merge// +/ssh-keysign.8/1.15/Tue May 3 08:32:34 2016// +/ssh-keysign.c/1.52/Tue May 3 08:32:34 2016// +/ssh-pkcs11-helper.8/1.4/Wed Apr 27 11:45:39 2016// +/ssh-pkcs11.c/1.22/Tue May 3 08:32:34 2016// +/ssh-pkcs11.h/1.4/Wed Apr 27 11:45:39 2016// +/ssh-rsa.c/1.59/Result of merge// +/ssh-sandbox.h/1.1/Wed Apr 27 11:45:39 2016// +/ssh.1/1.370/Tue May 3 08:32:34 2016// +/ssh.c/1.438/Result of merge// +/ssh.h/1.83/Tue May 3 08:32:34 2016// +/ssh1.h/1.6/Wed Apr 27 11:45:39 2016// +/ssh2.h/1.17/Tue May 3 08:32:34 2016// +/ssh_api.c/1.6/Result of merge// +/ssh_api.h/1.1/Tue May 3 08:32:34 2016// +/ssh_config/1.30/Tue May 3 08:32:34 2016// +/ssh_config.5/1.230/Tue May 3 08:33:34 2016// +/sshbuf-getput-basic.c/1.5/Tue May 3 08:32:34 2016// +/sshbuf-getput-crypto.c/1.5/Tue May 3 08:32:34 2016// +/sshbuf-misc.c/1.6/Tue May 3 08:33:34 2016// +/sshbuf.h/1.7/Result of merge// +/sshconnect2.c/1.243/Result of merge+Tue May 3 08:33:34 2016// +/sshd.8/1.284/Tue May 3 08:32:34 2016// +/sshd.c/1.469/Result of merge+Tue May 3 08:33:34 2016// +/sshd_config/1.98/Tue May 3 08:32:34 2016// +/sshd_config.5/1.222/Tue May 3 08:33:34 2016// +/ssherr.c/1.5/Tue May 3 08:32:34 2016// +/ssherr.h/1.3/Tue May 3 08:32:34 2016// +/sshkey.c/1.33/Result of merge// +/sshkey.h/1.13/Tue May 3 08:33:34 2016// +/sshlogin.h/1.8/Wed Apr 27 11:45:39 2016// +/sshpty.c/1.30/Tue May 3 08:32:34 2016// +/sshpty.h/1.12/Wed Apr 27 11:45:39 2016// +/sshtty.c/1.14/Wed Apr 27 11:45:39 2016// +/ttymodes.h/1.14/Wed Apr 27 11:45:39 2016// +/uidswap.c/1.39/Tue May 3 08:32:34 2016// +/uidswap.h/1.13/Wed Apr 27 11:45:39 2016// +/umac.h/1.3/Wed Apr 27 11:45:39 2016// +/uuencode.c/1.28/Tue May 3 08:32:34 2016// +/uuencode.h/1.14/Wed Apr 27 11:45:39 2016// +/verify.c/1.3/Wed Apr 27 11:45:39 2016// +/version.h/1.76/Tue May 3 08:32:34 2016// +/xmalloc.c/1.33/Tue May 3 08:32:34 2016// +/xmalloc.h/1.16/Tue May 3 08:32:34 2016// diff --git a/ssh/auth2-chall.c b/ssh/auth2-chall.c index ee3f015..5ce6d49 100644 --- a/ssh/auth2-chall.c +++ b/ssh/auth2-chall.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-chall.c,v 1.43 2015/07/18 07:57:14 djm Exp $ */ +/* $OpenBSD: auth2-chall.c,v 1.44 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * Copyright (c) 2001 Per Allansson. All rights reserved. @@ -76,10 +76,16 @@ kbdint_alloc(const char *devs) fatal("%s: buffer error: %s", __func__, ssh_err(r)); } +<<<<<<< auth2-chall.c if ((r = sshbuf_put_u8(b, 0)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); kbdintctxt->devices = xstrdup((const char *)sshbuf_ptr(b)); sshbuf_free(b); +======= + if ((kbdintctxt->devices = sshbuf_dup_string(&b)) == NULL) + fatal("%s: sshbuf_dup_string failed", __func__); + buffer_free(&b); +>>>>>>> 1.44 } else { kbdintctxt->devices = xstrdup(devs); } diff --git a/ssh/auth2.c b/ssh/auth2.c index a843227..379406e 100644 --- a/ssh/auth2.c +++ b/ssh/auth2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2.c,v 1.135 2015/01/19 20:07:45 markus Exp $ */ +/* $OpenBSD: auth2.c,v 1.136 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -389,6 +389,7 @@ authmethods_get(struct authctxt *authctxt) if (!auth2_method_allowed(authctxt, authmethods[i]->name, NULL)) continue; +<<<<<<< auth2.c if ((r = sshbuf_putf(b, "%s%s", sshbuf_len(b) ? "," : "", authmethods[i]->name)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); @@ -397,6 +398,16 @@ authmethods_get(struct authctxt *authctxt) fatal("%s: buffer error: %s", __func__, ssh_err(r)); list = xstrdup((const char *)sshbuf_ptr(b)); sshbuf_free(b); +======= + if (buffer_len(&b) > 0) + buffer_append(&b, ",", 1); + buffer_append(&b, authmethods[i]->name, + strlen(authmethods[i]->name)); + } + if ((list = sshbuf_dup_string(&b)) == NULL) + fatal("%s: sshbuf_dup_string failed", __func__); + buffer_free(&b); +>>>>>>> 1.136 return list; } diff --git a/ssh/dh.c b/ssh/dh.c index d819aa6..7f05d68 100644 --- a/ssh/dh.c +++ b/ssh/dh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dh.c,v 1.59 2016/03/31 05:24:06 dtucker Exp $ */ +/* $OpenBSD: dh.c,v 1.60 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * @@ -311,6 +311,7 @@ dh_new_group(BIGNUM *gen, BIGNUM *modulus) return (dh); } +/* rfc2409 "Second Oakley Group" (1024 bits) */ DH * dh_new_group1(void) { @@ -325,6 +326,7 @@ dh_new_group1(void) return (dh_new_group_asc(gen, group1)); } +/* rfc3526 group 14 "2048-bit MODP Group" */ DH * dh_new_group14(void) { @@ -344,12 +346,9 @@ dh_new_group14(void) return (dh_new_group_asc(gen, group14)); } -/* - * 4k bit fallback group used by DH-GEX if moduli file cannot be read. - * Source: MODP group 16 from RFC3526. - */ +/* rfc3526 group 16 "4096-bit MODP Group" */ DH * -dh_new_group_fallback(int max) +dh_new_group16(void) { static char *gen = "2", *group16 = "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" @@ -375,12 +374,75 @@ dh_new_group_fallback(int max) "93B4EA98" "8D8FDDC1" "86FFB7DC" "90A6C08F" "4DF435C9" "34063199" "FFFFFFFF" "FFFFFFFF"; - if (max < 4096) { - debug3("requested max size %d, using 2k bit group 14", max); + return (dh_new_group_asc(gen, group16)); +} + +/* rfc3526 group 18 "8192-bit MODP Group" */ +DH * +dh_new_group18(void) +{ + static char *gen = "2", *group16 = + "FFFFFFFF" "FFFFFFFF" "C90FDAA2" "2168C234" "C4C6628B" "80DC1CD1" + "29024E08" "8A67CC74" "020BBEA6" "3B139B22" "514A0879" "8E3404DD" + "EF9519B3" "CD3A431B" "302B0A6D" "F25F1437" "4FE1356D" "6D51C245" + "E485B576" "625E7EC6" "F44C42E9" "A637ED6B" "0BFF5CB6" "F406B7ED" + "EE386BFB" "5A899FA5" "AE9F2411" "7C4B1FE6" "49286651" "ECE45B3D" + "C2007CB8" "A163BF05" "98DA4836" "1C55D39A" "69163FA8" "FD24CF5F" + "83655D23" "DCA3AD96" "1C62F356" "208552BB" "9ED52907" "7096966D" + "670C354E" "4ABC9804" "F1746C08" "CA18217C" "32905E46" "2E36CE3B" + "E39E772C" "180E8603" "9B2783A2" "EC07A28F" "B5C55DF0" "6F4C52C9" + "DE2BCBF6" "95581718" "3995497C" "EA956AE5" "15D22618" "98FA0510" + "15728E5A" "8AAAC42D" "AD33170D" "04507A33" "A85521AB" "DF1CBA64" + "ECFB8504" "58DBEF0A" "8AEA7157" "5D060C7D" "B3970F85" "A6E1E4C7" + "ABF5AE8C" "DB0933D7" "1E8C94E0" "4A25619D" "CEE3D226" "1AD2EE6B" + "F12FFA06" "D98A0864" "D8760273" "3EC86A64" "521F2B18" "177B200C" + "BBE11757" "7A615D6C" "770988C0" "BAD946E2" "08E24FA0" "74E5AB31" + "43DB5BFC" "E0FD108E" "4B82D120" "A9210801" "1A723C12" "A787E6D7" + "88719A10" "BDBA5B26" "99C32718" "6AF4E23C" "1A946834" "B6150BDA" + "2583E9CA" "2AD44CE8" "DBBBC2DB" "04DE8EF9" "2E8EFC14" "1FBECAA6" + "287C5947" "4E6BC05D" "99B2964F" "A090C3A2" "233BA186" "515BE7ED" + "1F612970" "CEE2D7AF" "B81BDD76" "2170481C" "D0069127" "D5B05AA9" + "93B4EA98" "8D8FDDC1" "86FFB7DC" "90A6C08F" "4DF435C9" "34028492" + "36C3FAB4" "D27C7026" "C1D4DCB2" "602646DE" "C9751E76" "3DBA37BD" + "F8FF9406" "AD9E530E" "E5DB382F" "413001AE" "B06A53ED" "9027D831" + "179727B0" "865A8918" "DA3EDBEB" "CF9B14ED" "44CE6CBA" "CED4BB1B" + "DB7F1447" "E6CC254B" "33205151" "2BD7AF42" "6FB8F401" "378CD2BF" + "5983CA01" "C64B92EC" "F032EA15" "D1721D03" "F482D7CE" "6E74FEF6" + "D55E702F" "46980C82" "B5A84031" "900B1C9E" "59E7C97F" "BEC7E8F3" + "23A97A7E" "36CC88BE" "0F1D45B7" "FF585AC5" "4BD407B2" "2B4154AA" + "CC8F6D7E" "BF48E1D8" "14CC5ED2" "0F8037E0" "A79715EE" "F29BE328" + "06A1D58B" "B7C5DA76" "F550AA3D" "8A1FBFF0" "EB19CCB1" "A313D55C" + "DA56C9EC" "2EF29632" "387FE8D7" "6E3C0468" "043E8F66" "3F4860EE" + "12BF2D5B" "0B7474D6" "E694F91E" "6DBE1159" "74A3926F" "12FEE5E4" + "38777CB6" "A932DF8C" "D8BEC4D0" "73B931BA" "3BC832B6" "8D9DD300" + "741FA7BF" "8AFC47ED" "2576F693" "6BA42466" "3AAB639C" "5AE4F568" + "3423B474" "2BF1C978" "238F16CB" "E39D652D" "E3FDB8BE" "FC848AD9" + "22222E04" "A4037C07" "13EB57A8" "1A23F0C7" "3473FC64" "6CEA306B" + "4BCBC886" "2F8385DD" "FA9D4B7F" "A2C087E8" "79683303" "ED5BDD3A" + "062B3CF5" "B3A278A6" "6D2A13F8" "3F44F82D" "DF310EE0" "74AB6A36" + "4597E899" "A0255DC1" "64F31CC5" "0846851D" "F9AB4819" "5DED7EA1" + "B1D510BD" "7EE74D73" "FAF36BC3" "1ECFA268" "359046F4" "EB879F92" + "4009438B" "481C6CD7" "889A002E" "D5EE382B" "C9190DA6" "FC026E47" + "9558E447" "5677E9AA" "9E3050E2" "765694DF" "C81F56E8" "80B96E71" + "60C980DD" "98EDD3DF" "FFFFFFFF" "FFFFFFFF"; + + return (dh_new_group_asc(gen, group16)); +} + +/* Select fallback group used by DH-GEX if moduli file cannot be read. */ +DH * +dh_new_group_fallback(int max) +{ + debug3("%s: requested max size %d", __func__, max); + if (max < 3072) { + debug3("using 2k bit group 14"); return dh_new_group14(); + } else if (max < 6144) { + debug3("using 4k bit group 16"); + return dh_new_group16(); } - debug3("using 4k bit group 16"); - return (dh_new_group_asc(gen, group16)); + debug3("using 8k bit group 18"); + return dh_new_group18(); } /* @@ -390,7 +452,6 @@ dh_new_group_fallback(int max) * Management Part 1 (rev 3) limited by the recommended maximum value * from RFC4419 section 3. */ - u_int dh_estimate(int bits) { diff --git a/ssh/dh.h b/ssh/dh.h index e191cfd..bcd485c 100644 --- a/ssh/dh.h +++ b/ssh/dh.h @@ -1,4 +1,4 @@ -/* $OpenBSD: dh.h,v 1.14 2015/10/16 22:32:22 djm Exp $ */ +/* $OpenBSD: dh.h,v 1.15 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. @@ -37,6 +37,8 @@ DH *dh_new_group_asc(const char *, const char *); DH *dh_new_group(BIGNUM *, BIGNUM *); DH *dh_new_group1(void); DH *dh_new_group14(void); +DH *dh_new_group16(void); +DH *dh_new_group18(void); DH *dh_new_group_fallback(int); int dh_gen_key(DH *, int); diff --git a/ssh/kex.c b/ssh/kex.c index 02a7146..d95f4cd 100644 --- a/ssh/kex.c +++ b/ssh/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.117 2016/02/08 10:57:07 djm Exp $ */ +/* $OpenBSD: kex.c,v 1.118 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * @@ -77,7 +77,10 @@ struct kexalg { static const struct kexalg kexalgs[] = { #ifdef WITH_OPENSSL { KEX_DH1, KEX_DH_GRP1_SHA1, 0, SSH_DIGEST_SHA1 }, - { KEX_DH14, KEX_DH_GRP14_SHA1, 0, SSH_DIGEST_SHA1 }, + { KEX_DH14_SHA1, KEX_DH_GRP14_SHA1, 0, SSH_DIGEST_SHA1 }, + { KEX_DH14_SHA256, KEX_DH_GRP14_SHA256, 0, SSH_DIGEST_SHA256 }, + { KEX_DH16_SHA512, KEX_DH_GRP16_SHA512, 0, SSH_DIGEST_SHA512 }, + { KEX_DH18_SHA512, KEX_DH_GRP18_SHA512, 0, SSH_DIGEST_SHA512 }, { KEX_DHGEX_SHA1, KEX_DH_GEX_SHA1, 0, SSH_DIGEST_SHA1 }, { KEX_DHGEX_SHA256, KEX_DH_GEX_SHA256, 0, SSH_DIGEST_SHA256 }, { KEX_ECDH_SHA2_NISTP256, KEX_ECDH_SHA2, diff --git a/ssh/kex.h b/ssh/kex.h index 2c6e7be..fb2d2b1 100644 --- a/ssh/kex.h +++ b/ssh/kex.h @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.h,v 1.76 2016/02/08 10:57:07 djm Exp $ */ +/* $OpenBSD: kex.h,v 1.78 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -39,7 +39,10 @@ #define KEX_COOKIE_LEN 16 #define KEX_DH1 "diffie-hellman-group1-sha1" -#define KEX_DH14 "diffie-hellman-group14-sha1" +#define KEX_DH14_SHA1 "diffie-hellman-group14-sha1" +#define KEX_DH14_SHA256 "diffie-hellman-group14-sha256" +#define KEX_DH16_SHA512 "diffie-hellman-group16-sha512" +#define KEX_DH18_SHA512 "diffie-hellman-group18-sha512" #define KEX_DHGEX_SHA1 "diffie-hellman-group-exchange-sha1" #define KEX_DHGEX_SHA256 "diffie-hellman-group-exchange-sha256" #define KEX_ECDH_SHA2_NISTP256 "ecdh-sha2-nistp256" @@ -76,6 +79,9 @@ enum kex_modes { enum kex_exchange { KEX_DH_GRP1_SHA1, KEX_DH_GRP14_SHA1, + KEX_DH_GRP14_SHA256, + KEX_DH_GRP16_SHA512, + KEX_DH_GRP18_SHA512, KEX_DH_GEX_SHA1, KEX_DH_GEX_SHA256, KEX_ECDH_SHA2, @@ -178,7 +184,7 @@ int kexecdh_server(struct ssh *); int kexc25519_client(struct ssh *); int kexc25519_server(struct ssh *); -int kex_dh_hash(const char *, const char *, +int kex_dh_hash(int, const char *, const char *, const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, const BIGNUM *, const BIGNUM *, const BIGNUM *, u_char *, size_t *); @@ -193,8 +199,9 @@ int kex_ecdh_hash(int, const EC_GROUP *, const char *, const char *, const u_char *, size_t, const u_char *, size_t, const u_char *, size_t, const EC_POINT *, const EC_POINT *, const BIGNUM *, u_char *, size_t *); -int kex_c25519_hash(int, const char *, const char *, const char *, size_t, - const char *, size_t, const u_char *, size_t, const u_char *, const u_char *, +int kex_c25519_hash(int, const char *, const char *, + const u_char *, size_t, const u_char *, size_t, + const u_char *, size_t, const u_char *, const u_char *, const u_char *, size_t, u_char *, size_t *); void kexc25519_keygen(u_char key[CURVE25519_SIZE], u_char pub[CURVE25519_SIZE]) diff --git a/ssh/kexc25519.c b/ssh/kexc25519.c index 76fa63c..86158c5 100644 --- a/ssh/kexc25519.c +++ b/ssh/kexc25519.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexc25519.c,v 1.9 2015/03/26 07:00:04 djm Exp $ */ +/* $OpenBSD: kexc25519.c,v 1.10 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 2001, 2013 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -84,8 +84,8 @@ kex_c25519_hash( int hash_alg, const char *client_version_string, const char *server_version_string, - const char *ckexinit, size_t ckexinitlen, - const char *skexinit, size_t skexinitlen, + const u_char *ckexinit, size_t ckexinitlen, + const u_char *skexinit, size_t skexinitlen, const u_char *serverhostkeyblob, size_t sbloblen, const u_char client_dh_pub[CURVE25519_SIZE], const u_char server_dh_pub[CURVE25519_SIZE], diff --git a/ssh/kexdh.c b/ssh/kexdh.c index 375a891..f55bf8c 100644 --- a/ssh/kexdh.c +++ b/ssh/kexdh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexdh.c,v 1.25 2015/01/19 20:16:15 markus Exp $ */ +/* $OpenBSD: kexdh.c,v 1.26 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -39,6 +39,7 @@ int kex_dh_hash( + int hash_alg, const char *client_version_string, const char *server_version_string, const u_char *ckexinit, size_t ckexinitlen, @@ -52,7 +53,7 @@ kex_dh_hash( struct sshbuf *b; int r; - if (*hashlen < ssh_digest_bytes(SSH_DIGEST_SHA1)) + if (*hashlen < ssh_digest_bytes(hash_alg)) return SSH_ERR_INVALID_ARGUMENT; if ((b = sshbuf_new()) == NULL) return SSH_ERR_ALLOC_FAIL; @@ -75,12 +76,12 @@ kex_dh_hash( #ifdef DEBUG_KEX sshbuf_dump(b, stderr); #endif - if (ssh_digest_buffer(SSH_DIGEST_SHA1, b, hash, *hashlen) != 0) { + if (ssh_digest_buffer(hash_alg, b, hash, *hashlen) != 0) { sshbuf_free(b); return SSH_ERR_LIBCRYPTO_ERROR; } sshbuf_free(b); - *hashlen = ssh_digest_bytes(SSH_DIGEST_SHA1); + *hashlen = ssh_digest_bytes(hash_alg); #ifdef DEBUG_KEX dump_digest("hash", hash, *hashlen); #endif diff --git a/ssh/kexdhc.c b/ssh/kexdhc.c index a5f82fe..908bc06 100644 --- a/ssh/kexdhc.c +++ b/ssh/kexdhc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexdhc.c,v 1.18 2015/01/26 06:10:03 djm Exp $ */ +/* $OpenBSD: kexdhc.c,v 1.19 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -58,8 +58,15 @@ kexdh_client(struct ssh *ssh) kex->dh = dh_new_group1(); break; case KEX_DH_GRP14_SHA1: + case KEX_DH_GRP14_SHA256: kex->dh = dh_new_group14(); break; + case KEX_DH_GRP16_SHA512: + kex->dh = dh_new_group16(); + break; + case KEX_DH_GRP18_SHA512: + kex->dh = dh_new_group18(); + break; default: r = SSH_ERR_INVALID_ARGUMENT; goto out; @@ -158,6 +165,7 @@ input_kex_dh(int type, u_int32_t seq, struct ssh *ssh) /* calc and verify H */ hashlen = sizeof(hash); if ((r = kex_dh_hash( + kex->hash_alg, kex->client_version_string, kex->server_version_string, sshbuf_ptr(kex->my), sshbuf_len(kex->my), diff --git a/ssh/kexdhs.c b/ssh/kexdhs.c index 97d14e9..d540fb4 100644 --- a/ssh/kexdhs.c +++ b/ssh/kexdhs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexdhs.c,v 1.23 2015/12/04 16:41:28 markus Exp $ */ +/* $OpenBSD: kexdhs.c,v 1.24 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -58,8 +58,15 @@ kexdh_server(struct ssh *ssh) kex->dh = dh_new_group1(); break; case KEX_DH_GRP14_SHA1: + case KEX_DH_GRP14_SHA256: kex->dh = dh_new_group14(); break; + case KEX_DH_GRP16_SHA512: + kex->dh = dh_new_group16(); + break; + case KEX_DH_GRP18_SHA512: + kex->dh = dh_new_group18(); + break; default: r = SSH_ERR_INVALID_ARGUMENT; goto out; @@ -152,6 +159,7 @@ input_kex_dh_init(int type, u_int32_t seq, struct ssh *ssh) /* calc H */ hashlen = sizeof(hash); if ((r = kex_dh_hash( + kex->hash_alg, kex->client_version_string, kex->server_version_string, sshbuf_ptr(kex->peer), sshbuf_len(kex->peer), diff --git a/ssh/log.c b/ssh/log.c index a5ba22f..8039896 100644 --- a/ssh/log.c +++ b/ssh/log.c @@ -1,4 +1,4 @@ -/* $OpenBSD: log.c,v 1.46 2015/07/08 19:04:21 markus Exp $ */ +/* $OpenBSD: log.c,v 1.47 2016/04/29 08:07:53 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -308,7 +308,7 @@ log_change_level(LogLevel new_log_level) int log_is_on_stderr(void) { - return log_on_stderr; + return log_on_stderr && log_stderr_fd == STDERR_FILENO; } /* redirect what would usually get written to stderr to specified file */ diff --git a/ssh/moduli-gen/CVS/Entries b/ssh/moduli-gen/CVS/Entries index 75507d1..1ecca46 100644 --- a/ssh/moduli-gen/CVS/Entries +++ b/ssh/moduli-gen/CVS/Entries @@ -1,9 +1,9 @@ -/Makefile/1.5/Mon Feb 1 06:34:45 2016// -/moduli-gen.sh/1.2/Mon Feb 1 06:34:45 2016// -/moduli.2048/1.6/Tue Mar 8 04:13:31 2016// -/moduli.3072/1.6/Tue Mar 8 04:13:31 2016// -/moduli.4096/1.6/Tue Mar 8 04:13:31 2016// -/moduli.6144/1.6/Tue Mar 8 04:13:31 2016// -/moduli.7680/1.5/Tue Mar 8 04:13:31 2016// -/moduli.8192/1.6/Tue Mar 8 04:13:31 2016// +/Makefile/1.5/Tue May 3 08:32:34 2016// +/moduli-gen.sh/1.2/Wed Apr 27 11:45:39 2016// +/moduli.2048/1.6/Tue May 3 08:32:34 2016// +/moduli.3072/1.6/Tue May 3 08:32:34 2016// +/moduli.4096/1.6/Tue May 3 08:32:34 2016// +/moduli.6144/1.6/Tue May 3 08:32:34 2016// +/moduli.7680/1.5/Tue May 3 08:32:34 2016// +/moduli.8192/1.6/Tue May 3 08:32:34 2016// D diff --git a/ssh/monitor.c b/ssh/monitor.c index ba27b17..1658e73 100644 --- a/ssh/monitor.c +++ b/ssh/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.158 2016/03/07 19:02:43 djm Exp $ */ +/* $OpenBSD: monitor.c,v 1.160 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -611,6 +612,8 @@ mm_answer_sign(int sock, struct sshbuf *m) (r = sshbuf_get_string(m, &p, &datlen)) != 0 || (r = sshbuf_get_cstring(m, &alg, &alglen)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); + if (keyid > INT_MAX) + fatal("%s: invalid key ID", __func__); /* * Supported KEX types use SHA1 (20 bytes), SHA256 (32 bytes), @@ -1027,6 +1030,7 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) static int monitor_valid_userblob(u_char *data, u_int datalen) { +<<<<<<< monitor.c struct sshbuf *b; u_char *p, c; const u_char *cp; @@ -1040,6 +1044,20 @@ monitor_valid_userblob(u_char *data, u_int datalen) if (active_state->compat & SSH_OLD_SESSIONID) { cp = sshbuf_ptr(b); len = sshbuf_len(b); +======= + Buffer b; + u_char *p; + char *userstyle, *cp; + u_int len; + int fail = 0; + + buffer_init(&b); + buffer_append(&b, data, datalen); + + if (datafellows & SSH_OLD_SESSIONID) { + p = buffer_ptr(&b); + len = buffer_len(&b); +>>>>>>> 1.160 if ((session_id2 == NULL) || (len < session_id2_len) || (timingsafe_bcmp(cp, session_id2, session_id2_len) != 0)) @@ -1059,34 +1077,61 @@ monitor_valid_userblob(u_char *data, u_int datalen) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (c != SSH2_MSG_USERAUTH_REQUEST) fail++; +<<<<<<< monitor.c +======= + cp = buffer_get_cstring(&b, NULL); +>>>>>>> 1.160 xasprintf(&userstyle, "%s%s%s", authctxt->user, authctxt->style ? ":" : "", authctxt->style ? authctxt->style : ""); +<<<<<<< monitor.c if ((r = sshbuf_get_cstring(b, &username, NULL)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (strcmp(userstyle, username) != 0) { logit("wrong user name sent to monitor: expected %s != %.100s", userstyle, username); +======= + if (strcmp(userstyle, cp) != 0) { + logit("wrong user name passed to monitor: " + "expected %s != %.100s", userstyle, cp); +>>>>>>> 1.160 fail++; } free(username); free(userstyle); +<<<<<<< monitor.c if ((r = sshbuf_skip_string(b)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (active_state->compat & SSH_BUG_PKAUTH) { if ((r = sshbuf_get_u8(b, &c)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (!c) +======= + free(cp); + buffer_skip_string(&b); + if (datafellows & SSH_BUG_PKAUTH) { + if (!buffer_get_char(&b)) +>>>>>>> 1.160 fail++; } else { +<<<<<<< monitor.c if ((r = sshbuf_get_cstring(b, &methodname, NULL)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (strcmp("publickey", methodname) != 0) +======= + cp = buffer_get_cstring(&b, NULL); + if (strcmp("publickey", cp) != 0) +>>>>>>> 1.160 fail++; +<<<<<<< monitor.c free(methodname); if ((r = sshbuf_get_u8(b, &c)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (!c) +======= + free(cp); + if (!buffer_get_char(&b)) +>>>>>>> 1.160 fail++; if ((r = sshbuf_skip_string(b)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); @@ -1591,6 +1636,9 @@ monitor_apply_keystate(struct monitor *pmonitor) #ifdef WITH_OPENSSL kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; + kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; + kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; + kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; kex->kex[KEX_ECDH_SHA2] = kexecdh_server; diff --git a/ssh/myproposal.h b/ssh/myproposal.h index 45b3583..a32cc9b 100644 --- a/ssh/myproposal.h +++ b/ssh/myproposal.h @@ -1,4 +1,4 @@ -/* $OpenBSD: myproposal.h,v 1.50 2016/02/09 05:30:04 djm Exp $ */ +/* $OpenBSD: myproposal.h,v 1.51 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -31,13 +31,17 @@ "ecdh-sha2-nistp256," \ "ecdh-sha2-nistp384," \ "ecdh-sha2-nistp521," \ - "diffie-hellman-group-exchange-sha256" + "diffie-hellman-group-exchange-sha256," \ + "diffie-hellman-group16-sha512," \ + "diffie-hellman-group18-sha512" \ #define KEX_SERVER_KEX KEX_COMMON_KEX "," \ + "diffie-hellman-group14-sha256," \ "diffie-hellman-group14-sha1" #define KEX_CLIENT_KEX KEX_COMMON_KEX "," \ "diffie-hellman-group-exchange-sha1," \ + "diffie-hellman-group14-sha256," \ "diffie-hellman-group14-sha1" #define KEX_DEFAULT_PK_ALG \ diff --git a/ssh/scp/CVS/Entries b/ssh/scp/CVS/Entries index 6effd8b..a037c97 100644 --- a/ssh/scp/CVS/Entries +++ b/ssh/scp/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.16/Mon Feb 1 06:34:46 2016// +/Makefile/1.16/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/servconf.c b/ssh/servconf.c index 4aa45f7..56004d8 100644 --- a/ssh/servconf.c +++ b/ssh/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.286 2016/03/07 19:02:43 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.287 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -2009,7 +2009,12 @@ parse_server_config(ServerOptions *options, const char *filename, debug2("%s: config %s len %zu", __func__, filename, sshbuf_len(conf)); +<<<<<<< servconf.c obuf = cbuf = xstrdup((const char *)sshbuf_ptr(conf)); +======= + if ((obuf = cbuf = sshbuf_dup_string(conf)) == NULL) + fatal("%s: sshbuf_dup_string failed", __func__); +>>>>>>> 1.287 active = connectinfo ? 0 : 1; linenum = 1; while ((cp = strsep(&cbuf, "\n")) != NULL) { diff --git a/ssh/sftp-client.c b/ssh/sftp-client.c index 4af181f..7baf772 100644 --- a/ssh/sftp-client.c +++ b/ssh/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.122 2016/04/08 08:19:17 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.123 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -508,8 +508,7 @@ do_lsreaddir(struct sftp_conn *conn, const char *path, int print_flag, struct sshbuf *msg; u_int count, id, i, expected_id, ents = 0; size_t handle_len; - u_char type; - char *handle; + u_char type, *handle; int status = SSH2_FX_FAILURE; int r; diff --git a/ssh/sftp-server/CVS/Entries b/ssh/sftp-server/CVS/Entries index 0897c05..58f8968 100644 --- a/ssh/sftp-server/CVS/Entries +++ b/ssh/sftp-server/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.9/Mon Feb 1 06:34:46 2016// +/Makefile/1.9/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/sftp/CVS/Entries b/ssh/sftp/CVS/Entries index b94f85c..a7b8790 100644 --- a/ssh/sftp/CVS/Entries +++ b/ssh/sftp/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.12/Mon Feb 1 06:34:46 2016// +/Makefile/1.12/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/ssh-add/CVS/Entries b/ssh/ssh-add/CVS/Entries index 3451bbb..ebb33c1 100644 --- a/ssh/ssh-add/CVS/Entries +++ b/ssh/ssh-add/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.20/Mon Feb 1 06:34:46 2016// +/Makefile/1.20/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/ssh-agent.c b/ssh/ssh-agent.c index 9b60b38..1dc0cfa 100644 --- a/ssh/ssh-agent.c +++ b/ssh/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.212 2016/02/15 09:47:49 dtucker Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.213 2016/05/02 08:49:03 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -127,8 +127,8 @@ char socket_dir[PATH_MAX]; #define LOCK_SALT_SIZE 16 #define LOCK_ROUNDS 1 int locked = 0; -char lock_passwd[LOCK_SIZE]; -char lock_salt[LOCK_SALT_SIZE]; +u_char lock_pwhash[LOCK_SIZE]; +u_char lock_salt[LOCK_SALT_SIZE]; extern char *__progname; @@ -660,7 +660,8 @@ static void process_lock_agent(SocketEntry *e, int lock) { int r, success = 0, delay; - char *passwd, passwdhash[LOCK_SIZE]; + char *passwd; + u_char passwdhash[LOCK_SIZE]; static u_int fail_count = 0; size_t pwlen; @@ -672,11 +673,11 @@ process_lock_agent(SocketEntry *e, int lock) if (bcrypt_pbkdf(passwd, pwlen, lock_salt, sizeof(lock_salt), passwdhash, sizeof(passwdhash), LOCK_ROUNDS) < 0) fatal("bcrypt_pbkdf"); - if (timingsafe_bcmp(passwdhash, lock_passwd, LOCK_SIZE) == 0) { + if (timingsafe_bcmp(passwdhash, lock_pwhash, LOCK_SIZE) == 0) { debug("agent unlocked"); locked = 0; fail_count = 0; - explicit_bzero(lock_passwd, sizeof(lock_passwd)); + explicit_bzero(lock_pwhash, sizeof(lock_pwhash)); success = 1; } else { /* delay in 0.1s increments up to 10s */ @@ -693,7 +694,7 @@ process_lock_agent(SocketEntry *e, int lock) locked = 1; arc4random_buf(lock_salt, sizeof(lock_salt)); if (bcrypt_pbkdf(passwd, pwlen, lock_salt, sizeof(lock_salt), - lock_passwd, sizeof(lock_passwd), LOCK_ROUNDS) < 0) + lock_pwhash, sizeof(lock_pwhash), LOCK_ROUNDS) < 0) fatal("bcrypt_pbkdf"); success = 1; } diff --git a/ssh/ssh-agent/CVS/Entries b/ssh/ssh-agent/CVS/Entries index 282e2d2..8156fb3 100644 --- a/ssh/ssh-agent/CVS/Entries +++ b/ssh/ssh-agent/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.24/Mon Feb 1 06:34:46 2016// +/Makefile/1.24/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/ssh-dss.c b/ssh/ssh-dss.c index 00b2eb1..b45e698 100644 --- a/ssh/ssh-dss.c +++ b/ssh/ssh-dss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-dss.c,v 1.34 2015/12/11 04:21:12 mmcc Exp $ */ +/* $OpenBSD: ssh-dss.c,v 1.35 2016/04/21 06:08:02 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -133,7 +133,8 @@ ssh_dss_verify(const struct sshkey *key, char *ktype = NULL; if (key == NULL || key->dsa == NULL || - sshkey_type_plain(key->type) != KEY_DSA) + sshkey_type_plain(key->type) != KEY_DSA || + signature == NULL || signaturelen == 0) return SSH_ERR_INVALID_ARGUMENT; if (dlen == 0) return SSH_ERR_INTERNAL_ERROR; diff --git a/ssh/ssh-ecdsa.c b/ssh/ssh-ecdsa.c index 1be339e..b127269 100644 --- a/ssh/ssh-ecdsa.c +++ b/ssh/ssh-ecdsa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ecdsa.c,v 1.12 2015/12/11 04:21:12 mmcc Exp $ */ +/* $OpenBSD: ssh-ecdsa.c,v 1.13 2016/04/21 06:08:02 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -117,7 +117,8 @@ ssh_ecdsa_verify(const struct sshkey *key, char *ktype = NULL; if (key == NULL || key->ecdsa == NULL || - sshkey_type_plain(key->type) != KEY_ECDSA) + sshkey_type_plain(key->type) != KEY_ECDSA || + signature == NULL || signaturelen == 0) return SSH_ERR_INVALID_ARGUMENT; if ((hash_alg = sshkey_ec_nid_to_hash_alg(key->ecdsa_nid)) == -1 || diff --git a/ssh/ssh-ed25519.c b/ssh/ssh-ed25519.c index fdb448c..e309d87 100644 --- a/ssh/ssh-ed25519.c +++ b/ssh/ssh-ed25519.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ed25519.c,v 1.6 2015/01/15 21:38:50 markus Exp $ */ +/* $OpenBSD: ssh-ed25519.c,v 1.7 2016/04/21 06:08:02 djm Exp $ */ /* * Copyright (c) 2013 Markus Friedl * @@ -104,7 +104,8 @@ ssh_ed25519_verify(const struct sshkey *key, if (key == NULL || sshkey_type_plain(key->type) != KEY_ED25519 || key->ed25519_pk == NULL || - datalen >= INT_MAX - crypto_sign_ed25519_BYTES) + datalen >= INT_MAX - crypto_sign_ed25519_BYTES || + signature == NULL || signaturelen == 0) return SSH_ERR_INVALID_ARGUMENT; if ((b = sshbuf_from(signature, signaturelen)) == NULL) diff --git a/ssh/ssh-keygen.c b/ssh/ssh-keygen.c index ab8d804..a5ca774 100644 --- a/ssh/ssh-keygen.c +++ b/ssh/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.288 2016/02/15 09:47:49 dtucker Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.290 2016/05/02 09:36:42 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -870,7 +870,7 @@ do_fingerprint(struct passwd *pw) char *comment = NULL, *cp, *ep, line[SSH_MAX_PUBKEY_BYTES]; int i, invalid = 1; const char *path; - long int lnum = 0; + u_long lnum = 0; if (!have_identity) ask_filename(pw, "Enter file in which the key is"); @@ -933,7 +933,7 @@ do_fingerprint(struct passwd *pw) } /* Retry after parsing leading hostname/key options */ if (public == NULL && (public = try_read_key(&cp)) == NULL) { - debug("%s:%ld: not a public key", path, lnum); + debug("%s:%lu: not a public key", path, lnum); continue; } @@ -1584,6 +1584,12 @@ do_ca_sign(struct passwd *pw, int argc, char **argv) ca = load_identity(tmp); free(tmp); + if (key_type_name != NULL && + sshkey_type_from_name(key_type_name) != ca->type) { + fatal("CA key type %s doesn't match specified %s", + sshkey_ssh_name(ca), key_type_name); + } + for (i = 0; i < argc; i++) { /* Split list of principals */ n = 0; @@ -1625,8 +1631,8 @@ do_ca_sign(struct passwd *pw, int argc, char **argv) &public->cert->signature_key)) != 0) fatal("key_from_private (ca key): %s", ssh_err(r)); - if (sshkey_certify(public, ca) != 0) - fatal("Couldn't not certify key %s", tmp); + if ((r = sshkey_certify(public, ca, key_type_name)) != 0) + fatal("Couldn't certify key %s: %s", tmp, ssh_err(r)); if ((cp = strrchr(tmp, '.')) != NULL && strcmp(cp, ".pub") == 0) *cp = '\0'; @@ -1905,7 +1911,7 @@ do_show_cert(struct passwd *pw) FILE *f; char *cp, line[SSH_MAX_PUBKEY_BYTES]; const char *path; - long int lnum = 0; + u_long lnum = 0; if (!have_identity) ask_filename(pw, "Enter file in which the key is"); diff --git a/ssh/ssh-keygen/CVS/Entries b/ssh/ssh-keygen/CVS/Entries index 888d128..565895d 100644 --- a/ssh/ssh-keygen/CVS/Entries +++ b/ssh/ssh-keygen/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.22/Mon Feb 1 06:34:46 2016// +/Makefile/1.22/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/ssh-keyscan.c b/ssh/ssh-keyscan.c index f77af92..dcd8b16 100644 --- a/ssh/ssh-keyscan.c +++ b/ssh/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.105 2016/02/15 09:47:49 dtucker Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.106 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -284,6 +284,9 @@ keygrab_ssh2(con *c) #ifdef WITH_OPENSSL c->c_ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; c->c_ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; + c->c_ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; + c->c_ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; + c->c_ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; c->c_ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; c->c_ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; c->c_ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; diff --git a/ssh/ssh-keyscan/CVS/Entries b/ssh/ssh-keyscan/CVS/Entries index c3b15db..1a3185c 100644 --- a/ssh/ssh-keyscan/CVS/Entries +++ b/ssh/ssh-keyscan/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.6/Mon Feb 1 06:34:59 2016// +/Makefile/1.6/Tue May 3 08:32:34 2016// D diff --git a/ssh/ssh-keysign/CVS/Entries b/ssh/ssh-keysign/CVS/Entries index c96290e..d5ec949 100644 --- a/ssh/ssh-keysign/CVS/Entries +++ b/ssh/ssh-keysign/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.9/Mon Feb 1 06:34:59 2016// +/Makefile/1.9/Tue May 3 08:32:34 2016// D diff --git a/ssh/ssh-pkcs11-helper/CVS/Entries b/ssh/ssh-pkcs11-helper/CVS/Entries index 11f9bcb..fece60c 100644 --- a/ssh/ssh-pkcs11-helper/CVS/Entries +++ b/ssh/ssh-pkcs11-helper/CVS/Entries @@ -1,2 +1,2 @@ -/Makefile/1.2/Mon Feb 1 06:34:46 2016// +/Makefile/1.2/Wed Apr 27 11:45:39 2016// D diff --git a/ssh/ssh-rsa.c b/ssh/ssh-rsa.c index 9ef91cb..f36a722 100644 --- a/ssh/ssh-rsa.c +++ b/ssh/ssh-rsa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-rsa.c,v 1.58 2015/12/11 04:21:12 mmcc Exp $ */ +/* $OpenBSD: ssh-rsa.c,v 1.59 2016/04/21 06:08:02 djm Exp $ */ /* * Copyright (c) 2000, 2003 Markus Friedl * @@ -167,7 +167,8 @@ ssh_rsa_verify(const struct sshkey *key, if (key == NULL || key->rsa == NULL || sshkey_type_plain(key->type) != KEY_RSA || - BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) + BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE || + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; if ((b = sshbuf_from(sig, siglen)) == NULL) diff --git a/ssh/ssh.c b/ssh/ssh.c index 04acd3a..f6c39c5 100644 --- a/ssh/ssh.c +++ b/ssh/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.437 2016/03/07 19:02:43 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.438 2016/04/29 08:07:53 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1362,7 +1362,7 @@ static void control_persist_detach(void) { pid_t pid; - int devnull; + int devnull, keep_stderr; debug("%s: backgrounding master process", __func__); @@ -1393,8 +1393,10 @@ control_persist_detach(void) error("%s: open(\"/dev/null\"): %s", __func__, strerror(errno)); } else { + keep_stderr = log_is_on_stderr() && debug_flag; if (dup2(devnull, STDIN_FILENO) == -1 || - dup2(devnull, STDOUT_FILENO) == -1) + dup2(devnull, STDOUT_FILENO) == -1 || + (!keep_stderr && dup2(devnull, STDERR_FILENO) == -1)) error("%s: dup2: %s", __func__, strerror(errno)); if (devnull > STDERR_FILENO) close(devnull); diff --git a/ssh/ssh_api.c b/ssh/ssh_api.c index f4ef3c4..668ad4e 100644 --- a/ssh/ssh_api.c +++ b/ssh/ssh_api.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh_api.c,v 1.5 2015/12/04 16:41:28 markus Exp $ */ +/* $OpenBSD: ssh_api.c,v 1.6 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2012 Markus Friedl. All rights reserved. * @@ -99,6 +99,9 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params) #ifdef WITH_OPENSSL ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; + ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; + ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; + ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_server; @@ -111,6 +114,9 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params) #ifdef WITH_OPENSSL ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; + ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; + ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; + ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; diff --git a/ssh/ssh_config.5 b/ssh/ssh_config.5 index 880f110..10650e1 100644 --- a/ssh/ssh_config.5 +++ b/ssh/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.229 2016/04/15 00:30:19 djm Exp $ -.Dd $Mdocdate: April 15 2016 $ +.\" $OpenBSD: ssh_config.5,v 1.230 2016/04/17 14:34:46 jmc Exp $ +.Dd $Mdocdate: April 17 2016 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -1021,14 +1021,14 @@ be listed early in the configuration file as it will not be applied to unknown options that appear before it. .It Cm Include Include the specified configuration file(s). -Multiple path names may be specified and each pathname may contain +Multiple pathnames may be specified and each pathname may contain .Xr glob 3 wildcards and, for user configurations, shell-like .Dq ~ references to user home directories. Files without absolute paths are assumed to be in .Pa ~/.ssh -if included in a user configurations file or +if included in a user configuration file or .Pa /etc/ssh if included from the system configuration file. .Cm Include diff --git a/ssh/sshbuf-misc.c b/ssh/sshbuf-misc.c index 2f75803..5ac8edc 100644 --- a/ssh/sshbuf-misc.c +++ b/ssh/sshbuf-misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf-misc.c,v 1.5 2015/10/05 17:11:21 djm Exp $ */ +/* $OpenBSD: sshbuf-misc.c,v 1.6 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -132,3 +132,26 @@ sshbuf_b64tod(struct sshbuf *buf, const char *b64) return 0; } +char * +sshbuf_dup_string(struct sshbuf *buf) +{ + const u_char *p = NULL, *s = sshbuf_ptr(buf); + size_t l = sshbuf_len(buf); + char *r; + + if (s == NULL || l > SIZE_MAX) + return NULL; + /* accept a nul only as the last character in the buffer */ + if (l > 0 && (p = memchr(s, '\0', l)) != NULL) { + if (p != s + l - 1) + return NULL; + l--; /* the nul is put back below */ + } + if ((r = malloc(l + 1)) == NULL) + return NULL; + if (l > 0) + memcpy(r, s, l); + r[l] = '\0'; + return r; +} + diff --git a/ssh/sshbuf.h b/ssh/sshbuf.h index dee8e86..8771b2d 100644 --- a/ssh/sshbuf.h +++ b/ssh/sshbuf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf.h,v 1.6 2015/12/10 07:01:35 mmcc Exp $ */ +/* $OpenBSD: sshbuf.h,v 1.7 2016/05/02 08:49:03 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -211,6 +211,13 @@ char *sshbuf_dtob64(struct sshbuf *buf); /* Decode base64 data and append it to the buffer */ int sshbuf_b64tod(struct sshbuf *buf, const char *b64); +/* + * Duplicate the contents of a buffer to a string (caller to free). + * Returns NULL on buffer error, or if the buffer contains a premature + * nul character. + */ +char *sshbuf_dup_string(struct sshbuf *buf); + /* Macros for decoding/encoding integers */ #define PEEK_U64(p) \ (((u_int64_t)(((const u_char *)(p))[0]) << 56) | \ diff --git a/ssh/sshconnect2.c b/ssh/sshconnect2.c index 85e2c4b..23bea70 100644 --- a/ssh/sshconnect2.c +++ b/ssh/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.240 2016/03/14 16:20:54 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.243 2016/05/02 10:26:04 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -193,11 +193,22 @@ ssh_kex2(struct ssh *ssh, u_short port) if ((r = kex_setup(ssh, myproposal)) != 0) fatal("kex_setup: %s", ssh_err(r)); #ifdef WITH_OPENSSL +<<<<<<< sshconnect2.c ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; +======= + kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; + kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; + kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; + kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; + kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; + kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; + kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; + kex->kex[KEX_ECDH_SHA2] = kexecdh_client; +>>>>>>> 1.243 #endif ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client; ssh->kex->client_version_string=client_version_string; @@ -1156,8 +1167,8 @@ sign_and_send_pubkey(struct ssh *ssh, struct identity *id) /* * If the key is an certificate, try to find a matching private key * and use it to complete the signature. - * If no such private key exists, return failure and continue with - * other methods of authentication. + * If no such private key exists, fall back to trying the certificate + * key itself in case it has a private half already loaded. */ if (sshkey_is_cert(id->key)) { matched = 0; @@ -2019,9 +2030,15 @@ authmethods_get(void) __func__, ssh_err(r)); } } +<<<<<<< sshconnect2.c if ((r = sshbuf_put_u8(b, 0)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); list = xstrdup((const char *)sshbuf_ptr(b)); sshbuf_free(b); +======= + if ((list = sshbuf_dup_string(&b)) == NULL) + fatal("%s: sshbuf_dup_string failed", __func__); + buffer_free(&b); +>>>>>>> 1.243 return list; } diff --git a/ssh/sshd.c b/ssh/sshd.c index cd5c254..feff4c1 100644 --- a/ssh/sshd.c +++ b/ssh/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.466 2016/03/07 19:02:43 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.469 2016/05/02 14:10:58 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -821,10 +821,16 @@ list_hostkey_types(void) break; } } +<<<<<<< sshd.c if ((r = sshbuf_put_u8(b, 0)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); ret = xstrdup((const char *)sshbuf_ptr(b)); sshbuf_free(b); +======= + if ((ret = sshbuf_dup_string(&b)) == NULL) + fatal("%s: sshbuf_dup_string failed", __func__); + buffer_free(&b); +>>>>>>> 1.469 debug("list_hostkey_types: %s", ret); return ret; } @@ -1029,11 +1035,18 @@ send_rexec_state(int fd, struct sshbuf *conf) * bignum p " * bignum q " */ +<<<<<<< sshd.c if ((m = sshbuf_new()) == NULL) fatal("%s: sshbuf_new failed", __func__); /* servconf.c:load_server_config() ensures a \0 at the end of cfg */ if ((r = sshbuf_put_cstring(m, (const char *)sshbuf_ptr(conf))) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); +======= + if ((m = sshbuf_new()) == NULL) + fatal("%s: sshbuf_new failed", __func__); + if ((r = sshbuf_put_stringb(m, conf)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); +>>>>>>> 1.469 #ifdef WITH_SSH1 if (sensitive_data.server_key != NULL && @@ -1054,8 +1067,13 @@ send_rexec_state(int fd, struct sshbuf *conf) fatal("%s: buffer error: %s", __func__, ssh_err(r)); } else #endif +<<<<<<< sshd.c if ((r = sshbuf_put_u32(m, 0)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); +======= + if ((r = sshbuf_put_u32(m, 1)) != 0) + fatal("%s: buffer error: %s", __func__, ssh_err(r)); +>>>>>>> 1.469 if (ssh_msg_send(fd, 0, m) == -1) fatal("%s: ssh_msg_send failed", __func__); @@ -1086,10 +1104,17 @@ recv_rexec_state(int fd, struct sshbuf *conf) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (ver != 0) fatal("%s: rexec version mismatch", __func__); +<<<<<<< sshd.c if ((r = sshbuf_get_cstring(m, &cp, &len)) != 0 || (conf != NULL && (r = sshbuf_put(conf, cp, len + 1)) != 0) || (r = sshbuf_get_u32(m, &key_follows)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); +======= + + cp = buffer_get_string(&m, &len); + if (conf != NULL) + buffer_append(conf, cp, len); +>>>>>>> 1.469 free(cp); if (key_follows) { @@ -2511,6 +2536,9 @@ do_ssh2_kex(struct ssh *ssh) #ifdef WITH_OPENSSL kex->kex[KEX_DH_GRP1_SHA1] = kexdh_server; kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; + kex->kex[KEX_DH_GRP14_SHA256] = kexdh_server; + kex->kex[KEX_DH_GRP16_SHA512] = kexdh_server; + kex->kex[KEX_DH_GRP18_SHA512] = kexdh_server; kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; kex->kex[KEX_ECDH_SHA2] = kexecdh_server; diff --git a/ssh/sshd_config.5 b/ssh/sshd_config.5 index 4f52988..85a5621 100644 --- a/ssh/sshd_config.5 +++ b/ssh/sshd_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.221 2016/03/17 17:19:43 djm Exp $ -.Dd $Mdocdate: March 17 2016 $ +.\" $OpenBSD: sshd_config.5,v 1.222 2016/04/27 13:53:48 jmc Exp $ +.Dd $Mdocdate: April 27 2016 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -173,6 +173,8 @@ By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts. +HOST criteria may additionally contain addresses to match in CIDR +address/masklen format. The allow/deny directives are processed in the following order: .Cm DenyUsers , .Cm AllowUsers , @@ -561,6 +563,8 @@ By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts. +HOST criteria may additionally contain addresses to match in CIDR +address/masklen format. The allow/deny directives are processed in the following order: .Cm DenyUsers , .Cm AllowUsers , diff --git a/ssh/sshkey.c b/ssh/sshkey.c index 066e028..d10ce7d 100644 --- a/ssh/sshkey.c +++ b/ssh/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.32 2016/04/09 12:39:30 djm Exp $ */ +/* $OpenBSD: sshkey.c,v 1.33 2016/05/02 09:36:42 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -2327,7 +2327,7 @@ sshkey_drop_cert(struct sshkey *k) /* Sign a certified key, (re-)generating the signed certblob. */ int -sshkey_certify(struct sshkey *k, struct sshkey *ca) +sshkey_certify(struct sshkey *k, struct sshkey *ca, const char *alg) { struct sshbuf *principals = NULL; u_char *ca_blob = NULL, *sig_blob = NULL, nonce[32]; @@ -2415,7 +2415,7 @@ sshkey_certify(struct sshkey *k, struct sshkey *ca) /* Sign the whole mess */ if ((ret = sshkey_sign(ca, &sig_blob, &sig_len, sshbuf_ptr(cert), - sshbuf_len(cert), NULL, 0)) != 0) + sshbuf_len(cert), alg, 0)) != 0) goto out; /* Append signature and we are done */ diff --git a/ssh/sshkey.h b/ssh/sshkey.h index 0f0336c..7d4a8de 100644 --- a/ssh/sshkey.h +++ b/ssh/sshkey.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.h,v 1.12 2015/12/04 16:41:28 markus Exp $ */ +/* $OpenBSD: sshkey.h,v 1.13 2016/05/02 09:36:42 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -131,7 +131,7 @@ int sshkey_type_is_cert(int); int sshkey_type_plain(int); int sshkey_to_certified(struct sshkey *); int sshkey_drop_cert(struct sshkey *); -int sshkey_certify(struct sshkey *, struct sshkey *); +int sshkey_certify(struct sshkey *, struct sshkey *, const char *); int sshkey_cert_copy(const struct sshkey *, struct sshkey *); int sshkey_cert_check_authority(const struct sshkey *, int, int, const char *, const char **); From a63c6d7fbd8d5b3c34fca10a95e8f274e55242ad Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 3 May 2016 19:51:29 +1000 Subject: [PATCH 13/14] resolve conflicts --- ssh/Makefile.inc | 2 +- ssh/auth2-chall.c | 10 ++-------- ssh/auth2.c | 16 ++-------------- ssh/channels.c | 12 +++++++++--- ssh/monitor.c | 42 ------------------------------------------ ssh/servconf.c | 4 ---- ssh/serverloop.c | 20 +++++++++++++++----- ssh/sshconnect2.c | 25 +++++-------------------- ssh/sshd.c | 33 +++------------------------------ 9 files changed, 37 insertions(+), 127 deletions(-) diff --git a/ssh/Makefile.inc b/ssh/Makefile.inc index d280216..f755b5d 100644 --- a/ssh/Makefile.inc +++ b/ssh/Makefile.inc @@ -39,7 +39,7 @@ CDIAGFLAGS+= -Wno-unused-parameter # Not clean for this yet #CDIAGFLAGS+= -Wcast-qual # XXX not clean #CDIAGFLAGS+= -Wcast-align # XXX can't be clean with sockaddr casts? -#CDIAGFLAGS+= -Werror +CDIAGFLAGS+= -Werror #DEBUG=-g WARNINGS=yes diff --git a/ssh/auth2-chall.c b/ssh/auth2-chall.c index 5ce6d49..4783885 100644 --- a/ssh/auth2-chall.c +++ b/ssh/auth2-chall.c @@ -76,16 +76,10 @@ kbdint_alloc(const char *devs) fatal("%s: buffer error: %s", __func__, ssh_err(r)); } -<<<<<<< auth2-chall.c - if ((r = sshbuf_put_u8(b, 0)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); kbdintctxt->devices = xstrdup((const char *)sshbuf_ptr(b)); - sshbuf_free(b); -======= - if ((kbdintctxt->devices = sshbuf_dup_string(&b)) == NULL) + if ((kbdintctxt->devices = sshbuf_dup_string(b)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); - buffer_free(&b); ->>>>>>> 1.44 + sshbuf_free(b); } else { kbdintctxt->devices = xstrdup(devs); } diff --git a/ssh/auth2.c b/ssh/auth2.c index 379406e..a34abf1 100644 --- a/ssh/auth2.c +++ b/ssh/auth2.c @@ -389,25 +389,13 @@ authmethods_get(struct authctxt *authctxt) if (!auth2_method_allowed(authctxt, authmethods[i]->name, NULL)) continue; -<<<<<<< auth2.c if ((r = sshbuf_putf(b, "%s%s", sshbuf_len(b) ? "," : "", authmethods[i]->name)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); } - if ((r = sshbuf_put_u8(b, 0)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); - list = xstrdup((const char *)sshbuf_ptr(b)); - sshbuf_free(b); -======= - if (buffer_len(&b) > 0) - buffer_append(&b, ",", 1); - buffer_append(&b, authmethods[i]->name, - strlen(authmethods[i]->name)); - } - if ((list = sshbuf_dup_string(&b)) == NULL) + if ((list = sshbuf_dup_string(b)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); - buffer_free(&b); ->>>>>>> 1.136 + sshbuf_free(b); return list; } diff --git a/ssh/channels.c b/ssh/channels.c index 1100c08..b00408d 100644 --- a/ssh/channels.c +++ b/ssh/channels.c @@ -3606,14 +3606,20 @@ channel_input_port_forward_request(struct ssh *ssh, int is_root, { int r, success = 0; struct Forward fwd; + u_int listen_port, connect_port; /* Get arguments from the packet. */ memset(&fwd, 0, sizeof(fwd)); - if ((r = sshpkt_get_u32(ssh, &fwd.listen_port)) != 0 || + if ((r = sshpkt_get_u32(ssh, &listen_port)) != 0 || (r = sshpkt_get_cstring(ssh, &fwd.connect_host, NULL)) != 0 || - (r = sshpkt_get_u32(ssh, &fwd.connect_port)) != 0) + (r = sshpkt_get_u32(ssh, &connect_port)) != 0) fatal("%s: %s", __func__, ssh_err(r)); - + if (listen_port > INT_MAX || connect_port > INT_MAX) { + ssh_packet_disconnect(ssh, + "Invalid port number in forward request"); + } + fwd.listen_port = (int)listen_port; + fwd.connect_port = (int)connect_port; /* * Check that an unprivileged user is not trying to forward a * privileged port. diff --git a/ssh/monitor.c b/ssh/monitor.c index 1658e73..1590fc9 100644 --- a/ssh/monitor.c +++ b/ssh/monitor.c @@ -1030,7 +1030,6 @@ mm_answer_keyallowed(int sock, struct sshbuf *m) static int monitor_valid_userblob(u_char *data, u_int datalen) { -<<<<<<< monitor.c struct sshbuf *b; u_char *p, c; const u_char *cp; @@ -1044,20 +1043,6 @@ monitor_valid_userblob(u_char *data, u_int datalen) if (active_state->compat & SSH_OLD_SESSIONID) { cp = sshbuf_ptr(b); len = sshbuf_len(b); -======= - Buffer b; - u_char *p; - char *userstyle, *cp; - u_int len; - int fail = 0; - - buffer_init(&b); - buffer_append(&b, data, datalen); - - if (datafellows & SSH_OLD_SESSIONID) { - p = buffer_ptr(&b); - len = buffer_len(&b); ->>>>>>> 1.160 if ((session_id2 == NULL) || (len < session_id2_len) || (timingsafe_bcmp(cp, session_id2, session_id2_len) != 0)) @@ -1077,61 +1062,34 @@ monitor_valid_userblob(u_char *data, u_int datalen) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (c != SSH2_MSG_USERAUTH_REQUEST) fail++; -<<<<<<< monitor.c -======= - cp = buffer_get_cstring(&b, NULL); ->>>>>>> 1.160 xasprintf(&userstyle, "%s%s%s", authctxt->user, authctxt->style ? ":" : "", authctxt->style ? authctxt->style : ""); -<<<<<<< monitor.c if ((r = sshbuf_get_cstring(b, &username, NULL)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (strcmp(userstyle, username) != 0) { logit("wrong user name sent to monitor: expected %s != %.100s", userstyle, username); -======= - if (strcmp(userstyle, cp) != 0) { - logit("wrong user name passed to monitor: " - "expected %s != %.100s", userstyle, cp); ->>>>>>> 1.160 fail++; } free(username); free(userstyle); -<<<<<<< monitor.c if ((r = sshbuf_skip_string(b)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (active_state->compat & SSH_BUG_PKAUTH) { if ((r = sshbuf_get_u8(b, &c)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (!c) -======= - free(cp); - buffer_skip_string(&b); - if (datafellows & SSH_BUG_PKAUTH) { - if (!buffer_get_char(&b)) ->>>>>>> 1.160 fail++; } else { -<<<<<<< monitor.c if ((r = sshbuf_get_cstring(b, &methodname, NULL)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (strcmp("publickey", methodname) != 0) -======= - cp = buffer_get_cstring(&b, NULL); - if (strcmp("publickey", cp) != 0) ->>>>>>> 1.160 fail++; -<<<<<<< monitor.c free(methodname); if ((r = sshbuf_get_u8(b, &c)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (!c) -======= - free(cp); - if (!buffer_get_char(&b)) ->>>>>>> 1.160 fail++; if ((r = sshbuf_skip_string(b)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); diff --git a/ssh/servconf.c b/ssh/servconf.c index 56004d8..0847eb3 100644 --- a/ssh/servconf.c +++ b/ssh/servconf.c @@ -2009,12 +2009,8 @@ parse_server_config(ServerOptions *options, const char *filename, debug2("%s: config %s len %zu", __func__, filename, sshbuf_len(conf)); -<<<<<<< servconf.c - obuf = cbuf = xstrdup((const char *)sshbuf_ptr(conf)); -======= if ((obuf = cbuf = sshbuf_dup_string(conf)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); ->>>>>>> 1.287 active = connectinfo ? 0 : 1; linenum = 1; while ((cp = strsep(&cbuf, "\n")) != NULL) { diff --git a/ssh/serverloop.c b/ssh/serverloop.c index de3610d..3937b79 100644 --- a/ssh/serverloop.c +++ b/ssh/serverloop.c @@ -1251,16 +1251,21 @@ server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) if (strcmp(rtype, "tcpip-forward") == 0) { struct authctxt *authctxt = ssh->authctxt; struct Forward fwd; + u_int listen_port; if (authctxt->pw == NULL || !authctxt->valid) fatal("server_input_global_request: no/invalid user"); memset(&fwd, 0, sizeof(fwd)); if ((r = sshpkt_get_cstring(ssh, &fwd.listen_host, NULL)) != 0 || - (r = sshpkt_get_u32(ssh, &fwd.listen_port)) != 0) + (r = sshpkt_get_u32(ssh, &listen_port)) != 0) goto out; debug("server_input_global_request: tcpip-forward listen %s port %d", - fwd.listen_host, fwd.listen_port); - + fwd.listen_host, listen_port); + if (listen_port > INT_MAX) { + r = SSH_ERR_INVALID_FORMAT; + goto out; + } + fwd.listen_port = (int)listen_port; /* check permissions */ if ((options.allow_tcp_forwarding & FORWARD_REMOTE) == 0 || no_port_forwarding_flag || @@ -1283,14 +1288,19 @@ server_input_global_request(int type, u_int32_t seq, struct ssh *ssh) fatal("%s: sshbuf_put_u32: %s", __func__, ssh_err(r)); } else if (strcmp(rtype, "cancel-tcpip-forward") == 0) { struct Forward fwd; + u_int listen_port; memset(&fwd, 0, sizeof(fwd)); if ((r = sshpkt_get_cstring(ssh, &fwd.listen_host, NULL)) != 0 || - (r = sshpkt_get_u32(ssh, &fwd.listen_port)) != 0) + (r = sshpkt_get_u32(ssh, &listen_port)) != 0) goto out; debug("%s: cancel-tcpip-forward addr %s port %d", __func__, fwd.listen_host, fwd.listen_port); - + if (listen_port > INT_MAX) { + r = SSH_ERR_INVALID_FORMAT; + goto out; + } + fwd.listen_port = (int)listen_port; success = channel_cancel_rport_listener(&fwd); free(fwd.listen_host); } else if (strcmp(rtype, "streamlocal-forward@openssh.com") == 0) { diff --git a/ssh/sshconnect2.c b/ssh/sshconnect2.c index 23bea70..64468b6 100644 --- a/ssh/sshconnect2.c +++ b/ssh/sshconnect2.c @@ -193,22 +193,14 @@ ssh_kex2(struct ssh *ssh, u_short port) if ((r = kex_setup(ssh, myproposal)) != 0) fatal("kex_setup: %s", ssh_err(r)); #ifdef WITH_OPENSSL -<<<<<<< sshconnect2.c ssh->kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; + ssh->kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; + ssh->kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; + ssh->kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; -======= - kex->kex[KEX_DH_GRP1_SHA1] = kexdh_client; - kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; - kex->kex[KEX_DH_GRP14_SHA256] = kexdh_client; - kex->kex[KEX_DH_GRP16_SHA512] = kexdh_client; - kex->kex[KEX_DH_GRP18_SHA512] = kexdh_client; - kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; - kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; - kex->kex[KEX_ECDH_SHA2] = kexecdh_client; ->>>>>>> 1.243 #endif ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client; ssh->kex->client_version_string=client_version_string; @@ -2030,15 +2022,8 @@ authmethods_get(void) __func__, ssh_err(r)); } } -<<<<<<< sshconnect2.c - if ((r = sshbuf_put_u8(b, 0)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); - list = xstrdup((const char *)sshbuf_ptr(b)); - sshbuf_free(b); -======= - if ((list = sshbuf_dup_string(&b)) == NULL) + if ((list = sshbuf_dup_string(b)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); - buffer_free(&b); ->>>>>>> 1.243 + sshbuf_free(b); return list; } diff --git a/ssh/sshd.c b/ssh/sshd.c index feff4c1..aa2157b 100644 --- a/ssh/sshd.c +++ b/ssh/sshd.c @@ -821,16 +821,9 @@ list_hostkey_types(void) break; } } -<<<<<<< sshd.c - if ((r = sshbuf_put_u8(b, 0)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); - ret = xstrdup((const char *)sshbuf_ptr(b)); - sshbuf_free(b); -======= - if ((ret = sshbuf_dup_string(&b)) == NULL) + if ((ret = sshbuf_dup_string(b)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); - buffer_free(&b); ->>>>>>> 1.469 + sshbuf_free(b); debug("list_hostkey_types: %s", ret); return ret; } @@ -1035,18 +1028,10 @@ send_rexec_state(int fd, struct sshbuf *conf) * bignum p " * bignum q " */ -<<<<<<< sshd.c - if ((m = sshbuf_new()) == NULL) - fatal("%s: sshbuf_new failed", __func__); - /* servconf.c:load_server_config() ensures a \0 at the end of cfg */ - if ((r = sshbuf_put_cstring(m, (const char *)sshbuf_ptr(conf))) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); -======= if ((m = sshbuf_new()) == NULL) fatal("%s: sshbuf_new failed", __func__); if ((r = sshbuf_put_stringb(m, conf)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); ->>>>>>> 1.469 #ifdef WITH_SSH1 if (sensitive_data.server_key != NULL && @@ -1067,13 +1052,8 @@ send_rexec_state(int fd, struct sshbuf *conf) fatal("%s: buffer error: %s", __func__, ssh_err(r)); } else #endif -<<<<<<< sshd.c - if ((r = sshbuf_put_u32(m, 0)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); -======= if ((r = sshbuf_put_u32(m, 1)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); ->>>>>>> 1.469 if (ssh_msg_send(fd, 0, m) == -1) fatal("%s: ssh_msg_send failed", __func__); @@ -1104,17 +1084,10 @@ recv_rexec_state(int fd, struct sshbuf *conf) fatal("%s: buffer error: %s", __func__, ssh_err(r)); if (ver != 0) fatal("%s: rexec version mismatch", __func__); -<<<<<<< sshd.c if ((r = sshbuf_get_cstring(m, &cp, &len)) != 0 || - (conf != NULL && (r = sshbuf_put(conf, cp, len + 1)) != 0) || + (conf != NULL && (r = sshbuf_put(conf, cp, len)) != 0) || (r = sshbuf_get_u32(m, &key_follows)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); -======= - - cp = buffer_get_string(&m, &len); - if (conf != NULL) - buffer_append(conf, cp, len); ->>>>>>> 1.469 free(cp); if (key_follows) { From 55d7155785888e590ff6a151e1ecc3e5525627d2 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 3 May 2016 19:53:36 +1000 Subject: [PATCH 14/14] cvs up; no conflicts --- regress/CVS/Entries | 170 ++++++++++++++++++++-------------------- regress/Makefile | 47 +++++------ regress/cert-hostkey.sh | 126 +++++++++++++++-------------- regress/cert-userkey.sh | 47 +++++++---- regress/forwarding.sh | 4 +- regress/test-exec.sh | 10 ++- 6 files changed, 221 insertions(+), 183 deletions(-) diff --git a/regress/CVS/Entries b/regress/CVS/Entries index 7b0ba02..5cb1f1f 100644 --- a/regress/CVS/Entries +++ b/regress/CVS/Entries @@ -1,86 +1,88 @@ /host-expand.sh/1.4/Result of merge// +/Makefile/1.87/Result of merge// +/addrmatch.sh/1.4/Wed Apr 27 11:45:39 2016// +/agent-getpeereid.sh/1.5/Wed Apr 27 11:45:39 2016// +/agent-pkcs11.sh/1.2/Wed Apr 27 11:45:39 2016// +/agent-ptrace.sh/1.3/Tue May 3 08:32:34 2016// +/agent-timeout.sh/1.3/Tue May 3 08:32:34 2016// +/agent.sh/1.11/Tue May 3 08:32:34 2016// +/banner.sh/1.2/Wed Apr 27 11:45:39 2016// +/broken-pipe.sh/1.5/Tue May 3 08:32:34 2016// +/brokenkeys.sh/1.1/Wed Apr 27 11:45:39 2016// +/cert-file.sh/1.2/Tue May 3 08:32:34 2016// +/cert-hostkey.sh/1.14/Tue May 3 09:51:54 2016// +/cert-userkey.sh/1.15/Tue May 3 09:51:54 2016// +/cfginclude.sh/1.1/Fri Apr 15 00:31:10 2016// +/cfgmatch.sh/1.9/Tue May 3 08:32:34 2016// +/cfgparse.sh/1.5/Tue May 3 08:32:34 2016// +/cipher-speed.sh/1.13/Tue May 3 08:32:34 2016// +/conch-ciphers.sh/1.3/Wed Apr 27 11:45:39 2016// +/connect-privsep.sh/1.6/Tue May 3 08:32:34 2016// +/connect.sh/1.5/Tue May 3 08:32:34 2016// +/dhgex.sh/1.3/Tue May 3 08:32:34 2016// +/dsa_ssh2.prv/1.1/Wed Apr 27 11:45:39 2016// +/dsa_ssh2.pub/1.1/Wed Apr 27 11:45:39 2016// +/dynamic-forward.sh/1.11/Tue May 3 08:32:34 2016// +/envpass.sh/1.4/Wed Apr 27 11:45:39 2016// +/exit-status.sh/1.7/Tue May 3 08:32:34 2016// +/forcecommand.sh/1.3/Tue May 3 08:32:34 2016// +/forward-control.sh/1.3/Tue May 3 08:32:34 2016// +/forwarding.sh/1.16/Tue May 3 09:51:54 2016// +/hostkey-agent.sh/1.6/Tue May 3 08:32:34 2016// +/hostkey-rotate.sh/1.5/Tue May 3 08:32:34 2016// +/integrity.sh/1.18/Tue May 3 08:32:34 2016// +/kextype.sh/1.6/Tue May 3 08:32:34 2016// +/key-options.sh/1.3/Tue May 3 08:32:34 2016// +/keygen-change.sh/1.5/Tue May 3 08:32:34 2016// +/keygen-convert.sh/1.1/Wed Apr 27 11:45:39 2016// +/keygen-knownhosts.sh/1.3/Tue May 3 08:32:34 2016// +/keys-command.sh/1.3/Tue May 3 08:32:34 2016// +/keyscan.sh/1.5/Tue May 3 08:32:34 2016// +/keytype.sh/1.4/Tue May 3 08:32:34 2016// +/krl.sh/1.6/Tue May 3 08:32:34 2016// +/limit-keytype.sh/1.4/Tue May 3 08:32:34 2016// +/localcommand.sh/1.3/Tue May 3 08:32:34 2016// +/login-timeout.sh/1.7/Wed Apr 27 11:45:39 2016// +/modpipe.c/1.6/Wed Apr 27 11:45:39 2016// +/multiplex.sh/1.27/Wed Apr 27 11:45:39 2016// +/multipubkey.sh/1.1/Wed Apr 27 11:45:39 2016// +/portnum.sh/1.2/Wed Apr 27 11:45:39 2016// +/principals-command.sh/1.1/Tue May 3 08:32:34 2016// +/proto-mismatch.sh/1.4/Tue May 3 08:32:34 2016// +/proto-version.sh/1.5/Tue May 3 08:32:34 2016// +/proxy-connect.sh/1.9/Tue May 3 08:32:34 2016// +/putty-ciphers.sh/1.4/Wed Apr 27 11:45:39 2016// +/putty-kex.sh/1.3/Wed Apr 27 11:45:39 2016// +/putty-transfer.sh/1.3/Wed Apr 27 11:45:39 2016// +/reconfigure.sh/1.5/Tue May 3 08:32:34 2016// +/reexec.sh/1.8/Tue May 3 08:32:34 2016// +/rekey.sh/1.17/Tue May 3 08:32:34 2016// +/rsa_openssh.prv/1.1/Wed Apr 27 11:45:39 2016// +/rsa_openssh.pub/1.1/Wed Apr 27 11:45:39 2016// +/rsa_ssh2.prv/1.1/Wed Apr 27 11:45:39 2016// +/scp-ssh-wrapper.sh/1.3/Wed Apr 27 11:45:39 2016// +/scp.sh/1.10/Wed Apr 27 11:45:39 2016// +/sftp-badcmds.sh/1.6/Wed Apr 27 11:45:39 2016// +/sftp-batch.sh/1.5/Wed Apr 27 11:45:39 2016// +/sftp-chroot.sh/1.4/Wed Apr 27 11:45:39 2016// +/sftp-cmds.sh/1.14/Wed Apr 27 11:45:39 2016// +/sftp-glob.sh/1.4/Wed Apr 27 11:45:39 2016// +/sftp-perm.sh/1.2/Wed Apr 27 11:45:39 2016// +/sftp.sh/1.5/Wed Apr 27 11:45:39 2016// +/ssh-com-client.sh/1.7/Wed Apr 27 11:45:39 2016// +/ssh-com-keygen.sh/1.4/Wed Apr 27 11:45:39 2016// +/ssh-com-sftp.sh/1.7/Wed Apr 27 11:45:39 2016// +/ssh-com.sh/1.9/Tue May 3 08:32:34 2016// +/ssh2putty.sh/1.3/Tue May 3 08:32:34 2016// +/sshd-log-wrapper.sh/1.3/Wed Apr 27 11:45:39 2016// +/stderr-after-eof.sh/1.2/Wed Apr 27 11:45:39 2016// +/stderr-data.sh/1.4/Tue May 3 08:32:34 2016// +/t11.ok/1.1/Wed Apr 27 11:45:39 2016// +/t4.ok/1.2/Wed Apr 27 11:45:39 2016// +/t5.ok/1.1/Wed Apr 27 11:45:39 2016// +/test-exec.sh/1.53/Tue May 3 09:51:54 2016// +/transfer.sh/1.3/Tue May 3 08:32:34 2016// +/try-ciphers.sh/1.25/Tue May 3 08:32:34 2016// +/yes-head.sh/1.5/Tue May 3 08:32:34 2016// +D/misc//// D/unittests//// -/addrmatch.sh/1.4/Mon Feb 1 06:34:45 2016// -/agent-getpeereid.sh/1.5/Mon Feb 1 06:34:45 2016// -/agent-pkcs11.sh/1.2/Mon Feb 1 06:34:45 2016// -/agent-ptrace.sh/1.3/Mon Feb 1 06:34:45 2016// -/agent-timeout.sh/1.3/Mon Feb 1 06:34:45 2016// -/agent.sh/1.11/Mon Feb 1 06:34:45 2016// -/banner.sh/1.2/Mon Feb 1 06:34:45 2016// -/broken-pipe.sh/1.5/Mon Feb 1 06:34:45 2016// -/brokenkeys.sh/1.1/Mon Feb 1 06:34:45 2016// -/cert-file.sh/1.2/Mon Feb 1 06:34:45 2016// -/cert-hostkey.sh/1.13/Mon Feb 1 06:34:45 2016// -/cert-userkey.sh/1.14/Mon Feb 1 06:34:45 2016// -/cfgmatch.sh/1.9/Mon Feb 1 06:34:45 2016// -/cfgparse.sh/1.5/Mon Feb 1 06:34:45 2016// -/cipher-speed.sh/1.13/Mon Feb 1 06:34:45 2016// -/conch-ciphers.sh/1.3/Mon Feb 1 06:34:45 2016// -/connect-privsep.sh/1.6/Mon Feb 1 06:34:45 2016// -/connect.sh/1.5/Mon Feb 1 06:34:45 2016// -/dhgex.sh/1.3/Mon Feb 1 06:34:45 2016// -/dsa_ssh2.prv/1.1/Mon Feb 1 06:34:45 2016// -/dsa_ssh2.pub/1.1/Mon Feb 1 06:34:45 2016// -/dynamic-forward.sh/1.11/Mon Feb 1 06:34:45 2016// -/envpass.sh/1.4/Mon Feb 1 06:34:45 2016// -/exit-status.sh/1.7/Mon Feb 1 06:34:45 2016// -/forcecommand.sh/1.3/Mon Feb 1 06:34:45 2016// -/forward-control.sh/1.3/Mon Feb 1 06:34:45 2016// -/forwarding.sh/1.15/Mon Feb 1 06:34:45 2016// -/hostkey-agent.sh/1.6/Mon Feb 1 06:34:45 2016// -/hostkey-rotate.sh/1.5/Mon Feb 1 06:34:45 2016// -/kextype.sh/1.6/Mon Feb 1 06:34:45 2016// -/key-options.sh/1.3/Mon Feb 1 06:34:45 2016// -/keygen-change.sh/1.5/Mon Feb 1 06:34:45 2016// -/keygen-convert.sh/1.1/Mon Feb 1 06:34:45 2016// -/keygen-knownhosts.sh/1.3/Mon Feb 1 06:34:45 2016// -/keys-command.sh/1.3/Mon Feb 1 06:34:45 2016// -/keyscan.sh/1.5/Mon Feb 1 06:34:45 2016// -/keytype.sh/1.4/Mon Feb 1 06:34:45 2016// -/krl.sh/1.6/Mon Feb 1 06:34:45 2016// -/limit-keytype.sh/1.4/Mon Feb 1 06:34:45 2016// -/localcommand.sh/1.3/Mon Feb 1 06:34:45 2016// -/login-timeout.sh/1.7/Mon Feb 1 06:34:45 2016// -/modpipe.c/1.6/Mon Feb 1 06:34:45 2016// -/multiplex.sh/1.27/Mon Feb 1 06:34:45 2016// -/multipubkey.sh/1.1/Mon Feb 1 06:34:45 2016// -/portnum.sh/1.2/Mon Feb 1 06:34:45 2016// -/principals-command.sh/1.1/Mon Feb 1 06:34:45 2016// -/proto-mismatch.sh/1.4/Mon Feb 1 06:34:45 2016// -/proto-version.sh/1.5/Mon Feb 1 06:34:45 2016// -/putty-ciphers.sh/1.4/Mon Feb 1 06:34:45 2016// -/putty-kex.sh/1.3/Mon Feb 1 06:34:45 2016// -/putty-transfer.sh/1.3/Mon Feb 1 06:34:45 2016// -/reconfigure.sh/1.5/Mon Feb 1 06:34:45 2016// -/reexec.sh/1.8/Mon Feb 1 06:34:45 2016// -/rekey.sh/1.17/Mon Feb 1 06:34:58 2016// -/rsa_openssh.prv/1.1/Mon Feb 1 06:34:45 2016// -/rsa_openssh.pub/1.1/Mon Feb 1 06:34:45 2016// -/rsa_ssh2.prv/1.1/Mon Feb 1 06:34:45 2016// -/scp-ssh-wrapper.sh/1.3/Mon Feb 1 06:34:45 2016// -/scp.sh/1.10/Mon Feb 1 06:34:45 2016// -/sftp-badcmds.sh/1.6/Mon Feb 1 06:34:45 2016// -/sftp-batch.sh/1.5/Mon Feb 1 06:34:45 2016// -/sftp-chroot.sh/1.4/Mon Feb 1 06:34:45 2016// -/sftp-cmds.sh/1.14/Mon Feb 1 06:34:45 2016// -/sftp-glob.sh/1.4/Mon Feb 1 06:34:45 2016// -/sftp-perm.sh/1.2/Mon Feb 1 06:34:45 2016// -/sftp.sh/1.5/Mon Feb 1 06:34:45 2016// -/ssh-com-client.sh/1.7/Mon Feb 1 06:34:45 2016// -/ssh-com-keygen.sh/1.4/Mon Feb 1 06:34:45 2016// -/ssh-com-sftp.sh/1.7/Mon Feb 1 06:34:45 2016// -/ssh-com.sh/1.9/Mon Feb 1 06:34:45 2016// -/ssh2putty.sh/1.3/Mon Feb 1 06:34:45 2016// -/sshd-log-wrapper.sh/1.3/Mon Feb 1 06:34:45 2016// -/stderr-after-eof.sh/1.2/Mon Feb 1 06:34:45 2016// -/stderr-data.sh/1.4/Mon Feb 1 06:34:45 2016// -/t11.ok/1.1/Mon Feb 1 06:34:45 2016// -/t4.ok/1.2/Mon Feb 1 06:34:45 2016// -/t5.ok/1.1/Mon Feb 1 06:34:45 2016// -/test-exec.sh/1.51/Mon Feb 1 06:34:45 2016// -/transfer.sh/1.3/Mon Feb 1 06:34:45 2016// -/try-ciphers.sh/1.25/Mon Feb 1 06:34:45 2016// -/yes-head.sh/1.5/Mon Feb 1 06:34:45 2016// -/Makefile/1.84/Result of merge+Tue Apr 12 09:47:07 2016// -/integrity.sh/1.18/Tue Apr 12 09:47:07 2016// -/proxy-connect.sh/1.9/Tue Apr 12 09:47:07 2016// diff --git a/regress/Makefile b/regress/Makefile index eb2217b..9181793 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.84 2016/03/04 02:30:36 djm Exp $ +# $OpenBSD: Makefile,v 1.87 2016/04/15 02:55:53 djm Exp $ .ifndef SKIP_UNIT SUBDIR= unittests @@ -8,10 +8,6 @@ SUBDIR+= misc REGRESS_FAIL_EARLY= yes REGRESS_TARGETS= t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 -CLEANFILES+= t2.out t6.out1 t6.out2 t7.out t7.out.pub copy.1 copy.2 \ - t8.out t8.out.pub t9.out t9.out.pub t10.out t10.out.pub \ - t12.out t12.out.pub - LTESTS= connect \ proxy-connect \ connect-privsep \ @@ -71,7 +67,8 @@ LTESTS= connect \ keygen-knownhosts \ hostkey-rotate \ principals-command \ - cert-file + cert-file \ + cfginclude # works only with s-bits # agent-ptrace \ @@ -82,22 +79,28 @@ INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers #LTESTS= cipher-speed USER!= id -un -CLEANFILES+= *.core authorized_keys_${USER} known_hosts pidfile \ - ssh_config sshd_config.orig ssh_proxy sshd_config sshd_proxy \ - rsa.pub rsa rsa1.pub rsa1 host.rsa host.rsa1 \ - rsa-agent rsa-agent.pub rsa1-agent rsa1-agent.pub \ - ls.copy banner.in banner.out empty.in \ - scp-ssh-wrapper.exe ssh_proxy_envpass remote_pid \ - sshd_proxy_bak rsa_ssh2_cr.prv rsa_ssh2_crnl.prv \ - known_hosts-cert host_ca_key* cert_user_key* cert_host_key* \ - authorized_principals_${USER} expect actual ready \ - sshd_proxy.* authorized_keys_${USER}.* revoked-* krl-* \ - ssh.log failed-ssh.log sshd.log failed-sshd.log \ - regress.log failed-regress.log ssh-log-wrapper.sh \ - sftp-server.sh sftp-server.log sftp.log kh.* hkr.* \ - user_key* user_ca* host_* key.* agent-key.* ed25519-agent* \ - known_hosts.* data modpipe ssh_proxy keys-command-args \ - scp-ssh-wrapper.scp ssh_proxy_bak +CLEANFILES+= *.core actual agent-key.* authorized_keys_${USER} \ + authorized_keys_${USER}.* authorized_principals_${USER} \ + banner.in banner.out cert_host_key* cert_user_key* \ + copy.1 copy.2 data ed25519-agent ed25519-agent* \ + ed25519-agent.pub empty.in expect failed-regress.log \ + failed-ssh.log failed-sshd.log hkr.* host.rsa host.rsa1 \ + host_* host_ca_key* host_krl_* host_revoked_* key.* \ + key.dsa-* key.ecdsa-* key.ed25519-512 key.ed25519-512.pub \ + key.rsa-* keys-command-args kh.* known_hosts \ + known_hosts-cert known_hosts.* krl-* ls.copy modpipe \ + netcat pidfile putty.rsa2 ready regress.log remote_pid \ + revoked-* rsa rsa-agent rsa-agent.pub rsa.pub rsa1 \ + rsa1-agent rsa1-agent.pub rsa1.pub rsa_ssh2_cr.prv \ + rsa_ssh2_crnl.prv scp-ssh-wrapper.exe \ + scp-ssh-wrapper.scp setuid-allowed sftp-server.log \ + sftp-server.sh sftp.log ssh-log-wrapper.sh ssh.log \ + ssh_config ssh_config.* ssh_proxy ssh_proxy_bak \ + ssh_proxy_envpass sshd.log sshd_config sshd_config.orig \ + sshd_proxy sshd_proxy.* sshd_proxy_bak sshd_proxy_orig \ + t10.out t10.out.pub t12.out t12.out.pub t2.out t3.out \ + t6.out1 t6.out2 t7.out t7.out.pub t8.out t8.out.pub \ + t9.out t9.out.pub testdata user_*key* user_ca* user_key* SUDO_CLEAN+= /var/run/testdata_${USER} /var/run/keycommand_${USER} diff --git a/regress/cert-hostkey.sh b/regress/cert-hostkey.sh index 3f53922..62261cf 100644 --- a/regress/cert-hostkey.sh +++ b/regress/cert-hostkey.sh @@ -1,4 +1,4 @@ -# $OpenBSD: cert-hostkey.sh,v 1.13 2015/07/10 06:23:25 markus Exp $ +# $OpenBSD: cert-hostkey.sh,v 1.14 2016/05/02 09:52:00 djm Exp $ # Placed in the Public Domain. tid="certified host keys" @@ -30,34 +30,51 @@ cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak HOSTS='localhost-with-alias,127.0.0.1,::1' -# Create a CA key and add it to known hosts. Ed25519 chosed for speed. +kh_ca() { + for k in "$@" ; do + printf "@cert-authority $HOSTS " + cat $OBJ/$k || fatal "couldn't cat $k" + done +} +kh_revoke() { + for k in "$@" ; do + printf "@revoked * " + cat $OBJ/$k || fatal "couldn't cat $k" + done +} + +# Create a CA key and add it to known hosts. Ed25519 chosen for speed. +# RSA for testing RSA/SHA2 signatures. ${SSHKEYGEN} -q -N '' -t ed25519 -f $OBJ/host_ca_key ||\ fail "ssh-keygen of host_ca_key failed" -( - printf '@cert-authority ' - printf "$HOSTS " - cat $OBJ/host_ca_key.pub -) > $OBJ/known_hosts-cert.orig +${SSHKEYGEN} -q -N '' -t rsa -f $OBJ/host_ca_key2 ||\ + fail "ssh-keygen of host_ca_key failed" + +kh_ca host_ca_key.pub host_ca_key2.pub > $OBJ/known_hosts-cert.orig cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert # Plain text revocation files touch $OBJ/host_revoked_empty touch $OBJ/host_revoked_plain touch $OBJ/host_revoked_cert -cp $OBJ/host_ca_key.pub $OBJ/host_revoked_ca +cat $OBJ/host_ca_key.pub $OBJ/host_ca_key2.pub > $OBJ/host_revoked_ca PLAIN_TYPES=`$SSH -Q key-plain | sed 's/^ssh-dss/ssh-dsa/g;s/^ssh-//'` +if echo "$PLAIN_TYPES" | grep '^rsa$' >/dev/null 2>&1 ; then + PLAIN_TYPES="$PLAIN_TYPES rsa-sha2-256 rsa-sha2-512" +fi + # Prepare certificate, plain key and CA KRLs ${SSHKEYGEN} -kf $OBJ/host_krl_empty || fatal "KRL init failed" ${SSHKEYGEN} -kf $OBJ/host_krl_plain || fatal "KRL init failed" ${SSHKEYGEN} -kf $OBJ/host_krl_cert || fatal "KRL init failed" -${SSHKEYGEN} -kf $OBJ/host_krl_ca $OBJ/host_ca_key.pub \ +${SSHKEYGEN} -kf $OBJ/host_krl_ca $OBJ/host_ca_key.pub $OBJ/host_ca_key2.pub \ || fatal "KRL init failed" # Generate and sign host keys serial=1 -for ktype in $PLAIN_TYPES ; do +for ktype in $PLAIN_TYPES ; do verbose "$tid: sign host ${ktype} cert" # Generate and sign a host key ${SSHKEYGEN} -q -N '' -t ${ktype} \ @@ -66,7 +83,11 @@ for ktype in $PLAIN_TYPES ; do ${SSHKEYGEN} -ukf $OBJ/host_krl_plain \ $OBJ/cert_host_key_${ktype}.pub || fatal "KRL update failed" cat $OBJ/cert_host_key_${ktype}.pub >> $OBJ/host_revoked_plain - ${SSHKEYGEN} -h -q -s $OBJ/host_ca_key -z $serial \ + case $ktype in + rsa-sha2-*) tflag="-t $ktype"; ca="$OBJ/host_ca_key2" ;; + *) tflag=""; ca="$OBJ/host_ca_key" ;; + esac + ${SSHKEYGEN} -h -q -s $ca -z $serial $tflag \ -I "regress host key for $USER" \ -n $HOSTS $OBJ/cert_host_key_${ktype} || fatal "couldn't sign cert_host_key_${ktype}" @@ -100,7 +121,7 @@ attempt_connect() { # Basic connect and revocation tests. for privsep in yes no ; do - for ktype in $PLAIN_TYPES ; do + for ktype in $PLAIN_TYPES ; do verbose "$tid: host ${ktype} cert connect privsep $privsep" ( cat $OBJ/sshd_proxy_bak @@ -131,18 +152,14 @@ for privsep in yes no ; do done # Revoked certificates with key present -( - printf '@cert-authority ' - printf "$HOSTS " - cat $OBJ/host_ca_key.pub - for ktype in $PLAIN_TYPES ; do - test -f "$OBJ/cert_host_key_${ktype}.pub" || fatal "no pubkey" - printf "@revoked * `cat $OBJ/cert_host_key_${ktype}.pub`\n" - done -) > $OBJ/known_hosts-cert.orig +kh_ca host_ca_key.pub host_ca_key2.pub > $OBJ/known_hosts-cert.orig +for ktype in $PLAIN_TYPES ; do + test -f "$OBJ/cert_host_key_${ktype}.pub" || fatal "no pubkey" + kh_revoke cert_host_key_${ktype}.pub >> $OBJ/known_hosts-cert.orig +done cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert for privsep in yes no ; do - for ktype in $PLAIN_TYPES ; do + for ktype in $PLAIN_TYPES ; do verbose "$tid: host ${ktype} revoked cert privsep $privsep" ( cat $OBJ/sshd_proxy_bak @@ -162,16 +179,10 @@ for privsep in yes no ; do done # Revoked CA -( - printf '@cert-authority ' - printf "$HOSTS " - cat $OBJ/host_ca_key.pub - printf '@revoked ' - printf "* " - cat $OBJ/host_ca_key.pub -) > $OBJ/known_hosts-cert.orig +kh_ca host_ca_key.pub host_ca_key2.pub > $OBJ/known_hosts-cert.orig +kh_revoke host_ca_key.pub host_ca_key2.pub >> $OBJ/known_hosts-cert.orig cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert -for ktype in $PLAIN_TYPES ; do +for ktype in $PLAIN_TYPES ; do verbose "$tid: host ${ktype} revoked cert" ( cat $OBJ/sshd_proxy_bak @@ -188,11 +199,7 @@ for ktype in $PLAIN_TYPES ; do done # Create a CA key and add it to known hosts -( - printf '@cert-authority ' - printf "$HOSTS " - cat $OBJ/host_ca_key.pub -) > $OBJ/known_hosts-cert.orig +kh_ca host_ca_key.pub host_ca_key2.pub > $OBJ/known_hosts-cert.orig cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert test_one() { @@ -201,16 +208,19 @@ test_one() { sign_opts=$3 for kt in rsa ed25519 ; do - ${SSHKEYGEN} -q -s $OBJ/host_ca_key \ - -I "regress host key for $USER" \ + case $ktype in + rsa-sha2-*) tflag="-t $ktype"; ca="$OBJ/host_ca_key2" ;; + *) tflag=""; ca="$OBJ/host_ca_key" ;; + esac + ${SSHKEYGEN} -q -s $ca $tflag -I "regress host key for $USER" \ $sign_opts $OBJ/cert_host_key_${kt} || - fail "couldn't sign cert_host_key_${kt}" + fatal "couldn't sign cert_host_key_${kt}" ( cat $OBJ/sshd_proxy_bak echo HostKey $OBJ/cert_host_key_${kt} echo HostCertificate $OBJ/cert_host_key_${kt}-cert.pub ) > $OBJ/sshd_proxy - + cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ @@ -237,17 +247,20 @@ test_one "cert valid interval" success "-h -V-1w:+2w" test_one "cert has constraints" failure "-h -Oforce-command=false" # Check downgrade of cert to raw key when no CA found -for ktype in $PLAIN_TYPES ; do +for ktype in $PLAIN_TYPES ; do rm -f $OBJ/known_hosts-cert $OBJ/cert_host_key* verbose "$tid: host ${ktype} ${v} cert downgrade to raw key" # Generate and sign a host key - ${SSHKEYGEN} -q -N '' -t ${ktype} \ - -f $OBJ/cert_host_key_${ktype} || \ + ${SSHKEYGEN} -q -N '' -t ${ktype} -f $OBJ/cert_host_key_${ktype} || \ fail "ssh-keygen of cert_host_key_${ktype} failed" - ${SSHKEYGEN} -t ${v} -h -q -s $OBJ/host_ca_key \ + case $ktype in + rsa-sha2-*) tflag="-t $ktype"; ca="$OBJ/host_ca_key2" ;; + *) tflag=""; ca="$OBJ/host_ca_key" ;; + esac + ${SSHKEYGEN} -h -q $tflag -s $ca $tflag \ -I "regress host key for $USER" \ -n $HOSTS $OBJ/cert_host_key_${ktype} || - fail "couldn't sign cert_host_key_${ktype}" + fatal "couldn't sign cert_host_key_${ktype}" ( printf "$HOSTS " cat $OBJ/cert_host_key_${ktype}.pub @@ -257,7 +270,7 @@ for ktype in $PLAIN_TYPES ; do echo HostKey $OBJ/cert_host_key_${ktype} echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub ) > $OBJ/sshd_proxy - + ${SSH} -2 -oUserKnownHostsFile=$OBJ/known_hosts-cert \ -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ -F $OBJ/ssh_proxy somehost true @@ -267,23 +280,22 @@ for ktype in $PLAIN_TYPES ; do done # Wrong certificate -( - printf '@cert-authority ' - printf "$HOSTS " - cat $OBJ/host_ca_key.pub -) > $OBJ/known_hosts-cert.orig +kh_ca host_ca_key.pub host_ca_key2.pub > $OBJ/known_hosts-cert.orig cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert -for kt in $PLAIN_TYPES ; do +for kt in $PLAIN_TYPES ; do + verbose "$tid: host ${kt} connect wrong cert" rm -f $OBJ/cert_host_key* # Self-sign key - ${SSHKEYGEN} -q -N '' -t ${kt} \ - -f $OBJ/cert_host_key_${kt} || \ + ${SSHKEYGEN} -q -N '' -t ${kt} -f $OBJ/cert_host_key_${kt} || \ fail "ssh-keygen of cert_host_key_${kt} failed" - ${SSHKEYGEN} -t ${v} -h -q -s $OBJ/cert_host_key_${kt} \ + case $kt in + rsa-sha2-*) tflag="-t $kt" ;; + *) tflag="" ;; + esac + ${SSHKEYGEN} $tflag -h -q -s $OBJ/cert_host_key_${kt} \ -I "regress host key for $USER" \ -n $HOSTS $OBJ/cert_host_key_${kt} || - fail "couldn't sign cert_host_key_${kt}" - verbose "$tid: host ${kt} connect wrong cert" + fatal "couldn't sign cert_host_key_${kt}" ( cat $OBJ/sshd_proxy_bak echo HostKey $OBJ/cert_host_key_${kt} diff --git a/regress/cert-userkey.sh b/regress/cert-userkey.sh index 739a036..605cf70 100644 --- a/regress/cert-userkey.sh +++ b/regress/cert-userkey.sh @@ -1,4 +1,4 @@ -# $OpenBSD: cert-userkey.sh,v 1.14 2015/07/10 06:23:25 markus Exp $ +# $OpenBSD: cert-userkey.sh,v 1.15 2016/05/02 09:52:00 djm Exp $ # Placed in the Public Domain. tid="certified user keys" @@ -9,8 +9,15 @@ cp $OBJ/ssh_proxy $OBJ/ssh_proxy_bak PLAIN_TYPES=`$SSH -Q key-plain | sed 's/^ssh-dss/ssh-dsa/;s/^ssh-//'` +if echo "$PLAIN_TYPES" | grep '^rsa$' >/dev/null 2>&1 ; then + PLAIN_TYPES="$PLAIN_TYPES rsa-sha2-256 rsa-sha2-512" +fi + kname() { - echo -n $1 | sed 's/^dsa/ssh-dss/;s/^rsa/ssh-rsa/;s/^ed/ssh-ed/' + case $ktype in + rsa-sha2-*) ;; + *) echo -n $1 | sed 's/^dsa/ssh-dss/;s/^rsa/ssh-rsa/;s/^ed/ssh-ed/' ;; + esac echo "*,ssh-rsa*,ssh-ed25519*" } @@ -19,18 +26,24 @@ ${SSHKEYGEN} -q -N '' -t rsa -f $OBJ/user_ca_key ||\ fail "ssh-keygen of user_ca_key failed" # Generate and sign user keys -for ktype in $PLAIN_TYPES ; do +for ktype in $PLAIN_TYPES $EXTRA_TYPES ; do verbose "$tid: sign user ${ktype} cert" ${SSHKEYGEN} -q -N '' -t ${ktype} \ -f $OBJ/cert_user_key_${ktype} || \ - fail "ssh-keygen of cert_user_key_${ktype} failed" - ${SSHKEYGEN} -q -s $OBJ/user_ca_key -I "regress user key for $USER" \ - -z $$ -n ${USER},mekmitasdigoat $OBJ/cert_user_key_${ktype} || - fail "couldn't sign cert_user_key_${ktype}" + fatal "ssh-keygen of cert_user_key_${ktype} failed" + # Generate RSA/SHA2 certs for rsa-sha2* keys. + case $ktype in + rsa-sha2-*) tflag="-t $ktype" ;; + *) tflag="" ;; + esac + ${SSHKEYGEN} -q -s $OBJ/user_ca_key -z $$ \ + -I "regress user key for $USER" \ + -n ${USER},mekmitasdigoat $tflag $OBJ/cert_user_key_${ktype} || \ + fatal "couldn't sign cert_user_key_${ktype}" done # Test explicitly-specified principals -for ktype in $PLAIN_TYPES ; do +for ktype in $EXTRA_TYPES $PLAIN_TYPES ; do t=$(kname $ktype) for privsep in yes no ; do _prefix="${ktype} privsep $privsep" @@ -67,7 +80,7 @@ for ktype in $PLAIN_TYPES ; do if [ $? -eq 0 ]; then fail "ssh cert connect succeeded unexpectedly" fi - + # Wrong authorized_principals verbose "$tid: ${_prefix} wrong authorized_principals" echo gregorsamsa > $OBJ/authorized_principals_$USER @@ -166,8 +179,8 @@ basic_tests() { echo > $OBJ/authorized_keys_$USER extra_sshd="TrustedUserCAKeys $OBJ/user_ca_key.pub" fi - - for ktype in $PLAIN_TYPES ; do + + for ktype in $PLAIN_TYPES ; do t=$(kname $ktype) for privsep in yes no ; do _prefix="${ktype} privsep $privsep $auth" @@ -183,7 +196,7 @@ basic_tests() { cat $OBJ/ssh_proxy_bak echo "PubkeyAcceptedKeyTypes ${t}" ) > $OBJ/ssh_proxy - + ${SSH} -2i $OBJ/cert_user_key_${ktype} \ -F $OBJ/ssh_proxy somehost true if [ $? -ne 0 ]; then @@ -223,7 +236,7 @@ basic_tests() { fail "ssh cert connect failed" fi done - + # Revoked CA verbose "$tid: ${ktype} $auth revoked CA key" ( @@ -238,7 +251,7 @@ basic_tests() { fail "ssh cert connect succeeded unexpecedly" fi done - + verbose "$tid: $auth CA does not authenticate" ( cat $OBJ/sshd_proxy_bak @@ -286,7 +299,7 @@ test_one() { echo $auth_opt >> $OBJ/sshd_proxy fi fi - + verbose "$tid: $ident auth $auth expect $result $ktype" ${SSHKEYGEN} -q -s $OBJ/user_ca_key \ -I "regress user key for $USER" \ @@ -342,13 +355,13 @@ test_one "principals key option no principals" failure "" \ # Wrong certificate cat $OBJ/sshd_proxy_bak > $OBJ/sshd_proxy -for ktype in $PLAIN_TYPES ; do +for ktype in $PLAIN_TYPES ; do t=$(kname $ktype) # Self-sign ${SSHKEYGEN} -q -s $OBJ/cert_user_key_${ktype} -I \ "regress user key for $USER" \ -n $USER $OBJ/cert_user_key_${ktype} || - fail "couldn't sign cert_user_key_${ktype}" + fatal "couldn't sign cert_user_key_${ktype}" verbose "$tid: user ${ktype} connect wrong cert" ${SSH} -2i $OBJ/cert_user_key_${ktype} -F $OBJ/ssh_proxy \ somehost true >/dev/null 2>&1 diff --git a/regress/forwarding.sh b/regress/forwarding.sh index 4bde97a..1959276 100644 --- a/regress/forwarding.sh +++ b/regress/forwarding.sh @@ -1,4 +1,4 @@ -# $OpenBSD: forwarding.sh,v 1.15 2015/03/03 22:35:19 markus Exp $ +# $OpenBSD: forwarding.sh,v 1.16 2016/04/14 23:57:17 djm Exp $ # Placed in the Public Domain. tid="local and remote forwarding" @@ -57,7 +57,7 @@ for d in L R; do -$d ${base}01:127.0.0.1:$PORT \ -$d ${base}02:127.0.0.1:$PORT \ -$d ${base}03:127.0.0.1:$PORT \ - -$d ${base}01:127.0.0.1:$PORT \ + -$d ${base}01:localhost:$PORT \ -$d ${base}04:127.0.0.1:$PORT \ -oExitOnForwardFailure=yes somehost true r=$? diff --git a/regress/test-exec.sh b/regress/test-exec.sh index f63974e..ca04b68 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh @@ -1,4 +1,4 @@ -# $OpenBSD: test-exec.sh,v 1.51 2015/03/03 22:35:19 markus Exp $ +# $OpenBSD: test-exec.sh,v 1.53 2016/04/15 02:57:10 djm Exp $ # Placed in the Public Domain. USER=`id -un` @@ -133,6 +133,7 @@ echo "#!/bin/sh" > $SSHLOGWRAP echo "exec ${SSH} -E${TEST_SSH_LOGFILE} "'"$@"' >>$SSHLOGWRAP chmod a+rx $OBJ/ssh-log-wrapper.sh +REAL_SSH="$SSH" SSH="$SSHLOGWRAP" # Some test data. We make a copy because some tests will overwrite it. @@ -270,6 +271,13 @@ cat << EOF > $OBJ/sshd_config Subsystem sftp $SFTPSERVER EOF +# This may be necessary if /usr/src and/or /usr/obj are group-writable, +# but if you aren't careful with permissions then the unit tests could +# be abused to locally escalate privileges. +if [ ! -z "$TEST_SSH_UNSAFE_PERMISSIONS" ]; then + echo "StrictModes no" >> $OBJ/sshd_config +fi + if [ ! -z "$TEST_SSH_SSHD_CONFOPTS" ]; then trace "adding sshd_config option $TEST_SSH_SSHD_CONFOPTS" echo "$TEST_SSH_SSHD_CONFOPTS" >> $OBJ/sshd_config