diff --git a/crypto/openssh/.depend b/crypto/openssh/.depend index fca83a67c970..5226523aa2ad 100644 --- a/crypto/openssh/.depend +++ b/crypto/openssh/.depend @@ -50,11 +50,9 @@ digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-c digest-openssl.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h dispatch.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh2.h log.h ssherr.h dispatch.h packet.h openbsd-compat/sys-queue.h compat.h dns.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h ssherr.h dns.h log.h digest.h -ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h ge25519.h fe25519.h sc25519.h +ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h entropy.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h fatal.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h log.h ssherr.h -fe25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h fe25519.h crypto_api.h -ge25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h fe25519.h crypto_api.h sc25519.h ge25519.h ge25519_base.data groupaccess.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h groupaccess.h match.h log.h ssherr.h gss-genr.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h gss-serv-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h @@ -108,7 +106,6 @@ sandbox-rlimit.o: includes.h config.h defines.h platform.h openbsd-compat/openbs sandbox-seccomp-filter.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sandbox-solaris.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sandbox-systrace.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h -sc25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h sc25519.h crypto_api.h scp.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/glob.h xmalloc.h ssh.h atomicio.h pathnames.h log.h ssherr.h misc.h progressmeter.h utf8.h sftp.h sftp-common.h sftp-client.h servconf.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/glob.h openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h ssherr.h sshbuf.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h servconf.o: kex.h mac.h crypto_api.h match.h channels.h groupaccess.h canohost.h packet.h dispatch.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h @@ -137,7 +134,7 @@ ssh-ed25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-c ssh-keygen.o: cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h ssh-keygen.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h sshkey.h authfile.h sshbuf.h pathnames.h log.h ssherr.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h sshsig.h ssh-sk.h sk-api.h cipher.h ssh-keyscan.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h ssh.h sshbuf.h sshkey.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h kex.h mac.h crypto_api.h compat.h myproposal.h packet.h dispatch.h log.h -ssh-keyscan.o: ssherr.h atomicio.h misc.h hostfile.h ssh_api.h ssh2.h dns.h +ssh-keyscan.o: ssherr.h atomicio.h misc.h hostfile.h ssh_api.h ssh2.h dns.h addr.h ssh-keysign.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h ssherr.h sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssh-pkcs11-client.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h ssh-pkcs11-helper.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h openbsd-compat/sys-queue.h xmalloc.h sshbuf.h log.h ssherr.h misc.h sshkey.h authfd.h ssh-pkcs11.h @@ -174,7 +171,6 @@ uidswap.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compa umac.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h umac128.o: umac.c includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h umac.h misc.h rijndael.h utf8.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h utf8.h -verify.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h crypto_api.h xmalloc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmalloc.h log.h ssherr.h xmss_commons.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h xmss_fast.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.h openbsd-compat/bsd-statvfs.h openbsd-compat/bsd-waitpid.h openbsd-compat/bsd-poll.h openbsd-compat/fake-rfc2553.h openbsd-compat/bsd-cygwin_util.h openbsd-compat/port-aix.h openbsd-compat/port-irix.h openbsd-compat/port-linux.h openbsd-compat/port-solaris.h openbsd-compat/port-net.h openbsd-compat/port-uw.h openbsd-compat/bsd-nextstep.h entropy.h diff --git a/crypto/openssh/.github/ci-status.md b/crypto/openssh/.github/ci-status.md index 0ad8bf5aaf44..d13bbfa8c038 100644 --- a/crypto/openssh/.github/ci-status.md +++ b/crypto/openssh/.github/ci-status.md @@ -1,4 +1,10 @@ -[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml) -[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml) -[![Upstream self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml) +master : +[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:master) +[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:master) +[![Upstream self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml?query=branch:master) +[![CIFuzz](https://github.com/openssh/openssh-portable/actions/workflows/cifuzz.yml/badge.svg)](https://github.com/openssh/openssh-portable/actions/workflows/cifuzz.yml) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:openssh) + +9.1 : +[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_1)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_1) +[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_1)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_1) diff --git a/crypto/openssh/.github/configs b/crypto/openssh/.github/configs index 6bf1ab27f0ca..bdd5ddbdfaf0 100755 --- a/crypto/openssh/.github/configs +++ b/crypto/openssh/.github/configs @@ -9,10 +9,13 @@ # LTESTS config=$1 +if [ "$config" = "" ]; then + config="default" +fi unset CC CFLAGS CPPFLAGS LDFLAGS LTESTS SUDO -TEST_TARGET="tests" +TEST_TARGET="tests compat-tests" LTESTS="" SKIP_LTESTS="" SUDO=sudo # run with sudo by default @@ -108,7 +111,7 @@ case "$config" in kitchensink) CONFIGFLAGS="--with-kerberos5 --with-libedit --with-pam" CONFIGFLAGS="${CONFIGFLAGS} --with-security-key-builtin --with-selinux" - CONFIGFLAGS="${CONFIGFLAGS} --with-cflags=-DSK_DEBUG" + CFLAGS="-DSK_DEBUG -DSANDBOX_SECCOMP_FILTER_DEBUG" ;; hardenedmalloc) CONFIGFLAGS="--with-ldflags=-lhardened_malloc" @@ -141,6 +144,11 @@ case "$config" in ;; openssl-*) LIBCRYPTOFLAGS="--with-ssl-dir=/opt/openssl --with-rpath=-Wl,-rpath," + # OpenSSL 1.1.1 specifically has a bug in its RNG that breaks reexec + # fallback. See https://bugzilla.mindrot.org/show_bug.cgi?id=3483 + if [ "$config" = "openssl-1.1.1" ]; then + SKIP_LTESTS="reexec" + fi ;; selinux) CONFIGFLAGS="--with-selinux" @@ -152,7 +160,7 @@ case "$config" in LIBCRYPTOFLAGS="--without-openssl" TEST_TARGET=t-exec ;; - valgrind-[1-4]|valgrind-unit) + valgrind-[1-5]|valgrind-unit) # rlimit sandbox and FORTIFY_SOURCE confuse Valgrind. CONFIGFLAGS="--without-sandbox --without-hardening" CONFIGFLAGS="$CONFIGFLAGS --with-cppflags=-D_FORTIFY_SOURCE=0" @@ -161,16 +169,19 @@ case "$config" in export TEST_SSH_ELAPSED_TIMES # Valgrind slows things down enough that the agent timeout test # won't reliably pass, and the unit tests run longer than allowed - # by github so split into three separate tests. - tests2="rekey integrity try-ciphers" + # by github so split into separate tests. + tests2="integrity try-ciphers" tests3="krl forward-control sshsig agent-restrict kextype sftp" tests4="cert-userkey cert-hostkey kextype sftp-perm keygen-comment percent" + tests5="rekey" case "$config" in valgrind-1) - # All tests except agent-timeout (which is flaky under valgrind) + # All tests except agent-timeout (which is flaky under valgrind), + # connection-timeout (which doesn't work since it's so slow) # and hostbased (since valgrind won't let ssh exec keysign). # Slow ones are run separately to increase parallelism. - SKIP_LTESTS="agent-timeout hostbased ${tests2} ${tests3} ${tests4}" + SKIP_LTESTS="agent-timeout connection-timeout hostbased" + SKIP_LTESTS="$SKIP_LTESTS ${tests2} ${tests3} ${tests4} ${tests5}" ;; valgrind-2) LTESTS="${tests2}" @@ -181,6 +192,9 @@ case "$config" in valgrind-4) LTESTS="${tests4}" ;; + valgrind-5) + LTESTS="${tests5}" + ;; valgrind-unit) TEST_TARGET="unit USE_VALGRIND=1" ;; @@ -210,6 +224,10 @@ case "${TARGET_HOST}" in TEST_TARGET="t-exec TEST_SHELL=bash" SKIP_LTESTS="rekey sftp" ;; + debian-riscv64) + # This machine is fairly slow, so skip the unit tests. + TEST_TARGET="t-exec" + ;; dfly58*|dfly60*) # scp 3-way connection hangs on these so skip until sorted. SKIP_LTESTS=scp3 @@ -227,12 +245,15 @@ case "${TARGET_HOST}" in # test that relies on one. # Also, Minix seems to be very limited in the number of select() # calls that can be operating concurrently, so prune additional tests for that. - T="addrmatch agent-restrict brokenkeys cfgmatch cfgmatchlisten cfgparse connect - connect-uri exit-status forward-control forwarding hostkey-agent - key-options keyscan knownhosts-command login-timeout multiplex + T="addrmatch agent-restrict brokenkeys cfgmatch cfgmatchlisten cfgparse + connect connect-uri exit-status forwarding hostkey-agent + key-options keyscan knownhosts-command login-timeout reconfigure reexec rekey scp scp-uri scp3 sftp sftp-badcmds sftp-batch sftp-cmds sftp-glob sftp-perm sftp-uri stderr-data transfer" + # Unix domain sockets don't work quite like we expect, so also skip any tests + # that use multiplexing. + T="$T connection-timeout dynamic-forward forward-control multiplex" SKIP_LTESTS="$(echo $T)" TEST_TARGET=t-exec SUDO="" @@ -260,6 +281,8 @@ esac case "`./config.guess`" in *cygwin) SUDO="" + # Don't run compat tests on cygwin as they don't currently compile. + TEST_TARGET="tests" ;; *-darwin*) # Unless specified otherwise, build without OpenSSL on Mac OS since diff --git a/crypto/openssh/.github/setup_ci.sh b/crypto/openssh/.github/setup_ci.sh index 044c4d1292b1..e4480e614f31 100755 --- a/crypto/openssh/.github/setup_ci.sh +++ b/crypto/openssh/.github/setup_ci.sh @@ -139,16 +139,29 @@ if [ "yes" = "$INSTALL_FIDO_PPA" ]; then sudo apt-add-repository -y ppa:yubico/stable fi -if [ "x" != "x$PACKAGES" ]; then +tries=3 +while [ ! -z "$PACKAGES" ] && [ "$tries" -gt "0" ]; do case "$PACKAGER" in apt) sudo apt update -qq - sudo apt install -qy $PACKAGES + if sudo apt install -qy $PACKAGES; then + PACKAGES="" + fi ;; setup) - /cygdrive/c/setup.exe -q -P `echo "$PACKAGES" | tr ' ' ,` + if /cygdrive/c/setup.exe -q -P `echo "$PACKAGES" | tr ' ' ,`; then + PACKAGES="" + fi ;; esac + if [ ! -z "$PACKAGES" ]; then + sleep 90 + fi + tries=$(($tries - 1)) +done +if [ ! -z "$PACKAGES" ]; then + echo "Package installation failed." + exit 1 fi if [ "${INSTALL_HARDENED_MALLOC}" = "yes" ]; then diff --git a/crypto/openssh/.github/workflows/c-cpp.yml b/crypto/openssh/.github/workflows/c-cpp.yml index 3cd1188fc572..e6ea49550f71 100644 --- a/crypto/openssh/.github/workflows/c-cpp.yml +++ b/crypto/openssh/.github/workflows/c-cpp.yml @@ -2,11 +2,9 @@ name: C/C++ CI on: push: - branches: [ master, ci, V_9_0 ] - paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ] + paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ] pull_request: - branches: [ master ] - paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ] + paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ] jobs: ci: @@ -15,104 +13,109 @@ jobs: fail-fast: false matrix: # First we test all OSes in the default configuration. - os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022] - configs: [default] + target: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022] + config: [default] # Then we include any extra configs we want to test for specific VMs. # Valgrind slows things down quite a bit, so start them first. include: - - { os: windows-2019, configs: cygwin-release } - - { os: windows-2022, configs: cygwin-release } - - { os: ubuntu-20.04, configs: valgrind-1 } - - { os: ubuntu-20.04, configs: valgrind-2 } - - { os: ubuntu-20.04, configs: valgrind-3 } - - { os: ubuntu-20.04, configs: valgrind-4 } - - { os: ubuntu-20.04, configs: valgrind-unit } - - { os: ubuntu-20.04, configs: c89 } - - { os: ubuntu-20.04, configs: clang-6.0 } - - { os: ubuntu-20.04, configs: clang-8 } - - { os: ubuntu-20.04, configs: clang-9 } - - { os: ubuntu-20.04, configs: clang-10 } - - { os: ubuntu-20.04, configs: clang-11 } - - { os: ubuntu-20.04, configs: clang-12-Werror } - - { os: ubuntu-20.04, configs: clang-sanitize-address } - - { os: ubuntu-20.04, configs: clang-sanitize-undefined } - - { os: ubuntu-20.04, configs: gcc-sanitize-address } - - { os: ubuntu-20.04, configs: gcc-sanitize-undefined } - - { os: ubuntu-20.04, configs: gcc-7 } - - { os: ubuntu-20.04, configs: gcc-8 } - - { os: ubuntu-20.04, configs: gcc-10 } - - { os: ubuntu-20.04, configs: gcc-11-Werror } - - { os: ubuntu-20.04, configs: pam } - - { os: ubuntu-20.04, configs: kitchensink } - - { os: ubuntu-20.04, configs: hardenedmalloc } - - { os: ubuntu-20.04, configs: tcmalloc } - - { os: ubuntu-20.04, configs: musl } - - { os: ubuntu-latest, configs: libressl-master } - - { os: ubuntu-latest, configs: libressl-2.2.9 } - - { os: ubuntu-latest, configs: libressl-2.8.3 } - - { os: ubuntu-latest, configs: libressl-3.0.2 } - - { os: ubuntu-latest, configs: libressl-3.2.6 } - - { os: ubuntu-latest, configs: libressl-3.3.6 } - - { os: ubuntu-latest, configs: libressl-3.4.3 } - - { os: ubuntu-latest, configs: libressl-3.5.3 } - - { os: ubuntu-latest, configs: openssl-master } - - { os: ubuntu-latest, configs: openssl-noec } - - { os: ubuntu-latest, configs: openssl-1.0.1 } - - { os: ubuntu-latest, configs: openssl-1.0.1u } - - { os: ubuntu-latest, configs: openssl-1.0.2u } - - { os: ubuntu-latest, configs: openssl-1.1.0h } - - { os: ubuntu-latest, configs: openssl-1.1.1 } - - { os: ubuntu-latest, configs: openssl-1.1.1k } - - { os: ubuntu-latest, configs: openssl-1.1.1n } - - { os: ubuntu-latest, configs: openssl-1.1.1p } - - { os: ubuntu-latest, configs: openssl-3.0.0 } - - { os: ubuntu-latest, configs: openssl-3.0.5 } - - { os: ubuntu-latest, configs: openssl-1.1.1_stable } # stable branch - - { os: ubuntu-latest, configs: openssl-3.0 } # stable branch - - { os: ubuntu-22.04, configs: pam } - - { os: ubuntu-22.04, configs: krb5 } - - { os: ubuntu-22.04, configs: heimdal } - - { os: ubuntu-22.04, configs: libedit } - - { os: ubuntu-22.04, configs: sk } - - { os: ubuntu-22.04, configs: selinux } - - { os: ubuntu-22.04, configs: kitchensink } - - { os: ubuntu-22.04, configs: without-openssl } - - { os: macos-11, configs: pam } - - { os: macos-12, configs: pam } - runs-on: ${{ matrix.os }} + - { target: windows-2019, config: cygwin-release } + - { target: windows-2022, config: cygwin-release } + - { target: ubuntu-20.04, config: valgrind-1 } + - { target: ubuntu-20.04, config: valgrind-2 } + - { target: ubuntu-20.04, config: valgrind-3 } + - { target: ubuntu-20.04, config: valgrind-4 } + - { target: ubuntu-20.04, config: valgrind-5 } + - { target: ubuntu-20.04, config: valgrind-unit } + - { target: ubuntu-20.04, config: c89 } + - { target: ubuntu-20.04, config: clang-6.0 } + - { target: ubuntu-20.04, config: clang-8 } + - { target: ubuntu-20.04, config: clang-9 } + - { target: ubuntu-20.04, config: clang-10 } + - { target: ubuntu-20.04, config: clang-11 } + - { target: ubuntu-20.04, config: clang-12-Werror } + - { target: ubuntu-20.04, config: clang-sanitize-address } + - { target: ubuntu-20.04, config: clang-sanitize-undefined } + - { target: ubuntu-20.04, config: gcc-sanitize-address } + - { target: ubuntu-20.04, config: gcc-sanitize-undefined } + - { target: ubuntu-20.04, config: gcc-7 } + - { target: ubuntu-20.04, config: gcc-8 } + - { target: ubuntu-20.04, config: gcc-10 } + - { target: ubuntu-20.04, config: gcc-11-Werror } + - { target: ubuntu-20.04, config: pam } + - { target: ubuntu-20.04, config: kitchensink } + - { target: ubuntu-20.04, config: hardenedmalloc } + - { target: ubuntu-20.04, config: tcmalloc } + - { target: ubuntu-20.04, config: musl } + - { target: ubuntu-latest, config: libressl-master } + - { target: ubuntu-latest, config: libressl-2.2.9 } + - { target: ubuntu-latest, config: libressl-2.8.3 } + - { target: ubuntu-latest, config: libressl-3.0.2 } + - { target: ubuntu-latest, config: libressl-3.2.6 } + - { target: ubuntu-latest, config: libressl-3.3.6 } + - { target: ubuntu-latest, config: libressl-3.4.3 } + - { target: ubuntu-latest, config: libressl-3.5.3 } + - { target: ubuntu-latest, config: libressl-3.6.1 } + - { target: ubuntu-latest, config: libressl-3.7.0 } + - { target: ubuntu-latest, config: openssl-master } + - { target: ubuntu-latest, config: openssl-noec } + - { target: ubuntu-latest, config: openssl-1.0.1 } + - { target: ubuntu-latest, config: openssl-1.0.1u } + - { target: ubuntu-latest, config: openssl-1.0.2u } + - { target: ubuntu-latest, config: openssl-1.1.0h } + - { target: ubuntu-latest, config: openssl-1.1.1 } + - { target: ubuntu-latest, config: openssl-1.1.1k } + - { target: ubuntu-latest, config: openssl-1.1.1n } + - { target: ubuntu-latest, config: openssl-1.1.1q } + - { target: ubuntu-latest, config: openssl-1.1.1s } + - { target: ubuntu-latest, config: openssl-3.0.0 } + - { target: ubuntu-latest, config: openssl-3.0.5 } + - { target: ubuntu-latest, config: openssl-3.0.7 } + - { target: ubuntu-latest, config: openssl-1.1.1_stable } + - { target: ubuntu-latest, config: openssl-3.0 } # stable branch + - { target: ubuntu-22.04, config: pam } + - { target: ubuntu-22.04, config: krb5 } + - { target: ubuntu-22.04, config: heimdal } + - { target: ubuntu-22.04, config: libedit } + - { target: ubuntu-22.04, config: sk } + - { target: ubuntu-22.04, config: selinux } + - { target: ubuntu-22.04, config: kitchensink } + - { target: ubuntu-22.04, config: without-openssl } + - { target: macos-11, config: pam } + - { target: macos-12, config: pam } + runs-on: ${{ matrix.target }} steps: - name: set cygwin git params - if: ${{ startsWith(matrix.os, 'windows') }} + if: ${{ startsWith(matrix.target, 'windows') }} run: git config --global core.autocrlf input - name: install cygwin - if: ${{ startsWith(matrix.os, 'windows') }} + if: ${{ startsWith(matrix.target, 'windows') }} uses: cygwin/cygwin-install-action@master - - uses: actions/checkout@v2 + - uses: actions/checkout@main - name: setup CI system - run: sh ./.github/setup_ci.sh ${{ matrix.configs }} + run: sh ./.github/setup_ci.sh ${{ matrix.config }} - name: autoreconf run: sh -c autoreconf - name: configure - run: sh ./.github/configure.sh ${{ matrix.configs }} + run: sh ./.github/configure.sh ${{ matrix.config }} - name: save config - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@main with: - name: ${{ matrix.os }}-${{ matrix.configs }}-config + name: ${{ matrix.target }}-${{ matrix.config }}-config path: config.h - name: make clean run: make clean - name: make run: make -j2 - name: make tests - run: sh ./.github/run_test.sh ${{ matrix.configs }} + run: sh ./.github/run_test.sh ${{ matrix.config }} env: TEST_SSH_UNSAFE_PERMISSIONS: 1 TEST_SSH_HOSTBASED_AUTH: yes - name: save logs if: failure() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@main with: - name: ${{ matrix.os }}-${{ matrix.configs }}-logs + name: ${{ matrix.target }}-${{ matrix.config }}-logs path: | config.h config.log diff --git a/crypto/openssh/.github/workflows/cifuzz.yml b/crypto/openssh/.github/workflows/cifuzz.yml new file mode 100644 index 000000000000..7ca8c4719b61 --- /dev/null +++ b/crypto/openssh/.github/workflows/cifuzz.yml @@ -0,0 +1,32 @@ +name: CIFuzz +on: + push: + paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ] + pull_request: + paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ] + +jobs: + Fuzzing: + if: github.repository != 'openssh/openssh-portable-selfhosted' + runs-on: ubuntu-latest + steps: + - name: Build Fuzzers + id: build + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + with: + oss-fuzz-project-name: 'openssh' + dry-run: false + language: c++ + - name: Run Fuzzers + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + with: + oss-fuzz-project-name: 'openssh' + fuzz-seconds: 600 + dry-run: false + language: c++ + - name: Upload Crash + uses: actions/upload-artifact@main + if: failure() && steps.build.outcome == 'success' + with: + name: artifacts + path: ./out/artifacts diff --git a/crypto/openssh/.github/workflows/selfhosted.yml b/crypto/openssh/.github/workflows/selfhosted.yml index c4bd1d9b24f7..50bc9fffb723 100644 --- a/crypto/openssh/.github/workflows/selfhosted.yml +++ b/crypto/openssh/.github/workflows/selfhosted.yml @@ -2,37 +2,35 @@ name: C/C++ CI self-hosted on: push: - branches: [ master, ci, V_9_0 ] - paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ] + paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ] jobs: selfhosted: if: github.repository == 'openssh/openssh-portable-selfhosted' - runs-on: ${{ matrix.os }} + runs-on: ${{ matrix.host }} + timeout-minutes: 600 env: - TARGET_HOST: ${{ matrix.os }} + HOST: ${{ matrix.host }} + TARGET_HOST: ${{ matrix.target }} + TARGET_CONFIG: ${{ matrix.config }} strategy: fail-fast: false # We use a matrix in two parts: firstly all of the VMs are tested with the - # default config. "os" corresponds to a label associated with the worker. + # default config. "target" corresponds to a label associated with the + # worker. The default is an ephemeral VM running under libvirt. matrix: - os: - - aix51 - - ARM - - ARM64 + target: - alpine - debian-i386 - - debian-riscv64 - dfly30 - dfly48 - dfly58 - dfly60 + - dfly62 - fbsd10 - fbsd12 - fbsd13 - # - hurd - minix3 - # - nbsd2 - nbsd3 - nbsd4 - nbsd8 @@ -42,62 +40,71 @@ jobs: - obsd69 - obsd70 - obsdsnap + - obsdsnap-i386 - openindiana - - openwrt-mips - - openwrt-mipsel - # - rocky84 - sol10 - sol11 - - win10 - configs: + config: - default - # Then we include any extra configs we want to test for specific VMs. + host: + - libvirt include: - - { os: ARM64, configs: pam } - - { os: debian-i386, configs: pam } - - { os: dfly30, configs: without-openssl} - - { os: dfly48, configs: pam } - - { os: dfly58, configs: pam } - - { os: dfly60, configs: pam } - - { os: fbsd10, configs: pam } - - { os: fbsd12, configs: pam } - - { os: fbsd13, configs: pam } - - { os: nbsd8, configs: pam } - - { os: nbsd9, configs: pam } - - { os: openindiana, configs: pam } - # - { os: rocky84, configs: pam } - - { os: sol10, configs: pam } - - { os: sol11, configs: pam-krb5 } - - { os: sol11, configs: sol64 } - # - { os: sol11, configs: sol64-pam } - - { os: win10, configs: cygwin-release } + # Then we include extra libvirt test configs. + - { target: aix51, config: default, host: libvirt } + - { target: debian-i386, config: pam, host: libvirt } + - { target: dfly30, config: without-openssl, host: libvirt} + - { target: dfly48, config: pam ,host: libvirt } + - { target: dfly58, config: pam, host: libvirt } + - { target: dfly60, config: pam, host: libvirt } + - { target: dfly62, config: pam, host: libvirt } + - { target: fbsd10, config: pam, host: libvirt } + - { target: fbsd12, config: pam, host: libvirt } + - { target: fbsd13, config: pam, host: libvirt } + - { target: nbsd8, config: pam, host: libvirt } + - { target: nbsd9, config: pam, host: libvirt } + - { target: openindiana, config: pam, host: libvirt } + - { target: sol10, config: pam, host: libvirt } + - { target: sol11, config: pam-krb5, host: libvirt } + - { target: sol11, config: sol64, host: libvirt } + # VMs with persistent disks that have their own runner. + - { target: win10, config: default, host: win10 } + - { target: win10, config: cygwin-release, host: win10 } + # Physical hosts, with either native runners or remote via ssh. + - { target: ARM, config: default, host: ARM } + - { target: ARM64, config: default, host: ARM64 } + - { target: ARM64, config: pam, host: ARM64 } + - { target: debian-riscv64, config: default, host: debian-riscv64 } + - { target: openwrt-mips, config: default, host: openwrt-mips } + - { target: openwrt-mipsel, config: default, host: openwrt-mipsel } steps: - name: shutdown VM if running run: vmshutdown - - uses: actions/checkout@v2 + working-directory: ${{ runner.temp }} + - uses: actions/checkout@main - name: autoreconf run: autoreconf - name: startup VM run: vmstartup + working-directory: ${{ runner.temp }} - name: configure - run: vmrun ./.github/configure.sh ${{ matrix.configs }} + run: vmrun ./.github/configure.sh ${{ matrix.config }} - name: save config - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@main with: - name: ${{ matrix.os }}-${{ matrix.configs }}-config + name: ${{ matrix.target }}-${{ matrix.config }}-config path: config.h - name: make clean run: vmrun make clean - name: make run: vmrun make - name: make tests - run: vmrun ./.github/run_test.sh ${{ matrix.configs }} + run: vmrun ./.github/run_test.sh ${{ matrix.config }} timeout-minutes: 600 - name: save logs if: failure() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@main with: - name: ${{ matrix.os }}-${{ matrix.configs }}-logs + name: ${{ matrix.target }}-${{ matrix.config }}-logs path: | config.h config.log @@ -106,3 +113,4 @@ jobs: - name: shutdown VM if: always() run: vmshutdown + working-directory: ${{ runner.temp }} diff --git a/crypto/openssh/.github/workflows/upstream.yml b/crypto/openssh/.github/workflows/upstream.yml index 3cec069ede74..1e2c2acb7ac0 100644 --- a/crypto/openssh/.github/workflows/upstream.yml +++ b/crypto/openssh/.github/workflows/upstream.yml @@ -2,46 +2,51 @@ name: Upstream self-hosted on: push: - branches: [ master, ci ] + branches: [ master ] paths: [ '**.c', '**.h', '.github/**' ] jobs: selfhosted: if: github.repository == 'openssh/openssh-portable-selfhosted' - runs-on: ${{ matrix.os }} + runs-on: 'libvirt' env: - TARGET_HOST: ${{ matrix.os }} + HOST: 'libvirt' + TARGET_HOST: ${{ matrix.target }} + TARGET_CONFIG: ${{ matrix.config }} strategy: fail-fast: false matrix: - os: [ obsdsnap, obsdsnap-i386 ] - configs: [ default, without-openssl, ubsan ] + target: [ obsdsnap, obsdsnap-i386 ] + config: [ default, without-openssl, ubsan ] steps: - - uses: actions/checkout@v2 - name: shutdown VM if running run: vmshutdown + working-directory: ${{ runner.temp }} + - uses: actions/checkout@main - name: startup VM run: vmstartup + working-directory: ${{ runner.temp }} - name: update source run: vmrun "cd /usr/src && cvs up -dPA usr.bin/ssh regress/usr.bin/ssh" - name: make clean - run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean && cd /usr/src/regress/usr.bin/ssh && make obj && make clean" + run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean && cd /usr/src/regress/usr.bin/ssh && make obj && make clean && sudo chmod -R g-w /usr/src /usr/obj" - name: make - run: vmrun "cd /usr/src/usr.bin/ssh && case ${{ matrix.configs }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" + run: vmrun "cd /usr/src/usr.bin/ssh && case ${{ matrix.config }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" - name: make install run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install" - name: make tests` - run: vmrun "cd /usr/src/regress/usr.bin/ssh && case ${{ matrix.configs }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" + run: vmrun "cd /usr/src/regress/usr.bin/ssh && case ${{ matrix.config }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" env: SUDO: sudo timeout-minutes: 300 - name: save logs if: failure() - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@main with: - name: ${{ matrix.os }}-${{ matrix.configs }}-logs + name: ${{ matrix.target }}-${{ matrix.config }}-logs path: | - /usr/obj/regress/usr.bin/ssh/*.log + /usr/obj/regress/usr.bin/ssh/obj/*.log - name: shutdown VM if: always() run: vmshutdown + working-directory: ${{ runner.temp }} diff --git a/crypto/openssh/.skipped-commit-ids b/crypto/openssh/.skipped-commit-ids index b639678939dd..59e80518acf2 100644 --- a/crypto/openssh/.skipped-commit-ids +++ b/crypto/openssh/.skipped-commit-ids @@ -25,6 +25,8 @@ cc12a9029833d222043aecd252d654965c351a69 moduli-gen Makefile 7ac6c252d2a5be8fbad4c66d9d35db507c9dac5b moduli update 6b52cd2b637f3d29ef543f0ce532a2bce6d86af5 makefile change f9a0726d957cf10692a231996a1f34e7f9cdfeb0 moduli update +1e0a2692b7e20b126dda60bf04999d1d30d959d8 sshd relinking makefile changes +e1dc11143f83082e3154d6094f9136d0dc2637ad more relinking makefile tweaks Old upstream tree: diff --git a/crypto/openssh/ChangeLog b/crypto/openssh/ChangeLog index 02e11b023ca0..4251831a1732 100644 --- a/crypto/openssh/ChangeLog +++ b/crypto/openssh/ChangeLog @@ -1,3 +1,1809 @@ +commit 6dfb65de949cdd0a5d198edee9a118f265924f33 +Author: Damien Miller +Date: Thu Feb 2 23:21:54 2023 +1100 + + crank versions in RPM specs + +commit d07cfb11a0ca574eb68a3931d8c46fbe862a2021 +Author: Damien Miller +Date: Thu Feb 2 23:21:45 2023 +1100 + + update version in README + +commit 9fe207565b4ab0fe5d1ac5bb85e39188d96fb214 +Author: Damien Miller +Date: Thu Feb 2 23:17:49 2023 +1100 + + adapt compat_kex_proposal() test to portable + +commit 903c556b938fff2d7bff8da2cc460254430963c5 +Author: djm@openbsd.org +Date: Thu Feb 2 12:12:52 2023 +0000 + + upstream: test compat_kex_proposal(); by dtucker@ + + OpenBSD-Regress-ID: 0e404ee264db546f9fdbf53390689ab5f8d38bf2 + +commit 405fba71962dec8409c0c962408e09049e5624b5 +Author: dtucker@openbsd.org +Date: Thu Jan 19 07:53:45 2023 +0000 + + upstream: Check if we can copy sshd or need to use sudo to do so + + during reexec test. Skip test if neither can work. Patch from anton@, tweaks + from me. + + OpenBSD-Regress-ID: 731b96ae74d02d5744e1f1a8e51d09877ffd9b6d + +commit b2a2a8f69fd7737ea17dc044353c514f2f962f35 +Author: djm@openbsd.org +Date: Thu Feb 2 12:10:22 2023 +0000 + + upstream: openssh-9.2 + + OpenBSD-Commit-ID: f7389f32413c74d6e2055f05cf65e7082de03923 + +commit 12da7823336434a403f25c7cc0c2c6aed0737a35 +Author: djm@openbsd.org +Date: Thu Feb 2 12:10:05 2023 +0000 + + upstream: fix double-free caused by compat_kex_proposal(); bz3522 + + by dtucker@, ok me + + OpenBSD-Commit-ID: 2bfc37cd2d41f67dad64c17a64cf2cd3806a5c80 + +commit 79efd95ab5ff99f4cb3a955e2d713b3f54fb807e +Author: Darren Tucker +Date: Wed Feb 1 17:17:26 2023 +1100 + + Skip connection-timeout test on minix3. + + Minix 3's Unix domain sockets don't seem to work the way we expect, so + skip connection-timeout test on that platform. While there, group + together all similarly skipped tests and explicitly comment. + +commit 6b508c4e039619842bcf5a16f8a6b08dd6bec44a +Author: Damien Miller +Date: Wed Feb 1 12:12:05 2023 +1100 + + fix libfido2 detection without pkg-config + + Place libfido2 before additional libraries (that it may depend upon) + and not after. bz3530 from James Zhang; ok dtucker@ + +commit 358e300fed5e6def233a2c06326e51e20ebed621 +Author: deraadt@openbsd.org +Date: Wed Jan 18 20:56:36 2023 +0000 + + upstream: delete useless dependency + + OpenBSD-Commit-ID: e1dc11143f83082e3154d6094f9136d0dc2637ad + +commit a4cb9be1b021b511e281ee55c356f964487d9e82 +Author: deraadt@openbsd.org +Date: Wed Jan 18 20:43:15 2023 +0000 + + upstream: Create and install sshd random relink kit. + + ../Makefile.inc and Makfile are concatenated for reuse, which hopefully won't + be too fragile, we'll see if we need a different approach. The resulting sshd + binary is tested with the new sshd -V option before installation. As the + binary layout is now semi-unknown (meaning relative, fixed, and gadget + offsets are not precisely known), change the filesystem permissions to 511 to + prevent what I call "logged in BROP". I have ideas for improving this further + but this is a first step ok djm + + OpenBSD-Commit-ID: 1e0a2692b7e20b126dda60bf04999d1d30d959d8 + +commit bc7de6f91a9a0ae2f148a9d31a4027d441a51999 +Author: jmc@openbsd.org +Date: Wed Jan 18 06:55:32 2023 +0000 + + upstream: tweak previous; ok djm + + OpenBSD-Commit-ID: df71ce4180c58202dfdc1d92626cfe900b91b7c3 + +commit a20b7e999773e6333c8aa9b0a7fa41966e63b037 +Author: Darren Tucker +Date: Tue Jan 31 19:35:44 2023 +1100 + + Skip connection-timeout test under Valgrind. + + Valgrind slows things down so much that the timeout test fails. Skip + this test until we figure out if we can make it work. + +commit c3ffb54b4fc5e608206037921db6ccbc2f5ab25f +Author: Darren Tucker +Date: Wed Jan 25 21:58:40 2023 +1100 + + Skip connection-timeout when missing FD passing. + + This tests uses multiplexing which uses file descriptor passing, so + skip it if we don't have that. Fixes test failures on Cygwin. + +commit 35253af01d8c0ab444c8377402121816e71c71f5 +Author: djm@openbsd.org +Date: Wed Jan 18 02:00:10 2023 +0000 + + upstream: when restoring non-blocking mode to stdio fds, restore + + exactly the flags that ssh started with and don't just clobber them with + zero, as this could also remove the append flag from the set; + + bz3523; ok dtucker@ + + OpenBSD-Commit-ID: 1336b03e881db7564a4b66014eb24c5230e9a0c0 + +commit 7d17ea151c0b2519f023bd9cc7f141128833ac47 +Author: millert@openbsd.org +Date: Wed Jan 18 01:50:21 2023 +0000 + + upstream: Add a -V (version) option to sshd like the ssh client + + has. OK markus@ deraadt@ + + OpenBSD-Commit-ID: abe990ec3e636fb040132aab8cbbede98f0c413e + +commit 62360feb7f08f2a4c6fc36f3b3449309203c42c9 +Author: millert@openbsd.org +Date: Tue Jan 17 18:52:44 2023 +0000 + + upstream: For "ssh -V" always exit 0, there is no need to check opt + + again. This was missed when the fallthrough in the switch case above it was + removed. OK deraadt@ + + OpenBSD-Commit-ID: 5583e5d8f6d62a8a4215cfa95a69932f344c8120 + +commit 12492c0abf1eb415d08a897cc1d8b9e789888230 +Author: djm@openbsd.org +Date: Tue Jan 17 10:15:10 2023 +0000 + + upstream: also check that an active session inhibits + + UnusedConnectionTimeout idea markus@ + + OpenBSD-Regress-ID: 55c0fb61f3bf9e092b0a53f9041d3d2012f14003 + +commit cef2593c33ac46a58238ff998818754eabdf64ff +Author: djm@openbsd.org +Date: Tue Jan 17 10:02:34 2023 +0000 + + upstream: regression test for UnusedConnectionTimeout + + OpenBSD-Regress-ID: 7f29001374a68e71e5e078f69e4520cf4bcca084 + +commit aff9493a89c71d6a080419b49ac64eead9730491 +Author: djm@openbsd.org +Date: Mon Jan 16 04:11:29 2023 +0000 + + upstream: unbreak test: cannot access shell positional parameters + + past $9 without wrapping the position in braces (i.e. need ${10}, etc.) + + OpenBSD-Regress-ID: 3750ec98d5d409ce6a93406fedde6f220d2ea2ac + +commit 0293c19807f83141cdf33b443154459f9ee471f6 +Author: djm@openbsd.org +Date: Tue Jan 17 09:44:48 2023 +0000 + + upstream: Add a sshd_config UnusedConnectionTimeout option to terminate + + client connections that have no open channels for some length of time. This + complements the recently-added ChannelTimeout option that terminates inactive + channels after a timeout. + + ok markus@ + + OpenBSD-Commit-ID: ca983be74c0350364c11f8ba3bd692f6f24f5da9 + +commit 8ec2e3123802d2beeca06c1644b0b647f6d36dab +Author: djm@openbsd.org +Date: Sun Jan 15 23:35:10 2023 +0000 + + upstream: adapt to ed25519 changes in src/usr.bin/ssh + + OpenBSD-Regress-ID: 4b3e7ba7ee486ae8a0b4790f8112eded2bb7dcd5 + +commit 9fbbfeca1ce4c7ec0001c827bbf4189a3ba0964b +Author: djm@openbsd.org +Date: Sun Jan 15 23:05:32 2023 +0000 + + upstream: update OpenSSH's Ed25519 code to the last version of SUPERCOP + + (20221122) and change the import approach to the same one we use for + Streamlined NTRUPrime: use a shell script to extract the bits we need from + SUPERCOP, make some minor adjustments and squish them all into a single file. + + ok tb@ tobhe@ + + OpenBSD-Commit-ID: 1bc0fd624cb6af440905b8ba74ac7c03311b8e3b + +commit 6283f4bd83eee714d0f5fc55802eff836b06fea8 +Author: Darren Tucker +Date: Sat Jan 14 22:02:44 2023 +1100 + + Allow writev is seccomp sandbox. + + This seems to be used by recent glibcs at least in some configurations. + From bz#3512, ok djm@ + +commit 923c3f437f439cfca238fba37e97a7041782f615 +Author: dtucker@openbsd.org +Date: Sat Jan 14 10:05:54 2023 +0000 + + upstream: Shell syntax fix. From ren mingshuai vi github PR#369. + + OpenBSD-Regress-ID: 6696b2eeefe128099fc3d7ea9f23252cc35156f9 + +commit 4d87a00f704e0365e11c3c38b170c1275ec461fc +Author: dtucker@openbsd.org +Date: Sat Jan 14 09:57:08 2023 +0000 + + upstream: Instead of skipping the all-tokens test if we don't have + + OpenSSL (since we use it to compute the hash), put the hash at the end and + just omit it if we don't have it. Prompted by bz#3521. + + OpenBSD-Regress-ID: c79ecba64250ed3b6417294b6c965e6b12ca5eea + +commit b05406d6f93b8c8ec11ec8b27e7c76cc7a5a55fb +Author: jmc@openbsd.org +Date: Fri Jan 13 07:13:40 2023 +0000 + + upstream: fix double phrase in previous; + + OpenBSD-Commit-ID: 671e6c8dc5e9230518b2bbfa143daaa88adc66c2 + +commit 40564812b659c530eb1f4b62d09e85612aef3107 +Author: dtucker@openbsd.org +Date: Fri Jan 13 03:16:29 2023 +0000 + + upstream: Document "UserKnownHostsFile none". ok djm@ + + OpenBSD-Commit-ID: f695742d39e34ecdcc3c861c3739a84648a4bce5 + +commit d03e245e034019a37388f6f5f893ce848ab6d2e2 +Author: Darren Tucker +Date: Fri Jan 13 23:02:34 2023 +1100 + + Retry package installation 3 times. + + When setting up the CI environment, retry package installation 3 times + before going up. Should help prevent spurious failures during + infrastructure issues. + +commit 625f6bc39840167dafb3bf5b6a3e18503ac986e8 +Author: dtucker@openbsd.org +Date: Fri Jan 13 04:47:34 2023 +0000 + + upstream: Move scp path setting to a helper function. The previous + + commit to add scp to the test sshd's path causes the t-envpass test to fail + when the test scp is given using a fully qualified path. Put this in a + helper function and only call it from the scp tests. + + OpenBSD-Regress-ID: 7533dc1c4265c1de716abb062957994195b36df4 + +commit 6e6f88647042b3cde54a628545c2f5fb656a9327 +Author: dtucker@openbsd.org +Date: Fri Jan 13 04:23:00 2023 +0000 + + upstream: Add scp's path to test sshd's PATH. + + If the scp we're testing is fully qualified (eg it's not in the system + PATH) then add its path to the under-test sshd's PATH so we can find + it. Prompted by bz#3518. + + OpenBSD-Regress-ID: 7df4f5a0be3aa135495b7e5a6719d3cbc26cc4c0 + +commit 8a5e99a70fcf9b022a8aa175ebf6a71f58511da3 +Author: Darren Tucker +Date: Fri Jan 13 15:49:48 2023 +1100 + + Remove skipping test when scp not in path. + + An upcoming change renders this obsolete by adding scp's path to the + test sshd's PATH, and removing this first will make the subsequent sync + easier. + +commit 41f36dd896c8fb8337d403fcf476762986976e9d +Author: dtucker@openbsd.org +Date: Fri Jan 13 02:58:20 2023 +0000 + + upstream: Add a "Host" line to the output of ssh -G showing the + + original host arg. Inspired by patch from vincent at bernat.ch via bz#3343, + ok djm@ + + OpenBSD-Commit-ID: 59c0f60a222113a44d0650cd394376e3beecc883 + +commit f673b49f3be3eb51074fbb8a405beb6cd0f7d93e +Author: djm@openbsd.org +Date: Fri Jan 13 02:44:02 2023 +0000 + + upstream: avoid printf("%s", NULL) if using ssh + + -oUserKnownHostsFile=none and a hostkey in one of the system known hosts file + changes; ok dtucker@ + + OpenBSD-Commit-ID: 7ca87614bfc6da491315536a7f2301434a9fe614 + +commit 93fc7c576563e3d88a1dc019dd213f65607784cc +Author: djm@openbsd.org +Date: Wed Jan 11 05:39:38 2023 +0000 + + upstream: clamp the minimum buffer lengths and number of inflight + + requests too + + OpenBSD-Commit-ID: c4965f62fa0ba850940fd66ae3f60cf516bbcd56 + +commit 48bf234322e639d279c5a28435eae50155e9b514 +Author: djm@openbsd.org +Date: Wed Jan 11 05:36:50 2023 +0000 + + upstream: ignore bogus upload/download buffer lengths in the limits + + extension + + OpenBSD-Commit-ID: c5b023e0954693ba9a5376e4280c739b5db575f8 + +commit 36b00d31833ca74cb0f7c7d8eda1bde55700f929 +Author: djm@openbsd.org +Date: Wed Jan 11 02:13:52 2023 +0000 + + upstream: remove whitespace at EOL from code extracted from SUPERCOP + + OpenBSD-Commit-ID: 1ec524ff2fbb9387d731601437c82008f35a60f4 + +commit d888de06c5e4d7dbf2f2b85f2b5bf028c570cf78 +Author: djm@openbsd.org +Date: Wed Jan 11 00:51:27 2023 +0000 + + upstream: rewrite this test to use a multiplexed ssh session so we can + + control its lifecycle without risk of race conditions; fixes some of the + Github integration tests for openssh-portable + + OpenBSD-Regress-ID: 5451cad59ba0d43ae9eeda48ec80f54405fee969 + +commit 4bcc737a35fdd9cc4af7423d6c23dfd0c7ef4786 +Author: Damien Miller +Date: Wed Jan 11 11:45:17 2023 +1100 + + remove buffer len workaround for NetBSD 4.x + + Switching to from pipes to a socketpair for communicating with the + ssh process avoids the (kernel bug?) problem. + +commit f5154d2aac3e6a32a1b13dec23a701a087850cdc +Author: Damien Miller +Date: Wed Jan 11 11:44:19 2023 +1100 + + add back use of pipes in scp.c under USE_PIPES + + This matches sftp.c which prefers socketpair but uses pipes on + some older platforms. + +commit eec737b59cf13841de46134967a206607000acd4 +Author: millert@openbsd.org +Date: Tue Jan 10 23:22:15 2023 +0000 + + upstream: Switch scp from using pipes to a socketpair for + + communication with it's ssh sub-processes. We no longer need to reserve two + descriptors to ensure that we don't end up using fd 0-2 unexpectedly, that is + handled by sanitise_stdfd() in main(). Based on an original diff from djm@. + OK deraadt@ djm@ + + OpenBSD-Commit-ID: b80c372faac462471e955ddeab9480d668a2e48d + +commit d213d126a4a343abd3a1eb13687d39c1891fe5c8 +Author: jmc@openbsd.org +Date: Fri Jan 6 08:44:11 2023 +0000 + + upstream: tweak previous; ok djm + + OpenBSD-Commit-ID: 229c493452766d70a78b0f02f6ff9894f9028858 + +commit 4a5590a5ee47b7dfd49773e9fdba48ad3089fe64 +Author: Damien Miller +Date: Mon Jan 9 16:33:56 2023 +1100 + + try to improve logging for dynamic-forward test + + previously the logs from the ssh used to exercise the forwarding + channel would clobber the logs from the ssh actually doing the + forwarding + +commit 715bc25dcfccf9fb2bee820155fe071d01a618db +Author: Darren Tucker +Date: Sat Jan 7 23:24:50 2023 +1100 + + Skip dynamic-forward test on minix3. + + This test relies on loopback addresses which minix does not have. + Previously the test would not run at all since it also doesn't have + netcat, but now we use our own netcat it tries and fails. + +commit dd1249bd5c45128a908395c61b26996a70f82205 +Author: Damien Miller +Date: Sun Jan 8 12:08:59 2023 +1100 + + don't test IPv6 addresses if platform lacks support + +commit d77fc611a62f2dfee0b654c31a50a814b13310dd +Author: dtucker@openbsd.org +Date: Fri Jan 6 12:33:33 2023 +0000 + + upstream: When OpenSSL is not available, skip parts of percent test + + that require it. Based on github pr#368 from ren mingshuai. + + OpenBSD-Regress-ID: 49a375b2cf61ccb95b52e75e2e025cd10988ebb2 + +commit 1cd2aac312af9172f1b5cb06c2e1cd090abb83cf +Author: Darren Tucker +Date: Sat Jan 7 23:01:11 2023 +1100 + + Use our own netcat for dynamic-forward test. + + That way we can be surer about its behaviour rather than trying to + second-guess the behaviour of various netcat implementations. + +commit 26cab41c05d7b0859d2a1ea5b6ed253d91848a80 +Author: Darren Tucker +Date: Sat Jan 7 14:30:43 2023 +1100 + + Use autoconf to find openssl binary. + + It's possible to install an OpenSSL in a path not in the system's + default library search path. OpenSSH can still use this (eg if you + specify an rpath) but the openssl binary there may not work. If one is + available on the system path just use that. + +commit 5532e010a0eeb6aa264396514f9aed7948471538 +Author: Darren Tucker +Date: Sat Jan 7 10:34:18 2023 +1100 + + Check openssl_bin path is executable before using. + +commit 5d7b16cff48598d5908db970bfdc9ff9326142c8 +Author: Darren Tucker +Date: Fri Jan 6 23:19:07 2023 +1100 + + Set OPENSSL_BIN from OpenSSL directory. + +commit 344a0e8240eaf08da5d46a5e3a9ecad6e4f64c35 +Author: dtucker@openbsd.org +Date: Fri Jan 6 08:50:33 2023 +0000 + + upstream: Save debug logs from ssh for debugging purposes. + + OpenBSD-Regress-ID: 109e40b06de1c006a3b8e0d8745b790b2c5870a0 + +commit e1ef172646f7f49c80807eea90225ef5e0be55a8 +Author: djm@openbsd.org +Date: Fri Jan 6 08:07:39 2023 +0000 + + upstream: regression test for ChannelTimeout + + OpenBSD-Regress-ID: 280bfbefcfa415428ad744e43f69a8dede8ad685 + +commit 2393ea8daf25853459eb07a528d7577688847777 +Author: djm@openbsd.org +Date: Fri Jan 6 07:18:18 2023 +0000 + + upstream: fix typo in verbose logging + + OpenBSD-Regress-ID: 0497cdb66e003b2f50ed77291a9104fba2e017e9 + +commit 161a5378a3cc2e7aa3f9674cb7f4686ae6ce9586 +Author: djm@openbsd.org +Date: Fri Jan 6 02:59:50 2023 +0000 + + upstream: unit tests for misc.c:ptimeout_* API + + OpenBSD-Regress-ID: 01f8fb12d08e5aaadd4bd4e71f456b6588be9a94 + +commit 018d671d78145f03d6f07ae9d64d51321da70325 +Author: tb@openbsd.org +Date: Wed Jan 4 22:48:57 2023 +0000 + + upstream: Copy bytes from the_banana[] rather than banana() + + Fixes test failure due to segfault seen on arm64 with xonly snap. + + ok djm + + OpenBSD-Regress-ID: 86e2aa4bbd1dff1bc4ebb2969c0d6474485be046 + +commit ab6bb69e251faa8b24f81b25c72ec0120f20cad4 +Author: Damien Miller +Date: Fri Jan 6 19:13:36 2023 +1100 + + unbreak scp on NetBSD 4.x + + e555d5cad5 effectively increased the default copy buffer size for SFTP + transfers. This caused NetBSD 4.x to hang during the "copy local file to + remote file in place" scp.sh regression test. + + This puts back the original 32KB copy buffer size until we can properly + figure out why. + + lots of debugging assistance from dtucker@ + +commit 2d1ff2b9431393ad99ef496d5e3b9dd0d4f5ac8c +Author: djm@openbsd.org +Date: Fri Jan 6 02:47:18 2023 +0000 + + upstream: Implement channel inactivity timeouts + + This adds a sshd_config ChannelTimeouts directive that allows channels that + have not seen traffic in a configurable interval to be automatically closed. + Different timeouts may be applied to session, X11, agent and TCP forwarding + channels. + + Note: this only affects channels over an opened SSH connection and not + the connection itself. Most clients close the connection when their channels + go away, with a notable exception being ssh(1) in multiplexing mode. + + ok markus dtucker + + OpenBSD-Commit-ID: ae8bba3ed9d9f95ff2e2dc8dcadfa36b48e6c0b8 + +commit 0e34348d0bc0b1522f75d6212a53d6d1d1367980 +Author: djm@openbsd.org +Date: Fri Jan 6 02:42:34 2023 +0000 + + upstream: Add channel_set_xtype() + + This sets an "extended" channel type after channel creation (e.g. + "session:subsystem:sftp") that will be used for setting channel inactivity + timeouts. + + ok markus dtucker + + OpenBSD-Commit-ID: 42564aa92345045b4a74300528f960416a15d4ca + +commit ceedf09b2977f3a756c759a6e7eb8f8e9db86a18 +Author: djm@openbsd.org +Date: Fri Jan 6 02:41:49 2023 +0000 + + upstream: tweak channel ctype names + + These are now used by sshd_config:ChannelTimeouts to specify timeouts by + channel type, so force them all to use a similar format without whitespace. + + ok dtucker markus + + OpenBSD-Commit-ID: 66834765bb4ae14f96d2bb981ac98a7dae361b65 + +commit c60438158ad4b2f83d8504257aba1be7d0b0bb4b +Author: djm@openbsd.org +Date: Fri Jan 6 02:39:59 2023 +0000 + + upstream: Add channel_force_close() + + This will forcibly close an open channel by simulating read/write errors, + draining the IO buffers and calling the detach function. + + Previously the detach function was only ever called during channel garbage + collection, but there was no way to signal the user of a channel (e.g. + session.c) that its channel was being closed deliberately (vs. by the + usual state-machine logic). So this adds an extra "force" argument to the + channel cleanup callback to indicate this condition. + + ok markus dtucker + + OpenBSD-Commit-ID: 23052707a42bdc62fda2508636e624afd466324b + +commit d478cdc7ad6edd4b1bcd1e86fb2f23194ff33d5a +Author: djm@openbsd.org +Date: Fri Jan 6 02:38:23 2023 +0000 + + upstream: replace manual poll/ppoll timeout math with ptimeout API + + feedback markus / ok markus dtucker + + OpenBSD-Commit-ID: c5ec4f2d52684cdb788cd9cbc1bcf89464014be2 + +commit 4adf3817a24efe99b06e62630577d683c7cd8065 +Author: djm@openbsd.org +Date: Fri Jan 6 02:37:04 2023 +0000 + + upstream: add ptimeout API for keeping track of poll/ppoll + + timeouts; ok dtucker markus + + OpenBSD-Commit-ID: 3335268ca135b3ec15a947547d7cfbb8ff929ead + +commit 8c7c69d32375d2f3ce9da0109c9bffc560842316 +Author: djm@openbsd.org +Date: Thu Jan 5 05:49:13 2023 +0000 + + upstream: suppress "Connection closed" message when in quiet mode + + OpenBSD-Commit-ID: 8a3ab7176764da55f60bfacfeae9b82d84e3908f + +commit 845ceecea2ac311b0c267f9ecbd34862e1876fc6 +Author: djm@openbsd.org +Date: Mon Jan 2 07:03:57 2023 +0000 + + upstream: regression test for PermitRemoteOpen + + OpenBSD-Regress-ID: 8271aafbf5c21950cd5bf966f08e585cebfe630c + +commit b3daa8dc582348d6ab8150bc1e571b7aa08c5388 +Author: djm@openbsd.org +Date: Mon Jan 2 07:03:30 2023 +0000 + + upstream: fix bug in PermitRemoteOpen which caused it to ignore its + + first argument unless it was one of the special keywords "any" or "none". + + Reported by Georges Chaudy in bz3515; ok dtucker@ + + OpenBSD-Commit-ID: c5678a39f1ff79993d5ae3cfac5746a4ae148ea5 + +commit 0872663a7be0301bcc3d49acdbc9b740a3d972d4 +Author: jmc@openbsd.org +Date: Mon Dec 26 19:16:03 2022 +0000 + + upstream: spelling fixes; from paul tagliamonte amendments to his + + diff are noted on tech + + OpenBSD-Commit-ID: d776dd03d0b882ca9c83b84f6b384f6f9bd7de4a + +commit 797da2812a71785b34890bb6eb44767a7d09cd34 +Author: djm@openbsd.org +Date: Fri Dec 16 07:13:22 2022 +0000 + + upstream: Mention that scp uses the SFTP protocol and remove + + reference to legacy flag. Spotted by, feedback and ok jmc@ + + OpenBSD-Commit-ID: 9dfe04966f52e941966b46c7a2972147f95281b3 + +commit 93f2ce8c050a7a2a628646c00b40b9b53fef93ef +Author: djm@openbsd.org +Date: Fri Dec 16 06:56:47 2022 +0000 + + upstream: Clear signal mask early in main(); sshd may have been + + started with one or more signals masked (sigprocmask(2) is not cleared + on fork/exec) and this could interfere with various things, e.g. the + login grace timer. + + Execution environments that fail to clear the signal mask before running + sshd are clearly broken, but apparently they do exist. + + Reported by Sreedhar Balasubramanian; ok dtucker@ + + OpenBSD-Commit-ID: 77078c0b1c53c780269fc0c416f121d05e3010ae + +commit 4acfaabfae41badb9d334a2ee88c5c6ad041c0d5 +Author: jmc@openbsd.org +Date: Fri Dec 16 06:52:48 2022 +0000 + + upstream: add -X to usage(); + + OpenBSD-Commit-ID: 1bdc3df7de11d766587b0428318336dbffe4a9d0 + +commit e555d5cad5afae7d5ef2bbc02ca591178fe16fed +Author: djm@openbsd.org +Date: Fri Dec 16 03:40:03 2022 +0000 + + upstream: add a -X option to both scp(1) and sftp(1) to allow + + control over some SFTP protocol knobs: the copy buffer length and + the number of inflight requests, both of which are used during + upload/download. + + Previously these could be controlled in sftp(1) using the -b/-R options. + This makes them available in both SFTP protocol clients using the same + option character sequence. + + ok dtucker@ + + OpenBSD-Commit-ID: 27502bffc589776f5da1f31df8cb51abe9a15f1c + +commit 5a7a7acab2f466dc1d7467b5d05d35268c3137aa +Author: deraadt@openbsd.org +Date: Thu Dec 15 18:20:39 2022 +0000 + + upstream: The idiomatic way of coping with signed char vs unsigned + + char (which did not come from stdio read functions) in the presence of + ctype macros, is to always cast to (unsigned char). casting to (int) + for a "macro" which is documented to take int, is weird. And sadly wrong, + because of the sing extension risk.. same diff from florian + + OpenBSD-Commit-ID: 65b9a49a68e22ff3a0ebd593f363e9f22dd73fea + +commit b0b58222c7cc62efd8212c4fb65a545f58ebb22d +Author: Darren Tucker +Date: Mon Dec 19 18:49:51 2022 +1100 + + Simply handling of SSH_CONNECTION PAM env var. + + Prompted by bz#3508: there's no need to cache the value of + sshpam_conninfo so remove the global. While there, add check of + return value from pam_putenv. ok djm@ + +commit ed8444572ae684fdb892f97bae342c6cb6456f04 +Author: Darren Tucker +Date: Mon Dec 19 18:42:34 2022 +1100 + + Add tests for LibreSSL 3.7.0 and OpenSSL 1.1.1s. + +commit abb9a8aaddfcacbd12641f6e4f203da0fa85a287 +Author: Darren Tucker +Date: Sun Dec 18 21:36:25 2022 +1100 + + Use sudo when resetting perms on directories. + +commit 2f5664c5908d84697cbe91302d5d5c4d83cb2121 +Author: Darren Tucker +Date: Sun Dec 18 21:19:33 2022 +1100 + + Set group perms on regress dir. + + This ensures that the tests don't fail due to StrictMode checks. + +commit 137196300fc1540affadde880210f02ba6cb4abf +Author: Darren Tucker +Date: Sun Dec 18 21:13:42 2022 +1100 + + Fetch regress logs from obj dir. + +commit 5f93c4836527d9fda05de8944a1c7b4a205080c7 +Author: Darren Tucker +Date: Tue Dec 13 20:59:54 2022 +1100 + + obsdsnap test VMs runs-on libvirt too. + +commit 8386886fb1ab7fda73069fb0db1dbe0e5a52f758 +Author: Darren Tucker +Date: Tue Dec 13 20:55:37 2022 +1100 + + Run upstream obsdsnap tests on ephemeral runners. + +commit b6e01459b55ece85d7f296b2bc719d1841e1009e +Author: Darren Tucker +Date: Tue Dec 13 20:48:56 2022 +1100 + + Move obsdsnap test VMs to ephemeral runners. + +commit ea6fdf9a1aa71a411f7db218a986392c4fb55693 +Author: Damien Miller +Date: Fri Dec 9 18:00:21 2022 +1100 + + use calloc for allocating arc4random structs + + ok dtucker + +commit 4403b62f5548e91389cb3339d26a9d0c4bb07b34 +Author: dtucker@openbsd.org +Date: Fri Dec 9 00:22:29 2022 +0000 + + upstream: Warn if no host keys for hostbased auth can be loaded. + + OpenBSD-Commit-ID: 2a0a13132000cf8d3593133c1b49768aa3c95977 + +commit a6183e25e3f1842e21999fe88bc40bb99b121dc3 +Author: dtucker@openbsd.org +Date: Fri Dec 9 00:17:40 2022 +0000 + + upstream: Add server debugging for hostbased auth. + + auth_debug_add queues messages about the auth process which is sent to + the client after successful authentication. This also sends those to + the server debug log to aid in debugging. From bz#3507, ok djm@ + + OpenBSD-Commit-ID: 46ff67518cccf9caf47e06393e2a121ee5aa258a + +commit b85c3581c16aaf6e83b9a797c80705a56b1f312e +Author: cheloha@openbsd.org +Date: Sun Dec 4 23:50:49 2022 +0000 + + upstream: remove '?' from getopt(3) loops + + userspace: remove vestigial '?' cases from top-level getopt(3) loops + + getopt(3) returns '?' when it encounters a flag not present in the in + the optstring or if a flag is missing its option argument. We can + handle this case with the "default" failure case with no loss of + legibility. Hence, remove all the redundant "case '?':" lines. + + Prompted by dlg@. With help from dlg@ and millert@. + + Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2 + + ok naddy@ millert@ dlg@ + + OpenBSD-Commit-ID: b2f89346538ce4f5b33ab8011a23e0626a67e66e + +commit 9a067e8d28a2249fd73f004961e30c113ee85e5d +Author: dtucker@openbsd.org +Date: Wed Dec 7 11:45:43 2022 +0000 + + upstream: Fix comment typo. + + OpenBSD-Regress-ID: 3b04faced6511bb5e74648c6a4ef4bf2c4decf03 + +commit ce3c3e78ce45d68a82c7c8dc89895f297a67f225 +Author: Darren Tucker +Date: Wed Dec 7 18:58:25 2022 +1100 + + Add SANDBOX_DEBUG to the kitchensink test build. + +commit bc234605fa3eb10f56bf0d74c8ecb0d91ada9d05 +Author: Damien Miller +Date: Wed Dec 7 18:38:25 2022 +1100 + + disable SANDBOX_SECCOMP_FILTER_DEBUG + + It was mistakenly enabled in 2580916e4872 + + Reported by Peter sec-openssh-com.22.fichtner AT 0sg.net + +commit b087c5cfa011b27992e01589314fec830266f99d +Author: Rose <83477269+AtariDreams@users.noreply.github.com> +Date: Tue Nov 29 15:12:54 2022 -0500 + + Update autotools + + Regenerate config files using latest autotools + +commit d63f5494978a185c7421d492b9c2f6f05bb54138 +Author: Darren Tucker +Date: Tue Dec 6 12:22:36 2022 +1100 + + Fix typo in comment. Spotted by tim@ + +commit 73dcca12115aa12ed0d123b914d473c384e52651 +Author: dtucker@openbsd.org +Date: Sun Dec 4 11:03:11 2022 +0000 + + upstream: Remove duplicate includes. + + Patch from AtariDreams via github PR#364. + + OpenBSD-Commit-ID: b9186638a05cb8b56ef7c0de521922b6723644ea + +commit 3cec15543010bc8d6997d896b1717a650afb7e92 +Author: djm@openbsd.org +Date: Fri Dec 2 04:40:27 2022 +0000 + + upstream: make struct sshbuf private + + and remove an unused field; ok dtucker + + OpenBSD-Commit-ID: c7a3d77c0b8c153d463398606a8d57569186a0c3 + +commit 5796bf8ca9535f9fa7d01829a540d2550e05c860 +Author: Darren Tucker +Date: Fri Dec 2 11:43:36 2022 +1100 + + Restore ssh-agent permissions on exit. + + ...enough that subsequent builds can overwrite ssh-agent if necessary. + +commit ccf5a13868cbb4659107458cac1e017c98abcbda +Author: dtucker@openbsd.org +Date: Thu Dec 1 02:22:13 2022 +0000 + + upstream: Clean up ssh-add and ssh-agent logs. + + OpenBSD-Regress-ID: 9eda8e4c3714d7f943ab2e73ed58a233bd29cd2c + +commit 7a8b40cf6a5eda80173140cc6750a6db8412fa87 +Author: dtucker@openbsd.org +Date: Thu Dec 1 02:19:29 2022 +0000 + + upstream: Log output of ssh-agent and ssh-add + + This should make debugging easier. + + OpenBSD-Regress-ID: 5974b02651f428d7e1079b41304c498ca7e306c8 + +commit 4a1805d532616233dd6072e5cd273b96dd3062e6 +Author: dtucker@openbsd.org +Date: Tue Nov 29 22:41:14 2022 +0000 + + upstream: Add void to client_repledge args to fix compiler warning. ok djm@ + + OpenBSD-Commit-ID: 7e964a641ce4a0a0a11f047953b29929d7a4b866 + +commit 815c4704930aa449edf6e812e99d69e9ffd31f01 +Author: djm@openbsd.org +Date: Mon Nov 28 01:38:22 2022 +0000 + + upstream: tighten pledge(2) after session establishment + + feedback, ok & testing in snaps deraadt@ + + OpenBSD-Commit-ID: aecf4d49d28586dfbcc74328d9333398fef9eb58 + +commit f7cebbbf407d772ed71403d314343766782fe540 +Author: djm@openbsd.org +Date: Mon Nov 28 01:37:36 2022 +0000 + + upstream: New EnableEscapeCommandline ssh_config(5) option + + This option (default "no") controls whether the ~C escape is available. + Turning it off by default means we will soon be able to use a stricter + default pledge(2) in the client. + + feedback deraadt@ dtucker@; tested in snaps for a while + + OpenBSD-Commit-ID: 7e277595d60acb8263118dcb66554472257b387a + +commit d323f7ecf52e3d4ec1f4939bf31693e02f891dca +Author: mbuhl@openbsd.org +Date: Fri Nov 18 19:47:40 2022 +0000 + + upstream: In channel_request_remote_forwarding the parameters for + + permission_set_add are leaked as they are also duplicated in the call. Found + by CodeChecker. ok djm + + OpenBSD-Commit-ID: 4aef50fa9be7c0b138188814c8fe3dccc196f61e + +commit 62cc33e6eed847aafdc29e34aa69e9bd82a0ee16 +Author: Darren Tucker +Date: Wed Nov 30 11:23:11 2022 +1100 + + Use -fzero-call-used-regs=used on clang 15. + + clang 15 seems to have a problem with -fzero-call-used-reg=all which + causes spurious "incorrect signature" failures with ED25519. On those + versions, use -fzero-call-used-regs=used instead. (We may add exceptions + later if specific versions prove to be OK). Also move the GCC version + check to match. + + Initial investigation by Daniel Pouzzner (douzzer at mega nu), workaround + suggested by Bill Wendling (morbo at google com). bz#3475, ok djm@ + +commit f84b9cffd52c9c5c359a54a1929f9948e803ab1d +Author: Darren Tucker +Date: Mon Nov 28 21:09:28 2022 +1100 + + Skip unit tests on slow riscv64 hardware. + +commit 9f2747e0bed3faca92679eae69aef10c95dc82f5 +Author: Darren Tucker +Date: Sun Nov 27 15:26:22 2022 +1100 + + Rework how selfhosted tests interact with runners. + + Previously there was one runner per test target (mostly VMs). This had + a few limitations: + - multiple tests that ran on the same target (eg multiple build + configs) were serialized on availability or that runner. + - it needed manual balancing of VMs over host machines. + + To address this, make VMs that use ephemeral disks (ie most of them) + all use a pool of runners with the "libvirt" label. This requires that + we distinguish between "host" and "target" for those. Native runners + and VMs with persistent disks (eg the constantly-updated snapshot ones) + specify the same host and target. + + This should improve test throughput. + +commit d664ddaec87bdc7385be8ef7f1337793e1679d48 +Author: Darren Tucker +Date: Sun Nov 27 12:19:37 2022 +1100 + + Run vmstartup from temp dir. + + This will allow us to create ephemeral disk images per-runner. + +commit 0fa16e952b1fc1c4cf65e3dd138b0e87003e2e45 +Author: Darren Tucker +Date: Sun Nov 27 12:14:00 2022 +1100 + + Make "config" in matrix singular and pass in env. + + This will allow the startup scripts to adapt their behaviour based on + the type and config. + +commit e8857043af54809187be1e8b06749db61112899f +Author: Darren Tucker +Date: Sun Nov 27 11:42:22 2022 +1100 + + Add "libvirt" label to dfly30. + +commit 9775473d84902dc37753686cd10ae71fbe67efda +Author: Darren Tucker +Date: Sun Nov 27 09:28:20 2022 +1100 + + Rename "os" in matrix to "target". + + This is in preparation to distinguish this from the host that the runner + runs on in case where they are separate (eg VMs). + +commit 04fd00ceff39f4544ced6f5342060abe584835d0 +Author: Darren Tucker +Date: Sun Nov 27 09:23:04 2022 +1100 + + Remove unused self-hosted test targets. + +commit c9d9fcad2a11c1cd1550a541f44091d65f0b5584 +Author: Darren Tucker +Date: Sun Nov 27 09:16:15 2022 +1100 + + Remove explicit "default" test config argument. + + Not specifying the test config implicitly selects default args. + +commit 15a01cf15f396f87c6d221c5a6af98331c818962 +Author: Darren Tucker +Date: Wed Nov 23 13:18:54 2022 +1100 + + Add fallback for old platforms w/out MAP_ANON. + +commit 6b9bbbfe8b26db6e9a30a7e08c223e85421aed98 +Author: Darren Tucker +Date: Wed Nov 23 13:09:11 2022 +1100 + + If we haven't found it yet, recheck for sys/stat.h. + + On some very old platforms, sys/stat.h needs sys/types.h, however + autoconf 2.71's AC_CHECK_INCLUDES_DEFAULT checks for them in the + opposite order, which in combination with modern autoconf's + "present but cannot be compiled" behaviour causes it to not be + detected. + +commit 8926956f22639132a9f2433fcd25224e01b900f5 +Author: Darren Tucker +Date: Fri Nov 11 11:25:37 2022 +1100 + + Add dfly62 test target. + +commit 650de7ecd3567b5a5dbf16dd1eb598bd8c20bca8 +Author: dtucker@openbsd.org +Date: Thu Nov 10 23:03:10 2022 +0000 + + upstream: Handle dynamic remote port forwarding in escape commandline's + + -R processing. bz#3499, ok djm@ + + OpenBSD-Commit-ID: 194ee4cfe7ed0e2b8ad0727f493c798a50454208 + +commit 5372db7e7985ba2c00f20fdff8942145ca99e033 +Author: Darren Tucker +Date: Thu Nov 10 12:44:51 2022 +1100 + + Remove seed passing over reexec. + + This was added for the benefit of platforms using ssh-rand-helper to + prevent a delay on each connection as sshd reseeded itself. + + ssh-random-helper is long gone, and since the re-exec happens before the + chroot the re-execed sshd can reseed itself normally. ok djm@ + +commit ca98d3f8c64cfc51af81e1b01c36a919d5947ec2 +Author: Darren Tucker +Date: Wed Nov 9 20:59:20 2022 +1100 + + Skip reexec test on OpenSSL 1.1.1 specifically. + + OpenSSL 1.1.1 has a bug in its RNG that breaks reexec fallback, so skip + that test. See bz#3483 for details. + +commit 5ec4ebc2548e5f7f1b55b2a5cef5b67bdca8146f +Author: dtucker@openbsd.org +Date: Wed Nov 9 09:04:12 2022 +0000 + + upstream: Fix typo in fatal error message. + + Patch from vapier at chromium.org. + + OpenBSD-Commit-ID: 8a0c164a6a25eef0eedfc30df95bfa27644e35cf + +commit e6abafe9a6d809422d3432b95b3f9747b0acaa71 +Author: dtucker@openbsd.org +Date: Wed Nov 9 09:01:52 2022 +0000 + + upstream: Remove errant colon and simplify format + + string in error messages. Patch from vapier at chromium.org. + + OpenBSD-Commit-ID: fc28466ebc7b74e0072331947a89bdd239c160d3 + +commit db2027a687516f87c3fb141e87154bb3d8a7807c +Author: djm@openbsd.org +Date: Wed Nov 9 01:37:44 2022 +0000 + + upstream: rename client_global_hostkeys_private_confirm() to + + client_global_hostkeys_prove_confirm(), as it handles the + "hostkeys-prove00@openssh.com" message; no functional change + + OpenBSD-Commit-ID: 31e09bd3cca6eed26855b88fb8beed18e9bd026d + +commit 1c2be7c2004cf1abcd172fee9fe3eab57cd4c426 +Author: djm@openbsd.org +Date: Wed Nov 9 00:15:59 2022 +0000 + + upstream: typo in comment + + OpenBSD-Commit-ID: 39c58f41e0f32d1ff31731fa6f5bbbc3ad25084a + +commit cf1a9852d7fc93e4abc4168aed09529a57427cdc +Author: Darren Tucker +Date: Wed Nov 9 09:23:47 2022 +1100 + + Defer seed_rng until after closefrom call. + + seed_rng will initialize OpenSSL, and some engine providers (eg Intel's + QAT) will open descriptors for their own use. bz#3483, patch from + joel.d.schuetze at intel.com, ok djm@ + +commit dffa64480163fbf76af7e4fb62c26bb0dd6642aa +Author: Darren Tucker +Date: Wed Nov 9 08:27:47 2022 +1100 + + Fix comment text. From emaste at freebsd.org. + +commit d9df5689c29823ab830ec4f54c83c6cc3c0077ad +Author: Pierre Ossman +Date: Wed Jul 6 13:52:10 2022 +0200 + + Avoid assuming layout of fd_set + + POSIX doesn't specify the internal layout of the fd_set object, so let's + not assume it is just a bit mask. This increases compatibility with + systems that have a different layout. + + The assumption is also worthless as we already refuse to use file + descriptors over FD_SETSIZE anyway. Meaning that the default size of + fd_set is quite sufficient. + +commit 419aa8a312e8d8f491933ca3d5933e602cb05aae +Author: Darren Tucker +Date: Tue Nov 8 12:42:52 2022 +1100 + + Shutdown any VM before trying to check out repo. + + In the case where the previous run did not clean up, the checkout will + fail as it'll leave a stale mount. + +commit a32c07cbb78f65d8527642b96474a83b413f8108 +Author: Darren Tucker +Date: Tue Nov 8 11:33:25 2022 +1100 + + Run vm startup and shutdown from runner temp dir. + + Should work even if the github workspace dir is on a stale sshfs mount. + +commit 2b40a7dfcdb8e616155b9504145aa52b271455aa +Author: Darren Tucker +Date: Tue Nov 8 11:03:31 2022 +1100 + + Add valrind-5 test here too. + +commit 2ea03d1f6d0a05ee2b63ed2dc0f2d54f1e4655a1 +Author: Darren Tucker +Date: Tue Nov 8 09:21:10 2022 +1100 + + Update checkout and upload actions. + + Update actions/checkout and actions/upload-artifact to main branch for + compatibility with node.js v16. + +commit 4e316ff0f18a118232bb9ac6512ee62773a9e8ea +Author: Darren Tucker +Date: Tue Nov 8 09:17:04 2022 +1100 + + Split out rekey test since it runs the longest. + +commit 21625a6424258a92a96a3bb73ae6aabc5ed8a6b4 +Author: dtucker@openbsd.org +Date: Mon Nov 7 10:09:28 2022 +0000 + + upstream: The IdentityFile option in ssh_config can also be used to + + specify a public key file, as documented in ssh.1 for the -i option. Document + this also for IdentityFile in ssh_config.5, for documentation completeness. + From laalsaas at systemli.org via portable github PR#352, ok jmc@ djm@ + + OpenBSD-Commit-ID: 2f943be9f96e60ef81a9a4faa25b009999f9883b + +commit 747691604d3325ed2b62bad85b6fd8563ad32f6c +Author: dtucker@openbsd.org +Date: Mon Nov 7 10:05:38 2022 +0000 + + upstream: Remove some set but otherwise unused variables, spotted + + in -portable by clang 16's -Wunused-but-set-variable. ok djm@ + + OpenBSD-Commit-ID: 3d943ddf2369b38fbf89f5f19728e7dc1daf3982 + +commit 1d78d25653805aefc7a8dd9d86cd7359ada3823c +Author: dtucker@openbsd.org +Date: Mon Nov 7 10:02:59 2022 +0000 + + upstream: Check for and disallow MaxStartups values less than or + + equal to zero during config parsing, rather than faling later at runtime. + bz#3489, ok djm@ + + OpenBSD-Commit-ID: d79c2b7a8601eb9be493629a91245d761154308b + +commit a00f59a645072e5f5a8d207af15916a7b23e2642 +Author: djm@openbsd.org +Date: Mon Nov 7 04:04:40 2022 +0000 + + upstream: fix parsing of hex cert expiry time; was checking whether the + + start time began with "0x", not the expiry time. + + from Ed Maste + + OpenBSD-Commit-ID: 6269242c3e1a130b47c92cfca4d661df15f05739 + +commit f58acaf8c7315483f4ac87d46a1aa2142a713cd8 +Author: Darren Tucker +Date: Mon Nov 7 15:10:59 2022 +1100 + + Fix merge conflict. + +commit 162e5741020a8d996c0c12b988b118e71ed728e6 +Author: Darren Tucker +Date: Mon Nov 7 15:04:33 2022 +1100 + + Branch-specific links for master status badges. + +commit e4b7c12ab24579312aa3ed38ce7041a439ec2d56 +Author: Darren Tucker +Date: Mon Nov 7 14:46:38 2022 +1100 + + Add CIFuzz status badge. + +commit b496b9f831acd1e5bcd875e26e797488beef494a +Author: Darren Tucker +Date: Mon Nov 7 14:45:16 2022 +1100 + + Do not run CIFuzz on selfhosted tree. + + We already run it on the regular tree, no need to double up. + +commit 2138b1c4ddb300129a41a5104627b0d561184c7b +Author: Darren Tucker +Date: Mon Nov 7 14:41:58 2022 +1100 + + Whitespace change to trigger CIFuzz workflow. + +commit 4670b97ef87c7b0f21283c9b07c7191be88dda05 +Author: Darren Tucker +Date: Mon Nov 7 14:34:04 2022 +1100 + + Run cifuzz workflow on the actions as regular CI. + +commit 79391e66ce851ace1baf3c6a35e83a23f08ec2ba +Author: David Korczynski +Date: Tue Nov 30 11:45:20 2021 +0000 + + Add CIFuzz integration + +commit c1893364a0be243270014d7d34362a8101d55112 +Author: dtucker@openbsd.org +Date: Mon Nov 7 02:21:22 2022 +0000 + + upstream: Import regenerated moduli. + + OpenBSD-Commit-ID: b0e54ee4d703bd6929bbc624068666a7a42ecb1f + +commit 5c3f18fb994ef27e685b205ee2351851b80fdbd1 +Author: dtucker@openbsd.org +Date: Mon Nov 7 01:53:01 2022 +0000 + + upstream: Fix typo. From pablomh via -portable github PR#344. + + OpenBSD-Commit-ID: d056ee2e73691dc3ecdb44a6de68e6b88cd93827 + +commit e1c6fcc142066417c9832e634463faa3dd5d116c +Author: Darren Tucker +Date: Mon Nov 7 12:46:58 2022 +1100 + + Link to branch-specific queries for V_9_1 status. + +commit 4f4a5fad6d8892c3f8ee9cd81ec7de6458210c9f +Author: Darren Tucker +Date: Sun Nov 6 10:55:59 2022 +1100 + + Use "prohibit-password" in -portable comments. + + "without-password" is the deprecated alias for "prohibit-password", + so we should reference the latter. From emaste at freebsd.org. + +commit 0f7e1eba55259ec037f515000b4c4afbf446230a +Author: Darren Tucker +Date: Sun Nov 6 10:50:01 2022 +1100 + + Fix tracing disable on FreeBSD. + + Some versions of FreeBSD do not support using id 0 to refer to the + current pid for procctl, so pass getpid() explicitly. From + emaste at freebsd.org. + +commit 32fddb982fd61b11a2f218a115975a87ab126d43 +Author: Darren Tucker +Date: Mon Nov 7 10:39:01 2022 +1100 + + Fix setres*id checks to work with clang-16. + + glibc has the prototypes for setresuid and setresgid behind _GNU_SOURCE, + and clang 16 will error out on implicit function definitions, so add + _GNU_SOURCE and the required headers to the configure checks. From + sam at @gentoo.org via bz#3497. + +commit 12af712d116f42164bcfa56db901d06e4fa27199 +Author: Sam James +Date: Sun Nov 6 04:52:38 2022 +0000 + + configure.ac: Fix -Wstrict-prototypes + + Clang 16 now warns on this and it'll be removed in C23, so let's + just be future proof. It also reduces noise when doing general + Clang 16 porting work (which is a big job as it is). github PR#355. + + Signed-off-by: Sam James + +commit 40b0a5eb6e3edfa2886b60c09c7803353b0cc7f5 +Author: Sam James +Date: Sun Nov 6 04:47:35 2022 +0000 + + configure.ac: Add include for openpty + + Another Clang 16ish fix (which makes -Wimplicit-function-declaration + an error by default). github PR#355. + + See: 2efd71da49b9cfeab7987058cf5919e473ff466b + See: be197635329feb839865fdc738e34e24afd1fca8 + +commit 6b17e128879ec6cc32ca2c28b5d894b4aa72e32d +Author: Rochdi Nassah +Date: Fri Oct 28 01:26:31 2022 +0100 + + Fix broken zlib link. + +commit 99500df246ccb736ddbdd04160dcc82165d81a77 +Author: Darren Tucker +Date: Fri Nov 4 16:59:26 2022 +1100 + + Don't run openbsd-compat tests on Cygwin. + + Add "compat-tests" to the default TEST_TARGET so we can override as + necessary. Override TEST_TARGET for Cygwin as the tests don't currently + compile there. + +commit 3cae9f92a31897409666aa1e6f696f779759332b +Author: djm@openbsd.org +Date: Thu Nov 3 21:59:20 2022 +0000 + + upstream: replace recently-added valid_domain() check for hostnames + + going to known_hosts with a more relaxed check for bad characters; previous + commit broke address literals. Reported by/feedback from florian@ + + OpenBSD-Commit-ID: 10b86dc6a4b206adaa0c11b58b6d5933898d43e0 + +commit 9655217231c9056200bea7ae2dffcc9c0c3eb265 +Author: Darren Tucker +Date: Thu Nov 3 23:07:50 2022 +1100 + + Rerun tests on changes to Makefile.in in any dir. + +commit 3500f0405a3ab16b59a26f3508c4257a3fc3bce6 +Author: Darren Tucker +Date: Thu Nov 3 23:04:08 2022 +1100 + + Link libssh into compat tests. + + The cygwin compat code uses xmalloc, so add libssh.a so pick up that. + +commit ec59effcf65b8a4c85d47ff5a271123259dd0ab8 +Author: Darren Tucker +Date: Thu Nov 3 21:44:23 2022 +1100 + + Fix compat regress to work with non-GNU make. + +commit 73550a218e7dfbbd599534cbf856309bc924f6fd +Author: Darren Tucker +Date: Thu Nov 3 13:41:16 2022 +1100 + + Increase selfhosted job timeout. + + The default job timeout of 360 (6h) is not enough to complete the + regress tests for some of the slow VMs depending on the load on the host. + Increase to 600 (10h). + +commit db97d8d0b90c6ce52b94b153d6f8f5f7d3b11777 +Author: Darren Tucker +Date: Thu Nov 3 10:00:43 2022 +1100 + + Only run opensslver tests if built with OpenSSL. + +commit ba053709638dff2f6603df0c1f340352261d63ea +Author: Darren Tucker +Date: Wed Nov 2 14:16:04 2022 +1100 + + Add tests for OpenSSL 3.0.7 and LibreSSL 3.6.1. + +commit edd24101c7e17d1a8f6576e1aaf62233b47ad6f5 +Author: Darren Tucker +Date: Thu Nov 3 08:17:39 2022 +1100 + + Run compat regress tests too. + +commit fe88d67e7599b0bc73f6e4524add28d743e7f977 +Author: Darren Tucker +Date: Thu Nov 3 08:14:05 2022 +1100 + + Compat tests need libcrypto. + + This was moved to CHANNELLIBS during the libs refactor. Spotted by + rapier at psc.edu. + +commit 96b519726b7944eee3c23a54eee3d5c031ba1533 +Author: Darren Tucker +Date: Thu Nov 3 04:24:39 2022 +1100 + + Include time.h when defining timegm. + + Fixes build on some platforms eg recent AIX. + +commit da6038bd5cd55eb212eb2aec1fc8ae79bbf76156 +Author: Darren Tucker +Date: Tue Nov 1 19:10:30 2022 +1100 + + Always use compat getentropy. + + Have it call native getentropy and fall back as required. Should fix + issues of platforms where libc has getentropy but it is not implemented + in the kernel. Based on github PR#354 from simsergey. + +commit 5ebe18cab6be3247b44c807ac145164010465b82 +Author: Darren Tucker +Date: Wed Nov 2 10:51:48 2022 +1100 + + Check for sockaddr_in.sin_len. + + If found, set SOCK_HAS_LEN which is used in addr.c. Should fix keyscan + tests on platforms with this (eg old NetBSD). + +commit a1febadf426536612c2734168d409147c392e7cf +Author: dtucker@openbsd.org +Date: Sun Oct 30 18:42:07 2022 +0000 + + upstream: Use variable for diff options + + instead of unconditionally specifying "-rN". This will make life easier + in -portable where not all diff's understand -N. + + OpenBSD-Regress-ID: 8b8a407115546be1c6d72d350b1e4f1f960d3cd3 + +commit f6d3ed9a8a9280cbb68d6a499850cfe810e92bd0 +Author: Darren Tucker +Date: Mon Oct 31 05:13:02 2022 +1100 + + OpenSSL dev branch is 302 not 320. + + While there, also accept 301 which it shat it was previously. + +commit 25c8a2bbcc10c493d27faea57c42a6bf13fa51f2 +Author: djm@openbsd.org +Date: Fri Oct 28 02:47:04 2022 +0000 + + upstream: put sshkey_check_rsa_length() back in sshkey.c to unbreak + + OPENSSL=no builds + + OpenBSD-Commit-ID: 99eec58abe382ecd14b14043b195ee1babb9cf6e + +commit 1192588546c29ceec10775125f396555ea71850f +Author: djm@openbsd.org +Date: Fri Oct 28 02:29:34 2022 +0000 + + upstream: allow ssh-keyscan(1) to accept CIDR address ranges, e.g. + + ssh-keyscan 192.168.0.0/24 + + If a CIDR range is passed, then it will be expanded to all possible + addresses in the range including the all-0s and all-1s addresses. + + bz#976 feedback/ok markus@ + + OpenBSD-Commit-ID: ce6c5211f936ac0053fd4a2ddb415277931e6c4b + +commit 64af4209309461c79c39eda2d13f9d77816c6398 +Author: Damien Miller +Date: Fri Oct 28 12:54:35 2022 +1100 + + fix merge botch + +commit 27267642699342412964aa785b98afd69d952c88 +Author: djm@openbsd.org +Date: Fri Oct 28 00:44:44 2022 +0000 + + upstream: refactor sshkey_private_deserialize + + feedback/ok markus@ + + OpenBSD-Commit-ID: f5ca6932fdaf840a5e8250becb38315a29b5fc9f + +commit 2519a7077a9332f70935e5242ba91ee670ed6b87 +Author: djm@openbsd.org +Date: Fri Oct 28 00:44:17 2022 +0000 + + upstream: refactor sshkey_private_serialize_opt() + + feedback/ok markus@ + + OpenBSD-Commit-ID: 61e0fe989897901294efe7c3b6d670cefaf44cbd + +commit 11a768adf98371fe4e43f3b06014024c033385d5 +Author: djm@openbsd.org +Date: Fri Oct 28 00:43:30 2022 +0000 + + upstream: refactor certify + + feedback/ok markus@ + + OpenBSD-Commit-ID: 35d742992e223eaca3537e6fb3d3002c08eed4f6 + +commit 3fbc58bb249d967cc43ebdc554f6781bb73d4a58 +Author: djm@openbsd.org +Date: Fri Oct 28 00:43:08 2022 +0000 + + upstream: refactor sshkey_sign() and sshkey_verify() + + feedback/ok markus@ + + OpenBSD-Commit-ID: 368e662c128c99d05cc043b1308d2b6c71a4d3cc + +commit a1deb6cdbbe6afaab74ecb08fcb62db5739267be +Author: djm@openbsd.org +Date: Fri Oct 28 00:41:52 2022 +0000 + + upstream: refactor sshkey_from_blob_internal() + + feedback/ok markus@ + + OpenBSD-Commit-ID: 1f46c0cbb8060ee9666a02749594ad6658c8e283 + +commit 7d00799c935271ce89300494c5677190779f6453 +Author: djm@openbsd.org +Date: Fri Oct 28 00:41:17 2022 +0000 + + upstream: refactor sshkey_from_private() + + feedback/ok markus@ + + OpenBSD-Commit-ID: e5dbe7a3545930c50f70ee75c867a1e08b382b53 + +commit 262647c2e920492ca57f1b9320d74f4a0f6e482b +Author: djm@openbsd.org +Date: Fri Oct 28 00:39:29 2022 +0000 + + upstream: factor out key generation + + feedback/ok markus@ + + OpenBSD-Commit-ID: 5b4211bff4de8d9adb84bc72857a8c42c44e7ceb + +commit 401c74e7dc15eab60540653d2f94d9306a927bab +Author: djm@openbsd.org +Date: Fri Oct 28 00:38:58 2022 +0000 + + upstream: refactor and simplify sshkey_read() + + feedback/ok markus@ + + OpenBSD-Commit-ID: 0d93b7a56e31cd06a8bb0d2191d084ce254b0971 + +commit 591fed94e66a016acf87f4b7cd416ce812f2abe8 +Author: djm@openbsd.org +Date: Fri Oct 28 00:37:24 2022 +0000 + + upstream: factor out public key serialization + + feedback/ok markus@ + + OpenBSD-Commit-ID: a3570c4b97290c5662890aea7328d87f55939033 + +commit 1e78844ae2b2dc01ba735d5ae740904c57e13685 +Author: djm@openbsd.org +Date: Fri Oct 28 00:36:31 2022 +0000 + + upstream: factor out sshkey_equal_public() + + feedback/ok markus@ + + OpenBSD-Commit-ID: 1368ba114cb37732fe6ec3d89c7e6d27ea6fdc94 + +commit 25de1c01a8b9a2c8ab9b1da22444a03e89c982de +Author: djm@openbsd.org +Date: Fri Oct 28 00:35:40 2022 +0000 + + upstream: begin big refactor of sshkey + + Move keytype data and some of the type-specific code (allocation, + cleanup, etc) out into each key type's implementation. Subsequent + commits will move more, with the goal of having each key-*.c file + owning as much of its keytype's implementation as possible. + + lots of feedback + ok markus@ + + OpenBSD-Commit-ID: 0f2b4334f73914344e9e5b3d33522d41762a57ec + +commit 445363433ba20b8a3e655b113858c836da46a1cb +Author: djm@openbsd.org +Date: Mon Oct 24 22:43:36 2022 +0000 + + upstream: Be more paranoid with host/domain names coming from the + + never write a name with bad characters to a known_hosts file. + + reported by David Leadbeater, ok deraadt@ + + OpenBSD-Commit-ID: ba9b25fa8b5490b49398471e0c9657b0cbc7a5ad + +commit 7190154de2c9fe135f0cc1ad349cb2fa45152b89 +Author: djm@openbsd.org +Date: Mon Oct 24 21:52:50 2022 +0000 + + upstream: regress test for unmatched glob characters; fails before + + previous commit but passes now. bz3488; prodded by dtucker@ + + OpenBSD-Regress-ID: 0cc5cc9ea4a6fd170dc61b9212f15badaafb3bbd + +commit a4821a592456c3add3cd325db433110cdaaa3e5c +Author: djm@openbsd.org +Date: Mon Oct 24 21:51:55 2022 +0000 + + upstream: when scp(1) is using the SFTP protocol for transport (the + + default), better match scp/rcp's handling of globs that don't match the + globbed characters but do match literally (e.g. trying to transfer + "foo.[1]"). + + Previously scp(1) in SFTP mode would not match these pathnames but + legacy scp/rcp mode would. + + Reported by Michael Yagliyan in bz3488; ok dtucker@ + + OpenBSD-Commit-ID: d8a3773f53015ba811fddba7473769a2fd343e11 + +commit 18376847b8043ba967eabbe23692ef74c9a3fddc +Author: jsg@openbsd.org +Date: Thu Oct 13 09:09:28 2022 +0000 + + upstream: use correct type with sizeof ok djm@ + + OpenBSD-Commit-ID: d6c882c2e8a42ff831a5b3cbc2c961ecb2dd6143 + +commit 4a4883664d6b4e9e4e459a8cdc16bd8d4b735de9 +Author: jmc@openbsd.org +Date: Fri Oct 7 06:00:58 2022 +0000 + + upstream: ssh-agent.1: - use Nm not Xr for self-ref - while here, + + wrap a long line + + ssh-agent.c: + - add -O to usage() + + OpenBSD-Commit-ID: 855dac4695cef22e96d69c53436496bc408ca389 + +commit 9fd2441113fce2a83fc7470968c3b27809cc7f10 +Author: djm@openbsd.org +Date: Fri Oct 7 04:06:26 2022 +0000 + + upstream: document "-O no-restrict-websafe"; spotted by Ross L + + Richardson + + OpenBSD-Commit-ID: fe9eaa50237693a14ebe5b5614bf32a02145fe8b + +commit 614252b05d70f798a0929b1cd3d213030ad4d007 +Author: Darren Tucker +Date: Tue Oct 18 06:29:16 2022 +1100 + + OpenSSL dev branch now identifies as 3.2.0. + +commit 195e5a65fd793a738ea8451ebfdd1919db5aff3e +Author: Damien Miller +Date: Mon Oct 17 09:41:47 2022 +1100 + + revert c64b62338b4 and guard POLL* defines instead + + c64b62338b4 broke OSX builds, which do have poll.h but lack ppoll(2) + Spotted by dtucker + +commit bc2e480d99613bd59720edae244d1764636544c4 +Author: Damien Miller +Date: Fri Oct 14 14:52:22 2022 +1100 + + undef _get{short,long} before redefining + +commit 5eb796a369c64f18d55a6ae9b1fa9b35eea237fb +Author: Harmen Stoppels +Date: Thu Oct 13 16:08:46 2022 +0200 + + Fix snprintf configure test for clang 15 + + Clang 15 -Wimplicit-int defaults to an error in C99 mode and above. + A handful of tests have "main(..." and not "int main(..." which caused + the tests to produce incorrect results. + +commit c64b62338b46ffa08839f05f21ad69fa6234dc17 +Author: Damien Miller +Date: Mon Oct 10 12:32:43 2022 +1100 + + skip bsd-poll.h if poll.h found; ok dtucker + +commit 5ee2b8ccfcf4b606f450eb0ff2305e311f68b0be +Author: djm@openbsd.org +Date: Thu Oct 6 22:42:37 2022 +0000 + + upstream: honour user's umask if it is more restrictive then the ssh + + default (022); based on patch from Alex Henrie, ok dtucker@ deraadt@ + + OpenBSD-Commit-ID: fe1b9e15fc9a4f49fc338e848ce14d8727abe82d + +commit a75cffc2700cebd3e2dd9093f7f7388d2be95cb7 +Author: Darren Tucker +Date: Fri Oct 7 03:54:56 2022 +1100 + + Add LibreSSL 3.6.0 to test suite. + + While there, bump OpenSSL to latest 1.1.1q release. + +commit fcc0f0c0e96a30076683fea9a7c9eedc72931742 +Author: Darren Tucker +Date: Thu Oct 6 21:18:16 2022 +1100 + + Add 9.1 branch to CI status page. + +commit ef211eee63821d894a8bf81f22bfba9f6899d0fe +Author: Darren Tucker +Date: Tue Oct 4 23:20:23 2022 +1100 + + Test commits to all branches of portable. + + Only test OpenBSD upstream on commits to master since that's what it + tracks. + +commit fe646de03cafb6593ff4e4954bca9ec4b4b753a8 +Author: Damien Miller +Date: Wed Oct 5 03:47:26 2022 +1100 + + whitespace at EOL + +commit a6e1852d10c63a830196e82168dadd957aaf28ec +Author: Damien Miller +Date: Wed Oct 5 03:40:01 2022 +1100 + + mention libfido2 autodetection + +commit 7360c2c206f33d309edbaf64036c96fadf74d640 +Author: Damien Miller +Date: Wed Oct 5 03:37:36 2022 +1100 + + remove mention of --with-security-key-builtin + + it is enabled by default when libfido2 is installed + commit 0ffb46f2ee2ffcc4daf45ee679e484da8fcf338c Author: Damien Miller Date: Tue Oct 4 01:51:42 2022 +1100 @@ -9388,1927 +11194,3 @@ Date: Tue Feb 2 22:35:14 2021 +0000 upstream: memleak on error path; ok markus@ OpenBSD-Commit-ID: 2091a36d6ca3980c81891a6c4bdc544e63cb13a8 - -commit 3dd0c64e08f1bba21d71996d635c7256c8c139d1 -Author: djm@openbsd.org -Date: Sun Jan 31 22:55:29 2021 +0000 - - upstream: more strictly enforce KEX state-machine by banning packet - - types once they are received. Fixes memleak caused by duplicate - SSH2_MSG_KEX_DH_GEX_REQUEST (spotted by portable OpenSSH kex_fuzz via - oss-fuzz #30078). - - ok markus@ - - OpenBSD-Commit-ID: 87331c715c095b587d5c88724694cdeb701c9def - -commit 7a92a324a2e351fabd0ba8ef9b434d3b12d54ee3 -Author: dtucker@openbsd.org -Date: Sun Jan 31 10:50:10 2021 +0000 - - upstream: Set linesize returned by getline to zero when freeing and - - NULLing the returned string. OpenBSD's getline handles this just fine, but - some implementations used by -portable do not. ok djm@ - - OpenBSD-Commit-ID: 4d7bd5169d3397654247db9655cc69a9908d165c - -commit a5dfc5bae8c16e2a7caf564758d812c7672480b5 -Author: Damien Miller -Date: Sat Jan 30 16:32:29 2021 +1100 - - allow a fuzz case to contain more than one request - - loop until input buffer empty, no message consumed or 256 messages - processed - -commit 0ef24ad60204022f7e33b6e9d171172c50514132 -Author: Damien Miller -Date: Sat Jan 30 16:28:23 2021 +1100 - - expect fuzz cases to have length prefix - - might make life a little easier for the fuzzer, e.g. it can now - produce valid (multi-request) messages by smashing two cases together. - -commit de613f2713d2dfcd3b03c00e5558a40997f52712 -Author: Damien Miller -Date: Sat Jan 30 12:03:30 2021 +1100 - - ssh-agent fuzzer - -commit 7e96c877bcb2fb645355a687b8cb7347987c1c58 -Author: Damien Miller -Date: Sat Jan 30 12:02:46 2021 +1100 - - move keys out of kex_fuzz.cc into separate header - - add certificates and missing key types - -commit 76f46d75664fdaa1112739ca523ff85ee4eb52b4 -Author: Damien Miller -Date: Sat Jan 30 12:02:10 2021 +1100 - - some fixed test data (mostly keys) for fuzzing - -commit 7c2e3d6de1f2edb0c8b4725b4c2b56360e032b19 -Author: djm@openbsd.org -Date: Sat Jan 30 00:56:38 2021 +0000 - - upstream: add a SK_DUMMY_INTEGRATE define that allows the dummy - - security key middleware to be directly linked; useful for writing fuzzers, - etc. - - OpenBSD-Regress-ID: 0ebd00159b58ebd85e61d8270fc02f1e45df1544 - -commit 1a4b92758690faa12f49079dd3b72567f909466d -Author: djm@openbsd.org -Date: Fri Jan 29 06:29:46 2021 +0000 - - upstream: fix the values of enum sock_type - - OpenBSD-Commit-ID: 18d048f4dbfbb159ff500cfc2700b8fb1407facd - -commit 8afaa7d7918419d3da6c0477b83db2159879cb33 -Author: djm@openbsd.org -Date: Fri Jan 29 06:28:10 2021 +0000 - - upstream: give typedef'd struct a struct name; makes the fuzzer I'm - - writing a bit easier - - OpenBSD-Commit-ID: 1052ab521505a4d8384d67acb3974ef81b8896cb - -commit 1e660115f0c7c4a750cd31e468ff889f33dd8088 -Author: Damien Miller -Date: Fri Jan 29 11:09:14 2021 +1100 - - fuzz diffie-hellman-group-exchange-sha1 kex too - -commit be5f0048ea2aaeddd27be7dcca23aaad345fa16c -Author: Damien Miller -Date: Fri Jan 29 11:03:35 2021 +1100 - - support for running kex fuzzer with null cipher - -commit 3d59e88c0e42182c3749b446ccd9027933c84be4 -Author: Darren Tucker -Date: Thu Jan 28 20:55:16 2021 +1100 - - make with -j2 to use available CPUs. - -commit 66dd9ddb5d2ea8c407908c8e8468c9d6e71db05b -Author: Darren Tucker -Date: Thu Jan 28 14:31:01 2021 +1100 - - Add test against openssl head and libressl head. - -commit 237dbb34e24b6b7ea888d54bda4d17da0a0fd0fa -Author: Darren Tucker -Date: Thu Jan 28 14:30:50 2021 +1100 - - Remove whitespace. - -commit d983e1732b8135d7ee8d92290d6dce35f736ab88 -Author: djm@openbsd.org -Date: Wed Jan 27 23:49:46 2021 +0000 - - upstream: fix leak: was double allocating kex->session_id buffer - - OpenBSD-Commit-ID: 3765f4cc3ae1df874dba9102a3588ba7b48b8183 - -commit 1134a48cdcef8e7363b9f6c73ebdd24405066738 -Author: Damien Miller -Date: Thu Jan 28 08:57:31 2021 +1100 - - correct kex name in disabled code - -commit 67f47f1965abafc1830a287761125c2f4790857e -Author: djm@openbsd.org -Date: Wed Jan 27 10:15:08 2021 +0000 - - upstream: this needs kex.h now - - OpenBSD-Commit-ID: c5a42166c5aa002197217421a971e48be7cb5d41 - -commit 39be3dc209f28f9c1ebfeba42adde8963b01e1cd -Author: djm@openbsd.org -Date: Wed Jan 27 10:05:28 2021 +0000 - - upstream: make ssh->kex->session_id a sshbuf instead of u_char*/size_t - - and use that instead of global variables containing copies of it. feedback/ok - markus@ - - OpenBSD-Commit-ID: a4b1b1ca4afd2e37cb9f64f737b30a6a7f96af68 - -commit 4ca6a1fac328477c642329676d6469dba59019a3 -Author: djm@openbsd.org -Date: Wed Jan 27 09:26:53 2021 +0000 - - upstream: remove global variable used to stash compat flags and use the - - purpose-built ssh->compat variable instead; feedback/ok markus@ - - OpenBSD-Commit-ID: 7c4f200e112dae6bcf99f5bae1a5629288378a06 - -commit bba229b6f3328171f5e3ae85de443002523c0452 -Author: Darren Tucker -Date: Wed Jan 27 12:34:07 2021 +1100 - - Install moduli file before tests. - - Reduces warnings during test runs. - -commit 1b83185593a90a73860a503d753a95ca6d726c00 -Author: Darren Tucker -Date: Wed Jan 27 11:58:26 2021 +1100 - - Run one test with -Werror to catch warnings. - -commit d1532d90074b212054d5fd965f833231b09982f5 -Author: dtucker@openbsd.org -Date: Wed Jan 27 00:37:26 2021 +0000 - - upstream: Logical not bitwise or. ok djm@ - - OpenBSD-Commit-ID: d4dc855cf04951b93c45caa383e1ac9af0a3b0e5 - -commit 507b448a2465a53ab03a88acbc71cc51b48ca6ac -Author: naddy@openbsd.org -Date: Tue Jan 26 15:40:17 2021 +0000 - - upstream: move HostbasedAcceptedAlgorithms to the right place in - - alphabetical order - - OpenBSD-Commit-ID: d766820d33dd874d944c14b0638239adb522c7ec - -commit e26c980778b228bdd42b8353cc70101cf49b731b -Author: dtucker@openbsd.org -Date: Tue Jan 26 11:25:01 2021 +0000 - - upstream: Remove unused variables leftover from refactoring. ok - - djm@ - - OpenBSD-Commit-ID: 8b3ad58bff828fcf874e54b2fc27a4cf1d9505e8 - -commit e9f78d6b06fc323bba1890b2dc3b8423138fb35c -Author: dtucker@openbsd.org -Date: Tue Jan 26 05:32:21 2021 +0000 - - upstream: Rename HostbasedKeyTypes (ssh) and - - HostbasedAcceptedKeyTypes (sshd) to HostbasedAcceptedAlgorithms, which more - accurately reflects its effect. This matches a previous change to - PubkeyAcceptedAlgorithms. The previous names are retained as aliases. ok - djm@ - - OpenBSD-Commit-ID: 49451c382adc6e69d3fa0e0663eeef2daa4b199e - -commit 48d0d7a4dd31154c4208ec39029d60646192f978 -Author: Darren Tucker -Date: Tue Jan 26 14:48:07 2021 +1100 - - Disable sntrup761 if compiler doesn't support VLAs. - - The sntrup761 code sourced from supercop uses variable length - arrays. Although widely supported, they are not part of the ANSI - C89 spec so if the compiler does not support VLAs, disable the - sntrup761x25519-sha512@openssh.com KEX method by replacing the kex - functions with no-op ones similar to what we do in kexecdh.c. - - This should allow OpenSSH to build with a plain C89 compiler again. - Spotted by tim@, ok djm@. - -commit 37c70ea8d4f3664a88141bcdf0bf7a16bd5fd1ac -Author: djm@openbsd.org -Date: Tue Jan 26 00:54:49 2021 +0000 - - upstream: refactor key constraint parsing in ssh-agent - - Key constraints parsing code previously existed in both the "add regular - key" and "add smartcard key" path. This unifies them but also introduces - more consistency checking: duplicated constraints and constraints that - are nonsensical for a particular situation (e.g. FIDO provider for a - smartcard key) are now banned. - - ok markus@ - - OpenBSD-Commit-ID: 511cb1b1c021ee1d51a4c2d649b937445de7983c - -commit e0e8bee8024fa9e31974244d14f03d799e5c0775 -Author: djm@openbsd.org -Date: Tue Jan 26 00:53:31 2021 +0000 - - upstream: more ssh-agent refactoring - - Allow confirm_key() to accept an additional reason suffix - - Factor publickey userauth parsing out into its own function and allow - it to optionally return things it parsed out of the message to its - caller. - - feedback/ok markus@ - - OpenBSD-Commit-ID: 29006515617d1aa2d8b85cd2bf667e849146477e - -commit dfe18a295542c169ffde8533b3d7fe42088e2de7 -Author: djm@openbsd.org -Date: Tue Jan 26 00:51:30 2021 +0000 - - upstream: make struct hostkeys public; I have no idea why I made it - - opaque originally. - - ok markus@ - - OpenBSD-Commit-ID: e50780b34d4bbe628d69b2405b024dd749d982f3 - -commit 3b44f2513cae89c920e8fe927b9bc910a1c8c65a -Author: djm@openbsd.org -Date: Tue Jan 26 00:49:30 2021 +0000 - - upstream: move check_host_cert() from sshconnect,c to sshkey.c and - - refactor it to make it more generally usable and testable. - - ok markus@ - - OpenBSD-Commit-ID: 536f489f5ff38808c1fa711ba58d4579b636f9e4 - -commit 1fe16fd61bb53944ec510882acc0491abd66ff76 -Author: djm@openbsd.org -Date: Tue Jan 26 00:47:47 2021 +0000 - - upstream: use recallocarray to allocate the agent sockets table; - - also clear socket entries that are being marked as unused. - - spinkle in some debug2() spam to make it easier to watch an agent - do its thing. - - ok markus - - OpenBSD-Commit-ID: 74582c8e82e96afea46f6c7b6813a429cbc75922 - -commit cb7b22ea20a01332c81c0ddcb3555ad50de9cce2 -Author: djm@openbsd.org -Date: Tue Jan 26 00:46:17 2021 +0000 - - upstream: factor out common code in the agent client - - Add a ssh_request_reply_decode() function that sends a message to - the agent, reads and parses a success/failure reply. - Use it for all requests that only expect success/failure - - ok markus@ - - OpenBSD-Commit-ID: e0c1f4d5e6cfa525d62581e2b8de93be0cb85adb - -commit d1e578afe7cd48140ad6e92a453f9b035363fd7f -Author: djm@openbsd.org -Date: Mon Jan 25 06:00:17 2021 +0000 - - upstream: make ssh hostbased authentication send the signature - - algorithm in its SSH2_MSG_USERAUTH_REQUEST packets instead of the key type. - This make HostbasedAcceptedAlgorithms do what it is supposed to - filter on - signature algorithm and not key type. - - spotted with dtucker@ ok markus@ - - OpenBSD-Commit-ID: 25bffe19f0326972f5728170f7da81d5f45c78c6 - -commit 95eca1e195a3b41baa1a725c2c5af8a09d885e4b -Author: Darren Tucker -Date: Sat Jan 23 18:26:05 2021 +1100 - - ifdef new instance of sin6_scope_id - - Put inside HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID similar to - existing instance. Should fix error on UnixWare 7. - -commit 6ffdcdda128045226dda7fbb3956407978028a1e -Author: dtucker@openbsd.org -Date: Mon Jan 18 11:43:34 2021 +0000 - - upstream: Fix long->int for convtime tests here too. Spotted by - - tobhe@. - - OpenBSD-Regress-ID: a87094f5863312d00938afba771d25f788c849d0 - -commit b55b7565f15327d82ad7acbddafa90b658c5f0af -Author: dtucker@openbsd.org -Date: Fri Jan 22 02:46:40 2021 +0000 - - upstream: PubkeyAcceptedKeyTypes->PubkeyAcceptedAlgorithms - - here too. - - OpenBSD-Commit-ID: 3b64a640f8ce8c21d9314da9df7ce2420eefde3a - -commit ee9c0da8035b3168e8e57c1dedc2d1b0daf00eec -Author: dtucker@openbsd.org -Date: Fri Jan 22 02:44:58 2021 +0000 - - upstream: Rename PubkeyAcceptedKeyTypes keyword to - - PubkeyAcceptedAlgorithms. While the two were originally equivalent, this - actually specifies the signature algorithms that are accepted. Some key - types (eg RSA) can be used by multiple algorithms (eg ssh-rsa, rsa-sha2-512) - so the old name is becoming increasingly misleading. The old name is - retained as an alias. Prompted by bz#3253, help & ok djm@, man page help jmc@ - - OpenBSD-Commit-ID: 0346b2f73f54c43d4e001089759d149bfe402ca5 - -commit a8e798feabe36d02de292bcfd274712cae1d8d17 -Author: dtucker@openbsd.org -Date: Fri Jan 15 02:58:11 2021 +0000 - - upstream: Change types in convtime() unit test to int to match change - - its new type. Add tests for boundary conditions and fix convtime to work up - to INT_MAX. ok djm@ - - OpenBSD-Regress-ID: ba2b81e9a3257fff204b020affe85b604a44f97e - -commit 9bde1a420626da5007bf7ab499fa2159b9eddf72 -Author: dtucker@openbsd.org -Date: Fri Jan 15 04:31:25 2021 +0000 - - upstream: Make output buffer larger to prevent potential truncation - - warnings from compilers not smart enough to know the strftime calls won't - ever fully fill "to" and "from". ok djm@ - - OpenBSD-Commit-ID: 83733f1b01b82da88b9dd1769475952aff10bdd7 - -commit 02da325f10b214219eae2bb1bc2d3bf0c2f13f9f -Author: dtucker@openbsd.org -Date: Fri Jan 15 02:58:11 2021 +0000 - - upstream: Change types in convtime() unit test to int to match - - change its new type. Add tests for boundary conditions and fix convtime to - work up to INT_MAX. ok djm@ - - OpenBSD-Commit-ID: 01dc0475f1484ac2f47facdfcf9221f9472145de - -commit 5339ab369c225b40bc64d5ec3374f5c91b3ad609 -Author: dtucker@openbsd.org -Date: Fri Jan 15 02:32:41 2021 +0000 - - upstream: In waitfd(), when poll returns early we are subtracting - - the elapsed time from the timeout each loop, so we only want to measure the - elapsed time the poll() in that loop, not since the start of the function. - Spotted by chris.xj.zhu at gmail.com, ok djm@ - - OpenBSD-Commit-ID: 199df060978ee9aa89b8041a3dfaf1bf7ae8dd7a - -commit a164862dfa863b54b7897f66e1dd75437f086c11 -Author: rob@openbsd.org -Date: Thu Jan 14 19:45:06 2021 +0000 - - upstream: Minor grammatical correction. - - OK jmc@ - - OpenBSD-Commit-ID: de0fad0581e212b2750751e479b79c18ff8cac02 - -commit 8635e7df7e3a3fbb4a4f6cd5a7202883b2506087 -Author: Darren Tucker -Date: Wed Jan 13 18:00:57 2021 +1100 - - Merge Mac OS X targets into a single config. - -commit ac112ade990585c511048ed4edaf2d9fc92b61f0 -Author: Darren Tucker -Date: Tue Jan 12 19:22:47 2021 +1100 - - Add Mac OS X test targets. - -commit 1050109b4b2884bf50fd1b3aa084c7fd0a42ae90 -Author: anatasluo -Date: Mon Jan 11 13:51:39 2021 +0000 - - Remove duplicated declaration in fatal.c . - -commit 7d0f8a3369579dfe398536eb4e3da7bc15da9599 -Author: dtucker@openbsd.org -Date: Mon Jan 11 04:48:22 2021 +0000 - - upstream: Correct spelling of persourcenetblocksize in config-dump - - mode. - - OpenBSD-Commit-ID: ecdc49e2b6bde6b6b0e52163d621831f6ac7b13d - -commit ba328bd7a6774f30daaf90b83f1933cc4afc866c -Author: dtucker@openbsd.org -Date: Sat Jan 9 12:31:46 2021 +0000 - - upstream: Adjust kexfuzz to addr.c/addrmatch.c split. - - OpenBSD-Regress-ID: 1d8d23bb548078020be2fb52c4c643efb190f0eb - -commit b08ef25552443e94c0857d5e3806dd019ccc55d7 -Author: dtucker@openbsd.org -Date: Sat Jan 9 12:24:30 2021 +0000 - - upstream: Update unittests for addr.c/addrmatch.c split. - - OpenBSD-Regress-ID: de2b415fb7af084a91c6ef147a90482d8f771eef - -commit 6d30673fedec2d251f4962c526fd0451f70c4d97 -Author: dtucker@openbsd.org -Date: Mon Jan 11 02:12:57 2021 +0000 - - upstream: Change convtime() from returning long to returning int. - - On platforms where sizeof(int) != sizeof(long), convtime could accept values - >MAX_INT which subsequently truncate when stored in an int during config - parsing. bz#3250, ok djm@ - - OpenBSD-Commit-ID: 8fc932683d6b4660d52f50911d62bd6639c5db31 - -commit 7a57adb8b07b2ad0aead4b2e09ee18edc04d0481 -Author: jmc@openbsd.org -Date: Sat Jan 9 12:51:12 2021 +0000 - - upstream: add a comma to previous; - - OpenBSD-Commit-ID: 9139433701c0aa86a0d3a6c7afe10d1c9c2e0869 - -commit 3a923129534b007c2e24176a8655dec74eca9c46 -Author: dtucker@openbsd.org -Date: Sat Jan 9 12:10:02 2021 +0000 - - upstream: Add PerSourceMaxStartups and PerSourceNetBlockSize - - options which provide more fine grained MaxStartups limits. Man page help - jmc@, feedback & ok djm@ - - OpenBSD-Commit-ID: e2f68664e3d02c0895b35aa751c48a2af622047b - -commit d9a2bc71693ea27461a78110005d5a2d8b0c6a50 -Author: dtucker@openbsd.org -Date: Sat Jan 9 11:58:50 2021 +0000 - - upstream: Move address handling functions out into their own file - - in order to reuse them for per-source maxstartups limiting. Supplement with - some additional functions from djm's flowtools that we'll also need. ok djm@ - (as part of a larger diff). - - OpenBSD-Commit-ID: e3e7d9ccc6c9b82e25cfef0ec83598e8e2327cbf - -commit b744914fcb76d70761f1b667de95841b3fc80a56 -Author: Darren Tucker -Date: Sat Jan 9 00:36:05 2021 +1100 - - Add test against Graphene hardened malloc. - -commit 6cb52d5bf771f6769b630fce35a8e9b8e433044f -Author: djm@openbsd.org -Date: Fri Jan 8 04:49:13 2021 +0000 - - upstream: make CheckHostIP default to 'no'. It doesn't provide any - - perceptible value and makes it much harder for hosts to change host keys, - particularly ones that use IP-based load-balancing. - - ok dtucker@ - - OpenBSD-Commit-ID: 0db98413e82074f78c7d46784b1286d08aee78f0 - -commit 309b642e1442961b5e57701f095bcd4acd2bfb5f -Author: Darren Tucker -Date: Fri Jan 8 15:50:41 2021 +1100 - - Run tests with sudo for better coverage. - -commit c336644351fa3c715a08b7a292e309e72792e71e -Author: Darren Tucker -Date: Fri Jan 8 14:26:32 2021 +1100 - - Add Ubuntu 16.04 and 20.04 test targets. - -commit 4c7af01f9dcc1606dec033e7665a042cb0d8ec52 -Author: djm@openbsd.org -Date: Fri Jan 8 02:57:24 2021 +0000 - - upstream: If a signature operation on a FIDO key fails with a - - "incorrect PIN" reason and no PIN was initially requested from the user, then - request a PIN and retry the operation. - - This smoothes over a few corner cases including FIDO devices that - require PINs for all hosted credentials, biometric FIDO devices that - fall back to requiring PIN when reading the biometric failed, devices - that don't implement reading credProtect status for downloaded keys - and probably a few more cases that I haven't though of yet. - - ok dtucker@ - - OpenBSD-Commit-ID: 176db8518933d6a5bbf81a2e3cf62447158dc878 - -commit 64ddd0fe68c4a7acf99b78624f8af45e919cd317 -Author: djm@openbsd.org -Date: Fri Jan 8 02:44:14 2021 +0000 - - upstream: don't try to use timespeccmp(3) directly as a qsort(3) - - comparison function - it returns 0/1 and not the -1/0/1 that qsort expectes. - - fixes sftp "ls -ltr" under some circumstances. - - Based on patch by Masahiro Matsuya via bz3248. - - OpenBSD-Commit-ID: 65b5e9f18bb0d10573868c3516de6e5170adb163 - -commit 599df78f3008cf78af21f8977be3e1dd085f8e2e -Author: dtucker@openbsd.org -Date: Fri Jan 8 02:33:13 2021 +0000 - - upstream: Update the sntrup761 creation script and generated code: - - - remove unneeded header files and typedefs and rely on crypto_api.h - add - defines to map types used to the crypto_api ones instead of typedefs. This - prevents typedef name collisions in -portable. - remove CRYPTO_NAMESPACE - entirely instead of making it a no-op - delete unused functions and make the - remaining ones that aren't exported static. - - ok djm@ - - OpenBSD-Commit-ID: 7b9d0cf3acd5a3c1091da8afe00c904d38cf5783 - -commit 16448ff529affda7e2a15ee7c3200793abde0759 -Author: djm@openbsd.org -Date: Fri Jan 8 02:19:24 2021 +0000 - - upstream: mention that DisableForwarding is valid in a sshd_config - - Match block reported by Fredrik Eriksson in bz3239 - - OpenBSD-Commit-ID: 3a71c3d84b597f5e43e4b40d5232797daf0993f6 - -commit 91bac5e95b1b0debf9b2b4f05c20dcfa96b368b9 -Author: dtucker@openbsd.org -Date: Mon Jan 4 21:58:58 2021 +0000 - - upstream: estructure sntrup761.sh to process all files in a single - - list, which will make it easier to reorder. Re-inline int32_MINMAX. ok - tobhe@ - - OpenBSD-Commit-ID: d145c6c19b08bb93c9e14bfaa7af589d90f144c0 - -commit 4d96a3ebab2224f17e639a15078e03be1ad3736d -Author: tobhe@openbsd.org -Date: Sun Jan 3 18:05:21 2021 +0000 - - upstream: Prevent redefinition of `crypto_int32' error with gcc3. - - Fixes compilation on luna88k. - - Feedback millert@ - Found by and ok aoyama@ - - OpenBSD-Commit-ID: f305ddfe575a26cc53431af3fde3f4aeebed9ba6 - -commit a23954eeb930ccc8a66a2710153730769dba31b6 -Author: Darren Tucker -Date: Fri Jan 1 22:00:49 2021 +1100 - - Undef int32 after sort routines. - - This prevents typedef'ing crypto_int32 twice, in sntrup761.c and - crypto_api.h, which some compilers (at least some GCCs) don't accept. - -commit 148b8a661c3f93e4b6d049ee902de3d521261fbc -Author: Damien Miller -Date: Thu Dec 31 12:47:22 2020 +1100 - - fix: missing pieces of previous commit - -commit 3d999be7b987c848feda718cfcfcdc005ddf670d -Author: tobhe@openbsd.org -Date: Wed Dec 30 14:13:28 2020 +0000 - - upstream: Use int64_t for intermediate values in int32_MINMAX to - - prevent signed 32-bit integer overflow. - - Found by and ok djm@ - ok markus@ - - OpenBSD-Commit-ID: 4f0704768e34cf45fdd792bac4011c6971881bb3 - -commit 5c1953bf98732da5a76c706714ac066dbfa015ac -Author: Damien Miller -Date: Tue Dec 29 12:40:54 2020 +1100 - - adapt KEX fuzzer to PQ kex change - -commit 659864fe81dbc57eeed3769c462679d83e026640 -Author: djm@openbsd.org -Date: Tue Dec 29 01:02:15 2020 +0000 - - upstream: Adapt to replacement of - - sntrup4591761x25519-sha512@tinyssh.org with - sntrup761x25519-sha512@openssh.com. - - Also test sntrup761x25519-sha512@openssh.com in unittests/kex - - OpenBSD-Regress-ID: cfa3506b2b077a9cac1877fb521efd2641b6030c - -commit 2c71cec020219d69df84055c59eba5799a1233ec -Author: djm@openbsd.org -Date: Tue Dec 29 00:59:15 2020 +0000 - - upstream: Update/replace the experimental post-quantim hybrid key - - exchange method based on Streamlined NTRU Prime (coupled with X25519). - - The previous sntrup4591761x25519-sha512@tinyssh.org method is - replaced with sntrup761x25519-sha512@openssh.com. Per the authors, - sntrup4591761 was replaced almost two years ago by sntrup761. - - The sntrup761 implementaion, like sntrup4591761 before it, is public - domain code extracted from the SUPERCOP cryptography benchmark - suite (https://bench.cr.yp.to/supercop.html). - - Thanks for Daniel J Bernstein for guidance on algorithm selection. - Patch from Tobias Heider; feedback & ok markus@ and myself - - (note this both the updated method and the one that it replaced are - disabled by default) - - OpenBSD-Commit-ID: 2bf582b772d81ee24e911bb6f4b2aecfd39338ae - -commit 09d070ccc3574ae0d7947d212ed53c7268ef7e1f -Author: jmc@openbsd.org -Date: Tue Dec 22 07:40:26 2020 +0000 - - upstream: tweak the description of KnownHostsCommand in ssh_conf.5, - - and add entries for it to the -O list in scp.1 and sftp.1; - - ok djm - - OpenBSD-Commit-ID: aba31ebea03f38f8d218857f7ce16a500c3e4aff - -commit 931c93389a80e32272712459b1102d303844453d -Author: Damien Miller -Date: Tue Dec 22 19:43:55 2020 +1100 - - whitespace at EOL - -commit 397b1c4d393f97427283a4717e9015a2bd31b8a5 -Author: Damien Miller -Date: Tue Dec 22 19:42:37 2020 +1100 - - whitespace at EOL - -commit 33fa3ac547e5349ca34681cce6727b2f933dff0a -Author: Darren Tucker -Date: Tue Dec 22 19:21:26 2020 +1100 - - Improve AIX text. - -commit 0f2e21c9dca89598b694932b5b05848380a23ec0 -Author: Darren Tucker -Date: Tue Dec 22 18:56:54 2020 +1100 - - Include stdio.h for FILE in misc.h. - - Fixes build on at least OpenBSD. - -commit 3e9811e57b57ee66b0f70d99d7258da3153b0e8a -Author: Damien Miller -Date: Tue Dec 22 18:31:50 2020 +1100 - - ensure $LOGNAME is set in tests - -commit 3eb647cbb34d87a063aa7714256c6e56103fffda -Author: djm@openbsd.org -Date: Tue Dec 22 06:47:24 2020 +0000 - - upstream: more detail for failing tests - - OpenBSD-Regress-ID: c68c0e5a521cad7e7f68e54c54ebf86d6c10ee1d - -commit 2873f19570d4d8758be24dbf78332be9a779009b -Author: djm@openbsd.org -Date: Tue Dec 22 06:03:36 2020 +0000 - - upstream: regress test for KnownHostsCommand - - OpenBSD-Regress-ID: ffc77464320b6dabdcfa0a72e0df02659233a38a - -commit 0121aa87bab9ad2365de2d07f2832b56d5ff9871 -Author: tb@openbsd.org -Date: Tue Dec 22 03:05:31 2020 +0000 - - upstream: Remove lines accidentally left behind in the ProxyJump - - parsing fix r1.345. - - ok djm - - OpenBSD-Commit-ID: fe767c108c8117bea33767b080ff62eef2c55f5c - -commit da4bf0db942b5f0278f33238b86235e5813d7a5a -Author: djm@openbsd.org -Date: Tue Dec 22 00:15:22 2020 +0000 - - upstream: add a ssh_config KnownHostsCommand that allows the client - - to obtain known_hosts data from a command in addition to the usual files. - - The command accepts bunch of %-expansions, including details of the - connection and the offered server host key. Note that the command may - be invoked up to three times per connection (see the manpage for - details). - - ok markus@ - - OpenBSD-Commit-ID: 2433cff4fb323918ae968da6ff38feb99b4d33d0 - -commit a34e14a5a0071de2036826a00197ce38c8b4ba8b -Author: djm@openbsd.org -Date: Tue Dec 22 00:12:22 2020 +0000 - - upstream: move subprocess() from auth.c to misc.c - - make privilege dropping optional but allow it via callbacks (to avoid - need to link uidswap.c everywhere) - - add some other flags (keep environment, disable strict path safety check) - that make this more useful for client-side use. - - feedback & ok markus@ - - OpenBSD-Commit-ID: a80ea9fdcc156f1a18e9c166122c759fae1637bf - -commit 649205fe388b56acb3481a1b2461f6b5b7c6efa6 -Author: dtucker@openbsd.org -Date: Mon Dec 21 22:48:41 2020 +0000 - - upstream: Remove explicit rijndael-cbc@lysator.liu.se test since the - - cipher was removed. - - OpenBSD-Regress-ID: aa93cddb4ecd9bc21446a79008a1a53050e64f17 - -commit 03e93c753d7c223063ad8acaf9a30aa511e5f931 -Author: dtucker@openbsd.org -Date: Mon Dec 21 11:09:32 2020 +0000 - - upstream: Remove the pre-standardization cipher - - rijndael-cbc@lysator.liu.se. It is an alias for aes256-cbc which was - standardized in RFC4253 (2006), has been deprecated and disabled by default - since OpenSSH 7.2 (2016) and was only briefly documented in ssh.1 in 2001. - - This will reduce the amount of work the cipher/kex regression tests need - to do by a little bit. ok markus@ djm@ - - OpenBSD-Commit-ID: fb460acc18290a998fd70910b19c29b4e4f199ad - -commit a11ca015879eab941add8c6bdaaec7d41107c6f5 -Author: djm@openbsd.org -Date: Mon Dec 21 09:19:53 2020 +0000 - - upstream: properly fix ProxyJump parsing; Thanks to tb@ for - - pointing out my error (parse_ssh_uri() can return -1/0/1, that I missed). - Reported by Raf Czlonka via bugs@ - - ok tb@ - - OpenBSD-Commit-ID: a2991a3794bcaf1ca2b025212cce11cdb5f6b7d6 - -commit d97fb879724f1670bf55d9adfea7278a93c33ae2 -Author: djm@openbsd.org -Date: Mon Dec 21 01:31:06 2020 +0000 - - upstream: adapt to API change in hostkeys_foreach()/load_hostkeys() - - OpenBSD-Regress-ID: dcb468514f32da49a446372453497dc6eeafdbf3 - -commit bf7eb3c266b7fd4ddda108fcf72b860af2af6406 -Author: djm@openbsd.org -Date: Fri Oct 16 14:02:24 2020 +0000 - - upstream: few more things needs match.c and addrmatch.c now that - - log.c calls match_pattern_list() - - OpenBSD-Regress-ID: f7c95c76b150d0aeb00a67858b9579b7d1b2db74 - -commit 2c64f24e27a5e72a7f59e515fc4f4985355237ae -Author: Darren Tucker -Date: Mon Dec 21 14:02:56 2020 +1100 - - Pull in missing rev 1.2. - -commit 0f504f592d15d8047e466eb7453067a6880992a8 -Author: djm@openbsd.org -Date: Sun Dec 20 23:40:19 2020 +0000 - - upstream: plumb ssh_conn_info through to sshconnect.c; feedback/ok - - markus@ - - OpenBSD-Commit-ID: e8d14a09cda3f1dc55df08f8a4889beff74e68b0 - -commit 729b05f59ded35483acef90a6f88aa03eae33b29 -Author: djm@openbsd.org -Date: Sun Dec 20 23:38:00 2020 +0000 - - upstream: allow UserKnownHostsFile=none; feedback and ok markus@ - - OpenBSD-Commit-ID: c46d515eac94a35a1d50d5fd71c4b1ca53334b48 - -commit b4c7cd1185c5dc0593d47eafcc1a34fda569dd1d -Author: djm@openbsd.org -Date: Sun Dec 20 23:36:51 2020 +0000 - - upstream: load_hostkeys()/hostkeys_foreach() variants for FILE* - - Add load_hostkeys_file() and hostkeys_foreach_file() that accept a - FILE* argument instead of opening the file directly. - - Original load_hostkeys() and hostkeys_foreach() are implemented using - these new interfaces. - - Add a u_int note field to the hostkey_entry and hostkey_foreach_line - structs that is passed directly from the load_hostkeys() and - hostkeys_foreach() call. This is a lightweight way to annotate results - between different invocations of load_hostkeys(). - - ok markus@ - - OpenBSD-Commit-ID: 6ff6db13ec9ee4edfa658b2c38baad0f505d8c20 - -commit 06fbb386bed666581095cb9cbc7a900e02bfe1b7 -Author: tobhe@openbsd.org -Date: Sat Dec 19 22:09:21 2020 +0000 - - upstream: Print client kem key with correct length. - - ok markus@ - - OpenBSD-Commit-ID: 91689e14a4fc6c270e265a32d1c8faba63a45755 - -commit 0ebead6593e2441e4af2735bbe2cd097607cd0d3 -Author: djm@openbsd.org -Date: Thu Dec 17 23:28:50 2020 +0000 - - upstream: fix possible error("%s", NULL) on error paths - - OpenBSD-Commit-ID: 0b3833c2cb985453ecca1d76803ebb8f3b736a11 - -commit d060bc7f6e6244f001e658208f53e3e2ecbbd382 -Author: djm@openbsd.org -Date: Thu Dec 17 23:26:11 2020 +0000 - - upstream: refactor client percent_expand() argument passing; - - consolidate the common arguments into a single struct and pass that around - instead of using a bunch of globals. ok markus@ - - OpenBSD-Commit-ID: 035e6d7ca9145ad504f6af5a021943f1958cd19b - -commit 43026da035cd266db37df1f723d5575056150744 -Author: djm@openbsd.org -Date: Thu Dec 17 23:10:27 2020 +0000 - - upstream: prepare readconf.c for fuzzing; remove fatal calls and - - fix some (one-off) memory leaks; ok markus@ - - OpenBSD-Commit-ID: 91c6aec57b0e7aae9190de188e9fe8933aad5ec5 - -commit bef92346c4a808f33216e54d6f4948f9df2ad7c1 -Author: djm@openbsd.org -Date: Mon Dec 14 03:13:12 2020 +0000 - - upstream: use _PATH_SSH_USER_DIR instead of hardcoded .ssh in path - - OpenBSD-Commit-ID: 5c1048468813107baa872f5ee33ba51623630e01 - -commit a5ab499bd2644b4026596fc2cb24a744fa310666 -Author: Damien Miller -Date: Fri Dec 4 14:01:27 2020 +1100 - - basic KEX fuzzer; adapted from Markus' unittest - -commit 021ff33e383c77b11badd60cec5b141a3e3fa532 -Author: Damien Miller -Date: Fri Dec 4 13:57:43 2020 +1100 - - use options that work with recent clang - -commit e4d1a0b40add800b6e9352b40c2223e44acc3a45 -Author: djm@openbsd.org -Date: Fri Dec 4 02:41:10 2020 +0000 - - upstream: shuffle a few utility functions into sftp-client.c; from - - Jakub Jelen - - OpenBSD-Commit-ID: fdeb1aae1f6149b193f12cd2af158f948c514a2a - -commit ace12dc64f8e3a2496ca48d36b53cb3c0a090755 -Author: djm@openbsd.org -Date: Fri Dec 4 02:29:56 2020 +0000 - - upstream: make ssh_free(NULL) a no-op - - OpenBSD-Commit-ID: 42cb285d94789cefe6608db89c63040ab0a80fa0 - -commit 3b98b6e27f8a122dbfda9966b1afeb3e371cce91 -Author: djm@openbsd.org -Date: Fri Dec 4 02:29:25 2020 +0000 - - upstream: memleak of DH public bignum; found with libfuzzer - - OpenBSD-Commit-ID: 0e913b542c3764b100b1571fdb0d0e5cc086fe97 - -commit 553b90feedd7da5b90901d73005f86705456d686 -Author: djm@openbsd.org -Date: Fri Dec 4 02:27:57 2020 +0000 - - upstream: fix minor memleak of kex->hostkey_alg on rekex - - OpenBSD-Commit-ID: 2c3969c74966d4ccdfeff5e5f0df0791919aef50 - -commit ac0364b85e66eb53da2f9618f699ba6bd195ceea -Author: djm@openbsd.org -Date: Fri Dec 4 02:27:08 2020 +0000 - - upstream: typos: s/hex/kex/ in error messages - - OpenBSD-Commit-ID: 43a026c9571dd779ec148de1829cf5a6b6651905 - -commit ee22db7c5885a1d90219202c0695bc621aa0409b -Author: djm@openbsd.org -Date: Fri Dec 4 02:25:13 2020 +0000 - - upstream: make program name be const - - OpenBSD-Commit-ID: ece25680ec637fdf20502721ccb0276691df5384 - -commit 2bcbf679de838bb77a8bd7fa18e100df471a679c -Author: dtucker@openbsd.org -Date: Mon Nov 30 05:36:39 2020 +0000 - - upstream: Ignore comments at the end of config lines in ssh_config, - - similar to what we already do for sshd_config. bz#2320, with & ok djm@ - - OpenBSD-Commit-ID: bdbf9fc5bc72b1a14266f5f61723ed57307a6db4 - -commit b755264e7d3cdf1de34e18df1af4efaa76a3c015 -Author: dtucker@openbsd.org -Date: Sat Nov 28 12:52:32 2020 +0000 - - upstream: Include cipher.h for declaration of cipher_by_name. - - OpenBSD-Commit-ID: ddfebbca03ca0e14e00bbad9d35f94b99655d032 - -commit 022def7bd16c3426a95e25f57cb259d54468341c -Author: djm@openbsd.org -Date: Sat Nov 28 03:27:59 2020 +0000 - - upstream: check result of strchr() against NULL rather than - - searched-for characters; from zhongjubin@huawei.com - - OpenBSD-Commit-ID: e6f57de1d4a4d25f8db2d44e8d58d847e247a4fe - -commit 57bf03f0217554afb8980f6697a7a0b88658d0a9 -Author: dtucker@openbsd.org -Date: Fri Nov 27 10:12:30 2020 +0000 - - upstream: Document ssh-keygen -Z, sanity check its argument earlier and - - provide a better error message if it's not correct. Prompted by bz#2879, ok - djm@ jmc@ - - OpenBSD-Commit-ID: 484178a173e92230fb1803fb4f206d61f7b58005 - -commit 33313ebc1c7135085676db62189e3520341d6b73 -Author: djm@openbsd.org -Date: Fri Nov 27 00:49:58 2020 +0000 - - upstream: Set the specified TOS/DSCP for interactive use prior to - - TCP connect. The connection phase of the SSH session is time-sensitive (due - to server side login grace periods) and is frequently interactive (e.g. - entering passwords). The ultimate interactive/bulk TOS/DSCP will be set after - authentication completes. - - ok dtucker@ - - OpenBSD-Commit-ID: f31ab10d9233363a6d2c9996007083ba43a093f1 - -commit b2bcec13f17ce9174238a704e91d52203e916432 -Author: djm@openbsd.org -Date: Fri Nov 27 00:37:10 2020 +0000 - - upstream: clean up passing of struct passwd from monitor to preauth - - privsep process. No longer copy entire struct w/ pointer addresses, but pass - remaining scalar fields explicitly, - - Prompted by Yuichiro NAITO, feedback Thorsten Glaser; ok dtucker@ - - OpenBSD-Commit-ID: 9925df75a56732c43f3663e70dd15ff413ab3e53 - -commit 19af04e2231155d513e24fdc81fbec2217ae36a6 -Author: djm@openbsd.org -Date: Sun Nov 22 22:38:26 2020 +0000 - - upstream: when loading PKCS#11 keys, include the key fingerprints - - and provider/slot information in debug output. - - OpenBSD-Commit-ID: 969a089575d0166a9a364a9901bb6a8d9b8a1431 - -commit 9b9465ea856e15b9e9890b4ecb4110d7106e7766 -Author: djm@openbsd.org -Date: Sun Nov 22 22:37:11 2020 +0000 - - upstream: when mentioning that the host key has changed, don't - - report the type because it is ambiguous as to whether it referred to the - known or new host key. bz3216; ok dtucker@ - - OpenBSD-Commit-ID: 2d5ce4a83dbcf44e340a572e361decad8aab7bad - -commit 637017a7dd3281d3f2df804993cc27c30dbfda47 -Author: Darren Tucker -Date: Wed Nov 25 17:38:46 2020 +1100 - - Use "=" not "==" in string test. - - POSIX says "=" is string comparison and some shells (eg HP-UX) will - complain about "==". - -commit 9880f3480f9768897f3b8e714d5317fb993bc5b3 -Author: Darren Tucker -Date: Fri Nov 20 17:16:51 2020 +1100 - - Restore correct flags during localtime_r check. - - We were restoring the wrong thing CPPFLAGS (we used CFLAGS) for any - platform that doesn't have localtime_r. - -commit 41935882f4e82de60dbd6e033eabe79e1b963518 -Author: dtucker@openbsd.org -Date: Fri Nov 20 03:16:56 2020 +0000 - - upstream: When doing an sftp recursive upload or download of a - - read-only directory, ensure that the directory is created with write and - execute permissions in the interim so that we can actually complete the - transfer, then set the directory permission as the final step. (The execute - bit is only likely to be an issue with a non-POSIX server). bz#3222, ok djm@ - - OpenBSD-Commit-ID: a82606212f2796e31f0e1af94a63355a7ad5d903 - -commit 0f90440ca70abab947acbd77795e9f130967956c -Author: Darren Tucker -Date: Fri Nov 20 13:37:54 2020 +1100 - - Add new pselect6_time64 syscall on ARM. - - This is apparently needed on armhfp/armv7hl. bz#3232, patch from - jjelen at redhat.com. - -commit 3a7c46c72b6a1f643b1fc3589cd20d8320c3d9e1 -Author: dtucker@openbsd.org -Date: Fri Nov 20 02:14:16 2020 +0000 - - upstream: Explicitly initialize all members of the - - find_by_key_ctx struct. Initializing a single member should be enough - (the spec says the remainder should be initialized as per the static - rules) but some GCCs warn on this which prevents us testing with -Werror - on those. ok deraadt@ djm@ - - OpenBSD-Commit-ID: 687126e60a27d30f02614760ef3c3ae4e8d6af28 - -commit 076cb616b87d1ea1d292973fcd0ba38c08ea6832 -Author: dtucker@openbsd.org -Date: Thu Nov 19 23:05:05 2020 +0000 - - upstream: draft-ietf-secsh-architecture is now RFC4251. - - OpenBSD-Commit-ID: cb0bb58c2711fb5ed519507659be1dcf179ed403 - -commit 85cceda21f1471548e04111aefe2c4943131c1c8 -Author: dtucker@openbsd.org -Date: Tue Nov 17 11:23:58 2020 +0000 - - upstream: Specify that the KDF function is bcrypt. Based on github - - PR#214 from rafork, ok markus@, mdoc correction jmc@ - - OpenBSD-Commit-ID: d8f2853e7edbcd483f31b50da77ab80ffa18b4ef - -commit 5b9720f9adbd70ba5a994f407fe07a7d016d8d65 -Author: djm@openbsd.org -Date: Sun Nov 15 22:34:58 2020 +0000 - - upstream: revert r1.341; it breaks ProxyJump; reported by sthen@ - - OpenBSD-Commit-ID: 6ac2f945b26cb86d936eed338f77861d6da8356a - -commit 04088725ec9c44880c01799b588cd4ba47b3e8bc -Author: djm@openbsd.org -Date: Fri Nov 13 07:30:44 2020 +0000 - - upstream: scrub keyboard-interactive authentication prompts coming - - from the server through asmprintf() prior to display; suggested by and ok - dtucker@ - - OpenBSD-Commit-ID: 31fe93367645c37fbfe4691596bf6cf1e3972a58 - -commit 5442b491d0ee4bb82f6341ad0ee620ef3947f8c5 -Author: djm@openbsd.org -Date: Fri Nov 13 04:53:12 2020 +0000 - - upstream: prefix keyboard interactive prompts with (user@host) to - - make it easier to determine which connection they are associated with in - cases like scp -3, ProxyJump, etc. bz#3224 ok dtucker - - OpenBSD-Commit-ID: 67e6189b04b46c867662f8a6759cf3ecb5f59170 - -commit 2992e4e7014ac1047062acfdbbf6feb156fef616 -Author: Darren Tucker -Date: Fri Nov 13 17:56:11 2020 +1100 - - Remove use of TIME_WITH_SYS_TIME. - - It was only set by the recently removed AC_HEADER_TIME macro, replace - with simple inclusions of both sys/time.h and time.h. Should prevent - mis-detection of struct timespec. - -commit e3f27006f15abacb7e89fda3f5e9a0bd420b7e38 -Author: Damien Miller -Date: Fri Nov 13 14:20:43 2020 +1100 - - Revert "detect Linux/X32 systems" - - This reverts commit 5b56bd0affea7b02b540bdbc4d1d271b0e4fc885. - - The approach used was incorrect; discussion in bz#3085 - -commit e51dc7fab61df36e43f3bc64b673f88d388cab91 -Author: Damien Miller -Date: Fri Nov 13 13:22:15 2020 +1100 - - SELinux has deprecated security_context_t - - (it was only ever a char* anyway) - -commit b79add37d118276d67f3899987b9f0629c9449c3 -Author: Darren Tucker -Date: Fri Nov 13 13:43:30 2020 +1100 - - Remove obsolete AC_HEADER_TIME macro. - - AC_HEADER_TIME is marked as obsolete in autoconf-2.70 and as far as I - can tell everything we have that might be old enough to need it doesn't. - -commit d5d05cdb3d4efd4a618aa52caab5bec73097c163 -Author: djm@openbsd.org -Date: Thu Nov 12 22:56:00 2020 +0000 - - upstream: when prompting the user to accept a new hostkey, display - - any other host names/addresses already associated with the key. E.g. - - > The authenticity of host 'test (10.0.0.1)' can't be established. - > ECDSA key fingerprint is SHA256:milU4MODXm8iJQI18wlsbPG7Yup+34fuNNmV08qDnax. - > This host key is known by the following other names/addresses: - > ~/.ssh/known_hosts:1: host.example.org,10.0.0.1 - > ~/.ssh/known_hosts:2: [hashed name] - > ~/.ssh/known_hosts:3: [hashed name] - > ~/.ssh/known_hosts:4: host - > ~/.ssh/known_hosts:5: [host]:2222 - > Are you sure you want to continue connecting (yes/no/[fingerprint])? - - feedback and ok markus@ - - OpenBSD-Commit-ID: f6f58a77b49f1368b5883b3a1f776447cfcc7ef4 - -commit 819b44e8b9af6ce18d3ec7505b9f461bf7991a1f -Author: dtucker@openbsd.org -Date: Thu Nov 12 22:38:57 2020 +0000 - - upstream: Prevent integer overflow when ridiculously large - - ConnectTimeout is specified, capping the effective value (for most platforms) - at 24 days. bz#3229, ok djm@ - - OpenBSD-Commit-ID: 62d4c4b7b87d111045f8e9f28b5b532d17ac5bc0 - -commit add926dd1bbe3c4db06e27cab8ab0f9a3d00a0c2 -Author: djm@openbsd.org -Date: Wed Nov 11 05:22:32 2020 +0000 - - upstream: fix logic error that broke URI parsing in ProxyJump - - directives; ok dtucker@ - - OpenBSD-Commit-ID: 96d48839b1704882a0e9a77898f5e14b2d222705 - -commit 4340dd43928dfe746cb7e75fe920b63c0d909a9a -Author: claudio@openbsd.org -Date: Tue Nov 10 07:46:20 2020 +0000 - - upstream: Free the previously allocated msg buffer after writing it - - out. OK djm@ - - OpenBSD-Commit-ID: 18c055870fc75e4cb9f926c86c7543e2e21d7fa4 - -commit fcf429a4c69d30d8725612a55b37181594da8ddf -Author: Darren Tucker -Date: Wed Nov 11 12:30:46 2020 +1100 - - Prevent excessively long username going to PAM. - - This is a mitigation for a buffer overflow in Solaris' PAM username - handling (CVE-2020-14871), and is only enabled for Sun-derived PAM - implementations. This is not a problem in sshd itself, it only - prevents sshd from being used as a vector to attack Solaris' PAM. - It does not prevent the bug in PAM from being exploited via some other - PAM application. - - Based on github PR#212 from Mike Scott but implemented slightly - differently. ok tim@ djm@ - -commit 10dce8ff68ef615362cfcab0c0cc33ce524e7682 -Author: djm@openbsd.org -Date: Sun Nov 8 23:19:03 2020 +0000 - - upstream: unbreak; missing NULL check - - OpenBSD-Commit-ID: 6613dfab488123f454d348ef496824476b8c11c0 - -commit d5a0cd4fc430c8eda213a4010a612d4778867cd9 -Author: djm@openbsd.org -Date: Sun Nov 8 22:37:24 2020 +0000 - - upstream: when requesting a security key touch on stderr, inform the - - user once the touch has been recorded; requested by claudio@ ok markus@ - - OpenBSD-Commit-ID: 3b76ee444490e546b9ea7f879e4092ee0d256233 - -commit 292bcb2479deb27204e3ff796539c003975a5f7a -Author: Darren Tucker -Date: Mon Nov 9 00:33:35 2020 +1100 - - Remove preprocessor directive from log macro calls. - - Preprocessor directives inside macro calls, such as the new log macros, - are undefined behaviour and do not work with, eg old GCCs. Put the - entire log call inside the ifdef for OPENSSL_HAS_NISTP521. - -commit 71693251b7cbb7dd89aaac18815147124732d0d3 -Author: dtucker@openbsd.org -Date: Sun Nov 8 12:10:20 2020 +0000 - - upstream: Add a comment documenting the source of the moduli group - - sizes. - - OpenBSD-Commit-ID: aec0725ce607630caaa62682624c6763b350391c - -commit 4d94b031ff88b015f0db57e140f481bff7ae1a91 -Author: dtucker@openbsd.org -Date: Sun Nov 8 11:46:12 2020 +0000 - - upstream: Replace WITH_OPENSSL ifdefs in log calls with a macro. - - The log calls are themselves now macros, and preprocessor directives inside - macro arguments are undefined behaviour which some compilers (eg old GCCs) - choke on. It also makes the code tidier. ok deraadt@ - - OpenBSD-Commit-ID: cc12a9029833d222043aecd252d654965c351a69 - -commit 6d2564b94e51184eb0b73b97d13a36ad50b4f810 -Author: Darren Tucker -Date: Fri Nov 6 17:11:16 2020 +1100 - - Fix function body for variadic macro test. - - AC_LANG_PROGRAM puts its second argument inside main() so we don't need - to do it ourselves. - -commit 586f9bd2f5980e12f8cf0d3c2a761fa63175da52 -Author: Darren Tucker -Date: Fri Nov 6 16:53:24 2020 +1100 - - Remove AC_PROC_CC_C99 obsoleted in autoconf 2.70. - - Since we only use it to make sure we can handle variadic macros, - explicitly check only for that. with & ok djm@ - -commit a019e353df04de1b2ca78d91b39c393256044ad7 -Author: Darren Tucker -Date: Fri Nov 6 13:56:41 2020 +1100 - - Replace AC_TRY_COMPILE obsoleted in autoconf 2.70. - - Replace with the equivalent AC_COMPILE_IFELSE. - -commit 771b7795c0ef6a2fb43b4c6c66b615c2085cb9cd -Author: Darren Tucker -Date: Fri Nov 6 13:55:33 2020 +1100 - - Move AC_PROG_CC_C99 to immediately afer AC_PROG_CC. - - This puts the related C version selection output in the same place. - -commit e5591161f21ab493c6284a85ac3c0710ad94998f -Author: Darren Tucker -Date: Fri Nov 6 13:54:17 2020 +1100 - - AC_CHECK_HEADER() is obsoleted in autoconf 2.70. - - Replace with the non-obsoleted AC_CHECK_HEADERS(). - -commit 05bcd0cadf160fd4826a2284afa7cba6ec432633 -Author: djm@openbsd.org -Date: Tue Nov 3 22:53:12 2020 +0000 - - upstream: fold consecutive '*' wildcards to mitigate combinatorial - - explosion of recursive searches; ok dtucker - - OpenBSD-Commit-ID: d18bcb39c40fb8a1ab61153db987e7d11dd3792b - -commit 7d680448db5858dc76307663f78d0b8d3c2b4a3d -Author: djm@openbsd.org -Date: Fri Oct 30 01:50:07 2020 +0000 - - upstream: print reason in fatal error message when - - kex_assemble_namelist() fails - - OpenBSD-Commit-ID: a9975ee8db6c98d6f32233d88051b2077ca63dab - -commit 95d1109fec7e89ad21f2a97e92bde1305d32a353 -Author: djm@openbsd.org -Date: Thu Oct 29 03:13:06 2020 +0000 - - upstream: fix sshd_config SetEnv directive inside Match blocks; part of - - github PR#201 from github user manuelm - - OpenBSD-Commit-ID: 9772e3748abff3ad65ae8fc43d026ed569b1d2bc - -commit b12b835dc022ba161afe68348e05a83dfbcb1515 -Author: djm@openbsd.org -Date: Thu Oct 29 03:01:18 2020 +0000 - - upstream: fix type of nid in type_bits_valid(); github PR#202 from - - github user thingsconnected - - OpenBSD-Commit-ID: 769d2b040dec7ab32d323daf54b854dd5dcb5485 - -commit 1a14c13147618144d1798c36a588397ba9008fcc -Author: djm@openbsd.org -Date: Thu Oct 29 02:52:43 2020 +0000 - - upstream: whitespace; no code change - - OpenBSD-Commit-ID: efefc1c47e880887bdee8cd2127ca93177eaad79 - -commit 815209abfdd2991fb92ad7d2e33374916cdcbcf4 -Author: djm@openbsd.org -Date: Thu Oct 29 02:47:23 2020 +0000 - - upstream: UpdateHostkeys: fixed/better detection of host keys that - - exist under other names and addresses; spotted by and debugged with lots of - help from jca@ - - OpenBSD-Commit-ID: 5113d7f550bbd48243db1705afbf16b63792d4b7 - -commit a575cf44e59a65506c67bddb62a712208a7a279c -Author: Duncan Eastoe -Date: Wed Oct 21 10:11:10 2020 +0100 - - session.c: use "denylist" terminology - - Follow upstream (6d755706a0059eb9e2d63517f288b75cbc3b4701) language - improvements in this portable-specific code. - -commit 33267feaffd5d98aa56d2f0b3a99ec352effe938 -Author: Damien Miller -Date: Tue Oct 27 16:46:31 2020 +1100 - - Remove checks for strict POSIX mkdtemp() - - We needed a mkdtemp() that accepted template paths that did not - end in XXXXXX a long time ago for KRB4, but that code is long - deprecated. We no longer need to replace mkdtemp() for strictly - following POSIX. ok dtucker@ - -commit 492d70e18bad5a8c97d05f5eddac817171e88d2c -Author: dtucker@openbsd.org -Date: Mon Oct 26 00:39:04 2020 +0000 - - upstream: Minor man page fixes (capitalization, commas) identified by - - the manpage-l10n project via bz#3223. feedback deraadt@, ok jmc@ - - OpenBSD-Commit-ID: ab83af0daf18369244a72daaec6c4a58a9eb7e2c - -commit eab2888cfc6cc4e2ef24bd017da9835a0f365f3f -Author: dtucker@openbsd.org -Date: Mon Oct 19 22:49:23 2020 +0000 - - upstream: Adapt XMSS to new logging infrastructure. With markus@, ok - - djm@. - - OpenBSD-Commit-ID: 9c35ec3aa0f710e4e3325187ceff4fa3791686de - -commit f7bd11e4941620991f3e727cd0131b01f0311a58 -Author: djm@openbsd.org -Date: Mon Oct 19 08:07:08 2020 +0000 - - upstream: fix SEGV on fatal() errors spotted by dtucker@ - - OpenBSD-Commit-ID: 75f155a1ac61e364ed00dc379e2c42df81067ce2 - -commit 7715a3b171049afa1feffb1d5a1245dfac36ce99 -Author: Darren Tucker -Date: Mon Oct 19 10:54:41 2020 +1100 - - Use fatal_fr not fatal_r when passing r. - - Caught by the PAM -Werror tinderbox build. - -commit 816036f142ecd284c12bb3685ae316a68d2ef190 -Author: djm@openbsd.org -Date: Sun Oct 18 11:32:01 2020 +0000 - - upstream: use the new variant log macros instead of prepending - - __func__ and appending ssh_err(r) manually; ok markus@ - - OpenBSD-Commit-ID: 1f14b80bcfa85414b2a1a6ff714fb5362687ace8 - -commit 9e2c4f64224f68fb84c49b5182e449f94b0dc985 -Author: djm@openbsd.org -Date: Sun Oct 18 11:21:59 2020 +0000 - - upstream: variants of the log methods that append a ssherr.h string - - from a supplied error code; ok markus@ - - OpenBSD-Commit-ID: aed98c4435d48d036ae6740300f6a8357b7cc0bf - -commit 28cb0a4b03940d1ee576eb767a81a4113bdc917e -Author: djm@openbsd.org -Date: Sun Oct 18 11:14:27 2020 +0000 - - upstream: remove a level of macro indirection; ok markus@ - - OpenBSD-Commit-ID: 0c529d06e902c5d1a6b231e1bec6157f76dc67c9 - -commit 9cac1db52e6c4961c447910fe02cd68a3b2f9460 -Author: djm@openbsd.org -Date: Sun Oct 18 11:13:45 2020 +0000 - - upstream: add some variant log.h calls that prepend the calling - - function name; ok markus@ - - OpenBSD-Commit-ID: 4be1b2e2455b271ddb7457bc195c5367644f4e48 - -commit d55dfed34ef6ef1f028d552a90d5f3dba8dd6f7b -Author: Damien Miller -Date: Sat Oct 17 22:55:24 2020 +1100 - - missing header - -commit 999d7cb79a3a73d92a6dfbf174c33da0d984c7a2 -Author: Damien Miller -Date: Sat Oct 17 22:47:52 2020 +1100 - - sync regress/misc/sk-dummy/fatal.c - -commit 3554b4afa38b3483a3302f1be18eaa6f843bb260 -Author: djm@openbsd.org -Date: Sat Oct 17 01:28:20 2020 +0000 - - upstream: make the log functions that exit (sshlogdie(), - - sshfatal(), etc) have identical signatures. Makes things a bit more - consistent... - - OpenBSD-Commit-ID: bd0ae124733389d7c0042e135c71ee9091362eb9 - -commit 616029a85ad7529b24bb8c4631d9607c0d6e7afe -Author: jmc@openbsd.org -Date: Fri Oct 16 14:34:33 2020 +0000 - - upstream: add space between macro arg and punctuation; - - OpenBSD-Commit-ID: bb81e2ed5a77832fe62ab30a915ae67cda57633e - -commit f812a36cee5727147bc897d34ab9af068dd4561e -Author: Damien Miller -Date: Sat Oct 17 12:03:34 2020 +1100 - - check for and require a C99 capable compiler - - recent logging changes use __VA_ARGS__. - -commit f9ea6515202b59a1e2d5b885cafc1b12eff33016 -Author: Damien Miller -Date: Sat Oct 17 11:51:20 2020 +1100 - - logging is now macros, remove function pointers - -commit 0f938f998626e8359324f803157cd7c9f8f403e2 -Author: Damien Miller -Date: Sat Oct 17 11:42:26 2020 +1100 - - adapt sk-dummy's fatal implementation to changes - -commit afbd9ec9e2dbad04834ce7ce53e58740434f32a5 -Author: Damien Miller -Date: Sat Oct 17 11:33:13 2020 +1100 - - fix netcat build problem - -commit 793b583d097381730adaf6f68bed3c343139a013 -Author: djm@openbsd.org -Date: Fri Oct 16 13:26:13 2020 +0000 - - upstream: LogVerbose keyword for ssh and sshd - - Allows forcing maximum debug logging by file/function/line pattern- - lists. - - ok markus@ - - OpenBSD-Commit-ID: c294c25732d1b4fe7e345cb3e044df00531a6356 - -commit 752250caabda3dd24635503c4cd689b32a650794 -Author: djm@openbsd.org -Date: Fri Oct 16 13:24:45 2020 +0000 - - upstream: revised log infrastructure for OpenSSH - - log functions receive function, filename and line number of caller. - We can use this to selectively enable logging via pattern-lists. - - ok markus@ - - OpenBSD-Commit-ID: 51a472610cbe37834ce6ce4a3f0e0b1ccc95a349 - -commit acadbb3402b70f72f14d9a6930ad41be97c2f9dc -Author: djm@openbsd.org -Date: Fri Oct 16 02:37:12 2020 +0000 - - upstream: use do_log2 instead of function pointers to different log - - functions - - OpenBSD-Commit-ID: 88077b826d348c58352a6b394755520f4e484480 - -commit 95b0bcfd1531d59e056ae8af27bb741391f26ab0 -Author: djm@openbsd.org -Date: Wed Oct 14 00:55:17 2020 +0000 - - upstream: make UpdateHostkeys still more conservative: refuse to - - proceed if one of the keys offered by the server is already in known_hosts - under another name. This avoid collisions between address entries for - different host aliases when CheckHostIP=yes - - Also, do not attempt to fix known_hosts with incomplete host/ip matches - when there are no new or deprecated hostkeys. - - OpenBSD-Commit-ID: 95c19842f7c41f9bd9c92aa6441a278c0fd0c4a3 - -commit a336ce8c2c55547cc00e0070a18c55f30bb53fb6 -Author: kn@openbsd.org -Date: Mon Oct 12 08:36:36 2020 +0000 - - upstream: Zap unused family parameter from ssh_connect_direct() - - sshconnect.c r1.241 from 2013 made it unused; found while reading code. - - OK djm - - OpenBSD-Commit-ID: 219ba6d7f9925d0b7992918612680399d86712b5 - -commit e545d94b713effab8e6c7dfabbfb76c1d84d7498 -Author: Philip Hands -Date: Sun Oct 4 00:15:46 2020 +0200 - - shift contents of long $() into filter_ids() - - This was prompted by the fact that posh does not deal with $() - that contains comments where the comment includes an odd number - of single-quotes. It seems to get befuddled into trying to find - the matching quote. - Regardless, making a function for filtering the unneeded ids - seems much neater than avoiding apostrophes, - so that's what I've done. - - SSH-Copy-ID-Upstream: 3dab3366a584427045c8a690a93282f02c09cf24 - -commit fd360174596047b52aa1cddda74d85012a03ca4b -Author: Philip Hands -Date: Sat Oct 3 23:15:16 2020 +0200 - - combine if/elif to avoid duplication of the action - - SSH-Copy-ID-Upstream: 42aeb1cc53d3f7f6e78edc210fb121fda0834914 - -commit f7c3a39b016dd77709ecbf18da8282f967b86cd7 -Author: Philip Hands -Date: Sat Oct 3 21:45:16 2020 +0200 - - shellcheck tidyage - - SSH-Copy-ID-Upstream: 5b08f840e78ac544288b3983010a1b0585e966fd - -commit 108676c3f26be6c873db0dd8754063699908727b -Author: Philip Hands -Date: Sat Oct 3 21:10:03 2020 +0200 - - tidy up test of $SCRATCH_DIR creation - - SSH-Copy-ID-Upstream: 2d8b22d96c105d87743ffe8874887b06f8989b93 - -commit a9c9e91a82bc1a2cf801b4e3ef27a941dbd27717 -Author: Philip Hands -Date: Wed Sep 16 16:13:30 2020 +0200 - - add -s flag: to install keys via SFTP - - This is prompted by: - - https://bugzilla.mindrot.org/show_bug.cgi?id=3201 - - Thanks go to Matthias Blümel for the idea, and the helpful patch, from - which this patch grew. - - SSH-Copy-ID-Upstream: f7c76dc64427cd20287a6868f672423b62057614 - -commit f92424970c02b78852ff149378c7f2616ada4ccf -Author: djm@openbsd.org -Date: Sun Oct 11 22:14:38 2020 +0000 - - upstream: UpdateHostkeys: check for keys under other names - - Stop UpdateHostkeys from automatically removing deprecated keys from - known_hosts files if the same keys exist under a different name or - address to the host that is being connected to. - - This avoids UpdateHostkeys from making known_hosts inconsistent in - some cases. For example, multiple host aliases sharing address-based - known_hosts on different lines, or hosts that resolves to multiple - addresses. - - ok markus@ - - OpenBSD-Commit-ID: 6444a705ba504c3c8ccddccd8d1b94aa33bd11c1 - -commit d98f14b5328922ae3085e07007d820c4f655b57a -Author: djm@openbsd.org -Date: Sun Oct 11 22:13:37 2020 +0000 - - upstream: UpdateHostkeys: better CheckHostIP handling - - When preparing to update the known_hosts file, fully check both - entries for both the host and the address (if CheckHostIP enabled) - and ensure that, at the end of the operation, entries for both are - recorded. - - Make sure this works with HashKnownHosts too, which requires maintaining - a list of entry-types seen across the whole file for each key. - - ok markus@ - - OpenBSD-Commit-ID: 374dc263103f6b343d9671f87dbf81ffd0d6abdd - -commit af5941ae9b013aac12585e84c4cf494f3728982f -Author: djm@openbsd.org -Date: Sun Oct 11 22:12:44 2020 +0000 - - upstream: UpdateHostkeys: better detect manual host entries - - Disable UpdateHostkeys if the known_hosts line has more than two - entries in the pattern-list. ssh(1) only writes "host" or "host,ip" - lines so anything else was added by a different tool or by a human. - - ok markus@ - - OpenBSD-Commit-ID: e434828191fb5f3877d4887c218682825aa59820 - -commit 6247812c76f70b2245f3c23f5074665b3d436cae -Author: djm@openbsd.org -Date: Thu Oct 8 01:15:16 2020 +0000 - - upstream: don't misdetect comma-separated hostkey names as wildcards; - - spotted by naddy@ - - OpenBSD-Commit-ID: 4b874edfec7fc324a21b130bdb42f912177739ce - -commit 67146c7d022a170be3cdad2f5f40259a663fb266 -Author: wangxp006 -Date: Thu Oct 8 17:49:59 2020 +0800 - - fix TEST_MALLOC_OPTIONS var - -commit 3205eaa3f8883a34fa4559ddef6c90d1067c5cce -Author: djm@openbsd.org -Date: Thu Oct 8 00:31:05 2020 +0000 - - upstream: clarify conditions for UpdateHostkeys - - OpenBSD-Commit-ID: 9cba714cf6aeed769f998ccbe8c483077a618e27 - -commit e8dfca9bfeff05de87160407fb3e6a5717fa3dcb -Author: djm@openbsd.org -Date: Wed Oct 7 06:38:16 2020 +0000 - - upstream: remove GlobalKnownHostsFile for this test after - - UpdateHostkeys change - - OpenBSD-Regress-ID: a940ad79d59343319613ba8fc46b6ef24aa3f8e1 - -commit 4aa2717d7517cff4bc423a6cfba3a2defb055aea -Author: djm@openbsd.org -Date: Wed Oct 7 02:26:28 2020 +0000 - - upstream: Disable UpdateHostkeys when hostkey checking fails - - If host key checking fails (i.e. a wrong host key is recorded for the - server) and the user elects to continue (via StrictHostKeyChecking=no), - then disable UpdateHostkeys for the session. - - reminded by Mark D. Baushke; ok markus@ - - OpenBSD-Commit-ID: 98b524f121f4252309dd21becd8c4cacb0c6042a - -commit 04c06d04475f1f673e9d9743710d194453fe3888 -Author: djm@openbsd.org -Date: Wed Oct 7 02:25:43 2020 +0000 - - upstream: Fix UpdateHostkeys/HashKnownHosts/CheckHostIP bug - - When all of UpdateHostkeys, HashKnownHosts and ChechHostIP - were enabled and new host keys were learned, known_hosts IP - entries were not being recorded for new host keys. - - reported by matthieu@ ok markus@ - - OpenBSD-Commit-ID: a654a8290bd1c930aac509e8158cf85e42e49cb7 - -commit b70e33711291f3081702133175a41cccafc0212a -Author: djm@openbsd.org -Date: Wed Oct 7 02:24:51 2020 +0000 - - upstream: don't UpdateHostkeys when the hostkey is verified by the - - GlobalKnownHostsFile file, support only UserKnownHostsFile matches - - suggested by Mark D. Baushke; feedback and ok markus@ - - OpenBSD-Commit-ID: eabb771a6add676c398d38a143a1aff5f04abbb9 - -commit aa623142e426ca1ab9db77b06dcc9b1b70bd102b -Author: djm@openbsd.org -Date: Wed Oct 7 02:22:23 2020 +0000 - - upstream: revert kex->flags cert hostkey downgrade back to a plain - - key (commitid VtF8vozGOF8DMKVg). We now do this a simpler way that needs less - plumbing. - - ok markus@ - - OpenBSD-Commit-ID: fb92d25b216bff8c136da818ac2221efaadf18ed - -commit f4f14e023cafee1cd9ebe4bb0db4029e6e1fafac -Author: djm@openbsd.org -Date: Wed Oct 7 02:20:35 2020 +0000 - - upstream: simply disable UpdateHostkeys when a certificate - - successfully authenticated the host; simpler than the complicated plumbing - via kex->flags we have now. - - ok markus@ - - OpenBSD-Commit-ID: 80e39644eed75717d563a7f177e8117a0e14f42c - -commit e79957e877db42c4c68fabcf6ecff2268e53acb5 -Author: djm@openbsd.org -Date: Wed Oct 7 02:18:45 2020 +0000 - - upstream: disable UpdateHostkeys by default if VerifyHostKeyDNS is - - enabled; suggested by Mark D. Baushke - - OpenBSD-Commit-ID: 85a1b88592c81bc85df7ee7787dbbe721a0542bf - -commit 3d4c2016bae1a6f14b48c1150a4c79ca4c9968bd -Author: dtucker@openbsd.org -Date: Tue Oct 6 07:12:04 2020 +0000 - - upstream: Agent protocol draft is now at rev 4. ok djm@ - - OpenBSD-Commit-ID: 8c01ea3aae48aab45e01b7421b0fca2dad5e7837 - -commit af889a40ffc113af9105c03d7b32131eb4372d50 -Author: djm@openbsd.org -Date: Sun Oct 4 09:45:01 2020 +0000 - - upstream: when ordering host key algorithms in the client, consider - - the ECDSA key subtype; ok markus@ - - OpenBSD-Commit-ID: 3097686f853c61ff61772ea35f8b699931392ece - -commit 2d39fc9f7e039351daa3d6aead1538ac29258add -Author: dtucker@openbsd.org -Date: Sun Oct 4 03:04:02 2020 +0000 - - upstream: Allow full range of UIDs and GIDs for sftp chown and - - chgrp on 32bit platforms instead of being limited by LONG_MAX. bz#3206, - found by booking00 at sina.cn, ok markus@ - - OpenBSD-Commit-ID: 373b7bbf1f15ae482d39567ce30d18b51c9229b5 diff --git a/crypto/openssh/INSTALL b/crypto/openssh/INSTALL index 1c9abb1c3a86..77b56a9bb734 100644 --- a/crypto/openssh/INSTALL +++ b/crypto/openssh/INSTALL @@ -17,7 +17,7 @@ The remaining items are optional. A working installation of zlib: Zlib 1.1.4 or 1.2.1.2 or greater (earlier 1.2.x versions have problems): -http://www.gzip.org/zlib/ +https://zlib.net/ libcrypto from either of LibreSSL or OpenSSL. Building without libcrypto is supported but severely restricts the available ciphers and algorithms. diff --git a/crypto/openssh/Makefile.in b/crypto/openssh/Makefile.in index 5dde2baa079c..c0ebfa041525 100644 --- a/crypto/openssh/Makefile.in +++ b/crypto/openssh/Makefile.in @@ -106,7 +106,7 @@ LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ ssh-pkcs11.o smult_curve25519_ref.o \ poly1305.o chacha.o cipher-chachapoly.o cipher-chachapoly-libcrypto.o \ ssh-ed25519.o digest-openssl.o digest-libc.o \ - hmac.o sc25519.o ge25519.o fe25519.o ed25519.o verify.o hash.o \ + hmac.o ed25519.o hash.o \ kex.o kexdh.o kexgex.o kexecdh.o kexc25519.o \ kexgexc.o kexgexs.o \ kexsntrup761x25519.o sntrup761.o kexgen.o \ @@ -616,6 +616,7 @@ regress/unittests/conversion/test_conversion$(EXEEXT): \ UNITTESTS_TEST_KEX_OBJS=\ regress/unittests/kex/tests.o \ regress/unittests/kex/test_kex.o \ + regress/unittests/kex/test_proposal.o \ $(SKOBJS) regress/unittests/kex/test_kex$(EXEEXT): ${UNITTESTS_TEST_KEX_OBJS} \ @@ -653,7 +654,8 @@ UNITTESTS_TEST_MISC_OBJS=\ regress/unittests/misc/test_convtime.o \ regress/unittests/misc/test_argv.o \ regress/unittests/misc/test_strdelim.o \ - regress/unittests/misc/test_hpdelim.o + regress/unittests/misc/test_hpdelim.o \ + regress/unittests/misc/test_ptimeout.o regress/unittests/misc/test_misc$(EXEEXT): \ ${UNITTESTS_TEST_MISC_OBJS} \ @@ -676,7 +678,7 @@ regress/unittests/utf8/test_utf8$(EXEEXT): \ SK_DUMMY_OBJS=\ regress/misc/sk-dummy/sk-dummy.lo \ regress/misc/sk-dummy/fatal.lo \ - ed25519.lo hash.lo ge25519.lo fe25519.lo sc25519.lo verify.lo + ed25519.lo hash.lo SK_DUMMY_LIBRARY=@SK_DUMMY_LIBRARY@ @@ -722,6 +724,7 @@ unit: regress-unit-binaries interop-tests t-exec file-tests: regress-prep regress-binaries $(TARGETS) cd $(srcdir)/regress || exit $$?; \ EGREP='@EGREP@' \ + OPENSSL_BIN='@OPENSSL_BIN@' \ $(MAKE) \ .CURDIR="$(abs_top_srcdir)/regress" \ .OBJDIR="$(BUILDDIR)/regress" \ diff --git a/crypto/openssh/PROTOCOL b/crypto/openssh/PROTOCOL index 685f90fa8569..27804d0cadbd 100644 --- a/crypto/openssh/PROTOCOL +++ b/crypto/openssh/PROTOCOL @@ -637,7 +637,7 @@ https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-extensions-00#se 4.12. sftp: Extension request "users-groups-by-id@openssh.com" -This request asks the server to returns user and/or group names that +This request asks the server to return user and/or group names that correspond to one or more IDs (e.g. as returned from a SSH_FXP_STAT request). This may be used by the client to provide usernames in directory listings. @@ -712,4 +712,4 @@ master instance and later clients. OpenSSH extends the usual agent protocol. These changes are documented in the PROTOCOL.agent file. -$OpenBSD: PROTOCOL,v 1.47 2022/09/19 10:40:52 djm Exp $ +$OpenBSD: PROTOCOL,v 1.48 2022/11/07 01:53:01 dtucker Exp $ diff --git a/crypto/openssh/README b/crypto/openssh/README index 0d3416f573c5..89bcddd9e4fc 100644 --- a/crypto/openssh/README +++ b/crypto/openssh/README @@ -1,4 +1,4 @@ -See https://www.openssh.com/releasenotes.html#9.1p1 for the release notes. +See https://www.openssh.com/releasenotes.html#9.2p1 for the release notes. Please read https://www.openssh.com/report.html for bug reporting instructions and note that we do not use Github for bug reporting or diff --git a/crypto/openssh/README.md b/crypto/openssh/README.md index 04e3a5198a91..3da933817989 100644 --- a/crypto/openssh/README.md +++ b/crypto/openssh/README.md @@ -34,7 +34,7 @@ Portable OpenSSH is built using autoconf and make. It requires a working C compi [zlib](https://www.zlib.net/) is optional; without it transport compression is not supported. -FIDO security token support needs [libfido2](https://github.com/Yubico/libfido2) and its dependencies. +FIDO security token support needs [libfido2](https://github.com/Yubico/libfido2) and its dependencies and will be enabled automatically if they are found. In addition, certain platforms and build-time options may require additional dependencies; see README.platform for details about your platform. @@ -75,7 +75,6 @@ Flag | Meaning ``--with-libedit`` | Enable [libedit](https://www.thrysoee.dk/editline/) support for sftp. ``--with-kerberos5`` | Enable Kerberos/GSSAPI support. Both [Heimdal](https://www.h5l.org/) and [MIT](https://web.mit.edu/kerberos/) Kerberos implementations are supported. ``--with-selinux`` | Enable [SELinux](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) support. -``--with-security-key-builtin`` | Include built-in support for U2F/FIDO2 security keys. This requires [libfido2](https://github.com/Yubico/libfido2) be installed. ## Development diff --git a/crypto/openssh/aclocal.m4 b/crypto/openssh/aclocal.m4 index 9d85d34d4772..5a19d278477f 100644 --- a/crypto/openssh/aclocal.m4 +++ b/crypto/openssh/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.3 -*- Autoconf -*- +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/crypto/openssh/addr.c b/crypto/openssh/addr.c index abf3e3d97818..db9ab7ac1d8d 100644 --- a/crypto/openssh/addr.c +++ b/crypto/openssh/addr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: addr.c,v 1.5 2022/04/29 04:55:07 djm Exp $ */ +/* $OpenBSD: addr.c,v 1.6 2022/10/28 02:29:34 djm Exp $ */ /* * Copyright (c) 2004-2008 Damien Miller @@ -227,6 +227,28 @@ addr_and(struct xaddr *dst, const struct xaddr *a, const struct xaddr *b) } } +int +addr_or(struct xaddr *dst, const struct xaddr *a, const struct xaddr *b) +{ + int i; + + if (dst == NULL || a == NULL || b == NULL || a->af != b->af) + return (-1); + + memcpy(dst, a, sizeof(*dst)); + switch (a->af) { + case AF_INET: + dst->v4.s_addr |= b->v4.s_addr; + return (0); + case AF_INET6: + for (i = 0; i < 4; i++) + dst->addr32[i] |= b->addr32[i]; + return (0); + default: + return (-1); + } +} + int addr_cmp(const struct xaddr *a, const struct xaddr *b) { @@ -278,6 +300,29 @@ addr_is_all0s(const struct xaddr *a) } } +/* Increment the specified address. Note, does not do overflow checking */ +void +addr_increment(struct xaddr *a) +{ + int i; + uint32_t n; + + switch (a->af) { + case AF_INET: + a->v4.s_addr = htonl(ntohl(a->v4.s_addr) + 1); + break; + case AF_INET6: + for (i = 0; i < 4; i++) { + /* Increment with carry */ + n = ntohl(a->addr32[3 - i]) + 1; + a->addr32[3 - i] = htonl(n); + if (n != 0) + break; + } + break; + } +} + /* * Test whether host portion of address 'a', as determined by 'masklen' * is all zeros. @@ -297,6 +342,32 @@ addr_host_is_all0s(const struct xaddr *a, u_int masklen) return addr_is_all0s(&tmp_result); } +#if 0 +int +addr_host_to_all0s(struct xaddr *a, u_int masklen) +{ + struct xaddr tmp_mask; + + if (addr_netmask(a->af, masklen, &tmp_mask) == -1) + return (-1); + if (addr_and(a, a, &tmp_mask) == -1) + return (-1); + return (0); +} +#endif + +int +addr_host_to_all1s(struct xaddr *a, u_int masklen) +{ + struct xaddr tmp_mask; + + if (addr_hostmask(a->af, masklen, &tmp_mask) == -1) + return (-1); + if (addr_or(a, a, &tmp_mask) == -1) + return (-1); + return (0); +} + /* * Parse string address 'p' into 'n'. * Returns 0 on success, -1 on failure. diff --git a/crypto/openssh/addr.h b/crypto/openssh/addr.h index 5eff02628592..180e9fdc6449 100644 --- a/crypto/openssh/addr.h +++ b/crypto/openssh/addr.h @@ -52,9 +52,13 @@ int addr_sa_pton(const char *h, const char *s, struct sockaddr *sa, int addr_pton_cidr(const char *p, struct xaddr *n, u_int *l); int addr_ntop(const struct xaddr *n, char *p, size_t len); int addr_and(struct xaddr *dst, const struct xaddr *a, const struct xaddr *b); +int addr_or(struct xaddr *dst, const struct xaddr *a, const struct xaddr *b); int addr_cmp(const struct xaddr *a, const struct xaddr *b); int addr_is_all0s(const struct xaddr *n); int addr_host_is_all0s(const struct xaddr *n, u_int masklen); +int addr_host_to_all0s(struct xaddr *a, u_int masklen); +int addr_host_to_all1s(struct xaddr *a, u_int masklen); int addr_netmatch(const struct xaddr *host, const struct xaddr *net, u_int masklen); +void addr_increment(struct xaddr *a); #endif /* _ADDR_H */ diff --git a/crypto/openssh/auth-pam.c b/crypto/openssh/auth-pam.c index 81c19fb7c458..008466f7bd82 100644 --- a/crypto/openssh/auth-pam.c +++ b/crypto/openssh/auth-pam.c @@ -253,7 +253,6 @@ static Authctxt *sshpam_authctxt = NULL; static const char *sshpam_password = NULL; static char *sshpam_rhost = NULL; static char *sshpam_laddr = NULL; -static char *sshpam_conninfo = NULL; /* Some PAM implementations don't implement this */ #ifndef HAVE_PAM_GETENVLIST @@ -689,6 +688,7 @@ sshpam_init(struct ssh *ssh, Authctxt *authctxt) { const char *pam_user, *user = authctxt->user; const char **ptr_pam_user = &pam_user; + int r; #if defined(PAM_SUN_CODEBASE) && defined(PAM_MAX_RESP_SIZE) /* Protect buggy PAM implementations from excessively long usernames */ @@ -730,9 +730,6 @@ sshpam_init(struct ssh *ssh, Authctxt *authctxt) options.use_dns)); sshpam_laddr = get_local_ipaddr( ssh_packet_get_connection_in(ssh)); - xasprintf(&sshpam_conninfo, "SSH_CONNECTION=%.50s %d %.50s %d", - ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), - sshpam_laddr, ssh_local_port(ssh)); } if (sshpam_rhost != NULL) { debug("PAM: setting PAM_RHOST to \"%s\"", sshpam_rhost); @@ -743,8 +740,17 @@ sshpam_init(struct ssh *ssh, Authctxt *authctxt) sshpam_handle = NULL; return (-1); } + } + if (ssh != NULL && sshpam_laddr != NULL) { + char *conninfo; + /* Put SSH_CONNECTION in the PAM environment too */ - pam_putenv(sshpam_handle, sshpam_conninfo); + xasprintf(&conninfo, "SSH_CONNECTION=%.50s %d %.50s %d", + ssh_remote_ipaddr(ssh), ssh_remote_port(ssh), + sshpam_laddr, ssh_local_port(ssh)); + if ((r = pam_putenv(sshpam_handle, conninfo)) != PAM_SUCCESS) + logit("pam_putenv: %s", pam_strerror(sshpam_handle, r)); + free(conninfo); } #ifdef PAM_TTY_KLUDGE diff --git a/crypto/openssh/auth-rhosts.c b/crypto/openssh/auth-rhosts.c index 4fc9252a6b61..56724677a9e2 100644 --- a/crypto/openssh/auth-rhosts.c +++ b/crypto/openssh/auth-rhosts.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-rhosts.c,v 1.56 2022/02/23 21:21:49 djm Exp $ */ +/* $OpenBSD: auth-rhosts.c,v 1.57 2022/12/09 00:17:40 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -19,6 +19,7 @@ #include #include +#include #include #ifdef HAVE_NETGROUP_H # include @@ -283,6 +284,7 @@ auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, xasprintf(&path, "%s/%s", pw->pw_dir, rhosts_files[rhosts_file_index]); if (stat(path, &st) == -1) { + debug3_f("stat %s: %s", path, strerror(errno)); free(path); continue; } diff --git a/crypto/openssh/auth.c b/crypto/openssh/auth.c index 3e6b75c7bc62..93610963f3b3 100644 --- a/crypto/openssh/auth.c +++ b/crypto/openssh/auth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.c,v 1.158 2022/06/03 04:47:21 djm Exp $ */ +/* $OpenBSD: auth.c,v 1.159 2022/12/09 00:17:40 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -594,14 +594,13 @@ auth_debug_add(const char *fmt,...) va_list args; int r; - if (auth_debug == NULL) - return; - va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - if ((r = sshbuf_put_cstring(auth_debug, buf)) != 0) - fatal_fr(r, "sshbuf_put_cstring"); + debug3("%s", buf); + if (auth_debug != NULL) + if ((r = sshbuf_put_cstring(auth_debug, buf)) != 0) + fatal_fr(r, "sshbuf_put_cstring"); } void diff --git a/crypto/openssh/channels.c b/crypto/openssh/channels.c index e75a0cf9b509..0d26358cc65e 100644 --- a/crypto/openssh/channels.c +++ b/crypto/openssh/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.420 2022/09/19 08:49:50 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.427 2023/01/18 02:00:10 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -151,6 +151,12 @@ struct permission_set { int all_permitted; }; +/* Used to record timeouts per channel type */ +struct ssh_channel_timeout { + char *type_pattern; + u_int timeout_secs; +}; + /* Master structure for channels state */ struct ssh_channels { /* @@ -204,6 +210,10 @@ struct ssh_channels { /* AF_UNSPEC or AF_INET or AF_INET6 */ int IPv4or6; + + /* Channel timeouts by type */ + struct ssh_channel_timeout *timeouts; + size_t ntimeouts; }; /* helper */ @@ -296,6 +306,76 @@ channel_lookup(struct ssh *ssh, int id) return NULL; } +/* + * Add a timeout for open channels whose c->ctype (or c->xctype if it is set) + * match type_pattern. + */ +void +channel_add_timeout(struct ssh *ssh, const char *type_pattern, + u_int timeout_secs) +{ + struct ssh_channels *sc = ssh->chanctxt; + + debug2_f("channel type \"%s\" timeout %u seconds", + type_pattern, timeout_secs); + sc->timeouts = xrecallocarray(sc->timeouts, sc->ntimeouts, + sc->ntimeouts + 1, sizeof(*sc->timeouts)); + sc->timeouts[sc->ntimeouts].type_pattern = xstrdup(type_pattern); + sc->timeouts[sc->ntimeouts].timeout_secs = timeout_secs; + sc->ntimeouts++; +} + +/* Clears all previously-added channel timeouts */ +void +channel_clear_timeouts(struct ssh *ssh) +{ + struct ssh_channels *sc = ssh->chanctxt; + size_t i; + + debug3_f("clearing"); + for (i = 0; i < sc->ntimeouts; i++) + free(sc->timeouts[i].type_pattern); + free(sc->timeouts); + sc->timeouts = NULL; + sc->ntimeouts = 0; +} + +static u_int +lookup_timeout(struct ssh *ssh, const char *type) +{ + struct ssh_channels *sc = ssh->chanctxt; + size_t i; + + for (i = 0; i < sc->ntimeouts; i++) { + if (match_pattern(type, sc->timeouts[i].type_pattern)) + return sc->timeouts[i].timeout_secs; + } + + return 0; +} + +/* + * Sets "extended type" of a channel; used by session layer to add additional + * information about channel types (e.g. shell, login, subsystem) that can then + * be used to select timeouts. + * Will reset c->inactive_deadline as a side-effect. + */ +void +channel_set_xtype(struct ssh *ssh, int id, const char *xctype) +{ + Channel *c; + + if ((c = channel_by_id(ssh, id)) == NULL) + fatal_f("missing channel %d", id); + if (c->xctype != NULL) + free(c->xctype); + c->xctype = xstrdup(xctype); + /* Type has changed, so look up inactivity deadline again */ + c->inactive_deadline = lookup_timeout(ssh, c->xctype); + debug2_f("labeled channel %d as %s (inactive timeout %u)", id, xctype, + c->inactive_deadline); +} + /* * Register filedescriptors for a channel, used when allocating a channel or * when the channel consumer/producer is ready, e.g. shell exec'd @@ -337,16 +417,19 @@ channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd, */ if (rfd != -1 && !isatty(rfd) && (val = fcntl(rfd, F_GETFL)) != -1 && !(val & O_NONBLOCK)) { + c->restore_flags[0] = val; c->restore_block |= CHANNEL_RESTORE_RFD; set_nonblock(rfd); } if (wfd != -1 && !isatty(wfd) && (val = fcntl(wfd, F_GETFL)) != -1 && !(val & O_NONBLOCK)) { + c->restore_flags[1] = val; c->restore_block |= CHANNEL_RESTORE_WFD; set_nonblock(wfd); } if (efd != -1 && !isatty(efd) && (val = fcntl(efd, F_GETFL)) != -1 && !(val & O_NONBLOCK)) { + c->restore_flags[2] = val; c->restore_block |= CHANNEL_RESTORE_EFD; set_nonblock(efd); } @@ -415,8 +498,10 @@ channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd, c->remote_name = xstrdup(remote_name); c->ctl_chan = -1; c->delayed = 1; /* prevent call to channel_post handler */ + c->inactive_deadline = lookup_timeout(ssh, c->ctype); TAILQ_INIT(&c->status_confirms); - debug("channel %d: new [%s]", found, remote_name); + debug("channel %d: new %s [%s] (inactive timeout: %u)", + found, c->ctype, remote_name, c->inactive_deadline); return c; } @@ -428,10 +513,16 @@ channel_close_fd(struct ssh *ssh, Channel *c, int *fdp) if (fd == -1) return 0; - if ((*fdp == c->rfd && (c->restore_block & CHANNEL_RESTORE_RFD) != 0) || - (*fdp == c->wfd && (c->restore_block & CHANNEL_RESTORE_WFD) != 0) || - (*fdp == c->efd && (c->restore_block & CHANNEL_RESTORE_EFD) != 0)) - (void)fcntl(*fdp, F_SETFL, 0); /* restore blocking */ + /* restore blocking */ + if (*fdp == c->rfd && + (c->restore_block & CHANNEL_RESTORE_RFD) != 0) + (void)fcntl(*fdp, F_SETFL, c->restore_flags[0]); + else if (*fdp == c->wfd && + (c->restore_block & CHANNEL_RESTORE_WFD) != 0) + (void)fcntl(*fdp, F_SETFL, c->restore_flags[1]); + else if (*fdp == c->efd && + (c->restore_block & CHANNEL_RESTORE_EFD) != 0) + (void)fcntl(*fdp, F_SETFL, c->restore_flags[2]); if (*fdp == c->rfd) { c->io_want &= ~SSH_CHAN_IO_RFD; @@ -656,6 +747,8 @@ channel_free(struct ssh *ssh, Channel *c) c->path = NULL; free(c->listening_addr); c->listening_addr = NULL; + free(c->xctype); + c->xctype = NULL; while ((cc = TAILQ_FIRST(&c->status_confirms)) != NULL) { if (cc->abandon_cb != NULL) cc->abandon_cb(ssh, c, cc->ctx); @@ -871,9 +964,9 @@ channel_format_status(const Channel *c) { char *ret = NULL; - xasprintf(&ret, "t%d %s%u i%u/%zu o%u/%zu e[%s]/%zu " + xasprintf(&ret, "t%d [%s] %s%u i%u/%zu o%u/%zu e[%s]/%zu " "fd %d/%d/%d sock %d cc %d io 0x%02x/0x%02x", - c->type, + c->type, c->xctype != NULL ? c->xctype : c->ctype, c->have_remote_id ? "r" : "nr", c->remote_id, c->istate, sshbuf_len(c->input), c->ostate, sshbuf_len(c->output), @@ -1087,6 +1180,7 @@ channel_set_fds(struct ssh *ssh, int id, int rfd, int wfd, int efd, channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, is_tty); c->type = SSH_CHANNEL_OPEN; + c->lastused = monotime(); c->local_window = c->local_window_max = window_max; if ((r = sshpkt_start(ssh, SSH2_MSG_CHANNEL_WINDOW_ADJUST)) != 0 || @@ -1222,6 +1316,32 @@ x11_open_helper(struct ssh *ssh, struct sshbuf *b) return 1; } +void +channel_force_close(struct ssh *ssh, Channel *c, int abandon) +{ + debug3_f("channel %d: forcibly closing", c->self); + if (c->istate == CHAN_INPUT_OPEN) + chan_read_failed(ssh, c); + if (c->istate == CHAN_INPUT_WAIT_DRAIN) { + sshbuf_reset(c->input); + chan_ibuf_empty(ssh, c); + } + if (c->ostate == CHAN_OUTPUT_OPEN || + c->ostate == CHAN_OUTPUT_WAIT_DRAIN) { + sshbuf_reset(c->output); + chan_write_failed(ssh, c); + } + if (c->detach_user) + c->detach_user(ssh, c->self, 1, NULL); + if (c->efd != -1) + channel_close_fd(ssh, c, &c->efd); + if (abandon) + c->type = SSH_CHANNEL_ABANDONED; + /* exempt from inactivity timeouts */ + c->inactive_deadline = 0; + c->lastused = 0; +} + static void channel_pre_x11_open(struct ssh *ssh, Channel *c) { @@ -1231,17 +1351,14 @@ channel_pre_x11_open(struct ssh *ssh, Channel *c) if (ret == 1) { c->type = SSH_CHANNEL_OPEN; + c->lastused = monotime(); channel_pre_open(ssh, c); } else if (ret == -1) { - logit("X11 connection rejected because of wrong authentication."); + logit("X11 connection rejected because of wrong " + "authentication."); debug2("X11 rejected %d i%d/o%d", c->self, c->istate, c->ostate); - chan_read_failed(ssh, c); - sshbuf_reset(c->input); - chan_ibuf_empty(ssh, c); - sshbuf_reset(c->output); - chan_write_failed(ssh, c); - debug2("X11 closed %d i%d/o%d", c->self, c->istate, c->ostate); + channel_force_close(ssh, c, 0); } } @@ -1591,11 +1708,7 @@ static void rdynamic_close(struct ssh *ssh, Channel *c) { c->type = SSH_CHANNEL_OPEN; - chan_read_failed(ssh, c); - sshbuf_reset(c->input); - chan_ibuf_empty(ssh, c); - sshbuf_reset(c->output); - chan_write_failed(ssh, c); + channel_force_close(ssh, c, 0); } /* reverse dynamic port forwarding */ @@ -1693,7 +1806,7 @@ channel_post_x11_listener(struct ssh *ssh, Channel *c) snprintf(buf, sizeof buf, "X11 connection from %.200s port %d", remote_ipaddr, remote_port); - nc = channel_new(ssh, "accepted x11 socket", + nc = channel_new(ssh, "x11-connection", SSH_CHANNEL_OPENING, newsock, newsock, -1, c->local_window_max, c->local_maxpacket, 0, buf, 1); open_preamble(ssh, __func__, nc, "x11"); @@ -1852,7 +1965,7 @@ channel_post_auth_listener(struct ssh *ssh, Channel *c) c->notbefore = monotime() + 1; return; } - nc = channel_new(ssh, "accepted auth socket", + nc = channel_new(ssh, "agent-connection", SSH_CHANNEL_OPENING, newsock, newsock, -1, c->local_window_max, c->local_maxpacket, 0, "accepted auth socket", 1); @@ -1882,6 +1995,7 @@ channel_post_connecting(struct ssh *ssh, Channel *c) c->self, c->connect_ctx.host, c->connect_ctx.port); channel_connect_ctx_free(&c->connect_ctx); c->type = SSH_CHANNEL_OPEN; + c->lastused = monotime(); if (isopen) { /* no message necessary */ } else { @@ -1930,7 +2044,7 @@ channel_handle_rfd(struct ssh *ssh, Channel *c) char buf[CHAN_RBUF]; ssize_t len; int r, force; - size_t have, avail, maxlen = CHANNEL_MAX_READ; + size_t nr = 0, have, avail, maxlen = CHANNEL_MAX_READ; int pty_zeroread = 0; #ifdef PTY_ZEROREAD @@ -1959,7 +2073,7 @@ channel_handle_rfd(struct ssh *ssh, Channel *c) } if (maxlen > avail) maxlen = avail; - if ((r = sshbuf_read(c->rfd, c->input, maxlen, NULL)) != 0) { + if ((r = sshbuf_read(c->rfd, c->input, maxlen, &nr)) != 0) { if (errno == EINTR || (!force && (errno == EAGAIN || errno == EWOULDBLOCK))) return 1; @@ -1967,6 +2081,8 @@ channel_handle_rfd(struct ssh *ssh, Channel *c) c->self, c->rfd, maxlen, ssh_err(r)); goto rfail; } + if (nr != 0) + c->lastused = monotime(); return 1; } @@ -1992,6 +2108,7 @@ channel_handle_rfd(struct ssh *ssh, Channel *c) } return -1; } + c->lastused = monotime(); if (c->input_filter != NULL) { if (c->input_filter(ssh, c, buf, len) == -1) { debug2("channel %d: filter stops", c->self); @@ -2072,6 +2189,7 @@ channel_handle_wfd(struct ssh *ssh, Channel *c) } return -1; } + c->lastused = monotime(); #ifndef BROKEN_TCGETATTR_ICANON if (c->isatty && dlen >= 1 && buf[0] != '\r') { if (tcgetattr(c->wfd, &tio) == 0 && @@ -2120,6 +2238,7 @@ channel_handle_efd_write(struct ssh *ssh, Channel *c) if ((r = sshbuf_consume(c->extended, len)) != 0) fatal_fr(r, "channel %i: consume", c->self); c->local_consumed += len; + c->lastused = monotime(); } return 1; } @@ -2144,7 +2263,10 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c) if (len <= 0) { debug2("channel %d: closing read-efd %d", c->self, c->efd); channel_close_fd(ssh, c, &c->efd); - } else if (c->extended_usage == CHAN_EXTENDED_IGNORE) + return 1; + } + c->lastused = monotime(); + if (c->extended_usage == CHAN_EXTENDED_IGNORE) debug3("channel %d: discard efd", c->self); else if ((r = sshbuf_put(c->extended, buf, len)) != 0) fatal_fr(r, "channel %i: append", c->self); @@ -2333,7 +2455,7 @@ channel_post_mux_listener(struct ssh *ssh, Channel *c) close(newsock); return; } - nc = channel_new(ssh, "multiplex client", SSH_CHANNEL_MUX_CLIENT, + nc = channel_new(ssh, "mux-control", SSH_CHANNEL_MUX_CLIENT, newsock, newsock, -1, c->local_window_max, c->local_maxpacket, 0, "mux-control", 1); nc->mux_rcb = c->mux_rcb; @@ -2395,7 +2517,7 @@ channel_garbage_collect(struct ssh *ssh, Channel *c) return; debug2("channel %d: gc: notify user", c->self); - c->detach_user(ssh, c->self, NULL); + c->detach_user(ssh, c->self, 0, NULL); /* if we still have a callback */ if (c->detach_user != NULL) return; @@ -2410,7 +2532,7 @@ channel_garbage_collect(struct ssh *ssh, Channel *c) enum channel_table { CHAN_PRE, CHAN_POST }; static void -channel_handler(struct ssh *ssh, int table, time_t *unpause_secs) +channel_handler(struct ssh *ssh, int table, struct timespec *timeout) { struct ssh_channels *sc = ssh->chanctxt; chan_fn **ftab = table == CHAN_PRE ? sc->channel_pre : sc->channel_post; @@ -2419,8 +2541,6 @@ channel_handler(struct ssh *ssh, int table, time_t *unpause_secs) time_t now; now = monotime(); - if (unpause_secs != NULL) - *unpause_secs = 0; for (i = 0, oalloc = sc->channels_alloc; i < oalloc; i++) { c = sc->channels[i]; if (c == NULL) @@ -2435,29 +2555,37 @@ channel_handler(struct ssh *ssh, int table, time_t *unpause_secs) continue; } if (ftab[c->type] != NULL) { - /* - * Run handlers that are not paused. - */ - if (c->notbefore <= now) + if (table == CHAN_PRE && + c->type == SSH_CHANNEL_OPEN && + c->inactive_deadline != 0 && c->lastused != 0 && + now >= c->lastused + c->inactive_deadline) { + /* channel closed for inactivity */ + verbose("channel %d: closing after %u seconds " + "of inactivity", c->self, + c->inactive_deadline); + channel_force_close(ssh, c, 1); + } else if (c->notbefore <= now) { + /* Run handlers that are not paused. */ (*ftab[c->type])(ssh, c); - else if (unpause_secs != NULL) { + /* inactivity timeouts must interrupt poll() */ + if (timeout != NULL && + c->type == SSH_CHANNEL_OPEN && + c->lastused != 0 && + c->inactive_deadline != 0) { + ptimeout_deadline_monotime(timeout, + c->lastused + c->inactive_deadline); + } + } else if (timeout != NULL) { /* - * Collect the time that the earliest - * channel comes off pause. + * Arrange for poll() wakeup when channel pause + * timer expires. */ - debug3_f("chan %d: skip for %d more " - "seconds", c->self, - (int)(c->notbefore - now)); - if (*unpause_secs == 0 || - (c->notbefore - now) < *unpause_secs) - *unpause_secs = c->notbefore - now; + ptimeout_deadline_monotime(timeout, + c->notbefore); } } channel_garbage_collect(ssh, c); } - if (unpause_secs != NULL && *unpause_secs != 0) - debug3_f("first channel unpauses in %d seconds", - (int)*unpause_secs); } /* @@ -2603,7 +2731,7 @@ channel_prepare_pollfd(Channel *c, u_int *next_pollfd, /* * Allocate/prepare poll structure */ void channel_prepare_poll(struct ssh *ssh, struct pollfd **pfdp, u_int *npfd_allocp, - u_int *npfd_activep, u_int npfd_reserved, time_t *minwait_secs) + u_int *npfd_activep, u_int npfd_reserved, struct timespec *timeout) { struct ssh_channels *sc = ssh->chanctxt; u_int i, oalloc, p, npfd = npfd_reserved; @@ -2627,7 +2755,7 @@ channel_prepare_poll(struct ssh *ssh, struct pollfd **pfdp, u_int *npfd_allocp, *npfd_activep = npfd_reserved; oalloc = sc->channels_alloc; - channel_handler(ssh, CHAN_PRE, minwait_secs); + channel_handler(ssh, CHAN_PRE, timeout); if (oalloc != sc->channels_alloc) { /* shouldn't happen */ @@ -2976,7 +3104,7 @@ channel_proxy_downstream(struct ssh *ssh, Channel *downstream) error_fr(r, "parse"); goto out; } - c = channel_new(ssh, "mux proxy", SSH_CHANNEL_MUX_PROXY, + c = channel_new(ssh, "mux-proxy", SSH_CHANNEL_MUX_PROXY, -1, -1, -1, 0, 0, 0, ctype, 1); c->mux_ctx = downstream; /* point to mux client */ c->mux_downstream_id = id; /* original downstream id */ @@ -3003,7 +3131,7 @@ channel_proxy_downstream(struct ssh *ssh, Channel *downstream) error_fr(r, "parse"); goto out; } - c = channel_new(ssh, "mux proxy", SSH_CHANNEL_MUX_PROXY, + c = channel_new(ssh, "mux-proxy", SSH_CHANNEL_MUX_PROXY, -1, -1, -1, 0, 0, 0, "mux-down-connect", 1); c->mux_ctx = downstream; /* point to mux client */ c->mux_downstream_id = id; @@ -3386,6 +3514,7 @@ channel_input_open_confirmation(int type, u_int32_t seq, struct ssh *ssh) c->open_confirm(ssh, c->self, 1, c->open_confirm_ctx); debug2_f("channel %d: callback done", c->self); } + c->lastused = monotime(); debug2("channel %d: open confirm rwindow %u rmax %u", c->self, c->remote_window, c->remote_maxpacket); return 0; @@ -3719,7 +3848,7 @@ channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type, } /* Allocate a channel number for the socket. */ - c = channel_new(ssh, "port listener", type, sock, sock, -1, + c = channel_new(ssh, "port-listener", type, sock, sock, -1, CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, "port listener", 1); c->path = xstrdup(host); @@ -3802,7 +3931,7 @@ channel_setup_fwd_listener_streamlocal(struct ssh *ssh, int type, debug("Local forwarding listening on path %s.", fwd->listen_path); /* Allocate a channel number for the socket. */ - c = channel_new(ssh, "unix listener", type, sock, sock, -1, + c = channel_new(ssh, "unix-listener", type, sock, sock, -1, CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, "unix listener", 1); c->path = xstrdup(path); @@ -4081,7 +4210,7 @@ int channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) { int r, success = 0, idx = -1; - char *host_to_connect, *listen_host, *listen_path; + const char *host_to_connect, *listen_host, *listen_path; int port_to_connect, listen_port; /* Send the forward request to the remote side. */ @@ -4112,18 +4241,17 @@ channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) host_to_connect = listen_host = listen_path = NULL; port_to_connect = listen_port = 0; if (fwd->connect_path != NULL) { - host_to_connect = xstrdup(fwd->connect_path); + host_to_connect = fwd->connect_path; port_to_connect = PORT_STREAMLOCAL; } else { - host_to_connect = xstrdup(fwd->connect_host); + host_to_connect = fwd->connect_host; port_to_connect = fwd->connect_port; } if (fwd->listen_path != NULL) { - listen_path = xstrdup(fwd->listen_path); + listen_path = fwd->listen_path; listen_port = PORT_STREAMLOCAL; } else { - if (fwd->listen_host != NULL) - listen_host = xstrdup(fwd->listen_host); + listen_host = fwd->listen_host; listen_port = fwd->listen_port; } idx = permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, @@ -4888,7 +5016,7 @@ x11_create_display_inet(struct ssh *ssh, int x11_display_offset, *chanids = xcalloc(num_socks + 1, sizeof(**chanids)); for (n = 0; n < num_socks; n++) { sock = socks[n]; - nc = channel_new(ssh, "x11 listener", + nc = channel_new(ssh, "x11-listener", SSH_CHANNEL_X11_LISTENER, sock, sock, -1, CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, 0, "X11 inet listener", 1); diff --git a/crypto/openssh/channels.h b/crypto/openssh/channels.h index 828c1b61b443..101843a06d15 100644 --- a/crypto/openssh/channels.h +++ b/crypto/openssh/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.143 2022/05/05 00:56:58 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.148 2023/01/18 02:00:10 djm Exp $ */ /* * Author: Tatu Ylonen @@ -88,7 +88,7 @@ typedef struct Channel Channel; struct fwd_perm_list; typedef void channel_open_fn(struct ssh *, int, int, void *); -typedef void channel_callback_fn(struct ssh *, int, void *); +typedef void channel_callback_fn(struct ssh *, int, int, void *); typedef int channel_infilter_fn(struct ssh *, struct Channel *, char *, int); typedef void channel_filter_cleanup_fn(struct ssh *, int, void *); typedef u_char *channel_outfilter_fn(struct ssh *, struct Channel *, @@ -153,6 +153,7 @@ struct Channel { * this way post-IO handlers are not * accidentally called if a FD gets reused */ int restore_block; /* fd mask to restore blocking status */ + int restore_flags[3];/* flags to restore */ struct sshbuf *input; /* data read from socket, to be sent over * encrypted connection */ struct sshbuf *output; /* data received over encrypted connection for @@ -175,7 +176,8 @@ struct Channel { int extended_usage; int single_connection; - char *ctype; /* type */ + char *ctype; /* const type - NB. not freed on channel_free */ + char *xctype; /* extended type */ /* callback */ channel_open_fn *open_confirm; @@ -202,6 +204,13 @@ struct Channel { void *mux_ctx; int mux_pause; int mux_downstream_id; + + /* Inactivity timeouts */ + + /* Last traffic seen for OPEN channels */ + time_t lastused; + /* Inactivity timeout deadline in seconds (0 = no timeout) */ + u_int inactive_deadline; }; #define CHAN_EXTENDED_IGNORE 0 @@ -281,6 +290,8 @@ void channel_set_fds(struct ssh *, int, int, int, int, int, void channel_free(struct ssh *, Channel *); void channel_free_all(struct ssh *); void channel_stop_listening(struct ssh *); +void channel_force_close(struct ssh *, Channel *, int); +void channel_set_xtype(struct ssh *, int, const char *); void channel_send_open(struct ssh *, int); void channel_request_start(struct ssh *, int, char *, int); @@ -296,6 +307,10 @@ void channel_cancel_cleanup(struct ssh *, int); int channel_close_fd(struct ssh *, Channel *, int *); void channel_send_window_changes(struct ssh *); +/* channel inactivity timeouts */ +void channel_add_timeout(struct ssh *, const char *, u_int); +void channel_clear_timeouts(struct ssh *); + /* mux proxy support */ int channel_proxy_downstream(struct ssh *, Channel *mc); @@ -315,9 +330,10 @@ int channel_input_status_confirm(int, u_int32_t, struct ssh *); /* file descriptor handling (read/write) */ struct pollfd; +struct timespec; void channel_prepare_poll(struct ssh *, struct pollfd **, - u_int *, u_int *, u_int, time_t *); + u_int *, u_int *, u_int, struct timespec *); void channel_after_poll(struct ssh *, struct pollfd *, u_int); void channel_output_poll(struct ssh *); diff --git a/crypto/openssh/clientloop.c b/crypto/openssh/clientloop.c index 0050f3eb6faa..fef9efc6cc3a 100644 --- a/crypto/openssh/clientloop.c +++ b/crypto/openssh/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.380 2022/06/03 04:30:46 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.387 2023/01/06 02:39:59 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -160,6 +160,8 @@ static int need_rekeying; /* Set to non-zero if rekeying is requested. */ static int session_closed; /* In SSH2: login session closed. */ static u_int x11_refuse_time; /* If >0, refuse x11 opens after this time. */ static time_t server_alive_time; /* Time to do server_alive_check */ +static int hostkeys_update_complete; +static int session_setup_complete; static void client_init_dispatch(struct ssh *ssh); int session_ident = -1; @@ -516,16 +518,15 @@ client_wait_until_can_do_something(struct ssh *ssh, struct pollfd **pfdp, u_int *npfd_allocp, u_int *npfd_activep, int rekeying, int *conn_in_readyp, int *conn_out_readyp) { - int timeout_secs, pollwait; - time_t minwait_secs = 0, now = monotime(); + struct timespec timeout; int ret; u_int p; *conn_in_readyp = *conn_out_readyp = 0; /* Prepare channel poll. First two pollfd entries are reserved */ - channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, 2, - &minwait_secs); + ptimeout_init(&timeout); + channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, 2, &timeout); if (*npfd_activep < 2) fatal_f("bad npfd %u", *npfd_activep); /* shouldn't happen */ @@ -549,30 +550,17 @@ client_wait_until_can_do_something(struct ssh *ssh, struct pollfd **pfdp, * some polled descriptor can be read, written, or has some other * event pending, or a timeout expires. */ - - timeout_secs = INT_MAX; /* we use INT_MAX to mean no timeout */ - if (options.server_alive_interval > 0) - timeout_secs = MAXIMUM(server_alive_time - now, 0); - if (options.rekey_interval > 0 && !rekeying) - timeout_secs = MINIMUM(timeout_secs, - ssh_packet_get_rekey_timeout(ssh)); set_control_persist_exit_time(ssh); - if (control_persist_exit_time > 0) { - timeout_secs = MINIMUM(timeout_secs, - control_persist_exit_time - now); - if (timeout_secs < 0) - timeout_secs = 0; + if (control_persist_exit_time > 0) + ptimeout_deadline_monotime(&timeout, control_persist_exit_time); + if (options.server_alive_interval > 0) + ptimeout_deadline_monotime(&timeout, server_alive_time); + if (options.rekey_interval > 0 && !rekeying) { + ptimeout_deadline_sec(&timeout, + ssh_packet_get_rekey_timeout(ssh)); } - if (minwait_secs != 0) - timeout_secs = MINIMUM(timeout_secs, (int)minwait_secs); - if (timeout_secs == INT_MAX) - pollwait = -1; - else if (timeout_secs >= INT_MAX / 1000) - pollwait = INT_MAX; - else - pollwait = timeout_secs * 1000; - ret = poll(*pfdp, *npfd_activep, pollwait); + ret = poll(*pfdp, *npfd_activep, ptimeout_get_ms(&timeout)); if (ret == -1) { /* @@ -757,6 +745,72 @@ client_register_global_confirm(global_confirm_cb *cb, void *ctx) TAILQ_INSERT_TAIL(&global_confirms, gc, entry); } +/* + * Returns non-zero if the client is able to handle a hostkeys-00@openssh.com + * hostkey update request. + */ +static int +can_update_hostkeys(void) +{ + if (hostkeys_update_complete) + return 0; + if (options.update_hostkeys == SSH_UPDATE_HOSTKEYS_ASK && + options.batch_mode) + return 0; /* won't ask in batchmode, so don't even try */ + if (!options.update_hostkeys || options.num_user_hostfiles <= 0) + return 0; + return 1; +} + +static void +client_repledge(void) +{ + debug3_f("enter"); + + /* Might be able to tighten pledge now that session is established */ + if (options.control_master || options.control_path != NULL || + options.forward_x11 || options.fork_after_authentication || + can_update_hostkeys() || + (session_ident != -1 && !session_setup_complete)) { + /* Can't tighten */ + return; + } + /* + * LocalCommand and UpdateHostkeys have finished, so can get rid of + * filesystem. + * + * XXX protocol allows a server can to change hostkeys during the + * connection at rekey time that could trigger a hostkeys update + * but AFAIK no implementations support this. Could improve by + * forcing known_hosts to be read-only or via unveil(2). + */ + if (options.num_local_forwards != 0 || + options.num_remote_forwards != 0 || + options.num_permitted_remote_opens != 0 || + options.enable_escape_commandline != 0) { + /* rfwd needs inet */ + debug("pledge: network"); + if (pledge("stdio unix inet dns proc tty", NULL) == -1) + fatal_f("pledge(): %s", strerror(errno)); + } else if (options.forward_agent != 0) { + /* agent forwarding needs to open $SSH_AUTH_SOCK at will */ + debug("pledge: agent"); + if (pledge("stdio unix proc tty", NULL) == -1) + fatal_f("pledge(): %s", strerror(errno)); + } else { + debug("pledge: fork"); + if (pledge("stdio proc tty", NULL) == -1) + fatal_f("pledge(): %s", strerror(errno)); + } + /* XXX further things to do: + * + * - might be able to get rid of proc if we kill ~^Z + * - ssh -N (no session) + * - stdio forwarding + * - sessions without tty + */ +} + static void process_cmdline(struct ssh *ssh) { @@ -846,8 +900,15 @@ process_cmdline(struct ssh *ssh) } logit("Canceled forwarding."); } else { - if (!parse_forward(&fwd, s, dynamic, remote)) { - logit("Bad forwarding specification."); + /* -R specs can be both dynamic or not, so check both. */ + if (remote) { + if (!parse_forward(&fwd, s, 0, remote) && + !parse_forward(&fwd, s, 1, remote)) { + logit("Bad remote forwarding specification."); + goto out; + } + } else if (!parse_forward(&fwd, s, dynamic, remote)) { + logit("Bad local forwarding specification."); goto out; } if (local || dynamic) { @@ -880,6 +941,7 @@ process_cmdline(struct ssh *ssh) #define SUPPRESS_MUXCLIENT 1 /* don't show in mux client sessions */ #define SUPPRESS_MUXMASTER 2 /* don't show in mux master sessions */ #define SUPPRESS_SYSLOG 4 /* don't show when logging to syslog */ +#define SUPPRESS_NOCMDLINE 8 /* don't show when cmdline disabled*/ struct escape_help_text { const char *cmd; const char *text; @@ -890,7 +952,7 @@ static struct escape_help_text esc_txt[] = { {".", "terminate connection (and any multiplexed sessions)", SUPPRESS_MUXCLIENT}, {"B", "send a BREAK to the remote system", SUPPRESS_NEVER}, - {"C", "open a command line", SUPPRESS_MUXCLIENT}, + {"C", "open a command line", SUPPRESS_MUXCLIENT|SUPPRESS_NOCMDLINE}, {"R", "request rekey", SUPPRESS_NEVER}, {"V/v", "decrease/increase verbosity (LogLevel)", SUPPRESS_MUXCLIENT}, {"^Z", "suspend ssh", SUPPRESS_MUXCLIENT}, @@ -914,7 +976,8 @@ print_escape_help(struct sshbuf *b, int escape_char, int mux_client, suppress_flags = (mux_client ? SUPPRESS_MUXCLIENT : 0) | (mux_client ? 0 : SUPPRESS_MUXMASTER) | - (using_stderr ? 0 : SUPPRESS_SYSLOG); + (using_stderr ? 0 : SUPPRESS_SYSLOG) | + (options.enable_escape_commandline == 0 ? SUPPRESS_NOCMDLINE : 0); for (i = 0; i < sizeof(esc_txt)/sizeof(esc_txt[0]); i++) { if (esc_txt[i].flags & suppress_flags) @@ -970,15 +1033,7 @@ process_escapes(struct ssh *ssh, Channel *c, efc->escape_char)) != 0) fatal_fr(r, "sshbuf_putf"); if (c && c->ctl_chan != -1) { - chan_read_failed(ssh, c); - chan_write_failed(ssh, c); - if (c->detach_user) { - c->detach_user(ssh, - c->self, NULL); - } - c->type = SSH_CHANNEL_ABANDONED; - sshbuf_reset(c->input); - chan_ibuf_empty(ssh, c); + channel_force_close(ssh, c, 1); return 0; } else quit_pending = 1; @@ -1108,6 +1163,12 @@ process_escapes(struct ssh *ssh, Channel *c, case 'C': if (c && c->ctl_chan != -1) goto noescape; + if (options.enable_escape_commandline == 0) { + if ((r = sshbuf_putf(berr, + "commandline disabled\r\n")) != 0) + fatal_fr(r, "sshbuf_putf"); + continue; + } process_cmdline(ssh); continue; @@ -1198,7 +1259,7 @@ client_simple_escape_filter(struct ssh *ssh, Channel *c, char *buf, int len) } static void -client_channel_closed(struct ssh *ssh, int id, void *arg) +client_channel_closed(struct ssh *ssh, int id, int force, void *arg) { channel_cancel_cleanup(ssh, id); session_closed = 1; @@ -1223,6 +1284,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, int conn_in_ready, conn_out_ready; debug("Entering interactive session."); + session_ident = ssh2_chan_id; if (options.control_master && !option_clear_or_none(options.control_path)) { @@ -1255,6 +1317,9 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, fatal_f("pledge(): %s", strerror(errno)); } + /* might be able to tighten now */ + client_repledge(); + start_time = monotime_double(); /* Initialize variables. */ @@ -1288,7 +1353,6 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, if (have_pty) enter_raw_mode(options.request_tty == REQUEST_TTY_FORCE); - session_ident = ssh2_chan_id; if (session_ident != -1) { if (escape_char_arg != SSH_ESCAPECHAR_NONE) { channel_register_filter(ssh, session_ident, @@ -1792,7 +1856,7 @@ struct hostkeys_update_ctx { * Keys received from the server and a flag for each indicating * whether they already exist in known_hosts. * keys_match is filled in by hostkeys_find() and later (for new - * keys) by client_global_hostkeys_private_confirm(). + * keys) by client_global_hostkeys_prove_confirm(). */ struct sshkey **keys; u_int *keys_match; /* mask of HKF_MATCH_* from hostfile.h */ @@ -2100,7 +2164,7 @@ update_known_hosts(struct hostkeys_update_ctx *ctx) } static void -client_global_hostkeys_private_confirm(struct ssh *ssh, int type, +client_global_hostkeys_prove_confirm(struct ssh *ssh, int type, u_int32_t seq, void *_ctx) { struct hostkeys_update_ctx *ctx = (struct hostkeys_update_ctx *)_ctx; @@ -2194,6 +2258,8 @@ client_global_hostkeys_private_confirm(struct ssh *ssh, int type, update_known_hosts(ctx); out: hostkeys_update_ctx_free(ctx); + hostkeys_update_complete = 1; + client_repledge(); } /* @@ -2227,7 +2293,7 @@ client_input_hostkeys(struct ssh *ssh) size_t i, len = 0; struct sshbuf *buf = NULL; struct sshkey *key = NULL, **tmp; - int r; + int r, prove_sent = 0; char *fp; static int hostkeys_seen = 0; /* XXX use struct ssh */ extern struct sockaddr_storage hostaddr; /* XXX from ssh.c */ @@ -2236,11 +2302,9 @@ client_input_hostkeys(struct ssh *ssh) if (hostkeys_seen) fatal_f("server already sent hostkeys"); - if (options.update_hostkeys == SSH_UPDATE_HOSTKEYS_ASK && - options.batch_mode) - return 1; /* won't ask in batchmode, so don't even try */ - if (!options.update_hostkeys || options.num_user_hostfiles <= 0) + if (!can_update_hostkeys()) return 1; + hostkeys_seen = 1; ctx = xcalloc(1, sizeof(*ctx)); while (ssh_packet_remaining(ssh) > 0) { @@ -2407,14 +2471,20 @@ client_input_hostkeys(struct ssh *ssh) if ((r = sshpkt_send(ssh)) != 0) fatal_fr(r, "send hostkeys-prove"); client_register_global_confirm( - client_global_hostkeys_private_confirm, ctx); + client_global_hostkeys_prove_confirm, ctx); ctx = NULL; /* will be freed in callback */ + prove_sent = 1; /* Success */ out: hostkeys_update_ctx_free(ctx); sshkey_free(key); sshbuf_free(buf); + if (!prove_sent) { + /* UpdateHostkeys handling completed */ + hostkeys_update_complete = 1; + client_repledge(); + } /* * NB. Return success for all cases. The server doesn't need to know * what the client does with its hosts file. @@ -2570,6 +2640,9 @@ client_session2_setup(struct ssh *ssh, int id, int want_tty, int want_subsystem, if ((r = sshpkt_send(ssh)) != 0) fatal_fr(r, "send shell"); } + + session_setup_complete = 1; + client_repledge(); } static void diff --git a/crypto/openssh/config.guess b/crypto/openssh/config.guess index 11fda528bc7b..980b02083815 100755 --- a/crypto/openssh/config.guess +++ b/crypto/openssh/config.guess @@ -1,12 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2020 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. -timestamp='2020-04-26' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-09-17' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -27,11 +29,19 @@ timestamp='2020-04-26' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ @@ -50,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2020 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,6 +94,9 @@ if test $# != 0; then exit 1 fi +# Just in case it came from the environment. +GUESS= + # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -102,7 +115,7 @@ set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 + # shellcheck disable=SC2039,SC3028 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || @@ -112,7 +125,7 @@ set_cc_for_build() { ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$driver" + CC_FOR_BUILD=$driver break fi done @@ -133,14 +146,12 @@ fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" @@ -149,24 +160,37 @@ Linux|GNU|GNU/*) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -178,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; @@ -192,13 +216,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown + machine=${arch}${endian}-unknown ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; @@ -219,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` @@ -230,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; @@ -241,51 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi-}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; *:OS108:*:*) - echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; + GUESS=$UNAME_MACHINE-unknown-sortix + ;; *:Twizzler:*:*) - echo "$UNAME_MACHINE"-unknown-twizzler - exit ;; + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; + GUESS=$UNAME_MACHINE-unknown-redox + ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -299,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -336,117 +366,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in + case `/bin/arch` in sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -456,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -518,75 +552,76 @@ EOF dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux"$UNAME_RELEASE" + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux"$UNAME_RELEASE" + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build @@ -603,16 +638,16 @@ EOF EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then @@ -620,56 +655,56 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; + GUESS=rs6000-ibm-aix + ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "$HP_ARCH" = "" ]; then + if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -708,7 +743,7 @@ EOF test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ "$HP_ARCH" = hppa2.0w ] + if test "$HP_ARCH" = hppa2.0w then set_cc_for_build @@ -729,12 +764,12 @@ EOF HP_ARCH=hppa64 fi fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -764,36 +799,36 @@ EOF EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo "$UNAME_MACHINE"-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -801,17 +836,18 @@ EOF fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ @@ -819,112 +855,133 @@ EOF -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else - echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi - exit ;; + ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-pc-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; *:Minix:*:*) - echo "$UNAME_MACHINE"-unknown-minix - exit ;; + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -937,60 +994,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 @@ -1035,113 +1095,135 @@ EOF #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`" + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; + GUESS=or1k-unknown-linux-$LIBC + ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac + fi + GUESS=$CPU-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in @@ -1149,12 +1231,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1164,11 +1246,11 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1176,31 +1258,31 @@ EOF # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) @@ -1225,113 +1307,119 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv"$UNAME_RELEASE" + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in @@ -1346,7 +1434,7 @@ EOF else set_cc_for_build fi - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null @@ -1367,109 +1455,119 @@ EOF # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; + GUESS=i386-pc-qnx + ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - # shellcheck disable=SC2154 - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; + GUESS=x86_64-unknown-onefs + ;; *:Unleashed:*:*) - echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; esac +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" </dev/null && SYSTEM_NAME=`$dummy` && +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. @@ -1609,7 +1707,7 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 -case "$UNAME_MACHINE:$UNAME_SYSTEM" in +case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1528,6 +1531,7 @@ else # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. +kernel= case $cpu-$vendor in score-*) os=elf @@ -1539,7 +1543,8 @@ case $cpu-$vendor in os=riscix1.2 ;; arm*-rebel) - os=linux + kernel=linux + os=gnu ;; arm*-semi) os=aout @@ -1705,84 +1710,193 @@ case $cpu-$vendor in os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | relibc* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* | serenity* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ + | fiwix* | mlibc* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + kernel* ) + # Restricted further below + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) + ;; + uclinux-uclibc* ) + ;; + managarm-mlibc* | managarm-kernel* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + -kernel* ) + echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + *-kernel* ) + echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) - case $os in - riscix*) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - sunos*) + *-sunos*) vendor=sun ;; - cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - beos*) + *-beos*) vendor=be ;; - hpux*) + *-hpux*) vendor=hp ;; - mpeix*) + *-mpeix*) vendor=hp ;; - hiux*) + *-hiux*) vendor=hitachi ;; - unos*) + *-unos*) vendor=crds ;; - dgux*) + *-dgux*) vendor=dg ;; - luna*) + *-luna*) vendor=omron ;; - genix*) + *-genix*) vendor=ns ;; - clix*) + *-clix*) vendor=intergraph ;; - mvs* | opened*) + *-mvs* | *-opened*) vendor=ibm ;; - os400*) + *-os400*) vendor=ibm ;; - ptx*) + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) vendor=sequent ;; - tpf*) + *-tpf*) vendor=ibm ;; - vxsim* | vxworks* | windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - aux*) + *-aux*) vendor=apple ;; - hms*) + *-hms*) vendor=hitachi ;; - mpw* | macos*) + *-mpw* | *-macos*) vendor=apple ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - vos*) + *-vos*) vendor=stratus ;; esac ;; esac -echo "$cpu-$vendor-$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: diff --git a/crypto/openssh/configure.ac b/crypto/openssh/configure.ac index 56da82b81756..c5060c59ddf4 100644 --- a/crypto/openssh/configure.ac +++ b/crypto/openssh/configure.ac @@ -130,10 +130,12 @@ AC_CHECK_DECL([PR_SET_NO_NEW_PRIVS], [have_linux_no_new_privs=1], , [ ]) openssl=yes +openssl_bin=openssl AC_ARG_WITH([openssl], [ --without-openssl Disable use of OpenSSL; use only limited internal crypto **EXPERIMENTAL** ], [ if test "x$withval" = "xno" ; then openssl=no + openssl_bin="" fi ] ) @@ -172,6 +174,22 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int main(void) { return 0; }]])], CFLAGS="$saved_CFLAGS" if test "$GCC" = "yes" || test "$GCC" = "egcs"; then + AC_MSG_CHECKING([gcc version]) + GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'` + case "$GCC_VER" in + 1.*) no_attrib_nonnull=1 ;; + 2.8* | 2.9*) + no_attrib_nonnull=1 + ;; + 2.*) no_attrib_nonnull=1 ;; + *) ;; + esac + AC_MSG_RESULT([$GCC_VER]) + + AC_MSG_CHECKING([clang version]) + CLANG_VER=`$CC -v 2>&1 | $AWK '/clang version /{print $3}'` + AC_MSG_RESULT([$CLANG_VER]) + OSSH_CHECK_CFLAG_COMPILE([-pipe]) OSSH_CHECK_CFLAG_COMPILE([-Wunknown-warning-option]) OSSH_CHECK_CFLAG_COMPILE([-Wno-error=format-truncation]) @@ -203,20 +221,15 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then # actually links. The test program compiled/linked includes a number # of integer operations that should exercise this. OSSH_CHECK_CFLAG_LINK([-ftrapv]) - OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=all]) + # clang 15 seems to have a bug in -fzero-call-used-regs=all. See + # https://bugzilla.mindrot.org/show_bug.cgi?id=3475 and + # https://github.com/llvm/llvm-project/issues/59242 + case "$CLANG_VER" in + 15.*) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=used]) ;; + *) OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=all]) ;; + esac OSSH_CHECK_CFLAG_COMPILE([-ftrivial-auto-var-init=zero]) fi - AC_MSG_CHECKING([gcc version]) - GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'` - case $GCC_VER in - 1.*) no_attrib_nonnull=1 ;; - 2.8* | 2.9*) - no_attrib_nonnull=1 - ;; - 2.*) no_attrib_nonnull=1 ;; - *) ;; - esac - AC_MSG_RESULT([$GCC_VER]) AC_MSG_CHECKING([if $CC accepts -fno-builtin-memset]) saved_CFLAGS="$CFLAGS" @@ -417,6 +430,14 @@ AC_ARG_WITH([Werror], ] ) +dnl On some old platforms, sys/stat.h requires sys/types.h, but autoconf-2.71's +dnl AC_CHECK_INCLUDES_DEFAULT checks for them in the opposite order. If we +dnl haven't detected it, recheck. +if test "x$ac_cv_header_sys_stat_h" != "xyes"; then + unset ac_cv_header_sys_stat_h + AC_CHECK_HEADERS([sys/stat.h]) +fi + AC_CHECK_HEADERS([ \ blf.h \ bstring.h \ @@ -475,7 +496,6 @@ AC_CHECK_HEADERS([ \ sys/ptrace.h \ sys/random.h \ sys/select.h \ - sys/stat.h \ sys/stream.h \ sys/stropts.h \ sys/strtio.h \ @@ -713,7 +733,7 @@ case "$host" in AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include #include -main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) +int main(void) { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) exit(0); else exit(1); @@ -863,7 +883,8 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) check_for_openpty_ctty_bug=1 dnl Target SUSv3/POSIX.1-2001 plus BSD specifics. dnl _DEFAULT_SOURCE is the new name for _BSD_SOURCE - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE" + dnl _GNU_SOURCE is needed for setres*id prototypes. + CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_GNU_SOURCE" AC_DEFINE([BROKEN_CLOSEFROM], [1], [broken in chroots on older kernels]) AC_DEFINE([PAM_TTY_KLUDGE], [1], [Work around problematic Linux PAM modules handling of PAM_TTY]) @@ -1713,7 +1734,7 @@ AC_ARG_WITH(ldns, # include #endif #include -int main() { ldns_status status = ldns_verify_trusted(NULL, NULL, NULL, NULL); status=LDNS_STATUS_OK; exit(0); } +int main(void) { ldns_status status = ldns_verify_trusted(NULL, NULL, NULL, NULL); status=LDNS_STATUS_OK; exit(0); } ]]) ], [AC_MSG_RESULT(yes)], @@ -2225,8 +2246,9 @@ AC_CHECK_FUNCS([setresuid], [ AC_MSG_CHECKING([if setresuid seems to work]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ -#include #include +#include +#include ]], [[ errno=0; setresuid(0,0,0); @@ -2248,8 +2270,9 @@ AC_CHECK_FUNCS([setresgid], [ AC_MSG_CHECKING([if setresgid seems to work]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ -#include #include +#include +#include ]], [[ errno=0; setresgid(0,0,0); @@ -2430,6 +2453,9 @@ if test ! -z "$check_for_openpty_ctty_bug"; then #include #include #include +#ifdef HAVE_PTY_H +# include +#endif #include #include #include @@ -2714,6 +2740,7 @@ AC_CHECK_FUNCS([getpgrp],[ # Search for OpenSSL saved_CPPFLAGS="$CPPFLAGS" saved_LDFLAGS="$LDFLAGS" +openssl_bin_PATH="$PATH" AC_ARG_WITH([ssl-dir], [ --with-ssl-dir=PATH Specify path to OpenSSL installation ], [ @@ -2743,9 +2770,12 @@ AC_ARG_WITH([ssl-dir], else CPPFLAGS="-I${withval} ${CPPFLAGS}" fi + openssl_bin_PATH="${PATH}${PATH_SEPARATOR}${withval}/bin${PATH_SEPARATOR}${withval}/apps" fi ] ) +AC_PATH_PROGS([openssl_bin], openssl, [], [$openssl_bin_PATH]) +AC_SUBST(OPENSSL_BIN, [${openssl_bin}]) AC_ARG_WITH([openssl-header-check], [ --without-openssl-header-check Disable OpenSSL version consistency check], @@ -2869,7 +2899,7 @@ if test "x$openssl" = "xyes" ; then # OpenSSL 3; we use the 1.1x API CPPFLAGS="$CPPFLAGS -DOPENSSL_API_COMPAT=0x10100000L" ;; - 301*) + 301*|302*) # OpenSSL development branch; request 1.1x API CPPFLAGS="$CPPFLAGS -DOPENSSL_API_COMPAT=0x10100000L" ;; @@ -3272,7 +3302,7 @@ if test "x$enable_sk" = "xyes" -a "x$enable_sk_internal" != "xno" ; then [Enable for built-in U2F/FIDO support]) enable_sk="built-in" saved_LIBS="$LIBS" - LIBS="$LIBS $LIBFIDO2" + LIBS="$LIBFIDO2 $LIBS" AC_CHECK_FUNCS([ \ fido_assert_set_clientdata \ fido_cred_prot \ @@ -4316,7 +4346,7 @@ dnl test snprintf (broken on SCO w/gcc) #include #include #ifdef HAVE_SNPRINTF -main() +int main(void) { char buf[50]; char expected_out[50]; @@ -4333,7 +4363,7 @@ main() exit(0); } #else -main() { exit(0); } +int main(void) { exit(0); } #endif ]])], [ true ], [ AC_DEFINE([BROKEN_SNPRINTF]) ], AC_MSG_WARN([cross compiling: Assuming working snprintf()]) @@ -4382,6 +4412,16 @@ AC_CHECK_MEMBER([struct __res_state.retrans], [], [AC_DEFINE([__res_state], [sta #include ]]) +AC_CHECK_MEMBER([struct sockaddr_in.sin_len], + [AC_DEFINE([SOCK_HAS_LEN], [1], [sockaddr_in has sin_len])], + [], + [AC_LANG_SOURCE([[ +#include +#include +#include + ]])] +) + AC_CACHE_CHECK([for ss_family field in struct sockaddr_storage], ac_cv_have_ss_family_in_struct_ss, [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ diff --git a/crypto/openssh/contrib/redhat/openssh.spec b/crypto/openssh/contrib/redhat/openssh.spec index 124afccd1dcb..423079a03c78 100644 --- a/crypto/openssh/contrib/redhat/openssh.spec +++ b/crypto/openssh/contrib/redhat/openssh.spec @@ -1,4 +1,4 @@ -%global ver 9.1p1 +%global ver 9.2p1 %global rel 1%{?dist} # OpenSSH privilege separation requires a user & group ID diff --git a/crypto/openssh/contrib/suse/openssh.spec b/crypto/openssh/contrib/suse/openssh.spec index 32bd8c189b87..e533ed542ce1 100644 --- a/crypto/openssh/contrib/suse/openssh.spec +++ b/crypto/openssh/contrib/suse/openssh.spec @@ -13,7 +13,7 @@ Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation Name: openssh -Version: 9.1p1 +Version: 9.2p1 URL: https://www.openssh.com/ Release: 1 Source0: openssh-%{version}.tar.gz diff --git a/crypto/openssh/crypto_api.h b/crypto/openssh/crypto_api.h index 5c3d97eaa401..5d552ef02370 100644 --- a/crypto/openssh/crypto_api.h +++ b/crypto/openssh/crypto_api.h @@ -1,4 +1,4 @@ -/* $OpenBSD: crypto_api.h,v 1.7 2021/01/08 02:33:13 dtucker Exp $ */ +/* $OpenBSD: crypto_api.h,v 1.8 2023/01/15 23:05:32 djm Exp $ */ /* * Assembled from generated headers and source files by Markus Friedl. @@ -32,8 +32,6 @@ typedef uint64_t crypto_uint64; int crypto_hash_sha512(unsigned char *, const unsigned char *, unsigned long long); -int crypto_verify_32(const unsigned char *, const unsigned char *); - #define crypto_sign_ed25519_SECRETKEYBYTES 64U #define crypto_sign_ed25519_PUBLICKEYBYTES 32U #define crypto_sign_ed25519_BYTES 64U diff --git a/crypto/openssh/ed25519.c b/crypto/openssh/ed25519.c index 767ec24d6df5..0e167ae1f6bc 100644 --- a/crypto/openssh/ed25519.c +++ b/crypto/openssh/ed25519.c @@ -1,104 +1,1989 @@ -/* $OpenBSD: ed25519.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */ +/* $OpenBSD: ed25519.c,v 1.4 2023/01/15 23:05:32 djm Exp $ */ /* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/ed25519.c + * Public Domain, Authors: + * - Daniel J. Bernstein + * - Niels Duif + * - Tanja Lange + * - lead: Peter Schwabe + * - Bo-Yin Yang */ #include "includes.h" + +#include + #include "crypto_api.h" -#include "ge25519.h" +#define int8 crypto_int8 +#define uint8 crypto_uint8 +#define int16 crypto_int16 +#define uint16 crypto_uint16 +#define int32 crypto_int32 +#define uint32 crypto_uint32 +#define int64 crypto_int64 +#define uint64 crypto_uint64 -static void get_hram(unsigned char *hram, const unsigned char *sm, const unsigned char *pk, unsigned char *playground, unsigned long long smlen) +/* from supercop-20221122/crypto_verify/32/ref/verify.c */ + +static int crypto_verify_32(const unsigned char *x,const unsigned char *y) { - unsigned long long i; + unsigned int differentbits = 0; +#define F(i) differentbits |= x[i] ^ y[i]; + F(0) + F(1) + F(2) + F(3) + F(4) + F(5) + F(6) + F(7) + F(8) + F(9) + F(10) + F(11) + F(12) + F(13) + F(14) + F(15) + F(16) + F(17) + F(18) + F(19) + F(20) + F(21) + F(22) + F(23) + F(24) + F(25) + F(26) + F(27) + F(28) + F(29) + F(30) + F(31) + return (1 & ((differentbits - 1) >> 8)) - 1; +} +/* from supercop-20221122/crypto_sign/ed25519/ref/fe25519.h */ +#ifndef FE25519_H +#define FE25519_H - for (i = 0;i < 32;++i) playground[i] = sm[i]; - for (i = 32;i < 64;++i) playground[i] = pk[i-32]; - for (i = 64;i < smlen;++i) playground[i] = sm[i]; - crypto_hash_sha512(hram,playground,smlen); +#define fe25519 crypto_sign_ed25519_ref_fe25519 +#define fe25519_freeze crypto_sign_ed25519_ref_fe25519_freeze +#define fe25519_unpack crypto_sign_ed25519_ref_fe25519_unpack +#define fe25519_pack crypto_sign_ed25519_ref_fe25519_pack +#define fe25519_iszero crypto_sign_ed25519_ref_fe25519_iszero +#define fe25519_iseq_vartime crypto_sign_ed25519_ref_fe25519_iseq_vartime +#define fe25519_cmov crypto_sign_ed25519_ref_fe25519_cmov +#define fe25519_setone crypto_sign_ed25519_ref_fe25519_setone +#define fe25519_setzero crypto_sign_ed25519_ref_fe25519_setzero +#define fe25519_neg crypto_sign_ed25519_ref_fe25519_neg +#define fe25519_getparity crypto_sign_ed25519_ref_fe25519_getparity +#define fe25519_add crypto_sign_ed25519_ref_fe25519_add +#define fe25519_sub crypto_sign_ed25519_ref_fe25519_sub +#define fe25519_mul crypto_sign_ed25519_ref_fe25519_mul +#define fe25519_square crypto_sign_ed25519_ref_fe25519_square +#define fe25519_invert crypto_sign_ed25519_ref_fe25519_invert +#define fe25519_pow2523 crypto_sign_ed25519_ref_fe25519_pow2523 + +typedef struct +{ + crypto_uint32 v[32]; +} +fe25519; + +static void fe25519_freeze(fe25519 *r); + +static void fe25519_unpack(fe25519 *r, const unsigned char x[32]); + +static void fe25519_pack(unsigned char r[32], const fe25519 *x); + +static int fe25519_iszero(const fe25519 *x); + +static int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y); + +static void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b); + +static void fe25519_setone(fe25519 *r); + +static void fe25519_setzero(fe25519 *r); + +static void fe25519_neg(fe25519 *r, const fe25519 *x); + +unsigned char fe25519_getparity(const fe25519 *x); + +static void fe25519_add(fe25519 *r, const fe25519 *x, const fe25519 *y); + +static void fe25519_sub(fe25519 *r, const fe25519 *x, const fe25519 *y); + +static void fe25519_mul(fe25519 *r, const fe25519 *x, const fe25519 *y); + +static void fe25519_square(fe25519 *r, const fe25519 *x); + +static void fe25519_invert(fe25519 *r, const fe25519 *x); + +static void fe25519_pow2523(fe25519 *r, const fe25519 *x); + +#endif +/* from supercop-20221122/crypto_sign/ed25519/ref/fe25519.c */ +#define WINDOWSIZE 1 /* Should be 1,2, or 4 */ +#define WINDOWMASK ((1<>= 31; /* 1: yes; 0: no */ + return x; +} + +static crypto_uint32 ge(crypto_uint32 a,crypto_uint32 b) /* 16-bit inputs */ +{ + unsigned int x = a; + x -= (unsigned int) b; /* 0..65535: yes; 4294901761..4294967295: no */ + x >>= 31; /* 0: yes; 1: no */ + x ^= 1; /* 1: yes; 0: no */ + return x; +} + +static crypto_uint32 times19(crypto_uint32 a) +{ + return (a << 4) + (a << 1) + a; +} + +static crypto_uint32 times38(crypto_uint32 a) +{ + return (a << 5) + (a << 2) + (a << 1); +} + +static void fe25519_reduce_add_sub(fe25519 *r) +{ + crypto_uint32 t; + int i,rep; + + for(rep=0;rep<4;rep++) + { + t = r->v[31] >> 7; + r->v[31] &= 127; + t = times19(t); + r->v[0] += t; + for(i=0;i<31;i++) + { + t = r->v[i] >> 8; + r->v[i+1] += t; + r->v[i] &= 255; + } + } +} + +static void reduce_mul(fe25519 *r) +{ + crypto_uint32 t; + int i,rep; + + for(rep=0;rep<2;rep++) + { + t = r->v[31] >> 7; + r->v[31] &= 127; + t = times19(t); + r->v[0] += t; + for(i=0;i<31;i++) + { + t = r->v[i] >> 8; + r->v[i+1] += t; + r->v[i] &= 255; + } + } +} + +/* reduction modulo 2^255-19 */ +static void fe25519_freeze(fe25519 *r) +{ + int i; + crypto_uint32 m = fe25519_equal(r->v[31],127); + for(i=30;i>0;i--) + m &= fe25519_equal(r->v[i],255); + m &= ge(r->v[0],237); + + m = -m; + + r->v[31] -= m&127; + for(i=30;i>0;i--) + r->v[i] -= m&255; + r->v[0] -= m&237; +} + +static void fe25519_unpack(fe25519 *r, const unsigned char x[32]) +{ + int i; + for(i=0;i<32;i++) r->v[i] = x[i]; + r->v[31] &= 127; +} + +/* Assumes input x being reduced below 2^255 */ +static void fe25519_pack(unsigned char r[32], const fe25519 *x) +{ + int i; + fe25519 y = *x; + fe25519_freeze(&y); + for(i=0;i<32;i++) + r[i] = y.v[i]; +} + +static int fe25519_iszero(const fe25519 *x) +{ + int i; + int r; + fe25519 t = *x; + fe25519_freeze(&t); + r = fe25519_equal(t.v[0],0); + for(i=1;i<32;i++) + r &= fe25519_equal(t.v[i],0); + return r; +} + +static int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y) +{ + int i; + fe25519 t1 = *x; + fe25519 t2 = *y; + fe25519_freeze(&t1); + fe25519_freeze(&t2); + for(i=0;i<32;i++) + if(t1.v[i] != t2.v[i]) return 0; + return 1; +} + +static void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b) +{ + int i; + crypto_uint32 mask = b; + mask = -mask; + for(i=0;i<32;i++) r->v[i] ^= mask & (x->v[i] ^ r->v[i]); +} + +unsigned char fe25519_getparity(const fe25519 *x) +{ + fe25519 t = *x; + fe25519_freeze(&t); + return t.v[0] & 1; +} + +static void fe25519_setone(fe25519 *r) +{ + int i; + r->v[0] = 1; + for(i=1;i<32;i++) r->v[i]=0; +} + +static void fe25519_setzero(fe25519 *r) +{ + int i; + for(i=0;i<32;i++) r->v[i]=0; +} + +static void fe25519_neg(fe25519 *r, const fe25519 *x) +{ + fe25519 t; + int i; + for(i=0;i<32;i++) t.v[i]=x->v[i]; + fe25519_setzero(r); + fe25519_sub(r, r, &t); +} + +static void fe25519_add(fe25519 *r, const fe25519 *x, const fe25519 *y) +{ + int i; + for(i=0;i<32;i++) r->v[i] = x->v[i] + y->v[i]; + fe25519_reduce_add_sub(r); +} + +static void fe25519_sub(fe25519 *r, const fe25519 *x, const fe25519 *y) +{ + int i; + crypto_uint32 t[32]; + t[0] = x->v[0] + 0x1da; + t[31] = x->v[31] + 0xfe; + for(i=1;i<31;i++) t[i] = x->v[i] + 0x1fe; + for(i=0;i<32;i++) r->v[i] = t[i] - y->v[i]; + fe25519_reduce_add_sub(r); +} + +static void fe25519_mul(fe25519 *r, const fe25519 *x, const fe25519 *y) +{ + int i,j; + crypto_uint32 t[63]; + for(i=0;i<63;i++)t[i] = 0; + + for(i=0;i<32;i++) + for(j=0;j<32;j++) + t[i+j] += x->v[i] * y->v[j]; + + for(i=32;i<63;i++) + r->v[i-32] = t[i-32] + times38(t[i]); + r->v[31] = t[31]; /* result now in r[0]...r[31] */ + + reduce_mul(r); +} + +static void fe25519_square(fe25519 *r, const fe25519 *x) +{ + fe25519_mul(r, x, x); +} + +static void fe25519_invert(fe25519 *r, const fe25519 *x) +{ + fe25519 z2; + fe25519 z9; + fe25519 z11; + fe25519 z2_5_0; + fe25519 z2_10_0; + fe25519 z2_20_0; + fe25519 z2_50_0; + fe25519 z2_100_0; + fe25519 t0; + fe25519 t1; + int i; + + /* 2 */ fe25519_square(&z2,x); + /* 4 */ fe25519_square(&t1,&z2); + /* 8 */ fe25519_square(&t0,&t1); + /* 9 */ fe25519_mul(&z9,&t0,x); + /* 11 */ fe25519_mul(&z11,&z9,&z2); + /* 22 */ fe25519_square(&t0,&z11); + /* 2^5 - 2^0 = 31 */ fe25519_mul(&z2_5_0,&t0,&z9); + + /* 2^6 - 2^1 */ fe25519_square(&t0,&z2_5_0); + /* 2^7 - 2^2 */ fe25519_square(&t1,&t0); + /* 2^8 - 2^3 */ fe25519_square(&t0,&t1); + /* 2^9 - 2^4 */ fe25519_square(&t1,&t0); + /* 2^10 - 2^5 */ fe25519_square(&t0,&t1); + /* 2^10 - 2^0 */ fe25519_mul(&z2_10_0,&t0,&z2_5_0); + + /* 2^11 - 2^1 */ fe25519_square(&t0,&z2_10_0); + /* 2^12 - 2^2 */ fe25519_square(&t1,&t0); + /* 2^20 - 2^10 */ for (i = 2;i < 10;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } + /* 2^20 - 2^0 */ fe25519_mul(&z2_20_0,&t1,&z2_10_0); + + /* 2^21 - 2^1 */ fe25519_square(&t0,&z2_20_0); + /* 2^22 - 2^2 */ fe25519_square(&t1,&t0); + /* 2^40 - 2^20 */ for (i = 2;i < 20;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } + /* 2^40 - 2^0 */ fe25519_mul(&t0,&t1,&z2_20_0); + + /* 2^41 - 2^1 */ fe25519_square(&t1,&t0); + /* 2^42 - 2^2 */ fe25519_square(&t0,&t1); + /* 2^50 - 2^10 */ for (i = 2;i < 10;i += 2) { fe25519_square(&t1,&t0); fe25519_square(&t0,&t1); } + /* 2^50 - 2^0 */ fe25519_mul(&z2_50_0,&t0,&z2_10_0); + + /* 2^51 - 2^1 */ fe25519_square(&t0,&z2_50_0); + /* 2^52 - 2^2 */ fe25519_square(&t1,&t0); + /* 2^100 - 2^50 */ for (i = 2;i < 50;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } + /* 2^100 - 2^0 */ fe25519_mul(&z2_100_0,&t1,&z2_50_0); + + /* 2^101 - 2^1 */ fe25519_square(&t1,&z2_100_0); + /* 2^102 - 2^2 */ fe25519_square(&t0,&t1); + /* 2^200 - 2^100 */ for (i = 2;i < 100;i += 2) { fe25519_square(&t1,&t0); fe25519_square(&t0,&t1); } + /* 2^200 - 2^0 */ fe25519_mul(&t1,&t0,&z2_100_0); + + /* 2^201 - 2^1 */ fe25519_square(&t0,&t1); + /* 2^202 - 2^2 */ fe25519_square(&t1,&t0); + /* 2^250 - 2^50 */ for (i = 2;i < 50;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } + /* 2^250 - 2^0 */ fe25519_mul(&t0,&t1,&z2_50_0); + + /* 2^251 - 2^1 */ fe25519_square(&t1,&t0); + /* 2^252 - 2^2 */ fe25519_square(&t0,&t1); + /* 2^253 - 2^3 */ fe25519_square(&t1,&t0); + /* 2^254 - 2^4 */ fe25519_square(&t0,&t1); + /* 2^255 - 2^5 */ fe25519_square(&t1,&t0); + /* 2^255 - 21 */ fe25519_mul(r,&t1,&z11); +} + +static void fe25519_pow2523(fe25519 *r, const fe25519 *x) +{ + fe25519 z2; + fe25519 z9; + fe25519 z11; + fe25519 z2_5_0; + fe25519 z2_10_0; + fe25519 z2_20_0; + fe25519 z2_50_0; + fe25519 z2_100_0; + fe25519 t; + int i; + + /* 2 */ fe25519_square(&z2,x); + /* 4 */ fe25519_square(&t,&z2); + /* 8 */ fe25519_square(&t,&t); + /* 9 */ fe25519_mul(&z9,&t,x); + /* 11 */ fe25519_mul(&z11,&z9,&z2); + /* 22 */ fe25519_square(&t,&z11); + /* 2^5 - 2^0 = 31 */ fe25519_mul(&z2_5_0,&t,&z9); + + /* 2^6 - 2^1 */ fe25519_square(&t,&z2_5_0); + /* 2^10 - 2^5 */ for (i = 1;i < 5;i++) { fe25519_square(&t,&t); } + /* 2^10 - 2^0 */ fe25519_mul(&z2_10_0,&t,&z2_5_0); + + /* 2^11 - 2^1 */ fe25519_square(&t,&z2_10_0); + /* 2^20 - 2^10 */ for (i = 1;i < 10;i++) { fe25519_square(&t,&t); } + /* 2^20 - 2^0 */ fe25519_mul(&z2_20_0,&t,&z2_10_0); + + /* 2^21 - 2^1 */ fe25519_square(&t,&z2_20_0); + /* 2^40 - 2^20 */ for (i = 1;i < 20;i++) { fe25519_square(&t,&t); } + /* 2^40 - 2^0 */ fe25519_mul(&t,&t,&z2_20_0); + + /* 2^41 - 2^1 */ fe25519_square(&t,&t); + /* 2^50 - 2^10 */ for (i = 1;i < 10;i++) { fe25519_square(&t,&t); } + /* 2^50 - 2^0 */ fe25519_mul(&z2_50_0,&t,&z2_10_0); + + /* 2^51 - 2^1 */ fe25519_square(&t,&z2_50_0); + /* 2^100 - 2^50 */ for (i = 1;i < 50;i++) { fe25519_square(&t,&t); } + /* 2^100 - 2^0 */ fe25519_mul(&z2_100_0,&t,&z2_50_0); + + /* 2^101 - 2^1 */ fe25519_square(&t,&z2_100_0); + /* 2^200 - 2^100 */ for (i = 1;i < 100;i++) { fe25519_square(&t,&t); } + /* 2^200 - 2^0 */ fe25519_mul(&t,&t,&z2_100_0); + + /* 2^201 - 2^1 */ fe25519_square(&t,&t); + /* 2^250 - 2^50 */ for (i = 1;i < 50;i++) { fe25519_square(&t,&t); } + /* 2^250 - 2^0 */ fe25519_mul(&t,&t,&z2_50_0); + + /* 2^251 - 2^1 */ fe25519_square(&t,&t); + /* 2^252 - 2^2 */ fe25519_square(&t,&t); + /* 2^252 - 3 */ fe25519_mul(r,&t,x); +} +/* from supercop-20221122/crypto_sign/ed25519/ref/sc25519.h */ +#ifndef SC25519_H +#define SC25519_H + + +#define sc25519 crypto_sign_ed25519_ref_sc25519 +#define shortsc25519 crypto_sign_ed25519_ref_shortsc25519 +#define sc25519_from32bytes crypto_sign_ed25519_ref_sc25519_from32bytes +#define sc25519_from64bytes crypto_sign_ed25519_ref_sc25519_from64bytes +#define sc25519_to32bytes crypto_sign_ed25519_ref_sc25519_to32bytes +#define sc25519_add crypto_sign_ed25519_ref_sc25519_add +#define sc25519_mul crypto_sign_ed25519_ref_sc25519_mul +#define sc25519_window3 crypto_sign_ed25519_ref_sc25519_window3 +#define sc25519_2interleave2 crypto_sign_ed25519_ref_sc25519_2interleave2 + +typedef struct +{ + crypto_uint32 v[32]; +} +sc25519; + +typedef struct +{ + crypto_uint32 v[16]; +} +shortsc25519; + +static void sc25519_from32bytes(sc25519 *r, const unsigned char x[32]); + + +static void sc25519_from64bytes(sc25519 *r, const unsigned char x[64]); + + +static void sc25519_to32bytes(unsigned char r[32], const sc25519 *x); + + + + +static void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y); + + +static void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y); + + +/* Convert s into a representation of the form \sum_{i=0}^{84}r[i]2^3 + * with r[i] in {-4,...,3} + */ +static void sc25519_window3(signed char r[85], const sc25519 *s); + +/* Convert s into a representation of the form \sum_{i=0}^{50}r[i]2^5 + * with r[i] in {-16,...,15} + */ + +static void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2); + +#endif +/* from supercop-20221122/crypto_sign/ed25519/ref/sc25519.c */ + +/*Arithmetic modulo the group order m = 2^252 + 27742317777372353535851937790883648493 = 7237005577332262213973186563042994240857116359379907606001950938285454250989 */ + +static const crypto_uint32 sc25519_m[32] = {0xED, 0xD3, 0xF5, 0x5C, 0x1A, 0x63, 0x12, 0x58, 0xD6, 0x9C, 0xF7, 0xA2, 0xDE, 0xF9, 0xDE, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; + +static const crypto_uint32 sc25519_mu[33] = {0x1B, 0x13, 0x2C, 0x0A, 0xA3, 0xE5, 0x9C, 0xED, 0xA7, 0x29, 0x63, 0x08, 0x5D, 0x21, 0x06, 0x21, + 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F}; + +static crypto_uint32 lt(crypto_uint32 a,crypto_uint32 b) /* 16-bit inputs */ +{ + unsigned int x = a; + x -= (unsigned int) b; /* 0..65535: no; 4294901761..4294967295: yes */ + x >>= 31; /* 0: no; 1: yes */ + return x; +} + +/* Reduce coefficients of r before calling sc25519_reduce_add_sub */ +static void sc25519_reduce_add_sub(sc25519 *r) +{ + crypto_uint32 pb = 0; + crypto_uint32 b; + crypto_uint32 mask; + int i; + unsigned char t[32]; + + for(i=0;i<32;i++) + { + pb += sc25519_m[i]; + b = lt(r->v[i],pb); + t[i] = r->v[i]-pb+(b<<8); + pb = b; + } + mask = b - 1; + for(i=0;i<32;i++) + r->v[i] ^= mask & (r->v[i] ^ t[i]); +} + +/* Reduce coefficients of x before calling barrett_reduce */ +static void barrett_reduce(sc25519 *r, const crypto_uint32 x[64]) +{ + /* See HAC, Alg. 14.42 */ + int i,j; + crypto_uint32 q2[66]; + crypto_uint32 *q3 = q2 + 33; + crypto_uint32 r1[33]; + crypto_uint32 r2[33]; + crypto_uint32 carry; + crypto_uint32 pb = 0; + crypto_uint32 b; + + for (i = 0;i < 66;++i) q2[i] = 0; + for (i = 0;i < 33;++i) r2[i] = 0; + + for(i=0;i<33;i++) + for(j=0;j<33;j++) + if(i+j >= 31) q2[i+j] += sc25519_mu[i]*x[j+31]; + carry = q2[31] >> 8; + q2[32] += carry; + carry = q2[32] >> 8; + q2[33] += carry; + + for(i=0;i<33;i++)r1[i] = x[i]; + for(i=0;i<32;i++) + for(j=0;j<33;j++) + if(i+j < 33) r2[i+j] += sc25519_m[i]*q3[j]; + + for(i=0;i<32;i++) + { + carry = r2[i] >> 8; + r2[i+1] += carry; + r2[i] &= 0xff; + } + + for(i=0;i<32;i++) + { + pb += r2[i]; + b = lt(r1[i],pb); + r->v[i] = r1[i]-pb+(b<<8); + pb = b; + } + + /* XXX: Can it really happen that r<0?, See HAC, Alg 14.42, Step 3 + * If so: Handle it here! + */ + + sc25519_reduce_add_sub(r); + sc25519_reduce_add_sub(r); +} + +static void sc25519_from32bytes(sc25519 *r, const unsigned char x[32]) +{ + int i; + crypto_uint32 t[64]; + for(i=0;i<32;i++) t[i] = x[i]; + for(i=32;i<64;++i) t[i] = 0; + barrett_reduce(r, t); } -int crypto_sign_ed25519_keypair( - unsigned char *pk, - unsigned char *sk - ) +static void sc25519_from64bytes(sc25519 *r, const unsigned char x[64]) { - sc25519 scsk; - ge25519 gepk; - unsigned char extsk[64]; int i; + crypto_uint32 t[64]; + for(i=0;i<64;i++) t[i] = x[i]; + barrett_reduce(r, t); +} - randombytes(sk, 32); - crypto_hash_sha512(extsk, sk, 32); - extsk[0] &= 248; - extsk[31] &= 127; - extsk[31] |= 64; - sc25519_from32bytes(&scsk,extsk); - - ge25519_scalarmult_base(&gepk, &scsk); - ge25519_pack(pk, &gepk); +static void sc25519_to32bytes(unsigned char r[32], const sc25519 *x) +{ + int i; + for(i=0;i<32;i++) r[i] = x->v[i]; +} + + + + +static void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y) +{ + int i, carry; + for(i=0;i<32;i++) r->v[i] = x->v[i] + y->v[i]; + for(i=0;i<31;i++) + { + carry = r->v[i] >> 8; + r->v[i+1] += carry; + r->v[i] &= 0xff; + } + sc25519_reduce_add_sub(r); +} + + +static void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y) +{ + int i,j,carry; + crypto_uint32 t[64]; + for(i=0;i<64;i++)t[i] = 0; + for(i=0;i<32;i++) - sk[32 + i] = pk[i]; + for(j=0;j<32;j++) + t[i+j] += x->v[i] * y->v[j]; + + /* Reduce coefficients */ + for(i=0;i<63;i++) + { + carry = t[i] >> 8; + t[i+1] += carry; + t[i] &= 0xff; + } + + barrett_reduce(r, t); +} + + +static void sc25519_window3(signed char r[85], const sc25519 *s) +{ + char carry; + int i; + for(i=0;i<10;i++) + { + r[8*i+0] = s->v[3*i+0] & 7; + r[8*i+1] = (s->v[3*i+0] >> 3) & 7; + r[8*i+2] = (s->v[3*i+0] >> 6) & 7; + r[8*i+2] ^= (s->v[3*i+1] << 2) & 7; + r[8*i+3] = (s->v[3*i+1] >> 1) & 7; + r[8*i+4] = (s->v[3*i+1] >> 4) & 7; + r[8*i+5] = (s->v[3*i+1] >> 7) & 7; + r[8*i+5] ^= (s->v[3*i+2] << 1) & 7; + r[8*i+6] = (s->v[3*i+2] >> 2) & 7; + r[8*i+7] = (s->v[3*i+2] >> 5) & 7; + } + r[8*i+0] = s->v[3*i+0] & 7; + r[8*i+1] = (s->v[3*i+0] >> 3) & 7; + r[8*i+2] = (s->v[3*i+0] >> 6) & 7; + r[8*i+2] ^= (s->v[3*i+1] << 2) & 7; + r[8*i+3] = (s->v[3*i+1] >> 1) & 7; + r[8*i+4] = (s->v[3*i+1] >> 4) & 7; + + /* Making it signed */ + carry = 0; + for(i=0;i<84;i++) + { + r[i] += carry; + r[i+1] += r[i] >> 3; + r[i] &= 7; + carry = r[i] >> 2; + r[i] -= carry<<3; + } + r[84] += carry; +} + + +static void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2) +{ + int i; + for(i=0;i<31;i++) + { + r[4*i] = ( s1->v[i] & 3) ^ (( s2->v[i] & 3) << 2); + r[4*i+1] = ((s1->v[i] >> 2) & 3) ^ (((s2->v[i] >> 2) & 3) << 2); + r[4*i+2] = ((s1->v[i] >> 4) & 3) ^ (((s2->v[i] >> 4) & 3) << 2); + r[4*i+3] = ((s1->v[i] >> 6) & 3) ^ (((s2->v[i] >> 6) & 3) << 2); + } + r[124] = ( s1->v[31] & 3) ^ (( s2->v[31] & 3) << 2); + r[125] = ((s1->v[31] >> 2) & 3) ^ (((s2->v[31] >> 2) & 3) << 2); + r[126] = ((s1->v[31] >> 4) & 3) ^ (((s2->v[31] >> 4) & 3) << 2); +} +/* from supercop-20221122/crypto_sign/ed25519/ref/ge25519.h */ +#ifndef GE25519_H +#define GE25519_H + + +#define ge25519 crypto_sign_ed25519_ref_ge25519 +#define ge25519_base crypto_sign_ed25519_ref_ge25519_base +#define ge25519_unpackneg_vartime crypto_sign_ed25519_ref_unpackneg_vartime +#define ge25519_pack crypto_sign_ed25519_ref_pack +#define ge25519_isneutral_vartime crypto_sign_ed25519_ref_isneutral_vartime +#define ge25519_double_scalarmult_vartime crypto_sign_ed25519_ref_double_scalarmult_vartime +#define ge25519_scalarmult_base crypto_sign_ed25519_ref_scalarmult_base + +typedef struct +{ + fe25519 x; + fe25519 y; + fe25519 z; + fe25519 t; +} ge25519; + +const ge25519 ge25519_base; + +int ge25519_unpackneg_vartime(ge25519 *r, const unsigned char p[32]); + +static void ge25519_pack(unsigned char r[32], const ge25519 *p); + +int ge25519_isneutral_vartime(const ge25519 *p); + +static void ge25519_double_scalarmult_vartime(ge25519 *r, const ge25519 *p1, const sc25519 *s1, const ge25519 *p2, const sc25519 *s2); + +static void ge25519_scalarmult_base(ge25519 *r, const sc25519 *s); + +#endif +/* from supercop-20221122/crypto_sign/ed25519/ref/ge25519.c */ + +/* + * Arithmetic on the twisted Edwards curve -x^2 + y^2 = 1 + dx^2y^2 + * with d = -(121665/121666) = 37095705934669439343138083508754565189542113879843219016388785533085940283555 + * Base point: (15112221349535400772501151409588531511454012693041857206046113283949847762202,46316835694926478169428394003475163141307993866256225615783033603165251855960); + */ + +/* d */ +static const fe25519 ge25519_ecd = {{0xA3, 0x78, 0x59, 0x13, 0xCA, 0x4D, 0xEB, 0x75, 0xAB, 0xD8, 0x41, 0x41, 0x4D, 0x0A, 0x70, 0x00, + 0x98, 0xE8, 0x79, 0x77, 0x79, 0x40, 0xC7, 0x8C, 0x73, 0xFE, 0x6F, 0x2B, 0xEE, 0x6C, 0x03, 0x52}}; +/* 2*d */ +static const fe25519 ge25519_ec2d = {{0x59, 0xF1, 0xB2, 0x26, 0x94, 0x9B, 0xD6, 0xEB, 0x56, 0xB1, 0x83, 0x82, 0x9A, 0x14, 0xE0, 0x00, + 0x30, 0xD1, 0xF3, 0xEE, 0xF2, 0x80, 0x8E, 0x19, 0xE7, 0xFC, 0xDF, 0x56, 0xDC, 0xD9, 0x06, 0x24}}; +/* sqrt(-1) */ +static const fe25519 ge25519_sqrtm1 = {{0xB0, 0xA0, 0x0E, 0x4A, 0x27, 0x1B, 0xEE, 0xC4, 0x78, 0xE4, 0x2F, 0xAD, 0x06, 0x18, 0x43, 0x2F, + 0xA7, 0xD7, 0xFB, 0x3D, 0x99, 0x00, 0x4D, 0x2B, 0x0B, 0xDF, 0xC1, 0x4F, 0x80, 0x24, 0x83, 0x2B}}; + +#define ge25519_p3 ge25519 + +typedef struct +{ + fe25519 x; + fe25519 z; + fe25519 y; + fe25519 t; +} ge25519_p1p1; + +typedef struct +{ + fe25519 x; + fe25519 y; + fe25519 z; +} ge25519_p2; + +typedef struct +{ + fe25519 x; + fe25519 y; +} ge25519_aff; + + +/* Packed coordinates of the base point */ +const ge25519 ge25519_base = {{{0x1A, 0xD5, 0x25, 0x8F, 0x60, 0x2D, 0x56, 0xC9, 0xB2, 0xA7, 0x25, 0x95, 0x60, 0xC7, 0x2C, 0x69, + 0x5C, 0xDC, 0xD6, 0xFD, 0x31, 0xE2, 0xA4, 0xC0, 0xFE, 0x53, 0x6E, 0xCD, 0xD3, 0x36, 0x69, 0x21}}, + {{0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0xA3, 0xDD, 0xB7, 0xA5, 0xB3, 0x8A, 0xDE, 0x6D, 0xF5, 0x52, 0x51, 0x77, 0x80, 0x9F, 0xF0, 0x20, + 0x7D, 0xE3, 0xAB, 0x64, 0x8E, 0x4E, 0xEA, 0x66, 0x65, 0x76, 0x8B, 0xD7, 0x0F, 0x5F, 0x87, 0x67}}}; + +/* Multiples of the base point in affine representation */ +static const ge25519_aff ge25519_base_multiples_affine[425] = { +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x1a, 0xd5, 0x25, 0x8f, 0x60, 0x2d, 0x56, 0xc9, 0xb2, 0xa7, 0x25, 0x95, 0x60, 0xc7, 0x2c, 0x69, 0x5c, 0xdc, 0xd6, 0xfd, 0x31, 0xe2, 0xa4, 0xc0, 0xfe, 0x53, 0x6e, 0xcd, 0xd3, 0x36, 0x69, 0x21}} , + {{0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}}, +{{{0x0e, 0xce, 0x43, 0x28, 0x4e, 0xa1, 0xc5, 0x83, 0x5f, 0xa4, 0xd7, 0x15, 0x45, 0x8e, 0x0d, 0x08, 0xac, 0xe7, 0x33, 0x18, 0x7d, 0x3b, 0x04, 0x3d, 0x6c, 0x04, 0x5a, 0x9f, 0x4c, 0x38, 0xab, 0x36}} , + {{0xc9, 0xa3, 0xf8, 0x6a, 0xae, 0x46, 0x5f, 0x0e, 0x56, 0x51, 0x38, 0x64, 0x51, 0x0f, 0x39, 0x97, 0x56, 0x1f, 0xa2, 0xc9, 0xe8, 0x5e, 0xa2, 0x1d, 0xc2, 0x29, 0x23, 0x09, 0xf3, 0xcd, 0x60, 0x22}}}, +{{{0x5c, 0xe2, 0xf8, 0xd3, 0x5f, 0x48, 0x62, 0xac, 0x86, 0x48, 0x62, 0x81, 0x19, 0x98, 0x43, 0x63, 0x3a, 0xc8, 0xda, 0x3e, 0x74, 0xae, 0xf4, 0x1f, 0x49, 0x8f, 0x92, 0x22, 0x4a, 0x9c, 0xae, 0x67}} , + {{0xd4, 0xb4, 0xf5, 0x78, 0x48, 0x68, 0xc3, 0x02, 0x04, 0x03, 0x24, 0x67, 0x17, 0xec, 0x16, 0x9f, 0xf7, 0x9e, 0x26, 0x60, 0x8e, 0xa1, 0x26, 0xa1, 0xab, 0x69, 0xee, 0x77, 0xd1, 0xb1, 0x67, 0x12}}}, +{{{0x70, 0xf8, 0xc9, 0xc4, 0x57, 0xa6, 0x3a, 0x49, 0x47, 0x15, 0xce, 0x93, 0xc1, 0x9e, 0x73, 0x1a, 0xf9, 0x20, 0x35, 0x7a, 0xb8, 0xd4, 0x25, 0x83, 0x46, 0xf1, 0xcf, 0x56, 0xdb, 0xa8, 0x3d, 0x20}} , + {{0x2f, 0x11, 0x32, 0xca, 0x61, 0xab, 0x38, 0xdf, 0xf0, 0x0f, 0x2f, 0xea, 0x32, 0x28, 0xf2, 0x4c, 0x6c, 0x71, 0xd5, 0x80, 0x85, 0xb8, 0x0e, 0x47, 0xe1, 0x95, 0x15, 0xcb, 0x27, 0xe8, 0xd0, 0x47}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xc8, 0x84, 0xa5, 0x08, 0xbc, 0xfd, 0x87, 0x3b, 0x99, 0x8b, 0x69, 0x80, 0x7b, 0xc6, 0x3a, 0xeb, 0x93, 0xcf, 0x4e, 0xf8, 0x5c, 0x2d, 0x86, 0x42, 0xb6, 0x71, 0xd7, 0x97, 0x5f, 0xe1, 0x42, 0x67}} , + {{0xb4, 0xb9, 0x37, 0xfc, 0xa9, 0x5b, 0x2f, 0x1e, 0x93, 0xe4, 0x1e, 0x62, 0xfc, 0x3c, 0x78, 0x81, 0x8f, 0xf3, 0x8a, 0x66, 0x09, 0x6f, 0xad, 0x6e, 0x79, 0x73, 0xe5, 0xc9, 0x00, 0x06, 0xd3, 0x21}}}, +{{{0xf8, 0xf9, 0x28, 0x6c, 0x6d, 0x59, 0xb2, 0x59, 0x74, 0x23, 0xbf, 0xe7, 0x33, 0x8d, 0x57, 0x09, 0x91, 0x9c, 0x24, 0x08, 0x15, 0x2b, 0xe2, 0xb8, 0xee, 0x3a, 0xe5, 0x27, 0x06, 0x86, 0xa4, 0x23}} , + {{0xeb, 0x27, 0x67, 0xc1, 0x37, 0xab, 0x7a, 0xd8, 0x27, 0x9c, 0x07, 0x8e, 0xff, 0x11, 0x6a, 0xb0, 0x78, 0x6e, 0xad, 0x3a, 0x2e, 0x0f, 0x98, 0x9f, 0x72, 0xc3, 0x7f, 0x82, 0xf2, 0x96, 0x96, 0x70}}}, +{{{0x81, 0x6b, 0x88, 0xe8, 0x1e, 0xc7, 0x77, 0x96, 0x0e, 0xa1, 0xa9, 0x52, 0xe0, 0xd8, 0x0e, 0x61, 0x9e, 0x79, 0x2d, 0x95, 0x9c, 0x8d, 0x96, 0xe0, 0x06, 0x40, 0x5d, 0x87, 0x28, 0x5f, 0x98, 0x70}} , + {{0xf1, 0x79, 0x7b, 0xed, 0x4f, 0x44, 0xb2, 0xe7, 0x08, 0x0d, 0xc2, 0x08, 0x12, 0xd2, 0x9f, 0xdf, 0xcd, 0x93, 0x20, 0x8a, 0xcf, 0x33, 0xca, 0x6d, 0x89, 0xb9, 0x77, 0xc8, 0x93, 0x1b, 0x4e, 0x60}}}, +{{{0x26, 0x4f, 0x7e, 0x97, 0xf6, 0x40, 0xdd, 0x4f, 0xfc, 0x52, 0x78, 0xf9, 0x90, 0x31, 0x03, 0xe6, 0x7d, 0x56, 0x39, 0x0b, 0x1d, 0x56, 0x82, 0x85, 0xf9, 0x1a, 0x42, 0x17, 0x69, 0x6c, 0xcf, 0x39}} , + {{0x69, 0xd2, 0x06, 0x3a, 0x4f, 0x39, 0x2d, 0xf9, 0x38, 0x40, 0x8c, 0x4c, 0xe7, 0x05, 0x12, 0xb4, 0x78, 0x8b, 0xf8, 0xc0, 0xec, 0x93, 0xde, 0x7a, 0x6b, 0xce, 0x2c, 0xe1, 0x0e, 0xa9, 0x34, 0x44}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x0b, 0xa4, 0x3c, 0xb0, 0x0f, 0x7a, 0x51, 0xf1, 0x78, 0xd6, 0xd9, 0x6a, 0xfd, 0x46, 0xe8, 0xb8, 0xa8, 0x79, 0x1d, 0x87, 0xf9, 0x90, 0xf2, 0x9c, 0x13, 0x29, 0xf8, 0x0b, 0x20, 0x64, 0xfa, 0x05}} , + {{0x26, 0x09, 0xda, 0x17, 0xaf, 0x95, 0xd6, 0xfb, 0x6a, 0x19, 0x0d, 0x6e, 0x5e, 0x12, 0xf1, 0x99, 0x4c, 0xaa, 0xa8, 0x6f, 0x79, 0x86, 0xf4, 0x72, 0x28, 0x00, 0x26, 0xf9, 0xea, 0x9e, 0x19, 0x3d}}}, +{{{0x87, 0xdd, 0xcf, 0xf0, 0x5b, 0x49, 0xa2, 0x5d, 0x40, 0x7a, 0x23, 0x26, 0xa4, 0x7a, 0x83, 0x8a, 0xb7, 0x8b, 0xd2, 0x1a, 0xbf, 0xea, 0x02, 0x24, 0x08, 0x5f, 0x7b, 0xa9, 0xb1, 0xbe, 0x9d, 0x37}} , + {{0xfc, 0x86, 0x4b, 0x08, 0xee, 0xe7, 0xa0, 0xfd, 0x21, 0x45, 0x09, 0x34, 0xc1, 0x61, 0x32, 0x23, 0xfc, 0x9b, 0x55, 0x48, 0x53, 0x99, 0xf7, 0x63, 0xd0, 0x99, 0xce, 0x01, 0xe0, 0x9f, 0xeb, 0x28}}}, +{{{0x47, 0xfc, 0xab, 0x5a, 0x17, 0xf0, 0x85, 0x56, 0x3a, 0x30, 0x86, 0x20, 0x28, 0x4b, 0x8e, 0x44, 0x74, 0x3a, 0x6e, 0x02, 0xf1, 0x32, 0x8f, 0x9f, 0x3f, 0x08, 0x35, 0xe9, 0xca, 0x16, 0x5f, 0x6e}} , + {{0x1c, 0x59, 0x1c, 0x65, 0x5d, 0x34, 0xa4, 0x09, 0xcd, 0x13, 0x9c, 0x70, 0x7d, 0xb1, 0x2a, 0xc5, 0x88, 0xaf, 0x0b, 0x60, 0xc7, 0x9f, 0x34, 0x8d, 0xd6, 0xb7, 0x7f, 0xea, 0x78, 0x65, 0x8d, 0x77}}}, +{{{0x56, 0xa5, 0xc2, 0x0c, 0xdd, 0xbc, 0xb8, 0x20, 0x6d, 0x57, 0x61, 0xb5, 0xfb, 0x78, 0xb5, 0xd4, 0x49, 0x54, 0x90, 0x26, 0xc1, 0xcb, 0xe9, 0xe6, 0xbf, 0xec, 0x1d, 0x4e, 0xed, 0x07, 0x7e, 0x5e}} , + {{0xc7, 0xf6, 0x6c, 0x56, 0x31, 0x20, 0x14, 0x0e, 0xa8, 0xd9, 0x27, 0xc1, 0x9a, 0x3d, 0x1b, 0x7d, 0x0e, 0x26, 0xd3, 0x81, 0xaa, 0xeb, 0xf5, 0x6b, 0x79, 0x02, 0xf1, 0x51, 0x5c, 0x75, 0x55, 0x0f}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x0a, 0x34, 0xcd, 0x82, 0x3c, 0x33, 0x09, 0x54, 0xd2, 0x61, 0x39, 0x30, 0x9b, 0xfd, 0xef, 0x21, 0x26, 0xd4, 0x70, 0xfa, 0xee, 0xf9, 0x31, 0x33, 0x73, 0x84, 0xd0, 0xb3, 0x81, 0xbf, 0xec, 0x2e}} , + {{0xe8, 0x93, 0x8b, 0x00, 0x64, 0xf7, 0x9c, 0xb8, 0x74, 0xe0, 0xe6, 0x49, 0x48, 0x4d, 0x4d, 0x48, 0xb6, 0x19, 0xa1, 0x40, 0xb7, 0xd9, 0x32, 0x41, 0x7c, 0x82, 0x37, 0xa1, 0x2d, 0xdc, 0xd2, 0x54}}}, +{{{0x68, 0x2b, 0x4a, 0x5b, 0xd5, 0xc7, 0x51, 0x91, 0x1d, 0xe1, 0x2a, 0x4b, 0xc4, 0x47, 0xf1, 0xbc, 0x7a, 0xb3, 0xcb, 0xc8, 0xb6, 0x7c, 0xac, 0x90, 0x05, 0xfd, 0xf3, 0xf9, 0x52, 0x3a, 0x11, 0x6b}} , + {{0x3d, 0xc1, 0x27, 0xf3, 0x59, 0x43, 0x95, 0x90, 0xc5, 0x96, 0x79, 0xf5, 0xf4, 0x95, 0x65, 0x29, 0x06, 0x9c, 0x51, 0x05, 0x18, 0xda, 0xb8, 0x2e, 0x79, 0x7e, 0x69, 0x59, 0x71, 0x01, 0xeb, 0x1a}}}, +{{{0x15, 0x06, 0x49, 0xb6, 0x8a, 0x3c, 0xea, 0x2f, 0x34, 0x20, 0x14, 0xc3, 0xaa, 0xd6, 0xaf, 0x2c, 0x3e, 0xbd, 0x65, 0x20, 0xe2, 0x4d, 0x4b, 0x3b, 0xeb, 0x9f, 0x4a, 0xc3, 0xad, 0xa4, 0x3b, 0x60}} , + {{0xbc, 0x58, 0xe6, 0xc0, 0x95, 0x2a, 0x2a, 0x81, 0x9a, 0x7a, 0xf3, 0xd2, 0x06, 0xbe, 0x48, 0xbc, 0x0c, 0xc5, 0x46, 0xe0, 0x6a, 0xd4, 0xac, 0x0f, 0xd9, 0xcc, 0x82, 0x34, 0x2c, 0xaf, 0xdb, 0x1f}}}, +{{{0xf7, 0x17, 0x13, 0xbd, 0xfb, 0xbc, 0xd2, 0xec, 0x45, 0xb3, 0x15, 0x31, 0xe9, 0xaf, 0x82, 0x84, 0x3d, 0x28, 0xc6, 0xfc, 0x11, 0xf5, 0x41, 0xb5, 0x8b, 0xd3, 0x12, 0x76, 0x52, 0xe7, 0x1a, 0x3c}} , + {{0x4e, 0x36, 0x11, 0x07, 0xa2, 0x15, 0x20, 0x51, 0xc4, 0x2a, 0xc3, 0x62, 0x8b, 0x5e, 0x7f, 0xa6, 0x0f, 0xf9, 0x45, 0x85, 0x6c, 0x11, 0x86, 0xb7, 0x7e, 0xe5, 0xd7, 0xf9, 0xc3, 0x91, 0x1c, 0x05}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xea, 0xd6, 0xde, 0x29, 0x3a, 0x00, 0xb9, 0x02, 0x59, 0xcb, 0x26, 0xc4, 0xba, 0x99, 0xb1, 0x97, 0x2f, 0x8e, 0x00, 0x92, 0x26, 0x4f, 0x52, 0xeb, 0x47, 0x1b, 0x89, 0x8b, 0x24, 0xc0, 0x13, 0x7d}} , + {{0xd5, 0x20, 0x5b, 0x80, 0xa6, 0x80, 0x20, 0x95, 0xc3, 0xe9, 0x9f, 0x8e, 0x87, 0x9e, 0x1e, 0x9e, 0x7a, 0xc7, 0xcc, 0x75, 0x6c, 0xa5, 0xf1, 0x91, 0x1a, 0xa8, 0x01, 0x2c, 0xab, 0x76, 0xa9, 0x59}}}, +{{{0xde, 0xc9, 0xb1, 0x31, 0x10, 0x16, 0xaa, 0x35, 0x14, 0x6a, 0xd4, 0xb5, 0x34, 0x82, 0x71, 0xd2, 0x4a, 0x5d, 0x9a, 0x1f, 0x53, 0x26, 0x3c, 0xe5, 0x8e, 0x8d, 0x33, 0x7f, 0xff, 0xa9, 0xd5, 0x17}} , + {{0x89, 0xaf, 0xf6, 0xa4, 0x64, 0xd5, 0x10, 0xe0, 0x1d, 0xad, 0xef, 0x44, 0xbd, 0xda, 0x83, 0xac, 0x7a, 0xa8, 0xf0, 0x1c, 0x07, 0xf9, 0xc3, 0x43, 0x6c, 0x3f, 0xb7, 0xd3, 0x87, 0x22, 0x02, 0x73}}}, +{{{0x64, 0x1d, 0x49, 0x13, 0x2f, 0x71, 0xec, 0x69, 0x87, 0xd0, 0x42, 0xee, 0x13, 0xec, 0xe3, 0xed, 0x56, 0x7b, 0xbf, 0xbd, 0x8c, 0x2f, 0x7d, 0x7b, 0x9d, 0x28, 0xec, 0x8e, 0x76, 0x2f, 0x6f, 0x08}} , + {{0x22, 0xf5, 0x5f, 0x4d, 0x15, 0xef, 0xfc, 0x4e, 0x57, 0x03, 0x36, 0x89, 0xf0, 0xeb, 0x5b, 0x91, 0xd6, 0xe2, 0xca, 0x01, 0xa5, 0xee, 0x52, 0xec, 0xa0, 0x3c, 0x8f, 0x33, 0x90, 0x5a, 0x94, 0x72}}}, +{{{0x8a, 0x4b, 0xe7, 0x38, 0xbc, 0xda, 0xc2, 0xb0, 0x85, 0xe1, 0x4a, 0xfe, 0x2d, 0x44, 0x84, 0xcb, 0x20, 0x6b, 0x2d, 0xbf, 0x11, 0x9c, 0xd7, 0xbe, 0xd3, 0x3e, 0x5f, 0xbf, 0x68, 0xbc, 0xa8, 0x07}} , + {{0x01, 0x89, 0x28, 0x22, 0x6a, 0x78, 0xaa, 0x29, 0x03, 0xc8, 0x74, 0x95, 0x03, 0x3e, 0xdc, 0xbd, 0x07, 0x13, 0xa8, 0xa2, 0x20, 0x2d, 0xb3, 0x18, 0x70, 0x42, 0xfd, 0x7a, 0xc4, 0xd7, 0x49, 0x72}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x02, 0xff, 0x32, 0x2b, 0x5c, 0x93, 0x54, 0x32, 0xe8, 0x57, 0x54, 0x1a, 0x8b, 0x33, 0x60, 0x65, 0xd3, 0x67, 0xa4, 0xc1, 0x26, 0xc4, 0xa4, 0x34, 0x1f, 0x9b, 0xa7, 0xa9, 0xf4, 0xd9, 0x4f, 0x5b}} , + {{0x46, 0x8d, 0xb0, 0x33, 0x54, 0x26, 0x5b, 0x68, 0xdf, 0xbb, 0xc5, 0xec, 0xc2, 0xf9, 0x3c, 0x5a, 0x37, 0xc1, 0x8e, 0x27, 0x47, 0xaa, 0x49, 0x5a, 0xf8, 0xfb, 0x68, 0x04, 0x23, 0xd1, 0xeb, 0x40}}}, +{{{0x65, 0xa5, 0x11, 0x84, 0x8a, 0x67, 0x9d, 0x9e, 0xd1, 0x44, 0x68, 0x7a, 0x34, 0xe1, 0x9f, 0xa3, 0x54, 0xcd, 0x07, 0xca, 0x79, 0x1f, 0x54, 0x2f, 0x13, 0x70, 0x4e, 0xee, 0xa2, 0xfa, 0xe7, 0x5d}} , + {{0x36, 0xec, 0x54, 0xf8, 0xce, 0xe4, 0x85, 0xdf, 0xf6, 0x6f, 0x1d, 0x90, 0x08, 0xbc, 0xe8, 0xc0, 0x92, 0x2d, 0x43, 0x6b, 0x92, 0xa9, 0x8e, 0xab, 0x0a, 0x2e, 0x1c, 0x1e, 0x64, 0x23, 0x9f, 0x2c}}}, +{{{0xa7, 0xd6, 0x2e, 0xd5, 0xcc, 0xd4, 0xcb, 0x5a, 0x3b, 0xa7, 0xf9, 0x46, 0x03, 0x1d, 0xad, 0x2b, 0x34, 0x31, 0x90, 0x00, 0x46, 0x08, 0x82, 0x14, 0xc4, 0xe0, 0x9c, 0xf0, 0xe3, 0x55, 0x43, 0x31}} , + {{0x60, 0xd6, 0xdd, 0x78, 0xe6, 0xd4, 0x22, 0x42, 0x1f, 0x00, 0xf9, 0xb1, 0x6a, 0x63, 0xe2, 0x92, 0x59, 0xd1, 0x1a, 0xb7, 0x00, 0x54, 0x29, 0xc9, 0xc1, 0xf6, 0x6f, 0x7a, 0xc5, 0x3c, 0x5f, 0x65}}}, +{{{0x27, 0x4f, 0xd0, 0x72, 0xb1, 0x11, 0x14, 0x27, 0x15, 0x94, 0x48, 0x81, 0x7e, 0x74, 0xd8, 0x32, 0xd5, 0xd1, 0x11, 0x28, 0x60, 0x63, 0x36, 0x32, 0x37, 0xb5, 0x13, 0x1c, 0xa0, 0x37, 0xe3, 0x74}} , + {{0xf1, 0x25, 0x4e, 0x11, 0x96, 0x67, 0xe6, 0x1c, 0xc2, 0xb2, 0x53, 0xe2, 0xda, 0x85, 0xee, 0xb2, 0x9f, 0x59, 0xf3, 0xba, 0xbd, 0xfa, 0xcf, 0x6e, 0xf9, 0xda, 0xa4, 0xb3, 0x02, 0x8f, 0x64, 0x08}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x34, 0x94, 0xf2, 0x64, 0x54, 0x47, 0x37, 0x07, 0x40, 0x8a, 0x20, 0xba, 0x4a, 0x55, 0xd7, 0x3f, 0x47, 0xba, 0x25, 0x23, 0x14, 0xb0, 0x2c, 0xe8, 0x55, 0xa8, 0xa6, 0xef, 0x51, 0xbd, 0x6f, 0x6a}} , + {{0x71, 0xd6, 0x16, 0x76, 0xb2, 0x06, 0xea, 0x79, 0xf5, 0xc4, 0xc3, 0x52, 0x7e, 0x61, 0xd1, 0xe1, 0xad, 0x70, 0x78, 0x1d, 0x16, 0x11, 0xf8, 0x7c, 0x2b, 0xfc, 0x55, 0x9f, 0x52, 0xf8, 0xf5, 0x16}}}, +{{{0x34, 0x96, 0x9a, 0xf6, 0xc5, 0xe0, 0x14, 0x03, 0x24, 0x0e, 0x4c, 0xad, 0x9e, 0x9a, 0x70, 0x23, 0x96, 0xb2, 0xf1, 0x2e, 0x9d, 0xc3, 0x32, 0x9b, 0x54, 0xa5, 0x73, 0xde, 0x88, 0xb1, 0x3e, 0x24}} , + {{0xf6, 0xe2, 0x4c, 0x1f, 0x5b, 0xb2, 0xaf, 0x82, 0xa5, 0xcf, 0x81, 0x10, 0x04, 0xef, 0xdb, 0xa2, 0xcc, 0x24, 0xb2, 0x7e, 0x0b, 0x7a, 0xeb, 0x01, 0xd8, 0x52, 0xf4, 0x51, 0x89, 0x29, 0x79, 0x37}}}, +{{{0x74, 0xde, 0x12, 0xf3, 0x68, 0xb7, 0x66, 0xc3, 0xee, 0x68, 0xdc, 0x81, 0xb5, 0x55, 0x99, 0xab, 0xd9, 0x28, 0x63, 0x6d, 0x8b, 0x40, 0x69, 0x75, 0x6c, 0xcd, 0x5c, 0x2a, 0x7e, 0x32, 0x7b, 0x29}} , + {{0x02, 0xcc, 0x22, 0x74, 0x4d, 0x19, 0x07, 0xc0, 0xda, 0xb5, 0x76, 0x51, 0x2a, 0xaa, 0xa6, 0x0a, 0x5f, 0x26, 0xd4, 0xbc, 0xaf, 0x48, 0x88, 0x7f, 0x02, 0xbc, 0xf2, 0xe1, 0xcf, 0xe9, 0xdd, 0x15}}}, +{{{0xed, 0xb5, 0x9a, 0x8c, 0x9a, 0xdd, 0x27, 0xf4, 0x7f, 0x47, 0xd9, 0x52, 0xa7, 0xcd, 0x65, 0xa5, 0x31, 0x22, 0xed, 0xa6, 0x63, 0x5b, 0x80, 0x4a, 0xad, 0x4d, 0xed, 0xbf, 0xee, 0x49, 0xb3, 0x06}} , + {{0xf8, 0x64, 0x8b, 0x60, 0x90, 0xe9, 0xde, 0x44, 0x77, 0xb9, 0x07, 0x36, 0x32, 0xc2, 0x50, 0xf5, 0x65, 0xdf, 0x48, 0x4c, 0x37, 0xaa, 0x68, 0xab, 0x9a, 0x1f, 0x3e, 0xff, 0x89, 0x92, 0xa0, 0x07}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x7d, 0x4f, 0x9c, 0x19, 0xc0, 0x4a, 0x31, 0xec, 0xf9, 0xaa, 0xeb, 0xb2, 0x16, 0x9c, 0xa3, 0x66, 0x5f, 0xd1, 0xd4, 0xed, 0xb8, 0x92, 0x1c, 0xab, 0xda, 0xea, 0xd9, 0x57, 0xdf, 0x4c, 0x2a, 0x48}} , + {{0x4b, 0xb0, 0x4e, 0x6e, 0x11, 0x3b, 0x51, 0xbd, 0x6a, 0xfd, 0xe4, 0x25, 0xa5, 0x5f, 0x11, 0x3f, 0x98, 0x92, 0x51, 0x14, 0xc6, 0x5f, 0x3c, 0x0b, 0xa8, 0xf7, 0xc2, 0x81, 0x43, 0xde, 0x91, 0x73}}}, +{{{0x3c, 0x8f, 0x9f, 0x33, 0x2a, 0x1f, 0x43, 0x33, 0x8f, 0x68, 0xff, 0x1f, 0x3d, 0x73, 0x6b, 0xbf, 0x68, 0xcc, 0x7d, 0x13, 0x6c, 0x24, 0x4b, 0xcc, 0x4d, 0x24, 0x0d, 0xfe, 0xde, 0x86, 0xad, 0x3b}} , + {{0x79, 0x51, 0x81, 0x01, 0xdc, 0x73, 0x53, 0xe0, 0x6e, 0x9b, 0xea, 0x68, 0x3f, 0x5c, 0x14, 0x84, 0x53, 0x8d, 0x4b, 0xc0, 0x9f, 0x9f, 0x89, 0x2b, 0x8c, 0xba, 0x86, 0xfa, 0xf2, 0xcd, 0xe3, 0x2d}}}, +{{{0x06, 0xf9, 0x29, 0x5a, 0xdb, 0x3d, 0x84, 0x52, 0xab, 0xcc, 0x6b, 0x60, 0x9d, 0xb7, 0x4a, 0x0e, 0x36, 0x63, 0x91, 0xad, 0xa0, 0x95, 0xb0, 0x97, 0x89, 0x4e, 0xcf, 0x7d, 0x3c, 0xe5, 0x7c, 0x28}} , + {{0x2e, 0x69, 0x98, 0xfd, 0xc6, 0xbd, 0xcc, 0xca, 0xdf, 0x9a, 0x44, 0x7e, 0x9d, 0xca, 0x89, 0x6d, 0xbf, 0x27, 0xc2, 0xf8, 0xcd, 0x46, 0x00, 0x2b, 0xb5, 0x58, 0x4e, 0xb7, 0x89, 0x09, 0xe9, 0x2d}}}, +{{{0x54, 0xbe, 0x75, 0xcb, 0x05, 0xb0, 0x54, 0xb7, 0xe7, 0x26, 0x86, 0x4a, 0xfc, 0x19, 0xcf, 0x27, 0x46, 0xd4, 0x22, 0x96, 0x5a, 0x11, 0xe8, 0xd5, 0x1b, 0xed, 0x71, 0xc5, 0x5d, 0xc8, 0xaf, 0x45}} , + {{0x40, 0x7b, 0x77, 0x57, 0x49, 0x9e, 0x80, 0x39, 0x23, 0xee, 0x81, 0x0b, 0x22, 0xcf, 0xdb, 0x7a, 0x2f, 0x14, 0xb8, 0x57, 0x8f, 0xa1, 0x39, 0x1e, 0x77, 0xfc, 0x0b, 0xa6, 0xbf, 0x8a, 0x0c, 0x6c}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x77, 0x3a, 0xd4, 0xd8, 0x27, 0xcf, 0xe8, 0xa1, 0x72, 0x9d, 0xca, 0xdd, 0x0d, 0x96, 0xda, 0x79, 0xed, 0x56, 0x42, 0x15, 0x60, 0xc7, 0x1c, 0x6b, 0x26, 0x30, 0xf6, 0x6a, 0x95, 0x67, 0xf3, 0x0a}} , + {{0xc5, 0x08, 0xa4, 0x2b, 0x2f, 0xbd, 0x31, 0x81, 0x2a, 0xa6, 0xb6, 0xe4, 0x00, 0x91, 0xda, 0x3d, 0xb2, 0xb0, 0x96, 0xce, 0x8a, 0xd2, 0x8d, 0x70, 0xb3, 0xd3, 0x34, 0x01, 0x90, 0x8d, 0x10, 0x21}}}, +{{{0x33, 0x0d, 0xe7, 0xba, 0x4f, 0x07, 0xdf, 0x8d, 0xea, 0x7d, 0xa0, 0xc5, 0xd6, 0xb1, 0xb0, 0xe5, 0x57, 0x1b, 0x5b, 0xf5, 0x45, 0x13, 0x14, 0x64, 0x5a, 0xeb, 0x5c, 0xfc, 0x54, 0x01, 0x76, 0x2b}} , + {{0x02, 0x0c, 0xc2, 0xaf, 0x96, 0x36, 0xfe, 0x4a, 0xe2, 0x54, 0x20, 0x6a, 0xeb, 0xb2, 0x9f, 0x62, 0xd7, 0xce, 0xa2, 0x3f, 0x20, 0x11, 0x34, 0x37, 0xe0, 0x42, 0xed, 0x6f, 0xf9, 0x1a, 0xc8, 0x7d}}}, +{{{0xd8, 0xb9, 0x11, 0xe8, 0x36, 0x3f, 0x42, 0xc1, 0xca, 0xdc, 0xd3, 0xf1, 0xc8, 0x23, 0x3d, 0x4f, 0x51, 0x7b, 0x9d, 0x8d, 0xd8, 0xe4, 0xa0, 0xaa, 0xf3, 0x04, 0xd6, 0x11, 0x93, 0xc8, 0x35, 0x45}} , + {{0x61, 0x36, 0xd6, 0x08, 0x90, 0xbf, 0xa7, 0x7a, 0x97, 0x6c, 0x0f, 0x84, 0xd5, 0x33, 0x2d, 0x37, 0xc9, 0x6a, 0x80, 0x90, 0x3d, 0x0a, 0xa2, 0xaa, 0xe1, 0xb8, 0x84, 0xba, 0x61, 0x36, 0xdd, 0x69}}}, +{{{0x6b, 0xdb, 0x5b, 0x9c, 0xc6, 0x92, 0xbc, 0x23, 0xaf, 0xc5, 0xb8, 0x75, 0xf8, 0x42, 0xfa, 0xd6, 0xb6, 0x84, 0x94, 0x63, 0x98, 0x93, 0x48, 0x78, 0x38, 0xcd, 0xbb, 0x18, 0x34, 0xc3, 0xdb, 0x67}} , + {{0x96, 0xf3, 0x3a, 0x09, 0x56, 0xb0, 0x6f, 0x7c, 0x51, 0x1e, 0x1b, 0x39, 0x48, 0xea, 0xc9, 0x0c, 0x25, 0xa2, 0x7a, 0xca, 0xe7, 0x92, 0xfc, 0x59, 0x30, 0xa3, 0x89, 0x85, 0xdf, 0x6f, 0x43, 0x38}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x79, 0x84, 0x44, 0x19, 0xbd, 0xe9, 0x54, 0xc4, 0xc0, 0x6e, 0x2a, 0xa8, 0xa8, 0x9b, 0x43, 0xd5, 0x71, 0x22, 0x5f, 0xdc, 0x01, 0xfa, 0xdf, 0xb3, 0xb8, 0x47, 0x4b, 0x0a, 0xa5, 0x44, 0xea, 0x29}} , + {{0x05, 0x90, 0x50, 0xaf, 0x63, 0x5f, 0x9d, 0x9e, 0xe1, 0x9d, 0x38, 0x97, 0x1f, 0x6c, 0xac, 0x30, 0x46, 0xb2, 0x6a, 0x19, 0xd1, 0x4b, 0xdb, 0xbb, 0x8c, 0xda, 0x2e, 0xab, 0xc8, 0x5a, 0x77, 0x6c}}}, +{{{0x2b, 0xbe, 0xaf, 0xa1, 0x6d, 0x2f, 0x0b, 0xb1, 0x8f, 0xe3, 0xe0, 0x38, 0xcd, 0x0b, 0x41, 0x1b, 0x4a, 0x15, 0x07, 0xf3, 0x6f, 0xdc, 0xb8, 0xe9, 0xde, 0xb2, 0xa3, 0x40, 0x01, 0xa6, 0x45, 0x1e}} , + {{0x76, 0x0a, 0xda, 0x8d, 0x2c, 0x07, 0x3f, 0x89, 0x7d, 0x04, 0xad, 0x43, 0x50, 0x6e, 0xd2, 0x47, 0xcb, 0x8a, 0xe6, 0x85, 0x1a, 0x24, 0xf3, 0xd2, 0x60, 0xfd, 0xdf, 0x73, 0xa4, 0x0d, 0x73, 0x0e}}}, +{{{0xfd, 0x67, 0x6b, 0x71, 0x9b, 0x81, 0x53, 0x39, 0x39, 0xf4, 0xb8, 0xd5, 0xc3, 0x30, 0x9b, 0x3b, 0x7c, 0xa3, 0xf0, 0xd0, 0x84, 0x21, 0xd6, 0xbf, 0xb7, 0x4c, 0x87, 0x13, 0x45, 0x2d, 0xa7, 0x55}} , + {{0x5d, 0x04, 0xb3, 0x40, 0x28, 0x95, 0x2d, 0x30, 0x83, 0xec, 0x5e, 0xe4, 0xff, 0x75, 0xfe, 0x79, 0x26, 0x9d, 0x1d, 0x36, 0xcd, 0x0a, 0x15, 0xd2, 0x24, 0x14, 0x77, 0x71, 0xd7, 0x8a, 0x1b, 0x04}}}, +{{{0x5d, 0x93, 0xc9, 0xbe, 0xaa, 0x90, 0xcd, 0x9b, 0xfb, 0x73, 0x7e, 0xb0, 0x64, 0x98, 0x57, 0x44, 0x42, 0x41, 0xb1, 0xaf, 0xea, 0xc1, 0xc3, 0x22, 0xff, 0x60, 0x46, 0xcb, 0x61, 0x81, 0x70, 0x61}} , + {{0x0d, 0x82, 0xb9, 0xfe, 0x21, 0xcd, 0xc4, 0xf5, 0x98, 0x0c, 0x4e, 0x72, 0xee, 0x87, 0x49, 0xf8, 0xa1, 0x95, 0xdf, 0x8f, 0x2d, 0xbd, 0x21, 0x06, 0x7c, 0x15, 0xe8, 0x12, 0x6d, 0x93, 0xd6, 0x38}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x91, 0xf7, 0x51, 0xd9, 0xef, 0x7d, 0x42, 0x01, 0x13, 0xe9, 0xb8, 0x7f, 0xa6, 0x49, 0x17, 0x64, 0x21, 0x80, 0x83, 0x2c, 0x63, 0x4c, 0x60, 0x09, 0x59, 0x91, 0x92, 0x77, 0x39, 0x51, 0xf4, 0x48}} , + {{0x60, 0xd5, 0x22, 0x83, 0x08, 0x2f, 0xff, 0x99, 0x3e, 0x69, 0x6d, 0x88, 0xda, 0xe7, 0x5b, 0x52, 0x26, 0x31, 0x2a, 0xe5, 0x89, 0xde, 0x68, 0x90, 0xb6, 0x22, 0x5a, 0xbd, 0xd3, 0x85, 0x53, 0x31}}}, +{{{0xd8, 0xce, 0xdc, 0xf9, 0x3c, 0x4b, 0xa2, 0x1d, 0x2c, 0x2f, 0x36, 0xbe, 0x7a, 0xfc, 0xcd, 0xbc, 0xdc, 0xf9, 0x30, 0xbd, 0xff, 0x05, 0xc7, 0xe4, 0x8e, 0x17, 0x62, 0xf8, 0x4d, 0xa0, 0x56, 0x79}} , + {{0x82, 0xe7, 0xf6, 0xba, 0x53, 0x84, 0x0a, 0xa3, 0x34, 0xff, 0x3c, 0xa3, 0x6a, 0xa1, 0x37, 0xea, 0xdd, 0xb6, 0x95, 0xb3, 0x78, 0x19, 0x76, 0x1e, 0x55, 0x2f, 0x77, 0x2e, 0x7f, 0xc1, 0xea, 0x5e}}}, +{{{0x83, 0xe1, 0x6e, 0xa9, 0x07, 0x33, 0x3e, 0x83, 0xff, 0xcb, 0x1c, 0x9f, 0xb1, 0xa3, 0xb4, 0xc9, 0xe1, 0x07, 0x97, 0xff, 0xf8, 0x23, 0x8f, 0xce, 0x40, 0xfd, 0x2e, 0x5e, 0xdb, 0x16, 0x43, 0x2d}} , + {{0xba, 0x38, 0x02, 0xf7, 0x81, 0x43, 0x83, 0xa3, 0x20, 0x4f, 0x01, 0x3b, 0x8a, 0x04, 0x38, 0x31, 0xc6, 0x0f, 0xc8, 0xdf, 0xd7, 0xfa, 0x2f, 0x88, 0x3f, 0xfc, 0x0c, 0x76, 0xc4, 0xa6, 0x45, 0x72}}}, +{{{0xbb, 0x0c, 0xbc, 0x6a, 0xa4, 0x97, 0x17, 0x93, 0x2d, 0x6f, 0xde, 0x72, 0x10, 0x1c, 0x08, 0x2c, 0x0f, 0x80, 0x32, 0x68, 0x27, 0xd4, 0xab, 0xdd, 0xc5, 0x58, 0x61, 0x13, 0x6d, 0x11, 0x1e, 0x4d}} , + {{0x1a, 0xb9, 0xc9, 0x10, 0xfb, 0x1e, 0x4e, 0xf4, 0x84, 0x4b, 0x8a, 0x5e, 0x7b, 0x4b, 0xe8, 0x43, 0x8c, 0x8f, 0x00, 0xb5, 0x54, 0x13, 0xc5, 0x5c, 0xb6, 0x35, 0x4e, 0x9d, 0xe4, 0x5b, 0x41, 0x6d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x15, 0x7d, 0x12, 0x48, 0x82, 0x14, 0x42, 0xcd, 0x32, 0xd4, 0x4b, 0xc1, 0x72, 0x61, 0x2a, 0x8c, 0xec, 0xe2, 0xf8, 0x24, 0x45, 0x94, 0xe3, 0xbe, 0xdd, 0x67, 0xa8, 0x77, 0x5a, 0xae, 0x5b, 0x4b}} , + {{0xcb, 0x77, 0x9a, 0x20, 0xde, 0xb8, 0x23, 0xd9, 0xa0, 0x0f, 0x8c, 0x7b, 0xa5, 0xcb, 0xae, 0xb6, 0xec, 0x42, 0x67, 0x0e, 0x58, 0xa4, 0x75, 0x98, 0x21, 0x71, 0x84, 0xb3, 0xe0, 0x76, 0x94, 0x73}}}, +{{{0xdf, 0xfc, 0x69, 0x28, 0x23, 0x3f, 0x5b, 0xf8, 0x3b, 0x24, 0x37, 0xf3, 0x1d, 0xd5, 0x22, 0x6b, 0xd0, 0x98, 0xa8, 0x6c, 0xcf, 0xff, 0x06, 0xe1, 0x13, 0xdf, 0xb9, 0xc1, 0x0c, 0xa9, 0xbf, 0x33}} , + {{0xd9, 0x81, 0xda, 0xb2, 0x4f, 0x82, 0x9d, 0x43, 0x81, 0x09, 0xf1, 0xd2, 0x01, 0xef, 0xac, 0xf4, 0x2d, 0x7d, 0x01, 0x09, 0xf1, 0xff, 0xa5, 0x9f, 0xe5, 0xca, 0x27, 0x63, 0xdb, 0x20, 0xb1, 0x53}}}, +{{{0x67, 0x02, 0xe8, 0xad, 0xa9, 0x34, 0xd4, 0xf0, 0x15, 0x81, 0xaa, 0xc7, 0x4d, 0x87, 0x94, 0xea, 0x75, 0xe7, 0x4c, 0x94, 0x04, 0x0e, 0x69, 0x87, 0xe7, 0x51, 0x91, 0x10, 0x03, 0xc7, 0xbe, 0x56}} , + {{0x32, 0xfb, 0x86, 0xec, 0x33, 0x6b, 0x2e, 0x51, 0x2b, 0xc8, 0xfa, 0x6c, 0x70, 0x47, 0x7e, 0xce, 0x05, 0x0c, 0x71, 0xf3, 0xb4, 0x56, 0xa6, 0xdc, 0xcc, 0x78, 0x07, 0x75, 0xd0, 0xdd, 0xb2, 0x6a}}}, +{{{0xc6, 0xef, 0xb9, 0xc0, 0x2b, 0x22, 0x08, 0x1e, 0x71, 0x70, 0xb3, 0x35, 0x9c, 0x7a, 0x01, 0x92, 0x44, 0x9a, 0xf6, 0xb0, 0x58, 0x95, 0xc1, 0x9b, 0x02, 0xed, 0x2d, 0x7c, 0x34, 0x29, 0x49, 0x44}} , + {{0x45, 0x62, 0x1d, 0x2e, 0xff, 0x2a, 0x1c, 0x21, 0xa4, 0x25, 0x7b, 0x0d, 0x8c, 0x15, 0x39, 0xfc, 0x8f, 0x7c, 0xa5, 0x7d, 0x1e, 0x25, 0xa3, 0x45, 0xd6, 0xab, 0xbd, 0xcb, 0xc5, 0x5e, 0x78, 0x77}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xd0, 0xd3, 0x42, 0xed, 0x1d, 0x00, 0x3c, 0x15, 0x2c, 0x9c, 0x77, 0x81, 0xd2, 0x73, 0xd1, 0x06, 0xd5, 0xc4, 0x7f, 0x94, 0xbb, 0x92, 0x2d, 0x2c, 0x4b, 0x45, 0x4b, 0xe9, 0x2a, 0x89, 0x6b, 0x2b}} , + {{0xd2, 0x0c, 0x88, 0xc5, 0x48, 0x4d, 0xea, 0x0d, 0x4a, 0xc9, 0x52, 0x6a, 0x61, 0x79, 0xe9, 0x76, 0xf3, 0x85, 0x52, 0x5c, 0x1b, 0x2c, 0xe1, 0xd6, 0xc4, 0x0f, 0x18, 0x0e, 0x4e, 0xf6, 0x1c, 0x7f}}}, +{{{0xb4, 0x04, 0x2e, 0x42, 0xcb, 0x1f, 0x2b, 0x11, 0x51, 0x7b, 0x08, 0xac, 0xaa, 0x3e, 0x9e, 0x52, 0x60, 0xb7, 0xc2, 0x61, 0x57, 0x8c, 0x84, 0xd5, 0x18, 0xa6, 0x19, 0xfc, 0xb7, 0x75, 0x91, 0x1b}} , + {{0xe8, 0x68, 0xca, 0x44, 0xc8, 0x38, 0x38, 0xcc, 0x53, 0x0a, 0x32, 0x35, 0xcc, 0x52, 0xcb, 0x0e, 0xf7, 0xc5, 0xe7, 0xec, 0x3d, 0x85, 0xcc, 0x58, 0xe2, 0x17, 0x47, 0xff, 0x9f, 0xa5, 0x30, 0x17}}}, +{{{0xe3, 0xae, 0xc8, 0xc1, 0x71, 0x75, 0x31, 0x00, 0x37, 0x41, 0x5c, 0x0e, 0x39, 0xda, 0x73, 0xa0, 0xc7, 0x97, 0x36, 0x6c, 0x5b, 0xf2, 0xee, 0x64, 0x0a, 0x3d, 0x89, 0x1e, 0x1d, 0x49, 0x8c, 0x37}} , + {{0x4c, 0xe6, 0xb0, 0xc1, 0xa5, 0x2a, 0x82, 0x09, 0x08, 0xad, 0x79, 0x9c, 0x56, 0xf6, 0xf9, 0xc1, 0xd7, 0x7c, 0x39, 0x7f, 0x93, 0xca, 0x11, 0x55, 0xbf, 0x07, 0x1b, 0x82, 0x29, 0x69, 0x95, 0x5c}}}, +{{{0x87, 0xee, 0xa6, 0x56, 0x9e, 0xc2, 0x9a, 0x56, 0x24, 0x42, 0x85, 0x4d, 0x98, 0x31, 0x1e, 0x60, 0x4d, 0x87, 0x85, 0x04, 0xae, 0x46, 0x12, 0xf9, 0x8e, 0x7f, 0xe4, 0x7f, 0xf6, 0x1c, 0x37, 0x01}} , + {{0x73, 0x4c, 0xb6, 0xc5, 0xc4, 0xe9, 0x6c, 0x85, 0x48, 0x4a, 0x5a, 0xac, 0xd9, 0x1f, 0x43, 0xf8, 0x62, 0x5b, 0xee, 0x98, 0x2a, 0x33, 0x8e, 0x79, 0xce, 0x61, 0x06, 0x35, 0xd8, 0xd7, 0xca, 0x71}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x72, 0xd3, 0xae, 0xa6, 0xca, 0x8f, 0xcd, 0xcc, 0x78, 0x8e, 0x19, 0x4d, 0xa7, 0xd2, 0x27, 0xe9, 0xa4, 0x3c, 0x16, 0x5b, 0x84, 0x80, 0xf9, 0xd0, 0xcc, 0x6a, 0x1e, 0xca, 0x1e, 0x67, 0xbd, 0x63}} , + {{0x7b, 0x6e, 0x2a, 0xd2, 0x87, 0x48, 0xff, 0xa1, 0xca, 0xe9, 0x15, 0x85, 0xdc, 0xdb, 0x2c, 0x39, 0x12, 0x91, 0xa9, 0x20, 0xaa, 0x4f, 0x29, 0xf4, 0x15, 0x7a, 0xd2, 0xf5, 0x32, 0xcc, 0x60, 0x04}}}, +{{{0xe5, 0x10, 0x47, 0x3b, 0xfa, 0x90, 0xfc, 0x30, 0xb5, 0xea, 0x6f, 0x56, 0x8f, 0xfb, 0x0e, 0xa7, 0x3b, 0xc8, 0xb2, 0xff, 0x02, 0x7a, 0x33, 0x94, 0x93, 0x2a, 0x03, 0xe0, 0x96, 0x3a, 0x6c, 0x0f}} , + {{0x5a, 0x63, 0x67, 0xe1, 0x9b, 0x47, 0x78, 0x9f, 0x38, 0x79, 0xac, 0x97, 0x66, 0x1d, 0x5e, 0x51, 0xee, 0x24, 0x42, 0xe8, 0x58, 0x4b, 0x8a, 0x03, 0x75, 0x86, 0x37, 0x86, 0xe2, 0x97, 0x4e, 0x3d}}}, +{{{0x3f, 0x75, 0x8e, 0xb4, 0xff, 0xd8, 0xdd, 0xd6, 0x37, 0x57, 0x9d, 0x6d, 0x3b, 0xbd, 0xd5, 0x60, 0x88, 0x65, 0x9a, 0xb9, 0x4a, 0x68, 0x84, 0xa2, 0x67, 0xdd, 0x17, 0x25, 0x97, 0x04, 0x8b, 0x5e}} , + {{0xbb, 0x40, 0x5e, 0xbc, 0x16, 0x92, 0x05, 0xc4, 0xc0, 0x4e, 0x72, 0x90, 0x0e, 0xab, 0xcf, 0x8a, 0xed, 0xef, 0xb9, 0x2d, 0x3b, 0xf8, 0x43, 0x5b, 0xba, 0x2d, 0xeb, 0x2f, 0x52, 0xd2, 0xd1, 0x5a}}}, +{{{0x40, 0xb4, 0xab, 0xe6, 0xad, 0x9f, 0x46, 0x69, 0x4a, 0xb3, 0x8e, 0xaa, 0xea, 0x9c, 0x8a, 0x20, 0x16, 0x5d, 0x8c, 0x13, 0xbd, 0xf6, 0x1d, 0xc5, 0x24, 0xbd, 0x90, 0x2a, 0x1c, 0xc7, 0x13, 0x3b}} , + {{0x54, 0xdc, 0x16, 0x0d, 0x18, 0xbe, 0x35, 0x64, 0x61, 0x52, 0x02, 0x80, 0xaf, 0x05, 0xf7, 0xa6, 0x42, 0xd3, 0x8f, 0x2e, 0x79, 0x26, 0xa8, 0xbb, 0xb2, 0x17, 0x48, 0xb2, 0x7a, 0x0a, 0x89, 0x14}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x20, 0xa8, 0x88, 0xe3, 0x91, 0xc0, 0x6e, 0xbb, 0x8a, 0x27, 0x82, 0x51, 0x83, 0xb2, 0x28, 0xa9, 0x83, 0xeb, 0xa6, 0xa9, 0x4d, 0x17, 0x59, 0x22, 0x54, 0x00, 0x50, 0x45, 0xcb, 0x48, 0x4b, 0x18}} , + {{0x33, 0x7c, 0xe7, 0x26, 0xba, 0x4d, 0x32, 0xfe, 0x53, 0xf4, 0xfa, 0x83, 0xe3, 0xa5, 0x79, 0x66, 0x73, 0xef, 0x80, 0x23, 0x68, 0xc2, 0x60, 0xdd, 0xa9, 0x33, 0xdc, 0x03, 0x7a, 0xe0, 0xe0, 0x3e}}}, +{{{0x34, 0x5c, 0x13, 0xfb, 0xc0, 0xe3, 0x78, 0x2b, 0x54, 0x58, 0x22, 0x9b, 0x76, 0x81, 0x7f, 0x93, 0x9c, 0x25, 0x3c, 0xd2, 0xe9, 0x96, 0x21, 0x26, 0x08, 0xf5, 0xed, 0x95, 0x11, 0xae, 0x04, 0x5a}} , + {{0xb9, 0xe8, 0xc5, 0x12, 0x97, 0x1f, 0x83, 0xfe, 0x3e, 0x94, 0x99, 0xd4, 0x2d, 0xf9, 0x52, 0x59, 0x5c, 0x82, 0xa6, 0xf0, 0x75, 0x7e, 0xe8, 0xec, 0xcc, 0xac, 0x18, 0x21, 0x09, 0x67, 0x66, 0x67}}}, +{{{0xb3, 0x40, 0x29, 0xd1, 0xcb, 0x1b, 0x08, 0x9e, 0x9c, 0xb7, 0x53, 0xb9, 0x3b, 0x71, 0x08, 0x95, 0x12, 0x1a, 0x58, 0xaf, 0x7e, 0x82, 0x52, 0x43, 0x4f, 0x11, 0x39, 0xf4, 0x93, 0x1a, 0x26, 0x05}} , + {{0x6e, 0x44, 0xa3, 0xf9, 0x64, 0xaf, 0xe7, 0x6d, 0x7d, 0xdf, 0x1e, 0xac, 0x04, 0xea, 0x3b, 0x5f, 0x9b, 0xe8, 0x24, 0x9d, 0x0e, 0xe5, 0x2e, 0x3e, 0xdf, 0xa9, 0xf7, 0xd4, 0x50, 0x71, 0xf0, 0x78}}}, +{{{0x3e, 0xa8, 0x38, 0xc2, 0x57, 0x56, 0x42, 0x9a, 0xb1, 0xe2, 0xf8, 0x45, 0xaa, 0x11, 0x48, 0x5f, 0x17, 0xc4, 0x54, 0x27, 0xdc, 0x5d, 0xaa, 0xdd, 0x41, 0xbc, 0xdf, 0x81, 0xb9, 0x53, 0xee, 0x52}} , + {{0xc3, 0xf1, 0xa7, 0x6d, 0xb3, 0x5f, 0x92, 0x6f, 0xcc, 0x91, 0xb8, 0x95, 0x05, 0xdf, 0x3c, 0x64, 0x57, 0x39, 0x61, 0x51, 0xad, 0x8c, 0x38, 0x7b, 0xc8, 0xde, 0x00, 0x34, 0xbe, 0xa1, 0xb0, 0x7e}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x25, 0x24, 0x1d, 0x8a, 0x67, 0x20, 0xee, 0x42, 0xeb, 0x38, 0xed, 0x0b, 0x8b, 0xcd, 0x46, 0x9d, 0x5e, 0x6b, 0x1e, 0x24, 0x9d, 0x12, 0x05, 0x1a, 0xcc, 0x05, 0x4e, 0x92, 0x38, 0xe1, 0x1f, 0x50}} , + {{0x4e, 0xee, 0x1c, 0x91, 0xe6, 0x11, 0xbd, 0x8e, 0x55, 0x1a, 0x18, 0x75, 0x66, 0xaf, 0x4d, 0x7b, 0x0f, 0xae, 0x6d, 0x85, 0xca, 0x82, 0x58, 0x21, 0x9c, 0x18, 0xe0, 0xed, 0xec, 0x22, 0x80, 0x2f}}}, +{{{0x68, 0x3b, 0x0a, 0x39, 0x1d, 0x6a, 0x15, 0x57, 0xfc, 0xf0, 0x63, 0x54, 0xdb, 0x39, 0xdb, 0xe8, 0x5c, 0x64, 0xff, 0xa0, 0x09, 0x4f, 0x3b, 0xb7, 0x32, 0x60, 0x99, 0x94, 0xfd, 0x94, 0x82, 0x2d}} , + {{0x24, 0xf6, 0x5a, 0x44, 0xf1, 0x55, 0x2c, 0xdb, 0xea, 0x7c, 0x84, 0x7c, 0x01, 0xac, 0xe3, 0xfd, 0xc9, 0x27, 0xc1, 0x5a, 0xb9, 0xde, 0x4f, 0x5a, 0x90, 0xdd, 0xc6, 0x67, 0xaa, 0x6f, 0x8a, 0x3a}}}, +{{{0x78, 0x52, 0x87, 0xc9, 0x97, 0x63, 0xb1, 0xdd, 0x54, 0x5f, 0xc1, 0xf8, 0xf1, 0x06, 0xa6, 0xa8, 0xa3, 0x88, 0x82, 0xd4, 0xcb, 0xa6, 0x19, 0xdd, 0xd1, 0x11, 0x87, 0x08, 0x17, 0x4c, 0x37, 0x2a}} , + {{0xa1, 0x0c, 0xf3, 0x08, 0x43, 0xd9, 0x24, 0x1e, 0x83, 0xa7, 0xdf, 0x91, 0xca, 0xbd, 0x69, 0x47, 0x8d, 0x1b, 0xe2, 0xb9, 0x4e, 0xb5, 0xe1, 0x76, 0xb3, 0x1c, 0x93, 0x03, 0xce, 0x5f, 0xb3, 0x5a}}}, +{{{0x1d, 0xda, 0xe4, 0x61, 0x03, 0x50, 0xa9, 0x8b, 0x68, 0x18, 0xef, 0xb2, 0x1c, 0x84, 0x3b, 0xa2, 0x44, 0x95, 0xa3, 0x04, 0x3b, 0xd6, 0x99, 0x00, 0xaf, 0x76, 0x42, 0x67, 0x02, 0x7d, 0x85, 0x56}} , + {{0xce, 0x72, 0x0e, 0x29, 0x84, 0xb2, 0x7d, 0xd2, 0x45, 0xbe, 0x57, 0x06, 0xed, 0x7f, 0xcf, 0xed, 0xcd, 0xef, 0x19, 0xd6, 0xbc, 0x15, 0x79, 0x64, 0xd2, 0x18, 0xe3, 0x20, 0x67, 0x3a, 0x54, 0x0b}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x52, 0xfd, 0x04, 0xc5, 0xfb, 0x99, 0xe7, 0xe8, 0xfb, 0x8c, 0xe1, 0x42, 0x03, 0xef, 0x9d, 0xd9, 0x9e, 0x4d, 0xf7, 0x80, 0xcf, 0x2e, 0xcc, 0x9b, 0x45, 0xc9, 0x7b, 0x7a, 0xbc, 0x37, 0xa8, 0x52}} , + {{0x96, 0x11, 0x41, 0x8a, 0x47, 0x91, 0xfe, 0xb6, 0xda, 0x7a, 0x54, 0x63, 0xd1, 0x14, 0x35, 0x05, 0x86, 0x8c, 0xa9, 0x36, 0x3f, 0xf2, 0x85, 0x54, 0x4e, 0x92, 0xd8, 0x85, 0x01, 0x46, 0xd6, 0x50}}}, +{{{0x53, 0xcd, 0xf3, 0x86, 0x40, 0xe6, 0x39, 0x42, 0x95, 0xd6, 0xcb, 0x45, 0x1a, 0x20, 0xc8, 0x45, 0x4b, 0x32, 0x69, 0x04, 0xb1, 0xaf, 0x20, 0x46, 0xc7, 0x6b, 0x23, 0x5b, 0x69, 0xee, 0x30, 0x3f}} , + {{0x70, 0x83, 0x47, 0xc0, 0xdb, 0x55, 0x08, 0xa8, 0x7b, 0x18, 0x6d, 0xf5, 0x04, 0x5a, 0x20, 0x0c, 0x4a, 0x8c, 0x60, 0xae, 0xae, 0x0f, 0x64, 0x55, 0x55, 0x2e, 0xd5, 0x1d, 0x53, 0x31, 0x42, 0x41}}}, +{{{0xca, 0xfc, 0x88, 0x6b, 0x96, 0x78, 0x0a, 0x8b, 0x83, 0xdc, 0xbc, 0xaf, 0x40, 0xb6, 0x8d, 0x7f, 0xef, 0xb4, 0xd1, 0x3f, 0xcc, 0xa2, 0x74, 0xc9, 0xc2, 0x92, 0x55, 0x00, 0xab, 0xdb, 0xbf, 0x4f}} , + {{0x93, 0x1c, 0x06, 0x2d, 0x66, 0x65, 0x02, 0xa4, 0x97, 0x18, 0xfd, 0x00, 0xe7, 0xab, 0x03, 0xec, 0xce, 0xc1, 0xbf, 0x37, 0xf8, 0x13, 0x53, 0xa5, 0xe5, 0x0c, 0x3a, 0xa8, 0x55, 0xb9, 0xff, 0x68}}}, +{{{0xe4, 0xe6, 0x6d, 0x30, 0x7d, 0x30, 0x35, 0xc2, 0x78, 0x87, 0xf9, 0xfc, 0x6b, 0x5a, 0xc3, 0xb7, 0x65, 0xd8, 0x2e, 0xc7, 0xa5, 0x0c, 0xc6, 0xdc, 0x12, 0xaa, 0xd6, 0x4f, 0xc5, 0x38, 0xbc, 0x0e}} , + {{0xe2, 0x3c, 0x76, 0x86, 0x38, 0xf2, 0x7b, 0x2c, 0x16, 0x78, 0x8d, 0xf5, 0xa4, 0x15, 0xda, 0xdb, 0x26, 0x85, 0xa0, 0x56, 0xdd, 0x1d, 0xe3, 0xb3, 0xfd, 0x40, 0xef, 0xf2, 0xd9, 0xa1, 0xb3, 0x04}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xdb, 0x49, 0x0e, 0xe6, 0x58, 0x10, 0x7a, 0x52, 0xda, 0xb5, 0x7d, 0x37, 0x6a, 0x3e, 0xa1, 0x78, 0xce, 0xc7, 0x1c, 0x24, 0x23, 0xdb, 0x7d, 0xfb, 0x8c, 0x8d, 0xdc, 0x30, 0x67, 0x69, 0x75, 0x3b}} , + {{0xa9, 0xea, 0x6d, 0x16, 0x16, 0x60, 0xf4, 0x60, 0x87, 0x19, 0x44, 0x8c, 0x4a, 0x8b, 0x3e, 0xfb, 0x16, 0x00, 0x00, 0x54, 0xa6, 0x9e, 0x9f, 0xef, 0xcf, 0xd9, 0xd2, 0x4c, 0x74, 0x31, 0xd0, 0x34}}}, +{{{0xa4, 0xeb, 0x04, 0xa4, 0x8c, 0x8f, 0x71, 0x27, 0x95, 0x85, 0x5d, 0x55, 0x4b, 0xb1, 0x26, 0x26, 0xc8, 0xae, 0x6a, 0x7d, 0xa2, 0x21, 0xca, 0xce, 0x38, 0xab, 0x0f, 0xd0, 0xd5, 0x2b, 0x6b, 0x00}} , + {{0xe5, 0x67, 0x0c, 0xf1, 0x3a, 0x9a, 0xea, 0x09, 0x39, 0xef, 0xd1, 0x30, 0xbc, 0x33, 0xba, 0xb1, 0x6a, 0xc5, 0x27, 0x08, 0x7f, 0x54, 0x80, 0x3d, 0xab, 0xf6, 0x15, 0x7a, 0xc2, 0x40, 0x73, 0x72}}}, +{{{0x84, 0x56, 0x82, 0xb6, 0x12, 0x70, 0x7f, 0xf7, 0xf0, 0xbd, 0x5b, 0xa9, 0xd5, 0xc5, 0x5f, 0x59, 0xbf, 0x7f, 0xb3, 0x55, 0x22, 0x02, 0xc9, 0x44, 0x55, 0x87, 0x8f, 0x96, 0x98, 0x64, 0x6d, 0x15}} , + {{0xb0, 0x8b, 0xaa, 0x1e, 0xec, 0xc7, 0xa5, 0x8f, 0x1f, 0x92, 0x04, 0xc6, 0x05, 0xf6, 0xdf, 0xa1, 0xcc, 0x1f, 0x81, 0xf5, 0x0e, 0x9c, 0x57, 0xdc, 0xe3, 0xbb, 0x06, 0x87, 0x1e, 0xfe, 0x23, 0x6c}}}, +{{{0xd8, 0x2b, 0x5b, 0x16, 0xea, 0x20, 0xf1, 0xd3, 0x68, 0x8f, 0xae, 0x5b, 0xd0, 0xa9, 0x1a, 0x19, 0xa8, 0x36, 0xfb, 0x2b, 0x57, 0x88, 0x7d, 0x90, 0xd5, 0xa6, 0xf3, 0xdc, 0x38, 0x89, 0x4e, 0x1f}} , + {{0xcc, 0x19, 0xda, 0x9b, 0x3b, 0x43, 0x48, 0x21, 0x2e, 0x23, 0x4d, 0x3d, 0xae, 0xf8, 0x8c, 0xfc, 0xdd, 0xa6, 0x74, 0x37, 0x65, 0xca, 0xee, 0x1a, 0x19, 0x8e, 0x9f, 0x64, 0x6f, 0x0c, 0x8b, 0x5a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x25, 0xb9, 0xc2, 0xf0, 0x72, 0xb8, 0x15, 0x16, 0xcc, 0x8d, 0x3c, 0x6f, 0x25, 0xed, 0xf4, 0x46, 0x2e, 0x0c, 0x60, 0x0f, 0xe2, 0x84, 0x34, 0x55, 0x89, 0x59, 0x34, 0x1b, 0xf5, 0x8d, 0xfe, 0x08}} , + {{0xf8, 0xab, 0x93, 0xbc, 0x44, 0xba, 0x1b, 0x75, 0x4b, 0x49, 0x6f, 0xd0, 0x54, 0x2e, 0x63, 0xba, 0xb5, 0xea, 0xed, 0x32, 0x14, 0xc9, 0x94, 0xd8, 0xc5, 0xce, 0xf4, 0x10, 0x68, 0xe0, 0x38, 0x27}}}, +{{{0x74, 0x1c, 0x14, 0x9b, 0xd4, 0x64, 0x61, 0x71, 0x5a, 0xb6, 0x21, 0x33, 0x4f, 0xf7, 0x8e, 0xba, 0xa5, 0x48, 0x9a, 0xc7, 0xfa, 0x9a, 0xf0, 0xb4, 0x62, 0xad, 0xf2, 0x5e, 0xcc, 0x03, 0x24, 0x1a}} , + {{0xf5, 0x76, 0xfd, 0xe4, 0xaf, 0xb9, 0x03, 0x59, 0xce, 0x63, 0xd2, 0x3b, 0x1f, 0xcd, 0x21, 0x0c, 0xad, 0x44, 0xa5, 0x97, 0xac, 0x80, 0x11, 0x02, 0x9b, 0x0c, 0xe5, 0x8b, 0xcd, 0xfb, 0x79, 0x77}}}, +{{{0x15, 0xbe, 0x9a, 0x0d, 0xba, 0x38, 0x72, 0x20, 0x8a, 0xf5, 0xbe, 0x59, 0x93, 0x79, 0xb7, 0xf6, 0x6a, 0x0c, 0x38, 0x27, 0x1a, 0x60, 0xf4, 0x86, 0x3b, 0xab, 0x5a, 0x00, 0xa0, 0xce, 0x21, 0x7d}} , + {{0x6c, 0xba, 0x14, 0xc5, 0xea, 0x12, 0x9e, 0x2e, 0x82, 0x63, 0xce, 0x9b, 0x4a, 0xe7, 0x1d, 0xec, 0xf1, 0x2e, 0x51, 0x1c, 0xf4, 0xd0, 0x69, 0x15, 0x42, 0x9d, 0xa3, 0x3f, 0x0e, 0xbf, 0xe9, 0x5c}}}, +{{{0xe4, 0x0d, 0xf4, 0xbd, 0xee, 0x31, 0x10, 0xed, 0xcb, 0x12, 0x86, 0xad, 0xd4, 0x2f, 0x90, 0x37, 0x32, 0xc3, 0x0b, 0x73, 0xec, 0x97, 0x85, 0xa4, 0x01, 0x1c, 0x76, 0x35, 0xfe, 0x75, 0xdd, 0x71}} , + {{0x11, 0xa4, 0x88, 0x9f, 0x3e, 0x53, 0x69, 0x3b, 0x1b, 0xe0, 0xf7, 0xba, 0x9b, 0xad, 0x4e, 0x81, 0x5f, 0xb5, 0x5c, 0xae, 0xbe, 0x67, 0x86, 0x37, 0x34, 0x8e, 0x07, 0x32, 0x45, 0x4a, 0x67, 0x39}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x90, 0x70, 0x58, 0x20, 0x03, 0x1e, 0x67, 0xb2, 0xc8, 0x9b, 0x58, 0xc5, 0xb1, 0xeb, 0x2d, 0x4a, 0xde, 0x82, 0x8c, 0xf2, 0xd2, 0x14, 0xb8, 0x70, 0x61, 0x4e, 0x73, 0xd6, 0x0b, 0x6b, 0x0d, 0x30}} , + {{0x81, 0xfc, 0x55, 0x5c, 0xbf, 0xa7, 0xc4, 0xbd, 0xe2, 0xf0, 0x4b, 0x8f, 0xe9, 0x7d, 0x99, 0xfa, 0xd3, 0xab, 0xbc, 0xc7, 0x83, 0x2b, 0x04, 0x7f, 0x0c, 0x19, 0x43, 0x03, 0x3d, 0x07, 0xca, 0x40}}}, +{{{0xf9, 0xc8, 0xbe, 0x8c, 0x16, 0x81, 0x39, 0x96, 0xf6, 0x17, 0x58, 0xc8, 0x30, 0x58, 0xfb, 0xc2, 0x03, 0x45, 0xd2, 0x52, 0x76, 0xe0, 0x6a, 0x26, 0x28, 0x5c, 0x88, 0x59, 0x6a, 0x5a, 0x54, 0x42}} , + {{0x07, 0xb5, 0x2e, 0x2c, 0x67, 0x15, 0x9b, 0xfb, 0x83, 0x69, 0x1e, 0x0f, 0xda, 0xd6, 0x29, 0xb1, 0x60, 0xe0, 0xb2, 0xba, 0x69, 0xa2, 0x9e, 0xbd, 0xbd, 0xe0, 0x1c, 0xbd, 0xcd, 0x06, 0x64, 0x70}}}, +{{{0x41, 0xfa, 0x8c, 0xe1, 0x89, 0x8f, 0x27, 0xc8, 0x25, 0x8f, 0x6f, 0x5f, 0x55, 0xf8, 0xde, 0x95, 0x6d, 0x2f, 0x75, 0x16, 0x2b, 0x4e, 0x44, 0xfd, 0x86, 0x6e, 0xe9, 0x70, 0x39, 0x76, 0x97, 0x7e}} , + {{0x17, 0x62, 0x6b, 0x14, 0xa1, 0x7c, 0xd0, 0x79, 0x6e, 0xd8, 0x8a, 0xa5, 0x6d, 0x8c, 0x93, 0xd2, 0x3f, 0xec, 0x44, 0x8d, 0x6e, 0x91, 0x01, 0x8c, 0x8f, 0xee, 0x01, 0x8f, 0xc0, 0xb4, 0x85, 0x0e}}}, +{{{0x02, 0x3a, 0x70, 0x41, 0xe4, 0x11, 0x57, 0x23, 0xac, 0xe6, 0xfc, 0x54, 0x7e, 0xcd, 0xd7, 0x22, 0xcb, 0x76, 0x9f, 0x20, 0xce, 0xa0, 0x73, 0x76, 0x51, 0x3b, 0xa4, 0xf8, 0xe3, 0x62, 0x12, 0x6c}} , + {{0x7f, 0x00, 0x9c, 0x26, 0x0d, 0x6f, 0x48, 0x7f, 0x3a, 0x01, 0xed, 0xc5, 0x96, 0xb0, 0x1f, 0x4f, 0xa8, 0x02, 0x62, 0x27, 0x8a, 0x50, 0x8d, 0x9a, 0x8b, 0x52, 0x0f, 0x1e, 0xcf, 0x41, 0x38, 0x19}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xf5, 0x6c, 0xd4, 0x2f, 0x0f, 0x69, 0x0f, 0x87, 0x3f, 0x61, 0x65, 0x1e, 0x35, 0x34, 0x85, 0xba, 0x02, 0x30, 0xac, 0x25, 0x3d, 0xe2, 0x62, 0xf1, 0xcc, 0xe9, 0x1b, 0xc2, 0xef, 0x6a, 0x42, 0x57}} , + {{0x34, 0x1f, 0x2e, 0xac, 0xd1, 0xc7, 0x04, 0x52, 0x32, 0x66, 0xb2, 0x33, 0x73, 0x21, 0x34, 0x54, 0xf7, 0x71, 0xed, 0x06, 0xb0, 0xff, 0xa6, 0x59, 0x6f, 0x8a, 0x4e, 0xfb, 0x02, 0xb0, 0x45, 0x6b}}}, +{{{0xf5, 0x48, 0x0b, 0x03, 0xc5, 0x22, 0x7d, 0x80, 0x08, 0x53, 0xfe, 0x32, 0xb1, 0xa1, 0x8a, 0x74, 0x6f, 0xbd, 0x3f, 0x85, 0xf4, 0xcf, 0xf5, 0x60, 0xaf, 0x41, 0x7e, 0x3e, 0x46, 0xa3, 0x5a, 0x20}} , + {{0xaa, 0x35, 0x87, 0x44, 0x63, 0x66, 0x97, 0xf8, 0x6e, 0x55, 0x0c, 0x04, 0x3e, 0x35, 0x50, 0xbf, 0x93, 0x69, 0xd2, 0x8b, 0x05, 0x55, 0x99, 0xbe, 0xe2, 0x53, 0x61, 0xec, 0xe8, 0x08, 0x0b, 0x32}}}, +{{{0xb3, 0x10, 0x45, 0x02, 0x69, 0x59, 0x2e, 0x97, 0xd9, 0x64, 0xf8, 0xdb, 0x25, 0x80, 0xdc, 0xc4, 0xd5, 0x62, 0x3c, 0xed, 0x65, 0x91, 0xad, 0xd1, 0x57, 0x81, 0x94, 0xaa, 0xa1, 0x29, 0xfc, 0x68}} , + {{0xdd, 0xb5, 0x7d, 0xab, 0x5a, 0x21, 0x41, 0x53, 0xbb, 0x17, 0x79, 0x0d, 0xd1, 0xa8, 0x0c, 0x0c, 0x20, 0x88, 0x09, 0xe9, 0x84, 0xe8, 0x25, 0x11, 0x67, 0x7a, 0x8b, 0x1a, 0xe4, 0x5d, 0xe1, 0x5d}}}, +{{{0x37, 0xea, 0xfe, 0x65, 0x3b, 0x25, 0xe8, 0xe1, 0xc2, 0xc5, 0x02, 0xa4, 0xbe, 0x98, 0x0a, 0x2b, 0x61, 0xc1, 0x9b, 0xe2, 0xd5, 0x92, 0xe6, 0x9e, 0x7d, 0x1f, 0xca, 0x43, 0x88, 0x8b, 0x2c, 0x59}} , + {{0xe0, 0xb5, 0x00, 0x1d, 0x2a, 0x6f, 0xaf, 0x79, 0x86, 0x2f, 0xa6, 0x5a, 0x93, 0xd1, 0xfe, 0xae, 0x3a, 0xee, 0xdb, 0x7c, 0x61, 0xbe, 0x7c, 0x01, 0xf9, 0xfe, 0x52, 0xdc, 0xd8, 0x52, 0xa3, 0x42}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x22, 0xaf, 0x13, 0x37, 0xbd, 0x37, 0x71, 0xac, 0x04, 0x46, 0x63, 0xac, 0xa4, 0x77, 0xed, 0x25, 0x38, 0xe0, 0x15, 0xa8, 0x64, 0x00, 0x0d, 0xce, 0x51, 0x01, 0xa9, 0xbc, 0x0f, 0x03, 0x1c, 0x04}} , + {{0x89, 0xf9, 0x80, 0x07, 0xcf, 0x3f, 0xb3, 0xe9, 0xe7, 0x45, 0x44, 0x3d, 0x2a, 0x7c, 0xe9, 0xe4, 0x16, 0x5c, 0x5e, 0x65, 0x1c, 0xc7, 0x7d, 0xc6, 0x7a, 0xfb, 0x43, 0xee, 0x25, 0x76, 0x46, 0x72}}}, +{{{0x02, 0xa2, 0xed, 0xf4, 0x8f, 0x6b, 0x0b, 0x3e, 0xeb, 0x35, 0x1a, 0xd5, 0x7e, 0xdb, 0x78, 0x00, 0x96, 0x8a, 0xa0, 0xb4, 0xcf, 0x60, 0x4b, 0xd4, 0xd5, 0xf9, 0x2d, 0xbf, 0x88, 0xbd, 0x22, 0x62}} , + {{0x13, 0x53, 0xe4, 0x82, 0x57, 0xfa, 0x1e, 0x8f, 0x06, 0x2b, 0x90, 0xba, 0x08, 0xb6, 0x10, 0x54, 0x4f, 0x7c, 0x1b, 0x26, 0xed, 0xda, 0x6b, 0xdd, 0x25, 0xd0, 0x4e, 0xea, 0x42, 0xbb, 0x25, 0x03}}}, +{{{0x51, 0x16, 0x50, 0x7c, 0xd5, 0x5d, 0xf6, 0x99, 0xe8, 0x77, 0x72, 0x4e, 0xfa, 0x62, 0xcb, 0x76, 0x75, 0x0c, 0xe2, 0x71, 0x98, 0x92, 0xd5, 0xfa, 0x45, 0xdf, 0x5c, 0x6f, 0x1e, 0x9e, 0x28, 0x69}} , + {{0x0d, 0xac, 0x66, 0x6d, 0xc3, 0x8b, 0xba, 0x16, 0xb5, 0xe2, 0xa0, 0x0d, 0x0c, 0xbd, 0xa4, 0x8e, 0x18, 0x6c, 0xf2, 0xdc, 0xf9, 0xdc, 0x4a, 0x86, 0x25, 0x95, 0x14, 0xcb, 0xd8, 0x1a, 0x04, 0x0f}}}, +{{{0x97, 0xa5, 0xdb, 0x8b, 0x2d, 0xaa, 0x42, 0x11, 0x09, 0xf2, 0x93, 0xbb, 0xd9, 0x06, 0x84, 0x4e, 0x11, 0xa8, 0xa0, 0x25, 0x2b, 0xa6, 0x5f, 0xae, 0xc4, 0xb4, 0x4c, 0xc8, 0xab, 0xc7, 0x3b, 0x02}} , + {{0xee, 0xc9, 0x29, 0x0f, 0xdf, 0x11, 0x85, 0xed, 0xce, 0x0d, 0x62, 0x2c, 0x8f, 0x4b, 0xf9, 0x04, 0xe9, 0x06, 0x72, 0x1d, 0x37, 0x20, 0x50, 0xc9, 0x14, 0xeb, 0xec, 0x39, 0xa7, 0x97, 0x2b, 0x4d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x69, 0xd1, 0x39, 0xbd, 0xfb, 0x33, 0xbe, 0xc4, 0xf0, 0x5c, 0xef, 0xf0, 0x56, 0x68, 0xfc, 0x97, 0x47, 0xc8, 0x72, 0xb6, 0x53, 0xa4, 0x0a, 0x98, 0xa5, 0xb4, 0x37, 0x71, 0xcf, 0x66, 0x50, 0x6d}} , + {{0x17, 0xa4, 0x19, 0x52, 0x11, 0x47, 0xb3, 0x5c, 0x5b, 0xa9, 0x2e, 0x22, 0xb4, 0x00, 0x52, 0xf9, 0x57, 0x18, 0xb8, 0xbe, 0x5a, 0xe3, 0xab, 0x83, 0xc8, 0x87, 0x0a, 0x2a, 0xd8, 0x8c, 0xbb, 0x54}}}, +{{{0xa9, 0x62, 0x93, 0x85, 0xbe, 0xe8, 0x73, 0x4a, 0x0e, 0xb0, 0xb5, 0x2d, 0x94, 0x50, 0xaa, 0xd3, 0xb2, 0xea, 0x9d, 0x62, 0x76, 0x3b, 0x07, 0x34, 0x4e, 0x2d, 0x70, 0xc8, 0x9a, 0x15, 0x66, 0x6b}} , + {{0xc5, 0x96, 0xca, 0xc8, 0x22, 0x1a, 0xee, 0x5f, 0xe7, 0x31, 0x60, 0x22, 0x83, 0x08, 0x63, 0xce, 0xb9, 0x32, 0x44, 0x58, 0x5d, 0x3a, 0x9b, 0xe4, 0x04, 0xd5, 0xef, 0x38, 0xef, 0x4b, 0xdd, 0x19}}}, +{{{0x4d, 0xc2, 0x17, 0x75, 0xa1, 0x68, 0xcd, 0xc3, 0xc6, 0x03, 0x44, 0xe3, 0x78, 0x09, 0x91, 0x47, 0x3f, 0x0f, 0xe4, 0x92, 0x58, 0xfa, 0x7d, 0x1f, 0x20, 0x94, 0x58, 0x5e, 0xbc, 0x19, 0x02, 0x6f}} , + {{0x20, 0xd6, 0xd8, 0x91, 0x54, 0xa7, 0xf3, 0x20, 0x4b, 0x34, 0x06, 0xfa, 0x30, 0xc8, 0x6f, 0x14, 0x10, 0x65, 0x74, 0x13, 0x4e, 0xf0, 0x69, 0x26, 0xce, 0xcf, 0x90, 0xf4, 0xd0, 0xc5, 0xc8, 0x64}}}, +{{{0x26, 0xa2, 0x50, 0x02, 0x24, 0x72, 0xf1, 0xf0, 0x4e, 0x2d, 0x93, 0xd5, 0x08, 0xe7, 0xae, 0x38, 0xf7, 0x18, 0xa5, 0x32, 0x34, 0xc2, 0xf0, 0xa6, 0xec, 0xb9, 0x61, 0x7b, 0x64, 0x99, 0xac, 0x71}} , + {{0x25, 0xcf, 0x74, 0x55, 0x1b, 0xaa, 0xa9, 0x38, 0x41, 0x40, 0xd5, 0x95, 0x95, 0xab, 0x1c, 0x5e, 0xbc, 0x41, 0x7e, 0x14, 0x30, 0xbe, 0x13, 0x89, 0xf4, 0xe5, 0xeb, 0x28, 0xc0, 0xc2, 0x96, 0x3a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x2b, 0x77, 0x45, 0xec, 0x67, 0x76, 0x32, 0x4c, 0xb9, 0xdf, 0x25, 0x32, 0x6b, 0xcb, 0xe7, 0x14, 0x61, 0x43, 0xee, 0xba, 0x9b, 0x71, 0xef, 0xd2, 0x48, 0x65, 0xbb, 0x1b, 0x8a, 0x13, 0x1b, 0x22}} , + {{0x84, 0xad, 0x0c, 0x18, 0x38, 0x5a, 0xba, 0xd0, 0x98, 0x59, 0xbf, 0x37, 0xb0, 0x4f, 0x97, 0x60, 0x20, 0xb3, 0x9b, 0x97, 0xf6, 0x08, 0x6c, 0xa4, 0xff, 0xfb, 0xb7, 0xfa, 0x95, 0xb2, 0x51, 0x79}}}, +{{{0x28, 0x5c, 0x3f, 0xdb, 0x6b, 0x18, 0x3b, 0x5c, 0xd1, 0x04, 0x28, 0xde, 0x85, 0x52, 0x31, 0xb5, 0xbb, 0xf6, 0xa9, 0xed, 0xbe, 0x28, 0x4f, 0xb3, 0x7e, 0x05, 0x6a, 0xdb, 0x95, 0x0d, 0x1b, 0x1c}} , + {{0xd5, 0xc5, 0xc3, 0x9a, 0x0a, 0xd0, 0x31, 0x3e, 0x07, 0x36, 0x8e, 0xc0, 0x8a, 0x62, 0xb1, 0xca, 0xd6, 0x0e, 0x1e, 0x9d, 0xef, 0xab, 0x98, 0x4d, 0xbb, 0x6c, 0x05, 0xe0, 0xe4, 0x5d, 0xbd, 0x57}}}, +{{{0xcc, 0x21, 0x27, 0xce, 0xfd, 0xa9, 0x94, 0x8e, 0xe1, 0xab, 0x49, 0xe0, 0x46, 0x26, 0xa1, 0xa8, 0x8c, 0xa1, 0x99, 0x1d, 0xb4, 0x27, 0x6d, 0x2d, 0xc8, 0x39, 0x30, 0x5e, 0x37, 0x52, 0xc4, 0x6e}} , + {{0xa9, 0x85, 0xf4, 0xe7, 0xb0, 0x15, 0x33, 0x84, 0x1b, 0x14, 0x1a, 0x02, 0xd9, 0x3b, 0xad, 0x0f, 0x43, 0x6c, 0xea, 0x3e, 0x0f, 0x7e, 0xda, 0xdd, 0x6b, 0x4c, 0x7f, 0x6e, 0xd4, 0x6b, 0xbf, 0x0f}}}, +{{{0x47, 0x9f, 0x7c, 0x56, 0x7c, 0x43, 0x91, 0x1c, 0xbb, 0x4e, 0x72, 0x3e, 0x64, 0xab, 0xa0, 0xa0, 0xdf, 0xb4, 0xd8, 0x87, 0x3a, 0xbd, 0xa8, 0x48, 0xc9, 0xb8, 0xef, 0x2e, 0xad, 0x6f, 0x84, 0x4f}} , + {{0x2d, 0x2d, 0xf0, 0x1b, 0x7e, 0x2a, 0x6c, 0xf8, 0xa9, 0x6a, 0xe1, 0xf0, 0x99, 0xa1, 0x67, 0x9a, 0xd4, 0x13, 0xca, 0xca, 0xba, 0x27, 0x92, 0xaa, 0xa1, 0x5d, 0x50, 0xde, 0xcc, 0x40, 0x26, 0x0a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x9f, 0x3e, 0xf2, 0xb2, 0x90, 0xce, 0xdb, 0x64, 0x3e, 0x03, 0xdd, 0x37, 0x36, 0x54, 0x70, 0x76, 0x24, 0xb5, 0x69, 0x03, 0xfc, 0xa0, 0x2b, 0x74, 0xb2, 0x05, 0x0e, 0xcc, 0xd8, 0x1f, 0x6a, 0x1f}} , + {{0x19, 0x5e, 0x60, 0x69, 0x58, 0x86, 0xa0, 0x31, 0xbd, 0x32, 0xe9, 0x2c, 0x5c, 0xd2, 0x85, 0xba, 0x40, 0x64, 0xa8, 0x74, 0xf8, 0x0e, 0x1c, 0xb3, 0xa9, 0x69, 0xe8, 0x1e, 0x40, 0x64, 0x99, 0x77}}}, +{{{0x6c, 0x32, 0x4f, 0xfd, 0xbb, 0x5c, 0xbb, 0x8d, 0x64, 0x66, 0x4a, 0x71, 0x1f, 0x79, 0xa3, 0xad, 0x8d, 0xf9, 0xd4, 0xec, 0xcf, 0x67, 0x70, 0xfa, 0x05, 0x4a, 0x0f, 0x6e, 0xaf, 0x87, 0x0a, 0x6f}} , + {{0xc6, 0x36, 0x6e, 0x6c, 0x8c, 0x24, 0x09, 0x60, 0xbe, 0x26, 0xd2, 0x4c, 0x5e, 0x17, 0xca, 0x5f, 0x1d, 0xcc, 0x87, 0xe8, 0x42, 0x6a, 0xcb, 0xcb, 0x7d, 0x92, 0x05, 0x35, 0x81, 0x13, 0x60, 0x6b}}}, +{{{0xf4, 0x15, 0xcd, 0x0f, 0x0a, 0xaf, 0x4e, 0x6b, 0x51, 0xfd, 0x14, 0xc4, 0x2e, 0x13, 0x86, 0x74, 0x44, 0xcb, 0x66, 0x6b, 0xb6, 0x9d, 0x74, 0x56, 0x32, 0xac, 0x8d, 0x8e, 0x8c, 0x8c, 0x8c, 0x39}} , + {{0xca, 0x59, 0x74, 0x1a, 0x11, 0xef, 0x6d, 0xf7, 0x39, 0x5c, 0x3b, 0x1f, 0xfa, 0xe3, 0x40, 0x41, 0x23, 0x9e, 0xf6, 0xd1, 0x21, 0xa2, 0xbf, 0xad, 0x65, 0x42, 0x6b, 0x59, 0x8a, 0xe8, 0xc5, 0x7f}}}, +{{{0x64, 0x05, 0x7a, 0x84, 0x4a, 0x13, 0xc3, 0xf6, 0xb0, 0x6e, 0x9a, 0x6b, 0x53, 0x6b, 0x32, 0xda, 0xd9, 0x74, 0x75, 0xc4, 0xba, 0x64, 0x3d, 0x3b, 0x08, 0xdd, 0x10, 0x46, 0xef, 0xc7, 0x90, 0x1f}} , + {{0x7b, 0x2f, 0x3a, 0xce, 0xc8, 0xa1, 0x79, 0x3c, 0x30, 0x12, 0x44, 0x28, 0xf6, 0xbc, 0xff, 0xfd, 0xf4, 0xc0, 0x97, 0xb0, 0xcc, 0xc3, 0x13, 0x7a, 0xb9, 0x9a, 0x16, 0xe4, 0xcb, 0x4c, 0x34, 0x63}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x07, 0x4e, 0xd3, 0x2d, 0x09, 0x33, 0x0e, 0xd2, 0x0d, 0xbe, 0x3e, 0xe7, 0xe4, 0xaa, 0xb7, 0x00, 0x8b, 0xe8, 0xad, 0xaa, 0x7a, 0x8d, 0x34, 0x28, 0xa9, 0x81, 0x94, 0xc5, 0xe7, 0x42, 0xac, 0x47}} , + {{0x24, 0x89, 0x7a, 0x8f, 0xb5, 0x9b, 0xf0, 0xc2, 0x03, 0x64, 0xd0, 0x1e, 0xf5, 0xa4, 0xb2, 0xf3, 0x74, 0xe9, 0x1a, 0x16, 0xfd, 0xcb, 0x15, 0xea, 0xeb, 0x10, 0x6c, 0x35, 0xd1, 0xc1, 0xa6, 0x28}}}, +{{{0xcc, 0xd5, 0x39, 0xfc, 0xa5, 0xa4, 0xad, 0x32, 0x15, 0xce, 0x19, 0xe8, 0x34, 0x2b, 0x1c, 0x60, 0x91, 0xfc, 0x05, 0xa9, 0xb3, 0xdc, 0x80, 0x29, 0xc4, 0x20, 0x79, 0x06, 0x39, 0xc0, 0xe2, 0x22}} , + {{0xbb, 0xa8, 0xe1, 0x89, 0x70, 0x57, 0x18, 0x54, 0x3c, 0xf6, 0x0d, 0x82, 0x12, 0x05, 0x87, 0x96, 0x06, 0x39, 0xe3, 0xf8, 0xb3, 0x95, 0xe5, 0xd7, 0x26, 0xbf, 0x09, 0x5a, 0x94, 0xf9, 0x1c, 0x63}}}, +{{{0x2b, 0x8c, 0x2d, 0x9a, 0x8b, 0x84, 0xf2, 0x56, 0xfb, 0xad, 0x2e, 0x7f, 0xb7, 0xfc, 0x30, 0xe1, 0x35, 0x89, 0xba, 0x4d, 0xa8, 0x6d, 0xce, 0x8c, 0x8b, 0x30, 0xe0, 0xda, 0x29, 0x18, 0x11, 0x17}} , + {{0x19, 0xa6, 0x5a, 0x65, 0x93, 0xc3, 0xb5, 0x31, 0x22, 0x4f, 0xf3, 0xf6, 0x0f, 0xeb, 0x28, 0xc3, 0x7c, 0xeb, 0xce, 0x86, 0xec, 0x67, 0x76, 0x6e, 0x35, 0x45, 0x7b, 0xd8, 0x6b, 0x92, 0x01, 0x65}}}, +{{{0x3d, 0xd5, 0x9a, 0x64, 0x73, 0x36, 0xb1, 0xd6, 0x86, 0x98, 0x42, 0x3f, 0x8a, 0xf1, 0xc7, 0xf5, 0x42, 0xa8, 0x9c, 0x52, 0xa8, 0xdc, 0xf9, 0x24, 0x3f, 0x4a, 0xa1, 0xa4, 0x5b, 0xe8, 0x62, 0x1a}} , + {{0xc5, 0xbd, 0xc8, 0x14, 0xd5, 0x0d, 0xeb, 0xe1, 0xa5, 0xe6, 0x83, 0x11, 0x09, 0x00, 0x1d, 0x55, 0x83, 0x51, 0x7e, 0x75, 0x00, 0x81, 0xb9, 0xcb, 0xd8, 0xc5, 0xe5, 0xa1, 0xd9, 0x17, 0x6d, 0x1f}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xea, 0xf9, 0xe4, 0xe9, 0xe1, 0x52, 0x3f, 0x51, 0x19, 0x0d, 0xdd, 0xd9, 0x9d, 0x93, 0x31, 0x87, 0x23, 0x09, 0xd5, 0x83, 0xeb, 0x92, 0x09, 0x76, 0x6e, 0xe3, 0xf8, 0xc0, 0xa2, 0x66, 0xb5, 0x36}} , + {{0x3a, 0xbb, 0x39, 0xed, 0x32, 0x02, 0xe7, 0x43, 0x7a, 0x38, 0x14, 0x84, 0xe3, 0x44, 0xd2, 0x5e, 0x94, 0xdd, 0x78, 0x89, 0x55, 0x4c, 0x73, 0x9e, 0xe1, 0xe4, 0x3e, 0x43, 0xd0, 0x4a, 0xde, 0x1b}}}, +{{{0xb2, 0xe7, 0x8f, 0xe3, 0xa3, 0xc5, 0xcb, 0x72, 0xee, 0x79, 0x41, 0xf8, 0xdf, 0xee, 0x65, 0xc5, 0x45, 0x77, 0x27, 0x3c, 0xbd, 0x58, 0xd3, 0x75, 0xe2, 0x04, 0x4b, 0xbb, 0x65, 0xf3, 0xc8, 0x0f}} , + {{0x24, 0x7b, 0x93, 0x34, 0xb5, 0xe2, 0x74, 0x48, 0xcd, 0xa0, 0x0b, 0x92, 0x97, 0x66, 0x39, 0xf4, 0xb0, 0xe2, 0x5d, 0x39, 0x6a, 0x5b, 0x45, 0x17, 0x78, 0x1e, 0xdb, 0x91, 0x81, 0x1c, 0xf9, 0x16}}}, +{{{0x16, 0xdf, 0xd1, 0x5a, 0xd5, 0xe9, 0x4e, 0x58, 0x95, 0x93, 0x5f, 0x51, 0x09, 0xc3, 0x2a, 0xc9, 0xd4, 0x55, 0x48, 0x79, 0xa4, 0xa3, 0xb2, 0xc3, 0x62, 0xaa, 0x8c, 0xe8, 0xad, 0x47, 0x39, 0x1b}} , + {{0x46, 0xda, 0x9e, 0x51, 0x3a, 0xe6, 0xd1, 0xa6, 0xbb, 0x4d, 0x7b, 0x08, 0xbe, 0x8c, 0xd5, 0xf3, 0x3f, 0xfd, 0xf7, 0x44, 0x80, 0x2d, 0x53, 0x4b, 0xd0, 0x87, 0x68, 0xc1, 0xb5, 0xd8, 0xf7, 0x07}}}, +{{{0xf4, 0x10, 0x46, 0xbe, 0xb7, 0xd2, 0xd1, 0xce, 0x5e, 0x76, 0xa2, 0xd7, 0x03, 0xdc, 0xe4, 0x81, 0x5a, 0xf6, 0x3c, 0xde, 0xae, 0x7a, 0x9d, 0x21, 0x34, 0xa5, 0xf6, 0xa9, 0x73, 0xe2, 0x8d, 0x60}} , + {{0xfa, 0x44, 0x71, 0xf6, 0x41, 0xd8, 0xc6, 0x58, 0x13, 0x37, 0xeb, 0x84, 0x0f, 0x96, 0xc7, 0xdc, 0xc8, 0xa9, 0x7a, 0x83, 0xb2, 0x2f, 0x31, 0xb1, 0x1a, 0xd8, 0x98, 0x3f, 0x11, 0xd0, 0x31, 0x3b}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x81, 0xd5, 0x34, 0x16, 0x01, 0xa3, 0x93, 0xea, 0x52, 0x94, 0xec, 0x93, 0xb7, 0x81, 0x11, 0x2d, 0x58, 0xf9, 0xb5, 0x0a, 0xaa, 0x4f, 0xf6, 0x2e, 0x3f, 0x36, 0xbf, 0x33, 0x5a, 0xe7, 0xd1, 0x08}} , + {{0x1a, 0xcf, 0x42, 0xae, 0xcc, 0xb5, 0x77, 0x39, 0xc4, 0x5b, 0x5b, 0xd0, 0x26, 0x59, 0x27, 0xd0, 0x55, 0x71, 0x12, 0x9d, 0x88, 0x3d, 0x9c, 0xea, 0x41, 0x6a, 0xf0, 0x50, 0x93, 0x93, 0xdd, 0x47}}}, +{{{0x6f, 0xc9, 0x51, 0x6d, 0x1c, 0xaa, 0xf5, 0xa5, 0x90, 0x3f, 0x14, 0xe2, 0x6e, 0x8e, 0x64, 0xfd, 0xac, 0xe0, 0x4e, 0x22, 0xe5, 0xc1, 0xbc, 0x29, 0x0a, 0x6a, 0x9e, 0xa1, 0x60, 0xcb, 0x2f, 0x0b}} , + {{0xdc, 0x39, 0x32, 0xf3, 0xa1, 0x44, 0xe9, 0xc5, 0xc3, 0x78, 0xfb, 0x95, 0x47, 0x34, 0x35, 0x34, 0xe8, 0x25, 0xde, 0x93, 0xc6, 0xb4, 0x76, 0x6d, 0x86, 0x13, 0xc6, 0xe9, 0x68, 0xb5, 0x01, 0x63}}}, +{{{0x1f, 0x9a, 0x52, 0x64, 0x97, 0xd9, 0x1c, 0x08, 0x51, 0x6f, 0x26, 0x9d, 0xaa, 0x93, 0x33, 0x43, 0xfa, 0x77, 0xe9, 0x62, 0x9b, 0x5d, 0x18, 0x75, 0xeb, 0x78, 0xf7, 0x87, 0x8f, 0x41, 0xb4, 0x4d}} , + {{0x13, 0xa8, 0x82, 0x3e, 0xe9, 0x13, 0xad, 0xeb, 0x01, 0xca, 0xcf, 0xda, 0xcd, 0xf7, 0x6c, 0xc7, 0x7a, 0xdc, 0x1e, 0x6e, 0xc8, 0x4e, 0x55, 0x62, 0x80, 0xea, 0x78, 0x0c, 0x86, 0xb9, 0x40, 0x51}}}, +{{{0x27, 0xae, 0xd3, 0x0d, 0x4c, 0x8f, 0x34, 0xea, 0x7d, 0x3c, 0xe5, 0x8a, 0xcf, 0x5b, 0x92, 0xd8, 0x30, 0x16, 0xb4, 0xa3, 0x75, 0xff, 0xeb, 0x27, 0xc8, 0x5c, 0x6c, 0xc2, 0xee, 0x6c, 0x21, 0x0b}} , + {{0xc3, 0xba, 0x12, 0x53, 0x2a, 0xaa, 0x77, 0xad, 0x19, 0x78, 0x55, 0x8a, 0x2e, 0x60, 0x87, 0xc2, 0x6e, 0x91, 0x38, 0x91, 0x3f, 0x7a, 0xc5, 0x24, 0x8f, 0x51, 0xc5, 0xde, 0xb0, 0x53, 0x30, 0x56}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x02, 0xfe, 0x54, 0x12, 0x18, 0xca, 0x7d, 0xa5, 0x68, 0x43, 0xa3, 0x6d, 0x14, 0x2a, 0x6a, 0xa5, 0x8e, 0x32, 0xe7, 0x63, 0x4f, 0xe3, 0xc6, 0x44, 0x3e, 0xab, 0x63, 0xca, 0x17, 0x86, 0x74, 0x3f}} , + {{0x1e, 0x64, 0xc1, 0x7d, 0x52, 0xdc, 0x13, 0x5a, 0xa1, 0x9c, 0x4e, 0xee, 0x99, 0x28, 0xbb, 0x4c, 0xee, 0xac, 0xa9, 0x1b, 0x89, 0xa2, 0x38, 0x39, 0x7b, 0xc4, 0x0f, 0x42, 0xe6, 0x89, 0xed, 0x0f}}}, +{{{0xf3, 0x3c, 0x8c, 0x80, 0x83, 0x10, 0x8a, 0x37, 0x50, 0x9c, 0xb4, 0xdf, 0x3f, 0x8c, 0xf7, 0x23, 0x07, 0xd6, 0xff, 0xa0, 0x82, 0x6c, 0x75, 0x3b, 0xe4, 0xb5, 0xbb, 0xe4, 0xe6, 0x50, 0xf0, 0x08}} , + {{0x62, 0xee, 0x75, 0x48, 0x92, 0x33, 0xf2, 0xf4, 0xad, 0x15, 0x7a, 0xa1, 0x01, 0x46, 0xa9, 0x32, 0x06, 0x88, 0xb6, 0x36, 0x47, 0x35, 0xb9, 0xb4, 0x42, 0x85, 0x76, 0xf0, 0x48, 0x00, 0x90, 0x38}}}, +{{{0x51, 0x15, 0x9d, 0xc3, 0x95, 0xd1, 0x39, 0xbb, 0x64, 0x9d, 0x15, 0x81, 0xc1, 0x68, 0xd0, 0xb6, 0xa4, 0x2c, 0x7d, 0x5e, 0x02, 0x39, 0x00, 0xe0, 0x3b, 0xa4, 0xcc, 0xca, 0x1d, 0x81, 0x24, 0x10}} , + {{0xe7, 0x29, 0xf9, 0x37, 0xd9, 0x46, 0x5a, 0xcd, 0x70, 0xfe, 0x4d, 0x5b, 0xbf, 0xa5, 0xcf, 0x91, 0xf4, 0xef, 0xee, 0x8a, 0x29, 0xd0, 0xe7, 0xc4, 0x25, 0x92, 0x8a, 0xff, 0x36, 0xfc, 0xe4, 0x49}}}, +{{{0xbd, 0x00, 0xb9, 0x04, 0x7d, 0x35, 0xfc, 0xeb, 0xd0, 0x0b, 0x05, 0x32, 0x52, 0x7a, 0x89, 0x24, 0x75, 0x50, 0xe1, 0x63, 0x02, 0x82, 0x8e, 0xe7, 0x85, 0x0c, 0xf2, 0x56, 0x44, 0x37, 0x83, 0x25}} , + {{0x8f, 0xa1, 0xce, 0xcb, 0x60, 0xda, 0x12, 0x02, 0x1e, 0x29, 0x39, 0x2a, 0x03, 0xb7, 0xeb, 0x77, 0x40, 0xea, 0xc9, 0x2b, 0x2c, 0xd5, 0x7d, 0x7e, 0x2c, 0xc7, 0x5a, 0xfd, 0xff, 0xc4, 0xd1, 0x62}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x1d, 0x88, 0x98, 0x5b, 0x4e, 0xfc, 0x41, 0x24, 0x05, 0xe6, 0x50, 0x2b, 0xae, 0x96, 0x51, 0xd9, 0x6b, 0x72, 0xb2, 0x33, 0x42, 0x98, 0x68, 0xbb, 0x10, 0x5a, 0x7a, 0x8c, 0x9d, 0x07, 0xb4, 0x05}} , + {{0x2f, 0x61, 0x9f, 0xd7, 0xa8, 0x3f, 0x83, 0x8c, 0x10, 0x69, 0x90, 0xe6, 0xcf, 0xd2, 0x63, 0xa3, 0xe4, 0x54, 0x7e, 0xe5, 0x69, 0x13, 0x1c, 0x90, 0x57, 0xaa, 0xe9, 0x53, 0x22, 0x43, 0x29, 0x23}}}, +{{{0xe5, 0x1c, 0xf8, 0x0a, 0xfd, 0x2d, 0x7e, 0xf5, 0xf5, 0x70, 0x7d, 0x41, 0x6b, 0x11, 0xfe, 0xbe, 0x99, 0xd1, 0x55, 0x29, 0x31, 0xbf, 0xc0, 0x97, 0x6c, 0xd5, 0x35, 0xcc, 0x5e, 0x8b, 0xd9, 0x69}} , + {{0x8e, 0x4e, 0x9f, 0x25, 0xf8, 0x81, 0x54, 0x2d, 0x0e, 0xd5, 0x54, 0x81, 0x9b, 0xa6, 0x92, 0xce, 0x4b, 0xe9, 0x8f, 0x24, 0x3b, 0xca, 0xe0, 0x44, 0xab, 0x36, 0xfe, 0xfb, 0x87, 0xd4, 0x26, 0x3e}}}, +{{{0x0f, 0x93, 0x9c, 0x11, 0xe7, 0xdb, 0xf1, 0xf0, 0x85, 0x43, 0x28, 0x15, 0x37, 0xdd, 0xde, 0x27, 0xdf, 0xad, 0x3e, 0x49, 0x4f, 0xe0, 0x5b, 0xf6, 0x80, 0x59, 0x15, 0x3c, 0x85, 0xb7, 0x3e, 0x12}} , + {{0xf5, 0xff, 0xcc, 0xf0, 0xb4, 0x12, 0x03, 0x5f, 0xc9, 0x84, 0xcb, 0x1d, 0x17, 0xe0, 0xbc, 0xcc, 0x03, 0x62, 0xa9, 0x8b, 0x94, 0xa6, 0xaa, 0x18, 0xcb, 0x27, 0x8d, 0x49, 0xa6, 0x17, 0x15, 0x07}}}, +{{{0xd9, 0xb6, 0xd4, 0x9d, 0xd4, 0x6a, 0xaf, 0x70, 0x07, 0x2c, 0x10, 0x9e, 0xbd, 0x11, 0xad, 0xe4, 0x26, 0x33, 0x70, 0x92, 0x78, 0x1c, 0x74, 0x9f, 0x75, 0x60, 0x56, 0xf4, 0x39, 0xa8, 0xa8, 0x62}} , + {{0x3b, 0xbf, 0x55, 0x35, 0x61, 0x8b, 0x44, 0x97, 0xe8, 0x3a, 0x55, 0xc1, 0xc8, 0x3b, 0xfd, 0x95, 0x29, 0x11, 0x60, 0x96, 0x1e, 0xcb, 0x11, 0x9d, 0xc2, 0x03, 0x8a, 0x1b, 0xc6, 0xd6, 0x45, 0x3d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x7e, 0x0e, 0x50, 0xb2, 0xcc, 0x0d, 0x6b, 0xa6, 0x71, 0x5b, 0x42, 0xed, 0xbd, 0xaf, 0xac, 0xf0, 0xfc, 0x12, 0xa2, 0x3f, 0x4e, 0xda, 0xe8, 0x11, 0xf3, 0x23, 0xe1, 0x04, 0x62, 0x03, 0x1c, 0x4e}} , + {{0xc8, 0xb1, 0x1b, 0x6f, 0x73, 0x61, 0x3d, 0x27, 0x0d, 0x7d, 0x7a, 0x25, 0x5f, 0x73, 0x0e, 0x2f, 0x93, 0xf6, 0x24, 0xd8, 0x4f, 0x90, 0xac, 0xa2, 0x62, 0x0a, 0xf0, 0x61, 0xd9, 0x08, 0x59, 0x6a}}}, +{{{0x6f, 0x2d, 0x55, 0xf8, 0x2f, 0x8e, 0xf0, 0x18, 0x3b, 0xea, 0xdd, 0x26, 0x72, 0xd1, 0xf5, 0xfe, 0xe5, 0xb8, 0xe6, 0xd3, 0x10, 0x48, 0x46, 0x49, 0x3a, 0x9f, 0x5e, 0x45, 0x6b, 0x90, 0xe8, 0x7f}} , + {{0xd3, 0x76, 0x69, 0x33, 0x7b, 0xb9, 0x40, 0x70, 0xee, 0xa6, 0x29, 0x6b, 0xdd, 0xd0, 0x5d, 0x8d, 0xc1, 0x3e, 0x4a, 0xea, 0x37, 0xb1, 0x03, 0x02, 0x03, 0x35, 0xf1, 0x28, 0x9d, 0xff, 0x00, 0x13}}}, +{{{0x7a, 0xdb, 0x12, 0xd2, 0x8a, 0x82, 0x03, 0x1b, 0x1e, 0xaf, 0xf9, 0x4b, 0x9c, 0xbe, 0xae, 0x7c, 0xe4, 0x94, 0x2a, 0x23, 0xb3, 0x62, 0x86, 0xe7, 0xfd, 0x23, 0xaa, 0x99, 0xbd, 0x2b, 0x11, 0x6c}} , + {{0x8d, 0xa6, 0xd5, 0xac, 0x9d, 0xcc, 0x68, 0x75, 0x7f, 0xc3, 0x4d, 0x4b, 0xdd, 0x6c, 0xbb, 0x11, 0x5a, 0x60, 0xe5, 0xbd, 0x7d, 0x27, 0x8b, 0xda, 0xb4, 0x95, 0xf6, 0x03, 0x27, 0xa4, 0x92, 0x3f}}}, +{{{0x22, 0xd6, 0xb5, 0x17, 0x84, 0xbf, 0x12, 0xcc, 0x23, 0x14, 0x4a, 0xdf, 0x14, 0x31, 0xbc, 0xa1, 0xac, 0x6e, 0xab, 0xfa, 0x57, 0x11, 0x53, 0xb3, 0x27, 0xe6, 0xf9, 0x47, 0x33, 0x44, 0x34, 0x1e}} , + {{0x79, 0xfc, 0xa6, 0xb4, 0x0b, 0x35, 0x20, 0xc9, 0x4d, 0x22, 0x84, 0xc4, 0xa9, 0x20, 0xec, 0x89, 0x94, 0xba, 0x66, 0x56, 0x48, 0xb9, 0x87, 0x7f, 0xca, 0x1e, 0x06, 0xed, 0xa5, 0x55, 0x59, 0x29}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x56, 0xe1, 0xf5, 0xf1, 0xd5, 0xab, 0xa8, 0x2b, 0xae, 0x89, 0xf3, 0xcf, 0x56, 0x9f, 0xf2, 0x4b, 0x31, 0xbc, 0x18, 0xa9, 0x06, 0x5b, 0xbe, 0xb4, 0x61, 0xf8, 0xb2, 0x06, 0x9c, 0x81, 0xab, 0x4c}} , + {{0x1f, 0x68, 0x76, 0x01, 0x16, 0x38, 0x2b, 0x0f, 0x77, 0x97, 0x92, 0x67, 0x4e, 0x86, 0x6a, 0x8b, 0xe5, 0xe8, 0x0c, 0xf7, 0x36, 0x39, 0xb5, 0x33, 0xe6, 0xcf, 0x5e, 0xbd, 0x18, 0xfb, 0x10, 0x1f}}}, +{{{0x83, 0xf0, 0x0d, 0x63, 0xef, 0x53, 0x6b, 0xb5, 0x6b, 0xf9, 0x83, 0xcf, 0xde, 0x04, 0x22, 0x9b, 0x2c, 0x0a, 0xe0, 0xa5, 0xd8, 0xc7, 0x9c, 0xa5, 0xa3, 0xf6, 0x6f, 0xcf, 0x90, 0x6b, 0x68, 0x7c}} , + {{0x33, 0x15, 0xd7, 0x7f, 0x1a, 0xd5, 0x21, 0x58, 0xc4, 0x18, 0xa5, 0xf0, 0xcc, 0x73, 0xa8, 0xfd, 0xfa, 0x18, 0xd1, 0x03, 0x91, 0x8d, 0x52, 0xd2, 0xa3, 0xa4, 0xd3, 0xb1, 0xea, 0x1d, 0x0f, 0x00}}}, +{{{0xcc, 0x48, 0x83, 0x90, 0xe5, 0xfd, 0x3f, 0x84, 0xaa, 0xf9, 0x8b, 0x82, 0x59, 0x24, 0x34, 0x68, 0x4f, 0x1c, 0x23, 0xd9, 0xcc, 0x71, 0xe1, 0x7f, 0x8c, 0xaf, 0xf1, 0xee, 0x00, 0xb6, 0xa0, 0x77}} , + {{0xf5, 0x1a, 0x61, 0xf7, 0x37, 0x9d, 0x00, 0xf4, 0xf2, 0x69, 0x6f, 0x4b, 0x01, 0x85, 0x19, 0x45, 0x4d, 0x7f, 0x02, 0x7c, 0x6a, 0x05, 0x47, 0x6c, 0x1f, 0x81, 0x20, 0xd4, 0xe8, 0x50, 0x27, 0x72}}}, +{{{0x2c, 0x3a, 0xe5, 0xad, 0xf4, 0xdd, 0x2d, 0xf7, 0x5c, 0x44, 0xb5, 0x5b, 0x21, 0xa3, 0x89, 0x5f, 0x96, 0x45, 0xca, 0x4d, 0xa4, 0x21, 0x99, 0x70, 0xda, 0xc4, 0xc4, 0xa0, 0xe5, 0xf4, 0xec, 0x0a}} , + {{0x07, 0x68, 0x21, 0x65, 0xe9, 0x08, 0xa0, 0x0b, 0x6a, 0x4a, 0xba, 0xb5, 0x80, 0xaf, 0xd0, 0x1b, 0xc5, 0xf5, 0x4b, 0x73, 0x50, 0x60, 0x2d, 0x71, 0x69, 0x61, 0x0e, 0xc0, 0x20, 0x40, 0x30, 0x19}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xd0, 0x75, 0x57, 0x3b, 0xeb, 0x5c, 0x14, 0x56, 0x50, 0xc9, 0x4f, 0xb8, 0xb8, 0x1e, 0xa3, 0xf4, 0xab, 0xf5, 0xa9, 0x20, 0x15, 0x94, 0x82, 0xda, 0x96, 0x1c, 0x9b, 0x59, 0x8c, 0xff, 0xf4, 0x51}} , + {{0xc1, 0x3a, 0x86, 0xd7, 0xb0, 0x06, 0x84, 0x7f, 0x1b, 0xbd, 0xd4, 0x07, 0x78, 0x80, 0x2e, 0xb1, 0xb4, 0xee, 0x52, 0x38, 0xee, 0x9a, 0xf9, 0xf6, 0xf3, 0x41, 0x6e, 0xd4, 0x88, 0x95, 0xac, 0x35}}}, +{{{0x41, 0x97, 0xbf, 0x71, 0x6a, 0x9b, 0x72, 0xec, 0xf3, 0xf8, 0x6b, 0xe6, 0x0e, 0x6c, 0x69, 0xa5, 0x2f, 0x68, 0x52, 0xd8, 0x61, 0x81, 0xc0, 0x63, 0x3f, 0xa6, 0x3c, 0x13, 0x90, 0xe6, 0x8d, 0x56}} , + {{0xe8, 0x39, 0x30, 0x77, 0x23, 0xb1, 0xfd, 0x1b, 0x3d, 0x3e, 0x74, 0x4d, 0x7f, 0xae, 0x5b, 0x3a, 0xb4, 0x65, 0x0e, 0x3a, 0x43, 0xdc, 0xdc, 0x41, 0x47, 0xe6, 0xe8, 0x92, 0x09, 0x22, 0x48, 0x4c}}}, +{{{0x85, 0x57, 0x9f, 0xb5, 0xc8, 0x06, 0xb2, 0x9f, 0x47, 0x3f, 0xf0, 0xfa, 0xe6, 0xa9, 0xb1, 0x9b, 0x6f, 0x96, 0x7d, 0xf9, 0xa4, 0x65, 0x09, 0x75, 0x32, 0xa6, 0x6c, 0x7f, 0x47, 0x4b, 0x2f, 0x4f}} , + {{0x34, 0xe9, 0x59, 0x93, 0x9d, 0x26, 0x80, 0x54, 0xf2, 0xcc, 0x3c, 0xc2, 0x25, 0x85, 0xe3, 0x6a, 0xc1, 0x62, 0x04, 0xa7, 0x08, 0x32, 0x6d, 0xa1, 0x39, 0x84, 0x8a, 0x3b, 0x87, 0x5f, 0x11, 0x13}}}, +{{{0xda, 0x03, 0x34, 0x66, 0xc4, 0x0c, 0x73, 0x6e, 0xbc, 0x24, 0xb5, 0xf9, 0x70, 0x81, 0x52, 0xe9, 0xf4, 0x7c, 0x23, 0xdd, 0x9f, 0xb8, 0x46, 0xef, 0x1d, 0x22, 0x55, 0x7d, 0x71, 0xc4, 0x42, 0x33}} , + {{0xc5, 0x37, 0x69, 0x5b, 0xa8, 0xc6, 0x9d, 0xa4, 0xfc, 0x61, 0x6e, 0x68, 0x46, 0xea, 0xd7, 0x1c, 0x67, 0xd2, 0x7d, 0xfa, 0xf1, 0xcc, 0x54, 0x8d, 0x36, 0x35, 0xc9, 0x00, 0xdf, 0x6c, 0x67, 0x50}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x9a, 0x4d, 0x42, 0x29, 0x5d, 0xa4, 0x6b, 0x6f, 0xa8, 0x8a, 0x4d, 0x91, 0x7b, 0xd2, 0xdf, 0x36, 0xef, 0x01, 0x22, 0xc5, 0xcc, 0x8d, 0xeb, 0x58, 0x3d, 0xb3, 0x50, 0xfc, 0x8b, 0x97, 0x96, 0x33}} , + {{0x93, 0x33, 0x07, 0xc8, 0x4a, 0xca, 0xd0, 0xb1, 0xab, 0xbd, 0xdd, 0xa7, 0x7c, 0xac, 0x3e, 0x45, 0xcb, 0xcc, 0x07, 0x91, 0xbf, 0x35, 0x9d, 0xcb, 0x7d, 0x12, 0x3c, 0x11, 0x59, 0x13, 0xcf, 0x5c}}}, +{{{0x45, 0xb8, 0x41, 0xd7, 0xab, 0x07, 0x15, 0x00, 0x8e, 0xce, 0xdf, 0xb2, 0x43, 0x5c, 0x01, 0xdc, 0xf4, 0x01, 0x51, 0x95, 0x10, 0x5a, 0xf6, 0x24, 0x24, 0xa0, 0x19, 0x3a, 0x09, 0x2a, 0xaa, 0x3f}} , + {{0xdc, 0x8e, 0xeb, 0xc6, 0xbf, 0xdd, 0x11, 0x7b, 0xe7, 0x47, 0xe6, 0xce, 0xe7, 0xb6, 0xc5, 0xe8, 0x8a, 0xdc, 0x4b, 0x57, 0x15, 0x3b, 0x66, 0xca, 0x89, 0xa3, 0xfd, 0xac, 0x0d, 0xe1, 0x1d, 0x7a}}}, +{{{0x89, 0xef, 0xbf, 0x03, 0x75, 0xd0, 0x29, 0x50, 0xcb, 0x7d, 0xd6, 0xbe, 0xad, 0x5f, 0x7b, 0x00, 0x32, 0xaa, 0x98, 0xed, 0x3f, 0x8f, 0x92, 0xcb, 0x81, 0x56, 0x01, 0x63, 0x64, 0xa3, 0x38, 0x39}} , + {{0x8b, 0xa4, 0xd6, 0x50, 0xb4, 0xaa, 0x5d, 0x64, 0x64, 0x76, 0x2e, 0xa1, 0xa6, 0xb3, 0xb8, 0x7c, 0x7a, 0x56, 0xf5, 0x5c, 0x4e, 0x84, 0x5c, 0xfb, 0xdd, 0xca, 0x48, 0x8b, 0x48, 0xb9, 0xba, 0x34}}}, +{{{0xc5, 0xe3, 0xe8, 0xae, 0x17, 0x27, 0xe3, 0x64, 0x60, 0x71, 0x47, 0x29, 0x02, 0x0f, 0x92, 0x5d, 0x10, 0x93, 0xc8, 0x0e, 0xa1, 0xed, 0xba, 0xa9, 0x96, 0x1c, 0xc5, 0x76, 0x30, 0xcd, 0xf9, 0x30}} , + {{0x95, 0xb0, 0xbd, 0x8c, 0xbc, 0xa7, 0x4f, 0x7e, 0xfd, 0x4e, 0x3a, 0xbf, 0x5f, 0x04, 0x79, 0x80, 0x2b, 0x5a, 0x9f, 0x4f, 0x68, 0x21, 0x19, 0x71, 0xc6, 0x20, 0x01, 0x42, 0xaa, 0xdf, 0xae, 0x2c}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x90, 0x6e, 0x7e, 0x4b, 0x71, 0x93, 0xc0, 0x72, 0xed, 0xeb, 0x71, 0x24, 0x97, 0x26, 0x9c, 0xfe, 0xcb, 0x3e, 0x59, 0x19, 0xa8, 0x0f, 0x75, 0x7d, 0xbe, 0x18, 0xe6, 0x96, 0x1e, 0x95, 0x70, 0x60}} , + {{0x89, 0x66, 0x3e, 0x1d, 0x4c, 0x5f, 0xfe, 0xc0, 0x04, 0x43, 0xd6, 0x44, 0x19, 0xb5, 0xad, 0xc7, 0x22, 0xdc, 0x71, 0x28, 0x64, 0xde, 0x41, 0x38, 0x27, 0x8f, 0x2c, 0x6b, 0x08, 0xb8, 0xb8, 0x7b}}}, +{{{0x3d, 0x70, 0x27, 0x9d, 0xd9, 0xaf, 0xb1, 0x27, 0xaf, 0xe3, 0x5d, 0x1e, 0x3a, 0x30, 0x54, 0x61, 0x60, 0xe8, 0xc3, 0x26, 0x3a, 0xbc, 0x7e, 0xf5, 0x81, 0xdd, 0x64, 0x01, 0x04, 0xeb, 0xc0, 0x1e}} , + {{0xda, 0x2c, 0xa4, 0xd1, 0xa1, 0xc3, 0x5c, 0x6e, 0x32, 0x07, 0x1f, 0xb8, 0x0e, 0x19, 0x9e, 0x99, 0x29, 0x33, 0x9a, 0xae, 0x7a, 0xed, 0x68, 0x42, 0x69, 0x7c, 0x07, 0xb3, 0x38, 0x2c, 0xf6, 0x3d}}}, +{{{0x64, 0xaa, 0xb5, 0x88, 0x79, 0x65, 0x38, 0x8c, 0x94, 0xd6, 0x62, 0x37, 0x7d, 0x64, 0xcd, 0x3a, 0xeb, 0xff, 0xe8, 0x81, 0x09, 0xc7, 0x6a, 0x50, 0x09, 0x0d, 0x28, 0x03, 0x0d, 0x9a, 0x93, 0x0a}} , + {{0x42, 0xa3, 0xf1, 0xc5, 0xb4, 0x0f, 0xd8, 0xc8, 0x8d, 0x15, 0x31, 0xbd, 0xf8, 0x07, 0x8b, 0xcd, 0x08, 0x8a, 0xfb, 0x18, 0x07, 0xfe, 0x8e, 0x52, 0x86, 0xef, 0xbe, 0xec, 0x49, 0x52, 0x99, 0x08}}}, +{{{0x0f, 0xa9, 0xd5, 0x01, 0xaa, 0x48, 0x4f, 0x28, 0x66, 0x32, 0x1a, 0xba, 0x7c, 0xea, 0x11, 0x80, 0x17, 0x18, 0x9b, 0x56, 0x88, 0x25, 0x06, 0x69, 0x12, 0x2c, 0xea, 0x56, 0x69, 0x41, 0x24, 0x19}} , + {{0xde, 0x21, 0xf0, 0xda, 0x8a, 0xfb, 0xb1, 0xb8, 0xcd, 0xc8, 0x6a, 0x82, 0x19, 0x73, 0xdb, 0xc7, 0xcf, 0x88, 0xeb, 0x96, 0xee, 0x6f, 0xfb, 0x06, 0xd2, 0xcd, 0x7d, 0x7b, 0x12, 0x28, 0x8e, 0x0c}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x93, 0x44, 0x97, 0xce, 0x28, 0xff, 0x3a, 0x40, 0xc4, 0xf5, 0xf6, 0x9b, 0xf4, 0x6b, 0x07, 0x84, 0xfb, 0x98, 0xd8, 0xec, 0x8c, 0x03, 0x57, 0xec, 0x49, 0xed, 0x63, 0xb6, 0xaa, 0xff, 0x98, 0x28}} , + {{0x3d, 0x16, 0x35, 0xf3, 0x46, 0xbc, 0xb3, 0xf4, 0xc6, 0xb6, 0x4f, 0xfa, 0xf4, 0xa0, 0x13, 0xe6, 0x57, 0x45, 0x93, 0xb9, 0xbc, 0xd6, 0x59, 0xe7, 0x77, 0x94, 0x6c, 0xab, 0x96, 0x3b, 0x4f, 0x09}}}, +{{{0x5a, 0xf7, 0x6b, 0x01, 0x12, 0x4f, 0x51, 0xc1, 0x70, 0x84, 0x94, 0x47, 0xb2, 0x01, 0x6c, 0x71, 0xd7, 0xcc, 0x17, 0x66, 0x0f, 0x59, 0x5d, 0x5d, 0x10, 0x01, 0x57, 0x11, 0xf5, 0xdd, 0xe2, 0x34}} , + {{0x26, 0xd9, 0x1f, 0x5c, 0x58, 0xac, 0x8b, 0x03, 0xd2, 0xc3, 0x85, 0x0f, 0x3a, 0xc3, 0x7f, 0x6d, 0x8e, 0x86, 0xcd, 0x52, 0x74, 0x8f, 0x55, 0x77, 0x17, 0xb7, 0x8e, 0xb7, 0x88, 0xea, 0xda, 0x1b}}}, +{{{0xb6, 0xea, 0x0e, 0x40, 0x93, 0x20, 0x79, 0x35, 0x6a, 0x61, 0x84, 0x5a, 0x07, 0x6d, 0xf9, 0x77, 0x6f, 0xed, 0x69, 0x1c, 0x0d, 0x25, 0x76, 0xcc, 0xf0, 0xdb, 0xbb, 0xc5, 0xad, 0xe2, 0x26, 0x57}} , + {{0xcf, 0xe8, 0x0e, 0x6b, 0x96, 0x7d, 0xed, 0x27, 0xd1, 0x3c, 0xa9, 0xd9, 0x50, 0xa9, 0x98, 0x84, 0x5e, 0x86, 0xef, 0xd6, 0xf0, 0xf8, 0x0e, 0x89, 0x05, 0x2f, 0xd9, 0x5f, 0x15, 0x5f, 0x73, 0x79}}}, +{{{0xc8, 0x5c, 0x16, 0xfe, 0xed, 0x9f, 0x26, 0x56, 0xf6, 0x4b, 0x9f, 0xa7, 0x0a, 0x85, 0xfe, 0xa5, 0x8c, 0x87, 0xdd, 0x98, 0xce, 0x4e, 0xc3, 0x58, 0x55, 0xb2, 0x7b, 0x3d, 0xd8, 0x6b, 0xb5, 0x4c}} , + {{0x65, 0x38, 0xa0, 0x15, 0xfa, 0xa7, 0xb4, 0x8f, 0xeb, 0xc4, 0x86, 0x9b, 0x30, 0xa5, 0x5e, 0x4d, 0xea, 0x8a, 0x9a, 0x9f, 0x1a, 0xd8, 0x5b, 0x53, 0x14, 0x19, 0x25, 0x63, 0xb4, 0x6f, 0x1f, 0x5d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xac, 0x8f, 0xbc, 0x1e, 0x7d, 0x8b, 0x5a, 0x0b, 0x8d, 0xaf, 0x76, 0x2e, 0x71, 0xe3, 0x3b, 0x6f, 0x53, 0x2f, 0x3e, 0x90, 0x95, 0xd4, 0x35, 0x14, 0x4f, 0x8c, 0x3c, 0xce, 0x57, 0x1c, 0x76, 0x49}} , + {{0xa8, 0x50, 0xe1, 0x61, 0x6b, 0x57, 0x35, 0xeb, 0x44, 0x0b, 0x0c, 0x6e, 0xf9, 0x25, 0x80, 0x74, 0xf2, 0x8f, 0x6f, 0x7a, 0x3e, 0x7f, 0x2d, 0xf3, 0x4e, 0x09, 0x65, 0x10, 0x5e, 0x03, 0x25, 0x32}}}, +{{{0xa9, 0x60, 0xdc, 0x0f, 0x64, 0xe5, 0x1d, 0xe2, 0x8d, 0x4f, 0x79, 0x2f, 0x0e, 0x24, 0x02, 0x00, 0x05, 0x77, 0x43, 0x25, 0x3d, 0x6a, 0xc7, 0xb7, 0xbf, 0x04, 0x08, 0x65, 0xf4, 0x39, 0x4b, 0x65}} , + {{0x96, 0x19, 0x12, 0x6b, 0x6a, 0xb7, 0xe3, 0xdc, 0x45, 0x9b, 0xdb, 0xb4, 0xa8, 0xae, 0xdc, 0xa8, 0x14, 0x44, 0x65, 0x62, 0xce, 0x34, 0x9a, 0x84, 0x18, 0x12, 0x01, 0xf1, 0xe2, 0x7b, 0xce, 0x50}}}, +{{{0x41, 0x21, 0x30, 0x53, 0x1b, 0x47, 0x01, 0xb7, 0x18, 0xd8, 0x82, 0x57, 0xbd, 0xa3, 0x60, 0xf0, 0x32, 0xf6, 0x5b, 0xf0, 0x30, 0x88, 0x91, 0x59, 0xfd, 0x90, 0xa2, 0xb9, 0x55, 0x93, 0x21, 0x34}} , + {{0x97, 0x67, 0x9e, 0xeb, 0x6a, 0xf9, 0x6e, 0xd6, 0x73, 0xe8, 0x6b, 0x29, 0xec, 0x63, 0x82, 0x00, 0xa8, 0x99, 0x1c, 0x1d, 0x30, 0xc8, 0x90, 0x52, 0x90, 0xb6, 0x6a, 0x80, 0x4e, 0xff, 0x4b, 0x51}}}, +{{{0x0f, 0x7d, 0x63, 0x8c, 0x6e, 0x5c, 0xde, 0x30, 0xdf, 0x65, 0xfa, 0x2e, 0xb0, 0xa3, 0x25, 0x05, 0x54, 0xbd, 0x25, 0xba, 0x06, 0xae, 0xdf, 0x8b, 0xd9, 0x1b, 0xea, 0x38, 0xb3, 0x05, 0x16, 0x09}} , + {{0xc7, 0x8c, 0xbf, 0x64, 0x28, 0xad, 0xf8, 0xa5, 0x5a, 0x6f, 0xc9, 0xba, 0xd5, 0x7f, 0xd5, 0xd6, 0xbd, 0x66, 0x2f, 0x3d, 0xaa, 0x54, 0xf6, 0xba, 0x32, 0x22, 0x9a, 0x1e, 0x52, 0x05, 0xf4, 0x1d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xaa, 0x1f, 0xbb, 0xeb, 0xfe, 0xe4, 0x87, 0xfc, 0xb1, 0x2c, 0xb7, 0x88, 0xf4, 0xc6, 0xb9, 0xf5, 0x24, 0x46, 0xf2, 0xa5, 0x9f, 0x8f, 0x8a, 0x93, 0x70, 0x69, 0xd4, 0x56, 0xec, 0xfd, 0x06, 0x46}} , + {{0x4e, 0x66, 0xcf, 0x4e, 0x34, 0xce, 0x0c, 0xd9, 0xa6, 0x50, 0xd6, 0x5e, 0x95, 0xaf, 0xe9, 0x58, 0xfa, 0xee, 0x9b, 0xb8, 0xa5, 0x0f, 0x35, 0xe0, 0x43, 0x82, 0x6d, 0x65, 0xe6, 0xd9, 0x00, 0x0f}}}, +{{{0x7b, 0x75, 0x3a, 0xfc, 0x64, 0xd3, 0x29, 0x7e, 0xdd, 0x49, 0x9a, 0x59, 0x53, 0xbf, 0xb4, 0xa7, 0x52, 0xb3, 0x05, 0xab, 0xc3, 0xaf, 0x16, 0x1a, 0x85, 0x42, 0x32, 0xa2, 0x86, 0xfa, 0x39, 0x43}} , + {{0x0e, 0x4b, 0xa3, 0x63, 0x8a, 0xfe, 0xa5, 0x58, 0xf1, 0x13, 0xbd, 0x9d, 0xaa, 0x7f, 0x76, 0x40, 0x70, 0x81, 0x10, 0x75, 0x99, 0xbb, 0xbe, 0x0b, 0x16, 0xe9, 0xba, 0x62, 0x34, 0xcc, 0x07, 0x6d}}}, +{{{0xc3, 0xf1, 0xc6, 0x93, 0x65, 0xee, 0x0b, 0xbc, 0xea, 0x14, 0xf0, 0xc1, 0xf8, 0x84, 0x89, 0xc2, 0xc9, 0xd7, 0xea, 0x34, 0xca, 0xa7, 0xc4, 0x99, 0xd5, 0x50, 0x69, 0xcb, 0xd6, 0x21, 0x63, 0x7c}} , + {{0x99, 0xeb, 0x7c, 0x31, 0x73, 0x64, 0x67, 0x7f, 0x0c, 0x66, 0xaa, 0x8c, 0x69, 0x91, 0xe2, 0x26, 0xd3, 0x23, 0xe2, 0x76, 0x5d, 0x32, 0x52, 0xdf, 0x5d, 0xc5, 0x8f, 0xb7, 0x7c, 0x84, 0xb3, 0x70}}}, +{{{0xeb, 0x01, 0xc7, 0x36, 0x97, 0x4e, 0xb6, 0xab, 0x5f, 0x0d, 0x2c, 0xba, 0x67, 0x64, 0x55, 0xde, 0xbc, 0xff, 0xa6, 0xec, 0x04, 0xd3, 0x8d, 0x39, 0x56, 0x5e, 0xee, 0xf8, 0xe4, 0x2e, 0x33, 0x62}} , + {{0x65, 0xef, 0xb8, 0x9f, 0xc8, 0x4b, 0xa7, 0xfd, 0x21, 0x49, 0x9b, 0x92, 0x35, 0x82, 0xd6, 0x0a, 0x9b, 0xf2, 0x79, 0xf1, 0x47, 0x2f, 0x6a, 0x7e, 0x9f, 0xcf, 0x18, 0x02, 0x3c, 0xfb, 0x1b, 0x3e}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x2f, 0x8b, 0xc8, 0x40, 0x51, 0xd1, 0xac, 0x1a, 0x0b, 0xe4, 0xa9, 0xa2, 0x42, 0x21, 0x19, 0x2f, 0x7b, 0x97, 0xbf, 0xf7, 0x57, 0x6d, 0x3f, 0x3d, 0x4f, 0x0f, 0xe2, 0xb2, 0x81, 0x00, 0x9e, 0x7b}} , + {{0x8c, 0x85, 0x2b, 0xc4, 0xfc, 0xf1, 0xab, 0xe8, 0x79, 0x22, 0xc4, 0x84, 0x17, 0x3a, 0xfa, 0x86, 0xa6, 0x7d, 0xf9, 0xf3, 0x6f, 0x03, 0x57, 0x20, 0x4d, 0x79, 0xf9, 0x6e, 0x71, 0x54, 0x38, 0x09}}}, +{{{0x40, 0x29, 0x74, 0xa8, 0x2f, 0x5e, 0xf9, 0x79, 0xa4, 0xf3, 0x3e, 0xb9, 0xfd, 0x33, 0x31, 0xac, 0x9a, 0x69, 0x88, 0x1e, 0x77, 0x21, 0x2d, 0xf3, 0x91, 0x52, 0x26, 0x15, 0xb2, 0xa6, 0xcf, 0x7e}} , + {{0xc6, 0x20, 0x47, 0x6c, 0xa4, 0x7d, 0xcb, 0x63, 0xea, 0x5b, 0x03, 0xdf, 0x3e, 0x88, 0x81, 0x6d, 0xce, 0x07, 0x42, 0x18, 0x60, 0x7e, 0x7b, 0x55, 0xfe, 0x6a, 0xf3, 0xda, 0x5c, 0x8b, 0x95, 0x10}}}, +{{{0x62, 0xe4, 0x0d, 0x03, 0xb4, 0xd7, 0xcd, 0xfa, 0xbd, 0x46, 0xdf, 0x93, 0x71, 0x10, 0x2c, 0xa8, 0x3b, 0xb6, 0x09, 0x05, 0x70, 0x84, 0x43, 0x29, 0xa8, 0x59, 0xf5, 0x8e, 0x10, 0xe4, 0xd7, 0x20}} , + {{0x57, 0x82, 0x1c, 0xab, 0xbf, 0x62, 0x70, 0xe8, 0xc4, 0xcf, 0xf0, 0x28, 0x6e, 0x16, 0x3c, 0x08, 0x78, 0x89, 0x85, 0x46, 0x0f, 0xf6, 0x7f, 0xcf, 0xcb, 0x7e, 0xb8, 0x25, 0xe9, 0x5a, 0xfa, 0x03}}}, +{{{0xfb, 0x95, 0x92, 0x63, 0x50, 0xfc, 0x62, 0xf0, 0xa4, 0x5e, 0x8c, 0x18, 0xc2, 0x17, 0x24, 0xb7, 0x78, 0xc2, 0xa9, 0xe7, 0x6a, 0x32, 0xd6, 0x29, 0x85, 0xaf, 0xcb, 0x8d, 0x91, 0x13, 0xda, 0x6b}} , + {{0x36, 0x0a, 0xc2, 0xb6, 0x4b, 0xa5, 0x5d, 0x07, 0x17, 0x41, 0x31, 0x5f, 0x62, 0x46, 0xf8, 0x92, 0xf9, 0x66, 0x48, 0x73, 0xa6, 0x97, 0x0d, 0x7d, 0x88, 0xee, 0x62, 0xb1, 0x03, 0xa8, 0x3f, 0x2c}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x4a, 0xb1, 0x70, 0x8a, 0xa9, 0xe8, 0x63, 0x79, 0x00, 0xe2, 0x25, 0x16, 0xca, 0x4b, 0x0f, 0xa4, 0x66, 0xad, 0x19, 0x9f, 0x88, 0x67, 0x0c, 0x8b, 0xc2, 0x4a, 0x5b, 0x2b, 0x6d, 0x95, 0xaf, 0x19}} , + {{0x8b, 0x9d, 0xb6, 0xcc, 0x60, 0xb4, 0x72, 0x4f, 0x17, 0x69, 0x5a, 0x4a, 0x68, 0x34, 0xab, 0xa1, 0x45, 0x32, 0x3c, 0x83, 0x87, 0x72, 0x30, 0x54, 0x77, 0x68, 0xae, 0xfb, 0xb5, 0x8b, 0x22, 0x5e}}}, +{{{0xf1, 0xb9, 0x87, 0x35, 0xc5, 0xbb, 0xb9, 0xcf, 0xf5, 0xd6, 0xcd, 0xd5, 0x0c, 0x7c, 0x0e, 0xe6, 0x90, 0x34, 0xfb, 0x51, 0x42, 0x1e, 0x6d, 0xac, 0x9a, 0x46, 0xc4, 0x97, 0x29, 0x32, 0xbf, 0x45}} , + {{0x66, 0x9e, 0xc6, 0x24, 0xc0, 0xed, 0xa5, 0x5d, 0x88, 0xd4, 0xf0, 0x73, 0x97, 0x7b, 0xea, 0x7f, 0x42, 0xff, 0x21, 0xa0, 0x9b, 0x2f, 0x9a, 0xfd, 0x53, 0x57, 0x07, 0x84, 0x48, 0x88, 0x9d, 0x52}}}, +{{{0xc6, 0x96, 0x48, 0x34, 0x2a, 0x06, 0xaf, 0x94, 0x3d, 0xf4, 0x1a, 0xcf, 0xf2, 0xc0, 0x21, 0xc2, 0x42, 0x5e, 0xc8, 0x2f, 0x35, 0xa2, 0x3e, 0x29, 0xfa, 0x0c, 0x84, 0xe5, 0x89, 0x72, 0x7c, 0x06}} , + {{0x32, 0x65, 0x03, 0xe5, 0x89, 0xa6, 0x6e, 0xb3, 0x5b, 0x8e, 0xca, 0xeb, 0xfe, 0x22, 0x56, 0x8b, 0x5d, 0x14, 0x4b, 0x4d, 0xf9, 0xbe, 0xb5, 0xf5, 0xe6, 0x5c, 0x7b, 0x8b, 0xf4, 0x13, 0x11, 0x34}}}, +{{{0x07, 0xc6, 0x22, 0x15, 0xe2, 0x9c, 0x60, 0xa2, 0x19, 0xd9, 0x27, 0xae, 0x37, 0x4e, 0xa6, 0xc9, 0x80, 0xa6, 0x91, 0x8f, 0x12, 0x49, 0xe5, 0x00, 0x18, 0x47, 0xd1, 0xd7, 0x28, 0x22, 0x63, 0x39}} , + {{0xe8, 0xe2, 0x00, 0x7e, 0xf2, 0x9e, 0x1e, 0x99, 0x39, 0x95, 0x04, 0xbd, 0x1e, 0x67, 0x7b, 0xb2, 0x26, 0xac, 0xe6, 0xaa, 0xe2, 0x46, 0xd5, 0xe4, 0xe8, 0x86, 0xbd, 0xab, 0x7c, 0x55, 0x59, 0x6f}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x24, 0x64, 0x6e, 0x9b, 0x35, 0x71, 0x78, 0xce, 0x33, 0x03, 0x21, 0x33, 0x36, 0xf1, 0x73, 0x9b, 0xb9, 0x15, 0x8b, 0x2c, 0x69, 0xcf, 0x4d, 0xed, 0x4f, 0x4d, 0x57, 0x14, 0x13, 0x82, 0xa4, 0x4d}} , + {{0x65, 0x6e, 0x0a, 0xa4, 0x59, 0x07, 0x17, 0xf2, 0x6b, 0x4a, 0x1f, 0x6e, 0xf6, 0xb5, 0xbc, 0x62, 0xe4, 0xb6, 0xda, 0xa2, 0x93, 0xbc, 0x29, 0x05, 0xd2, 0xd2, 0x73, 0x46, 0x03, 0x16, 0x40, 0x31}}}, +{{{0x4c, 0x73, 0x6d, 0x15, 0xbd, 0xa1, 0x4d, 0x5c, 0x13, 0x0b, 0x24, 0x06, 0x98, 0x78, 0x1c, 0x5b, 0xeb, 0x1f, 0x18, 0x54, 0x43, 0xd9, 0x55, 0x66, 0xda, 0x29, 0x21, 0xe8, 0xb8, 0x3c, 0x42, 0x22}} , + {{0xb4, 0xcd, 0x08, 0x6f, 0x15, 0x23, 0x1a, 0x0b, 0x22, 0xed, 0xd1, 0xf1, 0xa7, 0xc7, 0x73, 0x45, 0xf3, 0x9e, 0xce, 0x76, 0xb7, 0xf6, 0x39, 0xb6, 0x8e, 0x79, 0xbe, 0xe9, 0x9b, 0xcf, 0x7d, 0x62}}}, +{{{0x92, 0x5b, 0xfc, 0x72, 0xfd, 0xba, 0xf1, 0xfd, 0xa6, 0x7c, 0x95, 0xe3, 0x61, 0x3f, 0xe9, 0x03, 0xd4, 0x2b, 0xd4, 0x20, 0xd9, 0xdb, 0x4d, 0x32, 0x3e, 0xf5, 0x11, 0x64, 0xe3, 0xb4, 0xbe, 0x32}} , + {{0x86, 0x17, 0x90, 0xe7, 0xc9, 0x1f, 0x10, 0xa5, 0x6a, 0x2d, 0x39, 0xd0, 0x3b, 0xc4, 0xa6, 0xe9, 0x59, 0x13, 0xda, 0x1a, 0xe6, 0xa0, 0xb9, 0x3c, 0x50, 0xb8, 0x40, 0x7c, 0x15, 0x36, 0x5a, 0x42}}}, +{{{0xb4, 0x0b, 0x32, 0xab, 0xdc, 0x04, 0x51, 0x55, 0x21, 0x1e, 0x0b, 0x75, 0x99, 0x89, 0x73, 0x35, 0x3a, 0x91, 0x2b, 0xfe, 0xe7, 0x49, 0xea, 0x76, 0xc1, 0xf9, 0x46, 0xb9, 0x53, 0x02, 0x23, 0x04}} , + {{0xfc, 0x5a, 0x1e, 0x1d, 0x74, 0x58, 0x95, 0xa6, 0x8f, 0x7b, 0x97, 0x3e, 0x17, 0x3b, 0x79, 0x2d, 0xa6, 0x57, 0xef, 0x45, 0x02, 0x0b, 0x4d, 0x6e, 0x9e, 0x93, 0x8d, 0x2f, 0xd9, 0x9d, 0xdb, 0x04}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xc0, 0xd7, 0x56, 0x97, 0x58, 0x91, 0xde, 0x09, 0x4f, 0x9f, 0xbe, 0x63, 0xb0, 0x83, 0x86, 0x43, 0x5d, 0xbc, 0xe0, 0xf3, 0xc0, 0x75, 0xbf, 0x8b, 0x8e, 0xaa, 0xf7, 0x8b, 0x64, 0x6e, 0xb0, 0x63}} , + {{0x16, 0xae, 0x8b, 0xe0, 0x9b, 0x24, 0x68, 0x5c, 0x44, 0xc2, 0xd0, 0x08, 0xb7, 0x7b, 0x62, 0xfd, 0x7f, 0xd8, 0xd4, 0xb7, 0x50, 0xfd, 0x2c, 0x1b, 0xbf, 0x41, 0x95, 0xd9, 0x8e, 0xd8, 0x17, 0x1b}}}, +{{{0x86, 0x55, 0x37, 0x8e, 0xc3, 0x38, 0x48, 0x14, 0xb5, 0x97, 0xd2, 0xa7, 0x54, 0x45, 0xf1, 0x35, 0x44, 0x38, 0x9e, 0xf1, 0x1b, 0xb6, 0x34, 0x00, 0x3c, 0x96, 0xee, 0x29, 0x00, 0xea, 0x2c, 0x0b}} , + {{0xea, 0xda, 0x99, 0x9e, 0x19, 0x83, 0x66, 0x6d, 0xe9, 0x76, 0x87, 0x50, 0xd1, 0xfd, 0x3c, 0x60, 0x87, 0xc6, 0x41, 0xd9, 0x8e, 0xdb, 0x5e, 0xde, 0xaa, 0x9a, 0xd3, 0x28, 0xda, 0x95, 0xea, 0x47}}}, +{{{0xd0, 0x80, 0xba, 0x19, 0xae, 0x1d, 0xa9, 0x79, 0xf6, 0x3f, 0xac, 0x5d, 0x6f, 0x96, 0x1f, 0x2a, 0xce, 0x29, 0xb2, 0xff, 0x37, 0xf1, 0x94, 0x8f, 0x0c, 0xb5, 0x28, 0xba, 0x9a, 0x21, 0xf6, 0x66}} , + {{0x02, 0xfb, 0x54, 0xb8, 0x05, 0xf3, 0x81, 0x52, 0x69, 0x34, 0x46, 0x9d, 0x86, 0x76, 0x8f, 0xd7, 0xf8, 0x6a, 0x66, 0xff, 0xe6, 0xa7, 0x90, 0xf7, 0x5e, 0xcd, 0x6a, 0x9b, 0x55, 0xfc, 0x9d, 0x48}}}, +{{{0xbd, 0xaa, 0x13, 0xe6, 0xcd, 0x45, 0x4a, 0xa4, 0x59, 0x0a, 0x64, 0xb1, 0x98, 0xd6, 0x34, 0x13, 0x04, 0xe6, 0x97, 0x94, 0x06, 0xcb, 0xd4, 0x4e, 0xbb, 0x96, 0xcd, 0xd1, 0x57, 0xd1, 0xe3, 0x06}} , + {{0x7a, 0x6c, 0x45, 0x27, 0xc4, 0x93, 0x7f, 0x7d, 0x7c, 0x62, 0x50, 0x38, 0x3a, 0x6b, 0xb5, 0x88, 0xc6, 0xd9, 0xf1, 0x78, 0x19, 0xb9, 0x39, 0x93, 0x3d, 0xc9, 0xe0, 0x9c, 0x3c, 0xce, 0xf5, 0x72}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x24, 0xea, 0x23, 0x7d, 0x56, 0x2c, 0xe2, 0x59, 0x0e, 0x85, 0x60, 0x04, 0x88, 0x5a, 0x74, 0x1e, 0x4b, 0xef, 0x13, 0xda, 0x4c, 0xff, 0x83, 0x45, 0x85, 0x3f, 0x08, 0x95, 0x2c, 0x20, 0x13, 0x1f}} , + {{0x48, 0x5f, 0x27, 0x90, 0x5c, 0x02, 0x42, 0xad, 0x78, 0x47, 0x5c, 0xb5, 0x7e, 0x08, 0x85, 0x00, 0xfa, 0x7f, 0xfd, 0xfd, 0xe7, 0x09, 0x11, 0xf2, 0x7e, 0x1b, 0x38, 0x6c, 0x35, 0x6d, 0x33, 0x66}}}, +{{{0x93, 0x03, 0x36, 0x81, 0xac, 0xe4, 0x20, 0x09, 0x35, 0x4c, 0x45, 0xb2, 0x1e, 0x4c, 0x14, 0x21, 0xe6, 0xe9, 0x8a, 0x7b, 0x8d, 0xfe, 0x1e, 0xc6, 0x3e, 0xc1, 0x35, 0xfa, 0xe7, 0x70, 0x4e, 0x1d}} , + {{0x61, 0x2e, 0xc2, 0xdd, 0x95, 0x57, 0xd1, 0xab, 0x80, 0xe8, 0x63, 0x17, 0xb5, 0x48, 0xe4, 0x8a, 0x11, 0x9e, 0x72, 0xbe, 0x85, 0x8d, 0x51, 0x0a, 0xf2, 0x9f, 0xe0, 0x1c, 0xa9, 0x07, 0x28, 0x7b}}}, +{{{0xbb, 0x71, 0x14, 0x5e, 0x26, 0x8c, 0x3d, 0xc8, 0xe9, 0x7c, 0xd3, 0xd6, 0xd1, 0x2f, 0x07, 0x6d, 0xe6, 0xdf, 0xfb, 0x79, 0xd6, 0x99, 0x59, 0x96, 0x48, 0x40, 0x0f, 0x3a, 0x7b, 0xb2, 0xa0, 0x72}} , + {{0x4e, 0x3b, 0x69, 0xc8, 0x43, 0x75, 0x51, 0x6c, 0x79, 0x56, 0xe4, 0xcb, 0xf7, 0xa6, 0x51, 0xc2, 0x2c, 0x42, 0x0b, 0xd4, 0x82, 0x20, 0x1c, 0x01, 0x08, 0x66, 0xd7, 0xbf, 0x04, 0x56, 0xfc, 0x02}}}, +{{{0x24, 0xe8, 0xb7, 0x60, 0xae, 0x47, 0x80, 0xfc, 0xe5, 0x23, 0xe7, 0xc2, 0xc9, 0x85, 0xe6, 0x98, 0xa0, 0x29, 0x4e, 0xe1, 0x84, 0x39, 0x2d, 0x95, 0x2c, 0xf3, 0x45, 0x3c, 0xff, 0xaf, 0x27, 0x4c}} , + {{0x6b, 0xa6, 0xf5, 0x4b, 0x11, 0xbd, 0xba, 0x5b, 0x9e, 0xc4, 0xa4, 0x51, 0x1e, 0xbe, 0xd0, 0x90, 0x3a, 0x9c, 0xc2, 0x26, 0xb6, 0x1e, 0xf1, 0x95, 0x7d, 0xc8, 0x6d, 0x52, 0xe6, 0x99, 0x2c, 0x5f}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x85, 0xe0, 0x24, 0x32, 0xb4, 0xd1, 0xef, 0xfc, 0x69, 0xa2, 0xbf, 0x8f, 0x72, 0x2c, 0x95, 0xf6, 0xe4, 0x6e, 0x7d, 0x90, 0xf7, 0x57, 0x81, 0xa0, 0xf7, 0xda, 0xef, 0x33, 0x07, 0xe3, 0x6b, 0x78}} , + {{0x36, 0x27, 0x3e, 0xc6, 0x12, 0x07, 0xab, 0x4e, 0xbe, 0x69, 0x9d, 0xb3, 0xbe, 0x08, 0x7c, 0x2a, 0x47, 0x08, 0xfd, 0xd4, 0xcd, 0x0e, 0x27, 0x34, 0x5b, 0x98, 0x34, 0x2f, 0x77, 0x5f, 0x3a, 0x65}}}, +{{{0x13, 0xaa, 0x2e, 0x4c, 0xf0, 0x22, 0xb8, 0x6c, 0xb3, 0x19, 0x4d, 0xeb, 0x6b, 0xd0, 0xa4, 0xc6, 0x9c, 0xdd, 0xc8, 0x5b, 0x81, 0x57, 0x89, 0xdf, 0x33, 0xa9, 0x68, 0x49, 0x80, 0xe4, 0xfe, 0x21}} , + {{0x00, 0x17, 0x90, 0x30, 0xe9, 0xd3, 0x60, 0x30, 0x31, 0xc2, 0x72, 0x89, 0x7a, 0x36, 0xa5, 0xbd, 0x39, 0x83, 0x85, 0x50, 0xa1, 0x5d, 0x6c, 0x41, 0x1d, 0xb5, 0x2c, 0x07, 0x40, 0x77, 0x0b, 0x50}}}, +{{{0x64, 0x34, 0xec, 0xc0, 0x9e, 0x44, 0x41, 0xaf, 0xa0, 0x36, 0x05, 0x6d, 0xea, 0x30, 0x25, 0x46, 0x35, 0x24, 0x9d, 0x86, 0xbd, 0x95, 0xf1, 0x6a, 0x46, 0xd7, 0x94, 0x54, 0xf9, 0x3b, 0xbd, 0x5d}} , + {{0x77, 0x5b, 0xe2, 0x37, 0xc7, 0xe1, 0x7c, 0x13, 0x8c, 0x9f, 0x7b, 0x7b, 0x2a, 0xce, 0x42, 0xa3, 0xb9, 0x2a, 0x99, 0xa8, 0xc0, 0xd8, 0x3c, 0x86, 0xb0, 0xfb, 0xe9, 0x76, 0x77, 0xf7, 0xf5, 0x56}}}, +{{{0xdf, 0xb3, 0x46, 0x11, 0x6e, 0x13, 0xb7, 0x28, 0x4e, 0x56, 0xdd, 0xf1, 0xac, 0xad, 0x58, 0xc3, 0xf8, 0x88, 0x94, 0x5e, 0x06, 0x98, 0xa1, 0xe4, 0x6a, 0xfb, 0x0a, 0x49, 0x5d, 0x8a, 0xfe, 0x77}} , + {{0x46, 0x02, 0xf5, 0xa5, 0xaf, 0xc5, 0x75, 0x6d, 0xba, 0x45, 0x35, 0x0a, 0xfe, 0xc9, 0xac, 0x22, 0x91, 0x8d, 0x21, 0x95, 0x33, 0x03, 0xc0, 0x8a, 0x16, 0xf3, 0x39, 0xe0, 0x01, 0x0f, 0x53, 0x3c}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x34, 0x75, 0x37, 0x1f, 0x34, 0x4e, 0xa9, 0x1d, 0x68, 0x67, 0xf8, 0x49, 0x98, 0x96, 0xfc, 0x4c, 0x65, 0x97, 0xf7, 0x02, 0x4a, 0x52, 0x6c, 0x01, 0xbd, 0x48, 0xbb, 0x1b, 0xed, 0xa4, 0xe2, 0x53}} , + {{0x59, 0xd5, 0x9b, 0x5a, 0xa2, 0x90, 0xd3, 0xb8, 0x37, 0x4c, 0x55, 0x82, 0x28, 0x08, 0x0f, 0x7f, 0xaa, 0x81, 0x65, 0xe0, 0x0c, 0x52, 0xc9, 0xa3, 0x32, 0x27, 0x64, 0xda, 0xfd, 0x34, 0x23, 0x5a}}}, +{{{0xb5, 0xb0, 0x0c, 0x4d, 0xb3, 0x7b, 0x23, 0xc8, 0x1f, 0x8a, 0x39, 0x66, 0xe6, 0xba, 0x4c, 0x10, 0x37, 0xca, 0x9c, 0x7c, 0x05, 0x9e, 0xff, 0xc0, 0xf8, 0x8e, 0xb1, 0x8f, 0x6f, 0x67, 0x18, 0x26}} , + {{0x4b, 0x41, 0x13, 0x54, 0x23, 0x1a, 0xa4, 0x4e, 0xa9, 0x8b, 0x1e, 0x4b, 0xfc, 0x15, 0x24, 0xbb, 0x7e, 0xcb, 0xb6, 0x1e, 0x1b, 0xf5, 0xf2, 0xc8, 0x56, 0xec, 0x32, 0xa2, 0x60, 0x5b, 0xa0, 0x2a}}}, +{{{0xa4, 0x29, 0x47, 0x86, 0x2e, 0x92, 0x4f, 0x11, 0x4f, 0xf3, 0xb2, 0x5c, 0xd5, 0x3e, 0xa6, 0xb9, 0xc8, 0xe2, 0x33, 0x11, 0x1f, 0x01, 0x8f, 0xb0, 0x9b, 0xc7, 0xa5, 0xff, 0x83, 0x0f, 0x1e, 0x28}} , + {{0x1d, 0x29, 0x7a, 0xa1, 0xec, 0x8e, 0xb5, 0xad, 0xea, 0x02, 0x68, 0x60, 0x74, 0x29, 0x1c, 0xa5, 0xcf, 0xc8, 0x3b, 0x7d, 0x8b, 0x2b, 0x7c, 0xad, 0xa4, 0x40, 0x17, 0x51, 0x59, 0x7c, 0x2e, 0x5d}}}, +{{{0x0a, 0x6c, 0x4f, 0xbc, 0x3e, 0x32, 0xe7, 0x4a, 0x1a, 0x13, 0xc1, 0x49, 0x38, 0xbf, 0xf7, 0xc2, 0xd3, 0x8f, 0x6b, 0xad, 0x52, 0xf7, 0xcf, 0xbc, 0x27, 0xcb, 0x40, 0x67, 0x76, 0xcd, 0x6d, 0x56}} , + {{0xe5, 0xb0, 0x27, 0xad, 0xbe, 0x9b, 0xf2, 0xb5, 0x63, 0xde, 0x3a, 0x23, 0x95, 0xb7, 0x0a, 0x7e, 0xf3, 0x9e, 0x45, 0x6f, 0x19, 0x39, 0x75, 0x8f, 0x39, 0x3d, 0x0f, 0xc0, 0x9f, 0xf1, 0xe9, 0x51}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x88, 0xaa, 0x14, 0x24, 0x86, 0x94, 0x11, 0x12, 0x3e, 0x1a, 0xb5, 0xcc, 0xbb, 0xe0, 0x9c, 0xd5, 0x9c, 0x6d, 0xba, 0x58, 0x72, 0x8d, 0xfb, 0x22, 0x7b, 0x9f, 0x7c, 0x94, 0x30, 0xb3, 0x51, 0x21}} , + {{0xf6, 0x74, 0x3d, 0xf2, 0xaf, 0xd0, 0x1e, 0x03, 0x7c, 0x23, 0x6b, 0xc9, 0xfc, 0x25, 0x70, 0x90, 0xdc, 0x9a, 0xa4, 0xfb, 0x49, 0xfc, 0x3d, 0x0a, 0x35, 0x38, 0x6f, 0xe4, 0x7e, 0x50, 0x01, 0x2a}}}, +{{{0xd6, 0xe3, 0x96, 0x61, 0x3a, 0xfd, 0xef, 0x9b, 0x1f, 0x90, 0xa4, 0x24, 0x14, 0x5b, 0xc8, 0xde, 0x50, 0xb1, 0x1d, 0xaf, 0xe8, 0x55, 0x8a, 0x87, 0x0d, 0xfe, 0xaa, 0x3b, 0x82, 0x2c, 0x8d, 0x7b}} , + {{0x85, 0x0c, 0xaf, 0xf8, 0x83, 0x44, 0x49, 0xd9, 0x45, 0xcf, 0xf7, 0x48, 0xd9, 0x53, 0xb4, 0xf1, 0x65, 0xa0, 0xe1, 0xc3, 0xb3, 0x15, 0xed, 0x89, 0x9b, 0x4f, 0x62, 0xb3, 0x57, 0xa5, 0x45, 0x1c}}}, +{{{0x8f, 0x12, 0xea, 0xaf, 0xd1, 0x1f, 0x79, 0x10, 0x0b, 0xf6, 0xa3, 0x7b, 0xea, 0xac, 0x8b, 0x57, 0x32, 0x62, 0xe7, 0x06, 0x12, 0x51, 0xa0, 0x3b, 0x43, 0x5e, 0xa4, 0x20, 0x78, 0x31, 0xce, 0x0d}} , + {{0x84, 0x7c, 0xc2, 0xa6, 0x91, 0x23, 0xce, 0xbd, 0xdc, 0xf9, 0xce, 0xd5, 0x75, 0x30, 0x22, 0xe6, 0xf9, 0x43, 0x62, 0x0d, 0xf7, 0x75, 0x9d, 0x7f, 0x8c, 0xff, 0x7d, 0xe4, 0x72, 0xac, 0x9f, 0x1c}}}, +{{{0x88, 0xc1, 0x99, 0xd0, 0x3c, 0x1c, 0x5d, 0xb4, 0xef, 0x13, 0x0f, 0x90, 0xb9, 0x36, 0x2f, 0x95, 0x95, 0xc6, 0xdc, 0xde, 0x0a, 0x51, 0xe2, 0x8d, 0xf3, 0xbc, 0x51, 0xec, 0xdf, 0xb1, 0xa2, 0x5f}} , + {{0x2e, 0x68, 0xa1, 0x23, 0x7d, 0x9b, 0x40, 0x69, 0x85, 0x7b, 0x42, 0xbf, 0x90, 0x4b, 0xd6, 0x40, 0x2f, 0xd7, 0x52, 0x52, 0xb2, 0x21, 0xde, 0x64, 0xbd, 0x88, 0xc3, 0x6d, 0xa5, 0xfa, 0x81, 0x3f}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xfb, 0xfd, 0x47, 0x7b, 0x8a, 0x66, 0x9e, 0x79, 0x2e, 0x64, 0x82, 0xef, 0xf7, 0x21, 0xec, 0xf6, 0xd8, 0x86, 0x09, 0x31, 0x7c, 0xdd, 0x03, 0x6a, 0x58, 0xa0, 0x77, 0xb7, 0x9b, 0x8c, 0x87, 0x1f}} , + {{0x55, 0x47, 0xe4, 0xa8, 0x3d, 0x55, 0x21, 0x34, 0xab, 0x1d, 0xae, 0xe0, 0xf4, 0xea, 0xdb, 0xc5, 0xb9, 0x58, 0xbf, 0xc4, 0x2a, 0x89, 0x31, 0x1a, 0xf4, 0x2d, 0xe1, 0xca, 0x37, 0x99, 0x47, 0x59}}}, +{{{0xc7, 0xca, 0x63, 0xc1, 0x49, 0xa9, 0x35, 0x45, 0x55, 0x7e, 0xda, 0x64, 0x32, 0x07, 0x50, 0xf7, 0x32, 0xac, 0xde, 0x75, 0x58, 0x9b, 0x11, 0xb2, 0x3a, 0x1f, 0xf5, 0xf7, 0x79, 0x04, 0xe6, 0x08}} , + {{0x46, 0xfa, 0x22, 0x4b, 0xfa, 0xe1, 0xfe, 0x96, 0xfc, 0x67, 0xba, 0x67, 0x97, 0xc4, 0xe7, 0x1b, 0x86, 0x90, 0x5f, 0xee, 0xf4, 0x5b, 0x11, 0xb2, 0xcd, 0xad, 0xee, 0xc2, 0x48, 0x6c, 0x2b, 0x1b}}}, +{{{0xe3, 0x39, 0x62, 0xb4, 0x4f, 0x31, 0x04, 0xc9, 0xda, 0xd5, 0x73, 0x51, 0x57, 0xc5, 0xb8, 0xf3, 0xa3, 0x43, 0x70, 0xe4, 0x61, 0x81, 0x84, 0xe2, 0xbb, 0xbf, 0x4f, 0x9e, 0xa4, 0x5e, 0x74, 0x06}} , + {{0x29, 0xac, 0xff, 0x27, 0xe0, 0x59, 0xbe, 0x39, 0x9c, 0x0d, 0x83, 0xd7, 0x10, 0x0b, 0x15, 0xb7, 0xe1, 0xc2, 0x2c, 0x30, 0x73, 0x80, 0x3a, 0x7d, 0x5d, 0xab, 0x58, 0x6b, 0xc1, 0xf0, 0xf4, 0x22}}}, +{{{0xfe, 0x7f, 0xfb, 0x35, 0x7d, 0xc6, 0x01, 0x23, 0x28, 0xc4, 0x02, 0xac, 0x1f, 0x42, 0xb4, 0x9d, 0xfc, 0x00, 0x94, 0xa5, 0xee, 0xca, 0xda, 0x97, 0x09, 0x41, 0x77, 0x87, 0x5d, 0x7b, 0x87, 0x78}} , + {{0xf5, 0xfb, 0x90, 0x2d, 0x81, 0x19, 0x9e, 0x2f, 0x6d, 0x85, 0x88, 0x8c, 0x40, 0x5c, 0x77, 0x41, 0x4d, 0x01, 0x19, 0x76, 0x60, 0xe8, 0x4c, 0x48, 0xe4, 0x33, 0x83, 0x32, 0x6c, 0xb4, 0x41, 0x03}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xff, 0x10, 0xc2, 0x09, 0x4f, 0x6e, 0xf4, 0xd2, 0xdf, 0x7e, 0xca, 0x7b, 0x1c, 0x1d, 0xba, 0xa3, 0xb6, 0xda, 0x67, 0x33, 0xd4, 0x87, 0x36, 0x4b, 0x11, 0x20, 0x05, 0xa6, 0x29, 0xc1, 0x87, 0x17}} , + {{0xf6, 0x96, 0xca, 0x2f, 0xda, 0x38, 0xa7, 0x1b, 0xfc, 0xca, 0x7d, 0xfe, 0x08, 0x89, 0xe2, 0x47, 0x2b, 0x6a, 0x5d, 0x4b, 0xfa, 0xa1, 0xb4, 0xde, 0xb6, 0xc2, 0x31, 0x51, 0xf5, 0xe0, 0xa4, 0x0b}}}, +{{{0x5c, 0xe5, 0xc6, 0x04, 0x8e, 0x2b, 0x57, 0xbe, 0x38, 0x85, 0x23, 0xcb, 0xb7, 0xbe, 0x4f, 0xa9, 0xd3, 0x6e, 0x12, 0xaa, 0xd5, 0xb2, 0x2e, 0x93, 0x29, 0x9a, 0x4a, 0x88, 0x18, 0x43, 0xf5, 0x01}} , + {{0x50, 0xfc, 0xdb, 0xa2, 0x59, 0x21, 0x8d, 0xbd, 0x7e, 0x33, 0xae, 0x2f, 0x87, 0x1a, 0xd0, 0x97, 0xc7, 0x0d, 0x4d, 0x63, 0x01, 0xef, 0x05, 0x84, 0xec, 0x40, 0xdd, 0xa8, 0x0a, 0x4f, 0x70, 0x0b}}}, +{{{0x41, 0x69, 0x01, 0x67, 0x5c, 0xd3, 0x8a, 0xc5, 0xcf, 0x3f, 0xd1, 0x57, 0xd1, 0x67, 0x3e, 0x01, 0x39, 0xb5, 0xcb, 0x81, 0x56, 0x96, 0x26, 0xb6, 0xc2, 0xe7, 0x5c, 0xfb, 0x63, 0x97, 0x58, 0x06}} , + {{0x0c, 0x0e, 0xf3, 0xba, 0xf0, 0xe5, 0xba, 0xb2, 0x57, 0x77, 0xc6, 0x20, 0x9b, 0x89, 0x24, 0xbe, 0xf2, 0x9c, 0x8a, 0xba, 0x69, 0xc1, 0xf1, 0xb0, 0x4f, 0x2a, 0x05, 0x9a, 0xee, 0x10, 0x7e, 0x36}}}, +{{{0x3f, 0x26, 0xe9, 0x40, 0xe9, 0x03, 0xad, 0x06, 0x69, 0x91, 0xe0, 0xd1, 0x89, 0x60, 0x84, 0x79, 0xde, 0x27, 0x6d, 0xe6, 0x76, 0xbd, 0xea, 0xe6, 0xae, 0x48, 0xc3, 0x67, 0xc0, 0x57, 0xcd, 0x2f}} , + {{0x7f, 0xc1, 0xdc, 0xb9, 0xc7, 0xbc, 0x86, 0x3d, 0x55, 0x4b, 0x28, 0x7a, 0xfb, 0x4d, 0xc7, 0xf8, 0xbc, 0x67, 0x2a, 0x60, 0x4d, 0x8f, 0x07, 0x0b, 0x1a, 0x17, 0xbf, 0xfa, 0xac, 0xa7, 0x3d, 0x1a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x91, 0x3f, 0xed, 0x5e, 0x18, 0x78, 0x3f, 0x23, 0x2c, 0x0d, 0x8c, 0x44, 0x00, 0xe8, 0xfb, 0xe9, 0x8e, 0xd6, 0xd1, 0x36, 0x58, 0x57, 0x9e, 0xae, 0x4b, 0x5c, 0x0b, 0x07, 0xbc, 0x6b, 0x55, 0x2b}} , + {{0x6f, 0x4d, 0x17, 0xd7, 0xe1, 0x84, 0xd9, 0x78, 0xb1, 0x90, 0xfd, 0x2e, 0xb3, 0xb5, 0x19, 0x3f, 0x1b, 0xfa, 0xc0, 0x68, 0xb3, 0xdd, 0x00, 0x2e, 0x89, 0xbd, 0x7e, 0x80, 0x32, 0x13, 0xa0, 0x7b}}}, +{{{0x1a, 0x6f, 0x40, 0xaf, 0x44, 0x44, 0xb0, 0x43, 0x8f, 0x0d, 0xd0, 0x1e, 0xc4, 0x0b, 0x19, 0x5d, 0x8e, 0xfe, 0xc1, 0xf3, 0xc5, 0x5c, 0x91, 0xf8, 0x04, 0x4e, 0xbe, 0x90, 0xb4, 0x47, 0x5c, 0x3f}} , + {{0xb0, 0x3b, 0x2c, 0xf3, 0xfe, 0x32, 0x71, 0x07, 0x3f, 0xaa, 0xba, 0x45, 0x60, 0xa8, 0x8d, 0xea, 0x54, 0xcb, 0x39, 0x10, 0xb4, 0xf2, 0x8b, 0xd2, 0x14, 0x82, 0x42, 0x07, 0x8e, 0xe9, 0x7c, 0x53}}}, +{{{0xb0, 0xae, 0xc1, 0x8d, 0xc9, 0x8f, 0xb9, 0x7a, 0x77, 0xef, 0xba, 0x79, 0xa0, 0x3c, 0xa8, 0xf5, 0x6a, 0xe2, 0x3f, 0x5d, 0x00, 0xe3, 0x4b, 0x45, 0x24, 0x7b, 0x43, 0x78, 0x55, 0x1d, 0x2b, 0x1e}} , + {{0x01, 0xb8, 0xd6, 0x16, 0x67, 0xa0, 0x15, 0xb9, 0xe1, 0x58, 0xa4, 0xa7, 0x31, 0x37, 0x77, 0x2f, 0x8b, 0x12, 0x9f, 0xf4, 0x3f, 0xc7, 0x36, 0x66, 0xd2, 0xa8, 0x56, 0xf7, 0x7f, 0x74, 0xc6, 0x41}}}, +{{{0x5d, 0xf8, 0xb4, 0xa8, 0x30, 0xdd, 0xcc, 0x38, 0xa5, 0xd3, 0xca, 0xd8, 0xd1, 0xf8, 0xb2, 0x31, 0x91, 0xd4, 0x72, 0x05, 0x57, 0x4a, 0x3b, 0x82, 0x4a, 0xc6, 0x68, 0x20, 0xe2, 0x18, 0x41, 0x61}} , + {{0x19, 0xd4, 0x8d, 0x47, 0x29, 0x12, 0x65, 0xb0, 0x11, 0x78, 0x47, 0xb5, 0xcb, 0xa3, 0xa5, 0xfa, 0x05, 0x85, 0x54, 0xa9, 0x33, 0x97, 0x8d, 0x2b, 0xc2, 0xfe, 0x99, 0x35, 0x28, 0xe5, 0xeb, 0x63}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xb1, 0x3f, 0x3f, 0xef, 0xd8, 0xf4, 0xfc, 0xb3, 0xa0, 0x60, 0x50, 0x06, 0x2b, 0x29, 0x52, 0x70, 0x15, 0x0b, 0x24, 0x24, 0xf8, 0x5f, 0x79, 0x18, 0xcc, 0xff, 0x89, 0x99, 0x84, 0xa1, 0xae, 0x13}} , + {{0x44, 0x1f, 0xb8, 0xc2, 0x01, 0xc1, 0x30, 0x19, 0x55, 0x05, 0x60, 0x10, 0xa4, 0x6c, 0x2d, 0x67, 0x70, 0xe5, 0x25, 0x1b, 0xf2, 0xbf, 0xdd, 0xfb, 0x70, 0x2b, 0xa1, 0x8c, 0x9c, 0x94, 0x84, 0x08}}}, +{{{0xe7, 0xc4, 0x43, 0x4d, 0xc9, 0x2b, 0x69, 0x5d, 0x1d, 0x3c, 0xaf, 0xbb, 0x43, 0x38, 0x4e, 0x98, 0x3d, 0xed, 0x0d, 0x21, 0x03, 0xfd, 0xf0, 0x99, 0x47, 0x04, 0xb0, 0x98, 0x69, 0x55, 0x72, 0x0f}} , + {{0x5e, 0xdf, 0x15, 0x53, 0x3b, 0x86, 0x80, 0xb0, 0xf1, 0x70, 0x68, 0x8f, 0x66, 0x7c, 0x0e, 0x49, 0x1a, 0xd8, 0x6b, 0xfe, 0x4e, 0xef, 0xca, 0x47, 0xd4, 0x03, 0xc1, 0x37, 0x50, 0x9c, 0xc1, 0x16}}}, +{{{0xcd, 0x24, 0xc6, 0x3e, 0x0c, 0x82, 0x9b, 0x91, 0x2b, 0x61, 0x4a, 0xb2, 0x0f, 0x88, 0x55, 0x5f, 0x5a, 0x57, 0xff, 0xe5, 0x74, 0x0b, 0x13, 0x43, 0x00, 0xd8, 0x6b, 0xcf, 0xd2, 0x15, 0x03, 0x2c}} , + {{0xdc, 0xff, 0x15, 0x61, 0x2f, 0x4a, 0x2f, 0x62, 0xf2, 0x04, 0x2f, 0xb5, 0x0c, 0xb7, 0x1e, 0x3f, 0x74, 0x1a, 0x0f, 0xd7, 0xea, 0xcd, 0xd9, 0x7d, 0xf6, 0x12, 0x0e, 0x2f, 0xdb, 0x5a, 0x3b, 0x16}}}, +{{{0x1b, 0x37, 0x47, 0xe3, 0xf5, 0x9e, 0xea, 0x2c, 0x2a, 0xe7, 0x82, 0x36, 0xf4, 0x1f, 0x81, 0x47, 0x92, 0x4b, 0x69, 0x0e, 0x11, 0x8c, 0x5d, 0x53, 0x5b, 0x81, 0x27, 0x08, 0xbc, 0xa0, 0xae, 0x25}} , + {{0x69, 0x32, 0xa1, 0x05, 0x11, 0x42, 0x00, 0xd2, 0x59, 0xac, 0x4d, 0x62, 0x8b, 0x13, 0xe2, 0x50, 0x5d, 0xa0, 0x9d, 0x9b, 0xfd, 0xbb, 0x12, 0x41, 0x75, 0x41, 0x9e, 0xcc, 0xdc, 0xc7, 0xdc, 0x5d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xd9, 0xe3, 0x38, 0x06, 0x46, 0x70, 0x82, 0x5e, 0x28, 0x49, 0x79, 0xff, 0x25, 0xd2, 0x4e, 0x29, 0x8d, 0x06, 0xb0, 0x23, 0xae, 0x9b, 0x66, 0xe4, 0x7d, 0xc0, 0x70, 0x91, 0xa3, 0xfc, 0xec, 0x4e}} , + {{0x62, 0x12, 0x37, 0x6a, 0x30, 0xf6, 0x1e, 0xfb, 0x14, 0x5c, 0x0d, 0x0e, 0xb7, 0x81, 0x6a, 0xe7, 0x08, 0x05, 0xac, 0xaa, 0x38, 0x46, 0xe2, 0x73, 0xea, 0x4b, 0x07, 0x81, 0x43, 0x7c, 0x9e, 0x5e}}}, +{{{0xfc, 0xf9, 0x21, 0x4f, 0x2e, 0x76, 0x9b, 0x1f, 0x28, 0x60, 0x77, 0x43, 0x32, 0x9d, 0xbe, 0x17, 0x30, 0x2a, 0xc6, 0x18, 0x92, 0x66, 0x62, 0x30, 0x98, 0x40, 0x11, 0xa6, 0x7f, 0x18, 0x84, 0x28}} , + {{0x3f, 0xab, 0xd3, 0xf4, 0x8a, 0x76, 0xa1, 0x3c, 0xca, 0x2d, 0x49, 0xc3, 0xea, 0x08, 0x0b, 0x85, 0x17, 0x2a, 0xc3, 0x6c, 0x08, 0xfd, 0x57, 0x9f, 0x3d, 0x5f, 0xdf, 0x67, 0x68, 0x42, 0x00, 0x32}}}, +{{{0x51, 0x60, 0x1b, 0x06, 0x4f, 0x8a, 0x21, 0xba, 0x38, 0xa8, 0xba, 0xd6, 0x40, 0xf6, 0xe9, 0x9b, 0x76, 0x4d, 0x56, 0x21, 0x5b, 0x0a, 0x9b, 0x2e, 0x4f, 0x3d, 0x81, 0x32, 0x08, 0x9f, 0x97, 0x5b}} , + {{0xe5, 0x44, 0xec, 0x06, 0x9d, 0x90, 0x79, 0x9f, 0xd3, 0xe0, 0x79, 0xaf, 0x8f, 0x10, 0xfd, 0xdd, 0x04, 0xae, 0x27, 0x97, 0x46, 0x33, 0x79, 0xea, 0xb8, 0x4e, 0xca, 0x5a, 0x59, 0x57, 0xe1, 0x0e}}}, +{{{0x1a, 0xda, 0xf3, 0xa5, 0x41, 0x43, 0x28, 0xfc, 0x7e, 0xe7, 0x71, 0xea, 0xc6, 0x3b, 0x59, 0xcc, 0x2e, 0xd3, 0x40, 0xec, 0xb3, 0x13, 0x6f, 0x44, 0xcd, 0x13, 0xb2, 0x37, 0xf2, 0x6e, 0xd9, 0x1c}} , + {{0xe3, 0xdb, 0x60, 0xcd, 0x5c, 0x4a, 0x18, 0x0f, 0xef, 0x73, 0x36, 0x71, 0x8c, 0xf6, 0x11, 0xb4, 0xd8, 0xce, 0x17, 0x5e, 0x4f, 0x26, 0x77, 0x97, 0x5f, 0xcb, 0xef, 0x91, 0xeb, 0x6a, 0x62, 0x7a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x18, 0x4a, 0xa2, 0x97, 0x08, 0x81, 0x2d, 0x83, 0xc4, 0xcc, 0xf0, 0x83, 0x7e, 0xec, 0x0d, 0x95, 0x4c, 0x5b, 0xfb, 0xfa, 0x98, 0x80, 0x4a, 0x66, 0x56, 0x0c, 0x51, 0xb3, 0xf2, 0x04, 0x5d, 0x27}} , + {{0x3b, 0xb9, 0xb8, 0x06, 0x5a, 0x2e, 0xfe, 0xc3, 0x82, 0x37, 0x9c, 0xa3, 0x11, 0x1f, 0x9c, 0xa6, 0xda, 0x63, 0x48, 0x9b, 0xad, 0xde, 0x2d, 0xa6, 0xbc, 0x6e, 0x32, 0xda, 0x27, 0x65, 0xdd, 0x57}}}, +{{{0x84, 0x4f, 0x37, 0x31, 0x7d, 0x2e, 0xbc, 0xad, 0x87, 0x07, 0x2a, 0x6b, 0x37, 0xfc, 0x5f, 0xeb, 0x4e, 0x75, 0x35, 0xa6, 0xde, 0xab, 0x0a, 0x19, 0x3a, 0xb7, 0xb1, 0xef, 0x92, 0x6a, 0x3b, 0x3c}} , + {{0x3b, 0xb2, 0x94, 0x6d, 0x39, 0x60, 0xac, 0xee, 0xe7, 0x81, 0x1a, 0x3b, 0x76, 0x87, 0x5c, 0x05, 0x94, 0x2a, 0x45, 0xb9, 0x80, 0xe9, 0x22, 0xb1, 0x07, 0xcb, 0x40, 0x9e, 0x70, 0x49, 0x6d, 0x12}}}, +{{{0xfd, 0x18, 0x78, 0x84, 0xa8, 0x4c, 0x7d, 0x6e, 0x59, 0xa6, 0xe5, 0x74, 0xf1, 0x19, 0xa6, 0x84, 0x2e, 0x51, 0xc1, 0x29, 0x13, 0xf2, 0x14, 0x6b, 0x5d, 0x53, 0x51, 0xf7, 0xef, 0xbf, 0x01, 0x22}} , + {{0xa4, 0x4b, 0x62, 0x4c, 0xe6, 0xfd, 0x72, 0x07, 0xf2, 0x81, 0xfc, 0xf2, 0xbd, 0x12, 0x7c, 0x68, 0x76, 0x2a, 0xba, 0xf5, 0x65, 0xb1, 0x1f, 0x17, 0x0a, 0x38, 0xb0, 0xbf, 0xc0, 0xf8, 0xf4, 0x2a}}}, +{{{0x55, 0x60, 0x55, 0x5b, 0xe4, 0x1d, 0x71, 0x4c, 0x9d, 0x5b, 0x9f, 0x70, 0xa6, 0x85, 0x9a, 0x2c, 0xa0, 0xe2, 0x32, 0x48, 0xce, 0x9e, 0x2a, 0xa5, 0x07, 0x3b, 0xc7, 0x6c, 0x86, 0x77, 0xde, 0x3c}} , + {{0xf7, 0x18, 0x7a, 0x96, 0x7e, 0x43, 0x57, 0xa9, 0x55, 0xfc, 0x4e, 0xb6, 0x72, 0x00, 0xf2, 0xe4, 0xd7, 0x52, 0xd3, 0xd3, 0xb6, 0x85, 0xf6, 0x71, 0xc7, 0x44, 0x3f, 0x7f, 0xd7, 0xb3, 0xf2, 0x79}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x46, 0xca, 0xa7, 0x55, 0x7b, 0x79, 0xf3, 0xca, 0x5a, 0x65, 0xf6, 0xed, 0x50, 0x14, 0x7b, 0xe4, 0xc4, 0x2a, 0x65, 0x9e, 0xe2, 0xf9, 0xca, 0xa7, 0x22, 0x26, 0x53, 0xcb, 0x21, 0x5b, 0xa7, 0x31}} , + {{0x90, 0xd7, 0xc5, 0x26, 0x08, 0xbd, 0xb0, 0x53, 0x63, 0x58, 0xc3, 0x31, 0x5e, 0x75, 0x46, 0x15, 0x91, 0xa6, 0xf8, 0x2f, 0x1a, 0x08, 0x65, 0x88, 0x2f, 0x98, 0x04, 0xf1, 0x7c, 0x6e, 0x00, 0x77}}}, +{{{0x81, 0x21, 0x61, 0x09, 0xf6, 0x4e, 0xf1, 0x92, 0xee, 0x63, 0x61, 0x73, 0x87, 0xc7, 0x54, 0x0e, 0x42, 0x4b, 0xc9, 0x47, 0xd1, 0xb8, 0x7e, 0x91, 0x75, 0x37, 0x99, 0x28, 0xb8, 0xdd, 0x7f, 0x50}} , + {{0x89, 0x8f, 0xc0, 0xbe, 0x5d, 0xd6, 0x9f, 0xa0, 0xf0, 0x9d, 0x81, 0xce, 0x3a, 0x7b, 0x98, 0x58, 0xbb, 0xd7, 0x78, 0xc8, 0x3f, 0x13, 0xf1, 0x74, 0x19, 0xdf, 0xf8, 0x98, 0x89, 0x5d, 0xfa, 0x5f}}}, +{{{0x9e, 0x35, 0x85, 0x94, 0x47, 0x1f, 0x90, 0x15, 0x26, 0xd0, 0x84, 0xed, 0x8a, 0x80, 0xf7, 0x63, 0x42, 0x86, 0x27, 0xd7, 0xf4, 0x75, 0x58, 0xdc, 0x9c, 0xc0, 0x22, 0x7e, 0x20, 0x35, 0xfd, 0x1f}} , + {{0x68, 0x0e, 0x6f, 0x97, 0xba, 0x70, 0xbb, 0xa3, 0x0e, 0xe5, 0x0b, 0x12, 0xf4, 0xa2, 0xdc, 0x47, 0xf8, 0xe6, 0xd0, 0x23, 0x6c, 0x33, 0xa8, 0x99, 0x46, 0x6e, 0x0f, 0x44, 0xba, 0x76, 0x48, 0x0f}}}, +{{{0xa3, 0x2a, 0x61, 0x37, 0xe2, 0x59, 0x12, 0x0e, 0x27, 0xba, 0x64, 0x43, 0xae, 0xc0, 0x42, 0x69, 0x79, 0xa4, 0x1e, 0x29, 0x8b, 0x15, 0xeb, 0xf8, 0xaf, 0xd4, 0xa2, 0x68, 0x33, 0xb5, 0x7a, 0x24}} , + {{0x2c, 0x19, 0x33, 0xdd, 0x1b, 0xab, 0xec, 0x01, 0xb0, 0x23, 0xf8, 0x42, 0x2b, 0x06, 0x88, 0xea, 0x3d, 0x2d, 0x00, 0x2a, 0x78, 0x45, 0x4d, 0x38, 0xed, 0x2e, 0x2e, 0x44, 0x49, 0xed, 0xcb, 0x33}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xa0, 0x68, 0xe8, 0x41, 0x8f, 0x91, 0xf8, 0x11, 0x13, 0x90, 0x2e, 0xa7, 0xab, 0x30, 0xef, 0xad, 0xa0, 0x61, 0x00, 0x88, 0xef, 0xdb, 0xce, 0x5b, 0x5c, 0xbb, 0x62, 0xc8, 0x56, 0xf9, 0x00, 0x73}} , + {{0x3f, 0x60, 0xc1, 0x82, 0x2d, 0xa3, 0x28, 0x58, 0x24, 0x9e, 0x9f, 0xe3, 0x70, 0xcc, 0x09, 0x4e, 0x1a, 0x3f, 0x11, 0x11, 0x15, 0x07, 0x3c, 0xa4, 0x41, 0xe0, 0x65, 0xa3, 0x0a, 0x41, 0x6d, 0x11}}}, +{{{0x31, 0x40, 0x01, 0x52, 0x56, 0x94, 0x5b, 0x28, 0x8a, 0xaa, 0x52, 0xee, 0xd8, 0x0a, 0x05, 0x8d, 0xcd, 0xb5, 0xaa, 0x2e, 0x38, 0xaa, 0xb7, 0x87, 0xf7, 0x2b, 0xfb, 0x04, 0xcb, 0x84, 0x3d, 0x54}} , + {{0x20, 0xef, 0x59, 0xde, 0xa4, 0x2b, 0x93, 0x6e, 0x2e, 0xec, 0x42, 0x9a, 0xd4, 0x2d, 0xf4, 0x46, 0x58, 0x27, 0x2b, 0x18, 0x8f, 0x83, 0x3d, 0x69, 0x9e, 0xd4, 0x3e, 0xb6, 0xc5, 0xfd, 0x58, 0x03}}}, +{{{0x33, 0x89, 0xc9, 0x63, 0x62, 0x1c, 0x17, 0xb4, 0x60, 0xc4, 0x26, 0x68, 0x09, 0xc3, 0x2e, 0x37, 0x0f, 0x7b, 0xb4, 0x9c, 0xb6, 0xf9, 0xfb, 0xd4, 0x51, 0x78, 0xc8, 0x63, 0xea, 0x77, 0x47, 0x07}} , + {{0x32, 0xb4, 0x18, 0x47, 0x79, 0xcb, 0xd4, 0x5a, 0x07, 0x14, 0x0f, 0xa0, 0xd5, 0xac, 0xd0, 0x41, 0x40, 0xab, 0x61, 0x23, 0xe5, 0x2a, 0x2a, 0x6f, 0xf7, 0xa8, 0xd4, 0x76, 0xef, 0xe7, 0x45, 0x6c}}}, +{{{0xa1, 0x5e, 0x60, 0x4f, 0xfb, 0xe1, 0x70, 0x6a, 0x1f, 0x55, 0x4f, 0x09, 0xb4, 0x95, 0x33, 0x36, 0xc6, 0x81, 0x01, 0x18, 0x06, 0x25, 0x27, 0xa4, 0xb4, 0x24, 0xa4, 0x86, 0x03, 0x4c, 0xac, 0x02}} , + {{0x77, 0x38, 0xde, 0xd7, 0x60, 0x48, 0x07, 0xf0, 0x74, 0xa8, 0xff, 0x54, 0xe5, 0x30, 0x43, 0xff, 0x77, 0xfb, 0x21, 0x07, 0xff, 0xb2, 0x07, 0x6b, 0xe4, 0xe5, 0x30, 0xfc, 0x19, 0x6c, 0xa3, 0x01}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x13, 0xc5, 0x2c, 0xac, 0xd3, 0x83, 0x82, 0x7c, 0x29, 0xf7, 0x05, 0xa5, 0x00, 0xb6, 0x1f, 0x86, 0x55, 0xf4, 0xd6, 0x2f, 0x0c, 0x99, 0xd0, 0x65, 0x9b, 0x6b, 0x46, 0x0d, 0x43, 0xf8, 0x16, 0x28}} , + {{0x1e, 0x7f, 0xb4, 0x74, 0x7e, 0xb1, 0x89, 0x4f, 0x18, 0x5a, 0xab, 0x64, 0x06, 0xdf, 0x45, 0x87, 0xe0, 0x6a, 0xc6, 0xf0, 0x0e, 0xc9, 0x24, 0x35, 0x38, 0xea, 0x30, 0x54, 0xb4, 0xc4, 0x52, 0x54}}}, +{{{0xe9, 0x9f, 0xdc, 0x3f, 0xc1, 0x89, 0x44, 0x74, 0x27, 0xe4, 0xc1, 0x90, 0xff, 0x4a, 0xa7, 0x3c, 0xee, 0xcd, 0xf4, 0x1d, 0x25, 0x94, 0x7f, 0x63, 0x16, 0x48, 0xbc, 0x64, 0xfe, 0x95, 0xc4, 0x0c}} , + {{0x8b, 0x19, 0x75, 0x6e, 0x03, 0x06, 0x5e, 0x6a, 0x6f, 0x1a, 0x8c, 0xe3, 0xd3, 0x28, 0xf2, 0xe0, 0xb9, 0x7a, 0x43, 0x69, 0xe6, 0xd3, 0xc0, 0xfe, 0x7e, 0x97, 0xab, 0x6c, 0x7b, 0x8e, 0x13, 0x42}}}, +{{{0xd4, 0xca, 0x70, 0x3d, 0xab, 0xfb, 0x5f, 0x5e, 0x00, 0x0c, 0xcc, 0x77, 0x22, 0xf8, 0x78, 0x55, 0xae, 0x62, 0x35, 0xfb, 0x9a, 0xc6, 0x03, 0xe4, 0x0c, 0xee, 0xab, 0xc7, 0xc0, 0x89, 0x87, 0x54}} , + {{0x32, 0xad, 0xae, 0x85, 0x58, 0x43, 0xb8, 0xb1, 0xe6, 0x3e, 0x00, 0x9c, 0x78, 0x88, 0x56, 0xdb, 0x9c, 0xfc, 0x79, 0xf6, 0xf9, 0x41, 0x5f, 0xb7, 0xbc, 0x11, 0xf9, 0x20, 0x36, 0x1c, 0x53, 0x2b}}}, +{{{0x5a, 0x20, 0x5b, 0xa1, 0xa5, 0x44, 0x91, 0x24, 0x02, 0x63, 0x12, 0x64, 0xb8, 0x55, 0xf6, 0xde, 0x2c, 0xdb, 0x47, 0xb8, 0xc6, 0x0a, 0xc3, 0x00, 0x78, 0x93, 0xd8, 0xf5, 0xf5, 0x18, 0x28, 0x0a}} , + {{0xd6, 0x1b, 0x9a, 0x6c, 0xe5, 0x46, 0xea, 0x70, 0x96, 0x8d, 0x4e, 0x2a, 0x52, 0x21, 0x26, 0x4b, 0xb1, 0xbb, 0x0f, 0x7c, 0xa9, 0x9b, 0x04, 0xbb, 0x51, 0x08, 0xf1, 0x9a, 0xa4, 0x76, 0x7c, 0x18}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xfa, 0x94, 0xf7, 0x40, 0xd0, 0xd7, 0xeb, 0xa9, 0x82, 0x36, 0xd5, 0x15, 0xb9, 0x33, 0x7a, 0xbf, 0x8a, 0xf2, 0x63, 0xaa, 0x37, 0xf5, 0x59, 0xac, 0xbd, 0xbb, 0x32, 0x36, 0xbe, 0x73, 0x99, 0x38}} , + {{0x2c, 0xb3, 0xda, 0x7a, 0xd8, 0x3d, 0x99, 0xca, 0xd2, 0xf4, 0xda, 0x99, 0x8e, 0x4f, 0x98, 0xb7, 0xf4, 0xae, 0x3e, 0x9f, 0x8e, 0x35, 0x60, 0xa4, 0x33, 0x75, 0xa4, 0x04, 0x93, 0xb1, 0x6b, 0x4d}}}, +{{{0x97, 0x9d, 0xa8, 0xcd, 0x97, 0x7b, 0x9d, 0xb9, 0xe7, 0xa5, 0xef, 0xfd, 0xa8, 0x42, 0x6b, 0xc3, 0x62, 0x64, 0x7d, 0xa5, 0x1b, 0xc9, 0x9e, 0xd2, 0x45, 0xb9, 0xee, 0x03, 0xb0, 0xbf, 0xc0, 0x68}} , + {{0xed, 0xb7, 0x84, 0x2c, 0xf6, 0xd3, 0xa1, 0x6b, 0x24, 0x6d, 0x87, 0x56, 0x97, 0x59, 0x79, 0x62, 0x9f, 0xac, 0xed, 0xf3, 0xc9, 0x89, 0x21, 0x2e, 0x04, 0xb3, 0xcc, 0x2f, 0xbe, 0xd6, 0x0a, 0x4b}}}, +{{{0x39, 0x61, 0x05, 0xed, 0x25, 0x89, 0x8b, 0x5d, 0x1b, 0xcb, 0x0c, 0x55, 0xf4, 0x6a, 0x00, 0x8a, 0x46, 0xe8, 0x1e, 0xc6, 0x83, 0xc8, 0x5a, 0x76, 0xdb, 0xcc, 0x19, 0x7a, 0xcc, 0x67, 0x46, 0x0b}} , + {{0x53, 0xcf, 0xc2, 0xa1, 0xad, 0x6a, 0xf3, 0xcd, 0x8f, 0xc9, 0xde, 0x1c, 0xf8, 0x6c, 0x8f, 0xf8, 0x76, 0x42, 0xe7, 0xfe, 0xb2, 0x72, 0x21, 0x0a, 0x66, 0x74, 0x8f, 0xb7, 0xeb, 0xe4, 0x6f, 0x01}}}, +{{{0x22, 0x8c, 0x6b, 0xbe, 0xfc, 0x4d, 0x70, 0x62, 0x6e, 0x52, 0x77, 0x99, 0x88, 0x7e, 0x7b, 0x57, 0x7a, 0x0d, 0xfe, 0xdc, 0x72, 0x92, 0xf1, 0x68, 0x1d, 0x97, 0xd7, 0x7c, 0x8d, 0x53, 0x10, 0x37}} , + {{0x53, 0x88, 0x77, 0x02, 0xca, 0x27, 0xa8, 0xe5, 0x45, 0xe2, 0xa8, 0x48, 0x2a, 0xab, 0x18, 0xca, 0xea, 0x2d, 0x2a, 0x54, 0x17, 0x37, 0x32, 0x09, 0xdc, 0xe0, 0x4a, 0xb7, 0x7d, 0x82, 0x10, 0x7d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x8a, 0x64, 0x1e, 0x14, 0x0a, 0x57, 0xd4, 0xda, 0x5c, 0x96, 0x9b, 0x01, 0x4c, 0x67, 0xbf, 0x8b, 0x30, 0xfe, 0x08, 0xdb, 0x0d, 0xd5, 0xa8, 0xd7, 0x09, 0x11, 0x85, 0xa2, 0xd3, 0x45, 0xfb, 0x7e}} , + {{0xda, 0x8c, 0xc2, 0xd0, 0xac, 0x18, 0xe8, 0x52, 0x36, 0xd4, 0x21, 0xa3, 0xdd, 0x57, 0x22, 0x79, 0xb7, 0xf8, 0x71, 0x9d, 0xc6, 0x91, 0x70, 0x86, 0x56, 0xbf, 0xa1, 0x11, 0x8b, 0x19, 0xe1, 0x0f}}}, +{{{0x18, 0x32, 0x98, 0x2c, 0x8f, 0x91, 0xae, 0x12, 0xf0, 0x8c, 0xea, 0xf3, 0x3c, 0xb9, 0x5d, 0xe4, 0x69, 0xed, 0xb2, 0x47, 0x18, 0xbd, 0xce, 0x16, 0x52, 0x5c, 0x23, 0xe2, 0xa5, 0x25, 0x52, 0x5d}} , + {{0xb9, 0xb1, 0xe7, 0x5d, 0x4e, 0xbc, 0xee, 0xbb, 0x40, 0x81, 0x77, 0x82, 0x19, 0xab, 0xb5, 0xc6, 0xee, 0xab, 0x5b, 0x6b, 0x63, 0x92, 0x8a, 0x34, 0x8d, 0xcd, 0xee, 0x4f, 0x49, 0xe5, 0xc9, 0x7e}}}, +{{{0x21, 0xac, 0x8b, 0x22, 0xcd, 0xc3, 0x9a, 0xe9, 0x5e, 0x78, 0xbd, 0xde, 0xba, 0xad, 0xab, 0xbf, 0x75, 0x41, 0x09, 0xc5, 0x58, 0xa4, 0x7d, 0x92, 0xb0, 0x7f, 0xf2, 0xa1, 0xd1, 0xc0, 0xb3, 0x6d}} , + {{0x62, 0x4f, 0xd0, 0x75, 0x77, 0xba, 0x76, 0x77, 0xd7, 0xb8, 0xd8, 0x92, 0x6f, 0x98, 0x34, 0x3d, 0xd6, 0x4e, 0x1c, 0x0f, 0xf0, 0x8f, 0x2e, 0xf1, 0xb3, 0xbd, 0xb1, 0xb9, 0xec, 0x99, 0xb4, 0x07}}}, +{{{0x60, 0x57, 0x2e, 0x9a, 0x72, 0x1d, 0x6b, 0x6e, 0x58, 0x33, 0x24, 0x8c, 0x48, 0x39, 0x46, 0x8e, 0x89, 0x6a, 0x88, 0x51, 0x23, 0x62, 0xb5, 0x32, 0x09, 0x36, 0xe3, 0x57, 0xf5, 0x98, 0xde, 0x6f}} , + {{0x8b, 0x2c, 0x00, 0x48, 0x4a, 0xf9, 0x5b, 0x87, 0x69, 0x52, 0xe5, 0x5b, 0xd1, 0xb1, 0xe5, 0x25, 0x25, 0xe0, 0x9c, 0xc2, 0x13, 0x44, 0xe8, 0xb9, 0x0a, 0x70, 0xad, 0xbd, 0x0f, 0x51, 0x94, 0x69}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xa2, 0xdc, 0xab, 0xa9, 0x25, 0x2d, 0xac, 0x5f, 0x03, 0x33, 0x08, 0xe7, 0x7e, 0xfe, 0x95, 0x36, 0x3c, 0x5b, 0x3a, 0xd3, 0x05, 0x82, 0x1c, 0x95, 0x2d, 0xd8, 0x77, 0x7e, 0x02, 0xd9, 0x5b, 0x70}} , + {{0xc2, 0xfe, 0x1b, 0x0c, 0x67, 0xcd, 0xd6, 0xe0, 0x51, 0x8e, 0x2c, 0xe0, 0x79, 0x88, 0xf0, 0xcf, 0x41, 0x4a, 0xad, 0x23, 0xd4, 0x46, 0xca, 0x94, 0xa1, 0xc3, 0xeb, 0x28, 0x06, 0xfa, 0x17, 0x14}}}, +{{{0x7b, 0xaa, 0x70, 0x0a, 0x4b, 0xfb, 0xf5, 0xbf, 0x80, 0xc5, 0xcf, 0x08, 0x7a, 0xdd, 0xa1, 0xf4, 0x9d, 0x54, 0x50, 0x53, 0x23, 0x77, 0x23, 0xf5, 0x34, 0xa5, 0x22, 0xd1, 0x0d, 0x96, 0x2e, 0x47}} , + {{0xcc, 0xb7, 0x32, 0x89, 0x57, 0xd0, 0x98, 0x75, 0xe4, 0x37, 0x99, 0xa9, 0xe8, 0xba, 0xed, 0xba, 0xeb, 0xc7, 0x4f, 0x15, 0x76, 0x07, 0x0c, 0x4c, 0xef, 0x9f, 0x52, 0xfc, 0x04, 0x5d, 0x58, 0x10}}}, +{{{0xce, 0x82, 0xf0, 0x8f, 0x79, 0x02, 0xa8, 0xd1, 0xda, 0x14, 0x09, 0x48, 0xee, 0x8a, 0x40, 0x98, 0x76, 0x60, 0x54, 0x5a, 0xde, 0x03, 0x24, 0xf5, 0xe6, 0x2f, 0xe1, 0x03, 0xbf, 0x68, 0x82, 0x7f}} , + {{0x64, 0xe9, 0x28, 0xc7, 0xa4, 0xcf, 0x2a, 0xf9, 0x90, 0x64, 0x72, 0x2c, 0x8b, 0xeb, 0xec, 0xa0, 0xf2, 0x7d, 0x35, 0xb5, 0x90, 0x4d, 0x7f, 0x5b, 0x4a, 0x49, 0xe4, 0xb8, 0x3b, 0xc8, 0xa1, 0x2f}}}, +{{{0x8b, 0xc5, 0xcc, 0x3d, 0x69, 0xa6, 0xa1, 0x18, 0x44, 0xbc, 0x4d, 0x77, 0x37, 0xc7, 0x86, 0xec, 0x0c, 0xc9, 0xd6, 0x44, 0xa9, 0x23, 0x27, 0xb9, 0x03, 0x34, 0xa7, 0x0a, 0xd5, 0xc7, 0x34, 0x37}} , + {{0xf9, 0x7e, 0x3e, 0x66, 0xee, 0xf9, 0x99, 0x28, 0xff, 0xad, 0x11, 0xd8, 0xe2, 0x66, 0xc5, 0xcd, 0x0f, 0x0d, 0x0b, 0x6a, 0xfc, 0x7c, 0x24, 0xa8, 0x4f, 0xa8, 0x5e, 0x80, 0x45, 0x8b, 0x6c, 0x41}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xef, 0x1e, 0xec, 0xf7, 0x8d, 0x77, 0xf2, 0xea, 0xdb, 0x60, 0x03, 0x21, 0xc0, 0xff, 0x5e, 0x67, 0xc3, 0x71, 0x0b, 0x21, 0xb4, 0x41, 0xa0, 0x68, 0x38, 0xc6, 0x01, 0xa3, 0xd3, 0x51, 0x3c, 0x3c}} , + {{0x92, 0xf8, 0xd6, 0x4b, 0xef, 0x42, 0x13, 0xb2, 0x4a, 0xc4, 0x2e, 0x72, 0x3f, 0xc9, 0x11, 0xbd, 0x74, 0x02, 0x0e, 0xf5, 0x13, 0x9d, 0x83, 0x1a, 0x1b, 0xd5, 0x54, 0xde, 0xc4, 0x1e, 0x16, 0x6c}}}, +{{{0x27, 0x52, 0xe4, 0x63, 0xaa, 0x94, 0xe6, 0xc3, 0x28, 0x9c, 0xc6, 0x56, 0xac, 0xfa, 0xb6, 0xbd, 0xe2, 0xcc, 0x76, 0xc6, 0x27, 0x27, 0xa2, 0x8e, 0x78, 0x2b, 0x84, 0x72, 0x10, 0xbd, 0x4e, 0x2a}} , + {{0xea, 0xa7, 0x23, 0xef, 0x04, 0x61, 0x80, 0x50, 0xc9, 0x6e, 0xa5, 0x96, 0xd1, 0xd1, 0xc8, 0xc3, 0x18, 0xd7, 0x2d, 0xfd, 0x26, 0xbd, 0xcb, 0x7b, 0x92, 0x51, 0x0e, 0x4a, 0x65, 0x57, 0xb8, 0x49}}}, +{{{0xab, 0x55, 0x36, 0xc3, 0xec, 0x63, 0x55, 0x11, 0x55, 0xf6, 0xa5, 0xc7, 0x01, 0x5f, 0xfe, 0x79, 0xd8, 0x0a, 0xf7, 0x03, 0xd8, 0x98, 0x99, 0xf5, 0xd0, 0x00, 0x54, 0x6b, 0x66, 0x28, 0xf5, 0x25}} , + {{0x7a, 0x8d, 0xa1, 0x5d, 0x70, 0x5d, 0x51, 0x27, 0xee, 0x30, 0x65, 0x56, 0x95, 0x46, 0xde, 0xbd, 0x03, 0x75, 0xb4, 0x57, 0x59, 0x89, 0xeb, 0x02, 0x9e, 0xcc, 0x89, 0x19, 0xa7, 0xcb, 0x17, 0x67}}}, +{{{0x6a, 0xeb, 0xfc, 0x9a, 0x9a, 0x10, 0xce, 0xdb, 0x3a, 0x1c, 0x3c, 0x6a, 0x9d, 0xea, 0x46, 0xbc, 0x45, 0x49, 0xac, 0xe3, 0x41, 0x12, 0x7c, 0xf0, 0xf7, 0x4f, 0xf9, 0xf7, 0xff, 0x2c, 0x89, 0x04}} , + {{0x30, 0x31, 0x54, 0x1a, 0x46, 0xca, 0xe6, 0xc6, 0xcb, 0xe2, 0xc3, 0xc1, 0x8b, 0x75, 0x81, 0xbe, 0xee, 0xf8, 0xa3, 0x11, 0x1c, 0x25, 0xa3, 0xa7, 0x35, 0x51, 0x55, 0xe2, 0x25, 0xaa, 0xe2, 0x3a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xb4, 0x48, 0x10, 0x9f, 0x8a, 0x09, 0x76, 0xfa, 0xf0, 0x7a, 0xb0, 0x70, 0xf7, 0x83, 0x80, 0x52, 0x84, 0x2b, 0x26, 0xa2, 0xc4, 0x5d, 0x4f, 0xba, 0xb1, 0xc8, 0x40, 0x0d, 0x78, 0x97, 0xc4, 0x60}} , + {{0xd4, 0xb1, 0x6c, 0x08, 0xc7, 0x40, 0x38, 0x73, 0x5f, 0x0b, 0xf3, 0x76, 0x5d, 0xb2, 0xa5, 0x2f, 0x57, 0x57, 0x07, 0xed, 0x08, 0xa2, 0x6c, 0x4f, 0x08, 0x02, 0xb5, 0x0e, 0xee, 0x44, 0xfa, 0x22}}}, +{{{0x0f, 0x00, 0x3f, 0xa6, 0x04, 0x19, 0x56, 0x65, 0x31, 0x7f, 0x8b, 0xeb, 0x0d, 0xe1, 0x47, 0x89, 0x97, 0x16, 0x53, 0xfa, 0x81, 0xa7, 0xaa, 0xb2, 0xbf, 0x67, 0xeb, 0x72, 0x60, 0x81, 0x0d, 0x48}} , + {{0x7e, 0x13, 0x33, 0xcd, 0xa8, 0x84, 0x56, 0x1e, 0x67, 0xaf, 0x6b, 0x43, 0xac, 0x17, 0xaf, 0x16, 0xc0, 0x52, 0x99, 0x49, 0x5b, 0x87, 0x73, 0x7e, 0xb5, 0x43, 0xda, 0x6b, 0x1d, 0x0f, 0x2d, 0x55}}}, +{{{0xe9, 0x58, 0x1f, 0xff, 0x84, 0x3f, 0x93, 0x1c, 0xcb, 0xe1, 0x30, 0x69, 0xa5, 0x75, 0x19, 0x7e, 0x14, 0x5f, 0xf8, 0xfc, 0x09, 0xdd, 0xa8, 0x78, 0x9d, 0xca, 0x59, 0x8b, 0xd1, 0x30, 0x01, 0x13}} , + {{0xff, 0x76, 0x03, 0xc5, 0x4b, 0x89, 0x99, 0x70, 0x00, 0x59, 0x70, 0x9c, 0xd5, 0xd9, 0x11, 0x89, 0x5a, 0x46, 0xfe, 0xef, 0xdc, 0xd9, 0x55, 0x2b, 0x45, 0xa7, 0xb0, 0x2d, 0xfb, 0x24, 0xc2, 0x29}}}, +{{{0x38, 0x06, 0xf8, 0x0b, 0xac, 0x82, 0xc4, 0x97, 0x2b, 0x90, 0xe0, 0xf7, 0xa8, 0xab, 0x6c, 0x08, 0x80, 0x66, 0x90, 0x46, 0xf7, 0x26, 0x2d, 0xf8, 0xf1, 0xc4, 0x6b, 0x4a, 0x82, 0x98, 0x8e, 0x37}} , + {{0x8e, 0xb4, 0xee, 0xb8, 0xd4, 0x3f, 0xb2, 0x1b, 0xe0, 0x0a, 0x3d, 0x75, 0x34, 0x28, 0xa2, 0x8e, 0xc4, 0x92, 0x7b, 0xfe, 0x60, 0x6e, 0x6d, 0xb8, 0x31, 0x1d, 0x62, 0x0d, 0x78, 0x14, 0x42, 0x11}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x5e, 0xa8, 0xd8, 0x04, 0x9b, 0x73, 0xc9, 0xc9, 0xdc, 0x0d, 0x73, 0xbf, 0x0a, 0x0a, 0x73, 0xff, 0x18, 0x1f, 0x9c, 0x51, 0xaa, 0xc6, 0xf1, 0x83, 0x25, 0xfd, 0xab, 0xa3, 0x11, 0xd3, 0x01, 0x24}} , + {{0x4d, 0xe3, 0x7e, 0x38, 0x62, 0x5e, 0x64, 0xbb, 0x2b, 0x53, 0xb5, 0x03, 0x68, 0xc4, 0xf2, 0x2b, 0x5a, 0x03, 0x32, 0x99, 0x4a, 0x41, 0x9a, 0xe1, 0x1a, 0xae, 0x8c, 0x48, 0xf3, 0x24, 0x32, 0x65}}}, +{{{0xe8, 0xdd, 0xad, 0x3a, 0x8c, 0xea, 0xf4, 0xb3, 0xb2, 0xe5, 0x73, 0xf2, 0xed, 0x8b, 0xbf, 0xed, 0xb1, 0x0c, 0x0c, 0xfb, 0x2b, 0xf1, 0x01, 0x48, 0xe8, 0x26, 0x03, 0x8e, 0x27, 0x4d, 0x96, 0x72}} , + {{0xc8, 0x09, 0x3b, 0x60, 0xc9, 0x26, 0x4d, 0x7c, 0xf2, 0x9c, 0xd4, 0xa1, 0x3b, 0x26, 0xc2, 0x04, 0x33, 0x44, 0x76, 0x3c, 0x02, 0xbb, 0x11, 0x42, 0x0c, 0x22, 0xb7, 0xc6, 0xe1, 0xac, 0xb4, 0x0e}}}, +{{{0x6f, 0x85, 0xe7, 0xef, 0xde, 0x67, 0x30, 0xfc, 0xbf, 0x5a, 0xe0, 0x7b, 0x7a, 0x2a, 0x54, 0x6b, 0x5d, 0x62, 0x85, 0xa1, 0xf8, 0x16, 0x88, 0xec, 0x61, 0xb9, 0x96, 0xb5, 0xef, 0x2d, 0x43, 0x4d}} , + {{0x7c, 0x31, 0x33, 0xcc, 0xe4, 0xcf, 0x6c, 0xff, 0x80, 0x47, 0x77, 0xd1, 0xd8, 0xe9, 0x69, 0x97, 0x98, 0x7f, 0x20, 0x57, 0x1d, 0x1d, 0x4f, 0x08, 0x27, 0xc8, 0x35, 0x57, 0x40, 0xc6, 0x21, 0x0c}}}, +{{{0xd2, 0x8e, 0x9b, 0xfa, 0x42, 0x8e, 0xdf, 0x8f, 0xc7, 0x86, 0xf9, 0xa4, 0xca, 0x70, 0x00, 0x9d, 0x21, 0xbf, 0xec, 0x57, 0x62, 0x30, 0x58, 0x8c, 0x0d, 0x35, 0xdb, 0x5d, 0x8b, 0x6a, 0xa0, 0x5a}} , + {{0xc1, 0x58, 0x7c, 0x0d, 0x20, 0xdd, 0x11, 0x26, 0x5f, 0x89, 0x3b, 0x97, 0x58, 0xf8, 0x8b, 0xe3, 0xdf, 0x32, 0xe2, 0xfc, 0xd8, 0x67, 0xf2, 0xa5, 0x37, 0x1e, 0x6d, 0xec, 0x7c, 0x27, 0x20, 0x79}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xd0, 0xe9, 0xc0, 0xfa, 0x95, 0x45, 0x23, 0x96, 0xf1, 0x2c, 0x79, 0x25, 0x14, 0xce, 0x40, 0x14, 0x44, 0x2c, 0x36, 0x50, 0xd9, 0x63, 0x56, 0xb7, 0x56, 0x3b, 0x9e, 0xa7, 0xef, 0x89, 0xbb, 0x0e}} , + {{0xce, 0x7f, 0xdc, 0x0a, 0xcc, 0x82, 0x1c, 0x0a, 0x78, 0x71, 0xe8, 0x74, 0x8d, 0x01, 0x30, 0x0f, 0xa7, 0x11, 0x4c, 0xdf, 0x38, 0xd7, 0xa7, 0x0d, 0xf8, 0x48, 0x52, 0x00, 0x80, 0x7b, 0x5f, 0x0e}}}, +{{{0x25, 0x83, 0xe6, 0x94, 0x7b, 0x81, 0xb2, 0x91, 0xae, 0x0e, 0x05, 0xc9, 0xa3, 0x68, 0x2d, 0xd9, 0x88, 0x25, 0x19, 0x2a, 0x61, 0x61, 0x21, 0x97, 0x15, 0xa1, 0x35, 0xa5, 0x46, 0xc8, 0xa2, 0x0e}} , + {{0x1b, 0x03, 0x0d, 0x8b, 0x5a, 0x1b, 0x97, 0x4b, 0xf2, 0x16, 0x31, 0x3d, 0x1f, 0x33, 0xa0, 0x50, 0x3a, 0x18, 0xbe, 0x13, 0xa1, 0x76, 0xc1, 0xba, 0x1b, 0xf1, 0x05, 0x7b, 0x33, 0xa8, 0x82, 0x3b}}}, +{{{0xba, 0x36, 0x7b, 0x6d, 0xa9, 0xea, 0x14, 0x12, 0xc5, 0xfa, 0x91, 0x00, 0xba, 0x9b, 0x99, 0xcc, 0x56, 0x02, 0xe9, 0xa0, 0x26, 0x40, 0x66, 0x8c, 0xc4, 0xf8, 0x85, 0x33, 0x68, 0xe7, 0x03, 0x20}} , + {{0x50, 0x5b, 0xff, 0xa9, 0xb2, 0xf1, 0xf1, 0x78, 0xcf, 0x14, 0xa4, 0xa9, 0xfc, 0x09, 0x46, 0x94, 0x54, 0x65, 0x0d, 0x9c, 0x5f, 0x72, 0x21, 0xe2, 0x97, 0xa5, 0x2d, 0x81, 0xce, 0x4a, 0x5f, 0x79}}}, +{{{0x3d, 0x5f, 0x5c, 0xd2, 0xbc, 0x7d, 0x77, 0x0e, 0x2a, 0x6d, 0x22, 0x45, 0x84, 0x06, 0xc4, 0xdd, 0xc6, 0xa6, 0xc6, 0xd7, 0x49, 0xad, 0x6d, 0x87, 0x91, 0x0e, 0x3a, 0x67, 0x1d, 0x2c, 0x1d, 0x56}} , + {{0xfe, 0x7a, 0x74, 0xcf, 0xd4, 0xd2, 0xe5, 0x19, 0xde, 0xd0, 0xdb, 0x70, 0x23, 0x69, 0xe6, 0x6d, 0xec, 0xec, 0xcc, 0x09, 0x33, 0x6a, 0x77, 0xdc, 0x6b, 0x22, 0x76, 0x5d, 0x92, 0x09, 0xac, 0x2d}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x23, 0x15, 0x17, 0xeb, 0xd3, 0xdb, 0x12, 0x5e, 0x01, 0xf0, 0x91, 0xab, 0x2c, 0x41, 0xce, 0xac, 0xed, 0x1b, 0x4b, 0x2d, 0xbc, 0xdb, 0x17, 0x66, 0x89, 0x46, 0xad, 0x4b, 0x1e, 0x6f, 0x0b, 0x14}} , + {{0x11, 0xce, 0xbf, 0xb6, 0x77, 0x2d, 0x48, 0x22, 0x18, 0x4f, 0xa3, 0x5d, 0x4a, 0xb0, 0x70, 0x12, 0x3e, 0x54, 0xd7, 0xd8, 0x0e, 0x2b, 0x27, 0xdc, 0x53, 0xff, 0xca, 0x8c, 0x59, 0xb3, 0x4e, 0x44}}}, +{{{0x07, 0x76, 0x61, 0x0f, 0x66, 0xb2, 0x21, 0x39, 0x7e, 0xc0, 0xec, 0x45, 0x28, 0x82, 0xa1, 0x29, 0x32, 0x44, 0x35, 0x13, 0x5e, 0x61, 0x5e, 0x54, 0xcb, 0x7c, 0xef, 0xf6, 0x41, 0xcf, 0x9f, 0x0a}} , + {{0xdd, 0xf9, 0xda, 0x84, 0xc3, 0xe6, 0x8a, 0x9f, 0x24, 0xd2, 0x96, 0x5d, 0x39, 0x6f, 0x58, 0x8c, 0xc1, 0x56, 0x93, 0xab, 0xb5, 0x79, 0x3b, 0xd2, 0xa8, 0x73, 0x16, 0xed, 0xfa, 0xb4, 0x2f, 0x73}}}, +{{{0x8b, 0xb1, 0x95, 0xe5, 0x92, 0x50, 0x35, 0x11, 0x76, 0xac, 0xf4, 0x4d, 0x24, 0xc3, 0x32, 0xe6, 0xeb, 0xfe, 0x2c, 0x87, 0xc4, 0xf1, 0x56, 0xc4, 0x75, 0x24, 0x7a, 0x56, 0x85, 0x5a, 0x3a, 0x13}} , + {{0x0d, 0x16, 0xac, 0x3c, 0x4a, 0x58, 0x86, 0x3a, 0x46, 0x7f, 0x6c, 0xa3, 0x52, 0x6e, 0x37, 0xe4, 0x96, 0x9c, 0xe9, 0x5c, 0x66, 0x41, 0x67, 0xe4, 0xfb, 0x79, 0x0c, 0x05, 0xf6, 0x64, 0xd5, 0x7c}}}, +{{{0x28, 0xc1, 0xe1, 0x54, 0x73, 0xf2, 0xbf, 0x76, 0x74, 0x19, 0x19, 0x1b, 0xe4, 0xb9, 0xa8, 0x46, 0x65, 0x73, 0xf3, 0x77, 0x9b, 0x29, 0x74, 0x5b, 0xc6, 0x89, 0x6c, 0x2c, 0x7c, 0xf8, 0xb3, 0x0f}} , + {{0xf7, 0xd5, 0xe9, 0x74, 0x5d, 0xb8, 0x25, 0x16, 0xb5, 0x30, 0xbc, 0x84, 0xc5, 0xf0, 0xad, 0xca, 0x12, 0x28, 0xbc, 0x9d, 0xd4, 0xfa, 0x82, 0xe6, 0xe3, 0xbf, 0xa2, 0x15, 0x2c, 0xd4, 0x34, 0x10}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x61, 0xb1, 0x46, 0xba, 0x0e, 0x31, 0xa5, 0x67, 0x6c, 0x7f, 0xd6, 0xd9, 0x27, 0x85, 0x0f, 0x79, 0x14, 0xc8, 0x6c, 0x2f, 0x5f, 0x5b, 0x9c, 0x35, 0x3d, 0x38, 0x86, 0x77, 0x65, 0x55, 0x6a, 0x7b}} , + {{0xd3, 0xb0, 0x3a, 0x66, 0x60, 0x1b, 0x43, 0xf1, 0x26, 0x58, 0x99, 0x09, 0x8f, 0x2d, 0xa3, 0x14, 0x71, 0x85, 0xdb, 0xed, 0xf6, 0x26, 0xd5, 0x61, 0x9a, 0x73, 0xac, 0x0e, 0xea, 0xac, 0xb7, 0x0c}}}, +{{{0x5e, 0xf4, 0xe5, 0x17, 0x0e, 0x10, 0x9f, 0xe7, 0x43, 0x5f, 0x67, 0x5c, 0xac, 0x4b, 0xe5, 0x14, 0x41, 0xd2, 0xbf, 0x48, 0xf5, 0x14, 0xb0, 0x71, 0xc6, 0x61, 0xc1, 0xb2, 0x70, 0x58, 0xd2, 0x5a}} , + {{0x2d, 0xba, 0x16, 0x07, 0x92, 0x94, 0xdc, 0xbd, 0x50, 0x2b, 0xc9, 0x7f, 0x42, 0x00, 0xba, 0x61, 0xed, 0xf8, 0x43, 0xed, 0xf5, 0xf9, 0x40, 0x60, 0xb2, 0xb0, 0x82, 0xcb, 0xed, 0x75, 0xc7, 0x65}}}, +{{{0x80, 0xba, 0x0d, 0x09, 0x40, 0xa7, 0x39, 0xa6, 0x67, 0x34, 0x7e, 0x66, 0xbe, 0x56, 0xfb, 0x53, 0x78, 0xc4, 0x46, 0xe8, 0xed, 0x68, 0x6c, 0x7f, 0xce, 0xe8, 0x9f, 0xce, 0xa2, 0x64, 0x58, 0x53}} , + {{0xe8, 0xc1, 0xa9, 0xc2, 0x7b, 0x59, 0x21, 0x33, 0xe2, 0x43, 0x73, 0x2b, 0xac, 0x2d, 0xc1, 0x89, 0x3b, 0x15, 0xe2, 0xd5, 0xc0, 0x97, 0x8a, 0xfd, 0x6f, 0x36, 0x33, 0xb7, 0xb9, 0xc3, 0x88, 0x09}}}, +{{{0xd0, 0xb6, 0x56, 0x30, 0x5c, 0xae, 0xb3, 0x75, 0x44, 0xa4, 0x83, 0x51, 0x6e, 0x01, 0x65, 0xef, 0x45, 0x76, 0xe6, 0xf5, 0xa2, 0x0d, 0xd4, 0x16, 0x3b, 0x58, 0x2f, 0xf2, 0x2f, 0x36, 0x18, 0x3f}} , + {{0xfd, 0x2f, 0xe0, 0x9b, 0x1e, 0x8c, 0xc5, 0x18, 0xa9, 0xca, 0xd4, 0x2b, 0x35, 0xb6, 0x95, 0x0a, 0x9f, 0x7e, 0xfb, 0xc4, 0xef, 0x88, 0x7b, 0x23, 0x43, 0xec, 0x2f, 0x0d, 0x0f, 0x7a, 0xfc, 0x5c}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x8d, 0xd2, 0xda, 0xc7, 0x44, 0xd6, 0x7a, 0xdb, 0x26, 0x7d, 0x1d, 0xb8, 0xe1, 0xde, 0x9d, 0x7a, 0x7d, 0x17, 0x7e, 0x1c, 0x37, 0x04, 0x8d, 0x2d, 0x7c, 0x5e, 0x18, 0x38, 0x1e, 0xaf, 0xc7, 0x1b}} , + {{0x33, 0x48, 0x31, 0x00, 0x59, 0xf6, 0xf2, 0xca, 0x0f, 0x27, 0x1b, 0x63, 0x12, 0x7e, 0x02, 0x1d, 0x49, 0xc0, 0x5d, 0x79, 0x87, 0xef, 0x5e, 0x7a, 0x2f, 0x1f, 0x66, 0x55, 0xd8, 0x09, 0xd9, 0x61}}}, +{{{0x54, 0x83, 0x02, 0x18, 0x82, 0x93, 0x99, 0x07, 0xd0, 0xa7, 0xda, 0xd8, 0x75, 0x89, 0xfa, 0xf2, 0xd9, 0xa3, 0xb8, 0x6b, 0x5a, 0x35, 0x28, 0xd2, 0x6b, 0x59, 0xc2, 0xf8, 0x45, 0xe2, 0xbc, 0x06}} , + {{0x65, 0xc0, 0xa3, 0x88, 0x51, 0x95, 0xfc, 0x96, 0x94, 0x78, 0xe8, 0x0d, 0x8b, 0x41, 0xc9, 0xc2, 0x58, 0x48, 0x75, 0x10, 0x2f, 0xcd, 0x2a, 0xc9, 0xa0, 0x6d, 0x0f, 0xdd, 0x9c, 0x98, 0x26, 0x3d}}}, +{{{0x2f, 0x66, 0x29, 0x1b, 0x04, 0x89, 0xbd, 0x7e, 0xee, 0x6e, 0xdd, 0xb7, 0x0e, 0xef, 0xb0, 0x0c, 0xb4, 0xfc, 0x7f, 0xc2, 0xc9, 0x3a, 0x3c, 0x64, 0xef, 0x45, 0x44, 0xaf, 0x8a, 0x90, 0x65, 0x76}} , + {{0xa1, 0x4c, 0x70, 0x4b, 0x0e, 0xa0, 0x83, 0x70, 0x13, 0xa4, 0xaf, 0xb8, 0x38, 0x19, 0x22, 0x65, 0x09, 0xb4, 0x02, 0x4f, 0x06, 0xf8, 0x17, 0xce, 0x46, 0x45, 0xda, 0x50, 0x7c, 0x8a, 0xd1, 0x4e}}}, +{{{0xf7, 0xd4, 0x16, 0x6c, 0x4e, 0x95, 0x9d, 0x5d, 0x0f, 0x91, 0x2b, 0x52, 0xfe, 0x5c, 0x34, 0xe5, 0x30, 0xe6, 0xa4, 0x3b, 0xf3, 0xf3, 0x34, 0x08, 0xa9, 0x4a, 0xa0, 0xb5, 0x6e, 0xb3, 0x09, 0x0a}} , + {{0x26, 0xd9, 0x5e, 0xa3, 0x0f, 0xeb, 0xa2, 0xf3, 0x20, 0x3b, 0x37, 0xd4, 0xe4, 0x9e, 0xce, 0x06, 0x3d, 0x53, 0xed, 0xae, 0x2b, 0xeb, 0xb6, 0x24, 0x0a, 0x11, 0xa3, 0x0f, 0xd6, 0x7f, 0xa4, 0x3a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xdb, 0x9f, 0x2c, 0xfc, 0xd6, 0xb2, 0x1e, 0x2e, 0x52, 0x7a, 0x06, 0x87, 0x2d, 0x86, 0x72, 0x2b, 0x6d, 0x90, 0x77, 0x46, 0x43, 0xb5, 0x7a, 0xf8, 0x60, 0x7d, 0x91, 0x60, 0x5b, 0x9d, 0x9e, 0x07}} , + {{0x97, 0x87, 0xc7, 0x04, 0x1c, 0x38, 0x01, 0x39, 0x58, 0xc7, 0x85, 0xa3, 0xfc, 0x64, 0x00, 0x64, 0x25, 0xa2, 0xbf, 0x50, 0x94, 0xca, 0x26, 0x31, 0x45, 0x0a, 0x24, 0xd2, 0x51, 0x29, 0x51, 0x16}}}, +{{{0x4d, 0x4a, 0xd7, 0x98, 0x71, 0x57, 0xac, 0x7d, 0x8b, 0x37, 0xbd, 0x63, 0xff, 0x87, 0xb1, 0x49, 0x95, 0x20, 0x7c, 0xcf, 0x7c, 0x59, 0xc4, 0x91, 0x9c, 0xef, 0xd0, 0xdb, 0x60, 0x09, 0x9d, 0x46}} , + {{0xcb, 0x78, 0x94, 0x90, 0xe4, 0x45, 0xb3, 0xf6, 0xd9, 0xf6, 0x57, 0x74, 0xd5, 0xf8, 0x83, 0x4f, 0x39, 0xc9, 0xbd, 0x88, 0xc2, 0x57, 0x21, 0x1f, 0x24, 0x32, 0x68, 0xf8, 0xc7, 0x21, 0x5f, 0x0b}}}, +{{{0x2a, 0x36, 0x68, 0xfc, 0x5f, 0xb6, 0x4f, 0xa5, 0xe3, 0x9d, 0x24, 0x2f, 0xc0, 0x93, 0x61, 0xcf, 0xf8, 0x0a, 0xed, 0xe1, 0xdb, 0x27, 0xec, 0x0e, 0x14, 0x32, 0x5f, 0x8e, 0xa1, 0x62, 0x41, 0x16}} , + {{0x95, 0x21, 0x01, 0xce, 0x95, 0x5b, 0x0e, 0x57, 0xc7, 0xb9, 0x62, 0xb5, 0x28, 0xca, 0x11, 0xec, 0xb4, 0x46, 0x06, 0x73, 0x26, 0xff, 0xfb, 0x66, 0x7d, 0xee, 0x5f, 0xb2, 0x56, 0xfd, 0x2a, 0x08}}}, +{{{0x92, 0x67, 0x77, 0x56, 0xa1, 0xff, 0xc4, 0xc5, 0x95, 0xf0, 0xe3, 0x3a, 0x0a, 0xca, 0x94, 0x4d, 0x9e, 0x7e, 0x3d, 0xb9, 0x6e, 0xb6, 0xb0, 0xce, 0xa4, 0x30, 0x89, 0x99, 0xe9, 0xad, 0x11, 0x59}} , + {{0xf6, 0x48, 0x95, 0xa1, 0x6f, 0x5f, 0xb7, 0xa5, 0xbb, 0x30, 0x00, 0x1c, 0xd2, 0x8a, 0xd6, 0x25, 0x26, 0x1b, 0xb2, 0x0d, 0x37, 0x6a, 0x05, 0xf4, 0x9d, 0x3e, 0x17, 0x2a, 0x43, 0xd2, 0x3a, 0x06}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x32, 0x99, 0x93, 0xd1, 0x9a, 0x72, 0xf3, 0xa9, 0x16, 0xbd, 0xb4, 0x4c, 0xdd, 0xf9, 0xd4, 0xb2, 0x64, 0x9a, 0xd3, 0x05, 0xe4, 0xa3, 0x73, 0x1c, 0xcb, 0x7e, 0x57, 0x67, 0xff, 0x04, 0xb3, 0x10}} , + {{0xb9, 0x4b, 0xa4, 0xad, 0xd0, 0x6d, 0x61, 0x23, 0xb4, 0xaf, 0x34, 0xa9, 0xaa, 0x65, 0xec, 0xd9, 0x69, 0xe3, 0x85, 0xcd, 0xcc, 0xe7, 0xb0, 0x9b, 0x41, 0xc1, 0x1c, 0xf9, 0xa0, 0xfa, 0xb7, 0x13}}}, +{{{0x04, 0xfd, 0x88, 0x3c, 0x0c, 0xd0, 0x09, 0x52, 0x51, 0x4f, 0x06, 0x19, 0xcc, 0xc3, 0xbb, 0xde, 0x80, 0xc5, 0x33, 0xbc, 0xf9, 0xf3, 0x17, 0x36, 0xdd, 0xc6, 0xde, 0xe8, 0x9b, 0x5d, 0x79, 0x1b}} , + {{0x65, 0x0a, 0xbe, 0x51, 0x57, 0xad, 0x50, 0x79, 0x08, 0x71, 0x9b, 0x07, 0x95, 0x8f, 0xfb, 0xae, 0x4b, 0x38, 0xba, 0xcf, 0x53, 0x2a, 0x86, 0x1e, 0xc0, 0x50, 0x5c, 0x67, 0x1b, 0xf6, 0x87, 0x6c}}}, +{{{0x4f, 0x00, 0xb2, 0x66, 0x55, 0xed, 0x4a, 0xed, 0x8d, 0xe1, 0x66, 0x18, 0xb2, 0x14, 0x74, 0x8d, 0xfd, 0x1a, 0x36, 0x0f, 0x26, 0x5c, 0x8b, 0x89, 0xf3, 0xab, 0xf2, 0xf3, 0x24, 0x67, 0xfd, 0x70}} , + {{0xfd, 0x4e, 0x2a, 0xc1, 0x3a, 0xca, 0x8f, 0x00, 0xd8, 0xec, 0x74, 0x67, 0xef, 0x61, 0xe0, 0x28, 0xd0, 0x96, 0xf4, 0x48, 0xde, 0x81, 0xe3, 0xef, 0xdc, 0xaa, 0x7d, 0xf3, 0xb6, 0x55, 0xa6, 0x65}}}, +{{{0xeb, 0xcb, 0xc5, 0x70, 0x91, 0x31, 0x10, 0x93, 0x0d, 0xc8, 0xd0, 0xef, 0x62, 0xe8, 0x6f, 0x82, 0xe3, 0x69, 0x3d, 0x91, 0x7f, 0x31, 0xe1, 0x26, 0x35, 0x3c, 0x4a, 0x2f, 0xab, 0xc4, 0x9a, 0x5e}} , + {{0xab, 0x1b, 0xb5, 0xe5, 0x2b, 0xc3, 0x0e, 0x29, 0xb0, 0xd0, 0x73, 0xe6, 0x4f, 0x64, 0xf2, 0xbc, 0xe4, 0xe4, 0xe1, 0x9a, 0x52, 0x33, 0x2f, 0xbd, 0xcc, 0x03, 0xee, 0x8a, 0xfa, 0x00, 0x5f, 0x50}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xf6, 0xdb, 0x0d, 0x22, 0x3d, 0xb5, 0x14, 0x75, 0x31, 0xf0, 0x81, 0xe2, 0xb9, 0x37, 0xa2, 0xa9, 0x84, 0x11, 0x9a, 0x07, 0xb5, 0x53, 0x89, 0x78, 0xa9, 0x30, 0x27, 0xa1, 0xf1, 0x4e, 0x5c, 0x2e}} , + {{0x8b, 0x00, 0x54, 0xfb, 0x4d, 0xdc, 0xcb, 0x17, 0x35, 0x40, 0xff, 0xb7, 0x8c, 0xfe, 0x4a, 0xe4, 0x4e, 0x99, 0x4e, 0xa8, 0x74, 0x54, 0x5d, 0x5c, 0x96, 0xa3, 0x12, 0x55, 0x36, 0x31, 0x17, 0x5c}}}, +{{{0xce, 0x24, 0xef, 0x7b, 0x86, 0xf2, 0x0f, 0x77, 0xe8, 0x5c, 0x7d, 0x87, 0x38, 0x2d, 0xef, 0xaf, 0xf2, 0x8c, 0x72, 0x2e, 0xeb, 0xb6, 0x55, 0x4b, 0x6e, 0xf1, 0x4e, 0x8a, 0x0e, 0x9a, 0x6c, 0x4c}} , + {{0x25, 0xea, 0x86, 0xc2, 0xd1, 0x4f, 0xb7, 0x3e, 0xa8, 0x5c, 0x8d, 0x66, 0x81, 0x25, 0xed, 0xc5, 0x4c, 0x05, 0xb9, 0xd8, 0xd6, 0x70, 0xbe, 0x73, 0x82, 0xe8, 0xa1, 0xe5, 0x1e, 0x71, 0xd5, 0x26}}}, +{{{0x4e, 0x6d, 0xc3, 0xa7, 0x4f, 0x22, 0x45, 0x26, 0xa2, 0x7e, 0x16, 0xf7, 0xf7, 0x63, 0xdc, 0x86, 0x01, 0x2a, 0x71, 0x38, 0x5c, 0x33, 0xc3, 0xce, 0x30, 0xff, 0xf9, 0x2c, 0x91, 0x71, 0x8a, 0x72}} , + {{0x8c, 0x44, 0x09, 0x28, 0xd5, 0x23, 0xc9, 0x8f, 0xf3, 0x84, 0x45, 0xc6, 0x9a, 0x5e, 0xff, 0xd2, 0xc7, 0x57, 0x93, 0xa3, 0xc1, 0x69, 0xdd, 0x62, 0x0f, 0xda, 0x5c, 0x30, 0x59, 0x5d, 0xe9, 0x4c}}}, +{{{0x92, 0x7e, 0x50, 0x27, 0x72, 0xd7, 0x0c, 0xd6, 0x69, 0x96, 0x81, 0x35, 0x84, 0x94, 0x35, 0x8b, 0x6c, 0xaa, 0x62, 0x86, 0x6e, 0x1c, 0x15, 0xf3, 0x6c, 0xb3, 0xff, 0x65, 0x1b, 0xa2, 0x9b, 0x59}} , + {{0xe2, 0xa9, 0x65, 0x88, 0xc4, 0x50, 0xfa, 0xbb, 0x3b, 0x6e, 0x5f, 0x44, 0x01, 0xca, 0x97, 0xd4, 0xdd, 0xf6, 0xcd, 0x3f, 0x3f, 0xe5, 0x97, 0x67, 0x2b, 0x8c, 0x66, 0x0f, 0x35, 0x9b, 0xf5, 0x07}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xf1, 0x59, 0x27, 0xd8, 0xdb, 0x5a, 0x11, 0x5e, 0x82, 0xf3, 0x38, 0xff, 0x1c, 0xed, 0xfe, 0x3f, 0x64, 0x54, 0x3f, 0x7f, 0xd1, 0x81, 0xed, 0xef, 0x65, 0xc5, 0xcb, 0xfd, 0xe1, 0x80, 0xcd, 0x11}} , + {{0xe0, 0xdb, 0x22, 0x28, 0xe6, 0xff, 0x61, 0x9d, 0x41, 0x14, 0x2d, 0x3b, 0x26, 0x22, 0xdf, 0xf1, 0x34, 0x81, 0xe9, 0x45, 0xee, 0x0f, 0x98, 0x8b, 0xa6, 0x3f, 0xef, 0xf7, 0x43, 0x19, 0xf1, 0x43}}}, +{{{0xee, 0xf3, 0x00, 0xa1, 0x50, 0xde, 0xc0, 0xb6, 0x01, 0xe3, 0x8c, 0x3c, 0x4d, 0x31, 0xd2, 0xb0, 0x58, 0xcd, 0xed, 0x10, 0x4a, 0x7a, 0xef, 0x80, 0xa9, 0x19, 0x32, 0xf3, 0xd8, 0x33, 0x8c, 0x06}} , + {{0xcb, 0x7d, 0x4f, 0xff, 0x30, 0xd8, 0x12, 0x3b, 0x39, 0x1c, 0x06, 0xf9, 0x4c, 0x34, 0x35, 0x71, 0xb5, 0x16, 0x94, 0x67, 0xdf, 0xee, 0x11, 0xde, 0xa4, 0x1d, 0x88, 0x93, 0x35, 0xa9, 0x32, 0x10}}}, +{{{0xe9, 0xc3, 0xbc, 0x7b, 0x5c, 0xfc, 0xb2, 0xf9, 0xc9, 0x2f, 0xe5, 0xba, 0x3a, 0x0b, 0xab, 0x64, 0x38, 0x6f, 0x5b, 0x4b, 0x93, 0xda, 0x64, 0xec, 0x4d, 0x3d, 0xa0, 0xf5, 0xbb, 0xba, 0x47, 0x48}} , + {{0x60, 0xbc, 0x45, 0x1f, 0x23, 0xa2, 0x3b, 0x70, 0x76, 0xe6, 0x97, 0x99, 0x4f, 0x77, 0x54, 0x67, 0x30, 0x9a, 0xe7, 0x66, 0xd6, 0xcd, 0x2e, 0x51, 0x24, 0x2c, 0x42, 0x4a, 0x11, 0xfe, 0x6f, 0x7e}}}, +{{{0x87, 0xc0, 0xb1, 0xf0, 0xa3, 0x6f, 0x0c, 0x93, 0xa9, 0x0a, 0x72, 0xef, 0x5c, 0xbe, 0x65, 0x35, 0xa7, 0x6a, 0x4e, 0x2c, 0xbf, 0x21, 0x23, 0xe8, 0x2f, 0x97, 0xc7, 0x3e, 0xc8, 0x17, 0xac, 0x1e}} , + {{0x7b, 0xef, 0x21, 0xe5, 0x40, 0xcc, 0x1e, 0xdc, 0xd6, 0xbd, 0x97, 0x7a, 0x7c, 0x75, 0x86, 0x7a, 0x25, 0x5a, 0x6e, 0x7c, 0xe5, 0x51, 0x3c, 0x1b, 0x5b, 0x82, 0x9a, 0x07, 0x60, 0xa1, 0x19, 0x04}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x96, 0x88, 0xa6, 0xab, 0x8f, 0xe3, 0x3a, 0x49, 0xf8, 0xfe, 0x34, 0xe7, 0x6a, 0xb2, 0xfe, 0x40, 0x26, 0x74, 0x57, 0x4c, 0xf6, 0xd4, 0x99, 0xce, 0x5d, 0x7b, 0x2f, 0x67, 0xd6, 0x5a, 0xe4, 0x4e}} , + {{0x5c, 0x82, 0xb3, 0xbd, 0x55, 0x25, 0xf6, 0x6a, 0x93, 0xa4, 0x02, 0xc6, 0x7d, 0x5c, 0xb1, 0x2b, 0x5b, 0xff, 0xfb, 0x56, 0xf8, 0x01, 0x41, 0x90, 0xc6, 0xb6, 0xac, 0x4f, 0xfe, 0xa7, 0x41, 0x70}}}, +{{{0xdb, 0xfa, 0x9b, 0x2c, 0xd4, 0x23, 0x67, 0x2c, 0x8a, 0x63, 0x6c, 0x07, 0x26, 0x48, 0x4f, 0xc2, 0x03, 0xd2, 0x53, 0x20, 0x28, 0xed, 0x65, 0x71, 0x47, 0xa9, 0x16, 0x16, 0x12, 0xbc, 0x28, 0x33}} , + {{0x39, 0xc0, 0xfa, 0xfa, 0xcd, 0x33, 0x43, 0xc7, 0x97, 0x76, 0x9b, 0x93, 0x91, 0x72, 0xeb, 0xc5, 0x18, 0x67, 0x4c, 0x11, 0xf0, 0xf4, 0xe5, 0x73, 0xb2, 0x5c, 0x1b, 0xc2, 0x26, 0x3f, 0xbf, 0x2b}}}, +{{{0x86, 0xe6, 0x8c, 0x1d, 0xdf, 0xca, 0xfc, 0xd5, 0xf8, 0x3a, 0xc3, 0x44, 0x72, 0xe6, 0x78, 0x9d, 0x2b, 0x97, 0xf8, 0x28, 0x45, 0xb4, 0x20, 0xc9, 0x2a, 0x8c, 0x67, 0xaa, 0x11, 0xc5, 0x5b, 0x2f}} , + {{0x17, 0x0f, 0x86, 0x52, 0xd7, 0x9d, 0xc3, 0x44, 0x51, 0x76, 0x32, 0x65, 0xb4, 0x37, 0x81, 0x99, 0x46, 0x37, 0x62, 0xed, 0xcf, 0x64, 0x9d, 0x72, 0x40, 0x7a, 0x4c, 0x0b, 0x76, 0x2a, 0xfb, 0x56}}}, +{{{0x33, 0xa7, 0x90, 0x7c, 0xc3, 0x6f, 0x17, 0xa5, 0xa0, 0x67, 0x72, 0x17, 0xea, 0x7e, 0x63, 0x14, 0x83, 0xde, 0xc1, 0x71, 0x2d, 0x41, 0x32, 0x7a, 0xf3, 0xd1, 0x2b, 0xd8, 0x2a, 0xa6, 0x46, 0x36}} , + {{0xac, 0xcc, 0x6b, 0x7c, 0xf9, 0xb8, 0x8b, 0x08, 0x5c, 0xd0, 0x7d, 0x8f, 0x73, 0xea, 0x20, 0xda, 0x86, 0xca, 0x00, 0xc7, 0xad, 0x73, 0x4d, 0xe9, 0xe8, 0xa9, 0xda, 0x1f, 0x03, 0x06, 0xdd, 0x24}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x9c, 0xb2, 0x61, 0x0a, 0x98, 0x2a, 0xa5, 0xd7, 0xee, 0xa9, 0xac, 0x65, 0xcb, 0x0a, 0x1e, 0xe2, 0xbe, 0xdc, 0x85, 0x59, 0x0f, 0x9c, 0xa6, 0x57, 0x34, 0xa5, 0x87, 0xeb, 0x7b, 0x1e, 0x0c, 0x3c}} , + {{0x2f, 0xbd, 0x84, 0x63, 0x0d, 0xb5, 0xa0, 0xf0, 0x4b, 0x9e, 0x93, 0xc6, 0x34, 0x9a, 0x34, 0xff, 0x73, 0x19, 0x2f, 0x6e, 0x54, 0x45, 0x2c, 0x92, 0x31, 0x76, 0x34, 0xf1, 0xb2, 0x26, 0xe8, 0x74}}}, +{{{0x0a, 0x67, 0x90, 0x6d, 0x0c, 0x4c, 0xcc, 0xc0, 0xe6, 0xbd, 0xa7, 0x5e, 0x55, 0x8c, 0xcd, 0x58, 0x9b, 0x11, 0xa2, 0xbb, 0x4b, 0xb1, 0x43, 0x04, 0x3c, 0x55, 0xed, 0x23, 0xfe, 0xcd, 0xb1, 0x53}} , + {{0x05, 0xfb, 0x75, 0xf5, 0x01, 0xaf, 0x38, 0x72, 0x58, 0xfc, 0x04, 0x29, 0x34, 0x7a, 0x67, 0xa2, 0x08, 0x50, 0x6e, 0xd0, 0x2b, 0x73, 0xd5, 0xb8, 0xe4, 0x30, 0x96, 0xad, 0x45, 0xdf, 0xa6, 0x5c}}}, +{{{0x0d, 0x88, 0x1a, 0x90, 0x7e, 0xdc, 0xd8, 0xfe, 0xc1, 0x2f, 0x5d, 0x67, 0xee, 0x67, 0x2f, 0xed, 0x6f, 0x55, 0x43, 0x5f, 0x87, 0x14, 0x35, 0x42, 0xd3, 0x75, 0xae, 0xd5, 0xd3, 0x85, 0x1a, 0x76}} , + {{0x87, 0xc8, 0xa0, 0x6e, 0xe1, 0xb0, 0xad, 0x6a, 0x4a, 0x34, 0x71, 0xed, 0x7c, 0xd6, 0x44, 0x03, 0x65, 0x4a, 0x5c, 0x5c, 0x04, 0xf5, 0x24, 0x3f, 0xb0, 0x16, 0x5e, 0x8c, 0xb2, 0xd2, 0xc5, 0x20}}}, +{{{0x98, 0x83, 0xc2, 0x37, 0xa0, 0x41, 0xa8, 0x48, 0x5c, 0x5f, 0xbf, 0xc8, 0xfa, 0x24, 0xe0, 0x59, 0x2c, 0xbd, 0xf6, 0x81, 0x7e, 0x88, 0xe6, 0xca, 0x04, 0xd8, 0x5d, 0x60, 0xbb, 0x74, 0xa7, 0x0b}} , + {{0x21, 0x13, 0x91, 0xbf, 0x77, 0x7a, 0x33, 0xbc, 0xe9, 0x07, 0x39, 0x0a, 0xdd, 0x7d, 0x06, 0x10, 0x9a, 0xee, 0x47, 0x73, 0x1b, 0x15, 0x5a, 0xfb, 0xcd, 0x4d, 0xd0, 0xd2, 0x3a, 0x01, 0xba, 0x54}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x48, 0xd5, 0x39, 0x4a, 0x0b, 0x20, 0x6a, 0x43, 0xa0, 0x07, 0x82, 0x5e, 0x49, 0x7c, 0xc9, 0x47, 0xf1, 0x7c, 0x37, 0xb9, 0x23, 0xef, 0x6b, 0x46, 0x45, 0x8c, 0x45, 0x76, 0xdf, 0x14, 0x6b, 0x6e}} , + {{0x42, 0xc9, 0xca, 0x29, 0x4c, 0x76, 0x37, 0xda, 0x8a, 0x2d, 0x7c, 0x3a, 0x58, 0xf2, 0x03, 0xb4, 0xb5, 0xb9, 0x1a, 0x13, 0x2d, 0xde, 0x5f, 0x6b, 0x9d, 0xba, 0x52, 0xc9, 0x5d, 0xb3, 0xf3, 0x30}}}, +{{{0x4c, 0x6f, 0xfe, 0x6b, 0x0c, 0x62, 0xd7, 0x48, 0x71, 0xef, 0xb1, 0x85, 0x79, 0xc0, 0xed, 0x24, 0xb1, 0x08, 0x93, 0x76, 0x8e, 0xf7, 0x38, 0x8e, 0xeb, 0xfe, 0x80, 0x40, 0xaf, 0x90, 0x64, 0x49}} , + {{0x4a, 0x88, 0xda, 0xc1, 0x98, 0x44, 0x3c, 0x53, 0x4e, 0xdb, 0x4b, 0xb9, 0x12, 0x5f, 0xcd, 0x08, 0x04, 0xef, 0x75, 0xe7, 0xb1, 0x3a, 0xe5, 0x07, 0xfa, 0xca, 0x65, 0x7b, 0x72, 0x10, 0x64, 0x7f}}}, +{{{0x3d, 0x81, 0xf0, 0xeb, 0x16, 0xfd, 0x58, 0x33, 0x8d, 0x7c, 0x1a, 0xfb, 0x20, 0x2c, 0x8a, 0xee, 0x90, 0xbb, 0x33, 0x6d, 0x45, 0xe9, 0x8e, 0x99, 0x85, 0xe1, 0x08, 0x1f, 0xc5, 0xf1, 0xb5, 0x46}} , + {{0xe4, 0xe7, 0x43, 0x4b, 0xa0, 0x3f, 0x2b, 0x06, 0xba, 0x17, 0xae, 0x3d, 0xe6, 0xce, 0xbd, 0xb8, 0xed, 0x74, 0x11, 0x35, 0xec, 0x96, 0xfe, 0x31, 0xe3, 0x0e, 0x7a, 0x4e, 0xc9, 0x1d, 0xcb, 0x20}}}, +{{{0xe0, 0x67, 0xe9, 0x7b, 0xdb, 0x96, 0x5c, 0xb0, 0x32, 0xd0, 0x59, 0x31, 0x90, 0xdc, 0x92, 0x97, 0xac, 0x09, 0x38, 0x31, 0x0f, 0x7e, 0xd6, 0x5d, 0xd0, 0x06, 0xb6, 0x1f, 0xea, 0xf0, 0x5b, 0x07}} , + {{0x81, 0x9f, 0xc7, 0xde, 0x6b, 0x41, 0x22, 0x35, 0x14, 0x67, 0x77, 0x3e, 0x90, 0x81, 0xb0, 0xd9, 0x85, 0x4c, 0xca, 0x9b, 0x3f, 0x04, 0x59, 0xd6, 0xaa, 0x17, 0xc3, 0x88, 0x34, 0x37, 0xba, 0x43}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x4c, 0xb6, 0x69, 0xc8, 0x81, 0x95, 0x94, 0x33, 0x92, 0x34, 0xe9, 0x3c, 0x84, 0x0d, 0x3d, 0x5a, 0x37, 0x9c, 0x22, 0xa0, 0xaa, 0x65, 0xce, 0xb4, 0xc2, 0x2d, 0x66, 0x67, 0x02, 0xff, 0x74, 0x10}} , + {{0x22, 0xb0, 0xd5, 0xe6, 0xc7, 0xef, 0xb1, 0xa7, 0x13, 0xda, 0x60, 0xb4, 0x80, 0xc1, 0x42, 0x7d, 0x10, 0x70, 0x97, 0x04, 0x4d, 0xda, 0x23, 0x89, 0xc2, 0x0e, 0x68, 0xcb, 0xde, 0xe0, 0x9b, 0x29}}}, +{{{0x33, 0xfe, 0x42, 0x2a, 0x36, 0x2b, 0x2e, 0x36, 0x64, 0x5c, 0x8b, 0xcc, 0x81, 0x6a, 0x15, 0x08, 0xa1, 0x27, 0xe8, 0x57, 0xe5, 0x78, 0x8e, 0xf2, 0x58, 0x19, 0x12, 0x42, 0xae, 0xc4, 0x63, 0x3e}} , + {{0x78, 0x96, 0x9c, 0xa7, 0xca, 0x80, 0xae, 0x02, 0x85, 0xb1, 0x7c, 0x04, 0x5c, 0xc1, 0x5b, 0x26, 0xc1, 0xba, 0xed, 0xa5, 0x59, 0x70, 0x85, 0x8c, 0x8c, 0xe8, 0x87, 0xac, 0x6a, 0x28, 0x99, 0x35}}}, +{{{0x9f, 0x04, 0x08, 0x28, 0xbe, 0x87, 0xda, 0x80, 0x28, 0x38, 0xde, 0x9f, 0xcd, 0xe4, 0xe3, 0x62, 0xfb, 0x2e, 0x46, 0x8d, 0x01, 0xb3, 0x06, 0x51, 0xd4, 0x19, 0x3b, 0x11, 0xfa, 0xe2, 0xad, 0x1e}} , + {{0xa0, 0x20, 0x99, 0x69, 0x0a, 0xae, 0xa3, 0x70, 0x4e, 0x64, 0x80, 0xb7, 0x85, 0x9c, 0x87, 0x54, 0x43, 0x43, 0x55, 0x80, 0x6d, 0x8d, 0x7c, 0xa9, 0x64, 0xca, 0x6c, 0x2e, 0x21, 0xd8, 0xc8, 0x6c}}}, +{{{0x91, 0x4a, 0x07, 0xad, 0x08, 0x75, 0xc1, 0x4f, 0xa4, 0xb2, 0xc3, 0x6f, 0x46, 0x3e, 0xb1, 0xce, 0x52, 0xab, 0x67, 0x09, 0x54, 0x48, 0x6b, 0x6c, 0xd7, 0x1d, 0x71, 0x76, 0xcb, 0xff, 0xdd, 0x31}} , + {{0x36, 0x88, 0xfa, 0xfd, 0xf0, 0x36, 0x6f, 0x07, 0x74, 0x88, 0x50, 0xd0, 0x95, 0x38, 0x4a, 0x48, 0x2e, 0x07, 0x64, 0x97, 0x11, 0x76, 0x01, 0x1a, 0x27, 0x4d, 0x8e, 0x25, 0x9a, 0x9b, 0x1c, 0x22}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xbe, 0x57, 0xbd, 0x0e, 0x0f, 0xac, 0x5e, 0x76, 0xa3, 0x71, 0xad, 0x2b, 0x10, 0x45, 0x02, 0xec, 0x59, 0xd5, 0x5d, 0xa9, 0x44, 0xcc, 0x25, 0x4c, 0xb3, 0x3c, 0x5b, 0x69, 0x07, 0x55, 0x26, 0x6b}} , + {{0x30, 0x6b, 0xd4, 0xa7, 0x51, 0x29, 0xe3, 0xf9, 0x7a, 0x75, 0x2a, 0x82, 0x2f, 0xd6, 0x1d, 0x99, 0x2b, 0x80, 0xd5, 0x67, 0x1e, 0x15, 0x9d, 0xca, 0xfd, 0xeb, 0xac, 0x97, 0x35, 0x09, 0x7f, 0x3f}}}, +{{{0x35, 0x0d, 0x34, 0x0a, 0xb8, 0x67, 0x56, 0x29, 0x20, 0xf3, 0x19, 0x5f, 0xe2, 0x83, 0x42, 0x73, 0x53, 0xa8, 0xc5, 0x02, 0x19, 0x33, 0xb4, 0x64, 0xbd, 0xc3, 0x87, 0x8c, 0xd7, 0x76, 0xed, 0x25}} , + {{0x47, 0x39, 0x37, 0x76, 0x0d, 0x1d, 0x0c, 0xf5, 0x5a, 0x6d, 0x43, 0x88, 0x99, 0x15, 0xb4, 0x52, 0x0f, 0x2a, 0xb3, 0xb0, 0x3f, 0xa6, 0xb3, 0x26, 0xb3, 0xc7, 0x45, 0xf5, 0x92, 0x5f, 0x9b, 0x17}}}, +{{{0x9d, 0x23, 0xbd, 0x15, 0xfe, 0x52, 0x52, 0x15, 0x26, 0x79, 0x86, 0xba, 0x06, 0x56, 0x66, 0xbb, 0x8c, 0x2e, 0x10, 0x11, 0xd5, 0x4a, 0x18, 0x52, 0xda, 0x84, 0x44, 0xf0, 0x3e, 0xe9, 0x8c, 0x35}} , + {{0xad, 0xa0, 0x41, 0xec, 0xc8, 0x4d, 0xb9, 0xd2, 0x6e, 0x96, 0x4e, 0x5b, 0xc5, 0xc2, 0xa0, 0x1b, 0xcf, 0x0c, 0xbf, 0x17, 0x66, 0x57, 0xc1, 0x17, 0x90, 0x45, 0x71, 0xc2, 0xe1, 0x24, 0xeb, 0x27}}}, +{{{0x2c, 0xb9, 0x42, 0xa4, 0xaf, 0x3b, 0x42, 0x0e, 0xc2, 0x0f, 0xf2, 0xea, 0x83, 0xaf, 0x9a, 0x13, 0x17, 0xb0, 0xbd, 0x89, 0x17, 0xe3, 0x72, 0xcb, 0x0e, 0x76, 0x7e, 0x41, 0x63, 0x04, 0x88, 0x71}} , + {{0x75, 0x78, 0x38, 0x86, 0x57, 0xdd, 0x9f, 0xee, 0x54, 0x70, 0x65, 0xbf, 0xf1, 0x2c, 0xe0, 0x39, 0x0d, 0xe3, 0x89, 0xfd, 0x8e, 0x93, 0x4f, 0x43, 0xdc, 0xd5, 0x5b, 0xde, 0xf9, 0x98, 0xe5, 0x7b}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xe7, 0x3b, 0x65, 0x11, 0xdf, 0xb2, 0xf2, 0x63, 0x94, 0x12, 0x6f, 0x5c, 0x9e, 0x77, 0xc1, 0xb6, 0xd8, 0xab, 0x58, 0x7a, 0x1d, 0x95, 0x73, 0xdd, 0xe7, 0xe3, 0x6f, 0xf2, 0x03, 0x1d, 0xdb, 0x76}} , + {{0xae, 0x06, 0x4e, 0x2c, 0x52, 0x1b, 0xbc, 0x5a, 0x5a, 0xa5, 0xbe, 0x27, 0xbd, 0xeb, 0xe1, 0x14, 0x17, 0x68, 0x26, 0x07, 0x03, 0xd1, 0x18, 0x0b, 0xdf, 0xf1, 0x06, 0x5c, 0xa6, 0x1b, 0xb9, 0x24}}}, +{{{0xc5, 0x66, 0x80, 0x13, 0x0e, 0x48, 0x8c, 0x87, 0x31, 0x84, 0xb4, 0x60, 0xed, 0xc5, 0xec, 0xb6, 0xc5, 0x05, 0x33, 0x5f, 0x2f, 0x7d, 0x40, 0xb6, 0x32, 0x1d, 0x38, 0x74, 0x1b, 0xf1, 0x09, 0x3d}} , + {{0xd4, 0x69, 0x82, 0xbc, 0x8d, 0xf8, 0x34, 0x36, 0x75, 0x55, 0x18, 0x55, 0x58, 0x3c, 0x79, 0xaf, 0x26, 0x80, 0xab, 0x9b, 0x95, 0x00, 0xf1, 0xcb, 0xda, 0xc1, 0x9f, 0xf6, 0x2f, 0xa2, 0xf4, 0x45}}}, +{{{0x17, 0xbe, 0xeb, 0x85, 0xed, 0x9e, 0xcd, 0x56, 0xf5, 0x17, 0x45, 0x42, 0xb4, 0x1f, 0x44, 0x4c, 0x05, 0x74, 0x15, 0x47, 0x00, 0xc6, 0x6a, 0x3d, 0x24, 0x09, 0x0d, 0x58, 0xb1, 0x42, 0xd7, 0x04}} , + {{0x8d, 0xbd, 0xa3, 0xc4, 0x06, 0x9b, 0x1f, 0x90, 0x58, 0x60, 0x74, 0xb2, 0x00, 0x3b, 0x3c, 0xd2, 0xda, 0x82, 0xbb, 0x10, 0x90, 0x69, 0x92, 0xa9, 0xb4, 0x30, 0x81, 0xe3, 0x7c, 0xa8, 0x89, 0x45}}}, +{{{0x3f, 0xdc, 0x05, 0xcb, 0x41, 0x3c, 0xc8, 0x23, 0x04, 0x2c, 0x38, 0x99, 0xe3, 0x68, 0x55, 0xf9, 0xd3, 0x32, 0xc7, 0xbf, 0xfa, 0xd4, 0x1b, 0x5d, 0xde, 0xdc, 0x10, 0x42, 0xc0, 0x42, 0xd9, 0x75}} , + {{0x2d, 0xab, 0x35, 0x4e, 0x87, 0xc4, 0x65, 0x97, 0x67, 0x24, 0xa4, 0x47, 0xad, 0x3f, 0x8e, 0xf3, 0xcb, 0x31, 0x17, 0x77, 0xc5, 0xe2, 0xd7, 0x8f, 0x3c, 0xc1, 0xcd, 0x56, 0x48, 0xc1, 0x6c, 0x69}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x14, 0xae, 0x5f, 0x88, 0x7b, 0xa5, 0x90, 0xdf, 0x10, 0xb2, 0x8b, 0x5e, 0x24, 0x17, 0xc3, 0xa3, 0xd4, 0x0f, 0x92, 0x61, 0x1a, 0x19, 0x5a, 0xad, 0x76, 0xbd, 0xd8, 0x1c, 0xdd, 0xe0, 0x12, 0x6d}} , + {{0x8e, 0xbd, 0x70, 0x8f, 0x02, 0xa3, 0x24, 0x4d, 0x5a, 0x67, 0xc4, 0xda, 0xf7, 0x20, 0x0f, 0x81, 0x5b, 0x7a, 0x05, 0x24, 0x67, 0x83, 0x0b, 0x2a, 0x80, 0xe7, 0xfd, 0x74, 0x4b, 0x9e, 0x5c, 0x0d}}}, +{{{0x94, 0xd5, 0x5f, 0x1f, 0xa2, 0xfb, 0xeb, 0xe1, 0x07, 0x34, 0xf8, 0x20, 0xad, 0x81, 0x30, 0x06, 0x2d, 0xa1, 0x81, 0x95, 0x36, 0xcf, 0x11, 0x0b, 0xaf, 0xc1, 0x2b, 0x9a, 0x6c, 0x55, 0xc1, 0x16}} , + {{0x36, 0x4f, 0xf1, 0x5e, 0x74, 0x35, 0x13, 0x28, 0xd7, 0x11, 0xcf, 0xb8, 0xde, 0x93, 0xb3, 0x05, 0xb8, 0xb5, 0x73, 0xe9, 0xeb, 0xad, 0x19, 0x1e, 0x89, 0x0f, 0x8b, 0x15, 0xd5, 0x8c, 0xe3, 0x23}}}, +{{{0x33, 0x79, 0xe7, 0x18, 0xe6, 0x0f, 0x57, 0x93, 0x15, 0xa0, 0xa7, 0xaa, 0xc4, 0xbf, 0x4f, 0x30, 0x74, 0x95, 0x5e, 0x69, 0x4a, 0x5b, 0x45, 0xe4, 0x00, 0xeb, 0x23, 0x74, 0x4c, 0xdf, 0x6b, 0x45}} , + {{0x97, 0x29, 0x6c, 0xc4, 0x42, 0x0b, 0xdd, 0xc0, 0x29, 0x5c, 0x9b, 0x34, 0x97, 0xd0, 0xc7, 0x79, 0x80, 0x63, 0x74, 0xe4, 0x8e, 0x37, 0xb0, 0x2b, 0x7c, 0xe8, 0x68, 0x6c, 0xc3, 0x82, 0x97, 0x57}}}, +{{{0x22, 0xbe, 0x83, 0xb6, 0x4b, 0x80, 0x6b, 0x43, 0x24, 0x5e, 0xef, 0x99, 0x9b, 0xa8, 0xfc, 0x25, 0x8d, 0x3b, 0x03, 0x94, 0x2b, 0x3e, 0xe7, 0x95, 0x76, 0x9b, 0xcc, 0x15, 0xdb, 0x32, 0xe6, 0x66}} , + {{0x84, 0xf0, 0x4a, 0x13, 0xa6, 0xd6, 0xfa, 0x93, 0x46, 0x07, 0xf6, 0x7e, 0x5c, 0x6d, 0x5e, 0xf6, 0xa6, 0xe7, 0x48, 0xf0, 0x06, 0xea, 0xff, 0x90, 0xc1, 0xcc, 0x4c, 0x19, 0x9c, 0x3c, 0x4e, 0x53}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x2a, 0x50, 0xe3, 0x07, 0x15, 0x59, 0xf2, 0x8b, 0x81, 0xf2, 0xf3, 0xd3, 0x6c, 0x99, 0x8c, 0x70, 0x67, 0xec, 0xcc, 0xee, 0x9e, 0x59, 0x45, 0x59, 0x7d, 0x47, 0x75, 0x69, 0xf5, 0x24, 0x93, 0x5d}} , + {{0x6a, 0x4f, 0x1b, 0xbe, 0x6b, 0x30, 0xcf, 0x75, 0x46, 0xe3, 0x7b, 0x9d, 0xfc, 0xcd, 0xd8, 0x5c, 0x1f, 0xb4, 0xc8, 0xe2, 0x24, 0xec, 0x1a, 0x28, 0x05, 0x32, 0x57, 0xfd, 0x3c, 0x5a, 0x98, 0x10}}}, +{{{0xa3, 0xdb, 0xf7, 0x30, 0xd8, 0xc2, 0x9a, 0xe1, 0xd3, 0xce, 0x22, 0xe5, 0x80, 0x1e, 0xd9, 0xe4, 0x1f, 0xab, 0xc0, 0x71, 0x1a, 0x86, 0x0e, 0x27, 0x99, 0x5b, 0xfa, 0x76, 0x99, 0xb0, 0x08, 0x3c}} , + {{0x2a, 0x93, 0xd2, 0x85, 0x1b, 0x6a, 0x5d, 0xa6, 0xee, 0xd1, 0xd1, 0x33, 0xbd, 0x6a, 0x36, 0x73, 0x37, 0x3a, 0x44, 0xb4, 0xec, 0xa9, 0x7a, 0xde, 0x83, 0x40, 0xd7, 0xdf, 0x28, 0xba, 0xa2, 0x30}}}, +{{{0xd3, 0xb5, 0x6d, 0x05, 0x3f, 0x9f, 0xf3, 0x15, 0x8d, 0x7c, 0xca, 0xc9, 0xfc, 0x8a, 0x7c, 0x94, 0xb0, 0x63, 0x36, 0x9b, 0x78, 0xd1, 0x91, 0x1f, 0x93, 0xd8, 0x57, 0x43, 0xde, 0x76, 0xa3, 0x43}} , + {{0x9b, 0x35, 0xe2, 0xa9, 0x3d, 0x32, 0x1e, 0xbb, 0x16, 0x28, 0x70, 0xe9, 0x45, 0x2f, 0x8f, 0x70, 0x7f, 0x08, 0x7e, 0x53, 0xc4, 0x7a, 0xbf, 0xf7, 0xe1, 0xa4, 0x6a, 0xd8, 0xac, 0x64, 0x1b, 0x11}}}, +{{{0xb2, 0xeb, 0x47, 0x46, 0x18, 0x3e, 0x1f, 0x99, 0x0c, 0xcc, 0xf1, 0x2c, 0xe0, 0xe7, 0x8f, 0xe0, 0x01, 0x7e, 0x65, 0xb8, 0x0c, 0xd0, 0xfb, 0xc8, 0xb9, 0x90, 0x98, 0x33, 0x61, 0x3b, 0xd8, 0x27}} , + {{0xa0, 0xbe, 0x72, 0x3a, 0x50, 0x4b, 0x74, 0xab, 0x01, 0xc8, 0x93, 0xc5, 0xe4, 0xc7, 0x08, 0x6c, 0xb4, 0xca, 0xee, 0xeb, 0x8e, 0xd7, 0x4e, 0x26, 0xc6, 0x1d, 0xe2, 0x71, 0xaf, 0x89, 0xa0, 0x2a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x98, 0x0b, 0xe4, 0xde, 0xdb, 0xa8, 0xfa, 0x82, 0x74, 0x06, 0x52, 0x6d, 0x08, 0x52, 0x8a, 0xff, 0x62, 0xc5, 0x6a, 0x44, 0x0f, 0x51, 0x8c, 0x1f, 0x6e, 0xb6, 0xc6, 0x2c, 0x81, 0xd3, 0x76, 0x46}} , + {{0xf4, 0x29, 0x74, 0x2e, 0x80, 0xa7, 0x1a, 0x8f, 0xf6, 0xbd, 0xd6, 0x8e, 0xbf, 0xc1, 0x95, 0x2a, 0xeb, 0xa0, 0x7f, 0x45, 0xa0, 0x50, 0x14, 0x05, 0xb1, 0x57, 0x4c, 0x74, 0xb7, 0xe2, 0x89, 0x7d}}}, +{{{0x07, 0xee, 0xa7, 0xad, 0xb7, 0x09, 0x0b, 0x49, 0x4e, 0xbf, 0xca, 0xe5, 0x21, 0xe6, 0xe6, 0xaf, 0xd5, 0x67, 0xf3, 0xce, 0x7e, 0x7c, 0x93, 0x7b, 0x5a, 0x10, 0x12, 0x0e, 0x6c, 0x06, 0x11, 0x75}} , + {{0xd5, 0xfc, 0x86, 0xa3, 0x3b, 0xa3, 0x3e, 0x0a, 0xfb, 0x0b, 0xf7, 0x36, 0xb1, 0x5b, 0xda, 0x70, 0xb7, 0x00, 0xa7, 0xda, 0x88, 0x8f, 0x84, 0xa8, 0xbc, 0x1c, 0x39, 0xb8, 0x65, 0xf3, 0x4d, 0x60}}}, +{{{0x96, 0x9d, 0x31, 0xf4, 0xa2, 0xbe, 0x81, 0xb9, 0xa5, 0x59, 0x9e, 0xba, 0x07, 0xbe, 0x74, 0x58, 0xd8, 0xeb, 0xc5, 0x9f, 0x3d, 0xd1, 0xf4, 0xae, 0xce, 0x53, 0xdf, 0x4f, 0xc7, 0x2a, 0x89, 0x4d}} , + {{0x29, 0xd8, 0xf2, 0xaa, 0xe9, 0x0e, 0xf7, 0x2e, 0x5f, 0x9d, 0x8a, 0x5b, 0x09, 0xed, 0xc9, 0x24, 0x22, 0xf4, 0x0f, 0x25, 0x8f, 0x1c, 0x84, 0x6e, 0x34, 0x14, 0x6c, 0xea, 0xb3, 0x86, 0x5d, 0x04}}}, +{{{0x07, 0x98, 0x61, 0xe8, 0x6a, 0xd2, 0x81, 0x49, 0x25, 0xd5, 0x5b, 0x18, 0xc7, 0x35, 0x52, 0x51, 0xa4, 0x46, 0xad, 0x18, 0x0d, 0xc9, 0x5f, 0x18, 0x91, 0x3b, 0xb4, 0xc0, 0x60, 0x59, 0x8d, 0x66}} , + {{0x03, 0x1b, 0x79, 0x53, 0x6e, 0x24, 0xae, 0x57, 0xd9, 0x58, 0x09, 0x85, 0x48, 0xa2, 0xd3, 0xb5, 0xe2, 0x4d, 0x11, 0x82, 0xe6, 0x86, 0x3c, 0xe9, 0xb1, 0x00, 0x19, 0xc2, 0x57, 0xf7, 0x66, 0x7a}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x0f, 0xe3, 0x89, 0x03, 0xd7, 0x22, 0x95, 0x9f, 0xca, 0xb4, 0x8d, 0x9e, 0x6d, 0x97, 0xff, 0x8d, 0x21, 0x59, 0x07, 0xef, 0x03, 0x2d, 0x5e, 0xf8, 0x44, 0x46, 0xe7, 0x85, 0x80, 0xc5, 0x89, 0x50}} , + {{0x8b, 0xd8, 0x53, 0x86, 0x24, 0x86, 0x29, 0x52, 0x01, 0xfa, 0x20, 0xc3, 0x4e, 0x95, 0xcb, 0xad, 0x7b, 0x34, 0x94, 0x30, 0xb7, 0x7a, 0xfa, 0x96, 0x41, 0x60, 0x2b, 0xcb, 0x59, 0xb9, 0xca, 0x50}}}, +{{{0xc2, 0x5b, 0x9b, 0x78, 0x23, 0x1b, 0x3a, 0x88, 0x94, 0x5f, 0x0a, 0x9b, 0x98, 0x2b, 0x6e, 0x53, 0x11, 0xf6, 0xff, 0xc6, 0x7d, 0x42, 0xcc, 0x02, 0x80, 0x40, 0x0d, 0x1e, 0xfb, 0xaf, 0x61, 0x07}} , + {{0xb0, 0xe6, 0x2f, 0x81, 0x70, 0xa1, 0x2e, 0x39, 0x04, 0x7c, 0xc4, 0x2c, 0x87, 0x45, 0x4a, 0x5b, 0x69, 0x97, 0xac, 0x6d, 0x2c, 0x10, 0x42, 0x7c, 0x3b, 0x15, 0x70, 0x60, 0x0e, 0x11, 0x6d, 0x3a}}}, +{{{0x9b, 0x18, 0x80, 0x5e, 0xdb, 0x05, 0xbd, 0xc6, 0xb7, 0x3c, 0xc2, 0x40, 0x4d, 0x5d, 0xce, 0x97, 0x8a, 0x34, 0x15, 0xab, 0x28, 0x5d, 0x10, 0xf0, 0x37, 0x0c, 0xcc, 0x16, 0xfa, 0x1f, 0x33, 0x0d}} , + {{0x19, 0xf9, 0x35, 0xaa, 0x59, 0x1a, 0x0c, 0x5c, 0x06, 0xfc, 0x6a, 0x0b, 0x97, 0x53, 0x36, 0xfc, 0x2a, 0xa5, 0x5a, 0x9b, 0x30, 0xef, 0x23, 0xaf, 0x39, 0x5d, 0x9a, 0x6b, 0x75, 0x57, 0x48, 0x0b}}}, +{{{0x26, 0xdc, 0x76, 0x3b, 0xfc, 0xf9, 0x9c, 0x3f, 0x89, 0x0b, 0x62, 0x53, 0xaf, 0x83, 0x01, 0x2e, 0xbc, 0x6a, 0xc6, 0x03, 0x0d, 0x75, 0x2a, 0x0d, 0xe6, 0x94, 0x54, 0xcf, 0xb3, 0xe5, 0x96, 0x25}} , + {{0xfe, 0x82, 0xb1, 0x74, 0x31, 0x8a, 0xa7, 0x6f, 0x56, 0xbd, 0x8d, 0xf4, 0xe0, 0x94, 0x51, 0x59, 0xde, 0x2c, 0x5a, 0xf4, 0x84, 0x6b, 0x4a, 0x88, 0x93, 0xc0, 0x0c, 0x9a, 0xac, 0xa7, 0xa0, 0x68}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x25, 0x0d, 0xd6, 0xc7, 0x23, 0x47, 0x10, 0xad, 0xc7, 0x08, 0x5c, 0x87, 0x87, 0x93, 0x98, 0x18, 0xb8, 0xd3, 0x9c, 0xac, 0x5a, 0x3d, 0xc5, 0x75, 0xf8, 0x49, 0x32, 0x14, 0xcc, 0x51, 0x96, 0x24}} , + {{0x65, 0x9c, 0x5d, 0xf0, 0x37, 0x04, 0xf0, 0x34, 0x69, 0x2a, 0xf0, 0xa5, 0x64, 0xca, 0xde, 0x2b, 0x5b, 0x15, 0x10, 0xd2, 0xab, 0x06, 0xdd, 0xc4, 0xb0, 0xb6, 0x5b, 0xc1, 0x17, 0xdf, 0x8f, 0x02}}}, +{{{0xbd, 0x59, 0x3d, 0xbf, 0x5c, 0x31, 0x44, 0x2c, 0x32, 0x94, 0x04, 0x60, 0x84, 0x0f, 0xad, 0x00, 0xb6, 0x8f, 0xc9, 0x1d, 0xcc, 0x5c, 0xa2, 0x49, 0x0e, 0x50, 0x91, 0x08, 0x9a, 0x43, 0x55, 0x05}} , + {{0x5d, 0x93, 0x55, 0xdf, 0x9b, 0x12, 0x19, 0xec, 0x93, 0x85, 0x42, 0x9e, 0x66, 0x0f, 0x9d, 0xaf, 0x99, 0xaf, 0x26, 0x89, 0xbc, 0x61, 0xfd, 0xff, 0xce, 0x4b, 0xf4, 0x33, 0x95, 0xc9, 0x35, 0x58}}}, +{{{0x12, 0x55, 0xf9, 0xda, 0xcb, 0x44, 0xa7, 0xdc, 0x57, 0xe2, 0xf9, 0x9a, 0xe6, 0x07, 0x23, 0x60, 0x54, 0xa7, 0x39, 0xa5, 0x9b, 0x84, 0x56, 0x6e, 0xaa, 0x8b, 0x8f, 0xb0, 0x2c, 0x87, 0xaf, 0x67}} , + {{0x00, 0xa9, 0x4c, 0xb2, 0x12, 0xf8, 0x32, 0xa8, 0x7a, 0x00, 0x4b, 0x49, 0x32, 0xba, 0x1f, 0x5d, 0x44, 0x8e, 0x44, 0x7a, 0xdc, 0x11, 0xfb, 0x39, 0x08, 0x57, 0x87, 0xa5, 0x12, 0x42, 0x93, 0x0e}}}, +{{{0x17, 0xb4, 0xae, 0x72, 0x59, 0xd0, 0xaa, 0xa8, 0x16, 0x8b, 0x63, 0x11, 0xb3, 0x43, 0x04, 0xda, 0x0c, 0xa8, 0xb7, 0x68, 0xdd, 0x4e, 0x54, 0xe7, 0xaf, 0x5d, 0x5d, 0x05, 0x76, 0x36, 0xec, 0x0d}} , + {{0x6d, 0x7c, 0x82, 0x32, 0x38, 0x55, 0x57, 0x74, 0x5b, 0x7d, 0xc3, 0xc4, 0xfb, 0x06, 0x29, 0xf0, 0x13, 0x55, 0x54, 0xc6, 0xa7, 0xdc, 0x4c, 0x9f, 0x98, 0x49, 0x20, 0xa8, 0xc3, 0x8d, 0xfa, 0x48}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x87, 0x47, 0x9d, 0xe9, 0x25, 0xd5, 0xe3, 0x47, 0x78, 0xdf, 0x85, 0xa7, 0x85, 0x5e, 0x7a, 0x4c, 0x5f, 0x79, 0x1a, 0xf3, 0xa2, 0xb2, 0x28, 0xa0, 0x9c, 0xdd, 0x30, 0x40, 0xd4, 0x38, 0xbd, 0x28}} , + {{0xfc, 0xbb, 0xd5, 0x78, 0x6d, 0x1d, 0xd4, 0x99, 0xb4, 0xaa, 0x44, 0x44, 0x7a, 0x1b, 0xd8, 0xfe, 0xb4, 0x99, 0xb9, 0xcc, 0xe7, 0xc4, 0xd3, 0x3a, 0x73, 0x83, 0x41, 0x5c, 0x40, 0xd7, 0x2d, 0x55}}}, +{{{0x26, 0xe1, 0x7b, 0x5f, 0xe5, 0xdc, 0x3f, 0x7d, 0xa1, 0xa7, 0x26, 0x44, 0x22, 0x23, 0xc0, 0x8f, 0x7d, 0xf1, 0xb5, 0x11, 0x47, 0x7b, 0x19, 0xd4, 0x75, 0x6f, 0x1e, 0xa5, 0x27, 0xfe, 0xc8, 0x0e}} , + {{0xd3, 0x11, 0x3d, 0xab, 0xef, 0x2c, 0xed, 0xb1, 0x3d, 0x7c, 0x32, 0x81, 0x6b, 0xfe, 0xf8, 0x1c, 0x3c, 0x7b, 0xc0, 0x61, 0xdf, 0xb8, 0x75, 0x76, 0x7f, 0xaa, 0xd8, 0x93, 0xaf, 0x3d, 0xe8, 0x3d}}}, +{{{0xfd, 0x5b, 0x4e, 0x8d, 0xb6, 0x7e, 0x82, 0x9b, 0xef, 0xce, 0x04, 0x69, 0x51, 0x52, 0xff, 0xef, 0xa0, 0x52, 0xb5, 0x79, 0x17, 0x5e, 0x2f, 0xde, 0xd6, 0x3c, 0x2d, 0xa0, 0x43, 0xb4, 0x0b, 0x19}} , + {{0xc0, 0x61, 0x48, 0x48, 0x17, 0xf4, 0x9e, 0x18, 0x51, 0x2d, 0xea, 0x2f, 0xf2, 0xf2, 0xe0, 0xa3, 0x14, 0xb7, 0x8b, 0x3a, 0x30, 0xf5, 0x81, 0xc1, 0x5d, 0x71, 0x39, 0x62, 0x55, 0x1f, 0x60, 0x5a}}}, +{{{0xe5, 0x89, 0x8a, 0x76, 0x6c, 0xdb, 0x4d, 0x0a, 0x5b, 0x72, 0x9d, 0x59, 0x6e, 0x63, 0x63, 0x18, 0x7c, 0xe3, 0xfa, 0xe2, 0xdb, 0xa1, 0x8d, 0xf4, 0xa5, 0xd7, 0x16, 0xb2, 0xd0, 0xb3, 0x3f, 0x39}} , + {{0xce, 0x60, 0x09, 0x6c, 0xf5, 0x76, 0x17, 0x24, 0x80, 0x3a, 0x96, 0xc7, 0x94, 0x2e, 0xf7, 0x6b, 0xef, 0xb5, 0x05, 0x96, 0xef, 0xd3, 0x7b, 0x51, 0xda, 0x05, 0x44, 0x67, 0xbc, 0x07, 0x21, 0x4e}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xe9, 0x73, 0x6f, 0x21, 0xb9, 0xde, 0x22, 0x7d, 0xeb, 0x97, 0x31, 0x10, 0xa3, 0xea, 0xe1, 0xc6, 0x37, 0xeb, 0x8f, 0x43, 0x58, 0xde, 0x41, 0x64, 0x0e, 0x3e, 0x07, 0x99, 0x3d, 0xf1, 0xdf, 0x1e}} , + {{0xf8, 0xad, 0x43, 0xc2, 0x17, 0x06, 0xe2, 0xe4, 0xa9, 0x86, 0xcd, 0x18, 0xd7, 0x78, 0xc8, 0x74, 0x66, 0xd2, 0x09, 0x18, 0xa5, 0xf1, 0xca, 0xa6, 0x62, 0x92, 0xc1, 0xcb, 0x00, 0xeb, 0x42, 0x2e}}}, +{{{0x7b, 0x34, 0x24, 0x4c, 0xcf, 0x38, 0xe5, 0x6c, 0x0a, 0x01, 0x2c, 0x22, 0x0b, 0x24, 0x38, 0xad, 0x24, 0x7e, 0x19, 0xf0, 0x6c, 0xf9, 0x31, 0xf4, 0x35, 0x11, 0xf6, 0x46, 0x33, 0x3a, 0x23, 0x59}} , + {{0x20, 0x0b, 0xa1, 0x08, 0x19, 0xad, 0x39, 0x54, 0xea, 0x3e, 0x23, 0x09, 0xb6, 0xe2, 0xd2, 0xbc, 0x4d, 0xfc, 0x9c, 0xf0, 0x13, 0x16, 0x22, 0x3f, 0xb9, 0xd2, 0x11, 0x86, 0x90, 0x55, 0xce, 0x3c}}}, +{{{0xc4, 0x0b, 0x4b, 0x62, 0x99, 0x37, 0x84, 0x3f, 0x74, 0xa2, 0xf9, 0xce, 0xe2, 0x0b, 0x0f, 0x2a, 0x3d, 0xa3, 0xe3, 0xdb, 0x5a, 0x9d, 0x93, 0xcc, 0xa5, 0xef, 0x82, 0x91, 0x1d, 0xe6, 0x6c, 0x68}} , + {{0xa3, 0x64, 0x17, 0x9b, 0x8b, 0xc8, 0x3a, 0x61, 0xe6, 0x9d, 0xc6, 0xed, 0x7b, 0x03, 0x52, 0x26, 0x9d, 0x3a, 0xb3, 0x13, 0xcc, 0x8a, 0xfd, 0x2c, 0x1a, 0x1d, 0xed, 0x13, 0xd0, 0x55, 0x57, 0x0e}}}, +{{{0x1a, 0xea, 0xbf, 0xfd, 0x4a, 0x3c, 0x8e, 0xec, 0x29, 0x7e, 0x77, 0x77, 0x12, 0x99, 0xd7, 0x84, 0xf9, 0x55, 0x7f, 0xf1, 0x8b, 0xb4, 0xd2, 0x95, 0xa3, 0x8d, 0xf0, 0x8a, 0xa7, 0xeb, 0x82, 0x4b}} , + {{0x2c, 0x28, 0xf4, 0x3a, 0xf6, 0xde, 0x0a, 0xe0, 0x41, 0x44, 0x23, 0xf8, 0x3f, 0x03, 0x64, 0x9f, 0xc3, 0x55, 0x4c, 0xc6, 0xc1, 0x94, 0x1c, 0x24, 0x5d, 0x5f, 0x92, 0x45, 0x96, 0x57, 0x37, 0x14}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xc1, 0xcd, 0x90, 0x66, 0xb9, 0x76, 0xa0, 0x5b, 0xa5, 0x85, 0x75, 0x23, 0xf9, 0x89, 0xa5, 0x82, 0xb2, 0x6f, 0xb1, 0xeb, 0xc4, 0x69, 0x6f, 0x18, 0x5a, 0xed, 0x94, 0x3d, 0x9d, 0xd9, 0x2c, 0x1a}} , + {{0x35, 0xb0, 0xe6, 0x73, 0x06, 0xb7, 0x37, 0xe0, 0xf8, 0xb0, 0x22, 0xe8, 0xd2, 0xed, 0x0b, 0xef, 0xe6, 0xc6, 0x5a, 0x99, 0x9e, 0x1a, 0x9f, 0x04, 0x97, 0xe4, 0x4d, 0x0b, 0xbe, 0xba, 0x44, 0x40}}}, +{{{0xc1, 0x56, 0x96, 0x91, 0x5f, 0x1f, 0xbb, 0x54, 0x6f, 0x88, 0x89, 0x0a, 0xb2, 0xd6, 0x41, 0x42, 0x6a, 0x82, 0xee, 0x14, 0xaa, 0x76, 0x30, 0x65, 0x0f, 0x67, 0x39, 0xa6, 0x51, 0x7c, 0x49, 0x24}} , + {{0x35, 0xa3, 0x78, 0xd1, 0x11, 0x0f, 0x75, 0xd3, 0x70, 0x46, 0xdb, 0x20, 0x51, 0xcb, 0x92, 0x80, 0x54, 0x10, 0x74, 0x36, 0x86, 0xa9, 0xd7, 0xa3, 0x08, 0x78, 0xf1, 0x01, 0x29, 0xf8, 0x80, 0x3b}}}, +{{{0xdb, 0xa7, 0x9d, 0x9d, 0xbf, 0xa0, 0xcc, 0xed, 0x53, 0xa2, 0xa2, 0x19, 0x39, 0x48, 0x83, 0x19, 0x37, 0x58, 0xd1, 0x04, 0x28, 0x40, 0xf7, 0x8a, 0xc2, 0x08, 0xb7, 0xa5, 0x42, 0xcf, 0x53, 0x4c}} , + {{0xa7, 0xbb, 0xf6, 0x8e, 0xad, 0xdd, 0xf7, 0x90, 0xdd, 0x5f, 0x93, 0x89, 0xae, 0x04, 0x37, 0xe6, 0x9a, 0xb7, 0xe8, 0xc0, 0xdf, 0x16, 0x2a, 0xbf, 0xc4, 0x3a, 0x3c, 0x41, 0xd5, 0x89, 0x72, 0x5a}}}, +{{{0x1f, 0x96, 0xff, 0x34, 0x2c, 0x13, 0x21, 0xcb, 0x0a, 0x89, 0x85, 0xbe, 0xb3, 0x70, 0x9e, 0x1e, 0xde, 0x97, 0xaf, 0x96, 0x30, 0xf7, 0x48, 0x89, 0x40, 0x8d, 0x07, 0xf1, 0x25, 0xf0, 0x30, 0x58}} , + {{0x1e, 0xd4, 0x93, 0x57, 0xe2, 0x17, 0xe7, 0x9d, 0xab, 0x3c, 0x55, 0x03, 0x82, 0x2f, 0x2b, 0xdb, 0x56, 0x1e, 0x30, 0x2e, 0x24, 0x47, 0x6e, 0xe6, 0xff, 0x33, 0x24, 0x2c, 0x75, 0x51, 0xd4, 0x67}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0x2b, 0x06, 0xd9, 0xa1, 0x5d, 0xe1, 0xf4, 0xd1, 0x1e, 0x3c, 0x9a, 0xc6, 0x29, 0x2b, 0x13, 0x13, 0x78, 0xc0, 0xd8, 0x16, 0x17, 0x2d, 0x9e, 0xa9, 0xc9, 0x79, 0x57, 0xab, 0x24, 0x91, 0x92, 0x19}} , + {{0x69, 0xfb, 0xa1, 0x9c, 0xa6, 0x75, 0x49, 0x7d, 0x60, 0x73, 0x40, 0x42, 0xc4, 0x13, 0x0a, 0x95, 0x79, 0x1e, 0x04, 0x83, 0x94, 0x99, 0x9b, 0x1e, 0x0c, 0xe8, 0x1f, 0x54, 0xef, 0xcb, 0xc0, 0x52}}}, +{{{0x14, 0x89, 0x73, 0xa1, 0x37, 0x87, 0x6a, 0x7a, 0xcf, 0x1d, 0xd9, 0x2e, 0x1a, 0x67, 0xed, 0x74, 0xc0, 0xf0, 0x9c, 0x33, 0xdd, 0xdf, 0x08, 0xbf, 0x7b, 0xd1, 0x66, 0xda, 0xe6, 0xc9, 0x49, 0x08}} , + {{0xe9, 0xdd, 0x5e, 0x55, 0xb0, 0x0a, 0xde, 0x21, 0x4c, 0x5a, 0x2e, 0xd4, 0x80, 0x3a, 0x57, 0x92, 0x7a, 0xf1, 0xc4, 0x2c, 0x40, 0xaf, 0x2f, 0xc9, 0x92, 0x03, 0xe5, 0x5a, 0xbc, 0xdc, 0xf4, 0x09}}}, +{{{0xf3, 0xe1, 0x2b, 0x7c, 0x05, 0x86, 0x80, 0x93, 0x4a, 0xad, 0xb4, 0x8f, 0x7e, 0x99, 0x0c, 0xfd, 0xcd, 0xef, 0xd1, 0xff, 0x2c, 0x69, 0x34, 0x13, 0x41, 0x64, 0xcf, 0x3b, 0xd0, 0x90, 0x09, 0x1e}} , + {{0x9d, 0x45, 0xd6, 0x80, 0xe6, 0x45, 0xaa, 0xf4, 0x15, 0xaa, 0x5c, 0x34, 0x87, 0x99, 0xa2, 0x8c, 0x26, 0x84, 0x62, 0x7d, 0xb6, 0x29, 0xc0, 0x52, 0xea, 0xf5, 0x81, 0x18, 0x0f, 0x35, 0xa9, 0x0e}}}, +{{{0xe7, 0x20, 0x72, 0x7c, 0x6d, 0x94, 0x5f, 0x52, 0x44, 0x54, 0xe3, 0xf1, 0xb2, 0xb0, 0x36, 0x46, 0x0f, 0xae, 0x92, 0xe8, 0x70, 0x9d, 0x6e, 0x79, 0xb1, 0xad, 0x37, 0xa9, 0x5f, 0xc0, 0xde, 0x03}} , + {{0x15, 0x55, 0x37, 0xc6, 0x1c, 0x27, 0x1c, 0x6d, 0x14, 0x4f, 0xca, 0xa4, 0xc4, 0x88, 0x25, 0x46, 0x39, 0xfc, 0x5a, 0xe5, 0xfe, 0x29, 0x11, 0x69, 0xf5, 0x72, 0x84, 0x4d, 0x78, 0x9f, 0x94, 0x15}}}, +{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, + {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, +{{{0xec, 0xd3, 0xff, 0x57, 0x0b, 0xb0, 0xb2, 0xdc, 0xf8, 0x4f, 0xe2, 0x12, 0xd5, 0x36, 0xbe, 0x6b, 0x09, 0x43, 0x6d, 0xa3, 0x4d, 0x90, 0x2d, 0xb8, 0x74, 0xe8, 0x71, 0x45, 0x19, 0x8b, 0x0c, 0x6a}} , + {{0xb8, 0x42, 0x1c, 0x03, 0xad, 0x2c, 0x03, 0x8e, 0xac, 0xd7, 0x98, 0x29, 0x13, 0xc6, 0x02, 0x29, 0xb5, 0xd4, 0xe7, 0xcf, 0xcc, 0x8b, 0x83, 0xec, 0x35, 0xc7, 0x9c, 0x74, 0xb7, 0xad, 0x85, 0x5f}}}, +{{{0x78, 0x84, 0xe1, 0x56, 0x45, 0x69, 0x68, 0x5a, 0x4f, 0xb8, 0xb1, 0x29, 0xff, 0x33, 0x03, 0x31, 0xb7, 0xcb, 0x96, 0x25, 0xe6, 0xe6, 0x41, 0x98, 0x1a, 0xbb, 0x03, 0x56, 0xf2, 0xb2, 0x91, 0x34}} , + {{0x2c, 0x6c, 0xf7, 0x66, 0xa4, 0x62, 0x6b, 0x39, 0xb3, 0xba, 0x65, 0xd3, 0x1c, 0xf8, 0x11, 0xaa, 0xbe, 0xdc, 0x80, 0x59, 0x87, 0xf5, 0x7b, 0xe5, 0xe3, 0xb3, 0x3e, 0x39, 0xda, 0xbe, 0x88, 0x09}}}, +{{{0x8b, 0xf1, 0xa0, 0xf5, 0xdc, 0x29, 0xb4, 0xe2, 0x07, 0xc6, 0x7a, 0x00, 0xd0, 0x89, 0x17, 0x51, 0xd4, 0xbb, 0xd4, 0x22, 0xea, 0x7e, 0x7d, 0x7c, 0x24, 0xea, 0xf2, 0xe8, 0x22, 0x12, 0x95, 0x06}} , + {{0xda, 0x7c, 0xa4, 0x0c, 0xf4, 0xba, 0x6e, 0xe1, 0x89, 0xb5, 0x59, 0xca, 0xf1, 0xc0, 0x29, 0x36, 0x09, 0x44, 0xe2, 0x7f, 0xd1, 0x63, 0x15, 0x99, 0xea, 0x25, 0xcf, 0x0c, 0x9d, 0xc0, 0x44, 0x6f}}}, +{{{0x1d, 0x86, 0x4e, 0xcf, 0xf7, 0x37, 0x10, 0x25, 0x8f, 0x12, 0xfb, 0x19, 0xfb, 0xe0, 0xed, 0x10, 0xc8, 0xe2, 0xf5, 0x75, 0xb1, 0x33, 0xc0, 0x96, 0x0d, 0xfb, 0x15, 0x6c, 0x0d, 0x07, 0x5f, 0x05}} , + {{0x69, 0x3e, 0x47, 0x97, 0x2c, 0xaf, 0x52, 0x7c, 0x78, 0x83, 0xad, 0x1b, 0x39, 0x82, 0x2f, 0x02, 0x6f, 0x47, 0xdb, 0x2a, 0xb0, 0xe1, 0x91, 0x99, 0x55, 0xb8, 0x99, 0x3a, 0xa0, 0x44, 0x11, 0x51}}} +}; + +static void p1p1_to_p2(ge25519_p2 *r, const ge25519_p1p1 *p) +{ + fe25519_mul(&r->x, &p->x, &p->t); + fe25519_mul(&r->y, &p->y, &p->z); + fe25519_mul(&r->z, &p->z, &p->t); +} + +static void p1p1_to_p3(ge25519_p3 *r, const ge25519_p1p1 *p) +{ + p1p1_to_p2((ge25519_p2 *)r, p); + fe25519_mul(&r->t, &p->x, &p->y); +} + +static void ge25519_mixadd2(ge25519_p3 *r, const ge25519_aff *q) +{ + fe25519 a,b,t1,t2,c,d,e,f,g,h,qt; + fe25519_mul(&qt, &q->x, &q->y); + fe25519_sub(&a, &r->y, &r->x); /* A = (Y1-X1)*(Y2-X2) */ + fe25519_add(&b, &r->y, &r->x); /* B = (Y1+X1)*(Y2+X2) */ + fe25519_sub(&t1, &q->y, &q->x); + fe25519_add(&t2, &q->y, &q->x); + fe25519_mul(&a, &a, &t1); + fe25519_mul(&b, &b, &t2); + fe25519_sub(&e, &b, &a); /* E = B-A */ + fe25519_add(&h, &b, &a); /* H = B+A */ + fe25519_mul(&c, &r->t, &qt); /* C = T1*k*T2 */ + fe25519_mul(&c, &c, &ge25519_ec2d); + fe25519_add(&d, &r->z, &r->z); /* D = Z1*2 */ + fe25519_sub(&f, &d, &c); /* F = D-C */ + fe25519_add(&g, &d, &c); /* G = D+C */ + fe25519_mul(&r->x, &e, &f); + fe25519_mul(&r->y, &h, &g); + fe25519_mul(&r->z, &g, &f); + fe25519_mul(&r->t, &e, &h); +} + +static void add_p1p1(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_p3 *q) +{ + fe25519 a, b, c, d, t; + + fe25519_sub(&a, &p->y, &p->x); /* A = (Y1-X1)*(Y2-X2) */ + fe25519_sub(&t, &q->y, &q->x); + fe25519_mul(&a, &a, &t); + fe25519_add(&b, &p->x, &p->y); /* B = (Y1+X1)*(Y2+X2) */ + fe25519_add(&t, &q->x, &q->y); + fe25519_mul(&b, &b, &t); + fe25519_mul(&c, &p->t, &q->t); /* C = T1*k*T2 */ + fe25519_mul(&c, &c, &ge25519_ec2d); + fe25519_mul(&d, &p->z, &q->z); /* D = Z1*2*Z2 */ + fe25519_add(&d, &d, &d); + fe25519_sub(&r->x, &b, &a); /* E = B-A */ + fe25519_sub(&r->t, &d, &c); /* F = D-C */ + fe25519_add(&r->z, &d, &c); /* G = D+C */ + fe25519_add(&r->y, &b, &a); /* H = B+A */ +} + +/* See http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#doubling-dbl-2008-hwcd */ +static void dbl_p1p1(ge25519_p1p1 *r, const ge25519_p2 *p) +{ + fe25519 a,b,c,d; + fe25519_square(&a, &p->x); + fe25519_square(&b, &p->y); + fe25519_square(&c, &p->z); + fe25519_add(&c, &c, &c); + fe25519_neg(&d, &a); + + fe25519_add(&r->x, &p->x, &p->y); + fe25519_square(&r->x, &r->x); + fe25519_sub(&r->x, &r->x, &a); + fe25519_sub(&r->x, &r->x, &b); + fe25519_add(&r->z, &d, &b); + fe25519_sub(&r->t, &r->z, &c); + fe25519_sub(&r->y, &d, &b); +} + +/* Constant-time version of: if(b) r = p */ +static void cmov_aff(ge25519_aff *r, const ge25519_aff *p, unsigned char b) +{ + fe25519_cmov(&r->x, &p->x, b); + fe25519_cmov(&r->y, &p->y, b); +} + +static unsigned char equal(signed char b,signed char c) +{ + unsigned char ub = b; + unsigned char uc = c; + unsigned char x = ub ^ uc; /* 0: yes; 1..255: no */ + crypto_uint32 y = x; /* 0: yes; 1..255: no */ + y -= 1; /* 4294967295: yes; 0..254: no */ + y >>= 31; /* 1: yes; 0: no */ + return y; +} + +static unsigned char negative(signed char b) +{ + unsigned long long x = b; /* 18446744073709551361..18446744073709551615: yes; 0..255: no */ + x >>= 63; /* 1: yes; 0: no */ + return x; +} + +static void choose_t(ge25519_aff *t, unsigned long long pos, signed char b) +{ + /* constant time */ + fe25519 v; + *t = ge25519_base_multiples_affine[5*pos+0]; + cmov_aff(t, &ge25519_base_multiples_affine[5*pos+1],equal(b,1) | equal(b,-1)); + cmov_aff(t, &ge25519_base_multiples_affine[5*pos+2],equal(b,2) | equal(b,-2)); + cmov_aff(t, &ge25519_base_multiples_affine[5*pos+3],equal(b,3) | equal(b,-3)); + cmov_aff(t, &ge25519_base_multiples_affine[5*pos+4],equal(b,-4)); + fe25519_neg(&v, &t->x); + fe25519_cmov(&t->x, &v, negative(b)); +} + +static void setneutral(ge25519 *r) +{ + fe25519_setzero(&r->x); + fe25519_setone(&r->y); + fe25519_setone(&r->z); + fe25519_setzero(&r->t); +} + +/* ******************************************************************** + * EXPORTED FUNCTIONS + ******************************************************************** */ + +/* return 0 on success, -1 otherwise */ +int ge25519_unpackneg_vartime(ge25519_p3 *r, const unsigned char p[32]) +{ + unsigned char par; + fe25519 t, chk, num, den, den2, den4, den6; + fe25519_setone(&r->z); + par = p[31] >> 7; + fe25519_unpack(&r->y, p); + fe25519_square(&num, &r->y); /* x = y^2 */ + fe25519_mul(&den, &num, &ge25519_ecd); /* den = dy^2 */ + fe25519_sub(&num, &num, &r->z); /* x = y^2-1 */ + fe25519_add(&den, &r->z, &den); /* den = dy^2+1 */ + + /* Computation of sqrt(num/den) */ + /* 1.: computation of num^((p-5)/8)*den^((7p-35)/8) = (num*den^7)^((p-5)/8) */ + fe25519_square(&den2, &den); + fe25519_square(&den4, &den2); + fe25519_mul(&den6, &den4, &den2); + fe25519_mul(&t, &den6, &num); + fe25519_mul(&t, &t, &den); + + fe25519_pow2523(&t, &t); + /* 2. computation of r->x = t * num * den^3 */ + fe25519_mul(&t, &t, &num); + fe25519_mul(&t, &t, &den); + fe25519_mul(&t, &t, &den); + fe25519_mul(&r->x, &t, &den); + + /* 3. Check whether sqrt computation gave correct result, multiply by sqrt(-1) if not: */ + fe25519_square(&chk, &r->x); + fe25519_mul(&chk, &chk, &den); + if (!fe25519_iseq_vartime(&chk, &num)) + fe25519_mul(&r->x, &r->x, &ge25519_sqrtm1); + + /* 4. Now we have one of the two square roots, except if input was not a square */ + fe25519_square(&chk, &r->x); + fe25519_mul(&chk, &chk, &den); + if (!fe25519_iseq_vartime(&chk, &num)) + return -1; + + /* 5. Choose the desired square root according to parity: */ + if(fe25519_getparity(&r->x) != (1-par)) + fe25519_neg(&r->x, &r->x); + + fe25519_mul(&r->t, &r->x, &r->y); return 0; } +static void ge25519_pack(unsigned char r[32], const ge25519_p3 *p) +{ + fe25519 tx, ty, zi; + fe25519_invert(&zi, &p->z); + fe25519_mul(&tx, &p->x, &zi); + fe25519_mul(&ty, &p->y, &zi); + fe25519_pack(r, &ty); + r[31] ^= fe25519_getparity(&tx) << 7; +} + +int ge25519_isneutral_vartime(const ge25519_p3 *p) +{ + int ret = 1; + if(!fe25519_iszero(&p->x)) ret = 0; + if(!fe25519_iseq_vartime(&p->y, &p->z)) ret = 0; + return ret; +} + +/* computes [s1]p1 + [s2]p2 */ +static void ge25519_double_scalarmult_vartime(ge25519_p3 *r, const ge25519_p3 *p1, const sc25519 *s1, const ge25519_p3 *p2, const sc25519 *s2) +{ + ge25519_p1p1 tp1p1; + ge25519_p3 pre[16]; + unsigned char b[127]; + int i; + + /* precomputation s2 s1 */ + setneutral(pre); /* 00 00 */ + pre[1] = *p1; /* 00 01 */ + dbl_p1p1(&tp1p1,(ge25519_p2 *)p1); p1p1_to_p3( &pre[2], &tp1p1); /* 00 10 */ + add_p1p1(&tp1p1,&pre[1], &pre[2]); p1p1_to_p3( &pre[3], &tp1p1); /* 00 11 */ + pre[4] = *p2; /* 01 00 */ + add_p1p1(&tp1p1,&pre[1], &pre[4]); p1p1_to_p3( &pre[5], &tp1p1); /* 01 01 */ + add_p1p1(&tp1p1,&pre[2], &pre[4]); p1p1_to_p3( &pre[6], &tp1p1); /* 01 10 */ + add_p1p1(&tp1p1,&pre[3], &pre[4]); p1p1_to_p3( &pre[7], &tp1p1); /* 01 11 */ + dbl_p1p1(&tp1p1,(ge25519_p2 *)p2); p1p1_to_p3( &pre[8], &tp1p1); /* 10 00 */ + add_p1p1(&tp1p1,&pre[1], &pre[8]); p1p1_to_p3( &pre[9], &tp1p1); /* 10 01 */ + dbl_p1p1(&tp1p1,(ge25519_p2 *)&pre[5]); p1p1_to_p3(&pre[10], &tp1p1); /* 10 10 */ + add_p1p1(&tp1p1,&pre[3], &pre[8]); p1p1_to_p3(&pre[11], &tp1p1); /* 10 11 */ + add_p1p1(&tp1p1,&pre[4], &pre[8]); p1p1_to_p3(&pre[12], &tp1p1); /* 11 00 */ + add_p1p1(&tp1p1,&pre[1],&pre[12]); p1p1_to_p3(&pre[13], &tp1p1); /* 11 01 */ + add_p1p1(&tp1p1,&pre[2],&pre[12]); p1p1_to_p3(&pre[14], &tp1p1); /* 11 10 */ + add_p1p1(&tp1p1,&pre[3],&pre[12]); p1p1_to_p3(&pre[15], &tp1p1); /* 11 11 */ + + sc25519_2interleave2(b,s1,s2); + + /* scalar multiplication */ + *r = pre[b[126]]; + for(i=125;i>=0;i--) + { + dbl_p1p1(&tp1p1, (ge25519_p2 *)r); + p1p1_to_p2((ge25519_p2 *) r, &tp1p1); + dbl_p1p1(&tp1p1, (ge25519_p2 *)r); + if(b[i]!=0) + { + p1p1_to_p3(r, &tp1p1); + add_p1p1(&tp1p1, r, &pre[b[i]]); + } + if(i != 0) p1p1_to_p2((ge25519_p2 *)r, &tp1p1); + else p1p1_to_p3(r, &tp1p1); + } +} + +static void ge25519_scalarmult_base(ge25519_p3 *r, const sc25519 *s) +{ + signed char b[85]; + int i; + ge25519_aff t; + sc25519_window3(b,s); + + choose_t((ge25519_aff *)r, 0, b[0]); + fe25519_setone(&r->z); + fe25519_mul(&r->t, &r->x, &r->y); + for(i=1;i<85;i++) + { + choose_t(&t, (unsigned long long) i, b[i]); + ge25519_mixadd2(r, &t); + } +} +/* from supercop-20221122/crypto_sign/ed25519/ref/keypair.c */ + +int crypto_sign_ed25519_keypair(unsigned char *pk,unsigned char *sk) +{ + unsigned char az[64]; + sc25519 scsk; + ge25519 gepk; + + randombytes(sk,32); + crypto_hash_sha512(az,sk,32); + az[0] &= 248; + az[31] &= 127; + az[31] |= 64; + + sc25519_from32bytes(&scsk,az); + + ge25519_scalarmult_base(&gepk, &scsk); + ge25519_pack(pk, &gepk); + memmove(sk + 32,pk,32); + return 0; +} +/* from supercop-20221122/crypto_sign/ed25519/ref/sign.c */ + int crypto_sign_ed25519( unsigned char *sm,unsigned long long *smlen, const unsigned char *m,unsigned long long mlen, const unsigned char *sk ) { + unsigned char pk[32]; + unsigned char az[64]; + unsigned char nonce[64]; + unsigned char hram[64]; sc25519 sck, scs, scsk; ge25519 ger; - unsigned char r[32]; - unsigned char s[32]; - unsigned char extsk[64]; - unsigned long long i; - unsigned char hmg[crypto_hash_sha512_BYTES]; - unsigned char hram[crypto_hash_sha512_BYTES]; - crypto_hash_sha512(extsk, sk, 32); - extsk[0] &= 248; - extsk[31] &= 127; - extsk[31] |= 64; + memmove(pk,sk + 32,32); + /* pk: 32-byte public key A */ - *smlen = mlen+64; - for(i=0;i' +echo +echo '#include "crypto_api.h"' +echo +# Map the types used in this code to the ones in crypto_api.h. We use #define +# instead of typedef since some systems have existing intXX types and do not +# permit multiple typedefs even if they do not conflict. +for t in int8 uint8 int16 uint16 int32 uint32 int64 uint64; do + echo "#define $t crypto_${t}" +done +echo +for i in $FILES; do + echo "/* from $i */" + # Changes to all files: + # - inline ge25519_base.data where it is included + # - expand CRYPTO_NAMESPACE() namespacing define + # - remove all includes, we inline everything required. + # - make functions not required elsewhere static. + # - rename the functions we do use. + sed \ + -e "/#include \"ge25519_base.data\"/r $DATA" \ + -e "/#include/d" \ + -e "s/^void /static void /g" \ + -e 's/CRYPTO_NAMESPACE[(]\([a-zA-Z0-9_]*\)[)]/crypto_sign_ed25519_ref_\1/g' \ + $i | \ + case "$i" in + */crypto_verify/32/ref/verify.c) + # rename crypto_verify() to the name that the ed25519 code expects. + sed -e "/^#include.*/d" \ + -e "s/crypto_verify/crypto_verify_32/g" \ + -e "s/^int /static int /g" + ;; + */crypto_sign/ed25519/ref/sign.c) + # rename signing function to the name OpenSSH expects + sed -e "s/crypto_sign/crypto_sign_ed25519/g" + ;; + */crypto_sign/ed25519/ref/keypair.c) + # rename key generation function to the name OpenSSH expects + sed -e "s/crypto_sign_keypair/crypto_sign_ed25519_keypair/g" + ;; + */crypto_sign/ed25519/ref/open.c) + # rename verification function to the name OpenSSH expects + sed -e "s/crypto_sign_open/crypto_sign_ed25519_open/g" + ;; + */crypto_sign/ed25519/ref/fe25519.*) + # avoid a couple of name collions with other files + sed -e "s/reduce_add_sub/fe25519_reduce_add_sub/g" \ + -e "s/ equal[(]/ fe25519_equal(/g" \ + -e "s/^int /static int /g" + ;; + */crypto_sign/ed25519/ref/sc25519.h) + # Lots of unused prototypes to remove + sed -e "s/^int /static int /g" \ + -e '/shortsc25519_from16bytes/d' \ + -e '/sc25519_iszero_vartime/d' \ + -e '/sc25519_isshort_vartime/d' \ + -e '/sc25519_lt_vartime/d' \ + -e '/sc25519_sub_nored/d' \ + -e '/sc25519_mul_shortsc/d' \ + -e '/sc25519_from_shortsc/d' \ + -e '/sc25519_window5/d' + ;; + */crypto_sign/ed25519/ref/sc25519.c) + # Lots of unused code to remove, some name collisions to avoid + sed -e "s/reduce_add_sub/sc25519_reduce_add_sub/g" \ + -e "s/ equal[(]/ sc25519_equal(/g" \ + -e "s/^int /static int /g" \ + -e "s/m[[]/sc25519_m[/g" \ + -e "s/mu[[]/sc25519_mu[/g" \ + -e '/shortsc25519_from16bytes/,/^}$/d' \ + -e '/sc25519_iszero_vartime/,/^}$/d' \ + -e '/sc25519_isshort_vartime/,/^}$/d' \ + -e '/sc25519_lt_vartime/,/^}$/d' \ + -e '/sc25519_sub_nored/,/^}$/d' \ + -e '/sc25519_mul_shortsc/,/^}$/d' \ + -e '/sc25519_from_shortsc/,/^}$/d' \ + -e '/sc25519_window5/,/^}$/d' + ;; + */crypto_sign/ed25519/ref//ge25519.*) + sed -e "s/^int /static int /g" + ;; + # Default: pass through. + *) + cat + ;; + esac | \ + sed -e 's/[ ]*$//' +done diff --git a/crypto/openssh/entropy.c b/crypto/openssh/entropy.c index a4088e43cdf8..842c66fd6d0f 100644 --- a/crypto/openssh/entropy.c +++ b/crypto/openssh/entropy.c @@ -57,40 +57,6 @@ * /dev/random), then collect RANDOM_SEED_SIZE bytes of randomness from * PRNGd. */ -#ifndef OPENSSL_PRNG_ONLY - -void -rexec_send_rng_seed(struct sshbuf *m) -{ - u_char buf[RANDOM_SEED_SIZE]; - size_t len = sizeof(buf); - int r; - - if (RAND_bytes(buf, sizeof(buf)) <= 0) { - error("Couldn't obtain random bytes (error %ld)", - ERR_get_error()); - len = 0; - } - if ((r = sshbuf_put_string(m, buf, len)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); - explicit_bzero(buf, sizeof(buf)); -} - -void -rexec_recv_rng_seed(struct sshbuf *m) -{ - const u_char *buf = NULL; - size_t len = 0; - int r; - - if ((r = sshbuf_get_string_direct(m, &buf, &len)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); - - debug3("rexec_recv_rng_seed: seeding rng with %lu bytes", - (unsigned long)len); - RAND_add(buf, len, len); -} -#endif /* OPENSSL_PRNG_ONLY */ void seed_rng(void) diff --git a/crypto/openssh/fe25519.c b/crypto/openssh/fe25519.c deleted file mode 100644 index e54fd154738b..000000000000 --- a/crypto/openssh/fe25519.c +++ /dev/null @@ -1,337 +0,0 @@ -/* $OpenBSD: fe25519.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/fe25519.c - */ - -#include "includes.h" - -#define WINDOWSIZE 1 /* Should be 1,2, or 4 */ -#define WINDOWMASK ((1<>= 31; /* 1: yes; 0: no */ - return x; -} - -static crypto_uint32 ge(crypto_uint32 a,crypto_uint32 b) /* 16-bit inputs */ -{ - unsigned int x = a; - x -= (unsigned int) b; /* 0..65535: yes; 4294901761..4294967295: no */ - x >>= 31; /* 0: yes; 1: no */ - x ^= 1; /* 1: yes; 0: no */ - return x; -} - -static crypto_uint32 times19(crypto_uint32 a) -{ - return (a << 4) + (a << 1) + a; -} - -static crypto_uint32 times38(crypto_uint32 a) -{ - return (a << 5) + (a << 2) + (a << 1); -} - -static void reduce_add_sub(fe25519 *r) -{ - crypto_uint32 t; - int i,rep; - - for(rep=0;rep<4;rep++) - { - t = r->v[31] >> 7; - r->v[31] &= 127; - t = times19(t); - r->v[0] += t; - for(i=0;i<31;i++) - { - t = r->v[i] >> 8; - r->v[i+1] += t; - r->v[i] &= 255; - } - } -} - -static void reduce_mul(fe25519 *r) -{ - crypto_uint32 t; - int i,rep; - - for(rep=0;rep<2;rep++) - { - t = r->v[31] >> 7; - r->v[31] &= 127; - t = times19(t); - r->v[0] += t; - for(i=0;i<31;i++) - { - t = r->v[i] >> 8; - r->v[i+1] += t; - r->v[i] &= 255; - } - } -} - -/* reduction modulo 2^255-19 */ -void fe25519_freeze(fe25519 *r) -{ - int i; - crypto_uint32 m = equal(r->v[31],127); - for(i=30;i>0;i--) - m &= equal(r->v[i],255); - m &= ge(r->v[0],237); - - m = -m; - - r->v[31] -= m&127; - for(i=30;i>0;i--) - r->v[i] -= m&255; - r->v[0] -= m&237; -} - -void fe25519_unpack(fe25519 *r, const unsigned char x[32]) -{ - int i; - for(i=0;i<32;i++) r->v[i] = x[i]; - r->v[31] &= 127; -} - -/* Assumes input x being reduced below 2^255 */ -void fe25519_pack(unsigned char r[32], const fe25519 *x) -{ - int i; - fe25519 y = *x; - fe25519_freeze(&y); - for(i=0;i<32;i++) - r[i] = y.v[i]; -} - -int fe25519_iszero(const fe25519 *x) -{ - int i; - int r; - fe25519 t = *x; - fe25519_freeze(&t); - r = equal(t.v[0],0); - for(i=1;i<32;i++) - r &= equal(t.v[i],0); - return r; -} - -int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y) -{ - int i; - fe25519 t1 = *x; - fe25519 t2 = *y; - fe25519_freeze(&t1); - fe25519_freeze(&t2); - for(i=0;i<32;i++) - if(t1.v[i] != t2.v[i]) return 0; - return 1; -} - -void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b) -{ - int i; - crypto_uint32 mask = b; - mask = -mask; - for(i=0;i<32;i++) r->v[i] ^= mask & (x->v[i] ^ r->v[i]); -} - -unsigned char fe25519_getparity(const fe25519 *x) -{ - fe25519 t = *x; - fe25519_freeze(&t); - return t.v[0] & 1; -} - -void fe25519_setone(fe25519 *r) -{ - int i; - r->v[0] = 1; - for(i=1;i<32;i++) r->v[i]=0; -} - -void fe25519_setzero(fe25519 *r) -{ - int i; - for(i=0;i<32;i++) r->v[i]=0; -} - -void fe25519_neg(fe25519 *r, const fe25519 *x) -{ - fe25519 t; - int i; - for(i=0;i<32;i++) t.v[i]=x->v[i]; - fe25519_setzero(r); - fe25519_sub(r, r, &t); -} - -void fe25519_add(fe25519 *r, const fe25519 *x, const fe25519 *y) -{ - int i; - for(i=0;i<32;i++) r->v[i] = x->v[i] + y->v[i]; - reduce_add_sub(r); -} - -void fe25519_sub(fe25519 *r, const fe25519 *x, const fe25519 *y) -{ - int i; - crypto_uint32 t[32]; - t[0] = x->v[0] + 0x1da; - t[31] = x->v[31] + 0xfe; - for(i=1;i<31;i++) t[i] = x->v[i] + 0x1fe; - for(i=0;i<32;i++) r->v[i] = t[i] - y->v[i]; - reduce_add_sub(r); -} - -void fe25519_mul(fe25519 *r, const fe25519 *x, const fe25519 *y) -{ - int i,j; - crypto_uint32 t[63]; - for(i=0;i<63;i++)t[i] = 0; - - for(i=0;i<32;i++) - for(j=0;j<32;j++) - t[i+j] += x->v[i] * y->v[j]; - - for(i=32;i<63;i++) - r->v[i-32] = t[i-32] + times38(t[i]); - r->v[31] = t[31]; /* result now in r[0]...r[31] */ - - reduce_mul(r); -} - -void fe25519_square(fe25519 *r, const fe25519 *x) -{ - fe25519_mul(r, x, x); -} - -void fe25519_invert(fe25519 *r, const fe25519 *x) -{ - fe25519 z2; - fe25519 z9; - fe25519 z11; - fe25519 z2_5_0; - fe25519 z2_10_0; - fe25519 z2_20_0; - fe25519 z2_50_0; - fe25519 z2_100_0; - fe25519 t0; - fe25519 t1; - int i; - - /* 2 */ fe25519_square(&z2,x); - /* 4 */ fe25519_square(&t1,&z2); - /* 8 */ fe25519_square(&t0,&t1); - /* 9 */ fe25519_mul(&z9,&t0,x); - /* 11 */ fe25519_mul(&z11,&z9,&z2); - /* 22 */ fe25519_square(&t0,&z11); - /* 2^5 - 2^0 = 31 */ fe25519_mul(&z2_5_0,&t0,&z9); - - /* 2^6 - 2^1 */ fe25519_square(&t0,&z2_5_0); - /* 2^7 - 2^2 */ fe25519_square(&t1,&t0); - /* 2^8 - 2^3 */ fe25519_square(&t0,&t1); - /* 2^9 - 2^4 */ fe25519_square(&t1,&t0); - /* 2^10 - 2^5 */ fe25519_square(&t0,&t1); - /* 2^10 - 2^0 */ fe25519_mul(&z2_10_0,&t0,&z2_5_0); - - /* 2^11 - 2^1 */ fe25519_square(&t0,&z2_10_0); - /* 2^12 - 2^2 */ fe25519_square(&t1,&t0); - /* 2^20 - 2^10 */ for (i = 2;i < 10;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } - /* 2^20 - 2^0 */ fe25519_mul(&z2_20_0,&t1,&z2_10_0); - - /* 2^21 - 2^1 */ fe25519_square(&t0,&z2_20_0); - /* 2^22 - 2^2 */ fe25519_square(&t1,&t0); - /* 2^40 - 2^20 */ for (i = 2;i < 20;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } - /* 2^40 - 2^0 */ fe25519_mul(&t0,&t1,&z2_20_0); - - /* 2^41 - 2^1 */ fe25519_square(&t1,&t0); - /* 2^42 - 2^2 */ fe25519_square(&t0,&t1); - /* 2^50 - 2^10 */ for (i = 2;i < 10;i += 2) { fe25519_square(&t1,&t0); fe25519_square(&t0,&t1); } - /* 2^50 - 2^0 */ fe25519_mul(&z2_50_0,&t0,&z2_10_0); - - /* 2^51 - 2^1 */ fe25519_square(&t0,&z2_50_0); - /* 2^52 - 2^2 */ fe25519_square(&t1,&t0); - /* 2^100 - 2^50 */ for (i = 2;i < 50;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } - /* 2^100 - 2^0 */ fe25519_mul(&z2_100_0,&t1,&z2_50_0); - - /* 2^101 - 2^1 */ fe25519_square(&t1,&z2_100_0); - /* 2^102 - 2^2 */ fe25519_square(&t0,&t1); - /* 2^200 - 2^100 */ for (i = 2;i < 100;i += 2) { fe25519_square(&t1,&t0); fe25519_square(&t0,&t1); } - /* 2^200 - 2^0 */ fe25519_mul(&t1,&t0,&z2_100_0); - - /* 2^201 - 2^1 */ fe25519_square(&t0,&t1); - /* 2^202 - 2^2 */ fe25519_square(&t1,&t0); - /* 2^250 - 2^50 */ for (i = 2;i < 50;i += 2) { fe25519_square(&t0,&t1); fe25519_square(&t1,&t0); } - /* 2^250 - 2^0 */ fe25519_mul(&t0,&t1,&z2_50_0); - - /* 2^251 - 2^1 */ fe25519_square(&t1,&t0); - /* 2^252 - 2^2 */ fe25519_square(&t0,&t1); - /* 2^253 - 2^3 */ fe25519_square(&t1,&t0); - /* 2^254 - 2^4 */ fe25519_square(&t0,&t1); - /* 2^255 - 2^5 */ fe25519_square(&t1,&t0); - /* 2^255 - 21 */ fe25519_mul(r,&t1,&z11); -} - -void fe25519_pow2523(fe25519 *r, const fe25519 *x) -{ - fe25519 z2; - fe25519 z9; - fe25519 z11; - fe25519 z2_5_0; - fe25519 z2_10_0; - fe25519 z2_20_0; - fe25519 z2_50_0; - fe25519 z2_100_0; - fe25519 t; - int i; - - /* 2 */ fe25519_square(&z2,x); - /* 4 */ fe25519_square(&t,&z2); - /* 8 */ fe25519_square(&t,&t); - /* 9 */ fe25519_mul(&z9,&t,x); - /* 11 */ fe25519_mul(&z11,&z9,&z2); - /* 22 */ fe25519_square(&t,&z11); - /* 2^5 - 2^0 = 31 */ fe25519_mul(&z2_5_0,&t,&z9); - - /* 2^6 - 2^1 */ fe25519_square(&t,&z2_5_0); - /* 2^10 - 2^5 */ for (i = 1;i < 5;i++) { fe25519_square(&t,&t); } - /* 2^10 - 2^0 */ fe25519_mul(&z2_10_0,&t,&z2_5_0); - - /* 2^11 - 2^1 */ fe25519_square(&t,&z2_10_0); - /* 2^20 - 2^10 */ for (i = 1;i < 10;i++) { fe25519_square(&t,&t); } - /* 2^20 - 2^0 */ fe25519_mul(&z2_20_0,&t,&z2_10_0); - - /* 2^21 - 2^1 */ fe25519_square(&t,&z2_20_0); - /* 2^40 - 2^20 */ for (i = 1;i < 20;i++) { fe25519_square(&t,&t); } - /* 2^40 - 2^0 */ fe25519_mul(&t,&t,&z2_20_0); - - /* 2^41 - 2^1 */ fe25519_square(&t,&t); - /* 2^50 - 2^10 */ for (i = 1;i < 10;i++) { fe25519_square(&t,&t); } - /* 2^50 - 2^0 */ fe25519_mul(&z2_50_0,&t,&z2_10_0); - - /* 2^51 - 2^1 */ fe25519_square(&t,&z2_50_0); - /* 2^100 - 2^50 */ for (i = 1;i < 50;i++) { fe25519_square(&t,&t); } - /* 2^100 - 2^0 */ fe25519_mul(&z2_100_0,&t,&z2_50_0); - - /* 2^101 - 2^1 */ fe25519_square(&t,&z2_100_0); - /* 2^200 - 2^100 */ for (i = 1;i < 100;i++) { fe25519_square(&t,&t); } - /* 2^200 - 2^0 */ fe25519_mul(&t,&t,&z2_100_0); - - /* 2^201 - 2^1 */ fe25519_square(&t,&t); - /* 2^250 - 2^50 */ for (i = 1;i < 50;i++) { fe25519_square(&t,&t); } - /* 2^250 - 2^0 */ fe25519_mul(&t,&t,&z2_50_0); - - /* 2^251 - 2^1 */ fe25519_square(&t,&t); - /* 2^252 - 2^2 */ fe25519_square(&t,&t); - /* 2^252 - 3 */ fe25519_mul(r,&t,x); -} diff --git a/crypto/openssh/fe25519.h b/crypto/openssh/fe25519.h deleted file mode 100644 index 41b3cbb49dc6..000000000000 --- a/crypto/openssh/fe25519.h +++ /dev/null @@ -1,70 +0,0 @@ -/* $OpenBSD: fe25519.h,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/fe25519.h - */ - -#ifndef FE25519_H -#define FE25519_H - -#include "crypto_api.h" - -#define fe25519 crypto_sign_ed25519_ref_fe25519 -#define fe25519_freeze crypto_sign_ed25519_ref_fe25519_freeze -#define fe25519_unpack crypto_sign_ed25519_ref_fe25519_unpack -#define fe25519_pack crypto_sign_ed25519_ref_fe25519_pack -#define fe25519_iszero crypto_sign_ed25519_ref_fe25519_iszero -#define fe25519_iseq_vartime crypto_sign_ed25519_ref_fe25519_iseq_vartime -#define fe25519_cmov crypto_sign_ed25519_ref_fe25519_cmov -#define fe25519_setone crypto_sign_ed25519_ref_fe25519_setone -#define fe25519_setzero crypto_sign_ed25519_ref_fe25519_setzero -#define fe25519_neg crypto_sign_ed25519_ref_fe25519_neg -#define fe25519_getparity crypto_sign_ed25519_ref_fe25519_getparity -#define fe25519_add crypto_sign_ed25519_ref_fe25519_add -#define fe25519_sub crypto_sign_ed25519_ref_fe25519_sub -#define fe25519_mul crypto_sign_ed25519_ref_fe25519_mul -#define fe25519_square crypto_sign_ed25519_ref_fe25519_square -#define fe25519_invert crypto_sign_ed25519_ref_fe25519_invert -#define fe25519_pow2523 crypto_sign_ed25519_ref_fe25519_pow2523 - -typedef struct -{ - crypto_uint32 v[32]; -} -fe25519; - -void fe25519_freeze(fe25519 *r); - -void fe25519_unpack(fe25519 *r, const unsigned char x[32]); - -void fe25519_pack(unsigned char r[32], const fe25519 *x); - -int fe25519_iszero(const fe25519 *x); - -int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y); - -void fe25519_cmov(fe25519 *r, const fe25519 *x, unsigned char b); - -void fe25519_setone(fe25519 *r); - -void fe25519_setzero(fe25519 *r); - -void fe25519_neg(fe25519 *r, const fe25519 *x); - -unsigned char fe25519_getparity(const fe25519 *x); - -void fe25519_add(fe25519 *r, const fe25519 *x, const fe25519 *y); - -void fe25519_sub(fe25519 *r, const fe25519 *x, const fe25519 *y); - -void fe25519_mul(fe25519 *r, const fe25519 *x, const fe25519 *y); - -void fe25519_square(fe25519 *r, const fe25519 *x); - -void fe25519_invert(fe25519 *r, const fe25519 *x); - -void fe25519_pow2523(fe25519 *r, const fe25519 *x); - -#endif diff --git a/crypto/openssh/ge25519.c b/crypto/openssh/ge25519.c deleted file mode 100644 index dfe3849b931b..000000000000 --- a/crypto/openssh/ge25519.c +++ /dev/null @@ -1,321 +0,0 @@ -/* $OpenBSD: ge25519.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/ge25519.c - */ - -#include "includes.h" - -#include "fe25519.h" -#include "sc25519.h" -#include "ge25519.h" - -/* - * Arithmetic on the twisted Edwards curve -x^2 + y^2 = 1 + dx^2y^2 - * with d = -(121665/121666) = 37095705934669439343138083508754565189542113879843219016388785533085940283555 - * Base point: (15112221349535400772501151409588531511454012693041857206046113283949847762202,46316835694926478169428394003475163141307993866256225615783033603165251855960); - */ - -/* d */ -static const fe25519 ge25519_ecd = {{0xA3, 0x78, 0x59, 0x13, 0xCA, 0x4D, 0xEB, 0x75, 0xAB, 0xD8, 0x41, 0x41, 0x4D, 0x0A, 0x70, 0x00, - 0x98, 0xE8, 0x79, 0x77, 0x79, 0x40, 0xC7, 0x8C, 0x73, 0xFE, 0x6F, 0x2B, 0xEE, 0x6C, 0x03, 0x52}}; -/* 2*d */ -static const fe25519 ge25519_ec2d = {{0x59, 0xF1, 0xB2, 0x26, 0x94, 0x9B, 0xD6, 0xEB, 0x56, 0xB1, 0x83, 0x82, 0x9A, 0x14, 0xE0, 0x00, - 0x30, 0xD1, 0xF3, 0xEE, 0xF2, 0x80, 0x8E, 0x19, 0xE7, 0xFC, 0xDF, 0x56, 0xDC, 0xD9, 0x06, 0x24}}; -/* sqrt(-1) */ -static const fe25519 ge25519_sqrtm1 = {{0xB0, 0xA0, 0x0E, 0x4A, 0x27, 0x1B, 0xEE, 0xC4, 0x78, 0xE4, 0x2F, 0xAD, 0x06, 0x18, 0x43, 0x2F, - 0xA7, 0xD7, 0xFB, 0x3D, 0x99, 0x00, 0x4D, 0x2B, 0x0B, 0xDF, 0xC1, 0x4F, 0x80, 0x24, 0x83, 0x2B}}; - -#define ge25519_p3 ge25519 - -typedef struct -{ - fe25519 x; - fe25519 z; - fe25519 y; - fe25519 t; -} ge25519_p1p1; - -typedef struct -{ - fe25519 x; - fe25519 y; - fe25519 z; -} ge25519_p2; - -typedef struct -{ - fe25519 x; - fe25519 y; -} ge25519_aff; - - -/* Packed coordinates of the base point */ -const ge25519 ge25519_base = {{{0x1A, 0xD5, 0x25, 0x8F, 0x60, 0x2D, 0x56, 0xC9, 0xB2, 0xA7, 0x25, 0x95, 0x60, 0xC7, 0x2C, 0x69, - 0x5C, 0xDC, 0xD6, 0xFD, 0x31, 0xE2, 0xA4, 0xC0, 0xFE, 0x53, 0x6E, 0xCD, 0xD3, 0x36, 0x69, 0x21}}, - {{0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0xA3, 0xDD, 0xB7, 0xA5, 0xB3, 0x8A, 0xDE, 0x6D, 0xF5, 0x52, 0x51, 0x77, 0x80, 0x9F, 0xF0, 0x20, - 0x7D, 0xE3, 0xAB, 0x64, 0x8E, 0x4E, 0xEA, 0x66, 0x65, 0x76, 0x8B, 0xD7, 0x0F, 0x5F, 0x87, 0x67}}}; - -/* Multiples of the base point in affine representation */ -static const ge25519_aff ge25519_base_multiples_affine[425] = { -#include "ge25519_base.data" -}; - -static void p1p1_to_p2(ge25519_p2 *r, const ge25519_p1p1 *p) -{ - fe25519_mul(&r->x, &p->x, &p->t); - fe25519_mul(&r->y, &p->y, &p->z); - fe25519_mul(&r->z, &p->z, &p->t); -} - -static void p1p1_to_p3(ge25519_p3 *r, const ge25519_p1p1 *p) -{ - p1p1_to_p2((ge25519_p2 *)r, p); - fe25519_mul(&r->t, &p->x, &p->y); -} - -static void ge25519_mixadd2(ge25519_p3 *r, const ge25519_aff *q) -{ - fe25519 a,b,t1,t2,c,d,e,f,g,h,qt; - fe25519_mul(&qt, &q->x, &q->y); - fe25519_sub(&a, &r->y, &r->x); /* A = (Y1-X1)*(Y2-X2) */ - fe25519_add(&b, &r->y, &r->x); /* B = (Y1+X1)*(Y2+X2) */ - fe25519_sub(&t1, &q->y, &q->x); - fe25519_add(&t2, &q->y, &q->x); - fe25519_mul(&a, &a, &t1); - fe25519_mul(&b, &b, &t2); - fe25519_sub(&e, &b, &a); /* E = B-A */ - fe25519_add(&h, &b, &a); /* H = B+A */ - fe25519_mul(&c, &r->t, &qt); /* C = T1*k*T2 */ - fe25519_mul(&c, &c, &ge25519_ec2d); - fe25519_add(&d, &r->z, &r->z); /* D = Z1*2 */ - fe25519_sub(&f, &d, &c); /* F = D-C */ - fe25519_add(&g, &d, &c); /* G = D+C */ - fe25519_mul(&r->x, &e, &f); - fe25519_mul(&r->y, &h, &g); - fe25519_mul(&r->z, &g, &f); - fe25519_mul(&r->t, &e, &h); -} - -static void add_p1p1(ge25519_p1p1 *r, const ge25519_p3 *p, const ge25519_p3 *q) -{ - fe25519 a, b, c, d, t; - - fe25519_sub(&a, &p->y, &p->x); /* A = (Y1-X1)*(Y2-X2) */ - fe25519_sub(&t, &q->y, &q->x); - fe25519_mul(&a, &a, &t); - fe25519_add(&b, &p->x, &p->y); /* B = (Y1+X1)*(Y2+X2) */ - fe25519_add(&t, &q->x, &q->y); - fe25519_mul(&b, &b, &t); - fe25519_mul(&c, &p->t, &q->t); /* C = T1*k*T2 */ - fe25519_mul(&c, &c, &ge25519_ec2d); - fe25519_mul(&d, &p->z, &q->z); /* D = Z1*2*Z2 */ - fe25519_add(&d, &d, &d); - fe25519_sub(&r->x, &b, &a); /* E = B-A */ - fe25519_sub(&r->t, &d, &c); /* F = D-C */ - fe25519_add(&r->z, &d, &c); /* G = D+C */ - fe25519_add(&r->y, &b, &a); /* H = B+A */ -} - -/* See http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#doubling-dbl-2008-hwcd */ -static void dbl_p1p1(ge25519_p1p1 *r, const ge25519_p2 *p) -{ - fe25519 a,b,c,d; - fe25519_square(&a, &p->x); - fe25519_square(&b, &p->y); - fe25519_square(&c, &p->z); - fe25519_add(&c, &c, &c); - fe25519_neg(&d, &a); - - fe25519_add(&r->x, &p->x, &p->y); - fe25519_square(&r->x, &r->x); - fe25519_sub(&r->x, &r->x, &a); - fe25519_sub(&r->x, &r->x, &b); - fe25519_add(&r->z, &d, &b); - fe25519_sub(&r->t, &r->z, &c); - fe25519_sub(&r->y, &d, &b); -} - -/* Constant-time version of: if(b) r = p */ -static void cmov_aff(ge25519_aff *r, const ge25519_aff *p, unsigned char b) -{ - fe25519_cmov(&r->x, &p->x, b); - fe25519_cmov(&r->y, &p->y, b); -} - -static unsigned char equal(signed char b,signed char c) -{ - unsigned char ub = b; - unsigned char uc = c; - unsigned char x = ub ^ uc; /* 0: yes; 1..255: no */ - crypto_uint32 y = x; /* 0: yes; 1..255: no */ - y -= 1; /* 4294967295: yes; 0..254: no */ - y >>= 31; /* 1: yes; 0: no */ - return y; -} - -static unsigned char negative(signed char b) -{ - unsigned long long x = b; /* 18446744073709551361..18446744073709551615: yes; 0..255: no */ - x >>= 63; /* 1: yes; 0: no */ - return x; -} - -static void choose_t(ge25519_aff *t, unsigned long long pos, signed char b) -{ - /* constant time */ - fe25519 v; - *t = ge25519_base_multiples_affine[5*pos+0]; - cmov_aff(t, &ge25519_base_multiples_affine[5*pos+1],equal(b,1) | equal(b,-1)); - cmov_aff(t, &ge25519_base_multiples_affine[5*pos+2],equal(b,2) | equal(b,-2)); - cmov_aff(t, &ge25519_base_multiples_affine[5*pos+3],equal(b,3) | equal(b,-3)); - cmov_aff(t, &ge25519_base_multiples_affine[5*pos+4],equal(b,-4)); - fe25519_neg(&v, &t->x); - fe25519_cmov(&t->x, &v, negative(b)); -} - -static void setneutral(ge25519 *r) -{ - fe25519_setzero(&r->x); - fe25519_setone(&r->y); - fe25519_setone(&r->z); - fe25519_setzero(&r->t); -} - -/* ******************************************************************** - * EXPORTED FUNCTIONS - ******************************************************************** */ - -/* return 0 on success, -1 otherwise */ -int ge25519_unpackneg_vartime(ge25519_p3 *r, const unsigned char p[32]) -{ - unsigned char par; - fe25519 t, chk, num, den, den2, den4, den6; - fe25519_setone(&r->z); - par = p[31] >> 7; - fe25519_unpack(&r->y, p); - fe25519_square(&num, &r->y); /* x = y^2 */ - fe25519_mul(&den, &num, &ge25519_ecd); /* den = dy^2 */ - fe25519_sub(&num, &num, &r->z); /* x = y^2-1 */ - fe25519_add(&den, &r->z, &den); /* den = dy^2+1 */ - - /* Computation of sqrt(num/den) */ - /* 1.: computation of num^((p-5)/8)*den^((7p-35)/8) = (num*den^7)^((p-5)/8) */ - fe25519_square(&den2, &den); - fe25519_square(&den4, &den2); - fe25519_mul(&den6, &den4, &den2); - fe25519_mul(&t, &den6, &num); - fe25519_mul(&t, &t, &den); - - fe25519_pow2523(&t, &t); - /* 2. computation of r->x = t * num * den^3 */ - fe25519_mul(&t, &t, &num); - fe25519_mul(&t, &t, &den); - fe25519_mul(&t, &t, &den); - fe25519_mul(&r->x, &t, &den); - - /* 3. Check whether sqrt computation gave correct result, multiply by sqrt(-1) if not: */ - fe25519_square(&chk, &r->x); - fe25519_mul(&chk, &chk, &den); - if (!fe25519_iseq_vartime(&chk, &num)) - fe25519_mul(&r->x, &r->x, &ge25519_sqrtm1); - - /* 4. Now we have one of the two square roots, except if input was not a square */ - fe25519_square(&chk, &r->x); - fe25519_mul(&chk, &chk, &den); - if (!fe25519_iseq_vartime(&chk, &num)) - return -1; - - /* 5. Choose the desired square root according to parity: */ - if(fe25519_getparity(&r->x) != (1-par)) - fe25519_neg(&r->x, &r->x); - - fe25519_mul(&r->t, &r->x, &r->y); - return 0; -} - -void ge25519_pack(unsigned char r[32], const ge25519_p3 *p) -{ - fe25519 tx, ty, zi; - fe25519_invert(&zi, &p->z); - fe25519_mul(&tx, &p->x, &zi); - fe25519_mul(&ty, &p->y, &zi); - fe25519_pack(r, &ty); - r[31] ^= fe25519_getparity(&tx) << 7; -} - -int ge25519_isneutral_vartime(const ge25519_p3 *p) -{ - int ret = 1; - if(!fe25519_iszero(&p->x)) ret = 0; - if(!fe25519_iseq_vartime(&p->y, &p->z)) ret = 0; - return ret; -} - -/* computes [s1]p1 + [s2]p2 */ -void ge25519_double_scalarmult_vartime(ge25519_p3 *r, const ge25519_p3 *p1, const sc25519 *s1, const ge25519_p3 *p2, const sc25519 *s2) -{ - ge25519_p1p1 tp1p1; - ge25519_p3 pre[16]; - unsigned char b[127]; - int i; - - /* precomputation s2 s1 */ - setneutral(pre); /* 00 00 */ - pre[1] = *p1; /* 00 01 */ - dbl_p1p1(&tp1p1,(ge25519_p2 *)p1); p1p1_to_p3( &pre[2], &tp1p1); /* 00 10 */ - add_p1p1(&tp1p1,&pre[1], &pre[2]); p1p1_to_p3( &pre[3], &tp1p1); /* 00 11 */ - pre[4] = *p2; /* 01 00 */ - add_p1p1(&tp1p1,&pre[1], &pre[4]); p1p1_to_p3( &pre[5], &tp1p1); /* 01 01 */ - add_p1p1(&tp1p1,&pre[2], &pre[4]); p1p1_to_p3( &pre[6], &tp1p1); /* 01 10 */ - add_p1p1(&tp1p1,&pre[3], &pre[4]); p1p1_to_p3( &pre[7], &tp1p1); /* 01 11 */ - dbl_p1p1(&tp1p1,(ge25519_p2 *)p2); p1p1_to_p3( &pre[8], &tp1p1); /* 10 00 */ - add_p1p1(&tp1p1,&pre[1], &pre[8]); p1p1_to_p3( &pre[9], &tp1p1); /* 10 01 */ - dbl_p1p1(&tp1p1,(ge25519_p2 *)&pre[5]); p1p1_to_p3(&pre[10], &tp1p1); /* 10 10 */ - add_p1p1(&tp1p1,&pre[3], &pre[8]); p1p1_to_p3(&pre[11], &tp1p1); /* 10 11 */ - add_p1p1(&tp1p1,&pre[4], &pre[8]); p1p1_to_p3(&pre[12], &tp1p1); /* 11 00 */ - add_p1p1(&tp1p1,&pre[1],&pre[12]); p1p1_to_p3(&pre[13], &tp1p1); /* 11 01 */ - add_p1p1(&tp1p1,&pre[2],&pre[12]); p1p1_to_p3(&pre[14], &tp1p1); /* 11 10 */ - add_p1p1(&tp1p1,&pre[3],&pre[12]); p1p1_to_p3(&pre[15], &tp1p1); /* 11 11 */ - - sc25519_2interleave2(b,s1,s2); - - /* scalar multiplication */ - *r = pre[b[126]]; - for(i=125;i>=0;i--) - { - dbl_p1p1(&tp1p1, (ge25519_p2 *)r); - p1p1_to_p2((ge25519_p2 *) r, &tp1p1); - dbl_p1p1(&tp1p1, (ge25519_p2 *)r); - if(b[i]!=0) - { - p1p1_to_p3(r, &tp1p1); - add_p1p1(&tp1p1, r, &pre[b[i]]); - } - if(i != 0) p1p1_to_p2((ge25519_p2 *)r, &tp1p1); - else p1p1_to_p3(r, &tp1p1); - } -} - -void ge25519_scalarmult_base(ge25519_p3 *r, const sc25519 *s) -{ - signed char b[85]; - int i; - ge25519_aff t; - sc25519_window3(b,s); - - choose_t((ge25519_aff *)r, 0, b[0]); - fe25519_setone(&r->z); - fe25519_mul(&r->t, &r->x, &r->y); - for(i=1;i<85;i++) - { - choose_t(&t, (unsigned long long) i, b[i]); - ge25519_mixadd2(r, &t); - } -} diff --git a/crypto/openssh/ge25519.h b/crypto/openssh/ge25519.h deleted file mode 100644 index a09763760931..000000000000 --- a/crypto/openssh/ge25519.h +++ /dev/null @@ -1,43 +0,0 @@ -/* $OpenBSD: ge25519.h,v 1.4 2015/02/16 18:26:26 miod Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/ge25519.h - */ - -#ifndef GE25519_H -#define GE25519_H - -#include "fe25519.h" -#include "sc25519.h" - -#define ge25519 crypto_sign_ed25519_ref_ge25519 -#define ge25519_base crypto_sign_ed25519_ref_ge25519_base -#define ge25519_unpackneg_vartime crypto_sign_ed25519_ref_unpackneg_vartime -#define ge25519_pack crypto_sign_ed25519_ref_pack -#define ge25519_isneutral_vartime crypto_sign_ed25519_ref_isneutral_vartime -#define ge25519_double_scalarmult_vartime crypto_sign_ed25519_ref_double_scalarmult_vartime -#define ge25519_scalarmult_base crypto_sign_ed25519_ref_scalarmult_base - -typedef struct -{ - fe25519 x; - fe25519 y; - fe25519 z; - fe25519 t; -} ge25519; - -extern const ge25519 ge25519_base; - -int ge25519_unpackneg_vartime(ge25519 *r, const unsigned char p[32]); - -void ge25519_pack(unsigned char r[32], const ge25519 *p); - -int ge25519_isneutral_vartime(const ge25519 *p); - -void ge25519_double_scalarmult_vartime(ge25519 *r, const ge25519 *p1, const sc25519 *s1, const ge25519 *p2, const sc25519 *s2); - -void ge25519_scalarmult_base(ge25519 *r, const sc25519 *s); - -#endif diff --git a/crypto/openssh/ge25519_base.data b/crypto/openssh/ge25519_base.data deleted file mode 100644 index 66fb1b61c67d..000000000000 --- a/crypto/openssh/ge25519_base.data +++ /dev/null @@ -1,858 +0,0 @@ -/* $OpenBSD: ge25519_base.data,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/ge25519_base.data - */ - -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x1a, 0xd5, 0x25, 0x8f, 0x60, 0x2d, 0x56, 0xc9, 0xb2, 0xa7, 0x25, 0x95, 0x60, 0xc7, 0x2c, 0x69, 0x5c, 0xdc, 0xd6, 0xfd, 0x31, 0xe2, 0xa4, 0xc0, 0xfe, 0x53, 0x6e, 0xcd, 0xd3, 0x36, 0x69, 0x21}} , - {{0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}}, -{{{0x0e, 0xce, 0x43, 0x28, 0x4e, 0xa1, 0xc5, 0x83, 0x5f, 0xa4, 0xd7, 0x15, 0x45, 0x8e, 0x0d, 0x08, 0xac, 0xe7, 0x33, 0x18, 0x7d, 0x3b, 0x04, 0x3d, 0x6c, 0x04, 0x5a, 0x9f, 0x4c, 0x38, 0xab, 0x36}} , - {{0xc9, 0xa3, 0xf8, 0x6a, 0xae, 0x46, 0x5f, 0x0e, 0x56, 0x51, 0x38, 0x64, 0x51, 0x0f, 0x39, 0x97, 0x56, 0x1f, 0xa2, 0xc9, 0xe8, 0x5e, 0xa2, 0x1d, 0xc2, 0x29, 0x23, 0x09, 0xf3, 0xcd, 0x60, 0x22}}}, -{{{0x5c, 0xe2, 0xf8, 0xd3, 0x5f, 0x48, 0x62, 0xac, 0x86, 0x48, 0x62, 0x81, 0x19, 0x98, 0x43, 0x63, 0x3a, 0xc8, 0xda, 0x3e, 0x74, 0xae, 0xf4, 0x1f, 0x49, 0x8f, 0x92, 0x22, 0x4a, 0x9c, 0xae, 0x67}} , - {{0xd4, 0xb4, 0xf5, 0x78, 0x48, 0x68, 0xc3, 0x02, 0x04, 0x03, 0x24, 0x67, 0x17, 0xec, 0x16, 0x9f, 0xf7, 0x9e, 0x26, 0x60, 0x8e, 0xa1, 0x26, 0xa1, 0xab, 0x69, 0xee, 0x77, 0xd1, 0xb1, 0x67, 0x12}}}, -{{{0x70, 0xf8, 0xc9, 0xc4, 0x57, 0xa6, 0x3a, 0x49, 0x47, 0x15, 0xce, 0x93, 0xc1, 0x9e, 0x73, 0x1a, 0xf9, 0x20, 0x35, 0x7a, 0xb8, 0xd4, 0x25, 0x83, 0x46, 0xf1, 0xcf, 0x56, 0xdb, 0xa8, 0x3d, 0x20}} , - {{0x2f, 0x11, 0x32, 0xca, 0x61, 0xab, 0x38, 0xdf, 0xf0, 0x0f, 0x2f, 0xea, 0x32, 0x28, 0xf2, 0x4c, 0x6c, 0x71, 0xd5, 0x80, 0x85, 0xb8, 0x0e, 0x47, 0xe1, 0x95, 0x15, 0xcb, 0x27, 0xe8, 0xd0, 0x47}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xc8, 0x84, 0xa5, 0x08, 0xbc, 0xfd, 0x87, 0x3b, 0x99, 0x8b, 0x69, 0x80, 0x7b, 0xc6, 0x3a, 0xeb, 0x93, 0xcf, 0x4e, 0xf8, 0x5c, 0x2d, 0x86, 0x42, 0xb6, 0x71, 0xd7, 0x97, 0x5f, 0xe1, 0x42, 0x67}} , - {{0xb4, 0xb9, 0x37, 0xfc, 0xa9, 0x5b, 0x2f, 0x1e, 0x93, 0xe4, 0x1e, 0x62, 0xfc, 0x3c, 0x78, 0x81, 0x8f, 0xf3, 0x8a, 0x66, 0x09, 0x6f, 0xad, 0x6e, 0x79, 0x73, 0xe5, 0xc9, 0x00, 0x06, 0xd3, 0x21}}}, -{{{0xf8, 0xf9, 0x28, 0x6c, 0x6d, 0x59, 0xb2, 0x59, 0x74, 0x23, 0xbf, 0xe7, 0x33, 0x8d, 0x57, 0x09, 0x91, 0x9c, 0x24, 0x08, 0x15, 0x2b, 0xe2, 0xb8, 0xee, 0x3a, 0xe5, 0x27, 0x06, 0x86, 0xa4, 0x23}} , - {{0xeb, 0x27, 0x67, 0xc1, 0x37, 0xab, 0x7a, 0xd8, 0x27, 0x9c, 0x07, 0x8e, 0xff, 0x11, 0x6a, 0xb0, 0x78, 0x6e, 0xad, 0x3a, 0x2e, 0x0f, 0x98, 0x9f, 0x72, 0xc3, 0x7f, 0x82, 0xf2, 0x96, 0x96, 0x70}}}, -{{{0x81, 0x6b, 0x88, 0xe8, 0x1e, 0xc7, 0x77, 0x96, 0x0e, 0xa1, 0xa9, 0x52, 0xe0, 0xd8, 0x0e, 0x61, 0x9e, 0x79, 0x2d, 0x95, 0x9c, 0x8d, 0x96, 0xe0, 0x06, 0x40, 0x5d, 0x87, 0x28, 0x5f, 0x98, 0x70}} , - {{0xf1, 0x79, 0x7b, 0xed, 0x4f, 0x44, 0xb2, 0xe7, 0x08, 0x0d, 0xc2, 0x08, 0x12, 0xd2, 0x9f, 0xdf, 0xcd, 0x93, 0x20, 0x8a, 0xcf, 0x33, 0xca, 0x6d, 0x89, 0xb9, 0x77, 0xc8, 0x93, 0x1b, 0x4e, 0x60}}}, -{{{0x26, 0x4f, 0x7e, 0x97, 0xf6, 0x40, 0xdd, 0x4f, 0xfc, 0x52, 0x78, 0xf9, 0x90, 0x31, 0x03, 0xe6, 0x7d, 0x56, 0x39, 0x0b, 0x1d, 0x56, 0x82, 0x85, 0xf9, 0x1a, 0x42, 0x17, 0x69, 0x6c, 0xcf, 0x39}} , - {{0x69, 0xd2, 0x06, 0x3a, 0x4f, 0x39, 0x2d, 0xf9, 0x38, 0x40, 0x8c, 0x4c, 0xe7, 0x05, 0x12, 0xb4, 0x78, 0x8b, 0xf8, 0xc0, 0xec, 0x93, 0xde, 0x7a, 0x6b, 0xce, 0x2c, 0xe1, 0x0e, 0xa9, 0x34, 0x44}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x0b, 0xa4, 0x3c, 0xb0, 0x0f, 0x7a, 0x51, 0xf1, 0x78, 0xd6, 0xd9, 0x6a, 0xfd, 0x46, 0xe8, 0xb8, 0xa8, 0x79, 0x1d, 0x87, 0xf9, 0x90, 0xf2, 0x9c, 0x13, 0x29, 0xf8, 0x0b, 0x20, 0x64, 0xfa, 0x05}} , - {{0x26, 0x09, 0xda, 0x17, 0xaf, 0x95, 0xd6, 0xfb, 0x6a, 0x19, 0x0d, 0x6e, 0x5e, 0x12, 0xf1, 0x99, 0x4c, 0xaa, 0xa8, 0x6f, 0x79, 0x86, 0xf4, 0x72, 0x28, 0x00, 0x26, 0xf9, 0xea, 0x9e, 0x19, 0x3d}}}, -{{{0x87, 0xdd, 0xcf, 0xf0, 0x5b, 0x49, 0xa2, 0x5d, 0x40, 0x7a, 0x23, 0x26, 0xa4, 0x7a, 0x83, 0x8a, 0xb7, 0x8b, 0xd2, 0x1a, 0xbf, 0xea, 0x02, 0x24, 0x08, 0x5f, 0x7b, 0xa9, 0xb1, 0xbe, 0x9d, 0x37}} , - {{0xfc, 0x86, 0x4b, 0x08, 0xee, 0xe7, 0xa0, 0xfd, 0x21, 0x45, 0x09, 0x34, 0xc1, 0x61, 0x32, 0x23, 0xfc, 0x9b, 0x55, 0x48, 0x53, 0x99, 0xf7, 0x63, 0xd0, 0x99, 0xce, 0x01, 0xe0, 0x9f, 0xeb, 0x28}}}, -{{{0x47, 0xfc, 0xab, 0x5a, 0x17, 0xf0, 0x85, 0x56, 0x3a, 0x30, 0x86, 0x20, 0x28, 0x4b, 0x8e, 0x44, 0x74, 0x3a, 0x6e, 0x02, 0xf1, 0x32, 0x8f, 0x9f, 0x3f, 0x08, 0x35, 0xe9, 0xca, 0x16, 0x5f, 0x6e}} , - {{0x1c, 0x59, 0x1c, 0x65, 0x5d, 0x34, 0xa4, 0x09, 0xcd, 0x13, 0x9c, 0x70, 0x7d, 0xb1, 0x2a, 0xc5, 0x88, 0xaf, 0x0b, 0x60, 0xc7, 0x9f, 0x34, 0x8d, 0xd6, 0xb7, 0x7f, 0xea, 0x78, 0x65, 0x8d, 0x77}}}, -{{{0x56, 0xa5, 0xc2, 0x0c, 0xdd, 0xbc, 0xb8, 0x20, 0x6d, 0x57, 0x61, 0xb5, 0xfb, 0x78, 0xb5, 0xd4, 0x49, 0x54, 0x90, 0x26, 0xc1, 0xcb, 0xe9, 0xe6, 0xbf, 0xec, 0x1d, 0x4e, 0xed, 0x07, 0x7e, 0x5e}} , - {{0xc7, 0xf6, 0x6c, 0x56, 0x31, 0x20, 0x14, 0x0e, 0xa8, 0xd9, 0x27, 0xc1, 0x9a, 0x3d, 0x1b, 0x7d, 0x0e, 0x26, 0xd3, 0x81, 0xaa, 0xeb, 0xf5, 0x6b, 0x79, 0x02, 0xf1, 0x51, 0x5c, 0x75, 0x55, 0x0f}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x0a, 0x34, 0xcd, 0x82, 0x3c, 0x33, 0x09, 0x54, 0xd2, 0x61, 0x39, 0x30, 0x9b, 0xfd, 0xef, 0x21, 0x26, 0xd4, 0x70, 0xfa, 0xee, 0xf9, 0x31, 0x33, 0x73, 0x84, 0xd0, 0xb3, 0x81, 0xbf, 0xec, 0x2e}} , - {{0xe8, 0x93, 0x8b, 0x00, 0x64, 0xf7, 0x9c, 0xb8, 0x74, 0xe0, 0xe6, 0x49, 0x48, 0x4d, 0x4d, 0x48, 0xb6, 0x19, 0xa1, 0x40, 0xb7, 0xd9, 0x32, 0x41, 0x7c, 0x82, 0x37, 0xa1, 0x2d, 0xdc, 0xd2, 0x54}}}, -{{{0x68, 0x2b, 0x4a, 0x5b, 0xd5, 0xc7, 0x51, 0x91, 0x1d, 0xe1, 0x2a, 0x4b, 0xc4, 0x47, 0xf1, 0xbc, 0x7a, 0xb3, 0xcb, 0xc8, 0xb6, 0x7c, 0xac, 0x90, 0x05, 0xfd, 0xf3, 0xf9, 0x52, 0x3a, 0x11, 0x6b}} , - {{0x3d, 0xc1, 0x27, 0xf3, 0x59, 0x43, 0x95, 0x90, 0xc5, 0x96, 0x79, 0xf5, 0xf4, 0x95, 0x65, 0x29, 0x06, 0x9c, 0x51, 0x05, 0x18, 0xda, 0xb8, 0x2e, 0x79, 0x7e, 0x69, 0x59, 0x71, 0x01, 0xeb, 0x1a}}}, -{{{0x15, 0x06, 0x49, 0xb6, 0x8a, 0x3c, 0xea, 0x2f, 0x34, 0x20, 0x14, 0xc3, 0xaa, 0xd6, 0xaf, 0x2c, 0x3e, 0xbd, 0x65, 0x20, 0xe2, 0x4d, 0x4b, 0x3b, 0xeb, 0x9f, 0x4a, 0xc3, 0xad, 0xa4, 0x3b, 0x60}} , - {{0xbc, 0x58, 0xe6, 0xc0, 0x95, 0x2a, 0x2a, 0x81, 0x9a, 0x7a, 0xf3, 0xd2, 0x06, 0xbe, 0x48, 0xbc, 0x0c, 0xc5, 0x46, 0xe0, 0x6a, 0xd4, 0xac, 0x0f, 0xd9, 0xcc, 0x82, 0x34, 0x2c, 0xaf, 0xdb, 0x1f}}}, -{{{0xf7, 0x17, 0x13, 0xbd, 0xfb, 0xbc, 0xd2, 0xec, 0x45, 0xb3, 0x15, 0x31, 0xe9, 0xaf, 0x82, 0x84, 0x3d, 0x28, 0xc6, 0xfc, 0x11, 0xf5, 0x41, 0xb5, 0x8b, 0xd3, 0x12, 0x76, 0x52, 0xe7, 0x1a, 0x3c}} , - {{0x4e, 0x36, 0x11, 0x07, 0xa2, 0x15, 0x20, 0x51, 0xc4, 0x2a, 0xc3, 0x62, 0x8b, 0x5e, 0x7f, 0xa6, 0x0f, 0xf9, 0x45, 0x85, 0x6c, 0x11, 0x86, 0xb7, 0x7e, 0xe5, 0xd7, 0xf9, 0xc3, 0x91, 0x1c, 0x05}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xea, 0xd6, 0xde, 0x29, 0x3a, 0x00, 0xb9, 0x02, 0x59, 0xcb, 0x26, 0xc4, 0xba, 0x99, 0xb1, 0x97, 0x2f, 0x8e, 0x00, 0x92, 0x26, 0x4f, 0x52, 0xeb, 0x47, 0x1b, 0x89, 0x8b, 0x24, 0xc0, 0x13, 0x7d}} , - {{0xd5, 0x20, 0x5b, 0x80, 0xa6, 0x80, 0x20, 0x95, 0xc3, 0xe9, 0x9f, 0x8e, 0x87, 0x9e, 0x1e, 0x9e, 0x7a, 0xc7, 0xcc, 0x75, 0x6c, 0xa5, 0xf1, 0x91, 0x1a, 0xa8, 0x01, 0x2c, 0xab, 0x76, 0xa9, 0x59}}}, -{{{0xde, 0xc9, 0xb1, 0x31, 0x10, 0x16, 0xaa, 0x35, 0x14, 0x6a, 0xd4, 0xb5, 0x34, 0x82, 0x71, 0xd2, 0x4a, 0x5d, 0x9a, 0x1f, 0x53, 0x26, 0x3c, 0xe5, 0x8e, 0x8d, 0x33, 0x7f, 0xff, 0xa9, 0xd5, 0x17}} , - {{0x89, 0xaf, 0xf6, 0xa4, 0x64, 0xd5, 0x10, 0xe0, 0x1d, 0xad, 0xef, 0x44, 0xbd, 0xda, 0x83, 0xac, 0x7a, 0xa8, 0xf0, 0x1c, 0x07, 0xf9, 0xc3, 0x43, 0x6c, 0x3f, 0xb7, 0xd3, 0x87, 0x22, 0x02, 0x73}}}, -{{{0x64, 0x1d, 0x49, 0x13, 0x2f, 0x71, 0xec, 0x69, 0x87, 0xd0, 0x42, 0xee, 0x13, 0xec, 0xe3, 0xed, 0x56, 0x7b, 0xbf, 0xbd, 0x8c, 0x2f, 0x7d, 0x7b, 0x9d, 0x28, 0xec, 0x8e, 0x76, 0x2f, 0x6f, 0x08}} , - {{0x22, 0xf5, 0x5f, 0x4d, 0x15, 0xef, 0xfc, 0x4e, 0x57, 0x03, 0x36, 0x89, 0xf0, 0xeb, 0x5b, 0x91, 0xd6, 0xe2, 0xca, 0x01, 0xa5, 0xee, 0x52, 0xec, 0xa0, 0x3c, 0x8f, 0x33, 0x90, 0x5a, 0x94, 0x72}}}, -{{{0x8a, 0x4b, 0xe7, 0x38, 0xbc, 0xda, 0xc2, 0xb0, 0x85, 0xe1, 0x4a, 0xfe, 0x2d, 0x44, 0x84, 0xcb, 0x20, 0x6b, 0x2d, 0xbf, 0x11, 0x9c, 0xd7, 0xbe, 0xd3, 0x3e, 0x5f, 0xbf, 0x68, 0xbc, 0xa8, 0x07}} , - {{0x01, 0x89, 0x28, 0x22, 0x6a, 0x78, 0xaa, 0x29, 0x03, 0xc8, 0x74, 0x95, 0x03, 0x3e, 0xdc, 0xbd, 0x07, 0x13, 0xa8, 0xa2, 0x20, 0x2d, 0xb3, 0x18, 0x70, 0x42, 0xfd, 0x7a, 0xc4, 0xd7, 0x49, 0x72}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x02, 0xff, 0x32, 0x2b, 0x5c, 0x93, 0x54, 0x32, 0xe8, 0x57, 0x54, 0x1a, 0x8b, 0x33, 0x60, 0x65, 0xd3, 0x67, 0xa4, 0xc1, 0x26, 0xc4, 0xa4, 0x34, 0x1f, 0x9b, 0xa7, 0xa9, 0xf4, 0xd9, 0x4f, 0x5b}} , - {{0x46, 0x8d, 0xb0, 0x33, 0x54, 0x26, 0x5b, 0x68, 0xdf, 0xbb, 0xc5, 0xec, 0xc2, 0xf9, 0x3c, 0x5a, 0x37, 0xc1, 0x8e, 0x27, 0x47, 0xaa, 0x49, 0x5a, 0xf8, 0xfb, 0x68, 0x04, 0x23, 0xd1, 0xeb, 0x40}}}, -{{{0x65, 0xa5, 0x11, 0x84, 0x8a, 0x67, 0x9d, 0x9e, 0xd1, 0x44, 0x68, 0x7a, 0x34, 0xe1, 0x9f, 0xa3, 0x54, 0xcd, 0x07, 0xca, 0x79, 0x1f, 0x54, 0x2f, 0x13, 0x70, 0x4e, 0xee, 0xa2, 0xfa, 0xe7, 0x5d}} , - {{0x36, 0xec, 0x54, 0xf8, 0xce, 0xe4, 0x85, 0xdf, 0xf6, 0x6f, 0x1d, 0x90, 0x08, 0xbc, 0xe8, 0xc0, 0x92, 0x2d, 0x43, 0x6b, 0x92, 0xa9, 0x8e, 0xab, 0x0a, 0x2e, 0x1c, 0x1e, 0x64, 0x23, 0x9f, 0x2c}}}, -{{{0xa7, 0xd6, 0x2e, 0xd5, 0xcc, 0xd4, 0xcb, 0x5a, 0x3b, 0xa7, 0xf9, 0x46, 0x03, 0x1d, 0xad, 0x2b, 0x34, 0x31, 0x90, 0x00, 0x46, 0x08, 0x82, 0x14, 0xc4, 0xe0, 0x9c, 0xf0, 0xe3, 0x55, 0x43, 0x31}} , - {{0x60, 0xd6, 0xdd, 0x78, 0xe6, 0xd4, 0x22, 0x42, 0x1f, 0x00, 0xf9, 0xb1, 0x6a, 0x63, 0xe2, 0x92, 0x59, 0xd1, 0x1a, 0xb7, 0x00, 0x54, 0x29, 0xc9, 0xc1, 0xf6, 0x6f, 0x7a, 0xc5, 0x3c, 0x5f, 0x65}}}, -{{{0x27, 0x4f, 0xd0, 0x72, 0xb1, 0x11, 0x14, 0x27, 0x15, 0x94, 0x48, 0x81, 0x7e, 0x74, 0xd8, 0x32, 0xd5, 0xd1, 0x11, 0x28, 0x60, 0x63, 0x36, 0x32, 0x37, 0xb5, 0x13, 0x1c, 0xa0, 0x37, 0xe3, 0x74}} , - {{0xf1, 0x25, 0x4e, 0x11, 0x96, 0x67, 0xe6, 0x1c, 0xc2, 0xb2, 0x53, 0xe2, 0xda, 0x85, 0xee, 0xb2, 0x9f, 0x59, 0xf3, 0xba, 0xbd, 0xfa, 0xcf, 0x6e, 0xf9, 0xda, 0xa4, 0xb3, 0x02, 0x8f, 0x64, 0x08}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x34, 0x94, 0xf2, 0x64, 0x54, 0x47, 0x37, 0x07, 0x40, 0x8a, 0x20, 0xba, 0x4a, 0x55, 0xd7, 0x3f, 0x47, 0xba, 0x25, 0x23, 0x14, 0xb0, 0x2c, 0xe8, 0x55, 0xa8, 0xa6, 0xef, 0x51, 0xbd, 0x6f, 0x6a}} , - {{0x71, 0xd6, 0x16, 0x76, 0xb2, 0x06, 0xea, 0x79, 0xf5, 0xc4, 0xc3, 0x52, 0x7e, 0x61, 0xd1, 0xe1, 0xad, 0x70, 0x78, 0x1d, 0x16, 0x11, 0xf8, 0x7c, 0x2b, 0xfc, 0x55, 0x9f, 0x52, 0xf8, 0xf5, 0x16}}}, -{{{0x34, 0x96, 0x9a, 0xf6, 0xc5, 0xe0, 0x14, 0x03, 0x24, 0x0e, 0x4c, 0xad, 0x9e, 0x9a, 0x70, 0x23, 0x96, 0xb2, 0xf1, 0x2e, 0x9d, 0xc3, 0x32, 0x9b, 0x54, 0xa5, 0x73, 0xde, 0x88, 0xb1, 0x3e, 0x24}} , - {{0xf6, 0xe2, 0x4c, 0x1f, 0x5b, 0xb2, 0xaf, 0x82, 0xa5, 0xcf, 0x81, 0x10, 0x04, 0xef, 0xdb, 0xa2, 0xcc, 0x24, 0xb2, 0x7e, 0x0b, 0x7a, 0xeb, 0x01, 0xd8, 0x52, 0xf4, 0x51, 0x89, 0x29, 0x79, 0x37}}}, -{{{0x74, 0xde, 0x12, 0xf3, 0x68, 0xb7, 0x66, 0xc3, 0xee, 0x68, 0xdc, 0x81, 0xb5, 0x55, 0x99, 0xab, 0xd9, 0x28, 0x63, 0x6d, 0x8b, 0x40, 0x69, 0x75, 0x6c, 0xcd, 0x5c, 0x2a, 0x7e, 0x32, 0x7b, 0x29}} , - {{0x02, 0xcc, 0x22, 0x74, 0x4d, 0x19, 0x07, 0xc0, 0xda, 0xb5, 0x76, 0x51, 0x2a, 0xaa, 0xa6, 0x0a, 0x5f, 0x26, 0xd4, 0xbc, 0xaf, 0x48, 0x88, 0x7f, 0x02, 0xbc, 0xf2, 0xe1, 0xcf, 0xe9, 0xdd, 0x15}}}, -{{{0xed, 0xb5, 0x9a, 0x8c, 0x9a, 0xdd, 0x27, 0xf4, 0x7f, 0x47, 0xd9, 0x52, 0xa7, 0xcd, 0x65, 0xa5, 0x31, 0x22, 0xed, 0xa6, 0x63, 0x5b, 0x80, 0x4a, 0xad, 0x4d, 0xed, 0xbf, 0xee, 0x49, 0xb3, 0x06}} , - {{0xf8, 0x64, 0x8b, 0x60, 0x90, 0xe9, 0xde, 0x44, 0x77, 0xb9, 0x07, 0x36, 0x32, 0xc2, 0x50, 0xf5, 0x65, 0xdf, 0x48, 0x4c, 0x37, 0xaa, 0x68, 0xab, 0x9a, 0x1f, 0x3e, 0xff, 0x89, 0x92, 0xa0, 0x07}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x7d, 0x4f, 0x9c, 0x19, 0xc0, 0x4a, 0x31, 0xec, 0xf9, 0xaa, 0xeb, 0xb2, 0x16, 0x9c, 0xa3, 0x66, 0x5f, 0xd1, 0xd4, 0xed, 0xb8, 0x92, 0x1c, 0xab, 0xda, 0xea, 0xd9, 0x57, 0xdf, 0x4c, 0x2a, 0x48}} , - {{0x4b, 0xb0, 0x4e, 0x6e, 0x11, 0x3b, 0x51, 0xbd, 0x6a, 0xfd, 0xe4, 0x25, 0xa5, 0x5f, 0x11, 0x3f, 0x98, 0x92, 0x51, 0x14, 0xc6, 0x5f, 0x3c, 0x0b, 0xa8, 0xf7, 0xc2, 0x81, 0x43, 0xde, 0x91, 0x73}}}, -{{{0x3c, 0x8f, 0x9f, 0x33, 0x2a, 0x1f, 0x43, 0x33, 0x8f, 0x68, 0xff, 0x1f, 0x3d, 0x73, 0x6b, 0xbf, 0x68, 0xcc, 0x7d, 0x13, 0x6c, 0x24, 0x4b, 0xcc, 0x4d, 0x24, 0x0d, 0xfe, 0xde, 0x86, 0xad, 0x3b}} , - {{0x79, 0x51, 0x81, 0x01, 0xdc, 0x73, 0x53, 0xe0, 0x6e, 0x9b, 0xea, 0x68, 0x3f, 0x5c, 0x14, 0x84, 0x53, 0x8d, 0x4b, 0xc0, 0x9f, 0x9f, 0x89, 0x2b, 0x8c, 0xba, 0x86, 0xfa, 0xf2, 0xcd, 0xe3, 0x2d}}}, -{{{0x06, 0xf9, 0x29, 0x5a, 0xdb, 0x3d, 0x84, 0x52, 0xab, 0xcc, 0x6b, 0x60, 0x9d, 0xb7, 0x4a, 0x0e, 0x36, 0x63, 0x91, 0xad, 0xa0, 0x95, 0xb0, 0x97, 0x89, 0x4e, 0xcf, 0x7d, 0x3c, 0xe5, 0x7c, 0x28}} , - {{0x2e, 0x69, 0x98, 0xfd, 0xc6, 0xbd, 0xcc, 0xca, 0xdf, 0x9a, 0x44, 0x7e, 0x9d, 0xca, 0x89, 0x6d, 0xbf, 0x27, 0xc2, 0xf8, 0xcd, 0x46, 0x00, 0x2b, 0xb5, 0x58, 0x4e, 0xb7, 0x89, 0x09, 0xe9, 0x2d}}}, -{{{0x54, 0xbe, 0x75, 0xcb, 0x05, 0xb0, 0x54, 0xb7, 0xe7, 0x26, 0x86, 0x4a, 0xfc, 0x19, 0xcf, 0x27, 0x46, 0xd4, 0x22, 0x96, 0x5a, 0x11, 0xe8, 0xd5, 0x1b, 0xed, 0x71, 0xc5, 0x5d, 0xc8, 0xaf, 0x45}} , - {{0x40, 0x7b, 0x77, 0x57, 0x49, 0x9e, 0x80, 0x39, 0x23, 0xee, 0x81, 0x0b, 0x22, 0xcf, 0xdb, 0x7a, 0x2f, 0x14, 0xb8, 0x57, 0x8f, 0xa1, 0x39, 0x1e, 0x77, 0xfc, 0x0b, 0xa6, 0xbf, 0x8a, 0x0c, 0x6c}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x77, 0x3a, 0xd4, 0xd8, 0x27, 0xcf, 0xe8, 0xa1, 0x72, 0x9d, 0xca, 0xdd, 0x0d, 0x96, 0xda, 0x79, 0xed, 0x56, 0x42, 0x15, 0x60, 0xc7, 0x1c, 0x6b, 0x26, 0x30, 0xf6, 0x6a, 0x95, 0x67, 0xf3, 0x0a}} , - {{0xc5, 0x08, 0xa4, 0x2b, 0x2f, 0xbd, 0x31, 0x81, 0x2a, 0xa6, 0xb6, 0xe4, 0x00, 0x91, 0xda, 0x3d, 0xb2, 0xb0, 0x96, 0xce, 0x8a, 0xd2, 0x8d, 0x70, 0xb3, 0xd3, 0x34, 0x01, 0x90, 0x8d, 0x10, 0x21}}}, -{{{0x33, 0x0d, 0xe7, 0xba, 0x4f, 0x07, 0xdf, 0x8d, 0xea, 0x7d, 0xa0, 0xc5, 0xd6, 0xb1, 0xb0, 0xe5, 0x57, 0x1b, 0x5b, 0xf5, 0x45, 0x13, 0x14, 0x64, 0x5a, 0xeb, 0x5c, 0xfc, 0x54, 0x01, 0x76, 0x2b}} , - {{0x02, 0x0c, 0xc2, 0xaf, 0x96, 0x36, 0xfe, 0x4a, 0xe2, 0x54, 0x20, 0x6a, 0xeb, 0xb2, 0x9f, 0x62, 0xd7, 0xce, 0xa2, 0x3f, 0x20, 0x11, 0x34, 0x37, 0xe0, 0x42, 0xed, 0x6f, 0xf9, 0x1a, 0xc8, 0x7d}}}, -{{{0xd8, 0xb9, 0x11, 0xe8, 0x36, 0x3f, 0x42, 0xc1, 0xca, 0xdc, 0xd3, 0xf1, 0xc8, 0x23, 0x3d, 0x4f, 0x51, 0x7b, 0x9d, 0x8d, 0xd8, 0xe4, 0xa0, 0xaa, 0xf3, 0x04, 0xd6, 0x11, 0x93, 0xc8, 0x35, 0x45}} , - {{0x61, 0x36, 0xd6, 0x08, 0x90, 0xbf, 0xa7, 0x7a, 0x97, 0x6c, 0x0f, 0x84, 0xd5, 0x33, 0x2d, 0x37, 0xc9, 0x6a, 0x80, 0x90, 0x3d, 0x0a, 0xa2, 0xaa, 0xe1, 0xb8, 0x84, 0xba, 0x61, 0x36, 0xdd, 0x69}}}, -{{{0x6b, 0xdb, 0x5b, 0x9c, 0xc6, 0x92, 0xbc, 0x23, 0xaf, 0xc5, 0xb8, 0x75, 0xf8, 0x42, 0xfa, 0xd6, 0xb6, 0x84, 0x94, 0x63, 0x98, 0x93, 0x48, 0x78, 0x38, 0xcd, 0xbb, 0x18, 0x34, 0xc3, 0xdb, 0x67}} , - {{0x96, 0xf3, 0x3a, 0x09, 0x56, 0xb0, 0x6f, 0x7c, 0x51, 0x1e, 0x1b, 0x39, 0x48, 0xea, 0xc9, 0x0c, 0x25, 0xa2, 0x7a, 0xca, 0xe7, 0x92, 0xfc, 0x59, 0x30, 0xa3, 0x89, 0x85, 0xdf, 0x6f, 0x43, 0x38}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x79, 0x84, 0x44, 0x19, 0xbd, 0xe9, 0x54, 0xc4, 0xc0, 0x6e, 0x2a, 0xa8, 0xa8, 0x9b, 0x43, 0xd5, 0x71, 0x22, 0x5f, 0xdc, 0x01, 0xfa, 0xdf, 0xb3, 0xb8, 0x47, 0x4b, 0x0a, 0xa5, 0x44, 0xea, 0x29}} , - {{0x05, 0x90, 0x50, 0xaf, 0x63, 0x5f, 0x9d, 0x9e, 0xe1, 0x9d, 0x38, 0x97, 0x1f, 0x6c, 0xac, 0x30, 0x46, 0xb2, 0x6a, 0x19, 0xd1, 0x4b, 0xdb, 0xbb, 0x8c, 0xda, 0x2e, 0xab, 0xc8, 0x5a, 0x77, 0x6c}}}, -{{{0x2b, 0xbe, 0xaf, 0xa1, 0x6d, 0x2f, 0x0b, 0xb1, 0x8f, 0xe3, 0xe0, 0x38, 0xcd, 0x0b, 0x41, 0x1b, 0x4a, 0x15, 0x07, 0xf3, 0x6f, 0xdc, 0xb8, 0xe9, 0xde, 0xb2, 0xa3, 0x40, 0x01, 0xa6, 0x45, 0x1e}} , - {{0x76, 0x0a, 0xda, 0x8d, 0x2c, 0x07, 0x3f, 0x89, 0x7d, 0x04, 0xad, 0x43, 0x50, 0x6e, 0xd2, 0x47, 0xcb, 0x8a, 0xe6, 0x85, 0x1a, 0x24, 0xf3, 0xd2, 0x60, 0xfd, 0xdf, 0x73, 0xa4, 0x0d, 0x73, 0x0e}}}, -{{{0xfd, 0x67, 0x6b, 0x71, 0x9b, 0x81, 0x53, 0x39, 0x39, 0xf4, 0xb8, 0xd5, 0xc3, 0x30, 0x9b, 0x3b, 0x7c, 0xa3, 0xf0, 0xd0, 0x84, 0x21, 0xd6, 0xbf, 0xb7, 0x4c, 0x87, 0x13, 0x45, 0x2d, 0xa7, 0x55}} , - {{0x5d, 0x04, 0xb3, 0x40, 0x28, 0x95, 0x2d, 0x30, 0x83, 0xec, 0x5e, 0xe4, 0xff, 0x75, 0xfe, 0x79, 0x26, 0x9d, 0x1d, 0x36, 0xcd, 0x0a, 0x15, 0xd2, 0x24, 0x14, 0x77, 0x71, 0xd7, 0x8a, 0x1b, 0x04}}}, -{{{0x5d, 0x93, 0xc9, 0xbe, 0xaa, 0x90, 0xcd, 0x9b, 0xfb, 0x73, 0x7e, 0xb0, 0x64, 0x98, 0x57, 0x44, 0x42, 0x41, 0xb1, 0xaf, 0xea, 0xc1, 0xc3, 0x22, 0xff, 0x60, 0x46, 0xcb, 0x61, 0x81, 0x70, 0x61}} , - {{0x0d, 0x82, 0xb9, 0xfe, 0x21, 0xcd, 0xc4, 0xf5, 0x98, 0x0c, 0x4e, 0x72, 0xee, 0x87, 0x49, 0xf8, 0xa1, 0x95, 0xdf, 0x8f, 0x2d, 0xbd, 0x21, 0x06, 0x7c, 0x15, 0xe8, 0x12, 0x6d, 0x93, 0xd6, 0x38}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x91, 0xf7, 0x51, 0xd9, 0xef, 0x7d, 0x42, 0x01, 0x13, 0xe9, 0xb8, 0x7f, 0xa6, 0x49, 0x17, 0x64, 0x21, 0x80, 0x83, 0x2c, 0x63, 0x4c, 0x60, 0x09, 0x59, 0x91, 0x92, 0x77, 0x39, 0x51, 0xf4, 0x48}} , - {{0x60, 0xd5, 0x22, 0x83, 0x08, 0x2f, 0xff, 0x99, 0x3e, 0x69, 0x6d, 0x88, 0xda, 0xe7, 0x5b, 0x52, 0x26, 0x31, 0x2a, 0xe5, 0x89, 0xde, 0x68, 0x90, 0xb6, 0x22, 0x5a, 0xbd, 0xd3, 0x85, 0x53, 0x31}}}, -{{{0xd8, 0xce, 0xdc, 0xf9, 0x3c, 0x4b, 0xa2, 0x1d, 0x2c, 0x2f, 0x36, 0xbe, 0x7a, 0xfc, 0xcd, 0xbc, 0xdc, 0xf9, 0x30, 0xbd, 0xff, 0x05, 0xc7, 0xe4, 0x8e, 0x17, 0x62, 0xf8, 0x4d, 0xa0, 0x56, 0x79}} , - {{0x82, 0xe7, 0xf6, 0xba, 0x53, 0x84, 0x0a, 0xa3, 0x34, 0xff, 0x3c, 0xa3, 0x6a, 0xa1, 0x37, 0xea, 0xdd, 0xb6, 0x95, 0xb3, 0x78, 0x19, 0x76, 0x1e, 0x55, 0x2f, 0x77, 0x2e, 0x7f, 0xc1, 0xea, 0x5e}}}, -{{{0x83, 0xe1, 0x6e, 0xa9, 0x07, 0x33, 0x3e, 0x83, 0xff, 0xcb, 0x1c, 0x9f, 0xb1, 0xa3, 0xb4, 0xc9, 0xe1, 0x07, 0x97, 0xff, 0xf8, 0x23, 0x8f, 0xce, 0x40, 0xfd, 0x2e, 0x5e, 0xdb, 0x16, 0x43, 0x2d}} , - {{0xba, 0x38, 0x02, 0xf7, 0x81, 0x43, 0x83, 0xa3, 0x20, 0x4f, 0x01, 0x3b, 0x8a, 0x04, 0x38, 0x31, 0xc6, 0x0f, 0xc8, 0xdf, 0xd7, 0xfa, 0x2f, 0x88, 0x3f, 0xfc, 0x0c, 0x76, 0xc4, 0xa6, 0x45, 0x72}}}, -{{{0xbb, 0x0c, 0xbc, 0x6a, 0xa4, 0x97, 0x17, 0x93, 0x2d, 0x6f, 0xde, 0x72, 0x10, 0x1c, 0x08, 0x2c, 0x0f, 0x80, 0x32, 0x68, 0x27, 0xd4, 0xab, 0xdd, 0xc5, 0x58, 0x61, 0x13, 0x6d, 0x11, 0x1e, 0x4d}} , - {{0x1a, 0xb9, 0xc9, 0x10, 0xfb, 0x1e, 0x4e, 0xf4, 0x84, 0x4b, 0x8a, 0x5e, 0x7b, 0x4b, 0xe8, 0x43, 0x8c, 0x8f, 0x00, 0xb5, 0x54, 0x13, 0xc5, 0x5c, 0xb6, 0x35, 0x4e, 0x9d, 0xe4, 0x5b, 0x41, 0x6d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x15, 0x7d, 0x12, 0x48, 0x82, 0x14, 0x42, 0xcd, 0x32, 0xd4, 0x4b, 0xc1, 0x72, 0x61, 0x2a, 0x8c, 0xec, 0xe2, 0xf8, 0x24, 0x45, 0x94, 0xe3, 0xbe, 0xdd, 0x67, 0xa8, 0x77, 0x5a, 0xae, 0x5b, 0x4b}} , - {{0xcb, 0x77, 0x9a, 0x20, 0xde, 0xb8, 0x23, 0xd9, 0xa0, 0x0f, 0x8c, 0x7b, 0xa5, 0xcb, 0xae, 0xb6, 0xec, 0x42, 0x67, 0x0e, 0x58, 0xa4, 0x75, 0x98, 0x21, 0x71, 0x84, 0xb3, 0xe0, 0x76, 0x94, 0x73}}}, -{{{0xdf, 0xfc, 0x69, 0x28, 0x23, 0x3f, 0x5b, 0xf8, 0x3b, 0x24, 0x37, 0xf3, 0x1d, 0xd5, 0x22, 0x6b, 0xd0, 0x98, 0xa8, 0x6c, 0xcf, 0xff, 0x06, 0xe1, 0x13, 0xdf, 0xb9, 0xc1, 0x0c, 0xa9, 0xbf, 0x33}} , - {{0xd9, 0x81, 0xda, 0xb2, 0x4f, 0x82, 0x9d, 0x43, 0x81, 0x09, 0xf1, 0xd2, 0x01, 0xef, 0xac, 0xf4, 0x2d, 0x7d, 0x01, 0x09, 0xf1, 0xff, 0xa5, 0x9f, 0xe5, 0xca, 0x27, 0x63, 0xdb, 0x20, 0xb1, 0x53}}}, -{{{0x67, 0x02, 0xe8, 0xad, 0xa9, 0x34, 0xd4, 0xf0, 0x15, 0x81, 0xaa, 0xc7, 0x4d, 0x87, 0x94, 0xea, 0x75, 0xe7, 0x4c, 0x94, 0x04, 0x0e, 0x69, 0x87, 0xe7, 0x51, 0x91, 0x10, 0x03, 0xc7, 0xbe, 0x56}} , - {{0x32, 0xfb, 0x86, 0xec, 0x33, 0x6b, 0x2e, 0x51, 0x2b, 0xc8, 0xfa, 0x6c, 0x70, 0x47, 0x7e, 0xce, 0x05, 0x0c, 0x71, 0xf3, 0xb4, 0x56, 0xa6, 0xdc, 0xcc, 0x78, 0x07, 0x75, 0xd0, 0xdd, 0xb2, 0x6a}}}, -{{{0xc6, 0xef, 0xb9, 0xc0, 0x2b, 0x22, 0x08, 0x1e, 0x71, 0x70, 0xb3, 0x35, 0x9c, 0x7a, 0x01, 0x92, 0x44, 0x9a, 0xf6, 0xb0, 0x58, 0x95, 0xc1, 0x9b, 0x02, 0xed, 0x2d, 0x7c, 0x34, 0x29, 0x49, 0x44}} , - {{0x45, 0x62, 0x1d, 0x2e, 0xff, 0x2a, 0x1c, 0x21, 0xa4, 0x25, 0x7b, 0x0d, 0x8c, 0x15, 0x39, 0xfc, 0x8f, 0x7c, 0xa5, 0x7d, 0x1e, 0x25, 0xa3, 0x45, 0xd6, 0xab, 0xbd, 0xcb, 0xc5, 0x5e, 0x78, 0x77}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xd0, 0xd3, 0x42, 0xed, 0x1d, 0x00, 0x3c, 0x15, 0x2c, 0x9c, 0x77, 0x81, 0xd2, 0x73, 0xd1, 0x06, 0xd5, 0xc4, 0x7f, 0x94, 0xbb, 0x92, 0x2d, 0x2c, 0x4b, 0x45, 0x4b, 0xe9, 0x2a, 0x89, 0x6b, 0x2b}} , - {{0xd2, 0x0c, 0x88, 0xc5, 0x48, 0x4d, 0xea, 0x0d, 0x4a, 0xc9, 0x52, 0x6a, 0x61, 0x79, 0xe9, 0x76, 0xf3, 0x85, 0x52, 0x5c, 0x1b, 0x2c, 0xe1, 0xd6, 0xc4, 0x0f, 0x18, 0x0e, 0x4e, 0xf6, 0x1c, 0x7f}}}, -{{{0xb4, 0x04, 0x2e, 0x42, 0xcb, 0x1f, 0x2b, 0x11, 0x51, 0x7b, 0x08, 0xac, 0xaa, 0x3e, 0x9e, 0x52, 0x60, 0xb7, 0xc2, 0x61, 0x57, 0x8c, 0x84, 0xd5, 0x18, 0xa6, 0x19, 0xfc, 0xb7, 0x75, 0x91, 0x1b}} , - {{0xe8, 0x68, 0xca, 0x44, 0xc8, 0x38, 0x38, 0xcc, 0x53, 0x0a, 0x32, 0x35, 0xcc, 0x52, 0xcb, 0x0e, 0xf7, 0xc5, 0xe7, 0xec, 0x3d, 0x85, 0xcc, 0x58, 0xe2, 0x17, 0x47, 0xff, 0x9f, 0xa5, 0x30, 0x17}}}, -{{{0xe3, 0xae, 0xc8, 0xc1, 0x71, 0x75, 0x31, 0x00, 0x37, 0x41, 0x5c, 0x0e, 0x39, 0xda, 0x73, 0xa0, 0xc7, 0x97, 0x36, 0x6c, 0x5b, 0xf2, 0xee, 0x64, 0x0a, 0x3d, 0x89, 0x1e, 0x1d, 0x49, 0x8c, 0x37}} , - {{0x4c, 0xe6, 0xb0, 0xc1, 0xa5, 0x2a, 0x82, 0x09, 0x08, 0xad, 0x79, 0x9c, 0x56, 0xf6, 0xf9, 0xc1, 0xd7, 0x7c, 0x39, 0x7f, 0x93, 0xca, 0x11, 0x55, 0xbf, 0x07, 0x1b, 0x82, 0x29, 0x69, 0x95, 0x5c}}}, -{{{0x87, 0xee, 0xa6, 0x56, 0x9e, 0xc2, 0x9a, 0x56, 0x24, 0x42, 0x85, 0x4d, 0x98, 0x31, 0x1e, 0x60, 0x4d, 0x87, 0x85, 0x04, 0xae, 0x46, 0x12, 0xf9, 0x8e, 0x7f, 0xe4, 0x7f, 0xf6, 0x1c, 0x37, 0x01}} , - {{0x73, 0x4c, 0xb6, 0xc5, 0xc4, 0xe9, 0x6c, 0x85, 0x48, 0x4a, 0x5a, 0xac, 0xd9, 0x1f, 0x43, 0xf8, 0x62, 0x5b, 0xee, 0x98, 0x2a, 0x33, 0x8e, 0x79, 0xce, 0x61, 0x06, 0x35, 0xd8, 0xd7, 0xca, 0x71}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x72, 0xd3, 0xae, 0xa6, 0xca, 0x8f, 0xcd, 0xcc, 0x78, 0x8e, 0x19, 0x4d, 0xa7, 0xd2, 0x27, 0xe9, 0xa4, 0x3c, 0x16, 0x5b, 0x84, 0x80, 0xf9, 0xd0, 0xcc, 0x6a, 0x1e, 0xca, 0x1e, 0x67, 0xbd, 0x63}} , - {{0x7b, 0x6e, 0x2a, 0xd2, 0x87, 0x48, 0xff, 0xa1, 0xca, 0xe9, 0x15, 0x85, 0xdc, 0xdb, 0x2c, 0x39, 0x12, 0x91, 0xa9, 0x20, 0xaa, 0x4f, 0x29, 0xf4, 0x15, 0x7a, 0xd2, 0xf5, 0x32, 0xcc, 0x60, 0x04}}}, -{{{0xe5, 0x10, 0x47, 0x3b, 0xfa, 0x90, 0xfc, 0x30, 0xb5, 0xea, 0x6f, 0x56, 0x8f, 0xfb, 0x0e, 0xa7, 0x3b, 0xc8, 0xb2, 0xff, 0x02, 0x7a, 0x33, 0x94, 0x93, 0x2a, 0x03, 0xe0, 0x96, 0x3a, 0x6c, 0x0f}} , - {{0x5a, 0x63, 0x67, 0xe1, 0x9b, 0x47, 0x78, 0x9f, 0x38, 0x79, 0xac, 0x97, 0x66, 0x1d, 0x5e, 0x51, 0xee, 0x24, 0x42, 0xe8, 0x58, 0x4b, 0x8a, 0x03, 0x75, 0x86, 0x37, 0x86, 0xe2, 0x97, 0x4e, 0x3d}}}, -{{{0x3f, 0x75, 0x8e, 0xb4, 0xff, 0xd8, 0xdd, 0xd6, 0x37, 0x57, 0x9d, 0x6d, 0x3b, 0xbd, 0xd5, 0x60, 0x88, 0x65, 0x9a, 0xb9, 0x4a, 0x68, 0x84, 0xa2, 0x67, 0xdd, 0x17, 0x25, 0x97, 0x04, 0x8b, 0x5e}} , - {{0xbb, 0x40, 0x5e, 0xbc, 0x16, 0x92, 0x05, 0xc4, 0xc0, 0x4e, 0x72, 0x90, 0x0e, 0xab, 0xcf, 0x8a, 0xed, 0xef, 0xb9, 0x2d, 0x3b, 0xf8, 0x43, 0x5b, 0xba, 0x2d, 0xeb, 0x2f, 0x52, 0xd2, 0xd1, 0x5a}}}, -{{{0x40, 0xb4, 0xab, 0xe6, 0xad, 0x9f, 0x46, 0x69, 0x4a, 0xb3, 0x8e, 0xaa, 0xea, 0x9c, 0x8a, 0x20, 0x16, 0x5d, 0x8c, 0x13, 0xbd, 0xf6, 0x1d, 0xc5, 0x24, 0xbd, 0x90, 0x2a, 0x1c, 0xc7, 0x13, 0x3b}} , - {{0x54, 0xdc, 0x16, 0x0d, 0x18, 0xbe, 0x35, 0x64, 0x61, 0x52, 0x02, 0x80, 0xaf, 0x05, 0xf7, 0xa6, 0x42, 0xd3, 0x8f, 0x2e, 0x79, 0x26, 0xa8, 0xbb, 0xb2, 0x17, 0x48, 0xb2, 0x7a, 0x0a, 0x89, 0x14}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x20, 0xa8, 0x88, 0xe3, 0x91, 0xc0, 0x6e, 0xbb, 0x8a, 0x27, 0x82, 0x51, 0x83, 0xb2, 0x28, 0xa9, 0x83, 0xeb, 0xa6, 0xa9, 0x4d, 0x17, 0x59, 0x22, 0x54, 0x00, 0x50, 0x45, 0xcb, 0x48, 0x4b, 0x18}} , - {{0x33, 0x7c, 0xe7, 0x26, 0xba, 0x4d, 0x32, 0xfe, 0x53, 0xf4, 0xfa, 0x83, 0xe3, 0xa5, 0x79, 0x66, 0x73, 0xef, 0x80, 0x23, 0x68, 0xc2, 0x60, 0xdd, 0xa9, 0x33, 0xdc, 0x03, 0x7a, 0xe0, 0xe0, 0x3e}}}, -{{{0x34, 0x5c, 0x13, 0xfb, 0xc0, 0xe3, 0x78, 0x2b, 0x54, 0x58, 0x22, 0x9b, 0x76, 0x81, 0x7f, 0x93, 0x9c, 0x25, 0x3c, 0xd2, 0xe9, 0x96, 0x21, 0x26, 0x08, 0xf5, 0xed, 0x95, 0x11, 0xae, 0x04, 0x5a}} , - {{0xb9, 0xe8, 0xc5, 0x12, 0x97, 0x1f, 0x83, 0xfe, 0x3e, 0x94, 0x99, 0xd4, 0x2d, 0xf9, 0x52, 0x59, 0x5c, 0x82, 0xa6, 0xf0, 0x75, 0x7e, 0xe8, 0xec, 0xcc, 0xac, 0x18, 0x21, 0x09, 0x67, 0x66, 0x67}}}, -{{{0xb3, 0x40, 0x29, 0xd1, 0xcb, 0x1b, 0x08, 0x9e, 0x9c, 0xb7, 0x53, 0xb9, 0x3b, 0x71, 0x08, 0x95, 0x12, 0x1a, 0x58, 0xaf, 0x7e, 0x82, 0x52, 0x43, 0x4f, 0x11, 0x39, 0xf4, 0x93, 0x1a, 0x26, 0x05}} , - {{0x6e, 0x44, 0xa3, 0xf9, 0x64, 0xaf, 0xe7, 0x6d, 0x7d, 0xdf, 0x1e, 0xac, 0x04, 0xea, 0x3b, 0x5f, 0x9b, 0xe8, 0x24, 0x9d, 0x0e, 0xe5, 0x2e, 0x3e, 0xdf, 0xa9, 0xf7, 0xd4, 0x50, 0x71, 0xf0, 0x78}}}, -{{{0x3e, 0xa8, 0x38, 0xc2, 0x57, 0x56, 0x42, 0x9a, 0xb1, 0xe2, 0xf8, 0x45, 0xaa, 0x11, 0x48, 0x5f, 0x17, 0xc4, 0x54, 0x27, 0xdc, 0x5d, 0xaa, 0xdd, 0x41, 0xbc, 0xdf, 0x81, 0xb9, 0x53, 0xee, 0x52}} , - {{0xc3, 0xf1, 0xa7, 0x6d, 0xb3, 0x5f, 0x92, 0x6f, 0xcc, 0x91, 0xb8, 0x95, 0x05, 0xdf, 0x3c, 0x64, 0x57, 0x39, 0x61, 0x51, 0xad, 0x8c, 0x38, 0x7b, 0xc8, 0xde, 0x00, 0x34, 0xbe, 0xa1, 0xb0, 0x7e}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x25, 0x24, 0x1d, 0x8a, 0x67, 0x20, 0xee, 0x42, 0xeb, 0x38, 0xed, 0x0b, 0x8b, 0xcd, 0x46, 0x9d, 0x5e, 0x6b, 0x1e, 0x24, 0x9d, 0x12, 0x05, 0x1a, 0xcc, 0x05, 0x4e, 0x92, 0x38, 0xe1, 0x1f, 0x50}} , - {{0x4e, 0xee, 0x1c, 0x91, 0xe6, 0x11, 0xbd, 0x8e, 0x55, 0x1a, 0x18, 0x75, 0x66, 0xaf, 0x4d, 0x7b, 0x0f, 0xae, 0x6d, 0x85, 0xca, 0x82, 0x58, 0x21, 0x9c, 0x18, 0xe0, 0xed, 0xec, 0x22, 0x80, 0x2f}}}, -{{{0x68, 0x3b, 0x0a, 0x39, 0x1d, 0x6a, 0x15, 0x57, 0xfc, 0xf0, 0x63, 0x54, 0xdb, 0x39, 0xdb, 0xe8, 0x5c, 0x64, 0xff, 0xa0, 0x09, 0x4f, 0x3b, 0xb7, 0x32, 0x60, 0x99, 0x94, 0xfd, 0x94, 0x82, 0x2d}} , - {{0x24, 0xf6, 0x5a, 0x44, 0xf1, 0x55, 0x2c, 0xdb, 0xea, 0x7c, 0x84, 0x7c, 0x01, 0xac, 0xe3, 0xfd, 0xc9, 0x27, 0xc1, 0x5a, 0xb9, 0xde, 0x4f, 0x5a, 0x90, 0xdd, 0xc6, 0x67, 0xaa, 0x6f, 0x8a, 0x3a}}}, -{{{0x78, 0x52, 0x87, 0xc9, 0x97, 0x63, 0xb1, 0xdd, 0x54, 0x5f, 0xc1, 0xf8, 0xf1, 0x06, 0xa6, 0xa8, 0xa3, 0x88, 0x82, 0xd4, 0xcb, 0xa6, 0x19, 0xdd, 0xd1, 0x11, 0x87, 0x08, 0x17, 0x4c, 0x37, 0x2a}} , - {{0xa1, 0x0c, 0xf3, 0x08, 0x43, 0xd9, 0x24, 0x1e, 0x83, 0xa7, 0xdf, 0x91, 0xca, 0xbd, 0x69, 0x47, 0x8d, 0x1b, 0xe2, 0xb9, 0x4e, 0xb5, 0xe1, 0x76, 0xb3, 0x1c, 0x93, 0x03, 0xce, 0x5f, 0xb3, 0x5a}}}, -{{{0x1d, 0xda, 0xe4, 0x61, 0x03, 0x50, 0xa9, 0x8b, 0x68, 0x18, 0xef, 0xb2, 0x1c, 0x84, 0x3b, 0xa2, 0x44, 0x95, 0xa3, 0x04, 0x3b, 0xd6, 0x99, 0x00, 0xaf, 0x76, 0x42, 0x67, 0x02, 0x7d, 0x85, 0x56}} , - {{0xce, 0x72, 0x0e, 0x29, 0x84, 0xb2, 0x7d, 0xd2, 0x45, 0xbe, 0x57, 0x06, 0xed, 0x7f, 0xcf, 0xed, 0xcd, 0xef, 0x19, 0xd6, 0xbc, 0x15, 0x79, 0x64, 0xd2, 0x18, 0xe3, 0x20, 0x67, 0x3a, 0x54, 0x0b}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x52, 0xfd, 0x04, 0xc5, 0xfb, 0x99, 0xe7, 0xe8, 0xfb, 0x8c, 0xe1, 0x42, 0x03, 0xef, 0x9d, 0xd9, 0x9e, 0x4d, 0xf7, 0x80, 0xcf, 0x2e, 0xcc, 0x9b, 0x45, 0xc9, 0x7b, 0x7a, 0xbc, 0x37, 0xa8, 0x52}} , - {{0x96, 0x11, 0x41, 0x8a, 0x47, 0x91, 0xfe, 0xb6, 0xda, 0x7a, 0x54, 0x63, 0xd1, 0x14, 0x35, 0x05, 0x86, 0x8c, 0xa9, 0x36, 0x3f, 0xf2, 0x85, 0x54, 0x4e, 0x92, 0xd8, 0x85, 0x01, 0x46, 0xd6, 0x50}}}, -{{{0x53, 0xcd, 0xf3, 0x86, 0x40, 0xe6, 0x39, 0x42, 0x95, 0xd6, 0xcb, 0x45, 0x1a, 0x20, 0xc8, 0x45, 0x4b, 0x32, 0x69, 0x04, 0xb1, 0xaf, 0x20, 0x46, 0xc7, 0x6b, 0x23, 0x5b, 0x69, 0xee, 0x30, 0x3f}} , - {{0x70, 0x83, 0x47, 0xc0, 0xdb, 0x55, 0x08, 0xa8, 0x7b, 0x18, 0x6d, 0xf5, 0x04, 0x5a, 0x20, 0x0c, 0x4a, 0x8c, 0x60, 0xae, 0xae, 0x0f, 0x64, 0x55, 0x55, 0x2e, 0xd5, 0x1d, 0x53, 0x31, 0x42, 0x41}}}, -{{{0xca, 0xfc, 0x88, 0x6b, 0x96, 0x78, 0x0a, 0x8b, 0x83, 0xdc, 0xbc, 0xaf, 0x40, 0xb6, 0x8d, 0x7f, 0xef, 0xb4, 0xd1, 0x3f, 0xcc, 0xa2, 0x74, 0xc9, 0xc2, 0x92, 0x55, 0x00, 0xab, 0xdb, 0xbf, 0x4f}} , - {{0x93, 0x1c, 0x06, 0x2d, 0x66, 0x65, 0x02, 0xa4, 0x97, 0x18, 0xfd, 0x00, 0xe7, 0xab, 0x03, 0xec, 0xce, 0xc1, 0xbf, 0x37, 0xf8, 0x13, 0x53, 0xa5, 0xe5, 0x0c, 0x3a, 0xa8, 0x55, 0xb9, 0xff, 0x68}}}, -{{{0xe4, 0xe6, 0x6d, 0x30, 0x7d, 0x30, 0x35, 0xc2, 0x78, 0x87, 0xf9, 0xfc, 0x6b, 0x5a, 0xc3, 0xb7, 0x65, 0xd8, 0x2e, 0xc7, 0xa5, 0x0c, 0xc6, 0xdc, 0x12, 0xaa, 0xd6, 0x4f, 0xc5, 0x38, 0xbc, 0x0e}} , - {{0xe2, 0x3c, 0x76, 0x86, 0x38, 0xf2, 0x7b, 0x2c, 0x16, 0x78, 0x8d, 0xf5, 0xa4, 0x15, 0xda, 0xdb, 0x26, 0x85, 0xa0, 0x56, 0xdd, 0x1d, 0xe3, 0xb3, 0xfd, 0x40, 0xef, 0xf2, 0xd9, 0xa1, 0xb3, 0x04}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xdb, 0x49, 0x0e, 0xe6, 0x58, 0x10, 0x7a, 0x52, 0xda, 0xb5, 0x7d, 0x37, 0x6a, 0x3e, 0xa1, 0x78, 0xce, 0xc7, 0x1c, 0x24, 0x23, 0xdb, 0x7d, 0xfb, 0x8c, 0x8d, 0xdc, 0x30, 0x67, 0x69, 0x75, 0x3b}} , - {{0xa9, 0xea, 0x6d, 0x16, 0x16, 0x60, 0xf4, 0x60, 0x87, 0x19, 0x44, 0x8c, 0x4a, 0x8b, 0x3e, 0xfb, 0x16, 0x00, 0x00, 0x54, 0xa6, 0x9e, 0x9f, 0xef, 0xcf, 0xd9, 0xd2, 0x4c, 0x74, 0x31, 0xd0, 0x34}}}, -{{{0xa4, 0xeb, 0x04, 0xa4, 0x8c, 0x8f, 0x71, 0x27, 0x95, 0x85, 0x5d, 0x55, 0x4b, 0xb1, 0x26, 0x26, 0xc8, 0xae, 0x6a, 0x7d, 0xa2, 0x21, 0xca, 0xce, 0x38, 0xab, 0x0f, 0xd0, 0xd5, 0x2b, 0x6b, 0x00}} , - {{0xe5, 0x67, 0x0c, 0xf1, 0x3a, 0x9a, 0xea, 0x09, 0x39, 0xef, 0xd1, 0x30, 0xbc, 0x33, 0xba, 0xb1, 0x6a, 0xc5, 0x27, 0x08, 0x7f, 0x54, 0x80, 0x3d, 0xab, 0xf6, 0x15, 0x7a, 0xc2, 0x40, 0x73, 0x72}}}, -{{{0x84, 0x56, 0x82, 0xb6, 0x12, 0x70, 0x7f, 0xf7, 0xf0, 0xbd, 0x5b, 0xa9, 0xd5, 0xc5, 0x5f, 0x59, 0xbf, 0x7f, 0xb3, 0x55, 0x22, 0x02, 0xc9, 0x44, 0x55, 0x87, 0x8f, 0x96, 0x98, 0x64, 0x6d, 0x15}} , - {{0xb0, 0x8b, 0xaa, 0x1e, 0xec, 0xc7, 0xa5, 0x8f, 0x1f, 0x92, 0x04, 0xc6, 0x05, 0xf6, 0xdf, 0xa1, 0xcc, 0x1f, 0x81, 0xf5, 0x0e, 0x9c, 0x57, 0xdc, 0xe3, 0xbb, 0x06, 0x87, 0x1e, 0xfe, 0x23, 0x6c}}}, -{{{0xd8, 0x2b, 0x5b, 0x16, 0xea, 0x20, 0xf1, 0xd3, 0x68, 0x8f, 0xae, 0x5b, 0xd0, 0xa9, 0x1a, 0x19, 0xa8, 0x36, 0xfb, 0x2b, 0x57, 0x88, 0x7d, 0x90, 0xd5, 0xa6, 0xf3, 0xdc, 0x38, 0x89, 0x4e, 0x1f}} , - {{0xcc, 0x19, 0xda, 0x9b, 0x3b, 0x43, 0x48, 0x21, 0x2e, 0x23, 0x4d, 0x3d, 0xae, 0xf8, 0x8c, 0xfc, 0xdd, 0xa6, 0x74, 0x37, 0x65, 0xca, 0xee, 0x1a, 0x19, 0x8e, 0x9f, 0x64, 0x6f, 0x0c, 0x8b, 0x5a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x25, 0xb9, 0xc2, 0xf0, 0x72, 0xb8, 0x15, 0x16, 0xcc, 0x8d, 0x3c, 0x6f, 0x25, 0xed, 0xf4, 0x46, 0x2e, 0x0c, 0x60, 0x0f, 0xe2, 0x84, 0x34, 0x55, 0x89, 0x59, 0x34, 0x1b, 0xf5, 0x8d, 0xfe, 0x08}} , - {{0xf8, 0xab, 0x93, 0xbc, 0x44, 0xba, 0x1b, 0x75, 0x4b, 0x49, 0x6f, 0xd0, 0x54, 0x2e, 0x63, 0xba, 0xb5, 0xea, 0xed, 0x32, 0x14, 0xc9, 0x94, 0xd8, 0xc5, 0xce, 0xf4, 0x10, 0x68, 0xe0, 0x38, 0x27}}}, -{{{0x74, 0x1c, 0x14, 0x9b, 0xd4, 0x64, 0x61, 0x71, 0x5a, 0xb6, 0x21, 0x33, 0x4f, 0xf7, 0x8e, 0xba, 0xa5, 0x48, 0x9a, 0xc7, 0xfa, 0x9a, 0xf0, 0xb4, 0x62, 0xad, 0xf2, 0x5e, 0xcc, 0x03, 0x24, 0x1a}} , - {{0xf5, 0x76, 0xfd, 0xe4, 0xaf, 0xb9, 0x03, 0x59, 0xce, 0x63, 0xd2, 0x3b, 0x1f, 0xcd, 0x21, 0x0c, 0xad, 0x44, 0xa5, 0x97, 0xac, 0x80, 0x11, 0x02, 0x9b, 0x0c, 0xe5, 0x8b, 0xcd, 0xfb, 0x79, 0x77}}}, -{{{0x15, 0xbe, 0x9a, 0x0d, 0xba, 0x38, 0x72, 0x20, 0x8a, 0xf5, 0xbe, 0x59, 0x93, 0x79, 0xb7, 0xf6, 0x6a, 0x0c, 0x38, 0x27, 0x1a, 0x60, 0xf4, 0x86, 0x3b, 0xab, 0x5a, 0x00, 0xa0, 0xce, 0x21, 0x7d}} , - {{0x6c, 0xba, 0x14, 0xc5, 0xea, 0x12, 0x9e, 0x2e, 0x82, 0x63, 0xce, 0x9b, 0x4a, 0xe7, 0x1d, 0xec, 0xf1, 0x2e, 0x51, 0x1c, 0xf4, 0xd0, 0x69, 0x15, 0x42, 0x9d, 0xa3, 0x3f, 0x0e, 0xbf, 0xe9, 0x5c}}}, -{{{0xe4, 0x0d, 0xf4, 0xbd, 0xee, 0x31, 0x10, 0xed, 0xcb, 0x12, 0x86, 0xad, 0xd4, 0x2f, 0x90, 0x37, 0x32, 0xc3, 0x0b, 0x73, 0xec, 0x97, 0x85, 0xa4, 0x01, 0x1c, 0x76, 0x35, 0xfe, 0x75, 0xdd, 0x71}} , - {{0x11, 0xa4, 0x88, 0x9f, 0x3e, 0x53, 0x69, 0x3b, 0x1b, 0xe0, 0xf7, 0xba, 0x9b, 0xad, 0x4e, 0x81, 0x5f, 0xb5, 0x5c, 0xae, 0xbe, 0x67, 0x86, 0x37, 0x34, 0x8e, 0x07, 0x32, 0x45, 0x4a, 0x67, 0x39}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x90, 0x70, 0x58, 0x20, 0x03, 0x1e, 0x67, 0xb2, 0xc8, 0x9b, 0x58, 0xc5, 0xb1, 0xeb, 0x2d, 0x4a, 0xde, 0x82, 0x8c, 0xf2, 0xd2, 0x14, 0xb8, 0x70, 0x61, 0x4e, 0x73, 0xd6, 0x0b, 0x6b, 0x0d, 0x30}} , - {{0x81, 0xfc, 0x55, 0x5c, 0xbf, 0xa7, 0xc4, 0xbd, 0xe2, 0xf0, 0x4b, 0x8f, 0xe9, 0x7d, 0x99, 0xfa, 0xd3, 0xab, 0xbc, 0xc7, 0x83, 0x2b, 0x04, 0x7f, 0x0c, 0x19, 0x43, 0x03, 0x3d, 0x07, 0xca, 0x40}}}, -{{{0xf9, 0xc8, 0xbe, 0x8c, 0x16, 0x81, 0x39, 0x96, 0xf6, 0x17, 0x58, 0xc8, 0x30, 0x58, 0xfb, 0xc2, 0x03, 0x45, 0xd2, 0x52, 0x76, 0xe0, 0x6a, 0x26, 0x28, 0x5c, 0x88, 0x59, 0x6a, 0x5a, 0x54, 0x42}} , - {{0x07, 0xb5, 0x2e, 0x2c, 0x67, 0x15, 0x9b, 0xfb, 0x83, 0x69, 0x1e, 0x0f, 0xda, 0xd6, 0x29, 0xb1, 0x60, 0xe0, 0xb2, 0xba, 0x69, 0xa2, 0x9e, 0xbd, 0xbd, 0xe0, 0x1c, 0xbd, 0xcd, 0x06, 0x64, 0x70}}}, -{{{0x41, 0xfa, 0x8c, 0xe1, 0x89, 0x8f, 0x27, 0xc8, 0x25, 0x8f, 0x6f, 0x5f, 0x55, 0xf8, 0xde, 0x95, 0x6d, 0x2f, 0x75, 0x16, 0x2b, 0x4e, 0x44, 0xfd, 0x86, 0x6e, 0xe9, 0x70, 0x39, 0x76, 0x97, 0x7e}} , - {{0x17, 0x62, 0x6b, 0x14, 0xa1, 0x7c, 0xd0, 0x79, 0x6e, 0xd8, 0x8a, 0xa5, 0x6d, 0x8c, 0x93, 0xd2, 0x3f, 0xec, 0x44, 0x8d, 0x6e, 0x91, 0x01, 0x8c, 0x8f, 0xee, 0x01, 0x8f, 0xc0, 0xb4, 0x85, 0x0e}}}, -{{{0x02, 0x3a, 0x70, 0x41, 0xe4, 0x11, 0x57, 0x23, 0xac, 0xe6, 0xfc, 0x54, 0x7e, 0xcd, 0xd7, 0x22, 0xcb, 0x76, 0x9f, 0x20, 0xce, 0xa0, 0x73, 0x76, 0x51, 0x3b, 0xa4, 0xf8, 0xe3, 0x62, 0x12, 0x6c}} , - {{0x7f, 0x00, 0x9c, 0x26, 0x0d, 0x6f, 0x48, 0x7f, 0x3a, 0x01, 0xed, 0xc5, 0x96, 0xb0, 0x1f, 0x4f, 0xa8, 0x02, 0x62, 0x27, 0x8a, 0x50, 0x8d, 0x9a, 0x8b, 0x52, 0x0f, 0x1e, 0xcf, 0x41, 0x38, 0x19}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xf5, 0x6c, 0xd4, 0x2f, 0x0f, 0x69, 0x0f, 0x87, 0x3f, 0x61, 0x65, 0x1e, 0x35, 0x34, 0x85, 0xba, 0x02, 0x30, 0xac, 0x25, 0x3d, 0xe2, 0x62, 0xf1, 0xcc, 0xe9, 0x1b, 0xc2, 0xef, 0x6a, 0x42, 0x57}} , - {{0x34, 0x1f, 0x2e, 0xac, 0xd1, 0xc7, 0x04, 0x52, 0x32, 0x66, 0xb2, 0x33, 0x73, 0x21, 0x34, 0x54, 0xf7, 0x71, 0xed, 0x06, 0xb0, 0xff, 0xa6, 0x59, 0x6f, 0x8a, 0x4e, 0xfb, 0x02, 0xb0, 0x45, 0x6b}}}, -{{{0xf5, 0x48, 0x0b, 0x03, 0xc5, 0x22, 0x7d, 0x80, 0x08, 0x53, 0xfe, 0x32, 0xb1, 0xa1, 0x8a, 0x74, 0x6f, 0xbd, 0x3f, 0x85, 0xf4, 0xcf, 0xf5, 0x60, 0xaf, 0x41, 0x7e, 0x3e, 0x46, 0xa3, 0x5a, 0x20}} , - {{0xaa, 0x35, 0x87, 0x44, 0x63, 0x66, 0x97, 0xf8, 0x6e, 0x55, 0x0c, 0x04, 0x3e, 0x35, 0x50, 0xbf, 0x93, 0x69, 0xd2, 0x8b, 0x05, 0x55, 0x99, 0xbe, 0xe2, 0x53, 0x61, 0xec, 0xe8, 0x08, 0x0b, 0x32}}}, -{{{0xb3, 0x10, 0x45, 0x02, 0x69, 0x59, 0x2e, 0x97, 0xd9, 0x64, 0xf8, 0xdb, 0x25, 0x80, 0xdc, 0xc4, 0xd5, 0x62, 0x3c, 0xed, 0x65, 0x91, 0xad, 0xd1, 0x57, 0x81, 0x94, 0xaa, 0xa1, 0x29, 0xfc, 0x68}} , - {{0xdd, 0xb5, 0x7d, 0xab, 0x5a, 0x21, 0x41, 0x53, 0xbb, 0x17, 0x79, 0x0d, 0xd1, 0xa8, 0x0c, 0x0c, 0x20, 0x88, 0x09, 0xe9, 0x84, 0xe8, 0x25, 0x11, 0x67, 0x7a, 0x8b, 0x1a, 0xe4, 0x5d, 0xe1, 0x5d}}}, -{{{0x37, 0xea, 0xfe, 0x65, 0x3b, 0x25, 0xe8, 0xe1, 0xc2, 0xc5, 0x02, 0xa4, 0xbe, 0x98, 0x0a, 0x2b, 0x61, 0xc1, 0x9b, 0xe2, 0xd5, 0x92, 0xe6, 0x9e, 0x7d, 0x1f, 0xca, 0x43, 0x88, 0x8b, 0x2c, 0x59}} , - {{0xe0, 0xb5, 0x00, 0x1d, 0x2a, 0x6f, 0xaf, 0x79, 0x86, 0x2f, 0xa6, 0x5a, 0x93, 0xd1, 0xfe, 0xae, 0x3a, 0xee, 0xdb, 0x7c, 0x61, 0xbe, 0x7c, 0x01, 0xf9, 0xfe, 0x52, 0xdc, 0xd8, 0x52, 0xa3, 0x42}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x22, 0xaf, 0x13, 0x37, 0xbd, 0x37, 0x71, 0xac, 0x04, 0x46, 0x63, 0xac, 0xa4, 0x77, 0xed, 0x25, 0x38, 0xe0, 0x15, 0xa8, 0x64, 0x00, 0x0d, 0xce, 0x51, 0x01, 0xa9, 0xbc, 0x0f, 0x03, 0x1c, 0x04}} , - {{0x89, 0xf9, 0x80, 0x07, 0xcf, 0x3f, 0xb3, 0xe9, 0xe7, 0x45, 0x44, 0x3d, 0x2a, 0x7c, 0xe9, 0xe4, 0x16, 0x5c, 0x5e, 0x65, 0x1c, 0xc7, 0x7d, 0xc6, 0x7a, 0xfb, 0x43, 0xee, 0x25, 0x76, 0x46, 0x72}}}, -{{{0x02, 0xa2, 0xed, 0xf4, 0x8f, 0x6b, 0x0b, 0x3e, 0xeb, 0x35, 0x1a, 0xd5, 0x7e, 0xdb, 0x78, 0x00, 0x96, 0x8a, 0xa0, 0xb4, 0xcf, 0x60, 0x4b, 0xd4, 0xd5, 0xf9, 0x2d, 0xbf, 0x88, 0xbd, 0x22, 0x62}} , - {{0x13, 0x53, 0xe4, 0x82, 0x57, 0xfa, 0x1e, 0x8f, 0x06, 0x2b, 0x90, 0xba, 0x08, 0xb6, 0x10, 0x54, 0x4f, 0x7c, 0x1b, 0x26, 0xed, 0xda, 0x6b, 0xdd, 0x25, 0xd0, 0x4e, 0xea, 0x42, 0xbb, 0x25, 0x03}}}, -{{{0x51, 0x16, 0x50, 0x7c, 0xd5, 0x5d, 0xf6, 0x99, 0xe8, 0x77, 0x72, 0x4e, 0xfa, 0x62, 0xcb, 0x76, 0x75, 0x0c, 0xe2, 0x71, 0x98, 0x92, 0xd5, 0xfa, 0x45, 0xdf, 0x5c, 0x6f, 0x1e, 0x9e, 0x28, 0x69}} , - {{0x0d, 0xac, 0x66, 0x6d, 0xc3, 0x8b, 0xba, 0x16, 0xb5, 0xe2, 0xa0, 0x0d, 0x0c, 0xbd, 0xa4, 0x8e, 0x18, 0x6c, 0xf2, 0xdc, 0xf9, 0xdc, 0x4a, 0x86, 0x25, 0x95, 0x14, 0xcb, 0xd8, 0x1a, 0x04, 0x0f}}}, -{{{0x97, 0xa5, 0xdb, 0x8b, 0x2d, 0xaa, 0x42, 0x11, 0x09, 0xf2, 0x93, 0xbb, 0xd9, 0x06, 0x84, 0x4e, 0x11, 0xa8, 0xa0, 0x25, 0x2b, 0xa6, 0x5f, 0xae, 0xc4, 0xb4, 0x4c, 0xc8, 0xab, 0xc7, 0x3b, 0x02}} , - {{0xee, 0xc9, 0x29, 0x0f, 0xdf, 0x11, 0x85, 0xed, 0xce, 0x0d, 0x62, 0x2c, 0x8f, 0x4b, 0xf9, 0x04, 0xe9, 0x06, 0x72, 0x1d, 0x37, 0x20, 0x50, 0xc9, 0x14, 0xeb, 0xec, 0x39, 0xa7, 0x97, 0x2b, 0x4d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x69, 0xd1, 0x39, 0xbd, 0xfb, 0x33, 0xbe, 0xc4, 0xf0, 0x5c, 0xef, 0xf0, 0x56, 0x68, 0xfc, 0x97, 0x47, 0xc8, 0x72, 0xb6, 0x53, 0xa4, 0x0a, 0x98, 0xa5, 0xb4, 0x37, 0x71, 0xcf, 0x66, 0x50, 0x6d}} , - {{0x17, 0xa4, 0x19, 0x52, 0x11, 0x47, 0xb3, 0x5c, 0x5b, 0xa9, 0x2e, 0x22, 0xb4, 0x00, 0x52, 0xf9, 0x57, 0x18, 0xb8, 0xbe, 0x5a, 0xe3, 0xab, 0x83, 0xc8, 0x87, 0x0a, 0x2a, 0xd8, 0x8c, 0xbb, 0x54}}}, -{{{0xa9, 0x62, 0x93, 0x85, 0xbe, 0xe8, 0x73, 0x4a, 0x0e, 0xb0, 0xb5, 0x2d, 0x94, 0x50, 0xaa, 0xd3, 0xb2, 0xea, 0x9d, 0x62, 0x76, 0x3b, 0x07, 0x34, 0x4e, 0x2d, 0x70, 0xc8, 0x9a, 0x15, 0x66, 0x6b}} , - {{0xc5, 0x96, 0xca, 0xc8, 0x22, 0x1a, 0xee, 0x5f, 0xe7, 0x31, 0x60, 0x22, 0x83, 0x08, 0x63, 0xce, 0xb9, 0x32, 0x44, 0x58, 0x5d, 0x3a, 0x9b, 0xe4, 0x04, 0xd5, 0xef, 0x38, 0xef, 0x4b, 0xdd, 0x19}}}, -{{{0x4d, 0xc2, 0x17, 0x75, 0xa1, 0x68, 0xcd, 0xc3, 0xc6, 0x03, 0x44, 0xe3, 0x78, 0x09, 0x91, 0x47, 0x3f, 0x0f, 0xe4, 0x92, 0x58, 0xfa, 0x7d, 0x1f, 0x20, 0x94, 0x58, 0x5e, 0xbc, 0x19, 0x02, 0x6f}} , - {{0x20, 0xd6, 0xd8, 0x91, 0x54, 0xa7, 0xf3, 0x20, 0x4b, 0x34, 0x06, 0xfa, 0x30, 0xc8, 0x6f, 0x14, 0x10, 0x65, 0x74, 0x13, 0x4e, 0xf0, 0x69, 0x26, 0xce, 0xcf, 0x90, 0xf4, 0xd0, 0xc5, 0xc8, 0x64}}}, -{{{0x26, 0xa2, 0x50, 0x02, 0x24, 0x72, 0xf1, 0xf0, 0x4e, 0x2d, 0x93, 0xd5, 0x08, 0xe7, 0xae, 0x38, 0xf7, 0x18, 0xa5, 0x32, 0x34, 0xc2, 0xf0, 0xa6, 0xec, 0xb9, 0x61, 0x7b, 0x64, 0x99, 0xac, 0x71}} , - {{0x25, 0xcf, 0x74, 0x55, 0x1b, 0xaa, 0xa9, 0x38, 0x41, 0x40, 0xd5, 0x95, 0x95, 0xab, 0x1c, 0x5e, 0xbc, 0x41, 0x7e, 0x14, 0x30, 0xbe, 0x13, 0x89, 0xf4, 0xe5, 0xeb, 0x28, 0xc0, 0xc2, 0x96, 0x3a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x2b, 0x77, 0x45, 0xec, 0x67, 0x76, 0x32, 0x4c, 0xb9, 0xdf, 0x25, 0x32, 0x6b, 0xcb, 0xe7, 0x14, 0x61, 0x43, 0xee, 0xba, 0x9b, 0x71, 0xef, 0xd2, 0x48, 0x65, 0xbb, 0x1b, 0x8a, 0x13, 0x1b, 0x22}} , - {{0x84, 0xad, 0x0c, 0x18, 0x38, 0x5a, 0xba, 0xd0, 0x98, 0x59, 0xbf, 0x37, 0xb0, 0x4f, 0x97, 0x60, 0x20, 0xb3, 0x9b, 0x97, 0xf6, 0x08, 0x6c, 0xa4, 0xff, 0xfb, 0xb7, 0xfa, 0x95, 0xb2, 0x51, 0x79}}}, -{{{0x28, 0x5c, 0x3f, 0xdb, 0x6b, 0x18, 0x3b, 0x5c, 0xd1, 0x04, 0x28, 0xde, 0x85, 0x52, 0x31, 0xb5, 0xbb, 0xf6, 0xa9, 0xed, 0xbe, 0x28, 0x4f, 0xb3, 0x7e, 0x05, 0x6a, 0xdb, 0x95, 0x0d, 0x1b, 0x1c}} , - {{0xd5, 0xc5, 0xc3, 0x9a, 0x0a, 0xd0, 0x31, 0x3e, 0x07, 0x36, 0x8e, 0xc0, 0x8a, 0x62, 0xb1, 0xca, 0xd6, 0x0e, 0x1e, 0x9d, 0xef, 0xab, 0x98, 0x4d, 0xbb, 0x6c, 0x05, 0xe0, 0xe4, 0x5d, 0xbd, 0x57}}}, -{{{0xcc, 0x21, 0x27, 0xce, 0xfd, 0xa9, 0x94, 0x8e, 0xe1, 0xab, 0x49, 0xe0, 0x46, 0x26, 0xa1, 0xa8, 0x8c, 0xa1, 0x99, 0x1d, 0xb4, 0x27, 0x6d, 0x2d, 0xc8, 0x39, 0x30, 0x5e, 0x37, 0x52, 0xc4, 0x6e}} , - {{0xa9, 0x85, 0xf4, 0xe7, 0xb0, 0x15, 0x33, 0x84, 0x1b, 0x14, 0x1a, 0x02, 0xd9, 0x3b, 0xad, 0x0f, 0x43, 0x6c, 0xea, 0x3e, 0x0f, 0x7e, 0xda, 0xdd, 0x6b, 0x4c, 0x7f, 0x6e, 0xd4, 0x6b, 0xbf, 0x0f}}}, -{{{0x47, 0x9f, 0x7c, 0x56, 0x7c, 0x43, 0x91, 0x1c, 0xbb, 0x4e, 0x72, 0x3e, 0x64, 0xab, 0xa0, 0xa0, 0xdf, 0xb4, 0xd8, 0x87, 0x3a, 0xbd, 0xa8, 0x48, 0xc9, 0xb8, 0xef, 0x2e, 0xad, 0x6f, 0x84, 0x4f}} , - {{0x2d, 0x2d, 0xf0, 0x1b, 0x7e, 0x2a, 0x6c, 0xf8, 0xa9, 0x6a, 0xe1, 0xf0, 0x99, 0xa1, 0x67, 0x9a, 0xd4, 0x13, 0xca, 0xca, 0xba, 0x27, 0x92, 0xaa, 0xa1, 0x5d, 0x50, 0xde, 0xcc, 0x40, 0x26, 0x0a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x9f, 0x3e, 0xf2, 0xb2, 0x90, 0xce, 0xdb, 0x64, 0x3e, 0x03, 0xdd, 0x37, 0x36, 0x54, 0x70, 0x76, 0x24, 0xb5, 0x69, 0x03, 0xfc, 0xa0, 0x2b, 0x74, 0xb2, 0x05, 0x0e, 0xcc, 0xd8, 0x1f, 0x6a, 0x1f}} , - {{0x19, 0x5e, 0x60, 0x69, 0x58, 0x86, 0xa0, 0x31, 0xbd, 0x32, 0xe9, 0x2c, 0x5c, 0xd2, 0x85, 0xba, 0x40, 0x64, 0xa8, 0x74, 0xf8, 0x0e, 0x1c, 0xb3, 0xa9, 0x69, 0xe8, 0x1e, 0x40, 0x64, 0x99, 0x77}}}, -{{{0x6c, 0x32, 0x4f, 0xfd, 0xbb, 0x5c, 0xbb, 0x8d, 0x64, 0x66, 0x4a, 0x71, 0x1f, 0x79, 0xa3, 0xad, 0x8d, 0xf9, 0xd4, 0xec, 0xcf, 0x67, 0x70, 0xfa, 0x05, 0x4a, 0x0f, 0x6e, 0xaf, 0x87, 0x0a, 0x6f}} , - {{0xc6, 0x36, 0x6e, 0x6c, 0x8c, 0x24, 0x09, 0x60, 0xbe, 0x26, 0xd2, 0x4c, 0x5e, 0x17, 0xca, 0x5f, 0x1d, 0xcc, 0x87, 0xe8, 0x42, 0x6a, 0xcb, 0xcb, 0x7d, 0x92, 0x05, 0x35, 0x81, 0x13, 0x60, 0x6b}}}, -{{{0xf4, 0x15, 0xcd, 0x0f, 0x0a, 0xaf, 0x4e, 0x6b, 0x51, 0xfd, 0x14, 0xc4, 0x2e, 0x13, 0x86, 0x74, 0x44, 0xcb, 0x66, 0x6b, 0xb6, 0x9d, 0x74, 0x56, 0x32, 0xac, 0x8d, 0x8e, 0x8c, 0x8c, 0x8c, 0x39}} , - {{0xca, 0x59, 0x74, 0x1a, 0x11, 0xef, 0x6d, 0xf7, 0x39, 0x5c, 0x3b, 0x1f, 0xfa, 0xe3, 0x40, 0x41, 0x23, 0x9e, 0xf6, 0xd1, 0x21, 0xa2, 0xbf, 0xad, 0x65, 0x42, 0x6b, 0x59, 0x8a, 0xe8, 0xc5, 0x7f}}}, -{{{0x64, 0x05, 0x7a, 0x84, 0x4a, 0x13, 0xc3, 0xf6, 0xb0, 0x6e, 0x9a, 0x6b, 0x53, 0x6b, 0x32, 0xda, 0xd9, 0x74, 0x75, 0xc4, 0xba, 0x64, 0x3d, 0x3b, 0x08, 0xdd, 0x10, 0x46, 0xef, 0xc7, 0x90, 0x1f}} , - {{0x7b, 0x2f, 0x3a, 0xce, 0xc8, 0xa1, 0x79, 0x3c, 0x30, 0x12, 0x44, 0x28, 0xf6, 0xbc, 0xff, 0xfd, 0xf4, 0xc0, 0x97, 0xb0, 0xcc, 0xc3, 0x13, 0x7a, 0xb9, 0x9a, 0x16, 0xe4, 0xcb, 0x4c, 0x34, 0x63}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x07, 0x4e, 0xd3, 0x2d, 0x09, 0x33, 0x0e, 0xd2, 0x0d, 0xbe, 0x3e, 0xe7, 0xe4, 0xaa, 0xb7, 0x00, 0x8b, 0xe8, 0xad, 0xaa, 0x7a, 0x8d, 0x34, 0x28, 0xa9, 0x81, 0x94, 0xc5, 0xe7, 0x42, 0xac, 0x47}} , - {{0x24, 0x89, 0x7a, 0x8f, 0xb5, 0x9b, 0xf0, 0xc2, 0x03, 0x64, 0xd0, 0x1e, 0xf5, 0xa4, 0xb2, 0xf3, 0x74, 0xe9, 0x1a, 0x16, 0xfd, 0xcb, 0x15, 0xea, 0xeb, 0x10, 0x6c, 0x35, 0xd1, 0xc1, 0xa6, 0x28}}}, -{{{0xcc, 0xd5, 0x39, 0xfc, 0xa5, 0xa4, 0xad, 0x32, 0x15, 0xce, 0x19, 0xe8, 0x34, 0x2b, 0x1c, 0x60, 0x91, 0xfc, 0x05, 0xa9, 0xb3, 0xdc, 0x80, 0x29, 0xc4, 0x20, 0x79, 0x06, 0x39, 0xc0, 0xe2, 0x22}} , - {{0xbb, 0xa8, 0xe1, 0x89, 0x70, 0x57, 0x18, 0x54, 0x3c, 0xf6, 0x0d, 0x82, 0x12, 0x05, 0x87, 0x96, 0x06, 0x39, 0xe3, 0xf8, 0xb3, 0x95, 0xe5, 0xd7, 0x26, 0xbf, 0x09, 0x5a, 0x94, 0xf9, 0x1c, 0x63}}}, -{{{0x2b, 0x8c, 0x2d, 0x9a, 0x8b, 0x84, 0xf2, 0x56, 0xfb, 0xad, 0x2e, 0x7f, 0xb7, 0xfc, 0x30, 0xe1, 0x35, 0x89, 0xba, 0x4d, 0xa8, 0x6d, 0xce, 0x8c, 0x8b, 0x30, 0xe0, 0xda, 0x29, 0x18, 0x11, 0x17}} , - {{0x19, 0xa6, 0x5a, 0x65, 0x93, 0xc3, 0xb5, 0x31, 0x22, 0x4f, 0xf3, 0xf6, 0x0f, 0xeb, 0x28, 0xc3, 0x7c, 0xeb, 0xce, 0x86, 0xec, 0x67, 0x76, 0x6e, 0x35, 0x45, 0x7b, 0xd8, 0x6b, 0x92, 0x01, 0x65}}}, -{{{0x3d, 0xd5, 0x9a, 0x64, 0x73, 0x36, 0xb1, 0xd6, 0x86, 0x98, 0x42, 0x3f, 0x8a, 0xf1, 0xc7, 0xf5, 0x42, 0xa8, 0x9c, 0x52, 0xa8, 0xdc, 0xf9, 0x24, 0x3f, 0x4a, 0xa1, 0xa4, 0x5b, 0xe8, 0x62, 0x1a}} , - {{0xc5, 0xbd, 0xc8, 0x14, 0xd5, 0x0d, 0xeb, 0xe1, 0xa5, 0xe6, 0x83, 0x11, 0x09, 0x00, 0x1d, 0x55, 0x83, 0x51, 0x7e, 0x75, 0x00, 0x81, 0xb9, 0xcb, 0xd8, 0xc5, 0xe5, 0xa1, 0xd9, 0x17, 0x6d, 0x1f}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xea, 0xf9, 0xe4, 0xe9, 0xe1, 0x52, 0x3f, 0x51, 0x19, 0x0d, 0xdd, 0xd9, 0x9d, 0x93, 0x31, 0x87, 0x23, 0x09, 0xd5, 0x83, 0xeb, 0x92, 0x09, 0x76, 0x6e, 0xe3, 0xf8, 0xc0, 0xa2, 0x66, 0xb5, 0x36}} , - {{0x3a, 0xbb, 0x39, 0xed, 0x32, 0x02, 0xe7, 0x43, 0x7a, 0x38, 0x14, 0x84, 0xe3, 0x44, 0xd2, 0x5e, 0x94, 0xdd, 0x78, 0x89, 0x55, 0x4c, 0x73, 0x9e, 0xe1, 0xe4, 0x3e, 0x43, 0xd0, 0x4a, 0xde, 0x1b}}}, -{{{0xb2, 0xe7, 0x8f, 0xe3, 0xa3, 0xc5, 0xcb, 0x72, 0xee, 0x79, 0x41, 0xf8, 0xdf, 0xee, 0x65, 0xc5, 0x45, 0x77, 0x27, 0x3c, 0xbd, 0x58, 0xd3, 0x75, 0xe2, 0x04, 0x4b, 0xbb, 0x65, 0xf3, 0xc8, 0x0f}} , - {{0x24, 0x7b, 0x93, 0x34, 0xb5, 0xe2, 0x74, 0x48, 0xcd, 0xa0, 0x0b, 0x92, 0x97, 0x66, 0x39, 0xf4, 0xb0, 0xe2, 0x5d, 0x39, 0x6a, 0x5b, 0x45, 0x17, 0x78, 0x1e, 0xdb, 0x91, 0x81, 0x1c, 0xf9, 0x16}}}, -{{{0x16, 0xdf, 0xd1, 0x5a, 0xd5, 0xe9, 0x4e, 0x58, 0x95, 0x93, 0x5f, 0x51, 0x09, 0xc3, 0x2a, 0xc9, 0xd4, 0x55, 0x48, 0x79, 0xa4, 0xa3, 0xb2, 0xc3, 0x62, 0xaa, 0x8c, 0xe8, 0xad, 0x47, 0x39, 0x1b}} , - {{0x46, 0xda, 0x9e, 0x51, 0x3a, 0xe6, 0xd1, 0xa6, 0xbb, 0x4d, 0x7b, 0x08, 0xbe, 0x8c, 0xd5, 0xf3, 0x3f, 0xfd, 0xf7, 0x44, 0x80, 0x2d, 0x53, 0x4b, 0xd0, 0x87, 0x68, 0xc1, 0xb5, 0xd8, 0xf7, 0x07}}}, -{{{0xf4, 0x10, 0x46, 0xbe, 0xb7, 0xd2, 0xd1, 0xce, 0x5e, 0x76, 0xa2, 0xd7, 0x03, 0xdc, 0xe4, 0x81, 0x5a, 0xf6, 0x3c, 0xde, 0xae, 0x7a, 0x9d, 0x21, 0x34, 0xa5, 0xf6, 0xa9, 0x73, 0xe2, 0x8d, 0x60}} , - {{0xfa, 0x44, 0x71, 0xf6, 0x41, 0xd8, 0xc6, 0x58, 0x13, 0x37, 0xeb, 0x84, 0x0f, 0x96, 0xc7, 0xdc, 0xc8, 0xa9, 0x7a, 0x83, 0xb2, 0x2f, 0x31, 0xb1, 0x1a, 0xd8, 0x98, 0x3f, 0x11, 0xd0, 0x31, 0x3b}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x81, 0xd5, 0x34, 0x16, 0x01, 0xa3, 0x93, 0xea, 0x52, 0x94, 0xec, 0x93, 0xb7, 0x81, 0x11, 0x2d, 0x58, 0xf9, 0xb5, 0x0a, 0xaa, 0x4f, 0xf6, 0x2e, 0x3f, 0x36, 0xbf, 0x33, 0x5a, 0xe7, 0xd1, 0x08}} , - {{0x1a, 0xcf, 0x42, 0xae, 0xcc, 0xb5, 0x77, 0x39, 0xc4, 0x5b, 0x5b, 0xd0, 0x26, 0x59, 0x27, 0xd0, 0x55, 0x71, 0x12, 0x9d, 0x88, 0x3d, 0x9c, 0xea, 0x41, 0x6a, 0xf0, 0x50, 0x93, 0x93, 0xdd, 0x47}}}, -{{{0x6f, 0xc9, 0x51, 0x6d, 0x1c, 0xaa, 0xf5, 0xa5, 0x90, 0x3f, 0x14, 0xe2, 0x6e, 0x8e, 0x64, 0xfd, 0xac, 0xe0, 0x4e, 0x22, 0xe5, 0xc1, 0xbc, 0x29, 0x0a, 0x6a, 0x9e, 0xa1, 0x60, 0xcb, 0x2f, 0x0b}} , - {{0xdc, 0x39, 0x32, 0xf3, 0xa1, 0x44, 0xe9, 0xc5, 0xc3, 0x78, 0xfb, 0x95, 0x47, 0x34, 0x35, 0x34, 0xe8, 0x25, 0xde, 0x93, 0xc6, 0xb4, 0x76, 0x6d, 0x86, 0x13, 0xc6, 0xe9, 0x68, 0xb5, 0x01, 0x63}}}, -{{{0x1f, 0x9a, 0x52, 0x64, 0x97, 0xd9, 0x1c, 0x08, 0x51, 0x6f, 0x26, 0x9d, 0xaa, 0x93, 0x33, 0x43, 0xfa, 0x77, 0xe9, 0x62, 0x9b, 0x5d, 0x18, 0x75, 0xeb, 0x78, 0xf7, 0x87, 0x8f, 0x41, 0xb4, 0x4d}} , - {{0x13, 0xa8, 0x82, 0x3e, 0xe9, 0x13, 0xad, 0xeb, 0x01, 0xca, 0xcf, 0xda, 0xcd, 0xf7, 0x6c, 0xc7, 0x7a, 0xdc, 0x1e, 0x6e, 0xc8, 0x4e, 0x55, 0x62, 0x80, 0xea, 0x78, 0x0c, 0x86, 0xb9, 0x40, 0x51}}}, -{{{0x27, 0xae, 0xd3, 0x0d, 0x4c, 0x8f, 0x34, 0xea, 0x7d, 0x3c, 0xe5, 0x8a, 0xcf, 0x5b, 0x92, 0xd8, 0x30, 0x16, 0xb4, 0xa3, 0x75, 0xff, 0xeb, 0x27, 0xc8, 0x5c, 0x6c, 0xc2, 0xee, 0x6c, 0x21, 0x0b}} , - {{0xc3, 0xba, 0x12, 0x53, 0x2a, 0xaa, 0x77, 0xad, 0x19, 0x78, 0x55, 0x8a, 0x2e, 0x60, 0x87, 0xc2, 0x6e, 0x91, 0x38, 0x91, 0x3f, 0x7a, 0xc5, 0x24, 0x8f, 0x51, 0xc5, 0xde, 0xb0, 0x53, 0x30, 0x56}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x02, 0xfe, 0x54, 0x12, 0x18, 0xca, 0x7d, 0xa5, 0x68, 0x43, 0xa3, 0x6d, 0x14, 0x2a, 0x6a, 0xa5, 0x8e, 0x32, 0xe7, 0x63, 0x4f, 0xe3, 0xc6, 0x44, 0x3e, 0xab, 0x63, 0xca, 0x17, 0x86, 0x74, 0x3f}} , - {{0x1e, 0x64, 0xc1, 0x7d, 0x52, 0xdc, 0x13, 0x5a, 0xa1, 0x9c, 0x4e, 0xee, 0x99, 0x28, 0xbb, 0x4c, 0xee, 0xac, 0xa9, 0x1b, 0x89, 0xa2, 0x38, 0x39, 0x7b, 0xc4, 0x0f, 0x42, 0xe6, 0x89, 0xed, 0x0f}}}, -{{{0xf3, 0x3c, 0x8c, 0x80, 0x83, 0x10, 0x8a, 0x37, 0x50, 0x9c, 0xb4, 0xdf, 0x3f, 0x8c, 0xf7, 0x23, 0x07, 0xd6, 0xff, 0xa0, 0x82, 0x6c, 0x75, 0x3b, 0xe4, 0xb5, 0xbb, 0xe4, 0xe6, 0x50, 0xf0, 0x08}} , - {{0x62, 0xee, 0x75, 0x48, 0x92, 0x33, 0xf2, 0xf4, 0xad, 0x15, 0x7a, 0xa1, 0x01, 0x46, 0xa9, 0x32, 0x06, 0x88, 0xb6, 0x36, 0x47, 0x35, 0xb9, 0xb4, 0x42, 0x85, 0x76, 0xf0, 0x48, 0x00, 0x90, 0x38}}}, -{{{0x51, 0x15, 0x9d, 0xc3, 0x95, 0xd1, 0x39, 0xbb, 0x64, 0x9d, 0x15, 0x81, 0xc1, 0x68, 0xd0, 0xb6, 0xa4, 0x2c, 0x7d, 0x5e, 0x02, 0x39, 0x00, 0xe0, 0x3b, 0xa4, 0xcc, 0xca, 0x1d, 0x81, 0x24, 0x10}} , - {{0xe7, 0x29, 0xf9, 0x37, 0xd9, 0x46, 0x5a, 0xcd, 0x70, 0xfe, 0x4d, 0x5b, 0xbf, 0xa5, 0xcf, 0x91, 0xf4, 0xef, 0xee, 0x8a, 0x29, 0xd0, 0xe7, 0xc4, 0x25, 0x92, 0x8a, 0xff, 0x36, 0xfc, 0xe4, 0x49}}}, -{{{0xbd, 0x00, 0xb9, 0x04, 0x7d, 0x35, 0xfc, 0xeb, 0xd0, 0x0b, 0x05, 0x32, 0x52, 0x7a, 0x89, 0x24, 0x75, 0x50, 0xe1, 0x63, 0x02, 0x82, 0x8e, 0xe7, 0x85, 0x0c, 0xf2, 0x56, 0x44, 0x37, 0x83, 0x25}} , - {{0x8f, 0xa1, 0xce, 0xcb, 0x60, 0xda, 0x12, 0x02, 0x1e, 0x29, 0x39, 0x2a, 0x03, 0xb7, 0xeb, 0x77, 0x40, 0xea, 0xc9, 0x2b, 0x2c, 0xd5, 0x7d, 0x7e, 0x2c, 0xc7, 0x5a, 0xfd, 0xff, 0xc4, 0xd1, 0x62}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x1d, 0x88, 0x98, 0x5b, 0x4e, 0xfc, 0x41, 0x24, 0x05, 0xe6, 0x50, 0x2b, 0xae, 0x96, 0x51, 0xd9, 0x6b, 0x72, 0xb2, 0x33, 0x42, 0x98, 0x68, 0xbb, 0x10, 0x5a, 0x7a, 0x8c, 0x9d, 0x07, 0xb4, 0x05}} , - {{0x2f, 0x61, 0x9f, 0xd7, 0xa8, 0x3f, 0x83, 0x8c, 0x10, 0x69, 0x90, 0xe6, 0xcf, 0xd2, 0x63, 0xa3, 0xe4, 0x54, 0x7e, 0xe5, 0x69, 0x13, 0x1c, 0x90, 0x57, 0xaa, 0xe9, 0x53, 0x22, 0x43, 0x29, 0x23}}}, -{{{0xe5, 0x1c, 0xf8, 0x0a, 0xfd, 0x2d, 0x7e, 0xf5, 0xf5, 0x70, 0x7d, 0x41, 0x6b, 0x11, 0xfe, 0xbe, 0x99, 0xd1, 0x55, 0x29, 0x31, 0xbf, 0xc0, 0x97, 0x6c, 0xd5, 0x35, 0xcc, 0x5e, 0x8b, 0xd9, 0x69}} , - {{0x8e, 0x4e, 0x9f, 0x25, 0xf8, 0x81, 0x54, 0x2d, 0x0e, 0xd5, 0x54, 0x81, 0x9b, 0xa6, 0x92, 0xce, 0x4b, 0xe9, 0x8f, 0x24, 0x3b, 0xca, 0xe0, 0x44, 0xab, 0x36, 0xfe, 0xfb, 0x87, 0xd4, 0x26, 0x3e}}}, -{{{0x0f, 0x93, 0x9c, 0x11, 0xe7, 0xdb, 0xf1, 0xf0, 0x85, 0x43, 0x28, 0x15, 0x37, 0xdd, 0xde, 0x27, 0xdf, 0xad, 0x3e, 0x49, 0x4f, 0xe0, 0x5b, 0xf6, 0x80, 0x59, 0x15, 0x3c, 0x85, 0xb7, 0x3e, 0x12}} , - {{0xf5, 0xff, 0xcc, 0xf0, 0xb4, 0x12, 0x03, 0x5f, 0xc9, 0x84, 0xcb, 0x1d, 0x17, 0xe0, 0xbc, 0xcc, 0x03, 0x62, 0xa9, 0x8b, 0x94, 0xa6, 0xaa, 0x18, 0xcb, 0x27, 0x8d, 0x49, 0xa6, 0x17, 0x15, 0x07}}}, -{{{0xd9, 0xb6, 0xd4, 0x9d, 0xd4, 0x6a, 0xaf, 0x70, 0x07, 0x2c, 0x10, 0x9e, 0xbd, 0x11, 0xad, 0xe4, 0x26, 0x33, 0x70, 0x92, 0x78, 0x1c, 0x74, 0x9f, 0x75, 0x60, 0x56, 0xf4, 0x39, 0xa8, 0xa8, 0x62}} , - {{0x3b, 0xbf, 0x55, 0x35, 0x61, 0x8b, 0x44, 0x97, 0xe8, 0x3a, 0x55, 0xc1, 0xc8, 0x3b, 0xfd, 0x95, 0x29, 0x11, 0x60, 0x96, 0x1e, 0xcb, 0x11, 0x9d, 0xc2, 0x03, 0x8a, 0x1b, 0xc6, 0xd6, 0x45, 0x3d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x7e, 0x0e, 0x50, 0xb2, 0xcc, 0x0d, 0x6b, 0xa6, 0x71, 0x5b, 0x42, 0xed, 0xbd, 0xaf, 0xac, 0xf0, 0xfc, 0x12, 0xa2, 0x3f, 0x4e, 0xda, 0xe8, 0x11, 0xf3, 0x23, 0xe1, 0x04, 0x62, 0x03, 0x1c, 0x4e}} , - {{0xc8, 0xb1, 0x1b, 0x6f, 0x73, 0x61, 0x3d, 0x27, 0x0d, 0x7d, 0x7a, 0x25, 0x5f, 0x73, 0x0e, 0x2f, 0x93, 0xf6, 0x24, 0xd8, 0x4f, 0x90, 0xac, 0xa2, 0x62, 0x0a, 0xf0, 0x61, 0xd9, 0x08, 0x59, 0x6a}}}, -{{{0x6f, 0x2d, 0x55, 0xf8, 0x2f, 0x8e, 0xf0, 0x18, 0x3b, 0xea, 0xdd, 0x26, 0x72, 0xd1, 0xf5, 0xfe, 0xe5, 0xb8, 0xe6, 0xd3, 0x10, 0x48, 0x46, 0x49, 0x3a, 0x9f, 0x5e, 0x45, 0x6b, 0x90, 0xe8, 0x7f}} , - {{0xd3, 0x76, 0x69, 0x33, 0x7b, 0xb9, 0x40, 0x70, 0xee, 0xa6, 0x29, 0x6b, 0xdd, 0xd0, 0x5d, 0x8d, 0xc1, 0x3e, 0x4a, 0xea, 0x37, 0xb1, 0x03, 0x02, 0x03, 0x35, 0xf1, 0x28, 0x9d, 0xff, 0x00, 0x13}}}, -{{{0x7a, 0xdb, 0x12, 0xd2, 0x8a, 0x82, 0x03, 0x1b, 0x1e, 0xaf, 0xf9, 0x4b, 0x9c, 0xbe, 0xae, 0x7c, 0xe4, 0x94, 0x2a, 0x23, 0xb3, 0x62, 0x86, 0xe7, 0xfd, 0x23, 0xaa, 0x99, 0xbd, 0x2b, 0x11, 0x6c}} , - {{0x8d, 0xa6, 0xd5, 0xac, 0x9d, 0xcc, 0x68, 0x75, 0x7f, 0xc3, 0x4d, 0x4b, 0xdd, 0x6c, 0xbb, 0x11, 0x5a, 0x60, 0xe5, 0xbd, 0x7d, 0x27, 0x8b, 0xda, 0xb4, 0x95, 0xf6, 0x03, 0x27, 0xa4, 0x92, 0x3f}}}, -{{{0x22, 0xd6, 0xb5, 0x17, 0x84, 0xbf, 0x12, 0xcc, 0x23, 0x14, 0x4a, 0xdf, 0x14, 0x31, 0xbc, 0xa1, 0xac, 0x6e, 0xab, 0xfa, 0x57, 0x11, 0x53, 0xb3, 0x27, 0xe6, 0xf9, 0x47, 0x33, 0x44, 0x34, 0x1e}} , - {{0x79, 0xfc, 0xa6, 0xb4, 0x0b, 0x35, 0x20, 0xc9, 0x4d, 0x22, 0x84, 0xc4, 0xa9, 0x20, 0xec, 0x89, 0x94, 0xba, 0x66, 0x56, 0x48, 0xb9, 0x87, 0x7f, 0xca, 0x1e, 0x06, 0xed, 0xa5, 0x55, 0x59, 0x29}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x56, 0xe1, 0xf5, 0xf1, 0xd5, 0xab, 0xa8, 0x2b, 0xae, 0x89, 0xf3, 0xcf, 0x56, 0x9f, 0xf2, 0x4b, 0x31, 0xbc, 0x18, 0xa9, 0x06, 0x5b, 0xbe, 0xb4, 0x61, 0xf8, 0xb2, 0x06, 0x9c, 0x81, 0xab, 0x4c}} , - {{0x1f, 0x68, 0x76, 0x01, 0x16, 0x38, 0x2b, 0x0f, 0x77, 0x97, 0x92, 0x67, 0x4e, 0x86, 0x6a, 0x8b, 0xe5, 0xe8, 0x0c, 0xf7, 0x36, 0x39, 0xb5, 0x33, 0xe6, 0xcf, 0x5e, 0xbd, 0x18, 0xfb, 0x10, 0x1f}}}, -{{{0x83, 0xf0, 0x0d, 0x63, 0xef, 0x53, 0x6b, 0xb5, 0x6b, 0xf9, 0x83, 0xcf, 0xde, 0x04, 0x22, 0x9b, 0x2c, 0x0a, 0xe0, 0xa5, 0xd8, 0xc7, 0x9c, 0xa5, 0xa3, 0xf6, 0x6f, 0xcf, 0x90, 0x6b, 0x68, 0x7c}} , - {{0x33, 0x15, 0xd7, 0x7f, 0x1a, 0xd5, 0x21, 0x58, 0xc4, 0x18, 0xa5, 0xf0, 0xcc, 0x73, 0xa8, 0xfd, 0xfa, 0x18, 0xd1, 0x03, 0x91, 0x8d, 0x52, 0xd2, 0xa3, 0xa4, 0xd3, 0xb1, 0xea, 0x1d, 0x0f, 0x00}}}, -{{{0xcc, 0x48, 0x83, 0x90, 0xe5, 0xfd, 0x3f, 0x84, 0xaa, 0xf9, 0x8b, 0x82, 0x59, 0x24, 0x34, 0x68, 0x4f, 0x1c, 0x23, 0xd9, 0xcc, 0x71, 0xe1, 0x7f, 0x8c, 0xaf, 0xf1, 0xee, 0x00, 0xb6, 0xa0, 0x77}} , - {{0xf5, 0x1a, 0x61, 0xf7, 0x37, 0x9d, 0x00, 0xf4, 0xf2, 0x69, 0x6f, 0x4b, 0x01, 0x85, 0x19, 0x45, 0x4d, 0x7f, 0x02, 0x7c, 0x6a, 0x05, 0x47, 0x6c, 0x1f, 0x81, 0x20, 0xd4, 0xe8, 0x50, 0x27, 0x72}}}, -{{{0x2c, 0x3a, 0xe5, 0xad, 0xf4, 0xdd, 0x2d, 0xf7, 0x5c, 0x44, 0xb5, 0x5b, 0x21, 0xa3, 0x89, 0x5f, 0x96, 0x45, 0xca, 0x4d, 0xa4, 0x21, 0x99, 0x70, 0xda, 0xc4, 0xc4, 0xa0, 0xe5, 0xf4, 0xec, 0x0a}} , - {{0x07, 0x68, 0x21, 0x65, 0xe9, 0x08, 0xa0, 0x0b, 0x6a, 0x4a, 0xba, 0xb5, 0x80, 0xaf, 0xd0, 0x1b, 0xc5, 0xf5, 0x4b, 0x73, 0x50, 0x60, 0x2d, 0x71, 0x69, 0x61, 0x0e, 0xc0, 0x20, 0x40, 0x30, 0x19}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xd0, 0x75, 0x57, 0x3b, 0xeb, 0x5c, 0x14, 0x56, 0x50, 0xc9, 0x4f, 0xb8, 0xb8, 0x1e, 0xa3, 0xf4, 0xab, 0xf5, 0xa9, 0x20, 0x15, 0x94, 0x82, 0xda, 0x96, 0x1c, 0x9b, 0x59, 0x8c, 0xff, 0xf4, 0x51}} , - {{0xc1, 0x3a, 0x86, 0xd7, 0xb0, 0x06, 0x84, 0x7f, 0x1b, 0xbd, 0xd4, 0x07, 0x78, 0x80, 0x2e, 0xb1, 0xb4, 0xee, 0x52, 0x38, 0xee, 0x9a, 0xf9, 0xf6, 0xf3, 0x41, 0x6e, 0xd4, 0x88, 0x95, 0xac, 0x35}}}, -{{{0x41, 0x97, 0xbf, 0x71, 0x6a, 0x9b, 0x72, 0xec, 0xf3, 0xf8, 0x6b, 0xe6, 0x0e, 0x6c, 0x69, 0xa5, 0x2f, 0x68, 0x52, 0xd8, 0x61, 0x81, 0xc0, 0x63, 0x3f, 0xa6, 0x3c, 0x13, 0x90, 0xe6, 0x8d, 0x56}} , - {{0xe8, 0x39, 0x30, 0x77, 0x23, 0xb1, 0xfd, 0x1b, 0x3d, 0x3e, 0x74, 0x4d, 0x7f, 0xae, 0x5b, 0x3a, 0xb4, 0x65, 0x0e, 0x3a, 0x43, 0xdc, 0xdc, 0x41, 0x47, 0xe6, 0xe8, 0x92, 0x09, 0x22, 0x48, 0x4c}}}, -{{{0x85, 0x57, 0x9f, 0xb5, 0xc8, 0x06, 0xb2, 0x9f, 0x47, 0x3f, 0xf0, 0xfa, 0xe6, 0xa9, 0xb1, 0x9b, 0x6f, 0x96, 0x7d, 0xf9, 0xa4, 0x65, 0x09, 0x75, 0x32, 0xa6, 0x6c, 0x7f, 0x47, 0x4b, 0x2f, 0x4f}} , - {{0x34, 0xe9, 0x59, 0x93, 0x9d, 0x26, 0x80, 0x54, 0xf2, 0xcc, 0x3c, 0xc2, 0x25, 0x85, 0xe3, 0x6a, 0xc1, 0x62, 0x04, 0xa7, 0x08, 0x32, 0x6d, 0xa1, 0x39, 0x84, 0x8a, 0x3b, 0x87, 0x5f, 0x11, 0x13}}}, -{{{0xda, 0x03, 0x34, 0x66, 0xc4, 0x0c, 0x73, 0x6e, 0xbc, 0x24, 0xb5, 0xf9, 0x70, 0x81, 0x52, 0xe9, 0xf4, 0x7c, 0x23, 0xdd, 0x9f, 0xb8, 0x46, 0xef, 0x1d, 0x22, 0x55, 0x7d, 0x71, 0xc4, 0x42, 0x33}} , - {{0xc5, 0x37, 0x69, 0x5b, 0xa8, 0xc6, 0x9d, 0xa4, 0xfc, 0x61, 0x6e, 0x68, 0x46, 0xea, 0xd7, 0x1c, 0x67, 0xd2, 0x7d, 0xfa, 0xf1, 0xcc, 0x54, 0x8d, 0x36, 0x35, 0xc9, 0x00, 0xdf, 0x6c, 0x67, 0x50}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x9a, 0x4d, 0x42, 0x29, 0x5d, 0xa4, 0x6b, 0x6f, 0xa8, 0x8a, 0x4d, 0x91, 0x7b, 0xd2, 0xdf, 0x36, 0xef, 0x01, 0x22, 0xc5, 0xcc, 0x8d, 0xeb, 0x58, 0x3d, 0xb3, 0x50, 0xfc, 0x8b, 0x97, 0x96, 0x33}} , - {{0x93, 0x33, 0x07, 0xc8, 0x4a, 0xca, 0xd0, 0xb1, 0xab, 0xbd, 0xdd, 0xa7, 0x7c, 0xac, 0x3e, 0x45, 0xcb, 0xcc, 0x07, 0x91, 0xbf, 0x35, 0x9d, 0xcb, 0x7d, 0x12, 0x3c, 0x11, 0x59, 0x13, 0xcf, 0x5c}}}, -{{{0x45, 0xb8, 0x41, 0xd7, 0xab, 0x07, 0x15, 0x00, 0x8e, 0xce, 0xdf, 0xb2, 0x43, 0x5c, 0x01, 0xdc, 0xf4, 0x01, 0x51, 0x95, 0x10, 0x5a, 0xf6, 0x24, 0x24, 0xa0, 0x19, 0x3a, 0x09, 0x2a, 0xaa, 0x3f}} , - {{0xdc, 0x8e, 0xeb, 0xc6, 0xbf, 0xdd, 0x11, 0x7b, 0xe7, 0x47, 0xe6, 0xce, 0xe7, 0xb6, 0xc5, 0xe8, 0x8a, 0xdc, 0x4b, 0x57, 0x15, 0x3b, 0x66, 0xca, 0x89, 0xa3, 0xfd, 0xac, 0x0d, 0xe1, 0x1d, 0x7a}}}, -{{{0x89, 0xef, 0xbf, 0x03, 0x75, 0xd0, 0x29, 0x50, 0xcb, 0x7d, 0xd6, 0xbe, 0xad, 0x5f, 0x7b, 0x00, 0x32, 0xaa, 0x98, 0xed, 0x3f, 0x8f, 0x92, 0xcb, 0x81, 0x56, 0x01, 0x63, 0x64, 0xa3, 0x38, 0x39}} , - {{0x8b, 0xa4, 0xd6, 0x50, 0xb4, 0xaa, 0x5d, 0x64, 0x64, 0x76, 0x2e, 0xa1, 0xa6, 0xb3, 0xb8, 0x7c, 0x7a, 0x56, 0xf5, 0x5c, 0x4e, 0x84, 0x5c, 0xfb, 0xdd, 0xca, 0x48, 0x8b, 0x48, 0xb9, 0xba, 0x34}}}, -{{{0xc5, 0xe3, 0xe8, 0xae, 0x17, 0x27, 0xe3, 0x64, 0x60, 0x71, 0x47, 0x29, 0x02, 0x0f, 0x92, 0x5d, 0x10, 0x93, 0xc8, 0x0e, 0xa1, 0xed, 0xba, 0xa9, 0x96, 0x1c, 0xc5, 0x76, 0x30, 0xcd, 0xf9, 0x30}} , - {{0x95, 0xb0, 0xbd, 0x8c, 0xbc, 0xa7, 0x4f, 0x7e, 0xfd, 0x4e, 0x3a, 0xbf, 0x5f, 0x04, 0x79, 0x80, 0x2b, 0x5a, 0x9f, 0x4f, 0x68, 0x21, 0x19, 0x71, 0xc6, 0x20, 0x01, 0x42, 0xaa, 0xdf, 0xae, 0x2c}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x90, 0x6e, 0x7e, 0x4b, 0x71, 0x93, 0xc0, 0x72, 0xed, 0xeb, 0x71, 0x24, 0x97, 0x26, 0x9c, 0xfe, 0xcb, 0x3e, 0x59, 0x19, 0xa8, 0x0f, 0x75, 0x7d, 0xbe, 0x18, 0xe6, 0x96, 0x1e, 0x95, 0x70, 0x60}} , - {{0x89, 0x66, 0x3e, 0x1d, 0x4c, 0x5f, 0xfe, 0xc0, 0x04, 0x43, 0xd6, 0x44, 0x19, 0xb5, 0xad, 0xc7, 0x22, 0xdc, 0x71, 0x28, 0x64, 0xde, 0x41, 0x38, 0x27, 0x8f, 0x2c, 0x6b, 0x08, 0xb8, 0xb8, 0x7b}}}, -{{{0x3d, 0x70, 0x27, 0x9d, 0xd9, 0xaf, 0xb1, 0x27, 0xaf, 0xe3, 0x5d, 0x1e, 0x3a, 0x30, 0x54, 0x61, 0x60, 0xe8, 0xc3, 0x26, 0x3a, 0xbc, 0x7e, 0xf5, 0x81, 0xdd, 0x64, 0x01, 0x04, 0xeb, 0xc0, 0x1e}} , - {{0xda, 0x2c, 0xa4, 0xd1, 0xa1, 0xc3, 0x5c, 0x6e, 0x32, 0x07, 0x1f, 0xb8, 0x0e, 0x19, 0x9e, 0x99, 0x29, 0x33, 0x9a, 0xae, 0x7a, 0xed, 0x68, 0x42, 0x69, 0x7c, 0x07, 0xb3, 0x38, 0x2c, 0xf6, 0x3d}}}, -{{{0x64, 0xaa, 0xb5, 0x88, 0x79, 0x65, 0x38, 0x8c, 0x94, 0xd6, 0x62, 0x37, 0x7d, 0x64, 0xcd, 0x3a, 0xeb, 0xff, 0xe8, 0x81, 0x09, 0xc7, 0x6a, 0x50, 0x09, 0x0d, 0x28, 0x03, 0x0d, 0x9a, 0x93, 0x0a}} , - {{0x42, 0xa3, 0xf1, 0xc5, 0xb4, 0x0f, 0xd8, 0xc8, 0x8d, 0x15, 0x31, 0xbd, 0xf8, 0x07, 0x8b, 0xcd, 0x08, 0x8a, 0xfb, 0x18, 0x07, 0xfe, 0x8e, 0x52, 0x86, 0xef, 0xbe, 0xec, 0x49, 0x52, 0x99, 0x08}}}, -{{{0x0f, 0xa9, 0xd5, 0x01, 0xaa, 0x48, 0x4f, 0x28, 0x66, 0x32, 0x1a, 0xba, 0x7c, 0xea, 0x11, 0x80, 0x17, 0x18, 0x9b, 0x56, 0x88, 0x25, 0x06, 0x69, 0x12, 0x2c, 0xea, 0x56, 0x69, 0x41, 0x24, 0x19}} , - {{0xde, 0x21, 0xf0, 0xda, 0x8a, 0xfb, 0xb1, 0xb8, 0xcd, 0xc8, 0x6a, 0x82, 0x19, 0x73, 0xdb, 0xc7, 0xcf, 0x88, 0xeb, 0x96, 0xee, 0x6f, 0xfb, 0x06, 0xd2, 0xcd, 0x7d, 0x7b, 0x12, 0x28, 0x8e, 0x0c}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x93, 0x44, 0x97, 0xce, 0x28, 0xff, 0x3a, 0x40, 0xc4, 0xf5, 0xf6, 0x9b, 0xf4, 0x6b, 0x07, 0x84, 0xfb, 0x98, 0xd8, 0xec, 0x8c, 0x03, 0x57, 0xec, 0x49, 0xed, 0x63, 0xb6, 0xaa, 0xff, 0x98, 0x28}} , - {{0x3d, 0x16, 0x35, 0xf3, 0x46, 0xbc, 0xb3, 0xf4, 0xc6, 0xb6, 0x4f, 0xfa, 0xf4, 0xa0, 0x13, 0xe6, 0x57, 0x45, 0x93, 0xb9, 0xbc, 0xd6, 0x59, 0xe7, 0x77, 0x94, 0x6c, 0xab, 0x96, 0x3b, 0x4f, 0x09}}}, -{{{0x5a, 0xf7, 0x6b, 0x01, 0x12, 0x4f, 0x51, 0xc1, 0x70, 0x84, 0x94, 0x47, 0xb2, 0x01, 0x6c, 0x71, 0xd7, 0xcc, 0x17, 0x66, 0x0f, 0x59, 0x5d, 0x5d, 0x10, 0x01, 0x57, 0x11, 0xf5, 0xdd, 0xe2, 0x34}} , - {{0x26, 0xd9, 0x1f, 0x5c, 0x58, 0xac, 0x8b, 0x03, 0xd2, 0xc3, 0x85, 0x0f, 0x3a, 0xc3, 0x7f, 0x6d, 0x8e, 0x86, 0xcd, 0x52, 0x74, 0x8f, 0x55, 0x77, 0x17, 0xb7, 0x8e, 0xb7, 0x88, 0xea, 0xda, 0x1b}}}, -{{{0xb6, 0xea, 0x0e, 0x40, 0x93, 0x20, 0x79, 0x35, 0x6a, 0x61, 0x84, 0x5a, 0x07, 0x6d, 0xf9, 0x77, 0x6f, 0xed, 0x69, 0x1c, 0x0d, 0x25, 0x76, 0xcc, 0xf0, 0xdb, 0xbb, 0xc5, 0xad, 0xe2, 0x26, 0x57}} , - {{0xcf, 0xe8, 0x0e, 0x6b, 0x96, 0x7d, 0xed, 0x27, 0xd1, 0x3c, 0xa9, 0xd9, 0x50, 0xa9, 0x98, 0x84, 0x5e, 0x86, 0xef, 0xd6, 0xf0, 0xf8, 0x0e, 0x89, 0x05, 0x2f, 0xd9, 0x5f, 0x15, 0x5f, 0x73, 0x79}}}, -{{{0xc8, 0x5c, 0x16, 0xfe, 0xed, 0x9f, 0x26, 0x56, 0xf6, 0x4b, 0x9f, 0xa7, 0x0a, 0x85, 0xfe, 0xa5, 0x8c, 0x87, 0xdd, 0x98, 0xce, 0x4e, 0xc3, 0x58, 0x55, 0xb2, 0x7b, 0x3d, 0xd8, 0x6b, 0xb5, 0x4c}} , - {{0x65, 0x38, 0xa0, 0x15, 0xfa, 0xa7, 0xb4, 0x8f, 0xeb, 0xc4, 0x86, 0x9b, 0x30, 0xa5, 0x5e, 0x4d, 0xea, 0x8a, 0x9a, 0x9f, 0x1a, 0xd8, 0x5b, 0x53, 0x14, 0x19, 0x25, 0x63, 0xb4, 0x6f, 0x1f, 0x5d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xac, 0x8f, 0xbc, 0x1e, 0x7d, 0x8b, 0x5a, 0x0b, 0x8d, 0xaf, 0x76, 0x2e, 0x71, 0xe3, 0x3b, 0x6f, 0x53, 0x2f, 0x3e, 0x90, 0x95, 0xd4, 0x35, 0x14, 0x4f, 0x8c, 0x3c, 0xce, 0x57, 0x1c, 0x76, 0x49}} , - {{0xa8, 0x50, 0xe1, 0x61, 0x6b, 0x57, 0x35, 0xeb, 0x44, 0x0b, 0x0c, 0x6e, 0xf9, 0x25, 0x80, 0x74, 0xf2, 0x8f, 0x6f, 0x7a, 0x3e, 0x7f, 0x2d, 0xf3, 0x4e, 0x09, 0x65, 0x10, 0x5e, 0x03, 0x25, 0x32}}}, -{{{0xa9, 0x60, 0xdc, 0x0f, 0x64, 0xe5, 0x1d, 0xe2, 0x8d, 0x4f, 0x79, 0x2f, 0x0e, 0x24, 0x02, 0x00, 0x05, 0x77, 0x43, 0x25, 0x3d, 0x6a, 0xc7, 0xb7, 0xbf, 0x04, 0x08, 0x65, 0xf4, 0x39, 0x4b, 0x65}} , - {{0x96, 0x19, 0x12, 0x6b, 0x6a, 0xb7, 0xe3, 0xdc, 0x45, 0x9b, 0xdb, 0xb4, 0xa8, 0xae, 0xdc, 0xa8, 0x14, 0x44, 0x65, 0x62, 0xce, 0x34, 0x9a, 0x84, 0x18, 0x12, 0x01, 0xf1, 0xe2, 0x7b, 0xce, 0x50}}}, -{{{0x41, 0x21, 0x30, 0x53, 0x1b, 0x47, 0x01, 0xb7, 0x18, 0xd8, 0x82, 0x57, 0xbd, 0xa3, 0x60, 0xf0, 0x32, 0xf6, 0x5b, 0xf0, 0x30, 0x88, 0x91, 0x59, 0xfd, 0x90, 0xa2, 0xb9, 0x55, 0x93, 0x21, 0x34}} , - {{0x97, 0x67, 0x9e, 0xeb, 0x6a, 0xf9, 0x6e, 0xd6, 0x73, 0xe8, 0x6b, 0x29, 0xec, 0x63, 0x82, 0x00, 0xa8, 0x99, 0x1c, 0x1d, 0x30, 0xc8, 0x90, 0x52, 0x90, 0xb6, 0x6a, 0x80, 0x4e, 0xff, 0x4b, 0x51}}}, -{{{0x0f, 0x7d, 0x63, 0x8c, 0x6e, 0x5c, 0xde, 0x30, 0xdf, 0x65, 0xfa, 0x2e, 0xb0, 0xa3, 0x25, 0x05, 0x54, 0xbd, 0x25, 0xba, 0x06, 0xae, 0xdf, 0x8b, 0xd9, 0x1b, 0xea, 0x38, 0xb3, 0x05, 0x16, 0x09}} , - {{0xc7, 0x8c, 0xbf, 0x64, 0x28, 0xad, 0xf8, 0xa5, 0x5a, 0x6f, 0xc9, 0xba, 0xd5, 0x7f, 0xd5, 0xd6, 0xbd, 0x66, 0x2f, 0x3d, 0xaa, 0x54, 0xf6, 0xba, 0x32, 0x22, 0x9a, 0x1e, 0x52, 0x05, 0xf4, 0x1d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xaa, 0x1f, 0xbb, 0xeb, 0xfe, 0xe4, 0x87, 0xfc, 0xb1, 0x2c, 0xb7, 0x88, 0xf4, 0xc6, 0xb9, 0xf5, 0x24, 0x46, 0xf2, 0xa5, 0x9f, 0x8f, 0x8a, 0x93, 0x70, 0x69, 0xd4, 0x56, 0xec, 0xfd, 0x06, 0x46}} , - {{0x4e, 0x66, 0xcf, 0x4e, 0x34, 0xce, 0x0c, 0xd9, 0xa6, 0x50, 0xd6, 0x5e, 0x95, 0xaf, 0xe9, 0x58, 0xfa, 0xee, 0x9b, 0xb8, 0xa5, 0x0f, 0x35, 0xe0, 0x43, 0x82, 0x6d, 0x65, 0xe6, 0xd9, 0x00, 0x0f}}}, -{{{0x7b, 0x75, 0x3a, 0xfc, 0x64, 0xd3, 0x29, 0x7e, 0xdd, 0x49, 0x9a, 0x59, 0x53, 0xbf, 0xb4, 0xa7, 0x52, 0xb3, 0x05, 0xab, 0xc3, 0xaf, 0x16, 0x1a, 0x85, 0x42, 0x32, 0xa2, 0x86, 0xfa, 0x39, 0x43}} , - {{0x0e, 0x4b, 0xa3, 0x63, 0x8a, 0xfe, 0xa5, 0x58, 0xf1, 0x13, 0xbd, 0x9d, 0xaa, 0x7f, 0x76, 0x40, 0x70, 0x81, 0x10, 0x75, 0x99, 0xbb, 0xbe, 0x0b, 0x16, 0xe9, 0xba, 0x62, 0x34, 0xcc, 0x07, 0x6d}}}, -{{{0xc3, 0xf1, 0xc6, 0x93, 0x65, 0xee, 0x0b, 0xbc, 0xea, 0x14, 0xf0, 0xc1, 0xf8, 0x84, 0x89, 0xc2, 0xc9, 0xd7, 0xea, 0x34, 0xca, 0xa7, 0xc4, 0x99, 0xd5, 0x50, 0x69, 0xcb, 0xd6, 0x21, 0x63, 0x7c}} , - {{0x99, 0xeb, 0x7c, 0x31, 0x73, 0x64, 0x67, 0x7f, 0x0c, 0x66, 0xaa, 0x8c, 0x69, 0x91, 0xe2, 0x26, 0xd3, 0x23, 0xe2, 0x76, 0x5d, 0x32, 0x52, 0xdf, 0x5d, 0xc5, 0x8f, 0xb7, 0x7c, 0x84, 0xb3, 0x70}}}, -{{{0xeb, 0x01, 0xc7, 0x36, 0x97, 0x4e, 0xb6, 0xab, 0x5f, 0x0d, 0x2c, 0xba, 0x67, 0x64, 0x55, 0xde, 0xbc, 0xff, 0xa6, 0xec, 0x04, 0xd3, 0x8d, 0x39, 0x56, 0x5e, 0xee, 0xf8, 0xe4, 0x2e, 0x33, 0x62}} , - {{0x65, 0xef, 0xb8, 0x9f, 0xc8, 0x4b, 0xa7, 0xfd, 0x21, 0x49, 0x9b, 0x92, 0x35, 0x82, 0xd6, 0x0a, 0x9b, 0xf2, 0x79, 0xf1, 0x47, 0x2f, 0x6a, 0x7e, 0x9f, 0xcf, 0x18, 0x02, 0x3c, 0xfb, 0x1b, 0x3e}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x2f, 0x8b, 0xc8, 0x40, 0x51, 0xd1, 0xac, 0x1a, 0x0b, 0xe4, 0xa9, 0xa2, 0x42, 0x21, 0x19, 0x2f, 0x7b, 0x97, 0xbf, 0xf7, 0x57, 0x6d, 0x3f, 0x3d, 0x4f, 0x0f, 0xe2, 0xb2, 0x81, 0x00, 0x9e, 0x7b}} , - {{0x8c, 0x85, 0x2b, 0xc4, 0xfc, 0xf1, 0xab, 0xe8, 0x79, 0x22, 0xc4, 0x84, 0x17, 0x3a, 0xfa, 0x86, 0xa6, 0x7d, 0xf9, 0xf3, 0x6f, 0x03, 0x57, 0x20, 0x4d, 0x79, 0xf9, 0x6e, 0x71, 0x54, 0x38, 0x09}}}, -{{{0x40, 0x29, 0x74, 0xa8, 0x2f, 0x5e, 0xf9, 0x79, 0xa4, 0xf3, 0x3e, 0xb9, 0xfd, 0x33, 0x31, 0xac, 0x9a, 0x69, 0x88, 0x1e, 0x77, 0x21, 0x2d, 0xf3, 0x91, 0x52, 0x26, 0x15, 0xb2, 0xa6, 0xcf, 0x7e}} , - {{0xc6, 0x20, 0x47, 0x6c, 0xa4, 0x7d, 0xcb, 0x63, 0xea, 0x5b, 0x03, 0xdf, 0x3e, 0x88, 0x81, 0x6d, 0xce, 0x07, 0x42, 0x18, 0x60, 0x7e, 0x7b, 0x55, 0xfe, 0x6a, 0xf3, 0xda, 0x5c, 0x8b, 0x95, 0x10}}}, -{{{0x62, 0xe4, 0x0d, 0x03, 0xb4, 0xd7, 0xcd, 0xfa, 0xbd, 0x46, 0xdf, 0x93, 0x71, 0x10, 0x2c, 0xa8, 0x3b, 0xb6, 0x09, 0x05, 0x70, 0x84, 0x43, 0x29, 0xa8, 0x59, 0xf5, 0x8e, 0x10, 0xe4, 0xd7, 0x20}} , - {{0x57, 0x82, 0x1c, 0xab, 0xbf, 0x62, 0x70, 0xe8, 0xc4, 0xcf, 0xf0, 0x28, 0x6e, 0x16, 0x3c, 0x08, 0x78, 0x89, 0x85, 0x46, 0x0f, 0xf6, 0x7f, 0xcf, 0xcb, 0x7e, 0xb8, 0x25, 0xe9, 0x5a, 0xfa, 0x03}}}, -{{{0xfb, 0x95, 0x92, 0x63, 0x50, 0xfc, 0x62, 0xf0, 0xa4, 0x5e, 0x8c, 0x18, 0xc2, 0x17, 0x24, 0xb7, 0x78, 0xc2, 0xa9, 0xe7, 0x6a, 0x32, 0xd6, 0x29, 0x85, 0xaf, 0xcb, 0x8d, 0x91, 0x13, 0xda, 0x6b}} , - {{0x36, 0x0a, 0xc2, 0xb6, 0x4b, 0xa5, 0x5d, 0x07, 0x17, 0x41, 0x31, 0x5f, 0x62, 0x46, 0xf8, 0x92, 0xf9, 0x66, 0x48, 0x73, 0xa6, 0x97, 0x0d, 0x7d, 0x88, 0xee, 0x62, 0xb1, 0x03, 0xa8, 0x3f, 0x2c}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x4a, 0xb1, 0x70, 0x8a, 0xa9, 0xe8, 0x63, 0x79, 0x00, 0xe2, 0x25, 0x16, 0xca, 0x4b, 0x0f, 0xa4, 0x66, 0xad, 0x19, 0x9f, 0x88, 0x67, 0x0c, 0x8b, 0xc2, 0x4a, 0x5b, 0x2b, 0x6d, 0x95, 0xaf, 0x19}} , - {{0x8b, 0x9d, 0xb6, 0xcc, 0x60, 0xb4, 0x72, 0x4f, 0x17, 0x69, 0x5a, 0x4a, 0x68, 0x34, 0xab, 0xa1, 0x45, 0x32, 0x3c, 0x83, 0x87, 0x72, 0x30, 0x54, 0x77, 0x68, 0xae, 0xfb, 0xb5, 0x8b, 0x22, 0x5e}}}, -{{{0xf1, 0xb9, 0x87, 0x35, 0xc5, 0xbb, 0xb9, 0xcf, 0xf5, 0xd6, 0xcd, 0xd5, 0x0c, 0x7c, 0x0e, 0xe6, 0x90, 0x34, 0xfb, 0x51, 0x42, 0x1e, 0x6d, 0xac, 0x9a, 0x46, 0xc4, 0x97, 0x29, 0x32, 0xbf, 0x45}} , - {{0x66, 0x9e, 0xc6, 0x24, 0xc0, 0xed, 0xa5, 0x5d, 0x88, 0xd4, 0xf0, 0x73, 0x97, 0x7b, 0xea, 0x7f, 0x42, 0xff, 0x21, 0xa0, 0x9b, 0x2f, 0x9a, 0xfd, 0x53, 0x57, 0x07, 0x84, 0x48, 0x88, 0x9d, 0x52}}}, -{{{0xc6, 0x96, 0x48, 0x34, 0x2a, 0x06, 0xaf, 0x94, 0x3d, 0xf4, 0x1a, 0xcf, 0xf2, 0xc0, 0x21, 0xc2, 0x42, 0x5e, 0xc8, 0x2f, 0x35, 0xa2, 0x3e, 0x29, 0xfa, 0x0c, 0x84, 0xe5, 0x89, 0x72, 0x7c, 0x06}} , - {{0x32, 0x65, 0x03, 0xe5, 0x89, 0xa6, 0x6e, 0xb3, 0x5b, 0x8e, 0xca, 0xeb, 0xfe, 0x22, 0x56, 0x8b, 0x5d, 0x14, 0x4b, 0x4d, 0xf9, 0xbe, 0xb5, 0xf5, 0xe6, 0x5c, 0x7b, 0x8b, 0xf4, 0x13, 0x11, 0x34}}}, -{{{0x07, 0xc6, 0x22, 0x15, 0xe2, 0x9c, 0x60, 0xa2, 0x19, 0xd9, 0x27, 0xae, 0x37, 0x4e, 0xa6, 0xc9, 0x80, 0xa6, 0x91, 0x8f, 0x12, 0x49, 0xe5, 0x00, 0x18, 0x47, 0xd1, 0xd7, 0x28, 0x22, 0x63, 0x39}} , - {{0xe8, 0xe2, 0x00, 0x7e, 0xf2, 0x9e, 0x1e, 0x99, 0x39, 0x95, 0x04, 0xbd, 0x1e, 0x67, 0x7b, 0xb2, 0x26, 0xac, 0xe6, 0xaa, 0xe2, 0x46, 0xd5, 0xe4, 0xe8, 0x86, 0xbd, 0xab, 0x7c, 0x55, 0x59, 0x6f}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x24, 0x64, 0x6e, 0x9b, 0x35, 0x71, 0x78, 0xce, 0x33, 0x03, 0x21, 0x33, 0x36, 0xf1, 0x73, 0x9b, 0xb9, 0x15, 0x8b, 0x2c, 0x69, 0xcf, 0x4d, 0xed, 0x4f, 0x4d, 0x57, 0x14, 0x13, 0x82, 0xa4, 0x4d}} , - {{0x65, 0x6e, 0x0a, 0xa4, 0x59, 0x07, 0x17, 0xf2, 0x6b, 0x4a, 0x1f, 0x6e, 0xf6, 0xb5, 0xbc, 0x62, 0xe4, 0xb6, 0xda, 0xa2, 0x93, 0xbc, 0x29, 0x05, 0xd2, 0xd2, 0x73, 0x46, 0x03, 0x16, 0x40, 0x31}}}, -{{{0x4c, 0x73, 0x6d, 0x15, 0xbd, 0xa1, 0x4d, 0x5c, 0x13, 0x0b, 0x24, 0x06, 0x98, 0x78, 0x1c, 0x5b, 0xeb, 0x1f, 0x18, 0x54, 0x43, 0xd9, 0x55, 0x66, 0xda, 0x29, 0x21, 0xe8, 0xb8, 0x3c, 0x42, 0x22}} , - {{0xb4, 0xcd, 0x08, 0x6f, 0x15, 0x23, 0x1a, 0x0b, 0x22, 0xed, 0xd1, 0xf1, 0xa7, 0xc7, 0x73, 0x45, 0xf3, 0x9e, 0xce, 0x76, 0xb7, 0xf6, 0x39, 0xb6, 0x8e, 0x79, 0xbe, 0xe9, 0x9b, 0xcf, 0x7d, 0x62}}}, -{{{0x92, 0x5b, 0xfc, 0x72, 0xfd, 0xba, 0xf1, 0xfd, 0xa6, 0x7c, 0x95, 0xe3, 0x61, 0x3f, 0xe9, 0x03, 0xd4, 0x2b, 0xd4, 0x20, 0xd9, 0xdb, 0x4d, 0x32, 0x3e, 0xf5, 0x11, 0x64, 0xe3, 0xb4, 0xbe, 0x32}} , - {{0x86, 0x17, 0x90, 0xe7, 0xc9, 0x1f, 0x10, 0xa5, 0x6a, 0x2d, 0x39, 0xd0, 0x3b, 0xc4, 0xa6, 0xe9, 0x59, 0x13, 0xda, 0x1a, 0xe6, 0xa0, 0xb9, 0x3c, 0x50, 0xb8, 0x40, 0x7c, 0x15, 0x36, 0x5a, 0x42}}}, -{{{0xb4, 0x0b, 0x32, 0xab, 0xdc, 0x04, 0x51, 0x55, 0x21, 0x1e, 0x0b, 0x75, 0x99, 0x89, 0x73, 0x35, 0x3a, 0x91, 0x2b, 0xfe, 0xe7, 0x49, 0xea, 0x76, 0xc1, 0xf9, 0x46, 0xb9, 0x53, 0x02, 0x23, 0x04}} , - {{0xfc, 0x5a, 0x1e, 0x1d, 0x74, 0x58, 0x95, 0xa6, 0x8f, 0x7b, 0x97, 0x3e, 0x17, 0x3b, 0x79, 0x2d, 0xa6, 0x57, 0xef, 0x45, 0x02, 0x0b, 0x4d, 0x6e, 0x9e, 0x93, 0x8d, 0x2f, 0xd9, 0x9d, 0xdb, 0x04}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xc0, 0xd7, 0x56, 0x97, 0x58, 0x91, 0xde, 0x09, 0x4f, 0x9f, 0xbe, 0x63, 0xb0, 0x83, 0x86, 0x43, 0x5d, 0xbc, 0xe0, 0xf3, 0xc0, 0x75, 0xbf, 0x8b, 0x8e, 0xaa, 0xf7, 0x8b, 0x64, 0x6e, 0xb0, 0x63}} , - {{0x16, 0xae, 0x8b, 0xe0, 0x9b, 0x24, 0x68, 0x5c, 0x44, 0xc2, 0xd0, 0x08, 0xb7, 0x7b, 0x62, 0xfd, 0x7f, 0xd8, 0xd4, 0xb7, 0x50, 0xfd, 0x2c, 0x1b, 0xbf, 0x41, 0x95, 0xd9, 0x8e, 0xd8, 0x17, 0x1b}}}, -{{{0x86, 0x55, 0x37, 0x8e, 0xc3, 0x38, 0x48, 0x14, 0xb5, 0x97, 0xd2, 0xa7, 0x54, 0x45, 0xf1, 0x35, 0x44, 0x38, 0x9e, 0xf1, 0x1b, 0xb6, 0x34, 0x00, 0x3c, 0x96, 0xee, 0x29, 0x00, 0xea, 0x2c, 0x0b}} , - {{0xea, 0xda, 0x99, 0x9e, 0x19, 0x83, 0x66, 0x6d, 0xe9, 0x76, 0x87, 0x50, 0xd1, 0xfd, 0x3c, 0x60, 0x87, 0xc6, 0x41, 0xd9, 0x8e, 0xdb, 0x5e, 0xde, 0xaa, 0x9a, 0xd3, 0x28, 0xda, 0x95, 0xea, 0x47}}}, -{{{0xd0, 0x80, 0xba, 0x19, 0xae, 0x1d, 0xa9, 0x79, 0xf6, 0x3f, 0xac, 0x5d, 0x6f, 0x96, 0x1f, 0x2a, 0xce, 0x29, 0xb2, 0xff, 0x37, 0xf1, 0x94, 0x8f, 0x0c, 0xb5, 0x28, 0xba, 0x9a, 0x21, 0xf6, 0x66}} , - {{0x02, 0xfb, 0x54, 0xb8, 0x05, 0xf3, 0x81, 0x52, 0x69, 0x34, 0x46, 0x9d, 0x86, 0x76, 0x8f, 0xd7, 0xf8, 0x6a, 0x66, 0xff, 0xe6, 0xa7, 0x90, 0xf7, 0x5e, 0xcd, 0x6a, 0x9b, 0x55, 0xfc, 0x9d, 0x48}}}, -{{{0xbd, 0xaa, 0x13, 0xe6, 0xcd, 0x45, 0x4a, 0xa4, 0x59, 0x0a, 0x64, 0xb1, 0x98, 0xd6, 0x34, 0x13, 0x04, 0xe6, 0x97, 0x94, 0x06, 0xcb, 0xd4, 0x4e, 0xbb, 0x96, 0xcd, 0xd1, 0x57, 0xd1, 0xe3, 0x06}} , - {{0x7a, 0x6c, 0x45, 0x27, 0xc4, 0x93, 0x7f, 0x7d, 0x7c, 0x62, 0x50, 0x38, 0x3a, 0x6b, 0xb5, 0x88, 0xc6, 0xd9, 0xf1, 0x78, 0x19, 0xb9, 0x39, 0x93, 0x3d, 0xc9, 0xe0, 0x9c, 0x3c, 0xce, 0xf5, 0x72}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x24, 0xea, 0x23, 0x7d, 0x56, 0x2c, 0xe2, 0x59, 0x0e, 0x85, 0x60, 0x04, 0x88, 0x5a, 0x74, 0x1e, 0x4b, 0xef, 0x13, 0xda, 0x4c, 0xff, 0x83, 0x45, 0x85, 0x3f, 0x08, 0x95, 0x2c, 0x20, 0x13, 0x1f}} , - {{0x48, 0x5f, 0x27, 0x90, 0x5c, 0x02, 0x42, 0xad, 0x78, 0x47, 0x5c, 0xb5, 0x7e, 0x08, 0x85, 0x00, 0xfa, 0x7f, 0xfd, 0xfd, 0xe7, 0x09, 0x11, 0xf2, 0x7e, 0x1b, 0x38, 0x6c, 0x35, 0x6d, 0x33, 0x66}}}, -{{{0x93, 0x03, 0x36, 0x81, 0xac, 0xe4, 0x20, 0x09, 0x35, 0x4c, 0x45, 0xb2, 0x1e, 0x4c, 0x14, 0x21, 0xe6, 0xe9, 0x8a, 0x7b, 0x8d, 0xfe, 0x1e, 0xc6, 0x3e, 0xc1, 0x35, 0xfa, 0xe7, 0x70, 0x4e, 0x1d}} , - {{0x61, 0x2e, 0xc2, 0xdd, 0x95, 0x57, 0xd1, 0xab, 0x80, 0xe8, 0x63, 0x17, 0xb5, 0x48, 0xe4, 0x8a, 0x11, 0x9e, 0x72, 0xbe, 0x85, 0x8d, 0x51, 0x0a, 0xf2, 0x9f, 0xe0, 0x1c, 0xa9, 0x07, 0x28, 0x7b}}}, -{{{0xbb, 0x71, 0x14, 0x5e, 0x26, 0x8c, 0x3d, 0xc8, 0xe9, 0x7c, 0xd3, 0xd6, 0xd1, 0x2f, 0x07, 0x6d, 0xe6, 0xdf, 0xfb, 0x79, 0xd6, 0x99, 0x59, 0x96, 0x48, 0x40, 0x0f, 0x3a, 0x7b, 0xb2, 0xa0, 0x72}} , - {{0x4e, 0x3b, 0x69, 0xc8, 0x43, 0x75, 0x51, 0x6c, 0x79, 0x56, 0xe4, 0xcb, 0xf7, 0xa6, 0x51, 0xc2, 0x2c, 0x42, 0x0b, 0xd4, 0x82, 0x20, 0x1c, 0x01, 0x08, 0x66, 0xd7, 0xbf, 0x04, 0x56, 0xfc, 0x02}}}, -{{{0x24, 0xe8, 0xb7, 0x60, 0xae, 0x47, 0x80, 0xfc, 0xe5, 0x23, 0xe7, 0xc2, 0xc9, 0x85, 0xe6, 0x98, 0xa0, 0x29, 0x4e, 0xe1, 0x84, 0x39, 0x2d, 0x95, 0x2c, 0xf3, 0x45, 0x3c, 0xff, 0xaf, 0x27, 0x4c}} , - {{0x6b, 0xa6, 0xf5, 0x4b, 0x11, 0xbd, 0xba, 0x5b, 0x9e, 0xc4, 0xa4, 0x51, 0x1e, 0xbe, 0xd0, 0x90, 0x3a, 0x9c, 0xc2, 0x26, 0xb6, 0x1e, 0xf1, 0x95, 0x7d, 0xc8, 0x6d, 0x52, 0xe6, 0x99, 0x2c, 0x5f}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x85, 0xe0, 0x24, 0x32, 0xb4, 0xd1, 0xef, 0xfc, 0x69, 0xa2, 0xbf, 0x8f, 0x72, 0x2c, 0x95, 0xf6, 0xe4, 0x6e, 0x7d, 0x90, 0xf7, 0x57, 0x81, 0xa0, 0xf7, 0xda, 0xef, 0x33, 0x07, 0xe3, 0x6b, 0x78}} , - {{0x36, 0x27, 0x3e, 0xc6, 0x12, 0x07, 0xab, 0x4e, 0xbe, 0x69, 0x9d, 0xb3, 0xbe, 0x08, 0x7c, 0x2a, 0x47, 0x08, 0xfd, 0xd4, 0xcd, 0x0e, 0x27, 0x34, 0x5b, 0x98, 0x34, 0x2f, 0x77, 0x5f, 0x3a, 0x65}}}, -{{{0x13, 0xaa, 0x2e, 0x4c, 0xf0, 0x22, 0xb8, 0x6c, 0xb3, 0x19, 0x4d, 0xeb, 0x6b, 0xd0, 0xa4, 0xc6, 0x9c, 0xdd, 0xc8, 0x5b, 0x81, 0x57, 0x89, 0xdf, 0x33, 0xa9, 0x68, 0x49, 0x80, 0xe4, 0xfe, 0x21}} , - {{0x00, 0x17, 0x90, 0x30, 0xe9, 0xd3, 0x60, 0x30, 0x31, 0xc2, 0x72, 0x89, 0x7a, 0x36, 0xa5, 0xbd, 0x39, 0x83, 0x85, 0x50, 0xa1, 0x5d, 0x6c, 0x41, 0x1d, 0xb5, 0x2c, 0x07, 0x40, 0x77, 0x0b, 0x50}}}, -{{{0x64, 0x34, 0xec, 0xc0, 0x9e, 0x44, 0x41, 0xaf, 0xa0, 0x36, 0x05, 0x6d, 0xea, 0x30, 0x25, 0x46, 0x35, 0x24, 0x9d, 0x86, 0xbd, 0x95, 0xf1, 0x6a, 0x46, 0xd7, 0x94, 0x54, 0xf9, 0x3b, 0xbd, 0x5d}} , - {{0x77, 0x5b, 0xe2, 0x37, 0xc7, 0xe1, 0x7c, 0x13, 0x8c, 0x9f, 0x7b, 0x7b, 0x2a, 0xce, 0x42, 0xa3, 0xb9, 0x2a, 0x99, 0xa8, 0xc0, 0xd8, 0x3c, 0x86, 0xb0, 0xfb, 0xe9, 0x76, 0x77, 0xf7, 0xf5, 0x56}}}, -{{{0xdf, 0xb3, 0x46, 0x11, 0x6e, 0x13, 0xb7, 0x28, 0x4e, 0x56, 0xdd, 0xf1, 0xac, 0xad, 0x58, 0xc3, 0xf8, 0x88, 0x94, 0x5e, 0x06, 0x98, 0xa1, 0xe4, 0x6a, 0xfb, 0x0a, 0x49, 0x5d, 0x8a, 0xfe, 0x77}} , - {{0x46, 0x02, 0xf5, 0xa5, 0xaf, 0xc5, 0x75, 0x6d, 0xba, 0x45, 0x35, 0x0a, 0xfe, 0xc9, 0xac, 0x22, 0x91, 0x8d, 0x21, 0x95, 0x33, 0x03, 0xc0, 0x8a, 0x16, 0xf3, 0x39, 0xe0, 0x01, 0x0f, 0x53, 0x3c}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x34, 0x75, 0x37, 0x1f, 0x34, 0x4e, 0xa9, 0x1d, 0x68, 0x67, 0xf8, 0x49, 0x98, 0x96, 0xfc, 0x4c, 0x65, 0x97, 0xf7, 0x02, 0x4a, 0x52, 0x6c, 0x01, 0xbd, 0x48, 0xbb, 0x1b, 0xed, 0xa4, 0xe2, 0x53}} , - {{0x59, 0xd5, 0x9b, 0x5a, 0xa2, 0x90, 0xd3, 0xb8, 0x37, 0x4c, 0x55, 0x82, 0x28, 0x08, 0x0f, 0x7f, 0xaa, 0x81, 0x65, 0xe0, 0x0c, 0x52, 0xc9, 0xa3, 0x32, 0x27, 0x64, 0xda, 0xfd, 0x34, 0x23, 0x5a}}}, -{{{0xb5, 0xb0, 0x0c, 0x4d, 0xb3, 0x7b, 0x23, 0xc8, 0x1f, 0x8a, 0x39, 0x66, 0xe6, 0xba, 0x4c, 0x10, 0x37, 0xca, 0x9c, 0x7c, 0x05, 0x9e, 0xff, 0xc0, 0xf8, 0x8e, 0xb1, 0x8f, 0x6f, 0x67, 0x18, 0x26}} , - {{0x4b, 0x41, 0x13, 0x54, 0x23, 0x1a, 0xa4, 0x4e, 0xa9, 0x8b, 0x1e, 0x4b, 0xfc, 0x15, 0x24, 0xbb, 0x7e, 0xcb, 0xb6, 0x1e, 0x1b, 0xf5, 0xf2, 0xc8, 0x56, 0xec, 0x32, 0xa2, 0x60, 0x5b, 0xa0, 0x2a}}}, -{{{0xa4, 0x29, 0x47, 0x86, 0x2e, 0x92, 0x4f, 0x11, 0x4f, 0xf3, 0xb2, 0x5c, 0xd5, 0x3e, 0xa6, 0xb9, 0xc8, 0xe2, 0x33, 0x11, 0x1f, 0x01, 0x8f, 0xb0, 0x9b, 0xc7, 0xa5, 0xff, 0x83, 0x0f, 0x1e, 0x28}} , - {{0x1d, 0x29, 0x7a, 0xa1, 0xec, 0x8e, 0xb5, 0xad, 0xea, 0x02, 0x68, 0x60, 0x74, 0x29, 0x1c, 0xa5, 0xcf, 0xc8, 0x3b, 0x7d, 0x8b, 0x2b, 0x7c, 0xad, 0xa4, 0x40, 0x17, 0x51, 0x59, 0x7c, 0x2e, 0x5d}}}, -{{{0x0a, 0x6c, 0x4f, 0xbc, 0x3e, 0x32, 0xe7, 0x4a, 0x1a, 0x13, 0xc1, 0x49, 0x38, 0xbf, 0xf7, 0xc2, 0xd3, 0x8f, 0x6b, 0xad, 0x52, 0xf7, 0xcf, 0xbc, 0x27, 0xcb, 0x40, 0x67, 0x76, 0xcd, 0x6d, 0x56}} , - {{0xe5, 0xb0, 0x27, 0xad, 0xbe, 0x9b, 0xf2, 0xb5, 0x63, 0xde, 0x3a, 0x23, 0x95, 0xb7, 0x0a, 0x7e, 0xf3, 0x9e, 0x45, 0x6f, 0x19, 0x39, 0x75, 0x8f, 0x39, 0x3d, 0x0f, 0xc0, 0x9f, 0xf1, 0xe9, 0x51}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x88, 0xaa, 0x14, 0x24, 0x86, 0x94, 0x11, 0x12, 0x3e, 0x1a, 0xb5, 0xcc, 0xbb, 0xe0, 0x9c, 0xd5, 0x9c, 0x6d, 0xba, 0x58, 0x72, 0x8d, 0xfb, 0x22, 0x7b, 0x9f, 0x7c, 0x94, 0x30, 0xb3, 0x51, 0x21}} , - {{0xf6, 0x74, 0x3d, 0xf2, 0xaf, 0xd0, 0x1e, 0x03, 0x7c, 0x23, 0x6b, 0xc9, 0xfc, 0x25, 0x70, 0x90, 0xdc, 0x9a, 0xa4, 0xfb, 0x49, 0xfc, 0x3d, 0x0a, 0x35, 0x38, 0x6f, 0xe4, 0x7e, 0x50, 0x01, 0x2a}}}, -{{{0xd6, 0xe3, 0x96, 0x61, 0x3a, 0xfd, 0xef, 0x9b, 0x1f, 0x90, 0xa4, 0x24, 0x14, 0x5b, 0xc8, 0xde, 0x50, 0xb1, 0x1d, 0xaf, 0xe8, 0x55, 0x8a, 0x87, 0x0d, 0xfe, 0xaa, 0x3b, 0x82, 0x2c, 0x8d, 0x7b}} , - {{0x85, 0x0c, 0xaf, 0xf8, 0x83, 0x44, 0x49, 0xd9, 0x45, 0xcf, 0xf7, 0x48, 0xd9, 0x53, 0xb4, 0xf1, 0x65, 0xa0, 0xe1, 0xc3, 0xb3, 0x15, 0xed, 0x89, 0x9b, 0x4f, 0x62, 0xb3, 0x57, 0xa5, 0x45, 0x1c}}}, -{{{0x8f, 0x12, 0xea, 0xaf, 0xd1, 0x1f, 0x79, 0x10, 0x0b, 0xf6, 0xa3, 0x7b, 0xea, 0xac, 0x8b, 0x57, 0x32, 0x62, 0xe7, 0x06, 0x12, 0x51, 0xa0, 0x3b, 0x43, 0x5e, 0xa4, 0x20, 0x78, 0x31, 0xce, 0x0d}} , - {{0x84, 0x7c, 0xc2, 0xa6, 0x91, 0x23, 0xce, 0xbd, 0xdc, 0xf9, 0xce, 0xd5, 0x75, 0x30, 0x22, 0xe6, 0xf9, 0x43, 0x62, 0x0d, 0xf7, 0x75, 0x9d, 0x7f, 0x8c, 0xff, 0x7d, 0xe4, 0x72, 0xac, 0x9f, 0x1c}}}, -{{{0x88, 0xc1, 0x99, 0xd0, 0x3c, 0x1c, 0x5d, 0xb4, 0xef, 0x13, 0x0f, 0x90, 0xb9, 0x36, 0x2f, 0x95, 0x95, 0xc6, 0xdc, 0xde, 0x0a, 0x51, 0xe2, 0x8d, 0xf3, 0xbc, 0x51, 0xec, 0xdf, 0xb1, 0xa2, 0x5f}} , - {{0x2e, 0x68, 0xa1, 0x23, 0x7d, 0x9b, 0x40, 0x69, 0x85, 0x7b, 0x42, 0xbf, 0x90, 0x4b, 0xd6, 0x40, 0x2f, 0xd7, 0x52, 0x52, 0xb2, 0x21, 0xde, 0x64, 0xbd, 0x88, 0xc3, 0x6d, 0xa5, 0xfa, 0x81, 0x3f}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xfb, 0xfd, 0x47, 0x7b, 0x8a, 0x66, 0x9e, 0x79, 0x2e, 0x64, 0x82, 0xef, 0xf7, 0x21, 0xec, 0xf6, 0xd8, 0x86, 0x09, 0x31, 0x7c, 0xdd, 0x03, 0x6a, 0x58, 0xa0, 0x77, 0xb7, 0x9b, 0x8c, 0x87, 0x1f}} , - {{0x55, 0x47, 0xe4, 0xa8, 0x3d, 0x55, 0x21, 0x34, 0xab, 0x1d, 0xae, 0xe0, 0xf4, 0xea, 0xdb, 0xc5, 0xb9, 0x58, 0xbf, 0xc4, 0x2a, 0x89, 0x31, 0x1a, 0xf4, 0x2d, 0xe1, 0xca, 0x37, 0x99, 0x47, 0x59}}}, -{{{0xc7, 0xca, 0x63, 0xc1, 0x49, 0xa9, 0x35, 0x45, 0x55, 0x7e, 0xda, 0x64, 0x32, 0x07, 0x50, 0xf7, 0x32, 0xac, 0xde, 0x75, 0x58, 0x9b, 0x11, 0xb2, 0x3a, 0x1f, 0xf5, 0xf7, 0x79, 0x04, 0xe6, 0x08}} , - {{0x46, 0xfa, 0x22, 0x4b, 0xfa, 0xe1, 0xfe, 0x96, 0xfc, 0x67, 0xba, 0x67, 0x97, 0xc4, 0xe7, 0x1b, 0x86, 0x90, 0x5f, 0xee, 0xf4, 0x5b, 0x11, 0xb2, 0xcd, 0xad, 0xee, 0xc2, 0x48, 0x6c, 0x2b, 0x1b}}}, -{{{0xe3, 0x39, 0x62, 0xb4, 0x4f, 0x31, 0x04, 0xc9, 0xda, 0xd5, 0x73, 0x51, 0x57, 0xc5, 0xb8, 0xf3, 0xa3, 0x43, 0x70, 0xe4, 0x61, 0x81, 0x84, 0xe2, 0xbb, 0xbf, 0x4f, 0x9e, 0xa4, 0x5e, 0x74, 0x06}} , - {{0x29, 0xac, 0xff, 0x27, 0xe0, 0x59, 0xbe, 0x39, 0x9c, 0x0d, 0x83, 0xd7, 0x10, 0x0b, 0x15, 0xb7, 0xe1, 0xc2, 0x2c, 0x30, 0x73, 0x80, 0x3a, 0x7d, 0x5d, 0xab, 0x58, 0x6b, 0xc1, 0xf0, 0xf4, 0x22}}}, -{{{0xfe, 0x7f, 0xfb, 0x35, 0x7d, 0xc6, 0x01, 0x23, 0x28, 0xc4, 0x02, 0xac, 0x1f, 0x42, 0xb4, 0x9d, 0xfc, 0x00, 0x94, 0xa5, 0xee, 0xca, 0xda, 0x97, 0x09, 0x41, 0x77, 0x87, 0x5d, 0x7b, 0x87, 0x78}} , - {{0xf5, 0xfb, 0x90, 0x2d, 0x81, 0x19, 0x9e, 0x2f, 0x6d, 0x85, 0x88, 0x8c, 0x40, 0x5c, 0x77, 0x41, 0x4d, 0x01, 0x19, 0x76, 0x60, 0xe8, 0x4c, 0x48, 0xe4, 0x33, 0x83, 0x32, 0x6c, 0xb4, 0x41, 0x03}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xff, 0x10, 0xc2, 0x09, 0x4f, 0x6e, 0xf4, 0xd2, 0xdf, 0x7e, 0xca, 0x7b, 0x1c, 0x1d, 0xba, 0xa3, 0xb6, 0xda, 0x67, 0x33, 0xd4, 0x87, 0x36, 0x4b, 0x11, 0x20, 0x05, 0xa6, 0x29, 0xc1, 0x87, 0x17}} , - {{0xf6, 0x96, 0xca, 0x2f, 0xda, 0x38, 0xa7, 0x1b, 0xfc, 0xca, 0x7d, 0xfe, 0x08, 0x89, 0xe2, 0x47, 0x2b, 0x6a, 0x5d, 0x4b, 0xfa, 0xa1, 0xb4, 0xde, 0xb6, 0xc2, 0x31, 0x51, 0xf5, 0xe0, 0xa4, 0x0b}}}, -{{{0x5c, 0xe5, 0xc6, 0x04, 0x8e, 0x2b, 0x57, 0xbe, 0x38, 0x85, 0x23, 0xcb, 0xb7, 0xbe, 0x4f, 0xa9, 0xd3, 0x6e, 0x12, 0xaa, 0xd5, 0xb2, 0x2e, 0x93, 0x29, 0x9a, 0x4a, 0x88, 0x18, 0x43, 0xf5, 0x01}} , - {{0x50, 0xfc, 0xdb, 0xa2, 0x59, 0x21, 0x8d, 0xbd, 0x7e, 0x33, 0xae, 0x2f, 0x87, 0x1a, 0xd0, 0x97, 0xc7, 0x0d, 0x4d, 0x63, 0x01, 0xef, 0x05, 0x84, 0xec, 0x40, 0xdd, 0xa8, 0x0a, 0x4f, 0x70, 0x0b}}}, -{{{0x41, 0x69, 0x01, 0x67, 0x5c, 0xd3, 0x8a, 0xc5, 0xcf, 0x3f, 0xd1, 0x57, 0xd1, 0x67, 0x3e, 0x01, 0x39, 0xb5, 0xcb, 0x81, 0x56, 0x96, 0x26, 0xb6, 0xc2, 0xe7, 0x5c, 0xfb, 0x63, 0x97, 0x58, 0x06}} , - {{0x0c, 0x0e, 0xf3, 0xba, 0xf0, 0xe5, 0xba, 0xb2, 0x57, 0x77, 0xc6, 0x20, 0x9b, 0x89, 0x24, 0xbe, 0xf2, 0x9c, 0x8a, 0xba, 0x69, 0xc1, 0xf1, 0xb0, 0x4f, 0x2a, 0x05, 0x9a, 0xee, 0x10, 0x7e, 0x36}}}, -{{{0x3f, 0x26, 0xe9, 0x40, 0xe9, 0x03, 0xad, 0x06, 0x69, 0x91, 0xe0, 0xd1, 0x89, 0x60, 0x84, 0x79, 0xde, 0x27, 0x6d, 0xe6, 0x76, 0xbd, 0xea, 0xe6, 0xae, 0x48, 0xc3, 0x67, 0xc0, 0x57, 0xcd, 0x2f}} , - {{0x7f, 0xc1, 0xdc, 0xb9, 0xc7, 0xbc, 0x86, 0x3d, 0x55, 0x4b, 0x28, 0x7a, 0xfb, 0x4d, 0xc7, 0xf8, 0xbc, 0x67, 0x2a, 0x60, 0x4d, 0x8f, 0x07, 0x0b, 0x1a, 0x17, 0xbf, 0xfa, 0xac, 0xa7, 0x3d, 0x1a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x91, 0x3f, 0xed, 0x5e, 0x18, 0x78, 0x3f, 0x23, 0x2c, 0x0d, 0x8c, 0x44, 0x00, 0xe8, 0xfb, 0xe9, 0x8e, 0xd6, 0xd1, 0x36, 0x58, 0x57, 0x9e, 0xae, 0x4b, 0x5c, 0x0b, 0x07, 0xbc, 0x6b, 0x55, 0x2b}} , - {{0x6f, 0x4d, 0x17, 0xd7, 0xe1, 0x84, 0xd9, 0x78, 0xb1, 0x90, 0xfd, 0x2e, 0xb3, 0xb5, 0x19, 0x3f, 0x1b, 0xfa, 0xc0, 0x68, 0xb3, 0xdd, 0x00, 0x2e, 0x89, 0xbd, 0x7e, 0x80, 0x32, 0x13, 0xa0, 0x7b}}}, -{{{0x1a, 0x6f, 0x40, 0xaf, 0x44, 0x44, 0xb0, 0x43, 0x8f, 0x0d, 0xd0, 0x1e, 0xc4, 0x0b, 0x19, 0x5d, 0x8e, 0xfe, 0xc1, 0xf3, 0xc5, 0x5c, 0x91, 0xf8, 0x04, 0x4e, 0xbe, 0x90, 0xb4, 0x47, 0x5c, 0x3f}} , - {{0xb0, 0x3b, 0x2c, 0xf3, 0xfe, 0x32, 0x71, 0x07, 0x3f, 0xaa, 0xba, 0x45, 0x60, 0xa8, 0x8d, 0xea, 0x54, 0xcb, 0x39, 0x10, 0xb4, 0xf2, 0x8b, 0xd2, 0x14, 0x82, 0x42, 0x07, 0x8e, 0xe9, 0x7c, 0x53}}}, -{{{0xb0, 0xae, 0xc1, 0x8d, 0xc9, 0x8f, 0xb9, 0x7a, 0x77, 0xef, 0xba, 0x79, 0xa0, 0x3c, 0xa8, 0xf5, 0x6a, 0xe2, 0x3f, 0x5d, 0x00, 0xe3, 0x4b, 0x45, 0x24, 0x7b, 0x43, 0x78, 0x55, 0x1d, 0x2b, 0x1e}} , - {{0x01, 0xb8, 0xd6, 0x16, 0x67, 0xa0, 0x15, 0xb9, 0xe1, 0x58, 0xa4, 0xa7, 0x31, 0x37, 0x77, 0x2f, 0x8b, 0x12, 0x9f, 0xf4, 0x3f, 0xc7, 0x36, 0x66, 0xd2, 0xa8, 0x56, 0xf7, 0x7f, 0x74, 0xc6, 0x41}}}, -{{{0x5d, 0xf8, 0xb4, 0xa8, 0x30, 0xdd, 0xcc, 0x38, 0xa5, 0xd3, 0xca, 0xd8, 0xd1, 0xf8, 0xb2, 0x31, 0x91, 0xd4, 0x72, 0x05, 0x57, 0x4a, 0x3b, 0x82, 0x4a, 0xc6, 0x68, 0x20, 0xe2, 0x18, 0x41, 0x61}} , - {{0x19, 0xd4, 0x8d, 0x47, 0x29, 0x12, 0x65, 0xb0, 0x11, 0x78, 0x47, 0xb5, 0xcb, 0xa3, 0xa5, 0xfa, 0x05, 0x85, 0x54, 0xa9, 0x33, 0x97, 0x8d, 0x2b, 0xc2, 0xfe, 0x99, 0x35, 0x28, 0xe5, 0xeb, 0x63}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xb1, 0x3f, 0x3f, 0xef, 0xd8, 0xf4, 0xfc, 0xb3, 0xa0, 0x60, 0x50, 0x06, 0x2b, 0x29, 0x52, 0x70, 0x15, 0x0b, 0x24, 0x24, 0xf8, 0x5f, 0x79, 0x18, 0xcc, 0xff, 0x89, 0x99, 0x84, 0xa1, 0xae, 0x13}} , - {{0x44, 0x1f, 0xb8, 0xc2, 0x01, 0xc1, 0x30, 0x19, 0x55, 0x05, 0x60, 0x10, 0xa4, 0x6c, 0x2d, 0x67, 0x70, 0xe5, 0x25, 0x1b, 0xf2, 0xbf, 0xdd, 0xfb, 0x70, 0x2b, 0xa1, 0x8c, 0x9c, 0x94, 0x84, 0x08}}}, -{{{0xe7, 0xc4, 0x43, 0x4d, 0xc9, 0x2b, 0x69, 0x5d, 0x1d, 0x3c, 0xaf, 0xbb, 0x43, 0x38, 0x4e, 0x98, 0x3d, 0xed, 0x0d, 0x21, 0x03, 0xfd, 0xf0, 0x99, 0x47, 0x04, 0xb0, 0x98, 0x69, 0x55, 0x72, 0x0f}} , - {{0x5e, 0xdf, 0x15, 0x53, 0x3b, 0x86, 0x80, 0xb0, 0xf1, 0x70, 0x68, 0x8f, 0x66, 0x7c, 0x0e, 0x49, 0x1a, 0xd8, 0x6b, 0xfe, 0x4e, 0xef, 0xca, 0x47, 0xd4, 0x03, 0xc1, 0x37, 0x50, 0x9c, 0xc1, 0x16}}}, -{{{0xcd, 0x24, 0xc6, 0x3e, 0x0c, 0x82, 0x9b, 0x91, 0x2b, 0x61, 0x4a, 0xb2, 0x0f, 0x88, 0x55, 0x5f, 0x5a, 0x57, 0xff, 0xe5, 0x74, 0x0b, 0x13, 0x43, 0x00, 0xd8, 0x6b, 0xcf, 0xd2, 0x15, 0x03, 0x2c}} , - {{0xdc, 0xff, 0x15, 0x61, 0x2f, 0x4a, 0x2f, 0x62, 0xf2, 0x04, 0x2f, 0xb5, 0x0c, 0xb7, 0x1e, 0x3f, 0x74, 0x1a, 0x0f, 0xd7, 0xea, 0xcd, 0xd9, 0x7d, 0xf6, 0x12, 0x0e, 0x2f, 0xdb, 0x5a, 0x3b, 0x16}}}, -{{{0x1b, 0x37, 0x47, 0xe3, 0xf5, 0x9e, 0xea, 0x2c, 0x2a, 0xe7, 0x82, 0x36, 0xf4, 0x1f, 0x81, 0x47, 0x92, 0x4b, 0x69, 0x0e, 0x11, 0x8c, 0x5d, 0x53, 0x5b, 0x81, 0x27, 0x08, 0xbc, 0xa0, 0xae, 0x25}} , - {{0x69, 0x32, 0xa1, 0x05, 0x11, 0x42, 0x00, 0xd2, 0x59, 0xac, 0x4d, 0x62, 0x8b, 0x13, 0xe2, 0x50, 0x5d, 0xa0, 0x9d, 0x9b, 0xfd, 0xbb, 0x12, 0x41, 0x75, 0x41, 0x9e, 0xcc, 0xdc, 0xc7, 0xdc, 0x5d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xd9, 0xe3, 0x38, 0x06, 0x46, 0x70, 0x82, 0x5e, 0x28, 0x49, 0x79, 0xff, 0x25, 0xd2, 0x4e, 0x29, 0x8d, 0x06, 0xb0, 0x23, 0xae, 0x9b, 0x66, 0xe4, 0x7d, 0xc0, 0x70, 0x91, 0xa3, 0xfc, 0xec, 0x4e}} , - {{0x62, 0x12, 0x37, 0x6a, 0x30, 0xf6, 0x1e, 0xfb, 0x14, 0x5c, 0x0d, 0x0e, 0xb7, 0x81, 0x6a, 0xe7, 0x08, 0x05, 0xac, 0xaa, 0x38, 0x46, 0xe2, 0x73, 0xea, 0x4b, 0x07, 0x81, 0x43, 0x7c, 0x9e, 0x5e}}}, -{{{0xfc, 0xf9, 0x21, 0x4f, 0x2e, 0x76, 0x9b, 0x1f, 0x28, 0x60, 0x77, 0x43, 0x32, 0x9d, 0xbe, 0x17, 0x30, 0x2a, 0xc6, 0x18, 0x92, 0x66, 0x62, 0x30, 0x98, 0x40, 0x11, 0xa6, 0x7f, 0x18, 0x84, 0x28}} , - {{0x3f, 0xab, 0xd3, 0xf4, 0x8a, 0x76, 0xa1, 0x3c, 0xca, 0x2d, 0x49, 0xc3, 0xea, 0x08, 0x0b, 0x85, 0x17, 0x2a, 0xc3, 0x6c, 0x08, 0xfd, 0x57, 0x9f, 0x3d, 0x5f, 0xdf, 0x67, 0x68, 0x42, 0x00, 0x32}}}, -{{{0x51, 0x60, 0x1b, 0x06, 0x4f, 0x8a, 0x21, 0xba, 0x38, 0xa8, 0xba, 0xd6, 0x40, 0xf6, 0xe9, 0x9b, 0x76, 0x4d, 0x56, 0x21, 0x5b, 0x0a, 0x9b, 0x2e, 0x4f, 0x3d, 0x81, 0x32, 0x08, 0x9f, 0x97, 0x5b}} , - {{0xe5, 0x44, 0xec, 0x06, 0x9d, 0x90, 0x79, 0x9f, 0xd3, 0xe0, 0x79, 0xaf, 0x8f, 0x10, 0xfd, 0xdd, 0x04, 0xae, 0x27, 0x97, 0x46, 0x33, 0x79, 0xea, 0xb8, 0x4e, 0xca, 0x5a, 0x59, 0x57, 0xe1, 0x0e}}}, -{{{0x1a, 0xda, 0xf3, 0xa5, 0x41, 0x43, 0x28, 0xfc, 0x7e, 0xe7, 0x71, 0xea, 0xc6, 0x3b, 0x59, 0xcc, 0x2e, 0xd3, 0x40, 0xec, 0xb3, 0x13, 0x6f, 0x44, 0xcd, 0x13, 0xb2, 0x37, 0xf2, 0x6e, 0xd9, 0x1c}} , - {{0xe3, 0xdb, 0x60, 0xcd, 0x5c, 0x4a, 0x18, 0x0f, 0xef, 0x73, 0x36, 0x71, 0x8c, 0xf6, 0x11, 0xb4, 0xd8, 0xce, 0x17, 0x5e, 0x4f, 0x26, 0x77, 0x97, 0x5f, 0xcb, 0xef, 0x91, 0xeb, 0x6a, 0x62, 0x7a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x18, 0x4a, 0xa2, 0x97, 0x08, 0x81, 0x2d, 0x83, 0xc4, 0xcc, 0xf0, 0x83, 0x7e, 0xec, 0x0d, 0x95, 0x4c, 0x5b, 0xfb, 0xfa, 0x98, 0x80, 0x4a, 0x66, 0x56, 0x0c, 0x51, 0xb3, 0xf2, 0x04, 0x5d, 0x27}} , - {{0x3b, 0xb9, 0xb8, 0x06, 0x5a, 0x2e, 0xfe, 0xc3, 0x82, 0x37, 0x9c, 0xa3, 0x11, 0x1f, 0x9c, 0xa6, 0xda, 0x63, 0x48, 0x9b, 0xad, 0xde, 0x2d, 0xa6, 0xbc, 0x6e, 0x32, 0xda, 0x27, 0x65, 0xdd, 0x57}}}, -{{{0x84, 0x4f, 0x37, 0x31, 0x7d, 0x2e, 0xbc, 0xad, 0x87, 0x07, 0x2a, 0x6b, 0x37, 0xfc, 0x5f, 0xeb, 0x4e, 0x75, 0x35, 0xa6, 0xde, 0xab, 0x0a, 0x19, 0x3a, 0xb7, 0xb1, 0xef, 0x92, 0x6a, 0x3b, 0x3c}} , - {{0x3b, 0xb2, 0x94, 0x6d, 0x39, 0x60, 0xac, 0xee, 0xe7, 0x81, 0x1a, 0x3b, 0x76, 0x87, 0x5c, 0x05, 0x94, 0x2a, 0x45, 0xb9, 0x80, 0xe9, 0x22, 0xb1, 0x07, 0xcb, 0x40, 0x9e, 0x70, 0x49, 0x6d, 0x12}}}, -{{{0xfd, 0x18, 0x78, 0x84, 0xa8, 0x4c, 0x7d, 0x6e, 0x59, 0xa6, 0xe5, 0x74, 0xf1, 0x19, 0xa6, 0x84, 0x2e, 0x51, 0xc1, 0x29, 0x13, 0xf2, 0x14, 0x6b, 0x5d, 0x53, 0x51, 0xf7, 0xef, 0xbf, 0x01, 0x22}} , - {{0xa4, 0x4b, 0x62, 0x4c, 0xe6, 0xfd, 0x72, 0x07, 0xf2, 0x81, 0xfc, 0xf2, 0xbd, 0x12, 0x7c, 0x68, 0x76, 0x2a, 0xba, 0xf5, 0x65, 0xb1, 0x1f, 0x17, 0x0a, 0x38, 0xb0, 0xbf, 0xc0, 0xf8, 0xf4, 0x2a}}}, -{{{0x55, 0x60, 0x55, 0x5b, 0xe4, 0x1d, 0x71, 0x4c, 0x9d, 0x5b, 0x9f, 0x70, 0xa6, 0x85, 0x9a, 0x2c, 0xa0, 0xe2, 0x32, 0x48, 0xce, 0x9e, 0x2a, 0xa5, 0x07, 0x3b, 0xc7, 0x6c, 0x86, 0x77, 0xde, 0x3c}} , - {{0xf7, 0x18, 0x7a, 0x96, 0x7e, 0x43, 0x57, 0xa9, 0x55, 0xfc, 0x4e, 0xb6, 0x72, 0x00, 0xf2, 0xe4, 0xd7, 0x52, 0xd3, 0xd3, 0xb6, 0x85, 0xf6, 0x71, 0xc7, 0x44, 0x3f, 0x7f, 0xd7, 0xb3, 0xf2, 0x79}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x46, 0xca, 0xa7, 0x55, 0x7b, 0x79, 0xf3, 0xca, 0x5a, 0x65, 0xf6, 0xed, 0x50, 0x14, 0x7b, 0xe4, 0xc4, 0x2a, 0x65, 0x9e, 0xe2, 0xf9, 0xca, 0xa7, 0x22, 0x26, 0x53, 0xcb, 0x21, 0x5b, 0xa7, 0x31}} , - {{0x90, 0xd7, 0xc5, 0x26, 0x08, 0xbd, 0xb0, 0x53, 0x63, 0x58, 0xc3, 0x31, 0x5e, 0x75, 0x46, 0x15, 0x91, 0xa6, 0xf8, 0x2f, 0x1a, 0x08, 0x65, 0x88, 0x2f, 0x98, 0x04, 0xf1, 0x7c, 0x6e, 0x00, 0x77}}}, -{{{0x81, 0x21, 0x61, 0x09, 0xf6, 0x4e, 0xf1, 0x92, 0xee, 0x63, 0x61, 0x73, 0x87, 0xc7, 0x54, 0x0e, 0x42, 0x4b, 0xc9, 0x47, 0xd1, 0xb8, 0x7e, 0x91, 0x75, 0x37, 0x99, 0x28, 0xb8, 0xdd, 0x7f, 0x50}} , - {{0x89, 0x8f, 0xc0, 0xbe, 0x5d, 0xd6, 0x9f, 0xa0, 0xf0, 0x9d, 0x81, 0xce, 0x3a, 0x7b, 0x98, 0x58, 0xbb, 0xd7, 0x78, 0xc8, 0x3f, 0x13, 0xf1, 0x74, 0x19, 0xdf, 0xf8, 0x98, 0x89, 0x5d, 0xfa, 0x5f}}}, -{{{0x9e, 0x35, 0x85, 0x94, 0x47, 0x1f, 0x90, 0x15, 0x26, 0xd0, 0x84, 0xed, 0x8a, 0x80, 0xf7, 0x63, 0x42, 0x86, 0x27, 0xd7, 0xf4, 0x75, 0x58, 0xdc, 0x9c, 0xc0, 0x22, 0x7e, 0x20, 0x35, 0xfd, 0x1f}} , - {{0x68, 0x0e, 0x6f, 0x97, 0xba, 0x70, 0xbb, 0xa3, 0x0e, 0xe5, 0x0b, 0x12, 0xf4, 0xa2, 0xdc, 0x47, 0xf8, 0xe6, 0xd0, 0x23, 0x6c, 0x33, 0xa8, 0x99, 0x46, 0x6e, 0x0f, 0x44, 0xba, 0x76, 0x48, 0x0f}}}, -{{{0xa3, 0x2a, 0x61, 0x37, 0xe2, 0x59, 0x12, 0x0e, 0x27, 0xba, 0x64, 0x43, 0xae, 0xc0, 0x42, 0x69, 0x79, 0xa4, 0x1e, 0x29, 0x8b, 0x15, 0xeb, 0xf8, 0xaf, 0xd4, 0xa2, 0x68, 0x33, 0xb5, 0x7a, 0x24}} , - {{0x2c, 0x19, 0x33, 0xdd, 0x1b, 0xab, 0xec, 0x01, 0xb0, 0x23, 0xf8, 0x42, 0x2b, 0x06, 0x88, 0xea, 0x3d, 0x2d, 0x00, 0x2a, 0x78, 0x45, 0x4d, 0x38, 0xed, 0x2e, 0x2e, 0x44, 0x49, 0xed, 0xcb, 0x33}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xa0, 0x68, 0xe8, 0x41, 0x8f, 0x91, 0xf8, 0x11, 0x13, 0x90, 0x2e, 0xa7, 0xab, 0x30, 0xef, 0xad, 0xa0, 0x61, 0x00, 0x88, 0xef, 0xdb, 0xce, 0x5b, 0x5c, 0xbb, 0x62, 0xc8, 0x56, 0xf9, 0x00, 0x73}} , - {{0x3f, 0x60, 0xc1, 0x82, 0x2d, 0xa3, 0x28, 0x58, 0x24, 0x9e, 0x9f, 0xe3, 0x70, 0xcc, 0x09, 0x4e, 0x1a, 0x3f, 0x11, 0x11, 0x15, 0x07, 0x3c, 0xa4, 0x41, 0xe0, 0x65, 0xa3, 0x0a, 0x41, 0x6d, 0x11}}}, -{{{0x31, 0x40, 0x01, 0x52, 0x56, 0x94, 0x5b, 0x28, 0x8a, 0xaa, 0x52, 0xee, 0xd8, 0x0a, 0x05, 0x8d, 0xcd, 0xb5, 0xaa, 0x2e, 0x38, 0xaa, 0xb7, 0x87, 0xf7, 0x2b, 0xfb, 0x04, 0xcb, 0x84, 0x3d, 0x54}} , - {{0x20, 0xef, 0x59, 0xde, 0xa4, 0x2b, 0x93, 0x6e, 0x2e, 0xec, 0x42, 0x9a, 0xd4, 0x2d, 0xf4, 0x46, 0x58, 0x27, 0x2b, 0x18, 0x8f, 0x83, 0x3d, 0x69, 0x9e, 0xd4, 0x3e, 0xb6, 0xc5, 0xfd, 0x58, 0x03}}}, -{{{0x33, 0x89, 0xc9, 0x63, 0x62, 0x1c, 0x17, 0xb4, 0x60, 0xc4, 0x26, 0x68, 0x09, 0xc3, 0x2e, 0x37, 0x0f, 0x7b, 0xb4, 0x9c, 0xb6, 0xf9, 0xfb, 0xd4, 0x51, 0x78, 0xc8, 0x63, 0xea, 0x77, 0x47, 0x07}} , - {{0x32, 0xb4, 0x18, 0x47, 0x79, 0xcb, 0xd4, 0x5a, 0x07, 0x14, 0x0f, 0xa0, 0xd5, 0xac, 0xd0, 0x41, 0x40, 0xab, 0x61, 0x23, 0xe5, 0x2a, 0x2a, 0x6f, 0xf7, 0xa8, 0xd4, 0x76, 0xef, 0xe7, 0x45, 0x6c}}}, -{{{0xa1, 0x5e, 0x60, 0x4f, 0xfb, 0xe1, 0x70, 0x6a, 0x1f, 0x55, 0x4f, 0x09, 0xb4, 0x95, 0x33, 0x36, 0xc6, 0x81, 0x01, 0x18, 0x06, 0x25, 0x27, 0xa4, 0xb4, 0x24, 0xa4, 0x86, 0x03, 0x4c, 0xac, 0x02}} , - {{0x77, 0x38, 0xde, 0xd7, 0x60, 0x48, 0x07, 0xf0, 0x74, 0xa8, 0xff, 0x54, 0xe5, 0x30, 0x43, 0xff, 0x77, 0xfb, 0x21, 0x07, 0xff, 0xb2, 0x07, 0x6b, 0xe4, 0xe5, 0x30, 0xfc, 0x19, 0x6c, 0xa3, 0x01}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x13, 0xc5, 0x2c, 0xac, 0xd3, 0x83, 0x82, 0x7c, 0x29, 0xf7, 0x05, 0xa5, 0x00, 0xb6, 0x1f, 0x86, 0x55, 0xf4, 0xd6, 0x2f, 0x0c, 0x99, 0xd0, 0x65, 0x9b, 0x6b, 0x46, 0x0d, 0x43, 0xf8, 0x16, 0x28}} , - {{0x1e, 0x7f, 0xb4, 0x74, 0x7e, 0xb1, 0x89, 0x4f, 0x18, 0x5a, 0xab, 0x64, 0x06, 0xdf, 0x45, 0x87, 0xe0, 0x6a, 0xc6, 0xf0, 0x0e, 0xc9, 0x24, 0x35, 0x38, 0xea, 0x30, 0x54, 0xb4, 0xc4, 0x52, 0x54}}}, -{{{0xe9, 0x9f, 0xdc, 0x3f, 0xc1, 0x89, 0x44, 0x74, 0x27, 0xe4, 0xc1, 0x90, 0xff, 0x4a, 0xa7, 0x3c, 0xee, 0xcd, 0xf4, 0x1d, 0x25, 0x94, 0x7f, 0x63, 0x16, 0x48, 0xbc, 0x64, 0xfe, 0x95, 0xc4, 0x0c}} , - {{0x8b, 0x19, 0x75, 0x6e, 0x03, 0x06, 0x5e, 0x6a, 0x6f, 0x1a, 0x8c, 0xe3, 0xd3, 0x28, 0xf2, 0xe0, 0xb9, 0x7a, 0x43, 0x69, 0xe6, 0xd3, 0xc0, 0xfe, 0x7e, 0x97, 0xab, 0x6c, 0x7b, 0x8e, 0x13, 0x42}}}, -{{{0xd4, 0xca, 0x70, 0x3d, 0xab, 0xfb, 0x5f, 0x5e, 0x00, 0x0c, 0xcc, 0x77, 0x22, 0xf8, 0x78, 0x55, 0xae, 0x62, 0x35, 0xfb, 0x9a, 0xc6, 0x03, 0xe4, 0x0c, 0xee, 0xab, 0xc7, 0xc0, 0x89, 0x87, 0x54}} , - {{0x32, 0xad, 0xae, 0x85, 0x58, 0x43, 0xb8, 0xb1, 0xe6, 0x3e, 0x00, 0x9c, 0x78, 0x88, 0x56, 0xdb, 0x9c, 0xfc, 0x79, 0xf6, 0xf9, 0x41, 0x5f, 0xb7, 0xbc, 0x11, 0xf9, 0x20, 0x36, 0x1c, 0x53, 0x2b}}}, -{{{0x5a, 0x20, 0x5b, 0xa1, 0xa5, 0x44, 0x91, 0x24, 0x02, 0x63, 0x12, 0x64, 0xb8, 0x55, 0xf6, 0xde, 0x2c, 0xdb, 0x47, 0xb8, 0xc6, 0x0a, 0xc3, 0x00, 0x78, 0x93, 0xd8, 0xf5, 0xf5, 0x18, 0x28, 0x0a}} , - {{0xd6, 0x1b, 0x9a, 0x6c, 0xe5, 0x46, 0xea, 0x70, 0x96, 0x8d, 0x4e, 0x2a, 0x52, 0x21, 0x26, 0x4b, 0xb1, 0xbb, 0x0f, 0x7c, 0xa9, 0x9b, 0x04, 0xbb, 0x51, 0x08, 0xf1, 0x9a, 0xa4, 0x76, 0x7c, 0x18}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xfa, 0x94, 0xf7, 0x40, 0xd0, 0xd7, 0xeb, 0xa9, 0x82, 0x36, 0xd5, 0x15, 0xb9, 0x33, 0x7a, 0xbf, 0x8a, 0xf2, 0x63, 0xaa, 0x37, 0xf5, 0x59, 0xac, 0xbd, 0xbb, 0x32, 0x36, 0xbe, 0x73, 0x99, 0x38}} , - {{0x2c, 0xb3, 0xda, 0x7a, 0xd8, 0x3d, 0x99, 0xca, 0xd2, 0xf4, 0xda, 0x99, 0x8e, 0x4f, 0x98, 0xb7, 0xf4, 0xae, 0x3e, 0x9f, 0x8e, 0x35, 0x60, 0xa4, 0x33, 0x75, 0xa4, 0x04, 0x93, 0xb1, 0x6b, 0x4d}}}, -{{{0x97, 0x9d, 0xa8, 0xcd, 0x97, 0x7b, 0x9d, 0xb9, 0xe7, 0xa5, 0xef, 0xfd, 0xa8, 0x42, 0x6b, 0xc3, 0x62, 0x64, 0x7d, 0xa5, 0x1b, 0xc9, 0x9e, 0xd2, 0x45, 0xb9, 0xee, 0x03, 0xb0, 0xbf, 0xc0, 0x68}} , - {{0xed, 0xb7, 0x84, 0x2c, 0xf6, 0xd3, 0xa1, 0x6b, 0x24, 0x6d, 0x87, 0x56, 0x97, 0x59, 0x79, 0x62, 0x9f, 0xac, 0xed, 0xf3, 0xc9, 0x89, 0x21, 0x2e, 0x04, 0xb3, 0xcc, 0x2f, 0xbe, 0xd6, 0x0a, 0x4b}}}, -{{{0x39, 0x61, 0x05, 0xed, 0x25, 0x89, 0x8b, 0x5d, 0x1b, 0xcb, 0x0c, 0x55, 0xf4, 0x6a, 0x00, 0x8a, 0x46, 0xe8, 0x1e, 0xc6, 0x83, 0xc8, 0x5a, 0x76, 0xdb, 0xcc, 0x19, 0x7a, 0xcc, 0x67, 0x46, 0x0b}} , - {{0x53, 0xcf, 0xc2, 0xa1, 0xad, 0x6a, 0xf3, 0xcd, 0x8f, 0xc9, 0xde, 0x1c, 0xf8, 0x6c, 0x8f, 0xf8, 0x76, 0x42, 0xe7, 0xfe, 0xb2, 0x72, 0x21, 0x0a, 0x66, 0x74, 0x8f, 0xb7, 0xeb, 0xe4, 0x6f, 0x01}}}, -{{{0x22, 0x8c, 0x6b, 0xbe, 0xfc, 0x4d, 0x70, 0x62, 0x6e, 0x52, 0x77, 0x99, 0x88, 0x7e, 0x7b, 0x57, 0x7a, 0x0d, 0xfe, 0xdc, 0x72, 0x92, 0xf1, 0x68, 0x1d, 0x97, 0xd7, 0x7c, 0x8d, 0x53, 0x10, 0x37}} , - {{0x53, 0x88, 0x77, 0x02, 0xca, 0x27, 0xa8, 0xe5, 0x45, 0xe2, 0xa8, 0x48, 0x2a, 0xab, 0x18, 0xca, 0xea, 0x2d, 0x2a, 0x54, 0x17, 0x37, 0x32, 0x09, 0xdc, 0xe0, 0x4a, 0xb7, 0x7d, 0x82, 0x10, 0x7d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x8a, 0x64, 0x1e, 0x14, 0x0a, 0x57, 0xd4, 0xda, 0x5c, 0x96, 0x9b, 0x01, 0x4c, 0x67, 0xbf, 0x8b, 0x30, 0xfe, 0x08, 0xdb, 0x0d, 0xd5, 0xa8, 0xd7, 0x09, 0x11, 0x85, 0xa2, 0xd3, 0x45, 0xfb, 0x7e}} , - {{0xda, 0x8c, 0xc2, 0xd0, 0xac, 0x18, 0xe8, 0x52, 0x36, 0xd4, 0x21, 0xa3, 0xdd, 0x57, 0x22, 0x79, 0xb7, 0xf8, 0x71, 0x9d, 0xc6, 0x91, 0x70, 0x86, 0x56, 0xbf, 0xa1, 0x11, 0x8b, 0x19, 0xe1, 0x0f}}}, -{{{0x18, 0x32, 0x98, 0x2c, 0x8f, 0x91, 0xae, 0x12, 0xf0, 0x8c, 0xea, 0xf3, 0x3c, 0xb9, 0x5d, 0xe4, 0x69, 0xed, 0xb2, 0x47, 0x18, 0xbd, 0xce, 0x16, 0x52, 0x5c, 0x23, 0xe2, 0xa5, 0x25, 0x52, 0x5d}} , - {{0xb9, 0xb1, 0xe7, 0x5d, 0x4e, 0xbc, 0xee, 0xbb, 0x40, 0x81, 0x77, 0x82, 0x19, 0xab, 0xb5, 0xc6, 0xee, 0xab, 0x5b, 0x6b, 0x63, 0x92, 0x8a, 0x34, 0x8d, 0xcd, 0xee, 0x4f, 0x49, 0xe5, 0xc9, 0x7e}}}, -{{{0x21, 0xac, 0x8b, 0x22, 0xcd, 0xc3, 0x9a, 0xe9, 0x5e, 0x78, 0xbd, 0xde, 0xba, 0xad, 0xab, 0xbf, 0x75, 0x41, 0x09, 0xc5, 0x58, 0xa4, 0x7d, 0x92, 0xb0, 0x7f, 0xf2, 0xa1, 0xd1, 0xc0, 0xb3, 0x6d}} , - {{0x62, 0x4f, 0xd0, 0x75, 0x77, 0xba, 0x76, 0x77, 0xd7, 0xb8, 0xd8, 0x92, 0x6f, 0x98, 0x34, 0x3d, 0xd6, 0x4e, 0x1c, 0x0f, 0xf0, 0x8f, 0x2e, 0xf1, 0xb3, 0xbd, 0xb1, 0xb9, 0xec, 0x99, 0xb4, 0x07}}}, -{{{0x60, 0x57, 0x2e, 0x9a, 0x72, 0x1d, 0x6b, 0x6e, 0x58, 0x33, 0x24, 0x8c, 0x48, 0x39, 0x46, 0x8e, 0x89, 0x6a, 0x88, 0x51, 0x23, 0x62, 0xb5, 0x32, 0x09, 0x36, 0xe3, 0x57, 0xf5, 0x98, 0xde, 0x6f}} , - {{0x8b, 0x2c, 0x00, 0x48, 0x4a, 0xf9, 0x5b, 0x87, 0x69, 0x52, 0xe5, 0x5b, 0xd1, 0xb1, 0xe5, 0x25, 0x25, 0xe0, 0x9c, 0xc2, 0x13, 0x44, 0xe8, 0xb9, 0x0a, 0x70, 0xad, 0xbd, 0x0f, 0x51, 0x94, 0x69}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xa2, 0xdc, 0xab, 0xa9, 0x25, 0x2d, 0xac, 0x5f, 0x03, 0x33, 0x08, 0xe7, 0x7e, 0xfe, 0x95, 0x36, 0x3c, 0x5b, 0x3a, 0xd3, 0x05, 0x82, 0x1c, 0x95, 0x2d, 0xd8, 0x77, 0x7e, 0x02, 0xd9, 0x5b, 0x70}} , - {{0xc2, 0xfe, 0x1b, 0x0c, 0x67, 0xcd, 0xd6, 0xe0, 0x51, 0x8e, 0x2c, 0xe0, 0x79, 0x88, 0xf0, 0xcf, 0x41, 0x4a, 0xad, 0x23, 0xd4, 0x46, 0xca, 0x94, 0xa1, 0xc3, 0xeb, 0x28, 0x06, 0xfa, 0x17, 0x14}}}, -{{{0x7b, 0xaa, 0x70, 0x0a, 0x4b, 0xfb, 0xf5, 0xbf, 0x80, 0xc5, 0xcf, 0x08, 0x7a, 0xdd, 0xa1, 0xf4, 0x9d, 0x54, 0x50, 0x53, 0x23, 0x77, 0x23, 0xf5, 0x34, 0xa5, 0x22, 0xd1, 0x0d, 0x96, 0x2e, 0x47}} , - {{0xcc, 0xb7, 0x32, 0x89, 0x57, 0xd0, 0x98, 0x75, 0xe4, 0x37, 0x99, 0xa9, 0xe8, 0xba, 0xed, 0xba, 0xeb, 0xc7, 0x4f, 0x15, 0x76, 0x07, 0x0c, 0x4c, 0xef, 0x9f, 0x52, 0xfc, 0x04, 0x5d, 0x58, 0x10}}}, -{{{0xce, 0x82, 0xf0, 0x8f, 0x79, 0x02, 0xa8, 0xd1, 0xda, 0x14, 0x09, 0x48, 0xee, 0x8a, 0x40, 0x98, 0x76, 0x60, 0x54, 0x5a, 0xde, 0x03, 0x24, 0xf5, 0xe6, 0x2f, 0xe1, 0x03, 0xbf, 0x68, 0x82, 0x7f}} , - {{0x64, 0xe9, 0x28, 0xc7, 0xa4, 0xcf, 0x2a, 0xf9, 0x90, 0x64, 0x72, 0x2c, 0x8b, 0xeb, 0xec, 0xa0, 0xf2, 0x7d, 0x35, 0xb5, 0x90, 0x4d, 0x7f, 0x5b, 0x4a, 0x49, 0xe4, 0xb8, 0x3b, 0xc8, 0xa1, 0x2f}}}, -{{{0x8b, 0xc5, 0xcc, 0x3d, 0x69, 0xa6, 0xa1, 0x18, 0x44, 0xbc, 0x4d, 0x77, 0x37, 0xc7, 0x86, 0xec, 0x0c, 0xc9, 0xd6, 0x44, 0xa9, 0x23, 0x27, 0xb9, 0x03, 0x34, 0xa7, 0x0a, 0xd5, 0xc7, 0x34, 0x37}} , - {{0xf9, 0x7e, 0x3e, 0x66, 0xee, 0xf9, 0x99, 0x28, 0xff, 0xad, 0x11, 0xd8, 0xe2, 0x66, 0xc5, 0xcd, 0x0f, 0x0d, 0x0b, 0x6a, 0xfc, 0x7c, 0x24, 0xa8, 0x4f, 0xa8, 0x5e, 0x80, 0x45, 0x8b, 0x6c, 0x41}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xef, 0x1e, 0xec, 0xf7, 0x8d, 0x77, 0xf2, 0xea, 0xdb, 0x60, 0x03, 0x21, 0xc0, 0xff, 0x5e, 0x67, 0xc3, 0x71, 0x0b, 0x21, 0xb4, 0x41, 0xa0, 0x68, 0x38, 0xc6, 0x01, 0xa3, 0xd3, 0x51, 0x3c, 0x3c}} , - {{0x92, 0xf8, 0xd6, 0x4b, 0xef, 0x42, 0x13, 0xb2, 0x4a, 0xc4, 0x2e, 0x72, 0x3f, 0xc9, 0x11, 0xbd, 0x74, 0x02, 0x0e, 0xf5, 0x13, 0x9d, 0x83, 0x1a, 0x1b, 0xd5, 0x54, 0xde, 0xc4, 0x1e, 0x16, 0x6c}}}, -{{{0x27, 0x52, 0xe4, 0x63, 0xaa, 0x94, 0xe6, 0xc3, 0x28, 0x9c, 0xc6, 0x56, 0xac, 0xfa, 0xb6, 0xbd, 0xe2, 0xcc, 0x76, 0xc6, 0x27, 0x27, 0xa2, 0x8e, 0x78, 0x2b, 0x84, 0x72, 0x10, 0xbd, 0x4e, 0x2a}} , - {{0xea, 0xa7, 0x23, 0xef, 0x04, 0x61, 0x80, 0x50, 0xc9, 0x6e, 0xa5, 0x96, 0xd1, 0xd1, 0xc8, 0xc3, 0x18, 0xd7, 0x2d, 0xfd, 0x26, 0xbd, 0xcb, 0x7b, 0x92, 0x51, 0x0e, 0x4a, 0x65, 0x57, 0xb8, 0x49}}}, -{{{0xab, 0x55, 0x36, 0xc3, 0xec, 0x63, 0x55, 0x11, 0x55, 0xf6, 0xa5, 0xc7, 0x01, 0x5f, 0xfe, 0x79, 0xd8, 0x0a, 0xf7, 0x03, 0xd8, 0x98, 0x99, 0xf5, 0xd0, 0x00, 0x54, 0x6b, 0x66, 0x28, 0xf5, 0x25}} , - {{0x7a, 0x8d, 0xa1, 0x5d, 0x70, 0x5d, 0x51, 0x27, 0xee, 0x30, 0x65, 0x56, 0x95, 0x46, 0xde, 0xbd, 0x03, 0x75, 0xb4, 0x57, 0x59, 0x89, 0xeb, 0x02, 0x9e, 0xcc, 0x89, 0x19, 0xa7, 0xcb, 0x17, 0x67}}}, -{{{0x6a, 0xeb, 0xfc, 0x9a, 0x9a, 0x10, 0xce, 0xdb, 0x3a, 0x1c, 0x3c, 0x6a, 0x9d, 0xea, 0x46, 0xbc, 0x45, 0x49, 0xac, 0xe3, 0x41, 0x12, 0x7c, 0xf0, 0xf7, 0x4f, 0xf9, 0xf7, 0xff, 0x2c, 0x89, 0x04}} , - {{0x30, 0x31, 0x54, 0x1a, 0x46, 0xca, 0xe6, 0xc6, 0xcb, 0xe2, 0xc3, 0xc1, 0x8b, 0x75, 0x81, 0xbe, 0xee, 0xf8, 0xa3, 0x11, 0x1c, 0x25, 0xa3, 0xa7, 0x35, 0x51, 0x55, 0xe2, 0x25, 0xaa, 0xe2, 0x3a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xb4, 0x48, 0x10, 0x9f, 0x8a, 0x09, 0x76, 0xfa, 0xf0, 0x7a, 0xb0, 0x70, 0xf7, 0x83, 0x80, 0x52, 0x84, 0x2b, 0x26, 0xa2, 0xc4, 0x5d, 0x4f, 0xba, 0xb1, 0xc8, 0x40, 0x0d, 0x78, 0x97, 0xc4, 0x60}} , - {{0xd4, 0xb1, 0x6c, 0x08, 0xc7, 0x40, 0x38, 0x73, 0x5f, 0x0b, 0xf3, 0x76, 0x5d, 0xb2, 0xa5, 0x2f, 0x57, 0x57, 0x07, 0xed, 0x08, 0xa2, 0x6c, 0x4f, 0x08, 0x02, 0xb5, 0x0e, 0xee, 0x44, 0xfa, 0x22}}}, -{{{0x0f, 0x00, 0x3f, 0xa6, 0x04, 0x19, 0x56, 0x65, 0x31, 0x7f, 0x8b, 0xeb, 0x0d, 0xe1, 0x47, 0x89, 0x97, 0x16, 0x53, 0xfa, 0x81, 0xa7, 0xaa, 0xb2, 0xbf, 0x67, 0xeb, 0x72, 0x60, 0x81, 0x0d, 0x48}} , - {{0x7e, 0x13, 0x33, 0xcd, 0xa8, 0x84, 0x56, 0x1e, 0x67, 0xaf, 0x6b, 0x43, 0xac, 0x17, 0xaf, 0x16, 0xc0, 0x52, 0x99, 0x49, 0x5b, 0x87, 0x73, 0x7e, 0xb5, 0x43, 0xda, 0x6b, 0x1d, 0x0f, 0x2d, 0x55}}}, -{{{0xe9, 0x58, 0x1f, 0xff, 0x84, 0x3f, 0x93, 0x1c, 0xcb, 0xe1, 0x30, 0x69, 0xa5, 0x75, 0x19, 0x7e, 0x14, 0x5f, 0xf8, 0xfc, 0x09, 0xdd, 0xa8, 0x78, 0x9d, 0xca, 0x59, 0x8b, 0xd1, 0x30, 0x01, 0x13}} , - {{0xff, 0x76, 0x03, 0xc5, 0x4b, 0x89, 0x99, 0x70, 0x00, 0x59, 0x70, 0x9c, 0xd5, 0xd9, 0x11, 0x89, 0x5a, 0x46, 0xfe, 0xef, 0xdc, 0xd9, 0x55, 0x2b, 0x45, 0xa7, 0xb0, 0x2d, 0xfb, 0x24, 0xc2, 0x29}}}, -{{{0x38, 0x06, 0xf8, 0x0b, 0xac, 0x82, 0xc4, 0x97, 0x2b, 0x90, 0xe0, 0xf7, 0xa8, 0xab, 0x6c, 0x08, 0x80, 0x66, 0x90, 0x46, 0xf7, 0x26, 0x2d, 0xf8, 0xf1, 0xc4, 0x6b, 0x4a, 0x82, 0x98, 0x8e, 0x37}} , - {{0x8e, 0xb4, 0xee, 0xb8, 0xd4, 0x3f, 0xb2, 0x1b, 0xe0, 0x0a, 0x3d, 0x75, 0x34, 0x28, 0xa2, 0x8e, 0xc4, 0x92, 0x7b, 0xfe, 0x60, 0x6e, 0x6d, 0xb8, 0x31, 0x1d, 0x62, 0x0d, 0x78, 0x14, 0x42, 0x11}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x5e, 0xa8, 0xd8, 0x04, 0x9b, 0x73, 0xc9, 0xc9, 0xdc, 0x0d, 0x73, 0xbf, 0x0a, 0x0a, 0x73, 0xff, 0x18, 0x1f, 0x9c, 0x51, 0xaa, 0xc6, 0xf1, 0x83, 0x25, 0xfd, 0xab, 0xa3, 0x11, 0xd3, 0x01, 0x24}} , - {{0x4d, 0xe3, 0x7e, 0x38, 0x62, 0x5e, 0x64, 0xbb, 0x2b, 0x53, 0xb5, 0x03, 0x68, 0xc4, 0xf2, 0x2b, 0x5a, 0x03, 0x32, 0x99, 0x4a, 0x41, 0x9a, 0xe1, 0x1a, 0xae, 0x8c, 0x48, 0xf3, 0x24, 0x32, 0x65}}}, -{{{0xe8, 0xdd, 0xad, 0x3a, 0x8c, 0xea, 0xf4, 0xb3, 0xb2, 0xe5, 0x73, 0xf2, 0xed, 0x8b, 0xbf, 0xed, 0xb1, 0x0c, 0x0c, 0xfb, 0x2b, 0xf1, 0x01, 0x48, 0xe8, 0x26, 0x03, 0x8e, 0x27, 0x4d, 0x96, 0x72}} , - {{0xc8, 0x09, 0x3b, 0x60, 0xc9, 0x26, 0x4d, 0x7c, 0xf2, 0x9c, 0xd4, 0xa1, 0x3b, 0x26, 0xc2, 0x04, 0x33, 0x44, 0x76, 0x3c, 0x02, 0xbb, 0x11, 0x42, 0x0c, 0x22, 0xb7, 0xc6, 0xe1, 0xac, 0xb4, 0x0e}}}, -{{{0x6f, 0x85, 0xe7, 0xef, 0xde, 0x67, 0x30, 0xfc, 0xbf, 0x5a, 0xe0, 0x7b, 0x7a, 0x2a, 0x54, 0x6b, 0x5d, 0x62, 0x85, 0xa1, 0xf8, 0x16, 0x88, 0xec, 0x61, 0xb9, 0x96, 0xb5, 0xef, 0x2d, 0x43, 0x4d}} , - {{0x7c, 0x31, 0x33, 0xcc, 0xe4, 0xcf, 0x6c, 0xff, 0x80, 0x47, 0x77, 0xd1, 0xd8, 0xe9, 0x69, 0x97, 0x98, 0x7f, 0x20, 0x57, 0x1d, 0x1d, 0x4f, 0x08, 0x27, 0xc8, 0x35, 0x57, 0x40, 0xc6, 0x21, 0x0c}}}, -{{{0xd2, 0x8e, 0x9b, 0xfa, 0x42, 0x8e, 0xdf, 0x8f, 0xc7, 0x86, 0xf9, 0xa4, 0xca, 0x70, 0x00, 0x9d, 0x21, 0xbf, 0xec, 0x57, 0x62, 0x30, 0x58, 0x8c, 0x0d, 0x35, 0xdb, 0x5d, 0x8b, 0x6a, 0xa0, 0x5a}} , - {{0xc1, 0x58, 0x7c, 0x0d, 0x20, 0xdd, 0x11, 0x26, 0x5f, 0x89, 0x3b, 0x97, 0x58, 0xf8, 0x8b, 0xe3, 0xdf, 0x32, 0xe2, 0xfc, 0xd8, 0x67, 0xf2, 0xa5, 0x37, 0x1e, 0x6d, 0xec, 0x7c, 0x27, 0x20, 0x79}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xd0, 0xe9, 0xc0, 0xfa, 0x95, 0x45, 0x23, 0x96, 0xf1, 0x2c, 0x79, 0x25, 0x14, 0xce, 0x40, 0x14, 0x44, 0x2c, 0x36, 0x50, 0xd9, 0x63, 0x56, 0xb7, 0x56, 0x3b, 0x9e, 0xa7, 0xef, 0x89, 0xbb, 0x0e}} , - {{0xce, 0x7f, 0xdc, 0x0a, 0xcc, 0x82, 0x1c, 0x0a, 0x78, 0x71, 0xe8, 0x74, 0x8d, 0x01, 0x30, 0x0f, 0xa7, 0x11, 0x4c, 0xdf, 0x38, 0xd7, 0xa7, 0x0d, 0xf8, 0x48, 0x52, 0x00, 0x80, 0x7b, 0x5f, 0x0e}}}, -{{{0x25, 0x83, 0xe6, 0x94, 0x7b, 0x81, 0xb2, 0x91, 0xae, 0x0e, 0x05, 0xc9, 0xa3, 0x68, 0x2d, 0xd9, 0x88, 0x25, 0x19, 0x2a, 0x61, 0x61, 0x21, 0x97, 0x15, 0xa1, 0x35, 0xa5, 0x46, 0xc8, 0xa2, 0x0e}} , - {{0x1b, 0x03, 0x0d, 0x8b, 0x5a, 0x1b, 0x97, 0x4b, 0xf2, 0x16, 0x31, 0x3d, 0x1f, 0x33, 0xa0, 0x50, 0x3a, 0x18, 0xbe, 0x13, 0xa1, 0x76, 0xc1, 0xba, 0x1b, 0xf1, 0x05, 0x7b, 0x33, 0xa8, 0x82, 0x3b}}}, -{{{0xba, 0x36, 0x7b, 0x6d, 0xa9, 0xea, 0x14, 0x12, 0xc5, 0xfa, 0x91, 0x00, 0xba, 0x9b, 0x99, 0xcc, 0x56, 0x02, 0xe9, 0xa0, 0x26, 0x40, 0x66, 0x8c, 0xc4, 0xf8, 0x85, 0x33, 0x68, 0xe7, 0x03, 0x20}} , - {{0x50, 0x5b, 0xff, 0xa9, 0xb2, 0xf1, 0xf1, 0x78, 0xcf, 0x14, 0xa4, 0xa9, 0xfc, 0x09, 0x46, 0x94, 0x54, 0x65, 0x0d, 0x9c, 0x5f, 0x72, 0x21, 0xe2, 0x97, 0xa5, 0x2d, 0x81, 0xce, 0x4a, 0x5f, 0x79}}}, -{{{0x3d, 0x5f, 0x5c, 0xd2, 0xbc, 0x7d, 0x77, 0x0e, 0x2a, 0x6d, 0x22, 0x45, 0x84, 0x06, 0xc4, 0xdd, 0xc6, 0xa6, 0xc6, 0xd7, 0x49, 0xad, 0x6d, 0x87, 0x91, 0x0e, 0x3a, 0x67, 0x1d, 0x2c, 0x1d, 0x56}} , - {{0xfe, 0x7a, 0x74, 0xcf, 0xd4, 0xd2, 0xe5, 0x19, 0xde, 0xd0, 0xdb, 0x70, 0x23, 0x69, 0xe6, 0x6d, 0xec, 0xec, 0xcc, 0x09, 0x33, 0x6a, 0x77, 0xdc, 0x6b, 0x22, 0x76, 0x5d, 0x92, 0x09, 0xac, 0x2d}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x23, 0x15, 0x17, 0xeb, 0xd3, 0xdb, 0x12, 0x5e, 0x01, 0xf0, 0x91, 0xab, 0x2c, 0x41, 0xce, 0xac, 0xed, 0x1b, 0x4b, 0x2d, 0xbc, 0xdb, 0x17, 0x66, 0x89, 0x46, 0xad, 0x4b, 0x1e, 0x6f, 0x0b, 0x14}} , - {{0x11, 0xce, 0xbf, 0xb6, 0x77, 0x2d, 0x48, 0x22, 0x18, 0x4f, 0xa3, 0x5d, 0x4a, 0xb0, 0x70, 0x12, 0x3e, 0x54, 0xd7, 0xd8, 0x0e, 0x2b, 0x27, 0xdc, 0x53, 0xff, 0xca, 0x8c, 0x59, 0xb3, 0x4e, 0x44}}}, -{{{0x07, 0x76, 0x61, 0x0f, 0x66, 0xb2, 0x21, 0x39, 0x7e, 0xc0, 0xec, 0x45, 0x28, 0x82, 0xa1, 0x29, 0x32, 0x44, 0x35, 0x13, 0x5e, 0x61, 0x5e, 0x54, 0xcb, 0x7c, 0xef, 0xf6, 0x41, 0xcf, 0x9f, 0x0a}} , - {{0xdd, 0xf9, 0xda, 0x84, 0xc3, 0xe6, 0x8a, 0x9f, 0x24, 0xd2, 0x96, 0x5d, 0x39, 0x6f, 0x58, 0x8c, 0xc1, 0x56, 0x93, 0xab, 0xb5, 0x79, 0x3b, 0xd2, 0xa8, 0x73, 0x16, 0xed, 0xfa, 0xb4, 0x2f, 0x73}}}, -{{{0x8b, 0xb1, 0x95, 0xe5, 0x92, 0x50, 0x35, 0x11, 0x76, 0xac, 0xf4, 0x4d, 0x24, 0xc3, 0x32, 0xe6, 0xeb, 0xfe, 0x2c, 0x87, 0xc4, 0xf1, 0x56, 0xc4, 0x75, 0x24, 0x7a, 0x56, 0x85, 0x5a, 0x3a, 0x13}} , - {{0x0d, 0x16, 0xac, 0x3c, 0x4a, 0x58, 0x86, 0x3a, 0x46, 0x7f, 0x6c, 0xa3, 0x52, 0x6e, 0x37, 0xe4, 0x96, 0x9c, 0xe9, 0x5c, 0x66, 0x41, 0x67, 0xe4, 0xfb, 0x79, 0x0c, 0x05, 0xf6, 0x64, 0xd5, 0x7c}}}, -{{{0x28, 0xc1, 0xe1, 0x54, 0x73, 0xf2, 0xbf, 0x76, 0x74, 0x19, 0x19, 0x1b, 0xe4, 0xb9, 0xa8, 0x46, 0x65, 0x73, 0xf3, 0x77, 0x9b, 0x29, 0x74, 0x5b, 0xc6, 0x89, 0x6c, 0x2c, 0x7c, 0xf8, 0xb3, 0x0f}} , - {{0xf7, 0xd5, 0xe9, 0x74, 0x5d, 0xb8, 0x25, 0x16, 0xb5, 0x30, 0xbc, 0x84, 0xc5, 0xf0, 0xad, 0xca, 0x12, 0x28, 0xbc, 0x9d, 0xd4, 0xfa, 0x82, 0xe6, 0xe3, 0xbf, 0xa2, 0x15, 0x2c, 0xd4, 0x34, 0x10}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x61, 0xb1, 0x46, 0xba, 0x0e, 0x31, 0xa5, 0x67, 0x6c, 0x7f, 0xd6, 0xd9, 0x27, 0x85, 0x0f, 0x79, 0x14, 0xc8, 0x6c, 0x2f, 0x5f, 0x5b, 0x9c, 0x35, 0x3d, 0x38, 0x86, 0x77, 0x65, 0x55, 0x6a, 0x7b}} , - {{0xd3, 0xb0, 0x3a, 0x66, 0x60, 0x1b, 0x43, 0xf1, 0x26, 0x58, 0x99, 0x09, 0x8f, 0x2d, 0xa3, 0x14, 0x71, 0x85, 0xdb, 0xed, 0xf6, 0x26, 0xd5, 0x61, 0x9a, 0x73, 0xac, 0x0e, 0xea, 0xac, 0xb7, 0x0c}}}, -{{{0x5e, 0xf4, 0xe5, 0x17, 0x0e, 0x10, 0x9f, 0xe7, 0x43, 0x5f, 0x67, 0x5c, 0xac, 0x4b, 0xe5, 0x14, 0x41, 0xd2, 0xbf, 0x48, 0xf5, 0x14, 0xb0, 0x71, 0xc6, 0x61, 0xc1, 0xb2, 0x70, 0x58, 0xd2, 0x5a}} , - {{0x2d, 0xba, 0x16, 0x07, 0x92, 0x94, 0xdc, 0xbd, 0x50, 0x2b, 0xc9, 0x7f, 0x42, 0x00, 0xba, 0x61, 0xed, 0xf8, 0x43, 0xed, 0xf5, 0xf9, 0x40, 0x60, 0xb2, 0xb0, 0x82, 0xcb, 0xed, 0x75, 0xc7, 0x65}}}, -{{{0x80, 0xba, 0x0d, 0x09, 0x40, 0xa7, 0x39, 0xa6, 0x67, 0x34, 0x7e, 0x66, 0xbe, 0x56, 0xfb, 0x53, 0x78, 0xc4, 0x46, 0xe8, 0xed, 0x68, 0x6c, 0x7f, 0xce, 0xe8, 0x9f, 0xce, 0xa2, 0x64, 0x58, 0x53}} , - {{0xe8, 0xc1, 0xa9, 0xc2, 0x7b, 0x59, 0x21, 0x33, 0xe2, 0x43, 0x73, 0x2b, 0xac, 0x2d, 0xc1, 0x89, 0x3b, 0x15, 0xe2, 0xd5, 0xc0, 0x97, 0x8a, 0xfd, 0x6f, 0x36, 0x33, 0xb7, 0xb9, 0xc3, 0x88, 0x09}}}, -{{{0xd0, 0xb6, 0x56, 0x30, 0x5c, 0xae, 0xb3, 0x75, 0x44, 0xa4, 0x83, 0x51, 0x6e, 0x01, 0x65, 0xef, 0x45, 0x76, 0xe6, 0xf5, 0xa2, 0x0d, 0xd4, 0x16, 0x3b, 0x58, 0x2f, 0xf2, 0x2f, 0x36, 0x18, 0x3f}} , - {{0xfd, 0x2f, 0xe0, 0x9b, 0x1e, 0x8c, 0xc5, 0x18, 0xa9, 0xca, 0xd4, 0x2b, 0x35, 0xb6, 0x95, 0x0a, 0x9f, 0x7e, 0xfb, 0xc4, 0xef, 0x88, 0x7b, 0x23, 0x43, 0xec, 0x2f, 0x0d, 0x0f, 0x7a, 0xfc, 0x5c}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x8d, 0xd2, 0xda, 0xc7, 0x44, 0xd6, 0x7a, 0xdb, 0x26, 0x7d, 0x1d, 0xb8, 0xe1, 0xde, 0x9d, 0x7a, 0x7d, 0x17, 0x7e, 0x1c, 0x37, 0x04, 0x8d, 0x2d, 0x7c, 0x5e, 0x18, 0x38, 0x1e, 0xaf, 0xc7, 0x1b}} , - {{0x33, 0x48, 0x31, 0x00, 0x59, 0xf6, 0xf2, 0xca, 0x0f, 0x27, 0x1b, 0x63, 0x12, 0x7e, 0x02, 0x1d, 0x49, 0xc0, 0x5d, 0x79, 0x87, 0xef, 0x5e, 0x7a, 0x2f, 0x1f, 0x66, 0x55, 0xd8, 0x09, 0xd9, 0x61}}}, -{{{0x54, 0x83, 0x02, 0x18, 0x82, 0x93, 0x99, 0x07, 0xd0, 0xa7, 0xda, 0xd8, 0x75, 0x89, 0xfa, 0xf2, 0xd9, 0xa3, 0xb8, 0x6b, 0x5a, 0x35, 0x28, 0xd2, 0x6b, 0x59, 0xc2, 0xf8, 0x45, 0xe2, 0xbc, 0x06}} , - {{0x65, 0xc0, 0xa3, 0x88, 0x51, 0x95, 0xfc, 0x96, 0x94, 0x78, 0xe8, 0x0d, 0x8b, 0x41, 0xc9, 0xc2, 0x58, 0x48, 0x75, 0x10, 0x2f, 0xcd, 0x2a, 0xc9, 0xa0, 0x6d, 0x0f, 0xdd, 0x9c, 0x98, 0x26, 0x3d}}}, -{{{0x2f, 0x66, 0x29, 0x1b, 0x04, 0x89, 0xbd, 0x7e, 0xee, 0x6e, 0xdd, 0xb7, 0x0e, 0xef, 0xb0, 0x0c, 0xb4, 0xfc, 0x7f, 0xc2, 0xc9, 0x3a, 0x3c, 0x64, 0xef, 0x45, 0x44, 0xaf, 0x8a, 0x90, 0x65, 0x76}} , - {{0xa1, 0x4c, 0x70, 0x4b, 0x0e, 0xa0, 0x83, 0x70, 0x13, 0xa4, 0xaf, 0xb8, 0x38, 0x19, 0x22, 0x65, 0x09, 0xb4, 0x02, 0x4f, 0x06, 0xf8, 0x17, 0xce, 0x46, 0x45, 0xda, 0x50, 0x7c, 0x8a, 0xd1, 0x4e}}}, -{{{0xf7, 0xd4, 0x16, 0x6c, 0x4e, 0x95, 0x9d, 0x5d, 0x0f, 0x91, 0x2b, 0x52, 0xfe, 0x5c, 0x34, 0xe5, 0x30, 0xe6, 0xa4, 0x3b, 0xf3, 0xf3, 0x34, 0x08, 0xa9, 0x4a, 0xa0, 0xb5, 0x6e, 0xb3, 0x09, 0x0a}} , - {{0x26, 0xd9, 0x5e, 0xa3, 0x0f, 0xeb, 0xa2, 0xf3, 0x20, 0x3b, 0x37, 0xd4, 0xe4, 0x9e, 0xce, 0x06, 0x3d, 0x53, 0xed, 0xae, 0x2b, 0xeb, 0xb6, 0x24, 0x0a, 0x11, 0xa3, 0x0f, 0xd6, 0x7f, 0xa4, 0x3a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xdb, 0x9f, 0x2c, 0xfc, 0xd6, 0xb2, 0x1e, 0x2e, 0x52, 0x7a, 0x06, 0x87, 0x2d, 0x86, 0x72, 0x2b, 0x6d, 0x90, 0x77, 0x46, 0x43, 0xb5, 0x7a, 0xf8, 0x60, 0x7d, 0x91, 0x60, 0x5b, 0x9d, 0x9e, 0x07}} , - {{0x97, 0x87, 0xc7, 0x04, 0x1c, 0x38, 0x01, 0x39, 0x58, 0xc7, 0x85, 0xa3, 0xfc, 0x64, 0x00, 0x64, 0x25, 0xa2, 0xbf, 0x50, 0x94, 0xca, 0x26, 0x31, 0x45, 0x0a, 0x24, 0xd2, 0x51, 0x29, 0x51, 0x16}}}, -{{{0x4d, 0x4a, 0xd7, 0x98, 0x71, 0x57, 0xac, 0x7d, 0x8b, 0x37, 0xbd, 0x63, 0xff, 0x87, 0xb1, 0x49, 0x95, 0x20, 0x7c, 0xcf, 0x7c, 0x59, 0xc4, 0x91, 0x9c, 0xef, 0xd0, 0xdb, 0x60, 0x09, 0x9d, 0x46}} , - {{0xcb, 0x78, 0x94, 0x90, 0xe4, 0x45, 0xb3, 0xf6, 0xd9, 0xf6, 0x57, 0x74, 0xd5, 0xf8, 0x83, 0x4f, 0x39, 0xc9, 0xbd, 0x88, 0xc2, 0x57, 0x21, 0x1f, 0x24, 0x32, 0x68, 0xf8, 0xc7, 0x21, 0x5f, 0x0b}}}, -{{{0x2a, 0x36, 0x68, 0xfc, 0x5f, 0xb6, 0x4f, 0xa5, 0xe3, 0x9d, 0x24, 0x2f, 0xc0, 0x93, 0x61, 0xcf, 0xf8, 0x0a, 0xed, 0xe1, 0xdb, 0x27, 0xec, 0x0e, 0x14, 0x32, 0x5f, 0x8e, 0xa1, 0x62, 0x41, 0x16}} , - {{0x95, 0x21, 0x01, 0xce, 0x95, 0x5b, 0x0e, 0x57, 0xc7, 0xb9, 0x62, 0xb5, 0x28, 0xca, 0x11, 0xec, 0xb4, 0x46, 0x06, 0x73, 0x26, 0xff, 0xfb, 0x66, 0x7d, 0xee, 0x5f, 0xb2, 0x56, 0xfd, 0x2a, 0x08}}}, -{{{0x92, 0x67, 0x77, 0x56, 0xa1, 0xff, 0xc4, 0xc5, 0x95, 0xf0, 0xe3, 0x3a, 0x0a, 0xca, 0x94, 0x4d, 0x9e, 0x7e, 0x3d, 0xb9, 0x6e, 0xb6, 0xb0, 0xce, 0xa4, 0x30, 0x89, 0x99, 0xe9, 0xad, 0x11, 0x59}} , - {{0xf6, 0x48, 0x95, 0xa1, 0x6f, 0x5f, 0xb7, 0xa5, 0xbb, 0x30, 0x00, 0x1c, 0xd2, 0x8a, 0xd6, 0x25, 0x26, 0x1b, 0xb2, 0x0d, 0x37, 0x6a, 0x05, 0xf4, 0x9d, 0x3e, 0x17, 0x2a, 0x43, 0xd2, 0x3a, 0x06}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x32, 0x99, 0x93, 0xd1, 0x9a, 0x72, 0xf3, 0xa9, 0x16, 0xbd, 0xb4, 0x4c, 0xdd, 0xf9, 0xd4, 0xb2, 0x64, 0x9a, 0xd3, 0x05, 0xe4, 0xa3, 0x73, 0x1c, 0xcb, 0x7e, 0x57, 0x67, 0xff, 0x04, 0xb3, 0x10}} , - {{0xb9, 0x4b, 0xa4, 0xad, 0xd0, 0x6d, 0x61, 0x23, 0xb4, 0xaf, 0x34, 0xa9, 0xaa, 0x65, 0xec, 0xd9, 0x69, 0xe3, 0x85, 0xcd, 0xcc, 0xe7, 0xb0, 0x9b, 0x41, 0xc1, 0x1c, 0xf9, 0xa0, 0xfa, 0xb7, 0x13}}}, -{{{0x04, 0xfd, 0x88, 0x3c, 0x0c, 0xd0, 0x09, 0x52, 0x51, 0x4f, 0x06, 0x19, 0xcc, 0xc3, 0xbb, 0xde, 0x80, 0xc5, 0x33, 0xbc, 0xf9, 0xf3, 0x17, 0x36, 0xdd, 0xc6, 0xde, 0xe8, 0x9b, 0x5d, 0x79, 0x1b}} , - {{0x65, 0x0a, 0xbe, 0x51, 0x57, 0xad, 0x50, 0x79, 0x08, 0x71, 0x9b, 0x07, 0x95, 0x8f, 0xfb, 0xae, 0x4b, 0x38, 0xba, 0xcf, 0x53, 0x2a, 0x86, 0x1e, 0xc0, 0x50, 0x5c, 0x67, 0x1b, 0xf6, 0x87, 0x6c}}}, -{{{0x4f, 0x00, 0xb2, 0x66, 0x55, 0xed, 0x4a, 0xed, 0x8d, 0xe1, 0x66, 0x18, 0xb2, 0x14, 0x74, 0x8d, 0xfd, 0x1a, 0x36, 0x0f, 0x26, 0x5c, 0x8b, 0x89, 0xf3, 0xab, 0xf2, 0xf3, 0x24, 0x67, 0xfd, 0x70}} , - {{0xfd, 0x4e, 0x2a, 0xc1, 0x3a, 0xca, 0x8f, 0x00, 0xd8, 0xec, 0x74, 0x67, 0xef, 0x61, 0xe0, 0x28, 0xd0, 0x96, 0xf4, 0x48, 0xde, 0x81, 0xe3, 0xef, 0xdc, 0xaa, 0x7d, 0xf3, 0xb6, 0x55, 0xa6, 0x65}}}, -{{{0xeb, 0xcb, 0xc5, 0x70, 0x91, 0x31, 0x10, 0x93, 0x0d, 0xc8, 0xd0, 0xef, 0x62, 0xe8, 0x6f, 0x82, 0xe3, 0x69, 0x3d, 0x91, 0x7f, 0x31, 0xe1, 0x26, 0x35, 0x3c, 0x4a, 0x2f, 0xab, 0xc4, 0x9a, 0x5e}} , - {{0xab, 0x1b, 0xb5, 0xe5, 0x2b, 0xc3, 0x0e, 0x29, 0xb0, 0xd0, 0x73, 0xe6, 0x4f, 0x64, 0xf2, 0xbc, 0xe4, 0xe4, 0xe1, 0x9a, 0x52, 0x33, 0x2f, 0xbd, 0xcc, 0x03, 0xee, 0x8a, 0xfa, 0x00, 0x5f, 0x50}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xf6, 0xdb, 0x0d, 0x22, 0x3d, 0xb5, 0x14, 0x75, 0x31, 0xf0, 0x81, 0xe2, 0xb9, 0x37, 0xa2, 0xa9, 0x84, 0x11, 0x9a, 0x07, 0xb5, 0x53, 0x89, 0x78, 0xa9, 0x30, 0x27, 0xa1, 0xf1, 0x4e, 0x5c, 0x2e}} , - {{0x8b, 0x00, 0x54, 0xfb, 0x4d, 0xdc, 0xcb, 0x17, 0x35, 0x40, 0xff, 0xb7, 0x8c, 0xfe, 0x4a, 0xe4, 0x4e, 0x99, 0x4e, 0xa8, 0x74, 0x54, 0x5d, 0x5c, 0x96, 0xa3, 0x12, 0x55, 0x36, 0x31, 0x17, 0x5c}}}, -{{{0xce, 0x24, 0xef, 0x7b, 0x86, 0xf2, 0x0f, 0x77, 0xe8, 0x5c, 0x7d, 0x87, 0x38, 0x2d, 0xef, 0xaf, 0xf2, 0x8c, 0x72, 0x2e, 0xeb, 0xb6, 0x55, 0x4b, 0x6e, 0xf1, 0x4e, 0x8a, 0x0e, 0x9a, 0x6c, 0x4c}} , - {{0x25, 0xea, 0x86, 0xc2, 0xd1, 0x4f, 0xb7, 0x3e, 0xa8, 0x5c, 0x8d, 0x66, 0x81, 0x25, 0xed, 0xc5, 0x4c, 0x05, 0xb9, 0xd8, 0xd6, 0x70, 0xbe, 0x73, 0x82, 0xe8, 0xa1, 0xe5, 0x1e, 0x71, 0xd5, 0x26}}}, -{{{0x4e, 0x6d, 0xc3, 0xa7, 0x4f, 0x22, 0x45, 0x26, 0xa2, 0x7e, 0x16, 0xf7, 0xf7, 0x63, 0xdc, 0x86, 0x01, 0x2a, 0x71, 0x38, 0x5c, 0x33, 0xc3, 0xce, 0x30, 0xff, 0xf9, 0x2c, 0x91, 0x71, 0x8a, 0x72}} , - {{0x8c, 0x44, 0x09, 0x28, 0xd5, 0x23, 0xc9, 0x8f, 0xf3, 0x84, 0x45, 0xc6, 0x9a, 0x5e, 0xff, 0xd2, 0xc7, 0x57, 0x93, 0xa3, 0xc1, 0x69, 0xdd, 0x62, 0x0f, 0xda, 0x5c, 0x30, 0x59, 0x5d, 0xe9, 0x4c}}}, -{{{0x92, 0x7e, 0x50, 0x27, 0x72, 0xd7, 0x0c, 0xd6, 0x69, 0x96, 0x81, 0x35, 0x84, 0x94, 0x35, 0x8b, 0x6c, 0xaa, 0x62, 0x86, 0x6e, 0x1c, 0x15, 0xf3, 0x6c, 0xb3, 0xff, 0x65, 0x1b, 0xa2, 0x9b, 0x59}} , - {{0xe2, 0xa9, 0x65, 0x88, 0xc4, 0x50, 0xfa, 0xbb, 0x3b, 0x6e, 0x5f, 0x44, 0x01, 0xca, 0x97, 0xd4, 0xdd, 0xf6, 0xcd, 0x3f, 0x3f, 0xe5, 0x97, 0x67, 0x2b, 0x8c, 0x66, 0x0f, 0x35, 0x9b, 0xf5, 0x07}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xf1, 0x59, 0x27, 0xd8, 0xdb, 0x5a, 0x11, 0x5e, 0x82, 0xf3, 0x38, 0xff, 0x1c, 0xed, 0xfe, 0x3f, 0x64, 0x54, 0x3f, 0x7f, 0xd1, 0x81, 0xed, 0xef, 0x65, 0xc5, 0xcb, 0xfd, 0xe1, 0x80, 0xcd, 0x11}} , - {{0xe0, 0xdb, 0x22, 0x28, 0xe6, 0xff, 0x61, 0x9d, 0x41, 0x14, 0x2d, 0x3b, 0x26, 0x22, 0xdf, 0xf1, 0x34, 0x81, 0xe9, 0x45, 0xee, 0x0f, 0x98, 0x8b, 0xa6, 0x3f, 0xef, 0xf7, 0x43, 0x19, 0xf1, 0x43}}}, -{{{0xee, 0xf3, 0x00, 0xa1, 0x50, 0xde, 0xc0, 0xb6, 0x01, 0xe3, 0x8c, 0x3c, 0x4d, 0x31, 0xd2, 0xb0, 0x58, 0xcd, 0xed, 0x10, 0x4a, 0x7a, 0xef, 0x80, 0xa9, 0x19, 0x32, 0xf3, 0xd8, 0x33, 0x8c, 0x06}} , - {{0xcb, 0x7d, 0x4f, 0xff, 0x30, 0xd8, 0x12, 0x3b, 0x39, 0x1c, 0x06, 0xf9, 0x4c, 0x34, 0x35, 0x71, 0xb5, 0x16, 0x94, 0x67, 0xdf, 0xee, 0x11, 0xde, 0xa4, 0x1d, 0x88, 0x93, 0x35, 0xa9, 0x32, 0x10}}}, -{{{0xe9, 0xc3, 0xbc, 0x7b, 0x5c, 0xfc, 0xb2, 0xf9, 0xc9, 0x2f, 0xe5, 0xba, 0x3a, 0x0b, 0xab, 0x64, 0x38, 0x6f, 0x5b, 0x4b, 0x93, 0xda, 0x64, 0xec, 0x4d, 0x3d, 0xa0, 0xf5, 0xbb, 0xba, 0x47, 0x48}} , - {{0x60, 0xbc, 0x45, 0x1f, 0x23, 0xa2, 0x3b, 0x70, 0x76, 0xe6, 0x97, 0x99, 0x4f, 0x77, 0x54, 0x67, 0x30, 0x9a, 0xe7, 0x66, 0xd6, 0xcd, 0x2e, 0x51, 0x24, 0x2c, 0x42, 0x4a, 0x11, 0xfe, 0x6f, 0x7e}}}, -{{{0x87, 0xc0, 0xb1, 0xf0, 0xa3, 0x6f, 0x0c, 0x93, 0xa9, 0x0a, 0x72, 0xef, 0x5c, 0xbe, 0x65, 0x35, 0xa7, 0x6a, 0x4e, 0x2c, 0xbf, 0x21, 0x23, 0xe8, 0x2f, 0x97, 0xc7, 0x3e, 0xc8, 0x17, 0xac, 0x1e}} , - {{0x7b, 0xef, 0x21, 0xe5, 0x40, 0xcc, 0x1e, 0xdc, 0xd6, 0xbd, 0x97, 0x7a, 0x7c, 0x75, 0x86, 0x7a, 0x25, 0x5a, 0x6e, 0x7c, 0xe5, 0x51, 0x3c, 0x1b, 0x5b, 0x82, 0x9a, 0x07, 0x60, 0xa1, 0x19, 0x04}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x96, 0x88, 0xa6, 0xab, 0x8f, 0xe3, 0x3a, 0x49, 0xf8, 0xfe, 0x34, 0xe7, 0x6a, 0xb2, 0xfe, 0x40, 0x26, 0x74, 0x57, 0x4c, 0xf6, 0xd4, 0x99, 0xce, 0x5d, 0x7b, 0x2f, 0x67, 0xd6, 0x5a, 0xe4, 0x4e}} , - {{0x5c, 0x82, 0xb3, 0xbd, 0x55, 0x25, 0xf6, 0x6a, 0x93, 0xa4, 0x02, 0xc6, 0x7d, 0x5c, 0xb1, 0x2b, 0x5b, 0xff, 0xfb, 0x56, 0xf8, 0x01, 0x41, 0x90, 0xc6, 0xb6, 0xac, 0x4f, 0xfe, 0xa7, 0x41, 0x70}}}, -{{{0xdb, 0xfa, 0x9b, 0x2c, 0xd4, 0x23, 0x67, 0x2c, 0x8a, 0x63, 0x6c, 0x07, 0x26, 0x48, 0x4f, 0xc2, 0x03, 0xd2, 0x53, 0x20, 0x28, 0xed, 0x65, 0x71, 0x47, 0xa9, 0x16, 0x16, 0x12, 0xbc, 0x28, 0x33}} , - {{0x39, 0xc0, 0xfa, 0xfa, 0xcd, 0x33, 0x43, 0xc7, 0x97, 0x76, 0x9b, 0x93, 0x91, 0x72, 0xeb, 0xc5, 0x18, 0x67, 0x4c, 0x11, 0xf0, 0xf4, 0xe5, 0x73, 0xb2, 0x5c, 0x1b, 0xc2, 0x26, 0x3f, 0xbf, 0x2b}}}, -{{{0x86, 0xe6, 0x8c, 0x1d, 0xdf, 0xca, 0xfc, 0xd5, 0xf8, 0x3a, 0xc3, 0x44, 0x72, 0xe6, 0x78, 0x9d, 0x2b, 0x97, 0xf8, 0x28, 0x45, 0xb4, 0x20, 0xc9, 0x2a, 0x8c, 0x67, 0xaa, 0x11, 0xc5, 0x5b, 0x2f}} , - {{0x17, 0x0f, 0x86, 0x52, 0xd7, 0x9d, 0xc3, 0x44, 0x51, 0x76, 0x32, 0x65, 0xb4, 0x37, 0x81, 0x99, 0x46, 0x37, 0x62, 0xed, 0xcf, 0x64, 0x9d, 0x72, 0x40, 0x7a, 0x4c, 0x0b, 0x76, 0x2a, 0xfb, 0x56}}}, -{{{0x33, 0xa7, 0x90, 0x7c, 0xc3, 0x6f, 0x17, 0xa5, 0xa0, 0x67, 0x72, 0x17, 0xea, 0x7e, 0x63, 0x14, 0x83, 0xde, 0xc1, 0x71, 0x2d, 0x41, 0x32, 0x7a, 0xf3, 0xd1, 0x2b, 0xd8, 0x2a, 0xa6, 0x46, 0x36}} , - {{0xac, 0xcc, 0x6b, 0x7c, 0xf9, 0xb8, 0x8b, 0x08, 0x5c, 0xd0, 0x7d, 0x8f, 0x73, 0xea, 0x20, 0xda, 0x86, 0xca, 0x00, 0xc7, 0xad, 0x73, 0x4d, 0xe9, 0xe8, 0xa9, 0xda, 0x1f, 0x03, 0x06, 0xdd, 0x24}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x9c, 0xb2, 0x61, 0x0a, 0x98, 0x2a, 0xa5, 0xd7, 0xee, 0xa9, 0xac, 0x65, 0xcb, 0x0a, 0x1e, 0xe2, 0xbe, 0xdc, 0x85, 0x59, 0x0f, 0x9c, 0xa6, 0x57, 0x34, 0xa5, 0x87, 0xeb, 0x7b, 0x1e, 0x0c, 0x3c}} , - {{0x2f, 0xbd, 0x84, 0x63, 0x0d, 0xb5, 0xa0, 0xf0, 0x4b, 0x9e, 0x93, 0xc6, 0x34, 0x9a, 0x34, 0xff, 0x73, 0x19, 0x2f, 0x6e, 0x54, 0x45, 0x2c, 0x92, 0x31, 0x76, 0x34, 0xf1, 0xb2, 0x26, 0xe8, 0x74}}}, -{{{0x0a, 0x67, 0x90, 0x6d, 0x0c, 0x4c, 0xcc, 0xc0, 0xe6, 0xbd, 0xa7, 0x5e, 0x55, 0x8c, 0xcd, 0x58, 0x9b, 0x11, 0xa2, 0xbb, 0x4b, 0xb1, 0x43, 0x04, 0x3c, 0x55, 0xed, 0x23, 0xfe, 0xcd, 0xb1, 0x53}} , - {{0x05, 0xfb, 0x75, 0xf5, 0x01, 0xaf, 0x38, 0x72, 0x58, 0xfc, 0x04, 0x29, 0x34, 0x7a, 0x67, 0xa2, 0x08, 0x50, 0x6e, 0xd0, 0x2b, 0x73, 0xd5, 0xb8, 0xe4, 0x30, 0x96, 0xad, 0x45, 0xdf, 0xa6, 0x5c}}}, -{{{0x0d, 0x88, 0x1a, 0x90, 0x7e, 0xdc, 0xd8, 0xfe, 0xc1, 0x2f, 0x5d, 0x67, 0xee, 0x67, 0x2f, 0xed, 0x6f, 0x55, 0x43, 0x5f, 0x87, 0x14, 0x35, 0x42, 0xd3, 0x75, 0xae, 0xd5, 0xd3, 0x85, 0x1a, 0x76}} , - {{0x87, 0xc8, 0xa0, 0x6e, 0xe1, 0xb0, 0xad, 0x6a, 0x4a, 0x34, 0x71, 0xed, 0x7c, 0xd6, 0x44, 0x03, 0x65, 0x4a, 0x5c, 0x5c, 0x04, 0xf5, 0x24, 0x3f, 0xb0, 0x16, 0x5e, 0x8c, 0xb2, 0xd2, 0xc5, 0x20}}}, -{{{0x98, 0x83, 0xc2, 0x37, 0xa0, 0x41, 0xa8, 0x48, 0x5c, 0x5f, 0xbf, 0xc8, 0xfa, 0x24, 0xe0, 0x59, 0x2c, 0xbd, 0xf6, 0x81, 0x7e, 0x88, 0xe6, 0xca, 0x04, 0xd8, 0x5d, 0x60, 0xbb, 0x74, 0xa7, 0x0b}} , - {{0x21, 0x13, 0x91, 0xbf, 0x77, 0x7a, 0x33, 0xbc, 0xe9, 0x07, 0x39, 0x0a, 0xdd, 0x7d, 0x06, 0x10, 0x9a, 0xee, 0x47, 0x73, 0x1b, 0x15, 0x5a, 0xfb, 0xcd, 0x4d, 0xd0, 0xd2, 0x3a, 0x01, 0xba, 0x54}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x48, 0xd5, 0x39, 0x4a, 0x0b, 0x20, 0x6a, 0x43, 0xa0, 0x07, 0x82, 0x5e, 0x49, 0x7c, 0xc9, 0x47, 0xf1, 0x7c, 0x37, 0xb9, 0x23, 0xef, 0x6b, 0x46, 0x45, 0x8c, 0x45, 0x76, 0xdf, 0x14, 0x6b, 0x6e}} , - {{0x42, 0xc9, 0xca, 0x29, 0x4c, 0x76, 0x37, 0xda, 0x8a, 0x2d, 0x7c, 0x3a, 0x58, 0xf2, 0x03, 0xb4, 0xb5, 0xb9, 0x1a, 0x13, 0x2d, 0xde, 0x5f, 0x6b, 0x9d, 0xba, 0x52, 0xc9, 0x5d, 0xb3, 0xf3, 0x30}}}, -{{{0x4c, 0x6f, 0xfe, 0x6b, 0x0c, 0x62, 0xd7, 0x48, 0x71, 0xef, 0xb1, 0x85, 0x79, 0xc0, 0xed, 0x24, 0xb1, 0x08, 0x93, 0x76, 0x8e, 0xf7, 0x38, 0x8e, 0xeb, 0xfe, 0x80, 0x40, 0xaf, 0x90, 0x64, 0x49}} , - {{0x4a, 0x88, 0xda, 0xc1, 0x98, 0x44, 0x3c, 0x53, 0x4e, 0xdb, 0x4b, 0xb9, 0x12, 0x5f, 0xcd, 0x08, 0x04, 0xef, 0x75, 0xe7, 0xb1, 0x3a, 0xe5, 0x07, 0xfa, 0xca, 0x65, 0x7b, 0x72, 0x10, 0x64, 0x7f}}}, -{{{0x3d, 0x81, 0xf0, 0xeb, 0x16, 0xfd, 0x58, 0x33, 0x8d, 0x7c, 0x1a, 0xfb, 0x20, 0x2c, 0x8a, 0xee, 0x90, 0xbb, 0x33, 0x6d, 0x45, 0xe9, 0x8e, 0x99, 0x85, 0xe1, 0x08, 0x1f, 0xc5, 0xf1, 0xb5, 0x46}} , - {{0xe4, 0xe7, 0x43, 0x4b, 0xa0, 0x3f, 0x2b, 0x06, 0xba, 0x17, 0xae, 0x3d, 0xe6, 0xce, 0xbd, 0xb8, 0xed, 0x74, 0x11, 0x35, 0xec, 0x96, 0xfe, 0x31, 0xe3, 0x0e, 0x7a, 0x4e, 0xc9, 0x1d, 0xcb, 0x20}}}, -{{{0xe0, 0x67, 0xe9, 0x7b, 0xdb, 0x96, 0x5c, 0xb0, 0x32, 0xd0, 0x59, 0x31, 0x90, 0xdc, 0x92, 0x97, 0xac, 0x09, 0x38, 0x31, 0x0f, 0x7e, 0xd6, 0x5d, 0xd0, 0x06, 0xb6, 0x1f, 0xea, 0xf0, 0x5b, 0x07}} , - {{0x81, 0x9f, 0xc7, 0xde, 0x6b, 0x41, 0x22, 0x35, 0x14, 0x67, 0x77, 0x3e, 0x90, 0x81, 0xb0, 0xd9, 0x85, 0x4c, 0xca, 0x9b, 0x3f, 0x04, 0x59, 0xd6, 0xaa, 0x17, 0xc3, 0x88, 0x34, 0x37, 0xba, 0x43}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x4c, 0xb6, 0x69, 0xc8, 0x81, 0x95, 0x94, 0x33, 0x92, 0x34, 0xe9, 0x3c, 0x84, 0x0d, 0x3d, 0x5a, 0x37, 0x9c, 0x22, 0xa0, 0xaa, 0x65, 0xce, 0xb4, 0xc2, 0x2d, 0x66, 0x67, 0x02, 0xff, 0x74, 0x10}} , - {{0x22, 0xb0, 0xd5, 0xe6, 0xc7, 0xef, 0xb1, 0xa7, 0x13, 0xda, 0x60, 0xb4, 0x80, 0xc1, 0x42, 0x7d, 0x10, 0x70, 0x97, 0x04, 0x4d, 0xda, 0x23, 0x89, 0xc2, 0x0e, 0x68, 0xcb, 0xde, 0xe0, 0x9b, 0x29}}}, -{{{0x33, 0xfe, 0x42, 0x2a, 0x36, 0x2b, 0x2e, 0x36, 0x64, 0x5c, 0x8b, 0xcc, 0x81, 0x6a, 0x15, 0x08, 0xa1, 0x27, 0xe8, 0x57, 0xe5, 0x78, 0x8e, 0xf2, 0x58, 0x19, 0x12, 0x42, 0xae, 0xc4, 0x63, 0x3e}} , - {{0x78, 0x96, 0x9c, 0xa7, 0xca, 0x80, 0xae, 0x02, 0x85, 0xb1, 0x7c, 0x04, 0x5c, 0xc1, 0x5b, 0x26, 0xc1, 0xba, 0xed, 0xa5, 0x59, 0x70, 0x85, 0x8c, 0x8c, 0xe8, 0x87, 0xac, 0x6a, 0x28, 0x99, 0x35}}}, -{{{0x9f, 0x04, 0x08, 0x28, 0xbe, 0x87, 0xda, 0x80, 0x28, 0x38, 0xde, 0x9f, 0xcd, 0xe4, 0xe3, 0x62, 0xfb, 0x2e, 0x46, 0x8d, 0x01, 0xb3, 0x06, 0x51, 0xd4, 0x19, 0x3b, 0x11, 0xfa, 0xe2, 0xad, 0x1e}} , - {{0xa0, 0x20, 0x99, 0x69, 0x0a, 0xae, 0xa3, 0x70, 0x4e, 0x64, 0x80, 0xb7, 0x85, 0x9c, 0x87, 0x54, 0x43, 0x43, 0x55, 0x80, 0x6d, 0x8d, 0x7c, 0xa9, 0x64, 0xca, 0x6c, 0x2e, 0x21, 0xd8, 0xc8, 0x6c}}}, -{{{0x91, 0x4a, 0x07, 0xad, 0x08, 0x75, 0xc1, 0x4f, 0xa4, 0xb2, 0xc3, 0x6f, 0x46, 0x3e, 0xb1, 0xce, 0x52, 0xab, 0x67, 0x09, 0x54, 0x48, 0x6b, 0x6c, 0xd7, 0x1d, 0x71, 0x76, 0xcb, 0xff, 0xdd, 0x31}} , - {{0x36, 0x88, 0xfa, 0xfd, 0xf0, 0x36, 0x6f, 0x07, 0x74, 0x88, 0x50, 0xd0, 0x95, 0x38, 0x4a, 0x48, 0x2e, 0x07, 0x64, 0x97, 0x11, 0x76, 0x01, 0x1a, 0x27, 0x4d, 0x8e, 0x25, 0x9a, 0x9b, 0x1c, 0x22}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xbe, 0x57, 0xbd, 0x0e, 0x0f, 0xac, 0x5e, 0x76, 0xa3, 0x71, 0xad, 0x2b, 0x10, 0x45, 0x02, 0xec, 0x59, 0xd5, 0x5d, 0xa9, 0x44, 0xcc, 0x25, 0x4c, 0xb3, 0x3c, 0x5b, 0x69, 0x07, 0x55, 0x26, 0x6b}} , - {{0x30, 0x6b, 0xd4, 0xa7, 0x51, 0x29, 0xe3, 0xf9, 0x7a, 0x75, 0x2a, 0x82, 0x2f, 0xd6, 0x1d, 0x99, 0x2b, 0x80, 0xd5, 0x67, 0x1e, 0x15, 0x9d, 0xca, 0xfd, 0xeb, 0xac, 0x97, 0x35, 0x09, 0x7f, 0x3f}}}, -{{{0x35, 0x0d, 0x34, 0x0a, 0xb8, 0x67, 0x56, 0x29, 0x20, 0xf3, 0x19, 0x5f, 0xe2, 0x83, 0x42, 0x73, 0x53, 0xa8, 0xc5, 0x02, 0x19, 0x33, 0xb4, 0x64, 0xbd, 0xc3, 0x87, 0x8c, 0xd7, 0x76, 0xed, 0x25}} , - {{0x47, 0x39, 0x37, 0x76, 0x0d, 0x1d, 0x0c, 0xf5, 0x5a, 0x6d, 0x43, 0x88, 0x99, 0x15, 0xb4, 0x52, 0x0f, 0x2a, 0xb3, 0xb0, 0x3f, 0xa6, 0xb3, 0x26, 0xb3, 0xc7, 0x45, 0xf5, 0x92, 0x5f, 0x9b, 0x17}}}, -{{{0x9d, 0x23, 0xbd, 0x15, 0xfe, 0x52, 0x52, 0x15, 0x26, 0x79, 0x86, 0xba, 0x06, 0x56, 0x66, 0xbb, 0x8c, 0x2e, 0x10, 0x11, 0xd5, 0x4a, 0x18, 0x52, 0xda, 0x84, 0x44, 0xf0, 0x3e, 0xe9, 0x8c, 0x35}} , - {{0xad, 0xa0, 0x41, 0xec, 0xc8, 0x4d, 0xb9, 0xd2, 0x6e, 0x96, 0x4e, 0x5b, 0xc5, 0xc2, 0xa0, 0x1b, 0xcf, 0x0c, 0xbf, 0x17, 0x66, 0x57, 0xc1, 0x17, 0x90, 0x45, 0x71, 0xc2, 0xe1, 0x24, 0xeb, 0x27}}}, -{{{0x2c, 0xb9, 0x42, 0xa4, 0xaf, 0x3b, 0x42, 0x0e, 0xc2, 0x0f, 0xf2, 0xea, 0x83, 0xaf, 0x9a, 0x13, 0x17, 0xb0, 0xbd, 0x89, 0x17, 0xe3, 0x72, 0xcb, 0x0e, 0x76, 0x7e, 0x41, 0x63, 0x04, 0x88, 0x71}} , - {{0x75, 0x78, 0x38, 0x86, 0x57, 0xdd, 0x9f, 0xee, 0x54, 0x70, 0x65, 0xbf, 0xf1, 0x2c, 0xe0, 0x39, 0x0d, 0xe3, 0x89, 0xfd, 0x8e, 0x93, 0x4f, 0x43, 0xdc, 0xd5, 0x5b, 0xde, 0xf9, 0x98, 0xe5, 0x7b}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xe7, 0x3b, 0x65, 0x11, 0xdf, 0xb2, 0xf2, 0x63, 0x94, 0x12, 0x6f, 0x5c, 0x9e, 0x77, 0xc1, 0xb6, 0xd8, 0xab, 0x58, 0x7a, 0x1d, 0x95, 0x73, 0xdd, 0xe7, 0xe3, 0x6f, 0xf2, 0x03, 0x1d, 0xdb, 0x76}} , - {{0xae, 0x06, 0x4e, 0x2c, 0x52, 0x1b, 0xbc, 0x5a, 0x5a, 0xa5, 0xbe, 0x27, 0xbd, 0xeb, 0xe1, 0x14, 0x17, 0x68, 0x26, 0x07, 0x03, 0xd1, 0x18, 0x0b, 0xdf, 0xf1, 0x06, 0x5c, 0xa6, 0x1b, 0xb9, 0x24}}}, -{{{0xc5, 0x66, 0x80, 0x13, 0x0e, 0x48, 0x8c, 0x87, 0x31, 0x84, 0xb4, 0x60, 0xed, 0xc5, 0xec, 0xb6, 0xc5, 0x05, 0x33, 0x5f, 0x2f, 0x7d, 0x40, 0xb6, 0x32, 0x1d, 0x38, 0x74, 0x1b, 0xf1, 0x09, 0x3d}} , - {{0xd4, 0x69, 0x82, 0xbc, 0x8d, 0xf8, 0x34, 0x36, 0x75, 0x55, 0x18, 0x55, 0x58, 0x3c, 0x79, 0xaf, 0x26, 0x80, 0xab, 0x9b, 0x95, 0x00, 0xf1, 0xcb, 0xda, 0xc1, 0x9f, 0xf6, 0x2f, 0xa2, 0xf4, 0x45}}}, -{{{0x17, 0xbe, 0xeb, 0x85, 0xed, 0x9e, 0xcd, 0x56, 0xf5, 0x17, 0x45, 0x42, 0xb4, 0x1f, 0x44, 0x4c, 0x05, 0x74, 0x15, 0x47, 0x00, 0xc6, 0x6a, 0x3d, 0x24, 0x09, 0x0d, 0x58, 0xb1, 0x42, 0xd7, 0x04}} , - {{0x8d, 0xbd, 0xa3, 0xc4, 0x06, 0x9b, 0x1f, 0x90, 0x58, 0x60, 0x74, 0xb2, 0x00, 0x3b, 0x3c, 0xd2, 0xda, 0x82, 0xbb, 0x10, 0x90, 0x69, 0x92, 0xa9, 0xb4, 0x30, 0x81, 0xe3, 0x7c, 0xa8, 0x89, 0x45}}}, -{{{0x3f, 0xdc, 0x05, 0xcb, 0x41, 0x3c, 0xc8, 0x23, 0x04, 0x2c, 0x38, 0x99, 0xe3, 0x68, 0x55, 0xf9, 0xd3, 0x32, 0xc7, 0xbf, 0xfa, 0xd4, 0x1b, 0x5d, 0xde, 0xdc, 0x10, 0x42, 0xc0, 0x42, 0xd9, 0x75}} , - {{0x2d, 0xab, 0x35, 0x4e, 0x87, 0xc4, 0x65, 0x97, 0x67, 0x24, 0xa4, 0x47, 0xad, 0x3f, 0x8e, 0xf3, 0xcb, 0x31, 0x17, 0x77, 0xc5, 0xe2, 0xd7, 0x8f, 0x3c, 0xc1, 0xcd, 0x56, 0x48, 0xc1, 0x6c, 0x69}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x14, 0xae, 0x5f, 0x88, 0x7b, 0xa5, 0x90, 0xdf, 0x10, 0xb2, 0x8b, 0x5e, 0x24, 0x17, 0xc3, 0xa3, 0xd4, 0x0f, 0x92, 0x61, 0x1a, 0x19, 0x5a, 0xad, 0x76, 0xbd, 0xd8, 0x1c, 0xdd, 0xe0, 0x12, 0x6d}} , - {{0x8e, 0xbd, 0x70, 0x8f, 0x02, 0xa3, 0x24, 0x4d, 0x5a, 0x67, 0xc4, 0xda, 0xf7, 0x20, 0x0f, 0x81, 0x5b, 0x7a, 0x05, 0x24, 0x67, 0x83, 0x0b, 0x2a, 0x80, 0xe7, 0xfd, 0x74, 0x4b, 0x9e, 0x5c, 0x0d}}}, -{{{0x94, 0xd5, 0x5f, 0x1f, 0xa2, 0xfb, 0xeb, 0xe1, 0x07, 0x34, 0xf8, 0x20, 0xad, 0x81, 0x30, 0x06, 0x2d, 0xa1, 0x81, 0x95, 0x36, 0xcf, 0x11, 0x0b, 0xaf, 0xc1, 0x2b, 0x9a, 0x6c, 0x55, 0xc1, 0x16}} , - {{0x36, 0x4f, 0xf1, 0x5e, 0x74, 0x35, 0x13, 0x28, 0xd7, 0x11, 0xcf, 0xb8, 0xde, 0x93, 0xb3, 0x05, 0xb8, 0xb5, 0x73, 0xe9, 0xeb, 0xad, 0x19, 0x1e, 0x89, 0x0f, 0x8b, 0x15, 0xd5, 0x8c, 0xe3, 0x23}}}, -{{{0x33, 0x79, 0xe7, 0x18, 0xe6, 0x0f, 0x57, 0x93, 0x15, 0xa0, 0xa7, 0xaa, 0xc4, 0xbf, 0x4f, 0x30, 0x74, 0x95, 0x5e, 0x69, 0x4a, 0x5b, 0x45, 0xe4, 0x00, 0xeb, 0x23, 0x74, 0x4c, 0xdf, 0x6b, 0x45}} , - {{0x97, 0x29, 0x6c, 0xc4, 0x42, 0x0b, 0xdd, 0xc0, 0x29, 0x5c, 0x9b, 0x34, 0x97, 0xd0, 0xc7, 0x79, 0x80, 0x63, 0x74, 0xe4, 0x8e, 0x37, 0xb0, 0x2b, 0x7c, 0xe8, 0x68, 0x6c, 0xc3, 0x82, 0x97, 0x57}}}, -{{{0x22, 0xbe, 0x83, 0xb6, 0x4b, 0x80, 0x6b, 0x43, 0x24, 0x5e, 0xef, 0x99, 0x9b, 0xa8, 0xfc, 0x25, 0x8d, 0x3b, 0x03, 0x94, 0x2b, 0x3e, 0xe7, 0x95, 0x76, 0x9b, 0xcc, 0x15, 0xdb, 0x32, 0xe6, 0x66}} , - {{0x84, 0xf0, 0x4a, 0x13, 0xa6, 0xd6, 0xfa, 0x93, 0x46, 0x07, 0xf6, 0x7e, 0x5c, 0x6d, 0x5e, 0xf6, 0xa6, 0xe7, 0x48, 0xf0, 0x06, 0xea, 0xff, 0x90, 0xc1, 0xcc, 0x4c, 0x19, 0x9c, 0x3c, 0x4e, 0x53}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x2a, 0x50, 0xe3, 0x07, 0x15, 0x59, 0xf2, 0x8b, 0x81, 0xf2, 0xf3, 0xd3, 0x6c, 0x99, 0x8c, 0x70, 0x67, 0xec, 0xcc, 0xee, 0x9e, 0x59, 0x45, 0x59, 0x7d, 0x47, 0x75, 0x69, 0xf5, 0x24, 0x93, 0x5d}} , - {{0x6a, 0x4f, 0x1b, 0xbe, 0x6b, 0x30, 0xcf, 0x75, 0x46, 0xe3, 0x7b, 0x9d, 0xfc, 0xcd, 0xd8, 0x5c, 0x1f, 0xb4, 0xc8, 0xe2, 0x24, 0xec, 0x1a, 0x28, 0x05, 0x32, 0x57, 0xfd, 0x3c, 0x5a, 0x98, 0x10}}}, -{{{0xa3, 0xdb, 0xf7, 0x30, 0xd8, 0xc2, 0x9a, 0xe1, 0xd3, 0xce, 0x22, 0xe5, 0x80, 0x1e, 0xd9, 0xe4, 0x1f, 0xab, 0xc0, 0x71, 0x1a, 0x86, 0x0e, 0x27, 0x99, 0x5b, 0xfa, 0x76, 0x99, 0xb0, 0x08, 0x3c}} , - {{0x2a, 0x93, 0xd2, 0x85, 0x1b, 0x6a, 0x5d, 0xa6, 0xee, 0xd1, 0xd1, 0x33, 0xbd, 0x6a, 0x36, 0x73, 0x37, 0x3a, 0x44, 0xb4, 0xec, 0xa9, 0x7a, 0xde, 0x83, 0x40, 0xd7, 0xdf, 0x28, 0xba, 0xa2, 0x30}}}, -{{{0xd3, 0xb5, 0x6d, 0x05, 0x3f, 0x9f, 0xf3, 0x15, 0x8d, 0x7c, 0xca, 0xc9, 0xfc, 0x8a, 0x7c, 0x94, 0xb0, 0x63, 0x36, 0x9b, 0x78, 0xd1, 0x91, 0x1f, 0x93, 0xd8, 0x57, 0x43, 0xde, 0x76, 0xa3, 0x43}} , - {{0x9b, 0x35, 0xe2, 0xa9, 0x3d, 0x32, 0x1e, 0xbb, 0x16, 0x28, 0x70, 0xe9, 0x45, 0x2f, 0x8f, 0x70, 0x7f, 0x08, 0x7e, 0x53, 0xc4, 0x7a, 0xbf, 0xf7, 0xe1, 0xa4, 0x6a, 0xd8, 0xac, 0x64, 0x1b, 0x11}}}, -{{{0xb2, 0xeb, 0x47, 0x46, 0x18, 0x3e, 0x1f, 0x99, 0x0c, 0xcc, 0xf1, 0x2c, 0xe0, 0xe7, 0x8f, 0xe0, 0x01, 0x7e, 0x65, 0xb8, 0x0c, 0xd0, 0xfb, 0xc8, 0xb9, 0x90, 0x98, 0x33, 0x61, 0x3b, 0xd8, 0x27}} , - {{0xa0, 0xbe, 0x72, 0x3a, 0x50, 0x4b, 0x74, 0xab, 0x01, 0xc8, 0x93, 0xc5, 0xe4, 0xc7, 0x08, 0x6c, 0xb4, 0xca, 0xee, 0xeb, 0x8e, 0xd7, 0x4e, 0x26, 0xc6, 0x1d, 0xe2, 0x71, 0xaf, 0x89, 0xa0, 0x2a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x98, 0x0b, 0xe4, 0xde, 0xdb, 0xa8, 0xfa, 0x82, 0x74, 0x06, 0x52, 0x6d, 0x08, 0x52, 0x8a, 0xff, 0x62, 0xc5, 0x6a, 0x44, 0x0f, 0x51, 0x8c, 0x1f, 0x6e, 0xb6, 0xc6, 0x2c, 0x81, 0xd3, 0x76, 0x46}} , - {{0xf4, 0x29, 0x74, 0x2e, 0x80, 0xa7, 0x1a, 0x8f, 0xf6, 0xbd, 0xd6, 0x8e, 0xbf, 0xc1, 0x95, 0x2a, 0xeb, 0xa0, 0x7f, 0x45, 0xa0, 0x50, 0x14, 0x05, 0xb1, 0x57, 0x4c, 0x74, 0xb7, 0xe2, 0x89, 0x7d}}}, -{{{0x07, 0xee, 0xa7, 0xad, 0xb7, 0x09, 0x0b, 0x49, 0x4e, 0xbf, 0xca, 0xe5, 0x21, 0xe6, 0xe6, 0xaf, 0xd5, 0x67, 0xf3, 0xce, 0x7e, 0x7c, 0x93, 0x7b, 0x5a, 0x10, 0x12, 0x0e, 0x6c, 0x06, 0x11, 0x75}} , - {{0xd5, 0xfc, 0x86, 0xa3, 0x3b, 0xa3, 0x3e, 0x0a, 0xfb, 0x0b, 0xf7, 0x36, 0xb1, 0x5b, 0xda, 0x70, 0xb7, 0x00, 0xa7, 0xda, 0x88, 0x8f, 0x84, 0xa8, 0xbc, 0x1c, 0x39, 0xb8, 0x65, 0xf3, 0x4d, 0x60}}}, -{{{0x96, 0x9d, 0x31, 0xf4, 0xa2, 0xbe, 0x81, 0xb9, 0xa5, 0x59, 0x9e, 0xba, 0x07, 0xbe, 0x74, 0x58, 0xd8, 0xeb, 0xc5, 0x9f, 0x3d, 0xd1, 0xf4, 0xae, 0xce, 0x53, 0xdf, 0x4f, 0xc7, 0x2a, 0x89, 0x4d}} , - {{0x29, 0xd8, 0xf2, 0xaa, 0xe9, 0x0e, 0xf7, 0x2e, 0x5f, 0x9d, 0x8a, 0x5b, 0x09, 0xed, 0xc9, 0x24, 0x22, 0xf4, 0x0f, 0x25, 0x8f, 0x1c, 0x84, 0x6e, 0x34, 0x14, 0x6c, 0xea, 0xb3, 0x86, 0x5d, 0x04}}}, -{{{0x07, 0x98, 0x61, 0xe8, 0x6a, 0xd2, 0x81, 0x49, 0x25, 0xd5, 0x5b, 0x18, 0xc7, 0x35, 0x52, 0x51, 0xa4, 0x46, 0xad, 0x18, 0x0d, 0xc9, 0x5f, 0x18, 0x91, 0x3b, 0xb4, 0xc0, 0x60, 0x59, 0x8d, 0x66}} , - {{0x03, 0x1b, 0x79, 0x53, 0x6e, 0x24, 0xae, 0x57, 0xd9, 0x58, 0x09, 0x85, 0x48, 0xa2, 0xd3, 0xb5, 0xe2, 0x4d, 0x11, 0x82, 0xe6, 0x86, 0x3c, 0xe9, 0xb1, 0x00, 0x19, 0xc2, 0x57, 0xf7, 0x66, 0x7a}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x0f, 0xe3, 0x89, 0x03, 0xd7, 0x22, 0x95, 0x9f, 0xca, 0xb4, 0x8d, 0x9e, 0x6d, 0x97, 0xff, 0x8d, 0x21, 0x59, 0x07, 0xef, 0x03, 0x2d, 0x5e, 0xf8, 0x44, 0x46, 0xe7, 0x85, 0x80, 0xc5, 0x89, 0x50}} , - {{0x8b, 0xd8, 0x53, 0x86, 0x24, 0x86, 0x29, 0x52, 0x01, 0xfa, 0x20, 0xc3, 0x4e, 0x95, 0xcb, 0xad, 0x7b, 0x34, 0x94, 0x30, 0xb7, 0x7a, 0xfa, 0x96, 0x41, 0x60, 0x2b, 0xcb, 0x59, 0xb9, 0xca, 0x50}}}, -{{{0xc2, 0x5b, 0x9b, 0x78, 0x23, 0x1b, 0x3a, 0x88, 0x94, 0x5f, 0x0a, 0x9b, 0x98, 0x2b, 0x6e, 0x53, 0x11, 0xf6, 0xff, 0xc6, 0x7d, 0x42, 0xcc, 0x02, 0x80, 0x40, 0x0d, 0x1e, 0xfb, 0xaf, 0x61, 0x07}} , - {{0xb0, 0xe6, 0x2f, 0x81, 0x70, 0xa1, 0x2e, 0x39, 0x04, 0x7c, 0xc4, 0x2c, 0x87, 0x45, 0x4a, 0x5b, 0x69, 0x97, 0xac, 0x6d, 0x2c, 0x10, 0x42, 0x7c, 0x3b, 0x15, 0x70, 0x60, 0x0e, 0x11, 0x6d, 0x3a}}}, -{{{0x9b, 0x18, 0x80, 0x5e, 0xdb, 0x05, 0xbd, 0xc6, 0xb7, 0x3c, 0xc2, 0x40, 0x4d, 0x5d, 0xce, 0x97, 0x8a, 0x34, 0x15, 0xab, 0x28, 0x5d, 0x10, 0xf0, 0x37, 0x0c, 0xcc, 0x16, 0xfa, 0x1f, 0x33, 0x0d}} , - {{0x19, 0xf9, 0x35, 0xaa, 0x59, 0x1a, 0x0c, 0x5c, 0x06, 0xfc, 0x6a, 0x0b, 0x97, 0x53, 0x36, 0xfc, 0x2a, 0xa5, 0x5a, 0x9b, 0x30, 0xef, 0x23, 0xaf, 0x39, 0x5d, 0x9a, 0x6b, 0x75, 0x57, 0x48, 0x0b}}}, -{{{0x26, 0xdc, 0x76, 0x3b, 0xfc, 0xf9, 0x9c, 0x3f, 0x89, 0x0b, 0x62, 0x53, 0xaf, 0x83, 0x01, 0x2e, 0xbc, 0x6a, 0xc6, 0x03, 0x0d, 0x75, 0x2a, 0x0d, 0xe6, 0x94, 0x54, 0xcf, 0xb3, 0xe5, 0x96, 0x25}} , - {{0xfe, 0x82, 0xb1, 0x74, 0x31, 0x8a, 0xa7, 0x6f, 0x56, 0xbd, 0x8d, 0xf4, 0xe0, 0x94, 0x51, 0x59, 0xde, 0x2c, 0x5a, 0xf4, 0x84, 0x6b, 0x4a, 0x88, 0x93, 0xc0, 0x0c, 0x9a, 0xac, 0xa7, 0xa0, 0x68}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x25, 0x0d, 0xd6, 0xc7, 0x23, 0x47, 0x10, 0xad, 0xc7, 0x08, 0x5c, 0x87, 0x87, 0x93, 0x98, 0x18, 0xb8, 0xd3, 0x9c, 0xac, 0x5a, 0x3d, 0xc5, 0x75, 0xf8, 0x49, 0x32, 0x14, 0xcc, 0x51, 0x96, 0x24}} , - {{0x65, 0x9c, 0x5d, 0xf0, 0x37, 0x04, 0xf0, 0x34, 0x69, 0x2a, 0xf0, 0xa5, 0x64, 0xca, 0xde, 0x2b, 0x5b, 0x15, 0x10, 0xd2, 0xab, 0x06, 0xdd, 0xc4, 0xb0, 0xb6, 0x5b, 0xc1, 0x17, 0xdf, 0x8f, 0x02}}}, -{{{0xbd, 0x59, 0x3d, 0xbf, 0x5c, 0x31, 0x44, 0x2c, 0x32, 0x94, 0x04, 0x60, 0x84, 0x0f, 0xad, 0x00, 0xb6, 0x8f, 0xc9, 0x1d, 0xcc, 0x5c, 0xa2, 0x49, 0x0e, 0x50, 0x91, 0x08, 0x9a, 0x43, 0x55, 0x05}} , - {{0x5d, 0x93, 0x55, 0xdf, 0x9b, 0x12, 0x19, 0xec, 0x93, 0x85, 0x42, 0x9e, 0x66, 0x0f, 0x9d, 0xaf, 0x99, 0xaf, 0x26, 0x89, 0xbc, 0x61, 0xfd, 0xff, 0xce, 0x4b, 0xf4, 0x33, 0x95, 0xc9, 0x35, 0x58}}}, -{{{0x12, 0x55, 0xf9, 0xda, 0xcb, 0x44, 0xa7, 0xdc, 0x57, 0xe2, 0xf9, 0x9a, 0xe6, 0x07, 0x23, 0x60, 0x54, 0xa7, 0x39, 0xa5, 0x9b, 0x84, 0x56, 0x6e, 0xaa, 0x8b, 0x8f, 0xb0, 0x2c, 0x87, 0xaf, 0x67}} , - {{0x00, 0xa9, 0x4c, 0xb2, 0x12, 0xf8, 0x32, 0xa8, 0x7a, 0x00, 0x4b, 0x49, 0x32, 0xba, 0x1f, 0x5d, 0x44, 0x8e, 0x44, 0x7a, 0xdc, 0x11, 0xfb, 0x39, 0x08, 0x57, 0x87, 0xa5, 0x12, 0x42, 0x93, 0x0e}}}, -{{{0x17, 0xb4, 0xae, 0x72, 0x59, 0xd0, 0xaa, 0xa8, 0x16, 0x8b, 0x63, 0x11, 0xb3, 0x43, 0x04, 0xda, 0x0c, 0xa8, 0xb7, 0x68, 0xdd, 0x4e, 0x54, 0xe7, 0xaf, 0x5d, 0x5d, 0x05, 0x76, 0x36, 0xec, 0x0d}} , - {{0x6d, 0x7c, 0x82, 0x32, 0x38, 0x55, 0x57, 0x74, 0x5b, 0x7d, 0xc3, 0xc4, 0xfb, 0x06, 0x29, 0xf0, 0x13, 0x55, 0x54, 0xc6, 0xa7, 0xdc, 0x4c, 0x9f, 0x98, 0x49, 0x20, 0xa8, 0xc3, 0x8d, 0xfa, 0x48}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x87, 0x47, 0x9d, 0xe9, 0x25, 0xd5, 0xe3, 0x47, 0x78, 0xdf, 0x85, 0xa7, 0x85, 0x5e, 0x7a, 0x4c, 0x5f, 0x79, 0x1a, 0xf3, 0xa2, 0xb2, 0x28, 0xa0, 0x9c, 0xdd, 0x30, 0x40, 0xd4, 0x38, 0xbd, 0x28}} , - {{0xfc, 0xbb, 0xd5, 0x78, 0x6d, 0x1d, 0xd4, 0x99, 0xb4, 0xaa, 0x44, 0x44, 0x7a, 0x1b, 0xd8, 0xfe, 0xb4, 0x99, 0xb9, 0xcc, 0xe7, 0xc4, 0xd3, 0x3a, 0x73, 0x83, 0x41, 0x5c, 0x40, 0xd7, 0x2d, 0x55}}}, -{{{0x26, 0xe1, 0x7b, 0x5f, 0xe5, 0xdc, 0x3f, 0x7d, 0xa1, 0xa7, 0x26, 0x44, 0x22, 0x23, 0xc0, 0x8f, 0x7d, 0xf1, 0xb5, 0x11, 0x47, 0x7b, 0x19, 0xd4, 0x75, 0x6f, 0x1e, 0xa5, 0x27, 0xfe, 0xc8, 0x0e}} , - {{0xd3, 0x11, 0x3d, 0xab, 0xef, 0x2c, 0xed, 0xb1, 0x3d, 0x7c, 0x32, 0x81, 0x6b, 0xfe, 0xf8, 0x1c, 0x3c, 0x7b, 0xc0, 0x61, 0xdf, 0xb8, 0x75, 0x76, 0x7f, 0xaa, 0xd8, 0x93, 0xaf, 0x3d, 0xe8, 0x3d}}}, -{{{0xfd, 0x5b, 0x4e, 0x8d, 0xb6, 0x7e, 0x82, 0x9b, 0xef, 0xce, 0x04, 0x69, 0x51, 0x52, 0xff, 0xef, 0xa0, 0x52, 0xb5, 0x79, 0x17, 0x5e, 0x2f, 0xde, 0xd6, 0x3c, 0x2d, 0xa0, 0x43, 0xb4, 0x0b, 0x19}} , - {{0xc0, 0x61, 0x48, 0x48, 0x17, 0xf4, 0x9e, 0x18, 0x51, 0x2d, 0xea, 0x2f, 0xf2, 0xf2, 0xe0, 0xa3, 0x14, 0xb7, 0x8b, 0x3a, 0x30, 0xf5, 0x81, 0xc1, 0x5d, 0x71, 0x39, 0x62, 0x55, 0x1f, 0x60, 0x5a}}}, -{{{0xe5, 0x89, 0x8a, 0x76, 0x6c, 0xdb, 0x4d, 0x0a, 0x5b, 0x72, 0x9d, 0x59, 0x6e, 0x63, 0x63, 0x18, 0x7c, 0xe3, 0xfa, 0xe2, 0xdb, 0xa1, 0x8d, 0xf4, 0xa5, 0xd7, 0x16, 0xb2, 0xd0, 0xb3, 0x3f, 0x39}} , - {{0xce, 0x60, 0x09, 0x6c, 0xf5, 0x76, 0x17, 0x24, 0x80, 0x3a, 0x96, 0xc7, 0x94, 0x2e, 0xf7, 0x6b, 0xef, 0xb5, 0x05, 0x96, 0xef, 0xd3, 0x7b, 0x51, 0xda, 0x05, 0x44, 0x67, 0xbc, 0x07, 0x21, 0x4e}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xe9, 0x73, 0x6f, 0x21, 0xb9, 0xde, 0x22, 0x7d, 0xeb, 0x97, 0x31, 0x10, 0xa3, 0xea, 0xe1, 0xc6, 0x37, 0xeb, 0x8f, 0x43, 0x58, 0xde, 0x41, 0x64, 0x0e, 0x3e, 0x07, 0x99, 0x3d, 0xf1, 0xdf, 0x1e}} , - {{0xf8, 0xad, 0x43, 0xc2, 0x17, 0x06, 0xe2, 0xe4, 0xa9, 0x86, 0xcd, 0x18, 0xd7, 0x78, 0xc8, 0x74, 0x66, 0xd2, 0x09, 0x18, 0xa5, 0xf1, 0xca, 0xa6, 0x62, 0x92, 0xc1, 0xcb, 0x00, 0xeb, 0x42, 0x2e}}}, -{{{0x7b, 0x34, 0x24, 0x4c, 0xcf, 0x38, 0xe5, 0x6c, 0x0a, 0x01, 0x2c, 0x22, 0x0b, 0x24, 0x38, 0xad, 0x24, 0x7e, 0x19, 0xf0, 0x6c, 0xf9, 0x31, 0xf4, 0x35, 0x11, 0xf6, 0x46, 0x33, 0x3a, 0x23, 0x59}} , - {{0x20, 0x0b, 0xa1, 0x08, 0x19, 0xad, 0x39, 0x54, 0xea, 0x3e, 0x23, 0x09, 0xb6, 0xe2, 0xd2, 0xbc, 0x4d, 0xfc, 0x9c, 0xf0, 0x13, 0x16, 0x22, 0x3f, 0xb9, 0xd2, 0x11, 0x86, 0x90, 0x55, 0xce, 0x3c}}}, -{{{0xc4, 0x0b, 0x4b, 0x62, 0x99, 0x37, 0x84, 0x3f, 0x74, 0xa2, 0xf9, 0xce, 0xe2, 0x0b, 0x0f, 0x2a, 0x3d, 0xa3, 0xe3, 0xdb, 0x5a, 0x9d, 0x93, 0xcc, 0xa5, 0xef, 0x82, 0x91, 0x1d, 0xe6, 0x6c, 0x68}} , - {{0xa3, 0x64, 0x17, 0x9b, 0x8b, 0xc8, 0x3a, 0x61, 0xe6, 0x9d, 0xc6, 0xed, 0x7b, 0x03, 0x52, 0x26, 0x9d, 0x3a, 0xb3, 0x13, 0xcc, 0x8a, 0xfd, 0x2c, 0x1a, 0x1d, 0xed, 0x13, 0xd0, 0x55, 0x57, 0x0e}}}, -{{{0x1a, 0xea, 0xbf, 0xfd, 0x4a, 0x3c, 0x8e, 0xec, 0x29, 0x7e, 0x77, 0x77, 0x12, 0x99, 0xd7, 0x84, 0xf9, 0x55, 0x7f, 0xf1, 0x8b, 0xb4, 0xd2, 0x95, 0xa3, 0x8d, 0xf0, 0x8a, 0xa7, 0xeb, 0x82, 0x4b}} , - {{0x2c, 0x28, 0xf4, 0x3a, 0xf6, 0xde, 0x0a, 0xe0, 0x41, 0x44, 0x23, 0xf8, 0x3f, 0x03, 0x64, 0x9f, 0xc3, 0x55, 0x4c, 0xc6, 0xc1, 0x94, 0x1c, 0x24, 0x5d, 0x5f, 0x92, 0x45, 0x96, 0x57, 0x37, 0x14}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xc1, 0xcd, 0x90, 0x66, 0xb9, 0x76, 0xa0, 0x5b, 0xa5, 0x85, 0x75, 0x23, 0xf9, 0x89, 0xa5, 0x82, 0xb2, 0x6f, 0xb1, 0xeb, 0xc4, 0x69, 0x6f, 0x18, 0x5a, 0xed, 0x94, 0x3d, 0x9d, 0xd9, 0x2c, 0x1a}} , - {{0x35, 0xb0, 0xe6, 0x73, 0x06, 0xb7, 0x37, 0xe0, 0xf8, 0xb0, 0x22, 0xe8, 0xd2, 0xed, 0x0b, 0xef, 0xe6, 0xc6, 0x5a, 0x99, 0x9e, 0x1a, 0x9f, 0x04, 0x97, 0xe4, 0x4d, 0x0b, 0xbe, 0xba, 0x44, 0x40}}}, -{{{0xc1, 0x56, 0x96, 0x91, 0x5f, 0x1f, 0xbb, 0x54, 0x6f, 0x88, 0x89, 0x0a, 0xb2, 0xd6, 0x41, 0x42, 0x6a, 0x82, 0xee, 0x14, 0xaa, 0x76, 0x30, 0x65, 0x0f, 0x67, 0x39, 0xa6, 0x51, 0x7c, 0x49, 0x24}} , - {{0x35, 0xa3, 0x78, 0xd1, 0x11, 0x0f, 0x75, 0xd3, 0x70, 0x46, 0xdb, 0x20, 0x51, 0xcb, 0x92, 0x80, 0x54, 0x10, 0x74, 0x36, 0x86, 0xa9, 0xd7, 0xa3, 0x08, 0x78, 0xf1, 0x01, 0x29, 0xf8, 0x80, 0x3b}}}, -{{{0xdb, 0xa7, 0x9d, 0x9d, 0xbf, 0xa0, 0xcc, 0xed, 0x53, 0xa2, 0xa2, 0x19, 0x39, 0x48, 0x83, 0x19, 0x37, 0x58, 0xd1, 0x04, 0x28, 0x40, 0xf7, 0x8a, 0xc2, 0x08, 0xb7, 0xa5, 0x42, 0xcf, 0x53, 0x4c}} , - {{0xa7, 0xbb, 0xf6, 0x8e, 0xad, 0xdd, 0xf7, 0x90, 0xdd, 0x5f, 0x93, 0x89, 0xae, 0x04, 0x37, 0xe6, 0x9a, 0xb7, 0xe8, 0xc0, 0xdf, 0x16, 0x2a, 0xbf, 0xc4, 0x3a, 0x3c, 0x41, 0xd5, 0x89, 0x72, 0x5a}}}, -{{{0x1f, 0x96, 0xff, 0x34, 0x2c, 0x13, 0x21, 0xcb, 0x0a, 0x89, 0x85, 0xbe, 0xb3, 0x70, 0x9e, 0x1e, 0xde, 0x97, 0xaf, 0x96, 0x30, 0xf7, 0x48, 0x89, 0x40, 0x8d, 0x07, 0xf1, 0x25, 0xf0, 0x30, 0x58}} , - {{0x1e, 0xd4, 0x93, 0x57, 0xe2, 0x17, 0xe7, 0x9d, 0xab, 0x3c, 0x55, 0x03, 0x82, 0x2f, 0x2b, 0xdb, 0x56, 0x1e, 0x30, 0x2e, 0x24, 0x47, 0x6e, 0xe6, 0xff, 0x33, 0x24, 0x2c, 0x75, 0x51, 0xd4, 0x67}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0x2b, 0x06, 0xd9, 0xa1, 0x5d, 0xe1, 0xf4, 0xd1, 0x1e, 0x3c, 0x9a, 0xc6, 0x29, 0x2b, 0x13, 0x13, 0x78, 0xc0, 0xd8, 0x16, 0x17, 0x2d, 0x9e, 0xa9, 0xc9, 0x79, 0x57, 0xab, 0x24, 0x91, 0x92, 0x19}} , - {{0x69, 0xfb, 0xa1, 0x9c, 0xa6, 0x75, 0x49, 0x7d, 0x60, 0x73, 0x40, 0x42, 0xc4, 0x13, 0x0a, 0x95, 0x79, 0x1e, 0x04, 0x83, 0x94, 0x99, 0x9b, 0x1e, 0x0c, 0xe8, 0x1f, 0x54, 0xef, 0xcb, 0xc0, 0x52}}}, -{{{0x14, 0x89, 0x73, 0xa1, 0x37, 0x87, 0x6a, 0x7a, 0xcf, 0x1d, 0xd9, 0x2e, 0x1a, 0x67, 0xed, 0x74, 0xc0, 0xf0, 0x9c, 0x33, 0xdd, 0xdf, 0x08, 0xbf, 0x7b, 0xd1, 0x66, 0xda, 0xe6, 0xc9, 0x49, 0x08}} , - {{0xe9, 0xdd, 0x5e, 0x55, 0xb0, 0x0a, 0xde, 0x21, 0x4c, 0x5a, 0x2e, 0xd4, 0x80, 0x3a, 0x57, 0x92, 0x7a, 0xf1, 0xc4, 0x2c, 0x40, 0xaf, 0x2f, 0xc9, 0x92, 0x03, 0xe5, 0x5a, 0xbc, 0xdc, 0xf4, 0x09}}}, -{{{0xf3, 0xe1, 0x2b, 0x7c, 0x05, 0x86, 0x80, 0x93, 0x4a, 0xad, 0xb4, 0x8f, 0x7e, 0x99, 0x0c, 0xfd, 0xcd, 0xef, 0xd1, 0xff, 0x2c, 0x69, 0x34, 0x13, 0x41, 0x64, 0xcf, 0x3b, 0xd0, 0x90, 0x09, 0x1e}} , - {{0x9d, 0x45, 0xd6, 0x80, 0xe6, 0x45, 0xaa, 0xf4, 0x15, 0xaa, 0x5c, 0x34, 0x87, 0x99, 0xa2, 0x8c, 0x26, 0x84, 0x62, 0x7d, 0xb6, 0x29, 0xc0, 0x52, 0xea, 0xf5, 0x81, 0x18, 0x0f, 0x35, 0xa9, 0x0e}}}, -{{{0xe7, 0x20, 0x72, 0x7c, 0x6d, 0x94, 0x5f, 0x52, 0x44, 0x54, 0xe3, 0xf1, 0xb2, 0xb0, 0x36, 0x46, 0x0f, 0xae, 0x92, 0xe8, 0x70, 0x9d, 0x6e, 0x79, 0xb1, 0xad, 0x37, 0xa9, 0x5f, 0xc0, 0xde, 0x03}} , - {{0x15, 0x55, 0x37, 0xc6, 0x1c, 0x27, 0x1c, 0x6d, 0x14, 0x4f, 0xca, 0xa4, 0xc4, 0x88, 0x25, 0x46, 0x39, 0xfc, 0x5a, 0xe5, 0xfe, 0x29, 0x11, 0x69, 0xf5, 0x72, 0x84, 0x4d, 0x78, 0x9f, 0x94, 0x15}}}, -{{{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}, - {{0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}, -{{{0xec, 0xd3, 0xff, 0x57, 0x0b, 0xb0, 0xb2, 0xdc, 0xf8, 0x4f, 0xe2, 0x12, 0xd5, 0x36, 0xbe, 0x6b, 0x09, 0x43, 0x6d, 0xa3, 0x4d, 0x90, 0x2d, 0xb8, 0x74, 0xe8, 0x71, 0x45, 0x19, 0x8b, 0x0c, 0x6a}} , - {{0xb8, 0x42, 0x1c, 0x03, 0xad, 0x2c, 0x03, 0x8e, 0xac, 0xd7, 0x98, 0x29, 0x13, 0xc6, 0x02, 0x29, 0xb5, 0xd4, 0xe7, 0xcf, 0xcc, 0x8b, 0x83, 0xec, 0x35, 0xc7, 0x9c, 0x74, 0xb7, 0xad, 0x85, 0x5f}}}, -{{{0x78, 0x84, 0xe1, 0x56, 0x45, 0x69, 0x68, 0x5a, 0x4f, 0xb8, 0xb1, 0x29, 0xff, 0x33, 0x03, 0x31, 0xb7, 0xcb, 0x96, 0x25, 0xe6, 0xe6, 0x41, 0x98, 0x1a, 0xbb, 0x03, 0x56, 0xf2, 0xb2, 0x91, 0x34}} , - {{0x2c, 0x6c, 0xf7, 0x66, 0xa4, 0x62, 0x6b, 0x39, 0xb3, 0xba, 0x65, 0xd3, 0x1c, 0xf8, 0x11, 0xaa, 0xbe, 0xdc, 0x80, 0x59, 0x87, 0xf5, 0x7b, 0xe5, 0xe3, 0xb3, 0x3e, 0x39, 0xda, 0xbe, 0x88, 0x09}}}, -{{{0x8b, 0xf1, 0xa0, 0xf5, 0xdc, 0x29, 0xb4, 0xe2, 0x07, 0xc6, 0x7a, 0x00, 0xd0, 0x89, 0x17, 0x51, 0xd4, 0xbb, 0xd4, 0x22, 0xea, 0x7e, 0x7d, 0x7c, 0x24, 0xea, 0xf2, 0xe8, 0x22, 0x12, 0x95, 0x06}} , - {{0xda, 0x7c, 0xa4, 0x0c, 0xf4, 0xba, 0x6e, 0xe1, 0x89, 0xb5, 0x59, 0xca, 0xf1, 0xc0, 0x29, 0x36, 0x09, 0x44, 0xe2, 0x7f, 0xd1, 0x63, 0x15, 0x99, 0xea, 0x25, 0xcf, 0x0c, 0x9d, 0xc0, 0x44, 0x6f}}}, -{{{0x1d, 0x86, 0x4e, 0xcf, 0xf7, 0x37, 0x10, 0x25, 0x8f, 0x12, 0xfb, 0x19, 0xfb, 0xe0, 0xed, 0x10, 0xc8, 0xe2, 0xf5, 0x75, 0xb1, 0x33, 0xc0, 0x96, 0x0d, 0xfb, 0x15, 0x6c, 0x0d, 0x07, 0x5f, 0x05}} , - {{0x69, 0x3e, 0x47, 0x97, 0x2c, 0xaf, 0x52, 0x7c, 0x78, 0x83, 0xad, 0x1b, 0x39, 0x82, 0x2f, 0x02, 0x6f, 0x47, 0xdb, 0x2a, 0xb0, 0xe1, 0x91, 0x99, 0x55, 0xb8, 0x99, 0x3a, 0xa0, 0x44, 0x11, 0x51}}} diff --git a/crypto/openssh/install-sh b/crypto/openssh/install-sh index 377bb8687ffe..ec298b537402 100755 --- a/crypto/openssh/install-sh +++ b/crypto/openssh/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-11-20.07; # UTC +scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC # This script is compatible with the BSD install script, but was written # from scratch. +tab=' ' nl=' ' -IFS=" "" $nl" +IFS=" $tab$nl" -# set DOITPROG to echo to test this script +# Set DOITPROG to "echo" to test this script. -# Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi +doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. @@ -68,22 +64,16 @@ mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - posix_mkdir= # Desired mode of installed file. mode=0755 +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= @@ -97,7 +87,7 @@ dir_arg= dst_arg= copy_on_change=false -no_target_directory= +is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE @@ -114,18 +104,28 @@ Options: --version display version info and exit. -c (ignored) - -C install only if different (preserve the last data modification time) + -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ " while test $# -ne 0; do @@ -137,46 +137,62 @@ while test $# -ne 0; do -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift;; + shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift;; + shift;; + + -p) cpprog="$cpprog -p";; -s) stripcmd=$stripprog;; - -t) dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; + -S) backupsuffix="$2" + shift;; - -T) no_target_directory=true;; + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; - --) shift - break;; + --) shift + break;; - -*) echo "$0: invalid option: $1" >&2 - exit 1;; + -*) echo "$0: invalid option: $1" >&2 + exit 1;; *) break;; esac shift done +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. @@ -207,6 +223,15 @@ if test $# -eq 0; then exit 0 fi +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 @@ -223,16 +248,16 @@ if test -z "$dir_arg"; then *[0-7]) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw='% 200' + u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then - u_plus_rw= + u_plus_rw= else - u_plus_rw=,u+rw + u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac @@ -250,6 +275,10 @@ do dstdir=$dst test -d "$dstdir" dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command @@ -266,178 +295,148 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - + dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else - mkdir_mode= + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; + trap '' 0;; esac if $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else - # The umask is ridiculous, or mkdir does not conform to POSIX, + # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; esac - eval "$initialize_posix_glob" - oIFS=$IFS IFS=/ - $posix_glob set -f + set -f set fnord $dstdir shift - $posix_glob set +f + set +f IFS=$oIFS prefixes= for d do - test X"$d" = X && continue + test X"$d" = X && continue - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ done if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi fi fi @@ -450,14 +449,25 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -472,20 +482,24 @@ do # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - + set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || @@ -493,24 +507,24 @@ do # to itself, or perhaps because mv is so ancient that it does not # support -f. { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 @@ -519,9 +533,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/crypto/openssh/kex.c b/crypto/openssh/kex.c index 0bcd27dc5825..8cdefcf7cbb9 100644 --- a/crypto/openssh/kex.c +++ b/crypto/openssh/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.172 2022/02/01 23:32:51 djm Exp $ */ +/* $OpenBSD: kex.c,v 1.173 2022/11/07 10:05:38 dtucker Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * @@ -1215,7 +1215,7 @@ kex_exchange_identification(struct ssh *ssh, int timeout_ms, const char *version_addendum) { int remote_major, remote_minor, mismatch, oerrno = 0; - size_t len, i, n; + size_t len, n; int r, expect_nl; u_char c; struct sshbuf *our_version = ssh->kex->server ? @@ -1271,7 +1271,7 @@ kex_exchange_identification(struct ssh *ssh, int timeout_ms, } sshbuf_reset(peer_version); expect_nl = 0; - for (i = 0; ; i++) { + for (;;) { if (timeout_ms > 0) { r = waitrfd(ssh_packet_get_connection_in(ssh), &timeout_ms); diff --git a/crypto/openssh/misc.c b/crypto/openssh/misc.c index f2135803737a..c098dc610b7b 100644 --- a/crypto/openssh/misc.c +++ b/crypto/openssh/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.177 2022/08/11 01:56:51 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.180 2023/01/06 02:37:04 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -95,7 +95,7 @@ rtrim(char *s) if ((i = strlen(s)) == 0) return; for (i--; i > 0; i--) { - if (isspace((int)s[i])) + if (isspace((unsigned char)s[i])) s[i] = '\0'; } } @@ -278,7 +278,7 @@ set_sock_tos(int fd, int tos) debug3_f("set socket %d IP_TOS 0x%02x", fd, tos); if (setsockopt(fd, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) == -1) { - error("setsockopt socket %d IP_TOS %d: %s:", + error("setsockopt socket %d IP_TOS %d: %s", fd, tos, strerror(errno)); } # endif /* IP_TOS */ @@ -288,7 +288,7 @@ set_sock_tos(int fd, int tos) debug3_f("set socket %d IPV6_TCLASS 0x%02x", fd, tos); if (setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, sizeof(tos)) == -1) { - error("setsockopt socket %d IPV6_TCLASS %d: %.100s:", + error("setsockopt socket %d IPV6_TCLASS %d: %s", fd, tos, strerror(errno)); } # endif /* IPV6_TCLASS */ @@ -2826,3 +2826,92 @@ lookup_setenv_in_list(const char *env, char * const *envs, size_t nenvs) free(name); return ret; } + +/* + * Helpers for managing poll(2)/ppoll(2) timeouts + * Will remember the earliest deadline and return it for use in poll/ppoll. + */ + +/* Initialise a poll/ppoll timeout with an indefinite deadline */ +void +ptimeout_init(struct timespec *pt) +{ + /* + * Deliberately invalid for ppoll(2). + * Will be converted to NULL in ptimeout_get_tspec() later. + */ + pt->tv_sec = -1; + pt->tv_nsec = 0; +} + +/* Specify a poll/ppoll deadline of at most 'sec' seconds */ +void +ptimeout_deadline_sec(struct timespec *pt, long sec) +{ + if (pt->tv_sec == -1 || pt->tv_sec >= sec) { + pt->tv_sec = sec; + pt->tv_nsec = 0; + } +} + +/* Specify a poll/ppoll deadline of at most 'p' (timespec) */ +static void +ptimeout_deadline_tsp(struct timespec *pt, struct timespec *p) +{ + if (pt->tv_sec == -1 || timespeccmp(pt, p, >=)) + *pt = *p; +} + +/* Specify a poll/ppoll deadline of at most 'ms' milliseconds */ +void +ptimeout_deadline_ms(struct timespec *pt, long ms) +{ + struct timespec p; + + p.tv_sec = ms / 1000; + p.tv_nsec = (ms % 1000) * 1000000; + ptimeout_deadline_tsp(pt, &p); +} + +/* Specify a poll/ppoll deadline at wall clock monotime 'when' */ +void +ptimeout_deadline_monotime(struct timespec *pt, time_t when) +{ + struct timespec now, t; + + t.tv_sec = when; + t.tv_nsec = 0; + monotime_ts(&now); + + if (timespeccmp(&now, &t, >=)) + ptimeout_deadline_sec(pt, 0); + else { + timespecsub(&t, &now, &t); + ptimeout_deadline_tsp(pt, &t); + } +} + +/* Get a poll(2) timeout value in milliseconds */ +int +ptimeout_get_ms(struct timespec *pt) +{ + if (pt->tv_sec == -1) + return -1; + if (pt->tv_sec >= (INT_MAX - (pt->tv_nsec / 1000000)) / 1000) + return INT_MAX; + return (pt->tv_sec * 1000) + (pt->tv_nsec / 1000000); +} + +/* Get a ppoll(2) timeout value as a timespec pointer */ +struct timespec * +ptimeout_get_tsp(struct timespec *pt) +{ + return pt->tv_sec == -1 ? NULL : pt; +} + +/* Returns non-zero if a timeout has been set (i.e. is not indefinite) */ +int +ptimeout_isset(struct timespec *pt) +{ + return pt->tv_sec != -1; +} diff --git a/crypto/openssh/misc.h b/crypto/openssh/misc.h index 7ef75bd0929c..84d93e059ea9 100644 --- a/crypto/openssh/misc.h +++ b/crypto/openssh/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.100 2022/06/03 04:30:47 djm Exp $ */ +/* $OpenBSD: misc.h,v 1.101 2023/01/06 02:37:04 djm Exp $ */ /* * Author: Tatu Ylonen @@ -208,6 +208,15 @@ void opt_array_append2(const char *file, const int line, const char *directive, char ***array, int **iarray, u_int *lp, const char *s, int i); +struct timespec; +void ptimeout_init(struct timespec *pt); +void ptimeout_deadline_sec(struct timespec *pt, long sec); +void ptimeout_deadline_ms(struct timespec *pt, long ms); +void ptimeout_deadline_monotime(struct timespec *pt, time_t when); +int ptimeout_get_ms(struct timespec *pt); +struct timespec *ptimeout_get_tsp(struct timespec *pt); +int ptimeout_isset(struct timespec *pt); + /* readpass.c */ #define RP_ECHO 0x0001 diff --git a/crypto/openssh/moduli b/crypto/openssh/moduli index c580e1773469..099fc4263da9 100644 --- a/crypto/openssh/moduli +++ b/crypto/openssh/moduli @@ -1,420 +1,425 @@ -# $OpenBSD: moduli,v 1.32 2022/04/20 01:13:47 dtucker Exp $ +# $OpenBSD: moduli,v 1.33 2022/11/07 02:21:21 dtucker Exp $ # Time Type Tests Tries Size Generator Modulus -20220414072358 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5D1B922F -20220414072402 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5D3FAAB3 -20220414072411 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5DA6E2EF -20220414072429 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5E5C2677 -20220414072430 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5E5C4C6F -20220414072435 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5E8EADAB -20220414072436 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5E9B7C6F -20220414072440 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5EBA84AB -20220414072442 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5ECDB22B -20220414072457 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB5F71BAC3 -20220414072517 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6044356F -20220414072521 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB60678097 -20220414072523 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB607297CF -20220414072528 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB60A2A627 -20220414072529 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB60AAC38F -20220414072533 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB60CD7B87 -20220414072538 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB60F9FD4B -20220414072540 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6103C8C7 -20220414072545 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB612FA3CF -20220414072547 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6139A9BF -20220414072548 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB613E9CC7 -20220414072553 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6171EBF3 -20220414072601 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB61BAEA33 -20220414072603 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB61CF5307 -20220414072606 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB61E8149F -20220414072607 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB61EB7577 -20220414072607 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB61ED0BA3 -20220414072611 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB620FE4E3 -20220414072615 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB622D2F63 -20220414072616 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB623847EB -20220414072628 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB62ABB94B -20220414072638 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6312214F -20220414072643 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB633E1C73 -20220414072647 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB63669B3B -20220414072650 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB638220F7 -20220414072653 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6398ADAB -20220414072654 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB639EBE43 -20220414072707 2 6 100 2047 2 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB641D23FB -20220414072710 2 6 100 2047 5 F19C2D09AD49978F8A0C1B84168A4011A26F9CD516815934764A319FDC5975FA514AAF11B747D8CA6B3919532BEFB68FA118079473895674F3770F71FBB742F176883841EB3DE679BEF53C6AFE437A662F228B03C1E34B5A0D3909F608CEAA16C1F8131DE11E67878EFD918A89205E5E4DE323054010CA4711F25D466BB7727A016DD3F9F53BDBCE093055A4F2497ADEFB5A2500F9C5C3B0BCD88C6489F4C1CBC7CFB67BA6EABA0195794E4188CE9060F431041AD52FB9BAC4DF7FA536F585FBE67746CD57BFAD67567E9706C24D95C49BE95B759657C6BB5151E2AEA32F4CD557C40298A5C402101520EE8AAB8DFEED6FFC11AAF8036D6345923CFB6434F4DF -20220414072729 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6436684F -20220414072730 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF643C46A7 -20220414072734 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF64668B47 -20220414072739 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF648F9F5B -20220414072741 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF64973923 -20220414072744 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF64B4BA7B -20220414072749 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF64E993BB -20220414072753 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6515105B -20220414072757 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF65323FDB -20220414072809 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF65A7F357 -20220414072813 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF65CC809F -20220414072817 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF65F46043 -20220414072829 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF666C8F9B -20220414072832 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF668915E3 -20220414072835 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF66A68853 -20220414072848 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF672C226F -20220414072851 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF674E2523 -20220414072854 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF67616DDF -20220414072857 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF677613DF -20220414072900 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6792A07B -20220414072903 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF67AC314F -20220414072905 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF67B61CAB -20220414072907 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF67CB88C3 -20220414072908 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF67CBC62B -20220414072909 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF67D5028B -20220414072925 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6879A003 -20220414072927 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF68874667 -20220414072929 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF68967B9B -20220414072935 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF68D81493 -20220414072953 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF69A1B363 -20220414072957 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF69C2BBA3 -20220414072959 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF69D13857 -20220414073003 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF69EF96CB -20220414073004 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF69F43F4B -20220414073006 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6A06D42B -20220414073016 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6A6A7103 -20220414073018 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6A7B9AFB -20220414073018 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6A7BD38F -20220414073019 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6A7F4A6F -20220414073036 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6B2FC84F -20220414073041 2 6 100 2047 2 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6B67F26B -20220414073055 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6C025837 -20220414073058 2 6 100 2047 5 E28FC4E08A6D57BC5842065F7028D34B56B517A920144E422159168C0CF6F65E1C9CB385AD0BAFFDA8A78C13A1D32CDC4C0E695426E46F524468E9FF7E423C61B626710F9F3BB9F67F058AC00FFD91AFF9061C88EC8D698F974AA4D7070633D1B7982FA906ED686783E607438859AF0E23BA99392DE67A01D4E2CB47E005EFF3C0DEE0AFFA72D80AD54803FA4C341F6B1B8680C6EB9E3B4A93931485B1F0E92ADA1F3D3F049430454E0C51492C5502BE844CF7AFABC9B6ED351B59098B457C17BBDF6E90B63EBA42E0F03818AB4250668C0F55C0DD8F64D5EE5BFB47713E7935129A97C5B3F917972D7F75263D20B9664DEC37045C7659039593F3AF6C19C927 -20220414073921 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB839BF99CF -20220414074048 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83B22A8CB -20220414074055 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83B38DF4B -20220414074204 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83C4E96FB -20220414074223 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83C952457 -20220414074458 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83EF76EDB -20220414074505 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83F0B3E5B -20220414074508 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB83F1192F7 -20220414074657 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB840C320E3 -20220414074757 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB841ACDB2F -20220414074809 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB841D33923 -20220414074813 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB841DCED47 -20220414074823 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB842009833 -20220414074835 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB842257813 -20220414074840 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB8423357CB -20220414074844 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB8423B8E6B -20220414074923 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB842CB64CB -20220414075134 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB844C6295B -20220414075206 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB8453EA8F3 -20220414075228 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB8458F2F8B -20220414075251 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB845E71A57 -20220414075317 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB84648C5EF -20220414075352 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB846C72BBF -20220414075450 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB847A0F4F7 -20220414075521 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB84817FBD3 -20220414075541 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB84866A397 -20220414075556 2 6 100 3071 5 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB8489919F7 -20220414075630 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB84916DB03 -20220414075833 2 6 100 3071 2 C51B2203994018FE66AF950975C59F6B678BD895CBD976250E5513528EF9B03B85B0DD85C17B519B1D41CB11CFCF86F9649C411D746E8ADA9A743D09458BE956D59D6C471945A92E1A6AD2B519D24373242BDD1A13BDE5EAE3518F17F8D2EB158F5340F76212DE07E67816FCC95EABAA1568116D400FC2EE789EB0C097AC9E94DB7B6A861F35B7F57C58934FD6034B4352F83978CB943D63921D8B29BC30A5CB5069A31F550206767EAB17FF80BD34A849F05CEA09CE2B374D70B25DFC31DD546310C948F9DAF4E0C873FA5AC0221EF1D761F581AE4C8C890FCC7D16E5A82B4DB3C9C713A3A13E8039D62AB2DC9B4AD3B1BB721D985C2DD6333E9871F5E4D76AC163D90CC629CC81783087DBC70739200FB5703FF4BEA4202FBEAD26311123672F1E6CBD0DA429CD253E4F579D5FFECEF1DDA78D2AF6B6D8B9818E334D42DFF3F7ACAFD350421BC6C551C004FBE620D397EB602AD2CEDD0D61C9E22D622AF8197393CFEB7250F6D13CBC5CB7625242B0CD23B174F66B00BEDA0E4CB84AFEC0BB -20220414075927 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA416BC45B7 -20220414075956 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4172ADEAF -20220414080014 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4176C3D1B -20220414080031 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA417A81CB7 -20220414080111 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41846F30B -20220414080114 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4184B28B3 -20220414080215 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4193CE3E7 -20220414080230 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41972BB5B -20220414080234 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4197B2B2B -20220414080256 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA419CEB82F -20220414080413 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41B04B177 -20220414080440 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41B6F0F87 -20220414080455 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41BA8FF03 -20220414080531 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41C38E9AF -20220414080538 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41C4CE0D7 -20220414080549 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41C714107 -20220414080559 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41C93CC8F -20220414080612 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41CC0E6F3 -20220414080632 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41D090397 -20220414080739 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41E0CE6AF -20220414080844 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41F0FD883 -20220414080927 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41FAF88C3 -20220414080944 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA41FED798B -20220414081010 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4204E96A3 -20220414081036 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA420AE22CF -20220414081101 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA42108AABF -20220414081119 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4214499C7 -20220414081154 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA421C7C413 -20220414081217 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4221AEE5F -20220414081236 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA42261B5C3 -20220414081253 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4229C2F0F -20220414081339 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4234DEBD3 -20220414081352 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4237ABDBF -20220414081357 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA42388B4CF -20220414081406 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA423A221F7 -20220414081420 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA423D608D3 -20220414081459 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4246BBC83 -20220414081542 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4250E9783 -20220414081700 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA42630DCAB -20220414081734 2 6 100 3071 5 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA426B23DD7 -20220414081825 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA42776DBCB -20220414081912 2 6 100 3071 2 F5A593C9AFA507A500AC0F2C6389F394E8818163FA32B928AC5A46FBC5556CFC88FC789A9EE0E99C002FC4E3DABCAA2BF268FD7FB49A26E986A300CAEEED3C55E43DD1681074B52C4DB264879CE4B96F2CBB172EBBEE34A7E87CC3818AB3E6AAF135C7CDB655F220B93C32B2CB69F538CCE40AF86994CB6D80D0456B3CAA38C46B0D09C0D26C8E67D4EE6E4FE219AC92FF244216E6DCB4267C0DA00E906730792FA9BDA189B9CE5D552B04F1314418936BF02B08FE3AC2033A6B17DF3956D1316FAA6347FD940DDA68FB8AAE1B42E225B2CB8C81BA82DD05A0284F4C08DA48B991DFC1DD08E8ED02AA3FAF82E34CAC009930DDA85040A5D380F8B9B79F69F46D860319636C5931E1C25EF07F5B3D9964ED066E8E0D1C9E73121907C3A27EDCDDBD231B0BAEB124C13F1EBAC60035DE0017D5B0DABA74763096E26F7C9A7394B73BB65A7733F2A69FA6B0D8543CE3D98C083DE93B48BF974556CE3B0230DE2B13D4BA011DB8272BA6DDAF54E0E26E10180C03397156FFCAE19A95ABA4282A042B -20220414083041 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB23411639DA0F7DB -20220414083420 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB23411639F33C3DB -20220414083538 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB23411639FBF5323 -20220414083742 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A0A39C73 -20220414083748 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A0A515CB -20220414083806 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A0BD1AC3 -20220414083844 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A0FE2EEF -20220414083857 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A10F0FBB -20220414084033 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A1B65ABF -20220414084433 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A3641CDB -20220414084513 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A3A411D3 -20220414084808 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A4E0E273 -20220414085212 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A6A1D0B3 -20220414085536 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163A81A77BF -20220414090236 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163AB233EFB -20220414090316 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163AB65D58B -20220414090426 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163ABE1A11F -20220414090629 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163ACC285FB -20220414091059 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163AEC45C03 -20220414091158 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163AF2CCFF3 -20220414091314 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163AFB69BF7 -20220414091552 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B0D7D40F -20220414091928 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B26330CB -20220414092153 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B3673963 -20220414092830 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B62CC3A7 -20220414092943 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B6A8C34F -20220414093010 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B6D25E3F -20220414093441 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B8C7B5FF -20220414093544 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B934C513 -20220414093731 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163B9EC8F87 -20220414093843 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163BA69E11B -20220414093925 2 6 100 4095 2 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163BAB069A3 -20220414094303 2 6 100 4095 5 F32919EC12E2FE5DCC900B63D26BA6DD1030C9D818431D43D7629C26DF0B797B85C4DE6D39A179EFDBF452D6FAEAFF7D89C80E2BF78133324537D863C67C527C8C8D321CCB69E1B4A97675179F0D581560D1BB4CB5FC0EE1BBE740DC53E81D509A2AB1C502E02196CB7910868E93FE8151C148430654A623949C8C985F169D78CF7143FADEA9363103FABE79F14F966061DAE8202CE667C23877B4375148E3FE6969270D90C0BB11983A725320FE2E110452D56CD29924687638285FF60F528FBCC8F9F21D1AF2C150265F6846BABF083F10B43D92FCC02F5794034DE043ED9EDD2088E590314930FDECCAF3BDE0D07ED9DB167BF2AF1634EF88C77D3016BFC17B0903449E3611BE247665FD4A2A4F1D988C67BA1B81B4C9453ADF5C98EEB584C5FB25F8B0EA3606C80A459DD58B0D10E50FE9A7E062E9E918765B1C5D2BE056F846BC7BBA649F2BCE549B2FA5A55D3F31388C1EFEA4E8F2800A2A050E8468E8DDD4DA986C6496159A26E2CA9CA26415EE53F6403DAB022C1F19EC1B311A39495AF6A82BD1FD9AE47BF5C10B013E7CA7DAB015BDA7B60EFA5FF4916BC6CB81C5B6132AA9EF4E49716D98FB66C349CB956DDE33CAAE1BEA93AC395C84B3F58FCDAEF3F58F9DEF5F7EDB527578D1711A754BFE19718A41CA16FAB7C106194455EEAF4E0D4FA29D2BF224B328F7B546382F2FB4E8EE41C96ECAB2341163BC328B97 -20220414094931 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818DA7CECB7 -20220414095121 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818DB3FEE97 -20220414095821 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818DE590FC3 -20220414100127 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818DFAAB9F3 -20220414100220 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E005F20B -20220414100244 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E029D1B3 -20220414100254 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E034AA33 -20220414100620 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E1B8C073 -20220414100630 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E1C2553B -20220414101142 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E40A1E13 -20220414101258 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E48D9E87 -20220414101626 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E60387F3 -20220414101801 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E6A9F503 -20220414102152 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E84F18E7 -20220414102225 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E886BDBF -20220414102443 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818E97C4BFB -20220414102556 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EA01679F -20220414102609 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EA10FE8F -20220414102639 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EA3F86AB -20220414102917 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EB641A1F -20220414102948 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EB94F7A7 -20220414103222 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818ECA88E23 -20220414103323 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818ED15B99F -20220414103354 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818ED44961B -20220414103407 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818ED54ECC3 -20220414103413 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818ED5700CB -20220414103734 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EEB53ED3 -20220414103800 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EEDDB6FF -20220414104012 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818EFC5E0E3 -20220414104150 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818F0739283 -20220414104329 2 6 100 4095 5 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818F11E163F -20220414105100 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818F451B803 -20220414110021 2 6 100 4095 2 E8B371757422F6F4C734F2E4380126789768169B37154E4E3A4A74A3DF6545653A5970CDE0F0BD17CCFDAABBEE7568E1285D5A704BB9739EAB680D7EF59C134D327B55CF4AD69A4128536E2F055F5FBF0DB661C322A4993E382B997B2A0C5E434678B1910862AE385C415FF811BA11727CFE39C559847E710AC2D4BDA8D658F2259887E78D54179287BFE112E9C532CB1D062419DFF6E031F82EC991523A1144385189A813DFACBC63D8DAD98199696715C6BC5A22A1943B2CFC4BDAD8473FBEB7BCEC204EC12CFDB1A9BB66DCF85B3121C9E1C3587960769115B2F27ACEEC29A1CDC717B7505A561051F0E88A3C51798CD829E234ED14C277E9635B3E05EB13FA36F117B46094CA68F45F3667D6E84E0214F1650BF080CC4CC5510D6569E0226E88CD842B2ACFBD31370B136E5FD22C6697090586F38323AB36FB5569FB0FD53BB4AF10C16F0B809C1FB5B1B1C56027244F5A174A37250721197CE425CB5E5C5A51D4A5EA4A1EBEED71511BBE0BFF03CB1AE76968166167A775AB1AD9C9665C6ACC04203E5B2E80AA9F7CF395C28EC432A36A97CDBB354E20BEA600F383D7729DE8B9DF5B16B721BEE8C6ADF51DA8EF5B7B3367EC8E6788F9772835586D09A9F8423AF1221CA87CBD54EC399E0BE49AEF19C017EEF36B3B18517DB2246EABBB21F6DF5CA2F4E1D178D0F42384CA192AA1461452BBC453FB59C54818F852CDBB -20220414112534 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B97D57323 -20220414112820 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B9836476F -20220414112915 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B98509153 -20220414113222 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B98BB7CAB -20220414113851 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B99A6C927 -20220414115900 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B9C9A8187 -20220414121305 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31B9EAC674B -20220414124550 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BA38974A7 -20220414124932 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BA40E655B -20220414131030 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BA71F8DAF -20220414131803 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BA82FCF2F -20220414133154 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BAA30669B -20220414133700 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BAAE42927 -20220414133729 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BAAECA503 -20220414135933 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BAE1D12A7 -20220414140132 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BAE5AE7DF -20220414141651 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB08CFCFF -20220414141714 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB091AD83 -20220414142320 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB168D7F3 -20220414143527 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB322E33B -20220414144127 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB3F516CB -20220414145100 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB545E7CF -20220414145934 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB676BF17 -20220414150941 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB7E51E57 -20220414151158 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB831F3E3 -20220414151904 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BB92D7ACF -20220414154448 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BBCD2236F -20220414154556 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BBCF2D2B7 -20220414162116 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC1F88833 -20220414165146 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC6458233 -20220414165524 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC6C0DCC3 -20220414170020 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC7669C1B -20220414170406 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC7E116A7 -20220414170516 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC802E3C7 -20220414171447 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC946FB1F -20220414171849 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BC9D13AEB -20220414173651 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BCC51B887 -20220414174909 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BCDFE595F -20220414175707 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BCF0D967B -20220414180209 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BCFB6BC33 -20220414180857 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD09DEC93 -20220414183147 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD3C3862B -20220414183832 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD4AAE607 -20220414184336 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD559A367 -20220414184426 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD56C4CAB -20220414185501 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD6D7EA1F -20220414185956 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BD77C34DB -20220414192107 2 6 100 6143 2 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BDA56DD2B -20220414194147 2 6 100 6143 5 C008BA5D87ECC10B5E79F4C05438A7EAFA57C290A50C25A0DFD5FF2FF19F5D39568056AF4AA2FB56F1CEFB636A5E30D99379305FE9633EA9CF219FD87C501640F500E2AFAAF304B7EF862B6C4C8339B558E3B8F00AB714AD6460786AAE3B328D41806A94F270B4D1F13B958579F3C1A7ACB166FB2E5566ED4305AB36C357852B2ED67D4C877338D891E0FFBBDE512E976B754CA2BA1770D8CE7117D5CEB99715C99D97285F3744533CD9BE72A4FBE2CACD4796FA3EFCA27CCA1F7F96DC2A521CCD7776125A5DB2EE4A12B1DCFD797C47188CE5CB6859ACBB452F922F4FF7E2098CB090F83812A18D8DD9B7465B2572EED81332A84C1591F1BA1633B571423FE38BAA819B0AF2C30676B00EBD98D386FED880BB6D9FF4A05C206A8394E973350A597FC337260025BE097EB7409A182C500853B9C90A096708BB83A80F2EEF4EA23190B9CE095C92A1B675903B07149C34E9FFAF6908BCC27D495AFED5C652242B939F71690748895E93181C746CB6E94C2E58C97149F5F3FE3CE552F44AA859115AC5459C3CA343EAC5F98D076E661EE24E15F22FA81393F85E7D1B26FD4D6CC1DC7BFAC0E1C97438141A98D65EFD1592D4A1211DC089CEC0903DD7F333F55FFE70609FACDE7B7293036BAAB67E6DEE7FB82E16019AF642814BFF4AF6676446AE656ACD601812A86B8DB9A53A1EBB744ABDC7C88DBABE4AA023FC253B56B3B517DFE66156BE7DB0653B3DA80ACF010125D652C38DC91BBA2C247AD9F769A9C2F8FA16A0B0507CA632612F9AD03C5E281FFB3341A929E1EE9A946889AF525B348DE24362FABAE20E583D67B4624C96053960F4744BA71C1911D5A84B3615CC8F52E23C10C38E542B61969BD82257B2BE5B50EF63B5110D6D23B81D33176473020D363845C45BD03D2AEF81F2A87C1BADD4C1248A3004AE57562E38B0FB10124E23DFC0AB9257F5982748E39610A46A974459A2F30D852D560D45BAABEC8B8BE77F8AC9AC2424F69FBD9E23F226FD7FCBA827ACCC49E9EEDDF659ACA0E931B965401E416FB6969743B8CDEC4DEC49648D7C1B82B7B337AB496F9C5FD31BDD2AA5D7 -20220414200557 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE440858687646A1E9F -20220414201020 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868765073AC7 -20220414201829 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE440858687663CEA53 -20220414203003 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868767F30C97 -20220414203735 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868769010163 -20220414204108 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE440858687697DB9D3 -20220414204650 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586876A4AA523 -20220414210821 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586876D725353 -20220414211625 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586876E9775FB -20220414212842 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586877066A0AB -20220414220717 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868776159A7B -20220414232618 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586878185133F -20220414233421 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868782A4E2C7 -20220414234330 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868783E43363 -20220415002146 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868789570393 -20220415004554 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586878CBF2353 -20220415005307 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586878DBC5B9B -20220415011041 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868790357083 -20220415011858 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE440858687915FF2DB -20220415011944 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586879171F173 -20220415015846 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868796EBC7E7 -20220415020913 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586879851976B -20220415021312 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE44085868798D86EA3 -20220415023006 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586879B22E39F -20220415030146 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE4408586879F87F92F -20220415031549 2 6 100 6143 2 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE440858687A169CCAB -20220415040641 2 6 100 6143 5 ECFEBE907ED5229E0F2A017AAC2F662065526E4CD6767D11B9BC47C5C4D0E39E232885C9039387645B0C61FC91A5B5F97A3A3264DC42DD48A30C3E923D467D8CDDD98F0DE77067BFB45F466CA03EC5B86BF836D9C6298948D315FF4627FE23F62CE3E722A3B60F7D9D6F97D4B10E30924ABF0E094D5155F57DFBD93B17A3E958816225D458E063A4785F4D04A131D6C3AEFF9B405648DC2E0A64F061AB428E6C3B69C65266514A729829756E016CF55D1A917D9CE64ECEA6EB081A85F177BDEED9062CA130A23BB3D90817644F84890C55BB158DA2C0F590826B7073E933EC081268331D56BFB282D4DA250EC39EF3E477BAC8E5B64B712F4457C5B116D0D491AC7AF0E68F3337A51AADA71152604FF386C9CCB4F67204F6A2FBDBE18E5AF591DDA0B5A93382BC210A549262C0A250EF2CB3D3009C4EA412324E359DBEFF97ADA37287D08C11ED12B170B06B8055BC5B17B3F464BFDE141A145A6393750FE9D5EF33C33A43B575091076A24A9E67C56C7B41F023C42166C89E57D001E9161E924A693FD3712355AD60EAC3BD8AC16BA15F5BEABEE3D014B7F5361D7EB36B3F594E1BB98F6813A2D88FD6FC9F008713334AE962B0CB4C07FDB32D549C0F24D127486707C29A7F5EC7F8601961D2E4C189BA3129E48D0D2215E70D9115AAD993E78565715E50EA0E336EA456D469A23368CFB3F0ED6B8AC77738B2A2AC0A7F155CF6D402687212585A2DD9EEAAF614387C7C8D3089D3F42DBD1A594233ABB618AAD84D52F8A234281F2B0F62E3FE23B1E7F28DD89F6F79572506F9B02021CE44914237C190C82F1E5CB395844550EF279E9B50FA1D5B7AE84FE9F31538546244BD4C86FDADB5974396692A7BBE7AD493834DD13418929F8EA0F44BBF8E3D9DFCEF170DF138351932FA05468DE9A922953DF5AB791406E89F752A378A0D98A957773EC3B952DAE04200C1944F30B43D80450F8F83AC4F688D806DE9C9C406D30FC0D9098BE612EF0C4AD2E80B2C746944C727A1015538A53C69280EE0F00D6601CAA6CB0EAF4D3DADBF849D4C1F8F1FD7D438619C70364DACE440858687A85F5E8F -20220415055156 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E02A82E93B -20220415055855 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E02B0AF64B -20220415080431 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0357CD26B -20220415104028 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0420DED43 -20220415110553 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0440C48AB -20220415113849 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0469931F3 -20220415122158 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E04A10FEC3 -20220415125947 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E04CFE8C63 -20220415130450 2 6 100 7679 5 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E04D5A7257 -20220415133311 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E04F929113 -20220415135605 2 6 100 7679 5 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E05156D2E7 -20220415142115 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0534A50FB -20220415151250 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E057418E9B -20220415162045 2 6 100 7679 5 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E05C89A9FF -20220415171606 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E060CD4F4B -20220415180941 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E064E85D4B -20220415194613 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E06C3089C3 -20220415202412 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E06F041BA3 -20220415204136 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0704DA05B -20220415205914 2 6 100 7679 5 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E07193837F -20220415225928 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E07A9B3103 -20220416005936 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E083760473 -20220416011857 2 6 100 7679 5 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E084DB18EF -20220416014012 2 6 100 7679 5 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0865D0237 -20220416040204 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E090AFB413 -20220416043614 2 6 100 7679 2 D73E4A149D00067AF38F615C7920E3E58F83FDF73F493F4712369137702E94062D5E0857DA1D94CE7C7660F89D285B5DF0F8FC8A8CD2FF69819BED74B0F05EAA467BA2CB1337A7F6E9EE06670C393AD6C845C1743F511BEE7ED9D65AA1BF3FD41BD6F0EF131358CCEE448D0EFEE47EF75D3F4AA2FE7A70210CE62E2C6F791BCBB4852CDF41C5EF6B481ABB954A6AB79AB82ABC543C6CF66F971F590ECA63988A886308218202016278C80C8F7142E1CC482FCFC313123AAD101AF837EB8A210CE3522F0554FE4A00C29E51510678F9DAB40C21A644BC9237D982C24AD1788C3D20F6520144B491C77DB1C53CE98726DCF09DBD1978573CF32848096B44A72CEF3221D98C44BB32A524549A20D822F5531D7E7875B1B564ABDE9EE100A90A8E51B37EAEAE3E89E3E8348F3BC9D8FD284E0FA829406C5D8CE0826CB3EAD353B6052B9C7FC1CD4967090AFE5F2BC11B3280C93278A1396AFC640AD8AFE9101965306601723E689714C3190C41C4D4635F1541241F452C981A5F574DCE109014A274CDBA4CE6AD7C693AA7D3F18418AA4F1487E657858DF460D53BD835685581BB461310DAF203B67C23E0C17ADCD024033C40EEF27957151D01971F43254C6C4E3D86F6ACADB8BCDDCB300A21FEAA54E59A547C9C06ABA312A5B4736356230580FBCACD3FB08626BD622934B81B8697291C6DCB1124F7A6762DB30B9CFA22A92FEC007E7EDBB188F34755C350A884DE8890D0E5D6F491D9C23D951DEBADCB26E1D25D971F5FD23FFA0BCAA84646352DCA69C7A3BB991961E762E96C48E58A2F8FA52DE7CD9FE7C529289A73E13032154349ECA5CCCB3D5B89980B29872AC5B03EBAA726CFD9790AF85E371F0A5B0588E4874EA300C5A370ED42A97C6E372D1DB9825EA995C0B5FABFEC09A632010EE138E8E35794640D65CA647ECDDC20A4D453CA4C35EE78350A8045B3CAD6CF41D3DF5260E355EB03E819C0068C91C2F530F7C74F680386947FE3FD00C91C5CEB7D0AF97DDC251DE856355D16F7CE88E69B20BB20BDB3204C63EC00277B7D5DC9A77682DE0750EBFF7313289998DE1C6E940F0B172A173531140FDA7A3422FB739F8F1647907355B26C37A47EC420791F68C61CC7A55CA855DE158B43D0DB363153AB9F0DEEC632AE784F62775862C4319971738352448A4D653C1CD7380247C05D56198D19720CB284E6CBF137616D8DB5510FBE81A7F646E5356C998B56125895D10ECAE67FD4CCD73FA78ACAA774DB11BBD5314ABDA3DA139107FCD342BA6CBB9BDCBED536411BD50B38F7234511CE74B1362D07BF71DBD033E6F637C45FB0B25871B173BCE2337D963AD41693E0932065A3 -20220416062823 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB80218A9572A3 -20220416092832 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021995B7A27 -20220416094426 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB80219A994F8B -20220416095028 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB80219B0F266B -20220416102802 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB80219E13BF97 -20220416120843 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021A609A13F -20220416133156 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021ACA2E43B -20220416135357 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021AE55C347 -20220416150622 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021B404E4E3 -20220416151128 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021B462EA07 -20220416155217 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021B782687B -20220416155712 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021B7D8961B -20220416165422 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021BC44747B -20220416170631 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021BD2BC4F7 -20220416185708 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021C588EACF -20220416193124 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021C8261C8B -20220416194631 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021C941917B -20220416200225 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021CA6E54B7 -20220416201249 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021CB31B7C3 -20220416204005 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021CD39B303 -20220416214143 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021D1CB213B -20220416222645 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021D51E3AB3 -20220416230352 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021D7D44ED7 -20220416234159 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021DAA0700B -20220417010500 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021E0C9B503 -20220417020435 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021E5207D2B -20220417025157 2 6 100 7679 5 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021E88D137F -20220417032310 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021EACBFA03 -20220417035624 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021ED21FED3 -20220417051440 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021F2C36493 -20220417052159 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021F342D84B -20220417052424 2 6 100 7679 2 CBC85C4D4EBCF255C5C59577D8AA5AD90A69B25B5296F0E56375785F984F7C899F7F9AF6B2C9194B15A6986941981AC7F389B6B4929F2E376CBF404FC982D91B1D5D8742069C5FF04CB06F655261C68FB38232C141DF7E03297340FA6687EF802A2A9B616B998F04BA24B6657E65250B52DF17531834455D250CB3A0E8CDD070B4F89C82F996416365AB47F1028D66207A6BAD8BA74D0E27BB3CE3F234C59C9CD050ED201ED5C816CAA3DF52A43C612C1079BF51304ED475DDDC73A289AFFA650FC7C4C568ACA26474BD48122BC45354B3AB4F070F6B91F64DACB2FB6F3A6B9FC1182A6818184DDBDF76226DEACA74B78CBAAB347134ED242212BE83D5D1BCD7CD70040518875F00402BBD118E941AF4F038674617A6BCA30F22F40CCFBF6138C854020BDFA5D1336B55081EB46965F647EB1EBD9D290056180489B1E7104FBD061B751D0472124624607D2E6867F7079C0531FECF05A79ADEF6F22DD6FFF9431C6A077BAE0384D447F4085CC805165DD8EB9C8C309B2EDD032DF0D4568FC21E428D6049D809567C707829579A066AA7F62C70EC559586A0749109764F5AE32CAC0C2127BB3654141BA6F87F1911671906B60D77BEE322D71515086B4E9BDA8E853DCF1906CFAEB099B0A1BB5EF0A06752A9C89EB506C773DC12FA8DE2DD8FE789624D80406619AE1BB342C7F01F424E4D5908A02731F051996721E2C0CB6703E131F4B5D1768E386783ED41C1C1318F9E19D995CFEEF998D5659D4A9FBEEDE6313B9E4C1665F1E44BF213E66EAE4435DFC2533EB131F235E0075F406028B650E758F38A582705423BB661A095D24E79B6A1D5C6A36989B28FD2ADA228961C1574187F18D419B46545D7FB147358A8409F5CA3ABBFD14EDDE9C0768E84E77F6E61307908F0DD8CD49B9C413EDE4FD13E4D1FB5CFB0075297258D828C20FD01A261F8D5672BFD190FAE191250F533B548B5469879E8B6BDA77D650ADB83AE9FAEC37FBE8A9F5F85CF47159EBC54A9129692A2B253C735E2F629D183A2ED4F2747BCF143D6D673F0F3703D0122BEDC5255F003311A81FA236D0E93D6CCC3375C4C35474427756E58A245A8F0AD68F1226BDA8ABB969A68B0758F1229038CB16711996B27923A0AE7D81384C24763C72B72B6A23A6EED923D0C70A3E47E47BD572A3398F3D651614A47C942A26F785F75A2DE7EE6FC927BE209729BF52943889E8C14708F592036BD3E3E4990659A13D64A755C39BC588B7D03BBE6129A39746304FEF371C760B1986A6FBF4DD588873571984B10FA6624239082E2273F772BC4FB28BC1E57DCCD35511FB1303BA03BE961D3788131E7A106A63BEB8021F366931B -20220417063546 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAA824C207 -20220417073924 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAAC98E38B -20220417084530 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAB1415F77 -20220417090433 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAB29029DB -20220417091538 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAB351952F -20220417105457 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDABA287EEF -20220417121015 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDABF594DF3 -20220417131800 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAC3FF4F83 -20220417160405 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDACF38B053 -20220417171411 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAD3CDA357 -20220417172520 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAD4899F6B -20220417200514 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDADF12383F -20220417203736 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAE12A45AB -20220417215125 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAE5E926EB -20220417224905 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAE9A3B337 -20220417233642 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAECA4D2E3 -20220418001736 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAEF4202CB -20220418013943 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAF48042DB -20220418030345 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAF9C843DB -20220418035729 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDAFD2E683B -20220418071750 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB09CEE313 -20220418075023 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB0BCCA41F -20220418080602 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB0CC11E8B -20220418082746 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB0E073263 -20220418083338 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB0E5A8D33 -20220418100322 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB13D22C2F -20220418122110 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB1C284B33 -20220418125647 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB1E510FB3 -20220418130116 2 6 100 8191 5 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB1E90B78F -20220418132740 2 6 100 8191 2 C52C5842553651D384813D75CCBD7B83BD255568A4C68FF4D52E1E7FF21591F027FCB743BE99262A53363C83B0A9C2D2E1C1DAEDCCF76A89344F891B001F588691CBC39D7582E69AB96E1E7A2AD2710D4870E1270A36FB44D7D358B0E7EB06AED2AE31FF68CE0198CF3A59EBAEAD81B1C823C4D88F490C2923C993D1B9E267E50DD8FAD09B83CA87A831B31B96DBF72089B9576FC5AFCA41AED93BBE1D5C627255CD02D6F98D097F8FE1F17B1B743B6E66DF5AC512AA430F04436E06793E7E73A914750833BC69830DEEE6FB57C32C3D7941529B915B1C4B6F37FCEC221A9DA83F050D47EA10DD4546309BB15CDC2A25C287B9A16CB0B2BB663A3D64BB7C26107034804C2C7569ECACBD609EF8A68E19768F86476DAEC2F12E14C325C5498DAD1BBFA5AB8F139E588C3B6BAE947D14283E944443B1DC19896D61730F5EA8A43D5AB9E48EC3861DC3D740FAFC39C408DB1E86F96681D630158C66FE42E187ABFB18304CDCF2718CE7B04F7FC55B78A19A0A43FDDB6CB9077FD680D50989DB1EB674BC03F20A1AEB6F9C546515F6C32C4276E5297A4A3AFBE8E6026C10FEA7F791F9049D0768668AFCCAA2D18878190353C870C6E9D4AC0DABF50BDA3B25EB99528566B9E0FAA44711FA57D1D15B75E00CCA8C1C0E76CDE80607556AAEBC173E0025FF7B05858610B85D868C92789BF1A9736B93E6B4AD7EB23A99F83E69B82BB1BFA26696C68D1066566AD45AA1BFF3C88ADDDF4181E9B9733B2D310B360D7865E4853C72AD5CA7614988B631926C237CBCEF8BFC9F861F9BD8FD92CACF2ABA9A72521CD7AF9465E00CA0F3CCECDBFAF75C148DEC07886536E1CCE9A68620F750657DD7EE912A1B9C7D35ED9AD81984544F7221DB21F2B47FA71BC1B76CFD51D3796F04323FEF98802EE57DE86BF7BC3C27CDAF15F00824CA24C928E0A2E9DE4E66097E382DE41B32769CFE9853EC1EB4B788364E9DE1CEAE0DF13545C9FF6DA8C0DC9289B4BE38A3600912AE233859D59BD1CE3A44C4EAFF6B1548C5D8CF7A63E449702ADBEE391C3BB1FB8A7217D74AFCEED66EC0E7C448B4B0D3FB011D666598F238968B66A3BE5D0D2F7E3D1D8D93736AE5FF605D8E17696F4FD6386FE2DB6BAEE6D142D184F5C088F9FC4DC05C1E7005092A6E7214BA7E5E85A7D9666A10B9AB7C14425FA7A1D82910E4B17E9B7DB09DA89CAE91D89277814A46A6F20E70AB75C45B0BD32227E0F7085C84B8A3864C25FB684DCF5B4512C46E04C7CFE7911C5E256CA017186A33447619E65C1839988874FCF00FCD2BB7FC4960B1107045898573AC4C7A7F0E3C17AE2DD5FBB92479B55517D435B4F582EEBE2CB6B926C424C3F1243F6FDDD33184E4132C08AE4DA1ABF5C5036FC8D3883855251B8589F7147889A37A300E7EAEDEDAD9262B626074F039DAE19BEEFB84320EDB201DF103 -20220418144902 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67858150C3 -20220418152824 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67884BD073 -20220418171630 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD678FEE66DB -20220418182724 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD6794E3AFCB -20220418183435 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67955AEE87 -20220418185712 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD6796E81A27 -20220418201627 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD679C621EC7 -20220418211708 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67A079830B -20220418213706 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67A1C79F63 -20220418222050 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67A4C4F48F -20220418224223 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67A634298F -20220419011431 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67B069D573 -20220419021153 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67B43DEC33 -20220419031338 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67B845003B -20220419040146 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67BB6317DB -20220419060359 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67C35DBBA7 -20220419082948 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67CCD1BF53 -20220419084823 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67CDFBAF53 -20220419091604 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67CFB4406B -20220419103659 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67D4D81393 -20220419110019 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67D653D053 -20220419124806 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67DD1EC41B -20220419133200 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67DFE53A7B -20220419144722 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67E49063CF -20220419152308 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67E6C7E127 -20220419161040 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67E9B7FA1B -20220419172345 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67EE2EB17F -20220419184212 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67F2FFC2FB -20220419184630 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67F3381C0F -20220419193320 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67F608FFDF -20220419193640 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67F634CE4B -20220419204750 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67FA7B8963 -20220419205514 2 6 100 8191 2 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD67FAE5B15B -20220419225936 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD6802713B8F -20220419233957 2 6 100 8191 5 CF0A168167DAB1FDFD5C0376DC6E2C93907F486EF5576F14B83FAD667FCC774D179D9A0CB69771C381E7A3AC0F7561E06C8BFD155A9B527EE6F015BDFF6DAE1556CEB985BAAA83E40720B4D91830DDA2BC4BE8C137AB7EB0107D3E04DB39A092C84AEF71E223A40F18B586FA813ED2EC4453A8C15B3531DC651AAFA6136D5BA894B22FA94E96D6034E9A569F4D3366B323D656B5C480D0FC443BA5597B42071CB28466F084FA31856AEAB54268E7DF559C47D0F53F7584273FD41C9C59C130E9E43B0E5664B1FFAE5D3608EBFCDCA6E257B0AED1E270938A03C7494B16E725389F8106CFA4746BD350EFD6688AF36BA679CF2437E25C0335A4C7E51AD3043938D7D49EAD349D50B153346687EC29B70982760D6280C1B92F58AEFC66BAB600A905A40B720A8E75CC1C1D96557F1988FF927ED6C2C614357242CB03E314B19766B1C7D70575A1607B25C6E90F2412DE7D3F140B3B6CD743FEE66DD2F32B35F34C1C4F1523B03F9E68E873FB7697D0D09D387B8E4BA6FF9EE302A8B6D4BEBA2659E8933B8A411BEE451870CA8F388C96C0D1A59F2BCB29CBD5FFDCA855A7A9720E7BCA71037B417D9D54EFED70FB695EB8E3461262884DADE4C7E2F9ED544D650CB9853F1AEE8C48FD285F8C806823065A238AD70A99C832C815970C33E8326ECC759378A603C77D20248DFAAD6AC718D5F04AF2635061C904159E1EB37873B383C7A244C81F58A22553B1DC1A74AFB44B44A5AEA3B096DEB8B6FEFA7778ACBE1B1EF0331B2667611340085C51D092DD6AC47814A4D68384007F87EA2EF20E005ED221855CCF2B67FF58CAA28E40CD9C44586CB054670C2B0EF0E6B73852B5B475409BDD6A6042345630EB1A675F51A13F7453936B72FDACC671D863DEFE781698B6AE6CE15FB6936A27A9D5EE7442380812B8EB4FB525A518239E138112E6BCA6FEA3FB27B30E28F6D3084D8B5E01F20C7D3FD7EEF3E3EB55F392717BCA9CA76900EBADB7AEA8A26F704C8417708D51374E98D61E0D649BFCC0957FB0636762453C8D1CE08B95FB90BB5EFF6A50210679E167C1E0B67AEDC6E7000C1C4AA5509F8F81D679855BD6CF8FE556FADACE0E45F1C1387DD1A14BBC8A3097DC11C7E40E5A31BCE2188D99008BC3163D04D03ABFB8AA3F17DCFADF8A26F4F275886B1C3DE598068054BB5D8D1B4CB5BCA9E6E822377AA7625490BD4735DDB2B4558D677C1DC2AF39CD9C67242D1C41FF3109FBA72C9C22E362310A905738BF8CEB12697EA0A0885BE11AE0A44DD1FE5F6F863AA8740BAD7300FE1FE72062D3C1669CA796B541637141925DE49515D497F669A695C2735489B58A6E48FF5D6E884D262E5EE95F1EDF49DF55485891DE9B7F5B1E73AD0953C021E4E58D3B7001B702EB6A030E81DC6DB9265290FC224695CAB521CCA0449069CBF358949B03FD6804DDE8AF +20220714110357 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A429A9923 +20220714110358 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A42A9BFB7 +20220714110417 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4349E923 +20220714110421 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A436AA537 +20220714110429 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A43ADB17B +20220714110437 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A43F26D23 +20220714110452 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4478434B +20220714110507 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A44FF2077 +20220714110531 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A45D0597B +20220714110534 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A45E81313 +20220714110541 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A462B1987 +20220714110550 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A467A15E7 +20220714110557 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A46BD40AF +20220714110605 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A470351EB +20220714110630 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A47EA97DB +20220714110630 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A47EAA76B +20220714110648 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4891615B +20220714110652 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A48B5137F +20220714110654 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A48C1EC7B +20220714110707 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4935FBBB +20220714110707 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4938A2F3 +20220714110715 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49847CD3 +20220714110722 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49C04CDF +20220714110726 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49E68FA3 +20220714110728 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A49FF3563 +20220714110733 2 6 100 2047 2 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4A266083 +20220714110736 2 6 100 2047 5 E98F2A209BA9F4C8C1FFB02490E599A99FBE28F6A053E240A4BD5FEDE80B23FEA8A1476E9EF6605A4B4B41CC74CB945C7E168A91DB112424480A85CBF5853234B9B1F60F030D38F678BA80AE1461F716C463D7396151EB5F037CC88690FEEF8D16A1B67F56C11874DB5AA3D541BEFF390077C79C86434EDBC2B46821D2AE5D2FA4FFF1B086B07669B09498EA11B0FE26C773F79ACA044E085E0BA43BBE1EBE954AA1EC7A465A3232699E54958B1760AB7A04D9627EC1810970706C96B58BF84999EBED8846D8B384CB945BF782141B1BE2B7C0E04D531A2334DB41BBFD1BEA428C5FD22F50BABDBDFCC5B848F64CBA8D039636311F8D844DFFFBD77A4A4718EF +20220714110741 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63A97ACE7 +20220714110743 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63AA92DEB +20220714110749 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63ADC6787 +20220714110814 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63BC349AB +20220714110816 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63BD5A5D3 +20220714110819 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63BF25123 +20220714110823 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63C158EEF +20220714110828 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63C438BD3 +20220714110845 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63CD80AD7 +20220714110857 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D3CF5C3 +20220714110900 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D598D1B +20220714110905 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D85CF73 +20220714110905 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D88E27B +20220714110906 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D93B057 +20220714110907 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63D997D57 +20220714110947 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F07D89B +20220714110948 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F12EC37 +20220714110950 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F1E46CB +20220714110952 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F36E2EF +20220714110953 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F3EFE3B +20220714110954 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F45AF83 +20220714110957 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F6684DB +20220714110957 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F674AE7 +20220714111000 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE63F798EBB +20220714111037 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE640C91997 +20220714111042 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE640F6CD07 +20220714111048 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE641309F8B +20220714111052 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE64153581F +20220714111054 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6415DF757 +20220714111055 2 6 100 2047 5 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6416B572F +20220714111059 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6418D88DB +20220714111109 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE641E2FC7B +20220714111127 2 6 100 2047 2 E459BD05870898B0392DDF50E0E0FBCA35E6D6FC6CC9174AE997BE7CBB6902931A8686BEF0D0BC2C82308F0DBF995B77A5952BE4EB437C277A3CBD94356E4AEF676686E76B33FC5586BC6C68859F45F9E71B87AF29583F0808D2F73FD54B15E5D10DDDDB3CF0680C42F17EAD0BD5CAC0B94ED891D1A4775AD74F3E7D7E36B12EF546F6EB27610D5EFBE3F89EC644901CD8D8293CDF9B99731D8FBD2FE920674E74117FCB9CD20B3FD23D2ADD966F5090265131571699A84F3894B14730E0F99E1A49067CB3BE74A34C0E94A6992E02BE30940BDAB6C6E992AF81F6615674B232F4B152F97D9523B1C2ED6EA6DF7C4C69EB66FF9976325AB0A7D50DE6428AF363 +20220714111939 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A40451D63 +20220714111946 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A405CC61B +20220714111948 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4064ADCB +20220714111958 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4087EDCB +20220714112015 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A40C3D9C7 +20220714112026 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A40EBD6CF +20220714112102 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A416BB97B +20220714112247 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A42DDD67B +20220714112248 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A42DFEABF +20220714112340 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A439694EB +20220714112353 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A43C65423 +20220714112428 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4444AE0B +20220714112507 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A44D48CFF +20220714112511 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A44DEBF3B +20220714112549 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A456724A7 +20220714112651 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A464873DF +20220714112736 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A46EA45CB +20220714112754 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A47292543 +20220714112800 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4741F39B +20220714112844 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A47E12BFF +20220714112924 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A486E93AF +20220714112931 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4887FCAB +20220714112951 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A48CAB4D7 +20220714113009 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4908F30F +20220714113024 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4942A64F +20220714113032 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A495DA0A3 +20220714113137 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4A48C463 +20220714113138 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4A4AD4C3 +20220714113152 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4A7E9E6B +20220714113302 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4B7771A7 +20220714113325 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4BCC7A67 +20220714113406 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4C5B14CB +20220714113419 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4C8D693B +20220714113438 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4CD38C17 +20220714113459 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4D1FD413 +20220714113606 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4E11131B +20220714113620 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4E407DDB +20220714113639 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4E816DEF +20220714113802 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A4FA7B0BB +20220714113835 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A501BFD27 +20220714113901 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A5077B90F +20220714113910 2 6 100 3071 2 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A5096B1BB +20220714113911 2 6 100 3071 5 C60003BD3BEA8A30306CD503D00EFB4ED2BF6A45DEA568495ABAF8D2D53A1E0BA1D2C2D3648219C03F47CD52B677D72316114A3882A8A3EB62C4F002DB326C27811A36E332D121EE420DDDF830741F14AA96AC0D2AEB5A80BF31CD18D4E3C02A22BD1986A906EEC3D635669FF26DD25A73FD7650666B101D6C42B0A58D96331E0666C990B56E4F0A5649C76FC7BA599A6DBE245F3A2F16AA4A9216B3AFAA93FE40BBB1149A657C934EC408C063B7130027EF7624C721931FECB563EF32C68E9C275A6A9F8BBF5428CBAED0987CD0EB4BF1BF7AC6F33C37FD88C7A026ABD735F0CD7395A4A22DB22B26C78823FB3BDC98150A82573259E64F407A2B3C017D2E9933E64EF5DDABDD3E748D507D21FF4F7B3450F2640E51DF3993B067DB952F8CD179BE389000934363E209ACF6235D1E9D07D3B0E865C4F9EA6EEB91D2B46B8032B2A3890E4DCA5905E269BD5BF2810548243F13FB13691E5346533538503C9CAA0E56DBE759C182BD04663461B435B8D7A20D69DE33D98AFAA302B86A509ABFAF +20220714114137 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243E7AF7A33 +20220714114223 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243E853FBF7 +20220714114400 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243E99CF2CB +20220714114432 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA1047DB +20220714114439 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA262BF3 +20220714114453 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA58ABD7 +20220714114510 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EA98697F +20220714114514 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EAA6423B +20220714114554 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EB37D447 +20220714114630 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EBBBB32F +20220714114922 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EE2FD6FB +20220714114946 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EE87B393 +20220714114947 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EE89E703 +20220714115027 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EF1D4457 +20220714115124 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243EFF0E74F +20220714115140 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F02F1483 +20220714115239 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F1048C9B +20220714115329 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F1B76437 +20220714115359 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F2205357 +20220714115442 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F2BCF797 +20220714115448 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F2D1B3DB +20220714115516 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F33828DB +20220714115531 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F36A7D87 +20220714115553 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F3B6A657 +20220714115559 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F3CB724F +20220714115604 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F3DB43EF +20220714115627 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F42F1353 +20220714115641 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F45D4ADB +20220714115649 2 6 100 3071 5 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F478CA07 +20220714115654 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F48960F3 +20220714115824 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F5C8FB7B +20220714115834 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F5EAA1CB +20220714120147 2 6 100 3071 2 DA55F6EE023BA05F89B992D6CCEAAD8F6F787812100336939D4C7BD3E08406588C1D2D9C8F4F13A4CEE2F74AAD1ED582272D56866BCBA0449DD6E701CC63FF2DD3B90551DAFE6F228ACF5E3F2B5FE0630B2E5C66D16AE17321A30A0701E511036AAB085C8D3672721EB89A6A6C5CD1406742343617A0B2B09DAD465A2798DEF580B49E25073F0CA98217F242BDB49FD43FB32D31B1983B271A92C13B2A5BD1F39FAF6EC9DE65B5181AB4F6AE3D7D052046ABED2928B5C0B98148EFFB3C2EFD06A61144DDBABE0C4B0E9EDAF0037652A9C5C658F0DAF177DDDFC589A906F46E4F1EBC4A915AE00BB9ACB01B1B62F605209929A8A4274AA498A884DC2E26A1BE9A4FBAD44CF68AA5F92ED35EC66455A01F2273DE2369AB2F07702171AE4D4A551AABAC9C53063C9F1697653877CDE27893DEDF391154D6E5866C919E0C154E5B2B6E00CBA6216FF5FE7EEBE52690BBE6A4CD0693BEDFCB6B217BBA802C6926CEA2021005568848D957894473D76D41254E97267C25836CC2DA3D515243F890B7EB +20220714121337 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629C7D4793 +20220714121340 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629C8256DF +20220714121625 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629DA597BF +20220714122153 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D629FE36413 +20220714122227 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A01CEFF3 +20220714122714 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A20F9823 +20220714122853 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A2BD77FB +20220714123034 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A36B3637 +20220714123040 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A3746D03 +20220714123232 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A437C667 +20220714123319 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A487CC0B +20220714123750 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A65E695F +20220714123800 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A66E6103 +20220714124312 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A8859627 +20220714124408 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A8E56B5B +20220714124440 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A91A43B7 +20220714124606 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A9B26B87 +20220714124627 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A9D62D47 +20220714124631 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62A9DC09BF +20220714125015 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62AB5FE7E3 +20220714125134 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62ABE6A13F +20220714125205 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62AC1B5F1F +20220714125308 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62AC85569F +20220714125411 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62ACF096CF +20220714130454 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B1384403 +20220714130821 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B295BE03 +20220714131228 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B434EA3F +20220714131424 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B4F3596B +20220714131529 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B560201F +20220714131556 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B58D1C3B +20220714131810 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B673859F +20220714131928 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B6F7B87B +20220714132227 2 6 100 4095 5 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B83525E7 +20220714132255 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B863A7EB +20220714132258 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62B869E2B3 +20220714132926 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62BB0FCCF3 +20220714133046 2 6 100 4095 2 ED38FC9DDCD01CDF39C887875AA0A7EFF8682144089FC338C06E2C138653B5E7A082B537BA5C80A93B7192D153313DE56606C8E2A0CAE8370284BE3ADD97F04BD4EBDFD21A999E13461B544C49742DE120C46D046F6E9C55922E68FF3C8A115E51E70071377B60F8127EB9228A332BD38AF8EF1DA8EFA7012496070426203F3BEECBB286E33C053DC070CD919074DBA97E19C081C6CD8B74DBDF6674F64CD7A7B5F0B7E40B0FD607AF531D55FACAB38C9F550C1D60D89601E6BA1D6BA66F5E18D4C8D4D634C464EC748A260C285D84158CC3DFA9BC03973F32077F7D92C104314173584B96C43F22AFEFA135F3A4C5A0D959B963C8227A337DAC30D8B96F7580D67763621C9F51FAA9E2641D81565810770727EF4C25F8210CCF60B2480070556E874E59D910B9B1822B13420C2843BED4FA4F5CBD7822D651C07CB8657AD1B3629EB337CBA9F1FA50E819E9DEC1DB564FFBC1DEF0561079F96D8ABD0740BE2C997F4EEEF7E8244ECAA6E2BA85E832329220C26A7F088165F583343C190B245CEE6AE40E01D2AFAAFDD509302EBD989AE641131152538C749718FD8D1642B9802DACF3945C0A445D2ECDCF921F8E360495A564C0EE64D74224CF93119AFF5BEA0B61ABBF1DB67A6820A4BF9AD622207ECE7DB9ECE03B4FB6D69D06BBCBEACFCF62D85763DAA5B8C22385D5F4E22352C6EF6495485D00FD019FDF6D62BB96BAAB +20220714133233 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C71821637 +20220714133651 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C733193F3 +20220714133712 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C73526D3B +20220714134252 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C75A257CB +20220714134434 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C764BC487 +20220714134946 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C785EAE2B +20220714135018 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C78963137 +20220714135147 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C792D0D87 +20220714135358 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7A0DE73B +20220714135921 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7C4451E3 +20220714140317 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7DE6BDEB +20220714140350 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7E21885B +20220714140711 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7F85C48F +20220714140736 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7FAFD0B3 +20220714140813 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C7FEDFEA7 +20220714141031 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C80E164A7 +20220714141111 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C812A1B2F +20220714141544 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8303F01B +20220714141716 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C839F487B +20220714141912 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C846C71CF +20220714142105 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C853302EF +20220714142236 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C85CD2F13 +20220714142326 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8625DC73 +20220714142751 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C87E4924B +20220714142911 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C88684F73 +20220714143324 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8A2318DB +20220714143325 2 6 100 4095 5 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8A23F507 +20220714143405 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8A690A43 +20220714144651 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C8F8FC3A3 +20220714144923 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C90A21B53 +20220714144936 2 6 100 4095 2 C26EA920269D893CF64405388D11C71D52FBD982A1A9308A076F5B755328380B3D920C48C770CFBD278FCEAC8F9425A0A90DF855870D484BAD937C546B0A77676A0C55A150CE32CD4F6EB2F42A1A176199B683E383035F00F93D13B136E94EF38000FA07B393E7FCF3D3780FE4D8B222C94C389ACBBCFDDA3B5EBA8ABA2E8864E9A5A82097DACE58E7B051CAFFE23DB7F1B5A1AC27E5245A40CCE4F85C9F5FF162A994F68E4D6287CA45160ED1FD545ACC957893BC1D39C6FFD755CD8995EEA46A70E462391D5C23D346074415499E835F3F4EFF95A76CB60F1A7B447799105A542C0870A74BEF1C575A112A1CBE2383C32D44CE8D813EE45511ECF7FE252E0882C81300BA1055E44EE6E0EF5A8FBAFF5DB2A3E62EC9BCA93DAB6134D2F3B2EE20C979D17D5272E6BD1F47B4997C02B2A0766B79B1710DE7F5933C4DCBE6C35A376D914B04E07809B94ECD8CE029A54F1AFCBA92EBF0C19AB692F5CD0DE32F78EAB4AD53DBA881F7D737A6899345A8CE7C20E697B6D8E1E3A9886A9EFBCD95FE408E340D298EDD0276AF776FBB4EBD9FDA18322E09BF101506AA8C471EE71CBCF1DCD969524C052B6066D7AE54614DD4AFFAC6EAB393D0CA1CB22FE487DAB99BBA1835490AC275AD9C2C7A7138AC9DF236AD48951C13C0DE1EC58A2120DD24144DCA31564C74A5CEEF143D9BA7F2F6D01670FC6F6DBC07A08D25EE7C90B7330B +20220714150424 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269CB3AC32B +20220714150807 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269CBBB9D93 +20220714153843 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269CFDFF54F +20220714155314 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269D1D2942B +20220714160052 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269D2DACC3B +20220714163103 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269D6EA99C3 +20220714171421 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269DCBECCBF +20220714171847 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269DD5B7993 +20220714173040 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269DEFCEA7F +20220714174048 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E060A22F +20220714175752 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E2B3A90F +20220714180116 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E328818B +20220714181520 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E513DE83 +20220714182218 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E604A3CF +20220714182735 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269E6BBA01B +20220714191804 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269ED919FB7 +20220714191958 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269EDD630C3 +20220714193455 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269EFDB6C53 +20220714193500 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269EFDE36FB +20220714194107 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F0AC9F63 +20220714195248 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F23F6BF3 +20220714195808 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F300673F +20220714200658 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F4322A4F +20220714201511 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F553D0EF +20220714204211 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269F8F97DF3 +20220714210501 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269FC032A43 +20220714210527 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB98269FC1045CF +20220714214423 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A014F6733 +20220714214717 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A01B72D0B +20220714215814 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A0332253F +20220714222646 2 6 100 6143 5 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A07072DC7 +20220714222943 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A076F0173 +20220714222954 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A07745AAB +20220714223227 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A07CC7BB3 +20220714224745 2 6 100 6143 2 FFB27E2CC8B774D736BFE9ECC0EB33B1BC6D4DEA1E8B360AD96E83A7213A91CCC112624B99480D8B7E7C3B6A70A96B7F267C4FE080158429ECB77525C930D5C61BFC7858FF4D571FE7C533CC24A8B1188EF52DD31B0910207C6B5166A9A097F1D12932EBE47B9B876F2FE0F9344AD4B4BA45B0BBB58908E9D6F8DA689D318AA7C1E198CA2AD22722C00C03A393C8BFC2C037C33429CEDF0660F5716CBC1A15530ED5A3C368B96973A43F1AB70E8BA75ABBB35C85B15E58B56E5C8196B6E9D3C65A236786B55733B64FD6D4F46672EFB796962A3E07AB74C597961E99B573BD8F6046F89C317CA6D9F4922A222CC0EA11E9823F742937FB0EC1A8B7FC8A588193B2AF4C2DECA3EE9724FD8818A0792445FF5E0B7ADDD3EF2282BF471F5322FE0950D91B9B7688B7D134741B60BA427DAF6F09A57C027BE9D5FF6AF15A6DBB183E86E4C682FCD711472039537425BBC2C07D91503187E5F7B9CE7C576AC0CC799791971C23F82C2519635F9B4E1BEE7941DD602EE778E5A99EF77FF9FCFEDC0CC6F90E1F8E2C09D596237C37EC368A78BE8CA54A7406A5BF0708885967909CE810651BC792BD84B1805E3964F31002B647A88FAFF57E94F56E75E5C866E43E7360928B8E7D8E89CE43F5D84E21A3075E9974ED065C825268994DA5E0ABBAFDC1A6636AEB8856C6703CA917C7DF7B607F7DEECD894E6DC133E1904C73499706EC71D2780726A3019F3975835EB22CD82451522CD11A38B28BD742B2A278B886BFFBAF1354D248DE81CE41E8DC7CDD31264D5374CD6D1E53FB07798A5122E18710B2648ABF174A3C8F31222BEFCA76C3F6D7240483119BE84BDB5B72D6CC812A21E2C3A3AF1C263DD5794A716028943E3491EDD9976C4AD900BA4E5BBE2A531BA3B8AF6BF5B952876DB85A70B5C6EBBDDF82E4FD4E518277CDAA86824F82DADE5F73FC60E81C3035A92CC374274DDD8400C144AD28B2B410E186D2A799A1BBAD5B88B1117BE0721D8FD55BF0235620209AACE1B8B2992DBE94F8238AC7E31C758202C548152AF1E4FF39B070B650A52E25793E6E344E027A94CC0CB9826A09DF82A3 +20220715000506 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DB9F7FAC33 +20220715000641 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DB9FB84627 +20220715001211 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA0756D33 +20220715005345 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA6234223 +20220715011011 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA85B2A97 +20220715011444 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA8F9C90B +20220715011554 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBA9233533 +20220715013220 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBAB54738B +20220715015353 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBAE41CA83 +20220715023846 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB4450E27 +20220715024203 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB4B76CCB +20220715024757 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB58180EF +20220715024833 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB5965263 +20220715025025 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB5D2C667 +20220715025333 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB63FE40F +20220715025633 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB6A8BD4B +20220715030337 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB79F8147 +20220715031630 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBB9537AB3 +20220715034438 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBBD1C7CE7 +20220715035610 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBBEAD09D7 +20220715040817 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC04657DF +20220715041331 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC0FC243B +20220715041430 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC11DB2DF +20220715042040 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC1ED4A53 +20220715042920 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC31D6CE7 +20220715043335 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC3B0A75B +20220715051034 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC8A470E7 +20220715051434 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBC92E3067 +20220715052452 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBCA8D11CB +20220715052700 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBCAD7588B +20220715053146 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBCB7CEC27 +20220715061333 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBD12F317B +20220715063310 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBD3D846E7 +20220715071637 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBD9B91D57 +20220715074108 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBDCFB3DEB +20220715074918 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBDE19622F +20220715080656 2 6 100 6143 5 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBE07CF9D7 +20220715083930 2 6 100 6143 2 E258E7BF12F3DDA792F3E7480A3563579067E7CB60FB18E010DAC18E1AD5671C1E0B1CED8BCF199C52405B70A169CCDAE2B112117B67D54C6F892B1822DC08FACB88D9C1E424709E41932AB799392DA34E0D560B03C459B2208DDB99ECA51883F8BADB33EF313D908ADB72802512653760C2AE00320555606FC09B797CFF13219A102668C5DCF4248DEEB9B7C779A2AE009842942DAE4032491A233698B8BEC159904F8AC25D1E90454A45F786C433C843224D755DE28AC1CAD4E9736C6D4180BA705B607842915F257BBC730C733882911A8A51738DF20BA48EF64240646041BA8C6F3FDEDE140EC3AA3EBD710F5E12A3F5C50C2784FA32CB6E24CDFC621602E67C80DEB8347146AF1983C201E2B4A868B2DD61D079D41AD874F63E22B42101130C646F0217A74192C47B8A732F69DDE9C05ED4E2B7E3CCA501D687F1FAED478D3910BF3689DB3865574926D16FD3DED6561FDD8BA46FDE6121312E798A0CA83993CEEFECC033CB73442A2C954E8BD1C752BAAD8D074F6F6829E515446A8BA834CF7D08B3170721C1388BD55BC802011B9863B91C9B4DB305D881A503B918428569418BC0B2ECC7FC3F9F34B8F66C5EA842B4AB441AFD29FFE658AFE94BE0E9FD2E9743778DC58CBD1DD8DC7220A9D04944B032C6FC0DFA46BEE2D47AA5DC569F0945F72E7751EC0DD7F218CED8AEF74AA9A8864147C3A89B5C6217888C86C51C83FB77FB91B2F7C6BC0D2624192F33FA8891D897593FD164F4822077B028627CB568412A4A2E9931C24BAF6F01A5A7A85EC446A0E67002F55367249F74087A7015D2580009DA08CA0789265B4EE073185A0892AEB1BEEDD00265AD397F87AB4ED831E3702A562627584AA7A195CF453F70D56CF201F73D6AC01E934A32432464337A6599C97F7B61F04E198AC75AA77BD9FAD027B1C82FBB1E78DC641859D3CA7C7EF28F1A612AE1F41B9B360C3A96367D0F3B4BBB9E0F5EDFDFDCD2731510DFB728BD4688B62988D79CE39513524935E2A43E68EB7210093111D92C3683A7FAD835D2B2C86A8C173AA67CCFD59934234D5EB190F8AB93E9C1E0DBE4E93003 +20220715092424 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F92A52BAF +20220715100057 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F9547AC47 +20220715100859 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F95DC0013 +20220715102100 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5F96B85E23 +20220715132304 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FA3BD9C93 +20220715133936 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FA4ECF027 +20220715140222 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FA68BEE73 +20220715161822 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB045A9D3 +20220715162253 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB09339CB +20220715175344 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB7156F2B +20220715182025 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FB90A53D7 +20220715190627 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FBC5E2767 +20220715191213 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FBCCA724F +20220715193806 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FBEA4C29B +20220715204457 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FC370204F +20220715212313 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FC63E9CA7 +20220715225401 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FCCC8EC9F +20220715230508 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FCD93025B +20220716003950 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD4674843 +20220716005647 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD59BD53B +20220716005928 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD5CCEB93 +20220716010051 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FD5E69E93 +20220716020432 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FDA8D1BCB +20220716023453 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FDCC2AC1B +20220716034034 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE18492D7 +20220716040249 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE31D1047 +20220716044634 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE64EDBE3 +20220716051650 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE87F8BEB +20220716052859 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FE963564B +20220716055849 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FEB816243 +20220716063757 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FEE5510C7 +20220716071444 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF0F7F9DB +20220716071604 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF10F3AFB +20220716073329 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF251281F +20220716074224 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF2F3BB2B +20220716074605 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF338BF7B +20220716075807 2 6 100 7679 5 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF4157C77 +20220716082904 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF657E773 +20220716083710 2 6 100 7679 2 D29885507D691EF92591A09643ED996F7CBCB7BC2C100AB3FEF5257A5931CC62D6E976C8702F99622C00702F7A97A8DF2C58E6CE1B087955544A6F08E64CC55AE62AB2F2ACA5CCAAC3FB093CC1D0CD964316B4E10C149B72EF468C7D57DC47980B0B4682B79EA3DB224C5E13BA7B8B0CD8C26BD8E884F0A96B77ED42A749A4556C14B417241BFD807B6B985F8474D53AB3002E46E860DA6AF2FC4387C33540FE64DBA835028710E1A8EB05307283DFA15CB67282334BFFF511D4B6284C18620B0F64A87E026EE576D0C201314CB24FE513DDA9AC0747065B315BAEB2D7AC801CE819708A224840C3C2C23F34DAEF1BED28091CB489EBC99E7B89A285ADC47D3DE4DDB71A5EE4184A642FF8E3E1E67536F7534C67D2A196319B597D7A7A4B2B7D852613818A51FF6CE7D1DF0161AD5F06FFD764F0026354A1CB946F03E37C14F7DD98A9F59A7493F2869AAE39AF064F81DEBF3C94A082CCDA26F5C03367BDA1D1975B5E08CD7E91F02D3537EABB4D98B36D7DAD24C7CB36C850148CD911BA89585653F5B582A23C459A78515E3FC5851B08F8EC2E68736BD7488DC5C73FE40A61DC7F4581C95E20E70E7ECB010365B89CD233A8175A4CE862770D5126AB0E606CD8030490E3B1B05EB3F094B8246259D9A9A84434D02A173F37A9FB883844BFBEE307790649463C4EDE0F1F68D9B61C50004E5F38913D160D5AD214A2C1D85E985A288316951FE89FB77890C1BC16B2DE9920803C9BD746373B0D1F42F829083BC4725EA573509AB8F9DAF3BC3309B4B4A29A8A37023A53B7B73B5DD172809329DC7A966953C30A6A0824EEE510657CEC1F93A9C3CD21D58E8B04B4C877AB6D13D575D206D90ED601E9BB8244944A941CFD382806CF5774E6A61502A63AEB74769B80D65D155FC1F5AD9177C81326DC157750D3B8BB75CF52CD21382BE99983F5AD520351166A4B83A7F2BD8D2EFB143492246F2BAF9247839FDCB947E1EB162E2FB8CD4248DEFCD728929684C6F0DF72F25837EC2A7E23064B9FC38590988B79A5FC925B6E7564167CEE374D24FEB1CF59AD5FF37A65BCBAAE9961DFC805E49EDB3DF6001C2EBBC868E9B4A46AB2BF6D9F060D85E965DB7C5D9E5F4DE5677C1A127A26FFE12C57FCA2ED7A950C89B1CAD3C4E5E279C6D197DAC5300051BDF4A05C2FC76E57F3A7362F145C651AFC9AEBB962A3D7D1FAD0DBFAC833B968DE988A4FC799CE55479D89E5F64A2DBE6102926E49661A000A0B0BD49DE7826EEFC0638DE10DB3E68591FFEDA521BE4A6C5447406B293866292CFAB1CE3E68AED693F1D3EB9EE521962ECA88D7D2629FD9DA3E324C131AFB78B5C41831FF5FF6EF1FA3 +20220716120340 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9C6CA376F +20220716142712 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D11411D7 +20220716145403 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D307585F +20220716150439 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D3C1E427 +20220716152458 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D530FD67 +20220716154334 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D680C84B +20220716161140 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D885D85B +20220716162236 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9D954CF4F +20220716171055 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DCC6C8EF +20220716174339 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DF237BE3 +20220716174802 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DF73C52B +20220716175227 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9DFC26653 +20220716181229 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E131151F +20220716182155 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E1D9F2CB +20220716194638 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E7EE6D9F +20220716195641 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9E8A6F4EF +20220716204017 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EBD085BF +20220716212803 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EF3B06BB +20220716213736 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EFE990EB +20220716213807 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9EFF487B3 +20220716213938 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F0105893 +20220716221754 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F2D67283 +20220716223623 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F4287F5F +20220716225952 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F5D27563 +20220716233959 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5F9F8B474DF +20220717013433 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA00EBDEF3 +20220717053018 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA11D62647 +20220717084749 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA200FD4E7 +20220717092719 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA22EFF85F +20220717101211 2 6 100 7679 5 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA26140AA7 +20220717123906 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA3081C463 +20220717124254 2 6 100 7679 2 EA4C603AE36BD71059D57FCCBE1B8044C230D76993BB57E1277B27A6C4A4B08347D6279C073FCF3AAD938D631C2E6E154467895D8B122C872ED09D0C78541A55F8830207EFC2CA1556E6D9E0E78B0312C663061F6B0692FBB22CA020B4CC24E01DA76F8DC12D2BB87459FC747E3ECE875C8AD2879CD41BD91192BDEB4F30701EB53DD437163646BB8CEDCF66068617495CA9D1611A5C9E4D531A3B575745036E3A3D933984464EB3D86C30ABB3219805BA78FDA311A8F734BCCC83463CDC569AFFB0ECED647616BB7BC3C9865E79E2C4E711F2EB4A2DA078AFF66C15BEAEE0B581037715C505BFB0FE9A9FA47121981F8528DFD137FA66D33083E6F4B74BF2C4AAF0754D0E704803F0F16DF0A9FE41E0C237FFB72BCF0E458F009A77A3E096FD6BDB4799B70C9CE864A108B66D34B56DC9F390CAEBFFC15DAD572F8E57D7CAC68ECE12652303221AF1CC9AD239473CA7E14A1B7B9A6EBF827813340F6D1C97032A7A1FEF147A202A274B0C17F9DCA25214180FA619E3201C174D4B0DDA30D4A1F3EF179126EF859526C539E075EB6E91E2E30AC104FBC69D940D5A70225BBDE026CBBF357DC7543BF3F83A7525AB8F96FDEC0464CD4EB3B106984BD1C4F27BF166079C66790F1CA1AFB56A3B780F6927143E9F85687A2A99F77C46806D8E1C190147CF42E2D1D9A70F964A5CC63D813511685F6BEE77E20CD38D58334EFE7EC2F068A26426001A83758DC82E9B0300CC2FAA0999616147B6B2BF93CBE227D8586CF54FCED628C1AD540844FB6E57CC378881FC90FC3989536CA13F097EAD6F0B45356C6A9DA87873793E68AA272D5253CA239515318649B54DEB926AF82E3D9DE7DBBA0962ED73A8233577E7073A303EDFFFA7E94D596CCECA2BC8BA08A5DBE249F45232C3675FBD21A32E9B489C7804E2C406C7B4B071976E8064A91C5E53A5316CBA74A5398A625B8BAAAFA34A225E54AC174ACEEA6135EFDB59FF42774E3E30B1C8D4CDC20F8803AF0743A8CD0343C8A6065D94C0EB262BD8CB2556D1C9639E52087DDF83698A6040619246D3DAD1CCC8F5373E06FA90AFAC990E64E91EF4C0315AF1F1114B61FC7E8198BA27E7519D81842534D19E4EDF1F356D150F389F1F3D4942A68F08A404E551A4387D1D81ACFC1BD8721B228371DF7FFD9153C3E3EE705E950C2BE384CEB19E47F04C7631F67D7AFF302BD1901648855D8E585605823A95AE079C3C278DF3C5FBB5F40D35473544A37DFA2F3A1EA09908340706E655AAB5DC8C54637738A77DAF6777221463D125A2D9DDE153A0BC99A92A4FFEECCB766F012AC74909A66DD6828F23C6B3C45A2AEEE593DECA2A6FA5FA30C8F0E3 +20220717143701 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912221EF5FC3 +20220717153012 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122251C88EB +20220717154944 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91222646A2EB +20220717155622 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912226A76CDB +20220717183729 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122303F69EB +20220717205515 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122387E1CD3 +20220717211522 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912239B0E0C3 +20220717215431 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91223C0BF2F3 +20220717230904 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122407F3053 +20220718023518 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224CC83943 +20220718024030 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224D17A47F +20220718025313 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224DDA8E53 +20220718030104 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91224E4FCCC3 +20220718035055 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122514E0C5B +20220718042416 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225341AD73 +20220718044525 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225482241B +20220718061152 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225999F347 +20220718061417 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912259BDFF6B +20220718064948 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91225BD2B193 +20220718080208 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122602EE1DB +20220718090911 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912264269067 +20220718102418 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912268ABA127 +20220718112555 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91226C611AC7 +20220718120905 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91226EEF51AB +20220718123459 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227079AAF3 +20220718132216 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122734DC097 +20220718151026 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912279BA57CF +20220718151038 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A912279BC79AB +20220718153329 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227B1AC9E3 +20220718153657 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227B5347F3 +20220718164629 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91227F6F51E7 +20220718183946 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122863E85E3 +20220718195516 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91228ACE2663 +20220718212930 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A9122906E4B83 +20220719004619 2 6 100 8191 2 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91229C28A03B +20220719005356 2 6 100 8191 5 F2F7A2BAF50A41FBCCDE554E561409993B1C6E4133229CAC67C79DE5FEC1F9FBEBECCCE838368FBFA93F774AD02E99F65F8B3F56B3047638FE35167D048A951E3A317CED92846B94A639A0B3D5F098B35BDA8C139A8EB185EC3F843A6778FAB4EEC4DD1B20F071BC9E5075F7AEF1531CC8FB12E64D48A478BBC398D69E12066975EC2A96BCC6D155FB0BDA03C4D4E817DCCF320E8F34447A94C64E28B8F84D07C08BDDA1215CC370EF5EB970A75ED4F8ADB47F36B134A3430DAA59FEF55CD4B9786F693B09BC9C3E6F1F745BABBC6F5892BC4E416BDA02BD59DD7C763179B2897CBCAF284E0A2DE08E4E32BB1F66169D83FA0206C7962184A15527C7CA8EF04AF87921933A2B9C614145AFEC715C833924B8C863E7E20A07AA21A72C450BBC446B9B51407D90261CDE342C5D585A0482DB8FFC95B72992ED5D8085B8A3A8335A1423F7715AB83DB4D88BB599B272B8F80BE3C03B0A3C4F7C2F2486984FE13CA8E4510EA33B45BD782D415AEE1C22885D10BB5D16521E8907054ADE2FA85D8284B89849B05696AC17AD99279CB7675E8261EDFD7CF38B0E714E4C126D13363422B9D1097C590DD4DE80A1CF7872B2D8F6951877EEB91DC4C24F47C9949676565244DB3B923EE368EE43720DC186E96B0B6E0908D967CC5D5C055659978668FCCE03F8D1F087A9EF12446BA87FF4345D757F477C1A838B5EF0A9F45C712A8147A71EA88FBDA3B9A7D1BB5A477A4C224F5F067271E13CBCA9AFBC444FA340B55987BA1D2263107F495BAD2001B296C5E9F700A7C9C3C966E507428A8F9D0A55E240F4E30F3E4E6159E464311FFA3DFC418DD8B5F28640E6CA09D8A76207F978038A3E8A14C66A3237F0E099E16965B72573CE9B895622FF7606EE54E51D0D0F470280EDC42C6F6E0E298ACC1F7DCDFE3B1299BE5774C8584C11EDB9A89A7FF3E899CD4A74816EFB2223D520CEEBD82D09F4CE741BBC0E0B0C597C14AE6C29255C8C8A5E89353FC1A7BDBD5E329D4D850DAF65851D23931426FEBBE80217562727A9088697C7EED3153BD9475FB85A4A443A71680C7032ADDD3A03F4B6CEB8FDD75DA0CA9332C6E5CE2AFAE921F98B37FE8A64EBB1AF3F29D1D1DE8F2328F3C8B2D6BB8ABF00DE82CCDAA0156061616163E1AF9B65AB54D07A0D927DA73C9304C214AE7AF00BC57B759DFDD12CC6947423BBFCF51949E19F6C1CD6FB208FF43C8CCC89D132B0EB4A6C66C1F3EBDDAAA553BB328AB0F89C9D0B28A1DBE5D8302A1333120D3BEEF97F0AD01439C4491EE560D05EB79E62D14328BE63C3D8D3B97973FEF44A23F1DCC674A32EC85E2A6837F2782623D09ED658324912498A4AB925BA55CE6AC89FA1C73ADAFC12AB808A25A49F1301EE991316CEE05D92290908DC9C5709CF9912570EB56DE350DB4604C401380B2F1FFC2869409B2C5A91229C9C1FCF +20220719014859 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF869C312A97 +20220719020529 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF869D2642A7 +20220719034913 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86A3588B53 +20220719044402 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86A69DB913 +20220719045215 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86A717D82B +20220719064925 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86AE08C58B +20220719074822 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86B18928B3 +20220719094802 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86B8C09B6B +20220719101343 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86BA4587CB +20220719105007 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86BC6960B7 +20220719115822 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86C07CBCB3 +20220719124950 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86C387963B +20220719151704 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86CC63DE8F +20220719153327 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86CD62A8BF +20220719161053 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86CF9B2757 +20220719173122 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86D470273B +20220719182307 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86D77C4343 +20220719193427 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86DBAD7B57 +20220719202131 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86DE7D76A7 +20220719211624 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86E1C9623F +20220719211743 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86E1DE6F77 +20220719222342 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86E5D38CDF +20220720003008 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86ED5B9A6F +20220720003329 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86ED8EE32F +20220720034214 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86F8B88CAB +20220720041812 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FADD0EF3 +20220720042023 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FAFF7543 +20220720044537 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FC7D0CB7 +20220720045239 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF86FCE7D05B +20220720055829 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF8700DC7CB3 +20220720061526 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF8701E01D2F +20220720071915 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF8705ABB603 +20220720080553 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF870876A9CF +20220720093358 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF870DC82DC7 +20220720094947 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF870EBB9097 +20220720110223 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF871329D297 +20220720112240 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF871467194B +20220720121337 2 6 100 8191 5 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF87176DFD6F +20220720124230 2 6 100 8191 2 C5A088686E2057FDD426A4329908C72093AFD4A412B73B7C03574CCFAA7EBA44BF6CF5AD03B49A0AEF8A18CCAF15B0D7B12DEE66078C6A3CCE94DCA05193912A668B6E247962F8CC51046DC6DAF5AE92C169A8F00D116524762DAA1E9FF3F3270F2831FA8C94010DAD76A0032523EB9A610EBBA3BF3EFE82471449768C5B844277FC90486CBC00B6C0EA93DE6067DF863B5F1E5D5BD9781DEB1C5A111AEF62BD8016C4210CB6CA14C45559266711960B7F7FEF20E96391F59D019973FB9EFEE8C198D70EC2080C69EBCCEFA9CE2D93081A47E916F667AFFE28642A8E36133D03A3058D9E65DC0C13959DDC40CFF31B53768D41369CF05EDA59CAA0643949A1ED78B8D2F748A93F3DCE01A22AB1F23EC4E63F7A97D7863907A401633B92A073F62B56FD341B9E2B1497FB139FC2FEBD1F5EEE3A001D9DE86C6F8EBA8DDC0C0504A7A46409D036BB9534BC293BB4D9E77A9A2D0296528266EB6BD8071695F854C4E35912B78E10B2D9574D9F238E7649F998CCA0F2639068B0895E71F79E84BF631367A9221DA5F0C12191EA1CC93CA0D863269E7D25F65D29BC9D70F30B287849533A99D5DA2B8D1337DFA905E46A8673F45028192B297D52CF62C5137E4F7D824EB166CB37FBC393EF1FCC235DCC5D7A224B3A2CF975ADAEA330413E7B6DE83EF6181CBA7AF33575369AD7FBFAD0A6B7211BC3BD8EC3648AB6421D2A9142E95AA6827ACA734A605B88585BF5B30EEC75823DCA57EF524421EFC354CA2EE5D9123B1883FBDC41A0DB3558536B410089013F051EE93C3ADD61500F1A3A37CB403F5378AC3AC40D0022617442EDDCA56B012C17A0A50F33B3C6A2F8BE955F22800C4DA6D65ADB413E87ADE5351FD20BE2BF281ABF8CC8BB78A6723D2B9CDE699BCCD47FB7EBEC2F2EA46B6060EAC9101A4448D2CC4D0C6EA9A1A78CE6528C39CF879B75EDB0F0F84602A1EC66250F1BEA8BB250BE675BF6EFDBEDEB1B97699A8F248B68506BBD4F968CAB83FC8C3AEED661AD3682A6B38ADCF7FE0C7A257C4BD376A56207EA4E0F89DA41460BAA707C74A6670C5953ECCAF324A79DA05116A0493B16BDE9D12DE376ED0DA9A7B9780BD3096633EF40D52D03C5ECCB24630046AF5270657416BD7B2F45EEA86C3019E91A946132621E6E96BCA9C42609390EEBA2D1CD06C47DB2A2FDEFF2788505AD177A07AE04A6549909FBA711F714B1F76054668E119FA19B4830819C5108EB186F95AD1ECA0D91AA79337EBABA0AA0F84487227E6951F537BA293556D43E16DD77DE63FD9702EA9E6FDAA775B4C96A16D8DD35852A9079ACB398792F6E89D56595B3E9340BA56525F270E2E976FB376E77F02CD8231988125030610AE2FCFA69A8FAD3D98122D0E8CEF28E5AA696EE497C0B8C8299B77480095577B78251DB69997A17F148EEC4E89A323BF747EF871929A88B diff --git a/crypto/openssh/monitor_wrap.c b/crypto/openssh/monitor_wrap.c index b2c85205eb96..8e379a15c6b8 100644 --- a/crypto/openssh/monitor_wrap.c +++ b/crypto/openssh/monitor_wrap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.c,v 1.125 2022/06/15 16:08:25 djm Exp $ */ +/* $OpenBSD: monitor_wrap.c,v 1.126 2023/01/06 02:47:18 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -339,6 +339,7 @@ mm_getpwnamallow(struct ssh *ssh, const char *username) for (i = 0; i < options.num_log_verbose; i++) log_verbose_add(options.log_verbose[i]); process_permitopen(ssh, &options); + process_channel_timeouts(ssh, &options); free(newopts); sshbuf_free(m); diff --git a/crypto/openssh/mux.c b/crypto/openssh/mux.c index 3cb3876148aa..e7580ac742ab 100644 --- a/crypto/openssh/mux.c +++ b/crypto/openssh/mux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mux.c,v 1.94 2022/06/03 04:30:47 djm Exp $ */ +/* $OpenBSD: mux.c,v 1.95 2023/01/06 02:39:59 djm Exp $ */ /* * Copyright (c) 2002-2008 Damien Miller * @@ -188,7 +188,7 @@ static const struct { /* Cleanup callback fired on closure of mux client _session_ channel */ /* ARGSUSED */ static void -mux_master_session_cleanup_cb(struct ssh *ssh, int cid, void *unused) +mux_master_session_cleanup_cb(struct ssh *ssh, int cid, int force, void *unused) { Channel *cc, *c = channel_by_id(ssh, cid); @@ -210,7 +210,7 @@ mux_master_session_cleanup_cb(struct ssh *ssh, int cid, void *unused) /* Cleanup callback fired on closure of mux client _control_ channel */ /* ARGSUSED */ static void -mux_master_control_cleanup_cb(struct ssh *ssh, int cid, void *unused) +mux_master_control_cleanup_cb(struct ssh *ssh, int cid, int force, void *unused) { Channel *sc, *c = channel_by_id(ssh, cid); diff --git a/crypto/openssh/openbsd-compat/arc4random.c b/crypto/openssh/openbsd-compat/arc4random.c index 02f15f9c3bfa..ffd33734db56 100644 --- a/crypto/openssh/openbsd-compat/arc4random.c +++ b/crypto/openssh/openbsd-compat/arc4random.c @@ -44,13 +44,15 @@ #ifndef HAVE_ARC4RANDOM /* - * If we're not using a native getentropy, use the one from bsd-getentropy.c - * under a different name, so that if in future these binaries are run on - * a system that has a native getentropy OpenSSL cannot call the wrong one. + * Always use the getentropy implementation from bsd-getentropy.c, which + * will call a native getentropy if available then fall back as required. + * We use a different name so that OpenSSL cannot call the wrong getentropy. */ -#ifndef HAVE_GETENTROPY -# define getentropy(x, y) (_ssh_compat_getentropy((x), (y))) +int _ssh_compat_getentropy(void *, size_t); +#ifdef getentropy +# undef getentropy #endif +#define getentropy(x, y) (_ssh_compat_getentropy((x), (y))) #include "log.h" diff --git a/crypto/openssh/openbsd-compat/arc4random.h b/crypto/openssh/openbsd-compat/arc4random.h index 2b57611f060c..5af3a4492a82 100644 --- a/crypto/openssh/openbsd-compat/arc4random.h +++ b/crypto/openssh/openbsd-compat/arc4random.h @@ -63,6 +63,7 @@ _rs_forkdetect(void) static inline int _rs_allocate(struct _rs **rsp, struct _rsx **rsxp) { +#if defined(MAP_ANON) && defined(MAP_PRIVATE) if ((*rsp = mmap(NULL, sizeof(**rsp), PROT_READ|PROT_WRITE, MAP_ANON|MAP_PRIVATE, -1, 0)) == MAP_FAILED) return (-1); @@ -73,6 +74,15 @@ _rs_allocate(struct _rs **rsp, struct _rsx **rsxp) *rsp = NULL; return (-1); } +#else + if ((*rsp = calloc(1, sizeof(**rsp))) == NULL) + return (-1); + if ((*rsxp = calloc(1, sizeof(**rsxp))) == NULL) { + free(*rsp); + *rsp = NULL; + return (-1); + } +#endif _ARC4_ATFORK(_rs_forkhandler); return (0); diff --git a/crypto/openssh/openbsd-compat/bsd-getentropy.c b/crypto/openssh/openbsd-compat/bsd-getentropy.c index bd4b6695acc6..554dfad70524 100644 --- a/crypto/openssh/openbsd-compat/bsd-getentropy.c +++ b/crypto/openssh/openbsd-compat/bsd-getentropy.c @@ -18,8 +18,6 @@ #include "includes.h" -#ifndef HAVE_GETENTROPY - #ifndef SSH_RANDOM_DEV # define SSH_RANDOM_DEV "/dev/urandom" #endif /* SSH_RANDOM_DEV */ @@ -52,6 +50,10 @@ _ssh_compat_getentropy(void *s, size_t len) ssize_t r; size_t o = 0; +#ifdef HAVE_GETENTROPY + if (r = getentropy(s, len) == 0) + return 0; +#endif /* HAVE_GETENTROPY */ #ifdef HAVE_GETRANDOM if ((r = getrandom(s, len, 0)) > 0 && (size_t)r == len) return 0; @@ -79,4 +81,3 @@ _ssh_compat_getentropy(void *s, size_t len) #endif /* WITH_OPENSSL */ return 0; } -#endif /* WITH_GETENTROPY */ diff --git a/crypto/openssh/openbsd-compat/bsd-poll.c b/crypto/openssh/openbsd-compat/bsd-poll.c index 9a9794f5863b..967f947b21fd 100644 --- a/crypto/openssh/openbsd-compat/bsd-poll.c +++ b/crypto/openssh/openbsd-compat/bsd-poll.c @@ -47,9 +47,8 @@ ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmoutp, const sigset_t *sigmask) { nfds_t i; - int saved_errno, ret, fd, maxfd = 0; - fd_set *readfds = NULL, *writefds = NULL, *exceptfds = NULL; - size_t nmemb; + int ret, fd, maxfd = 0; + fd_set readfds, writefds, exceptfds; for (i = 0; i < nfds; i++) { fd = fds[i].fd; @@ -60,30 +59,23 @@ ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmoutp, maxfd = MAX(maxfd, fd); } - nmemb = howmany(maxfd + 1 , NFDBITS); - if ((readfds = calloc(nmemb, sizeof(fd_mask))) == NULL || - (writefds = calloc(nmemb, sizeof(fd_mask))) == NULL || - (exceptfds = calloc(nmemb, sizeof(fd_mask))) == NULL) { - saved_errno = ENOMEM; - ret = -1; - goto out; - } - /* populate event bit vectors for the events we're interested in */ + FD_ZERO(&readfds); + FD_ZERO(&writefds); + FD_ZERO(&exceptfds); for (i = 0; i < nfds; i++) { fd = fds[i].fd; if (fd == -1) continue; if (fds[i].events & POLLIN) - FD_SET(fd, readfds); + FD_SET(fd, &readfds); if (fds[i].events & POLLOUT) - FD_SET(fd, writefds); + FD_SET(fd, &writefds); if (fds[i].events & POLLPRI) - FD_SET(fd, exceptfds); + FD_SET(fd, &exceptfds); } - ret = pselect(maxfd + 1, readfds, writefds, exceptfds, tmoutp, sigmask); - saved_errno = errno; + ret = pselect(maxfd + 1, &readfds, &writefds, &exceptfds, tmoutp, sigmask); /* scan through select results and set poll() flags */ for (i = 0; i < nfds; i++) { @@ -91,20 +83,14 @@ ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmoutp, fds[i].revents = 0; if (fd == -1) continue; - if ((fds[i].events & POLLIN) && FD_ISSET(fd, readfds)) + if ((fds[i].events & POLLIN) && FD_ISSET(fd, &readfds)) fds[i].revents |= POLLIN; - if ((fds[i].events & POLLOUT) && FD_ISSET(fd, writefds)) + if ((fds[i].events & POLLOUT) && FD_ISSET(fd, &writefds)) fds[i].revents |= POLLOUT; - if ((fds[i].events & POLLPRI) && FD_ISSET(fd, exceptfds)) + if ((fds[i].events & POLLPRI) && FD_ISSET(fd, &exceptfds)) fds[i].revents |= POLLPRI; } -out: - free(readfds); - free(writefds); - free(exceptfds); - if (ret == -1) - errno = saved_errno; return ret; } #endif /* !HAVE_PPOLL || BROKEN_POLL */ diff --git a/crypto/openssh/openbsd-compat/bsd-poll.h b/crypto/openssh/openbsd-compat/bsd-poll.h index 586647ee1aff..ae865a6e2622 100644 --- a/crypto/openssh/openbsd-compat/bsd-poll.h +++ b/crypto/openssh/openbsd-compat/bsd-poll.h @@ -44,12 +44,25 @@ typedef struct pollfd { short revents; } pollfd_t; -#define POLLIN 0x0001 -#define POLLPRI 0x0002 -#define POLLOUT 0x0004 -#define POLLERR 0x0008 -#define POLLHUP 0x0010 -#define POLLNVAL 0x0020 +#ifndef POLLIN +# define POLLIN 0x0001 +#endif +#ifndef POLLPRI +# define POLLPRI 0x0002 +#endif +#ifndef POLLOUT +# define POLLOUT 0x0004 +#endif +#ifndef POLLERR +# define POLLERR 0x0008 +#endif +#ifndef POLLHUP +# define POLLHUP 0x0010 +#endif +#ifndef POLLNVAL +# define POLLNVAL 0x0020 +#endif + #if 0 /* the following are currently not implemented */ #define POLLRDNORM 0x0040 diff --git a/crypto/openssh/openbsd-compat/bsd-timegm.c b/crypto/openssh/openbsd-compat/bsd-timegm.c index 14f6bbf14dad..246724bd6236 100644 --- a/crypto/openssh/openbsd-compat/bsd-timegm.c +++ b/crypto/openssh/openbsd-compat/bsd-timegm.c @@ -1,34 +1,34 @@ /* * Copyright (c) 1997 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden). - * All rights reserved. + * (Royal Institute of Technology, Stockholm, Sweden). + * All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. * - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ /* @@ -64,10 +64,10 @@ time_t timegm(struct tm *tm) /* invalid tm structure */ return 0; } - + for (i = 70; i < tm->tm_year; ++i) res += is_leap(i) ? 366 : 365; - + for (i = 0; i < tm->tm_mon; ++i) res += ndays[is_leap(tm->tm_year)][i]; res += tm->tm_mday - 1; diff --git a/crypto/openssh/openbsd-compat/getrrsetbyname.c b/crypto/openssh/openbsd-compat/getrrsetbyname.c index cc1f8ae519eb..73de5e9482b8 100644 --- a/crypto/openssh/openbsd-compat/getrrsetbyname.c +++ b/crypto/openssh/openbsd-compat/getrrsetbyname.c @@ -116,8 +116,14 @@ struct __res_state _res; #if !defined(HAVE__GETSHORT) || !defined(HAVE__GETLONG) || \ !defined(HAVE_DECL__GETSHORT) || HAVE_DECL__GETSHORT == 0 || \ !defined(HAVE_DECL__GETLONG) || HAVE_DECL__GETLONG == 0 -#define _getshort(x) (_ssh_compat_getshort(x)) -#define _getlong(x) (_ssh_compat_getlong(x)) +# ifdef _getshort +# undef _getshort +# endif +# ifdef _getlong +# undef _getlong +# endif +# define _getshort(x) (_ssh_compat_getshort(x)) +# define _getlong(x) (_ssh_compat_getlong(x)) /* * Routines to insert/extract short/long's. */ @@ -138,7 +144,7 @@ _getlong(const u_char *msgp) GETLONG(u, msgp); return (u); } -#endif +#endif /* missing _getshort/_getlong */ /* ************** */ diff --git a/crypto/openssh/openbsd-compat/openbsd-compat.h b/crypto/openssh/openbsd-compat/openbsd-compat.h index 4af207cdd40f..895ecf9ea111 100644 --- a/crypto/openssh/openbsd-compat/openbsd-compat.h +++ b/crypto/openssh/openbsd-compat/openbsd-compat.h @@ -69,10 +69,6 @@ void closefrom(int); int ftruncate(int filedes, off_t length); #endif -#if defined(HAVE_DECL_GETENTROPY) && HAVE_DECL_GETENTROPY == 0 -int _ssh_compat_getentropy(void *, size_t); -#endif - #ifndef HAVE_GETLINE #include ssize_t getline(char **, size_t *, FILE *); @@ -343,6 +339,7 @@ struct tm *localtime_r(const time_t *, struct tm *); #endif #ifndef HAVE_TIMEGM +#include time_t timegm(struct tm *); #endif diff --git a/crypto/openssh/openbsd-compat/regress/Makefile.in b/crypto/openssh/openbsd-compat/regress/Makefile.in index dd8cdc4b7e7a..6fabca849e66 100644 --- a/crypto/openssh/openbsd-compat/regress/Makefile.in +++ b/crypto/openssh/openbsd-compat/regress/Makefile.in @@ -10,7 +10,8 @@ CFLAGS=@CFLAGS@ CPPFLAGS=-I. -I.. -I../.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../.. @CPPFLAGS@ @DEFS@ EXEEXT=@EXEEXT@ LIBCOMPAT=../libopenbsd-compat.a -LIBS=@LIBS@ +LIBSSH=../../libssh.a +LIBS=@LIBS@ @CHANNELLIBS@ LDFLAGS=@LDFLAGS@ $(LIBCOMPAT) TESTPROGS=closefromtest$(EXEEXT) snprintftest$(EXEEXT) strduptest$(EXEEXT) \ @@ -18,8 +19,8 @@ TESTPROGS=closefromtest$(EXEEXT) snprintftest$(EXEEXT) strduptest$(EXEEXT) \ all: t-exec ${OTHERTESTS} -%$(EXEEXT): %.c $(LIBCOMPAT) - $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< $(LIBCOMPAT) $(LIBS) +.c: $(LIBCOMPAT) $(LIBSSH) + $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< $(LIBCOMPAT) $(LIBSSH) $(LIBS) t-exec: $(TESTPROGS) @echo running compat regress tests diff --git a/crypto/openssh/openbsd-compat/regress/opensslvertest.c b/crypto/openssh/openbsd-compat/regress/opensslvertest.c index 43825b24c3eb..d50066609612 100644 --- a/crypto/openssh/openbsd-compat/regress/opensslvertest.c +++ b/crypto/openssh/openbsd-compat/regress/opensslvertest.c @@ -56,6 +56,7 @@ fail(long hver, long lver, int result) int main(void) { +#ifdef WITH_OPENSSL unsigned int i; int res; long hver, lver; @@ -67,5 +68,6 @@ main(void) if (ssh_compatible_openssl(hver, lver) != res) fail(hver, lver, res); } +#endif exit(0); } diff --git a/crypto/openssh/readconf.c b/crypto/openssh/readconf.c index 6562c2a73db9..bbf03c8d953f 100644 --- a/crypto/openssh/readconf.c +++ b/crypto/openssh/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.371 2023/01/02 07:03:30 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.372 2023/01/13 02:58:20 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -175,6 +175,7 @@ typedef enum { oFingerprintHash, oUpdateHostkeys, oHostbasedAcceptedAlgorithms, oPubkeyAcceptedAlgorithms, oCASignatureAlgorithms, oProxyJump, oSecurityKeyProvider, oKnownHostsCommand, oRequiredRSASize, + oEnableEscapeCommandline, oIgnore, oIgnoredUnknownOption, oDeprecated, oUnsupported } OpCodes; @@ -321,6 +322,7 @@ static struct { { "securitykeyprovider", oSecurityKeyProvider }, { "knownhostscommand", oKnownHostsCommand }, { "requiredrsasize", oRequiredRSASize }, + { "enableescapecommandline", oEnableEscapeCommandline }, { "hpndisabled", oDeprecated }, { "hpnbuffersize", oDeprecated }, @@ -2189,6 +2191,10 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, *charptr = xstrdup(arg); break; + case oEnableEscapeCommandline: + intptr = &options->enable_escape_commandline; + goto parse_flag; + case oRequiredRSASize: intptr = &options->required_rsa_size; goto parse_int; @@ -2329,6 +2335,7 @@ void initialize_options(Options * options) { memset(options, 'X', sizeof(*options)); + options->host_arg = NULL; options->forward_agent = -1; options->forward_agent_sock_path = NULL; options->forward_x11 = -1; @@ -2441,6 +2448,7 @@ initialize_options(Options * options) options->pubkey_accepted_algos = NULL; options->known_hosts_command = NULL; options->required_rsa_size = -1; + options->enable_escape_commandline = -1; } /* @@ -2645,6 +2653,8 @@ fill_default_options(Options * options) #endif if (options->required_rsa_size == -1) options->required_rsa_size = SSH_RSA_MINIMUM_MODULUS_SIZE; + if (options->enable_escape_commandline == -1) + options->enable_escape_commandline = 0; /* Expand KEX name lists */ all_cipher = cipher_alg_list(',', 0); @@ -3283,6 +3293,7 @@ dump_client_config(Options *o, const char *host) free(all_key); /* Most interesting options first: user, host, port */ + dump_cfg_string(oHost, o->host_arg); dump_cfg_string(oUser, o->user); dump_cfg_string(oHostname, host); dump_cfg_int(oPort, o->port); @@ -3326,6 +3337,7 @@ dump_client_config(Options *o, const char *host) dump_cfg_fmtint(oVerifyHostKeyDNS, o->verify_host_key_dns); dump_cfg_fmtint(oVisualHostKey, o->visual_host_key); dump_cfg_fmtint(oUpdateHostkeys, o->update_hostkeys); + dump_cfg_fmtint(oEnableEscapeCommandline, o->enable_escape_commandline); /* Integer options */ dump_cfg_int(oCanonicalizeMaxDots, o->canonicalize_max_dots); diff --git a/crypto/openssh/readconf.h b/crypto/openssh/readconf.h index ffb5ec4f2262..2ce1b4c332e5 100644 --- a/crypto/openssh/readconf.h +++ b/crypto/openssh/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.148 2022/09/17 10:33:18 djm Exp $ */ +/* $OpenBSD: readconf.h,v 1.150 2023/01/13 02:58:20 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -28,6 +28,7 @@ struct allowed_cname { }; typedef struct { + char *host_arg; /* Host arg as specified on command line. */ int forward_agent; /* Forward authentication agent. */ char *forward_agent_sock_path; /* Optional path of the agent. */ int forward_x11; /* Forward X11 display. */ @@ -177,6 +178,7 @@ typedef struct { char *known_hosts_command; int required_rsa_size; /* minimum size of RSA keys */ + int enable_escape_commandline; /* ~C commandline */ char *ignored_unknown; /* Pattern list of unknown tokens to ignore */ } Options; diff --git a/crypto/openssh/regress/Makefile b/crypto/openssh/regress/Makefile index 0554c1ac9bc7..bf1d057aad33 100644 --- a/crypto/openssh/regress/Makefile +++ b/crypto/openssh/regress/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.120 2022/01/06 21:46:56 dtucker Exp $ +# $OpenBSD: Makefile,v 1.122 2023/01/06 08:07:39 djm Exp $ tests: prep file-tests t-exec unit @@ -101,7 +101,9 @@ LTESTS= connect \ knownhosts \ knownhosts-command \ agent-restrict \ - hostbased + hostbased \ + channel-timeout \ + connection-timeout INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers #INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp @@ -129,6 +131,7 @@ CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ 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-agent.log ssh-add.log slow-sftp-server.sh \ ssh-rsa_oldfmt knownhosts_command \ ssh_config ssh_config.* ssh_proxy ssh_proxy_bak \ ssh_proxy_* sshd.log sshd_config sshd_config.* \ diff --git a/crypto/openssh/regress/agent-getpeereid.sh b/crypto/openssh/regress/agent-getpeereid.sh index b84471a78558..79e9c7d9e1c0 100644 --- a/crypto/openssh/regress/agent-getpeereid.sh +++ b/crypto/openssh/regress/agent-getpeereid.sh @@ -6,6 +6,8 @@ tid="disallow agent attach from other uid" UNPRIV=nobody ASOCK=${OBJ}/agent SSH_AUTH_SOCK=/nonexistent +>$OBJ/ssh-agent.log +>$OBJ/ssh-add.log if config_defined HAVE_GETPEEREID HAVE_GETPEERUCRED HAVE_SO_PEERCRED ; then : @@ -25,14 +27,14 @@ case "x$SUDO" in esac trace "start agent" -eval `${SSHAGENT} ${EXTRA_AGENT_ARGS} -s -a ${ASOCK}` > /dev/null +eval `${SSHAGENT} ${EXTRA_AGENT_ARGS} -s -a ${ASOCK}` >$OBJ/ssh-agent.log 2>&1 r=$? if [ $r -ne 0 ]; then fail "could not start ssh-agent: exit code $r" else chmod 644 ${SSH_AUTH_SOCK} - ${SSHADD} -l > /dev/null 2>&1 + ${SSHADD} -vvv -l >>$OBJ/ssh-add.log 2>&1 r=$? if [ $r -ne 1 ]; then fail "ssh-add failed with $r != 1" @@ -42,15 +44,16 @@ else ${SUDO} -n -u ${UNPRIV} ${SSHADD} -l 2>/dev/null else # sudo - < /dev/null ${SUDO} -S -u ${UNPRIV} ${SSHADD} -l 2>/dev/null + < /dev/null ${SUDO} -S -u ${UNPRIV} ${SSHADD} -vvv -l >>$OBJ/ssh-add.log 2>&1 fi r=$? if [ $r -lt 2 ]; then fail "ssh-add did not fail for ${UNPRIV}: $r < 2" + cat $OBJ/ssh-add.log fi trace "kill agent" - ${SSHAGENT} -k > /dev/null + ${SSHAGENT} -vvv -k >>$OBJ/ssh-agent.log 2>&1 fi rm -f ${OBJ}/agent diff --git a/crypto/openssh/regress/agent-ptrace.sh b/crypto/openssh/regress/agent-ptrace.sh index feef52416f7c..df55b34a5b88 100644 --- a/crypto/openssh/regress/agent-ptrace.sh +++ b/crypto/openssh/regress/agent-ptrace.sh @@ -38,6 +38,7 @@ else $SUDO chown 0 ${SSHAGENT} $SUDO chgrp 0 ${SSHAGENT} $SUDO chmod 2755 ${SSHAGENT} + trap "$SUDO chown ${USER} ${SSHAGENT}; $SUDO chmod 755 ${SSHAGENT}" 0 fi trace "start agent" diff --git a/crypto/openssh/regress/channel-timeout.sh b/crypto/openssh/regress/channel-timeout.sh new file mode 100644 index 000000000000..1c42e832ae2c --- /dev/null +++ b/crypto/openssh/regress/channel-timeout.sh @@ -0,0 +1,91 @@ +# $OpenBSD: channel-timeout.sh,v 1.1 2023/01/06 08:07:39 djm Exp $ +# Placed in the Public Domain. + +tid="channel timeout" + +# XXX not comprehensive. Still need -R -L agent X11 forwarding + interactive + +rm -f $OBJ/sshd_proxy.orig +cp $OBJ/sshd_proxy $OBJ/sshd_proxy.orig + +verbose "no timeout" +${SSH} -F $OBJ/ssh_proxy somehost "sleep 5 ; exit 23" +r=$? +if [ $r -ne 23 ]; then + fail "ssh failed" +fi + +verbose "command timeout" +(cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:command=1") \ + > $OBJ/sshd_proxy +${SSH} -F $OBJ/ssh_proxy somehost "sleep 5 ; exit 23" +r=$? +if [ $r -ne 255 ]; then + fail "ssh returned unexpected error code $r" +fi + +verbose "command wildcard timeout" +(cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:*=1") \ + > $OBJ/sshd_proxy +${SSH} -F $OBJ/ssh_proxy somehost "sleep 5 ; exit 23" +r=$? +if [ $r -ne 255 ]; then + fail "ssh returned unexpected error code $r" +fi + +verbose "command irrelevant timeout" +(cat $OBJ/sshd_proxy.orig ; echo "ChannelTimeout session:shell=1") \ + > $OBJ/sshd_proxy +${SSH} -F $OBJ/ssh_proxy somehost "sleep 5 ; exit 23" +r=$? +if [ $r -ne 23 ]; then + fail "ssh failed" +fi + +# Set up a "slow sftp server" that sleeps before executing the real one. +cat > $OBJ/slow-sftp-server.sh << _EOF +#!/bin/sh + +sleep 5 +$SFTPSERVER +_EOF +chmod a+x $OBJ/slow-sftp-server.sh + +verbose "sftp no timeout" +(grep -vi subsystem.*sftp $OBJ/sshd_proxy.orig; + echo "Subsystem sftp $OBJ/slow-sftp-server.sh" ) > $OBJ/sshd_proxy + +rm -f ${COPY} +$SFTP -qS $SSH -F $OBJ/ssh_proxy somehost:$DATA $COPY +r=$? +if [ $r -ne 0 ]; then + fail "sftp failed" +fi +cmp $DATA $COPY || fail "corrupted copy" + +verbose "sftp timeout" +(grep -vi subsystem.*sftp $OBJ/sshd_proxy.orig; + echo "ChannelTimeout session:subsystem:sftp=1" ; + echo "Subsystem sftp $OBJ/slow-sftp-server.sh" ) > $OBJ/sshd_proxy + +rm -f ${COPY} +$SFTP -qS $SSH -F $OBJ/ssh_proxy somehost:$DATA $COPY +r=$? +if [ $r -eq 0 ]; then + fail "sftp succeeded unexpectedly" +fi +test -f $COPY && cmp $DATA $COPY && fail "intact copy" + +verbose "sftp irrelevant timeout" +(grep -vi subsystem.*sftp $OBJ/sshd_proxy.orig; + echo "ChannelTimeout session:subsystem:command=1" ; + echo "Subsystem sftp $OBJ/slow-sftp-server.sh" ) > $OBJ/sshd_proxy + +rm -f ${COPY} +$SFTP -qS $SSH -F $OBJ/ssh_proxy somehost:$DATA $COPY +r=$? +if [ $r -ne 0 ]; then + fail "sftp failed" +fi +cmp $DATA $COPY || fail "corrupted copy" + diff --git a/crypto/openssh/regress/connection-timeout.sh b/crypto/openssh/regress/connection-timeout.sh new file mode 100644 index 000000000000..c77abb38d8d3 --- /dev/null +++ b/crypto/openssh/regress/connection-timeout.sh @@ -0,0 +1,87 @@ +# $OpenBSD: connection-timeout.sh,v 1.2 2023/01/17 10:15:10 djm Exp $ +# Placed in the Public Domain. + +tid="unused connection timeout" +if config_defined DISABLE_FD_PASSING ; then + skip "not supported on this platform" +fi + +CTL=$OBJ/ctl-sock +cp $OBJ/sshd_proxy $OBJ/sshd_proxy.orig + +check_ssh() { + test -S $CTL || return 1 + if ! ${REAL_SSH} -qF$OBJ/ssh_proxy -O check \ + -oControlPath=$CTL somehost >/dev/null 2>&1 ; then + return 1 + fi + return 0 +} + +start_ssh() { + trace "start ssh" + ${SSH} -nNfF $OBJ/ssh_proxy "$@" -oExitOnForwardFailure=yes \ + -oControlMaster=yes -oControlPath=$CTL somehost + r=$? + test $r -eq 0 || fatal "failed to start ssh $r" + check_ssh || fatal "ssh process unresponsive" +} + +stop_ssh() { + test -S $CTL || return + check_ssh || fatal "ssh process is unresponsive: cannot close" + if ! ${REAL_SSH} -qF$OBJ/ssh_proxy -O exit \ + -oControlPath=$CTL >/dev/null somehost >/dev/null ; then + fatal "ssh process did not respond to close" + fi + n=0 + while [ "$n" -lt 20 ] ; do + test -S $CTL || break + sleep 1 + n=`expr $n + 1` + done + if test -S $CTL ; then + fatal "ssh process did not exit" + fi +} + +trap "stop_ssh" EXIT + +verbose "no timeout" +start_ssh +sleep 5 +check_ssh || fatal "ssh unexpectedly missing" +stop_ssh + +(cat $OBJ/sshd_proxy.orig ; echo "UnusedConnectionTimeout 2") > $OBJ/sshd_proxy + +verbose "timeout" +start_ssh +sleep 8 +check_ssh && fail "ssh unexpectedly present" +stop_ssh + +verbose "session inhibits timeout" +rm -f $OBJ/copy.1 +start_ssh +${REAL_SSH} -qoControlPath=$CTL -oControlMaster=no -Fnone somehost \ + "sleep 8; touch $OBJ/copy.1" & +check_ssh || fail "ssh unexpectedly missing" +wait +test -f $OBJ/copy.1 || fail "missing result file" + +verbose "timeout after session" +# Session should still be running from previous +sleep 8 +check_ssh && fail "ssh unexpectedly present" +stop_ssh + +LPORT=`expr $PORT + 1` +RPORT=`expr $LPORT + 1` +DPORT=`expr $RPORT + 1` +RDPORT=`expr $DPORT + 1` +verbose "timeout with listeners" +start_ssh -L$LPORT:127.0.0.1:$PORT -R$RPORT:127.0.0.1:$PORT -D$DPORT -R$RDPORT +sleep 8 +check_ssh && fail "ssh unexpectedly present" +stop_ssh diff --git a/crypto/openssh/regress/dynamic-forward.sh b/crypto/openssh/regress/dynamic-forward.sh index 84f8ee19280a..5a4aa6d8e9f7 100644 --- a/crypto/openssh/regress/dynamic-forward.sh +++ b/crypto/openssh/regress/dynamic-forward.sh @@ -1,61 +1,110 @@ -# $OpenBSD: dynamic-forward.sh,v 1.13 2017/09/21 19:18:12 markus Exp $ +# $OpenBSD: dynamic-forward.sh,v 1.15 2023/01/06 08:50:33 dtucker Exp $ # Placed in the Public Domain. tid="dynamic forwarding" -FWDPORT=`expr $PORT + 1` - -if have_prog nc && nc -h 2>&1 | grep "proxy address" >/dev/null; then - proxycmd="nc -x 127.0.0.1:$FWDPORT -X" -elif have_prog connect; then - proxycmd="connect -S 127.0.0.1:$FWDPORT -" -else - echo "skipped (no suitable ProxyCommand found)" - exit 0 +# This is a reasonable proxy for IPv6 support. +if ! config_defined HAVE_STRUCT_IN6_ADDR ; then + SKIP_IPV6=yes fi + +FWDPORT=`expr $PORT + 1` +make_tmpdir +CTL=${SSH_REGRESS_TMP}/ctl-sock +cp $OBJ/ssh_config $OBJ/ssh_config.orig +proxycmd="$OBJ/netcat -x 127.0.0.1:$FWDPORT -X" trace "will use ProxyCommand $proxycmd" -start_sshd - -for d in D R; do +start_ssh() { + direction="$1" + arg="$2" n=0 error="1" - trace "start dynamic forwarding, fork to background" - - while [ "$error" -ne 0 -a "$n" -lt 3 ]; do - n=`expr $n + 1` - ${SSH} -F $OBJ/ssh_config -f -$d $FWDPORT -q \ - -oExitOnForwardFailure=yes somehost exec sh -c \ - \'"echo \$\$ > $OBJ/remote_pid; exec sleep 444"\' - error=$? - if [ "$error" -ne 0 ]; then - trace "forward failed attempt $n err $error" - sleep $n - fi - done - if [ "$error" -ne 0 ]; then - fatal "failed to start dynamic forwarding" + trace "start dynamic -$direction forwarding, fork to background" + (cat $OBJ/ssh_config.orig ; echo "$arg") > $OBJ/ssh_config + ${REAL_SSH} -vvvnNfF $OBJ/ssh_config -E$TEST_SSH_LOGFILE \ + -$direction $FWDPORT -oExitOnForwardFailure=yes \ + -oControlMaster=yes -oControlPath=$CTL somehost + r=$? + test $r -eq 0 || fatal "failed to start dynamic forwarding $r" + if ! ${REAL_SSH} -qF$OBJ/ssh_config -O check \ + -oControlPath=$CTL somehost >/dev/null 2>&1 ; then + fatal "forwarding ssh process unresponsive" fi +} +stop_ssh() { + test -S $CTL || return + if ! ${REAL_SSH} -qF$OBJ/ssh_config -O exit \ + -oControlPath=$CTL >/dev/null somehost >/dev/null ; then + fatal "forwarding ssh process did not respond to close" + fi + n=0 + while [ "$n" -lt 20 ] ; do + test -S $CTL || break + sleep 1 + n=`expr $n + 1` + done + if test -S $CTL ; then + fatal "forwarding ssh process did not exit" + fi +} + +check_socks() { + direction=$1 + expect_success=$2 for s in 4 5; do for h in 127.0.0.1 localhost; do - trace "testing ssh socks version $s host $h (-$d)" - ${SSH} -F $OBJ/ssh_config \ - -o "ProxyCommand ${proxycmd}${s} $h $PORT" \ + trace "testing ssh socks version $s host $h (-$direction)" + ${REAL_SSH} -q -F $OBJ/ssh_config \ + -o "ProxyCommand ${proxycmd}${s} $h $PORT 2>/dev/null" \ somehost cat ${DATA} > ${COPY} - test -f ${COPY} || fail "failed copy ${DATA}" - cmp ${DATA} ${COPY} || fail "corrupted copy of ${DATA}" + r=$? + if [ "x$expect_success" = "xY" ] ; then + if [ $r -ne 0 ] ; then + fail "ssh failed with exit status $r" + fi + test -f ${COPY} || fail "failed copy ${DATA}" + cmp ${DATA} ${COPY} || fail "corrupted copy of ${DATA}" + elif [ $r -eq 0 ] ; then + fail "ssh unexpectedly succeeded" + fi done done +} - if [ -f $OBJ/remote_pid ]; then - remote=`cat $OBJ/remote_pid` - trace "terminate remote shell, pid $remote" - if [ $remote -gt 1 ]; then - kill -HUP $remote - fi - else - fail "no pid file: $OBJ/remote_pid" - fi +start_sshd +trap "stop_ssh" EXIT +for d in D R; do + verbose "test -$d forwarding" + start_ssh $d + check_socks $d Y + stop_ssh + test "x$d" = "xR" || continue + + # Test PermitRemoteOpen + verbose "PermitRemoteOpen=any" + start_ssh $d PermitRemoteOpen=any + check_socks $d Y + stop_ssh + + verbose "PermitRemoteOpen=none" + start_ssh $d PermitRemoteOpen=none + check_socks $d N + stop_ssh + + verbose "PermitRemoteOpen=explicit" + permit="127.0.0.1:$PORT [::1]:$PORT localhost:$PORT" + test -z "$SKIP_IPV6" || permit="127.0.0.1:$PORT localhost:$PORT" + start_ssh $d PermitRemoteOpen="$permit" + check_socks $d Y + stop_ssh + + verbose "PermitRemoteOpen=disallowed" + permit="127.0.0.1:1 [::1]:1 localhost:1" + test -z "$SKIP_IPV6" || permit="127.0.0.1:1 localhost:1" + start_ssh $d PermitRemoteOpen="$permit" + check_socks $d N + stop_ssh done diff --git a/crypto/openssh/regress/hostbased.sh b/crypto/openssh/regress/hostbased.sh index 04a1c1a2da45..eb9cf2727d33 100644 --- a/crypto/openssh/regress/hostbased.sh +++ b/crypto/openssh/regress/hostbased.sh @@ -1,4 +1,4 @@ -# $OpenBSD: hostbased.sh,v 1.3 2022/01/08 07:55:26 dtucker Exp $ +# $OpenBSD: hostbased.sh,v 1.4 2022/12/07 11:45:43 dtucker Exp $ # Placed in the Public Domain. # This test requires external setup and thus is skipped unless @@ -8,7 +8,7 @@ # - ssh-keysign must be installed and setuid. # - "EnableSSHKeysign yes" must be in the system ssh_config. # - the system's own real FQDN the system-wide shosts.equiv. -# - the system's real public key fingerprints must me in global ssh_known_hosts. +# - the system's real public key fingerprints must be in global ssh_known_hosts. # tid="hostbased" diff --git a/crypto/openssh/regress/krl.sh b/crypto/openssh/regress/krl.sh index c381225ed7cd..d560d61e8ce1 100644 --- a/crypto/openssh/regress/krl.sh +++ b/crypto/openssh/regress/krl.sh @@ -1,4 +1,4 @@ -# $OpenBSD: krl.sh,v 1.11 2019/12/16 02:39:05 djm Exp $ +# $OpenBSD: krl.sh,v 1.12 2023/01/16 04:11:29 djm Exp $ # Placed in the Public Domain. tid="key revocation lists" @@ -175,8 +175,8 @@ test_rev() { KEYID_RESULT=$7 CERTS_RESULT=$8 CA_RESULT=$9 - SERIAL_WRESULT=$10 - KEYID_WRESULT=$11 + SERIAL_WRESULT=${10} + KEYID_WRESULT=${11} verbose "$tid: checking revocations for $TAG" for f in $FILES ; do check_krl $f $OBJ/krl-empty no "$TAG" diff --git a/crypto/openssh/regress/multiplex.sh b/crypto/openssh/regress/multiplex.sh index 2950d955aa3f..f9c8fc10bd14 100644 --- a/crypto/openssh/regress/multiplex.sh +++ b/crypto/openssh/regress/multiplex.sh @@ -1,4 +1,4 @@ -# $OpenBSD: multiplex.sh,v 1.34 2022/06/03 04:31:54 djm Exp $ +# $OpenBSD: multiplex.sh,v 1.35 2023/01/13 04:47:34 dtucker Exp $ # Placed in the Public Domain. make_tmpdir @@ -24,6 +24,7 @@ wait_for_mux_master_ready() fatal "mux master never becomes ready" } +maybe_add_scp_path_to_sshd start_sshd start_mux_master() diff --git a/crypto/openssh/regress/percent.sh b/crypto/openssh/regress/percent.sh index bb81779a013d..3dfa8d2dfe08 100644 --- a/crypto/openssh/regress/percent.sh +++ b/crypto/openssh/regress/percent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: percent.sh,v 1.14 2022/02/20 03:47:26 dtucker Exp $ +# $OpenBSD: percent.sh,v 1.16 2023/01/14 09:57:08 dtucker Exp $ # Placed in the Public Domain. tid="percent expansions" @@ -12,6 +12,7 @@ USER=`id -u -n` USERID=`id -u` HOST=`hostname | cut -f1 -d.` HOSTNAME=`hostname` +HASH="" # Localcommand is evaluated after connection because %T is not available # until then. Because of this we use a different method of exercising it, @@ -79,10 +80,12 @@ for i in matchexec localcommand remotecommand controlpath identityagent \ trial $i '%T' NONE fi # Matches implementation in readconf.c:ssh_connection_hash() - HASH=`printf "${HOSTNAME}127.0.0.1${PORT}$REMUSER" | - $OPENSSL_BIN sha1 | cut -f2 -d' '` + if [ ! -z "${OPENSSL_BIN}" ]; then + HASH=`printf "${HOSTNAME}127.0.0.1${PORT}$REMUSER" | + $OPENSSL_BIN sha1 | cut -f2 -d' '` + trial $i '%C' $HASH + fi trial $i '%%' '%' - trial $i '%C' $HASH trial $i '%i' $USERID trial $i '%h' 127.0.0.1 trial $i '%L' $HOST @@ -96,8 +99,13 @@ for i in matchexec localcommand remotecommand controlpath identityagent \ # containing %d for UserKnownHostsFile if [ "$i" != "userknownhostsfile" ]; then trial $i '%d' $HOME - trial $i '%%/%C/%i/%h/%d/%L/%l/%n/%p/%r/%u' \ - "%/$HASH/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER" + in='%%/%i/%h/%d/%L/%l/%n/%p/%r/%u' + out="%/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER" + if [ ! -z "${HASH}" ]; then + in="$in/%C" + out="$out/$HASH" + fi + trial $i "$in" "$out" fi done diff --git a/crypto/openssh/regress/reexec.sh b/crypto/openssh/regress/reexec.sh index 8966ba524e60..3f88d41f534c 100644 --- a/crypto/openssh/regress/reexec.sh +++ b/crypto/openssh/regress/reexec.sh @@ -1,4 +1,4 @@ -# $OpenBSD: reexec.sh,v 1.12 2017/08/07 03:52:55 dtucker Exp $ +# $OpenBSD: reexec.sh,v 1.13 2023/01/19 07:53:45 dtucker Exp $ # Placed in the Public Domain. tid="reexec tests" @@ -49,7 +49,7 @@ if [ "$os" != "cygwin" ]; then verbose "test reexec fallback" start_sshd_copy -rm -f $SSHD_COPY +$SUDO rm -f $SSHD_COPY copy_tests diff --git a/crypto/openssh/regress/scp-uri.sh b/crypto/openssh/regress/scp-uri.sh index 20ac3c89ec26..eacbd453afdd 100644 --- a/crypto/openssh/regress/scp-uri.sh +++ b/crypto/openssh/regress/scp-uri.sh @@ -1,4 +1,4 @@ -# $OpenBSD: scp-uri.sh,v 1.4 2021/08/10 03:35:45 djm Exp $ +# $OpenBSD: scp-uri.sh,v 1.5 2023/01/13 04:47:34 dtucker Exp $ # Placed in the Public Domain. tid="scp-uri" @@ -9,6 +9,8 @@ COPY2=${OBJ}/copy2 DIR=${COPY}.dd DIR2=${COPY}.dd2 +maybe_add_scp_path_to_sshd + SRC=`dirname ${SCRIPT}` cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp chmod 755 ${OBJ}/scp-ssh-wrapper.scp diff --git a/crypto/openssh/regress/scp.sh b/crypto/openssh/regress/scp.sh index f47c594572fd..76c2b2a6bb56 100644 --- a/crypto/openssh/regress/scp.sh +++ b/crypto/openssh/regress/scp.sh @@ -1,20 +1,23 @@ -# $OpenBSD: scp.sh,v 1.14 2022/05/15 23:48:07 djm Exp $ +# $OpenBSD: scp.sh,v 1.18 2023/01/13 04:47:34 dtucker Exp $ # Placed in the Public Domain. tid="scp" #set -x -# Figure out if diff understands "-N" -if diff -N ${SRC}/scp.sh ${SRC}/scp.sh 2>/dev/null; then - DIFFOPT="-rN" -else - DIFFOPT="-r" -fi - COPY2=${OBJ}/copy2 DIR=${COPY}.dd DIR2=${COPY}.dd2 +COPY3=${OBJ}/copy.glob[123] +DIR3=${COPY}.dd.glob[456] +DIFFOPT="-rN" + +# Figure out if diff does not understand "-N" +if ! diff -N ${SRC}/scp.sh ${SRC}/scp.sh 2>/dev/null; then + DIFFOPT="-r" +fi + +maybe_add_scp_path_to_sshd SRC=`dirname ${SCRIPT}` cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp @@ -22,9 +25,9 @@ chmod 755 ${OBJ}/scp-ssh-wrapper.scp export SCP # used in scp-ssh-wrapper.scp scpclean() { - rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2} - mkdir ${DIR} ${DIR2} - chmod 755 ${DIR} ${DIR2} + rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2} ${COPY3} ${DIR3} + mkdir ${DIR} ${DIR2} ${DIR3} + chmod 755 ${DIR} ${DIR2} ${DIR3} } for mode in scp sftp ; do @@ -34,7 +37,7 @@ for mode in scp sftp ; do else scpopts="-s -D ${SFTPSERVER}" fi - verbose "tid: simple copy local file to local file" + verbose "$tag: simple copy local file to local file" scpclean $SCP $scpopts ${DATA} ${COPY} || fail "copy failed" cmp ${DATA} ${COPY} || fail "corrupted copy" @@ -113,6 +116,30 @@ for mode in scp sftp ; do $SCP $scpopts -r somehost:${DIR} ${DIR2} || fail "copy failed" diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: unmatched glob file local->remote" + scpclean + $SCP $scpopts ${DATA} somehost:${COPY3} || fail "copy failed" + cmp ${DATA} ${COPY3} || fail "corrupted copy" + + verbose "$tag: unmatched glob file remote->local" + # NB. no clean + $SCP $scpopts somehost:${COPY3} ${COPY2} || fail "copy failed" + cmp ${DATA} ${COPY2} || fail "corrupted copy" + + verbose "$tag: unmatched glob dir recursive local->remote" + scpclean + rm -rf ${DIR3} + cp ${DATA} ${DIR}/copy + cp ${DATA} ${DIR}/copy.glob[1234] + $SCP $scpopts -r ${DIR} somehost:${DIR3} || fail "copy failed" + diff ${DIFFOPT} ${DIR} ${DIR3} || fail "corrupted copy" + + verbose "$tag: unmatched glob dir recursive remote->local" + # NB. no clean + rm -rf ${DIR2} + $SCP $scpopts -r somehost:${DIR3} ${DIR2} || fail "copy failed" + diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: shell metacharacters" scpclean (cd ${DIR} && \ diff --git a/crypto/openssh/regress/scp3.sh b/crypto/openssh/regress/scp3.sh index 47db47cd6a7d..383121f4519e 100644 --- a/crypto/openssh/regress/scp3.sh +++ b/crypto/openssh/regress/scp3.sh @@ -1,19 +1,15 @@ -# $OpenBSD: scp3.sh,v 1.3 2021/08/10 03:35:45 djm Exp $ +# $OpenBSD: scp3.sh,v 1.4 2023/01/13 04:47:34 dtucker Exp $ # Placed in the Public Domain. tid="scp3" -#set -x +set -x COPY2=${OBJ}/copy2 DIR=${COPY}.dd DIR2=${COPY}.dd2 -$SSH -F $OBJ/ssh_proxy somehost \ - 'IFS=":"; for i in $PATH;do [ -x "$i/scp" ] && exit 0; done; exit 1' -if [ $? -eq 1 ]; then - skip "No scp on remote path." -fi +maybe_add_scp_path_to_sshd SRC=`dirname ${SCRIPT}` cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp diff --git a/crypto/openssh/regress/test-exec.sh b/crypto/openssh/regress/test-exec.sh index c51f8eac162f..df43f021404f 100644 --- a/crypto/openssh/regress/test-exec.sh +++ b/crypto/openssh/regress/test-exec.sh @@ -1,4 +1,4 @@ -# $OpenBSD: test-exec.sh,v 1.92 2022/07/25 07:12:45 dtucker Exp $ +# $OpenBSD: test-exec.sh,v 1.94 2023/01/13 04:47:34 dtucker Exp $ # Placed in the Public Domain. #SUDO=sudo @@ -509,6 +509,18 @@ skip () exit $RESULT } +maybe_add_scp_path_to_sshd () +{ + # If we're testing a non-installed scp, add its directory to sshd's + # PATH so we can test it. We don't do this for all tests as it + # breaks the SetEnv tests. + case "$SCP" in + /*) PATH_WITH_SCP="`dirname $SCP`:$PATH" + echo " SetEnv PATH='$PATH_WITH_SCP'" >>$OBJ/sshd_config + echo " SetEnv PATH='$PATH_WITH_SCP'" >>$OBJ/sshd_proxy ;; + esac +} + RESULT=0 PIDFILE=$OBJ/pidfile diff --git a/crypto/openssh/regress/unittests/hostkeys/Makefile b/crypto/openssh/regress/unittests/hostkeys/Makefile index 9a53423eeac0..04d93359acaa 100644 --- a/crypto/openssh/regress/unittests/hostkeys/Makefile +++ b/crypto/openssh/regress/unittests/hostkeys/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.9 2021/01/09 12:24:30 dtucker Exp $ +# $OpenBSD: Makefile,v 1.10 2023/01/15 23:35:10 djm Exp $ PROG=test_hostkeys SRCS=tests.c test_iterate.c @@ -9,7 +9,7 @@ SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c SRCS+=addr.c addrmatch.c bitmap.c hostfile.c -SRCS+=ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c +SRCS+=ed25519.c hash.c SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c SRCS+=ssh-ed25519-sk.c sk-usbhid.c diff --git a/crypto/openssh/regress/unittests/kex/Makefile b/crypto/openssh/regress/unittests/kex/Makefile index 50b117c07851..981affe3cbee 100644 --- a/crypto/openssh/regress/unittests/kex/Makefile +++ b/crypto/openssh/regress/unittests/kex/Makefile @@ -1,7 +1,7 @@ -# $OpenBSD: Makefile,v 1.12 2021/01/09 12:24:30 dtucker Exp $ +# $OpenBSD: Makefile,v 1.14 2023/02/02 12:12:52 djm Exp $ PROG=test_kex -SRCS=tests.c test_kex.c +SRCS=tests.c test_kex.c test_proposal.c # From usr.bin/ssh SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c @@ -9,7 +9,7 @@ SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c SRCS+=addr.c addrmatch.c bitmap.c packet.c dispatch.c canohost.c ssh_api.c -SRCS+=compat.c ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c +SRCS+=compat.c ed25519.c hash.c SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c SRCS+=ssh-ed25519-sk.c sk-usbhid.c diff --git a/crypto/openssh/regress/unittests/kex/test_proposal.c b/crypto/openssh/regress/unittests/kex/test_proposal.c new file mode 100644 index 000000000000..d6cf0f5da7d7 --- /dev/null +++ b/crypto/openssh/regress/unittests/kex/test_proposal.c @@ -0,0 +1,83 @@ +/* $OpenBSD: test_proposal.c,v 1.1 2023/02/02 12:12:52 djm Exp $ */ +/* + * Regress test KEX + * + * Placed in the public domain + */ + +#include "includes.h" + +#include +#include +#include +#ifdef HAVE_STDINT_H +#include +#endif +#include +#include + +#include "../test_helper/test_helper.h" + +#include "compat.h" +#include "ssherr.h" +#include "sshbuf.h" +#include "kex.h" +#include "packet.h" +#include "xmalloc.h" + +void kex_proposal(void); + +#define CURVE25519 "curve25519-sha256@libssh.org" +#define DHGEX1 "diffie-hellman-group-exchange-sha1" +#define DHGEX256 "diffie-hellman-group-exchange-sha256" +#define KEXALGOS CURVE25519","DHGEX256","DHGEX1 +void +kex_proposal(void) +{ + size_t i; + struct ssh ssh; + char *result, *out, *in; + struct { + char *in; /* TODO: make this const */ + char *out; + int compat; + } tests[] = { + { KEXALGOS, KEXALGOS, 0}, + { KEXALGOS, DHGEX256","DHGEX1, SSH_BUG_CURVE25519PAD }, + { KEXALGOS, CURVE25519, SSH_OLD_DHGEX }, + { "a,"KEXALGOS, "a", SSH_BUG_CURVE25519PAD|SSH_OLD_DHGEX }, + /* TODO: enable once compat_kex_proposal doesn't fatal() */ + /* { KEXALGOS, "", SSH_BUG_CURVE25519PAD|SSH_OLD_DHGEX }, */ + }; + + TEST_START("compat_kex_proposal"); + for (i = 0; i < sizeof(tests) / sizeof(*tests); i++) { + ssh.compat = tests[i].compat; + /* match entire string */ + result = compat_kex_proposal(&ssh, tests[i].in); + ASSERT_STRING_EQ(result, tests[i].out); + free(result); + /* match at end */ + in = kex_names_cat("a", tests[i].in); + out = kex_names_cat("a", tests[i].out); + result = compat_kex_proposal(&ssh, in); + ASSERT_STRING_EQ(result, out); + free(result); free(in); free(out); + /* match at start */ + in = kex_names_cat(tests[i].in, "a"); + out = kex_names_cat(tests[i].out, "a"); + result = compat_kex_proposal(&ssh, in); + ASSERT_STRING_EQ(result, out); + free(result); free(in); free(out); + /* match in middle */ + xasprintf(&in, "a,%s,b", tests[i].in); + if (*(tests[i].out) == '\0') + out = xstrdup("a,b"); + else + xasprintf(&out, "a,%s,b", tests[i].out); + result = compat_kex_proposal(&ssh, in); + ASSERT_STRING_EQ(result, out); + free(result); free(in); free(out); + } + TEST_DONE(); +} diff --git a/crypto/openssh/regress/unittests/kex/tests.c b/crypto/openssh/regress/unittests/kex/tests.c index e7036ec17f7b..2a83dafbc3ae 100644 --- a/crypto/openssh/regress/unittests/kex/tests.c +++ b/crypto/openssh/regress/unittests/kex/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.1 2015/01/15 23:41:29 markus Exp $ */ +/* $OpenBSD: tests.c,v 1.2 2023/02/02 12:12:52 djm Exp $ */ /* * Placed in the public domain */ @@ -6,9 +6,11 @@ #include "../test_helper/test_helper.h" void kex_tests(void); +void kex_proposal(void); void tests(void) { kex_tests(); + kex_proposal(); } diff --git a/crypto/openssh/regress/unittests/misc/test_ptimeout.c b/crypto/openssh/regress/unittests/misc/test_ptimeout.c new file mode 100644 index 000000000000..7adc590e98d6 --- /dev/null +++ b/crypto/openssh/regress/unittests/misc/test_ptimeout.c @@ -0,0 +1,85 @@ +/* $OpenBSD: test_ptimeout.c,v 1.1 2023/01/06 02:59:50 djm Exp $ */ +/* + * Regress test for misc poll/ppoll timeout helpers. + * + * Placed in the public domain. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "../test_helper/test_helper.h" + +#include "log.h" +#include "misc.h" + +void test_ptimeout(void); + +void +test_ptimeout(void) +{ + struct timespec pt, *ts; + + TEST_START("ptimeout_init"); + ptimeout_init(&pt); + ASSERT_PTR_EQ(ptimeout_get_tsp(&pt), NULL); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), -1); + TEST_DONE(); + + TEST_START("ptimeout_deadline_sec"); + ptimeout_deadline_sec(&pt, 100); + ptimeout_deadline_sec(&pt, 200); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 100 * 1000); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 0); + ASSERT_LONG_EQ(ts->tv_sec, 100); + TEST_DONE(); + + TEST_START("ptimeout_deadline_ms"); + ptimeout_deadline_ms(&pt, 50123); + ptimeout_deadline_ms(&pt, 50500); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 50123); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 123 * 1000000); + ASSERT_LONG_EQ(ts->tv_sec, 50); + TEST_DONE(); + + TEST_START("ptimeout zero"); + ptimeout_init(&pt); + ptimeout_deadline_ms(&pt, 0); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 0); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 0); + ASSERT_LONG_EQ(ts->tv_sec, 0); + TEST_DONE(); + + TEST_START("ptimeout_deadline_monotime"); + ptimeout_init(&pt); + ptimeout_deadline_monotime(&pt, monotime() + 100); + ASSERT_INT_GT(ptimeout_get_ms(&pt), 50000); + ASSERT_INT_LT(ptimeout_get_ms(&pt), 200000); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_GT(ts->tv_sec, 50); + ASSERT_LONG_LT(ts->tv_sec, 200); + TEST_DONE(); + + TEST_START("ptimeout_deadline_monotime past"); + ptimeout_init(&pt); + ptimeout_deadline_monotime(&pt, monotime() + 100); + ptimeout_deadline_monotime(&pt, monotime() - 100); + ASSERT_INT_EQ(ptimeout_get_ms(&pt), 0); + ts = ptimeout_get_tsp(&pt); + ASSERT_PTR_NE(ts, NULL); + ASSERT_LONG_EQ(ts->tv_nsec, 0); + ASSERT_LONG_EQ(ts->tv_sec, 0); + TEST_DONE(); +} diff --git a/crypto/openssh/regress/unittests/misc/tests.c b/crypto/openssh/regress/unittests/misc/tests.c index d52490e3b3ce..32699541413e 100644 --- a/crypto/openssh/regress/unittests/misc/tests.c +++ b/crypto/openssh/regress/unittests/misc/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.9 2022/02/04 07:53:44 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.10 2023/01/06 02:59:50 djm Exp $ */ /* * Regress test for misc helper functions. * @@ -26,6 +26,7 @@ void test_expand(void); void test_argv(void); void test_strdelim(void); void test_hpdelim(void); +void test_ptimeout(void); void tests(void) @@ -36,4 +37,5 @@ tests(void) test_argv(); test_strdelim(); test_hpdelim(); + test_ptimeout(); } diff --git a/crypto/openssh/regress/unittests/sshkey/Makefile b/crypto/openssh/regress/unittests/sshkey/Makefile index d4a892375bd7..cd0f44d13d24 100644 --- a/crypto/openssh/regress/unittests/sshkey/Makefile +++ b/crypto/openssh/regress/unittests/sshkey/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.11 2021/01/09 12:24:31 dtucker Exp $ +# $OpenBSD: Makefile,v 1.12 2023/01/15 23:35:10 djm Exp $ PROG=test_sshkey SRCS=tests.c test_sshkey.c test_file.c test_fuzz.c common.c @@ -9,7 +9,7 @@ SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c SRCS+=addr.c addrmatch.c bitmap.c -SRCS+=ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c +SRCS+=ed25519.c hash.c SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c SRCS+=ssh-ed25519-sk.c sk-usbhid.c diff --git a/crypto/openssh/regress/unittests/sshkey/test_sshkey.c b/crypto/openssh/regress/unittests/sshkey/test_sshkey.c index a9afa003c60a..266a0bf8c752 100644 --- a/crypto/openssh/regress/unittests/sshkey/test_sshkey.c +++ b/crypto/openssh/regress/unittests/sshkey/test_sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshkey.c,v 1.22 2021/12/14 21:25:27 deraadt Exp $ */ +/* $OpenBSD: test_sshkey.c,v 1.23 2023/01/04 22:48:57 tb Exp $ */ /* * Regress test for sshkey.h key management API * @@ -145,7 +145,7 @@ banana(u_char *s, size_t l) memcpy(s + o, "nanananana", l - o); break; } - memcpy(s + o, banana, sizeof(the_banana)); + memcpy(s + o, the_banana, sizeof(the_banana)); } } diff --git a/crypto/openssh/regress/unittests/sshsig/Makefile b/crypto/openssh/regress/unittests/sshsig/Makefile index 65564d1b278b..bc3c6c739d48 100644 --- a/crypto/openssh/regress/unittests/sshsig/Makefile +++ b/crypto/openssh/regress/unittests/sshsig/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.2 2021/01/09 12:24:31 dtucker Exp $ +# $OpenBSD: Makefile,v 1.3 2023/01/15 23:35:10 djm Exp $ PROG=test_sshsig SRCS=tests.c @@ -9,7 +9,7 @@ SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c SRCS+=addr.c addrmatch.c bitmap.c sshsig.c -SRCS+=ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c +SRCS+=ed25519.c hash.c SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c SRCS+=ssh-ed25519-sk.c sk-usbhid.c diff --git a/crypto/openssh/regress/yes-head.sh b/crypto/openssh/regress/yes-head.sh index 2759eb8ce59d..1bde504f0c71 100644 --- a/crypto/openssh/regress/yes-head.sh +++ b/crypto/openssh/regress/yes-head.sh @@ -1,4 +1,4 @@ -# $OpenBSD: yes-head.sh,v 1.6 2017/04/30 23:34:55 djm Exp $ +# $OpenBSD: yes-head.sh,v 1.7 2023/01/14 10:05:54 dtucker Exp $ # Placed in the Public Domain. tid="yes pipe head" @@ -6,7 +6,7 @@ tid="yes pipe head" lines=`${SSH} -F $OBJ/ssh_proxy thishost 'sh -c "while true;do echo yes;done | _POSIX2_VERSION=199209 head -2000"' | (sleep 3 ; wc -l)` if [ $? -ne 0 ]; then fail "yes|head test failed" - lines = 0; ++ lines=0 fi if [ $lines -ne 2000 ]; then fail "yes|head returns $lines lines instead of 2000" diff --git a/crypto/openssh/sandbox-seccomp-filter.c b/crypto/openssh/sandbox-seccomp-filter.c index 9929bdb68513..4ab49eb6e4c3 100644 --- a/crypto/openssh/sandbox-seccomp-filter.c +++ b/crypto/openssh/sandbox-seccomp-filter.c @@ -23,7 +23,7 @@ * E.g. * auditctl -a task,always -F uid= */ -#define SANDBOX_SECCOMP_FILTER_DEBUG 1 +/* #define SANDBOX_SECCOMP_FILTER_DEBUG 1 */ #if 0 /* @@ -312,6 +312,9 @@ static const struct sock_filter preauth_insns[] = { #ifdef __NR_write SC_ALLOW(__NR_write), #endif +#ifdef __NR_writev + SC_ALLOW(__NR_writev), +#endif #ifdef __NR_socketcall SC_ALLOW_ARG(__NR_socketcall, 0, SYS_SHUTDOWN), SC_DENY(__NR_socketcall, EACCES), diff --git a/crypto/openssh/sc25519.c b/crypto/openssh/sc25519.c deleted file mode 100644 index 1568d9a58c98..000000000000 --- a/crypto/openssh/sc25519.c +++ /dev/null @@ -1,308 +0,0 @@ -/* $OpenBSD: sc25519.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/sc25519.c - */ - -#include "includes.h" - -#include "sc25519.h" - -/*Arithmetic modulo the group order m = 2^252 + 27742317777372353535851937790883648493 = 7237005577332262213973186563042994240857116359379907606001950938285454250989 */ - -static const crypto_uint32 m[32] = {0xED, 0xD3, 0xF5, 0x5C, 0x1A, 0x63, 0x12, 0x58, 0xD6, 0x9C, 0xF7, 0xA2, 0xDE, 0xF9, 0xDE, 0x14, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; - -static const crypto_uint32 mu[33] = {0x1B, 0x13, 0x2C, 0x0A, 0xA3, 0xE5, 0x9C, 0xED, 0xA7, 0x29, 0x63, 0x08, 0x5D, 0x21, 0x06, 0x21, - 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F}; - -static crypto_uint32 lt(crypto_uint32 a,crypto_uint32 b) /* 16-bit inputs */ -{ - unsigned int x = a; - x -= (unsigned int) b; /* 0..65535: no; 4294901761..4294967295: yes */ - x >>= 31; /* 0: no; 1: yes */ - return x; -} - -/* Reduce coefficients of r before calling reduce_add_sub */ -static void reduce_add_sub(sc25519 *r) -{ - crypto_uint32 pb = 0; - crypto_uint32 b; - crypto_uint32 mask; - int i; - unsigned char t[32]; - - for(i=0;i<32;i++) - { - pb += m[i]; - b = lt(r->v[i],pb); - t[i] = r->v[i]-pb+(b<<8); - pb = b; - } - mask = b - 1; - for(i=0;i<32;i++) - r->v[i] ^= mask & (r->v[i] ^ t[i]); -} - -/* Reduce coefficients of x before calling barrett_reduce */ -static void barrett_reduce(sc25519 *r, const crypto_uint32 x[64]) -{ - /* See HAC, Alg. 14.42 */ - int i,j; - crypto_uint32 q2[66]; - crypto_uint32 *q3 = q2 + 33; - crypto_uint32 r1[33]; - crypto_uint32 r2[33]; - crypto_uint32 carry; - crypto_uint32 pb = 0; - crypto_uint32 b; - - for (i = 0;i < 66;++i) q2[i] = 0; - for (i = 0;i < 33;++i) r2[i] = 0; - - for(i=0;i<33;i++) - for(j=0;j<33;j++) - if(i+j >= 31) q2[i+j] += mu[i]*x[j+31]; - carry = q2[31] >> 8; - q2[32] += carry; - carry = q2[32] >> 8; - q2[33] += carry; - - for(i=0;i<33;i++)r1[i] = x[i]; - for(i=0;i<32;i++) - for(j=0;j<33;j++) - if(i+j < 33) r2[i+j] += m[i]*q3[j]; - - for(i=0;i<32;i++) - { - carry = r2[i] >> 8; - r2[i+1] += carry; - r2[i] &= 0xff; - } - - for(i=0;i<32;i++) - { - pb += r2[i]; - b = lt(r1[i],pb); - r->v[i] = r1[i]-pb+(b<<8); - pb = b; - } - - /* XXX: Can it really happen that r<0?, See HAC, Alg 14.42, Step 3 - * If so: Handle it here! - */ - - reduce_add_sub(r); - reduce_add_sub(r); -} - -void sc25519_from32bytes(sc25519 *r, const unsigned char x[32]) -{ - int i; - crypto_uint32 t[64]; - for(i=0;i<32;i++) t[i] = x[i]; - for(i=32;i<64;++i) t[i] = 0; - barrett_reduce(r, t); -} - -void shortsc25519_from16bytes(shortsc25519 *r, const unsigned char x[16]) -{ - int i; - for(i=0;i<16;i++) r->v[i] = x[i]; -} - -void sc25519_from64bytes(sc25519 *r, const unsigned char x[64]) -{ - int i; - crypto_uint32 t[64]; - for(i=0;i<64;i++) t[i] = x[i]; - barrett_reduce(r, t); -} - -void sc25519_from_shortsc(sc25519 *r, const shortsc25519 *x) -{ - int i; - for(i=0;i<16;i++) - r->v[i] = x->v[i]; - for(i=0;i<16;i++) - r->v[16+i] = 0; -} - -void sc25519_to32bytes(unsigned char r[32], const sc25519 *x) -{ - int i; - for(i=0;i<32;i++) r[i] = x->v[i]; -} - -int sc25519_iszero_vartime(const sc25519 *x) -{ - int i; - for(i=0;i<32;i++) - if(x->v[i] != 0) return 0; - return 1; -} - -int sc25519_isshort_vartime(const sc25519 *x) -{ - int i; - for(i=31;i>15;i--) - if(x->v[i] != 0) return 0; - return 1; -} - -int sc25519_lt_vartime(const sc25519 *x, const sc25519 *y) -{ - int i; - for(i=31;i>=0;i--) - { - if(x->v[i] < y->v[i]) return 1; - if(x->v[i] > y->v[i]) return 0; - } - return 0; -} - -void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y) -{ - int i, carry; - for(i=0;i<32;i++) r->v[i] = x->v[i] + y->v[i]; - for(i=0;i<31;i++) - { - carry = r->v[i] >> 8; - r->v[i+1] += carry; - r->v[i] &= 0xff; - } - reduce_add_sub(r); -} - -void sc25519_sub_nored(sc25519 *r, const sc25519 *x, const sc25519 *y) -{ - crypto_uint32 b = 0; - crypto_uint32 t; - int i; - for(i=0;i<32;i++) - { - t = x->v[i] - y->v[i] - b; - r->v[i] = t & 255; - b = (t >> 8) & 1; - } -} - -void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y) -{ - int i,j,carry; - crypto_uint32 t[64]; - for(i=0;i<64;i++)t[i] = 0; - - for(i=0;i<32;i++) - for(j=0;j<32;j++) - t[i+j] += x->v[i] * y->v[j]; - - /* Reduce coefficients */ - for(i=0;i<63;i++) - { - carry = t[i] >> 8; - t[i+1] += carry; - t[i] &= 0xff; - } - - barrett_reduce(r, t); -} - -void sc25519_mul_shortsc(sc25519 *r, const sc25519 *x, const shortsc25519 *y) -{ - sc25519 t; - sc25519_from_shortsc(&t, y); - sc25519_mul(r, x, &t); -} - -void sc25519_window3(signed char r[85], const sc25519 *s) -{ - char carry; - int i; - for(i=0;i<10;i++) - { - r[8*i+0] = s->v[3*i+0] & 7; - r[8*i+1] = (s->v[3*i+0] >> 3) & 7; - r[8*i+2] = (s->v[3*i+0] >> 6) & 7; - r[8*i+2] ^= (s->v[3*i+1] << 2) & 7; - r[8*i+3] = (s->v[3*i+1] >> 1) & 7; - r[8*i+4] = (s->v[3*i+1] >> 4) & 7; - r[8*i+5] = (s->v[3*i+1] >> 7) & 7; - r[8*i+5] ^= (s->v[3*i+2] << 1) & 7; - r[8*i+6] = (s->v[3*i+2] >> 2) & 7; - r[8*i+7] = (s->v[3*i+2] >> 5) & 7; - } - r[8*i+0] = s->v[3*i+0] & 7; - r[8*i+1] = (s->v[3*i+0] >> 3) & 7; - r[8*i+2] = (s->v[3*i+0] >> 6) & 7; - r[8*i+2] ^= (s->v[3*i+1] << 2) & 7; - r[8*i+3] = (s->v[3*i+1] >> 1) & 7; - r[8*i+4] = (s->v[3*i+1] >> 4) & 7; - - /* Making it signed */ - carry = 0; - for(i=0;i<84;i++) - { - r[i] += carry; - r[i+1] += r[i] >> 3; - r[i] &= 7; - carry = r[i] >> 2; - r[i] -= carry<<3; - } - r[84] += carry; -} - -void sc25519_window5(signed char r[51], const sc25519 *s) -{ - char carry; - int i; - for(i=0;i<6;i++) - { - r[8*i+0] = s->v[5*i+0] & 31; - r[8*i+1] = (s->v[5*i+0] >> 5) & 31; - r[8*i+1] ^= (s->v[5*i+1] << 3) & 31; - r[8*i+2] = (s->v[5*i+1] >> 2) & 31; - r[8*i+3] = (s->v[5*i+1] >> 7) & 31; - r[8*i+3] ^= (s->v[5*i+2] << 1) & 31; - r[8*i+4] = (s->v[5*i+2] >> 4) & 31; - r[8*i+4] ^= (s->v[5*i+3] << 4) & 31; - r[8*i+5] = (s->v[5*i+3] >> 1) & 31; - r[8*i+6] = (s->v[5*i+3] >> 6) & 31; - r[8*i+6] ^= (s->v[5*i+4] << 2) & 31; - r[8*i+7] = (s->v[5*i+4] >> 3) & 31; - } - r[8*i+0] = s->v[5*i+0] & 31; - r[8*i+1] = (s->v[5*i+0] >> 5) & 31; - r[8*i+1] ^= (s->v[5*i+1] << 3) & 31; - r[8*i+2] = (s->v[5*i+1] >> 2) & 31; - - /* Making it signed */ - carry = 0; - for(i=0;i<50;i++) - { - r[i] += carry; - r[i+1] += r[i] >> 5; - r[i] &= 31; - carry = r[i] >> 4; - r[i] -= carry<<5; - } - r[50] += carry; -} - -void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2) -{ - int i; - for(i=0;i<31;i++) - { - r[4*i] = ( s1->v[i] & 3) ^ (( s2->v[i] & 3) << 2); - r[4*i+1] = ((s1->v[i] >> 2) & 3) ^ (((s2->v[i] >> 2) & 3) << 2); - r[4*i+2] = ((s1->v[i] >> 4) & 3) ^ (((s2->v[i] >> 4) & 3) << 2); - r[4*i+3] = ((s1->v[i] >> 6) & 3) ^ (((s2->v[i] >> 6) & 3) << 2); - } - r[124] = ( s1->v[31] & 3) ^ (( s2->v[31] & 3) << 2); - r[125] = ((s1->v[31] >> 2) & 3) ^ (((s2->v[31] >> 2) & 3) << 2); - r[126] = ((s1->v[31] >> 4) & 3) ^ (((s2->v[31] >> 4) & 3) << 2); -} diff --git a/crypto/openssh/sc25519.h b/crypto/openssh/sc25519.h deleted file mode 100644 index a2c15d5ff996..000000000000 --- a/crypto/openssh/sc25519.h +++ /dev/null @@ -1,80 +0,0 @@ -/* $OpenBSD: sc25519.h,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange, - * Peter Schwabe, Bo-Yin Yang. - * Copied from supercop-20130419/crypto_sign/ed25519/ref/sc25519.h - */ - -#ifndef SC25519_H -#define SC25519_H - -#include "crypto_api.h" - -#define sc25519 crypto_sign_ed25519_ref_sc25519 -#define shortsc25519 crypto_sign_ed25519_ref_shortsc25519 -#define sc25519_from32bytes crypto_sign_ed25519_ref_sc25519_from32bytes -#define shortsc25519_from16bytes crypto_sign_ed25519_ref_shortsc25519_from16bytes -#define sc25519_from64bytes crypto_sign_ed25519_ref_sc25519_from64bytes -#define sc25519_from_shortsc crypto_sign_ed25519_ref_sc25519_from_shortsc -#define sc25519_to32bytes crypto_sign_ed25519_ref_sc25519_to32bytes -#define sc25519_iszero_vartime crypto_sign_ed25519_ref_sc25519_iszero_vartime -#define sc25519_isshort_vartime crypto_sign_ed25519_ref_sc25519_isshort_vartime -#define sc25519_lt_vartime crypto_sign_ed25519_ref_sc25519_lt_vartime -#define sc25519_add crypto_sign_ed25519_ref_sc25519_add -#define sc25519_sub_nored crypto_sign_ed25519_ref_sc25519_sub_nored -#define sc25519_mul crypto_sign_ed25519_ref_sc25519_mul -#define sc25519_mul_shortsc crypto_sign_ed25519_ref_sc25519_mul_shortsc -#define sc25519_window3 crypto_sign_ed25519_ref_sc25519_window3 -#define sc25519_window5 crypto_sign_ed25519_ref_sc25519_window5 -#define sc25519_2interleave2 crypto_sign_ed25519_ref_sc25519_2interleave2 - -typedef struct -{ - crypto_uint32 v[32]; -} -sc25519; - -typedef struct -{ - crypto_uint32 v[16]; -} -shortsc25519; - -void sc25519_from32bytes(sc25519 *r, const unsigned char x[32]); - -void shortsc25519_from16bytes(shortsc25519 *r, const unsigned char x[16]); - -void sc25519_from64bytes(sc25519 *r, const unsigned char x[64]); - -void sc25519_from_shortsc(sc25519 *r, const shortsc25519 *x); - -void sc25519_to32bytes(unsigned char r[32], const sc25519 *x); - -int sc25519_iszero_vartime(const sc25519 *x); - -int sc25519_isshort_vartime(const sc25519 *x); - -int sc25519_lt_vartime(const sc25519 *x, const sc25519 *y); - -void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y); - -void sc25519_sub_nored(sc25519 *r, const sc25519 *x, const sc25519 *y); - -void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y); - -void sc25519_mul_shortsc(sc25519 *r, const sc25519 *x, const shortsc25519 *y); - -/* Convert s into a representation of the form \sum_{i=0}^{84}r[i]2^3 - * with r[i] in {-4,...,3} - */ -void sc25519_window3(signed char r[85], const sc25519 *s); - -/* Convert s into a representation of the form \sum_{i=0}^{50}r[i]2^5 - * with r[i] in {-16,...,15} - */ -void sc25519_window5(signed char r[51], const sc25519 *s); - -void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2); - -#endif diff --git a/crypto/openssh/scp.1 b/crypto/openssh/scp.1 index cd23f97952e9..54c6fe3d5f3d 100644 --- a/crypto/openssh/scp.1 +++ b/crypto/openssh/scp.1 @@ -8,9 +8,9 @@ .\" .\" Created: Sun May 7 00:14:37 1995 ylo .\" -.\" $OpenBSD: scp.1,v 1.110 2022/09/19 21:39:16 djm Exp $ +.\" $OpenBSD: scp.1,v 1.112 2022/12/16 07:13:22 djm Exp $ .\" -.Dd $Mdocdate: September 19 2022 $ +.Dd $Mdocdate: December 16 2022 $ .Dt SCP 1 .Os .Sh NAME @@ -28,15 +28,17 @@ .Op Fl o Ar ssh_option .Op Fl P Ar port .Op Fl S Ar program +.Op Fl X Ar sftp_option .Ar source ... target .Sh DESCRIPTION .Nm copies files between hosts on a network. .Pp -It uses +.Nm +uses the SFTP protocol over a .Xr ssh 1 -for data transfer, and uses the same authentication and provides the -same security as a login session. +connection for data transfer, and uses the same authentication and provides +the same security as a login session. .Pp .Nm will ask for passwords or passphrases if they are needed for @@ -110,9 +112,7 @@ Selects the cipher to use for encrypting the data transfer. This option is directly passed to .Xr ssh 1 . .It Fl D Ar sftp_server_path -When using the SFTP protocol support via -.Fl M , -connect directly to a local SFTP server program rather than a +Connect directly to a local SFTP server program rather than a remote one via .Xr ssh 1 . This option may be useful in debugging the client and server. @@ -278,6 +278,19 @@ and to print debugging messages about their progress. This is helpful in debugging connection, authentication, and configuration problems. +.It Fl X Ar sftp_option +Specify an option that controls aspects of SFTP protocol behaviour. +The valid options are: +.Bl -tag -width Ds +.It Cm nrequests Ns = Ns Ar value +Controls how many concurrent SFTP read or write requests may be in progress +at any point in time during a download or upload. +By default 64 requests may be active concurrently. +.It Cm buffer Ns = Ns Ar value +Controls the maximum buffer size for a single SFTP read/write operation used +during download or upload. +By default a 32KB buffer is used. +.El .El .Sh EXIT STATUS .Ex -std scp diff --git a/crypto/openssh/scp.c b/crypto/openssh/scp.c index f9ca5d393294..1adff5cec222 100644 --- a/crypto/openssh/scp.c +++ b/crypto/openssh/scp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.248 2022/05/13 06:31:50 djm Exp $ */ +/* $OpenBSD: scp.c,v 1.252 2023/01/10 23:22:15 millert Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -106,6 +106,9 @@ #include #endif #include +#ifdef HAVE_UTIL_H +# include +#endif #include #include #include @@ -176,6 +179,10 @@ char *ssh_program = _PATH_SSH_PROGRAM; pid_t do_cmd_pid = -1; pid_t do_cmd_pid2 = -1; +/* SFTP copy parameters */ +size_t sftp_copy_buflen; +size_t sftp_nrequests; + /* Needed for sftp */ volatile sig_atomic_t interrupted = 0; @@ -272,7 +279,11 @@ int do_cmd(char *program, char *host, char *remuser, int port, int subsystem, char *cmd, int *fdin, int *fdout, pid_t *pid) { - int pin[2], pout[2], reserved[2]; +#ifdef USE_PIPES + int pin[2], pout[2]; +#else + int sv[2]; +#endif if (verbose_mode) fmprintf(stderr, @@ -283,22 +294,14 @@ do_cmd(char *program, char *host, char *remuser, int port, int subsystem, if (port == -1) port = sshport; - /* - * Reserve two descriptors so that the real pipes won't get - * descriptors 0 and 1 because that will screw up dup2 below. - */ - if (pipe(reserved) == -1) +#ifdef USE_PIPES + if (pipe(pin) == -1 || pipe(pout) == -1) fatal("pipe: %s", strerror(errno)); - +#else /* Create a socket pair for communicating with ssh. */ - if (pipe(pin) == -1) - fatal("pipe: %s", strerror(errno)); - if (pipe(pout) == -1) - fatal("pipe: %s", strerror(errno)); - - /* Free the reserved descriptors. */ - close(reserved[0]); - close(reserved[1]); + if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv) == -1) + fatal("socketpair: %s", strerror(errno)); +#endif ssh_signal(SIGTSTP, suspchild); ssh_signal(SIGTTIN, suspchild); @@ -306,15 +309,30 @@ do_cmd(char *program, char *host, char *remuser, int port, int subsystem, /* Fork a child to execute the command on the remote host using ssh. */ *pid = fork(); - if (*pid == 0) { + switch (*pid) { + case -1: + fatal("fork: %s", strerror(errno)); + case 0: /* Child. */ +#ifdef USE_PIPES + if (dup2(pin[0], STDIN_FILENO) == -1 || + dup2(pout[1], STDOUT_FILENO) == -1) { + error("dup2: %s", strerror(errno)); + _exit(1); + } + close(pin[0]); close(pin[1]); close(pout[0]); - dup2(pin[0], 0); - dup2(pout[1], 1); - close(pin[0]); close(pout[1]); - +#else + if (dup2(sv[0], STDIN_FILENO) == -1 || + dup2(sv[0], STDOUT_FILENO) == -1) { + error("dup2: %s", strerror(errno)); + _exit(1); + } + close(sv[0]); + close(sv[1]); +#endif replacearg(&args, 0, "%s", program); if (port != -1) { addargs(&args, "-p"); @@ -332,19 +350,24 @@ do_cmd(char *program, char *host, char *remuser, int port, int subsystem, execvp(program, args.list); perror(program); - exit(1); - } else if (*pid == -1) { - fatal("fork: %s", strerror(errno)); + _exit(1); + default: + /* Parent. Close the other side, and return the local side. */ +#ifdef USE_PIPES + close(pin[0]); + close(pout[1]); + *fdout = pin[1]; + *fdin = pout[0]; +#else + close(sv[0]); + *fdin = sv[1]; + *fdout = sv[1]; +#endif + ssh_signal(SIGTERM, killchild); + ssh_signal(SIGINT, killchild); + ssh_signal(SIGHUP, killchild); + return 0; } - /* Parent. Close the other side, and return the local side. */ - close(pin[0]); - *fdout = pin[1]; - close(pout[1]); - *fdin = pout[0]; - ssh_signal(SIGTERM, killchild); - ssh_signal(SIGINT, killchild); - ssh_signal(SIGHUP, killchild); - return 0; } /* @@ -444,13 +467,14 @@ void throughlocal_sftp(struct sftp_conn *, struct sftp_conn *, int main(int argc, char **argv) { - int ch, fflag, tflag, status, n; + int ch, fflag, tflag, status, r, n; char **newargv, *argv0; const char *errstr; extern char *optarg; extern int optind; enum scp_mode_e mode = MODE_SFTP; char *sftp_direct = NULL; + long long llv; /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); @@ -480,7 +504,7 @@ main(int argc, char **argv) fflag = Tflag = tflag = 0; while ((ch = getopt(argc, argv, - "12346ABCTdfOpqRrstvD:F:J:M:P:S:c:i:l:o:")) != -1) { + "12346ABCTdfOpqRrstvD:F:J:M:P:S:c:i:l:o:X:")) != -1) { switch (ch) { /* User-visible flags. */ case '1': @@ -561,6 +585,31 @@ main(int argc, char **argv) addargs(&remote_remote_args, "-q"); showprogress = 0; break; + case 'X': + /* Please keep in sync with sftp.c -X */ + if (strncmp(optarg, "buffer=", 7) == 0) { + r = scan_scaled(optarg + 7, &llv); + if (r == 0 && (llv <= 0 || llv > 256 * 1024)) { + r = -1; + errno = EINVAL; + } + if (r == -1) { + fatal("Invalid buffer size \"%s\": %s", + optarg + 7, strerror(errno)); + } + sftp_copy_buflen = (size_t)llv; + } else if (strncmp(optarg, "nrequests=", 10) == 0) { + llv = strtonum(optarg + 10, 1, 256 * 1024, + &errstr); + if (errstr != NULL) { + fatal("Invalid number of requests " + "\"%s\": %s", optarg + 10, errstr); + } + sftp_nrequests = (size_t)llv; + } else { + fatal("Invalid -X option"); + } + break; /* Server options. */ case 'd': @@ -972,7 +1021,8 @@ do_sftp_connect(char *host, char *user, int port, char *sftp_direct, reminp, remoutp, pidp) < 0) return NULL; } - return do_init(*reminp, *remoutp, 32768, 64, limit_kbps); + return do_init(*reminp, *remoutp, + sftp_copy_buflen, sftp_nrequests, limit_kbps); } void @@ -1505,7 +1555,8 @@ sink_sftp(int argc, char *dst, const char *src, struct sftp_conn *conn) } debug3_f("copying remote %s to local %s", abs_src, dst); - if ((r = remote_glob(conn, abs_src, GLOB_MARK, NULL, &g)) != 0) { + if ((r = remote_glob(conn, abs_src, GLOB_NOCHECK|GLOB_MARK, + NULL, &g)) != 0) { if (r == GLOB_NOSPACE) error("%s: too many glob matches", src); else @@ -1514,6 +1565,20 @@ sink_sftp(int argc, char *dst, const char *src, struct sftp_conn *conn) goto out; } + /* Did we actually get any matches back from the glob? */ + if (g.gl_matchc == 0 && g.gl_pathc == 1 && g.gl_pathv[0] != 0) { + /* + * If nothing matched but a path returned, then it's probably + * a GLOB_NOCHECK result. Check whether the unglobbed path + * exists so we can give a nice error message early. + */ + if (do_stat(conn, g.gl_pathv[0], 1) == NULL) { + error("%s: %s", src, strerror(ENOENT)); + err = -1; + goto out; + } + } + if ((r = stat(dst, &st)) != 0) debug2_f("stat local \"%s\": %s", dst, strerror(errno)); dst_is_dir = r == 0 && S_ISDIR(st.st_mode); @@ -1731,7 +1796,8 @@ sink(int argc, char **argv, const char *src) } if (npatterns > 0) { for (n = 0; n < npatterns; n++) { - if (fnmatch(patterns[n], cp, 0) == 0) + if (strcmp(patterns[n], cp) == 0 || + fnmatch(patterns[n], cp, 0) == 0) break; } if (n >= npatterns) @@ -1922,7 +1988,8 @@ throughlocal_sftp(struct sftp_conn *from, struct sftp_conn *to, } debug3_f("copying remote %s to remote %s", abs_src, target); - if ((r = remote_glob(from, abs_src, GLOB_MARK, NULL, &g)) != 0) { + if ((r = remote_glob(from, abs_src, GLOB_NOCHECK|GLOB_MARK, + NULL, &g)) != 0) { if (r == GLOB_NOSPACE) error("%s: too many glob matches", src); else @@ -1931,6 +1998,20 @@ throughlocal_sftp(struct sftp_conn *from, struct sftp_conn *to, goto out; } + /* Did we actually get any matches back from the glob? */ + if (g.gl_matchc == 0 && g.gl_pathc == 1 && g.gl_pathv[0] != 0) { + /* + * If nothing matched but a path returned, then it's probably + * a GLOB_NOCHECK result. Check whether the unglobbed path + * exists so we can give a nice error message early. + */ + if (do_stat(from, g.gl_pathv[0], 1) == NULL) { + error("%s: %s", src, strerror(ENOENT)); + err = -1; + goto out; + } + } + for (i = 0; g.gl_pathv[i] && !interrupted; i++) { tmp = xstrdup(g.gl_pathv[i]); if ((filename = basename(tmp)) == NULL) { @@ -2013,8 +2094,8 @@ usage(void) { (void) fprintf(stderr, "usage: scp [-346ABCOpqRrsTv] [-c cipher] [-D sftp_server_path] [-F ssh_config]\n" - " [-i identity_file] [-J destination] [-l limit]\n" - " [-o ssh_option] [-P port] [-S program] source ... target\n"); + " [-i identity_file] [-J destination] [-l limit] [-o ssh_option]\n" + " [-P port] [-S program] [-X sftp_option] source ... target\n"); exit(1); } diff --git a/crypto/openssh/servconf.c b/crypto/openssh/servconf.c index 210d6330545d..0bffed7b582e 100644 --- a/crypto/openssh/servconf.c +++ b/crypto/openssh/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.386 2022/09/17 10:34:29 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.390 2023/01/17 09:44:48 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -197,6 +197,9 @@ initialize_server_options(ServerOptions *options) options->disable_forwarding = -1; options->expose_userauth_info = -1; options->required_rsa_size = -1; + options->channel_timeouts = NULL; + options->num_channel_timeouts = 0; + options->unused_connection_timeout = -1; options->use_blacklist = -1; } @@ -452,6 +455,8 @@ fill_default_server_options(ServerOptions *options) options->sk_provider = xstrdup("internal"); if (options->required_rsa_size == -1) options->required_rsa_size = SSH_RSA_MINIMUM_MODULUS_SIZE; + if (options->unused_connection_timeout == -1) + options->unused_connection_timeout = 0; if (options->use_blacklist == -1) options->use_blacklist = 0; @@ -468,6 +473,16 @@ fill_default_server_options(ServerOptions *options) v = NULL; \ } \ } while(0) +#define CLEAR_ON_NONE_ARRAY(v, nv, none) \ + do { \ + if (options->nv == 1 && \ + strcasecmp(options->v[0], none) == 0) { \ + free(options->v[0]); \ + free(options->v); \ + options->v = NULL; \ + options->nv = 0; \ + } \ + } while (0) CLEAR_ON_NONE(options->pid_file); CLEAR_ON_NONE(options->xauth_location); CLEAR_ON_NONE(options->banner); @@ -479,19 +494,16 @@ fill_default_server_options(ServerOptions *options) CLEAR_ON_NONE(options->chroot_directory); CLEAR_ON_NONE(options->routing_domain); CLEAR_ON_NONE(options->host_key_agent); + for (i = 0; i < options->num_host_key_files; i++) CLEAR_ON_NONE(options->host_key_files[i]); for (i = 0; i < options->num_host_cert_files; i++) CLEAR_ON_NONE(options->host_cert_files[i]); -#undef CLEAR_ON_NONE - /* Similar handling for AuthenticationMethods=any */ - if (options->num_auth_methods == 1 && - strcmp(options->auth_methods[0], "any") == 0) { - free(options->auth_methods[0]); - options->auth_methods[0] = NULL; - options->num_auth_methods = 0; - } + CLEAR_ON_NONE_ARRAY(channel_timeouts, num_channel_timeouts, "none"); + CLEAR_ON_NONE_ARRAY(auth_methods, num_auth_methods, "any"); +#undef CLEAR_ON_NONE +#undef CLEAR_ON_NONE_ARRAY } /* Keyword tokens. */ @@ -530,7 +542,7 @@ typedef enum { sStreamLocalBindMask, sStreamLocalBindUnlink, sAllowStreamLocalForwarding, sFingerprintHash, sDisableForwarding, sExposeAuthInfo, sRDomain, sPubkeyAuthOptions, sSecurityKeyProvider, - sRequiredRSASize, + sRequiredRSASize, sChannelTimeout, sUnusedConnectionTimeout, sUseBlacklist, sDeprecated, sIgnore, sUnsupported } ServerOpCodes; @@ -692,6 +704,8 @@ static struct { { "casignaturealgorithms", sCASignatureAlgorithms, SSHCFG_ALL }, { "securitykeyprovider", sSecurityKeyProvider, SSHCFG_GLOBAL }, { "requiredrsasize", sRequiredRSASize, SSHCFG_ALL }, + { "channeltimeout", sChannelTimeout, SSHCFG_ALL }, + { "unusedconnectiontimeout", sUnusedConnectionTimeout, SSHCFG_ALL }, { "useblacklist", sUseBlacklist, SSHCFG_GLOBAL }, { "useblocklist", sUseBlacklist, SSHCFG_GLOBAL }, /* alias */ { "noneenabled", sUnsupported, SSHCFG_ALL }, @@ -961,6 +975,58 @@ process_permitopen(struct ssh *ssh, ServerOptions *options) options->num_permitted_listens); } +/* Parse a ChannelTimeout clause "pattern=interval" */ +static int +parse_timeout(const char *s, char **typep, u_int *secsp) +{ + char *cp, *sdup; + int secs; + + if (typep != NULL) + *typep = NULL; + if (secsp != NULL) + *secsp = 0; + if (s == NULL) + return -1; + sdup = xstrdup(s); + + if ((cp = strchr(sdup, '=')) == NULL || cp == sdup) { + free(sdup); + return -1; + } + *cp++ = '\0'; + if ((secs = convtime(cp)) < 0) { + free(sdup); + return -1; + } + /* success */ + if (typep != NULL) + *typep = xstrdup(sdup); + if (secsp != NULL) + *secsp = (u_int)secs; + free(sdup); + return 0; +} + +void +process_channel_timeouts(struct ssh *ssh, ServerOptions *options) +{ + u_int i, secs; + char *type; + + debug3_f("setting %u timeouts", options->num_channel_timeouts); + channel_clear_timeouts(ssh); + for (i = 0; i < options->num_channel_timeouts; i++) { + if (parse_timeout(options->channel_timeouts[i], + &type, &secs) != 0) { + fatal_f("internal error: bad timeout %s", + options->channel_timeouts[i]); + } + channel_add_timeout(ssh, type, secs); + free(type); + } +} + struct connection_info * get_connection_info(struct ssh *ssh, int populate, int use_dns) { @@ -1935,6 +2001,10 @@ process_server_config_line_depth(ServerOptions *options, char *line, filename, linenum, keyword); else options->max_startups = options->max_startups_begin; + if (options->max_startups <= 0 || + options->max_startups_begin <= 0) + fatal("%s line %d: Invalid %s spec.", + filename, linenum, keyword); break; case sPerSourceNetBlockSize: @@ -2464,6 +2534,41 @@ process_server_config_line_depth(ServerOptions *options, char *line, intptr = &options->required_rsa_size; goto parse_int; + case sChannelTimeout: + uvalue = options->num_channel_timeouts; + i = 0; + while ((arg = argv_next(&ac, &av)) != NULL) { + /* Allow "none" only in first position */ + if (strcasecmp(arg, "none") == 0) { + if (i > 0 || ac > 0) { + error("%s line %d: keyword %s \"none\" " + "argument must appear alone.", + filename, linenum, keyword); + goto out; + } + } else if (parse_timeout(arg, NULL, NULL) != 0) { + fatal("%s line %d: invalid channel timeout %s", + filename, linenum, arg); + } + if (!*activep || uvalue != 0) + continue; + opt_array_append(filename, linenum, keyword, + &options->channel_timeouts, + &options->num_channel_timeouts, arg); + } + break; + + case sUnusedConnectionTimeout: + intptr = &options->unused_connection_timeout; + /* peek at first arg for "none" so we can reuse parse_time */ + if (av[0] != NULL && strcasecmp(av[0], "none") == 0) { + (void)argv_next(&ac, &av); /* consume arg */ + if (*activep) + *intptr = 0; + break; + } + goto parse_time; + case sUseBlacklist: intptr = &options->use_blacklist; goto parse_flag; @@ -2518,7 +2623,7 @@ load_server_config(const char *filename, struct sshbuf *conf) char *line = NULL, *cp; size_t linesize = 0; FILE *f; - int r, lineno = 0; + int r; debug2_f("filename %s", filename); if ((f = fopen(filename, "r")) == NULL) { @@ -2531,7 +2636,6 @@ load_server_config(const char *filename, struct sshbuf *conf) (r = sshbuf_allocate(conf, st.st_size)) != 0) fatal_fr(r, "allocate"); while (getline(&line, &linesize, f) != -1) { - lineno++; /* * Strip whitespace * NB - preserve newlines, they are needed to reproduce @@ -2641,6 +2745,7 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) M_CP_INTOPT(rekey_interval); M_CP_INTOPT(log_level); M_CP_INTOPT(required_rsa_size); + M_CP_INTOPT(unused_connection_timeout); /* * The bind_mask is a mode_t that may be unsigned, so we can't use @@ -2793,6 +2898,10 @@ fmt_intarg(ServerOpCodes code, int val) static void dump_cfg_int(ServerOpCodes code, int val) { + if (code == sUnusedConnectionTimeout && val == 0) { + printf("%s none\n", lookup_opcode_name(code)); + return; + } printf("%s %d\n", lookup_opcode_name(code), val); } @@ -2836,6 +2945,8 @@ dump_cfg_strarray_oneline(ServerOpCodes code, u_int count, char **vals) printf(" %s", vals[i]); if (code == sAuthenticationMethods && count == 0) printf(" any"); + else if (code == sChannelTimeout && count == 0) + printf(" none"); printf("\n"); } @@ -2907,6 +3018,7 @@ dump_config(ServerOptions *o) dump_cfg_int(sClientAliveCountMax, o->client_alive_count_max); dump_cfg_int(sRequiredRSASize, o->required_rsa_size); dump_cfg_oct(sStreamLocalBindMask, o->fwd_opts.streamlocal_bind_mask); + dump_cfg_int(sUnusedConnectionTimeout, o->unused_connection_timeout); /* formatted integer arguments */ dump_cfg_fmtint(sPermitRootLogin, o->permit_root_login); @@ -3005,6 +3117,8 @@ dump_config(ServerOptions *o) o->num_auth_methods, o->auth_methods); dump_cfg_strarray_oneline(sLogVerbose, o->num_log_verbose, o->log_verbose); + dump_cfg_strarray_oneline(sChannelTimeout, + o->num_channel_timeouts, o->channel_timeouts); /* other arguments */ for (i = 0; i < o->num_subsystems; i++) diff --git a/crypto/openssh/servconf.h b/crypto/openssh/servconf.h index 83d13fd82e55..de103f623f50 100644 --- a/crypto/openssh/servconf.h +++ b/crypto/openssh/servconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.h,v 1.157 2022/09/17 10:34:29 djm Exp $ */ +/* $OpenBSD: servconf.h,v 1.159 2023/01/17 09:44:48 djm Exp $ */ /* * Author: Tatu Ylonen @@ -230,6 +230,12 @@ typedef struct { u_int64_t timing_secret; char *sk_provider; int required_rsa_size; /* minimum size of RSA keys */ + + char **channel_timeouts; /* inactivity timeout by channel type */ + u_int num_channel_timeouts; + + int unused_connection_timeout; + int use_blacklist; } ServerOptions; @@ -288,6 +294,7 @@ TAILQ_HEAD(include_list, include_item); M_CP_STRARRAYOPT(auth_methods, num_auth_methods); \ M_CP_STRARRAYOPT(permitted_opens, num_permitted_opens); \ M_CP_STRARRAYOPT(permitted_listens, num_permitted_listens); \ + M_CP_STRARRAYOPT(channel_timeouts, num_channel_timeouts); \ M_CP_STRARRAYOPT(log_verbose, num_log_verbose); \ } while (0) @@ -297,6 +304,7 @@ void fill_default_server_options(ServerOptions *); int process_server_config_line(ServerOptions *, char *, const char *, int, int *, struct connection_info *, struct include_list *includes); void process_permitopen(struct ssh *ssh, ServerOptions *options); +void process_channel_timeouts(struct ssh *ssh, ServerOptions *); void load_server_config(const char *, struct sshbuf *); void parse_server_config(ServerOptions *, const char *, struct sshbuf *, struct include_list *includes, struct connection_info *, int); diff --git a/crypto/openssh/serverloop.c b/crypto/openssh/serverloop.c index b4c0d82b242d..6db0916d8220 100644 --- a/crypto/openssh/serverloop.c +++ b/crypto/openssh/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.232 2022/04/20 04:19:11 djm Exp $ */ +/* $OpenBSD: serverloop.c,v 1.234 2023/01/17 09:44:48 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -168,28 +168,41 @@ client_alive_check(struct ssh *ssh) static void wait_until_can_do_something(struct ssh *ssh, int connection_in, int connection_out, struct pollfd **pfdp, - u_int *npfd_allocp, u_int *npfd_activep, u_int64_t max_time_ms, - sigset_t *sigsetp, int *conn_in_readyp, int *conn_out_readyp) + u_int *npfd_allocp, u_int *npfd_activep, sigset_t *sigsetp, + int *conn_in_readyp, int *conn_out_readyp) { - struct timespec ts, *tsp; + struct timespec timeout; + char remote_id[512]; int ret; - time_t minwait_secs = 0; int client_alive_scheduled = 0; u_int p; - /* time we last heard from the client OR sent a keepalive */ - static time_t last_client_time; + time_t now; + static time_t last_client_time, unused_connection_expiry; *conn_in_readyp = *conn_out_readyp = 0; /* Prepare channel poll. First two pollfd entries are reserved */ - channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, - 2, &minwait_secs); + ptimeout_init(&timeout); + channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, 2, &timeout); + now = monotime(); if (*npfd_activep < 2) fatal_f("bad npfd %u", *npfd_activep); /* shouldn't happen */ + if (options.rekey_interval > 0 && !ssh_packet_is_rekeying(ssh)) { + ptimeout_deadline_sec(&timeout, + ssh_packet_get_rekey_timeout(ssh)); + } - /* XXX need proper deadline system for rekey/client alive */ - if (minwait_secs != 0) - max_time_ms = MINIMUM(max_time_ms, (u_int)minwait_secs * 1000); + /* + * If no channels are open and UnusedConnectionTimeout is set, then + * start the clock to terminate the connection. + */ + if (options.unused_connection_timeout != 0) { + if (channel_still_open(ssh) || unused_connection_expiry == 0) { + unused_connection_expiry = now + + options.unused_connection_timeout; + } + ptimeout_deadline_monotime(&timeout, unused_connection_expiry); + } /* * if using client_alive, set the max timeout accordingly, @@ -200,15 +213,12 @@ wait_until_can_do_something(struct ssh *ssh, * analysis more difficult, but we're not doing it yet. */ if (options.client_alive_interval) { - uint64_t keepalive_ms = - (uint64_t)options.client_alive_interval * 1000; - - if (max_time_ms == 0 || max_time_ms > keepalive_ms) { - max_time_ms = keepalive_ms; - client_alive_scheduled = 1; - } + /* Time we last heard from the client OR sent a keepalive */ if (last_client_time == 0) - last_client_time = monotime(); + last_client_time = now; + ptimeout_deadline_sec(&timeout, options.client_alive_interval); + /* XXX ? deadline_monotime(last_client_time + alive_interval) */ + client_alive_scheduled = 1; } #if 0 @@ -226,19 +236,10 @@ wait_until_can_do_something(struct ssh *ssh, * from it, then read as much as is available and exit. */ if (child_terminated && ssh_packet_not_very_much_data_to_write(ssh)) - if (max_time_ms == 0 || client_alive_scheduled) - max_time_ms = 100; - - if (max_time_ms == 0) - tsp = NULL; - else { - ts.tv_sec = max_time_ms / 1000; - ts.tv_nsec = 1000000 * (max_time_ms % 1000); - tsp = &ts; - } + ptimeout_deadline_ms(&timeout, 100); /* Wait for something to happen, or the timeout to expire. */ - ret = ppoll(*pfdp, *npfd_activep, tsp, sigsetp); + ret = ppoll(*pfdp, *npfd_activep, ptimeout_get_tsp(&timeout), sigsetp); if (ret == -1) { for (p = 0; p < *npfd_activep; p++) @@ -251,19 +252,26 @@ wait_until_can_do_something(struct ssh *ssh, *conn_in_readyp = (*pfdp)[0].revents != 0; *conn_out_readyp = (*pfdp)[1].revents != 0; + now = monotime(); /* need to reset after ppoll() */ + /* ClientAliveInterval probing */ if (client_alive_scheduled) { - time_t now = monotime(); - - /* - * If the ppoll timed out, or returned for some other reason - * but we haven't heard from the client in time, send keepalive. - */ - if (ret == 0 || (last_client_time != 0 && last_client_time + - options.client_alive_interval <= now)) { + if (ret == 0 && + now > last_client_time + options.client_alive_interval) { + /* ppoll timed out and we're due to probe */ client_alive_check(ssh); last_client_time = now; - } else if (*conn_in_readyp) + } else if (ret != 0 && *conn_in_readyp) { + /* Data from peer; reset probe timer. */ last_client_time = now; + } + } + + /* UnusedConnectionTimeout handling */ + if (unused_connection_expiry != 0 && + now > unused_connection_expiry && !channel_still_open(ssh)) { + sshpkt_fmt_connection_id(ssh, remote_id, sizeof(remote_id)); + logit("terminating inactive connection from %s", remote_id); + cleanup_exit(255); } } @@ -338,7 +346,6 @@ server_loop2(struct ssh *ssh, Authctxt *authctxt) u_int npfd_alloc = 0, npfd_active = 0; int r, conn_in_ready, conn_out_ready; u_int connection_in, connection_out; - u_int64_t rekey_timeout_ms = 0; sigset_t bsigset, osigset; debug("Entering interactive session for SSH2."); @@ -364,13 +371,6 @@ server_loop2(struct ssh *ssh, Authctxt *authctxt) if (!ssh_packet_is_rekeying(ssh) && ssh_packet_not_very_much_data_to_write(ssh)) channel_output_poll(ssh); - if (options.rekey_interval > 0 && - !ssh_packet_is_rekeying(ssh)) { - rekey_timeout_ms = ssh_packet_get_rekey_timeout(ssh) * - 1000; - } else { - rekey_timeout_ms = 0; - } /* * Block SIGCHLD while we check for dead children, then pass @@ -381,7 +381,7 @@ server_loop2(struct ssh *ssh, Authctxt *authctxt) error_f("bsigset sigprocmask: %s", strerror(errno)); collect_children(ssh); wait_until_can_do_something(ssh, connection_in, connection_out, - &pfd, &npfd_alloc, &npfd_active, rekey_timeout_ms, &osigset, + &pfd, &npfd_alloc, &npfd_active, &osigset, &conn_in_ready, &conn_out_ready); if (sigprocmask(SIG_UNBLOCK, &bsigset, &osigset) == -1) error_f("osigset sigprocmask: %s", strerror(errno)); diff --git a/crypto/openssh/session.c b/crypto/openssh/session.c index ba0bbffdb440..e45f891d4f97 100644 --- a/crypto/openssh/session.c +++ b/crypto/openssh/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.330 2022/02/08 08:59:12 dtucker Exp $ */ +/* $OpenBSD: session.c,v 1.333 2023/01/06 02:42:34 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -222,7 +222,7 @@ auth_input_request_forwarding(struct ssh *ssh, struct passwd * pw) goto authsock_err; /* Allocate a channel for the authentication agent socket. */ - nc = channel_new(ssh, "auth socket", + nc = channel_new(ssh, "auth-listener", SSH_CHANNEL_AUTH_SOCKET, sock, sock, -1, CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, 0, "auth socket", 1); @@ -1973,7 +1973,7 @@ session_subsystem_req(struct ssh *ssh, Session *s) { struct stat st; int r, success = 0; - char *prog, *cmd; + char *prog, *cmd, *type; u_int i; if ((r = sshpkt_get_cstring(ssh, &s->subsys, NULL)) != 0 || @@ -1996,6 +1996,10 @@ session_subsystem_req(struct ssh *ssh, Session *s) s->is_subsystem = SUBSYSTEM_EXT; debug("subsystem: exec() %s", cmd); } + xasprintf(&type, "session:subsystem:%s", + options.subsystem_name[i]); + channel_set_xtype(ssh, s->chanid, type); + free(type); success = do_exec(ssh, s, cmd) == 0; break; } @@ -2051,6 +2055,9 @@ session_shell_req(struct ssh *ssh, Session *s) if ((r = sshpkt_get_end(ssh)) != 0) sshpkt_fatal(ssh, r, "%s: parse packet", __func__); + + channel_set_xtype(ssh, s->chanid, "session:shell"); + return do_exec(ssh, s, NULL) == 0; } @@ -2065,6 +2072,8 @@ session_exec_req(struct ssh *ssh, Session *s) (r = sshpkt_get_end(ssh)) != 0) sshpkt_fatal(ssh, r, "%s: parse packet", __func__); + channel_set_xtype(ssh, s->chanid, "session:command"); + success = do_exec(ssh, s, command) == 0; free(command); return success; @@ -2353,7 +2362,7 @@ session_close_x11(struct ssh *ssh, int id) } static void -session_close_single_x11(struct ssh *ssh, int id, void *arg) +session_close_single_x11(struct ssh *ssh, int id, int force, void *arg) { Session *s; u_int i; @@ -2487,7 +2496,7 @@ session_close_by_pid(struct ssh *ssh, pid_t pid, int status) * the session 'child' itself dies */ void -session_close_by_channel(struct ssh *ssh, int id, void *arg) +session_close_by_channel(struct ssh *ssh, int id, int force, void *arg) { Session *s = session_by_channel(id); u_int i; @@ -2500,12 +2509,14 @@ session_close_by_channel(struct ssh *ssh, int id, void *arg) if (s->pid != 0) { debug_f("channel %d: has child, ttyfd %d", id, s->ttyfd); /* - * delay detach of session, but release pty, since - * the fd's to the child are already closed + * delay detach of session (unless this is a forced close), + * but release pty, since the fd's to the child are already + * closed */ if (s->ttyfd != -1) session_pty_cleanup(s); - return; + if (!force) + return; } /* detach by removing callback */ channel_cancel_cleanup(ssh, s->chanid); diff --git a/crypto/openssh/session.h b/crypto/openssh/session.h index ce59dabd906d..344a1ddf9d54 100644 --- a/crypto/openssh/session.h +++ b/crypto/openssh/session.h @@ -1,4 +1,4 @@ -/* $OpenBSD: session.h,v 1.36 2018/10/02 12:40:07 djm Exp $ */ +/* $OpenBSD: session.h,v 1.37 2023/01/06 02:39:59 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -70,7 +70,7 @@ int session_open(Authctxt *, int); void session_unused(int); int session_input_channel_req(struct ssh *, Channel *, const char *); void session_close_by_pid(struct ssh *ssh, pid_t, int); -void session_close_by_channel(struct ssh *, int, void *); +void session_close_by_channel(struct ssh *, int, int, void *); void session_destroy_all(struct ssh *, void (*)(Session *)); void session_pty_cleanup2(Session *); diff --git a/crypto/openssh/sftp-client.c b/crypto/openssh/sftp-client.c index 35be53d697b6..e01464818064 100644 --- a/crypto/openssh/sftp-client.c +++ b/crypto/openssh/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.165 2022/09/19 10:43:12 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.168 2023/01/11 05:39:38 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -68,10 +68,10 @@ extern volatile sig_atomic_t interrupted; extern int showprogress; -/* Default size of buffer for up/download */ +/* Default size of buffer for up/download (fix sftp.1 scp.1 if changed) */ #define DEFAULT_COPY_BUFLEN 32768 -/* Default number of concurrent outstanding requests */ +/* Default number of concurrent xfer requests (fix sftp.1 scp.1 if changed) */ #define DEFAULT_NUM_REQUESTS 64 /* Minimum amount of data to read at a time */ @@ -566,17 +566,26 @@ do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests, /* If the caller did not specify, find a good value */ if (transfer_buflen == 0) { - ret->download_buflen = limits.read_length; - ret->upload_buflen = limits.write_length; - debug("Using server download size %u", ret->download_buflen); - debug("Using server upload size %u", ret->upload_buflen); + ret->download_buflen = MINIMUM(limits.read_length, + SFTP_MAX_MSG_LENGTH - 1024); + ret->upload_buflen = MINIMUM(limits.write_length, + SFTP_MAX_MSG_LENGTH - 1024); + ret->download_buflen = MAXIMUM(ret->download_buflen, 64); + ret->upload_buflen = MAXIMUM(ret->upload_buflen, 64); + debug3("server upload/download buffer sizes " + "%llu / %llu; using %u / %u", + (unsigned long long)limits.write_length, + (unsigned long long)limits.read_length, + ret->upload_buflen, ret->download_buflen); } /* Use the server limit to scale down our value only */ if (num_requests == 0 && limits.open_handles) { ret->num_requests = MINIMUM(DEFAULT_NUM_REQUESTS, limits.open_handles); - debug("Server handle limit %llu; using %u", + if (ret->num_requests == 0) + ret->num_requests = 1; + debug3("server handle limit %llu; using %u", (unsigned long long)limits.open_handles, ret->num_requests); } diff --git a/crypto/openssh/sftp-glob.c b/crypto/openssh/sftp-glob.c index 764e99552d42..afeb15f9ec11 100644 --- a/crypto/openssh/sftp-glob.c +++ b/crypto/openssh/sftp-glob.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-glob.c,v 1.30 2022/02/25 09:46:24 dtucker Exp $ */ +/* $OpenBSD: sftp-glob.c,v 1.31 2022/10/24 21:51:55 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -137,6 +137,11 @@ int remote_glob(struct sftp_conn *conn, const char *pattern, int flags, int (*errfunc)(const char *, int), glob_t *pglob) { + int r; + size_t l; + char *s; + struct stat sb; + pglob->gl_opendir = fudge_opendir; pglob->gl_readdir = (struct dirent *(*)(void *))fudge_readdir; pglob->gl_closedir = (void (*)(void *))fudge_closedir; @@ -146,5 +151,30 @@ remote_glob(struct sftp_conn *conn, const char *pattern, int flags, memset(&cur, 0, sizeof(cur)); cur.conn = conn; - return(glob(pattern, flags | GLOB_ALTDIRFUNC, errfunc, pglob)); + if ((r = glob(pattern, flags | GLOB_ALTDIRFUNC, errfunc, pglob)) != 0) + return r; + /* + * When both GLOB_NOCHECK and GLOB_MARK are active, a single gl_pathv + * entry has been returned and that entry has not already been marked, + * then check whether it needs a '/' appended as a directory mark. + * + * This ensures that a NOCHECK result is annotated as a directory. + * The glob(3) spec doesn't promise to mark NOCHECK entries, but doing + * it simplifies our callers (sftp/scp) considerably. + * + * XXX doesn't try to handle gl_offs. + */ + if ((flags & (GLOB_NOCHECK|GLOB_MARK)) == (GLOB_NOCHECK|GLOB_MARK) && + pglob->gl_matchc == 0 && pglob->gl_offs == 0 && + pglob->gl_pathc == 1 && (s = pglob->gl_pathv[0]) != NULL && + (l = strlen(s)) > 0 && s[l-1] != '/') { + if (fudge_stat(s, &sb) == 0 && S_ISDIR(sb.st_mode)) { + /* NOCHECK on a directory; annotate */ + if ((s = realloc(s, l + 2)) != NULL) { + memcpy(s + l, "/", 2); + pglob->gl_pathv[0] = s; + } + } + } + return 0; } diff --git a/crypto/openssh/sftp-server.c b/crypto/openssh/sftp-server.c index 25f953489759..fe61a35159b3 100644 --- a/crypto/openssh/sftp-server.c +++ b/crypto/openssh/sftp-server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server.c,v 1.144 2022/09/19 10:41:58 djm Exp $ */ +/* $OpenBSD: sftp-server.c,v 1.145 2022/11/09 09:04:12 dtucker Exp $ */ /* * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. * @@ -1745,7 +1745,7 @@ process_extended_get_users_groups_by_id(u_int32_t id) name = user_pw == NULL ? "" : user_pw->pw_name; debug3_f("uid %u => \"%s\"", n, name); if ((r = sshbuf_put_cstring(usernames, name)) != 0) - fatal_fr(r, "assemble gid reply"); + fatal_fr(r, "assemble uid reply"); nusers++; } while (sshbuf_len(gids) != 0) { diff --git a/crypto/openssh/sftp.1 b/crypto/openssh/sftp.1 index 3b3f2c5a7917..68923ae20b19 100644 --- a/crypto/openssh/sftp.1 +++ b/crypto/openssh/sftp.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sftp.1,v 1.142 2022/09/19 21:39:16 djm Exp $ +.\" $OpenBSD: sftp.1,v 1.143 2022/12/16 03:40:03 djm Exp $ .\" .\" Copyright (c) 2001 Damien Miller. 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: September 19 2022 $ +.Dd $Mdocdate: December 16 2022 $ .Dt SFTP 1 .Os .Sh NAME @@ -44,6 +44,7 @@ .Op Fl R Ar num_requests .Op Fl S Ar program .Op Fl s Ar subsystem | sftp_server +.Op Fl X Ar sftp_option .Ar destination .Sh DESCRIPTION .Nm @@ -320,6 +321,19 @@ does not have an sftp subsystem configured. .It Fl v Raise logging level. This option is also passed to ssh. +.It Fl X Ar sftp_option +Specify an option that controls aspects of SFTP protocol behaviour. +The valid options are: +.Bl -tag -width Ds +.It Cm nrequests Ns = Ns Ar value +Controls how many concurrent SFTP read or write requests may be in progress +at any point in time during a download or upload. +By default 64 requests may be active concurrently. +.It Cm buffer Ns = Ns Ar value +Controls the maximum buffer size for a single SFTP read/write operation used +during download or upload. +By default a 32KB buffer is used. +.El .El .Sh INTERACTIVE COMMANDS Once in interactive mode, diff --git a/crypto/openssh/sftp.c b/crypto/openssh/sftp.c index c3c347e087e4..b3616c15cd09 100644 --- a/crypto/openssh/sftp.c +++ b/crypto/openssh/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.222 2022/09/19 10:46:00 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.225 2023/01/05 05:49:13 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -275,7 +275,8 @@ sigchld_handler(int sig) while ((pid = waitpid(sshpid, NULL, WNOHANG)) == -1 && errno == EINTR) continue; if (pid == sshpid) { - (void)write(STDERR_FILENO, msg, sizeof(msg) - 1); + if (!quiet) + (void)write(STDERR_FILENO, msg, sizeof(msg) - 1); sshpid = -1; } @@ -2410,7 +2411,7 @@ usage(void) " [-D sftp_server_command] [-F ssh_config] [-i identity_file]\n" " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" " [-R num_requests] [-S program] [-s subsystem | sftp_server]\n" - " destination\n", + " [-X sftp_option] destination\n", __progname); exit(1); } @@ -2431,7 +2432,7 @@ main(int argc, char **argv) struct sftp_conn *conn; size_t copy_buffer_len = 0; size_t num_requests = 0; - long long limit_kbps = 0; + long long llv, limit_kbps = 0; /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); @@ -2449,7 +2450,7 @@ main(int argc, char **argv) infile = stdin; while ((ch = getopt(argc, argv, - "1246AafhNpqrvCc:D:i:l:o:s:S:b:B:F:J:P:R:")) != -1) { + "1246AafhNpqrvCc:D:i:l:o:s:S:b:B:F:J:P:R:X:")) != -1) { switch (ch) { /* Passed through to ssh(1) */ case 'A': @@ -2546,6 +2547,31 @@ main(int argc, char **argv) ssh_program = optarg; replacearg(&args, 0, "%s", ssh_program); break; + case 'X': + /* Please keep in sync with ssh.c -X */ + if (strncmp(optarg, "buffer=", 7) == 0) { + r = scan_scaled(optarg + 7, &llv); + if (r == 0 && (llv <= 0 || llv > 256 * 1024)) { + r = -1; + errno = EINVAL; + } + if (r == -1) { + fatal("Invalid buffer size \"%s\": %s", + optarg + 7, strerror(errno)); + } + copy_buffer_len = (size_t)llv; + } else if (strncmp(optarg, "nrequests=", 10) == 0) { + llv = strtonum(optarg + 10, 1, 256 * 1024, + &errstr); + if (errstr != NULL) { + fatal("Invalid number of requests " + "\"%s\": %s", optarg + 10, errstr); + } + num_requests = (size_t)llv; + } else { + fatal("Invalid -X option"); + } + break; case 'h': default: usage(); diff --git a/crypto/openssh/sntrup761.c b/crypto/openssh/sntrup761.c index c63e600fb5b4..57368bd80610 100644 --- a/crypto/openssh/sntrup761.c +++ b/crypto/openssh/sntrup761.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sntrup761.c,v 1.5 2021/01/08 02:33:13 dtucker Exp $ */ +/* $OpenBSD: sntrup761.c,v 1.6 2023/01/11 02:13:52 djm Exp $ */ /* * Public Domain, Authors: @@ -119,7 +119,7 @@ This software is designed to take time independent of x. Time still varies depending on m; user must ensure that m is constant. Time also varies on CPUs where multiplication is variable-time. There could be more CPU issues. -There could also be compiler issues. +There could also be compiler issues. */ static void uint32_divmod_uint14(uint32 *q,uint16 *r,uint32 x,uint16 m) @@ -447,7 +447,7 @@ static Fq Fq_freeze(int32 x) #ifndef LPR static Fq Fq_recip(Fq a1) -{ +{ int i = 1; Fq ai = a1; @@ -456,7 +456,7 @@ static Fq Fq_recip(Fq a1) i += 1; } return ai; -} +} #endif @@ -525,11 +525,11 @@ static void R3_mult(small *h,const small *f,const small *g) /* returns 0 if recip succeeded; else -1 */ static int R3_recip(small *out,const small *in) -{ +{ small f[p+1],g[p+1],v[p+1],r[p+1]; int i,loop,delta; int sign,swap,t; - + for (i = 0;i < p+1;++i) v[i] = 0; for (i = 0;i < p+1;++i) r[i] = 0; r[0] = 1; @@ -537,35 +537,35 @@ static int R3_recip(small *out,const small *in) f[0] = 1; f[p-1] = f[p] = -1; for (i = 0;i < p;++i) g[p-1-i] = in[i]; g[p] = 0; - - delta = 1; + + delta = 1; for (loop = 0;loop < 2*p-1;++loop) { for (i = p;i > 0;--i) v[i] = v[i-1]; v[0] = 0; - + sign = -g[0]*f[0]; swap = int16_negative_mask(-delta) & int16_nonzero_mask(g[0]); delta ^= swap&(delta^-delta); delta += 1; - + for (i = 0;i < p+1;++i) { t = swap&(f[i]^g[i]); f[i] ^= t; g[i] ^= t; t = swap&(v[i]^r[i]); v[i] ^= t; r[i] ^= t; } - + for (i = 0;i < p+1;++i) g[i] = F3_freeze(g[i]+sign*f[i]); for (i = 0;i < p+1;++i) r[i] = F3_freeze(r[i]+sign*v[i]); for (i = 0;i < p;++i) g[i] = g[i+1]; g[p] = 0; } - + sign = f[0]; for (i = 0;i < p;++i) out[i] = sign*v[p-1-i]; - + return int16_nonzero_mask(delta); -} +} #endif @@ -603,14 +603,14 @@ static void Rq_mult_small(Fq *h,const Fq *f,const small *g) static void Rq_mult3(Fq *h,const Fq *f) { int i; - + for (i = 0;i < p;++i) h[i] = Fq_freeze(3*f[i]); } /* out = 1/(3*in) in Rq */ /* returns 0 if recip succeeded; else -1 */ static int Rq_recip3(Fq *out,const small *in) -{ +{ Fq f[p+1],g[p+1],v[p+1],r[p+1]; int i,loop,delta; int swap,t; @@ -739,7 +739,7 @@ static void KeyGen(Fq *h,small *f,small *ginv) { small g[p]; Fq finv[p]; - + for (;;) { Small_random(g); if (R3_recip(ginv,g) == 0) break; @@ -777,7 +777,7 @@ static void Decrypt(small *r,const Fq *c,const small *f,const small *ginv) for (i = 0;i < w;++i) r[i] = ((ev[i]^1)&~mask)^1; for (i = w;i < p;++i) r[i] = ev[i]&~mask; } - + #endif /* ----- NTRU LPRime Core */ @@ -817,7 +817,7 @@ static void Decrypt(int8 *r,const Fq *B,const int8 *T,const small *a) for (i = 0;i < I;++i) r[i] = -int16_negative_mask(Fq_freeze(Right(T[i])-aB[i]+4*w+1)); } - + #endif /* ----- encoding I-bit inputs */ @@ -898,7 +898,7 @@ static void HashShort(small *out,const Inputs r) } #endif - + /* ----- NTRU LPRime Expand */ #ifdef LPR @@ -974,7 +974,7 @@ static void Rq_encode(unsigned char *s,const Fq *r) { uint16 R[p],M[p]; int i; - + for (i = 0;i < p;++i) R[i] = r[i]+q12; for (i = 0;i < p;++i) M[i] = q; Encode(s,R,M,p); @@ -989,7 +989,7 @@ static void Rq_decode(Fq *r,const unsigned char *s) Decode(R,s,M,p); for (i = 0;i < p;++i) r[i] = ((Fq)R[i])-q12; } - + #endif /* ----- encoding rounded polynomials */ diff --git a/crypto/openssh/sntrup761.sh b/crypto/openssh/sntrup761.sh index 5cd5f92c31d7..db4e9aed08ac 100644 --- a/crypto/openssh/sntrup761.sh +++ b/crypto/openssh/sntrup761.sh @@ -1,5 +1,5 @@ #!/bin/sh -# $OpenBSD: sntrup761.sh,v 1.5 2021/01/08 02:33:13 dtucker Exp $ +# $OpenBSD: sntrup761.sh,v 1.7 2023/01/11 02:13:52 djm Exp $ # Placed in the Public Domain. # AUTHOR="supercop-20201130/crypto_kem/sntrup761/ref/implementors" @@ -45,7 +45,7 @@ for i in $FILES; do # - remove all includes, we inline everything required. # - make functions not required elsewhere static. # - rename the functions we do use. - # - remove unneccesary defines and externs. + # - remove unnecessary defines and externs. sed -e "/#include/d" \ -e "s/crypto_kem_/crypto_kem_sntrup761_/g" \ -e "s/^void /static void /g" \ @@ -54,6 +54,7 @@ for i in $FILES; do -e "/^extern /d" \ -e '/CRYPTO_NAMESPACE/d' \ -e "/^#define int32 crypto_int32/d" \ + -e 's/[ ]*$//' \ $i | \ case "$i" in # Use int64_t for intermediate values in int32_MINMAX to prevent signed diff --git a/crypto/openssh/ssh-agent.1 b/crypto/openssh/ssh-agent.1 index e918691ba9f7..e1fe387ebaf5 100644 --- a/crypto/openssh/ssh-agent.1 +++ b/crypto/openssh/ssh-agent.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-agent.1,v 1.73 2022/03/31 17:27:27 naddy Exp $ +.\" $OpenBSD: ssh-agent.1,v 1.75 2022/10/07 06:00:58 jmc Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -34,7 +34,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: March 31 2022 $ +.Dd $Mdocdate: October 7 2022 $ .Dt SSH-AGENT 1 .Os .Sh NAME @@ -46,11 +46,13 @@ .Op Fl \&Ddx .Op Fl a Ar bind_address .Op Fl E Ar fingerprint_hash +.Op Fl O Ar option .Op Fl P Ar allowed_providers .Op Fl t Ar life .Nm ssh-agent .Op Fl a Ar bind_address .Op Fl E Ar fingerprint_hash +.Op Fl O Ar option .Op Fl P Ar allowed_providers .Op Fl t Ar life .Ar command Op Ar arg ... @@ -102,6 +104,27 @@ The default is Kill the current agent (given by the .Ev SSH_AGENT_PID environment variable). +.It Fl O Ar option +Specify an option when starting +.Nm . +Currently only one option is supported: +.Cm no-restrict-websafe . +This instructs +.Nm +to permit signatures using FIDO keys that might be web authentication +requests. +By default, +.Nm +refuses signature requests for FIDO keys where the key application string +does not start with +.Dq ssh: +and when the data to be signed does not appear to be a +.Xr ssh 1 +user authentication request or a +.Xr ssh-keygen 1 +signature. +The default behaviour prevents forwarded access to a FIDO key from also +implicitly forwarding the ability to authenticate to websites. .It Fl P Ar allowed_providers Specify a pattern-list of acceptable paths for PKCS#11 provider and FIDO authenticator middleware shared libraries that may be used with the diff --git a/crypto/openssh/ssh-agent.c b/crypto/openssh/ssh-agent.c index 9db1d353ccfd..f1e9247547e6 100644 --- a/crypto/openssh/ssh-agent.c +++ b/crypto/openssh/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.292 2022/09/17 10:11:29 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.294 2022/12/04 11:03:11 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -87,7 +87,6 @@ #include "ssherr.h" #include "match.h" #include "msg.h" -#include "ssherr.h" #include "pathnames.h" #include "ssh-pkcs11.h" #include "sk-api.h" @@ -2014,9 +2013,9 @@ usage(void) { fprintf(stderr, "usage: ssh-agent [-c | -s] [-Ddx] [-a bind_address] [-E fingerprint_hash]\n" - " [-P allowed_providers] [-t life]\n" - " ssh-agent [-a bind_address] [-E fingerprint_hash] [-P allowed_providers]\n" - " [-t life] command [arg ...]\n" + " [-O option] [-P allowed_providers] [-t life]\n" + " ssh-agent [-a bind_address] [-E fingerprint_hash] [-O option]\n" + " [-P allowed_providers] [-t life] command [arg ...]\n" " ssh-agent [-c | -s] -k\n"); exit(1); } diff --git a/crypto/openssh/ssh-dss.c b/crypto/openssh/ssh-dss.c index fddc29cc9173..2ea0c0a55760 100644 --- a/crypto/openssh/ssh-dss.c +++ b/crypto/openssh/ssh-dss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-dss.c,v 1.39 2020/02/26 13:40:09 jsg Exp $ */ +/* $OpenBSD: ssh-dss.c,v 1.48 2022/10/28 00:44:44 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -48,9 +48,219 @@ #define INTBLOB_LEN 20 #define SIGBLOB_LEN (2*INTBLOB_LEN) -int -ssh_dss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat) +static u_int +ssh_dss_size(const struct sshkey *key) +{ + const BIGNUM *dsa_p; + + if (key->dsa == NULL) + return 0; + DSA_get0_pqg(key->dsa, &dsa_p, NULL, NULL); + return BN_num_bits(dsa_p); +} + +static int +ssh_dss_alloc(struct sshkey *k) +{ + if ((k->dsa = DSA_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + return 0; +} + +static void +ssh_dss_cleanup(struct sshkey *k) +{ + DSA_free(k->dsa); + k->dsa = NULL; +} + +static int +ssh_dss_equal(const struct sshkey *a, const struct sshkey *b) +{ + const BIGNUM *dsa_p_a, *dsa_q_a, *dsa_g_a, *dsa_pub_key_a; + const BIGNUM *dsa_p_b, *dsa_q_b, *dsa_g_b, *dsa_pub_key_b; + + if (a->dsa == NULL || b->dsa == NULL) + return 0; + DSA_get0_pqg(a->dsa, &dsa_p_a, &dsa_q_a, &dsa_g_a); + DSA_get0_pqg(b->dsa, &dsa_p_b, &dsa_q_b, &dsa_g_b); + DSA_get0_key(a->dsa, &dsa_pub_key_a, NULL); + DSA_get0_key(b->dsa, &dsa_pub_key_b, NULL); + if (dsa_p_a == NULL || dsa_p_b == NULL || + dsa_q_a == NULL || dsa_q_b == NULL || + dsa_g_a == NULL || dsa_g_b == NULL || + dsa_pub_key_a == NULL || dsa_pub_key_b == NULL) + return 0; + if (BN_cmp(dsa_p_a, dsa_p_b) != 0) + return 0; + if (BN_cmp(dsa_q_a, dsa_q_b) != 0) + return 0; + if (BN_cmp(dsa_g_a, dsa_g_b) != 0) + return 0; + if (BN_cmp(dsa_pub_key_a, dsa_pub_key_b) != 0) + return 0; + return 1; +} + +static int +ssh_dss_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + const BIGNUM *dsa_p, *dsa_q, *dsa_g, *dsa_pub_key; + + if (key->dsa == NULL) + return SSH_ERR_INVALID_ARGUMENT; + DSA_get0_pqg(key->dsa, &dsa_p, &dsa_q, &dsa_g); + DSA_get0_key(key->dsa, &dsa_pub_key, NULL); + if (dsa_p == NULL || dsa_q == NULL || + dsa_g == NULL || dsa_pub_key == NULL) + return SSH_ERR_INTERNAL_ERROR; + if ((r = sshbuf_put_bignum2(b, dsa_p)) != 0 || + (r = sshbuf_put_bignum2(b, dsa_q)) != 0 || + (r = sshbuf_put_bignum2(b, dsa_g)) != 0 || + (r = sshbuf_put_bignum2(b, dsa_pub_key)) != 0) + return r; + + return 0; +} + +static int +ssh_dss_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + const BIGNUM *dsa_priv_key; + + DSA_get0_key(key->dsa, NULL, &dsa_priv_key); + if (!sshkey_is_cert(key)) { + if ((r = ssh_dss_serialize_public(key, b, opts)) != 0) + return r; + } + if ((r = sshbuf_put_bignum2(b, dsa_priv_key)) != 0) + return r; + + return 0; +} + +static int +ssh_dss_generate(struct sshkey *k, int bits) +{ + DSA *private; + + if (bits != 1024) + return SSH_ERR_KEY_LENGTH; + if ((private = DSA_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + if (!DSA_generate_parameters_ex(private, bits, NULL, 0, NULL, + NULL, NULL) || !DSA_generate_key(private)) { + DSA_free(private); + return SSH_ERR_LIBCRYPTO_ERROR; + } + k->dsa = private; + return 0; +} + +static int +ssh_dss_copy_public(const struct sshkey *from, struct sshkey *to) +{ + const BIGNUM *dsa_p, *dsa_q, *dsa_g, *dsa_pub_key; + BIGNUM *dsa_p_dup = NULL, *dsa_q_dup = NULL, *dsa_g_dup = NULL; + BIGNUM *dsa_pub_key_dup = NULL; + int r = SSH_ERR_INTERNAL_ERROR; + + DSA_get0_pqg(from->dsa, &dsa_p, &dsa_q, &dsa_g); + DSA_get0_key(from->dsa, &dsa_pub_key, NULL); + if ((dsa_p_dup = BN_dup(dsa_p)) == NULL || + (dsa_q_dup = BN_dup(dsa_q)) == NULL || + (dsa_g_dup = BN_dup(dsa_g)) == NULL || + (dsa_pub_key_dup = BN_dup(dsa_pub_key)) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + if (!DSA_set0_pqg(to->dsa, dsa_p_dup, dsa_q_dup, dsa_g_dup)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + dsa_p_dup = dsa_q_dup = dsa_g_dup = NULL; /* transferred */ + if (!DSA_set0_key(to->dsa, dsa_pub_key_dup, NULL)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + dsa_pub_key_dup = NULL; /* transferred */ + /* success */ + r = 0; + out: + BN_clear_free(dsa_p_dup); + BN_clear_free(dsa_q_dup); + BN_clear_free(dsa_g_dup); + BN_clear_free(dsa_pub_key_dup); + return r; +} + +static int +ssh_dss_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int ret = SSH_ERR_INTERNAL_ERROR; + BIGNUM *dsa_p = NULL, *dsa_q = NULL, *dsa_g = NULL, *dsa_pub_key = NULL; + + if (sshbuf_get_bignum2(b, &dsa_p) != 0 || + sshbuf_get_bignum2(b, &dsa_q) != 0 || + sshbuf_get_bignum2(b, &dsa_g) != 0 || + sshbuf_get_bignum2(b, &dsa_pub_key) != 0) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } + if (!DSA_set0_pqg(key->dsa, dsa_p, dsa_q, dsa_g)) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + dsa_p = dsa_q = dsa_g = NULL; /* transferred */ + if (!DSA_set0_key(key->dsa, dsa_pub_key, NULL)) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + dsa_pub_key = NULL; /* transferred */ +#ifdef DEBUG_PK + DSA_print_fp(stderr, key->dsa, 8); +#endif + /* success */ + ret = 0; + out: + BN_clear_free(dsa_p); + BN_clear_free(dsa_q); + BN_clear_free(dsa_g); + BN_clear_free(dsa_pub_key); + return ret; +} + +static int +ssh_dss_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + BIGNUM *dsa_priv_key = NULL; + + if (!sshkey_is_cert(key)) { + if ((r = ssh_dss_deserialize_public(ktype, b, key)) != 0) + return r; + } + + if ((r = sshbuf_get_bignum2(b, &dsa_priv_key)) != 0) + return r; + if (!DSA_set0_key(key->dsa, NULL, dsa_priv_key)) { + BN_clear_free(dsa_priv_key); + return SSH_ERR_LIBCRYPTO_ERROR; + } + return 0; +} + +static int +ssh_dss_sign(struct sshkey *key, + u_char **sigp, size_t *lenp, + const u_char *data, size_t datalen, + const char *alg, const char *sk_provider, const char *sk_pin, u_int compat) { DSA_SIG *sig = NULL; const BIGNUM *sig_r, *sig_s; @@ -116,28 +326,29 @@ ssh_dss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, return ret; } -int +static int ssh_dss_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat) + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, + struct sshkey_sig_details **detailsp) { - DSA_SIG *sig = NULL; + DSA_SIG *dsig = NULL; BIGNUM *sig_r = NULL, *sig_s = NULL; u_char digest[SSH_DIGEST_MAX_LENGTH], *sigblob = NULL; - size_t len, dlen = ssh_digest_bytes(SSH_DIGEST_SHA1); + size_t len, hlen = ssh_digest_bytes(SSH_DIGEST_SHA1); int ret = SSH_ERR_INTERNAL_ERROR; struct sshbuf *b = NULL; char *ktype = NULL; if (key == NULL || key->dsa == NULL || sshkey_type_plain(key->type) != KEY_DSA || - signature == NULL || signaturelen == 0) + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; - if (dlen == 0) + if (hlen == 0) return SSH_ERR_INTERNAL_ERROR; /* fetch signature */ - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || sshbuf_get_string(b, &sigblob, &len) != 0) { @@ -159,7 +370,7 @@ ssh_dss_verify(const struct sshkey *key, } /* parse signature */ - if ((sig = DSA_SIG_new()) == NULL || + if ((dsig = DSA_SIG_new()) == NULL || (sig_r = BN_new()) == NULL || (sig_s = BN_new()) == NULL) { ret = SSH_ERR_ALLOC_FAIL; @@ -170,18 +381,18 @@ ssh_dss_verify(const struct sshkey *key, ret = SSH_ERR_LIBCRYPTO_ERROR; goto out; } - if (!DSA_SIG_set0(sig, sig_r, sig_s)) { + if (!DSA_SIG_set0(dsig, sig_r, sig_s)) { ret = SSH_ERR_LIBCRYPTO_ERROR; goto out; } sig_r = sig_s = NULL; /* transferred */ /* sha1 the data */ - if ((ret = ssh_digest_memory(SSH_DIGEST_SHA1, data, datalen, + if ((ret = ssh_digest_memory(SSH_DIGEST_SHA1, data, dlen, digest, sizeof(digest))) != 0) goto out; - switch (DSA_do_verify(digest, dlen, sig, key->dsa)) { + switch (DSA_do_verify(digest, hlen, dsig, key->dsa)) { case 1: ret = 0; break; @@ -195,7 +406,7 @@ ssh_dss_verify(const struct sshkey *key, out: explicit_bzero(digest, sizeof(digest)); - DSA_SIG_free(sig); + DSA_SIG_free(dsig); BN_clear_free(sig_r); BN_clear_free(sig_s); sshbuf_free(b); @@ -204,4 +415,43 @@ ssh_dss_verify(const struct sshkey *key, freezero(sigblob, len); return ret; } + +static const struct sshkey_impl_funcs sshkey_dss_funcs = { + /* .size = */ ssh_dss_size, + /* .alloc = */ ssh_dss_alloc, + /* .cleanup = */ ssh_dss_cleanup, + /* .equal = */ ssh_dss_equal, + /* .ssh_serialize_public = */ ssh_dss_serialize_public, + /* .ssh_deserialize_public = */ ssh_dss_deserialize_public, + /* .ssh_serialize_private = */ ssh_dss_serialize_private, + /* .ssh_deserialize_private = */ ssh_dss_deserialize_private, + /* .generate = */ ssh_dss_generate, + /* .copy_public = */ ssh_dss_copy_public, + /* .sign = */ ssh_dss_sign, + /* .verify = */ ssh_dss_verify, +}; + +const struct sshkey_impl sshkey_dss_impl = { + /* .name = */ "ssh-dss", + /* .shortname = */ "DSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_DSA, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_dss_funcs, +}; + +const struct sshkey_impl sshkey_dsa_cert_impl = { + /* .name = */ "ssh-dss-cert-v01@openssh.com", + /* .shortname = */ "DSA-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_DSA_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_dss_funcs, +}; #endif /* WITH_OPENSSL */ diff --git a/crypto/openssh/ssh-ecdsa-sk.c b/crypto/openssh/ssh-ecdsa-sk.c index c6927ecb27c8..729e5487c9f5 100644 --- a/crypto/openssh/ssh-ecdsa-sk.c +++ b/crypto/openssh/ssh-ecdsa-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ecdsa-sk.c,v 1.8 2020/06/22 23:44:27 djm Exp $ */ +/* $OpenBSD: ssh-ecdsa-sk.c,v 1.17 2022/10/28 00:44:44 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -61,6 +61,99 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, } #else /* OPENSSL_HAS_ECC */ +/* Reuse some ECDSA internals */ +extern struct sshkey_impl_funcs sshkey_ecdsa_funcs; + +static void +ssh_ecdsa_sk_cleanup(struct sshkey *k) +{ + sshkey_sk_cleanup(k); + sshkey_ecdsa_funcs.cleanup(k); +} + +static int +ssh_ecdsa_sk_equal(const struct sshkey *a, const struct sshkey *b) +{ + if (!sshkey_sk_fields_equal(a, b)) + return 0; + if (!sshkey_ecdsa_funcs.equal(a, b)) + return 0; + return 1; +} + +static int +ssh_ecdsa_sk_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if ((r = sshkey_ecdsa_funcs.serialize_public(key, b, opts)) != 0) + return r; + if ((r = sshkey_serialize_sk(key, b)) != 0) + return r; + + return 0; +} + +static int +ssh_ecdsa_sk_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if (!sshkey_is_cert(key)) { + if ((r = sshkey_ecdsa_funcs.serialize_public(key, + b, opts)) != 0) + return r; + } + if ((r = sshkey_serialize_private_sk(key, b)) != 0) + return r; + + return 0; +} + +static int +ssh_ecdsa_sk_copy_public(const struct sshkey *from, struct sshkey *to) +{ + int r; + + if ((r = sshkey_ecdsa_funcs.copy_public(from, to)) != 0) + return r; + if ((r = sshkey_copy_public_sk(from, to)) != 0) + return r; + return 0; +} + +static int +ssh_ecdsa_sk_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + + if ((r = sshkey_ecdsa_funcs.deserialize_public(ktype, b, key)) != 0) + return r; + if ((r = sshkey_deserialize_sk(b, key)) != 0) + return r; + return 0; +} + +static int +ssh_ecdsa_sk_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + + if (!sshkey_is_cert(key)) { + if ((r = sshkey_ecdsa_funcs.deserialize_public(ktype, + b, key)) != 0) + return r; + } + if ((r = sshkey_private_deserialize_sk(b, key)) != 0) + return r; + + return 0; +} + /* * Check FIDO/W3C webauthn signatures clientData field against the expected * format and prepare a hash of it for use in signature verification. @@ -138,13 +231,13 @@ webauthn_check_prepare_hash(const u_char *data, size_t datalen, } /* ARGSUSED */ -int +static int ssh_ecdsa_sk_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat, + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, struct sshkey_sig_details **detailsp) { - ECDSA_SIG *sig = NULL; + ECDSA_SIG *esig = NULL; BIGNUM *sig_r = NULL, *sig_s = NULL; u_char sig_flags; u_char msghash[32], apphash[32], sighash[32]; @@ -162,14 +255,14 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, *detailsp = NULL; if (key == NULL || key->ecdsa == NULL || sshkey_type_plain(key->type) != KEY_ECDSA_SK || - signature == NULL || signaturelen == 0) + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; if (key->ecdsa_nid != NID_X9_62_prime256v1) return SSH_ERR_INTERNAL_ERROR; /* fetch signature */ - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if ((details = calloc(1, sizeof(*details))) == NULL) { ret = SSH_ERR_ALLOC_FAIL; @@ -231,11 +324,11 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, sshbuf_dump(webauthn_wrapper, stderr); } #endif - if ((sig = ECDSA_SIG_new()) == NULL) { + if ((esig = ECDSA_SIG_new()) == NULL) { ret = SSH_ERR_ALLOC_FAIL; goto out; } - if (!ECDSA_SIG_set0(sig, sig_r, sig_s)) { + if (!ECDSA_SIG_set0(esig, sig_r, sig_s)) { ret = SSH_ERR_LIBCRYPTO_ERROR; goto out; } @@ -247,11 +340,11 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, goto out; } if (is_webauthn) { - if ((ret = webauthn_check_prepare_hash(data, datalen, + if ((ret = webauthn_check_prepare_hash(data, dlen, webauthn_origin, webauthn_wrapper, sig_flags, webauthn_exts, msghash, sizeof(msghash))) != 0) goto out; - } else if ((ret = ssh_digest_memory(SSH_DIGEST_SHA256, data, datalen, + } else if ((ret = ssh_digest_memory(SSH_DIGEST_SHA256, data, dlen, msghash, sizeof(msghash))) != 0) goto out; /* Application value is hashed before signature */ @@ -285,7 +378,7 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, #endif /* Verify it */ - switch (ECDSA_do_verify(sighash, sizeof(sighash), sig, key->ecdsa)) { + switch (ECDSA_do_verify(sighash, sizeof(sighash), esig, key->ecdsa)) { case 1: ret = 0; break; @@ -314,11 +407,62 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, sshbuf_free(original_signed); sshbuf_free(sigbuf); sshbuf_free(b); - ECDSA_SIG_free(sig); + ECDSA_SIG_free(esig); BN_clear_free(sig_r); BN_clear_free(sig_s); free(ktype); return ret; } +static const struct sshkey_impl_funcs sshkey_ecdsa_sk_funcs = { + /* .size = */ NULL, + /* .alloc = */ NULL, + /* .cleanup = */ ssh_ecdsa_sk_cleanup, + /* .equal = */ ssh_ecdsa_sk_equal, + /* .ssh_serialize_public = */ ssh_ecdsa_sk_serialize_public, + /* .ssh_deserialize_public = */ ssh_ecdsa_sk_deserialize_public, + /* .ssh_serialize_private = */ ssh_ecdsa_sk_serialize_private, + /* .ssh_deserialize_private = */ ssh_ecdsa_sk_deserialize_private, + /* .generate = */ NULL, + /* .copy_public = */ ssh_ecdsa_sk_copy_public, + /* .sign = */ NULL, + /* .verify = */ ssh_ecdsa_sk_verify, +}; + +const struct sshkey_impl sshkey_ecdsa_sk_impl = { + /* .name = */ "sk-ecdsa-sha2-nistp256@openssh.com", + /* .shortname = */ "ECDSA-SK", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA_SK, + /* .nid = */ NID_X9_62_prime256v1, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ecdsa_sk_funcs, +}; + +const struct sshkey_impl sshkey_ecdsa_sk_cert_impl = { + /* .name = */ "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com", + /* .shortname = */ "ECDSA-SK-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA_SK_CERT, + /* .nid = */ NID_X9_62_prime256v1, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ecdsa_sk_funcs, +}; + +const struct sshkey_impl sshkey_ecdsa_sk_webauthn_impl = { + /* .name = */ "webauthn-sk-ecdsa-sha2-nistp256@openssh.com", + /* .shortname = */ "ECDSA-SK", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA_SK, + /* .nid = */ NID_X9_62_prime256v1, + /* .cert = */ 0, + /* .sigonly = */ 1, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ecdsa_sk_funcs, +}; + #endif /* OPENSSL_HAS_ECC */ diff --git a/crypto/openssh/ssh-ecdsa.c b/crypto/openssh/ssh-ecdsa.c index 599c7199db19..4bcb89baf517 100644 --- a/crypto/openssh/ssh-ecdsa.c +++ b/crypto/openssh/ssh-ecdsa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ecdsa.c,v 1.16 2019/01/21 09:54:11 djm Exp $ */ +/* $OpenBSD: ssh-ecdsa.c,v 1.25 2022/10/28 00:44:44 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -45,16 +45,195 @@ #include "openbsd-compat/openssl-compat.h" -/* ARGSUSED */ -int -ssh_ecdsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat) +static u_int +ssh_ecdsa_size(const struct sshkey *key) { - ECDSA_SIG *sig = NULL; + switch (key->ecdsa_nid) { + case NID_X9_62_prime256v1: + return 256; + case NID_secp384r1: + return 384; +#ifdef OPENSSL_HAS_NISTP521 + case NID_secp521r1: + return 521; +#endif + default: + return 0; + } +} + +static void +ssh_ecdsa_cleanup(struct sshkey *k) +{ + EC_KEY_free(k->ecdsa); + k->ecdsa = NULL; +} + +static int +ssh_ecdsa_equal(const struct sshkey *a, const struct sshkey *b) +{ + const EC_GROUP *grp_a, *grp_b; + const EC_POINT *pub_a, *pub_b; + + if (a->ecdsa == NULL || b->ecdsa == NULL) + return 0; + if ((grp_a = EC_KEY_get0_group(a->ecdsa)) == NULL || + (grp_b = EC_KEY_get0_group(b->ecdsa)) == NULL) + return 0; + if ((pub_a = EC_KEY_get0_public_key(a->ecdsa)) == NULL || + (pub_b = EC_KEY_get0_public_key(b->ecdsa)) == NULL) + return 0; + if (EC_GROUP_cmp(grp_a, grp_b, NULL) != 0) + return 0; + if (EC_POINT_cmp(grp_a, pub_a, pub_b, NULL) != 0) + return 0; + + return 1; +} + +static int +ssh_ecdsa_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if (key->ecdsa == NULL) + return SSH_ERR_INVALID_ARGUMENT; + if ((r = sshbuf_put_cstring(b, + sshkey_curve_nid_to_name(key->ecdsa_nid))) != 0 || + (r = sshbuf_put_eckey(b, key->ecdsa)) != 0) + return r; + + return 0; +} + +static int +ssh_ecdsa_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if (!sshkey_is_cert(key)) { + if ((r = ssh_ecdsa_serialize_public(key, b, opts)) != 0) + return r; + } + if ((r = sshbuf_put_bignum2(b, + EC_KEY_get0_private_key(key->ecdsa))) != 0) + return r; + return 0; +} + +static int +ssh_ecdsa_generate(struct sshkey *k, int bits) +{ + EC_KEY *private; + + if ((k->ecdsa_nid = sshkey_ecdsa_bits_to_nid(bits)) == -1) + return SSH_ERR_KEY_LENGTH; + if ((private = EC_KEY_new_by_curve_name(k->ecdsa_nid)) == NULL) + return SSH_ERR_ALLOC_FAIL; + if (EC_KEY_generate_key(private) != 1) { + EC_KEY_free(private); + return SSH_ERR_LIBCRYPTO_ERROR; + } + EC_KEY_set_asn1_flag(private, OPENSSL_EC_NAMED_CURVE); + k->ecdsa = private; + return 0; +} + +static int +ssh_ecdsa_copy_public(const struct sshkey *from, struct sshkey *to) +{ + to->ecdsa_nid = from->ecdsa_nid; + if ((to->ecdsa = EC_KEY_new_by_curve_name(from->ecdsa_nid)) == NULL) + return SSH_ERR_ALLOC_FAIL; + if (EC_KEY_set_public_key(to->ecdsa, + EC_KEY_get0_public_key(from->ecdsa)) != 1) + return SSH_ERR_LIBCRYPTO_ERROR; /* caller will free k->ecdsa */ + return 0; +} + +static int +ssh_ecdsa_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + char *curve = NULL; + + if ((key->ecdsa_nid = sshkey_ecdsa_nid_from_name(ktype)) == -1) + return SSH_ERR_INVALID_ARGUMENT; + if ((r = sshbuf_get_cstring(b, &curve, NULL)) != 0) + goto out; + if (key->ecdsa_nid != sshkey_curve_name_to_nid(curve)) { + r = SSH_ERR_EC_CURVE_MISMATCH; + goto out; + } + EC_KEY_free(key->ecdsa); + key->ecdsa = NULL; + if ((key->ecdsa = EC_KEY_new_by_curve_name(key->ecdsa_nid)) == NULL) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + if ((r = sshbuf_get_eckey(b, key->ecdsa)) != 0) + goto out; + if (sshkey_ec_validate_public(EC_KEY_get0_group(key->ecdsa), + EC_KEY_get0_public_key(key->ecdsa)) != 0) { + r = SSH_ERR_KEY_INVALID_EC_VALUE; + goto out; + } + /* success */ + r = 0; +#ifdef DEBUG_PK + sshkey_dump_ec_point(EC_KEY_get0_group(key->ecdsa), + EC_KEY_get0_public_key(key->ecdsa)); +#endif + out: + free(curve); + if (r != 0) { + EC_KEY_free(key->ecdsa); + key->ecdsa = NULL; + } + return r; +} + +static int +ssh_ecdsa_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + BIGNUM *exponent = NULL; + + if (!sshkey_is_cert(key)) { + if ((r = ssh_ecdsa_deserialize_public(ktype, b, key)) != 0) + return r; + } + if ((r = sshbuf_get_bignum2(b, &exponent)) != 0) + goto out; + if (EC_KEY_set_private_key(key->ecdsa, exponent) != 1) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + if ((r = sshkey_ec_validate_private(key->ecdsa)) != 0) + goto out; + /* success */ + r = 0; + out: + BN_clear_free(exponent); + return r; +} + +/* ARGSUSED */ +static int +ssh_ecdsa_sign(struct sshkey *key, + u_char **sigp, size_t *lenp, + const u_char *data, size_t dlen, + const char *alg, const char *sk_provider, const char *sk_pin, u_int compat) +{ + ECDSA_SIG *esig = NULL; const BIGNUM *sig_r, *sig_s; int hash_alg; u_char digest[SSH_DIGEST_MAX_LENGTH]; - size_t len, dlen; + size_t len, hlen; struct sshbuf *b = NULL, *bb = NULL; int ret = SSH_ERR_INTERNAL_ERROR; @@ -68,13 +247,13 @@ ssh_ecdsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, return SSH_ERR_INVALID_ARGUMENT; if ((hash_alg = sshkey_ec_nid_to_hash_alg(key->ecdsa_nid)) == -1 || - (dlen = ssh_digest_bytes(hash_alg)) == 0) + (hlen = ssh_digest_bytes(hash_alg)) == 0) return SSH_ERR_INTERNAL_ERROR; - if ((ret = ssh_digest_memory(hash_alg, data, datalen, + if ((ret = ssh_digest_memory(hash_alg, data, dlen, digest, sizeof(digest))) != 0) goto out; - if ((sig = ECDSA_do_sign(digest, dlen, key->ecdsa)) == NULL) { + if ((esig = ECDSA_do_sign(digest, hlen, key->ecdsa)) == NULL) { ret = SSH_ERR_LIBCRYPTO_ERROR; goto out; } @@ -83,7 +262,7 @@ ssh_ecdsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, ret = SSH_ERR_ALLOC_FAIL; goto out; } - ECDSA_SIG_get0(sig, &sig_r, &sig_s); + ECDSA_SIG_get0(esig, &sig_r, &sig_s); if ((ret = sshbuf_put_bignum2(bb, sig_r)) != 0 || (ret = sshbuf_put_bignum2(bb, sig_s)) != 0) goto out; @@ -105,36 +284,37 @@ ssh_ecdsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, explicit_bzero(digest, sizeof(digest)); sshbuf_free(b); sshbuf_free(bb); - ECDSA_SIG_free(sig); + ECDSA_SIG_free(esig); return ret; } /* ARGSUSED */ -int +static int ssh_ecdsa_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat) + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, + struct sshkey_sig_details **detailsp) { - ECDSA_SIG *sig = NULL; + ECDSA_SIG *esig = NULL; BIGNUM *sig_r = NULL, *sig_s = NULL; int hash_alg; u_char digest[SSH_DIGEST_MAX_LENGTH]; - size_t dlen; + size_t hlen; int ret = SSH_ERR_INTERNAL_ERROR; struct sshbuf *b = NULL, *sigbuf = NULL; char *ktype = NULL; if (key == NULL || key->ecdsa == NULL || sshkey_type_plain(key->type) != KEY_ECDSA || - signature == NULL || signaturelen == 0) + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; if ((hash_alg = sshkey_ec_nid_to_hash_alg(key->ecdsa_nid)) == -1 || - (dlen = ssh_digest_bytes(hash_alg)) == 0) + (hlen = ssh_digest_bytes(hash_alg)) == 0) return SSH_ERR_INTERNAL_ERROR; /* fetch signature */ - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || sshbuf_froms(b, &sigbuf) != 0) { @@ -156,11 +336,11 @@ ssh_ecdsa_verify(const struct sshkey *key, ret = SSH_ERR_INVALID_FORMAT; goto out; } - if ((sig = ECDSA_SIG_new()) == NULL) { + if ((esig = ECDSA_SIG_new()) == NULL) { ret = SSH_ERR_ALLOC_FAIL; goto out; } - if (!ECDSA_SIG_set0(sig, sig_r, sig_s)) { + if (!ECDSA_SIG_set0(esig, sig_r, sig_s)) { ret = SSH_ERR_LIBCRYPTO_ERROR; goto out; } @@ -170,11 +350,11 @@ ssh_ecdsa_verify(const struct sshkey *key, ret = SSH_ERR_UNEXPECTED_TRAILING_DATA; goto out; } - if ((ret = ssh_digest_memory(hash_alg, data, datalen, + if ((ret = ssh_digest_memory(hash_alg, data, dlen, digest, sizeof(digest))) != 0) goto out; - switch (ECDSA_do_verify(digest, dlen, sig, key->ecdsa)) { + switch (ECDSA_do_verify(digest, hlen, esig, key->ecdsa)) { case 1: ret = 0; break; @@ -190,11 +370,101 @@ ssh_ecdsa_verify(const struct sshkey *key, explicit_bzero(digest, sizeof(digest)); sshbuf_free(sigbuf); sshbuf_free(b); - ECDSA_SIG_free(sig); + ECDSA_SIG_free(esig); BN_clear_free(sig_r); BN_clear_free(sig_s); free(ktype); return ret; } +/* NB. not static; used by ECDSA-SK */ +const struct sshkey_impl_funcs sshkey_ecdsa_funcs = { + /* .size = */ ssh_ecdsa_size, + /* .alloc = */ NULL, + /* .cleanup = */ ssh_ecdsa_cleanup, + /* .equal = */ ssh_ecdsa_equal, + /* .ssh_serialize_public = */ ssh_ecdsa_serialize_public, + /* .ssh_deserialize_public = */ ssh_ecdsa_deserialize_public, + /* .ssh_serialize_private = */ ssh_ecdsa_serialize_private, + /* .ssh_deserialize_private = */ ssh_ecdsa_deserialize_private, + /* .generate = */ ssh_ecdsa_generate, + /* .copy_public = */ ssh_ecdsa_copy_public, + /* .sign = */ ssh_ecdsa_sign, + /* .verify = */ ssh_ecdsa_verify, +}; + +const struct sshkey_impl sshkey_ecdsa_nistp256_impl = { + /* .name = */ "ecdsa-sha2-nistp256", + /* .shortname = */ "ECDSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA, + /* .nid = */ NID_X9_62_prime256v1, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_ecdsa_funcs, +}; + +const struct sshkey_impl sshkey_ecdsa_nistp256_cert_impl = { + /* .name = */ "ecdsa-sha2-nistp256-cert-v01@openssh.com", + /* .shortname = */ "ECDSA-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA_CERT, + /* .nid = */ NID_X9_62_prime256v1, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_ecdsa_funcs, +}; + +const struct sshkey_impl sshkey_ecdsa_nistp384_impl = { + /* .name = */ "ecdsa-sha2-nistp384", + /* .shortname = */ "ECDSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA, + /* .nid = */ NID_secp384r1, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_ecdsa_funcs, +}; + +const struct sshkey_impl sshkey_ecdsa_nistp384_cert_impl = { + /* .name = */ "ecdsa-sha2-nistp384-cert-v01@openssh.com", + /* .shortname = */ "ECDSA-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA_CERT, + /* .nid = */ NID_secp384r1, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_ecdsa_funcs, +}; + +#ifdef OPENSSL_HAS_NISTP521 +const struct sshkey_impl sshkey_ecdsa_nistp521_impl = { + /* .name = */ "ecdsa-sha2-nistp521", + /* .shortname = */ "ECDSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA, + /* .nid = */ NID_secp521r1, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_ecdsa_funcs, +}; + +const struct sshkey_impl sshkey_ecdsa_nistp521_cert_impl = { + /* .name = */ "ecdsa-sha2-nistp521-cert-v01@openssh.com", + /* .shortname = */ "ECDSA-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_ECDSA_CERT, + /* .nid = */ NID_secp521r1, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_ecdsa_funcs, +}; +#endif + #endif /* WITH_OPENSSL && OPENSSL_HAS_ECC */ diff --git a/crypto/openssh/ssh-ed25519-sk.c b/crypto/openssh/ssh-ed25519-sk.c index 4393ca669e17..c6bc5e72b1d2 100644 --- a/crypto/openssh/ssh-ed25519-sk.c +++ b/crypto/openssh/ssh-ed25519-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ed25519-sk.c,v 1.6 2020/10/18 11:32:02 djm Exp $ */ +/* $OpenBSD: ssh-ed25519-sk.c,v 1.15 2022/10/28 00:44:44 djm Exp $ */ /* * Copyright (c) 2019 Markus Friedl. All rights reserved. * @@ -35,10 +35,96 @@ #include "ssh.h" #include "digest.h" -int +/* Reuse some ED25519 internals */ +extern struct sshkey_impl_funcs sshkey_ed25519_funcs; + +static void +ssh_ed25519_sk_cleanup(struct sshkey *k) +{ + sshkey_sk_cleanup(k); + sshkey_ed25519_funcs.cleanup(k); +} + +static int +ssh_ed25519_sk_equal(const struct sshkey *a, const struct sshkey *b) +{ + if (!sshkey_sk_fields_equal(a, b)) + return 0; + if (!sshkey_ed25519_funcs.equal(a, b)) + return 0; + return 1; +} + +static int +ssh_ed25519_sk_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if ((r = sshkey_ed25519_funcs.serialize_public(key, b, opts)) != 0) + return r; + if ((r = sshkey_serialize_sk(key, b)) != 0) + return r; + + return 0; +} + +static int +ssh_ed25519_sk_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if ((r = sshkey_ed25519_funcs.serialize_public(key, b, opts)) != 0) + return r; + if ((r = sshkey_serialize_private_sk(key, b)) != 0) + return r; + + return 0; +} + +static int +ssh_ed25519_sk_copy_public(const struct sshkey *from, struct sshkey *to) +{ + int r; + + if ((r = sshkey_ed25519_funcs.copy_public(from, to)) != 0) + return r; + if ((r = sshkey_copy_public_sk(from, to)) != 0) + return r; + return 0; +} + +static int +ssh_ed25519_sk_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + + if ((r = sshkey_ed25519_funcs.deserialize_public(ktype, b, key)) != 0) + return r; + if ((r = sshkey_deserialize_sk(b, key)) != 0) + return r; + return 0; +} + +static int +ssh_ed25519_sk_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + + if ((r = sshkey_ed25519_funcs.deserialize_public(ktype, b, key)) != 0) + return r; + if ((r = sshkey_private_deserialize_sk(b, key)) != 0) + return r; + return 0; +} + +static int ssh_ed25519_sk_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat, + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, struct sshkey_sig_details **detailsp) { struct sshbuf *b = NULL; @@ -63,10 +149,10 @@ ssh_ed25519_sk_verify(const struct sshkey *key, if (key == NULL || sshkey_type_plain(key->type) != KEY_ED25519_SK || key->ed25519_pk == NULL || - signature == NULL || signaturelen == 0) + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || sshbuf_get_string_direct(b, &sigblob, &len) != 0 || @@ -97,7 +183,7 @@ ssh_ed25519_sk_verify(const struct sshkey *key, } if (ssh_digest_memory(SSH_DIGEST_SHA256, key->sk_application, strlen(key->sk_application), apphash, sizeof(apphash)) != 0 || - ssh_digest_memory(SSH_DIGEST_SHA256, data, datalen, + ssh_digest_memory(SSH_DIGEST_SHA256, data, dlen, msghash, sizeof(msghash)) != 0) { r = SSH_ERR_INVALID_ARGUMENT; goto out; @@ -161,3 +247,42 @@ ssh_ed25519_sk_verify(const struct sshkey *key, free(ktype); return r; } + +static const struct sshkey_impl_funcs sshkey_ed25519_sk_funcs = { + /* .size = */ NULL, + /* .alloc = */ NULL, + /* .cleanup = */ ssh_ed25519_sk_cleanup, + /* .equal = */ ssh_ed25519_sk_equal, + /* .ssh_serialize_public = */ ssh_ed25519_sk_serialize_public, + /* .ssh_deserialize_public = */ ssh_ed25519_sk_deserialize_public, + /* .ssh_serialize_private = */ ssh_ed25519_sk_serialize_private, + /* .ssh_deserialize_private = */ ssh_ed25519_sk_deserialize_private, + /* .generate = */ NULL, + /* .copy_public = */ ssh_ed25519_sk_copy_public, + /* .sign = */ NULL, + /* .verify = */ ssh_ed25519_sk_verify, +}; + +const struct sshkey_impl sshkey_ed25519_sk_impl = { + /* .name = */ "sk-ssh-ed25519@openssh.com", + /* .shortname = */ "ED25519-SK", + /* .sigalg = */ NULL, + /* .type = */ KEY_ED25519_SK, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ed25519_sk_funcs, +}; + +const struct sshkey_impl sshkey_ed25519_sk_cert_impl = { + /* .name = */ "sk-ssh-ed25519-cert-v01@openssh.com", + /* .shortname = */ "ED25519-SK-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_ED25519_SK_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ed25519_sk_funcs, +}; diff --git a/crypto/openssh/ssh-ed25519.c b/crypto/openssh/ssh-ed25519.c index 4861628cb524..22d8db026b4c 100644 --- a/crypto/openssh/ssh-ed25519.c +++ b/crypto/openssh/ssh-ed25519.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ed25519.c,v 1.10 2022/08/26 08:12:56 djm Exp $ */ +/* $OpenBSD: ssh-ed25519.c,v 1.19 2022/10/28 00:44:44 djm Exp $ */ /* * Copyright (c) 2013 Markus Friedl * @@ -32,9 +32,121 @@ #include "ssherr.h" #include "ssh.h" -int -ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat) +static void +ssh_ed25519_cleanup(struct sshkey *k) +{ + freezero(k->ed25519_pk, ED25519_PK_SZ); + freezero(k->ed25519_sk, ED25519_SK_SZ); + k->ed25519_pk = NULL; + k->ed25519_sk = NULL; +} + +static int +ssh_ed25519_equal(const struct sshkey *a, const struct sshkey *b) +{ + if (a->ed25519_pk == NULL || b->ed25519_pk == NULL) + return 0; + if (memcmp(a->ed25519_pk, b->ed25519_pk, ED25519_PK_SZ) != 0) + return 0; + return 1; +} + +static int +ssh_ed25519_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if (key->ed25519_pk == NULL) + return SSH_ERR_INVALID_ARGUMENT; + if ((r = sshbuf_put_string(b, key->ed25519_pk, ED25519_PK_SZ)) != 0) + return r; + + return 0; +} + +static int +ssh_ed25519_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if ((r = sshbuf_put_string(b, key->ed25519_pk, ED25519_PK_SZ)) != 0 || + (r = sshbuf_put_string(b, key->ed25519_sk, ED25519_SK_SZ)) != 0) + return r; + + return 0; +} + +static int +ssh_ed25519_generate(struct sshkey *k, int bits) +{ + if ((k->ed25519_pk = malloc(ED25519_PK_SZ)) == NULL || + (k->ed25519_sk = malloc(ED25519_SK_SZ)) == NULL) + return SSH_ERR_ALLOC_FAIL; + crypto_sign_ed25519_keypair(k->ed25519_pk, k->ed25519_sk); + return 0; +} + +static int +ssh_ed25519_copy_public(const struct sshkey *from, struct sshkey *to) +{ + if (from->ed25519_pk == NULL) + return 0; /* XXX SSH_ERR_INTERNAL_ERROR ? */ + if ((to->ed25519_pk = malloc(ED25519_PK_SZ)) == NULL) + return SSH_ERR_ALLOC_FAIL; + memcpy(to->ed25519_pk, from->ed25519_pk, ED25519_PK_SZ); + return 0; +} + +static int +ssh_ed25519_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + u_char *pk = NULL; + size_t len = 0; + int r; + + if ((r = sshbuf_get_string(b, &pk, &len)) != 0) + return r; + if (len != ED25519_PK_SZ) { + freezero(pk, len); + return SSH_ERR_INVALID_FORMAT; + } + key->ed25519_pk = pk; + return 0; +} + +static int +ssh_ed25519_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + size_t sklen = 0; + u_char *ed25519_sk = NULL; + + if ((r = ssh_ed25519_deserialize_public(NULL, b, key)) != 0) + goto out; + if ((r = sshbuf_get_string(b, &ed25519_sk, &sklen)) != 0) + goto out; + if (sklen != ED25519_SK_SZ) { + r = SSH_ERR_INVALID_FORMAT; + goto out; + } + key->ed25519_sk = ed25519_sk; + ed25519_sk = NULL; /* transferred */ + /* success */ + r = 0; + out: + freezero(ed25519_sk, sklen); + return r; +} + +static int +ssh_ed25519_sign(struct sshkey *key, + u_char **sigp, size_t *lenp, + const u_char *data, size_t datalen, + const char *alg, const char *sk_provider, const char *sk_pin, u_int compat) { u_char *sig = NULL; size_t slen = 0, len; @@ -89,10 +201,11 @@ ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, return r; } -int +static int ssh_ed25519_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat) + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, + struct sshkey_sig_details **detailsp) { struct sshbuf *b = NULL; char *ktype = NULL; @@ -105,11 +218,11 @@ 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 || - signature == NULL || signaturelen == 0) + dlen >= INT_MAX - crypto_sign_ed25519_BYTES || + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if ((r = sshbuf_get_cstring(b, &ktype, NULL)) != 0 || (r = sshbuf_get_string_direct(b, &sigblob, &len)) != 0) @@ -126,23 +239,23 @@ ssh_ed25519_verify(const struct sshkey *key, r = SSH_ERR_INVALID_FORMAT; goto out; } - if (datalen >= SIZE_MAX - len) { + if (dlen >= SIZE_MAX - len) { r = SSH_ERR_INVALID_ARGUMENT; goto out; } - smlen = len + datalen; + smlen = len + dlen; mlen = smlen; if ((sm = malloc(smlen)) == NULL || (m = malloc(mlen)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto out; } memcpy(sm, sigblob, len); - memcpy(sm+len, data, datalen); + memcpy(sm+len, data, dlen); if ((ret = crypto_sign_ed25519_open(m, &mlen, sm, smlen, key->ed25519_pk)) != 0) { debug2_f("crypto_sign_ed25519_open failed: %d", ret); } - if (ret != 0 || mlen != datalen) { + if (ret != 0 || mlen != dlen) { r = SSH_ERR_SIGNATURE_INVALID; goto out; } @@ -158,3 +271,43 @@ ssh_ed25519_verify(const struct sshkey *key, free(ktype); return r; } + +/* NB. not static; used by ED25519-SK */ +const struct sshkey_impl_funcs sshkey_ed25519_funcs = { + /* .size = */ NULL, + /* .alloc = */ NULL, + /* .cleanup = */ ssh_ed25519_cleanup, + /* .equal = */ ssh_ed25519_equal, + /* .ssh_serialize_public = */ ssh_ed25519_serialize_public, + /* .ssh_deserialize_public = */ ssh_ed25519_deserialize_public, + /* .ssh_serialize_private = */ ssh_ed25519_serialize_private, + /* .ssh_deserialize_private = */ ssh_ed25519_deserialize_private, + /* .generate = */ ssh_ed25519_generate, + /* .copy_public = */ ssh_ed25519_copy_public, + /* .sign = */ ssh_ed25519_sign, + /* .verify = */ ssh_ed25519_verify, +}; + +const struct sshkey_impl sshkey_ed25519_impl = { + /* .name = */ "ssh-ed25519", + /* .shortname = */ "ED25519", + /* .sigalg = */ NULL, + /* .type = */ KEY_ED25519, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ed25519_funcs, +}; + +const struct sshkey_impl sshkey_ed25519_cert_impl = { + /* .name = */ "ssh-ed25519-cert-v01@openssh.com", + /* .shortname = */ "ED25519-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_ED25519_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_ed25519_funcs, +}; diff --git a/crypto/openssh/ssh-keygen.c b/crypto/openssh/ssh-keygen.c index 1255957d0e67..ae05440f68bf 100644 --- a/crypto/openssh/ssh-keygen.c +++ b/crypto/openssh/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.459 2022/08/11 01:56:51 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.461 2022/12/04 23:50:49 cheloha Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -3544,7 +3544,6 @@ main(int argc, char **argv) else fatal("Unsupported moduli option %s", optarg); break; - case '?': default: usage(); } diff --git a/crypto/openssh/ssh-keyscan.1 b/crypto/openssh/ssh-keyscan.1 index 4eb0bea09168..ca4feea2a9e0 100644 --- a/crypto/openssh/ssh-keyscan.1 +++ b/crypto/openssh/ssh-keyscan.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keyscan.1,v 1.46 2022/06/03 04:00:15 dtucker Exp $ +.\" $OpenBSD: ssh-keyscan.1,v 1.47 2022/10/28 02:29:34 djm Exp $ .\" .\" Copyright 1995, 1996 by David Mazieres . .\" @@ -6,7 +6,7 @@ .\" permitted provided that due credit is given to the author and the .\" OpenBSD project by leaving this copyright notice intact. .\" -.Dd $Mdocdate: June 3 2022 $ +.Dd $Mdocdate: October 28 2022 $ .Dt SSH-KEYSCAN 1 .Os .Sh NAME @@ -44,6 +44,11 @@ For scanning, one does not need login access to the machines that are being scanned, nor does the scanning process involve any encryption. .Pp +Hosts to be scanned may be specified by hostname, address or by CIDR +network range (e.g. 192.168.16/28). +If a network range is specified, then all addresses in that range will +be scanned. +.Pp The options are as follows: .Bl -tag -width Ds .It Fl 4 @@ -73,9 +78,16 @@ If is supplied instead of a filename, .Nm will read from the standard input. -Input is expected in the format: +Names read from a file must start with an address, hostname or CIDR network +range to be scanned. +Addresses and hostnames may optionally be followed by comma-separated name +or address aliases that will be copied to the output. +For example: .Bd -literal -1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4 +192.168.11.0/24 +10.20.1.1 +happy.example.org +10.0.0.1,sad.example.org .Ed .It Fl H Hash all hostnames and addresses in the output. @@ -138,6 +150,10 @@ Print the RSA host key for machine .Pp .Dl $ ssh-keyscan -t rsa hostname .Pp +Search a network range, printing all supported key types: +.Pp +.Dl $ ssh-keyscan 192.168.0.64/25 +.Pp Find all hosts from the file .Pa ssh_hosts which have new or different keys from those in the sorted file diff --git a/crypto/openssh/ssh-keyscan.c b/crypto/openssh/ssh-keyscan.c index d7283136c7d2..1318c2fa6fb7 100644 --- a/crypto/openssh/ssh-keyscan.c +++ b/crypto/openssh/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.146 2022/08/19 04:02:46 dtucker Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.149 2022/12/26 19:16:03 jmc Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -52,6 +52,7 @@ #include "ssherr.h" #include "ssh_api.h" #include "dns.h" +#include "addr.h" /* Flag indicating whether IPv4 or IPv6. This can be set on the command line. Default value is AF_UNSPEC means both IPv4 and IPv6. */ @@ -384,7 +385,7 @@ tcpconnect(char *host) } static int -conalloc(char *iname, char *oname, int keytype) +conalloc(const char *iname, const char *oname, int keytype) { char *namebase, *name, *namelist; int s; @@ -492,7 +493,7 @@ congreet(int s) /* * Read the server banner as per RFC4253 section 4.2. The "SSH-" - * protocol identification string may be preceeded by an arbitarily + * protocol identification string may be preceeded by an arbitrarily * large banner which we must read and ignore. Loop while reading * newline-terminated lines until we have one starting with "SSH-". * The ID string cannot be longer than 255 characters although the @@ -629,7 +630,7 @@ conloop(void) } static void -do_host(char *host) +do_one_host(char *host) { char *name = strnnsep(&host, " \t\n"); int j; @@ -645,6 +646,42 @@ do_host(char *host) } } +static void +do_host(char *host) +{ + char daddr[128]; + struct xaddr addr, end_addr; + u_int masklen; + + if (host == NULL) + return; + if (addr_pton_cidr(host, &addr, &masklen) != 0) { + /* Assume argument is a hostname */ + do_one_host(host); + } else { + /* Argument is a CIDR range */ + debug("CIDR range %s", host); + end_addr = addr; + if (addr_host_to_all1s(&end_addr, masklen) != 0) + goto badaddr; + /* + * Note: we deliberately include the all-zero/ones addresses. + */ + for (;;) { + if (addr_ntop(&addr, daddr, sizeof(daddr)) != 0) { + badaddr: + error("Invalid address %s", host); + return; + } + debug("CIDR expand: address %s", daddr); + do_one_host(daddr); + if (addr_cmp(&addr, &end_addr) == 0) + break; + addr_increment(&addr); + }; + } +} + void sshfatal(const char *file, const char *func, int line, int showfunc, LogLevel level, const char *suffix, const char *fmt, ...) @@ -770,7 +807,6 @@ main(int argc, char **argv) case '6': IPv4or6 = AF_INET6; break; - case '?': default: usage(); } diff --git a/crypto/openssh/ssh-rsa.c b/crypto/openssh/ssh-rsa.c index 9b14f9a9a715..6516ddc13acd 100644 --- a/crypto/openssh/ssh-rsa.c +++ b/crypto/openssh/ssh-rsa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-rsa.c,v 1.67 2018/07/03 11:39:54 djm Exp $ */ +/* $OpenBSD: ssh-rsa.c,v 1.78 2022/10/28 02:47:04 djm Exp $ */ /* * Copyright (c) 2000, 2003 Markus Friedl * @@ -39,6 +39,234 @@ static int openssh_RSA_verify(int, u_char *, size_t, u_char *, size_t, RSA *); +static u_int +ssh_rsa_size(const struct sshkey *key) +{ + const BIGNUM *rsa_n; + + if (key->rsa == NULL) + return 0; + RSA_get0_key(key->rsa, &rsa_n, NULL, NULL); + return BN_num_bits(rsa_n); +} + +static int +ssh_rsa_alloc(struct sshkey *k) +{ + if ((k->rsa = RSA_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + return 0; +} + +static void +ssh_rsa_cleanup(struct sshkey *k) +{ + RSA_free(k->rsa); + k->rsa = NULL; +} + +static int +ssh_rsa_equal(const struct sshkey *a, const struct sshkey *b) +{ + const BIGNUM *rsa_e_a, *rsa_n_a; + const BIGNUM *rsa_e_b, *rsa_n_b; + + if (a->rsa == NULL || b->rsa == NULL) + return 0; + RSA_get0_key(a->rsa, &rsa_n_a, &rsa_e_a, NULL); + RSA_get0_key(b->rsa, &rsa_n_b, &rsa_e_b, NULL); + if (rsa_e_a == NULL || rsa_e_b == NULL) + return 0; + if (rsa_n_a == NULL || rsa_n_b == NULL) + return 0; + if (BN_cmp(rsa_e_a, rsa_e_b) != 0) + return 0; + if (BN_cmp(rsa_n_a, rsa_n_b) != 0) + return 0; + return 1; +} + +static int +ssh_rsa_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + const BIGNUM *rsa_n, *rsa_e; + + if (key->rsa == NULL) + return SSH_ERR_INVALID_ARGUMENT; + RSA_get0_key(key->rsa, &rsa_n, &rsa_e, NULL); + if ((r = sshbuf_put_bignum2(b, rsa_e)) != 0 || + (r = sshbuf_put_bignum2(b, rsa_n)) != 0) + return r; + + return 0; +} + +static int +ssh_rsa_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + const BIGNUM *rsa_n, *rsa_e, *rsa_d, *rsa_iqmp, *rsa_p, *rsa_q; + + RSA_get0_key(key->rsa, &rsa_n, &rsa_e, &rsa_d); + RSA_get0_factors(key->rsa, &rsa_p, &rsa_q); + RSA_get0_crt_params(key->rsa, NULL, NULL, &rsa_iqmp); + + if (!sshkey_is_cert(key)) { + /* Note: can't reuse ssh_rsa_serialize_public: e, n vs. n, e */ + if ((r = sshbuf_put_bignum2(b, rsa_n)) != 0 || + (r = sshbuf_put_bignum2(b, rsa_e)) != 0) + return r; + } + if ((r = sshbuf_put_bignum2(b, rsa_d)) != 0 || + (r = sshbuf_put_bignum2(b, rsa_iqmp)) != 0 || + (r = sshbuf_put_bignum2(b, rsa_p)) != 0 || + (r = sshbuf_put_bignum2(b, rsa_q)) != 0) + return r; + + return 0; +} + +static int +ssh_rsa_generate(struct sshkey *k, int bits) +{ + RSA *private = NULL; + BIGNUM *f4 = NULL; + int ret = SSH_ERR_INTERNAL_ERROR; + + if (bits < SSH_RSA_MINIMUM_MODULUS_SIZE || + bits > SSHBUF_MAX_BIGNUM * 8) + return SSH_ERR_KEY_LENGTH; + if ((private = RSA_new()) == NULL || (f4 = BN_new()) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } + if (!BN_set_word(f4, RSA_F4) || + !RSA_generate_key_ex(private, bits, f4, NULL)) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + k->rsa = private; + private = NULL; + ret = 0; + out: + RSA_free(private); + BN_free(f4); + return ret; +} + +static int +ssh_rsa_copy_public(const struct sshkey *from, struct sshkey *to) +{ + const BIGNUM *rsa_n, *rsa_e; + BIGNUM *rsa_n_dup = NULL, *rsa_e_dup = NULL; + int r = SSH_ERR_INTERNAL_ERROR; + + RSA_get0_key(from->rsa, &rsa_n, &rsa_e, NULL); + if ((rsa_n_dup = BN_dup(rsa_n)) == NULL || + (rsa_e_dup = BN_dup(rsa_e)) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + if (!RSA_set0_key(to->rsa, rsa_n_dup, rsa_e_dup, NULL)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + rsa_n_dup = rsa_e_dup = NULL; /* transferred */ + /* success */ + r = 0; + out: + BN_clear_free(rsa_n_dup); + BN_clear_free(rsa_e_dup); + return r; +} + +static int +ssh_rsa_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int ret = SSH_ERR_INTERNAL_ERROR; + BIGNUM *rsa_n = NULL, *rsa_e = NULL; + + if (sshbuf_get_bignum2(b, &rsa_e) != 0 || + sshbuf_get_bignum2(b, &rsa_n) != 0) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } + if (!RSA_set0_key(key->rsa, rsa_n, rsa_e, NULL)) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + rsa_n = rsa_e = NULL; /* transferred */ + if ((ret = sshkey_check_rsa_length(key, 0)) != 0) + goto out; +#ifdef DEBUG_PK + RSA_print_fp(stderr, key->rsa, 8); +#endif + /* success */ + ret = 0; + out: + BN_clear_free(rsa_n); + BN_clear_free(rsa_e); + return ret; +} + +static int +ssh_rsa_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; + BIGNUM *rsa_iqmp = NULL, *rsa_p = NULL, *rsa_q = NULL; + + /* Note: can't reuse ssh_rsa_deserialize_public: e, n vs. n, e */ + if (!sshkey_is_cert(key)) { + if ((r = sshbuf_get_bignum2(b, &rsa_n)) != 0 || + (r = sshbuf_get_bignum2(b, &rsa_e)) != 0) + goto out; + if (!RSA_set0_key(key->rsa, rsa_n, rsa_e, NULL)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + rsa_n = rsa_e = NULL; /* transferred */ + } + if ((r = sshbuf_get_bignum2(b, &rsa_d)) != 0 || + (r = sshbuf_get_bignum2(b, &rsa_iqmp)) != 0 || + (r = sshbuf_get_bignum2(b, &rsa_p)) != 0 || + (r = sshbuf_get_bignum2(b, &rsa_q)) != 0) + goto out; + if (!RSA_set0_key(key->rsa, NULL, NULL, rsa_d)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + rsa_d = NULL; /* transferred */ + if (!RSA_set0_factors(key->rsa, rsa_p, rsa_q)) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + rsa_p = rsa_q = NULL; /* transferred */ + if ((r = sshkey_check_rsa_length(key, 0)) != 0) + goto out; + if ((r = ssh_rsa_complete_crt_parameters(key, rsa_iqmp)) != 0) + goto out; + if (RSA_blinding_on(key->rsa, NULL) != 1) { + r = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + /* success */ + r = 0; + out: + BN_clear_free(rsa_n); + BN_clear_free(rsa_e); + BN_clear_free(rsa_d); + BN_clear_free(rsa_p); + BN_clear_free(rsa_q); + BN_clear_free(rsa_iqmp); + return r; +} + static const char * rsa_hash_alg_ident(int hash_alg) { @@ -160,14 +388,16 @@ ssh_rsa_complete_crt_parameters(struct sshkey *key, const BIGNUM *iqmp) } /* RSASSA-PKCS1-v1_5 (PKCS #1 v2.0 signature) with SHA1 */ -int -ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, const char *alg_ident) +static int +ssh_rsa_sign(struct sshkey *key, + u_char **sigp, size_t *lenp, + const u_char *data, size_t datalen, + const char *alg, const char *sk_provider, const char *sk_pin, u_int compat) { const BIGNUM *rsa_n; u_char digest[SSH_DIGEST_MAX_LENGTH], *sig = NULL; size_t slen = 0; - u_int dlen, len; + u_int hlen, len; int nid, hash_alg, ret = SSH_ERR_INTERNAL_ERROR; struct sshbuf *b = NULL; @@ -176,10 +406,10 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, if (sigp != NULL) *sigp = NULL; - if (alg_ident == NULL || strlen(alg_ident) == 0) + if (alg == NULL || strlen(alg) == 0) hash_alg = SSH_DIGEST_SHA1; else - hash_alg = rsa_hash_id_from_keyname(alg_ident); + hash_alg = rsa_hash_id_from_keyname(alg); if (key == NULL || key->rsa == NULL || hash_alg == -1 || sshkey_type_plain(key->type) != KEY_RSA) return SSH_ERR_INVALID_ARGUMENT; @@ -192,7 +422,7 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, /* hash the data */ nid = rsa_hash_alg_nid(hash_alg); - if ((dlen = ssh_digest_bytes(hash_alg)) == 0) + if ((hlen = ssh_digest_bytes(hash_alg)) == 0) return SSH_ERR_INTERNAL_ERROR; if ((ret = ssh_digest_memory(hash_alg, data, datalen, digest, sizeof(digest))) != 0) @@ -203,7 +433,7 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, goto out; } - if (RSA_sign(nid, digest, dlen, sig, &len, key->rsa) != 1) { + if (RSA_sign(nid, digest, hlen, sig, &len, key->rsa) != 1) { ret = SSH_ERR_LIBCRYPTO_ERROR; goto out; } @@ -241,15 +471,16 @@ ssh_rsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, return ret; } -int +static int ssh_rsa_verify(const struct sshkey *key, - const u_char *sig, size_t siglen, const u_char *data, size_t datalen, - const char *alg) + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, + struct sshkey_sig_details **detailsp) { const BIGNUM *rsa_n; char *sigtype = NULL; int hash_alg, want_alg, ret = SSH_ERR_INTERNAL_ERROR; - size_t len = 0, diff, modlen, dlen; + size_t len = 0, diff, modlen, hlen; struct sshbuf *b = NULL; u_char digest[SSH_DIGEST_MAX_LENGTH], *osigblob, *sigblob = NULL; @@ -310,15 +541,15 @@ ssh_rsa_verify(const struct sshkey *key, explicit_bzero(sigblob, diff); len = modlen; } - if ((dlen = ssh_digest_bytes(hash_alg)) == 0) { + if ((hlen = ssh_digest_bytes(hash_alg)) == 0) { ret = SSH_ERR_INTERNAL_ERROR; goto out; } - if ((ret = ssh_digest_memory(hash_alg, data, datalen, + if ((ret = ssh_digest_memory(hash_alg, data, dlen, digest, sizeof(digest))) != 0) goto out; - ret = openssh_RSA_verify(hash_alg, digest, dlen, sigblob, len, + ret = openssh_RSA_verify(hash_alg, digest, hlen, sigblob, len, key->rsa); out: freezero(sigblob, len); @@ -446,4 +677,93 @@ openssh_RSA_verify(int hash_alg, u_char *hash, size_t hashlen, freezero(decrypted, rsasize); return ret; } + +static const struct sshkey_impl_funcs sshkey_rsa_funcs = { + /* .size = */ ssh_rsa_size, + /* .alloc = */ ssh_rsa_alloc, + /* .cleanup = */ ssh_rsa_cleanup, + /* .equal = */ ssh_rsa_equal, + /* .ssh_serialize_public = */ ssh_rsa_serialize_public, + /* .ssh_deserialize_public = */ ssh_rsa_deserialize_public, + /* .ssh_serialize_private = */ ssh_rsa_serialize_private, + /* .ssh_deserialize_private = */ ssh_rsa_deserialize_private, + /* .generate = */ ssh_rsa_generate, + /* .copy_public = */ ssh_rsa_copy_public, + /* .sign = */ ssh_rsa_sign, + /* .verify = */ ssh_rsa_verify, +}; + +const struct sshkey_impl sshkey_rsa_impl = { + /* .name = */ "ssh-rsa", + /* .shortname = */ "RSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_RSA, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_rsa_funcs, +}; + +const struct sshkey_impl sshkey_rsa_cert_impl = { + /* .name = */ "ssh-rsa-cert-v01@openssh.com", + /* .shortname = */ "RSA-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_RSA_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_rsa_funcs, +}; + +/* SHA2 signature algorithms */ + +const struct sshkey_impl sshkey_rsa_sha256_impl = { + /* .name = */ "rsa-sha2-256", + /* .shortname = */ "RSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_RSA, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 1, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_rsa_funcs, +}; + +const struct sshkey_impl sshkey_rsa_sha512_impl = { + /* .name = */ "rsa-sha2-512", + /* .shortname = */ "RSA", + /* .sigalg = */ NULL, + /* .type = */ KEY_RSA, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 1, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_rsa_funcs, +}; + +const struct sshkey_impl sshkey_rsa_sha256_cert_impl = { + /* .name = */ "rsa-sha2-256-cert-v01@openssh.com", + /* .shortname = */ "RSA-CERT", + /* .sigalg = */ "rsa-sha2-256", + /* .type = */ KEY_RSA_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 1, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_rsa_funcs, +}; + +const struct sshkey_impl sshkey_rsa_sha512_cert_impl = { + /* .name = */ "rsa-sha2-512-cert-v01@openssh.com", + /* .shortname = */ "RSA-CERT", + /* .sigalg = */ "rsa-sha2-512", + /* .type = */ KEY_RSA_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 1, + /* .keybits = */ 0, + /* .funcs = */ &sshkey_rsa_funcs, +}; #endif /* WITH_OPENSSL */ diff --git a/crypto/openssh/ssh-sk-helper.c b/crypto/openssh/ssh-sk-helper.c index bd9b410a6974..9857b632bfcb 100644 --- a/crypto/openssh/ssh-sk-helper.c +++ b/crypto/openssh/ssh-sk-helper.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-sk-helper.c,v 1.13 2022/04/29 03:16:48 dtucker Exp $ */ +/* $OpenBSD: ssh-sk-helper.c,v 1.14 2022/12/04 11:03:11 dtucker Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -43,7 +43,6 @@ #include "sshbuf.h" #include "msg.h" #include "uidswap.h" -#include "sshkey.h" #include "ssherr.h" #include "ssh-sk.h" diff --git a/crypto/openssh/ssh-xmss.c b/crypto/openssh/ssh-xmss.c index 41ede29607c0..b3aec0f72df0 100644 --- a/crypto/openssh/ssh-xmss.c +++ b/crypto/openssh/ssh-xmss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-xmss.c,v 1.5 2022/04/20 15:59:18 millert Exp $*/ +/* $OpenBSD: ssh-xmss.c,v 1.14 2022/10/28 00:44:44 djm Exp $*/ /* * Copyright (c) 2017 Stefan-Lukas Gazdag. * Copyright (c) 2017 Markus Friedl. @@ -37,9 +37,169 @@ #include "xmss_fast.h" -int -ssh_xmss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat) +static void +ssh_xmss_cleanup(struct sshkey *k) +{ + freezero(k->xmss_pk, sshkey_xmss_pklen(k)); + freezero(k->xmss_sk, sshkey_xmss_sklen(k)); + sshkey_xmss_free_state(k); + free(k->xmss_name); + free(k->xmss_filename); + k->xmss_pk = NULL; + k->xmss_sk = NULL; + k->xmss_name = NULL; + k->xmss_filename = NULL; +} + +static int +ssh_xmss_equal(const struct sshkey *a, const struct sshkey *b) +{ + if (a->xmss_pk == NULL || b->xmss_pk == NULL) + return 0; + if (sshkey_xmss_pklen(a) != sshkey_xmss_pklen(b)) + return 0; + if (memcmp(a->xmss_pk, b->xmss_pk, sshkey_xmss_pklen(a)) != 0) + return 0; + return 1; +} + +static int +ssh_xmss_serialize_public(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if (key->xmss_name == NULL || key->xmss_pk == NULL || + sshkey_xmss_pklen(key) == 0) + return SSH_ERR_INVALID_ARGUMENT; + if ((r = sshbuf_put_cstring(b, key->xmss_name)) != 0 || + (r = sshbuf_put_string(b, key->xmss_pk, + sshkey_xmss_pklen(key))) != 0 || + (r = sshkey_xmss_serialize_pk_info(key, b, opts)) != 0) + return r; + + return 0; +} + +static int +ssh_xmss_serialize_private(const struct sshkey *key, struct sshbuf *b, + enum sshkey_serialize_rep opts) +{ + int r; + + if (key->xmss_name == NULL) + return SSH_ERR_INVALID_ARGUMENT; + /* Note: can't reuse ssh_xmss_serialize_public because of sk order */ + if ((r = sshbuf_put_cstring(b, key->xmss_name)) != 0 || + (r = sshbuf_put_string(b, key->xmss_pk, + sshkey_xmss_pklen(key))) != 0 || + (r = sshbuf_put_string(b, key->xmss_sk, + sshkey_xmss_sklen(key))) != 0 || + (r = sshkey_xmss_serialize_state_opt(key, b, opts)) != 0) + return r; + + return 0; +} + +static int +ssh_xmss_copy_public(const struct sshkey *from, struct sshkey *to) +{ + int r = SSH_ERR_INTERNAL_ERROR; + u_int32_t left; + size_t pklen; + + if ((r = sshkey_xmss_init(to, from->xmss_name)) != 0) + return r; + if (from->xmss_pk == NULL) + return 0; /* XXX SSH_ERR_INTERNAL_ERROR ? */ + + if ((pklen = sshkey_xmss_pklen(from)) == 0 || + sshkey_xmss_pklen(to) != pklen) + return SSH_ERR_INTERNAL_ERROR; + if ((to->xmss_pk = malloc(pklen)) == NULL) + return SSH_ERR_ALLOC_FAIL; + memcpy(to->xmss_pk, from->xmss_pk, pklen); + /* simulate number of signatures left on pubkey */ + left = sshkey_xmss_signatures_left(from); + if (left) + sshkey_xmss_enable_maxsign(to, left); + return 0; +} + +static int +ssh_xmss_deserialize_public(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + size_t len = 0; + char *xmss_name = NULL; + u_char *pk = NULL; + int ret = SSH_ERR_INTERNAL_ERROR; + + if ((ret = sshbuf_get_cstring(b, &xmss_name, NULL)) != 0) + goto out; + if ((ret = sshkey_xmss_init(key, xmss_name)) != 0) + goto out; + if ((ret = sshbuf_get_string(b, &pk, &len)) != 0) + goto out; + if (len == 0 || len != sshkey_xmss_pklen(key)) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } + key->xmss_pk = pk; + pk = NULL; + if (!sshkey_is_cert(key) && + (ret = sshkey_xmss_deserialize_pk_info(key, b)) != 0) + goto out; + /* success */ + ret = 0; + out: + free(xmss_name); + freezero(pk, len); + return ret; +} + +static int +ssh_xmss_deserialize_private(const char *ktype, struct sshbuf *b, + struct sshkey *key) +{ + int r; + char *xmss_name = NULL; + size_t pklen = 0, sklen = 0; + u_char *xmss_pk = NULL, *xmss_sk = NULL; + + /* Note: can't reuse ssh_xmss_deserialize_public because of sk order */ + if ((r = sshbuf_get_cstring(b, &xmss_name, NULL)) != 0 || + (r = sshbuf_get_string(b, &xmss_pk, &pklen)) != 0 || + (r = sshbuf_get_string(b, &xmss_sk, &sklen)) != 0) + goto out; + if (!sshkey_is_cert(key) && + (r = sshkey_xmss_init(key, xmss_name)) != 0) + goto out; + if (pklen != sshkey_xmss_pklen(key) || + sklen != sshkey_xmss_sklen(key)) { + r = SSH_ERR_INVALID_FORMAT; + goto out; + } + key->xmss_pk = xmss_pk; + key->xmss_sk = xmss_sk; + xmss_pk = xmss_sk = NULL; + /* optional internal state */ + if ((r = sshkey_xmss_deserialize_state_opt(key, b)) != 0) + goto out; + /* success */ + r = 0; + out: + free(xmss_name); + freezero(xmss_pk, pklen); + freezero(xmss_sk, sklen); + return r; +} + +static int +ssh_xmss_sign(struct sshkey *key, + u_char **sigp, size_t *lenp, + const u_char *data, size_t datalen, + const char *alg, const char *sk_provider, const char *sk_pin, u_int compat) { u_char *sig = NULL; size_t slen = 0, len = 0, required_siglen; @@ -111,10 +271,11 @@ ssh_xmss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, return r; } -int +static int ssh_xmss_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat) + const u_char *sig, size_t siglen, + const u_char *data, size_t dlen, const char *alg, u_int compat, + struct sshkey_sig_details **detailsp) { struct sshbuf *b = NULL; char *ktype = NULL; @@ -128,14 +289,14 @@ ssh_xmss_verify(const struct sshkey *key, sshkey_type_plain(key->type) != KEY_XMSS || key->xmss_pk == NULL || sshkey_xmss_params(key) == NULL || - signature == NULL || signaturelen == 0) + sig == NULL || siglen == 0) return SSH_ERR_INVALID_ARGUMENT; if ((r = sshkey_xmss_siglen(key, &required_siglen)) != 0) return r; - if (datalen >= INT_MAX - required_siglen) + if (dlen >= INT_MAX - required_siglen) return SSH_ERR_INVALID_ARGUMENT; - if ((b = sshbuf_from(signature, signaturelen)) == NULL) + if ((b = sshbuf_from(sig, siglen)) == NULL) return SSH_ERR_ALLOC_FAIL; if ((r = sshbuf_get_cstring(b, &ktype, NULL)) != 0 || (r = sshbuf_get_string_direct(b, &sigblob, &len)) != 0) @@ -152,23 +313,23 @@ ssh_xmss_verify(const struct sshkey *key, r = SSH_ERR_INVALID_FORMAT; goto out; } - if (datalen >= SIZE_MAX - len) { + if (dlen >= SIZE_MAX - len) { r = SSH_ERR_INVALID_ARGUMENT; goto out; } - smlen = len + datalen; + smlen = len + dlen; mlen = smlen; if ((sm = malloc(smlen)) == NULL || (m = malloc(mlen)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto out; } memcpy(sm, sigblob, len); - memcpy(sm+len, data, datalen); + memcpy(sm+len, data, dlen); if ((ret = xmss_sign_open(m, &mlen, sm, smlen, key->xmss_pk, sshkey_xmss_params(key))) != 0) { debug2_f("xmss_sign_open failed: %d", ret); } - if (ret != 0 || mlen != datalen) { + if (ret != 0 || mlen != dlen) { r = SSH_ERR_SIGNATURE_INVALID; goto out; } @@ -184,4 +345,43 @@ ssh_xmss_verify(const struct sshkey *key, free(ktype); return r; } + +static const struct sshkey_impl_funcs sshkey_xmss_funcs = { + /* .size = */ NULL, + /* .alloc = */ NULL, + /* .cleanup = */ ssh_xmss_cleanup, + /* .equal = */ ssh_xmss_equal, + /* .ssh_serialize_public = */ ssh_xmss_serialize_public, + /* .ssh_deserialize_public = */ ssh_xmss_deserialize_public, + /* .ssh_serialize_private = */ ssh_xmss_serialize_private, + /* .ssh_deserialize_private = */ ssh_xmss_deserialize_private, + /* .generate = */ sshkey_xmss_generate_private_key, + /* .copy_public = */ ssh_xmss_copy_public, + /* .sign = */ ssh_xmss_sign, + /* .verify = */ ssh_xmss_verify, +}; + +const struct sshkey_impl sshkey_xmss_impl = { + /* .name = */ "ssh-xmss@openssh.com", + /* .shortname = */ "XMSS", + /* .sigalg = */ NULL, + /* .type = */ KEY_XMSS, + /* .nid = */ 0, + /* .cert = */ 0, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_xmss_funcs, +}; + +const struct sshkey_impl sshkey_xmss_cert_impl = { + /* .name = */ "ssh-xmss-cert-v01@openssh.com", + /* .shortname = */ "XMSS-CERT", + /* .sigalg = */ NULL, + /* .type = */ KEY_XMSS_CERT, + /* .nid = */ 0, + /* .cert = */ 1, + /* .sigonly = */ 0, + /* .keybits = */ 256, + /* .funcs = */ &sshkey_xmss_funcs, +}; #endif /* WITH_XMSS */ diff --git a/crypto/openssh/ssh.1 b/crypto/openssh/ssh.1 index e255b9b9d2e4..a3d1ba16399e 100644 --- a/crypto/openssh/ssh.1 +++ b/crypto/openssh/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.432 2022/09/17 10:33:18 djm Exp $ -.Dd $Mdocdate: September 17 2022 $ +.\" $OpenBSD: ssh.1,v 1.433 2022/11/28 01:37:36 djm Exp $ +.Dd $Mdocdate: November 28 2022 $ .Dt SSH 1 .Os .Sh NAME @@ -522,6 +522,7 @@ For full details of the options listed below, and their possible values, see .It ControlPath .It ControlPersist .It DynamicForward +.It EnableEscapeCommandline .It EscapeChar .It ExitOnForwardFailure .It FingerprintHash diff --git a/crypto/openssh/ssh.c b/crypto/openssh/ssh.c index b7dd6ca8bff4..21050ec342e0 100644 --- a/crypto/openssh/ssh.c +++ b/crypto/openssh/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.579 2022/10/24 22:43:36 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.584 2023/01/17 18:52:44 millert Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -632,7 +632,7 @@ main(int ac, char **av) struct ssh *ssh = NULL; int i, r, opt, exit_status, use_syslog, direct, timeout_ms; int was_addr, config_test = 0, opt_terminated = 0, want_final_pass = 0; - char *p, *cp, *line, *argv0, *logfile, *host_arg; + char *p, *cp, *line, *argv0, *logfile; char cname[NI_MAXHOST], thishost[NI_MAXHOST]; struct stat st; struct passwd *pw; @@ -683,7 +683,7 @@ main(int ac, char **av) * writable only by the owner, which is ok for all files for which we * don't set the modes explicitly. */ - umask(022); + umask(022 | umask(077)); msetlocale(); @@ -886,8 +886,7 @@ main(int ac, char **av) case 'V': fprintf(stderr, "%s, %s\n", SSH_RELEASE, SSH_OPENSSL_VERSION); - if (opt == 'V') - exit(0); + exit(0); break; case 'w': if (options.tun_open == -1) @@ -1109,7 +1108,7 @@ main(int ac, char **av) if (!host) usage(); - host_arg = xstrdup(host); + options.host_arg = xstrdup(host); /* Initialize the command to execute on remote host. */ if ((command = sshbuf_new()) == NULL) @@ -1157,7 +1156,7 @@ main(int ac, char **av) logit("%s, %s", SSH_RELEASE, SSH_OPENSSL_VERSION); /* Parse the configuration files */ - process_config_files(host_arg, pw, 0, &want_final_pass); + process_config_files(options.host_arg, pw, 0, &want_final_pass); if (want_final_pass) debug("configuration requests final Match pass"); @@ -1226,7 +1225,7 @@ main(int ac, char **av) debug("re-parsing configuration"); free(options.hostname); options.hostname = xstrdup(host); - process_config_files(host_arg, pw, 1, NULL); + process_config_files(options.host_arg, pw, 1, NULL); /* * Address resolution happens early with canonicalisation * enabled and the port number may have changed since, so @@ -1379,10 +1378,10 @@ main(int ac, char **av) xasprintf(&cinfo->uidstr, "%llu", (unsigned long long)pw->pw_uid); cinfo->keyalias = xstrdup(options.host_key_alias ? - options.host_key_alias : host_arg); + options.host_key_alias : options.host_arg); cinfo->conn_hash_hex = ssh_connection_hash(cinfo->thishost, host, cinfo->portstr, options.user); - cinfo->host_arg = xstrdup(host_arg); + cinfo->host_arg = xstrdup(options.host_arg); cinfo->remhost = xstrdup(host); cinfo->remuser = xstrdup(options.user); cinfo->homedir = xstrdup(pw->pw_dir); @@ -1576,8 +1575,8 @@ main(int ac, char **av) timeout_ms = options.connection_timeout * 1000; /* Open a connection to the remote host. */ - if (ssh_connect(ssh, host, host_arg, addrs, &hostaddr, options.port, - options.connection_attempts, + if (ssh_connect(ssh, host, options.host_arg, addrs, &hostaddr, + options.port, options.connection_attempts, &timeout_ms, options.tcp_keep_alive) != 0) exit(255); @@ -1598,9 +1597,11 @@ main(int ac, char **av) sensitive_data.nkeys = 0; sensitive_data.keys = NULL; if (options.hostbased_authentication) { + int loaded = 0; + sensitive_data.nkeys = 10; sensitive_data.keys = xcalloc(sensitive_data.nkeys, - sizeof(struct sshkey)); + sizeof(*sensitive_data.keys)); /* XXX check errors? */ #define L_PUBKEY(p,o) do { \ @@ -1608,18 +1609,22 @@ main(int ac, char **av) fatal_f("pubkey out of array bounds"); \ check_load(sshkey_load_public(p, &(sensitive_data.keys[o]), NULL), \ &(sensitive_data.keys[o]), p, "pubkey"); \ - if (sensitive_data.keys[o] != NULL) \ + if (sensitive_data.keys[o] != NULL) { \ debug2("hostbased key %d: %s key from \"%s\"", o, \ sshkey_ssh_name(sensitive_data.keys[o]), p); \ + loaded++; \ + } \ } while (0) #define L_CERT(p,o) do { \ if ((o) >= sensitive_data.nkeys) \ fatal_f("cert out of array bounds"); \ check_load(sshkey_load_cert(p, &(sensitive_data.keys[o])), \ &(sensitive_data.keys[o]), p, "cert"); \ - if (sensitive_data.keys[o] != NULL) \ + if (sensitive_data.keys[o] != NULL) { \ debug2("hostbased key %d: %s cert from \"%s\"", o, \ sshkey_ssh_name(sensitive_data.keys[o]), p); \ + loaded++; \ + } \ } while (0) if (options.hostbased_authentication == 1) { @@ -1633,6 +1638,9 @@ main(int ac, char **av) L_PUBKEY(_PATH_HOST_DSA_KEY_FILE, 7); L_CERT(_PATH_HOST_XMSS_KEY_FILE, 8); L_PUBKEY(_PATH_HOST_XMSS_KEY_FILE, 9); + if (loaded == 0) + debug("HostbasedAuthentication enabled but no " + "local public host keys could be loaded."); } } @@ -1863,7 +1871,7 @@ ssh_confirm_remote_forward(struct ssh *ssh, int type, u_int32_t seq, void *ctxt) } static void -client_cleanup_stdio_fwd(struct ssh *ssh, int id, void *arg) +client_cleanup_stdio_fwd(struct ssh *ssh, int id, int force, void *arg) { debug("stdio forwarding: done"); cleanup_exit(0); @@ -2049,7 +2057,7 @@ ssh_session2_setup(struct ssh *ssh, int id, int success, void *arg) char *proto = NULL, *data = NULL; if (!success) - return; /* No need for error message, channels code sens one */ + return; /* No need for error message, channels code sends one */ display = getenv("DISPLAY"); if (display == NULL && options.forward_x11) diff --git a/crypto/openssh/ssh_config.5 b/crypto/openssh/ssh_config.5 index e29759901730..153dd9ea4ed8 100644 --- a/crypto/openssh/ssh_config.5 +++ b/crypto/openssh/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.374 2022/09/17 10:33:18 djm Exp $ -.Dd $Mdocdate: September 17 2022 $ +.\" $OpenBSD: ssh_config.5,v 1.378 2023/01/13 07:13:40 jmc Exp $ +.Dd $Mdocdate: January 13 2023 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -645,6 +645,12 @@ will act as a SOCKS server. Multiple forwardings may be specified, and additional forwardings can be given on the command line. Only the superuser can forward privileged ports. +.It Cm EnableEscapeCommandline +Enables the command line option in the +.Cm EscapeChar +menu for interactive sessions (default +.Ql ~C ) . +By default, the command line is disabled. .It Cm EnableSSHKeysign Setting this option to .Cm yes @@ -1013,6 +1019,10 @@ section. .It Cm IdentityFile Specifies a file from which the user's DSA, ECDSA, authenticator-hosted ECDSA, Ed25519, authenticator-hosted Ed25519 or RSA authentication identity is read. +You can also specify a public key file to use the corresponding +private key that is loaded in +.Xr ssh-agent 1 +when the private key file is not present locally. The default is .Pa ~/.ssh/id_rsa , .Pa ~/.ssh/id_ecdsa , @@ -1957,6 +1967,11 @@ the tokens described in the section and environment variables as described in the .Sx ENVIRONMENT VARIABLES section. +A value of +.Cm none +causes +.Xr ssh 1 +to ignore any user-specific known hosts files. The default is .Pa ~/.ssh/known_hosts , .Pa ~/.ssh/known_hosts2 . diff --git a/crypto/openssh/ssh_namespace.h b/crypto/openssh/ssh_namespace.h index 2fd4613743f6..cfbc9d9fbcba 100644 --- a/crypto/openssh/ssh_namespace.h +++ b/crypto/openssh/ssh_namespace.h @@ -33,7 +33,9 @@ #define addr_and Fssh_addr_and #define addr_cmp Fssh_addr_cmp #define addr_host_is_all0s Fssh_addr_host_is_all0s +#define addr_host_to_all1s Fssh_addr_host_to_all1s #define addr_hostmask Fssh_addr_hostmask +#define addr_increment Fssh_addr_increment #define addr_invert Fssh_addr_invert #define addr_is_all0s Fssh_addr_is_all0s #define addr_match_cidr_list Fssh_addr_match_cidr_list @@ -41,6 +43,7 @@ #define addr_netmask Fssh_addr_netmask #define addr_netmatch Fssh_addr_netmatch #define addr_ntop Fssh_addr_ntop +#define addr_or Fssh_addr_or #define addr_pton Fssh_addr_pton #define addr_pton_cidr Fssh_addr_pton_cidr #define addr_sa_pton Fssh_addr_sa_pton @@ -107,6 +110,7 @@ #define chan_shutdown_write Fssh_chan_shutdown_write #define chan_write_failed Fssh_chan_write_failed #define channel_add_permission Fssh_channel_add_permission +#define channel_add_timeout Fssh_channel_add_timeout #define channel_after_poll Fssh_channel_after_poll #define channel_by_id Fssh_channel_by_id #define channel_by_remote_id Fssh_channel_by_remote_id @@ -114,6 +118,7 @@ #define channel_cancel_lport_listener Fssh_channel_cancel_lport_listener #define channel_cancel_rport_listener Fssh_channel_cancel_rport_listener #define channel_clear_permission Fssh_channel_clear_permission +#define channel_clear_timeouts Fssh_channel_clear_timeouts #define channel_close_all Fssh_channel_close_all #define channel_close_fd Fssh_channel_close_fd #define channel_connect_by_listen_address Fssh_channel_connect_by_listen_address @@ -125,6 +130,7 @@ #define channel_decode_socks5 Fssh_channel_decode_socks5 #define channel_disable_admin Fssh_channel_disable_admin #define channel_find_open Fssh_channel_find_open +#define channel_force_close Fssh_channel_force_close #define channel_format_extended_usage Fssh_channel_format_extended_usage #define channel_free Fssh_channel_free #define channel_free_all Fssh_channel_free_all @@ -175,6 +181,7 @@ #define channel_set_af Fssh_channel_set_af #define channel_set_fds Fssh_channel_set_fds #define channel_set_x11_refuse_time Fssh_channel_set_x11_refuse_time +#define channel_set_xtype Fssh_channel_set_xtype #define channel_setup_fwd_listener_streamlocal Fssh_channel_setup_fwd_listener_streamlocal #define channel_setup_fwd_listener_tcpip Fssh_channel_setup_fwd_listener_tcpip #define channel_setup_local_fwd_listener Fssh_channel_setup_local_fwd_listener @@ -218,6 +225,7 @@ #define compat_pkalg_proposal Fssh_compat_pkalg_proposal #define compression_alg_list Fssh_compression_alg_list #define connect_next Fssh_connect_next +#define connect_to Fssh_connect_to #define connect_to_helper Fssh_connect_to_helper #define convtime Fssh_convtime #define crypto_hash_sha512 Fssh_crypto_hash_sha512 @@ -228,43 +236,13 @@ #define crypto_sign_ed25519 Fssh_crypto_sign_ed25519 #define crypto_sign_ed25519_keypair Fssh_crypto_sign_ed25519_keypair #define crypto_sign_ed25519_open Fssh_crypto_sign_ed25519_open -#define crypto_sign_ed25519_ref_double_scalarmult_vartime Fssh_crypto_sign_ed25519_ref_double_scalarmult_vartime -#define crypto_sign_ed25519_ref_fe25519_add Fssh_crypto_sign_ed25519_ref_fe25519_add -#define crypto_sign_ed25519_ref_fe25519_cmov Fssh_crypto_sign_ed25519_ref_fe25519_cmov -#define crypto_sign_ed25519_ref_fe25519_freeze Fssh_crypto_sign_ed25519_ref_fe25519_freeze #define crypto_sign_ed25519_ref_fe25519_getparity Fssh_crypto_sign_ed25519_ref_fe25519_getparity -#define crypto_sign_ed25519_ref_fe25519_invert Fssh_crypto_sign_ed25519_ref_fe25519_invert #define crypto_sign_ed25519_ref_fe25519_iseq_vartime Fssh_crypto_sign_ed25519_ref_fe25519_iseq_vartime -#define crypto_sign_ed25519_ref_fe25519_iszero Fssh_crypto_sign_ed25519_ref_fe25519_iszero #define crypto_sign_ed25519_ref_fe25519_mul Fssh_crypto_sign_ed25519_ref_fe25519_mul -#define crypto_sign_ed25519_ref_fe25519_neg Fssh_crypto_sign_ed25519_ref_fe25519_neg -#define crypto_sign_ed25519_ref_fe25519_pack Fssh_crypto_sign_ed25519_ref_fe25519_pack -#define crypto_sign_ed25519_ref_fe25519_pow2523 Fssh_crypto_sign_ed25519_ref_fe25519_pow2523 -#define crypto_sign_ed25519_ref_fe25519_setone Fssh_crypto_sign_ed25519_ref_fe25519_setone -#define crypto_sign_ed25519_ref_fe25519_setzero Fssh_crypto_sign_ed25519_ref_fe25519_setzero -#define crypto_sign_ed25519_ref_fe25519_square Fssh_crypto_sign_ed25519_ref_fe25519_square -#define crypto_sign_ed25519_ref_fe25519_sub Fssh_crypto_sign_ed25519_ref_fe25519_sub -#define crypto_sign_ed25519_ref_fe25519_unpack Fssh_crypto_sign_ed25519_ref_fe25519_unpack #define crypto_sign_ed25519_ref_isneutral_vartime Fssh_crypto_sign_ed25519_ref_isneutral_vartime #define crypto_sign_ed25519_ref_pack Fssh_crypto_sign_ed25519_ref_pack -#define crypto_sign_ed25519_ref_sc25519_2interleave2 Fssh_crypto_sign_ed25519_ref_sc25519_2interleave2 -#define crypto_sign_ed25519_ref_sc25519_add Fssh_crypto_sign_ed25519_ref_sc25519_add -#define crypto_sign_ed25519_ref_sc25519_from32bytes Fssh_crypto_sign_ed25519_ref_sc25519_from32bytes -#define crypto_sign_ed25519_ref_sc25519_from64bytes Fssh_crypto_sign_ed25519_ref_sc25519_from64bytes -#define crypto_sign_ed25519_ref_sc25519_from_shortsc Fssh_crypto_sign_ed25519_ref_sc25519_from_shortsc -#define crypto_sign_ed25519_ref_sc25519_isshort_vartime Fssh_crypto_sign_ed25519_ref_sc25519_isshort_vartime -#define crypto_sign_ed25519_ref_sc25519_iszero_vartime Fssh_crypto_sign_ed25519_ref_sc25519_iszero_vartime -#define crypto_sign_ed25519_ref_sc25519_lt_vartime Fssh_crypto_sign_ed25519_ref_sc25519_lt_vartime -#define crypto_sign_ed25519_ref_sc25519_mul Fssh_crypto_sign_ed25519_ref_sc25519_mul -#define crypto_sign_ed25519_ref_sc25519_mul_shortsc Fssh_crypto_sign_ed25519_ref_sc25519_mul_shortsc -#define crypto_sign_ed25519_ref_sc25519_sub_nored Fssh_crypto_sign_ed25519_ref_sc25519_sub_nored -#define crypto_sign_ed25519_ref_sc25519_to32bytes Fssh_crypto_sign_ed25519_ref_sc25519_to32bytes -#define crypto_sign_ed25519_ref_sc25519_window3 Fssh_crypto_sign_ed25519_ref_sc25519_window3 -#define crypto_sign_ed25519_ref_sc25519_window5 Fssh_crypto_sign_ed25519_ref_sc25519_window5 #define crypto_sign_ed25519_ref_scalarmult_base Fssh_crypto_sign_ed25519_ref_scalarmult_base -#define crypto_sign_ed25519_ref_shortsc25519_from16bytes Fssh_crypto_sign_ed25519_ref_shortsc25519_from16bytes #define crypto_sign_ed25519_ref_unpackneg_vartime Fssh_crypto_sign_ed25519_ref_unpackneg_vartime -#define crypto_verify_32 Fssh_crypto_verify_32 #define daemonized Fssh_daemonized #define dangerous_locale Fssh_dangerous_locale #define dbl_p1p1 Fssh_dbl_p1p1 @@ -291,6 +269,7 @@ #define exited_cleanly Fssh_exited_cleanly #define export_dns_rr Fssh_export_dns_rr #define fd_ready Fssh_fd_ready +#define fe25519_reduce_add_sub Fssh_fe25519_reduce_add_sub #define filter_list Fssh_filter_list #define fingerprint_b64 Fssh_fingerprint_b64 #define fingerprint_hex Fssh_fingerprint_hex @@ -308,7 +287,6 @@ #define g_opendir Fssh_g_opendir #define g_stat Fssh_g_stat #define gen_candidates Fssh_gen_candidates -#define get_hram Fssh_get_hram #define get_local_ipaddr Fssh_get_local_ipaddr #define get_local_name Fssh_get_local_name #define get_local_port Fssh_get_local_port @@ -497,13 +475,19 @@ #define platform_sys_dir_uid Fssh_platform_sys_dir_uid #define pledge Fssh_pledge #define poly1305_auth Fssh_poly1305_auth -#define poly64 Fssh_poly64 #define poly_hash Fssh_poly_hash #define port_open_helper Fssh_port_open_helper #define prime_test Fssh_prime_test #define private2_check_padding Fssh_private2_check_padding #define private2_uudecode Fssh_private2_uudecode #define proposals_match Fssh_proposals_match +#define ptimeout_deadline_monotime Fssh_ptimeout_deadline_monotime +#define ptimeout_deadline_ms Fssh_ptimeout_deadline_ms +#define ptimeout_deadline_sec Fssh_ptimeout_deadline_sec +#define ptimeout_get_ms Fssh_ptimeout_get_ms +#define ptimeout_get_tsp Fssh_ptimeout_get_tsp +#define ptimeout_init Fssh_ptimeout_init +#define ptimeout_isset Fssh_ptimeout_isset #define put_bitmap Fssh_put_bitmap #define put_host_port Fssh_put_host_port #define put_u16 Fssh_put_u16 @@ -515,9 +499,7 @@ #define read_mux Fssh_read_mux #define read_passphrase Fssh_read_passphrase #define recallocarray Fssh_recallocarray -#define recip Fssh_recip #define record_hostkey Fssh_record_hostkey -#define reduce_add_sub Fssh_reduce_add_sub #define refresh_progress_meter Fssh_refresh_progress_meter #define replacearg Fssh_replacearg #define revoke_blob Fssh_revoke_blob @@ -552,6 +534,7 @@ #define snmprintf Fssh_snmprintf #define sock_set_v6only Fssh_sock_set_v6only #define speed_to_baud Fssh_speed_to_baud +#define square Fssh_square #define ssh_add_hostkey Fssh_ssh_add_hostkey #define ssh_add_identity_constrained Fssh_ssh_add_identity_constrained #define ssh_agent_bind_hostkey Fssh_ssh_agent_bind_hostkey @@ -578,12 +561,53 @@ #define ssh_dispatch_run Fssh_ssh_dispatch_run #define ssh_dispatch_run_fatal Fssh_ssh_dispatch_run_fatal #define ssh_dispatch_set Fssh_ssh_dispatch_set +#define ssh_dss_alloc Fssh_ssh_dss_alloc +#define ssh_dss_cleanup Fssh_ssh_dss_cleanup +#define ssh_dss_copy_public Fssh_ssh_dss_copy_public +#define ssh_dss_deserialize_private Fssh_ssh_dss_deserialize_private +#define ssh_dss_deserialize_public Fssh_ssh_dss_deserialize_public +#define ssh_dss_equal Fssh_ssh_dss_equal +#define ssh_dss_generate Fssh_ssh_dss_generate +#define ssh_dss_serialize_private Fssh_ssh_dss_serialize_private +#define ssh_dss_serialize_public Fssh_ssh_dss_serialize_public #define ssh_dss_sign Fssh_ssh_dss_sign +#define ssh_dss_size Fssh_ssh_dss_size #define ssh_dss_verify Fssh_ssh_dss_verify +#define ssh_ecdsa_cleanup Fssh_ssh_ecdsa_cleanup +#define ssh_ecdsa_copy_public Fssh_ssh_ecdsa_copy_public +#define ssh_ecdsa_deserialize_private Fssh_ssh_ecdsa_deserialize_private +#define ssh_ecdsa_deserialize_public Fssh_ssh_ecdsa_deserialize_public +#define ssh_ecdsa_equal Fssh_ssh_ecdsa_equal +#define ssh_ecdsa_generate Fssh_ssh_ecdsa_generate +#define ssh_ecdsa_serialize_private Fssh_ssh_ecdsa_serialize_private +#define ssh_ecdsa_serialize_public Fssh_ssh_ecdsa_serialize_public #define ssh_ecdsa_sign Fssh_ssh_ecdsa_sign +#define ssh_ecdsa_size Fssh_ssh_ecdsa_size +#define ssh_ecdsa_sk_cleanup Fssh_ssh_ecdsa_sk_cleanup +#define ssh_ecdsa_sk_copy_public Fssh_ssh_ecdsa_sk_copy_public +#define ssh_ecdsa_sk_deserialize_private Fssh_ssh_ecdsa_sk_deserialize_private +#define ssh_ecdsa_sk_deserialize_public Fssh_ssh_ecdsa_sk_deserialize_public +#define ssh_ecdsa_sk_equal Fssh_ssh_ecdsa_sk_equal +#define ssh_ecdsa_sk_serialize_private Fssh_ssh_ecdsa_sk_serialize_private +#define ssh_ecdsa_sk_serialize_public Fssh_ssh_ecdsa_sk_serialize_public #define ssh_ecdsa_sk_verify Fssh_ssh_ecdsa_sk_verify #define ssh_ecdsa_verify Fssh_ssh_ecdsa_verify +#define ssh_ed25519_cleanup Fssh_ssh_ed25519_cleanup +#define ssh_ed25519_copy_public Fssh_ssh_ed25519_copy_public +#define ssh_ed25519_deserialize_private Fssh_ssh_ed25519_deserialize_private +#define ssh_ed25519_deserialize_public Fssh_ssh_ed25519_deserialize_public +#define ssh_ed25519_equal Fssh_ssh_ed25519_equal +#define ssh_ed25519_generate Fssh_ssh_ed25519_generate +#define ssh_ed25519_serialize_private Fssh_ssh_ed25519_serialize_private +#define ssh_ed25519_serialize_public Fssh_ssh_ed25519_serialize_public #define ssh_ed25519_sign Fssh_ssh_ed25519_sign +#define ssh_ed25519_sk_cleanup Fssh_ssh_ed25519_sk_cleanup +#define ssh_ed25519_sk_copy_public Fssh_ssh_ed25519_sk_copy_public +#define ssh_ed25519_sk_deserialize_private Fssh_ssh_ed25519_sk_deserialize_private +#define ssh_ed25519_sk_deserialize_public Fssh_ssh_ed25519_sk_deserialize_public +#define ssh_ed25519_sk_equal Fssh_ssh_ed25519_sk_equal +#define ssh_ed25519_sk_serialize_private Fssh_ssh_ed25519_sk_serialize_private +#define ssh_ed25519_sk_serialize_public Fssh_ssh_ed25519_sk_serialize_public #define ssh_ed25519_sk_verify Fssh_ssh_ed25519_sk_verify #define ssh_ed25519_verify Fssh_ssh_ed25519_verify #define ssh_err Fssh_ssh_err @@ -695,8 +719,18 @@ #define ssh_remove_identity Fssh_ssh_remove_identity #define ssh_request_reply Fssh_ssh_request_reply #define ssh_request_reply_decode Fssh_ssh_request_reply_decode +#define ssh_rsa_alloc Fssh_ssh_rsa_alloc +#define ssh_rsa_cleanup Fssh_ssh_rsa_cleanup #define ssh_rsa_complete_crt_parameters Fssh_ssh_rsa_complete_crt_parameters +#define ssh_rsa_copy_public Fssh_ssh_rsa_copy_public +#define ssh_rsa_deserialize_private Fssh_ssh_rsa_deserialize_private +#define ssh_rsa_deserialize_public Fssh_ssh_rsa_deserialize_public +#define ssh_rsa_equal Fssh_ssh_rsa_equal +#define ssh_rsa_generate Fssh_ssh_rsa_generate +#define ssh_rsa_serialize_private Fssh_ssh_rsa_serialize_private +#define ssh_rsa_serialize_public Fssh_ssh_rsa_serialize_public #define ssh_rsa_sign Fssh_ssh_rsa_sign +#define ssh_rsa_size Fssh_ssh_rsa_size #define ssh_rsa_verify Fssh_ssh_rsa_verify #define ssh_set_app_data Fssh_ssh_set_app_data #define ssh_set_newkeys Fssh_ssh_set_newkeys @@ -793,9 +827,11 @@ #define sshkey_check_revoked Fssh_sshkey_check_revoked #define sshkey_check_rsa_length Fssh_sshkey_check_rsa_length #define sshkey_check_sigtype Fssh_sshkey_check_sigtype +#define sshkey_copy_public_sk Fssh_sshkey_copy_public_sk #define sshkey_curve_name_to_nid Fssh_sshkey_curve_name_to_nid #define sshkey_curve_nid_to_bits Fssh_sshkey_curve_nid_to_bits #define sshkey_curve_nid_to_name Fssh_sshkey_curve_nid_to_name +#define sshkey_deserialize_sk Fssh_sshkey_deserialize_sk #define sshkey_drop_cert Fssh_sshkey_drop_cert #define sshkey_dump_ec_key Fssh_sshkey_dump_ec_key #define sshkey_dump_ec_point Fssh_sshkey_dump_ec_point @@ -813,6 +849,7 @@ #define sshkey_format_cert_validity Fssh_sshkey_format_cert_validity #define sshkey_format_text Fssh_sshkey_format_text #define sshkey_free Fssh_sshkey_free +#define sshkey_free_contents Fssh_sshkey_free_contents #define sshkey_from_blob Fssh_sshkey_from_blob #define sshkey_from_blob_internal Fssh_sshkey_from_blob_internal #define sshkey_from_private Fssh_sshkey_from_private @@ -820,6 +857,7 @@ #define sshkey_froms Fssh_sshkey_froms #define sshkey_generate Fssh_sshkey_generate #define sshkey_get_sigtype Fssh_sshkey_get_sigtype +#define sshkey_impl_from_type Fssh_sshkey_impl_from_type #define sshkey_in_file Fssh_sshkey_in_file #define sshkey_is_cert Fssh_sshkey_is_cert #define sshkey_is_shielded Fssh_sshkey_is_shielded @@ -840,6 +878,7 @@ #define sshkey_perm_ok Fssh_sshkey_perm_ok #define sshkey_plain_to_blob Fssh_sshkey_plain_to_blob #define sshkey_private_deserialize Fssh_sshkey_private_deserialize +#define sshkey_private_deserialize_sk Fssh_sshkey_private_deserialize_sk #define sshkey_private_serialize Fssh_sshkey_private_serialize #define sshkey_private_serialize_maxsign Fssh_sshkey_private_serialize_maxsign #define sshkey_private_serialize_opt Fssh_sshkey_private_serialize_opt @@ -852,6 +891,8 @@ #define sshkey_read Fssh_sshkey_read #define sshkey_save_private Fssh_sshkey_save_private #define sshkey_save_public Fssh_sshkey_save_public +#define sshkey_serialize_private_sk Fssh_sshkey_serialize_private_sk +#define sshkey_serialize_sk Fssh_sshkey_serialize_sk #define sshkey_set_filename Fssh_sshkey_set_filename #define sshkey_shield_private Fssh_sshkey_shield_private #define sshkey_sig_details_free Fssh_sshkey_sig_details_free @@ -859,6 +900,8 @@ #define sshkey_sign Fssh_sshkey_sign #define sshkey_signatures_left Fssh_sshkey_signatures_left #define sshkey_size Fssh_sshkey_size +#define sshkey_sk_cleanup Fssh_sshkey_sk_cleanup +#define sshkey_sk_fields_equal Fssh_sshkey_sk_fields_equal #define sshkey_ssh_name Fssh_sshkey_ssh_name #define sshkey_ssh_name_plain Fssh_sshkey_ssh_name_plain #define sshkey_to_base64 Fssh_sshkey_to_base64 diff --git a/crypto/openssh/sshbuf.c b/crypto/openssh/sshbuf.c index d5757b7264ed..d7f4e4ab6504 100644 --- a/crypto/openssh/sshbuf.c +++ b/crypto/openssh/sshbuf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf.c,v 1.18 2022/05/25 06:03:44 djm Exp $ */ +/* $OpenBSD: sshbuf.c,v 1.19 2022/12/02 04:40:27 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -15,7 +15,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define SSHBUF_INTERNAL #include "includes.h" #include @@ -25,9 +24,33 @@ #include #include "ssherr.h" +#define SSHBUF_INTERNAL #include "sshbuf.h" #include "misc.h" +#ifdef SSHBUF_DEBUG +# define SSHBUF_TELL(what) do { \ + printf("%s:%d %s: %s size %zu alloc %zu off %zu max %zu\n", \ + __FILE__, __LINE__, __func__, what, \ + buf->size, buf->alloc, buf->off, buf->max_size); \ + fflush(stdout); \ + } while (0) +#else +# define SSHBUF_TELL(what) +#endif + +struct sshbuf { + u_char *d; /* Data */ + const u_char *cd; /* Const data */ + size_t off; /* First available byte is buf->d + buf->off */ + size_t size; /* Last byte is buf->d + buf->size - 1 */ + size_t max_size; /* Maximum size of buffer */ + size_t alloc; /* Total bytes allocated to buf->d */ + int readonly; /* Refers to external, const data */ + u_int refcount; /* Tracks self and number of child buffers */ + struct sshbuf *parent; /* If child, pointer to parent */ +}; + static inline int sshbuf_check_sanity(const struct sshbuf *buf) { diff --git a/crypto/openssh/sshbuf.h b/crypto/openssh/sshbuf.h index feb91f762b9d..e2155f9a4d7e 100644 --- a/crypto/openssh/sshbuf.h +++ b/crypto/openssh/sshbuf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf.h,v 1.27 2022/05/25 06:03:44 djm Exp $ */ +/* $OpenBSD: sshbuf.h,v 1.28 2022/12/02 04:40:27 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -33,22 +33,7 @@ #define SSHBUF_MAX_BIGNUM (16384 / 8) /* Max bignum *bytes* */ #define SSHBUF_MAX_ECPOINT ((528 * 2 / 8) + 1) /* Max EC point *bytes* */ -/* - * NB. do not depend on the internals of this. It will be made opaque - * one day. - */ -struct sshbuf { - u_char *d; /* Data */ - const u_char *cd; /* Const data */ - size_t off; /* First available byte is buf->d + buf->off */ - size_t size; /* Last byte is buf->d + buf->size - 1 */ - size_t max_size; /* Maximum size of buffer */ - size_t alloc; /* Total bytes allocated to buf->d */ - int readonly; /* Refers to external, const data */ - int dont_free; /* Kludge to support sshbuf_init */ - u_int refcount; /* Tracks self and number of child buffers */ - struct sshbuf *parent; /* If child, pointer to parent */ -}; +struct sshbuf; /* * Create a new sshbuf buffer. @@ -394,12 +379,6 @@ u_int sshbuf_refcount(const struct sshbuf *buf); # endif # ifdef SSHBUF_DEBUG -# define SSHBUF_TELL(what) do { \ - printf("%s:%d %s: %s size %zu alloc %zu off %zu max %zu\n", \ - __FILE__, __LINE__, __func__, what, \ - buf->size, buf->alloc, buf->off, buf->max_size); \ - fflush(stdout); \ - } while (0) # define SSHBUF_DBG(x) do { \ printf("%s:%d %s: ", __FILE__, __LINE__, __func__); \ printf x; \ @@ -407,7 +386,6 @@ u_int sshbuf_refcount(const struct sshbuf *buf); fflush(stdout); \ } while (0) # else -# define SSHBUF_TELL(what) # define SSHBUF_DBG(x) # endif #endif /* SSHBUF_INTERNAL */ diff --git a/crypto/openssh/sshconnect.c b/crypto/openssh/sshconnect.c index 0fca52b220ff..792bc34bcb92 100644 --- a/crypto/openssh/sshconnect.c +++ b/crypto/openssh/sshconnect.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.c,v 1.360 2022/11/03 21:59:20 djm Exp $ */ +/* $OpenBSD: sshconnect.c,v 1.361 2023/01/13 02:44:02 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1276,8 +1276,11 @@ check_host_key(char *hostname, const struct ssh_conn_info *cinfo, } /* The host key has changed. */ warn_changed_key(host_key); - error("Add correct host key in %.100s to get rid of this message.", - user_hostfiles[0]); + if (num_user_hostfiles > 0 || num_system_hostfiles > 0) { + error("Add correct host key in %.100s to get rid " + "of this message.", num_user_hostfiles > 0 ? + user_hostfiles[0] : system_hostfiles[0]); + } error("Offending %s key in %s:%lu", sshkey_type(host_found->key), host_found->file, host_found->line); diff --git a/crypto/openssh/sshd.8 b/crypto/openssh/sshd.8 index 5836ef7d54e2..3c37c88f3ea6 100644 --- a/crypto/openssh/sshd.8 +++ b/crypto/openssh/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.321 2022/09/11 06:38:11 jmc Exp $ -.Dd $Mdocdate: September 11 2022 $ +.\" $OpenBSD: sshd.8,v 1.322 2023/01/18 01:50:21 millert Exp $ +.Dd $Mdocdate: January 18 2023 $ .Dt SSHD 8 .Os .Sh NAME @@ -43,7 +43,7 @@ .Sh SYNOPSIS .Nm sshd .Bk -words -.Op Fl 46DdeiqTt +.Op Fl 46DdeiqTtV .Op Fl C Ar connection_spec .Op Fl c Ar host_certificate_file .Op Fl E Ar log_file @@ -245,6 +245,8 @@ USER@HOST pattern in .Cm AllowUsers or .Cm DenyUsers . +.It Fl V +Display the version number and exit. .El .Sh AUTHENTICATION The OpenSSH SSH daemon supports SSH protocol 2 only. diff --git a/crypto/openssh/sshd.c b/crypto/openssh/sshd.c index a7f26cb97d6e..b8ef1664d70d 100644 --- a/crypto/openssh/sshd.c +++ b/crypto/openssh/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.591 2022/09/17 10:34:29 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.596 2023/01/18 01:50:21 millert Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -928,7 +928,7 @@ usage(void) fprintf(stderr, "%s, %s\n", SSH_RELEASE, SSH_OPENSSL_VERSION); fprintf(stderr, -"usage: sshd [-46DdeiqTt] [-C connection_spec] [-c host_cert_file]\n" +"usage: sshd [-46DdeiqTtV] [-C connection_spec] [-c host_cert_file]\n" " [-E log_file] [-f config_file] [-g login_grace_time]\n" " [-h host_key_file] [-o option] [-p port] [-u len]\n" ); @@ -964,14 +964,10 @@ send_rexec_state(int fd, struct sshbuf *conf) * string filename * string contents * } - * string rng_seed (if required) */ if ((r = sshbuf_put_stringb(m, conf)) != 0 || (r = sshbuf_put_stringb(m, inc)) != 0) fatal_fr(r, "compose config"); -#if defined(WITH_OPENSSL) && !defined(OPENSSL_PRNG_ONLY) - rexec_send_rng_seed(m); -#endif if (ssh_msg_send(fd, 0, m) == -1) error_f("ssh_msg_send failed"); @@ -1004,10 +1000,6 @@ recv_rexec_state(int fd, struct sshbuf *conf) (r = sshbuf_get_stringb(m, inc)) != 0) fatal_fr(r, "parse config"); -#if defined(WITH_OPENSSL) && !defined(OPENSSL_PRNG_ONLY) - rexec_recv_rng_seed(m); -#endif - if (conf != NULL && (r = sshbuf_put(conf, cp, len))) fatal_fr(r, "sshbuf_put"); @@ -1571,7 +1563,7 @@ accumulate_host_timing_secret(struct sshbuf *server_cfg, if ((buf = sshbuf_new()) == NULL) fatal_f("could not allocate buffer"); if ((r = sshkey_private_serialize(key, buf)) != 0) - fatal_fr(r, "decode key"); + fatal_fr(r, "encode %s key", sshkey_ssh_name(key)); if (ssh_digest_update(ctx, sshbuf_ptr(buf), sshbuf_len(buf)) != 0) fatal_f("ssh_digest_update"); sshbuf_reset(buf); @@ -1611,12 +1603,16 @@ main(int ac, char **av) int keytype; Authctxt *authctxt; struct connection_info *connection_info = NULL; + sigset_t sigmask; #ifdef HAVE_SECUREWARE (void)set_auth_parameters(ac, av); #endif __progname = ssh_get_progname(av[0]); + sigemptyset(&sigmask); + sigprocmask(SIG_SETMASK, &sigmask, NULL); + /* Save argv. Duplicate so setproctitle emulation doesn't clobber it */ saved_argc = ac; rexec_argc = ac; @@ -1637,14 +1633,12 @@ main(int ac, char **av) /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); - seed_rng(); - /* Initialize configuration options to their default values. */ initialize_server_options(&options); /* Parse command-line arguments. */ while ((opt = getopt(ac, av, - "C:E:b:c:f:g:h:k:o:p:u:46DQRTdeiqrt")) != -1) { + "C:E:b:c:f:g:h:k:o:p:u:46DQRTdeiqrtV")) != -1) { switch (opt) { case '4': options.address_family = AF_INET; @@ -1745,7 +1739,10 @@ main(int ac, char **av) exit(1); free(line); break; - case '?': + case 'V': + fprintf(stderr, "%s, %s\n", + SSH_VERSION, SSH_OPENSSL_VERSION); + exit(0); default: usage(); break; @@ -1760,6 +1757,8 @@ main(int ac, char **av) else closefrom(REEXEC_DEVCRYPTO_RESERVED_FD); + seed_rng(); + /* If requested, redirect the logs to the specified logfile. */ if (logfile != NULL) log_redirect_stderr_to(logfile); @@ -2255,6 +2254,7 @@ main(int ac, char **av) /* Prepare the channels layer */ channel_init_channels(ssh); channel_set_af(ssh, options.address_family); + process_channel_timeouts(ssh, &options); process_permitopen(ssh, &options); /* Set SO_KEEPALIVE if requested. */ diff --git a/crypto/openssh/sshd_config b/crypto/openssh/sshd_config index 4e9fb5e766d2..5e7cdbdfe04f 100644 --- a/crypto/openssh/sshd_config +++ b/crypto/openssh/sshd_config @@ -105,7 +105,7 @@ AuthorizedKeysFile .ssh/authorized_keys #PermitTunnel no #ChrootDirectory none #UseBlacklist no -#VersionAddendum FreeBSD-20221019 +#VersionAddendum FreeBSD-20230205 # no default banner path #Banner none diff --git a/crypto/openssh/sshd_config.5 b/crypto/openssh/sshd_config.5 index d13aea88f677..573b9d84e813 100644 --- a/crypto/openssh/sshd_config.5 +++ b/crypto/openssh/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.343 2022/09/17 10:34:29 djm Exp $ -.Dd $Mdocdate: September 17 2022 $ +.\" $OpenBSD: sshd_config.5,v 1.347 2023/01/18 06:55:32 jmc Exp $ +.Dd $Mdocdate: January 18 2023 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -395,6 +395,75 @@ from the default set instead of replacing them. .Pp Certificates signed using other algorithms will not be accepted for public key or host-based authentication. +.It Cm ChannelTimeout +Specifies whether and how quickly +.Xr sshd 8 +should close inactive channels. +Timeouts are specified as one or more +.Dq type=interval +pairs separated by whitespace, where the +.Dq type +must be a channel type name (as described in the table below), optionally +containing wildcard characters. +.Pp +The timeout value +.Dq interval +is specified in seconds or may use any of the units documented in the +.Sx TIME FORMATS +section. +For example, +.Dq session:*=5m +would cause all sessions to terminate after five minutes of inactivity. +Specifying a zero value disables the inactivity timeout. +.Pp +The available channel types include: +.Bl -tag -width Ds +.It Cm agent-connection +Open connections to +.Xr ssh-agent 1 . +.It Cm direct-tcpip , Cm direct-streamlocal@openssh.com +Open TCP or Unix socket (respectively) connections that have +been established from a +.Xr ssh 1 +local forwarding, i.e.\& +.Cm LocalForward +or +.Cm DynamicForward . +.It Cm forwarded-tcpip , Cm forwarded-streamlocal@openssh.com +Open TCP or Unix socket (respectively) connections that have been +established to a +.Xr sshd 8 +listening on behalf of a +.Xr ssh 1 +remote forwarding, i.e.\& +.Cm RemoteForward . +.It Cm session:command +Command execution sessions. +.It Cm session:shell +Interactive shell sessions. +.It Cm session:subsystem:... +Subsystem sessions, e.g. for +.Xr sftp 1 , +which could be identified as +.Cm session:subsystem:sftp . +.It Cm x11-connection +Open X11 forwarding sessions. +.El +.Pp +Note that in all the above cases, terminating an inactive session does not +guarantee to remove all resources associated with the session, e.g. shell +processes or X11 clients relating to the session may continue to execute. +.Pp +Moreover, terminating an inactive channel or session does not necessarily +close the SSH connection, nor does it prevent a client from +requesting another channel of the same type. +In particular, expiring an inactive forwarding session does not prevent +another identical forwarding from being subsequently created. +See also +.Cm UnusedConnectionTimeout , +which may be used in conjunction with this option. +.Pp +The default is not to expire channels of any type for inactivity. .It Cm ChrootDirectory Specifies the pathname of a directory to .Xr chroot 2 @@ -1190,6 +1259,7 @@ Available keywords are .Cm AuthorizedPrincipalsFile , .Cm Banner , .Cm CASignatureAlgorithms , +.Cm ChannelTimeout , .Cm ChrootDirectory , .Cm ClientAliveCountMax , .Cm ClientAliveInterval , @@ -1229,6 +1299,7 @@ Available keywords are .Cm StreamLocalBindMask , .Cm StreamLocalBindUnlink , .Cm TrustedUserCAKeys , +.Cm UnusedConnectionTimeout , .Cm X11DisplayOffset , .Cm X11Forwarding and @@ -1756,6 +1827,33 @@ for authentication using .Cm TrustedUserCAKeys . For more details on certificates, see the CERTIFICATES section in .Xr ssh-keygen 1 . +.It Cm UnusedConnectionTimeout +Specifies whether and how quickly +.Xr sshd 8 +should close client connections with no open channels. +Open channels include active shell, command execution or subsystem +sessions, connected network, socket, agent or X11 forwardings. +Forwarding listeners, such as those from the +.Xr ssh 1 +.Fl R +flag, are not considered as open channels and do not prevent the timeout. +The timeout value +is specified in seconds or may use any of the units documented in the +.Sx TIME FORMATS +section. +.Pp +Note that this timeout starts when the client connection completes +user authentication but before the client has an opportunity to open any +channels. +Caution should be used when using short timeout values, as they may not +provide sufficient time for the client to request and open its channels +before terminating the connection. +.Pp +The default +.Cm none +is to never expire connections for having no open channels. +This option may be useful in conjunction with +.Cm ChannelTimeout . .It Cm UseBlacklist Specifies whether .Xr sshd 8 @@ -1817,7 +1915,7 @@ The default is Optionally specifies additional text to append to the SSH protocol banner sent by the server upon connection. The default is -.Qq FreeBSD-20221019 . +.Qq FreeBSD-20230205 . The value .Cm none may be used to disable this. diff --git a/crypto/openssh/sshkey-xmss.c b/crypto/openssh/sshkey-xmss.c index f5235ef2fbd8..818aba9059df 100644 --- a/crypto/openssh/sshkey-xmss.c +++ b/crypto/openssh/sshkey-xmss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey-xmss.c,v 1.11 2021/04/03 06:18:41 djm Exp $ */ +/* $OpenBSD: sshkey-xmss.c,v 1.12 2022/10/28 00:39:29 djm Exp $ */ /* * Copyright (c) 2017 Markus Friedl. All rights reserved. * @@ -365,7 +365,7 @@ sshkey_xmss_deserialize_pk_info(struct sshkey *k, struct sshbuf *b) } int -sshkey_xmss_generate_private_key(struct sshkey *k, u_int bits) +sshkey_xmss_generate_private_key(struct sshkey *k, int bits) { int r; const char *name; diff --git a/crypto/openssh/sshkey-xmss.h b/crypto/openssh/sshkey-xmss.h index 32a12be620b1..ab8b9c905a96 100644 --- a/crypto/openssh/sshkey-xmss.h +++ b/crypto/openssh/sshkey-xmss.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey-xmss.h,v 1.3 2021/04/03 06:18:41 djm Exp $ */ +/* $OpenBSD: sshkey-xmss.h,v 1.4 2022/10/28 00:39:29 djm Exp $ */ /* * Copyright (c) 2017 Markus Friedl. All rights reserved. * @@ -34,7 +34,7 @@ size_t sshkey_xmss_pklen(const struct sshkey *); size_t sshkey_xmss_sklen(const struct sshkey *); int sshkey_xmss_init(struct sshkey *, const char *); void sshkey_xmss_free_state(struct sshkey *); -int sshkey_xmss_generate_private_key(struct sshkey *, u_int); +int sshkey_xmss_generate_private_key(struct sshkey *, int); int sshkey_xmss_serialize_state(const struct sshkey *, struct sshbuf *); int sshkey_xmss_serialize_state_opt(const struct sshkey *, struct sshbuf *, enum sshkey_serialize_rep); diff --git a/crypto/openssh/sshkey.c b/crypto/openssh/sshkey.c index 770932357139..43712253d72b 100644 --- a/crypto/openssh/sshkey.c +++ b/crypto/openssh/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.122 2022/09/17 10:30:45 djm Exp $ */ +/* $OpenBSD: sshkey.c,v 1.134 2022/10/28 02:47:04 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -94,111 +94,140 @@ static int sshkey_from_blob_internal(struct sshbuf *buf, struct sshkey **keyp, int allow_cert); /* Supported key types */ -struct keytype { - const char *name; - const char *shortname; - const char *sigalg; - int type; - int nid; - int cert; - int sigonly; -}; -static const struct keytype keytypes[] = { - { "ssh-ed25519", "ED25519", NULL, KEY_ED25519, 0, 0, 0 }, - { "ssh-ed25519-cert-v01@openssh.com", "ED25519-CERT", NULL, - KEY_ED25519_CERT, 0, 1, 0 }, -#ifdef ENABLE_SK - { "sk-ssh-ed25519@openssh.com", "ED25519-SK", NULL, - KEY_ED25519_SK, 0, 0, 0 }, - { "sk-ssh-ed25519-cert-v01@openssh.com", "ED25519-SK-CERT", NULL, - KEY_ED25519_SK_CERT, 0, 1, 0 }, -#endif -#ifdef WITH_XMSS - { "ssh-xmss@openssh.com", "XMSS", NULL, KEY_XMSS, 0, 0, 0 }, - { "ssh-xmss-cert-v01@openssh.com", "XMSS-CERT", NULL, - KEY_XMSS_CERT, 0, 1, 0 }, -#endif /* WITH_XMSS */ +extern const struct sshkey_impl sshkey_ed25519_impl; +extern const struct sshkey_impl sshkey_ed25519_cert_impl; +extern const struct sshkey_impl sshkey_ed25519_sk_impl; +extern const struct sshkey_impl sshkey_ed25519_sk_cert_impl; #ifdef WITH_OPENSSL - { "ssh-rsa", "RSA", NULL, KEY_RSA, 0, 0, 0 }, - { "rsa-sha2-256", "RSA", NULL, KEY_RSA, 0, 0, 1 }, - { "rsa-sha2-512", "RSA", NULL, KEY_RSA, 0, 0, 1 }, - { "ssh-dss", "DSA", NULL, KEY_DSA, 0, 0, 0 }, # ifdef OPENSSL_HAS_ECC - { "ecdsa-sha2-nistp256", "ECDSA", NULL, - KEY_ECDSA, NID_X9_62_prime256v1, 0, 0 }, - { "ecdsa-sha2-nistp384", "ECDSA", NULL, - KEY_ECDSA, NID_secp384r1, 0, 0 }, -# ifdef OPENSSL_HAS_NISTP521 - { "ecdsa-sha2-nistp521", "ECDSA", NULL, - KEY_ECDSA, NID_secp521r1, 0, 0 }, -# endif /* OPENSSL_HAS_NISTP521 */ # ifdef ENABLE_SK - { "sk-ecdsa-sha2-nistp256@openssh.com", "ECDSA-SK", NULL, - KEY_ECDSA_SK, NID_X9_62_prime256v1, 0, 0 }, - { "webauthn-sk-ecdsa-sha2-nistp256@openssh.com", "ECDSA-SK", NULL, - KEY_ECDSA_SK, NID_X9_62_prime256v1, 0, 1 }, +extern const struct sshkey_impl sshkey_ecdsa_sk_impl; +extern const struct sshkey_impl sshkey_ecdsa_sk_cert_impl; +extern const struct sshkey_impl sshkey_ecdsa_sk_webauthn_impl; # endif /* ENABLE_SK */ -# endif /* OPENSSL_HAS_ECC */ - { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", NULL, - KEY_RSA_CERT, 0, 1, 0 }, - { "rsa-sha2-256-cert-v01@openssh.com", "RSA-CERT", - "rsa-sha2-256", KEY_RSA_CERT, 0, 1, 1 }, - { "rsa-sha2-512-cert-v01@openssh.com", "RSA-CERT", - "rsa-sha2-512", KEY_RSA_CERT, 0, 1, 1 }, - { "ssh-dss-cert-v01@openssh.com", "DSA-CERT", NULL, - KEY_DSA_CERT, 0, 1, 0 }, -# ifdef OPENSSL_HAS_ECC - { "ecdsa-sha2-nistp256-cert-v01@openssh.com", "ECDSA-CERT", NULL, - KEY_ECDSA_CERT, NID_X9_62_prime256v1, 1, 0 }, - { "ecdsa-sha2-nistp384-cert-v01@openssh.com", "ECDSA-CERT", NULL, - KEY_ECDSA_CERT, NID_secp384r1, 1, 0 }, +extern const struct sshkey_impl sshkey_ecdsa_nistp256_impl; +extern const struct sshkey_impl sshkey_ecdsa_nistp256_cert_impl; +extern const struct sshkey_impl sshkey_ecdsa_nistp384_impl; +extern const struct sshkey_impl sshkey_ecdsa_nistp384_cert_impl; # ifdef OPENSSL_HAS_NISTP521 - { "ecdsa-sha2-nistp521-cert-v01@openssh.com", "ECDSA-CERT", NULL, - KEY_ECDSA_CERT, NID_secp521r1, 1, 0 }, +extern const struct sshkey_impl sshkey_ecdsa_nistp521_impl; +extern const struct sshkey_impl sshkey_ecdsa_nistp521_cert_impl; # endif /* OPENSSL_HAS_NISTP521 */ -# ifdef ENABLE_SK - { "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com", "ECDSA-SK-CERT", NULL, - KEY_ECDSA_SK_CERT, NID_X9_62_prime256v1, 1, 0 }, -# endif /* ENABLE_SK */ # endif /* OPENSSL_HAS_ECC */ +extern const struct sshkey_impl sshkey_rsa_impl; +extern const struct sshkey_impl sshkey_rsa_cert_impl; +extern const struct sshkey_impl sshkey_rsa_sha256_impl; +extern const struct sshkey_impl sshkey_rsa_sha256_cert_impl; +extern const struct sshkey_impl sshkey_rsa_sha512_impl; +extern const struct sshkey_impl sshkey_rsa_sha512_cert_impl; +extern const struct sshkey_impl sshkey_dss_impl; +extern const struct sshkey_impl sshkey_dsa_cert_impl; #endif /* WITH_OPENSSL */ - { NULL, NULL, NULL, -1, -1, 0, 0 } +#ifdef WITH_XMSS +extern const struct sshkey_impl sshkey_xmss_impl; +extern const struct sshkey_impl sshkey_xmss_cert_impl; +#endif + +const struct sshkey_impl * const keyimpls[] = { + &sshkey_ed25519_impl, + &sshkey_ed25519_cert_impl, +#ifdef ENABLE_SK + &sshkey_ed25519_sk_impl, + &sshkey_ed25519_sk_cert_impl, +#endif +#ifdef WITH_OPENSSL +# ifdef OPENSSL_HAS_ECC + &sshkey_ecdsa_nistp256_impl, + &sshkey_ecdsa_nistp256_cert_impl, + &sshkey_ecdsa_nistp384_impl, + &sshkey_ecdsa_nistp384_cert_impl, +# ifdef OPENSSL_HAS_NISTP521 + &sshkey_ecdsa_nistp521_impl, + &sshkey_ecdsa_nistp521_cert_impl, +# endif /* OPENSSL_HAS_NISTP521 */ +# ifdef ENABLE_SK + &sshkey_ecdsa_sk_impl, + &sshkey_ecdsa_sk_cert_impl, + &sshkey_ecdsa_sk_webauthn_impl, +# endif /* ENABLE_SK */ +# endif /* OPENSSL_HAS_ECC */ + &sshkey_dss_impl, + &sshkey_dsa_cert_impl, + &sshkey_rsa_impl, + &sshkey_rsa_cert_impl, + &sshkey_rsa_sha256_impl, + &sshkey_rsa_sha256_cert_impl, + &sshkey_rsa_sha512_impl, + &sshkey_rsa_sha512_cert_impl, +#endif /* WITH_OPENSSL */ +#ifdef WITH_XMSS + &sshkey_xmss_impl, + &sshkey_xmss_cert_impl, +#endif + NULL }; +static const struct sshkey_impl * +sshkey_impl_from_type(int type) +{ + int i; + + for (i = 0; keyimpls[i] != NULL; i++) { + if (keyimpls[i]->type == type) + return keyimpls[i]; + } + return NULL; +} + +static const struct sshkey_impl * +sshkey_impl_from_type_nid(int type, int nid) +{ + int i; + + for (i = 0; keyimpls[i] != NULL; i++) { + if (keyimpls[i]->type == type && + (keyimpls[i]->nid == 0 || keyimpls[i]->nid == nid)) + return keyimpls[i]; + } + return NULL; +} + +static const struct sshkey_impl * +sshkey_impl_from_key(const struct sshkey *k) +{ + if (k == NULL) + return NULL; + return sshkey_impl_from_type_nid(k->type, k->ecdsa_nid); +} + const char * sshkey_type(const struct sshkey *k) { - const struct keytype *kt; + const struct sshkey_impl *impl; - for (kt = keytypes; kt->type != -1; kt++) { - if (kt->type == k->type) - return kt->shortname; - } - return "unknown"; + if ((impl = sshkey_impl_from_key(k)) == NULL) + return "unknown"; + return impl->shortname; } static const char * sshkey_ssh_name_from_type_nid(int type, int nid) { - const struct keytype *kt; + const struct sshkey_impl *impl; - for (kt = keytypes; kt->type != -1; kt++) { - if (kt->type == type && (kt->nid == 0 || kt->nid == nid)) - return kt->name; - } - return "ssh-unknown"; + if ((impl = sshkey_impl_from_type_nid(type, nid)) == NULL) + return "ssh-unknown"; + return impl->name; } int sshkey_type_is_cert(int type) { - const struct keytype *kt; + const struct sshkey_impl *impl; - for (kt = keytypes; kt->type != -1; kt++) { - if (kt->type == type) - return kt->cert; - } - return 0; + if ((impl = sshkey_impl_from_type(type)) == NULL) + return 0; + return impl->cert; } const char * @@ -217,13 +246,15 @@ sshkey_ssh_name_plain(const struct sshkey *k) int sshkey_type_from_name(const char *name) { - const struct keytype *kt; + int i; + const struct sshkey_impl *impl; - for (kt = keytypes; kt->type != -1; kt++) { + for (i = 0; keyimpls[i] != NULL; i++) { + impl = keyimpls[i]; /* Only allow shortname matches for plain key types */ - if ((kt->name != NULL && strcmp(name, kt->name) == 0) || - (!kt->cert && strcasecmp(kt->shortname, name) == 0)) - return kt->type; + if ((impl->name != NULL && strcmp(name, impl->name) == 0) || + (!impl->cert && strcasecmp(impl->shortname, name) == 0)) + return impl->type; } return KEY_UNSPEC; } @@ -244,13 +275,14 @@ key_type_is_ecdsa_variant(int type) int sshkey_ecdsa_nid_from_name(const char *name) { - const struct keytype *kt; + int i; - for (kt = keytypes; kt->type != -1; kt++) { - if (!key_type_is_ecdsa_variant(kt->type)) + for (i = 0; keyimpls[i] != NULL; i++) { + if (!key_type_is_ecdsa_variant(keyimpls[i]->type)) continue; - if (kt->name != NULL && strcmp(name, kt->name) == 0) - return kt->nid; + if (keyimpls[i]->name != NULL && + strcmp(name, keyimpls[i]->name) == 0) + return keyimpls[i]->nid; } return -1; } @@ -282,25 +314,26 @@ char * sshkey_alg_list(int certs_only, int plain_only, int include_sigonly, char sep) { char *tmp, *ret = NULL; - size_t nlen, rlen = 0; - const struct keytype *kt; + size_t i, nlen, rlen = 0; + const struct sshkey_impl *impl; - for (kt = keytypes; kt->type != -1; kt++) { - if (kt->name == NULL) + for (i = 0; keyimpls[i] != NULL; i++) { + impl = keyimpls[i]; + if (impl->name == NULL) continue; - if (!include_sigonly && kt->sigonly) + if (!include_sigonly && impl->sigonly) continue; - if ((certs_only && !kt->cert) || (plain_only && kt->cert)) + if ((certs_only && !impl->cert) || (plain_only && impl->cert)) continue; if (ret != NULL) ret[rlen++] = sep; - nlen = strlen(kt->name); + nlen = strlen(impl->name); if ((tmp = realloc(ret, rlen + nlen + 2)) == NULL) { free(ret); return NULL; } ret = tmp; - memcpy(ret + rlen, kt->name, nlen + 1); + memcpy(ret + rlen, impl->name, nlen + 1); rlen += nlen; } return ret; @@ -310,8 +343,8 @@ int sshkey_names_valid2(const char *names, int allow_wildcard) { char *s, *cp, *p; - const struct keytype *kt; - int type; + const struct sshkey_impl *impl; + int i, type; if (names == NULL || strcmp(names, "") == 0) return 0; @@ -327,12 +360,15 @@ sshkey_names_valid2(const char *names, int allow_wildcard) * If any has a positive or negative match then * the component is accepted. */ - for (kt = keytypes; kt->type != -1; kt++) { - if (match_pattern_list(kt->name, - p, 0) != 0) + impl = NULL; + for (i = 0; keyimpls[i] != NULL; i++) { + if (match_pattern_list( + keyimpls[i]->name, p, 0) != 0) { + impl = keyimpls[i]; break; + } } - if (kt->type != -1) + if (impl != NULL) continue; } free(s); @@ -346,56 +382,24 @@ sshkey_names_valid2(const char *names, int allow_wildcard) u_int sshkey_size(const struct sshkey *k) { -#ifdef WITH_OPENSSL - const BIGNUM *rsa_n, *dsa_p; -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl; - switch (k->type) { -#ifdef WITH_OPENSSL - case KEY_RSA: - case KEY_RSA_CERT: - if (k->rsa == NULL) - return 0; - RSA_get0_key(k->rsa, &rsa_n, NULL, NULL); - return BN_num_bits(rsa_n); - case KEY_DSA: - case KEY_DSA_CERT: - if (k->dsa == NULL) - return 0; - DSA_get0_pqg(k->dsa, &dsa_p, NULL, NULL); - return BN_num_bits(dsa_p); - case KEY_ECDSA: - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK: - case KEY_ECDSA_SK_CERT: - return sshkey_curve_nid_to_bits(k->ecdsa_nid); -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_CERT: - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - case KEY_XMSS: - case KEY_XMSS_CERT: - return 256; /* XXX */ - } - return 0; + if ((impl = sshkey_impl_from_key(k)) == NULL) + return 0; + if (impl->funcs->size != NULL) + return impl->funcs->size(k); + return impl->keybits; } static int sshkey_type_is_valid_ca(int type) { - switch (type) { - case KEY_RSA: - case KEY_DSA: - case KEY_ECDSA: - case KEY_ECDSA_SK: - case KEY_ED25519: - case KEY_ED25519_SK: - case KEY_XMSS: - return 1; - default: + const struct sshkey_impl *impl; + + if ((impl = sshkey_impl_from_type(type)) == NULL) return 0; - } + /* All non-certificate types may act as CAs */ + return !impl->cert; } int @@ -444,6 +448,30 @@ sshkey_type_plain(int type) } } +/* Return the cert equivalent to a plain key type */ +static int +sshkey_type_certified(int type) +{ + switch (type) { + case KEY_RSA: + return KEY_RSA_CERT; + case KEY_DSA: + return KEY_DSA_CERT; + case KEY_ECDSA: + return KEY_ECDSA_CERT; + case KEY_ECDSA_SK: + return KEY_ECDSA_SK_CERT; + case KEY_ED25519: + return KEY_ED25519_CERT; + case KEY_ED25519_SK: + return KEY_ED25519_SK_CERT; + case KEY_XMSS: + return KEY_XMSS_CERT; + default: + return -1; + } +} + #ifdef WITH_OPENSSL /* XXX: these are really begging for a table-driven approach */ int @@ -573,63 +601,23 @@ struct sshkey * sshkey_new(int type) { struct sshkey *k; -#ifdef WITH_OPENSSL - RSA *rsa; - DSA *dsa; -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl = NULL; + if (type != KEY_UNSPEC && + (impl = sshkey_impl_from_type(type)) == NULL) + return NULL; + + /* All non-certificate types may act as CAs */ if ((k = calloc(1, sizeof(*k))) == NULL) return NULL; k->type = type; - k->ecdsa = NULL; k->ecdsa_nid = -1; - k->dsa = NULL; - k->rsa = NULL; - k->cert = NULL; - k->ed25519_sk = NULL; - k->ed25519_pk = NULL; - k->xmss_sk = NULL; - k->xmss_pk = NULL; - switch (k->type) { -#ifdef WITH_OPENSSL - case KEY_RSA: - case KEY_RSA_CERT: - if ((rsa = RSA_new()) == NULL) { + if (impl != NULL && impl->funcs->alloc != NULL) { + if (impl->funcs->alloc(k) != 0) { free(k); return NULL; } - k->rsa = rsa; - break; - case KEY_DSA: - case KEY_DSA_CERT: - if ((dsa = DSA_new()) == NULL) { - free(k); - return NULL; - } - k->dsa = dsa; - break; - case KEY_ECDSA: - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK: - case KEY_ECDSA_SK_CERT: - /* Cannot do anything until we know the group */ - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_CERT: - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - case KEY_XMSS: - case KEY_XMSS_CERT: - /* no need to prealloc */ - break; - case KEY_UNSPEC: - break; - default: - free(k); - return NULL; } - if (sshkey_is_cert(k)) { if ((k->cert = cert_new()) == NULL) { sshkey_free(k); @@ -640,73 +628,37 @@ sshkey_new(int type) return k; } +/* Frees common FIDO fields */ void -sshkey_free(struct sshkey *k) +sshkey_sk_cleanup(struct sshkey *k) { + free(k->sk_application); + sshbuf_free(k->sk_key_handle); + sshbuf_free(k->sk_reserved); + k->sk_application = NULL; + k->sk_key_handle = k->sk_reserved = NULL; +} + +static void +sshkey_free_contents(struct sshkey *k) +{ + const struct sshkey_impl *impl; + if (k == NULL) return; - switch (k->type) { -#ifdef WITH_OPENSSL - case KEY_RSA: - case KEY_RSA_CERT: - RSA_free(k->rsa); - k->rsa = NULL; - break; - case KEY_DSA: - case KEY_DSA_CERT: - DSA_free(k->dsa); - k->dsa = NULL; - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA_SK: - case KEY_ECDSA_SK_CERT: - free(k->sk_application); - sshbuf_free(k->sk_key_handle); - sshbuf_free(k->sk_reserved); - /* FALLTHROUGH */ - case KEY_ECDSA: - case KEY_ECDSA_CERT: - EC_KEY_free(k->ecdsa); - k->ecdsa = NULL; - break; -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - free(k->sk_application); - sshbuf_free(k->sk_key_handle); - sshbuf_free(k->sk_reserved); - /* FALLTHROUGH */ - case KEY_ED25519: - case KEY_ED25519_CERT: - freezero(k->ed25519_pk, ED25519_PK_SZ); - k->ed25519_pk = NULL; - freezero(k->ed25519_sk, ED25519_SK_SZ); - k->ed25519_sk = NULL; - break; -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: - freezero(k->xmss_pk, sshkey_xmss_pklen(k)); - k->xmss_pk = NULL; - freezero(k->xmss_sk, sshkey_xmss_sklen(k)); - k->xmss_sk = NULL; - sshkey_xmss_free_state(k); - free(k->xmss_name); - k->xmss_name = NULL; - free(k->xmss_filename); - k->xmss_filename = NULL; - break; -#endif /* WITH_XMSS */ - case KEY_UNSPEC: - break; - default: - break; - } + if ((impl = sshkey_impl_from_type(k->type)) != NULL && + impl->funcs->cleanup != NULL) + impl->funcs->cleanup(k); if (sshkey_is_cert(k)) cert_free(k->cert); freezero(k->shielded_private, k->shielded_len); freezero(k->shield_prekey, k->shield_prekey_len); +} + +void +sshkey_free(struct sshkey *k) +{ + sshkey_free_contents(k); freezero(k, sizeof(*k)); } @@ -725,6 +677,17 @@ cert_compare(struct sshkey_cert *a, struct sshkey_cert *b) return 1; } +/* Compares FIDO-specific pubkey fields only */ +int +sshkey_sk_fields_equal(const struct sshkey *a, const struct sshkey *b) +{ + if (a->sk_application == NULL || b->sk_application == NULL) + return 0; + if (strcmp(a->sk_application, b->sk_application) != 0) + return 0; + return 1; +} + /* * Compare public portions of key only, allowing comparisons between * certificates and plain keys too. @@ -732,84 +695,14 @@ cert_compare(struct sshkey_cert *a, struct sshkey_cert *b) int sshkey_equal_public(const struct sshkey *a, const struct sshkey *b) { -#if defined(WITH_OPENSSL) - const BIGNUM *rsa_e_a, *rsa_n_a; - const BIGNUM *rsa_e_b, *rsa_n_b; - const BIGNUM *dsa_p_a, *dsa_q_a, *dsa_g_a, *dsa_pub_key_a; - const BIGNUM *dsa_p_b, *dsa_q_b, *dsa_g_b, *dsa_pub_key_b; -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl; if (a == NULL || b == NULL || sshkey_type_plain(a->type) != sshkey_type_plain(b->type)) return 0; - - switch (a->type) { -#ifdef WITH_OPENSSL - case KEY_RSA_CERT: - case KEY_RSA: - if (a->rsa == NULL || b->rsa == NULL) - return 0; - RSA_get0_key(a->rsa, &rsa_n_a, &rsa_e_a, NULL); - RSA_get0_key(b->rsa, &rsa_n_b, &rsa_e_b, NULL); - return BN_cmp(rsa_e_a, rsa_e_b) == 0 && - BN_cmp(rsa_n_a, rsa_n_b) == 0; - case KEY_DSA_CERT: - case KEY_DSA: - if (a->dsa == NULL || b->dsa == NULL) - return 0; - DSA_get0_pqg(a->dsa, &dsa_p_a, &dsa_q_a, &dsa_g_a); - DSA_get0_pqg(b->dsa, &dsa_p_b, &dsa_q_b, &dsa_g_b); - DSA_get0_key(a->dsa, &dsa_pub_key_a, NULL); - DSA_get0_key(b->dsa, &dsa_pub_key_b, NULL); - return BN_cmp(dsa_p_a, dsa_p_b) == 0 && - BN_cmp(dsa_q_a, dsa_q_b) == 0 && - BN_cmp(dsa_g_a, dsa_g_b) == 0 && - BN_cmp(dsa_pub_key_a, dsa_pub_key_b) == 0; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA_SK: - case KEY_ECDSA_SK_CERT: - if (a->sk_application == NULL || b->sk_application == NULL) - return 0; - if (strcmp(a->sk_application, b->sk_application) != 0) - return 0; - /* FALLTHROUGH */ - case KEY_ECDSA_CERT: - case KEY_ECDSA: - if (a->ecdsa == NULL || b->ecdsa == NULL || - EC_KEY_get0_public_key(a->ecdsa) == NULL || - EC_KEY_get0_public_key(b->ecdsa) == NULL) - return 0; - if (EC_GROUP_cmp(EC_KEY_get0_group(a->ecdsa), - EC_KEY_get0_group(b->ecdsa), NULL) != 0 || - EC_POINT_cmp(EC_KEY_get0_group(a->ecdsa), - EC_KEY_get0_public_key(a->ecdsa), - EC_KEY_get0_public_key(b->ecdsa), NULL) != 0) - return 0; - return 1; -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - if (a->sk_application == NULL || b->sk_application == NULL) - return 0; - if (strcmp(a->sk_application, b->sk_application) != 0) - return 0; - /* FALLTHROUGH */ - case KEY_ED25519: - case KEY_ED25519_CERT: - return a->ed25519_pk != NULL && b->ed25519_pk != NULL && - memcmp(a->ed25519_pk, b->ed25519_pk, ED25519_PK_SZ) == 0; -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: - return a->xmss_pk != NULL && b->xmss_pk != NULL && - sshkey_xmss_pklen(a) == sshkey_xmss_pklen(b) && - memcmp(a->xmss_pk, b->xmss_pk, sshkey_xmss_pklen(a)) == 0; -#endif /* WITH_XMSS */ - default: + if ((impl = sshkey_impl_from_type(a->type)) == NULL) return 0; - } - /* NOTREACHED */ + return impl->funcs->equal(a, b); } int @@ -824,116 +717,49 @@ sshkey_equal(const struct sshkey *a, const struct sshkey *b) return sshkey_equal_public(a, b); } + +/* Serialise common FIDO key parts */ +int +sshkey_serialize_sk(const struct sshkey *key, struct sshbuf *b) +{ + int r; + + if ((r = sshbuf_put_cstring(b, key->sk_application)) != 0) + return r; + + return 0; +} + static int to_blob_buf(const struct sshkey *key, struct sshbuf *b, int force_plain, enum sshkey_serialize_rep opts) { int type, ret = SSH_ERR_INTERNAL_ERROR; const char *typename; -#ifdef WITH_OPENSSL - const BIGNUM *rsa_n, *rsa_e, *dsa_p, *dsa_q, *dsa_g, *dsa_pub_key; -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl; if (key == NULL) return SSH_ERR_INVALID_ARGUMENT; - if (sshkey_is_cert(key)) { + type = force_plain ? sshkey_type_plain(key->type) : key->type; + + if (sshkey_type_is_cert(type)) { if (key->cert == NULL) return SSH_ERR_EXPECTED_CERT; if (sshbuf_len(key->cert->certblob) == 0) return SSH_ERR_KEY_LACKS_CERTBLOB; - } - type = force_plain ? sshkey_type_plain(key->type) : key->type; - typename = sshkey_ssh_name_from_type_nid(type, key->ecdsa_nid); - - switch (type) { -#ifdef WITH_OPENSSL - case KEY_DSA_CERT: - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK_CERT: - case KEY_RSA_CERT: -#endif /* WITH_OPENSSL */ - case KEY_ED25519_CERT: - case KEY_ED25519_SK_CERT: -#ifdef WITH_XMSS - case KEY_XMSS_CERT: -#endif /* WITH_XMSS */ /* Use the existing blob */ - /* XXX modified flag? */ if ((ret = sshbuf_putb(b, key->cert->certblob)) != 0) return ret; - break; -#ifdef WITH_OPENSSL - case KEY_DSA: - if (key->dsa == NULL) - return SSH_ERR_INVALID_ARGUMENT; - DSA_get0_pqg(key->dsa, &dsa_p, &dsa_q, &dsa_g); - DSA_get0_key(key->dsa, &dsa_pub_key, NULL); - if ((ret = sshbuf_put_cstring(b, typename)) != 0 || - (ret = sshbuf_put_bignum2(b, dsa_p)) != 0 || - (ret = sshbuf_put_bignum2(b, dsa_q)) != 0 || - (ret = sshbuf_put_bignum2(b, dsa_g)) != 0 || - (ret = sshbuf_put_bignum2(b, dsa_pub_key)) != 0) - return ret; - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA: - case KEY_ECDSA_SK: - if (key->ecdsa == NULL) - return SSH_ERR_INVALID_ARGUMENT; - if ((ret = sshbuf_put_cstring(b, typename)) != 0 || - (ret = sshbuf_put_cstring(b, - sshkey_curve_nid_to_name(key->ecdsa_nid))) != 0 || - (ret = sshbuf_put_eckey(b, key->ecdsa)) != 0) - return ret; - if (type == KEY_ECDSA_SK) { - if ((ret = sshbuf_put_cstring(b, - key->sk_application)) != 0) - return ret; - } - break; -# endif - case KEY_RSA: - if (key->rsa == NULL) - return SSH_ERR_INVALID_ARGUMENT; - RSA_get0_key(key->rsa, &rsa_n, &rsa_e, NULL); - if ((ret = sshbuf_put_cstring(b, typename)) != 0 || - (ret = sshbuf_put_bignum2(b, rsa_e)) != 0 || - (ret = sshbuf_put_bignum2(b, rsa_n)) != 0) - return ret; - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_SK: - if (key->ed25519_pk == NULL) - return SSH_ERR_INVALID_ARGUMENT; - if ((ret = sshbuf_put_cstring(b, typename)) != 0 || - (ret = sshbuf_put_string(b, - key->ed25519_pk, ED25519_PK_SZ)) != 0) - return ret; - if (type == KEY_ED25519_SK) { - if ((ret = sshbuf_put_cstring(b, - key->sk_application)) != 0) - return ret; - } - break; -#ifdef WITH_XMSS - case KEY_XMSS: - if (key->xmss_name == NULL || key->xmss_pk == NULL || - sshkey_xmss_pklen(key) == 0) - return SSH_ERR_INVALID_ARGUMENT; - if ((ret = sshbuf_put_cstring(b, typename)) != 0 || - (ret = sshbuf_put_cstring(b, key->xmss_name)) != 0 || - (ret = sshbuf_put_string(b, - key->xmss_pk, sshkey_xmss_pklen(key))) != 0 || - (ret = sshkey_xmss_serialize_pk_info(key, b, opts)) != 0) - return ret; - break; -#endif /* WITH_XMSS */ - default: - return SSH_ERR_KEY_TYPE_UNKNOWN; + return 0; } - return 0; + if ((impl = sshkey_impl_from_type(type)) == NULL) + return SSH_ERR_KEY_TYPE_UNKNOWN; + + typename = sshkey_ssh_name_from_type_nid(type, key->ecdsa_nid); + if ((ret = sshbuf_put_cstring(b, typename)) != 0) + return ret; + return impl->funcs->serialize_public(key, b, opts); } int @@ -1319,16 +1145,18 @@ sshkey_fingerprint(const struct sshkey *k, int dgst_alg, static int peek_type_nid(const char *s, size_t l, int *nid) { - const struct keytype *kt; + const struct sshkey_impl *impl; + int i; - for (kt = keytypes; kt->type != -1; kt++) { - if (kt->name == NULL || strlen(kt->name) != l) + for (i = 0; keyimpls[i] != NULL; i++) { + impl = keyimpls[i]; + if (impl->name == NULL || strlen(impl->name) != l) continue; - if (memcmp(s, kt->name, l) == 0) { + if (memcmp(s, impl->name, l) == 0) { *nid = -1; - if (key_type_is_ecdsa_variant(kt->type)) - *nid = kt->nid; - return kt->type; + if (key_type_is_ecdsa_variant(impl->type)) + *nid = impl->nid; + return impl->type; } } return KEY_UNSPEC; @@ -1346,29 +1174,8 @@ sshkey_read(struct sshkey *ret, char **cpp) if (ret == NULL) return SSH_ERR_INVALID_ARGUMENT; - - switch (ret->type) { - case KEY_UNSPEC: - case KEY_RSA: - case KEY_DSA: - case KEY_ECDSA: - case KEY_ECDSA_SK: - case KEY_ED25519: - case KEY_ED25519_SK: - case KEY_DSA_CERT: - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK_CERT: - case KEY_RSA_CERT: - case KEY_ED25519_CERT: - case KEY_ED25519_SK_CERT: -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: -#endif /* WITH_XMSS */ - break; /* ok */ - default: + if (ret->type != KEY_UNSPEC && sshkey_impl_from_type(ret->type) == NULL) return SSH_ERR_INVALID_ARGUMENT; - } /* Decode type */ cp = *cpp; @@ -1421,107 +1228,15 @@ sshkey_read(struct sshkey *ret, char **cpp) } /* Fill in ret from parsed key */ - ret->type = type; - if (sshkey_is_cert(ret)) { - if (!sshkey_is_cert(k)) { - sshkey_free(k); - return SSH_ERR_EXPECTED_CERT; - } - if (ret->cert != NULL) - cert_free(ret->cert); - ret->cert = k->cert; - k->cert = NULL; - } - switch (sshkey_type_plain(ret->type)) { -#ifdef WITH_OPENSSL - case KEY_RSA: - RSA_free(ret->rsa); - ret->rsa = k->rsa; - k->rsa = NULL; -#ifdef DEBUG_PK - RSA_print_fp(stderr, ret->rsa, 8); -#endif - break; - case KEY_DSA: - DSA_free(ret->dsa); - ret->dsa = k->dsa; - k->dsa = NULL; -#ifdef DEBUG_PK - DSA_print_fp(stderr, ret->dsa, 8); -#endif - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA: - EC_KEY_free(ret->ecdsa); - ret->ecdsa = k->ecdsa; - ret->ecdsa_nid = k->ecdsa_nid; - k->ecdsa = NULL; - k->ecdsa_nid = -1; -#ifdef DEBUG_PK - sshkey_dump_ec_key(ret->ecdsa); -#endif - break; - case KEY_ECDSA_SK: - EC_KEY_free(ret->ecdsa); - ret->ecdsa = k->ecdsa; - ret->ecdsa_nid = k->ecdsa_nid; - ret->sk_application = k->sk_application; - k->ecdsa = NULL; - k->ecdsa_nid = -1; - k->sk_application = NULL; -#ifdef DEBUG_PK - sshkey_dump_ec_key(ret->ecdsa); - fprintf(stderr, "App: %s\n", ret->sk_application); -#endif - break; -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - freezero(ret->ed25519_pk, ED25519_PK_SZ); - ret->ed25519_pk = k->ed25519_pk; - k->ed25519_pk = NULL; -#ifdef DEBUG_PK - /* XXX */ -#endif - break; - case KEY_ED25519_SK: - freezero(ret->ed25519_pk, ED25519_PK_SZ); - ret->ed25519_pk = k->ed25519_pk; - ret->sk_application = k->sk_application; - k->ed25519_pk = NULL; - k->sk_application = NULL; - break; -#ifdef WITH_XMSS - case KEY_XMSS: - free(ret->xmss_pk); - ret->xmss_pk = k->xmss_pk; - k->xmss_pk = NULL; - free(ret->xmss_state); - ret->xmss_state = k->xmss_state; - k->xmss_state = NULL; - free(ret->xmss_name); - ret->xmss_name = k->xmss_name; - k->xmss_name = NULL; - free(ret->xmss_filename); - ret->xmss_filename = k->xmss_filename; - k->xmss_filename = NULL; -#ifdef DEBUG_PK - /* XXX */ -#endif - break; -#endif /* WITH_XMSS */ - default: - sshkey_free(k); - return SSH_ERR_INTERNAL_ERROR; - } - sshkey_free(k); + sshkey_free_contents(ret); + *ret = *k; + freezero(k, sizeof(*k)); /* success */ *cpp = cp; return 0; } - int sshkey_to_base64(const struct sshkey *key, char **b64p) { @@ -1604,66 +1319,26 @@ sshkey_cert_type(const struct sshkey *k) } } +int +sshkey_check_rsa_length(const struct sshkey *k, int min_size) +{ #ifdef WITH_OPENSSL -static int -rsa_generate_private_key(u_int bits, RSA **rsap) -{ - RSA *private = NULL; - BIGNUM *f4 = NULL; - int ret = SSH_ERR_INTERNAL_ERROR; + const BIGNUM *rsa_n; + int nbits; - if (rsap == NULL) - return SSH_ERR_INVALID_ARGUMENT; - if (bits < SSH_RSA_MINIMUM_MODULUS_SIZE || - bits > SSHBUF_MAX_BIGNUM * 8) + if (k == NULL || k->rsa == NULL || + (k->type != KEY_RSA && k->type != KEY_RSA_CERT)) + return 0; + RSA_get0_key(k->rsa, &rsa_n, NULL, NULL); + nbits = BN_num_bits(rsa_n); + if (nbits < SSH_RSA_MINIMUM_MODULUS_SIZE || + (min_size > 0 && nbits < min_size)) return SSH_ERR_KEY_LENGTH; - *rsap = NULL; - if ((private = RSA_new()) == NULL || (f4 = BN_new()) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (!BN_set_word(f4, RSA_F4) || - !RSA_generate_key_ex(private, bits, f4, NULL)) { - ret = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - *rsap = private; - private = NULL; - ret = 0; - out: - RSA_free(private); - BN_free(f4); - return ret; -} - -static int -dsa_generate_private_key(u_int bits, DSA **dsap) -{ - DSA *private; - int ret = SSH_ERR_INTERNAL_ERROR; - - if (dsap == NULL) - return SSH_ERR_INVALID_ARGUMENT; - if (bits != 1024) - return SSH_ERR_KEY_LENGTH; - if ((private = DSA_new()) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - *dsap = NULL; - if (!DSA_generate_parameters_ex(private, bits, NULL, 0, NULL, - NULL, NULL) || !DSA_generate_key(private)) { - ret = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - *dsap = private; - private = NULL; - ret = 0; - out: - DSA_free(private); - return ret; +#endif /* WITH_OPENSSL */ + return 0; } +#ifdef WITH_OPENSSL # ifdef OPENSSL_HAS_ECC int sshkey_ecdsa_key_to_nid(EC_KEY *k) @@ -1708,34 +1383,6 @@ sshkey_ecdsa_key_to_nid(EC_KEY *k) } return nids[i]; } - -static int -ecdsa_generate_private_key(u_int bits, int *nid, EC_KEY **ecdsap) -{ - EC_KEY *private; - int ret = SSH_ERR_INTERNAL_ERROR; - - if (nid == NULL || ecdsap == NULL) - return SSH_ERR_INVALID_ARGUMENT; - if ((*nid = sshkey_ecdsa_bits_to_nid(bits)) == -1) - return SSH_ERR_KEY_LENGTH; - *ecdsap = NULL; - if ((private = EC_KEY_new_by_curve_name(*nid)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (EC_KEY_generate_key(private) != 1) { - ret = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - EC_KEY_set_asn1_flag(private, OPENSSL_EC_NAMED_CURVE); - *ecdsap = private; - private = NULL; - ret = 0; - out: - EC_KEY_free(private); - return ret; -} # endif /* OPENSSL_HAS_ECC */ #endif /* WITH_OPENSSL */ @@ -1744,50 +1391,25 @@ sshkey_generate(int type, u_int bits, struct sshkey **keyp) { struct sshkey *k; int ret = SSH_ERR_INTERNAL_ERROR; + const struct sshkey_impl *impl; - if (keyp == NULL) + if (keyp == NULL || sshkey_type_is_cert(type)) return SSH_ERR_INVALID_ARGUMENT; *keyp = NULL; + if ((impl = sshkey_impl_from_type(type)) == NULL) + return SSH_ERR_KEY_TYPE_UNKNOWN; + if (impl->funcs->generate == NULL) + return SSH_ERR_FEATURE_UNSUPPORTED; if ((k = sshkey_new(KEY_UNSPEC)) == NULL) return SSH_ERR_ALLOC_FAIL; - switch (type) { - case KEY_ED25519: - if ((k->ed25519_pk = malloc(ED25519_PK_SZ)) == NULL || - (k->ed25519_sk = malloc(ED25519_SK_SZ)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - break; - } - crypto_sign_ed25519_keypair(k->ed25519_pk, k->ed25519_sk); - ret = 0; - break; -#ifdef WITH_XMSS - case KEY_XMSS: - ret = sshkey_xmss_generate_private_key(k, bits); - break; -#endif /* WITH_XMSS */ -#ifdef WITH_OPENSSL - case KEY_DSA: - ret = dsa_generate_private_key(bits, &k->dsa); - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA: - ret = ecdsa_generate_private_key(bits, &k->ecdsa_nid, - &k->ecdsa); - break; -# endif /* OPENSSL_HAS_ECC */ - case KEY_RSA: - ret = rsa_generate_private_key(bits, &k->rsa); - break; -#endif /* WITH_OPENSSL */ - default: - ret = SSH_ERR_INVALID_ARGUMENT; - } - if (ret == 0) { - k->type = type; - *keyp = k; - } else + k->type = type; + if ((ret = impl->funcs->generate(k, bits)) != 0) { sshkey_free(k); - return ret; + return ret; + } + /* success */ + *keyp = k; + return 0; } int @@ -1860,133 +1482,31 @@ sshkey_cert_copy(const struct sshkey *from_key, struct sshkey *to_key) return r; } +int +sshkey_copy_public_sk(const struct sshkey *from, struct sshkey *to) +{ + /* Append security-key application string */ + if ((to->sk_application = strdup(from->sk_application)) == NULL) + return SSH_ERR_ALLOC_FAIL; + return 0; +} + int sshkey_from_private(const struct sshkey *k, struct sshkey **pkp) { struct sshkey *n = NULL; int r = SSH_ERR_INTERNAL_ERROR; -#ifdef WITH_OPENSSL - const BIGNUM *rsa_n, *rsa_e; - BIGNUM *rsa_n_dup = NULL, *rsa_e_dup = NULL; - const BIGNUM *dsa_p, *dsa_q, *dsa_g, *dsa_pub_key; - BIGNUM *dsa_p_dup = NULL, *dsa_q_dup = NULL, *dsa_g_dup = NULL; - BIGNUM *dsa_pub_key_dup = NULL; -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl; *pkp = NULL; + if ((impl = sshkey_impl_from_key(k)) == NULL) + return SSH_ERR_KEY_TYPE_UNKNOWN; if ((n = sshkey_new(k->type)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto out; } - switch (k->type) { -#ifdef WITH_OPENSSL - case KEY_DSA: - case KEY_DSA_CERT: - DSA_get0_pqg(k->dsa, &dsa_p, &dsa_q, &dsa_g); - DSA_get0_key(k->dsa, &dsa_pub_key, NULL); - if ((dsa_p_dup = BN_dup(dsa_p)) == NULL || - (dsa_q_dup = BN_dup(dsa_q)) == NULL || - (dsa_g_dup = BN_dup(dsa_g)) == NULL || - (dsa_pub_key_dup = BN_dup(dsa_pub_key)) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (!DSA_set0_pqg(n->dsa, dsa_p_dup, dsa_q_dup, dsa_g_dup)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_p_dup = dsa_q_dup = dsa_g_dup = NULL; /* transferred */ - if (!DSA_set0_key(n->dsa, dsa_pub_key_dup, NULL)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_pub_key_dup = NULL; /* transferred */ - - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA: - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK: - case KEY_ECDSA_SK_CERT: - n->ecdsa_nid = k->ecdsa_nid; - n->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid); - if (n->ecdsa == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (EC_KEY_set_public_key(n->ecdsa, - EC_KEY_get0_public_key(k->ecdsa)) != 1) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - if (k->type != KEY_ECDSA_SK && k->type != KEY_ECDSA_SK_CERT) - break; - /* Append security-key application string */ - if ((n->sk_application = strdup(k->sk_application)) == NULL) - goto out; - break; -# endif /* OPENSSL_HAS_ECC */ - case KEY_RSA: - case KEY_RSA_CERT: - RSA_get0_key(k->rsa, &rsa_n, &rsa_e, NULL); - if ((rsa_n_dup = BN_dup(rsa_n)) == NULL || - (rsa_e_dup = BN_dup(rsa_e)) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (!RSA_set0_key(n->rsa, rsa_n_dup, rsa_e_dup, NULL)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - rsa_n_dup = rsa_e_dup = NULL; /* transferred */ - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_CERT: - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - if (k->ed25519_pk != NULL) { - if ((n->ed25519_pk = malloc(ED25519_PK_SZ)) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - memcpy(n->ed25519_pk, k->ed25519_pk, ED25519_PK_SZ); - } - if (k->type != KEY_ED25519_SK && - k->type != KEY_ED25519_SK_CERT) - break; - /* Append security-key application string */ - if ((n->sk_application = strdup(k->sk_application)) == NULL) - goto out; - break; -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: - if ((r = sshkey_xmss_init(n, k->xmss_name)) != 0) - goto out; - if (k->xmss_pk != NULL) { - u_int32_t left; - size_t pklen = sshkey_xmss_pklen(k); - if (pklen == 0 || sshkey_xmss_pklen(n) != pklen) { - r = SSH_ERR_INTERNAL_ERROR; - goto out; - } - if ((n->xmss_pk = malloc(pklen)) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - memcpy(n->xmss_pk, k->xmss_pk, pklen); - /* simulate number of signatures left on pubkey */ - left = sshkey_xmss_signatures_left(k); - if (left) - sshkey_xmss_enable_maxsign(n, left); - } - break; -#endif /* WITH_XMSS */ - default: - r = SSH_ERR_KEY_TYPE_UNKNOWN; + if ((r = impl->funcs->copy_public(k, n)) != 0) goto out; - } if (sshkey_is_cert(k) && (r = sshkey_cert_copy(k, n)) != 0) goto out; /* success */ @@ -1995,15 +1515,6 @@ sshkey_from_private(const struct sshkey *k, struct sshkey **pkp) r = 0; out: sshkey_free(n); -#ifdef WITH_OPENSSL - BN_clear_free(rsa_n_dup); - BN_clear_free(rsa_e_dup); - BN_clear_free(dsa_p_dup); - BN_clear_free(dsa_q_dup); - BN_clear_free(dsa_g_dup); - BN_clear_free(dsa_pub_key_dup); -#endif - return r; } @@ -2366,21 +1877,11 @@ cert_parse(struct sshbuf *b, struct sshkey *key, struct sshbuf *certbuf) } int -sshkey_check_rsa_length(const struct sshkey *k, int min_size) +sshkey_deserialize_sk(struct sshbuf *b, struct sshkey *key) { -#ifdef WITH_OPENSSL - const BIGNUM *rsa_n; - int nbits; - - if (k == NULL || k->rsa == NULL || - (k->type != KEY_RSA && k->type != KEY_RSA_CERT)) - return 0; - RSA_get0_key(k->rsa, &rsa_n, NULL, NULL); - nbits = BN_num_bits(rsa_n); - if (nbits < SSH_RSA_MINIMUM_MODULUS_SIZE || - (min_size > 0 && nbits < min_size)) - return SSH_ERR_KEY_LENGTH; -#endif /* WITH_OPENSSL */ + /* Parse additional security-key application string */ + if (sshbuf_get_cstring(b, &key->sk_application, NULL) != 0) + return SSH_ERR_INVALID_FORMAT; return 0; } @@ -2389,18 +1890,10 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, int allow_cert) { int type, ret = SSH_ERR_INTERNAL_ERROR; - char *ktype = NULL, *curve = NULL, *xmss_name = NULL; + char *ktype = NULL; struct sshkey *key = NULL; - size_t len; - u_char *pk = NULL; struct sshbuf *copy; -#if defined(WITH_OPENSSL) - BIGNUM *rsa_n = NULL, *rsa_e = NULL; - BIGNUM *dsa_p = NULL, *dsa_q = NULL, *dsa_g = NULL, *dsa_pub_key = NULL; -# if defined(OPENSSL_HAS_ECC) - EC_POINT *q = NULL; -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl; #ifdef DEBUG_PK /* XXX */ sshbuf_dump(b, stderr); @@ -2421,203 +1914,23 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, ret = SSH_ERR_KEY_CERT_INVALID_SIGN_KEY; goto out; } - switch (type) { -#ifdef WITH_OPENSSL - case KEY_RSA_CERT: - /* Skip nonce */ - if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - /* FALLTHROUGH */ - case KEY_RSA: - if ((key = sshkey_new(type)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (sshbuf_get_bignum2(b, &rsa_e) != 0 || - sshbuf_get_bignum2(b, &rsa_n) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - if (!RSA_set0_key(key->rsa, rsa_n, rsa_e, NULL)) { - ret = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - rsa_n = rsa_e = NULL; /* transferred */ - if ((ret = sshkey_check_rsa_length(key, 0)) != 0) - goto out; -#ifdef DEBUG_PK - RSA_print_fp(stderr, key->rsa, 8); -#endif - break; - case KEY_DSA_CERT: - /* Skip nonce */ - if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - /* FALLTHROUGH */ - case KEY_DSA: - if ((key = sshkey_new(type)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (sshbuf_get_bignum2(b, &dsa_p) != 0 || - sshbuf_get_bignum2(b, &dsa_q) != 0 || - sshbuf_get_bignum2(b, &dsa_g) != 0 || - sshbuf_get_bignum2(b, &dsa_pub_key) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - if (!DSA_set0_pqg(key->dsa, dsa_p, dsa_q, dsa_g)) { - ret = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_p = dsa_q = dsa_g = NULL; /* transferred */ - if (!DSA_set0_key(key->dsa, dsa_pub_key, NULL)) { - ret = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_pub_key = NULL; /* transferred */ -#ifdef DEBUG_PK - DSA_print_fp(stderr, key->dsa, 8); -#endif - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK_CERT: - /* Skip nonce */ - if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - /* FALLTHROUGH */ - case KEY_ECDSA: - case KEY_ECDSA_SK: - if ((key = sshkey_new(type)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - key->ecdsa_nid = sshkey_ecdsa_nid_from_name(ktype); - if (sshbuf_get_cstring(b, &curve, NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - if (key->ecdsa_nid != sshkey_curve_name_to_nid(curve)) { - ret = SSH_ERR_EC_CURVE_MISMATCH; - goto out; - } - EC_KEY_free(key->ecdsa); - if ((key->ecdsa = EC_KEY_new_by_curve_name(key->ecdsa_nid)) - == NULL) { - ret = SSH_ERR_EC_CURVE_INVALID; - goto out; - } - if ((q = EC_POINT_new(EC_KEY_get0_group(key->ecdsa))) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (sshbuf_get_ec(b, q, EC_KEY_get0_group(key->ecdsa)) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - if (sshkey_ec_validate_public(EC_KEY_get0_group(key->ecdsa), - q) != 0) { - ret = SSH_ERR_KEY_INVALID_EC_VALUE; - goto out; - } - if (EC_KEY_set_public_key(key->ecdsa, q) != 1) { - /* XXX assume it is a allocation error */ - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } -#ifdef DEBUG_PK - sshkey_dump_ec_point(EC_KEY_get0_group(key->ecdsa), q); -#endif - if (type == KEY_ECDSA_SK || type == KEY_ECDSA_SK_CERT) { - /* Parse additional security-key application string */ - if (sshbuf_get_cstring(b, &key->sk_application, - NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } -#ifdef DEBUG_PK - fprintf(stderr, "App: %s\n", key->sk_application); -#endif - } - break; -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ - case KEY_ED25519_CERT: - case KEY_ED25519_SK_CERT: - /* Skip nonce */ - if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - /* FALLTHROUGH */ - case KEY_ED25519: - case KEY_ED25519_SK: - if ((ret = sshbuf_get_string(b, &pk, &len)) != 0) - goto out; - if (len != ED25519_PK_SZ) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - if ((key = sshkey_new(type)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (type == KEY_ED25519_SK || type == KEY_ED25519_SK_CERT) { - /* Parse additional security-key application string */ - if (sshbuf_get_cstring(b, &key->sk_application, - NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } -#ifdef DEBUG_PK - fprintf(stderr, "App: %s\n", key->sk_application); -#endif - } - key->ed25519_pk = pk; - pk = NULL; - break; -#ifdef WITH_XMSS - case KEY_XMSS_CERT: - /* Skip nonce */ - if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - /* FALLTHROUGH */ - case KEY_XMSS: - if ((ret = sshbuf_get_cstring(b, &xmss_name, NULL)) != 0) - goto out; - if ((key = sshkey_new(type)) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if ((ret = sshkey_xmss_init(key, xmss_name)) != 0) - goto out; - if ((ret = sshbuf_get_string(b, &pk, &len)) != 0) - goto out; - if (len == 0 || len != sshkey_xmss_pklen(key)) { - ret = SSH_ERR_INVALID_FORMAT; - goto out; - } - key->xmss_pk = pk; - pk = NULL; - if (type != KEY_XMSS_CERT && - (ret = sshkey_xmss_deserialize_pk_info(key, b)) != 0) - goto out; - break; -#endif /* WITH_XMSS */ - case KEY_UNSPEC: - default: + if ((impl = sshkey_impl_from_type(type)) == NULL) { ret = SSH_ERR_KEY_TYPE_UNKNOWN; goto out; } + if ((key = sshkey_new(type)) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } + if (sshkey_type_is_cert(type)) { + /* Skip nonce that preceeds all certificates */ + if (sshbuf_get_string_direct(b, NULL, NULL) != 0) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } + } + if ((ret = impl->funcs->deserialize_public(ktype, b, key)) != 0) + goto out; /* Parse certificate potion */ if (sshkey_is_cert(key) && (ret = cert_parse(b, key, copy)) != 0) @@ -2635,21 +1948,7 @@ sshkey_from_blob_internal(struct sshbuf *b, struct sshkey **keyp, out: sshbuf_free(copy); sshkey_free(key); - free(xmss_name); free(ktype); - free(curve); - free(pk); -#if defined(WITH_OPENSSL) - BN_clear_free(rsa_n); - BN_clear_free(rsa_e); - BN_clear_free(dsa_p); - BN_clear_free(dsa_q); - BN_clear_free(dsa_g); - BN_clear_free(dsa_pub_key); -# if defined(OPENSSL_HAS_ECC) - EC_POINT_free(q); -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ return ret; } @@ -2737,17 +2036,19 @@ sshkey_check_cert_sigtype(const struct sshkey *key, const char *allowed) const char * sshkey_sigalg_by_name(const char *name) { - const struct keytype *kt; + const struct sshkey_impl *impl; + int i; - for (kt = keytypes; kt->type != -1; kt++) { - if (strcmp(kt->name, name) != 0) + for (i = 0; keyimpls[i] != NULL; i++) { + impl = keyimpls[i]; + if (strcmp(impl->name, name) != 0) continue; - if (kt->sigalg != NULL) - return kt->sigalg; - if (!kt->cert) - return kt->name; + if (impl->sigalg != NULL) + return impl->sigalg; + if (!impl->cert) + return impl->name; return sshkey_ssh_name_from_type_nid( - sshkey_type_plain(kt->type), kt->nid); + sshkey_type_plain(impl->type), impl->nid); } return NULL; } @@ -2783,6 +2084,7 @@ sshkey_sign(struct sshkey *key, { int was_shielded = sshkey_is_shielded(key); int r2, r = SSH_ERR_INTERNAL_ERROR; + const struct sshkey_impl *impl; if (sigp != NULL) *sigp = NULL; @@ -2790,45 +2092,20 @@ sshkey_sign(struct sshkey *key, *lenp = 0; if (datalen > SSH_KEY_MAX_SIGN_DATA_SIZE) return SSH_ERR_INVALID_ARGUMENT; + if ((impl = sshkey_impl_from_key(key)) == NULL) + return SSH_ERR_KEY_TYPE_UNKNOWN; if ((r = sshkey_unshield_private(key)) != 0) return r; - switch (key->type) { -#ifdef WITH_OPENSSL - case KEY_DSA_CERT: - case KEY_DSA: - r = ssh_dss_sign(key, sigp, lenp, data, datalen, compat); - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA_CERT: - case KEY_ECDSA: - r = ssh_ecdsa_sign(key, sigp, lenp, data, datalen, compat); - break; -# endif /* OPENSSL_HAS_ECC */ - case KEY_RSA_CERT: - case KEY_RSA: - r = ssh_rsa_sign(key, sigp, lenp, data, datalen, alg); - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_CERT: - r = ssh_ed25519_sign(key, sigp, lenp, data, datalen, compat); - break; - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - case KEY_ECDSA_SK_CERT: - case KEY_ECDSA_SK: + if (sshkey_is_sk(key)) { r = sshsk_sign(sk_provider, key, sigp, lenp, data, datalen, compat, sk_pin); - break; -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: - r = ssh_xmss_sign(key, sigp, lenp, data, datalen, compat); - break; -#endif /* WITH_XMSS */ - default: - r = SSH_ERR_KEY_TYPE_UNKNOWN; - break; + } else { + if (impl->funcs->sign == NULL) + r = SSH_ERR_SIGN_ALG_UNSUPPORTED; + else { + r = impl->funcs->sign(key, sigp, lenp, data, datalen, + alg, sk_provider, sk_pin, compat); + } } if (was_shielded && (r2 = sshkey_shield_private(key)) != 0) return r2; @@ -2845,43 +2122,16 @@ sshkey_verify(const struct sshkey *key, const u_char *data, size_t dlen, const char *alg, u_int compat, struct sshkey_sig_details **detailsp) { + const struct sshkey_impl *impl; + if (detailsp != NULL) *detailsp = NULL; if (siglen == 0 || dlen > SSH_KEY_MAX_SIGN_DATA_SIZE) return SSH_ERR_INVALID_ARGUMENT; - switch (key->type) { -#ifdef WITH_OPENSSL - case KEY_DSA_CERT: - case KEY_DSA: - return ssh_dss_verify(key, sig, siglen, data, dlen, compat); -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA_CERT: - case KEY_ECDSA: - return ssh_ecdsa_verify(key, sig, siglen, data, dlen, compat); - case KEY_ECDSA_SK_CERT: - case KEY_ECDSA_SK: - return ssh_ecdsa_sk_verify(key, sig, siglen, data, dlen, - compat, detailsp); -# endif /* OPENSSL_HAS_ECC */ - case KEY_RSA_CERT: - case KEY_RSA: - return ssh_rsa_verify(key, sig, siglen, data, dlen, alg); -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_CERT: - return ssh_ed25519_verify(key, sig, siglen, data, dlen, compat); - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - return ssh_ed25519_sk_verify(key, sig, siglen, data, dlen, - compat, detailsp); -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: - return ssh_xmss_verify(key, sig, siglen, data, dlen, compat); -#endif /* WITH_XMSS */ - default: + if ((impl = sshkey_impl_from_key(key)) == NULL) return SSH_ERR_KEY_TYPE_UNKNOWN; - } + return impl->funcs->verify(key, sig, siglen, data, dlen, + alg, compat, detailsp); } /* Convert a plain key to their _CERT equivalent */ @@ -2890,35 +2140,8 @@ sshkey_to_certified(struct sshkey *k) { int newtype; - switch (k->type) { -#ifdef WITH_OPENSSL - case KEY_RSA: - newtype = KEY_RSA_CERT; - break; - case KEY_DSA: - newtype = KEY_DSA_CERT; - break; - case KEY_ECDSA: - newtype = KEY_ECDSA_CERT; - break; - case KEY_ECDSA_SK: - newtype = KEY_ECDSA_SK_CERT; - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519_SK: - newtype = KEY_ED25519_SK_CERT; - break; - case KEY_ED25519: - newtype = KEY_ED25519_CERT; - break; -#ifdef WITH_XMSS - case KEY_XMSS: - newtype = KEY_XMSS_CERT; - break; -#endif /* WITH_XMSS */ - default: + if ((newtype = sshkey_type_certified(k->type)) == -1) return SSH_ERR_INVALID_ARGUMENT; - } if ((k->cert = cert_new()) == NULL) return SSH_ERR_ALLOC_FAIL; k->type = newtype; @@ -2943,15 +2166,13 @@ sshkey_certify_custom(struct sshkey *k, struct sshkey *ca, const char *alg, const char *sk_provider, const char *sk_pin, sshkey_certify_signer *signer, void *signer_ctx) { + const struct sshkey_impl *impl; struct sshbuf *principals = NULL; u_char *ca_blob = NULL, *sig_blob = NULL, nonce[32]; size_t i, ca_len, sig_len; int ret = SSH_ERR_INTERNAL_ERROR; struct sshbuf *cert = NULL; char *sigtype = NULL; -#ifdef WITH_OPENSSL - const BIGNUM *rsa_n, *rsa_e, *dsa_p, *dsa_q, *dsa_g, *dsa_pub_key; -#endif /* WITH_OPENSSL */ if (k == NULL || k->cert == NULL || k->cert->certblob == NULL || ca == NULL) @@ -2960,6 +2181,8 @@ sshkey_certify_custom(struct sshkey *k, struct sshkey *ca, const char *alg, return SSH_ERR_KEY_TYPE_UNKNOWN; if (!sshkey_type_is_valid_ca(ca->type)) return SSH_ERR_KEY_CERT_INVALID_SIGN_KEY; + if ((impl = sshkey_impl_from_key(k)) == NULL) + return SSH_ERR_INTERNAL_ERROR; /* * If no alg specified as argument but a signature_type was set, @@ -2991,69 +2214,12 @@ sshkey_certify_custom(struct sshkey *k, struct sshkey *ca, const char *alg, if ((ret = sshbuf_put_string(cert, nonce, sizeof(nonce))) != 0) goto out; - /* XXX this substantially duplicates to_blob(); refactor */ - switch (k->type) { -#ifdef WITH_OPENSSL - case KEY_DSA_CERT: - DSA_get0_pqg(k->dsa, &dsa_p, &dsa_q, &dsa_g); - DSA_get0_key(k->dsa, &dsa_pub_key, NULL); - if ((ret = sshbuf_put_bignum2(cert, dsa_p)) != 0 || - (ret = sshbuf_put_bignum2(cert, dsa_q)) != 0 || - (ret = sshbuf_put_bignum2(cert, dsa_g)) != 0 || - (ret = sshbuf_put_bignum2(cert, dsa_pub_key)) != 0) - goto out; - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA_CERT: - case KEY_ECDSA_SK_CERT: - if ((ret = sshbuf_put_cstring(cert, - sshkey_curve_nid_to_name(k->ecdsa_nid))) != 0 || - (ret = sshbuf_put_ec(cert, - EC_KEY_get0_public_key(k->ecdsa), - EC_KEY_get0_group(k->ecdsa))) != 0) - goto out; - if (k->type == KEY_ECDSA_SK_CERT) { - if ((ret = sshbuf_put_cstring(cert, - k->sk_application)) != 0) - goto out; - } - break; -# endif /* OPENSSL_HAS_ECC */ - case KEY_RSA_CERT: - RSA_get0_key(k->rsa, &rsa_n, &rsa_e, NULL); - if ((ret = sshbuf_put_bignum2(cert, rsa_e)) != 0 || - (ret = sshbuf_put_bignum2(cert, rsa_n)) != 0) - goto out; - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519_CERT: - case KEY_ED25519_SK_CERT: - if ((ret = sshbuf_put_string(cert, - k->ed25519_pk, ED25519_PK_SZ)) != 0) - goto out; - if (k->type == KEY_ED25519_SK_CERT) { - if ((ret = sshbuf_put_cstring(cert, - k->sk_application)) != 0) - goto out; - } - break; -#ifdef WITH_XMSS - case KEY_XMSS_CERT: - if (k->xmss_name == NULL) { - ret = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((ret = sshbuf_put_cstring(cert, k->xmss_name)) || - (ret = sshbuf_put_string(cert, - k->xmss_pk, sshkey_xmss_pklen(k))) != 0) - goto out; - break; -#endif /* WITH_XMSS */ - default: - ret = SSH_ERR_INVALID_ARGUMENT; + /* Public key next */ + if ((ret = impl->funcs->serialize_public(k, cert, + SSHKEY_SERIALIZE_DEFAULT)) != 0) goto out; - } + /* Then remaining cert fields */ if ((ret = sshbuf_put_u64(cert, k->cert->serial)) != 0 || (ret = sshbuf_put_u32(cert, k->cert->type)) != 0 || (ret = sshbuf_put_cstring(cert, k->cert->key_id)) != 0) @@ -3249,6 +2415,21 @@ sshkey_format_cert_validity(const struct sshkey_cert *cert, char *s, size_t l) return strlcpy(s, ret, l); } +/* Common serialization for FIDO private keys */ +int +sshkey_serialize_private_sk(const struct sshkey *key, struct sshbuf *b) +{ + int r; + + if ((r = sshbuf_put_cstring(b, key->sk_application)) != 0 || + (r = sshbuf_put_u8(b, key->sk_flags)) != 0 || + (r = sshbuf_put_stringb(b, key->sk_key_handle)) != 0 || + (r = sshbuf_put_stringb(b, key->sk_reserved)) != 0) + return r; + + return 0; +} + int sshkey_private_serialize_opt(struct sshkey *key, struct sshbuf *buf, enum sshkey_serialize_rep opts) @@ -3256,185 +2437,28 @@ sshkey_private_serialize_opt(struct sshkey *key, struct sshbuf *buf, int r = SSH_ERR_INTERNAL_ERROR; int was_shielded = sshkey_is_shielded(key); struct sshbuf *b = NULL; -#ifdef WITH_OPENSSL - const BIGNUM *rsa_n, *rsa_e, *rsa_d, *rsa_iqmp, *rsa_p, *rsa_q; - const BIGNUM *dsa_p, *dsa_q, *dsa_g, *dsa_pub_key, *dsa_priv_key; -#endif /* WITH_OPENSSL */ + const struct sshkey_impl *impl; + if ((impl = sshkey_impl_from_key(key)) == NULL) + return SSH_ERR_INTERNAL_ERROR; if ((r = sshkey_unshield_private(key)) != 0) return r; if ((b = sshbuf_new()) == NULL) return SSH_ERR_ALLOC_FAIL; if ((r = sshbuf_put_cstring(b, sshkey_ssh_name(key))) != 0) goto out; - switch (key->type) { -#ifdef WITH_OPENSSL - case KEY_RSA: - RSA_get0_key(key->rsa, &rsa_n, &rsa_e, &rsa_d); - RSA_get0_factors(key->rsa, &rsa_p, &rsa_q); - RSA_get0_crt_params(key->rsa, NULL, NULL, &rsa_iqmp); - if ((r = sshbuf_put_bignum2(b, rsa_n)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_e)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_d)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_iqmp)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_p)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_q)) != 0) - goto out; - break; - case KEY_RSA_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { + if (sshkey_is_cert(key)) { + if (key->cert == NULL || + sshbuf_len(key->cert->certblob) == 0) { r = SSH_ERR_INVALID_ARGUMENT; goto out; } - RSA_get0_key(key->rsa, NULL, NULL, &rsa_d); - RSA_get0_factors(key->rsa, &rsa_p, &rsa_q); - RSA_get0_crt_params(key->rsa, NULL, NULL, &rsa_iqmp); - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_d)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_iqmp)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_p)) != 0 || - (r = sshbuf_put_bignum2(b, rsa_q)) != 0) + if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0) goto out; - break; - case KEY_DSA: - DSA_get0_pqg(key->dsa, &dsa_p, &dsa_q, &dsa_g); - DSA_get0_key(key->dsa, &dsa_pub_key, &dsa_priv_key); - if ((r = sshbuf_put_bignum2(b, dsa_p)) != 0 || - (r = sshbuf_put_bignum2(b, dsa_q)) != 0 || - (r = sshbuf_put_bignum2(b, dsa_g)) != 0 || - (r = sshbuf_put_bignum2(b, dsa_pub_key)) != 0 || - (r = sshbuf_put_bignum2(b, dsa_priv_key)) != 0) - goto out; - break; - case KEY_DSA_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - DSA_get0_key(key->dsa, NULL, &dsa_priv_key); - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_bignum2(b, dsa_priv_key)) != 0) - goto out; - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA: - if ((r = sshbuf_put_cstring(b, - sshkey_curve_nid_to_name(key->ecdsa_nid))) != 0 || - (r = sshbuf_put_eckey(b, key->ecdsa)) != 0 || - (r = sshbuf_put_bignum2(b, - EC_KEY_get0_private_key(key->ecdsa))) != 0) - goto out; - break; - case KEY_ECDSA_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_bignum2(b, - EC_KEY_get0_private_key(key->ecdsa))) != 0) - goto out; - break; - case KEY_ECDSA_SK: - if ((r = sshbuf_put_cstring(b, - sshkey_curve_nid_to_name(key->ecdsa_nid))) != 0 || - (r = sshbuf_put_eckey(b, key->ecdsa)) != 0 || - (r = sshbuf_put_cstring(b, key->sk_application)) != 0 || - (r = sshbuf_put_u8(b, key->sk_flags)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_key_handle)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_reserved)) != 0) - goto out; - break; - case KEY_ECDSA_SK_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_cstring(b, key->sk_application)) != 0 || - (r = sshbuf_put_u8(b, key->sk_flags)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_key_handle)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_reserved)) != 0) - goto out; - break; -# endif /* OPENSSL_HAS_ECC */ -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - if ((r = sshbuf_put_string(b, key->ed25519_pk, - ED25519_PK_SZ)) != 0 || - (r = sshbuf_put_string(b, key->ed25519_sk, - ED25519_SK_SZ)) != 0) - goto out; - break; - case KEY_ED25519_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_string(b, key->ed25519_pk, - ED25519_PK_SZ)) != 0 || - (r = sshbuf_put_string(b, key->ed25519_sk, - ED25519_SK_SZ)) != 0) - goto out; - break; - case KEY_ED25519_SK: - if ((r = sshbuf_put_string(b, key->ed25519_pk, - ED25519_PK_SZ)) != 0 || - (r = sshbuf_put_cstring(b, key->sk_application)) != 0 || - (r = sshbuf_put_u8(b, key->sk_flags)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_key_handle)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_reserved)) != 0) - goto out; - break; - case KEY_ED25519_SK_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_string(b, key->ed25519_pk, - ED25519_PK_SZ)) != 0 || - (r = sshbuf_put_cstring(b, key->sk_application)) != 0 || - (r = sshbuf_put_u8(b, key->sk_flags)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_key_handle)) != 0 || - (r = sshbuf_put_stringb(b, key->sk_reserved)) != 0) - goto out; - break; -#ifdef WITH_XMSS - case KEY_XMSS: - if (key->xmss_name == NULL) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_put_cstring(b, key->xmss_name)) != 0 || - (r = sshbuf_put_string(b, key->xmss_pk, - sshkey_xmss_pklen(key))) != 0 || - (r = sshbuf_put_string(b, key->xmss_sk, - sshkey_xmss_sklen(key))) != 0 || - (r = sshkey_xmss_serialize_state_opt(key, b, opts)) != 0) - goto out; - break; - case KEY_XMSS_CERT: - if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0 || - key->xmss_name == NULL) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 || - (r = sshbuf_put_cstring(b, key->xmss_name)) != 0 || - (r = sshbuf_put_string(b, key->xmss_pk, - sshkey_xmss_pklen(key))) != 0 || - (r = sshbuf_put_string(b, key->xmss_sk, - sshkey_xmss_sklen(key))) != 0 || - (r = sshkey_xmss_serialize_state_opt(key, b, opts)) != 0) - goto out; - break; -#endif /* WITH_XMSS */ - default: - r = SSH_ERR_INVALID_ARGUMENT; - goto out; } + if ((r = impl->funcs->serialize_private(key, b, opts)) != 0) + goto out; + /* * success (but we still need to append the output to buf after * possibly re-shielding the private key) @@ -3457,24 +2481,33 @@ sshkey_private_serialize(struct sshkey *key, struct sshbuf *b) SSHKEY_SERIALIZE_DEFAULT); } +/* Shared deserialization of FIDO private key components */ +int +sshkey_private_deserialize_sk(struct sshbuf *buf, struct sshkey *k) +{ + int r; + + if ((k->sk_key_handle = sshbuf_new()) == NULL || + (k->sk_reserved = sshbuf_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + if ((r = sshbuf_get_cstring(buf, &k->sk_application, NULL)) != 0 || + (r = sshbuf_get_u8(buf, &k->sk_flags)) != 0 || + (r = sshbuf_get_stringb(buf, k->sk_key_handle)) != 0 || + (r = sshbuf_get_stringb(buf, k->sk_reserved)) != 0) + return r; + + return 0; +} + int sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) { - char *tname = NULL, *curve = NULL, *xmss_name = NULL; + const struct sshkey_impl *impl; + char *tname = NULL; char *expect_sk_application = NULL; - struct sshkey *k = NULL; - size_t pklen = 0, sklen = 0; - int type, r = SSH_ERR_INTERNAL_ERROR; - u_char *ed25519_pk = NULL, *ed25519_sk = NULL; u_char *expect_ed25519_pk = NULL; - u_char *xmss_pk = NULL, *xmss_sk = NULL; -#ifdef WITH_OPENSSL - BIGNUM *exponent = NULL; - BIGNUM *rsa_n = NULL, *rsa_e = NULL, *rsa_d = NULL; - BIGNUM *rsa_iqmp = NULL, *rsa_p = NULL, *rsa_q = NULL; - BIGNUM *dsa_p = NULL, *dsa_q = NULL, *dsa_g = NULL; - BIGNUM *dsa_pub_key = NULL, *dsa_priv_key = NULL; -#endif /* WITH_OPENSSL */ + struct sshkey *k = NULL; + int type, r = SSH_ERR_INTERNAL_ERROR; if (kp != NULL) *kp = NULL; @@ -3507,227 +2540,21 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) expect_ed25519_pk = k->ed25519_pk; k->sk_application = NULL; k->ed25519_pk = NULL; + /* XXX xmss too or refactor */ } else { if ((k = sshkey_new(type)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto out; } } - switch (type) { -#ifdef WITH_OPENSSL - case KEY_DSA: - if ((r = sshbuf_get_bignum2(buf, &dsa_p)) != 0 || - (r = sshbuf_get_bignum2(buf, &dsa_q)) != 0 || - (r = sshbuf_get_bignum2(buf, &dsa_g)) != 0 || - (r = sshbuf_get_bignum2(buf, &dsa_pub_key)) != 0) - goto out; - if (!DSA_set0_pqg(k->dsa, dsa_p, dsa_q, dsa_g)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_p = dsa_q = dsa_g = NULL; /* transferred */ - if (!DSA_set0_key(k->dsa, dsa_pub_key, NULL)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_pub_key = NULL; /* transferred */ - /* FALLTHROUGH */ - case KEY_DSA_CERT: - if ((r = sshbuf_get_bignum2(buf, &dsa_priv_key)) != 0) - goto out; - if (!DSA_set0_key(k->dsa, NULL, dsa_priv_key)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - dsa_priv_key = NULL; /* transferred */ - break; -# ifdef OPENSSL_HAS_ECC - case KEY_ECDSA: - if ((k->ecdsa_nid = sshkey_ecdsa_nid_from_name(tname)) == -1) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_get_cstring(buf, &curve, NULL)) != 0) - goto out; - if (k->ecdsa_nid != sshkey_curve_name_to_nid(curve)) { - r = SSH_ERR_EC_CURVE_MISMATCH; - goto out; - } - k->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid); - if (k->ecdsa == NULL) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - if ((r = sshbuf_get_eckey(buf, k->ecdsa)) != 0) - goto out; - /* FALLTHROUGH */ - case KEY_ECDSA_CERT: - if ((r = sshbuf_get_bignum2(buf, &exponent)) != 0) - goto out; - if (EC_KEY_set_private_key(k->ecdsa, exponent) != 1) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - if ((r = sshkey_ec_validate_public(EC_KEY_get0_group(k->ecdsa), - EC_KEY_get0_public_key(k->ecdsa))) != 0 || - (r = sshkey_ec_validate_private(k->ecdsa)) != 0) - goto out; - break; - case KEY_ECDSA_SK: - if ((k->ecdsa_nid = sshkey_ecdsa_nid_from_name(tname)) == -1) { - r = SSH_ERR_INVALID_ARGUMENT; - goto out; - } - if ((r = sshbuf_get_cstring(buf, &curve, NULL)) != 0) - goto out; - if (k->ecdsa_nid != sshkey_curve_name_to_nid(curve)) { - r = SSH_ERR_EC_CURVE_MISMATCH; - goto out; - } - if ((k->sk_key_handle = sshbuf_new()) == NULL || - (k->sk_reserved = sshbuf_new()) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - k->ecdsa = EC_KEY_new_by_curve_name(k->ecdsa_nid); - if (k->ecdsa == NULL) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - if ((r = sshbuf_get_eckey(buf, k->ecdsa)) != 0 || - (r = sshbuf_get_cstring(buf, &k->sk_application, - NULL)) != 0 || - (r = sshbuf_get_u8(buf, &k->sk_flags)) != 0 || - (r = sshbuf_get_stringb(buf, k->sk_key_handle)) != 0 || - (r = sshbuf_get_stringb(buf, k->sk_reserved)) != 0) - goto out; - if ((r = sshkey_ec_validate_public(EC_KEY_get0_group(k->ecdsa), - EC_KEY_get0_public_key(k->ecdsa))) != 0) - goto out; - break; - case KEY_ECDSA_SK_CERT: - if ((k->sk_key_handle = sshbuf_new()) == NULL || - (k->sk_reserved = sshbuf_new()) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - if ((r = sshbuf_get_cstring(buf, &k->sk_application, - NULL)) != 0 || - (r = sshbuf_get_u8(buf, &k->sk_flags)) != 0 || - (r = sshbuf_get_stringb(buf, k->sk_key_handle)) != 0 || - (r = sshbuf_get_stringb(buf, k->sk_reserved)) != 0) - goto out; - if ((r = sshkey_ec_validate_public(EC_KEY_get0_group(k->ecdsa), - EC_KEY_get0_public_key(k->ecdsa))) != 0) - goto out; - break; -# endif /* OPENSSL_HAS_ECC */ - case KEY_RSA: - if ((r = sshbuf_get_bignum2(buf, &rsa_n)) != 0 || - (r = sshbuf_get_bignum2(buf, &rsa_e)) != 0) - goto out; - if (!RSA_set0_key(k->rsa, rsa_n, rsa_e, NULL)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - rsa_n = rsa_e = NULL; /* transferred */ - /* FALLTHROUGH */ - case KEY_RSA_CERT: - if ((r = sshbuf_get_bignum2(buf, &rsa_d)) != 0 || - (r = sshbuf_get_bignum2(buf, &rsa_iqmp)) != 0 || - (r = sshbuf_get_bignum2(buf, &rsa_p)) != 0 || - (r = sshbuf_get_bignum2(buf, &rsa_q)) != 0) - goto out; - if (!RSA_set0_key(k->rsa, NULL, NULL, rsa_d)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - rsa_d = NULL; /* transferred */ - if (!RSA_set0_factors(k->rsa, rsa_p, rsa_q)) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - rsa_p = rsa_q = NULL; /* transferred */ - if ((r = sshkey_check_rsa_length(k, 0)) != 0) - goto out; - if ((r = ssh_rsa_complete_crt_parameters(k, rsa_iqmp)) != 0) - goto out; - break; -#endif /* WITH_OPENSSL */ - case KEY_ED25519: - case KEY_ED25519_CERT: - if ((r = sshbuf_get_string(buf, &ed25519_pk, &pklen)) != 0 || - (r = sshbuf_get_string(buf, &ed25519_sk, &sklen)) != 0) - goto out; - if (pklen != ED25519_PK_SZ || sklen != ED25519_SK_SZ) { - r = SSH_ERR_INVALID_FORMAT; - goto out; - } - k->ed25519_pk = ed25519_pk; - k->ed25519_sk = ed25519_sk; - ed25519_pk = ed25519_sk = NULL; /* transferred */ - break; - case KEY_ED25519_SK: - case KEY_ED25519_SK_CERT: - if ((r = sshbuf_get_string(buf, &ed25519_pk, &pklen)) != 0) - goto out; - if (pklen != ED25519_PK_SZ) { - r = SSH_ERR_INVALID_FORMAT; - goto out; - } - if ((k->sk_key_handle = sshbuf_new()) == NULL || - (k->sk_reserved = sshbuf_new()) == NULL) { - r = SSH_ERR_ALLOC_FAIL; - goto out; - } - if ((r = sshbuf_get_cstring(buf, &k->sk_application, - NULL)) != 0 || - (r = sshbuf_get_u8(buf, &k->sk_flags)) != 0 || - (r = sshbuf_get_stringb(buf, k->sk_key_handle)) != 0 || - (r = sshbuf_get_stringb(buf, k->sk_reserved)) != 0) - goto out; - k->ed25519_pk = ed25519_pk; - ed25519_pk = NULL; /* transferred */ - break; -#ifdef WITH_XMSS - case KEY_XMSS: - case KEY_XMSS_CERT: - if ((r = sshbuf_get_cstring(buf, &xmss_name, NULL)) != 0 || - (r = sshbuf_get_string(buf, &xmss_pk, &pklen)) != 0 || - (r = sshbuf_get_string(buf, &xmss_sk, &sklen)) != 0) - goto out; - if (type == KEY_XMSS && - (r = sshkey_xmss_init(k, xmss_name)) != 0) - goto out; - if (pklen != sshkey_xmss_pklen(k) || - sklen != sshkey_xmss_sklen(k)) { - r = SSH_ERR_INVALID_FORMAT; - goto out; - } - k->xmss_pk = xmss_pk; - k->xmss_sk = xmss_sk; - xmss_pk = xmss_sk = NULL; - /* optional internal state */ - if ((r = sshkey_xmss_deserialize_state_opt(k, buf)) != 0) - goto out; - break; -#endif /* WITH_XMSS */ - default: - r = SSH_ERR_KEY_TYPE_UNKNOWN; + if ((impl = sshkey_impl_from_type(type)) == NULL) { + r = SSH_ERR_INTERNAL_ERROR; goto out; } -#ifdef WITH_OPENSSL - /* enable blinding */ - switch (k->type) { - case KEY_RSA: - case KEY_RSA_CERT: - if (RSA_blinding_on(k->rsa, NULL) != 1) { - r = SSH_ERR_LIBCRYPTO_ERROR; - goto out; - } - break; - } -#endif /* WITH_OPENSSL */ + if ((r = impl->funcs->deserialize_private(tname, buf, k)) != 0) + goto out; + + /* XXX xmss too or refactor */ if ((expect_sk_application != NULL && (k->sk_application == NULL || strcmp(expect_sk_application, k->sk_application) != 0)) || (expect_ed25519_pk != NULL && (k->ed25519_pk == NULL || @@ -3743,27 +2570,7 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) } out: free(tname); - free(curve); -#ifdef WITH_OPENSSL - BN_clear_free(exponent); - BN_clear_free(dsa_p); - BN_clear_free(dsa_q); - BN_clear_free(dsa_g); - BN_clear_free(dsa_pub_key); - BN_clear_free(dsa_priv_key); - BN_clear_free(rsa_n); - BN_clear_free(rsa_e); - BN_clear_free(rsa_d); - BN_clear_free(rsa_p); - BN_clear_free(rsa_q); - BN_clear_free(rsa_iqmp); -#endif /* WITH_OPENSSL */ sshkey_free(k); - freezero(ed25519_pk, pklen); - freezero(ed25519_sk, sklen); - free(xmss_name); - freezero(xmss_pk, pklen); - freezero(xmss_sk, sklen); free(expect_sk_application); free(expect_ed25519_pk); return r; diff --git a/crypto/openssh/sshkey.h b/crypto/openssh/sshkey.h index be254e6be9dc..771c4bceeae2 100644 --- a/crypto/openssh/sshkey.h +++ b/crypto/openssh/sshkey.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.h,v 1.52 2022/09/17 10:30:45 djm Exp $ */ +/* $OpenBSD: sshkey.h,v 1.61 2022/10/28 00:44:44 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -164,6 +164,41 @@ struct sshkey_sig_details { uint8_t sk_flags; /* U2F signature flags; see ssh-sk.h */ }; +struct sshkey_impl_funcs { + u_int (*size)(const struct sshkey *); /* optional */ + int (*alloc)(struct sshkey *); /* optional */ + void (*cleanup)(struct sshkey *); /* optional */ + int (*equal)(const struct sshkey *, const struct sshkey *); + int (*serialize_public)(const struct sshkey *, struct sshbuf *, + enum sshkey_serialize_rep); + int (*deserialize_public)(const char *, struct sshbuf *, + struct sshkey *); + int (*serialize_private)(const struct sshkey *, struct sshbuf *, + enum sshkey_serialize_rep); + int (*deserialize_private)(const char *, struct sshbuf *, + struct sshkey *); + int (*generate)(struct sshkey *, int); /* optional */ + int (*copy_public)(const struct sshkey *, struct sshkey *); + int (*sign)(struct sshkey *, u_char **, size_t *, + const u_char *, size_t, const char *, + const char *, const char *, u_int); /* optional */ + int (*verify)(const struct sshkey *, const u_char *, size_t, + const u_char *, size_t, const char *, u_int, + struct sshkey_sig_details **); +}; + +struct sshkey_impl { + const char *name; + const char *shortname; + const char *sigalg; + int type; + int nid; + int cert; + int sigonly; + int keybits; + const struct sshkey_impl_funcs *funcs; +}; + struct sshkey *sshkey_new(int); void sshkey_free(struct sshkey *); int sshkey_equal_public(const struct sshkey *, @@ -288,40 +323,17 @@ int sshkey_private_serialize_maxsign(struct sshkey *key, void sshkey_sig_details_free(struct sshkey_sig_details *); #ifdef SSHKEY_INTERNAL -int ssh_rsa_sign(const struct sshkey *key, - u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, - const char *ident); -int ssh_rsa_verify(const struct sshkey *key, - const u_char *sig, size_t siglen, const u_char *data, size_t datalen, - const char *alg); -int ssh_dss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat); -int ssh_dss_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat); -int ssh_ecdsa_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat); -int ssh_ecdsa_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat); -int ssh_ecdsa_sk_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat, - struct sshkey_sig_details **detailsp); -int ssh_ed25519_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat); -int ssh_ed25519_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat); -int ssh_ed25519_sk_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat, - struct sshkey_sig_details **detailsp); -int ssh_xmss_sign(const struct sshkey *key, u_char **sigp, size_t *lenp, - const u_char *data, size_t datalen, u_int compat); -int ssh_xmss_verify(const struct sshkey *key, - const u_char *signature, size_t signaturelen, - const u_char *data, size_t datalen, u_int compat); +int sshkey_sk_fields_equal(const struct sshkey *a, const struct sshkey *b); +void sshkey_sk_cleanup(struct sshkey *k); +int sshkey_serialize_sk(const struct sshkey *key, struct sshbuf *b); +int sshkey_copy_public_sk(const struct sshkey *from, struct sshkey *to); +int sshkey_deserialize_sk(struct sshbuf *b, struct sshkey *key); +int sshkey_serialize_private_sk(const struct sshkey *key, + struct sshbuf *buf); +int sshkey_private_deserialize_sk(struct sshbuf *buf, struct sshkey *k); +#ifdef WITH_OPENSSL +int check_rsa_length(const RSA *rsa); /* XXX remove */ +#endif #endif #if !defined(WITH_OPENSSL) diff --git a/crypto/openssh/verify.c b/crypto/openssh/verify.c deleted file mode 100644 index 1671a4132c9e..000000000000 --- a/crypto/openssh/verify.c +++ /dev/null @@ -1,49 +0,0 @@ -/* $OpenBSD: verify.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */ - -/* - * Public Domain, Author: Daniel J. Bernstein - * Copied from nacl-20110221/crypto_verify/32/ref/verify.c - */ - -#include "includes.h" - -#include "crypto_api.h" - -int crypto_verify_32(const unsigned char *x,const unsigned char *y) -{ - unsigned int differentbits = 0; -#define F(i) differentbits |= x[i] ^ y[i]; - F(0) - F(1) - F(2) - F(3) - F(4) - F(5) - F(6) - F(7) - F(8) - F(9) - F(10) - F(11) - F(12) - F(13) - F(14) - F(15) - F(16) - F(17) - F(18) - F(19) - F(20) - F(21) - F(22) - F(23) - F(24) - F(25) - F(26) - F(27) - F(28) - F(29) - F(30) - F(31) - return (1 & ((differentbits - 1) >> 8)) - 1; -} diff --git a/crypto/openssh/version.h b/crypto/openssh/version.h index 71f1aee650e2..1a3fc7bc82e6 100644 --- a/crypto/openssh/version.h +++ b/crypto/openssh/version.h @@ -1,8 +1,8 @@ -/* $OpenBSD: version.h,v 1.95 2022/09/26 22:18:40 djm Exp $ */ +/* $OpenBSD: version.h,v 1.96 2023/02/02 12:10:22 djm Exp $ */ -#define SSH_VERSION "OpenSSH_9.1" +#define SSH_VERSION "OpenSSH_9.2" #define SSH_PORTABLE "p1" #define SSH_RELEASE SSH_VERSION SSH_PORTABLE -#define SSH_VERSION_FREEBSD "FreeBSD-20221019" +#define SSH_VERSION_FREEBSD "FreeBSD-20230205" diff --git a/secure/lib/libssh/Makefile b/secure/lib/libssh/Makefile index ee0cdf6dfa24..2b1a76f185f8 100644 --- a/secure/lib/libssh/Makefile +++ b/secure/lib/libssh/Makefile @@ -22,7 +22,7 @@ SRCS+= authfd.c authfile.c \ ssh-pkcs11.c smult_curve25519_ref.c \ poly1305.c chacha.c cipher-chachapoly.c cipher-chachapoly-libcrypto.c \ ssh-ed25519.c digest-openssl.c digest-libc.c \ - hmac.c sc25519.c ge25519.c fe25519.c ed25519.c verify.c hash.c \ + hmac.c ed25519.c hash.c \ kex.c kexdh.c kexgex.c kexecdh.c kexc25519.c \ kexgexc.c kexgexs.c \ kexsntrup761x25519.c sntrup761.c kexgen.c \