cjson
.github
workflows CI.yml ci-fuzz.yml
CONTRIBUTING.md
fuzzing
inputs test1 test10 test11 test2 test3 test3.bu test3.uf test3.uu test4 test5 test6 test7 test8 test9
.gitignore CMakeLists.txt afl-prepare-linux.sh afl.c afl.sh cjson_read_fuzzer.c fuzz_main.c json.dict ossfuzz.sh
library_config cJSONConfig.cmake.in cJSONConfigVersion.cmake.in libcjson.pc.in libcjson_utils.pc.in uninstall.cmake
tests
inputs test1 test1.expected test10 test10.expected test11 test11.expected test2 test2.expected test3 test3.expected test4 test4.expected test5 test5.expected test6 test7 test7.expected test8 test8.expected test9 test9.expected
json-patch-tests .editorconfig .gitignore .npmignore README.md cjson-utils-tests.json package.json spec_tests.json tests.json
unity
auto colour_prompt.rb colour_reporter.rb generate_config.yml generate_module.rb generate_test_runner.rb parse_output.rb stylize_as_junit.rb test_file_filter.rb type_sanitizer.rb unity_test_summary.py unity_test_summary.rb unity_to_junit.py
docs ThrowTheSwitchCodingStandard.md UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf UnityAssertionsReference.md UnityConfigurationGuide.md UnityGettingStartedGuide.md UnityHelperScriptsGuide.md license.txt
examples
example_1
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_2
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
makefile readme.txt
example_3
helper UnityHelper.c UnityHelper.h
src ProductionCode.c ProductionCode.h ProductionCode2.c ProductionCode2.h
rakefile.rb rakefile_helper.rb readme.txt target_gcc_32.yml
unity_config.h
extras
eclipse error_parsers.txt
fixture
src unity_fixture.c unity_fixture.h unity_fixture_internals.h unity_fixture_malloc_overrides.h
rakefile.rb rakefile_helper.rb readme.txt
release build.info version.info
src unity.c unity.h unity_internals.h
.gitattributes .gitignore .travis.yml README.md
CMakeLists.txt cjson_add.c common.h compare_tests.c json_patch_tests.c minify_tests.c misc_tests.c misc_utils_tests.c old_utils_tests.c parse_array.c parse_examples.c parse_hex4.c parse_number.c parse_object.c parse_string.c parse_value.c parse_with_opts.c print_array.c print_number.c print_object.c print_string.c print_value.c readme_examples.c unity_setup.c
.editorconfig .gitattributes .gitignore .travis.yml CHANGELOG.md CMakeLists.txt CONTRIBUTORS.md LICENSE Makefile README.md SECURITY.md appveyor.yml cJSON.c cJSON.h cJSON_Utils.c cJSON_Utils.h test.c valgrind.supp
curl
.circleci config.yml
.github
ISSUE_TEMPLATE bug_report.yml config.yml docs.yml
scripts cleancmd.pl cmp-config.pl cmp-pkg-config.sh codespell-ignore.words codespell.sh distfiles.sh pyspelling.words pyspelling.yaml randcurl.pl requirements-docs.txt requirements-proselint.txt requirements.txt shellcheck-ci.sh shellcheck.sh spellcheck.curl trimmarkdownheader.pl typos.sh typos.toml verify-examples.pl verify-synopsis.pl yamlcheck.sh yamlcheck.yaml
workflows appveyor-status.yml checkdocs.yml checksrc.yml checkurls.yml codeql.yml configure-vs-cmake.yml curl-for-win.yml distcheck.yml fuzz.yml http3-linux.yml label.yml linux-old.yml linux.yml macos.yml non-native.yml windows.yml
CODEOWNERS CONTRIBUTING.md FUNDING.yml dependabot.yml labeler.yml lock.yml stale.yml
CMake CurlSymbolHiding.cmake CurlTests.c FindBrotli.cmake FindCares.cmake FindGSS.cmake FindGnuTLS.cmake FindLDAP.cmake FindLibbacktrace.cmake FindLibgsasl.cmake FindLibidn2.cmake FindLibpsl.cmake FindLibssh.cmake FindLibssh2.cmake FindLibuv.cmake FindMbedTLS.cmake FindNGHTTP2.cmake FindNGHTTP3.cmake FindNGTCP2.cmake FindNettle.cmake FindQuiche.cmake FindRustls.cmake FindWolfSSL.cmake FindZstd.cmake Macros.cmake OtherTests.cmake PickyWarnings.cmake Utilities.cmake cmake_uninstall.in.cmake curl-config.in.cmake unix-cache.cmake win32-cache.cmake
LICENSES BSD-4-Clause-UC.txt ISC.txt curl.txt
docs
cmdline-opts .gitignore CMakeLists.txt MANPAGE.md Makefile.am Makefile.inc _AUTHORS.md _BUGS.md _DESCRIPTION.md _ENVIRONMENT.md _EXITCODES.md _FILES.md _GLOBBING.md _NAME.md _OPTIONS.md _OUTPUT.md _PROGRESS.md _PROTOCOLS.md _PROXYPREFIX.md _SEEALSO.md _SYNOPSIS.md _URL.md _VARIABLES.md _VERSION.md _WWW.md abstract-unix-socket.md alt-svc.md anyauth.md append.md aws-sigv4.md basic.md ca-native.md cacert.md capath.md cert-status.md cert-type.md cert.md ciphers.md compressed-ssh.md compressed.md config.md connect-timeout.md connect-to.md continue-at.md cookie-jar.md cookie.md create-dirs.md create-file-mode.md crlf.md crlfile.md curves.md data-ascii.md data-binary.md data-raw.md data-urlencode.md data.md delegation.md digest.md disable-eprt.md disable-epsv.md disable.md disallow-username-in-url.md dns-interface.md dns-ipv4-addr.md dns-ipv6-addr.md dns-servers.md doh-cert-status.md doh-insecure.md doh-url.md dump-ca-embed.md dump-header.md ech.md egd-file.md engine.md etag-compare.md etag-save.md expect100-timeout.md fail-early.md fail-with-body.md fail.md false-start.md follow.md form-escape.md form-string.md form.md ftp-account.md ftp-alternative-to-user.md ftp-create-dirs.md ftp-method.md ftp-pasv.md ftp-port.md ftp-pret.md ftp-skip-pasv-ip.md ftp-ssl-ccc-mode.md ftp-ssl-ccc.md ftp-ssl-control.md get.md globoff.md happy-eyeballs-timeout-ms.md haproxy-clientip.md haproxy-protocol.md head.md header.md help.md hostpubmd5.md hostpubsha256.md hsts.md http0.9.md http1.0.md http1.1.md http2-prior-knowledge.md http2.md http3-only.md http3.md ignore-content-length.md insecure.md interface.md ip-tos.md ipfs-gateway.md ipv4.md ipv6.md json.md junk-session-cookies.md keepalive-cnt.md keepalive-time.md key-type.md key.md knownhosts.md krb.md libcurl.md limit-rate.md list-only.md local-port.md location-trusted.md location.md login-options.md mail-auth.md mail-from.md mail-rcpt-allowfails.md mail-rcpt.md mainpage.idx manual.md max-filesize.md max-redirs.md max-time.md metalink.md mptcp.md negotiate.md netrc-file.md netrc-optional.md netrc.md next.md no-alpn.md no-buffer.md no-clobber.md no-keepalive.md no-npn.md no-progress-meter.md no-sessionid.md noproxy.md ntlm-wb.md ntlm.md oauth2-bearer.md out-null.md output-dir.md output.md parallel-immediate.md parallel-max-host.md parallel-max.md parallel.md pass.md path-as-is.md pinnedpubkey.md post301.md post302.md post303.md preproxy.md progress-bar.md proto-default.md proto-redir.md proto.md proxy-anyauth.md proxy-basic.md proxy-ca-native.md proxy-cacert.md proxy-capath.md proxy-cert-type.md proxy-cert.md proxy-ciphers.md proxy-crlfile.md proxy-digest.md proxy-header.md proxy-http2.md proxy-insecure.md proxy-key-type.md proxy-key.md proxy-negotiate.md proxy-ntlm.md proxy-pass.md proxy-pinnedpubkey.md proxy-service-name.md proxy-ssl-allow-beast.md proxy-ssl-auto-client-cert.md proxy-tls13-ciphers.md proxy-tlsauthtype.md proxy-tlspassword.md proxy-tlsuser.md proxy-tlsv1.md proxy-user.md proxy.md proxy1.0.md proxytunnel.md pubkey.md quote.md random-file.md range.md rate.md raw.md referer.md remote-header-name.md remote-name-all.md remote-name.md remote-time.md remove-on-error.md request-target.md request.md resolve.md retry-all-errors.md retry-connrefused.md retry-delay.md retry-max-time.md retry.md sasl-authzid.md sasl-ir.md service-name.md show-error.md show-headers.md sigalgs.md silent.md skip-existing.md socks4.md socks4a.md socks5-basic.md socks5-gssapi-nec.md socks5-gssapi-service.md socks5-gssapi.md socks5-hostname.md socks5.md speed-limit.md speed-time.md ssl-allow-beast.md ssl-auto-client-cert.md ssl-no-revoke.md ssl-reqd.md ssl-revoke-best-effort.md ssl-sessions.md ssl.md sslv2.md sslv3.md stderr.md styled-output.md suppress-connect-headers.md tcp-fastopen.md tcp-nodelay.md telnet-option.md tftp-blksize.md tftp-no-options.md time-cond.md tls-earlydata.md tls-max.md tls13-ciphers.md tlsauthtype.md tlspassword.md tlsuser.md tlsv1.0.md tlsv1.1.md tlsv1.2.md tlsv1.3.md tlsv1.md tr-encoding.md trace-ascii.md trace-config.md trace-ids.md trace-time.md trace.md unix-socket.md upload-file.md upload-flags.md url-query.md url.md use-ascii.md user-agent.md user.md variable.md verbose.md version.md vlan-priority.md write-out.md xattr.md
examples .checksrc .gitignore 10-at-a-time.c CMakeLists.txt Makefile.am Makefile.example Makefile.inc README.md adddocsref.pl address-scope.c altsvc.c anyauthput.c block_ip.c cacertinmem.c certinfo.c chkspeed.c connect-to.c cookie_interface.c crawler.c debug.c default-scheme.c ephiperfifo.c evhiperfifo.c externalsocket.c fileupload.c ftp-delete.c ftp-wildcard.c ftpget.c ftpgetinfo.c ftpgetresp.c ftpsget.c ftpupload.c ftpuploadfrommem.c ftpuploadresume.c getinfo.c getinmemory.c getredirect.c getreferrer.c ghiper.c headerapi.c hiperfifo.c hsts-preload.c htmltidy.c htmltitle.cpp http-options.c http-post.c http2-download.c http2-pushinmemory.c http2-serverpush.c http2-upload.c http3-present.c http3.c httpcustomheader.c httpput-postfields.c httpput.c https.c imap-append.c imap-authzid.c imap-copy.c imap-create.c imap-delete.c imap-examine.c imap-fetch.c imap-list.c imap-lsub.c imap-multi.c imap-noop.c imap-search.c imap-ssl.c imap-store.c imap-tls.c interface.c ipv6.c keepalive.c localport.c log_failed_transfers.c maxconnects.c multi-app.c multi-debugcallback.c multi-double.c multi-event.c multi-formadd.c multi-legacy.c multi-post.c multi-single.c multi-uv.c netrc.c parseurl.c persistent.c pop3-authzid.c pop3-dele.c pop3-list.c pop3-multi.c pop3-noop.c pop3-retr.c pop3-ssl.c pop3-stat.c pop3-tls.c pop3-top.c pop3-uidl.c post-callback.c postinmemory.c postit2-formadd.c postit2.c progressfunc.c protofeats.c range.c resolve.c rtsp-options.c sendrecv.c sepheaders.c sessioninfo.c sftpget.c sftpuploadresume.c shared-connection-cache.c simple.c simplepost.c simplessl.c smooth-gtk-thread.c smtp-authzid.c smtp-expn.c smtp-mail.c smtp-mime.c smtp-multi.c smtp-ssl.c smtp-tls.c smtp-vrfy.c sslbackend.c synctime.c threaded.c unixsocket.c url2file.c urlapi.c usercertinmem.c version-check.pl websocket-cb.c websocket-updown.c websocket.c xmlstream.c
internals BUFQ.md BUFREF.md CHECKSRC.md CLIENT-READERS.md CLIENT-WRITERS.md CODE_STYLE.md CONNECTION-FILTERS.md CREDENTIALS.md CURLX.md DYNBUF.md HASH.md LLIST.md MID.md MQTT.md MULTI-EV.md NEW-PROTOCOL.md PEERS.md PORTING.md RATELIMITS.md README.md SCORECARD.md SPLAY.md STRPARSE.md THRDPOOL-AND-QUEUE.md TIME-KEEPING.md TLS-SESSIONS.md UINT_SETS.md WEBSOCKET.md
libcurl
opts CMakeLists.txt CURLINFO_ACTIVESOCKET.md CURLINFO_APPCONNECT_TIME.md CURLINFO_APPCONNECT_TIME_T.md CURLINFO_CAINFO.md CURLINFO_CAPATH.md CURLINFO_CERTINFO.md CURLINFO_CONDITION_UNMET.md CURLINFO_CONNECT_TIME.md CURLINFO_CONNECT_TIME_T.md CURLINFO_CONN_ID.md CURLINFO_CONTENT_LENGTH_DOWNLOAD.md CURLINFO_CONTENT_LENGTH_DOWNLOAD_T.md CURLINFO_CONTENT_LENGTH_UPLOAD.md CURLINFO_CONTENT_LENGTH_UPLOAD_T.md CURLINFO_CONTENT_TYPE.md CURLINFO_COOKIELIST.md CURLINFO_EARLYDATA_SENT_T.md CURLINFO_EFFECTIVE_METHOD.md CURLINFO_EFFECTIVE_URL.md CURLINFO_FILETIME.md CURLINFO_FILETIME_T.md CURLINFO_FTP_ENTRY_PATH.md CURLINFO_HEADER_SIZE.md CURLINFO_HTTPAUTH_AVAIL.md CURLINFO_HTTPAUTH_USED.md CURLINFO_HTTP_CONNECTCODE.md CURLINFO_HTTP_VERSION.md CURLINFO_LASTSOCKET.md CURLINFO_LOCAL_IP.md CURLINFO_LOCAL_PORT.md CURLINFO_NAMELOOKUP_TIME.md CURLINFO_NAMELOOKUP_TIME_T.md CURLINFO_NUM_CONNECTS.md CURLINFO_OS_ERRNO.md CURLINFO_POSTTRANSFER_TIME_T.md CURLINFO_PRETRANSFER_TIME.md CURLINFO_PRETRANSFER_TIME_T.md CURLINFO_PRIMARY_IP.md CURLINFO_PRIMARY_PORT.md CURLINFO_PRIVATE.md CURLINFO_PROTOCOL.md CURLINFO_PROXYAUTH_AVAIL.md CURLINFO_PROXYAUTH_USED.md CURLINFO_PROXY_ERROR.md CURLINFO_PROXY_SSL_VERIFYRESULT.md CURLINFO_QUEUE_TIME_T.md CURLINFO_REDIRECT_COUNT.md CURLINFO_REDIRECT_TIME.md CURLINFO_REDIRECT_TIME_T.md CURLINFO_REDIRECT_URL.md CURLINFO_REFERER.md CURLINFO_REQUEST_SIZE.md CURLINFO_RESPONSE_CODE.md CURLINFO_RETRY_AFTER.md CURLINFO_RTSP_CLIENT_CSEQ.md CURLINFO_RTSP_CSEQ_RECV.md CURLINFO_RTSP_SERVER_CSEQ.md CURLINFO_RTSP_SESSION_ID.md CURLINFO_SCHEME.md CURLINFO_SIZE_DELIVERED.md CURLINFO_SIZE_DOWNLOAD.md CURLINFO_SIZE_DOWNLOAD_T.md CURLINFO_SIZE_UPLOAD.md CURLINFO_SIZE_UPLOAD_T.md CURLINFO_SPEED_DOWNLOAD.md CURLINFO_SPEED_DOWNLOAD_T.md CURLINFO_SPEED_UPLOAD.md CURLINFO_SPEED_UPLOAD_T.md CURLINFO_SSL_ENGINES.md CURLINFO_SSL_VERIFYRESULT.md CURLINFO_STARTTRANSFER_TIME.md CURLINFO_STARTTRANSFER_TIME_T.md CURLINFO_TLS_SESSION.md CURLINFO_TLS_SSL_PTR.md CURLINFO_TOTAL_TIME.md CURLINFO_TOTAL_TIME_T.md CURLINFO_USED_PROXY.md CURLINFO_XFER_ID.md CURLMINFO_XFERS_ADDED.md CURLMINFO_XFERS_CURRENT.md CURLMINFO_XFERS_DONE.md CURLMINFO_XFERS_PENDING.md CURLMINFO_XFERS_RUNNING.md CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE.md CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE.md CURLMOPT_MAXCONNECTS.md CURLMOPT_MAX_CONCURRENT_STREAMS.md CURLMOPT_MAX_HOST_CONNECTIONS.md CURLMOPT_MAX_PIPELINE_LENGTH.md CURLMOPT_MAX_TOTAL_CONNECTIONS.md CURLMOPT_NETWORK_CHANGED.md CURLMOPT_NOTIFYDATA.md CURLMOPT_NOTIFYFUNCTION.md CURLMOPT_PIPELINING.md CURLMOPT_PIPELINING_SERVER_BL.md CURLMOPT_PIPELINING_SITE_BL.md CURLMOPT_PUSHDATA.md CURLMOPT_PUSHFUNCTION.md CURLMOPT_QUICK_EXIT.md CURLMOPT_RESOLVE_THREADS_MAX.md CURLMOPT_SOCKETDATA.md CURLMOPT_SOCKETFUNCTION.md CURLMOPT_TIMERDATA.md CURLMOPT_TIMERFUNCTION.md CURLOPT_ABSTRACT_UNIX_SOCKET.md CURLOPT_ACCEPTTIMEOUT_MS.md CURLOPT_ACCEPT_ENCODING.md CURLOPT_ADDRESS_SCOPE.md CURLOPT_ALTSVC.md CURLOPT_ALTSVC_CTRL.md CURLOPT_APPEND.md CURLOPT_AUTOREFERER.md CURLOPT_AWS_SIGV4.md CURLOPT_BUFFERSIZE.md CURLOPT_CAINFO.md CURLOPT_CAINFO_BLOB.md CURLOPT_CAPATH.md CURLOPT_CA_CACHE_TIMEOUT.md CURLOPT_CERTINFO.md CURLOPT_CHUNK_BGN_FUNCTION.md CURLOPT_CHUNK_DATA.md CURLOPT_CHUNK_END_FUNCTION.md CURLOPT_CLOSESOCKETDATA.md CURLOPT_CLOSESOCKETFUNCTION.md CURLOPT_CONNECTTIMEOUT.md CURLOPT_CONNECTTIMEOUT_MS.md CURLOPT_CONNECT_ONLY.md CURLOPT_CONNECT_TO.md CURLOPT_CONV_FROM_NETWORK_FUNCTION.md CURLOPT_CONV_FROM_UTF8_FUNCTION.md CURLOPT_CONV_TO_NETWORK_FUNCTION.md CURLOPT_COOKIE.md CURLOPT_COOKIEFILE.md CURLOPT_COOKIEJAR.md CURLOPT_COOKIELIST.md CURLOPT_COOKIESESSION.md CURLOPT_COPYPOSTFIELDS.md CURLOPT_CRLF.md CURLOPT_CRLFILE.md CURLOPT_CURLU.md CURLOPT_CUSTOMREQUEST.md CURLOPT_DEBUGDATA.md CURLOPT_DEBUGFUNCTION.md CURLOPT_DEFAULT_PROTOCOL.md CURLOPT_DIRLISTONLY.md CURLOPT_DISALLOW_USERNAME_IN_URL.md CURLOPT_DNS_CACHE_TIMEOUT.md CURLOPT_DNS_INTERFACE.md CURLOPT_DNS_LOCAL_IP4.md CURLOPT_DNS_LOCAL_IP6.md CURLOPT_DNS_SERVERS.md CURLOPT_DNS_SHUFFLE_ADDRESSES.md CURLOPT_DNS_USE_GLOBAL_CACHE.md CURLOPT_DOH_SSL_VERIFYHOST.md CURLOPT_DOH_SSL_VERIFYPEER.md CURLOPT_DOH_SSL_VERIFYSTATUS.md CURLOPT_DOH_URL.md CURLOPT_ECH.md CURLOPT_EGDSOCKET.md CURLOPT_ERRORBUFFER.md CURLOPT_EXPECT_100_TIMEOUT_MS.md CURLOPT_FAILONERROR.md CURLOPT_FILETIME.md CURLOPT_FNMATCH_DATA.md CURLOPT_FNMATCH_FUNCTION.md CURLOPT_FOLLOWLOCATION.md CURLOPT_FORBID_REUSE.md CURLOPT_FRESH_CONNECT.md CURLOPT_FTPPORT.md CURLOPT_FTPSSLAUTH.md CURLOPT_FTP_ACCOUNT.md CURLOPT_FTP_ALTERNATIVE_TO_USER.md CURLOPT_FTP_CREATE_MISSING_DIRS.md CURLOPT_FTP_FILEMETHOD.md CURLOPT_FTP_SKIP_PASV_IP.md CURLOPT_FTP_SSL_CCC.md CURLOPT_FTP_USE_EPRT.md CURLOPT_FTP_USE_EPSV.md CURLOPT_FTP_USE_PRET.md CURLOPT_GSSAPI_DELEGATION.md CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.md CURLOPT_HAPROXYPROTOCOL.md CURLOPT_HAPROXY_CLIENT_IP.md CURLOPT_HEADER.md CURLOPT_HEADERDATA.md CURLOPT_HEADERFUNCTION.md CURLOPT_HEADEROPT.md CURLOPT_HSTS.md CURLOPT_HSTSREADDATA.md CURLOPT_HSTSREADFUNCTION.md CURLOPT_HSTSWRITEDATA.md CURLOPT_HSTSWRITEFUNCTION.md CURLOPT_HSTS_CTRL.md CURLOPT_HTTP09_ALLOWED.md CURLOPT_HTTP200ALIASES.md CURLOPT_HTTPAUTH.md CURLOPT_HTTPGET.md CURLOPT_HTTPHEADER.md CURLOPT_HTTPPOST.md CURLOPT_HTTPPROXYTUNNEL.md CURLOPT_HTTP_CONTENT_DECODING.md CURLOPT_HTTP_TRANSFER_DECODING.md CURLOPT_HTTP_VERSION.md CURLOPT_IGNORE_CONTENT_LENGTH.md CURLOPT_INFILESIZE.md CURLOPT_INFILESIZE_LARGE.md CURLOPT_INTERFACE.md CURLOPT_INTERLEAVEDATA.md CURLOPT_INTERLEAVEFUNCTION.md CURLOPT_IOCTLDATA.md CURLOPT_IOCTLFUNCTION.md CURLOPT_IPRESOLVE.md CURLOPT_ISSUERCERT.md CURLOPT_ISSUERCERT_BLOB.md CURLOPT_KEEP_SENDING_ON_ERROR.md CURLOPT_KEYPASSWD.md CURLOPT_KRBLEVEL.md CURLOPT_LOCALPORT.md CURLOPT_LOCALPORTRANGE.md CURLOPT_LOGIN_OPTIONS.md CURLOPT_LOW_SPEED_LIMIT.md CURLOPT_LOW_SPEED_TIME.md CURLOPT_MAIL_AUTH.md CURLOPT_MAIL_FROM.md CURLOPT_MAIL_RCPT.md CURLOPT_MAIL_RCPT_ALLOWFAILS.md CURLOPT_MAXAGE_CONN.md CURLOPT_MAXCONNECTS.md CURLOPT_MAXFILESIZE.md CURLOPT_MAXFILESIZE_LARGE.md CURLOPT_MAXLIFETIME_CONN.md CURLOPT_MAXREDIRS.md CURLOPT_MAX_RECV_SPEED_LARGE.md CURLOPT_MAX_SEND_SPEED_LARGE.md CURLOPT_MIMEPOST.md CURLOPT_MIME_OPTIONS.md CURLOPT_NETRC.md CURLOPT_NETRC_FILE.md CURLOPT_NEW_DIRECTORY_PERMS.md CURLOPT_NEW_FILE_PERMS.md CURLOPT_NOBODY.md CURLOPT_NOPROGRESS.md CURLOPT_NOPROXY.md CURLOPT_NOSIGNAL.md CURLOPT_OPENSOCKETDATA.md CURLOPT_OPENSOCKETFUNCTION.md CURLOPT_PASSWORD.md CURLOPT_PATH_AS_IS.md CURLOPT_PINNEDPUBLICKEY.md CURLOPT_PIPEWAIT.md CURLOPT_PORT.md CURLOPT_POST.md CURLOPT_POSTFIELDS.md CURLOPT_POSTFIELDSIZE.md CURLOPT_POSTFIELDSIZE_LARGE.md CURLOPT_POSTQUOTE.md CURLOPT_POSTREDIR.md CURLOPT_PREQUOTE.md CURLOPT_PREREQDATA.md CURLOPT_PREREQFUNCTION.md CURLOPT_PRE_PROXY.md CURLOPT_PRIVATE.md CURLOPT_PROGRESSDATA.md CURLOPT_PROGRESSFUNCTION.md CURLOPT_PROTOCOLS.md CURLOPT_PROTOCOLS_STR.md CURLOPT_PROXY.md CURLOPT_PROXYAUTH.md CURLOPT_PROXYHEADER.md CURLOPT_PROXYPASSWORD.md CURLOPT_PROXYPORT.md CURLOPT_PROXYTYPE.md CURLOPT_PROXYUSERNAME.md CURLOPT_PROXYUSERPWD.md CURLOPT_PROXY_CAINFO.md CURLOPT_PROXY_CAINFO_BLOB.md CURLOPT_PROXY_CAPATH.md CURLOPT_PROXY_CRLFILE.md CURLOPT_PROXY_ISSUERCERT.md CURLOPT_PROXY_ISSUERCERT_BLOB.md CURLOPT_PROXY_KEYPASSWD.md CURLOPT_PROXY_PINNEDPUBLICKEY.md CURLOPT_PROXY_SERVICE_NAME.md CURLOPT_PROXY_SSLCERT.md CURLOPT_PROXY_SSLCERTTYPE.md CURLOPT_PROXY_SSLCERT_BLOB.md CURLOPT_PROXY_SSLKEY.md CURLOPT_PROXY_SSLKEYTYPE.md CURLOPT_PROXY_SSLKEY_BLOB.md CURLOPT_PROXY_SSLVERSION.md CURLOPT_PROXY_SSL_CIPHER_LIST.md CURLOPT_PROXY_SSL_OPTIONS.md CURLOPT_PROXY_SSL_VERIFYHOST.md CURLOPT_PROXY_SSL_VERIFYPEER.md CURLOPT_PROXY_TLS13_CIPHERS.md CURLOPT_PROXY_TLSAUTH_PASSWORD.md CURLOPT_PROXY_TLSAUTH_TYPE.md CURLOPT_PROXY_TLSAUTH_USERNAME.md CURLOPT_PROXY_TRANSFER_MODE.md CURLOPT_PUT.md CURLOPT_QUICK_EXIT.md CURLOPT_QUOTE.md CURLOPT_RANDOM_FILE.md CURLOPT_RANGE.md CURLOPT_READDATA.md CURLOPT_READFUNCTION.md CURLOPT_REDIR_PROTOCOLS.md CURLOPT_REDIR_PROTOCOLS_STR.md CURLOPT_REFERER.md CURLOPT_REQUEST_TARGET.md CURLOPT_RESOLVE.md CURLOPT_RESOLVER_START_DATA.md CURLOPT_RESOLVER_START_FUNCTION.md CURLOPT_RESUME_FROM.md CURLOPT_RESUME_FROM_LARGE.md CURLOPT_RTSP_CLIENT_CSEQ.md CURLOPT_RTSP_REQUEST.md CURLOPT_RTSP_SERVER_CSEQ.md CURLOPT_RTSP_SESSION_ID.md CURLOPT_RTSP_STREAM_URI.md CURLOPT_RTSP_TRANSPORT.md CURLOPT_SASL_AUTHZID.md CURLOPT_SASL_IR.md CURLOPT_SEEKDATA.md CURLOPT_SEEKFUNCTION.md CURLOPT_SERVER_RESPONSE_TIMEOUT.md CURLOPT_SERVER_RESPONSE_TIMEOUT_MS.md CURLOPT_SERVICE_NAME.md CURLOPT_SHARE.md CURLOPT_SOCKOPTDATA.md CURLOPT_SOCKOPTFUNCTION.md CURLOPT_SOCKS5_AUTH.md CURLOPT_SOCKS5_GSSAPI_NEC.md CURLOPT_SOCKS5_GSSAPI_SERVICE.md CURLOPT_SSH_AUTH_TYPES.md CURLOPT_SSH_COMPRESSION.md CURLOPT_SSH_HOSTKEYDATA.md CURLOPT_SSH_HOSTKEYFUNCTION.md CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.md CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256.md CURLOPT_SSH_KEYDATA.md CURLOPT_SSH_KEYFUNCTION.md CURLOPT_SSH_KNOWNHOSTS.md CURLOPT_SSH_PRIVATE_KEYFILE.md CURLOPT_SSH_PUBLIC_KEYFILE.md CURLOPT_SSLCERT.md CURLOPT_SSLCERTTYPE.md CURLOPT_SSLCERT_BLOB.md CURLOPT_SSLENGINE.md CURLOPT_SSLENGINE_DEFAULT.md CURLOPT_SSLKEY.md CURLOPT_SSLKEYTYPE.md CURLOPT_SSLKEY_BLOB.md CURLOPT_SSLVERSION.md CURLOPT_SSL_CIPHER_LIST.md CURLOPT_SSL_CTX_DATA.md CURLOPT_SSL_CTX_FUNCTION.md CURLOPT_SSL_EC_CURVES.md CURLOPT_SSL_ENABLE_ALPN.md CURLOPT_SSL_ENABLE_NPN.md CURLOPT_SSL_FALSESTART.md CURLOPT_SSL_OPTIONS.md CURLOPT_SSL_SESSIONID_CACHE.md CURLOPT_SSL_SIGNATURE_ALGORITHMS.md CURLOPT_SSL_VERIFYHOST.md CURLOPT_SSL_VERIFYPEER.md CURLOPT_SSL_VERIFYSTATUS.md CURLOPT_STDERR.md CURLOPT_STREAM_DEPENDS.md CURLOPT_STREAM_DEPENDS_E.md CURLOPT_STREAM_WEIGHT.md CURLOPT_SUPPRESS_CONNECT_HEADERS.md CURLOPT_TCP_FASTOPEN.md CURLOPT_TCP_KEEPALIVE.md CURLOPT_TCP_KEEPCNT.md CURLOPT_TCP_KEEPIDLE.md CURLOPT_TCP_KEEPINTVL.md CURLOPT_TCP_NODELAY.md CURLOPT_TELNETOPTIONS.md CURLOPT_TFTP_BLKSIZE.md CURLOPT_TFTP_NO_OPTIONS.md CURLOPT_TIMECONDITION.md CURLOPT_TIMEOUT.md CURLOPT_TIMEOUT_MS.md CURLOPT_TIMEVALUE.md CURLOPT_TIMEVALUE_LARGE.md CURLOPT_TLS13_CIPHERS.md CURLOPT_TLSAUTH_PASSWORD.md CURLOPT_TLSAUTH_TYPE.md CURLOPT_TLSAUTH_USERNAME.md CURLOPT_TRAILERDATA.md CURLOPT_TRAILERFUNCTION.md CURLOPT_TRANSFERTEXT.md CURLOPT_TRANSFER_ENCODING.md CURLOPT_UNIX_SOCKET_PATH.md CURLOPT_UNRESTRICTED_AUTH.md CURLOPT_UPKEEP_INTERVAL_MS.md CURLOPT_UPLOAD.md CURLOPT_UPLOAD_BUFFERSIZE.md CURLOPT_UPLOAD_FLAGS.md CURLOPT_URL.md CURLOPT_USERAGENT.md CURLOPT_USERNAME.md CURLOPT_USERPWD.md CURLOPT_USE_SSL.md CURLOPT_VERBOSE.md CURLOPT_WILDCARDMATCH.md CURLOPT_WRITEDATA.md CURLOPT_WRITEFUNCTION.md CURLOPT_WS_OPTIONS.md CURLOPT_XFERINFODATA.md CURLOPT_XFERINFOFUNCTION.md CURLOPT_XOAUTH2_BEARER.md CURLSHOPT_LOCKFUNC.md CURLSHOPT_SHARE.md CURLSHOPT_UNLOCKFUNC.md CURLSHOPT_UNSHARE.md CURLSHOPT_USERDATA.md Makefile.am Makefile.inc
.gitignore ABI.md CMakeLists.txt Makefile.am Makefile.inc curl_easy_cleanup.md curl_easy_duphandle.md curl_easy_escape.md curl_easy_getinfo.md curl_easy_header.md curl_easy_init.md curl_easy_nextheader.md curl_easy_option_by_id.md curl_easy_option_by_name.md curl_easy_option_next.md curl_easy_pause.md curl_easy_perform.md curl_easy_recv.md curl_easy_reset.md curl_easy_send.md curl_easy_setopt.md curl_easy_ssls_export.md curl_easy_ssls_import.md curl_easy_strerror.md curl_easy_unescape.md curl_easy_upkeep.md curl_escape.md curl_formadd.md curl_formfree.md curl_formget.md curl_free.md curl_getdate.md curl_getenv.md curl_global_cleanup.md curl_global_init.md curl_global_init_mem.md curl_global_sslset.md curl_global_trace.md curl_mime_addpart.md curl_mime_data.md curl_mime_data_cb.md curl_mime_encoder.md curl_mime_filedata.md curl_mime_filename.md curl_mime_free.md curl_mime_headers.md curl_mime_init.md curl_mime_name.md curl_mime_subparts.md curl_mime_type.md curl_mprintf.md curl_multi_add_handle.md curl_multi_assign.md curl_multi_cleanup.md curl_multi_fdset.md curl_multi_get_handles.md curl_multi_get_offt.md curl_multi_info_read.md curl_multi_init.md curl_multi_notify_disable.md curl_multi_notify_enable.md curl_multi_perform.md curl_multi_poll.md curl_multi_remove_handle.md curl_multi_setopt.md curl_multi_socket.md curl_multi_socket_action.md curl_multi_socket_all.md curl_multi_strerror.md curl_multi_timeout.md curl_multi_wait.md curl_multi_waitfds.md curl_multi_wakeup.md curl_pushheader_byname.md curl_pushheader_bynum.md curl_share_cleanup.md curl_share_init.md curl_share_setopt.md curl_share_strerror.md curl_slist_append.md curl_slist_free_all.md curl_strequal.md curl_strnequal.md curl_unescape.md curl_url.md curl_url_cleanup.md curl_url_dup.md curl_url_get.md curl_url_set.md curl_url_strerror.md curl_version.md curl_version_info.md curl_ws_meta.md curl_ws_recv.md curl_ws_send.md curl_ws_start_frame.md libcurl-easy.md libcurl-env-dbg.md libcurl-env.md libcurl-errors.md libcurl-multi.md libcurl-security.md libcurl-share.md libcurl-thread.md libcurl-tutorial.md libcurl-url.md libcurl-ws.md libcurl.m4 libcurl.md mksymbolsmanpage.pl symbols-in-versions symbols.pl
tests CI.md FILEFORMAT.md HTTP.md TEST-SUITE.md
.gitignore ALTSVC.md BINDINGS.md BUG-BOUNTY.md BUGS.md CIPHERS-TLS12.md CIPHERS.md CMakeLists.txt CODE_OF_CONDUCT.md CODE_REVIEW.md CONTRIBUTE.md CURL-DISABLE.md CURLDOWN.md DEPRECATE.md DISTROS.md EARLY-RELEASE.md ECH.md EXPERIMENTAL.md FAQ.md FEATURES.md GOVERNANCE.md HELP-US.md HISTORY.md HSTS.md HTTP-COOKIES.md HTTP3.md HTTPSRR.md INFRASTRUCTURE.md INSTALL-CMAKE.md INSTALL.md INTERNALS.md IPFS.md KNOWN_BUGS.md KNOWN_RISKS.md MAIL-ETIQUETTE.md MANUAL.md Makefile.am README.md RELEASE-PROCEDURE.md ROADMAP.md RUSTLS.md SECURITY-ADVISORY.md SPONSORS.md SSL-PROBLEMS.md SSLCERTS.md THANKS THANKS-filter TODO.md TheArtOfHttpScripting.md URL-SYNTAX.md VERIFY.md VERSIONS.md VULN-DISCLOSURE-POLICY.md curl-config.md mk-ca-bundle.md options-in-versions runtests.md testcurl.md wcurl.md
include
curl Makefile.am curl.h curlver.h easy.h header.h mprintf.h multi.h options.h stdcheaders.h system.h typecheck-gcc.h urlapi.h websockets.h
Makefile.am README.md
lib
curlx base64.c base64.h basename.c basename.h dynbuf.c dynbuf.h fopen.c fopen.h inet_ntop.c inet_ntop.h inet_pton.c inet_pton.h multibyte.c multibyte.h nonblock.c nonblock.h snprintf.c snprintf.h strcopy.c strcopy.h strdup.c strdup.h strerr.c strerr.h strparse.c strparse.h timediff.c timediff.h timeval.c timeval.h version_win32.c version_win32.h wait.c wait.h warnless.c warnless.h winapi.c winapi.h
vauth cleartext.c cram.c digest.c digest.h digest_sspi.c gsasl.c krb5_gssapi.c krb5_sspi.c ntlm.c ntlm_sspi.c oauth2.c spnego_gssapi.c spnego_sspi.c vauth.c vauth.h
vquic curl_ngtcp2.c curl_ngtcp2.h curl_quiche.c curl_quiche.h vquic-tls.c vquic-tls.h vquic.c vquic.h vquic_int.h
vssh libssh.c libssh2.c ssh.h vssh.c vssh.h
vtls apple.c apple.h cipher_suite.c cipher_suite.h gtls.c gtls.h hostcheck.c hostcheck.h keylog.c keylog.h mbedtls.c mbedtls.h openssl.c openssl.h rustls.c rustls.h schannel.c schannel.h schannel_int.h schannel_verify.c vtls.c vtls.h vtls_int.h vtls_scache.c vtls_scache.h vtls_spack.c vtls_spack.h wolfssl.c wolfssl.h x509asn1.c x509asn1.h
.gitignore CMakeLists.txt Makefile.am Makefile.inc Makefile.soname altsvc.c altsvc.h amigaos.c amigaos.h arpa_telnet.h asyn-ares.c asyn-base.c asyn-thrdd.c asyn.h bufq.c bufq.h bufref.c bufref.h cf-dns.c cf-dns.h cf-h1-proxy.c cf-h1-proxy.h cf-h2-proxy.c cf-h2-proxy.h cf-haproxy.c cf-haproxy.h cf-https-connect.c cf-https-connect.h cf-ip-happy.c cf-ip-happy.h cf-socket.c cf-socket.h cfilters.c cfilters.h config-mac.h config-os400.h config-riscos.h config-win32.h conncache.c conncache.h connect.c connect.h content_encoding.c content_encoding.h cookie.c cookie.h creds.c creds.h cshutdn.c cshutdn.h curl_addrinfo.c curl_addrinfo.h curl_config-cmake.h.in curl_ctype.h curl_endian.c curl_endian.h curl_fnmatch.c curl_fnmatch.h curl_fopen.c curl_fopen.h curl_get_line.c curl_get_line.h curl_gethostname.c curl_gethostname.h curl_gssapi.c curl_gssapi.h curl_hmac.h curl_ldap.h curl_md4.h curl_md5.h curl_memrchr.c curl_memrchr.h curl_ntlm_core.c curl_ntlm_core.h curl_printf.h curl_range.c curl_range.h curl_sasl.c curl_sasl.h curl_setup.h curl_sha256.h curl_sha512_256.c curl_sha512_256.h curl_share.c curl_share.h curl_sspi.c curl_sspi.h curl_threads.c curl_threads.h curl_trc.c curl_trc.h cw-out.c cw-out.h cw-pause.c cw-pause.h dict.c dict.h dllmain.c dnscache.c dnscache.h doh.c doh.h dynhds.c dynhds.h easy.c easy_lock.h easygetopt.c easyif.h easyoptions.c easyoptions.h escape.c escape.h fake_addrinfo.c fake_addrinfo.h file.c file.h fileinfo.c fileinfo.h formdata.c formdata.h ftp-int.h ftp.c ftp.h ftplistparser.c ftplistparser.h functypes.h getenv.c getinfo.c getinfo.h gopher.c gopher.h hash.c hash.h headers.c headers.h hmac.c hostip.c hostip.h hostip4.c hostip6.c hsts.c hsts.h http.c http.h http1.c http1.h http2.c http2.h http_aws_sigv4.c http_aws_sigv4.h http_chunks.c http_chunks.h http_digest.c http_digest.h http_negotiate.c http_negotiate.h http_ntlm.c http_ntlm.h http_proxy.c http_proxy.h httpsrr.c httpsrr.h idn.c idn.h if2ip.c if2ip.h imap.c imap.h ldap.c libcurl.def libcurl.rc libcurl.vers.in llist.c llist.h macos.c macos.h md4.c md5.c memdebug.c mime.c mime.h mprintf.c mqtt.c mqtt.h multi.c multi_ev.c multi_ev.h multi_ntfy.c multi_ntfy.h multihandle.h multiif.h netrc.c netrc.h noproxy.c noproxy.h openldap.c optiontable.pl parsedate.c parsedate.h peer.c peer.h pingpong.c pingpong.h pop3.c pop3.h progress.c progress.h protocol.c protocol.h psl.c psl.h rand.c rand.h ratelimit.c ratelimit.h request.c request.h rtsp.c rtsp.h select.c select.h sendf.c sendf.h setopt.c setopt.h setup-os400.h setup-vms.h setup-win32.h sha256.c sigpipe.h slist.c slist.h smb.c smb.h smtp.c smtp.h sockaddr.h socketpair.c socketpair.h socks.c socks.h socks_gssapi.c socks_sspi.c splay.c splay.h strcase.c strcase.h strequal.c strerror.c strerror.h system_win32.c system_win32.h telnet.c telnet.h tftp.c tftp.h thrdpool.c thrdpool.h thrdqueue.c thrdqueue.h transfer.c transfer.h uint-bset.c uint-bset.h uint-hash.c uint-hash.h uint-spbset.c uint-spbset.h uint-table.c uint-table.h url.c url.h urlapi-int.h urlapi.c urldata.h version.c ws.c ws.h
m4 .gitignore curl-amissl.m4 curl-apple-sectrust.m4 curl-compilers.m4 curl-confopts.m4 curl-functions.m4 curl-gnutls.m4 curl-mbedtls.m4 curl-openssl.m4 curl-override.m4 curl-reentrant.m4 curl-rustls.m4 curl-schannel.m4 curl-sysconfig.m4 curl-wolfssl.m4 xc-am-iface.m4 xc-cc-check.m4 xc-lt-iface.m4 xc-val-flgs.m4 zz40-xc-ovr.m4 zz50-xc-ovr.m4
projects
OS400
rpg-examples HEADERAPI HTTPPOST INMEMORY SIMPLE1 SIMPLE2 SMTPSRCMBR
.checksrc README.OS400 ccsidcurl.c ccsidcurl.h config400.default curl.cmd curl.inc.in curlcl.c curlmain.c initscript.sh make-docs.sh make-include.sh make-lib.sh make-src.sh make-tests.sh makefile.sh os400sys.c os400sys.h
Windows
tmpl .gitattributes README.txt curl-all.sln curl.sln curl.vcxproj curl.vcxproj.filters libcurl.sln libcurl.vcxproj libcurl.vcxproj.filters
.gitignore README.md generate.bat
vms Makefile.am backup_gnv_curl_src.com build_curl-config_script.com build_gnv_curl.com build_gnv_curl_pcsi_desc.com build_gnv_curl_pcsi_text.com build_gnv_curl_release_notes.com build_libcurl_pc.com build_vms.com clean_gnv_curl.com compare_curl_source.com config_h.com curl_crtl_init.c curl_gnv_build_steps.txt curl_release_note_start.txt curl_startup.com curlmsg.h curlmsg.msg curlmsg.sdl curlmsg_vms.h generate_config_vms_h_curl.com generate_vax_transfer.com gnv_conftest.c_first gnv_curl_configure.sh gnv_libcurl_symbols.opt gnv_link_curl.com macro32_exactcase.patch make_gnv_curl_install.sh make_pcsi_curl_kit_name.com pcsi_gnv_curl_file_list.txt pcsi_product_gnv_curl.com readme report_openssl_version.c setup_gnv_curl_build.com stage_curl_install.com vms_eco_level.h
Makefile.am README.md
scripts .checksrc CMakeLists.txt Makefile.am badwords badwords-all badwords.txt cd2cd cd2nroff cdall checksrc-all.pl checksrc.pl cmakelint.sh completion.pl contributors.sh contrithanks.sh coverage.sh delta dmaketgz extract-unit-protos firefox-db2pem.sh installcheck.sh maketgz managen mdlinkcheck mk-ca-bundle.pl mk-unity.pl nroff2cd perlcheck.sh pythonlint.sh randdisable release-notes.pl release-tools.sh schemetable.c singleuse.pl spacecheck.pl top-complexity top-length verify-release wcurl
src
toolx tool_time.c tool_time.h
.checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc config2setopts.c config2setopts.h curl.rc curlinfo.c mk-file-embed.pl mkhelp.pl slist_wc.c slist_wc.h terminal.c terminal.h tool_cb_dbg.c tool_cb_dbg.h tool_cb_hdr.c tool_cb_hdr.h tool_cb_prg.c tool_cb_prg.h tool_cb_rea.c tool_cb_rea.h tool_cb_see.c tool_cb_see.h tool_cb_soc.c tool_cb_soc.h tool_cb_wrt.c tool_cb_wrt.h tool_cfgable.c tool_cfgable.h tool_dirhie.c tool_dirhie.h tool_doswin.c tool_doswin.h tool_easysrc.c tool_easysrc.h tool_filetime.c tool_filetime.h tool_findfile.c tool_findfile.h tool_formparse.c tool_formparse.h tool_getparam.c tool_getparam.h tool_getpass.c tool_getpass.h tool_help.c tool_help.h tool_helpers.c tool_helpers.h tool_hugehelp.h tool_ipfs.c tool_ipfs.h tool_libinfo.c tool_libinfo.h tool_listhelp.c tool_main.c tool_main.h tool_msgs.c tool_msgs.h tool_operate.c tool_operate.h tool_operhlp.c tool_operhlp.h tool_paramhlp.c tool_paramhlp.h tool_parsecfg.c tool_parsecfg.h tool_progress.c tool_progress.h tool_sdecls.h tool_setopt.c tool_setopt.h tool_setup.h tool_ssls.c tool_ssls.h tool_stderr.c tool_stderr.h tool_urlglob.c tool_urlglob.h tool_util.c tool_util.h tool_version.h tool_vms.c tool_vms.h tool_writeout.c tool_writeout.h tool_writeout_json.c tool_writeout_json.h tool_xattr.c tool_xattr.h var.c var.h
tests
certs .gitignore CMakeLists.txt Makefile.am Makefile.inc genserv.pl srp-verifier-conf srp-verifier-db test-ca.cnf test-ca.prm test-client-cert.prm test-client-eku-only.prm test-localhost-san-first.prm test-localhost-san-last.prm test-localhost.nn.prm test-localhost.prm test-localhost0h.prm
cmake CMakeLists.txt test.c test.cpp test.sh
data .gitignore DISABLED Makefile.am data-xml1 data1400.c data1401.c data1402.c data1403.c data1404.c data1405.c data1406.c data1407.c data1420.c data1461.txt data1463.txt data1465.c data1481.c data1705-1.md data1705-2.md data1705-3.md data1705-4.md data1705-stdout.1 data1706-1.md data1706-2.md data1706-3.md data1706-4.md data1706-stdout.txt data320.html test1 test10 test100 test1000 test1001 test1002 test1003 test1004 test1005 test1006 test1007 test1008 test1009 test101 test1010 test1011 test1012 test1013 test1014 test1015 test1016 test1017 test1018 test1019 test102 test1020 test1021 test1022 test1023 test1024 test1025 test1026 test1027 test1028 test1029 test103 test1030 test1031 test1032 test1033 test1034 test1035 test1036 test1037 test1038 test1039 test104 test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047 test1048 test1049 test105 test1050 test1051 test1052 test1053 test1054 test1055 test1056 test1057 test1058 test1059 test106 test1060 test1061 test1062 test1063 test1064 test1065 test1066 test1067 test1068 test1069 test107 test1070 test1071 test1072 test1073 test1074 test1075 test1076 test1077 test1078 test1079 test108 test1080 test1081 test1082 test1083 test1084 test1085 test1086 test1087 test1088 test1089 test109 test1090 test1091 test1092 test1093 test1094 test1095 test1096 test1097 test1098 test1099 test11 test110 test1100 test1101 test1102 test1103 test1104 test1105 test1106 test1107 test1108 test1109 test111 test1110 test1111 test1112 test1113 test1114 test1115 test1116 test1117 test1118 test1119 test112 test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 test1128 test1129 test113 test1130 test1131 test1132 test1133 test1134 test1135 test1136 test1137 test1138 test1139 test114 test1140 test1141 test1142 test1143 test1144 test1145 test1146 test1147 test1148 test1149 test115 test1150 test1151 test1152 test1153 test1154 test1155 test1156 test1157 test1158 test1159 test116 test1160 test1161 test1162 test1163 test1164 test1165 test1166 test1167 test1168 test1169 test117 test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 test1178 test1179 test118 test1180 test1181 test1182 test1183 test1184 test1185 test1186 test1187 test1188 test1189 test119 test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 test1199 test12 test120 test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 test1208 test1209 test121 test1210 test1211 test1212 test1213 test1214 test1215 test1216 test1217 test1218 test1219 test122 test1220 test1221 test1222 test1223 test1224 test1225 test1226 test1227 test1228 test1229 test123 test1230 test1231 test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 test124 test1240 test1241 test1242 test1243 test1244 test1245 test1246 test1247 test1248 test1249 test125 test1250 test1251 test1252 test1253 test1254 test1255 test1256 test1257 test1258 test1259 test126 test1260 test1261 test1262 test1263 test1264 test1265 test1266 test1267 test1268 test1269 test127 test1270 test1271 test1272 test1273 test1274 test1275 test1276 test1277 test1278 test1279 test128 test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 test1288 test1289 test129 test1290 test1291 test1292 test1293 test1294 test1295 test1296 test1297 test1298 test1299 test13 test130 test1300 test1301 test1302 test1303 test1304 test1305 test1306 test1307 test1308 test1309 test131 test1310 test1311 test1312 test1313 test1314 test1315 test1316 test1317 test1318 test1319 test132 test1320 test1321 test1322 test1323 test1324 test1325 test1326 test1327 test1328 test1329 test133 test1330 test1331 test1332 test1333 test1334 test1335 test1336 test1337 test1338 test1339 test134 test1340 test1341 test1342 test1343 test1344 test1345 test1346 test1347 test1348 test1349 test135 test1350 test1351 test1352 test1353 test1354 test1355 test1356 test1357 test1358 test1359 test136 test1360 test1361 test1362 test1363 test1364 test1365 test1366 test1367 test1368 test1369 test137 test1370 test1371 test1372 test1373 test1374 test1375 test1376 test1377 test1378 test1379 test138 test1380 test1381 test1382 test1383 test1384 test1385 test1386 test1387 test1388 test1389 test139 test1390 test1391 test1392 test1393 test1394 test1395 test1396 test1397 test1398 test1399 test14 test140 test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 test1408 test1409 test141 test1410 test1411 test1412 test1413 test1414 test1415 test1416 test1417 test1418 test1419 test142 test1420 test1421 test1422 test1423 test1424 test1425 test1426 test1427 test1428 test1429 test143 test1430 test1431 test1432 test1433 test1434 test1435 test1436 test1437 test1438 test1439 test144 test1440 test1441 test1442 test1443 test1444 test1445 test1446 test1447 test1448 test1449 test145 test1450 test1451 test1452 test1453 test1454 test1455 test1456 test1457 test1458 test1459 test146 test1460 test1461 test1462 test1463 test1464 test1465 test1466 test1467 test1468 test1469 test147 test1470 test1471 test1472 test1473 test1474 test1475 test1476 test1477 test1478 test1479 test148 test1480 test1481 test1482 test1483 test1484 test1485 test1486 test1487 test1488 test1489 test149 test1490 test1491 test1492 test1493 test1494 test1495 test1496 test1497 test1498 test1499 test15 test150 test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 test1508 test1509 test151 test1510 test1511 test1512 test1513 test1514 test1515 test1516 test1517 test1518 test1519 test152 test1520 test1521 test1522 test1523 test1524 test1525 test1526 test1527 test1528 test1529 test153 test1530 test1531 test1532 test1533 test1534 test1535 test1536 test1537 test1538 test1539 test154 test1540 test1541 test1542 test1543 test1544 test1545 test1546 test1547 test1548 test1549 test155 test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 test1558 test1559 test156 test1560 test1561 test1562 test1563 test1564 test1565 test1566 test1567 test1568 test1569 test157 test1570 test1571 test1572 test1573 test1574 test1575 test1576 test1577 test1578 test1579 test158 test1580 test1581 test1582 test1583 test1584 test1585 test1586 test1587 test1588 test1589 test159 test1590 test1591 test1592 test1593 test1594 test1595 test1596 test1597 test1598 test1599 test16 test160 test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 test1608 test1609 test161 test1610 test1611 test1612 test1613 test1614 test1615 test1616 test1617 test1618 test1619 test162 test1620 test1621 test1622 test1623 test1624 test1625 test1626 test1627 test1628 test1629 test163 test1630 test1631 test1632 test1633 test1634 test1635 test1636 test1637 test1638 test1639 test164 test1640 test1641 test1642 test1643 test1644 test1645 test165 test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 test1658 test1659 test166 test1660 test1661 test1662 test1663 test1664 test1665 test1666 test1667 test1668 test1669 test167 test1670 test1671 test1672 test1673 test1674 test1675 test1676 test168 test1680 test1681 test1682 test1683 test1684 test1685 test169 test17 test170 test1700 test1701 test1702 test1703 test1704 test1705 test1706 test1707 test1708 test1709 test171 test1710 test1711 test1712 test1713 test1714 test1715 test172 test1720 test1721 test173 test174 test175 test176 test177 test178 test179 test18 test180 test1800 test1801 test1802 test181 test182 test183 test184 test1847 test1848 test1849 test185 test1850 test1851 test186 test187 test188 test189 test19 test190 test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 test1908 test1909 test191 test1910 test1911 test1912 test1913 test1914 test1915 test1916 test1917 test1918 test1919 test192 test1920 test1921 test193 test1933 test1934 test1935 test1936 test1937 test1938 test1939 test194 test1940 test1941 test1942 test1943 test1944 test1945 test1946 test1947 test1948 test195 test1955 test1956 test1957 test1958 test1959 test196 test1960 test1964 test1965 test1966 test197 test1970 test1971 test1972 test1973 test1974 test1975 test1976 test1977 test1978 test1979 test198 test1980 test1981 test1982 test1983 test1984 test199 test2 test20 test200 test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 test2008 test2009 test201 test2010 test2011 test2012 test2013 test2014 test202 test2023 test2024 test2025 test2026 test2027 test2028 test2029 test203 test2030 test2031 test2032 test2033 test2034 test2035 test2037 test2038 test2039 test204 test2040 test2041 test2042 test2043 test2044 test2045 test2046 test2047 test2048 test2049 test205 test2050 test2051 test2052 test2053 test2054 test2055 test2056 test2057 test2058 test2059 test206 test2060 test2061 test2062 test2063 test2064 test2065 test2066 test2067 test2068 test2069 test207 test2070 test2071 test2072 test2073 test2074 test2075 test2076 test2077 test2078 test2079 test208 test2080 test2081 test2082 test2083 test2084 test2085 test2086 test2087 test2088 test2089 test209 test2090 test2091 test2092 test21 test210 test2100 test2101 test2102 test2103 test2104 test211 test212 test213 test214 test215 test216 test217 test218 test219 test22 test220 test2200 test2201 test2202 test2203 test2204 test2205 test2206 test2207 test221 test222 test223 test224 test225 test226 test227 test228 test229 test23 test230 test2300 test2301 test2302 test2303 test2304 test2306 test2307 test2308 test2309 test231 test232 test233 test234 test235 test236 test237 test238 test239 test24 test240 test2400 test2401 test2402 test2403 test2404 test2405 test2406 test2407 test2408 test2409 test241 test2410 test2411 test242 test243 test244 test245 test246 test247 test248 test249 test25 test250 test2500 test2501 test2502 test2503 test2504 test2505 test2506 test251 test252 test253 test254 test255 test256 test257 test258 test259 test26 test260 test2600 test2601 test2602 test2603 test2604 test2605 test261 test262 test263 test264 test265 test266 test267 test268 test269 test27 test270 test2700 test2701 test2702 test2703 test2704 test2705 test2706 test2707 test2708 test2709 test271 test2710 test2711 test2712 test2713 test2714 test2715 test2716 test2717 test2718 test2719 test272 test2720 test2721 test2722 test2723 test273 test274 test275 test276 test277 test278 test279 test28 test280 test281 test282 test283 test284 test285 test286 test287 test288 test289 test29 test290 test291 test292 test293 test294 test295 test296 test297 test298 test299 test3 test30 test300 test3000 test3001 test3002 test3003 test3004 test3005 test3006 test3007 test3008 test3009 test301 test3010 test3011 test3012 test3013 test3014 test3015 test3016 test3017 test3018 test3019 test302 test3020 test3021 test3022 test3023 test3024 test3025 test3026 test3027 test3028 test3029 test303 test3030 test3031 test3032 test3033 test3034 test3035 test3036 test304 test305 test306 test307 test308 test309 test31 test310 test3100 test3101 test3102 test3103 test3104 test3105 test3106 test311 test312 test313 test314 test315 test316 test317 test318 test319 test32 test320 test3200 test3201 test3202 test3203 test3204 test3205 test3206 test3207 test3208 test3209 test321 test3210 test3211 test3212 test3213 test3214 test3215 test3216 test3217 test3218 test3219 test322 test3220 test323 test324 test325 test326 test327 test328 test329 test33 test330 test3300 test3301 test3302 test331 test332 test333 test334 test335 test336 test337 test338 test339 test34 test340 test341 test342 test343 test344 test345 test346 test347 test348 test349 test35 test350 test351 test352 test353 test354 test355 test356 test357 test358 test359 test36 test360 test361 test362 test363 test364 test365 test366 test367 test368 test369 test37 test370 test371 test372 test373 test374 test375 test376 test378 test379 test38 test380 test381 test383 test384 test385 test386 test387 test388 test389 test39 test390 test391 test392 test393 test394 test395 test396 test397 test398 test399 test4 test40 test400 test4000 test4001 test401 test402 test403 test404 test405 test406 test407 test408 test409 test41 test410 test411 test412 test413 test414 test415 test416 test417 test418 test419 test42 test420 test421 test422 test423 test424 test425 test426 test427 test428 test429 test43 test430 test431 test432 test433 test434 test435 test436 test437 test438 test439 test44 test440 test441 test442 test443 test444 test445 test446 test447 test448 test449 test45 test450 test451 test452 test453 test454 test455 test456 test457 test458 test459 test46 test460 test461 test462 test463 test467 test468 test469 test47 test470 test471 test472 test473 test474 test475 test476 test477 test478 test479 test48 test480 test481 test482 test483 test484 test485 test486 test487 test488 test489 test49 test490 test491 test492 test493 test494 test495 test496 test497 test498 test499 test5 test50 test500 test501 test502 test503 test504 test505 test506 test507 test508 test509 test51 test510 test511 test512 test513 test514 test515 test516 test517 test518 test519 test52 test520 test521 test522 test523 test524 test525 test526 test527 test528 test529 test53 test530 test531 test532 test533 test534 test535 test536 test537 test538 test539 test54 test540 test541 test542 test543 test544 test545 test546 test547 test548 test549 test55 test550 test551 test552 test553 test554 test555 test556 test557 test558 test559 test56 test560 test561 test562 test563 test564 test565 test566 test567 test568 test569 test57 test570 test571 test572 test573 test574 test575 test576 test577 test578 test579 test58 test580 test581 test582 test583 test584 test585 test586 test587 test588 test589 test59 test590 test591 test592 test593 test594 test595 test596 test597 test598 test599 test6 test60 test600 test601 test602 test603 test604 test605 test606 test607 test608 test609 test61 test610 test611 test612 test613 test614 test615 test616 test617 test618 test619 test62 test620 test621 test622 test623 test624 test625 test626 test627 test628 test629 test63 test630 test631 test632 test633 test634 test635 test636 test637 test638 test639 test64 test640 test641 test642 test643 test644 test645 test646 test647 test648 test649 test65 test650 test651 test652 test653 test654 test655 test656 test658 test659 test66 test660 test661 test662 test663 test664 test665 test666 test667 test668 test669 test67 test670 test671 test672 test673 test674 test675 test676 test677 test678 test679 test68 test680 test681 test682 test683 test684 test685 test686 test687 test688 test689 test69 test690 test691 test692 test693 test694 test695 test696 test697 test698 test699 test7 test70 test700 test701 test702 test703 test704 test705 test706 test707 test708 test709 test71 test710 test711 test712 test713 test714 test715 test716 test717 test718 test719 test72 test720 test721 test722 test723 test724 test725 test726 test727 test728 test729 test73 test730 test731 test732 test733 test734 test735 test736 test737 test738 test739 test74 test740 test741 test742 test743 test744 test745 test746 test747 test748 test749 test75 test750 test751 test752 test753 test754 test755 test756 test757 test758 test759 test76 test760 test761 test762 test763 test764 test765 test766 test767 test768 test769 test77 test770 test771 test772 test773 test774 test775 test776 test777 test778 test779 test78 test780 test781 test782 test783 test784 test785 test786 test787 test788 test789 test79 test790 test791 test792 test793 test794 test795 test796 test797 test798 test799 test8 test80 test800 test801 test802 test803 test804 test805 test806 test807 test808 test809 test81 test810 test811 test812 test813 test814 test815 test816 test817 test818 test819 test82 test820 test821 test822 test823 test824 test825 test826 test827 test828 test829 test83 test830 test831 test832 test833 test834 test835 test836 test837 test838 test839 test84 test840 test841 test842 test843 test844 test845 test846 test847 test848 test849 test85 test850 test851 test852 test853 test854 test855 test856 test857 test858 test859 test86 test860 test861 test862 test863 test864 test865 test866 test867 test868 test869 test87 test870 test871 test872 test873 test874 test875 test876 test877 test878 test879 test88 test880 test881 test882 test883 test884 test885 test886 test887 test888 test889 test89 test890 test891 test892 test893 test894 test895 test896 test897 test898 test899 test9 test90 test900 test901 test902 test903 test904 test905 test906 test907 test908 test909 test91 test910 test911 test912 test913 test914 test915 test916 test917 test918 test919 test92 test920 test921 test922 test923 test924 test925 test926 test927 test928 test929 test93 test930 test931 test932 test933 test934 test935 test936 test937 test938 test939 test94 test940 test941 test942 test943 test944 test945 test946 test947 test948 test949 test95 test950 test951 test952 test953 test954 test955 test956 test957 test958 test959 test96 test960 test961 test962 test963 test964 test965 test966 test967 test968 test969 test97 test970 test971 test972 test973 test974 test975 test976 test977 test978 test979 test98 test980 test981 test982 test983 test984 test985 test986 test987 test988 test989 test99 test990 test991 test992 test993 test994 test995 test996 test997 test998 test999
http
testenv
mod_curltest .gitignore mod_curltest.c
__init__.py caddy.py certs.py client.py curl.py dante.py dnsd.py env.py httpd.py nghttpx.py ports.py sshd.py vsftpd.py ws_echo_server.py
.gitignore CMakeLists.txt Makefile.am config.ini.in conftest.py requirements.txt scorecard.py test_01_basic.py test_02_download.py test_03_goaway.py test_04_stuttered.py test_05_errors.py test_06_eyeballs.py test_07_upload.py test_08_caddy.py test_09_push.py test_10_proxy.py test_11_unix.py test_12_reuse.py test_13_proxy_auth.py test_14_auth.py test_15_tracing.py test_16_info.py test_17_ssl_use.py test_18_methods.py test_19_shutdown.py test_20_websockets.py test_21_resolve.py test_22_httpsrr.py test_30_vsftpd.py test_31_vsftpds.py test_32_ftps_vsftpd.py test_40_socks.py test_50_scp.py test_51_sftp.py
libtest .gitignore CMakeLists.txt Makefile.am Makefile.inc cli_ftp_upload.c cli_h2_pausing.c cli_h2_serverpush.c cli_h2_upgrade_extreme.c cli_hx_download.c cli_hx_upload.c cli_tls_session_reuse.c cli_upload_pausing.c cli_ws_data.c cli_ws_pingpong.c first.c first.h lib1156.c lib1301.c lib1308.c lib1485.c lib1500.c lib1501.c lib1502.c lib1506.c lib1507.c lib1508.c lib1509.c lib1510.c lib1511.c lib1512.c lib1513.c lib1514.c lib1515.c lib1517.c lib1518.c lib1520.c lib1522.c lib1523.c lib1525.c lib1526.c lib1527.c lib1528.c lib1529.c lib1530.c lib1531.c lib1532.c lib1533.c lib1534.c lib1535.c lib1536.c lib1537.c lib1538.c lib1540.c lib1541.c lib1542.c lib1545.c lib1549.c lib1550.c lib1551.c lib1552.c lib1553.c lib1554.c lib1555.c lib1556.c lib1557.c lib1558.c lib1559.c lib1560.c lib1564.c lib1565.c lib1567.c lib1568.c lib1569.c lib1571.c lib1576.c lib1582.c lib1587.c lib1588.c lib1589.c lib1591.c lib1592.c lib1593.c lib1594.c lib1597.c lib1598.c lib1599.c lib1662.c lib1900.c lib1901.c lib1902.c lib1903.c lib1905.c lib1906.c lib1907.c lib1908.c lib1910.c lib1911.c lib1912.c lib1913.c lib1915.c lib1916.c lib1918.c lib1919.c lib1920.c lib1921.c lib1933.c lib1934.c lib1935.c lib1936.c lib1937.c lib1938.c lib1939.c lib1940.c lib1945.c lib1947.c lib1948.c lib1955.c lib1956.c lib1957.c lib1958.c lib1959.c lib1960.c lib1964.c lib1965.c lib1970.c lib1971.c lib1972.c lib1973.c lib1974.c lib1975.c lib1977.c lib1978.c lib2023.c lib2032.c lib2082.c lib2301.c lib2302.c lib2304.c lib2306.c lib2308.c lib2309.c lib2402.c lib2404.c lib2405.c lib2502.c lib2504.c lib2505.c lib2506.c lib2700.c lib3010.c lib3025.c lib3026.c lib3027.c lib3033.c lib3034.c lib3100.c lib3101.c lib3102.c lib3103.c lib3104.c lib3105.c lib3207.c lib3208.c lib500.c lib501.c lib502.c lib503.c lib504.c lib505.c lib506.c lib507.c lib508.c lib509.c lib510.c lib511.c lib512.c lib513.c lib514.c lib515.c lib516.c lib517.c lib518.c lib519.c lib520.c lib521.c lib523.c lib524.c lib525.c lib526.c lib530.c lib533.c lib536.c lib537.c lib539.c lib540.c lib541.c lib542.c lib543.c lib544.c lib547.c lib549.c lib552.c lib553.c lib554.c lib555.c lib556.c lib557.c lib558.c lib559.c lib560.c lib562.c lib564.c lib566.c lib567.c lib568.c lib569.c lib570.c lib571.c lib572.c lib573.c lib574.c lib575.c lib576.c lib578.c lib579.c lib582.c lib583.c lib586.c lib589.c lib590.c lib591.c lib597.c lib598.c lib599.c lib643.c lib650.c lib651.c lib652.c lib653.c lib654.c lib655.c lib658.c lib659.c lib661.c lib666.c lib667.c lib668.c lib670.c lib674.c lib676.c lib677.c lib678.c lib694.c lib695.c lib751.c lib753.c lib757.c lib758.c lib766.c memptr.c mk-lib1521.pl test1013.pl test1022.pl test307.pl test610.pl test613.pl testtrace.c testtrace.h testutil.c testutil.h unitcheck.h
server .checksrc .gitignore CMakeLists.txt Makefile.am Makefile.inc dnsd.c first.c first.h getpart.c mqttd.c resolve.c rtspd.c sockfilt.c socksd.c sws.c tftpd.c util.c
tunit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md tool1394.c tool1604.c tool1621.c tool1622.c tool1623.c tool1720.c
unit .gitignore CMakeLists.txt Makefile.am Makefile.inc README.md unit1300.c unit1302.c unit1303.c unit1304.c unit1305.c unit1307.c unit1309.c unit1323.c unit1330.c unit1395.c unit1396.c unit1397.c unit1398.c unit1399.c unit1600.c unit1601.c unit1602.c unit1603.c unit1605.c unit1606.c unit1607.c unit1608.c unit1609.c unit1610.c unit1611.c unit1612.c unit1614.c unit1615.c unit1616.c unit1620.c unit1625.c unit1626.c unit1627.c unit1636.c unit1650.c unit1651.c unit1652.c unit1653.c unit1654.c unit1655.c unit1656.c unit1657.c unit1658.c unit1660.c unit1661.c unit1663.c unit1664.c unit1666.c unit1667.c unit1668.c unit1669.c unit1674.c unit1675.c unit1676.c unit1979.c unit1980.c unit2600.c unit2601.c unit2602.c unit2603.c unit2604.c unit2605.c unit3200.c unit3205.c unit3211.c unit3212.c unit3213.c unit3214.c unit3216.c unit3219.c unit3300.c unit3301.c unit3302.c
.gitignore CMakeLists.txt Makefile.am allversions.pm appveyor.pm azure.pm config.in configurehelp.pm.in devtest.pl dictserver.py directories.pm ech_combos.py ech_tests.sh ftpserver.pl getpart.pm globalconfig.pm http-server.pl http2-server.pl http3-server.pl memanalyze.pl memanalyzer.pm negtelnetserver.py nghttpx.conf pathhelp.pm processhelp.pm requirements.txt rtspserver.pl runner.pm runtests.pl secureserver.pl serverhelp.pm servers.pm smbserver.py sshhelp.pm sshserver.pl test1119.pl test1135.pl test1139.pl test1140.pl test1165.pl test1167.pl test1173.pl test1175.pl test1177.pl test1222.pl test1275.pl test1276.pl test1477.pl test1486.pl test1488.pl test1544.pl test1707.pl test745.pl test971.pl testcurl.pl testutil.pm tftpserver.pl util.py valgrind.pm valgrind.supp
.clang-tidy.yml .dir-locals.el .editorconfig .git-blame-ignore-revs .gitattributes .gitignore .mailmap CHANGES.md CMakeLists.txt COPYING Dockerfile GIT-INFO.md Makefile.am README README.md RELEASE-NOTES REUSE.toml SECURITY.md acinclude.m4 appveyor.sh appveyor.yml configure.ac curl-config.in libcurl.pc.in renovate.json
examples .env config.ini crypto_test.lua env_test.lua fs_example.lua http_server.lua https_test.lua ini_example.lua json.lua log.lua path_fs_example.lua process_example.lua request_download.lua request_test.lua run_all.lua sqlite_example.lua sqlite_http_template.lua stash_test.lua template_test.lua timer.lua websocket.lua
iniparser
.github
ISSUE_TEMPLATE config.yml
workflows disable-pull-requests.yml trigger-gitlab-ci.yml
cmake JoinPaths.cmake config.cmake.in pc.in
example iniexample.c iniwrite.c parse.c twisted-errors.ini twisted-genhuge.py twisted-ofkey.ini twisted-ofval.ini twisted.ini
src dictionary.c dictionary.h iniparser.c iniparser.h
test
ressources
bad_ini ends_well.ini twisted-errors.ini twisted-ofkey.ini twisted-ofval.ini
good_ini empty.ini spaced.ini spaced2.ini twisted.ini
gruezi.ini old.ini quotes.ini utf8.ini
CMakeLists.txt test_dictionary.c test_iniparser.c unity-config.yml unity_config.h
.cmake-format.py .gitignore .gitlab-ci.yml .gitmessage .travis.yml AUTHORS CMakeLists.txt FAQ-en.md FAQ-zhcn.md INSTALL LICENSE README.md compile_commands.json
jinjac
example CMakeLists.txt example.c
jinjac_test_app CMakeLists.txt jinjac_test_app.c
libjinjac
include jinjac.h
src CMakeLists.txt ast.c ast.h block_statement.c block_statement.h buffer.c buffer.h buildin.c buildin.h common.h convert.c convert.h flex_decl.h jfunction.c jfunction.h jinja_expression.l jinja_expression.y jinjac_parse.c jinjac_parse.h jinjac_stream.c jinjac_stream.h jlist.c jlist.h jobject.c jobject.h parameter.c parameter.h str_obj.c str_obj.h trace.c trace.h
CMakeLists.txt
test .gitignore CMakeLists.txt autotest.rb test_01.expected test_01.jinja test_01b.expected test_01b.jinja test_01c.expected test_01c.jinja test_01d.expected test_01d.jinja test_02.expected test_02.jinja test_03.expected test_03.jinja test_04.expected test_04.jinja test_05.expected test_05.jinja test_06.expected test_06.jinja test_07.expected test_07.jinja test_08.expected test_08.jinja test_08b.expected test_08b.jinja test_09.expected test_09.jinja test_10.expected test_10.jinja test_11.expected test_11.jinja test_12.expected test_12.jinja test_13.expected test_13.jinja test_14.expected test_14.jinja test_15.expected test_15.jinja test_16.expected test_16.jinja test_17.expected test_17.jinja test_18.expected test_18.jinja test_18b.expected test_18b.jinja test_18c.expected test_18c.jinja test_19.expected test_19.jinja test_19b.expected test_19b.jinja test_19c.expected test_19c.jinja test_19d.expected test_19d.jinja test_19e.expected test_19e.jinja test_19f.expected test_19f.jinja test_20.expected test_20.jinja test_21.expected test_21.jinja test_22.expected test_22.jinja test_22a.expected test_22a.jinja test_22b.expected test_22b.jinja test_23.expected test_23.jinja test_24.expected test_24.jinja
.gitignore CMakeLists.txt LICENSE.txt README.md build_coverage.sh build_debug.sh build_release.sh cppcheck_analysis.sh
libev Changes LICENSE Makefile Makefile.am Makefile.in README Symbols.ev Symbols.event aclocal.m4 autogen.sh compile config.guess config.h config.h.in config.status config.sub configure configure.ac depcomp ev++.h ev.3 ev.c ev.h ev.pod ev_epoll.c ev_kqueue.c ev_poll.c ev_port.c ev_select.c ev_vars.h ev_win32.c ev_wrap.h event.c event.h install-sh libev.m4 libtool ltmain.sh missing mkinstalldirs stamp-h1
luajit
doc
img contact.png
bluequad-print.css bluequad.css contact.html ext_buffer.html ext_c_api.html ext_ffi.html ext_ffi_api.html ext_ffi_semantics.html ext_ffi_tutorial.html ext_jit.html ext_profiler.html extensions.html install.html luajit.html running.html
dynasm dasm_arm.h dasm_arm.lua dasm_arm64.h dasm_arm64.lua dasm_mips.h dasm_mips.lua dasm_mips64.lua dasm_ppc.h dasm_ppc.lua dasm_proto.h dasm_x64.lua dasm_x86.h dasm_x86.lua dynasm.lua
etc luajit.1 luajit.pc
src
host .gitignore README buildvm.c buildvm.h buildvm_asm.c buildvm_fold.c buildvm_lib.c buildvm_libbc.h buildvm_peobj.c genlibbc.lua genminilua.lua genversion.lua minilua.c
jit .gitignore bc.lua bcsave.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_mips.lua dis_mips64.lua dis_mips64el.lua dis_mips64r6.lua dis_mips64r6el.lua dis_mipsel.lua dis_ppc.lua dis_x64.lua dis_x86.lua dump.lua p.lua v.lua zone.lua
.gitignore Makefile Makefile.dep lauxlib.h lib_aux.c lib_base.c lib_bit.c lib_buffer.c lib_debug.c lib_ffi.c lib_init.c lib_io.c lib_jit.c lib_math.c lib_os.c lib_package.c lib_string.c lib_table.c lj_alloc.c lj_alloc.h lj_api.c lj_arch.h lj_asm.c lj_asm.h lj_asm_arm.h lj_asm_arm64.h lj_asm_mips.h lj_asm_ppc.h lj_asm_x86.h lj_assert.c lj_bc.c lj_bc.h lj_bcdump.h lj_bcread.c lj_bcwrite.c lj_buf.c lj_buf.h lj_carith.c lj_carith.h lj_ccall.c lj_ccall.h lj_ccallback.c lj_ccallback.h lj_cconv.c lj_cconv.h lj_cdata.c lj_cdata.h lj_char.c lj_char.h lj_clib.c lj_clib.h lj_cparse.c lj_cparse.h lj_crecord.c lj_crecord.h lj_ctype.c lj_ctype.h lj_debug.c lj_debug.h lj_def.h lj_dispatch.c lj_dispatch.h lj_emit_arm.h lj_emit_arm64.h lj_emit_mips.h lj_emit_ppc.h lj_emit_x86.h lj_err.c lj_err.h lj_errmsg.h lj_ff.h lj_ffrecord.c lj_ffrecord.h lj_frame.h lj_func.c lj_func.h lj_gc.c lj_gc.h lj_gdbjit.c lj_gdbjit.h lj_ir.c lj_ir.h lj_ircall.h lj_iropt.h lj_jit.h lj_lex.c lj_lex.h lj_lib.c lj_lib.h lj_load.c lj_mcode.c lj_mcode.h lj_meta.c lj_meta.h lj_obj.c lj_obj.h lj_opt_dce.c lj_opt_fold.c lj_opt_loop.c lj_opt_mem.c lj_opt_narrow.c lj_opt_sink.c lj_opt_split.c lj_parse.c lj_parse.h lj_prng.c lj_prng.h lj_profile.c lj_profile.h lj_record.c lj_record.h lj_serialize.c lj_serialize.h lj_snap.c lj_snap.h lj_state.c lj_state.h lj_str.c lj_str.h lj_strfmt.c lj_strfmt.h lj_strfmt_num.c lj_strscan.c lj_strscan.h lj_tab.c lj_tab.h lj_target.h lj_target_arm.h lj_target_arm64.h lj_target_mips.h lj_target_ppc.h lj_target_x86.h lj_trace.c lj_trace.h lj_traceerr.h lj_udata.c lj_udata.h lj_vm.h lj_vmevent.c lj_vmevent.h lj_vmmath.c ljamalg.c lua.h lua.hpp luaconf.h luajit.c luajit_rolling.h lualib.h msvcbuild.bat nxbuild.bat ps4build.bat ps5build.bat psvitabuild.bat vm_arm.dasc vm_arm64.dasc vm_mips.dasc vm_mips64.dasc vm_ppc.dasc vm_x64.dasc vm_x86.dasc xb1build.bat xedkbuild.bat
.gitattributes .gitignore .relver COPYRIGHT Makefile README
sqlite shell.c sqlite3.c sqlite3.h sqlite3ext.h
wolfssl
.github
ISSUE_TEMPLATE bug_report.yaml other.yaml
actions
install-apt-deps action.yml
scripts
zephyr-4.x external_libc.conf zephyr-test.sh
openssl-ech.sh tls-anvil-test.sh
workflows
disabled haproxy.yml hitch.yml hostap.yml
hostap-files
configs
07c9f183ea744ac04585fb6dd10220c75a5e2e74 hostapd.config tests wpa_supplicant.config
b607d2723e927a3446d89aed813f1aa6068186bb hostapd.config tests wpa_supplicant.config
hostap_2_10 extra.patch hostapd.config tests wpa_supplicant.config
Makefile README dbus-wpa_supplicant.conf
ada.yml arduino.yml async-examples.yml async.yml atecc608-sim.yml bind.yml cmake-autoconf.yml cmake.yml codespell.yml coverity-scan-fixes.yml cryptocb-only.yml curl.yml cyrus-sasl.yml disable-pk-algs.yml docker-Espressif.yml docker-OpenWrt.yml emnet-nonblock.yml fil-c.yml freertos-mem-track.yml gencertbuf.yml grpc.yml haproxy.yml hostap-vm.yml intelasm-c-fallback.yml ipmitool.yml jwt-cpp.yml krb5.yml libspdm.yml libssh2.yml libvncserver.yml linuxkm.yml macos-apple-native-cert-validation.yml mbedtls.sh mbedtls.yml membrowse-comment.yml membrowse-onboard.yml membrowse-report.yml memcached.sh memcached.yml mono.yml mosquitto.yml msmtp.yml msys2.yml multi-arch.yml multi-compiler.yml net-snmp.yml nginx.yml no-malloc.yml no-tls.yml nss.sh nss.yml ntp.yml ocsp.yml openldap.yml openssh.yml openssl-ech.yml opensslcoexist.yml openvpn.yml os-check.yml packaging.yml pam-ipmi.yml pq-all.yml pr-commit-check.yml psk.yml puf.yml python.yml rng-tools.yml rust-wrapper.yml se050-sim.yml smallStackSize.yml socat.yml softhsm.yml sssd.yml stm32-sim.yml stsafe-a120-sim.yml stunnel.yml symbol-prefixes.yml threadx.yml tls-anvil.yml trackmemory.yml watcomc.yml win-csharp-test.yml wolfCrypt-Wconversion.yml wolfboot-integration.yml wolfsm.yml xcode.yml zephyr-4.x.yml zephyr.yml
PULL_REQUEST_TEMPLATE.md SECURITY.md membrowse-targets.json
Docker
OpenWrt Dockerfile README.md runTests.sh
packaging
debian Dockerfile
fedora Dockerfile
wolfCLU Dockerfile README.md
yocto Dockerfile buildAndPush.sh
Dockerfile Dockerfile.cross-compiler README.md buildAndPush.sh include.am run.sh
IDE
ARDUINO
sketches
wolfssl_client README.md
wolfssl_server README.md
wolfssl_version README.md
README.md
Arduino_README_prepend.md README.md include.am keywords.txt library.properties.template wolfssl-arduino.cpp wolfssl-arduino.sh wolfssl.h
AURIX Cpu0_Main.c README.md include.am user_settings.h wolf_main.c
Android Android.bp README.md include.am user_settings.h
CRYPTOCELL README.md include.am main.c user_settings.h
CSBENCH include.am user_settings.h
ECLIPSE
DEOS
deos_wolfssl .options
README.md deos_malloc.c include.am tls_wolfssl.c tls_wolfssl.h user_settings.h
MICRIUM README.md client_wolfssl.c client_wolfssl.h include.am server_wolfssl.c server_wolfssl.h user_settings.h wolfsslRunTests.c
RTTHREAD README.md include.am user_settings.h wolfssl_test.c
SIFIVE README.md include.am
Espressif
ESP-IDF
examples
template
VisualGDB wolfssl_template_IDF_v5.1_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_benchmark
VisualGDB wolfssl_benchmark_IDF_v4.4_ESP32.sln wolfssl_benchmark_IDF_v4.4_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32.sln wolfssl_benchmark_IDF_v5_ESP32.vgdbproj wolfssl_benchmark_IDF_v5_ESP32C3.sln wolfssl_benchmark_IDF_v5_ESP32C3.vgdbproj wolfssl_benchmark_IDF_v5_ESP32S3.sln wolfssl_benchmark_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp8266
wolfssl_client
VisualGDB README.md wolfssl_client_IDF_v5_ESP32.sln wolfssl_client_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include client-tls.h main.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild client-tls.c component.mk main.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_client_ESP8266.vgdbproj
wolfssl_server
VisualGDB README.md wolfssl_server_IDF_v5_ESP32.sln wolfssl_server_IDF_v5_ESP32.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h server-tls.h time_helper.h wifi_connect.h
CMakeLists.txt Kconfig.projbuild component.mk main.c server-tls.c time_helper.c wifi_connect.c
CMakeLists.txt Makefile README.md README_server_sm.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32c2 sdkconfig.defaults.esp8266 wolfssl_server_ESP8266.vgdbproj
wolfssl_test
VisualGDB wolfssl_test-IDF_v5_ESP32.sln wolfssl_test-IDF_v5_ESP32.vgdbproj wolfssl_test-IDF_v5_ESP32C3.sln wolfssl_test-IDF_v5_ESP32C3.vgdbproj wolfssl_test-IDF_v5_ESP32C6.sln wolfssl_test-IDF_v5_ESP32C6.vgdbproj wolfssl_test_IDF_v5_ESP32S3.sln wolfssl_test_IDF_v5_ESP32S3.vgdbproj
components
wolfssl
include user_settings.h
CMakeLists.txt Kconfig README.md component.mk
main
include main.h
CMakeLists.txt Kconfig.projbuild component.mk main.c
CMakeLists.txt Makefile README.md partitions_singleapp_large.csv sdkconfig.defaults sdkconfig.defaults.esp32 sdkconfig.defaults.esp32c3 sdkconfig.defaults.esp32c6 sdkconfig.defaults.esp32h2 sdkconfig.defaults.esp32s2 sdkconfig.defaults.esp32s3 sdkconfig.defaults.esp8266 testAll.sh testMonitor.sh wolfssl_test_ESP8266.sln wolfssl_test_ESP8266.vgdbproj
wolfssl_test_idf
VisualGDB VisualGDB_wolfssl_test_idf.sln VisualGDB_wolfssl_test_idf.vgdbproj
main CMakeLists.txt Kconfig.projbuild component.mk main.c main_wip.c.ex time_helper.c time_helper.h
CMakeLists.txt Kconfig.projbuild README.md component.mk sdkconfig.defaults
README.md
libs CMakeLists.txt README.md component.mk tigard.cfg
test CMakeLists.txt README.md component.mk test_wolfssl.c
README.md README_32se.md UPDATE.md compileAllExamples.sh dummy_config_h dummy_test_paths.h setup.sh setup_win.bat user_settings.h
README.md include.am
GCC-ARM
Header user_settings.h
Source armtarget.c benchmark_main.c test_main.c tls_client.c tls_server.c wolf_main.c
Makefile Makefile.bench Makefile.client Makefile.common Makefile.server Makefile.static Makefile.test README.md include.am linker.ld linker_fips.ld
Gaisler-BCC README.md include.am
HEXAGON
DSP Makefile wolfssl_dsp.idl
Makefile README.md build.sh ecc-verify-benchmark.c ecc-verify.c include.am user_settings.h
HEXIWEAR
wolfSSL_HW .cwGeneratedFileSetLog user_settings.h
IAR-EWARM
Projects
benchmark benchmark-main.c current_time.c wolfCrypt-benchmark.ewd wolfCrypt-benchmark.ewp
common minimum-startup.c wolfssl.icf
lib wolfSSL-Lib.ewd wolfSSL-Lib.ewp
test test-main.c wolfCrypt-test.ewd wolfCrypt-test.ewp
user_settings.h wolfssl.eww
embOS
SAMV71_XULT
embOS_SAMV71_XULT_Linker_Script samv71q21_wolfssl.icf
embOS_SAMV71_XULT_user_settings user_settings.h user_settings_simple_example.h user_settings_verbose_example.h
embOS_wolfcrypt_benchmark_SAMV71_XULT
Application runBenchmarks.c
README_wolfcrypt_benchmark wolfcrypt_benchmark.ewd wolfcrypt_benchmark.ewp
embOS_wolfcrypt_lib_SAMV71_XULT README_wolfcrypt_lib wolfcrypt_lib.ewd wolfcrypt_lib.ewp
embOS_wolfcrypt_test_SAMV71_XULT
Application runWolfcryptTests.c
README_wolfcrypt_test wolfcrypt_test.ewd wolfcrypt_test.ewp
README_SAMV71
custom_port
custom_port_Linker_Script samv71q21_wolfssl.icf
custom_port_user_settings user_settings.h
wolfcrypt_benchmark_custom_port
Application runBenchmarks.c
wolfcrypt_test_custom_port
Application runWolfcryptTests.c
README_custom_port
extract_trial_here README_extract_trial_here
README
.gitignore README
IAR-MSP430 Makefile README.md include.am main.c user_settings.h
INTIME-RTOS Makefile README.md include.am libwolfssl.c libwolfssl.vcxproj user_settings.h wolfExamples.c wolfExamples.h wolfExamples.sln wolfExamples.vcxproj wolfssl-lib.sln wolfssl-lib.vcxproj
Infineon README.md include.am user_settings.h
KDS
config user_settings.h
include.am
LINUX-SGX README.md build.sh clean.sh include.am sgx_t_static.mk
LPCXPRESSO
lib_wolfssl lpc_18xx_port.c user_settings.h
wolf_example
src lpc_18xx_startup.c wolfssl_example.c
readme.txt
README.md
M68K
benchmark Makefile main.cpp
testwolfcrypt Makefile main.cpp
Makefile README.md include.am user_settings.h
MCUEXPRESSO
RT1170 fsl_caam_c.patch fsl_caam_h.patch user_settings.h
benchmark
source run_benchmark.c
wolfssl liblinks.xml
README.md include.am user_settings.h wolfcrypt_test.c
MDK-ARM
LPC43xx time-LCP43xx.c
MDK-ARM
wolfSSL Retarget.c cert_data.c cert_data.h config-BARE-METAL.h config-FS.h config-RTX-TCP-FS.h config-WOLFLIB.h main.c shell.c time-CortexM3-4.c time-dummy.c wolfssl_MDK_ARM.c wolfssl_MDK_ARM.h
STM32F2xx_StdPeriph_Lib time-STM32F2xx.c
MDK5-ARM
Conf user_settings.h
Inc wolfssl_MDK_ARM.h
Projects
CryptBenchmark Abstract.txt CryptBenchmark.sct CryptBenchmark.uvoptx CryptBenchmark.uvprojx main.c
CryptTest Abstract.txt CryptTest.sct CryptTest.uvoptx CryptTest.uvprojx main.c
EchoClient Abstract.txt EchoClient.uvoptx EchoClient.uvprojx main.c wolfssl-link.sct
EchoServer Abstract.txt EchoServer.uvoptx EchoServer.uvprojx main.c wolfssl-link.sct
SimpleClient Abstract.txt SimpleClient.uvoptx SimpleClient.uvprojx main.c wolfssl-link.sct
SimpleServer Abstract.txt SimpleServer.uvoptx SimpleServer.uvprojx main.c wolfssl-link.sct
wolfSSL-Full Abstract.txt main.c shell.c time-CortexM3-4.c wolfsslFull.uvoptx wolfsslFull.uvprojx
wolfSSL-Lib Abstract.txt wolfSSL-Lib.uvoptx wolfSSL-Lib.uvprojx
Src ssl-dummy.c
README.md include.am
MPLABX16
wolfcrypt_test.X
nbproject
private configurations.xml private.xml
configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
README.md include.am main.c user_settings.h
MQX Makefile README-jp.md README.md client-tls.c include.am server-tls.c user_config.h user_settings.h
MSVS-2019-AZSPHERE
client client.c client.h
server server.c server.h
shared util.h
wolfssl_new_azsphere
HardwareDefinitions
avnet_mt3620_sk
inc
hw template_appliance.h
template_appliance.json
mt3620_rdb
inc
hw template_appliance.h
template_appliance.json
seeed_mt3620_mdb
inc
hw template_appliance.h
template_appliance.json
.gitignore CMakeLists.txt CMakeSettings.json app_manifest.json applibs_versions.h launch.vs.json main.c
README.md include.am user_settings.h
MYSQL CMakeLists_wolfCrypt.txt CMakeLists_wolfSSL.txt do.sh
NDS README.md
NETOS Makefile.wolfcrypt.inc README.md include.am user_settings.h user_settings.h-cert2425 user_settings.h-cert3389 wolfssl_netos_custom.c
OPENSTM32 README.md
PlatformIO
examples
wolfssl_benchmark
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_benchmark.code-workspace
wolfssl_test
include README main.h
lib README
src CMakeLists.txt main.c
test README
CMakeLists.txt README.md platformio.ini sdkconfig.defaults wolfssl_test.code-workspace
README.md wolfssl_platformio.code-workspace
README.md include.am
QNX
CAAM-DRIVER Makefile
example-client Makefile client-tls.c
example-cmac Makefile cmac-test.c
example-server Makefile server-tls.c
testwolfcrypt Makefile
wolfssl Makefile user_settings.h
README.md include.am
RISCV
SIFIVE-HIFIVE1 Makefile README.md include.am main.c user_settings.h
SIFIVE-UNLEASHED README.md include.am
include.am
ROWLEY-CROSSWORKS-ARM Kinetis_FlashPlacement.xml README.md arm_startup.c benchmark_main.c hw.h include.am kinetis_hw.c retarget.c test_main.c user_settings.h wolfssl.hzp wolfssl_ltc.hzp
Renesas
cs+
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
t4_demo README_en.txt README_jp.txt t4_demo.mtpj wolf_client.c wolf_demo.h wolf_main.c wolf_server.c
test test.mtpj test_main.c
wolfssl_lib wolfssl_lib.mtpj
README include.am
e2studio
DK-S7G2
benchmark-template
src app_entry.c
example_server-template
src app_entry.c
wolfcrypttest-template
src app_entry.c
wolfssl-template-project configuration.xml
README.md include.am user_settings.h
Projects
common strings.h unistd.h user_settings.h wolfssl_dummy.c
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
tools generate_rsa_keypair.sh genhexbuf.pl rsa_pss_sign.sh
wolfssl
src .gitkeep
wolfcrypt
src .gitkeep
README include.am
RA6M3
benchmark-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
client-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
common
ra6m3g README.md
src freertos_tcp_port.c
user_settings.h util.h
server-wolfssl
common
src .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl_thread_entry.h
test-wolfcrypt
common .gitkeep
script .gitkeep
src wolfssl_thread_entry.c
wolfssl
src .gitkeep
wolfcrypt .gitkeep
README.md README_APRA6M_en.md README_APRA6M_jp.md include.am
RA6M3G README.md
RA6M4
common user_settings.h wolfssl_demo.h
test
key_data key_data.h key_data_sce.c
src
SEGGER_RTT myprint.c
common .gitignore
test_main.c wolf_client.c wolfssl_sce_unit_test.c
test_RA6M4Debug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
README.md include.am
RX65N
GR-ROSE
common strings.h unistd.h user_settings.h wolfssl_dummy.c
smc smc.scfg
test
src key_data.c key_data.h test_main.c wolf_client.c wolf_server.c wolfssl_demo.h
test.rcpc test_HardwareDebug.launch
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
README_EN.md README_JP.md include.am
RSK
resource section.esi
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h
InstructionManualForExample_RSK+RX65N-2MB_EN.pdf InstructionManualForExample_RSK+RX65N-2MB_JP.pdf README_EN.md README_JP.md include.am
RX72N
EnvisionKit
Simple
common sectioninfo.esi wolfssl_dummy.c
test
src
client simple_tcp_client.c simple_tls_tsip_client.c
server simple_tcp_server.c simple_tls_server.c
test_main.c wolfssl_simple_demo.h
test.rcpc test.scfg test_HardwareDebug.launch
wolfssl wolfssl.rcpc
README_EN.md README_JP.md
resource section.esi
tools
example_keys generate_SignedCA.sh rsa_private.pem rsa_public.pem
README.md
wolfssl wolfssl.rcpc
wolfssl_demo key_data.c key_data.h user_settings.h wolfssl_demo.c wolfssl_demo.h wolfssl_tsip_unit_test.c
InstructionManualForExample_RX72N_EnvisonKit_EN.pdf InstructionManualForExample_RX72N_EnvisonKit_JP.pdf README_EN.md README_JP.md include.am
RZN2L
common user_settings.h wolfssl_demo.h
test
src
serial_io app_print.c
test wolf_client.c wolf_server.c wolfssl_rsip_unit_test.c
wolfCrypt .gitignore
wolfSSL .gitignore
local_system_init.c rzn2l_tst_thread_entry.c wolfssl_dummy.c
README.md include.am
SK-S7G2
common user_settings.h
wolfssl_lib configuration.xml
.gitignore README.md include.am
STARCORE README.txt include.am starcore_test.c user_settings.h
STM32Cube README.md STM32_Benchmarks.md default_conf.ftl include.am main.c wolfssl_example.c wolfssl_example.h
SimplicityStudio README.md include.am test_wolf.c user_settings.h
TRUESTUDIO
wolfssl user_settings.h
README include.am
VS-ARM README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VS-AZURE-SPHERE
client app_manifest.json client.c client.h client.vcxproj
server app_manifest.json server.c server.h server.vcxproj
shared util.h
wolfcrypt_test app_manifest.json wolfcrypt_test.vcxproj
README.md include.am user_settings.h wolfssl.sln wolfssl.vcxproj
VisualDSP include.am user_settings.h wolf_tasks.c
WICED-STUDIO README include.am user_settings.h
WIN README.txt include.am test.vcxproj user_settings.h user_settings_dtls.h wolfssl-fips.sln wolfssl-fips.vcxproj
WIN-SGX ReadMe.txt include.am wolfSSL_SGX.edl wolfSSL_SGX.sln wolfSSL_SGX.vcxproj
WIN-SRTP-KDF-140-3 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WIN10 README.txt include.am resource.h test.vcxproj user_settings.h wolfssl-fips.rc wolfssl-fips.sln wolfssl-fips.vcxproj
WINCE README.md include.am user_settings.h user_settings.h.140-2-deprecated
WORKBENCH README.md include.am
XCODE
Benchmark
wolfBench
Assets.xcassets
AppIcon.appiconset Contents.json
Base.lproj LaunchScreen.storyboard Main.storyboard
AppDelegate.h AppDelegate.m Info.plist ViewController.h ViewController.m main.m
wolfBench.xcodeproj project.pbxproj
include.am
wolfssl-FIPS.xcodeproj project.pbxproj
wolfssl.xcodeproj project.pbxproj
wolfssl_testsuite.xcodeproj project.pbxproj
README.md build-for-i386.sh include.am user_settings.h
XCODE-FIPSv2
macOS-C++
Intel user_settings.h
M1 user_settings.h
include.am user_settings.h
XCODE-FIPSv5 README include.am user_settings.h
XCODE-FIPSv6 README include.am user_settings.h
XilinxSDK
2018_2 lscript.ld
2019_2
wolfCrypt_example
src lscript.ld
wolfCrypt_example_system wolfCrypt_example_system.sprj
2022_1
wolfCrypt_FreeRTOS_example wolfCrypt_FreeRTOS_example.prj
wolfCrypt_FreeRTOS_example_system wolfCrypt_FreeRTOS_example_system.sprj
wolfCrypt_example wolfCrypt_example.prj
wolfCrypt_example_system wolfCrypt_example_system.sprj
.gitignore
README.md bench.sh combine.sh eclipse_formatter_profile.xml graph.sh include.am user_settings.h wolfssl_example.c
apple-universal
wolfssl-multiplatform
wolfssl-multiplatform
Assets.xcassets
AccentColor.colorset Contents.json
AppIcon.appiconset Contents.json
Contents.json
ContentView.swift simple_client_example.c simple_client_example.h wolfssl-multiplatform-Bridging-Header.h wolfssl_multiplatform.entitlements wolfssl_multiplatformApp.swift wolfssl_test_driver.c wolfssl_test_driver.h
wolfssl-multiplatform.xcodeproj project.pbxproj
.gitignore README.md build-wolfssl-framework.sh include.am
iotsafe Makefile README.md ca-cert.c devices.c devices.h include.am main.c memory-tls.c startup.c target.ld user_settings.h
iotsafe-raspberrypi Makefile README.md client-tls13.c include.am main.c
mynewt README.md apps.wolfcrypttest.pkg.yml crypto.wolfssl.pkg.yml crypto.wolfssl.syscfg.yml include.am setup.sh
zephyr README.md include.am
include.am
RTOS
nuttx
wolfssl .gitignore Kconfig Make.defs Makefile README.md setup-wolfssl.sh user_settings.h
include.am
bsdkm Makefile README.md bsdkm_wc_port.h include.am wolfkmod.c wolfkmod_aes.c x86_vecreg.c
certs
1024 ca-cert.der ca-cert.pem ca-key.der ca-key.pem client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der dh1024.der dh1024.pem dsa-pub-1024.pem dsa1024.der dsa1024.pem include.am rsa1024.der server-cert.der server-cert.pem server-key.der server-key.pem
3072 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
4096 client-cert.der client-cert.pem client-key.der client-key.pem client-keyPub.der include.am
acert
rsa_pss acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem
acert.pem acert_ietf.pem acert_ietf_pubkey.pem acert_pubkey.pem include.am
aia ca-issuers-cert.pem multi-aia-cert.pem overflow-aia-cert.pem
crl
extra-crls ca-int-cert-revoked.pem claim-root.pem crl_critical_entry.pem crlnum_57oct.pem crlnum_64oct.pem general-server-crl.pem large_crlnum.pem large_crlnum2.pem
hash_der 0fdb2da4.r0
hash_pem 0fdb2da4.r0
bad_time_fmt.pem ca-int-ecc.pem ca-int.pem ca-int2-ecc.pem ca-int2.pem caEcc384Crl.pem caEccCrl.der caEccCrl.pem cliCrl.pem client-int-ecc.pem client-int.pem crl.der crl.pem crl.revoked crl2.der crl2.pem crl_reason.pem crl_rsapss.pem eccCliCRL.pem eccSrvCRL.pem gencrls.sh include.am server-goodaltCrl.pem server-goodaltwildCrl.pem server-goodcnCrl.pem server-goodcnwildCrl.pem server-int-ecc.pem server-int.pem wolfssl.cnf
dilithium bench_dilithium_level2_key.der bench_dilithium_level3_key.der bench_dilithium_level5_key.der include.am
ecc bp256r1-key.der bp256r1-key.pem ca-secp256k1-cert.pem ca-secp256k1-key.pem client-bp256r1-cert.der client-bp256r1-cert.pem client-secp256k1-cert.der client-secp256k1-cert.pem genecc.sh include.am secp256k1-key.der secp256k1-key.pem secp256k1-param.pem secp256k1-privkey.der secp256k1-privkey.pem server-bp256r1-cert.der server-bp256r1-cert.pem server-secp256k1-cert.der server-secp256k1-cert.pem server2-secp256k1-cert.der server2-secp256k1-cert.pem wolfssl.cnf wolfssl_384.cnf
ed25519 ca-ed25519-key.der ca-ed25519-key.pem ca-ed25519-priv.der ca-ed25519-priv.pem ca-ed25519.der ca-ed25519.pem client-ed25519-key.der client-ed25519-key.pem client-ed25519-priv.der client-ed25519-priv.pem client-ed25519.der client-ed25519.pem eddsa-ed25519.der eddsa-ed25519.pem gen-ed25519-certs.sh gen-ed25519-keys.sh gen-ed25519.sh include.am root-ed25519-key.der root-ed25519-key.pem root-ed25519-priv.der root-ed25519-priv.pem root-ed25519.der root-ed25519.pem server-ed25519-cert.pem server-ed25519-key.der server-ed25519-key.pem server-ed25519-priv.der server-ed25519-priv.pem server-ed25519.der server-ed25519.pem
ed448 ca-ed448-key.der ca-ed448-key.pem ca-ed448-priv.der ca-ed448-priv.pem ca-ed448.der ca-ed448.pem client-ed448-key.der client-ed448-key.pem client-ed448-priv.der client-ed448-priv.pem client-ed448.der client-ed448.pem gen-ed448-certs.sh gen-ed448-keys.sh include.am root-ed448-key.der root-ed448-key.pem root-ed448-priv.der root-ed448-priv.pem root-ed448.der root-ed448.pem server-ed448-cert.pem server-ed448-key.der server-ed448-key.pem server-ed448-priv.der server-ed448-priv.pem server-ed448.der server-ed448.pem
external DigiCertGlobalRootCA.pem README.txt ca-digicert-ev.pem ca-globalsign-root.pem ca-google-root.pem ca_collection.pem include.am
falcon bench_falcon_level1_key.der bench_falcon_level5_key.der include.am
intermediate
ca_false_intermediate gentestcert.sh int_ca.key server.key test_ca.key test_ca.pem test_int_not_cacert.pem test_sign_bynoca_srv.pem wolfssl_base.conf wolfssl_srv.conf
ca-ecc-bad-aki.der ca-ecc-bad-aki.pem ca-int-cert.der ca-int-cert.pem ca-int-ecc-cert.der ca-int-ecc-cert.pem ca-int-ecc-key.der ca-int-ecc-key.pem ca-int-key.der ca-int-key.pem ca-int2-cert.der ca-int2-cert.pem ca-int2-ecc-cert.der ca-int2-ecc-cert.pem ca-int2-ecc-key.der ca-int2-ecc-key.pem ca-int2-key.der ca-int2-key.pem client-chain-alt-ecc.pem client-chain-alt.pem client-chain-ecc.der client-chain-ecc.pem client-chain.der client-chain.pem client-int-cert.der client-int-cert.pem client-int-ecc-cert.der client-int-ecc-cert.pem genintcerts.sh include.am server-chain-alt-ecc.pem server-chain-alt.pem server-chain-ecc.der server-chain-ecc.pem server-chain-short.pem server-chain.der server-chain.pem server-int-cert.der server-int-cert.pem server-int-ecc-cert.der server-int-ecc-cert.pem
lms bc_hss_L2_H5_W8_root.der bc_hss_L3_H5_W4_root.der bc_lms_chain_ca.der bc_lms_chain_leaf.der bc_lms_native_bc_root.der bc_lms_sha256_h10_w8_root.der bc_lms_sha256_h5_w4_root.der include.am
mldsa README.txt include.am mldsa44-cert.der mldsa44-cert.pem mldsa44-key.pem mldsa44_bare-priv.der mldsa44_bare-seed.der mldsa44_oqskeypair.der mldsa44_priv-only.der mldsa44_pub-spki.der mldsa44_seed-only.der mldsa44_seed-priv.der mldsa65-cert.der mldsa65-cert.pem mldsa65-key.pem mldsa65_bare-priv.der mldsa65_bare-seed.der mldsa65_oqskeypair.der mldsa65_priv-only.der mldsa65_pub-spki.der mldsa65_seed-only.der mldsa65_seed-priv.der mldsa87-cert.der mldsa87-cert.pem mldsa87-key.pem mldsa87_bare-priv.der mldsa87_bare-seed.der mldsa87_oqskeypair.der mldsa87_priv-only.der mldsa87_pub-spki.der mldsa87_seed-only.der mldsa87_seed-priv.der
ocsp imposter-root-ca-cert.der imposter-root-ca-cert.pem imposter-root-ca-key.der imposter-root-ca-key.pem include.am index-ca-and-intermediate-cas.txt index-ca-and-intermediate-cas.txt.attr index-intermediate1-ca-issued-certs.txt index-intermediate1-ca-issued-certs.txt.attr index-intermediate2-ca-issued-certs.txt index-intermediate2-ca-issued-certs.txt.attr index-intermediate3-ca-issued-certs.txt index-intermediate3-ca-issued-certs.txt.attr intermediate1-ca-cert.der intermediate1-ca-cert.pem intermediate1-ca-key.der intermediate1-ca-key.pem intermediate2-ca-cert.der intermediate2-ca-cert.pem intermediate2-ca-key.der intermediate2-ca-key.pem intermediate3-ca-cert.der intermediate3-ca-cert.pem intermediate3-ca-key.der intermediate3-ca-key.pem ocsp-responder-cert.der ocsp-responder-cert.pem ocsp-responder-key.der ocsp-responder-key.pem openssl.cnf renewcerts-for-test.sh renewcerts.sh root-ca-cert.der root-ca-cert.pem root-ca-crl.pem root-ca-key.der root-ca-key.pem server1-cert.der server1-cert.pem server1-chain-noroot.pem server1-key.der server1-key.pem server2-cert.der server2-cert.pem server2-key.der server2-key.pem server3-cert.der server3-cert.pem server3-key.der server3-key.pem server4-cert.der server4-cert.pem server4-key.der server4-key.pem server5-cert.der server5-cert.pem server5-key.der server5-key.pem test-leaf-response.der test-multi-response.der test-response-nointern.der test-response-rsapss.der test-response.der
p521 ca-p521-key.der ca-p521-key.pem ca-p521-priv.der ca-p521-priv.pem ca-p521.der ca-p521.pem client-p521-key.der client-p521-key.pem client-p521-priv.der client-p521-priv.pem client-p521.der client-p521.pem gen-p521-certs.sh gen-p521-keys.sh include.am root-p521-key.der root-p521-key.pem root-p521-priv.der root-p521-priv.pem root-p521.der root-p521.pem server-p521-cert.pem server-p521-key.der server-p521-key.pem server-p521-priv.der server-p521-priv.pem server-p521.der server-p521.pem
renewcerts wolfssl.cnf
rpk client-cert-rpk.der client-ecc-cert-rpk.der include.am server-cert-rpk.der server-ecc-cert-rpk.der
rsapss ca-3072-rsapss-key.der ca-3072-rsapss-key.pem ca-3072-rsapss-priv.der ca-3072-rsapss-priv.pem ca-3072-rsapss.der ca-3072-rsapss.pem ca-rsapss-key.der ca-rsapss-key.pem ca-rsapss-priv.der ca-rsapss-priv.pem ca-rsapss.der ca-rsapss.pem client-3072-rsapss-key.der client-3072-rsapss-key.pem client-3072-rsapss-priv.der client-3072-rsapss-priv.pem client-3072-rsapss.der client-3072-rsapss.pem client-rsapss-key.der client-rsapss-key.pem client-rsapss-priv.der client-rsapss-priv.pem client-rsapss.der client-rsapss.pem gen-rsapss-keys.sh include.am renew-rsapss-certs.sh root-3072-rsapss-key.der root-3072-rsapss-key.pem root-3072-rsapss-priv.der root-3072-rsapss-priv.pem root-3072-rsapss.der root-3072-rsapss.pem root-rsapss-key.der root-rsapss-key.pem root-rsapss-priv.der root-rsapss-priv.pem root-rsapss.der root-rsapss.pem server-3072-rsapss-cert.pem server-3072-rsapss-key.der server-3072-rsapss-key.pem server-3072-rsapss-priv.der server-3072-rsapss-priv.pem server-3072-rsapss.der server-3072-rsapss.pem server-mix-rsapss-cert.pem server-rsapss-cert.pem server-rsapss-key.der server-rsapss-key.pem server-rsapss-priv.der server-rsapss-priv.pem server-rsapss.der server-rsapss.pem
sia timestamping-sia-cert.pem
slhdsa bench_slhdsa_sha2_128f_key.der bench_slhdsa_sha2_128s_key.der bench_slhdsa_sha2_192f_key.der bench_slhdsa_sha2_192s_key.der bench_slhdsa_sha2_256f_key.der bench_slhdsa_sha2_256s_key.der bench_slhdsa_shake128f_key.der bench_slhdsa_shake128s_key.der bench_slhdsa_shake192f_key.der bench_slhdsa_shake192s_key.der bench_slhdsa_shake256f_key.der bench_slhdsa_shake256s_key.der client-mldsa44-priv.pem client-mldsa44-sha2.der client-mldsa44-sha2.pem client-mldsa44-shake.der client-mldsa44-shake.pem gen-slhdsa-mldsa-certs.sh include.am root-slhdsa-sha2-128s-priv.der root-slhdsa-sha2-128s-priv.pem root-slhdsa-sha2-128s.der root-slhdsa-sha2-128s.pem root-slhdsa-shake-128s-priv.der root-slhdsa-shake-128s-priv.pem root-slhdsa-shake-128s.der root-slhdsa-shake-128s.pem server-mldsa44-priv.pem server-mldsa44-sha2.der server-mldsa44-sha2.pem server-mldsa44-shake.der server-mldsa44-shake.pem
sm2 ca-sm2-key.der ca-sm2-key.pem ca-sm2-priv.der ca-sm2-priv.pem ca-sm2.der ca-sm2.pem client-sm2-key.der client-sm2-key.pem client-sm2-priv.der client-sm2-priv.pem client-sm2.der client-sm2.pem fix_sm2_spki.py gen-sm2-certs.sh gen-sm2-keys.sh include.am root-sm2-key.der root-sm2-key.pem root-sm2-priv.der root-sm2-priv.pem root-sm2.der root-sm2.pem self-sm2-cert.pem self-sm2-key.pem self-sm2-priv.pem server-sm2-cert.der server-sm2-cert.pem server-sm2-key.der server-sm2-key.pem server-sm2-priv.der server-sm2-priv.pem server-sm2.der server-sm2.pem
statickeys dh-ffdhe2048-params.pem dh-ffdhe2048-pub.der dh-ffdhe2048-pub.pem dh-ffdhe2048.der dh-ffdhe2048.pem ecc-secp256r1.der ecc-secp256r1.pem gen-static.sh include.am x25519-pub.der x25519-pub.pem x25519.der x25519.pem
test
expired expired-ca.der expired-ca.pem expired-cert.der expired-cert.pem
catalog.txt cert-bad-neg-int.der cert-bad-oid.der cert-bad-utf8.der cert-ext-ia.cfg cert-ext-ia.der cert-ext-ia.pem cert-ext-joi.cfg cert-ext-joi.der cert-ext-joi.pem cert-ext-mnc.der cert-ext-multiple.cfg cert-ext-multiple.der cert-ext-multiple.pem cert-ext-nc-combined.der cert-ext-nc-combined.pem cert-ext-nc.cfg cert-ext-nc.der cert-ext-nc.pem cert-ext-ncdns.der cert-ext-ncdns.pem cert-ext-ncip.der cert-ext-ncip.pem cert-ext-ncmixed.der cert-ext-ncmulti.der cert-ext-ncmulti.pem cert-ext-ncrid.der cert-ext-ncrid.pem cert-ext-nct.cfg cert-ext-nct.der cert-ext-nct.pem cert-ext-ndir-exc.cfg cert-ext-ndir-exc.der cert-ext-ndir-exc.pem cert-ext-ndir.cfg cert-ext-ndir.der cert-ext-ndir.pem cert-ext-ns.der cert-over-max-altnames.cfg cert-over-max-altnames.der cert-over-max-altnames.pem cert-over-max-nc.cfg cert-over-max-nc.der cert-over-max-nc.pem client-ecc-cert-ski.hex cn-ip-literal.der cn-ip-wildcard.der crit-cert.pem crit-key.pem dh1024.der dh1024.pem dh512.der dh512.pem digsigku.pem encrypteddata.msg gen-badsig.sh gen-ext-certs.sh gen-testcerts.sh include.am kari-keyid-cms.msg ktri-keyid-cms.msg ossl-trusted-cert.pem server-badaltname.der server-badaltname.pem server-badaltnull.der server-badaltnull.pem server-badcn.der server-badcn.pem server-badcnnull.der server-badcnnull.pem server-cert-ecc-badsig.der server-cert-ecc-badsig.pem server-cert-rsa-badsig.der server-cert-rsa-badsig.pem server-duplicate-policy.pem server-garbage.der server-garbage.pem server-goodalt.der server-goodalt.pem server-goodaltwild.der server-goodaltwild.pem server-goodcn.der server-goodcn.pem server-goodcnwild.der server-goodcnwild.pem server-localhost.der server-localhost.pem smime-test-canon.p7s smime-test-multipart-badsig.p7s smime-test-multipart.p7s smime-test.p7s
test-pathlen assemble-chains.sh chainA-ICA1-key.pem chainA-ICA1-pathlen0.pem chainA-assembled.pem chainA-entity-key.pem chainA-entity.pem chainB-ICA1-key.pem chainB-ICA1-pathlen0.pem chainB-ICA2-key.pem chainB-ICA2-pathlen1.pem chainB-assembled.pem chainB-entity-key.pem chainB-entity.pem chainC-ICA1-key.pem chainC-ICA1-pathlen1.pem chainC-assembled.pem chainC-entity-key.pem chainC-entity.pem chainD-ICA1-key.pem chainD-ICA1-pathlen127.pem chainD-assembled.pem chainD-entity-key.pem chainD-entity.pem chainE-ICA1-key.pem chainE-ICA1-pathlen128.pem chainE-assembled.pem chainE-entity-key.pem chainE-entity.pem chainF-ICA1-key.pem chainF-ICA1-pathlen1.pem chainF-ICA2-key.pem chainF-ICA2-pathlen0.pem chainF-assembled.pem chainF-entity-key.pem chainF-entity.pem chainG-ICA1-key.pem chainG-ICA1-pathlen0.pem chainG-ICA2-key.pem chainG-ICA2-pathlen1.pem chainG-ICA3-key.pem chainG-ICA3-pathlen99.pem chainG-ICA4-key.pem chainG-ICA4-pathlen5.pem chainG-ICA5-key.pem chainG-ICA5-pathlen20.pem chainG-ICA6-key.pem chainG-ICA6-pathlen10.pem chainG-ICA7-key.pem chainG-ICA7-pathlen100.pem chainG-assembled.pem chainG-entity-key.pem chainG-entity.pem chainH-ICA1-key.pem chainH-ICA1-pathlen0.pem chainH-ICA2-key.pem chainH-ICA2-pathlen2.pem chainH-ICA3-key.pem chainH-ICA3-pathlen2.pem chainH-ICA4-key.pem chainH-ICA4-pathlen2.pem chainH-assembled.pem chainH-entity-key.pem chainH-entity.pem chainI-ICA1-key.pem chainI-ICA1-no_pathlen.pem chainI-ICA2-key.pem chainI-ICA2-no_pathlen.pem chainI-ICA3-key.pem chainI-ICA3-pathlen2.pem chainI-assembled.pem chainI-entity-key.pem chainI-entity.pem chainJ-ICA1-key.pem chainJ-ICA1-no_pathlen.pem chainJ-ICA2-key.pem chainJ-ICA2-no_pathlen.pem chainJ-ICA3-key.pem chainJ-ICA3-no_pathlen.pem chainJ-ICA4-key.pem chainJ-ICA4-pathlen2.pem chainJ-assembled.pem chainJ-entity-key.pem chainJ-entity.pem include.am refreshkeys.sh
test-serial0 ee_normal.pem ee_serial0.pem generate_certs.sh include.am intermediate_serial0.pem root_serial0.pem root_serial0_key.pem selfsigned_nonca_serial0.pem
xmss bc_xmss_chain_ca.der bc_xmss_chain_leaf.der bc_xmss_sha2_10_256_root.der bc_xmss_sha2_16_256_root.der bc_xmssmt_sha2_20_2_256_root.der bc_xmssmt_sha2_20_4_256_root.der bc_xmssmt_sha2_40_8_256_root.der include.am
ca-cert-chain.der ca-cert.der ca-cert.pem ca-ecc-cert.der ca-ecc-cert.pem ca-ecc-key.der ca-ecc-key.pem ca-ecc384-cert.der ca-ecc384-cert.pem ca-ecc384-key.der ca-ecc384-key.pem ca-key-pkcs8-attribute.der ca-key.der ca-key.pem check_dates.sh client-absolute-urn.pem client-ca-cert.der client-ca-cert.pem client-ca.pem client-cert-ext.der client-cert-ext.pem client-cert.der client-cert.pem client-crl-dist.der client-crl-dist.pem client-ecc-ca-cert.der client-ecc-ca-cert.pem client-ecc-cert.der client-ecc-cert.pem client-ecc384-cert.der client-ecc384-cert.pem client-ecc384-key.der client-ecc384-key.pem client-key.der client-key.pem client-keyEnc.pem client-keyPub.der client-keyPub.pem client-relative-uri.pem client-uri-cert.pem csr.attr.der csr.dsa.der csr.dsa.pem csr.ext.der csr.signed.der dh-priv-2048.der dh-priv-2048.pem dh-pub-2048.der dh-pub-2048.pem dh-pubkey-2048.der dh2048.der dh2048.pem dh3072.der dh3072.pem dh4096.der dh4096.pem dsa-pubkey-2048.der dsa2048.der dsa2048.pem dsa3072.der dsaparams.der dsaparams.pem ecc-client-key.der ecc-client-key.pem ecc-client-keyPub.der ecc-client-keyPub.pem ecc-key-comp.pem ecc-keyPkcs8.der ecc-keyPkcs8.pem ecc-keyPkcs8Enc.der ecc-keyPkcs8Enc.pem ecc-keyPub.der ecc-keyPub.pem ecc-params.der ecc-params.pem ecc-privOnlyCert.pem ecc-privOnlyKey.pem ecc-privkey.der ecc-privkey.pem ecc-privkeyPkcs8.der ecc-privkeyPkcs8.pem ecc-rsa-server.p12 empty-issuer-cert.pem entity-no-ca-bool-cert.pem entity-no-ca-bool-key.pem fpki-cert.der fpki-certpol-cert.der gen_revoked.sh include.am renewcerts.sh rid-cert.der rsa-pub-2048.pem rsa2048.der rsa3072.der server-cert-chain.der server-cert.der server-cert.pem server-ecc-comp.der server-ecc-comp.pem server-ecc-rsa.der server-ecc-rsa.pem server-ecc-self.der server-ecc-self.pem server-ecc.der server-ecc.pem server-ecc384-cert.der server-ecc384-cert.pem server-ecc384-key.der server-ecc384-key.pem server-key.der server-key.pem server-keyEnc.pem server-keyPkcs8.der server-keyPkcs8.pem server-keyPkcs8Enc.der server-keyPkcs8Enc.pem server-keyPkcs8Enc12.pem server-keyPkcs8Enc2.pem server-keyPub.der server-keyPub.pem server-revoked-cert.pem server-revoked-key.pem taoCert.txt test-ber-exp02-05-2022.p7b test-degenerate.p7b test-multiple-recipients.p7b test-servercert-rc2.p12 test-servercert.p12 test-stream-dec.p7b test-stream-sign.p7b wolfssl-website-ca.pem x942dh2048.der x942dh2048.pem
cmake
consumer CMakeLists.txt README.md main.c
modules FindARIA.cmake FindOQS.cmake
Config.cmake.in README.md config.in functions.cmake include.am options.h.in wolfssl-config-version.cmake.in wolfssl-targets.cmake.in
debian
source format
changelog.in control.in copyright include.am libwolfssl-dev.install libwolfssl.install rules.in
doc
dox_comments
header_files aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h puf.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wc_she.h wc_slhdsa.h wolfio.h
header_files-ja aes.h arc4.h ascon.h asn.h asn_public.h blake2.h bn.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cryptocb.h curve25519.h curve448.h des3.h dh.h doxygen_groups.h doxygen_pages.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h evp.h hash.h hmac.h iotsafe.h kdf.h logging.h md2.h md4.h md5.h memory.h ocsp.h pem.h pkcs11.h pkcs7.h poly1305.h psa.h pwdbased.h quic.h random.h ripemd.h rsa.h sakke.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h srp.h ssl.h tfm.h types.h wc_encrypt.h wc_port.h wolfio.h
formats
html
html_changes
search search.css search.js
customdoxygen.css doxygen.css menu.js menudata.js tabs.css
Doxyfile footer.html header.html mainpage.dox
pdf Doxyfile header.tex
images wolfssl_logo.png
QUIC.md README.txt README_DOXYGEN check_api.sh generate_documentation.sh include.am
examples
asn1 asn1.c dumpasn1.cfg gen_oid_names.rb include.am oid_names.h
async Makefile README.md async_client.c async_server.c async_tls.c async_tls.h include.am user_settings.h
benchmark include.am tls_bench.c tls_bench.h
client client.c client.h client.sln client.vcproj client.vcxproj include.am
configs README.md include.am user_settings_EBSnet.h user_settings_all.h user_settings_arduino.h user_settings_baremetal.h user_settings_ca.h user_settings_curve25519nonblock.h user_settings_dtls13.h user_settings_eccnonblock.h user_settings_espressif.h user_settings_fipsv2.h user_settings_fipsv5.h user_settings_min_ecc.h user_settings_openssl_compat.h user_settings_pkcs7.h user_settings_platformio.h user_settings_pq.h user_settings_rsa_only.h user_settings_stm32.h user_settings_template.h user_settings_tls12.h user_settings_tls13.h user_settings_wolfboot_keytools.h user_settings_wolfssh.h user_settings_wolftpm.h
crypto_policies
default wolfssl.txt
future wolfssl.txt
legacy wolfssl.txt
echoclient echoclient.c echoclient.h echoclient.sln echoclient.vcproj echoclient.vcxproj include.am quit
echoserver echoserver.c echoserver.h echoserver.sln echoserver.vcproj echoserver.vcxproj include.am
ocsp_responder include.am ocsp_responder.c ocsp_responder.h
pem include.am pem.c
sctp include.am sctp-client-dtls.c sctp-client.c sctp-server-dtls.c sctp-server.c
server include.am server.c server.h server.sln server.vcproj server.vcxproj
README.md include.am
linuxkm
patches
5.10.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v17.patch
5.10.236 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v10v236.patch
5.14.0-570.58.1.el9_6 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v14-570v58v1-el9_6.patch
5.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v15.patch
5.17 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17.patch
5.17-ubuntu-jammy-tegra WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-5v17-ubuntu-jammy-tegra.patch
6.1.73 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v1v73.patch
6.12 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v12.patch
6.15 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-6v15.patch
7.0 WOLFSSL_LINUXKM_HAVE_GET_RANDOM_CALLBACKS-7v0.patch
regen-patches.sh
Kbuild Makefile README.md get_thread_size.c include.am linuxkm-fips-hash-wrapper.sh linuxkm-fips-hash.c linuxkm_memory.c linuxkm_memory.h linuxkm_wc_port.h lkcapi_aes_glue.c lkcapi_dh_glue.c lkcapi_ecdh_glue.c lkcapi_ecdsa_glue.c lkcapi_glue.c lkcapi_rsa_glue.c lkcapi_sha_glue.c module_exports.c.template module_hooks.c pie_redirect_table.c wolfcrypt.lds x86_vector_register_glue.c
m4 ax_add_am_macro.m4 ax_am_jobserver.m4 ax_am_macros.m4 ax_append_compile_flags.m4 ax_append_flag.m4 ax_append_link_flags.m4 ax_append_to_file.m4 ax_atomic.m4 ax_bsdkm.m4 ax_check_compile_flag.m4 ax_check_link_flag.m4 ax_compiler_version.m4 ax_count_cpus.m4 ax_create_generic_config.m4 ax_debug.m4 ax_file_escapes.m4 ax_harden_compiler_flags.m4 ax_linuxkm.m4 ax_print_to_file.m4 ax_pthread.m4 ax_require_defined.m4 ax_tls.m4 ax_vcs_checkout.m4 hexversion.m4 lib_socket_nsl.m4 visibility.m4
mcapi
wolfcrypt_mcapi.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
zlib.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README crypto.c crypto.h include.am mcapi_test.c user_settings.h
mplabx
wolfcrypt_benchmark.X
nbproject configurations.xml include.am project.xml
Makefile
wolfcrypt_test.X
nbproject configurations.xml include.am project.xml
Makefile
wolfssl.X
nbproject configurations.xml include.am project.xml
Makefile
PIC32MZ-serial.h README benchmark_main.c include.am test_main.c user_settings.h
mqx
util_lib
Sources include.am util.c util.h
wolfcrypt_benchmark
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_benchmark_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfcrypt_test
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfcrypt_test_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
wolfssl include.am
wolfssl_client
Debugger K70FN1M0.mem init_kinetis.tcl mass_erase_kinetis.tcl
Sources include.am main.c main.h
ReferencedRSESystems.xml wolfssl_client_twrk70f120m_Int_Flash_DDRData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_DDRData_Release_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.jlink wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_JTrace.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Debug_PnE_U-MultiLink.launch wolfssl_client_twrk70f120m_Int_Flash_SramData_Release_PnE_U-MultiLink.launch
README
rpm include.am spec.in
scripts
bench bench_functions.sh
aria-cmake-build-test.sh asn1_oid_sum.pl benchmark.test benchmark_compare.sh cleanup_testfiles.sh crl-gen-openssl.test crl-revoked.test dertoc.pl dtls.test dtlscid.test external.test google.test include.am makedistsmall.sh memtest.sh ocsp-responder-openssl-interop.test ocsp-stapling-with-ca-as-responder.test ocsp-stapling-with-wolfssl-responder.test ocsp-stapling.test ocsp-stapling2.test ocsp-stapling_tls13multi.test ocsp.test openssl.test openssl_srtp.test pem.test ping.test pkcallbacks.test psk.test resume.test rsapss.test sniffer-gen.sh sniffer-ipv6.pcap sniffer-static-rsa.pcap sniffer-testsuite.test sniffer-tls12-keylog.out sniffer-tls12-keylog.pcap sniffer-tls12-keylog.sslkeylog sniffer-tls13-dh-resume.pcap sniffer-tls13-dh.pcap sniffer-tls13-ecc-resume.pcap sniffer-tls13-ecc.pcap sniffer-tls13-hrr.pcap sniffer-tls13-keylog.out sniffer-tls13-keylog.pcap sniffer-tls13-keylog.sslkeylog sniffer-tls13-x25519-resume.pcap sniffer-tls13-x25519.pcap stm32l4-v4_0_1_build.sh tls13.test trusted_peer.test unit.test.in user_settings_asm.sh
src bio.c conf.c crl.c dtls.c dtls13.c include.am internal.c keys.c ocsp.c pk.c pk_ec.c pk_rsa.c quic.c sniffer.c ssl.c ssl_api_cert.c ssl_api_crl_ocsp.c ssl_api_pk.c ssl_asn1.c ssl_bn.c ssl_certman.c ssl_crypto.c ssl_ech.c ssl_load.c ssl_misc.c ssl_p7p12.c ssl_sess.c ssl_sk.c tls.c tls13.c wolfio.c x509.c x509_str.c
sslSniffer
sslSnifferTest README_WIN.md include.am snifftest.c sslSniffTest.vcproj sslSniffTest.vcxproj
README.md sslSniffer.vcproj sslSniffer.vcxproj
support gen-debug-trace-error-codes.sh include.am wolfssl.pc.in
tests
api api.h api_decl.h create_ocsp_test_blobs.py include.am test_aes.c test_aes.h test_arc4.c test_arc4.h test_ascon.c test_ascon.h test_ascon_kats.h test_asn.c test_asn.h test_blake2.c test_blake2.h test_camellia.c test_camellia.h test_certman.c test_certman.h test_chacha.c test_chacha.h test_chacha20_poly1305.c test_chacha20_poly1305.h test_cmac.c test_cmac.h test_curve25519.c test_curve25519.h test_curve448.c test_curve448.h test_des3.c test_des3.h test_dh.c test_dh.h test_digest.h test_dsa.c test_dsa.h test_dtls.c test_dtls.h test_ecc.c test_ecc.h test_ed25519.c test_ed25519.h test_ed448.c test_ed448.h test_evp.c test_evp.h test_evp_cipher.c test_evp_cipher.h test_evp_digest.c test_evp_digest.h test_evp_pkey.c test_evp_pkey.h test_hash.c test_hash.h test_hmac.c test_hmac.h test_md2.c test_md2.h test_md4.c test_md4.h test_md5.c test_md5.h test_mldsa.c test_mldsa.h test_mlkem.c test_mlkem.h test_ocsp.c test_ocsp.h test_ocsp_test_blobs.h test_ossl_asn1.c test_ossl_asn1.h test_ossl_bio.c test_ossl_bio.h test_ossl_bn.c test_ossl_bn.h test_ossl_cipher.c test_ossl_cipher.h test_ossl_dgst.c test_ossl_dgst.h test_ossl_dh.c test_ossl_dh.h test_ossl_dsa.c test_ossl_dsa.h test_ossl_ec.c test_ossl_ec.h test_ossl_ecx.c test_ossl_ecx.h test_ossl_mac.c test_ossl_mac.h test_ossl_obj.c test_ossl_obj.h test_ossl_p7p12.c test_ossl_p7p12.h test_ossl_pem.c test_ossl_pem.h test_ossl_rand.c test_ossl_rand.h test_ossl_rsa.c test_ossl_rsa.h test_ossl_sk.c test_ossl_sk.h test_ossl_x509.c test_ossl_x509.h test_ossl_x509_acert.c test_ossl_x509_acert.h test_ossl_x509_crypto.c test_ossl_x509_crypto.h test_ossl_x509_ext.c test_ossl_x509_ext.h test_ossl_x509_info.c test_ossl_x509_info.h test_ossl_x509_io.c test_ossl_x509_io.h test_ossl_x509_lu.c test_ossl_x509_lu.h test_ossl_x509_name.c test_ossl_x509_name.h test_ossl_x509_pk.c test_ossl_x509_pk.h test_ossl_x509_str.c test_ossl_x509_str.h test_ossl_x509_vp.c test_ossl_x509_vp.h test_pkcs12.c test_pkcs12.h test_pkcs7.c test_pkcs7.h test_poly1305.c test_poly1305.h test_random.c test_random.h test_rc2.c test_rc2.h test_ripemd.c test_ripemd.h test_rsa.c test_rsa.h test_sha.c test_sha.h test_sha256.c test_sha256.h test_sha3.c test_sha3.h test_sha512.c test_sha512.h test_she.c test_she.h test_signature.c test_signature.h test_slhdsa.c test_slhdsa.h test_sm2.c test_sm2.h test_sm3.c test_sm3.h test_sm4.c test_sm4.h test_tls.c test_tls.h test_tls13.c test_tls13.h test_tls_ext.c test_tls_ext.h test_wc_encrypt.c test_wc_encrypt.h test_wolfmath.c test_wolfmath.h test_x509.c test_x509.h
emnet
IP IP.h
Makefile emnet_nonblock_test.c emnet_shim.c
freertos-mem-track-repro FreeRTOS.h repro.c run.sh semphr.h task.h user_settings.h
swdev .gitignore Makefile README.md swdev.c swdev.h swdev_loader.c swdev_loader.h user_settings.h
CONF_FILES_README.md NCONF_test.cnf README TXT_DB.txt api.c include.am quic.c srp.c suites.c test-altchains.conf test-chains.conf test-dhprime.conf test-dtls-downgrade.conf test-dtls-fails-cipher.conf test-dtls-fails.conf test-dtls-group.conf test-dtls-mtu.conf test-dtls-reneg-client.conf test-dtls-reneg-server.conf test-dtls-resume.conf test-dtls-sha2.conf test-dtls-srtp-fails.conf test-dtls-srtp.conf test-dtls.conf test-dtls13-cid.conf test-dtls13-downgrade-fails.conf test-dtls13-downgrade.conf test-dtls13-pq-hybrid-extra-frag.conf test-dtls13-pq-hybrid-extra.conf test-dtls13-pq-hybrid-frag.conf test-dtls13-pq-standalone-frag.conf test-dtls13-pq-standalone.conf test-dtls13-psk.conf test-dtls13.conf test-ecc-cust-curves.conf test-ed25519.conf test-ed448.conf test-enckeys.conf test-fails.conf test-maxfrag-dtls.conf test-maxfrag.conf test-p521.conf test-psk-no-id-sha2.conf test-psk-no-id.conf test-psk.conf test-rsapss.conf test-sctp-sha2.conf test-sctp.conf test-sha2.conf test-sig.conf test-sm2.conf test-tls-downgrade.conf test-tls13-down.conf test-tls13-ecc.conf test-tls13-pq-hybrid-extra.conf test-tls13-pq-hybrid.conf test-tls13-pq-standalone.conf test-tls13-psk-certs.conf test-tls13-psk.conf test-tls13-slhdsa-fail.conf test-tls13-slhdsa-sha2.conf test-tls13-slhdsa-shake.conf test-tls13.conf test-trustpeer.conf test.conf unit.c unit.h utils.c utils.h w64wrapper.c
testsuite include.am testsuite.c testsuite.sln testsuite.vcproj testsuite.vcxproj utils.c utils.h
tirtos
packages
ti
net
wolfssl
tests
EK_TM4C1294XL
wolfcrypt
benchmark TM4C1294NC.icf benchmark.cfg main.c package.bld.hide package.xdc
test TM4C1294NC.icf main.c package.bld.hide package.xdc test.cfg
package.bld package.xdc package.xs
.gitignore README include.am products.mak wolfssl.bld wolfssl.mak
wolfcrypt
benchmark README.md benchmark-VS2022.sln benchmark-VS2022.vcxproj benchmark-VS2022.vcxproj.user benchmark.c benchmark.h benchmark.sln benchmark.vcproj benchmark.vcxproj include.am
src
port
Espressif
esp_crt_bundle README.md cacrt_all.pem cacrt_deprecated.pem cacrt_local.pem esp_crt_bundle.c gen_crt_bundle.py pio_install_cryptography.py
README.md esp32_aes.c esp32_mp.c esp32_sha.c esp32_util.c esp_sdk_mem_lib.c esp_sdk_time_lib.c esp_sdk_wifi_lib.c
Renesas README.md renesas_common.c renesas_fspsm_aes.c renesas_fspsm_rsa.c renesas_fspsm_sha.c renesas_fspsm_util.c renesas_rx64_hw_sha.c renesas_rx64_hw_util.c renesas_tsip_aes.c renesas_tsip_rsa.c renesas_tsip_sha.c renesas_tsip_util.c
af_alg afalg_aes.c afalg_hash.c wc_afalg.c
aria aria-crypt.c aria-cryptocb.c
arm armv8-32-aes-asm.S armv8-32-aes-asm_c.c armv8-32-chacha-asm.S armv8-32-chacha-asm_c.c armv8-32-curve25519.S armv8-32-curve25519_c.c armv8-32-mlkem-asm.S armv8-32-mlkem-asm_c.c armv8-32-poly1305-asm.S armv8-32-poly1305-asm_c.c armv8-32-sha256-asm.S armv8-32-sha256-asm_c.c armv8-32-sha3-asm.S armv8-32-sha3-asm_c.c armv8-32-sha512-asm.S armv8-32-sha512-asm_c.c armv8-aes-asm.S armv8-aes-asm_c.c armv8-aes.c armv8-chacha-asm.S armv8-chacha-asm_c.c armv8-curve25519.S armv8-curve25519_c.c armv8-mlkem-asm.S armv8-mlkem-asm_c.c armv8-poly1305-asm.S armv8-poly1305-asm_c.c armv8-sha256-asm.S armv8-sha256-asm_c.c armv8-sha256.c armv8-sha3-asm.S armv8-sha3-asm_c.c armv8-sha512-asm.S armv8-sha512-asm_c.c armv8-sha512.c cryptoCell.c cryptoCellHash.c thumb2-aes-asm.S thumb2-aes-asm_c.c thumb2-chacha-asm.S thumb2-chacha-asm_c.c thumb2-curve25519.S thumb2-curve25519_c.c thumb2-mlkem-asm.S thumb2-mlkem-asm_c.c thumb2-poly1305-asm.S thumb2-poly1305-asm_c.c thumb2-sha256-asm.S thumb2-sha256-asm_c.c thumb2-sha3-asm.S thumb2-sha3-asm_c.c thumb2-sha512-asm.S thumb2-sha512-asm_c.c
atmel README.md atmel.c
autosar README.md cryif.c crypto.c csm.c include.am test.c
caam README.md caam_aes.c caam_doc.pdf caam_driver.c caam_error.c caam_integrity.c caam_qnx.c caam_sha.c wolfcaam_aes.c wolfcaam_cmac.c wolfcaam_ecdsa.c wolfcaam_fsl_nxp.c wolfcaam_hash.c wolfcaam_hmac.c wolfcaam_init.c wolfcaam_qnx.c wolfcaam_rsa.c wolfcaam_seco.c wolfcaam_x25519.c
cavium README.md README_Octeon.md cavium_nitrox.c cavium_octeon_sync.c
cuda README.md aes-cuda.cu
cypress README.md psoc6_crypto.c
devcrypto README.md devcrypto_aes.c devcrypto_ecdsa.c devcrypto_hash.c devcrypto_hmac.c devcrypto_rsa.c devcrypto_x25519.c wc_devcrypto.c
intel README.md quickassist.c quickassist_mem.c quickassist_sync.c
iotsafe iotsafe.c
kcapi README.md kcapi_aes.c kcapi_dh.c kcapi_ecc.c kcapi_hash.c kcapi_hmac.c kcapi_rsa.c
liboqs liboqs.c
maxim README.md max3266x.c maxq10xx.c
mynewt mynewt_port.c
nxp README.md README_SE050.md casper_port.c dcp_port.c hashcrypt_port.c ksdk_port.c se050_port.c
pic32 pic32mz-crypt.c
ppc32 ppc32-sha256-asm.S ppc32-sha256-asm_c.c ppc32-sha256-asm_cr.c
psa README.md psa.c psa_aes.c psa_hash.c psa_pkcbs.c
riscv riscv-64-aes.c riscv-64-chacha.c riscv-64-poly1305.c riscv-64-sha256.c riscv-64-sha3.c riscv-64-sha512.c
rpi_pico README.md pico.c
silabs README.md silabs_aes.c silabs_ecc.c silabs_hash.c silabs_random.c
st README.md STM32MP13.md STM32MP25.md stm32.c stsafe.c
ti ti-aes.c ti-ccm.c ti-des3.c ti-hash.c
tropicsquare README.md tropic01.c
xilinx xil-aesgcm.c xil-sha3.c xil-versal-glue.c xil-versal-trng.c
nrf51.c
ASN_TEMPLATE.md aes.c aes_asm.S aes_asm.asm aes_gcm_asm.S aes_gcm_asm.asm aes_gcm_x86_asm.S aes_xts_asm.S aes_xts_asm.asm arc4.c ascon.c asm.c asn.c asn_orig.c async.c blake2b.c blake2s.c camellia.c chacha.c chacha20_poly1305.c chacha_asm.S chacha_asm.asm cmac.c coding.c compress.c cpuid.c cryptocb.c curve25519.c curve448.c des3.c dh.c dilithium.c dsa.c ecc.c ecc_fp.c eccsi.c ed25519.c ed448.c error.c evp.c evp_pk.c falcon.c fe_448.c fe_low_mem.c fe_operations.c fe_x25519_128.h fe_x25519_asm.S fp_mont_small.i fp_mul_comba_12.i fp_mul_comba_17.i fp_mul_comba_20.i fp_mul_comba_24.i fp_mul_comba_28.i fp_mul_comba_3.i fp_mul_comba_32.i fp_mul_comba_4.i fp_mul_comba_48.i fp_mul_comba_6.i fp_mul_comba_64.i fp_mul_comba_7.i fp_mul_comba_8.i fp_mul_comba_9.i fp_mul_comba_small_set.i fp_sqr_comba_12.i fp_sqr_comba_17.i fp_sqr_comba_20.i fp_sqr_comba_24.i fp_sqr_comba_28.i fp_sqr_comba_3.i fp_sqr_comba_32.i fp_sqr_comba_4.i fp_sqr_comba_48.i fp_sqr_comba_6.i fp_sqr_comba_64.i fp_sqr_comba_7.i fp_sqr_comba_8.i fp_sqr_comba_9.i fp_sqr_comba_small_set.i ge_448.c ge_low_mem.c ge_operations.c hash.c hmac.c hpke.c include.am integer.c kdf.c logging.c md2.c md4.c md5.c memory.c misc.c pkcs12.c pkcs7.c poly1305.c poly1305_asm.S poly1305_asm.asm puf.c pwdbased.c random.c rc2.c ripemd.c rng_bank.c rsa.c sakke.c sha.c sha256.c sha256_asm.S sha3.c sha3_asm.S sha512.c sha512_asm.S signature.c siphash.c sm2.c sm3.c sm3_asm.S sm4.c sp_arm32.c sp_arm64.c sp_armthumb.c sp_c32.c sp_c64.c sp_cortexm.c sp_dsp32.c sp_int.c sp_sm2_arm32.c sp_sm2_arm64.c sp_sm2_armthumb.c sp_sm2_c32.c sp_sm2_c64.c sp_sm2_cortexm.c sp_sm2_x86_64.c sp_sm2_x86_64_asm.S sp_x86_64.c sp_x86_64_asm.S sp_x86_64_asm.asm srp.c tfm.c wc_dsp.c wc_encrypt.c wc_lms.c wc_lms_impl.c wc_mldsa_asm.S wc_mlkem.c wc_mlkem_asm.S wc_mlkem_poly.c wc_pkcs11.c wc_port.c wc_she.c wc_slhdsa.c wc_xmss.c wc_xmss_impl.c wolfentropy.c wolfevent.c wolfmath.c
test README.md include.am test-VS2022.sln test-VS2022.vcxproj test-VS2022.vcxproj.user test.c test.h test.sln test.vcproj test_paths.h.in
wolfssl
openssl aes.h asn1.h asn1t.h bio.h bn.h buffer.h camellia.h cmac.h cms.h compat_types.h conf.h crypto.h des.h dh.h dsa.h ec.h ec25519.h ec448.h ecdh.h ecdsa.h ed25519.h ed448.h engine.h err.h evp.h fips_rand.h hmac.h include.am kdf.h lhash.h md4.h md5.h modes.h obj_mac.h objects.h ocsp.h opensslconf.h opensslv.h ossl_typ.h pem.h pkcs12.h pkcs7.h rand.h rc4.h ripemd.h rsa.h safestack.h sha.h sha3.h srp.h ssl.h ssl23.h stack.h tls1.h txt_db.h ui.h x509.h x509_vfy.h x509v3.h
wolfcrypt
port
Espressif esp-sdk-lib.h esp32-crypt.h esp_crt_bundle.h
Renesas renesas-fspsm-crypt.h renesas-fspsm-types.h renesas-rx64-hw-crypt.h renesas-tsip-crypt.h renesas_cmn.h renesas_fspsm_internal.h renesas_sync.h renesas_tsip_internal.h renesas_tsip_types.h
af_alg afalg_hash.h wc_afalg.h
aria aria-crypt.h aria-cryptocb.h
arm cryptoCell.h
atmel atmel.h
autosar CryIf.h Crypto.h Csm.h StandardTypes.h
caam caam_driver.h caam_error.h caam_qnx.h wolfcaam.h wolfcaam_aes.h wolfcaam_cmac.h wolfcaam_ecdsa.h wolfcaam_fsl_nxp.h wolfcaam_hash.h wolfcaam_qnx.h wolfcaam_rsa.h wolfcaam_seco.h wolfcaam_sha.h wolfcaam_x25519.h
cavium cavium_nitrox.h cavium_octeon_sync.h
cypress psoc6_crypto.h
devcrypto wc_devcrypto.h
intel quickassist.h quickassist_mem.h quickassist_sync.h
iotsafe iotsafe.h
kcapi kcapi_dh.h kcapi_ecc.h kcapi_hash.h kcapi_hmac.h kcapi_rsa.h wc_kcapi.h
liboqs liboqs.h
maxim max3266x-cryptocb.h max3266x.h maxq10xx.h
nxp casper_port.h dcp_port.h hashcrypt_port.h ksdk_port.h se050_port.h
pic32 pic32mz-crypt.h
psa psa.h
riscv riscv-64-asm.h
rpi_pico pico.h
silabs silabs_aes.h silabs_ecc.h silabs_hash.h silabs_random.h
st stm32.h stsafe.h
ti ti-ccm.h ti-hash.h
tropicsquare tropic01.h
xilinx xil-sha3.h xil-versal-glue.h xil-versal-trng.h
nrf51.h
aes.h arc4.h ascon.h asn.h asn_public.h async.h blake2-impl.h blake2-int.h blake2.h camellia.h chacha.h chacha20_poly1305.h cmac.h coding.h compress.h cpuid.h cryptocb.h curve25519.h curve448.h des3.h dh.h dilithium.h dsa.h ecc.h eccsi.h ed25519.h ed448.h error-crypt.h falcon.h fe_448.h fe_operations.h fips_test.h ge_448.h ge_operations.h hash.h hmac.h hpke.h include.am integer.h kdf.h libwolfssl_sources.h libwolfssl_sources_asm.h logging.h md2.h md4.h md5.h mem_track.h memory.h misc.h mpi_class.h mpi_superclass.h oid_sum.h pkcs11.h pkcs12.h pkcs7.h poly1305.h puf.h pwdbased.h random.h rc2.h ripemd.h rng_bank.h rsa.h sakke.h selftest.h settings.h sha.h sha256.h sha3.h sha512.h signature.h siphash.h sm2.h sm3.h sm4.h sp.h sp_int.h srp.h tfm.h types.h visibility.h wc_encrypt.h wc_lms.h wc_mlkem.h wc_pkcs11.h wc_port.h wc_she.h wc_slhdsa.h wc_xmss.h wolfentropy.h wolfevent.h wolfmath.h
callbacks.h certs_test.h certs_test_sm.h crl.h error-ssl.h include.am internal.h ocsp.h options.h.in quic.h sniffer.h sniffer_error.h sniffer_error.rc ssl.h test.h version.h version.h.in wolfio.h
wrapper
Ada
examples
src aes_verify_main.adb rsa_verify_main.adb sha256_main.adb spark_sockets.adb spark_sockets.ads spark_terminal.adb spark_terminal.ads tls_client.adb tls_client.ads tls_client_main.adb tls_server.adb tls_server.ads tls_server_main.adb
.gitignore alire.toml examples.gpr
tests
src
support test_support.adb test_support.ads tests_root_suite.adb tests_root_suite.ads
aes_bindings_tests.adb aes_bindings_tests.ads rsa_verify_bindings_tests.adb rsa_verify_bindings_tests.ads sha256_bindings_tests.adb sha256_bindings_tests.ads tests.adb
.gitignore README.md alire.toml tests.gpr valgrind.supp
.gitignore README.md ada_binding.c alire.toml default.gpr include.am restricted.adc user_settings.h wolfssl-full_runtime.adb wolfssl-full_runtime.ads wolfssl.adb wolfssl.ads wolfssl.gpr
CSharp
wolfCrypt-Test
Properties AssemblyInfo.cs
App.config wolfCrypt-Test.cs wolfCrypt-Test.csproj
wolfSSL-DTLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-PSK-Server.cs wolfSSL-DTLS-PSK-Server.csproj
wolfSSL-DTLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-DTLS-Server.cs wolfSSL-DTLS-Server.csproj
wolfSSL-Example-IOCallbacks
Properties AssemblyInfo.cs
App.config wolfSSL-Example-IOCallbacks.cs wolfSSL-Example-IOCallbacks.csproj
wolfSSL-TLS-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Client.cs wolfSSL-TLS-Client.csproj
wolfSSL-TLS-PSK-Client
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Client.cs wolfSSL-TLS-PSK-Client.csproj
wolfSSL-TLS-PSK-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-PSK-Server.cs wolfSSL-TLS-PSK-Server.csproj
wolfSSL-TLS-Server
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-Server.cs wolfSSL-TLS-Server.csproj
wolfSSL-TLS-ServerThreaded
Properties AssemblyInfo.cs
App.config wolfSSL-TLS-ServerThreaded.cs wolfSSL-TLS-ServerThreaded.csproj
wolfSSL_CSharp
Properties AssemblyInfo.cs Resources.Designer.cs Resources.resx
X509.cs wolfCrypt.cs wolfSSL.cs wolfSSL_CSharp.csproj
README.md include.am user_settings.h wolfSSL_CSharp.sln wolfssl.vcxproj
python README.md
rust
wolfssl-wolfcrypt
src aes.rs blake2.rs chacha20_poly1305.rs cmac.rs cmac_mac.rs curve25519.rs dh.rs dilithium.rs ecc.rs ecdsa.rs ed25519.rs ed448.rs fips.rs hkdf.rs hmac.rs hmac_mac.rs kdf.rs lib.rs lms.rs mlkem.rs mlkem_kem.rs pbkdf2_password_hash.rs prf.rs random.rs rsa.rs rsa_pkcs1v15.rs sha.rs sha_digest.rs sys.rs
tests
common mod.rs
test_aes.rs test_blake2.rs test_chacha20_poly1305.rs test_cmac.rs test_cmac_mac.rs test_curve25519.rs test_dh.rs test_dilithium.rs test_ecc.rs test_ecdsa.rs test_ed25519.rs test_ed448.rs test_hkdf.rs test_hmac.rs test_hmac_mac.rs test_kdf.rs test_lms.rs test_mlkem.rs test_mlkem_kem.rs test_pbkdf2_password_hash.rs test_prf.rs test_random.rs test_rsa.rs test_rsa_pkcs1v15.rs test_sha.rs test_sha_digest.rs test_wolfcrypt.rs
CHANGELOG.md Cargo.lock Cargo.toml Makefile README.md build.rs headers.h
Makefile README.md include.am
include.am
zephyr
samples
wolfssl_benchmark
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_test
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
CMakeLists.txt README install_test.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_sock
boards native_sim.conf
src tls_sock.c
CMakeLists.txt README install_sample.sh prj-no-malloc.conf prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl_tls_thread
boards native_sim.conf nrf5340dk_nrf5340_cpuapp.conf nrf5340dk_nrf5340_cpuapp_ns.conf
src tls_threaded.c
CMakeLists.txt README install_sample.sh prj.conf sample.yaml zephyr_legacy.conf zephyr_v4.1.conf
wolfssl options.h
CMakeLists.txt Kconfig Kconfig.tls-generic README.md include.am module.yml user_settings-no-malloc.h user_settings.h zephyr_init.c
.codespellexcludelines .cyignore .editorconfig .gitignore .wolfssl_known_macro_extras AUTHORS CMakeLists.txt CMakePresets.json CMakeSettings.json COPYING ChangeLog.md INSTALL LICENSING LPCExpresso.cproject LPCExpresso.project Makefile.am README README-async.md README.md SCRIPTS-LIST SECURITY-POLICY.md SECURITY-REPORT-TEMPLATE.md Vagrantfile autogen.sh commit-tests.sh configure.ac fips-check.sh fips-hash.sh gencertbuf.pl input pull_to_vagrant.sh quit resource.h stamp-h.in valgrind-bash.supp valgrind-error.sh wnr-example.conf wolfssl-VS2022.vcxproj wolfssl.rc wolfssl.vcproj wolfssl.vcxproj wolfssl64.sln
.clangd .gitignore DOCS.md Makefile README.md assert.c core.c crypto.c env.c fs.c http.c ini.c json.c log.c luna.h main.c makext.mk path.c process.c request.c sqlite.c stash.c template.c util.c
wolfssl/wolfcrypt/src/ge_448.c raw
    1/* ge_448.c
    2 *
    3 * Copyright (C) 2006-2026 wolfSSL Inc.
    4 *
    5 * This file is part of wolfSSL.
    6 *
    7 * wolfSSL is free software; you can redistribute it and/or modify
    8 * it under the terms of the GNU General Public License as published by
    9 * the Free Software Foundation; either version 3 of the License, or
   10 * (at your option) any later version.
   11 *
   12 * wolfSSL is distributed in the hope that it will be useful,
   13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
   14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   15 * GNU General Public License for more details.
   16 *
   17 * You should have received a copy of the GNU General Public License
   18 * along with this program; if not, write to the Free Software
   19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
   20 */
   21
   22/* Based On Daniel J Bernstein's ed25519 Public Domain ref10 work.
   23 * Small implementation based on Daniel Beer's ed25519 public domain work.
   24 * Reworked for ed448 by Sean Parkinson.
   25 */
   26
   27/* Generated using (from wolfssl):
   28 *   cd ../scripts/curve448
   29 *   ./gen-curve448.sh
   30 */
   31
   32#include <wolfssl/wolfcrypt/libwolfssl_sources.h>
   33
   34#ifdef HAVE_ED448
   35
   36#include <wolfssl/wolfcrypt/ge_448.h>
   37#include <wolfssl/wolfcrypt/ed448.h>
   38#ifdef NO_INLINE
   39    #include <wolfssl/wolfcrypt/misc.h>
   40#else
   41    #define WOLFSSL_MISC_INCLUDED
   42    #include <wolfcrypt/src/misc.c>
   43#endif
   44
   45/*
   46sc means scalar.
   47ge means group element.
   48
   49Here the group is the set of pairs (x,y) of field elements (see ge_448.h)
   50satisfying -x^2 + y^2 = 1 + d x^2y^2
   51where d = -39081
   52
   53Representations:
   54  ge448_p2 (projective) :  (X:Y:Z) satisfying x=X/Z, y=Y/Z
   55  ge448_precomp (affine):  (X:Y)
   56*/
   57
   58
   59#ifdef ED448_SMALL
   60
   61/* Base point of ed448 */
   62static const ge448_p2 ed448_base = {
   63    { 0x5e, 0xc0, 0x0c, 0xc7, 0x2b, 0xa8, 0x26, 0x26, 0x8e, 0x93, 0x00, 0x8b,
   64      0xe1, 0x80, 0x3b, 0x43, 0x11, 0x65, 0xb6, 0x2a, 0xf7, 0x1a, 0xae, 0x12,
   65      0x64, 0xa4, 0xd3, 0xa3, 0x24, 0xe3, 0x6d, 0xea, 0x67, 0x17, 0x0f, 0x47,
   66      0x70, 0x65, 0x14, 0x9e, 0xda, 0x36, 0xbf, 0x22, 0xa6, 0x15, 0x1d, 0x22,
   67      0xed, 0x0d, 0xed, 0x6b, 0xc6, 0x70, 0x19, 0x4f },
   68    { 0x14, 0xfa, 0x30, 0xf2, 0x5b, 0x79, 0x08, 0x98, 0xad, 0xc8, 0xd7, 0x4e,
   69      0x2c, 0x13, 0xbd, 0xfd, 0xc4, 0x39, 0x7c, 0xe6, 0x1c, 0xff, 0xd3, 0x3a,
   70      0xd7, 0xc2, 0xa0, 0x05, 0x1e, 0x9c, 0x78, 0x87, 0x40, 0x98, 0xa3, 0x6c,
   71      0x73, 0x73, 0xea, 0x4b, 0x62, 0xc7, 0xc9, 0x56, 0x37, 0x20, 0x76, 0x88,
   72      0x24, 0xbc, 0xb6, 0x6e, 0x71, 0x46, 0x3f, 0x69 },
   73    { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   74      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   75      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   76      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   77      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
   78};
   79
   80static const word8 ed448_order[56] = {
   81    0xf3, 0x44, 0x58, 0xab, 0x92, 0xc2, 0x78, 0x23, 0x55, 0x8f, 0xc5, 0x8d,
   82    0x72, 0xc2, 0x6c, 0x21, 0x90, 0x36, 0xd6, 0xae, 0x49, 0xdb, 0x4e, 0xc4,
   83    0xe9, 0x23, 0xca, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   84    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   85    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f,
   86};
   87
   88/* Part of order of ed448 that needs tp be multiplied when reducing */
   89static const word8 ed448_order_mul[56] = {
   90    0x0d, 0xbb, 0xa7, 0x54, 0x6d, 0x3d, 0x87, 0xdc, 0xaa, 0x70, 0x3a, 0x72,
   91    0x8d, 0x3d, 0x93, 0xde, 0x6f, 0xc9, 0x29, 0x51, 0xb6, 0x24, 0xb1, 0x3b,
   92    0x16, 0xdc, 0x35, 0x83,
   93};
   94
   95/* Reduce scalar mod the order of the curve.
   96 * Scalar Will be 114 bytes.
   97 *
   98 * Only performs a weak reduce.
   99 *
  100 * b  [in]  Scalar to reduce.
  101 */
  102void sc448_reduce(byte* b)
  103{
  104    int i, j;
  105    word32 t[114];
  106    word8 o;
  107
  108    for (i = 0; i < 86; i++) {
  109        t[i] = b[i];
  110    }
  111    for (i = 0; i < 58; i++) {
  112        for (j = 0; j < 28; j++)
  113            t[i+j] += b[i+56] * ((word32)ed448_order_mul[j] << 2);
  114        t[i+56] = 0;
  115    }
  116    for (i = 54; i < 87; i++) {
  117        t[i+1] += t[i] >> 8;
  118        t[i] &= 0xff;
  119    }
  120    for (i = 0; i < 31; i++) {
  121        for (j = 0; j < 28; j++)
  122            t[i+j] += t[i+56] * ((word32)ed448_order_mul[j] << 2);
  123        t[i+56] = 0;
  124    }
  125    for (i = 54; i < 60; i++) {
  126        t[i+1] += t[i] >> 8;
  127        t[i] &= 0xff;
  128    }
  129    for (i = 0; i < 4; i++) {
  130        for (j = 0; j < 28; j++)
  131            t[i+j] += t[i+56] * ((word32)ed448_order_mul[j] << 2);
  132        t[i+56] = 0;
  133    }
  134    for (i = 0; i < 55; i++) {
  135        t[i+1] += t[i] >> 8;
  136        t[i] &= 0xff;
  137    }
  138    o = t[55] >> 6;
  139    t[55] &= 0x3f;
  140    for (j = 0; j < 28; j++)
  141        t[j] += o * (word32)ed448_order_mul[j];
  142    for (i = 0; i < 55; i++) {
  143        t[i+1] += t[i] >> 8;
  144        b[i] = t[i] & 0xff;
  145    }
  146    b[i] = t[i] & 0xff;
  147    b[i+1] = 0;
  148}
  149
  150/* Multiply a by b and add d. r = (a * b + d) mod order
  151 *
  152 * r  [in]  Scalar to hold result.
  153 * a  [in]  Scalar to multiply.
  154 * b  [in]  Scalar to multiply.
  155 * d  [in]  Scalar to add to multiplicative result.
  156 */
  157void sc448_muladd(byte* r, const byte* a, const byte* b, const byte* d)
  158{
  159    int i, j;
  160    word32 t[112];
  161    word8 o;
  162    sword16 u;
  163
  164    /* a * b + d */
  165    for (i = 0; i < 56; i++)
  166        t[i] = d[i];
  167    for (i = 0; i < 56; i++) {
  168        for (j = 0; j < 56; j++)
  169            t[i+j] += (sword16)a[i] * b[j];
  170        t[i+56] = 0;
  171    }
  172
  173    for (i = 0; i < 111; i++) {
  174        t[i+1] += t[i] >> 8;
  175        t[i] &= 0xff;
  176    }
  177    for (i = 0; i < 56; i++) {
  178        for (j = 0; j < 28; j++)
  179            t[i+j] += t[i+56] * ((word32)ed448_order_mul[j] << 2);
  180        t[i+56] = 0;
  181    }
  182    for (i = 54; i < 85; i++) {
  183        t[i+1] += t[i] >> 8;
  184        t[i] &= 0xff;
  185    }
  186    for (i = 0; i < 29; i++) {
  187        for (j = 0; j < 28; j++)
  188            t[i+j] += t[i+56] * ((word32)ed448_order_mul[j] << 2);
  189        t[i+56] = 0;
  190    }
  191    for (i = 54; i < 58; i++) {
  192        t[i+1] += t[i] >> 8;
  193        t[i] &= 0xff;
  194    }
  195    for (i = 0; i < 2; i++) {
  196        for (j = 0; j < 28; j++)
  197            t[i+j] += t[i+56] * ((word32)ed448_order_mul[j] << 2);
  198        t[i+56] = 0;
  199    }
  200    for (i = 0; i < 55; i++) {
  201        t[i+1] += t[i] >> 8;
  202        t[i] &= 0xff;
  203    }
  204    o = t[55] >> 6;
  205    t[55] &= 0x3f;
  206    for (j = 0; j < 28; j++)
  207        t[j] += o * (word32)ed448_order_mul[j];
  208    for (i = 0; i < 55; i++) {
  209        t[i+1] += t[i] >> 8;
  210        r[i] = t[i] & 0xff;
  211    }
  212    r[i] = t[i] & 0xff;
  213    r[i+1] = 0;
  214    /* Reduce to mod order. */
  215    u = 0;
  216    for (i = 0; i < 56; i++) {
  217        u += r[i] - ed448_order[i]; u >>= 8;
  218    }
  219    o = 0 - (u >= 0);
  220    u = 0;
  221    for (i = 0; i < 56; i++) {
  222        u += r[i] - (ed448_order[i] & o); r[i] = u & 0xff; u >>= 8;
  223    }
  224}
  225
  226/* Double the point on the Twisted Edwards curve. r = 2.p
  227 *
  228 * r  [in]  Point to hold result.
  229 * p  [in]  Point to double.
  230 */
  231static WC_INLINE void ge448_dbl(ge448_p2 *r,const ge448_p2 *p)
  232{
  233    ge448 t0[GE448_WORDS];
  234    ge448 t1[GE448_WORDS];
  235
  236    fe448_add(t0, p->X, p->Y);    /* t0 = B1 = X1+Y1     */
  237    fe448_reduce(t0);
  238    fe448_sqr(t0, t0);            /* t0 = B = (X1+Y1)^2  */
  239    fe448_sqr(r->X, p->X);        /* r->X = C = X1^2     */
  240    fe448_sqr(r->Y, p->Y);        /* r->Y = D = Y1^2     */
  241    fe448_add(t1, r->X, r->Y);    /* t1 = E = C+D        */
  242    fe448_reduce(t1);
  243    fe448_sub(r->Y, r->X, r->Y);  /* r->Y = Y31 = C-D    */
  244    fe448_sqr(r->Z, p->Z);        /* r->Z = H = Z1^2     */
  245    fe448_add(r->Z, r->Z, r->Z);  /* r->Z = J1 = 2*H     */
  246    fe448_sub(r->Z, t1, r->Z);    /* r->Z = J = E-2*H    */
  247    fe448_reduce(r->Z);
  248    fe448_sub(r->X, t0, t1);      /* r->X = X31 = B-E    */
  249    fe448_mul(r->X, r->X, r->Z);  /* r->X = X3 = (B-E)*J */
  250    fe448_mul(r->Y, r->Y, t1);    /* r->Y = Y3 = E*(C-D) */
  251    fe448_mul(r->Z, t1, r->Z);    /* r->Z = Z3 = E*J     */
  252}
  253
  254/* Add two point on the Twisted Edwards curve. r = p + q
  255 *
  256 * r  [in]  Point to hold result.
  257 * p  [in]  Point to add.
  258 * q  [in]  Point to add.
  259 */
  260static WC_INLINE void ge448_add(ge448_p2* r, const ge448_p2* p,
  261                                const ge448_p2* q)
  262{
  263    ge448 t0[GE448_WORDS];
  264    ge448 t1[GE448_WORDS];
  265    ge448 t2[GE448_WORDS];
  266    ge448 t3[GE448_WORDS];
  267    ge448 t4[GE448_WORDS];
  268
  269    fe448_mul(t1, p->X, q->X);      /* t1 = C = X1*X2             */
  270    fe448_mul(t2, p->Y, q->Y);      /* t2 = D = Y1*Y2             */
  271    fe448_mul(t3, t1, t2);          /* t3 = E1 = C*D              */
  272    fe448_mul39081(t3, t3);         /* t3 = E = d*C*D             */
  273    fe448_mul(r->Z, p->Z, q->Z);    /* r->Z = A = Z1*Z2           */
  274    fe448_sqr(t0, r->Z);            /* t0 = B = A^2               */
  275    fe448_add(t4, t0, t3);          /* t4 = F = B-(-E)            */
  276    fe448_sub(t0, t0, t3);          /* t0 = G = B+(-E)            */
  277    fe448_reduce(t0);
  278    fe448_add(r->X, p->X, p->Y);    /* r->X = H1 = X1+Y1          */
  279    fe448_reduce(r->X);
  280    fe448_add(r->Y, q->X, q->Y);    /* r->Y = H2 = X2+Y2          */
  281    fe448_reduce(r->Y);
  282    fe448_mul(r->X, r->X, r->Y);    /* r->X = H = (X1+Y1)*(X2+Y2) */
  283    fe448_sub(r->X, r->X, t1);      /* r->X = X31 = H-C           */
  284    fe448_sub(r->X, r->X, t2);      /* r->X = X32 = H-C-D         */
  285    fe448_reduce(r->X);
  286    fe448_mul(r->X, r->X, t4);      /* r->X = X33 = F*(H-C-D)     */
  287    fe448_mul(r->X, r->X, r->Z);    /* r->X = X3 = A*F*(H-C-D)    */
  288    fe448_sub(r->Y, t2, t1);        /* r->Y = Y31 = D-C           */
  289    fe448_reduce(r->Y);
  290    fe448_mul(r->Y, r->Y, t0);      /* r->Y = Y32 = G*(D-C)       */
  291    fe448_mul(r->Y, r->Y, r->Z);    /* r->Y = Y3 = A*F*(D-C)      */
  292    fe448_mul(r->Z, t4, t0);        /* r->Z = Z3 = F*G            */
  293}
  294
  295/* Convert point to byte array assuming projective ordinates.
  296 *
  297 * b  [in]  Array of bytes to hold compressed point.
  298 * p  [in]  Point to convert.
  299 */
  300void ge448_to_bytes(byte *s, const ge448_p2 *h)
  301{
  302    ge448 recip[56];
  303    ge448 x[56];
  304
  305    fe448_invert(recip, h->Z);
  306    fe448_mul(x, h->X, recip);
  307    fe448_mul(s, h->Y, recip);
  308    fe448_norm(x);
  309    fe448_norm(s);
  310    s[56] = (byte)(x[0] & 1) << 7;
  311}
  312
  313/* Compress the point to y-ordinate and negative bit.
  314 *
  315 * out    [in]  Array of bytes to hold compressed key.
  316 * xIn    [in]  The x-ordinate.
  317 * yIn    [in]  The y-ordinate.
  318 */
  319int ge448_compress_key(byte* out, const byte* xIn, const byte* yIn)
  320{
  321    ge448 x[56];
  322
  323    fe448_copy(x, xIn);
  324    fe448_copy(out, yIn);
  325    fe448_norm(x);
  326    fe448_norm(out);
  327    out[56] = (byte)(x[0] & 1) << 7;
  328
  329    return 0;
  330}
  331
  332/* Perform a scalar multiplication of the a point. r = p * base
  333 *
  334 * r  [in]  Point to hold result.
  335 * a  [in]  Scalar to multiply by.
  336 */
  337static void ge448_scalarmult(ge448_p2* h, const ge448_p2* p, const byte* a)
  338{
  339    ge448_p2 r;
  340    ge448_p2 s;
  341    int i;
  342
  343    XMEMSET(&r, 0, sizeof(r));
  344    r.Y[0] = 1;
  345    r.Z[0] = 1;
  346
  347    for (i = 447; i >= 0; i--) {
  348        const byte bit = (a[i >> 3] >> (i & 7)) & 1;
  349
  350        ge448_dbl(&r, &r);
  351        ge448_add(&s, &r, p);
  352
  353        fe448_cmov(r.X, s.X, bit);
  354        fe448_cmov(r.Y, s.Y, bit);
  355        fe448_cmov(r.Z, s.Z, bit);
  356    }
  357
  358    XMEMCPY(h, &r, sizeof(r));
  359}
  360
  361/* Perform a scalar multiplication of the base point. r = a * base
  362 *
  363 * r  [in]  Point to hold result.
  364 * a  [in]  Scalar to multiply by.
  365 */
  366int ge448_scalarmult_base(ge448_p2* h, const byte* a)
  367{
  368    ge448_scalarmult(h, &ed448_base, a);
  369    return 0;
  370}
  371
  372/* Perform a scalar multiplication of the base point and public point.
  373 *   r = a * p + b * base
  374 * Uses a sliding window of 5 bits.
  375 * Not constant time.
  376 *
  377 * r  [in]  Point to hold result.
  378 * a  [in]  Scalar to multiply by.
  379 */
  380int ge448_double_scalarmult_vartime(ge448_p2 *r, const byte *a,
  381                                    const ge448_p2 *A, const byte *b)
  382{
  383    ge448_p2 t;
  384
  385    ge448_scalarmult(&t, &ed448_base, b);
  386    ge448_scalarmult(r, A, a);
  387    ge448_add(r, r, &t);
  388
  389    return 0;
  390}
  391
  392/* Convert compressed point to negative of affine point.
  393 * Calculates x from the y and the negative bit.
  394 * Not constant time.
  395 *
  396 * r  [in]  Uncompressed point.
  397 * b  [in]  Array of bytes representing point.
  398 * returns 0 on success and -1 on failure.
  399 */
  400int ge448_from_bytes_negate_vartime(ge448_p2 *r, const byte *b)
  401{
  402    int   ret = 0;
  403    ge448 u[GE448_WORDS];
  404    ge448 v[GE448_WORDS];
  405    ge448 u3[GE448_WORDS];
  406    ge448 vxx[GE448_WORDS];
  407    ge448 check[GE448_WORDS];
  408
  409    fe448_copy(r->Y, b);
  410    XMEMSET(r->Z, 0, sizeof(r->Z));
  411    r->Z[0] = 1;
  412    fe448_sqr(u, r->Y);                /* u = y^2                      */
  413    fe448_mul39081(v, u);              /* v = 39081.y^2                */
  414    fe448_sub(u, u, r->Z);             /* u = y^2-1                    */
  415    fe448_add(v, v, r->Z);             /* v = 39081.y^2-1              */
  416    fe448_neg(v, v);                   /* v = -39081.y^2-1 = d.y^2-1   */
  417
  418    fe448_sqr(r->X, v);                /* x = v^2                      */
  419    fe448_mul(r->X, r->X, v);          /* x = v^3                      */
  420    fe448_sqr(u3, u);                  /* x = u^2.v^3                  */
  421    fe448_mul(r->X, r->X, u3);         /* x = u^2.v^3                  */
  422    fe448_mul(u3, u3, u);              /* u3 = u^3                     */
  423    fe448_mul(r->X, r->X, u3);         /* x = u^5.v^3                  */
  424
  425    fe448_pow_2_446_222_1(r->X, r->X); /* x = (u^5.v^3)^((q-3)/4)      */
  426    fe448_mul(r->X, r->X, u3);         /* x = u^3(u^5.v^3)^((q-3)/4)   */
  427    fe448_mul(r->X, r->X, v);          /* x = u^3.v(u^5.v^3)^((q-3)/4) */
  428
  429    fe448_sqr(vxx, r->X);
  430    fe448_mul(vxx, vxx, v);
  431    fe448_sub(check, vxx, u);          /* check = v.x^2-u              */
  432    fe448_norm(check);
  433    fe448_norm(r->X);
  434    fe448_norm(r->Y);
  435    /* Note; vx^2+u is NOT correct. */
  436    if (fe448_isnonzero(check)) {
  437        ret = -1;
  438    }
  439
  440    /* Calculating negative of point in bytes - negate only if X is correct. */
  441    if ((r->X[0] & 1) == (b[56] >> 7)) {
  442        fe448_neg(r->X, r->X);
  443    }
  444
  445    return ret;
  446}
  447
  448#else /* !ED448_SMALL */
  449
  450#if defined(CURVED448_128BIT)
  451
  452/* Reduce scalar mod the order of the curve.
  453 * Scalar Will be 114 bytes.
  454 *
  455 * Only performs a weak reduce.
  456 *
  457 * b  [in]  Scalar to reduce.
  458 */
  459void sc448_reduce(byte* b)
  460{
  461    word64 d[8];
  462    word128 t[17];
  463    word128 c;
  464    word64 o;
  465
  466    /* Load from bytes: 114 bytes */
  467#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  468    for (o = 0; o < 16; o++) {
  469        t[o] = (word64)(
  470                (((sword64)b[o * 7 + 0]) <<  0)
  471              | (((sword64)b[o * 7 + 1]) <<  8)
  472              | (((sword64)b[o * 7 + 2]) << 16)
  473              | (((sword64)b[o * 7 + 3]) << 24)
  474              | (((sword64)b[o * 7 + 4]) << 32)
  475              | (((sword64)b[o * 7 + 5]) << 40)
  476              | (((sword64)b[o * 7 + 6]) << 48));
  477    }
  478    t[16] = (word64)(
  479            (((sword64)b[o * 7 + 0]) <<  0)
  480          | (((sword64)b[o * 7 + 1]) <<  8));
  481#else
  482    t[ 0] = (word64) ((sword64) (b[ 0]) <<  0)
  483          | (word64) ((sword64) (b[ 1]) <<  8)
  484          | (word64) ((sword64) (b[ 2]) << 16)
  485          | (word64) ((sword64) (b[ 3]) << 24)
  486          | (word64) ((sword64) (b[ 4]) << 32)
  487          | (word64) ((sword64) (b[ 5]) << 40)
  488          | (word64) ((sword64) (b[ 6]) << 48);
  489    t[ 1] = (word64) ((sword64) (b[ 7]) <<  0)
  490          | (word64) ((sword64) (b[ 8]) <<  8)
  491          | (word64) ((sword64) (b[ 9]) << 16)
  492          | (word64) ((sword64) (b[10]) << 24)
  493          | (word64) ((sword64) (b[11]) << 32)
  494          | (word64) ((sword64) (b[12]) << 40)
  495          | (word64) ((sword64) (b[13]) << 48);
  496    t[ 2] = (word64) ((sword64) (b[14]) <<  0)
  497          | (word64) ((sword64) (b[15]) <<  8)
  498          | (word64) ((sword64) (b[16]) << 16)
  499          | (word64) ((sword64) (b[17]) << 24)
  500          | (word64) ((sword64) (b[18]) << 32)
  501          | (word64) ((sword64) (b[19]) << 40)
  502          | (word64) ((sword64) (b[20]) << 48);
  503    t[ 3] = (word64) ((sword64) (b[21]) <<  0)
  504          | (word64) ((sword64) (b[22]) <<  8)
  505          | (word64) ((sword64) (b[23]) << 16)
  506          | (word64) ((sword64) (b[24]) << 24)
  507          | (word64) ((sword64) (b[25]) << 32)
  508          | (word64) ((sword64) (b[26]) << 40)
  509          | (word64) ((sword64) (b[27]) << 48);
  510    t[ 4] = (word64) ((sword64) (b[28]) <<  0)
  511          | (word64) ((sword64) (b[29]) <<  8)
  512          | (word64) ((sword64) (b[30]) << 16)
  513          | (word64) ((sword64) (b[31]) << 24)
  514          | (word64) ((sword64) (b[32]) << 32)
  515          | (word64) ((sword64) (b[33]) << 40)
  516          | (word64) ((sword64) (b[34]) << 48);
  517    t[ 5] = (word64) ((sword64) (b[35]) <<  0)
  518          | (word64) ((sword64) (b[36]) <<  8)
  519          | (word64) ((sword64) (b[37]) << 16)
  520          | (word64) ((sword64) (b[38]) << 24)
  521          | (word64) ((sword64) (b[39]) << 32)
  522          | (word64) ((sword64) (b[40]) << 40)
  523          | (word64) ((sword64) (b[41]) << 48);
  524    t[ 6] = (word64) ((sword64) (b[42]) <<  0)
  525          | (word64) ((sword64) (b[43]) <<  8)
  526          | (word64) ((sword64) (b[44]) << 16)
  527          | (word64) ((sword64) (b[45]) << 24)
  528          | (word64) ((sword64) (b[46]) << 32)
  529          | (word64) ((sword64) (b[47]) << 40)
  530          | (word64) ((sword64) (b[48]) << 48);
  531    t[ 7] = (word64) ((sword64) (b[49]) <<  0)
  532          | (word64) ((sword64) (b[50]) <<  8)
  533          | (word64) ((sword64) (b[51]) << 16)
  534          | (word64) ((sword64) (b[52]) << 24)
  535          | (word64) ((sword64) (b[53]) << 32)
  536          | (word64) ((sword64) (b[54]) << 40)
  537          | (word64) ((sword64) (b[55]) << 48);
  538    t[ 8] = (word64) ((sword64) (b[56]) <<  0)
  539          | (word64) ((sword64) (b[57]) <<  8)
  540          | (word64) ((sword64) (b[58]) << 16)
  541          | (word64) ((sword64) (b[59]) << 24)
  542          | (word64) ((sword64) (b[60]) << 32)
  543          | (word64) ((sword64) (b[61]) << 40)
  544          | (word64) ((sword64) (b[62]) << 48);
  545    t[ 9] = (word64) ((sword64) (b[63]) <<  0)
  546          | (word64) ((sword64) (b[64]) <<  8)
  547          | (word64) ((sword64) (b[65]) << 16)
  548          | (word64) ((sword64) (b[66]) << 24)
  549          | (word64) ((sword64) (b[67]) << 32)
  550          | (word64) ((sword64) (b[68]) << 40)
  551          | (word64) ((sword64) (b[69]) << 48);
  552    t[10] = (word64) ((sword64) (b[70]) <<  0)
  553          | (word64) ((sword64) (b[71]) <<  8)
  554          | (word64) ((sword64) (b[72]) << 16)
  555          | (word64) ((sword64) (b[73]) << 24)
  556          | (word64) ((sword64) (b[74]) << 32)
  557          | (word64) ((sword64) (b[75]) << 40)
  558          | (word64) ((sword64) (b[76]) << 48);
  559    t[11] = (word64) ((sword64) (b[77]) <<  0)
  560          | (word64) ((sword64) (b[78]) <<  8)
  561          | (word64) ((sword64) (b[79]) << 16)
  562          | (word64) ((sword64) (b[80]) << 24)
  563          | (word64) ((sword64) (b[81]) << 32)
  564          | (word64) ((sword64) (b[82]) << 40)
  565          | (word64) ((sword64) (b[83]) << 48);
  566    t[12] = (word64) ((sword64) (b[84]) <<  0)
  567          | (word64) ((sword64) (b[85]) <<  8)
  568          | (word64) ((sword64) (b[86]) << 16)
  569          | (word64) ((sword64) (b[87]) << 24)
  570          | (word64) ((sword64) (b[88]) << 32)
  571          | (word64) ((sword64) (b[89]) << 40)
  572          | (word64) ((sword64) (b[90]) << 48);
  573    t[13] = (word64) ((sword64) (b[91]) <<  0)
  574          | (word64) ((sword64) (b[92]) <<  8)
  575          | (word64) ((sword64) (b[93]) << 16)
  576          | (word64) ((sword64) (b[94]) << 24)
  577          | (word64) ((sword64) (b[95]) << 32)
  578          | (word64) ((sword64) (b[96]) << 40)
  579          | (word64) ((sword64) (b[97]) << 48);
  580    t[14] = (word64) ((sword64) (b[98]) <<  0)
  581          | (word64) ((sword64) (b[99]) <<  8)
  582          | (word64) ((sword64) (b[100]) << 16)
  583          | (word64) ((sword64) (b[101]) << 24)
  584          | (word64) ((sword64) (b[102]) << 32)
  585          | (word64) ((sword64) (b[103]) << 40)
  586          | (word64) ((sword64) (b[104]) << 48);
  587    t[15] = (word64) ((sword64) (b[105]) <<  0)
  588          | (word64) ((sword64) (b[106]) <<  8)
  589          | (word64) ((sword64) (b[107]) << 16)
  590          | (word64) ((sword64) (b[108]) << 24)
  591          | (word64) ((sword64) (b[109]) << 32)
  592          | (word64) ((sword64) (b[110]) << 40)
  593          | (word64) ((sword64) (b[111]) << 48);
  594    t[16] = (word64) ((sword64) (b[112]) <<  0)
  595          | (word64) ((sword64) (b[113]) <<  8);
  596#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
  597
  598    /* Mod curve order */
  599    /* 2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d */
  600    /* Mod top half of extra words */
  601#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  602    for (o = 0; o < 5; o++) {
  603        t[ 4 + o] += (sword128)0x21cf5b5529eec34L * t[12 + o];
  604        t[ 5 + o] += (sword128)0x0f635c8e9c2ab70L * t[12 + o];
  605        t[ 6 + o] += (sword128)0x2d944a725bf7a4cL * t[12 + o];
  606        t[ 7 + o] += (sword128)0x20cd77058eec490L * t[12 + o];
  607    }
  608    t[12]  = 0;
  609#else
  610    t[ 4] += (sword128)0x21cf5b5529eec34L * t[12];
  611    t[ 5] += (sword128)0x0f635c8e9c2ab70L * t[12];
  612    t[ 6] += (sword128)0x2d944a725bf7a4cL * t[12];
  613    t[ 7] += (sword128)0x20cd77058eec490L * t[12];
  614    t[ 5] += (sword128)0x21cf5b5529eec34L * t[13];
  615    t[ 6] += (sword128)0x0f635c8e9c2ab70L * t[13];
  616    t[ 7] += (sword128)0x2d944a725bf7a4cL * t[13];
  617    t[ 8] += (sword128)0x20cd77058eec490L * t[13];
  618    t[ 6] += (sword128)0x21cf5b5529eec34L * t[14];
  619    t[ 7] += (sword128)0x0f635c8e9c2ab70L * t[14];
  620    t[ 8] += (sword128)0x2d944a725bf7a4cL * t[14];
  621    t[ 9] += (sword128)0x20cd77058eec490L * t[14];
  622    t[ 7] += (sword128)0x21cf5b5529eec34L * t[15];
  623    t[ 8] += (sword128)0x0f635c8e9c2ab70L * t[15];
  624    t[ 9] += (sword128)0x2d944a725bf7a4cL * t[15];
  625    t[10] += (sword128)0x20cd77058eec490L * t[15];
  626    t[ 8] += (sword128)0x21cf5b5529eec34L * t[16];
  627    t[ 9] += (sword128)0x0f635c8e9c2ab70L * t[16];
  628    t[10] += (sword128)0x2d944a725bf7a4cL * t[16];
  629    t[11] += (sword128)0x20cd77058eec490L * t[16];
  630    t[12]  = 0;
  631#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
  632    /* Propagate carries */
  633    c = t[ 4] >> 56; t[ 5] += c; t[ 4] = t[ 4] & 0xffffffffffffff;
  634    c = t[ 5] >> 56; t[ 6] += c; t[ 5] = t[ 5] & 0xffffffffffffff;
  635    c = t[ 6] >> 56; t[ 7] += c; t[ 6] = t[ 6] & 0xffffffffffffff;
  636    c = t[ 7] >> 56; t[ 8] += c; t[ 7] = t[ 7] & 0xffffffffffffff;
  637    c = t[ 8] >> 56; t[ 9] += c; t[ 8] = t[ 8] & 0xffffffffffffff;
  638    c = t[ 9] >> 56; t[10] += c; t[ 9] = t[ 9] & 0xffffffffffffff;
  639    c = t[10] >> 56; t[11] += c; t[10] = t[10] & 0xffffffffffffff;
  640    c = t[11] >> 56; t[12] += c; t[11] = t[11] & 0xffffffffffffff;
  641    /* Mod bottom half of extra words */
  642#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  643    for (o = 0; o < 5; o++) {
  644        t[ 0 + o] += (sword128)0x21cf5b5529eec34L * t[ 8 + o];
  645        t[ 1 + o] += (sword128)0x0f635c8e9c2ab70L * t[ 8 + o];
  646        t[ 2 + o] += (sword128)0x2d944a725bf7a4cL * t[ 8 + o];
  647        t[ 3 + o] += (sword128)0x20cd77058eec490L * t[ 8 + o];
  648    }
  649    t[ 8]  = 0;
  650#else
  651    t[ 0] += (sword128)0x21cf5b5529eec34L * t[ 8];
  652    t[ 1] += (sword128)0x0f635c8e9c2ab70L * t[ 8];
  653    t[ 2] += (sword128)0x2d944a725bf7a4cL * t[ 8];
  654    t[ 3] += (sword128)0x20cd77058eec490L * t[ 8];
  655    t[ 1] += (sword128)0x21cf5b5529eec34L * t[ 9];
  656    t[ 2] += (sword128)0x0f635c8e9c2ab70L * t[ 9];
  657    t[ 3] += (sword128)0x2d944a725bf7a4cL * t[ 9];
  658    t[ 4] += (sword128)0x20cd77058eec490L * t[ 9];
  659    t[ 2] += (sword128)0x21cf5b5529eec34L * t[10];
  660    t[ 3] += (sword128)0x0f635c8e9c2ab70L * t[10];
  661    t[ 4] += (sword128)0x2d944a725bf7a4cL * t[10];
  662    t[ 5] += (sword128)0x20cd77058eec490L * t[10];
  663    t[ 3] += (sword128)0x21cf5b5529eec34L * t[11];
  664    t[ 4] += (sword128)0x0f635c8e9c2ab70L * t[11];
  665    t[ 5] += (sword128)0x2d944a725bf7a4cL * t[11];
  666    t[ 6] += (sword128)0x20cd77058eec490L * t[11];
  667    t[ 4] += (sword128)0x21cf5b5529eec34L * t[12];
  668    t[ 5] += (sword128)0x0f635c8e9c2ab70L * t[12];
  669    t[ 6] += (sword128)0x2d944a725bf7a4cL * t[12];
  670    t[ 7] += (sword128)0x20cd77058eec490L * t[12];
  671    t[ 8]  = 0;
  672#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
  673    /* Propagate carries */
  674    c = t[ 0] >> 56; t[ 1] += c; t[ 0] = t[ 0] & 0xffffffffffffff;
  675    c = t[ 1] >> 56; t[ 2] += c; t[ 1] = t[ 1] & 0xffffffffffffff;
  676    c = t[ 2] >> 56; t[ 3] += c; t[ 2] = t[ 2] & 0xffffffffffffff;
  677    c = t[ 3] >> 56; t[ 4] += c; t[ 3] = t[ 3] & 0xffffffffffffff;
  678    c = t[ 4] >> 56; t[ 5] += c; t[ 4] = t[ 4] & 0xffffffffffffff;
  679    c = t[ 5] >> 56; t[ 6] += c; t[ 5] = t[ 5] & 0xffffffffffffff;
  680    c = t[ 6] >> 56; t[ 7] += c; t[ 6] = t[ 6] & 0xffffffffffffff;
  681    c = t[ 7] >> 56; t[ 8] += c; t[ 7] = t[ 7] & 0xffffffffffffff;
  682    t[ 0] += (sword128)0x21cf5b5529eec34L * t[ 8];
  683    t[ 1] += (sword128)0x0f635c8e9c2ab70L * t[ 8];
  684    t[ 2] += (sword128)0x2d944a725bf7a4cL * t[ 8];
  685    t[ 3] += (sword128)0x20cd77058eec490L * t[ 8];
  686    /* Propagate carries */
  687    c = t[ 0] >> 56; t[ 1] += c; d[ 0] = (sword64)(t[ 0] & 0xffffffffffffff);
  688    c = t[ 1] >> 56; t[ 2] += c; d[ 1] = (sword64)(t[ 1] & 0xffffffffffffff);
  689    c = t[ 2] >> 56; t[ 3] += c; d[ 2] = (sword64)(t[ 2] & 0xffffffffffffff);
  690    c = t[ 3] >> 56; t[ 4] += c; d[ 3] = (sword64)(t[ 3] & 0xffffffffffffff);
  691    c = t[ 4] >> 56; t[ 5] += c; d[ 4] = (sword64)(t[ 4] & 0xffffffffffffff);
  692    c = t[ 5] >> 56; t[ 6] += c; d[ 5] = (sword64)(t[ 5] & 0xffffffffffffff);
  693    c = t[ 6] >> 56; t[ 7] += c; d[ 6] = (sword64)(t[ 6] & 0xffffffffffffff);
  694    d[ 7] = (word64)t[7];
  695    /* Mod bits over 56 in last word */
  696    o = d[7] >> 54; d[ 7] &= 0x3fffffffffffff;
  697    d[ 0] += 0x873d6d54a7bb0dL * o;
  698    d[ 1] += 0x3d8d723a70aadcL * o;
  699    d[ 2] += 0xb65129c96fde93L * o;
  700    d[ 3] += 0x8335dc163bb124L * o;
  701    /* Propagate carries */
  702    o = d[ 0] >> 56; d[ 1] += o; d[ 0] = d[ 0] & 0xffffffffffffff;
  703    o = d[ 1] >> 56; d[ 2] += o; d[ 1] = d[ 1] & 0xffffffffffffff;
  704    o = d[ 2] >> 56; d[ 3] += o; d[ 2] = d[ 2] & 0xffffffffffffff;
  705    o = d[ 3] >> 56; d[ 4] += o; d[ 3] = d[ 3] & 0xffffffffffffff;
  706    o = d[ 4] >> 56; d[ 5] += o; d[ 4] = d[ 4] & 0xffffffffffffff;
  707    o = d[ 5] >> 56; d[ 6] += o; d[ 5] = d[ 5] & 0xffffffffffffff;
  708    o = d[ 6] >> 56; d[ 7] += o; d[ 6] = d[ 6] & 0xffffffffffffff;
  709
  710    /* Convert to bytes */
  711#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  712    {
  713        word64 ow = 0;
  714        for (o = 0; o < 56; o += 7) {
  715            b[o + 0] = (byte)(d[ow] >>  0);
  716            b[o + 1] = (byte)(d[ow] >>  8);
  717            b[o + 2] = (byte)(d[ow] >> 16);
  718            b[o + 3] = (byte)(d[ow] >> 24);
  719            b[o + 4] = (byte)(d[ow] >> 32);
  720            b[o + 5] = (byte)(d[ow] >> 40);
  721            b[o + 6] = (byte)(d[ow] >> 48);
  722            ow++;
  723        }
  724        b[56] = 0;
  725    }
  726#else
  727    b[ 0] = (byte)(d[0 ] >>  0);
  728    b[ 1] = (byte)(d[0 ] >>  8);
  729    b[ 2] = (byte)(d[0 ] >> 16);
  730    b[ 3] = (byte)(d[0 ] >> 24);
  731    b[ 4] = (byte)(d[0 ] >> 32);
  732    b[ 5] = (byte)(d[0 ] >> 40);
  733    b[ 6] = (byte)(d[0 ] >> 48);
  734    b[ 7] = (byte)(d[1 ] >>  0);
  735    b[ 8] = (byte)(d[1 ] >>  8);
  736    b[ 9] = (byte)(d[1 ] >> 16);
  737    b[10] = (byte)(d[1 ] >> 24);
  738    b[11] = (byte)(d[1 ] >> 32);
  739    b[12] = (byte)(d[1 ] >> 40);
  740    b[13] = (byte)(d[1 ] >> 48);
  741    b[14] = (byte)(d[2 ] >>  0);
  742    b[15] = (byte)(d[2 ] >>  8);
  743    b[16] = (byte)(d[2 ] >> 16);
  744    b[17] = (byte)(d[2 ] >> 24);
  745    b[18] = (byte)(d[2 ] >> 32);
  746    b[19] = (byte)(d[2 ] >> 40);
  747    b[20] = (byte)(d[2 ] >> 48);
  748    b[21] = (byte)(d[3 ] >>  0);
  749    b[22] = (byte)(d[3 ] >>  8);
  750    b[23] = (byte)(d[3 ] >> 16);
  751    b[24] = (byte)(d[3 ] >> 24);
  752    b[25] = (byte)(d[3 ] >> 32);
  753    b[26] = (byte)(d[3 ] >> 40);
  754    b[27] = (byte)(d[3 ] >> 48);
  755    b[28] = (byte)(d[4 ] >>  0);
  756    b[29] = (byte)(d[4 ] >>  8);
  757    b[30] = (byte)(d[4 ] >> 16);
  758    b[31] = (byte)(d[4 ] >> 24);
  759    b[32] = (byte)(d[4 ] >> 32);
  760    b[33] = (byte)(d[4 ] >> 40);
  761    b[34] = (byte)(d[4 ] >> 48);
  762    b[35] = (byte)(d[5 ] >>  0);
  763    b[36] = (byte)(d[5 ] >>  8);
  764    b[37] = (byte)(d[5 ] >> 16);
  765    b[38] = (byte)(d[5 ] >> 24);
  766    b[39] = (byte)(d[5 ] >> 32);
  767    b[40] = (byte)(d[5 ] >> 40);
  768    b[41] = (byte)(d[5 ] >> 48);
  769    b[42] = (byte)(d[6 ] >>  0);
  770    b[43] = (byte)(d[6 ] >>  8);
  771    b[44] = (byte)(d[6 ] >> 16);
  772    b[45] = (byte)(d[6 ] >> 24);
  773    b[46] = (byte)(d[6 ] >> 32);
  774    b[47] = (byte)(d[6 ] >> 40);
  775    b[48] = (byte)(d[6 ] >> 48);
  776    b[49] = (byte)(d[7 ] >>  0);
  777    b[50] = (byte)(d[7 ] >>  8);
  778    b[51] = (byte)(d[7 ] >> 16);
  779    b[52] = (byte)(d[7 ] >> 24);
  780    b[53] = (byte)(d[7 ] >> 32);
  781    b[54] = (byte)(d[7 ] >> 40);
  782    b[55] = (byte)(d[7 ] >> 48);
  783    b[56] = 0;
  784#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
  785}
  786
  787/* Multiply a by b and add d. r = (a * b + d) mod order
  788 *
  789 * r  [in]  Scalar to hold result.
  790 * a  [in]  Scalar to multiply.
  791 * b  [in]  Scalar to multiply.
  792 * d  [in]  Scalar to add to multiplicative result.
  793 */
  794void sc448_muladd(byte* r, const byte* a, const byte* b, const byte* d)
  795{
  796    word64 ad[8], bd[8], dd[8], rd[8];
  797    word128 t[16];
  798    word128 c;
  799    word64 o;
  800    sword64 u;
  801
  802    /* Load from bytes: 56 bytes */
  803#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  804    for (o = 0; o < 8; o++) {
  805        ad[o] = (word64)(
  806                (((sword64)a[o * 7 + 0]) <<  0)
  807              | (((sword64)a[o * 7 + 1]) <<  8)
  808              | (((sword64)a[o * 7 + 2]) << 16)
  809              | (((sword64)a[o * 7 + 3]) << 24)
  810              | (((sword64)a[o * 7 + 4]) << 32)
  811              | (((sword64)a[o * 7 + 5]) << 40)
  812              | (((sword64)a[o * 7 + 6]) << 48));
  813    }
  814#else
  815    ad[ 0] = (word64) ((sword64) (a[ 0]) <<  0)
  816           | (word64) ((sword64) (a[ 1]) <<  8)
  817           | (word64) ((sword64) (a[ 2]) << 16)
  818           | (word64) ((sword64) (a[ 3]) << 24)
  819           | (word64) ((sword64) (a[ 4]) << 32)
  820           | (word64) ((sword64) (a[ 5]) << 40)
  821           | (word64) ((sword64) (a[ 6]) << 48);
  822    ad[ 1] = (word64) ((sword64) (a[ 7]) <<  0)
  823           | (word64) ((sword64) (a[ 8]) <<  8)
  824           | (word64) ((sword64) (a[ 9]) << 16)
  825           | (word64) ((sword64) (a[10]) << 24)
  826           | (word64) ((sword64) (a[11]) << 32)
  827           | (word64) ((sword64) (a[12]) << 40)
  828           | (word64) ((sword64) (a[13]) << 48);
  829    ad[ 2] = (word64) ((sword64) (a[14]) <<  0)
  830           | (word64) ((sword64) (a[15]) <<  8)
  831           | (word64) ((sword64) (a[16]) << 16)
  832           | (word64) ((sword64) (a[17]) << 24)
  833           | (word64) ((sword64) (a[18]) << 32)
  834           | (word64) ((sword64) (a[19]) << 40)
  835           | (word64) ((sword64) (a[20]) << 48);
  836    ad[ 3] = (word64) ((sword64) (a[21]) <<  0)
  837           | (word64) ((sword64) (a[22]) <<  8)
  838           | (word64) ((sword64) (a[23]) << 16)
  839           | (word64) ((sword64) (a[24]) << 24)
  840           | (word64) ((sword64) (a[25]) << 32)
  841           | (word64) ((sword64) (a[26]) << 40)
  842           | (word64) ((sword64) (a[27]) << 48);
  843    ad[ 4] = (word64) ((sword64) (a[28]) <<  0)
  844           | (word64) ((sword64) (a[29]) <<  8)
  845           | (word64) ((sword64) (a[30]) << 16)
  846           | (word64) ((sword64) (a[31]) << 24)
  847           | (word64) ((sword64) (a[32]) << 32)
  848           | (word64) ((sword64) (a[33]) << 40)
  849           | (word64) ((sword64) (a[34]) << 48);
  850    ad[ 5] = (word64) ((sword64) (a[35]) <<  0)
  851           | (word64) ((sword64) (a[36]) <<  8)
  852           | (word64) ((sword64) (a[37]) << 16)
  853           | (word64) ((sword64) (a[38]) << 24)
  854           | (word64) ((sword64) (a[39]) << 32)
  855           | (word64) ((sword64) (a[40]) << 40)
  856           | (word64) ((sword64) (a[41]) << 48);
  857    ad[ 6] = (word64) ((sword64) (a[42]) <<  0)
  858           | (word64) ((sword64) (a[43]) <<  8)
  859           | (word64) ((sword64) (a[44]) << 16)
  860           | (word64) ((sword64) (a[45]) << 24)
  861           | (word64) ((sword64) (a[46]) << 32)
  862           | (word64) ((sword64) (a[47]) << 40)
  863           | (word64) ((sword64) (a[48]) << 48);
  864    ad[ 7] = (word64) ((sword64) (a[49]) <<  0)
  865           | (word64) ((sword64) (a[50]) <<  8)
  866           | (word64) ((sword64) (a[51]) << 16)
  867           | (word64) ((sword64) (a[52]) << 24)
  868           | (word64) ((sword64) (a[53]) << 32)
  869           | (word64) ((sword64) (a[54]) << 40)
  870           | (word64) ((sword64) (a[55]) << 48);
  871#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
  872    /* Load from bytes: 56 bytes */
  873#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  874    for (o = 0; o < 8; o++) {
  875        bd[o] = (word64)(
  876                (((sword64)b[o * 7 + 0]) <<  0)
  877              | (((sword64)b[o * 7 + 1]) <<  8)
  878              | (((sword64)b[o * 7 + 2]) << 16)
  879              | (((sword64)b[o * 7 + 3]) << 24)
  880              | (((sword64)b[o * 7 + 4]) << 32)
  881              | (((sword64)b[o * 7 + 5]) << 40)
  882              | (((sword64)b[o * 7 + 6]) << 48));
  883    }
  884#else
  885    bd[ 0] = (word64) ((sword64) (b[ 0]) <<  0)
  886           | (word64) ((sword64) (b[ 1]) <<  8)
  887           | (word64) ((sword64) (b[ 2]) << 16)
  888           | (word64) ((sword64) (b[ 3]) << 24)
  889           | (word64) ((sword64) (b[ 4]) << 32)
  890           | (word64) ((sword64) (b[ 5]) << 40)
  891           | (word64) ((sword64) (b[ 6]) << 48);
  892    bd[ 1] = (word64) ((sword64) (b[ 7]) <<  0)
  893           | (word64) ((sword64) (b[ 8]) <<  8)
  894           | (word64) ((sword64) (b[ 9]) << 16)
  895           | (word64) ((sword64) (b[10]) << 24)
  896           | (word64) ((sword64) (b[11]) << 32)
  897           | (word64) ((sword64) (b[12]) << 40)
  898           | (word64) ((sword64) (b[13]) << 48);
  899    bd[ 2] = (word64) ((sword64) (b[14]) <<  0)
  900           | (word64) ((sword64) (b[15]) <<  8)
  901           | (word64) ((sword64) (b[16]) << 16)
  902           | (word64) ((sword64) (b[17]) << 24)
  903           | (word64) ((sword64) (b[18]) << 32)
  904           | (word64) ((sword64) (b[19]) << 40)
  905           | (word64) ((sword64) (b[20]) << 48);
  906    bd[ 3] = (word64) ((sword64) (b[21]) <<  0)
  907           | (word64) ((sword64) (b[22]) <<  8)
  908           | (word64) ((sword64) (b[23]) << 16)
  909           | (word64) ((sword64) (b[24]) << 24)
  910           | (word64) ((sword64) (b[25]) << 32)
  911           | (word64) ((sword64) (b[26]) << 40)
  912           | (word64) ((sword64) (b[27]) << 48);
  913    bd[ 4] = (word64) ((sword64) (b[28]) <<  0)
  914           | (word64) ((sword64) (b[29]) <<  8)
  915           | (word64) ((sword64) (b[30]) << 16)
  916           | (word64) ((sword64) (b[31]) << 24)
  917           | (word64) ((sword64) (b[32]) << 32)
  918           | (word64) ((sword64) (b[33]) << 40)
  919           | (word64) ((sword64) (b[34]) << 48);
  920    bd[ 5] = (word64) ((sword64) (b[35]) <<  0)
  921           | (word64) ((sword64) (b[36]) <<  8)
  922           | (word64) ((sword64) (b[37]) << 16)
  923           | (word64) ((sword64) (b[38]) << 24)
  924           | (word64) ((sword64) (b[39]) << 32)
  925           | (word64) ((sword64) (b[40]) << 40)
  926           | (word64) ((sword64) (b[41]) << 48);
  927    bd[ 6] = (word64) ((sword64) (b[42]) <<  0)
  928           | (word64) ((sword64) (b[43]) <<  8)
  929           | (word64) ((sword64) (b[44]) << 16)
  930           | (word64) ((sword64) (b[45]) << 24)
  931           | (word64) ((sword64) (b[46]) << 32)
  932           | (word64) ((sword64) (b[47]) << 40)
  933           | (word64) ((sword64) (b[48]) << 48);
  934    bd[ 7] = (word64) ((sword64) (b[49]) <<  0)
  935           | (word64) ((sword64) (b[50]) <<  8)
  936           | (word64) ((sword64) (b[51]) << 16)
  937           | (word64) ((sword64) (b[52]) << 24)
  938           | (word64) ((sword64) (b[53]) << 32)
  939           | (word64) ((sword64) (b[54]) << 40)
  940           | (word64) ((sword64) (b[55]) << 48);
  941#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
  942    /* Load from bytes: 56 bytes */
  943#ifdef WOLFSSL_ED448_NO_LARGE_CODE
  944    for (o = 0; o < 8; o++) {
  945        dd[o] = (word64)(
  946                (((sword64)d[o * 7 + 0]) <<  0)
  947              | (((sword64)d[o * 7 + 1]) <<  8)
  948              | (((sword64)d[o * 7 + 2]) << 16)
  949              | (((sword64)d[o * 7 + 3]) << 24)
  950              | (((sword64)d[o * 7 + 4]) << 32)
  951              | (((sword64)d[o * 7 + 5]) << 40)
  952              | (((sword64)d[o * 7 + 6]) << 48));
  953    }
  954#else
  955    dd[ 0] = (word64) ((sword64) (d[ 0]) <<  0)
  956           | (word64) ((sword64) (d[ 1]) <<  8)
  957           | (word64) ((sword64) (d[ 2]) << 16)
  958           | (word64) ((sword64) (d[ 3]) << 24)
  959           | (word64) ((sword64) (d[ 4]) << 32)
  960           | (word64) ((sword64) (d[ 5]) << 40)
  961           | (word64) ((sword64) (d[ 6]) << 48);
  962    dd[ 1] = (word64) ((sword64) (d[ 7]) <<  0)
  963           | (word64) ((sword64) (d[ 8]) <<  8)
  964           | (word64) ((sword64) (d[ 9]) << 16)
  965           | (word64) ((sword64) (d[10]) << 24)
  966           | (word64) ((sword64) (d[11]) << 32)
  967           | (word64) ((sword64) (d[12]) << 40)
  968           | (word64) ((sword64) (d[13]) << 48);
  969    dd[ 2] = (word64) ((sword64) (d[14]) <<  0)
  970           | (word64) ((sword64) (d[15]) <<  8)
  971           | (word64) ((sword64) (d[16]) << 16)
  972           | (word64) ((sword64) (d[17]) << 24)
  973           | (word64) ((sword64) (d[18]) << 32)
  974           | (word64) ((sword64) (d[19]) << 40)
  975           | (word64) ((sword64) (d[20]) << 48);
  976    dd[ 3] = (word64) ((sword64) (d[21]) <<  0)
  977           | (word64) ((sword64) (d[22]) <<  8)
  978           | (word64) ((sword64) (d[23]) << 16)
  979           | (word64) ((sword64) (d[24]) << 24)
  980           | (word64) ((sword64) (d[25]) << 32)
  981           | (word64) ((sword64) (d[26]) << 40)
  982           | (word64) ((sword64) (d[27]) << 48);
  983    dd[ 4] = (word64) ((sword64) (d[28]) <<  0)
  984           | (word64) ((sword64) (d[29]) <<  8)
  985           | (word64) ((sword64) (d[30]) << 16)
  986           | (word64) ((sword64) (d[31]) << 24)
  987           | (word64) ((sword64) (d[32]) << 32)
  988           | (word64) ((sword64) (d[33]) << 40)
  989           | (word64) ((sword64) (d[34]) << 48);
  990    dd[ 5] = (word64) ((sword64) (d[35]) <<  0)
  991           | (word64) ((sword64) (d[36]) <<  8)
  992           | (word64) ((sword64) (d[37]) << 16)
  993           | (word64) ((sword64) (d[38]) << 24)
  994           | (word64) ((sword64) (d[39]) << 32)
  995           | (word64) ((sword64) (d[40]) << 40)
  996           | (word64) ((sword64) (d[41]) << 48);
  997    dd[ 6] = (word64) ((sword64) (d[42]) <<  0)
  998           | (word64) ((sword64) (d[43]) <<  8)
  999           | (word64) ((sword64) (d[44]) << 16)
 1000           | (word64) ((sword64) (d[45]) << 24)
 1001           | (word64) ((sword64) (d[46]) << 32)
 1002           | (word64) ((sword64) (d[47]) << 40)
 1003           | (word64) ((sword64) (d[48]) << 48);
 1004    dd[ 7] = (word64) ((sword64) (d[49]) <<  0)
 1005           | (word64) ((sword64) (d[50]) <<  8)
 1006           | (word64) ((sword64) (d[51]) << 16)
 1007           | (word64) ((sword64) (d[52]) << 24)
 1008           | (word64) ((sword64) (d[53]) << 32)
 1009           | (word64) ((sword64) (d[54]) << 40)
 1010           | (word64) ((sword64) (d[55]) << 48);
 1011#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 1012
 1013    /* a * b + d */
 1014    t[ 0] = (word128)(dd[ 0] + (word128)((sword128)ad[ 0] * bd[ 0]));
 1015    t[ 1] = (word128)(dd[ 1] + (word128)((sword128)ad[ 0] * bd[ 1]
 1016                                       + (sword128)ad[ 1] * bd[ 0]));
 1017    t[ 2] = (word128)(dd[ 2] + (word128)((sword128)ad[ 0] * bd[ 2]
 1018                                       + (sword128)ad[ 1] * bd[ 1]
 1019                                       + (sword128)ad[ 2] * bd[ 0]));
 1020    t[ 3] = (word128)(dd[ 3] + (word128)((sword128)ad[ 0] * bd[ 3]
 1021                                       + (sword128)ad[ 1] * bd[ 2]
 1022                                       + (sword128)ad[ 2] * bd[ 1]
 1023                                       + (sword128)ad[ 3] * bd[ 0]));
 1024    t[ 4] = (word128)(dd[ 4] + (word128)((sword128)ad[ 0] * bd[ 4]
 1025                                       + (sword128)ad[ 1] * bd[ 3]
 1026                                       + (sword128)ad[ 2] * bd[ 2]
 1027                                       + (sword128)ad[ 3] * bd[ 1]
 1028                                       + (sword128)ad[ 4] * bd[ 0]));
 1029    t[ 5] = (word128)(dd[ 5] + (word128)((sword128)ad[ 0] * bd[ 5]
 1030                                       + (sword128)ad[ 1] * bd[ 4]
 1031                                       + (sword128)ad[ 2] * bd[ 3]
 1032                                       + (sword128)ad[ 3] * bd[ 2]
 1033                                       + (sword128)ad[ 4] * bd[ 1]
 1034                                       + (sword128)ad[ 5] * bd[ 0]));
 1035    t[ 6] = (word128)(dd[ 6] + (word128)((sword128)ad[ 0] * bd[ 6]
 1036                                       + (sword128)ad[ 1] * bd[ 5]
 1037                                       + (sword128)ad[ 2] * bd[ 4]
 1038                                       + (sword128)ad[ 3] * bd[ 3]
 1039                                       + (sword128)ad[ 4] * bd[ 2]
 1040                                       + (sword128)ad[ 5] * bd[ 1]
 1041                                       + (sword128)ad[ 6] * bd[ 0]));
 1042    t[ 7] = (word128)(dd[ 7] + (word128)((sword128)ad[ 0] * bd[ 7]
 1043                                       + (sword128)ad[ 1] * bd[ 6]
 1044                                       + (sword128)ad[ 2] * bd[ 5]
 1045                                       + (sword128)ad[ 3] * bd[ 4]
 1046                                       + (sword128)ad[ 4] * bd[ 3]
 1047                                       + (sword128)ad[ 5] * bd[ 2]
 1048                                       + (sword128)ad[ 6] * bd[ 1]
 1049                                       + (sword128)ad[ 7] * bd[ 0]));
 1050    t[ 8] = (word128)(                   (sword128)ad[ 1] * bd[ 7]
 1051                                       + (sword128)ad[ 2] * bd[ 6]
 1052                                       + (sword128)ad[ 3] * bd[ 5]
 1053                                       + (sword128)ad[ 4] * bd[ 4]
 1054                                       + (sword128)ad[ 5] * bd[ 3]
 1055                                       + (sword128)ad[ 6] * bd[ 2]
 1056                                       + (sword128)ad[ 7] * bd[ 1]);
 1057    t[ 9] = (word128)(                   (sword128)ad[ 2] * bd[ 7]
 1058                                       + (sword128)ad[ 3] * bd[ 6]
 1059                                       + (sword128)ad[ 4] * bd[ 5]
 1060                                       + (sword128)ad[ 5] * bd[ 4]
 1061                                       + (sword128)ad[ 6] * bd[ 3]
 1062                                       + (sword128)ad[ 7] * bd[ 2]);
 1063    t[10] = (word128)(                   (sword128)ad[ 3] * bd[ 7]
 1064                                       + (sword128)ad[ 4] * bd[ 6]
 1065                                       + (sword128)ad[ 5] * bd[ 5]
 1066                                       + (sword128)ad[ 6] * bd[ 4]
 1067                                       + (sword128)ad[ 7] * bd[ 3]);
 1068    t[11] = (word128)(                   (sword128)ad[ 4] * bd[ 7]
 1069                                       + (sword128)ad[ 5] * bd[ 6]
 1070                                       + (sword128)ad[ 6] * bd[ 5]
 1071                                       + (sword128)ad[ 7] * bd[ 4]);
 1072    t[12] = (word128)(                   (sword128)ad[ 5] * bd[ 7]
 1073                                       + (sword128)ad[ 6] * bd[ 6]
 1074                                       + (sword128)ad[ 7] * bd[ 5]);
 1075    t[13] = (word128)(                   (sword128)ad[ 6] * bd[ 7]
 1076                                       + (sword128)ad[ 7] * bd[ 6]);
 1077    t[14] = (word128)(                   (sword128)ad[ 7] * bd[ 7]);
 1078    t[15] = 0;
 1079
 1080    /* Mod curve order */
 1081    /* 2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d */
 1082    /* Propagate carries */
 1083    c = t[ 0] >> 56; t[ 1] += c; t[ 0] = t[ 0] & 0xffffffffffffff;
 1084    c = t[ 1] >> 56; t[ 2] += c; t[ 1] = t[ 1] & 0xffffffffffffff;
 1085    c = t[ 2] >> 56; t[ 3] += c; t[ 2] = t[ 2] & 0xffffffffffffff;
 1086    c = t[ 3] >> 56; t[ 4] += c; t[ 3] = t[ 3] & 0xffffffffffffff;
 1087    c = t[ 4] >> 56; t[ 5] += c; t[ 4] = t[ 4] & 0xffffffffffffff;
 1088    c = t[ 5] >> 56; t[ 6] += c; t[ 5] = t[ 5] & 0xffffffffffffff;
 1089    c = t[ 6] >> 56; t[ 7] += c; t[ 6] = t[ 6] & 0xffffffffffffff;
 1090    c = t[ 7] >> 56; t[ 8] += c; t[ 7] = t[ 7] & 0xffffffffffffff;
 1091    c = t[ 8] >> 56; t[ 9] += c; t[ 8] = t[ 8] & 0xffffffffffffff;
 1092    c = t[ 9] >> 56; t[10] += c; t[ 9] = t[ 9] & 0xffffffffffffff;
 1093    c = t[10] >> 56; t[11] += c; t[10] = t[10] & 0xffffffffffffff;
 1094    c = t[11] >> 56; t[12] += c; t[11] = t[11] & 0xffffffffffffff;
 1095    c = t[12] >> 56; t[13] += c; t[12] = t[12] & 0xffffffffffffff;
 1096    c = t[13] >> 56; t[14] += c; t[13] = t[13] & 0xffffffffffffff;
 1097    c = t[14] >> 56; t[15] += c; t[14] = t[14] & 0xffffffffffffff;
 1098    /* Mod top half of extra words */
 1099#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 1100    for (o = 0; o < 4; o++) {
 1101        t[ 4 + o] += (sword128)0x21cf5b5529eec34L * t[12 + o];
 1102        t[ 5 + o] += (sword128)0x0f635c8e9c2ab70L * t[12 + o];
 1103        t[ 6 + o] += (sword128)0x2d944a725bf7a4cL * t[12 + o];
 1104        t[ 7 + o] += (sword128)0x20cd77058eec490L * t[12 + o];
 1105    }
 1106#else
 1107    t[ 4] += (sword128)0x21cf5b5529eec34L * t[12];
 1108    t[ 5] += (sword128)0x0f635c8e9c2ab70L * t[12];
 1109    t[ 6] += (sword128)0x2d944a725bf7a4cL * t[12];
 1110    t[ 7] += (sword128)0x20cd77058eec490L * t[12];
 1111    t[ 5] += (sword128)0x21cf5b5529eec34L * t[13];
 1112    t[ 6] += (sword128)0x0f635c8e9c2ab70L * t[13];
 1113    t[ 7] += (sword128)0x2d944a725bf7a4cL * t[13];
 1114    t[ 8] += (sword128)0x20cd77058eec490L * t[13];
 1115    t[ 6] += (sword128)0x21cf5b5529eec34L * t[14];
 1116    t[ 7] += (sword128)0x0f635c8e9c2ab70L * t[14];
 1117    t[ 8] += (sword128)0x2d944a725bf7a4cL * t[14];
 1118    t[ 9] += (sword128)0x20cd77058eec490L * t[14];
 1119    t[ 7] += (sword128)0x21cf5b5529eec34L * t[15];
 1120    t[ 8] += (sword128)0x0f635c8e9c2ab70L * t[15];
 1121    t[ 9] += (sword128)0x2d944a725bf7a4cL * t[15];
 1122    t[10] += (sword128)0x20cd77058eec490L * t[15];
 1123#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 1124    /* Propagate carries */
 1125    c = t[ 4] >> 56; t[ 5] += c; t[ 4] = t[ 4] & 0xffffffffffffff;
 1126    c = t[ 5] >> 56; t[ 6] += c; t[ 5] = t[ 5] & 0xffffffffffffff;
 1127    c = t[ 6] >> 56; t[ 7] += c; t[ 6] = t[ 6] & 0xffffffffffffff;
 1128    c = t[ 7] >> 56; t[ 8] += c; t[ 7] = t[ 7] & 0xffffffffffffff;
 1129    c = t[ 8] >> 56; t[ 9] += c; t[ 8] = t[ 8] & 0xffffffffffffff;
 1130    c = t[ 9] >> 56; t[10] += c; t[ 9] = t[ 9] & 0xffffffffffffff;
 1131    c = t[10] >> 56; t[11] += c; t[10] = t[10] & 0xffffffffffffff;
 1132    /* Mod bottom half of extra words */
 1133#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 1134    for (o = 0; o < 4; o++) {
 1135        t[ 0 + o] += (sword128)0x21cf5b5529eec34L * t[ 8 + o];
 1136        t[ 1 + o] += (sword128)0x0f635c8e9c2ab70L * t[ 8 + o];
 1137        t[ 2 + o] += (sword128)0x2d944a725bf7a4cL * t[ 8 + o];
 1138        t[ 3 + o] += (sword128)0x20cd77058eec490L * t[ 8 + o];
 1139    }
 1140#else
 1141    t[ 0] += (sword128)0x21cf5b5529eec34L * t[ 8];
 1142    t[ 1] += (sword128)0x0f635c8e9c2ab70L * t[ 8];
 1143    t[ 2] += (sword128)0x2d944a725bf7a4cL * t[ 8];
 1144    t[ 3] += (sword128)0x20cd77058eec490L * t[ 8];
 1145    t[ 1] += (sword128)0x21cf5b5529eec34L * t[ 9];
 1146    t[ 2] += (sword128)0x0f635c8e9c2ab70L * t[ 9];
 1147    t[ 3] += (sword128)0x2d944a725bf7a4cL * t[ 9];
 1148    t[ 4] += (sword128)0x20cd77058eec490L * t[ 9];
 1149    t[ 2] += (sword128)0x21cf5b5529eec34L * t[10];
 1150    t[ 3] += (sword128)0x0f635c8e9c2ab70L * t[10];
 1151    t[ 4] += (sword128)0x2d944a725bf7a4cL * t[10];
 1152    t[ 5] += (sword128)0x20cd77058eec490L * t[10];
 1153    t[ 3] += (sword128)0x21cf5b5529eec34L * t[11];
 1154    t[ 4] += (sword128)0x0f635c8e9c2ab70L * t[11];
 1155    t[ 5] += (sword128)0x2d944a725bf7a4cL * t[11];
 1156    t[ 6] += (sword128)0x20cd77058eec490L * t[11];
 1157#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 1158    /* Propagate carries */
 1159    c = t[ 0] >> 56; t[ 1] += c; rd[ 0] = (sword64)(t[ 0] & 0xffffffffffffff);
 1160    c = t[ 1] >> 56; t[ 2] += c; rd[ 1] = (sword64)(t[ 1] & 0xffffffffffffff);
 1161    c = t[ 2] >> 56; t[ 3] += c; rd[ 2] = (sword64)(t[ 2] & 0xffffffffffffff);
 1162    c = t[ 3] >> 56; t[ 4] += c; rd[ 3] = (sword64)(t[ 3] & 0xffffffffffffff);
 1163    c = t[ 4] >> 56; t[ 5] += c; rd[ 4] = (sword64)(t[ 4] & 0xffffffffffffff);
 1164    c = t[ 5] >> 56; t[ 6] += c; rd[ 5] = (sword64)(t[ 5] & 0xffffffffffffff);
 1165    c = t[ 6] >> 56; t[ 7] += c; rd[ 6] = (sword64)(t[ 6] & 0xffffffffffffff);
 1166    rd[ 7] = (word64)t[7];
 1167    /* Mod bits over 56 in last word */
 1168    o = rd[7] >> 54; rd[ 7] &= 0x3fffffffffffff;
 1169    rd[ 0] += 0x873d6d54a7bb0dL * o;
 1170    rd[ 1] += 0x3d8d723a70aadcL * o;
 1171    rd[ 2] += 0xb65129c96fde93L * o;
 1172    rd[ 3] += 0x8335dc163bb124L * o;
 1173    /* Propagate carries */
 1174    o = rd[ 0] >> 56; rd[ 1] += o; rd[ 0] = rd[ 0] & 0xffffffffffffff;
 1175    o = rd[ 1] >> 56; rd[ 2] += o; rd[ 1] = rd[ 1] & 0xffffffffffffff;
 1176    o = rd[ 2] >> 56; rd[ 3] += o; rd[ 2] = rd[ 2] & 0xffffffffffffff;
 1177    o = rd[ 3] >> 56; rd[ 4] += o; rd[ 3] = rd[ 3] & 0xffffffffffffff;
 1178    o = rd[ 4] >> 56; rd[ 5] += o; rd[ 4] = rd[ 4] & 0xffffffffffffff;
 1179    o = rd[ 5] >> 56; rd[ 6] += o; rd[ 5] = rd[ 5] & 0xffffffffffffff;
 1180    o = rd[ 6] >> 56; rd[ 7] += o; rd[ 6] = rd[ 6] & 0xffffffffffffff;
 1181    /* Reduce to mod order. */
 1182    u = 0;
 1183    u += (sword64)rd[0] - (sword64)0x078c292ab5844f3L; u >>= 56;
 1184    u += (sword64)rd[1] - (sword64)0x0c2728dc58f5523L; u >>= 56;
 1185    u += (sword64)rd[2] - (sword64)0x049aed63690216cL; u >>= 56;
 1186    u += (sword64)rd[3] - (sword64)0x07cca23e9c44edbL; u >>= 56;
 1187    u += (sword64)rd[4] - (sword64)0x0ffffffffffffffL; u >>= 56;
 1188    u += (sword64)rd[5] - (sword64)0x0ffffffffffffffL; u >>= 56;
 1189    u += (sword64)rd[6] - (sword64)0x0ffffffffffffffL; u >>= 56;
 1190    u += (sword64)rd[7] - (sword64)0x03fffffffffffffL; u >>= 56;
 1191    o = (word64)0 - (u >= 0);
 1192    u = 0;
 1193    u += (sword64)rd[0] - (sword64)((word64)0x078c292ab5844f3L & o);
 1194    rd[0] = u & 0xffffffffffffff;
 1195    u >>= 56;
 1196    u += (sword64)rd[1] - (sword64)((word64)0x0c2728dc58f5523L & o);
 1197    rd[1] = u & 0xffffffffffffff;
 1198    u >>= 56;
 1199    u += (sword64)rd[2] - (sword64)((word64)0x049aed63690216cL & o);
 1200    rd[2] = u & 0xffffffffffffff;
 1201    u >>= 56;
 1202    u += (sword64)rd[3] - (sword64)((word64)0x07cca23e9c44edbL & o);
 1203    rd[3] = u & 0xffffffffffffff;
 1204    u >>= 56;
 1205    u += (sword64)rd[4] - (sword64)((word64)0x0ffffffffffffffL & o);
 1206    rd[4] = u & 0xffffffffffffff;
 1207    u >>= 56;
 1208    u += (sword64)rd[5] - (sword64)((word64)0x0ffffffffffffffL & o);
 1209    rd[5] = u & 0xffffffffffffff;
 1210    u >>= 56;
 1211    u += (sword64)rd[6] - (sword64)((word64)0x0ffffffffffffffL & o);
 1212    rd[6] = u & 0xffffffffffffff;
 1213    u >>= 56;
 1214    u += (sword64)rd[7] - (sword64)((word64)0x03fffffffffffffL & o);
 1215    rd[7] = u & 0xffffffffffffff;
 1216
 1217    /* Convert to bytes */
 1218#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 1219    {
 1220        word64 ow = 0;
 1221        for (o = 0; o < 56; o += 7) {
 1222            r[o + 0] = (byte)(rd[ow] >>  0);
 1223            r[o + 1] = (byte)(rd[ow] >>  8);
 1224            r[o + 2] = (byte)(rd[ow] >> 16);
 1225            r[o + 3] = (byte)(rd[ow] >> 24);
 1226            r[o + 4] = (byte)(rd[ow] >> 32);
 1227            r[o + 5] = (byte)(rd[ow] >> 40);
 1228            r[o + 6] = (byte)(rd[ow] >> 48);
 1229            ow++;
 1230        }
 1231        r[56] = 0;
 1232    }
 1233#else
 1234    r[ 0] = (byte)(rd[0 ] >>  0);
 1235    r[ 1] = (byte)(rd[0 ] >>  8);
 1236    r[ 2] = (byte)(rd[0 ] >> 16);
 1237    r[ 3] = (byte)(rd[0 ] >> 24);
 1238    r[ 4] = (byte)(rd[0 ] >> 32);
 1239    r[ 5] = (byte)(rd[0 ] >> 40);
 1240    r[ 6] = (byte)(rd[0 ] >> 48);
 1241    r[ 7] = (byte)(rd[1 ] >>  0);
 1242    r[ 8] = (byte)(rd[1 ] >>  8);
 1243    r[ 9] = (byte)(rd[1 ] >> 16);
 1244    r[10] = (byte)(rd[1 ] >> 24);
 1245    r[11] = (byte)(rd[1 ] >> 32);
 1246    r[12] = (byte)(rd[1 ] >> 40);
 1247    r[13] = (byte)(rd[1 ] >> 48);
 1248    r[14] = (byte)(rd[2 ] >>  0);
 1249    r[15] = (byte)(rd[2 ] >>  8);
 1250    r[16] = (byte)(rd[2 ] >> 16);
 1251    r[17] = (byte)(rd[2 ] >> 24);
 1252    r[18] = (byte)(rd[2 ] >> 32);
 1253    r[19] = (byte)(rd[2 ] >> 40);
 1254    r[20] = (byte)(rd[2 ] >> 48);
 1255    r[21] = (byte)(rd[3 ] >>  0);
 1256    r[22] = (byte)(rd[3 ] >>  8);
 1257    r[23] = (byte)(rd[3 ] >> 16);
 1258    r[24] = (byte)(rd[3 ] >> 24);
 1259    r[25] = (byte)(rd[3 ] >> 32);
 1260    r[26] = (byte)(rd[3 ] >> 40);
 1261    r[27] = (byte)(rd[3 ] >> 48);
 1262    r[28] = (byte)(rd[4 ] >>  0);
 1263    r[29] = (byte)(rd[4 ] >>  8);
 1264    r[30] = (byte)(rd[4 ] >> 16);
 1265    r[31] = (byte)(rd[4 ] >> 24);
 1266    r[32] = (byte)(rd[4 ] >> 32);
 1267    r[33] = (byte)(rd[4 ] >> 40);
 1268    r[34] = (byte)(rd[4 ] >> 48);
 1269    r[35] = (byte)(rd[5 ] >>  0);
 1270    r[36] = (byte)(rd[5 ] >>  8);
 1271    r[37] = (byte)(rd[5 ] >> 16);
 1272    r[38] = (byte)(rd[5 ] >> 24);
 1273    r[39] = (byte)(rd[5 ] >> 32);
 1274    r[40] = (byte)(rd[5 ] >> 40);
 1275    r[41] = (byte)(rd[5 ] >> 48);
 1276    r[42] = (byte)(rd[6 ] >>  0);
 1277    r[43] = (byte)(rd[6 ] >>  8);
 1278    r[44] = (byte)(rd[6 ] >> 16);
 1279    r[45] = (byte)(rd[6 ] >> 24);
 1280    r[46] = (byte)(rd[6 ] >> 32);
 1281    r[47] = (byte)(rd[6 ] >> 40);
 1282    r[48] = (byte)(rd[6 ] >> 48);
 1283    r[49] = (byte)(rd[7 ] >>  0);
 1284    r[50] = (byte)(rd[7 ] >>  8);
 1285    r[51] = (byte)(rd[7 ] >> 16);
 1286    r[52] = (byte)(rd[7 ] >> 24);
 1287    r[53] = (byte)(rd[7 ] >> 32);
 1288    r[54] = (byte)(rd[7 ] >> 40);
 1289    r[55] = (byte)(rd[7 ] >> 48);
 1290    r[56] = 0;
 1291#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 1292}
 1293
 1294/* Precomputed multiples of the base point. */
 1295static const ge448_precomp base[58][8] = {
 1296{
 1297    {
 1298        { 0x26a82bc70cc05eL, 0x80e18b00938e26L, 0xf72ab66511433bL,
 1299          0xa3d3a46412ae1aL, 0x0f1767ea6de324L, 0x36da9e14657047L,
 1300          0xed221d15a622bfL, 0x4f1970c66bed0dL },
 1301        { 0x08795bf230fa14L, 0x132c4ed7c8ad98L, 0x1ce67c39c4fdbdL,
 1302          0x05a0c2d73ad3ffL, 0xa3984087789c1eL, 0xc7624bea73736cL,
 1303          0x248876203756c9L, 0x693f46716eb6bcL }
 1304    },
 1305    {
 1306        { 0x55555555555555L, 0x55555555555555L, 0x55555555555555L,
 1307          0x55555555555555L, 0xaaaaaaaaaaaaa9L, 0xaaaaaaaaaaaaaaL,
 1308          0xaaaaaaaaaaaaaaL, 0xaaaaaaaaaaaaaaL },
 1309        { 0xeafbcdea9386edL, 0xb2bed1cda06bdaL, 0x833a2a3098bbbcL,
 1310          0x8ad8c4b80d6565L, 0x884dd7b7e36d72L, 0xc2b0036ed7a035L,
 1311          0x8db359d6205086L, 0xae05e9634ad704L }
 1312    },
 1313    {
 1314        { 0x28173286ff2f8fL, 0xb769465da85757L, 0xf7f6271fd6e862L,
 1315          0x4a3fcfe8daa9cbL, 0xda82c7e2ba077aL, 0x943332241b8b8cL,
 1316          0x6455bd64316cb6L, 0x0865886b9108afL },
 1317        { 0x22ac13588ed6fcL, 0x9a68fed02dafb8L, 0x1bdb6767f0bffaL,
 1318          0xec4e1d58bb3a33L, 0x56c3b9fce43c82L, 0xa6449a4a8d9523L,
 1319          0xf706cbda7ad43aL, 0xe005a8dbd5125cL }
 1320    },
 1321    {
 1322        { 0xce42ac48ba7f30L, 0xe1798949e120e2L, 0xf1515dd8ba21aeL,
 1323          0x70c74cc301b7bdL, 0x0891c693fda4beL, 0x29ea255a09cf4eL,
 1324          0x2c1419a17226f9L, 0x49dcbc5c6c0cceL },
 1325        { 0xe236f86de51839L, 0x44285d0d4f5b32L, 0x7ea1ca9472b5d4L,
 1326          0x7b8a5bc1c0d8f9L, 0x57d845c90dc322L, 0x1b979cb7c02f04L,
 1327          0x27164b33a5de02L, 0xd49077e4accde5L }
 1328    },
 1329    {
 1330        { 0xa99d1092030034L, 0x2d8cefc6f950d0L, 0x7a920c3c96f07bL,
 1331          0x958812808bc0d5L, 0x62ada756d761e8L, 0x0def80cbcf7285L,
 1332          0x0e2ba7601eedb5L, 0x7a9f9335a48dcbL },
 1333        { 0xb4731472f435ebL, 0x5512881f225443L, 0xee59d2b33c5840L,
 1334          0xb698017127d7a4L, 0xb18fced86551f7L, 0x0ade260ca1823aL,
 1335          0xd3b9109ce4fd58L, 0xadfd751a2517edL }
 1336    },
 1337    {
 1338        { 0x7fd7652abef79cL, 0x6c20a07443a878L, 0x5c1840d12a7109L,
 1339          0x4a06e4a876451cL, 0x3bed0b4ad95f65L, 0x25d2e673fb0260L,
 1340          0x2e00349aebd971L, 0x54523e04498b72L },
 1341        { 0xea5d1da07c7bccL, 0xcce776938ea98cL, 0x80284e861d2b3eL,
 1342          0x48de76b6e1ff1bL, 0x7b121869c58522L, 0xbfd053a2765a1aL,
 1343          0x2d743ec056c667L, 0x3f99b9cd8ab61cL }
 1344    },
 1345    {
 1346        { 0xdf9567ceb5eaf7L, 0x110a6b478ac7d7L, 0x2d335014706e0bL,
 1347          0x0df9c7b0b5a209L, 0xba4223d568e684L, 0xd78af2d8c3719bL,
 1348          0x77467b9a5291b6L, 0x079748e5c89befL },
 1349        { 0xe20d3fadac377fL, 0x34e866972b5c09L, 0xd8687a3c40bbb7L,
 1350          0x7b3946fd2f84c9L, 0xd00e40ca78f50eL, 0xb87594417e7179L,
 1351          0x9c7373bcb23583L, 0x7ddeda3c90fd69L }
 1352    },
 1353    {
 1354        { 0x2538a67153bde0L, 0x223aca9406b696L, 0xf9080dc1ad713eL,
 1355          0x6c4cb47d816a64L, 0xbc285685dc8b97L, 0xd97b037c08e2d7L,
 1356          0x5b63fb45d0e66bL, 0xd1f1bc5520e8a3L },
 1357        { 0x4eb873ce69e09bL, 0x1663164bc8ee45L, 0x08f7003ba8d89fL,
 1358          0x4b98ead386ad82L, 0xa4b93b7bd94c7bL, 0x46ba408c6b38b3L,
 1359          0xdae87d1f3574ffL, 0xc7564f4e9bea9bL }
 1360    },
 1361},
 1362{
 1363    {
 1364        { 0x2e4fdb25bfac1cL, 0xf0d79aaf5f3bcaL, 0xe756b0d20fb7ccL,
 1365          0xe3696beb39609aL, 0xa019fc35a5ab58L, 0xa2b24853b281ddL,
 1366          0xe3e2be761ac0a2L, 0xf19c34feb56730L },
 1367        { 0x2d25ce8a30241eL, 0xf5661eab73d7a1L, 0x4611ed0daac9f4L,
 1368          0xd5442344ced72cL, 0xce78f52e92e985L, 0x6fe5dd44da4aadL,
 1369          0xfcaddc61d363ceL, 0x3beb69cc9111bfL }
 1370    },
 1371    {
 1372        { 0xd2e7660940ebc9L, 0xe032018b17bbe0L, 0xad4939175c0575L,
 1373          0xdd0b14721c7f34L, 0x52c2ba43e147e0L, 0x7dd03c60ee8973L,
 1374          0x5472e8decf2754L, 0x17a1cd1d6482bbL },
 1375        { 0xdd43b848128b3fL, 0xf0cae34ea7dd25L, 0x81ca99fff07df2L,
 1376          0x1c8959792ebbdcL, 0x45c7a6872155e6L, 0x907a50e39ddd08L,
 1377          0xbe398c2bb2d89bL, 0x38063f91b3b536L }
 1378    },
 1379    {
 1380        { 0x149fafbf843b23L, 0x00ab582ac7f22aL, 0xa3b981bf2f4d4cL,
 1381          0x2ce1a654341a22L, 0x68a40747c03b63L, 0x63206a212f2cf8L,
 1382          0xc9961d35149741L, 0xfb85430bc7099eL },
 1383        { 0x9c9107290a9e59L, 0x734e94a06de367L, 0x5cf3cbedb99214L,
 1384          0xc6bce3245b1fb9L, 0x1a82abedd7be0dL, 0xf74976aede7d1cL,
 1385          0x7025b7c21503bdL, 0xf7894910d096abL }
 1386    },
 1387    {
 1388        { 0x6bd48bb555a41bL, 0xfbdd0d067de206L, 0x98bc477dd6dfd1L,
 1389          0x1d0693b3e40b8aL, 0x6e15563da32ae4L, 0x0194a20fcebaa2L,
 1390          0xda116150980a93L, 0x8e119200109cecL },
 1391        { 0x8ea0552ffb9726L, 0xeba50a4047e44bL, 0xc050d2460ddf76L,
 1392          0xe009204ac690e0L, 0x47b86399b18edcL, 0x2f5b76ac77f23fL,
 1393          0x4296c240792905L, 0x73f6b4a06f6dc7L }
 1394    },
 1395    {
 1396        { 0xb6ef9ea3b10cadL, 0x312843df7c8fceL, 0x5bdcd528bedf86L,
 1397          0x2889059f6dd823L, 0x04578e908bfde0L, 0x3245df3123e2e5L,
 1398          0xbf461d57ee9e3aL, 0xddec2d46f94cebL },
 1399        { 0x21b43b9145768fL, 0xe79a8f9dae962aL, 0xff1972bcbb043fL,
 1400          0xe3dcf6d239649bL, 0xed592bdc533b85L, 0x14ff94fdbe22d0L,
 1401          0x6c4eb87f1d8e22L, 0xd8d4c71d18cf6dL }
 1402    },
 1403    {
 1404        { 0xcda666c8d96345L, 0x9ecaa25836cd21L, 0x6e885bd984606eL,
 1405          0x1dd5fef804f054L, 0x9dfff6b6959ae4L, 0x99b9cf8c9b55ccL,
 1406          0xb4716b062b9b80L, 0x13ec87c554b128L },
 1407        { 0xe696d1f75aacc2L, 0xf78c99387fc5ffL, 0x76c09473809d42L,
 1408          0x99ce62db618fa8L, 0x35e3e022f53341L, 0x62fc1ac0db6c5eL,
 1409          0xa1fb8e600d8b47L, 0x0bc107058f0d1eL }
 1410    },
 1411    {
 1412        { 0x1f4526916da513L, 0x1f2fc04f5cf341L, 0xae9208664d23e0L,
 1413          0x4e33082da8a113L, 0x2688ec61cfc085L, 0x6f2e8de6e5327fL,
 1414          0x2070db3b4e48a8L, 0xd6626973240adeL },
 1415        { 0xa6b317ffbd997bL, 0x9fa1b5649e26bdL, 0xcbf0d258cba0f3L,
 1416          0x4a7791b17b4745L, 0x25f555b5c9e190L, 0x7cd3940923ec4cL,
 1417          0x16f4c6ae98f1b6L, 0x7962116bcd4e0fL }
 1418    },
 1419    {
 1420        { 0x8d58fa302491e3L, 0x7cf76c67ab3898L, 0xbc2f657647ebc7L,
 1421          0x5f4bfe0d25f5a3L, 0x503f478d69505dL, 0x4a889fc3fb6645L,
 1422          0x33e1bc1fa86b18L, 0xabb234f5508dd8L },
 1423        { 0x5348e1b9a05b48L, 0x57ac5f164dc858L, 0x21f4d38ec8a2d3L,
 1424          0x5ec6d3ca3a3e9dL, 0xcd4062e560a0b8L, 0x49b74f73433f59L,
 1425          0xefd9d87cab14e3L, 0x858ce7feb964f5L }
 1426    },
 1427},
 1428{
 1429    {
 1430        { 0x7577254eb731b4L, 0x9fff1fb4e2397eL, 0x749b145c821715L,
 1431          0x40619fe2e65e67L, 0x57b82812e618d8L, 0x063186c707b83eL,
 1432          0xcfc80cb31b24a2L, 0xcca6185ac75169L },
 1433        { 0x6539f44b255818L, 0x5895da00368bceL, 0x841a30917c7482L,
 1434          0x85469e1b1a9c9eL, 0x05664c0e4f7d9dL, 0x8a063187b35cc0L,
 1435          0x214763aa0e9b0aL, 0x1bd872c4b26ac2L }
 1436    },
 1437    {
 1438        { 0x3578f97a93762bL, 0x434f69a72d52bcL, 0xddcca4022cb565L,
 1439          0xa7d1e41ff20544L, 0x823475d8a66588L, 0x9fc97c799d7bafL,
 1440          0x15542f1660e421L, 0xa7d1f60843faf6L },
 1441        { 0xbbfaab54063cccL, 0x3ad9bada49855aL, 0xffd5f1c5bddbfeL,
 1442          0x0e419c2ae87e59L, 0xdce6ed6f89956bL, 0xf047c21ccd8951L,
 1443          0x6ed4a1ba83c991L, 0x85af86e2d28e0aL }
 1444    },
 1445    {
 1446        { 0x04433c49ed48a8L, 0xeffa8580bc375dL, 0xfb0e1b2fa6e3b5L,
 1447          0x51483a2a1aaddaL, 0x733448df8b2ea8L, 0xaa0513cf639f0cL,
 1448          0x6bc61a3a23bf84L, 0x3e64f68dc2430dL },
 1449        { 0x51bf502c5876b1L, 0x6b833751c0dd2aL, 0xe597be1342914fL,
 1450          0x43d5ab0f8e632cL, 0x2696715d62587bL, 0xe87d20aed34f24L,
 1451          0x25b7e14e18baf7L, 0xf5eb753e22e084L }
 1452    },
 1453    {
 1454        { 0x51da71724d8295L, 0xd478e4318d1340L, 0xacf94f42cf7f66L,
 1455          0x230d7d13760711L, 0x078a66a5abc626L, 0xd78b0bd6b5f6daL,
 1456          0x23a971396d1d0bL, 0x87623d64bd960fL },
 1457        { 0x0841a9977db53fL, 0x23c1a53f4d03eeL, 0x2f62c2e1f95df1L,
 1458          0xd1e2ec1116f4e7L, 0x896d2fe34811a9L, 0xad65e2bec8096eL,
 1459          0x09d36f9b1744a6L, 0x564bac7ff5ddf7L }
 1460    },
 1461    {
 1462        { 0x48b41e2c3f77cbL, 0x52276730968938L, 0xff1b899fd9b452L,
 1463          0x67cf3bf2e03908L, 0x3731d90248a6fbL, 0xd800a05256598fL,
 1464          0x347d2f2bdc8530L, 0xc72a3007ad08a1L },
 1465        { 0x5e5be741d65f73L, 0x183d4ae4206eadL, 0xcb50c1cade4013L,
 1466          0x39db43d3102483L, 0x0eb49fa70d6325L, 0xa18f6a2c1f02b9L,
 1467          0x3e6fe30dbf5e66L, 0xac4eeb93a82aa5L }
 1468    },
 1469    {
 1470        { 0x295affd3613d47L, 0x7b7e68ab56f343L, 0x980629692b173bL,
 1471          0x937061ebad35fbL, 0x25019785c21eeaL, 0xe92721b787a746L,
 1472          0x463c46c3651631L, 0x6da4b5dc6f2d5aL },
 1473        { 0xcb67cc16e6d18cL, 0x1b30d520010588L, 0x1bb6ea6db1d1e8L,
 1474          0x9c6308aad11474L, 0xc3167413d19b1cL, 0xf2e84d7be4fb79L,
 1475          0xeccb873e050f77L, 0xf7c8d80cc2bf86L }
 1476    },
 1477    {
 1478        { 0x16fe2e17ab20e5L, 0x274deadecf3a92L, 0x9f434870972f67L,
 1479          0x9a65a454605751L, 0x9351f07b8980b2L, 0x412962b0eb08a5L,
 1480          0xb8c9bfd733f440L, 0xac2cd641ca250fL },
 1481        { 0x68cdd0f2ba7d26L, 0xd3d2a4a4e0beeaL, 0x50135c19f4a258L,
 1482          0xb475e53f0d02e4L, 0x432d8c6589283aL, 0x29141bfa0a2b6cL,
 1483          0xd7379ec13704bcL, 0x831562c52459bfL }
 1484    },
 1485    {
 1486        { 0x676b366eeec506L, 0xdd6cad545da557L, 0x9de39cb77057d2L,
 1487          0x388c5fedf05bf1L, 0x6e55650dfb1f03L, 0xdbceffa52126c9L,
 1488          0xe4d187b3a4a220L, 0xac914f9eb27020L },
 1489        { 0x3f4ab98d2e5f30L, 0x6ae97dadd94451L, 0x64af6950d80981L,
 1490          0x36b4b90f2aa2ceL, 0x6adcd7a18fcf59L, 0x3ddfe6dc116c81L,
 1491          0x661072b549b9e3L, 0xd9e3134ec4584dL }
 1492    },
 1493},
 1494{
 1495    {
 1496        { 0x6e46707a1e400cL, 0xcdc990b551e806L, 0xfa512513a07724L,
 1497          0x500553f1b3e4f5L, 0x67e8b58ef4dac3L, 0x958349f2cb4cc7L,
 1498          0x948b4ed7f9143cL, 0xe646d092b7822bL },
 1499        { 0xd185dd52bc3c26L, 0x34ba16ec837fc9L, 0x516d4ba5a788b7L,
 1500          0x72f2de756142b0L, 0x5846f61f445b3dL, 0xdaec5c9f4631a1L,
 1501          0xa10b18d169ea9bL, 0x85d2998af6751bL }
 1502    },
 1503    {
 1504        { 0xda0cac443ddf31L, 0x0966e171860911L, 0x9c3a7173cba600L,
 1505          0x5781880571f895L, 0x5e2a927737ac21L, 0x8a461486c253fbL,
 1506          0xe801cf595ee626L, 0x271166a5f84fc0L },
 1507        { 0x306937fba856bdL, 0x80cb179be80a43L, 0x70393b2ffb5980L,
 1508          0xa8e4a1c660fc64L, 0x5078abfc0d5c98L, 0x62ba530fbd31ffL,
 1509          0xda608449e51b88L, 0xdb6ecb0355ae15L }
 1510    },
 1511    {
 1512        { 0xbcbb6ea23c5d49L, 0x08906ba87959bcL, 0x61cc0880991665L,
 1513          0x21d6b41d90d13cL, 0x0c27ac1d03afe9L, 0x159995f5cfea52L,
 1514          0x4057e20bdfe220L, 0xdd1b349cbdf058L },
 1515        { 0x0cd66262e37159L, 0x8cea8e43eb0d17L, 0x553af085bce7f0L,
 1516          0xb94cb5f5b6511dL, 0x7b8d3a550e0330L, 0x415911057ab7e7L,
 1517          0x320820e6aa886fL, 0x130d4d6c5b6b81L }
 1518    },
 1519    {
 1520        { 0x2f98059c7bb2edL, 0x33ebf4ca49bdfbL, 0x04c72a1b0a675bL,
 1521          0x94f9ea4adb6c14L, 0x03376d8cf728c0L, 0x5c059d34c6eb6aL,
 1522          0x0178408eb8da48L, 0x8bf607b2956817L },
 1523        { 0x7ad2822ceb3d28L, 0xd07a40337ae653L, 0xbc68739c1e46b2L,
 1524          0x15d7cca9154ba9L, 0x6b97103a26617dL, 0xa610314b2e0d28L,
 1525          0x52a08bafd4d363L, 0x80c2638c7dc2afL }
 1526    },
 1527    {
 1528        { 0x0cde7ef3187140L, 0x93b92ca4b70acdL, 0x5696e507a79cdcL,
 1529          0x73cc9728eaab66L, 0x6b8c5b68f1b0c7L, 0xb39a3184f7e0b1L,
 1530          0x72cfb0d376108aL, 0x0c53efc98536a7L },
 1531        { 0x03b52a824c2f1eL, 0x717132e6399b78L, 0x31ebd25349a85dL,
 1532          0x265ee811a200d4L, 0x0b1aad2407d7adL, 0x9a9ebc894d2962L,
 1533          0x994e6cd41171d9L, 0x09178d86c8fa83L }
 1534    },
 1535    {
 1536        { 0x7d1d238a2593a1L, 0x863e93ab38fb19L, 0xd23a4cce7712a9L,
 1537          0x7477b1327efcd5L, 0x3ba69ff1392f6cL, 0x63e0c32f7bb5a5L,
 1538          0x20412c0026effdL, 0xd3ee8e4ef424abL },
 1539        { 0x14c0b2d64e5174L, 0x2a611f2e58c47bL, 0xaa58a06c1e8635L,
 1540          0x1870c3ecf17034L, 0xb0d5e3483f1bf3L, 0xb19905c16c7eb3L,
 1541          0xbf85d626efa4caL, 0xfd16b2f180f92bL }
 1542    },
 1543    {
 1544        { 0xc0431af3adcb48L, 0xc9a7a8dba90496L, 0xd765a163895294L,
 1545          0xb02a41a551de70L, 0xb71b261749b8a1L, 0x0dfa89ec6f3e47L,
 1546          0x392c0d80f5d9ceL, 0x43c59d831aee3cL },
 1547        { 0x94bfb6d4d76f49L, 0xe8f5b8227d68a5L, 0x78ae1d9630fd08L,
 1548          0x1379029ce1bdaeL, 0x9689da066715dcL, 0x5d4cb24d3278c7L,
 1549          0x77c98339e84fbcL, 0xc8478dcea1048cL }
 1550    },
 1551    {
 1552        { 0xe4b8f31770d2baL, 0x744f65242ea095L, 0xd06e090036f138L,
 1553          0xd3a3d5b3b078caL, 0xc7ae54178b8417L, 0xad6c5d4c738fd7L,
 1554          0x61789844676454L, 0xfbf34235d9a392L },
 1555        { 0x8e451a7fff772fL, 0x8605bb75ffbeadL, 0x6f75cc1930d59fL,
 1556          0xd4f47558f3f460L, 0xefd2d796700c8aL, 0xceb462a2406421L,
 1557          0x8ed0f979dfe8f1L, 0x0280bf1d1d7600L }
 1558    },
 1559},
 1560{
 1561    {
 1562        { 0x761c219dd9a54dL, 0x1127fcb86a39c0L, 0x7d0e4f04c9beddL,
 1563          0x27c017a4d976b6L, 0x800c973da042cfL, 0xe7419af2593f11L,
 1564          0xbd49448ae67960L, 0xd3b60b7744fd85L },
 1565        { 0x5e74ed961676feL, 0x7383ef339af627L, 0x34407e05e62df7L,
 1566          0xb0534618bf3196L, 0xd6b7184583b407L, 0xe3d068555011beL,
 1567          0x94083d02124b52L, 0xa908324f780aafL }
 1568    },
 1569    {
 1570        { 0xb27af1a73ec9c3L, 0xb66ad9f70fa725L, 0x07724f58cf73e4L,
 1571          0xc3fcd579949358L, 0x06efb79da0cc01L, 0x1e977d210597c9L,
 1572          0xcd732be703e8d6L, 0x6fd29bf6d0b69eL },
 1573        { 0xca658ac667128eL, 0xca0036ac7872b3L, 0xc9698585355837L,
 1574          0x59f3be8075cf1cL, 0x9f1b9b03809a11L, 0x6881ced9733871L,
 1575          0x8cda0fbe902a5fL, 0x4d8c69b4e3871eL }
 1576    },
 1577    {
 1578        { 0x5c3bd07ddee82fL, 0xe52dd312f9723bL, 0xcf8761174f1be8L,
 1579          0xd9ecbd835f8657L, 0x4f77393fbfea17L, 0xec9579fd78fe2cL,
 1580          0x320de920fb0450L, 0xbfc9b8d95d9c47L },
 1581        { 0x818bd425e1b4c3L, 0x0e0c41c40e2c78L, 0x0f7ce9abccb0d0L,
 1582          0xc7e9fa45ef81fbL, 0x2561d6f73574adL, 0xa2d8d99d2efb0bL,
 1583          0xcf8f316e96cd0aL, 0x088f0f14964807L }
 1584    },
 1585    {
 1586        { 0x0a8498945d5a19L, 0x47ab39c6c2131fL, 0x5c02824f3fc35dL,
 1587          0x3be77c89ee8127L, 0xa8491b7c90b80aL, 0x5397631a28aa93L,
 1588          0x54d6e816c0b344L, 0x22878be876d0e4L },
 1589        { 0xeecb8a46db3bf6L, 0x340f29554577a3L, 0xa7798689a00f85L,
 1590          0x98465d74bb9147L, 0x9532d7dda3c736L, 0x6d574f17504b20L,
 1591          0x6e356f4d86e435L, 0x70c2e8d4533887L }
 1592    },
 1593    {
 1594        { 0xdce5a0ad293980L, 0x32d7210069010eL, 0x64af59f06deaaaL,
 1595          0xd6b43c459239e4L, 0x74bf2559199c29L, 0x3efff4111e1e2bL,
 1596          0x1aa7b5ecb0f8d8L, 0x9baa22b989e395L },
 1597        { 0xf78db807b33ac1L, 0x05a3b4354ce80aL, 0x371defc7bc8e12L,
 1598          0x63305a01224610L, 0x028b1ae6d697efL, 0x7aba39c1cd8051L,
 1599          0x76ed7a928ee4b4L, 0x31bd02a7f99901L }
 1600    },
 1601    {
 1602        { 0xf9dab7af075566L, 0x84e29a5f56f18bL, 0x3a4c45af64e56dL,
 1603          0xcf3644a6a7302dL, 0xfb40808156b658L, 0xf33ef9cf96be52L,
 1604          0xfe92038caa2f08L, 0xcfaf2e3b261894L },
 1605        { 0xf2a0dbc224ce3fL, 0xed05009592eb27L, 0x501743f95889d0L,
 1606          0xa88a47877c95c2L, 0x86755fbdd63da9L, 0x9024acfc7ee828L,
 1607          0x634b020f38113bL, 0x3c5aacc6056e64L }
 1608    },
 1609    {
 1610        { 0xe03ff3aa2ef760L, 0x3b95767b1c3bacL, 0x51ce6aa940d754L,
 1611          0x7cbac3f47a9a3dL, 0xa864ac434f8d1aL, 0x1eff3f280dbd47L,
 1612          0xd8ab6607ebd5caL, 0xc4df5c405b07edL },
 1613        { 0x3dc92dfa4f095bL, 0x5ae36a57cdbd9aL, 0x7ff29737891e04L,
 1614          0x37c03130a5fe7bL, 0x210d7b0aa6e35eL, 0x6edfb53bf200d8L,
 1615          0x787b68d84afb85L, 0x9b5c49b72c6de3L }
 1616    },
 1617    {
 1618        { 0x51857164010f4eL, 0xe0b144b0536ebeL, 0xacabb14887d663L,
 1619          0xac1caededf584fL, 0xb43fb8faf175a3L, 0x310b6d5f992a3cL,
 1620          0xf2c4aa285178a4L, 0x69c99698bd56bfL },
 1621        { 0x73d6372a4d972eL, 0x3d5bb2e9583803L, 0x7bf7d18d891581L,
 1622          0xa5ce5d7568a34aL, 0x670b4331f45c81L, 0x97265a71f96910L,
 1623          0xdb14eb3b07c1eaL, 0xdf008eafed447cL }
 1624    },
 1625},
 1626{
 1627    {
 1628        { 0x0379f5a00c2f10L, 0xb320b4fd350285L, 0x74e560e8efdd7dL,
 1629          0xf2f017ef46a140L, 0x2ced1a60f34624L, 0x7c4b4e3ca08ec9L,
 1630          0xdffc2a15d8bc6bL, 0xcc8f3f3527b007L },
 1631        { 0x59f8ac4861fe83L, 0x8d48d2cd03144cL, 0xa8457d2bfa6dceL,
 1632          0xd7ed333677c136L, 0xcb8e219c228e18L, 0x5f70bc916ab1e4L,
 1633          0x2ae3a3d3780370L, 0x9f3365488f17adL }
 1634    },
 1635    {
 1636        { 0xeab0710960e4bbL, 0xc668a78ab9cfd3L, 0x2e85553b0ef946L,
 1637          0xa43c4b98df5df3L, 0x0ecd5593cb3646L, 0x6f543c418dbe71L,
 1638          0xee7edaaf59818bL, 0xc44e8d290911c1L },
 1639        { 0xafb38b1269b509L, 0x9e2737c52afe2cL, 0x5b2ef02ccfa664L,
 1640          0x1e0aeace1cc58bL, 0x37a57e95ea134eL, 0xc9c465a83b9fc2L,
 1641          0x4b9e8c76e3eccaL, 0xca07dbe9bdbab5L }
 1642    },
 1643    {
 1644        { 0xd297f3cb0d7807L, 0xee441a5f59ce61L, 0x728553bb2db844L,
 1645          0x90f87e5640e9e0L, 0xaa72cbfcb76dffL, 0x065c6864012d57L,
 1646          0xd5ee88f9678b44L, 0x3d74b852177603L },
 1647        { 0x3f9c947748b68eL, 0x03856d98f44d44L, 0xde34b84462426cL,
 1648          0xc16d1bb845ab29L, 0x9df6217d2e18deL, 0xec6d219b154643L,
 1649          0x22a8ec32ee0f8fL, 0x632ad3891c5175L }
 1650    },
 1651    {
 1652        { 0x19d9d236869267L, 0x628df94fe5532aL, 0x458d76c6dc9a01L,
 1653          0x405fe6c2cc39c8L, 0x7dddc67f3a04baL, 0xfee630312500c7L,
 1654          0x580b6f0a50e9deL, 0xfb5918a6090604L },
 1655        { 0xd7159253af6b2dL, 0x83d62d61c7d1ecL, 0x94398c185858c4L,
 1656          0x94643dc14bfb64L, 0x758fa38af7db80L, 0xe2d7d93a8a1557L,
 1657          0xa569e853562af1L, 0xd226bdd84346aaL }
 1658    },
 1659    {
 1660        { 0xc2d0a5ed0ccd20L, 0xeb9adb85dbc0cfL, 0xe0a29ee26d7e88L,
 1661          0x8bb39f884a8e98L, 0x511f1c137396eaL, 0xbc9ec5ac8b2fb3L,
 1662          0x299d81c090e5bcL, 0xe1dfe344cdd587L },
 1663        { 0x80f61f45e465b7L, 0x5699c531bad59eL, 0x85e92e4b79ff92L,
 1664          0x1e64fce9db244cL, 0x3748574a22097dL, 0xe2aa6b9efff24eL,
 1665          0xb951be70a10bc6L, 0x66853269067a1cL }
 1666    },
 1667    {
 1668        { 0xf716ddfa6114d3L, 0x9e515f5037ec1fL, 0x773454144944a6L,
 1669          0x1540c4caba97ccL, 0xe41e5488b54bb7L, 0x4363156cae37bcL,
 1670          0xc384eaff3d2ce8L, 0x72a4f454c58ba4L },
 1671        { 0x0ceb530dcaf3fcL, 0x72d536578dcdbbL, 0x9b44084c6320faL,
 1672          0x6262d34eb74c70L, 0x8abac85608e6dcL, 0x82a526410dd38dL,
 1673          0xbc39911a819b8dL, 0xbda15fe03ad0d9L }
 1674    },
 1675    {
 1676        { 0xadbf587f9dc60bL, 0xf9d814f7d846d2L, 0xccdd241b77bde0L,
 1677          0x89cb6d72242f50L, 0x95c0e3ee6360a8L, 0x7c7dd5adf49713L,
 1678          0x68e0e4957d5814L, 0x3aa097d0c16571L },
 1679        { 0xb56b672267d03aL, 0x4f557088c44af4L, 0x67c49e7f3252a5L,
 1680          0x871d6cfc94a469L, 0x57ae99801fbfaaL, 0x5c0e48f48a5d8eL,
 1681          0xe9bf9c85e240b9L, 0xa41018999d41caL }
 1682    },
 1683    {
 1684        { 0x6beb0c7b2889b4L, 0x78b7f899455370L, 0xd43421447ca364L,
 1685          0xdd9d2da9f21e5bL, 0xa0c7c180a7e4aaL, 0x022c0d4da1660cL,
 1686          0xe1f5c165a57002L, 0x51c7c9e518f68fL },
 1687        { 0x6d521b62586502L, 0xa0f2cb3183ec1bL, 0x578b4e0caa5e16L,
 1688          0x7bd4fbd764997fL, 0x7ec56c364b1804L, 0xb75a2540ee08e4L,
 1689          0x6bf74a6dc19080L, 0x6ec793d97d6e59L }
 1690    },
 1691},
 1692{
 1693    {
 1694        { 0x16789d60a4beb9L, 0x512b2cd9b9c801L, 0xf8b6d108c7bb9cL,
 1695          0xd85651e9ebdc8cL, 0xc9450829ba971aL, 0x852d9ea7e1cf78L,
 1696          0x6a45e350af01e2L, 0xe6cdadf6151dcfL },
 1697        { 0xc454bb42b8c01bL, 0x59e0c493d54cd2L, 0x8e1e686454d608L,
 1698          0x0dbae4bd8c6103L, 0xa5603a16c18b18L, 0x227a6b23369093L,
 1699          0xf1e89295f3de1cL, 0x42f0b588ab63c5L }
 1700    },
 1701    {
 1702        { 0xf1974cc5b596d8L, 0xee8093f44719f0L, 0x40ba933f6f5b54L,
 1703          0xd6e53652f3d654L, 0x9aeb83526d73b8L, 0x50ed5350776382L,
 1704          0x3be47d6ad43875L, 0x21d56dfc786e48L },
 1705        { 0x8a75e18b73bb39L, 0x9eba84cf265a78L, 0x7c02a4d2e772e7L,
 1706          0xf7df6d44c1ecd2L, 0xa8d9ea06cef71bL, 0x86e8f91cae3b68L,
 1707          0x2fd141199efefaL, 0x0b36ab2214e6f6L }
 1708    },
 1709    {
 1710        { 0xd79065cbdce61cL, 0xcb562ffdecb229L, 0xef5d3d14600849L,
 1711          0x348b31b1d23ac8L, 0xb2ea69915c36b8L, 0x268683d4822836L,
 1712          0x083edbec6f0b7dL, 0xaf4f39d1a7821cL },
 1713        { 0x23be6e84e64841L, 0xe9e246365bf791L, 0xa3208ac02bfd7cL,
 1714          0x231989cd01357dL, 0x79b8aad6422ab4L, 0x57d2b7e91b8564L,
 1715          0x28ebbcc8c04421L, 0xdc787d87d09c05L }
 1716    },
 1717    {
 1718        { 0xeb99f626c7bed5L, 0x326b15f39cd0e8L, 0xd9d53dcd860615L,
 1719          0xdf636e71bf4205L, 0x1eaa0bf0752209L, 0x17ce69a4744abbL,
 1720          0x474572df3ea2fbL, 0xc4f6f73224a7f3L },
 1721        { 0x7ed86ad63081b4L, 0xcd4cdc74a20afbL, 0x7563831b301b2eL,
 1722          0x5b4d2b1e038699L, 0xa15d1fa802a15fL, 0x6687aaf13e9172L,
 1723          0x3eccd36ba6da90L, 0x34e829d7474e83L }
 1724    },
 1725    {
 1726        { 0x4cea19b19c9b27L, 0xa14c37a5f52523L, 0x248b16d726625cL,
 1727          0x8c40f9f6cabc21L, 0x918470c32a5c65L, 0x314056b2a98d5bL,
 1728          0x6c974cf34a0714L, 0x0c8f8a94f6314aL },
 1729        { 0x484455770bccfdL, 0xf5835db740c9fdL, 0x12e59b5a21407cL,
 1730          0xbe338e0db1689dL, 0x5a50ce9dd5e915L, 0xb1780e9ef99f39L,
 1731          0x1262b55ee4d833L, 0x4be3f2289c5340L }
 1732    },
 1733    {
 1734        { 0xbb99b906c4b858L, 0xa7724d1550ca53L, 0x7d31f5a826962eL,
 1735          0xf239322a5804daL, 0x3e113200275048L, 0xcbb1bb83ee4cb6L,
 1736          0xdb865251331191L, 0xb7caf9e7d1d903L },
 1737        { 0x06e3b0577d7a9dL, 0x7a132b0b3bbbf5L, 0xd61fbc57c50575L,
 1738          0x393f712af4b646L, 0xef77972cb7efe9L, 0x20e6d5d5ea4995L,
 1739          0x0ac23d4fbbe4c6L, 0x8456617c807f2aL }
 1740    },
 1741    {
 1742        { 0x4995fb35396143L, 0xa8b4bd1b99dc46L, 0x2293e8e4150064L,
 1743          0x2f77d4922a3545L, 0xe866b03b2192c4L, 0x58b01f05e0aa38L,
 1744          0xe406b232ed246bL, 0x447edb3ed60974L },
 1745        { 0xf541b338869703L, 0x6959fe0383420aL, 0xd6b39db4be4e48L,
 1746          0x048f3b4b5714efL, 0x68b49685d9e4b8L, 0xbda8e6c2177963L,
 1747          0x5094e35c4211feL, 0xea591c32d46d1aL }
 1748    },
 1749    {
 1750        { 0x3a768ff2fef780L, 0x4218d2832970c6L, 0xce598e4ec6da17L,
 1751          0xf675645fbb126aL, 0xb04c23f0427617L, 0xc9f93fbe4fce74L,
 1752          0x44a414b3c91b00L, 0x4d982f31d3b3ccL },
 1753        { 0xb1d40e8b24cce0L, 0x5a21c07133e73dL, 0x6e9358e0bb589dL,
 1754          0x39cfb172399844L, 0x83f7647166080eL, 0xcfe7bf8450b468L,
 1755          0x2a288f71e8434fL, 0xd39f1e521a81e3L }
 1756    },
 1757},
 1758{
 1759    {
 1760        { 0x78c6f13528af6fL, 0x0001fe294b74d9L, 0xae7742501aab44L,
 1761          0x7cbe937ef0039cL, 0xaf3e4f00fa2a67L, 0xe28175fda1378eL,
 1762          0x72adeed8ccd90eL, 0x16a8ce100af22fL },
 1763        { 0x69fae17cbf63ddL, 0x67861729e39e26L, 0xe92b3d5f827a18L,
 1764          0x4d75e418403682L, 0x01a4fd99056a79L, 0x89efb2d20008f5L,
 1765          0xa2f6918b78ff15L, 0xf41c870a3437f5L }
 1766    },
 1767    {
 1768        { 0xc840ae57be353cL, 0x465a5eb3fb2691L, 0x34a89f07eba833L,
 1769          0xf620896013346eL, 0x563b5f0e875df2L, 0x5f7fc8bfbc44ceL,
 1770          0x22fcb5acfedf9dL, 0x7cf68d47dc691bL },
 1771        { 0x37f7c2d76a103fL, 0x728a128fd87b7dL, 0x7db2ad8ccf2132L,
 1772          0xa4c13feb100e63L, 0xcd28a517b511d5L, 0xb910280721ca5cL,
 1773          0xec1305fd84bd52L, 0xb9646422729791L }
 1774    },
 1775    {
 1776        { 0x83fccdf5bc7462L, 0x01f3ddad6f012fL, 0x57f11713a6a87cL,
 1777          0xedb47ceff403acL, 0x6c184e5baab073L, 0x5b17c7d6f0d6a1L,
 1778          0x45a4c4f3ef2c91L, 0x26c3f7e86a8f41L },
 1779        { 0x81a6db0b646514L, 0xf84059fca8b9aeL, 0xd73dab69f02305L,
 1780          0x0de3faec4b7c6cL, 0x18abb88696df2fL, 0x45dd1b975d7740L,
 1781          0x3aeccc69ee35bcL, 0x478252eb029f88L }
 1782    },
 1783    {
 1784        { 0x66bf85b8b2ce15L, 0x1175425335709dL, 0x00169ef8123874L,
 1785          0xfd3c18c9b89868L, 0xb3612f9775204eL, 0x4b8d09dc2cd510L,
 1786          0xafa12e614559adL, 0x1ddaa889657493L },
 1787        { 0x87d700b1e77a08L, 0xaf4cf2f14d2e71L, 0xe00835dbf90c94L,
 1788          0xb16a6ec6dc8429L, 0x02a7210f8a4d92L, 0x5a5ab403d0c48dL,
 1789          0x0052b3ab5b9beaL, 0x6242739e138f89L }
 1790    },
 1791    {
 1792        { 0x7c215d316b2819L, 0xdacb65efeb9d7aL, 0xc3c569ed833423L,
 1793          0xbc08435886a058L, 0x132c4db7e5cb61L, 0x6373a279422affL,
 1794          0x43b9d7efca9fc4L, 0xe3319a5dbe465fL },
 1795        { 0x51d36870b39da7L, 0xcb6d7984b75492L, 0x77eb272eadd87aL,
 1796          0xf2fb47de0d3f6cL, 0x807fd86f9f791cL, 0xf01086b975e885L,
 1797          0xf9314b5b6a3604L, 0x8cd453867be852L }
 1798    },
 1799    {
 1800        { 0x7c1e6b3858f79bL, 0xf0477c4938caf9L, 0xb311bbf3e88c44L,
 1801          0x9234c091e3a3c1L, 0x531af2b95a1d4dL, 0xf3cc969b8d1c64L,
 1802          0x6f3c328b51e78dL, 0x5a1bd6c34e8881L },
 1803        { 0x2e312393a9336fL, 0x020f0cc5ced897L, 0x4b45d7b5fab121L,
 1804          0x8068b1c1841210L, 0x1bd85fc8349170L, 0xfe816d80f97fe5L,
 1805          0x108981814b84fcL, 0x1d4fabbb93cd48L }
 1806    },
 1807    {
 1808        { 0x1f11d45aef599eL, 0x8d91243b09c58aL, 0xd2eec7bd08c3c3L,
 1809          0x5a6039b3b02793L, 0xb27fed58fb2c00L, 0xb5de44de8acf5eL,
 1810          0x2c3e0cd6e6c698L, 0x2f96ed4777180dL },
 1811        { 0x67de8bf96d0e36L, 0xd36a2b6c9b6d65L, 0x8df5d37637d59cL,
 1812          0x951899fc8d9878L, 0x0fa090db13fcf8L, 0xa5270811f5c7b4L,
 1813          0x56a6560513a37aL, 0xc6f553014dc1feL }
 1814    },
 1815    {
 1816        { 0x7f6def794945d6L, 0x2f52fe38cc8832L, 0x0228ad9a812ff5L,
 1817          0xcd282e5bb8478aL, 0xa0bc9afbe91b07L, 0x0360cdc11165e2L,
 1818          0xb5240fd7b857e4L, 0x67f1665fa36b08L },
 1819        { 0x84ce588ad2c93fL, 0x94db722e8ff4c0L, 0xad2edbb489c8a3L,
 1820          0x6b2d5b87e5f278L, 0x0265e58d1d0798L, 0xd2c9f264c5589eL,
 1821          0xde81f094e4074dL, 0xc539595303089fL }
 1822    },
 1823},
 1824{
 1825    {
 1826        { 0x183492f83e882cL, 0x4d58203b5e6c12L, 0x1ac96c3efec20bL,
 1827          0xabd5a5be1cd15eL, 0x7e1e242cbbb14bL, 0x9f03f45d0543b3L,
 1828          0xc94bc47d678158L, 0x7917be0a446cadL },
 1829        { 0x53f2be29b37394L, 0x0cb0a6c064cc76L, 0x3a857bcfba3da3L,
 1830          0xac86bc580fcb49L, 0x9d5336e30ab146L, 0xafb093d5bc1270L,
 1831          0x996689de5c3b6eL, 0x55189faea076baL }
 1832    },
 1833    {
 1834        { 0x99ef986646ce03L, 0xa155f8130e6100L, 0x75bef1729b6b07L,
 1835          0xc46f08e1de077bL, 0xf52fdc57ed0526L, 0xe09d98961a299aL,
 1836          0x95273297b8e93aL, 0x11255b50acd185L },
 1837        { 0x57919db4a6acddL, 0x708a5784451d74L, 0x5b0bd01283f7b3L,
 1838          0xe82f40cc3d9260L, 0x2ab96ec82bbdc2L, 0x921f680c164d87L,
 1839          0xf0f7883c17a6a9L, 0xc366478382a001L }
 1840    },
 1841    {
 1842        { 0x5c9aa072e40791L, 0xf0b72d6a0776bfL, 0x445f9b2eaa50dcL,
 1843          0xa929fa96bda47fL, 0x539dc713bbfc49L, 0x4f16dd0006a78bL,
 1844          0x331ba3deef39c7L, 0xbfa0a24c34157cL },
 1845        { 0x0220beb6a3b482L, 0x3164d4d6c43885L, 0xa03bb5dacdea23L,
 1846          0xd6b8b5a9d8f450L, 0xd218e65bd208feL, 0x43948ed35c476fL,
 1847          0x29a0dd80a2ed2bL, 0xa6ccf3325295b7L }
 1848    },
 1849    {
 1850        { 0xf68f15fac38939L, 0xb3dd5a2f8010c1L, 0xf7ac290a35f141L,
 1851          0xdc8f3b27388574L, 0x7ec3de1e95fed2L, 0xc625451257ac7dL,
 1852          0x66fc33e664e55aL, 0xd3968d34832ba5L },
 1853        { 0x980291bc026448L, 0xfcb212524da4a5L, 0xbca7df4827a360L,
 1854          0xfcc395c85ca63bL, 0xcf566ec8e9f733L, 0x835ee9bd465f70L,
 1855          0xe66d111372f916L, 0xc066cf904d9211L }
 1856    },
 1857    {
 1858        { 0xb9763a38b48818L, 0xa6d23cc4288f96L, 0xe27fcf5ed3a229L,
 1859          0x6aebf9cabaff00L, 0xf3375038131cd1L, 0x13ad41dffabd58L,
 1860          0x1bee6af861c83bL, 0x274fe969c142e7L },
 1861        { 0x70ebcc99b84b5bL, 0xe1a57d78191cfcL, 0x46ccd06cbf00b8L,
 1862          0xc233e8eefe402dL, 0xb4ab215beebeb3L, 0xb7424eabd14e7bL,
 1863          0x351259aa679578L, 0x6d6d01e471d684L }
 1864    },
 1865    {
 1866        { 0x755c465815ae38L, 0xadc3e85611db56L, 0x633999b188dd50L,
 1867          0xfdf7509c12d907L, 0x25bcfde238b6afL, 0x50d705d397f5e7L,
 1868          0xb65f60b944c974L, 0x8867fc327ac325L },
 1869        { 0x2edc4413763effL, 0x892c0b3341fb63L, 0xb34b83ab3a7f28L,
 1870          0x9aa106d15c2f18L, 0x720bbc61bb2277L, 0x637f72a5cfaefdL,
 1871          0xf57db6ef43e565L, 0xceb7c67b58e772L }
 1872    },
 1873    {
 1874        { 0x2793da56ecc1deL, 0x4e1097438f31b2L, 0x4229b4f8781267L,
 1875          0xe5d2272dec04a1L, 0x6abb463ec17cffL, 0x28aaa7e0cbb048L,
 1876          0x41dc081d22ef85L, 0xcbc361e5e63d0fL },
 1877        { 0xb78aafcad5dbaaL, 0x0111505fc1edc3L, 0x63ed66d92c7bfaL,
 1878          0x2982284e468919L, 0x30f1f21b8c0d8cL, 0xf0567472685093L,
 1879          0x0e085b6f03dd0fL, 0xa8c8db85581e66L }
 1880    },
 1881    {
 1882        { 0x42009a6264ad0cL, 0x13bf2b8593bef4L, 0x1d111905d4e8b1L,
 1883          0xfe3e940ef7bddcL, 0xa012275624e62cL, 0xcb659241d6d3ccL,
 1884          0xc7bcc70edb7ab6L, 0xff9fafbb750b1cL },
 1885        { 0xf65df297fea84bL, 0x17c84a890b0e02L, 0xa92a859301e821L,
 1886          0xbee8cb2fb480d1L, 0x7010b8c59c604eL, 0x47bf3f4e803c43L,
 1887          0xd64514247b3fffL, 0xc4c5dcb9f0da13L }
 1888    },
 1889},
 1890{
 1891    {
 1892        { 0x8af700cb5253b3L, 0x31ca605206957aL, 0x25744393eafdcdL,
 1893          0x2ba5ae1d3ae15eL, 0x710b7385b82579L, 0x145ab57112b95aL,
 1894          0x4b133a038c55c5L, 0xf7559c92a16fefL },
 1895        { 0x70c3e68d9ba896L, 0x475dd32c33d07aL, 0xe084e473a41e40L,
 1896          0xddc9382fd2e706L, 0x34b727579510bdL, 0x5e78a69a5f901eL,
 1897          0x429dfd7dcfb823L, 0x1d9dc18014f0a3L }
 1898    },
 1899    {
 1900        { 0x364fcdfaf403d7L, 0xd9ea4ffb7d7b34L, 0x21a3426cbb1dacL,
 1901          0xfa51052143b4f5L, 0x2bca0736df2409L, 0x7e6985a8ad7285L,
 1902          0x3a1a9d04aaa27fL, 0x1a815e19fc0c6cL },
 1903        { 0xfab6147bb65bb3L, 0xa36dc0d33ced0bL, 0x26a88592062d78L,
 1904          0x343861728a5fb7L, 0xe82da254ebb1adL, 0x70f5071d05aa11L,
 1905          0x0b7f847adaac48L, 0xeb812bc93cb269L }
 1906    },
 1907    {
 1908        { 0xcb317ccf7cacccL, 0xd3410d9cf85098L, 0xca68c8d7f078d7L,
 1909          0xfe9e812b782efcL, 0x32e7c0f5f544b5L, 0x44fe95a3a7b7f2L,
 1910          0xf4f1543e91327bL, 0x27d118d76645edL },
 1911        { 0x690547cd7abc2cL, 0xf64680fb53c8afL, 0xbe0cbe079ea989L,
 1912          0x6cf0ccea91af28L, 0xa3b85a29daa2f9L, 0xd4b663c91faed0L,
 1913          0x782c7b7a8b20baL, 0xf494fafb8d98ceL }
 1914    },
 1915    {
 1916        { 0x080c0d7002f55aL, 0xf4f8f142d6d9ddL, 0xb326229382f025L,
 1917          0x58fd0b5ad28c20L, 0x704b9928d06a15L, 0xf4545d97fbd8e4L,
 1918          0xc32fa63ed55581L, 0x3ab793601ac0fdL },
 1919        { 0x13ece526099fd1L, 0x776dba89c79178L, 0x8d28212ce26c45L,
 1920          0x09fddaf60d739cL, 0xf9931eda84826eL, 0x6e73d90b29439eL,
 1921          0x94cfefc9095e61L, 0x3050d16802f474L }
 1922    },
 1923    {
 1924        { 0x0898f8f9f6394bL, 0x48b8cea88b0e91L, 0x4bc99254c1b362L,
 1925          0xe3fccb4827d9ecL, 0x5d4cf9ad950d6aL, 0xa16f1ef39b5b38L,
 1926          0x3c76d1d620f288L, 0x9fdd059e119390L },
 1927        { 0x7b5de9efb5edf8L, 0x3e290b9769d14eL, 0x4df3a916bd10b5L,
 1928          0xae99bca82f8f7bL, 0x5481d5dc9524afL, 0xf112e4f69504f1L,
 1929          0xb048f0951931ecL, 0xbff876a18f51b1L }
 1930    },
 1931    {
 1932        { 0x932e2a746c1c37L, 0x903ad529aea4c1L, 0x717ac918f161f2L,
 1933          0xa57d197f425e2aL, 0xae89dac7f39e0eL, 0x91655c0baa2a58L,
 1934          0xe3dc28654836ddL, 0xb5f0baaa9ec9e6L },
 1935        { 0xf7c4662bdbda04L, 0xbe5393b51059c0L, 0xb16d552dd95b0fL,
 1936          0xde495b31b3bd96L, 0xb2a6e02c0206c5L, 0x045cc09014d3a9L,
 1937          0xf66a3152a2f490L, 0x208c108c5dea05L }
 1938    },
 1939    {
 1940        { 0x6e38b6865237eaL, 0x93a13039f27fc6L, 0x9a6d510a95068aL,
 1941          0x6fbf216e7c9e54L, 0x7824290571ac1dL, 0x8cb23ba91c2a0cL,
 1942          0x611202ec7e434dL, 0x8f901bf76058b4L },
 1943        { 0xef0ac050849588L, 0xe0d2ddedd31804L, 0xaf5417ceb2ca81L,
 1944          0x420ac065d1a509L, 0x46e345e9683bb6L, 0x6daf635f613f7fL,
 1945          0xc9e829148a9576L, 0x5f9f1d1176d147L }
 1946    },
 1947    {
 1948        { 0xd24ae1d77e9709L, 0x77751dc0047b8aL, 0xe325334c6a1593L,
 1949          0x9baf962671f86aL, 0x425af6ac29a15eL, 0x31086002796e33L,
 1950          0xb6ea78cfc253a5L, 0x4c733e0afae0eaL },
 1951        { 0x4b7443a97c99b9L, 0xc14e9e450203a6L, 0xd1bb51552680baL,
 1952          0xa56a3efd55533aL, 0xa66e38c169e1a0L, 0xb3e4df9eed7da0L,
 1953          0x022c937ddce3d9L, 0x8552089f6e36b4L }
 1954    },
 1955},
 1956{
 1957    {
 1958        { 0x8e4bf95f5cc82eL, 0x2ad80c3c3ed6c9L, 0xf2e5b2cc9045e1L,
 1959          0x42c906559b06d4L, 0xc1f73797b43b84L, 0x1710dbf72d7992L,
 1960          0xe98cf47767b41cL, 0xe713fce7bfb9e9L },
 1961        { 0x9f54ae99fa5134L, 0x3002fd8de40d0eL, 0xdc282b79311334L,
 1962          0x5519810bfeb360L, 0x31539c70f96ffeL, 0x04eacc0d27777bL,
 1963          0x59824108ff5053L, 0x598236632b67adL }
 1964    },
 1965    {
 1966        { 0x6eb45546bea5c2L, 0x82cfae0d509a33L, 0x6a69bd8394bb59L,
 1967          0x1880d8d5770ee1L, 0x63518447dacf9eL, 0x5b1ecc5f02b891L,
 1968          0xeb7d900b6c9a5aL, 0xdab8a768897da8L },
 1969        { 0x28c7be598851a6L, 0x0101d4f4d73c3bL, 0x3c2569c5084996L,
 1970          0xb9bc911280bde0L, 0x513a22acd0d4f9L, 0xdf2986d2a15f3bL,
 1971          0x231c28f2aa4943L, 0x29623ad0333870L }
 1972    },
 1973    {
 1974        { 0x2ceb1784084416L, 0x924cf1c49516cdL, 0x76536c04be856fL,
 1975          0x11b59cd47a265bL, 0x720dc844999494L, 0x910f794007b795L,
 1976          0x8434e142d3df83L, 0x8f53878bd478d3L },
 1977        { 0xd9b072eaeb9c2fL, 0x16f87eafd8a29fL, 0x8c42f9b2fd0de1L,
 1978          0x916721e0e816efL, 0x2ecb47018bde37L, 0xcde3b7a2375da2L,
 1979          0x30d0657ef94281L, 0x51054565cd7af8L }
 1980    },
 1981    {
 1982        { 0x7230b334bdced3L, 0x0c6a3e10838569L, 0xf19c9ece3493b8L,
 1983          0xf2759270d97c57L, 0xf14181e0c862ebL, 0xfd3bac132c72bcL,
 1984          0x620563ff3be362L, 0x672ccaf47283b7L },
 1985        { 0x191e3fa2b7bf16L, 0xf838633520dad7L, 0xd3dde553629d87L,
 1986          0x14d8836af86ebeL, 0x3db7dfb221b2ceL, 0x3872abb0aed72aL,
 1987          0xb60de528c665b7L, 0x89c259644982cbL }
 1988    },
 1989    {
 1990        { 0x799a2de4dbba25L, 0xd818aaea42715eL, 0xbc88f4df55c362L,
 1991          0x142a163713c9aeL, 0x411e8eefbfb33fL, 0x34b46296bb684aL,
 1992          0x4344becdc81817L, 0xcc9573d17f9d46L },
 1993        { 0xf85f8bcff38a7dL, 0xa14bf730caf117L, 0x126874f4ba6429L,
 1994          0xcc9bf22aa5db97L, 0x62b56df6aba827L, 0xfee1cb89c9772aL,
 1995          0xe36838f177e541L, 0x698815dadd438fL }
 1996    },
 1997    {
 1998        { 0xc9fd89438ed1adL, 0x73cd79d7b6a601L, 0x2210e6205e8d20L,
 1999          0x72384ac3592af5L, 0x5ccc079763d07eL, 0x2f31a4aa5f79ebL,
 2000          0x693f4ed2945a95L, 0xc7120178056fdcL },
 2001        { 0x361ecd2df4b09aL, 0xa5644eab7d929aL, 0x34abc0b3fabe9aL,
 2002          0x1a2473ce942a8cL, 0xe00c9246454bc3L, 0xab324bcdff7366L,
 2003          0xe1412f121b8f99L, 0x970b572e33551eL }
 2004    },
 2005    {
 2006        { 0x6ca4cacbd0a6b5L, 0x5584787921d654L, 0x18e5253c809bdaL,
 2007          0x01b32c3f0cbe5eL, 0xb9aa7540f987ddL, 0x628f4bb6dfa4dbL,
 2008          0x0255f0b891890bL, 0x25b7df4874e590L },
 2009        { 0xbded3188ed5f95L, 0x9dc428dca93023L, 0xc68f25abccf520L,
 2010          0xc4f3764e616e6cL, 0xd9a57f1a1d9993L, 0xd1964a5533431bL,
 2011          0x06cd77f02ab6d0L, 0xa66079103e52e0L }
 2012    },
 2013    {
 2014        { 0xab088645f72700L, 0xf77b2ff0a1a44eL, 0x43ebdd8c2a24b5L,
 2015          0xa6d67114f564d7L, 0x495df63f414160L, 0xf5bacd776f6de6L,
 2016          0x3011aff7c2b43dL, 0xbb1e64c3241928L },
 2017        { 0xf70c5725034073L, 0x891c62a68f1e97L, 0xed8eb2eb22e374L,
 2018          0xd3a53e97dbcc2fL, 0x1d06281dc8f220L, 0x9eef48face4393L,
 2019          0x96014f5d2abecdL, 0x1da7e092653cebL }
 2020    },
 2021},
 2022{
 2023    {
 2024        { 0x7593318d00bc94L, 0x586f3c6c7262a2L, 0xea68f52958ad31L,
 2025          0x6707fccd4e8bedL, 0xb7e35d6cb3f9ceL, 0x2cbb6f7f4b1be8L,
 2026          0xa5352687b41aeeL, 0x1d77845f7b39b8L },
 2027        { 0xb1f3995eaf9554L, 0x3250f70fe9e7d4L, 0x62e5d1ba00c23cL,
 2028          0x5e422f5c10e3bfL, 0x7a18039c25cec4L, 0xb4e66a17cc4d5bL,
 2029          0xad7c5f636d0e0cL, 0x9f40b12a4cf347L }
 2030    },
 2031    {
 2032        { 0x697f88251e3696L, 0xc89bc40ab0a648L, 0x8f261a59785804L,
 2033          0x4c7f900b51a2bdL, 0xd00e7af8a2dfcfL, 0xf9c534db642aebL,
 2034          0xea2a79fb63df0eL, 0x392a69af2f64a4L },
 2035        { 0x0c0f01cc331b6cL, 0x414bf2e6a5edb5L, 0xfe5ed815068391L,
 2036          0x0a8078d62fbc34L, 0x78a438254bca98L, 0xf7a49ae3d727c7L,
 2037          0x96c1de1ab4dffeL, 0x45901f73b9440aL }
 2038    },
 2039    {
 2040        { 0x3f1189facfe46eL, 0xdca6f464467443L, 0xac385422eb5bcfL,
 2041          0xb02dce9906bf72L, 0xdd8cdacfe1d454L, 0xc26f04c65f7218L,
 2042          0xb4748596ea145dL, 0xc53dc6b5bdb315L },
 2043        { 0xbe5be749ad7197L, 0x627e91918b5eccL, 0x57c889c9ea405dL,
 2044          0x2e5650c1a5360bL, 0x42290df1b30b27L, 0x4a071575242687L,
 2045          0x553ed1fd379133L, 0xb9d7a0701db019L }
 2046    },
 2047    {
 2048        { 0xcfe551c56597dcL, 0x81af92a925ebd6L, 0x83efe16f4e8d57L,
 2049          0x61bb4311f640d3L, 0xf80440f78b414aL, 0x72f3c636c9e3b4L,
 2050          0xb55f43a6a03c66L, 0x47a9dede417037L },
 2051        { 0x1a7e287dbb612bL, 0x895c3c7dbb9220L, 0xd50c86e6c04764L,
 2052          0xed5269853cf7caL, 0xc78d799f74af55L, 0xb2ba0f2b969ff2L,
 2053          0x06d48151c6530bL, 0x764a1fe165a575L }
 2054    },
 2055    {
 2056        { 0x4383a3bc1b5eceL, 0x0563c8854ff148L, 0x9a452795af796eL,
 2057          0xffba7c088e9953L, 0xfe9fb5eb6a3001L, 0x795098825b6b19L,
 2058          0x67c899ad81be5eL, 0xc89ac8d2f9d29bL },
 2059        { 0x7c76ba329ab8f7L, 0xb2a18c96e40f74L, 0x1b5056e3864d9bL,
 2060          0xdfa503d9b582b8L, 0xfb035197c9c68eL, 0xdc501316b3c22bL,
 2061          0x38ab231a6c96ffL, 0x4ea527c8cb1c10L }
 2062    },
 2063    {
 2064        { 0xd632f20c05b4edL, 0xe0199fab2a032dL, 0x373295626812d7L,
 2065          0x2aed855013df13L, 0x92ca24b39f96acL, 0x620273dbb9751aL,
 2066          0x5d0d21ef7437a1L, 0x9de2a43077de56L },
 2067        { 0x0569b1211a4674L, 0xfc3923e89c3989L, 0x3d127042c5c770L,
 2068          0x0072b9084e8c37L, 0x7178d4dac39f9aL, 0x5f8292f778d345L,
 2069          0x9e5bf0f77c7307L, 0x7691610c3a20f5L }
 2070    },
 2071    {
 2072        { 0x7c4ead5705fe96L, 0x377ec35c8e464cL, 0x3e5b9907689954L,
 2073          0xc0f6949a2d31eaL, 0x839d395c580671L, 0x2f347a6b215b09L,
 2074          0xfdcfa33683df83L, 0x6e12cc26af39a8L },
 2075        { 0xae46ec813a3bd2L, 0x03a7d3b59366f8L, 0xe2029d5b87aed4L,
 2076          0xbdc4e43fe1b83dL, 0x768437cdb8a1a8L, 0xe47acc3ea0dd7fL,
 2077          0x550e0cc62a0af4L, 0xcaf2cbc1a20962L }
 2078    },
 2079    {
 2080        { 0x5a784f7f28a78fL, 0x952a9b507e9724L, 0x8ac5e411bab7a3L,
 2081          0x1251e3fb7bc1e1L, 0xe360f82dc15e22L, 0x3ac72da95213f5L,
 2082          0x65ee9ba4dcd47bL, 0xdfeab7b3af5952L },
 2083        { 0x34c5c8026fd3c6L, 0xd977b08f3ac7eeL, 0x003bd017dba2f6L,
 2084          0xcfc5cf8ac98c8dL, 0x05eb6040e46922L, 0xc248b17faa9352L,
 2085          0xfa41c0f395c7a7L, 0x29931d4b71ee44L }
 2086    },
 2087},
 2088{
 2089    {
 2090        { 0xac087bb07861c5L, 0x3bd37db5ae8240L, 0x94c68ecf94518fL,
 2091          0xd32a378ff88a5bL, 0x42c8aaf9b441d1L, 0x089db70fc07f12L,
 2092          0x211c386d3d4455L, 0x1db9af7546b158L },
 2093        { 0xdfd1b6551bc927L, 0x69c04930733df4L, 0xdc72cd42aeb586L,
 2094          0xeebdace823aa13L, 0x51b3b3c56ad643L, 0xb983a99d4e0426L,
 2095          0xa1e5b6c69c4eccL, 0x37cd38245e6668L }
 2096    },
 2097    {
 2098        { 0x158ce6d9f73aeaL, 0x36a774914ff475L, 0x0d4e424dc0b018L,
 2099          0xc2c44483946f09L, 0x7a7de3ffacda62L, 0x49a19e6b486709L,
 2100          0x65094d8db61da7L, 0x09edfd98f5ee87L },
 2101        { 0xe460fcfb37226dL, 0x3b9d03969bf470L, 0x3d4d511247ca22L,
 2102          0xc7248d6c782cb1L, 0x91189a000ad293L, 0x1244942e8abe75L,
 2103          0x9f88d12bf52cdbL, 0x368463ebbbcadfL }
 2104    },
 2105    {
 2106        { 0x419e4b38074f45L, 0xd3f8e2e0771c83L, 0xd2743b42e68d34L,
 2107          0xc68b7dbb116a00L, 0xfad2cf7d84cc37L, 0xcfd27c0b7a0f4dL,
 2108          0x3b9e23f190e587L, 0x7bab499751ca9eL },
 2109        { 0x3270861a8f12eeL, 0xee1f38d31b36d5L, 0x748bb31e4c0eedL,
 2110          0x9be5c9b110ebadL, 0x728660bc8b6cb6L, 0x7bc9df793d914aL,
 2111          0x73a4f2cc88c859L, 0xbe4a2fdb4e7f0eL }
 2112    },
 2113    {
 2114        { 0xe566ff8a450e77L, 0xb0b40066a13abaL, 0x483a510cd7dc90L,
 2115          0xb1a20135fa9cccL, 0xeb0b631a80e67cL, 0x7c34e1f020801aL,
 2116          0x0257dc8f4e447cL, 0x7abe7d174c6f0fL },
 2117        { 0xf115a3ab19a576L, 0x8f0474a064ca0eL, 0x999bb6b351f99bL,
 2118          0x855254b773edc3L, 0x49f6c2f427d717L, 0x9f682532e0cef2L,
 2119          0x1fe126c2ee34f5L, 0x1ec2cae80150f7L }
 2120    },
 2121    {
 2122        { 0x862c5afc005b7aL, 0x61adea7ec4ef17L, 0xf885fd3007b446L,
 2123          0x25c129d9b0e30eL, 0xbc10f25feec7e0L, 0x3901ac4df79ee1L,
 2124          0xad49db7fe9e19fL, 0xc8624d9360d050L },
 2125        { 0xc74a576bf3260bL, 0xbde80248c010c2L, 0xf15532909b6977L,
 2126          0x6a5a82ed52dcf8L, 0x4fbf59d29b9dfcL, 0x337d049c7b730cL,
 2127          0xb3deac63a89cd4L, 0x1e07595ad2f2ebL }
 2128    },
 2129    {
 2130        { 0xa0b0a4d3b7c84eL, 0xf132c378cf2b00L, 0x192814beaaa8ecL,
 2131          0xe7929f97b4b5dfL, 0xf08a68e42d0ab7L, 0x814afb17b60cddL,
 2132          0x78c348c7d9c160L, 0xf8a948844db217L },
 2133        { 0xcdefd88eaa2578L, 0xf717f56bd0e260L, 0x7754e131694d02L,
 2134          0x1254c14181dbd8L, 0x0dacdd26e5f312L, 0xb8abdfbcef87bfL,
 2135          0xb985972e74e2eaL, 0x1717621002b424L }
 2136    },
 2137    {
 2138        { 0x92cc75e162df70L, 0x1e20c0618ee849L, 0xc036b4626aa590L,
 2139          0x31be67e4da5155L, 0x04911b5f7213b0L, 0x39261d7bb2e72eL,
 2140          0x9e844665c015a3L, 0x2f59fc0298ae67L },
 2141        { 0xa3ea7ba1701fccL, 0x87a5fa90ebd651L, 0xa607ed4301d7b1L,
 2142          0xbd4ec5f3b2e271L, 0x732a1a2dc4180fL, 0xbe15d82feaa8c1L,
 2143          0x103670266f2f3fL, 0xccfd3979e79ce8L }
 2144    },
 2145    {
 2146        { 0x82ab83570a54adL, 0x5c1dee8e3bec75L, 0xf583ff454b556bL,
 2147          0x9220199f461e60L, 0xdf61ca887fc4e7L, 0x6641fd20776dadL,
 2148          0x00c6edd8edd061L, 0xaf9b14255f7e87L },
 2149        { 0x73f15e49bbe3ecL, 0xdd3b788f8bc1faL, 0xb24cc071b8ff86L,
 2150          0x6c260d241be58bL, 0xec1c4e36b10adaL, 0xf6b42097fdb985L,
 2151          0x0d0ac85d47c212L, 0x967191c07d78d1L }
 2152    },
 2153},
 2154{
 2155    {
 2156        { 0x3b11638843d0f3L, 0x4b89297f27f10eL, 0x477236e863ba2aL,
 2157          0x1949622add280cL, 0x7cd523504da757L, 0xe0e99d279e4ff7L,
 2158          0xb4ef894537da41L, 0xc55dde45a24ff1L },
 2159        { 0x18d8e21b587521L, 0x8010b5d3777833L, 0x4af522dd3a54c8L,
 2160          0x7cd476b4c0ac13L, 0x4587e614099f67L, 0x494d0ed605ee64L,
 2161          0x3218ba2cc80903L, 0x5ff56aa0b2e169L }
 2162    },
 2163    {
 2164        { 0x51ec94e3a06c69L, 0xa26d7be5e65c52L, 0x156f113d44ee96L,
 2165          0x70f0968bf5b9b4L, 0x9b7e4695f5332dL, 0x36c295f6703829L,
 2166          0x1522690d04f492L, 0xcf35ca4728043bL },
 2167        { 0xf9ca3e1190a7c3L, 0x53d2413f971b07L, 0xae596529c48b49L,
 2168          0x74672b8fefff5cL, 0x0a3018ba7643b0L, 0x51919e83e9b0a8L,
 2169          0x89ad33dc932fb5L, 0x52a4419643e687L }
 2170    },
 2171    {
 2172        { 0x7778990d2d0acdL, 0x3bdbcce487fdf1L, 0xdc413ca2b03dd2L,
 2173          0x278755b9a2b7d0L, 0x4ebb8b535ddd7fL, 0x0465152bcbdb92L,
 2174          0x34f22d6671d051L, 0x1ba04c787192b9L },
 2175        { 0xb1693f483560c1L, 0xe08a5937d174e9L, 0x47ffdc464dc9afL,
 2176          0x1123596ce8126cL, 0x632d95f1124628L, 0x66287abfee7c76L,
 2177          0xb40fe60c552332L, 0x3f11729e304e1eL }
 2178    },
 2179    {
 2180        { 0x97a6ea05030a8cL, 0x692419809c27b2L, 0x3308501ac9dd5dL,
 2181          0x9fed7fabe73fdcL, 0xea555440535286L, 0xc7c07ab6c9b832L,
 2182          0x178c882c51b967L, 0x6fa0c6986ee075L },
 2183        { 0xbaa4a15b8b5c4aL, 0xf83c0ea3130c0aL, 0xcf8624b2800331L,
 2184          0xade85cd7ccbcb8L, 0x971d7f6f08445dL, 0xfd480b76a546dcL,
 2185          0xdc15a38c93761cL, 0xc4c495c9d04631L }
 2186    },
 2187    {
 2188        { 0x5f4cee89470efeL, 0x9fe896188d93adL, 0x24783b3f4e49ceL,
 2189          0x1bc7ed752ffb3eL, 0xa3abe6a6d81e17L, 0xd6bb8b47a333c3L,
 2190          0x3485c0b10a3527L, 0x7cddc9c31a9d10L },
 2191        { 0x0c78112c38ca37L, 0x10e249ddd2f8d8L, 0x72c88ccc511911L,
 2192          0x4d75b5a29a6c84L, 0xc74b267a227b1eL, 0x698390cf8e35adL,
 2193          0x8f27edfe98d230L, 0xec922f26bdc7f4L }
 2194    },
 2195    {
 2196        { 0xac34023fc32e11L, 0xe0ae2f547200d1L, 0xa7c7492bd98c82L,
 2197          0x3910b687b02154L, 0x6fdd06ce28ab6dL, 0xd3a7e49d98b012L,
 2198          0x4c1c82b9f54207L, 0xef5bbe645c176fL },
 2199        { 0x3d17960d3e71ebL, 0x90d7e84080e70cL, 0x83e6438bff5d9eL,
 2200          0x1877e1f535d85cL, 0x931ed6efbb69ccL, 0xcf962651247848L,
 2201          0x76d618b750da4eL, 0xc076708717fbf6L }
 2202    },
 2203    {
 2204        { 0x80a5ac5eec5126L, 0x6d05dd13379c80L, 0x514b0892336d32L,
 2205          0x586c0066725137L, 0xab2365a574f954L, 0x3c89ea0ac7d356L,
 2206          0xf1f2edd27460baL, 0xf200ddbab9870fL },
 2207        { 0xc8f1b2ca35e885L, 0x5d22f86e6e7550L, 0x24b9a409554615L,
 2208          0xcb41107616314fL, 0xca752f0c976a11L, 0x3e2f839a08291aL,
 2209          0x0cff22ff2c420eL, 0xafd603e82b9747L }
 2210    },
 2211    {
 2212        { 0xaddeddc810a3daL, 0x78b6c2dd3a87bfL, 0xbc7020bde3a04cL,
 2213          0x47ab9739b6d045L, 0x3b046d60959358L, 0x0f953e7509ee3eL,
 2214          0x803dc8669fc61bL, 0xcceaec0893c8d4L },
 2215        { 0x21f8c40b048a45L, 0xb535073fcaea8aL, 0xe712c3590e360bL,
 2216          0x5d0f3f48403338L, 0xe0ea26c7207f2dL, 0x20f6b57ffd9e05L,
 2217          0xb97d68e4788b00L, 0xb1215541889cceL }
 2218    },
 2219},
 2220{
 2221    {
 2222        { 0x0079817464238eL, 0x21103020d381caL, 0x1cc4c6ed9f01b5L,
 2223          0x5e35dc55a131b1L, 0xb61848d06944ebL, 0x83792a029631a3L,
 2224          0xbe1017fafca0ddL, 0x70aaa01782fcbbL },
 2225        { 0xc63b7a099945e7L, 0xe9164ecc4486c1L, 0xb133e35885f2c1L,
 2226          0x186f0d3c99ae02L, 0x2fca4922bf53e6L, 0xf922aa248a02bcL,
 2227          0x4fe64900dd3dcaL, 0xe8c313ff6a8207L }
 2228    },
 2229    {
 2230        { 0xc5b358397caf1eL, 0xa001922922a4b6L, 0x67e36bedf07c95L,
 2231          0xabaa0aeb2f4f34L, 0x66dc926dedc333L, 0x82021c438ec5b3L,
 2232          0x82b4f2600ab176L, 0x1b7c22e69c45afL },
 2233        { 0x07b0dbe0924ad9L, 0xe030936a407ddeL, 0x66e1ce926ccd06L,
 2234          0xb50c108e3505a9L, 0x8b921e1da98f51L, 0x449ca1a20cf7c7L,
 2235          0xadb80c7e67d079L, 0x205aa54834372dL }
 2236    },
 2237    {
 2238        { 0x1482b4819bf847L, 0xd6c16ab5906f0fL, 0x323fb1723ad060L,
 2239          0x0346389c832be7L, 0xe71b2d82ee45bfL, 0x761c37dfb22276L,
 2240          0xa9b33345d70be2L, 0x81a06565a0627aL },
 2241        { 0x337750399a6282L, 0xafc8d2ed0436f0L, 0x22f71d3c53342fL,
 2242          0x66ca56d8939ad3L, 0x15a919230e09baL, 0x261091ea6de890L,
 2243          0x609d700e78f2d5L, 0x8aa52ee8eaaf78L }
 2244    },
 2245    {
 2246        { 0xa398788ce76258L, 0x3031d07494b975L, 0x4a6d652043dfe2L,
 2247          0xdb1a849b4401ecL, 0xf81ebbbce8bbccL, 0x937dd4716efe9eL,
 2248          0x9c19350ef85eccL, 0x260d932214273bL },
 2249        { 0x1d7e21e77bf1a3L, 0x199d689a544eb7L, 0x9da594194ced50L,
 2250          0x71a60be8a0aeaaL, 0x183a0ae26d3b51L, 0x49f176a8df9728L,
 2251          0x744376e3230674L, 0xb2cb21ae25541cL }
 2252    },
 2253    {
 2254        { 0x7a721589a0071fL, 0xe19dd29e7d2a6bL, 0x3deb34e55113f0L,
 2255          0xef1f8ebede573bL, 0xa8f7ff95665e37L, 0xa2c21eaf2d7777L,
 2256          0x1387afa91e2e39L, 0x04057b97db68f6L },
 2257        { 0x8b9d5ae1c241f7L, 0x689588a8e75993L, 0x79585b45c0e2d4L,
 2258          0xba1ef167b64974L, 0x72685bc1c08a75L, 0xf0a5814d572eddL,
 2259          0x71464a35ab0e70L, 0xc93c92b339aea7L }
 2260    },
 2261    {
 2262        { 0x1917e2a5b8a87dL, 0xea5db763a82756L, 0x5bba2fb6420e2bL,
 2263          0x5cc0501019372aL, 0xb1ef8beccc5efdL, 0xaf06393f49c57dL,
 2264          0x3ab1adf87a0bc4L, 0x2ee4cca34fe6b6L },
 2265        { 0xd1606686b8ba9bL, 0xef137d97efec13L, 0x7b6046550abb76L,
 2266          0xb40ec2bf753a00L, 0x696ed22eaf8f1dL, 0x398c91fd8ba3d8L,
 2267          0x11f203437db313L, 0xe1ec33bfe5079eL }
 2268    },
 2269    {
 2270        { 0x8a10c00bdc81f0L, 0x5f392566fe8e05L, 0xa595dab14a368eL,
 2271          0x32b318138cec6bL, 0xd77afde1b00d00L, 0x3c979284d9923dL,
 2272          0x78f0e7a76e13ddL, 0x5ee8e59bf75675L },
 2273        { 0x49ec89391b130cL, 0x9416182a47a441L, 0x54555b576e2ce8L,
 2274          0xcbdd2fd349c40bL, 0x10ae7379392bbeL, 0x270b1112e2dab0L,
 2275          0x5cb7712af293f4L, 0xfc22a33d6095c6L }
 2276    },
 2277    {
 2278        { 0xdcb5bbd0f15878L, 0xbcf27adb6bba48L, 0x979913e7b70ebaL,
 2279          0x4c0f34b158578aL, 0x53f59a76ed6088L, 0x19b3b2c75b0fc2L,
 2280          0xad628dc0153f3cL, 0x5195a2bcec1607L },
 2281        { 0x95f8b84dfe0f7aL, 0x935c6b0152920bL, 0x25f9e314da1056L,
 2282          0x4910a94b28c229L, 0x54b03b48ee4d6eL, 0xc991fc3694e3edL,
 2283          0x68c4c26dbe5709L, 0xc9cfce463d7657L }
 2284    },
 2285},
 2286{
 2287    {
 2288        { 0x21c9227f52a44eL, 0x7f105a2e85bfbdL, 0x887781f6268fc2L,
 2289          0x56ee808a2d7e35L, 0x14f9de52d3930fL, 0x4a4e356dcb561aL,
 2290          0x87362267f95598L, 0x211c3425f34151L },
 2291        { 0x8fcb75b0eaf9cbL, 0xcc9edf93d60ce2L, 0x54412c9a5fe627L,
 2292          0x6036a72842dd09L, 0x71ce668a6c6099L, 0x02b30d75386764L,
 2293          0xb69bed36f18e23L, 0x124c9b1d1de9f4L }
 2294    },
 2295    {
 2296        { 0xe8f8d95e69b531L, 0xe1e115eaff1049L, 0x9087cd1eddea0cL,
 2297          0x8ed55a57449916L, 0x8009f547808404L, 0x990f21617fea55L,
 2298          0x68ba624fe8ecf9L, 0x8ac295056d1f47L },
 2299        { 0x3257887529dfb0L, 0xc4a613f244c080L, 0xabb1ac028672faL,
 2300          0xb2915c531eb291L, 0x6e368ca8fababaL, 0x6b8c2591fde498L,
 2301          0x67724a1f2a548cL, 0x6b3b7e8f90409bL }
 2302    },
 2303    {
 2304        { 0x5415003fae20aaL, 0x95858a985df5ceL, 0x42bc9870ac6beeL,
 2305          0x8d843c539ea1a9L, 0x5de200cb571043L, 0x084fcd51741a33L,
 2306          0xe1ca20c0009d1cL, 0x0271d28e957e6dL },
 2307        { 0x84cbf809e3be55L, 0xc804dda1c578c6L, 0xea85489409a93aL,
 2308          0x64a450a972021dL, 0xc6a2161e681312L, 0x280bff965bc111L,
 2309          0xd358a4b0f8526fL, 0xd967be8953a3abL }
 2310    },
 2311    {
 2312        { 0x4c5e6157dd066cL, 0x37afd33634c8d4L, 0xa3ac88a42d8b87L,
 2313          0x9681e9b938b607L, 0x7a286ab37fe4c8L, 0xdeee5742494245L,
 2314          0x184b9d36af75a8L, 0x20f696a3670c04L },
 2315        { 0x1340adfa39e8b9L, 0x03c19290850b2eL, 0x435ebd42c0e1efL,
 2316          0x49de18b142ee9bL, 0xb440b273f116f2L, 0xd94e9fa2214463L,
 2317          0x1b0ddd36311543L, 0x1ae042a991ba3cL }
 2318    },
 2319    {
 2320        { 0xbc322f85bb47aaL, 0x9e2562554a5845L, 0x96b65ae21115f3L,
 2321          0x46fbed4bb5757bL, 0x18aec4f4c42dceL, 0xc59caf68d801f0L,
 2322          0x91894631205521L, 0x66bd8e089feb7aL },
 2323        { 0x39ebe95c529ee7L, 0x28d89928eadb99L, 0x6058c786927544L,
 2324          0x877e7a5d3808ecL, 0x8f651111c52eafL, 0xfb59812ae221cdL,
 2325          0x22289c6f890391L, 0xa97695b4966e92L }
 2326    },
 2327    {
 2328        { 0xf0a91226ff10f0L, 0x49a931ba2a65c8L, 0x3fcebbcb1d3cb0L,
 2329          0x70eb79bca9685fL, 0x82520b5ab38cb6L, 0xccf991b76304c3L,
 2330          0x575aab1af8b07cL, 0xec8166a5ed5efbL },
 2331        { 0xddc5698c8689b1L, 0x227c949b2e78d7L, 0x61323218e07d91L,
 2332          0x658a11d22cfd62L, 0x908fb44004dd5fL, 0xe3d14f090d21b1L,
 2333          0x6f3db9da6a1639L, 0x09d86c0333a525L }
 2334    },
 2335    {
 2336        { 0xd83eaf06f043f7L, 0x88ab648b52d5f6L, 0x67c664d57144d7L,
 2337          0x55d7644eafc8b5L, 0x1c89f20cceb291L, 0x51aec7b831ac47L,
 2338          0x51172fa6148854L, 0x8fabf7ef6d7bfeL },
 2339        { 0x5910316477ee27L, 0x5f299dd20fe61eL, 0x48079a842826abL,
 2340          0xf4a83ba22591faL, 0x8fac66055482ecL, 0x48fd5f16b65b3bL,
 2341          0x4288a7c9fd9e19L, 0x27db8199377894L }
 2342    },
 2343    {
 2344        { 0x2936ee47fd9dd6L, 0xcce5f0e9ec87c6L, 0x15a50e3db6e3b4L,
 2345          0x61df105ad701c8L, 0x3601add1dff1f7L, 0xb761e06e8a16e1L,
 2346          0x4341e021af3f91L, 0x9156a4a933fa3fL },
 2347        { 0x9dc46ae54bc01dL, 0x605577a64eb910L, 0x22b99f85a59a99L,
 2348          0xab2dbaf0a229d8L, 0xa8bfb656599364L, 0x39ed4a5e94ebf0L,
 2349          0x7b46a1e0dbb23eL, 0x117b1958751422L }
 2350    },
 2351},
 2352{
 2353    {
 2354        { 0xd19e8fd423bddfL, 0x9d77042387ef59L, 0x315cbdd849590aL,
 2355          0xfdc637c7866c1eL, 0x72be83d03515a6L, 0xd44a4a00376780L,
 2356          0x3b9613119e0c2bL, 0x023aca37b1a689L },
 2357        { 0xf5f368782282eaL, 0x44710898a8b5c7L, 0xcd2f00a17a3066L,
 2358          0x754e11281ed681L, 0x9c6c70c0bfcefdL, 0xd6aced03b6f29bL,
 2359          0xe443d562817a2aL, 0xe590ef4e7c0012L }
 2360    },
 2361    {
 2362        { 0xc2f96763e62e2aL, 0x661816eb2daa26L, 0x3515fd2dd5f512L,
 2363          0xdc36e2756b6e75L, 0x0bdde4674cc658L, 0x102908600e7644L,
 2364          0xfdf00451694a09L, 0x454bcb6ceac169L },
 2365        { 0xf4c92ab6481eb6L, 0x8b77afa09750e7L, 0xe6f42316362d6dL,
 2366          0x0d45deef53a3aeL, 0xdac7aacd7dcf98L, 0x628cb7f125ec4aL,
 2367          0x41e8a20aec0320L, 0x7418c7eea2e35bL }
 2368    },
 2369    {
 2370        { 0x4d649abdf40519L, 0x8cb22d43525833L, 0x15f6d137a5333fL,
 2371          0x8c3991b72c23eeL, 0x248b9a50cd44a3L, 0x6b4c4e0ccc1a75L,
 2372          0x3221efb15c99a9L, 0x236d5040a9c504L },
 2373        { 0x401c7fbd559100L, 0xcf0e07507c524dL, 0x39647c034a9275L,
 2374          0x2355422f7e8683L, 0x3e0a16eb3ae670L, 0x1c83bcbad61b7fL,
 2375          0x491bcb19ca6cbeL, 0xe668dc45e29458L }
 2376    },
 2377    {
 2378        { 0xe44c65b219379eL, 0x211381bbb607eeL, 0xd4c7428b7bc6dbL,
 2379          0xba62a03b76a2e8L, 0xe1729c98bb0b31L, 0x3caeb50c6bbc10L,
 2380          0x6c66727b0187aaL, 0xbf9d2f0fb90dcfL },
 2381        { 0xec693501184dc6L, 0xd58d2a32698eb5L, 0xb366d8da316b07L,
 2382          0xe1e39bb251c017L, 0xbe44ba9adb157fL, 0xbaa9a9a8a8b06cL,
 2383          0xd0f46356e473e1L, 0xd25a8f61d681c6L }
 2384    },
 2385    {
 2386        { 0xba39d5fcb102c7L, 0x66eba21d8aa1ebL, 0xcc2591a697fbf4L,
 2387          0x5adb5792317f54L, 0xa01ae71f76c6f9L, 0x2c525de5042705L,
 2388          0xc8f42724f4479fL, 0x26ab54ae6d7a5bL },
 2389        { 0xda217b5dc28106L, 0xc7cadeaeb2ae6aL, 0x0b1609453ea3b2L,
 2390          0xcddcc1ccc6111bL, 0x5c47affa7a7bebL, 0xf9931bd0e52dabL,
 2391          0x5231835c6dcf96L, 0x7095bdef27ea4eL }
 2392    },
 2393    {
 2394        { 0xee8adaec33b4e2L, 0x300665163ceb44L, 0xf1476fb880b086L,
 2395          0x07033289569ce8L, 0x2cabf9a238b595L, 0x85017bc26c8158L,
 2396          0x420b5b568d5144L, 0xa9f5f1ef9c696fL },
 2397        { 0x1409c3ac8fec5aL, 0x541516f28e9579L, 0x06573f70e1f446L,
 2398          0x3e3c7062311b96L, 0x0033f1a3c2ffd8L, 0x8e808fcca6711cL,
 2399          0x716752d07aef98L, 0x5e53e9a92525b3L }
 2400    },
 2401    {
 2402        { 0xce98a425a1c29fL, 0xaa703483ca6dc9L, 0xe77d822edfa48bL,
 2403          0xd2e3455068abcaL, 0xb456e81482cfcaL, 0xc5aa9817fbfb08L,
 2404          0x8979f258243194L, 0x727f2172cd043dL },
 2405        { 0x7cca616aa53923L, 0x387c5aee9bcb72L, 0x0173fd437580bbL,
 2406          0xdd7795b75fc0d9L, 0x47d1c37345deaeL, 0x2eb5d7fb0d1c03L,
 2407          0xf7a1b92958f002L, 0x7365cf48f61b67L }
 2408    },
 2409    {
 2410        { 0x4b22c3b562a5edL, 0x711216f5c7cd07L, 0x51f72c49ba0648L,
 2411          0xc10d0930de9e6fL, 0xaca479bfda63baL, 0x4722a55af532b0L,
 2412          0x8d59eb77236f39L, 0x5cad8744465c34L },
 2413        { 0xa2119e5722b0c1L, 0xb670264f343ea4L, 0x6910f02c19f387L,
 2414          0xcfec5bc0381fbaL, 0x5f5de0d52c0a1dL, 0x4e474d56378cb6L,
 2415          0x2fc802727e2ba3L, 0xa215da3159b541L }
 2416    },
 2417},
 2418{
 2419    {
 2420        { 0xed535858499895L, 0xa0aefd565c998dL, 0x210d8502d5a561L,
 2421          0xc2cc23ca2cd9d6L, 0x2371d46c4d297eL, 0x88b2143d18d441L,
 2422          0xbebdad9043993dL, 0x6ba91e7ad5f28dL },
 2423        { 0xc2bb3f13a731f4L, 0xd35cfac5d0d5c3L, 0x995099835ac427L,
 2424          0x8938bb55458adbL, 0x0bd738cab26f3bL, 0x56db3d5a28cd8dL,
 2425          0x87eb95fa1d8b4bL, 0xd6700efe7f3b4bL }
 2426    },
 2427    {
 2428        { 0x962c920ea1e57bL, 0xd3be37e6dded6dL, 0xf499b622c96a73L,
 2429          0x3eaf7b46c99752L, 0xa310c89025590bL, 0x535aa4a721db23L,
 2430          0x56ab57819714a0L, 0xeecb4fad4048c1L },
 2431        { 0x7b79ec4470c466L, 0xc4e8f2e1383ceeL, 0x0f5d7765750c45L,
 2432          0xa3b3bc3725527dL, 0x2f5deb66d00cceL, 0x5d5a0f495a8d81L,
 2433          0x50a442ee02b824L, 0xafb04462a11628L }
 2434    },
 2435    {
 2436        { 0x72b67bc0c613deL, 0x0150d4be6f0b24L, 0x847854e8ed289dL,
 2437          0xe08292fa320f88L, 0xd5b6da329c6160L, 0x2a48e2d4fb9d06L,
 2438          0x55d9e412de087cL, 0x65683b54f02100L },
 2439        { 0x4dc8c2ea8886c6L, 0xe966dd220d6114L, 0x99745eba57af97L,
 2440          0x23a9a71b854725L, 0x8effe05621a047L, 0xf16d284049a4beL,
 2441          0x95828c25b0660fL, 0xd5b69ba56e96b0L }
 2442    },
 2443    {
 2444        { 0x0b5b4244ffa0b8L, 0x0585b45096cc5eL, 0x413e1aef505d37L,
 2445          0xe5652a30c7ab8dL, 0xab32fb72990120L, 0x6b8b16e3f09368L,
 2446          0xbf9fadbefe128eL, 0x85f366b14b7671L },
 2447        { 0xcb2f294090608dL, 0x25e2769ac3045fL, 0x069c4f06131904L,
 2448          0x1c57cf1329a779L, 0x72fe0d5b7cace7L, 0x04d9f430897a45L,
 2449          0xbaf32f6359a645L, 0x0fa854ffa7485aL }
 2450    },
 2451    {
 2452        { 0xae3533c5f56f60L, 0x9773bbb0ad9360L, 0x769b34a38fbe6bL,
 2453          0xb5ba8e9ffb0c00L, 0xa93931875472e4L, 0x12cac92ce5f30fL,
 2454          0x514fc06a9e7dbcL, 0xd7ca86558b4734L },
 2455        { 0xd101ff365a730bL, 0x92da451abe70e9L, 0xfb5f94aef7bf4bL,
 2456          0x8c3ef4c1d56c7bL, 0xb0857668435c10L, 0x7fbbbdae7ed4ccL,
 2457          0x1da6eaf24f372fL, 0x0ab2c1f59b8ae3L }
 2458    },
 2459    {
 2460        { 0x63a1a78f10a4b9L, 0xbb5278d0c7e510L, 0x97b224ef874142L,
 2461          0x0a9ff52b2517b1L, 0x1b5a485c5cd920L, 0x1a8e2eba1823b9L,
 2462          0x2b088c00e914a8L, 0xe5ec3adcf13432L },
 2463        { 0x0d6ab3e6e7e253L, 0x9f0f5cd6f18458L, 0x839a744f459a6dL,
 2464          0xb4b4f941eb15f7L, 0xe0313acc72cb14L, 0x58ee933b20472dL,
 2465          0x5f73d7a872543eL, 0xb1700c5501f067L }
 2466    },
 2467    {
 2468        { 0xb70428e085f67fL, 0x5441d5143cabe5L, 0x4d0e8c2e0a6055L,
 2469          0x8d39a080882e4fL, 0x615bb32c1cb39dL, 0x113f18df7a1642L,
 2470          0xbab8cf5250681fL, 0x3017ba2677b72aL },
 2471        { 0xcd2b6e95a3a876L, 0x04765012035a69L, 0x31d6440efa2ea0L,
 2472          0xde8f8d156874d5L, 0xcbc71cd0199d4aL, 0xc546b61e7f2170L,
 2473          0x4e57e4e112c4c3L, 0x58955a8d1622baL }
 2474    },
 2475    {
 2476        { 0x0064cd704e2f6fL, 0xe9d458de0edd38L, 0xeb1a5977e0a5c8L,
 2477          0xe322ece01fc0a8L, 0x8b9d1661032a19L, 0x3e7b539a89de94L,
 2478          0xfa30262001c754L, 0xe33de4ddb588f6L },
 2479        { 0x4dafbdb954eb94L, 0xbb436480584c1bL, 0x622c93e5dbe29bL,
 2480          0x968f9e3f57b931L, 0x98f03be0f6453bL, 0xb0ecc7f08f696cL,
 2481          0x5af55f4a505335L, 0x028533efb3fa9bL }
 2482    },
 2483},
 2484{
 2485    {
 2486        { 0x3bc8e6827e8d86L, 0x4e43b3063f105aL, 0x5301b7d4981250L,
 2487          0x8b0a75e9f72fa8L, 0x88f59db357348cL, 0x5f0ebb1ec4208eL,
 2488          0x4712561c043d3bL, 0x9e5ded0c806b97L },
 2489        { 0xf9bd0a62121d09L, 0x1759ecbe337cd1L, 0xd1acc0ee945542L,
 2490          0x3683febbd2f63aL, 0x44f1bccda5dfe9L, 0xa3606c9707f22fL,
 2491          0x45ef0642d96ca5L, 0xfc3107d9022df9L }
 2492    },
 2493    {
 2494        { 0xe81320b44be755L, 0xdf213d55c7c761L, 0xf43d2d5b4e5db9L,
 2495          0x3bcfd828dedcd2L, 0xdf368a6d37a9ecL, 0xfef20aef475a77L,
 2496          0x22f5894162c064L, 0x956bc660142a7dL },
 2497        { 0xaaa10e27daec78L, 0x3cb9b72b6e9a78L, 0xa740bade383f72L,
 2498          0xc31b4017759007L, 0xdada964a7afc50L, 0x6bf062cfd3d11fL,
 2499          0x9470d535db3679L, 0x339447303abf13L }
 2500    },
 2501    {
 2502        { 0x533f44046e5d7fL, 0xd1793e349048c8L, 0x59e11501929b94L,
 2503          0xcddbbcb8364134L, 0x795c794582774fL, 0x114dfc4e03081aL,
 2504          0x541ef68ef54042L, 0x159295b23f18cdL },
 2505        { 0xfb7e2ba48a2c8cL, 0xe2d4572bb6d116L, 0x7bb0b22d750b53L,
 2506          0xc58888cd142ee8L, 0xd11537a90c9e2dL, 0x77d5858d02eb9eL,
 2507          0x1fa4c75d444a79L, 0xf19b2d3d58a68dL }
 2508    },
 2509    {
 2510        { 0x37e5b73eb8b90fL, 0x3737f7a3f2a963L, 0x87913fa9de35e0L,
 2511          0xec7f9928731eddL, 0x6e6259e219491eL, 0xb2148a04de236cL,
 2512          0x89700e8fdd309bL, 0x9ce51e49f0bf80L },
 2513        { 0xe7ec421301f17bL, 0xa4b570a3bc5f4fL, 0xc2b1b2a1285ee2L,
 2514          0x5e86bc8c53db73L, 0xb65fceaf24fa90L, 0x9e74c5608ab024L,
 2515          0x5c8003df9ed877L, 0xa632e9e4a2cbbcL }
 2516    },
 2517    {
 2518        { 0x32a4546c91c8b5L, 0xc122b5ac969363L, 0xbbbec5e3648b3aL,
 2519          0xd5a365e25143b0L, 0xcf3e46454157ceL, 0x9712f04f9bab64L,
 2520          0xc12d43a04b4008L, 0x51932d72edf1c7L },
 2521        { 0xaef1655b2f8470L, 0xaa8e3f36c24aceL, 0x7da75da6b4e761L,
 2522          0xd371827b90bca2L, 0x84db4500afb45cL, 0xae12045ef46b5dL,
 2523          0x91639a5d962f98L, 0x669cbe672f2ac0L }
 2524    },
 2525    {
 2526        { 0x851bb3183a4356L, 0x7d436bf9a1bf15L, 0x46a3f0e120b378L,
 2527          0x9302abc3f5b357L, 0x1e0672693fef53L, 0xb12f4a95fd2ee9L,
 2528          0x94a884c7de9433L, 0x2645234a6f2874L },
 2529        { 0x6fb56f5cdb8dfaL, 0x4a17dfc9e0ee4eL, 0xe269d8383ab01eL,
 2530          0xda932dab77c10fL, 0x463af0c0321243L, 0xbe1d68216fc8a3L,
 2531          0x2eae3ea48b39e3L, 0x94230213b03e7bL }
 2532    },
 2533    {
 2534        { 0xaeb507cb22f28aL, 0xa77458b49a6b44L, 0x232ed5ac03dc17L,
 2535          0x79dfc169c61ac6L, 0x7c48be9cd71b93L, 0x983d68ac429cd9L,
 2536          0x7709c4798ae2c8L, 0xe4765c0a5df075L },
 2537        { 0x23c4deb3367f33L, 0xbdf2b7e37d72a7L, 0xbaab5c70af2d26L,
 2538          0xd609f7ffd026abL, 0x23b72b2541b039L, 0x8d06bac83be852L,
 2539          0x911d4a9cb23d1cL, 0xeae815cfb0dbd7L }
 2540    },
 2541    {
 2542        { 0x487c35c2c33481L, 0xffab636b6136dbL, 0xccd4daea3d3aa4L,
 2543          0x87149bbc3704e0L, 0x9de8119c0e8396L, 0xd49357a58e7ca6L,
 2544          0x68789181562d75L, 0xc7453815ab1fadL },
 2545        { 0x0f1579802c9b91L, 0x7ffc3f0b1ddde5L, 0xa01d5e06aae50dL,
 2546          0x6a97e65e279873L, 0x4bcf42fb5b1b41L, 0x1c6410f32f5982L,
 2547          0xd4f760050701c8L, 0xff02663873b90dL }
 2548    },
 2549},
 2550{
 2551    {
 2552        { 0xdc53ea2e5b2de2L, 0x94b352d38acecbL, 0x37d960b0d9d5e5L,
 2553          0xabd868f90bd997L, 0x781668f35a7376L, 0x043d59710118bfL,
 2554          0xd4da719f57928aL, 0x01942f6983e46cL },
 2555        { 0xab97fc8728bd76L, 0x825956b4b5c1c5L, 0x202809fc82a104L,
 2556          0xdb63e9cc8e3132L, 0xa41c701c2181afL, 0xd28018043e066aL,
 2557          0xc734e4124044ceL, 0x4d9ab23505193cL }
 2558    },
 2559    {
 2560        { 0x0bcd42af9f0c3fL, 0xda21a46b94a218L, 0xe55243c0ffc788L,
 2561          0x318aae647a5551L, 0x8c2938b79af9cbL, 0x5d15232ec1dce5L,
 2562          0x3d310ba8ad2e5cL, 0xd3d972494f792aL },
 2563        { 0xdeb4ca112a9553L, 0x2f1ed04eb54d9dL, 0xaa9c9cf69fb7a1L,
 2564          0xeb73c3a54dcd3aL, 0xee3eddcf5f201fL, 0x35f9e1cba7d234L,
 2565          0x1d1d04cd2e242fL, 0x48df9d80df7515L }
 2566    },
 2567    {
 2568        { 0x4ecc77da81dd9aL, 0xa6ac4bb03aa015L, 0x7645842bbc4fedL,
 2569          0x9ae34cd9d6cf52L, 0xf8ff0335917e0bL, 0x7c9da37c2cc175L,
 2570          0x1e74dccaaacfbeL, 0xa8f2df07999af8L },
 2571        { 0xd06c4ea102a466L, 0x2156e87ae190ddL, 0xc95db8aec4a863L,
 2572          0x49edffd244a6feL, 0x110fae6904f81eL, 0xbaa3e50a1cd104L,
 2573          0x5bd38a20478b65L, 0x2b57d05daefbccL }
 2574    },
 2575    {
 2576        { 0x1ce92ba86f4534L, 0xb2a8592414f5e3L, 0xdd7a4c69979436L,
 2577          0x7599aff3f0add7L, 0xe0ce4d3e2d4f64L, 0x74475cc401a29fL,
 2578          0xaef6541a2377d9L, 0x54048f53f917b6L },
 2579        { 0x1b86b2205312ecL, 0x779ba2231493cbL, 0xc718369aac9320L,
 2580          0xeab01a8617fce4L, 0x17b1f10f7187faL, 0xe68eda0a1aca46L,
 2581          0x61033fe2586342L, 0xfc14e790b6ca43L }
 2582    },
 2583    {
 2584        { 0x9f2231913d2491L, 0x66bdb537997202L, 0x0bafb0c4617f34L,
 2585          0x5917831f3bb7b3L, 0x6feb2a6b45bddbL, 0x08662b30202c19L,
 2586          0x0bc2b5705852f6L, 0x2c00fd491818c2L },
 2587        { 0xca7672cda37dacL, 0xfe4c04c5a30865L, 0x5f1399f322e92aL,
 2588          0xe7d67ea25b1bebL, 0xe08b014dce7f68L, 0x24df52af2f2b3cL,
 2589          0x2028b23750ecd1L, 0x9b25d4bc810a45L }
 2590    },
 2591    {
 2592        { 0xa35b7157a9d799L, 0x6da1eb301f9c99L, 0x33ef91ce363ba8L,
 2593          0x21c0e2ece140daL, 0xb0b11bf158cd84L, 0x6a8744293da438L,
 2594          0x924f10d3db585bL, 0xf5ddd7310c6159L },
 2595        { 0xb72dcb86a74c21L, 0x6d14198cc8f79fL, 0x99f4b6c9c5a8d6L,
 2596          0x063968890e135cL, 0x330edb883f6385L, 0xe1a5a6b9079675L,
 2597          0x6e37fa8b8f5fe0L, 0x60e2fd961dca1eL }
 2598    },
 2599    {
 2600        { 0xc6cb40366c395eL, 0x03b21a7b51d0f1L, 0xbc478a5e693181L,
 2601          0x0017c2fc6cff33L, 0x740a5b839d8d1eL, 0x3968d664d9ec6dL,
 2602          0xfd53738b0ef1b0L, 0x73ca8fd1ed0a04L },
 2603        { 0x4ace93875ab371L, 0xd602936ddad7e9L, 0x1f5424a750bcc2L,
 2604          0xfe09b3668c7a17L, 0x165f7de58341ecL, 0x95b825a6ce61e5L,
 2605          0x9d31e1966c83c4L, 0x65b3e08cc5887bL }
 2606    },
 2607    {
 2608        { 0xd37e93221482d1L, 0x9af659708b6380L, 0x279426a7d61e4bL,
 2609          0x80dd0ec80997adL, 0x7239b0dd5b76d4L, 0x92e6c73e76c098L,
 2610          0xeeb2321eab3e1dL, 0xa69c4a7eb1a910L },
 2611        { 0x46d6aa7833d9aeL, 0x3ee6957572b0feL, 0x44ccbedcdb3d97L,
 2612          0x342f29dcbea01bL, 0x0d518c58926876L, 0xaaabae75585d2cL,
 2613          0xc548c77e008f58L, 0x819e2fa21fab2cL }
 2614    },
 2615},
 2616{
 2617    {
 2618        { 0x468e149c16e981L, 0x286c7909ddbb7cL, 0x2a92d47db7a38aL,
 2619          0xde614e68a27cb2L, 0x8dc8822e5b0ab6L, 0x38441aecf48565L,
 2620          0x11ed5c9089435bL, 0x238928682d0d31L },
 2621        { 0xc6698d472f2f31L, 0x295242c56d76afL, 0x4099205eba563bL,
 2622          0xae7de5a3ab7384L, 0xccdf127d0ed86cL, 0xb9b6d5b965c3c3L,
 2623          0xe351a8f2c31ad7L, 0xa761dd8ac12f13L }
 2624    },
 2625    {
 2626        { 0xda115ddf171ab7L, 0x2de17b1401f93dL, 0x95019ca40964b4L,
 2627          0x169d1f465ba3c3L, 0x534a0070090d08L, 0x805c5e282bf410L,
 2628          0x15dfe1165f8d90L, 0x827a416ca72456L },
 2629        { 0x5af888433a36c4L, 0x8bfa54cd8ee604L, 0x08fd1419ce290fL,
 2630          0x2db5e8c287b3a6L, 0xe5be98103cdad2L, 0x155b874bf810b9L,
 2631          0x2ae42de670f473L, 0x22185847f74657L }
 2632    },
 2633    {
 2634        { 0x54b2a5023ffa43L, 0xcf87b16a24d919L, 0x1ff540263524e8L,
 2635          0x73c94e056d1e54L, 0x76515523899fb5L, 0x13a721418723bfL,
 2636          0x39afbdd3561517L, 0x49b790a9f2862eL },
 2637        { 0xc8c1f4f527d2ceL, 0x1997aec7609bb7L, 0x583ad8002a3400L,
 2638          0xac2374e4f79706L, 0xbf1f9a821b7183L, 0x06158ab6600fe0L,
 2639          0xfcc9b2ebd56751L, 0xe1de5acddaaec7L }
 2640    },
 2641    {
 2642        { 0x230baa1788fdabL, 0xf30860a7d04597L, 0xa2c7ece99f4caaL,
 2643          0xbd39f106ad065eL, 0xfd92f5d3bef7bdL, 0x6069fad96d2203L,
 2644          0xbff38cac4d9e0dL, 0x419a0171fda313L },
 2645        { 0x5d77fd8572f035L, 0x5af99f2b282b40L, 0x7257d3b23facffL,
 2646          0xf2ee22358c90afL, 0xcc2687d9b6a52aL, 0x140892c302430eL,
 2647          0xa934d5e3ec4f38L, 0xc087d7c3bd18beL }
 2648    },
 2649    {
 2650        { 0x7e94138a2c5ed7L, 0xbc8ceef53610bfL, 0xe89356bd86f803L,
 2651          0x9a3a3805a55330L, 0xe894aba11ad648L, 0x2e68fbaba95918L,
 2652          0x643e2bafcad344L, 0x0dd025661640aaL },
 2653        { 0xc02e479e25cbddL, 0xd78c4d813a1b3fL, 0xa6dae8fcca9692L,
 2654          0x3dd91e9e5de8a0L, 0x78ae0ce764ea36L, 0xb4ad99985dbc5eL,
 2655          0x967ff23e82a169L, 0xaeb26ecbaee1fcL }
 2656    },
 2657    {
 2658        { 0x8c502559a6f90cL, 0x56e7abe0ea374aL, 0x675c72256413b2L,
 2659          0xd3fc17e946753fL, 0x28c4e1fe235f7cL, 0xe209bcdb028eb0L,
 2660          0x7d0f93a489fe88L, 0xb966a2e063706aL },
 2661        { 0xb6c228c4a30319L, 0x6868efeca6d674L, 0x0610a70057311aL,
 2662          0x0808112bad7f89L, 0x2a2462c1dd6181L, 0x52ed9feb58e88aL,
 2663          0xbbff16f33821a2L, 0xda53e9617f882aL }
 2664    },
 2665    {
 2666        { 0xb6ffca38c30e5dL, 0xa90f9915c905f5L, 0x72fb200d753e88L,
 2667          0xe509d4c7256c6aL, 0x369e552d866500L, 0xee4b7e033cf8aeL,
 2668          0x280d954efcf6ebL, 0x5b275d3d557f0eL },
 2669        { 0xeb17211b5cecf8L, 0xd6ad50fbdb2f8dL, 0x2478c7b35e04b7L,
 2670          0x97e7143ac73bd3L, 0x09d6ede4817e24L, 0x68fea712c405e1L,
 2671          0x34adbc905f67a1L, 0xd20ab7073edf99L }
 2672    },
 2673    {
 2674        { 0xe116a96569f191L, 0xb3f0bce4d6e29aL, 0x30b9e1af51dbabL,
 2675          0x1dd36f3346d276L, 0x83151030749a27L, 0x242f148ab47f70L,
 2676          0xe8a5bcf5585681L, 0x8b801845ed79baL },
 2677        { 0xa4042fd3894ad1L, 0x82f781d2b88bc6L, 0x2d34cacbe4c397L,
 2678          0x8731aeadd99c9fL, 0x0f95498ef1d382L, 0xcaba2e1dd0bbc9L,
 2679          0x78889e954064e8L, 0x8cd9c9761a8ab9L }
 2680    },
 2681},
 2682{
 2683    {
 2684        { 0xf31f53ffa0459eL, 0xf8742a1315cd6bL, 0xabe2f50ae64e97L,
 2685          0xbd787419b9da48L, 0x4521a3351e526eL, 0xfa05935e10ba45L,
 2686          0x5c947e1e8f903cL, 0x0aa47d15a754eeL },
 2687        { 0xb2849efd814825L, 0x9c2a5d25c9968dL, 0x24dbb2604e634cL,
 2688          0x33f3a4cdb38194L, 0xe04f609c8a2b6bL, 0xcaefd8eabbbfdbL,
 2689          0x683119a404498bL, 0x24ab7a98b21cbdL }
 2690    },
 2691    {
 2692        { 0x6f1326921fa2ddL, 0xd79e61cc10a4bcL, 0xac4b3ce4bd6d46L,
 2693          0x52459b6bd3f37bL, 0xce0f0a3a396966L, 0x050d1d5a1ed488L,
 2694          0x1b9c403e0b17faL, 0xee1abd004a2e66L },
 2695        { 0x97065c35cf3e3bL, 0x6513d5fbe33441L, 0xcd3463479047aeL,
 2696          0x45cbb1cfd22df1L, 0x7a173ae967b17cL, 0x75f5ba72223cdaL,
 2697          0xe3d12dbefe0a73L, 0x3b7f94dfd7adcfL }
 2698    },
 2699    {
 2700        { 0xd596a13f1e9b7dL, 0x04f5bdd6734e0cL, 0x18b694f8be163aL,
 2701          0x15620c7d959fa3L, 0x65fc2c553d2a3bL, 0xd44a364c4d36f2L,
 2702          0xc8b421f268ceabL, 0x564139abfe2bd4L },
 2703        { 0xb52461019d4633L, 0x5ab3f886346934L, 0x96691fe9819422L,
 2704          0xdfdec898b39b82L, 0x84b1c7997cfb27L, 0xe59a98d4d6d004L,
 2705          0x5e5d0c612c350fL, 0xb431220d415774L }
 2706    },
 2707    {
 2708        { 0x3d0ca736aae0a2L, 0x7b1991f48c2d8cL, 0x00ae8565cdae72L,
 2709          0xdbb6ca0bd55128L, 0x3c2ab2a45c82bfL, 0xea5a55979545caL,
 2710          0xeba9a26d5927d0L, 0xb52e40183257fcL },
 2711        { 0x55ed517ca9650aL, 0xbdaa081e3ebff2L, 0x8cf7ce49f8831bL,
 2712          0x1d0b5bd6e3b8d3L, 0xa314a9fd8fc869L, 0x07f2079b892babL,
 2713          0xb700dbfa0cc9d9L, 0x7105a086dc0a39L }
 2714    },
 2715    {
 2716        { 0x0c7e05d8c7d901L, 0xa7ff681af3182bL, 0xb88e3caf9a0d06L,
 2717          0xfe20a12c343b7fL, 0x9f0257703251f9L, 0xf225dedc40c5ebL,
 2718          0x50e0cecb208ea7L, 0x5b250f0e6eeb65L },
 2719        { 0x807a1534806b6eL, 0xded120afa94139L, 0x237ddc749366fbL,
 2720          0xdd3674e5a34bcbL, 0xef6cdff9c4a61dL, 0x036194bb2fb896L,
 2721          0x38659539528cd9L, 0x0723c596936a52L }
 2722    },
 2723    {
 2724        { 0x1f84cd5e17719dL, 0x545939bc73b394L, 0xefbf3c583e84e7L,
 2725          0x6cc46f1f77fd66L, 0xa629f591383ab8L, 0x9177ffacd35cd2L,
 2726          0x039187f9dd411bL, 0xa9cf1cf7b7eea8L },
 2727        { 0xa3b105aac47e5dL, 0xa755bead0a9da4L, 0x50cfbae73da15eL,
 2728          0x9456cbc60b628cL, 0x7ffc3629b7a910L, 0x30b5924cd6d6a4L,
 2729          0x198629f0b04ab6L, 0xc74609c624dea9L }
 2730    },
 2731    {
 2732        { 0x27d4d77af12fa6L, 0xdd8a216690aeb2L, 0xe48fc02fe24417L,
 2733          0x1970403720e17eL, 0x95013fdce37b42L, 0x06817d2de4bd9bL,
 2734          0xc5863e763d0ba2L, 0xa1bafc0a556f5dL },
 2735        { 0xf28ec7b410a78aL, 0x0dcac420a01a63L, 0xfcd3fa4b5bce11L,
 2736          0x054d7e5d278b89L, 0x5195db85ce49e3L, 0x4c0b1672c73d96L,
 2737          0xd94307720a1bdbL, 0x66fa8b359c77a7L }
 2738    },
 2739    {
 2740        { 0xb9e93aed7462feL, 0xbfe54b218dde4fL, 0xaabb5283dbb08eL,
 2741          0x8c367020e5fc45L, 0x35028888e69be3L, 0x6d2efc1c12a11dL,
 2742          0xfce5cebf265e30L, 0x58c8bb35742c7eL },
 2743        { 0x32e89dcccf7fa0L, 0xa811f33dd020a4L, 0xa10d6205129fe5L,
 2744          0x3841c88e4ed29bL, 0xf3303a9d8b1ea6L, 0xa9a0cad1781f58L,
 2745          0x4502b388f3ef0bL, 0x2b7587e74c6d35L }
 2746    },
 2747},
 2748{
 2749    {
 2750        { 0xc6eaea123ae7cdL, 0xa1884d473c0caaL, 0x901e76fef1ea88L,
 2751          0xdb9935ca14269dL, 0xe8b2486947f1deL, 0x4ad56f4a657588L,
 2752          0xe7680542913fb1L, 0x2abff5d37600daL },
 2753        { 0xa814813a81a797L, 0x63e76a446acb69L, 0xb1038394ab8277L,
 2754          0x587de349d8e759L, 0xdfaeb8dddf62dfL, 0x24fe1cf9239d49L,
 2755          0x7de7409e130d1cL, 0x3ecfef9581d070L }
 2756    },
 2757    {
 2758        { 0x8d177a0f87c72dL, 0xae7e5818c6d1deL, 0x0077b5f8cece85L,
 2759          0x382483832d2187L, 0x49d8b156db2bd2L, 0xe9e5513c8d85b9L,
 2760          0x63c410ce05c53fL, 0xceaf2fbd86f752L },
 2761        { 0x0b432fe93806c5L, 0x18eb15d3d06c75L, 0xcaad82612cfc02L,
 2762          0x581e0401e2d045L, 0xd573cb595edcfdL, 0xce71948dbc66e3L,
 2763          0xcf68721acc14eaL, 0xf68bea26cac4dcL }
 2764    },
 2765    {
 2766        { 0xd8576afcb74da2L, 0x8771c29c433f46L, 0x7315af6e2f5b8eL,
 2767          0xc195481ba33928L, 0xb77dcc22fb1f94L, 0xcb3e57ca610f75L,
 2768          0xeb2a92753907dfL, 0x916f14923eff95L },
 2769        { 0xbb378e4b6cd291L, 0xa2a5e2b2f13ce1L, 0xa8a0e60bcd00b0L,
 2770          0x5902741682b75aL, 0xa0882c93f65a77L, 0x2069f75c93cfffL,
 2771          0x1ede40570c0cb9L, 0x13840c90d526c4L }
 2772    },
 2773    {
 2774        { 0xdc2caaa03ced48L, 0x2079219a0315beL, 0xca493563b1f642L,
 2775          0x0202dc7b0665f2L, 0xe5d6bbdb7a5238L, 0x36fbd5e26eab32L,
 2776          0xb3988f1f5819b4L, 0x5b15dc84aa4d69L },
 2777        { 0xa52feed54e5c24L, 0x927471be91a797L, 0xd119bfdd57f677L,
 2778          0xde38f7b78e4c4fL, 0xa7af516b150bc3L, 0x403b21e26b76c2L,
 2779          0x589067d92300dcL, 0x04e406a066802aL }
 2780    },
 2781    {
 2782        { 0x28e7d09a9ca9bbL, 0xaa84fd5fccf4a0L, 0xdbe9fb8635b7edL,
 2783          0x9ede3f5d56fc7cL, 0xa4b5031b01cb29L, 0x584299d7f93703L,
 2784          0xbd28868b6fe825L, 0x1d385d48b9c2d9L },
 2785        { 0x6606f4a822be80L, 0xb5a0165626d0fdL, 0x9920a2014568adL,
 2786          0x7d430f41c6d174L, 0xc243e16e02e9e9L, 0x367f1d2a6bd649L,
 2787          0x693910071b8c36L, 0x2ede1314de2984L }
 2788    },
 2789    {
 2790        { 0xdc781875beec32L, 0x1fff0cca525ff4L, 0x6e86425676df34L,
 2791          0x2b4e8a63f638e1L, 0xc4991d29b1e59fL, 0x399d0011589717L,
 2792          0x406464ebe041cdL, 0x901cb3d9e65bb0L },
 2793        { 0xf5f4572fb42307L, 0xf81b3b0f1b7307L, 0x8fb695cf2094d1L,
 2794          0x7db4792db56f7bL, 0x36836d55a794e0L, 0x2da477b09bc879L,
 2795          0x1cdfadb1887c40L, 0x65dc6c2f2699b6L }
 2796    },
 2797    {
 2798        { 0x36f9f214737972L, 0x48f0c8b7a387b0L, 0xa156ed339a1d24L,
 2799          0x375293a0fed268L, 0xf679f487ff75cbL, 0xd15a00f1cc9e62L,
 2800          0x92a7dc722c3877L, 0xe9870636fb0ed4L },
 2801        { 0xfd8e59c16f5f3cL, 0x375732eaeeb48eL, 0x2dd9213ca1ab42L,
 2802          0xcb062099ffcceaL, 0xfc611f6b23edfdL, 0x271634999b060eL,
 2803          0xb938b5d820de8aL, 0x138f6e7eb49a32L }
 2804    },
 2805    {
 2806        { 0x7feda63e485f70L, 0x646380aeb27b2cL, 0xcf8fe32c4511c7L,
 2807          0x2c68e1eff9406aL, 0xa9f2fd920b6020L, 0x1c98fc63b3e465L,
 2808          0xb8dac3593e53aaL, 0x2fb47b6a750e96L },
 2809        { 0xea373ef1950bb3L, 0x81566944ac7aecL, 0x8d6b3c2b55b931L,
 2810          0x5d13f2db62ef7dL, 0x4647f2aab9182bL, 0x8f56c5a33bf07cL,
 2811          0xc5ab284b35a221L, 0x0747ab75a46a6bL }
 2812    },
 2813},
 2814{
 2815    {
 2816        { 0x5b9236c86b85c5L, 0x5967a0dc482448L, 0x397c9557df6ae0L,
 2817          0xf83ee1c5378f2bL, 0xf82df656e05dd1L, 0x4c424f619d7c8bL,
 2818          0xa612550a6d5f2aL, 0xfe8482a63c3ebfL },
 2819        { 0xcb8d4030142c82L, 0x08b06623679e6cL, 0x3ea51463eca5eeL,
 2820          0x089eb3b1370500L, 0xcbfb19c5a0d306L, 0x2f6858842a65bbL,
 2821          0xe3e1db5e51e119L, 0x2c150e7110895eL }
 2822    },
 2823    {
 2824        { 0xf323488f6d4c4cL, 0x5fc931f63b87e2L, 0x8867da035c759fL,
 2825          0xb6f1eff9746d4cL, 0x8a8172d990be0aL, 0x1113eee5c407b4L,
 2826          0xd80dacf378ed8aL, 0x99b57cf3fa7fd1L },
 2827        { 0xf5bb6d95176405L, 0x6b8963a92e83b5L, 0xac55b6b8a7ef8dL,
 2828          0xe73fa126c1fbf0L, 0xdb3756060148dfL, 0x72f1a98f3f1fbaL,
 2829          0x1f71d0aea550f2L, 0xc3ea4f09544a87L }
 2830    },
 2831    {
 2832        { 0x5b09da24322bf3L, 0x2a573d561264e1L, 0x93cb2e1803acc4L,
 2833          0x397b4fbe502fc6L, 0xddfb21239e0ebcL, 0xeccd8f5bbcbc57L,
 2834          0x49d3bed4663788L, 0x37192aa1218df9L },
 2835        { 0x8a05bc92ffa3c6L, 0xc38c28123ebf4dL, 0xc80d547fe343a8L,
 2836          0xa8d5a5b6c63516L, 0xc5d8ce18d8fa6bL, 0xeb5e87224a87c0L,
 2837          0x9806e9e75bfa23L, 0x11f0889689469aL }
 2838    },
 2839    {
 2840        { 0x81005f68e75666L, 0xb84d861d349505L, 0xe0832829f321eaL,
 2841          0xb751d7acfa33a1L, 0x793cf6f067c550L, 0x073a6b21027e56L,
 2842          0x53f40ee66a6012L, 0x70bfaa8c210fa9L },
 2843        { 0x1518e39e4b5998L, 0x8f0b53024b8d9cL, 0xd91c281afdf923L,
 2844          0xc5cfb2824e3f69L, 0x63a529a870871fL, 0x3d3e8872128dadL,
 2845          0xed658dccb30cceL, 0xf9373b9afb7baeL }
 2846    },
 2847    {
 2848        { 0x22d4dbede58ed2L, 0x4fefc1d03f8789L, 0x6b0a1fe344817fL,
 2849          0x96bef40a56b0b2L, 0x32684eeda249faL, 0x8298864524a91bL,
 2850          0xa958baf0c736a1L, 0xd033a7def2f3e5L },
 2851        { 0x5be3edc43f4d6aL, 0x326a39d9c89abbL, 0x90c44f755d997aL,
 2852          0x20581066e966c2L, 0xdbae4906548038L, 0xac7bc97d473fc1L,
 2853          0xb34488b4b2603aL, 0x27aea275e9bb98L }
 2854    },
 2855    {
 2856        { 0xa59e7281b88773L, 0xe2f05d40c241f6L, 0xa56229e4e75749L,
 2857          0x8f00c0b1b10705L, 0x855994619394d3L, 0x0d7e352aaf5e32L,
 2858          0x526c462787b8eaL, 0x89297d9a179d48L },
 2859        { 0xeff17e6ef43892L, 0x17091eb221f841L, 0x82f5eb34a4b848L,
 2860          0x6bea4778eb7b76L, 0x21f227176c536cL, 0xd9ef2c896c81bbL,
 2861          0x7c2754654bf4d3L, 0x9dd4662d7c28c8L }
 2862    },
 2863    {
 2864        { 0xe7fff0020e1a6bL, 0x26a35c6a08d467L, 0xb3c773d3248c91L,
 2865          0xa646615ba7d935L, 0xa91f453b0d26faL, 0xdcf9c3460c6d32L,
 2866          0x63668619e3e3dcL, 0x3012813f30f3e2L },
 2867        { 0xac6623dc2fc61aL, 0x108dc252bfd2ffL, 0xd7f5c0d231d6eaL,
 2868          0xa904f9aad1107eL, 0x46941c20d1e9c8L, 0xe5b6451c810cf2L,
 2869          0xaba8e674f511d1L, 0x5b4b94f08373feL }
 2870    },
 2871    {
 2872        { 0x002d4e2849c230L, 0x9bed0efd8ba391L, 0x745e0c0828e319L,
 2873          0xcd40907ca58de2L, 0x2c87ab11abaa4aL, 0x3c17a97db64391L,
 2874          0x36b184e86c72d2L, 0xb03d202485f7aaL },
 2875        { 0x2b6b79bde24abaL, 0xdcb78542325fb2L, 0xf5d1db966ebae2L,
 2876          0x35a4d5b903840aL, 0x7afeb09190e9daL, 0x1818f6a35c1792L,
 2877          0x90091fa3faa269L, 0xc4ccff62570235L }
 2878    },
 2879},
 2880{
 2881    {
 2882        { 0xa177619ec85940L, 0xfca24db7ef7eeeL, 0xb2450f37a90c11L,
 2883          0x29d256ddbf4f85L, 0x920c8d051316c3L, 0x2f7f7ba04474daL,
 2884          0x308117f2ec9a0bL, 0xd0a231ad0d2085L },
 2885        { 0xf3288fc7ab641dL, 0xc68bade9f4fa32L, 0x768f014bbf8253L,
 2886          0x5eff260c0a33f0L, 0xc71b4536bb93ceL, 0xa71d045680697fL,
 2887          0xb62444cce72bc3L, 0x11f03e8d1379f3L }
 2888    },
 2889    {
 2890        { 0x1f54789c16df92L, 0x874c642e3ed142L, 0x6699f60fa2a9f1L,
 2891          0xbd1b8d33fecfc1L, 0x59682d58a3d953L, 0xf17c0214a36b81L,
 2892          0xeb9621d181a666L, 0x7c2c3ab3cf1ad8L },
 2893        { 0xe6888c3e529f7cL, 0x197b66ab355315L, 0x63b558a83e31acL,
 2894          0x4aa7bc5891c68eL, 0xc17d989592e360L, 0xc750a291363666L,
 2895          0x0d534704909ac0L, 0xd6d02724594a10L }
 2896    },
 2897    {
 2898        { 0x35c541b3fbb635L, 0x50016d05982afaL, 0x58ebce496b0ca0L,
 2899          0xb940027577ea56L, 0xf29d305e38480fL, 0x43705b0ebd6a2cL,
 2900          0x0e4acdae90c639L, 0xbe94a29f56e05eL },
 2901        { 0xc61f4a030659adL, 0x39074adc402211L, 0xfe0d8d551b621dL,
 2902          0x2d02e8dd1d5222L, 0x05ece3c46c2683L, 0xf70705ac689d41L,
 2903          0xe3caf444d837bfL, 0xfda058475ba6d0L }
 2904    },
 2905    {
 2906        { 0x1098163cb7d458L, 0x12b645ff5ba834L, 0x70a318128af72cL,
 2907          0x5f4727ef32e5ddL, 0x7cbae1510a21b4L, 0xa80bf806785389L,
 2908          0x9827402b8f93b7L, 0xe385f8208349daL },
 2909        { 0x2d054619589f6eL, 0x6aa5b26e7c0191L, 0xe79ae12bd5574dL,
 2910          0x5d13f914148e61L, 0x7b2be0f13716ffL, 0x82b0fe680bb81fL,
 2911          0x697633c3e2569cL, 0x6c1f083873f8b3L }
 2912    },
 2913    {
 2914        { 0x6e26d850be1674L, 0xe4e47f6ab8044fL, 0xfdf46e882fc434L,
 2915          0x639ae2cc89cadcL, 0x2244a524b85bdcL, 0xb1e4790b7cf4eaL,
 2916          0x51dce037e0bb8fL, 0xdd143352716ceeL },
 2917        { 0x1c049b48e8841dL, 0x6bf26dcb97c621L, 0x21d6255ba01178L,
 2918          0x477258a8e4f0e4L, 0xf5e437e68f8ef1L, 0xd118fbc8b03e1eL,
 2919          0x3d6bc51e1c91b3L, 0xa259486d5b6907L }
 2920    },
 2921    {
 2922        { 0x4159cfc7b6f5dcL, 0x05a52b3493694aL, 0xeeb511c83b8883L,
 2923          0x19d79e42b06400L, 0x8e503a2738f37eL, 0xa30e5795a94ad9L,
 2924          0x3981c75262618dL, 0x06b6c692dcba19L },
 2925        { 0xd7242ee4d1b051L, 0x6274ccb3b350c4L, 0x66df0bbf540019L,
 2926          0x4d66be65ae12d5L, 0xcea29601049cbaL, 0x40473398df84b3L,
 2927          0x7d6c96b75a31c8L, 0xbb80159874174cL }
 2928    },
 2929    {
 2930        { 0xf0f7be059f1aa4L, 0x798f39adcff451L, 0x96763ff8014e1eL,
 2931          0x03987a809cc5ecL, 0x4919656893650aL, 0x92e8eef75e24dfL,
 2932          0x54e97cde89d639L, 0x8081d067682cc0L },
 2933        { 0xb9ef41aa8ceb71L, 0xb8173a4a4d7aaaL, 0x93d81b1c54ee10L,
 2934          0xabe180570a445aL, 0xac0ff9764d569dL, 0x86946b23e570beL,
 2935          0x8e11dd24180641L, 0x3d0b33c99f67dcL }
 2936    },
 2937    {
 2938        { 0x2c9637e48bf5a4L, 0x9fdec19ccaf112L, 0xe5cde9d5c42023L,
 2939          0x9869620878f0ccL, 0xcf970a21fe6ebaL, 0x1df5ec854e678bL,
 2940          0x4667f0128d00ddL, 0xfa7260db0b3fa8L },
 2941        { 0x6bd2895b34239bL, 0x04c8bc52d2a50dL, 0x14e55ef6cb23e2L,
 2942          0x6440c273a278d5L, 0xf4b12e32193046L, 0x46adf645dd4c08L,
 2943          0x70e29984656e8cL, 0xe7b36eae4acd44L }
 2944    },
 2945},
 2946{
 2947    {
 2948        { 0xea64a5716cf664L, 0x8497ee426fd357L, 0x44d94b4814e851L,
 2949          0xf4aac225a6a2cfL, 0x947b30980c301fL, 0xf390ba17865383L,
 2950          0x16c4fc6d1773d3L, 0x61b98146227220L },
 2951        { 0x07dd03a1dd0270L, 0x290ca820f160dfL, 0x8f2205444ba955L,
 2952          0x4e85e450b6f1b3L, 0xfd73ce9ad78089L, 0x67c12702f2cb0eL,
 2953          0xa7de0d7ee33a61L, 0x6a811cc6553261L }
 2954    },
 2955    {
 2956        { 0x5ef05742d0a427L, 0xe8d2e95220a341L, 0xdd28cbf8044886L,
 2957          0xdad7b4ba1aa58bL, 0xb28f3738ec901bL, 0x1841a935bbe3dbL,
 2958          0x8fd7cd1a075feeL, 0x93b603fc0d3cddL },
 2959        { 0xca54fd55edd859L, 0xa4cb05f64ed687L, 0x3138668ed1a3d7L,
 2960          0x1224fdaee32be5L, 0xf1f532bc80aeb3L, 0xa4f65d0e8d4d69L,
 2961          0xc697a015905fe5L, 0x514da7a6690ce4L }
 2962    },
 2963    {
 2964        { 0xc7b9af83de4a55L, 0xc79bad7b318d93L, 0x1808071f5b1c83L,
 2965          0x92112efb965b16L, 0x655ab387bb740aL, 0x53dbc8b384ff87L,
 2966          0xd153c2872dc6f2L, 0x2ec20e199c7819L },
 2967        { 0x65e46ea3b854b5L, 0x272d5aec711db5L, 0xfd1bb5326e19e8L,
 2968          0x33280b83dc0665L, 0x95b986eb8f1c4aL, 0xa671fc4a685c4aL,
 2969          0xa03cbd583bdbbfL, 0xd329402ab77544L }
 2970    },
 2971    {
 2972        { 0x40fa6518e62b35L, 0x3913b11f9e55a6L, 0x4e8089b5270a41L,
 2973          0x565f52a80d1886L, 0x93b5f05512749bL, 0x35c869c141c547L,
 2974          0x9a44a1af86717fL, 0x2b9984b9c2b2cbL },
 2975        { 0x61fb6074952322L, 0x2d4072f7af1464L, 0x9b2fa8c600eb30L,
 2976          0x6071fb7f10668eL, 0x27cc24d90634caL, 0x3875bc2471d32bL,
 2977          0x678590ba11210cL, 0x352b447fcc5a9aL }
 2978    },
 2979    {
 2980        { 0x795d5415fa3200L, 0xadaa557a92949fL, 0x42fff063cc88c4L,
 2981          0x26d683171b68a5L, 0x3286549e67ad8cL, 0x5bf636386396b2L,
 2982          0x41229b6e12c8eaL, 0x05320c9748952eL },
 2983        { 0xae36b63900b460L, 0x9354ff2f2b6affL, 0x10b810b065ee0cL,
 2984          0x4d6925fcc8bb38L, 0x31c03fd7a22f14L, 0x76b7f4457544e8L,
 2985          0x3a9123cc0eed26L, 0x77acd67e0cd1ccL }
 2986    },
 2987    {
 2988        { 0x2e9053007ec527L, 0x32388ef62937cfL, 0xa445389e229188L,
 2989          0xa44b68e33bcebeL, 0x5a8722e4c4e701L, 0xfd066e8cf07e41L,
 2990          0xa3c1a4f95fab62L, 0xb4d6a1be542f24L },
 2991        { 0xe6a92e4af6c9b5L, 0x9452484c83d61dL, 0x422b55b0062276L,
 2992          0x261973a5279688L, 0xde8be263999fb2L, 0x64e96287b029caL,
 2993          0xd8edfaa06897d4L, 0x408319c6955511L }
 2994    },
 2995    {
 2996        { 0xff6baed50a5632L, 0x922b7d05c5885aL, 0xdf0f3b31b45864L,
 2997          0x27e49c0c04340eL, 0x618c566122c447L, 0x7863a38eafee7eL,
 2998          0x7143affb828cb0L, 0x51fcf4cf9d054eL },
 2999        { 0xc4a4b3127f5e09L, 0x021f47a90be2bdL, 0x1a060197ab956dL,
 3000          0xe77fa1586ea86bL, 0x9ccde87d550ef3L, 0x7dee53a6532654L,
 3001          0x8b4f060e826387L, 0xda38637ad077b5L }
 3002    },
 3003    {
 3004        { 0xbc901b30e9fac8L, 0xfa082046fb2a2aL, 0x92f68ab5e04efcL,
 3005          0x184a30a9ac12d0L, 0x1aa11aab25d479L, 0x8bc5f4c0f03161L,
 3006          0x7e3a083cfc8817L, 0x84d9355597f93fL },
 3007        { 0xc014478239abc6L, 0xb226b098d37b04L, 0xb056942f575789L,
 3008          0x816b95aba745ebL, 0x2a49d39b98ddb6L, 0xc41ca26291af81L,
 3009          0xb3afe99ab26347L, 0x59c31bc604b638L }
 3010    },
 3011},
 3012{
 3013    {
 3014        { 0xa16a8b9c42befdL, 0x731c9c92052f00L, 0x1ad49b41f5dfa0L,
 3015          0x7a289e3bffce36L, 0x868fac00c79cf1L, 0x6d6d28486721abL,
 3016          0x590f928e726c94L, 0x0e802cb51f3841L },
 3017        { 0x6a6a57a0b694bcL, 0xb9bb0cd8120fb8L, 0xad96ac79c05826L,
 3018          0x294da8c7768df0L, 0xfe32311b56c6c6L, 0x291c2c6ae8d050L,
 3019          0x1c765e7e7db4c9L, 0xe058298d65f9f7L }
 3020    },
 3021    {
 3022        { 0x4bfa85b7e8d345L, 0xa04ef95de1dfc8L, 0xb5f7f21324ace3L,
 3023          0x4b350a1574b14aL, 0x11436bff8e5c8dL, 0x1c789f97642369L,
 3024          0xeb5e335fb623ceL, 0x9deacd2442d562L },
 3025        { 0x4ff989f531ee71L, 0x43e2c49aacb52aL, 0xa76319885bfadcL,
 3026          0x08b6d5cd0161a0L, 0x010e3fa541f197L, 0x83a589e3279a16L,
 3027          0xf0991376309f9bL, 0x07c093bf1cea10L }
 3028    },
 3029    {
 3030        { 0x1ce3f0f33d2192L, 0x07b559ac37ce73L, 0xaa2ad38207be27L,
 3031          0x84f053b7ed93deL, 0xbc5c7973b98a4bL, 0xc92346163aa9b9L,
 3032          0x807cc16231a10cL, 0x8ffdf57a061209L },
 3033        { 0xa9ca741497070fL, 0xf608ec9d113b3aL, 0x51327268d0384dL,
 3034          0x96686acf5ec307L, 0x437bbbd71c4665L, 0xdef09d57c379caL,
 3035          0xf8be033621747cL, 0x2775b378ae8047L }
 3036    },
 3037    {
 3038        { 0x4009798b2c4fc2L, 0x148d7d1203772eL, 0x9d9392df8423fbL,
 3039          0xa5bd72eaf8cef4L, 0x579d58d4380b53L, 0x2ff88f18c39d24L,
 3040          0x9ca2fbc5706466L, 0xb42987d1e56af2L },
 3041        { 0xcc2556e5d94ea8L, 0x4e5c2b35369d76L, 0x5de35742a94f9cL,
 3042          0x8d068c95cb4145L, 0x4d553ff51bfcbfL, 0x3ab71648a23fceL,
 3043          0xc9cb3a9d0fa7f3L, 0xf81209bed9ced1L }
 3044    },
 3045    {
 3046        { 0xde7356ee5b66f5L, 0x7b2bf1ae8a25e0L, 0x09a444a2c9b725L,
 3047          0xfd8a2f44906c55L, 0x409cc8082514f3L, 0x47e009928999a9L,
 3048          0x0a582a66a312f4L, 0xf7946f8f6723deL },
 3049        { 0xa55f6ba92d8affL, 0xb62c3c8a544b1cL, 0xa1d14115c16a94L,
 3050          0xc3783192ad5e71L, 0x13d784706b1dd6L, 0x99005f8ee7ff55L,
 3051          0xfb5ea3f8a1e7d8L, 0xdc7f53cb4cac39L }
 3052    },
 3053    {
 3054        { 0x482abaf36e3794L, 0xc23e9e5c74684fL, 0x4544cf6f1629beL,
 3055          0xd8a8ee52f40374L, 0x2eea87ff433bdbL, 0x489a99cae9990eL,
 3056          0xefc131e54b23b6L, 0x25fe6998600270L },
 3057        { 0x03d2d9ec059a7eL, 0xa6445b56979c3cL, 0x491a10c9bfbceaL,
 3058          0x15b5974e937af1L, 0x4be8002797c7fcL, 0xbed8a49fedcfeeL,
 3059          0x35751cea9e0691L, 0xe9a9fa39ef5982L }
 3060    },
 3061    {
 3062        { 0xeffeaca3065de7L, 0x841d544ac4d4e2L, 0x8144679caf199fL,
 3063          0x98cf4f9443967aL, 0x8cd57f4f33183cL, 0x390832ac1b15ebL,
 3064          0xc4b1feaa53b500L, 0xd762a10dff24b5L },
 3065        { 0xccd3eedb0ee2a9L, 0xa6dd4a9362d485L, 0xeb4ff26f1d047aL,
 3066          0xc0771fd23860fcL, 0xdbb4e394b64114L, 0x2ff3f244d29b29L,
 3067          0x9cac005387b365L, 0x05b7aa6de5994aL }
 3068    },
 3069    {
 3070        { 0x5e71752c03dd63L, 0xad10fe9bc74687L, 0x51a5b0c54c76abL,
 3071          0x763fd501f586d4L, 0xc7bd5ce816048bL, 0x8fc83d23f744dcL,
 3072          0x0561802109df9aL, 0x18fb01fccf0e43L },
 3073        { 0xe4606fc038ab23L, 0x5878f1fa664c98L, 0x3aedbbd5da7356L,
 3074          0x3c578f5516746aL, 0x259477f1a17210L, 0xc7a869d028248fL,
 3075          0x6517a6148cbf95L, 0xbc5f91d3d04d47L }
 3076    },
 3077},
 3078{
 3079    {
 3080        { 0x15fd9a9083ca53L, 0x1161da02697ca6L, 0xf516af356b676cL,
 3081          0x8a420d575eec13L, 0x72d67421a9526bL, 0x8d8c29e76b463fL,
 3082          0x38a4f588815627L, 0xf7e528be0650f9L },
 3083        { 0x2cfa78e382edcaL, 0x638d183c4ad83cL, 0x96d3b9de4a0119L,
 3084          0x5769ccba7c1101L, 0xc3b3b792b8d04aL, 0x96212f64951bdeL,
 3085          0xad7905a481161eL, 0x8fd676241c5edfL }
 3086    },
 3087    {
 3088        { 0xf7b063539d6cdeL, 0x69d0549115a84aL, 0x4a976c6cbd9fe4L,
 3089          0xc92953f950ff96L, 0x1d7f0fe654d127L, 0x7293870da0f75dL,
 3090          0x7bb3652cf2277fL, 0x64798c9834484fL },
 3091        { 0xb94d8bfac3a76cL, 0xf5721a97ff776bL, 0x23a6e9f2722e31L,
 3092          0xe9da9969a5c034L, 0xb9bbf83456ebc3L, 0x239f58a96956a4L,
 3093          0x8b75beb18b7f00L, 0x6c2b5b8a51cb97L }
 3094    },
 3095    {
 3096        { 0x78b1c627eb41f3L, 0x0638fcf17c4352L, 0x939edd80c5709cL,
 3097          0x0a8dfc3edc906cL, 0x3942f47efb01edL, 0x4c8275749986feL,
 3098          0x792545c4dffa57L, 0xeee68836c3ff26L },
 3099        { 0x824d08e12b1218L, 0x515a478902457fL, 0xc70cc9cbae55b3L,
 3100          0x1240737bcef9d4L, 0xf22e6162f9db7fL, 0x98c4f0291f8da2L,
 3101          0xa89219cafaaa67L, 0xf35fd87e7d27e2L }
 3102    },
 3103    {
 3104        { 0x19b0cd701b80d0L, 0x3d7e29df9aebd1L, 0xd39c9ca0477cbcL,
 3105          0xac0f6155ff0d3dL, 0x8a51993520fd01L, 0x508ff54b22d6fbL,
 3106          0x8786c47318d3abL, 0x4312c464a683f8L },
 3107        { 0x73b1d3995359f6L, 0x0d94fa5963011eL, 0x5723af29bfe83eL,
 3108          0xafa90016841df3L, 0x791e92ab7c498aL, 0xbc931ad7ea4253L,
 3109          0x438e016b783c06L, 0x1347db22ca662bL }
 3110    },
 3111    {
 3112        { 0x41df37dfbaa861L, 0x98ecb23329e4deL, 0xdaf1560507e018L,
 3113          0xa902269b088e32L, 0xad898a5e4cab2fL, 0xd84e9ed02c1e1bL,
 3114          0xc20a5d58488af3L, 0xc7165af6cc77c6L },
 3115        { 0x8526f3adeb7461L, 0x03577b14a2d332L, 0x28e469de4760b5L,
 3116          0x442c7f9b276266L, 0x90d5c77f9c90faL, 0x7aa87163e211bdL,
 3117          0x56d8ff05decfd6L, 0xa204b56ee23e6eL }
 3118    },
 3119    {
 3120        { 0x2e4374e4aceafcL, 0x978743b6fcd5e5L, 0xa0f6345c4855caL,
 3121          0x9bc7e4fe98074bL, 0x3835d57c33d08aL, 0xeec7c8b6f00566L,
 3122          0x71628a21acf55cL, 0x5da375097fb19eL },
 3123        { 0x6904a8e01a7125L, 0xad33c85e6e3780L, 0x1702928c19f94aL,
 3124          0xb424ff27c04b3dL, 0xb212e3919e2ba3L, 0x4cca8e8c9af4c9L,
 3125          0x98ab7aefd9bf0eL, 0x21d245d9799db5L }
 3126    },
 3127    {
 3128        { 0x6b034dcec08806L, 0xfd763f2b40f2d9L, 0x5e16de029cb906L,
 3129          0x02b70148a0e16aL, 0x463c8eee071e12L, 0x644728125ad509L,
 3130          0x9ee6f2ddc0e07aL, 0x188895c68d4d97L },
 3131        { 0x092fff3b27f971L, 0xb3c159fc9b7722L, 0xe27d8ff3cae42dL,
 3132          0xf8a5ed6e87071dL, 0x318388f607ebd2L, 0x924967b53486f1L,
 3133          0x77304947c46e1fL, 0xf279c60f21d196L }
 3134    },
 3135    {
 3136        { 0xef2bc0384f3201L, 0xf8750c71f94c51L, 0xbaa4f5a986ec65L,
 3137          0x6f8a5de2732a33L, 0x0f13d80299e365L, 0x2709530e85261fL,
 3138          0x097d922f527d56L, 0x4969687be1f3f8L },
 3139        { 0x9f3f5043e1708dL, 0xac67b874aa4be4L, 0x75fb042320a87eL,
 3140          0xa361ad36e2cad6L, 0xcb01470203e9f6L, 0xe3807b7c9b76c6L,
 3141          0xf086833b907c09L, 0xe9bed3c7e85a01L }
 3142    },
 3143},
 3144{
 3145    {
 3146        { 0xa7ea98991780c7L, 0x04e4eccd2476b6L, 0x0af9f58c494b68L,
 3147          0xe0f269fdee64fdL, 0x85a61f6021bd26L, 0xc265c35b5d284bL,
 3148          0x58755ea3775afdL, 0x617f1742ecf2c6L },
 3149        { 0x50109e25ec556aL, 0x235366bfd57e39L, 0x7b3c97644b6b2eL,
 3150          0xf7f9e82b2b7b9cL, 0xb6196ab0ec6409L, 0x88f1d160a20d9eL,
 3151          0xe3be3b4586f761L, 0x9983c26e26395dL }
 3152    },
 3153    {
 3154        { 0x1d7605c6909ee2L, 0xfc4d970995ec8aL, 0x2d82e9dcf2b361L,
 3155          0x07f0ef61225f55L, 0xa240c13aee9c55L, 0xd449d1e5627b54L,
 3156          0x07164a73a44575L, 0x61a15fdbd4bd71L },
 3157        { 0x30696b9d3a9fe4L, 0x68308c77e7e326L, 0x3ac222bce0b8c8L,
 3158          0x83ee319304db8eL, 0xeca503b5e5db0bL, 0x78a8dceb1c6539L,
 3159          0x4a8b05e2d256bcL, 0xa1c3cb8bd9fd57L }
 3160    },
 3161    {
 3162        { 0x5685531d95aa96L, 0xc6f11746bd51ffL, 0xb38308ac9c2343L,
 3163          0x52ee64a2921841L, 0x60809c478f3b01L, 0xe297a99ae403acL,
 3164          0x7edc18fcb09a5bL, 0x4808bcb81ac92aL },
 3165        { 0x3ec1bb234dc89aL, 0x1e8b42e4e39da5L, 0xde67d5ee526486L,
 3166          0x237654876f0684L, 0x0a583bd285a3ddL, 0x3d8b87dfe9b009L,
 3167          0x45bd7360413979L, 0xb5d5f9038a727fL }
 3168    },
 3169    {
 3170        { 0x7b8820f4bde3eeL, 0xea712ef24d5170L, 0x517f88cdf6ec7bL,
 3171          0xb15cecf983ea9aL, 0x9eeee4431a4592L, 0x786c784ebb013eL,
 3172          0x2f06cb31f4e15dL, 0x5603fd84f4fda1L },
 3173        { 0xf6790e99e1321fL, 0x274c66a74a4c09L, 0xa4b70b49a41a4eL,
 3174          0x7700bddada5157L, 0xe54a60d51be8dcL, 0xfaf92761a477e0L,
 3175          0x6661c72b027eacL, 0x50e2340280b917L }
 3176    },
 3177    {
 3178        { 0x635f40f96ec123L, 0x4a331337a766a4L, 0x9ce4416b935587L,
 3179          0xbb6e1f595d97e4L, 0x26147239d4197dL, 0xabd4478490e896L,
 3180          0xf6a1b2a8bba895L, 0x401fa405e27a45L },
 3181        { 0x7354ba50620900L, 0xc443a29385678bL, 0x48aba1053cf5faL,
 3182          0xd67e723bbe152dL, 0x4b858e02a63d68L, 0x174e1ee72be4eeL,
 3183          0xad0fbb39ab8d46L, 0xa0fdffbce17dd7L }
 3184    },
 3185    {
 3186        { 0xa1ea3259c46fd8L, 0xeca122e9fb96efL, 0xf9074a26767acdL,
 3187          0x9b004a22787082L, 0x389f8077f3ba8eL, 0x6463de90d5aabeL,
 3188          0xf30ceaab090585L, 0x71b31e85634ab8L },
 3189        { 0x0dee65caf02aedL, 0x506886e20ac252L, 0x0665f7886b8a59L,
 3190          0xb9b784df2bb328L, 0x46e443adc6b089L, 0x3d5de1966c27fdL,
 3191          0x0419265f0fde70L, 0xed946122b5c034L }
 3192    },
 3193    {
 3194        { 0x5a52ad213b0056L, 0x9fbeb92b909ee3L, 0xb42ba18bdaab08L,
 3195          0xec127c4ffc8a77L, 0xc6d2985fda906aL, 0x5355547994bbe7L,
 3196          0xa7470c09cdfd62L, 0x31a3971d2e675aL },
 3197        { 0x8d8311ccc8b356L, 0xabb0bf801b4372L, 0x33c1cad0294566L,
 3198          0xe2e649ce07b672L, 0x9084d882ae3284L, 0x7a90d4c1835ce2L,
 3199          0xb4d1cd5809d44cL, 0x78227149f0528fL }
 3200    },
 3201    {
 3202        { 0xca884cfbf5844bL, 0x9dd05c48524cf9L, 0xdbffa1936ba889L,
 3203          0xef94fdd29e7666L, 0x358f81b3eaf48fL, 0x96734d51530d56L,
 3204          0x378b2d14adf9e5L, 0x2f850464731f61L },
 3205        { 0xd6ae90599dcb83L, 0xa4f89e06199239L, 0x64052498f0f958L,
 3206          0x2866d99cc27707L, 0x64681a2f551c0fL, 0x2c7b0d04c37080L,
 3207          0x218925b00ac301L, 0x8d57fb354df895L }
 3208    },
 3209},
 3210{
 3211    {
 3212        { 0xdaebde0809c8d7L, 0x58c761c0e95ea1L, 0xbd9965000ae5e2L,
 3213          0x6117a85cd51acdL, 0xc4424d87c55d56L, 0xe9b1ddedfbeeafL,
 3214          0xda98bb50db4791L, 0xff3a5a63fca108L },
 3215        { 0x172fb8e5ccbea1L, 0x9fe12a7a9f6cc9L, 0x1de4b0b8967ce2L,
 3216          0xc1ab60f671dbc6L, 0x338385a5dedcdaL, 0x647a4203a043feL,
 3217          0xe9abc6428ebc89L, 0xc357ff003ba3c8L }
 3218    },
 3219    {
 3220        { 0x37061e7de39ebdL, 0xebb91352be567aL, 0xa9a6f6bd6bb80aL,
 3221          0x039345d99f0ba2L, 0x215494e98bbf47L, 0xf2cb7a4a2a1ccbL,
 3222          0xf51aa1037f67c9L, 0xd29c85c17fff71L },
 3223        { 0x8d4e4f24d30b87L, 0x20fdf5593a8309L, 0x9b9f9cf757075cL,
 3224          0x09142adcd70101L, 0x901d0ee766ca55L, 0x6a5d86a32e418bL,
 3225          0x550ad92d7fcaecL, 0x64e8818d91b26eL }
 3226    },
 3227    {
 3228        { 0x5cea0f747e5ee5L, 0x8ca1d31be99699L, 0x52db8465c136c7L,
 3229          0x8cecb3890e0d74L, 0xb8efe9dede2ad8L, 0x18d6ff8f17ade8L,
 3230          0xd2227352d66c20L, 0xc46593ef2005fdL },
 3231        { 0xe5ebe6ff7141e1L, 0xc968315e0126f2L, 0x95adc731cb91b6L,
 3232          0x753b54c38a6003L, 0xa6141254230a61L, 0x23ac6eb559feceL,
 3233          0x9816b603865c23L, 0x567014e543a570L }
 3234    },
 3235    {
 3236        { 0xd46091ddd2b71fL, 0x3999a5d97d24ffL, 0xce2a4f11ecff3cL,
 3237          0xab2687c581c6f0L, 0xa9fb2ebcba70b4L, 0x6fde35642093e1L,
 3238          0x00253ecaee724aL, 0xa08ce3c2b81bddL },
 3239        { 0xa251238935a2b3L, 0x8cae1d4584f750L, 0x011469e988a219L,
 3240          0x61f7ed35a6a50eL, 0xe13ebaa01fcebdL, 0x794b97631d8867L,
 3241          0xf25755ccda32e7L, 0x368a97b4564cd1L }
 3242    },
 3243    {
 3244        { 0x0d22224aa3397bL, 0x1dbb3e638066dbL, 0xfe0b5ee0ce8e32L,
 3245          0x09c17c87bab4dcL, 0x5cc65ddf188b64L, 0x74c4abf211b5faL,
 3246          0xdcc17b7ab0ba86L, 0xfbdf46fa535501L },
 3247        { 0x4775087aca569eL, 0x6575f9006a1718L, 0xb5c45a9b94de93L,
 3248          0x0fc80068497171L, 0x775d965489f7abL, 0x8775b58f5c0c89L,
 3249          0x05d4e201a06254L, 0x8cab349b6d73a5L }
 3250    },
 3251    {
 3252        { 0xca7816339465b0L, 0x3ef914814498fdL, 0x9ca1f346255c11L,
 3253          0x389fd15b7f38f1L, 0xdac2089354b8f3L, 0x82d07fca840a70L,
 3254          0xf53fd731dd483aL, 0xa6e4eae1590578L },
 3255        { 0x7bf65af3c01b77L, 0x27542f3a75c982L, 0xc5bd947716cfceL,
 3256          0xba5fe76884b9e7L, 0x39bae14d55725dL, 0x982f64efae0eabL,
 3257          0xcfae6627a5293aL, 0x22a25a1d60f464L }
 3258    },
 3259    {
 3260        { 0x74caecc7dd5e16L, 0x23678a2ce7bca3L, 0x467393257f1ba1L,
 3261          0x4eb9948a4c1697L, 0x5d400e8eaba18dL, 0x128d1c89807871L,
 3262          0x78f9627bff38a6L, 0xf80b813a39d4ccL },
 3263        { 0x8aeefa031d3aadL, 0x504219927db664L, 0x244fc694cb6383L,
 3264          0x319047772192a3L, 0xcc86075bbfb57bL, 0xbae3a134451511L,
 3265          0x16cf416f6174f0L, 0xb343cc0d376813L }
 3266    },
 3267    {
 3268        { 0x31ac9b9d1824b7L, 0x6282260ec8f61aL, 0xbbeb9f8c781765L,
 3269          0x06ab5c02d110daL, 0xd583e2247146b8L, 0x79a16084100d05L,
 3270          0x16dbbb4f0a5c95L, 0xfe2af1de331667L },
 3271        { 0x26f0364af8710eL, 0x1cb8c91eec08feL, 0x436bce61d95e9fL,
 3272          0xfe9050c57944a0L, 0x5f45acf07b626bL, 0x48dc93f9cf1276L,
 3273          0x4491371a05bfb7L, 0x51063044bcf785L }
 3274    },
 3275},
 3276{
 3277    {
 3278        { 0xac2e294ed0b3b6L, 0x5c5ade6671637bL, 0x2f289ce1140677L,
 3279          0xaf446e2754eb53L, 0x70911b720421adL, 0x4b73836e0b7556L,
 3280          0xcadf1042a97827L, 0x4824e498005bc6L },
 3281        { 0xb0eeccd937c28aL, 0x1ce061d0c3ee97L, 0xcb076319f33faaL,
 3282          0x9980bf4aea66dcL, 0x2bd0755d111d98L, 0x43feaf67fe4de0L,
 3283          0xe76fb80b077b2fL, 0x227dc9f5793b04L }
 3284    },
 3285    {
 3286        { 0xea24ae514f49baL, 0xbc39ea611436e7L, 0x9d7fed278485d8L,
 3287          0xb6ef00cdf8b131L, 0x0237b4bfdbc7afL, 0x08745b564ccd27L,
 3288          0xaf8595dafc5a76L, 0x43657af29f5500L },
 3289        { 0x300718348470f8L, 0x51f91fd640fd53L, 0x859c807be15512L,
 3290          0x7d1a474ab3e9c5L, 0x5d714d981553e5L, 0x07573436f62310L,
 3291          0xedc5be06b02a62L, 0x5a4b9b7ea47832L }
 3292    },
 3293    {
 3294        { 0x03e0a24e93dbb3L, 0x25841dccadc884L, 0xabc1a818d10ad5L,
 3295          0x207e38a2042dddL, 0x7fffbdbfeba8d8L, 0x74efebba3ec9b5L,
 3296          0x0bc39ca0b40a9fL, 0x69ee9c90267febL },
 3297        { 0xd402facbc62919L, 0xe9f8fc11cf53c6L, 0xe76fa5a7cc7d81L,
 3298          0x4f2d87696bb19dL, 0xd4fb7f9adc67c7L, 0x40621d596702dcL,
 3299          0x5b6a98e438f6c5L, 0xa7c64def1a1036L }
 3300    },
 3301    {
 3302        { 0x84c5e809a092c7L, 0x9e40e0a11c22b7L, 0x820a091d06c99bL,
 3303          0x45fdc77eecca8fL, 0xfe1b8a35794f16L, 0x31f7e5b4ce3d6dL,
 3304          0xfd5e01082c74c8L, 0xfdabf30c1f6f7dL },
 3305        { 0xbfa6017b9248a0L, 0xe898d30546b941L, 0x878c492207ff65L,
 3306          0xbf22e8db874e64L, 0x43fdb1b53a547eL, 0xb66deda5fbd464L,
 3307          0x59127a6c7ae1b5L, 0xa4636466a7515aL }
 3308    },
 3309    {
 3310        { 0x22c4e66de9ab2eL, 0xfaf60c20203c58L, 0xed2d7bf0d5c5edL,
 3311          0xdbc16fe4ca0f19L, 0x54e8ef6465b979L, 0xe2d64b1a310ef9L,
 3312          0xa0f2c953778636L, 0xf3b4aa4281883bL },
 3313        { 0x4ac9af09be6629L, 0xba455e11ca90c5L, 0x0147538856f492L,
 3314          0xc80db7eabd7840L, 0xb3526d96beb9cdL, 0x37657fb9d81503L,
 3315          0x8729a16193cec3L, 0xd9a93fbd69952aL }
 3316    },
 3317    {
 3318        { 0xfce017594f47c6L, 0x228da21e366d05L, 0x27ce0b2dc8baf3L,
 3319          0x8cc660b6b4a951L, 0xf678947384bb01L, 0xc629d7d44d980cL,
 3320          0x47980e4e85e81fL, 0xa2e636a1cd723eL },
 3321        { 0x6b6ebae77fb207L, 0x70179614c92891L, 0x5569541b4d279cL,
 3322          0xbb6b36a41758cbL, 0xecaa22227a8e30L, 0x8b6746ab470ad9L,
 3323          0x4c4601763e2d3dL, 0xe19c4edd3edaecL }
 3324    },
 3325    {
 3326        { 0x0b43fec34718c8L, 0x553c407f33499fL, 0x8272efb970d1dbL,
 3327          0x008c62ca8e8d1cL, 0xe4b79d763eec45L, 0x1fd4230f2d71a3L,
 3328          0x090fdafa368c36L, 0xf62c101fca7baaL },
 3329        { 0x1c9e6c8d2395b3L, 0x671ed6304c5513L, 0x577d933299a465L,
 3330          0x286890e63f9986L, 0xd92a95dbfc979cL, 0xcebd79d2b51019L,
 3331          0xe74d88b3d07251L, 0x8b6db73906f9adL }
 3332    },
 3333    {
 3334        { 0xc0c43db7b3d90cL, 0x85d154e4304a06L, 0xe8aceefaf2f38eL,
 3335          0x5e0429383d9459L, 0x65e5e32431afd1L, 0x9e5f050a900a65L,
 3336          0xcbaa1718a26671L, 0x33d0b249c93de7L },
 3337        { 0x3dcbf92d5b6680L, 0xc47e5ec20006f9L, 0xc9711299a51924L,
 3338          0x665d9b8cd0ed46L, 0xed2d63fa5fcab6L, 0xa817eb6cfbfc5aL,
 3339          0xb38169fb76eb76L, 0x8b93544f11160bL }
 3340    },
 3341},
 3342{
 3343    {
 3344        { 0x02eca52693bdcdL, 0xbbf09232ae01d6L, 0x0b0a2de8b44b3eL,
 3345          0xdb82449b250dffL, 0x0c42b866e1c530L, 0xcd226dca64c2c4L,
 3346          0xcfb2bb1f046b5fL, 0x97e2fae3fccb0dL },
 3347        { 0xdf9290745ed156L, 0x224dcb9f641229L, 0x2126abc5f1f67eL,
 3348          0xa7eed5ae9c8a6bL, 0x40abedc9857d9bL, 0x3f9c7f6de941c6L,
 3349          0x2158d42d725ddfL, 0xbdd10158c69543L }
 3350    },
 3351    {
 3352        { 0xa7dd24e8df2fbcL, 0x3adbcfd13d1aeeL, 0xf6a32d113b2177L,
 3353          0x89a72327a9a14cL, 0xe3aef43dc65df9L, 0xeaec3e3a64d74cL,
 3354          0x4d387d84fec33bL, 0xaba2a0521a2128L },
 3355        { 0x2382c226b85e30L, 0x4352d85cd2aad3L, 0xb0c6001d9772c4L,
 3356          0x7ed82635f3653fL, 0x3626a6f0300f47L, 0x23909de6ca7e4eL,
 3357          0xb43dd81c154141L, 0x9a49fad7e4bc68L }
 3358    },
 3359    {
 3360        { 0xa3661df2428f88L, 0xbe48b0256e0db2L, 0x3cd1871ce79aa9L,
 3361          0x90ab87123dddacL, 0x9c58fb971871a6L, 0xf031f7fa34910eL,
 3362          0xb501eea81060e4L, 0xdb668ba791224eL },
 3363        { 0x240bbcb6a705bcL, 0x7e76fbd2d1865eL, 0x6e2cd022513641L,
 3364          0xe6c522546365c9L, 0xe46a8b8a5a01fbL, 0x696fa7bb67618bL,
 3365          0x418b3b90db6792L, 0x7204acd7108b9cL }
 3366    },
 3367    {
 3368        { 0xb5a143b8456b45L, 0x8a3ab25f53b4d9L, 0xb112a58e13a570L,
 3369          0x613ca3281487d2L, 0x837d8233b1e7c9L, 0x592baded41e9d5L,
 3370          0xdc1893a5cd02f2L, 0x08795028972e23L },
 3371        { 0x7003c08cb76261L, 0x14bde9e332a5e0L, 0x14b2872cbbd78eL,
 3372          0x5594061de238e8L, 0xad12645067466cL, 0xa8d0e64f5e4952L,
 3373          0x5b44b82c7f8d06L, 0xb51bea8fb1b828L }
 3374    },
 3375    {
 3376        { 0xebad6853f0daccL, 0x5c31b8b1cbebbcL, 0x6746975fa5a2dcL,
 3377          0x2d9596531d9faaL, 0x343797d00fc0e4L, 0x38d821c55fe01bL,
 3378          0x0bfdb247323aa0L, 0x42613c4f962a8eL },
 3379        { 0x599a211e134bc0L, 0x75fa4a147a7084L, 0x6e719487f734b5L,
 3380          0xd5ced2d6dfca2bL, 0x9fa0fdc8aeabd2L, 0x5e6b03f12361daL,
 3381          0xad23d315859fcfL, 0x3120ef125a5fc8L }
 3382    },
 3383    {
 3384        { 0x990ef628e9f638L, 0xfdaa240626a60cL, 0x4a3de202abddabL,
 3385          0xd5d10b7d8872b2L, 0xa01b7301ea5880L, 0x481697fa81b9d8L,
 3386          0x29841533471ed8L, 0xefd73f8292d37cL },
 3387        { 0xdda76269994bebL, 0xa0377036a4f865L, 0xda992ece5b47d5L,
 3388          0x912a427e53edbaL, 0x64675989264e45L, 0xd3b68c3af71222L,
 3389          0x9d3436c6dedc5fL, 0x1e027af076b2adL }
 3390    },
 3391    {
 3392        { 0xd56fca14382f4aL, 0x83712a48966b7bL, 0xd6b2cf5a4c9ddbL,
 3393          0xa66be29f602875L, 0x70e4266894f3d0L, 0x007d220b3195caL,
 3394          0xba38d8f82c74d4L, 0xdccc5fcd975cbdL },
 3395        { 0x03e1610c88b38bL, 0xeb9f9a152e0d8dL, 0x6a57ecab646eb7L,
 3396          0x161641fc76b6c1L, 0xf9025adbd2e12bL, 0x87c74db5c0e26dL,
 3397          0xed5cb51bfeca74L, 0x603dfb6e34a08cL }
 3398    },
 3399    {
 3400        { 0xc4be728cb03307L, 0xde34c0ec2741ccL, 0xe01db05a74eb17L,
 3401          0x1bfce0c8905e4bL, 0xb18830ad1b1826L, 0xcacbb41e87bbfbL,
 3402          0x8696842d2f1a79L, 0xa80e5fb08c83eaL },
 3403        { 0xe48f1633f1439cL, 0xc1d4108cd6987bL, 0x05705c4b751814L,
 3404          0xa9bffd0c1c622dL, 0x23de4af46cd053L, 0xf782f5e39457c3L,
 3405          0x815276b5e5d243L, 0x31320416161ae3L }
 3406    },
 3407},
 3408{
 3409    {
 3410        { 0x245966177f2542L, 0x203be7e8372b25L, 0xc7c9426ee2007bL,
 3411          0xc5641380621799L, 0xda56589c28c3ceL, 0x13e8a7c7afc1e3L,
 3412          0xdba81e9e352082L, 0xf43054904435c7L },
 3413        { 0x4d26533691de4aL, 0x364408cfb777abL, 0xccdfb43eae7f88L,
 3414          0xbc40f44a525b11L, 0x8e112a53c60627L, 0x7f7c581e17e696L,
 3415          0x0fd78781ea774aL, 0xd09e6320b1f582L }
 3416    },
 3417    {
 3418        { 0x44390bd70aab15L, 0x41112bc889c3f2L, 0x6b02894d685349L,
 3419          0x71030015584dfeL, 0x373cb1b1ba7887L, 0x53d286c2a017c7L,
 3420          0x2ed03883c81fdcL, 0x3bfc5e3fbcc6fcL },
 3421        { 0xd38ac6ffd6418dL, 0xc667e96bfad89eL, 0x46f4f77eab4d66L,
 3422          0x194c04f0911293L, 0x0fd09cf68c48d5L, 0x6f5b05563cf7f4L,
 3423          0x0c0a8c4acd562fL, 0x94c1d8336d965dL }
 3424    },
 3425    {
 3426        { 0x94fc8f0caa127aL, 0xc762d5dd803690L, 0x8bfdfd11ebf0d3L,
 3427          0xa98cdf248eac50L, 0x3d7365d8b5ff10L, 0x20dc29bc65b4deL,
 3428          0x62ac28e8ec7c68L, 0x7f5a13290372d2L },
 3429        { 0xf3d8a253246658L, 0xa4bebd39ac202aL, 0x078ede75cc1697L,
 3430          0x5525800c8fc022L, 0x302a8025fae77bL, 0x018013957917b6L,
 3431          0x7c8806d864bf55L, 0x4e2d87812f06f1L }
 3432    },
 3433    {
 3434        { 0x8d351183d66e88L, 0xfb861a1a91d02aL, 0x8c27c2a7850e5fL,
 3435          0x9fd6399a5496f6L, 0x52152ae8080049L, 0x600e2fffd1c2dcL,
 3436          0xc75902affe8b2eL, 0x5c4d2cce03b175L },
 3437        { 0x8ad7c424f57e78L, 0x77cf6061736f87L, 0x2876012f85038aL,
 3438          0xff328451b97b95L, 0x3cc6dd5392dfc8L, 0x72f1363a6f5075L,
 3439          0x028ec4471de894L, 0x7030f2f6f45a86L }
 3440    },
 3441    {
 3442        { 0x66400f59695817L, 0xeda0a7df20ea36L, 0x855be51d394992L,
 3443          0x2d082c18336f62L, 0x30944ddf28c868L, 0xfb5f8530dc86d0L,
 3444          0x9562ae5564a0bdL, 0x1f7ea12b6b9b51L },
 3445        { 0x5bd74e0d0a7148L, 0x6c8247fb91e572L, 0x699aba547da498L,
 3446          0xed825811f7c814L, 0x434674b62057b9L, 0x8b4df5e15c15b4L,
 3447          0x2a97da1b110081L, 0x2a96b0c4c417feL }
 3448    },
 3449    {
 3450        { 0x4f75dfc237639dL, 0xe5ad6bc1db7029L, 0xd43e06eb3d28f7L,
 3451          0x89f3bb5e447989L, 0xc426a2c01a1a6eL, 0x33ea71c315878fL,
 3452          0x8a7784ab1b5705L, 0xa59e86e77ca811L },
 3453        { 0xddb133c36ae155L, 0x49f1d4c0d51b42L, 0x55080829d05519L,
 3454          0x20e23be5291816L, 0x35047ec67181ecL, 0x6237dc47aad091L,
 3455          0xa1d3ce1e2e25a2L, 0x1de05220d3db4cL }
 3456    },
 3457    {
 3458        { 0xe9a5e19d9fd423L, 0x0c2c3d09801e43L, 0x043c2dd28df2daL,
 3459          0x4eecab4e1ad12aL, 0x97e17979615aa5L, 0xe57b879ca7bb5eL,
 3460          0xa2a903ccc92619L, 0x5cef370aa56e93L },
 3461        { 0xbef29fa7f3232cL, 0x1cf35ed2b7ad5cL, 0x35c48933b6077aL,
 3462          0xe0651487a1d47dL, 0xedb4673ce14572L, 0xdc9e98c0b17629L,
 3463          0xef98ebe9a02a5cL, 0x1f772e311d03c0L }
 3464    },
 3465    {
 3466        { 0xcbdbdcd4608f72L, 0xb4352235a13c6fL, 0xa6497f64bb3c21L,
 3467          0x3af238312c15c9L, 0xfbbf4b36322d11L, 0x520a5c6c641775L,
 3468          0x18cd967e81e0e1L, 0x980b2c63de3871L },
 3469        { 0xfa9db619ae44a2L, 0x0281dd2176bc56L, 0xfd037118a7f817L,
 3470          0x9c485454129b30L, 0xb439648039626dL, 0x355050ee4ada6bL,
 3471          0xc9c16d67f5d98cL, 0xf53ccc318c4d5eL }
 3472    },
 3473},
 3474{
 3475    {
 3476        { 0x50ae9423ffb20bL, 0xa6c0b426865eb4L, 0x4677f7d09930f1L,
 3477          0x742e0b64a16427L, 0x521d18ef976f9aL, 0x43ac9cfa454749L,
 3478          0xda3a91dc51f50dL, 0xf657029ad6f954L },
 3479        { 0xfe5f0646b4f99aL, 0xd92a5d963ad4ceL, 0xfcb55092e0e081L,
 3480          0xadc85ab8d8a858L, 0x8e9b9660632f0fL, 0xe7a4f168d7216dL,
 3481          0x00a4cc559c3b99L, 0xed6d0bdba09dc1L }
 3482    },
 3483    {
 3484        { 0x7236d141621bebL, 0x1751fd4bc7ca95L, 0xaa619d12f5319cL,
 3485          0xfc2b15b4e9316fL, 0x2d1a9069fd4d33L, 0x28c3bac8ced829L,
 3486          0xf2efab51dd998fL, 0x2c133303b149edL },
 3487        { 0x65237c9f601ac6L, 0xb54dd6507d6a45L, 0xa1ce391fb1a4cfL,
 3488          0x2957533115f67eL, 0x6456da8465279bL, 0x02890aaa993e02L,
 3489          0x6891853b7175e4L, 0x3fda2030f3e59bL }
 3490    },
 3491    {
 3492        { 0xe99fe12d8c6e0bL, 0x7cb07ff5341c56L, 0xc292c7bdf77b24L,
 3493          0xf52dfd0ca29906L, 0x4a6aa26772f02cL, 0x26f7684e1bbd09L,
 3494          0xec56b2bee7c2a8L, 0x67709e6ad4a312L },
 3495        { 0x99c57b2c570263L, 0xeb0100b2faafaeL, 0x980d5d1ff25ecaL,
 3496          0xace35e682cf936L, 0x5a82ce544679edL, 0x5c76a41074b81eL,
 3497          0xf36fa43a00abb1L, 0x064281904ffb2dL }
 3498    },
 3499    {
 3500        { 0x68f6bc804bdd28L, 0xc311d96b5dc7adL, 0xff0d646ed32e45L,
 3501          0xaf3cdc6e0f712dL, 0xd4508e9d483861L, 0xb624be50e1c277L,
 3502          0xc510275c5dd841L, 0x451c5c3298dc02L },
 3503        { 0xf87d479dd34d6bL, 0xda7f293dd06a38L, 0x575e129b699e9fL,
 3504          0x79e5fb2215b2ccL, 0xd280028657e690L, 0x7fecd09e702a71L,
 3505          0x85160abfa13677L, 0x5de3427ce65f64L }
 3506    },
 3507    {
 3508        { 0x84e4bf6e8fff38L, 0x16f3725b358b1cL, 0x360371c3b472a5L,
 3509          0xe64c06152f217aL, 0x8e673790501241L, 0x88e81d6ab2dd96L,
 3510          0xf3e218a1385604L, 0x9736cafe84184dL },
 3511        { 0xb55a043dbb93a3L, 0x335088f9301088L, 0xcea7a2db2a4959L,
 3512          0x48e5d4ab882c33L, 0x114f09bad46179L, 0x4416467b446576L,
 3513          0x01cb23e34c6c2fL, 0xddebf04a02db8aL }
 3514    },
 3515    {
 3516        { 0x36d60cc9bde8a1L, 0x20fd2f2676e4adL, 0xebdcfb78936581L,
 3517          0x245d0d5dbfc2c3L, 0x104c62ca9f82e5L, 0x7387457d654d9bL,
 3518          0xe966777ae7f10eL, 0xefeb16f1d8e582L },
 3519        { 0x4faf4f170364b5L, 0x0e1ab58d612472L, 0x11bbfe7fed6085L,
 3520          0xb360a14a59a09aL, 0x61d96e9722fdb6L, 0x16a12f194068bdL,
 3521          0x225bf07f73c2beL, 0x1e64665c8bd24eL }
 3522    },
 3523    {
 3524        { 0x27a478a3698c75L, 0x778ccd36202aa2L, 0x0149c638d87f1fL,
 3525          0xa660e5f784edaeL, 0xe0d4d2f82adfa8L, 0xf512dd61ba1f9dL,
 3526          0x90cfed96245c58L, 0x6c3a54818b53ddL },
 3527        { 0x833f70cbdc094fL, 0xa5f26f5b1514e7L, 0x93e7cf51c8cf13L,
 3528          0x1436601186ec43L, 0x81924ace78170aL, 0xcc880a08694368L,
 3529          0x2dfa9550b62cbbL, 0x0bc6aa496b4a2cL }
 3530    },
 3531    {
 3532        { 0x5157a7e3561aa2L, 0x525c5008645c1eL, 0x22feb4ece7cbb3L,
 3533          0x36d0d25c89a58bL, 0x43131f7c9bde9cL, 0x74afdda881f731L,
 3534          0x99ab87c7c8e36aL, 0xf07a476c1d4fb2L },
 3535        { 0x1b82056bebc606L, 0x95a1e5afcf089fL, 0xc5bccfa2b55d5cL,
 3536          0x8fbc18e00eb0b1L, 0x93a06fe9efb483L, 0xcafd7252d74c57L,
 3537          0xc7518f03de4350L, 0x9a719bfc6fd762L }
 3538    },
 3539},
 3540{
 3541    {
 3542        { 0x5ee0d832362087L, 0x7f2c0d70b167e8L, 0xb7327895e0e865L,
 3543          0xef5b2e898c4e65L, 0x222797d8fe9cc1L, 0xfe6d73e82d1e15L,
 3544          0xc7c0e9cf62dc4bL, 0x962acfe937cedaL },
 3545        { 0xd763711c1e85c7L, 0x8f2dbbc2836978L, 0xbadc0558c44e98L,
 3546          0xed63eaba3e93f8L, 0x807e85741b55c7L, 0xd51ae5e6d1207bL,
 3547          0xa0ef9a639d541bL, 0x58855f9a0c56a5L }
 3548    },
 3549    {
 3550        { 0x7d88eaa213091dL, 0xcbdfee745b6a0dL, 0x826a0124f5e077L,
 3551          0xb04fc1390f1e4cL, 0x1961ac3aea69aaL, 0x3afb719d5bb63eL,
 3552          0x2a378374ac7e5cL, 0x78efcc1c50ca45L },
 3553        { 0x346e8f0b8abdefL, 0x27e3dbd88095d0L, 0x56d3379ffc6c22L,
 3554          0x67d416cfa4b291L, 0xc3baaf63b1b373L, 0x0184e1fdf73baeL,
 3555          0x38ae8f79167528L, 0x7329d4c35d6297L }
 3556    },
 3557    {
 3558        { 0x45d2ac9f568c52L, 0x51348149808593L, 0x0c92d8331b7ed8L,
 3559          0x921327a0876ecdL, 0xf752d75052736aL, 0x7b56487bc6b837L,
 3560          0x6b1a320a23b4ccL, 0x1983937ec0d665L },
 3561        { 0x2c3017c08554abL, 0x40ad955366e87fL, 0x88c4edf8ed7f02L,
 3562          0x64a7db13cc5e6dL, 0x5ac91fa2dc978bL, 0x016a20d925d2a2L,
 3563          0x3604dfeabb57b4L, 0xc3683ecd7e2e85L }
 3564    },
 3565    {
 3566        { 0xc47150a4c0c6d0L, 0x30af45ee22adcfL, 0x39b5acb022ea4bL,
 3567          0xfbe318577203b5L, 0xe5aaa346fd9b59L, 0x0062c90dd1c8dcL,
 3568          0xcf113f354049acL, 0xd8fba4d63a31b5L },
 3569        { 0x73b54881056a69L, 0x3be6cbcd780bdaL, 0x5776ec230ba2b9L,
 3570          0xbe883cf8e8d6f7L, 0x64efe945c2be6fL, 0x064f704f1ade8dL,
 3571          0x41cfd17743110eL, 0xaac94114c20abeL }
 3572    },
 3573    {
 3574        { 0x91f9192f1c1468L, 0x8176e744563e13L, 0xa48b5f90bda15dL,
 3575          0x2a085aeda42af6L, 0xfd38ab2425c018L, 0x2884ba408abafbL,
 3576          0x356f318cbd091dL, 0x454e450817871bL },
 3577        { 0xe080e818ada531L, 0xa40f1eb3152ba8L, 0x051049f0c38eb1L,
 3578          0x37e4bb3bd45003L, 0x6d0980454a01e5L, 0x6de932feeb824aL,
 3579          0xccdef37dc93481L, 0x8633e0793a05e8L }
 3580    },
 3581    {
 3582        { 0xbe94256034675cL, 0x376c01d08db789L, 0x8707ee79af1b6bL,
 3583          0x633b3ef11bfbacL, 0x694f33fd06db60L, 0x2a68bfcbb13407L,
 3584          0x1c860c9da27c3aL, 0xbca16ded701ac3L },
 3585        { 0x2b76cfac59ffd0L, 0xf9a116554d718dL, 0xf86a1db67f0878L,
 3586          0xe313e05af34e85L, 0xa1888113343159L, 0xdbe4c3f0bb7ed1L,
 3587          0x73b67e80c732bcL, 0xa4e1c87e74110eL }
 3588    },
 3589    {
 3590        { 0xce1106b5c6770cL, 0x422c70b5c0bcb7L, 0x32a39908195e7fL,
 3591          0xa24968d1ccd4aaL, 0x8f08ecf720e557L, 0x5da10a454bcc81L,
 3592          0x9d3c73b6cd846eL, 0xaeb12c7368d065L },
 3593        { 0x2110859cf9fd1bL, 0xd2a4801ee2bd6dL, 0x376e556e9466acL,
 3594          0x767803b3b5aa35L, 0x343f842b8a89baL, 0x3263cc16726bbfL,
 3595          0x26caf1725871b0L, 0xef66ad641b8578L }
 3596    },
 3597    {
 3598        { 0xc9f2249638068cL, 0x96d282c1ccf9afL, 0x71df30c69b435aL,
 3599          0x88c943acb9d5c9L, 0xbf98ef12a8f378L, 0xffc1824114c6ffL,
 3600          0xda3ad2cd52e8c7L, 0xf1222bc1afcb59L },
 3601        { 0x459e94b0ee334aL, 0xd4477b8421933aL, 0x60fb7b0a1e401eL,
 3602          0xfde6e820d1e330L, 0xcecfe9b3233fdeL, 0x09ec4662e93523L,
 3603          0xa5ba64930775b9L, 0xcc397e5adf80f2L }
 3604    },
 3605},
 3606{
 3607    {
 3608        { 0x2fe182d4ddc8a8L, 0x88d6e79ac056bfL, 0xc3ff2d10e41e4eL,
 3609          0x32ec7f92c3679fL, 0x3561f094e61051L, 0x4553f5a6c6250aL,
 3610          0x2b765efdd25c5bL, 0xe3a40a26a1cd7fL },
 3611        { 0xb27309b5d821ddL, 0x950fb8dc2c17caL, 0xfeed0158fb0d4cL,
 3612          0x762c479f550179L, 0x306cf44e095840L, 0x84b413ad379e66L,
 3613          0xd6e5d5abb2e4f1L, 0x8bc12b794b085dL }
 3614    },
 3615    {
 3616        { 0xc0d4cb804b5532L, 0x7a31525b9940a6L, 0x010e7dd68c69d1L,
 3617          0xd81f29d2a18c35L, 0x08ae7703f11e73L, 0x5358f876e55106L,
 3618          0x299e8cac960ef5L, 0x89a6fb4acfc8dcL },
 3619        { 0x5996a406dc7d4aL, 0x21e5112e51b96eL, 0x95b8c3d09a202bL,
 3620          0x306ab0fd441f1fL, 0x2834fed98d4245L, 0xc29c387d0abbdeL,
 3621          0xf6a9bf1b805c15L, 0x602f4f8c4e458dL }
 3622    },
 3623    {
 3624        { 0xf041486e5a893aL, 0x53b891d8934327L, 0x11e000d4000758L,
 3625          0xa4ccde8662bad9L, 0xe34d3edb9a1b64L, 0x72d967584e7a6dL,
 3626          0x773da2f6627be4L, 0xa11c946e835ae3L },
 3627        { 0x02e8203650bc15L, 0x2d35936e58b78dL, 0xe9cfbe8f21a3ccL,
 3628          0x55ad8311049222L, 0xbf99de438fff47L, 0xebbfd803831db5L,
 3629          0xe990636af2af42L, 0xc26ae52b7f5a0eL }
 3630    },
 3631    {
 3632        { 0xb5d85b1fa8f846L, 0x4166489b3b1455L, 0x768260dd36a305L,
 3633          0xc6a82354ff5645L, 0xd241cd8d6e93e5L, 0xeed9aa1a406e74L,
 3634          0x9e96ab05f600d9L, 0xa26b8b56eca2a1L },
 3635        { 0x78321cfd705aefL, 0xc4fb6b3c0161ecL, 0xdc324415199cf1L,
 3636          0x33627d0d0a5067L, 0x13490cb15143eeL, 0x77e0ede85b4f44L,
 3637          0x904f12e394b165L, 0x90f50f5efab32dL }
 3638    },
 3639    {
 3640        { 0x4aa0a16bc2de96L, 0x172596aaa9c12bL, 0xd512e1e60e8a29L,
 3641          0x77d35c1f637e83L, 0xbb0d141d2aae0bL, 0x8a878a58c03738L,
 3642          0x6d24c01ab0e525L, 0xb7d3136f760887L },
 3643        { 0xdbc3f8f3f91b7cL, 0xe7b4bcaa8722c0L, 0x3286a91da0ae65L,
 3644          0x8372274225b084L, 0x5884cd5ae1886cL, 0xb4e63ef3a23cf7L,
 3645          0xfe5f202f2dd0daL, 0x951fac9653916cL }
 3646    },
 3647    {
 3648        { 0x05e2e8f854fa4eL, 0xf411f941edaf10L, 0x26cc562a0a928dL,
 3649          0x78fd34e4abce65L, 0x1d8760998a32e2L, 0x85dc76f4c37518L,
 3650          0xdcaeef500e8021L, 0x7fcb2f84e9b2a5L },
 3651        { 0x9eba91ef382c06L, 0x2052e8524cae53L, 0x617336ef5c1519L,
 3652          0xf1546d5b4e632bL, 0xa9edc81d7b8ffdL, 0xdb2914f29ab68cL,
 3653          0xe805070debbabaL, 0x775e53bc3b719eL }
 3654    },
 3655    {
 3656        { 0xa40e294065256aL, 0x9f113868fb031aL, 0xac03af8059667cL,
 3657          0x432eb3a0475f58L, 0x22332bf01faad0L, 0xc8132e9bc57a11L,
 3658          0x27d5a173bc3f8bL, 0x5471fc6930bf3eL },
 3659        { 0xba28bc0e6bff40L, 0x198d57e555e564L, 0x13ce8319c65b8fL,
 3660          0xb0a5c9d5681b51L, 0x467588bdeb9e11L, 0xf1891a7bb4250bL,
 3661          0x10b938bd12b433L, 0x0b8c80224dcda4L }
 3662    },
 3663    {
 3664        { 0xc428703cf332d3L, 0x9d0053cf2a5b98L, 0x4e4c6207838a15L,
 3665          0x2e92919fbf8a43L, 0x39ad52421cd9a5L, 0x584ed6c1561588L,
 3666          0x20af30517a95c8L, 0xa223077b70e1c8L },
 3667        { 0x679cfea2fa4871L, 0x54f2a46ac633c7L, 0x60306514cdc5f1L,
 3668          0xc4facda75a1dc7L, 0x710a2882d07d19L, 0xd55864e6b44992L,
 3669          0x44d4b6c454c5b2L, 0x2855d2872f9981L }
 3670    },
 3671},
 3672{
 3673    {
 3674        { 0x4071b3ec7b0674L, 0x800eb14f8794d5L, 0x70573afbe6783eL,
 3675          0xafaa4407785901L, 0x112d2a1405f32cL, 0x3761a52169b3e2L,
 3676          0xe168b31842a366L, 0x5bc322f9bf4734L },
 3677        { 0x36ef240976c4a0L, 0x066f3d6fea4e64L, 0x0e954bda989e57L,
 3678          0xe36ef5ef9466e4L, 0x6bb615abeb9226L, 0x5571e5f3d5a2caL,
 3679          0xa86efe24897a86L, 0xed7e9cf28a9f77L }
 3680    },
 3681    {
 3682        { 0xdf10c971f82c68L, 0x796ba1e3b597e6L, 0x1ac77ece718cbfL,
 3683          0xc8175bb410eac8L, 0x0cdf9a1bc555efL, 0x6b889f17524e05L,
 3684          0x6bf1e61ae26d82L, 0xb3f6ad5d2e97d9L },
 3685        { 0x94dcff9f226487L, 0x60e6356be03ddeL, 0xda1f93b6a3dd7dL,
 3686          0xf1be72179ca90cL, 0x05ed3131e6bce5L, 0xcf50908d48af3eL,
 3687          0x3b0e85c61e554fL, 0xfe7e35ba2778d3L }
 3688    },
 3689    {
 3690        { 0x42c503275ac5a9L, 0xa66a66dda062c2L, 0xa4f4f82caa7023L,
 3691          0x489d47664b4f86L, 0x10b108897311adL, 0x55dd637177b2ecL,
 3692          0xa5ccff09a267b1L, 0xf07690bff327b0L },
 3693        { 0x39162ed2250cd2L, 0x1426de08b255f1L, 0xf227afd1bdd731L,
 3694          0x78f8a36fa4c844L, 0x267a211157379cL, 0x3f05f92cc04acbL,
 3695          0x374496cfc69caeL, 0xbf2c5d016ebfecL }
 3696    },
 3697    {
 3698        { 0x605418bd0518d1L, 0x3237f809e1cbc6L, 0x37a7005286c019L,
 3699          0xf1fb0e0b15af0bL, 0xfc3b97caa853c0L, 0x1f48bd0e6beba2L,
 3700          0x8e5d7c5e6a72f1L, 0x575e66d26ebf0cL },
 3701        { 0x099477662eae3dL, 0x53f074f96c9c65L, 0x6cfbfdbb81badeL,
 3702          0x98b4efe3fed7d1L, 0xdaa112338c3382L, 0xdf88b7347b8ec6L,
 3703          0x9b0fe4b9504a4fL, 0x2e7df4cf30c1c3L }
 3704    },
 3705    {
 3706        { 0x25380cb2fc1833L, 0xb8e248c18d62deL, 0x91c8f59d82f9dbL,
 3707          0x5ec2b202444750L, 0x3f3a1f766b6f74L, 0x0180aa9dd7d14dL,
 3708          0xd0a342d2956b9cL, 0x26e910e7139873L },
 3709        { 0x2261dc4139e23dL, 0x7edb181b8343ddL, 0xfcf1073b4038ddL,
 3710          0x88870efa3bfea3L, 0x4e98ba964a263eL, 0x3c6e5dc70811f5L,
 3711          0x17d28f5f86055dL, 0xca9c27666e4199L }
 3712    },
 3713    {
 3714        { 0x0b2d8bd964ef8cL, 0x5a99b8588e2ba6L, 0x9e927b204498ceL,
 3715          0x9ff20c5756eb25L, 0x97cc27b3f27736L, 0xf32dd6d4729583L,
 3716          0xbdc26580381a94L, 0x70fef15ef2c06fL },
 3717        { 0x50a619149252ccL, 0x9eb4a14236b4b9L, 0x9b1b2158e00f78L,
 3718          0x27add366ea9c23L, 0xef61763c3a8e79L, 0xed4542fd82ce56L,
 3719          0xa8737e70caed75L, 0xeca0ac2d452d76L }
 3720    },
 3721    {
 3722        { 0x20c07793d082d0L, 0x6e3ce64c9e9f3bL, 0xb3a4dce75a195fL,
 3723          0x3a3c305bdd9f24L, 0xe2545c88688942L, 0xa463c82080f32bL,
 3724          0x442974842686b8L, 0xf50e20d7213866L },
 3725        { 0x265ac523826e74L, 0x26fba57228e8ecL, 0x8a1e1dbe6b3ed8L,
 3726          0x7c7b278f0fe65aL, 0x9a6df23c395234L, 0x99562060b0f114L,
 3727          0x440c8c4ef90837L, 0x21ad22a3645f65L }
 3728    },
 3729    {
 3730        { 0x1e023a6edd31b2L, 0xf76d1459ff8668L, 0x970705617b45c8L,
 3731          0x06120781e88e37L, 0x85c51c8922faacL, 0x4df392e22756d9L,
 3732          0x8907fd0a03c98eL, 0x626f46a52ea51cL },
 3733        { 0xf8f766a486c8a2L, 0x8c499a288ed18cL, 0x44d2dc63c4f0deL,
 3734          0x47dde686f2a0b6L, 0x9a655f84a973fdL, 0x3e7124e786ac80L,
 3735          0x699e61ce8a0574L, 0xdf0ba9a31cdd0dL }
 3736    },
 3737},
 3738{
 3739    {
 3740        { 0x76270add73e69bL, 0x991120fc67d38aL, 0x7be58309469f0cL,
 3741          0x93aba597db40acL, 0x2b707bc822fc08L, 0x4199fc069551cdL,
 3742          0x38deed4f367324L, 0xca518e12228787L },
 3743        { 0x72f1befd9a9277L, 0x57d4aabe49ae90L, 0x13810d5db23478L,
 3744          0x2a8b7809b4b77fL, 0xb542f4e1b4e004L, 0x4080fd03ec77f0L,
 3745          0xb49e9fecec6596L, 0x20338d33f16037L }
 3746    },
 3747    {
 3748        { 0x4adcdae53554b0L, 0xfea4906e04c4dbL, 0x0808bec7748233L,
 3749          0xde7477c47148d7L, 0xdd9124c03da38cL, 0x6b2503125ee8e9L,
 3750          0xae67399b0d6161L, 0x70c4acd82203b6L },
 3751        { 0x9683916d31dae8L, 0x34775031ac7f69L, 0x9553153988e4adL,
 3752          0xb58f41153a15e1L, 0xb65a2d492ba2ddL, 0x7c3efb1a90169cL,
 3753          0x210f45e6b1747dL, 0x16e8d1bcff488dL }
 3754    },
 3755    {
 3756        { 0x252adf89d703dbL, 0x259ac1dfdfeb39L, 0x7faf6af115e806L,
 3757          0x7aaefd6c1aff21L, 0x80542107c0113dL, 0x481f1a5e19b4b1L,
 3758          0x7c17d43fcc8c61L, 0x8b04452bb0bbbeL },
 3759        { 0xe51e5f54cebae1L, 0x05341ba56a414cL, 0x0083a2c7fb8a30L,
 3760          0xb4663f277f4952L, 0xce72eec4bb0074L, 0x74fdd66a3584d1L,
 3761          0x6b9e58eb02e076L, 0x5be45d53b961f4L }
 3762    },
 3763    {
 3764        { 0xc7474f31ab2e0bL, 0x2838ccbf4bf454L, 0x634392ef3c3eacL,
 3765          0x440e40a137602bL, 0xeea67e9d1ae8e3L, 0xafdf93a77e221eL,
 3766          0x3c9f3da2719a10L, 0x466ecef32c8256L },
 3767        { 0x1061c19f9c432fL, 0xa1332d9b1c7d98L, 0xbc735f2a425c2cL,
 3768          0x1429cdf4b1bccbL, 0x77b42a16bbb5f9L, 0x30078e35955ae4L,
 3769          0x8acd77721cc315L, 0xaa90d5fe86fa99L }
 3770    },
 3771    {
 3772        { 0xfcfd460721115aL, 0x6a7de3e08269b8L, 0xe5964a696dd47eL,
 3773          0x6717cd58dca975L, 0x7ea4ebe98b149eL, 0x6f894d5b7b8057L,
 3774          0xbd6f9607f30e31L, 0x61ca45323df092L },
 3775        { 0x32241f99d782f3L, 0x55173b02abfae2L, 0x0abe0edd15bbbdL,
 3776          0xb6d3c0ab438abbL, 0x62fb4679ffa20bL, 0x30926b5d31560aL,
 3777          0x44bf27c2a0aa6dL, 0xf7473131a4cb97L }
 3778    },
 3779    {
 3780        { 0xa2f6c0db0535deL, 0xcb02ae1c855166L, 0xc699e6bb3422f0L,
 3781          0x774febe281ba8aL, 0x1d9d24fffabcc7L, 0x0b31ba1fe12ba5L,
 3782          0x4c8680313d0af7L, 0x90640d32f47160L },
 3783        { 0xa0c4bf45876603L, 0x717f6fa950ab08L, 0xf12bb53a710de8L,
 3784          0xc500c616a88f50L, 0x0070f992645351L, 0x57aab5d2446893L,
 3785          0xd553fa8b68f657L, 0xe8537c1693c55dL }
 3786    },
 3787    {
 3788        { 0x58e86eb7fc7684L, 0xdf330f7bfc73a9L, 0x41e337dcc11936L,
 3789          0x36d92006e35759L, 0x01327033500d8bL, 0xfa684059483354L,
 3790          0xc8f2980667851bL, 0x538ec8918296b0L },
 3791        { 0xa2a2c4fcff55f9L, 0xb260d4d60d20bdL, 0x3ed576fd9cc59fL,
 3792          0x4ed8c64d514fccL, 0x37ebfb2c22b315L, 0xca67a3694c212cL,
 3793          0x4f8e08c3a1795eL, 0x498f9264e7261fL }
 3794    },
 3795    {
 3796        { 0xfea7382c59b3d4L, 0xb9942ed3f2925fL, 0xe4b00dc8ea77e8L,
 3797          0x74a18ec3cab02eL, 0xbbbb752ef16d0bL, 0x639da4fffab032L,
 3798          0xc371a4a3aa30f0L, 0x8e26b22caa175bL },
 3799        { 0x94e41567e2b62eL, 0x7cceea625a794cL, 0x931d2f4479f015L,
 3800          0x946183d90b25b2L, 0x1504e9768a2807L, 0xa7577d3fa49dddL,
 3801          0x24fc87edd48699L, 0x9edefd63d7d99cL }
 3802    },
 3803},
 3804{
 3805    {
 3806        { 0x0508b340f0b450L, 0xe0069a5c36f7f4L, 0x26556642a5a761L,
 3807          0x0193fd8848e04dL, 0xc108cf573fe2e7L, 0x05eb0ecfd787d4L,
 3808          0x1555ccbff28985L, 0xb5af09f651b995L },
 3809        { 0x167d72ce1134beL, 0xd6d98bf57c669aL, 0x40fb7166dd76faL,
 3810          0xeabbf202a41b31L, 0x300ff0e09b75b0L, 0x32b6fadd9a0c1eL,
 3811          0x805188365a80e0L, 0x8bef69332110feL }
 3812    },
 3813    {
 3814        { 0x637802fbef47d4L, 0xfac114b2d16eaaL, 0x7b3f3ab0415644L,
 3815          0x17ab8d12dd895bL, 0x271b7fe87195f3L, 0xa3f867ea71f65fL,
 3816          0x39ba40cc80583aL, 0x6db067256e1fccL },
 3817        { 0x4feab4e06662a8L, 0xc857415c74bd46L, 0x18032ed732b126L,
 3818          0x87c8aea7a099eaL, 0xb4a753536fe0a8L, 0x33a98da27673f6L,
 3819          0x3e40c022b8e549L, 0x2def1af9a4c587L }
 3820    },
 3821    {
 3822        { 0x9618b68a8c9ad9L, 0xd70b4aa49defdaL, 0xae8b1385f788efL,
 3823          0x87c3542dd523f4L, 0xe42c7055c5b004L, 0x6303360fa7df57L,
 3824          0x33e27a75f6d068L, 0x9b3268e8ff331aL },
 3825        { 0x845cc9623ee0c3L, 0x003af70ac80084L, 0x6a9f931530c41dL,
 3826          0xa1d7051bb127f0L, 0x642ce05ca36245L, 0xc34205b0323ee9L,
 3827          0x7cc8912b7b3513L, 0x6252cc8076cbdbL }
 3828    },
 3829    {
 3830        { 0x10e68a07089522L, 0x36c136158fc658L, 0x490397d74723a4L,
 3831          0x42692c0519d56cL, 0x69d251bf1ff235L, 0xe689d03c2cbf37L,
 3832          0xf04ceba825b7f4L, 0xd6b9bee2281c2eL },
 3833        { 0xc52ef3fe0043abL, 0x351bf28d1d1be8L, 0x277615f0f18a5aL,
 3834          0x31f717f5d6800fL, 0xf5fb82dab922e2L, 0x99aee2f2d6ae43L,
 3835          0x42477fec63b982L, 0x904aeb1a594a01L }
 3836    },
 3837    {
 3838        { 0xaa82174eb39974L, 0xbc38e6195e6aa0L, 0x6a3df8a25c0675L,
 3839          0xf324203ffbe739L, 0xfa5a0b4a3f0649L, 0x79c87327a7a6b8L,
 3840          0xeb65ecd40ad3f5L, 0x718d416e4e45c5L },
 3841        { 0x029dbf4e2326fdL, 0x0c63416e7942f0L, 0x6d0c7286f4e678L,
 3842          0x59f0b10a138601L, 0x8a1d9788d92ea9L, 0x9f8d712c22eca5L,
 3843          0x73970447b6b96bL, 0xa2d49eee6fb955L }
 3844    },
 3845    {
 3846        { 0x249f900bf14a19L, 0xd3522da63a8cd2L, 0x28a32f386964d2L,
 3847          0xacf712bc1fa743L, 0x98a9bfc0bb94d3L, 0x318ece1bc06824L,
 3848          0xfc476754fce7f0L, 0x19caec9e4135b7L },
 3849        { 0x6de68a8c6817bbL, 0x7121960f3b6d89L, 0xa7d4261f5a818eL,
 3850          0x0c0ba519157455L, 0x78b6acf450d5ffL, 0x198b4934e8649aL,
 3851          0x0941a3cfd05da3L, 0x264ea4adb55951L }
 3852    },
 3853    {
 3854        { 0xcfee91c46e5a31L, 0x47b6806fff7366L, 0xdb14be45df849dL,
 3855          0x3c5e22bac66cc7L, 0x7f3f284a5f4769L, 0x4e00815383be36L,
 3856          0x39a9f0b8072b0bL, 0x9887cd5c7eadd6L },
 3857        { 0x7dd8f05b659511L, 0x15c796dd2e1cb9L, 0xe5edb0c0d31345L,
 3858          0x2025df06939c60L, 0x6314c08bf15de1L, 0x03c154804c7fb5L,
 3859          0x413337fbb5d3edL, 0xfc20b40477e983L }
 3860    },
 3861    {
 3862        { 0x7f968805db0ef9L, 0x05562dee9c2a70L, 0x071e5bc7dae133L,
 3863          0xa8cdd12237fc4aL, 0x6d565e74ea492bL, 0xa17cf94381ee52L,
 3864          0x6ab8a4e9f5c546L, 0xbb642f340288efL },
 3865        { 0x64e59215df5c2dL, 0x43696e3bb906f4L, 0x73a841a74ae46cL,
 3866          0xe264883c506b8aL, 0x9542e1aa1be548L, 0x89385395e81b4aL,
 3867          0x5642cfaeaca6ceL, 0xed8077b806e0f9L }
 3868    },
 3869},
 3870{
 3871    {
 3872        { 0x1c776c47e13597L, 0x0ec8b289e584fdL, 0x0bb6043b8b61e8L,
 3873          0xdcc17489cd835bL, 0x493e6ac39fef9aL, 0xb44eb34d133e17L,
 3874          0xfebcd0071cb6f9L, 0xe6cf543d20eff2L },
 3875        { 0xf265cad0a004c7L, 0x9b06c9dd35cc12L, 0x769f985cb4ea53L,
 3876          0x29160a20993434L, 0xdf8dd108d939c4L, 0xefa177c6711e2fL,
 3877          0x1695790cd7a2cdL, 0x38da3d777f6642L }
 3878    },
 3879    {
 3880        { 0x9bfcfd96307b74L, 0xc26a36dbfdabc3L, 0x9341be04abe28eL,
 3881          0xdb20b5273d1387L, 0xf8d229c3d1949cL, 0xf1e0afeb8b3a41L,
 3882          0x29c60dfed565d0L, 0x6930bb58b43b2cL },
 3883        { 0x1d76527fc0718fL, 0xdb981431f67189L, 0x0c62f6451f32ccL,
 3884          0x70a66268bd35e5L, 0x1725641c1cece7L, 0x7f130a8f96f4a4L,
 3885          0x72319e9f06ee98L, 0x215b73867bf9b2L }
 3886    },
 3887    {
 3888        { 0x8d1bec20aaddd7L, 0xfb8b95bb8be4f9L, 0xeac193efde1026L,
 3889          0xa5edea79d5860cL, 0x4adbaea44280d3L, 0xce8b67038f4798L,
 3890          0x914c107ec30deaL, 0xbdc5cf7000776bL },
 3891        { 0xb6fd7d1a206a13L, 0x9941ebadae986eL, 0x76c27a81f1caaaL,
 3892          0x6967c123f108b4L, 0x6f115284aea2d0L, 0x9bb4319144ddacL,
 3893          0x1a4d3eac8ec6fcL, 0xfe4b0b8bf37420L }
 3894    },
 3895    {
 3896        { 0x5d9a4a1ec0ac6fL, 0x84b79f2fc7c80dL, 0x64222f7c14fac3L,
 3897          0xdd9e039c23b3f2L, 0x4a84abdea956bbL, 0x370dcbaebe09dcL,
 3898          0x79a9ea8e0eaf82L, 0x4cfb60aaee375fL },
 3899        { 0x6a10dbf9106827L, 0xa3ba5cf43f305bL, 0x481b885c1bb083L,
 3900          0x2f52380b3117b1L, 0x0066122ddd6791L, 0x4f8923e63bace3L,
 3901          0x5c5f499ecb88d4L, 0xfdc780a3bac146L }
 3902    },
 3903    {
 3904        { 0x34b70ae7ba1f71L, 0x909182945bd184L, 0x3b39778e707313L,
 3905          0xdeefc5e6164e91L, 0xbb55bed4971f39L, 0x7d523398dafc8bL,
 3906          0x82391bfa6adf0fL, 0xfd6f90ae319522L },
 3907        { 0x60fdf77f29bbc9L, 0xeff9ed8aaa4030L, 0x978e045f8c0d3fL,
 3908          0xe0502c3eed65cdL, 0x3104d8f3cfd4c8L, 0xab1be44a639005L,
 3909          0xe83f4319eeab3fL, 0x01970e8451d797L }
 3910    },
 3911    {
 3912        { 0xbc972f83180f4bL, 0xac053c0617779dL, 0x89392c57fa149fL,
 3913          0xdc4699bbcb6263L, 0x0ae8b28ce12882L, 0xdca19a7af1a4dcL,
 3914          0xd3d719f64e1a74L, 0xbb50201affdd5dL },
 3915        { 0x56f73107ac30e9L, 0x65cc9c71878900L, 0x83f586627338a3L,
 3916          0x122adefac5bb13L, 0x97de2001bcd4d5L, 0x6ed3985b8aa3a0L,
 3917          0x8680f1d6821f9bL, 0xcb42028dda9f98L }
 3918    },
 3919    {
 3920        { 0xcdb07080ec2db3L, 0xe28c8333dad1a1L, 0x2093e32de2da07L,
 3921          0x731707383b8987L, 0xad17871f552b8dL, 0x846da9851cf70aL,
 3922          0xf94a16e5c4f5e1L, 0x84299960f8348aL },
 3923        { 0x4bf3f6898db78aL, 0xad77fa83d19b52L, 0x69767728b972dcL,
 3924          0x7dfa35a5321be0L, 0x9881846dd344a6L, 0xe550292ad4e2a8L,
 3925          0x8075217bc68bf1L, 0xdd837c4893be15L }
 3926    },
 3927    {
 3928        { 0x09c931ed4fab5bL, 0xb2dcf08b77a0f1L, 0x7dac5c0e0d38a6L,
 3929          0xa5570b00ae73afL, 0xc7c19d3f5aed28L, 0x575fa6f5251e92L,
 3930          0xb843cd6cdf7275L, 0xd9d3d8e9a01287L },
 3931        { 0xf94e356b3c370bL, 0xc62b99ffe464b0L, 0x7792650a986057L,
 3932          0xeaa67d5c4b1874L, 0xba1ba4d0b07078L, 0xdbf636d7a03699L,
 3933          0x1a16c34edd32a3L, 0x6ce2495a45cb5dL }
 3934    },
 3935},
 3936{
 3937    {
 3938        { 0xd7c4d9aa684441L, 0xce62af630cd42aL, 0xcd2669b43014c4L,
 3939          0xce7e7116f65b24L, 0x1847ce9576fa19L, 0x82585ac9dd8ca6L,
 3940          0x3009096b42e1dbL, 0x2b2c83e384ab8bL },
 3941        { 0xe171ffcb4e9a6eL, 0x9de42187374b40L, 0x5701f9fdb1d616L,
 3942          0x211e122a3e8cbcL, 0x04e8c1a1e400bfL, 0x02974700f37159L,
 3943          0x41775d13df8c28L, 0xcfaad4a61ac2dbL }
 3944    },
 3945    {
 3946        { 0x6341b4d7dc0f49L, 0xaff6c2df471a53L, 0x20ec795fb8e91eL,
 3947          0x4c7a4dfc3b7b62L, 0x9f33ff2d374938L, 0x38f8c653a60f2eL,
 3948          0xc1168ac2efef73L, 0x046146fce408eeL },
 3949        { 0x9b39ac0308b0c3L, 0xe032d6136b8570L, 0xee07d8dfc4aacfL,
 3950          0x0a82acbd5a41ddL, 0xbe0ded27c3d726L, 0xce51d60b926ce9L,
 3951          0xfa2f7f45806c1eL, 0xe367c6d1dec59cL }
 3952    },
 3953    {
 3954        { 0x64511b6da2547bL, 0x76a349c0761405L, 0x37d662601223abL,
 3955          0x0e243c1f4d7c48L, 0xdc9c8b4da756a0L, 0xc7430dfd72e7e9L,
 3956          0x0eb130827b4210L, 0x7a9c044cf11cbdL },
 3957        { 0x2c08ff6e8dd150L, 0x18b738c2932fc6L, 0x07d565104513e8L,
 3958          0x0ca5cffaa40a17L, 0xd48634101baa8fL, 0xfb20fafb72b79eL,
 3959          0x1a051e5654020fL, 0xe3b33174e17f23L }
 3960    },
 3961    {
 3962        { 0x05910484de9428L, 0x620542a5abdf97L, 0xaa0ededa16a4d1L,
 3963          0xa93f71c6d65bb9L, 0x88be135b8dfaf9L, 0x1d9f4e557ca8eeL,
 3964          0x4c896aa26781adL, 0xd3fbe316c6c49fL },
 3965        { 0x088d8522c34c3dL, 0xbb6d645badff1eL, 0xe3080b8385450dL,
 3966          0x5ccc54c50ab1f3L, 0x4e07e6eac0657dL, 0xa7ba596b7ef2c0L,
 3967          0xcceca8a73a81e9L, 0xa0b804c8284c35L }
 3968    },
 3969    {
 3970        { 0x7c55956f17a6a2L, 0xb451d81789cfa8L, 0xdf414e82506eaaL,
 3971          0x6ef40fbae96562L, 0x63ea2830e0297eL, 0xf5df26e73c46faL,
 3972          0xe00641caac8bceL, 0xc89ed8f64371f3L },
 3973        { 0xd22b08e793202eL, 0x39a9033875cb50L, 0xe64eec0f85ddb4L,
 3974          0xdce45a77acf7b5L, 0x39d1e71b9b802dL, 0xafdfe7cbd559acL,
 3975          0x17ec1f8809eeb5L, 0x8c0e38a4889b8cL }
 3976    },
 3977    {
 3978        { 0x47eabfe17089daL, 0x2d18466ec90c50L, 0xa511aa45861531L,
 3979          0xebb3d348c39b39L, 0xa0ac4daf1b5282L, 0xea26be7a9dadbaL,
 3980          0x8992ba8554d86eL, 0x7fcbdb6d5f2ef5L },
 3981        { 0x320e79b56863e7L, 0xeb9d0c0a7dce2dL, 0xb9f4031784cbc6L,
 3982          0x68823ee7ac1f81L, 0xa6b6f4f9d87497L, 0x83c67b657f9b6eL,
 3983          0x37357470fef2a7L, 0xf38028f59596e2L }
 3984    },
 3985    {
 3986        { 0x9ea57ab7e82886L, 0x18221c548c44d5L, 0xbf8e6cf314a24fL,
 3987          0x70ff18efd025e5L, 0x08d03de5334468L, 0x2b206d57404fb7L,
 3988          0xb92327155e36b0L, 0xcc7604ab88ddd9L },
 3989        { 0x3df51524a746f0L, 0x8fdebd8168e3fcL, 0xffc550c7f8c32cL,
 3990          0x1dbbc17148743eL, 0xd48af29b88e18bL, 0x8dca11c750027cL,
 3991          0x717f9db1832be3L, 0x22923e02b06019L }
 3992    },
 3993    {
 3994        { 0xd4e06f5c1cc4d3L, 0x0fa32e32b4f03aL, 0x956b9afc4628d0L,
 3995          0x95c39ce939dad1L, 0x39d41e08a00416L, 0xfd7ff266fb01aaL,
 3996          0xc6033d545af340L, 0x2f655428e36584L },
 3997        { 0x14cfb1f8dff960L, 0x7236ffcda81474L, 0xc6a6788d452d0fL,
 3998          0x2ad4a5277f6094L, 0x369d65a07eea74L, 0x27c6c38d6229aaL,
 3999          0xe590e098863976L, 0x361ca6eb38b142L }
 4000    },
 4001},
 4002{
 4003    {
 4004        { 0x6803413dfeb7efL, 0xb669d71d3f4fadL, 0x5df402ac941606L,
 4005          0xe5d17768e6c5b7L, 0x131bcb392ab236L, 0x7f1fb31ce2e0e0L,
 4006          0xa2c020d9e98c35L, 0x33b23c0f28657bL },
 4007        { 0xed14e739cf7879L, 0x10d4867b4357b3L, 0x127cea331e4e04L,
 4008          0xc60d25faa5f8a7L, 0xfef840a025b987L, 0x78081d666f2a0aL,
 4009          0x0fa0b97ac36198L, 0xe0bb919134dc9fL }
 4010    },
 4011    {
 4012        { 0xc1d2461cc32eaeL, 0x0fdbfdf0f79a37L, 0x70f2bc21c95f02L,
 4013          0x7d68bec372cddfL, 0x44f78178439342L, 0xa3d56784843a6cL,
 4014          0xbadf77a07f8959L, 0xf45819873db4caL },
 4015        { 0xe8eaaf3d54f805L, 0x2f529d1b84c1e7L, 0x404e32e21e535cL,
 4016          0xabac85c159b5f5L, 0x4e8e594b00466fL, 0x40fcaabc941873L,
 4017          0x3b4e370be407c6L, 0xccd57885b2e58dL }
 4018    },
 4019    {
 4020        { 0x3ee615e88b74a8L, 0xd7d6608eab4e69L, 0x27cf9f1e4ace36L,
 4021          0x282359e7aebabbL, 0x96e509bf6d162fL, 0xad906f3f1a290aL,
 4022          0xe7d6c4f1314a58L, 0xeecffe4218431dL },
 4023        { 0xa66e0e9e2cfed9L, 0xb0887ec71f0544L, 0xd34e36ba04c5d7L,
 4024          0x094daa5ed4392dL, 0xcda83adc8aa925L, 0x1adef91b979786L,
 4025          0x3124dcbfddc5d6L, 0x5cc27ed0b70c14L }
 4026    },
 4027    {
 4028        { 0x386dbc00eac2d8L, 0xa716ecbc50ca30L, 0x9e3fc0580d9f04L,
 4029          0x37dde44cfeacebL, 0xd88d74da3522d5L, 0x6bb9e9f2cf239aL,
 4030          0x9e7fb49a7cbfecL, 0xe1a75f00a5c0efL },
 4031        { 0x6e434e7fb9229dL, 0x0ec6df5c8a79b3L, 0x7046380d3fb311L,
 4032          0xe957ef052e20faL, 0x0f4fe9a9ef4614L, 0x1b37d9c54d8f2bL,
 4033          0x23b2dc139d84a2L, 0xf62c4f6724e713L }
 4034    },
 4035    {
 4036        { 0xbd6922c747e219L, 0x34d14383869b7bL, 0x8c875a596f2272L,
 4037          0xd9602c03fe361eL, 0x081348f744839fL, 0x61bd16c61ac1f1L,
 4038          0x993b727d8da4e1L, 0xbb40ba87741271L },
 4039        { 0xe6dcc9881dcfffL, 0x9f513f593ce616L, 0xdc09683618cd8fL,
 4040          0xc3b1d1026639beL, 0xe8f149fc762ee2L, 0x59f26efb244aaeL,
 4041          0x3f2de27693dd96L, 0xd8b68f79c3a7deL }
 4042    },
 4043    {
 4044        { 0x6fa20b9970bd5bL, 0x87242d775f6179L, 0xa95a6c672d9308L,
 4045          0x6eb251837a8a58L, 0xfdea12ac59562cL, 0x4419c1e20f1fc3L,
 4046          0x0c1bd999d66788L, 0x4b7428832c0547L },
 4047        { 0x4f38accdf479abL, 0x01f6271c52a942L, 0xe3298f402ca9a7L,
 4048          0x533dacab718fc8L, 0x133602ab093ca8L, 0xc04da808f98104L,
 4049          0xd0f2e23af08620L, 0x882c817178b164L }
 4050    },
 4051    {
 4052        { 0x28e6678ec30a71L, 0xe646879f78aca1L, 0x868a64b88fa078L,
 4053          0x671030afee3433L, 0xb2a06bb87c0211L, 0x202eca946c406aL,
 4054          0x64d6284e4f0f59L, 0x56ae4a23c9f907L },
 4055        { 0x5abbb561dcc100L, 0x6fef6cf07c7784L, 0xb6e25cddb7302dL,
 4056          0xa26785b42980e8L, 0xe7d4043fb96801L, 0x46df55d8e4282bL,
 4057          0x9c0a5f5c602d6eL, 0xf06560475dfe29L }
 4058    },
 4059    {
 4060        { 0x0e82a1a3dcbc90L, 0xb1ee285656feacL, 0xfa4353b0d3d3b2L,
 4061          0xc2e7a6edd5c5dfL, 0x13707e1416ce53L, 0xc84ce0787ebc07L,
 4062          0xdd273ce8a9a834L, 0x432a6175e8e1e7L },
 4063        { 0xa359670bd0064aL, 0xc899dd56534516L, 0x666560edb27169L,
 4064          0x1537b22a19a068L, 0x3420507eac7527L, 0x479f25e6fc13a7L,
 4065          0xc847acc1bc19b3L, 0xecdecf00b20d45L }
 4066    },
 4067},
 4068{
 4069    {
 4070        { 0x6f241004acea57L, 0xdace1c6da68597L, 0xea7dd4150ce77fL,
 4071          0x1aecb841585884L, 0x92ff208ea4a85cL, 0xde9433c88eebd2L,
 4072          0x53cd3183f4d289L, 0x397085826539afL },
 4073        { 0x4b57599b827d87L, 0xdc82ac03d77638L, 0x694336652f6e61L,
 4074          0xb8fc4b0ad5e8a6L, 0x1b6f7dcf388642L, 0x6f24533a74dd57L,
 4075          0xc66937841750cfL, 0x06757eb28a37afL }
 4076    },
 4077    {
 4078        { 0x0e70d53c133995L, 0x88a5e0c7c8c97dL, 0x4e59dbf85f3be3L,
 4079          0x0f364ac0e92698L, 0x3a1e79bef6940fL, 0xc8a3941d85d23aL,
 4080          0x143bb999a00e58L, 0x61cf7d6c6f2f10L },
 4081        { 0x979c99485150feL, 0xcfd0df259d773fL, 0xce97b9daab7bcdL,
 4082          0xc9fff8e6afd8fcL, 0x246befd89a4628L, 0xf6302821567090L,
 4083          0x15393426749c58L, 0xff47d0ea0f3fd3L }
 4084    },
 4085    {
 4086        { 0x09b0bfd35f6706L, 0x74645812c82e69L, 0xb60729f50d5fe9L,
 4087          0xf13324595c74f1L, 0x33647e3bb76c89L, 0x01264045a9afccL,
 4088          0x46d57ee0f154abL, 0x2efa55525680a4L },
 4089        { 0x12ebfc65329d90L, 0xcb37ae579800afL, 0x5bb53496f8e310L,
 4090          0x9b59c63f1bb936L, 0x5b49baaf4610e9L, 0x2bbeeef4f2d6acL,
 4091          0x87ee21e0badc67L, 0x12e2aadf1ddfa0L }
 4092    },
 4093    {
 4094        { 0x5b4668fa9109eeL, 0xfa951338a6cea2L, 0xe45e6fc4068e16L,
 4095          0x8ae9a0c0205ed8L, 0x2993b96679b79bL, 0xc6b878fed604d3L,
 4096          0x01d020832c77f3L, 0xd45d890495a1abL },
 4097        { 0x99348fa29d2030L, 0x961f9a661f8f7aL, 0xfd53212674f74bL,
 4098          0x45cee23b3e72bcL, 0x3fccb86b77e2d5L, 0xdff03104219cb7L,
 4099          0x233771dc056871L, 0x1214e327d2c521L }
 4100    },
 4101    {
 4102        { 0x9f51e15ff2a8e1L, 0x86571c5138bc70L, 0xbfc4caf0c09d46L,
 4103          0x65e33fec2a0c18L, 0x8214392426867dL, 0x51ce6c080ae4edL,
 4104          0x6cbe8d7b110de6L, 0x7f6e947fd22ea4L },
 4105        { 0x7373a75cadefc4L, 0x6fca1d2b0c682fL, 0xcd2140df3c7c1eL,
 4106          0x8653a37558b7a5L, 0x653e74e55eb321L, 0xbe0c6b3c31af73L,
 4107          0x3376379f4fc365L, 0x3570b3771add4dL }
 4108    },
 4109    {
 4110        { 0x9061ec183c3494L, 0xaf2f28d677bc95L, 0x6fe72793bf8768L,
 4111          0xc5f50e30fa86d8L, 0x6c03060a3293ceL, 0x4d53357e2355a6L,
 4112          0x43a59eae4df931L, 0x6f48f5d13b79c6L },
 4113        { 0xa4d073dddc5192L, 0x6d0e318a65773fL, 0x1008792765de9eL,
 4114          0xa724ed239a0375L, 0x510ff1497d7c9eL, 0x251f6225baa863L,
 4115          0x86464fe648a351L, 0xf85e98fd50fd91L }
 4116    },
 4117    {
 4118        { 0x29c963486ee987L, 0x93e8e5210dcc9fL, 0xa1fc4d1c910b1fL,
 4119          0x015acacfeb603eL, 0xc9f25f80844a5fL, 0x50de93c73f4dacL,
 4120          0x1758783310a4aaL, 0x544d570358f106L },
 4121        { 0x4eeec7b1dc68caL, 0x6238e6fe00fbcbL, 0x34d394cb4e83c9L,
 4122          0x764ffa22292656L, 0x5614cd1f641f2eL, 0x4252eb69e07234L,
 4123          0xcbaef4568d2ba4L, 0x8c9c5508a98b17L }
 4124    },
 4125    {
 4126        { 0xf235d9d4106140L, 0x1bf2fc39eb601eL, 0x6fb6ca9375e0c3L,
 4127          0x4bf5492c0024d2L, 0x3d97093eb54cc6L, 0xc60931f5c90cb5L,
 4128          0xfa88808fbe0f1aL, 0xc22b83dd33e7d4L },
 4129        { 0x9cfec53c0abbf5L, 0x52c3f0a93723dfL, 0x0622b7e39b96b6L,
 4130          0x300de281667270L, 0x50b66c79ef426aL, 0x8849189c6eb295L,
 4131          0xeaec3a98914a7eL, 0x7ed56b0c4c99e0L }
 4132    },
 4133},
 4134{
 4135    {
 4136        { 0x7926403687e557L, 0xa3498165310017L, 0x1b06e91d43a8fdL,
 4137          0xf201db46ac23cbL, 0x6f172ad4f48750L, 0x5ed8c8ce74bd3eL,
 4138          0x492a654daba648L, 0x123010ba9b64ffL },
 4139        { 0xa83125b6e89f93L, 0x3a3b0b0398378aL, 0x9622e0b0aebe7cL,
 4140          0xb9cbfdc49512a4L, 0x13edffd6aaf12aL, 0x555dff59f5eafdL,
 4141          0x3cba6fe1212efaL, 0xd07b744d9bb0f8L }
 4142    },
 4143    {
 4144        { 0x45732b09a48920L, 0xf3080fc13ff36dL, 0x9347395de8f950L,
 4145          0x14d025a382b897L, 0x60c5a7404d72adL, 0x30be7e511a9c71L,
 4146          0x43ffabd31ac33aL, 0x97b06f335cbb14L },
 4147        { 0xe4ff5c57740de9L, 0x5fed090aacf81eL, 0x97196eee8b7c9dL,
 4148          0x316dcd1045910bL, 0x7a2b2f55ad8c63L, 0x674fffdc5b03bbL,
 4149          0xc1cd133e65953cL, 0x3c060520a83556L }
 4150    },
 4151    {
 4152        { 0x797c3f6091c23dL, 0x2ea2de339c9c05L, 0x5d958b4a31f67cL,
 4153          0xf97afe5d5f088cL, 0xbcfbd2a0b37243L, 0xc43ad3eeca630cL,
 4154          0xb92a33742845e0L, 0x970bff7a9a0f16L },
 4155        { 0x86355115970a79L, 0xcee332ef205928L, 0x2c58d70c04c208L,
 4156          0xdbfe19a3f5e5bfL, 0x8f8f2c88e51c56L, 0xb61f58e8e2da75L,
 4157          0x4046a19624d93fL, 0x7de64dbe1f9538L }
 4158    },
 4159    {
 4160        { 0xd018e1cc2d850eL, 0x8cdb64363a723cL, 0x9a65abe90a42afL,
 4161          0xfeece9616f20ccL, 0xc906800d5cff56L, 0x0acf23a3f0deedL,
 4162          0x2143061728dd3aL, 0x66276e2b8ce34cL },
 4163        { 0x23700dc73cc9c7L, 0xdb448515b1778bL, 0x330f41e4aab669L,
 4164          0x2f5aabcf5282a4L, 0xff837a930f9e01L, 0x1a1eb2f901cc98L,
 4165          0xd3f4ed9e69bd7fL, 0xa6b11418a72a7dL }
 4166    },
 4167    {
 4168        { 0x34bde809ea3b43L, 0x5ddcb705ced6aeL, 0x8257f5b95a6cb8L,
 4169          0xaac205dc77dcb8L, 0x77d740d035b397L, 0xca7847fcf7e0a6L,
 4170          0x9404dd6085601bL, 0x0a5046c457e4f9L },
 4171        { 0xcaee868bc11470L, 0xb118796005c5f6L, 0xcc04976ec79173L,
 4172          0x7f51ba721f6827L, 0xa8e3f0c486ff7eL, 0x327163af87838cL,
 4173          0xcf2883e6d039fdL, 0x6fb7ab6db8b0e2L }
 4174    },
 4175    {
 4176        { 0x8ca5bac620d669L, 0xff707c8ed7caa9L, 0xdaefa2b927909bL,
 4177          0x1d2f9557029da3L, 0x52a3ba46d131a0L, 0xe5a94fd3ab1041L,
 4178          0x508917799bc0aeL, 0xf750354fa1bd16L },
 4179        { 0xdd4e83a6cd31fdL, 0xd33505392fac84L, 0xf914cbc1691382L,
 4180          0x669683fda6ade6L, 0x69446438878513L, 0x429d3cc4b1a72dL,
 4181          0x655c46a61eec36L, 0x881eded4bc4970L }
 4182    },
 4183    {
 4184        { 0x5b39d377ca647fL, 0x41533c1e917b34L, 0xea2aeb57daf734L,
 4185          0xf1ef1eb1286560L, 0x582f2e008e0473L, 0x5913d7d5edc74aL,
 4186          0x588c7ec3c1e754L, 0xbd6db057146fe1L },
 4187        { 0x3b0d49e7634907L, 0x4c65ce4e43b9ccL, 0xb87e9582d92d5bL,
 4188          0x05135727ab1519L, 0x03ec0848c3aed0L, 0x4d7aa21561a641L,
 4189          0xe5f821199e92adL, 0x379b55f48a457cL }
 4190    },
 4191    {
 4192        { 0x8317c34d6a8442L, 0xb0ab4a5ae499daL, 0xebcb16e720e8ebL,
 4193          0xfd5c5639a96908L, 0xcab4d67ad23acfL, 0xa600a79bcdf748L,
 4194          0x18a6340a2a6a51L, 0xf2f415c3aabd69L },
 4195        { 0xdb38a4f747258aL, 0xb6ea5602e24415L, 0xfad1ea9f1f7655L,
 4196          0x4e27eb5c957684L, 0xf8283e1b2e1cfcL, 0x8f83bd6aa6291cL,
 4197          0x28d23b55619e84L, 0xb9f34e893770a4L }
 4198    },
 4199},
 4200{
 4201    {
 4202        { 0x1bb84377515fb1L, 0xac73f2a7b860a6L, 0x78afdfa22b390fL,
 4203          0x815502b66048aaL, 0xf513b9785bf620L, 0x2524e653fc5d7cL,
 4204          0xa10adc0178c969L, 0xa1d53965391c8dL },
 4205        { 0x09fccc5a8bcc45L, 0xa1f97d67710e1eL, 0xd694442897d0a1L,
 4206          0x7030beb5f42400L, 0xdebe08c7127908L, 0x96b715c2187637L,
 4207          0xc598250b528129L, 0x0f62f45a1ccb07L }
 4208    },
 4209    {
 4210        { 0x8404941b765479L, 0xfdecff45837dc4L, 0x1796372adbd465L,
 4211          0x5f84c793159806L, 0x6d2e46b6aaad34L, 0xd303b4a384b375L,
 4212          0x440acd5b392002L, 0x4f2a4a7c475e87L },
 4213        { 0x038e1da5606fc2L, 0x2d821c29c2f050L, 0xc074cb3f139db4L,
 4214          0xde2fee74ec59beL, 0x5a819eea84ed59L, 0xd65c62c3e98711L,
 4215          0x72eb440b9723c1L, 0xb92775401be611L }
 4216    },
 4217    {
 4218        { 0x929fe64ab9e9fcL, 0x04379fd0bf1e85L, 0xb322093bc28ee3L,
 4219          0x78ac4e2e4555e1L, 0xdb42b58abc5588L, 0x1c1b5e177c8b12L,
 4220          0xf6d78dd40366c4L, 0xc21ff75bdae22eL },
 4221        { 0x1e3d28ea211df2L, 0xc5a65a13617c0aL, 0x3fa02c058140d5L,
 4222          0x155c346b62d10cL, 0xc9cf142e48268fL, 0xdc140831993bc3L,
 4223          0x07c44d40ee69dcL, 0x61699505e2ac46L }
 4224    },
 4225    {
 4226        { 0x44e4a51d0fb585L, 0x00846bef1f3ce8L, 0xedef39a8e2de1eL,
 4227          0x430afe333b3934L, 0xac78b054337188L, 0x0f39de4c9a3f24L,
 4228          0x039edddc9ae6a4L, 0xf4701578eacd51L },
 4229        { 0x1e396949a2f31aL, 0xc8a40f4b19a8b1L, 0xdddd10c9d239d8L,
 4230          0xf974245887e066L, 0xfdb51113ea28c6L, 0xb5af0fbe1122a9L,
 4231          0xd30c89f36e0267L, 0x7b1c0f774f024cL }
 4232    },
 4233    {
 4234        { 0x1ec995607a39bfL, 0x1c3ecf23a68d15L, 0xd8a5c4e4f59fe9L,
 4235          0xacb2032271abc3L, 0xbc6bdf071ef239L, 0x660d7abb39b391L,
 4236          0x2e73bb2b627a0eL, 0x3464d7e248fc7eL },
 4237        { 0xaa492491666760L, 0xa257b6a8582659L, 0xf572cef5593089L,
 4238          0x2f51bde73ca6bfL, 0x234b63f764cff5L, 0x29f48ead411a35L,
 4239          0xd837840afe1db1L, 0x58ec0b1d9f4c4bL }
 4240    },
 4241    {
 4242        { 0x8e1deba5e6f3dcL, 0xc636cf406a5ff7L, 0xe172b06c80ca0fL,
 4243          0x56dc0985ffb90aL, 0x895c2189a05e83L, 0x6ddfaec7561ac2L,
 4244          0xaa3574996283a0L, 0x6dfb2627e7cd43L },
 4245        { 0x6576de52c8ca27L, 0x6a4a87249018ebL, 0x00c275c5c34342L,
 4246          0xe34805ad2d90c4L, 0x651b161d8743c4L, 0xb3b9d9b7312bf3L,
 4247          0x5d4b8e20bf7e00L, 0x8899bdf78d3d7eL }
 4248    },
 4249    {
 4250        { 0x9644ad8faa9cd1L, 0x34c98bf6e0e58eL, 0x6022aad404c637L,
 4251          0x2a11a737ac013bL, 0x5bdd1035540899L, 0x2e675721e022a4L,
 4252          0xe32045db834c33L, 0x74a260c2f2d01cL },
 4253        { 0x20d59e9c48841cL, 0x05045dde560359L, 0xeba779cac998acL,
 4254          0x5bed10c00a6218L, 0x25d4f8e5327ef4L, 0xa2784744597794L,
 4255          0xefd68ca831d11eL, 0x9ad370d934446aL }
 4256    },
 4257    {
 4258        { 0x3089b3e73c92acL, 0x0ff3f27957a75cL, 0x843d3d9d676f50L,
 4259          0xe547a19d496d43L, 0x68911c98e924a4L, 0xfab38f885b5522L,
 4260          0x104881183e0ac5L, 0xcaccea9dc788c4L },
 4261        { 0xfbe2e95e3c6aadL, 0xa7b3992b3a6cf1L, 0x5302ec587d78b1L,
 4262          0xf589a0e1826100L, 0x2acdb978610632L, 0x1e4ea8f9232b26L,
 4263          0xb21194e9c09a15L, 0xab13645849b909L }
 4264    },
 4265},
 4266{
 4267    {
 4268        { 0x92e5d6df3a71c1L, 0x349ed29297d661L, 0xe58bd521713fc9L,
 4269          0xad999a7b9ddfb5L, 0x271c30f3c28ce0L, 0xf6cd7dc2a9d460L,
 4270          0xaf728e9207dec7L, 0x9c2a532fcb8bf0L },
 4271        { 0xd70218468bf486L, 0x73b45be7ab8ea8L, 0xddfc6581795c93L,
 4272          0x79416606bb8da2L, 0x658f19788e07a2L, 0xa9d5b0826d3d12L,
 4273          0x4d7c95f9535b52L, 0xad55e25268ef8aL }
 4274    },
 4275    {
 4276        { 0x94a9b0ba2bc326L, 0x485ecc5167e5f3L, 0x8340bc7c97fc74L,
 4277          0x06f882b07aaa5cL, 0x4b57455849698aL, 0xd9281ebb36a0baL,
 4278          0x8918c6c8b8108fL, 0xedd1eea5b50d1dL },
 4279        { 0x94d737d2a25f50L, 0x0e5a8232446ad0L, 0x02a54357ced3e2L,
 4280          0xb09a92a4af8cedL, 0x85fc498eeecef2L, 0x06a02b9e71e3d4L,
 4281          0x00ad30784bb49aL, 0xf61585e64a5b4aL }
 4282    },
 4283    {
 4284        { 0x915f6d8b86a4c9L, 0x944bc6ba861e1fL, 0x3091ca754465efL,
 4285          0x11df859eb53a38L, 0xd44dde50144679L, 0x6c8da9a0994eddL,
 4286          0xeebcebf91241efL, 0xc419354c2f6859L },
 4287        { 0x1f4969349581b6L, 0x5712b10bb26cb4L, 0x8fcaa41b09fd59L,
 4288          0xbd39aad72e22e3L, 0xf70e794b1199b0L, 0xdf63c0cc6f863dL,
 4289          0xd58166fee9df4fL, 0xb9224eac45e70bL }
 4290    },
 4291    {
 4292        { 0x80072face525f4L, 0x8597bd666a5502L, 0xf65e203dbc9725L,
 4293          0xeccfbe3f2222a4L, 0x490aa422339834L, 0x134889162489e8L,
 4294          0xaff3f80a735084L, 0x69d53d2f3f1bd6L },
 4295        { 0xb123ffc813341aL, 0x359084c1173848L, 0x751425ed29b08dL,
 4296          0x1edda523890ad4L, 0xb64974c607cf20L, 0xa8c8cb8b42ac7cL,
 4297          0xd5cb305edd42e5L, 0xf3034dc44c090aL }
 4298    },
 4299    {
 4300        { 0x428921dbb18e19L, 0x4cfd680fed2127L, 0x671144d92ac8c3L,
 4301          0x2121901132c894L, 0x25d0e567604cd9L, 0xa372223afbc2a0L,
 4302          0xcf98a5256c16f7L, 0x71f129ab5459e1L },
 4303        { 0xf4afdc5b668b2eL, 0xc5d937a0c2d410L, 0xe2cc4af285d54aL,
 4304          0x1c827778c53e18L, 0x270f2c369a92f6L, 0x799f9ac616327aL,
 4305          0xce658d9d4246f2L, 0x0fb681ffb12e36L }
 4306    },
 4307    {
 4308        { 0xc5ab11ee0690feL, 0x80261e33f74249L, 0x8eb4b4758c1cf2L,
 4309          0x4895a80184ae9bL, 0x4a4bdb6d3e27ebL, 0xa7a1638bfd251cL,
 4310          0x29ec144417a7e3L, 0xd0736093f1b960L },
 4311        { 0xcb1ed8349c73d1L, 0x33fc84a8d1945aL, 0x9f668dbe965118L,
 4312          0x3331743a82811fL, 0xf394dec28ba540L, 0x44ce601654a454L,
 4313          0x240dbb63623645L, 0xf07e7f22e61048L }
 4314    },
 4315    {
 4316        { 0x7c9f1763d45213L, 0x3eefa709c1f77fL, 0xde3c3c51b48350L,
 4317          0x4a2bc649d481a7L, 0xfd4a58a7874f3dL, 0x96655d4037b302L,
 4318          0x945252868bf5abL, 0x1b6d46a75177f6L },
 4319        { 0x7de6763efb8d00L, 0xb2c1ba7a741b7bL, 0xcca6af47bae6edL,
 4320          0xe4378ca5b68b3fL, 0xfb757deaf71948L, 0x7f07b5ebc6ac99L,
 4321          0x752a56827d636dL, 0xc8b7d1d4b8a34fL }
 4322    },
 4323    {
 4324        { 0x76cb78e325331bL, 0x41f41c9add2eedL, 0x03db2385c5f623L,
 4325          0xbbc1d177102fa2L, 0x80f137a60182ecL, 0xfdd856955adf15L,
 4326          0x4f53f5ee3373dcL, 0xec6faf021b669bL },
 4327        { 0x7d4e9830b86081L, 0x10d3cd9f2d979cL, 0x0f48f5824a22c8L,
 4328          0x86c540c02f99eeL, 0xf4c66545e6c5fcL, 0xaf0c588bc404c8L,
 4329          0x2e6edbd423118aL, 0x86e32e90690eabL }
 4330    },
 4331},
 4332{
 4333    {
 4334        { 0x1d12656dfbfa6fL, 0xa4980957646018L, 0x2f1071bc3597d0L,
 4335          0x3df83f91dda80aL, 0x5853e28f3ae449L, 0xb853d319e19aadL,
 4336          0x863f01ba0d8a46L, 0xa84fca62fef108L },
 4337        { 0xbe4c0b7fb84de9L, 0x40a03dcc0727bfL, 0x781f841b18575cL,
 4338          0x6a63045466cddbL, 0x6be758205dc7a2L, 0x420f87f07ae811L,
 4339          0x28082423bf96c8L, 0x723998c51c6821L }
 4340    },
 4341    {
 4342        { 0x38ab64181f5863L, 0xd82ecbd05ff9e1L, 0x339c94ea065856L,
 4343          0x143054aa45156dL, 0xe6d64bf065628cL, 0xe530086a938589L,
 4344          0x22d3a49385d79bL, 0x0b107900ab8245L },
 4345        { 0xb0d80fbca387b5L, 0x698206e35551d7L, 0x199685da10bb73L,
 4346          0xa8e5fa89107378L, 0x36e5724d99dbbfL, 0xd67f476d581b03L,
 4347          0x7a15be788dd1e6L, 0x8dac8e4e5baa31L }
 4348    },
 4349    {
 4350        { 0x4d5d88fe170ef8L, 0xb6ba5de1e9e600L, 0x4a89d41edeabc5L,
 4351          0x737c66b8fac936L, 0x8d05b2365c3125L, 0x85a5cbcb61b68eL,
 4352          0x8fea62620a6af9L, 0x85115ded8b50ecL },
 4353        { 0x5430c8d6a6f30bL, 0x8bef9cf8474295L, 0x0648f5bbe77f38L,
 4354          0xfe2b72f9e47bd7L, 0xad6c5da93106e2L, 0x4fa6f3dfa7a6c3L,
 4355          0xdcd2ed8b396650L, 0x7de1cce1157ef9L }
 4356    },
 4357    {
 4358        { 0x70a5f6c1f241d1L, 0x6c354d8798cd5cL, 0x23c78381a729fbL,
 4359          0xcff8f15523cbdaL, 0x5683ff43493697L, 0xef7dbab7534f53L,
 4360          0xd7bd08e2243d53L, 0x6f644cbf8072a9L },
 4361        { 0xac960f9b22db63L, 0xa97f41723af04dL, 0x692b652d9798afL,
 4362          0x0e35967fedb156L, 0x14b5e50dfe6ee8L, 0x7597edeb411070L,
 4363          0x116f3ce442b3f9L, 0xe9b5ae81b2b6dbL }
 4364    },
 4365    {
 4366        { 0xf4385ee2315930L, 0xc8d029827a8740L, 0x7907a8dd934a43L,
 4367          0x20bc946c582191L, 0xa4acb3e6a405e7L, 0x8c1d6c843df2f5L,
 4368          0x9df1593991f0b5L, 0xbb9df984d9be9dL },
 4369        { 0x63620088e4b190L, 0xee1421eada3a88L, 0xb84f0ccf93b027L,
 4370          0x7a5d6678e95091L, 0x3974462f3e3704L, 0xfa6fb5ec593e98L,
 4371          0x44b6cf7a6477d2L, 0xe885b57b09a562L }
 4372    },
 4373    {
 4374        { 0x6e339e909a0c02L, 0x57afff00e75f29L, 0x797d8d6fb7db03L,
 4375          0xc6e11a3d25a236L, 0x643ce1c0107260L, 0xe644ec462eae1cL,
 4376          0x821d5b83f5a3f5L, 0xa8ad453c0579d6L },
 4377        { 0x6518ed417d43a4L, 0x46e76a53f87ccdL, 0xd6cbaabf9bef95L,
 4378          0x25688324f7cbcfL, 0x367159a08476b4L, 0x1d1b401be6d324L,
 4379          0x348cb98a605026L, 0x144f3fe43b6b1eL }
 4380    },
 4381    {
 4382        { 0xbabbd787b1822cL, 0xd34ba7e2aa51f8L, 0x086f1cc41fbea4L,
 4383          0x96f7eac746f3d9L, 0xad97f26281ecafL, 0x751a905a14ee2cL,
 4384          0xb4e7fe90d7335fL, 0x0d97b8f4892ff0L },
 4385        { 0xdb8a3155a5c40eL, 0x64e5de77ba567bL, 0x4f155f71eefe88L,
 4386          0xe2297e9fb6fbf4L, 0xfe24bf96c16be5L, 0x2251847cdd83e2L,
 4387          0x13ac2c85eda444L, 0x49d1b85283275fL }
 4388    },
 4389    {
 4390        { 0xca08731423e08fL, 0x7046bb087d2f14L, 0x876f10c3bc846cL,
 4391          0x2202b76358fbe3L, 0x0d4fc1c0e26ac6L, 0x1fc748bb986881L,
 4392          0x609e61c8384a18L, 0x28a72d60d88e00L },
 4393        { 0x1332a3178c6e2fL, 0x0367919b3526a4L, 0x53989e4698fe3eL,
 4394          0x14b1145b16a99bL, 0xef9ec80ddbb75fL, 0x76256240e53955L,
 4395          0x54e087a8744ae1L, 0xce50e8a672b875L }
 4396    },
 4397},
 4398{
 4399    {
 4400        { 0x4c88b2ba29629cL, 0x946559c7b2642fL, 0x933d432f7ebe4cL,
 4401          0x97109b663632c9L, 0x799b3fbe53184dL, 0xd4628710f069a6L,
 4402          0x0c182a13a68351L, 0x974a8399a2437aL },
 4403        { 0x29f19972a70278L, 0x01b98b6d9c424bL, 0xd85a60b08f4c37L,
 4404          0xcc3523f2b1da15L, 0xf922115ddffb0fL, 0xee0fe4dde84ae2L,
 4405          0x810440c55365beL, 0xd2f66391a457e8L }
 4406    },
 4407    {
 4408        { 0x5e6879fe2ddd05L, 0x92a7545abdfc61L, 0x7dedd63a5cede8L,
 4409          0x8a03b3f70df4bdL, 0xa5d1f6591f6cbbL, 0x372fde610f3fb2L,
 4410          0x4537f9ea9dee05L, 0x7eb85bbdf7aa50L },
 4411        { 0x963edf8e8c504dL, 0x53c8dcae7bdb6bL, 0xa246e4c6fedf2dL,
 4412          0x75533400c55bdeL, 0x2aa748d0270a54L, 0xadb6cf005860ddL,
 4413          0x8d314509b84763L, 0x626720deb405efL }
 4414    },
 4415    {
 4416        { 0xa3709ae6601328L, 0x68e94fd2ac2478L, 0x38793439d5d247L,
 4417          0xfa467af392c198L, 0x49e7b0d15df607L, 0x8c5812261792a8L,
 4418          0x79f76581d3762fL, 0xaa38895244a39dL },
 4419        { 0xef60af9c5cd0bcL, 0x2b0db53a33b3bbL, 0xe3e0b1f251015dL,
 4420          0xc608afce64489eL, 0xe52b05703651aaL, 0x1dda8b91c6f7b9L,
 4421          0x833f022ff41893L, 0x58eb0a0192818cL }
 4422    },
 4423    {
 4424        { 0x6c1300cfc7b5a7L, 0x6d2ffe1a83ab33L, 0x7b3cd019c02eefL,
 4425          0x6c64559ba60d55L, 0x2e9c16c19e2f73L, 0x11b24aedbe47b1L,
 4426          0xc10a2ee1b8153bL, 0x35c0e081e02e1aL },
 4427        { 0xa9f470c1dd6f16L, 0x4ea93b6f41a290L, 0xac240f825ee03fL,
 4428          0x6cd88adb85aabdL, 0x378a64a1be2f8fL, 0xbf254da417bac1L,
 4429          0x7e4e5a59231142L, 0x057aadc3b8c057L }
 4430    },
 4431    {
 4432        { 0x607c77a80af479L, 0xd3e01ff5ccdf74L, 0x9680aaf101b4c7L,
 4433          0xd2a7be12fc50a6L, 0x92a788db72d782L, 0x35daf2e4640b52L,
 4434          0xc170d6939e601cL, 0x16e05f57b25c2fL },
 4435        { 0x47a42a66fe37f8L, 0xeb74271beca298L, 0x401e11e179da16L,
 4436          0xfb8da82aa53873L, 0xd657d635bb4783L, 0x6847758fcea0b1L,
 4437          0x2f261fb0993154L, 0x868abe3592853aL }
 4438    },
 4439    {
 4440        { 0x1a4c54335766abL, 0xa1c84d66f4e4eaL, 0x5d737a660ba199L,
 4441          0x4a7b1e298b15a2L, 0x207877ffd967d3L, 0xcaec82dc262b4dL,
 4442          0x0b278494f2a37dL, 0x34781416ac1711L },
 4443        { 0x28e3df18fc6856L, 0xbec03f816d003fL, 0x2bd705bff39ebdL,
 4444          0x1dcb53b2d776d3L, 0xabafa7d5c0e7ceL, 0x5b9c8c24a53332L,
 4445          0xe9f90d99d90214L, 0x789747ec129690L }
 4446    },
 4447    {
 4448        { 0x94d3c3954e2dfaL, 0x919f406afb2a8fL, 0x159ef0534e3927L,
 4449          0xcdb4d14a165c37L, 0xa23e5e8288f337L, 0x95867c00f90242L,
 4450          0x2528150e34e781L, 0x104e5016657b95L },
 4451        { 0x695a6c9bcdda24L, 0x609b99523eb5faL, 0xcbce4f516a60f8L,
 4452          0xec63f7df084a29L, 0x3075ada20c811fL, 0x129a1928c716a1L,
 4453          0xd65f4d4cd4cd4aL, 0xe18fa9c62188beL }
 4454    },
 4455    {
 4456        { 0x1672757bac60e3L, 0x525b3b9577144bL, 0x38fc997887055bL,
 4457          0x7a7712631e4408L, 0x884f173cba2fcfL, 0x783cbdc5962ac0L,
 4458          0x4f3ed0a22287dcL, 0x8a73e3450e20e6L },
 4459        { 0xe7a1cd0d764583L, 0x8997d8d0d58ee6L, 0x0ea08e9aa13ed6L,
 4460          0xed478d0cf363cbL, 0x068523d5b37bf4L, 0x8b5a9e8783f13cL,
 4461          0xde47bbd87528a9L, 0xd6499cccaec313L }
 4462    },
 4463},
 4464{
 4465    {
 4466        { 0x54781bbe09859dL, 0x89b6e067f5e648L, 0xb006dfe7075824L,
 4467          0x17316600717f68L, 0x9c865540b4efe2L, 0xdbdb2575e30d8eL,
 4468          0xa6a5db13b4d50fL, 0x3b5662cfa47bebL },
 4469        { 0x9d4091f89d4a59L, 0x790517b550a7dcL, 0x19eae96c52965eL,
 4470          0x1a7b3c5b5ed7a4L, 0x19e9ac6eb16541L, 0x5f6262fef66852L,
 4471          0x1b83091c4cda27L, 0xa4adf6f3bf742bL }
 4472    },
 4473    {
 4474        { 0x8cc2365a5100e7L, 0x3026f508592422L, 0xa4de79a3d714d0L,
 4475          0xefa0d3f90fcb30L, 0x126d559474ada0L, 0xd68fa77c94350aL,
 4476          0xfa80e570c7cb45L, 0xe042bb83985fbfL },
 4477        { 0x51c80f1fe13dbaL, 0xeace234cf055d7L, 0x6b8197b73f95f7L,
 4478          0x9ca5a89dcdbe89L, 0x2124d5fdfd9896L, 0x7c695569e7ca37L,
 4479          0x58e806a8babb37L, 0x91b4cc7baf99ceL }
 4480    },
 4481    {
 4482        { 0x874e253197e968L, 0x36277f53160668L, 0x0b65dda8b95dbeL,
 4483          0x477a792f0872a1L, 0x03a7e3a314268dL, 0xa96c8420c805c7L,
 4484          0xb941968b7bc4a8L, 0x79dce3075db390L },
 4485        { 0x577d4ef6f4cc14L, 0x5b0d205b5d1107L, 0x64ff20f9f93624L,
 4486          0x0b15e315034a2fL, 0x3a0f6bb8b6f35cL, 0x0399a84e0d0ec5L,
 4487          0xd0e58230d5d521L, 0xdeb3da1cb1dd54L }
 4488    },
 4489    {
 4490        { 0x24684ae182401aL, 0x0b79c1c21a706fL, 0xe1d81f8d8998afL,
 4491          0xadf870f4bb069fL, 0xd57f85cf3dd7aaL, 0x62d8e06e4a40f8L,
 4492          0x0c5228c8b55aa1L, 0xc34244aa9c0a1aL },
 4493        { 0xb5c6cf968f544eL, 0xa560533de23ab7L, 0xaa5512047c690cL,
 4494          0x20eda5b12aaaa6L, 0xea0a49a751a6a0L, 0x6d6cfff2baa272L,
 4495          0x95b756ebf4c28aL, 0xd747074e6178a4L }
 4496    },
 4497    {
 4498        { 0xa27b453221a94bL, 0xd56ad13e635f20L, 0x03574b08c95117L,
 4499          0xf0ee953ed30b70L, 0xb48d733957796fL, 0xf5d958358c336bL,
 4500          0x6170cd882db529L, 0xcd3ef00ec9d1eaL },
 4501        { 0xd1bea0de4d105fL, 0xd2d670fad6a559L, 0x652d01252f9690L,
 4502          0x5f51fb2c2529b0L, 0x5e88bf0e89df2aL, 0x9a90684cd686e4L,
 4503          0xf519ccd882c7a1L, 0x933a0dfc2f4d37L }
 4504    },
 4505    {
 4506        { 0x0720a9f3f66938L, 0x99356b6d8149dfL, 0xb89c419a3d7f61L,
 4507          0xe6581344ba6e31L, 0xd130561ab936c8L, 0x0625f6c40dbef1L,
 4508          0x7b2d6a2b6bb847L, 0x3ca8b2984d506bL },
 4509        { 0x6bf729afb011b0L, 0x01c307833448c9L, 0x6ae95080837420L,
 4510          0xf781a8da207fb8L, 0xcc54d5857562a9L, 0xc9b7364858c5abL,
 4511          0xdfb5035359908fL, 0x8bf77fd9631138L }
 4512    },
 4513    {
 4514        { 0xf523365c13fbb1L, 0x88532ea9993ed5L, 0x5318b025a73492L,
 4515          0x94bff5ce5a8f3cL, 0x73f9e61306c2a0L, 0x00abbacf2668a3L,
 4516          0x23ce332076237dL, 0xc867f1734c0f9bL },
 4517        { 0x1e50995cfd2136L, 0x0026a6eb2b70f8L, 0x66cb1845077a7dL,
 4518          0xc31b2b8a3b498eL, 0xc12035b260ec86L, 0x1cbee81e1b3df0L,
 4519          0xfd7b8048d55a42L, 0x912a41cf47a8c8L }
 4520    },
 4521    {
 4522        { 0xab9ffe79e157e3L, 0x9cfe46d44dc158L, 0x435551c8a4a3efL,
 4523          0x638acc03b7e3a8L, 0x08a4ebd49954a7L, 0x295390c13194f7L,
 4524          0x3a2b68b253892aL, 0xc1662c225d5b11L },
 4525        { 0xcfba0723a5d2bbL, 0xffaf6d3cc327c9L, 0x6c6314bc67e254L,
 4526          0x66616312f32208L, 0xf780f97bea72e1L, 0x495af40002122fL,
 4527          0x3562f247578a99L, 0x5f479a377ce51eL }
 4528    },
 4529},
 4530{
 4531    {
 4532        { 0x91a58841a82a12L, 0xa75417580f3a62L, 0x399009ff73417aL,
 4533          0x2db1fb90a8c5cdL, 0x82c8912c046d51L, 0x0a3f5778f18274L,
 4534          0x2ad0ede26ccae2L, 0x7d6bd8b8a4e9c2L },
 4535        { 0xaa0d7974b3de44L, 0xf8658b996ac9bbL, 0x31e7be25f6c334L,
 4536          0x23836ce4df12c9L, 0x029027b59eb5c9L, 0x2f225315b8649dL,
 4537          0xa0fdf03d907162L, 0x101d9df9e80226L }
 4538    },
 4539    {
 4540        { 0xf12037a9a90835L, 0xd2d0882f0222a7L, 0xeaf8d40c3814e2L,
 4541          0xa986dc68b8146bL, 0x147a3318504653L, 0x734e0032feaf67L,
 4542          0x6f27bbf602bec5L, 0xa1e21f16a688f3L },
 4543        { 0x5a8eeab73c4ae5L, 0x4dbaddbe70b412L, 0x871cebacfd2af1L,
 4544          0x18603827d7a286L, 0x024059db5bb401L, 0x2557c093c39b73L,
 4545          0xfc5a7116681697L, 0xf881c0f891b57cL }
 4546    },
 4547    {
 4548        { 0x3c443f18ea191aL, 0x76faa58d700ad0L, 0x6fe6cfabe7fcbfL,
 4549          0xaefc5288990ef7L, 0x44e30fa80004ccL, 0xc744adc6d8ef85L,
 4550          0xafcd931912df70L, 0xf62a9d1572a6d8L },
 4551        { 0x47158a03219f27L, 0x76fb27ead73136L, 0x41bb2adcc2d614L,
 4552          0x8858cb9de1ec21L, 0xab402c45f15866L, 0x6675d5bbc82bbfL,
 4553          0x4ee9dd6f1b28d3L, 0x875884fe373c17L }
 4554    },
 4555    {
 4556        { 0x17806dd2a67d36L, 0xaa23a8632c9ec1L, 0xd914126fc1ee55L,
 4557          0xbf8f7bd653701bL, 0x9b0111aea71367L, 0x61fd4aba98e417L,
 4558          0xeb45298561c5a5L, 0x2187b0ae7af394L },
 4559        { 0x71f12db1616ddeL, 0x061760907da7b4L, 0x414d37602ddb04L,
 4560          0x1100be7286fb58L, 0xd7cf88d6f0d95bL, 0x8539d23746d703L,
 4561          0xdccc9d64e23d73L, 0xaeef1d2ec89680L }
 4562    },
 4563    {
 4564        { 0x82ccf1a336508dL, 0xa128c1f5bad150L, 0x551d8c029a188dL,
 4565          0xef13dd4771404fL, 0xdd67696c37b993L, 0x428c0e20dddad2L,
 4566          0x222278d038c94cL, 0x1a24a51078e3f2L },
 4567        { 0xd297fe6edb0db9L, 0x00988d28251a87L, 0xbb946f8bfaa0d7L,
 4568          0x380f7b9df45ea0L, 0x8526415afccf5eL, 0x909bfbfe9ec7bcL,
 4569          0x2ed7093124755cL, 0x436802889404e2L }
 4570    },
 4571    {
 4572        { 0x21b9fa036d9ef1L, 0xfd64b7ce433526L, 0xd9d7eb76544849L,
 4573          0x201620cd5b54b3L, 0x25fab3dbb61159L, 0x90d4eb0c53e0d3L,
 4574          0xba098319e74772L, 0x8749658ec1681cL },
 4575        { 0xa354349fec316bL, 0x639a9b1a743ea2L, 0x2e514ca37c50e6L,
 4576          0x9f4a4fddbaf6c5L, 0x0df87ef6f511c9L, 0xadd4cef0c00d95L,
 4577          0x401c0ebaa1433fL, 0x3c3a59ebb38af9L }
 4578    },
 4579    {
 4580        { 0x8706245f0e7dcaL, 0xad238cd3fb29caL, 0x03304439b7d8f0L,
 4581          0xfdcd6e6154f495L, 0xc67e24a7d4ad09L, 0x1b209e85438390L,
 4582          0xf893b81b0c211eL, 0x1aa86f07e11e36L },
 4583        { 0x2cca3ffedea8b1L, 0x7eedd073b306cdL, 0x78e37bc12ee222L,
 4584          0x257870bbc42a1dL, 0x5fb2bb91fbd397L, 0x470247009d6c60L,
 4585          0x11748a320bdc36L, 0x3ff24dc04280e8L }
 4586    },
 4587    {
 4588        { 0x0eb1c679839b52L, 0x5bcca27acfbd32L, 0xb506c1674898e3L,
 4589          0x37d662e2489e5eL, 0x8dc0731f694887L, 0x571149ef43f1dcL,
 4590          0x6430a3766d63dcL, 0x0d2640eb50dd70L },
 4591        { 0x2b561493b2675bL, 0x1b4806588c604fL, 0x55c86a8aafbabcL,
 4592          0xa7b9447608aabaL, 0xa42f63504cad8cL, 0x0f72b1dcee7788L,
 4593          0x1d68374755d99aL, 0xd7cdd8f5be2531L }
 4594    },
 4595},
 4596{
 4597    {
 4598        { 0x67873bdbcdfee1L, 0xa5a0c0afcd0a3fL, 0x59389f93cfa3d4L,
 4599          0x14e945ce1c865cL, 0x62d2f8e1d588ccL, 0xfd02f8a8e228b4L,
 4600          0x208f791b42b649L, 0x0e0dff1ab397adL },
 4601        { 0x30ac3d90bc6eb1L, 0xf14f16a5f313bbL, 0x70fa447e2a0ad2L,
 4602          0x6e406855a0db84L, 0xd52282be32e1e7L, 0x315a02a15ca330L,
 4603          0x9a57a70867c2feL, 0x55f07650054923L }
 4604    },
 4605    {
 4606        { 0x2d729f6c0cf08fL, 0x6b80138ebaf57fL, 0x6285bcc0200c25L,
 4607          0xee845192cd2ac7L, 0x28fce4d922778aL, 0x761325ccd1011cL,
 4608          0xd01f2475100e47L, 0xc7a1665c60d8e1L },
 4609        { 0x950966d7ceb064L, 0x0a88e8578420dbL, 0x44f2cfce096f29L,
 4610          0x9d9325f640f1d2L, 0x6a4a81fd2426f1L, 0x3ed6b189c905acL,
 4611          0xba3c0e2008854dL, 0x1df0bd6a0d321bL }
 4612    },
 4613    {
 4614        { 0x0117ad63feb1e7L, 0xa058ba2f1ae02fL, 0x5eee5aa31b3f06L,
 4615          0x540d9d4afacd4dL, 0x38992f41571d91L, 0xef2738ebf2c7deL,
 4616          0x28bfcab92a798dL, 0x37c7c5d2286733L },
 4617        { 0xb99936e6470df0L, 0x3d762d58af6a42L, 0xa8c357ac74eec5L,
 4618          0x9917bebf13afbcL, 0x28f0941f2dc073L, 0x306abf36ce7df7L,
 4619          0xa3c5f6fd6973c8L, 0x640209b3677632L }
 4620    },
 4621    {
 4622        { 0xee872a2e23aef7L, 0xb497b6feb9b08eL, 0xfb94d973f33c63L,
 4623          0x9ea1ff42b32315L, 0x537b49249a4166L, 0x89c7fe6ab4f8beL,
 4624          0xf68007fdad8f0fL, 0xe56ef0b71b8474L },
 4625        { 0x478b2e83f333f9L, 0x144e718b2607f5L, 0x13aa605a4c7ab5L,
 4626          0xfc1fc991d0730dL, 0xe7a04375ab3ea1L, 0xc59986a306d8d3L,
 4627          0x24f6111702a8b1L, 0x7741394e040ad2L }
 4628    },
 4629    {
 4630        { 0x34c6a2560723a7L, 0x8aabd0df4ea691L, 0x9d676a55d7497fL,
 4631          0x12c09577d91fa4L, 0x581c7a86479284L, 0xa54f3daf4fd449L,
 4632          0x2f89f3c4ef44cfL, 0xfc266b5c9ec97cL },
 4633        { 0xfcd3fbe88b142aL, 0x9f3109f4bd69c1L, 0x08839c0b5f5a6aL,
 4634          0x63ca8502e68303L, 0x2f0628dbba0a74L, 0x743cccf5d56b54L,
 4635          0xbd4b06613e09fdL, 0x7a8415bde2ba3eL }
 4636    },
 4637    {
 4638        { 0x2234a3bc076ab2L, 0xd6953e54977a98L, 0xc12215831ebe2eL,
 4639          0x632145fbad78e2L, 0xd7ba78aa5c4b08L, 0x6f4ea71998e32aL,
 4640          0x25900d23485a63L, 0x97ac6286a5176fL },
 4641        { 0x5df91181093f7bL, 0x2bf9829c844563L, 0x525d99d6272449L,
 4642          0x4281cb5b5c8a18L, 0x35df2780544a08L, 0xf4c3d2dbaeb8f4L,
 4643          0xc7ff3175230447L, 0x6b4d7645d2fbffL }
 4644    },
 4645    {
 4646        { 0x4837f802b0c9cbL, 0xb65f8168ce8418L, 0xdf66ea99fc1428L,
 4647          0x9788ee804ea7e8L, 0x9eae9008334e3cL, 0xbc91058d6ba1b6L,
 4648          0x634aba1d7064b6L, 0x12d9bb3397b368L },
 4649        { 0x0645c85c413aa8L, 0xb09dea6ac6b5e3L, 0x29a620d289a50bL,
 4650          0x104db3bbbcceb1L, 0x42e479287b3309L, 0xdfc373eec97f01L,
 4651          0xe953f94b93f84eL, 0x3274b7f052dfbfL }
 4652    },
 4653    {
 4654        { 0x9d5670a1bd6fa9L, 0xec42fc9db6c4d4L, 0xaecd4ed1b42845L,
 4655          0x4eed90e1b03549L, 0xeb3225cbbab1faL, 0x5345e1d28a2816L,
 4656          0x3741cfa0b77d2aL, 0x712b19f7ea8caaL },
 4657        { 0x42e6844661853eL, 0x4cf4126e4a6e5dL, 0x196a9cfc3649f6L,
 4658          0x06621bcf21b6b1L, 0x887021c32e29eaL, 0x5703aeb8c5680fL,
 4659          0x974be24660f6d7L, 0xaf09badc71864eL }
 4660    },
 4661},
 4662{
 4663    {
 4664        { 0x3483535a81b6d3L, 0x19e7301ca037dcL, 0x748cab763ddfebL,
 4665          0xe5d87f66f01a38L, 0xbba4a5c2795cd6L, 0x411c5d4615c36cL,
 4666          0xff48efc706f412L, 0x205bafc4b519dfL },
 4667        { 0xfcaa5be5227110L, 0x7832f463ad0af0L, 0x34ef2c42642b1bL,
 4668          0x7bbef7b072f822L, 0x93cb0a8923a616L, 0x5df02366d91ba7L,
 4669          0x5da94f142f7d21L, 0x3478298a14e891L }
 4670    },
 4671    {
 4672        { 0xad79a0fc831d39L, 0x24d19484803c44L, 0x4f8a86486aeeb2L,
 4673          0x0ca284b926f6b9L, 0x501829c1acd7cdL, 0x9f6038b3d12c52L,
 4674          0x77223abf371ef5L, 0x2e0351613bf4deL },
 4675        { 0x7a5a4f2b4468ccL, 0xdcea921470ae46L, 0xf23b7e811be696L,
 4676          0xe59ad0d720d6fbL, 0x9eacac22983469L, 0x4dd4110c4397eeL,
 4677          0x4ef85bdcbe2675L, 0xe4999f7aa7c74bL }
 4678    },
 4679    {
 4680        { 0x031838c8ea1e98L, 0x539b38304d96a2L, 0x5fbdef0163956eL,
 4681          0x6bd4d35ce3f52aL, 0xe538c2355e897fL, 0x6078d3a472dd3fL,
 4682          0x590241eca9f452L, 0x2bc8495fd7fc07L },
 4683        { 0x23d0c89ead4c8cL, 0x1ea55a9601c66eL, 0x41493c94f5b833L,
 4684          0xc49a300aa5a978L, 0xc98bdc90c69594L, 0x4e44cedccbdc8cL,
 4685          0xb0d4e916adccbfL, 0xd56e36b32c37aeL }
 4686    },
 4687    {
 4688        { 0x052bd405b93152L, 0x688b1d44f1dbfaL, 0xe77ba1abe5cc5fL,
 4689          0x11f8a38a6ac543L, 0x3355fd6e4bb988L, 0xdf29c5af8dffb4L,
 4690          0x751f58981f20eeL, 0x22a0f74da9b7fbL },
 4691        { 0xec8f2bc6397b49L, 0xff59fc93639201L, 0xb7f130aa048264L,
 4692          0xe156a63afdc4ccL, 0x0fd7c34b13acafL, 0x87698d40cb4999L,
 4693          0x6d6ecae7f26f24L, 0xae51fad0f296e2L }
 4694    },
 4695    {
 4696        { 0xd0ad5ebdd0f58dL, 0x6ec6a2c5c67880L, 0xe1ce0349af1e0fL,
 4697          0x08014853996d32L, 0x59af51e5e69d20L, 0x0ef743aaa48ecfL,
 4698          0x8d3d2ea7dafcb0L, 0x4ac4fad89189b6L },
 4699        { 0x92d91c2eae97f1L, 0xef5eca262b4662L, 0x440b213b38b10aL,
 4700          0xec90187fc661daL, 0x85f3f25f64cf8dL, 0xcee53ca457ad1bL,
 4701          0x8deed4bf517672L, 0x7706fb34761828L }
 4702    },
 4703    {
 4704        { 0x1577d9117494feL, 0x52d29be2fd7239L, 0x9a0eef00186d37L,
 4705          0x241d0f527fe108L, 0x42824bae6fb59fL, 0xb8d33df0d48c25L,
 4706          0xfffdb0a47af4b0L, 0x534c601073b0b6L },
 4707        { 0xe6df35951c033bL, 0x3e1002b86c0f94L, 0xa7cb55548fb9b6L,
 4708          0x999818ba7bbff8L, 0xe4ba3d684d8bf2L, 0x53dbb326358f0aL,
 4709          0xeebc1e2f2568e8L, 0xc6917ebb3e0f68L }
 4710    },
 4711    {
 4712        { 0xbe1bbfc19f8d13L, 0xc3951b62d4795cL, 0x9371c49ed535a9L,
 4713          0x77c389f68cebeaL, 0xfc1a947a141d0eL, 0x4b48d7ade44f8bL,
 4714          0x3db1f058580a26L, 0xeed1466258b5fcL },
 4715        { 0x5daa4a19854b21L, 0x5bfa46f1ab1eadL, 0xc152e3559957ebL,
 4716          0xdc84277ea48adaL, 0x68709cffc169b5L, 0xde50ce3720e617L,
 4717          0xe42f262dd9a832L, 0xddffd4d2d6ce29L }
 4718    },
 4719    {
 4720        { 0xd5ba5578fa0a56L, 0x0d7d0f1fafaf4cL, 0x7666e4138b63edL,
 4721          0x04e65135d87f02L, 0xdca8866c958f32L, 0xaa8486d3ce2686L,
 4722          0xe3785caf1cbcd3L, 0x8a9b11403c8335L },
 4723        { 0x5c1dca22e0ef60L, 0x775af5b7d3fb20L, 0xe690ffc2b373a8L,
 4724          0x30fe15d28330e6L, 0x8a1022bdd0f393L, 0x6bd7364966a828L,
 4725          0x8d4b154949208aL, 0xfb38c6bb9d9828L }
 4726    },
 4727},
 4728{
 4729    {
 4730        { 0x6d197640340ac2L, 0x969f473ecab5ffL, 0xead46f7c458e42L,
 4731          0x168646a1d00eedL, 0xf70c878e0ce0cfL, 0xa7291d38d8d15aL,
 4732          0x92cf916fdd10ccL, 0x6d3613424f86d5L },
 4733        { 0xba50d172d5c4b4L, 0xe0af5024626f15L, 0x76f3809d76098aL,
 4734          0x433dc27d6caaa8L, 0x72dc67a70d97a7L, 0x935b360f5c7355L,
 4735          0xdbaac93179bb31L, 0x76738487ed1a33L }
 4736    },
 4737    {
 4738        { 0x8d1ca668f9fa0dL, 0x4ed95d8a02f2bfL, 0xd19fc79f630d7bL,
 4739          0x0448ec4f46fa51L, 0xb371dd8623bf3fL, 0xe94fabcd650e94L,
 4740          0x3af3fcacd90a70L, 0x0f720c403ce3b7L },
 4741        { 0x590814cd636c3bL, 0xcf6928d4469945L, 0x5843aaf484a4c6L,
 4742          0xb5a4c1af9b4722L, 0x25116b36cfb2f9L, 0xf248cf032c2640L,
 4743          0x8cd059e27412a1L, 0x866d536862fc5dL }
 4744    },
 4745    {
 4746        { 0x156e62f6de4a2eL, 0x0365af7aafcc78L, 0x65c861819e925eL,
 4747          0x4db5c01f8b2191L, 0x1fd26d1ad564faL, 0x16bbc5319c8610L,
 4748          0x0718eef815f262L, 0x8684f4727f83d1L },
 4749        { 0xa30fd28b0f48dbL, 0x6fef5066ab8278L, 0xd164e771a652dfL,
 4750          0x5a486f3c6ebc8cL, 0xb68b498dc3132bL, 0x264b6efd73323fL,
 4751          0xc261eb669b2262L, 0xd17015f2a35748L }
 4752    },
 4753    {
 4754        { 0x4241f657c4bb1dL, 0x5671702f5187c4L, 0x8a9449f3973753L,
 4755          0x272f772cc0c0cdL, 0x1b7efee58e280cL, 0x7b323494b5ee9cL,
 4756          0xf23af4731142a5L, 0x80c0e1dd62cc9eL },
 4757        { 0xcbc05bf675ffe3L, 0x66215cf258ce3cL, 0xc5d223928c9110L,
 4758          0x30e12a32a69bc2L, 0x5ef5e8076a9f48L, 0x77964ed2329d5fL,
 4759          0xdf81ba58a72cf2L, 0x38ea70d6e1b365L }
 4760    },
 4761    {
 4762        { 0x1b186802f75c80L, 0x0c153a0698665aL, 0x6f5a7fe522e8ddL,
 4763          0x96738668ddfc27L, 0x7e421d50d3bdceL, 0x2d737cf25001b2L,
 4764          0x568840f0e8490cL, 0xea2610be30c8daL },
 4765        { 0xe7b1bc09561fd4L, 0xeda786c26decb0L, 0x22369906a76160L,
 4766          0x371c71478a3da3L, 0x1db8fce2a2d9bfL, 0x59d7b843292f92L,
 4767          0x8097af95a665f9L, 0x7cb4662542b7a9L }
 4768    },
 4769    {
 4770        { 0xa5c53aec6b0c2fL, 0xc4b87327312d84L, 0xfc374cbc732736L,
 4771          0xa8d78fe9310cc0L, 0xd980e8665d1752L, 0xa62692d6004727L,
 4772          0x5d079280146220L, 0xbd1fedb860fea5L },
 4773        { 0xcbc4f8ab35d111L, 0x5ba8cdf3e32f77L, 0xd5b71adb614b93L,
 4774          0x7b3a2df2f8808dL, 0x09b89c26ef2721L, 0x55a505447c3030L,
 4775          0x21044312986ae6L, 0x427a0112367d4cL }
 4776    },
 4777    {
 4778        { 0xe9fe256c1942d8L, 0x9e7377d96e3546L, 0x43e734cb0c1744L,
 4779          0x5f46821211fbcaL, 0x44f83dc32b6203L, 0x84513086ad1d96L,
 4780          0x54dd5192fbb455L, 0xc2a18222f10089L },
 4781        { 0x01055a21855bfaL, 0x9e6d7b477078b4L, 0x3f8df6d30cea0eL,
 4782          0x81c215032973f7L, 0x17dd761c0b3d40L, 0x040424c50d0abeL,
 4783          0x5599413783deabL, 0xde9271e8f3146fL }
 4784    },
 4785    {
 4786        { 0x5edfd25af4a11dL, 0x3a3c5307846783L, 0xb20086873edd31L,
 4787          0x74e00ecfe0eef8L, 0xba65d2f3dd78c7L, 0xab1364371999f1L,
 4788          0xfa9be5dde9a7e8L, 0xeb146ce87a8609L },
 4789        { 0x76afd6565353e9L, 0xfa7023dd51ba1cL, 0x7a09f2237ede4fL,
 4790          0xca085760ba7a1bL, 0xd973882b99950aL, 0xe894266ea5057aL,
 4791          0xd01c4217f55e49L, 0x69cfb9c5555679L }
 4792    },
 4793},
 4794{
 4795    {
 4796        { 0x67867e7c5d631aL, 0x1de88c55bcf47bL, 0x8366d06afd1352L,
 4797          0xd7dbdef6e20337L, 0xb0f9e2f1253ec7L, 0x1be984510ad240L,
 4798          0x63ec533f4a6118L, 0xd5e4c5b96ce633L },
 4799        { 0x1d0b6c34df4a25L, 0xef9486a5a1b554L, 0x2f0e59e47b6ef3L,
 4800          0x4d8042f2ff84d7L, 0x3e74aa3da359c9L, 0x1baa16fd21c160L,
 4801          0xb4cff210191cbaL, 0x50032d8ebc6472L }
 4802    },
 4803    {
 4804        { 0xb6833e01fc1b13L, 0x8a8b7ba1a5ad8fL, 0xc0cafa2622b820L,
 4805          0xc6663af738ed20L, 0xd8944868b18f97L, 0xcf0c1f9774fbe4L,
 4806          0xeedd4355be814fL, 0xd81c02db57e543L },
 4807        { 0x5e32afc310bad8L, 0x065bc819b813d1L, 0x8efc5fc3142795L,
 4808          0x5006514732d59cL, 0x91e39df2b5a3ceL, 0x2ad4477faf4204L,
 4809          0x1a96b184d9bd4fL, 0xc3fee95a4d9c07L }
 4810    },
 4811    {
 4812        { 0xfac7df06b4ba61L, 0xa6ed551061aaefL, 0x35aa2d6133f609L,
 4813          0x420cfba20ed13dL, 0x861c63eea03d0cL, 0x75f0c56f936d6eL,
 4814          0xa25f68f3d9a3d5L, 0xba0b7fecd9f66eL },
 4815        { 0x292e1354680772L, 0x6f6a2dba73f405L, 0xca6add924ea9e4L,
 4816          0x81cfd61268daaaL, 0x7a4cb6ce6f147aL, 0x8ec3454bded8f5L,
 4817          0xc8a893b11d61cbL, 0x2256ffc7656022L }
 4818    },
 4819    {
 4820        { 0x6b33271575cb78L, 0x560d305adcd23eL, 0xeedbd3ad6d834bL,
 4821          0x614a64a5a31e27L, 0xe40b47647ee0c8L, 0x8ef4ff68bd7c2cL,
 4822          0xa5297fc0b77727L, 0x8759208baf88adL },
 4823        { 0x86cfe64918df68L, 0x9d60a73cdd882eL, 0x546b642b953014L,
 4824          0xbaceae38bbef55L, 0xdf58e43f1c3467L, 0x99a83fee9f9babL,
 4825          0xcd52cbf57a4a8bL, 0xf744e968ae36ecL }
 4826    },
 4827    {
 4828        { 0xb945869a607124L, 0x810dbe9440e6f6L, 0x9911e60738e381L,
 4829          0x51df68c343b80bL, 0xe424336f7a3f39L, 0x2d32acb989015cL,
 4830          0xa69b14931019e8L, 0x8a31a38ec12f93L },
 4831        { 0x0d0d36997c916aL, 0xdc95f3b8885372L, 0xcf1a2613549040L,
 4832          0x60f6f5eabe95a2L, 0xa909e9fe141325L, 0x7d598f2355c865L,
 4833          0x70c6442931a9c9L, 0x2354a85b423850L }
 4834    },
 4835    {
 4836        { 0x4cdd22497f9619L, 0x4776fffc22162eL, 0xee5ec330cd31c2L,
 4837          0x7c04c10f209bb8L, 0x35bbfde579e211L, 0x0e3832515cdfc2L,
 4838          0x657e6d3e26ffa7L, 0xc66a7c3c65c604L },
 4839        { 0x322acd7b45e567L, 0x1589cf0296db9bL, 0x1fd0bd3ba1db73L,
 4840          0xe8826109337a40L, 0xf505a50b3035c7L, 0x4d5af066ed08d7L,
 4841          0xb3c376b5eda400L, 0x9c7b7001944748L }
 4842    },
 4843    {
 4844        { 0xd76832570c3716L, 0xda62af0dd540e0L, 0x76b155d6580feaL,
 4845          0x4f42acc32b5464L, 0x881bb603f5b72bL, 0x09c130ee68b9baL,
 4846          0x37ede3b5c50342L, 0xce61a9cfd15e7dL },
 4847        { 0xfff1d8572605d0L, 0x62ac2d3062abc2L, 0xa85e02efbe43ddL,
 4848          0x859d2baa947020L, 0x2ebc8a9111c20bL, 0x7f590a7a656f66L,
 4849          0x0e1384316b21a6L, 0x29b30c500c7db6L }
 4850    },
 4851    {
 4852        { 0x61e55e2906b8deL, 0x6a97e96949974dL, 0x24b52b526eef67L,
 4853          0x512f5361aa595aL, 0x81cc7b83c48fcbL, 0xa64af2328115adL,
 4854          0x9edf6f93d44b8eL, 0x68d7f7c1fe22e3L },
 4855        { 0x2b2116a520d151L, 0x66a0b7d6aa3efbL, 0x48ae70a9b0f791L,
 4856          0xcf12174037db88L, 0x36868cd317d9f3L, 0xb57305922fc344L,
 4857          0xbaa852646a5d23L, 0xad6569137fc10dL }
 4858    },
 4859},
 4860{
 4861    {
 4862        { 0xcf8e5f512c78d5L, 0xeb94d98805cdbdL, 0xad1dcdf2ab50b5L,
 4863          0xf33c136f33cd31L, 0x0d6226b10aeff5L, 0xf7ff493f2f8fc5L,
 4864          0x7e520d4df57165L, 0x41fbae505271a7L },
 4865        { 0x72c898776480baL, 0x260835925f4523L, 0xed36b8d49f5f01L,
 4866          0x3bc1dcef3d49ebL, 0x30c1c1a4940322L, 0x78c1cda7e0f731L,
 4867          0x51f2dc86d05a31L, 0x57b0aa807f3522L }
 4868    },
 4869    {
 4870        { 0x7ab628e71f88bcL, 0xcf585f38018f21L, 0xdbbe3a413d64f6L,
 4871          0x0f86df1ec493a5L, 0x8355e6c7725de9L, 0x3954ffee00fe1eL,
 4872          0xbb8978f9924e32L, 0x1c192987812714L },
 4873        { 0x7c4ce3eaabca8bL, 0xf861eb59bf7019L, 0x31a84fc682e541L,
 4874          0x2307ca9acd1b92L, 0x6f8b6ce4bf2842L, 0xde252accb9f9a9L,
 4875          0x7f0611d93c46d1L, 0x8e2bd80751dc98L }
 4876    },
 4877    {
 4878        { 0xf2fd8fbe27d54bL, 0x2a1e37ec248071L, 0x2fcc888ab8f49aL,
 4879          0x42c62a3c18a9e5L, 0xe30290870b2446L, 0x90277fac5ac55dL,
 4880          0x8d97d56d6dde41L, 0xf4cf8a95db04feL },
 4881        { 0x3e280f5d30d077L, 0x2c903073cb3293L, 0xe0be2ac24eb0ddL,
 4882          0xa2d1a498bcb4f0L, 0x16db466cd0cd45L, 0x3b28aa79a80232L,
 4883          0xdd7e52f17b008eL, 0x20685f2868e4daL }
 4884    },
 4885    {
 4886        { 0x0a68c147c7a486L, 0xd8ef234c429633L, 0x470667bffe7506L,
 4887          0x55a13c88828d51L, 0x5f327412e44befL, 0x537d92a5929f92L,
 4888          0x0a01d5b31c5cd5L, 0xb77aa7867eb3d7L },
 4889        { 0x36ec45f8b82e4dL, 0x6821da0b37b199L, 0x8af37aad7fa94eL,
 4890          0xf0206421085010L, 0x9b886787e56851L, 0x35f394452948ceL,
 4891          0x125c2baafc1361L, 0x8a57d0e453e332L }
 4892    },
 4893    {
 4894        { 0xefe99488043664L, 0xb8b8509db1aa55L, 0x1a2e5a9332523fL,
 4895          0x5e255dd1045c0fL, 0xe68dd8a7ae7180L, 0x55f1cf345bf532L,
 4896          0xe00722ee63a716L, 0xd1c21386116bacL },
 4897        { 0x626221f1c6d1f4L, 0x240b8303773278L, 0xe393a0d88def16L,
 4898          0x229266eca0495cL, 0x7b5c6c9d3e4608L, 0xdc559cb7927190L,
 4899          0x06afe42c7b3c57L, 0x8a2ad0bb439c9bL }
 4900    },
 4901    {
 4902        { 0xd7360fbffc3e2fL, 0xf721317fbd2e95L, 0x8cacbab5748e69L,
 4903          0x7c89f279054bb9L, 0xcbe50faaa86881L, 0x7aa05d375206e4L,
 4904          0x1ea01bcc752c66L, 0x5968cde1f2c2bcL },
 4905        { 0x487c55f09a853eL, 0x82cbef1e09204bL, 0xad5c492abd8670L,
 4906          0x7175963f12dcb3L, 0x7a85762bf6aa06L, 0x02e5697f8d5237L,
 4907          0xccf7d1937c6157L, 0x3b14ca6c2fd59cL }
 4908    },
 4909    {
 4910        { 0x5e610d81b9f77fL, 0x85876d0051b02fL, 0x5d81c63b8020ddL,
 4911          0xd0b4116d6ce614L, 0x91810e5aa8bf0cL, 0xf27f91fcbf8c66L,
 4912          0x2e5dc5f38480aeL, 0x0a13ffebec7633L },
 4913        { 0x61ff6492bf6af8L, 0xe6aef2d641f827L, 0xad5708a5de5f04L,
 4914          0xe5c3a80cdfee20L, 0x88466e268fcfa2L, 0x8e5bb3ad6e1d7bL,
 4915          0xa514f06ed236b8L, 0x51c9c7ba5f5274L }
 4916    },
 4917    {
 4918        { 0xa19d228f9bc3d8L, 0xf89c3f03381069L, 0xfee890e5c3f379L,
 4919          0x3d3ef3d32fb857L, 0x39988495b418ddL, 0x6786f73c46e89aL,
 4920          0x79691a59e0f12fL, 0x76916bf3bc022bL },
 4921        { 0xea073b62cd8a0aL, 0x1fbedd4102fdbcL, 0x1888b14cb9d015L,
 4922          0x98f2cfd76655f7L, 0xb9b591059f0494L, 0xa3dbbe1e6986a3L,
 4923          0xef016a5eaf2b04L, 0xf671ba7cd2d876L }
 4924    },
 4925},
 4926{
 4927    {
 4928        { 0x1dae3bf1ae05e9L, 0x6a029961f21fefL, 0x95df2b97aec3c6L,
 4929          0x9abbc5ad83189bL, 0xaf994af2d13140L, 0xc3f884686aa406L,
 4930          0xcd77e5075284c5L, 0x1c1e13d2a9a4d7L },
 4931        { 0x7f8815d744b89dL, 0xb1891332ba673eL, 0x55ea93cd594570L,
 4932          0x19c8a18d61b041L, 0x938ebaa8d2c580L, 0x9b4344d05ba078L,
 4933          0x622da438eaf9b7L, 0x809b8079fea368L }
 4934    },
 4935    {
 4936        { 0x3780e51c33b7a2L, 0xd7a205c387b1c8L, 0x79515f84be60e4L,
 4937          0xde02a8b1e18277L, 0x4645c96f0d9150L, 0x45f8acbe0b3fd1L,
 4938          0x5d532ba9b53ac3L, 0x7984dcdb0557c9L },
 4939        { 0x5ae5ca68a92f01L, 0xd2fbb3c9d569caL, 0x668cc570c297c1L,
 4940          0xa4829436295e89L, 0xf646bc1a33ad40L, 0x066aaa4c3f425dL,
 4941          0x23434cdd005de2L, 0x5aca9e9db35af4L }
 4942    },
 4943    {
 4944        { 0x2bca35c6877c56L, 0xab864b4f0ddd7dL, 0x5f6aa74404f46cL,
 4945          0x72be164539c279L, 0x1b1d73ee0283cfL, 0xe550f46ad583d9L,
 4946          0x4ac6518e739ad1L, 0x6b6def78d42100L },
 4947        { 0x4d36b8cfa8468dL, 0x2cb37735a3d7b8L, 0x577f86f5016281L,
 4948          0xdb6fe5f9124733L, 0xacb6d2ae29e039L, 0x2ab8330580b8a1L,
 4949          0x130a4ac643b2d0L, 0xa7996e35e6884eL }
 4950    },
 4951    {
 4952        { 0x6fb627760a0aa8L, 0xe046843cbe04f0L, 0xc01d120e6ad443L,
 4953          0xa42a05cabef2fcL, 0x6b793f112ff09cL, 0x5734ea8a3e5854L,
 4954          0xe482b36775f0adL, 0x2f4f60df864a34L },
 4955        { 0xf521c5884f2449L, 0x58734a99186a71L, 0x157f5d5ac5eaccL,
 4956          0x858d9a4248ee61L, 0x0727e6d48149c3L, 0xd5c3eaaac9ec50L,
 4957          0xa63a64a20ee9b5L, 0x3f0dfc487be9deL }
 4958    },
 4959    {
 4960        { 0x836349db13e3f4L, 0xebdd0263e9316dL, 0x3fd61e8324fd6cL,
 4961          0x85dddfa0964f41L, 0x06e72de52add1bL, 0xb752cff8c4a9e2L,
 4962          0x53b0894fdf09f7L, 0xd5220ab0bc24fdL },
 4963        { 0x8442b35fb1981aL, 0xa733a373edd701L, 0x42b60c3d0ef089L,
 4964          0xa1b16ec46e7bcaL, 0xc0df179a09aaf4L, 0xcd4f187638f3a1L,
 4965          0x9af64f79eab1c2L, 0x86fed79d1d78e3L }
 4966    },
 4967    {
 4968        { 0x42c8d86fe29980L, 0x6657b816575660L, 0x82d52c680f92caL,
 4969          0x8587af102d42beL, 0xb5151316e8bdf0L, 0x706e2d9c333495L,
 4970          0xd53601a9673064L, 0x27b1fbb8219099L },
 4971        { 0x3f0929d705f7c8L, 0xff40b10f3d6e6fL, 0x673c703026af5cL,
 4972          0x2c1dce4e25a422L, 0x5348bd73dad8b6L, 0xc39b6b6be2c329L,
 4973          0x47854ffb921084L, 0xb347b8bb391f20L }
 4974    },
 4975    {
 4976        { 0x79fc841eb9b774L, 0xf32da25b4b6c1dL, 0xcbba76bfe492cbL,
 4977          0x76c51fcd623903L, 0x114cf6fcf0705aL, 0x6b720497815dafL,
 4978          0x630b362473382eL, 0xbf40c3a9704db5L },
 4979        { 0xa8a9ddcc5456ebL, 0x2b4472a72f2dc1L, 0x9874444d6d6ef3L,
 4980          0x27e8d85a0ba5edL, 0x5d225b4194849fL, 0xe852cd6ebaa40dL,
 4981          0xb669c248d4bf3fL, 0xa8601eb2343991L }
 4982    },
 4983    {
 4984        { 0x8a0485459502d3L, 0xcab27eee269a7bL, 0x41793074875adaL,
 4985          0x179e685e2405f9L, 0x0d7b6987b28963L, 0x80c9db8422a43eL,
 4986          0xf5ff318a0f43eeL, 0x7a928054ba7aa7L },
 4987        { 0xa5c79fe0c0834eL, 0x837ca0d1f849ecL, 0xfe0d7fa628ab7bL,
 4988          0x94bcb956edd19aL, 0xa18bc932226fbfL, 0x2795379aad54a3L,
 4989          0xceeacf8371129eL, 0x65ca57fa588be5L }
 4990    },
 4991},
 4992{
 4993    {
 4994        { 0x7a578b52caa330L, 0x7c21944d8ca34aL, 0x6c0fbbb6447282L,
 4995          0xa8a9957f90b2e5L, 0xbbe10666586b71L, 0x716a90249138a2L,
 4996          0x2fa6034e7ed66dL, 0x56f77ed2b9916aL },
 4997        { 0x69f1e26bddefb3L, 0xa4978098c08420L, 0xc3377eb09bc184L,
 4998          0x796ce0cbe6dadeL, 0x3be0625d103bbbL, 0x01be27c992685cL,
 4999          0xc0e25597755f9fL, 0x165c40d1c0dbfaL }
 5000    },
 5001    {
 5002        { 0xc63a397659c761L, 0x10a0e5b630fbadL, 0xf21e8a6655ac56L,
 5003          0xe8580fac1181e2L, 0xbfc2d9c0a84b5cL, 0x2cdbaff7afd5d1L,
 5004          0x95f1182f61e85aL, 0x1173e96719eaf4L },
 5005        { 0xc06d55ec6de8b9L, 0x1b4c8ebafcbcaaL, 0x52af5cbbc2bbcdL,
 5006          0x564fab877bcd10L, 0xfd53a18ae85a6eL, 0x225785994c712fL,
 5007          0x29b11d71352121L, 0xab1cb76c40491aL }
 5008    },
 5009    {
 5010        { 0xb4e8ca8ce32eb4L, 0x7e484acb250b49L, 0x062c6f7a3e31a2L,
 5011          0x497fd83625d1fcL, 0x98f821c362dda7L, 0xcae1f8f6be3111L,
 5012          0x9077e955d4fa42L, 0xa589971a65855aL },
 5013        { 0xda6321d28832a9L, 0xf9ef5dc3936e9eL, 0xa37f117c9797efL,
 5014          0x0eb3c80db581beL, 0x207c5c4baa0002L, 0xc0401b5f38faa0L,
 5015          0xceee523d0f1e6eL, 0x8d27a5fd1f0045L }
 5016    },
 5017    {
 5018        { 0x9411063cf0af29L, 0x304385789a6693L, 0x9a9fb8f640145eL,
 5019          0x7d82fe954832ebL, 0xf2789e1898c520L, 0x448b402f948dc0L,
 5020          0xeca8fdf68996ddL, 0x22227e9a149b2fL },
 5021        { 0x63509ff8e62d6aL, 0xe98d81c8c9c57fL, 0xd3874071fe3bedL,
 5022          0xf1db013539538fL, 0xb04092e48418ceL, 0xbbf8e76d6d9d4dL,
 5023          0x2ea9cda2cec5aeL, 0x8414b3e5078fa9L }
 5024    },
 5025    {
 5026        { 0x5ad1cdbd68a073L, 0xd4cedafc18b591L, 0x78267078e4c1c9L,
 5027          0x9b8d9209ca302aL, 0x3101bd2326115bL, 0x6f154b54c2717aL,
 5028          0x618c31b263e84bL, 0x12c4138bbd6942L },
 5029        { 0xf9ead2580da426L, 0xe748e9947d9680L, 0x9b396a38a4210eL,
 5030          0xfaf03ddf4b8f72L, 0xbd94a5266159e7L, 0x5e730491d4c7cbL,
 5031          0x31d1f9a7910f38L, 0x4fd10ca08d6dd1L }
 5032    },
 5033    {
 5034        { 0x4f510ac9f2331eL, 0xee872dc7e3dcc2L, 0x4a11a32a0a0c73L,
 5035          0x27e5803aa5a630L, 0xe5ae5037af4a8aL, 0x2dcdeba9fffeb0L,
 5036          0x8c27748719d91fL, 0xd3b5b62b9cc61cL },
 5037        { 0x998ac90cca7939L, 0xc22b59864514e5L, 0x950aaa1b35738aL,
 5038          0x4b208bbdab0264L, 0x6677931a557d2eL, 0x2c696d8f7c17d3L,
 5039          0x1672d4a3e15c51L, 0x95fab663db0e82L }
 5040    },
 5041    {
 5042        { 0x3d427346ff205eL, 0x7f187d90ea9fbeL, 0xbd9367f466b2afL,
 5043          0x188e53203daf2fL, 0xefe132927b54d8L, 0x14faf85ef70435L,
 5044          0xa5061281ec95c4L, 0xad01705c22cba7L },
 5045        { 0x7d2dfa66197333L, 0xedd7f078b4f6edL, 0xe0cb68575df105L,
 5046          0x47c9ddb80f76bcL, 0x49ab5319073c54L, 0x845255ae607f44L,
 5047          0x0b4ed9fcc74b7cL, 0xcfb52d50f5c3a6L }
 5048    },
 5049    {
 5050        { 0x545c7c6c278776L, 0x92a39ae98c30f0L, 0x8aa8c01d2f4680L,
 5051          0xa5409ed6b7f840L, 0x0c450acdcb24e7L, 0x5da6fb2c5770d9L,
 5052          0x5b8e8be8658333L, 0xb26bf4a67ea4adL },
 5053        { 0x2e30c81c7d91faL, 0x6e50a490eeb69fL, 0x9458c2bee4bc26L,
 5054          0x419acf233be250L, 0x79d6f8187881abL, 0x694565d403b1beL,
 5055          0x34b3990234fe1dL, 0x60997d72132b38L }
 5056    },
 5057},
 5058{
 5059    {
 5060        { 0x00a974126975dcL, 0x42161c46cf94e7L, 0xcc9fe4bc64ed99L,
 5061          0x020019a4680570L, 0x885595a698da0dL, 0x008444b77dd962L,
 5062          0xbf3c22da4fea0eL, 0xc4630482c81245L },
 5063        { 0xcb248c5793ab18L, 0x4dc7a20eb4320bL, 0x9a0906f1572b7dL,
 5064          0xd5b3019f9ac20fL, 0x79b1bf534520a3L, 0x788dfe869b5322L,
 5065          0x9a05298455b7e2L, 0x2f4aecb016bca9L }
 5066    },
 5067    {
 5068        { 0x414d3798745618L, 0x64ba22eb7c983cL, 0x9a5d19f9f9d532L,
 5069          0x81a00d844a80c8L, 0xb9e24f5cae98d6L, 0x6c3769caca965aL,
 5070          0x50d6081f6e4e6dL, 0x0d9698054422a6L },
 5071        { 0xbd7e7925cdd790L, 0xcff65da6a35219L, 0x40dc3638b60ebeL,
 5072          0x84bee7492a50dcL, 0x57d4be415ad65eL, 0xc54256b1a6d1d3L,
 5073          0x141c64945717ccL, 0x05eb609cd1c736L }
 5074    },
 5075    {
 5076        { 0xfd52eab1e3c7ecL, 0xa4a5eca9f24895L, 0xaaa2a8d79fdb83L,
 5077          0xd105e6072bdfdaL, 0x59e6ae2681d97eL, 0xfedf8e08e8077fL,
 5078          0xb06d0ad629e462L, 0x8c7c2d096fa863L },
 5079        { 0x5eecc4cee8fc91L, 0x5e83ab29e61174L, 0x1fd8925b28c02dL,
 5080          0x93be5382072864L, 0xda0c88624c984eL, 0xdcf9f0ca008286L,
 5081          0x1ecb5a6a58ba75L, 0x1d9b890c2e3c83L }
 5082    },
 5083    {
 5084        { 0x19e866eeeee062L, 0x31c1c7f4f7b387L, 0x9be60181c06652L,
 5085          0xc00a93a2b68bbbL, 0x54c65d69d52b2bL, 0x4591416e8b744aL,
 5086          0x641bcca9a64ab6L, 0xf22bcb1ab08098L },
 5087        { 0x3c0db8ff1f726cL, 0x4f5739e9d2e6a6L, 0x5cb669b45c9530L,
 5088          0x861b04e7b472d0L, 0x3e30515894da77L, 0x3344685c9ac39bL,
 5089          0x9e1730573bdd29L, 0x9cac12c808dc85L }
 5090    },
 5091    {
 5092        { 0xf152b865e27087L, 0x267bd8590a580eL, 0xba79cec8baafc1L,
 5093          0x6140ab19442686L, 0xa67090c5b31693L, 0x50a103a28b4117L,
 5094          0x7722e610ddc08fL, 0x5d19d43e6569b2L },
 5095        { 0x70e0c525962bf6L, 0x808e316fb5fb02L, 0x3fb80da5b667beL,
 5096          0x8aa366efcfacecL, 0xcb0b3e7134280eL, 0x0bf1de4cd7d944L,
 5097          0x0cd23bed092df5L, 0xc9a6a79a153a0cL }
 5098    },
 5099    {
 5100        { 0x1c69ad02d5a4b7L, 0x4bb28d0d9e6f4aL, 0x815308ca984fc6L,
 5101          0x40929c79037ca5L, 0x0ea2b491bd0357L, 0xec17e5b42aad4eL,
 5102          0x1f32ade18e7235L, 0xbc60b05a96a9d3L },
 5103        { 0x3b0229ae20f707L, 0xd63505056bdfadL, 0xac2d922d8b2e1eL,
 5104          0x92b2998235c748L, 0x6002c3ad766f97L, 0x99198001a2a862L,
 5105          0x2af7567b58b684L, 0xd8fe707aaafce5L }
 5106    },
 5107    {
 5108        { 0x54487ab5df7a4bL, 0x51cccdec57ccc2L, 0x23943277510b53L,
 5109          0x3a09f02f555de3L, 0xa696aec1be484dL, 0x56f459f37817a2L,
 5110          0x8d8f61c623dcb4L, 0xc52223c5335656L },
 5111        { 0xf634111b49914aL, 0xbf8e1ab8e4f9bbL, 0x2f59578f4dba02L,
 5112          0x2a94199e004319L, 0x87931f0654d005L, 0x7df57d96fa0814L,
 5113          0xc8da316a154031L, 0x2a44ac041f658bL }
 5114    },
 5115    {
 5116        { 0xfb5f4f89e34ac6L, 0x0a1b10b97790f2L, 0x58fe4e74b8a06cL,
 5117          0x10c1710955f27cL, 0x77b798ad5ebe19L, 0xaf1c35b1f1c2dcL,
 5118          0xc25b8e6a1f8d69L, 0x49cf751f76bf23L },
 5119        { 0x15cb2db436f7b7L, 0x186d7c27e74d1aL, 0x60731dec00a415L,
 5120          0xea1e15615f0772L, 0xf02d591714463fL, 0x26a0c6451adeb1L,
 5121          0x20174cdcc5229eL, 0xb817e50efd512aL }
 5122    },
 5123},
 5124};
 5125
 5126static const ge448_precomp base_i[16] = {
 5127    {
 5128        { 0x26a82bc70cc05eL, 0x80e18b00938e26L, 0xf72ab66511433bL,
 5129          0xa3d3a46412ae1aL, 0x0f1767ea6de324L, 0x36da9e14657047L,
 5130          0xed221d15a622bfL, 0x4f1970c66bed0dL },
 5131        { 0x08795bf230fa14L, 0x132c4ed7c8ad98L, 0x1ce67c39c4fdbdL,
 5132          0x05a0c2d73ad3ffL, 0xa3984087789c1eL, 0xc7624bea73736cL,
 5133          0x248876203756c9L, 0x693f46716eb6bcL }
 5134    },
 5135    {
 5136        { 0x28173286ff2f8fL, 0xb769465da85757L, 0xf7f6271fd6e862L,
 5137          0x4a3fcfe8daa9cbL, 0xda82c7e2ba077aL, 0x943332241b8b8cL,
 5138          0x6455bd64316cb6L, 0x0865886b9108afL },
 5139        { 0x22ac13588ed6fcL, 0x9a68fed02dafb8L, 0x1bdb6767f0bffaL,
 5140          0xec4e1d58bb3a33L, 0x56c3b9fce43c82L, 0xa6449a4a8d9523L,
 5141          0xf706cbda7ad43aL, 0xe005a8dbd5125cL }
 5142    },
 5143    {
 5144        { 0xa99d1092030034L, 0x2d8cefc6f950d0L, 0x7a920c3c96f07bL,
 5145          0x958812808bc0d5L, 0x62ada756d761e8L, 0x0def80cbcf7285L,
 5146          0x0e2ba7601eedb5L, 0x7a9f9335a48dcbL },
 5147        { 0xb4731472f435ebL, 0x5512881f225443L, 0xee59d2b33c5840L,
 5148          0xb698017127d7a4L, 0xb18fced86551f7L, 0x0ade260ca1823aL,
 5149          0xd3b9109ce4fd58L, 0xadfd751a2517edL }
 5150    },
 5151    {
 5152        { 0xdf9567ceb5eaf7L, 0x110a6b478ac7d7L, 0x2d335014706e0bL,
 5153          0x0df9c7b0b5a209L, 0xba4223d568e684L, 0xd78af2d8c3719bL,
 5154          0x77467b9a5291b6L, 0x079748e5c89befL },
 5155        { 0xe20d3fadac377fL, 0x34e866972b5c09L, 0xd8687a3c40bbb7L,
 5156          0x7b3946fd2f84c9L, 0xd00e40ca78f50eL, 0xb87594417e7179L,
 5157          0x9c7373bcb23583L, 0x7ddeda3c90fd69L }
 5158    },
 5159    {
 5160        { 0x3d0def76ab686bL, 0x1a467ec49f7c79L, 0x3e53f4fc8989edL,
 5161          0x101e344430a0d9L, 0xa3ae7318ad44eeL, 0xaefa6cdae1d134L,
 5162          0xaa8cd7d824ad4dL, 0xef1650ced584fcL },
 5163        { 0xa74df674f4754fL, 0xf52cea8ef3fb8bL, 0x47c32d42971140L,
 5164          0x391c15da256fbbL, 0xc165faba605671L, 0xf2518c687993b9L,
 5165          0x2daf7acbd5a84dL, 0x1560b6298f12aeL }
 5166    },
 5167    {
 5168        { 0xef4da0254dc10aL, 0x63118655940db8L, 0xe20b14982f2948L,
 5169          0x67b93775581dbaL, 0x422ee7104f5029L, 0x5d440db5122d34L,
 5170          0xb1e56d71a4c640L, 0xbf12abbc2408eeL },
 5171        { 0x0cc9f86016af01L, 0x88366abf3d8cabL, 0x85dda13a2efe12L,
 5172          0x390df605d00674L, 0xf18f5806d187f7L, 0x28c900ff0c5d20L,
 5173          0xad308123e01733L, 0x42d35b554bf2fdL }
 5174    },
 5175    {
 5176        { 0x009135f2ffb1f1L, 0x099fc7e8f9c605L, 0xcc67da626bfa5aL,
 5177          0xc186d12344552bL, 0xb5232501b339e1L, 0x70a544fc9708c5L,
 5178          0x06baaec1e928e7L, 0x0baedd2ef0f50fL },
 5179        { 0x535d6d8bf479e5L, 0x156e536e4ec3e9L, 0x3165741ddb9be2L,
 5180          0x988af7159fd736L, 0x13d8a782e33dddL, 0x54604214e69002L,
 5181          0x34d56e0804a268L, 0xc59b84f0e52a4cL }
 5182    },
 5183    {
 5184        { 0x525d45f24729d9L, 0x5768aba8712327L, 0xa25e43b43035dbL,
 5185          0x15a1ee8927ef21L, 0xa785d216056112L, 0x45e2fbfd508af9L,
 5186          0xb6f721a37ba969L, 0x30d6d8c216d8d3L },
 5187        { 0x3065e0852074c3L, 0xfa40b4a2a0684eL, 0x851325a763f955L,
 5188          0xd4ef19c9f25900L, 0x799c869f665756L, 0x7b052223312990L,
 5189          0xc986c2b28db802L, 0xf48fb8f28ade0aL }
 5190    },
 5191    {
 5192        { 0x1e461731649b68L, 0xa96e5d65beb9dcL, 0x765ddff481935dL,
 5193          0x6cf132c9f3bf2aL, 0x9f6c5c97c35658L, 0x99cd1394696e60L,
 5194          0x99fa9249c0d5e4L, 0x1acd0638845a95L },
 5195        { 0x0b065413636087L, 0xea20e78ea17b7fL, 0x20afc5f6161967L,
 5196          0xfd6c8a2dc81028L, 0x4ef1357e32c8fdL, 0x8aa400400e4a88L,
 5197          0xd6fcaef48cb82fL, 0x7ba7c6db3cd4faL }
 5198    },
 5199    {
 5200        { 0xf843473d19c7abL, 0x968e76dc655c4dL, 0x52c87d9c4b9c2fL,
 5201          0x65f641ae4aa082L, 0x491a39733c3603L, 0xa606ffe5810098L,
 5202          0x09920e68bf8ad4L, 0x691a0c86db7882L },
 5203        { 0x5205883a4d3ef5L, 0xee839b7acf2efeL, 0x4b78e2ac00ca66L,
 5204          0xbe3f071f9fcb91L, 0x61e66c9bf6943aL, 0xe9b4e57061b79dL,
 5205          0x8d1b01b56c06bdL, 0x0dfa315df76ae5L }
 5206    },
 5207    {
 5208        { 0x803df65f1fd093L, 0x1cd6523489b77eL, 0x2cd2e15c20e295L,
 5209          0xcd490be9b912d1L, 0xdd9a2ff2e886d2L, 0xa3c836dfe9d72aL,
 5210          0xfcad5f2298e0c1L, 0xed126e24bcf067L },
 5211        { 0x1e339533dc81bcL, 0xbea4d76ece6a08L, 0x1d15de3991b252L,
 5212          0x74cc5cfe6daf97L, 0x5ad343f0826493L, 0x2d38a471064049L,
 5213          0xf7f47b9ffcfa4dL, 0xef14490418066cL }
 5214    },
 5215    {
 5216        { 0x4e7f86b9bb55abL, 0x310d7853f496a3L, 0xbd682fc0dec42cL,
 5217          0xbde047a411d32aL, 0xea639b4c5a5ea2L, 0x5052078ba08fa1L,
 5218          0xc968b2307729f2L, 0x567b5a623d3e28L },
 5219        { 0x171e825977fbf7L, 0x0319c70be990aaL, 0x8f65023e12cd69L,
 5220          0x1fb9b19f5015e6L, 0x0083f603568a7cL, 0xba3d30b1f3c5acL,
 5221          0xe7b509d3d7a988L, 0x2318b99cd0f6b6L }
 5222    },
 5223    {
 5224        { 0x54d3b8793ab2cfL, 0x366abead2d8306L, 0x66e8eb6d7a4977L,
 5225          0xa61888cae0072eL, 0x9eeeef5dbc3315L, 0x93f09db163e7f5L,
 5226          0xee9095959ade9aL, 0xaf7f578ce59be0L },
 5227        { 0x24bfd8d5ece59eL, 0x8aa698b3689523L, 0xa9a65de2de92cfL,
 5228          0xec11dbca6ad300L, 0x217f3fa09f88caL, 0xf6c33e3b4d6af7L,
 5229          0xcd3bfa21d86d2dL, 0x1497f835f13f25L }
 5230    },
 5231    {
 5232        { 0xa579568cd03d1dL, 0xd717cdae158af6L, 0x59eda97389a19fL,
 5233          0xb32c370099e99cL, 0xa2dba91dabb591L, 0x6d697d577c2c97L,
 5234          0x5423fc2d43fa6dL, 0x56ea8a50b382bfL },
 5235        { 0x4a987bad80c11aL, 0xe4cde217d590a5L, 0x3dd8860f97e559L,
 5236          0xff45e2543b593cL, 0x00eb4535343cb5L, 0x06b9b997bbfbddL,
 5237          0x4da36b716aea24L, 0x247651757a624eL }
 5238    },
 5239    {
 5240        { 0x32207d03474e0dL, 0x3ffbf04b41cc73L, 0x5c4dc45319eb39L,
 5241          0xfee29be758b463L, 0xcc8a381c30c7a7L, 0x147f4e49fe0e53L,
 5242          0x05b2e26e35a2deL, 0x4362f0292f3666L },
 5243        { 0x0476d0c8474b85L, 0x9d8c65fccaf108L, 0xf58d4041d54b6aL,
 5244          0x3ee6862f38e4b0L, 0x7c7c9d53b44f54L, 0x36a3fd80fb0db5L,
 5245          0xfcd94ba18a8ac8L, 0xc1b1d568f35c05L }
 5246    },
 5247    {
 5248        { 0x16539fc1bdd30dL, 0x1356e538df4afbL, 0xc0545d85a1aedbL,
 5249          0xeb2037a489396bL, 0x897fcbd5660894L, 0x02a58a9b7d104aL,
 5250          0x57fa24cc96b980L, 0xf6448e35bd8946L },
 5251        { 0xee727418805c83L, 0x10fa274992cfc6L, 0x95141939e66b21L,
 5252          0xe0ffa44bd08009L, 0x174332220da22bL, 0x4891ff359e6831L,
 5253          0x407ed73a7d687bL, 0x2fb4e0751d99cfL }
 5254    },
 5255};
 5256#else
 5257
 5258/* Reduce scalar mod the order of the curve.
 5259 * Scalar Will be 114 bytes.
 5260 *
 5261 * Only performs a weak reduce.
 5262 *
 5263 * b  [in]  Scalar to reduce.
 5264 */
 5265void sc448_reduce(byte* b)
 5266{
 5267    word32 d[16];
 5268    word64 t[33];
 5269    word64 c;
 5270    word32 o;
 5271
 5272    /* Load from bytes: 114 bytes */
 5273#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5274    for (o = 0; o < 31; o += 2) {
 5275        t[o + 0] = (word32)(
 5276                     (((sword32)((b[o / 2 * 7 + 0]        ) >>  0)) <<  0)
 5277                  |  (((sword32)((b[o / 2 * 7 + 1]        ) >>  0)) <<  8)
 5278                  |  (((sword32)((b[o / 2 * 7 + 2]        ) >>  0)) << 16)
 5279                  | ((((sword32)((b[o / 2 * 7 + 3] & 0xf )) >>  0)) << 24));
 5280        t[o + 1] = (word32)(
 5281                     (((sword32)((b[o / 2 * 7 + 3]        ) >>  4)) <<  0)
 5282                  |  (((sword32)((b[o / 2 * 7 + 4]        ) >>  0)) <<  4)
 5283                  |  (((sword32)((b[o / 2 * 7 + 5]        ) >>  0)) << 12)
 5284                  |  (((sword32)((b[o / 2 * 7 + 6]        ) >>  0)) << 20));
 5285    }
 5286    t[32] = (word32)(
 5287             (((sword32)((b[112]        ) >>  0)) <<  0)
 5288          |  (((sword32)((b[113]        ) >>  0)) <<  8));
 5289#else
 5290    t[ 0] =  (word32) (((sword32)((b[ 0]        ) >>  0)) <<  0)
 5291          |  (word32) (((sword32)((b[ 1]        ) >>  0)) <<  8)
 5292          |  (word32) (((sword32)((b[ 2]        ) >>  0)) << 16)
 5293          |  (word32)((((sword32)((b[ 3] & 0xf )) >>  0)) << 24);
 5294    t[ 1] =  (word32) (((sword32)((b[ 3]        ) >>  4)) <<  0)
 5295          |  (word32) (((sword32)((b[ 4]        ) >>  0)) <<  4)
 5296          |  (word32) (((sword32)((b[ 5]        ) >>  0)) << 12)
 5297          |  (word32) (((sword32)((b[ 6]        ) >>  0)) << 20);
 5298    t[ 2] =  (word32) (((sword32)((b[ 7]        ) >>  0)) <<  0)
 5299          |  (word32) (((sword32)((b[ 8]        ) >>  0)) <<  8)
 5300          |  (word32) (((sword32)((b[ 9]        ) >>  0)) << 16)
 5301          |  (word32)((((sword32)((b[10] & 0xf )) >>  0)) << 24);
 5302    t[ 3] =  (word32) (((sword32)((b[10]        ) >>  4)) <<  0)
 5303          |  (word32) (((sword32)((b[11]        ) >>  0)) <<  4)
 5304          |  (word32) (((sword32)((b[12]        ) >>  0)) << 12)
 5305          |  (word32) (((sword32)((b[13]        ) >>  0)) << 20);
 5306    t[ 4] =  (word32) (((sword32)((b[14]        ) >>  0)) <<  0)
 5307          |  (word32) (((sword32)((b[15]        ) >>  0)) <<  8)
 5308          |  (word32) (((sword32)((b[16]        ) >>  0)) << 16)
 5309          |  (word32)((((sword32)((b[17] & 0xf )) >>  0)) << 24);
 5310    t[ 5] =  (word32) (((sword32)((b[17]        ) >>  4)) <<  0)
 5311          |  (word32) (((sword32)((b[18]        ) >>  0)) <<  4)
 5312          |  (word32) (((sword32)((b[19]        ) >>  0)) << 12)
 5313          |  (word32) (((sword32)((b[20]        ) >>  0)) << 20);
 5314    t[ 6] =  (word32) (((sword32)((b[21]        ) >>  0)) <<  0)
 5315          |  (word32) (((sword32)((b[22]        ) >>  0)) <<  8)
 5316          |  (word32) (((sword32)((b[23]        ) >>  0)) << 16)
 5317          |  (word32)((((sword32)((b[24] & 0xf )) >>  0)) << 24);
 5318    t[ 7] =  (word32) (((sword32)((b[24]        ) >>  4)) <<  0)
 5319          |  (word32) (((sword32)((b[25]        ) >>  0)) <<  4)
 5320          |  (word32) (((sword32)((b[26]        ) >>  0)) << 12)
 5321          |  (word32) (((sword32)((b[27]        ) >>  0)) << 20);
 5322    t[ 8] =  (word32) (((sword32)((b[28]        ) >>  0)) <<  0)
 5323          |  (word32) (((sword32)((b[29]        ) >>  0)) <<  8)
 5324          |  (word32) (((sword32)((b[30]        ) >>  0)) << 16)
 5325          |  (word32)((((sword32)((b[31] & 0xf )) >>  0)) << 24);
 5326    t[ 9] =  (word32) (((sword32)((b[31]        ) >>  4)) <<  0)
 5327          |  (word32) (((sword32)((b[32]        ) >>  0)) <<  4)
 5328          |  (word32) (((sword32)((b[33]        ) >>  0)) << 12)
 5329          |  (word32) (((sword32)((b[34]        ) >>  0)) << 20);
 5330    t[10] =  (word32) (((sword32)((b[35]        ) >>  0)) <<  0)
 5331          |  (word32) (((sword32)((b[36]        ) >>  0)) <<  8)
 5332          |  (word32) (((sword32)((b[37]        ) >>  0)) << 16)
 5333          |  (word32)((((sword32)((b[38] & 0xf )) >>  0)) << 24);
 5334    t[11] =  (word32) (((sword32)((b[38]        ) >>  4)) <<  0)
 5335          |  (word32) (((sword32)((b[39]        ) >>  0)) <<  4)
 5336          |  (word32) (((sword32)((b[40]        ) >>  0)) << 12)
 5337          |  (word32) (((sword32)((b[41]        ) >>  0)) << 20);
 5338    t[12] =  (word32) (((sword32)((b[42]        ) >>  0)) <<  0)
 5339          |  (word32) (((sword32)((b[43]        ) >>  0)) <<  8)
 5340          |  (word32) (((sword32)((b[44]        ) >>  0)) << 16)
 5341          |  (word32)((((sword32)((b[45] & 0xf )) >>  0)) << 24);
 5342    t[13] =  (word32) (((sword32)((b[45]        ) >>  4)) <<  0)
 5343          |  (word32) (((sword32)((b[46]        ) >>  0)) <<  4)
 5344          |  (word32) (((sword32)((b[47]        ) >>  0)) << 12)
 5345          |  (word32) (((sword32)((b[48]        ) >>  0)) << 20);
 5346    t[14] =  (word32) (((sword32)((b[49]        ) >>  0)) <<  0)
 5347          |  (word32) (((sword32)((b[50]        ) >>  0)) <<  8)
 5348          |  (word32) (((sword32)((b[51]        ) >>  0)) << 16)
 5349          |  (word32)((((sword32)((b[52] & 0xf )) >>  0)) << 24);
 5350    t[15] =  (word32) (((sword32)((b[52]        ) >>  4)) <<  0)
 5351          |  (word32) (((sword32)((b[53]        ) >>  0)) <<  4)
 5352          |  (word32) (((sword32)((b[54]        ) >>  0)) << 12)
 5353          |  (word32) (((sword32)((b[55]        ) >>  0)) << 20);
 5354    t[16] =  (word32) (((sword32)((b[56]        ) >>  0)) <<  0)
 5355          |  (word32) (((sword32)((b[57]        ) >>  0)) <<  8)
 5356          |  (word32) (((sword32)((b[58]        ) >>  0)) << 16)
 5357          |  (word32)((((sword32)((b[59] & 0xf )) >>  0)) << 24);
 5358    t[17] =  (word32) (((sword32)((b[59]        ) >>  4)) <<  0)
 5359          |  (word32) (((sword32)((b[60]        ) >>  0)) <<  4)
 5360          |  (word32) (((sword32)((b[61]        ) >>  0)) << 12)
 5361          |  (word32) (((sword32)((b[62]        ) >>  0)) << 20);
 5362    t[18] =  (word32) (((sword32)((b[63]        ) >>  0)) <<  0)
 5363          |  (word32) (((sword32)((b[64]        ) >>  0)) <<  8)
 5364          |  (word32) (((sword32)((b[65]        ) >>  0)) << 16)
 5365          |  (word32)((((sword32)((b[66] & 0xf )) >>  0)) << 24);
 5366    t[19] =  (word32) (((sword32)((b[66]        ) >>  4)) <<  0)
 5367          |  (word32) (((sword32)((b[67]        ) >>  0)) <<  4)
 5368          |  (word32) (((sword32)((b[68]        ) >>  0)) << 12)
 5369          |  (word32) (((sword32)((b[69]        ) >>  0)) << 20);
 5370    t[20] =  (word32) (((sword32)((b[70]        ) >>  0)) <<  0)
 5371          |  (word32) (((sword32)((b[71]        ) >>  0)) <<  8)
 5372          |  (word32) (((sword32)((b[72]        ) >>  0)) << 16)
 5373          |  (word32)((((sword32)((b[73] & 0xf )) >>  0)) << 24);
 5374    t[21] =  (word32) (((sword32)((b[73]        ) >>  4)) <<  0)
 5375          |  (word32) (((sword32)((b[74]        ) >>  0)) <<  4)
 5376          |  (word32) (((sword32)((b[75]        ) >>  0)) << 12)
 5377          |  (word32) (((sword32)((b[76]        ) >>  0)) << 20);
 5378    t[22] =  (word32) (((sword32)((b[77]        ) >>  0)) <<  0)
 5379          |  (word32) (((sword32)((b[78]        ) >>  0)) <<  8)
 5380          |  (word32) (((sword32)((b[79]        ) >>  0)) << 16)
 5381          |  (word32)((((sword32)((b[80] & 0xf )) >>  0)) << 24);
 5382    t[23] =  (word32) (((sword32)((b[80]        ) >>  4)) <<  0)
 5383          |  (word32) (((sword32)((b[81]        ) >>  0)) <<  4)
 5384          |  (word32) (((sword32)((b[82]        ) >>  0)) << 12)
 5385          |  (word32) (((sword32)((b[83]        ) >>  0)) << 20);
 5386    t[24] =  (word32) (((sword32)((b[84]        ) >>  0)) <<  0)
 5387          |  (word32) (((sword32)((b[85]        ) >>  0)) <<  8)
 5388          |  (word32) (((sword32)((b[86]        ) >>  0)) << 16)
 5389          |  (word32)((((sword32)((b[87] & 0xf )) >>  0)) << 24);
 5390    t[25] =  (word32) (((sword32)((b[87]        ) >>  4)) <<  0)
 5391          |  (word32) (((sword32)((b[88]        ) >>  0)) <<  4)
 5392          |  (word32) (((sword32)((b[89]        ) >>  0)) << 12)
 5393          |  (word32) (((sword32)((b[90]        ) >>  0)) << 20);
 5394    t[26] =  (word32) (((sword32)((b[91]        ) >>  0)) <<  0)
 5395          |  (word32) (((sword32)((b[92]        ) >>  0)) <<  8)
 5396          |  (word32) (((sword32)((b[93]        ) >>  0)) << 16)
 5397          |  (word32)((((sword32)((b[94] & 0xf )) >>  0)) << 24);
 5398    t[27] =  (word32) (((sword32)((b[94]        ) >>  4)) <<  0)
 5399          |  (word32) (((sword32)((b[95]        ) >>  0)) <<  4)
 5400          |  (word32) (((sword32)((b[96]        ) >>  0)) << 12)
 5401          |  (word32) (((sword32)((b[97]        ) >>  0)) << 20);
 5402    t[28] =  (word32) (((sword32)((b[98]        ) >>  0)) <<  0)
 5403          |  (word32) (((sword32)((b[99]        ) >>  0)) <<  8)
 5404          |  (word32) (((sword32)((b[100]        ) >>  0)) << 16)
 5405          |  (word32)((((sword32)((b[101] & 0xf )) >>  0)) << 24);
 5406    t[29] =  (word32) (((sword32)((b[101]        ) >>  4)) <<  0)
 5407          |  (word32) (((sword32)((b[102]        ) >>  0)) <<  4)
 5408          |  (word32) (((sword32)((b[103]        ) >>  0)) << 12)
 5409          |  (word32) (((sword32)((b[104]        ) >>  0)) << 20);
 5410    t[30] =  (word32) (((sword32)((b[105]        ) >>  0)) <<  0)
 5411          |  (word32) (((sword32)((b[106]        ) >>  0)) <<  8)
 5412          |  (word32) (((sword32)((b[107]        ) >>  0)) << 16)
 5413          |  (word32)((((sword32)((b[108] & 0xf )) >>  0)) << 24);
 5414    t[31] =  (word32) (((sword32)((b[108]        ) >>  4)) <<  0)
 5415          |  (word32) (((sword32)((b[109]        ) >>  0)) <<  4)
 5416          |  (word32) (((sword32)((b[110]        ) >>  0)) << 12)
 5417          |  (word32) (((sword32)((b[111]        ) >>  0)) << 20);
 5418    t[32] =  (word32) (((sword32)((b[112]        ) >>  0)) <<  0)
 5419          |  (word32) (((sword32)((b[113]        ) >>  0)) <<  8);
 5420#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 5421
 5422    /* Mod curve order */
 5423    /* 2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d */
 5424    /* Mod top half of extra words */
 5425#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5426    for (o = 0; o < 9; o++) {
 5427        t[ 8 + o] += (sword64)0x129eec34 * t[24 + o];
 5428        t[ 9 + o] += (sword64)0x21cf5b54 * t[24 + o];
 5429        t[10 + o] += (sword64)0x29c2ab70 * t[24 + o];
 5430        t[11 + o] += (sword64)0x0f635c8c * t[24 + o];
 5431        t[12 + o] += (sword64)0x25bf7a4c * t[24 + o];
 5432        t[13 + o] += (sword64)0x2d944a70 * t[24 + o];
 5433        t[14 + o] += (sword64)0x18eec490 * t[24 + o];
 5434        t[15 + o] += (sword64)0x20cd7704 * t[24 + o];
 5435    }
 5436    t[24]  = 0;
 5437#else
 5438    t[ 8] += (sword64)0x129eec34 * t[24];
 5439    t[ 9] += (sword64)0x21cf5b54 * t[24];
 5440    t[10] += (sword64)0x29c2ab70 * t[24];
 5441    t[11] += (sword64)0x0f635c8c * t[24];
 5442    t[12] += (sword64)0x25bf7a4c * t[24];
 5443    t[13] += (sword64)0x2d944a70 * t[24];
 5444    t[14] += (sword64)0x18eec490 * t[24];
 5445    t[15] += (sword64)0x20cd7704 * t[24];
 5446    t[ 9] += (sword64)0x129eec34 * t[25];
 5447    t[10] += (sword64)0x21cf5b54 * t[25];
 5448    t[11] += (sword64)0x29c2ab70 * t[25];
 5449    t[12] += (sword64)0x0f635c8c * t[25];
 5450    t[13] += (sword64)0x25bf7a4c * t[25];
 5451    t[14] += (sword64)0x2d944a70 * t[25];
 5452    t[15] += (sword64)0x18eec490 * t[25];
 5453    t[16] += (sword64)0x20cd7704 * t[25];
 5454    t[10] += (sword64)0x129eec34 * t[26];
 5455    t[11] += (sword64)0x21cf5b54 * t[26];
 5456    t[12] += (sword64)0x29c2ab70 * t[26];
 5457    t[13] += (sword64)0x0f635c8c * t[26];
 5458    t[14] += (sword64)0x25bf7a4c * t[26];
 5459    t[15] += (sword64)0x2d944a70 * t[26];
 5460    t[16] += (sword64)0x18eec490 * t[26];
 5461    t[17] += (sword64)0x20cd7704 * t[26];
 5462    t[11] += (sword64)0x129eec34 * t[27];
 5463    t[12] += (sword64)0x21cf5b54 * t[27];
 5464    t[13] += (sword64)0x29c2ab70 * t[27];
 5465    t[14] += (sword64)0x0f635c8c * t[27];
 5466    t[15] += (sword64)0x25bf7a4c * t[27];
 5467    t[16] += (sword64)0x2d944a70 * t[27];
 5468    t[17] += (sword64)0x18eec490 * t[27];
 5469    t[18] += (sword64)0x20cd7704 * t[27];
 5470    t[12] += (sword64)0x129eec34 * t[28];
 5471    t[13] += (sword64)0x21cf5b54 * t[28];
 5472    t[14] += (sword64)0x29c2ab70 * t[28];
 5473    t[15] += (sword64)0x0f635c8c * t[28];
 5474    t[16] += (sword64)0x25bf7a4c * t[28];
 5475    t[17] += (sword64)0x2d944a70 * t[28];
 5476    t[18] += (sword64)0x18eec490 * t[28];
 5477    t[19] += (sword64)0x20cd7704 * t[28];
 5478    t[13] += (sword64)0x129eec34 * t[29];
 5479    t[14] += (sword64)0x21cf5b54 * t[29];
 5480    t[15] += (sword64)0x29c2ab70 * t[29];
 5481    t[16] += (sword64)0x0f635c8c * t[29];
 5482    t[17] += (sword64)0x25bf7a4c * t[29];
 5483    t[18] += (sword64)0x2d944a70 * t[29];
 5484    t[19] += (sword64)0x18eec490 * t[29];
 5485    t[20] += (sword64)0x20cd7704 * t[29];
 5486    t[14] += (sword64)0x129eec34 * t[30];
 5487    t[15] += (sword64)0x21cf5b54 * t[30];
 5488    t[16] += (sword64)0x29c2ab70 * t[30];
 5489    t[17] += (sword64)0x0f635c8c * t[30];
 5490    t[18] += (sword64)0x25bf7a4c * t[30];
 5491    t[19] += (sword64)0x2d944a70 * t[30];
 5492    t[20] += (sword64)0x18eec490 * t[30];
 5493    t[21] += (sword64)0x20cd7704 * t[30];
 5494    t[15] += (sword64)0x129eec34 * t[31];
 5495    t[16] += (sword64)0x21cf5b54 * t[31];
 5496    t[17] += (sword64)0x29c2ab70 * t[31];
 5497    t[18] += (sword64)0x0f635c8c * t[31];
 5498    t[19] += (sword64)0x25bf7a4c * t[31];
 5499    t[20] += (sword64)0x2d944a70 * t[31];
 5500    t[21] += (sword64)0x18eec490 * t[31];
 5501    t[22] += (sword64)0x20cd7704 * t[31];
 5502    t[16] += (sword64)0x129eec34 * t[32];
 5503    t[17] += (sword64)0x21cf5b54 * t[32];
 5504    t[18] += (sword64)0x29c2ab70 * t[32];
 5505    t[19] += (sword64)0x0f635c8c * t[32];
 5506    t[20] += (sword64)0x25bf7a4c * t[32];
 5507    t[21] += (sword64)0x2d944a70 * t[32];
 5508    t[22] += (sword64)0x18eec490 * t[32];
 5509    t[23] += (sword64)0x20cd7704 * t[32];
 5510    t[24]  = 0;
 5511#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 5512    /* Propagate carries */
 5513    c = t[ 8] >> 28; t[ 9] += c; t[ 8] = t[ 8] & 0xfffffff;
 5514    c = t[ 9] >> 28; t[10] += c; t[ 9] = t[ 9] & 0xfffffff;
 5515    c = t[10] >> 28; t[11] += c; t[10] = t[10] & 0xfffffff;
 5516    c = t[11] >> 28; t[12] += c; t[11] = t[11] & 0xfffffff;
 5517    c = t[12] >> 28; t[13] += c; t[12] = t[12] & 0xfffffff;
 5518    c = t[13] >> 28; t[14] += c; t[13] = t[13] & 0xfffffff;
 5519    c = t[14] >> 28; t[15] += c; t[14] = t[14] & 0xfffffff;
 5520    c = t[15] >> 28; t[16] += c; t[15] = t[15] & 0xfffffff;
 5521    c = t[16] >> 28; t[17] += c; t[16] = t[16] & 0xfffffff;
 5522    c = t[17] >> 28; t[18] += c; t[17] = t[17] & 0xfffffff;
 5523    c = t[18] >> 28; t[19] += c; t[18] = t[18] & 0xfffffff;
 5524    c = t[19] >> 28; t[20] += c; t[19] = t[19] & 0xfffffff;
 5525    c = t[20] >> 28; t[21] += c; t[20] = t[20] & 0xfffffff;
 5526    c = t[21] >> 28; t[22] += c; t[21] = t[21] & 0xfffffff;
 5527    c = t[22] >> 28; t[23] += c; t[22] = t[22] & 0xfffffff;
 5528    c = t[23] >> 28; t[24] += c; t[23] = t[23] & 0xfffffff;
 5529    /* Mod bottom half of extra words */
 5530#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5531    for (o = 0; o < 9; o++) {
 5532        t[ 0 + o] += (sword64)0x129eec34 * t[16 + o];
 5533        t[ 1 + o] += (sword64)0x21cf5b54 * t[16 + o];
 5534        t[ 2 + o] += (sword64)0x29c2ab70 * t[16 + o];
 5535        t[ 3 + o] += (sword64)0x0f635c8c * t[16 + o];
 5536        t[ 4 + o] += (sword64)0x25bf7a4c * t[16 + o];
 5537        t[ 5 + o] += (sword64)0x2d944a70 * t[16 + o];
 5538        t[ 6 + o] += (sword64)0x18eec490 * t[16 + o];
 5539        t[ 7 + o] += (sword64)0x20cd7704 * t[16 + o];
 5540    }
 5541    t[16]  = 0;
 5542#else
 5543    t[ 0] += (sword64)0x129eec34 * t[16];
 5544    t[ 1] += (sword64)0x21cf5b54 * t[16];
 5545    t[ 2] += (sword64)0x29c2ab70 * t[16];
 5546    t[ 3] += (sword64)0x0f635c8c * t[16];
 5547    t[ 4] += (sword64)0x25bf7a4c * t[16];
 5548    t[ 5] += (sword64)0x2d944a70 * t[16];
 5549    t[ 6] += (sword64)0x18eec490 * t[16];
 5550    t[ 7] += (sword64)0x20cd7704 * t[16];
 5551    t[ 1] += (sword64)0x129eec34 * t[17];
 5552    t[ 2] += (sword64)0x21cf5b54 * t[17];
 5553    t[ 3] += (sword64)0x29c2ab70 * t[17];
 5554    t[ 4] += (sword64)0x0f635c8c * t[17];
 5555    t[ 5] += (sword64)0x25bf7a4c * t[17];
 5556    t[ 6] += (sword64)0x2d944a70 * t[17];
 5557    t[ 7] += (sword64)0x18eec490 * t[17];
 5558    t[ 8] += (sword64)0x20cd7704 * t[17];
 5559    t[ 2] += (sword64)0x129eec34 * t[18];
 5560    t[ 3] += (sword64)0x21cf5b54 * t[18];
 5561    t[ 4] += (sword64)0x29c2ab70 * t[18];
 5562    t[ 5] += (sword64)0x0f635c8c * t[18];
 5563    t[ 6] += (sword64)0x25bf7a4c * t[18];
 5564    t[ 7] += (sword64)0x2d944a70 * t[18];
 5565    t[ 8] += (sword64)0x18eec490 * t[18];
 5566    t[ 9] += (sword64)0x20cd7704 * t[18];
 5567    t[ 3] += (sword64)0x129eec34 * t[19];
 5568    t[ 4] += (sword64)0x21cf5b54 * t[19];
 5569    t[ 5] += (sword64)0x29c2ab70 * t[19];
 5570    t[ 6] += (sword64)0x0f635c8c * t[19];
 5571    t[ 7] += (sword64)0x25bf7a4c * t[19];
 5572    t[ 8] += (sword64)0x2d944a70 * t[19];
 5573    t[ 9] += (sword64)0x18eec490 * t[19];
 5574    t[10] += (sword64)0x20cd7704 * t[19];
 5575    t[ 4] += (sword64)0x129eec34 * t[20];
 5576    t[ 5] += (sword64)0x21cf5b54 * t[20];
 5577    t[ 6] += (sword64)0x29c2ab70 * t[20];
 5578    t[ 7] += (sword64)0x0f635c8c * t[20];
 5579    t[ 8] += (sword64)0x25bf7a4c * t[20];
 5580    t[ 9] += (sword64)0x2d944a70 * t[20];
 5581    t[10] += (sword64)0x18eec490 * t[20];
 5582    t[11] += (sword64)0x20cd7704 * t[20];
 5583    t[ 5] += (sword64)0x129eec34 * t[21];
 5584    t[ 6] += (sword64)0x21cf5b54 * t[21];
 5585    t[ 7] += (sword64)0x29c2ab70 * t[21];
 5586    t[ 8] += (sword64)0x0f635c8c * t[21];
 5587    t[ 9] += (sword64)0x25bf7a4c * t[21];
 5588    t[10] += (sword64)0x2d944a70 * t[21];
 5589    t[11] += (sword64)0x18eec490 * t[21];
 5590    t[12] += (sword64)0x20cd7704 * t[21];
 5591    t[ 6] += (sword64)0x129eec34 * t[22];
 5592    t[ 7] += (sword64)0x21cf5b54 * t[22];
 5593    t[ 8] += (sword64)0x29c2ab70 * t[22];
 5594    t[ 9] += (sword64)0x0f635c8c * t[22];
 5595    t[10] += (sword64)0x25bf7a4c * t[22];
 5596    t[11] += (sword64)0x2d944a70 * t[22];
 5597    t[12] += (sword64)0x18eec490 * t[22];
 5598    t[13] += (sword64)0x20cd7704 * t[22];
 5599    t[ 7] += (sword64)0x129eec34 * t[23];
 5600    t[ 8] += (sword64)0x21cf5b54 * t[23];
 5601    t[ 9] += (sword64)0x29c2ab70 * t[23];
 5602    t[10] += (sword64)0x0f635c8c * t[23];
 5603    t[11] += (sword64)0x25bf7a4c * t[23];
 5604    t[12] += (sword64)0x2d944a70 * t[23];
 5605    t[13] += (sword64)0x18eec490 * t[23];
 5606    t[14] += (sword64)0x20cd7704 * t[23];
 5607    t[ 8] += (sword64)0x129eec34 * t[24];
 5608    t[ 9] += (sword64)0x21cf5b54 * t[24];
 5609    t[10] += (sword64)0x29c2ab70 * t[24];
 5610    t[11] += (sword64)0x0f635c8c * t[24];
 5611    t[12] += (sword64)0x25bf7a4c * t[24];
 5612    t[13] += (sword64)0x2d944a70 * t[24];
 5613    t[14] += (sword64)0x18eec490 * t[24];
 5614    t[15] += (sword64)0x20cd7704 * t[24];
 5615    t[16]  = 0;
 5616#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 5617    /* Propagate carries */
 5618    c = t[ 0] >> 28; t[ 1] += c; t[ 0] = t[ 0] & 0xfffffff;
 5619    c = t[ 1] >> 28; t[ 2] += c; t[ 1] = t[ 1] & 0xfffffff;
 5620    c = t[ 2] >> 28; t[ 3] += c; t[ 2] = t[ 2] & 0xfffffff;
 5621    c = t[ 3] >> 28; t[ 4] += c; t[ 3] = t[ 3] & 0xfffffff;
 5622    c = t[ 4] >> 28; t[ 5] += c; t[ 4] = t[ 4] & 0xfffffff;
 5623    c = t[ 5] >> 28; t[ 6] += c; t[ 5] = t[ 5] & 0xfffffff;
 5624    c = t[ 6] >> 28; t[ 7] += c; t[ 6] = t[ 6] & 0xfffffff;
 5625    c = t[ 7] >> 28; t[ 8] += c; t[ 7] = t[ 7] & 0xfffffff;
 5626    c = t[ 8] >> 28; t[ 9] += c; t[ 8] = t[ 8] & 0xfffffff;
 5627    c = t[ 9] >> 28; t[10] += c; t[ 9] = t[ 9] & 0xfffffff;
 5628    c = t[10] >> 28; t[11] += c; t[10] = t[10] & 0xfffffff;
 5629    c = t[11] >> 28; t[12] += c; t[11] = t[11] & 0xfffffff;
 5630    c = t[12] >> 28; t[13] += c; t[12] = t[12] & 0xfffffff;
 5631    c = t[13] >> 28; t[14] += c; t[13] = t[13] & 0xfffffff;
 5632    c = t[14] >> 28; t[15] += c; t[14] = t[14] & 0xfffffff;
 5633    c = t[15] >> 28; t[16] += c; t[15] = t[15] & 0xfffffff;
 5634    t[ 0] += (sword64)0x129eec34 * t[16];
 5635    t[ 1] += (sword64)0x21cf5b54 * t[16];
 5636    t[ 2] += (sword64)0x29c2ab70 * t[16];
 5637    t[ 3] += (sword64)0x0f635c8c * t[16];
 5638    t[ 4] += (sword64)0x25bf7a4c * t[16];
 5639    t[ 5] += (sword64)0x2d944a70 * t[16];
 5640    t[ 6] += (sword64)0x18eec490 * t[16];
 5641    t[ 7] += (sword64)0x20cd7704 * t[16];
 5642    /* Propagate carries */
 5643    c = t[ 0] >> 28; t[ 1] += c; d[ 0] = (sword32)(t[ 0] & 0xfffffff);
 5644    c = t[ 1] >> 28; t[ 2] += c; d[ 1] = (sword32)(t[ 1] & 0xfffffff);
 5645    c = t[ 2] >> 28; t[ 3] += c; d[ 2] = (sword32)(t[ 2] & 0xfffffff);
 5646    c = t[ 3] >> 28; t[ 4] += c; d[ 3] = (sword32)(t[ 3] & 0xfffffff);
 5647    c = t[ 4] >> 28; t[ 5] += c; d[ 4] = (sword32)(t[ 4] & 0xfffffff);
 5648    c = t[ 5] >> 28; t[ 6] += c; d[ 5] = (sword32)(t[ 5] & 0xfffffff);
 5649    c = t[ 6] >> 28; t[ 7] += c; d[ 6] = (sword32)(t[ 6] & 0xfffffff);
 5650    c = t[ 7] >> 28; t[ 8] += c; d[ 7] = (sword32)(t[ 7] & 0xfffffff);
 5651    c = t[ 8] >> 28; t[ 9] += c; d[ 8] = (sword32)(t[ 8] & 0xfffffff);
 5652    c = t[ 9] >> 28; t[10] += c; d[ 9] = (sword32)(t[ 9] & 0xfffffff);
 5653    c = t[10] >> 28; t[11] += c; d[10] = (sword32)(t[10] & 0xfffffff);
 5654    c = t[11] >> 28; t[12] += c; d[11] = (sword32)(t[11] & 0xfffffff);
 5655    c = t[12] >> 28; t[13] += c; d[12] = (sword32)(t[12] & 0xfffffff);
 5656    c = t[13] >> 28; t[14] += c; d[13] = (sword32)(t[13] & 0xfffffff);
 5657    c = t[14] >> 28; t[15] += c; d[14] = (sword32)(t[14] & 0xfffffff);
 5658    d[15] = (word32)t[15];
 5659    /* Mod bits over 28 in last word */
 5660    o = d[15] >> 26; d[15] &= 0x3ffffff;
 5661    d[ 0] += 0x4a7bb0d * o;
 5662    d[ 1] += 0x873d6d5 * o;
 5663    d[ 2] += 0xa70aadc * o;
 5664    d[ 3] += 0x3d8d723 * o;
 5665    d[ 4] += 0x96fde93 * o;
 5666    d[ 5] += 0xb65129c * o;
 5667    d[ 6] += 0x63bb124 * o;
 5668    d[ 7] += 0x8335dc1 * o;
 5669    /* Propagate carries */
 5670    o = d[ 0] >> 28; d[ 1] += o; d[ 0] = d[ 0] & 0xfffffff;
 5671    o = d[ 1] >> 28; d[ 2] += o; d[ 1] = d[ 1] & 0xfffffff;
 5672    o = d[ 2] >> 28; d[ 3] += o; d[ 2] = d[ 2] & 0xfffffff;
 5673    o = d[ 3] >> 28; d[ 4] += o; d[ 3] = d[ 3] & 0xfffffff;
 5674    o = d[ 4] >> 28; d[ 5] += o; d[ 4] = d[ 4] & 0xfffffff;
 5675    o = d[ 5] >> 28; d[ 6] += o; d[ 5] = d[ 5] & 0xfffffff;
 5676    o = d[ 6] >> 28; d[ 7] += o; d[ 6] = d[ 6] & 0xfffffff;
 5677    o = d[ 7] >> 28; d[ 8] += o; d[ 7] = d[ 7] & 0xfffffff;
 5678    o = d[ 8] >> 28; d[ 9] += o; d[ 8] = d[ 8] & 0xfffffff;
 5679    o = d[ 9] >> 28; d[10] += o; d[ 9] = d[ 9] & 0xfffffff;
 5680    o = d[10] >> 28; d[11] += o; d[10] = d[10] & 0xfffffff;
 5681    o = d[11] >> 28; d[12] += o; d[11] = d[11] & 0xfffffff;
 5682    o = d[12] >> 28; d[13] += o; d[12] = d[12] & 0xfffffff;
 5683    o = d[13] >> 28; d[14] += o; d[13] = d[13] & 0xfffffff;
 5684    o = d[14] >> 28; d[15] += o; d[14] = d[14] & 0xfffffff;
 5685
 5686    /* Convert to bytes */
 5687#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5688    {
 5689        word32 ow = 0;
 5690        for (o = 0; o < 56; o += 7) {
 5691            b[o + 0]  = (byte)(d[ow] >>  0);
 5692            b[o + 1]  = (byte)(d[ow] >>  8);
 5693            b[o + 2]  = (byte)(d[ow] >> 16);
 5694            b[o + 3]  = (byte)(d[ow] >> 24);
 5695            ow++;
 5696            b[o + 3] += (byte)((d[ow] >>  0) << 4);
 5697            b[o + 4]  = (byte)(d[ow] >>  4);
 5698            b[o + 5]  = (byte)(d[ow] >> 12);
 5699            b[o + 6]  = (byte)(d[ow] >> 20);
 5700            ow++;
 5701        }
 5702        b[56] = 0;
 5703    }
 5704#else
 5705    b[ 0] = (byte)(d[0 ] >>  0);
 5706    b[ 1] = (byte)(d[0 ] >>  8);
 5707    b[ 2] = (byte)(d[0 ] >> 16);
 5708    b[ 3] = (byte)((byte)(d[0 ] >> 24) + (byte)((d[1 ] >>  0) <<  4));
 5709    b[ 4] = (byte)(d[1 ] >>  4);
 5710    b[ 5] = (byte)(d[1 ] >> 12);
 5711    b[ 6] = (byte)(d[1 ] >> 20);
 5712    b[ 7] = (byte)(d[2 ] >>  0);
 5713    b[ 8] = (byte)(d[2 ] >>  8);
 5714    b[ 9] = (byte)(d[2 ] >> 16);
 5715    b[10] = (byte)((byte)(d[2 ] >> 24) + (byte)((d[3 ] >>  0) <<  4));
 5716    b[11] = (byte)(d[3 ] >>  4);
 5717    b[12] = (byte)(d[3 ] >> 12);
 5718    b[13] = (byte)(d[3 ] >> 20);
 5719    b[14] = (byte)(d[4 ] >>  0);
 5720    b[15] = (byte)(d[4 ] >>  8);
 5721    b[16] = (byte)(d[4 ] >> 16);
 5722    b[17] = (byte)((byte)(d[4 ] >> 24) + (byte)((d[5 ] >>  0) <<  4));
 5723    b[18] = (byte)(d[5 ] >>  4);
 5724    b[19] = (byte)(d[5 ] >> 12);
 5725    b[20] = (byte)(d[5 ] >> 20);
 5726    b[21] = (byte)(d[6 ] >>  0);
 5727    b[22] = (byte)(d[6 ] >>  8);
 5728    b[23] = (byte)(d[6 ] >> 16);
 5729    b[24] = (byte)((byte)(d[6 ] >> 24) + (byte)((d[7 ] >>  0) <<  4));
 5730    b[25] = (byte)(d[7 ] >>  4);
 5731    b[26] = (byte)(d[7 ] >> 12);
 5732    b[27] = (byte)(d[7 ] >> 20);
 5733    b[28] = (byte)(d[8 ] >>  0);
 5734    b[29] = (byte)(d[8 ] >>  8);
 5735    b[30] = (byte)(d[8 ] >> 16);
 5736    b[31] = (byte)((byte)(d[8 ] >> 24) + (byte)((d[9 ] >>  0) <<  4));
 5737    b[32] = (byte)(d[9 ] >>  4);
 5738    b[33] = (byte)(d[9 ] >> 12);
 5739    b[34] = (byte)(d[9 ] >> 20);
 5740    b[35] = (byte)(d[10] >>  0);
 5741    b[36] = (byte)(d[10] >>  8);
 5742    b[37] = (byte)(d[10] >> 16);
 5743    b[38] = (byte)((byte)(d[10] >> 24) + (byte)((d[11] >>  0) <<  4));
 5744    b[39] = (byte)(d[11] >>  4);
 5745    b[40] = (byte)(d[11] >> 12);
 5746    b[41] = (byte)(d[11] >> 20);
 5747    b[42] = (byte)(d[12] >>  0);
 5748    b[43] = (byte)(d[12] >>  8);
 5749    b[44] = (byte)(d[12] >> 16);
 5750    b[45] = (byte)((byte)(d[12] >> 24) + (byte)((d[13] >>  0) <<  4));
 5751    b[46] = (byte)(d[13] >>  4);
 5752    b[47] = (byte)(d[13] >> 12);
 5753    b[48] = (byte)(d[13] >> 20);
 5754    b[49] = (byte)(d[14] >>  0);
 5755    b[50] = (byte)(d[14] >>  8);
 5756    b[51] = (byte)(d[14] >> 16);
 5757    b[52] = (byte)((byte)(d[14] >> 24) + (byte)((d[15] >>  0) <<  4));
 5758    b[53] = (byte)(d[15] >>  4);
 5759    b[54] = (byte)(d[15] >> 12);
 5760    b[55] = (byte)(d[15] >> 20);
 5761    b[56] = 0;
 5762#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 5763}
 5764
 5765/* Multiply a by b and add d. r = (a * b + d) mod order
 5766 *
 5767 * r  [in]  Scalar to hold result.
 5768 * a  [in]  Scalar to multiply.
 5769 * b  [in]  Scalar to multiply.
 5770 * d  [in]  Scalar to add to multiplicative result.
 5771 */
 5772void sc448_muladd(byte* r, const byte* a, const byte* b, const byte* d)
 5773{
 5774    word32 ad[16], bd[16], dd[16], rd[16];
 5775    word64 t[32];
 5776    word64 c;
 5777    word32 o;
 5778    sword32 u;
 5779
 5780    /* Load from bytes: 56 bytes */
 5781#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5782    for (o = 0; o < 15; o += 2) {
 5783        ad[o + 0] = (word32)(
 5784                     (((sword32)((a[o / 2 * 7 + 0]        ) >>  0)) <<  0)
 5785                  |  (((sword32)((a[o / 2 * 7 + 1]        ) >>  0)) <<  8)
 5786                  |  (((sword32)((a[o / 2 * 7 + 2]        ) >>  0)) << 16)
 5787                  | ((((sword32)((a[o / 2 * 7 + 3] & 0xf )) >>  0)) << 24));
 5788        ad[o + 1] = (word32)(
 5789                     (((sword32)((a[o / 2 * 7 + 3]        ) >>  4)) <<  0)
 5790                  |  (((sword32)((a[o / 2 * 7 + 4]        ) >>  0)) <<  4)
 5791                  |  (((sword32)((a[o / 2 * 7 + 5]        ) >>  0)) << 12)
 5792                  |  (((sword32)((a[o / 2 * 7 + 6]        ) >>  0)) << 20));
 5793    }
 5794#else
 5795    ad[ 0] =  (word32) (((sword32)((a[ 0]        ) >>  0)) <<  0)
 5796           |  (word32) (((sword32)((a[ 1]        ) >>  0)) <<  8)
 5797           |  (word32) (((sword32)((a[ 2]        ) >>  0)) << 16)
 5798           |  (word32)((((sword32)((a[ 3] & 0xf )) >>  0)) << 24);
 5799    ad[ 1] =  (word32) (((sword32)((a[ 3]        ) >>  4)) <<  0)
 5800           |  (word32) (((sword32)((a[ 4]        ) >>  0)) <<  4)
 5801           |  (word32) (((sword32)((a[ 5]        ) >>  0)) << 12)
 5802           |  (word32) (((sword32)((a[ 6]        ) >>  0)) << 20);
 5803    ad[ 2] =  (word32) (((sword32)((a[ 7]        ) >>  0)) <<  0)
 5804           |  (word32) (((sword32)((a[ 8]        ) >>  0)) <<  8)
 5805           |  (word32) (((sword32)((a[ 9]        ) >>  0)) << 16)
 5806           |  (word32)((((sword32)((a[10] & 0xf )) >>  0)) << 24);
 5807    ad[ 3] =  (word32) (((sword32)((a[10]        ) >>  4)) <<  0)
 5808           |  (word32) (((sword32)((a[11]        ) >>  0)) <<  4)
 5809           |  (word32) (((sword32)((a[12]        ) >>  0)) << 12)
 5810           |  (word32) (((sword32)((a[13]        ) >>  0)) << 20);
 5811    ad[ 4] =  (word32) (((sword32)((a[14]        ) >>  0)) <<  0)
 5812           |  (word32) (((sword32)((a[15]        ) >>  0)) <<  8)
 5813           |  (word32) (((sword32)((a[16]        ) >>  0)) << 16)
 5814           |  (word32)((((sword32)((a[17] & 0xf )) >>  0)) << 24);
 5815    ad[ 5] =  (word32) (((sword32)((a[17]        ) >>  4)) <<  0)
 5816           |  (word32) (((sword32)((a[18]        ) >>  0)) <<  4)
 5817           |  (word32) (((sword32)((a[19]        ) >>  0)) << 12)
 5818           |  (word32) (((sword32)((a[20]        ) >>  0)) << 20);
 5819    ad[ 6] =  (word32) (((sword32)((a[21]        ) >>  0)) <<  0)
 5820           |  (word32) (((sword32)((a[22]        ) >>  0)) <<  8)
 5821           |  (word32) (((sword32)((a[23]        ) >>  0)) << 16)
 5822           |  (word32)((((sword32)((a[24] & 0xf )) >>  0)) << 24);
 5823    ad[ 7] =  (word32) (((sword32)((a[24]        ) >>  4)) <<  0)
 5824           |  (word32) (((sword32)((a[25]        ) >>  0)) <<  4)
 5825           |  (word32) (((sword32)((a[26]        ) >>  0)) << 12)
 5826           |  (word32) (((sword32)((a[27]        ) >>  0)) << 20);
 5827    ad[ 8] =  (word32) (((sword32)((a[28]        ) >>  0)) <<  0)
 5828           |  (word32) (((sword32)((a[29]        ) >>  0)) <<  8)
 5829           |  (word32) (((sword32)((a[30]        ) >>  0)) << 16)
 5830           |  (word32)((((sword32)((a[31] & 0xf )) >>  0)) << 24);
 5831    ad[ 9] =  (word32) (((sword32)((a[31]        ) >>  4)) <<  0)
 5832           |  (word32) (((sword32)((a[32]        ) >>  0)) <<  4)
 5833           |  (word32) (((sword32)((a[33]        ) >>  0)) << 12)
 5834           |  (word32) (((sword32)((a[34]        ) >>  0)) << 20);
 5835    ad[10] =  (word32) (((sword32)((a[35]        ) >>  0)) <<  0)
 5836           |  (word32) (((sword32)((a[36]        ) >>  0)) <<  8)
 5837           |  (word32) (((sword32)((a[37]        ) >>  0)) << 16)
 5838           |  (word32)((((sword32)((a[38] & 0xf )) >>  0)) << 24);
 5839    ad[11] =  (word32) (((sword32)((a[38]        ) >>  4)) <<  0)
 5840           |  (word32) (((sword32)((a[39]        ) >>  0)) <<  4)
 5841           |  (word32) (((sword32)((a[40]        ) >>  0)) << 12)
 5842           |  (word32) (((sword32)((a[41]        ) >>  0)) << 20);
 5843    ad[12] =  (word32) (((sword32)((a[42]        ) >>  0)) <<  0)
 5844           |  (word32) (((sword32)((a[43]        ) >>  0)) <<  8)
 5845           |  (word32) (((sword32)((a[44]        ) >>  0)) << 16)
 5846           |  (word32)((((sword32)((a[45] & 0xf )) >>  0)) << 24);
 5847    ad[13] =  (word32) (((sword32)((a[45]        ) >>  4)) <<  0)
 5848           |  (word32) (((sword32)((a[46]        ) >>  0)) <<  4)
 5849           |  (word32) (((sword32)((a[47]        ) >>  0)) << 12)
 5850           |  (word32) (((sword32)((a[48]        ) >>  0)) << 20);
 5851    ad[14] =  (word32) (((sword32)((a[49]        ) >>  0)) <<  0)
 5852           |  (word32) (((sword32)((a[50]        ) >>  0)) <<  8)
 5853           |  (word32) (((sword32)((a[51]        ) >>  0)) << 16)
 5854           |  (word32)((((sword32)((a[52] & 0xf )) >>  0)) << 24);
 5855    ad[15] =  (word32) (((sword32)((a[52]        ) >>  4)) <<  0)
 5856           |  (word32) (((sword32)((a[53]        ) >>  0)) <<  4)
 5857           |  (word32) (((sword32)((a[54]        ) >>  0)) << 12)
 5858           |  (word32) (((sword32)((a[55]        ) >>  0)) << 20);
 5859#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 5860    /* Load from bytes: 56 bytes */
 5861#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5862    for (o = 0; o < 15; o += 2) {
 5863        bd[o + 0] = (word32)(
 5864                     (((sword32)((b[o / 2 * 7 + 0]        ) >>  0)) <<  0)
 5865                  |  (((sword32)((b[o / 2 * 7 + 1]        ) >>  0)) <<  8)
 5866                  |  (((sword32)((b[o / 2 * 7 + 2]        ) >>  0)) << 16)
 5867                  | ((((sword32)((b[o / 2 * 7 + 3] & 0xf )) >>  0)) << 24));
 5868        bd[o + 1] = (word32)(
 5869                     (((sword32)((b[o / 2 * 7 + 3]        ) >>  4)) <<  0)
 5870                  |  (((sword32)((b[o / 2 * 7 + 4]        ) >>  0)) <<  4)
 5871                  |  (((sword32)((b[o / 2 * 7 + 5]        ) >>  0)) << 12)
 5872                  |  (((sword32)((b[o / 2 * 7 + 6]        ) >>  0)) << 20));
 5873    }
 5874#else
 5875    bd[ 0] =  (word32) (((sword32)((b[ 0]        ) >>  0)) <<  0)
 5876           |  (word32) (((sword32)((b[ 1]        ) >>  0)) <<  8)
 5877           |  (word32) (((sword32)((b[ 2]        ) >>  0)) << 16)
 5878           |  (word32)((((sword32)((b[ 3] & 0xf )) >>  0)) << 24);
 5879    bd[ 1] =  (word32) (((sword32)((b[ 3]        ) >>  4)) <<  0)
 5880           |  (word32) (((sword32)((b[ 4]        ) >>  0)) <<  4)
 5881           |  (word32) (((sword32)((b[ 5]        ) >>  0)) << 12)
 5882           |  (word32) (((sword32)((b[ 6]        ) >>  0)) << 20);
 5883    bd[ 2] =  (word32) (((sword32)((b[ 7]        ) >>  0)) <<  0)
 5884           |  (word32) (((sword32)((b[ 8]        ) >>  0)) <<  8)
 5885           |  (word32) (((sword32)((b[ 9]        ) >>  0)) << 16)
 5886           |  (word32)((((sword32)((b[10] & 0xf )) >>  0)) << 24);
 5887    bd[ 3] =  (word32) (((sword32)((b[10]        ) >>  4)) <<  0)
 5888           |  (word32) (((sword32)((b[11]        ) >>  0)) <<  4)
 5889           |  (word32) (((sword32)((b[12]        ) >>  0)) << 12)
 5890           |  (word32) (((sword32)((b[13]        ) >>  0)) << 20);
 5891    bd[ 4] =  (word32) (((sword32)((b[14]        ) >>  0)) <<  0)
 5892           |  (word32) (((sword32)((b[15]        ) >>  0)) <<  8)
 5893           |  (word32) (((sword32)((b[16]        ) >>  0)) << 16)
 5894           |  (word32)((((sword32)((b[17] & 0xf )) >>  0)) << 24);
 5895    bd[ 5] =  (word32) (((sword32)((b[17]        ) >>  4)) <<  0)
 5896           |  (word32) (((sword32)((b[18]        ) >>  0)) <<  4)
 5897           |  (word32) (((sword32)((b[19]        ) >>  0)) << 12)
 5898           |  (word32) (((sword32)((b[20]        ) >>  0)) << 20);
 5899    bd[ 6] =  (word32) (((sword32)((b[21]        ) >>  0)) <<  0)
 5900           |  (word32) (((sword32)((b[22]        ) >>  0)) <<  8)
 5901           |  (word32) (((sword32)((b[23]        ) >>  0)) << 16)
 5902           |  (word32)((((sword32)((b[24] & 0xf )) >>  0)) << 24);
 5903    bd[ 7] =  (word32) (((sword32)((b[24]        ) >>  4)) <<  0)
 5904           |  (word32) (((sword32)((b[25]        ) >>  0)) <<  4)
 5905           |  (word32) (((sword32)((b[26]        ) >>  0)) << 12)
 5906           |  (word32) (((sword32)((b[27]        ) >>  0)) << 20);
 5907    bd[ 8] =  (word32) (((sword32)((b[28]        ) >>  0)) <<  0)
 5908           |  (word32) (((sword32)((b[29]        ) >>  0)) <<  8)
 5909           |  (word32) (((sword32)((b[30]        ) >>  0)) << 16)
 5910           |  (word32)((((sword32)((b[31] & 0xf )) >>  0)) << 24);
 5911    bd[ 9] =  (word32) (((sword32)((b[31]        ) >>  4)) <<  0)
 5912           |  (word32) (((sword32)((b[32]        ) >>  0)) <<  4)
 5913           |  (word32) (((sword32)((b[33]        ) >>  0)) << 12)
 5914           |  (word32) (((sword32)((b[34]        ) >>  0)) << 20);
 5915    bd[10] =  (word32) (((sword32)((b[35]        ) >>  0)) <<  0)
 5916           |  (word32) (((sword32)((b[36]        ) >>  0)) <<  8)
 5917           |  (word32) (((sword32)((b[37]        ) >>  0)) << 16)
 5918           |  (word32)((((sword32)((b[38] & 0xf )) >>  0)) << 24);
 5919    bd[11] =  (word32) (((sword32)((b[38]        ) >>  4)) <<  0)
 5920           |  (word32) (((sword32)((b[39]        ) >>  0)) <<  4)
 5921           |  (word32) (((sword32)((b[40]        ) >>  0)) << 12)
 5922           |  (word32) (((sword32)((b[41]        ) >>  0)) << 20);
 5923    bd[12] =  (word32) (((sword32)((b[42]        ) >>  0)) <<  0)
 5924           |  (word32) (((sword32)((b[43]        ) >>  0)) <<  8)
 5925           |  (word32) (((sword32)((b[44]        ) >>  0)) << 16)
 5926           |  (word32)((((sword32)((b[45] & 0xf )) >>  0)) << 24);
 5927    bd[13] =  (word32) (((sword32)((b[45]        ) >>  4)) <<  0)
 5928           |  (word32) (((sword32)((b[46]        ) >>  0)) <<  4)
 5929           |  (word32) (((sword32)((b[47]        ) >>  0)) << 12)
 5930           |  (word32) (((sword32)((b[48]        ) >>  0)) << 20);
 5931    bd[14] =  (word32) (((sword32)((b[49]        ) >>  0)) <<  0)
 5932           |  (word32) (((sword32)((b[50]        ) >>  0)) <<  8)
 5933           |  (word32) (((sword32)((b[51]        ) >>  0)) << 16)
 5934           |  (word32)((((sword32)((b[52] & 0xf )) >>  0)) << 24);
 5935    bd[15] =  (word32) (((sword32)((b[52]        ) >>  4)) <<  0)
 5936           |  (word32) (((sword32)((b[53]        ) >>  0)) <<  4)
 5937           |  (word32) (((sword32)((b[54]        ) >>  0)) << 12)
 5938           |  (word32) (((sword32)((b[55]        ) >>  0)) << 20);
 5939#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 5940    /* Load from bytes: 56 bytes */
 5941#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 5942    for (o = 0; o < 15; o += 2) {
 5943        dd[o + 0] = (word32)(
 5944                     (((sword32)((d[o / 2 * 7 + 0]        ) >>  0)) <<  0)
 5945                  |  (((sword32)((d[o / 2 * 7 + 1]        ) >>  0)) <<  8)
 5946                  |  (((sword32)((d[o / 2 * 7 + 2]        ) >>  0)) << 16)
 5947                  | ((((sword32)((d[o / 2 * 7 + 3] & 0xf )) >>  0)) << 24));
 5948        dd[o + 1] = (word32)(
 5949                     (((sword32)((d[o / 2 * 7 + 3]        ) >>  4)) <<  0)
 5950                  |  (((sword32)((d[o / 2 * 7 + 4]        ) >>  0)) <<  4)
 5951                  |  (((sword32)((d[o / 2 * 7 + 5]        ) >>  0)) << 12)
 5952                  |  (((sword32)((d[o / 2 * 7 + 6]        ) >>  0)) << 20));
 5953    }
 5954#else
 5955    dd[ 0] =  (word32) (((sword32)((d[ 0]        ) >>  0)) <<  0)
 5956           |  (word32) (((sword32)((d[ 1]        ) >>  0)) <<  8)
 5957           |  (word32) (((sword32)((d[ 2]        ) >>  0)) << 16)
 5958           |  (word32)((((sword32)((d[ 3] & 0xf )) >>  0)) << 24);
 5959    dd[ 1] =  (word32) (((sword32)((d[ 3]        ) >>  4)) <<  0)
 5960           |  (word32) (((sword32)((d[ 4]        ) >>  0)) <<  4)
 5961           |  (word32) (((sword32)((d[ 5]        ) >>  0)) << 12)
 5962           |  (word32) (((sword32)((d[ 6]        ) >>  0)) << 20);
 5963    dd[ 2] =  (word32) (((sword32)((d[ 7]        ) >>  0)) <<  0)
 5964           |  (word32) (((sword32)((d[ 8]        ) >>  0)) <<  8)
 5965           |  (word32) (((sword32)((d[ 9]        ) >>  0)) << 16)
 5966           |  (word32)((((sword32)((d[10] & 0xf )) >>  0)) << 24);
 5967    dd[ 3] =  (word32) (((sword32)((d[10]        ) >>  4)) <<  0)
 5968           |  (word32) (((sword32)((d[11]        ) >>  0)) <<  4)
 5969           |  (word32) (((sword32)((d[12]        ) >>  0)) << 12)
 5970           |  (word32) (((sword32)((d[13]        ) >>  0)) << 20);
 5971    dd[ 4] =  (word32) (((sword32)((d[14]        ) >>  0)) <<  0)
 5972           |  (word32) (((sword32)((d[15]        ) >>  0)) <<  8)
 5973           |  (word32) (((sword32)((d[16]        ) >>  0)) << 16)
 5974           |  (word32)((((sword32)((d[17] & 0xf )) >>  0)) << 24);
 5975    dd[ 5] =  (word32) (((sword32)((d[17]        ) >>  4)) <<  0)
 5976           |  (word32) (((sword32)((d[18]        ) >>  0)) <<  4)
 5977           |  (word32) (((sword32)((d[19]        ) >>  0)) << 12)
 5978           |  (word32) (((sword32)((d[20]        ) >>  0)) << 20);
 5979    dd[ 6] =  (word32) (((sword32)((d[21]        ) >>  0)) <<  0)
 5980           |  (word32) (((sword32)((d[22]        ) >>  0)) <<  8)
 5981           |  (word32) (((sword32)((d[23]        ) >>  0)) << 16)
 5982           |  (word32)((((sword32)((d[24] & 0xf )) >>  0)) << 24);
 5983    dd[ 7] =  (word32) (((sword32)((d[24]        ) >>  4)) <<  0)
 5984           |  (word32) (((sword32)((d[25]        ) >>  0)) <<  4)
 5985           |  (word32) (((sword32)((d[26]        ) >>  0)) << 12)
 5986           |  (word32) (((sword32)((d[27]        ) >>  0)) << 20);
 5987    dd[ 8] =  (word32) (((sword32)((d[28]        ) >>  0)) <<  0)
 5988           |  (word32) (((sword32)((d[29]        ) >>  0)) <<  8)
 5989           |  (word32) (((sword32)((d[30]        ) >>  0)) << 16)
 5990           |  (word32)((((sword32)((d[31] & 0xf )) >>  0)) << 24);
 5991    dd[ 9] =  (word32) (((sword32)((d[31]        ) >>  4)) <<  0)
 5992           |  (word32) (((sword32)((d[32]        ) >>  0)) <<  4)
 5993           |  (word32) (((sword32)((d[33]        ) >>  0)) << 12)
 5994           |  (word32) (((sword32)((d[34]        ) >>  0)) << 20);
 5995    dd[10] =  (word32) (((sword32)((d[35]        ) >>  0)) <<  0)
 5996           |  (word32) (((sword32)((d[36]        ) >>  0)) <<  8)
 5997           |  (word32) (((sword32)((d[37]        ) >>  0)) << 16)
 5998           |  (word32)((((sword32)((d[38] & 0xf )) >>  0)) << 24);
 5999    dd[11] =  (word32) (((sword32)((d[38]        ) >>  4)) <<  0)
 6000           |  (word32) (((sword32)((d[39]        ) >>  0)) <<  4)
 6001           |  (word32) (((sword32)((d[40]        ) >>  0)) << 12)
 6002           |  (word32) (((sword32)((d[41]        ) >>  0)) << 20);
 6003    dd[12] =  (word32) (((sword32)((d[42]        ) >>  0)) <<  0)
 6004           |  (word32) (((sword32)((d[43]        ) >>  0)) <<  8)
 6005           |  (word32) (((sword32)((d[44]        ) >>  0)) << 16)
 6006           |  (word32)((((sword32)((d[45] & 0xf )) >>  0)) << 24);
 6007    dd[13] =  (word32) (((sword32)((d[45]        ) >>  4)) <<  0)
 6008           |  (word32) (((sword32)((d[46]        ) >>  0)) <<  4)
 6009           |  (word32) (((sword32)((d[47]        ) >>  0)) << 12)
 6010           |  (word32) (((sword32)((d[48]        ) >>  0)) << 20);
 6011    dd[14] =  (word32) (((sword32)((d[49]        ) >>  0)) <<  0)
 6012           |  (word32) (((sword32)((d[50]        ) >>  0)) <<  8)
 6013           |  (word32) (((sword32)((d[51]        ) >>  0)) << 16)
 6014           |  (word32)((((sword32)((d[52] & 0xf )) >>  0)) << 24);
 6015    dd[15] =  (word32) (((sword32)((d[52]        ) >>  4)) <<  0)
 6016           |  (word32) (((sword32)((d[53]        ) >>  0)) <<  4)
 6017           |  (word32) (((sword32)((d[54]        ) >>  0)) << 12)
 6018           |  (word32) (((sword32)((d[55]        ) >>  0)) << 20);
 6019#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 6020
 6021    /* a * b + d */
 6022    t[ 0] = (word64)(dd[ 0] + (word64)((sword64)ad[ 0] * bd[ 0]));
 6023    t[ 1] = (word64)(dd[ 1] + (word64)((sword64)ad[ 0] * bd[ 1]
 6024                                      + (sword64)ad[ 1] * bd[ 0]));
 6025    t[ 2] = (word64)(dd[ 2] + (word64)((sword64)ad[ 0] * bd[ 2]
 6026                                      + (sword64)ad[ 1] * bd[ 1]
 6027                                      + (sword64)ad[ 2] * bd[ 0]));
 6028    t[ 3] = (word64)(dd[ 3] + (word64)((sword64)ad[ 0] * bd[ 3]
 6029                                      + (sword64)ad[ 1] * bd[ 2]
 6030                                      + (sword64)ad[ 2] * bd[ 1]
 6031                                      + (sword64)ad[ 3] * bd[ 0]));
 6032    t[ 4] = (word64)(dd[ 4] + (word64)((sword64)ad[ 0] * bd[ 4]
 6033                                      + (sword64)ad[ 1] * bd[ 3]
 6034                                      + (sword64)ad[ 2] * bd[ 2]
 6035                                      + (sword64)ad[ 3] * bd[ 1]
 6036                                      + (sword64)ad[ 4] * bd[ 0]));
 6037    t[ 5] = (word64)(dd[ 5] + (word64)((sword64)ad[ 0] * bd[ 5]
 6038                                      + (sword64)ad[ 1] * bd[ 4]
 6039                                      + (sword64)ad[ 2] * bd[ 3]
 6040                                      + (sword64)ad[ 3] * bd[ 2]
 6041                                      + (sword64)ad[ 4] * bd[ 1]
 6042                                      + (sword64)ad[ 5] * bd[ 0]));
 6043    t[ 6] = (word64)(dd[ 6] + (word64)((sword64)ad[ 0] * bd[ 6]
 6044                                      + (sword64)ad[ 1] * bd[ 5]
 6045                                      + (sword64)ad[ 2] * bd[ 4]
 6046                                      + (sword64)ad[ 3] * bd[ 3]
 6047                                      + (sword64)ad[ 4] * bd[ 2]
 6048                                      + (sword64)ad[ 5] * bd[ 1]
 6049                                      + (sword64)ad[ 6] * bd[ 0]));
 6050    t[ 7] = (word64)(dd[ 7] + (word64)((sword64)ad[ 0] * bd[ 7]
 6051                                      + (sword64)ad[ 1] * bd[ 6]
 6052                                      + (sword64)ad[ 2] * bd[ 5]
 6053                                      + (sword64)ad[ 3] * bd[ 4]
 6054                                      + (sword64)ad[ 4] * bd[ 3]
 6055                                      + (sword64)ad[ 5] * bd[ 2]
 6056                                      + (sword64)ad[ 6] * bd[ 1]
 6057                                      + (sword64)ad[ 7] * bd[ 0]));
 6058    t[ 8] = (word64)(dd[ 8] + (word64)((sword64)ad[ 0] * bd[ 8]
 6059                                      + (sword64)ad[ 1] * bd[ 7]
 6060                                      + (sword64)ad[ 2] * bd[ 6]
 6061                                      + (sword64)ad[ 3] * bd[ 5]
 6062                                      + (sword64)ad[ 4] * bd[ 4]
 6063                                      + (sword64)ad[ 5] * bd[ 3]
 6064                                      + (sword64)ad[ 6] * bd[ 2]
 6065                                      + (sword64)ad[ 7] * bd[ 1]
 6066                                      + (sword64)ad[ 8] * bd[ 0]));
 6067    t[ 9] = (word64)(dd[ 9] + (word64)((sword64)ad[ 0] * bd[ 9]
 6068                                      + (sword64)ad[ 1] * bd[ 8]
 6069                                      + (sword64)ad[ 2] * bd[ 7]
 6070                                      + (sword64)ad[ 3] * bd[ 6]
 6071                                      + (sword64)ad[ 4] * bd[ 5]
 6072                                      + (sword64)ad[ 5] * bd[ 4]
 6073                                      + (sword64)ad[ 6] * bd[ 3]
 6074                                      + (sword64)ad[ 7] * bd[ 2]
 6075                                      + (sword64)ad[ 8] * bd[ 1]
 6076                                      + (sword64)ad[ 9] * bd[ 0]));
 6077    t[10] = (word64)(dd[10] + (word64)((sword64)ad[ 0] * bd[10]
 6078                                      + (sword64)ad[ 1] * bd[ 9]
 6079                                      + (sword64)ad[ 2] * bd[ 8]
 6080                                      + (sword64)ad[ 3] * bd[ 7]
 6081                                      + (sword64)ad[ 4] * bd[ 6]
 6082                                      + (sword64)ad[ 5] * bd[ 5]
 6083                                      + (sword64)ad[ 6] * bd[ 4]
 6084                                      + (sword64)ad[ 7] * bd[ 3]
 6085                                      + (sword64)ad[ 8] * bd[ 2]
 6086                                      + (sword64)ad[ 9] * bd[ 1]
 6087                                      + (sword64)ad[10] * bd[ 0]));
 6088    t[11] = (word64)(dd[11] + (word64)((sword64)ad[ 0] * bd[11]
 6089                                      + (sword64)ad[ 1] * bd[10]
 6090                                      + (sword64)ad[ 2] * bd[ 9]
 6091                                      + (sword64)ad[ 3] * bd[ 8]
 6092                                      + (sword64)ad[ 4] * bd[ 7]
 6093                                      + (sword64)ad[ 5] * bd[ 6]
 6094                                      + (sword64)ad[ 6] * bd[ 5]
 6095                                      + (sword64)ad[ 7] * bd[ 4]
 6096                                      + (sword64)ad[ 8] * bd[ 3]
 6097                                      + (sword64)ad[ 9] * bd[ 2]
 6098                                      + (sword64)ad[10] * bd[ 1]
 6099                                      + (sword64)ad[11] * bd[ 0]));
 6100    t[12] = (word64)(dd[12] + (word64)((sword64)ad[ 0] * bd[12]
 6101                                      + (sword64)ad[ 1] * bd[11]
 6102                                      + (sword64)ad[ 2] * bd[10]
 6103                                      + (sword64)ad[ 3] * bd[ 9]
 6104                                      + (sword64)ad[ 4] * bd[ 8]
 6105                                      + (sword64)ad[ 5] * bd[ 7]
 6106                                      + (sword64)ad[ 6] * bd[ 6]
 6107                                      + (sword64)ad[ 7] * bd[ 5]
 6108                                      + (sword64)ad[ 8] * bd[ 4]
 6109                                      + (sword64)ad[ 9] * bd[ 3]
 6110                                      + (sword64)ad[10] * bd[ 2]
 6111                                      + (sword64)ad[11] * bd[ 1]
 6112                                      + (sword64)ad[12] * bd[ 0]));
 6113    t[13] = (word64)(dd[13] + (word64)((sword64)ad[ 0] * bd[13]
 6114                                      + (sword64)ad[ 1] * bd[12]
 6115                                      + (sword64)ad[ 2] * bd[11]
 6116                                      + (sword64)ad[ 3] * bd[10]
 6117                                      + (sword64)ad[ 4] * bd[ 9]
 6118                                      + (sword64)ad[ 5] * bd[ 8]
 6119                                      + (sword64)ad[ 6] * bd[ 7]
 6120                                      + (sword64)ad[ 7] * bd[ 6]
 6121                                      + (sword64)ad[ 8] * bd[ 5]
 6122                                      + (sword64)ad[ 9] * bd[ 4]
 6123                                      + (sword64)ad[10] * bd[ 3]
 6124                                      + (sword64)ad[11] * bd[ 2]
 6125                                      + (sword64)ad[12] * bd[ 1]
 6126                                      + (sword64)ad[13] * bd[ 0]));
 6127    t[14] = (word64)(dd[14] + (word64)((sword64)ad[ 0] * bd[14]
 6128                                      + (sword64)ad[ 1] * bd[13]
 6129                                      + (sword64)ad[ 2] * bd[12]
 6130                                      + (sword64)ad[ 3] * bd[11]
 6131                                      + (sword64)ad[ 4] * bd[10]
 6132                                      + (sword64)ad[ 5] * bd[ 9]
 6133                                      + (sword64)ad[ 6] * bd[ 8]
 6134                                      + (sword64)ad[ 7] * bd[ 7]
 6135                                      + (sword64)ad[ 8] * bd[ 6]
 6136                                      + (sword64)ad[ 9] * bd[ 5]
 6137                                      + (sword64)ad[10] * bd[ 4]
 6138                                      + (sword64)ad[11] * bd[ 3]
 6139                                      + (sword64)ad[12] * bd[ 2]
 6140                                      + (sword64)ad[13] * bd[ 1]
 6141                                      + (sword64)ad[14] * bd[ 0]));
 6142    t[15] = (word64)(dd[15] + (word64)((sword64)ad[ 0] * bd[15]
 6143                                      + (sword64)ad[ 1] * bd[14]
 6144                                      + (sword64)ad[ 2] * bd[13]
 6145                                      + (sword64)ad[ 3] * bd[12]
 6146                                      + (sword64)ad[ 4] * bd[11]
 6147                                      + (sword64)ad[ 5] * bd[10]
 6148                                      + (sword64)ad[ 6] * bd[ 9]
 6149                                      + (sword64)ad[ 7] * bd[ 8]
 6150                                      + (sword64)ad[ 8] * bd[ 7]
 6151                                      + (sword64)ad[ 9] * bd[ 6]
 6152                                      + (sword64)ad[10] * bd[ 5]
 6153                                      + (sword64)ad[11] * bd[ 4]
 6154                                      + (sword64)ad[12] * bd[ 3]
 6155                                      + (sword64)ad[13] * bd[ 2]
 6156                                      + (sword64)ad[14] * bd[ 1]
 6157                                      + (sword64)ad[15] * bd[ 0]));
 6158    t[16] = (word64)(                   (sword64)ad[ 1] * bd[15]
 6159                                      + (sword64)ad[ 2] * bd[14]
 6160                                      + (sword64)ad[ 3] * bd[13]
 6161                                      + (sword64)ad[ 4] * bd[12]
 6162                                      + (sword64)ad[ 5] * bd[11]
 6163                                      + (sword64)ad[ 6] * bd[10]
 6164                                      + (sword64)ad[ 7] * bd[ 9]
 6165                                      + (sword64)ad[ 8] * bd[ 8]
 6166                                      + (sword64)ad[ 9] * bd[ 7]
 6167                                      + (sword64)ad[10] * bd[ 6]
 6168                                      + (sword64)ad[11] * bd[ 5]
 6169                                      + (sword64)ad[12] * bd[ 4]
 6170                                      + (sword64)ad[13] * bd[ 3]
 6171                                      + (sword64)ad[14] * bd[ 2]
 6172                                      + (sword64)ad[15] * bd[ 1]);
 6173    t[17] = (word64)(                   (sword64)ad[ 2] * bd[15]
 6174                                      + (sword64)ad[ 3] * bd[14]
 6175                                      + (sword64)ad[ 4] * bd[13]
 6176                                      + (sword64)ad[ 5] * bd[12]
 6177                                      + (sword64)ad[ 6] * bd[11]
 6178                                      + (sword64)ad[ 7] * bd[10]
 6179                                      + (sword64)ad[ 8] * bd[ 9]
 6180                                      + (sword64)ad[ 9] * bd[ 8]
 6181                                      + (sword64)ad[10] * bd[ 7]
 6182                                      + (sword64)ad[11] * bd[ 6]
 6183                                      + (sword64)ad[12] * bd[ 5]
 6184                                      + (sword64)ad[13] * bd[ 4]
 6185                                      + (sword64)ad[14] * bd[ 3]
 6186                                      + (sword64)ad[15] * bd[ 2]);
 6187    t[18] = (word64)(                   (sword64)ad[ 3] * bd[15]
 6188                                      + (sword64)ad[ 4] * bd[14]
 6189                                      + (sword64)ad[ 5] * bd[13]
 6190                                      + (sword64)ad[ 6] * bd[12]
 6191                                      + (sword64)ad[ 7] * bd[11]
 6192                                      + (sword64)ad[ 8] * bd[10]
 6193                                      + (sword64)ad[ 9] * bd[ 9]
 6194                                      + (sword64)ad[10] * bd[ 8]
 6195                                      + (sword64)ad[11] * bd[ 7]
 6196                                      + (sword64)ad[12] * bd[ 6]
 6197                                      + (sword64)ad[13] * bd[ 5]
 6198                                      + (sword64)ad[14] * bd[ 4]
 6199                                      + (sword64)ad[15] * bd[ 3]);
 6200    t[19] = (word64)(                   (sword64)ad[ 4] * bd[15]
 6201                                      + (sword64)ad[ 5] * bd[14]
 6202                                      + (sword64)ad[ 6] * bd[13]
 6203                                      + (sword64)ad[ 7] * bd[12]
 6204                                      + (sword64)ad[ 8] * bd[11]
 6205                                      + (sword64)ad[ 9] * bd[10]
 6206                                      + (sword64)ad[10] * bd[ 9]
 6207                                      + (sword64)ad[11] * bd[ 8]
 6208                                      + (sword64)ad[12] * bd[ 7]
 6209                                      + (sword64)ad[13] * bd[ 6]
 6210                                      + (sword64)ad[14] * bd[ 5]
 6211                                      + (sword64)ad[15] * bd[ 4]);
 6212    t[20] = (word64)(                   (sword64)ad[ 5] * bd[15]
 6213                                      + (sword64)ad[ 6] * bd[14]
 6214                                      + (sword64)ad[ 7] * bd[13]
 6215                                      + (sword64)ad[ 8] * bd[12]
 6216                                      + (sword64)ad[ 9] * bd[11]
 6217                                      + (sword64)ad[10] * bd[10]
 6218                                      + (sword64)ad[11] * bd[ 9]
 6219                                      + (sword64)ad[12] * bd[ 8]
 6220                                      + (sword64)ad[13] * bd[ 7]
 6221                                      + (sword64)ad[14] * bd[ 6]
 6222                                      + (sword64)ad[15] * bd[ 5]);
 6223    t[21] = (word64)(                   (sword64)ad[ 6] * bd[15]
 6224                                      + (sword64)ad[ 7] * bd[14]
 6225                                      + (sword64)ad[ 8] * bd[13]
 6226                                      + (sword64)ad[ 9] * bd[12]
 6227                                      + (sword64)ad[10] * bd[11]
 6228                                      + (sword64)ad[11] * bd[10]
 6229                                      + (sword64)ad[12] * bd[ 9]
 6230                                      + (sword64)ad[13] * bd[ 8]
 6231                                      + (sword64)ad[14] * bd[ 7]
 6232                                      + (sword64)ad[15] * bd[ 6]);
 6233    t[22] = (word64)(                   (sword64)ad[ 7] * bd[15]
 6234                                      + (sword64)ad[ 8] * bd[14]
 6235                                      + (sword64)ad[ 9] * bd[13]
 6236                                      + (sword64)ad[10] * bd[12]
 6237                                      + (sword64)ad[11] * bd[11]
 6238                                      + (sword64)ad[12] * bd[10]
 6239                                      + (sword64)ad[13] * bd[ 9]
 6240                                      + (sword64)ad[14] * bd[ 8]
 6241                                      + (sword64)ad[15] * bd[ 7]);
 6242    t[23] = (word64)(                   (sword64)ad[ 8] * bd[15]
 6243                                      + (sword64)ad[ 9] * bd[14]
 6244                                      + (sword64)ad[10] * bd[13]
 6245                                      + (sword64)ad[11] * bd[12]
 6246                                      + (sword64)ad[12] * bd[11]
 6247                                      + (sword64)ad[13] * bd[10]
 6248                                      + (sword64)ad[14] * bd[ 9]
 6249                                      + (sword64)ad[15] * bd[ 8]);
 6250    t[24] = (word64)(                   (sword64)ad[ 9] * bd[15]
 6251                                      + (sword64)ad[10] * bd[14]
 6252                                      + (sword64)ad[11] * bd[13]
 6253                                      + (sword64)ad[12] * bd[12]
 6254                                      + (sword64)ad[13] * bd[11]
 6255                                      + (sword64)ad[14] * bd[10]
 6256                                      + (sword64)ad[15] * bd[ 9]);
 6257    t[25] = (word64)(                   (sword64)ad[10] * bd[15]
 6258                                      + (sword64)ad[11] * bd[14]
 6259                                      + (sword64)ad[12] * bd[13]
 6260                                      + (sword64)ad[13] * bd[12]
 6261                                      + (sword64)ad[14] * bd[11]
 6262                                      + (sword64)ad[15] * bd[10]);
 6263    t[26] = (word64)(                   (sword64)ad[11] * bd[15]
 6264                                      + (sword64)ad[12] * bd[14]
 6265                                      + (sword64)ad[13] * bd[13]
 6266                                      + (sword64)ad[14] * bd[12]
 6267                                      + (sword64)ad[15] * bd[11]);
 6268    t[27] = (word64)(                   (sword64)ad[12] * bd[15]
 6269                                      + (sword64)ad[13] * bd[14]
 6270                                      + (sword64)ad[14] * bd[13]
 6271                                      + (sword64)ad[15] * bd[12]);
 6272    t[28] = (word64)(                   (sword64)ad[13] * bd[15]
 6273                                      + (sword64)ad[14] * bd[14]
 6274                                      + (sword64)ad[15] * bd[13]);
 6275    t[29] = (word64)(                   (sword64)ad[14] * bd[15]
 6276                                      + (sword64)ad[15] * bd[14]);
 6277    t[30] = (word64)(                   (sword64)ad[15] * bd[15]);
 6278    t[31] = 0;
 6279
 6280    /* Mod curve order */
 6281    /* 2^446 - 0x8335dc163bb124b65129c96fde933d8d723a70aadc873d6d54a7bb0d */
 6282    /* Propagate carries */
 6283    c = t[ 0] >> 28; t[ 1] += c; t[ 0] = t[ 0] & 0xfffffff;
 6284    c = t[ 1] >> 28; t[ 2] += c; t[ 1] = t[ 1] & 0xfffffff;
 6285    c = t[ 2] >> 28; t[ 3] += c; t[ 2] = t[ 2] & 0xfffffff;
 6286    c = t[ 3] >> 28; t[ 4] += c; t[ 3] = t[ 3] & 0xfffffff;
 6287    c = t[ 4] >> 28; t[ 5] += c; t[ 4] = t[ 4] & 0xfffffff;
 6288    c = t[ 5] >> 28; t[ 6] += c; t[ 5] = t[ 5] & 0xfffffff;
 6289    c = t[ 6] >> 28; t[ 7] += c; t[ 6] = t[ 6] & 0xfffffff;
 6290    c = t[ 7] >> 28; t[ 8] += c; t[ 7] = t[ 7] & 0xfffffff;
 6291    c = t[ 8] >> 28; t[ 9] += c; t[ 8] = t[ 8] & 0xfffffff;
 6292    c = t[ 9] >> 28; t[10] += c; t[ 9] = t[ 9] & 0xfffffff;
 6293    c = t[10] >> 28; t[11] += c; t[10] = t[10] & 0xfffffff;
 6294    c = t[11] >> 28; t[12] += c; t[11] = t[11] & 0xfffffff;
 6295    c = t[12] >> 28; t[13] += c; t[12] = t[12] & 0xfffffff;
 6296    c = t[13] >> 28; t[14] += c; t[13] = t[13] & 0xfffffff;
 6297    c = t[14] >> 28; t[15] += c; t[14] = t[14] & 0xfffffff;
 6298    c = t[15] >> 28; t[16] += c; t[15] = t[15] & 0xfffffff;
 6299    c = t[16] >> 28; t[17] += c; t[16] = t[16] & 0xfffffff;
 6300    c = t[17] >> 28; t[18] += c; t[17] = t[17] & 0xfffffff;
 6301    c = t[18] >> 28; t[19] += c; t[18] = t[18] & 0xfffffff;
 6302    c = t[19] >> 28; t[20] += c; t[19] = t[19] & 0xfffffff;
 6303    c = t[20] >> 28; t[21] += c; t[20] = t[20] & 0xfffffff;
 6304    c = t[21] >> 28; t[22] += c; t[21] = t[21] & 0xfffffff;
 6305    c = t[22] >> 28; t[23] += c; t[22] = t[22] & 0xfffffff;
 6306    c = t[23] >> 28; t[24] += c; t[23] = t[23] & 0xfffffff;
 6307    c = t[24] >> 28; t[25] += c; t[24] = t[24] & 0xfffffff;
 6308    c = t[25] >> 28; t[26] += c; t[25] = t[25] & 0xfffffff;
 6309    c = t[26] >> 28; t[27] += c; t[26] = t[26] & 0xfffffff;
 6310    c = t[27] >> 28; t[28] += c; t[27] = t[27] & 0xfffffff;
 6311    c = t[28] >> 28; t[29] += c; t[28] = t[28] & 0xfffffff;
 6312    c = t[29] >> 28; t[30] += c; t[29] = t[29] & 0xfffffff;
 6313    c = t[30] >> 28; t[31] += c; t[30] = t[30] & 0xfffffff;
 6314    /* Mod top half of extra words */
 6315#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 6316    for (o = 0; o < 8; o++) {
 6317        t[ 8 + o] += (sword64)0x129eec34 * t[24 + o];
 6318        t[ 9 + o] += (sword64)0x21cf5b54 * t[24 + o];
 6319        t[10 + o] += (sword64)0x29c2ab70 * t[24 + o];
 6320        t[11 + o] += (sword64)0x0f635c8c * t[24 + o];
 6321        t[12 + o] += (sword64)0x25bf7a4c * t[24 + o];
 6322        t[13 + o] += (sword64)0x2d944a70 * t[24 + o];
 6323        t[14 + o] += (sword64)0x18eec490 * t[24 + o];
 6324        t[15 + o] += (sword64)0x20cd7704 * t[24 + o];
 6325    }
 6326#else
 6327    t[ 8] += (sword64)0x129eec34 * t[24];
 6328    t[ 9] += (sword64)0x21cf5b54 * t[24];
 6329    t[10] += (sword64)0x29c2ab70 * t[24];
 6330    t[11] += (sword64)0x0f635c8c * t[24];
 6331    t[12] += (sword64)0x25bf7a4c * t[24];
 6332    t[13] += (sword64)0x2d944a70 * t[24];
 6333    t[14] += (sword64)0x18eec490 * t[24];
 6334    t[15] += (sword64)0x20cd7704 * t[24];
 6335    t[ 9] += (sword64)0x129eec34 * t[25];
 6336    t[10] += (sword64)0x21cf5b54 * t[25];
 6337    t[11] += (sword64)0x29c2ab70 * t[25];
 6338    t[12] += (sword64)0x0f635c8c * t[25];
 6339    t[13] += (sword64)0x25bf7a4c * t[25];
 6340    t[14] += (sword64)0x2d944a70 * t[25];
 6341    t[15] += (sword64)0x18eec490 * t[25];
 6342    t[16] += (sword64)0x20cd7704 * t[25];
 6343    t[10] += (sword64)0x129eec34 * t[26];
 6344    t[11] += (sword64)0x21cf5b54 * t[26];
 6345    t[12] += (sword64)0x29c2ab70 * t[26];
 6346    t[13] += (sword64)0x0f635c8c * t[26];
 6347    t[14] += (sword64)0x25bf7a4c * t[26];
 6348    t[15] += (sword64)0x2d944a70 * t[26];
 6349    t[16] += (sword64)0x18eec490 * t[26];
 6350    t[17] += (sword64)0x20cd7704 * t[26];
 6351    t[11] += (sword64)0x129eec34 * t[27];
 6352    t[12] += (sword64)0x21cf5b54 * t[27];
 6353    t[13] += (sword64)0x29c2ab70 * t[27];
 6354    t[14] += (sword64)0x0f635c8c * t[27];
 6355    t[15] += (sword64)0x25bf7a4c * t[27];
 6356    t[16] += (sword64)0x2d944a70 * t[27];
 6357    t[17] += (sword64)0x18eec490 * t[27];
 6358    t[18] += (sword64)0x20cd7704 * t[27];
 6359    t[12] += (sword64)0x129eec34 * t[28];
 6360    t[13] += (sword64)0x21cf5b54 * t[28];
 6361    t[14] += (sword64)0x29c2ab70 * t[28];
 6362    t[15] += (sword64)0x0f635c8c * t[28];
 6363    t[16] += (sword64)0x25bf7a4c * t[28];
 6364    t[17] += (sword64)0x2d944a70 * t[28];
 6365    t[18] += (sword64)0x18eec490 * t[28];
 6366    t[19] += (sword64)0x20cd7704 * t[28];
 6367    t[13] += (sword64)0x129eec34 * t[29];
 6368    t[14] += (sword64)0x21cf5b54 * t[29];
 6369    t[15] += (sword64)0x29c2ab70 * t[29];
 6370    t[16] += (sword64)0x0f635c8c * t[29];
 6371    t[17] += (sword64)0x25bf7a4c * t[29];
 6372    t[18] += (sword64)0x2d944a70 * t[29];
 6373    t[19] += (sword64)0x18eec490 * t[29];
 6374    t[20] += (sword64)0x20cd7704 * t[29];
 6375    t[14] += (sword64)0x129eec34 * t[30];
 6376    t[15] += (sword64)0x21cf5b54 * t[30];
 6377    t[16] += (sword64)0x29c2ab70 * t[30];
 6378    t[17] += (sword64)0x0f635c8c * t[30];
 6379    t[18] += (sword64)0x25bf7a4c * t[30];
 6380    t[19] += (sword64)0x2d944a70 * t[30];
 6381    t[20] += (sword64)0x18eec490 * t[30];
 6382    t[21] += (sword64)0x20cd7704 * t[30];
 6383    t[15] += (sword64)0x129eec34 * t[31];
 6384    t[16] += (sword64)0x21cf5b54 * t[31];
 6385    t[17] += (sword64)0x29c2ab70 * t[31];
 6386    t[18] += (sword64)0x0f635c8c * t[31];
 6387    t[19] += (sword64)0x25bf7a4c * t[31];
 6388    t[20] += (sword64)0x2d944a70 * t[31];
 6389    t[21] += (sword64)0x18eec490 * t[31];
 6390    t[22] += (sword64)0x20cd7704 * t[31];
 6391#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 6392    /* Propagate carries */
 6393    c = t[ 8] >> 28; t[ 9] += c; t[ 8] = t[ 8] & 0xfffffff;
 6394    c = t[ 9] >> 28; t[10] += c; t[ 9] = t[ 9] & 0xfffffff;
 6395    c = t[10] >> 28; t[11] += c; t[10] = t[10] & 0xfffffff;
 6396    c = t[11] >> 28; t[12] += c; t[11] = t[11] & 0xfffffff;
 6397    c = t[12] >> 28; t[13] += c; t[12] = t[12] & 0xfffffff;
 6398    c = t[13] >> 28; t[14] += c; t[13] = t[13] & 0xfffffff;
 6399    c = t[14] >> 28; t[15] += c; t[14] = t[14] & 0xfffffff;
 6400    c = t[15] >> 28; t[16] += c; t[15] = t[15] & 0xfffffff;
 6401    c = t[16] >> 28; t[17] += c; t[16] = t[16] & 0xfffffff;
 6402    c = t[17] >> 28; t[18] += c; t[17] = t[17] & 0xfffffff;
 6403    c = t[18] >> 28; t[19] += c; t[18] = t[18] & 0xfffffff;
 6404    c = t[19] >> 28; t[20] += c; t[19] = t[19] & 0xfffffff;
 6405    c = t[20] >> 28; t[21] += c; t[20] = t[20] & 0xfffffff;
 6406    c = t[21] >> 28; t[22] += c; t[21] = t[21] & 0xfffffff;
 6407    c = t[22] >> 28; t[23] += c; t[22] = t[22] & 0xfffffff;
 6408    /* Mod bottom half of extra words */
 6409#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 6410    for (o = 0; o < 8; o++) {
 6411        t[ 0 + o] += (sword64)0x129eec34 * t[16 + o];
 6412        t[ 1 + o] += (sword64)0x21cf5b54 * t[16 + o];
 6413        t[ 2 + o] += (sword64)0x29c2ab70 * t[16 + o];
 6414        t[ 3 + o] += (sword64)0x0f635c8c * t[16 + o];
 6415        t[ 4 + o] += (sword64)0x25bf7a4c * t[16 + o];
 6416        t[ 5 + o] += (sword64)0x2d944a70 * t[16 + o];
 6417        t[ 6 + o] += (sword64)0x18eec490 * t[16 + o];
 6418        t[ 7 + o] += (sword64)0x20cd7704 * t[16 + o];
 6419    }
 6420#else
 6421    t[ 0] += (sword64)0x129eec34 * t[16];
 6422    t[ 1] += (sword64)0x21cf5b54 * t[16];
 6423    t[ 2] += (sword64)0x29c2ab70 * t[16];
 6424    t[ 3] += (sword64)0x0f635c8c * t[16];
 6425    t[ 4] += (sword64)0x25bf7a4c * t[16];
 6426    t[ 5] += (sword64)0x2d944a70 * t[16];
 6427    t[ 6] += (sword64)0x18eec490 * t[16];
 6428    t[ 7] += (sword64)0x20cd7704 * t[16];
 6429    t[ 1] += (sword64)0x129eec34 * t[17];
 6430    t[ 2] += (sword64)0x21cf5b54 * t[17];
 6431    t[ 3] += (sword64)0x29c2ab70 * t[17];
 6432    t[ 4] += (sword64)0x0f635c8c * t[17];
 6433    t[ 5] += (sword64)0x25bf7a4c * t[17];
 6434    t[ 6] += (sword64)0x2d944a70 * t[17];
 6435    t[ 7] += (sword64)0x18eec490 * t[17];
 6436    t[ 8] += (sword64)0x20cd7704 * t[17];
 6437    t[ 2] += (sword64)0x129eec34 * t[18];
 6438    t[ 3] += (sword64)0x21cf5b54 * t[18];
 6439    t[ 4] += (sword64)0x29c2ab70 * t[18];
 6440    t[ 5] += (sword64)0x0f635c8c * t[18];
 6441    t[ 6] += (sword64)0x25bf7a4c * t[18];
 6442    t[ 7] += (sword64)0x2d944a70 * t[18];
 6443    t[ 8] += (sword64)0x18eec490 * t[18];
 6444    t[ 9] += (sword64)0x20cd7704 * t[18];
 6445    t[ 3] += (sword64)0x129eec34 * t[19];
 6446    t[ 4] += (sword64)0x21cf5b54 * t[19];
 6447    t[ 5] += (sword64)0x29c2ab70 * t[19];
 6448    t[ 6] += (sword64)0x0f635c8c * t[19];
 6449    t[ 7] += (sword64)0x25bf7a4c * t[19];
 6450    t[ 8] += (sword64)0x2d944a70 * t[19];
 6451    t[ 9] += (sword64)0x18eec490 * t[19];
 6452    t[10] += (sword64)0x20cd7704 * t[19];
 6453    t[ 4] += (sword64)0x129eec34 * t[20];
 6454    t[ 5] += (sword64)0x21cf5b54 * t[20];
 6455    t[ 6] += (sword64)0x29c2ab70 * t[20];
 6456    t[ 7] += (sword64)0x0f635c8c * t[20];
 6457    t[ 8] += (sword64)0x25bf7a4c * t[20];
 6458    t[ 9] += (sword64)0x2d944a70 * t[20];
 6459    t[10] += (sword64)0x18eec490 * t[20];
 6460    t[11] += (sword64)0x20cd7704 * t[20];
 6461    t[ 5] += (sword64)0x129eec34 * t[21];
 6462    t[ 6] += (sword64)0x21cf5b54 * t[21];
 6463    t[ 7] += (sword64)0x29c2ab70 * t[21];
 6464    t[ 8] += (sword64)0x0f635c8c * t[21];
 6465    t[ 9] += (sword64)0x25bf7a4c * t[21];
 6466    t[10] += (sword64)0x2d944a70 * t[21];
 6467    t[11] += (sword64)0x18eec490 * t[21];
 6468    t[12] += (sword64)0x20cd7704 * t[21];
 6469    t[ 6] += (sword64)0x129eec34 * t[22];
 6470    t[ 7] += (sword64)0x21cf5b54 * t[22];
 6471    t[ 8] += (sword64)0x29c2ab70 * t[22];
 6472    t[ 9] += (sword64)0x0f635c8c * t[22];
 6473    t[10] += (sword64)0x25bf7a4c * t[22];
 6474    t[11] += (sword64)0x2d944a70 * t[22];
 6475    t[12] += (sword64)0x18eec490 * t[22];
 6476    t[13] += (sword64)0x20cd7704 * t[22];
 6477    t[ 7] += (sword64)0x129eec34 * t[23];
 6478    t[ 8] += (sword64)0x21cf5b54 * t[23];
 6479    t[ 9] += (sword64)0x29c2ab70 * t[23];
 6480    t[10] += (sword64)0x0f635c8c * t[23];
 6481    t[11] += (sword64)0x25bf7a4c * t[23];
 6482    t[12] += (sword64)0x2d944a70 * t[23];
 6483    t[13] += (sword64)0x18eec490 * t[23];
 6484    t[14] += (sword64)0x20cd7704 * t[23];
 6485#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 6486    /* Propagate carries */
 6487    c = t[ 0] >> 28; t[ 1] += c; rd[ 0] = (sword32)(t[ 0] & 0xfffffff);
 6488    c = t[ 1] >> 28; t[ 2] += c; rd[ 1] = (sword32)(t[ 1] & 0xfffffff);
 6489    c = t[ 2] >> 28; t[ 3] += c; rd[ 2] = (sword32)(t[ 2] & 0xfffffff);
 6490    c = t[ 3] >> 28; t[ 4] += c; rd[ 3] = (sword32)(t[ 3] & 0xfffffff);
 6491    c = t[ 4] >> 28; t[ 5] += c; rd[ 4] = (sword32)(t[ 4] & 0xfffffff);
 6492    c = t[ 5] >> 28; t[ 6] += c; rd[ 5] = (sword32)(t[ 5] & 0xfffffff);
 6493    c = t[ 6] >> 28; t[ 7] += c; rd[ 6] = (sword32)(t[ 6] & 0xfffffff);
 6494    c = t[ 7] >> 28; t[ 8] += c; rd[ 7] = (sword32)(t[ 7] & 0xfffffff);
 6495    c = t[ 8] >> 28; t[ 9] += c; rd[ 8] = (sword32)(t[ 8] & 0xfffffff);
 6496    c = t[ 9] >> 28; t[10] += c; rd[ 9] = (sword32)(t[ 9] & 0xfffffff);
 6497    c = t[10] >> 28; t[11] += c; rd[10] = (sword32)(t[10] & 0xfffffff);
 6498    c = t[11] >> 28; t[12] += c; rd[11] = (sword32)(t[11] & 0xfffffff);
 6499    c = t[12] >> 28; t[13] += c; rd[12] = (sword32)(t[12] & 0xfffffff);
 6500    c = t[13] >> 28; t[14] += c; rd[13] = (sword32)(t[13] & 0xfffffff);
 6501    c = t[14] >> 28; t[15] += c; rd[14] = (sword32)(t[14] & 0xfffffff);
 6502    rd[15] = (word32)t[15];
 6503    /* Mod bits over 28 in last word */
 6504    o = rd[15] >> 26; rd[15] &= 0x3ffffff;
 6505    rd[ 0] += 0x4a7bb0d * o;
 6506    rd[ 1] += 0x873d6d5 * o;
 6507    rd[ 2] += 0xa70aadc * o;
 6508    rd[ 3] += 0x3d8d723 * o;
 6509    rd[ 4] += 0x96fde93 * o;
 6510    rd[ 5] += 0xb65129c * o;
 6511    rd[ 6] += 0x63bb124 * o;
 6512    rd[ 7] += 0x8335dc1 * o;
 6513    /* Propagate carries */
 6514    o = rd[ 0] >> 28; rd[ 1] += o; rd[ 0] = rd[ 0] & 0xfffffff;
 6515    o = rd[ 1] >> 28; rd[ 2] += o; rd[ 1] = rd[ 1] & 0xfffffff;
 6516    o = rd[ 2] >> 28; rd[ 3] += o; rd[ 2] = rd[ 2] & 0xfffffff;
 6517    o = rd[ 3] >> 28; rd[ 4] += o; rd[ 3] = rd[ 3] & 0xfffffff;
 6518    o = rd[ 4] >> 28; rd[ 5] += o; rd[ 4] = rd[ 4] & 0xfffffff;
 6519    o = rd[ 5] >> 28; rd[ 6] += o; rd[ 5] = rd[ 5] & 0xfffffff;
 6520    o = rd[ 6] >> 28; rd[ 7] += o; rd[ 6] = rd[ 6] & 0xfffffff;
 6521    o = rd[ 7] >> 28; rd[ 8] += o; rd[ 7] = rd[ 7] & 0xfffffff;
 6522    o = rd[ 8] >> 28; rd[ 9] += o; rd[ 8] = rd[ 8] & 0xfffffff;
 6523    o = rd[ 9] >> 28; rd[10] += o; rd[ 9] = rd[ 9] & 0xfffffff;
 6524    o = rd[10] >> 28; rd[11] += o; rd[10] = rd[10] & 0xfffffff;
 6525    o = rd[11] >> 28; rd[12] += o; rd[11] = rd[11] & 0xfffffff;
 6526    o = rd[12] >> 28; rd[13] += o; rd[12] = rd[12] & 0xfffffff;
 6527    o = rd[13] >> 28; rd[14] += o; rd[13] = rd[13] & 0xfffffff;
 6528    o = rd[14] >> 28; rd[15] += o; rd[14] = rd[14] & 0xfffffff;
 6529    /* Reduce to mod order. */
 6530    u = 0;
 6531    u += (sword32)rd[0] - (sword32)0x0b5844f3L; u >>= 28;
 6532    u += (sword32)rd[1] - (sword32)0x078c292aL; u >>= 28;
 6533    u += (sword32)rd[2] - (sword32)0x058f5523L; u >>= 28;
 6534    u += (sword32)rd[3] - (sword32)0x0c2728dcL; u >>= 28;
 6535    u += (sword32)rd[4] - (sword32)0x0690216cL; u >>= 28;
 6536    u += (sword32)rd[5] - (sword32)0x049aed63L; u >>= 28;
 6537    u += (sword32)rd[6] - (sword32)0x09c44edbL; u >>= 28;
 6538    u += (sword32)rd[7] - (sword32)0x07cca23eL; u >>= 28;
 6539    u += (sword32)rd[8] - (sword32)0x0fffffffL; u >>= 28;
 6540    u += (sword32)rd[9] - (sword32)0x0fffffffL; u >>= 28;
 6541    u += (sword32)rd[10] - (sword32)0x0fffffffL; u >>= 28;
 6542    u += (sword32)rd[11] - (sword32)0x0fffffffL; u >>= 28;
 6543    u += (sword32)rd[12] - (sword32)0x0fffffffL; u >>= 28;
 6544    u += (sword32)rd[13] - (sword32)0x0fffffffL; u >>= 28;
 6545    u += (sword32)rd[14] - (sword32)0x0fffffffL; u >>= 28;
 6546    u += (sword32)rd[15] - (sword32)0x03ffffffL; u >>= 28;
 6547    o = (word32)0 - (u >= 0);
 6548    u = 0;
 6549    u += (sword32)rd[0] - (sword32)((word32)0x0b5844f3L & o);
 6550    rd[0] = u & 0xfffffff;
 6551    u >>= 28;
 6552    u += (sword32)rd[1] - (sword32)((word32)0x078c292aL & o);
 6553    rd[1] = u & 0xfffffff;
 6554    u >>= 28;
 6555    u += (sword32)rd[2] - (sword32)((word32)0x058f5523L & o);
 6556    rd[2] = u & 0xfffffff;
 6557    u >>= 28;
 6558    u += (sword32)rd[3] - (sword32)((word32)0x0c2728dcL & o);
 6559    rd[3] = u & 0xfffffff;
 6560    u >>= 28;
 6561    u += (sword32)rd[4] - (sword32)((word32)0x0690216cL & o);
 6562    rd[4] = u & 0xfffffff;
 6563    u >>= 28;
 6564    u += (sword32)rd[5] - (sword32)((word32)0x049aed63L & o);
 6565    rd[5] = u & 0xfffffff;
 6566    u >>= 28;
 6567    u += (sword32)rd[6] - (sword32)((word32)0x09c44edbL & o);
 6568    rd[6] = u & 0xfffffff;
 6569    u >>= 28;
 6570    u += (sword32)rd[7] - (sword32)((word32)0x07cca23eL & o);
 6571    rd[7] = u & 0xfffffff;
 6572    u >>= 28;
 6573    u += (sword32)rd[8] - (sword32)((word32)0x0fffffffL & o);
 6574    rd[8] = u & 0xfffffff;
 6575    u >>= 28;
 6576    u += (sword32)rd[9] - (sword32)((word32)0x0fffffffL & o);
 6577    rd[9] = u & 0xfffffff;
 6578    u >>= 28;
 6579    u += (sword32)rd[10] - (sword32)((word32)0x0fffffffL & o);
 6580    rd[10] = u & 0xfffffff;
 6581    u >>= 28;
 6582    u += (sword32)rd[11] - (sword32)((word32)0x0fffffffL & o);
 6583    rd[11] = u & 0xfffffff;
 6584    u >>= 28;
 6585    u += (sword32)rd[12] - (sword32)((word32)0x0fffffffL & o);
 6586    rd[12] = u & 0xfffffff;
 6587    u >>= 28;
 6588    u += (sword32)rd[13] - (sword32)((word32)0x0fffffffL & o);
 6589    rd[13] = u & 0xfffffff;
 6590    u >>= 28;
 6591    u += (sword32)rd[14] - (sword32)((word32)0x0fffffffL & o);
 6592    rd[14] = u & 0xfffffff;
 6593    u >>= 28;
 6594    u += (sword32)rd[15] - (sword32)((word32)0x03ffffffL & o);
 6595    rd[15] = u & 0xfffffff;
 6596
 6597    /* Convert to bytes */
 6598#ifdef WOLFSSL_ED448_NO_LARGE_CODE
 6599    {
 6600        word32 ow = 0;
 6601        for (o = 0; o < 56; o += 7) {
 6602            r[o + 0]  = (byte)(rd[ow] >>  0);
 6603            r[o + 1]  = (byte)(rd[ow] >>  8);
 6604            r[o + 2]  = (byte)(rd[ow] >> 16);
 6605            r[o + 3]  = (byte)(rd[ow] >> 24);
 6606            ow++;
 6607            r[o + 3] += (byte)((rd[ow] >>  0) << 4);
 6608            r[o + 4]  = (byte)(rd[ow] >>  4);
 6609            r[o + 5]  = (byte)(rd[ow] >> 12);
 6610            r[o + 6]  = (byte)(rd[ow] >> 20);
 6611            ow++;
 6612        }
 6613        r[56] = 0;
 6614    }
 6615#else
 6616    r[ 0] = (byte)(rd[0 ] >>  0);
 6617    r[ 1] = (byte)(rd[0 ] >>  8);
 6618    r[ 2] = (byte)(rd[0 ] >> 16);
 6619    r[ 3] = (byte)((byte)(rd[0 ] >> 24) + (byte)((rd[1 ] >>  0) <<  4));
 6620    r[ 4] = (byte)(rd[1 ] >>  4);
 6621    r[ 5] = (byte)(rd[1 ] >> 12);
 6622    r[ 6] = (byte)(rd[1 ] >> 20);
 6623    r[ 7] = (byte)(rd[2 ] >>  0);
 6624    r[ 8] = (byte)(rd[2 ] >>  8);
 6625    r[ 9] = (byte)(rd[2 ] >> 16);
 6626    r[10] = (byte)((byte)(rd[2 ] >> 24) + (byte)((rd[3 ] >>  0) <<  4));
 6627    r[11] = (byte)(rd[3 ] >>  4);
 6628    r[12] = (byte)(rd[3 ] >> 12);
 6629    r[13] = (byte)(rd[3 ] >> 20);
 6630    r[14] = (byte)(rd[4 ] >>  0);
 6631    r[15] = (byte)(rd[4 ] >>  8);
 6632    r[16] = (byte)(rd[4 ] >> 16);
 6633    r[17] = (byte)((byte)(rd[4 ] >> 24) + (byte)((rd[5 ] >>  0) <<  4));
 6634    r[18] = (byte)(rd[5 ] >>  4);
 6635    r[19] = (byte)(rd[5 ] >> 12);
 6636    r[20] = (byte)(rd[5 ] >> 20);
 6637    r[21] = (byte)(rd[6 ] >>  0);
 6638    r[22] = (byte)(rd[6 ] >>  8);
 6639    r[23] = (byte)(rd[6 ] >> 16);
 6640    r[24] = (byte)((byte)(rd[6 ] >> 24) + (byte)((rd[7 ] >>  0) <<  4));
 6641    r[25] = (byte)(rd[7 ] >>  4);
 6642    r[26] = (byte)(rd[7 ] >> 12);
 6643    r[27] = (byte)(rd[7 ] >> 20);
 6644    r[28] = (byte)(rd[8 ] >>  0);
 6645    r[29] = (byte)(rd[8 ] >>  8);
 6646    r[30] = (byte)(rd[8 ] >> 16);
 6647    r[31] = (byte)((byte)(rd[8 ] >> 24) + (byte)((rd[9 ] >>  0) <<  4));
 6648    r[32] = (byte)(rd[9 ] >>  4);
 6649    r[33] = (byte)(rd[9 ] >> 12);
 6650    r[34] = (byte)(rd[9 ] >> 20);
 6651    r[35] = (byte)(rd[10] >>  0);
 6652    r[36] = (byte)(rd[10] >>  8);
 6653    r[37] = (byte)(rd[10] >> 16);
 6654    r[38] = (byte)((byte)(rd[10] >> 24) + (byte)((rd[11] >>  0) <<  4));
 6655    r[39] = (byte)(rd[11] >>  4);
 6656    r[40] = (byte)(rd[11] >> 12);
 6657    r[41] = (byte)(rd[11] >> 20);
 6658    r[42] = (byte)(rd[12] >>  0);
 6659    r[43] = (byte)(rd[12] >>  8);
 6660    r[44] = (byte)(rd[12] >> 16);
 6661    r[45] = (byte)((byte)(rd[12] >> 24) + (byte)((rd[13] >>  0) <<  4));
 6662    r[46] = (byte)(rd[13] >>  4);
 6663    r[47] = (byte)(rd[13] >> 12);
 6664    r[48] = (byte)(rd[13] >> 20);
 6665    r[49] = (byte)(rd[14] >>  0);
 6666    r[50] = (byte)(rd[14] >>  8);
 6667    r[51] = (byte)(rd[14] >> 16);
 6668    r[52] = (byte)((byte)(rd[14] >> 24) + (byte)((rd[15] >>  0) <<  4));
 6669    r[53] = (byte)(rd[15] >>  4);
 6670    r[54] = (byte)(rd[15] >> 12);
 6671    r[55] = (byte)(rd[15] >> 20);
 6672    r[56] = 0;
 6673#endif /* WOLFSSL_ED448_NO_LARGE_CODE */
 6674}
 6675
 6676/* Precomputed multiples of the base point. */
 6677static const ge448_precomp base[58][8] = {
 6678{
 6679    {
 6680        { 0x70cc05e, 0x26a82bc, 0x0938e26, 0x80e18b0, 0x511433b, 0xf72ab66,
 6681          0x412ae1a, 0xa3d3a46, 0xa6de324, 0x0f1767e, 0x4657047, 0x36da9e1,
 6682          0x5a622bf, 0xed221d1, 0x66bed0d, 0x4f1970c },
 6683        { 0x230fa14, 0x08795bf, 0x7c8ad98, 0x132c4ed, 0x9c4fdbd, 0x1ce67c3,
 6684          0x73ad3ff, 0x05a0c2d, 0x7789c1e, 0xa398408, 0xa73736c, 0xc7624be,
 6685          0x03756c9, 0x2488762, 0x16eb6bc, 0x693f467 }
 6686    },
 6687    {
 6688        { 0x5555555, 0x5555555, 0x5555555, 0x5555555, 0x5555555, 0x5555555,
 6689          0x5555555, 0x5555555, 0xaaaaaa9, 0xaaaaaaa, 0xaaaaaaa, 0xaaaaaaa,
 6690          0xaaaaaaa, 0xaaaaaaa, 0xaaaaaaa, 0xaaaaaaa },
 6691        { 0xa9386ed, 0xeafbcde, 0xda06bda, 0xb2bed1c, 0x098bbbc, 0x833a2a3,
 6692          0x80d6565, 0x8ad8c4b, 0x7e36d72, 0x884dd7b, 0xed7a035, 0xc2b0036,
 6693          0x6205086, 0x8db359d, 0x34ad704, 0xae05e96 }
 6694    },
 6695    {
 6696        { 0x6ff2f8f, 0x2817328, 0xda85757, 0xb769465, 0xfd6e862, 0xf7f6271,
 6697          0x8daa9cb, 0x4a3fcfe, 0x2ba077a, 0xda82c7e, 0x41b8b8c, 0x9433322,
 6698          0x4316cb6, 0x6455bd6, 0xb9108af, 0x0865886 },
 6699        { 0x88ed6fc, 0x22ac135, 0x02dafb8, 0x9a68fed, 0x7f0bffa, 0x1bdb676,
 6700          0x8bb3a33, 0xec4e1d5, 0xce43c82, 0x56c3b9f, 0xa8d9523, 0xa6449a4,
 6701          0xa7ad43a, 0xf706cbd, 0xbd5125c, 0xe005a8d }
 6702    },
 6703    {
 6704        { 0x8ba7f30, 0xce42ac4, 0x9e120e2, 0xe179894, 0x8ba21ae, 0xf1515dd,
 6705          0x301b7bd, 0x70c74cc, 0x3fda4be, 0x0891c69, 0xa09cf4e, 0x29ea255,
 6706          0x17226f9, 0x2c1419a, 0xc6c0cce, 0x49dcbc5 },
 6707        { 0xde51839, 0xe236f86, 0xd4f5b32, 0x44285d0, 0x472b5d4, 0x7ea1ca9,
 6708          0x1c0d8f9, 0x7b8a5bc, 0x90dc322, 0x57d845c, 0x7c02f04, 0x1b979cb,
 6709          0x3a5de02, 0x27164b3, 0x4accde5, 0xd49077e }
 6710    },
 6711    {
 6712        { 0x2030034, 0xa99d109, 0x6f950d0, 0x2d8cefc, 0xc96f07b, 0x7a920c3,
 6713          0x08bc0d5, 0x9588128, 0x6d761e8, 0x62ada75, 0xbcf7285, 0x0def80c,
 6714          0x01eedb5, 0x0e2ba76, 0x5a48dcb, 0x7a9f933 },
 6715        { 0x2f435eb, 0xb473147, 0xf225443, 0x5512881, 0x33c5840, 0xee59d2b,
 6716          0x127d7a4, 0xb698017, 0x86551f7, 0xb18fced, 0xca1823a, 0x0ade260,
 6717          0xce4fd58, 0xd3b9109, 0xa2517ed, 0xadfd751 }
 6718    },
 6719    {
 6720        { 0xabef79c, 0x7fd7652, 0x443a878, 0x6c20a07, 0x12a7109, 0x5c1840d,
 6721          0x876451c, 0x4a06e4a, 0xad95f65, 0x3bed0b4, 0x3fb0260, 0x25d2e67,
 6722          0xaebd971, 0x2e00349, 0x4498b72, 0x54523e0 },
 6723        { 0x07c7bcc, 0xea5d1da, 0x38ea98c, 0xcce7769, 0x61d2b3e, 0x80284e8,
 6724          0x6e1ff1b, 0x48de76b, 0x9c58522, 0x7b12186, 0x2765a1a, 0xbfd053a,
 6725          0x056c667, 0x2d743ec, 0xd8ab61c, 0x3f99b9c }
 6726    },
 6727    {
 6728        { 0xeb5eaf7, 0xdf9567c, 0x78ac7d7, 0x110a6b4, 0x4706e0b, 0x2d33501,
 6729          0x0b5a209, 0x0df9c7b, 0x568e684, 0xba4223d, 0x8c3719b, 0xd78af2d,
 6730          0xa5291b6, 0x77467b9, 0x5c89bef, 0x079748e },
 6731        { 0xdac377f, 0xe20d3fa, 0x72b5c09, 0x34e8669, 0xc40bbb7, 0xd8687a3,
 6732          0xd2f84c9, 0x7b3946f, 0xa78f50e, 0xd00e40c, 0x17e7179, 0xb875944,
 6733          0xcb23583, 0x9c7373b, 0xc90fd69, 0x7ddeda3 }
 6734    },
 6735    {
 6736        { 0x153bde0, 0x2538a67, 0x406b696, 0x223aca9, 0x1ad713e, 0xf9080dc,
 6737          0xd816a64, 0x6c4cb47, 0x5dc8b97, 0xbc28568, 0xc08e2d7, 0xd97b037,
 6738          0x5d0e66b, 0x5b63fb4, 0x520e8a3, 0xd1f1bc5 },
 6739        { 0xe69e09b, 0x4eb873c, 0xbc8ee45, 0x1663164, 0xba8d89f, 0x08f7003,
 6740          0x386ad82, 0x4b98ead, 0xbd94c7b, 0xa4b93b7, 0xc6b38b3, 0x46ba408,
 6741          0xf3574ff, 0xdae87d1, 0xe9bea9b, 0xc7564f4 }
 6742    },
 6743},
 6744{
 6745    {
 6746        { 0x5bfac1c, 0x2e4fdb2, 0xf5f3bca, 0xf0d79aa, 0x20fb7cc, 0xe756b0d,
 6747          0xb39609a, 0xe3696be, 0x5a5ab58, 0xa019fc3, 0x3b281dd, 0xa2b2485,
 6748          0x61ac0a2, 0xe3e2be7, 0xeb56730, 0xf19c34f },
 6749        { 0xa30241e, 0x2d25ce8, 0xb73d7a1, 0xf5661ea, 0xdaac9f4, 0x4611ed0,
 6750          0x4ced72c, 0xd544234, 0xe92e985, 0xce78f52, 0x4da4aad, 0x6fe5dd4,
 6751          0x1d363ce, 0xfcaddc6, 0xc9111bf, 0x3beb69c }
 6752    },
 6753    {
 6754        { 0x940ebc9, 0xd2e7660, 0xb17bbe0, 0xe032018, 0x75c0575, 0xad49391,
 6755          0x21c7f34, 0xdd0b147, 0x3e147e0, 0x52c2ba4, 0x0ee8973, 0x7dd03c6,
 6756          0xecf2754, 0x5472e8d, 0xd6482bb, 0x17a1cd1 },
 6757        { 0x8128b3f, 0xdd43b84, 0xea7dd25, 0xf0cae34, 0xff07df2, 0x81ca99f,
 6758          0x92ebbdc, 0x1c89597, 0x72155e6, 0x45c7a68, 0x39ddd08, 0x907a50e,
 6759          0xbb2d89b, 0xbe398c2, 0x1b3b536, 0x38063f9 }
 6760    },
 6761    {
 6762        { 0xf843b23, 0x149fafb, 0xac7f22a, 0x00ab582, 0xf2f4d4c, 0xa3b981b,
 6763          0x4341a22, 0x2ce1a65, 0x7c03b63, 0x68a4074, 0x12f2cf8, 0x63206a2,
 6764          0x5149741, 0xc9961d3, 0xbc7099e, 0xfb85430 },
 6765        { 0x90a9e59, 0x9c91072, 0x06de367, 0x734e94a, 0xdb99214, 0x5cf3cbe,
 6766          0x45b1fb9, 0xc6bce32, 0xdd7be0d, 0x1a82abe, 0xede7d1c, 0xf74976a,
 6767          0x21503bd, 0x7025b7c, 0x0d096ab, 0xf789491 }
 6768    },
 6769    {
 6770        { 0x555a41b, 0x6bd48bb, 0x67de206, 0xfbdd0d0, 0xdd6dfd1, 0x98bc477,
 6771          0x3e40b8a, 0x1d0693b, 0xda32ae4, 0x6e15563, 0xfcebaa2, 0x0194a20,
 6772          0x0980a93, 0xda11615, 0x0109cec, 0x8e11920 },
 6773        { 0xffb9726, 0x8ea0552, 0x047e44b, 0xeba50a4, 0x60ddf76, 0xc050d24,
 6774          0xac690e0, 0xe009204, 0x9b18edc, 0x47b8639, 0xc77f23f, 0x2f5b76a,
 6775          0x0792905, 0x4296c24, 0x06f6dc7, 0x73f6b4a }
 6776    },
 6777    {
 6778        { 0x3b10cad, 0xb6ef9ea, 0xf7c8fce, 0x312843d, 0x8bedf86, 0x5bdcd52,
 6779          0xf6dd823, 0x2889059, 0x08bfde0, 0x04578e9, 0x123e2e5, 0x3245df3,
 6780          0x7ee9e3a, 0xbf461d5, 0x6f94ceb, 0xddec2d4 },
 6781        { 0x145768f, 0x21b43b9, 0xdae962a, 0xe79a8f9, 0xcbb043f, 0xff1972b,
 6782          0x239649b, 0xe3dcf6d, 0xc533b85, 0xed592bd, 0xdbe22d0, 0x14ff94f,
 6783          0xf1d8e22, 0x6c4eb87, 0xd18cf6d, 0xd8d4c71 }
 6784    },
 6785    {
 6786        { 0x8d96345, 0xcda666c, 0x836cd21, 0x9ecaa25, 0x984606e, 0x6e885bd,
 6787          0x804f054, 0x1dd5fef, 0x6959ae4, 0x9dfff6b, 0xc9b55cc, 0x99b9cf8,
 6788          0x62b9b80, 0xb4716b0, 0x554b128, 0x13ec87c },
 6789        { 0x75aacc2, 0xe696d1f, 0x87fc5ff, 0xf78c993, 0x3809d42, 0x76c0947,
 6790          0xb618fa8, 0x99ce62d, 0x2f53341, 0x35e3e02, 0x0db6c5e, 0x62fc1ac,
 6791          0x00d8b47, 0xa1fb8e6, 0x58f0d1e, 0x0bc1070 }
 6792    },
 6793    {
 6794        { 0x16da513, 0x1f45269, 0xf5cf341, 0x1f2fc04, 0x64d23e0, 0xae92086,
 6795          0xda8a113, 0x4e33082, 0x1cfc085, 0x2688ec6, 0x6e5327f, 0x6f2e8de,
 6796          0xb4e48a8, 0x2070db3, 0x3240ade, 0xd662697 },
 6797        { 0xfbd997b, 0xa6b317f, 0x49e26bd, 0x9fa1b56, 0x8cba0f3, 0xcbf0d25,
 6798          0x17b4745, 0x4a7791b, 0x5c9e190, 0x25f555b, 0x923ec4c, 0x7cd3940,
 6799          0xe98f1b6, 0x16f4c6a, 0xbcd4e0f, 0x7962116 }
 6800    },
 6801    {
 6802        { 0x02491e3, 0x8d58fa3, 0x7ab3898, 0x7cf76c6, 0x647ebc7, 0xbc2f657,
 6803          0xd25f5a3, 0x5f4bfe0, 0xd69505d, 0x503f478, 0x3fb6645, 0x4a889fc,
 6804          0xfa86b18, 0x33e1bc1, 0x5508dd8, 0xabb234f },
 6805        { 0x9a05b48, 0x5348e1b, 0x64dc858, 0x57ac5f1, 0xec8a2d3, 0x21f4d38,
 6806          0xa3a3e9d, 0x5ec6d3c, 0x560a0b8, 0xcd4062e, 0x3433f59, 0x49b74f7,
 6807          0xcab14e3, 0xefd9d87, 0xeb964f5, 0x858ce7f }
 6808    },
 6809},
 6810{
 6811    {
 6812        { 0xeb731b4, 0x7577254, 0x4e2397e, 0x9fff1fb, 0xc821715, 0x749b145,
 6813          0x2e65e67, 0x40619fe, 0x2e618d8, 0x57b8281, 0x707b83e, 0x063186c,
 6814          0x31b24a2, 0xcfc80cb, 0xac75169, 0xcca6185 },
 6815        { 0xb255818, 0x6539f44, 0x0368bce, 0x5895da0, 0x17c7482, 0x841a309,
 6816          0xb1a9c9e, 0x85469e1, 0xe4f7d9d, 0x05664c0, 0x7b35cc0, 0x8a06318,
 6817          0xa0e9b0a, 0x214763a, 0x4b26ac2, 0x1bd872c }
 6818    },
 6819    {
 6820        { 0xa93762b, 0x3578f97, 0x72d52bc, 0x434f69a, 0x22cb565, 0xddcca40,
 6821          0xff20544, 0xa7d1e41, 0x8a66588, 0x823475d, 0x99d7baf, 0x9fc97c7,
 6822          0x660e421, 0x15542f1, 0x843faf6, 0xa7d1f60 },
 6823        { 0x4063ccc, 0xbbfaab5, 0xa49855a, 0x3ad9bad, 0x5bddbfe, 0xffd5f1c,
 6824          0xae87e59, 0x0e419c2, 0xf89956b, 0xdce6ed6, 0xccd8951, 0xf047c21,
 6825          0xa83c991, 0x6ed4a1b, 0x2d28e0a, 0x85af86e }
 6826    },
 6827    {
 6828        { 0x9ed48a8, 0x04433c4, 0x0bc375d, 0xeffa858, 0xfa6e3b5, 0xfb0e1b2,
 6829          0xa1aadda, 0x51483a2, 0xf8b2ea8, 0x733448d, 0xf639f0c, 0xaa0513c,
 6830          0xa23bf84, 0x6bc61a3, 0xdc2430d, 0x3e64f68 },
 6831        { 0xc5876b1, 0x51bf502, 0x1c0dd2a, 0x6b83375, 0x342914f, 0xe597be1,
 6832          0xf8e632c, 0x43d5ab0, 0xd62587b, 0x2696715, 0xed34f24, 0xe87d20a,
 6833          0xe18baf7, 0x25b7e14, 0xe22e084, 0xf5eb753 }
 6834    },
 6835    {
 6836        { 0x24d8295, 0x51da717, 0x18d1340, 0xd478e43, 0x2cf7f66, 0xacf94f4,
 6837          0x3760711, 0x230d7d1, 0x5abc626, 0x078a66a, 0x6b5f6da, 0xd78b0bd,
 6838          0x96d1d0b, 0x23a9713, 0x4bd960f, 0x87623d6 },
 6839        { 0x77db53f, 0x0841a99, 0xf4d03ee, 0x23c1a53, 0x1f95df1, 0x2f62c2e,
 6840          0x116f4e7, 0xd1e2ec1, 0x34811a9, 0x896d2fe, 0xec8096e, 0xad65e2b,
 6841          0xb1744a6, 0x09d36f9, 0xff5ddf7, 0x564bac7 }
 6842    },
 6843    {
 6844        { 0xc3f77cb, 0x48b41e2, 0x0968938, 0x5227673, 0xfd9b452, 0xff1b899,
 6845          0x2e03908, 0x67cf3bf, 0x248a6fb, 0x3731d90, 0x256598f, 0xd800a05,
 6846          0xbdc8530, 0x347d2f2, 0x7ad08a1, 0xc72a300 },
 6847        { 0x1d65f73, 0x5e5be74, 0x4206ead, 0x183d4ae, 0xade4013, 0xcb50c1c,
 6848          0x3102483, 0x39db43d, 0x70d6325, 0x0eb49fa, 0xc1f02b9, 0xa18f6a2,
 6849          0xdbf5e66, 0x3e6fe30, 0x3a82aa5, 0xac4eeb9 }
 6850    },
 6851    {
 6852        { 0x3613d47, 0x295affd, 0xb56f343, 0x7b7e68a, 0x92b173b, 0x9806296,
 6853          0xbad35fb, 0x937061e, 0x5c21eea, 0x2501978, 0x787a746, 0xe92721b,
 6854          0x3651631, 0x463c46c, 0xc6f2d5a, 0x6da4b5d },
 6855        { 0x6e6d18c, 0xcb67cc1, 0x0010588, 0x1b30d52, 0xdb1d1e8, 0x1bb6ea6,
 6856          0xad11474, 0x9c6308a, 0x3d19b1c, 0xc316741, 0xbe4fb79, 0xf2e84d7,
 6857          0xe050f77, 0xeccb873, 0xcc2bf86, 0xf7c8d80 }
 6858    },
 6859    {
 6860        { 0x7ab20e5, 0x16fe2e1, 0xecf3a92, 0x274dead, 0x0972f67, 0x9f43487,
 6861          0x4605751, 0x9a65a45, 0xb8980b2, 0x9351f07, 0x0eb08a5, 0x412962b,
 6862          0x733f440, 0xb8c9bfd, 0x1ca250f, 0xac2cd64 },
 6863        { 0x2ba7d26, 0x68cdd0f, 0x4e0beea, 0xd3d2a4a, 0x9f4a258, 0x50135c1,
 6864          0xf0d02e4, 0xb475e53, 0x589283a, 0x432d8c6, 0xa0a2b6c, 0x29141bf,
 6865          0x13704bc, 0xd7379ec, 0x52459bf, 0x831562c }
 6866    },
 6867    {
 6868        { 0xeeec506, 0x676b366, 0x45da557, 0xdd6cad5, 0x77057d2, 0x9de39cb,
 6869          0xdf05bf1, 0x388c5fe, 0xdfb1f03, 0x6e55650, 0x52126c9, 0xdbceffa,
 6870          0x3a4a220, 0xe4d187b, 0xeb27020, 0xac914f9 },
 6871        { 0xd2e5f30, 0x3f4ab98, 0xdd94451, 0x6ae97da, 0x0d80981, 0x64af695,
 6872          0xf2aa2ce, 0x36b4b90, 0x18fcf59, 0x6adcd7a, 0xc116c81, 0x3ddfe6d,
 6873          0x549b9e3, 0x661072b, 0xec4584d, 0xd9e3134 }
 6874    },
 6875},
 6876{
 6877    {
 6878        { 0xa1e400c, 0x6e46707, 0x551e806, 0xcdc990b, 0x3a07724, 0xfa51251,
 6879          0x1b3e4f5, 0x500553f, 0xef4dac3, 0x67e8b58, 0x2cb4cc7, 0x958349f,
 6880          0x7f9143c, 0x948b4ed, 0x2b7822b, 0xe646d09 },
 6881        { 0x2bc3c26, 0xd185dd5, 0xc837fc9, 0x34ba16e, 0x5a788b7, 0x516d4ba,
 6882          0x56142b0, 0x72f2de7, 0xf445b3d, 0x5846f61, 0xf4631a1, 0xdaec5c9,
 6883          0x169ea9b, 0xa10b18d, 0xaf6751b, 0x85d2998 }
 6884    },
 6885    {
 6886        { 0x43ddf31, 0xda0cac4, 0x1860911, 0x0966e17, 0x3cba600, 0x9c3a717,
 6887          0x571f895, 0x5781880, 0x737ac21, 0x5e2a927, 0x6c253fb, 0x8a46148,
 6888          0x95ee626, 0xe801cf5, 0x5f84fc0, 0x271166a },
 6889        { 0xba856bd, 0x306937f, 0xbe80a43, 0x80cb179, 0xffb5980, 0x70393b2,
 6890          0x660fc64, 0xa8e4a1c, 0xc0d5c98, 0x5078abf, 0xfbd31ff, 0x62ba530,
 6891          0x9e51b88, 0xda60844, 0x355ae15, 0xdb6ecb0 }
 6892    },
 6893    {
 6894        { 0x23c5d49, 0xbcbb6ea, 0x87959bc, 0x08906ba, 0x0991665, 0x61cc088,
 6895          0xd90d13c, 0x21d6b41, 0xd03afe9, 0x0c27ac1, 0x5cfea52, 0x159995f,
 6896          0xbdfe220, 0x4057e20, 0xcbdf058, 0xdd1b349 },
 6897        { 0x2e37159, 0x0cd6626, 0x3eb0d17, 0x8cea8e4, 0x5bce7f0, 0x553af08,
 6898          0x5b6511d, 0xb94cb5f, 0x50e0330, 0x7b8d3a5, 0x57ab7e7, 0x4159110,
 6899          0x6aa886f, 0x320820e, 0xc5b6b81, 0x130d4d6 }
 6900    },
 6901    {
 6902        { 0xc7bb2ed, 0x2f98059, 0xa49bdfb, 0x33ebf4c, 0xb0a675b, 0x04c72a1,
 6903          0xadb6c14, 0x94f9ea4, 0xcf728c0, 0x03376d8, 0x4c6eb6a, 0x5c059d3,
 6904          0xeb8da48, 0x0178408, 0x2956817, 0x8bf607b },
 6905        { 0xceb3d28, 0x7ad2822, 0x37ae653, 0xd07a403, 0xc1e46b2, 0xbc68739,
 6906          0x9154ba9, 0x15d7cca, 0xa26617d, 0x6b97103, 0xb2e0d28, 0xa610314,
 6907          0xfd4d363, 0x52a08ba, 0xc7dc2af, 0x80c2638 }
 6908    },
 6909    {
 6910        { 0x3187140, 0x0cde7ef, 0x4b70acd, 0x93b92ca, 0x7a79cdc, 0x5696e50,
 6911          0x8eaab66, 0x73cc972, 0x8f1b0c7, 0x6b8c5b6, 0x4f7e0b1, 0xb39a318,
 6912          0x376108a, 0x72cfb0d, 0x98536a7, 0x0c53efc },
 6913        { 0x24c2f1e, 0x03b52a8, 0x6399b78, 0x717132e, 0x349a85d, 0x31ebd25,
 6914          0x1a200d4, 0x265ee81, 0x407d7ad, 0x0b1aad2, 0x94d2962, 0x9a9ebc8,
 6915          0x41171d9, 0x994e6cd, 0x6c8fa83, 0x09178d8 }
 6916    },
 6917    {
 6918        { 0xa2593a1, 0x7d1d238, 0xb38fb19, 0x863e93a, 0xe7712a9, 0xd23a4cc,
 6919          0x27efcd5, 0x7477b13, 0x1392f6c, 0x3ba69ff, 0xf7bb5a5, 0x63e0c32,
 6920          0x026effd, 0x20412c0, 0xef424ab, 0xd3ee8e4 },
 6921        { 0x64e5174, 0x14c0b2d, 0xe58c47b, 0x2a611f2, 0xc1e8635, 0xaa58a06,
 6922          0xcf17034, 0x1870c3e, 0x83f1bf3, 0xb0d5e34, 0x16c7eb3, 0xb19905c,
 6923          0x6efa4ca, 0xbf85d62, 0x180f92b, 0xfd16b2f }
 6924    },
 6925    {
 6926        { 0x3adcb48, 0xc0431af, 0xba90496, 0xc9a7a8d, 0x3895294, 0xd765a16,
 6927          0x551de70, 0xb02a41a, 0x749b8a1, 0xb71b261, 0xc6f3e47, 0x0dfa89e,
 6928          0x0f5d9ce, 0x392c0d8, 0x31aee3c, 0x43c59d8 },
 6929        { 0x4d76f49, 0x94bfb6d, 0x27d68a5, 0xe8f5b82, 0x630fd08, 0x78ae1d9,
 6930          0xce1bdae, 0x1379029, 0x66715dc, 0x9689da0, 0xd3278c7, 0x5d4cb24,
 6931          0x9e84fbc, 0x77c9833, 0xea1048c, 0xc8478dc }
 6932    },
 6933    {
 6934        { 0x770d2ba, 0xe4b8f31, 0x42ea095, 0x744f652, 0x036f138, 0xd06e090,
 6935          0x3b078ca, 0xd3a3d5b, 0x78b8417, 0xc7ae541, 0xc738fd7, 0xad6c5d4,
 6936          0x4676454, 0x6178984, 0x5d9a392, 0xfbf3423 },
 6937        { 0xfff772f, 0x8e451a7, 0x5ffbead, 0x8605bb7, 0x930d59f, 0x6f75cc1,
 6938          0x8f3f460, 0xd4f4755, 0x6700c8a, 0xefd2d79, 0x2406421, 0xceb462a,
 6939          0x9dfe8f1, 0x8ed0f97, 0xd1d7600, 0x0280bf1 }
 6940    },
 6941},
 6942{
 6943    {
 6944        { 0xdd9a54d, 0x761c219, 0x86a39c0, 0x1127fcb, 0x4c9bedd, 0x7d0e4f0,
 6945          0x4d976b6, 0x27c017a, 0xda042cf, 0x800c973, 0x2593f11, 0xe7419af,
 6946          0xae67960, 0xbd49448, 0x744fd85, 0xd3b60b7 },
 6947        { 0x61676fe, 0x5e74ed9, 0x39af627, 0x7383ef3, 0x5e62df7, 0x34407e0,
 6948          0x8bf3196, 0xb053461, 0x583b407, 0xd6b7184, 0x55011be, 0xe3d0685,
 6949          0x2124b52, 0x94083d0, 0xf780aaf, 0xa908324 }
 6950    },
 6951    {
 6952        { 0x73ec9c3, 0xb27af1a, 0x70fa725, 0xb66ad9f, 0x8cf73e4, 0x07724f5,
 6953          0x9949358, 0xc3fcd57, 0xda0cc01, 0x06efb79, 0x10597c9, 0x1e977d2,
 6954          0x703e8d6, 0xcd732be, 0x6d0b69e, 0x6fd29bf },
 6955        { 0x667128e, 0xca658ac, 0xc7872b3, 0xca0036a, 0x5355837, 0xc969858,
 6956          0x075cf1c, 0x59f3be8, 0x3809a11, 0x9f1b9b0, 0x9733871, 0x6881ced,
 6957          0xe902a5f, 0x8cda0fb, 0x4e3871e, 0x4d8c69b }
 6958    },
 6959    {
 6960        { 0xddee82f, 0x5c3bd07, 0x2f9723b, 0xe52dd31, 0x74f1be8, 0xcf87611,
 6961          0x35f8657, 0xd9ecbd8, 0xfbfea17, 0x4f77393, 0xd78fe2c, 0xec9579f,
 6962          0x0fb0450, 0x320de92, 0x95d9c47, 0xbfc9b8d },
 6963        { 0x5e1b4c3, 0x818bd42, 0x40e2c78, 0x0e0c41c, 0xbccb0d0, 0x0f7ce9a,
 6964          0x5ef81fb, 0xc7e9fa4, 0x73574ad, 0x2561d6f, 0xd2efb0b, 0xa2d8d99,
 6965          0xe96cd0a, 0xcf8f316, 0x4964807, 0x088f0f1 }
 6966    },
 6967    {
 6968        { 0x45d5a19, 0x0a84989, 0x6c2131f, 0x47ab39c, 0xf3fc35d, 0x5c02824,
 6969          0x9ee8127, 0x3be77c8, 0xc90b80a, 0xa8491b7, 0xa28aa93, 0x5397631,
 6970          0x6c0b344, 0x54d6e81, 0x876d0e4, 0x22878be },
 6971        { 0x6db3bf6, 0xeecb8a4, 0x54577a3, 0x340f295, 0x9a00f85, 0xa779868,
 6972          0x4bb9147, 0x98465d7, 0xda3c736, 0x9532d7d, 0x7504b20, 0x6d574f1,
 6973          0xd86e435, 0x6e356f4, 0x4533887, 0x70c2e8d }
 6974    },
 6975    {
 6976        { 0xd293980, 0xdce5a0a, 0x069010e, 0x32d7210, 0x06deaaa, 0x64af59f,
 6977          0x59239e4, 0xd6b43c4, 0x9199c29, 0x74bf255, 0x11e1e2b, 0x3efff41,
 6978          0xcb0f8d8, 0x1aa7b5e, 0x989e395, 0x9baa22b },
 6979        { 0x7b33ac1, 0xf78db80, 0x54ce80a, 0x05a3b43, 0x7bc8e12, 0x371defc,
 6980          0x1224610, 0x63305a0, 0x6d697ef, 0x028b1ae, 0x1cd8051, 0x7aba39c,
 6981          0x28ee4b4, 0x76ed7a9, 0x7f99901, 0x31bd02a }
 6982    },
 6983    {
 6984        { 0xf075566, 0xf9dab7a, 0xf56f18b, 0x84e29a5, 0xf64e56d, 0x3a4c45a,
 6985          0x6a7302d, 0xcf3644a, 0x156b658, 0xfb40808, 0xf96be52, 0xf33ef9c,
 6986          0xcaa2f08, 0xfe92038, 0xb261894, 0xcfaf2e3 },
 6987        { 0x224ce3f, 0xf2a0dbc, 0x592eb27, 0xed05009, 0x95889d0, 0x501743f,
 6988          0x77c95c2, 0xa88a478, 0xdd63da9, 0x86755fb, 0xc7ee828, 0x9024acf,
 6989          0xf38113b, 0x634b020, 0x6056e64, 0x3c5aacc }
 6990    },
 6991    {
 6992        { 0xa2ef760, 0xe03ff3a, 0xb1c3bac, 0x3b95767, 0x940d754, 0x51ce6aa,
 6993          0x47a9a3d, 0x7cbac3f, 0x34f8d1a, 0xa864ac4, 0x80dbd47, 0x1eff3f2,
 6994          0x7ebd5ca, 0xd8ab660, 0x05b07ed, 0xc4df5c4 },
 6995        { 0xa4f095b, 0x3dc92df, 0x7cdbd9a, 0x5ae36a5, 0x7891e04, 0x7ff2973,
 6996          0x0a5fe7b, 0x37c0313, 0xaa6e35e, 0x210d7b0, 0xbf200d8, 0x6edfb53,
 6997          0x84afb85, 0x787b68d, 0x72c6de3, 0x9b5c49b }
 6998    },
 6999    {
 7000        { 0x4010f4e, 0x5185716, 0x0536ebe, 0xe0b144b, 0x887d663, 0xacabb14,
 7001          0xedf584f, 0xac1caed, 0xaf175a3, 0xb43fb8f, 0xf992a3c, 0x310b6d5,
 7002          0x85178a4, 0xf2c4aa2, 0x8bd56bf, 0x69c9969 },
 7003        { 0xa4d972e, 0x73d6372, 0x9583803, 0x3d5bb2e, 0xd891581, 0x7bf7d18,
 7004          0x568a34a, 0xa5ce5d7, 0x1f45c81, 0x670b433, 0x1f96910, 0x97265a7,
 7005          0xb07c1ea, 0xdb14eb3, 0xfed447c, 0xdf008ea }
 7006    },
 7007},
 7008{
 7009    {
 7010        { 0x00c2f10, 0x0379f5a, 0xd350285, 0xb320b4f, 0x8efdd7d, 0x74e560e,
 7011          0xf46a140, 0xf2f017e, 0x0f34624, 0x2ced1a6, 0xca08ec9, 0x7c4b4e3,
 7012          0x5d8bc6b, 0xdffc2a1, 0x527b007, 0xcc8f3f3 },
 7013        { 0x861fe83, 0x59f8ac4, 0xd03144c, 0x8d48d2c, 0xbfa6dce, 0xa8457d2,
 7014          0x677c136, 0xd7ed333, 0xc228e18, 0xcb8e219, 0x16ab1e4, 0x5f70bc9,
 7015          0x3780370, 0x2ae3a3d, 0x88f17ad, 0x9f33654 }
 7016    },
 7017    {
 7018        { 0x960e4bb, 0xeab0710, 0xab9cfd3, 0xc668a78, 0xb0ef946, 0x2e85553,
 7019          0x8df5df3, 0xa43c4b9, 0x3cb3646, 0x0ecd559, 0x18dbe71, 0x6f543c4,
 7020          0xf59818b, 0xee7edaa, 0x90911c1, 0xc44e8d2 },
 7021        { 0x269b509, 0xafb38b1, 0x52afe2c, 0x9e2737c, 0xccfa664, 0x5b2ef02,
 7022          0xe1cc58b, 0x1e0aeac, 0x5ea134e, 0x37a57e9, 0x83b9fc2, 0xc9c465a,
 7023          0x6e3ecca, 0x4b9e8c7, 0x9bdbab5, 0xca07dbe }
 7024    },
 7025    {
 7026        { 0xb0d7807, 0xd297f3c, 0xf59ce61, 0xee441a5, 0xb2db844, 0x728553b,
 7027          0x640e9e0, 0x90f87e5, 0xcb76dff, 0xaa72cbf, 0x4012d57, 0x065c686,
 7028          0x9678b44, 0xd5ee88f, 0x2177603, 0x3d74b85 },
 7029        { 0x748b68e, 0x3f9c947, 0x8f44d44, 0x03856d9, 0x462426c, 0xde34b84,
 7030          0x845ab29, 0xc16d1bb, 0xd2e18de, 0x9df6217, 0xb154643, 0xec6d219,
 7031          0x2ee0f8f, 0x22a8ec3, 0x91c5175, 0x632ad38 }
 7032    },
 7033    {
 7034        { 0x6869267, 0x19d9d23, 0xfe5532a, 0x628df94, 0x6dc9a01, 0x458d76c,
 7035          0x2cc39c8, 0x405fe6c, 0xf3a04ba, 0x7dddc67, 0x12500c7, 0xfee6303,
 7036          0xa50e9de, 0x580b6f0, 0x6090604, 0xfb5918a },
 7037        { 0x3af6b2d, 0xd715925, 0x1c7d1ec, 0x83d62d6, 0x85858c4, 0x94398c1,
 7038          0x14bfb64, 0x94643dc, 0xaf7db80, 0x758fa38, 0xa8a1557, 0xe2d7d93,
 7039          0x3562af1, 0xa569e85, 0x84346aa, 0xd226bdd }
 7040    },
 7041    {
 7042        { 0xd0ccd20, 0xc2d0a5e, 0x5dbc0cf, 0xeb9adb8, 0x26d7e88, 0xe0a29ee,
 7043          0x84a8e98, 0x8bb39f8, 0x37396ea, 0x511f1c1, 0xc8b2fb3, 0xbc9ec5a,
 7044          0x090e5bc, 0x299d81c, 0x4cdd587, 0xe1dfe34 },
 7045        { 0x5e465b7, 0x80f61f4, 0x1bad59e, 0x5699c53, 0xb79ff92, 0x85e92e4,
 7046          0x9db244c, 0x1e64fce, 0xa22097d, 0x3748574, 0xefff24e, 0xe2aa6b9,
 7047          0x0a10bc6, 0xb951be7, 0x9067a1c, 0x6685326 }
 7048    },
 7049    {
 7050        { 0xa6114d3, 0xf716ddf, 0x037ec1f, 0x9e515f5, 0x44944a6, 0x7734541,
 7051          0xaba97cc, 0x1540c4c, 0x8b54bb7, 0xe41e548, 0xcae37bc, 0x4363156,
 7052          0xf3d2ce8, 0xc384eaf, 0x4c58ba4, 0x72a4f45 },
 7053        { 0xdcaf3fc, 0x0ceb530, 0x78dcdbb, 0x72d5365, 0xc6320fa, 0x9b44084,
 7054          0xeb74c70, 0x6262d34, 0x608e6dc, 0x8abac85, 0x10dd38d, 0x82a5264,
 7055          0xa819b8d, 0xbc39911, 0x03ad0d9, 0xbda15fe }
 7056    },
 7057    {
 7058        { 0xf9dc60b, 0xadbf587, 0x7d846d2, 0xf9d814f, 0xb77bde0, 0xccdd241,
 7059          0x2242f50, 0x89cb6d7, 0xe6360a8, 0x95c0e3e, 0xdf49713, 0x7c7dd5a,
 7060          0x57d5814, 0x68e0e49, 0x0c16571, 0x3aa097d },
 7061        { 0x267d03a, 0xb56b672, 0x8c44af4, 0x4f55708, 0xf3252a5, 0x67c49e7,
 7062          0xc94a469, 0x871d6cf, 0x01fbfaa, 0x57ae998, 0x48a5d8e, 0x5c0e48f,
 7063          0x5e240b9, 0xe9bf9c8, 0x99d41ca, 0xa410189 }
 7064    },
 7065    {
 7066        { 0xb2889b4, 0x6beb0c7, 0x9455370, 0x78b7f89, 0x47ca364, 0xd434214,
 7067          0x9f21e5b, 0xdd9d2da, 0x0a7e4aa, 0xa0c7c18, 0xda1660c, 0x022c0d4,
 7068          0x5a57002, 0xe1f5c16, 0x518f68f, 0x51c7c9e },
 7069        { 0x2586502, 0x6d521b6, 0x183ec1b, 0xa0f2cb3, 0xcaa5e16, 0x578b4e0,
 7070          0x764997f, 0x7bd4fbd, 0x64b1804, 0x7ec56c3, 0x0ee08e4, 0xb75a254,
 7071          0xdc19080, 0x6bf74a6, 0x97d6e59, 0x6ec793d }
 7072    },
 7073},
 7074{
 7075    {
 7076        { 0x0a4beb9, 0x16789d6, 0x9b9c801, 0x512b2cd, 0x8c7bb9c, 0xf8b6d10,
 7077          0x9ebdc8c, 0xd85651e, 0x9ba971a, 0xc945082, 0x7e1cf78, 0x852d9ea,
 7078          0x0af01e2, 0x6a45e35, 0x6151dcf, 0xe6cdadf },
 7079        { 0x2b8c01b, 0xc454bb4, 0x3d54cd2, 0x59e0c49, 0x454d608, 0x8e1e686,
 7080          0xd8c6103, 0x0dbae4b, 0x6c18b18, 0xa5603a1, 0x3369093, 0x227a6b2,
 7081          0x5f3de1c, 0xf1e8929, 0x8ab63c5, 0x42f0b58 }
 7082    },
 7083    {
 7084        { 0x5b596d8, 0xf1974cc, 0x44719f0, 0xee8093f, 0xf6f5b54, 0x40ba933,
 7085          0x2f3d654, 0xd6e5365, 0x26d73b8, 0x9aeb835, 0x0776382, 0x50ed535,
 7086          0xad43875, 0x3be47d6, 0xc786e48, 0x21d56df },
 7087        { 0xb73bb39, 0x8a75e18, 0xf265a78, 0x9eba84c, 0x2e772e7, 0x7c02a4d,
 7088          0x4c1ecd2, 0xf7df6d4, 0x6cef71b, 0xa8d9ea0, 0xcae3b68, 0x86e8f91,
 7089          0x99efefa, 0x2fd1411, 0x214e6f6, 0x0b36ab2 }
 7090    },
 7091    {
 7092        { 0xbdce61c, 0xd79065c, 0xdecb229, 0xcb562ff, 0x4600849, 0xef5d3d1,
 7093          0x1d23ac8, 0x348b31b, 0x15c36b8, 0xb2ea699, 0x4822836, 0x268683d,
 7094          0xc6f0b7d, 0x083edbe, 0x1a7821c, 0xaf4f39d },
 7095        { 0x4e64841, 0x23be6e8, 0x65bf791, 0xe9e2463, 0x02bfd7c, 0xa3208ac,
 7096          0xd01357d, 0x231989c, 0x6422ab4, 0x79b8aad, 0x91b8564, 0x57d2b7e,
 7097          0x8c04421, 0x28ebbcc, 0x7d09c05, 0xdc787d8 }
 7098    },
 7099    {
 7100        { 0x6c7bed5, 0xeb99f62, 0x39cd0e8, 0x326b15f, 0xd860615, 0xd9d53dc,
 7101          0x1bf4205, 0xdf636e7, 0x0752209, 0x1eaa0bf, 0x4744abb, 0x17ce69a,
 7102          0xf3ea2fb, 0x474572d, 0x224a7f3, 0xc4f6f73 },
 7103        { 0x63081b4, 0x7ed86ad, 0x4a20afb, 0xcd4cdc7, 0xb301b2e, 0x7563831,
 7104          0xe038699, 0x5b4d2b1, 0x802a15f, 0xa15d1fa, 0x13e9172, 0x6687aaf,
 7105          0xba6da90, 0x3eccd36, 0x7474e83, 0x34e829d }
 7106    },
 7107    {
 7108        { 0x19c9b27, 0x4cea19b, 0x5f52523, 0xa14c37a, 0x726625c, 0x248b16d,
 7109          0x6cabc21, 0x8c40f9f, 0x32a5c65, 0x918470c, 0x2a98d5b, 0x314056b,
 7110          0x34a0714, 0x6c974cf, 0x4f6314a, 0x0c8f8a9 },
 7111        { 0x70bccfd, 0x4844557, 0x740c9fd, 0xf5835db, 0xa21407c, 0x12e59b5,
 7112          0xdb1689d, 0xbe338e0, 0xdd5e915, 0x5a50ce9, 0xef99f39, 0xb1780e9,
 7113          0xee4d833, 0x1262b55, 0x89c5340, 0x4be3f22 }
 7114    },
 7115    {
 7116        { 0x6c4b858, 0xbb99b90, 0x550ca53, 0xa7724d1, 0x826962e, 0x7d31f5a,
 7117          0xa5804da, 0xf239322, 0x0275048, 0x3e11320, 0x3ee4cb6, 0xcbb1bb8,
 7118          0x1331191, 0xdb86525, 0x7d1d903, 0xb7caf9e },
 7119        { 0x77d7a9d, 0x06e3b05, 0xb3bbbf5, 0x7a132b0, 0x7c50575, 0xd61fbc5,
 7120          0xaf4b646, 0x393f712, 0xcb7efe9, 0xef77972, 0x5ea4995, 0x20e6d5d,
 7121          0xfbbe4c6, 0x0ac23d4, 0xc807f2a, 0x8456617 }
 7122    },
 7123    {
 7124        { 0x5396143, 0x4995fb3, 0xb99dc46, 0xa8b4bd1, 0x4150064, 0x2293e8e,
 7125          0x22a3545, 0x2f77d49, 0xb2192c4, 0xe866b03, 0x5e0aa38, 0x58b01f0,
 7126          0x2ed246b, 0xe406b23, 0xed60974, 0x447edb3 },
 7127        { 0x8869703, 0xf541b33, 0x383420a, 0x6959fe0, 0x4be4e48, 0xd6b39db,
 7128          0xb5714ef, 0x048f3b4, 0x5d9e4b8, 0x68b4968, 0x2177963, 0xbda8e6c,
 7129          0xc4211fe, 0x5094e35, 0x2d46d1a, 0xea591c3 }
 7130    },
 7131    {
 7132        { 0x2fef780, 0x3a768ff, 0x32970c6, 0x4218d28, 0xec6da17, 0xce598e4,
 7133          0xfbb126a, 0xf675645, 0x0427617, 0xb04c23f, 0xe4fce74, 0xc9f93fb,
 7134          0x3c91b00, 0x44a414b, 0x1d3b3cc, 0x4d982f3 },
 7135        { 0xb24cce0, 0xb1d40e8, 0x133e73d, 0x5a21c07, 0x0bb589d, 0x6e9358e,
 7136          0x2399844, 0x39cfb17, 0x166080e, 0x83f7647, 0x450b468, 0xcfe7bf8,
 7137          0x1e8434f, 0x2a288f7, 0x21a81e3, 0xd39f1e5 }
 7138    },
 7139},
 7140{
 7141    {
 7142        { 0x528af6f, 0x78c6f13, 0x94b74d9, 0x0001fe2, 0x01aab44, 0xae77425,
 7143          0xef0039c, 0x7cbe937, 0x0fa2a67, 0xaf3e4f0, 0xda1378e, 0xe28175f,
 7144          0x8ccd90e, 0x72adeed, 0x00af22f, 0x16a8ce1 },
 7145        { 0xcbf63dd, 0x69fae17, 0x9e39e26, 0x6786172, 0xf827a18, 0xe92b3d5,
 7146          0x8403682, 0x4d75e41, 0x9056a79, 0x01a4fd9, 0x20008f5, 0x89efb2d,
 7147          0xb78ff15, 0xa2f6918, 0xa3437f5, 0xf41c870 }
 7148    },
 7149    {
 7150        { 0x7be353c, 0xc840ae5, 0x3fb2691, 0x465a5eb, 0x7eba833, 0x34a89f0,
 7151          0x013346e, 0xf620896, 0xe875df2, 0x563b5f0, 0xfbc44ce, 0x5f7fc8b,
 7152          0xcfedf9d, 0x22fcb5a, 0x7dc691b, 0x7cf68d4 },
 7153        { 0x76a103f, 0x37f7c2d, 0xfd87b7d, 0x728a128, 0xccf2132, 0x7db2ad8,
 7154          0xb100e63, 0xa4c13fe, 0x7b511d5, 0xcd28a51, 0x721ca5c, 0xb910280,
 7155          0xd84bd52, 0xec1305f, 0x2729791, 0xb964642 }
 7156    },
 7157    {
 7158        { 0x5bc7462, 0x83fccdf, 0xd6f012f, 0x01f3dda, 0x3a6a87c, 0x57f1171,
 7159          0xff403ac, 0xedb47ce, 0xbaab073, 0x6c184e5, 0x6f0d6a1, 0x5b17c7d,
 7160          0x3ef2c91, 0x45a4c4f, 0x86a8f41, 0x26c3f7e },
 7161        { 0xb646514, 0x81a6db0, 0xca8b9ae, 0xf84059f, 0x9f02305, 0xd73dab6,
 7162          0xc4b7c6c, 0x0de3fae, 0x696df2f, 0x18abb88, 0x75d7740, 0x45dd1b9,
 7163          0x9ee35bc, 0x3aeccc6, 0xb029f88, 0x478252e }
 7164    },
 7165    {
 7166        { 0x8b2ce15, 0x66bf85b, 0x335709d, 0x1175425, 0x8123874, 0x00169ef,
 7167          0x9b89868, 0xfd3c18c, 0x775204e, 0xb3612f9, 0xc2cd510, 0x4b8d09d,
 7168          0x14559ad, 0xafa12e6, 0x9657493, 0x1ddaa88 },
 7169        { 0x1e77a08, 0x87d700b, 0x14d2e71, 0xaf4cf2f, 0xbf90c94, 0xe00835d,
 7170          0x6dc8429, 0xb16a6ec, 0xf8a4d92, 0x02a7210, 0x3d0c48d, 0x5a5ab40,
 7171          0xb5b9bea, 0x0052b3a, 0xe138f89, 0x6242739 }
 7172    },
 7173    {
 7174        { 0x16b2819, 0x7c215d3, 0xfeb9d7a, 0xdacb65e, 0xd833423, 0xc3c569e,
 7175          0x886a058, 0xbc08435, 0x7e5cb61, 0x132c4db, 0x9422aff, 0x6373a27,
 7176          0xfca9fc4, 0x43b9d7e, 0xdbe465f, 0xe3319a5 },
 7177        { 0x0b39da7, 0x51d3687, 0x4b75492, 0xcb6d798, 0xeadd87a, 0x77eb272,
 7178          0xe0d3f6c, 0xf2fb47d, 0xf9f791c, 0x807fd86, 0x975e885, 0xf01086b,
 7179          0xb6a3604, 0xf9314b5, 0x67be852, 0x8cd4538 }
 7180    },
 7181    {
 7182        { 0x858f79b, 0x7c1e6b3, 0x938caf9, 0xf0477c4, 0x3e88c44, 0xb311bbf,
 7183          0x1e3a3c1, 0x9234c09, 0x95a1d4d, 0x531af2b, 0xb8d1c64, 0xf3cc969,
 7184          0xb51e78d, 0x6f3c328, 0x34e8881, 0x5a1bd6c },
 7185        { 0x3a9336f, 0x2e31239, 0x5ced897, 0x020f0cc, 0x5fab121, 0x4b45d7b,
 7186          0x1841210, 0x8068b1c, 0x8349170, 0x1bd85fc, 0x0f97fe5, 0xfe816d8,
 7187          0x14b84fc, 0x1089818, 0xb93cd48, 0x1d4fabb }
 7188    },
 7189    {
 7190        { 0xaef599e, 0x1f11d45, 0xb09c58a, 0x8d91243, 0xd08c3c3, 0xd2eec7b,
 7191          0x3b02793, 0x5a6039b, 0x8fb2c00, 0xb27fed5, 0xe8acf5e, 0xb5de44d,
 7192          0x6e6c698, 0x2c3e0cd, 0x777180d, 0x2f96ed4 },
 7193        { 0x96d0e36, 0x67de8bf, 0xc9b6d65, 0xd36a2b6, 0x637d59c, 0x8df5d37,
 7194          0xc8d9878, 0x951899f, 0xb13fcf8, 0x0fa090d, 0x1f5c7b4, 0xa527081,
 7195          0x513a37a, 0x56a6560, 0x14dc1fe, 0xc6f5530 }
 7196    },
 7197    {
 7198        { 0x94945d6, 0x7f6def7, 0x8cc8832, 0x2f52fe3, 0xa812ff5, 0x0228ad9,
 7199          0xbb8478a, 0xcd282e5, 0xbe91b07, 0xa0bc9af, 0x11165e2, 0x0360cdc,
 7200          0x7b857e4, 0xb5240fd, 0xfa36b08, 0x67f1665 },
 7201        { 0xad2c93f, 0x84ce588, 0xe8ff4c0, 0x94db722, 0x489c8a3, 0xad2edbb,
 7202          0x7e5f278, 0x6b2d5b8, 0xd1d0798, 0x0265e58, 0x4c5589e, 0xd2c9f26,
 7203          0x4e4074d, 0xde81f09, 0x303089f, 0xc539595 }
 7204    },
 7205},
 7206{
 7207    {
 7208        { 0x83e882c, 0x183492f, 0xb5e6c12, 0x4d58203, 0xefec20b, 0x1ac96c3,
 7209          0xe1cd15e, 0xabd5a5b, 0xcbbb14b, 0x7e1e242, 0xd0543b3, 0x9f03f45,
 7210          0xd678158, 0xc94bc47, 0xa446cad, 0x7917be0 },
 7211        { 0x9b37394, 0x53f2be2, 0x064cc76, 0x0cb0a6c, 0xfba3da3, 0x3a857bc,
 7212          0x80fcb49, 0xac86bc5, 0x30ab146, 0x9d5336e, 0x5bc1270, 0xafb093d,
 7213          0xe5c3b6e, 0x996689d, 0xea076ba, 0x55189fa }
 7214    },
 7215    {
 7216        { 0x646ce03, 0x99ef986, 0x30e6100, 0xa155f81, 0x29b6b07, 0x75bef17,
 7217          0x1de077b, 0xc46f08e, 0x7ed0526, 0xf52fdc5, 0x61a299a, 0xe09d989,
 7218          0x7b8e93a, 0x9527329, 0x0acd185, 0x11255b5 },
 7219        { 0x4a6acdd, 0x57919db, 0x4451d74, 0x708a578, 0x283f7b3, 0x5b0bd01,
 7220          0xc3d9260, 0xe82f40c, 0x82bbdc2, 0x2ab96ec, 0xc164d87, 0x921f680,
 7221          0xc17a6a9, 0xf0f7883, 0x382a001, 0xc366478 }
 7222    },
 7223    {
 7224        { 0x2e40791, 0x5c9aa07, 0xa0776bf, 0xf0b72d6, 0xeaa50dc, 0x445f9b2,
 7225          0x6bda47f, 0xa929fa9, 0x3bbfc49, 0x539dc71, 0x006a78b, 0x4f16dd0,
 7226          0xeef39c7, 0x331ba3d, 0xc34157c, 0xbfa0a24 },
 7227        { 0x6a3b482, 0x0220beb, 0x6c43885, 0x3164d4d, 0xacdea23, 0xa03bb5d,
 7228          0x9d8f450, 0xd6b8b5a, 0xbd208fe, 0xd218e65, 0x35c476f, 0x43948ed,
 7229          0x0a2ed2b, 0x29a0dd8, 0x25295b7, 0xa6ccf33 }
 7230    },
 7231    {
 7232        { 0xac38939, 0xf68f15f, 0xf8010c1, 0xb3dd5a2, 0xa35f141, 0xf7ac290,
 7233          0x7388574, 0xdc8f3b2, 0xe95fed2, 0x7ec3de1, 0x257ac7d, 0xc625451,
 7234          0x664e55a, 0x66fc33e, 0x4832ba5, 0xd3968d3 },
 7235        { 0xc026448, 0x980291b, 0x24da4a5, 0xfcb2125, 0x827a360, 0xbca7df4,
 7236          0x85ca63b, 0xfcc395c, 0x8e9f733, 0xcf566ec, 0xd465f70, 0x835ee9b,
 7237          0x372f916, 0xe66d111, 0x04d9211, 0xc066cf9 }
 7238    },
 7239    {
 7240        { 0x8b48818, 0xb9763a3, 0x4288f96, 0xa6d23cc, 0xed3a229, 0xe27fcf5,
 7241          0xabaff00, 0x6aebf9c, 0x8131cd1, 0xf337503, 0xffabd58, 0x13ad41d,
 7242          0x861c83b, 0x1bee6af, 0x9c142e7, 0x274fe96 },
 7243        { 0x9b84b5b, 0x70ebcc9, 0x8191cfc, 0xe1a57d7, 0xcbf00b8, 0x46ccd06,
 7244          0xefe402d, 0xc233e8e, 0xbeebeb3, 0xb4ab215, 0xbd14e7b, 0xb7424ea,
 7245          0xa679578, 0x351259a, 0x471d684, 0x6d6d01e }
 7246    },
 7247    {
 7248        { 0x815ae38, 0x755c465, 0x611db56, 0xadc3e85, 0x188dd50, 0x633999b,
 7249          0xc12d907, 0xfdf7509, 0x238b6af, 0x25bcfde, 0x397f5e7, 0x50d705d,
 7250          0x944c974, 0xb65f60b, 0x27ac325, 0x8867fc3 },
 7251        { 0x3763eff, 0x2edc441, 0x341fb63, 0x892c0b3, 0xb3a7f28, 0xb34b83a,
 7252          0x15c2f18, 0x9aa106d, 0x1bb2277, 0x720bbc6, 0x5cfaefd, 0x637f72a,
 7253          0xf43e565, 0xf57db6e, 0xb58e772, 0xceb7c67 }
 7254    },
 7255    {
 7256        { 0x6ecc1de, 0x2793da5, 0x38f31b2, 0x4e10974, 0x8781267, 0x4229b4f,
 7257          0xdec04a1, 0xe5d2272, 0xec17cff, 0x6abb463, 0x0cbb048, 0x28aaa7e,
 7258          0xd22ef85, 0x41dc081, 0x5e63d0f, 0xcbc361e },
 7259        { 0xad5dbaa, 0xb78aafc, 0xfc1edc3, 0x0111505, 0x92c7bfa, 0x63ed66d,
 7260          0xe468919, 0x2982284, 0xb8c0d8c, 0x30f1f21, 0x2685093, 0xf056747,
 7261          0xf03dd0f, 0x0e085b6, 0x5581e66, 0xa8c8db8 }
 7262    },
 7263    {
 7264        { 0x264ad0c, 0x42009a6, 0x593bef4, 0x13bf2b8, 0x5d4e8b1, 0x1d11190,
 7265          0xef7bddc, 0xfe3e940, 0x624e62c, 0xa012275, 0x1d6d3cc, 0xcb65924,
 7266          0xedb7ab6, 0xc7bcc70, 0xb750b1c, 0xff9fafb },
 7267        { 0x7fea84b, 0xf65df29, 0x90b0e02, 0x17c84a8, 0x301e821, 0xa92a859,
 7268          0xfb480d1, 0xbee8cb2, 0x59c604e, 0x7010b8c, 0xe803c43, 0x47bf3f4,
 7269          0x47b3fff, 0xd645142, 0x9f0da13, 0xc4c5dcb }
 7270    },
 7271},
 7272{
 7273    {
 7274        { 0xb5253b3, 0x8af700c, 0x206957a, 0x31ca605, 0x3eafdcd, 0x2574439,
 7275          0xd3ae15e, 0x2ba5ae1, 0x5b82579, 0x710b738, 0x112b95a, 0x145ab57,
 7276          0x38c55c5, 0x4b133a0, 0x2a16fef, 0xf7559c9 },
 7277        { 0xd9ba896, 0x70c3e68, 0xc33d07a, 0x475dd32, 0x3a41e40, 0xe084e47,
 7278          0xfd2e706, 0xddc9382, 0x79510bd, 0x34b7275, 0xa5f901e, 0x5e78a69,
 7279          0xdcfb823, 0x429dfd7, 0x014f0a3, 0x1d9dc18 }
 7280    },
 7281    {
 7282        { 0xaf403d7, 0x364fcdf, 0xb7d7b34, 0xd9ea4ff, 0xcbb1dac, 0x21a3426,
 7283          0x143b4f5, 0xfa51052, 0x6df2409, 0x2bca073, 0x8ad7285, 0x7e6985a,
 7284          0x4aaa27f, 0x3a1a9d0, 0x9fc0c6c, 0x1a815e1 },
 7285        { 0xbb65bb3, 0xfab6147, 0x33ced0b, 0xa36dc0d, 0x2062d78, 0x26a8859,
 7286          0x28a5fb7, 0x3438617, 0x4ebb1ad, 0xe82da25, 0xd05aa11, 0x70f5071,
 7287          0xadaac48, 0x0b7f847, 0x93cb269, 0xeb812bc }
 7288    },
 7289    {
 7290        { 0xf7caccc, 0xcb317cc, 0xcf85098, 0xd3410d9, 0x7f078d7, 0xca68c8d,
 7291          0xb782efc, 0xfe9e812, 0x5f544b5, 0x32e7c0f, 0x3a7b7f2, 0x44fe95a,
 7292          0xe91327b, 0xf4f1543, 0x76645ed, 0x27d118d },
 7293        { 0xd7abc2c, 0x690547c, 0xb53c8af, 0xf64680f, 0x79ea989, 0xbe0cbe0,
 7294          0xa91af28, 0x6cf0cce, 0x9daa2f9, 0xa3b85a2, 0x91faed0, 0xd4b663c,
 7295          0xa8b20ba, 0x782c7b7, 0xb8d98ce, 0xf494faf }
 7296    },
 7297    {
 7298        { 0x002f55a, 0x080c0d7, 0x2d6d9dd, 0xf4f8f14, 0x382f025, 0xb326229,
 7299          0xad28c20, 0x58fd0b5, 0x8d06a15, 0x704b992, 0x7fbd8e4, 0xf4545d9,
 7300          0xed55581, 0xc32fa63, 0x01ac0fd, 0x3ab7936 },
 7301        { 0x6099fd1, 0x13ece52, 0x9c79178, 0x776dba8, 0xce26c45, 0x8d28212,
 7302          0x60d739c, 0x09fddaf, 0xa84826e, 0xf9931ed, 0xb29439e, 0x6e73d90,
 7303          0x9095e61, 0x94cfefc, 0x802f474, 0x3050d16 }
 7304    },
 7305    {
 7306        { 0x9f6394b, 0x0898f8f, 0x88b0e91, 0x48b8cea, 0x4c1b362, 0x4bc9925,
 7307          0x827d9ec, 0xe3fccb4, 0xd950d6a, 0x5d4cf9a, 0x39b5b38, 0xa16f1ef,
 7308          0x620f288, 0x3c76d1d, 0xe119390, 0x9fdd059 },
 7309        { 0xfb5edf8, 0x7b5de9e, 0x769d14e, 0x3e290b9, 0x6bd10b5, 0x4df3a91,
 7310          0x82f8f7b, 0xae99bca, 0xc9524af, 0x5481d5d, 0x69504f1, 0xf112e4f,
 7311          0x51931ec, 0xb048f09, 0x18f51b1, 0xbff876a }
 7312    },
 7313    {
 7314        { 0x46c1c37, 0x932e2a7, 0x9aea4c1, 0x903ad52, 0x8f161f2, 0x717ac91,
 7315          0xf425e2a, 0xa57d197, 0x7f39e0e, 0xae89dac, 0xbaa2a58, 0x91655c0,
 7316          0x54836dd, 0xe3dc286, 0xa9ec9e6, 0xb5f0baa },
 7317        { 0xbdbda04, 0xf7c4662, 0x51059c0, 0xbe5393b, 0xdd95b0f, 0xb16d552,
 7318          0x1b3bd96, 0xde495b3, 0xc0206c5, 0xb2a6e02, 0x014d3a9, 0x045cc09,
 7319          0x2a2f490, 0xf66a315, 0xc5dea05, 0x208c108 }
 7320    },
 7321    {
 7322        { 0x65237ea, 0x6e38b68, 0x9f27fc6, 0x93a1303, 0xa95068a, 0x9a6d510,
 7323          0xe7c9e54, 0x6fbf216, 0x571ac1d, 0x7824290, 0x91c2a0c, 0x8cb23ba,
 7324          0xc7e434d, 0x611202e, 0x76058b4, 0x8f901bf },
 7325        { 0x0849588, 0xef0ac05, 0xdd31804, 0xe0d2dde, 0xeb2ca81, 0xaf5417c,
 7326          0x5d1a509, 0x420ac06, 0x9683bb6, 0x46e345e, 0xf613f7f, 0x6daf635,
 7327          0x48a9576, 0xc9e8291, 0x176d147, 0x5f9f1d1 }
 7328    },
 7329    {
 7330        { 0x77e9709, 0xd24ae1d, 0x0047b8a, 0x77751dc, 0xc6a1593, 0xe325334,
 7331          0x671f86a, 0x9baf962, 0xc29a15e, 0x425af6a, 0x2796e33, 0x3108600,
 7332          0xfc253a5, 0xb6ea78c, 0xafae0ea, 0x4c733e0 },
 7333        { 0x97c99b9, 0x4b7443a, 0x50203a6, 0xc14e9e4, 0x52680ba, 0xd1bb515,
 7334          0xd55533a, 0xa56a3ef, 0x169e1a0, 0xa66e38c, 0xeed7da0, 0xb3e4df9,
 7335          0xddce3d9, 0x022c937, 0xf6e36b4, 0x8552089 }
 7336    },
 7337},
 7338{
 7339    {
 7340        { 0xf5cc82e, 0x8e4bf95, 0xc3ed6c9, 0x2ad80c3, 0xc9045e1, 0xf2e5b2c,
 7341          0x59b06d4, 0x42c9065, 0x7b43b84, 0xc1f7379, 0x72d7992, 0x1710dbf,
 7342          0x767b41c, 0xe98cf47, 0x7bfb9e9, 0xe713fce },
 7343        { 0x9fa5134, 0x9f54ae9, 0xde40d0e, 0x3002fd8, 0x9311334, 0xdc282b7,
 7344          0xbfeb360, 0x5519810, 0x0f96ffe, 0x31539c7, 0xd27777b, 0x04eacc0,
 7345          0x8ff5053, 0x5982410, 0x32b67ad, 0x5982366 }
 7346    },
 7347    {
 7348        { 0x6bea5c2, 0x6eb4554, 0xd509a33, 0x82cfae0, 0x394bb59, 0x6a69bd8,
 7349          0x5770ee1, 0x1880d8d, 0x7dacf9e, 0x6351844, 0xf02b891, 0x5b1ecc5,
 7350          0xb6c9a5a, 0xeb7d900, 0x8897da8, 0xdab8a76 },
 7351        { 0x98851a6, 0x28c7be5, 0x4d73c3b, 0x0101d4f, 0x5084996, 0x3c2569c,
 7352          0x280bde0, 0xb9bc911, 0xcd0d4f9, 0x513a22a, 0x2a15f3b, 0xdf2986d,
 7353          0x2aa4943, 0x231c28f, 0x0333870, 0x29623ad }
 7354    },
 7355    {
 7356        { 0x4084416, 0x2ceb178, 0x49516cd, 0x924cf1c, 0x4be856f, 0x76536c0,
 7357          0x47a265b, 0x11b59cd, 0x4999494, 0x720dc84, 0x007b795, 0x910f794,
 7358          0x2d3df83, 0x8434e14, 0xbd478d3, 0x8f53878 },
 7359        { 0xaeb9c2f, 0xd9b072e, 0xfd8a29f, 0x16f87ea, 0x2fd0de1, 0x8c42f9b,
 7360          0x0e816ef, 0x916721e, 0x18bde37, 0x2ecb470, 0x2375da2, 0xcde3b7a,
 7361          0xef94281, 0x30d0657, 0x5cd7af8, 0x5105456 }
 7362    },
 7363    {
 7364        { 0x4bdced3, 0x7230b33, 0x0838569, 0x0c6a3e1, 0xe3493b8, 0xf19c9ec,
 7365          0x0d97c57, 0xf275927, 0x0c862eb, 0xf14181e, 0x32c72bc, 0xfd3bac1,
 7366          0xf3be362, 0x620563f, 0x47283b7, 0x672ccaf },
 7367        { 0x2b7bf16, 0x191e3fa, 0x520dad7, 0xf838633, 0x3629d87, 0xd3dde55,
 7368          0xaf86ebe, 0x14d8836, 0x221b2ce, 0x3db7dfb, 0x0aed72a, 0x3872abb,
 7369          0x8c665b7, 0xb60de52, 0x44982cb, 0x89c2596 }
 7370    },
 7371    {
 7372        { 0x4dbba25, 0x799a2de, 0xa42715e, 0xd818aae, 0xf55c362, 0xbc88f4d,
 7373          0x713c9ae, 0x142a163, 0xfbfb33f, 0x411e8ee, 0x6bb684a, 0x34b4629,
 7374          0xdc81817, 0x4344bec, 0x17f9d46, 0xcc9573d },
 7375        { 0xff38a7d, 0xf85f8bc, 0x0caf117, 0xa14bf73, 0x4ba6429, 0x126874f,
 7376          0xaa5db97, 0xcc9bf22, 0x6aba827, 0x62b56df, 0x9c9772a, 0xfee1cb8,
 7377          0x177e541, 0xe36838f, 0xadd438f, 0x698815d }
 7378    },
 7379    {
 7380        { 0x38ed1ad, 0xc9fd894, 0x7b6a601, 0x73cd79d, 0x05e8d20, 0x2210e62,
 7381          0x3592af5, 0x72384ac, 0x763d07e, 0x5ccc079, 0xa5f79eb, 0x2f31a4a,
 7382          0x2945a95, 0x693f4ed, 0x8056fdc, 0xc712017 },
 7383        { 0xdf4b09a, 0x361ecd2, 0xb7d929a, 0xa5644ea, 0x3fabe9a, 0x34abc0b,
 7384          0xe942a8c, 0x1a2473c, 0x6454bc3, 0xe00c924, 0xdff7366, 0xab324bc,
 7385          0x21b8f99, 0xe1412f1, 0xe33551e, 0x970b572 }
 7386    },
 7387    {
 7388        { 0xbd0a6b5, 0x6ca4cac, 0x921d654, 0x5584787, 0xc809bda, 0x18e5253,
 7389          0xf0cbe5e, 0x01b32c3, 0x0f987dd, 0xb9aa754, 0x6dfa4db, 0x628f4bb,
 7390          0x891890b, 0x0255f0b, 0x874e590, 0x25b7df4 },
 7391        { 0x8ed5f95, 0xbded318, 0xca93023, 0x9dc428d, 0xbccf520, 0xc68f25a,
 7392          0xe616e6c, 0xc4f3764, 0xa1d9993, 0xd9a57f1, 0x533431b, 0xd1964a5,
 7393          0x02ab6d0, 0x06cd77f, 0x03e52e0, 0xa660791 }
 7394    },
 7395    {
 7396        { 0x5f72700, 0xab08864, 0x0a1a44e, 0xf77b2ff, 0xc2a24b5, 0x43ebdd8,
 7397          0x4f564d7, 0xa6d6711, 0xf414160, 0x495df63, 0x76f6de6, 0xf5bacd7,
 7398          0x7c2b43d, 0x3011aff, 0x3241928, 0xbb1e64c },
 7399        { 0x5034073, 0xf70c572, 0x68f1e97, 0x891c62a, 0xb22e374, 0xed8eb2e,
 7400          0x7dbcc2f, 0xd3a53e9, 0xdc8f220, 0x1d06281, 0xace4393, 0x9eef48f,
 7401          0xd2abecd, 0x96014f5, 0x2653ceb, 0x1da7e09 }
 7402    },
 7403},
 7404{
 7405    {
 7406        { 0xd00bc94, 0x7593318, 0xc7262a2, 0x586f3c6, 0x958ad31, 0xea68f52,
 7407          0xd4e8bed, 0x6707fcc, 0xcb3f9ce, 0xb7e35d6, 0xf4b1be8, 0x2cbb6f7,
 7408          0x7b41aee, 0xa535268, 0xf7b39b8, 0x1d77845 },
 7409        { 0xeaf9554, 0xb1f3995, 0xfe9e7d4, 0x3250f70, 0xa00c23c, 0x62e5d1b,
 7410          0xc10e3bf, 0x5e422f5, 0xc25cec4, 0x7a18039, 0x7cc4d5b, 0xb4e66a1,
 7411          0x36d0e0c, 0xad7c5f6, 0xa4cf347, 0x9f40b12 }
 7412    },
 7413    {
 7414        { 0x51e3696, 0x697f882, 0xab0a648, 0xc89bc40, 0x9785804, 0x8f261a5,
 7415          0xb51a2bd, 0x4c7f900, 0x8a2dfcf, 0xd00e7af, 0xb642aeb, 0xf9c534d,
 7416          0xb63df0e, 0xea2a79f, 0xf2f64a4, 0x392a69a },
 7417        { 0xc331b6c, 0x0c0f01c, 0x6a5edb5, 0x414bf2e, 0x5068391, 0xfe5ed81,
 7418          0x62fbc34, 0x0a8078d, 0x54bca98, 0x78a4382, 0x3d727c7, 0xf7a49ae,
 7419          0xab4dffe, 0x96c1de1, 0x3b9440a, 0x45901f7 }
 7420    },
 7421    {
 7422        { 0xacfe46e, 0x3f1189f, 0x4467443, 0xdca6f46, 0x2eb5bcf, 0xac38542,
 7423          0x906bf72, 0xb02dce9, 0xfe1d454, 0xdd8cdac, 0x65f7218, 0xc26f04c,
 7424          0x6ea145d, 0xb474859, 0x5bdb315, 0xc53dc6b },
 7425        { 0x9ad7197, 0xbe5be74, 0x18b5ecc, 0x627e919, 0x9ea405d, 0x57c889c,
 7426          0x1a5360b, 0x2e5650c, 0x1b30b27, 0x42290df, 0x5242687, 0x4a07157,
 7427          0xd379133, 0x553ed1f, 0x01db019, 0xb9d7a07 }
 7428    },
 7429    {
 7430        { 0x56597dc, 0xcfe551c, 0x925ebd6, 0x81af92a, 0xf4e8d57, 0x83efe16,
 7431          0x1f640d3, 0x61bb431, 0x78b414a, 0xf80440f, 0x6c9e3b4, 0x72f3c63,
 7432          0x6a03c66, 0xb55f43a, 0xe417037, 0x47a9ded },
 7433        { 0xdbb612b, 0x1a7e287, 0xdbb9220, 0x895c3c7, 0x6c04764, 0xd50c86e,
 7434          0x53cf7ca, 0xed52698, 0xf74af55, 0xc78d799, 0xb969ff2, 0xb2ba0f2,
 7435          0x1c6530b, 0x06d4815, 0x165a575, 0x764a1fe }
 7436    },
 7437    {
 7438        { 0xc1b5ece, 0x4383a3b, 0x54ff148, 0x0563c88, 0x5af796e, 0x9a45279,
 7439          0x88e9953, 0xffba7c0, 0xb6a3001, 0xfe9fb5e, 0x25b6b19, 0x7950988,
 7440          0xd81be5e, 0x67c899a, 0x2f9d29b, 0xc89ac8d },
 7441        { 0x29ab8f7, 0x7c76ba3, 0x6e40f74, 0xb2a18c9, 0x3864d9b, 0x1b5056e,
 7442          0x9b582b8, 0xdfa503d, 0x7c9c68e, 0xfb03519, 0x6b3c22b, 0xdc50131,
 7443          0xa6c96ff, 0x38ab231, 0x8cb1c10, 0x4ea527c }
 7444    },
 7445    {
 7446        { 0xc05b4ed, 0xd632f20, 0xb2a032d, 0xe0199fa, 0x26812d7, 0x3732956,
 7447          0x013df13, 0x2aed855, 0x39f96ac, 0x92ca24b, 0xbb9751a, 0x620273d,
 7448          0xf7437a1, 0x5d0d21e, 0x077de56, 0x9de2a43 },
 7449        { 0x11a4674, 0x0569b12, 0x89c3989, 0xfc3923e, 0x2c5c770, 0x3d12704,
 7450          0x84e8c37, 0x0072b90, 0xac39f9a, 0x7178d4d, 0x778d345, 0x5f8292f,
 7451          0x77c7307, 0x9e5bf0f, 0xc3a20f5, 0x7691610 }
 7452    },
 7453    {
 7454        { 0x705fe96, 0x7c4ead5, 0xc8e464c, 0x377ec35, 0x7689954, 0x3e5b990,
 7455          0xa2d31ea, 0xc0f6949, 0xc580671, 0x839d395, 0xb215b09, 0x2f347a6,
 7456          0x683df83, 0xfdcfa33, 0x6af39a8, 0x6e12cc2 },
 7457        { 0x13a3bd2, 0xae46ec8, 0x59366f8, 0x03a7d3b, 0xb87aed4, 0xe2029d5,
 7458          0xfe1b83d, 0xbdc4e43, 0xdb8a1a8, 0x768437c, 0xea0dd7f, 0xe47acc3,
 7459          0x62a0af4, 0x550e0cc, 0x1a20962, 0xcaf2cbc }
 7460    },
 7461    {
 7462        { 0xf28a78f, 0x5a784f7, 0x07e9724, 0x952a9b5, 0x1bab7a3, 0x8ac5e41,
 7463          0xb7bc1e1, 0x1251e3f, 0xdc15e22, 0xe360f82, 0x95213f5, 0x3ac72da,
 7464          0x4dcd47b, 0x65ee9ba, 0x3af5952, 0xdfeab7b },
 7465        { 0x26fd3c6, 0x34c5c80, 0xf3ac7ee, 0xd977b08, 0x7dba2f6, 0x003bd01,
 7466          0xac98c8d, 0xcfc5cf8, 0x0e46922, 0x05eb604, 0xfaa9352, 0xc248b17,
 7467          0x395c7a7, 0xfa41c0f, 0xb71ee44, 0x29931d4 }
 7468    },
 7469},
 7470{
 7471    {
 7472        { 0x07861c5, 0xac087bb, 0x5ae8240, 0x3bd37db, 0xf94518f, 0x94c68ec,
 7473          0xff88a5b, 0xd32a378, 0x9b441d1, 0x42c8aaf, 0xfc07f12, 0x089db70,
 7474          0xd3d4455, 0x211c386, 0x546b158, 0x1db9af7 },
 7475        { 0x51bc927, 0xdfd1b65, 0x0733df4, 0x69c0493, 0x2aeb586, 0xdc72cd4,
 7476          0x823aa13, 0xeebdace, 0x56ad643, 0x51b3b3c, 0xd4e0426, 0xb983a99,
 7477          0x69c4ecc, 0xa1e5b6c, 0x45e6668, 0x37cd382 }
 7478    },
 7479    {
 7480        { 0x9f73aea, 0x158ce6d, 0x14ff475, 0x36a7749, 0xdc0b018, 0x0d4e424,
 7481          0x3946f09, 0xc2c4448, 0xfacda62, 0x7a7de3f, 0xb486709, 0x49a19e6,
 7482          0xdb61da7, 0x65094d8, 0x8f5ee87, 0x09edfd9 },
 7483        { 0xb37226d, 0xe460fcf, 0x69bf470, 0x3b9d039, 0x247ca22, 0x3d4d511,
 7484          0xc782cb1, 0xc7248d6, 0x00ad293, 0x91189a0, 0xe8abe75, 0x1244942,
 7485          0xbf52cdb, 0x9f88d12, 0xbbbcadf, 0x368463e }
 7486    },
 7487    {
 7488        { 0x8074f45, 0x419e4b3, 0x0771c83, 0xd3f8e2e, 0x2e68d34, 0xd2743b4,
 7489          0xb116a00, 0xc68b7db, 0xd84cc37, 0xfad2cf7, 0xb7a0f4d, 0xcfd27c0,
 7490          0x190e587, 0x3b9e23f, 0x751ca9e, 0x7bab499 },
 7491        { 0xa8f12ee, 0x3270861, 0x31b36d5, 0xee1f38d, 0xe4c0eed, 0x748bb31,
 7492          0x110ebad, 0x9be5c9b, 0xc8b6cb6, 0x728660b, 0x93d914a, 0x7bc9df7,
 7493          0xc88c859, 0x73a4f2c, 0xb4e7f0e, 0xbe4a2fd }
 7494    },
 7495    {
 7496        { 0xa450e77, 0xe566ff8, 0x6a13aba, 0xb0b4006, 0xcd7dc90, 0x483a510,
 7497          0x5fa9ccc, 0xb1a2013, 0xa80e67c, 0xeb0b631, 0x020801a, 0x7c34e1f,
 7498          0xf4e447c, 0x0257dc8, 0x74c6f0f, 0x7abe7d1 },
 7499        { 0xb19a576, 0xf115a3a, 0x064ca0e, 0x8f0474a, 0x351f99b, 0x999bb6b,
 7500          0x773edc3, 0x855254b, 0x427d717, 0x49f6c2f, 0x2e0cef2, 0x9f68253,
 7501          0x2ee34f5, 0x1fe126c, 0x80150f7, 0x1ec2cae }
 7502    },
 7503    {
 7504        { 0xc005b7a, 0x862c5af, 0xec4ef17, 0x61adea7, 0x007b446, 0xf885fd3,
 7505          0x9b0e30e, 0x25c129d, 0xfeec7e0, 0xbc10f25, 0xdf79ee1, 0x3901ac4,
 7506          0xfe9e19f, 0xad49db7, 0x360d050, 0xc8624d9 },
 7507        { 0xbf3260b, 0xc74a576, 0x8c010c2, 0xbde8024, 0x09b6977, 0xf155329,
 7508          0xd52dcf8, 0x6a5a82e, 0x29b9dfc, 0x4fbf59d, 0xc7b730c, 0x337d049,
 7509          0x3a89cd4, 0xb3deac6, 0xad2f2eb, 0x1e07595 }
 7510    },
 7511    {
 7512        { 0x3b7c84e, 0xa0b0a4d, 0x8cf2b00, 0xf132c37, 0xeaaa8ec, 0x192814b,
 7513          0x7b4b5df, 0xe7929f9, 0x42d0ab7, 0xf08a68e, 0x7b60cdd, 0x814afb1,
 7514          0x7d9c160, 0x78c348c, 0x44db217, 0xf8a9488 },
 7515        { 0xeaa2578, 0xcdefd88, 0xbd0e260, 0xf717f56, 0x1694d02, 0x7754e13,
 7516          0x181dbd8, 0x1254c14, 0x6e5f312, 0x0dacdd2, 0xcef87bf, 0xb8abdfb,
 7517          0xe74e2ea, 0xb985972, 0x002b424, 0x1717621 }
 7518    },
 7519    {
 7520        { 0x162df70, 0x92cc75e, 0x18ee849, 0x1e20c06, 0x26aa590, 0xc036b46,
 7521          0x4da5155, 0x31be67e, 0xf7213b0, 0x04911b5, 0xbb2e72e, 0x39261d7,
 7522          0x5c015a3, 0x9e84466, 0x298ae67, 0x2f59fc0 },
 7523        { 0x1701fcc, 0xa3ea7ba, 0x0ebd651, 0x87a5fa9, 0x301d7b1, 0xa607ed4,
 7524          0x3b2e271, 0xbd4ec5f, 0xdc4180f, 0x732a1a2, 0xfeaa8c1, 0xbe15d82,
 7525          0x66f2f3f, 0x1036702, 0x9e79ce8, 0xccfd397 }
 7526    },
 7527    {
 7528        { 0x70a54ad, 0x82ab835, 0xe3bec75, 0x5c1dee8, 0x54b556b, 0xf583ff4,
 7529          0xf461e60, 0x9220199, 0x87fc4e7, 0xdf61ca8, 0x0776dad, 0x6641fd2,
 7530          0x8edd061, 0x00c6edd, 0x55f7e87, 0xaf9b142 },
 7531        { 0x9bbe3ec, 0x73f15e4, 0xf8bc1fa, 0xdd3b788, 0x1b8ff86, 0xb24cc07,
 7532          0x41be58b, 0x6c260d2, 0x6b10ada, 0xec1c4e3, 0x7fdb985, 0xf6b4209,
 7533          0xd47c212, 0x0d0ac85, 0x07d78d1, 0x967191c }
 7534    },
 7535},
 7536{
 7537    {
 7538        { 0x843d0f3, 0x3b11638, 0xf27f10e, 0x4b89297, 0x863ba2a, 0x477236e,
 7539          0xadd280c, 0x1949622, 0x04da757, 0x7cd5235, 0x79e4ff7, 0xe0e99d2,
 7540          0x537da41, 0xb4ef894, 0x5a24ff1, 0xc55dde4 },
 7541        { 0xb587521, 0x18d8e21, 0x3777833, 0x8010b5d, 0xd3a54c8, 0x4af522d,
 7542          0x4c0ac13, 0x7cd476b, 0x4099f67, 0x4587e61, 0x605ee64, 0x494d0ed,
 7543          0xcc80903, 0x3218ba2, 0x0b2e169, 0x5ff56aa }
 7544    },
 7545    {
 7546        { 0x3a06c69, 0x51ec94e, 0x5e65c52, 0xa26d7be, 0xd44ee96, 0x156f113,
 7547          0xbf5b9b4, 0x70f0968, 0x5f5332d, 0x9b7e469, 0x6703829, 0x36c295f,
 7548          0xd04f492, 0x1522690, 0x728043b, 0xcf35ca4 },
 7549        { 0x190a7c3, 0xf9ca3e1, 0xf971b07, 0x53d2413, 0x9c48b49, 0xae59652,
 7550          0xfefff5c, 0x74672b8, 0xa7643b0, 0x0a3018b, 0x3e9b0a8, 0x51919e8,
 7551          0xc932fb5, 0x89ad33d, 0x643e687, 0x52a4419 }
 7552    },
 7553    {
 7554        { 0xd2d0acd, 0x7778990, 0x487fdf1, 0x3bdbcce, 0x2b03dd2, 0xdc413ca,
 7555          0x9a2b7d0, 0x278755b, 0x35ddd7f, 0x4ebb8b5, 0xbcbdb92, 0x0465152,
 7556          0x671d051, 0x34f22d6, 0x87192b9, 0x1ba04c7 },
 7557        { 0x83560c1, 0xb1693f4, 0x7d174e9, 0xe08a593, 0x64dc9af, 0x47ffdc4,
 7558          0xce8126c, 0x1123596, 0x1124628, 0x632d95f, 0xfee7c76, 0x66287ab,
 7559          0xc552332, 0xb40fe60, 0xe304e1e, 0x3f11729 }
 7560    },
 7561    {
 7562        { 0x5030a8c, 0x97a6ea0, 0x09c27b2, 0x6924198, 0xac9dd5d, 0x3308501,
 7563          0xbe73fdc, 0x9fed7fa, 0x0535286, 0xea55544, 0x6c9b832, 0xc7c07ab,
 7564          0xc51b967, 0x178c882, 0x86ee075, 0x6fa0c69 },
 7565        { 0xb8b5c4a, 0xbaa4a15, 0x3130c0a, 0xf83c0ea, 0x2800331, 0xcf8624b,
 7566          0x7ccbcb8, 0xade85cd, 0xf08445d, 0x971d7f6, 0x6a546dc, 0xfd480b7,
 7567          0xc93761c, 0xdc15a38, 0x9d04631, 0xc4c495c }
 7568    },
 7569    {
 7570        { 0x9470efe, 0x5f4cee8, 0x88d93ad, 0x9fe8961, 0xf4e49ce, 0x24783b3,
 7571          0x52ffb3e, 0x1bc7ed7, 0x6d81e17, 0xa3abe6a, 0x7a333c3, 0xd6bb8b4,
 7572          0x10a3527, 0x3485c0b, 0x31a9d10, 0x7cddc9c },
 7573        { 0xc38ca37, 0x0c78112, 0xdd2f8d8, 0x10e249d, 0xc511911, 0x72c88cc,
 7574          0x29a6c84, 0x4d75b5a, 0xa227b1e, 0xc74b267, 0xf8e35ad, 0x698390c,
 7575          0xe98d230, 0x8f27edf, 0x6bdc7f4, 0xec922f2 }
 7576    },
 7577    {
 7578        { 0xfc32e11, 0xac34023, 0x47200d1, 0xe0ae2f5, 0xbd98c82, 0xa7c7492,
 7579          0x7b02154, 0x3910b68, 0xe28ab6d, 0x6fdd06c, 0xd98b012, 0xd3a7e49,
 7580          0x9f54207, 0x4c1c82b, 0x45c176f, 0xef5bbe6 },
 7581        { 0xd3e71eb, 0x3d17960, 0x080e70c, 0x90d7e84, 0xbff5d9e, 0x83e6438,
 7582          0x535d85c, 0x1877e1f, 0xfbb69cc, 0x931ed6e, 0x1247848, 0xcf96265,
 7583          0x750da4e, 0x76d618b, 0x717fbf6, 0xc076708 }
 7584    },
 7585    {
 7586        { 0xeec5126, 0x80a5ac5, 0x3379c80, 0x6d05dd1, 0x2336d32, 0x514b089,
 7587          0x6725137, 0x586c006, 0x574f954, 0xab2365a, 0xac7d356, 0x3c89ea0,
 7588          0x27460ba, 0xf1f2edd, 0xab9870f, 0xf200ddb },
 7589        { 0xa35e885, 0xc8f1b2c, 0xe6e7550, 0x5d22f86, 0x9554615, 0x24b9a40,
 7590          0x616314f, 0xcb41107, 0xc976a11, 0xca752f0, 0xa08291a, 0x3e2f839,
 7591          0xf2c420e, 0x0cff22f, 0x82b9747, 0xafd603e }
 7592    },
 7593    {
 7594        { 0x810a3da, 0xaddeddc, 0xd3a87bf, 0x78b6c2d, 0xde3a04c, 0xbc7020b,
 7595          0x9b6d045, 0x47ab973, 0x0959358, 0x3b046d6, 0x509ee3e, 0x0f953e7,
 7596          0x69fc61b, 0x803dc86, 0x893c8d4, 0xcceaec0 },
 7597        { 0xb048a45, 0x21f8c40, 0xfcaea8a, 0xb535073, 0x90e360b, 0xe712c35,
 7598          0x8403338, 0x5d0f3f4, 0x7207f2d, 0xe0ea26c, 0xffd9e05, 0x20f6b57,
 7599          0x4788b00, 0xb97d68e, 0x1889cce, 0xb121554 }
 7600    },
 7601},
 7602{
 7603    {
 7604        { 0x464238e, 0x0079817, 0x0d381ca, 0x2110302, 0xd9f01b5, 0x1cc4c6e,
 7605          0x5a131b1, 0x5e35dc5, 0x06944eb, 0xb61848d, 0x29631a3, 0x83792a0,
 7606          0xafca0dd, 0xbe1017f, 0x782fcbb, 0x70aaa01 },
 7607        { 0x99945e7, 0xc63b7a0, 0xc4486c1, 0xe9164ec, 0x885f2c1, 0xb133e35,
 7608          0xc99ae02, 0x186f0d3, 0x2bf53e6, 0x2fca492, 0x48a02bc, 0xf922aa2,
 7609          0x0dd3dca, 0x4fe6490, 0xf6a8207, 0xe8c313f }
 7610    },
 7611    {
 7612        { 0x97caf1e, 0xc5b3583, 0x922a4b6, 0xa001922, 0xdf07c95, 0x67e36be,
 7613          0xb2f4f34, 0xabaa0ae, 0xdedc333, 0x66dc926, 0x38ec5b3, 0x82021c4,
 7614          0x00ab176, 0x82b4f26, 0x69c45af, 0x1b7c22e },
 7615        { 0x0924ad9, 0x07b0dbe, 0xa407dde, 0xe030936, 0x26ccd06, 0x66e1ce9,
 7616          0xe3505a9, 0xb50c108, 0xda98f51, 0x8b921e1, 0x20cf7c7, 0x449ca1a,
 7617          0xe67d079, 0xadb80c7, 0x834372d, 0x205aa54 }
 7618    },
 7619    {
 7620        { 0x19bf847, 0x1482b48, 0x5906f0f, 0xd6c16ab, 0x23ad060, 0x323fb17,
 7621          0xc832be7, 0x0346389, 0x2ee45bf, 0xe71b2d8, 0xfb22276, 0x761c37d,
 7622          0x5d70be2, 0xa9b3334, 0x5a0627a, 0x81a0656 },
 7623        { 0x99a6282, 0x3377503, 0xd0436f0, 0xafc8d2e, 0xc53342f, 0x22f71d3,
 7624          0x8939ad3, 0x66ca56d, 0x30e09ba, 0x15a9192, 0xa6de890, 0x261091e,
 7625          0xe78f2d5, 0x609d700, 0x8eaaf78, 0x8aa52ee }
 7626    },
 7627    {
 7628        { 0xce76258, 0xa398788, 0x494b975, 0x3031d07, 0x043dfe2, 0x4a6d652,
 7629          0xb4401ec, 0xdb1a849, 0xce8bbcc, 0xf81ebbb, 0x16efe9e, 0x937dd47,
 7630          0xef85ecc, 0x9c19350, 0x214273b, 0x260d932 },
 7631        { 0x77bf1a3, 0x1d7e21e, 0xa544eb7, 0x199d689, 0x94ced50, 0x9da5941,
 7632          0x8a0aeaa, 0x71a60be, 0x26d3b51, 0x183a0ae, 0x8df9728, 0x49f176a,
 7633          0x3230674, 0x744376e, 0xe25541c, 0xb2cb21a }
 7634    },
 7635    {
 7636        { 0x9a0071f, 0x7a72158, 0xe7d2a6b, 0xe19dd29, 0x55113f0, 0x3deb34e,
 7637          0xede573b, 0xef1f8eb, 0x5665e37, 0xa8f7ff9, 0xf2d7777, 0xa2c21ea,
 7638          0x91e2e39, 0x1387afa, 0x7db68f6, 0x04057b9 },
 7639        { 0x1c241f7, 0x8b9d5ae, 0x8e75993, 0x689588a, 0x5c0e2d4, 0x79585b4,
 7640          0x7b64974, 0xba1ef16, 0x1c08a75, 0x72685bc, 0xd572edd, 0xf0a5814,
 7641          0x5ab0e70, 0x71464a3, 0x339aea7, 0xc93c92b }
 7642    },
 7643    {
 7644        { 0x5b8a87d, 0x1917e2a, 0x3a82756, 0xea5db76, 0x6420e2b, 0x5bba2fb,
 7645          0x019372a, 0x5cc0501, 0xccc5efd, 0xb1ef8be, 0xf49c57d, 0xaf06393,
 7646          0x87a0bc4, 0x3ab1adf, 0x34fe6b6, 0x2ee4cca },
 7647        { 0x6b8ba9b, 0xd160668, 0x7efec13, 0xef137d9, 0x50abb76, 0x7b60465,
 7648          0xf753a00, 0xb40ec2b, 0xeaf8f1d, 0x696ed22, 0xd8ba3d8, 0x398c91f,
 7649          0x37db313, 0x11f2034, 0xfe5079e, 0xe1ec33b }
 7650    },
 7651    {
 7652        { 0xbdc81f0, 0x8a10c00, 0x6fe8e05, 0x5f39256, 0x14a368e, 0xa595dab,
 7653          0x38cec6b, 0x32b3181, 0x1b00d00, 0xd77afde, 0x4d9923d, 0x3c97928,
 7654          0x76e13dd, 0x78f0e7a, 0xbf75675, 0x5ee8e59 },
 7655        { 0x91b130c, 0x49ec893, 0xa47a441, 0x9416182, 0x76e2ce8, 0x54555b5,
 7656          0x349c40b, 0xcbdd2fd, 0x9392bbe, 0x10ae737, 0x2e2dab0, 0x270b111,
 7657          0xaf293f4, 0x5cb7712, 0xd6095c6, 0xfc22a33 }
 7658    },
 7659    {
 7660        { 0x0f15878, 0xdcb5bbd, 0xb6bba48, 0xbcf27ad, 0x7b70eba, 0x979913e,
 7661          0x158578a, 0x4c0f34b, 0x6ed6088, 0x53f59a7, 0x75b0fc2, 0x19b3b2c,
 7662          0x0153f3c, 0xad628dc, 0xcec1607, 0x5195a2b },
 7663        { 0xdfe0f7a, 0x95f8b84, 0x152920b, 0x935c6b0, 0x4da1056, 0x25f9e31,
 7664          0xb28c229, 0x4910a94, 0x8ee4d6e, 0x54b03b4, 0x694e3ed, 0xc991fc3,
 7665          0xdbe5709, 0x68c4c26, 0x63d7657, 0xc9cfce4 }
 7666    },
 7667},
 7668{
 7669    {
 7670        { 0xf52a44e, 0x21c9227, 0xe85bfbd, 0x7f105a2, 0x6268fc2, 0x887781f,
 7671          0xa2d7e35, 0x56ee808, 0x2d3930f, 0x14f9de5, 0xdcb561a, 0x4a4e356,
 7672          0x7f95598, 0x8736226, 0x5f34151, 0x211c342 },
 7673        { 0x0eaf9cb, 0x8fcb75b, 0x3d60ce2, 0xcc9edf9, 0xa5fe627, 0x54412c9,
 7674          0x842dd09, 0x6036a72, 0xa6c6099, 0x71ce668, 0x5386764, 0x02b30d7,
 7675          0x6f18e23, 0xb69bed3, 0xd1de9f4, 0x124c9b1 }
 7676    },
 7677    {
 7678        { 0xe69b531, 0xe8f8d95, 0xaff1049, 0xe1e115e, 0xeddea0c, 0x9087cd1,
 7679          0x7449916, 0x8ed55a5, 0x7808404, 0x8009f54, 0x17fea55, 0x990f216,
 7680          0xfe8ecf9, 0x68ba624, 0x56d1f47, 0x8ac2950 },
 7681        { 0x529dfb0, 0x3257887, 0x244c080, 0xc4a613f, 0x28672fa, 0xabb1ac0,
 7682          0x31eb291, 0xb2915c5, 0x8fababa, 0x6e368ca, 0x1fde498, 0x6b8c259,
 7683          0xf2a548c, 0x67724a1, 0xf90409b, 0x6b3b7e8 }
 7684    },
 7685    {
 7686        { 0xfae20aa, 0x5415003, 0x85df5ce, 0x95858a9, 0x0ac6bee, 0x42bc987,
 7687          0x39ea1a9, 0x8d843c5, 0xb571043, 0x5de200c, 0x1741a33, 0x084fcd5,
 7688          0x0009d1c, 0xe1ca20c, 0xe957e6d, 0x0271d28 },
 7689        { 0x9e3be55, 0x84cbf80, 0x1c578c6, 0xc804dda, 0x409a93a, 0xea85489,
 7690          0x972021d, 0x64a450a, 0xe681312, 0xc6a2161, 0x65bc111, 0x280bff9,
 7691          0x0f8526f, 0xd358a4b, 0x953a3ab, 0xd967be8 }
 7692    },
 7693    {
 7694        { 0x7dd066c, 0x4c5e615, 0x634c8d4, 0x37afd33, 0x42d8b87, 0xa3ac88a,
 7695          0x938b607, 0x9681e9b, 0x37fe4c8, 0x7a286ab, 0x2494245, 0xdeee574,
 7696          0x6af75a8, 0x184b9d3, 0x3670c04, 0x20f696a },
 7697        { 0xa39e8b9, 0x1340adf, 0x0850b2e, 0x03c1929, 0x2c0e1ef, 0x435ebd4,
 7698          0x142ee9b, 0x49de18b, 0x3f116f2, 0xb440b27, 0x2214463, 0xd94e9fa,
 7699          0x6311543, 0x1b0ddd3, 0x991ba3c, 0x1ae042a }
 7700    },
 7701    {
 7702        { 0x5bb47aa, 0xbc322f8, 0x54a5845, 0x9e25625, 0x21115f3, 0x96b65ae,
 7703          0xbb5757b, 0x46fbed4, 0x4c42dce, 0x18aec4f, 0x8d801f0, 0xc59caf6,
 7704          0x1205521, 0x9189463, 0x89feb7a, 0x66bd8e0 },
 7705        { 0xc529ee7, 0x39ebe95, 0x8eadb99, 0x28d8992, 0x6927544, 0x6058c78,
 7706          0xd3808ec, 0x877e7a5, 0x1c52eaf, 0x8f65111, 0xae221cd, 0xfb59812,
 7707          0xf890391, 0x22289c6, 0x4966e92, 0xa97695b }
 7708    },
 7709    {
 7710        { 0x6ff10f0, 0xf0a9122, 0xa2a65c8, 0x49a931b, 0xb1d3cb0, 0x3fcebbc,
 7711          0xca9685f, 0x70eb79b, 0xab38cb6, 0x82520b5, 0x76304c3, 0xccf991b,
 7712          0xaf8b07c, 0x575aab1, 0x5ed5efb, 0xec8166a },
 7713        { 0xc8689b1, 0xddc5698, 0xb2e78d7, 0x227c949, 0x8e07d91, 0x6132321,
 7714          0x22cfd62, 0x658a11d, 0x004dd5f, 0x908fb44, 0x90d21b1, 0xe3d14f0,
 7715          0xa6a1639, 0x6f3db9d, 0x333a525, 0x09d86c0 }
 7716    },
 7717    {
 7718        { 0x6f043f7, 0xd83eaf0, 0xb52d5f6, 0x88ab648, 0x57144d7, 0x67c664d,
 7719          0xeafc8b5, 0x55d7644, 0xcceb291, 0x1c89f20, 0x831ac47, 0x51aec7b,
 7720          0x6148854, 0x51172fa, 0xf6d7bfe, 0x8fabf7e },
 7721        { 0x477ee27, 0x5910316, 0x20fe61e, 0x5f299dd, 0x42826ab, 0x48079a8,
 7722          0x22591fa, 0xf4a83ba, 0x55482ec, 0x8fac660, 0x6b65b3b, 0x48fd5f1,
 7723          0x9fd9e19, 0x4288a7c, 0x9377894, 0x27db819 }
 7724    },
 7725    {
 7726        { 0x7fd9dd6, 0x2936ee4, 0x9ec87c6, 0xcce5f0e, 0xdb6e3b4, 0x15a50e3,
 7727          0xad701c8, 0x61df105, 0x1dff1f7, 0x3601add, 0xe8a16e1, 0xb761e06,
 7728          0x1af3f91, 0x4341e02, 0x933fa3f, 0x9156a4a },
 7729        { 0x54bc01d, 0x9dc46ae, 0x64eb910, 0x605577a, 0x5a59a99, 0x22b99f8,
 7730          0x0a229d8, 0xab2dbaf, 0x6599364, 0xa8bfb65, 0xe94ebf0, 0x39ed4a5,
 7731          0x0dbb23e, 0x7b46a1e, 0x8751422, 0x117b195 }
 7732    },
 7733},
 7734{
 7735    {
 7736        { 0x423bddf, 0xd19e8fd, 0x387ef59, 0x9d77042, 0x849590a, 0x315cbdd,
 7737          0x7866c1e, 0xfdc637c, 0x03515a6, 0x72be83d, 0x0376780, 0xd44a4a0,
 7738          0x19e0c2b, 0x3b96131, 0x7b1a689, 0x023aca3 },
 7739        { 0x82282ea, 0xf5f3687, 0x8a8b5c7, 0x4471089, 0x17a3066, 0xcd2f00a,
 7740          0x81ed681, 0x754e112, 0x0bfcefd, 0x9c6c70c, 0x3b6f29b, 0xd6aced0,
 7741          0x2817a2a, 0xe443d56, 0xe7c0012, 0xe590ef4 }
 7742    },
 7743    {
 7744        { 0x3e62e2a, 0xc2f9676, 0xb2daa26, 0x661816e, 0xdd5f512, 0x3515fd2,
 7745          0x56b6e75, 0xdc36e27, 0x74cc658, 0x0bdde46, 0x00e7644, 0x1029086,
 7746          0x1694a09, 0xfdf0045, 0xceac169, 0x454bcb6 },
 7747        { 0x6481eb6, 0xf4c92ab, 0x09750e7, 0x8b77afa, 0x6362d6d, 0xe6f4231,
 7748          0xf53a3ae, 0x0d45dee, 0xd7dcf98, 0xdac7aac, 0x125ec4a, 0x628cb7f,
 7749          0xaec0320, 0x41e8a20, 0xea2e35b, 0x7418c7e }
 7750    },
 7751    {
 7752        { 0xdf40519, 0x4d649ab, 0x3525833, 0x8cb22d4, 0x7a5333f, 0x15f6d13,
 7753          0x72c23ee, 0x8c3991b, 0x0cd44a3, 0x248b9a5, 0xccc1a75, 0x6b4c4e0,
 7754          0x15c99a9, 0x3221efb, 0x0a9c504, 0x236d504 },
 7755        { 0xd559100, 0x401c7fb, 0x07c524d, 0xcf0e075, 0x34a9275, 0x39647c0,
 7756          0xf7e8683, 0x2355422, 0xb3ae670, 0x3e0a16e, 0xad61b7f, 0x1c83bcb,
 7757          0x9ca6cbe, 0x491bcb1, 0x5e29458, 0xe668dc4 }
 7758    },
 7759    {
 7760        { 0x219379e, 0xe44c65b, 0xbb607ee, 0x211381b, 0xb7bc6db, 0xd4c7428,
 7761          0xb76a2e8, 0xba62a03, 0x8bb0b31, 0xe1729c9, 0xc6bbc10, 0x3caeb50,
 7762          0xb0187aa, 0x6c66727, 0xfb90dcf, 0xbf9d2f0 },
 7763        { 0x1184dc6, 0xec69350, 0x2698eb5, 0xd58d2a3, 0xa316b07, 0xb366d8d,
 7764          0x251c017, 0xe1e39bb, 0xadb157f, 0xbe44ba9, 0x8a8b06c, 0xbaa9a9a,
 7765          0x6e473e1, 0xd0f4635, 0x1d681c6, 0xd25a8f6 }
 7766    },
 7767    {
 7768        { 0xcb102c7, 0xba39d5f, 0xd8aa1eb, 0x66eba21, 0x697fbf4, 0xcc2591a,
 7769          0x2317f54, 0x5adb579, 0xf76c6f9, 0xa01ae71, 0x5042705, 0x2c525de,
 7770          0x4f4479f, 0xc8f4272, 0xe6d7a5b, 0x26ab54a },
 7771        { 0xdc28106, 0xda217b5, 0xeb2ae6a, 0xc7cadea, 0x53ea3b2, 0x0b16094,
 7772          0xcc6111b, 0xcddcc1c, 0xa7a7beb, 0x5c47aff, 0x0e52dab, 0xf9931bd,
 7773          0xc6dcf96, 0x5231835, 0xf27ea4e, 0x7095bde }
 7774    },
 7775    {
 7776        { 0xc33b4e2, 0xee8adae, 0x63ceb44, 0x3006651, 0x880b086, 0xf1476fb,
 7777          0x9569ce8, 0x0703328, 0x238b595, 0x2cabf9a, 0x26c8158, 0x85017bc,
 7778          0x68d5144, 0x420b5b5, 0xf9c696f, 0xa9f5f1e },
 7779        { 0xc8fec5a, 0x1409c3a, 0x28e9579, 0x541516f, 0x0e1f446, 0x06573f7,
 7780          0x2311b96, 0x3e3c706, 0x3c2ffd8, 0x0033f1a, 0xca6711c, 0x8e808fc,
 7781          0x07aef98, 0x716752d, 0x92525b3, 0x5e53e9a }
 7782    },
 7783    {
 7784        { 0x5a1c29f, 0xce98a42, 0x3ca6dc9, 0xaa70348, 0xedfa48b, 0xe77d822,
 7785          0x068abca, 0xd2e3455, 0x482cfca, 0xb456e81, 0x7fbfb08, 0xc5aa981,
 7786          0x8243194, 0x8979f25, 0x2cd043d, 0x727f217 },
 7787        { 0xaa53923, 0x7cca616, 0xe9bcb72, 0x387c5ae, 0x37580bb, 0x0173fd4,
 7788          0x75fc0d9, 0xdd7795b, 0x345deae, 0x47d1c37, 0xb0d1c03, 0x2eb5d7f,
 7789          0x958f002, 0xf7a1b92, 0x8f61b67, 0x7365cf4 }
 7790    },
 7791    {
 7792        { 0x562a5ed, 0x4b22c3b, 0x5c7cd07, 0x711216f, 0x9ba0648, 0x51f72c4,
 7793          0x0de9e6f, 0xc10d093, 0xfda63ba, 0xaca479b, 0xaf532b0, 0x4722a55,
 7794          0x7236f39, 0x8d59eb7, 0x4465c34, 0x5cad874 },
 7795        { 0x722b0c1, 0xa2119e5, 0xf343ea4, 0xb670264, 0xc19f387, 0x6910f02,
 7796          0x0381fba, 0xcfec5bc, 0x52c0a1d, 0x5f5de0d, 0x6378cb6, 0x4e474d5,
 7797          0x27e2ba3, 0x2fc8027, 0x159b541, 0xa215da3 }
 7798    },
 7799},
 7800{
 7801    {
 7802        { 0x8499895, 0xed53585, 0x65c998d, 0xa0aefd5, 0x2d5a561, 0x210d850,
 7803          0xa2cd9d6, 0xc2cc23c, 0xc4d297e, 0x2371d46, 0xd18d441, 0x88b2143,
 7804          0x043993d, 0xbebdad9, 0xad5f28d, 0x6ba91e7 },
 7805        { 0x3a731f4, 0xc2bb3f1, 0x5d0d5c3, 0xd35cfac, 0x35ac427, 0x9950998,
 7806          0x5458adb, 0x8938bb5, 0xab26f3b, 0x0bd738c, 0xa28cd8d, 0x56db3d5,
 7807          0xa1d8b4b, 0x87eb95f, 0xe7f3b4b, 0xd6700ef }
 7808    },
 7809    {
 7810        { 0xea1e57b, 0x962c920, 0x6dded6d, 0xd3be37e, 0x2c96a73, 0xf499b62,
 7811          0x6c99752, 0x3eaf7b4, 0x025590b, 0xa310c89, 0x721db23, 0x535aa4a,
 7812          0x19714a0, 0x56ab578, 0xd4048c1, 0xeecb4fa },
 7813        { 0x470c466, 0x7b79ec4, 0x1383cee, 0xc4e8f2e, 0x5750c45, 0x0f5d776,
 7814          0x725527d, 0xa3b3bc3, 0x6d00cce, 0x2f5deb6, 0x95a8d81, 0x5d5a0f4,
 7815          0xe02b824, 0x50a442e, 0x2a11628, 0xafb0446 }
 7816    },
 7817    {
 7818        { 0x0c613de, 0x72b67bc, 0xe6f0b24, 0x0150d4b, 0x8ed289d, 0x847854e,
 7819          0xa320f88, 0xe08292f, 0x29c6160, 0xd5b6da3, 0x4fb9d06, 0x2a48e2d,
 7820          0x2de087c, 0x55d9e41, 0x4f02100, 0x65683b5 },
 7821        { 0xa8886c6, 0x4dc8c2e, 0x20d6114, 0xe966dd2, 0xa57af97, 0x99745eb,
 7822          0xb854725, 0x23a9a71, 0x621a047, 0x8effe05, 0x049a4be, 0xf16d284,
 7823          0x5b0660f, 0x95828c2, 0x56e96b0, 0xd5b69ba }
 7824    },
 7825    {
 7826        { 0x4ffa0b8, 0x0b5b424, 0x096cc5e, 0x0585b45, 0xf505d37, 0x413e1ae,
 7827          0x0c7ab8d, 0xe5652a3, 0x2990120, 0xab32fb7, 0x3f09368, 0x6b8b16e,
 7828          0xefe128e, 0xbf9fadb, 0x14b7671, 0x85f366b },
 7829        { 0x090608d, 0xcb2f294, 0xac3045f, 0x25e2769, 0x6131904, 0x069c4f0,
 7830          0x329a779, 0x1c57cf1, 0xb7cace7, 0x72fe0d5, 0x0897a45, 0x04d9f43,
 7831          0x359a645, 0xbaf32f6, 0xfa7485a, 0x0fa854f }
 7832    },
 7833    {
 7834        { 0x5f56f60, 0xae3533c, 0x0ad9360, 0x9773bbb, 0x38fbe6b, 0x769b34a,
 7835          0xffb0c00, 0xb5ba8e9, 0x75472e4, 0xa939318, 0xce5f30f, 0x12cac92,
 7836          0xa9e7dbc, 0x514fc06, 0x58b4734, 0xd7ca865 },
 7837        { 0x65a730b, 0xd101ff3, 0xabe70e9, 0x92da451, 0xef7bf4b, 0xfb5f94a,
 7838          0x1d56c7b, 0x8c3ef4c, 0x8435c10, 0xb085766, 0xe7ed4cc, 0x7fbbbda,
 7839          0x24f372f, 0x1da6eaf, 0x59b8ae3, 0x0ab2c1f }
 7840    },
 7841    {
 7842        { 0xf10a4b9, 0x63a1a78, 0x0c7e510, 0xbb5278d, 0xf874142, 0x97b224e,
 7843          0xb2517b1, 0x0a9ff52, 0xc5cd920, 0x1b5a485, 0xa1823b9, 0x1a8e2eb,
 7844          0x0e914a8, 0x2b088c0, 0xcf13432, 0xe5ec3ad },
 7845        { 0x6e7e253, 0x0d6ab3e, 0x6f18458, 0x9f0f5cd, 0xf459a6d, 0x839a744,
 7846          0x1eb15f7, 0xb4b4f94, 0xc72cb14, 0xe0313ac, 0xb20472d, 0x58ee933,
 7847          0x872543e, 0x5f73d7a, 0x501f067, 0xb1700c5 }
 7848    },
 7849    {
 7850        { 0x085f67f, 0xb70428e, 0x43cabe5, 0x5441d51, 0xe0a6055, 0x4d0e8c2,
 7851          0x0882e4f, 0x8d39a08, 0xc1cb39d, 0x615bb32, 0xf7a1642, 0x113f18d,
 7852          0x250681f, 0xbab8cf5, 0x677b72a, 0x3017ba2 },
 7853        { 0x5a3a876, 0xcd2b6e9, 0x2035a69, 0x0476501, 0xefa2ea0, 0x31d6440,
 7854          0x56874d5, 0xde8f8d1, 0x0199d4a, 0xcbc71cd, 0xe7f2170, 0xc546b61,
 7855          0x112c4c3, 0x4e57e4e, 0xd1622ba, 0x58955a8 }
 7856    },
 7857    {
 7858        { 0x04e2f6f, 0x0064cd7, 0xe0edd38, 0xe9d458d, 0x7e0a5c8, 0xeb1a597,
 7859          0x01fc0a8, 0xe322ece, 0x1032a19, 0x8b9d166, 0xa89de94, 0x3e7b539,
 7860          0x001c754, 0xfa30262, 0xdb588f6, 0xe33de4d },
 7861        { 0x954eb94, 0x4dafbdb, 0x0584c1b, 0xbb43648, 0x5dbe29b, 0x622c93e,
 7862          0xf57b931, 0x968f9e3, 0x0f6453b, 0x98f03be, 0x08f696c, 0xb0ecc7f,
 7863          0xa505335, 0x5af55f4, 0xfb3fa9b, 0x028533e }
 7864    },
 7865},
 7866{
 7867    {
 7868        { 0x27e8d86, 0x3bc8e68, 0x63f105a, 0x4e43b30, 0x4981250, 0x5301b7d,
 7869          0x9f72fa8, 0x8b0a75e, 0x357348c, 0x88f59db, 0xec4208e, 0x5f0ebb1,
 7870          0xc043d3b, 0x4712561, 0xc806b97, 0x9e5ded0 },
 7871        { 0x2121d09, 0xf9bd0a6, 0xe337cd1, 0x1759ecb, 0xe945542, 0xd1acc0e,
 7872          0xbd2f63a, 0x3683feb, 0xda5dfe9, 0x44f1bcc, 0x707f22f, 0xa3606c9,
 7873          0x2d96ca5, 0x45ef064, 0x9022df9, 0xfc3107d }
 7874    },
 7875    {
 7876        { 0x44be755, 0xe81320b, 0x5c7c761, 0xdf213d5, 0xb4e5db9, 0xf43d2d5,
 7877          0x8dedcd2, 0x3bcfd82, 0xd37a9ec, 0xdf368a6, 0xf475a77, 0xfef20ae,
 7878          0x162c064, 0x22f5894, 0x0142a7d, 0x956bc66 },
 7879        { 0x7daec78, 0xaaa10e2, 0xb6e9a78, 0x3cb9b72, 0xe383f72, 0xa740bad,
 7880          0x7759007, 0xc31b401, 0xa7afc50, 0xdada964, 0xfd3d11f, 0x6bf062c,
 7881          0x5db3679, 0x9470d53, 0x03abf13, 0x3394473 }
 7882    },
 7883    {
 7884        { 0x46e5d7f, 0x533f440, 0x49048c8, 0xd1793e3, 0x1929b94, 0x59e1150,
 7885          0x8364134, 0xcddbbcb, 0x582774f, 0x795c794, 0xe03081a, 0x114dfc4,
 7886          0xef54042, 0x541ef68, 0x23f18cd, 0x159295b },
 7887        { 0x48a2c8c, 0xfb7e2ba, 0xbb6d116, 0xe2d4572, 0xd750b53, 0x7bb0b22,
 7888          0xd142ee8, 0xc58888c, 0x90c9e2d, 0xd11537a, 0xd02eb9e, 0x77d5858,
 7889          0xd444a79, 0x1fa4c75, 0xd58a68d, 0xf19b2d3 }
 7890    },
 7891    {
 7892        { 0xeb8b90f, 0x37e5b73, 0x3f2a963, 0x3737f7a, 0x9de35e0, 0x87913fa,
 7893          0x8731edd, 0xec7f992, 0x219491e, 0x6e6259e, 0x4de236c, 0xb2148a0,
 7894          0xfdd309b, 0x89700e8, 0x9f0bf80, 0x9ce51e4 },
 7895        { 0x301f17b, 0xe7ec421, 0x3bc5f4f, 0xa4b570a, 0x1285ee2, 0xc2b1b2a,
 7896          0xc53db73, 0x5e86bc8, 0xf24fa90, 0xb65fcea, 0x08ab024, 0x9e74c56,
 7897          0xf9ed877, 0x5c8003d, 0x4a2cbbc, 0xa632e9e }
 7898    },
 7899    {
 7900        { 0xc91c8b5, 0x32a4546, 0xc969363, 0xc122b5a, 0x3648b3a, 0xbbbec5e,
 7901          0x25143b0, 0xd5a365e, 0x54157ce, 0xcf3e464, 0xf9bab64, 0x9712f04,
 7902          0x04b4008, 0xc12d43a, 0x2edf1c7, 0x51932d7 },
 7903        { 0xb2f8470, 0xaef1655, 0x6c24ace, 0xaa8e3f3, 0x6b4e761, 0x7da75da,
 7904          0xb90bca2, 0xd371827, 0x0afb45c, 0x84db450, 0xef46b5d, 0xae12045,
 7905          0xd962f98, 0x91639a5, 0x72f2ac0, 0x669cbe6 }
 7906    },
 7907    {
 7908        { 0x83a4356, 0x851bb31, 0x9a1bf15, 0x7d436bf, 0x120b378, 0x46a3f0e,
 7909          0x3f5b357, 0x9302abc, 0x93fef53, 0x1e06726, 0x5fd2ee9, 0xb12f4a9,
 7910          0x7de9433, 0x94a884c, 0xa6f2874, 0x2645234 },
 7911        { 0xcdb8dfa, 0x6fb56f5, 0x9e0ee4e, 0x4a17dfc, 0x83ab01e, 0xe269d83,
 7912          0xb77c10f, 0xda932da, 0x0321243, 0x463af0c, 0x16fc8a3, 0xbe1d682,
 7913          0x48b39e3, 0x2eae3ea, 0x3b03e7b, 0x9423021 }
 7914    },
 7915    {
 7916        { 0xb22f28a, 0xaeb507c, 0x49a6b44, 0xa77458b, 0xc03dc17, 0x232ed5a,
 7917          0x9c61ac6, 0x79dfc16, 0xcd71b93, 0x7c48be9, 0xc429cd9, 0x983d68a,
 7918          0x98ae2c8, 0x7709c47, 0xa5df075, 0xe4765c0 },
 7919        { 0x3367f33, 0x23c4deb, 0x37d72a7, 0xbdf2b7e, 0x0af2d26, 0xbaab5c7,
 7920          0xfd026ab, 0xd609f7f, 0x541b039, 0x23b72b2, 0x83be852, 0x8d06bac,
 7921          0xcb23d1c, 0x911d4a9, 0xfb0dbd7, 0xeae815c }
 7922    },
 7923    {
 7924        { 0x2c33481, 0x487c35c, 0xb6136db, 0xffab636, 0xa3d3aa4, 0xccd4dae,
 7925          0xc3704e0, 0x87149bb, 0xc0e8396, 0x9de8119, 0x58e7ca6, 0xd49357a,
 7926          0x1562d75, 0x6878918, 0x5ab1fad, 0xc745381 },
 7927        { 0x02c9b91, 0x0f15798, 0xb1ddde5, 0x7ffc3f0, 0x6aae50d, 0xa01d5e0,
 7928          0xe279873, 0x6a97e65, 0xb5b1b41, 0x4bcf42f, 0x32f5982, 0x1c6410f,
 7929          0x50701c8, 0xd4f7600, 0x873b90d, 0xff02663 }
 7930    },
 7931},
 7932{
 7933    {
 7934        { 0xe5b2de2, 0xdc53ea2, 0x38acecb, 0x94b352d, 0x0d9d5e5, 0x37d960b,
 7935          0x90bd997, 0xabd868f, 0x35a7376, 0x781668f, 0x10118bf, 0x043d597,
 7936          0xf57928a, 0xd4da719, 0x983e46c, 0x01942f6 },
 7937        { 0x728bd76, 0xab97fc8, 0x4b5c1c5, 0x825956b, 0xc82a104, 0x202809f,
 7938          0xc8e3132, 0xdb63e9c, 0xc2181af, 0xa41c701, 0x43e066a, 0xd280180,
 7939          0x24044ce, 0xc734e41, 0x505193c, 0x4d9ab23 }
 7940    },
 7941    {
 7942        { 0xf9f0c3f, 0x0bcd42a, 0xb94a218, 0xda21a46, 0x0ffc788, 0xe55243c,
 7943          0x47a5551, 0x318aae6, 0x79af9cb, 0x8c2938b, 0xec1dce5, 0x5d15232,
 7944          0x8ad2e5c, 0x3d310ba, 0x94f792a, 0xd3d9724 },
 7945        { 0x12a9553, 0xdeb4ca1, 0xeb54d9d, 0x2f1ed04, 0x69fb7a1, 0xaa9c9cf,
 7946          0x54dcd3a, 0xeb73c3a, 0xf5f201f, 0xee3eddc, 0xba7d234, 0x35f9e1c,
 7947          0xd2e242f, 0x1d1d04c, 0x0df7515, 0x48df9d8 }
 7948    },
 7949    {
 7950        { 0xa81dd9a, 0x4ecc77d, 0x03aa015, 0xa6ac4bb, 0xbbc4fed, 0x7645842,
 7951          0x9d6cf52, 0x9ae34cd, 0x5917e0b, 0xf8ff033, 0xc2cc175, 0x7c9da37,
 7952          0xaaacfbe, 0x1e74dcc, 0x7999af8, 0xa8f2df0 },
 7953        { 0x102a466, 0xd06c4ea, 0xae190dd, 0x2156e87, 0xec4a863, 0xc95db8a,
 7954          0x244a6fe, 0x49edffd, 0x904f81e, 0x110fae6, 0xa1cd104, 0xbaa3e50,
 7955          0x0478b65, 0x5bd38a2, 0xdaefbcc, 0x2b57d05 }
 7956    },
 7957    {
 7958        { 0x86f4534, 0x1ce92ba, 0x414f5e3, 0xb2a8592, 0x9979436, 0xdd7a4c6,
 7959          0x3f0add7, 0x7599aff, 0xe2d4f64, 0xe0ce4d3, 0x401a29f, 0x74475cc,
 7960          0xa2377d9, 0xaef6541, 0x3f917b6, 0x54048f5 },
 7961        { 0x05312ec, 0x1b86b22, 0x31493cb, 0x779ba22, 0xaac9320, 0xc718369,
 7962          0x617fce4, 0xeab01a8, 0xf7187fa, 0x17b1f10, 0xa1aca46, 0xe68eda0,
 7963          0x2586342, 0x61033fe, 0x0b6ca43, 0xfc14e79 }
 7964    },
 7965    {
 7966        { 0x13d2491, 0x9f22319, 0x7997202, 0x66bdb53, 0x4617f34, 0x0bafb0c,
 7967          0xf3bb7b3, 0x5917831, 0xb45bddb, 0x6feb2a6, 0x0202c19, 0x08662b3,
 7968          0x05852f6, 0x0bc2b57, 0x91818c2, 0x2c00fd4 },
 7969        { 0xda37dac, 0xca7672c, 0x5a30865, 0xfe4c04c, 0x322e92a, 0x5f1399f,
 7970          0x25b1beb, 0xe7d67ea, 0xdce7f68, 0xe08b014, 0xf2f2b3c, 0x24df52a,
 7971          0x750ecd1, 0x2028b23, 0xc810a45, 0x9b25d4b }
 7972    },
 7973    {
 7974        { 0x7a9d799, 0xa35b715, 0x01f9c99, 0x6da1eb3, 0xe363ba8, 0x33ef91c,
 7975          0xce140da, 0x21c0e2e, 0x158cd84, 0xb0b11bf, 0x93da438, 0x6a87442,
 7976          0x3db585b, 0x924f10d, 0x10c6159, 0xf5ddd73 },
 7977        { 0x6a74c21, 0xb72dcb8, 0xcc8f79f, 0x6d14198, 0x9c5a8d6, 0x99f4b6c,
 7978          0x90e135c, 0x0639688, 0x83f6385, 0x330edb8, 0x9079675, 0xe1a5a6b,
 7979          0xb8f5fe0, 0x6e37fa8, 0x61dca1e, 0x60e2fd9 }
 7980    },
 7981    {
 7982        { 0x66c395e, 0xc6cb403, 0xb51d0f1, 0x03b21a7, 0xe693181, 0xbc478a5,
 7983          0xc6cff33, 0x0017c2f, 0x39d8d1e, 0x740a5b8, 0x4d9ec6d, 0x3968d66,
 7984          0xb0ef1b0, 0xfd53738, 0x1ed0a04, 0x73ca8fd },
 7985        { 0x75ab371, 0x4ace938, 0xddad7e9, 0xd602936, 0x750bcc2, 0x1f5424a,
 7986          0x68c7a17, 0xfe09b36, 0x58341ec, 0x165f7de, 0x6ce61e5, 0x95b825a,
 7987          0x66c83c4, 0x9d31e19, 0xcc5887b, 0x65b3e08 }
 7988    },
 7989    {
 7990        { 0x21482d1, 0xd37e932, 0x08b6380, 0x9af6597, 0x7d61e4b, 0x279426a,
 7991          0x80997ad, 0x80dd0ec, 0xd5b76d4, 0x7239b0d, 0xe76c098, 0x92e6c73,
 7992          0xeab3e1d, 0xeeb2321, 0xeb1a910, 0xa69c4a7 },
 7993        { 0x833d9ae, 0x46d6aa7, 0x572b0fe, 0x3ee6957, 0xcdb3d97, 0x44ccbed,
 7994          0xcbea01b, 0x342f29d, 0x8926876, 0x0d518c5, 0x5585d2c, 0xaaabae7,
 7995          0xe008f58, 0xc548c77, 0x21fab2c, 0x819e2fa }
 7996    },
 7997},
 7998{
 7999    {
 8000        { 0xc16e981, 0x468e149, 0x9ddbb7c, 0x286c790, 0xdb7a38a, 0x2a92d47,
 8001          0x8a27cb2, 0xde614e6, 0xe5b0ab6, 0x8dc8822, 0xcf48565, 0x38441ae,
 8002          0x089435b, 0x11ed5c9, 0x82d0d31, 0x2389286 },
 8003        { 0x72f2f31, 0xc6698d4, 0x56d76af, 0x295242c, 0xeba563b, 0x4099205,
 8004          0x3ab7384, 0xae7de5a, 0xd0ed86c, 0xccdf127, 0x965c3c3, 0xb9b6d5b,
 8005          0x2c31ad7, 0xe351a8f, 0xac12f13, 0xa761dd8 }
 8006    },
 8007    {
 8008        { 0xf171ab7, 0xda115dd, 0x401f93d, 0x2de17b1, 0x40964b4, 0x95019ca,
 8009          0x65ba3c3, 0x169d1f4, 0x0090d08, 0x534a007, 0x82bf410, 0x805c5e2,
 8010          0x65f8d90, 0x15dfe11, 0xca72456, 0x827a416 },
 8011        { 0x33a36c4, 0x5af8884, 0xd8ee604, 0x8bfa54c, 0x9ce290f, 0x08fd141,
 8012          0x287b3a6, 0x2db5e8c, 0x03cdad2, 0xe5be981, 0xbf810b9, 0x155b874,
 8013          0x670f473, 0x2ae42de, 0x7f74657, 0x2218584 }
 8014    },
 8015    {
 8016        { 0x23ffa43, 0x54b2a50, 0xa24d919, 0xcf87b16, 0x63524e8, 0x1ff5402,
 8017          0x56d1e54, 0x73c94e0, 0x3899fb5, 0x7651552, 0x18723bf, 0x13a7214,
 8018          0x3561517, 0x39afbdd, 0x9f2862e, 0x49b790a },
 8019        { 0x527d2ce, 0xc8c1f4f, 0x7609bb7, 0x1997aec, 0x02a3400, 0x583ad80,
 8020          0x4f79706, 0xac2374e, 0x21b7183, 0xbf1f9a8, 0x6600fe0, 0x06158ab,
 8021          0xbd56751, 0xfcc9b2e, 0xddaaec7, 0xe1de5ac }
 8022    },
 8023    {
 8024        { 0x788fdab, 0x230baa1, 0x7d04597, 0xf30860a, 0x99f4caa, 0xa2c7ece,
 8025          0x6ad065e, 0xbd39f10, 0x3bef7bd, 0xfd92f5d, 0x96d2203, 0x6069fad,
 8026          0xc4d9e0d, 0xbff38ca, 0x1fda313, 0x419a017 },
 8027        { 0x572f035, 0x5d77fd8, 0xb282b40, 0x5af99f2, 0x23facff, 0x7257d3b,
 8028          0x58c90af, 0xf2ee223, 0x9b6a52a, 0xcc2687d, 0x302430e, 0x140892c,
 8029          0x3ec4f38, 0xa934d5e, 0x3bd18be, 0xc087d7c }
 8030    },
 8031    {
 8032        { 0xa2c5ed7, 0x7e94138, 0x53610bf, 0xbc8ceef, 0xd86f803, 0xe89356b,
 8033          0x5a55330, 0x9a3a380, 0x11ad648, 0xe894aba, 0xba95918, 0x2e68fba,
 8034          0xfcad344, 0x643e2ba, 0x61640aa, 0x0dd0256 },
 8035        { 0xe25cbdd, 0xc02e479, 0x13a1b3f, 0xd78c4d8, 0xcca9692, 0xa6dae8f,
 8036          0xe5de8a0, 0x3dd91e9, 0x764ea36, 0x78ae0ce, 0x85dbc5e, 0xb4ad999,
 8037          0xe82a169, 0x967ff23, 0xbaee1fc, 0xaeb26ec }
 8038    },
 8039    {
 8040        { 0x9a6f90c, 0x8c50255, 0x0ea374a, 0x56e7abe, 0x56413b2, 0x675c722,
 8041          0x946753f, 0xd3fc17e, 0xe235f7c, 0x28c4e1f, 0xb028eb0, 0xe209bcd,
 8042          0x489fe88, 0x7d0f93a, 0x063706a, 0xb966a2e },
 8043        { 0x4a30319, 0xb6c228c, 0xca6d674, 0x6868efe, 0x057311a, 0x0610a70,
 8044          0xbad7f89, 0x0808112, 0x1dd6181, 0x2a2462c, 0xb58e88a, 0x52ed9fe,
 8045          0x33821a2, 0xbbff16f, 0x17f882a, 0xda53e96 }
 8046    },
 8047    {
 8048        { 0x8c30e5d, 0xb6ffca3, 0x5c905f5, 0xa90f991, 0xd753e88, 0x72fb200,
 8049          0x7256c6a, 0xe509d4c, 0xd866500, 0x369e552, 0x33cf8ae, 0xee4b7e0,
 8050          0xefcf6eb, 0x280d954, 0xd557f0e, 0x5b275d3 },
 8051        { 0xb5cecf8, 0xeb17211, 0xbdb2f8d, 0xd6ad50f, 0x35e04b7, 0x2478c7b,
 8052          0xac73bd3, 0x97e7143, 0x4817e24, 0x09d6ede, 0x2c405e1, 0x68fea71,
 8053          0x05f67a1, 0x34adbc9, 0x73edf99, 0xd20ab70 }
 8054    },
 8055    {
 8056        { 0x569f191, 0xe116a96, 0x4d6e29a, 0xb3f0bce, 0xf51dbab, 0x30b9e1a,
 8057          0x346d276, 0x1dd36f3, 0x0749a27, 0x8315103, 0xab47f70, 0x242f148,
 8058          0x5585681, 0xe8a5bcf, 0x5ed79ba, 0x8b80184 },
 8059        { 0x3894ad1, 0xa4042fd, 0x2b88bc6, 0x82f781d, 0xbe4c397, 0x2d34cac,
 8060          0xdd99c9f, 0x8731aea, 0xef1d382, 0x0f95498, 0xdd0bbc9, 0xcaba2e1,
 8061          0x54064e8, 0x78889e9, 0x61a8ab9, 0x8cd9c97 }
 8062    },
 8063},
 8064{
 8065    {
 8066        { 0xfa0459e, 0xf31f53f, 0x315cd6b, 0xf8742a1, 0xae64e97, 0xabe2f50,
 8067          0x9b9da48, 0xbd78741, 0x51e526e, 0x4521a33, 0xe10ba45, 0xfa05935,
 8068          0xe8f903c, 0x5c947e1, 0x5a754ee, 0x0aa47d1 },
 8069        { 0xd814825, 0xb2849ef, 0x5c9968d, 0x9c2a5d2, 0x04e634c, 0x24dbb26,
 8070          0xdb38194, 0x33f3a4c, 0xc8a2b6b, 0xe04f609, 0xabbbfdb, 0xcaefd8e,
 8071          0x404498b, 0x683119a, 0x8b21cbd, 0x24ab7a9 }
 8072    },
 8073    {
 8074        { 0x21fa2dd, 0x6f13269, 0xc10a4bc, 0xd79e61c, 0x4bd6d46, 0xac4b3ce,
 8075          0xbd3f37b, 0x52459b6, 0xa396966, 0xce0f0a3, 0xa1ed488, 0x050d1d5,
 8076          0xe0b17fa, 0x1b9c403, 0x04a2e66, 0xee1abd0 },
 8077        { 0x5cf3e3b, 0x97065c3, 0xbe33441, 0x6513d5f, 0x79047ae, 0xcd34634,
 8078          0xfd22df1, 0x45cbb1c, 0x967b17c, 0x7a173ae, 0x2223cda, 0x75f5ba7,
 8079          0xefe0a73, 0xe3d12db, 0xfd7adcf, 0x3b7f94d }
 8080    },
 8081    {
 8082        { 0xf1e9b7d, 0xd596a13, 0x6734e0c, 0x04f5bdd, 0x8be163a, 0x18b694f,
 8083          0xd959fa3, 0x15620c7, 0x53d2a3b, 0x65fc2c5, 0xc4d36f2, 0xd44a364,
 8084          0x268ceab, 0xc8b421f, 0xbfe2bd4, 0x564139a },
 8085        { 0x19d4633, 0xb524610, 0x6346934, 0x5ab3f88, 0x9819422, 0x96691fe,
 8086          0x8b39b82, 0xdfdec89, 0x97cfb27, 0x84b1c79, 0x4d6d004, 0xe59a98d,
 8087          0x12c350f, 0x5e5d0c6, 0xd415774, 0xb431220 }
 8088    },
 8089    {
 8090        { 0x6aae0a2, 0x3d0ca73, 0x48c2d8c, 0x7b1991f, 0x5cdae72, 0x00ae856,
 8091          0xbd55128, 0xdbb6ca0, 0x45c82bf, 0x3c2ab2a, 0x79545ca, 0xea5a559,
 8092          0xd5927d0, 0xeba9a26, 0x83257fc, 0xb52e401 },
 8093        { 0xca9650a, 0x55ed517, 0xe3ebff2, 0xbdaa081, 0x9f8831b, 0x8cf7ce4,
 8094          0x6e3b8d3, 0x1d0b5bd, 0xd8fc869, 0xa314a9f, 0xb892bab, 0x07f2079,
 8095          0xa0cc9d9, 0xb700dbf, 0x6dc0a39, 0x7105a08 }
 8096    },
 8097    {
 8098        { 0x8c7d901, 0x0c7e05d, 0xaf3182b, 0xa7ff681, 0xf9a0d06, 0xb88e3ca,
 8099          0xc343b7f, 0xfe20a12, 0x03251f9, 0x9f02577, 0xc40c5eb, 0xf225ded,
 8100          0xb208ea7, 0x50e0cec, 0xe6eeb65, 0x5b250f0 },
 8101        { 0x4806b6e, 0x807a153, 0xfa94139, 0xded120a, 0x49366fb, 0x237ddc7,
 8102          0x5a34bcb, 0xdd3674e, 0x9c4a61d, 0xef6cdff, 0xb2fb896, 0x036194b,
 8103          0x9528cd9, 0x3865953, 0x6936a52, 0x0723c59 }
 8104    },
 8105    {
 8106        { 0xe17719d, 0x1f84cd5, 0xc73b394, 0x545939b, 0x83e84e7, 0xefbf3c5,
 8107          0xf77fd66, 0x6cc46f1, 0x1383ab8, 0xa629f59, 0xcd35cd2, 0x9177ffa,
 8108          0x9dd411b, 0x039187f, 0x7b7eea8, 0xa9cf1cf },
 8109        { 0xac47e5d, 0xa3b105a, 0xd0a9da4, 0xa755bea, 0x73da15e, 0x50cfbae,
 8110          0x60b628c, 0x9456cbc, 0x9b7a910, 0x7ffc362, 0xcd6d6a4, 0x30b5924,
 8111          0x0b04ab6, 0x198629f, 0x624dea9, 0xc74609c }
 8112    },
 8113    {
 8114        { 0xaf12fa6, 0x27d4d77, 0x690aeb2, 0xdd8a216, 0xfe24417, 0xe48fc02,
 8115          0x720e17e, 0x1970403, 0xce37b42, 0x95013fd, 0xde4bd9b, 0x06817d2,
 8116          0x63d0ba2, 0xc5863e7, 0xa556f5d, 0xa1bafc0 },
 8117        { 0x410a78a, 0xf28ec7b, 0x0a01a63, 0x0dcac42, 0xb5bce11, 0xfcd3fa4,
 8118          0xd278b89, 0x054d7e5, 0x5ce49e3, 0x5195db8, 0x2c73d96, 0x4c0b167,
 8119          0x20a1bdb, 0xd943077, 0x59c77a7, 0x66fa8b3 }
 8120    },
 8121    {
 8122        { 0xd7462fe, 0xb9e93ae, 0x18dde4f, 0xbfe54b2, 0x3dbb08e, 0xaabb528,
 8123          0x0e5fc45, 0x8c36702, 0x8e69be3, 0x3502888, 0xc12a11d, 0x6d2efc1,
 8124          0xf265e30, 0xfce5ceb, 0x5742c7e, 0x58c8bb3 },
 8125        { 0xccf7fa0, 0x32e89dc, 0xdd020a4, 0xa811f33, 0x5129fe5, 0xa10d620,
 8126          0xe4ed29b, 0x3841c88, 0xd8b1ea6, 0xf3303a9, 0x1781f58, 0xa9a0cad,
 8127          0x8f3ef0b, 0x4502b38, 0x74c6d35, 0x2b7587e }
 8128    },
 8129},
 8130{
 8131    {
 8132        { 0x23ae7cd, 0xc6eaea1, 0x73c0caa, 0xa1884d4, 0xef1ea88, 0x901e76f,
 8133          0xa14269d, 0xdb9935c, 0x947f1de, 0xe8b2486, 0xa657588, 0x4ad56f4,
 8134          0x2913fb1, 0xe768054, 0x37600da, 0x2abff5d },
 8135        { 0xa81a797, 0xa814813, 0x46acb69, 0x63e76a4, 0x4ab8277, 0xb103839,
 8136          0x9d8e759, 0x587de34, 0xddf62df, 0xdfaeb8d, 0x9239d49, 0x24fe1cf,
 8137          0xe130d1c, 0x7de7409, 0x581d070, 0x3ecfef9 }
 8138    },
 8139    {
 8140        { 0xf87c72d, 0x8d177a0, 0x8c6d1de, 0xae7e581, 0x8cece85, 0x0077b5f,
 8141          0x32d2187, 0x3824838, 0x6db2bd2, 0x49d8b15, 0xc8d85b9, 0xe9e5513,
 8142          0xe05c53f, 0x63c410c, 0xd86f752, 0xceaf2fb },
 8143        { 0x93806c5, 0x0b432fe, 0x3d06c75, 0x18eb15d, 0x12cfc02, 0xcaad826,
 8144          0x1e2d045, 0x581e040, 0x95edcfd, 0xd573cb5, 0xdbc66e3, 0xce71948,
 8145          0xacc14ea, 0xcf68721, 0x6cac4dc, 0xf68bea2 }
 8146    },
 8147    {
 8148        { 0xcb74da2, 0xd8576af, 0xc433f46, 0x8771c29, 0xe2f5b8e, 0x7315af6,
 8149          0xba33928, 0xc195481, 0x2fb1f94, 0xb77dcc2, 0xa610f75, 0xcb3e57c,
 8150          0x53907df, 0xeb2a927, 0x23eff95, 0x916f149 },
 8151        { 0xb6cd291, 0xbb378e4, 0x2f13ce1, 0xa2a5e2b, 0xbcd00b0, 0xa8a0e60,
 8152          0x682b75a, 0x5902741, 0x3f65a77, 0xa0882c9, 0xc93cfff, 0x2069f75,
 8153          0x70c0cb9, 0x1ede405, 0x0d526c4, 0x13840c9 }
 8154    },
 8155    {
 8156        { 0x03ced48, 0xdc2caaa, 0xa0315be, 0x2079219, 0x3b1f642, 0xca49356,
 8157          0xb0665f2, 0x0202dc7, 0xb7a5238, 0xe5d6bbd, 0x26eab32, 0x36fbd5e,
 8158          0xf5819b4, 0xb3988f1, 0x4aa4d69, 0x5b15dc8 },
 8159        { 0x54e5c24, 0xa52feed, 0xe91a797, 0x927471b, 0xd57f677, 0xd119bfd,
 8160          0x78e4c4f, 0xde38f7b, 0xb150bc3, 0xa7af516, 0x26b76c2, 0x403b21e,
 8161          0x92300dc, 0x589067d, 0x066802a, 0x04e406a }
 8162    },
 8163    {
 8164        { 0xa9ca9bb, 0x28e7d09, 0xfccf4a0, 0xaa84fd5, 0x635b7ed, 0xdbe9fb8,
 8165          0xd56fc7c, 0x9ede3f5, 0xb01cb29, 0xa4b5031, 0x7f93703, 0x584299d,
 8166          0xb6fe825, 0xbd28868, 0x8b9c2d9, 0x1d385d4 },
 8167        { 0x822be80, 0x6606f4a, 0x626d0fd, 0xb5a0165, 0x14568ad, 0x9920a20,
 8168          0x1c6d174, 0x7d430f4, 0xe02e9e9, 0xc243e16, 0xa6bd649, 0x367f1d2,
 8169          0x71b8c36, 0x6939100, 0x4de2984, 0x2ede131 }
 8170    },
 8171    {
 8172        { 0x5beec32, 0xdc78187, 0xa525ff4, 0x1fff0cc, 0x676df34, 0x6e86425,
 8173          0x3f638e1, 0x2b4e8a6, 0x9b1e59f, 0xc4991d2, 0x1589717, 0x399d001,
 8174          0xbe041cd, 0x406464e, 0x9e65bb0, 0x901cb3d },
 8175        { 0xfb42307, 0xf5f4572, 0xf1b7307, 0xf81b3b0, 0xf2094d1, 0x8fb695c,
 8176          0xdb56f7b, 0x7db4792, 0x5a794e0, 0x36836d5, 0x09bc879, 0x2da477b,
 8177          0x1887c40, 0x1cdfadb, 0xf2699b6, 0x65dc6c2 }
 8178    },
 8179    {
 8180        { 0x4737972, 0x36f9f21, 0x7a387b0, 0x48f0c8b, 0x39a1d24, 0xa156ed3,
 8181          0x0fed268, 0x375293a, 0x7ff75cb, 0xf679f48, 0x1cc9e62, 0xd15a00f,
 8182          0x22c3877, 0x92a7dc7, 0x6fb0ed4, 0xe987063 },
 8183        { 0x16f5f3c, 0xfd8e59c, 0xaeeb48e, 0x375732e, 0xca1ab42, 0x2dd9213,
 8184          0x9ffccea, 0xcb06209, 0xb23edfd, 0xfc611f6, 0x99b060e, 0x2716349,
 8185          0x820de8a, 0xb938b5d, 0xeb49a32, 0x138f6e7 }
 8186    },
 8187    {
 8188        { 0xe485f70, 0x7feda63, 0xeb27b2c, 0x646380a, 0xc4511c7, 0xcf8fe32,
 8189          0xff9406a, 0x2c68e1e, 0x20b6020, 0xa9f2fd9, 0x3b3e465, 0x1c98fc6,
 8190          0x93e53aa, 0xb8dac35, 0xa750e96, 0x2fb47b6 },
 8191        { 0x1950bb3, 0xea373ef, 0x4ac7aec, 0x8156694, 0xb55b931, 0x8d6b3c2,
 8192          0xb62ef7d, 0x5d13f2d, 0xab9182b, 0x4647f2a, 0x33bf07c, 0x8f56c5a,
 8193          0xb35a221, 0xc5ab284, 0x5a46a6b, 0x0747ab7 }
 8194    },
 8195},
 8196{
 8197    {
 8198        { 0x86b85c5, 0x5b9236c, 0xc482448, 0x5967a0d, 0x7df6ae0, 0x397c955,
 8199          0x5378f2b, 0xf83ee1c, 0x6e05dd1, 0xf82df65, 0x19d7c8b, 0x4c424f6,
 8200          0xa6d5f2a, 0xa612550, 0x63c3ebf, 0xfe8482a },
 8201        { 0x0142c82, 0xcb8d403, 0x3679e6c, 0x08b0662, 0x3eca5ee, 0x3ea5146,
 8202          0x1370500, 0x089eb3b, 0x5a0d306, 0xcbfb19c, 0x42a65bb, 0x2f68588,
 8203          0xe51e119, 0xe3e1db5, 0x110895e, 0x2c150e7 }
 8204    },
 8205    {
 8206        { 0xf6d4c4c, 0xf323488, 0x63b87e2, 0x5fc931f, 0x35c759f, 0x8867da0,
 8207          0x9746d4c, 0xb6f1eff, 0x990be0a, 0x8a8172d, 0x5c407b4, 0x1113eee,
 8208          0x378ed8a, 0xd80dacf, 0x3fa7fd1, 0x99b57cf },
 8209        { 0x5176405, 0xf5bb6d9, 0x92e83b5, 0x6b8963a, 0x8a7ef8d, 0xac55b6b,
 8210          0x6c1fbf0, 0xe73fa12, 0x60148df, 0xdb37560, 0xf3f1fba, 0x72f1a98,
 8211          0xea550f2, 0x1f71d0a, 0x9544a87, 0xc3ea4f0 }
 8212    },
 8213    {
 8214        { 0x4322bf3, 0x5b09da2, 0x61264e1, 0x2a573d5, 0x803acc4, 0x93cb2e1,
 8215          0xe502fc6, 0x397b4fb, 0x39e0ebc, 0xddfb212, 0xbbcbc57, 0xeccd8f5,
 8216          0x4663788, 0x49d3bed, 0x1218df9, 0x37192aa },
 8217        { 0x2ffa3c6, 0x8a05bc9, 0x23ebf4d, 0xc38c281, 0xfe343a8, 0xc80d547,
 8218          0x6c63516, 0xa8d5a5b, 0x8d8fa6b, 0xc5d8ce1, 0x24a87c0, 0xeb5e872,
 8219          0x75bfa23, 0x9806e9e, 0x689469a, 0x11f0889 }
 8220    },
 8221    {
 8222        { 0x8e75666, 0x81005f6, 0xd349505, 0xb84d861, 0x9f321ea, 0xe083282,
 8223          0xcfa33a1, 0xb751d7a, 0x067c550, 0x793cf6f, 0x1027e56, 0x073a6b2,
 8224          0x66a6012, 0x53f40ee, 0xc210fa9, 0x70bfaa8 },
 8225        { 0xe4b5998, 0x1518e39, 0x24b8d9c, 0x8f0b530, 0xafdf923, 0xd91c281,
 8226          0x24e3f69, 0xc5cfb28, 0x870871f, 0x63a529a, 0x2128dad, 0x3d3e887,
 8227          0xcb30cce, 0xed658dc, 0xafb7bae, 0xf9373b9 }
 8228    },
 8229    {
 8230        { 0xde58ed2, 0x22d4dbe, 0x03f8789, 0x4fefc1d, 0x344817f, 0x6b0a1fe,
 8231          0xa56b0b2, 0x96bef40, 0xda249fa, 0x32684ee, 0x524a91b, 0x8298864,
 8232          0x0c736a1, 0xa958baf, 0xef2f3e5, 0xd033a7d },
 8233        { 0x43f4d6a, 0x5be3edc, 0x9c89abb, 0x326a39d, 0x55d997a, 0x90c44f7,
 8234          0x6e966c2, 0x2058106, 0x6548038, 0xdbae490, 0xd473fc1, 0xac7bc97,
 8235          0x4b2603a, 0xb34488b, 0x5e9bb98, 0x27aea27 }
 8236    },
 8237    {
 8238        { 0x1b88773, 0xa59e728, 0x0c241f6, 0xe2f05d4, 0x4e75749, 0xa56229e,
 8239          0x1b10705, 0x8f00c0b, 0x19394d3, 0x8559946, 0xaaf5e32, 0x0d7e352,
 8240          0x787b8ea, 0x526c462, 0xa179d48, 0x89297d9 },
 8241        { 0xef43892, 0xeff17e6, 0x221f841, 0x17091eb, 0x4a4b848, 0x82f5eb3,
 8242          0x8eb7b76, 0x6bea477, 0x76c536c, 0x21f2271, 0x96c81bb, 0xd9ef2c8,
 8243          0x54bf4d3, 0x7c27546, 0xd7c28c8, 0x9dd4662 }
 8244    },
 8245    {
 8246        { 0x20e1a6b, 0xe7fff00, 0xa08d467, 0x26a35c6, 0x3248c91, 0xb3c773d,
 8247          0xba7d935, 0xa646615, 0xb0d26fa, 0xa91f453, 0x60c6d32, 0xdcf9c34,
 8248          0x9e3e3dc, 0x6366861, 0xf30f3e2, 0x3012813 },
 8249        { 0xc2fc61a, 0xac6623d, 0x2bfd2ff, 0x108dc25, 0x231d6ea, 0xd7f5c0d,
 8250          0xad1107e, 0xa904f9a, 0x0d1e9c8, 0x46941c2, 0xc810cf2, 0xe5b6451,
 8251          0x4f511d1, 0xaba8e67, 0x08373fe, 0x5b4b94f }
 8252    },
 8253    {
 8254        { 0x849c230, 0x002d4e2, 0xd8ba391, 0x9bed0ef, 0x828e319, 0x745e0c0,
 8255          0xca58de2, 0xcd40907, 0x1abaa4a, 0x2c87ab1, 0xdb64391, 0x3c17a97,
 8256          0x86c72d2, 0x36b184e, 0x485f7aa, 0xb03d202 },
 8257        { 0xde24aba, 0x2b6b79b, 0x2325fb2, 0xdcb7854, 0x66ebae2, 0xf5d1db9,
 8258          0x903840a, 0x35a4d5b, 0x190e9da, 0x7afeb09, 0x35c1792, 0x1818f6a,
 8259          0x3faa269, 0x90091fa, 0x2570235, 0xc4ccff6 }
 8260    },
 8261},
 8262{
 8263    {
 8264        { 0xec85940, 0xa177619, 0x7ef7eee, 0xfca24db, 0x7a90c11, 0xb2450f3,
 8265          0xdbf4f85, 0x29d256d, 0x51316c3, 0x920c8d0, 0x04474da, 0x2f7f7ba,
 8266          0x2ec9a0b, 0x308117f, 0xd0d2085, 0xd0a231a },
 8267        { 0x7ab641d, 0xf3288fc, 0x9f4fa32, 0xc68bade, 0xbbf8253, 0x768f014,
 8268          0xc0a33f0, 0x5eff260, 0x6bb93ce, 0xc71b453, 0x680697f, 0xa71d045,
 8269          0xce72bc3, 0xb62444c, 0xd1379f3, 0x11f03e8 }
 8270    },
 8271    {
 8272        { 0xc16df92, 0x1f54789, 0xe3ed142, 0x874c642, 0xfa2a9f1, 0x6699f60,
 8273          0x3fecfc1, 0xbd1b8d3, 0x8a3d953, 0x59682d5, 0x4a36b81, 0xf17c021,
 8274          0x181a666, 0xeb9621d, 0x3cf1ad8, 0x7c2c3ab },
 8275        { 0xe529f7c, 0xe6888c3, 0xb355315, 0x197b66a, 0x83e31ac, 0x63b558a,
 8276          0x891c68e, 0x4aa7bc5, 0x592e360, 0xc17d989, 0x1363666, 0xc750a29,
 8277          0x4909ac0, 0x0d53470, 0x4594a10, 0xd6d0272 }
 8278    },
 8279    {
 8280        { 0x3fbb635, 0x35c541b, 0x5982afa, 0x50016d0, 0x96b0ca0, 0x58ebce4,
 8281          0x577ea56, 0xb940027, 0xe38480f, 0xf29d305, 0xebd6a2c, 0x43705b0,
 8282          0xe90c639, 0x0e4acda, 0xf56e05e, 0xbe94a29 },
 8283        { 0x30659ad, 0xc61f4a0, 0xc402211, 0x39074ad, 0x51b621d, 0xfe0d8d5,
 8284          0xd1d5222, 0x2d02e8d, 0x46c2683, 0x05ece3c, 0xc689d41, 0xf70705a,
 8285          0x4d837bf, 0xe3caf44, 0x75ba6d0, 0xfda0584 }
 8286    },
 8287    {
 8288        { 0xcb7d458, 0x1098163, 0xf5ba834, 0x12b645f, 0x28af72c, 0x70a3181,
 8289          0xf32e5dd, 0x5f4727e, 0x10a21b4, 0x7cbae15, 0x6785389, 0xa80bf80,
 8290          0xb8f93b7, 0x9827402, 0x08349da, 0xe385f82 },
 8291        { 0x9589f6e, 0x2d05461, 0xe7c0191, 0x6aa5b26, 0xbd5574d, 0xe79ae12,
 8292          0x4148e61, 0x5d13f91, 0x13716ff, 0x7b2be0f, 0x80bb81f, 0x82b0fe6,
 8293          0x3e2569c, 0x697633c, 0x873f8b3, 0x6c1f083 }
 8294    },
 8295    {
 8296        { 0x0be1674, 0x6e26d85, 0xab8044f, 0xe4e47f6, 0x82fc434, 0xfdf46e8,
 8297          0xc89cadc, 0x639ae2c, 0x4b85bdc, 0x2244a52, 0xb7cf4ea, 0xb1e4790,
 8298          0x7e0bb8f, 0x51dce03, 0x2716cee, 0xdd14335 },
 8299        { 0x8e8841d, 0x1c049b4, 0xb97c621, 0x6bf26dc, 0xba01178, 0x21d6255,
 8300          0x8e4f0e4, 0x477258a, 0x68f8ef1, 0xf5e437e, 0x8b03e1e, 0xd118fbc,
 8301          0xe1c91b3, 0x3d6bc51, 0xd5b6907, 0xa259486 }
 8302    },
 8303    {
 8304        { 0x7b6f5dc, 0x4159cfc, 0x493694a, 0x05a52b3, 0x83b8883, 0xeeb511c,
 8305          0x2b06400, 0x19d79e4, 0x738f37e, 0x8e503a2, 0x5a94ad9, 0xa30e579,
 8306          0x262618d, 0x3981c75, 0x2dcba19, 0x06b6c69 },
 8307        { 0x4d1b051, 0xd7242ee, 0x3b350c4, 0x6274ccb, 0xf540019, 0x66df0bb,
 8308          0x5ae12d5, 0x4d66be6, 0x1049cba, 0xcea2960, 0x8df84b3, 0x4047339,
 8309          0x75a31c8, 0x7d6c96b, 0x874174c, 0xbb80159 }
 8310    },
 8311    {
 8312        { 0x59f1aa4, 0xf0f7be0, 0xdcff451, 0x798f39a, 0x8014e1e, 0x96763ff,
 8313          0x09cc5ec, 0x03987a8, 0x893650a, 0x4919656, 0x75e24df, 0x92e8eef,
 8314          0xe89d639, 0x54e97cd, 0x7682cc0, 0x8081d06 },
 8315        { 0xa8ceb71, 0xb9ef41a, 0xa4d7aaa, 0xb8173a4, 0xc54ee10, 0x93d81b1,
 8316          0x70a445a, 0xabe1805, 0x64d569d, 0xac0ff97, 0x3e570be, 0x86946b2,
 8317          0x4180641, 0x8e11dd2, 0x99f67dc, 0x3d0b33c }
 8318    },
 8319    {
 8320        { 0x48bf5a4, 0x2c9637e, 0xccaf112, 0x9fdec19, 0x5c42023, 0xe5cde9d,
 8321          0x878f0cc, 0x9869620, 0x1fe6eba, 0xcf970a2, 0x54e678b, 0x1df5ec8,
 8322          0x28d00dd, 0x4667f01, 0xb0b3fa8, 0xfa7260d },
 8323        { 0xb34239b, 0x6bd2895, 0x2d2a50d, 0x04c8bc5, 0x6cb23e2, 0x14e55ef,
 8324          0x3a278d5, 0x6440c27, 0x2193046, 0xf4b12e3, 0x5dd4c08, 0x46adf64,
 8325          0x4656e8c, 0x70e2998, 0xe4acd44, 0xe7b36ea }
 8326    },
 8327},
 8328{
 8329    {
 8330        { 0x16cf664, 0xea64a57, 0x26fd357, 0x8497ee4, 0x814e851, 0x44d94b4,
 8331          0x5a6a2cf, 0xf4aac22, 0x80c301f, 0x947b309, 0x7865383, 0xf390ba1,
 8332          0xd1773d3, 0x16c4fc6, 0x6227220, 0x61b9814 },
 8333        { 0x1dd0270, 0x07dd03a, 0x0f160df, 0x290ca82, 0x44ba955, 0x8f22054,
 8334          0x0b6f1b3, 0x4e85e45, 0xad78089, 0xfd73ce9, 0x2f2cb0e, 0x67c1270,
 8335          0xee33a61, 0xa7de0d7, 0x6553261, 0x6a811cc }
 8336    },
 8337    {
 8338        { 0x2d0a427, 0x5ef0574, 0x220a341, 0xe8d2e95, 0x8044886, 0xdd28cbf,
 8339          0xa1aa58b, 0xdad7b4b, 0x8ec901b, 0xb28f373, 0x5bbe3db, 0x1841a93,
 8340          0xa075fee, 0x8fd7cd1, 0xc0d3cdd, 0x93b603f },
 8341        { 0x5edd859, 0xca54fd5, 0x64ed687, 0xa4cb05f, 0xed1a3d7, 0x3138668,
 8342          0xee32be5, 0x1224fda, 0xc80aeb3, 0xf1f532b, 0xe8d4d69, 0xa4f65d0,
 8343          0x5905fe5, 0xc697a01, 0x6690ce4, 0x514da7a }
 8344    },
 8345    {
 8346        { 0x3de4a55, 0xc7b9af8, 0xb318d93, 0xc79bad7, 0xf5b1c83, 0x1808071,
 8347          0xb965b16, 0x92112ef, 0x7bb740a, 0x655ab38, 0x384ff87, 0x53dbc8b,
 8348          0x72dc6f2, 0xd153c28, 0x99c7819, 0x2ec20e1 },
 8349        { 0x3b854b5, 0x65e46ea, 0xc711db5, 0x272d5ae, 0x26e19e8, 0xfd1bb53,
 8350          0x3dc0665, 0x33280b8, 0xb8f1c4a, 0x95b986e, 0xa685c4a, 0xa671fc4,
 8351          0x83bdbbf, 0xa03cbd5, 0xab77544, 0xd329402 }
 8352    },
 8353    {
 8354        { 0x8e62b35, 0x40fa651, 0xf9e55a6, 0x3913b11, 0x5270a41, 0x4e8089b,
 8355          0x80d1886, 0x565f52a, 0x512749b, 0x93b5f05, 0x141c547, 0x35c869c,
 8356          0xf86717f, 0x9a44a1a, 0x9c2b2cb, 0x2b9984b },
 8357        { 0x4952322, 0x61fb607, 0x7af1464, 0x2d4072f, 0x600eb30, 0x9b2fa8c,
 8358          0xf10668e, 0x6071fb7, 0x90634ca, 0x27cc24d, 0x471d32b, 0x3875bc2,
 8359          0xa11210c, 0x678590b, 0xfcc5a9a, 0x352b447 }
 8360    },
 8361    {
 8362        { 0x5fa3200, 0x795d541, 0xa92949f, 0xadaa557, 0x3cc88c4, 0x42fff06,
 8363          0x71b68a5, 0x26d6831, 0xe67ad8c, 0x3286549, 0x86396b2, 0x5bf6363,
 8364          0xe12c8ea, 0x41229b6, 0x748952e, 0x05320c9 },
 8365        { 0x900b460, 0xae36b63, 0xf2b6aff, 0x9354ff2, 0x065ee0c, 0x10b810b,
 8366          0xcc8bb38, 0x4d6925f, 0x7a22f14, 0x31c03fd, 0x57544e8, 0x76b7f44,
 8367          0xc0eed26, 0x3a9123c, 0xe0cd1cc, 0x77acd67 }
 8368    },
 8369    {
 8370        { 0x07ec527, 0x2e90530, 0x62937cf, 0x32388ef, 0xe229188, 0xa445389,
 8371          0x33bcebe, 0xa44b68e, 0x4c4e701, 0x5a8722e, 0xcf07e41, 0xfd066e8,
 8372          0x95fab62, 0xa3c1a4f, 0xe542f24, 0xb4d6a1b },
 8373        { 0xaf6c9b5, 0xe6a92e4, 0xc83d61d, 0x9452484, 0x0062276, 0x422b55b,
 8374          0x5279688, 0x261973a, 0x3999fb2, 0xde8be26, 0x7b029ca, 0x64e9628,
 8375          0x06897d4, 0xd8edfaa, 0x6955511, 0x408319c }
 8376    },
 8377    {
 8378        { 0x50a5632, 0xff6baed, 0x5c5885a, 0x922b7d0, 0x1b45864, 0xdf0f3b3,
 8379          0xc04340e, 0x27e49c0, 0x122c447, 0x618c566, 0xeafee7e, 0x7863a38,
 8380          0xb828cb0, 0x7143aff, 0xf9d054e, 0x51fcf4c },
 8381        { 0x27f5e09, 0xc4a4b31, 0x90be2bd, 0x021f47a, 0x7ab956d, 0x1a06019,
 8382          0x86ea86b, 0xe77fa15, 0xd550ef3, 0x9ccde87, 0x6532654, 0x7dee53a,
 8383          0xe826387, 0x8b4f060, 0xad077b5, 0xda38637 }
 8384    },
 8385    {
 8386        { 0x0e9fac8, 0xbc901b3, 0x6fb2a2a, 0xfa08204, 0x5e04efc, 0x92f68ab,
 8387          0x9ac12d0, 0x184a30a, 0xb25d479, 0x1aa11aa, 0x0f03161, 0x8bc5f4c,
 8388          0xcfc8817, 0x7e3a083, 0x597f93f, 0x84d9355 },
 8389        { 0x239abc6, 0xc014478, 0x8d37b04, 0xb226b09, 0xf575789, 0xb056942,
 8390          0xba745eb, 0x816b95a, 0xb98ddb6, 0x2a49d39, 0x291af81, 0xc41ca26,
 8391          0xab26347, 0xb3afe99, 0x604b638, 0x59c31bc }
 8392    },
 8393},
 8394{
 8395    {
 8396        { 0xc42befd, 0xa16a8b9, 0x2052f00, 0x731c9c9, 0x1f5dfa0, 0x1ad49b4,
 8397          0xbffce36, 0x7a289e3, 0x0c79cf1, 0x868fac0, 0x86721ab, 0x6d6d284,
 8398          0xe726c94, 0x590f928, 0x51f3841, 0x0e802cb },
 8399        { 0x0b694bc, 0x6a6a57a, 0x8120fb8, 0xb9bb0cd, 0x9c05826, 0xad96ac7,
 8400          0x7768df0, 0x294da8c, 0xb56c6c6, 0xfe32311, 0xae8d050, 0x291c2c6,
 8401          0xe7db4c9, 0x1c765e7, 0xd65f9f7, 0xe058298 }
 8402    },
 8403    {
 8404        { 0x7e8d345, 0x4bfa85b, 0xde1dfc8, 0xa04ef95, 0x324ace3, 0xb5f7f21,
 8405          0x574b14a, 0x4b350a1, 0xf8e5c8d, 0x11436bf, 0x7642369, 0x1c789f9,
 8406          0xfb623ce, 0xeb5e335, 0x442d562, 0x9deacd2 },
 8407        { 0x531ee71, 0x4ff989f, 0xaacb52a, 0x43e2c49, 0x85bfadc, 0xa763198,
 8408          0xd0161a0, 0x08b6d5c, 0x541f197, 0x010e3fa, 0x3279a16, 0x83a589e,
 8409          0x6309f9b, 0xf099137, 0xf1cea10, 0x07c093b }
 8410    },
 8411    {
 8412        { 0x33d2192, 0x1ce3f0f, 0xc37ce73, 0x07b559a, 0x207be27, 0xaa2ad38,
 8413          0x7ed93de, 0x84f053b, 0x3b98a4b, 0xbc5c797, 0x63aa9b9, 0xc923461,
 8414          0x231a10c, 0x807cc16, 0xa061209, 0x8ffdf57 },
 8415        { 0x497070f, 0xa9ca741, 0xd113b3a, 0xf608ec9, 0x8d0384d, 0x5132726,
 8416          0xf5ec307, 0x96686ac, 0x71c4665, 0x437bbbd, 0x7c379ca, 0xdef09d5,
 8417          0x621747c, 0xf8be033, 0x8ae8047, 0x2775b37 }
 8418    },
 8419    {
 8420        { 0xb2c4fc2, 0x4009798, 0x203772e, 0x148d7d1, 0xf8423fb, 0x9d9392d,
 8421          0xaf8cef4, 0xa5bd72e, 0x4380b53, 0x579d58d, 0x8c39d24, 0x2ff88f1,
 8422          0x5706466, 0x9ca2fbc, 0x1e56af2, 0xb42987d },
 8423        { 0x5d94ea8, 0xcc2556e, 0x5369d76, 0x4e5c2b3, 0x2a94f9c, 0x5de3574,
 8424          0x5cb4145, 0x8d068c9, 0x51bfcbf, 0x4d553ff, 0x8a23fce, 0x3ab7164,
 8425          0xd0fa7f3, 0xc9cb3a9, 0xed9ced1, 0xf81209b }
 8426    },
 8427    {
 8428        { 0xe5b66f5, 0xde7356e, 0xe8a25e0, 0x7b2bf1a, 0x2c9b725, 0x09a444a,
 8429          0x4906c55, 0xfd8a2f4, 0x82514f3, 0x409cc80, 0x28999a9, 0x47e0099,
 8430          0x6a312f4, 0x0a582a6, 0xf6723de, 0xf7946f8 },
 8431        { 0x92d8aff, 0xa55f6ba, 0xa544b1c, 0xb62c3c8, 0x5c16a94, 0xa1d1411,
 8432          0x2ad5e71, 0xc378319, 0x06b1dd6, 0x13d7847, 0xee7ff55, 0x99005f8,
 8433          0x8a1e7d8, 0xfb5ea3f, 0xb4cac39, 0xdc7f53c }
 8434    },
 8435    {
 8436        { 0x36e3794, 0x482abaf, 0xc74684f, 0xc23e9e5, 0xf1629be, 0x4544cf6,
 8437          0x2f40374, 0xd8a8ee5, 0xf433bdb, 0x2eea87f, 0xae9990e, 0x489a99c,
 8438          0x54b23b6, 0xefc131e, 0x8600270, 0x25fe699 },
 8439        { 0xc059a7e, 0x03d2d9e, 0x6979c3c, 0xa6445b5, 0x9bfbcea, 0x491a10c,
 8440          0xe937af1, 0x15b5974, 0x797c7fc, 0x4be8002, 0xfedcfee, 0xbed8a49,
 8441          0xa9e0691, 0x35751ce, 0x9ef5982, 0xe9a9fa3 }
 8442    },
 8443    {
 8444        { 0x3065de7, 0xeffeaca, 0xac4d4e2, 0x841d544, 0xcaf199f, 0x8144679,
 8445          0x443967a, 0x98cf4f9, 0xf33183c, 0x8cd57f4, 0xc1b15eb, 0x390832a,
 8446          0xa53b500, 0xc4b1fea, 0xdff24b5, 0xd762a10 },
 8447        { 0xb0ee2a9, 0xccd3eed, 0x362d485, 0xa6dd4a9, 0xf1d047a, 0xeb4ff26,
 8448          0x23860fc, 0xc0771fd, 0x4b64114, 0xdbb4e39, 0x4d29b29, 0x2ff3f24,
 8449          0x387b365, 0x9cac005, 0xde5994a, 0x05b7aa6 }
 8450    },
 8451    {
 8452        { 0xc03dd63, 0x5e71752, 0xbc74687, 0xad10fe9, 0x54c76ab, 0x51a5b0c,
 8453          0x1f586d4, 0x763fd50, 0x816048b, 0xc7bd5ce, 0x3f744dc, 0x8fc83d2,
 8454          0x109df9a, 0x0561802, 0xccf0e43, 0x18fb01f },
 8455        { 0x038ab23, 0xe4606fc, 0xa664c98, 0x5878f1f, 0x5da7356, 0x3aedbbd,
 8456          0x516746a, 0x3c578f5, 0x1a17210, 0x259477f, 0x028248f, 0xc7a869d,
 8457          0x48cbf95, 0x6517a61, 0x3d04d47, 0xbc5f91d }
 8458    },
 8459},
 8460{
 8461    {
 8462        { 0x083ca53, 0x15fd9a9, 0x2697ca6, 0x1161da0, 0x56b676c, 0xf516af3,
 8463          0x75eec13, 0x8a420d5, 0x1a9526b, 0x72d6742, 0x76b463f, 0x8d8c29e,
 8464          0x8815627, 0x38a4f58, 0xe0650f9, 0xf7e528b },
 8465        { 0x382edca, 0x2cfa78e, 0xc4ad83c, 0x638d183, 0xe4a0119, 0x96d3b9d,
 8466          0xa7c1101, 0x5769ccb, 0x2b8d04a, 0xc3b3b79, 0x4951bde, 0x96212f6,
 8467          0x481161e, 0xad7905a, 0x41c5edf, 0x8fd6762 }
 8468    },
 8469    {
 8470        { 0x39d6cde, 0xf7b0635, 0x115a84a, 0x69d0549, 0xcbd9fe4, 0x4a976c6,
 8471          0x950ff96, 0xc92953f, 0x654d127, 0x1d7f0fe, 0xda0f75d, 0x7293870,
 8472          0xcf2277f, 0x7bb3652, 0x834484f, 0x64798c9 },
 8473        { 0xac3a76c, 0xb94d8bf, 0x7ff776b, 0xf5721a9, 0x2722e31, 0x23a6e9f,
 8474          0x9a5c034, 0xe9da996, 0x456ebc3, 0xb9bbf83, 0x96956a4, 0x239f58a,
 8475          0x18b7f00, 0x8b75beb, 0xa51cb97, 0x6c2b5b8 }
 8476    },
 8477    {
 8478        { 0x7eb41f3, 0x78b1c62, 0x17c4352, 0x0638fcf, 0x0c5709c, 0x939edd8,
 8479          0xedc906c, 0x0a8dfc3, 0xefb01ed, 0x3942f47, 0x49986fe, 0x4c82757,
 8480          0x4dffa57, 0x792545c, 0x6c3ff26, 0xeee6883 },
 8481        { 0x12b1218, 0x824d08e, 0x902457f, 0x515a478, 0xbae55b3, 0xc70cc9c,
 8482          0xbcef9d4, 0x1240737, 0x2f9db7f, 0xf22e616, 0x91f8da2, 0x98c4f02,
 8483          0xafaaa67, 0xa89219c, 0xe7d27e2, 0xf35fd87 }
 8484    },
 8485    {
 8486        { 0x01b80d0, 0x19b0cd7, 0xf9aebd1, 0x3d7e29d, 0x0477cbc, 0xd39c9ca,
 8487          0x5ff0d3d, 0xac0f615, 0x520fd01, 0x8a51993, 0xb22d6fb, 0x508ff54,
 8488          0x318d3ab, 0x8786c47, 0x4a683f8, 0x4312c46 },
 8489        { 0x95359f6, 0x73b1d39, 0x963011e, 0x0d94fa5, 0x9bfe83e, 0x5723af2,
 8490          0x6841df3, 0xafa9001, 0xb7c498a, 0x791e92a, 0x7ea4253, 0xbc931ad,
 8491          0xb783c06, 0x438e016, 0x2ca662b, 0x1347db2 }
 8492    },
 8493    {
 8494        { 0xfbaa861, 0x41df37d, 0x329e4de, 0x98ecb23, 0x507e018, 0xdaf1560,
 8495          0xb088e32, 0xa902269, 0xe4cab2f, 0xad898a5, 0x02c1e1b, 0xd84e9ed,
 8496          0x8488af3, 0xc20a5d5, 0x6cc77c6, 0xc7165af },
 8497        { 0xdeb7461, 0x8526f3a, 0x4a2d332, 0x03577b1, 0xe4760b5, 0x28e469d,
 8498          0xb276266, 0x442c7f9, 0xf9c90fa, 0x90d5c77, 0x3e211bd, 0x7aa8716,
 8499          0x5decfd6, 0x56d8ff0, 0xee23e6e, 0xa204b56 }
 8500    },
 8501    {
 8502        { 0x4aceafc, 0x2e4374e, 0x6fcd5e5, 0x978743b, 0xc4855ca, 0xa0f6345,
 8503          0xe98074b, 0x9bc7e4f, 0xc33d08a, 0x3835d57, 0x6f00566, 0xeec7c8b,
 8504          0x1acf55c, 0x71628a2, 0x97fb19e, 0x5da3750 },
 8505        { 0x01a7125, 0x6904a8e, 0xe6e3780, 0xad33c85, 0xc19f94a, 0x1702928,
 8506          0x7c04b3d, 0xb424ff2, 0x19e2ba3, 0xb212e39, 0xc9af4c9, 0x4cca8e8,
 8507          0xfd9bf0e, 0x98ab7ae, 0x9799db5, 0x21d245d }
 8508    },
 8509    {
 8510        { 0xec08806, 0x6b034dc, 0xb40f2d9, 0xfd763f2, 0x29cb906, 0x5e16de0,
 8511          0x8a0e16a, 0x02b7014, 0xe071e12, 0x463c8ee, 0x25ad509, 0x6447281,
 8512          0xdc0e07a, 0x9ee6f2d, 0x68d4d97, 0x188895c },
 8513        { 0xb27f971, 0x092fff3, 0xc9b7722, 0xb3c159f, 0x3cae42d, 0xe27d8ff,
 8514          0xe87071d, 0xf8a5ed6, 0x607ebd2, 0x318388f, 0x53486f1, 0x924967b,
 8515          0x7c46e1f, 0x7730494, 0xf21d196, 0xf279c60 }
 8516    },
 8517    {
 8518        { 0x84f3201, 0xef2bc03, 0x1f94c51, 0xf8750c7, 0x986ec65, 0xbaa4f5a,
 8519          0x2732a33, 0x6f8a5de, 0x299e365, 0x0f13d80, 0xe85261f, 0x2709530,
 8520          0xf527d56, 0x097d922, 0xbe1f3f8, 0x4969687 },
 8521        { 0x3e1708d, 0x9f3f504, 0x4aa4be4, 0xac67b87, 0x320a87e, 0x75fb042,
 8522          0x6e2cad6, 0xa361ad3, 0x203e9f6, 0xcb01470, 0xc9b76c6, 0xe3807b7,
 8523          0xb907c09, 0xf086833, 0x7e85a01, 0xe9bed3c }
 8524    },
 8525},
 8526{
 8527    {
 8528        { 0x91780c7, 0xa7ea989, 0xd2476b6, 0x04e4ecc, 0xc494b68, 0x0af9f58,
 8529          0xdee64fd, 0xe0f269f, 0x021bd26, 0x85a61f6, 0xb5d284b, 0xc265c35,
 8530          0x3775afd, 0x58755ea, 0x2ecf2c6, 0x617f174 },
 8531        { 0x5ec556a, 0x50109e2, 0xfd57e39, 0x235366b, 0x44b6b2e, 0x7b3c976,
 8532          0xb2b7b9c, 0xf7f9e82, 0x0ec6409, 0xb6196ab, 0x0a20d9e, 0x88f1d16,
 8533          0x586f761, 0xe3be3b4, 0xe26395d, 0x9983c26 }
 8534    },
 8535    {
 8536        { 0x6909ee2, 0x1d7605c, 0x995ec8a, 0xfc4d970, 0xcf2b361, 0x2d82e9d,
 8537          0x1225f55, 0x07f0ef6, 0xaee9c55, 0xa240c13, 0x5627b54, 0xd449d1e,
 8538          0x3a44575, 0x07164a7, 0xbd4bd71, 0x61a15fd },
 8539        { 0xd3a9fe4, 0x30696b9, 0x7e7e326, 0x68308c7, 0xce0b8c8, 0x3ac222b,
 8540          0x304db8e, 0x83ee319, 0x5e5db0b, 0xeca503b, 0xb1c6539, 0x78a8dce,
 8541          0x2d256bc, 0x4a8b05e, 0xbd9fd57, 0xa1c3cb8 }
 8542    },
 8543    {
 8544        { 0xd95aa96, 0x5685531, 0x6bd51ff, 0xc6f1174, 0xc9c2343, 0xb38308a,
 8545          0x2921841, 0x52ee64a, 0x78f3b01, 0x60809c4, 0xae403ac, 0xe297a99,
 8546          0xcb09a5b, 0x7edc18f, 0x81ac92a, 0x4808bcb },
 8547        { 0x34dc89a, 0x3ec1bb2, 0x4e39da5, 0x1e8b42e, 0xe526486, 0xde67d5e,
 8548          0x76f0684, 0x2376548, 0x285a3dd, 0x0a583bd, 0xfe9b009, 0x3d8b87d,
 8549          0x0413979, 0x45bd736, 0x38a727f, 0xb5d5f90 }
 8550    },
 8551    {
 8552        { 0x4bde3ee, 0x7b8820f, 0x24d5170, 0xea712ef, 0xdf6ec7b, 0x517f88c,
 8553          0x983ea9a, 0xb15cecf, 0x31a4592, 0x9eeee44, 0xebb013e, 0x786c784,
 8554          0x1f4e15d, 0x2f06cb3, 0x4f4fda1, 0x5603fd8 },
 8555        { 0x9e1321f, 0xf6790e9, 0x74a4c09, 0x274c66a, 0x9a41a4e, 0xa4b70b4,
 8556          0xada5157, 0x7700bdd, 0x51be8dc, 0xe54a60d, 0x1a477e0, 0xfaf9276,
 8557          0xb027eac, 0x6661c72, 0x280b917, 0x50e2340 }
 8558    },
 8559    {
 8560        { 0x96ec123, 0x635f40f, 0x7a766a4, 0x4a33133, 0xb935587, 0x9ce4416,
 8561          0x95d97e4, 0xbb6e1f5, 0x9d4197d, 0x2614723, 0x490e896, 0xabd4478,
 8562          0x8bba895, 0xf6a1b2a, 0x5e27a45, 0x401fa40 },
 8563        { 0x0620900, 0x7354ba5, 0x385678b, 0xc443a29, 0x53cf5fa, 0x48aba10,
 8564          0xbbe152d, 0xd67e723, 0x2a63d68, 0x4b858e0, 0x72be4ee, 0x174e1ee,
 8565          0x9ab8d46, 0xad0fbb3, 0xce17dd7, 0xa0fdffb }
 8566    },
 8567    {
 8568        { 0x9c46fd8, 0xa1ea325, 0x9fb96ef, 0xeca122e, 0x6767acd, 0xf9074a2,
 8569          0x2787082, 0x9b004a2, 0x7f3ba8e, 0x389f807, 0x0d5aabe, 0x6463de9,
 8570          0xb090585, 0xf30ceaa, 0x5634ab8, 0x71b31e8 },
 8571        { 0xaf02aed, 0x0dee65c, 0x20ac252, 0x506886e, 0x86b8a59, 0x0665f78,
 8572          0xf2bb328, 0xb9b784d, 0xdc6b089, 0x46e443a, 0x66c27fd, 0x3d5de19,
 8573          0xf0fde70, 0x0419265, 0x2b5c034, 0xed94612 }
 8574    },
 8575    {
 8576        { 0x13b0056, 0x5a52ad2, 0xb909ee3, 0x9fbeb92, 0xbdaab08, 0xb42ba18,
 8577          0xffc8a77, 0xec127c4, 0xfda906a, 0xc6d2985, 0x994bbe7, 0x5355547,
 8578          0x9cdfd62, 0xa7470c0, 0xd2e675a, 0x31a3971 },
 8579        { 0xcc8b356, 0x8d8311c, 0x01b4372, 0xabb0bf8, 0x0294566, 0x33c1cad,
 8580          0xe07b672, 0xe2e649c, 0x2ae3284, 0x9084d88, 0x1835ce2, 0x7a90d4c,
 8581          0x809d44c, 0xb4d1cd5, 0x9f0528f, 0x7822714 }
 8582    },
 8583    {
 8584        { 0xbf5844b, 0xca884cf, 0x8524cf9, 0x9dd05c4, 0x36ba889, 0xdbffa19,
 8585          0x29e7666, 0xef94fdd, 0x3eaf48f, 0x358f81b, 0x1530d56, 0x96734d5,
 8586          0x4adf9e5, 0x378b2d1, 0x4731f61, 0x2f85046 },
 8587        { 0x99dcb83, 0xd6ae905, 0x6199239, 0xa4f89e0, 0x8f0f958, 0x6405249,
 8588          0xcc27707, 0x2866d99, 0xf551c0f, 0x64681a2, 0x4c37080, 0x2c7b0d0,
 8589          0x00ac301, 0x218925b, 0x54df895, 0x8d57fb3 }
 8590    },
 8591},
 8592{
 8593    {
 8594        { 0x809c8d7, 0xdaebde0, 0x0e95ea1, 0x58c761c, 0x00ae5e2, 0xbd99650,
 8595          0xcd51acd, 0x6117a85, 0x7c55d56, 0xc4424d8, 0xdfbeeaf, 0xe9b1dde,
 8596          0x0db4791, 0xda98bb5, 0x3fca108, 0xff3a5a6 },
 8597        { 0x5ccbea1, 0x172fb8e, 0xa9f6cc9, 0x9fe12a7, 0x8967ce2, 0x1de4b0b,
 8598          0x671dbc6, 0xc1ab60f, 0x5dedcda, 0x338385a, 0x3a043fe, 0x647a420,
 8599          0x28ebc89, 0xe9abc64, 0x03ba3c8, 0xc357ff0 }
 8600    },
 8601    {
 8602        { 0xde39ebd, 0x37061e7, 0x2be567a, 0xebb9135, 0xd6bb80a, 0xa9a6f6b,
 8603          0x99f0ba2, 0x039345d, 0x98bbf47, 0x215494e, 0xa2a1ccb, 0xf2cb7a4,
 8604          0x37f67c9, 0xf51aa10, 0x17fff71, 0xd29c85c },
 8605        { 0x4d30b87, 0x8d4e4f2, 0x93a8309, 0x20fdf55, 0x757075c, 0x9b9f9cf,
 8606          0xcd70101, 0x09142ad, 0x766ca55, 0x901d0ee, 0x32e418b, 0x6a5d86a,
 8607          0xd7fcaec, 0x550ad92, 0xd91b26e, 0x64e8818 }
 8608    },
 8609    {
 8610        { 0x47e5ee5, 0x5cea0f7, 0xbe99699, 0x8ca1d31, 0x5c136c7, 0x52db846,
 8611          0x90e0d74, 0x8cecb38, 0xede2ad8, 0xb8efe9d, 0xf17ade8, 0x18d6ff8,
 8612          0x2d66c20, 0xd222735, 0xf2005fd, 0xc46593e },
 8613        { 0xf7141e1, 0xe5ebe6f, 0xe0126f2, 0xc968315, 0x1cb91b6, 0x95adc73,
 8614          0x38a6003, 0x753b54c, 0x4230a61, 0xa614125, 0x559fece, 0x23ac6eb,
 8615          0x3865c23, 0x9816b60, 0x543a570, 0x567014e }
 8616    },
 8617    {
 8618        { 0xdd2b71f, 0xd46091d, 0x97d24ff, 0x3999a5d, 0x1ecff3c, 0xce2a4f1,
 8619          0x581c6f0, 0xab2687c, 0xcba70b4, 0xa9fb2eb, 0x42093e1, 0x6fde356,
 8620          0xaee724a, 0x00253ec, 0x2b81bdd, 0xa08ce3c },
 8621        { 0x935a2b3, 0xa251238, 0x584f750, 0x8cae1d4, 0x988a219, 0x011469e,
 8622          0x5a6a50e, 0x61f7ed3, 0x01fcebd, 0xe13ebaa, 0x31d8867, 0x794b976,
 8623          0xcda32e7, 0xf25755c, 0x4564cd1, 0x368a97b }
 8624    },
 8625    {
 8626        { 0xaa3397b, 0x0d22224, 0x38066db, 0x1dbb3e6, 0x0ce8e32, 0xfe0b5ee,
 8627          0x7bab4dc, 0x09c17c8, 0xf188b64, 0x5cc65dd, 0x211b5fa, 0x74c4abf,
 8628          0xab0ba86, 0xdcc17b7, 0xa535501, 0xfbdf46f },
 8629        { 0xaca569e, 0x4775087, 0x06a1718, 0x6575f90, 0xb94de93, 0xb5c45a9,
 8630          0x8497171, 0x0fc8006, 0x489f7ab, 0x775d965, 0xf5c0c89, 0x8775b58,
 8631          0x1a06254, 0x05d4e20, 0xb6d73a5, 0x8cab349 }
 8632    },
 8633    {
 8634        { 0x39465b0, 0xca78163, 0x14498fd, 0x3ef9148, 0x6255c11, 0x9ca1f34,
 8635          0xb7f38f1, 0x389fd15, 0x354b8f3, 0xdac2089, 0xa840a70, 0x82d07fc,
 8636          0x1dd483a, 0xf53fd73, 0x1590578, 0xa6e4eae },
 8637        { 0x3c01b77, 0x7bf65af, 0xa75c982, 0x27542f3, 0x716cfce, 0xc5bd947,
 8638          0x884b9e7, 0xba5fe76, 0xd55725d, 0x39bae14, 0xfae0eab, 0x982f64e,
 8639          0x7a5293a, 0xcfae662, 0xd60f464, 0x22a25a1 }
 8640    },
 8641    {
 8642        { 0x7dd5e16, 0x74caecc, 0xce7bca3, 0x23678a2, 0x57f1ba1, 0x4673932,
 8643          0xa4c1697, 0x4eb9948, 0xeaba18d, 0x5d400e8, 0x9807871, 0x128d1c8,
 8644          0xbff38a6, 0x78f9627, 0xa39d4cc, 0xf80b813 },
 8645        { 0x31d3aad, 0x8aeefa0, 0x27db664, 0x5042199, 0x4cb6383, 0x244fc69,
 8646          0x72192a3, 0x3190477, 0xbbfb57b, 0xcc86075, 0x4451511, 0xbae3a13,
 8647          0xf6174f0, 0x16cf416, 0xd376813, 0xb343cc0 }
 8648    },
 8649    {
 8650        { 0xd1824b7, 0x31ac9b9, 0xec8f61a, 0x6282260, 0xc781765, 0xbbeb9f8,
 8651          0x2d110da, 0x06ab5c0, 0x47146b8, 0xd583e22, 0x4100d05, 0x79a1608,
 8652          0xf0a5c95, 0x16dbbb4, 0xe331667, 0xfe2af1d },
 8653        { 0xaf8710e, 0x26f0364, 0xeec08fe, 0x1cb8c91, 0x1d95e9f, 0x436bce6,
 8654          0x57944a0, 0xfe9050c, 0x07b626b, 0x5f45acf, 0x9cf1276, 0x48dc93f,
 8655          0xa05bfb7, 0x4491371, 0x4bcf785, 0x5106304 }
 8656    },
 8657},
 8658{
 8659    {
 8660        { 0xed0b3b6, 0xac2e294, 0x671637b, 0x5c5ade6, 0x1140677, 0x2f289ce,
 8661          0x754eb53, 0xaf446e2, 0x20421ad, 0x70911b7, 0xe0b7556, 0x4b73836,
 8662          0x2a97827, 0xcadf104, 0x8005bc6, 0x4824e49 },
 8663        { 0x937c28a, 0xb0eeccd, 0x0c3ee97, 0x1ce061d, 0x9f33faa, 0xcb07631,
 8664          0xaea66dc, 0x9980bf4, 0xd111d98, 0x2bd0755, 0x7fe4de0, 0x43feaf6,
 8665          0xb077b2f, 0xe76fb80, 0x5793b04, 0x227dc9f }
 8666    },
 8667    {
 8668        { 0x14f49ba, 0xea24ae5, 0x11436e7, 0xbc39ea6, 0x78485d8, 0x9d7fed2,
 8669          0xdf8b131, 0xb6ef00c, 0xfdbc7af, 0x0237b4b, 0x64ccd27, 0x08745b5,
 8670          0xafc5a76, 0xaf8595d, 0x29f5500, 0x43657af },
 8671        { 0x48470f8, 0x3007183, 0x640fd53, 0x51f91fd, 0xbe15512, 0x859c807,
 8672          0xab3e9c5, 0x7d1a474, 0x81553e5, 0x5d714d9, 0x6f62310, 0x0757343,
 8673          0x6b02a62, 0xedc5be0, 0xea47832, 0x5a4b9b7 }
 8674    },
 8675    {
 8676        { 0xe93dbb3, 0x03e0a24, 0xcadc884, 0x25841dc, 0x8d10ad5, 0xabc1a81,
 8677          0x2042ddd, 0x207e38a, 0xfeba8d8, 0x7fffbdb, 0xa3ec9b5, 0x74efebb,
 8678          0x0b40a9f, 0x0bc39ca, 0x0267feb, 0x69ee9c9 },
 8679        { 0xbc62919, 0xd402fac, 0x1cf53c6, 0xe9f8fc1, 0x7cc7d81, 0xe76fa5a,
 8680          0x96bb19d, 0x4f2d876, 0xadc67c7, 0xd4fb7f9, 0x96702dc, 0x40621d5,
 8681          0x438f6c5, 0x5b6a98e, 0xf1a1036, 0xa7c64de }
 8682    },
 8683    {
 8684        { 0x9a092c7, 0x84c5e80, 0x11c22b7, 0x9e40e0a, 0xd06c99b, 0x820a091,
 8685          0xeecca8f, 0x45fdc77, 0x5794f16, 0xfe1b8a3, 0x4ce3d6d, 0x31f7e5b,
 8686          0x82c74c8, 0xfd5e010, 0xc1f6f7d, 0xfdabf30 },
 8687        { 0xb9248a0, 0xbfa6017, 0x546b941, 0xe898d30, 0x207ff65, 0x878c492,
 8688          0xb874e64, 0xbf22e8d, 0x53a547e, 0x43fdb1b, 0x5fbd464, 0xb66deda,
 8689          0xc7ae1b5, 0x59127a6, 0x6a7515a, 0xa463646 }
 8690    },
 8691    {
 8692        { 0xde9ab2e, 0x22c4e66, 0x0203c58, 0xfaf60c2, 0x0d5c5ed, 0xed2d7bf,
 8693          0x4ca0f19, 0xdbc16fe, 0x465b979, 0x54e8ef6, 0xa310ef9, 0xe2d64b1,
 8694          0x3778636, 0xa0f2c95, 0x281883b, 0xf3b4aa4 },
 8695        { 0x9be6629, 0x4ac9af0, 0x1ca90c5, 0xba455e1, 0x856f492, 0x0147538,
 8696          0xabd7840, 0xc80db7e, 0x6beb9cd, 0xb3526d9, 0x9d81503, 0x37657fb,
 8697          0x193cec3, 0x8729a16, 0xd69952a, 0xd9a93fb }
 8698    },
 8699    {
 8700        { 0x94f47c6, 0xfce0175, 0xe366d05, 0x228da21, 0xdc8baf3, 0x27ce0b2,
 8701          0x6b4a951, 0x8cc660b, 0x384bb01, 0xf678947, 0x44d980c, 0xc629d7d,
 8702          0xe85e81f, 0x47980e4, 0x1cd723e, 0xa2e636a },
 8703        { 0x77fb207, 0x6b6ebae, 0x4c92891, 0x7017961, 0xb4d279c, 0x5569541,
 8704          0x41758cb, 0xbb6b36a, 0x27a8e30, 0xecaa222, 0xb470ad9, 0x8b6746a,
 8705          0x63e2d3d, 0x4c46017, 0xd3edaec, 0xe19c4ed }
 8706    },
 8707    {
 8708        { 0x34718c8, 0x0b43fec, 0xf33499f, 0x553c407, 0x970d1db, 0x8272efb,
 8709          0xa8e8d1c, 0x008c62c, 0x63eec45, 0xe4b79d7, 0xf2d71a3, 0x1fd4230,
 8710          0xa368c36, 0x090fdaf, 0xfca7baa, 0xf62c101 },
 8711        { 0xd2395b3, 0x1c9e6c8, 0x04c5513, 0x671ed63, 0x299a465, 0x577d933,
 8712          0x63f9986, 0x286890e, 0xbfc979c, 0xd92a95d, 0x2b51019, 0xcebd79d,
 8713          0x3d07251, 0xe74d88b, 0x906f9ad, 0x8b6db73 }
 8714    },
 8715    {
 8716        { 0x7b3d90c, 0xc0c43db, 0x4304a06, 0x85d154e, 0xaf2f38e, 0xe8aceef,
 8717          0x83d9459, 0x5e04293, 0x431afd1, 0x65e5e32, 0xa900a65, 0x9e5f050,
 8718          0x8a26671, 0xcbaa171, 0x9c93de7, 0x33d0b24 },
 8719        { 0xd5b6680, 0x3dcbf92, 0x20006f9, 0xc47e5ec, 0x9a51924, 0xc971129,
 8720          0xcd0ed46, 0x665d9b8, 0xa5fcab6, 0xed2d63f, 0xcfbfc5a, 0xa817eb6,
 8721          0xb76eb76, 0xb38169f, 0xf11160b, 0x8b93544 }
 8722    },
 8723},
 8724{
 8725    {
 8726        { 0x693bdcd, 0x02eca52, 0x2ae01d6, 0xbbf0923, 0x8b44b3e, 0x0b0a2de,
 8727          0xb250dff, 0xdb82449, 0x6e1c530, 0x0c42b86, 0xa64c2c4, 0xcd226dc,
 8728          0xf046b5f, 0xcfb2bb1, 0x3fccb0d, 0x97e2fae },
 8729        { 0x45ed156, 0xdf92907, 0xf641229, 0x224dcb9, 0x5f1f67e, 0x2126abc,
 8730          0xe9c8a6b, 0xa7eed5a, 0x9857d9b, 0x40abedc, 0xde941c6, 0x3f9c7f6,
 8731          0xd725ddf, 0x2158d42, 0x8c69543, 0xbdd1015 }
 8732    },
 8733    {
 8734        { 0x8df2fbc, 0xa7dd24e, 0x13d1aee, 0x3adbcfd, 0x13b2177, 0xf6a32d1,
 8735          0x7a9a14c, 0x89a7232, 0xdc65df9, 0xe3aef43, 0xa64d74c, 0xeaec3e3,
 8736          0x4fec33b, 0x4d387d8, 0x21a2128, 0xaba2a05 },
 8737        { 0x6b85e30, 0x2382c22, 0xcd2aad3, 0x4352d85, 0xd9772c4, 0xb0c6001,
 8738          0x5f3653f, 0x7ed8263, 0x0300f47, 0x3626a6f, 0x6ca7e4e, 0x23909de,
 8739          0xc154141, 0xb43dd81, 0x7e4bc68, 0x9a49fad }
 8740    },
 8741    {
 8742        { 0x2428f88, 0xa3661df, 0x56e0db2, 0xbe48b02, 0xce79aa9, 0x3cd1871,
 8743          0x23dddac, 0x90ab871, 0x71871a6, 0x9c58fb9, 0xa34910e, 0xf031f7f,
 8744          0x81060e4, 0xb501eea, 0x791224e, 0xdb668ba },
 8745        { 0x6a705bc, 0x240bbcb, 0x2d1865e, 0x7e76fbd, 0x2513641, 0x6e2cd02,
 8746          0x46365c9, 0xe6c5225, 0xa5a01fb, 0xe46a8b8, 0xb67618b, 0x696fa7b,
 8747          0x0db6792, 0x418b3b9, 0x7108b9c, 0x7204acd }
 8748    },
 8749    {
 8750        { 0x8456b45, 0xb5a143b, 0xf53b4d9, 0x8a3ab25, 0xe13a570, 0xb112a58,
 8751          0x81487d2, 0x613ca32, 0x3b1e7c9, 0x837d823, 0xd41e9d5, 0x592bade,
 8752          0x5cd02f2, 0xdc1893a, 0x8972e23, 0x0879502 },
 8753        { 0xcb76261, 0x7003c08, 0x332a5e0, 0x14bde9e, 0xcbbd78e, 0x14b2872,
 8754          0xde238e8, 0x5594061, 0x067466c, 0xad12645, 0xf5e4952, 0xa8d0e64,
 8755          0xc7f8d06, 0x5b44b82, 0xfb1b828, 0xb51bea8 }
 8756    },
 8757    {
 8758        { 0x3f0dacc, 0xebad685, 0x1cbebbc, 0x5c31b8b, 0xfa5a2dc, 0x6746975,
 8759          0x31d9faa, 0x2d95965, 0x00fc0e4, 0x343797d, 0x55fe01b, 0x38d821c,
 8760          0x7323aa0, 0x0bfdb24, 0xf962a8e, 0x42613c4 },
 8761        { 0xe134bc0, 0x599a211, 0x47a7084, 0x75fa4a1, 0x7f734b5, 0x6e71948,
 8762          0x6dfca2b, 0xd5ced2d, 0x8aeabd2, 0x9fa0fdc, 0x12361da, 0x5e6b03f,
 8763          0x5859fcf, 0xad23d31, 0x25a5fc8, 0x3120ef1 }
 8764    },
 8765    {
 8766        { 0x8e9f638, 0x990ef62, 0x626a60c, 0xfdaa240, 0x2abddab, 0x4a3de20,
 8767          0xd8872b2, 0xd5d10b7, 0x1ea5880, 0xa01b730, 0xa81b9d8, 0x481697f,
 8768          0x3471ed8, 0x2984153, 0x292d37c, 0xefd73f8 },
 8769        { 0x9994beb, 0xdda7626, 0x6a4f865, 0xa037703, 0xe5b47d5, 0xda992ec,
 8770          0xe53edba, 0x912a427, 0x9264e45, 0x6467598, 0xaf71222, 0xd3b68c3,
 8771          0x6dedc5f, 0x9d3436c, 0x076b2ad, 0x1e027af }
 8772    },
 8773    {
 8774        { 0x4382f4a, 0xd56fca1, 0x8966b7b, 0x83712a4, 0xa4c9ddb, 0xd6b2cf5,
 8775          0xf602875, 0xa66be29, 0x894f3d0, 0x70e4266, 0xb3195ca, 0x007d220,
 8776          0x82c74d4, 0xba38d8f, 0xd975cbd, 0xdccc5fc },
 8777        { 0xc88b38b, 0x03e1610, 0x52e0d8d, 0xeb9f9a1, 0xb646eb7, 0x6a57eca,
 8778          0xc76b6c1, 0x161641f, 0xbd2e12b, 0xf9025ad, 0x5c0e26d, 0x87c74db,
 8779          0xbfeca74, 0xed5cb51, 0xe34a08c, 0x603dfb6 }
 8780    },
 8781    {
 8782        { 0xcb03307, 0xc4be728, 0xc2741cc, 0xde34c0e, 0xa74eb17, 0xe01db05,
 8783          0x8905e4b, 0x1bfce0c, 0xd1b1826, 0xb18830a, 0xe87bbfb, 0xcacbb41,
 8784          0xd2f1a79, 0x8696842, 0x08c83ea, 0xa80e5fb },
 8785        { 0x3f1439c, 0xe48f163, 0xcd6987b, 0xc1d4108, 0xb751814, 0x05705c4,
 8786          0xc1c622d, 0xa9bffd0, 0x46cd053, 0x23de4af, 0x39457c3, 0xf782f5e,
 8787          0x5e5d243, 0x815276b, 0x6161ae3, 0x3132041 }
 8788    },
 8789},
 8790{
 8791    {
 8792        { 0x77f2542, 0x2459661, 0x8372b25, 0x203be7e, 0xee2007b, 0xc7c9426,
 8793          0x0621799, 0xc564138, 0xc28c3ce, 0xda56589, 0x7afc1e3, 0x13e8a7c,
 8794          0xe352082, 0xdba81e9, 0x04435c7, 0xf430549 },
 8795        { 0x691de4a, 0x4d26533, 0xfb777ab, 0x364408c, 0xeae7f88, 0xccdfb43,
 8796          0xa525b11, 0xbc40f44, 0x3c60627, 0x8e112a5, 0xe17e696, 0x7f7c581,
 8797          0x1ea774a, 0x0fd7878, 0x0b1f582, 0xd09e632 }
 8798    },
 8799    {
 8800        { 0x70aab15, 0x44390bd, 0x889c3f2, 0x41112bc, 0xd685349, 0x6b02894,
 8801          0x5584dfe, 0x7103001, 0x1ba7887, 0x373cb1b, 0x2a017c7, 0x53d286c,
 8802          0x3c81fdc, 0x2ed0388, 0xfbcc6fc, 0x3bfc5e3 },
 8803        { 0xfd6418d, 0xd38ac6f, 0xbfad89e, 0xc667e96, 0xeab4d66, 0x46f4f77,
 8804          0x0911293, 0x194c04f, 0x68c48d5, 0x0fd09cf, 0x63cf7f4, 0x6f5b055,
 8805          0xacd562f, 0x0c0a8c4, 0x36d965d, 0x94c1d83 }
 8806    },
 8807    {
 8808        { 0xcaa127a, 0x94fc8f0, 0xd803690, 0xc762d5d, 0x1ebf0d3, 0x8bfdfd1,
 8809          0x48eac50, 0xa98cdf2, 0x8b5ff10, 0x3d7365d, 0xc65b4de, 0x20dc29b,
 8810          0x8ec7c68, 0x62ac28e, 0x90372d2, 0x7f5a132 },
 8811        { 0x3246658, 0xf3d8a25, 0x9ac202a, 0xa4bebd3, 0x5cc1697, 0x078ede7,
 8812          0xc8fc022, 0x5525800, 0x5fae77b, 0x302a802, 0x57917b6, 0x0180139,
 8813          0x864bf55, 0x7c8806d, 0x12f06f1, 0x4e2d878 }
 8814    },
 8815    {
 8816        { 0x3d66e88, 0x8d35118, 0xa91d02a, 0xfb861a1, 0x7850e5f, 0x8c27c2a,
 8817          0xa5496f6, 0x9fd6399, 0x8080049, 0x52152ae, 0xfd1c2dc, 0x600e2ff,
 8818          0xffe8b2e, 0xc75902a, 0xe03b175, 0x5c4d2cc },
 8819        { 0x4f57e78, 0x8ad7c42, 0x1736f87, 0x77cf606, 0xf85038a, 0x2876012,
 8820          0x1b97b95, 0xff32845, 0x392dfc8, 0x3cc6dd5, 0xa6f5075, 0x72f1363,
 8821          0x71de894, 0x028ec44, 0x6f45a86, 0x7030f2f }
 8822    },
 8823    {
 8824        { 0x9695817, 0x66400f5, 0xf20ea36, 0xeda0a7d, 0xd394992, 0x855be51,
 8825          0x8336f62, 0x2d082c1, 0xf28c868, 0x30944dd, 0x0dc86d0, 0xfb5f853,
 8826          0x564a0bd, 0x9562ae5, 0xb6b9b51, 0x1f7ea12 },
 8827        { 0xd0a7148, 0x5bd74e0, 0xb91e572, 0x6c8247f, 0x47da498, 0x699aba5,
 8828          0x1f7c814, 0xed82581, 0x62057b9, 0x434674b, 0x15c15b4, 0x8b4df5e,
 8829          0xb110081, 0x2a97da1, 0x4c417fe, 0x2a96b0c }
 8830    },
 8831    {
 8832        { 0x237639d, 0x4f75dfc, 0x1db7029, 0xe5ad6bc, 0xb3d28f7, 0xd43e06e,
 8833          0xe447989, 0x89f3bb5, 0x01a1a6e, 0xc426a2c, 0x315878f, 0x33ea71c,
 8834          0xb1b5705, 0x8a7784a, 0x77ca811, 0xa59e86e },
 8835        { 0x36ae155, 0xddb133c, 0x0d51b42, 0x49f1d4c, 0x9d05519, 0x5508082,
 8836          0x5291816, 0x20e23be, 0x67181ec, 0x35047ec, 0x7aad091, 0x6237dc4,
 8837          0xe2e25a2, 0xa1d3ce1, 0x0d3db4c, 0x1de0522 }
 8838    },
 8839    {
 8840        { 0xd9fd423, 0xe9a5e19, 0x9801e43, 0x0c2c3d0, 0x28df2da, 0x043c2dd,
 8841          0xe1ad12a, 0x4eecab4, 0x9615aa5, 0x97e1797, 0xca7bb5e, 0xe57b879,
 8842          0xcc92619, 0xa2a903c, 0xaa56e93, 0x5cef370 },
 8843        { 0x7f3232c, 0xbef29fa, 0x2b7ad5c, 0x1cf35ed, 0x3b6077a, 0x35c4893,
 8844          0x7a1d47d, 0xe065148, 0xce14572, 0xedb4673, 0x0b17629, 0xdc9e98c,
 8845          0x9a02a5c, 0xef98ebe, 0x11d03c0, 0x1f772e3 }
 8846    },
 8847    {
 8848        { 0x4608f72, 0xcbdbdcd, 0x5a13c6f, 0xb435223, 0x4bb3c21, 0xa6497f6,
 8849          0x12c15c9, 0x3af2383, 0x6322d11, 0xfbbf4b3, 0xc641775, 0x520a5c6,
 8850          0xe81e0e1, 0x18cd967, 0x3de3871, 0x980b2c6 },
 8851        { 0x9ae44a2, 0xfa9db61, 0x176bc56, 0x0281dd2, 0x8a7f817, 0xfd03711,
 8852          0x4129b30, 0x9c48545, 0x039626d, 0xb439648, 0xe4ada6b, 0x355050e,
 8853          0x7f5d98c, 0xc9c16d6, 0x18c4d5e, 0xf53ccc3 }
 8854    },
 8855},
 8856{
 8857    {
 8858        { 0x3ffb20b, 0x50ae942, 0x6865eb4, 0xa6c0b42, 0x09930f1, 0x4677f7d,
 8859          0x4a16427, 0x742e0b6, 0xf976f9a, 0x521d18e, 0xa454749, 0x43ac9cf,
 8860          0xc51f50d, 0xda3a91d, 0xad6f954, 0xf657029 },
 8861        { 0x6b4f99a, 0xfe5f064, 0x63ad4ce, 0xd92a5d9, 0x2e0e081, 0xfcb5509,
 8862          0x8d8a858, 0xadc85ab, 0x0632f0f, 0x8e9b966, 0x8d7216d, 0xe7a4f16,
 8863          0x59c3b99, 0x00a4cc5, 0xba09dc1, 0xed6d0bd }
 8864    },
 8865    {
 8866        { 0x1621beb, 0x7236d14, 0xbc7ca95, 0x1751fd4, 0x2f5319c, 0xaa619d1,
 8867          0x4e9316f, 0xfc2b15b, 0x9fd4d33, 0x2d1a906, 0x8ced829, 0x28c3bac,
 8868          0x1dd998f, 0xf2efab5, 0x3b149ed, 0x2c13330 },
 8869        { 0xf601ac6, 0x65237c9, 0x07d6a45, 0xb54dd65, 0xfb1a4cf, 0xa1ce391,
 8870          0x115f67e, 0x2957533, 0x465279b, 0x6456da8, 0xa993e02, 0x02890aa,
 8871          0xb7175e4, 0x6891853, 0x0f3e59b, 0x3fda203 }
 8872    },
 8873    {
 8874        { 0xd8c6e0b, 0xe99fe12, 0x5341c56, 0x7cb07ff, 0xdf77b24, 0xc292c7b,
 8875          0xca29906, 0xf52dfd0, 0x772f02c, 0x4a6aa26, 0xe1bbd09, 0x26f7684,
 8876          0xee7c2a8, 0xec56b2b, 0xad4a312, 0x67709e6 },
 8877        { 0xc570263, 0x99c57b2, 0x2faafae, 0xeb0100b, 0xff25eca, 0x980d5d1,
 8878          0x82cf936, 0xace35e6, 0x44679ed, 0x5a82ce5, 0x074b81e, 0x5c76a41,
 8879          0xa00abb1, 0xf36fa43, 0x04ffb2d, 0x0642819 }
 8880    },
 8881    {
 8882        { 0x04bdd28, 0x68f6bc8, 0xb5dc7ad, 0xc311d96, 0xed32e45, 0xff0d646,
 8883          0xe0f712d, 0xaf3cdc6, 0xd483861, 0xd4508e9, 0x0e1c277, 0xb624be5,
 8884          0xc5dd841, 0xc510275, 0x298dc02, 0x451c5c3 },
 8885        { 0xdd34d6b, 0xf87d479, 0xdd06a38, 0xda7f293, 0xb699e9f, 0x575e129,
 8886          0x215b2cc, 0x79e5fb2, 0x657e690, 0xd280028, 0xe702a71, 0x7fecd09,
 8887          0xfa13677, 0x85160ab, 0xce65f64, 0x5de3427 }
 8888    },
 8889    {
 8890        { 0xe8fff38, 0x84e4bf6, 0xb358b1c, 0x16f3725, 0x3b472a5, 0x360371c,
 8891          0x52f217a, 0xe64c061, 0x0501241, 0x8e67379, 0xab2dd96, 0x88e81d6,
 8892          0x1385604, 0xf3e218a, 0xe84184d, 0x9736caf },
 8893        { 0xdbb93a3, 0xb55a043, 0x9301088, 0x335088f, 0xb2a4959, 0xcea7a2d,
 8894          0xb882c33, 0x48e5d4a, 0xad46179, 0x114f09b, 0xb446576, 0x4416467,
 8895          0x34c6c2f, 0x01cb23e, 0xa02db8a, 0xddebf04 }
 8896    },
 8897    {
 8898        { 0x9bde8a1, 0x36d60cc, 0x676e4ad, 0x20fd2f2, 0x8936581, 0xebdcfb7,
 8899          0xdbfc2c3, 0x245d0d5, 0xa9f82e5, 0x104c62c, 0xd654d9b, 0x7387457,
 8900          0xae7f10e, 0xe966777, 0x1d8e582, 0xefeb16f },
 8901        { 0x70364b5, 0x4faf4f1, 0xd612472, 0x0e1ab58, 0xfed6085, 0x11bbfe7,
 8902          0xa59a09a, 0xb360a14, 0x722fdb6, 0x61d96e9, 0x94068bd, 0x16a12f1,
 8903          0xf73c2be, 0x225bf07, 0xc8bd24e, 0x1e64665 }
 8904    },
 8905    {
 8906        { 0x3698c75, 0x27a478a, 0x6202aa2, 0x778ccd3, 0x8d87f1f, 0x0149c63,
 8907          0x784edae, 0xa660e5f, 0x82adfa8, 0xe0d4d2f, 0x1ba1f9d, 0xf512dd6,
 8908          0x6245c58, 0x90cfed9, 0x18b53dd, 0x6c3a548 },
 8909        { 0xbdc094f, 0x833f70c, 0xb1514e7, 0xa5f26f5, 0x1c8cf13, 0x93e7cf5,
 8910          0x186ec43, 0x1436601, 0xe78170a, 0x81924ac, 0x8694368, 0xcc880a0,
 8911          0x0b62cbb, 0x2dfa955, 0x96b4a2c, 0x0bc6aa4 }
 8912    },
 8913    {
 8914        { 0x3561aa2, 0x5157a7e, 0x8645c1e, 0x525c500, 0xce7cbb3, 0x22feb4e,
 8915          0xc89a58b, 0x36d0d25, 0xc9bde9c, 0x43131f7, 0x881f731, 0x74afdda,
 8916          0x7c8e36a, 0x99ab87c, 0xc1d4fb2, 0xf07a476 },
 8917        { 0xbebc606, 0x1b82056, 0xfcf089f, 0x95a1e5a, 0x2b55d5c, 0xc5bccfa,
 8918          0x00eb0b1, 0x8fbc18e, 0x9efb483, 0x93a06fe, 0x2d74c57, 0xcafd725,
 8919          0x3de4350, 0xc7518f0, 0xc6fd762, 0x9a719bf }
 8920    },
 8921},
 8922{
 8923    {
 8924        { 0x2362087, 0x5ee0d83, 0x0b167e8, 0x7f2c0d7, 0x5e0e865, 0xb732789,
 8925          0x98c4e65, 0xef5b2e8, 0x8fe9cc1, 0x222797d, 0x82d1e15, 0xfe6d73e,
 8926          0xf62dc4b, 0xc7c0e9c, 0x937ceda, 0x962acfe },
 8927        { 0xc1e85c7, 0xd763711, 0x2836978, 0x8f2dbbc, 0x8c44e98, 0xbadc055,
 8928          0xa3e93f8, 0xed63eab, 0x41b55c7, 0x807e857, 0x6d1207b, 0xd51ae5e,
 8929          0x39d541b, 0xa0ef9a6, 0xa0c56a5, 0x58855f9 }
 8930    },
 8931    {
 8932        { 0x213091d, 0x7d88eaa, 0x45b6a0d, 0xcbdfee7, 0x4f5e077, 0x826a012,
 8933          0x90f1e4c, 0xb04fc13, 0xaea69aa, 0x1961ac3, 0xd5bb63e, 0x3afb719,
 8934          0x4ac7e5c, 0x2a37837, 0xc50ca45, 0x78efcc1 },
 8935        { 0xb8abdef, 0x346e8f0, 0x88095d0, 0x27e3dbd, 0xffc6c22, 0x56d3379,
 8936          0xfa4b291, 0x67d416c, 0x3b1b373, 0xc3baaf6, 0xdf73bae, 0x0184e1f,
 8937          0x9167528, 0x38ae8f7, 0x35d6297, 0x7329d4c }
 8938    },
 8939    {
 8940        { 0xf568c52, 0x45d2ac9, 0x9808593, 0x5134814, 0x31b7ed8, 0x0c92d83,
 8941          0x0876ecd, 0x921327a, 0x052736a, 0xf752d75, 0xbc6b837, 0x7b56487,
 8942          0xa23b4cc, 0x6b1a320, 0xec0d665, 0x1983937 },
 8943        { 0x08554ab, 0x2c3017c, 0x366e87f, 0x40ad955, 0x8ed7f02, 0x88c4edf,
 8944          0x3cc5e6d, 0x64a7db1, 0x2dc978b, 0x5ac91fa, 0x925d2a2, 0x016a20d,
 8945          0xabb57b4, 0x3604dfe, 0xd7e2e85, 0xc3683ec }
 8946    },
 8947    {
 8948        { 0x4c0c6d0, 0xc47150a, 0xe22adcf, 0x30af45e, 0x022ea4b, 0x39b5acb,
 8949          0x77203b5, 0xfbe3185, 0x6fd9b59, 0xe5aaa34, 0xdd1c8dc, 0x0062c90,
 8950          0x54049ac, 0xcf113f3, 0x63a31b5, 0xd8fba4d },
 8951        { 0x1056a69, 0x73b5488, 0xd780bda, 0x3be6cbc, 0x30ba2b9, 0x5776ec2,
 8952          0x8e8d6f7, 0xbe883cf, 0x5c2be6f, 0x64efe94, 0xf1ade8d, 0x064f704,
 8953          0x743110e, 0x41cfd17, 0x4c20abe, 0xaac9411 }
 8954    },
 8955    {
 8956        { 0xf1c1468, 0x91f9192, 0x4563e13, 0x8176e74, 0x0bda15d, 0xa48b5f9,
 8957          0xda42af6, 0x2a085ae, 0x425c018, 0xfd38ab2, 0x08abafb, 0x2884ba4,
 8958          0xcbd091d, 0x356f318, 0x817871b, 0x454e450 },
 8959        { 0x8ada531, 0xe080e81, 0x3152ba8, 0xa40f1eb, 0x0c38eb1, 0x051049f,
 8960          0xbd45003, 0x37e4bb3, 0x54a01e5, 0x6d09804, 0xeeb824a, 0x6de932f,
 8961          0xdc93481, 0xccdef37, 0x93a05e8, 0x8633e07 }
 8962    },
 8963    {
 8964        { 0x034675c, 0xbe94256, 0x08db789, 0x376c01d, 0x9af1b6b, 0x8707ee7,
 8965          0x11bfbac, 0x633b3ef, 0xd06db60, 0x694f33f, 0xbb13407, 0x2a68bfc,
 8966          0xda27c3a, 0x1c860c9, 0xd701ac3, 0xbca16de },
 8967        { 0xc59ffd0, 0x2b76cfa, 0x54d718d, 0xf9a1165, 0x67f0878, 0xf86a1db,
 8968          0xaf34e85, 0xe313e05, 0x3343159, 0xa188811, 0x0bb7ed1, 0xdbe4c3f,
 8969          0x0c732bc, 0x73b67e8, 0xe74110e, 0xa4e1c87 }
 8970    },
 8971    {
 8972        { 0x5c6770c, 0xce1106b, 0x5c0bcb7, 0x422c70b, 0x8195e7f, 0x32a3990,
 8973          0x1ccd4aa, 0xa24968d, 0x720e557, 0x8f08ecf, 0x54bcc81, 0x5da10a4,
 8974          0x6cd846e, 0x9d3c73b, 0x368d065, 0xaeb12c7 },
 8975        { 0xcf9fd1b, 0x2110859, 0xee2bd6d, 0xd2a4801, 0xe9466ac, 0x376e556,
 8976          0x3b5aa35, 0x767803b, 0xb8a89ba, 0x343f842, 0x6726bbf, 0x3263cc1,
 8977          0x25871b0, 0x26caf17, 0x41b8578, 0xef66ad6 }
 8978    },
 8979    {
 8980        { 0x638068c, 0xc9f2249, 0x1ccf9af, 0x96d282c, 0x69b435a, 0x71df30c,
 8981          0xcb9d5c9, 0x88c943a, 0x2a8f378, 0xbf98ef1, 0x114c6ff, 0xffc1824,
 8982          0xd52e8c7, 0xda3ad2c, 0x1afcb59, 0xf1222bc },
 8983        { 0x0ee334a, 0x459e94b, 0x421933a, 0xd4477b8, 0xa1e401e, 0x60fb7b0,
 8984          0x0d1e330, 0xfde6e82, 0x3233fde, 0xcecfe9b, 0x2e93523, 0x09ec466,
 8985          0x30775b9, 0xa5ba649, 0xadf80f2, 0xcc397e5 }
 8986    },
 8987},
 8988{
 8989    {
 8990        { 0x4ddc8a8, 0x2fe182d, 0xac056bf, 0x88d6e79, 0x0e41e4e, 0xc3ff2d1,
 8991          0x2c3679f, 0x32ec7f9, 0x4e61051, 0x3561f09, 0x6c6250a, 0x4553f5a,
 8992          0xdd25c5b, 0x2b765ef, 0x6a1cd7f, 0xe3a40a2 },
 8993        { 0x5d821dd, 0xb27309b, 0xc2c17ca, 0x950fb8d, 0x8fb0d4c, 0xfeed015,
 8994          0xf550179, 0x762c479, 0xe095840, 0x306cf44, 0xd379e66, 0x84b413a,
 8995          0xbb2e4f1, 0xd6e5d5a, 0x94b085d, 0x8bc12b7 }
 8996    },
 8997    {
 8998        { 0x04b5532, 0xc0d4cb8, 0xb9940a6, 0x7a31525, 0x68c69d1, 0x010e7dd,
 8999          0x2a18c35, 0xd81f29d, 0x3f11e73, 0x08ae770, 0x6e55106, 0x5358f87,
 9000          0xc960ef5, 0x299e8ca, 0xacfc8dc, 0x89a6fb4 },
 9001        { 0x6dc7d4a, 0x5996a40, 0xe51b96e, 0x21e5112, 0x09a202b, 0x95b8c3d,
 9002          0xd441f1f, 0x306ab0f, 0x98d4245, 0x2834fed, 0xd0abbde, 0xc29c387,
 9003          0xb805c15, 0xf6a9bf1, 0xc4e458d, 0x602f4f8 }
 9004    },
 9005    {
 9006        { 0xe5a893a, 0xf041486, 0x8934327, 0x53b891d, 0x4000758, 0x11e000d,
 9007          0x662bad9, 0xa4ccde8, 0xb9a1b64, 0xe34d3ed, 0x84e7a6d, 0x72d9675,
 9008          0x6627be4, 0x773da2f, 0xe835ae3, 0xa11c946 },
 9009        { 0x650bc15, 0x02e8203, 0xe58b78d, 0x2d35936, 0xf21a3cc, 0xe9cfbe8,
 9010          0x1049222, 0x55ad831, 0x38fff47, 0xbf99de4, 0x3831db5, 0xebbfd80,
 9011          0xaf2af42, 0xe990636, 0xb7f5a0e, 0xc26ae52 }
 9012    },
 9013    {
 9014        { 0xfa8f846, 0xb5d85b1, 0xb3b1455, 0x4166489, 0xd36a305, 0x768260d,
 9015          0x4ff5645, 0xc6a8235, 0xd6e93e5, 0xd241cd8, 0xa406e74, 0xeed9aa1,
 9016          0x5f600d9, 0x9e96ab0, 0x6eca2a1, 0xa26b8b5 },
 9017        { 0xd705aef, 0x78321cf, 0xc0161ec, 0xc4fb6b3, 0x5199cf1, 0xdc32441,
 9018          0xd0a5067, 0x33627d0, 0x15143ee, 0x13490cb, 0x85b4f44, 0x77e0ede,
 9019          0x394b165, 0x904f12e, 0xefab32d, 0x90f50f5 }
 9020    },
 9021    {
 9022        { 0xbc2de96, 0x4aa0a16, 0xaa9c12b, 0x172596a, 0x60e8a29, 0xd512e1e,
 9023          0xf637e83, 0x77d35c1, 0xd2aae0b, 0xbb0d141, 0x8c03738, 0x8a878a5,
 9024          0xab0e525, 0x6d24c01, 0xf760887, 0xb7d3136 },
 9025        { 0x3f91b7c, 0xdbc3f8f, 0xa8722c0, 0xe7b4bca, 0xda0ae65, 0x3286a91,
 9026          0x225b084, 0x8372274, 0xae1886c, 0x5884cd5, 0x3a23cf7, 0xb4e63ef,
 9027          0xf2dd0da, 0xfe5f202, 0x653916c, 0x951fac9 }
 9028    },
 9029    {
 9030        { 0x854fa4e, 0x05e2e8f, 0x1edaf10, 0xf411f94, 0xa0a928d, 0x26cc562,
 9031          0x4abce65, 0x78fd34e, 0x98a32e2, 0x1d87609, 0x4c37518, 0x85dc76f,
 9032          0x00e8021, 0xdcaeef5, 0x4e9b2a5, 0x7fcb2f8 },
 9033        { 0xf382c06, 0x9eba91e, 0x24cae53, 0x2052e85, 0xf5c1519, 0x617336e,
 9034          0xb4e632b, 0xf1546d5, 0xd7b8ffd, 0xa9edc81, 0x29ab68c, 0xdb2914f,
 9035          0xdebbaba, 0xe805070, 0xc3b719e, 0x775e53b }
 9036    },
 9037    {
 9038        { 0x065256a, 0xa40e294, 0x8fb031a, 0x9f11386, 0x059667c, 0xac03af8,
 9039          0x0475f58, 0x432eb3a, 0x01faad0, 0x22332bf, 0xbc57a11, 0xc8132e9,
 9040          0x3bc3f8b, 0x27d5a17, 0x930bf3e, 0x5471fc6 },
 9041        { 0xe6bff40, 0xba28bc0, 0x555e564, 0x198d57e, 0x9c65b8f, 0x13ce831,
 9042          0x5681b51, 0xb0a5c9d, 0xdeb9e11, 0x467588b, 0xbb4250b, 0xf1891a7,
 9043          0xd12b433, 0x10b938b, 0x24dcda4, 0x0b8c802 }
 9044    },
 9045    {
 9046        { 0xcf332d3, 0xc428703, 0xf2a5b98, 0x9d0053c, 0x7838a15, 0x4e4c620,
 9047          0xfbf8a43, 0x2e92919, 0x21cd9a5, 0x39ad524, 0x1561588, 0x584ed6c,
 9048          0x17a95c8, 0x20af305, 0xb70e1c8, 0xa223077 },
 9049        { 0x2fa4871, 0x679cfea, 0xac633c7, 0x54f2a46, 0x4cdc5f1, 0x6030651,
 9050          0x75a1dc7, 0xc4facda, 0x2d07d19, 0x710a288, 0x6b44992, 0xd55864e,
 9051          0x454c5b2, 0x44d4b6c, 0x72f9981, 0x2855d28 }
 9052    },
 9053},
 9054{
 9055    {
 9056        { 0xc7b0674, 0x4071b3e, 0xf8794d5, 0x800eb14, 0xbe6783e, 0x70573af,
 9057          0x7785901, 0xafaa440, 0x405f32c, 0x112d2a1, 0x169b3e2, 0x3761a52,
 9058          0x842a366, 0xe168b31, 0x9bf4734, 0x5bc322f },
 9059        { 0x976c4a0, 0x36ef240, 0xfea4e64, 0x066f3d6, 0xa989e57, 0x0e954bd,
 9060          0xf9466e4, 0xe36ef5e, 0xbeb9226, 0x6bb615a, 0x3d5a2ca, 0x5571e5f,
 9061          0x4897a86, 0xa86efe2, 0x28a9f77, 0xed7e9cf }
 9062    },
 9063    {
 9064        { 0x1f82c68, 0xdf10c97, 0x3b597e6, 0x796ba1e, 0xe718cbf, 0x1ac77ec,
 9065          0x410eac8, 0xc8175bb, 0xbc555ef, 0x0cdf9a1, 0x7524e05, 0x6b889f1,
 9066          0xae26d82, 0x6bf1e61, 0xd2e97d9, 0xb3f6ad5 },
 9067        { 0xf226487, 0x94dcff9, 0xbe03dde, 0x60e6356, 0x6a3dd7d, 0xda1f93b,
 9068          0x79ca90c, 0xf1be721, 0x1e6bce5, 0x05ed313, 0xd48af3e, 0xcf50908,
 9069          0x61e554f, 0x3b0e85c, 0xa2778d3, 0xfe7e35b }
 9070    },
 9071    {
 9072        { 0x75ac5a9, 0x42c5032, 0xda062c2, 0xa66a66d, 0xcaa7023, 0xa4f4f82,
 9073          0x64b4f86, 0x489d476, 0x97311ad, 0x10b1088, 0x177b2ec, 0x55dd637,
 9074          0x9a267b1, 0xa5ccff0, 0xff327b0, 0xf07690b },
 9075        { 0x2250cd2, 0x39162ed, 0x8b255f1, 0x1426de0, 0x1bdd731, 0xf227afd,
 9076          0xfa4c844, 0x78f8a36, 0x157379c, 0x267a211, 0xcc04acb, 0x3f05f92,
 9077          0xfc69cae, 0x374496c, 0x16ebfec, 0xbf2c5d0 }
 9078    },
 9079    {
 9080        { 0xd0518d1, 0x605418b, 0x9e1cbc6, 0x3237f80, 0x286c019, 0x37a7005,
 9081          0xb15af0b, 0xf1fb0e0, 0xaa853c0, 0xfc3b97c, 0xe6beba2, 0x1f48bd0,
 9082          0xe6a72f1, 0x8e5d7c5, 0x26ebf0c, 0x575e66d },
 9083        { 0x62eae3d, 0x0994776, 0x96c9c65, 0x53f074f, 0xb81bade, 0x6cfbfdb,
 9084          0x3fed7d1, 0x98b4efe, 0x38c3382, 0xdaa1123, 0x47b8ec6, 0xdf88b73,
 9085          0x9504a4f, 0x9b0fe4b, 0xf30c1c3, 0x2e7df4c }
 9086    },
 9087    {
 9088        { 0x2fc1833, 0x25380cb, 0x18d62de, 0xb8e248c, 0xd82f9db, 0x91c8f59,
 9089          0x2444750, 0x5ec2b20, 0x66b6f74, 0x3f3a1f7, 0xdd7d14d, 0x0180aa9,
 9090          0x2956b9c, 0xd0a342d, 0x7139873, 0x26e910e },
 9091        { 0x139e23d, 0x2261dc4, 0xb8343dd, 0x7edb181, 0xb4038dd, 0xfcf1073,
 9092          0xa3bfea3, 0x88870ef, 0x64a263e, 0x4e98ba9, 0x70811f5, 0x3c6e5dc,
 9093          0xf86055d, 0x17d28f5, 0x66e4199, 0xca9c276 }
 9094    },
 9095    {
 9096        { 0x964ef8c, 0x0b2d8bd, 0x88e2ba6, 0x5a99b85, 0x04498ce, 0x9e927b2,
 9097          0x756eb25, 0x9ff20c5, 0x3f27736, 0x97cc27b, 0x4729583, 0xf32dd6d,
 9098          0x0381a94, 0xbdc2658, 0xef2c06f, 0x70fef15 },
 9099        { 0x49252cc, 0x50a6191, 0x236b4b9, 0x9eb4a14, 0x8e00f78, 0x9b1b215,
 9100          0x6ea9c23, 0x27add36, 0xc3a8e79, 0xef61763, 0xd82ce56, 0xed4542f,
 9101          0x0caed75, 0xa8737e7, 0xd452d76, 0xeca0ac2 }
 9102    },
 9103    {
 9104        { 0x3d082d0, 0x20c0779, 0xc9e9f3b, 0x6e3ce64, 0x75a195f, 0xb3a4dce,
 9105          0xbdd9f24, 0x3a3c305, 0x8688942, 0xe2545c8, 0x080f32b, 0xa463c82,
 9106          0x42686b8, 0x4429748, 0x7213866, 0xf50e20d },
 9107        { 0x3826e74, 0x265ac52, 0x228e8ec, 0x26fba57, 0xe6b3ed8, 0x8a1e1db,
 9108          0xf0fe65a, 0x7c7b278, 0xc395234, 0x9a6df23, 0x0b0f114, 0x9956206,
 9109          0xef90837, 0x440c8c4, 0x3645f65, 0x21ad22a }
 9110    },
 9111    {
 9112        { 0xedd31b2, 0x1e023a6, 0x9ff8668, 0xf76d145, 0x17b45c8, 0x9707056,
 9113          0x1e88e37, 0x0612078, 0x922faac, 0x85c51c8, 0x22756d9, 0x4df392e,
 9114          0xa03c98e, 0x8907fd0, 0x52ea51c, 0x626f46a },
 9115        { 0x486c8a2, 0xf8f766a, 0x88ed18c, 0x8c499a2, 0x3c4f0de, 0x44d2dc6,
 9116          0x6f2a0b6, 0x47dde68, 0x4a973fd, 0x9a655f8, 0x786ac80, 0x3e7124e,
 9117          0xe8a0574, 0x699e61c, 0x31cdd0d, 0xdf0ba9a }
 9118    },
 9119},
 9120{
 9121    {
 9122        { 0xd73e69b, 0x76270ad, 0xc67d38a, 0x991120f, 0x9469f0c, 0x7be5830,
 9123          0x7db40ac, 0x93aba59, 0x822fc08, 0x2b707bc, 0x69551cd, 0x4199fc0,
 9124          0xf367324, 0x38deed4, 0x2228787, 0xca518e1 },
 9125        { 0xd9a9277, 0x72f1bef, 0xe49ae90, 0x57d4aab, 0xdb23478, 0x13810d5,
 9126          0x9b4b77f, 0x2a8b780, 0x1b4e004, 0xb542f4e, 0x3ec77f0, 0x4080fd0,
 9127          0xcec6596, 0xb49e9fe, 0x3f16037, 0x20338d3 }
 9128    },
 9129    {
 9130        { 0x53554b0, 0x4adcdae, 0xe04c4db, 0xfea4906, 0x7748233, 0x0808bec,
 9131          0x47148d7, 0xde7477c, 0x03da38c, 0xdd9124c, 0x25ee8e9, 0x6b25031,
 9132          0xb0d6161, 0xae67399, 0x82203b6, 0x70c4acd },
 9133        { 0xd31dae8, 0x9683916, 0x1ac7f69, 0x3477503, 0x988e4ad, 0x9553153,
 9134          0x53a15e1, 0xb58f411, 0x92ba2dd, 0xb65a2d4, 0xa90169c, 0x7c3efb1,
 9135          0x6b1747d, 0x210f45e, 0xcff488d, 0x16e8d1b }
 9136    },
 9137    {
 9138        { 0x9d703db, 0x252adf8, 0xfdfeb39, 0x259ac1d, 0x115e806, 0x7faf6af,
 9139          0xc1aff21, 0x7aaefd6, 0x7c0113d, 0x8054210, 0xe19b4b1, 0x481f1a5,
 9140          0xfcc8c61, 0x7c17d43, 0xbb0bbbe, 0x8b04452 },
 9141        { 0x4cebae1, 0xe51e5f5, 0x56a414c, 0x05341ba, 0x7fb8a30, 0x0083a2c,
 9142          0x77f4952, 0xb4663f2, 0x4bb0074, 0xce72eec, 0xa3584d1, 0x74fdd66,
 9143          0xb02e076, 0x6b9e58e, 0x3b961f4, 0x5be45d5 }
 9144    },
 9145    {
 9146        { 0x1ab2e0b, 0xc7474f3, 0xf4bf454, 0x2838ccb, 0xf3c3eac, 0x634392e,
 9147          0x137602b, 0x440e40a, 0xd1ae8e3, 0xeea67e9, 0x77e221e, 0xafdf93a,
 9148          0x2719a10, 0x3c9f3da, 0x32c8256, 0x466ecef },
 9149        { 0xf9c432f, 0x1061c19, 0xb1c7d98, 0xa1332d9, 0xa425c2c, 0xbc735f2,
 9150          0x4b1bccb, 0x1429cdf, 0x6bbb5f9, 0x77b42a1, 0x5955ae4, 0x30078e3,
 9151          0x21cc315, 0x8acd777, 0xe86fa99, 0xaa90d5f }
 9152    },
 9153    {
 9154        { 0x721115a, 0xfcfd460, 0x08269b8, 0x6a7de3e, 0x96dd47e, 0xe5964a6,
 9155          0x8dca975, 0x6717cd5, 0x98b149e, 0x7ea4ebe, 0xb7b8057, 0x6f894d5,
 9156          0x7f30e31, 0xbd6f960, 0x23df092, 0x61ca453 },
 9157        { 0x9d782f3, 0x32241f9, 0x2abfae2, 0x55173b0, 0xd15bbbd, 0x0abe0ed,
 9158          0xb438abb, 0xb6d3c0a, 0x9ffa20b, 0x62fb467, 0xd31560a, 0x30926b5,
 9159          0x2a0aa6d, 0x44bf27c, 0x1a4cb97, 0xf747313 }
 9160    },
 9161    {
 9162        { 0xb0535de, 0xa2f6c0d, 0xc855166, 0xcb02ae1, 0xb3422f0, 0xc699e6b,
 9163          0x281ba8a, 0x774febe, 0xffabcc7, 0x1d9d24f, 0xfe12ba5, 0x0b31ba1,
 9164          0x13d0af7, 0x4c86803, 0x2f47160, 0x90640d3 },
 9165        { 0x5876603, 0xa0c4bf4, 0x950ab08, 0x717f6fa, 0xa710de8, 0xf12bb53,
 9166          0x6a88f50, 0xc500c61, 0x2645351, 0x0070f99, 0x2446893, 0x57aab5d,
 9167          0xb68f657, 0xd553fa8, 0x693c55d, 0xe8537c1 }
 9168    },
 9169    {
 9170        { 0x7fc7684, 0x58e86eb, 0xbfc73a9, 0xdf330f7, 0xcc11936, 0x41e337d,
 9171          0x6e35759, 0x36d9200, 0x3500d8b, 0x0132703, 0x9483354, 0xfa68405,
 9172          0x667851b, 0xc8f2980, 0x18296b0, 0x538ec89 },
 9173        { 0xcff55f9, 0xa2a2c4f, 0x60d20bd, 0xb260d4d, 0xd9cc59f, 0x3ed576f,
 9174          0xd514fcc, 0x4ed8c64, 0xc22b315, 0x37ebfb2, 0x94c212c, 0xca67a36,
 9175          0x3a1795e, 0x4f8e08c, 0x4e7261f, 0x498f926 }
 9176    },
 9177    {
 9178        { 0xc59b3d4, 0xfea7382, 0x3f2925f, 0xb9942ed, 0x8ea77e8, 0xe4b00dc,
 9179          0x3cab02e, 0x74a18ec, 0xef16d0b, 0xbbbb752, 0xffab032, 0x639da4f,
 9180          0x3aa30f0, 0xc371a4a, 0xcaa175b, 0x8e26b22 },
 9181        { 0x7e2b62e, 0x94e4156, 0x25a794c, 0x7cceea6, 0x479f015, 0x931d2f4,
 9182          0x90b25b2, 0x946183d, 0x68a2807, 0x1504e97, 0xfa49ddd, 0xa7577d3,
 9183          0xdd48699, 0x24fc87e, 0x3d7d99c, 0x9edefd6 }
 9184    },
 9185},
 9186{
 9187    {
 9188        { 0x0f0b450, 0x0508b34, 0xc36f7f4, 0xe0069a5, 0x2a5a761, 0x2655664,
 9189          0x848e04d, 0x0193fd8, 0x73fe2e7, 0xc108cf5, 0xfd787d4, 0x05eb0ec,
 9190          0xff28985, 0x1555ccb, 0x651b995, 0xb5af09f },
 9191        { 0xe1134be, 0x167d72c, 0x57c669a, 0xd6d98bf, 0x6dd76fa, 0x40fb716,
 9192          0x2a41b31, 0xeabbf20, 0x09b75b0, 0x300ff0e, 0xd9a0c1e, 0x32b6fad,
 9193          0x65a80e0, 0x8051883, 0x32110fe, 0x8bef693 }
 9194    },
 9195    {
 9196        { 0xbef47d4, 0x637802f, 0x2d16eaa, 0xfac114b, 0x0415644, 0x7b3f3ab,
 9197          0x2dd895b, 0x17ab8d1, 0x87195f3, 0x271b7fe, 0xa71f65f, 0xa3f867e,
 9198          0xc80583a, 0x39ba40c, 0x56e1fcc, 0x6db0672 },
 9199        { 0x06662a8, 0x4feab4e, 0xc74bd46, 0xc857415, 0x732b126, 0x18032ed,
 9200          0x7a099ea, 0x87c8aea, 0x36fe0a8, 0xb4a7535, 0x27673f6, 0x33a98da,
 9201          0x2b8e549, 0x3e40c02, 0x9a4c587, 0x2def1af }
 9202    },
 9203    {
 9204        { 0xa8c9ad9, 0x9618b68, 0x49defda, 0xd70b4aa, 0x5f788ef, 0xae8b138,
 9205          0xdd523f4, 0x87c3542, 0x5c5b004, 0xe42c705, 0xfa7df57, 0x6303360,
 9206          0x5f6d068, 0x33e27a7, 0x8ff331a, 0x9b3268e },
 9207        { 0x23ee0c3, 0x845cc96, 0xac80084, 0x003af70, 0x530c41d, 0x6a9f931,
 9208          0xbb127f0, 0xa1d7051, 0xca36245, 0x642ce05, 0x0323ee9, 0xc34205b,
 9209          0xb7b3513, 0x7cc8912, 0x076cbdb, 0x6252cc8 }
 9210    },
 9211    {
 9212        { 0x7089522, 0x10e68a0, 0x58fc658, 0x36c1361, 0x74723a4, 0x490397d,
 9213          0x519d56c, 0x42692c0, 0xf1ff235, 0x69d251b, 0xc2cbf37, 0xe689d03,
 9214          0x825b7f4, 0xf04ceba, 0x2281c2e, 0xd6b9bee },
 9215        { 0xe0043ab, 0xc52ef3f, 0xd1d1be8, 0x351bf28, 0x0f18a5a, 0x277615f,
 9216          0x5d6800f, 0x31f717f, 0xab922e2, 0xf5fb82d, 0x2d6ae43, 0x99aee2f,
 9217          0xc63b982, 0x42477fe, 0xa594a01, 0x904aeb1 }
 9218    },
 9219    {
 9220        { 0xeb39974, 0xaa82174, 0x95e6aa0, 0xbc38e61, 0x25c0675, 0x6a3df8a,
 9221          0xffbe739, 0xf324203, 0xa3f0649, 0xfa5a0b4, 0x7a7a6b8, 0x79c8732,
 9222          0x40ad3f5, 0xeb65ecd, 0xe4e45c5, 0x718d416 },
 9223        { 0xe2326fd, 0x029dbf4, 0xe7942f0, 0x0c63416, 0x6f4e678, 0x6d0c728,
 9224          0xa138601, 0x59f0b10, 0x8d92ea9, 0x8a1d978, 0xc22eca5, 0x9f8d712,
 9225          0x7b6b96b, 0x7397044, 0xe6fb955, 0xa2d49ee }
 9226    },
 9227    {
 9228        { 0xbf14a19, 0x249f900, 0x63a8cd2, 0xd3522da, 0x86964d2, 0x28a32f3,
 9229          0xc1fa743, 0xacf712b, 0x0bb94d3, 0x98a9bfc, 0xbc06824, 0x318ece1,
 9230          0x4fce7f0, 0xfc47675, 0xe4135b7, 0x19caec9 },
 9231        { 0xc6817bb, 0x6de68a8, 0xf3b6d89, 0x7121960, 0xf5a818e, 0xa7d4261,
 9232          0x9157455, 0x0c0ba51, 0x450d5ff, 0x78b6acf, 0x4e8649a, 0x198b493,
 9233          0xfd05da3, 0x0941a3c, 0xdb55951, 0x264ea4a }
 9234    },
 9235    {
 9236        { 0x46e5a31, 0xcfee91c, 0xfff7366, 0x47b6806, 0x5df849d, 0xdb14be4,
 9237          0xac66cc7, 0x3c5e22b, 0xa5f4769, 0x7f3f284, 0x383be36, 0x4e00815,
 9238          0x8072b0b, 0x39a9f0b, 0xc7eadd6, 0x9887cd5 },
 9239        { 0xb659511, 0x7dd8f05, 0xd2e1cb9, 0x15c796d, 0x0d31345, 0xe5edb0c,
 9240          0x6939c60, 0x2025df0, 0xbf15de1, 0x6314c08, 0x04c7fb5, 0x03c1548,
 9241          0xbb5d3ed, 0x413337f, 0x477e983, 0xfc20b40 }
 9242    },
 9243    {
 9244        { 0x5db0ef9, 0x7f96880, 0xe9c2a70, 0x05562de, 0x7dae133, 0x071e5bc,
 9245          0x237fc4a, 0xa8cdd12, 0x4ea492b, 0x6d565e7, 0x381ee52, 0xa17cf94,
 9246          0x9f5c546, 0x6ab8a4e, 0x40288ef, 0xbb642f3 },
 9247        { 0x5df5c2d, 0x64e5921, 0xbb906f4, 0x43696e3, 0x74ae46c, 0x73a841a,
 9248          0xc506b8a, 0xe264883, 0xa1be548, 0x9542e1a, 0x5e81b4a, 0x8938539,
 9249          0xeaca6ce, 0x5642cfa, 0x806e0f9, 0xed8077b }
 9250    },
 9251},
 9252{
 9253    {
 9254        { 0x7e13597, 0x1c776c4, 0x9e584fd, 0x0ec8b28, 0xb8b61e8, 0x0bb6043,
 9255          0x9cd835b, 0xdcc1748, 0x39fef9a, 0x493e6ac, 0xd133e17, 0xb44eb34,
 9256          0x71cb6f9, 0xfebcd00, 0xd20eff2, 0xe6cf543 },
 9257        { 0x0a004c7, 0xf265cad, 0xd35cc12, 0x9b06c9d, 0xcb4ea53, 0x769f985,
 9258          0x0993434, 0x29160a2, 0x8d939c4, 0xdf8dd10, 0x6711e2f, 0xefa177c,
 9259          0xcd7a2cd, 0x1695790, 0x77f6642, 0x38da3d7 }
 9260    },
 9261    {
 9262        { 0x6307b74, 0x9bfcfd9, 0xbfdabc3, 0xc26a36d, 0x4abe28e, 0x9341be0,
 9263          0x73d1387, 0xdb20b52, 0x3d1949c, 0xf8d229c, 0xb8b3a41, 0xf1e0afe,
 9264          0xed565d0, 0x29c60df, 0x8b43b2c, 0x6930bb5 },
 9265        { 0xfc0718f, 0x1d76527, 0x1f67189, 0xdb98143, 0x51f32cc, 0x0c62f64,
 9266          0x8bd35e5, 0x70a6626, 0xc1cece7, 0x1725641, 0xf96f4a4, 0x7f130a8,
 9267          0xf06ee98, 0x72319e9, 0x67bf9b2, 0x215b738 }
 9268    },
 9269    {
 9270        { 0x0aaddd7, 0x8d1bec2, 0xb8be4f9, 0xfb8b95b, 0xfde1026, 0xeac193e,
 9271          0x9d5860c, 0xa5edea7, 0x44280d3, 0x4adbaea, 0x38f4798, 0xce8b670,
 9272          0xec30dea, 0x914c107, 0x000776b, 0xbdc5cf7 },
 9273        { 0xa206a13, 0xb6fd7d1, 0xdae986e, 0x9941eba, 0x1f1caaa, 0x76c27a8,
 9274          0x3f108b4, 0x6967c12, 0x4aea2d0, 0x6f11528, 0x144ddac, 0x9bb4319,
 9275          0xc8ec6fc, 0x1a4d3ea, 0xbf37420, 0xfe4b0b8 }
 9276    },
 9277    {
 9278        { 0xec0ac6f, 0x5d9a4a1, 0xfc7c80d, 0x84b79f2, 0xc14fac3, 0x64222f7,
 9279          0xc23b3f2, 0xdd9e039, 0xea956bb, 0x4a84abd, 0xebe09dc, 0x370dcba,
 9280          0xe0eaf82, 0x79a9ea8, 0xaee375f, 0x4cfb60a },
 9281        { 0x9106827, 0x6a10dbf, 0x43f305b, 0xa3ba5cf, 0xc1bb083, 0x481b885,
 9282          0xb3117b1, 0x2f52380, 0xddd6791, 0x0066122, 0x63bace3, 0x4f8923e,
 9283          0xecb88d4, 0x5c5f499, 0x3bac146, 0xfdc780a }
 9284    },
 9285    {
 9286        { 0x7ba1f71, 0x34b70ae, 0x45bd184, 0x9091829, 0xe707313, 0x3b39778,
 9287          0x6164e91, 0xdeefc5e, 0x4971f39, 0xbb55bed, 0x8dafc8b, 0x7d52339,
 9288          0xa6adf0f, 0x82391bf, 0xe319522, 0xfd6f90a },
 9289        { 0xf29bbc9, 0x60fdf77, 0xaaa4030, 0xeff9ed8, 0xf8c0d3f, 0x978e045,
 9290          0xeed65cd, 0xe0502c3, 0x3cfd4c8, 0x3104d8f, 0xa639005, 0xab1be44,
 9291          0x9eeab3f, 0xe83f431, 0x451d797, 0x01970e8 }
 9292    },
 9293    {
 9294        { 0x3180f4b, 0xbc972f8, 0x617779d, 0xac053c0, 0x7fa149f, 0x89392c5,
 9295          0xbcb6263, 0xdc4699b, 0xce12882, 0x0ae8b28, 0xaf1a4dc, 0xdca19a7,
 9296          0x64e1a74, 0xd3d719f, 0xaffdd5d, 0xbb50201 },
 9297        { 0x7ac30e9, 0x56f7310, 0x1878900, 0x65cc9c7, 0x27338a3, 0x83f5866,
 9298          0xac5bb13, 0x122adef, 0x1bcd4d5, 0x97de200, 0xb8aa3a0, 0x6ed3985,
 9299          0x6821f9b, 0x8680f1d, 0xdda9f98, 0xcb42028 }
 9300    },
 9301    {
 9302        { 0x0ec2db3, 0xcdb0708, 0x3dad1a1, 0xe28c833, 0xde2da07, 0x2093e32,
 9303          0x83b8987, 0x7317073, 0xf552b8d, 0xad17871, 0x51cf70a, 0x846da98,
 9304          0x5c4f5e1, 0xf94a16e, 0x0f8348a, 0x8429996 },
 9305        { 0x98db78a, 0x4bf3f68, 0x3d19b52, 0xad77fa8, 0x8b972dc, 0x6976772,
 9306          0x5321be0, 0x7dfa35a, 0xdd344a6, 0x9881846, 0xad4e2a8, 0xe550292,
 9307          0xbc68bf1, 0x8075217, 0x893be15, 0xdd837c4 }
 9308    },
 9309    {
 9310        { 0xd4fab5b, 0x09c931e, 0xb77a0f1, 0xb2dcf08, 0xe0d38a6, 0x7dac5c0,
 9311          0x0ae73af, 0xa5570b0, 0xf5aed28, 0xc7c19d3, 0x5251e92, 0x575fa6f,
 9312          0xcdf7275, 0xb843cd6, 0x9a01287, 0xd9d3d8e },
 9313        { 0xb3c370b, 0xf94e356, 0xfe464b0, 0xc62b99f, 0xa986057, 0x7792650,
 9314          0xc4b1874, 0xeaa67d5, 0x0b07078, 0xba1ba4d, 0x7a03699, 0xdbf636d,
 9315          0xedd32a3, 0x1a16c34, 0xa45cb5d, 0x6ce2495 }
 9316    },
 9317},
 9318{
 9319    {
 9320        { 0xa684441, 0xd7c4d9a, 0x30cd42a, 0xce62af6, 0x43014c4, 0xcd2669b,
 9321          0x6f65b24, 0xce7e711, 0x576fa19, 0x1847ce9, 0x9dd8ca6, 0x82585ac,
 9322          0xb42e1db, 0x3009096, 0x384ab8b, 0x2b2c83e },
 9323        { 0xb4e9a6e, 0xe171ffc, 0x7374b40, 0x9de4218, 0xdb1d616, 0x5701f9f,
 9324          0xa3e8cbc, 0x211e122, 0x1e400bf, 0x04e8c1a, 0x0f37159, 0x0297470,
 9325          0x3df8c28, 0x41775d1, 0x61ac2db, 0xcfaad4a }
 9326    },
 9327    {
 9328        { 0x7dc0f49, 0x6341b4d, 0xf471a53, 0xaff6c2d, 0xfb8e91e, 0x20ec795,
 9329          0xc3b7b62, 0x4c7a4df, 0xd374938, 0x9f33ff2, 0x3a60f2e, 0x38f8c65,
 9330          0x2efef73, 0xc1168ac, 0xce408ee, 0x046146f },
 9331        { 0x308b0c3, 0x9b39ac0, 0x36b8570, 0xe032d61, 0xfc4aacf, 0xee07d8d,
 9332          0xd5a41dd, 0x0a82acb, 0x7c3d726, 0xbe0ded2, 0xb926ce9, 0xce51d60,
 9333          0x5806c1e, 0xfa2f7f4, 0x1dec59c, 0xe367c6d }
 9334    },
 9335    {
 9336        { 0xda2547b, 0x64511b6, 0x0761405, 0x76a349c, 0x01223ab, 0x37d6626,
 9337          0xf4d7c48, 0x0e243c1, 0xda756a0, 0xdc9c8b4, 0xd72e7e9, 0xc7430df,
 9338          0x27b4210, 0x0eb1308, 0xcf11cbd, 0x7a9c044 },
 9339        { 0xe8dd150, 0x2c08ff6, 0x2932fc6, 0x18b738c, 0x04513e8, 0x07d5651,
 9340          0xaa40a17, 0x0ca5cff, 0x01baa8f, 0xd486341, 0xb72b79e, 0xfb20faf,
 9341          0x654020f, 0x1a051e5, 0x4e17f23, 0xe3b3317 }
 9342    },
 9343    {
 9344        { 0x4de9428, 0x0591048, 0x5abdf97, 0x620542a, 0xa16a4d1, 0xaa0eded,
 9345          0x6d65bb9, 0xa93f71c, 0xb8dfaf9, 0x88be135, 0x57ca8ee, 0x1d9f4e5,
 9346          0x26781ad, 0x4c896aa, 0x6c6c49f, 0xd3fbe31 },
 9347        { 0x2c34c3d, 0x088d852, 0xbadff1e, 0xbb6d645, 0x385450d, 0xe3080b8,
 9348          0x50ab1f3, 0x5ccc54c, 0xac0657d, 0x4e07e6e, 0xb7ef2c0, 0xa7ba596,
 9349          0x73a81e9, 0xcceca8a, 0x8284c35, 0xa0b804c }
 9350    },
 9351    {
 9352        { 0xf17a6a2, 0x7c55956, 0x789cfa8, 0xb451d81, 0x2506eaa, 0xdf414e8,
 9353          0xae96562, 0x6ef40fb, 0x0e0297e, 0x63ea283, 0x73c46fa, 0xf5df26e,
 9354          0xaac8bce, 0xe00641c, 0x64371f3, 0xc89ed8f },
 9355        { 0x793202e, 0xd22b08e, 0x875cb50, 0x39a9033, 0xf85ddb4, 0xe64eec0,
 9356          0x7acf7b5, 0xdce45a7, 0xb9b802d, 0x39d1e71, 0xbd559ac, 0xafdfe7c,
 9357          0x809eeb5, 0x17ec1f8, 0x4889b8c, 0x8c0e38a }
 9358    },
 9359    {
 9360        { 0x17089da, 0x47eabfe, 0xec90c50, 0x2d18466, 0x5861531, 0xa511aa4,
 9361          0x8c39b39, 0xebb3d34, 0xf1b5282, 0xa0ac4da, 0xa9dadba, 0xea26be7,
 9362          0x554d86e, 0x8992ba8, 0xd5f2ef5, 0x7fcbdb6 },
 9363        { 0x56863e7, 0x320e79b, 0xa7dce2d, 0xeb9d0c0, 0x784cbc6, 0xb9f4031,
 9364          0x7ac1f81, 0x68823ee, 0x9d87497, 0xa6b6f4f, 0x57f9b6e, 0x83c67b6,
 9365          0x0fef2a7, 0x3735747, 0x59596e2, 0xf38028f }
 9366    },
 9367    {
 9368        { 0x7e82886, 0x9ea57ab, 0x48c44d5, 0x18221c5, 0x314a24f, 0xbf8e6cf,
 9369          0xfd025e5, 0x70ff18e, 0x5334468, 0x08d03de, 0x7404fb7, 0x2b206d5,
 9370          0x55e36b0, 0xb923271, 0xb88ddd9, 0xcc7604a },
 9371        { 0x4a746f0, 0x3df5152, 0x168e3fc, 0x8fdebd8, 0x7f8c32c, 0xffc550c,
 9372          0x148743e, 0x1dbbc17, 0xb88e18b, 0xd48af29, 0x750027c, 0x8dca11c,
 9373          0x1832be3, 0x717f9db, 0x2b06019, 0x22923e0 }
 9374    },
 9375    {
 9376        { 0xc1cc4d3, 0xd4e06f5, 0x2b4f03a, 0x0fa32e3, 0xc4628d0, 0x956b9af,
 9377          0x939dad1, 0x95c39ce, 0x8a00416, 0x39d41e0, 0x6fb01aa, 0xfd7ff26,
 9378          0x45af340, 0xc6033d5, 0x8e36584, 0x2f65542 },
 9379        { 0x8dff960, 0x14cfb1f, 0xda81474, 0x7236ffc, 0xd452d0f, 0xc6a6788,
 9380          0x77f6094, 0x2ad4a52, 0x07eea74, 0x369d65a, 0xd6229aa, 0x27c6c38,
 9381          0x8863976, 0xe590e09, 0xb38b142, 0x361ca6e }
 9382    },
 9383},
 9384{
 9385    {
 9386        { 0xdfeb7ef, 0x6803413, 0xd3f4fad, 0xb669d71, 0xc941606, 0x5df402a,
 9387          0x8e6c5b7, 0xe5d1776, 0x92ab236, 0x131bcb3, 0xce2e0e0, 0x7f1fb31,
 9388          0x9e98c35, 0xa2c020d, 0xf28657b, 0x33b23c0 },
 9389        { 0x9cf7879, 0xed14e73, 0xb4357b3, 0x10d4867, 0x31e4e04, 0x127cea3,
 9390          0xaa5f8a7, 0xc60d25f, 0x025b987, 0xfef840a, 0x66f2a0a, 0x78081d6,
 9391          0xac36198, 0x0fa0b97, 0x134dc9f, 0xe0bb919 }
 9392    },
 9393    {
 9394        { 0xcc32eae, 0xc1d2461, 0x0f79a37, 0x0fdbfdf, 0x1c95f02, 0x70f2bc2,
 9395          0x372cddf, 0x7d68bec, 0x8439342, 0x44f7817, 0x4843a6c, 0xa3d5678,
 9396          0x07f8959, 0xbadf77a, 0x73db4ca, 0xf458198 },
 9397        { 0xd54f805, 0xe8eaaf3, 0xb84c1e7, 0x2f529d1, 0x21e535c, 0x404e32e,
 9398          0x159b5f5, 0xabac85c, 0xb00466f, 0x4e8e594, 0xc941873, 0x40fcaab,
 9399          0xbe407c6, 0x3b4e370, 0x5b2e58d, 0xccd5788 }
 9400    },
 9401    {
 9402        { 0x88b74a8, 0x3ee615e, 0xeab4e69, 0xd7d6608, 0xe4ace36, 0x27cf9f1,
 9403          0x7aebabb, 0x282359e, 0xf6d162f, 0x96e509b, 0xf1a290a, 0xad906f3,
 9404          0x1314a58, 0xe7d6c4f, 0x218431d, 0xeecffe4 },
 9405        { 0xe2cfed9, 0xa66e0e9, 0x71f0544, 0xb0887ec, 0xa04c5d7, 0xd34e36b,
 9406          0xed4392d, 0x094daa5, 0xc8aa925, 0xcda83ad, 0xb979786, 0x1adef91,
 9407          0xfddc5d6, 0x3124dcb, 0x0b70c14, 0x5cc27ed }
 9408    },
 9409    {
 9410        { 0x0eac2d8, 0x386dbc0, 0xc50ca30, 0xa716ecb, 0x80d9f04, 0x9e3fc05,
 9411          0xcfeaceb, 0x37dde44, 0xa3522d5, 0xd88d74d, 0x2cf239a, 0x6bb9e9f,
 9412          0xa7cbfec, 0x9e7fb49, 0x0a5c0ef, 0xe1a75f0 },
 9413        { 0xfb9229d, 0x6e434e7, 0xc8a79b3, 0x0ec6df5, 0xd3fb311, 0x7046380,
 9414          0x52e20fa, 0xe957ef0, 0x9ef4614, 0x0f4fe9a, 0x54d8f2b, 0x1b37d9c,
 9415          0x39d84a2, 0x23b2dc1, 0x724e713, 0xf62c4f6 }
 9416    },
 9417    {
 9418        { 0x747e219, 0xbd6922c, 0x3869b7b, 0x34d1438, 0x96f2272, 0x8c875a5,
 9419          0x3fe361e, 0xd9602c0, 0x744839f, 0x081348f, 0x61ac1f1, 0x61bd16c,
 9420          0xd8da4e1, 0x993b727, 0x7741271, 0xbb40ba8 },
 9421        { 0x81dcfff, 0xe6dcc98, 0x93ce616, 0x9f513f5, 0x618cd8f, 0xdc09683,
 9422          0x26639be, 0xc3b1d10, 0xc762ee2, 0xe8f149f, 0xb244aae, 0x59f26ef,
 9423          0x693dd96, 0x3f2de27, 0x9c3a7de, 0xd8b68f7 }
 9424    },
 9425    {
 9426        { 0x970bd5b, 0x6fa20b9, 0x75f6179, 0x87242d7, 0x72d9308, 0xa95a6c6,
 9427          0x37a8a58, 0x6eb2518, 0xc59562c, 0xfdea12a, 0x20f1fc3, 0x4419c1e,
 9428          0x9d66788, 0x0c1bd99, 0x32c0547, 0x4b74288 },
 9429        { 0xdf479ab, 0x4f38acc, 0xc52a942, 0x01f6271, 0x02ca9a7, 0xe3298f4,
 9430          0xb718fc8, 0x533daca, 0xb093ca8, 0x133602a, 0x8f98104, 0xc04da80,
 9431          0xaf08620, 0xd0f2e23, 0x178b164, 0x882c817 }
 9432    },
 9433    {
 9434        { 0xec30a71, 0x28e6678, 0xf78aca1, 0xe646879, 0x88fa078, 0x868a64b,
 9435          0xfee3433, 0x671030a, 0x87c0211, 0xb2a06bb, 0x46c406a, 0x202eca9,
 9436          0xe4f0f59, 0x64d6284, 0x3c9f907, 0x56ae4a2 },
 9437        { 0x1dcc100, 0x5abbb56, 0x07c7784, 0x6fef6cf, 0xdb7302d, 0xb6e25cd,
 9438          0x42980e8, 0xa26785b, 0xfb96801, 0xe7d4043, 0x8e4282b, 0x46df55d,
 9439          0xc602d6e, 0x9c0a5f5, 0x75dfe29, 0xf065604 }
 9440    },
 9441    {
 9442        { 0x3dcbc90, 0x0e82a1a, 0x656feac, 0xb1ee285, 0x0d3d3b2, 0xfa4353b,
 9443          0xdd5c5df, 0xc2e7a6e, 0x416ce53, 0x13707e1, 0x87ebc07, 0xc84ce07,
 9444          0x8a9a834, 0xdd273ce, 0x5e8e1e7, 0x432a617 },
 9445        { 0xbd0064a, 0xa359670, 0x6534516, 0xc899dd5, 0xdb27169, 0x666560e,
 9446          0xa19a068, 0x1537b22, 0xeac7527, 0x3420507, 0x6fc13a7, 0x479f25e,
 9447          0x1bc19b3, 0xc847acc, 0x0b20d45, 0xecdecf0 }
 9448    },
 9449},
 9450{
 9451    {
 9452        { 0x4acea57, 0x6f24100, 0xda68597, 0xdace1c6, 0x50ce77f, 0xea7dd41,
 9453          0x1585884, 0x1aecb84, 0xea4a85c, 0x92ff208, 0x88eebd2, 0xde9433c,
 9454          0x3f4d289, 0x53cd318, 0x26539af, 0x3970858 },
 9455        { 0xb827d87, 0x4b57599, 0x3d77638, 0xdc82ac0, 0x52f6e61, 0x6943366,
 9456          0xad5e8a6, 0xb8fc4b0, 0xf388642, 0x1b6f7dc, 0xa74dd57, 0x6f24533,
 9457          0x41750cf, 0xc669378, 0x28a37af, 0x06757eb }
 9458    },
 9459    {
 9460        { 0xc133995, 0x0e70d53, 0x7c8c97d, 0x88a5e0c, 0x85f3be3, 0x4e59dbf,
 9461          0x0e92698, 0x0f364ac, 0xef6940f, 0x3a1e79b, 0xd85d23a, 0xc8a3941,
 9462          0x9a00e58, 0x143bb99, 0xc6f2f10, 0x61cf7d6 },
 9463        { 0x85150fe, 0x979c994, 0x59d773f, 0xcfd0df2, 0xaab7bcd, 0xce97b9d,
 9464          0x6afd8fc, 0xc9fff8e, 0x89a4628, 0x246befd, 0x1567090, 0xf630282,
 9465          0x6749c58, 0x1539342, 0xa0f3fd3, 0xff47d0e }
 9466    },
 9467    {
 9468        { 0x35f6706, 0x09b0bfd, 0x2c82e69, 0x7464581, 0x50d5fe9, 0xb60729f,
 9469          0x95c74f1, 0xf133245, 0xbb76c89, 0x33647e3, 0x5a9afcc, 0x0126404,
 9470          0x0f154ab, 0x46d57ee, 0x25680a4, 0x2efa555 },
 9471        { 0x5329d90, 0x12ebfc6, 0x79800af, 0xcb37ae5, 0x6f8e310, 0x5bb5349,
 9472          0xf1bb936, 0x9b59c63, 0xf4610e9, 0x5b49baa, 0x4f2d6ac, 0x2bbeeef,
 9473          0x0badc67, 0x87ee21e, 0xf1ddfa0, 0x12e2aad }
 9474    },
 9475    {
 9476        { 0xa9109ee, 0x5b4668f, 0x8a6cea2, 0xfa95133, 0x4068e16, 0xe45e6fc,
 9477          0x0205ed8, 0x8ae9a0c, 0x679b79b, 0x2993b96, 0xed604d3, 0xc6b878f,
 9478          0x32c77f3, 0x01d0208, 0x495a1ab, 0xd45d890 },
 9479        { 0x29d2030, 0x99348fa, 0x61f8f7a, 0x961f9a6, 0x674f74b, 0xfd53212,
 9480          0xb3e72bc, 0x45cee23, 0xb77e2d5, 0x3fccb86, 0x4219cb7, 0xdff0310,
 9481          0xc056871, 0x233771d, 0x7d2c521, 0x1214e32 }
 9482    },
 9483    {
 9484        { 0xff2a8e1, 0x9f51e15, 0x138bc70, 0x86571c5, 0x0c09d46, 0xbfc4caf,
 9485          0xc2a0c18, 0x65e33fe, 0x426867d, 0x8214392, 0x80ae4ed, 0x51ce6c0,
 9486          0xb110de6, 0x6cbe8d7, 0xfd22ea4, 0x7f6e947 },
 9487        { 0xcadefc4, 0x7373a75, 0xb0c682f, 0x6fca1d2, 0xf3c7c1e, 0xcd2140d,
 9488          0x558b7a5, 0x8653a37, 0x55eb321, 0x653e74e, 0xc31af73, 0xbe0c6b3,
 9489          0xf4fc365, 0x3376379, 0x71add4d, 0x3570b37 }
 9490    },
 9491    {
 9492        { 0x83c3494, 0x9061ec1, 0x677bc95, 0xaf2f28d, 0x3bf8768, 0x6fe7279,
 9493          0x0fa86d8, 0xc5f50e3, 0xa3293ce, 0x6c03060, 0xe2355a6, 0x4d53357,
 9494          0xe4df931, 0x43a59ea, 0x13b79c6, 0x6f48f5d },
 9495        { 0xddc5192, 0xa4d073d, 0xa65773f, 0x6d0e318, 0x765de9e, 0x1008792,
 9496          0x39a0375, 0xa724ed2, 0x97d7c9e, 0x510ff14, 0x5baa863, 0x251f622,
 9497          0x648a351, 0x86464fe, 0xd50fd91, 0xf85e98f }
 9498    },
 9499    {
 9500        { 0x86ee987, 0x29c9634, 0x10dcc9f, 0x93e8e52, 0xc910b1f, 0xa1fc4d1,
 9501          0xfeb603e, 0x015acac, 0x0844a5f, 0xc9f25f8, 0x73f4dac, 0x50de93c,
 9502          0x310a4aa, 0x1758783, 0x358f106, 0x544d570 },
 9503        { 0x1dc68ca, 0x4eeec7b, 0xe00fbcb, 0x6238e6f, 0xb4e83c9, 0x34d394c,
 9504          0x2292656, 0x764ffa2, 0xf641f2e, 0x5614cd1, 0x9e07234, 0x4252eb6,
 9505          0x68d2ba4, 0xcbaef45, 0x8a98b17, 0x8c9c550 }
 9506    },
 9507    {
 9508        { 0x4106140, 0xf235d9d, 0x9eb601e, 0x1bf2fc3, 0x375e0c3, 0x6fb6ca9,
 9509          0xc0024d2, 0x4bf5492, 0xeb54cc6, 0x3d97093, 0x5c90cb5, 0xc60931f,
 9510          0xfbe0f1a, 0xfa88808, 0xd33e7d4, 0xc22b83d },
 9511        { 0xc0abbf5, 0x9cfec53, 0x93723df, 0x52c3f0a, 0x39b96b6, 0x0622b7e,
 9512          0x1667270, 0x300de28, 0x9ef426a, 0x50b66c7, 0xc6eb295, 0x8849189,
 9513          0x8914a7e, 0xeaec3a9, 0xc4c99e0, 0x7ed56b0 }
 9514    },
 9515},
 9516{
 9517    {
 9518        { 0x687e557, 0x7926403, 0x5310017, 0xa349816, 0xd43a8fd, 0x1b06e91,
 9519          0x6ac23cb, 0xf201db4, 0x4f48750, 0x6f172ad, 0xe74bd3e, 0x5ed8c8c,
 9520          0xdaba648, 0x492a654, 0xa9b64ff, 0x123010b },
 9521        { 0x6e89f93, 0xa83125b, 0x398378a, 0x3a3b0b0, 0x0aebe7c, 0x9622e0b,
 9522          0x49512a4, 0xb9cbfdc, 0x6aaf12a, 0x13edffd, 0x9f5eafd, 0x555dff5,
 9523          0x1212efa, 0x3cba6fe, 0xd9bb0f8, 0xd07b744 }
 9524    },
 9525    {
 9526        { 0x9a48920, 0x45732b0, 0x13ff36d, 0xf3080fc, 0xde8f950, 0x9347395,
 9527          0x382b897, 0x14d025a, 0x04d72ad, 0x60c5a74, 0x11a9c71, 0x30be7e5,
 9528          0x31ac33a, 0x43ffabd, 0x35cbb14, 0x97b06f3 },
 9529        { 0x7740de9, 0xe4ff5c5, 0xaacf81e, 0x5fed090, 0xe8b7c9d, 0x97196ee,
 9530          0x045910b, 0x316dcd1, 0x5ad8c63, 0x7a2b2f5, 0xc5b03bb, 0x674fffd,
 9531          0xe65953c, 0xc1cd133, 0x0a83556, 0x3c06052 }
 9532    },
 9533    {
 9534        { 0x091c23d, 0x797c3f6, 0x39c9c05, 0x2ea2de3, 0xa31f67c, 0x5d958b4,
 9535          0xd5f088c, 0xf97afe5, 0x0b37243, 0xbcfbd2a, 0xeca630c, 0xc43ad3e,
 9536          0x42845e0, 0xb92a337, 0xa9a0f16, 0x970bff7 },
 9537        { 0x5970a79, 0x8635511, 0xf205928, 0xcee332e, 0xc04c208, 0x2c58d70,
 9538          0x3f5e5bf, 0xdbfe19a, 0x8e51c56, 0x8f8f2c8, 0x8e2da75, 0xb61f58e,
 9539          0x624d93f, 0x4046a19, 0xe1f9538, 0x7de64db }
 9540    },
 9541    {
 9542        { 0xc2d850e, 0xd018e1c, 0x63a723c, 0x8cdb643, 0x90a42af, 0x9a65abe,
 9543          0x16f20cc, 0xfeece96, 0xd5cff56, 0xc906800, 0x3f0deed, 0x0acf23a,
 9544          0x728dd3a, 0x2143061, 0xb8ce34c, 0x66276e2 },
 9545        { 0x73cc9c7, 0x23700dc, 0x5b1778b, 0xdb44851, 0x4aab669, 0x330f41e,
 9546          0xf5282a4, 0x2f5aabc, 0x30f9e01, 0xff837a9, 0x901cc98, 0x1a1eb2f,
 9547          0xe69bd7f, 0xd3f4ed9, 0x8a72a7d, 0xa6b1141 }
 9548    },
 9549    {
 9550        { 0x9ea3b43, 0x34bde80, 0x5ced6ae, 0x5ddcb70, 0x95a6cb8, 0x8257f5b,
 9551          0xc77dcb8, 0xaac205d, 0x035b397, 0x77d740d, 0xcf7e0a6, 0xca7847f,
 9552          0x085601b, 0x9404dd6, 0x457e4f9, 0x0a5046c },
 9553        { 0xbc11470, 0xcaee868, 0x005c5f6, 0xb118796, 0xec79173, 0xcc04976,
 9554          0x21f6827, 0x7f51ba7, 0x486ff7e, 0xa8e3f0c, 0xf87838c, 0x327163a,
 9555          0x6d039fd, 0xcf2883e, 0xdb8b0e2, 0x6fb7ab6 }
 9556    },
 9557    {
 9558        { 0x620d669, 0x8ca5bac, 0xed7caa9, 0xff707c8, 0x927909b, 0xdaefa2b,
 9559          0x7029da3, 0x1d2f955, 0x6d131a0, 0x52a3ba4, 0x3ab1041, 0xe5a94fd,
 9560          0x99bc0ae, 0x5089177, 0xfa1bd16, 0xf750354 },
 9561        { 0x6cd31fd, 0xdd4e83a, 0x92fac84, 0xd335053, 0x1691382, 0xf914cbc,
 9562          0xda6ade6, 0x669683f, 0x8878513, 0x6944643, 0x4b1a72d, 0x429d3cc,
 9563          0x61eec36, 0x655c46a, 0x4bc4970, 0x881eded }
 9564    },
 9565    {
 9566        { 0x7ca647f, 0x5b39d37, 0xe917b34, 0x41533c1, 0x7daf734, 0xea2aeb5,
 9567          0x1286560, 0xf1ef1eb, 0x08e0473, 0x582f2e0, 0x5edc74a, 0x5913d7d,
 9568          0x3c1e754, 0x588c7ec, 0x7146fe1, 0xbd6db05 },
 9569        { 0x7634907, 0x3b0d49e, 0xe43b9cc, 0x4c65ce4, 0x2d92d5b, 0xb87e958,
 9570          0x7ab1519, 0x0513572, 0x8c3aed0, 0x03ec084, 0x561a641, 0x4d7aa21,
 9571          0x99e92ad, 0xe5f8211, 0x48a457c, 0x379b55f }
 9572    },
 9573    {
 9574        { 0xd6a8442, 0x8317c34, 0xae499da, 0xb0ab4a5, 0x720e8eb, 0xebcb16e,
 9575          0x9a96908, 0xfd5c563, 0xad23acf, 0xcab4d67, 0xbcdf748, 0xa600a79,
 9576          0xa2a6a51, 0x18a6340, 0x3aabd69, 0xf2f415c },
 9577        { 0x747258a, 0xdb38a4f, 0x2e24415, 0xb6ea560, 0xf1f7655, 0xfad1ea9,
 9578          0xc957684, 0x4e27eb5, 0xb2e1cfc, 0xf8283e1, 0xaa6291c, 0x8f83bd6,
 9579          0x5619e84, 0x28d23b5, 0x93770a4, 0xb9f34e8 }
 9580    },
 9581},
 9582{
 9583    {
 9584        { 0x7515fb1, 0x1bb8437, 0x7b860a6, 0xac73f2a, 0x22b390f, 0x78afdfa,
 9585          0x66048aa, 0x815502b, 0x85bf620, 0xf513b97, 0x3fc5d7c, 0x2524e65,
 9586          0x178c969, 0xa10adc0, 0x5391c8d, 0xa1d5396 },
 9587        { 0xa8bcc45, 0x09fccc5, 0x7710e1e, 0xa1f97d6, 0x897d0a1, 0xd694442,
 9588          0x5f42400, 0x7030beb, 0x7127908, 0xdebe08c, 0x2187637, 0x96b715c,
 9589          0xb528129, 0xc598250, 0xa1ccb07, 0x0f62f45 }
 9590    },
 9591    {
 9592        { 0xb765479, 0x8404941, 0x5837dc4, 0xfdecff4, 0xadbd465, 0x1796372,
 9593          0x3159806, 0x5f84c79, 0x6aaad34, 0x6d2e46b, 0x384b375, 0xd303b4a,
 9594          0xb392002, 0x440acd5, 0xc475e87, 0x4f2a4a7 },
 9595        { 0x5606fc2, 0x038e1da, 0x9c2f050, 0x2d821c2, 0xf139db4, 0xc074cb3,
 9596          0x4ec59be, 0xde2fee7, 0xa84ed59, 0x5a819ee, 0x3e98711, 0xd65c62c,
 9597          0xb9723c1, 0x72eb440, 0x01be611, 0xb927754 }
 9598    },
 9599    {
 9600        { 0xab9e9fc, 0x929fe64, 0x0bf1e85, 0x04379fd, 0xbc28ee3, 0xb322093,
 9601          0xe4555e1, 0x78ac4e2, 0xabc5588, 0xdb42b58, 0x77c8b12, 0x1c1b5e1,
 9602          0x40366c4, 0xf6d78dd, 0xbdae22e, 0xc21ff75 },
 9603        { 0xa211df2, 0x1e3d28e, 0x3617c0a, 0xc5a65a1, 0x58140d5, 0x3fa02c0,
 9604          0xb62d10c, 0x155c346, 0xe48268f, 0xc9cf142, 0x1993bc3, 0xdc14083,
 9605          0x0ee69dc, 0x07c44d4, 0x5e2ac46, 0x6169950 }
 9606    },
 9607    {
 9608        { 0xd0fb585, 0x44e4a51, 0xf1f3ce8, 0x00846be, 0x8e2de1e, 0xedef39a,
 9609          0x33b3934, 0x430afe3, 0x4337188, 0xac78b05, 0xc9a3f24, 0x0f39de4,
 9610          0xc9ae6a4, 0x039eddd, 0x8eacd51, 0xf470157 },
 9611        { 0x9a2f31a, 0x1e39694, 0xb19a8b1, 0xc8a40f4, 0x9d239d8, 0xdddd10c,
 9612          0x887e066, 0xf974245, 0x3ea28c6, 0xfdb5111, 0xe1122a9, 0xb5af0fb,
 9613          0x36e0267, 0xd30c89f, 0x74f024c, 0x7b1c0f7 }
 9614    },
 9615    {
 9616        { 0x07a39bf, 0x1ec9956, 0x3a68d15, 0x1c3ecf2, 0x4f59fe9, 0xd8a5c4e,
 9617          0x271abc3, 0xacb2032, 0x71ef239, 0xbc6bdf0, 0xb39b391, 0x660d7ab,
 9618          0xb627a0e, 0x2e73bb2, 0x248fc7e, 0x3464d7e },
 9619        { 0x1666760, 0xaa49249, 0x8582659, 0xa257b6a, 0x5593089, 0xf572cef,
 9620          0x73ca6bf, 0x2f51bde, 0x764cff5, 0x234b63f, 0xd411a35, 0x29f48ea,
 9621          0xafe1db1, 0xd837840, 0xd9f4c4b, 0x58ec0b1 }
 9622    },
 9623    {
 9624        { 0x5e6f3dc, 0x8e1deba, 0x06a5ff7, 0xc636cf4, 0xc80ca0f, 0xe172b06,
 9625          0x5ffb90a, 0x56dc098, 0x9a05e83, 0x895c218, 0x7561ac2, 0x6ddfaec,
 9626          0x96283a0, 0xaa35749, 0x7e7cd43, 0x6dfb262 },
 9627        { 0x2c8ca27, 0x6576de5, 0x49018eb, 0x6a4a872, 0x5c34342, 0x00c275c,
 9628          0xd2d90c4, 0xe34805a, 0xd8743c4, 0x651b161, 0x7312bf3, 0xb3b9d9b,
 9629          0x0bf7e00, 0x5d4b8e2, 0x78d3d7e, 0x8899bdf }
 9630    },
 9631    {
 9632        { 0xfaa9cd1, 0x9644ad8, 0x6e0e58e, 0x34c98bf, 0x404c637, 0x6022aad,
 9633          0x7ac013b, 0x2a11a73, 0x5540899, 0x5bdd103, 0x1e022a4, 0x2e67572,
 9634          0xb834c33, 0xe32045d, 0x2f2d01c, 0x74a260c },
 9635        { 0xc48841c, 0x20d59e9, 0xe560359, 0x05045dd, 0xac998ac, 0xeba779c,
 9636          0x00a6218, 0x5bed10c, 0x5327ef4, 0x25d4f8e, 0x4597794, 0xa278474,
 9637          0x831d11e, 0xefd68ca, 0x934446a, 0x9ad370d }
 9638    },
 9639    {
 9640        { 0x73c92ac, 0x3089b3e, 0x957a75c, 0x0ff3f27, 0xd676f50, 0x843d3d9,
 9641          0xd496d43, 0xe547a19, 0x8e924a4, 0x68911c9, 0x85b5522, 0xfab38f8,
 9642          0x83e0ac5, 0x1048811, 0xdc788c4, 0xcaccea9 },
 9643        { 0xe3c6aad, 0xfbe2e95, 0xb3a6cf1, 0xa7b3992, 0x87d78b1, 0x5302ec5,
 9644          0x1826100, 0xf589a0e, 0x8610632, 0x2acdb97, 0x9232b26, 0x1e4ea8f,
 9645          0x9c09a15, 0xb21194e, 0x849b909, 0xab13645 }
 9646    },
 9647},
 9648{
 9649    {
 9650        { 0xf3a71c1, 0x92e5d6d, 0x297d661, 0x349ed29, 0x1713fc9, 0xe58bd52,
 9651          0xb9ddfb5, 0xad999a7, 0x3c28ce0, 0x271c30f, 0x2a9d460, 0xf6cd7dc,
 9652          0x207dec7, 0xaf728e9, 0xfcb8bf0, 0x9c2a532 },
 9653        { 0x68bf486, 0xd702184, 0x7ab8ea8, 0x73b45be, 0x1795c93, 0xddfc658,
 9654          0x6bb8da2, 0x7941660, 0x88e07a2, 0x658f197, 0x26d3d12, 0xa9d5b08,
 9655          0x9535b52, 0x4d7c95f, 0x268ef8a, 0xad55e25 }
 9656    },
 9657    {
 9658        { 0xa2bc326, 0x94a9b0b, 0x167e5f3, 0x485ecc5, 0xc97fc74, 0x8340bc7,
 9659          0x07aaa5c, 0x06f882b, 0x849698a, 0x4b57455, 0xb36a0ba, 0xd9281eb,
 9660          0x8b8108f, 0x8918c6c, 0x5b50d1d, 0xedd1eea },
 9661        { 0x2a25f50, 0x94d737d, 0x2446ad0, 0x0e5a823, 0x7ced3e2, 0x02a5435,
 9662          0x4af8ced, 0xb09a92a, 0xeeecef2, 0x85fc498, 0xe71e3d4, 0x06a02b9,
 9663          0x84bb49a, 0x00ad307, 0x64a5b4a, 0xf61585e }
 9664    },
 9665    {
 9666        { 0xb86a4c9, 0x915f6d8, 0xa861e1f, 0x944bc6b, 0x54465ef, 0x3091ca7,
 9667          0xeb53a38, 0x11df859, 0x0144679, 0xd44dde5, 0x0994edd, 0x6c8da9a,
 9668          0x91241ef, 0xeebcebf, 0xc2f6859, 0xc419354 },
 9669        { 0x49581b6, 0x1f49693, 0xbb26cb4, 0x5712b10, 0xb09fd59, 0x8fcaa41,
 9670          0x72e22e3, 0xbd39aad, 0xb1199b0, 0xf70e794, 0xc6f863d, 0xdf63c0c,
 9671          0xee9df4f, 0xd58166f, 0xc45e70b, 0xb9224ea }
 9672    },
 9673    {
 9674        { 0xce525f4, 0x80072fa, 0x66a5502, 0x8597bd6, 0xdbc9725, 0xf65e203,
 9675          0xf2222a4, 0xeccfbe3, 0x2339834, 0x490aa42, 0x62489e8, 0x1348891,
 9676          0xa735084, 0xaff3f80, 0xf3f1bd6, 0x69d53d2 },
 9677        { 0x813341a, 0xb123ffc, 0x1173848, 0x359084c, 0xd29b08d, 0x751425e,
 9678          0x3890ad4, 0x1edda52, 0x607cf20, 0xb64974c, 0xb42ac7c, 0xa8c8cb8,
 9679          0xedd42e5, 0xd5cb305, 0x44c090a, 0xf3034dc }
 9680    },
 9681    {
 9682        { 0xbb18e19, 0x428921d, 0xfed2127, 0x4cfd680, 0x92ac8c3, 0x671144d,
 9683          0x132c894, 0x2121901, 0x7604cd9, 0x25d0e56, 0xafbc2a0, 0xa372223,
 9684          0x56c16f7, 0xcf98a52, 0xb5459e1, 0x71f129a },
 9685        { 0xb668b2e, 0xf4afdc5, 0x0c2d410, 0xc5d937a, 0x285d54a, 0xe2cc4af,
 9686          0x8c53e18, 0x1c82777, 0x69a92f6, 0x270f2c3, 0x616327a, 0x799f9ac,
 9687          0xd4246f2, 0xce658d9, 0xfb12e36, 0x0fb681f }
 9688    },
 9689    {
 9690        { 0xe0690fe, 0xc5ab11e, 0x3f74249, 0x80261e3, 0x58c1cf2, 0x8eb4b47,
 9691          0x184ae9b, 0x4895a80, 0xd3e27eb, 0x4a4bdb6, 0xbfd251c, 0xa7a1638,
 9692          0x417a7e3, 0x29ec144, 0x3f1b960, 0xd073609 },
 9693        { 0x49c73d1, 0xcb1ed83, 0x8d1945a, 0x33fc84a, 0xe965118, 0x9f668db,
 9694          0xa82811f, 0x3331743, 0x28ba540, 0xf394dec, 0x654a454, 0x44ce601,
 9695          0x3623645, 0x240dbb6, 0x2e61048, 0xf07e7f2 }
 9696    },
 9697    {
 9698        { 0x3d45213, 0x7c9f176, 0x9c1f77f, 0x3eefa70, 0x1b48350, 0xde3c3c5,
 9699          0x9d481a7, 0x4a2bc64, 0x7874f3d, 0xfd4a58a, 0x037b302, 0x96655d4,
 9700          0x68bf5ab, 0x9452528, 0x75177f6, 0x1b6d46a },
 9701        { 0xefb8d00, 0x7de6763, 0xa741b7b, 0xb2c1ba7, 0x7bae6ed, 0xcca6af4,
 9702          0x5b68b3f, 0xe4378ca, 0xaf71948, 0xfb757de, 0xbc6ac99, 0x7f07b5e,
 9703          0x27d636d, 0x752a568, 0x4b8a34f, 0xc8b7d1d }
 9704    },
 9705    {
 9706        { 0x325331b, 0x76cb78e, 0xadd2eed, 0x41f41c9, 0x5c5f623, 0x03db238,
 9707          0x7102fa2, 0xbbc1d17, 0x60182ec, 0x80f137a, 0x55adf15, 0xfdd8569,
 9708          0xe3373dc, 0x4f53f5e, 0x21b669b, 0xec6faf0 },
 9709        { 0x0b86081, 0x7d4e983, 0xf2d979c, 0x10d3cd9, 0x24a22c8, 0x0f48f58,
 9710          0x02f99ee, 0x86c540c, 0x5e6c5fc, 0xf4c6654, 0xbc404c8, 0xaf0c588,
 9711          0x423118a, 0x2e6edbd, 0x0690eab, 0x86e32e9 }
 9712    },
 9713},
 9714{
 9715    {
 9716        { 0xdfbfa6f, 0x1d12656, 0x7646018, 0xa498095, 0xc3597d0, 0x2f1071b,
 9717          0x1dda80a, 0x3df83f9, 0xf3ae449, 0x5853e28, 0x9e19aad, 0xb853d31,
 9718          0xa0d8a46, 0x863f01b, 0x2fef108, 0xa84fca6 },
 9719        { 0xfb84de9, 0xbe4c0b7, 0xc0727bf, 0x40a03dc, 0xb18575c, 0x781f841,
 9720          0x466cddb, 0x6a63045, 0x05dc7a2, 0x6be7582, 0x07ae811, 0x420f87f,
 9721          0x3bf96c8, 0x2808242, 0x51c6821, 0x723998c }
 9722    },
 9723    {
 9724        { 0x81f5863, 0x38ab641, 0x05ff9e1, 0xd82ecbd, 0xa065856, 0x339c94e,
 9725          0xa45156d, 0x143054a, 0x065628c, 0xe6d64bf, 0xa938589, 0xe530086,
 9726          0x385d79b, 0x22d3a49, 0x0ab8245, 0x0b10790 },
 9727        { 0xca387b5, 0xb0d80fb, 0x35551d7, 0x698206e, 0xa10bb73, 0x199685d,
 9728          0x9107378, 0xa8e5fa8, 0xd99dbbf, 0x36e5724, 0xd581b03, 0xd67f476,
 9729          0x88dd1e6, 0x7a15be7, 0xe5baa31, 0x8dac8e4 }
 9730    },
 9731    {
 9732        { 0xe170ef8, 0x4d5d88f, 0x1e9e600, 0xb6ba5de, 0xedeabc5, 0x4a89d41,
 9733          0x8fac936, 0x737c66b, 0x65c3125, 0x8d05b23, 0xb61b68e, 0x85a5cbc,
 9734          0x20a6af9, 0x8fea626, 0xd8b50ec, 0x85115de },
 9735        { 0x6a6f30b, 0x5430c8d, 0x8474295, 0x8bef9cf, 0xbe77f38, 0x0648f5b,
 9736          0x9e47bd7, 0xfe2b72f, 0x93106e2, 0xad6c5da, 0xfa7a6c3, 0x4fa6f3d,
 9737          0xb396650, 0xdcd2ed8, 0x1157ef9, 0x7de1cce }
 9738    },
 9739    {
 9740        { 0x1f241d1, 0x70a5f6c, 0x798cd5c, 0x6c354d8, 0x1a729fb, 0x23c7838,
 9741          0x523cbda, 0xcff8f15, 0x3493697, 0x5683ff4, 0x7534f53, 0xef7dbab,
 9742          0x2243d53, 0xd7bd08e, 0xf8072a9, 0x6f644cb },
 9743        { 0xb22db63, 0xac960f9, 0x23af04d, 0xa97f417, 0xd9798af, 0x692b652,
 9744          0xfedb156, 0x0e35967, 0xdfe6ee8, 0x14b5e50, 0xb411070, 0x7597ede,
 9745          0x442b3f9, 0x116f3ce, 0x1b2b6db, 0xe9b5ae8 }
 9746    },
 9747    {
 9748        { 0x2315930, 0xf4385ee, 0x27a8740, 0xc8d0298, 0xd934a43, 0x7907a8d,
 9749          0xc582191, 0x20bc946, 0x6a405e7, 0xa4acb3e, 0x43df2f5, 0x8c1d6c8,
 9750          0x991f0b5, 0x9df1593, 0x4d9be9d, 0xbb9df98 },
 9751        { 0x8e4b190, 0x6362008, 0xada3a88, 0xee1421e, 0xf93b027, 0xb84f0cc,
 9752          0x8e95091, 0x7a5d667, 0xf3e3704, 0x3974462, 0xc593e98, 0xfa6fb5e,
 9753          0xa6477d2, 0x44b6cf7, 0xb09a562, 0xe885b57 }
 9754    },
 9755    {
 9756        { 0x09a0c02, 0x6e339e9, 0x0e75f29, 0x57afff0, 0xfb7db03, 0x797d8d6,
 9757          0xd25a236, 0xc6e11a3, 0x0107260, 0x643ce1c, 0x62eae1c, 0xe644ec4,
 9758          0x3f5a3f5, 0x821d5b8, 0xc0579d6, 0xa8ad453 },
 9759        { 0x17d43a4, 0x6518ed4, 0x3f87ccd, 0x46e76a5, 0xf9bef95, 0xd6cbaab,
 9760          0x4f7cbcf, 0x2568832, 0x08476b4, 0x367159a, 0xbe6d324, 0x1d1b401,
 9761          0xa605026, 0x348cb98, 0x43b6b1e, 0x144f3fe }
 9762    },
 9763    {
 9764        { 0x7b1822c, 0xbabbd78, 0x2aa51f8, 0xd34ba7e, 0x41fbea4, 0x086f1cc,
 9765          0x746f3d9, 0x96f7eac, 0x281ecaf, 0xad97f26, 0xa14ee2c, 0x751a905,
 9766          0x0d7335f, 0xb4e7fe9, 0x4892ff0, 0x0d97b8f },
 9767        { 0x5a5c40e, 0xdb8a315, 0x7ba567b, 0x64e5de7, 0x1eefe88, 0x4f155f7,
 9768          0xfb6fbf4, 0xe2297e9, 0x6c16be5, 0xfe24bf9, 0xcdd83e2, 0x2251847,
 9769          0x5eda444, 0x13ac2c8, 0x283275f, 0x49d1b85 }
 9770    },
 9771    {
 9772        { 0x423e08f, 0xca08731, 0x87d2f14, 0x7046bb0, 0x3bc846c, 0x876f10c,
 9773          0x358fbe3, 0x2202b76, 0x0e26ac6, 0x0d4fc1c, 0xb986881, 0x1fc748b,
 9774          0x8384a18, 0x609e61c, 0x0d88e00, 0x28a72d6 },
 9775        { 0x78c6e2f, 0x1332a31, 0xb3526a4, 0x0367919, 0x698fe3e, 0x53989e4,
 9776          0xb16a99b, 0x14b1145, 0xddbb75f, 0xef9ec80, 0x0e53955, 0x7625624,
 9777          0x8744ae1, 0x54e087a, 0x672b875, 0xce50e8a }
 9778    },
 9779},
 9780{
 9781    {
 9782        { 0xa29629c, 0x4c88b2b, 0x7b2642f, 0x946559c, 0xf7ebe4c, 0x933d432,
 9783          0x63632c9, 0x97109b6, 0xe53184d, 0x799b3fb, 0x0f069a6, 0xd462871,
 9784          0x3a68351, 0x0c182a1, 0x9a2437a, 0x974a839 },
 9785        { 0x2a70278, 0x29f1997, 0xd9c424b, 0x01b98b6, 0x08f4c37, 0xd85a60b,
 9786          0x2b1da15, 0xcc3523f, 0xddffb0f, 0xf922115, 0xde84ae2, 0xee0fe4d,
 9787          0x55365be, 0x810440c, 0x1a457e8, 0xd2f6639 }
 9788    },
 9789    {
 9790        { 0xe2ddd05, 0x5e6879f, 0xabdfc61, 0x92a7545, 0xa5cede8, 0x7dedd63,
 9791          0x70df4bd, 0x8a03b3f, 0x91f6cbb, 0xa5d1f65, 0x10f3fb2, 0x372fde6,
 9792          0xa9dee05, 0x4537f9e, 0xdf7aa50, 0x7eb85bb },
 9793        { 0xe8c504d, 0x963edf8, 0xe7bdb6b, 0x53c8dca, 0x6fedf2d, 0xa246e4c,
 9794          0x0c55bde, 0x7553340, 0x0270a54, 0x2aa748d, 0x05860dd, 0xadb6cf0,
 9795          0x9b84763, 0x8d31450, 0xeb405ef, 0x626720d }
 9796    },
 9797    {
 9798        { 0x6601328, 0xa3709ae, 0x2ac2478, 0x68e94fd, 0x9d5d247, 0x3879343,
 9799          0x392c198, 0xfa467af, 0x15df607, 0x49e7b0d, 0x61792a8, 0x8c58122,
 9800          0x1d3762f, 0x79f7658, 0x244a39d, 0xaa38895 },
 9801        { 0xc5cd0bc, 0xef60af9, 0xa33b3bb, 0x2b0db53, 0x251015d, 0xe3e0b1f,
 9802          0xe64489e, 0xc608afc, 0x03651aa, 0xe52b057, 0x1c6f7b9, 0x1dda8b9,
 9803          0xff41893, 0x833f022, 0x192818c, 0x58eb0a0 }
 9804    },
 9805    {
 9806        { 0xfc7b5a7, 0x6c1300c, 0xa83ab33, 0x6d2ffe1, 0x9c02eef, 0x7b3cd01,
 9807          0xba60d55, 0x6c64559, 0x19e2f73, 0x2e9c16c, 0xdbe47b1, 0x11b24ae,
 9808          0x1b8153b, 0xc10a2ee, 0x1e02e1a, 0x35c0e08 },
 9809        { 0x1dd6f16, 0xa9f470c, 0xf41a290, 0x4ea93b6, 0x25ee03f, 0xac240f8,
 9810          0xb85aabd, 0x6cd88ad, 0x1be2f8f, 0x378a64a, 0x417bac1, 0xbf254da,
 9811          0x9231142, 0x7e4e5a5, 0x3b8c057, 0x057aadc }
 9812    },
 9813    {
 9814        { 0x80af479, 0x607c77a, 0x5ccdf74, 0xd3e01ff, 0x101b4c7, 0x9680aaf,
 9815          0x2fc50a6, 0xd2a7be1, 0xb72d782, 0x92a788d, 0x4640b52, 0x35daf2e,
 9816          0x39e601c, 0xc170d69, 0x7b25c2f, 0x16e05f5 },
 9817        { 0x6fe37f8, 0x47a42a6, 0xbeca298, 0xeb74271, 0x179da16, 0x401e11e,
 9818          0xaa53873, 0xfb8da82, 0x5bb4783, 0xd657d63, 0xfcea0b1, 0x6847758,
 9819          0x0993154, 0x2f261fb, 0x592853a, 0x868abe3 }
 9820    },
 9821    {
 9822        { 0x35766ab, 0x1a4c543, 0x6f4e4ea, 0xa1c84d6, 0x60ba199, 0x5d737a6,
 9823          0x98b15a2, 0x4a7b1e2, 0xfd967d3, 0x207877f, 0xc262b4d, 0xcaec82d,
 9824          0x4f2a37d, 0x0b27849, 0x6ac1711, 0x3478141 },
 9825        { 0x8fc6856, 0x28e3df1, 0x16d003f, 0xbec03f8, 0xff39ebd, 0x2bd705b,
 9826          0x2d776d3, 0x1dcb53b, 0x5c0e7ce, 0xabafa7d, 0x4a53332, 0x5b9c8c2,
 9827          0x9d90214, 0xe9f90d9, 0xc129690, 0x789747e }
 9828    },
 9829    {
 9830        { 0x54e2dfa, 0x94d3c39, 0xafb2a8f, 0x919f406, 0x34e3927, 0x159ef05,
 9831          0xa165c37, 0xcdb4d14, 0x288f337, 0xa23e5e8, 0x0f90242, 0x95867c0,
 9832          0xe34e781, 0x2528150, 0x6657b95, 0x104e501 },
 9833        { 0xbcdda24, 0x695a6c9, 0x23eb5fa, 0x609b995, 0x16a60f8, 0xcbce4f5,
 9834          0xf084a29, 0xec63f7d, 0x20c811f, 0x3075ada, 0x8c716a1, 0x129a192,
 9835          0xcd4cd4a, 0xd65f4d4, 0x62188be, 0xe18fa9c }
 9836    },
 9837    {
 9838        { 0xbac60e3, 0x1672757, 0x577144b, 0x525b3b9, 0x887055b, 0x38fc997,
 9839          0x31e4408, 0x7a77126, 0xcba2fcf, 0x884f173, 0x5962ac0, 0x783cbdc,
 9840          0x22287dc, 0x4f3ed0a, 0x50e20e6, 0x8a73e34 },
 9841        { 0xd764583, 0xe7a1cd0, 0x0d58ee6, 0x8997d8d, 0xaa13ed6, 0x0ea08e9,
 9842          0xcf363cb, 0xed478d0, 0x5b37bf4, 0x068523d, 0x783f13c, 0x8b5a9e8,
 9843          0x87528a9, 0xde47bbd, 0xcaec313, 0xd6499cc }
 9844    },
 9845},
 9846{
 9847    {
 9848        { 0xe09859d, 0x54781bb, 0x7f5e648, 0x89b6e06, 0x7075824, 0xb006dfe,
 9849          0x0717f68, 0x1731660, 0x0b4efe2, 0x9c86554, 0x5e30d8e, 0xdbdb257,
 9850          0x3b4d50f, 0xa6a5db1, 0xfa47beb, 0x3b5662c },
 9851        { 0x89d4a59, 0x9d4091f, 0x550a7dc, 0x790517b, 0xc52965e, 0x19eae96,
 9852          0xb5ed7a4, 0x1a7b3c5, 0xeb16541, 0x19e9ac6, 0xef66852, 0x5f6262f,
 9853          0xc4cda27, 0x1b83091, 0x3bf742b, 0xa4adf6f }
 9854    },
 9855    {
 9856        { 0xa5100e7, 0x8cc2365, 0x8592422, 0x3026f50, 0x3d714d0, 0xa4de79a,
 9857          0x90fcb30, 0xefa0d3f, 0x474ada0, 0x126d559, 0xc94350a, 0xd68fa77,
 9858          0x0c7cb45, 0xfa80e57, 0x3985fbf, 0xe042bb8 },
 9859        { 0xfe13dba, 0x51c80f1, 0xcf055d7, 0xeace234, 0x73f95f7, 0x6b8197b,
 9860          0xdcdbe89, 0x9ca5a89, 0xdfd9896, 0x2124d5f, 0x9e7ca37, 0x7c69556,
 9861          0x8babb37, 0x58e806a, 0xbaf99ce, 0x91b4cc7 }
 9862    },
 9863    {
 9864        { 0x197e968, 0x874e253, 0x3160668, 0x36277f5, 0x8b95dbe, 0x0b65dda,
 9865          0xf0872a1, 0x477a792, 0x314268d, 0x03a7e3a, 0x0c805c7, 0xa96c842,
 9866          0xb7bc4a8, 0xb941968, 0x75db390, 0x79dce30 },
 9867        { 0x6f4cc14, 0x577d4ef, 0xb5d1107, 0x5b0d205, 0x9f93624, 0x64ff20f,
 9868          0x5034a2f, 0x0b15e31, 0x8b6f35c, 0x3a0f6bb, 0xe0d0ec5, 0x0399a84,
 9869          0x0d5d521, 0xd0e5823, 0xcb1dd54, 0xdeb3da1 }
 9870    },
 9871    {
 9872        { 0x182401a, 0x24684ae, 0x21a706f, 0x0b79c1c, 0xd8998af, 0xe1d81f8,
 9873          0x4bb069f, 0xadf870f, 0xf3dd7aa, 0xd57f85c, 0xe4a40f8, 0x62d8e06,
 9874          0x8b55aa1, 0x0c5228c, 0xa9c0a1a, 0xc34244a },
 9875        { 0x68f544e, 0xb5c6cf9, 0xde23ab7, 0xa560533, 0x47c690c, 0xaa55120,
 9876          0x12aaaa6, 0x20eda5b, 0x751a6a0, 0xea0a49a, 0x2baa272, 0x6d6cfff,
 9877          0xbf4c28a, 0x95b756e, 0xe6178a4, 0xd747074 }
 9878    },
 9879    {
 9880        { 0x221a94b, 0xa27b453, 0xe635f20, 0xd56ad13, 0x8c95117, 0x03574b0,
 9881          0xed30b70, 0xf0ee953, 0x957796f, 0xb48d733, 0x58c336b, 0xf5d9583,
 9882          0x82db529, 0x6170cd8, 0xec9d1ea, 0xcd3ef00 },
 9883        { 0xe4d105f, 0xd1bea0d, 0xad6a559, 0xd2d670f, 0x52f9690, 0x652d012,
 9884          0xc2529b0, 0x5f51fb2, 0xe89df2a, 0x5e88bf0, 0xcd686e4, 0x9a90684,
 9885          0x882c7a1, 0xf519ccd, 0xc2f4d37, 0x933a0df }
 9886    },
 9887    {
 9888        { 0x3f66938, 0x0720a9f, 0xd8149df, 0x99356b6, 0xa3d7f61, 0xb89c419,
 9889          0x4ba6e31, 0xe658134, 0xab936c8, 0xd130561, 0x40dbef1, 0x0625f6c,
 9890          0xb6bb847, 0x7b2d6a2, 0x84d506b, 0x3ca8b29 },
 9891        { 0xfb011b0, 0x6bf729a, 0x33448c9, 0x01c3078, 0x0837420, 0x6ae9508,
 9892          0xa207fb8, 0xf781a8d, 0x57562a9, 0xcc54d58, 0x858c5ab, 0xc9b7364,
 9893          0x359908f, 0xdfb5035, 0x9631138, 0x8bf77fd }
 9894    },
 9895    {
 9896        { 0xc13fbb1, 0xf523365, 0x9993ed5, 0x88532ea, 0x5a73492, 0x5318b02,
 9897          0xe5a8f3c, 0x94bff5c, 0x306c2a0, 0x73f9e61, 0xf2668a3, 0x00abbac,
 9898          0x076237d, 0x23ce332, 0x34c0f9b, 0xc867f17 },
 9899        { 0xcfd2136, 0x1e50995, 0xb2b70f8, 0x0026a6e, 0x5077a7d, 0x66cb184,
 9900          0xa3b498e, 0xc31b2b8, 0x260ec86, 0xc12035b, 0xe1b3df0, 0x1cbee81,
 9901          0x8d55a42, 0xfd7b804, 0xf47a8c8, 0x912a41c }
 9902    },
 9903    {
 9904        { 0x9e157e3, 0xab9ffe7, 0x44dc158, 0x9cfe46d, 0x8a4a3ef, 0x435551c,
 9905          0x3b7e3a8, 0x638acc0, 0x49954a7, 0x08a4ebd, 0x13194f7, 0x295390c,
 9906          0x253892a, 0x3a2b68b, 0x25d5b11, 0xc1662c2 },
 9907        { 0x3a5d2bb, 0xcfba072, 0xcc327c9, 0xffaf6d3, 0xc67e254, 0x6c6314b,
 9908          0x2f32208, 0x6661631, 0xbea72e1, 0xf780f97, 0x002122f, 0x495af40,
 9909          0x7578a99, 0x3562f24, 0x77ce51e, 0x5f479a3 }
 9910    },
 9911},
 9912{
 9913    {
 9914        { 0x1a82a12, 0x91a5884, 0x80f3a62, 0xa754175, 0xf73417a, 0x399009f,
 9915          0x0a8c5cd, 0x2db1fb9, 0xc046d51, 0x82c8912, 0x8f18274, 0x0a3f577,
 9916          0x26ccae2, 0x2ad0ede, 0x8a4e9c2, 0x7d6bd8b },
 9917        { 0x4b3de44, 0xaa0d797, 0x96ac9bb, 0xf8658b9, 0x5f6c334, 0x31e7be2,
 9918          0x4df12c9, 0x23836ce, 0x59eb5c9, 0x029027b, 0x5b8649d, 0x2f22531,
 9919          0xd907162, 0xa0fdf03, 0x9e80226, 0x101d9df }
 9920    },
 9921    {
 9922        { 0x9a90835, 0xf12037a, 0xf0222a7, 0xd2d0882, 0xc3814e2, 0xeaf8d40,
 9923          0x8b8146b, 0xa986dc6, 0x8504653, 0x147a331, 0x2feaf67, 0x734e003,
 9924          0x602bec5, 0x6f27bbf, 0x6a688f3, 0xa1e21f1 },
 9925        { 0x73c4ae5, 0x5a8eeab, 0xe70b412, 0x4dbaddb, 0xcfd2af1, 0x871ceba,
 9926          0x7d7a286, 0x1860382, 0xb5bb401, 0x024059d, 0x3c39b73, 0x2557c09,
 9927          0x6681697, 0xfc5a711, 0x891b57c, 0xf881c0f }
 9928    },
 9929    {
 9930        { 0x8ea191a, 0x3c443f1, 0xd700ad0, 0x76faa58, 0xbe7fcbf, 0x6fe6cfa,
 9931          0x8990ef7, 0xaefc528, 0x80004cc, 0x44e30fa, 0x6d8ef85, 0xc744adc,
 9932          0x912df70, 0xafcd931, 0x572a6d8, 0xf62a9d1 },
 9933        { 0x3219f27, 0x47158a0, 0xad73136, 0x76fb27e, 0xcc2d614, 0x41bb2ad,
 9934          0xde1ec21, 0x8858cb9, 0x5f15866, 0xab402c4, 0xbc82bbf, 0x6675d5b,
 9935          0xf1b28d3, 0x4ee9dd6, 0xe373c17, 0x875884f }
 9936    },
 9937    {
 9938        { 0x2a67d36, 0x17806dd, 0x32c9ec1, 0xaa23a86, 0xfc1ee55, 0xd914126,
 9939          0x653701b, 0xbf8f7bd, 0xea71367, 0x9b0111a, 0xa98e417, 0x61fd4ab,
 9940          0x561c5a5, 0xeb45298, 0xe7af394, 0x2187b0a },
 9941        { 0x1616dde, 0x71f12db, 0x07da7b4, 0x0617609, 0x02ddb04, 0x414d376,
 9942          0x286fb58, 0x1100be7, 0x6f0d95b, 0xd7cf88d, 0x746d703, 0x8539d23,
 9943          0x4e23d73, 0xdccc9d6, 0xec89680, 0xaeef1d2 }
 9944    },
 9945    {
 9946        { 0x336508d, 0x82ccf1a, 0x5bad150, 0xa128c1f, 0x29a188d, 0x551d8c0,
 9947          0x771404f, 0xef13dd4, 0xc37b993, 0xdd67696, 0x0dddad2, 0x428c0e2,
 9948          0x038c94c, 0x222278d, 0x078e3f2, 0x1a24a51 },
 9949        { 0xedb0db9, 0xd297fe6, 0x8251a87, 0x00988d2, 0xbfaa0d7, 0xbb946f8,
 9950          0xdf45ea0, 0x380f7b9, 0xafccf5e, 0x8526415, 0xe9ec7bc, 0x909bfbf,
 9951          0x124755c, 0x2ed7093, 0x89404e2, 0x4368028 }
 9952    },
 9953    {
 9954        { 0x36d9ef1, 0x21b9fa0, 0xe433526, 0xfd64b7c, 0x6544849, 0xd9d7eb7,
 9955          0xd5b54b3, 0x201620c, 0xbb61159, 0x25fab3d, 0xc53e0d3, 0x90d4eb0,
 9956          0x9e74772, 0xba09831, 0xec1681c, 0x8749658 },
 9957        { 0xfec316b, 0xa354349, 0xa743ea2, 0x639a9b1, 0x37c50e6, 0x2e514ca,
 9958          0xdbaf6c5, 0x9f4a4fd, 0x6f511c9, 0x0df87ef, 0x0c00d95, 0xadd4cef,
 9959          0xaa1433f, 0x401c0eb, 0xbb38af9, 0x3c3a59e }
 9960    },
 9961    {
 9962        { 0xf0e7dca, 0x8706245, 0x3fb29ca, 0xad238cd, 0x9b7d8f0, 0x0330443,
 9963          0x154f495, 0xfdcd6e6, 0x7d4ad09, 0xc67e24a, 0x5438390, 0x1b209e8,
 9964          0xb0c211e, 0xf893b81, 0x7e11e36, 0x1aa86f0 },
 9965        { 0xedea8b1, 0x2cca3ff, 0x3b306cd, 0x7eedd07, 0x12ee222, 0x78e37bc,
 9966          0xbc42a1d, 0x257870b, 0x1fbd397, 0x5fb2bb9, 0x09d6c60, 0x4702470,
 9967          0x20bdc36, 0x11748a3, 0x04280e8, 0x3ff24dc }
 9968    },
 9969    {
 9970        { 0x9839b52, 0x0eb1c67, 0xacfbd32, 0x5bcca27, 0x74898e3, 0xb506c16,
 9971          0x2489e5e, 0x37d662e, 0xf694887, 0x8dc0731, 0xf43f1dc, 0x571149e,
 9972          0x66d63dc, 0x6430a37, 0xb50dd70, 0x0d2640e },
 9973        { 0x3b2675b, 0x2b56149, 0x88c604f, 0x1b48065, 0xaafbabc, 0x55c86a8,
 9974          0x608aaba, 0xa7b9447, 0x04cad8c, 0xa42f635, 0xcee7788, 0x0f72b1d,
 9975          0x755d99a, 0x1d68374, 0x5be2531, 0xd7cdd8f }
 9976    },
 9977},
 9978{
 9979    {
 9980        { 0xbcdfee1, 0x67873bd, 0xfcd0a3f, 0xa5a0c0a, 0x3cfa3d4, 0x59389f9,
 9981          0xe1c865c, 0x14e945c, 0x1d588cc, 0x62d2f8e, 0x8e228b4, 0xfd02f8a,
 9982          0xb42b649, 0x208f791, 0xab397ad, 0x0e0dff1 },
 9983        { 0x0bc6eb1, 0x30ac3d9, 0x5f313bb, 0xf14f16a, 0xe2a0ad2, 0x70fa447,
 9984          0x5a0db84, 0x6e40685, 0xe32e1e7, 0xd52282b, 0x15ca330, 0x315a02a,
 9985          0x867c2fe, 0x9a57a70, 0x0054923, 0x55f0765 }
 9986    },
 9987    {
 9988        { 0xc0cf08f, 0x2d729f6, 0xebaf57f, 0x6b80138, 0x0200c25, 0x6285bcc,
 9989          0x2cd2ac7, 0xee84519, 0x922778a, 0x28fce4d, 0xcd1011c, 0x761325c,
 9990          0x5100e47, 0xd01f247, 0xc60d8e1, 0xc7a1665 },
 9991        { 0x7ceb064, 0x950966d, 0x78420db, 0x0a88e85, 0xe096f29, 0x44f2cfc,
 9992          0x640f1d2, 0x9d9325f, 0xd2426f1, 0x6a4a81f, 0x9c905ac, 0x3ed6b18,
 9993          0x008854d, 0xba3c0e2, 0xa0d321b, 0x1df0bd6 }
 9994    },
 9995    {
 9996        { 0x3feb1e7, 0x0117ad6, 0xf1ae02f, 0xa058ba2, 0x31b3f06, 0x5eee5aa,
 9997          0xafacd4d, 0x540d9d4, 0x1571d91, 0x38992f4, 0xbf2c7de, 0xef2738e,
 9998          0x92a798d, 0x28bfcab, 0x2286733, 0x37c7c5d },
 9999        { 0x6470df0, 0xb99936e, 0x8af6a42, 0x3d762d5, 0xc74eec5, 0xa8c357a,
10000          0xf13afbc, 0x9917beb, 0xf2dc073, 0x28f0941, 0x6ce7df7, 0x306abf3,
10001          0xd6973c8, 0xa3c5f6f, 0x3677632, 0x640209b }
10002    },
10003    {
10004        { 0xe23aef7, 0xee872a2, 0xeb9b08e, 0xb497b6f, 0x3f33c63, 0xfb94d97,
10005          0x2b32315, 0x9ea1ff4, 0x49a4166, 0x537b492, 0xab4f8be, 0x89c7fe6,
10006          0xdad8f0f, 0xf68007f, 0x71b8474, 0xe56ef0b },
10007        { 0x3f333f9, 0x478b2e8, 0xb2607f5, 0x144e718, 0xa4c7ab5, 0x13aa605,
10008          0x1d0730d, 0xfc1fc99, 0x5ab3ea1, 0xe7a0437, 0x306d8d3, 0xc59986a,
10009          0x702a8b1, 0x24f6111, 0xe040ad2, 0x7741394 }
10010    },
10011    {
10012        { 0x60723a7, 0x34c6a25, 0xf4ea691, 0x8aabd0d, 0x5d7497f, 0x9d676a5,
10013          0x7d91fa4, 0x12c0957, 0x6479284, 0x581c7a8, 0xf4fd449, 0xa54f3da,
10014          0x4ef44cf, 0x2f89f3c, 0xc9ec97c, 0xfc266b5 },
10015        { 0x88b142a, 0xfcd3fbe, 0x4bd69c1, 0x9f3109f, 0xb5f5a6a, 0x08839c0,
10016          0x2e68303, 0x63ca850, 0xbba0a74, 0x2f0628d, 0x5d56b54, 0x743cccf,
10017          0x13e09fd, 0xbd4b066, 0xde2ba3e, 0x7a8415b }
10018    },
10019    {
10020        { 0xc076ab2, 0x2234a3b, 0x4977a98, 0xd6953e5, 0x31ebe2e, 0xc122158,
10021          0xbad78e2, 0x632145f, 0xa5c4b08, 0xd7ba78a, 0x998e32a, 0x6f4ea71,
10022          0x3485a63, 0x25900d2, 0x6a5176f, 0x97ac628 },
10023        { 0x1093f7b, 0x5df9118, 0xc844563, 0x2bf9829, 0x6272449, 0x525d99d,
10024          0xb5c8a18, 0x4281cb5, 0x0544a08, 0x35df278, 0xbaeb8f4, 0xf4c3d2d,
10025          0x5230447, 0xc7ff317, 0x5d2fbff, 0x6b4d764 }
10026    },
10027    {
10028        { 0x2b0c9cb, 0x4837f80, 0x8ce8418, 0xb65f816, 0x9fc1428, 0xdf66ea9,
10029          0x04ea7e8, 0x9788ee8, 0x8334e3c, 0x9eae900, 0xd6ba1b6, 0xbc91058,
10030          0xd7064b6, 0x634aba1, 0x397b368, 0x12d9bb3 },
10031        { 0xc413aa8, 0x0645c85, 0xac6b5e3, 0xb09dea6, 0x289a50b, 0x29a620d,
10032          0xbbcceb1, 0x104db3b, 0x87b3309, 0x42e4792, 0xec97f01, 0xdfc373e,
10033          0xb93f84e, 0xe953f94, 0x052dfbf, 0x3274b7f }
10034    },
10035    {
10036        { 0x1bd6fa9, 0x9d5670a, 0xdb6c4d4, 0xec42fc9, 0x1b42845, 0xaecd4ed,
10037          0x1b03549, 0x4eed90e, 0xbbab1fa, 0xeb3225c, 0x28a2816, 0x5345e1d,
10038          0x0b77d2a, 0x3741cfa, 0x7ea8caa, 0x712b19f },
10039        { 0x661853e, 0x42e6844, 0xe4a6e5d, 0x4cf4126, 0xc3649f6, 0x196a9cf,
10040          0xf21b6b1, 0x06621bc, 0x32e29ea, 0x887021c, 0x8c5680f, 0x5703aeb,
10041          0x660f6d7, 0x974be24, 0xc71864e, 0xaf09bad }
10042    },
10043},
10044{
10045    {
10046        { 0xa81b6d3, 0x3483535, 0xca037dc, 0x19e7301, 0x63ddfeb, 0x748cab7,
10047          0x6f01a38, 0xe5d87f6, 0x2795cd6, 0xbba4a5c, 0x615c36c, 0x411c5d4,
10048          0x706f412, 0xff48efc, 0x4b519df, 0x205bafc },
10049        { 0x5227110, 0xfcaa5be, 0x3ad0af0, 0x7832f46, 0x2642b1b, 0x34ef2c4,
10050          0x072f822, 0x7bbef7b, 0x923a616, 0x93cb0a8, 0x6d91ba7, 0x5df0236,
10051          0x42f7d21, 0x5da94f1, 0xa14e891, 0x3478298 }
10052    },
10053    {
10054        { 0xc831d39, 0xad79a0f, 0x4803c44, 0x24d1948, 0x86aeeb2, 0x4f8a864,
10055          0x926f6b9, 0x0ca284b, 0x1acd7cd, 0x501829c, 0x3d12c52, 0x9f6038b,
10056          0xf371ef5, 0x77223ab, 0x13bf4de, 0x2e03516 },
10057        { 0xb4468cc, 0x7a5a4f2, 0x470ae46, 0xdcea921, 0x11be696, 0xf23b7e8,
10058          0x720d6fb, 0xe59ad0d, 0x2983469, 0x9eacac2, 0xc4397ee, 0x4dd4110,
10059          0xcbe2675, 0x4ef85bd, 0xaa7c74b, 0xe4999f7 }
10060    },
10061    {
10062        { 0x8ea1e98, 0x031838c, 0x04d96a2, 0x539b383, 0x163956e, 0x5fbdef0,
10063          0xce3f52a, 0x6bd4d35, 0x55e897f, 0xe538c23, 0x472dd3f, 0x6078d3a,
10064          0xca9f452, 0x590241e, 0xfd7fc07, 0x2bc8495 },
10065        { 0xead4c8c, 0x23d0c89, 0x601c66e, 0x1ea55a9, 0x4f5b833, 0x41493c9,
10066          0xaa5a978, 0xc49a300, 0x0c69594, 0xc98bdc9, 0xccbdc8c, 0x4e44ced,
10067          0x6adccbf, 0xb0d4e91, 0x32c37ae, 0xd56e36b }
10068    },
10069    {
10070        { 0x5b93152, 0x052bd40, 0x4f1dbfa, 0x688b1d4, 0xbe5cc5f, 0xe77ba1a,
10071          0xa6ac543, 0x11f8a38, 0xe4bb988, 0x3355fd6, 0xf8dffb4, 0xdf29c5a,
10072          0x81f20ee, 0x751f589, 0xda9b7fb, 0x22a0f74 },
10073        { 0x6397b49, 0xec8f2bc, 0x3639201, 0xff59fc9, 0xa048264, 0xb7f130a,
10074          0xafdc4cc, 0xe156a63, 0xb13acaf, 0x0fd7c34, 0x0cb4999, 0x87698d4,
10075          0x7f26f24, 0x6d6ecae, 0x0f296e2, 0xae51fad }
10076    },
10077    {
10078        { 0xdd0f58d, 0xd0ad5eb, 0x5c67880, 0x6ec6a2c, 0x9af1e0f, 0xe1ce034,
10079          0x3996d32, 0x0801485, 0x5e69d20, 0x59af51e, 0xaa48ecf, 0x0ef743a,
10080          0x7dafcb0, 0x8d3d2ea, 0x89189b6, 0x4ac4fad },
10081        { 0xeae97f1, 0x92d91c2, 0x62b4662, 0xef5eca2, 0xb38b10a, 0x440b213,
10082          0xfc661da, 0xec90187, 0xf64cf8d, 0x85f3f25, 0x457ad1b, 0xcee53ca,
10083          0xf517672, 0x8deed4b, 0x4761828, 0x7706fb3 }
10084    },
10085    {
10086        { 0x17494fe, 0x1577d91, 0x2fd7239, 0x52d29be, 0x0186d37, 0x9a0eef0,
10087          0x27fe108, 0x241d0f5, 0xe6fb59f, 0x42824ba, 0x0d48c25, 0xb8d33df,
10088          0x47af4b0, 0xfffdb0a, 0x073b0b6, 0x534c601 },
10089        { 0x51c033b, 0xe6df359, 0x86c0f94, 0x3e1002b, 0x48fb9b6, 0xa7cb555,
10090          0xa7bbff8, 0x999818b, 0x84d8bf2, 0xe4ba3d6, 0x6358f0a, 0x53dbb32,
10091          0xf2568e8, 0xeebc1e2, 0xb3e0f68, 0xc6917eb }
10092    },
10093    {
10094        { 0x19f8d13, 0xbe1bbfc, 0x2d4795c, 0xc3951b6, 0xed535a9, 0x9371c49,
10095          0x68cebea, 0x77c389f, 0xa141d0e, 0xfc1a947, 0xde44f8b, 0x4b48d7a,
10096          0x8580a26, 0x3db1f05, 0x258b5fc, 0xeed1466 },
10097        { 0x9854b21, 0x5daa4a1, 0x1ab1ead, 0x5bfa46f, 0x59957eb, 0xc152e35,
10098          0xea48ada, 0xdc84277, 0xfc169b5, 0x68709cf, 0x720e617, 0xde50ce3,
10099          0xdd9a832, 0xe42f262, 0x2d6ce29, 0xddffd4d }
10100    },
10101    {
10102        { 0x8fa0a56, 0xd5ba557, 0xfafaf4c, 0x0d7d0f1, 0x38b63ed, 0x7666e41,
10103          0x5d87f02, 0x04e6513, 0xc958f32, 0xdca8866, 0x3ce2686, 0xaa8486d,
10104          0xf1cbcd3, 0xe3785ca, 0x03c8335, 0x8a9b114 },
10105        { 0x2e0ef60, 0x5c1dca2, 0x7d3fb20, 0x775af5b, 0x2b373a8, 0xe690ffc,
10106          0x28330e6, 0x30fe15d, 0xdd0f393, 0x8a1022b, 0x966a828, 0x6bd7364,
10107          0x949208a, 0x8d4b154, 0xb9d9828, 0xfb38c6b }
10108    },
10109},
10110{
10111    {
10112        { 0x0340ac2, 0x6d19764, 0xecab5ff, 0x969f473, 0xc458e42, 0xead46f7,
10113          0x1d00eed, 0x168646a, 0xe0ce0cf, 0xf70c878, 0x8d8d15a, 0xa7291d3,
10114          0xfdd10cc, 0x92cf916, 0x24f86d5, 0x6d36134 },
10115        { 0x2d5c4b4, 0xba50d17, 0x4626f15, 0xe0af502, 0xd76098a, 0x76f3809,
10116          0xd6caaa8, 0x433dc27, 0x70d97a7, 0x72dc67a, 0xf5c7355, 0x935b360,
10117          0x179bb31, 0xdbaac93, 0x7ed1a33, 0x7673848 }
10118    },
10119    {
10120        { 0x8f9fa0d, 0x8d1ca66, 0xa02f2bf, 0x4ed95d8, 0xf630d7b, 0xd19fc79,
10121          0xf46fa51, 0x0448ec4, 0x623bf3f, 0xb371dd8, 0xd650e94, 0xe94fabc,
10122          0xcd90a70, 0x3af3fca, 0x03ce3b7, 0x0f720c4 },
10123        { 0xd636c3b, 0x590814c, 0x4469945, 0xcf6928d, 0x484a4c6, 0x5843aaf,
10124          0xf9b4722, 0xb5a4c1a, 0x6cfb2f9, 0x25116b3, 0x32c2640, 0xf248cf0,
10125          0x27412a1, 0x8cd059e, 0x862fc5d, 0x866d536 }
10126    },
10127    {
10128        { 0x6de4a2e, 0x156e62f, 0xaafcc78, 0x0365af7, 0x19e925e, 0x65c8618,
10129          0xf8b2191, 0x4db5c01, 0xad564fa, 0x1fd26d1, 0x19c8610, 0x16bbc53,
10130          0x815f262, 0x0718eef, 0x27f83d1, 0x8684f47 },
10131        { 0xb0f48db, 0xa30fd28, 0x6ab8278, 0x6fef506, 0x1a652df, 0xd164e77,
10132          0xc6ebc8c, 0x5a486f3, 0xdc3132b, 0xb68b498, 0xd73323f, 0x264b6ef,
10133          0x69b2262, 0xc261eb6, 0x2a35748, 0xd17015f }
10134    },
10135    {
10136        { 0x7c4bb1d, 0x4241f65, 0xf5187c4, 0x5671702, 0x3973753, 0x8a9449f,
10137          0xcc0c0cd, 0x272f772, 0x58e280c, 0x1b7efee, 0x4b5ee9c, 0x7b32349,
10138          0x31142a5, 0xf23af47, 0xd62cc9e, 0x80c0e1d },
10139        { 0x675ffe3, 0xcbc05bf, 0x258ce3c, 0x66215cf, 0x28c9110, 0xc5d2239,
10140          0x2a69bc2, 0x30e12a3, 0x76a9f48, 0x5ef5e80, 0x2329d5f, 0x77964ed,
10141          0x8a72cf2, 0xdf81ba5, 0x6e1b365, 0x38ea70d }
10142    },
10143    {
10144        { 0x2f75c80, 0x1b18680, 0x698665a, 0x0c153a0, 0x522e8dd, 0x6f5a7fe,
10145          0x8ddfc27, 0x9673866, 0x0d3bdce, 0x7e421d5, 0x25001b2, 0x2d737cf,
10146          0x0e8490c, 0x568840f, 0xe30c8da, 0xea2610b },
10147        { 0x9561fd4, 0xe7b1bc0, 0x26decb0, 0xeda786c, 0x6a76160, 0x2236990,
10148          0x78a3da3, 0x371c714, 0x2a2d9bf, 0x1db8fce, 0x3292f92, 0x59d7b84,
10149          0x5a665f9, 0x8097af9, 0x542b7a9, 0x7cb4662 }
10150    },
10151    {
10152        { 0xc6b0c2f, 0xa5c53ae, 0x7312d84, 0xc4b8732, 0xc732736, 0xfc374cb,
10153          0x9310cc0, 0xa8d78fe, 0x65d1752, 0xd980e86, 0x6004727, 0xa62692d,
10154          0x0146220, 0x5d07928, 0x860fea5, 0xbd1fedb },
10155        { 0xb35d111, 0xcbc4f8a, 0x3e32f77, 0x5ba8cdf, 0xb614b93, 0xd5b71ad,
10156          0x2f8808d, 0x7b3a2df, 0x6ef2721, 0x09b89c2, 0x47c3030, 0x55a5054,
10157          0x2986ae6, 0x2104431, 0x2367d4c, 0x427a011 }
10158    },
10159    {
10160        { 0xc1942d8, 0xe9fe256, 0x96e3546, 0x9e7377d, 0xb0c1744, 0x43e734c,
10161          0x211fbca, 0x5f46821, 0x32b6203, 0x44f83dc, 0x6ad1d96, 0x8451308,
10162          0x2fbb455, 0x54dd519, 0x2f10089, 0xc2a1822 },
10163        { 0x1855bfa, 0x01055a2, 0x77078b4, 0x9e6d7b4, 0x30cea0e, 0x3f8df6d,
10164          0x32973f7, 0x81c2150, 0xc0b3d40, 0x17dd761, 0x50d0abe, 0x040424c,
10165          0x783deab, 0x5599413, 0x8f3146f, 0xde9271e }
10166    },
10167    {
10168        { 0xaf4a11d, 0x5edfd25, 0x7846783, 0x3a3c530, 0x73edd31, 0xb200868,
10169          0xfe0eef8, 0x74e00ec, 0x3dd78c7, 0xba65d2f, 0x71999f1, 0xab13643,
10170          0xde9a7e8, 0xfa9be5d, 0x87a8609, 0xeb146ce },
10171        { 0x65353e9, 0x76afd65, 0xd51ba1c, 0xfa7023d, 0x37ede4f, 0x7a09f22,
10172          0x0ba7a1b, 0xca08576, 0xb99950a, 0xd973882, 0xea5057a, 0xe894266,
10173          0x7f55e49, 0xd01c421, 0x5555679, 0x69cfb9c }
10174    },
10175},
10176{
10177    {
10178        { 0xc5d631a, 0x67867e7, 0x5bcf47b, 0x1de88c5, 0xafd1352, 0x8366d06,
10179          0x6e20337, 0xd7dbdef, 0x1253ec7, 0xb0f9e2f, 0x10ad240, 0x1be9845,
10180          0xf4a6118, 0x63ec533, 0x96ce633, 0xd5e4c5b },
10181        { 0x4df4a25, 0x1d0b6c3, 0x5a1b554, 0xef9486a, 0x47b6ef3, 0x2f0e59e,
10182          0x2ff84d7, 0x4d8042f, 0xda359c9, 0x3e74aa3, 0xd21c160, 0x1baa16f,
10183          0x0191cba, 0xb4cff21, 0xebc6472, 0x50032d8 }
10184    },
10185    {
10186        { 0x1fc1b13, 0xb6833e0, 0x1a5ad8f, 0x8a8b7ba, 0x622b820, 0xc0cafa2,
10187          0x738ed20, 0xc6663af, 0x8b18f97, 0xd894486, 0x774fbe4, 0xcf0c1f9,
10188          0x5be814f, 0xeedd435, 0xb57e543, 0xd81c02d },
10189        { 0x310bad8, 0x5e32afc, 0x9b813d1, 0x065bc81, 0x3142795, 0x8efc5fc,
10190          0x732d59c, 0x5006514, 0x2b5a3ce, 0x91e39df, 0xfaf4204, 0x2ad4477,
10191          0x4d9bd4f, 0x1a96b18, 0xa4d9c07, 0xc3fee95 }
10192    },
10193    {
10194        { 0x6b4ba61, 0xfac7df0, 0x061aaef, 0xa6ed551, 0x133f609, 0x35aa2d6,
10195          0x20ed13d, 0x420cfba, 0xea03d0c, 0x861c63e, 0xf936d6e, 0x75f0c56,
10196          0x3d9a3d5, 0xa25f68f, 0xcd9f66e, 0xba0b7fe },
10197        { 0x4680772, 0x292e135, 0xa73f405, 0x6f6a2db, 0x24ea9e4, 0xca6add9,
10198          0x268daaa, 0x81cfd61, 0xe6f147a, 0x7a4cb6c, 0xbded8f5, 0x8ec3454,
10199          0x11d61cb, 0xc8a893b, 0x7656022, 0x2256ffc }
10200    },
10201    {
10202        { 0x575cb78, 0x6b33271, 0xadcd23e, 0x560d305, 0xd6d834b, 0xeedbd3a,
10203          0x5a31e27, 0x614a64a, 0x47ee0c8, 0xe40b476, 0x8bd7c2c, 0x8ef4ff6,
10204          0x0b77727, 0xa5297fc, 0xbaf88ad, 0x8759208 },
10205        { 0x918df68, 0x86cfe64, 0xcdd882e, 0x9d60a73, 0xb953014, 0x546b642,
10206          0x8bbef55, 0xbaceae3, 0xf1c3467, 0xdf58e43, 0xe9f9bab, 0x99a83fe,
10207          0x57a4a8b, 0xcd52cbf, 0x8ae36ec, 0xf744e96 }
10208    },
10209    {
10210        { 0xa607124, 0xb945869, 0x440e6f6, 0x810dbe9, 0x738e381, 0x9911e60,
10211          0x343b80b, 0x51df68c, 0xf7a3f39, 0xe424336, 0x989015c, 0x2d32acb,
10212          0x31019e8, 0xa69b149, 0xec12f93, 0x8a31a38 },
10213        { 0x97c916a, 0x0d0d369, 0x8885372, 0xdc95f3b, 0x3549040, 0xcf1a261,
10214          0xabe95a2, 0x60f6f5e, 0xe141325, 0xa909e9f, 0x355c865, 0x7d598f2,
10215          0x931a9c9, 0x70c6442, 0xb423850, 0x2354a85 }
10216    },
10217    {
10218        { 0x97f9619, 0x4cdd224, 0xc22162e, 0x4776fff, 0x0cd31c2, 0xee5ec33,
10219          0xf209bb8, 0x7c04c10, 0x579e211, 0x35bbfde, 0x15cdfc2, 0x0e38325,
10220          0xe26ffa7, 0x657e6d3, 0xc65c604, 0xc66a7c3 },
10221        { 0xb45e567, 0x322acd7, 0x296db9b, 0x1589cf0, 0xba1db73, 0x1fd0bd3,
10222          0x9337a40, 0xe882610, 0xb3035c7, 0xf505a50, 0x6ed08d7, 0x4d5af06,
10223          0x5eda400, 0xb3c376b, 0x1944748, 0x9c7b700 }
10224    },
10225    {
10226        { 0x70c3716, 0xd768325, 0xdd540e0, 0xda62af0, 0x6580fea, 0x76b155d,
10227          0x32b5464, 0x4f42acc, 0x3f5b72b, 0x881bb60, 0xe68b9ba, 0x09c130e,
10228          0x5c50342, 0x37ede3b, 0xfd15e7d, 0xce61a9c },
10229        { 0x72605d0, 0xfff1d85, 0x062abc2, 0x62ac2d3, 0xfbe43dd, 0xa85e02e,
10230          0xa947020, 0x859d2ba, 0x111c20b, 0x2ebc8a9, 0xa656f66, 0x7f590a7,
10231          0x16b21a6, 0x0e13843, 0x00c7db6, 0x29b30c5 }
10232    },
10233    {
10234        { 0x906b8de, 0x61e55e2, 0x949974d, 0x6a97e96, 0x26eef67, 0x24b52b5,
10235          0x1aa595a, 0x512f536, 0x3c48fcb, 0x81cc7b8, 0x28115ad, 0xa64af23,
10236          0x3d44b8e, 0x9edf6f9, 0x1fe22e3, 0x68d7f7c },
10237        { 0x520d151, 0x2b2116a, 0x6aa3efb, 0x66a0b7d, 0x9b0f791, 0x48ae70a,
10238          0x037db88, 0xcf12174, 0x317d9f3, 0x36868cd, 0x22fc344, 0xb573059,
10239          0x46a5d23, 0xbaa8526, 0x37fc10d, 0xad65691 }
10240    },
10241},
10242{
10243    {
10244        { 0x12c78d5, 0xcf8e5f5, 0x805cdbd, 0xeb94d98, 0x2ab50b5, 0xad1dcdf,
10245          0xf33cd31, 0xf33c136, 0x10aeff5, 0x0d6226b, 0xf2f8fc5, 0xf7ff493,
10246          0xdf57165, 0x7e520d4, 0x05271a7, 0x41fbae5 },
10247        { 0x76480ba, 0x72c8987, 0x25f4523, 0x2608359, 0x49f5f01, 0xed36b8d,
10248          0xf3d49eb, 0x3bc1dce, 0x4940322, 0x30c1c1a, 0x7e0f731, 0x78c1cda,
10249          0x6d05a31, 0x51f2dc8, 0x07f3522, 0x57b0aa8 }
10250    },
10251    {
10252        { 0x71f88bc, 0x7ab628e, 0x8018f21, 0xcf585f3, 0x13d64f6, 0xdbbe3a4,
10253          0xec493a5, 0x0f86df1, 0x7725de9, 0x8355e6c, 0xe00fe1e, 0x3954ffe,
10254          0x9924e32, 0xbb8978f, 0x7812714, 0x1c19298 },
10255        { 0xaabca8b, 0x7c4ce3e, 0x9bf7019, 0xf861eb5, 0x682e541, 0x31a84fc,
10256          0xacd1b92, 0x2307ca9, 0x4bf2842, 0x6f8b6ce, 0xcb9f9a9, 0xde252ac,
10257          0x93c46d1, 0x7f0611d, 0x751dc98, 0x8e2bd80 }
10258    },
10259    {
10260        { 0xe27d54b, 0xf2fd8fb, 0xc248071, 0x2a1e37e, 0xab8f49a, 0x2fcc888,
10261          0xc18a9e5, 0x42c62a3, 0x70b2446, 0xe302908, 0xc5ac55d, 0x90277fa,
10262          0xd6dde41, 0x8d97d56, 0x5db04fe, 0xf4cf8a9 },
10263        { 0xd30d077, 0x3e280f5, 0x3cb3293, 0x2c90307, 0x24eb0dd, 0xe0be2ac,
10264          0x8bcb4f0, 0xa2d1a49, 0xcd0cd45, 0x16db466, 0x9a80232, 0x3b28aa7,
10265          0x17b008e, 0xdd7e52f, 0x868e4da, 0x20685f2 }
10266    },
10267    {
10268        { 0x7c7a486, 0x0a68c14, 0xc429633, 0xd8ef234, 0xffe7506, 0x470667b,
10269          0x8828d51, 0x55a13c8, 0x2e44bef, 0x5f32741, 0x5929f92, 0x537d92a,
10270          0x31c5cd5, 0x0a01d5b, 0x67eb3d7, 0xb77aa78 },
10271        { 0x8b82e4d, 0x36ec45f, 0xb37b199, 0x6821da0, 0xd7fa94e, 0x8af37aa,
10272          0x1085010, 0xf020642, 0x7e56851, 0x9b88678, 0x52948ce, 0x35f3944,
10273          0xafc1361, 0x125c2ba, 0x453e332, 0x8a57d0e }
10274    },
10275    {
10276        { 0x8043664, 0xefe9948, 0xdb1aa55, 0xb8b8509, 0x332523f, 0x1a2e5a9,
10277          0x1045c0f, 0x5e255dd, 0x7ae7180, 0xe68dd8a, 0x45bf532, 0x55f1cf3,
10278          0xe63a716, 0xe00722e, 0x6116bac, 0xd1c2138 },
10279        { 0x1c6d1f4, 0x626221f, 0x3773278, 0x240b830, 0x88def16, 0xe393a0d,
10280          0xca0495c, 0x229266e, 0xd3e4608, 0x7b5c6c9, 0x7927190, 0xdc559cb,
10281          0xc7b3c57, 0x06afe42, 0xb439c9b, 0x8a2ad0b }
10282    },
10283    {
10284        { 0xffc3e2f, 0xd7360fb, 0xfbd2e95, 0xf721317, 0x5748e69, 0x8cacbab,
10285          0x9054bb9, 0x7c89f27, 0xaa86881, 0xcbe50fa, 0x75206e4, 0x7aa05d3,
10286          0xc752c66, 0x1ea01bc, 0x1f2c2bc, 0x5968cde },
10287        { 0x09a853e, 0x487c55f, 0xe09204b, 0x82cbef1, 0xabd8670, 0xad5c492,
10288          0xf12dcb3, 0x7175963, 0xbf6aa06, 0x7a85762, 0xf8d5237, 0x02e5697,
10289          0x37c6157, 0xccf7d19, 0xc2fd59c, 0x3b14ca6 }
10290    },
10291    {
10292        { 0x1b9f77f, 0x5e610d8, 0x051b02f, 0x85876d0, 0xb8020dd, 0x5d81c63,
10293          0xd6ce614, 0xd0b4116, 0xaa8bf0c, 0x91810e5, 0xcbf8c66, 0xf27f91f,
10294          0x38480ae, 0x2e5dc5f, 0xbec7633, 0x0a13ffe },
10295        { 0x2bf6af8, 0x61ff649, 0x641f827, 0xe6aef2d, 0x5de5f04, 0xad5708a,
10296          0xcdfee20, 0xe5c3a80, 0x68fcfa2, 0x88466e2, 0xd6e1d7b, 0x8e5bb3a,
10297          0xed236b8, 0xa514f06, 0xa5f5274, 0x51c9c7b }
10298    },
10299    {
10300        { 0xf9bc3d8, 0xa19d228, 0x3381069, 0xf89c3f0, 0x5c3f379, 0xfee890e,
10301          0x32fb857, 0x3d3ef3d, 0x5b418dd, 0x3998849, 0xc46e89a, 0x6786f73,
10302          0x9e0f12f, 0x79691a5, 0x3bc022b, 0x76916bf },
10303        { 0x2cd8a0a, 0xea073b6, 0x102fdbc, 0x1fbedd4, 0xcb9d015, 0x1888b14,
10304          0x76655f7, 0x98f2cfd, 0x59f0494, 0xb9b5910, 0xe6986a3, 0xa3dbbe1,
10305          0xeaf2b04, 0xef016a5, 0xcd2d876, 0xf671ba7 }
10306    },
10307},
10308{
10309    {
10310        { 0x1ae05e9, 0x1dae3bf, 0x1f21fef, 0x6a02996, 0x7aec3c6, 0x95df2b9,
10311          0xd83189b, 0x9abbc5a, 0x2d13140, 0xaf994af, 0x86aa406, 0xc3f8846,
10312          0x75284c5, 0xcd77e50, 0x2a9a4d7, 0x1c1e13d },
10313        { 0x744b89d, 0x7f8815d, 0x2ba673e, 0xb189133, 0xd594570, 0x55ea93c,
10314          0xd61b041, 0x19c8a18, 0x8d2c580, 0x938ebaa, 0x05ba078, 0x9b4344d,
10315          0x8eaf9b7, 0x622da43, 0x9fea368, 0x809b807 }
10316    },
10317    {
10318        { 0xc33b7a2, 0x3780e51, 0x387b1c8, 0xd7a205c, 0x4be60e4, 0x79515f8,
10319          0x1e18277, 0xde02a8b, 0xf0d9150, 0x4645c96, 0xe0b3fd1, 0x45f8acb,
10320          0x9b53ac3, 0x5d532ba, 0xb0557c9, 0x7984dcd },
10321        { 0x8a92f01, 0x5ae5ca6, 0x9d569ca, 0xd2fbb3c, 0x0c297c1, 0x668cc57,
10322          0x6295e89, 0xa482943, 0xa33ad40, 0xf646bc1, 0xc3f425d, 0x066aaa4,
10323          0xd005de2, 0x23434cd, 0xdb35af4, 0x5aca9e9 }
10324    },
10325    {
10326        { 0x6877c56, 0x2bca35c, 0xf0ddd7d, 0xab864b4, 0x404f46c, 0x5f6aa74,
10327          0x539c279, 0x72be164, 0xe0283cf, 0x1b1d73e, 0xad583d9, 0xe550f46,
10328          0xe739ad1, 0x4ac6518, 0x8d42100, 0x6b6def7 },
10329        { 0xfa8468d, 0x4d36b8c, 0x5a3d7b8, 0x2cb3773, 0x5016281, 0x577f86f,
10330          0x9124733, 0xdb6fe5f, 0xe29e039, 0xacb6d2a, 0x580b8a1, 0x2ab8330,
10331          0x643b2d0, 0x130a4ac, 0x5e6884e, 0xa7996e3 }
10332    },
10333    {
10334        { 0x60a0aa8, 0x6fb6277, 0xcbe04f0, 0xe046843, 0xe6ad443, 0xc01d120,
10335          0xabef2fc, 0xa42a05c, 0x12ff09c, 0x6b793f1, 0xa3e5854, 0x5734ea8,
10336          0x775f0ad, 0xe482b36, 0xf864a34, 0x2f4f60d },
10337        { 0x84f2449, 0xf521c58, 0x9186a71, 0x58734a9, 0xac5eacc, 0x157f5d5,
10338          0x248ee61, 0x858d9a4, 0x48149c3, 0x0727e6d, 0xac9ec50, 0xd5c3eaa,
10339          0x20ee9b5, 0xa63a64a, 0x87be9de, 0x3f0dfc4 }
10340    },
10341    {
10342        { 0xb13e3f4, 0x836349d, 0x3e9316d, 0xebdd026, 0x324fd6c, 0x3fd61e8,
10343          0x0964f41, 0x85dddfa, 0x52add1b, 0x06e72de, 0x8c4a9e2, 0xb752cff,
10344          0xfdf09f7, 0x53b0894, 0x0bc24fd, 0xd5220ab },
10345        { 0xfb1981a, 0x8442b35, 0x3edd701, 0xa733a37, 0xd0ef089, 0x42b60c3,
10346          0x46e7bca, 0xa1b16ec, 0xa09aaf4, 0xc0df179, 0x638f3a1, 0xcd4f187,
10347          0x9eab1c2, 0x9af64f7, 0xd1d78e3, 0x86fed79 }
10348    },
10349    {
10350        { 0xfe29980, 0x42c8d86, 0x6575660, 0x6657b81, 0x80f92ca, 0x82d52c6,
10351          0x02d42be, 0x8587af1, 0x6e8bdf0, 0xb515131, 0xc333495, 0x706e2d9,
10352          0x9673064, 0xd53601a, 0x8219099, 0x27b1fbb },
10353        { 0x705f7c8, 0x3f0929d, 0xf3d6e6f, 0xff40b10, 0x026af5c, 0x673c703,
10354          0xe25a422, 0x2c1dce4, 0x3dad8b6, 0x5348bd7, 0xbe2c329, 0xc39b6b6,
10355          0xb921084, 0x47854ff, 0xb391f20, 0xb347b8b }
10356    },
10357    {
10358        { 0xeb9b774, 0x79fc841, 0xb4b6c1d, 0xf32da25, 0xfe492cb, 0xcbba76b,
10359          0xd623903, 0x76c51fc, 0xcf0705a, 0x114cf6f, 0x7815daf, 0x6b72049,
10360          0x473382e, 0x630b362, 0x9704db5, 0xbf40c3a },
10361        { 0xc5456eb, 0xa8a9ddc, 0x72f2dc1, 0x2b4472a, 0xd6d6ef3, 0x9874444,
10362          0xa0ba5ed, 0x27e8d85, 0x194849f, 0x5d225b4, 0xebaa40d, 0xe852cd6,
10363          0x8d4bf3f, 0xb669c24, 0x2343991, 0xa8601eb }
10364    },
10365    {
10366        { 0x59502d3, 0x8a04854, 0xe269a7b, 0xcab27ee, 0x4875ada, 0x4179307,
10367          0xe2405f9, 0x179e685, 0x7b28963, 0x0d7b698, 0x422a43e, 0x80c9db8,
10368          0xa0f43ee, 0xf5ff318, 0x4ba7aa7, 0x7a92805 },
10369        { 0x0c0834e, 0xa5c79fe, 0x1f849ec, 0x837ca0d, 0x628ab7b, 0xfe0d7fa,
10370          0x6edd19a, 0x94bcb95, 0x2226fbf, 0xa18bc93, 0xaad54a3, 0x2795379,
10371          0x371129e, 0xceeacf8, 0xa588be5, 0x65ca57f }
10372    },
10373},
10374{
10375    {
10376        { 0x2caa330, 0x7a578b5, 0xd8ca34a, 0x7c21944, 0x6447282, 0x6c0fbbb,
10377          0xf90b2e5, 0xa8a9957, 0x6586b71, 0xbbe1066, 0x49138a2, 0x716a902,
10378          0xe7ed66d, 0x2fa6034, 0x2b9916a, 0x56f77ed },
10379        { 0xbddefb3, 0x69f1e26, 0x8c08420, 0xa497809, 0x09bc184, 0xc3377eb,
10380          0xbe6dade, 0x796ce0c, 0xd103bbb, 0x3be0625, 0x992685c, 0x01be27c,
10381          0x7755f9f, 0xc0e2559, 0x1c0dbfa, 0x165c40d }
10382    },
10383    {
10384        { 0x659c761, 0xc63a397, 0x630fbad, 0x10a0e5b, 0x655ac56, 0xf21e8a6,
10385          0xc1181e2, 0xe8580fa, 0x0a84b5c, 0xbfc2d9c, 0x7afd5d1, 0x2cdbaff,
10386          0xf61e85a, 0x95f1182, 0x719eaf4, 0x1173e96 },
10387        { 0xc6de8b9, 0xc06d55e, 0xafcbcaa, 0x1b4c8eb, 0xbc2bbcd, 0x52af5cb,
10388          0x77bcd10, 0x564fab8, 0xae85a6e, 0xfd53a18, 0x94c712f, 0x2257859,
10389          0x1352121, 0x29b11d7, 0xc40491a, 0xab1cb76 }
10390    },
10391    {
10392        { 0xce32eb4, 0xb4e8ca8, 0xb250b49, 0x7e484ac, 0xa3e31a2, 0x062c6f7,
10393          0x625d1fc, 0x497fd83, 0x362dda7, 0x98f821c, 0x6be3111, 0xcae1f8f,
10394          0x5d4fa42, 0x9077e95, 0xa65855a, 0xa589971 },
10395        { 0x28832a9, 0xda6321d, 0x3936e9e, 0xf9ef5dc, 0xc9797ef, 0xa37f117,
10396          0xdb581be, 0x0eb3c80, 0xbaa0002, 0x207c5c4, 0xf38faa0, 0xc0401b5,
10397          0xd0f1e6e, 0xceee523, 0xd1f0045, 0x8d27a5f }
10398    },
10399    {
10400        { 0xcf0af29, 0x9411063, 0x89a6693, 0x3043857, 0x640145e, 0x9a9fb8f,
10401          0x54832eb, 0x7d82fe9, 0x898c520, 0xf2789e1, 0xf948dc0, 0x448b402,
10402          0x68996dd, 0xeca8fdf, 0xa149b2f, 0x22227e9 },
10403        { 0x8e62d6a, 0x63509ff, 0x8c9c57f, 0xe98d81c, 0x1fe3bed, 0xd387407,
10404          0x539538f, 0xf1db013, 0x48418ce, 0xb04092e, 0xd6d9d4d, 0xbbf8e76,
10405          0x2cec5ae, 0x2ea9cda, 0x5078fa9, 0x8414b3e }
10406    },
10407    {
10408        { 0xd68a073, 0x5ad1cdb, 0xc18b591, 0xd4cedaf, 0x8e4c1c9, 0x7826707,
10409          0x9ca302a, 0x9b8d920, 0x326115b, 0x3101bd2, 0x4c2717a, 0x6f154b5,
10410          0x263e84b, 0x618c31b, 0xbbd6942, 0x12c4138 },
10411        { 0x80da426, 0xf9ead25, 0x47d9680, 0xe748e99, 0x8a4210e, 0x9b396a3,
10412          0xf4b8f72, 0xfaf03dd, 0x66159e7, 0xbd94a52, 0x1d4c7cb, 0x5e73049,
10413          0x7910f38, 0x31d1f9a, 0x08d6dd1, 0x4fd10ca }
10414    },
10415    {
10416        { 0x9f2331e, 0x4f510ac, 0x7e3dcc2, 0xee872dc, 0xa0a0c73, 0x4a11a32,
10417          0xaa5a630, 0x27e5803, 0x7af4a8a, 0xe5ae503, 0x9fffeb0, 0x2dcdeba,
10418          0x719d91f, 0x8c27748, 0xb9cc61c, 0xd3b5b62 },
10419        { 0xcca7939, 0x998ac90, 0x64514e5, 0xc22b598, 0xb35738a, 0x950aaa1,
10420          0xdab0264, 0x4b208bb, 0xa557d2e, 0x6677931, 0xf7c17d3, 0x2c696d8,
10421          0x3e15c51, 0x1672d4a, 0x3db0e82, 0x95fab66 }
10422    },
10423    {
10424        { 0x6ff205e, 0x3d42734, 0x0ea9fbe, 0x7f187d9, 0x466b2af, 0xbd9367f,
10425          0x03daf2f, 0x188e532, 0x27b54d8, 0xefe1329, 0xef70435, 0x14faf85,
10426          0x1ec95c4, 0xa506128, 0xc22cba7, 0xad01705 },
10427        { 0x6197333, 0x7d2dfa6, 0x8b4f6ed, 0xedd7f07, 0x75df105, 0xe0cb685,
10428          0x80f76bc, 0x47c9ddb, 0x9073c54, 0x49ab531, 0xe607f44, 0x845255a,
10429          0xcc74b7c, 0x0b4ed9f, 0x0f5c3a6, 0xcfb52d5 }
10430    },
10431    {
10432        { 0xc278776, 0x545c7c6, 0x98c30f0, 0x92a39ae, 0xd2f4680, 0x8aa8c01,
10433          0x6b7f840, 0xa5409ed, 0xdcb24e7, 0x0c450ac, 0xc5770d9, 0x5da6fb2,
10434          0x8658333, 0x5b8e8be, 0x67ea4ad, 0xb26bf4a },
10435        { 0xc7d91fa, 0x2e30c81, 0x0eeb69f, 0x6e50a49, 0xee4bc26, 0x9458c2b,
10436          0x33be250, 0x419acf2, 0x87881ab, 0x79d6f81, 0x403b1be, 0x694565d,
10437          0x234fe1d, 0x34b3990, 0x2132b38, 0x60997d7 }
10438    },
10439},
10440{
10441    {
10442        { 0x26975dc, 0x00a9741, 0x6cf94e7, 0x42161c4, 0xc64ed99, 0xcc9fe4b,
10443          0x4680570, 0x020019a, 0x698da0d, 0x885595a, 0x77dd962, 0x008444b,
10444          0xa4fea0e, 0xbf3c22d, 0x2c81245, 0xc463048 },
10445        { 0x793ab18, 0xcb248c5, 0xeb4320b, 0x4dc7a20, 0x1572b7d, 0x9a0906f,
10446          0xf9ac20f, 0xd5b3019, 0x34520a3, 0x79b1bf5, 0x69b5322, 0x788dfe8,
10447          0x455b7e2, 0x9a05298, 0x016bca9, 0x2f4aecb }
10448    },
10449    {
10450        { 0x8745618, 0x414d379, 0xb7c983c, 0x64ba22e, 0x9f9d532, 0x9a5d19f,
10451          0x44a80c8, 0x81a00d8, 0xcae98d6, 0xb9e24f5, 0xaca965a, 0x6c3769c,
10452          0xf6e4e6d, 0x50d6081, 0x54422a6, 0x0d96980 },
10453        { 0x5cdd790, 0xbd7e792, 0x6a35219, 0xcff65da, 0x8b60ebe, 0x40dc363,
10454          0x92a50dc, 0x84bee74, 0x15ad65e, 0x57d4be4, 0x1a6d1d3, 0xc54256b,
10455          0x45717cc, 0x141c649, 0xcd1c736, 0x05eb609 }
10456    },
10457    {
10458        { 0x1e3c7ec, 0xfd52eab, 0x9f24895, 0xa4a5eca, 0x79fdb83, 0xaaa2a8d,
10459          0x72bdfda, 0xd105e60, 0x681d97e, 0x59e6ae2, 0x8e8077f, 0xfedf8e0,
10460          0x629e462, 0xb06d0ad, 0x96fa863, 0x8c7c2d0 },
10461        { 0xee8fc91, 0x5eecc4c, 0x9e61174, 0x5e83ab2, 0xb28c02d, 0x1fd8925,
10462          0x2072864, 0x93be538, 0x24c984e, 0xda0c886, 0xa008286, 0xdcf9f0c,
10463          0xa58ba75, 0x1ecb5a6, 0xc2e3c83, 0x1d9b890 }
10464    },
10465    {
10466        { 0xeeee062, 0x19e866e, 0x4f7b387, 0x31c1c7f, 0x1c06652, 0x9be6018,
10467          0x2b68bbb, 0xc00a93a, 0x9d52b2b, 0x54c65d6, 0xe8b744a, 0x4591416,
10468          0x9a64ab6, 0x641bcca, 0xab08098, 0xf22bcb1 },
10469        { 0xf1f726c, 0x3c0db8f, 0x9d2e6a6, 0x4f5739e, 0x45c9530, 0x5cb669b,
10470          0x7b472d0, 0x861b04e, 0x894da77, 0x3e30515, 0xc9ac39b, 0x3344685,
10471          0x73bdd29, 0x9e17305, 0x808dc85, 0x9cac12c }
10472    },
10473    {
10474        { 0x5e27087, 0xf152b86, 0x90a580e, 0x267bd85, 0x8baafc1, 0xba79cec,
10475          0x9442686, 0x6140ab1, 0x5b31693, 0xa67090c, 0x28b4117, 0x50a103a,
10476          0x0ddc08f, 0x7722e61, 0xe6569b2, 0x5d19d43 },
10477        { 0x5962bf6, 0x70e0c52, 0xfb5fb02, 0x808e316, 0x5b667be, 0x3fb80da,
10478          0xfcfacec, 0x8aa366e, 0x134280e, 0xcb0b3e7, 0xcd7d944, 0x0bf1de4,
10479          0xd092df5, 0x0cd23be, 0xa153a0c, 0xc9a6a79 }
10480    },
10481    {
10482        { 0x2d5a4b7, 0x1c69ad0, 0xd9e6f4a, 0x4bb28d0, 0xa984fc6, 0x815308c,
10483          0x9037ca5, 0x40929c7, 0x1bd0357, 0x0ea2b49, 0x42aad4e, 0xec17e5b,
10484          0x18e7235, 0x1f32ade, 0xa96a9d3, 0xbc60b05 },
10485        { 0xe20f707, 0x3b0229a, 0x56bdfad, 0xd635050, 0xd8b2e1e, 0xac2d922,
10486          0x235c748, 0x92b2998, 0xd766f97, 0x6002c3a, 0x1a2a862, 0x9919800,
10487          0xb58b684, 0x2af7567, 0xaaafce5, 0xd8fe707 }
10488    },
10489    {
10490        { 0x5df7a4b, 0x54487ab, 0xc57ccc2, 0x51cccde, 0x7510b53, 0x2394327,
10491          0xf555de3, 0x3a09f02, 0x1be484d, 0xa696aec, 0x37817a2, 0x56f459f,
10492          0x623dcb4, 0x8d8f61c, 0x5335656, 0xc52223c },
10493        { 0xb49914a, 0xf634111, 0x8e4f9bb, 0xbf8e1ab, 0xf4dba02, 0x2f59578,
10494          0xe004319, 0x2a94199, 0x654d005, 0x87931f0, 0x6fa0814, 0x7df57d9,
10495          0xa154031, 0xc8da316, 0x41f658b, 0x2a44ac0 }
10496    },
10497    {
10498        { 0x9e34ac6, 0xfb5f4f8, 0x97790f2, 0x0a1b10b, 0x4b8a06c, 0x58fe4e7,
10499          0x955f27c, 0x10c1710, 0xd5ebe19, 0x77b798a, 0x1f1c2dc, 0xaf1c35b,
10500          0xa1f8d69, 0xc25b8e6, 0xf76bf23, 0x49cf751 },
10501        { 0x436f7b7, 0x15cb2db, 0x7e74d1a, 0x186d7c2, 0xc00a415, 0x60731de,
10502          0x15f0772, 0xea1e156, 0x714463f, 0xf02d591, 0x51adeb1, 0x26a0c64,
10503          0xcc5229e, 0x20174cd, 0xefd512a, 0xb817e50 }
10504    },
10505},
10506};
10507
10508static const ge448_precomp base_i[16] = {
10509    {
10510        { 0x70cc05e, 0x26a82bc, 0x0938e26, 0x80e18b0, 0x511433b, 0xf72ab66,
10511          0x412ae1a, 0xa3d3a46, 0xa6de324, 0x0f1767e, 0x4657047, 0x36da9e1,
10512          0x5a622bf, 0xed221d1, 0x66bed0d, 0x4f1970c },
10513        { 0x230fa14, 0x08795bf, 0x7c8ad98, 0x132c4ed, 0x9c4fdbd, 0x1ce67c3,
10514          0x73ad3ff, 0x05a0c2d, 0x7789c1e, 0xa398408, 0xa73736c, 0xc7624be,
10515          0x03756c9, 0x2488762, 0x16eb6bc, 0x693f467 }
10516    },
10517    {
10518        { 0x6ff2f8f, 0x2817328, 0xda85757, 0xb769465, 0xfd6e862, 0xf7f6271,
10519          0x8daa9cb, 0x4a3fcfe, 0x2ba077a, 0xda82c7e, 0x41b8b8c, 0x9433322,
10520          0x4316cb6, 0x6455bd6, 0xb9108af, 0x0865886 },
10521        { 0x88ed6fc, 0x22ac135, 0x02dafb8, 0x9a68fed, 0x7f0bffa, 0x1bdb676,
10522          0x8bb3a33, 0xec4e1d5, 0xce43c82, 0x56c3b9f, 0xa8d9523, 0xa6449a4,
10523          0xa7ad43a, 0xf706cbd, 0xbd5125c, 0xe005a8d }
10524    },
10525    {
10526        { 0x2030034, 0xa99d109, 0x6f950d0, 0x2d8cefc, 0xc96f07b, 0x7a920c3,
10527          0x08bc0d5, 0x9588128, 0x6d761e8, 0x62ada75, 0xbcf7285, 0x0def80c,
10528          0x01eedb5, 0x0e2ba76, 0x5a48dcb, 0x7a9f933 },
10529        { 0x2f435eb, 0xb473147, 0xf225443, 0x5512881, 0x33c5840, 0xee59d2b,
10530          0x127d7a4, 0xb698017, 0x86551f7, 0xb18fced, 0xca1823a, 0x0ade260,
10531          0xce4fd58, 0xd3b9109, 0xa2517ed, 0xadfd751 }
10532    },
10533    {
10534        { 0xeb5eaf7, 0xdf9567c, 0x78ac7d7, 0x110a6b4, 0x4706e0b, 0x2d33501,
10535          0x0b5a209, 0x0df9c7b, 0x568e684, 0xba4223d, 0x8c3719b, 0xd78af2d,
10536          0xa5291b6, 0x77467b9, 0x5c89bef, 0x079748e },
10537        { 0xdac377f, 0xe20d3fa, 0x72b5c09, 0x34e8669, 0xc40bbb7, 0xd8687a3,
10538          0xd2f84c9, 0x7b3946f, 0xa78f50e, 0xd00e40c, 0x17e7179, 0xb875944,
10539          0xcb23583, 0x9c7373b, 0xc90fd69, 0x7ddeda3 }
10540    },
10541    {
10542        { 0x6ab686b, 0x3d0def7, 0x49f7c79, 0x1a467ec, 0xc8989ed, 0x3e53f4f,
10543          0x430a0d9, 0x101e344, 0x8ad44ee, 0xa3ae731, 0xae1d134, 0xaefa6cd,
10544          0x824ad4d, 0xaa8cd7d, 0xed584fc, 0xef1650c },
10545        { 0x4f4754f, 0xa74df67, 0xef3fb8b, 0xf52cea8, 0x2971140, 0x47c32d4,
10546          0xa256fbb, 0x391c15d, 0xa605671, 0xc165fab, 0x87993b9, 0xf2518c6,
10547          0xbd5a84d, 0x2daf7ac, 0x98f12ae, 0x1560b62 }
10548    },
10549    {
10550        { 0x54dc10a, 0xef4da02, 0x5940db8, 0x6311865, 0x82f2948, 0xe20b149,
10551          0x5581dba, 0x67b9377, 0x04f5029, 0x422ee71, 0x5122d34, 0x5d440db,
10552          0x1a4c640, 0xb1e56d7, 0xc2408ee, 0xbf12abb },
10553        { 0x016af01, 0x0cc9f86, 0xf3d8cab, 0x88366ab, 0xa2efe12, 0x85dda13,
10554          0x5d00674, 0x390df60, 0x6d187f7, 0xf18f580, 0xf0c5d20, 0x28c900f,
10555          0x3e01733, 0xad30812, 0x54bf2fd, 0x42d35b5 }
10556    },
10557    {
10558        { 0x2ffb1f1, 0x009135f, 0x8f9c605, 0x099fc7e, 0x26bfa5a, 0xcc67da6,
10559          0x344552b, 0xc186d12, 0x1b339e1, 0xb523250, 0xc9708c5, 0x70a544f,
10560          0x1e928e7, 0x06baaec, 0xef0f50f, 0x0baedd2 },
10561        { 0xbf479e5, 0x535d6d8, 0xe4ec3e9, 0x156e536, 0xddb9be2, 0x3165741,
10562          0x59fd736, 0x988af71, 0x2e33ddd, 0x13d8a78, 0x4e69002, 0x5460421,
10563          0x804a268, 0x34d56e0, 0x0e52a4c, 0xc59b84f }
10564    },
10565    {
10566        { 0x24729d9, 0x525d45f, 0x8712327, 0x5768aba, 0x43035db, 0xa25e43b,
10567          0x927ef21, 0x15a1ee8, 0x6056112, 0xa785d21, 0xd508af9, 0x45e2fbf,
10568          0x37ba969, 0xb6f721a, 0x216d8d3, 0x30d6d8c },
10569        { 0x52074c3, 0x3065e08, 0x2a0684e, 0xfa40b4a, 0x763f955, 0x851325a,
10570          0x9f25900, 0xd4ef19c, 0xf665756, 0x799c869, 0x3312990, 0x7b05222,
10571          0x28db802, 0xc986c2b, 0x28ade0a, 0xf48fb8f }
10572    },
10573    {
10574        { 0x1649b68, 0x1e46173, 0x5beb9dc, 0xa96e5d6, 0x481935d, 0x765ddff,
10575          0x9f3bf2a, 0x6cf132c, 0x7c35658, 0x9f6c5c9, 0x4696e60, 0x99cd139,
10576          0x9c0d5e4, 0x99fa924, 0x8845a95, 0x1acd063 },
10577        { 0x3636087, 0x0b06541, 0xea17b7f, 0xea20e78, 0x6161967, 0x20afc5f,
10578          0xdc81028, 0xfd6c8a2, 0xe32c8fd, 0x4ef1357, 0x00e4a88, 0x8aa4004,
10579          0x48cb82f, 0xd6fcaef, 0xb3cd4fa, 0x7ba7c6d }
10580    },
10581    {
10582        { 0xd19c7ab, 0xf843473, 0xc655c4d, 0x968e76d, 0xc4b9c2f, 0x52c87d9,
10583          0xe4aa082, 0x65f641a, 0x33c3603, 0x491a397, 0x5810098, 0xa606ffe,
10584          0x8bf8ad4, 0x09920e6, 0x6db7882, 0x691a0c8 },
10585        { 0xa4d3ef5, 0x5205883, 0xacf2efe, 0xee839b7, 0xc00ca66, 0x4b78e2a,
10586          0xf9fcb91, 0xbe3f071, 0xbf6943a, 0x61e66c9, 0x061b79d, 0xe9b4e57,
10587          0x56c06bd, 0x8d1b01b, 0xdf76ae5, 0x0dfa315 }
10588    },
10589    {
10590        { 0xf1fd093, 0x803df65, 0x489b77e, 0x1cd6523, 0xc20e295, 0x2cd2e15,
10591          0x9b912d1, 0xcd490be, 0x2e886d2, 0xdd9a2ff, 0xfe9d72a, 0xa3c836d,
10592          0x298e0c1, 0xfcad5f2, 0x4bcf067, 0xed126e2 },
10593        { 0x3dc81bc, 0x1e33953, 0xece6a08, 0xbea4d76, 0x991b252, 0x1d15de3,
10594          0xe6daf97, 0x74cc5cf, 0x0826493, 0x5ad343f, 0x1064049, 0x2d38a47,
10595          0xffcfa4d, 0xf7f47b9, 0x418066c, 0xef14490 }
10596    },
10597    {
10598        { 0x9bb55ab, 0x4e7f86b, 0x3f496a3, 0x310d785, 0x0dec42c, 0xbd682fc,
10599          0x411d32a, 0xbde047a, 0xc5a5ea2, 0xea639b4, 0xba08fa1, 0x5052078,
10600          0x07729f2, 0xc968b23, 0x23d3e28, 0x567b5a6 },
10601        { 0x977fbf7, 0x171e825, 0xbe990aa, 0x0319c70, 0xe12cd69, 0x8f65023,
10602          0xf5015e6, 0x1fb9b19, 0x3568a7c, 0x0083f60, 0x1f3c5ac, 0xba3d30b,
10603          0x3d7a988, 0xe7b509d, 0xcd0f6b6, 0x2318b99 }
10604    },
10605    {
10606        { 0x93ab2cf, 0x54d3b87, 0xd2d8306, 0x366abea, 0xd7a4977, 0x66e8eb6,
10607          0xae0072e, 0xa61888c, 0xdbc3315, 0x9eeeef5, 0x163e7f5, 0x93f09db,
10608          0x59ade9a, 0xee90959, 0xce59be0, 0xaf7f578 },
10609        { 0x5ece59e, 0x24bfd8d, 0x3689523, 0x8aa698b, 0x2de92cf, 0xa9a65de,
10610          0xa6ad300, 0xec11dbc, 0x09f88ca, 0x217f3fa, 0xb4d6af7, 0xf6c33e3,
10611          0x1d86d2d, 0xcd3bfa2, 0x5f13f25, 0x1497f83 }
10612    },
10613    {
10614        { 0xcd03d1d, 0xa579568, 0xe158af6, 0xd717cda, 0x389a19f, 0x59eda97,
10615          0x099e99c, 0xb32c370, 0xdabb591, 0xa2dba91, 0x77c2c97, 0x6d697d5,
10616          0xd43fa6d, 0x5423fc2, 0x0b382bf, 0x56ea8a5 },
10617        { 0xd80c11a, 0x4a987ba, 0x7d590a5, 0xe4cde21, 0xf97e559, 0x3dd8860,
10618          0x43b593c, 0xff45e25, 0x5343cb5, 0x00eb453, 0x7bbfbdd, 0x06b9b99,
10619          0x16aea24, 0x4da36b7, 0x57a624e, 0x2476517 }
10620    },
10621    {
10622        { 0x3474e0d, 0x32207d0, 0xb41cc73, 0x3ffbf04, 0x319eb39, 0x5c4dc45,
10623          0x758b463, 0xfee29be, 0xc30c7a7, 0xcc8a381, 0x9fe0e53, 0x147f4e4,
10624          0xe35a2de, 0x05b2e26, 0x92f3666, 0x4362f02 },
10625        { 0x8474b85, 0x0476d0c, 0xccaf108, 0x9d8c65f, 0x1d54b6a, 0xf58d404,
10626          0xf38e4b0, 0x3ee6862, 0x3b44f54, 0x7c7c9d5, 0x0fb0db5, 0x36a3fd8,
10627          0x18a8ac8, 0xfcd94ba, 0x8f35c05, 0xc1b1d56 }
10628    },
10629    {
10630        { 0x1bdd30d, 0x16539fc, 0x8df4afb, 0x1356e53, 0x5a1aedb, 0xc0545d8,
10631          0x489396b, 0xeb2037a, 0x5660894, 0x897fcbd, 0xb7d104a, 0x02a58a9,
10632          0xc96b980, 0x57fa24c, 0x5bd8946, 0xf6448e3 },
10633        { 0x8805c83, 0xee72741, 0x992cfc6, 0x10fa274, 0x9e66b21, 0x9514193,
10634          0xbd08009, 0xe0ffa44, 0x20da22b, 0x1743322, 0x59e6831, 0x4891ff3,
10635          0xa7d687b, 0x407ed73, 0x51d99cf, 0x2fb4e07 }
10636    },
10637};
10638#endif
10639
10640/* Set the 0 point.
10641 *
10642 * p  [in]  Point to set to 0.
10643 */
10644static WC_INLINE void ge448_0(ge448_p2 *p)
10645{
10646    fe448_0(p->X);
10647    fe448_1(p->Y);
10648    fe448_1(p->Z);
10649}
10650
10651/* Set the precompute point to 0.
10652 *
10653 * p  [in]  Precompute point to set.
10654 */
10655static void ge448_precomp_0(ge448_precomp *p)
10656{
10657    fe448_0(p->x);
10658    fe448_1(p->y);
10659}
10660
10661/* Double the point on the Twisted Edwards curve. r = 2.p
10662 *
10663 * r  [in]  Point to hold result.
10664 * p  [in]  Point to double.
10665 */
10666static WC_INLINE void ge448_dbl(ge448_p2 *r,const ge448_p2 *p)
10667{
10668    ge448 t0[GE448_WORDS];
10669    ge448 t1[GE448_WORDS];
10670
10671    fe448_add(t0, p->X, p->Y);    /* t0 = B1 = X1+Y1     */
10672    fe448_reduce(t0);
10673    fe448_sqr(t0, t0);            /* t0 = B = (X1+Y1)^2  */
10674    fe448_sqr(r->X, p->X);        /* r->X = C = X1^2     */
10675    fe448_sqr(r->Y, p->Y);        /* r->Y = D = Y1^2     */
10676    fe448_add(t1, r->X, r->Y);    /* t1 = E = C+D        */
10677    fe448_reduce(t1);
10678    fe448_sub(r->Y, r->X, r->Y);  /* r->Y = Y31 = C-D    */
10679    fe448_sqr(r->Z, p->Z);        /* r->Z = H = Z1^2     */
10680    fe448_add(r->Z, r->Z, r->Z);  /* r->Z = J1 = 2*H     */
10681    fe448_sub(r->Z, t1, r->Z);    /* r->Z = J = E-2*H    */
10682    fe448_reduce(r->Z);
10683    fe448_sub(r->X, t0, t1);      /* r->X = X31 = B-E    */
10684    fe448_mul(r->X, r->X, r->Z);  /* r->X = X3 = (B-E)*J */
10685    fe448_mul(r->Y, r->Y, t1);    /* r->Y = Y3 = E*(C-D) */
10686    fe448_mul(r->Z, t1, r->Z);    /* r->Z = Z3 = E*J     */
10687}
10688
10689/* Add two point on the Twisted Edwards curve. r = p + q
10690 * Second point has z-ordinate of 1.
10691 *
10692 * r  [in]  Point to hold result.
10693 * p  [in]  Point to add.
10694 * q  [in]  Point to add.
10695 */
10696static WC_INLINE void ge448_madd(ge448_p2 *r, const ge448_p2 *p,
10697                                 const ge448_precomp *q)
10698{
10699    ge448 t0[GE448_WORDS];
10700    ge448 t1[GE448_WORDS];
10701    ge448 t2[GE448_WORDS];
10702    ge448 t3[GE448_WORDS];
10703    ge448 t4[GE448_WORDS];
10704
10705                                    /* p->Z = A                   */
10706    fe448_mul(t1, p->X, q->x);      /* t1 = C = X1*X2             */
10707    fe448_mul(t2, p->Y, q->y);      /* t2 = D = Y1*Y2             */
10708    fe448_mul(t3, t1, t2);          /* t3 = E1 = C*D              */
10709    fe448_mul39081(t3, t3);         /* t3 = E = d*C*D             */
10710    fe448_sqr(t0, p->Z);            /* t0 = B = A^2               */
10711    fe448_add(t4, t0, t3);          /* t4 = F = B-(-E)            */
10712    fe448_sub(t0, t0, t3);          /* t0 = G = B+(-E)            */
10713    fe448_reduce(t0);
10714    fe448_add(r->X, p->X, p->Y);    /* r->X = H1 = X1+Y1          */
10715    fe448_reduce(r->X);
10716    fe448_add(r->Y, q->x, q->y);    /* r->Y = H2 = X2+Y2          */
10717    fe448_reduce(r->Y);
10718    fe448_mul(r->X, r->X, r->Y);    /* r->X = H = (X1+Y1)*(X2+Y2) */
10719    fe448_sub(r->X, r->X, t1);      /* r->X = X31 = H-C           */
10720    fe448_sub(r->X, r->X, t2);      /* r->X = X32 = H-C-D         */
10721    fe448_reduce(r->X);
10722    fe448_mul(r->X, r->X, t4);      /* r->X = X33 = F*(H-C-D)     */
10723    fe448_mul(r->X, r->X, p->Z);    /* r->X = X3 = A*F*(H-C-D)    */
10724    fe448_sub(r->Y, t2, t1);        /* r->Y = Y31 = D-C           */
10725    fe448_reduce(r->Y);
10726    fe448_mul(r->Y, r->Y, t0);      /* r->Y = Y32 = G*(D-C)       */
10727    fe448_mul(r->Y, r->Y, p->Z);    /* r->Y = Y3 = A*F*(D-C)      */
10728    fe448_mul(r->Z, t4, t0);        /* r->Z = Z3 = F*G            */
10729}
10730
10731/* Subtract one point from another on the Twisted Edwards curve. r = p - q
10732 * Second point has z-ordinate of 1.
10733 *
10734 * r  [in]  Point to hold result.
10735 * p  [in]  Point to subtract from.
10736 * q  [in]  Point to subtract.
10737 */
10738static WC_INLINE void ge448_msub(ge448_p2 *r, const ge448_p2 *p,
10739                                 const ge448_precomp *q)
10740{
10741    ge448 t0[GE448_WORDS];
10742    ge448 t1[GE448_WORDS];
10743    ge448 t2[GE448_WORDS];
10744    ge448 t3[GE448_WORDS];
10745    ge448 t4[GE448_WORDS];
10746
10747                                    /* p->Z = A                   */
10748    fe448_sqr(t0, p->Z);            /* t0 = B = A^2               */
10749    fe448_mul(t1, p->X, q->x);      /* t1 = C = X1*X2             */
10750    fe448_mul(t2, p->Y, q->y);      /* t2 = D = Y1*Y2             */
10751    fe448_mul(t3, t1, t2);          /* t3 = E1 = C*D              */
10752    fe448_mul39081(t3, t3);         /* t3 = E = d*C*D             */
10753    fe448_sub(t4, t0, t3);          /* t4 = F = B-(--E)           */
10754    fe448_add(t0, t0, t3);          /* t0 = G = B+(--E)           */
10755    fe448_reduce(t0);
10756    fe448_add(r->X, p->X, p->Y);    /* r->X = H1 = X1+Y1          */
10757    fe448_reduce(r->X);
10758    fe448_sub(r->Y, q->y, q->x);    /* r->Y = H2 = Y2+(-X2)       */
10759    fe448_reduce(r->Y);
10760    fe448_mul(r->X, r->X, r->Y);    /* r->X = H = (X1+Y1)*(X2+Y2) */
10761    fe448_add(r->X, r->X, t1);      /* r->X = X31 = H-(-C)        */
10762    fe448_sub(r->X, r->X, t2);      /* r->X = X32 = H-(-C)-D      */
10763    fe448_reduce(r->X);
10764    fe448_mul(r->X, r->X, t4);      /* r->X = X33 = F*(H-C-D)     */
10765    fe448_mul(r->X, r->X, p->Z);    /* r->X = X3 = A*F*(H-C-D)    */
10766    fe448_add(r->Y, t2, t1);        /* r->Y = Y31 = D-C           */
10767    fe448_reduce(r->Y);
10768    fe448_mul(r->Y, r->Y, t0);      /* r->Y = Y32 = G*(D-C)       */
10769    fe448_mul(r->Y, r->Y, p->Z);    /* r->Y = Y3 = A*F*(D-C)      */
10770    fe448_mul(r->Z, t4, t0);        /* r->Z = Z3 = F*G            */
10771}
10772
10773/* Add two point on the Twisted Edwards curve. r = p + q
10774 *
10775 * r  [in]  Point to hold result.
10776 * p  [in]  Point to add.
10777 * q  [in]  Point to add.
10778 */
10779static WC_INLINE void ge448_add(ge448_p2* r, const ge448_p2* p,
10780                                const ge448_p2* q)
10781{
10782    ge448 t0[GE448_WORDS];
10783    ge448 t1[GE448_WORDS];
10784    ge448 t2[GE448_WORDS];
10785    ge448 t3[GE448_WORDS];
10786    ge448 t4[GE448_WORDS];
10787
10788    fe448_mul(t1, p->X, q->X);      /* t1 = C = X1*X2             */
10789    fe448_mul(t2, p->Y, q->Y);      /* t2 = D = Y1*Y2             */
10790    fe448_mul(t3, t1, t2);          /* t3 = E1 = C*D              */
10791    fe448_mul39081(t3, t3);         /* t3 = E = d*C*D             */
10792    fe448_mul(r->Z, p->Z, q->Z);    /* r->Z = A = Z1*Z2           */
10793    fe448_sqr(t0, r->Z);            /* t0 = B = A^2               */
10794    fe448_add(t4, t0, t3);          /* t4 = F = B-(-E)            */
10795    fe448_sub(t0, t0, t3);          /* t0 = G = B+(-E)            */
10796    fe448_reduce(t0);
10797    fe448_add(r->X, p->X, p->Y);    /* r->X = H1 = X1+Y1          */
10798    fe448_reduce(r->X);
10799    fe448_add(r->Y, q->X, q->Y);    /* r->Y = H2 = X2+Y2          */
10800    fe448_reduce(r->Y);
10801    fe448_mul(r->X, r->X, r->Y);    /* r->X = H = (X1+Y1)*(X2+Y2) */
10802    fe448_sub(r->X, r->X, t1);      /* r->X = X31 = H-C           */
10803    fe448_sub(r->X, r->X, t2);      /* r->X = X32 = H-C-D         */
10804    fe448_reduce(r->X);
10805    fe448_mul(r->X, r->X, t4);      /* r->X = X33 = F*(H-C-D)     */
10806    fe448_mul(r->X, r->X, r->Z);    /* r->X = X3 = A*F*(H-C-D)    */
10807    fe448_sub(r->Y, t2, t1);        /* r->Y = Y31 = D-C           */
10808    fe448_reduce(r->Y);
10809    fe448_mul(r->Y, r->Y, t0);      /* r->Y = Y32 = G*(D-C)       */
10810    fe448_mul(r->Y, r->Y, r->Z);    /* r->Y = Y3 = A*F*(D-C)      */
10811    fe448_mul(r->Z, t4, t0);        /* r->Z = Z3 = F*G            */
10812}
10813
10814/* Subtract one point from another on the Twisted Edwards curve. r = p - q
10815 *
10816 * r  [in]  Point to hold result.
10817 * p  [in]  Point to subtract from.
10818 * q  [in]  Point to subtract.
10819 */
10820static WC_INLINE void ge448_sub(ge448_p2 *r, const ge448_p2 *p,
10821                                const ge448_p2 *q)
10822{
10823    ge448 t0[GE448_WORDS];
10824    ge448 t1[GE448_WORDS];
10825    ge448 t2[GE448_WORDS];
10826    ge448 t3[GE448_WORDS];
10827    ge448 t4[GE448_WORDS];
10828
10829    fe448_mul(t1, p->X, q->X);      /* t1 = C = X1*X2             */
10830    fe448_mul(t2, p->Y, q->Y);      /* t2 = D = Y1*Y2             */
10831    fe448_mul(t3, t1, t2);          /* t3 = E1 = C*D              */
10832    fe448_mul39081(t3, t3);         /* t3 = E = d*C*D             */
10833    fe448_mul(r->Z, p->Z, q->Z);    /* r->Z = A = Z1*Z2           */
10834    fe448_sqr(t0, p->Z);            /* t0 = B = A^2               */
10835    fe448_sub(t4, t0, t3);          /* t4 = F = B-(--E)           */
10836    fe448_add(t0, t0, t3);          /* t0 = G = B+(--E)           */
10837    fe448_reduce(t0);
10838    fe448_add(r->X, p->X, p->Y);    /* r->X = H1 = X1+Y1          */
10839    fe448_reduce(r->X);
10840    fe448_sub(r->Y, q->Y, q->X);    /* r->Y = H2 = Y2+(-X2)       */
10841    fe448_reduce(r->Y);
10842    fe448_mul(r->X, r->X, r->Y);    /* r->X = H = (X1+Y1)*(X2+Y2) */
10843    fe448_add(r->X, r->X, t1);      /* r->X = X31 = H-(-C)        */
10844    fe448_sub(r->X, r->X, t2);      /* r->X = X32 = H-(-C)-D      */
10845    fe448_reduce(r->X);
10846    fe448_mul(r->X, r->X, t4);      /* r->X = X33 = F*(H-C-D)     */
10847    fe448_mul(r->X, r->X, r->Z);    /* r->X = X3 = A*F*(H-C-D)    */
10848    fe448_add(r->Y, t2, t1);        /* r->Y = Y31 = D-C           */
10849    fe448_reduce(r->Y);
10850    fe448_mul(r->Y, r->Y, t0);      /* r->Y = Y32 = G*(D-C)       */
10851    fe448_mul(r->Y, r->Y, r->Z);    /* r->Y = Y3 = A*F*(D-C)      */
10852    fe448_mul(r->Z, t4, t0);        /* r->Z = Z3 = F*G            */
10853}
10854
10855/* Convert point to byte array assuming projective ordinates.
10856 *
10857 * b  [in]  Array of bytes to hold compressed point.
10858 * p  [in]  Point to convert.
10859 */
10860void ge448_to_bytes(byte *b, const ge448_p2 *p)
10861{
10862    ge448 recip[GE448_WORDS];
10863    ge448 x[GE448_WORDS];
10864    ge448 y[GE448_WORDS];
10865
10866    fe448_invert(recip, p->Z);
10867    fe448_mul(x, p->X, recip);
10868    fe448_mul(y, p->Y, recip);
10869    fe448_to_bytes(b, y);
10870    b[56] = (byte)((byte)fe448_isnegative(x) << 7);
10871}
10872
10873/* Convert point to byte array assuming z is 1.
10874 *
10875 * b  [in]  Array of bytes to hold compressed point.
10876 * p  [in]  Point to convert.
10877 */
10878static void ge448_p2z1_to_bytes(byte *b, const ge448_p2 *p)
10879{
10880    fe448_to_bytes(b, p->Y);
10881    b[56] = (byte)((byte)fe448_isnegative(p->X) << 7);
10882}
10883
10884/* Compress the point to y-ordinate and negative bit.
10885 *
10886 * out    [in]  Array of bytes to hold compressed key.
10887 * xIn    [in]  The x-ordinate.
10888 * yIn    [in]  The y-ordinate.
10889 */
10890int ge448_compress_key(byte* out, const byte* xIn, const byte* yIn)
10891{
10892    ge448_p2  g;
10893    byte      bArray[ED448_KEY_SIZE];
10894    word32    i;
10895
10896    fe448_from_bytes(g.X, xIn);
10897    fe448_from_bytes(g.Y, yIn);
10898    fe448_1(g.Z);
10899
10900    ge448_p2z1_to_bytes(bArray, &g);
10901
10902    for (i = 0; i < 57; i++) {
10903        out[57 - 1 - i] = bArray[i];
10904    }
10905
10906    return 0;
10907}
10908
10909/* Determine whether the value is negative.
10910 *
10911 * b  [in]  An 8-bit signed value.
10912 * returns 1 when negative and 0 otherwise.
10913 */
10914static byte negative(byte b)
10915{
10916    return ((byte)b) >> 7;
10917}
10918
10919/* Determine whether two values are equal. a == b
10920 * Constant time implementation.
10921 *
10922 * a  [in]  An 8-bit unsigned value.
10923 * b  [in]  An 8-bit unsigned value.
10924 * returns 1 when equal and 0 otherwise.
10925 */
10926static byte equal(byte a, byte b)
10927{
10928    return (byte)(((word32)(a ^ b) - 1) >> 31);
10929}
10930
10931/* Conditional move the point into result point if two values are equal.
10932 * Constant time implementation.
10933 *
10934 * f  [in]  Point to conditionally overwrite.
10935 * p  [in]  Point to conditionally copy.
10936 * b  [in]  An 8-bit unsigned value.
10937 * n  [in]  An 8-bit unsigned value.
10938 */
10939static WC_INLINE void cmov(ge448_precomp* r, const ge448_precomp* p, byte b,
10940                           byte n)
10941{
10942    b = equal(b, n);
10943    fe448_cmov(r->x, p->x, b);
10944    fe448_cmov(r->y, p->y, b);
10945}
10946
10947/* Select one of the entries from the precomputed table and negate if required.
10948 * Constant time implementation.
10949 *
10950 * r    [in]  Point to hold chosen point.
10951 * pos  [in]  Position of array of entries to choose from.
10952 * b    [in]  Index of point to select. -ve value means negate the point.
10953 */
10954static void ge448_select(ge448_precomp* r, int pos, byte b)
10955{
10956    ge448 minusx[16];
10957    byte bnegative = negative(b);
10958    byte babs = (byte)(b - (((-bnegative) & b) << 1));
10959
10960    ge448_precomp_0(r);
10961    cmov(r, &base[pos][0], babs, 1);
10962    cmov(r, &base[pos][1], babs, 2);
10963    cmov(r, &base[pos][2], babs, 3);
10964    cmov(r, &base[pos][3], babs, 4);
10965    cmov(r, &base[pos][4], babs, 5);
10966    cmov(r, &base[pos][5], babs, 6);
10967    cmov(r, &base[pos][6], babs, 7);
10968    cmov(r, &base[pos][7], babs, 8);
10969    fe448_neg(minusx, r->x);
10970    fe448_cmov(r->x, minusx, bnegative);
10971}
10972
10973/* Perform a scalar multiplication of the base point. r = a * base
10974 *
10975 * r  [in]  Point to hold result.
10976 * a  [in]  Scalar to multiply by.
10977 */
10978int ge448_scalarmult_base(ge448_p2* r, const byte* a)
10979{
10980    byte          carry;
10981#ifdef WOLFSSL_SMALL_STACK
10982    ge448_precomp *t = NULL;
10983    byte          *e = NULL;
10984#else
10985    ge448_precomp t[1];
10986    byte          e[113];
10987#endif
10988    int           i;
10989
10990#ifdef WOLFSSL_SMALL_STACK
10991    t = (ge448_precomp *)XMALLOC(sizeof(*t), NULL, DYNAMIC_TYPE_TMP_BUFFER);
10992    if (t == NULL)
10993        return MEMORY_E;
10994    e = (byte *)XMALLOC(113, NULL, DYNAMIC_TYPE_TMP_BUFFER);
10995    if (e == NULL) {
10996        XFREE(t, NULL, DYNAMIC_TYPE_TMP_BUFFER);
10997        return MEMORY_E;
10998    }
10999#endif
11000
11001    carry = 0;
11002    for (i = 0; i < 56; ++i) {
11003        e[2 * i + 0] = (byte)(((a[i] >> 0) & 0xf) + carry);
11004        carry = (byte)(e[2 * i + 0] + 8);
11005        carry >>= 4;
11006        e[2 * i + 0] = (byte)(e[2 * i + 0] - (byte)(carry << 4));
11007
11008        e[2 * i + 1] = (byte)(((a[i] >> 4) & 0xf) + carry);
11009        carry = (byte)(e[2 * i + 1] + 8);
11010        carry = (byte)(carry >> 4);
11011        e[2 * i + 1] = (byte)(e[2 * i + 1] - (carry << 4));
11012    }
11013    e[112] = carry;
11014    /* each e[i] is between -8 and 8 */
11015
11016    /* Odd indices first - sum based on even index so multiply by 16 */
11017    ge448_select(t, 0, e[1]);
11018    fe448_copy(r->X, t->x);
11019    fe448_copy(r->Y, t->y);
11020    fe448_1(r->Z);
11021    for (i = 3; i < 112; i += 2) {
11022        ge448_select(t, i / 2, e[i]);
11023        ge448_madd(r, r, t);
11024    }
11025
11026    ge448_dbl(r, r);
11027    ge448_dbl(r, r);
11028    ge448_dbl(r, r);
11029    ge448_dbl(r, r);
11030
11031    /* Add even indices */
11032    for (i = 0; i <= 112; i += 2) {
11033        ge448_select(t, i / 2, e[i]);
11034        ge448_madd(r, r, t);
11035    }
11036
11037#ifdef WOLFSSL_SMALL_STACK
11038    XFREE(t, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11039    XFREE(e, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11040#endif
11041
11042    return 0;
11043}
11044
11045/* Create to a sliding window for the scalar multiplicaton.
11046 *
11047 * r  [in]  Array of indices.
11048 * a  [in]  Scalar to break up.
11049 */
11050static void slide(sword8 *r, const byte *a)
11051{
11052    int i;
11053    int b;
11054    int k;
11055
11056    for (i = 0; i < 448; ++i) {
11057        r[i] = (a[i >> 3] >> (i & 7)) & 1;
11058    }
11059
11060    for (i = 0; i < 448; ++i) {
11061        if (r[i] == 0) {
11062            continue;
11063        }
11064
11065        for (b = 1; b <= 7 && i + b < 448; ++b) {
11066            if (r[i + b] == 0) {
11067                continue;
11068            }
11069
11070            if (r[i] + (r[i + b] << b) <= 31) {
11071                r[i] = (sword8)(r[i] + (r[i + b] << b));
11072                r[i + b] = 0;
11073            }
11074            else if (r[i] - (r[i + b] << b) >= -31) {
11075                r[i] = (sword8)(r[i] - (r[i + b] << b));
11076                for (k = i + b; k < 448; ++k) {
11077                    if (!r[k]) {
11078                        r[k] = 1;
11079                        break;
11080                    }
11081                    r[k] = 0;
11082                }
11083            }
11084            else {
11085                break;
11086            }
11087        }
11088    }
11089}
11090
11091/* Perform a scalar multiplication of the base point and public point.
11092 *   r = a * p + b * base
11093 * Uses a sliding window of 5 bits.
11094 * Not constant time.
11095 *
11096 * r  [in]  Point to hold result.
11097 * a  [in]  Scalar to multiply by.
11098 */
11099int ge448_double_scalarmult_vartime(ge448_p2 *r, const byte *a,
11100                                    const ge448_p2 *p, const byte *b)
11101{
11102#define GE448_WINDOW_BUF_SIZE 448
11103
11104#if defined(WOLFSSL_SMALL_STACK) && (!defined(WOLFSSL_NO_MALLOC) ||                                                           defined(XMALLOC_USER))
11105    sword8       *aslide = NULL;
11106    sword8       *bslide = NULL;
11107    ge448_p2     *pi = NULL; /* p,3p,..,31p */
11108    ge448_p2     *p2 = NULL;
11109#else
11110    sword8       aslide[448];
11111    sword8       bslide[448];
11112    ge448_p2     pi[16]; /* p,3p,..,31p */
11113    ge448_p2     p2[1];
11114#endif
11115    int          i;
11116    int          ret = 0;
11117
11118#if defined(WOLFSSL_SMALL_STACK) && (!defined(WOLFSSL_NO_MALLOC) ||                                                           defined(XMALLOC_USER))
11119    aslide = (sword8 *)XMALLOC(GE448_WINDOW_BUF_SIZE, NULL,
11120                                                       DYNAMIC_TYPE_TMP_BUFFER);
11121    if (aslide == NULL) {
11122        ret = MEMORY_E;
11123    }
11124    if (ret == 0) {
11125        bslide = (sword8 *)XMALLOC(GE448_WINDOW_BUF_SIZE, NULL,
11126                                                       DYNAMIC_TYPE_TMP_BUFFER);
11127        if (bslide == NULL) {
11128            ret = MEMORY_E;
11129        }
11130    }
11131    if (ret == 0) {
11132        pi = (ge448_p2 *)XMALLOC(16 * sizeof *pi, NULL,
11133                                                       DYNAMIC_TYPE_TMP_BUFFER);
11134        if (pi == NULL) {
11135            ret = MEMORY_E;
11136        }
11137    }
11138    if (ret == 0) {
11139        p2 = (ge448_p2 *)XMALLOC(sizeof *p2, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11140        if (p2 == NULL) {
11141            ret = MEMORY_E;
11142        }
11143    }
11144#endif
11145
11146    if (ret == 0) {
11147        slide(aslide, a);
11148        slide(bslide, b);
11149
11150        fe448_copy(pi[0].X, p->X);
11151        fe448_copy(pi[0].Y, p->Y);
11152        fe448_copy(pi[0].Z, p->Z);
11153        ge448_dbl(p2, p);
11154        ge448_add(&pi[1], p2, &pi[0]);
11155        ge448_add(&pi[2], p2, &pi[1]);
11156        ge448_add(&pi[3], p2, &pi[2]);
11157        ge448_add(&pi[4], p2, &pi[3]);
11158        ge448_add(&pi[5], p2, &pi[4]);
11159        ge448_add(&pi[6], p2, &pi[5]);
11160        ge448_add(&pi[7], p2, &pi[6]);
11161        ge448_add(&pi[8], p2, &pi[7]);
11162        ge448_add(&pi[9], p2, &pi[8]);
11163        ge448_add(&pi[10], p2, &pi[9]);
11164        ge448_add(&pi[11], p2, &pi[10]);
11165        ge448_add(&pi[12], p2, &pi[11]);
11166        ge448_add(&pi[13], p2, &pi[12]);
11167        ge448_add(&pi[14], p2, &pi[13]);
11168        ge448_add(&pi[15], p2, &pi[14]);
11169
11170        ge448_0(r);
11171
11172        /* Find first index that is not 0. */
11173        for (i = 447; i >= 0; --i) {
11174            if (aslide[i] || bslide[i]) {
11175                break;
11176            }
11177        }
11178
11179        for (; i >= 0; --i) {
11180            ge448_dbl(r, r);
11181
11182            if (aslide[i] > 0)
11183                ge448_add(r, r, &pi[aslide[i]/2]);
11184            else if (aslide[i] < 0)
11185                ge448_sub(r, r ,&pi[(-aslide[i])/2]);
11186
11187            if (bslide[i] > 0)
11188                ge448_madd(r, r, &base_i[bslide[i]/2]);
11189            else if (bslide[i] < 0)
11190                ge448_msub(r, r, &base_i[(-bslide[i])/2]);
11191        }
11192    }
11193
11194#if defined(WOLFSSL_SMALL_STACK) && (!defined(WOLFSSL_NO_MALLOC) ||                                                           defined(XMALLOC_USER))
11195    XFREE(p2, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11196    XFREE(pi, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11197    XFREE(bslide, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11198    XFREE(aslide, NULL, DYNAMIC_TYPE_TMP_BUFFER);
11199#endif
11200
11201    return ret;
11202}
11203
11204/* Convert compressed point to negative of affine point.
11205 * Calculates x from the y and the negative bit.
11206 * Not constant time.
11207 *
11208 * r  [in]  Uncompressed point.
11209 * b  [in]  Array of bytes representing point.
11210 * returns 0 on success and -1 on failure.
11211 */
11212int ge448_from_bytes_negate_vartime(ge448_p2 *r, const byte *b)
11213{
11214    int   ret = 0;
11215    ge448 u[GE448_WORDS];
11216    ge448 v[GE448_WORDS];
11217    ge448 u3[GE448_WORDS];
11218    ge448 vxx[GE448_WORDS];
11219    ge448 check[GE448_WORDS];
11220
11221    fe448_from_bytes(r->Y, b);
11222    fe448_1(r->Z);
11223    fe448_sqr(u, r->Y);                /* u = y^2                      */
11224    fe448_mul39081(v, u);              /* v = 39081.y^2                */
11225    fe448_sub(u, u, r->Z);             /* u = y^2-1                    */
11226    fe448_reduce(u);
11227    fe448_add(v, v, r->Z);             /* v = 39081.y^2-1              */
11228    fe448_reduce(v);
11229    fe448_neg(v, v);                   /* v = -39081.y^2-1 = d.y^2-1   */
11230
11231    fe448_sqr(r->X, v);                /* x = v^2                      */
11232    fe448_mul(r->X, r->X, v);          /* x = v^3                      */
11233    fe448_sqr(u3, u);                  /* x = u^2.v^3                  */
11234    fe448_mul(r->X, r->X, u3);         /* x = u^2.v^3                  */
11235    fe448_mul(u3, u3, u);              /* u3 = u^3                     */
11236    fe448_mul(r->X, r->X, u3);         /* x = u^5.v^3                  */
11237
11238    fe448_pow_2_446_222_1(r->X, r->X); /* x = (u^5.v^3)^((q-3)/4)      */
11239    fe448_mul(r->X, r->X, u3);         /* x = u^3(u^5.v^3)^((q-3)/4)   */
11240    fe448_mul(r->X, r->X, v);          /* x = u^3.v(u^5.v^3)^((q-3)/4) */
11241
11242    fe448_sqr(vxx, r->X);
11243    fe448_mul(vxx, vxx, v);
11244    fe448_sub(check, vxx, u);          /* check = v.x^2-u              */
11245    fe448_reduce(check);
11246    /* Note; vx^2+u is NOT correct. */
11247    if (fe448_isnonzero(check)) {
11248        ret = -1;
11249    }
11250
11251    /* Calculating negative of point in bytes - negate only if X is correct. */
11252    if (fe448_isnegative(r->X) == (b[56] >> 7)) {
11253        fe448_neg(r->X, r->X);
11254    }
11255
11256    return ret;
11257}
11258
11259#endif /* ED448_SMALL */
11260#endif /* HAVE_CURVE448 || HAVE_ED448 */