diff options
Diffstat (limited to 'external/libcurl_android/jni/libcurl/src')
158 files changed, 0 insertions, 22566 deletions
diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_binmode.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_binmode.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_binmode.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_bname.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_bname.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_bname.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_dbg.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_dbg.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_dbg.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_hdr.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_hdr.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_hdr.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_prg.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_prg.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_prg.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_rea.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_rea.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_rea.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_see.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_see.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_see.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_wrt.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_wrt.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cb_wrt.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cfgable.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cfgable.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_cfgable.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_convert.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_convert.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_convert.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_dirhie.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_dirhie.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_dirhie.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_doswin.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_doswin.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_doswin.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_easysrc.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_easysrc.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_easysrc.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_formparse.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_formparse.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_formparse.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_getparam.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_getparam.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_getparam.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_getpass.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_getpass.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_getpass.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_help.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_help.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_help.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_helpers.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_helpers.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_helpers.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_homedir.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_homedir.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_homedir.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_hugehelp.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_hugehelp.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_hugehelp.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_libinfo.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_libinfo.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_libinfo.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_main.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_main.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_main.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_metalink.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_metalink.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_metalink.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_mfiles.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_mfiles.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_mfiles.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_msgs.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_msgs.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_msgs.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_operate.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_operate.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_operate.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_operhlp.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_operhlp.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_operhlp.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_panykey.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_panykey.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_panykey.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_paramhlp.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_paramhlp.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_paramhlp.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_parsecfg.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_parsecfg.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_parsecfg.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_setopt.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_setopt.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_setopt.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_sleep.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_sleep.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_sleep.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_urlglob.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_urlglob.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_urlglob.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_util.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_util.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_util.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_vms.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_vms.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_vms.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_writeenv.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_writeenv.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_writeenv.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_writeout.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_writeout.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_writeout.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_xattr.Po b/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_xattr.Po deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/curl-tool_xattr.Po +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_binmode.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_binmode.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_binmode.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_bname.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_bname.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_bname.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_dbg.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_dbg.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_dbg.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_hdr.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_hdr.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_hdr.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_prg.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_prg.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_prg.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_rea.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_rea.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_rea.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_see.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_see.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_see.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_wrt.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_wrt.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cb_wrt.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cfgable.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cfgable.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_cfgable.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_convert.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_convert.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_convert.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_dirhie.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_dirhie.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_dirhie.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_doswin.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_doswin.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_doswin.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_easysrc.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_easysrc.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_easysrc.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_formparse.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_formparse.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_formparse.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_getparam.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_getparam.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_getparam.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_getpass.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_getpass.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_getpass.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_help.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_help.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_help.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_helpers.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_helpers.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_helpers.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_homedir.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_homedir.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_homedir.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_hugehelp.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_hugehelp.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_hugehelp.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_libinfo.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_libinfo.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_libinfo.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_main.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_main.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_main.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_metalink.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_metalink.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_metalink.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_mfiles.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_mfiles.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_mfiles.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_msgs.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_msgs.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_msgs.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_operate.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_operate.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_operate.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_operhlp.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_operhlp.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_operhlp.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_panykey.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_panykey.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_panykey.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_paramhlp.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_paramhlp.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_paramhlp.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_parsecfg.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_parsecfg.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_parsecfg.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_setopt.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_setopt.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_setopt.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_sleep.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_sleep.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_sleep.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_urlglob.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_urlglob.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_urlglob.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_util.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_util.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_util.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_vms.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_vms.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_vms.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_writeenv.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_writeenv.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_writeenv.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_writeout.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_writeout.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_writeout.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_xattr.Plo b/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_xattr.Plo deleted file mode 100755 index 9ce06a81..00000000 --- a/external/libcurl_android/jni/libcurl/src/.deps/libcurltool_la-tool_xattr.Plo +++ /dev/null @@ -1 +0,0 @@ -# dummy diff --git a/external/libcurl_android/jni/libcurl/src/Makefile.inc b/external/libcurl_android/jni/libcurl/src/Makefile.inc deleted file mode 100755 index 64d55ecf..00000000 --- a/external/libcurl_android/jni/libcurl/src/Makefile.inc +++ /dev/null @@ -1,113 +0,0 @@ -# ./src/Makefile.inc -# Using the backslash as line continuation character might be problematic -# with some make flavours, as Watcom's wmake showed us already. If we -# ever want to change this in a portable manner then we should consider -# this idea (posted to the libcurl list by Adam Kellas): -# CSRC1 = file1.c file2.c file3.c -# CSRC2 = file4.c file5.c file6.c -# CSOURCES = $(CSRC1) $(CSRC2) - -# libcurl has sources that provide functions named curlx_* that aren't part of -# the official API, but we re-use the code here to avoid duplication. -CURLX_CFILES = \ - ../lib/strtoofft.c \ - ../lib/strdup.c \ - ../lib/rawstr.c \ - ../lib/nonblock.c \ - ../lib/warnless.c - -CURLX_HFILES = \ - ../lib/curl_setup.h \ - ../lib/strtoofft.h \ - ../lib/strdup.h \ - ../lib/rawstr.h \ - ../lib/nonblock.h \ - ../lib/warnless.h - -CURL_CFILES = \ - tool_binmode.c \ - tool_bname.c \ - tool_cb_dbg.c \ - tool_cb_hdr.c \ - tool_cb_prg.c \ - tool_cb_rea.c \ - tool_cb_see.c \ - tool_cb_wrt.c \ - tool_cfgable.c \ - tool_convert.c \ - tool_dirhie.c \ - tool_doswin.c \ - tool_easysrc.c \ - tool_formparse.c \ - tool_getparam.c \ - tool_getpass.c \ - tool_help.c \ - tool_helpers.c \ - tool_homedir.c \ - tool_hugehelp.c \ - tool_libinfo.c \ - tool_main.c \ - tool_metalink.c \ - tool_mfiles.c \ - tool_msgs.c \ - tool_operate.c \ - tool_operhlp.c \ - tool_panykey.c \ - tool_paramhlp.c \ - tool_parsecfg.c \ - tool_setopt.c \ - tool_sleep.c \ - tool_urlglob.c \ - tool_util.c \ - tool_vms.c \ - tool_writeenv.c \ - tool_writeout.c \ - tool_xattr.c - -CURL_HFILES = \ - tool_binmode.h \ - tool_bname.h \ - tool_cb_dbg.h \ - tool_cb_hdr.h \ - tool_cb_prg.h \ - tool_cb_rea.h \ - tool_cb_see.h \ - tool_cb_wrt.h \ - tool_cfgable.h \ - tool_convert.h \ - tool_dirhie.h \ - tool_doswin.h \ - tool_easysrc.h \ - tool_formparse.h \ - tool_getparam.h \ - tool_getpass.h \ - tool_help.h \ - tool_helpers.h \ - tool_homedir.h \ - tool_hugehelp.h \ - tool_libinfo.h \ - tool_main.h \ - tool_metalink.h \ - tool_mfiles.h \ - tool_msgs.h \ - tool_operate.h \ - tool_operhlp.h \ - tool_panykey.h \ - tool_paramhlp.h \ - tool_parsecfg.h \ - tool_sdecls.h \ - tool_setopt.h \ - tool_setup.h \ - tool_sleep.h \ - tool_urlglob.h \ - tool_util.h \ - tool_version.h \ - tool_vms.h \ - tool_writeenv.h \ - tool_writeout.h \ - tool_xattr.h - -CURL_RCFILES = curl.rc - -curl_SOURCES = $(CURL_CFILES) $(CURLX_CFILES) $(CURL_HFILES) - diff --git a/external/libcurl_android/jni/libcurl/src/curl.rc b/external/libcurl_android/jni/libcurl/src/curl.rc deleted file mode 100755 index 3db59bd3..00000000 --- a/external/libcurl_android/jni/libcurl/src/curl.rc +++ /dev/null @@ -1,63 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include <winver.h> -#include "tool_version.h" - -LANGUAGE 0x09,0x01 - -#define RC_VERSION CURL_VERSION_MAJOR, CURL_VERSION_MINOR, CURL_VERSION_PATCH, 0 - -VS_VERSION_INFO VERSIONINFO - FILEVERSION RC_VERSION - PRODUCTVERSION RC_VERSION - FILEFLAGSMASK 0x3fL -#if defined(DEBUGBUILD) || defined(_DEBUG) - FILEFLAGS 1 -#else - FILEFLAGS 0 -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE 0x0L - -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "cURL, http://curl.haxx.se/\0" - VALUE "FileDescription", "The cURL executable\0" - VALUE "FileVersion", CURL_VERSION "\0" - VALUE "InternalName", "curl\0" - VALUE "OriginalFilename", "curl.exe\0" - VALUE "ProductName", "The cURL executable\0" - VALUE "ProductVersion", CURL_VERSION "\0" - VALUE "LegalCopyright", "© " CURL_COPYRIGHT "\0" - VALUE "License", "http://curl.haxx.se/docs/copyright.html\0" - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END diff --git a/external/libcurl_android/jni/libcurl/src/tool_binmode.c b/external/libcurl_android/jni/libcurl/src/tool_binmode.c deleted file mode 100755 index 92033ac0..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_binmode.c +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef HAVE_SETMODE - -#ifdef HAVE_IO_H -# include <io.h> -#endif - -#ifdef HAVE_FCNTL_H -# include <fcntl.h> -#endif - -#include "tool_binmode.h" - -#include "memdebug.h" /* keep this as LAST include */ - -void set_binmode(FILE *stream) -{ -#ifdef O_BINARY -# ifdef __HIGHC__ - _setmode(stream, O_BINARY); -# else - setmode(fileno(stream), O_BINARY); -# endif -#else - (void)stream; -#endif -} - -#endif /* HAVE_SETMODE */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_binmode.h b/external/libcurl_android/jni/libcurl/src/tool_binmode.h deleted file mode 100755 index b5cb08d5..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_binmode.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef HEADER_CURL_TOOL_BINMODE_H -#define HEADER_CURL_TOOL_BINMODE_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef HAVE_SETMODE - -void set_binmode(FILE *stream); - -#else - -#define set_binmode(x) Curl_nop_stmt - -#endif /* HAVE_SETMODE */ - -#endif /* HEADER_CURL_TOOL_BINMODE_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_bname.c b/external/libcurl_android/jni/libcurl/src/tool_bname.c deleted file mode 100755 index 27783054..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_bname.c +++ /dev/null @@ -1,50 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "tool_bname.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifndef HAVE_BASENAME - -char *tool_basename(char *path) -{ - char *s1; - char *s2; - - s1 = strrchr(path, '/'); - s2 = strrchr(path, '\\'); - - if(s1 && s2) { - path = (s1 > s2) ? s1 + 1 : s2 + 1; - } - else if(s1) - path = s1 + 1; - else if(s2) - path = s2 + 1; - - return path; -} - -#endif /* HAVE_BASENAME */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_bname.h b/external/libcurl_android/jni/libcurl/src/tool_bname.h deleted file mode 100755 index 69cf92c1..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_bname.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef HEADER_CURL_TOOL_BNAME_H -#define HEADER_CURL_TOOL_BNAME_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifndef HAVE_BASENAME - -char *tool_basename(char *path); - -#define basename(x) tool_basename((x)) - -#endif /* HAVE_BASENAME */ - -#endif /* HEADER_CURL_TOOL_BNAME_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_dbg.c b/external/libcurl_android/jni/libcurl/src/tool_cb_dbg.c deleted file mode 100755 index 010dae3b..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_dbg.c +++ /dev/null @@ -1,275 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_msgs.h" -#include "tool_cb_dbg.h" -#include "tool_util.h" - -#include "memdebug.h" /* keep this as LAST include */ - -static void dump(const char *timebuf, const char *text, - FILE *stream, const unsigned char *ptr, size_t size, - trace tracetype, curl_infotype infotype); - -/* -** callback for CURLOPT_DEBUGFUNCTION -*/ - -int tool_debug_cb(CURL *handle, curl_infotype type, - unsigned char *data, size_t size, - void *userdata) -{ - struct OperationConfig *operation = userdata; - struct GlobalConfig *config = operation->global; - FILE *output = config->errors; - const char *text; - struct timeval tv; - struct tm *now; - char timebuf[20]; - time_t secs; - static time_t epoch_offset; - static int known_offset; - - (void)handle; /* not used */ - - if(config->tracetime) { - tv = tvnow(); - if(!known_offset) { - epoch_offset = time(NULL) - tv.tv_sec; - known_offset = 1; - } - secs = epoch_offset + tv.tv_sec; - now = localtime(&secs); /* not thread safe but we don't care */ - snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ", - now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec); - } - else - timebuf[0] = 0; - - if(!config->trace_stream) { - /* open for append */ - if(curlx_strequal("-", config->trace_dump)) - config->trace_stream = stdout; - else if(curlx_strequal("%", config->trace_dump)) - /* Ok, this is somewhat hackish but we do it undocumented for now */ - config->trace_stream = config->errors; /* aka stderr */ - else { - config->trace_stream = fopen(config->trace_dump, "w"); - config->trace_fopened = TRUE; - } - } - - if(config->trace_stream) - output = config->trace_stream; - - if(!output) { - warnf(operation, "Failed to create/open output"); - return 0; - } - - if(config->tracetype == TRACE_PLAIN) { - /* - * This is the trace look that is similar to what libcurl makes on its - * own. - */ - static const char * const s_infotype[] = { - "*", "<", ">", "{", "}", "{", "}" - }; - size_t i; - size_t st = 0; - static bool newl = FALSE; - static bool traced_data = FALSE; - - switch(type) { - case CURLINFO_HEADER_OUT: - if(size > 0) { - for(i = 0; i < size - 1; i++) { - if(data[i] == '\n') { /* LF */ - if(!newl) { - fprintf(output, "%s%s ", timebuf, s_infotype[type]); - } - (void)fwrite(data + st, i - st + 1, 1, output); - st = i + 1; - newl = FALSE; - } - } - if(!newl) - fprintf(output, "%s%s ", timebuf, s_infotype[type]); - (void)fwrite(data + st, i - st + 1, 1, output); - } - newl = (size && (data[size - 1] != '\n')) ? TRUE : FALSE; - traced_data = FALSE; - break; - case CURLINFO_TEXT: - case CURLINFO_HEADER_IN: - if(!newl) - fprintf(output, "%s%s ", timebuf, s_infotype[type]); - (void)fwrite(data, size, 1, output); - newl = (size && (data[size - 1] != '\n')) ? TRUE : FALSE; - traced_data = FALSE; - break; - case CURLINFO_DATA_OUT: - case CURLINFO_DATA_IN: - case CURLINFO_SSL_DATA_IN: - case CURLINFO_SSL_DATA_OUT: - if(!traced_data) { - /* if the data is output to a tty and we're sending this debug trace - to stderr or stdout, we don't display the alert about the data not - being shown as the data _is_ shown then just not via this - function */ - if(!config->isatty || ((output != stderr) && (output != stdout))) { - if(!newl) - fprintf(output, "%s%s ", timebuf, s_infotype[type]); - fprintf(output, "[data not shown]\n"); - newl = FALSE; - traced_data = TRUE; - } - } - break; - default: /* nada */ - newl = FALSE; - traced_data = FALSE; - break; - } - - return 0; - } - -#ifdef CURL_DOES_CONVERSIONS - /* Special processing is needed for CURLINFO_HEADER_OUT blocks - * if they contain both headers and data (separated by CRLFCRLF). - * We dump the header text and then switch type to CURLINFO_DATA_OUT. - */ - if((type == CURLINFO_HEADER_OUT) && (size > 4)) { - size_t i; - for(i = 0; i < size - 4; i++) { - if(memcmp(&data[i], "\r\n\r\n", 4) == 0) { - /* dump everything through the CRLFCRLF as a sent header */ - text = "=> Send header"; - dump(timebuf, text, output, data, i + 4, config->tracetype, type); - data += i + 3; - size -= i + 4; - type = CURLINFO_DATA_OUT; - data += 1; - break; - } - } - } -#endif /* CURL_DOES_CONVERSIONS */ - - switch (type) { - case CURLINFO_TEXT: - fprintf(output, "%s== Info: %s", timebuf, data); - default: /* in case a new one is introduced to shock us */ - return 0; - - case CURLINFO_HEADER_OUT: - text = "=> Send header"; - break; - case CURLINFO_DATA_OUT: - text = "=> Send data"; - break; - case CURLINFO_HEADER_IN: - text = "<= Recv header"; - break; - case CURLINFO_DATA_IN: - text = "<= Recv data"; - break; - case CURLINFO_SSL_DATA_IN: - text = "<= Recv SSL data"; - break; - case CURLINFO_SSL_DATA_OUT: - text = "=> Send SSL data"; - break; - } - - dump(timebuf, text, output, data, size, config->tracetype, type); - return 0; -} - -static void dump(const char *timebuf, const char *text, - FILE *stream, const unsigned char *ptr, size_t size, - trace tracetype, curl_infotype infotype) -{ - size_t i; - size_t c; - - unsigned int width = 0x10; - - if(tracetype == TRACE_ASCII) - /* without the hex output, we can fit more on screen */ - width = 0x40; - - fprintf(stream, "%s%s, %zd bytes (0x%zx)\n", timebuf, text, size, size); - - for(i = 0; i < size; i += width) { - - fprintf(stream, "%04zx: ", i); - - if(tracetype == TRACE_BIN) { - /* hex not disabled, show it */ - for(c = 0; c < width; c++) - if(i+c < size) - fprintf(stream, "%02x ", ptr[i+c]); - else - fputs(" ", stream); - } - - for(c = 0; (c < width) && (i+c < size); c++) { - /* check for 0D0A; if found, skip past and start a new line of output */ - if((tracetype == TRACE_ASCII) && - (i+c+1 < size) && (ptr[i+c] == 0x0D) && (ptr[i+c+1] == 0x0A)) { - i += (c+2-width); - break; - } -#ifdef CURL_DOES_CONVERSIONS - /* repeat the 0D0A check above but use the host encoding for CRLF */ - if((tracetype == TRACE_ASCII) && - (i+c+1 < size) && (ptr[i+c] == '\r') && (ptr[i+c+1] == '\n')) { - i += (c+2-width); - break; - } - /* convert to host encoding and print this character */ - fprintf(stream, "%c", convert_char(infotype, ptr[i+c])); -#else - (void)infotype; - fprintf(stream, "%c", ((ptr[i+c] >= 0x20) && (ptr[i+c] < 0x80)) ? - ptr[i+c] : UNPRINTABLE_CHAR); -#endif /* CURL_DOES_CONVERSIONS */ - /* check again for 0D0A, to avoid an extra \n if it's at width */ - if((tracetype == TRACE_ASCII) && - (i+c+2 < size) && (ptr[i+c+1] == 0x0D) && (ptr[i+c+2] == 0x0A)) { - i += (c+3-width); - break; - } - } - fputc('\n', stream); /* newline */ - } - fflush(stream); -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_dbg.h b/external/libcurl_android/jni/libcurl/src/tool_cb_dbg.h deleted file mode 100755 index d0ed7b0d..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_dbg.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CB_DBG_H -#define HEADER_CURL_TOOL_CB_DBG_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* -** callback for CURLOPT_DEBUGFUNCTION -*/ - -int tool_debug_cb(CURL *handle, curl_infotype type, - unsigned char *data, size_t size, - void *userdata); - -#endif /* HEADER_CURL_TOOL_CB_DBG_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_hdr.c b/external/libcurl_android/jni/libcurl/src/tool_cb_hdr.c deleted file mode 100755 index ef340f79..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_hdr.c +++ /dev/null @@ -1,225 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_msgs.h" -#include "tool_cb_hdr.h" - -#include "memdebug.h" /* keep this as LAST include */ - -static char *parse_filename(const char *ptr, size_t len); - -/* -** callback for CURLOPT_HEADERFUNCTION -*/ - -size_t tool_header_cb(void *ptr, size_t size, size_t nmemb, void *userdata) -{ - struct HdrCbData *hdrcbdata = userdata; - struct OutStruct *outs = hdrcbdata->outs; - struct OutStruct *heads = hdrcbdata->heads; - const char *str = ptr; - const size_t cb = size * nmemb; - const char *end = (char*)ptr + cb; - - /* - * Once that libcurl has called back tool_header_cb() the returned value - * is checked against the amount that was intended to be written, if - * it does not match then it fails with CURLE_WRITE_ERROR. So at this - * point returning a value different from sz*nmemb indicates failure. - */ - size_t failure = (size * nmemb) ? 0 : 1; - - if(!heads->config) - return failure; - -#ifdef DEBUGBUILD - if(size * nmemb > (size_t)CURL_MAX_HTTP_HEADER) { - warnf(heads->config, "Header data exceeds single call write limit!\n"); - return failure; - } -#endif - - /* - * Write header data when curl option --dump-header (-D) is given. - */ - - if(heads->config->headerfile && heads->stream) { - size_t rc = fwrite(ptr, size, nmemb, heads->stream); - if(rc != cb) - return rc; - } - - /* - * This callback sets the filename where output shall be written when - * curl options --remote-name (-O) and --remote-header-name (-J) have - * been simultaneously given and additionally server returns an HTTP - * Content-Disposition header specifying a filename property. - */ - - if(hdrcbdata->honor_cd_filename && - (cb > 20) && checkprefix("Content-disposition:", str)) { - const char *p = str + 20; - - /* look for the 'filename=' parameter - (encoded filenames (*=) are not supported) */ - for(;;) { - char *filename; - size_t len; - - while(*p && (p < end) && !ISALPHA(*p)) - p++; - if(p > end - 9) - break; - - if(memcmp(p, "filename=", 9)) { - /* no match, find next parameter */ - while((p < end) && (*p != ';')) - p++; - continue; - } - p += 9; - - /* this expression below typecasts 'cb' only to avoid - warning: signed and unsigned type in conditional expression - */ - len = (ssize_t)cb - (p - str); - filename = parse_filename(p, len); - if(filename) { - outs->filename = filename; - outs->alloc_filename = TRUE; - outs->is_cd_filename = TRUE; - outs->s_isreg = TRUE; - outs->fopened = FALSE; - outs->stream = NULL; - hdrcbdata->honor_cd_filename = FALSE; - break; - } - else - return failure; - } - } - - return cb; -} - -/* - * Copies a file name part and returns an ALLOCATED data buffer. - */ -static char *parse_filename(const char *ptr, size_t len) -{ - char *copy; - char *p; - char *q; - char stop = '\0'; - - /* simple implementation of strndup() */ - copy = malloc(len+1); - if(!copy) - return NULL; - memcpy(copy, ptr, len); - copy[len] = '\0'; - - p = copy; - if(*p == '\'' || *p == '"') { - /* store the starting quote */ - stop = *p; - p++; - } - else - stop = ';'; - - /* if the filename contains a path, only use filename portion */ - q = strrchr(copy, '/'); - if(q) { - p = q + 1; - if(!*p) { - Curl_safefree(copy); - return NULL; - } - } - - /* If the filename contains a backslash, only use filename portion. The idea - is that even systems that don't handle backslashes as path separators - probably want the path removed for convenience. */ - q = strrchr(p, '\\'); - if(q) { - p = q + 1; - if(!*p) { - Curl_safefree(copy); - return NULL; - } - } - - /* scan for the end letter and stop there */ - q = p; - while(*q) { - if(q[1] && (q[0] == '\\')) - q++; - else if(q[0] == stop) - break; - q++; - } - *q = '\0'; - - /* make sure the file name doesn't end in \r or \n */ - q = strchr(p, '\r'); - if(q) - *q = '\0'; - - q = strchr(p, '\n'); - if(q) - *q = '\0'; - - if(copy != p) - memmove(copy, p, strlen(p) + 1); - - /* in case we built debug enabled, we allow an evironment variable - * named CURL_TESTDIR to prefix the given file name to put it into a - * specific directory - */ -#ifdef DEBUGBUILD - { - char *tdir = curlx_getenv("CURL_TESTDIR"); - if(tdir) { - char buffer[512]; /* suitably large */ - snprintf(buffer, sizeof(buffer), "%s/%s", tdir, copy); - Curl_safefree(copy); - copy = strdup(buffer); /* clone the buffer, we don't use the libcurl - aprintf() or similar since we want to use the - same memory code as the "real" parse_filename - function */ - curl_free(tdir); - } - } -#endif - - return copy; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_hdr.h b/external/libcurl_android/jni/libcurl/src/tool_cb_hdr.h deleted file mode 100755 index bd504313..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_hdr.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CB_HDR_H -#define HEADER_CURL_TOOL_CB_HDR_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* - * curl operates using a single HdrCbData struct variable, a - * pointer to this is passed as userdata pointer to tool_header_cb. - * - * 'outs' member is a pointer to the OutStruct variable used to keep - * track of information relative to curl's output writing. - * - * 'heads' member is a pointer to the OutStruct variable used to keep - * track of information relative to header response writing. - * - * 'honor_cd_filename' member is TRUE when tool_header_cb is allowed - * to honor Content-Disposition filename property and accordingly - * set 'outs' filename, otherwise FALSE; - */ - -struct HdrCbData { - struct OutStruct *outs; - struct OutStruct *heads; - bool honor_cd_filename; -}; - -/* -** callback for CURLOPT_HEADERFUNCTION -*/ - -size_t tool_header_cb(void *ptr, size_t size, size_t nmemb, void *userdata); - -#endif /* HEADER_CURL_TOOL_CB_HDR_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_prg.c b/external/libcurl_android/jni/libcurl/src/tool_cb_prg.c deleted file mode 100755 index 9e3c5fb4..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_prg.c +++ /dev/null @@ -1,150 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_cb_prg.h" -#include "tool_util.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* -** callback for CURLOPT_XFERINFOFUNCTION -*/ - -#define MAX_BARLENGTH 256 - -int tool_progress_cb(void *clientp, - curl_off_t dltotal, curl_off_t dlnow, - curl_off_t ultotal, curl_off_t ulnow) -{ - /* The original progress-bar source code was written for curl by Lars Aas, - and this new edition inherits some of his concepts. */ - - char line[MAX_BARLENGTH+1]; - char format[40]; - double frac; - double percent; - int barwidth; - int num; - struct timeval now = tvnow(); - struct ProgressData *bar = (struct ProgressData *)clientp; - curl_off_t total; - curl_off_t point; - - /* expected transfer size */ - total = dltotal + ultotal + bar->initial_size; - - /* we've come this far */ - point = dlnow + ulnow + bar->initial_size; - - if(bar->calls && (tvdiff(now, bar->prevtime) < 100L) && point < total) - /* after first call, limit progress-bar updating to 10 Hz */ - /* update when we're at 100% even if last update is less than 200ms ago */ - return 0; - - if(point > total) - /* we have got more than the expected total! */ - total = point; - - /* simply count invokes */ - bar->calls++; - - if(total < 1) { - curl_off_t prevblock = bar->prev / 1024; - curl_off_t thisblock = point / 1024; - while(thisblock > prevblock) { - fprintf(bar->out, "#"); - prevblock++; - } - } - else if(point != bar->prev) { - frac = (double)point / (double)total; - percent = frac * 100.0f; - barwidth = bar->width - 7; - num = (int) (((double)barwidth) * frac); - if(num > MAX_BARLENGTH) - num = MAX_BARLENGTH; - memset(line, '#', num); - line[num] = '\0'; - snprintf(format, sizeof(format), "\r%%-%ds %%5.1f%%%%", barwidth); - fprintf(bar->out, format, line, percent); - } - fflush(bar->out); - bar->prev = point; - bar->prevtime = now; - - return 0; -} - -void progressbarinit(struct ProgressData *bar, - struct OperationConfig *config) -{ -#ifdef __EMX__ - /* 20000318 mgs */ - int scr_size[2]; -#endif - char *colp; - - memset(bar, 0, sizeof(struct ProgressData)); - - /* pass this through to progress function so - * it can display progress towards total file - * not just the part that's left. (21-may-03, dbyron) */ - if(config->use_resume) - bar->initial_size = config->resume_from; - -/* TODO: get terminal width through ansi escapes or something similar. - try to update width when xterm is resized... - 19990617 larsa */ -#ifndef __EMX__ - /* 20000318 mgs - * OS/2 users most likely won't have this env var set, and besides that - * we're using our own way to determine screen width */ - colp = curlx_getenv("COLUMNS"); - if(colp) { - char *endptr; - long num = strtol(colp, &endptr, 10); - if((endptr != colp) && (endptr == colp + strlen(colp)) && (num > 0)) - bar->width = (int)num; - else - bar->width = 79; - curl_free(colp); - } - else - bar->width = 79; -#else - /* 20000318 mgs - * We use this emx library call to get the screen width, and subtract - * one from what we got in order to avoid a problem with the cursor - * advancing to the next line if we print a string that is as long as - * the screen is wide. */ - - _scrsize(scr_size); - bar->width = scr_size[0] - 1; -#endif - - bar->out = config->global->errors; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_prg.h b/external/libcurl_android/jni/libcurl/src/tool_cb_prg.h deleted file mode 100755 index c635be80..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_prg.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CB_PRG_H -#define HEADER_CURL_TOOL_CB_PRG_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define CURL_PROGRESS_STATS 0 /* default progress display */ -#define CURL_PROGRESS_BAR 1 - -struct ProgressData { - int calls; - curl_off_t prev; - struct timeval prevtime; - int width; - FILE *out; /* where to write everything to */ - curl_off_t initial_size; -}; - -void progressbarinit(struct ProgressData *bar, - struct OperationConfig *config); - -/* -** callback for CURLOPT_PROGRESSFUNCTION -*/ - -int tool_progress_cb(void *clientp, - curl_off_t dltotal, curl_off_t dlnow, - curl_off_t ultotal, curl_off_t ulnow); - -#endif /* HEADER_CURL_TOOL_CB_PRG_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_rea.c b/external/libcurl_android/jni/libcurl/src/tool_cb_rea.c deleted file mode 100755 index 4565a15d..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_rea.c +++ /dev/null @@ -1,55 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_cb_rea.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* -** callback for CURLOPT_READFUNCTION -*/ - -size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata) -{ - ssize_t rc; - struct InStruct *in = userdata; - - rc = read(in->fd, buffer, sz*nmemb); - if(rc < 0) { - if(errno == EAGAIN) { - errno = 0; - in->config->readbusy = TRUE; - return CURL_READFUNC_PAUSE; - } - /* since size_t is unsigned we can't return negative values fine */ - rc = 0; - } - in->config->readbusy = FALSE; - return (size_t)rc; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_rea.h b/external/libcurl_android/jni/libcurl/src/tool_cb_rea.h deleted file mode 100755 index 4294166a..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_rea.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CB_REA_H -#define HEADER_CURL_TOOL_CB_REA_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* -** callback for CURLOPT_READFUNCTION -*/ - -size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata); - -#endif /* HEADER_CURL_TOOL_CB_REA_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_see.c b/external/libcurl_android/jni/libcurl/src/tool_cb_see.c deleted file mode 100755 index 2f49e1d9..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_see.c +++ /dev/null @@ -1,131 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_cb_see.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* OUR_MAX_SEEK_L has 'long' data type, OUR_MAX_SEEK_O has 'curl_off_t, - both represent the same value. Maximum offset used here when we lseek - using a 'long' data type offset */ - -#define OUR_MAX_SEEK_L 2147483647L - 1L -#define OUR_MAX_SEEK_O CURL_OFF_T_C(0x7FFFFFFF) - CURL_OFF_T_C(0x1) - -/* -** callback for CURLOPT_SEEKFUNCTION -** -** Notice that this is not supposed to return the resulting offset. This -** shall only return CURL_SEEKFUNC_* return codes. -*/ - -int tool_seek_cb(void *userdata, curl_off_t offset, int whence) -{ - struct InStruct *in = userdata; - -#if(CURL_SIZEOF_CURL_OFF_T > SIZEOF_OFF_T) && !defined(USE_WIN32_LARGE_FILES) - - /* The offset check following here is only interesting if curl_off_t is - larger than off_t and we are not using the WIN32 large file support - macros that provide the support to do 64bit seeks correctly */ - - if(offset > OUR_MAX_SEEK_O) { - /* Some precaution code to work around problems with different data sizes - to allow seeking >32bit even if off_t is 32bit. Should be very rare and - is really valid on weirdo-systems. */ - curl_off_t left = offset; - - if(whence != SEEK_SET) - /* this code path doesn't support other types */ - return CURL_SEEKFUNC_FAIL; - - if(LSEEK_ERROR == lseek(in->fd, 0, SEEK_SET)) - /* couldn't rewind to beginning */ - return CURL_SEEKFUNC_FAIL; - - while(left) { - long step = (left > OUR_MAX_SEEK_O) ? OUR_MAX_SEEK_L : (long)left; - if(LSEEK_ERROR == lseek(in->fd, step, SEEK_CUR)) - /* couldn't seek forwards the desired amount */ - return CURL_SEEKFUNC_FAIL; - left -= step; - } - return CURL_SEEKFUNC_OK; - } -#endif - - if(LSEEK_ERROR == lseek(in->fd, offset, whence)) - /* couldn't rewind, the reason is in errno but errno is just not portable - enough and we don't actually care that much why we failed. We'll let - libcurl know that it may try other means if it wants to. */ - return CURL_SEEKFUNC_CANTSEEK; - - return CURL_SEEKFUNC_OK; -} - -#if defined(WIN32) && !defined(__MINGW64__) - -#ifdef __BORLANDC__ -/* 64-bit lseek-like function unavailable */ -# define _lseeki64(hnd,ofs,whence) lseek(hnd,ofs,whence) -#endif - -#ifdef __POCC__ -# if(__POCC__ < 450) -/* 64-bit lseek-like function unavailable */ -# define _lseeki64(hnd,ofs,whence) _lseek(hnd,ofs,whence) -# else -# define _lseeki64(hnd,ofs,whence) _lseek64(hnd,ofs,whence) -# endif -#endif - -#ifdef _WIN32_WCE -/* 64-bit lseek-like function unavailable */ -# undef _lseeki64 -# define _lseeki64(hnd,ofs,whence) lseek(hnd,ofs,whence) -# undef _get_osfhandle -# define _get_osfhandle(fd) (fd) -#endif - -/* - * Truncate a file handle at a 64-bit position 'where'. - */ - -int tool_ftruncate64(int fd, curl_off_t where) -{ - if(_lseeki64(fd, where, SEEK_SET) < 0) - return -1; - - if(!SetEndOfFile((HANDLE)_get_osfhandle(fd))) - return -1; - - return 0; -} - -#endif /* WIN32 && ! __MINGW64__ */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_see.h b/external/libcurl_android/jni/libcurl/src/tool_cb_see.h deleted file mode 100755 index ceb22d65..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_see.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CB_SEE_H -#define HEADER_CURL_TOOL_CB_SEE_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#if defined(WIN32) && !defined(__MINGW64__) - -int tool_ftruncate64(int fd, curl_off_t where); - -#undef ftruncate -#define ftruncate(fd,where) tool_ftruncate64(fd,where) - -#ifndef HAVE_FTRUNCATE -# define HAVE_FTRUNCATE 1 -#endif - -#endif /* WIN32 && ! __MINGW64__ */ - -/* -** callback for CURLOPT_SEEKFUNCTION -*/ - -int tool_seek_cb(void *userdata, curl_off_t offset, int whence); - -#endif /* HEADER_CURL_TOOL_CB_SEE_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_wrt.c b/external/libcurl_android/jni/libcurl/src/tool_cb_wrt.c deleted file mode 100755 index dfbf95cc..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_wrt.c +++ /dev/null @@ -1,152 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_msgs.h" -#include "tool_cb_wrt.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* -** callback for CURLOPT_WRITEFUNCTION -*/ - -size_t tool_write_cb(void *buffer, size_t sz, size_t nmemb, void *userdata) -{ - size_t rc; - struct OutStruct *outs = userdata; - struct OperationConfig *config = outs->config; - - /* - * Once that libcurl has called back tool_write_cb() the returned value - * is checked against the amount that was intended to be written, if - * it does not match then it fails with CURLE_WRITE_ERROR. So at this - * point returning a value different from sz*nmemb indicates failure. - */ - const size_t failure = (sz * nmemb) ? 0 : 1; - - if(!config) - return failure; - -#ifdef DEBUGBUILD - if(config->include_headers) { - if(sz * nmemb > (size_t)CURL_MAX_HTTP_HEADER) { - warnf(config, "Header data size exceeds single call write limit!\n"); - return failure; - } - } - else { - if(sz * nmemb > (size_t)CURL_MAX_WRITE_SIZE) { - warnf(config, "Data size exceeds single call write limit!\n"); - return failure; - } - } - - { - /* Some internal congruency checks on received OutStruct */ - bool check_fails = FALSE; - if(outs->filename) { - /* regular file */ - if(!*outs->filename) - check_fails = TRUE; - if(!outs->s_isreg) - check_fails = TRUE; - if(outs->fopened && !outs->stream) - check_fails = TRUE; - if(!outs->fopened && outs->stream) - check_fails = TRUE; - if(!outs->fopened && outs->bytes) - check_fails = TRUE; - } - else { - /* standard stream */ - if(!outs->stream || outs->s_isreg || outs->fopened) - check_fails = TRUE; - if(outs->alloc_filename || outs->is_cd_filename || outs->init) - check_fails = TRUE; - } - if(check_fails) { - warnf(config, "Invalid output struct data for write callback\n"); - return failure; - } - } -#endif - - if(!outs->stream) { - FILE *file; - - if(!outs->filename || !*outs->filename) { - warnf(config, "Remote filename has no length!\n"); - return failure; - } - - if(outs->is_cd_filename) { - /* don't overwrite existing files */ - file = fopen(outs->filename, "rb"); - if(file) { - fclose(file); - warnf(config, "Refusing to overwrite %s: %s\n", outs->filename, - strerror(EEXIST)); - return failure; - } - } - - /* open file for writing */ - file = fopen(outs->filename, "wb"); - if(!file) { - warnf(config, "Failed to create the file %s: %s\n", outs->filename, - strerror(errno)); - return failure; - } - outs->s_isreg = TRUE; - outs->fopened = TRUE; - outs->stream = file; - outs->bytes = 0; - outs->init = 0; - } - - rc = fwrite(buffer, sz, nmemb, outs->stream); - - if((sz * nmemb) == rc) - /* we added this amount of data to the output */ - outs->bytes += (sz * nmemb); - - if(config->readbusy) { - config->readbusy = FALSE; - curl_easy_pause(config->easy, CURLPAUSE_CONT); - } - - if(config->nobuffer) { - /* output buffering disabled */ - int res = fflush(outs->stream); - if(res) - return failure; - } - - return rc; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cb_wrt.h b/external/libcurl_android/jni/libcurl/src/tool_cb_wrt.h deleted file mode 100755 index 380d8dd6..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cb_wrt.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CB_WRT_H -#define HEADER_CURL_TOOL_CB_WRT_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* -** callback for CURLOPT_WRITEFUNCTION -*/ - -size_t tool_write_cb(void *buffer, size_t sz, size_t nmemb, void *userdata); - -#endif /* HEADER_CURL_TOOL_CB_WRT_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_cfgable.c b/external/libcurl_android/jni/libcurl/src/tool_cfgable.c deleted file mode 100755 index 2fdae073..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cfgable.c +++ /dev/null @@ -1,154 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "tool_cfgable.h" -#include "tool_main.h" - -#include "memdebug.h" /* keep this as LAST include */ - -void config_init(struct OperationConfig* config) -{ - memset(config, 0, sizeof(struct OperationConfig)); - - config->postfieldsize = -1; - config->use_httpget = FALSE; - config->create_dirs = FALSE; - config->maxredirs = DEFAULT_MAXREDIRS; - config->proto = CURLPROTO_ALL; /* FIXME: better to read from library */ - config->proto_present = FALSE; - config->proto_redir = - CURLPROTO_ALL & ~(CURLPROTO_FILE|CURLPROTO_SCP); /* not FILE or SCP */ - config->proto_redir_present = FALSE; -} - -static void free_config_fields(struct OperationConfig *config) -{ - struct getout *urlnode; - - Curl_safefree(config->random_file); - Curl_safefree(config->egd_file); - Curl_safefree(config->useragent); - Curl_safefree(config->cookie); - Curl_safefree(config->cookiejar); - Curl_safefree(config->cookiefile); - - Curl_safefree(config->postfields); - Curl_safefree(config->referer); - - Curl_safefree(config->headerfile); - Curl_safefree(config->ftpport); - Curl_safefree(config->iface); - - Curl_safefree(config->range); - - Curl_safefree(config->userpwd); - Curl_safefree(config->tls_username); - Curl_safefree(config->tls_password); - Curl_safefree(config->tls_authtype); - Curl_safefree(config->proxyuserpwd); - Curl_safefree(config->proxy); - - Curl_safefree(config->dns_ipv6_addr); - Curl_safefree(config->dns_ipv4_addr); - Curl_safefree(config->dns_interface); - Curl_safefree(config->dns_servers); - - Curl_safefree(config->noproxy); - - Curl_safefree(config->mail_from); - curl_slist_free_all(config->mail_rcpt); - Curl_safefree(config->mail_auth); - - Curl_safefree(config->netrc_file); - - urlnode = config->url_list; - while(urlnode) { - struct getout *next = urlnode->next; - Curl_safefree(urlnode->url); - Curl_safefree(urlnode->outfile); - Curl_safefree(urlnode->infile); - Curl_safefree(urlnode); - urlnode = next; - } - config->url_list = NULL; - config->url_last = NULL; - config->url_get = NULL; - config->url_out = NULL; - - Curl_safefree(config->cipher_list); - Curl_safefree(config->cert); - Curl_safefree(config->cert_type); - Curl_safefree(config->cacert); - Curl_safefree(config->capath); - Curl_safefree(config->crlfile); - Curl_safefree(config->key); - Curl_safefree(config->key_type); - Curl_safefree(config->key_passwd); - Curl_safefree(config->pubkey); - Curl_safefree(config->hostpubmd5); - Curl_safefree(config->engine); - - Curl_safefree(config->customrequest); - Curl_safefree(config->krblevel); - - Curl_safefree(config->xoauth2_bearer); - - Curl_safefree(config->writeout); - - curl_slist_free_all(config->quote); - curl_slist_free_all(config->postquote); - curl_slist_free_all(config->prequote); - - curl_slist_free_all(config->headers); - curl_slist_free_all(config->proxyheaders); - - if(config->httppost) { - curl_formfree(config->httppost); - config->httppost = NULL; - } - config->last_post = NULL; - - curl_slist_free_all(config->telnet_options); - curl_slist_free_all(config->resolve); - - Curl_safefree(config->socksproxy); - Curl_safefree(config->socks5_gssapi_service); - - Curl_safefree(config->ftp_account); - Curl_safefree(config->ftp_alternative_to_user); -} - -void config_free(struct OperationConfig *config) -{ - struct OperationConfig *last = config; - - /* Free each of the structures in reverse order */ - while(last) { - struct OperationConfig *prev = last->prev; - - free_config_fields(last); - free(last); - - last = prev; - } -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_cfgable.h b/external/libcurl_android/jni/libcurl/src/tool_cfgable.h deleted file mode 100755 index 4ef26902..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_cfgable.h +++ /dev/null @@ -1,238 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CFGABLE_H -#define HEADER_CURL_TOOL_CFGABLE_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "tool_sdecls.h" - -#include "tool_metalink.h" - -struct GlobalConfig; - -struct OperationConfig { - CURL *easy; /* A copy of the handle from GlobalConfig */ - bool remote_time; - char *random_file; - char *egd_file; - char *useragent; - char *cookie; /* single line with specified cookies */ - char *cookiejar; /* write to this file */ - char *cookiefile; /* read from this file */ - bool cookiesession; /* new session? */ - bool encoding; /* Accept-Encoding please */ - bool tr_encoding; /* Transfer-Encoding please */ - unsigned long authtype; /* auth bitmask */ - bool use_resume; - bool resume_from_current; - bool disable_epsv; - bool disable_eprt; - bool ftp_pret; - long proto; - bool proto_present; - long proto_redir; - bool proto_redir_present; - curl_off_t resume_from; - char *postfields; - curl_off_t postfieldsize; - char *referer; - double timeout; - double connecttimeout; - long maxredirs; - curl_off_t max_filesize; - char *headerfile; - char *ftpport; - char *iface; - int localport; - int localportrange; - unsigned short porttouse; - char *range; - long low_speed_limit; - long low_speed_time; - char *dns_servers; /* dot notation: 1.1.1.1;2.2.2.2 */ - char *dns_interface; /* interface name */ - char *dns_ipv4_addr; /* dot notation */ - char *dns_ipv6_addr; /* dot notation */ - char *userpwd; - char *login_options; - char *tls_username; - char *tls_password; - char *tls_authtype; - char *proxyuserpwd; - char *proxy; - int proxyver; /* set to CURLPROXY_HTTP* define */ - char *noproxy; - char *mail_from; - struct curl_slist *mail_rcpt; - char *mail_auth; - bool sasl_ir; /* Enable/disable SASL initial response */ - bool proxytunnel; - bool ftp_append; /* APPE on ftp */ - bool use_ascii; /* select ascii or text transfer */ - bool autoreferer; /* automatically set referer */ - bool failonerror; /* fail on (HTTP) errors */ - bool include_headers; /* send headers to data output */ - bool no_body; /* don't get the body */ - bool dirlistonly; /* only get the FTP dir list */ - bool followlocation; /* follow http redirects */ - bool unrestricted_auth; /* Continue to send authentication (user+password) - when following ocations, even when hostname - changed */ - bool netrc_opt; - bool netrc; - char *netrc_file; - struct getout *url_list; /* point to the first node */ - struct getout *url_last; /* point to the last/current node */ - struct getout *url_get; /* point to the node to fill in URL */ - struct getout *url_out; /* point to the node to fill in outfile */ - char *cipher_list; - char *cert; - char *cert_type; - char *cacert; - char *capath; - char *crlfile; - char *key; - char *key_type; - char *key_passwd; - char *pubkey; - char *hostpubmd5; - char *engine; - bool crlf; - char *customrequest; - char *krblevel; - long httpversion; - bool nobuffer; - bool readbusy; /* set when reading input returns EAGAIN */ - bool globoff; - bool use_httpget; - bool insecure_ok; /* set TRUE to allow insecure SSL connects */ - bool create_dirs; - bool ftp_create_dirs; - bool ftp_skip_ip; - bool proxynegotiate; - bool proxyntlm; - bool proxydigest; - bool proxybasic; - bool proxyanyauth; - char *writeout; /* %-styled format string to output */ - bool writeenv; /* write results to environment, if available */ - struct curl_slist *quote; - struct curl_slist *postquote; - struct curl_slist *prequote; - long ssl_version; - long ip_version; - curl_TimeCond timecond; - time_t condtime; - struct curl_slist *headers; - struct curl_slist *proxyheaders; - struct curl_httppost *httppost; - struct curl_httppost *last_post; - struct curl_slist *telnet_options; - struct curl_slist *resolve; - HttpReq httpreq; - - /* for bandwidth limiting features: */ - curl_off_t sendpersecond; /* send to peer */ - curl_off_t recvpersecond; /* receive from peer */ - - bool ftp_ssl; - bool ftp_ssl_reqd; - bool ftp_ssl_control; - bool ftp_ssl_ccc; - int ftp_ssl_ccc_mode; - - char *socksproxy; /* set to server string */ - int socksver; /* set to CURLPROXY_SOCKS* define */ - char *socks5_gssapi_service; /* set service name for gssapi principal - * default rcmd */ - int socks5_gssapi_nec ; /* The NEC reference server does not protect - * the encryption type exchange */ - - bool tcp_nodelay; - long req_retry; /* number of retries */ - long retry_delay; /* delay between retries (in seconds) */ - long retry_maxtime; /* maximum time to keep retrying */ - - char *ftp_account; /* for ACCT */ - char *ftp_alternative_to_user; /* send command if USER/PASS fails */ - int ftp_filemethod; - long tftp_blksize; /* TFTP BLKSIZE option */ - bool ignorecl; /* --ignore-content-length */ - bool disable_sessionid; - - bool raw; - bool post301; - bool post302; - bool post303; - bool nokeepalive; /* for keepalive needs */ - long alivetime; - bool content_disposition; /* use Content-disposition filename */ - - int default_node_flags; /* default flags to search for each 'node', which - is basically each given URL to transfer */ - - bool xattr; /* store metadata in extended attributes */ - long gssapi_delegation; - bool ssl_allow_beast; /* allow this SSL vulnerability */ - - bool use_metalink; /* process given URLs as metalink XML file */ - metalinkfile *metalinkfile_list; /* point to the first node */ - metalinkfile *metalinkfile_last; /* point to the last/current node */ -#ifdef CURLDEBUG - bool test_event_based; -#endif - char *xoauth2_bearer; /* XOAUTH2 bearer token */ - bool nonpn; /* enable/disable TLS NPN extension */ - bool noalpn; /* enable/disable TLS ALPN extension */ - - struct GlobalConfig *global; - struct OperationConfig *prev; - struct OperationConfig *next; /* Always last in the struct */ -}; - -struct GlobalConfig { - CURL *easy; /* Once we have one, we keep it here */ - int showerror; /* -1 == unset, default => show errors - 0 => -s is used to NOT show errors - 1 => -S has been used to show errors */ - bool mute; /* don't show messages, --silent given */ - bool noprogress; /* don't show progress bar --silent given */ - bool isatty; /* Updated internally if output is a tty */ - FILE *errors; /* Error stream, defaults to stderr */ - bool errors_fopened; /* Whether error stream isn't stderr */ - char *trace_dump; /* file to dump the network trace to */ - FILE *trace_stream; - bool trace_fopened; - trace tracetype; - bool tracetime; /* include timestamp? */ - int progressmode; /* CURL_PROGRESS_BAR / CURL_PROGRESS_STATS */ - char *libcurl; /* Output libcurl code to this file name */ - - struct OperationConfig *first; - struct OperationConfig *current; - struct OperationConfig *last; /* Always last in the struct */ -}; - -void config_init(struct OperationConfig *config); -void config_free(struct OperationConfig *config); - -#endif /* HEADER_CURL_TOOL_CFGABLE_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_convert.c b/external/libcurl_android/jni/libcurl/src/tool_convert.c deleted file mode 100755 index ecce036a..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_convert.c +++ /dev/null @@ -1,150 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef CURL_DOES_CONVERSIONS - -#ifdef HAVE_ICONV -# include <iconv.h> -#endif - -#include "tool_convert.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef HAVE_ICONV - -/* curl tool iconv conversion descriptors */ -static iconv_t inbound_cd = (iconv_t)-1; -static iconv_t outbound_cd = (iconv_t)-1; - -/* set default codesets for iconv */ -#ifndef CURL_ICONV_CODESET_OF_NETWORK -# define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1" -#endif - -/* - * convert_to_network() is a curl tool function to convert - * from the host encoding to ASCII on non-ASCII platforms. - */ -CURLcode convert_to_network(char *buffer, size_t length) -{ - /* translate from the host encoding to the network encoding */ - char *input_ptr, *output_ptr; - size_t res, in_bytes, out_bytes; - - /* open an iconv conversion descriptor if necessary */ - if(outbound_cd == (iconv_t)-1) { - outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK, - CURL_ICONV_CODESET_OF_HOST); - if(outbound_cd == (iconv_t)-1) { - return CURLE_CONV_FAILED; - } - } - /* call iconv */ - input_ptr = output_ptr = buffer; - in_bytes = out_bytes = length; - res = iconv(outbound_cd, &input_ptr, &in_bytes, - &output_ptr, &out_bytes); - if((res == (size_t)-1) || (in_bytes != 0)) { - return CURLE_CONV_FAILED; - } - - return CURLE_OK; -} - -/* - * convert_from_network() is a curl tool function - * for performing ASCII conversions on non-ASCII platforms. - */ -CURLcode convert_from_network(char *buffer, size_t length) -{ - /* translate from the network encoding to the host encoding */ - char *input_ptr, *output_ptr; - size_t res, in_bytes, out_bytes; - - /* open an iconv conversion descriptor if necessary */ - if(inbound_cd == (iconv_t)-1) { - inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST, - CURL_ICONV_CODESET_OF_NETWORK); - if(inbound_cd == (iconv_t)-1) { - return CURLE_CONV_FAILED; - } - } - /* call iconv */ - input_ptr = output_ptr = buffer; - in_bytes = out_bytes = length; - res = iconv(inbound_cd, &input_ptr, &in_bytes, - &output_ptr, &out_bytes); - if((res == (size_t)-1) || (in_bytes != 0)) { - return CURLE_CONV_FAILED; - } - - return CURLE_OK; -} - -void convert_cleanup(void) -{ - /* close iconv conversion descriptors */ - if(inbound_cd != (iconv_t)-1) - (void)iconv_close(inbound_cd); - if(outbound_cd != (iconv_t)-1) - (void)iconv_close(outbound_cd); -} - -#endif /* HAVE_ICONV */ - -char convert_char(curl_infotype infotype, char this_char) -{ -/* determine how this specific character should be displayed */ - switch(infotype) { - case CURLINFO_DATA_IN: - case CURLINFO_DATA_OUT: - case CURLINFO_SSL_DATA_IN: - case CURLINFO_SSL_DATA_OUT: - /* data, treat as ASCII */ - if((this_char >= 0x20) && (this_char < 0x7f)) { - /* printable ASCII hex value: convert to host encoding */ - (void)convert_from_network(&this_char, 1); - } - else { - /* non-printable ASCII, use a replacement character */ - return UNPRINTABLE_CHAR; - } - /* fall through to default */ - default: - /* treat as host encoding */ - if(ISPRINT(this_char) - && (this_char != '\t') - && (this_char != '\r') - && (this_char != '\n')) { - /* printable characters excluding tabs and line end characters */ - return this_char; - } - break; - } - /* non-printable, use a replacement character */ - return UNPRINTABLE_CHAR; -} - -#endif /* CURL_DOES_CONVERSIONS */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_convert.h b/external/libcurl_android/jni/libcurl/src/tool_convert.h deleted file mode 100755 index 32d473f9..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_convert.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef HEADER_CURL_TOOL_CONVERT_H -#define HEADER_CURL_TOOL_CONVERT_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef CURL_DOES_CONVERSIONS - -#ifdef HAVE_ICONV - -CURLcode convert_to_network(char *buffer, size_t length); -CURLcode convert_from_network(char *buffer, size_t length); -void convert_cleanup(void); - -#endif /* HAVE_ICONV */ - -char convert_char(curl_infotype infotype, char this_char); - -#endif /* CURL_DOES_CONVERSIONS */ - -#if !defined(CURL_DOES_CONVERSIONS) || !defined(HAVE_ICONV) -#define convert_cleanup() Curl_nop_stmt -#endif - -#endif /* HEADER_CURL_TOOL_CONVERT_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_dirhie.c b/external/libcurl_android/jni/libcurl/src/tool_dirhie.c deleted file mode 100755 index 5965f7a7..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_dirhie.c +++ /dev/null @@ -1,147 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include <sys/stat.h> - -#ifdef WIN32 -# include <direct.h> -#endif - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_dirhie.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef NETWARE -# ifndef __NOVELL_LIBC__ -# define mkdir mkdir_510 -# endif -#endif - -#ifdef WIN32 -# define mkdir(x,y) (mkdir)((x)) -# ifndef __POCC__ -# define F_OK 0 -# endif -#endif - -static void show_dir_errno(FILE *errors, const char *name) -{ - switch(ERRNO) { -#ifdef EACCES - case EACCES: - fprintf(errors, "You don't have permission to create %s.\n", name); - break; -#endif -#ifdef ENAMETOOLONG - case ENAMETOOLONG: - fprintf(errors, "The directory name %s is too long.\n", name); - break; -#endif -#ifdef EROFS - case EROFS: - fprintf(errors, "%s resides on a read-only file system.\n", name); - break; -#endif -#ifdef ENOSPC - case ENOSPC: - fprintf(errors, "No space left on the file system that will " - "contain the directory %s.\n", name); - break; -#endif -#ifdef EDQUOT - case EDQUOT: - fprintf(errors, "Cannot create directory %s because you " - "exceeded your quota.\n", name); - break; -#endif - default : - fprintf(errors, "Error creating directory %s.\n", name); - break; - } -} - -/* - * Create the needed directory hierarchy recursively in order to save - * multi-GETs in file output, ie: - * curl "http://my.site/dir[1-5]/file[1-5].txt" -o "dir#1/file#2.txt" - * should create all the dir* automagically - */ - -CURLcode create_dir_hierarchy(const char *outfile, FILE *errors) -{ - char *tempdir; - char *tempdir2; - char *outdup; - char *dirbuildup; - CURLcode result = CURLE_OK; - size_t outlen; - - outlen = strlen(outfile); - outdup = strdup(outfile); - if(!outdup) - return CURLE_OUT_OF_MEMORY; - - dirbuildup = malloc(outlen + 1); - if(!dirbuildup) { - Curl_safefree(outdup); - return CURLE_OUT_OF_MEMORY; - } - dirbuildup[0] = '\0'; - - tempdir = strtok(outdup, DIR_CHAR); - - while(tempdir != NULL) { - tempdir2 = strtok(NULL, DIR_CHAR); - /* since strtok returns a token for the last word even - if not ending with DIR_CHAR, we need to prune it */ - if(tempdir2 != NULL) { - size_t dlen = strlen(dirbuildup); - if(dlen) - snprintf(&dirbuildup[dlen], outlen - dlen, "%s%s", DIR_CHAR, tempdir); - else { - if(0 != strncmp(outdup, DIR_CHAR, 1)) - strcpy(dirbuildup, tempdir); - else - snprintf(dirbuildup, outlen, "%s%s", DIR_CHAR, tempdir); - } - if(access(dirbuildup, F_OK) == -1) { - if(-1 == mkdir(dirbuildup,(mode_t)0000750)) { - show_dir_errno(errors, dirbuildup); - result = CURLE_WRITE_ERROR; - break; /* get out of loop */ - } - } - } - tempdir = tempdir2; - } - - Curl_safefree(dirbuildup); - Curl_safefree(outdup); - - return result; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_dirhie.h b/external/libcurl_android/jni/libcurl/src/tool_dirhie.h deleted file mode 100755 index 5f19575d..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_dirhie.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HEADER_CURL_TOOL_DIRHIE_H -#define HEADER_CURL_TOOL_DIRHIE_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -CURLcode create_dir_hierarchy(const char *outfile, FILE *errors); - -#endif /* HEADER_CURL_TOOL_DIRHIE_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_doswin.c b/external/libcurl_android/jni/libcurl/src/tool_doswin.c deleted file mode 100755 index dd6e8bb8..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_doswin.c +++ /dev/null @@ -1,299 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#if defined(MSDOS) || defined(WIN32) - -#if defined(HAVE_LIBGEN_H) && defined(HAVE_BASENAME) -# include <libgen.h> -#endif - -#ifdef WIN32 -# include "tool_cfgable.h" -# include "tool_libinfo.h" -#endif - -#include "tool_bname.h" -#include "tool_doswin.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* - * Macros ALWAYS_TRUE and ALWAYS_FALSE are used to avoid compiler warnings. - */ - -#define ALWAYS_TRUE (1) -#define ALWAYS_FALSE (0) - -#if defined(_MSC_VER) && !defined(__POCC__) -# undef ALWAYS_TRUE -# undef ALWAYS_FALSE -# if (_MSC_VER < 1500) -# define ALWAYS_TRUE (0, 1) -# define ALWAYS_FALSE (1, 0) -# else -# define ALWAYS_TRUE \ -__pragma(warning(push)) \ -__pragma(warning(disable:4127)) \ -(1) \ -__pragma(warning(pop)) -# define ALWAYS_FALSE \ -__pragma(warning(push)) \ -__pragma(warning(disable:4127)) \ -(0) \ -__pragma(warning(pop)) -# endif -#endif - -#ifdef WIN32 -# undef PATH_MAX -# define PATH_MAX MAX_PATH -#endif - -#ifndef S_ISCHR -# ifdef S_IFCHR -# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -# else -# define S_ISCHR(m) (0) /* cannot tell if file is a device */ -# endif -#endif - -#ifdef WIN32 -# define _use_lfn(f) ALWAYS_TRUE /* long file names always available */ -#elif !defined(__DJGPP__) || (__DJGPP__ < 2) /* DJGPP 2.0 has _use_lfn() */ -# define _use_lfn(f) ALWAYS_FALSE /* long file names never available */ -#elif defined(__DJGPP__) -# include <fcntl.h> /* _use_lfn(f) prototype */ -#endif - -static const char *msdosify (const char *file_name); -static char *rename_if_dos_device_name (char *file_name); - -/* - * sanitize_dos_name: returns a newly allocated string holding a - * valid file name which will be a transformation of given argument - * in case this wasn't already a valid file name. - * - * This function takes ownership of given argument, free'ing it before - * returning. Caller is responsible of free'ing returned string. Upon - * out of memory condition function returns NULL. - */ - -char *sanitize_dos_name(char *file_name) -{ - char new_name[PATH_MAX]; - - if(!file_name) - return NULL; - - if(strlen(file_name) >= PATH_MAX) - file_name[PATH_MAX-1] = '\0'; /* truncate it */ - - strcpy(new_name, msdosify(file_name)); - - Curl_safefree(file_name); - - return strdup(rename_if_dos_device_name(new_name)); -} - -/* The following functions are taken with modification from the DJGPP - * port of tar 1.12. They use algorithms originally from DJTAR. */ - -static const char *msdosify (const char *file_name) -{ - static char dos_name[PATH_MAX]; - static const char illegal_chars_dos[] = ".+, ;=[]" /* illegal in DOS */ - "|<>\\\":?*"; /* illegal in DOS & W95 */ - static const char *illegal_chars_w95 = &illegal_chars_dos[8]; - int idx, dot_idx; - const char *s = file_name; - char *d = dos_name; - const char *const dlimit = dos_name + sizeof(dos_name) - 1; - const char *illegal_aliens = illegal_chars_dos; - size_t len = sizeof(illegal_chars_dos) - 1; - - /* Support for Windows 9X VFAT systems, when available. */ - if(_use_lfn(file_name)) { - illegal_aliens = illegal_chars_w95; - len -= (illegal_chars_w95 - illegal_chars_dos); - } - - /* Get past the drive letter, if any. */ - if(s[0] >= 'A' && s[0] <= 'z' && s[1] == ':') { - *d++ = *s++; - *d++ = *s++; - } - - for(idx = 0, dot_idx = -1; *s && d < dlimit; s++, d++) { - if(memchr(illegal_aliens, *s, len)) { - /* Dots are special: DOS doesn't allow them as the leading character, - and a file name cannot have more than a single dot. We leave the - first non-leading dot alone, unless it comes too close to the - beginning of the name: we want sh.lex.c to become sh_lex.c, not - sh.lex-c. */ - if(*s == '.') { - if(idx == 0 && (s[1] == '/' || (s[1] == '.' && s[2] == '/'))) { - /* Copy "./" and "../" verbatim. */ - *d++ = *s++; - if(*s == '.') - *d++ = *s++; - *d = *s; - } - else if(idx == 0) - *d = '_'; - else if(dot_idx >= 0) { - if(dot_idx < 5) { /* 5 is a heuristic ad-hoc'ery */ - d[dot_idx - idx] = '_'; /* replace previous dot */ - *d = '.'; - } - else - *d = '-'; - } - else - *d = '.'; - - if(*s == '.') - dot_idx = idx; - } - else if(*s == '+' && s[1] == '+') { - if(idx - 2 == dot_idx) { /* .c++, .h++ etc. */ - *d++ = 'x'; - *d = 'x'; - } - else { - /* libg++ etc. */ - memcpy (d, "plus", 4); - d += 3; - } - s++; - idx++; - } - else - *d = '_'; - } - else - *d = *s; - if(*s == '/') { - idx = 0; - dot_idx = -1; - } - else - idx++; - } - - *d = '\0'; - return dos_name; -} - -static char *rename_if_dos_device_name (char *file_name) -{ - /* We could have a file whose name is a device on MS-DOS. Trying to - * retrieve such a file would fail at best and wedge us at worst. We need - * to rename such files. */ - char *base; - struct_stat st_buf; - char fname[PATH_MAX]; - - strncpy(fname, file_name, PATH_MAX-1); - fname[PATH_MAX-1] = '\0'; - base = basename(fname); - if(((stat(base, &st_buf)) == 0) && (S_ISCHR(st_buf.st_mode))) { - size_t blen = strlen(base); - - if(strlen(fname) >= PATH_MAX-1) { - /* Make room for the '_' */ - blen--; - base[blen] = '\0'; - } - /* Prepend a '_'. */ - memmove(base + 1, base, blen + 1); - base[0] = '_'; - strcpy(file_name, fname); - } - return file_name; -} - -#if defined(MSDOS) && (defined(__DJGPP__) || defined(__GO32__)) - -/* - * Disable program default argument globbing. We do it on our own. - */ -char **__crt0_glob_function(char *arg) -{ - (void)arg; - return (char**)0; -} - -#endif /* MSDOS && (__DJGPP__ || __GO32__) */ - -#ifdef WIN32 - -/* - * Function to find CACert bundle on a Win32 platform using SearchPath. - * (SearchPath is already declared via inclusions done in setup header file) - * (Use the ASCII version instead of the unicode one!) - * The order of the directories it searches is: - * 1. application's directory - * 2. current working directory - * 3. Windows System directory (e.g. C:\windows\system32) - * 4. Windows Directory (e.g. C:\windows) - * 5. all directories along %PATH% - * - * For WinXP and later search order actually depends on registry value: - * HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeProcessSearchMode - */ - -CURLcode FindWin32CACert(struct OperationConfig *config, - const char *bundle_file) -{ - CURLcode result = CURLE_OK; - - /* search and set cert file only if libcurl supports SSL */ - if(curlinfo->features & CURL_VERSION_SSL) { - - DWORD res_len; - DWORD buf_tchar_size = PATH_MAX + 1; - DWORD buf_bytes_size = sizeof(TCHAR) * buf_tchar_size; - char *ptr = NULL; - - char *buf = malloc(buf_bytes_size); - if(!buf) - return CURLE_OUT_OF_MEMORY; - buf[0] = '\0'; - - res_len = SearchPathA(NULL, bundle_file, NULL, buf_tchar_size, buf, &ptr); - if(res_len > 0) { - Curl_safefree(config->cacert); - config->cacert = strdup(buf); - if(!config->cacert) - result = CURLE_OUT_OF_MEMORY; - } - - Curl_safefree(buf); - } - - return result; -} - -#endif /* WIN32 */ - -#endif /* MSDOS || WIN32 */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_doswin.h b/external/libcurl_android/jni/libcurl/src/tool_doswin.h deleted file mode 100755 index cd216dbc..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_doswin.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef HEADER_CURL_TOOL_DOSWIN_H -#define HEADER_CURL_TOOL_DOSWIN_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#if defined(MSDOS) || defined(WIN32) - -char *sanitize_dos_name(char *file_name); - -#if defined(MSDOS) && (defined(__DJGPP__) || defined(__GO32__)) - -char **__crt0_glob_function(char *arg); - -#endif /* MSDOS && (__DJGPP__ || __GO32__) */ - -#ifdef WIN32 - -CURLcode FindWin32CACert(struct OperationConfig *config, - const char *bundle_file); - -#endif /* WIN32 */ - -#endif /* MSDOS || WIN32 */ - -#endif /* HEADER_CURL_TOOL_DOSWIN_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_easysrc.c b/external/libcurl_android/jni/libcurl/src/tool_easysrc.c deleted file mode 100755 index 3db27bb5..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_easysrc.c +++ /dev/null @@ -1,229 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifndef CURL_DISABLE_LIBCURL_OPTION - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_easysrc.h" -#include "tool_msgs.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* global variable definitions, for easy-interface source code generation */ - -struct curl_slist *easysrc_decl = NULL; /* Variable declarations */ -struct curl_slist *easysrc_data = NULL; /* Build slists, forms etc. */ -struct curl_slist *easysrc_code = NULL; /* Setopt calls */ -struct curl_slist *easysrc_toohard = NULL; /* Unconvertible setopt */ -struct curl_slist *easysrc_clean = NULL; /* Clean up allocated data */ -int easysrc_form_count = 0; -int easysrc_slist_count = 0; - -static const char *const srchead[]={ - "/********* Sample code generated by the curl command line tool **********", - " * All curl_easy_setopt() options are documented at:", - " * http://curl.haxx.se/libcurl/c/curl_easy_setopt.html", - " ************************************************************************/", - "#include <curl/curl.h>", - "", - "int main(int argc, char *argv[])", - "{", - " CURLcode ret;", - " CURL *hnd;", - NULL -}; -/* easysrc_decl declarations come here */ -/* easysrc_data initialisations come here */ -/* easysrc_code statements come here */ -static const char *const srchard[]={ - "/* Here is a list of options the curl code used that cannot get generated", - " as source easily. You may select to either not use them or implement", - " them yourself.", - "", - NULL -}; -static const char *const srcend[]={ - "", - " return (int)ret;", - "}", - "/**** End of sample code ****/", - NULL -}; - -/* Clean up all source code if we run out of memory */ -static void easysrc_free(void) -{ - curl_slist_free_all(easysrc_decl); - easysrc_decl = NULL; - curl_slist_free_all(easysrc_data); - easysrc_data = NULL; - curl_slist_free_all(easysrc_code); - easysrc_code = NULL; - curl_slist_free_all(easysrc_toohard); - easysrc_toohard = NULL; - curl_slist_free_all(easysrc_clean); - easysrc_clean = NULL; -} - -/* Add a source line to the main code or remarks */ -CURLcode easysrc_add(struct curl_slist **plist, const char *line) -{ - CURLcode ret = CURLE_OK; - struct curl_slist *list = - curl_slist_append(*plist, line); - if(!list) { - easysrc_free(); - ret = CURLE_OUT_OF_MEMORY; - } - else - *plist = list; - return ret; -} - -CURLcode easysrc_addf(struct curl_slist **plist, const char *fmt, ...) -{ - CURLcode ret; - char *bufp; - va_list ap; - va_start(ap, fmt); - bufp = curlx_mvaprintf(fmt, ap); - va_end(ap); - if(! bufp) { - ret = CURLE_OUT_OF_MEMORY; - } - else { - ret = easysrc_add(plist, bufp); - curl_free(bufp); - } - return ret; -} - -#define CHKRET(v) do {CURLcode ret = (v); if(ret) return ret;} WHILE_FALSE - -CURLcode easysrc_init(void) -{ - CHKRET(easysrc_add(&easysrc_code, - "hnd = curl_easy_init();")); - return CURLE_OK; -} - -CURLcode easysrc_perform(void) -{ - /* Note any setopt calls which we could not convert */ - if(easysrc_toohard) { - int i; - struct curl_slist *ptr; - const char *c; - CHKRET(easysrc_add(&easysrc_code, "")); - /* Preamble comment */ - for(i=0; ((c = srchard[i]) != NULL); i++) - CHKRET(easysrc_add(&easysrc_code, c)); - /* Each unconverted option */ - for(ptr=easysrc_toohard; ptr; ptr = ptr->next) - CHKRET(easysrc_add(&easysrc_code, ptr->data)); - CHKRET(easysrc_add(&easysrc_code, "")); - CHKRET(easysrc_add(&easysrc_code, "*/")); - - curl_slist_free_all(easysrc_toohard); - easysrc_toohard = NULL; - } - - CHKRET(easysrc_add(&easysrc_code, "")); - CHKRET(easysrc_add(&easysrc_code, "ret = curl_easy_perform(hnd);")); - CHKRET(easysrc_add(&easysrc_code, "")); - - return CURLE_OK; -} - -CURLcode easysrc_cleanup(void) -{ - CHKRET(easysrc_add(&easysrc_code, "curl_easy_cleanup(hnd);")); - CHKRET(easysrc_add(&easysrc_code, "hnd = NULL;")); - - return CURLE_OK; -} - -void dumpeasysrc(struct GlobalConfig *config) -{ - struct curl_slist *ptr; - char *o = config->libcurl; - - if(o) { - FILE *out; - bool fopened = FALSE; - if(strcmp(o, "-")) { - out = fopen(o, "w"); - fopened = TRUE; - } - else - out = stdout; - if(!out) - warnf(config->current, "Failed to open %s to write libcurl code!\n", o); - else { - int i; - const char *c; - - for(i=0; ((c = srchead[i]) != NULL); i++) - fprintf(out, "%s\n", c); - - /* Declare variables used for complex setopt values */ - for(ptr=easysrc_decl; ptr; ptr = ptr->next) - fprintf(out, " %s\n", ptr->data); - - /* Set up complex values for setopt calls */ - if(easysrc_data) { - fprintf(out, "\n"); - - for(ptr=easysrc_data; ptr; ptr = ptr->next) - fprintf(out, " %s\n", ptr->data); - } - - fprintf(out, "\n"); - for(ptr=easysrc_code; ptr; ptr = ptr->next) { - if(ptr->data[0]) { - fprintf(out, " %s\n", ptr->data); - } - else { - fprintf(out, "\n"); - } - } - - for(ptr=easysrc_clean; ptr; ptr = ptr->next) - fprintf(out, " %s\n", ptr->data); - - for(i=0; ((c = srcend[i]) != NULL); i++) - fprintf(out, "%s\n", c); - - if(fopened) - fclose(out); - } - } - - easysrc_free(); -} - -#endif /* CURL_DISABLE_LIBCURL_OPTION */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_easysrc.h b/external/libcurl_android/jni/libcurl/src/tool_easysrc.h deleted file mode 100755 index 07a4b787..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_easysrc.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef HEADER_CURL_TOOL_EASYSRC_H -#define HEADER_CURL_TOOL_EASYSRC_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" -#ifndef CURL_DISABLE_LIBCURL_OPTION - -/* global variable declarations, for easy-interface source code generation */ - -extern struct curl_slist *easysrc_decl; /* Variable declarations */ -extern struct curl_slist *easysrc_data; /* Build slists, forms etc. */ -extern struct curl_slist *easysrc_code; /* Setopt calls etc. */ -extern struct curl_slist *easysrc_toohard; /* Unconvertible setopt */ -extern struct curl_slist *easysrc_clean; /* Clean up (reverse order) */ - -extern int easysrc_form_count; /* Number of curl_httppost variables */ -extern int easysrc_slist_count; /* Number of curl_slist variables */ - -extern CURLcode easysrc_init(void); -extern CURLcode easysrc_add(struct curl_slist **plist, const char *bupf); -extern CURLcode easysrc_addf(struct curl_slist **plist, const char *fmt, ...); -extern CURLcode easysrc_perform(void); -extern CURLcode easysrc_cleanup(void); - -void dumpeasysrc(struct GlobalConfig *config); - -#endif /* CURL_DISABLE_LIBCURL_OPTION */ - -#endif /* HEADER_CURL_TOOL_EASYSRC_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_formparse.c b/external/libcurl_android/jni/libcurl/src/tool_formparse.c deleted file mode 100755 index 1dcd897e..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_formparse.c +++ /dev/null @@ -1,361 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_mfiles.h" -#include "tool_msgs.h" -#include "tool_formparse.h" - -#include "memdebug.h" /* keep this as LAST include */ - - -/* - * helper function to get a word from form param - * after call get_parm_word, str either point to string end - * or point to any of end chars. - */ -static char *get_param_word(char **str, char **end_pos) -{ - char *ptr = *str; - char *word_begin = NULL; - char *ptr2; - char *escape = NULL; - const char *end_chars = ";,"; - - /* the first non-space char is here */ - word_begin = ptr; - if(*ptr == '"') { - ++ptr; - while(*ptr) { - if(*ptr == '\\') { - if(ptr[1] == '\\' || ptr[1] == '"') { - /* remember the first escape position */ - if(!escape) - escape = ptr; - /* skip escape of back-slash or double-quote */ - ptr += 2; - continue; - } - } - if(*ptr == '"') { - *end_pos = ptr; - if(escape) { - /* has escape, we restore the unescaped string here */ - ptr = ptr2 = escape; - do { - if(*ptr == '\\' && (ptr[1] == '\\' || ptr[1] == '"')) - ++ptr; - *ptr2++ = *ptr++; - } - while(ptr < *end_pos); - *end_pos = ptr2; - } - while(*ptr && NULL==strchr(end_chars, *ptr)) - ++ptr; - *str = ptr; - return word_begin+1; - } - ++ptr; - } - /* end quote is missing, treat it as non-quoted. */ - ptr = word_begin; - } - - while(*ptr && NULL==strchr(end_chars, *ptr)) - ++ptr; - *str = *end_pos = ptr; - return word_begin; -} - -/*************************************************************************** - * - * formparse() - * - * Reads a 'name=value' parameter and builds the appropriate linked list. - * - * Specify files to upload with 'name=@filename', or 'name=@"filename"' - * in case the filename contain ',' or ';'. Supports specified - * given Content-Type of the files. Such as ';type=<content-type>'. - * - * If literal_value is set, any initial '@' or '<' in the value string - * loses its special meaning, as does any embedded ';type='. - * - * You may specify more than one file for a single name (field). Specify - * multiple files by writing it like: - * - * 'name=@filename,filename2,filename3' - * - * or use double-quotes quote the filename: - * - * 'name=@"filename","filename2","filename3"' - * - * If you want content-types specified for each too, write them like: - * - * 'name=@filename;type=image/gif,filename2,filename3' - * - * If you want custom headers added for a single part, write them in a separate - * file and do like this: - * - * 'name=foo;headers=@headerfile' or why not - * 'name=@filemame;headers=@headerfile' - * - * To upload a file, but to fake the file name that will be included in the - * formpost, do like this: - * - * 'name=@filename;filename=/dev/null' or quote the faked filename like: - * 'name=@filename;filename="play, play, and play.txt"' - * - * If filename/path contains ',' or ';', it must be quoted by double-quotes, - * else curl will fail to figure out the correct filename. if the filename - * tobe quoted contains '"' or '\', '"' and '\' must be escaped by backslash. - * - * This function uses curl_formadd to fulfill it's job. Is heavily based on - * the old curl_formparse code. - * - ***************************************************************************/ - -int formparse(struct OperationConfig *config, - const char *input, - struct curl_httppost **httppost, - struct curl_httppost **last_post, - bool literal_value) -{ - /* nextarg MUST be a string in the format 'name=contents' and we'll - build a linked list with the info */ - char name[256]; - char *contents = NULL; - char type_major[128] = ""; - char type_minor[128] = ""; - char *contp; - const char *type = NULL; - char *sep; - - if((1 == sscanf(input, "%255[^=]=", name)) && - ((contp = strchr(input, '=')) != NULL)) { - /* the input was using the correct format */ - - /* Allocate the contents */ - contents = strdup(contp+1); - if(!contents) { - fprintf(config->global->errors, "out of memory\n"); - return 1; - } - contp = contents; - - if('@' == contp[0] && !literal_value) { - - /* we use the @-letter to indicate file name(s) */ - - struct multi_files *multi_start = NULL; - struct multi_files *multi_current = NULL; - - char *ptr = contp; - char *end = ptr + strlen(ptr); - - do { - /* since this was a file, it may have a content-type specifier - at the end too, or a filename. Or both. */ - char *filename = NULL; - char *word_end; - bool semicolon; - - type = NULL; - - ++ptr; - contp = get_param_word(&ptr, &word_end); - semicolon = (';' == *ptr) ? TRUE : FALSE; - *word_end = '\0'; /* terminate the contp */ - - /* have other content, continue parse */ - while(semicolon) { - /* have type or filename field */ - ++ptr; - while(*ptr && (ISSPACE(*ptr))) - ++ptr; - - if(checkprefix("type=", ptr)) { - /* set type pointer */ - type = &ptr[5]; - - /* verify that this is a fine type specifier */ - if(2 != sscanf(type, "%127[^/]/%127[^;,\n]", - type_major, type_minor)) { - warnf(config, "Illegally formatted content-type field!\n"); - Curl_safefree(contents); - FreeMultiInfo(&multi_start, &multi_current); - return 2; /* illegal content-type syntax! */ - } - - /* now point beyond the content-type specifier */ - sep = (char *)type + strlen(type_major)+strlen(type_minor)+1; - - /* there's a semicolon following - we check if it is a filename - specified and if not we simply assume that it is text that - the user wants included in the type and include that too up - to the next sep. */ - ptr = sep; - if(*sep==';') { - if(!checkprefix(";filename=", sep)) { - ptr = sep + 1; - (void)get_param_word(&ptr, &sep); - semicolon = (';' == *ptr) ? TRUE : FALSE; - } - } - else - semicolon = FALSE; - - if(*sep) - *sep = '\0'; /* zero terminate type string */ - } - else if(checkprefix("filename=", ptr)) { - ptr += 9; - filename = get_param_word(&ptr, &word_end); - semicolon = (';' == *ptr) ? TRUE : FALSE; - *word_end = '\0'; - } - else { - /* unknown prefix, skip to next block */ - char *unknown = NULL; - unknown = get_param_word(&ptr, &word_end); - semicolon = (';' == *ptr) ? TRUE : FALSE; - if(*unknown) { - *word_end = '\0'; - warnf(config, "skip unknown form field: %s\n", unknown); - } - } - } - /* now ptr point to comma or string end */ - - - /* if type == NULL curl_formadd takes care of the problem */ - - if(*contp && !AddMultiFiles(contp, type, filename, &multi_start, - &multi_current)) { - warnf(config, "Error building form post!\n"); - Curl_safefree(contents); - FreeMultiInfo(&multi_start, &multi_current); - return 3; - } - - /* *ptr could be '\0', so we just check with the string end */ - } while(ptr < end); /* loop if there's another file name */ - - /* now we add the multiple files section */ - if(multi_start) { - struct curl_forms *forms = NULL; - struct multi_files *start = multi_start; - unsigned int i, count = 0; - while(start) { - start = start->next; - ++count; - } - forms = malloc((count+1)*sizeof(struct curl_forms)); - if(!forms) { - fprintf(config->global->errors, "Error building form post!\n"); - Curl_safefree(contents); - FreeMultiInfo(&multi_start, &multi_current); - return 4; - } - for(i = 0, start = multi_start; i < count; ++i, start = start->next) { - forms[i].option = start->form.option; - forms[i].value = start->form.value; - } - forms[count].option = CURLFORM_END; - FreeMultiInfo(&multi_start, &multi_current); - if(curl_formadd(httppost, last_post, - CURLFORM_COPYNAME, name, - CURLFORM_ARRAY, forms, CURLFORM_END) != 0) { - warnf(config, "curl_formadd failed!\n"); - Curl_safefree(forms); - Curl_safefree(contents); - return 5; - } - Curl_safefree(forms); - } - } - else { - struct curl_forms info[4]; - int i = 0; - char *ct = literal_value ? NULL : strstr(contp, ";type="); - - info[i].option = CURLFORM_COPYNAME; - info[i].value = name; - i++; - - if(ct) { - info[i].option = CURLFORM_CONTENTTYPE; - info[i].value = &ct[6]; - i++; - ct[0] = '\0'; /* zero terminate here */ - } - - if(contp[0]=='<' && !literal_value) { - info[i].option = CURLFORM_FILECONTENT; - info[i].value = contp+1; - i++; - info[i].option = CURLFORM_END; - - if(curl_formadd(httppost, last_post, - CURLFORM_ARRAY, info, CURLFORM_END ) != 0) { - warnf(config, "curl_formadd failed, possibly the file %s is bad!\n", - contp+1); - Curl_safefree(contents); - return 6; - } - } - else { -#ifdef CURL_DOES_CONVERSIONS - if(convert_to_network(contp, strlen(contp))) { - warnf(config, "curl_formadd failed!\n"); - Curl_safefree(contents); - return 7; - } -#endif - info[i].option = CURLFORM_COPYCONTENTS; - info[i].value = contp; - i++; - info[i].option = CURLFORM_END; - if(curl_formadd(httppost, last_post, - CURLFORM_ARRAY, info, CURLFORM_END) != 0) { - warnf(config, "curl_formadd failed!\n"); - Curl_safefree(contents); - return 8; - } - } - } - - } - else { - warnf(config, "Illegally formatted input field!\n"); - return 1; - } - Curl_safefree(contents); - return 0; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_formparse.h b/external/libcurl_android/jni/libcurl/src/tool_formparse.h deleted file mode 100755 index f7736264..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_formparse.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef HEADER_CURL_TOOL_FORMPARSE_H -#define HEADER_CURL_TOOL_FORMPARSE_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -int formparse(struct OperationConfig *config, - const char *input, - struct curl_httppost **httppost, - struct curl_httppost **last_post, - bool literal_value); - -#endif /* HEADER_CURL_TOOL_FORMPARSE_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_getparam.c b/external/libcurl_android/jni/libcurl/src/tool_getparam.c deleted file mode 100755 index 180878ba..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_getparam.c +++ /dev/null @@ -1,1889 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_binmode.h" -#include "tool_cfgable.h" -#include "tool_cb_prg.h" -#include "tool_formparse.h" -#include "tool_getparam.h" -#include "tool_helpers.h" -#include "tool_libinfo.h" -#include "tool_metalink.h" -#include "tool_msgs.h" -#include "tool_paramhlp.h" -#include "tool_parsecfg.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef MSDOS -# define USE_WATT32 -#endif - -#define GetStr(str,val) do { \ - if(*(str)) { \ - free(*(str)); \ - *(str) = NULL; \ - } \ - if((val)) { \ - *(str) = strdup((val)); \ - if(!(*(str))) \ - return PARAM_NO_MEM; \ - } \ -} WHILE_FALSE - -struct LongShort { - const char *letter; /* short name option */ - const char *lname; /* long name option */ - bool extraparam; /* whether it takes an additional argument */ -}; - -static const struct LongShort aliases[]= { - /* all these ones, starting with "*" or "$" as a short-option have *no* - short option to mention. */ - {"*", "url", TRUE}, - {"*4", "dns-ipv4-addr", TRUE}, - {"*6", "dns-ipv6-addr", TRUE}, - {"*a", "random-file", TRUE}, - {"*b", "egd-file", TRUE}, - {"*B", "oauth2-bearer", TRUE}, - {"*c", "connect-timeout", TRUE}, - {"*d", "ciphers", TRUE}, - {"*D", "dns-interface", TRUE}, - {"*e", "disable-epsv", FALSE}, - {"*E", "epsv", FALSE}, - /* 'epsv' made like this to make --no-epsv and --epsv to work - although --disable-epsv is the documented option */ -#ifdef USE_ENVIRONMENT - {"*f", "environment", FALSE}, -#endif - {"*F", "dns-servers", TRUE}, - {"*g", "trace", TRUE}, - {"*G", "npn", FALSE}, - {"*h", "trace-ascii", TRUE}, - {"*H", "alpn", FALSE}, - {"*i", "limit-rate", TRUE}, - {"*j", "compressed", FALSE}, - {"*J", "tr-encoding", FALSE}, - {"*k", "digest", FALSE}, - {"*l", "negotiate", FALSE}, - {"*m", "ntlm", FALSE}, - {"*M", "ntlm-wb", FALSE}, - {"*n", "basic", FALSE}, - {"*o", "anyauth", FALSE}, -#ifdef USE_WATT32 - {"*p", "wdebug", FALSE}, -#endif - {"*q", "ftp-create-dirs", FALSE}, - {"*r", "create-dirs", FALSE}, - {"*s", "max-redirs", TRUE}, - {"*t", "proxy-ntlm", FALSE}, - {"*u", "crlf", FALSE}, - {"*v", "stderr", TRUE}, - {"*w", "interface", TRUE}, - {"*x", "krb" , TRUE}, - {"*x", "krb4" , TRUE}, - /* 'krb4' is the previous name */ - {"*y", "max-filesize", TRUE}, - {"*z", "disable-eprt", FALSE}, - {"*Z", "eprt", FALSE}, - /* 'eprt' made like this to make --no-eprt and --eprt to work - although --disable-eprt is the documented option */ - {"$a", "ftp-ssl", FALSE}, - /* 'ftp-ssl' deprecated name since 7.20.0 */ - {"$a", "ssl", FALSE}, - /* 'ssl' new option name in 7.20.0, previously this was ftp-ssl */ - {"$b", "ftp-pasv", FALSE}, - {"$c", "socks5", TRUE}, - {"$c", "socks", TRUE}, - /* 'socks' is how the option once was documented but we prefer - the --socks5 version for explicit version */ - {"$d", "tcp-nodelay", FALSE}, - {"$e", "proxy-digest", FALSE}, - {"$f", "proxy-basic", FALSE}, - {"$g", "retry", TRUE}, - {"$h", "retry-delay", TRUE}, - {"$i", "retry-max-time", TRUE}, - {"$k", "proxy-negotiate", FALSE}, - {"$m", "ftp-account", TRUE}, - {"$n", "proxy-anyauth", FALSE}, - {"$o", "trace-time", FALSE}, - {"$p", "ignore-content-length", FALSE}, - {"$q", "ftp-skip-pasv-ip", FALSE}, - {"$r", "ftp-method", TRUE}, - {"$s", "local-port", TRUE}, - {"$t", "socks4", TRUE}, - {"$T", "socks4a", TRUE}, - {"$u", "ftp-alternative-to-user", TRUE}, - {"$v", "ftp-ssl-reqd", FALSE}, - /* 'ftp-ssl-reqd' deprecated name since 7.20.0 */ - {"$v", "ssl-reqd", FALSE}, - /* 'ssl-reqd' new in 7.20.0, previously this was ftp-ssl-reqd */ - {"$w", "sessionid", FALSE}, - /* ¡sessionid' listed as --no-sessionid in the help */ - {"$x", "ftp-ssl-control", FALSE}, - {"$y", "ftp-ssl-ccc", FALSE}, - {"$j", "ftp-ssl-ccc-mode", TRUE}, - {"$z", "libcurl", TRUE}, - {"$#", "raw", FALSE}, - {"$0", "post301", FALSE}, - {"$1", "keepalive", FALSE}, - /* 'keepalive' listed as --no-keepalive in the help */ - {"$2", "socks5-hostname", TRUE}, - {"$3", "keepalive-time", TRUE}, - {"$4", "post302", FALSE}, - {"$5", "noproxy", TRUE}, -#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) - {"$6", "socks5-gssapi-service", TRUE}, - {"$7", "socks5-gssapi-nec", FALSE}, -#endif - {"$8", "proxy1.0", TRUE}, - {"$9", "tftp-blksize", TRUE}, - {"$A", "mail-from", TRUE}, - {"$B", "mail-rcpt", TRUE}, - {"$C", "ftp-pret", FALSE}, - {"$D", "proto", TRUE}, - {"$E", "proto-redir", TRUE}, - {"$F", "resolve", TRUE}, - {"$G", "delegation", TRUE}, - {"$H", "mail-auth", TRUE}, - {"$I", "post303", FALSE}, - {"$J", "metalink", FALSE}, - {"$K", "sasl-ir", FALSE}, - {"$L", "test-event", FALSE}, - {"0", "http1.0", FALSE}, - {"01", "http1.1", FALSE}, - {"02", "http2", FALSE}, - {"1", "tlsv1", FALSE}, - {"10", "tlsv1.0", FALSE}, - {"11", "tlsv1.1", FALSE}, - {"12", "tlsv1.2", FALSE}, - {"2", "sslv2", FALSE}, - {"3", "sslv3", FALSE}, - {"4", "ipv4", FALSE}, - {"6", "ipv6", FALSE}, - {"a", "append", FALSE}, - {"A", "user-agent", TRUE}, - {"b", "cookie", TRUE}, - {"B", "use-ascii", FALSE}, - {"c", "cookie-jar", TRUE}, - {"C", "continue-at", TRUE}, - {"d", "data", TRUE}, - {"da", "data-ascii", TRUE}, - {"db", "data-binary", TRUE}, - {"de", "data-urlencode", TRUE}, - {"D", "dump-header", TRUE}, - {"e", "referer", TRUE}, - {"E", "cert", TRUE}, - {"Ea", "cacert", TRUE}, - {"Eb", "cert-type", TRUE}, - {"Ec", "key", TRUE}, - {"Ed", "key-type", TRUE}, - {"Ee", "pass", TRUE}, - {"Ef", "engine", TRUE}, - {"Eg", "capath ", TRUE}, - {"Eh", "pubkey", TRUE}, - {"Ei", "hostpubmd5", TRUE}, - {"Ej", "crlfile", TRUE}, - {"Ek", "tlsuser", TRUE}, - {"El", "tlspassword", TRUE}, - {"Em", "tlsauthtype", TRUE}, - {"En", "ssl-allow-beast", FALSE}, - {"Eo", "login-options", TRUE}, - {"f", "fail", FALSE}, - {"F", "form", TRUE}, - {"Fs", "form-string", TRUE}, - {"g", "globoff", FALSE}, - {"G", "get", FALSE}, - {"h", "help", FALSE}, - {"H", "header", TRUE}, - {"Hp", "proxy-header", TRUE}, - {"i", "include", FALSE}, - {"I", "head", FALSE}, - {"j", "junk-session-cookies", FALSE}, - {"J", "remote-header-name", FALSE}, - {"k", "insecure", FALSE}, - {"K", "config", TRUE}, - {"l", "list-only", FALSE}, - {"L", "location", FALSE}, - {"Lt", "location-trusted", FALSE}, - {"m", "max-time", TRUE}, - {"M", "manual", FALSE}, - {"n", "netrc", FALSE}, - {"no", "netrc-optional", FALSE}, - {"ne", "netrc-file", TRUE}, - {"N", "buffer", FALSE}, - /* 'buffer' listed as --no-buffer in the help */ - {"o", "output", TRUE}, - {"O", "remote-name", FALSE}, - {"Oa", "remote-name-all", FALSE}, - {"p", "proxytunnel", FALSE}, - {"P", "ftpport", TRUE}, - /* 'ftpport' old version */ - {"P", "ftp-port", TRUE}, - {"q", "disable", FALSE}, - {"Q", "quote", TRUE}, - {"r", "range", TRUE}, - {"R", "remote-time", FALSE}, - {"s", "silent", FALSE}, - {"S", "show-error", FALSE}, - {"t", "telnet-options", TRUE}, - /* 'telnet-options' documented as telnet-option */ - {"T", "upload-file", TRUE}, - {"u", "user", TRUE}, - {"U", "proxy-user", TRUE}, - {"v", "verbose", FALSE}, - {"V", "version", FALSE}, - {"w", "write-out", TRUE}, - {"x", "proxy", TRUE}, - {"X", "request", TRUE}, - {"X", "http-request", TRUE}, - /* 'http-request' OBSOLETE VERSION */ - {"Y", "speed-limit", TRUE}, - {"y", "speed-time", TRUE}, - {"z", "time-cond", TRUE}, - {"#", "progress-bar", FALSE}, - {":", "next", FALSE}, - {"~", "xattr", FALSE}, -}; - -/* Split the argument of -E to 'certname' and 'passphrase' separated by colon. - * We allow ':' and '\' to be escaped by '\' so that we can use certificate - * nicknames containing ':'. See <https://sourceforge.net/p/curl/bugs/1196/> - * for details. */ -#ifndef UNITTESTS -static -#endif -void parse_cert_parameter(const char *cert_parameter, - char **certname, - char **passphrase) -{ - size_t param_length = strlen(cert_parameter); - size_t span; - const char *param_place = NULL; - char *certname_place = NULL; - *certname = NULL; - *passphrase = NULL; - - /* most trivial assumption: cert_parameter is empty */ - if(param_length == 0) - return; - - /* next less trivial: cert_parameter contains no colon nor backslash; this - * means no passphrase was given and no characters escaped */ - if(!strpbrk(cert_parameter, ":\\")) { - *certname = strdup(cert_parameter); - return; - } - /* deal with escaped chars; find unescaped colon if it exists */ - certname_place = malloc(param_length + 1); - if(!certname_place) - return; - - *certname = certname_place; - param_place = cert_parameter; - while(*param_place) { - span = strcspn(param_place, ":\\"); - strncpy(certname_place, param_place, span); - param_place += span; - certname_place += span; - /* we just ate all the non-special chars. now we're on either a special - * char or the end of the string. */ - switch(*param_place) { - case '\0': - break; - case '\\': - param_place++; - switch(*param_place) { - case '\0': - *certname_place++ = '\\'; - break; - case '\\': - *certname_place++ = '\\'; - param_place++; - break; - case ':': - *certname_place++ = ':'; - param_place++; - break; - default: - *certname_place++ = '\\'; - *certname_place++ = *param_place; - param_place++; - break; - } - break; - case ':': - /* Since we live in a world of weirdness and confusion, the win32 - dudes can use : when using drive letters and thus c:\file:password - needs to work. In order not to break compatibility, we still use : as - separator, but we try to detect when it is used for a file name! On - windows. */ -#ifdef WIN32 - if(param_place && - (param_place == &cert_parameter[1]) && - (cert_parameter[2] == '\\' || cert_parameter[2] == '/') && - (ISALPHA(cert_parameter[0])) ) { - /* colon in the second column, followed by a backslash, and the - first character is an alphabetic letter: - - this is a drive letter colon */ - *certname_place++ = ':'; - param_place++; - break; - } -#endif - /* escaped colons and Windows drive letter colons were handled - * above; if we're still here, this is a separating colon */ - param_place++; - if(strlen(param_place) > 0) { - *passphrase = strdup(param_place); - } - goto done; - } - } -done: - *certname_place = '\0'; -} - -ParameterError getparameter(char *flag, /* f or -long-flag */ - char *nextarg, /* NULL if unset */ - bool *usedarg, /* set to TRUE if the arg - has been used */ - struct GlobalConfig *global, - struct OperationConfig *config) -{ - char letter; - char subletter = '\0'; /* subletters can only occur on long options */ - int rc; - const char *parse = NULL; - unsigned int j; - time_t now; - int hit = -1; - bool longopt = FALSE; - bool singleopt = FALSE; /* when true means '-o foo' used '-ofoo' */ - ParameterError err; - bool toggle = TRUE; /* how to switch boolean options, on or off. Controlled - by using --OPTION or --no-OPTION */ - - - if(('-' != flag[0]) || - (('-' == flag[0]) && ('-' == flag[1]))) { - /* this should be a long name */ - char *word = ('-' == flag[0]) ? flag+2 : flag; - size_t fnam = strlen(word); - int numhits = 0; - - if(!strncmp(word, "no-", 3)) { - /* disable this option but ignore the "no-" part when looking for it */ - word += 3; - toggle = FALSE; - } - - for(j = 0; j < sizeof(aliases)/sizeof(aliases[0]); j++) { - if(curlx_strnequal(aliases[j].lname, word, fnam)) { - longopt = TRUE; - numhits++; - if(curlx_raw_equal(aliases[j].lname, word)) { - parse = aliases[j].letter; - hit = j; - numhits = 1; /* a single unique hit */ - break; - } - parse = aliases[j].letter; - hit = j; - } - } - if(numhits > 1) { - /* this is at least the second match! */ - return PARAM_OPTION_AMBIGUOUS; - } - if(hit < 0) { - return PARAM_OPTION_UNKNOWN; - } - } - else { - flag++; /* prefixed with one dash, pass it */ - hit = -1; - parse = flag; - } - - do { - /* we can loop here if we have multiple single-letters */ - - if(!longopt) { - if(NULL != parse) { - letter = (char)*parse; - } - else { - letter = '\0'; - } - subletter='\0'; - } - else { - letter = parse[0]; - subletter = parse[1]; - } - *usedarg = FALSE; /* default is that we don't use the arg */ - - if(hit < 0) { - for(j = 0; j < sizeof(aliases)/sizeof(aliases[0]); j++) { - if(letter == aliases[j].letter[0]) { - hit = j; - break; - } - } - if(hit < 0) { - return PARAM_OPTION_UNKNOWN; - } - } - - if(aliases[hit].extraparam) { - /* this option requires an extra parameter */ - if(!longopt && parse[1]) { - nextarg = (char *)&parse[1]; /* this is the actual extra parameter */ - singleopt = TRUE; /* don't loop anymore after this */ - } - else if(!nextarg) - return PARAM_REQUIRES_PARAMETER; - else - *usedarg = TRUE; /* mark it as used */ - } - - switch(letter) { - case '*': /* options without a short option */ - switch(subletter) { - case '4': /* --dns-ipv4-addr */ - /* addr in dot notation */ - GetStr(&config->dns_ipv4_addr, nextarg); - break; - case '6': /* --dns-ipv6-addr */ - /* addr in dot notation */ - GetStr(&config->dns_ipv6_addr, nextarg); - break; - case 'a': /* random-file */ - GetStr(&config->random_file, nextarg); - break; - case 'b': /* egd-file */ - GetStr(&config->egd_file, nextarg); - break; - case 'B': /* XOAUTH2 Bearer */ - GetStr(&config->xoauth2_bearer, nextarg); - break; - case 'c': /* connect-timeout */ - err = str2udouble(&config->connecttimeout, nextarg); - if(err) - return err; - break; - case 'd': /* ciphers */ - GetStr(&config->cipher_list, nextarg); - break; - case 'D': /* --dns-interface */ - /* interface name */ - GetStr(&config->dns_interface, nextarg); - break; - case 'e': /* --disable-epsv */ - config->disable_epsv = toggle; - break; - case 'E': /* --epsv */ - config->disable_epsv = (!toggle)?TRUE:FALSE; - break; -#ifdef USE_ENVIRONMENT - case 'f': - config->writeenv = toggle; - break; -#endif - case 'F': /* --dns-servers */ - /* IP addrs of DNS servers */ - GetStr(&config->dns_servers, nextarg); - break; - case 'g': /* --trace */ - GetStr(&global->trace_dump, nextarg); - if(global->tracetype && (global->tracetype != TRACE_BIN)) - warnf(config, "--trace overrides an earlier trace/verbose option\n"); - global->tracetype = TRACE_BIN; - break; - case 'G': /* --npn */ - config->nonpn = (!toggle)?TRUE:FALSE; - break; - case 'h': /* --trace-ascii */ - GetStr(&global->trace_dump, nextarg); - if(global->tracetype && (global->tracetype != TRACE_ASCII)) - warnf(config, - "--trace-ascii overrides an earlier trace/verbose option\n"); - global->tracetype = TRACE_ASCII; - break; - case 'H': /* --alpn */ - config->noalpn = (!toggle)?TRUE:FALSE; - break; - case 'i': /* --limit-rate */ - { - /* We support G, M, K too */ - char *unit; - curl_off_t value = curlx_strtoofft(nextarg, &unit, 0); - - if(!*unit) - unit = (char *)"b"; - else if(strlen(unit) > 1) - unit = (char *)"w"; /* unsupported */ - - switch(*unit) { - case 'G': - case 'g': - value *= 1024*1024*1024; - break; - case 'M': - case 'm': - value *= 1024*1024; - break; - case 'K': - case 'k': - value *= 1024; - break; - case 'b': - case 'B': - /* for plain bytes, leave as-is */ - break; - default: - warnf(config, "unsupported rate unit. Use G, M, K or B!\n"); - return PARAM_BAD_USE; - } - config->recvpersecond = value; - config->sendpersecond = value; - } - break; - - case 'j': /* --compressed */ - if(toggle && !(curlinfo->features & CURL_VERSION_LIBZ)) - return PARAM_LIBCURL_DOESNT_SUPPORT; - config->encoding = toggle; - break; - - case 'J': /* --tr-encoding */ - config->tr_encoding = toggle; - break; - - case 'k': /* --digest */ - if(toggle) - config->authtype |= CURLAUTH_DIGEST; - else - config->authtype &= ~CURLAUTH_DIGEST; - break; - - case 'l': /* --negotiate */ - if(toggle) { - if(curlinfo->features & CURL_VERSION_SPNEGO) - config->authtype |= CURLAUTH_NEGOTIATE; - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - } - else - config->authtype &= ~CURLAUTH_NEGOTIATE; - break; - - case 'm': /* --ntlm */ - if(toggle) { - if(curlinfo->features & CURL_VERSION_NTLM) - config->authtype |= CURLAUTH_NTLM; - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - } - else - config->authtype &= ~CURLAUTH_NTLM; - break; - - case 'M': /* --ntlm-wb */ - if(toggle) { - if(curlinfo->features & CURL_VERSION_NTLM_WB) - config->authtype |= CURLAUTH_NTLM_WB; - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - } - else - config->authtype &= ~CURLAUTH_NTLM_WB; - break; - - case 'n': /* --basic for completeness */ - if(toggle) - config->authtype |= CURLAUTH_BASIC; - else - config->authtype &= ~CURLAUTH_BASIC; - break; - - case 'o': /* --anyauth, let libcurl pick it */ - if(toggle) - config->authtype = CURLAUTH_ANY; - /* --no-anyauth simply doesn't touch it */ - break; - -#ifdef USE_WATT32 - case 'p': /* --wdebug */ - dbug_init(); - break; -#endif - case 'q': /* --ftp-create-dirs */ - config->ftp_create_dirs = toggle; - break; - - case 'r': /* --create-dirs */ - config->create_dirs = toggle; - break; - - case 's': /* --max-redirs */ - /* specified max no of redirects (http(s)), this accepts -1 as a - special condition */ - err = str2num(&config->maxredirs, nextarg); - if(err) - return err; - if(config->maxredirs < -1) - return PARAM_BAD_NUMERIC; - break; - - case 't': /* --proxy-ntlm */ - if(curlinfo->features & CURL_VERSION_NTLM) - config->proxyntlm = toggle; - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - break; - - case 'u': /* --crlf */ - /* LF -> CRLF conversion? */ - config->crlf = toggle; - break; - - case 'v': /* --stderr */ - if(strcmp(nextarg, "-")) { - FILE *newfile = fopen(nextarg, "wt"); - if(!newfile) - warnf(config, "Failed to open %s!\n", nextarg); - else { - if(global->errors_fopened) - fclose(global->errors); - global->errors = newfile; - global->errors_fopened = TRUE; - } - } - else - global->errors = stdout; - break; - case 'w': /* --interface */ - /* interface */ - GetStr(&config->iface, nextarg); - break; - case 'x': /* --krb */ - /* kerberos level string */ - if(curlinfo->features & CURL_VERSION_KERBEROS4) - GetStr(&config->krblevel, nextarg); - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - break; - case 'y': /* --max-filesize */ - err = str2offset(&config->max_filesize, nextarg); - if(err) - return err; - break; - case 'z': /* --disable-eprt */ - config->disable_eprt = toggle; - break; - case 'Z': /* --eprt */ - config->disable_eprt = (!toggle)?TRUE:FALSE; - break; - - default: /* the URL! */ - { - struct getout *url; - if(config->url_get || ((config->url_get = config->url_list) != NULL)) { - /* there's a node here, if it already is filled-in continue to find - an "empty" node */ - while(config->url_get && (config->url_get->flags & GETOUT_URL)) - config->url_get = config->url_get->next; - } - - /* now there might or might not be an available node to fill in! */ - - if(config->url_get) - /* existing node */ - url = config->url_get; - else - /* there was no free node, create one! */ - url = new_getout(config); - - if(!url) - return PARAM_NO_MEM; - else { - /* fill in the URL */ - GetStr(&url->url, nextarg); - url->flags |= GETOUT_URL; - } - } - } - break; - case '$': /* more options without a short option */ - switch(subletter) { - case 'a': /* --ftp-ssl */ - if(toggle && !(curlinfo->features & CURL_VERSION_SSL)) - return PARAM_LIBCURL_DOESNT_SUPPORT; - config->ftp_ssl = toggle; - break; - case 'b': /* --ftp-pasv */ - Curl_safefree(config->ftpport); - break; - case 'c': /* --socks5 specifies a socks5 proxy to use, and resolves - the name locally and passes on the resolved address */ - GetStr(&config->socksproxy, nextarg); - config->socksver = CURLPROXY_SOCKS5; - break; - case 't': /* --socks4 specifies a socks4 proxy to use */ - GetStr(&config->socksproxy, nextarg); - config->socksver = CURLPROXY_SOCKS4; - break; - case 'T': /* --socks4a specifies a socks4a proxy to use */ - GetStr(&config->socksproxy, nextarg); - config->socksver = CURLPROXY_SOCKS4A; - break; - case '2': /* --socks5-hostname specifies a socks5 proxy and enables name - resolving with the proxy */ - GetStr(&config->socksproxy, nextarg); - config->socksver = CURLPROXY_SOCKS5_HOSTNAME; - break; - case 'd': /* --tcp-nodelay option */ - config->tcp_nodelay = toggle; - break; - case 'e': /* --proxy-digest */ - config->proxydigest = toggle; - break; - case 'f': /* --proxy-basic */ - config->proxybasic = toggle; - break; - case 'g': /* --retry */ - err = str2unum(&config->req_retry, nextarg); - if(err) - return err; - break; - case 'h': /* --retry-delay */ - err = str2unum(&config->retry_delay, nextarg); - if(err) - return err; - break; - case 'i': /* --retry-max-time */ - err = str2unum(&config->retry_maxtime, nextarg); - if(err) - return err; - break; - - case 'k': /* --proxy-negotiate */ - if(curlinfo->features & CURL_VERSION_SPNEGO) - config->proxynegotiate = toggle; - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - break; - - case 'm': /* --ftp-account */ - GetStr(&config->ftp_account, nextarg); - break; - case 'n': /* --proxy-anyauth */ - config->proxyanyauth = toggle; - break; - case 'o': /* --trace-time */ - global->tracetime = toggle; - break; - case 'p': /* --ignore-content-length */ - config->ignorecl = toggle; - break; - case 'q': /* --ftp-skip-pasv-ip */ - config->ftp_skip_ip = toggle; - break; - case 'r': /* --ftp-method (undocumented at this point) */ - config->ftp_filemethod = ftpfilemethod(config, nextarg); - break; - case 's': /* --local-port */ - rc = sscanf(nextarg, "%d - %d", - &config->localport, - &config->localportrange); - if(!rc) - return PARAM_BAD_USE; - else if(rc == 1) - config->localportrange = 1; /* default number of ports to try */ - else { - config->localportrange -= config->localport; - if(config->localportrange < 1) { - warnf(config, "bad range input\n"); - return PARAM_BAD_USE; - } - } - break; - case 'u': /* --ftp-alternative-to-user */ - GetStr(&config->ftp_alternative_to_user, nextarg); - break; - case 'v': /* --ftp-ssl-reqd */ - if(toggle && !(curlinfo->features & CURL_VERSION_SSL)) - return PARAM_LIBCURL_DOESNT_SUPPORT; - config->ftp_ssl_reqd = toggle; - break; - case 'w': /* --no-sessionid */ - config->disable_sessionid = (!toggle)?TRUE:FALSE; - break; - case 'x': /* --ftp-ssl-control */ - if(toggle && !(curlinfo->features & CURL_VERSION_SSL)) - return PARAM_LIBCURL_DOESNT_SUPPORT; - config->ftp_ssl_control = toggle; - break; - case 'y': /* --ftp-ssl-ccc */ - config->ftp_ssl_ccc = toggle; - if(!config->ftp_ssl_ccc_mode) - config->ftp_ssl_ccc_mode = CURLFTPSSL_CCC_PASSIVE; - break; - case 'j': /* --ftp-ssl-ccc-mode */ - config->ftp_ssl_ccc = TRUE; - config->ftp_ssl_ccc_mode = ftpcccmethod(config, nextarg); - break; - case 'z': /* --libcurl */ -#ifdef CURL_DISABLE_LIBCURL_OPTION - warnf(config, - "--libcurl option was disabled at build-time!\n"); - return PARAM_OPTION_UNKNOWN; -#else - GetStr(&global->libcurl, nextarg); - break; -#endif - case '#': /* --raw */ - config->raw = toggle; - break; - case '0': /* --post301 */ - config->post301 = toggle; - break; - case '1': /* --no-keepalive */ - config->nokeepalive = (!toggle)?TRUE:FALSE; - break; - case '3': /* --keepalive-time */ - err = str2unum(&config->alivetime, nextarg); - if(err) - return err; - break; - case '4': /* --post302 */ - config->post302 = toggle; - break; - case 'I': /* --post303 */ - config->post303 = toggle; - break; - case '5': /* --noproxy */ - /* This specifies the noproxy list */ - GetStr(&config->noproxy, nextarg); - break; -#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) - case '6': /* --socks5-gssapi-service */ - GetStr(&config->socks5_gssapi_service, nextarg); - break; - case '7': /* --socks5-gssapi-nec*/ - config->socks5_gssapi_nec = toggle; - break; -#endif - case '8': /* --proxy1.0 */ - /* http 1.0 proxy */ - GetStr(&config->proxy, nextarg); - config->proxyver = CURLPROXY_HTTP_1_0; - break; - case '9': /* --tftp-blksize */ - err = str2unum(&config->tftp_blksize, nextarg); - if(err) - return err; - break; - case 'A': /* --mail-from */ - GetStr(&config->mail_from, nextarg); - break; - case 'B': /* --mail-rcpt */ - /* append receiver to a list */ - err = add2list(&config->mail_rcpt, nextarg); - if(err) - return err; - break; - case 'C': /* --ftp-pret */ - config->ftp_pret = toggle; - break; - case 'D': /* --proto */ - config->proto_present = TRUE; - if(proto2num(config, &config->proto, nextarg)) - return PARAM_BAD_USE; - break; - case 'E': /* --proto-redir */ - config->proto_redir_present = TRUE; - if(proto2num(config, &config->proto_redir, nextarg)) - return PARAM_BAD_USE; - break; - case 'F': /* --resolve */ - err = add2list(&config->resolve, nextarg); - if(err) - return err; - break; - case 'G': /* --delegation LEVEL */ - config->gssapi_delegation = delegation(config, nextarg); - break; - case 'H': /* --mail-auth */ - GetStr(&config->mail_auth, nextarg); - break; - case 'J': /* --metalink */ - { -#ifdef USE_METALINK - int mlmaj, mlmin, mlpatch; - metalink_get_version(&mlmaj, &mlmin, &mlpatch); - if((mlmaj*10000)+(mlmin*100)+mlpatch < CURL_REQ_LIBMETALINK_VERS) { - warnf(config, - "--metalink option cannot be used because the version of " - "the linked libmetalink library is too old. " - "Required: %d.%d.%d, found %d.%d.%d\n", - CURL_REQ_LIBMETALINK_MAJOR, - CURL_REQ_LIBMETALINK_MINOR, - CURL_REQ_LIBMETALINK_PATCH, - mlmaj, mlmin, mlpatch); - return PARAM_BAD_USE; - } - else - config->use_metalink = toggle; -#else - warnf(config, "--metalink option is ignored because the binary is " - "built without the Metalink support.\n"); -#endif - break; - } - case 'K': /* --sasl-ir */ - config->sasl_ir = toggle; - break; - case 'L': /* --test-event */ -#ifdef CURLDEBUG - config->test_event_based = toggle; -#else - warnf(config, "--test-event is ignored unless a debug build!\n"); -#endif - break; - } - break; - case '#': /* --progress-bar */ - if(toggle) - global->progressmode = CURL_PROGRESS_BAR; - else - global->progressmode = CURL_PROGRESS_STATS; - break; - case ':': /* --next */ - return PARAM_NEXT_OPERATION; - case '~': /* --xattr */ - config->xattr = toggle; - break; - case '0': /* --http* options */ - switch(subletter) { - case '\0': - /* HTTP version 1.0 */ - config->httpversion = CURL_HTTP_VERSION_1_0; - break; - case '1': - /* HTTP version 1.1 */ - config->httpversion = CURL_HTTP_VERSION_1_1; - break; - case '2': - /* HTTP version 2.0 */ - config->httpversion = CURL_HTTP_VERSION_2_0; - break; - } - break; - case '1': /* --tlsv1* options */ - switch(subletter) { - case '\0': - /* TLS version 1.x */ - config->ssl_version = CURL_SSLVERSION_TLSv1; - break; - case '0': - /* TLS version 1.0 */ - config->ssl_version = CURL_SSLVERSION_TLSv1_0; - break; - case '1': - /* TLS version 1.1 */ - config->ssl_version = CURL_SSLVERSION_TLSv1_1; - break; - case '2': - /* TLS version 1.2 */ - config->ssl_version = CURL_SSLVERSION_TLSv1_2; - break; - } - break; - case '2': - /* SSL version 2 */ - config->ssl_version = CURL_SSLVERSION_SSLv2; - break; - case '3': - /* SSL version 3 */ - config->ssl_version = CURL_SSLVERSION_SSLv3; - break; - case '4': - /* IPv4 */ - config->ip_version = 4; - break; - case '6': - /* IPv6 */ - config->ip_version = 6; - break; - case 'a': - /* This makes the FTP sessions use APPE instead of STOR */ - config->ftp_append = toggle; - break; - case 'A': - /* This specifies the User-Agent name */ - GetStr(&config->useragent, nextarg); - break; - case 'b': /* cookie string coming up: */ - if(nextarg[0] == '@') { - nextarg++; - } - else if(strchr(nextarg, '=')) { - /* A cookie string must have a =-letter */ - GetStr(&config->cookie, nextarg); - break; - } - /* We have a cookie file to read from! */ - GetStr(&config->cookiefile, nextarg); - break; - case 'B': - /* use ASCII/text when transferring */ - config->use_ascii = toggle; - break; - case 'c': - /* get the file name to dump all cookies in */ - GetStr(&config->cookiejar, nextarg); - break; - case 'C': - /* This makes us continue an ftp transfer at given position */ - if(!curlx_strequal(nextarg, "-")) { - err = str2offset(&config->resume_from, nextarg); - if(err) - return err; - config->resume_from_current = FALSE; - } - else { - config->resume_from_current = TRUE; - config->resume_from = 0; - } - config->use_resume=TRUE; - break; - case 'd': - /* postfield data */ - { - char *postdata = NULL; - FILE *file; - size_t size = 0; - - if(subletter == 'e') { /* --data-urlencode*/ - /* [name]=[content], we encode the content part only - * [name]@[file name] - * - * Case 2: we first load the file using that name and then encode - * the content. - */ - const char *p = strchr(nextarg, '='); - size_t nlen; - char is_file; - if(!p) - /* there was no '=' letter, check for a '@' instead */ - p = strchr(nextarg, '@'); - if(p) { - nlen = p - nextarg; /* length of the name part */ - is_file = *p++; /* pass the separator */ - } - else { - /* neither @ nor =, so no name and it isn't a file */ - nlen = is_file = 0; - p = nextarg; - } - if('@' == is_file) { - /* a '@' letter, it means that a file name or - (stdin) follows */ - - if(curlx_strequal("-", p)) { - file = stdin; - set_binmode(stdin); - } - else { - file = fopen(p, "rb"); - if(!file) - warnf(config, - "Couldn't read data from file \"%s\", this makes " - "an empty POST.\n", nextarg); - } - - err = file2memory(&postdata, &size, file); - - if(file && (file != stdin)) - fclose(file); - if(err) - return err; - } - else { - GetStr(&postdata, p); - if(postdata) - size = strlen(postdata); - } - - if(!postdata) { - /* no data from the file, point to a zero byte string to make this - get sent as a POST anyway */ - postdata = strdup(""); - if(!postdata) - return PARAM_NO_MEM; - size = 0; - } - else { - char *enc = curl_easy_escape(config->easy, postdata, (int)size); - Curl_safefree(postdata); /* no matter if it worked or not */ - if(enc) { - /* now make a string with the name from above and append the - encoded string */ - size_t outlen = nlen + strlen(enc) + 2; - char *n = malloc(outlen); - if(!n) { - curl_free(enc); - return PARAM_NO_MEM; - } - if(nlen > 0) { /* only append '=' if we have a name */ - snprintf(n, outlen, "%.*s=%s", nlen, nextarg, enc); - size = outlen-1; - } - else { - strcpy(n, enc); - size = outlen-2; /* since no '=' was inserted */ - } - curl_free(enc); - postdata = n; - } - else - return PARAM_NO_MEM; - } - } - else if('@' == *nextarg) { - /* the data begins with a '@' letter, it means that a file name - or - (stdin) follows */ - nextarg++; /* pass the @ */ - - if(curlx_strequal("-", nextarg)) { - file = stdin; - if(subletter == 'b') /* forced data-binary */ - set_binmode(stdin); - } - else { - file = fopen(nextarg, "rb"); - if(!file) - warnf(config, "Couldn't read data from file \"%s\", this makes " - "an empty POST.\n", nextarg); - } - - if(subletter == 'b') - /* forced binary */ - err = file2memory(&postdata, &size, file); - else { - err = file2string(&postdata, file); - if(postdata) - size = strlen(postdata); - } - - if(file && (file != stdin)) - fclose(file); - if(err) - return err; - - if(!postdata) { - /* no data from the file, point to a zero byte string to make this - get sent as a POST anyway */ - postdata = strdup(""); - if(!postdata) - return PARAM_NO_MEM; - } - } - else { - GetStr(&postdata, nextarg); - if(postdata) - size = strlen(postdata); - } - -#ifdef CURL_DOES_CONVERSIONS - if(subletter != 'b') { - /* NOT forced binary, convert to ASCII */ - if(convert_to_network(postdata, strlen(postdata))) { - Curl_safefree(postdata); - return PARAM_NO_MEM; - } - } -#endif - - if(config->postfields) { - /* we already have a string, we append this one with a separating - &-letter */ - char *oldpost = config->postfields; - curl_off_t oldlen = config->postfieldsize; - curl_off_t newlen = oldlen + curlx_uztoso(size) + 2; - config->postfields = malloc((size_t)newlen); - if(!config->postfields) { - Curl_safefree(oldpost); - Curl_safefree(postdata); - return PARAM_NO_MEM; - } - memcpy(config->postfields, oldpost, (size_t)oldlen); - /* use byte value 0x26 for '&' to accommodate non-ASCII platforms */ - config->postfields[oldlen] = '\x26'; - memcpy(&config->postfields[oldlen+1], postdata, size); - config->postfields[oldlen+1+size] = '\0'; - Curl_safefree(oldpost); - Curl_safefree(postdata); - config->postfieldsize += size+1; - } - else { - config->postfields = postdata; - config->postfieldsize = curlx_uztoso(size); - } - } - /* - We can't set the request type here, as this data might be used in - a simple GET if -G is used. Already or soon. - - if(SetHTTPrequest(HTTPREQ_SIMPLEPOST, &config->httpreq)) { - Curl_safefree(postdata); - return PARAM_BAD_USE; - } - */ - break; - case 'D': - /* dump-header to given file name */ - GetStr(&config->headerfile, nextarg); - break; - case 'e': - { - char *ptr = strstr(nextarg, ";auto"); - if(ptr) { - /* Automatic referer requested, this may be combined with a - set initial one */ - config->autoreferer = TRUE; - *ptr = 0; /* zero terminate here */ - } - else - config->autoreferer = FALSE; - GetStr(&config->referer, nextarg); - } - break; - case 'E': - switch(subletter) { - case 'a': /* CA info PEM file */ - /* CA info PEM file */ - GetStr(&config->cacert, nextarg); - break; - case 'b': /* cert file type */ - GetStr(&config->cert_type, nextarg); - break; - case 'c': /* private key file */ - GetStr(&config->key, nextarg); - break; - case 'd': /* private key file type */ - GetStr(&config->key_type, nextarg); - break; - case 'e': /* private key passphrase */ - GetStr(&config->key_passwd, nextarg); - cleanarg(nextarg); - break; - case 'f': /* crypto engine */ - GetStr(&config->engine, nextarg); - if(config->engine && curlx_raw_equal(config->engine,"list")) - return PARAM_ENGINES_REQUESTED; - break; - case 'g': /* CA info PEM file */ - /* CA cert directory */ - GetStr(&config->capath, nextarg); - break; - case 'h': /* --pubkey public key file */ - GetStr(&config->pubkey, nextarg); - break; - case 'i': /* --hostpubmd5 md5 of the host public key */ - GetStr(&config->hostpubmd5, nextarg); - if(!config->hostpubmd5 || strlen(config->hostpubmd5) != 32) - return PARAM_BAD_USE; - break; - case 'j': /* CRL info PEM file */ - /* CRL file */ - GetStr(&config->crlfile, nextarg); - break; - case 'k': /* TLS username */ - if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) - GetStr(&config->tls_username, nextarg); - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - break; - case 'l': /* TLS password */ - if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) - GetStr(&config->tls_password, nextarg); - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - break; - case 'm': /* TLS authentication type */ - if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) { - GetStr(&config->tls_authtype, nextarg); - if(!strequal(config->tls_authtype, "SRP")) - return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */ - } - else - return PARAM_LIBCURL_DOESNT_SUPPORT; - break; - case 'n': /* no empty SSL fragments, --ssl-allow-beast */ - if(curlinfo->features & CURL_VERSION_SSL) - config->ssl_allow_beast = toggle; - break; - - case 'o': /* --login-options */ - GetStr(&config->login_options, nextarg); - break; - - default: /* certificate file */ - { - char *certname, *passphrase; - parse_cert_parameter(nextarg, &certname, &passphrase); - Curl_safefree(config->cert); - config->cert = certname; - if(passphrase) { - Curl_safefree(config->key_passwd); - config->key_passwd = passphrase; - } - cleanarg(nextarg); - } - } - break; - case 'f': - /* fail hard on errors */ - config->failonerror = toggle; - break; - case 'F': - /* "form data" simulation, this is a little advanced so lets do our best - to sort this out slowly and carefully */ - if(formparse(config, - nextarg, - &config->httppost, - &config->last_post, - (subletter=='s')?TRUE:FALSE)) /* 's' means literal string */ - return PARAM_BAD_USE; - if(SetHTTPrequest(config, HTTPREQ_POST, &config->httpreq)) - return PARAM_BAD_USE; - break; - - case 'g': /* g disables URLglobbing */ - config->globoff = toggle; - break; - - case 'G': /* HTTP GET */ - config->use_httpget = TRUE; - break; - - case 'h': /* h for help */ - if(toggle) { - return PARAM_HELP_REQUESTED; - } - /* we now actually support --no-help too! */ - break; - case 'H': - /* A custom header to append to a list */ - if(subletter == 'p') /* --proxy-header */ - err = add2list(&config->proxyheaders, nextarg); - else - err = add2list(&config->headers, nextarg); - if(err) - return err; - break; - case 'i': - config->include_headers = toggle; /* include the headers as well in the - general output stream */ - break; - case 'j': - config->cookiesession = toggle; - break; - case 'I': - /* - * no_body will imply include_headers later on - */ - config->no_body = toggle; - if(SetHTTPrequest(config, - (config->no_body)?HTTPREQ_HEAD:HTTPREQ_GET, - &config->httpreq)) - return PARAM_BAD_USE; - break; - case 'J': /* --remote-header-name */ - if(config->include_headers) { - warnf(config, - "--include and --remote-header-name cannot be combined.\n"); - return PARAM_BAD_USE; - } - config->content_disposition = toggle; - break; - case 'k': /* allow insecure SSL connects */ - config->insecure_ok = toggle; - break; - case 'K': /* parse config file */ - if(parseconfig(nextarg, global)) - warnf(config, "error trying read config from the '%s' file\n", - nextarg); - break; - case 'l': - config->dirlistonly = toggle; /* only list the names of the FTP dir */ - break; - case 'L': - config->followlocation = toggle; /* Follow Location: HTTP headers */ - switch (subletter) { - case 't': - /* Continue to send authentication (user+password) when following - * locations, even when hostname changed */ - config->unrestricted_auth = toggle; - break; - } - break; - case 'm': - /* specified max time */ - err = str2udouble(&config->timeout, nextarg); - if(err) - return err; - break; - case 'M': /* M for manual, huge help */ - if(toggle) { /* --no-manual shows no manual... */ -#ifdef USE_MANUAL - return PARAM_MANUAL_REQUESTED; -#else - warnf(config, - "built-in manual was disabled at build-time!\n"); - return PARAM_OPTION_UNKNOWN; -#endif - } - break; - case 'n': - switch(subletter) { - case 'o': /* CA info PEM file */ - /* use .netrc or URL */ - config->netrc_opt = toggle; - break; - case 'e': /* netrc-file */ - GetStr(&config->netrc_file, nextarg); - break; - default: - /* pick info from .netrc, if this is used for http, curl will - automatically enfore user+password with the request */ - config->netrc = toggle; - break; - } - break; - case 'N': - /* disable the output I/O buffering. note that the option is called - --buffer but is mostly used in the negative form: --no-buffer */ - if(longopt) - config->nobuffer = (!toggle)?TRUE:FALSE; - else - config->nobuffer = toggle; - break; - case 'O': /* --remote-name */ - if(subletter == 'a') { /* --remote-name-all */ - config->default_node_flags = toggle?GETOUT_USEREMOTE:0; - break; - } - /* fall-through! */ - case 'o': /* --output */ - /* output file */ - { - struct getout *url; - if(config->url_out || ((config->url_out = config->url_list) != NULL)) { - /* there's a node here, if it already is filled-in continue to find - an "empty" node */ - while(config->url_out && (config->url_out->flags & GETOUT_OUTFILE)) - config->url_out = config->url_out->next; - } - - /* now there might or might not be an available node to fill in! */ - - if(config->url_out) - /* existing node */ - url = config->url_out; - else - /* there was no free node, create one! */ - url = new_getout(config); - - if(!url) - return PARAM_NO_MEM; - else { - /* fill in the outfile */ - if('o' == letter) { - GetStr(&url->outfile, nextarg); - url->flags &= ~GETOUT_USEREMOTE; /* switch off */ - } - else { - url->outfile = NULL; /* leave it */ - if(toggle) - url->flags |= GETOUT_USEREMOTE; /* switch on */ - else - url->flags &= ~GETOUT_USEREMOTE; /* switch off */ - } - url->flags |= GETOUT_OUTFILE; - } - } - break; - case 'P': - /* This makes the FTP sessions use PORT instead of PASV */ - /* use <eth0> or <192.168.10.10> style addresses. Anything except - this will make us try to get the "default" address. - NOTE: this is a changed behaviour since the released 4.1! - */ - GetStr(&config->ftpport, nextarg); - break; - case 'p': - /* proxy tunnel for non-http protocols */ - config->proxytunnel = toggle; - break; - - case 'q': /* if used first, already taken care of, we do it like - this so we don't cause an error! */ - break; - case 'Q': - /* QUOTE command to send to FTP server */ - switch(nextarg[0]) { - case '-': - /* prefixed with a dash makes it a POST TRANSFER one */ - nextarg++; - err = add2list(&config->postquote, nextarg); - break; - case '+': - /* prefixed with a plus makes it a just-before-transfer one */ - nextarg++; - err = add2list(&config->prequote, nextarg); - break; - default: - err = add2list(&config->quote, nextarg); - break; - } - if(err) - return err; - break; - case 'r': - /* Specifying a range WITHOUT A DASH will create an illegal HTTP range - (and won't actually be range by definition). The man page previously - claimed that to be a good way, why this code is added to work-around - it. */ - if(ISDIGIT(*nextarg) && !strchr(nextarg, '-')) { - char buffer[32]; - curl_off_t off; - warnf(config, - "A specified range MUST include at least one dash (-). " - "Appending one for you!\n"); - off = curlx_strtoofft(nextarg, NULL, 10); - snprintf(buffer, sizeof(buffer), "%" CURL_FORMAT_CURL_OFF_T "-", off); - Curl_safefree(config->range); - config->range = strdup(buffer); - if(!config->range) - return PARAM_NO_MEM; - } - { - /* byte range requested */ - char *tmp_range; - tmp_range = nextarg; - while(*tmp_range != '\0') { - if(!ISDIGIT(*tmp_range) && *tmp_range != '-' && *tmp_range != ',') { - warnf(config,"Invalid character is found in given range. " - "A specified range MUST have only digits in " - "\'start\'-\'stop\'. The server's response to this " - "request is uncertain.\n"); - break; - } - tmp_range++; - } - /* byte range requested */ - GetStr(&config->range, nextarg); - } - break; - case 'R': - /* use remote file's time */ - config->remote_time = toggle; - break; - case 's': - /* don't show progress meter, don't show errors : */ - if(toggle) - global->mute = global->noprogress = TRUE; - else - global->mute = global->noprogress = FALSE; - if(global->showerror < 0) - /* if still on the default value, set showerror to the reverse of - toggle. This is to allow -S and -s to be used in an independent - order but still have the same effect. */ - global->showerror = (!toggle)?TRUE:FALSE; /* toggle off */ - break; - case 'S': - /* show errors */ - global->showerror = toggle?1:0; /* toggle on if used with -s */ - break; - case 't': - /* Telnet options */ - err = add2list(&config->telnet_options, nextarg); - if(err) - return err; - break; - case 'T': - /* we are uploading */ - { - struct getout *url; - if(config->url_out || ((config->url_out = config->url_list) != NULL)) { - /* there's a node here, if it already is filled-in continue to find - an "empty" node */ - while(config->url_out && (config->url_out->flags & GETOUT_UPLOAD)) - config->url_out = config->url_out->next; - } - - /* now there might or might not be an available node to fill in! */ - - if(config->url_out) - /* existing node */ - url = config->url_out; - else - /* there was no free node, create one! */ - url = new_getout(config); - - if(!url) - return PARAM_NO_MEM; - else { - url->flags |= GETOUT_UPLOAD; /* mark -T used */ - if(!*nextarg) - url->flags |= GETOUT_NOUPLOAD; - else { - /* "-" equals stdin, but keep the string around for now */ - GetStr(&url->infile, nextarg); - } - } - } - break; - case 'u': - /* user:password */ - GetStr(&config->userpwd, nextarg); - cleanarg(nextarg); - break; - case 'U': - /* Proxy user:password */ - GetStr(&config->proxyuserpwd, nextarg); - cleanarg(nextarg); - break; - case 'v': - if(toggle) { - /* the '%' thing here will cause the trace get sent to stderr */ - Curl_safefree(global->trace_dump); - global->trace_dump = strdup("%"); - if(!global->trace_dump) - return PARAM_NO_MEM; - if(global->tracetype && (global->tracetype != TRACE_PLAIN)) - warnf(config, - "-v, --verbose overrides an earlier trace/verbose option\n"); - global->tracetype = TRACE_PLAIN; - } - else - /* verbose is disabled here */ - global->tracetype = TRACE_NONE; - break; - case 'V': - if(toggle) /* --no-version yields no output! */ - return PARAM_VERSION_INFO_REQUESTED; - break; - - case 'w': - /* get the output string */ - if('@' == *nextarg) { - /* the data begins with a '@' letter, it means that a file name - or - (stdin) follows */ - FILE *file; - const char *fname; - nextarg++; /* pass the @ */ - if(curlx_strequal("-", nextarg)) { - fname = "<stdin>"; - file = stdin; - } - else { - fname = nextarg; - file = fopen(nextarg, "r"); - } - err = file2string(&config->writeout, file); - if(file && (file != stdin)) - fclose(file); - if(err) - return err; - if(!config->writeout) - warnf(config, "Failed to read %s", fname); - } - else - GetStr(&config->writeout, nextarg); - break; - case 'x': - /* proxy */ - GetStr(&config->proxy, nextarg); - config->proxyver = CURLPROXY_HTTP; - break; - case 'X': - /* set custom request */ - GetStr(&config->customrequest, nextarg); - break; - case 'y': - /* low speed time */ - err = str2unum(&config->low_speed_time, nextarg); - if(err) - return err; - if(!config->low_speed_limit) - config->low_speed_limit = 1; - break; - case 'Y': - /* low speed limit */ - err = str2unum(&config->low_speed_limit, nextarg); - if(err) - return err; - if(!config->low_speed_time) - config->low_speed_time = 30; - break; - case 'z': /* time condition coming up */ - switch(*nextarg) { - case '+': - nextarg++; - default: - /* If-Modified-Since: (section 14.28 in RFC2068) */ - config->timecond = CURL_TIMECOND_IFMODSINCE; - break; - case '-': - /* If-Unmodified-Since: (section 14.24 in RFC2068) */ - config->timecond = CURL_TIMECOND_IFUNMODSINCE; - nextarg++; - break; - case '=': - /* Last-Modified: (section 14.29 in RFC2068) */ - config->timecond = CURL_TIMECOND_LASTMOD; - nextarg++; - break; - } - now = time(NULL); - config->condtime=curl_getdate(nextarg, &now); - if(-1 == (int)config->condtime) { - /* now let's see if it is a file name to get the time from instead! */ - struct_stat statbuf; - if(-1 == stat(nextarg, &statbuf)) { - /* failed, remove time condition */ - config->timecond = CURL_TIMECOND_NONE; - warnf(config, - "Illegal date format for -z, --timecond (and not " - "a file name). Disabling time condition. " - "See curl_getdate(3) for valid date syntax.\n"); - } - else { - /* pull the time out from the file */ - config->condtime = statbuf.st_mtime; - } - } - break; - default: /* unknown flag */ - return PARAM_OPTION_UNKNOWN; - } - hit = -1; - - } while(!longopt && !singleopt && *++parse && !*usedarg); - - return PARAM_OK; -} - -ParameterError parse_args(struct GlobalConfig *config, int argc, - argv_item_t argv[]) -{ - int i; - bool stillflags; - char *orig_opt = NULL; - ParameterError result = PARAM_OK; - struct OperationConfig *operation = config->first; - - for(i = 1, stillflags = TRUE; i < argc && !result; i++) { - orig_opt = argv[i]; - - if(stillflags && ('-' == argv[i][0])) { - char *nextarg; - bool passarg; - char *flag = argv[i]; - - if(curlx_strequal("--", argv[i])) - /* This indicates the end of the flags and thus enables the - following (URL) argument to start with -. */ - stillflags = FALSE; - else { - nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL; - - result = getparameter(flag, nextarg, &passarg, config, operation); - if(result == PARAM_NEXT_OPERATION) { - /* Reset result as PARAM_NEXT_OPERATION is only used here and not - returned from this function */ - result = PARAM_OK; - - if(operation->url_list && operation->url_list->url) { - /* Allocate the next config */ - operation->next = malloc(sizeof(struct OperationConfig)); - if(operation->next) { - /* Initialise the newly created config */ - config_init(operation->next); - - /* Copy the easy handle */ - operation->next->easy = config->easy; - - /* Set the global config pointer */ - operation->next->global = config; - - /* Update the last operation pointer */ - config->last = operation->next; - - /* Move onto the new config */ - operation->next->prev = operation; - operation = operation->next; - } - else - result = PARAM_NO_MEM; - } - } - else if(!result && passarg) - i++; /* we're supposed to skip this */ - } - } - else { - bool used; - - /* Just add the URL please */ - result = getparameter((char *)"--url", argv[i], &used, config, - operation); - } - } - - if(result && result != PARAM_HELP_REQUESTED && - result != PARAM_MANUAL_REQUESTED && - result != PARAM_VERSION_INFO_REQUESTED && - result != PARAM_ENGINES_REQUESTED) { - const char *reason = param2text(result); - - if(orig_opt && !curlx_strequal(":", orig_opt)) - helpf(config->errors, "option %s: %s\n", orig_opt, reason); - else - helpf(config->errors, "%s\n", reason); - } - - return result; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_getparam.h b/external/libcurl_android/jni/libcurl/src/tool_getparam.h deleted file mode 100755 index ef4366b7..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_getparam.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef HEADER_CURL_TOOL_GETPARAM_H -#define HEADER_CURL_TOOL_GETPARAM_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -typedef enum { - PARAM_OK = 0, - PARAM_OPTION_AMBIGUOUS, - PARAM_OPTION_UNKNOWN, - PARAM_REQUIRES_PARAMETER, - PARAM_BAD_USE, - PARAM_HELP_REQUESTED, - PARAM_MANUAL_REQUESTED, - PARAM_VERSION_INFO_REQUESTED, - PARAM_ENGINES_REQUESTED, - PARAM_GOT_EXTRA_PARAMETER, - PARAM_BAD_NUMERIC, - PARAM_NEGATIVE_NUMERIC, - PARAM_LIBCURL_DOESNT_SUPPORT, - PARAM_NO_MEM, - PARAM_NEXT_OPERATION, - PARAM_LAST -} ParameterError; - -struct GlobalConfig; -struct OperationConfig; - -ParameterError getparameter(char *flag, char *nextarg, bool *usedarg, - struct GlobalConfig *global, - struct OperationConfig *operation); - -#ifdef UNITTESTS -void parse_cert_parameter(const char *cert_parameter, - char **certname, - char **passphrase); -#endif - -ParameterError parse_args(struct GlobalConfig *config, int argc, - argv_item_t argv[]); - -#endif /* HEADER_CURL_TOOL_GETPARAM_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_getpass.c b/external/libcurl_android/jni/libcurl/src/tool_getpass.c deleted file mode 100755 index 4c8dcb9f..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_getpass.c +++ /dev/null @@ -1,256 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifndef HAVE_GETPASS_R -/* this file is only for systems without getpass_r() */ - -#ifdef HAVE_FCNTL_H -# include <fcntl.h> -#endif - -#ifdef HAVE_TERMIOS_H -# include <termios.h> -#elif defined(HAVE_TERMIO_H) -# include <termio.h> -#endif - -#ifdef __VMS -# include descrip -# include starlet -# include iodef -#endif - -#ifdef WIN32 -# include <conio.h> -#endif - -#ifdef NETWARE -# ifdef __NOVELL_LIBC__ -# include <screen.h> -# else -# include <nwconio.h> -# endif -#endif - -#define _MPRINTF_REPLACE -#include <curl/mprintf.h> - -#include "tool_getpass.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef __VMS -/* VMS implementation */ -char *getpass_r(const char *prompt, char *buffer, size_t buflen) -{ - long sts; - short chan; - - /* MSK, 23-JAN-2004, iosbdef.h wasn't in VAX V7.2 or CC 6.4 */ - /* distribution so I created this. May revert back later to */ - /* struct _iosb iosb; */ - struct _iosb - { - short int iosb$w_status; /* status */ - short int iosb$w_bcnt; /* byte count */ - int unused; /* unused */ - } iosb; - - $DESCRIPTOR(ttdesc, "TT"); - - buffer[0] = '\0'; - sts = sys$assign(&ttdesc, &chan, 0, 0); - if(sts & 1) { - sts = sys$qiow(0, chan, - IO$_READPROMPT | IO$M_NOECHO, - &iosb, 0, 0, buffer, buflen, 0, 0, - prompt, strlen(prompt)); - - if((sts & 1) && (iosb.iosb$w_status & 1)) - buffer[iosb.iosb$w_bcnt] = '\0'; - - sts = sys$dassgn(chan); - } - return buffer; /* we always return success */ -} -#define DONE -#endif /* __VMS */ - -#ifdef __SYMBIAN32__ -# define getch() getchar() -#endif - -#if defined(WIN32) || defined(__SYMBIAN32__) - -char *getpass_r(const char *prompt, char *buffer, size_t buflen) -{ - size_t i; - fputs(prompt, stderr); - - for(i = 0; i < buflen; i++) { - buffer[i] = (char)getch(); - if(buffer[i] == '\r' || buffer[i] == '\n') { - buffer[i] = '\0'; - break; - } - else - if(buffer[i] == '\b') - /* remove this letter and if this is not the first key, remove the - previous one as well */ - i = i - (i >= 1 ? 2 : 1); - } -#ifndef __SYMBIAN32__ - /* since echo is disabled, print a newline */ - fputs("\n", stderr); -#endif - /* if user didn't hit ENTER, terminate buffer */ - if(i == buflen) - buffer[buflen-1] = '\0'; - - return buffer; /* we always return success */ -} -#define DONE -#endif /* WIN32 || __SYMBIAN32__ */ - -#ifdef NETWARE -/* NetWare implementation */ -#ifdef __NOVELL_LIBC__ -char *getpass_r(const char *prompt, char *buffer, size_t buflen) -{ - return getpassword(prompt, buffer, buflen); -} -#else -char *getpass_r(const char *prompt, char *buffer, size_t buflen) -{ - size_t i = 0; - - printf("%s", prompt); - do { - buffer[i++] = getch(); - if(buffer[i-1] == '\b') { - /* remove this letter and if this is not the first key, - remove the previous one as well */ - if(i > 1) { - printf("\b \b"); - i = i - 2; - } - else { - RingTheBell(); - i = i - 1; - } - } - else if(buffer[i-1] != 13) - putchar('*'); - - } while((buffer[i-1] != 13) && (i < buflen)); - buffer[i-1] = '\0'; - printf("\r\n"); - return buffer; -} -#endif /* __NOVELL_LIBC__ */ -#define DONE -#endif /* NETWARE */ - -#ifndef DONE /* not previously provided */ - -#ifdef HAVE_TERMIOS_H -# define struct_term struct termios -#elif defined(HAVE_TERMIO_H) -# define struct_term struct termio -#else -# undef struct_term -#endif - -static bool ttyecho(bool enable, int fd) -{ -#ifdef struct_term - static struct_term withecho; - static struct_term noecho; -#endif - if(!enable) { - /* disable echo by extracting the current 'withecho' mode and remove the - ECHO bit and set back the struct */ -#ifdef HAVE_TERMIOS_H - tcgetattr(fd, &withecho); - noecho = withecho; - noecho.c_lflag &= ~ECHO; - tcsetattr(fd, TCSANOW, &noecho); -#elif defined(HAVE_TERMIO_H) - ioctl(fd, TCGETA, &withecho); - noecho = withecho; - noecho.c_lflag &= ~ECHO; - ioctl(fd, TCSETA, &noecho); -#else - /* neither HAVE_TERMIO_H nor HAVE_TERMIOS_H, we can't disable echo! */ - (void)fd; - return FALSE; /* not disabled */ -#endif - return TRUE; /* disabled */ - } - else { - /* re-enable echo, assumes we disabled it before (and set the structs we - now use to reset the terminal status) */ -#ifdef HAVE_TERMIOS_H - tcsetattr(fd, TCSAFLUSH, &withecho); -#elif defined(HAVE_TERMIO_H) - ioctl(fd, TCSETA, &withecho); -#else - return FALSE; /* not enabled */ -#endif - return TRUE; /* enabled */ - } -} - -char *getpass_r(const char *prompt, /* prompt to display */ - char *password, /* buffer to store password in */ - size_t buflen) /* size of buffer to store password in */ -{ - ssize_t nread; - bool disabled; - int fd = open("/dev/tty", O_RDONLY); - if(-1 == fd) - fd = 1; /* use stdin if the tty couldn't be used */ - - disabled = ttyecho(FALSE, fd); /* disable terminal echo */ - - fputs(prompt, stderr); - nread = read(fd, password, buflen); - if(nread > 0) - password[--nread] = '\0'; /* zero terminate where enter is stored */ - else - password[0] = '\0'; /* got nothing */ - - if(disabled) { - /* if echo actually was disabled, add a newline */ - fputs("\n", stderr); - (void)ttyecho(TRUE, fd); /* enable echo */ - } - - if(1 != fd) - close(fd); - - return password; /* return pointer to buffer */ -} - -#endif /* DONE */ -#endif /* HAVE_GETPASS_R */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_getpass.h b/external/libcurl_android/jni/libcurl/src/tool_getpass.h deleted file mode 100755 index d4fc7e23..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_getpass.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef HEADER_CURL_TOOL_GETPASS_H -#define HEADER_CURL_TOOL_GETPASS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifndef HAVE_GETPASS_R -/* If there's a system-provided function named like this, we trust it is - also found in one of the standard headers. */ - -/* - * Returning NULL will abort the continued operation! - */ -char* getpass_r(const char *prompt, char* buffer, size_t buflen); -#endif - -#endif /* HEADER_CURL_TOOL_GETPASS_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_help.c b/external/libcurl_android/jni/libcurl/src/tool_help.c deleted file mode 100755 index c255be0b..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_help.c +++ /dev/null @@ -1,333 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "tool_panykey.h" -#include "tool_help.h" -#include "tool_libinfo.h" -#include "tool_version.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef MSDOS -# define USE_WATT32 -#endif - -/* - * A few of these source lines are >80 columns wide, but that's only because - * breaking the strings narrower makes this chunk look even worse! - * - * Starting with 7.18.0, this list of command line options is sorted based - * on the long option name. It is not done automatically, although a command - * line like the following can help out: - * - * curl --help | cut -c5- | grep "^-" | sort - */ - -static const char *const helptext[] = { - "Usage: curl [options...] <url>", - "Options: (H) means HTTP/HTTPS only, (F) means FTP only", - " --anyauth Pick \"any\" authentication method (H)", - " -a, --append Append to target file when uploading (F/SFTP)", - " --basic Use HTTP Basic Authentication (H)", - " --cacert FILE CA certificate to verify peer against (SSL)", - " --capath DIR CA directory to verify peer against (SSL)", - " -E, --cert CERT[:PASSWD] Client certificate file and password (SSL)", - " --cert-type TYPE Certificate file type (DER/PEM/ENG) (SSL)", - " --ciphers LIST SSL ciphers to use (SSL)", - " --compressed Request compressed response (using deflate or gzip)", - " -K, --config FILE Read config from FILE", - " --connect-timeout SECONDS Maximum time allowed for connection", - " -C, --continue-at OFFSET Resumed transfer OFFSET", - " -b, --cookie STRING/FILE Read cookies from STRING/FILE (H)", - " -c, --cookie-jar FILE Write cookies to FILE after operation (H)", - " --create-dirs Create necessary local directory hierarchy", - " --crlf Convert LF to CRLF in upload", - " --crlfile FILE Get a CRL list in PEM format from the given file", - " -d, --data DATA HTTP POST data (H)", - " --data-ascii DATA HTTP POST ASCII data (H)", - " --data-binary DATA HTTP POST binary data (H)", - " --data-urlencode DATA HTTP POST data url encoded (H)", - " --delegation STRING GSS-API delegation permission", - " --digest Use HTTP Digest Authentication (H)", - " --disable-eprt Inhibit using EPRT or LPRT (F)", - " --disable-epsv Inhibit using EPSV (F)", - " --dns-servers DNS server addrs to use: 1.1.1.1;2.2.2.2", - " --dns-interface Interface to use for DNS requests", - " --dns-ipv4-addr IPv4 address to use for DNS requests, dot notation", - " --dns-ipv6-addr IPv6 address to use for DNS requests, dot notation", - " -D, --dump-header FILE Write the headers to FILE", - " --egd-file FILE EGD socket path for random data (SSL)", - " --engine ENGINE Crypto engine (use \"--engine list\" for list) (SSL)", -#ifdef USE_ENVIRONMENT - " --environment Write results to environment variables (RISC OS)", -#endif - " -f, --fail Fail silently (no output at all) on HTTP errors (H)", - " -F, --form CONTENT Specify HTTP multipart POST data (H)", - " --form-string STRING Specify HTTP multipart POST data (H)", - " --ftp-account DATA Account data string (F)", - " --ftp-alternative-to-user COMMAND " - "String to replace \"USER [name]\" (F)", - " --ftp-create-dirs Create the remote dirs if not present (F)", - " --ftp-method [MULTICWD/NOCWD/SINGLECWD] Control CWD usage (F)", - " --ftp-pasv Use PASV/EPSV instead of PORT (F)", - " -P, --ftp-port ADR Use PORT with given address instead of PASV (F)", - " --ftp-skip-pasv-ip Skip the IP address for PASV (F)\n" - " --ftp-pret Send PRET before PASV (for drftpd) (F)", - " --ftp-ssl-ccc Send CCC after authenticating (F)", - " --ftp-ssl-ccc-mode ACTIVE/PASSIVE Set CCC mode (F)", - " --ftp-ssl-control Require SSL/TLS for FTP login, " - "clear for transfer (F)", - " -G, --get Send the -d data with a HTTP GET (H)", - " -g, --globoff Disable URL sequences and ranges using {} and []", - " -H, --header LINE Pass custom header LINE to server (H)", - " -I, --head Show document info only", - " -h, --help This help text", - " --hostpubmd5 MD5 " - "Hex-encoded MD5 string of the host public key. (SSH)", - " -0, --http1.0 Use HTTP 1.0 (H)", - " --http1.1 Use HTTP 1.1 (H)", - " --http2 Use HTTP 2 (H)", - " --ignore-content-length Ignore the HTTP Content-Length header", - " -i, --include Include protocol headers in the output (H/F)", - " -k, --insecure Allow connections to SSL sites without certs (H)", - " --interface INTERFACE Use network INTERFACE (or address)", - " -4, --ipv4 Resolve name to IPv4 address", - " -6, --ipv6 Resolve name to IPv6 address", - " -j, --junk-session-cookies Ignore session cookies read from file (H)", - " --keepalive-time SECONDS Wait SECONDS between keepalive probes", - " --key KEY Private key file name (SSL/SSH)", - " --key-type TYPE Private key file type (DER/PEM/ENG) (SSL)", - " --krb LEVEL Enable Kerberos with security LEVEL (F)", -#ifndef CURL_DISABLE_LIBCURL_OPTION - " --libcurl FILE Dump libcurl equivalent code of this command line", -#endif - " --limit-rate RATE Limit transfer speed to RATE", - " -l, --list-only List only mode (F/POP3)", - " --local-port RANGE Force use of RANGE for local port numbers", - " -L, --location Follow redirects (H)", - " --location-trusted " - "Like '--location', and send auth to other hosts (H)", - " --login-options OPTIONS Server login options (IMAP, POP3, SMTP)", - " -M, --manual Display the full manual", - " --mail-from FROM Mail from this address (SMTP)", - " --mail-rcpt TO Mail to this/these addresses (SMTP)", - " --mail-auth AUTH Originator address of the original email (SMTP)", - " --max-filesize BYTES Maximum file size to download (H/F)", - " --max-redirs NUM Maximum number of redirects allowed (H)", - " -m, --max-time SECONDS Maximum time allowed for the transfer", - " --metalink Process given URLs as metalink XML file", - " --negotiate Use HTTP Negotiate (SPNEGO) authentication (H)", - " -n, --netrc Must read .netrc for user name and password", - " --netrc-optional Use either .netrc or URL; overrides -n", - " --netrc-file FILE Specify FILE for netrc", - " -: --next " - "Allows the following URL to use a separate set of options", - " --no-alpn Disable the ALPN TLS extension (H)", - " -N, --no-buffer Disable buffering of the output stream", - " --no-keepalive Disable keepalive use on the connection", - " --no-npn Disable the NPN TLS extension (H)", - " --no-sessionid Disable SSL session-ID reusing (SSL)", - " --noproxy List of hosts which do not use proxy", - " --ntlm Use HTTP NTLM authentication (H)", - " --oauth2-bearer TOKEN OAuth 2 Bearer Token (IMAP, POP3, SMTP)", - " -o, --output FILE Write to FILE instead of stdout", - " --pass PASS Pass phrase for the private key (SSL/SSH)", - " --post301 " - "Do not switch to GET after following a 301 redirect (H)", - " --post302 " - "Do not switch to GET after following a 302 redirect (H)", - " --post303 " - "Do not switch to GET after following a 303 redirect (H)", - " -#, --progress-bar Display transfer progress as a progress bar", - " --proto PROTOCOLS Enable/disable PROTOCOLS", - " --proto-redir PROTOCOLS Enable/disable PROTOCOLS on redirect", - " -x, --proxy [PROTOCOL://]HOST[:PORT] Use proxy on given port", - " --proxy-anyauth Pick \"any\" proxy authentication method (H)", - " --proxy-basic Use Basic authentication on the proxy (H)", - " --proxy-digest Use Digest authentication on the proxy (H)", - " --proxy-negotiate " - "Use HTTP Negotiate (SPNEGO) authentication on the proxy (H)", - " --proxy-ntlm Use NTLM authentication on the proxy (H)", - " -U, --proxy-user USER[:PASSWORD] Proxy user and password", - " --proxy1.0 HOST[:PORT] Use HTTP/1.0 proxy on given port", - " -p, --proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)", - " --pubkey KEY Public key file name (SSH)", - " -Q, --quote CMD Send command(s) to server before transfer (F/SFTP)", - " --random-file FILE File for reading random data from (SSL)", - " -r, --range RANGE Retrieve only the bytes within RANGE", - " --raw Do HTTP \"raw\"; no transfer decoding (H)", - " -e, --referer Referer URL (H)", - " -J, --remote-header-name Use the header-provided filename (H)", - " -O, --remote-name Write output to a file named as the remote file", - " --remote-name-all Use the remote file name for all URLs", - " -R, --remote-time Set the remote file's time on the local output", - " -X, --request COMMAND Specify request command to use", - " --resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS", - " --retry NUM " - "Retry request NUM times if transient problems occur", - " --retry-delay SECONDS Wait SECONDS between retries", - " --retry-max-time SECONDS Retry only within this period", - " --sasl-ir Enable initial response in SASL authentication", - " -S, --show-error " - "Show error. With -s, make curl show errors when they occur", - " -s, --silent Silent mode (don't output anything)", - " --socks4 HOST[:PORT] SOCKS4 proxy on given host + port", - " --socks4a HOST[:PORT] SOCKS4a proxy on given host + port", - " --socks5 HOST[:PORT] SOCKS5 proxy on given host + port", - " --socks5-hostname HOST[:PORT] " - "SOCKS5 proxy, pass host name to proxy", -#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) - " --socks5-gssapi-service NAME SOCKS5 proxy service name for GSS-API", - " --socks5-gssapi-nec Compatibility with NEC SOCKS5 server", -#endif - " -Y, --speed-limit RATE " - "Stop transfers below RATE for 'speed-time' secs", - " -y, --speed-time SECONDS " - "Trigger 'speed-limit' abort after SECONDS (default: 30)", - " --ssl Try SSL/TLS (FTP, IMAP, POP3, SMTP)", - " --ssl-reqd Require SSL/TLS (FTP, IMAP, POP3, SMTP)", - " -2, --sslv2 Use SSLv2 (SSL)", - " -3, --sslv3 Use SSLv3 (SSL)", - " --ssl-allow-beast Allow security flaw to improve interop (SSL)", - " --stderr FILE Where to redirect stderr (use \"-\" for stdout)", - " --tcp-nodelay Use the TCP_NODELAY option", - " -t, --telnet-option OPT=VAL Set telnet option", - " --tftp-blksize VALUE Set TFTP BLKSIZE option (must be >512)", - " -z, --time-cond TIME Transfer based on a time condition", - " -1, --tlsv1 Use => TLSv1 (SSL)", - " --tlsv1.0 Use TLSv1.0 (SSL)", - " --tlsv1.1 Use TLSv1.1 (SSL)", - " --tlsv1.2 Use TLSv1.2 (SSL)", - " --trace FILE Write a debug trace to FILE", - " --trace-ascii FILE Like --trace, but without hex output", - " --trace-time Add time stamps to trace/verbose output", - " --tr-encoding Request compressed transfer encoding (H)", - " -T, --upload-file FILE Transfer FILE to destination", - " --url URL URL to work with", - " -B, --use-ascii Use ASCII/text transfer", - " -u, --user USER[:PASSWORD] Server user and password", - " --tlsuser USER TLS username", - " --tlspassword STRING TLS password", - " --tlsauthtype STRING TLS authentication type (default: SRP)", - " -A, --user-agent STRING Send User-Agent STRING to server (H)", - " -v, --verbose Make the operation more talkative", - " -V, --version Show version number and quit", -#ifdef USE_WATT32 - " --wdebug Turn on Watt-32 debugging", -#endif - " -w, --write-out FORMAT Use output FORMAT after completion", - " --xattr Store metadata in extended file attributes", - " -q Disable .curlrc (must be first parameter)", - NULL -}; - -#ifdef NETWARE -# define PRINT_LINES_PAUSE 23 -#endif - -#ifdef __SYMBIAN32__ -# define PRINT_LINES_PAUSE 16 -#endif - -struct feat { - const char *name; - int bitmask; -}; - -static const struct feat feats[] = { - {"AsynchDNS", CURL_VERSION_ASYNCHDNS}, - {"Debug", CURL_VERSION_DEBUG}, - {"TrackMemory", CURL_VERSION_CURLDEBUG}, - {"IDN", CURL_VERSION_IDN}, - {"IPv6", CURL_VERSION_IPV6}, - {"Largefile", CURL_VERSION_LARGEFILE}, - {"SSPI", CURL_VERSION_SSPI}, - {"GSS-API", CURL_VERSION_GSSAPI}, - {"SPNEGO", CURL_VERSION_SPNEGO}, - {"NTLM", CURL_VERSION_NTLM}, - {"NTLM_WB", CURL_VERSION_NTLM_WB}, - {"SSL", CURL_VERSION_SSL}, - {"krb4", CURL_VERSION_KERBEROS4}, - {"libz", CURL_VERSION_LIBZ}, - {"CharConv", CURL_VERSION_CONV}, - {"TLS-SRP", CURL_VERSION_TLSAUTH_SRP}, - {"HTTP2", CURL_VERSION_HTTP2} -}; - -void tool_help(void) -{ - int i; - for(i = 0; helptext[i]; i++) { - puts(helptext[i]); -#ifdef PRINT_LINES_PAUSE - if(i && ((i % PRINT_LINES_PAUSE) == 0)) - tool_pressanykey(); -#endif - } -} - -void tool_version_info(void) -{ - const char *const *proto; - - printf(CURL_ID "%s\n", curl_version()); - if(curlinfo->protocols) { - printf("Protocols: "); - for(proto = curlinfo->protocols; *proto; ++proto) { - printf("%s ", *proto); - } - puts(""); /* newline */ - } - if(curlinfo->features) { - unsigned int i; - printf("Features: "); - for(i = 0; i < sizeof(feats)/sizeof(feats[0]); i++) { - if(curlinfo->features & feats[i].bitmask) - printf("%s ", feats[i].name); - } -#ifdef USE_METALINK - printf("Metalink "); -#endif - puts(""); /* newline */ - } -} - -void tool_list_engines(CURL *curl) -{ - struct curl_slist *engines = NULL; - - /* Get the list of engines */ - curl_easy_getinfo(curl, CURLINFO_SSL_ENGINES, &engines); - - puts("Build-time engines:"); - if(engines) { - for(; engines; engines = engines->next) - printf(" %s\n", engines->data); - } - else { - puts(" <none>"); - } - - /* Cleanup the list of engines */ - curl_slist_free_all(engines); -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_help.h b/external/libcurl_android/jni/libcurl/src/tool_help.h deleted file mode 100755 index 9ef50069..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_help.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef HEADER_CURL_TOOL_HELP_H -#define HEADER_CURL_TOOL_HELP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -void tool_help(void); -void tool_list_engines(CURL *curl); -void tool_version_info(void); - -#endif /* HEADER_CURL_TOOL_HELP_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_helpers.c b/external/libcurl_android/jni/libcurl/src/tool_helpers.c deleted file mode 100755 index dbf32f8b..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_helpers.c +++ /dev/null @@ -1,77 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_msgs.h" -#include "tool_getparam.h" -#include "tool_helpers.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* -** Helper functions that are used from more tha one source file. -*/ - -const char *param2text(int res) -{ - ParameterError error = (ParameterError)res; - switch(error) { - case PARAM_GOT_EXTRA_PARAMETER: - return "had unsupported trailing garbage"; - case PARAM_OPTION_UNKNOWN: - return "is unknown"; - case PARAM_OPTION_AMBIGUOUS: - return "is ambiguous"; - case PARAM_REQUIRES_PARAMETER: - return "requires parameter"; - case PARAM_BAD_USE: - return "is badly used here"; - case PARAM_BAD_NUMERIC: - return "expected a proper numerical parameter"; - case PARAM_NEGATIVE_NUMERIC: - return "expected a positive numerical parameter"; - case PARAM_LIBCURL_DOESNT_SUPPORT: - return "the installed libcurl version doesn't support this"; - case PARAM_NO_MEM: - return "out of memory"; - default: - return "unknown error"; - } -} - -int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store) -{ - if((*store == HTTPREQ_UNSPEC) || - (*store == req)) { - *store = req; - return 0; - } - warnf(config, "You can only select one HTTP request!\n"); - return 1; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_helpers.h b/external/libcurl_android/jni/libcurl/src/tool_helpers.h deleted file mode 100755 index 73bcfc77..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_helpers.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef HEADER_CURL_TOOL_HELPERS_H -#define HEADER_CURL_TOOL_HELPERS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -const char *param2text(int res); - -int SetHTTPrequest(struct OperationConfig *config, HttpReq req, - HttpReq *store); - -#endif /* HEADER_CURL_TOOL_HELPERS_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_homedir.c b/external/libcurl_android/jni/libcurl/src/tool_homedir.c deleted file mode 100755 index 11bb4ef3..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_homedir.c +++ /dev/null @@ -1,95 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef HAVE_PWD_H -# include <pwd.h> -#endif - -#include "tool_homedir.h" - -#include "memdebug.h" /* keep this as LAST include */ - -static char *GetEnv(const char *variable, char do_expand) -{ - char *env = NULL; -#ifdef WIN32 - char buf1[1024], buf2[1024]; - DWORD rc; - - /* Don't use getenv(); it doesn't find variable added after program was - * started. Don't accept truncated results (i.e. rc >= sizeof(buf1)). */ - - rc = GetEnvironmentVariable(variable, buf1, sizeof(buf1)); - if(rc > 0 && rc < sizeof(buf1)) { - env = buf1; - variable = buf1; - } - if(do_expand && strchr(variable,'%')) { - /* buf2 == variable if not expanded */ - rc = ExpandEnvironmentStrings (variable, buf2, sizeof(buf2)); - if(rc > 0 && rc < sizeof(buf2) && - !strchr(buf2,'%')) /* no vars still unexpanded */ - env = buf2; - } -#else - (void)do_expand; - /* no length control */ - env = getenv(variable); -#endif - return (env && env[0]) ? strdup(env) : NULL; -} - -/* return the home directory of the current user as an allocated string */ -char *homedir(void) -{ - char *home; - - home = GetEnv("CURL_HOME", FALSE); - if(home) - return home; - - home = GetEnv("HOME", FALSE); - if(home) - return home; - -#if defined(HAVE_GETPWUID) && defined(HAVE_GETEUID) - { - struct passwd *pw = getpwuid(geteuid()); - - if(pw) { - home = pw->pw_dir; - if(home && home[0]) - home = strdup(home); - else - home = NULL; - } - } -#endif /* PWD-stuff */ -#ifdef WIN32 - home = GetEnv("APPDATA", TRUE); - if(!home) - home = GetEnv("%USERPROFILE%\\Application Data", TRUE); /* Normally only - on Win-2K/XP */ -#endif /* WIN32 */ - return home; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_homedir.h b/external/libcurl_android/jni/libcurl/src/tool_homedir.h deleted file mode 100755 index d5886155..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_homedir.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef HEADER_CURL_TOOL_HOMEDIR_H -#define HEADER_CURL_TOOL_HOMEDIR_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -char *homedir(void); - -#endif /* HEADER_CURL_TOOL_HOMEDIR_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_hugehelp.c b/external/libcurl_android/jni/libcurl/src/tool_hugehelp.c deleted file mode 100755 index eb6149d4..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_hugehelp.c +++ /dev/null @@ -1,8299 +0,0 @@ -#include "tool_setup.h" -#ifndef HAVE_LIBZ -/* - * NEVER EVER edit this manually, fix the mkhelp.pl script instead! - * Generation time: Wed Sep 10 00:40:56 2014 - */ -#ifdef USE_MANUAL -#include "tool_hugehelp.h" -void hugehelp(void) -{ - fputs( -" _ _ ____ _\n" -" Project ___| | | | _ \\| |\n" -" / __| | | | |_) | |\n" -" | (__| |_| | _ <| |___\n" -" \\___|\\___/|_| \\_\\_____|\n" -"\n" -"NAME\n" -" curl - transfer a URL\n" -"\n" -"SYNOPSIS\n" -" curl [options] [URL...]\n" -"\n" -"DESCRIPTION\n" -" curl is a tool to transfer data from or to a server, using one of the\n" -" supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,\n" -, stdout); - fputs( -" IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,\n" -" TELNET and TFTP). The command is designed to work without user inter-\n" -" action.\n" -"\n" -" curl offers a busload of useful tricks like proxy support, user authen-\n" -" tication, FTP upload, HTTP post, SSL connections, cookies, file trans-\n" -" fer resume, Metalink, and more. As you will see below, the number of\n" -" features will make your head spin!\n" -"\n" -, stdout); - fputs( -" curl is powered by libcurl for all transfer-related features. See\n" -" libcurl(3) for details.\n" -"\n" -"URL\n" -" The URL syntax is protocol-dependent. You'll find a detailed descrip-\n" -" tion in RFC 3986.\n" -"\n" -" You can specify multiple URLs or parts of URLs by writing part sets\n" -" within braces as in:\n" -"\n" -" http://site.{one,two,three}.com\n" -"\n" -" or you can get sequences of alphanumeric series by using [] as in:\n" -"\n" -" ftp://ftp.numericals.com/file[1-100].txt\n" -, stdout); - fputs( -" ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)\n" -" ftp://ftp.letters.com/file[a-z].txt\n" -"\n" -" Nested sequences are not supported, but you can use several ones next\n" -" to each other:\n" -"\n" -" http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html\n" -"\n" -" You can specify any amount of URLs on the command line. They will be\n" -" fetched in a sequential manner in the specified order.\n" -"\n" -, stdout); - fputs( -" You can specify a step counter for the ranges to get every Nth number\n" -" or letter:\n" -"\n" -" http://www.numericals.com/file[1-100:10].txt\n" -" http://www.letters.com/file[a-z:2].txt\n" -"\n" -" If you specify URL without protocol:// prefix, curl will attempt to\n" -" guess what protocol you might want. It will then default to HTTP but\n" -" try other protocols based on often-used host name prefixes. For exam-\n" -, stdout); - fputs( -" ple, for host names starting with \"ftp.\" curl will assume you want to\n" -" speak FTP.\n" -"\n" -" curl will do its best to use what you pass to it as a URL. It is not\n" -" trying to validate it as a syntactically correct URL by any means but\n" -" is instead very liberal with what it accepts.\n" -"\n" -" curl will attempt to re-use connections for multiple file transfers, so\n" -" that getting many files from the same server will not do multiple con-\n" -, stdout); - fputs( -" nects / handshakes. This improves speed. Of course this is only done on\n" -" files specified on a single command line and cannot be used between\n" -" separate curl invokes.\n" -"\n" -"PROGRESS METER\n" -" curl normally displays a progress meter during operations, indicating\n" -" the amount of transferred data, transfer speeds and estimated time\n" -" left, etc.\n" -"\n" -" curl displays this data to the terminal by default, so if you invoke\n" -, stdout); - fputs( -" curl to do an operation and it is about to write data to the terminal,\n" -" it disables the progress meter as otherwise it would mess up the output\n" -" mixing progress meter and response data.\n" -"\n" -" If you want a progress meter for HTTP POST or PUT requests, you need to\n" -" redirect the response output to a file, using shell redirect (>), -o\n" -" [file] or similar.\n" -"\n" -" It is not the same case for FTP upload as that operation does not spit\n" -, stdout); - fputs( -" out any response data to the terminal.\n" -"\n" -" If you prefer a progress \"bar\" instead of the regular meter, -# is your\n" -" friend.\n" -"OPTIONS\n" -" Options start with one or two dashes. Many of the options require an\n" -" additional value next to them.\n" -"\n" -" The short \"single-dash\" form of the options, -d for example, may be\n" -" used with or without a space between it and its value, although a space\n" -, stdout); - fputs( -" is a recommended separator. The long \"double-dash\" form, --data for\n" -" example, requires a space between it and its value.\n" -"\n" -" Short version options that don't need any additional values can be used\n" -" immediately next to each other, like for example you can specify all\n" -" the options -O, -L and -v at once as -OLv.\n" -"\n" -" In general, all boolean options are enabled with --option and yet again\n" -, stdout); - fputs( -" disabled with --no-option. That is, you use the exact same option name\n" -" but prefix it with \"no-\". However, in this list we mostly only list and\n" -" show the --option version of them. (This concept with --no options was\n" -" added in 7.19.0. Previously most options were toggled on/off on\n" -" repeated use of the same command line option.)\n" -"\n" -" -#, --progress-bar\n" -" Make curl display progress as a simple progress bar instead of\n" -, stdout); - fputs( -" the standard, more informational, meter.\n" -"\n" -" -:, --next\n" -" Tells curl to use a separate operation for the following URL and\n" -" associated options. This allows you to send several URL\n" -" requests, each with their own specific options, for example,\n" -" such as different user names or custom requests for each. (Added\n" -" in 7.36.0)\n" -"\n" -" -0, --http1.0\n" -, stdout); - fputs( -" (HTTP) Tells curl to use HTTP version 1.0 instead of using its\n" -" internally preferred: HTTP 1.1.\n" -"\n" -" --http1.1\n" -" (HTTP) Tells curl to use HTTP version 1.1. This is the internal\n" -" default version. (Added in 7.33.0)\n" -"\n" -" --http2\n" -" (HTTP) Tells curl to issue its requests using HTTP 2. This\n" -" requires that the underlying libcurl was built to support it.\n" -" (Added in 7.33.0)\n" -"\n" -" --no-npn\n" -, stdout); - fputs( -" Disable the NPN TLS extension. NPN is enabled by default if\n" -" libcurl was built with an SSL library that supports NPN. NPN is\n" -" used by a libcurl that supports HTTP 2 to negotiate HTTP 2 sup-\n" -" port with the server during https sessions.\n" -"\n" -" (Added in 7.36.0)\n" -"\n" -" --no-alpn\n" -" Disable the ALPN TLS extension. ALPN is enabled by default if\n" -, stdout); - fputs( -" libcurl was built with an SSL library that supports ALPN. ALPN\n" -" is used by a libcurl that supports HTTP 2 to negotiate HTTP 2\n" -" support with the server during https sessions.\n" -"\n" -" (Added in 7.36.0)\n" -"\n" -" -1, --tlsv1\n" -" (SSL) Forces curl to use TLS version 1.x when negotiating with a\n" -" remote TLS server. You can use options --tlsv1.0, --tlsv1.1,\n" -, stdout); - fputs( -" and --tlsv1.2 to control the TLS version more precisely (if the\n" -" SSL backend in use supports such a level of control).\n" -"\n" -" -2, --sslv2\n" -" (SSL) Forces curl to use SSL version 2 when negotiating with a\n" -" remote SSL server.\n" -"\n" -" -3, --sslv3\n" -" (SSL) Forces curl to use SSL version 3 when negotiating with a\n" -" remote SSL server.\n" -"\n" -" -4, --ipv4\n" -, stdout); - fputs( -" If curl is capable of resolving an address to multiple IP ver-\n" -" sions (which it is if it is IPv6-capable), this option tells\n" -" curl to resolve names to IPv4 addresses only.\n" -"\n" -" -6, --ipv6\n" -" If curl is capable of resolving an address to multiple IP ver-\n" -" sions (which it is if it is IPv6-capable), this option tells\n" -" curl to resolve names to IPv6 addresses only.\n" -"\n" -" -a, --append\n" -, stdout); - fputs( -" (FTP/SFTP) When used in an upload, this will tell curl to append\n" -" to the target file instead of overwriting it. If the file\n" -" doesn't exist, it will be created. Note that this flag is\n" -" ignored by some SSH servers (including OpenSSH).\n" -"\n" -" -A, --user-agent <agent string>\n" -" (HTTP) Specify the User-Agent string to send to the HTTP server.\n" -" Some badly done CGIs fail if this field isn't set to\n" -, stdout); - fputs( -" \"Mozilla/4.0\". To encode blanks in the string, surround the\n" -" string with single quote marks. This can also be set with the\n" -" -H, --header option of course.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --anyauth\n" -" (HTTP) Tells curl to figure out authentication method by itself,\n" -" and use the most secure one the remote site claims to support.\n" -, stdout); - fputs( -" This is done by first doing a request and checking the response-\n" -" headers, thus possibly inducing an extra network round-trip.\n" -" This is used instead of setting a specific authentication\n" -" method, which you can do with --basic, --digest, --ntlm, and\n" -" --negotiate.\n" -"\n" -" Note that using --anyauth is not recommended if you do uploads\n" -, stdout); - fputs( -" from stdin, since it may require data to be sent twice and then\n" -" the client must be able to rewind. If the need should arise when\n" -" uploading from stdin, the upload operation will fail.\n" -"\n" -" -b, --cookie <name=data>\n" -" (HTTP) Pass the data to the HTTP server as a cookie. It is sup-\n" -" posedly the data previously received from the server in a \"Set-\n" -" Cookie:\" line. The data should be in the format \"NAME1=VALUE1;\n" -, stdout); - fputs( -" NAME2=VALUE2\".\n" -"\n" -" If no '=' symbol is used in the line, it is treated as a file-\n" -" name to use to read previously stored cookie lines from, which\n" -" should be used in this session if they match. Using this method\n" -" also activates the \"cookie parser\" which will make curl record\n" -" incoming cookies too, which may be handy if you're using this in\n" -, stdout); - fputs( -" combination with the -L, --location option. The file format of\n" -" the file to read cookies from should be plain HTTP headers or\n" -" the Netscape/Mozilla cookie file format.\n" -"\n" -" NOTE that the file specified with -b, --cookie is only used as\n" -" input. No cookies will be stored in the file. To store cookies,\n" -" use the -c, --cookie-jar option or you could even save the HTTP\n" -, stdout); - fputs( -" headers to a file using -D, --dump-header!\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -B, --use-ascii\n" -" (FTP/LDAP) Enable ASCII transfer. For FTP, this can also be\n" -" enforced by using an URL that ends with \";type=A\". This option\n" -" causes data sent to stdout to be in text mode for win32 systems.\n" -"\n" -" --basic\n" -" (HTTP) Tells curl to use HTTP Basic authentication. This is the\n" -, stdout); - fputs( -" default and this option is usually pointless, unless you use it\n" -" to override a previously set option that sets a different\n" -" authentication method (such as --ntlm, --digest, or --negoti-\n" -" ate).\n" -"\n" -" -c, --cookie-jar <file name>\n" -" (HTTP) Specify to which file you want curl to write all cookies\n" -" after a completed operation. Curl writes all cookies previously\n" -, stdout); - fputs( -" read from a specified file as well as all cookies received from\n" -" remote server(s). If no cookies are known, no file will be writ-\n" -" ten. The file will be written using the Netscape cookie file\n" -" format. If you set the file name to a single dash, \"-\", the\n" -" cookies will be written to stdout.\n" -"\n" -" This command line option will activate the cookie engine that\n" -, stdout); - fputs( -" makes curl record and use cookies. Another way to activate it is\n" -" to use the -b, --cookie option.\n" -"\n" -" If the cookie jar can't be created or written to, the whole curl\n" -" operation won't fail or even report an error clearly. Using -v\n" -" will get a warning displayed, but that is the only visible feed-\n" -" back you get about this possibly lethal situation.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last specified file\n" -" name will be used.\n" -"\n" -" -C, --continue-at <offset>\n" -" Continue/Resume a previous file transfer at the given offset.\n" -" The given offset is the exact number of bytes that will be\n" -" skipped, counting from the beginning of the source file before\n" -" it is transferred to the destination. If used with uploads, the\n" -, stdout); - fputs( -" FTP server command SIZE will not be used by curl.\n" -"\n" -" Use \"-C -\" to tell curl to automatically find out where/how to\n" -" resume the transfer. It then uses the given output/input files\n" -" to figure that out.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --ciphers <list of ciphers>\n" -" (SSL) Specifies which ciphers to use in the connection. The list\n" -, stdout); - fputs( -" of ciphers must specify valid ciphers. Read up on SSL cipher\n" -" list details on this URL:\n" -" http://www.openssl.org/docs/apps/ciphers.html\n" -"\n" -" NSS ciphers are done differently than OpenSSL and GnuTLS. The\n" -" full list of NSS ciphers is in the NSSCipherSuite entry at this\n" -" URL: http://git.fedora-\n" -, stdout); - fputs( -" hosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --compressed\n" -" (HTTP) Request a compressed response using one of the algorithms\n" -" curl supports, and save the uncompressed document. If this\n" -" option is used and the server sends an unsupported encoding,\n" -" curl will report an error.\n" -"\n" -" --connect-timeout <seconds>\n" -, stdout); - fputs( -" Maximum time in seconds that you allow the connection to the\n" -" server to take. This only limits the connection phase, once\n" -" curl has connected this option is of no more use. Since 7.32.0,\n" -" this option accepts decimal values, but the actual timeout will\n" -" decrease in accuracy as the specified timeout increases in deci-\n" -" mal precision. See also the -m, --max-time option.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last one will be used.\n" -"\n" -" --create-dirs\n" -" When used in conjunction with the -o option, curl will create\n" -" the necessary local directory hierarchy as needed. This option\n" -" creates the dirs mentioned with the -o option, nothing else. If\n" -" the -o file name uses no dir or if the dirs it mentions already\n" -" exist, no dir will be created.\n" -"\n" -, stdout); - fputs( -" To create remote directories when using FTP or SFTP, try --ftp-\n" -" create-dirs.\n" -"\n" -" --crlf (FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).\n" -"\n" -" --crlfile <file>\n" -" (HTTPS/FTPS) Provide a file using PEM format with a Certificate\n" -" Revocation List that may specify peer certificates that are to\n" -" be considered revoked.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -, stdout); - fputs( -" (Added in 7.19.7)\n" -" -d, --data <data>\n" -" (HTTP) Sends the specified data in a POST request to the HTTP\n" -" server, in the same way that a browser does when a user has\n" -" filled in an HTML form and presses the submit button. This will\n" -" cause curl to pass the data to the server using the content-type\n" -" application/x-www-form-urlencoded. Compare to -F, --form.\n" -"\n" -, stdout); - fputs( -" -d, --data is the same as --data-ascii. To post data purely\n" -" binary, you should instead use the --data-binary option. To URL-\n" -" encode the value of a form field you may use --data-urlencode.\n" -"\n" -" If any of these options is used more than once on the same com-\n" -" mand line, the data pieces specified will be merged together\n" -" with a separating &-symbol. Thus, using '-d name=daniel -d\n" -, stdout); - fputs( -" skill=lousy' would generate a post chunk that looks like\n" -" 'name=daniel&skill=lousy'.\n" -"\n" -" If you start the data with the letter @, the rest should be a\n" -" file name to read the data from, or - if you want curl to read\n" -" the data from stdin. Multiple files can also be specified. Post-\n" -" ing data from a file named 'foobar' would thus be done with\n" -, stdout); - fputs( -" --data @foobar. When --data is told to read from a file like\n" -" that, carriage returns and newlines will be stripped out.\n" -"\n" -" -D, --dump-header <file>\n" -" Write the protocol headers to the specified file.\n" -"\n" -" This option is handy to use when you want to store the headers\n" -" that an HTTP site sends to you. Cookies from the headers could\n" -" then be read in a second curl invocation by using the -b,\n" -, stdout); - fputs( -" --cookie option! The -c, --cookie-jar option is however a better\n" -" way to store cookies.\n" -"\n" -" When used in FTP, the FTP server response lines are considered\n" -" being \"headers\" and thus are saved there.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --data-ascii <data>\n" -" See -d, --data.\n" -"\n" -" --data-binary <data>\n" -" (HTTP) This posts data exactly as specified with no extra pro-\n" -, stdout); - fputs( -" cessing whatsoever.\n" -"\n" -" If you start the data with the letter @, the rest should be a\n" -" filename. Data is posted in a similar manner as --data-ascii\n" -" does, except that newlines and carriage returns are preserved\n" -" and conversions are never done.\n" -"\n" -" If this option is used several times, the ones following the\n" -" first will append data as described in -d, --data.\n" -"\n" -" --data-urlencode <data>\n" -, stdout); - fputs( -" (HTTP) This posts data, similar to the other --data options with\n" -" the exception that this performs URL-encoding. (Added in 7.18.0)\n" -" To be CGI-compliant, the <data> part should begin with a name\n" -" followed by a separator and a content specification. The <data>\n" -" part can be passed to curl using one of the following syntaxes:\n" -"\n" -" content\n" -" This will make curl URL-encode the content and pass that\n" -, stdout); - fputs( -" on. Just be careful so that the content doesn't contain\n" -" any = or @ symbols, as that will then make the syntax\n" -" match one of the other cases below!\n" -"\n" -" =content\n" -" This will make curl URL-encode the content and pass that\n" -" on. The preceding = symbol is not included in the data.\n" -"\n" -" name=content\n" -, stdout); - fputs( -" This will make curl URL-encode the content part and pass\n" -" that on. Note that the name part is expected to be URL-\n" -" encoded already.\n" -"\n" -" @filename\n" -" This will make curl load data from the given file\n" -" (including any newlines), URL-encode that data and pass\n" -" it on in the POST.\n" -"\n" -" name@filename\n" -, stdout); - fputs( -" This will make curl load data from the given file\n" -" (including any newlines), URL-encode that data and pass\n" -" it on in the POST. The name part gets an equal sign\n" -" appended, resulting in name=urlencoded-file-content. Note\n" -" that the name is expected to be URL-encoded already.\n" -"\n" -" --delegation LEVEL\n" -" Set LEVEL to tell the server what it is allowed to delegate when\n" -, stdout); - fputs( -" it comes to user credentials. Used with GSS/kerberos.\n" -"\n" -" none Don't allow any delegation.\n" -"\n" -" policy Delegates if and only if the OK-AS-DELEGATE flag is set\n" -" in the Kerberos service ticket, which is a matter of\n" -" realm policy.\n" -"\n" -" always Unconditionally allow the server to delegate.\n" -"\n" -" --digest\n" -" (HTTP) Enables HTTP Digest authentication. This is an authenti-\n" -, stdout); - fputs( -" cation scheme that prevents the password from being sent over\n" -" the wire in clear text. Use this in combination with the normal\n" -" -u, --user option to set user name and password. See also\n" -" --ntlm, --negotiate and --anyauth for related options.\n" -"\n" -" If this option is used several times, only the first one is\n" -" used.\n" -"\n" -" --disable-eprt\n" -, stdout); - fputs( -" (FTP) Tell curl to disable the use of the EPRT and LPRT commands\n" -" when doing active FTP transfers. Curl will normally always first\n" -" attempt to use EPRT, then LPRT before using PORT, but with this\n" -" option, it will use PORT right away. EPRT and LPRT are exten-\n" -" sions to the original FTP protocol, and may not work on all\n" -" servers, but they enable more functionality in a better way than\n" -, stdout); - fputs( -" the traditional PORT command.\n" -"\n" -" --eprt can be used to explicitly enable EPRT again and --no-eprt\n" -" is an alias for --disable-eprt.\n" -"\n" -" Disabling EPRT only changes the active behavior. If you want to\n" -" switch to passive mode you need to not use -P, --ftp-port or\n" -" force it with --ftp-pasv.\n" -"\n" -" --disable-epsv\n" -" (FTP) Tell curl to disable the use of the EPSV command when\n" -, stdout); - fputs( -" doing passive FTP transfers. Curl will normally always first\n" -" attempt to use EPSV before PASV, but with this option, it will\n" -" not try using EPSV.\n" -"\n" -" --epsv can be used to explicitly enable EPSV again and --no-epsv\n" -" is an alias for --disable-epsv.\n" -"\n" -" Disabling EPSV only changes the passive behavior. If you want to\n" -" switch to active mode you need to use -P, --ftp-port.\n" -"\n" -, stdout); - fputs( -" --dns-interface <interface>\n" -" Tell curl to send outgoing DNS requests through <interface>.\n" -" This option is a counterpart to --interface (which does not\n" -" affect DNS). The supplied string must be an interface name (not\n" -" an address).\n" -"\n" -" This option requires that libcurl was built with a resolver\n" -" backend that supports this operation. The c-ares backend is the\n" -, stdout); - fputs( -" only such one. (Added in 7.33.0)\n" -"\n" -" --dns-ipv4-addr <ip-address>\n" -" Tell curl to bind to <ip-address> when making IPv4 DNS requests,\n" -" so that the DNS requests originate from this address. The argu-\n" -" ment should be a single IPv4 address.\n" -"\n" -" This option requires that libcurl was built with a resolver\n" -" backend that supports this operation. The c-ares backend is the\n" -, stdout); - fputs( -" only such one. (Added in 7.33.0)\n" -"\n" -" --dns-ipv6-addr <ip-address>\n" -" Tell curl to bind to <ip-address> when making IPv6 DNS requests,\n" -" so that the DNS requests originate from this address. The argu-\n" -" ment should be a single IPv6 address.\n" -"\n" -" This option requires that libcurl was built with a resolver\n" -" backend that supports this operation. The c-ares backend is the\n" -, stdout); - fputs( -" only such one. (Added in 7.33.0)\n" -"\n" -" --dns-servers <ip-address,ip-address>\n" -" Set the list of DNS servers to be used instead of the system\n" -" default. The list of IP addresses should be separated with com-\n" -" mas. Port numbers may also optionally be given as :<port-number>\n" -" after each IP address.\n" -"\n" -" This option requires that libcurl was built with a resolver\n" -, stdout); - fputs( -" backend that supports this operation. The c-ares backend is the\n" -" only such one. (Added in 7.33.0)\n" -"\n" -" -e, --referer <URL>\n" -" (HTTP) Sends the \"Referrer Page\" information to the HTTP server.\n" -" This can also be set with the -H, --header flag of course. When\n" -" used with -L, --location you can append \";auto\" to the --referer\n" -" URL to make curl automatically set the previous URL when it fol-\n" -, stdout); - fputs( -" lows a Location: header. The \";auto\" string can be used alone,\n" -" even if you don't set an initial --referer.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -E, --cert <certificate[:password]>\n" -" (SSL) Tells curl to use the specified client certificate file\n" -" when getting a file with HTTPS, FTPS or another SSL-based proto-\n" -" col. The certificate must be in PKCS#12 format if using Secure\n" -, stdout); - fputs( -" Transport, or PEM format if using any other engine. If the\n" -" optional password isn't specified, it will be queried for on the\n" -" terminal. Note that this option assumes a \"certificate\" file\n" -" that is the private key and the private certificate concate-\n" -" nated! See --cert and --key to specify them independently.\n" -"\n" -" If curl is built against the NSS SSL library then this option\n" -, stdout); - fputs( -" can tell curl the nickname of the certificate to use within the\n" -" NSS database defined by the environment variable SSL_DIR (or by\n" -" default /etc/pki/nssdb). If the NSS PEM PKCS#11 module (lib-\n" -" nsspem.so) is available then PEM files may be loaded. If you\n" -" want to use a file from the current directory, please precede it\n" -" with \"./\" prefix, in order to avoid confusion with a nickname.\n" -, stdout); - fputs( -" If the nickname contains \":\", it needs to be preceded by \"\\\" so\n" -" that it is not recognized as password delimiter. If the nick-\n" -" name contains \"\\\", it needs to be escaped as \"\\\\\" so that it is\n" -" not recognized as an escape character.\n" -"\n" -" (iOS and Mac OS X only) If curl is built against Secure Trans-\n" -" port, then the certificate string can either be the name of a\n" -, stdout); - fputs( -" certificate/private key in the system or user keychain, or the\n" -" path to a PKCS#12-encoded certificate and private key. If you\n" -" want to use a file from the current directory, please precede it\n" -" with \"./\" prefix, in order to avoid confusion with a nickname.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --engine <name>\n" -" Select the OpenSSL crypto engine to use for cipher operations.\n" -, stdout); - fputs( -" Use --engine list to print a list of build-time supported\n" -" engines. Note that not all (or none) of the engines may be\n" -" available at run-time.\n" -"\n" -" --environment\n" -" (RISC OS ONLY) Sets a range of environment variables, using the\n" -" names the -w option supports, to allow easier extraction of use-\n" -" ful information after having run curl.\n" -"\n" -" --egd-file <file>\n" -, stdout); - fputs( -" (SSL) Specify the path name to the Entropy Gathering Daemon\n" -" socket. The socket is used to seed the random engine for SSL\n" -" connections. See also the --random-file option.\n" -"\n" -" --cert-type <type>\n" -" (SSL) Tells curl what certificate type the provided certificate\n" -" is in. PEM, DER and ENG are recognized types. If not specified,\n" -" PEM is assumed.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last one will be used.\n" -"\n" -" --cacert <CA certificate>\n" -" (SSL) Tells curl to use the specified certificate file to verify\n" -" the peer. The file may contain multiple CA certificates. The\n" -" certificate(s) must be in PEM format. Normally curl is built to\n" -" use a default file for this, so this option is typically used to\n" -" alter that default file.\n" -"\n" -, stdout); - fputs( -" curl recognizes the environment variable named 'CURL_CA_BUNDLE'\n" -" if it is set, and uses the given path as a path to a CA cert\n" -" bundle. This option overrides that variable.\n" -"\n" -" The windows version of curl will automatically look for a CA\n" -" certs file named 'curl-ca-bundle.crt', either in the same direc-\n" -" tory as curl.exe, or in the Current Working Directory, or in any\n" -" folder along your PATH.\n" -"\n" -, stdout); - fputs( -" If curl is built against the NSS SSL library, the NSS PEM\n" -" PKCS#11 module (libnsspem.so) needs to be available for this\n" -" option to work properly.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --capath <CA certificate directory>\n" -" (SSL) Tells curl to use the specified certificate directory to\n" -" verify the peer. Multiple paths can be provided by separating\n" -, stdout); - fputs( -" them with \":\" (e.g. \"path1:path2:path3\"). The certificates must\n" -" be in PEM format, and if curl is built against OpenSSL, the\n" -" directory must have been processed using the c_rehash utility\n" -" supplied with OpenSSL. Using --capath can allow OpenSSL-powered\n" -" curl to make SSL-connections much more efficiently than using\n" -" --cacert if the --cacert file contains many CA certificates.\n" -"\n" -, stdout); - fputs( -" If this option is set, the default capath value will be ignored,\n" -" and if it is used several times, the last one will be used.\n" -"\n" -" -f, --fail\n" -" (HTTP) Fail silently (no output at all) on server errors. This\n" -" is mostly done to better enable scripts etc to better deal with\n" -" failed attempts. In normal cases when an HTTP server fails to\n" -" deliver a document, it returns an HTML document stating so\n" -, stdout); - fputs( -" (which often also describes why and more). This flag will pre-\n" -" vent curl from outputting that and return error 22.\n" -"\n" -" This method is not fail-safe and there are occasions where non-\n" -" successful response codes will slip through, especially when\n" -" authentication is involved (response codes 401 and 407).\n" -"\n" -" -F, --form <name=content>\n" -" (HTTP) This lets curl emulate a filled-in form in which a user\n" -, stdout); - fputs( -" has pressed the submit button. This causes curl to POST data\n" -" using the Content-Type multipart/form-data according to RFC\n" -" 2388. This enables uploading of binary files etc. To force the\n" -" 'content' part to be a file, prefix the file name with an @\n" -" sign. To just get the content part from a file, prefix the file\n" -" name with the symbol <. The difference between @ and < is then\n" -, stdout); - fputs( -" that @ makes a file get attached in the post as a file upload,\n" -" while the < makes a text field and just get the contents for\n" -" that text field from a file.\n" -"\n" -" Example, to send your password file to the server, where 'pass-\n" -" word' is the name of the form-field to which /etc/passwd will be\n" -" the input:\n" -"\n" -" curl -F password=@/etc/passwd www.mypasswords.com\n" -"\n" -, stdout); - fputs( -" To read content from stdin instead of a file, use - as the file-\n" -" name. This goes for both @ and < constructs.\n" -"\n" -" You can also tell curl what Content-Type to use by using\n" -" 'type=', in a manner similar to:\n" -"\n" -" curl -F \"web=@index.html;type=text/html\" url.com\n" -"\n" -" or\n" -"\n" -" curl -F \"name=daniel;type=text/foo\" url.com\n" -"\n" -" You can also explicitly change the name field of a file upload\n" -, stdout); - fputs( -" part by setting filename=, like this:\n" -"\n" -" curl -F \"file=@localfile;filename=nameinpost\" url.com\n" -"\n" -" If filename/path contains ',' or ';', it must be quoted by dou-\n" -" ble-quotes like:\n" -"\n" -" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" url.com\n" -"\n" -" or\n" -"\n" -" curl -F 'file=@\"localfile\";filename=\"nameinpost\"' url.com\n" -"\n" -" Note that if a filename/path is quoted by double-quotes, any\n" -, stdout); - fputs( -" double-quote or backslash within the filename must be escaped by\n" -" backslash.\n" -"\n" -" See further examples and details in the MANUAL.\n" -"\n" -" This option can be used multiple times.\n" -"\n" -" --ftp-account [data]\n" -" (FTP) When an FTP server asks for \"account data\" after user name\n" -" and password has been provided, this data is sent off using the\n" -" ACCT command. (Added in 7.13.0)\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last one will be used.\n" -"\n" -" --ftp-alternative-to-user <command>\n" -" (FTP) If authenticating with the USER and PASS commands fails,\n" -" send this command. When connecting to Tumbleweed's Secure\n" -" Transport server over FTPS using a client certificate, using\n" -" \"SITE AUTH\" will tell the server to retrieve the username from\n" -" the certificate. (Added in 7.15.5)\n" -"\n" -, stdout); - fputs( -" --ftp-create-dirs\n" -" (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that\n" -" doesn't currently exist on the server, the standard behavior of\n" -" curl is to fail. Using this option, curl will instead attempt to\n" -" create missing directories.\n" -"\n" -" --ftp-method [method]\n" -" (FTP) Control what method curl should use to reach a file on an\n" -" FTP(S) server. The method argument should be one of the follow-\n" -, stdout); - fputs( -" ing alternatives:\n" -"\n" -" multicwd\n" -" curl does a single CWD operation for each path part in\n" -" the given URL. For deep hierarchies this means very many\n" -" commands. This is how RFC 1738 says it should be done.\n" -" This is the default but the slowest behavior.\n" -"\n" -" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n" -, stdout); - fputs( -" etc and give a full path to the server for all these com-\n" -" mands. This is the fastest behavior.\n" -"\n" -" singlecwd\n" -" curl does one CWD with the full target directory and then\n" -" operates on the file \"normally\" (like in the multicwd\n" -" case). This is somewhat more standards compliant than\n" -" 'nocwd' but without the full penalty of 'multicwd'.\n" -" (Added in 7.15.1)\n" -"\n" -, stdout); - fputs( -" --ftp-pasv\n" -" (FTP) Use passive mode for the data connection. Passive is the\n" -" internal default behavior, but using this option can be used to\n" -" override a previous -P/-ftp-port option. (Added in 7.11.0)\n" -"\n" -" If this option is used several times, only the first one is\n" -" used. Undoing an enforced passive really isn't doable but you\n" -" must then instead enforce the correct -P, --ftp-port again.\n" -"\n" -, stdout); - fputs( -" Passive mode means that curl will try the EPSV command first and\n" -" then PASV, unless --disable-epsv is used.\n" -"\n" -" --ftp-skip-pasv-ip\n" -" (FTP) Tell curl to not use the IP address the server suggests in\n" -" its response to curl's PASV command when curl connects the data\n" -" connection. Instead curl will re-use the same IP address it\n" -" already uses for the control connection. (Added in 7.14.2)\n" -"\n" -, stdout); - fputs( -" This option has no effect if PORT, EPRT or EPSV is used instead\n" -" of PASV.\n" -"\n" -" --ftp-pret\n" -" (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n" -" Certain FTP servers, mainly drftpd, require this non-standard\n" -" command for directory listings as well as up and downloads in\n" -" PASV mode. (Added in 7.20.x)\n" -"\n" -" --ftp-ssl-ccc\n" -, stdout); - fputs( -" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n" -" layer after authenticating. The rest of the control channel com-\n" -" munication will be unencrypted. This allows NAT routers to fol-\n" -" low the FTP transaction. The default mode is passive. See --ftp-\n" -" ssl-ccc-mode for other modes. (Added in 7.16.1)\n" -"\n" -" --ftp-ssl-ccc-mode [active/passive]\n" -, stdout); - fputs( -" (FTP) Use CCC (Clear Command Channel) Sets the CCC mode. The\n" -" passive mode will not initiate the shutdown, but instead wait\n" -" for the server to do it, and will not reply to the shutdown from\n" -" the server. The active mode initiates the shutdown and waits for\n" -" a reply from the server. (Added in 7.16.2)\n" -"\n" -" --ftp-ssl-control\n" -" (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n" -, stdout); - fputs( -" Allows secure authentication, but non-encrypted data transfers\n" -" for efficiency. Fails the transfer if the server doesn't sup-\n" -" port SSL/TLS. (Added in 7.16.0) that can still be used but will\n" -" be removed in a future version.\n" -"\n" -" --form-string <name=string>\n" -" (HTTP) Similar to --form except that the value string for the\n" -" named parameter is used literally. Leading '@' and '<' charac-\n" -, stdout); - fputs( -" ters, and the ';type=' string in the value have no special mean-\n" -" ing. Use this in preference to --form if there's any possibility\n" -" that the string value may accidentally trigger the '@' or '<'\n" -" features of --form.\n" -"\n" -" -g, --globoff\n" -" This option switches off the \"URL globbing parser\". When you set\n" -" this option, you can specify URLs that contain the letters {}[]\n" -, stdout); - fputs( -" without having them being interpreted by curl itself. Note that\n" -" these letters are not normal legal URL contents but they should\n" -" be encoded according to the URI standard.\n" -"\n" -" -G, --get\n" -" When used, this option will make all data specified with -d,\n" -" --data, --data-binary or --data-urlencode to be used in an HTTP\n" -" GET request instead of the POST request that otherwise would be\n" -, stdout); - fputs( -" used. The data will be appended to the URL with a '?' separator.\n" -" If used in combination with -I, the POST data will instead be\n" -" appended to the URL with a HEAD request.\n" -"\n" -" If this option is used several times, only the first one is\n" -" used. This is because undoing a GET doesn't make sense, but you\n" -" should then instead enforce the alternative method you prefer.\n" -"\n" -" -H, --header <header>\n" -, stdout); - fputs( -" (HTTP) Extra header to include in the request when sending HTTP\n" -" to a server. You may specify any number of extra headers. Note\n" -" that if you should add a custom header that has the same name as\n" -" one of the internal ones curl would use, your externally set\n" -" header will be used instead of the internal one. This allows you\n" -" to make even trickier stuff than curl would normally do. You\n" -, stdout); - fputs( -" should not replace internally set headers without knowing per-\n" -" fectly well what you're doing. Remove an internal header by giv-\n" -" ing a replacement without content on the right side of the\n" -" colon, as in: -H \"Host:\". If you send the custom header with no-\n" -" value then its header must be terminated with a semicolon, such\n" -" as -H \"X-Custom-Header;\" to send \"X-Custom-Header:\".\n" -"\n" -, stdout); - fputs( -" curl will make sure that each header you add/replace is sent\n" -" with the proper end-of-line marker, you should thus not add that\n" -" as a part of the header content: do not add newlines or carriage\n" -" returns, they will only mess things up for you.\n" -"\n" -" See also the -A, --user-agent and -e, --referer options.\n" -"\n" -" Starting in 7.37.0, you need --proxy-header to send custom head-\n" -" ers intended for a proxy.\n" -"\n" -, stdout); - fputs( -" Example:\n" -"\n" -" # curl -H \"X-First-Name: Joe\" http://192.168.0.1/\n" -"\n" -" This option can be used multiple times to add/replace/remove\n" -" multiple headers.\n" -"\n" -" --hostpubmd5 <md5>\n" -" (SCP/SFTP) Pass a string containing 32 hexadecimal digits. The\n" -" string should be the 128 bit MD5 checksum of the remote host's\n" -" public key, curl will refuse the connection with the host unless\n" -, stdout); - fputs( -" the md5sums match. (Added in 7.17.1)\n" -"\n" -" --ignore-content-length\n" -" (HTTP) Ignore the Content-Length header. This is particularly\n" -" useful for servers running Apache 1.x, which will report incor-\n" -" rect Content-Length for files larger than 2 gigabytes.\n" -"\n" -" -i, --include\n" -" (HTTP) Include the HTTP-header in the output. The HTTP-header\n" -" includes things like server-name, date of the document, HTTP-\n" -, stdout); - fputs( -" version and more...\n" -"\n" -" -I, --head\n" -" (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature\n" -" the command HEAD which this uses to get nothing but the header\n" -" of a document. When used on an FTP or FILE file, curl displays\n" -" the file size and last modification time only.\n" -"\n" -" --interface <name>\n" -" Perform an operation using a specified interface. You can enter\n" -, stdout); - fputs( -" interface name, IP address or host name. An example could look\n" -" like:\n" -"\n" -" curl --interface eth0:1 http://www.netscape.com/\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -j, --junk-session-cookies\n" -" (HTTP) When curl is told to read cookies from a given file, this\n" -" option will make it discard all \"session cookies\". This will\n" -, stdout); - fputs( -" basically have the same effect as if a new session is started.\n" -" Typical browsers always discard session cookies when they're\n" -" closed down.\n" -"\n" -" -J, --remote-header-name\n" -" (HTTP) This option tells the -O, --remote-name option to use the\n" -" server-specified Content-Disposition filename instead of\n" -" extracting a filename from the URL.\n" -"\n" -, stdout); - fputs( -" There's no attempt to decode %-sequences (yet) in the provided\n" -" file name, so this option may provide you with rather unexpected\n" -" file names.\n" -"\n" -" -k, --insecure\n" -" (SSL) This option explicitly allows curl to perform \"insecure\"\n" -" SSL connections and transfers. All SSL connections are attempted\n" -" to be made secure by using the CA certificate bundle installed\n" -, stdout); - fputs( -" by default. This makes all connections considered \"insecure\"\n" -" fail unless -k, --insecure is used.\n" -"\n" -" See this online resource for further details:\n" -" http://curl.haxx.se/docs/sslcerts.html\n" -"\n" -" -K, --config <config file>\n" -" Specify which config file to read curl arguments from. The con-\n" -" fig file is a text file in which command line arguments can be\n" -, stdout); - fputs( -" written which then will be used as if they were written on the\n" -" actual command line.\n" -"\n" -" Options and their parameters must be specified on the same con-\n" -" fig file line, separated by whitespace, colon, or the equals\n" -" sign. Long option names can optionally be given in the config\n" -" file without the initial double dashes and if so, the colon or\n" -, stdout); - fputs( -" equals characters can be used as separators. If the option is\n" -" specified with one or two dashes, there can be no colon or\n" -" equals character between the option and its parameter.\n" -"\n" -" If the parameter is to contain whitespace, the parameter must be\n" -" enclosed within quotes. Within double quotes, the following\n" -" escape sequences are available: \\\\, \\\", \\t, \\n, \\r and \\v. A\n" -, stdout); - fputs( -" backslash preceding any other letter is ignored. If the first\n" -" column of a config line is a '#' character, the rest of the line\n" -" will be treated as a comment. Only write one option per physical\n" -" line in the config file.\n" -"\n" -" Specify the filename to -K, --config as '-' to make curl read\n" -" the file from stdin.\n" -"\n" -" Note that to be able to specify a URL in the config file, you\n" -, stdout); - fputs( -" need to specify it using the --url option, and not by simply\n" -" writing the URL on its own line. So, it could look similar to\n" -" this:\n" -"\n" -" url = \"http://curl.haxx.se/docs/\"\n" -"\n" -" When curl is invoked, it always (unless -q is used) checks for a\n" -" default config file and uses it if found. The default config\n" -" file is checked for in the following places in this order:\n" -"\n" -, stdout); - fputs( -" 1) curl tries to find the \"home dir\": It first checks for the\n" -" CURL_HOME and then the HOME environment variables. Failing that,\n" -" it uses getpwuid() on UNIX-like systems (which returns the home\n" -" dir given the current user in your system). On Windows, it then\n" -" checks for the APPDATA variable, or as a last resort the '%USER-\n" -" PROFILE%\\Application Data'.\n" -"\n" -, stdout); - fputs( -" 2) On windows, if there is no _curlrc file in the home dir, it\n" -" checks for one in the same dir the curl executable is placed. On\n" -" UNIX-like systems, it will simply try to load .curlrc from the\n" -" determined home dir.\n" -"\n" -" # --- Example file ---\n" -" # this is a comment\n" -" url = \"curl.haxx.se\"\n" -" output = \"curlhere.html\"\n" -" user-agent = \"superagent/1.0\"\n" -"\n" -, stdout); - fputs( -" # and fetch another URL too\n" -" url = \"curl.haxx.se/docs/manpage.html\"\n" -" -O\n" -" referer = \"http://nowhereatall.com/\"\n" -" # --- End of example file ---\n" -"\n" -" This option can be used multiple times to load multiple config\n" -" files.\n" -"\n" -" --keepalive-time <seconds>\n" -" This option sets the time a connection needs to remain idle\n" -, stdout); - fputs( -" before sending keepalive probes and the time between individual\n" -" keepalive probes. It is currently effective on operating systems\n" -" offering the TCP_KEEPIDLE and TCP_KEEPINTVL socket options\n" -" (meaning Linux, recent AIX, HP-UX and more). This option has no\n" -" effect if --no-keepalive is used. (Added in 7.18.0)\n" -"\n" -" If this option is used several times, the last one will be used.\n" -, stdout); - fputs( -" If unspecified, the option defaults to 60 seconds.\n" -"\n" -" --key <key>\n" -" (SSL/SSH) Private key file name. Allows you to provide your pri-\n" -" vate key in this separate file.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --key-type <type>\n" -" (SSL) Private key file type. Specify which type your --key pro-\n" -" vided private key is. DER, PEM, and ENG are supported. If not\n" -, stdout); - fputs( -" specified, PEM is assumed.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --krb <level>\n" -" (FTP) Enable Kerberos authentication and use. The level must be\n" -" entered and should be one of 'clear', 'safe', 'confidential', or\n" -" 'private'. Should you use a level that is not one of these,\n" -" 'private' will instead be used.\n" -"\n" -, stdout); - fputs( -" This option requires a library built with kerberos4 support.\n" -" This is not very common. Use -V, --version to see if your curl\n" -" supports it.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -l, --list-only\n" -" (FTP) When listing an FTP directory, this switch forces a name-\n" -" only view. This is especially useful if the user wants to\n" -, stdout); - fputs( -" machine-parse the contents of an FTP directory since the normal\n" -" directory view doesn't use a standard look or format. When used\n" -" like this, the option causes a NLST command to be sent to the\n" -" server instead of LIST.\n" -"\n" -" Note: Some FTP servers list only files in their response to\n" -" NLST; they do not include sub-directories and symbolic links.\n" -"\n" -, stdout); - fputs( -" (POP3) When retrieving a specific email from POP3, this switch\n" -" forces a LIST command to be performed instead of RETR. This is\n" -" particularly useful if the user wants to see if a specific mes-\n" -" sage id exists on the server and what size it is.\n" -"\n" -" Note: When combined with -X, --request <command>, this option\n" -" can be used to send an UIDL command instead, so the user may use\n" -, stdout); - fputs( -" the email's unique identifier rather than it's message id to\n" -" make the request. (Added in 7.21.5)\n" -"\n" -" -L, --location\n" -" (HTTP/HTTPS) If the server reports that the requested page has\n" -" moved to a different location (indicated with a Location: header\n" -" and a 3XX response code), this option will make curl redo the\n" -" request on the new place. If used together with -i, --include or\n" -, stdout); - fputs( -" -I, --head, headers from all requested pages will be shown. When\n" -" authentication is used, curl only sends its credentials to the\n" -" initial host. If a redirect takes curl to a different host, it\n" -" won't be able to intercept the user+password. See also --loca-\n" -" tion-trusted on how to change this. You can limit the amount of\n" -" redirects to follow by using the --max-redirs option.\n" -"\n" -, stdout); - fputs( -" When curl follows a redirect and the request is not a plain GET\n" -" (for example POST or PUT), it will do the following request with\n" -" a GET if the HTTP response was 301, 302, or 303. If the response\n" -" code was any other 3xx code, curl will re-send the following\n" -" request using the same unmodified method.\n" -"\n" -" You can tell curl to not change the non-GET request method to\n" -, stdout); - fputs( -" GET after a 30x response by using the dedicated options for\n" -" that: --post301, --post302 and -post303.\n" -"\n" -" --libcurl <file>\n" -" Append this option to any ordinary curl command line, and you\n" -" will get a libcurl-using C source code written to the file that\n" -" does the equivalent of what your command-line operation does!\n" -"\n" -" If this option is used several times, the last given file name\n" -, stdout); - fputs( -" will be used. (Added in 7.16.1)\n" -"\n" -" --limit-rate <speed>\n" -" Specify the maximum transfer rate you want curl to use - for\n" -" both downloads and uploads. This feature is useful if you have a\n" -" limited pipe and you'd like your transfer not to use your entire\n" -" bandwidth. To make it slower than it otherwise would be.\n" -"\n" -" The given speed is measured in bytes/second, unless a suffix is\n" -, stdout); - fputs( -" appended. Appending 'k' or 'K' will count the number as kilo-\n" -" bytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it\n" -" gigabytes. Examples: 200K, 3m and 1G.\n" -"\n" -" The given rate is the average speed counted during the entire\n" -" transfer. It means that curl might use higher transfer speeds in\n" -" short bursts, but over time it uses no more than the given rate.\n" -, stdout); - fputs( -" If you also use the -Y, --speed-limit option, that option will\n" -" take precedence and might cripple the rate-limiting slightly, to\n" -" help keeping the speed-limit logic working.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --local-port <num>[-num]\n" -" Set a preferred number or range of local port numbers to use for\n" -" the connection(s). Note that port numbers by nature are a\n" -, stdout); - fputs( -" scarce resource that will be busy at times so setting this range\n" -" to something too narrow might cause unnecessary connection setup\n" -" failures. (Added in 7.15.2)\n" -"\n" -" --location-trusted\n" -" (HTTP/HTTPS) Like -L, --location, but will allow sending the\n" -" name + password to all hosts that the site may redirect to. This\n" -" may or may not introduce a security breach if the site redirects\n" -, stdout); - fputs( -" you to a site to which you'll send your authentication info\n" -" (which is plaintext in the case of HTTP Basic authentication).\n" -"\n" -" -m, --max-time <seconds>\n" -" Maximum time in seconds that you allow the whole operation to\n" -" take. This is useful for preventing your batch jobs from hang-\n" -" ing for hours due to slow networks or links going down. Since\n" -, stdout); - fputs( -" 7.32.0, this option accepts decimal values, but the actual time-\n" -" out will decrease in accuracy as the specified timeout increases\n" -" in decimal precision. See also the --connect-timeout option.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --login-options <options>\n" -" Specify the login options to use during server authentication.\n" -"\n" -, stdout); - fputs( -" You can use the login options to specify protocol specific\n" -" options that may be used during authentication. At present only\n" -" IMAP, POP3 and SMTP support login options. For more information\n" -" about the login options please see RFC 2384, RFC 5092 and IETF\n" -" draft draft-earhart-url-smtp-00.txt (Added in 7.34.0).\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --mail-auth <address>\n" -, stdout); - fputs( -" (SMTP) Specify a single address. This will be used to specify\n" -" the authentication address (identity) of a submitted message\n" -" that is being relayed to another server.\n" -"\n" -" (Added in 7.25.0)\n" -"\n" -" --mail-from <address>\n" -" (SMTP) Specify a single address that the given mail should get\n" -" sent from.\n" -"\n" -" (Added in 7.20.0)\n" -"\n" -" --max-filesize <bytes>\n" -, stdout); - fputs( -" Specify the maximum size (in bytes) of a file to download. If\n" -" the file requested is larger than this value, the transfer will\n" -" not start and curl will return with exit code 63.\n" -"\n" -" NOTE: The file size is not always known prior to download, and\n" -" for such files this option has no effect even if the file trans-\n" -" fer ends up being larger than this given limit. This concerns\n" -, stdout); - fputs( -" both FTP and HTTP transfers.\n" -"\n" -" --mail-rcpt <address>\n" -" (SMTP) Specify a single address, user name or mailing list name.\n" -" When performing a mail transfer, the recipient should specify a\n" -" valid email address to send the mail to. (Added in 7.20.0)\n" -"\n" -" When performing an address verification (VRFY command), the\n" -" recipient should be specified as the user name or user name and\n" -, stdout); - fputs( -" domain (as per Section 3.5 of RFC5321). (Added in 7.34.0)\n" -"\n" -" When performing a mailing list expand (EXPN command), the recip-\n" -" ient should be specified using the mailing list name, such as\n" -" \"Friends\" or \"London-Office\". (Added in 7.34.0)\n" -"\n" -" --max-redirs <num>\n" -" Set maximum number of redirection-followings allowed. If -L,\n" -" --location is used, this option can be used to prevent curl from\n" -, stdout); - fputs( -" following redirections \"in absurdum\". By default, the limit is\n" -" set to 50 redirections. Set this option to -1 to make it limit-\n" -" less.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --metalink\n" -" This option can tell curl to parse and process a given URI as\n" -" Metalink file (both version 3 and 4 (RFC 5854) are supported)\n" -, stdout); - fputs( -" and make use of the mirrors listed within for failover if there\n" -" are errors (such as the file or server not being available). It\n" -" will also verify the hash of the file after the download com-\n" -" pletes. The Metalink file itself is downloaded and processed in\n" -" memory and not stored in the local file system.\n" -"\n" -" Example to use a remote Metalink file:\n" -"\n" -, stdout); - fputs( -" curl --metalink http://www.example.com/example.metalink\n" -"\n" -" To use a Metalink file in the local file system, use FILE proto-\n" -" col (file://):\n" -"\n" -" curl --metalink file://example.metalink\n" -"\n" -" Please note that if FILE protocol is disabled, there is no way\n" -" to use a local Metalink file at the time of this writing. Also\n" -" note that if --metalink and --include are used together,\n" -, stdout); - fputs( -" --include will be ignored. This is because including headers in\n" -" the response will break Metalink parser and if the headers are\n" -" included in the file described in Metalink file, hash check will\n" -" fail.\n" -"\n" -" (Added in 7.27.0, if built against the libmetalink library.)\n" -"\n" -" -n, --netrc\n" -" Makes curl scan the .netrc (_netrc on Windows) file in the\n" -, stdout); - fputs( -" user's home directory for login name and password. This is typi-\n" -" cally used for FTP on UNIX. If used with HTTP, curl will enable\n" -" user authentication. See netrc(4) or ftp(1) for details on the\n" -" file format. Curl will not complain if that file doesn't have\n" -" the right permissions (it should not be either world- or group-\n" -" readable). The environment variable \"HOME\" is used to find the\n" -, stdout); - fputs( -" home directory.\n" -"\n" -" A quick and very simple example of how to setup a .netrc to\n" -" allow curl to FTP to the machine host.domain.com with user name\n" -" 'myself' and password 'secret' should look similar to:\n" -"\n" -" machine host.domain.com login myself password secret\n" -"\n" -" -N, --no-buffer\n" -" Disables the buffering of the output stream. In normal work sit-\n" -, stdout); - fputs( -" uations, curl will use a standard buffered output stream that\n" -" will have the effect that it will output the data in chunks, not\n" -" necessarily exactly when the data arrives. Using this option\n" -" will disable that buffering.\n" -"\n" -" Note that this is the negated option name documented. You can\n" -" thus use --buffer to enforce the buffering.\n" -"\n" -" --netrc-file\n" -, stdout); - fputs( -" This option is similar to --netrc, except that you provide the\n" -" path (absolute or relative) to the netrc file that Curl should\n" -" use. You can only specify one netrc file per invocation. If\n" -" several --netrc-file options are provided, only the last one\n" -" will be used. (Added in 7.21.5)\n" -"\n" -" This option overrides any use of --netrc as they are mutually\n" -, stdout); - fputs( -" exclusive. It will also abide by --netrc-optional if specified.\n" -"\n" -" --netrc-optional\n" -" Very similar to --netrc, but this option makes the .netrc usage\n" -" optional and not mandatory as the --netrc option does.\n" -"\n" -" --negotiate\n" -" (HTTP) Enables Negotiate (SPNEGO) authentication.\n" -"\n" -" If you want to enable Negotiate (SPNEGO) for proxy authentica-\n" -" tion, then use --proxy-negotiate.\n" -"\n" -, stdout); - fputs( -" This option requires a library built with GSS-API or SSPI sup-\n" -" port. Use -V, --version to see if your curl supports GSS-\n" -" API/SSPI and SPNEGO.\n" -"\n" -" When using this option, you must also provide a fake -u, --user\n" -" option to activate the authentication code properly. Sending a\n" -" '-u :' is enough as the user name and password from the -u\n" -" option aren't actually used.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, only the first one is\n" -" used.\n" -"\n" -" --no-keepalive\n" -" Disables the use of keepalive messages on the TCP connection, as\n" -" by default curl enables them.\n" -"\n" -" Note that this is the negated option name documented. You can\n" -" thus use --keepalive to enforce keepalive.\n" -"\n" -" --no-sessionid\n" -" (SSL) Disable curl's use of SSL session-ID caching. By default\n" -, stdout); - fputs( -" all transfers are done using the cache. Note that while nothing\n" -" should ever get hurt by attempting to reuse SSL session-IDs,\n" -" there seem to be broken SSL implementations in the wild that may\n" -" require you to disable this in order for you to succeed. (Added\n" -" in 7.16.0)\n" -"\n" -" Note that this is the negated option name documented. You can\n" -" thus use --sessionid to enforce session-ID caching.\n" -"\n" -, stdout); - fputs( -" --noproxy <no-proxy-list>\n" -" Comma-separated list of hosts which do not use a proxy, if one\n" -" is specified. The only wildcard is a single * character, which\n" -" matches all hosts, and effectively disables the proxy. Each name\n" -" in this list is matched as either a domain which contains the\n" -" hostname, or the hostname itself. For example, local.com would\n" -, stdout); - fputs( -" match local.com, local.com:80, and www.local.com, but not\n" -" www.notlocal.com. (Added in 7.19.4).\n" -"\n" -" --ntlm (HTTP) Enables NTLM authentication. The NTLM authentication\n" -" method was designed by Microsoft and is used by IIS web servers.\n" -" It is a proprietary protocol, reverse-engineered by clever peo-\n" -" ple and implemented in curl based on their efforts. This kind of\n" -, stdout); - fputs( -" behavior should not be endorsed, you should encourage everyone\n" -" who uses NTLM to switch to a public and documented authentica-\n" -" tion method instead, such as Digest.\n" -"\n" -" If you want to enable NTLM for your proxy authentication, then\n" -" use --proxy-ntlm.\n" -"\n" -" This option requires a library built with SSL support. Use -V,\n" -" --version to see if your curl supports NTLM.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, only the first one is\n" -" used.\n" -"\n" -" -o, --output <file>\n" -" Write output to <file> instead of stdout. If you are using {} or\n" -" [] to fetch multiple documents, you can use '#' followed by a\n" -" number in the <file> specifier. That variable will be replaced\n" -" with the current string for the URL being fetched. Like in:\n" -"\n" -, stdout); - fputs( -" curl http://{one,two}.site.com -o \"file_#1.txt\"\n" -"\n" -" or use several variables like:\n" -"\n" -" curl http://{site,host}.host[1-5].com -o \"#1_#2\"\n" -"\n" -" You may use this option as many times as the number of URLs you\n" -" have.\n" -"\n" -" See also the --create-dirs option to create the local directo-\n" -" ries dynamically. Specifying the output as '-' (a single dash)\n" -" will force the output to be done to stdout.\n" -"\n" -, stdout); - fputs( -" -O, --remote-name\n" -" Write output to a local file named like the remote file we get.\n" -" (Only the file part of the remote file is used, the path is cut\n" -" off.)\n" -"\n" -" The remote file name to use for saving is extracted from the\n" -" given URL, nothing else.\n" -"\n" -" Consequentially, the file will be saved in the current working\n" -" directory. If you want the file saved in a different directory,\n" -, stdout); - fputs( -" make sure you change current working directory before you invoke\n" -" curl with the -O, --remote-name flag!\n" -"\n" -" There is no URL decoding done on the file name. If it has %20 or\n" -" other URL encoded parts of the name, they will end up as-is as\n" -" file name.\n" -"\n" -" You may use this option as many times as the number of URLs you\n" -" have.\n" -"\n" -" --oauth2-bearer\n" -, stdout); - fputs( -" (IMAP, POP3, SMTP) Specify the Bearer Token for OAUTH 2.0 server\n" -" authentication. The Bearer Token is used in conjunction with the\n" -" user name which can be specified as part of the --url or -u,\n" -" --user options.\n" -"\n" -" The Bearer Token and user name are formatted according to RFC\n" -" 6750.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --proxy-header <header>\n" -, stdout); - fputs( -" (HTTP) Extra header to include in the request when sending HTTP\n" -" to a proxy. You may specify any number of extra headers. This is\n" -" the equivalent option to -H, --header but is for proxy communi-\n" -" cation only like in CONNECT requests when you want a separate\n" -" header sent to the proxy to what is sent to the actual remote\n" -" host.\n" -"\n" -" curl will make sure that each header you add/replace is sent\n" -, stdout); - fputs( -" with the proper end-of-line marker, you should thus not add that\n" -" as a part of the header content: do not add newlines or carriage\n" -" returns, they will only mess things up for you.\n" -"\n" -" Headers specified with this option will not be included in\n" -" requests that curl knows will not be sent to a proxy.\n" -"\n" -" This option can be used multiple times to add/replace/remove\n" -" multiple headers.\n" -, stdout); - fputs( -" (Added in 7.37.0)\n" -" -p, --proxytunnel\n" -" When an HTTP proxy is used (-x, --proxy), this option will cause\n" -" non-HTTP protocols to attempt to tunnel through the proxy\n" -" instead of merely using it to do HTTP-like operations. The tun-\n" -" nel approach is made with the HTTP proxy CONNECT request and\n" -" requires that the proxy allows direct connect to the remote port\n" -, stdout); - fputs( -" number curl wants to tunnel through to.\n" -"\n" -" -P, --ftp-port <address>\n" -" (FTP) Reverses the default initiator/listener roles when con-\n" -" necting with FTP. This switch makes curl use active mode. In\n" -" practice, curl then tells the server to connect back to the\n" -" client's specified address and port, while passive mode asks the\n" -" server to setup an IP address and port for it to connect to.\n" -, stdout); - fputs( -" <address> should be one of:\n" -"\n" -" interface\n" -" i.e \"eth0\" to specify which interface's IP address you\n" -" want to use (Unix only)\n" -"\n" -" IP address\n" -" i.e \"192.168.10.1\" to specify the exact IP address\n" -"\n" -" host name\n" -" i.e \"my.host.domain\" to specify the machine\n" -"\n" -" - make curl pick the same IP address that is already used\n" -, stdout); - fputs( -" for the control connection\n" -"\n" -" If this option is used several times, the last one will be used. Dis-\n" -" able the use of PORT with --ftp-pasv. Disable the attempt to use the\n" -" EPRT command instead of PORT by using --disable-eprt. EPRT is really\n" -" PORT++.\n" -"\n" -" Starting in 7.19.5, you can append \":[start]-[end]\" to the right of the\n" -" address, to tell curl what TCP port range to use. That means you spec-\n" -, stdout); - fputs( -" ify a port range, from a lower to a higher number. A single number\n" -" works as well, but do note that it increases the risk of failure since\n" -" the port may not be available.\n" -"\n" -" --pass <phrase>\n" -" (SSL/SSH) Passphrase for the private key\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --post301\n" -" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n" -, stdout); - fputs( -" POST requests into GET requests when following a 301 redirect-\n" -" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n" -" curl does the conversion by default to maintain consistency.\n" -" However, a server may require a POST to remain a POST after such\n" -" a redirection. This option is meaningful only when using -L,\n" -" --location (Added in 7.17.1)\n" -"\n" -" --post302\n" -, stdout); - fputs( -" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n" -" POST requests into GET requests when following a 302 redirect-\n" -" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n" -" curl does the conversion by default to maintain consistency.\n" -" However, a server may require a POST to remain a POST after such\n" -" a redirection. This option is meaningful only when using -L,\n" -, stdout); - fputs( -" --location (Added in 7.19.1)\n" -"\n" -" --post303\n" -" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n" -" POST requests into GET requests when following a 303 redirect-\n" -" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n" -" curl does the conversion by default to maintain consistency.\n" -" However, a server may require a POST to remain a POST after such\n" -, stdout); - fputs( -" a redirection. This option is meaningful only when using -L,\n" -" --location (Added in 7.26.0)\n" -"\n" -" --proto <protocols>\n" -" Tells curl to use the listed protocols for its initial\n" -" retrieval. Protocols are evaluated left to right, are comma sep-\n" -" arated, and are each a protocol name or 'all', optionally pre-\n" -" fixed by zero or more modifiers. Available modifiers are:\n" -"\n" -, stdout); - fputs( -" + Permit this protocol in addition to protocols already permit-\n" -" ted (this is the default if no modifier is used).\n" -"\n" -" - Deny this protocol, removing it from the list of protocols\n" -" already permitted.\n" -"\n" -" = Permit only this protocol (ignoring the list already permit-\n" -" ted), though subject to later modification by subsequent\n" -" entries in the comma separated list.\n" -"\n" -, stdout); - fputs( -" For example:\n" -"\n" -" --proto -ftps uses the default protocols, but disables ftps\n" -"\n" -" --proto -all,https,+http\n" -" only enables http and https\n" -"\n" -" --proto =http,https\n" -" also only enables http and https\n" -"\n" -" Unknown protocols produce a warning. This allows scripts to\n" -" safely rely on being able to disable potentially dangerous pro-\n" -, stdout); - fputs( -" tocols, without relying upon support for that protocol being\n" -" built into curl to avoid an error.\n" -"\n" -" This option can be used multiple times, in which case the effect\n" -" is the same as concatenating the protocols into one instance of\n" -" the option.\n" -"\n" -" (Added in 7.20.2)\n" -"\n" -" --proto-redir <protocols>\n" -" Tells curl to use the listed protocols after a redirect. See\n" -, stdout); - fputs( -" --proto for how protocols are represented.\n" -"\n" -" (Added in 7.20.2)\n" -"\n" -" --proxy-anyauth\n" -" Tells curl to pick a suitable authentication method when commu-\n" -" nicating with the given proxy. This might cause an extra\n" -" request/response round-trip. (Added in 7.13.2)\n" -"\n" -" --proxy-basic\n" -" Tells curl to use HTTP Basic authentication when communicating\n" -, stdout); - fputs( -" with the given proxy. Use --basic for enabling HTTP Basic with a\n" -" remote host. Basic is the default authentication method curl\n" -" uses with proxies.\n" -"\n" -" --proxy-digest\n" -" Tells curl to use HTTP Digest authentication when communicating\n" -" with the given proxy. Use --digest for enabling HTTP Digest with\n" -" a remote host.\n" -"\n" -" --proxy-negotiate\n" -, stdout); - fputs( -" Tells curl to use HTTP Negotiate (SPNEGO) authentication when\n" -" communicating with the given proxy. Use --negotiate for enabling\n" -" HTTP Negotiate (SPNEGO) with a remote host. (Added in 7.17.1)\n" -"\n" -" --proxy-ntlm\n" -" Tells curl to use HTTP NTLM authentication when communicating\n" -" with the given proxy. Use --ntlm for enabling NTLM with a remote\n" -" host.\n" -"\n" -" --proxy1.0 <proxyhost[:port]>\n" -, stdout); - fputs( -" Use the specified HTTP 1.0 proxy. If the port number is not\n" -" specified, it is assumed at port 1080.\n" -"\n" -" The only difference between this and the HTTP proxy option (-x,\n" -" --proxy), is that attempts to use CONNECT through the proxy will\n" -" specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n" -"\n" -" --pubkey <key>\n" -" (SSH) Public key file name. Allows you to provide your public\n" -, stdout); - fputs( -" key in this separate file.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -q If used as the first parameter on the command line, the curlrc\n" -" config file will not be read and used. See the -K, --config for\n" -" details on the default config file search path.\n" -"\n" -" -Q, --quote <command>\n" -" (FTP/SFTP) Send an arbitrary command to the remote FTP or SFTP\n" -, stdout); - fputs( -" server. Quote commands are sent BEFORE the transfer takes place\n" -" (just after the initial PWD command in an FTP transfer, to be\n" -" exact). To make commands take place after a successful transfer,\n" -" prefix them with a dash '-'. To make commands be sent after\n" -" curl has changed the working directory, just before the transfer\n" -" command(s), prefix the command with a '+' (this is only sup-\n" -, stdout); - fputs( -" ported for FTP). You may specify any number of commands. If the\n" -" server returns failure for one of the commands, the entire oper-\n" -" ation will be aborted. You must send syntactically correct FTP\n" -" commands as RFC 959 defines to FTP servers, or one of the com-\n" -" mands listed below to SFTP servers. This option can be used\n" -" multiple times. When speaking to an FTP server, prefix the com-\n" -, stdout); - fputs( -" mand with an asterisk (*) to make curl continue even if the com-\n" -" mand fails as by default curl will stop at first failure.\n" -"\n" -" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n" -" quote commands itself before sending them to the server. File\n" -" names may be quoted shell-style to embed spaces or special char-\n" -" acters. Following is the list of all supported SFTP quote com-\n" -" mands:\n" -"\n" -, stdout); - fputs( -" chgrp group file\n" -" The chgrp command sets the group ID of the file named by\n" -" the file operand to the group ID specified by the group\n" -" operand. The group operand is a decimal integer group ID.\n" -"\n" -" chmod mode file\n" -" The chmod command modifies the file mode bits of the\n" -" specified file. The mode operand is an octal integer mode\n" -" number.\n" -"\n" -, stdout); - fputs( -" chown user file\n" -" The chown command sets the owner of the file named by the\n" -" file operand to the user ID specified by the user oper-\n" -" and. The user operand is a decimal integer user ID.\n" -"\n" -" ln source_file target_file\n" -" The ln and symlink commands create a symbolic link at the\n" -" target_file location pointing to the source_file loca-\n" -" tion.\n" -"\n" -, stdout); - fputs( -" mkdir directory_name\n" -" The mkdir command creates the directory named by the\n" -" directory_name operand.\n" -"\n" -" pwd The pwd command returns the absolute pathname of the cur-\n" -" rent working directory.\n" -"\n" -" rename source target\n" -" The rename command renames the file or directory named by\n" -" the source operand to the destination path named by the\n" -, stdout); - fputs( -" target operand.\n" -"\n" -" rm file\n" -" The rm command removes the file specified by the file op-\n" -" erand.\n" -"\n" -" rmdir directory\n" -" The rmdir command removes the directory entry specified\n" -" by the directory operand, provided it is empty.\n" -"\n" -" symlink source_file target_file\n" -" See ln.\n" -"\n" -" -r, --range <range>\n" -, stdout); - fputs( -" (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial docu-\n" -" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n" -" Ranges can be specified in a number of ways.\n" -"\n" -" 0-499 specifies the first 500 bytes\n" -"\n" -" 500-999 specifies the second 500 bytes\n" -"\n" -" -500 specifies the last 500 bytes\n" -"\n" -" 9500- specifies the bytes from offset 9500 and forward\n" -"\n" -, stdout); - fputs( -" 0-0,-1 specifies the first and last byte only(*)(H)\n" -"\n" -" 500-700,600-799\n" -" specifies 300 bytes from offset 500(H)\n" -"\n" -" 100-199,500-599\n" -" specifies two separate 100-byte ranges(*)(H)\n" -"\n" -" (*) = NOTE that this will cause the server to reply with a multipart\n" -" response!\n" -"\n" -" Only digit characters (0-9) are valid in the 'start' and 'stop' fields\n" -, stdout); - fputs( -" of the 'start-stop' range syntax. If a non-digit character is given in\n" -" the range, the server's response will be unspecified, depending on the\n" -" server's configuration.\n" -"\n" -" You should also be aware that many HTTP/1.1 servers do not have this\n" -" feature enabled, so that when you attempt to get a range, you'll\n" -" instead get the whole document.\n" -"\n" -" FTP and SFTP range downloads only support the simple 'start-stop' syn-\n" -, stdout); - fputs( -" tax (optionally with one of the numbers omitted). FTP use depends on\n" -" the extended FTP command SIZE.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -R, --remote-time\n" -" When used, this will make curl attempt to figure out the time-\n" -" stamp of the remote file, and if that is available make the\n" -" local file get that same timestamp.\n" -"\n" -" --random-file <file>\n" -, stdout); - fputs( -" (SSL) Specify the path name to file containing what will be con-\n" -" sidered as random data. The data is used to seed the random\n" -" engine for SSL connections. See also the --egd-file option.\n" -"\n" -" --raw (HTTP) When used, it disables all internal HTTP decoding of con-\n" -" tent or transfer encodings and instead makes them passed on\n" -" unaltered, raw. (Added in 7.16.2)\n" -"\n" -" --remote-name-all\n" -, stdout); - fputs( -" This option changes the default action for all given URLs to be\n" -" dealt with as if -O, --remote-name were used for each one. So if\n" -" you want to disable that for a specific URL after --remote-name-\n" -" all has been used, you must use \"-o -\" or --no-remote-name.\n" -" (Added in 7.19.0)\n" -"\n" -" --resolve <host:port:address>\n" -" Provide a custom address for a specific host and port pair.\n" -, stdout); - fputs( -" Using this, you can make the curl requests(s) use a specified\n" -" address and prevent the otherwise normally resolved address to\n" -" be used. Consider it a sort of /etc/hosts alternative provided\n" -" on the command line. The port number should be the number used\n" -" for the specific protocol the host will be used for. It means\n" -" you need several entries if you want to provide address for the\n" -, stdout); - fputs( -" same host but different ports.\n" -"\n" -" This option can be used many times to add many host names to\n" -" resolve.\n" -"\n" -" (Added in 7.21.3)\n" -"\n" -" --retry <num>\n" -" If a transient error is returned when curl tries to perform a\n" -" transfer, it will retry this number of times before giving up.\n" -" Setting the number to 0 makes curl do no retries (which is the\n" -, stdout); - fputs( -" default). Transient error means either: a timeout, an FTP 4xx\n" -" response code or an HTTP 5xx response code.\n" -"\n" -" When curl is about to retry a transfer, it will first wait one\n" -" second and then for all forthcoming retries it will double the\n" -" waiting time until it reaches 10 minutes which then will be the\n" -" delay between the rest of the retries. By using --retry-delay\n" -, stdout); - fputs( -" you disable this exponential backoff algorithm. See also\n" -" --retry-max-time to limit the total time allowed for retries.\n" -" (Added in 7.12.3)\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --retry-delay <seconds>\n" -" Make curl sleep this amount of time before each retry when a\n" -" transfer has failed with a transient error (it changes the\n" -, stdout); - fputs( -" default backoff time algorithm between retries). This option is\n" -" only interesting if --retry is also used. Setting this delay to\n" -" zero will make curl use the default backoff time. (Added in\n" -" 7.12.3)\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --retry-max-time <seconds>\n" -" The retry timer is reset before the first transfer attempt.\n" -, stdout); - fputs( -" Retries will be done as usual (see --retry) as long as the timer\n" -" hasn't reached this given limit. Notice that if the timer hasn't\n" -" reached the limit, the request will be made and while perform-\n" -" ing, it may take longer than this given time period. To limit a\n" -" single request's maximum time, use -m, --max-time. Set this\n" -" option to zero to not timeout retries. (Added in 7.12.3)\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last one will be used.\n" -"\n" -" -s, --silent\n" -" Silent or quiet mode. Don't show progress meter or error mes-\n" -" sages. Makes Curl mute. It will still output the data you ask\n" -" for, potentially even to the terminal/stdout unless you redirect\n" -" it.\n" -"\n" -" --sasl-ir\n" -" Enable initial response in SASL authentication. (Added in\n" -" 7.31.0)\n" -"\n" -" -S, --show-error\n" -, stdout); - fputs( -" When used with -s it makes curl show an error message if it\n" -" fails.\n" -"\n" -" --ssl (FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection.\n" -" Reverts to a non-secure connection if the server doesn't support\n" -" SSL/TLS. See also --ftp-ssl-control and --ssl-reqd for differ-\n" -" ent levels of encryption required. (Added in 7.20.0)\n" -"\n" -" This option was formerly known as --ftp-ssl (Added in 7.11.0).\n" -, stdout); - fputs( -" That option name can still be used but will be removed in a\n" -" future version.\n" -"\n" -" --ssl-reqd\n" -" (FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection.\n" -" Terminates the connection if the server doesn't support SSL/TLS.\n" -" (Added in 7.20.0)\n" -"\n" -" This option was formerly known as --ftp-ssl-reqd (added in\n" -" 7.15.5). That option name can still be used but will be removed\n" -, stdout); - fputs( -" in a future version.\n" -"\n" -" --ssl-allow-beast\n" -" (SSL) This option tells curl to not work around a security flaw\n" -" in the SSL3 and TLS1.0 protocols known as BEAST. If this option\n" -" isn't used, the SSL layer may use workarounds known to cause\n" -" interoperability problems with some older SSL implementations.\n" -" WARNING: this option loosens the SSL security, and by using this\n" -, stdout); - fputs( -" flag you ask for exactly that. (Added in 7.25.0)\n" -"\n" -" --socks4 <host[:port]>\n" -" Use the specified SOCKS4 proxy. If the port number is not speci-\n" -" fied, it is assumed at port 1080. (Added in 7.15.2)\n" -"\n" -" This option overrides any previous use of -x, --proxy, as they\n" -" are mutually exclusive.\n" -"\n" -" Since 7.21.7, this option is superfluous since you can specify a\n" -, stdout); - fputs( -" socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --socks4a <host[:port]>\n" -" Use the specified SOCKS4a proxy. If the port number is not spec-\n" -" ified, it is assumed at port 1080. (Added in 7.18.0)\n" -"\n" -" This option overrides any previous use of -x, --proxy, as they\n" -" are mutually exclusive.\n" -"\n" -, stdout); - fputs( -" Since 7.21.7, this option is superfluous since you can specify a\n" -" socks4a proxy with -x, --proxy using a socks4a:// protocol pre-\n" -" fix.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --socks5-hostname <host[:port]>\n" -" Use the specified SOCKS5 proxy (and let the proxy resolve the\n" -" host name). If the port number is not specified, it is assumed\n" -, stdout); - fputs( -" at port 1080. (Added in 7.18.0)\n" -"\n" -" This option overrides any previous use of -x, --proxy, as they\n" -" are mutually exclusive.\n" -"\n" -" Since 7.21.7, this option is superfluous since you can specify a\n" -" socks5 hostname proxy with -x, --proxy using a socks5h:// proto-\n" -" col prefix.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -, stdout); - fputs( -" (This option was previously wrongly documented and used as\n" -" --socks without the number appended.)\n" -"\n" -" --socks5 <host[:port]>\n" -" Use the specified SOCKS5 proxy - but resolve the host name\n" -" locally. If the port number is not specified, it is assumed at\n" -" port 1080.\n" -"\n" -" This option overrides any previous use of -x, --proxy, as they\n" -" are mutually exclusive.\n" -"\n" -, stdout); - fputs( -" Since 7.21.7, this option is superfluous since you can specify a\n" -" socks5 proxy with -x, --proxy using a socks5:// protocol prefix.\n" -" If this option is used several times, the last one will be used.\n" -" (This option was previously wrongly documented and used as\n" -" --socks without the number appended.)\n" -"\n" -" This option (as well as --socks4) does not work with IPV6, FTPS\n" -" or LDAP.\n" -"\n" -, stdout); - fputs( -" --socks5-gssapi-service <servicename>\n" -" The default service name for a socks server is rcmd/server-fqdn.\n" -" This option allows you to change it.\n" -"\n" -" Examples: --socks5 proxy-name --socks5-gssapi-service sockd\n" -" would use sockd/proxy-name --socks5 proxy-name --socks5-gssapi-\n" -" service sockd/real-name would use sockd/real-name for cases\n" -" where the proxy-name does not match the principal name. (Added\n" -, stdout); - fputs( -" in 7.19.4).\n" -"\n" -" --socks5-gssapi-nec\n" -" As part of the GSS-API negotiation a protection mode is negoti-\n" -" ated. RFC 1961 says in section 4.3/4.4 it should be protected,\n" -" but the NEC reference implementation does not. The option\n" -" --socks5-gssapi-nec allows the unprotected exchange of the pro-\n" -" tection mode negotiation. (Added in 7.19.4).\n" -"\n" -" --stderr <file>\n" -, stdout); - fputs( -" Redirect all writes to stderr to the specified file instead. If\n" -" the file name is a plain '-', it is instead written to stdout.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -t, --telnet-option <OPT=val>\n" -" Pass options to the telnet protocol. Supported options are:\n" -"\n" -" TTYPE=<term> Sets the terminal type.\n" -"\n" -" XDISPLOC=<X display> Sets the X display location.\n" -"\n" -, stdout); - fputs( -" NEW_ENV=<var,val> Sets an environment variable.\n" -"\n" -" -T, --upload-file <file>\n" -" This transfers the specified local file to the remote URL. If\n" -" there is no file part in the specified URL, Curl will append the\n" -" local file name. NOTE that you must use a trailing / on the last\n" -" directory to really prove to Curl that there is no file name or\n" -" curl will think that your last directory name is the remote file\n" -, stdout); - fputs( -" name to use. That will most likely cause the upload operation to\n" -" fail. If this is used on an HTTP(S) server, the PUT command will\n" -" be used.\n" -"\n" -" Use the file name \"-\" (a single dash) to use stdin instead of a\n" -" given file. Alternately, the file name \".\" (a single period)\n" -" may be specified instead of \"-\" to use stdin in non-blocking\n" -" mode to allow reading server output while stdin is being\n" -, stdout); - fputs( -" uploaded.\n" -"\n" -" You can specify one -T for each URL on the command line. Each -T\n" -" + URL pair specifies what to upload and to where. curl also sup-\n" -" ports \"globbing\" of the -T argument, meaning that you can upload\n" -" multiple files to a single URL by using the same URL globbing\n" -" style supported in the URL, like this:\n" -"\n" -" curl -T \"{file1,file2}\" http://www.uploadtothissite.com\n" -"\n" -" or even\n" -"\n" -, stdout); - fputs( -" curl -T \"img[1-1000].png\" ftp://ftp.picturemania.com/upload/\n" -"\n" -" --tcp-nodelay\n" -" Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man\n" -" page for details about this option. (Added in 7.11.2)\n" -"\n" -" --tftp-blksize <value>\n" -" (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block\n" -" size that curl will try to use when transferring data to or from\n" -" a TFTP server. By default 512 bytes will be used.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last one will be used.\n" -"\n" -" (Added in 7.20.0)\n" -"\n" -" --tlsauthtype <authtype>\n" -" Set TLS authentication type. Currently, the only supported\n" -" option is \"SRP\", for TLS-SRP (RFC 5054). If --tlsuser and\n" -" --tlspassword are specified but --tlsauthtype is not, then this\n" -" option defaults to \"SRP\". (Added in 7.21.4)\n" -"\n" -" --tlspassword <password>\n" -, stdout); - fputs( -" Set password for use with the TLS authentication method speci-\n" -" fied with --tlsauthtype. Requires that --tlsuser also be set.\n" -" (Added in 7.21.4)\n" -"\n" -" --tlsuser <user>\n" -" Set username for use with the TLS authentication method speci-\n" -" fied with --tlsauthtype. Requires that --tlspassword also be\n" -" set. (Added in 7.21.4)\n" -"\n" -" --tlsv1.0\n" -, stdout); - fputs( -" (SSL) Forces curl to use TLS version 1.0 when negotiating with a\n" -" remote TLS server. (Added in 7.34.0)\n" -"\n" -" --tlsv1.1\n" -" (SSL) Forces curl to use TLS version 1.1 when negotiating with a\n" -" remote TLS server. (Added in 7.34.0)\n" -"\n" -" --tlsv1.2\n" -" (SSL) Forces curl to use TLS version 1.2 when negotiating with a\n" -" remote TLS server. (Added in 7.34.0)\n" -"\n" -" --tr-encoding\n" -, stdout); - fputs( -" (HTTP) Request a compressed Transfer-Encoding response using one\n" -" of the algorithms curl supports, and uncompress the data while\n" -" receiving it.\n" -"\n" -" (Added in 7.21.6)\n" -"\n" -" --trace <file>\n" -" Enables a full trace dump of all incoming and outgoing data,\n" -" including descriptive information, to the given output file. Use\n" -" \"-\" as filename to have the output sent to stdout.\n" -"\n" -, stdout); - fputs( -" This option overrides previous uses of -v, --verbose or --trace-\n" -" ascii.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --trace-ascii <file>\n" -" Enables a full trace dump of all incoming and outgoing data,\n" -" including descriptive information, to the given output file. Use\n" -" \"-\" as filename to have the output sent to stdout.\n" -"\n" -, stdout); - fputs( -" This is very similar to --trace, but leaves out the hex part and\n" -" only shows the ASCII part of the dump. It makes smaller output\n" -" that might be easier to read for untrained humans.\n" -"\n" -" This option overrides previous uses of -v, --verbose or --trace.\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --trace-time\n" -" Prepends a time stamp to each trace or verbose line that curl\n" -, stdout); - fputs( -" displays. (Added in 7.14.0)\n" -"\n" -" -u, --user <user:password>\n" -" Specify the user name and password to use for server authentica-\n" -" tion. Overrides -n, --netrc and --netrc-optional.\n" -"\n" -" If you simply specify the user name, curl will prompt for a\n" -" password.\n" -"\n" -" The user name and passwords are split up on the first colon,\n" -" which makes it impossible to use a colon in the user name with\n" -, stdout); - fputs( -" this option. The password can, still.\n" -"\n" -" When using Kerberos V5 with a Windows based server you should\n" -" include the Windows domain name in the user name, in order for\n" -" the server to succesfully obtain a Kerberos Ticket. If you don't\n" -" then the initial authentication handshake may fail.\n" -"\n" -" When using NTLM, the user name can be specified simply as the\n" -, stdout); - fputs( -" user name, without the domain, if there is a single domain and\n" -" forest in your setup for example.\n" -"\n" -" To specify the domain name use either Down-Level Logon Name or\n" -" UPN (User Principal Name) formats. For example, EXAMPLE\\user and\n" -" user@example.com respectively.\n" -"\n" -" If you use a Windows SSPI-enabled curl binary and perform Ker-\n" -" beros V5, Negotiate or NTLM authentication then you can tell\n" -, stdout); - fputs( -" curl to select the user name and password from your environment\n" -" by specifying a single colon with this option: \"-u :\".\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -U, --proxy-user <user:password>\n" -" Specify the user name and password to use for proxy authentica-\n" -" tion.\n" -"\n" -" If you use a Windows SSPI-enabled curl binary and do either\n" -, stdout); - fputs( -" Negotiate or NTLM authentication then you can tell curl to\n" -" select the user name and password from your environment by spec-\n" -" ifying a single colon with this option: \"-U :\".\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --url <URL>\n" -" Specify a URL to fetch. This option is mostly handy when you\n" -" want to specify URL(s) in a config file.\n" -"\n" -, stdout); - fputs( -" This option may be used any number of times. To control where\n" -" this URL is written, use the -o, --output or the -O, --remote-\n" -" name options.\n" -" -v, --verbose\n" -" Makes the fetching more verbose/talkative. Mostly useful for\n" -" debugging. A line starting with '>' means \"header data\" sent by\n" -" curl, '<' means \"header data\" received by curl that is hidden in\n" -, stdout); - fputs( -" normal cases, and a line starting with '*' means additional info\n" -" provided by curl.\n" -"\n" -" Note that if you only want HTTP headers in the output, -i,\n" -" --include might be the option you're looking for.\n" -"\n" -" If you think this option still doesn't give you enough details,\n" -" consider using --trace or --trace-ascii instead.\n" -"\n" -" This option overrides previous uses of --trace-ascii or --trace.\n" -"\n" -, stdout); - fputs( -" Use -s, --silent to make curl quiet.\n" -"\n" -" -w, --write-out <format>\n" -" Defines what to display on stdout after a completed and success-\n" -" ful operation. The format is a string that may contain plain\n" -" text mixed with any number of variables. The string can be spec-\n" -" ified as \"string\", to get read from a particular file you spec-\n" -" ify it \"@filename\" and to tell curl to read the format from\n" -, stdout); - fputs( -" stdin you write \"@-\".\n" -"\n" -" The variables present in the output format will be substituted\n" -" by the value or text that curl thinks fit, as described below.\n" -" All variables are specified as %{variable_name} and to output a\n" -" normal % you just write them as %%. You can output a newline by\n" -" using \\n, a carriage return with \\r and a tab space with \\t.\n" -"\n" -, stdout); - fputs( -" NOTE: The %-symbol is a special symbol in the win32-environment,\n" -" where all occurrences of % must be doubled when using this\n" -" option.\n" -"\n" -" The variables available are:\n" -"\n" -" content_type The Content-Type of the requested document, if\n" -" there was any.\n" -"\n" -" filename_effective\n" -" The ultimate filename that curl writes out to.\n" -, stdout); - fputs( -" This is only meaningful if curl is told to write\n" -" to a file with the --remote-name or --output\n" -" option. It's most useful in combination with the\n" -" --remote-header-name option. (Added in 7.25.1)\n" -"\n" -" ftp_entry_path The initial path curl ended up in when logging on\n" -" to the remote FTP server. (Added in 7.15.4)\n" -"\n" -, stdout); - fputs( -" http_code The numerical response code that was found in the\n" -" last retrieved HTTP(S) or FTP(s) transfer. In\n" -" 7.18.2 the alias response_code was added to show\n" -" the same info.\n" -"\n" -" http_connect The numerical code that was found in the last\n" -" response (from a proxy) to a curl CONNECT\n" -" request. (Added in 7.12.4)\n" -"\n" -, stdout); - fputs( -" local_ip The IP address of the local end of the most\n" -" recently done connection - can be either IPv4 or\n" -" IPv6 (Added in 7.29.0)\n" -"\n" -" local_port The local port number of the most recently done\n" -" connection (Added in 7.29.0)\n" -"\n" -" num_connects Number of new connects made in the recent trans-\n" -" fer. (Added in 7.12.3)\n" -"\n" -, stdout); - fputs( -" num_redirects Number of redirects that were followed in the\n" -" request. (Added in 7.12.3)\n" -"\n" -" redirect_url When an HTTP request was made without -L to fol-\n" -" low redirects, this variable will show the actual\n" -" URL a redirect would take you to. (Added in\n" -" 7.18.2)\n" -"\n" -" remote_ip The remote IP address of the most recently done\n" -, stdout); - fputs( -" connection - can be either IPv4 or IPv6 (Added in\n" -" 7.29.0)\n" -"\n" -" remote_port The remote port number of the most recently done\n" -" connection (Added in 7.29.0)\n" -"\n" -" size_download The total amount of bytes that were downloaded.\n" -"\n" -" size_header The total amount of bytes of the downloaded head-\n" -" ers.\n" -"\n" -, stdout); - fputs( -" size_request The total amount of bytes that were sent in the\n" -" HTTP request.\n" -"\n" -" size_upload The total amount of bytes that were uploaded.\n" -"\n" -" speed_download The average download speed that curl measured for\n" -" the complete download. Bytes per second.\n" -"\n" -" speed_upload The average upload speed that curl measured for\n" -" the complete upload. Bytes per second.\n" -"\n" -, stdout); - fputs( -" ssl_verify_result\n" -" The result of the SSL peer certificate verifica-\n" -" tion that was requested. 0 means the verification\n" -" was successful. (Added in 7.19.0)\n" -"\n" -" time_appconnect\n" -" The time, in seconds, it took from the start\n" -" until the SSL/SSH/etc connect/handshake to the\n" -, stdout); - fputs( -" remote host was completed. (Added in 7.19.0)\n" -"\n" -" time_connect The time, in seconds, it took from the start\n" -" until the TCP connect to the remote host (or\n" -" proxy) was completed.\n" -"\n" -" time_namelookup\n" -" The time, in seconds, it took from the start\n" -" until the name resolving was completed.\n" -"\n" -" time_pretransfer\n" -, stdout); - fputs( -" The time, in seconds, it took from the start\n" -" until the file transfer was just about to begin.\n" -" This includes all pre-transfer commands and nego-\n" -" tiations that are specific to the particular pro-\n" -" tocol(s) involved.\n" -"\n" -" time_redirect The time, in seconds, it took for all redirection\n" -, stdout); - fputs( -" steps include name lookup, connect, pretransfer\n" -" and transfer before the final transaction was\n" -" started. time_redirect shows the complete execu-\n" -" tion time for multiple redirections. (Added in\n" -" 7.12.3)\n" -"\n" -" time_starttransfer\n" -" The time, in seconds, it took from the start\n" -, stdout); - fputs( -" until the first byte was just about to be trans-\n" -" ferred. This includes time_pretransfer and also\n" -" the time the server needed to calculate the\n" -" result.\n" -"\n" -" time_total The total time, in seconds, that the full opera-\n" -" tion lasted. The time will be displayed with mil-\n" -" lisecond resolution.\n" -"\n" -, stdout); - fputs( -" url_effective The URL that was fetched last. This is most mean-\n" -" ingful if you've told curl to follow location:\n" -" headers.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -x, --proxy <[protocol://][user:password@]proxyhost[:port]>\n" -" Use the specified proxy.\n" -"\n" -" The proxy string can be specified with a protocol:// prefix to\n" -, stdout); - fputs( -" specify alternative proxy protocols. Use socks4://, socks4a://,\n" -" socks5:// or socks5h:// to request the specific SOCKS version to\n" -" be used. No protocol specified, http:// and all others will be\n" -" treated as HTTP proxies. (The protocol support was added in curl\n" -" 7.21.7)\n" -"\n" -" If the port number is not specified in the proxy string, it is\n" -" assumed to be 1080.\n" -"\n" -, stdout); - fputs( -" This option overrides existing environment variables that set\n" -" the proxy to use. If there's an environment variable setting a\n" -" proxy, you can set proxy to \"\" to override it.\n" -"\n" -" All operations that are performed over an HTTP proxy will trans-\n" -" parently be converted to HTTP. It means that certain protocol\n" -" specific operations might not be available. This is not the case\n" -, stdout); - fputs( -" if you can tunnel through the proxy, as one with the -p, --prox-\n" -" ytunnel option.\n" -"\n" -" User and password that might be provided in the proxy string are\n" -" URL decoded by curl. This allows you to pass in special charac-\n" -" ters such as @ by using %40 or pass in a colon with %3a.\n" -"\n" -" The proxy host can be specified the exact same way as the proxy\n" -" environment variables, including the protocol prefix (http://)\n" -, stdout); - fputs( -" and the embedded user + password.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -X, --request <command>\n" -" (HTTP) Specifies a custom request method to use when communicat-\n" -" ing with the HTTP server. The specified request will be used\n" -" instead of the method otherwise used (which defaults to GET).\n" -" Read the HTTP 1.1 specification for details and explanations.\n" -, stdout); - fputs( -" Common additional HTTP requests include PUT and DELETE, but\n" -" related technologies like WebDAV offers PROPFIND, COPY, MOVE and\n" -" more.\n" -"\n" -" Normally you don't need this option. All sorts of GET, HEAD,\n" -" POST and PUT requests are rather invoked by using dedicated com-\n" -" mand line options.\n" -"\n" -" This option only changes the actual word used in the HTTP\n" -, stdout); - fputs( -" request, it does not alter the way curl behaves. So for example\n" -" if you want to make a proper HEAD request, using -X HEAD will\n" -" not suffice. You need to use the -I, --head option.\n" -"\n" -" (FTP) Specifies a custom FTP command to use instead of LIST when\n" -" doing file lists with FTP.\n" -"\n" -" (POP3) Specifies a custom POP3 command to use instead of LIST or\n" -" RETR. (Added in 7.26.0)\n" -"\n" -, stdout); - fputs( -" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n" -" (Added in 7.30.0)\n" -"\n" -" (SMTP) Specifies a custom SMTP command to use instead of HELP or\n" -" VRFY. (Added in 7.34.0)\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" --xattr\n" -" When saving output to a file, this option tells curl to store\n" -" certain file metadata in extended file attributes. Currently,\n" -, stdout); - fputs( -" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n" -" the content type is stored in the mime_type attribute. If the\n" -" file system does not support extended attributes, a warning is\n" -" issued.\n" -"\n" -" -y, --speed-time <time>\n" -" If a download is slower than speed-limit bytes per second during\n" -" a speed-time period, the download gets aborted. If speed-time is\n" -, stdout); - fputs( -" used, the default speed-limit will be 1 unless set with -Y.\n" -"\n" -" This option controls transfers and thus will not affect slow\n" -" connects etc. If this is a concern for you, try the --connect-\n" -" timeout option.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -Y, --speed-limit <speed>\n" -" If a download is slower than this given speed (in bytes per sec-\n" -, stdout); - fputs( -" ond) for speed-time seconds it gets aborted. speed-time is set\n" -" with -y and is 30 if not set.\n" -"\n" -" If this option is used several times, the last one will be used.\n" -"\n" -" -z, --time-cond <date expression>|<file>\n" -" (HTTP/FTP) Request a file that has been modified later than the\n" -" given time and date, or one that has been modified before that\n" -" time. The <date expression> can be all sorts of date strings or\n" -, stdout); - fputs( -" if it doesn't match any internal ones, it is taken as a filename\n" -" and tries to get the modification date (mtime) from <file>\n" -" instead. See the curl_getdate(3) man pages for date expression\n" -" details.\n" -"\n" -" Start the date expression with a dash (-) to make it request for\n" -" a document that is older than the given date/time, default is a\n" -" document that is newer than the specified date/time.\n" -"\n" -, stdout); - fputs( -" If this option is used several times, the last one will be used.\n" -"\n" -" -h, --help\n" -" Usage help.\n" -"\n" -" -M, --manual\n" -" Manual. Display the huge help text.\n" -"\n" -" -V, --version\n" -" Displays information about curl and the libcurl version it uses.\n" -" The first line includes the full version of curl, libcurl and\n" -" other 3rd party libraries linked with the executable.\n" -"\n" -, stdout); - fputs( -" The second line (starts with \"Protocols:\") shows all protocols\n" -" that libcurl reports to support.\n" -"\n" -" The third line (starts with \"Features:\") shows specific features\n" -" libcurl reports to offer. Available features include:\n" -"\n" -" IPv6 You can use IPv6 with this.\n" -"\n" -" krb4 Krb4 for FTP is supported.\n" -"\n" -" SSL HTTPS and FTPS are supported.\n" -"\n" -, stdout); - fputs( -" libz Automatic decompression of compressed files over HTTP is\n" -" supported.\n" -"\n" -" NTLM NTLM authentication is supported.\n" -"\n" -" Debug This curl uses a libcurl built with Debug. This enables\n" -" more error-tracking and memory debugging etc. For curl-\n" -" developers only!\n" -"\n" -" AsynchDNS\n" -" This curl uses asynchronous name resolves.\n" -, stdout); - fputs( -" SPNEGO SPNEGO authentication is supported.\n" -"\n" -" Largefile\n" -" This curl supports transfers of large files, files larger\n" -" than 2GB.\n" -"\n" -" IDN This curl supports IDN - international domain names.\n" -"\n" -" GSS-API\n" -" GSS-API is supported.\n" -"\n" -" SSPI SSPI is supported.\n" -"\n" -" TLS-SRP\n" -" SRP (Secure Remote Password) authentication is supported\n" -, stdout); - fputs( -" for TLS.\n" -" Metalink\n" -" This curl supports Metalink (both version 3 and 4 (RFC\n" -" 5854)), which describes mirrors and hashes. curl will\n" -" use mirrors for failover if there are errors (such as the\n" -" file or server not being available).\n" -"\n" -"FILES\n" -" ~/.curlrc\n" -" Default config file, see -K, --config for details.\n" -"\n" -"ENVIRONMENT\n" -, stdout); - fputs( -" The environment variables can be specified in lower case or upper case.\n" -" The lower case version has precedence. http_proxy is an exception as it\n" -" is only available in lower case.\n" -"\n" -" Using an environment variable to set the proxy has the same effect as\n" -" using the --proxy option.\n" -"\n" -" http_proxy [protocol://]<host>[:port]\n" -" Sets the proxy server to use for HTTP.\n" -" HTTPS_PROXY [protocol://]<host>[:port]\n" -, stdout); - fputs( -" Sets the proxy server to use for HTTPS.\n" -"\n" -" [url-protocol]_PROXY [protocol://]<host>[:port]\n" -" Sets the proxy server to use for [url-protocol], where the pro-\n" -" tocol is a protocol that curl supports and as specified in a\n" -" URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.\n" -"\n" -" ALL_PROXY [protocol://]<host>[:port]\n" -" Sets the proxy server to use if no protocol-specific proxy is\n" -" set.\n" -"\n" -, stdout); - fputs( -" NO_PROXY <comma-separated list of hosts>\n" -" list of host names that shouldn't go through any proxy. If set\n" -" to a asterisk '*' only, it matches all hosts.\n" -"\n" -"PROXY PROTOCOL PREFIXES\n" -" Since curl version 7.21.7, the proxy string may be specified with a\n" -" protocol:// prefix to specify alternative proxy protocols.\n" -"\n" -" If no protocol is specified in the proxy string or if the string\n" -, stdout); - fputs( -" doesn't match a supported one, the proxy will be treated as an HTTP\n" -" proxy.\n" -"\n" -" The supported proxy protocol prefixes are as follows:\n" -"\n" -" socks4://\n" -" Makes it the equivalent of --socks4\n" -"\n" -" socks4a://\n" -" Makes it the equivalent of --socks4a\n" -"\n" -" socks5://\n" -" Makes it the equivalent of --socks5\n" -"\n" -" socks5h://\n" -" Makes it the equivalent of --socks5-hostname\n" -"\n" -"EXIT CODES\n" -, stdout); - fputs( -" There are a bunch of different error codes and their corresponding\n" -" error messages that may appear during bad conditions. At the time of\n" -" this writing, the exit codes are:\n" -"\n" -" 1 Unsupported protocol. This build of curl has no support for this\n" -" protocol.\n" -"\n" -" 2 Failed to initialize.\n" -"\n" -" 3 URL malformed. The syntax was not correct.\n" -"\n" -" 4 A feature or option that was needed to perform the desired\n" -, stdout); - fputs( -" request was not enabled or was explicitly disabled at build-\n" -" time. To make curl able to do this, you probably need another\n" -" build of libcurl!\n" -"\n" -" 5 Couldn't resolve proxy. The given proxy host could not be\n" -" resolved.\n" -"\n" -" 6 Couldn't resolve host. The given remote host was not resolved.\n" -"\n" -" 7 Failed to connect to host.\n" -"\n" -" 8 FTP weird server reply. The server sent data curl couldn't\n" -, stdout); - fputs( -" parse.\n" -"\n" -" 9 FTP access denied. The server denied login or denied access to\n" -" the particular resource or directory you wanted to reach. Most\n" -" often you tried to change to a directory that doesn't exist on\n" -" the server.\n" -"\n" -" 11 FTP weird PASS reply. Curl couldn't parse the reply sent to the\n" -" PASS request.\n" -"\n" -" 13 FTP weird PASV reply, Curl couldn't parse the reply sent to the\n" -, stdout); - fputs( -" PASV request.\n" -"\n" -" 14 FTP weird 227 format. Curl couldn't parse the 227-line the\n" -" server sent.\n" -"\n" -" 15 FTP can't get host. Couldn't resolve the host IP we got in the\n" -" 227-line.\n" -"\n" -" 17 FTP couldn't set binary. Couldn't change transfer method to\n" -" binary.\n" -"\n" -" 18 Partial file. Only a part of the file was transferred.\n" -"\n" -" 19 FTP couldn't download/access the given file, the RETR (or simi-\n" -, stdout); - fputs( -" lar) command failed.\n" -"\n" -" 21 FTP quote error. A quote command returned error from the server.\n" -" 22 HTTP page not retrieved. The requested url was not found or\n" -" returned another error with the HTTP error code being 400 or\n" -" above. This return code only appears if -f, --fail is used.\n" -"\n" -" 23 Write error. Curl couldn't write data to a local filesystem or\n" -" similar.\n" -"\n" -, stdout); - fputs( -" 25 FTP couldn't STOR file. The server denied the STOR operation,\n" -" used for FTP uploading.\n" -"\n" -" 26 Read error. Various reading problems.\n" -"\n" -" 27 Out of memory. A memory allocation request failed.\n" -"\n" -" 28 Operation timeout. The specified time-out period was reached\n" -" according to the conditions.\n" -"\n" -" 30 FTP PORT failed. The PORT command failed. Not all FTP servers\n" -, stdout); - fputs( -" support the PORT command, try doing a transfer using PASV\n" -" instead!\n" -"\n" -" 31 FTP couldn't use REST. The REST command failed. This command is\n" -" used for resumed FTP transfers.\n" -"\n" -" 33 HTTP range error. The range \"command\" didn't work.\n" -"\n" -" 34 HTTP post error. Internal post-request generation error.\n" -"\n" -" 35 SSL connect error. The SSL handshaking failed.\n" -"\n" -, stdout); - fputs( -" 36 FTP bad download resume. Couldn't continue an earlier aborted\n" -" download.\n" -"\n" -" 37 FILE couldn't read file. Failed to open the file. Permissions?\n" -"\n" -" 38 LDAP cannot bind. LDAP bind operation failed.\n" -"\n" -" 39 LDAP search failed.\n" -"\n" -" 41 Function not found. A required LDAP function was not found.\n" -"\n" -" 42 Aborted by callback. An application told curl to abort the oper-\n" -" ation.\n" -"\n" -, stdout); - fputs( -" 43 Internal error. A function was called with a bad parameter.\n" -"\n" -" 45 Interface error. A specified outgoing interface could not be\n" -" used.\n" -"\n" -" 47 Too many redirects. When following redirects, curl hit the maxi-\n" -" mum amount.\n" -"\n" -" 48 Unknown option specified to libcurl. This indicates that you\n" -" passed a weird option to curl that was passed on to libcurl and\n" -" rejected. Read up in the manual!\n" -"\n" -, stdout); - fputs( -" 49 Malformed telnet option.\n" -"\n" -" 51 The peer's SSL certificate or SSH MD5 fingerprint was not OK.\n" -"\n" -" 52 The server didn't reply anything, which here is considered an\n" -" error.\n" -"\n" -" 53 SSL crypto engine not found.\n" -"\n" -" 54 Cannot set SSL crypto engine as default.\n" -"\n" -" 55 Failed sending network data.\n" -"\n" -" 56 Failure in receiving network data.\n" -"\n" -" 58 Problem with the local certificate.\n" -"\n" -, stdout); - fputs( -" 59 Couldn't use specified SSL cipher.\n" -"\n" -" 60 Peer certificate cannot be authenticated with known CA certifi-\n" -" cates.\n" -"\n" -" 61 Unrecognized transfer encoding.\n" -"\n" -" 62 Invalid LDAP URL.\n" -"\n" -" 63 Maximum file size exceeded.\n" -"\n" -" 64 Requested FTP SSL level failed.\n" -"\n" -" 65 Sending the data requires a rewind that failed.\n" -"\n" -" 66 Failed to initialise SSL Engine.\n" -"\n" -, stdout); - fputs( -" 67 The user name, password, or similar was not accepted and curl\n" -" failed to log in.\n" -"\n" -" 68 File not found on TFTP server.\n" -"\n" -" 69 Permission problem on TFTP server.\n" -"\n" -" 70 Out of disk space on TFTP server.\n" -"\n" -" 71 Illegal TFTP operation.\n" -"\n" -" 72 Unknown TFTP transfer ID.\n" -"\n" -" 73 File already exists (TFTP).\n" -"\n" -" 74 No such user (TFTP).\n" -"\n" -" 75 Character conversion failed.\n" -"\n" -, stdout); - fputs( -" 76 Character conversion functions required.\n" -"\n" -" 77 Problem with reading the SSL CA cert (path? access rights?).\n" -"\n" -" 78 The resource referenced in the URL does not exist.\n" -"\n" -" 79 An unspecified error occurred during the SSH session.\n" -"\n" -" 80 Failed to shut down the SSL connection.\n" -"\n" -" 82 Could not load CRL file, missing or wrong format (added in\n" -" 7.19.0).\n" -"\n" -" 83 Issuer check failed (added in 7.19.0).\n" -"\n" -, stdout); - fputs( -" 84 The FTP PRET command failed\n" -"\n" -" 85 RTSP: mismatch of CSeq numbers\n" -"\n" -" 86 RTSP: mismatch of Session Identifiers\n" -"\n" -" 87 unable to parse FTP file list\n" -"\n" -" 88 FTP chunk callback reported error\n" -"\n" -" 89 No connection available, the session will be queued\n" -"\n" -" XX More error codes will appear here in future releases. The exist-\n" -" ing ones are meant to never change.\n" -"\n" -"AUTHORS / CONTRIBUTORS\n" -, stdout); - fputs( -" Daniel Stenberg is the main author, but the whole list of contributors\n" -" is found in the separate THANKS file.\n" -"\n" -"WWW\n" -" http://curl.haxx.se\n" -"\n" -"FTP\n" -" ftp://ftp.sunet.se/pub/www/utilities/curl/\n" -"\n" -"SEE ALSO\n" -" ftp(1), wget(1)\n" -"\n" -"LATEST VERSION\n" -"\n" -" You always find news about what's going on as well as the latest versions\n" -" from the curl web pages, located at:\n" -"\n" -" http://curl.haxx.se\n" -"\n" -"SIMPLE USAGE\n" -"\n" -" Get the main page from Netscape's web-server:\n" -"\n" -, stdout); - fputs( -" curl http://www.netscape.com/\n" -"\n" -" Get the README file the user's home directory at funet's ftp-server:\n" -"\n" -" curl ftp://ftp.funet.fi/README\n" -"\n" -" Get a web page from a server using port 8000:\n" -"\n" -" curl http://www.weirdserver.com:8000/\n" -"\n" -" Get a directory listing of an FTP site:\n" -"\n" -" curl ftp://cool.haxx.se/\n" -"\n" -" Get the definition of curl from a dictionary:\n" -"\n" -" curl dict://dict.org/m:curl\n" -"\n" -" Fetch two documents at once:\n" -"\n" -, stdout); - fputs( -" curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/\n" -"\n" -" Get a file off an FTPS server:\n" -"\n" -" curl ftps://files.are.secure.com/secrets.txt\n" -"\n" -" or use the more appropriate FTPS way to get the same file:\n" -"\n" -" curl --ftp-ssl ftp://files.are.secure.com/secrets.txt\n" -"\n" -" Get a file from an SSH server using SFTP:\n" -"\n" -" curl -u username sftp://shell.example.com/etc/issue\n" -"\n" -" Get a file from an SSH server using SCP using a private key to authenticate:\n" -"\n" -, stdout); - fputs( -" curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \\\n" -" scp://shell.example.com/~/personal.txt\n" -"\n" -" Get the main page from an IPv6 web server:\n" -"\n" -" curl \"http://[2001:1890:1112:1::20]/\"\n" -"\n" -"DOWNLOAD TO A FILE\n" -"\n" -" Get a web page and store in a local file with a specific name:\n" -"\n" -" curl -o thatpage.html http://www.netscape.com/\n" -"\n" -" Get a web page and store in a local file, make the local file get the name\n" -, stdout); - fputs( -" of the remote document (if no file name part is specified in the URL, this\n" -" will fail):\n" -"\n" -" curl -O http://www.netscape.com/index.html\n" -"\n" -" Fetch two files and store them with their remote names:\n" -"\n" -" curl -O www.haxx.se/index.html -O curl.haxx.se/download.html\n" -"\n" -"USING PASSWORDS\n" -"\n" -" FTP\n" -"\n" -" To ftp files using name+passwd, include them in the URL like:\n" -"\n" -" curl ftp://name:passwd@machine.domain:port/full/path/to/file\n" -"\n" -" or specify them with the -u flag like\n" -"\n" -, stdout); - fputs( -" curl -u name:passwd ftp://machine.domain:port/full/path/to/file\n" -"\n" -" FTPS\n" -"\n" -" It is just like for FTP, but you may also want to specify and use\n" -" SSL-specific options for certificates etc.\n" -"\n" -" Note that using FTPS:// as prefix is the \"implicit\" way as described in the\n" -" standards while the recommended \"explicit\" way is done by using FTP:// and\n" -" the --ftp-ssl option.\n" -"\n" -" SFTP / SCP\n" -"\n" -" This is similar to FTP, but you can specify a private key to use instead of\n" -, stdout); - fputs( -" a password. Note that the private key may itself be protected by a password\n" -" that is unrelated to the login password of the remote system. If you\n" -" provide a private key file you must also provide a public key file.\n" -"\n" -" HTTP\n" -"\n" -" Curl also supports user and password in HTTP URLs, thus you can pick a file\n" -" like:\n" -"\n" -" curl http://name:passwd@machine.domain/full/path/to/file\n" -"\n" -" or specify user and password separately like in\n" -"\n" -, stdout); - fputs( -" curl -u name:passwd http://machine.domain/full/path/to/file\n" -"\n" -" HTTP offers many different methods of authentication and curl supports\n" -" several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which\n" -" method to use, curl defaults to Basic. You can also ask curl to pick the\n" -" most secure ones out of the ones that the server accepts for the given URL,\n" -" by using --anyauth.\n" -"\n" -" NOTE! According to the URL specification, HTTP URLs can not contain a user\n" -, stdout); - fputs( -" and password, so that style will not work when using curl via a proxy, even\n" -" though curl allows it at other times. When using a proxy, you _must_ use\n" -" the -u style for user and password.\n" -"\n" -" HTTPS\n" -"\n" -" Probably most commonly used with private certificates, as explained below.\n" -"\n" -"PROXY\n" -"\n" -" curl supports both HTTP and SOCKS proxy servers, with optional authentication.\n" -" It does not have special support for FTP proxy servers since there are no\n" -, stdout); - fputs( -" standards for those, but it can still be made to work with many of them. You\n" -" can also use both HTTP and SOCKS proxies to transfer files to and from FTP\n" -" servers.\n" -"\n" -" Get an ftp file using an HTTP proxy named my-proxy that uses port 888:\n" -"\n" -" curl -x my-proxy:888 ftp://ftp.leachsite.com/README\n" -"\n" -" Get a file from an HTTP server that requires user and password, using the\n" -" same proxy as above:\n" -"\n" -" curl -u user:passwd -x my-proxy:888 http://www.get.this/\n" -"\n" -, stdout); - fputs( -" Some proxies require special authentication. Specify by using -U as above:\n" -"\n" -" curl -U user:passwd -x my-proxy:888 http://www.get.this/\n" -"\n" -" A comma-separated list of hosts and domains which do not use the proxy can\n" -" be specified as:\n" -"\n" -" curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/\n" -"\n" -" If the proxy is specified with --proxy1.0 instead of --proxy or -x, then\n" -" curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts.\n" -"\n" -, stdout); - fputs( -" curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.\n" -"\n" -" See also the environment variables Curl supports that offer further proxy\n" -" control.\n" -"\n" -" Most FTP proxy servers are set up to appear as a normal FTP server from the\n" -" client's perspective, with special commands to select the remote FTP server.\n" -" curl supports the -u, -Q and --ftp-account options that can be used to\n" -" set up transfers through many FTP proxies. For example, a file can be\n" -, stdout); - fputs( -" uploaded to a remote FTP server using a Blue Coat FTP proxy with the\n" -" options:\n" -"\n" -" curl -u \"Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass\" \\\n" -" --ftp-account Proxy-Password --upload-file local-file \\\n" -" ftp://my-ftp.proxy.server:21/remote/upload/path/\n" -"\n" -" See the manual for your FTP proxy to determine the form it expects to set up\n" -" transfers, and curl's -v option to see exactly what curl is sending.\n" -"\n" -"RANGES\n" -"\n" -" HTTP 1.1 introduced byte-ranges. Using this, a client can request\n" -, stdout); - fputs( -" to get only one or more subparts of a specified document. Curl supports\n" -" this with the -r flag.\n" -"\n" -" Get the first 100 bytes of a document:\n" -"\n" -" curl -r 0-99 http://www.get.this/\n" -"\n" -" Get the last 500 bytes of a document:\n" -"\n" -" curl -r -500 http://www.get.this/\n" -"\n" -" Curl also supports simple ranges for FTP files as well. Then you can only\n" -" specify start and stop position.\n" -"\n" -" Get the first 100 bytes of a document using FTP:\n" -"\n" -" curl -r 0-99 ftp://www.get.this/README\n" -"\n" -"UPLOADING\n" -"\n" -, stdout); - fputs( -" FTP / FTPS / SFTP / SCP\n" -"\n" -" Upload all data on stdin to a specified server:\n" -"\n" -" curl -T - ftp://ftp.upload.com/myfile\n" -"\n" -" Upload data from a specified file, login with user and password:\n" -"\n" -" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile\n" -"\n" -" Upload a local file to the remote site, and use the local file name at the remote\n" -" site too:\n" -"\n" -" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/\n" -"\n" -" Upload a local file to get appended to the remote file:\n" -"\n" -, stdout); - fputs( -" curl -T localfile -a ftp://ftp.upload.com/remotefile\n" -"\n" -" Curl also supports ftp upload through a proxy, but only if the proxy is\n" -" configured to allow that kind of tunneling. If it does, you can run curl in\n" -" a fashion similar to:\n" -"\n" -" curl --proxytunnel -x proxy:port -T localfile ftp.upload.com\n" -"\n" -" HTTP\n" -"\n" -" Upload all data on stdin to a specified HTTP site:\n" -"\n" -" curl -T - http://www.upload.com/myfile\n" -"\n" -" Note that the HTTP server must have been configured to accept PUT before\n" -, stdout); - fputs( -" this can be done successfully.\n" -"\n" -" For other ways to do HTTP data upload, see the POST section below.\n" -"\n" -"VERBOSE / DEBUG\n" -"\n" -" If curl fails where it isn't supposed to, if the servers don't let you in,\n" -" if you can't understand the responses: use the -v flag to get verbose\n" -" fetching. Curl will output lots of info and what it sends and receives in\n" -" order to let the user see all client-server interaction (but it won't show\n" -" you the actual data).\n" -"\n" -" curl -v ftp://ftp.upload.com/\n" -"\n" -, stdout); - fputs( -" To get even more details and information on what curl does, try using the\n" -" --trace or --trace-ascii options with a given file name to log to, like\n" -" this:\n" -"\n" -" curl --trace trace.txt www.haxx.se\n" -"\n" -"\n" -"DETAILED INFORMATION\n" -"\n" -" Different protocols provide different ways of getting detailed information\n" -" about specific files/documents. To get curl to show detailed information\n" -" about a single file, you should use -I/--head option. It displays all\n" -, stdout); - fputs( -" available info on a single file for HTTP and FTP. The HTTP information is a\n" -" lot more extensive.\n" -"\n" -" For HTTP, you can get the header information (the same as -I would show)\n" -" shown before the data by using -i/--include. Curl understands the\n" -" -D/--dump-header option when getting files from both FTP and HTTP, and it\n" -" will then store the headers in the specified file.\n" -"\n" -" Store the HTTP headers in a separate file (headers.txt in the example):\n" -"\n" -, stdout); - fputs( -" curl --dump-header headers.txt curl.haxx.se\n" -"\n" -" Note that headers stored in a separate file can be very useful at a later\n" -" time if you want curl to use cookies sent by the server. More about that in\n" -" the cookies section.\n" -"\n" -"POST (HTTP)\n" -"\n" -" It's easy to post data using curl. This is done using the -d <data>\n" -" option. The post data must be urlencoded.\n" -"\n" -" Post a simple \"name\" and \"phone\" guestbook.\n" -"\n" -" curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n" -, stdout); - fputs( -" http://www.where.com/guest.cgi\n" -"\n" -" How to post a form with curl, lesson #1:\n" -"\n" -" Dig out all the <input> tags in the form that you want to fill in. (There's\n" -" a perl program called formfind.pl on the curl site that helps with this).\n" -"\n" -" If there's a \"normal\" post, you use -d to post. -d takes a full \"post\n" -" string\", which is in the format\n" -"\n" -" <variable1>=<data1>&<variable2>=<data2>&...\n" -"\n" -" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n" -, stdout); - fputs( -" the data is the contents you want to fill in for the inputs. The data *must*\n" -" be properly URL encoded. That means you replace space with + and that you\n" -" replace weird letters with %XX where XX is the hexadecimal representation of\n" -" the letter's ASCII code.\n" -"\n" -" Example:\n" -"\n" -" (page located at http://www.formpost.com/getthis/\n" -"\n" -" <form action=\"post.cgi\" method=\"post\">\n" -" <input name=user size=10>\n" -" <input name=pass type=password size=10>\n" -, stdout); - fputs( -" <input name=id type=hidden value=\"blablabla\">\n" -" <input name=ding value=\"submit\">\n" -" </form>\n" -"\n" -" We want to enter user 'foobar' with password '12345'.\n" -"\n" -" To post to this, you enter a curl command line like:\n" -"\n" -" curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" (continues)\n" -" http://www.formpost.com/getthis/post.cgi\n" -"\n" -"\n" -" While -d uses the application/x-www-form-urlencoded mime-type, generally\n" -, stdout); - fputs( -" understood by CGI's and similar, curl also supports the more capable\n" -" multipart/form-data type. This latter type supports things like file upload.\n" -"\n" -" -F accepts parameters like -F \"name=contents\". If you want the contents to\n" -" be read from a file, use <@filename> as contents. When specifying a file,\n" -" you can also specify the file content type by appending ';type=<mime type>'\n" -" to the file name. You can also post the contents of several files in one\n" -, stdout); - fputs( -" field. For example, the field name 'coolfiles' is used to send three files,\n" -" with different content types using the following syntax:\n" -"\n" -" curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n" -" http://www.post.com/postit.cgi\n" -"\n" -" If the content-type is not specified, curl will try to guess from the file\n" -" extension (it only knows a few), or use the previously specified type (from\n" -" an earlier file if several files are specified in a list) or else it will\n" -, stdout); - fputs( -" use the default type 'application/octet-stream'.\n" -"\n" -" Emulate a fill-in form with -F. Let's say you fill in three fields in a\n" -" form. One field is a file name which to post, one field is your name and one\n" -" field is a file description. We want to post the file we have written named\n" -" \"cooltext.txt\". To let curl do the posting of this data instead of your\n" -" favourite browser, you have to read the HTML source of the form page and\n" -, stdout); - fputs( -" find the names of the input fields. In our example, the input field names\n" -" are 'file', 'yourname' and 'filedescription'.\n" -"\n" -" curl -F \"file=@cooltext.txt\" -F \"yourname=Daniel\" \\\n" -" -F \"filedescription=Cool text file with cool text inside\" \\\n" -" http://www.post.com/postit.cgi\n" -"\n" -" To send two files in one post you can do it in two ways:\n" -"\n" -" 1. Send multiple files in a single \"field\" with a single field name:\n" -"\n" -" curl -F \"pictures=@dog.gif,cat.gif\"\n" -"\n" -, stdout); - fputs( -" 2. Send two fields with two field names:\n" -"\n" -" curl -F \"docpicture=@dog.gif\" -F \"catpicture=@cat.gif\"\n" -"\n" -" To send a field value literally without interpreting a leading '@'\n" -" or '<', or an embedded ';type=', use --form-string instead of\n" -" -F. This is recommended when the value is obtained from a user or\n" -" some other unpredictable source. Under these circumstances, using\n" -" -F instead of --form-string would allow a user to trick curl into\n" -" uploading a file.\n" -"\n" -"REFERRER\n" -"\n" -, stdout); - fputs( -" An HTTP request has the option to include information about which address\n" -" referred it to the actual page. Curl allows you to specify the\n" -" referrer to be used on the command line. It is especially useful to\n" -" fool or trick stupid servers or CGI scripts that rely on that information\n" -" being available or contain certain data.\n" -"\n" -" curl -e www.coolsite.com http://www.showme.com/\n" -"\n" -" NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL.\n" -"\n" -"USER AGENT\n" -"\n" -, stdout); - fputs( -" An HTTP request has the option to include information about the browser\n" -" that generated the request. Curl allows it to be specified on the command\n" -" line. It is especially useful to fool or trick stupid servers or CGI\n" -" scripts that only accept certain browsers.\n" -"\n" -" Example:\n" -"\n" -" curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/\n" -"\n" -" Other common strings:\n" -" 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95\n" -, stdout); - fputs( -" 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95\n" -" 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2\n" -" 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX\n" -" 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux\n" -"\n" -" Note that Internet Explorer tries hard to be compatible in every way:\n" -" 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95\n" -"\n" -" Mozilla is not the only possible User-Agent name:\n" -, stdout); - fputs( -" 'Konqueror/1.0' KDE File Manager desktop client\n" -" 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser\n" -"\n" -"COOKIES\n" -"\n" -" Cookies are generally used by web servers to keep state information at the\n" -" client's side. The server sets cookies by sending a response line in the\n" -" headers that looks like 'Set-Cookie: <data>' where the data part then\n" -" typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n" -, stdout); - fputs( -" like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n" -" path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n" -" cookie should expire (\"expire=DATE\"), for what domain to use it\n" -" (\"domain=NAME\") and if it should be used on secure connections only\n" -" (\"secure\").\n" -"\n" -" If you've received a page from a server that contains a header like:\n" -" Set-Cookie: sessionid=boo123; path=\"/foo\";\n" -"\n" -, stdout); - fputs( -" it means the server wants that first pair passed on when we get anything in\n" -" a path beginning with \"/foo\".\n" -"\n" -" Example, get a page that wants my name passed in a cookie:\n" -"\n" -" curl -b \"name=Daniel\" www.sillypage.com\n" -"\n" -" Curl also has the ability to use previously received cookies in following\n" -" sessions. If you get cookies from a server and store them in a file in a\n" -" manner similar to:\n" -"\n" -" curl --dump-header headers www.example.com\n" -"\n" -, stdout); - fputs( -" ... you can then in a second connect to that (or another) site, use the\n" -" cookies from the 'headers' file like:\n" -"\n" -" curl -b headers www.example.com\n" -"\n" -" While saving headers to a file is a working way to store cookies, it is\n" -" however error-prone and not the preferred way to do this. Instead, make curl\n" -" save the incoming cookies using the well-known netscape cookie format like\n" -" this:\n" -"\n" -" curl -c cookies.txt www.example.com\n" -"\n" -, stdout); - fputs( -" Note that by specifying -b you enable the \"cookie awareness\" and with -L\n" -" you can make curl follow a location: (which often is used in combination\n" -" with cookies). So that if a site sends cookies and a location, you can\n" -" use a non-existing file to trigger the cookie awareness like:\n" -"\n" -" curl -L -b empty.txt www.example.com\n" -"\n" -" The file to read cookies from must be formatted using plain HTTP headers OR\n" -" as netscape's cookie file. Curl will determine what kind it is based on the\n" -, stdout); - fputs( -" file contents. In the above command, curl will parse the header and store\n" -" the cookies received from www.example.com. curl will send to the server the\n" -" stored cookies which match the request as it follows the location. The\n" -" file \"empty.txt\" may be a nonexistent file.\n" -"\n" -" Alas, to both read and write cookies from a netscape cookie file, you can\n" -" set both -b and -c to use the same file:\n" -"\n" -" curl -b cookies.txt -c cookies.txt www.example.com\n" -"\n" -"PROGRESS METER\n" -"\n" -, stdout); - fputs( -" The progress meter exists to show a user that something actually is\n" -" happening. The different fields in the output have the following meaning:\n" -"\n" -" % Total % Received % Xferd Average Speed Time Curr.\n" -" Dload Upload Total Current Left Speed\n" -" 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287\n" -"\n" -" From left-to-right:\n" -" % - percentage completed of the whole transfer\n" -, stdout); - fputs( -" Total - total size of the whole expected transfer\n" -" % - percentage completed of the download\n" -" Received - currently downloaded amount of bytes\n" -" % - percentage completed of the upload\n" -" Xferd - currently uploaded amount of bytes\n" -" Average Speed\n" -" Dload - the average transfer speed of the download\n" -" Average Speed\n" -" Upload - the average transfer speed of the upload\n" -" Time Total - expected time to complete the operation\n" -, stdout); - fputs( -" Time Current - time passed since the invoke\n" -" Time Left - expected time left to completion\n" -" Curr.Speed - the average transfer speed the last 5 seconds (the first\n" -" 5 seconds of a transfer is based on less time of course.)\n" -"\n" -" The -# option will display a totally different progress bar that doesn't\n" -" need much explanation!\n" -"\n" -"SPEED LIMIT\n" -"\n" -" Curl allows the user to set the transfer speed conditions that must be met\n" -, stdout); - fputs( -" to let the transfer keep going. By using the switch -y and -Y you\n" -" can make curl abort transfers if the transfer speed is below the specified\n" -" lowest limit for a specified time.\n" -"\n" -" To have curl abort the download if the speed is slower than 3000 bytes per\n" -" second for 1 minute, run:\n" -"\n" -" curl -Y 3000 -y 60 www.far-away-site.com\n" -"\n" -" This can very well be used in combination with the overall time limit, so\n" -" that the above operation must be completed in whole within 30 minutes:\n" -"\n" -, stdout); - fputs( -" curl -m 1800 -Y 3000 -y 60 www.far-away-site.com\n" -"\n" -" Forcing curl not to transfer data faster than a given rate is also possible,\n" -" which might be useful if you're using a limited bandwidth connection and you\n" -" don't want your transfer to use all of it (sometimes referred to as\n" -" \"bandwidth throttle\").\n" -"\n" -" Make curl transfer data no faster than 10 kilobytes per second:\n" -"\n" -" curl --limit-rate 10K www.far-away-site.com\n" -"\n" -" or\n" -"\n" -" curl --limit-rate 10240 www.far-away-site.com\n" -"\n" -, stdout); - fputs( -" Or prevent curl from uploading data faster than 1 megabyte per second:\n" -"\n" -" curl -T upload --limit-rate 1M ftp://uploadshereplease.com\n" -"\n" -" When using the --limit-rate option, the transfer rate is regulated on a\n" -" per-second basis, which will cause the total transfer speed to become lower\n" -" than the given number. Sometimes of course substantially lower, if your\n" -" transfer stalls during periods.\n" -"\n" -"CONFIG FILE\n" -"\n" -" Curl automatically tries to read the .curlrc file (or _curlrc file on win32\n" -, stdout); - fputs( -" systems) from the user's home dir on startup.\n" -"\n" -" The config file could be made up with normal command line switches, but you\n" -" can also specify the long options without the dashes to make it more\n" -" readable. You can separate the options and the parameter with spaces, or\n" -" with = or :. Comments can be used within the file. If the first letter on a\n" -" line is a '#'-symbol the rest of the line is treated as a comment.\n" -"\n" -" If you want the parameter to contain spaces, you must enclose the entire\n" -, stdout); - fputs( -" parameter within double quotes (\"). Within those quotes, you specify a\n" -" quote as \\\".\n" -"\n" -" NOTE: You must specify options and their arguments on the same line.\n" -"\n" -" Example, set default time out and proxy in a config file:\n" -"\n" -" # We want a 30 minute timeout:\n" -" -m 1800\n" -" # ... and we use a proxy for all accesses:\n" -" proxy = proxy.our.domain.com:8080\n" -"\n" -" White spaces ARE significant at the end of lines, but all white spaces\n" -, stdout); - fputs( -" leading up to the first characters of each line are ignored.\n" -"\n" -" Prevent curl from reading the default file by using -q as the first command\n" -" line parameter, like:\n" -"\n" -" curl -q www.thatsite.com\n" -"\n" -" Force curl to get and display a local help page in case it is invoked\n" -" without URL by making a config file similar to:\n" -"\n" -" # default url to get\n" -" url = \"http://help.with.curl.com/curlhelp.html\"\n" -"\n" -" You can specify another config file to be read by using the -K/--config\n" -, stdout); - fputs( -" flag. If you set config file name to \"-\" it'll read the config from stdin,\n" -" which can be handy if you want to hide options from being visible in process\n" -" tables etc:\n" -"\n" -" echo \"user = user:passwd\" | curl -K - http://that.secret.site.com\n" -"\n" -"EXTRA HEADERS\n" -"\n" -" When using curl in your own very special programs, you may end up needing\n" -" to pass on your own custom headers when getting a web page. You can do\n" -" this by using the -H flag.\n" -"\n" -, stdout); - fputs( -" Example, send the header \"X-you-and-me: yes\" to the server when getting a\n" -" page:\n" -"\n" -" curl -H \"X-you-and-me: yes\" www.love.com\n" -"\n" -" This can also be useful in case you want curl to send a different text in a\n" -" header than it normally does. The -H header you specify then replaces the\n" -" header curl would normally send. If you replace an internal header with an\n" -" empty one, you prevent that header from being sent. To prevent the Host:\n" -" header from being used:\n" -"\n" -, stdout); - fputs( -" curl -H \"Host:\" www.server.com\n" -"\n" -"FTP and PATH NAMES\n" -"\n" -" Do note that when getting files with the ftp:// URL, the given path is\n" -" relative the directory you enter. To get the file 'README' from your home\n" -" directory at your ftp site, do:\n" -"\n" -" curl ftp://user:passwd@my.site.com/README\n" -"\n" -" But if you want the README file from the root directory of that very same\n" -" site, you need to specify the absolute file name:\n" -"\n" -" curl ftp://user:passwd@my.site.com//README\n" -"\n" -, stdout); - fputs( -" (I.e with an extra slash in front of the file name.)\n" -"\n" -"SFTP and SCP and PATH NAMES\n" -"\n" -" With sftp: and scp: URLs, the path name given is the absolute name on the\n" -" server. To access a file relative to the remote user's home directory,\n" -" prefix the file with /~/ , such as:\n" -"\n" -" curl -u $USER sftp://home.example.com/~/.bashrc\n" -"\n" -"FTP and firewalls\n" -"\n" -" The FTP protocol requires one of the involved parties to open a second\n" -, stdout); - fputs( -" connection as soon as data is about to get transferred. There are two ways to\n" -" do this.\n" -"\n" -" The default way for curl is to issue the PASV command which causes the\n" -" server to open another port and await another connection performed by the\n" -" client. This is good if the client is behind a firewall that doesn't allow\n" -" incoming connections.\n" -"\n" -" curl ftp.download.com\n" -"\n" -" If the server, for example, is behind a firewall that doesn't allow connections\n" -, stdout); - fputs( -" on ports other than 21 (or if it just doesn't support the PASV command), the\n" -" other way to do it is to use the PORT command and instruct the server to\n" -" connect to the client on the given IP number and port (as parameters to the\n" -" PORT command).\n" -"\n" -" The -P flag to curl supports a few different options. Your machine may have\n" -" several IP-addresses and/or network interfaces and curl allows you to select\n" -" which of them to use. Default address can also be used:\n" -"\n" -, stdout); - fputs( -" curl -P - ftp.download.com\n" -"\n" -" Download with PORT but use the IP address of our 'le0' interface (this does\n" -" not work on windows):\n" -"\n" -" curl -P le0 ftp.download.com\n" -"\n" -" Download with PORT but use 192.168.0.10 as our IP address to use:\n" -"\n" -" curl -P 192.168.0.10 ftp.download.com\n" -"\n" -"NETWORK INTERFACE\n" -"\n" -" Get a web page from a server using a specified port for the interface:\n" -"\n" -" curl --interface eth0:1 http://www.netscape.com/\n" -"\n" -" or\n" -"\n" -, stdout); - fputs( -" curl --interface 192.168.1.10 http://www.netscape.com/\n" -"\n" -"HTTPS\n" -"\n" -" Secure HTTP requires SSL libraries to be installed and used when curl is\n" -" built. If that is done, curl is capable of retrieving and posting documents\n" -" using the HTTPS protocol.\n" -"\n" -" Example:\n" -"\n" -" curl https://www.secure-site.com\n" -"\n" -" Curl is also capable of using your personal certificates to get/post files\n" -" from sites that require valid certificates. The only drawback is that the\n" -, stdout); - fputs( -" certificate needs to be in PEM-format. PEM is a standard and open format to\n" -" store certificates with, but it is not used by the most commonly used\n" -" browsers (Netscape and MSIE both use the so called PKCS#12 format). If you\n" -" want curl to use the certificates you use with your (favourite) browser, you\n" -" may need to download/compile a converter that can convert your browser's\n" -" formatted certificates to PEM formatted ones. This kind of converter is\n" -, stdout); - fputs( -" included in recent versions of OpenSSL, and for older versions Dr Stephen\n" -" N. Henson has written a patch for SSLeay that adds this functionality. You\n" -" can get his patch (that requires an SSLeay installation) from his site at:\n" -" http://www.drh-consultancy.demon.co.uk/\n" -"\n" -" Example on how to automatically retrieve a document using a certificate with\n" -" a personal password:\n" -"\n" -" curl -E /path/to/cert.pem:password https://secure.site.com/\n" -"\n" -, stdout); - fputs( -" If you neglect to specify the password on the command line, you will be\n" -" prompted for the correct password before any data can be received.\n" -"\n" -" Many older SSL-servers have problems with SSLv3 or TLS, which newer versions\n" -" of OpenSSL etc use, therefore it is sometimes useful to specify what\n" -" SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL\n" -" version to use (for SSLv3, SSLv2 or TLSv1 respectively):\n" -"\n" -" curl -2 https://secure.site.com/\n" -"\n" -, stdout); - fputs( -" Otherwise, curl will first attempt to use v3 and then v2.\n" -"\n" -" To use OpenSSL to convert your favourite browser's certificate into a PEM\n" -" formatted one that curl can use, do something like this:\n" -"\n" -" In Netscape, you start with hitting the 'Security' menu button.\n" -"\n" -" Select 'certificates->yours' and then pick a certificate in the list\n" -"\n" -" Press the 'Export' button\n" -"\n" -" enter your PIN code for the certs\n" -"\n" -" select a proper place to save it\n" -"\n" -, stdout); - fputs( -" Run the 'openssl' application to convert the certificate. If you cd to the\n" -" openssl installation, you can do it like:\n" -"\n" -" # ./apps/openssl pkcs12 -in [file you saved] -clcerts -out [PEMfile]\n" -"\n" -" In Firefox, select Options, then Advanced, then the Encryption tab,\n" -" View Certificates. This opens the Certificate Manager, where you can\n" -" Export. Be sure to select PEM for the Save as type.\n" -"\n" -" In Internet Explorer, select Internet Options, then the Content tab, then\n" -, stdout); - fputs( -" Certificates. Then you can Export, and depending on the format you may\n" -" need to convert to PEM.\n" -"\n" -" In Chrome, select Settings, then Show Advanced Settings. Under HTTPS/SSL\n" -" select Manage Certificates.\n" -"\n" -"RESUMING FILE TRANSFERS\n" -"\n" -" To continue a file transfer where it was previously aborted, curl supports\n" -" resume on HTTP(S) downloads as well as FTP uploads and downloads.\n" -"\n" -" Continue downloading a document:\n" -"\n" -" curl -C - -o file ftp://ftp.server.com/path/file\n" -"\n" -, stdout); - fputs( -" Continue uploading a document(*1):\n" -"\n" -" curl -C - -T file ftp://ftp.server.com/path/file\n" -"\n" -" Continue downloading a document from a web server(*2):\n" -"\n" -" curl -C - -o file http://www.server.com/\n" -"\n" -" (*1) = This requires that the FTP server supports the non-standard command\n" -" SIZE. If it doesn't, curl will say so.\n" -"\n" -" (*2) = This requires that the web server supports at least HTTP/1.1. If it\n" -" doesn't, curl will say so.\n" -"\n" -"TIME CONDITIONS\n" -"\n" -, stdout); - fputs( -" HTTP allows a client to specify a time condition for the document it\n" -" requests. It is If-Modified-Since or If-Unmodified-Since. Curl allows you to\n" -" specify them with the -z/--time-cond flag.\n" -"\n" -" For example, you can easily make a download that only gets performed if the\n" -" remote file is newer than a local copy. It would be made like:\n" -"\n" -" curl -z local.html http://remote.server.com/remote.html\n" -"\n" -" Or you can download a file only if the local file is newer than the remote\n" -, stdout); - fputs( -" one. Do this by prepending the date string with a '-', as in:\n" -"\n" -" curl -z -local.html http://remote.server.com/remote.html\n" -"\n" -" You can specify a \"free text\" date as condition. Tell curl to only download\n" -" the file if it was updated since January 12, 2012:\n" -"\n" -" curl -z \"Jan 12 2012\" http://remote.server.com/remote.html\n" -"\n" -" Curl will then accept a wide range of date formats. You always make the date\n" -" check the other way around by prepending it with a dash '-'.\n" -"\n" -"DICT\n" -"\n" -" For fun try\n" -"\n" -, stdout); - fputs( -" curl dict://dict.org/m:curl\n" -" curl dict://dict.org/d:heisenbug:jargon\n" -" curl dict://dict.org/d:daniel:web1913\n" -"\n" -" Aliases for 'm' are 'match' and 'find', and aliases for 'd' are 'define'\n" -" and 'lookup'. For example,\n" -"\n" -" curl dict://dict.org/find:curl\n" -"\n" -" Commands that break the URL description of the RFC (but not the DICT\n" -" protocol) are\n" -"\n" -" curl dict://dict.org/show:db\n" -" curl dict://dict.org/show:strat\n" -"\n" -, stdout); - fputs( -" Authentication is still missing (but this is not required by the RFC)\n" -"\n" -"LDAP\n" -"\n" -" If you have installed the OpenLDAP library, curl can take advantage of it\n" -" and offer ldap:// support.\n" -"\n" -" LDAP is a complex thing and writing an LDAP query is not an easy task. I do\n" -" advise you to dig up the syntax description for that elsewhere. Two places\n" -" that might suit you are:\n" -"\n" -" Netscape's \"Netscape Directory SDK 3.0 for C Programmer's Guide Chapter 10:\n" -" Working with LDAP URLs\":\n" -, stdout); - fputs( -" http://developer.netscape.com/docs/manuals/dirsdk/csdk30/url.htm\n" -"\n" -" RFC 2255, \"The LDAP URL Format\" http://curl.haxx.se/rfc/rfc2255.txt\n" -"\n" -" To show you an example, this is how I can get all people from my local LDAP\n" -" server that has a certain sub-domain in their email address:\n" -"\n" -" curl -B \"ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se\"\n" -"\n" -" If I want the same info in HTML format, I can get it by not using the -B\n" -" (enforce ASCII) flag.\n" -"\n" -"ENVIRONMENT VARIABLES\n" -"\n" -, stdout); - fputs( -" Curl reads and understands the following environment variables:\n" -"\n" -" http_proxy, HTTPS_PROXY, FTP_PROXY\n" -"\n" -" They should be set for protocol-specific proxies. General proxy should be\n" -" set with\n" -"\n" -" ALL_PROXY\n" -"\n" -" A comma-separated list of host names that shouldn't go through any proxy is\n" -" set in (only an asterisk, '*' matches all hosts)\n" -"\n" -" NO_PROXY\n" -"\n" -" If the host name matches one of these strings, or the host is within the\n" -, stdout); - fputs( -" domain of one of these strings, transactions with that node will not be\n" -" proxied.\n" -"\n" -"\n" -" The usage of the -x/--proxy flag overrides the environment variables.\n" -"\n" -"NETRC\n" -"\n" -" Unix introduced the .netrc concept a long time ago. It is a way for a user\n" -" to specify name and password for commonly visited FTP sites in a file so\n" -" that you don't have to type them in each time you visit those sites. You\n" -" realize this is a big security risk if someone else gets hold of your\n" -, stdout); - fputs( -" passwords, so therefore most unix programs won't read this file unless it is\n" -" only readable by yourself (curl doesn't care though).\n" -"\n" -" Curl supports .netrc files if told to (using the -n/--netrc and\n" -" --netrc-optional options). This is not restricted to just FTP,\n" -" so curl can use it for all protocols where authentication is used.\n" -"\n" -" A very simple .netrc file could look something like:\n" -"\n" -" machine curl.haxx.se login iamdaniel password mysecret\n" -"\n" -"CUSTOM OUTPUT\n" -"\n" -, stdout); - fputs( -" To better allow script programmers to get to know about the progress of\n" -" curl, the -w/--write-out option was introduced. Using this, you can specify\n" -" what information from the previous transfer you want to extract.\n" -"\n" -" To display the amount of bytes downloaded together with some text and an\n" -" ending newline:\n" -"\n" -" curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n" -"\n" -"KERBEROS FTP TRANSFER\n" -"\n" -" Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need\n" -, stdout); - fputs( -" the kerberos package installed and used at curl build time for it to be\n" -" available.\n" -"\n" -" First, get the krb-ticket the normal way, like with the kinit/kauth tool.\n" -" Then use curl in way similar to:\n" -"\n" -" curl --krb private ftp://krb4site.com -u username:fakepwd\n" -"\n" -" There's no use for a password on the -u switch, but a blank one will make\n" -" curl ask for one and you already entered the real password to kinit/kauth.\n" -"\n" -"TELNET\n" -"\n" -, stdout); - fputs( -" The curl telnet support is basic and very easy to use. Curl passes all data\n" -" passed to it on stdin to the remote server. Connect to a remote telnet\n" -" server using a command line similar to:\n" -"\n" -" curl telnet://remote.server.com\n" -"\n" -" And enter the data to pass to the server on stdin. The result will be sent\n" -" to stdout or to the file you specify with -o.\n" -"\n" -" You might want the -N/--no-buffer option to switch off the buffered output\n" -" for slow connections or similar.\n" -"\n" -, stdout); - fputs( -" Pass options to the telnet protocol negotiation, by using the -t option. To\n" -" tell the server we use a vt100 terminal, try something like:\n" -"\n" -" curl -tTTYPE=vt100 telnet://remote.server.com\n" -"\n" -" Other interesting options for it -t include:\n" -"\n" -" - XDISPLOC=<X display> Sets the X display location.\n" -"\n" -" - NEW_ENV=<var,val> Sets an environment variable.\n" -"\n" -" NOTE: The telnet protocol does not specify any way to login with a specified\n" -, stdout); - fputs( -" user and password so curl can't do that automatically. To do that, you need\n" -" to track when the login prompt is received and send the username and\n" -" password accordingly.\n" -"\n" -"PERSISTENT CONNECTIONS\n" -"\n" -" Specifying multiple files on a single command line will make curl transfer\n" -" all of them, one after the other in the specified order.\n" -"\n" -" libcurl will attempt to use persistent connections for the transfers so that\n" -" the second transfer to the same host can use the same connection that was\n" -, stdout); - fputs( -" already initiated and was left open in the previous transfer. This greatly\n" -" decreases connection time for all but the first transfer and it makes a far\n" -" better use of the network.\n" -"\n" -" Note that curl cannot use persistent connections for transfers that are used\n" -" in subsequence curl invokes. Try to stuff as many URLs as possible on the\n" -" same command line if they are using the same host, as that'll make the\n" -" transfers faster. If you use an HTTP proxy for file transfers, practically\n" -, stdout); - fputs( -" all transfers will be persistent.\n" -"\n" -"MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE\n" -"\n" -" As is mentioned above, you can download multiple files with one command line\n" -" by simply adding more URLs. If you want those to get saved to a local file\n" -" instead of just printed to stdout, you need to add one save option for each\n" -" URL you specify. Note that this also goes for the -O option (but not\n" -" --remote-name-all).\n" -"\n" -" For example: get two files and use -O for the first and a custom file\n" -, stdout); - fputs( -" name for the second:\n" -"\n" -" curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg\n" -"\n" -" You can also upload multiple files in a similar fashion:\n" -"\n" -" curl -T local1 ftp://ftp.com/moo.exe -T local2 ftp://ftp.com/moo2.txt\n" -"\n" -"IPv6\n" -"\n" -" curl will connect to a server with IPv6 when a host lookup returns an IPv6\n" -" address and fall back to IPv4 if the connection fails. The --ipv4 and --ipv6\n" -" options can specify which address to use when both are available. IPv6\n" -, stdout); - fputs( -" addresses can also be specified directly in URLs using the syntax:\n" -"\n" -" http://[2001:1890:1112:1::20]/overview.html\n" -"\n" -" When this style is used, the -g option must be given to stop curl from\n" -" interpreting the square brackets as special globbing characters. Link local\n" -" and site local addresses including a scope identifier, such as fe80::1234%1,\n" -" may also be used, but the scope portion must be numeric or match an existing\n" -, stdout); - fputs( -" network interface on Linux and the percent character must be URL escaped. The\n" -" previous example in an SFTP URL might look like:\n" -"\n" -" sftp://[fe80::1234%251]/\n" -"\n" -" IPv6 addresses provided other than in URLs (e.g. to the --proxy, --interface\n" -" or --ftp-port options) should not be URL encoded.\n" -"\n" -"METALINK\n" -"\n" -" Curl supports Metalink (both version 3 and 4 (RFC 5854) are supported), a way\n" -" to list multiple URIs and hashes for a file. Curl will make use of the mirrors\n" -, stdout); - fputs( -" listed within for failover if there are errors (such as the file or server not\n" -" being available). It will also verify the hash of the file after the download\n" -" completes. The Metalink file itself is downloaded and processed in memory and\n" -" not stored in the local file system.\n" -"\n" -" Example to use a remote Metalink file:\n" -"\n" -" curl --metalink http://www.example.com/example.metalink\n" -"\n" -" To use a Metalink file in the local file system, use FILE protocol (file://):\n" -"\n" -, stdout); - fputs( -" curl --metalink file://example.metalink\n" -"\n" -" Please note that if FILE protocol is disabled, there is no way to use a local\n" -" Metalink file at the time of this writing. Also note that if --metalink and\n" -" --include are used together, --include will be ignored. This is because including\n" -" headers in the response will break Metalink parser and if the headers are included\n" -" in the file described in Metalink file, hash check will fail.\n" -"\n" -"MAILING LISTS\n" -"\n" -, stdout); - fputs( -" For your convenience, we have several open mailing lists to discuss curl,\n" -" its development and things relevant to this. Get all info at\n" -" http://curl.haxx.se/mail/. Some of the lists available are:\n" -"\n" -" curl-users\n" -"\n" -" Users of the command line tool. How to use it, what doesn't work, new\n" -" features, related tools, questions, news, installations, compilations,\n" -" running, porting etc.\n" -"\n" -" curl-library\n" -"\n" -" Developers using or developing libcurl. Bugs, extensions, improvements.\n" -"\n" -, stdout); - fputs( -" curl-announce\n" -"\n" -" Low-traffic. Only receives announcements of new public versions. At worst,\n" -" that makes something like one or two mails per month, but usually only one\n" -" mail every second month.\n" -"\n" -" curl-and-php\n" -"\n" -" Using the curl functions in PHP. Everything curl with a PHP angle. Or PHP\n" -" with a curl angle.\n" -"\n" -" curl-and-python\n" -"\n" -" Python hackers using curl with or without the python binding pycurl.\n" -"\n" -" Please direct curl questions, feature requests and trouble reports to one of\n" -, stdout); - fputs( -" these mailing lists instead of mailing any individual.\n" -, stdout) ; -} -#else /* !USE_MANUAL */ -/* built-in manual is disabled, blank function */ -#include "tool_hugehelp.h" -void hugehelp(void) {} -#endif /* USE_MANUAL */ -#else -/* - * NEVER EVER edit this manually, fix the mkhelp.pl script instead! - * Generation time: Wed Sep 10 00:40:56 2014 - */ -#ifdef USE_MANUAL -#include "tool_hugehelp.h" -#include <zlib.h> -#include "memdebug.h" /* keep this as LAST include */ -static const unsigned char hugehelpgz[] = { - /* This mumbo-jumbo is the huge help text compressed with gzip. - Thanks to this operation, the size of this data shrunk from 158943 - to 48006 bytes. You can disable the use of compressed help - texts by NOT passing -c to the mkhelp.pl tool. */ - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xbd, - 0x6b, 0x7b, 0xe3, 0x46, 0x92, 0x2e, 0xf8, 0x5d, 0xbf, 0x02, 0xcd, 0xde, - 0x1e, 0x49, 0xd3, 0x24, 0x75, 0xa9, 0x8b, 0x5d, 0xea, 0x2a, 0x8f, 0x65, - 0x49, 0x65, 0x6b, 0xac, 0x2a, 0xe9, 0x88, 0x2a, 0xdb, 0x7d, 0x6c, 0x3f, - 0xf5, 0x80, 0x24, 0x24, 0xa1, 0x45, 0x02, 0x6c, 0x00, 0xd4, 0xa5, 0x67, - 0xe6, 0xfc, 0xf6, 0xcd, 0x78, 0x23, 0x22, 0x33, 0x81, 0x4c, 0x4a, 0x65, - 0x1f, 0xbb, 0x77, 0xf6, 0xec, 0x7a, 0xa6, 0x55, 0x12, 0x09, 0xe4, 0x35, - 0x32, 0x32, 0xae, 0x6f, 0x24, 0xc9, 0x53, 0xff, 0x7d, 0xc4, 0xff, 0x3e, - 0x9a, 0xff, 0xcc, 0xbf, 0x6b, 0x49, 0x72, 0x56, 0x95, 0x7f, 0xcb, 0x26, - 0x4d, 0xfc, 0xd9, 0x8f, 0x1f, 0xff, 0x33, 0xe1, 0xff, 0x33, 0xef, 0xfc, - 0x64, 0xfe, 0x5d, 0x7b, 0xb4, 0xed, 0xad, 0xc4, 0xbd, 0xf0, 0x9f, 0x1f, - 0x37, 0x93, 0xa7, 0x5e, 0xf8, 0xcf, 0x64, 0x03, 0x2f, 0x7c, 0x94, 0x1e, - 0x5e, 0xd3, 0xef, 0x1f, 0x3f, 0x3e, 0xde, 0xc9, 0x4f, 0x34, 0x2a, 0xfa, - 0xb1, 0x45, 0xef, 0xfd, 0xf4, 0x91, 0x7e, 0x35, 0x9f, 0xac, 0xad, 0xbd, - 0xdf, 0x7f, 0x77, 0xa4, 0xaf, 0x4e, 0x96, 0xd5, 0x2c, 0x19, 0x24, 0x4d, - 0x95, 0x16, 0xf5, 0x65, 0x56, 0x25, 0x69, 0xf2, 0xe1, 0xfc, 0x64, 0x6d, - 0x6d, 0xf4, 0xd7, 0xf7, 0xa7, 0x67, 0xa3, 0xe3, 0x51, 0xeb, 0xb1, 0x1f, - 0xcb, 0x45, 0x93, 0x97, 0x45, 0xfd, 0x73, 0xf2, 0xa3, 0x79, 0x68, 0x38, - 0x1c, 0xfe, 0xbc, 0xb6, 0x76, 0x78, 0x34, 0x3a, 0x38, 0x3f, 0x3e, 0xbb, - 0x38, 0x3e, 0x7d, 0xdf, 0x7a, 0x36, 0xc9, 0xeb, 0xc4, 0x34, 0xd6, 0x94, - 0xe5, 0xcc, 0xfc, 0x70, 0xed, 0x4f, 0xd3, 0x26, 0x4d, 0x2e, 0xab, 0x72, - 0x9e, 0x94, 0x15, 0x7d, 0x91, 0x26, 0x75, 0x56, 0xdd, 0x66, 0x55, 0x3f, - 0x59, 0xd6, 0x79, 0x71, 0x95, 0x94, 0x45, 0x96, 0x94, 0x97, 0x49, 0x73, - 0x9d, 0x69, 0x73, 0xf5, 0x72, 0xb1, 0x28, 0xab, 0x26, 0x9b, 0x26, 0x8b, - 0xaa, 0x6c, 0xca, 0x49, 0x39, 0xab, 0x93, 0x8d, 0xc3, 0xe3, 0x83, 0x8b, - 0x7e, 0xf2, 0xf6, 0xf8, 0xe4, 0xc8, 0xfc, 0xbc, 0x38, 0xc3, 0x8f, 0x51, - 0x3f, 0xf9, 0xfa, 0xf4, 0xec, 0x9b, 0xa3, 0xf3, 0x7e, 0xf2, 0xcd, 0x05, - 0x7d, 0x46, 0x3f, 0xcd, 0x87, 0xc9, 0xf1, 0xbb, 0xfd, 0xb3, 0xbe, 0x36, - 0x47, 0x7f, 0xd0, 0x87, 0x27, 0x87, 0xe6, 0x43, 0xfe, 0x87, 0xfe, 0x3c, - 0x3b, 0x3d, 0x7b, 0xd6, 0xc7, 0x4f, 0xf3, 0xd7, 0xf9, 0xc5, 0xbb, 0x33, - 0xfa, 0x39, 0x32, 0x3f, 0x47, 0x07, 0xf4, 0x03, 0x7d, 0x8c, 0xde, 0xe9, - 0xcf, 0x91, 0x6d, 0xee, 0xe2, 0xe8, 0xe4, 0xfd, 0xd1, 0x45, 0x92, 0x16, - 0xd3, 0xe4, 0xc2, 0x3c, 0xb4, 0x39, 0x34, 0x1f, 0x5d, 0x67, 0xc9, 0xa4, - 0x9c, 0xcf, 0xe9, 0x33, 0xb3, 0x0a, 0xd3, 0xac, 0xce, 0xaf, 0x0a, 0x33, - 0x7c, 0x33, 0xdb, 0xbb, 0xb2, 0xba, 0x49, 0xee, 0xf2, 0xe6, 0xba, 0x5c, - 0x36, 0x66, 0xc2, 0x66, 0x3d, 0x92, 0xbc, 0x68, 0xb2, 0x6a, 0xa0, 0xcd, - 0xa5, 0x13, 0x5a, 0xe1, 0xe1, 0x5a, 0x6b, 0x2d, 0xcb, 0x4b, 0xb3, 0x72, - 0xb5, 0x59, 0xaa, 0xf1, 0xb2, 0x9e, 0x95, 0xe9, 0x94, 0x16, 0xc8, 0xbc, - 0x7c, 0xb9, 0x34, 0x4b, 0x5b, 0xe5, 0x93, 0x9b, 0x3a, 0x99, 0xe5, 0x37, - 0x19, 0x2d, 0xcf, 0xfd, 0x83, 0x2e, 0x57, 0x9f, 0x9b, 0x4f, 0x97, 0x66, - 0x25, 0x0b, 0xdb, 0x7c, 0x93, 0x4f, 0x52, 0xea, 0x00, 0xeb, 0x95, 0x2c, - 0x17, 0xd4, 0x1a, 0xaf, 0x53, 0xb2, 0x28, 0x6b, 0xf3, 0xd2, 0x68, 0x74, - 0x62, 0xc6, 0x5e, 0x14, 0x19, 0xc6, 0x51, 0xf7, 0xcd, 0x1f, 0xe5, 0x4d, - 0x9e, 0x99, 0x5f, 0x2e, 0xf3, 0x59, 0x96, 0xf0, 0x3e, 0xda, 0xe6, 0x68, - 0x43, 0x93, 0x2a, 0xab, 0x97, 0xf3, 0xcc, 0x2c, 0xe1, 0xbb, 0xac, 0x49, - 0x67, 0x79, 0x71, 0x63, 0x7e, 0xa5, 0xa9, 0xcf, 0xcb, 0x2a, 0x1b, 0x26, - 0xfb, 0x75, 0xf2, 0x50, 0x2e, 0xcd, 0x9c, 0x67, 0x33, 0xb3, 0xd3, 0x59, - 0x32, 0xce, 0x66, 0xe5, 0x5d, 0x9f, 0xf6, 0x37, 0x29, 0x96, 0xf3, 0xb1, - 0x69, 0xa0, 0xbc, 0x74, 0xcd, 0xa5, 0xcd, 0xd2, 0x34, 0xc7, 0x4f, 0xcf, - 0x53, 0x33, 0x27, 0xf3, 0x6e, 0x95, 0x5c, 0x67, 0x66, 0xce, 0xf5, 0x22, - 0x2f, 0xfe, 0xd0, 0x5e, 0x17, 0xb3, 0xb8, 0x8b, 0xf2, 0x2e, 0xab, 0xcc, - 0xda, 0x8e, 0x1f, 0x12, 0xb3, 0x08, 0x63, 0x26, 0xbd, 0x4b, 0x43, 0x5a, - 0x49, 0x6a, 0x9a, 0xb0, 0x64, 0x37, 0xa8, 0xb2, 0x59, 0x4a, 0x24, 0x64, - 0xfb, 0x30, 0xfb, 0x34, 0xca, 0x2c, 0x8d, 0xc9, 0xab, 0x1b, 0xcf, 0x36, - 0xf1, 0xf2, 0xd4, 0xcc, 0x24, 0x9f, 0xd5, 0x66, 0x1b, 0xe8, 0x30, 0xe8, - 0x4e, 0x9b, 0x21, 0xd3, 0xe1, 0x30, 0x14, 0xf9, 0x50, 0x34, 0xe9, 0x3d, - 0xba, 0x17, 0x8a, 0x1c, 0x4c, 0xb3, 0x45, 0x56, 0x4c, 0xb3, 0xa2, 0x19, - 0x26, 0x7f, 0x2d, 0x97, 0xeb, 0xa6, 0xef, 0xcb, 0xdc, 0xac, 0x41, 0x2a, - 0x4d, 0x99, 0x9e, 0x0d, 0x19, 0x4c, 0xaa, 0x7c, 0xe1, 0x6d, 0x45, 0x59, - 0x98, 0xcd, 0x4f, 0xce, 0xdf, 0x1e, 0x24, 0xcf, 0x5e, 0x7d, 0xfe, 0xd2, - 0xed, 0xb9, 0x69, 0x20, 0x99, 0xa4, 0x85, 0x99, 0x71, 0x36, 0xc9, 0x2f, - 0x1f, 0x92, 0xf9, 0x72, 0xd6, 0xe4, 0x0b, 0xb3, 0xfa, 0xa6, 0xf3, 0x9a, - 0x8e, 0xcd, 0x22, 0xad, 0x9a, 0x9a, 0x88, 0x00, 0x1f, 0x60, 0xee, 0x77, - 0x55, 0xde, 0xd0, 0xf1, 0xc1, 0x77, 0x66, 0x84, 0x59, 0x53, 0x6b, 0x73, - 0x44, 0x6e, 0xa6, 0x9f, 0x71, 0x95, 0x4e, 0xcc, 0xd2, 0xa6, 0xb5, 0xe9, - 0x74, 0xcf, 0xf6, 0x95, 0x5c, 0x37, 0xcd, 0x62, 0x6f, 0x6b, 0xab, 0xce, - 0x9b, 0x6c, 0xf8, 0x1f, 0xe6, 0xf0, 0xf5, 0x9b, 0xbb, 0xb2, 0xdf, 0x5c, - 0x57, 0x59, 0xf6, 0x5f, 0x43, 0x43, 0xc4, 0xf6, 0x41, 0xd3, 0xed, 0x83, - 0x8c, 0xeb, 0x2a, 0x6b, 0x4c, 0x07, 0x7f, 0x5f, 0x66, 0x05, 0x35, 0x68, - 0x86, 0x91, 0xce, 0x16, 0xd7, 0xa9, 0xd9, 0xcd, 0xcc, 0x10, 0x23, 0x1d, - 0x67, 0x43, 0x2f, 0x34, 0x28, 0x3e, 0xd0, 0x3f, 0xfe, 0x1c, 0xf4, 0x79, - 0x89, 0x2e, 0xcd, 0xcf, 0xa1, 0xbc, 0x94, 0x9a, 0xb5, 0x36, 0x9d, 0x6d, - 0x11, 0x8d, 0xfd, 0xb8, 0x33, 0xd8, 0xd9, 0xde, 0xfe, 0x79, 0xd8, 0xdc, - 0x37, 0x9f, 0xf8, 0xc2, 0xf6, 0xb6, 0x7b, 0x85, 0x9e, 0xde, 0xa0, 0x19, - 0x27, 0x33, 0x43, 0x34, 0xd4, 0xff, 0x3f, 0xb2, 0xaa, 0xac, 0x37, 0x23, - 0x4d, 0xcd, 0xb2, 0xc6, 0x9c, 0x3c, 0xaf, 0x9d, 0x74, 0xf0, 0x0f, 0xee, - 0x56, 0x1f, 0x7e, 0x9f, 0xd5, 0xa0, 0x19, 0x37, 0xd9, 0x24, 0xad, 0x0c, - 0xdd, 0x96, 0x8d, 0x63, 0x4a, 0x7d, 0x73, 0x28, 0x1b, 0xbb, 0x34, 0xe6, - 0xcc, 0x99, 0xa7, 0x0d, 0x3b, 0x4b, 0x67, 0xc4, 0xc9, 0xea, 0xa4, 0xc8, - 0xdc, 0x34, 0xcc, 0xf9, 0xcf, 0xd2, 0xc9, 0x75, 0x52, 0x1a, 0xe2, 0xaf, - 0xc2, 0x2d, 0x48, 0x8b, 0x87, 0x61, 0x59, 0x5d, 0x6d, 0xa5, 0xd5, 0xe4, - 0x3a, 0xbf, 0x35, 0xeb, 0xf0, 0xea, 0xd5, 0xcb, 0x81, 0xf9, 0xf1, 0xea, - 0xe7, 0xad, 0xdb, 0x72, 0x66, 0x96, 0xe5, 0xf9, 0xcf, 0x5b, 0xb4, 0xbb, - 0xff, 0x91, 0xf6, 0xc7, 0xfd, 0xc9, 0x7f, 0x0d, 0xaf, 0x9b, 0xf9, 0x6c, - 0x25, 0xcd, 0x98, 0xc6, 0x92, 0x74, 0x5e, 0x2e, 0x8b, 0xc6, 0xd2, 0x89, - 0x21, 0xb7, 0xc6, 0xe3, 0x4c, 0xe6, 0xa4, 0x66, 0xcc, 0xac, 0x88, 0x7c, - 0xe8, 0xc0, 0x99, 0xb3, 0xe9, 0x4e, 0x62, 0x33, 0xb9, 0x36, 0x53, 0x37, - 0x74, 0x93, 0xca, 0xf4, 0x9b, 0x3c, 0xa5, 0x33, 0x69, 0x58, 0x43, 0x45, - 0x1f, 0x53, 0x53, 0xdc, 0x59, 0x6e, 0x9e, 0x2b, 0xab, 0x69, 0x56, 0xb5, - 0x29, 0x18, 0xc3, 0x71, 0xe3, 0x49, 0xcc, 0x52, 0x2e, 0x4c, 0xe7, 0x4b, - 0x62, 0x77, 0x38, 0x64, 0xd4, 0x82, 0x39, 0x9e, 0x57, 0x66, 0x95, 0xcc, - 0xca, 0x10, 0x51, 0xd1, 0xc2, 0x3d, 0x24, 0xef, 0xcd, 0xe6, 0x31, 0x6b, - 0xf0, 0x68, 0x8f, 0x37, 0x2b, 0x5c, 0xb4, 0xbb, 0xbb, 0xbb, 0xd5, 0x44, - 0xb4, 0xb7, 0xd3, 0xa1, 0x23, 0xef, 0xa5, 0xd8, 0xee, 0xef, 0xed, 0xb6, - 0xf7, 0xff, 0xf8, 0x12, 0x1b, 0xab, 0x73, 0xa0, 0xb3, 0xaf, 0xbc, 0x5b, - 0x0f, 0xbe, 0x69, 0xcd, 0xfc, 0x9e, 0x5d, 0xe6, 0xf7, 0x7d, 0xbd, 0xf8, - 0x78, 0x2d, 0x53, 0xd3, 0xfc, 0x7c, 0xd1, 0xd0, 0xae, 0x6b, 0x73, 0x57, - 0xcb, 0xac, 0x36, 0x24, 0x74, 0x77, 0x9d, 0x9a, 0x8f, 0xb5, 0x81, 0x04, - 0x5d, 0xcc, 0xf3, 0xab, 0xeb, 0x26, 0xb9, 0x4b, 0x89, 0x7f, 0x1c, 0x37, - 0xdc, 0x04, 0x31, 0x6e, 0xc3, 0x35, 0x2e, 0x53, 0x73, 0xfc, 0x69, 0x85, - 0xc0, 0xa5, 0x0d, 0xb1, 0x59, 0x72, 0x32, 0x6b, 0x05, 0x52, 0xf2, 0xee, - 0xc5, 0x71, 0x5a, 0xd3, 0x6e, 0x14, 0x66, 0xd3, 0x1b, 0xc3, 0xf6, 0x97, - 0xf4, 0xd7, 0xb5, 0x61, 0xec, 0x49, 0x91, 0xce, 0x33, 0x19, 0x28, 0x78, - 0xdf, 0x5b, 0x62, 0x91, 0xd9, 0x7d, 0x3a, 0xb7, 0xfc, 0xc8, 0x30, 0x98, - 0xbe, 0xb0, 0x4e, 0xfb, 0x46, 0x6d, 0x76, 0xcd, 0x50, 0x1c, 0x1d, 0x23, - 0x9c, 0xa9, 0x1e, 0x9d, 0x9b, 0x1e, 0xcf, 0x13, 0x63, 0x4c, 0x6b, 0xe2, - 0xfd, 0xcc, 0xe1, 0xcd, 0xe0, 0xbd, 0xc9, 0x9a, 0x45, 0x4b, 0x6f, 0xe8, - 0x96, 0xe9, 0xdc, 0x65, 0x78, 0x6d, 0x5a, 0x26, 0xb9, 0xe1, 0x60, 0x63, - 0x73, 0xbe, 0x68, 0x66, 0x74, 0x6a, 0xb0, 0x2a, 0xd4, 0xce, 0xc2, 0xb4, - 0x49, 0x1f, 0xe6, 0x0d, 0xf1, 0x0d, 0x88, 0x23, 0x66, 0xbc, 0x66, 0x51, - 0x20, 0x51, 0x98, 0xb3, 0xe7, 0xcd, 0x1f, 0x1c, 0xcf, 0x3c, 0x9b, 0xdc, - 0x9a, 0x8b, 0xc7, 0x48, 0x16, 0x99, 0x7d, 0x0b, 0x2c, 0x7a, 0x42, 0xd7, - 0xdd, 0x6c, 0xf6, 0x60, 0xc8, 0xae, 0xaa, 0x48, 0x74, 0xa3, 0x1d, 0x1c, - 0xf3, 0xe1, 0x98, 0x67, 0xe6, 0x66, 0xf0, 0x97, 0x33, 0x27, 0x26, 0x65, - 0x88, 0xd4, 0x5c, 0x35, 0x20, 0x43, 0x73, 0x25, 0xe0, 0x18, 0x63, 0xe2, - 0x18, 0x1d, 0xb5, 0x3d, 0x99, 0x64, 0x8b, 0xa6, 0x8e, 0xcd, 0x49, 0x37, - 0xdc, 0x0c, 0xa7, 0xca, 0x68, 0xe5, 0xfd, 0x7b, 0x14, 0xeb, 0x6a, 0xf9, - 0x38, 0xae, 0x52, 0xbd, 0x9a, 0xcc, 0xd5, 0x5a, 0xdb, 0x55, 0x6b, 0x40, - 0x1b, 0xe6, 0x2c, 0x60, 0xcd, 0xe7, 0x34, 0x50, 0x7a, 0xb8, 0x66, 0x89, - 0x09, 0x67, 0x8e, 0x36, 0x92, 0x45, 0x26, 0xee, 0x97, 0xb8, 0x91, 0x59, - 0x4f, 0xdb, 0xb8, 0xe9, 0xd5, 0xee, 0x29, 0x75, 0x5f, 0x1b, 0x61, 0xd3, - 0x70, 0xe7, 0x69, 0x7d, 0x6d, 0xee, 0x53, 0xb3, 0xf5, 0x17, 0xd7, 0x34, - 0xd3, 0xb9, 0xa1, 0x99, 0x5b, 0xda, 0xdf, 0x45, 0x96, 0x4d, 0x87, 0xc9, - 0xe9, 0x25, 0x1d, 0xcd, 0xca, 0x0c, 0xba, 0xc1, 0xd7, 0xc4, 0x2d, 0xcc, - 0xba, 0x4d, 0x21, 0x8d, 0x15, 0x96, 0x2b, 0x60, 0x28, 0xde, 0xb1, 0x27, - 0x4a, 0x33, 0x8b, 0x9d, 0x10, 0xa3, 0x9f, 0xb5, 0x59, 0x0b, 0x44, 0x00, - 0xc3, 0x02, 0x68, 0x78, 0xe3, 0x2c, 0x01, 0x25, 0x8e, 0xb3, 0xe6, 0x2e, - 0xcb, 0x6c, 0x73, 0x75, 0x66, 0xd8, 0x19, 0x6d, 0x1a, 0x5f, 0xe6, 0xc5, - 0x6d, 0x49, 0x03, 0x5c, 0x5b, 0x3b, 0x3b, 0x3f, 0xfd, 0xfa, 0xfc, 0x68, - 0x34, 0x4a, 0xde, 0x1d, 0x5d, 0x1c, 0x9d, 0xb7, 0x56, 0xba, 0x28, 0xab, - 0x39, 0x76, 0x74, 0x9a, 0xd7, 0x8b, 0x59, 0xfa, 0x40, 0x5b, 0x6d, 0x66, - 0x72, 0x55, 0xd1, 0xc9, 0x9a, 0x67, 0xc4, 0x5a, 0xa6, 0xcb, 0x0a, 0x64, - 0x51, 0x2e, 0xcc, 0xf6, 0x89, 0x10, 0x63, 0x1a, 0x9f, 0x42, 0xf2, 0x29, - 0xae, 0xdc, 0x4a, 0x9b, 0xdb, 0x5c, 0x38, 0x24, 0xb1, 0x48, 0xbb, 0x1f, - 0x24, 0x4d, 0x40, 0x4a, 0xed, 0xbb, 0xcf, 0x78, 0x99, 0x6a, 0xcc, 0xc9, - 0xd0, 0x6c, 0x3e, 0x87, 0x2c, 0x61, 0xfe, 0x75, 0x02, 0x44, 0x76, 0x69, - 0xa4, 0x27, 0xc3, 0x35, 0x3b, 0xa4, 0x61, 0xc7, 0x89, 0x75, 0x85, 0xf0, - 0x4b, 0xd2, 0xb0, 0xe9, 0xdc, 0x8c, 0x75, 0x9e, 0x17, 0x86, 0xc0, 0x0c, - 0x41, 0xca, 0x29, 0x27, 0x4a, 0x30, 0x63, 0xbd, 0x64, 0x9e, 0x20, 0x2b, - 0xd2, 0x96, 0xaa, 0xcd, 0xcb, 0x66, 0xb3, 0x0d, 0x67, 0xb5, 0xd3, 0xc3, - 0xa0, 0x0c, 0x69, 0x9a, 0xe6, 0xd3, 0x31, 0xb1, 0x26, 0x12, 0x33, 0x8d, - 0x34, 0x90, 0x45, 0x7b, 0xb3, 0x72, 0xab, 0x79, 0xc3, 0x8c, 0x2d, 0x1d, - 0xd3, 0x8e, 0xd2, 0x03, 0x9d, 0x55, 0x34, 0x87, 0x08, 0xbc, 0xe5, 0x2e, - 0xaf, 0x71, 0xa8, 0xee, 0xca, 0xe5, 0xcc, 0x88, 0x74, 0xf4, 0xc0, 0x72, - 0x81, 0x17, 0x4c, 0x57, 0x0b, 0x77, 0x7a, 0xe6, 0xf9, 0x3d, 0xad, 0x7a, - 0xb7, 0x15, 0x33, 0x34, 0xf3, 0xe7, 0xc2, 0x6c, 0x02, 0x0f, 0x67, 0xd8, - 0xe5, 0xad, 0xe0, 0x1a, 0xc1, 0x1e, 0xd2, 0x69, 0x01, 0xbb, 0x3b, 0x3b, - 0x1d, 0x5d, 0x10, 0xfb, 0x3f, 0xfb, 0x70, 0x61, 0x1a, 0x32, 0xd7, 0x50, - 0xdd, 0x98, 0xed, 0xa4, 0x17, 0x8b, 0x0c, 0x12, 0xb5, 0x36, 0x67, 0x76, - 0x2d, 0xc7, 0x11, 0xc7, 0xad, 0xa2, 0x5d, 0xf2, 0x18, 0x59, 0xcd, 0x20, - 0xe2, 0x55, 0x25, 0xa3, 0xbe, 0xce, 0x88, 0x47, 0xdb, 0x97, 0x92, 0x8d, - 0x2f, 0x36, 0xcd, 0x76, 0x0f, 0x6c, 0x73, 0x3f, 0xd2, 0xd3, 0x3f, 0x53, - 0xcf, 0x75, 0x3e, 0xcf, 0x67, 0xa9, 0x77, 0xb7, 0x09, 0x27, 0x22, 0xba, - 0xb6, 0xe7, 0x71, 0x62, 0xd8, 0x2e, 0x06, 0xed, 0xa4, 0x6a, 0x5a, 0x41, - 0x9c, 0x66, 0xb7, 0x51, 0xd3, 0x32, 0xe3, 0xf7, 0x8c, 0x28, 0x6b, 0x17, - 0x8e, 0x76, 0x8c, 0x8e, 0x79, 0x6b, 0x99, 0xba, 0xbb, 0x16, 0x2c, 0x1b, - 0x71, 0x72, 0x28, 0x6b, 0x76, 0xe1, 0x7a, 0xe3, 0xb4, 0xea, 0x59, 0x0e, - 0xc6, 0x1a, 0x94, 0x69, 0xf4, 0x6a, 0x69, 0x06, 0xcf, 0xab, 0xda, 0x4f, - 0x06, 0x7f, 0xa4, 0x91, 0x93, 0x48, 0x6d, 0x4f, 0xb4, 0x91, 0xd5, 0x8a, - 0xe9, 0x70, 0xed, 0x14, 0x0a, 0x9c, 0xd5, 0xf6, 0x4e, 0x59, 0xcf, 0x4b, - 0x98, 0xfd, 0xb3, 0x08, 0x99, 0xb0, 0x6a, 0x66, 0xee, 0xed, 0x3b, 0x43, - 0x83, 0xa9, 0x59, 0x42, 0xc3, 0x4c, 0xde, 0xd1, 0xd0, 0xa5, 0x33, 0x51, - 0x0e, 0xb1, 0x4f, 0x66, 0x59, 0xcd, 0xac, 0xac, 0x52, 0x33, 0x9d, 0xe6, - 0xf4, 0x9d, 0x21, 0x76, 0xc3, 0xa8, 0x97, 0x19, 0xa4, 0x22, 0x99, 0xe3, - 0xdc, 0xcd, 0x8d, 0x04, 0xec, 0xfa, 0xda, 0x48, 0x55, 0x49, 0x8f, 0x19, - 0xca, 0x80, 0xba, 0xe9, 0xd1, 0xc2, 0xce, 0x3b, 0x9d, 0x98, 0xb9, 0x4c, - 0xe5, 0xb2, 0xa2, 0x4b, 0x8c, 0xef, 0xae, 0x79, 0xfa, 0xe0, 0xcb, 0x30, - 0x60, 0x39, 0x18, 0x79, 0x59, 0xd9, 0x7b, 0xdb, 0xdc, 0x0c, 0x0b, 0x23, - 0x07, 0x2b, 0x2b, 0x02, 0x4f, 0xc7, 0xf9, 0xa9, 0x79, 0x68, 0x7d, 0x23, - 0xcc, 0xd2, 0x93, 0x57, 0xd7, 0xfa, 0xa8, 0x77, 0x3f, 0xa4, 0x66, 0x6e, - 0xc4, 0xe3, 0x48, 0xd2, 0x9f, 0x2a, 0xfb, 0x2a, 0xab, 0x21, 0x46, 0x3e, - 0x2b, 0x89, 0xeb, 0xf4, 0xa6, 0xe5, 0x72, 0x6c, 0x47, 0x8e, 0xa1, 0x13, - 0x61, 0x0d, 0xb0, 0xab, 0xf4, 0xa7, 0x36, 0x67, 0x87, 0x2d, 0xcb, 0x55, - 0x3f, 0x39, 0x34, 0xb7, 0x50, 0x23, 0x2c, 0x92, 0xb9, 0x01, 0x6a, 0x22, - 0x2b, 0x5d, 0x77, 0x50, 0x9b, 0xe1, 0xd8, 0xeb, 0x0d, 0x1f, 0x0e, 0x88, - 0x80, 0x9d, 0x95, 0xaf, 0x21, 0x95, 0x09, 0x3f, 0xb6, 0x33, 0x33, 0x33, - 0x9a, 0xe6, 0x86, 0xa5, 0x19, 0xbe, 0xaa, 0x3b, 0xe3, 0x04, 0xd5, 0x3e, - 0x2b, 0x97, 0xb4, 0xd6, 0x32, 0x66, 0xe6, 0x4e, 0x2d, 0xf1, 0x8e, 0xb4, - 0x2d, 0x9f, 0xb3, 0xea, 0x98, 0x06, 0xa7, 0x66, 0xa7, 0x4e, 0x30, 0x8f, - 0xc1, 0x6d, 0x42, 0xa7, 0xc1, 0x88, 0xd1, 0x74, 0x34, 0x06, 0xa7, 0x27, - 0xb7, 0x1e, 0x55, 0x93, 0x52, 0x51, 0xd0, 0x75, 0xdb, 0x87, 0xde, 0x36, - 0x2e, 0x4b, 0x23, 0xbe, 0xbb, 0xa9, 0x91, 0xd4, 0x9d, 0x15, 0xc4, 0xac, - 0x64, 0x47, 0x07, 0x03, 0xfe, 0x0a, 0x2d, 0x3f, 0x18, 0xd1, 0x31, 0xbd, - 0x4a, 0x73, 0x4b, 0x6f, 0xc2, 0xd8, 0xec, 0xb3, 0x45, 0x29, 0x8f, 0xd3, - 0x4e, 0xd1, 0x45, 0x2e, 0x3c, 0x64, 0x89, 0xfb, 0x2e, 0xa3, 0x79, 0x19, - 0x26, 0x80, 0x93, 0x2c, 0xcd, 0x42, 0xfa, 0xd1, 0xe6, 0xc6, 0x90, 0xf7, - 0x48, 0x74, 0x02, 0x27, 0x84, 0x20, 0x64, 0x9a, 0xec, 0x0d, 0x93, 0x6f, - 0x8c, 0xf6, 0x09, 0xdb, 0x05, 0x04, 0xe2, 0x9c, 0xf4, 0x70, 0x23, 0xd1, - 0xdc, 0x65, 0x46, 0xf7, 0xad, 0x1b, 0xb3, 0x9a, 0xb8, 0x44, 0xf1, 0x99, - 0x19, 0xa7, 0xbd, 0xf6, 0xae, 0xcb, 0x3b, 0x74, 0x6b, 0x27, 0x61, 0x77, - 0xf2, 0x92, 0x4f, 0x44, 0xb2, 0x81, 0x4b, 0x7a, 0x42, 0x8b, 0xb5, 0x68, - 0xdc, 0x2c, 0xec, 0x7a, 0x18, 0xb6, 0x59, 0x7b, 0x87, 0x8b, 0x6e, 0x2c, - 0x33, 0x82, 0xe4, 0xb3, 0xe1, 0xce, 0xab, 0xe1, 0xf6, 0x90, 0x4c, 0x55, - 0xd9, 0x6d, 0x5e, 0x2e, 0x6b, 0xd3, 0x3b, 0x86, 0x92, 0x78, 0x6f, 0x1a, - 0x75, 0x99, 0xae, 0x91, 0xab, 0xab, 0x19, 0x5f, 0xe0, 0x5b, 0xe5, 0xe5, - 0xa5, 0x77, 0xc7, 0x57, 0x46, 0x91, 0xc5, 0xed, 0x46, 0x8b, 0x23, 0x87, - 0x8e, 0x79, 0x9c, 0x7f, 0xb9, 0xcb, 0x72, 0x6e, 0xda, 0x1d, 0x1c, 0xfc, - 0xd1, 0x6c, 0xf4, 0x40, 0xb9, 0xd1, 0xc0, 0x30, 0xa3, 0x8e, 0x6d, 0xea, - 0x1d, 0x69, 0xf3, 0xfe, 0x95, 0xe8, 0x58, 0x17, 0x0b, 0x6c, 0x39, 0x48, - 0xcb, 0x7e, 0x68, 0x5a, 0x48, 0x2c, 0x3b, 0xf3, 0x6c, 0x04, 0x1e, 0x91, - 0x19, 0xe6, 0x54, 0x4c, 0xd3, 0xca, 0xa8, 0x60, 0x64, 0x6a, 0x30, 0x0f, - 0xd3, 0x69, 0x4b, 0x99, 0xdc, 0xfb, 0xcc, 0xf3, 0x1c, 0x89, 0x0d, 0xf6, - 0x68, 0x80, 0xbe, 0x3a, 0xa6, 0x5c, 0xc7, 0x5c, 0x05, 0x35, 0x8f, 0x4c, - 0x44, 0xd1, 0xd4, 0x49, 0x26, 0x8e, 0x79, 0xab, 0xc6, 0x72, 0x59, 0xce, - 0x66, 0xe5, 0x1d, 0x5d, 0x22, 0x24, 0x4c, 0x7a, 0xdb, 0xaa, 0xdb, 0x51, - 0xd7, 0xe5, 0x24, 0x67, 0x5b, 0x83, 0x2c, 0x3a, 0xb4, 0x2c, 0x98, 0xc3, - 0xe8, 0xd5, 0x5a, 0x6e, 0x77, 0x12, 0x5b, 0x6b, 0xc3, 0x49, 0x12, 0xab, - 0x30, 0xc2, 0xba, 0xd0, 0x69, 0xce, 0x5d, 0x7a, 0x7c, 0x24, 0x85, 0x15, - 0x9b, 0x91, 0xe4, 0x66, 0x7d, 0xca, 0x3b, 0xd5, 0xf8, 0x8c, 0xe2, 0x6d, - 0x59, 0xa3, 0x77, 0x54, 0xfb, 0x9d, 0xe6, 0xea, 0xa5, 0x69, 0xc3, 0xac, - 0xf7, 0x34, 0x27, 0x93, 0x92, 0x51, 0xea, 0xd8, 0x4a, 0xc4, 0xb2, 0xbe, - 0x79, 0x6d, 0xb2, 0xac, 0x1b, 0x23, 0x68, 0x6a, 0xaf, 0xdc, 0x94, 0xe9, - 0xd7, 0x90, 0xe4, 0x3e, 0xd1, 0x59, 0xa7, 0x39, 0x43, 0x74, 0x9f, 0x0d, - 0x9f, 0xbd, 0x1c, 0x6e, 0x7b, 0x84, 0xb0, 0x4d, 0xeb, 0x4c, 0x8a, 0xd6, - 0xce, 0x70, 0xbb, 0xf3, 0xf8, 0x06, 0xdd, 0xe9, 0x9b, 0xba, 0xe4, 0xad, - 0x35, 0xc7, 0x6d, 0xaf, 0xe7, 0xc0, 0xbc, 0xe9, 0xdf, 0x64, 0x7c, 0x67, - 0xe7, 0xce, 0xa2, 0x61, 0x7b, 0x37, 0x3b, 0x5c, 0x40, 0x1c, 0xe4, 0xfb, - 0xd0, 0xdc, 0xe7, 0x7b, 0xdc, 0xd2, 0xce, 0x70, 0xc7, 0xdb, 0x7a, 0x19, - 0xce, 0x4e, 0x7c, 0x38, 0x21, 0x01, 0x74, 0x06, 0xb3, 0xa3, 0x42, 0x33, - 0x4b, 0x4a, 0xb6, 0xdf, 0x4e, 0x73, 0xaa, 0xaa, 0xc9, 0x8b, 0xba, 0x64, - 0xb2, 0x48, 0xcf, 0x5a, 0x8b, 0x84, 0x11, 0xed, 0x7e, 0xc2, 0xf2, 0x80, - 0x4c, 0x72, 0xa3, 0x65, 0x51, 0xbf, 0x66, 0x43, 0xdc, 0xd6, 0xf0, 0xaa, - 0x60, 0xa8, 0xbb, 0x3c, 0xc0, 0x08, 0xe9, 0xe0, 0x62, 0xc1, 0xc5, 0x40, - 0x23, 0x5f, 0x9a, 0x7b, 0xab, 0x9a, 0x41, 0x6b, 0x52, 0x5b, 0x99, 0x61, - 0x24, 0x86, 0xbf, 0xe5, 0xb3, 0x46, 0x08, 0x92, 0xcd, 0x1a, 0xd4, 0xd7, - 0xb0, 0x3b, 0xba, 0x47, 0x66, 0x63, 0xb8, 0x61, 0xb1, 0x28, 0x3a, 0x2f, - 0x1c, 0x32, 0x17, 0x16, 0x51, 0xfb, 0xfd, 0xd9, 0x7b, 0x33, 0xb3, 0x93, - 0x11, 0xdd, 0x7c, 0x46, 0x35, 0xe5, 0x15, 0xc2, 0xa7, 0x66, 0x59, 0x95, - 0xb7, 0x3b, 0x51, 0xd8, 0x48, 0xc1, 0x9d, 0xe6, 0xc2, 0x11, 0xe3, 0x28, - 0x98, 0x5b, 0x82, 0x6c, 0x96, 0xe6, 0xdb, 0x2a, 0x35, 0x5a, 0x1b, 0xe6, - 0x2a, 0xb3, 0xa8, 0xa9, 0xf9, 0x21, 0xf7, 0x1c, 0xac, 0x0e, 0xa4, 0x03, - 0x28, 0x83, 0xb6, 0xe5, 0xf6, 0xbb, 0xbc, 0xb2, 0xb4, 0x2a, 0x45, 0x76, - 0x55, 0x36, 0x74, 0xa4, 0xf5, 0x33, 0xf3, 0xcc, 0xa0, 0xd3, 0x1c, 0x56, - 0x0d, 0x03, 0x02, 0x67, 0x62, 0xfd, 0x4c, 0x54, 0x11, 0xda, 0x6b, 0xa3, - 0x69, 0x19, 0xae, 0x06, 0x6e, 0xb0, 0xf6, 0xd8, 0xc2, 0xbe, 0x0c, 0x16, - 0x36, 0x9d, 0xad, 0x5c, 0x59, 0xea, 0x6a, 0xff, 0xc4, 0x4c, 0x8f, 0xd6, - 0xd5, 0x5b, 0x56, 0x7c, 0xe6, 0x2d, 0x2b, 0x2c, 0x84, 0xba, 0xb0, 0xab, - 0x57, 0x16, 0x4b, 0xfb, 0xc9, 0x6b, 0x4b, 0x9d, 0x70, 0x57, 0xdd, 0x63, - 0x59, 0x8b, 0xb6, 0xf7, 0x29, 0x6b, 0xeb, 0x2d, 0x2e, 0x7f, 0x9a, 0xec, - 0x06, 0x2c, 0x6b, 0xf1, 0xfb, 0x2c, 0xee, 0x0e, 0x31, 0xaa, 0x66, 0x56, - 0xdf, 0x06, 0x7c, 0xc1, 0x4c, 0x7a, 0x93, 0x2c, 0x24, 0x64, 0xf1, 0xf3, - 0xf9, 0x02, 0x2d, 0xb3, 0x63, 0x0b, 0xf7, 0xc9, 0x1d, 0x59, 0x68, 0x74, - 0x02, 0xd6, 0x48, 0x92, 0x06, 0xe7, 0x70, 0x5e, 0x36, 0xfc, 0x32, 0x0f, - 0x7d, 0xe8, 0xcc, 0x75, 0xd4, 0xaa, 0xbb, 0x9b, 0x65, 0x38, 0xc3, 0xed, - 0xbe, 0xfb, 0x7d, 0xa7, 0xcb, 0xc2, 0xe9, 0x0e, 0xb6, 0xdf, 0x62, 0x0d, - 0x8d, 0x9c, 0xd0, 0x54, 0x25, 0x0c, 0x46, 0xad, 0x21, 0xe2, 0x56, 0x34, - 0x9c, 0x71, 0x62, 0x74, 0x38, 0xc3, 0x23, 0x37, 0xf2, 0x96, 0x5b, 0x45, - 0x65, 0x49, 0xb3, 0xc1, 0xe3, 0x74, 0x72, 0x43, 0x37, 0x51, 0x2e, 0x06, - 0x4c, 0xdd, 0x26, 0xbe, 0x2d, 0x8c, 0x6e, 0x7b, 0x9b, 0x91, 0x13, 0x42, - 0x3b, 0xda, 0xf4, 0x58, 0xeb, 0x2e, 0x2d, 0x62, 0x5d, 0xcf, 0x6e, 0x77, - 0x3f, 0x75, 0x11, 0xa9, 0x43, 0x1d, 0xe1, 0x6e, 0xb8, 0x84, 0x72, 0xc1, - 0xad, 0x58, 0x44, 0x7a, 0x59, 0x16, 0xd1, 0x8d, 0xe1, 0x99, 0x8e, 0xe1, - 0x59, 0x74, 0x0c, 0x3a, 0x88, 0x95, 0xa3, 0x78, 0xf6, 0xcb, 0x36, 0x32, - 0x3a, 0x86, 0xe7, 0x34, 0x86, 0x7c, 0x71, 0xfb, 0xbc, 0xf3, 0x8e, 0xd1, - 0xd7, 0xd4, 0x55, 0x31, 0x49, 0x17, 0x38, 0xb5, 0x66, 0x21, 0x0d, 0x57, - 0x2e, 0x67, 0xb7, 0xd4, 0x91, 0xa1, 0x01, 0x23, 0xc0, 0x41, 0xe2, 0x69, - 0x3c, 0x23, 0x4e, 0x72, 0x6c, 0x4e, 0xc2, 0xad, 0xe7, 0x17, 0xd2, 0xc3, - 0xc0, 0x84, 0xb2, 0x71, 0x77, 0x9d, 0x93, 0x30, 0x90, 0x8b, 0x55, 0xcc, - 0xec, 0x2c, 0x5b, 0x00, 0x8e, 0xcf, 0x6e, 0x5f, 0x0e, 0xa4, 0xa3, 0xcd, - 0x3e, 0xcb, 0xa4, 0x22, 0x64, 0x36, 0x74, 0xab, 0x74, 0x9a, 0xd3, 0x15, - 0xe1, 0xf1, 0x64, 0x22, 0x07, 0x98, 0x0f, 0x4c, 0x3b, 0xcf, 0x75, 0x60, - 0x19, 0x1b, 0x83, 0xbc, 0xc9, 0xbe, 0x94, 0xc9, 0xbe, 0xfc, 0x3f, 0x66, - 0xb2, 0x2f, 0x57, 0x4f, 0x36, 0xa5, 0xc9, 0xa6, 0x0b, 0x72, 0xef, 0x74, - 0xc9, 0xcb, 0x68, 0xfb, 0x5b, 0xe4, 0x19, 0xdc, 0x4c, 0xbe, 0x27, 0x02, - 0x02, 0xd7, 0x23, 0x8b, 0x79, 0x61, 0x3d, 0x6b, 0x18, 0x13, 0x5b, 0x73, - 0xc9, 0xe2, 0xa0, 0x43, 0x88, 0x36, 0x47, 0xdc, 0x10, 0x57, 0xa5, 0xd1, - 0xb9, 0xc9, 0x1a, 0x2e, 0x1e, 0x37, 0x4f, 0x06, 0x36, 0xff, 0x33, 0xcb, - 0x64, 0x5d, 0x3d, 0x39, 0x19, 0x8b, 0x59, 0x42, 0xa7, 0x47, 0xbb, 0xe2, - 0x48, 0x99, 0xd5, 0xa4, 0x0b, 0x66, 0xf7, 0x39, 0x39, 0xf6, 0x72, 0xb1, - 0x2a, 0x1b, 0xdd, 0x2f, 0x99, 0x54, 0x10, 0xf1, 0x87, 0xe4, 0xe2, 0x20, - 0x8a, 0x16, 0xb3, 0x23, 0x06, 0x9b, 0x5c, 0xce, 0xd2, 0xab, 0xc8, 0x7d, - 0x99, 0x5f, 0x15, 0xa5, 0x38, 0xda, 0xea, 0x72, 0x4e, 0xa7, 0xe0, 0x1b, - 0x39, 0x05, 0xb5, 0xe1, 0x2c, 0xc5, 0x64, 0xb6, 0x84, 0xb7, 0xe5, 0xd4, - 0x4c, 0xcc, 0x7c, 0xe5, 0xb3, 0x88, 0x7d, 0x5a, 0x40, 0x12, 0x33, 0x07, - 0xe9, 0x15, 0x49, 0x9c, 0xaf, 0xf9, 0x9f, 0xba, 0x21, 0xfe, 0xfd, 0x45, - 0x5c, 0x06, 0x1a, 0x89, 0x5e, 0x49, 0x73, 0xfb, 0x40, 0xaf, 0xee, 0x7b, - 0xef, 0xd0, 0x4a, 0x41, 0x72, 0x16, 0x2b, 0x09, 0xee, 0x0d, 0x3d, 0x91, - 0x1d, 0xee, 0x46, 0x43, 0x35, 0xfc, 0x6d, 0x4a, 0x9a, 0x10, 0xac, 0x99, - 0xc9, 0xc1, 0xd7, 0xc7, 0x34, 0xcb, 0x34, 0x9f, 0xb1, 0xa9, 0x4d, 0x66, - 0x9d, 0x67, 0x33, 0xd2, 0xa2, 0xb0, 0x64, 0xf0, 0x9f, 0x25, 0xbe, 0xe9, - 0x5e, 0xfe, 0xeb, 0xbd, 0x2b, 0xff, 0x61, 0x16, 0x31, 0xdd, 0x7a, 0x3e, - 0xdc, 0xee, 0x91, 0x58, 0x6f, 0xb6, 0x2c, 0x2b, 0x26, 0xe5, 0x94, 0x3a, - 0x99, 0xa5, 0xc5, 0x4d, 0xcd, 0x8a, 0x18, 0x6b, 0x27, 0x34, 0xd6, 0xbe, - 0x61, 0xa2, 0x55, 0x55, 0x2e, 0x69, 0xb4, 0x01, 0xef, 0x95, 0xe9, 0x80, - 0xd9, 0x88, 0x09, 0xf5, 0xef, 0x4b, 0xda, 0x90, 0x79, 0x5a, 0xdd, 0xa8, - 0xa9, 0x96, 0xae, 0x89, 0x74, 0x56, 0x97, 0xd8, 0x39, 0x8c, 0xcb, 0xaa, - 0x00, 0x9d, 0xe6, 0x06, 0xdf, 0x40, 0xf4, 0x36, 0xc4, 0x42, 0x5e, 0x55, - 0x3e, 0x08, 0xa5, 0x1a, 0x76, 0x83, 0x9b, 0x11, 0x94, 0xe3, 0x4e, 0x8c, - 0xde, 0xda, 0xaa, 0x8c, 0x90, 0x71, 0xb3, 0x66, 0x3f, 0xed, 0x2c, 0xad, - 0x1b, 0x18, 0x7f, 0x94, 0x80, 0xe8, 0x41, 0x5f, 0xbc, 0x4e, 0x8b, 0x07, - 0xf2, 0x33, 0x7f, 0x8a, 0x78, 0x7d, 0x99, 0x5f, 0x2d, 0xab, 0x8c, 0xad, - 0x5e, 0x70, 0x4d, 0xab, 0x47, 0x9a, 0xf4, 0xb5, 0xeb, 0x12, 0xf4, 0x65, - 0xe4, 0xdc, 0x6c, 0x76, 0x19, 0xbb, 0xf7, 0x54, 0x61, 0x87, 0x4e, 0x5b, - 0x67, 0x13, 0x34, 0x55, 0x64, 0x62, 0xeb, 0x02, 0x77, 0x26, 0x47, 0x66, - 0x32, 0x99, 0xa5, 0xf9, 0xbc, 0x6e, 0x89, 0xb4, 0x5d, 0xca, 0x50, 0x89, - 0x1e, 0x44, 0x31, 0x26, 0x33, 0x7b, 0x55, 0x93, 0xf9, 0x04, 0x7c, 0x4a, - 0xa5, 0x6c, 0x36, 0x62, 0x5f, 0x67, 0x93, 0x1b, 0x90, 0x9d, 0x67, 0x5a, - 0xec, 0xf2, 0x2a, 0x5e, 0x75, 0x2c, 0xd8, 0x92, 0xbc, 0xd2, 0x46, 0x1c, - 0x19, 0x1b, 0x9a, 0xcb, 0x8b, 0xe9, 0x72, 0x82, 0xc3, 0x4a, 0xd6, 0x12, - 0x23, 0xa2, 0x55, 0x29, 0x89, 0x3c, 0x0d, 0xe2, 0x00, 0x12, 0xd0, 0xc5, - 0xc0, 0x10, 0xc1, 0x22, 0x3a, 0x3a, 0x70, 0x3b, 0x96, 0x53, 0x5b, 0x4c, - 0xa0, 0x16, 0xf7, 0x00, 0x2c, 0xef, 0xaa, 0xfd, 0xb5, 0x57, 0xb3, 0xd3, - 0x1c, 0xaf, 0x6d, 0x3f, 0x61, 0x4e, 0xaa, 0xce, 0xca, 0x69, 0x29, 0xa4, - 0x34, 0x30, 0xfa, 0x7a, 0x9d, 0x4f, 0xd8, 0x50, 0x95, 0x5f, 0x65, 0xc4, - 0x2f, 0x48, 0xf8, 0x6c, 0x66, 0x73, 0xf6, 0xe5, 0x77, 0x09, 0x6d, 0x60, - 0xa5, 0xb6, 0x80, 0xac, 0x7c, 0x86, 0xc2, 0x2a, 0x8a, 0xa5, 0x0f, 0x35, - 0x9b, 0xfa, 0x46, 0xb4, 0x9c, 0xed, 0x99, 0x66, 0x28, 0xcc, 0x32, 0xbb, - 0x6c, 0x07, 0x7e, 0x8f, 0xba, 0x31, 0xbc, 0xa5, 0x4f, 0x47, 0x64, 0x02, - 0x63, 0x34, 0x19, 0xfa, 0xd4, 0xca, 0xa8, 0xe6, 0xd2, 0x31, 0x09, 0x86, - 0xe4, 0x81, 0xba, 0xcb, 0x27, 0xec, 0x7c, 0x80, 0x03, 0x2d, 0x62, 0x36, - 0x98, 0xcc, 0x72, 0x7a, 0x70, 0x6e, 0x54, 0x5d, 0x7a, 0x8b, 0x25, 0x69, - 0xba, 0x16, 0x8c, 0x56, 0x3f, 0xb5, 0x1c, 0x15, 0x26, 0xb4, 0xfa, 0x1a, - 0x66, 0xef, 0xb4, 0xca, 0xe1, 0xa1, 0x0a, 0x9a, 0xe3, 0x31, 0xd3, 0x24, - 0xfd, 0x71, 0x42, 0xd5, 0x62, 0x23, 0xb0, 0xb3, 0x1f, 0xe0, 0xec, 0x10, - 0xd7, 0xf1, 0x0e, 0xce, 0x98, 0xce, 0x2b, 0x07, 0x58, 0x24, 0xaf, 0xe9, - 0x3a, 0x7a, 0x43, 0xb3, 0x59, 0xc1, 0x12, 0xcf, 0xe0, 0x17, 0xbb, 0x6e, - 0x1b, 0x88, 0x3d, 0xd6, 0xc7, 0x66, 0x14, 0x6e, 0x0d, 0x4e, 0x44, 0xa2, - 0x9e, 0xa8, 0xa6, 0x62, 0x28, 0x8a, 0xd8, 0xa1, 0x6d, 0x6b, 0xe1, 0xac, - 0x45, 0x66, 0x6b, 0xb2, 0xfc, 0xd6, 0xcc, 0xdc, 0xf9, 0x9b, 0xb8, 0x71, - 0x38, 0x82, 0x7b, 0xa3, 0xac, 0xe9, 0x36, 0x77, 0x80, 0x0e, 0xf7, 0x7a, - 0x9e, 0x3f, 0x99, 0x5b, 0x95, 0xb5, 0x1b, 0x67, 0xea, 0x2d, 0x66, 0xeb, - 0x8c, 0x61, 0xa2, 0x14, 0x7e, 0xb4, 0xf3, 0xe6, 0xbb, 0xfd, 0x93, 0x0f, - 0x47, 0x3b, 0x7f, 0xe9, 0x92, 0x8f, 0xf9, 0x6e, 0x97, 0xbf, 0xdb, 0xed, - 0xc5, 0x78, 0x96, 0xa1, 0xa0, 0x24, 0x59, 0x7f, 0xb3, 0x9e, 0xd4, 0x0f, - 0xf3, 0x71, 0x39, 0xb3, 0x7c, 0x4b, 0x3a, 0xa1, 0x51, 0xf4, 0x45, 0x3e, - 0x68, 0xf8, 0x9a, 0xe3, 0x85, 0xa1, 0x1b, 0xb2, 0x3b, 0x76, 0x38, 0x45, - 0x45, 0x20, 0x04, 0x05, 0xa4, 0x53, 0x7f, 0x31, 0xea, 0x06, 0x37, 0x9e, - 0x6c, 0x10, 0xb5, 0x5c, 0x33, 0x41, 0xf6, 0x13, 0x3e, 0x49, 0x5d, 0x76, - 0xce, 0x33, 0xb6, 0xee, 0x2e, 0x35, 0x0a, 0x8a, 0x72, 0x92, 0xb0, 0xfc, - 0xfd, 0x60, 0xc8, 0xb7, 0x21, 0x8b, 0xca, 0x87, 0x9a, 0x99, 0x4a, 0x5e, - 0xcb, 0xf9, 0xec, 0x32, 0x3c, 0x62, 0xfa, 0xe4, 0xc3, 0xbc, 0x35, 0xb3, - 0xe0, 0xad, 0xef, 0xc9, 0x58, 0x16, 0xa9, 0xe1, 0xe8, 0x55, 0x4f, 0xce, - 0xb3, 0x8b, 0x96, 0x11, 0x9b, 0x01, 0x1d, 0xb0, 0x2a, 0xb4, 0xd5, 0x98, - 0x53, 0x47, 0x3d, 0x4a, 0x44, 0x0f, 0x85, 0x66, 0x29, 0x47, 0xa0, 0x03, - 0x65, 0x46, 0x4d, 0x6e, 0xc2, 0x07, 0x39, 0x92, 0xeb, 0x55, 0x26, 0xe7, - 0x97, 0x3d, 0x82, 0x5d, 0xd2, 0x37, 0x8d, 0x8d, 0xf3, 0x42, 0x69, 0x5b, - 0x54, 0xb3, 0xc1, 0x09, 0x51, 0xf4, 0xac, 0x14, 0x96, 0xee, 0x8c, 0xae, - 0xe2, 0xf3, 0xb4, 0x34, 0x10, 0xb5, 0xe7, 0x69, 0x88, 0x51, 0x99, 0xf0, - 0x56, 0xe8, 0x40, 0xf9, 0x6c, 0x59, 0x72, 0x5a, 0x18, 0xe6, 0x5e, 0x30, - 0xe5, 0x0b, 0xd7, 0x4d, 0xca, 0x2a, 0xd2, 0xdc, 0xfb, 0xac, 0xa9, 0x8d, - 0x74, 0x98, 0x6d, 0xc9, 0xa5, 0xad, 0x1b, 0x89, 0x5e, 0x78, 0x20, 0x21, - 0xf7, 0x3a, 0xbd, 0x38, 0x72, 0xf6, 0x12, 0x3c, 0xe9, 0xbc, 0x9d, 0x6c, - 0x87, 0xf5, 0x0f, 0xad, 0xfa, 0x49, 0x85, 0x4b, 0xa7, 0xa1, 0x85, 0x6a, - 0xb1, 0x6c, 0xc8, 0xcc, 0x51, 0xda, 0xc9, 0xe8, 0x1d, 0x2a, 0xc4, 0xa5, - 0x67, 0xc3, 0xf4, 0x34, 0x24, 0x71, 0x02, 0x1f, 0xdb, 0xa0, 0xab, 0xd0, - 0x66, 0xc1, 0xcb, 0x3c, 0x71, 0x63, 0x18, 0xfc, 0x2d, 0x75, 0x97, 0xbd, - 0xc4, 0xe8, 0x60, 0xa5, 0xcc, 0x3d, 0x5e, 0x24, 0x75, 0x7a, 0xcb, 0xaf, - 0x60, 0xbd, 0xe2, 0x77, 0x96, 0x73, 0x8f, 0x29, 0xc3, 0x3e, 0xa4, 0xe6, - 0xa7, 0xcb, 0xf9, 0x42, 0x84, 0x89, 0x3f, 0xfc, 0x7e, 0xb2, 0xc3, 0x57, - 0x22, 0x1c, 0x0e, 0xd2, 0x7a, 0x92, 0xe7, 0x31, 0x01, 0x9b, 0x02, 0xf4, - 0x8c, 0x12, 0x77, 0x54, 0xb0, 0x31, 0x69, 0x7f, 0x74, 0x70, 0x7c, 0xec, - 0x3c, 0xb3, 0x1a, 0xca, 0x80, 0xf8, 0xbc, 0xa6, 0x23, 0x2f, 0x75, 0x9a, - 0xcb, 0xc8, 0x40, 0x3c, 0x61, 0x19, 0x96, 0x67, 0x6a, 0x1e, 0x25, 0x2b, - 0x2e, 0x36, 0xdc, 0xdc, 0x47, 0xb5, 0x18, 0xf7, 0xff, 0xd2, 0x3c, 0x2c, - 0xb2, 0x37, 0xfb, 0x3d, 0x6b, 0xb8, 0xe5, 0x79, 0x76, 0x4f, 0x40, 0xba, - 0x24, 0x75, 0x81, 0x99, 0x1d, 0xae, 0x1e, 0xda, 0xbe, 0xa9, 0xb8, 0x60, - 0x85, 0xef, 0x91, 0x3b, 0x65, 0x4e, 0xf2, 0xe1, 0x25, 0x9c, 0x50, 0xc5, - 0xb3, 0x5d, 0xc3, 0xb8, 0xcc, 0x5d, 0x3e, 0xaf, 0x7d, 0x01, 0x0a, 0xd7, - 0xef, 0xa3, 0xd6, 0xc0, 0xc0, 0x3c, 0xf9, 0x15, 0xbd, 0xd2, 0xb9, 0xf5, - 0x5b, 0x76, 0xca, 0x15, 0xd6, 0xc9, 0x14, 0x92, 0x68, 0x67, 0xef, 0x96, - 0x6c, 0x44, 0x35, 0xc2, 0x4f, 0x33, 0x33, 0xcc, 0xaa, 0x9f, 0x2c, 0x0b, - 0xfa, 0xd7, 0x3a, 0x49, 0x92, 0xbc, 0x89, 0x28, 0x2b, 0xa4, 0x8c, 0x54, - 0x39, 0xc9, 0xbe, 0x69, 0xe2, 0xf3, 0x4d, 0x96, 0x52, 0xd5, 0x93, 0xc2, - 0xa2, 0x00, 0x05, 0xa4, 0x51, 0x34, 0x9c, 0xda, 0x9d, 0xbb, 0xbc, 0x2e, - 0x2a, 0x0b, 0x6e, 0xa8, 0xb9, 0xda, 0xca, 0x22, 0x9e, 0x7c, 0x42, 0xbb, - 0xae, 0x82, 0x48, 0x97, 0xb1, 0x1b, 0x86, 0xe9, 0x6b, 0x20, 0xdd, 0xe3, - 0xf2, 0x1a, 0xc4, 0x4e, 0xdc, 0x7f, 0xc5, 0x5d, 0xeb, 0xf4, 0x8f, 0x52, - 0x38, 0x24, 0xde, 0xb0, 0x0e, 0x6b, 0xdd, 0x0d, 0xf6, 0xb3, 0x93, 0xc7, - 0x4a, 0x4e, 0x6c, 0x77, 0x1c, 0x97, 0xf0, 0x82, 0x13, 0xb3, 0x34, 0x8a, - 0x2e, 0xdd, 0x45, 0x56, 0x20, 0x18, 0x26, 0x07, 0xb0, 0x66, 0x52, 0x0b, - 0xb5, 0xdf, 0x84, 0xbf, 0x94, 0x81, 0x01, 0x82, 0x44, 0x40, 0xb0, 0xc3, - 0xd4, 0xe3, 0x4b, 0x18, 0x9b, 0x59, 0xa5, 0xbb, 0x0c, 0x11, 0x39, 0xad, - 0xc6, 0x5a, 0x17, 0x7a, 0xdc, 0x9e, 0xc1, 0x37, 0xfc, 0x46, 0xbd, 0x09, - 0xd9, 0xa7, 0x70, 0xac, 0x8a, 0xbc, 0x6e, 0x37, 0x45, 0x79, 0x67, 0x44, - 0x9a, 0xa2, 0xe4, 0x5e, 0xf4, 0x14, 0xd3, 0xb0, 0xbb, 0x8b, 0xde, 0x64, - 0x85, 0xdc, 0xff, 0xc2, 0xc8, 0x35, 0xa8, 0x0c, 0x4f, 0x37, 0x50, 0x90, - 0x55, 0x8c, 0x56, 0xde, 0xec, 0xf3, 0xe4, 0xae, 0xe4, 0xc7, 0x1c, 0xda, - 0x06, 0x61, 0x65, 0x1e, 0x4f, 0xd6, 0x8b, 0xdb, 0x8b, 0x3d, 0x81, 0x4b, - 0xda, 0x90, 0x45, 0x6f, 0xd0, 0xeb, 0xc7, 0x94, 0xa3, 0x2e, 0xff, 0xd5, - 0x31, 0xd9, 0x43, 0x1b, 0xdc, 0x05, 0x7c, 0xf4, 0xd5, 0xed, 0xc5, 0x7e, - 0x2f, 0xa5, 0x6a, 0x8e, 0xf8, 0x91, 0xbb, 0x59, 0xc2, 0xea, 0x30, 0x91, - 0xac, 0xb8, 0xca, 0xa1, 0x90, 0xa4, 0x5d, 0x12, 0xa7, 0x0b, 0x5a, 0xce, - 0x31, 0xdf, 0xcf, 0x56, 0xa3, 0x91, 0xa1, 0x0d, 0x93, 0xfd, 0x82, 0xe3, - 0xb9, 0xee, 0x52, 0x50, 0x9e, 0x6d, 0x1f, 0xe2, 0x4c, 0x78, 0x00, 0xed, - 0x75, 0xe0, 0x5f, 0x49, 0x72, 0xe7, 0x46, 0x39, 0xb6, 0x1d, 0x25, 0x1d, - 0x02, 0xc3, 0x27, 0xd7, 0x21, 0x00, 0x8b, 0x35, 0x00, 0x5e, 0x72, 0xbb, - 0x28, 0xcc, 0xbd, 0xef, 0xae, 0xcb, 0x19, 0x7b, 0xed, 0x3a, 0xcd, 0x79, - 0x72, 0x2d, 0x1c, 0xce, 0x50, 0xa7, 0xc9, 0x57, 0x44, 0x97, 0x4e, 0x95, - 0xc1, 0x60, 0x6b, 0x98, 0xab, 0xe1, 0x0f, 0xe4, 0x54, 0x9a, 0x65, 0x69, - 0x35, 0x7b, 0x30, 0xc4, 0xc1, 0x22, 0x4f, 0x32, 0xb8, 0xed, 0x34, 0x87, - 0xe5, 0x24, 0x9b, 0x47, 0x6a, 0xe6, 0x5e, 0x15, 0xf4, 0x90, 0x78, 0x09, - 0x35, 0xc0, 0xb2, 0x61, 0xbf, 0x2d, 0x3b, 0x97, 0xe9, 0xca, 0xbd, 0xcd, - 0x49, 0xc3, 0x32, 0xf4, 0x60, 0xe4, 0xf4, 0x2e, 0x25, 0x92, 0x3d, 0x13, - 0x44, 0x83, 0x26, 0x39, 0x28, 0xe6, 0x3a, 0xf7, 0xd4, 0x32, 0x73, 0x16, - 0xaf, 0xcd, 0x3d, 0x65, 0x74, 0xc5, 0x65, 0xba, 0x7a, 0xb9, 0x3e, 0xe9, - 0x82, 0xe3, 0x1b, 0xce, 0x8f, 0x89, 0x8a, 0xd0, 0x32, 0xe8, 0x75, 0xc5, - 0x0d, 0x78, 0xc0, 0x9b, 0x67, 0x98, 0x5f, 0xb1, 0x34, 0xd7, 0x60, 0x93, - 0xbc, 0x2e, 0x2f, 0x2f, 0x0d, 0xb5, 0x7f, 0x11, 0x08, 0xda, 0xfc, 0xc8, - 0xd6, 0x39, 0xe2, 0xad, 0x5b, 0x4c, 0x37, 0x69, 0x87, 0x94, 0x25, 0x22, - 0xbf, 0x5c, 0xe5, 0xb4, 0x1d, 0xdc, 0x5c, 0xa8, 0x61, 0xb6, 0xbf, 0xd7, - 0xc5, 0x65, 0x5f, 0xb8, 0xc6, 0x66, 0x43, 0xdf, 0x1c, 0x3f, 0x10, 0x8b, - 0x12, 0x46, 0xde, 0x8d, 0x14, 0x55, 0xd9, 0xf7, 0x26, 0x5f, 0x2c, 0x68, - 0xb3, 0x38, 0xc4, 0x13, 0xdb, 0x6c, 0x75, 0x88, 0x71, 0x66, 0x0e, 0x05, - 0x76, 0x55, 0x1d, 0xca, 0xe5, 0xd2, 0x5c, 0xc4, 0x3c, 0xe8, 0x71, 0x66, - 0x4e, 0x7a, 0xb7, 0x39, 0x15, 0xe0, 0x5d, 0x48, 0x96, 0x28, 0x3c, 0x53, - 0x0a, 0xbf, 0x2a, 0x84, 0x83, 0xd2, 0x36, 0xb9, 0x28, 0x0f, 0x51, 0x20, - 0xfb, 0x91, 0xc3, 0xff, 0xd6, 0x69, 0x49, 0x7a, 0x9e, 0x47, 0xc7, 0xff, - 0xf3, 0xc8, 0x05, 0xd0, 0xd9, 0x08, 0xb5, 0x07, 0x50, 0x7b, 0x40, 0x0f, - 0x1f, 0xe8, 0x12, 0xec, 0x0d, 0x0e, 0xcc, 0x7e, 0xf5, 0x30, 0x94, 0x96, - 0x35, 0x6f, 0xd9, 0x94, 0xe4, 0x77, 0xe6, 0x58, 0x43, 0xc4, 0x7d, 0x13, - 0xc9, 0x19, 0x7d, 0xb1, 0xca, 0xb6, 0xe0, 0xec, 0x2f, 0x03, 0xce, 0x8b, - 0x2d, 0x44, 0x88, 0x8f, 0x15, 0x64, 0x8e, 0x1b, 0x0e, 0xf9, 0x84, 0x54, - 0xe1, 0xb6, 0x4f, 0x82, 0x98, 0xb6, 0x20, 0x4b, 0x4a, 0x0c, 0x5e, 0xc8, - 0x0b, 0xc4, 0xae, 0xc2, 0x11, 0x47, 0x11, 0x66, 0xf6, 0x1b, 0x5a, 0x7b, - 0x26, 0xf9, 0xe2, 0x9a, 0xc4, 0xc6, 0xd7, 0x08, 0x6c, 0x20, 0x03, 0x13, - 0x7f, 0xf0, 0x45, 0xd4, 0xfa, 0x3e, 0x92, 0x83, 0x51, 0xcb, 0x45, 0xaa, - 0x6f, 0x0b, 0xff, 0xca, 0x35, 0x28, 0x59, 0x43, 0x25, 0x25, 0x98, 0xc6, - 0x34, 0xdd, 0x65, 0x39, 0xb6, 0x23, 0x56, 0xdd, 0x35, 0xf4, 0x04, 0xa1, - 0x9f, 0xfa, 0xd5, 0x30, 0x39, 0xc7, 0x1d, 0xb9, 0x5c, 0x70, 0x6c, 0x22, - 0xd9, 0xea, 0xe5, 0xbb, 0xc0, 0xe9, 0x55, 0x37, 0x2d, 0xf1, 0x08, 0x11, - 0xff, 0x7e, 0x7f, 0x45, 0x4b, 0x9f, 0xc8, 0xbd, 0xef, 0x8c, 0xcc, 0xb8, - 0xd7, 0x95, 0xa5, 0x5d, 0x64, 0xb1, 0xe1, 0x8d, 0x45, 0x5d, 0xcf, 0x10, - 0xcb, 0x3d, 0x2d, 0x27, 0xf5, 0x56, 0xba, 0x58, 0xd4, 0x5b, 0x3a, 0xc0, - 0x56, 0xd4, 0xb6, 0x6a, 0x1d, 0xa3, 0x91, 0x9d, 0x1b, 0x5d, 0xba, 0xb0, - 0x49, 0x59, 0x51, 0x69, 0x06, 0xcf, 0x5b, 0x21, 0xa6, 0xd5, 0x13, 0xf1, - 0x00, 0x7d, 0x5d, 0x2c, 0x2f, 0x4e, 0x46, 0x7c, 0xe1, 0x76, 0x6f, 0xce, - 0x25, 0x1d, 0x51, 0xdd, 0x1d, 0xbf, 0x71, 0x28, 0x72, 0x7c, 0x01, 0x8f, - 0x46, 0x07, 0xf8, 0x70, 0xb4, 0x24, 0x11, 0xc6, 0x74, 0x53, 0x3d, 0x30, - 0xdb, 0x08, 0x6e, 0x1a, 0x9a, 0x6d, 0xf2, 0xc9, 0xff, 0xc9, 0x42, 0x5c, - 0xe5, 0xcd, 0xf0, 0x32, 0x9b, 0x96, 0x55, 0x1a, 0x58, 0xca, 0x4a, 0x0a, - 0xaa, 0xc7, 0xea, 0x4c, 0xcc, 0x53, 0x5b, 0x46, 0x3a, 0xfe, 0x68, 0xd6, - 0x6b, 0x48, 0xbf, 0x43, 0xb5, 0xe3, 0x45, 0xd3, 0x8f, 0x69, 0xbd, 0xfe, - 0x78, 0x88, 0x30, 0x3d, 0x73, 0x1c, 0xea, 0xdf, 0x93, 0xae, 0x8d, 0x90, - 0x06, 0x17, 0xc0, 0x34, 0x2e, 0x14, 0x9e, 0xab, 0x4d, 0x30, 0x71, 0x4f, - 0xba, 0xb0, 0xbd, 0x6e, 0xf6, 0x92, 0x91, 0xc2, 0xae, 0x4a, 0x73, 0x9d, - 0x5e, 0xcf, 0xa3, 0x7e, 0x08, 0xf5, 0xb1, 0xf5, 0xb1, 0x9b, 0x50, 0xd3, - 0xf8, 0x3a, 0x59, 0x16, 0x5e, 0xeb, 0x86, 0x12, 0x26, 0x86, 0x51, 0x50, - 0x54, 0x38, 0x1b, 0x3f, 0x22, 0xdb, 0xa3, 0x72, 0xb6, 0x33, 0x16, 0xaa, - 0xf1, 0x4b, 0x59, 0x5e, 0x0d, 0xd5, 0x86, 0xbc, 0x12, 0x85, 0xcb, 0xa5, - 0x82, 0xd9, 0x9a, 0x0c, 0xd4, 0xb1, 0xd1, 0x61, 0x89, 0x3a, 0xd7, 0x78, - 0x7b, 0xa9, 0x70, 0x5c, 0x07, 0xb4, 0xbc, 0xc4, 0xea, 0x5e, 0xd7, 0x46, - 0xa2, 0x31, 0x9d, 0x7c, 0x11, 0x04, 0xfd, 0xdc, 0xe7, 0xf3, 0xe5, 0x1c, - 0xdb, 0x40, 0x94, 0x27, 0x8f, 0x31, 0x9b, 0xa2, 0x0b, 0x1a, 0x11, 0x31, - 0x32, 0x73, 0xc7, 0x03, 0xac, 0x2f, 0xa4, 0x7b, 0xc9, 0xf0, 0x7c, 0xf8, - 0x5b, 0x23, 0x4e, 0x0d, 0xad, 0x94, 0x26, 0x81, 0x56, 0x73, 0x0a, 0x91, - 0x68, 0xf3, 0x93, 0x64, 0x71, 0x9d, 0xd6, 0x59, 0x1f, 0x81, 0x67, 0xb1, - 0xa9, 0x9a, 0x6f, 0xf5, 0xe9, 0x2c, 0xd0, 0x8c, 0x4a, 0xc8, 0xc3, 0xf0, - 0xa3, 0x9a, 0xa5, 0xa5, 0x94, 0x21, 0x98, 0x20, 0x3f, 0x1b, 0x3e, 0xdb, - 0x1d, 0x6e, 0xf7, 0x03, 0x9b, 0x83, 0x53, 0x15, 0x35, 0x50, 0xdc, 0xf0, - 0x95, 0x49, 0x3e, 0xb7, 0xd1, 0x77, 0x2a, 0xcb, 0x64, 0x24, 0xdb, 0x2d, - 0x85, 0x3e, 0x71, 0x57, 0xe4, 0xb3, 0x30, 0x9c, 0x84, 0x04, 0x33, 0x66, - 0x91, 0xa6, 0xb5, 0x65, 0x95, 0x4e, 0x1e, 0x38, 0xa8, 0xd4, 0xb7, 0x49, - 0x68, 0x03, 0x66, 0x5c, 0x78, 0x1a, 0x07, 0x9c, 0x3a, 0x1d, 0x04, 0xe2, - 0xe7, 0x4c, 0x7c, 0xc1, 0x60, 0xb2, 0xa3, 0x2c, 0x63, 0x2d, 0x19, 0x02, - 0xe4, 0x9c, 0x64, 0x90, 0x79, 0x7a, 0x8f, 0x0d, 0x7d, 0x54, 0x84, 0xfc, - 0x8d, 0x8e, 0x1a, 0x44, 0x4e, 0xa3, 0xcb, 0x55, 0x5d, 0x6a, 0x86, 0x23, - 0xcd, 0x1a, 0xbd, 0x41, 0x14, 0x7f, 0x33, 0x47, 0xa2, 0x63, 0x66, 0xd2, - 0x48, 0xb8, 0xbe, 0x47, 0xae, 0xdc, 0x66, 0xc4, 0x0e, 0x64, 0xb6, 0xd6, - 0x9c, 0x26, 0x0a, 0x60, 0x20, 0xc3, 0x14, 0xc5, 0x9f, 0x11, 0x33, 0x29, - 0xcd, 0xdf, 0xd7, 0xb9, 0x19, 0x79, 0x35, 0xb9, 0xc6, 0xba, 0x92, 0xc1, - 0x17, 0x3e, 0xb1, 0xc7, 0x54, 0x7e, 0xf4, 0x51, 0x8b, 0xed, 0x34, 0xa7, - 0xab, 0x88, 0xb4, 0xd6, 0xb2, 0x50, 0x19, 0xa4, 0x33, 0x3a, 0x92, 0xe7, - 0x89, 0x2d, 0x64, 0x33, 0xa2, 0x9e, 0xe3, 0x98, 0xd1, 0x6b, 0x50, 0x7a, - 0x2a, 0x0d, 0xae, 0x7e, 0x43, 0x71, 0xa6, 0x69, 0x92, 0xa6, 0xd9, 0x60, - 0xc8, 0x1d, 0x91, 0xd9, 0x9b, 0xfb, 0x42, 0x20, 0x19, 0xa9, 0x82, 0x5d, - 0xf5, 0x50, 0x3c, 0x7d, 0xf2, 0xbe, 0xae, 0xbd, 0x3a, 0xfb, 0x02, 0xf5, - 0xa6, 0xd4, 0xf9, 0xa8, 0x22, 0xa8, 0x0b, 0xc3, 0x97, 0xb5, 0xd5, 0xd7, - 0x48, 0x78, 0x32, 0x83, 0xe1, 0x14, 0x48, 0xba, 0x26, 0x06, 0x83, 0xcb, - 0x26, 0x30, 0x2b, 0x7b, 0x5b, 0xda, 0xde, 0xe9, 0xd9, 0x25, 0xec, 0x38, - 0x9b, 0x24, 0xc0, 0x1a, 0x4a, 0x69, 0x92, 0x93, 0xb7, 0x74, 0x80, 0x0f, - 0xce, 0xcd, 0xbf, 0xb9, 0x7a, 0x4a, 0xc9, 0x1a, 0x8a, 0x7c, 0x46, 0x32, - 0x93, 0xbc, 0xfb, 0x6e, 0x94, 0x6c, 0x9c, 0x8e, 0xb6, 0x9e, 0xbd, 0xda, - 0xde, 0xec, 0xb6, 0x45, 0x4b, 0x05, 0xf5, 0x3d, 0xaa, 0xb9, 0x8f, 0xb6, - 0x28, 0x0d, 0x74, 0x93, 0x52, 0x75, 0x6f, 0xc9, 0x30, 0xd1, 0x32, 0x6b, - 0x9d, 0x1d, 0xbd, 0x53, 0xfb, 0x23, 0xbb, 0xf7, 0x8d, 0x4c, 0x6d, 0xc6, - 0x43, 0xde, 0x93, 0x90, 0x70, 0xce, 0xb3, 0x5b, 0xb5, 0x62, 0x26, 0x27, - 0x10, 0x15, 0xc0, 0xb3, 0xc8, 0x50, 0xaa, 0x82, 0xc7, 0x22, 0x23, 0x71, - 0xd2, 0xb5, 0x20, 0x6c, 0x8d, 0x2e, 0xf0, 0x40, 0xe0, 0x1b, 0x83, 0x25, - 0xd5, 0x66, 0x4c, 0x15, 0x2e, 0x0d, 0x0a, 0xec, 0x9f, 0xfe, 0x7e, 0x27, - 0x2c, 0x12, 0xfc, 0xb2, 0xf3, 0x6a, 0xf8, 0x99, 0xcd, 0x82, 0x1b, 0x4c, - 0xfb, 0x1a, 0x93, 0xfc, 0xfa, 0x11, 0x97, 0xc3, 0x28, 0x63, 0x66, 0xed, - 0x33, 0x1c, 0xbc, 0x04, 0x6f, 0x00, 0x62, 0xf3, 0xd5, 0x51, 0xe6, 0xbc, - 0xd7, 0x11, 0x43, 0xa3, 0x66, 0xf8, 0x5a, 0xdf, 0x28, 0x47, 0x94, 0x42, - 0xcf, 0x95, 0x45, 0x4b, 0xc6, 0x55, 0x79, 0x47, 0xa1, 0x88, 0x08, 0x92, - 0x07, 0xf5, 0xa5, 0x1c, 0x9b, 0x78, 0x1d, 0x58, 0x55, 0xcd, 0x9e, 0xce, - 0xac, 0xa7, 0xfd, 0x9b, 0x8b, 0x77, 0x27, 0x1c, 0x21, 0x4e, 0xd7, 0xde, - 0x42, 0x7c, 0xf8, 0x18, 0xf3, 0x72, 0x6c, 0xee, 0x03, 0xe2, 0xb8, 0x8d, - 0x35, 0x8d, 0xc5, 0x18, 0x2d, 0xec, 0x78, 0x56, 0x98, 0x5f, 0xc4, 0xdc, - 0x2c, 0x72, 0xf1, 0x38, 0xfb, 0x05, 0xe9, 0x6b, 0xe6, 0x34, 0x0e, 0xc8, - 0x50, 0xd8, 0xb5, 0xf9, 0x2c, 0x16, 0x33, 0xb1, 0x63, 0x6d, 0xdd, 0x0f, - 0x8c, 0x40, 0x38, 0xa0, 0xd1, 0x0d, 0x4c, 0xf3, 0xec, 0x29, 0x26, 0x16, - 0x73, 0x60, 0xae, 0x78, 0xa6, 0x93, 0x64, 0xf0, 0x96, 0xb6, 0x82, 0x1e, - 0x09, 0xb6, 0xcf, 0xdb, 0x25, 0x51, 0xce, 0xb0, 0x6c, 0x69, 0xad, 0x01, - 0xe5, 0x6c, 0x34, 0x15, 0x3f, 0xf4, 0x02, 0x71, 0xbe, 0x1c, 0x67, 0xbe, - 0x30, 0xba, 0x40, 0x60, 0x3d, 0x22, 0x73, 0x7d, 0xf5, 0xc0, 0x91, 0xcf, - 0x62, 0x4d, 0x57, 0xb7, 0xa2, 0xb5, 0x24, 0x70, 0xb3, 0xfc, 0xa4, 0x33, - 0xdf, 0x97, 0x24, 0x03, 0x0e, 0x02, 0x6b, 0x2a, 0xfc, 0xde, 0xf4, 0x1a, - 0x07, 0xf5, 0x53, 0x22, 0x28, 0xef, 0x04, 0x3b, 0xd3, 0x91, 0xd7, 0x96, - 0x3e, 0xa0, 0x71, 0x69, 0xd8, 0x2e, 0x42, 0x8c, 0xf4, 0x5d, 0x2a, 0x41, - 0xed, 0x02, 0xc8, 0xf5, 0x0c, 0xe0, 0x0e, 0x86, 0x18, 0x8c, 0x08, 0x72, - 0xc9, 0x65, 0x64, 0x32, 0x32, 0x02, 0x53, 0x78, 0xdb, 0xa9, 0xc9, 0xa6, - 0x2f, 0x14, 0x27, 0x0b, 0x93, 0xd3, 0x65, 0xd0, 0xb2, 0xe9, 0xf3, 0xf9, - 0x99, 0x67, 0xd5, 0x15, 0xb4, 0xcc, 0xab, 0xac, 0x09, 0x95, 0x05, 0xe1, - 0x17, 0x12, 0x16, 0x0c, 0xe5, 0xf6, 0x5f, 0x06, 0xec, 0x80, 0xc2, 0x85, - 0xb1, 0xa4, 0xf8, 0x5c, 0xa6, 0x8e, 0x64, 0x9d, 0x32, 0x13, 0xc4, 0x99, - 0x57, 0x98, 0x85, 0xa0, 0x7d, 0x0c, 0x95, 0xe5, 0xd9, 0xec, 0xcd, 0xcc, - 0x28, 0xee, 0x0f, 0xeb, 0x89, 0xa4, 0xd6, 0x48, 0x00, 0x7c, 0x23, 0x8a, - 0x3d, 0x36, 0x73, 0x72, 0xbd, 0x2c, 0x6e, 0x54, 0xf1, 0x9e, 0x95, 0x25, - 0x85, 0x17, 0x50, 0x30, 0x7e, 0xa7, 0xb9, 0x75, 0xaf, 0xb7, 0x7f, 0xf1, - 0xdb, 0x8e, 0xad, 0x32, 0x76, 0x1f, 0x59, 0x1d, 0x96, 0xc8, 0xed, 0xcd, - 0xc5, 0x39, 0x91, 0xc9, 0x97, 0x7d, 0x75, 0x75, 0x37, 0x2d, 0xa7, 0x56, - 0x10, 0x10, 0xc5, 0x66, 0x3e, 0xdc, 0x5c, 0xd6, 0x7f, 0x66, 0x5b, 0x65, - 0x47, 0x99, 0x61, 0xe7, 0x03, 0x75, 0xf2, 0xb6, 0x4c, 0xa7, 0xf4, 0x70, - 0xe4, 0x3a, 0x74, 0xf0, 0x00, 0x70, 0xa6, 0x0e, 0x93, 0x77, 0x7e, 0xd2, - 0x5c, 0x3b, 0x1a, 0xc2, 0xee, 0xe2, 0x30, 0x39, 0x33, 0xeb, 0x35, 0x08, - 0x9c, 0x2f, 0x57, 0xba, 0xed, 0x68, 0x90, 0xd6, 0xd5, 0x8d, 0x78, 0x9a, - 0xac, 0x5f, 0x96, 0xe5, 0x38, 0xad, 0xd6, 0x65, 0x03, 0xe0, 0xb8, 0x1f, - 0x8b, 0xf2, 0x45, 0x4b, 0x12, 0x38, 0xbd, 0xd1, 0xd6, 0x97, 0xfc, 0xd6, - 0x90, 0x25, 0x15, 0xef, 0x78, 0x96, 0xb3, 0xa9, 0x5d, 0x84, 0x6e, 0x87, - 0x91, 0x4d, 0xa3, 0x4d, 0x35, 0xe2, 0x4b, 0x5a, 0x55, 0x79, 0x7a, 0x45, - 0x8b, 0xdd, 0x2c, 0xab, 0x82, 0x33, 0xcc, 0x8a, 0xec, 0x8e, 0x9d, 0x8d, - 0xce, 0x57, 0x54, 0xc1, 0xba, 0xd2, 0xd6, 0xec, 0x03, 0x37, 0x4d, 0xfc, - 0x62, 0xfc, 0x1e, 0x36, 0x6a, 0x49, 0xf1, 0xe2, 0x94, 0x53, 0xcf, 0xf1, - 0xd3, 0x66, 0xee, 0x70, 0x43, 0xc5, 0xed, 0xa0, 0x9e, 0x9a, 0xc1, 0x6e, - 0x42, 0x9b, 0xb7, 0x69, 0x96, 0xc1, 0xcb, 0xff, 0x14, 0x0f, 0x16, 0xb5, - 0x2b, 0xdd, 0x44, 0x26, 0xce, 0x8c, 0x9b, 0x8c, 0x32, 0x39, 0x0c, 0xd0, - 0xb8, 0x66, 0x4a, 0x6a, 0x66, 0x28, 0x0e, 0x65, 0x2f, 0xe3, 0xd1, 0x0e, - 0x97, 0x1d, 0x5b, 0x21, 0xd1, 0x14, 0x4c, 0x9d, 0xbc, 0xf2, 0xb9, 0x64, - 0x24, 0x42, 0xd3, 0xb0, 0x58, 0x14, 0x85, 0xbd, 0xcd, 0xad, 0xef, 0x47, - 0x2c, 0xa7, 0xc1, 0x2e, 0xb7, 0xec, 0xa8, 0x7f, 0x80, 0x35, 0x62, 0x95, - 0xbf, 0x8d, 0xd6, 0x82, 0x33, 0x40, 0xe8, 0x02, 0xc3, 0xe1, 0xe9, 0x32, - 0x0e, 0xb6, 0xe4, 0xb6, 0xbc, 0x7a, 0xc1, 0x02, 0x77, 0x64, 0x5e, 0x71, - 0x65, 0x65, 0xbe, 0xd5, 0xca, 0xaa, 0x99, 0x4c, 0x18, 0x69, 0xe5, 0xcb, - 0x13, 0x81, 0xac, 0x41, 0xd3, 0xeb, 0xc9, 0xaa, 0xf5, 0xc4, 0xe3, 0xb3, - 0xe4, 0xb7, 0x48, 0xd3, 0xc4, 0x21, 0xad, 0x7e, 0xd7, 0x88, 0x20, 0x77, - 0x3b, 0xc5, 0x05, 0x0c, 0x52, 0x3f, 0xdc, 0xf5, 0x16, 0xbc, 0x29, 0x17, - 0xd0, 0x63, 0xb2, 0xc9, 0x85, 0x18, 0x74, 0x1b, 0xf1, 0xc0, 0xc1, 0x6e, - 0x39, 0x83, 0x24, 0xdf, 0xf1, 0xd8, 0x52, 0xc0, 0x80, 0x44, 0xde, 0x98, - 0x13, 0x10, 0xc8, 0xad, 0xe4, 0x9c, 0xa7, 0x20, 0x2c, 0x43, 0x96, 0x75, - 0x99, 0xb5, 0xa2, 0x3a, 0xbd, 0xa8, 0x03, 0xa4, 0x6c, 0x48, 0x36, 0xdc, - 0x27, 0x31, 0x4e, 0xe7, 0xaf, 0x8e, 0x71, 0x4d, 0xe2, 0x40, 0xe6, 0xe6, - 0x38, 0x14, 0xe6, 0xb1, 0x80, 0x4d, 0x44, 0xb2, 0xed, 0x39, 0xe1, 0x30, - 0xd1, 0x5c, 0xfb, 0xe0, 0xbe, 0x8f, 0xc4, 0xf9, 0x51, 0x76, 0xc8, 0x3d, - 0x72, 0x85, 0xe4, 0xb2, 0xb0, 0x2c, 0x84, 0xb3, 0x70, 0xbb, 0x4c, 0x86, - 0xe3, 0x82, 0x41, 0x5b, 0xd3, 0x48, 0x98, 0xd5, 0x04, 0x92, 0x7a, 0x6d, - 0x53, 0xaf, 0x0a, 0x90, 0x38, 0x31, 0xc6, 0x5f, 0x49, 0x33, 0x7c, 0x8e, - 0x4b, 0x0e, 0xa0, 0xb0, 0x09, 0x34, 0x11, 0x0d, 0x9f, 0xa3, 0xb0, 0xd8, - 0xbb, 0x82, 0x18, 0x49, 0x5e, 0xe8, 0xb4, 0x16, 0xf8, 0x8c, 0x31, 0xaf, - 0xd2, 0x23, 0xa4, 0x63, 0x45, 0x8c, 0x5f, 0x42, 0x3d, 0x7d, 0xbb, 0xea, - 0xc2, 0x12, 0xd9, 0x0f, 0x23, 0xdc, 0x5d, 0x65, 0x91, 0xc8, 0xa5, 0xc0, - 0x16, 0x73, 0x5a, 0x79, 0x44, 0x9d, 0x5e, 0xa7, 0xea, 0x69, 0xc8, 0x2a, - 0x92, 0x84, 0x6a, 0x08, 0x4e, 0x6a, 0x6a, 0x69, 0x67, 0x84, 0xec, 0x7c, - 0x4e, 0xd1, 0xe8, 0x81, 0x4e, 0x66, 0x08, 0xe6, 0xe0, 0xeb, 0x63, 0x18, - 0xa3, 0x66, 0xb9, 0x61, 0xa9, 0x4c, 0x52, 0x3c, 0x17, 0x06, 0xf7, 0xb0, - 0x94, 0x75, 0x45, 0xbc, 0x4e, 0xc2, 0xa5, 0xdb, 0x19, 0x6b, 0xd6, 0x85, - 0x46, 0x4b, 0x6d, 0xf3, 0x1c, 0x6c, 0xc2, 0x22, 0x36, 0x39, 0x55, 0x21, - 0xd6, 0xc6, 0x90, 0xa5, 0xce, 0xfe, 0x1a, 0x5d, 0x3b, 0xf4, 0x2e, 0xf9, - 0x83, 0x24, 0x26, 0xb3, 0x55, 0x1e, 0x1c, 0x36, 0xb0, 0x7e, 0xb9, 0x5d, - 0x66, 0xb0, 0x94, 0xac, 0xde, 0x5b, 0x0b, 0x3c, 0x72, 0xe8, 0x3e, 0x8e, - 0x61, 0x74, 0x61, 0x03, 0x67, 0xe7, 0x36, 0x71, 0xcc, 0xae, 0x65, 0xe6, - 0xcb, 0xe0, 0x2c, 0xf7, 0x93, 0xd4, 0x1e, 0xf3, 0xba, 0x59, 0x63, 0xae, - 0x39, 0x6d, 0xff, 0x4e, 0x66, 0x63, 0xa8, 0x62, 0x86, 0xa8, 0x49, 0xd9, - 0x84, 0xf9, 0x43, 0x7c, 0x25, 0xda, 0x9a, 0x86, 0xcd, 0xd2, 0xdf, 0x69, - 0x10, 0xf5, 0x62, 0x0f, 0xc9, 0x43, 0xf2, 0x86, 0x64, 0x9b, 0x2f, 0x25, - 0x0c, 0x89, 0xec, 0x78, 0xa2, 0xff, 0xb1, 0x83, 0x84, 0xaf, 0x25, 0x0e, - 0xca, 0x61, 0x8d, 0x07, 0xcb, 0x10, 0x6f, 0x0e, 0x01, 0x41, 0xfe, 0xea, - 0x31, 0xf9, 0x4d, 0x60, 0xcf, 0x01, 0x60, 0x4e, 0x10, 0x81, 0xf1, 0xe6, - 0xe9, 0xd5, 0xfb, 0xa5, 0xcb, 0xf7, 0xf8, 0xea, 0x5d, 0x5c, 0x73, 0x2e, - 0x41, 0x86, 0x70, 0xb7, 0x37, 0x5e, 0xf8, 0x15, 0xf9, 0x4f, 0x38, 0x00, - 0xd8, 0xc5, 0xb3, 0xb4, 0x8f, 0xa6, 0xe7, 0x05, 0x7b, 0xf3, 0x5b, 0xed, - 0x3a, 0x88, 0x11, 0x52, 0x3e, 0x0d, 0x3e, 0xde, 0x1c, 0xf3, 0x42, 0x4e, - 0x34, 0x2a, 0x9b, 0xcc, 0x6d, 0x36, 0xa3, 0x61, 0x50, 0x0b, 0x94, 0x25, - 0x73, 0xbf, 0x10, 0xe3, 0x1f, 0x4e, 0x5f, 0x44, 0xd5, 0x69, 0x69, 0x3c, - 0x53, 0xb5, 0xbe, 0x04, 0xf3, 0xfb, 0x52, 0x39, 0xfb, 0x53, 0x93, 0x6b, - 0x05, 0x6b, 0x21, 0x4e, 0xb0, 0x25, 0xa7, 0x82, 0x5e, 0xc4, 0xf9, 0x13, - 0x71, 0x26, 0x2a, 0x27, 0x73, 0x41, 0xd7, 0xa0, 0x47, 0xcb, 0xf3, 0x37, - 0xfb, 0xed, 0x35, 0xa3, 0xac, 0x60, 0x30, 0x51, 0xd9, 0xe8, 0x78, 0x73, - 0x39, 0x5d, 0xe8, 0xba, 0x7d, 0xa4, 0xda, 0x47, 0xb7, 0xef, 0xff, 0xb0, - 0x29, 0x72, 0xb4, 0x02, 0x2b, 0x30, 0x0c, 0x9c, 0x74, 0x45, 0x71, 0x2a, - 0x1c, 0xac, 0xfb, 0x77, 0x32, 0xd0, 0x26, 0x84, 0xdd, 0xb5, 0x82, 0x09, - 0xe0, 0x82, 0x22, 0x9f, 0x27, 0xb9, 0xf3, 0x66, 0x50, 0x0b, 0x4d, 0xe3, - 0xa0, 0x72, 0xa7, 0xed, 0x0f, 0x10, 0x78, 0x28, 0x54, 0x3b, 0x04, 0x1d, - 0x3e, 0x42, 0xac, 0x96, 0x38, 0xe3, 0x74, 0xb9, 0x92, 0x02, 0xcd, 0x4d, - 0x95, 0xcd, 0xb2, 0x2b, 0x16, 0x71, 0x4f, 0x8e, 0xbe, 0x3b, 0x3a, 0x09, - 0x04, 0xae, 0x86, 0x3f, 0xb7, 0xde, 0x4b, 0xcf, 0xae, 0xa1, 0xe8, 0x26, - 0x79, 0xcd, 0x06, 0x79, 0xee, 0x53, 0x5a, 0x8c, 0x06, 0xbe, 0xe6, 0xc4, - 0x20, 0x25, 0x7d, 0x02, 0x56, 0x9a, 0x89, 0x91, 0x43, 0x19, 0x23, 0xa8, - 0x86, 0x2d, 0x4f, 0x64, 0xaf, 0xaf, 0x47, 0xa3, 0xad, 0x9b, 0xac, 0x1a, - 0x13, 0x06, 0x53, 0x48, 0x50, 0x88, 0xc7, 0x4f, 0x0e, 0x11, 0x41, 0xc0, - 0x9e, 0x00, 0xda, 0x65, 0x37, 0x93, 0xe0, 0x8d, 0x45, 0x39, 0xcb, 0x27, - 0x0f, 0xc9, 0xa1, 0x8c, 0x8c, 0x93, 0x41, 0xb0, 0xeb, 0x70, 0x00, 0x88, - 0xbd, 0xf4, 0xf4, 0xdb, 0xc1, 0xfe, 0x68, 0x70, 0x78, 0x74, 0x72, 0xf4, - 0xf5, 0xfe, 0xc5, 0x11, 0x27, 0x34, 0x20, 0x0c, 0x73, 0x05, 0xd7, 0x11, - 0x8a, 0xf8, 0x56, 0xc6, 0x89, 0x55, 0xa1, 0x20, 0xe2, 0x26, 0x9f, 0xdc, - 0x64, 0x8d, 0x06, 0x7b, 0x2a, 0xa2, 0x1d, 0x71, 0xeb, 0x86, 0x5d, 0xe3, - 0xf1, 0xe6, 0xcc, 0xd6, 0xcc, 0xe6, 0x32, 0xd4, 0x60, 0x06, 0xe9, 0xec, - 0x8e, 0xd0, 0x40, 0x3e, 0x14, 0xa4, 0x9e, 0x48, 0x6a, 0x3e, 0x49, 0xad, - 0x98, 0xbd, 0xb7, 0x25, 0xde, 0xfa, 0xb7, 0x76, 0x19, 0xd1, 0x4f, 0x2b, - 0x82, 0x96, 0x38, 0x44, 0x4e, 0xb2, 0xeb, 0x0e, 0xf1, 0xe4, 0xca, 0x00, - 0x31, 0x52, 0xa3, 0xe5, 0xab, 0x40, 0x22, 0x66, 0x2a, 0xaa, 0x27, 0xd7, - 0xd9, 0x5c, 0x0e, 0x17, 0xc5, 0x19, 0x98, 0x47, 0x05, 0x29, 0xc4, 0x1c, - 0xb0, 0x3b, 0x8a, 0x5f, 0xe1, 0xa3, 0xcc, 0xea, 0x06, 0x47, 0xc0, 0x21, - 0x24, 0x2c, 0x16, 0xd9, 0x79, 0x97, 0x23, 0x41, 0x9b, 0x43, 0x41, 0x10, - 0x15, 0x07, 0x2a, 0xd1, 0xd8, 0xd2, 0x78, 0x34, 0x29, 0x83, 0xbd, 0x74, - 0x15, 0xb4, 0xa5, 0xa6, 0x93, 0xd8, 0x5c, 0x9f, 0x52, 0x22, 0xce, 0x18, - 0x4f, 0x8f, 0x4f, 0xb3, 0xbd, 0x19, 0x68, 0xa4, 0x8c, 0xf5, 0xc6, 0x11, - 0xb5, 0x61, 0x28, 0x3b, 0x22, 0xcb, 0xbc, 0x90, 0x76, 0x46, 0x2b, 0xb0, - 0x41, 0xeb, 0x64, 0x91, 0x56, 0xf4, 0x38, 0x4d, 0xe8, 0x8e, 0x69, 0x08, - 0x4d, 0x57, 0x4d, 0x16, 0x8d, 0xae, 0x23, 0x0a, 0x83, 0x50, 0x39, 0x90, - 0xa9, 0x12, 0x25, 0x2a, 0x9a, 0x9b, 0xda, 0xde, 0x75, 0xe4, 0x7b, 0x0e, - 0xb2, 0x45, 0xd5, 0x44, 0x42, 0x24, 0x39, 0xc7, 0xc2, 0x5a, 0x56, 0xa6, - 0x5e, 0x76, 0xa8, 0x97, 0xc4, 0x7f, 0x74, 0x76, 0xce, 0x30, 0x85, 0x27, - 0xf4, 0x8b, 0x84, 0x41, 0x74, 0x7b, 0x86, 0x36, 0x2f, 0x49, 0x10, 0x70, - 0xb8, 0x42, 0x09, 0xb5, 0x50, 0x45, 0x1a, 0xb4, 0xc6, 0x61, 0x13, 0x02, - 0xc5, 0x23, 0x24, 0x8d, 0xf9, 0x04, 0x71, 0x78, 0x16, 0x13, 0x89, 0x46, - 0x42, 0x43, 0xe8, 0xb3, 0x68, 0x84, 0x41, 0x70, 0xe8, 0x87, 0x9a, 0xe7, - 0x4f, 0xe9, 0xcb, 0xf1, 0xb2, 0xb1, 0xf9, 0x2d, 0x2b, 0x5c, 0x9d, 0x7d, - 0x4e, 0x05, 0xe3, 0x6b, 0x86, 0x9a, 0xa5, 0x37, 0x93, 0x0a, 0x08, 0x5a, - 0xa9, 0x19, 0xca, 0xb0, 0x33, 0x55, 0x80, 0x47, 0x50, 0x72, 0x6c, 0x3c, - 0xbf, 0x4c, 0x25, 0x7e, 0xd3, 0x00, 0xe0, 0x78, 0x68, 0xc2, 0x6a, 0x29, - 0x61, 0xef, 0x2c, 0x03, 0x8b, 0x90, 0x98, 0xc3, 0xf8, 0x8d, 0x8c, 0x7a, - 0x14, 0xd8, 0x91, 0x25, 0x1b, 0xca, 0xfa, 0xf8, 0x1e, 0x24, 0xff, 0x96, - 0x6d, 0x97, 0x97, 0xe2, 0xc5, 0x4a, 0x67, 0x79, 0xf3, 0xc0, 0x9a, 0x1e, - 0x5b, 0x0c, 0xd8, 0x46, 0x70, 0x9d, 0xc6, 0x52, 0x15, 0xcc, 0xc2, 0x5b, - 0xfc, 0x0e, 0xcc, 0x52, 0xb6, 0x2d, 0x34, 0x15, 0x83, 0x36, 0x7c, 0x70, - 0x0f, 0x80, 0x78, 0xdc, 0x93, 0x29, 0x3a, 0x27, 0xb5, 0x58, 0x86, 0xc2, - 0x2b, 0x43, 0x58, 0x19, 0x42, 0xe5, 0x45, 0x19, 0xa3, 0x2a, 0x61, 0x10, - 0x46, 0x01, 0x61, 0x08, 0x80, 0x36, 0x09, 0x06, 0xbd, 0x73, 0x3e, 0x32, - 0xd8, 0x00, 0x3a, 0x00, 0x8d, 0x4f, 0xae, 0x05, 0xdb, 0x8d, 0xbd, 0x9d, - 0x44, 0x4b, 0xe3, 0xec, 0x3a, 0xbd, 0xcd, 0x09, 0x30, 0xc5, 0x47, 0xff, - 0x09, 0x9c, 0x25, 0xb5, 0x21, 0x00, 0xc3, 0x6f, 0xc5, 0x18, 0x4f, 0x2f, - 0x22, 0x82, 0xd6, 0x43, 0xfd, 0xe1, 0xcd, 0x40, 0x64, 0xea, 0xe0, 0x0c, - 0x61, 0xa1, 0xe4, 0x91, 0xe2, 0xcc, 0xf5, 0x20, 0x16, 0x1c, 0x41, 0xbf, - 0x16, 0xb9, 0x43, 0x1e, 0x4d, 0xeb, 0xdb, 0xf8, 0x09, 0xab, 0x6f, 0xa3, - 0x27, 0x8c, 0x8f, 0x98, 0x97, 0x93, 0x3f, 0xf5, 0xb3, 0xdb, 0x5b, 0xc7, - 0x6c, 0xf4, 0x9d, 0x0d, 0x32, 0x8a, 0xdc, 0x9c, 0x7c, 0xb8, 0x74, 0x62, - 0xb1, 0xd3, 0x25, 0x94, 0x6d, 0xcf, 0x97, 0x1e, 0xb0, 0x47, 0x4f, 0x18, - 0xc6, 0xc4, 0x67, 0xcc, 0xf4, 0x2f, 0x07, 0xeb, 0x6c, 0x7f, 0xf4, 0x9d, - 0x77, 0xa4, 0x3c, 0x45, 0xdd, 0xe6, 0x03, 0x06, 0x57, 0x72, 0x03, 0x17, - 0x1f, 0x1f, 0x49, 0x6a, 0x2b, 0x4a, 0x6a, 0xf5, 0xed, 0xa7, 0x90, 0x9a, - 0x19, 0x48, 0x40, 0x6a, 0xc1, 0xf2, 0x3e, 0x46, 0x6a, 0xfe, 0x1e, 0x05, - 0xa4, 0x86, 0xf6, 0x03, 0x4a, 0xd3, 0x85, 0xfd, 0xc5, 0xa4, 0x26, 0x24, - 0x1a, 0x50, 0x1a, 0xbc, 0x17, 0x67, 0x7d, 0x8f, 0xc4, 0x5a, 0x74, 0x53, - 0xd4, 0x03, 0xc0, 0x41, 0x5c, 0x12, 0x72, 0xcf, 0x6b, 0xfb, 0xeb, 0x17, - 0x11, 0x90, 0x11, 0xcb, 0xa0, 0x91, 0xbb, 0x58, 0x2e, 0x9b, 0x2b, 0x90, - 0x42, 0x72, 0xf8, 0x7e, 0xe4, 0xc1, 0x3a, 0x98, 0x59, 0x54, 0x80, 0x1f, - 0xf2, 0x5b, 0x1b, 0x3e, 0x65, 0x92, 0x25, 0xb9, 0x44, 0xb0, 0x15, 0x59, - 0x8e, 0x25, 0xcf, 0x92, 0x37, 0x32, 0xc9, 0xa1, 0x55, 0x04, 0xaa, 0x20, - 0x4c, 0xf9, 0x92, 0x50, 0xb0, 0xcc, 0x40, 0x36, 0x59, 0x24, 0xa6, 0x30, - 0x91, 0x19, 0x19, 0xd0, 0x24, 0x43, 0xd1, 0xe6, 0x4a, 0x15, 0x89, 0x6b, - 0x93, 0x2f, 0xda, 0x8d, 0x48, 0x73, 0x36, 0xcd, 0x77, 0xf3, 0x09, 0x63, - 0xb2, 0x85, 0xa8, 0x50, 0x1f, 0x87, 0x8f, 0x44, 0xe0, 0x03, 0x11, 0x68, - 0xd2, 0x6e, 0x15, 0x89, 0xf4, 0x44, 0x26, 0x68, 0x0b, 0x5e, 0x40, 0x08, - 0xdd, 0x46, 0x5a, 0x03, 0x90, 0x77, 0x90, 0x52, 0x47, 0x36, 0xd5, 0xbd, - 0x8e, 0x99, 0x9f, 0x40, 0x4e, 0x08, 0x3a, 0x27, 0x5b, 0xd7, 0xa3, 0x90, - 0x17, 0xd8, 0xf9, 0xc5, 0xed, 0xf3, 0x01, 0x4d, 0xd5, 0xec, 0xd5, 0x62, - 0x20, 0x73, 0x7e, 0x74, 0xeb, 0xc7, 0x39, 0xa7, 0xad, 0xfa, 0xcf, 0xf3, - 0xa5, 0x6b, 0xf4, 0x25, 0x5a, 0x69, 0x24, 0x5e, 0x13, 0x45, 0x58, 0xe0, - 0x97, 0x2e, 0xc5, 0x7a, 0x36, 0x0b, 0xff, 0x39, 0xbd, 0xc0, 0x8c, 0xfc, - 0x22, 0x96, 0x73, 0x3a, 0x59, 0xdc, 0x85, 0xe8, 0x39, 0x69, 0x75, 0xb5, - 0x0c, 0x1c, 0x65, 0x30, 0x00, 0x39, 0x5b, 0xa5, 0x86, 0x53, 0xfb, 0x09, - 0xe0, 0xff, 0xef, 0xde, 0xc4, 0x4f, 0xd9, 0xc5, 0x97, 0xbf, 0xfd, 0x2e, - 0xbe, 0xfc, 0x6f, 0xb2, 0x8b, 0x2f, 0xff, 0x3f, 0xb2, 0x8b, 0x9a, 0x8b, - 0xee, 0xed, 0x49, 0x7f, 0xf5, 0x76, 0x92, 0x3a, 0x2c, 0xe1, 0xdb, 0x08, - 0xee, 0xa0, 0x30, 0x67, 0xda, 0x07, 0x6d, 0x85, 0x55, 0x6e, 0xc9, 0xe2, - 0x6b, 0x41, 0xea, 0x71, 0xf6, 0x4e, 0x3c, 0xb9, 0x46, 0xd2, 0x1f, 0x34, - 0xf2, 0xf2, 0xf8, 0xcc, 0x43, 0x15, 0x70, 0xbb, 0xa3, 0xe0, 0x52, 0xa2, - 0x22, 0x47, 0xbd, 0xd7, 0x35, 0xb9, 0x34, 0x0d, 0x1f, 0xe7, 0x30, 0xec, - 0x1a, 0x12, 0x28, 0xdc, 0x9e, 0xbc, 0x5d, 0x90, 0x0b, 0xc6, 0x1a, 0x21, - 0x6c, 0x36, 0x68, 0xef, 0x35, 0x2d, 0xf7, 0x80, 0x1f, 0xff, 0x22, 0x9a, - 0x85, 0x02, 0xf8, 0x28, 0x37, 0xa4, 0x38, 0x39, 0x08, 0x35, 0xb4, 0xa1, - 0x83, 0x62, 0xf8, 0x30, 0xce, 0xee, 0xfc, 0x04, 0x39, 0xfc, 0x2a, 0x7a, - 0xf8, 0xdf, 0x22, 0x87, 0x8c, 0x2e, 0x6b, 0xe0, 0x41, 0x91, 0x4b, 0xf4, - 0xc3, 0xf9, 0xc9, 0x93, 0xd1, 0x2d, 0xbd, 0x73, 0x46, 0x8f, 0xaa, 0x92, - 0xb3, 0xf4, 0x2a, 0xeb, 0xf9, 0x48, 0x62, 0x9f, 0x80, 0x31, 0x10, 0x64, - 0xe9, 0x93, 0x32, 0xea, 0xa2, 0xc1, 0xfc, 0xa4, 0x7c, 0x98, 0x22, 0x5c, - 0x4a, 0x3e, 0xbb, 0xfe, 0x62, 0xc0, 0x44, 0x2c, 0xaa, 0xb6, 0xb3, 0x29, - 0x35, 0x6d, 0x5b, 0x1c, 0x23, 0xbd, 0xbf, 0x50, 0xdc, 0x79, 0x4f, 0x07, - 0x68, 0xa7, 0x1c, 0x46, 0xef, 0x02, 0x6c, 0xc3, 0xda, 0x53, 0xdb, 0xd1, - 0xea, 0x9a, 0x56, 0x63, 0x33, 0x09, 0x00, 0x72, 0x7c, 0xcd, 0xf0, 0x83, - 0x97, 0xe5, 0xac, 0x4b, 0x9a, 0x00, 0x30, 0x4b, 0x93, 0x13, 0x19, 0xd4, - 0x9e, 0x38, 0x67, 0x79, 0x23, 0x75, 0x48, 0x22, 0x35, 0x88, 0x88, 0xa8, - 0x51, 0xa9, 0x33, 0x42, 0x17, 0xef, 0x06, 0x91, 0x10, 0xfd, 0xda, 0x1c, - 0x70, 0xb2, 0x03, 0xd1, 0x80, 0x20, 0x66, 0xe4, 0x00, 0x9c, 0xb6, 0xd3, - 0xfa, 0x1d, 0xbd, 0x95, 0x47, 0xf0, 0xee, 0x52, 0x68, 0xda, 0x6b, 0x2f, - 0x9c, 0xeb, 0xc7, 0x3d, 0x35, 0x1f, 0xfc, 0x1c, 0x8f, 0x6c, 0x0f, 0x70, - 0xba, 0x34, 0x8a, 0xc6, 0xf9, 0x1f, 0x25, 0xd5, 0xdc, 0x6b, 0x35, 0x66, - 0xed, 0xc4, 0x72, 0x2b, 0xe6, 0x6f, 0xaa, 0x89, 0x56, 0x86, 0x00, 0xa4, - 0x7e, 0x01, 0xc5, 0xb4, 0x25, 0xf0, 0xda, 0xb0, 0x5f, 0xc0, 0xf4, 0x3e, - 0x60, 0xa0, 0x67, 0xe8, 0xa9, 0x81, 0xfd, 0x46, 0x82, 0x52, 0xc8, 0xfc, - 0xea, 0x75, 0xac, 0x32, 0x9c, 0x39, 0x32, 0x67, 0xdf, 0x1e, 0x8c, 0xfe, - 0xb8, 0xb3, 0xab, 0xd1, 0x70, 0xb9, 0x42, 0xac, 0x8d, 0x80, 0xa8, 0xd0, - 0x25, 0x6f, 0x52, 0x4f, 0xb8, 0xa2, 0x00, 0x01, 0xb1, 0xba, 0x20, 0x3a, - 0xfb, 0x1a, 0xdb, 0x66, 0x79, 0x6c, 0x92, 0x00, 0xe5, 0xe2, 0x95, 0xb3, - 0xa8, 0x0e, 0x4f, 0xc1, 0xa8, 0x6a, 0x46, 0x62, 0xcc, 0x0d, 0xbb, 0x68, - 0x2d, 0xa8, 0x12, 0x73, 0x2b, 0x56, 0x08, 0x4c, 0x30, 0x5d, 0x73, 0xcc, - 0x4f, 0x90, 0x74, 0x26, 0x08, 0xa9, 0x2d, 0x0b, 0xbf, 0x23, 0x0b, 0x41, - 0xa8, 0x66, 0x09, 0xb9, 0xe7, 0xad, 0x47, 0x2f, 0x6a, 0x78, 0xe6, 0xbb, - 0x4f, 0x6e, 0x24, 0xf2, 0x17, 0x73, 0x02, 0x56, 0x72, 0x93, 0x3d, 0x88, - 0x1f, 0x3d, 0xb3, 0x1f, 0xfa, 0x8b, 0x4b, 0x50, 0x8d, 0x14, 0xfe, 0x18, - 0x98, 0xcc, 0x0d, 0x9b, 0xff, 0x03, 0x7b, 0xbb, 0x99, 0xc2, 0x58, 0x15, - 0xa2, 0xe6, 0x48, 0x11, 0x70, 0x28, 0x27, 0x73, 0x82, 0x8a, 0xd0, 0x1a, - 0x02, 0xb3, 0x87, 0x18, 0xb5, 0x2b, 0xb4, 0x0e, 0x33, 0x60, 0x68, 0x56, - 0x75, 0xa3, 0xc1, 0xfc, 0x2d, 0xa0, 0x2e, 0xf1, 0x3e, 0x35, 0x8f, 0xe5, - 0xae, 0xd2, 0xf7, 0x4e, 0xa6, 0x21, 0x6b, 0x5b, 0x3e, 0xb9, 0x81, 0x48, - 0x2f, 0x17, 0x9d, 0x3f, 0x3d, 0x8d, 0xf5, 0xe0, 0x4a, 0x02, 0xe1, 0x2e, - 0xd0, 0x00, 0xc8, 0x00, 0x4f, 0x54, 0x49, 0x97, 0x61, 0x5e, 0x70, 0x2e, - 0x0d, 0xdc, 0xa3, 0xc5, 0x6d, 0x5e, 0x95, 0x05, 0x44, 0x94, 0xdb, 0xb4, - 0xca, 0xa1, 0x1c, 0x9a, 0xd1, 0x7e, 0x3c, 0x3c, 0x3e, 0x4f, 0x36, 0x28, - 0x8b, 0x73, 0xfc, 0xb0, 0x22, 0x57, 0x35, 0xd9, 0xca, 0x9a, 0xc9, 0xd6, - 0xe2, 0x26, 0xdf, 0x2a, 0xea, 0x7a, 0x3a, 0xde, 0x1c, 0x5a, 0xa2, 0xe2, - 0x2e, 0x89, 0x18, 0x99, 0x96, 0x77, 0x48, 0x71, 0x5b, 0x9a, 0x86, 0x37, - 0xcc, 0x1a, 0x04, 0xbb, 0x50, 0x9b, 0x85, 0x9e, 0x0f, 0xeb, 0x72, 0x13, - 0xda, 0xe6, 0x6d, 0x9a, 0xcf, 0xd4, 0x40, 0x56, 0x30, 0x41, 0x23, 0xb4, - 0x48, 0xe0, 0x63, 0xd9, 0x5d, 0x81, 0x30, 0x3d, 0x71, 0xfc, 0x07, 0x31, - 0x1d, 0x45, 0xe3, 0xa0, 0x22, 0x39, 0x9b, 0x5c, 0x63, 0x55, 0xcc, 0x6a, - 0x02, 0x55, 0xd1, 0xc6, 0x18, 0xf7, 0x09, 0x57, 0x9d, 0x56, 0x85, 0x7d, - 0x67, 0x59, 0x98, 0x49, 0xcb, 0x29, 0xc7, 0xc3, 0xad, 0x9e, 0xc5, 0x91, - 0xcf, 0x0b, 0xc6, 0xd3, 0x87, 0x5a, 0x7a, 0x5b, 0xe6, 0x70, 0xc8, 0x5f, - 0x2e, 0x6b, 0x6b, 0x1c, 0x85, 0xbb, 0x57, 0xb6, 0x6b, 0x18, 0x35, 0x45, - 0x7a, 0xdb, 0x29, 0x8e, 0xcc, 0x3a, 0xe9, 0xed, 0xf5, 0x70, 0xb6, 0x0a, - 0x40, 0x59, 0xb3, 0x84, 0x23, 0xa3, 0xc2, 0x66, 0xf5, 0x7e, 0xea, 0x25, - 0x81, 0x7d, 0xb4, 0x71, 0xae, 0x01, 0x85, 0xee, 0xb8, 0x2a, 0xf2, 0x7f, - 0x30, 0xaa, 0x82, 0x3d, 0xc2, 0xd3, 0x0c, 0xb1, 0xf7, 0x48, 0xc7, 0xb6, - 0x3b, 0x44, 0x23, 0x88, 0x22, 0x2e, 0x78, 0x43, 0xfa, 0x29, 0x1c, 0x52, - 0x86, 0xc4, 0x50, 0xb4, 0xdf, 0xfb, 0x09, 0x43, 0xf2, 0x06, 0x11, 0x31, - 0x57, 0xb4, 0x87, 0x44, 0xd9, 0x0a, 0x92, 0x59, 0x7a, 0x6d, 0xa4, 0xac, - 0x49, 0x13, 0xb9, 0x39, 0x36, 0xf2, 0xd3, 0x11, 0x0e, 0xe2, 0xbb, 0x74, - 0x92, 0x98, 0x5f, 0x7f, 0x80, 0x74, 0xb1, 0xb9, 0xfa, 0x8c, 0x09, 0x63, - 0x14, 0x5e, 0x18, 0x83, 0xfe, 0xeb, 0xbb, 0x33, 0xd7, 0x61, 0xbb, 0xde, - 0x5d, 0x98, 0xe5, 0x60, 0x91, 0xe3, 0xcc, 0xb9, 0x79, 0x28, 0x66, 0x32, - 0x08, 0x48, 0xb1, 0x2f, 0x6f, 0x29, 0xab, 0x21, 0x7e, 0xa1, 0x35, 0x17, - 0x20, 0x7f, 0x12, 0x2b, 0x86, 0xb9, 0xdb, 0x7c, 0x63, 0x26, 0x4a, 0xa8, - 0x23, 0x48, 0x88, 0x0e, 0x8f, 0xe6, 0x22, 0x85, 0x31, 0x95, 0x73, 0x65, - 0x85, 0xf1, 0x5b, 0x3f, 0x92, 0x3f, 0x50, 0x0e, 0x9f, 0xb5, 0xfd, 0xa9, - 0xe1, 0xe4, 0xbf, 0x1d, 0xf1, 0xa7, 0x1e, 0xe9, 0xff, 0x7e, 0x01, 0x4c, - 0x92, 0xc7, 0xfb, 0x3a, 0x96, 0x24, 0x3e, 0xca, 0x66, 0x00, 0x0d, 0xc7, - 0x5e, 0x6b, 0x56, 0xd6, 0xa4, 0x7a, 0x58, 0x90, 0x1d, 0x4c, 0xf2, 0x7f, - 0x79, 0x85, 0xe8, 0xda, 0xe2, 0xdc, 0x2b, 0x0f, 0x8e, 0x7e, 0x18, 0xc9, - 0x2d, 0xb4, 0x1d, 0xb2, 0x3a, 0x42, 0xdb, 0x65, 0xf6, 0x82, 0x3c, 0x2a, - 0xa9, 0xaf, 0xa2, 0x10, 0x59, 0x4e, 0x39, 0x49, 0xc3, 0x55, 0x20, 0x09, - 0xe2, 0x72, 0xa9, 0xa1, 0x7a, 0xd8, 0x86, 0xe2, 0x81, 0xc1, 0x14, 0x25, - 0x71, 0xc0, 0x72, 0xc9, 0xf5, 0xb6, 0xa9, 0x9c, 0x5e, 0xde, 0x10, 0x14, - 0x90, 0xae, 0xf2, 0x60, 0xd9, 0xa5, 0x69, 0xa6, 0x5a, 0x16, 0xe8, 0xbd, - 0xbd, 0x52, 0x96, 0xbf, 0x77, 0xcf, 0xd9, 0xf9, 0xf1, 0xe8, 0x80, 0x0e, - 0xd8, 0xe9, 0xfb, 0x93, 0xbf, 0x92, 0xbc, 0x0d, 0x08, 0x00, 0x94, 0xfc, - 0xa0, 0xae, 0x63, 0x17, 0x43, 0xad, 0x08, 0xed, 0x11, 0x4a, 0x16, 0xbc, - 0x36, 0x92, 0x75, 0xef, 0x74, 0x8b, 0x5d, 0x1a, 0x15, 0x91, 0x0b, 0x9c, - 0x68, 0x86, 0xe0, 0x72, 0x52, 0x77, 0x28, 0xe2, 0x6b, 0xa2, 0x18, 0x58, - 0xcb, 0x10, 0xb1, 0x89, 0x02, 0x40, 0x7c, 0x41, 0x9f, 0xb5, 0x24, 0xb2, - 0x1a, 0x9a, 0xee, 0xcd, 0x44, 0x3b, 0x89, 0xa0, 0x66, 0xa2, 0x57, 0xec, - 0xcc, 0x5d, 0x91, 0x7f, 0xe0, 0x65, 0x3b, 0x3e, 0x88, 0x29, 0x92, 0x82, - 0xcf, 0x34, 0x38, 0x96, 0xa9, 0xe5, 0x88, 0x00, 0x14, 0x17, 0xe6, 0x9e, - 0xf9, 0x3a, 0x25, 0x5e, 0xc0, 0xf6, 0xbf, 0x34, 0x9b, 0x07, 0x17, 0x74, - 0x5d, 0x92, 0xef, 0x51, 0xe5, 0x38, 0xfe, 0xcb, 0xf3, 0x2a, 0xc1, 0x8a, - 0xc8, 0x81, 0x7c, 0xb4, 0xa0, 0x53, 0x73, 0x02, 0x85, 0x80, 0x88, 0xe4, - 0xcc, 0x50, 0xc2, 0x58, 0x1b, 0x2d, 0x45, 0xd1, 0xcd, 0xfd, 0x19, 0xf0, - 0xfb, 0x3c, 0xb5, 0x6e, 0xea, 0x0f, 0x4b, 0x2d, 0x08, 0x73, 0x4f, 0x5e, - 0xd3, 0xcf, 0xf8, 0xb4, 0x3d, 0x8c, 0x0a, 0xf8, 0x92, 0x5b, 0xb2, 0x03, - 0xbd, 0x2b, 0xe1, 0xa7, 0x94, 0x94, 0x31, 0x6d, 0xb1, 0xb8, 0xd0, 0x1a, - 0x4c, 0x41, 0xbf, 0xe6, 0x52, 0xee, 0x27, 0x87, 0x47, 0xe7, 0x60, 0x4a, - 0x47, 0xef, 0xbf, 0x86, 0x0f, 0xc7, 0x63, 0xf4, 0xd4, 0x66, 0xcd, 0x77, - 0x0d, 0xe3, 0xe9, 0xab, 0xec, 0xd8, 0x69, 0x8e, 0x2e, 0x77, 0xba, 0xf2, - 0x21, 0x03, 0x4e, 0x7f, 0xd7, 0x8c, 0xa6, 0x94, 0x15, 0x88, 0x83, 0x7d, - 0x7f, 0x76, 0x4f, 0xae, 0x56, 0x5c, 0x6b, 0xe8, 0xa8, 0x0b, 0xf4, 0x94, - 0x19, 0x91, 0xa1, 0xab, 0x98, 0x6b, 0x95, 0xd2, 0x50, 0xda, 0xb8, 0x0b, - 0x74, 0x8e, 0xe5, 0x8a, 0x75, 0x20, 0x8b, 0xed, 0x81, 0xb1, 0x31, 0x69, - 0xf5, 0xcd, 0xb3, 0x51, 0x6f, 0xb6, 0x14, 0x06, 0x2b, 0xf5, 0x93, 0x9c, - 0x2d, 0x7e, 0x89, 0xf6, 0x5d, 0x19, 0xda, 0xd6, 0xf9, 0x8a, 0x50, 0x59, - 0x4e, 0x51, 0x77, 0xb0, 0xe2, 0x7d, 0xbe, 0xd5, 0x5b, 0x4b, 0x6f, 0xf6, - 0x54, 0x74, 0x52, 0xa1, 0xf0, 0xc0, 0x73, 0x4e, 0xe7, 0x93, 0x63, 0x3d, - 0xbc, 0x36, 0x83, 0x4d, 0xb5, 0x08, 0x0b, 0xa0, 0x95, 0x7a, 0xb5, 0x0c, - 0xca, 0x51, 0xe0, 0xc9, 0xfa, 0x81, 0x51, 0x79, 0x3f, 0x1e, 0xec, 0x7f, - 0xfc, 0xea, 0xc3, 0xfb, 0xc3, 0x93, 0xa3, 0xf5, 0x2e, 0x45, 0x5e, 0x3a, - 0xe4, 0xc9, 0x1a, 0xd1, 0x00, 0x02, 0xdb, 0xe0, 0xe7, 0x68, 0xe3, 0xa8, - 0x03, 0x66, 0x0a, 0xbf, 0x01, 0x50, 0x47, 0x16, 0xbc, 0x6b, 0x16, 0x59, - 0x16, 0x53, 0x40, 0xfd, 0x78, 0x93, 0x57, 0x1c, 0x15, 0x31, 0xb7, 0xe8, - 0x00, 0x23, 0x16, 0x1a, 0xa2, 0x3f, 0x73, 0x58, 0x8d, 0x0a, 0xee, 0x41, - 0xc6, 0x7b, 0x25, 0x68, 0x5a, 0xaa, 0x3d, 0x32, 0x06, 0xb4, 0x18, 0x5a, - 0x62, 0xc6, 0x13, 0xd9, 0xee, 0xda, 0x25, 0x9f, 0x4d, 0x93, 0x75, 0x6a, - 0xc9, 0x50, 0xf2, 0x40, 0x06, 0x39, 0xa9, 0x9a, 0xf5, 0xbe, 0x4a, 0x2d, - 0xb9, 0x97, 0x71, 0x81, 0x0b, 0x3e, 0x80, 0xff, 0xa0, 0x8c, 0xba, 0x94, - 0xe9, 0x7a, 0x98, 0xdd, 0x67, 0x50, 0x17, 0xe5, 0xad, 0x03, 0x91, 0x0c, - 0xbe, 0x2f, 0x2b, 0xd8, 0x47, 0x0f, 0x9d, 0x84, 0xc0, 0x0f, 0x19, 0x0d, - 0x32, 0x8c, 0x5d, 0x24, 0x29, 0x20, 0x45, 0x59, 0x05, 0x54, 0x81, 0x3b, - 0xdb, 0xbf, 0xf8, 0x26, 0xea, 0x79, 0x77, 0xf5, 0x06, 0x85, 0x14, 0xad, - 0xdc, 0x66, 0x35, 0x05, 0x5f, 0x3d, 0xea, 0x5b, 0x9d, 0xc9, 0x90, 0x75, - 0x97, 0x61, 0x84, 0xda, 0x84, 0xa7, 0x3d, 0x58, 0x31, 0x95, 0xb3, 0x21, - 0xec, 0xcd, 0xc8, 0x6b, 0xbc, 0x3a, 0x37, 0x57, 0x0b, 0xff, 0x19, 0x0e, - 0xb8, 0x20, 0x00, 0xee, 0xdf, 0x97, 0x11, 0x81, 0x04, 0x3b, 0x8c, 0xc8, - 0xc9, 0x64, 0x9f, 0x60, 0xcb, 0x78, 0x92, 0x29, 0xb9, 0x0c, 0xca, 0xe0, - 0x94, 0x32, 0x9f, 0x62, 0x7e, 0x0f, 0xc6, 0x64, 0xf3, 0x37, 0x68, 0x58, - 0xb6, 0xfc, 0x84, 0x77, 0x19, 0x8c, 0x1f, 0x12, 0x2f, 0xb1, 0x26, 0xe4, - 0x70, 0x73, 0x11, 0x12, 0xf7, 0x7a, 0xc9, 0x46, 0x36, 0xbc, 0x32, 0xac, - 0xae, 0x47, 0x4d, 0xed, 0xec, 0xd1, 0xcf, 0x5d, 0xfc, 0x7c, 0xd6, 0x13, - 0xbf, 0x55, 0x2b, 0x1b, 0x8f, 0xf8, 0x57, 0x98, 0x86, 0xd7, 0xe2, 0x66, - 0xec, 0xdf, 0xcf, 0x2f, 0x1f, 0x21, 0x21, 0x91, 0xef, 0xa2, 0x98, 0x32, - 0x6e, 0x1d, 0x98, 0x59, 0x92, 0xf4, 0x40, 0x48, 0xa0, 0x54, 0xbd, 0xc3, - 0x4c, 0x70, 0xc2, 0x49, 0xdc, 0x5e, 0xd6, 0xd8, 0xc7, 0x2a, 0xbb, 0x4e, - 0xeb, 0xeb, 0x64, 0xd9, 0xe4, 0x14, 0x06, 0x10, 0x41, 0xba, 0x9e, 0xd9, - 0xb0, 0x75, 0xe9, 0x58, 0x71, 0xe2, 0xec, 0xce, 0xb2, 0xa5, 0x11, 0x69, - 0xd3, 0xf2, 0xc8, 0x40, 0x8a, 0x20, 0xc6, 0x18, 0x21, 0xa8, 0x95, 0x63, - 0xf1, 0xe8, 0x49, 0xbf, 0x24, 0xd5, 0x9c, 0xac, 0xa9, 0x88, 0x4d, 0xc8, - 0x2e, 0xcd, 0x9a, 0xe5, 0x1e, 0xd4, 0x00, 0x86, 0x1c, 0x66, 0x46, 0xf0, - 0x1d, 0x27, 0x51, 0x56, 0xf6, 0x6f, 0x70, 0x10, 0xab, 0xd2, 0xa1, 0x66, - 0x55, 0xf7, 0xb2, 0x79, 0x9a, 0xde, 0xc1, 0x5a, 0x19, 0xe0, 0x83, 0x79, - 0xbb, 0xcc, 0x96, 0x53, 0xcb, 0x94, 0xd8, 0x05, 0x84, 0x36, 0x06, 0x0d, - 0x6a, 0x51, 0x81, 0x7f, 0xed, 0xc9, 0xb9, 0x84, 0x8f, 0xd7, 0x1c, 0xe9, - 0x15, 0xd1, 0x55, 0x6f, 0x81, 0x18, 0x5b, 0x53, 0xfc, 0x23, 0xad, 0xd3, - 0x06, 0x95, 0xe3, 0xe0, 0xf2, 0x42, 0x29, 0xa2, 0xd7, 0x36, 0xc9, 0x40, - 0x25, 0xd1, 0x5b, 0x48, 0x98, 0xaf, 0xa3, 0xa8, 0xfc, 0x84, 0xf6, 0xc7, - 0xc5, 0x41, 0x90, 0x68, 0x04, 0x9d, 0x17, 0x61, 0x20, 0xe2, 0x36, 0x47, - 0x91, 0x48, 0xc3, 0x97, 0xb3, 0x66, 0xe2, 0x7d, 0x39, 0xcd, 0xd2, 0x59, - 0x12, 0x0b, 0x40, 0xbf, 0xe4, 0xe2, 0x92, 0x1a, 0x07, 0x00, 0xa1, 0xa8, - 0xd0, 0xe0, 0x01, 0x89, 0x20, 0xe6, 0x6c, 0xca, 0xa2, 0x05, 0x16, 0x79, - 0x09, 0xb4, 0x8b, 0xe0, 0xf8, 0x92, 0x22, 0xcf, 0xe9, 0x2c, 0x8a, 0x3c, - 0x00, 0xfd, 0xdc, 0x66, 0x0e, 0x20, 0x32, 0x12, 0x29, 0x97, 0xf6, 0x01, - 0xa4, 0x45, 0x70, 0x4e, 0x5c, 0x60, 0x3d, 0x50, 0xe8, 0x66, 0x54, 0xa3, - 0x13, 0x44, 0x43, 0x0d, 0xe4, 0xa7, 0x71, 0x3d, 0xd8, 0x42, 0xa1, 0x9b, - 0x72, 0x25, 0xc2, 0x42, 0x8e, 0x1d, 0x32, 0x0a, 0xe1, 0x20, 0x60, 0x2e, - 0x9a, 0x40, 0xc6, 0x05, 0x64, 0xb1, 0xfc, 0x0d, 0x9f, 0xae, 0xb4, 0x91, - 0x6a, 0x53, 0x34, 0x50, 0x01, 0x1e, 0xda, 0xdd, 0x8d, 0x7b, 0x39, 0x04, - 0x5e, 0x4c, 0x6c, 0x1a, 0xb4, 0x14, 0x83, 0x3a, 0xbd, 0xcc, 0xd4, 0xc2, - 0x47, 0xb5, 0x8b, 0x08, 0x58, 0x76, 0x62, 0x96, 0x8f, 0x03, 0xff, 0xf1, - 0x19, 0x29, 0x4d, 0x83, 0xb0, 0x9e, 0x06, 0x9d, 0x72, 0xd2, 0x25, 0x5c, - 0x8e, 0x4e, 0x42, 0xca, 0xb5, 0xc6, 0x5f, 0x27, 0xf5, 0x2c, 0x5f, 0xa8, - 0x53, 0xdf, 0xdc, 0xa6, 0xe0, 0xa8, 0xb8, 0x9f, 0x23, 0xc1, 0x21, 0x1d, - 0x18, 0x34, 0x48, 0xc3, 0xb7, 0xe4, 0x5d, 0x99, 0x26, 0x1b, 0xb6, 0x79, - 0x6e, 0xfd, 0xf9, 0xf6, 0x0e, 0xc6, 0xfb, 0x7c, 0xfb, 0x33, 0x3f, 0x49, - 0xda, 0x66, 0x93, 0x0a, 0xa0, 0xa8, 0x04, 0x9e, 0x3e, 0x96, 0x06, 0x31, - 0x23, 0xbd, 0x0c, 0xab, 0x9a, 0x19, 0x69, 0x11, 0xa6, 0x00, 0x49, 0xb1, - 0x1d, 0xe4, 0x05, 0x27, 0x74, 0x9a, 0x7f, 0x65, 0x27, 0x53, 0x0e, 0xb3, - 0xeb, 0x62, 0x7a, 0xa4, 0x0c, 0x5b, 0xc6, 0xa0, 0x15, 0x1c, 0xef, 0xce, - 0xd9, 0xb7, 0xed, 0xf4, 0x5b, 0x81, 0xcc, 0xd3, 0x5b, 0x06, 0x19, 0xc4, - 0x64, 0x37, 0x0c, 0x24, 0x47, 0xe5, 0x98, 0x40, 0x3d, 0xa2, 0x44, 0xdb, - 0x0b, 0xd2, 0x22, 0x44, 0x9a, 0x4d, 0xab, 0x66, 0x0b, 0x39, 0xb5, 0x1c, - 0x51, 0x9c, 0x4e, 0x08, 0x4d, 0xcb, 0x96, 0x02, 0x3c, 0x7f, 0x7b, 0xd0, - 0x69, 0x6e, 0xf7, 0xd9, 0xe7, 0x9f, 0xdb, 0xbc, 0xfe, 0x4c, 0x82, 0x24, - 0x1d, 0x74, 0xab, 0x11, 0xa1, 0x24, 0xdf, 0x88, 0xed, 0x80, 0x54, 0xc4, - 0x8d, 0x32, 0x31, 0x38, 0x6e, 0x28, 0xe4, 0xfa, 0xeb, 0xb2, 0xa6, 0xeb, - 0x1c, 0x32, 0xcc, 0x56, 0x2b, 0xad, 0x2f, 0x26, 0x75, 0x82, 0x3c, 0x38, - 0x4b, 0xd6, 0x00, 0xc5, 0x6e, 0x67, 0x0e, 0xc1, 0x97, 0x41, 0x14, 0xda, - 0x55, 0xc1, 0x29, 0xbc, 0x7f, 0xa3, 0x3b, 0xe4, 0x2a, 0x6b, 0xc2, 0x38, - 0x77, 0x81, 0x7c, 0x0b, 0xba, 0x58, 0x0d, 0x35, 0xa5, 0xb5, 0x12, 0x38, - 0x4a, 0xff, 0x35, 0x5f, 0x8f, 0x0a, 0x29, 0xe3, 0x15, 0x99, 0xfa, 0x12, - 0x44, 0xf4, 0xda, 0xda, 0xbc, 0x8b, 0xa8, 0x41, 0xfc, 0x4b, 0x85, 0x2f, - 0x13, 0x93, 0x0f, 0x70, 0xb5, 0x9a, 0x26, 0xd5, 0x1a, 0xa1, 0xb8, 0xee, - 0x29, 0x65, 0xd5, 0x42, 0xad, 0x2a, 0x02, 0x7a, 0xe0, 0xea, 0xc8, 0x25, - 0x32, 0xf1, 0xb5, 0x6d, 0x11, 0x18, 0x89, 0x9c, 0x32, 0x4c, 0x63, 0xc1, - 0x2a, 0xa0, 0x07, 0x0b, 0x0b, 0xd2, 0x20, 0xf6, 0xd4, 0xaf, 0x9e, 0xd5, - 0x8a, 0x99, 0x76, 0xef, 0x7b, 0xeb, 0x14, 0x9c, 0xfc, 0x23, 0x5b, 0x27, - 0x4c, 0x43, 0x70, 0x20, 0x55, 0xba, 0x68, 0x56, 0xd1, 0xb4, 0x5c, 0x10, - 0x6e, 0x5f, 0x0e, 0xfe, 0x3a, 0x3d, 0xd3, 0x3d, 0xf9, 0xf4, 0xce, 0xba, - 0xe6, 0x65, 0xfb, 0x76, 0x73, 0x50, 0x26, 0x0f, 0xc7, 0xa2, 0x07, 0xb2, - 0x1d, 0x9b, 0x7a, 0xb2, 0x19, 0xc7, 0x11, 0x55, 0x0e, 0x08, 0x4f, 0x7b, - 0x51, 0x7d, 0x66, 0xf0, 0xd6, 0x0e, 0xf4, 0xcd, 0x97, 0xad, 0xd6, 0xee, - 0xee, 0x86, 0xf3, 0x07, 0xfd, 0xae, 0x6e, 0x95, 0xec, 0x75, 0x49, 0x45, - 0x02, 0xa7, 0xca, 0x14, 0xe5, 0xb2, 0x6b, 0x7d, 0xdf, 0xb6, 0x2b, 0x90, - 0x67, 0xae, 0x76, 0xc5, 0x19, 0x59, 0x05, 0x9a, 0x2b, 0xc7, 0xf9, 0x8a, - 0xc2, 0x89, 0x48, 0xf6, 0x1d, 0x97, 0x86, 0xde, 0x94, 0x94, 0x28, 0x31, - 0xb1, 0xa9, 0x96, 0x93, 0x26, 0xbc, 0xf7, 0xb5, 0xec, 0x05, 0x2e, 0x02, - 0xf6, 0x3f, 0x68, 0xd1, 0x54, 0xd0, 0x59, 0xfb, 0xb4, 0x6b, 0x48, 0x1b, - 0x44, 0xc4, 0x98, 0x48, 0xb2, 0x0e, 0x9c, 0xce, 0xf5, 0x3e, 0x87, 0x53, - 0x4a, 0xbe, 0x9c, 0xcb, 0xe4, 0x5a, 0xb9, 0x94, 0xbd, 0xbb, 0x6c, 0xfc, - 0xe6, 0x4b, 0x72, 0xb8, 0xdc, 0x03, 0x5f, 0x88, 0xf1, 0x3e, 0x89, 0x8e, - 0xb6, 0xe8, 0xcf, 0x5e, 0x42, 0x2a, 0x4c, 0x64, 0x25, 0x0d, 0xfd, 0xad, - 0x6a, 0xd1, 0x4b, 0xc1, 0xf6, 0x5a, 0xbb, 0x2c, 0xcb, 0x95, 0x8d, 0xb9, - 0x1a, 0xb9, 0x58, 0x0d, 0x2f, 0x80, 0x8e, 0xe3, 0xd9, 0x1c, 0x61, 0x31, - 0x31, 0xd9, 0x3d, 0x92, 0xa3, 0x15, 0x4b, 0xce, 0x1a, 0x3f, 0x58, 0x70, - 0x70, 0x4d, 0xd4, 0x78, 0x23, 0xf5, 0xdb, 0x48, 0xde, 0x5a, 0xbd, 0x20, - 0xf4, 0xf4, 0x9b, 0x2f, 0x81, 0x8f, 0x42, 0xbf, 0xfe, 0xc5, 0xbe, 0x4d, - 0x3f, 0x0c, 0x5d, 0x9a, 0xb3, 0xbd, 0x72, 0x22, 0x46, 0x98, 0xd3, 0xc7, - 0xb7, 0x58, 0x42, 0x55, 0x59, 0x70, 0xbd, 0xbf, 0x4e, 0xfa, 0xdd, 0xfa, - 0x5f, 0xd6, 0x21, 0x45, 0xa8, 0x41, 0x01, 0x18, 0xf7, 0x5c, 0xb2, 0x7b, - 0x5a, 0x06, 0xb1, 0x2c, 0x14, 0xfa, 0x87, 0x27, 0xb8, 0xaa, 0xf9, 0x53, - 0x63, 0xfe, 0xa9, 0x67, 0x47, 0xfd, 0x53, 0xcf, 0x8d, 0xfb, 0xa7, 0x9e, - 0x1b, 0xf9, 0x4f, 0xbd, 0x5f, 0xb1, 0xa3, 0xeb, 0xdc, 0xbc, 0x6b, 0xdd, - 0x6b, 0xdc, 0x6b, 0xbb, 0xb7, 0xbe, 0xaa, 0x69, 0xdf, 0xfa, 0x8a, 0x2c, - 0x85, 0xa4, 0xb3, 0x4c, 0xe6, 0x00, 0xb9, 0x95, 0x90, 0xb2, 0x81, 0x3c, - 0xf1, 0x7e, 0x44, 0x1f, 0xf6, 0x1f, 0xa0, 0x45, 0xa5, 0x68, 0x89, 0x7a, - 0x46, 0xca, 0x84, 0xf3, 0xca, 0xd9, 0x0e, 0xec, 0x52, 0xab, 0x33, 0x25, - 0x70, 0xb1, 0xd9, 0xd7, 0x83, 0x33, 0x4a, 0xd6, 0xc1, 0xcb, 0x65, 0x05, - 0xa5, 0x5f, 0xaa, 0x88, 0x71, 0x1a, 0xa9, 0x42, 0xa4, 0x49, 0x5f, 0xef, - 0xf6, 0xdf, 0x7f, 0xd8, 0x3f, 0x79, 0x34, 0x8c, 0xc4, 0x8f, 0x11, 0xb5, - 0x86, 0x28, 0x88, 0xe4, 0xbe, 0xc6, 0x4a, 0x71, 0x95, 0x74, 0x87, 0x53, - 0x25, 0xd6, 0x1f, 0xe9, 0x4a, 0xff, 0x39, 0x1a, 0x81, 0xfb, 0xbd, 0x48, - 0xb1, 0x6f, 0x7d, 0xc4, 0xf3, 0x1b, 0xe6, 0x3f, 0x3d, 0x7d, 0x9f, 0x5e, - 0xef, 0x89, 0x29, 0xd7, 0x56, 0x36, 0x8b, 0x68, 0x0b, 0x96, 0xeb, 0x93, - 0xe4, 0xa2, 0xfa, 0x1a, 0x14, 0xd2, 0xbe, 0x57, 0xa9, 0x15, 0x7a, 0x09, - 0x2a, 0x68, 0x5f, 0xae, 0x36, 0x4b, 0xef, 0x1f, 0x1c, 0xb8, 0xb8, 0xec, - 0x76, 0x86, 0x67, 0x2b, 0x2e, 0xe5, 0xb7, 0x57, 0xf5, 0xb1, 0x70, 0x33, - 0xd4, 0x22, 0xa3, 0xd8, 0xd5, 0x41, 0x53, 0x72, 0x5e, 0xc4, 0x6b, 0x19, - 0xcd, 0x17, 0xf1, 0x48, 0x66, 0x32, 0x99, 0xf8, 0x82, 0xa6, 0x56, 0xa0, - 0x40, 0xad, 0x8d, 0x91, 0x18, 0x5d, 0xcf, 0xf6, 0x09, 0x36, 0x4e, 0x92, - 0x04, 0x58, 0x5b, 0x08, 0x62, 0xd8, 0x32, 0x85, 0x12, 0x76, 0xd3, 0xd7, - 0x64, 0x76, 0xd5, 0x33, 0x55, 0x28, 0xbb, 0x58, 0xce, 0x0d, 0xf5, 0x1a, - 0x89, 0x63, 0xba, 0x5e, 0x27, 0x4f, 0xc4, 0x19, 0x38, 0x9c, 0xaf, 0x12, - 0x3f, 0x11, 0xfe, 0xa0, 0x80, 0xcd, 0x91, 0x90, 0x8a, 0x7e, 0xf4, 0x6e, - 0xe8, 0x8d, 0x8e, 0x2f, 0x8e, 0x92, 0xfd, 0x0f, 0x17, 0xdf, 0xf4, 0xbc, - 0x02, 0x2c, 0xed, 0x0c, 0x1b, 0xa3, 0x2c, 0x54, 0x79, 0xa6, 0x08, 0xd9, - 0xb4, 0x76, 0x2c, 0xac, 0x45, 0xb0, 0x72, 0x3b, 0x1e, 0xf1, 0xce, 0x46, - 0xbf, 0x18, 0xbe, 0xd8, 0xec, 0x6c, 0xcc, 0x6a, 0x88, 0x2b, 0xaf, 0x6c, - 0x8c, 0xac, 0x16, 0x5d, 0x02, 0x1e, 0xca, 0x12, 0xc5, 0xe0, 0x6c, 0x39, - 0x84, 0x55, 0x88, 0xcc, 0x6a, 0x59, 0x0c, 0x73, 0x34, 0x6d, 0xc2, 0x2a, - 0xdb, 0xd8, 0x28, 0x00, 0xfb, 0x1e, 0x01, 0x68, 0x45, 0x4b, 0x94, 0xf1, - 0x0b, 0x26, 0xda, 0xe8, 0xe8, 0x48, 0x12, 0x93, 0x5a, 0x75, 0x09, 0x53, - 0x92, 0xaa, 0x15, 0xf8, 0x30, 0xf5, 0x21, 0xe8, 0x96, 0x0a, 0x10, 0x2e, - 0xd1, 0x23, 0x0a, 0x0b, 0x95, 0xcc, 0x73, 0xce, 0xb2, 0xf7, 0x20, 0xa6, - 0xba, 0x94, 0x2c, 0x4a, 0xd9, 0x8f, 0xfc, 0x6f, 0x9c, 0x07, 0x1c, 0x48, - 0xa5, 0x2b, 0x48, 0x0b, 0xf2, 0x02, 0xc3, 0xe9, 0x71, 0x74, 0x9d, 0x03, - 0xf2, 0x47, 0xe1, 0x2a, 0x76, 0x69, 0x60, 0x81, 0x43, 0x40, 0xd0, 0x8d, - 0xd1, 0x66, 0x62, 0x0b, 0x72, 0x91, 0x74, 0x2c, 0xed, 0x51, 0x7c, 0x65, - 0x27, 0x9e, 0x32, 0xc8, 0x6b, 0x8e, 0x41, 0x8d, 0x78, 0x27, 0x31, 0xbc, - 0x68, 0xc1, 0xfd, 0x26, 0x77, 0xd3, 0x78, 0xc6, 0x18, 0x97, 0xc5, 0x2c, - 0xb9, 0x06, 0x2c, 0x47, 0x6e, 0x1e, 0x7c, 0x7f, 0xd8, 0x29, 0x3e, 0xc9, - 0xe5, 0x1f, 0xd9, 0x9d, 0xcb, 0x31, 0xde, 0xab, 0xb2, 0x93, 0xbd, 0xe4, - 0x4a, 0x14, 0x4f, 0x27, 0x80, 0xf4, 0x69, 0x96, 0x2d, 0x2c, 0xde, 0x19, - 0xd0, 0xff, 0x59, 0x11, 0xa6, 0x22, 0xe8, 0x28, 0x77, 0x3e, 0x0f, 0xaf, - 0x1c, 0xeb, 0x3b, 0x62, 0x2e, 0xe0, 0x92, 0xc7, 0x08, 0xd3, 0xd4, 0xa8, - 0x59, 0xc9, 0xce, 0x67, 0xcf, 0x3e, 0x4f, 0x6a, 0xca, 0x4d, 0xc8, 0x3b, - 0x48, 0x31, 0x8c, 0x15, 0xb0, 0x3a, 0x47, 0x54, 0xe4, 0x66, 0x35, 0xf6, - 0x28, 0x2a, 0x5e, 0x4d, 0xc9, 0x87, 0xb8, 0xb9, 0x24, 0x7a, 0x3f, 0x4c, - 0x19, 0x34, 0x8b, 0xa8, 0x32, 0x23, 0x56, 0x0c, 0xf0, 0x0e, 0xb4, 0x5a, - 0x6c, 0x85, 0x19, 0xb6, 0xab, 0xcc, 0x13, 0xca, 0x6b, 0x3f, 0x39, 0x3f, - 0xba, 0x38, 0xef, 0x27, 0xa3, 0x8b, 0xd3, 0xf3, 0x15, 0x89, 0xbd, 0xcd, - 0x04, 0x4c, 0x8f, 0xd6, 0x8c, 0xc8, 0x86, 0xf0, 0x33, 0xd5, 0x90, 0xef, - 0x71, 0x0c, 0xda, 0x85, 0x94, 0x99, 0x08, 0xd4, 0xf0, 0xf9, 0x60, 0x55, - 0x3a, 0x77, 0x6b, 0xb5, 0x40, 0x36, 0x86, 0x97, 0x3f, 0x3a, 0x31, 0xde, - 0xf6, 0x4f, 0xa0, 0x10, 0xa2, 0x45, 0x9a, 0xae, 0x65, 0xd9, 0x18, 0xad, - 0x94, 0x8c, 0x72, 0x06, 0x49, 0x31, 0x65, 0xac, 0xa0, 0x10, 0xa6, 0x2c, - 0xb4, 0xe6, 0x40, 0xb5, 0x7b, 0x9a, 0x71, 0xd2, 0x4b, 0xc8, 0xf0, 0x7d, - 0x93, 0x79, 0x78, 0x5d, 0x4f, 0xd0, 0x6f, 0x5a, 0x93, 0x01, 0xc7, 0xab, - 0x5a, 0x43, 0x25, 0xa2, 0x58, 0xa4, 0x87, 0x81, 0x51, 0x19, 0x4f, 0x9d, - 0x58, 0x5c, 0x83, 0x58, 0xca, 0x93, 0xc5, 0x33, 0xa2, 0x5d, 0x5e, 0xb7, - 0x89, 0x2b, 0xa5, 0x50, 0x07, 0xef, 0x8b, 0x11, 0x70, 0x66, 0x0d, 0x90, - 0xa2, 0xd6, 0x75, 0x54, 0xeb, 0x96, 0xd4, 0x3a, 0x5c, 0x79, 0xa7, 0xcb, - 0x95, 0x29, 0xef, 0x27, 0xca, 0x59, 0xc8, 0x09, 0xdf, 0xca, 0x36, 0xd2, - 0x7a, 0xaf, 0x10, 0x04, 0x7c, 0x78, 0xda, 0x33, 0x79, 0x6a, 0x45, 0xdc, - 0xb2, 0x16, 0x07, 0x75, 0x51, 0x4c, 0xba, 0xe7, 0x9c, 0x89, 0xb3, 0xec, - 0xb2, 0xd3, 0x4e, 0x26, 0x4d, 0x57, 0x40, 0x55, 0x8c, 0x7d, 0x57, 0xa6, - 0x25, 0x19, 0x9c, 0x6d, 0xb9, 0x7c, 0x27, 0x05, 0xe9, 0x6a, 0xcd, 0x7c, - 0xe7, 0x57, 0x0b, 0x1e, 0x52, 0xcf, 0x42, 0xec, 0x17, 0x15, 0x02, 0x0f, - 0x8a, 0x6c, 0x45, 0xfd, 0x4c, 0x42, 0xf4, 0x2e, 0x38, 0xa1, 0x89, 0x53, - 0xa6, 0xb5, 0xc0, 0x82, 0xae, 0x24, 0xa5, 0xc2, 0x52, 0x5e, 0x2e, 0x2e, - 0xa8, 0x69, 0x09, 0x03, 0x27, 0x2d, 0x42, 0x18, 0x57, 0x02, 0x81, 0x15, - 0x21, 0x34, 0x7a, 0xa5, 0x48, 0x63, 0x62, 0x0c, 0xa9, 0x50, 0xa7, 0xbd, - 0x9d, 0x88, 0xc3, 0x46, 0xfa, 0xe0, 0x28, 0x9d, 0xf9, 0xdb, 0xc8, 0x1c, - 0x0e, 0x52, 0xb8, 0x63, 0x0c, 0x4d, 0xf5, 0x10, 0xe6, 0x6a, 0xf1, 0x6c, - 0xc3, 0x62, 0x47, 0x1c, 0x25, 0x86, 0x4c, 0x2a, 0xa9, 0x8a, 0xd0, 0x4e, - 0x51, 0xd2, 0x95, 0xec, 0xde, 0x67, 0x84, 0x88, 0x0d, 0x7a, 0x1b, 0xe4, - 0x8b, 0xa7, 0x93, 0x36, 0xc9, 0x10, 0xa9, 0x4e, 0x17, 0x17, 0xa4, 0xdd, - 0x42, 0x71, 0x5d, 0x5e, 0x5d, 0x21, 0x45, 0x20, 0x0f, 0x93, 0xb1, 0x6b, - 0x67, 0x7c, 0x14, 0x44, 0x0e, 0x23, 0x66, 0xd1, 0x98, 0x5b, 0x99, 0x68, - 0xdc, 0x99, 0xd0, 0x72, 0xed, 0x60, 0xd1, 0x56, 0xc6, 0x0a, 0xc0, 0x98, - 0x2c, 0x85, 0xa7, 0x26, 0x5e, 0x6a, 0x5a, 0x95, 0x0d, 0xa0, 0x97, 0x5b, - 0x87, 0xa0, 0x37, 0xe2, 0x20, 0xc4, 0x47, 0x72, 0xd5, 0x59, 0x8c, 0xd1, - 0x53, 0xa5, 0x25, 0x2b, 0xfd, 0xbe, 0x5a, 0x14, 0xfc, 0x7c, 0xb8, 0xbb, - 0xf9, 0x98, 0x6a, 0x41, 0x72, 0xbb, 0xe1, 0xfc, 0x19, 0x67, 0x2e, 0x19, - 0xfd, 0x8a, 0xd3, 0x47, 0x39, 0xfd, 0xb0, 0xe2, 0x9d, 0x55, 0x12, 0x57, - 0x92, 0x0a, 0x01, 0xa5, 0x69, 0x89, 0xba, 0xfb, 0x66, 0x8e, 0x59, 0xf3, - 0x64, 0x0a, 0xa0, 0x9a, 0x90, 0xd2, 0xe4, 0xcc, 0x5c, 0x2e, 0x76, 0x95, - 0xbd, 0xbc, 0xbb, 0x64, 0x03, 0xb1, 0x0b, 0x66, 0x1c, 0x9b, 0xdd, 0x8b, - 0x90, 0x50, 0x27, 0xd3, 0xdc, 0xd7, 0x64, 0xcc, 0xc1, 0x9b, 0x9b, 0x4f, - 0xc8, 0x29, 0x50, 0x99, 0x31, 0x10, 0x8c, 0xba, 0xd6, 0xb7, 0x12, 0x09, - 0x9b, 0x6c, 0xcf, 0xca, 0x45, 0xd7, 0xa2, 0xf7, 0xb3, 0x78, 0x21, 0x3d, - 0x9f, 0x14, 0xc5, 0x0d, 0x99, 0xb3, 0x59, 0xfb, 0xb5, 0x21, 0x96, 0x0b, - 0xd6, 0xe5, 0xca, 0xbb, 0x02, 0x68, 0xe9, 0x21, 0x35, 0x61, 0xf0, 0x74, - 0x76, 0x3a, 0x51, 0xf6, 0xbb, 0xdb, 0xc3, 0xfb, 0x2e, 0x3b, 0xad, 0xeb, - 0xd9, 0x60, 0x32, 0x99, 0xac, 0xe4, 0xa8, 0x07, 0x07, 0x07, 0xc9, 0xc6, - 0x01, 0x72, 0xbe, 0x0f, 0x64, 0x94, 0x07, 0xd7, 0x64, 0xa6, 0x99, 0x51, - 0x8d, 0x8d, 0xeb, 0x25, 0x59, 0xf5, 0x68, 0x28, 0xc2, 0x70, 0x46, 0xa3, - 0x93, 0xad, 0x8b, 0x93, 0x51, 0x37, 0xe4, 0x3c, 0x7d, 0x20, 0x5d, 0x8f, - 0x4b, 0x69, 0xb4, 0xf4, 0x16, 0x96, 0xdb, 0x00, 0xb7, 0xa4, 0x41, 0xab, - 0x4a, 0x57, 0xdc, 0x4b, 0x34, 0xb9, 0x62, 0x59, 0xa8, 0x7d, 0xdd, 0x2a, - 0x56, 0x45, 0x56, 0x20, 0x7e, 0x8b, 0x58, 0x1a, 0xa8, 0x4c, 0x2a, 0x75, - 0xbf, 0xdf, 0xbf, 0xa0, 0x22, 0x6d, 0x8d, 0xa4, 0x84, 0xac, 0x08, 0x88, - 0xb7, 0x60, 0x5d, 0xc8, 0xe4, 0x4c, 0x3d, 0x18, 0x73, 0xbd, 0x02, 0xc0, - 0x8a, 0xf2, 0x5a, 0xf9, 0xe2, 0x50, 0x22, 0x82, 0x23, 0x30, 0xaa, 0xb2, - 0xa2, 0x03, 0x7b, 0x07, 0x71, 0x58, 0x35, 0xfd, 0x59, 0x77, 0x36, 0x64, - 0xe7, 0x65, 0x78, 0xbf, 0xb5, 0x5e, 0xff, 0x91, 0x73, 0x1a, 0xb7, 0xa4, - 0xd7, 0x9f, 0x7f, 0xd5, 0x36, 0x21, 0x6a, 0x4b, 0x6c, 0xf1, 0xe6, 0x31, - 0xa5, 0x8c, 0x8b, 0x48, 0xa0, 0xa1, 0xdc, 0x8b, 0xe8, 0xdb, 0x26, 0xb1, - 0x36, 0x12, 0xca, 0x2f, 0x18, 0x74, 0xb5, 0xd9, 0xf4, 0x29, 0x4a, 0x8a, - 0x8c, 0x81, 0x5a, 0xcc, 0xdc, 0xe5, 0x2e, 0x0d, 0xd8, 0x86, 0x72, 0x0a, - 0x0f, 0x0f, 0xa1, 0x34, 0xcc, 0x85, 0x3d, 0xb6, 0x16, 0xb7, 0xbf, 0xca, - 0x16, 0xb3, 0x07, 0x2b, 0xa6, 0x49, 0xdb, 0xab, 0xf4, 0x37, 0x5f, 0xd8, - 0xf7, 0xd3, 0x3d, 0x75, 0x80, 0x75, 0xbb, 0x15, 0x74, 0x94, 0xe6, 0x5c, - 0x05, 0xbd, 0xcb, 0xd4, 0xa4, 0xe7, 0x4e, 0x99, 0xb4, 0x70, 0x87, 0x76, - 0xa3, 0x3b, 0xc4, 0x54, 0x1a, 0xdd, 0x8f, 0x73, 0x39, 0xf7, 0x72, 0x16, - 0xec, 0x3a, 0x10, 0x7d, 0x19, 0x62, 0xbb, 0x42, 0xa8, 0x27, 0xc3, 0x28, - 0x48, 0xd8, 0x81, 0x16, 0x10, 0xe8, 0xda, 0x25, 0xa4, 0xd8, 0xbc, 0x94, - 0x49, 0xec, 0xf8, 0x96, 0x78, 0xfd, 0x89, 0xab, 0x58, 0xd2, 0x17, 0xc4, - 0x53, 0xcd, 0x46, 0x8e, 0xec, 0x87, 0xfa, 0x89, 0x27, 0x54, 0xcb, 0xe3, - 0x2d, 0x7b, 0x10, 0xbd, 0x12, 0x06, 0xea, 0x19, 0x56, 0xf5, 0x5d, 0x35, - 0xd3, 0x95, 0xf5, 0xb2, 0x65, 0x8e, 0xe1, 0xaa, 0x6d, 0x6f, 0xca, 0x95, - 0x6d, 0xa4, 0x0a, 0xc3, 0xc3, 0x9c, 0xf9, 0x43, 0x64, 0xc2, 0x20, 0x6f, - 0x79, 0xcc, 0x20, 0xc6, 0xb7, 0x0a, 0xa2, 0x76, 0xb9, 0x6c, 0x68, 0xd2, - 0x5a, 0x8a, 0xdd, 0xdf, 0x03, 0x32, 0xcf, 0x4b, 0x50, 0x2e, 0xbb, 0xc8, - 0x1e, 0x2f, 0x44, 0xea, 0x70, 0xc1, 0xc4, 0xaf, 0x26, 0x40, 0x6b, 0x36, - 0x7d, 0x8f, 0x3d, 0xd4, 0x1a, 0xe7, 0xab, 0xa1, 0x20, 0x31, 0xb7, 0x0c, - 0x10, 0x29, 0x2a, 0xf3, 0x0b, 0xe0, 0x43, 0xf4, 0x76, 0x9a, 0x51, 0xdc, - 0x34, 0x89, 0x49, 0xc3, 0xe4, 0x24, 0x63, 0x8f, 0xd4, 0xfa, 0x97, 0xeb, - 0xa0, 0xbe, 0xf5, 0xd7, 0xeb, 0x12, 0xc6, 0x1c, 0xd6, 0xda, 0xa9, 0x04, - 0x3a, 0x9e, 0x86, 0xb0, 0xce, 0x26, 0xe7, 0x75, 0x1d, 0x84, 0x58, 0xe8, - 0x78, 0x64, 0x88, 0x49, 0x28, 0x24, 0xd9, 0xc0, 0x08, 0x7a, 0x24, 0x11, - 0x45, 0xf4, 0xd7, 0x36, 0x1e, 0xc7, 0x82, 0xb3, 0x6e, 0xc8, 0x53, 0xe4, - 0x66, 0xce, 0xdb, 0x5b, 0x65, 0xeb, 0x35, 0x32, 0x3e, 0xb8, 0x9a, 0x4a, - 0x2c, 0x90, 0xc1, 0xae, 0x8d, 0x8c, 0x87, 0x07, 0x82, 0x1c, 0xb6, 0xc9, - 0x24, 0xa7, 0x0c, 0x07, 0x88, 0x85, 0xe6, 0x4b, 0x23, 0xd2, 0x30, 0x79, - 0x63, 0xce, 0x08, 0x61, 0x36, 0x93, 0xee, 0x92, 0x5e, 0x96, 0xd2, 0x6e, - 0x02, 0x8e, 0xbd, 0x0b, 0x95, 0x3b, 0xb8, 0x22, 0x89, 0xf0, 0x6a, 0x56, - 0x8e, 0xcb, 0xcb, 0xcb, 0x47, 0xe4, 0x05, 0x4e, 0xf4, 0x46, 0x1b, 0x4c, - 0xa4, 0x3d, 0x4a, 0x74, 0xa2, 0xf7, 0xc6, 0x9c, 0x8f, 0x8f, 0x82, 0x7a, - 0x82, 0xea, 0x29, 0xf5, 0x86, 0x62, 0xf8, 0xee, 0x6a, 0x02, 0xd1, 0x64, - 0x2c, 0x4d, 0xe1, 0x30, 0xad, 0xa9, 0x98, 0x29, 0x91, 0x77, 0x0e, 0x17, - 0xd0, 0x1c, 0xc2, 0xff, 0xf8, 0xaf, 0x1f, 0x7f, 0x8e, 0x84, 0x3e, 0x93, - 0x66, 0xa3, 0x21, 0xa7, 0x08, 0x75, 0x61, 0x30, 0x15, 0xe8, 0x10, 0x24, - 0x87, 0xb8, 0x8a, 0x24, 0x52, 0x14, 0xd5, 0x4b, 0x73, 0x09, 0x19, 0x5c, - 0xed, 0x3a, 0x04, 0x6a, 0x5f, 0xd9, 0x68, 0x1c, 0x00, 0x01, 0xc9, 0x00, - 0x49, 0xcb, 0x79, 0xd3, 0x2c, 0x48, 0x85, 0xe8, 0xed, 0xe1, 0x81, 0xb2, - 0x60, 0x43, 0xd6, 0xbf, 0x2a, 0x7c, 0xf6, 0xc3, 0xf9, 0xb1, 0xd5, 0xe8, - 0xbc, 0x9d, 0xf8, 0x1a, 0x3b, 0x11, 0x2c, 0x9b, 0x43, 0xb7, 0xec, 0x77, - 0x41, 0x52, 0x1c, 0xd2, 0x17, 0xa9, 0xd5, 0x5c, 0x48, 0xad, 0x53, 0x6d, - 0x6f, 0xda, 0x8f, 0xc2, 0xb0, 0xf6, 0xbb, 0x50, 0xc5, 0x55, 0x88, 0xff, - 0xd7, 0xca, 0xe1, 0x94, 0xc0, 0x85, 0x00, 0x9a, 0xfa, 0x6b, 0x23, 0xbd, - 0x59, 0x10, 0xeb, 0x4e, 0xaa, 0x67, 0x0b, 0xe0, 0x9a, 0x2b, 0xab, 0x10, - 0xfd, 0xdf, 0xa1, 0x18, 0xa8, 0xd8, 0x86, 0xa2, 0x5a, 0xd1, 0x85, 0x03, - 0x88, 0x64, 0xd6, 0xa5, 0x50, 0x51, 0x6e, 0x05, 0x4f, 0x34, 0x98, 0x7d, - 0xfd, 0xdf, 0xd6, 0x1d, 0x30, 0x5f, 0x24, 0x99, 0x43, 0xc7, 0x1f, 0x20, - 0xe4, 0x0c, 0x8e, 0xfb, 0x6e, 0x94, 0xec, 0x09, 0xe7, 0x3b, 0xd7, 0xd6, - 0x8a, 0x1d, 0x47, 0xa0, 0xa9, 0x57, 0x0d, 0xe3, 0x9b, 0xa3, 0xfd, 0x43, - 0x9d, 0xeb, 0x3f, 0x05, 0xde, 0xc6, 0x9a, 0x47, 0xc6, 0x19, 0x03, 0x70, - 0x2f, 0x0b, 0x2d, 0xbe, 0x4b, 0x7b, 0xa2, 0x77, 0x07, 0xa8, 0xc3, 0x88, - 0xda, 0x54, 0xc2, 0x81, 0x48, 0x36, 0xa2, 0x3a, 0x8a, 0xdd, 0x69, 0xa5, - 0xf2, 0xe8, 0x19, 0xe6, 0xd4, 0xc6, 0x47, 0xa7, 0x97, 0x59, 0x9c, 0x47, - 0xbf, 0x7e, 0xa2, 0xe6, 0x6b, 0xfe, 0x77, 0x55, 0x79, 0xb8, 0x23, 0xc0, - 0x89, 0xca, 0xb3, 0x66, 0x31, 0x05, 0xfe, 0x4e, 0x19, 0xaf, 0xd2, 0x0c, - 0x94, 0x2e, 0xd2, 0x13, 0x68, 0x5e, 0x11, 0xe2, 0x43, 0x9c, 0xa8, 0x4a, - 0x0e, 0x7f, 0x15, 0xb8, 0x6c, 0xe5, 0x28, 0xc4, 0x62, 0xa5, 0x0a, 0x13, - 0x05, 0xcb, 0x33, 0x80, 0xa9, 0x80, 0xba, 0x4a, 0x70, 0x7f, 0x34, 0x57, - 0xe7, 0xd2, 0x07, 0xf8, 0x36, 0x5a, 0x19, 0xd9, 0xcc, 0x8d, 0x72, 0x6d, - 0xe4, 0x14, 0x1d, 0x2f, 0x3d, 0x76, 0x9d, 0x7a, 0x88, 0xe2, 0x05, 0xc3, - 0x8a, 0x07, 0x29, 0xb7, 0xd6, 0xea, 0x69, 0x8d, 0x1a, 0x80, 0xf0, 0x64, - 0x45, 0x9a, 0x8d, 0x7d, 0x4b, 0xda, 0x18, 0xf6, 0xa4, 0x03, 0x64, 0xa7, - 0xe2, 0xdc, 0xe4, 0x08, 0xfb, 0x94, 0xde, 0x7d, 0x67, 0x46, 0xf7, 0xc0, - 0xf9, 0xdd, 0xb4, 0x05, 0xf1, 0x70, 0xd7, 0x35, 0xa7, 0x15, 0x19, 0xa4, - 0xe6, 0x26, 0x99, 0xdc, 0x50, 0xd4, 0x7f, 0xdd, 0x2c, 0xc1, 0xdf, 0xd3, - 0x42, 0x15, 0x56, 0x1e, 0xa6, 0x03, 0x53, 0x99, 0x96, 0x43, 0xf8, 0x5e, - 0x57, 0xd4, 0x6e, 0x45, 0x9e, 0x04, 0xc9, 0x76, 0x84, 0x70, 0xa1, 0xe3, - 0x91, 0x3c, 0x59, 0xc5, 0x21, 0x56, 0xce, 0x4d, 0xb5, 0xf1, 0x70, 0x79, - 0x84, 0xa5, 0xeb, 0x49, 0x2b, 0xa5, 0x10, 0x1f, 0xd2, 0xba, 0xee, 0xa4, - 0xd8, 0xc9, 0x3a, 0x2a, 0xfb, 0xe0, 0xaa, 0x3d, 0x87, 0xac, 0x62, 0xe1, - 0x34, 0x68, 0xca, 0xb2, 0x3c, 0x86, 0xdd, 0x5f, 0xe5, 0xb7, 0x51, 0x28, - 0xeb, 0xd4, 0x0e, 0x8c, 0xc3, 0xae, 0xec, 0x05, 0xa2, 0x8e, 0xfd, 0xa4, - 0x14, 0x45, 0x8a, 0xb1, 0x90, 0x08, 0x1d, 0x58, 0x56, 0x36, 0xcc, 0x10, - 0xa5, 0x3b, 0x2c, 0xa5, 0xab, 0x7e, 0xcf, 0x10, 0x7e, 0xd2, 0xfb, 0xa6, - 0xac, 0x9b, 0xbd, 0x9e, 0x57, 0x6c, 0x4f, 0x24, 0x8b, 0x36, 0xe5, 0x08, - 0x9c, 0x6e, 0x10, 0x96, 0xc5, 0x12, 0x10, 0x1f, 0x40, 0x73, 0xb5, 0xc8, - 0xd3, 0xea, 0x83, 0x94, 0x14, 0x4d, 0x9b, 0xf0, 0x4e, 0x24, 0x3f, 0xcf, - 0x65, 0x0c, 0x94, 0xd2, 0xdd, 0xe5, 0x52, 0x35, 0x86, 0xf4, 0xc3, 0xe0, - 0x00, 0x9d, 0x0f, 0xbe, 0x41, 0x73, 0x7f, 0xe9, 0x59, 0xa5, 0xbb, 0xfb, - 0xd5, 0x5e, 0x2f, 0x1e, 0x04, 0xee, 0xae, 0x97, 0xda, 0xd6, 0xc6, 0x82, - 0x15, 0x5d, 0x06, 0xc8, 0xa0, 0xbe, 0xe6, 0x88, 0x6c, 0xe9, 0x86, 0x4b, - 0x94, 0x77, 0x11, 0x4d, 0x53, 0x92, 0x1c, 0x86, 0x05, 0x62, 0xf5, 0xa6, - 0x83, 0xf2, 0x72, 0x80, 0x92, 0x80, 0x54, 0xab, 0x9d, 0x1c, 0x2c, 0xde, - 0xa9, 0x03, 0xda, 0x32, 0x51, 0x12, 0x1d, 0xbf, 0xc8, 0x5d, 0x2d, 0x91, - 0xe2, 0x95, 0x55, 0x5b, 0x65, 0x40, 0xb2, 0x91, 0x7b, 0xa4, 0xea, 0xe8, - 0xeb, 0x16, 0xc9, 0x97, 0x52, 0x89, 0x04, 0xc8, 0x37, 0xa8, 0x26, 0x86, - 0xe0, 0xbc, 0x3e, 0xdf, 0xe7, 0x98, 0x35, 0xd8, 0xf0, 0x9c, 0x2d, 0x48, - 0x30, 0x01, 0x18, 0xbd, 0xff, 0x92, 0xcb, 0xc3, 0x46, 0x1d, 0xbe, 0x2e, - 0x1d, 0x64, 0x5f, 0xe1, 0xd5, 0x06, 0xa6, 0x23, 0x81, 0x07, 0x6d, 0xa7, - 0xd4, 0xaf, 0x02, 0x41, 0x1b, 0x11, 0x3a, 0xb2, 0x88, 0x9f, 0x9f, 0x0d, - 0x9f, 0x7d, 0x36, 0xdc, 0xee, 0x3b, 0x24, 0x9d, 0xc1, 0xc0, 0x2c, 0xdd, - 0xfd, 0xc3, 0xc0, 0xf1, 0x4c, 0x6c, 0xa5, 0x47, 0x5f, 0x41, 0x7d, 0x01, - 0x2a, 0x7a, 0x42, 0xeb, 0x31, 0x95, 0xfc, 0x5f, 0xb2, 0x80, 0x9a, 0x26, - 0x56, 0x05, 0xf6, 0x04, 0x3e, 0x97, 0x3f, 0x8a, 0x2f, 0x1f, 0xb4, 0xf4, - 0x96, 0xae, 0xa3, 0xc1, 0x7b, 0xc3, 0xe8, 0xf6, 0x92, 0x7f, 0x2f, 0xb3, - 0x9e, 0xd6, 0xa9, 0xda, 0x79, 0xb5, 0x6b, 0x14, 0x8e, 0xcf, 0x87, 0xdb, - 0xc3, 0x9d, 0xad, 0x4f, 0x75, 0x65, 0x3b, 0x5f, 0x36, 0xdf, 0x7a, 0x92, - 0x5e, 0xe7, 0xe8, 0x68, 0x8b, 0x75, 0x91, 0x98, 0x0f, 0x88, 0xde, 0x52, - 0x26, 0xee, 0x69, 0x25, 0x54, 0x14, 0x6b, 0xb1, 0x1c, 0xcf, 0xa7, 0x2f, - 0x92, 0xd7, 0xe6, 0x47, 0x18, 0xa4, 0x7d, 0x60, 0x5d, 0x86, 0xa8, 0x03, - 0x4e, 0x87, 0x48, 0x12, 0x0b, 0x59, 0xdc, 0xa4, 0x5f, 0x9f, 0xed, 0x9a, - 0xa6, 0xef, 0x53, 0x2d, 0x39, 0x34, 0xcd, 0xaf, 0xf2, 0x26, 0x9a, 0xe8, - 0x21, 0xaf, 0x3a, 0x07, 0x17, 0xed, 0xfc, 0xce, 0xee, 0xe7, 0xc9, 0x38, - 0x6f, 0x92, 0x77, 0x87, 0x2f, 0xb8, 0xe4, 0x7d, 0xbd, 0x9c, 0x2b, 0x7d, - 0x6a, 0x85, 0x18, 0x14, 0xef, 0x5a, 0xef, 0x5e, 0x14, 0x66, 0xe0, 0xb3, - 0x7c, 0x42, 0x49, 0x83, 0xfd, 0x56, 0xf9, 0xa8, 0x4b, 0x35, 0x68, 0x7a, - 0xd5, 0x98, 0xec, 0x49, 0xa2, 0x96, 0xc4, 0xa0, 0x1a, 0x51, 0xd5, 0xcd, - 0x1a, 0x98, 0xee, 0x6b, 0x2d, 0x95, 0xdd, 0x52, 0x0f, 0x3f, 0x6b, 0x9b, - 0x3d, 0x38, 0x26, 0x58, 0x11, 0x36, 0x07, 0x46, 0xfa, 0xbb, 0x0a, 0xa2, - 0x64, 0xe5, 0xde, 0x3e, 0xc6, 0xa3, 0x9c, 0x91, 0x20, 0x8f, 0x9f, 0xe0, - 0x71, 0x8b, 0x62, 0xe0, 0xb9, 0x30, 0xe8, 0x7c, 0xe6, 0x93, 0xe5, 0x8c, - 0x4a, 0x57, 0x86, 0x02, 0x0c, 0x22, 0x3e, 0x89, 0x2a, 0x15, 0x31, 0xa4, - 0x5a, 0x72, 0x85, 0xc3, 0xfd, 0x05, 0x45, 0xc5, 0x25, 0x3b, 0xc3, 0xfb, - 0xbe, 0x5f, 0x9e, 0x5b, 0x8a, 0x69, 0x51, 0x11, 0xee, 0xe0, 0xb2, 0x80, - 0x69, 0xbb, 0x33, 0x20, 0x6a, 0x9a, 0xc3, 0x11, 0x67, 0xe4, 0xda, 0xa9, - 0xf8, 0x4e, 0xdb, 0x35, 0x97, 0xc3, 0x55, 0x8a, 0x7a, 0x8c, 0x1e, 0xf5, - 0xe4, 0x7d, 0x60, 0x3d, 0x41, 0x04, 0x59, 0x31, 0x71, 0x91, 0x4f, 0x14, - 0xc9, 0x42, 0x8f, 0xa1, 0xc8, 0x2b, 0x12, 0x49, 0xab, 0x59, 0x44, 0xde, - 0x13, 0x61, 0x0d, 0x71, 0x6a, 0x07, 0x06, 0x21, 0xb0, 0x15, 0x8e, 0x2d, - 0x92, 0x45, 0x18, 0x90, 0x1c, 0xd1, 0x27, 0x59, 0xd4, 0x0a, 0x0e, 0x2e, - 0x8a, 0x18, 0x8d, 0x86, 0xc9, 0x02, 0x48, 0x62, 0xd1, 0x20, 0xe0, 0xe1, - 0xd0, 0x9b, 0xd5, 0xb1, 0x8a, 0x63, 0xb1, 0x29, 0x51, 0x9d, 0x9f, 0xad, - 0xb7, 0xc7, 0x27, 0x47, 0x9b, 0xc9, 0xdb, 0x0c, 0x08, 0x5e, 0x9d, 0x99, - 0x11, 0x03, 0xfc, 0x03, 0x7f, 0xa2, 0x3b, 0x24, 0x6a, 0x64, 0x2c, 0x87, - 0xca, 0x9a, 0x50, 0x21, 0x06, 0xf3, 0xb6, 0x41, 0xe0, 0xe5, 0x3c, 0x9f, - 0x12, 0xe1, 0x88, 0x5a, 0xcc, 0x49, 0x9d, 0x95, 0xd1, 0x15, 0x42, 0x94, - 0x96, 0xab, 0xda, 0xf6, 0xbd, 0x14, 0x74, 0x24, 0x80, 0x52, 0x0d, 0x5e, - 0x31, 0x3b, 0x4b, 0x23, 0x97, 0x78, 0x3b, 0xf5, 0x65, 0x72, 0xb9, 0xd3, - 0xd8, 0x59, 0xe0, 0x2a, 0xe4, 0xf9, 0x3f, 0x38, 0x3e, 0x19, 0x51, 0x21, - 0xf3, 0x72, 0x6a, 0x01, 0xbb, 0xb9, 0xb8, 0x1a, 0xcd, 0xd7, 0x67, 0x28, - 0x1e, 0x28, 0x59, 0x2c, 0x85, 0xf5, 0x8c, 0xf1, 0xc9, 0xe1, 0xb6, 0xf1, - 0x23, 0x0d, 0x58, 0x00, 0x77, 0x4a, 0x98, 0x6d, 0x66, 0x68, 0x63, 0xf7, - 0xb2, 0xa2, 0x89, 0xd0, 0x85, 0x0f, 0x0a, 0xd6, 0xf7, 0xfd, 0x01, 0x66, - 0xb6, 0x38, 0xea, 0x1c, 0x36, 0xb8, 0x5f, 0x68, 0x4c, 0x91, 0x54, 0x73, - 0xe0, 0x2c, 0xa5, 0xa0, 0x36, 0x63, 0x24, 0xee, 0x4b, 0xb8, 0xb9, 0x37, - 0x33, 0x23, 0xcb, 0x6f, 0xef, 0xed, 0xf8, 0xa5, 0x17, 0x0b, 0x29, 0x2b, - 0x4c, 0xf1, 0x58, 0x5b, 0xbf, 0x5f, 0xe4, 0xcd, 0xdf, 0x88, 0x34, 0xff, - 0xb6, 0x2c, 0x6e, 0x0c, 0x6d, 0xd5, 0x44, 0xc1, 0x83, 0x78, 0xf9, 0x67, - 0x39, 0x7d, 0xdf, 0x5b, 0xdf, 0x4b, 0xb7, 0x4e, 0x48, 0xab, 0xc2, 0x7d, - 0x2a, 0x3e, 0x7b, 0xa6, 0x8b, 0xd5, 0xd9, 0x44, 0x4e, 0xac, 0xc9, 0xc9, - 0xe3, 0x6b, 0x26, 0x4c, 0xb5, 0x84, 0x49, 0xf3, 0xeb, 0xc9, 0x70, 0x6c, - 0xb5, 0x63, 0x57, 0xc1, 0x3c, 0x66, 0x33, 0xa3, 0x0a, 0xe2, 0x2c, 0x14, - 0x5f, 0xdb, 0xfa, 0x83, 0xd0, 0x07, 0xc4, 0xab, 0x42, 0xf2, 0x21, 0x91, - 0xb3, 0x11, 0x41, 0x12, 0x6d, 0x99, 0x42, 0xa2, 0xe8, 0x9e, 0xa7, 0xf5, - 0xe8, 0xdc, 0x96, 0x9c, 0xbf, 0xa7, 0x85, 0x9c, 0x6a, 0x85, 0x2d, 0xd4, - 0x11, 0x26, 0xdd, 0xc1, 0x09, 0xf0, 0x09, 0xa4, 0x96, 0xf5, 0xe0, 0x5c, - 0x4e, 0x66, 0x25, 0xed, 0x0e, 0x59, 0x62, 0xbd, 0x95, 0xff, 0x77, 0x16, - 0x44, 0xe8, 0x32, 0x92, 0x93, 0x3e, 0x88, 0x44, 0x78, 0xf9, 0xd1, 0xed, - 0x9a, 0x82, 0x85, 0xfc, 0x26, 0x48, 0x38, 0xa7, 0x5e, 0x1b, 0x1c, 0xb8, - 0x6b, 0xb3, 0xb4, 0xe4, 0xc2, 0x8a, 0x02, 0x7b, 0x0e, 0xbc, 0x12, 0xbf, - 0x96, 0x5b, 0x1f, 0x9a, 0x63, 0x5b, 0xd6, 0x39, 0x2b, 0xc5, 0x2e, 0xfc, - 0xce, 0x53, 0xc2, 0xc3, 0x08, 0x1b, 0xcd, 0x4c, 0xb6, 0x60, 0x2f, 0x1c, - 0xe4, 0xa9, 0x96, 0x64, 0x0a, 0xd9, 0x88, 0x64, 0xfe, 0xc1, 0xec, 0x86, - 0x60, 0x07, 0x0f, 0x54, 0xd5, 0x5c, 0xf5, 0x64, 0xe9, 0xf8, 0x93, 0xa1, - 0x43, 0xa3, 0x71, 0x16, 0x54, 0xda, 0x68, 0xe3, 0x21, 0x6b, 0x36, 0x6d, - 0x4c, 0xb6, 0x04, 0xb5, 0xc5, 0xea, 0xf6, 0xf0, 0x49, 0xed, 0xe4, 0x61, - 0x92, 0x02, 0x2a, 0x2f, 0x31, 0x6a, 0x22, 0x5d, 0xd7, 0x15, 0x72, 0x95, - 0xc9, 0x4b, 0x22, 0x88, 0xd4, 0xab, 0x9a, 0xf3, 0x2f, 0xa5, 0x1b, 0xbe, - 0x94, 0xea, 0x58, 0xa8, 0x97, 0xe6, 0x9c, 0xf9, 0x26, 0x05, 0x2f, 0xfe, - 0x55, 0x74, 0x3e, 0x5b, 0x91, 0x4b, 0x78, 0x55, 0x4f, 0x5b, 0xeb, 0x75, - 0x05, 0xcf, 0xd1, 0x89, 0x9f, 0xe0, 0xcc, 0x66, 0x51, 0x07, 0xaa, 0xb9, - 0x6f, 0x8e, 0x46, 0xf0, 0x08, 0xe5, 0x78, 0xf0, 0x3a, 0x06, 0xd3, 0xd1, - 0xfc, 0xbe, 0xb9, 0x21, 0x2f, 0xb5, 0x9e, 0xb7, 0xaa, 0xc6, 0x74, 0x52, - 0xeb, 0x38, 0x5b, 0x12, 0x3b, 0x9e, 0x52, 0xd6, 0x44, 0xf7, 0x98, 0x3d, - 0x38, 0x78, 0x30, 0xce, 0x3e, 0x41, 0xdc, 0x3b, 0x9f, 0x58, 0x7f, 0x4c, - 0x7e, 0x85, 0xb8, 0xd5, 0x93, 0x45, 0xa5, 0x6d, 0x75, 0x44, 0xb7, 0x16, - 0x39, 0x74, 0x44, 0x7b, 0x02, 0xbe, 0x35, 0x60, 0x32, 0x96, 0x16, 0x6a, - 0x99, 0x33, 0x76, 0x17, 0x2a, 0x31, 0x8b, 0x81, 0x1f, 0x69, 0xf1, 0x1c, - 0xfa, 0x99, 0xd8, 0x9a, 0xb8, 0x2b, 0x4a, 0xdd, 0x22, 0xcf, 0xf3, 0x3a, - 0xbd, 0xbf, 0x1f, 0xd6, 0x19, 0x97, 0x6c, 0xad, 0xeb, 0x19, 0x72, 0x4a, - 0xdb, 0x35, 0x6e, 0x07, 0xdf, 0x4a, 0x81, 0xeb, 0xcb, 0xfc, 0x8a, 0x42, - 0x13, 0xf1, 0x6f, 0x2c, 0x83, 0x5e, 0x73, 0xe7, 0xa5, 0x4e, 0xb0, 0x7b, - 0xd0, 0xb1, 0x4b, 0xe0, 0x57, 0x49, 0x7c, 0x16, 0x73, 0x4d, 0x01, 0xc5, - 0x9b, 0x84, 0xa9, 0x39, 0xf4, 0xb6, 0xa4, 0x60, 0xe4, 0x5e, 0x9a, 0x01, - 0x76, 0xca, 0xf6, 0xc1, 0xd7, 0x3e, 0x96, 0xc3, 0xb5, 0xcb, 0xb2, 0x7e, - 0x57, 0x05, 0x94, 0xd2, 0xe8, 0x2a, 0x1c, 0x64, 0x45, 0xdb, 0x94, 0xc1, - 0xcc, 0x92, 0x35, 0x30, 0x4a, 0x1a, 0xd0, 0xe7, 0x55, 0x29, 0xef, 0xaa, - 0x80, 0x5c, 0xff, 0xd3, 0x1f, 0x41, 0xb0, 0x6f, 0xa7, 0x0b, 0x2d, 0xf7, - 0xc8, 0xda, 0x78, 0x5e, 0x39, 0xff, 0x41, 0x6d, 0xd5, 0x6b, 0xc7, 0x96, - 0xfc, 0xa2, 0x68, 0x2b, 0x16, 0x04, 0xf3, 0xe7, 0xb2, 0x68, 0x0e, 0x86, - 0x6e, 0x8c, 0x35, 0x37, 0x32, 0xa5, 0x11, 0x5d, 0x21, 0x91, 0xb0, 0x6a, - 0xae, 0x80, 0x22, 0x02, 0x85, 0x5f, 0xc7, 0xf3, 0x56, 0x4e, 0x28, 0x3f, - 0xd7, 0xda, 0x05, 0x19, 0xa3, 0x61, 0x02, 0xa9, 0x22, 0x04, 0xaa, 0x73, - 0xc5, 0x9e, 0xcd, 0x58, 0x62, 0x4c, 0xc4, 0x8f, 0xf6, 0x51, 0x04, 0x30, - 0x0e, 0x7c, 0x36, 0x52, 0x65, 0x7d, 0x2d, 0x81, 0xc8, 0x66, 0x9d, 0x6b, - 0x29, 0x50, 0xcf, 0x63, 0x8d, 0x80, 0xfe, 0xf2, 0x90, 0x13, 0x87, 0x02, - 0x53, 0x4b, 0xb0, 0xbd, 0xb7, 0x5f, 0xd6, 0xec, 0x5a, 0x0f, 0x59, 0x38, - 0xc8, 0x9c, 0x6c, 0xd0, 0x9d, 0x6c, 0xdb, 0x2c, 0x0d, 0xd3, 0x98, 0x91, - 0xc9, 0xef, 0x4a, 0x19, 0x17, 0xa7, 0x87, 0x92, 0x9b, 0x4d, 0x3b, 0x01, - 0xab, 0x7e, 0x62, 0x74, 0x76, 0x70, 0x36, 0x1d, 0xc7, 0x1b, 0x03, 0x66, - 0xda, 0xd4, 0x6e, 0xcb, 0xe3, 0x59, 0x94, 0x99, 0xe7, 0x53, 0xe2, 0xb0, - 0x4d, 0x75, 0x40, 0xf8, 0x7b, 0xda, 0x7e, 0x4e, 0x48, 0x27, 0x2c, 0xe8, - 0xc7, 0x77, 0xae, 0x04, 0x94, 0x73, 0x2c, 0x3a, 0x81, 0xd4, 0xf1, 0xdf, - 0xba, 0x13, 0x89, 0x06, 0xa9, 0x4b, 0x94, 0x90, 0x56, 0x7a, 0xe9, 0x36, - 0xc7, 0x30, 0x3c, 0x89, 0xbb, 0x9a, 0xc0, 0x75, 0x5d, 0xda, 0xf4, 0x5e, - 0x92, 0xfc, 0xf4, 0x53, 0x3f, 0x21, 0x08, 0xa0, 0x9f, 0x8c, 0x82, 0xf0, - 0x93, 0x21, 0xb9, 0x9f, 0xb8, 0x34, 0xcd, 0x4f, 0xb7, 0x86, 0x6b, 0xaf, - 0x0a, 0x58, 0xf7, 0xaa, 0x90, 0xa0, 0x62, 0x20, 0xb8, 0x95, 0x14, 0x60, - 0x22, 0x8b, 0x32, 0xa7, 0x88, 0xfa, 0x40, 0x44, 0x31, 0xdc, 0x64, 0xb3, - 0x33, 0xcb, 0x79, 0xc1, 0xe2, 0xba, 0xb0, 0x1a, 0x70, 0x01, 0xb0, 0x8a, - 0xf5, 0x3f, 0xae, 0xbb, 0xbd, 0xf1, 0x6a, 0x3a, 0x89, 0x52, 0x43, 0x0f, - 0x06, 0x06, 0x22, 0x66, 0x05, 0x0d, 0x17, 0x5b, 0x65, 0x0b, 0x0f, 0x1d, - 0x6e, 0x68, 0x01, 0xa7, 0x64, 0x8d, 0xb9, 0x43, 0x1d, 0x36, 0x50, 0x0e, - 0x6f, 0x30, 0x19, 0x92, 0x16, 0xd7, 0x0f, 0x10, 0xc2, 0x02, 0x01, 0xb8, - 0xc8, 0xda, 0xa7, 0x25, 0x9e, 0xd3, 0xa4, 0x2c, 0xd3, 0xe5, 0x9b, 0x59, - 0xbc, 0x91, 0x16, 0xdb, 0x35, 0xc3, 0x59, 0x1f, 0xac, 0xb7, 0x71, 0x00, - 0x57, 0x14, 0xe0, 0x73, 0x90, 0x3e, 0x5c, 0x80, 0x2f, 0x9a, 0xd6, 0xc0, - 0x0e, 0x3e, 0x4e, 0x7c, 0x1b, 0x33, 0x83, 0xb6, 0x66, 0x6b, 0x78, 0x15, - 0x54, 0xb1, 0x94, 0xfe, 0x55, 0xd7, 0x09, 0xcd, 0xb8, 0x30, 0x0e, 0x31, - 0x84, 0xbf, 0xce, 0x25, 0x6f, 0xfc, 0x0c, 0xc0, 0x01, 0x79, 0x74, 0xac, - 0xdb, 0x0d, 0xe5, 0xf1, 0x4a, 0x4e, 0x74, 0xc9, 0x8d, 0x1a, 0xf1, 0x10, - 0xe1, 0xd2, 0xfa, 0x26, 0x8d, 0xa3, 0x64, 0x8b, 0x24, 0xb9, 0xf3, 0xc1, - 0x62, 0x93, 0x51, 0xd9, 0xe7, 0xe2, 0x15, 0x56, 0xf7, 0x48, 0x5c, 0xc5, - 0xad, 0xa6, 0x8c, 0xb8, 0xfc, 0x02, 0x45, 0x84, 0xc6, 0xf3, 0x26, 0xe9, - 0xad, 0xbc, 0x06, 0x7b, 0xd1, 0xfa, 0x6e, 0x2a, 0xff, 0x53, 0x42, 0xe7, - 0x8d, 0xa0, 0xdc, 0x89, 0x84, 0xbc, 0xa1, 0xd7, 0xf9, 0xdf, 0xf5, 0x0a, - 0xdf, 0x14, 0x0b, 0x0c, 0xdb, 0xbd, 0x56, 0xa0, 0xa3, 0xf9, 0x37, 0xa4, - 0xc5, 0xa4, 0xc8, 0xe1, 0x01, 0x30, 0xef, 0x2d, 0x8b, 0xa9, 0xea, 0xf3, - 0x16, 0x4e, 0x6d, 0x35, 0xe3, 0xa5, 0xdc, 0x4c, 0xea, 0x51, 0x4c, 0x6d, - 0x9a, 0x4e, 0x62, 0x8b, 0x38, 0xc1, 0xac, 0x25, 0xa9, 0x1f, 0x24, 0x2d, - 0x12, 0x42, 0x53, 0xb0, 0x30, 0x3b, 0x9b, 0x36, 0xe9, 0x1c, 0x35, 0x84, - 0x11, 0x43, 0x9e, 0x8b, 0x25, 0xb9, 0x77, 0x5d, 0x32, 0x72, 0x44, 0x6f, - 0x2f, 0x39, 0x6e, 0xc4, 0x3d, 0xe4, 0xcd, 0x32, 0xbc, 0x22, 0x81, 0xcb, - 0xf1, 0xcd, 0xe9, 0xbb, 0x23, 0x1b, 0xcc, 0xca, 0x5a, 0x3e, 0x7d, 0x12, - 0xc5, 0x0e, 0x1a, 0x22, 0x26, 0x41, 0xd3, 0x81, 0xfb, 0x61, 0xc9, 0x12, - 0x5e, 0x22, 0xa3, 0xcb, 0x2f, 0xee, 0x96, 0xf9, 0x74, 0x03, 0x19, 0xdb, - 0x1f, 0xde, 0x1f, 0xff, 0x30, 0x80, 0x15, 0x83, 0x91, 0xb5, 0x6a, 0x4d, - 0x5a, 0xd6, 0x94, 0x67, 0x36, 0x56, 0xcd, 0x23, 0xb9, 0xff, 0x72, 0xab, - 0xf9, 0xd0, 0x57, 0xc8, 0xbf, 0xc8, 0x0b, 0x76, 0x88, 0x70, 0x83, 0x9b, - 0x74, 0xfe, 0x0d, 0x0f, 0x05, 0x6e, 0x07, 0x67, 0x53, 0x47, 0x02, 0x73, - 0xdb, 0x2b, 0x91, 0xec, 0x9f, 0x9d, 0x1d, 0xee, 0x5f, 0xec, 0xdb, 0xb9, - 0x01, 0x27, 0x03, 0x4c, 0x05, 0xba, 0x29, 0xc9, 0x6d, 0x52, 0xc1, 0x73, - 0xfd, 0x4f, 0x94, 0xb3, 0xd1, 0xbd, 0xeb, 0xcf, 0xce, 0x4f, 0xc9, 0xc6, - 0xf0, 0xa7, 0x9f, 0xf6, 0x5d, 0x35, 0x5a, 0x54, 0x9b, 0x0b, 0x6b, 0x82, - 0xee, 0x6e, 0xd2, 0xf8, 0xee, 0xec, 0xf8, 0xc4, 0xc9, 0xcf, 0xd9, 0xd1, - 0xc9, 0x47, 0xda, 0xd0, 0x6a, 0x62, 0x05, 0x27, 0x5d, 0x0d, 0x2c, 0x00, - 0x2a, 0x31, 0xac, 0x9e, 0x48, 0xe9, 0x98, 0x98, 0xc2, 0x86, 0xe8, 0x62, - 0xcd, 0x8c, 0xbc, 0x6f, 0x84, 0xd6, 0x06, 0xdc, 0x83, 0x02, 0xa3, 0x88, - 0xbe, 0xa6, 0xb4, 0x52, 0x5d, 0x70, 0xac, 0xee, 0xf6, 0x38, 0x78, 0x48, - 0x66, 0x00, 0x1c, 0xcc, 0x59, 0x72, 0x8d, 0xa1, 0xa1, 0x8c, 0xd6, 0x55, - 0x19, 0x0a, 0xce, 0x0e, 0x7b, 0x23, 0x0c, 0x9d, 0x2b, 0x3d, 0x0e, 0x43, - 0xbb, 0xf1, 0x60, 0x30, 0x50, 0xab, 0x32, 0x4f, 0xdc, 0x7c, 0x10, 0x3c, - 0xd4, 0x68, 0x25, 0x15, 0xe5, 0xf3, 0x71, 0x36, 0xe1, 0xf3, 0x87, 0xae, - 0x2c, 0x2f, 0xf8, 0x01, 0xf2, 0x14, 0x6a, 0x32, 0x22, 0xff, 0x30, 0x34, - 0x37, 0xaa, 0x35, 0xde, 0x3c, 0x5a, 0x2f, 0xc9, 0x5e, 0x43, 0x7f, 0x6d, - 0xed, 0x0c, 0xb7, 0x7b, 0xe1, 0xe8, 0x11, 0xcc, 0x0a, 0xa3, 0x98, 0x02, - 0x86, 0x32, 0x06, 0x6c, 0xf9, 0xf4, 0x00, 0x99, 0x81, 0x19, 0x89, 0x74, - 0x61, 0x3a, 0x88, 0x8e, 0x65, 0x70, 0x1a, 0x18, 0x2f, 0xd9, 0x2b, 0xe0, - 0x38, 0x62, 0x51, 0x22, 0x6d, 0x36, 0x25, 0x6d, 0x08, 0x86, 0x98, 0x5e, - 0x7c, 0x81, 0x8b, 0x29, 0x3b, 0x36, 0x3b, 0xeb, 0xfc, 0x28, 0x4a, 0xf5, - 0xea, 0x8c, 0x32, 0x4b, 0x03, 0xf6, 0xe3, 0x95, 0xdc, 0xae, 0x65, 0x79, - 0xbf, 0xc9, 0x8c, 0x14, 0x38, 0x43, 0xfa, 0x14, 0xd9, 0xd1, 0x5e, 0x73, - 0xe1, 0xd0, 0x10, 0xff, 0xdb, 0x8f, 0x25, 0xc9, 0x24, 0x7a, 0x16, 0x6f, - 0xa4, 0xbe, 0x16, 0x97, 0x08, 0x46, 0x0c, 0x6e, 0xb4, 0x2a, 0xa3, 0xa0, - 0x4e, 0x73, 0x46, 0xa6, 0x41, 0x96, 0xb6, 0x04, 0x8a, 0x5a, 0xe7, 0xb0, - 0x1d, 0x05, 0x69, 0xdf, 0x63, 0x91, 0x73, 0x6d, 0x17, 0x2a, 0x1d, 0x9a, - 0x33, 0x9a, 0x1b, 0xd5, 0x7c, 0x19, 0xc8, 0x0b, 0xdd, 0xd7, 0x87, 0xc4, - 0x62, 0xf3, 0xda, 0xcf, 0x09, 0x82, 0x49, 0x87, 0x9e, 0x28, 0xad, 0xc5, - 0x0f, 0xc5, 0xf9, 0x70, 0xa8, 0x02, 0x23, 0xe6, 0xa5, 0x60, 0x93, 0xe1, - 0x12, 0xbf, 0x38, 0x38, 0xfb, 0xf8, 0xed, 0xd1, 0xd1, 0xd9, 0xf1, 0xe1, - 0xc9, 0x91, 0x54, 0xd6, 0xb1, 0x1f, 0xbd, 0xbf, 0xf8, 0xee, 0xc4, 0xe1, - 0x93, 0x89, 0x6b, 0xa8, 0xab, 0xee, 0x53, 0xc8, 0x11, 0x35, 0x77, 0x92, - 0x17, 0xcb, 0x7b, 0x2a, 0x97, 0x35, 0x21, 0x5a, 0xde, 0x3f, 0xfe, 0xa1, - 0x9f, 0x7c, 0x73, 0x36, 0xf8, 0xf0, 0x43, 0x80, 0x02, 0xe1, 0x05, 0xf9, - 0x1a, 0x26, 0xd4, 0x15, 0x2c, 0x6d, 0xcc, 0x2f, 0x6a, 0x4a, 0xb8, 0xb9, - 0xab, 0xfe, 0x1b, 0x29, 0xb3, 0xf8, 0x5b, 0x9b, 0x02, 0xc3, 0x30, 0x8d, - 0xc2, 0x03, 0xb0, 0xf5, 0xa4, 0x78, 0xb9, 0x7b, 0x41, 0x9e, 0x2f, 0xb7, - 0xa5, 0x2c, 0x6d, 0x87, 0x00, 0x1f, 0x92, 0xd7, 0xe6, 0x47, 0x0c, 0x98, - 0x67, 0x6b, 0x34, 0xfa, 0x86, 0xaa, 0xd9, 0x3b, 0x14, 0x48, 0x6b, 0x6b, - 0x19, 0x6a, 0x80, 0x1f, 0x99, 0x69, 0xc8, 0x4a, 0xe2, 0xac, 0x36, 0x15, - 0x61, 0x07, 0x86, 0x4e, 0x5a, 0x1f, 0x47, 0x32, 0xb7, 0xda, 0x4f, 0x16, - 0x97, 0x2c, 0x7f, 0xc3, 0x34, 0x45, 0xd3, 0xe9, 0x93, 0x00, 0x72, 0xe1, - 0x1c, 0xe9, 0xd9, 0x61, 0xc7, 0x26, 0x80, 0x56, 0x30, 0x41, 0x5e, 0xb6, - 0x48, 0x39, 0x57, 0x06, 0x15, 0x6a, 0xe1, 0x66, 0x9a, 0xd3, 0x70, 0x78, - 0x74, 0xde, 0x67, 0x50, 0x39, 0x1f, 0x50, 0xce, 0x41, 0x28, 0x8a, 0xb6, - 0x10, 0x96, 0xb2, 0xf0, 0x36, 0xf5, 0x9f, 0x87, 0x25, 0x77, 0x53, 0x8d, - 0x93, 0xd7, 0x33, 0xf3, 0xe2, 0x6c, 0x45, 0x06, 0x27, 0x17, 0xfa, 0x72, - 0x05, 0xcb, 0x3a, 0xb0, 0x21, 0x22, 0x0c, 0xb2, 0x69, 0x04, 0xed, 0xac, - 0xd4, 0xf8, 0x1a, 0x58, 0x9b, 0xe8, 0x85, 0x20, 0xdb, 0x6d, 0x1d, 0x41, - 0xa6, 0xeb, 0xfd, 0x64, 0x9d, 0xb0, 0x51, 0xe8, 0x5f, 0x30, 0x54, 0xa9, - 0xf2, 0xb6, 0xde, 0x0f, 0xb5, 0xda, 0x75, 0x59, 0xf6, 0x75, 0xaa, 0xb7, - 0x25, 0xf1, 0x14, 0x70, 0xb1, 0x23, 0x59, 0x80, 0x80, 0x2c, 0x31, 0x16, - 0x0e, 0x53, 0x61, 0x07, 0xb9, 0x8b, 0x31, 0xa9, 0x03, 0x6c, 0x70, 0xdb, - 0x5c, 0x3b, 0xd5, 0x30, 0x58, 0xb0, 0x08, 0x87, 0xb6, 0xf8, 0xf5, 0xa9, - 0xc3, 0x44, 0x6e, 0xe1, 0xd6, 0x6b, 0x4d, 0xba, 0xe7, 0x96, 0x08, 0xe2, - 0x25, 0x56, 0x38, 0xf4, 0xbe, 0xe1, 0x14, 0x39, 0xba, 0xe7, 0x29, 0xb2, - 0x1b, 0x80, 0x9d, 0xdf, 0x91, 0x7a, 0xa5, 0x0e, 0x2c, 0x86, 0x63, 0x94, - 0xd8, 0x9b, 0x0a, 0x02, 0x4e, 0x04, 0xdb, 0x09, 0x00, 0xf8, 0x79, 0xf3, - 0x3b, 0x92, 0xce, 0x0c, 0x80, 0xf1, 0x79, 0xdd, 0x0c, 0xc8, 0x1f, 0xb4, - 0x3a, 0x8d, 0x5a, 0x32, 0x03, 0xd4, 0x23, 0xe5, 0x01, 0xb6, 0x32, 0x6b, - 0xe0, 0xaa, 0x38, 0x08, 0xa1, 0xaa, 0xb5, 0xb6, 0xec, 0x20, 0x86, 0xc8, - 0x6f, 0xce, 0x5b, 0x76, 0xd7, 0x72, 0x9b, 0x7a, 0x00, 0x37, 0xd6, 0x4f, - 0x9a, 0x5f, 0xda, 0x32, 0x49, 0x15, 0x10, 0x64, 0x23, 0xc8, 0x43, 0xf3, - 0x74, 0x72, 0x6d, 0xe4, 0xb2, 0x01, 0x22, 0x31, 0x7d, 0x04, 0x14, 0x84, - 0x7d, 0x76, 0x07, 0x4a, 0xf9, 0x72, 0x12, 0xde, 0x15, 0x2f, 0x13, 0xe7, - 0xa5, 0x41, 0xd0, 0x10, 0x6d, 0x3c, 0x19, 0x83, 0x12, 0xda, 0x44, 0x58, - 0x28, 0x80, 0x65, 0x65, 0xc1, 0x0d, 0xad, 0xbf, 0x2e, 0xe2, 0x91, 0x12, - 0xe4, 0x42, 0x8f, 0xb9, 0x0b, 0x9c, 0x4d, 0x9a, 0xbc, 0x3f, 0x19, 0xb9, - 0x24, 0x10, 0xd6, 0x8b, 0xa5, 0x20, 0x9e, 0x20, 0x7f, 0x46, 0x3d, 0x0a, - 0x7e, 0xf8, 0xd3, 0xc9, 0x71, 0xa4, 0xe2, 0x26, 0xe9, 0xda, 0x7b, 0xe6, - 0x2c, 0x41, 0xde, 0x46, 0x00, 0xb8, 0xfa, 0x32, 0x15, 0x13, 0x96, 0xf6, - 0x80, 0xdd, 0xc4, 0x2c, 0x68, 0xe7, 0x95, 0x9f, 0x09, 0xd4, 0x6d, 0xce, - 0x8c, 0xf2, 0x2f, 0x6c, 0xa2, 0x94, 0x00, 0x13, 0x8d, 0x5b, 0xab, 0x97, - 0xe3, 0x81, 0x97, 0x9a, 0xcb, 0x0c, 0x01, 0xd0, 0x31, 0xf9, 0x84, 0x14, - 0xe7, 0x9b, 0x30, 0xda, 0x63, 0xe3, 0xec, 0xf4, 0xec, 0x99, 0x90, 0x93, - 0xe4, 0x51, 0xb7, 0x9c, 0x87, 0x93, 0x84, 0xa4, 0x1f, 0x41, 0x6a, 0xa2, - 0x67, 0x6d, 0xf4, 0x27, 0x53, 0x57, 0xac, 0x48, 0x17, 0xa3, 0xb4, 0xd3, - 0x52, 0x74, 0x16, 0x53, 0x5c, 0x00, 0xed, 0x88, 0x31, 0xca, 0xea, 0xb4, - 0x61, 0x84, 0x11, 0x34, 0x0c, 0x75, 0xde, 0x2b, 0x19, 0x4a, 0x74, 0x7a, - 0x8b, 0x08, 0xf5, 0xd8, 0x7a, 0xc3, 0xa6, 0xb0, 0x99, 0x20, 0x2b, 0x83, - 0xaa, 0x67, 0xe7, 0x53, 0xce, 0xac, 0xae, 0xdb, 0xa9, 0xd5, 0x9c, 0x27, - 0x80, 0x22, 0x17, 0xe4, 0xa3, 0x05, 0x08, 0xd9, 0xaa, 0x9d, 0xd4, 0xe4, - 0x78, 0x0a, 0xe5, 0x24, 0xbb, 0x07, 0x07, 0x72, 0xfe, 0xc0, 0x0e, 0x29, - 0x8e, 0x19, 0xb4, 0xc9, 0xfb, 0x7d, 0x9f, 0x29, 0x44, 0xe0, 0xdb, 0xbd, - 0xe2, 0x5b, 0x9c, 0x8a, 0x64, 0x74, 0x59, 0x23, 0xa1, 0xd9, 0x95, 0x93, - 0x95, 0x12, 0x17, 0x8f, 0xcc, 0x9b, 0xfc, 0x3b, 0xe6, 0x97, 0x98, 0x0f, - 0x1c, 0xdb, 0x45, 0x3e, 0xa6, 0x65, 0x91, 0xff, 0x9d, 0xe2, 0xb9, 0x98, - 0xd5, 0x5f, 0x52, 0x58, 0x9d, 0xba, 0x80, 0x10, 0x84, 0x90, 0x37, 0xeb, - 0x35, 0x62, 0x8b, 0x64, 0x51, 0x22, 0x47, 0xf9, 0x26, 0xf3, 0xe3, 0x20, - 0xdb, 0x02, 0xd9, 0xee, 0x4e, 0x2b, 0x59, 0xbe, 0x55, 0xe3, 0x22, 0xea, - 0xea, 0x47, 0x15, 0x84, 0x4d, 0xb5, 0x76, 0xca, 0xa2, 0x73, 0x3c, 0x45, - 0xed, 0x42, 0xcd, 0xa5, 0x2f, 0x0e, 0xb2, 0xbf, 0xca, 0x80, 0x49, 0xd5, - 0x1d, 0x17, 0xf2, 0x03, 0x10, 0x74, 0xa9, 0x48, 0x48, 0x4d, 0x62, 0xcb, - 0x6b, 0x6c, 0x90, 0x74, 0x3d, 0xf1, 0xc3, 0xd4, 0xba, 0x45, 0x2e, 0x22, - 0x38, 0x12, 0x69, 0xf2, 0xec, 0x87, 0x1f, 0x92, 0x16, 0x34, 0xd7, 0x66, - 0x6b, 0xe3, 0x3c, 0x6f, 0xad, 0xd8, 0x46, 0xcc, 0x85, 0x1b, 0xe5, 0x09, - 0x4a, 0x00, 0x42, 0x5c, 0xe4, 0x74, 0x85, 0x56, 0x3c, 0xb4, 0x51, 0xc0, - 0x4d, 0x79, 0x95, 0x61, 0x1b, 0x98, 0x6c, 0xfc, 0xb0, 0x8f, 0xf0, 0x32, - 0x76, 0xf1, 0x13, 0x7d, 0x1b, 0xb8, 0xc8, 0x6e, 0x66, 0x44, 0xa3, 0xe8, - 0x62, 0xd1, 0x5a, 0xd5, 0xf6, 0x3a, 0x31, 0x42, 0xc0, 0x5d, 0x31, 0x8c, - 0x55, 0x25, 0xe9, 0x88, 0x18, 0x36, 0x00, 0x58, 0x22, 0x7e, 0xb8, 0x3c, - 0x0b, 0x0a, 0xaa, 0x90, 0xbd, 0xcd, 0xab, 0x06, 0x2b, 0xb1, 0xc6, 0x41, - 0xc0, 0x00, 0x1b, 0xf7, 0x29, 0x34, 0x00, 0x13, 0xa4, 0x84, 0x1a, 0xe6, - 0x40, 0x49, 0x03, 0xff, 0x98, 0x7a, 0xff, 0xfc, 0xbd, 0xc2, 0xe3, 0x31, - 0xa3, 0xc3, 0x1d, 0x4a, 0x87, 0x30, 0x2a, 0xa7, 0xd8, 0x23, 0x11, 0x26, - 0x20, 0x99, 0x1a, 0x4c, 0xfc, 0x7f, 0x76, 0xe5, 0x40, 0x6d, 0xc8, 0x1b, - 0x93, 0x5e, 0x90, 0x5d, 0x41, 0x2e, 0xfd, 0xa6, 0x5a, 0x62, 0x85, 0x48, - 0x0f, 0xa1, 0x1c, 0xaf, 0xd2, 0xe1, 0xf2, 0x90, 0x48, 0xa9, 0xe1, 0x10, - 0x00, 0xbe, 0xe7, 0x38, 0xe3, 0x39, 0x20, 0x48, 0x42, 0x87, 0xaf, 0xce, - 0x8c, 0x41, 0x15, 0x60, 0x53, 0x6b, 0x3b, 0x14, 0x07, 0x83, 0x79, 0x7a, - 0x3f, 0xc0, 0x63, 0x75, 0x00, 0xc1, 0xdc, 0x0a, 0xa3, 0x67, 0xf0, 0xbb, - 0x72, 0x26, 0x65, 0x58, 0xec, 0x9a, 0xa9, 0xba, 0x68, 0x23, 0xd9, 0x25, - 0xfe, 0x90, 0x48, 0xc8, 0x9c, 0xba, 0xaf, 0x8f, 0x2e, 0xba, 0x47, 0x0b, - 0xf9, 0x3c, 0xa2, 0x7b, 0x23, 0x84, 0x9c, 0x8a, 0x7b, 0x7c, 0xb8, 0xd8, - 0x74, 0xf6, 0x95, 0x69, 0xd9, 0x31, 0x02, 0xda, 0xb0, 0xe6, 0x10, 0x86, - 0x90, 0x83, 0xb6, 0x85, 0xc3, 0x02, 0x67, 0xd0, 0x9e, 0x09, 0x2a, 0x1a, - 0xf4, 0x6c, 0x7b, 0xa7, 0x6f, 0x7e, 0xec, 0xc2, 0x8c, 0xf5, 0x6c, 0xfb, - 0x99, 0xf5, 0xb7, 0xe8, 0x53, 0x81, 0x75, 0x7e, 0xca, 0x2f, 0x3a, 0x0b, - 0xff, 0xb3, 0xfb, 0x7b, 0x7c, 0xdc, 0xef, 0x66, 0xa2, 0xd6, 0x52, 0x65, - 0xe8, 0x11, 0x57, 0x84, 0x0e, 0xdc, 0xad, 0x38, 0xec, 0x51, 0xcb, 0x82, - 0xe3, 0x68, 0xc8, 0x96, 0x80, 0xb8, 0xf0, 0xe1, 0x6a, 0x8c, 0xa6, 0xa6, - 0x95, 0xfb, 0x49, 0x6b, 0xeb, 0xa3, 0x34, 0x19, 0x72, 0xa1, 0xf9, 0x6b, - 0x3f, 0x12, 0x65, 0x1e, 0x30, 0x46, 0x7a, 0x46, 0xf2, 0x18, 0xcd, 0x2a, - 0xdc, 0xbb, 0x35, 0xb2, 0x00, 0x57, 0x32, 0x11, 0xc3, 0x2c, 0x85, 0x15, - 0xa9, 0x4a, 0xbd, 0x0a, 0xfd, 0x6c, 0x8f, 0x22, 0x2b, 0xcd, 0xa9, 0xc0, - 0x0a, 0xeb, 0xaf, 0xbb, 0x1c, 0xb5, 0xc9, 0x7f, 0x3c, 0xf3, 0x55, 0x0b, - 0x2d, 0xe5, 0x14, 0x85, 0x30, 0xdf, 0xe7, 0xc2, 0x42, 0x9d, 0x50, 0x7f, - 0x3a, 0x83, 0xb4, 0x0b, 0x94, 0x02, 0x42, 0x82, 0xb4, 0x24, 0x11, 0x3b, - 0xbf, 0x25, 0x2b, 0x55, 0x91, 0x52, 0x01, 0xb4, 0x43, 0x40, 0x8a, 0xd3, - 0x0a, 0x52, 0x03, 0x9e, 0xe3, 0x41, 0x22, 0x5e, 0x67, 0xde, 0x66, 0x71, - 0x94, 0x4a, 0x4e, 0x02, 0x7b, 0x6c, 0x57, 0xe0, 0x9c, 0x30, 0x98, 0xb3, - 0x91, 0xed, 0x6f, 0xd3, 0x19, 0x03, 0xf3, 0xd8, 0xe8, 0xea, 0x4a, 0xc7, - 0xc4, 0x51, 0xb9, 0x2e, 0xa8, 0x89, 0xde, 0xfb, 0xc3, 0x93, 0x19, 0x0d, - 0x4f, 0x09, 0xdd, 0x2e, 0x34, 0x27, 0x06, 0x29, 0xd4, 0x12, 0xc7, 0x1f, - 0x4d, 0xd2, 0x04, 0xbb, 0x18, 0x40, 0xef, 0x7e, 0x6d, 0x44, 0x8e, 0x6c, - 0xba, 0xca, 0x0b, 0x8e, 0x28, 0xc8, 0xf4, 0x3e, 0x9f, 0x2f, 0xe7, 0x2e, - 0xc1, 0x0e, 0xef, 0xd9, 0x6a, 0x96, 0x0e, 0xe0, 0x95, 0x2b, 0xa1, 0xc6, - 0x68, 0x04, 0xc8, 0x6c, 0x2e, 0xdb, 0x17, 0xaa, 0x21, 0xe0, 0xc3, 0x14, - 0xa0, 0x42, 0xa2, 0xe2, 0x64, 0x01, 0x44, 0x4e, 0xa2, 0x2e, 0x10, 0x13, - 0x94, 0x06, 0x72, 0x30, 0x95, 0xf9, 0x30, 0xd7, 0x46, 0xbe, 0xc8, 0x74, - 0xdb, 0xd7, 0xa7, 0x2c, 0x1e, 0x63, 0x13, 0xec, 0x50, 0x51, 0x49, 0x94, - 0x23, 0x6a, 0xf0, 0x05, 0x5d, 0x07, 0x41, 0x20, 0xc8, 0xd8, 0x34, 0x71, - 0x97, 0x4f, 0x9b, 0x6b, 0x00, 0x2e, 0x6a, 0x4c, 0x13, 0x50, 0x40, 0xac, - 0xb0, 0x11, 0x49, 0xba, 0x89, 0x22, 0x63, 0xcb, 0x16, 0x61, 0x51, 0x13, - 0xc6, 0x36, 0xa1, 0xb0, 0x6f, 0xec, 0x03, 0x22, 0x26, 0xb7, 0xd8, 0xf8, - 0x62, 0xd3, 0xf8, 0x8d, 0xcc, 0xb7, 0xbc, 0x24, 0x24, 0xc5, 0x40, 0x7a, - 0xd4, 0x3c, 0x99, 0xa1, 0x9e, 0x09, 0x24, 0xe5, 0xdd, 0x30, 0x98, 0xd9, - 0xb7, 0xa2, 0x8f, 0x32, 0xe0, 0x14, 0x8e, 0x3f, 0x67, 0x69, 0x90, 0x7d, - 0x3e, 0xb9, 0xc9, 0x67, 0x81, 0x4d, 0x02, 0xbd, 0x9b, 0x6b, 0x6b, 0x7d, - 0xce, 0x29, 0x6e, 0xef, 0xd6, 0x25, 0x06, 0x84, 0x30, 0xd1, 0x32, 0x89, - 0xe7, 0xec, 0x0b, 0x36, 0xe2, 0xfa, 0x15, 0x77, 0xf3, 0xb5, 0x7b, 0xa8, - 0xd3, 0x9c, 0x0b, 0x01, 0x55, 0x23, 0x75, 0xbd, 0x97, 0xec, 0x6e, 0x6f, - 0x7f, 0x6b, 0x58, 0xec, 0x1c, 0x9b, 0xb2, 0xf3, 0x75, 0x74, 0x85, 0x78, - 0x81, 0x40, 0x43, 0x02, 0x4b, 0x92, 0xde, 0xc2, 0x94, 0x2c, 0x8b, 0xc6, - 0x05, 0x44, 0x0d, 0x03, 0x98, 0x2e, 0x3d, 0xeb, 0x5f, 0x74, 0xe3, 0x6c, - 0xd2, 0x29, 0x19, 0x1a, 0xbb, 0x18, 0x0b, 0x73, 0xa4, 0x1f, 0xd0, 0xce, - 0x5f, 0x9b, 0xdf, 0x32, 0x8f, 0x28, 0xd0, 0x4f, 0x24, 0xe7, 0xdc, 0xc8, - 0x1d, 0x84, 0x5e, 0xb7, 0xac, 0xa8, 0x54, 0x22, 0x02, 0x2c, 0x01, 0xfd, - 0x04, 0xe3, 0x67, 0xde, 0xb0, 0xdb, 0xa6, 0x28, 0x19, 0x4b, 0x04, 0x64, - 0xd1, 0xb4, 0xa6, 0x13, 0xb1, 0xc7, 0x11, 0x05, 0xe3, 0x86, 0xd7, 0x18, - 0xe4, 0xc1, 0x5f, 0x89, 0x3f, 0x62, 0x00, 0x7c, 0x08, 0xad, 0x4f, 0x91, - 0x21, 0xda, 0xfc, 0x9c, 0xb4, 0xee, 0x64, 0x89, 0x2e, 0xa5, 0x84, 0x09, - 0x69, 0x9d, 0xb0, 0x56, 0x62, 0x8e, 0x84, 0xd5, 0xbb, 0x10, 0x40, 0x4b, - 0x1a, 0x08, 0xb7, 0x0c, 0xc3, 0xea, 0x8c, 0x1e, 0x98, 0x91, 0x46, 0x5d, - 0x06, 0x89, 0x30, 0xb3, 0x05, 0x2c, 0xb6, 0xf6, 0x32, 0xf2, 0x06, 0x45, - 0x19, 0xbe, 0x13, 0xa0, 0x85, 0x53, 0xa2, 0xc8, 0xef, 0x68, 0x64, 0x02, - 0xae, 0x1d, 0xc3, 0x68, 0xbc, 0x36, 0x04, 0xfc, 0xc5, 0x8f, 0x54, 0x3c, - 0xf0, 0xe7, 0x48, 0x99, 0xc4, 0x54, 0x32, 0xa5, 0xe8, 0x28, 0x69, 0x3e, - 0x52, 0xe5, 0xaa, 0x78, 0xa0, 0x1d, 0x4e, 0xe7, 0xd5, 0x62, 0x85, 0xae, - 0xf8, 0x49, 0x3c, 0xd6, 0x56, 0x8d, 0xe5, 0x1b, 0x35, 0x81, 0xc6, 0xb4, - 0x80, 0xf2, 0x18, 0xff, 0x4b, 0x1b, 0xa2, 0x7b, 0xb1, 0x60, 0xf6, 0x84, - 0x80, 0xad, 0x2e, 0xd5, 0x4c, 0x52, 0xba, 0x45, 0x6c, 0x10, 0x13, 0x9a, - 0xd0, 0xf9, 0x8e, 0x97, 0xf5, 0x03, 0x61, 0x02, 0xb1, 0x73, 0xa0, 0x2e, - 0x2d, 0x30, 0x22, 0x16, 0x10, 0xc3, 0x0f, 0xe3, 0xbe, 0x08, 0xb6, 0x86, - 0x83, 0x7c, 0x9b, 0xd2, 0xdc, 0xf2, 0x69, 0x55, 0x19, 0x51, 0x4d, 0xb6, - 0x5a, 0x92, 0xd4, 0xcc, 0xd8, 0x49, 0xf5, 0x81, 0x39, 0xc8, 0x5a, 0xfd, - 0x4d, 0xdb, 0xcb, 0x45, 0x24, 0x50, 0x8b, 0xb2, 0x56, 0x03, 0xa8, 0xb0, - 0x56, 0x4a, 0xb8, 0xaa, 0x1f, 0x2a, 0x6e, 0x3e, 0xa6, 0x01, 0x9d, 0x10, - 0x97, 0x6d, 0x2b, 0x4c, 0x92, 0x14, 0xc7, 0xc2, 0x90, 0xa0, 0x82, 0xab, - 0x4f, 0x61, 0x45, 0x16, 0x72, 0xf2, 0x67, 0x87, 0x7e, 0xc7, 0x45, 0x53, - 0x20, 0x56, 0x7b, 0xaa, 0x54, 0x4d, 0x81, 0x0a, 0xa4, 0x29, 0x3a, 0x91, - 0xbc, 0x8c, 0x62, 0x59, 0xd3, 0x33, 0x25, 0x2b, 0x95, 0x6c, 0x4d, 0x68, - 0xaa, 0x72, 0xba, 0x9c, 0xc0, 0xc2, 0x42, 0x21, 0x69, 0x54, 0xe9, 0x7c, - 0xcc, 0x60, 0x5c, 0x9a, 0x1a, 0x4e, 0x4d, 0x5b, 0x79, 0xb8, 0xd3, 0x1c, - 0x6c, 0x85, 0x52, 0xa9, 0x08, 0x0f, 0xe2, 0x0f, 0x36, 0xfd, 0xd2, 0x3d, - 0x43, 0x3e, 0x3f, 0x8b, 0xdb, 0xda, 0x85, 0x4a, 0x2e, 0x2e, 0x57, 0x80, - 0x4f, 0xb3, 0x77, 0x91, 0xd4, 0x81, 0xfb, 0xc6, 0xc6, 0x54, 0xa4, 0x5c, - 0xb0, 0x1b, 0x92, 0xea, 0x57, 0x14, 0x07, 0xdb, 0x69, 0xcf, 0x87, 0x54, - 0x9e, 0xf7, 0x45, 0x40, 0x7f, 0xd4, 0x41, 0xf4, 0x4e, 0xef, 0x6a, 0xf0, - 0xac, 0x42, 0x2d, 0xfd, 0xbc, 0xaa, 0xcc, 0x8d, 0x14, 0x2a, 0xc2, 0x4c, - 0xa9, 0x24, 0x21, 0xc7, 0xc9, 0x28, 0x91, 0xc8, 0x03, 0xc3, 0x73, 0x86, - 0x1e, 0x5a, 0x96, 0xdc, 0xcd, 0x24, 0xb5, 0x13, 0x0e, 0x10, 0x8d, 0x54, - 0xeb, 0x22, 0x8c, 0x29, 0x47, 0x22, 0xf9, 0x5b, 0x39, 0x16, 0x05, 0x8f, - 0xe4, 0xd2, 0x58, 0x02, 0xd9, 0x25, 0x42, 0xb1, 0x0d, 0x8f, 0x35, 0xfc, - 0x9d, 0x43, 0x36, 0x68, 0x40, 0x45, 0xd6, 0x10, 0xb7, 0x41, 0xa0, 0x36, - 0x2c, 0x3d, 0x89, 0x94, 0xa5, 0x46, 0xe4, 0x2d, 0xf1, 0x00, 0xb2, 0xb4, - 0x75, 0x9a, 0xfb, 0x6c, 0xf8, 0x6c, 0x97, 0xd2, 0x7b, 0x7c, 0x66, 0x94, - 0x4e, 0x48, 0xdb, 0xaa, 0x13, 0x4d, 0x3f, 0x41, 0x56, 0x98, 0x70, 0x73, - 0xa9, 0x01, 0xbf, 0x14, 0x1e, 0x35, 0x08, 0xfd, 0xa0, 0xa2, 0x72, 0x64, - 0x84, 0x17, 0x57, 0x63, 0x01, 0x4d, 0x7b, 0xcb, 0x2a, 0x9d, 0x3c, 0x28, - 0x16, 0xad, 0x0b, 0xc1, 0xa2, 0x26, 0x4a, 0xa0, 0x47, 0xf0, 0xd3, 0x01, - 0xc4, 0x7a, 0x61, 0x07, 0x41, 0x5c, 0x3b, 0xaf, 0x19, 0xca, 0xa6, 0x53, - 0xf6, 0x46, 0x8e, 0xef, 0x40, 0x5b, 0x5b, 0xa1, 0x77, 0xfd, 0xa6, 0x2c, - 0xf7, 0x2a, 0x2f, 0x06, 0x2a, 0xd0, 0xbf, 0x96, 0x5f, 0x1e, 0x13, 0x00, - 0xf1, 0x86, 0x55, 0x01, 0x84, 0xaf, 0xca, 0xed, 0xac, 0xd6, 0xa7, 0x16, - 0xdd, 0x3e, 0xa2, 0xc1, 0x58, 0xc4, 0x1e, 0x69, 0xd5, 0x69, 0x16, 0x5e, - 0xf4, 0x0e, 0x0a, 0x4a, 0x4e, 0xca, 0x99, 0x35, 0x87, 0x45, 0x43, 0xd0, - 0x85, 0xaa, 0xb9, 0x5e, 0x14, 0xaf, 0x87, 0x0c, 0xaa, 0x33, 0x9a, 0x64, - 0xbf, 0x01, 0x2c, 0xb8, 0x64, 0x27, 0x06, 0x26, 0xe9, 0xe3, 0x77, 0xfb, - 0x67, 0x46, 0x30, 0x22, 0xf3, 0x20, 0x6e, 0xd5, 0xd1, 0x3b, 0x82, 0xc4, - 0x61, 0x53, 0x79, 0x7b, 0xf2, 0x8c, 0x62, 0x07, 0x01, 0xc0, 0x2b, 0xda, - 0xd4, 0x95, 0xdb, 0xc6, 0x1a, 0x3c, 0xd8, 0x5e, 0x38, 0xa9, 0x42, 0x46, - 0xb6, 0x3e, 0x82, 0xad, 0xdb, 0x7d, 0xf6, 0xf9, 0xf3, 0x3e, 0x7e, 0x7b, - 0xb1, 0xfd, 0x6a, 0x57, 0x3c, 0x9a, 0xc7, 0x47, 0x17, 0x6f, 0xbb, 0x1a, - 0x47, 0x65, 0x94, 0x35, 0xfe, 0x39, 0xc8, 0xd2, 0xea, 0x3a, 0xad, 0x1a, - 0x0a, 0x46, 0x1a, 0xd4, 0xf3, 0x66, 0x31, 0xd8, 0xde, 0x1e, 0x36, 0x86, - 0xa1, 0xb4, 0xea, 0xd0, 0x3e, 0x1f, 0x6e, 0x6f, 0xfe, 0x9e, 0x04, 0x44, - 0x16, 0xba, 0x01, 0x2d, 0x71, 0xf2, 0x7a, 0x45, 0x5d, 0xe3, 0x0d, 0x5a, - 0xc1, 0x4d, 0x2f, 0x30, 0x2c, 0x55, 0x68, 0x39, 0xbf, 0x8a, 0x74, 0x5e, - 0xb7, 0x63, 0x57, 0x1d, 0x01, 0x44, 0x2e, 0xec, 0xae, 0x73, 0x49, 0xf2, - 0x3a, 0x36, 0xd8, 0x3c, 0xd8, 0x3c, 0x6c, 0x72, 0x69, 0xb2, 0x54, 0x21, - 0xdf, 0x21, 0x41, 0x8a, 0x79, 0x30, 0x9a, 0xa0, 0x5c, 0x0b, 0xca, 0x41, - 0x95, 0x11, 0xb2, 0x0f, 0x5f, 0x42, 0x12, 0xa8, 0xa0, 0x05, 0x76, 0xbb, - 0xb3, 0xf2, 0xcd, 0x87, 0x2f, 0xda, 0xb5, 0x9f, 0xb1, 0x26, 0xe0, 0x7b, - 0xbf, 0x60, 0x4d, 0xda, 0x4b, 0xe2, 0x6e, 0x3e, 0x16, 0x29, 0x61, 0xb7, - 0x16, 0x7f, 0x58, 0x88, 0x67, 0x50, 0x2b, 0x86, 0xf6, 0xe3, 0xc3, 0xdc, - 0xee, 0x0e, 0xf3, 0x1e, 0x15, 0xb6, 0x60, 0x23, 0x7e, 0x0d, 0xf1, 0xfd, - 0x53, 0x34, 0x3f, 0x3c, 0xbe, 0xa1, 0x1a, 0xcc, 0xa6, 0x07, 0x02, 0x8d, - 0xbb, 0x51, 0x15, 0x3b, 0xf8, 0x2f, 0x63, 0xc2, 0x16, 0x1e, 0x75, 0xd6, - 0xbe, 0xbc, 0x9d, 0x4e, 0x06, 0xba, 0x04, 0x9f, 0xee, 0xb7, 0x81, 0x5c, - 0x22, 0x42, 0x30, 0xea, 0x6c, 0x51, 0xe6, 0x07, 0x8e, 0x8b, 0x9f, 0xe6, - 0x87, 0x82, 0x0b, 0x30, 0x49, 0x66, 0xf7, 0x08, 0xad, 0x33, 0x4a, 0xfd, - 0xcb, 0x67, 0xa1, 0x09, 0xfc, 0xf4, 0xe2, 0x68, 0x0f, 0x7a, 0x88, 0x4b, - 0x68, 0x52, 0x33, 0x15, 0xc7, 0xc1, 0x51, 0x3e, 0x35, 0x41, 0x8f, 0x10, - 0x30, 0xa9, 0x3f, 0x3b, 0xae, 0xb9, 0x14, 0xc1, 0xa3, 0x41, 0x3d, 0x68, - 0x76, 0x7f, 0x34, 0x2b, 0xb1, 0xc1, 0xb4, 0xc4, 0xb0, 0x35, 0x2e, 0x34, - 0xb1, 0x22, 0x8e, 0x97, 0x9c, 0xd5, 0x8b, 0x44, 0x59, 0x26, 0xcf, 0x60, - 0xa1, 0x98, 0x38, 0x58, 0x05, 0xb6, 0x2e, 0x2f, 0x2a, 0xfc, 0x9a, 0x55, - 0x41, 0xc8, 0x03, 0xd4, 0x6e, 0xf2, 0xd8, 0xd0, 0x62, 0x41, 0xca, 0x70, - 0x09, 0x09, 0x5d, 0xe2, 0xad, 0x26, 0x8b, 0xe6, 0x29, 0xe2, 0x1d, 0xd9, - 0xe8, 0xca, 0x36, 0xe9, 0xf6, 0x1d, 0xca, 0x31, 0x4b, 0x62, 0x1c, 0xff, - 0x06, 0xef, 0x50, 0xac, 0x3a, 0x28, 0x5b, 0x11, 0xc5, 0x9d, 0xc2, 0xfe, - 0x1a, 0x50, 0xbb, 0x8e, 0x4e, 0x83, 0x5d, 0x27, 0xf9, 0x22, 0xf7, 0x30, - 0x50, 0x6d, 0x70, 0x67, 0x98, 0xf9, 0x4d, 0x5e, 0x11, 0x34, 0x61, 0x0f, - 0x53, 0xe9, 0xd2, 0xc7, 0xb9, 0xed, 0x72, 0xf8, 0xc8, 0xd1, 0xf0, 0x07, - 0xe6, 0x8f, 0xab, 0x48, 0x6c, 0x8b, 0x5c, 0x54, 0xc8, 0x9a, 0x9e, 0x37, - 0xbe, 0x3b, 0x7f, 0xfb, 0x57, 0x9b, 0xb3, 0xb7, 0xd9, 0x8f, 0x1b, 0xd3, - 0x75, 0x06, 0x7e, 0xe1, 0x75, 0x2b, 0x41, 0x88, 0x48, 0xd1, 0x5a, 0x3b, - 0xf7, 0x47, 0x48, 0x6c, 0xd3, 0x12, 0x91, 0x3c, 0x1b, 0x54, 0xf3, 0x94, - 0x0a, 0x30, 0x8b, 0xd8, 0xff, 0x6c, 0xf8, 0x02, 0x8e, 0xa8, 0xb7, 0x07, - 0x2f, 0x9e, 0xed, 0xee, 0x6c, 0x0e, 0xc3, 0xdb, 0xe0, 0xc9, 0x69, 0xb6, - 0xb7, 0x2c, 0xbb, 0x5f, 0x10, 0xc1, 0x6c, 0x1c, 0xfd, 0x70, 0xf6, 0xde, - 0x9b, 0xa0, 0xdd, 0x93, 0x40, 0xac, 0xf3, 0x67, 0xc8, 0x5e, 0x47, 0x3b, - 0x47, 0x67, 0xec, 0x0c, 0xa8, 0x82, 0xd3, 0xee, 0x43, 0xc4, 0x87, 0xde, - 0xdb, 0x2a, 0xa7, 0x43, 0xd0, 0xa3, 0xf5, 0xe8, 0x9d, 0x18, 0xf9, 0xd5, - 0x28, 0x26, 0xa7, 0x04, 0xfa, 0x94, 0xf5, 0xba, 0x35, 0xd7, 0x9f, 0x87, - 0xfc, 0x4d, 0x0c, 0xd8, 0x50, 0x27, 0x23, 0x8a, 0xa4, 0xf2, 0x34, 0x07, - 0x6a, 0x61, 0x35, 0x01, 0x52, 0x80, 0xac, 0xf1, 0xb6, 0x16, 0x4d, 0xc6, - 0x86, 0x65, 0x18, 0x95, 0x27, 0x00, 0x81, 0xb1, 0x6e, 0x1b, 0xb9, 0x4f, - 0xfb, 0x8f, 0x40, 0x6a, 0xaa, 0xc4, 0xec, 0x4a, 0xc7, 0x84, 0xb5, 0xc6, - 0xac, 0x89, 0xdb, 0x0e, 0xa8, 0xa6, 0x1c, 0x1c, 0x23, 0x52, 0xd4, 0xcb, - 0x6a, 0xba, 0x9c, 0x9b, 0xf9, 0x7f, 0x65, 0x13, 0x79, 0x24, 0xf7, 0x80, - 0x35, 0xf6, 0x48, 0xb2, 0x40, 0xc6, 0x8e, 0xdf, 0x17, 0xdb, 0xad, 0xf6, - 0x86, 0x58, 0x05, 0x7f, 0x98, 0x14, 0xa6, 0xbd, 0x63, 0xa3, 0xb2, 0x49, - 0xfb, 0x87, 0x75, 0xb0, 0x6b, 0x73, 0xa3, 0x5b, 0xfb, 0xf7, 0x94, 0x2a, - 0xb2, 0x26, 0x25, 0xc9, 0xff, 0x89, 0xec, 0xf7, 0xc6, 0x87, 0xab, 0x64, - 0x2f, 0x3d, 0x97, 0x8c, 0x45, 0x9d, 0x2b, 0xba, 0xff, 0x85, 0x41, 0x12, - 0x3c, 0x50, 0x48, 0x5b, 0xef, 0xa4, 0x17, 0xcd, 0xc9, 0xd9, 0x00, 0x8b, - 0xb4, 0x29, 0xc0, 0x2c, 0xff, 0x3d, 0x4f, 0x36, 0x20, 0x96, 0x7d, 0xfe, - 0xe2, 0xf9, 0x26, 0x54, 0x7e, 0x1b, 0xa1, 0xb3, 0x19, 0x71, 0xbe, 0x61, - 0xd5, 0x96, 0xb5, 0x4d, 0x36, 0x9e, 0xe7, 0x28, 0xbb, 0x04, 0x3a, 0x77, - 0x69, 0x0c, 0xc8, 0xa4, 0x36, 0x27, 0x00, 0x16, 0x25, 0x89, 0x44, 0x08, - 0xec, 0x59, 0x08, 0x07, 0xe2, 0xaa, 0x4d, 0xc9, 0x86, 0x1c, 0x0e, 0x77, - 0x63, 0xd8, 0x34, 0x6f, 0x8e, 0x3d, 0xc7, 0xf5, 0x60, 0xd3, 0x18, 0x36, - 0xc9, 0x06, 0x16, 0xb3, 0x07, 0x43, 0xd7, 0xf0, 0xea, 0xa1, 0xa1, 0xf2, - 0x57, 0xe9, 0x5d, 0x44, 0xec, 0x0a, 0x10, 0x8b, 0xbf, 0xdc, 0x75, 0x49, - 0x0c, 0xb2, 0xd0, 0xc8, 0xaf, 0x9c, 0x89, 0x41, 0xb7, 0xa7, 0x5d, 0x48, - 0x0e, 0xc9, 0x05, 0x2c, 0x14, 0xed, 0xbf, 0xb6, 0x20, 0xf1, 0x3c, 0xae, - 0xfe, 0x58, 0x60, 0x6d, 0x9b, 0x67, 0x73, 0x85, 0x08, 0xe6, 0x5b, 0xbd, - 0xac, 0x5c, 0x19, 0x17, 0xb6, 0xe7, 0xf0, 0x15, 0x8d, 0xe0, 0xc0, 0x55, - 0x78, 0x0b, 0xae, 0x0a, 0xb0, 0x80, 0x03, 0xb4, 0x06, 0xb6, 0xa2, 0x6c, - 0x83, 0x25, 0x36, 0x3f, 0x6b, 0x57, 0xdc, 0x50, 0x88, 0x15, 0xd5, 0xdf, - 0x2d, 0x51, 0x86, 0xc5, 0x4c, 0xb8, 0xd3, 0xce, 0x32, 0xac, 0x18, 0x3c, - 0xd7, 0x33, 0x41, 0xba, 0x35, 0x54, 0x9b, 0x41, 0x98, 0x06, 0x92, 0x6c, - 0x60, 0xbc, 0x5b, 0x5b, 0x9b, 0x4f, 0x8e, 0x59, 0x1e, 0x7c, 0x6a, 0x8c, - 0x67, 0xac, 0x6e, 0xd0, 0xe2, 0x66, 0x0e, 0x95, 0xc7, 0x0d, 0x82, 0x3a, - 0xcd, 0x91, 0x18, 0x4b, 0xf4, 0xc3, 0xf1, 0x82, 0x36, 0xe0, 0xda, 0x48, - 0x42, 0xa1, 0x5d, 0x8a, 0xa7, 0xcc, 0xb3, 0x6b, 0x4f, 0x5c, 0x04, 0x57, - 0xce, 0x01, 0x17, 0x9e, 0xa0, 0x59, 0x10, 0x64, 0xbe, 0x9e, 0x05, 0x35, - 0xb9, 0x8a, 0x4e, 0x5d, 0x0a, 0x6f, 0x7e, 0xac, 0x09, 0x39, 0xa7, 0x32, - 0x1f, 0x0b, 0xc6, 0xbc, 0x50, 0xe7, 0x73, 0xc8, 0x8a, 0xf5, 0xe9, 0x4e, - 0x91, 0xb6, 0x10, 0xe1, 0x89, 0x1f, 0xa4, 0xc3, 0xa3, 0x0e, 0xe9, 0x90, - 0x36, 0x05, 0x6d, 0x42, 0x2b, 0x69, 0x71, 0x9b, 0x46, 0xcb, 0xbf, 0x71, - 0xf3, 0x66, 0xac, 0x36, 0xcd, 0x04, 0x73, 0x99, 0xf8, 0xc8, 0xea, 0x8c, - 0x03, 0x16, 0x58, 0xea, 0xc6, 0x9a, 0x69, 0x05, 0x32, 0x7c, 0xda, 0x5a, - 0xce, 0x3e, 0x1f, 0x52, 0xc4, 0xb0, 0xc7, 0x84, 0x60, 0x20, 0xe2, 0x3f, - 0x2a, 0xf6, 0x03, 0xf5, 0xc4, 0x0c, 0xab, 0x5d, 0x40, 0x9c, 0xb3, 0x86, - 0xc6, 0x76, 0xa1, 0x25, 0x28, 0x6d, 0xe8, 0xdd, 0xa0, 0x05, 0x59, 0x99, - 0x8a, 0xac, 0xa9, 0x26, 0x81, 0x61, 0x09, 0xe9, 0xa2, 0xec, 0xec, 0xa9, - 0xd9, 0x19, 0x49, 0x8b, 0x34, 0xc4, 0xc3, 0xa6, 0xfb, 0x8f, 0xf2, 0x4b, - 0x69, 0xb3, 0x0c, 0x36, 0xfd, 0x43, 0x11, 0x09, 0x26, 0x5f, 0xaf, 0x6d, - 0xf4, 0xbb, 0x04, 0x49, 0x11, 0x93, 0x64, 0x9d, 0x59, 0x25, 0xa0, 0xc4, - 0x79, 0xcb, 0x2d, 0x90, 0xf9, 0xc3, 0x22, 0x08, 0x2b, 0x9d, 0xd8, 0x48, - 0x2f, 0xce, 0x1c, 0x01, 0xc0, 0x01, 0x67, 0x55, 0xb8, 0xc0, 0x05, 0x28, - 0x07, 0x24, 0x05, 0xfb, 0xf8, 0x20, 0x5c, 0x88, 0x2b, 0x32, 0xba, 0xc0, - 0x88, 0x40, 0x86, 0x1b, 0xcc, 0x71, 0xc3, 0xdc, 0x0a, 0xc4, 0xcd, 0x9b, - 0xc5, 0xc6, 0xce, 0x26, 0xba, 0xd3, 0x9a, 0x24, 0x2b, 0xb2, 0x2c, 0xf9, - 0xaa, 0xd1, 0xe0, 0x2e, 0x2a, 0x43, 0xaa, 0x9e, 0x63, 0x78, 0x70, 0x09, - 0x8b, 0x9c, 0xe4, 0x3a, 0x90, 0x51, 0x2a, 0xd9, 0xa1, 0x1a, 0x29, 0x46, - 0xfe, 0xaf, 0x08, 0x71, 0x32, 0xb6, 0xd2, 0x82, 0xb2, 0x08, 0x6a, 0xae, - 0x0e, 0xb7, 0x91, 0x5b, 0x39, 0x99, 0xaf, 0x07, 0x2d, 0x99, 0x6a, 0x56, - 0x6f, 0x36, 0x1d, 0x20, 0x8d, 0xf2, 0xaa, 0x2a, 0x43, 0x0c, 0x4c, 0xca, - 0xc0, 0x92, 0x1b, 0x84, 0x3d, 0x58, 0xd1, 0x32, 0xb5, 0x3d, 0x4a, 0x78, - 0xe9, 0xd9, 0x1b, 0xde, 0xcb, 0xa9, 0xe9, 0xfa, 0x15, 0x5a, 0x5b, 0x1a, - 0x90, 0xe9, 0x7e, 0xf2, 0xf7, 0x65, 0x6e, 0xc8, 0x9a, 0xf6, 0x16, 0xe1, - 0x8c, 0xc8, 0x9f, 0xc8, 0x6c, 0x10, 0x80, 0xe1, 0x1e, 0x14, 0xe7, 0xc0, - 0xb9, 0x58, 0x64, 0xcf, 0x86, 0x4e, 0xaf, 0x54, 0x16, 0x29, 0xc7, 0x0b, - 0x63, 0xb3, 0x0a, 0x04, 0x80, 0xbf, 0x2d, 0x45, 0xdc, 0x44, 0x24, 0x1f, - 0xc7, 0x76, 0xb0, 0xe4, 0x4c, 0xac, 0x9d, 0xa9, 0x60, 0x55, 0x51, 0x96, - 0xf5, 0xf9, 0x03, 0x5d, 0x64, 0xeb, 0xed, 0xea, 0x2c, 0xeb, 0x35, 0x19, - 0x04, 0x9b, 0x75, 0x5d, 0x5f, 0x84, 0xeb, 0x3d, 0x52, 0xe0, 0x69, 0x55, - 0xd7, 0x4c, 0xda, 0xdc, 0x85, 0x6b, 0x9d, 0x1b, 0x77, 0x47, 0xf0, 0x7d, - 0x9f, 0x23, 0xca, 0xc7, 0x4b, 0x0a, 0x38, 0xe9, 0x34, 0x7d, 0xc8, 0xdc, - 0x9a, 0xa5, 0x02, 0x7e, 0x42, 0x8a, 0xc7, 0x21, 0x20, 0x90, 0x33, 0x39, - 0x6a, 0xca, 0xff, 0x9b, 0x0f, 0xa9, 0x04, 0xa3, 0x20, 0x2f, 0xa2, 0xee, - 0x6b, 0x1d, 0x0a, 0x75, 0x4b, 0xae, 0x05, 0xdf, 0x6f, 0x03, 0x6b, 0x77, - 0xa2, 0x13, 0xb9, 0x1b, 0x8a, 0x41, 0xf1, 0x9b, 0x8f, 0x39, 0xc7, 0xf1, - 0x3a, 0x3c, 0xb6, 0xf0, 0x90, 0xb3, 0xe6, 0xcb, 0x37, 0x8f, 0x98, 0x56, - 0xa5, 0x09, 0x0b, 0x69, 0x4f, 0x90, 0x82, 0xd7, 0xcb, 0xe2, 0xc6, 0x0c, - 0x21, 0x0c, 0x7b, 0x56, 0x27, 0x47, 0x4e, 0x67, 0xdb, 0x10, 0x08, 0xc0, - 0xcc, 0x1c, 0x5c, 0x03, 0xb7, 0x40, 0x60, 0x54, 0xb7, 0x10, 0x4b, 0x82, - 0x12, 0x21, 0xb1, 0xd1, 0xc9, 0x75, 0xc7, 0xa3, 0xb2, 0x0b, 0xf8, 0x58, - 0x7e, 0xa1, 0x57, 0x3f, 0xa1, 0xc8, 0xae, 0x10, 0x0e, 0x21, 0xf2, 0x28, - 0x67, 0x39, 0x2a, 0xcc, 0x0a, 0x14, 0x05, 0x35, 0x74, 0x06, 0x47, 0x76, - 0x59, 0x73, 0x4d, 0x33, 0xd9, 0x56, 0xa2, 0x52, 0x1f, 0x1d, 0x30, 0x32, - 0x12, 0xe1, 0xc3, 0x83, 0x48, 0x75, 0xbd, 0x8b, 0x2e, 0x0a, 0x62, 0xed, - 0xe3, 0xc3, 0xe2, 0xb5, 0x7e, 0x0b, 0x21, 0x96, 0x91, 0x06, 0x39, 0x34, - 0xbf, 0x89, 0x60, 0x26, 0x9b, 0x23, 0xb1, 0x61, 0x74, 0x8c, 0x72, 0xb6, - 0xe4, 0xb2, 0x4e, 0x64, 0x14, 0xa3, 0x34, 0x8d, 0x4d, 0x3d, 0x4d, 0x7c, - 0xfe, 0xd8, 0x70, 0xc1, 0x35, 0xd2, 0xf8, 0x22, 0x88, 0x81, 0x76, 0x22, - 0xe8, 0xdb, 0xb7, 0xf9, 0x72, 0x8c, 0xae, 0x6a, 0xef, 0xa4, 0x04, 0x78, - 0xcd, 0x2d, 0x10, 0x81, 0x7a, 0x5b, 0x2a, 0x9b, 0x0d, 0x2c, 0x48, 0xaa, - 0x4c, 0xf8, 0xeb, 0x61, 0x6d, 0xaa, 0x24, 0x1a, 0xb8, 0x9a, 0x49, 0x7e, - 0xd9, 0x00, 0x28, 0x1c, 0xd4, 0xd9, 0xa3, 0x41, 0x12, 0x8f, 0xc4, 0x04, - 0x46, 0xd7, 0xda, 0x15, 0xc9, 0x46, 0x38, 0x8a, 0x88, 0xfd, 0x32, 0x34, - 0x91, 0xd6, 0x1f, 0x30, 0xaa, 0xf9, 0x92, 0x1c, 0x0d, 0x81, 0xad, 0xd9, - 0xec, 0xca, 0x6c, 0xc9, 0xe8, 0xdb, 0xe4, 0xb4, 0x76, 0x22, 0x7a, 0x3a, - 0xa6, 0xcd, 0x19, 0x3f, 0xd8, 0x79, 0x6a, 0xea, 0x3a, 0x12, 0xcd, 0x55, - 0x9f, 0x0e, 0xc9, 0x43, 0x1f, 0xeb, 0xf4, 0xf3, 0x9d, 0xf0, 0xd6, 0x80, - 0x2c, 0xd8, 0x11, 0xe2, 0x63, 0x6d, 0xdc, 0x08, 0x3b, 0x51, 0x26, 0xbb, - 0x8c, 0xd8, 0x4c, 0xed, 0x60, 0x54, 0x5c, 0x27, 0x9b, 0x40, 0xaa, 0xc5, - 0xb6, 0xd9, 0x95, 0xc1, 0xaf, 0x6b, 0xc6, 0x49, 0xd9, 0x4e, 0x70, 0x32, - 0x47, 0xa7, 0x04, 0xbc, 0x75, 0x1c, 0x24, 0xe5, 0x48, 0xea, 0x61, 0xbe, - 0xd7, 0xc7, 0x92, 0x8d, 0xd1, 0xd9, 0xfb, 0xa3, 0xaf, 0x4f, 0x37, 0x9f, - 0x72, 0x2d, 0x90, 0x6a, 0x0e, 0x97, 0x1d, 0x82, 0x51, 0x70, 0xac, 0x70, - 0xc0, 0x23, 0x2d, 0xb1, 0xdb, 0xaa, 0xbc, 0x7f, 0xf0, 0xda, 0x8c, 0x05, - 0xdd, 0xf5, 0x39, 0xcd, 0x93, 0xcf, 0x2b, 0x03, 0xc6, 0xd9, 0xe1, 0xff, - 0xd2, 0x80, 0x7f, 0x96, 0xc0, 0x70, 0xe9, 0x7c, 0x3d, 0x1a, 0x0d, 0xf6, - 0xcf, 0x8e, 0x71, 0x13, 0x8f, 0x46, 0xe6, 0x97, 0x55, 0x88, 0xd4, 0xe0, - 0x65, 0x14, 0x4a, 0xf3, 0x5d, 0x3f, 0xf1, 0xc2, 0xfb, 0xe5, 0x4e, 0xcc, - 0x58, 0x60, 0xb6, 0x21, 0xfe, 0x2e, 0xa8, 0x9f, 0x3a, 0xe8, 0x5e, 0xb7, - 0x67, 0xc7, 0x5b, 0xe8, 0x0b, 0x7e, 0x0d, 0xac, 0x43, 0x3c, 0xa6, 0x6f, - 0x19, 0xd6, 0x57, 0xa2, 0x55, 0x45, 0xc6, 0x06, 0xe8, 0x53, 0xd9, 0x47, - 0x6a, 0xc4, 0x4f, 0x72, 0x00, 0x2f, 0x31, 0xb6, 0x48, 0x15, 0x56, 0x2f, - 0x62, 0x8b, 0xf1, 0xcd, 0x15, 0x74, 0xbd, 0x63, 0xc2, 0x87, 0x85, 0xd6, - 0xd6, 0x22, 0x37, 0xe2, 0x15, 0xfb, 0x8b, 0xbb, 0xc6, 0xbd, 0xf5, 0xc1, - 0x32, 0xd9, 0x43, 0x89, 0xcb, 0xac, 0xa0, 0xe2, 0xb5, 0x2d, 0xab, 0x99, - 0xb0, 0x60, 0x28, 0x0c, 0xf6, 0x42, 0x75, 0x69, 0x97, 0x66, 0x84, 0xcb, - 0xf8, 0xe8, 0xcc, 0x09, 0x25, 0xe9, 0x8a, 0xbd, 0x81, 0x1c, 0x9c, 0x3d, - 0xfd, 0xa7, 0x00, 0xce, 0xfa, 0x47, 0xc2, 0xcb, 0x1a, 0x7b, 0xec, 0x9a, - 0x17, 0x26, 0xe3, 0x32, 0xcc, 0xc4, 0xad, 0x61, 0x23, 0xc0, 0x2f, 0x0e, - 0xce, 0xbc, 0x30, 0x80, 0x7e, 0x68, 0xf5, 0x70, 0xe0, 0x2f, 0x92, 0xf5, - 0x5a, 0xd8, 0xd6, 0xe7, 0xc3, 0xc7, 0x2a, 0x06, 0x36, 0x9a, 0x50, 0xb1, - 0xea, 0xf6, 0xf3, 0x2f, 0x3f, 0x89, 0x45, 0x5d, 0x7d, 0xf5, 0xb9, 0x19, - 0x78, 0xb7, 0x9f, 0xfd, 0xb0, 0xb3, 0x34, 0x82, 0xd3, 0x94, 0x4f, 0xa3, - 0x99, 0x5a, 0xb2, 0x40, 0x5a, 0x64, 0x44, 0x96, 0x88, 0xf0, 0x75, 0x14, - 0x0b, 0xeb, 0xf8, 0xd0, 0x0c, 0x86, 0xe4, 0x30, 0x52, 0x40, 0xbf, 0x7a, - 0xb0, 0xf9, 0xe7, 0xa1, 0x00, 0xe9, 0xe2, 0x88, 0xf8, 0x3e, 0x41, 0x45, - 0x6c, 0xaf, 0x5c, 0x3a, 0x21, 0xe9, 0x79, 0x88, 0xd7, 0x12, 0x21, 0x25, - 0x38, 0x6c, 0x71, 0x00, 0x57, 0x22, 0x0e, 0x04, 0x1d, 0x5e, 0x2f, 0xb9, - 0x1e, 0xa6, 0xa0, 0xfc, 0xd8, 0x4a, 0x74, 0x55, 0x06, 0x47, 0x28, 0x0d, - 0xd8, 0x1b, 0x71, 0x50, 0xdc, 0x8e, 0x55, 0x72, 0x73, 0xe6, 0xe7, 0x92, - 0x82, 0x30, 0xae, 0xca, 0x1b, 0x73, 0x5a, 0xe9, 0x3d, 0xc8, 0xcd, 0xb4, - 0xf6, 0x2c, 0xc3, 0xa9, 0x6e, 0x69, 0x6e, 0x94, 0xa9, 0x75, 0x8c, 0x46, - 0x22, 0x50, 0x09, 0xd5, 0x5f, 0x92, 0xf5, 0x9c, 0x2c, 0xc4, 0x70, 0xeb, - 0xc8, 0xa7, 0x57, 0x80, 0x4e, 0x58, 0xd0, 0xa9, 0xae, 0xb4, 0x77, 0x4d, - 0x86, 0x1e, 0x6e, 0xc1, 0xc9, 0xff, 0xe7, 0xd1, 0x90, 0x25, 0x0b, 0x9f, - 0x86, 0x22, 0x7b, 0xde, 0x22, 0x26, 0x66, 0xfa, 0xaf, 0x0d, 0x55, 0x31, - 0x37, 0x27, 0xd3, 0x5c, 0xd7, 0x36, 0x8c, 0x92, 0x13, 0x03, 0x07, 0x47, - 0x03, 0x33, 0x35, 0xb4, 0x11, 0x8a, 0x4a, 0xe1, 0x20, 0x8e, 0xa9, 0xab, - 0x90, 0x23, 0x30, 0xa0, 0x7d, 0x66, 0xc6, 0xa1, 0x98, 0x81, 0x14, 0x13, - 0x7b, 0x6b, 0xb3, 0x66, 0x05, 0x26, 0x41, 0xfb, 0x03, 0x24, 0xb2, 0xdc, - 0xab, 0xb3, 0xf6, 0xaf, 0x3e, 0xd0, 0x07, 0xfa, 0x0a, 0x54, 0x0a, 0xc6, - 0x8d, 0xb7, 0x71, 0x32, 0x1c, 0xee, 0x6a, 0xf3, 0x69, 0xa9, 0x66, 0x8b, - 0xcf, 0x33, 0x18, 0xa3, 0x34, 0x39, 0xa2, 0xa0, 0x97, 0x88, 0x9e, 0xc3, - 0x15, 0xb5, 0x72, 0x9b, 0xc1, 0x93, 0x0b, 0xc6, 0x25, 0x3b, 0x25, 0x44, - 0x71, 0x4c, 0xd5, 0xe1, 0x60, 0xa1, 0x90, 0xb8, 0x9e, 0x6a, 0x4c, 0xe7, - 0xab, 0x1b, 0xb6, 0xe8, 0x0b, 0x70, 0x80, 0x7e, 0x60, 0xf1, 0xe2, 0xdf, - 0xba, 0x38, 0xef, 0x7e, 0xc2, 0x26, 0x24, 0xa8, 0x44, 0x1c, 0x4c, 0x19, - 0x9b, 0x6c, 0xe2, 0x3d, 0xe6, 0xbf, 0xb2, 0xf7, 0xf9, 0x76, 0x5f, 0x38, - 0x3e, 0x59, 0xed, 0xfc, 0x67, 0x10, 0x84, 0x14, 0xaa, 0x11, 0x80, 0xe4, - 0x2b, 0x1b, 0xfb, 0x64, 0xb7, 0xd0, 0xc3, 0xab, 0xe1, 0xf3, 0xcd, 0x16, - 0xbd, 0x34, 0xb3, 0x79, 0x57, 0x2e, 0x49, 0xde, 0x5f, 0x9c, 0xbc, 0x4b, - 0x02, 0x9b, 0x00, 0x2b, 0xcc, 0xb1, 0xef, 0x02, 0x63, 0x27, 0x62, 0xb1, - 0x29, 0x98, 0xdc, 0x08, 0x8f, 0xf9, 0x55, 0xc1, 0x80, 0x47, 0xef, 0xf2, - 0x49, 0x55, 0xd6, 0xe5, 0x25, 0xbb, 0x33, 0x55, 0xb9, 0x36, 0x5f, 0x1c, - 0x1f, 0x8f, 0x92, 0xbb, 0x6c, 0xac, 0x99, 0x56, 0x41, 0x68, 0x61, 0xc3, - 0xe4, 0x43, 0xd7, 0x67, 0x95, 0x67, 0x0d, 0x49, 0x1a, 0x6a, 0xd4, 0xa3, - 0xcc, 0x66, 0x7a, 0x27, 0x1b, 0x64, 0x85, 0xd1, 0x37, 0x33, 0xa8, 0x6e, - 0x84, 0xdf, 0x3f, 0x03, 0x57, 0x32, 0x02, 0x77, 0x19, 0xb1, 0xec, 0xf2, - 0x00, 0x94, 0xa5, 0x08, 0xd8, 0x3b, 0xdd, 0x15, 0xe3, 0xb4, 0xb6, 0xa0, - 0x4e, 0x39, 0x8a, 0x6f, 0x90, 0xac, 0x21, 0xe6, 0x98, 0x9b, 0x1c, 0xe9, - 0xf3, 0x41, 0x5a, 0xb9, 0xd4, 0x75, 0xec, 0xd8, 0x23, 0x8a, 0x69, 0x59, - 0xc1, 0x49, 0xe2, 0x81, 0x14, 0x03, 0xdf, 0x7f, 0x89, 0xf0, 0x4f, 0x70, - 0xcd, 0x87, 0x88, 0xc4, 0x7e, 0x5d, 0x0a, 0x66, 0x06, 0xaf, 0x34, 0x31, - 0x26, 0x4e, 0x0d, 0x44, 0x62, 0x86, 0xe0, 0xbe, 0x72, 0x3d, 0x21, 0xe5, - 0x24, 0x4f, 0x48, 0x78, 0xba, 0x1f, 0x2e, 0x3b, 0x49, 0x8c, 0xed, 0x87, - 0xf9, 0xd5, 0x0a, 0xe8, 0x79, 0x1b, 0xef, 0xec, 0x89, 0x98, 0x34, 0x1a, - 0x61, 0x97, 0x2a, 0x59, 0x06, 0x05, 0x4e, 0x62, 0x30, 0x1b, 0x2d, 0xc9, - 0xd2, 0x50, 0xdb, 0xf0, 0x71, 0xa5, 0xe3, 0x71, 0xb1, 0x12, 0x97, 0x9e, - 0x64, 0x8f, 0x6a, 0x52, 0x68, 0x60, 0x1d, 0x7d, 0x24, 0x45, 0xd4, 0xc9, - 0x8f, 0x34, 0x9f, 0xe1, 0x3f, 0xa3, 0x60, 0x9b, 0x3b, 0x6c, 0x25, 0x19, - 0x3b, 0xc4, 0x28, 0x10, 0xcd, 0x06, 0xf8, 0x9e, 0xf1, 0x8a, 0xc4, 0x6c, - 0x50, 0xca, 0x43, 0x7e, 0x02, 0x5e, 0xdd, 0x4c, 0xcb, 0x65, 0x63, 0x41, - 0xc3, 0xe9, 0x06, 0xe7, 0xcb, 0xfb, 0x3f, 0xfe, 0x2b, 0xcc, 0x47, 0xfa, - 0xf1, 0x67, 0x98, 0xae, 0x80, 0x4b, 0x61, 0x21, 0x1a, 0x94, 0x6c, 0x6a, - 0x57, 0x50, 0x83, 0x76, 0x88, 0xf0, 0x97, 0xc4, 0x29, 0x47, 0x12, 0x1f, - 0x65, 0x47, 0x74, 0x85, 0x53, 0x8d, 0xb9, 0xd6, 0x0a, 0x85, 0x32, 0x3a, - 0x65, 0xfc, 0xa8, 0xf2, 0x93, 0x7a, 0x56, 0x34, 0x55, 0x3e, 0x05, 0xa1, - 0x79, 0xba, 0x0a, 0xe0, 0x5b, 0x81, 0x5c, 0x04, 0x22, 0x59, 0xf1, 0x58, - 0x08, 0x41, 0x83, 0xfd, 0x3e, 0x98, 0x01, 0x5d, 0x2c, 0x88, 0xc6, 0xcc, - 0x8b, 0x10, 0xa7, 0x94, 0xf7, 0x56, 0xfc, 0x1b, 0xff, 0x61, 0x36, 0xa3, - 0xdf, 0xdc, 0x95, 0xff, 0x35, 0xa4, 0x88, 0x46, 0x70, 0xde, 0x41, 0xc9, - 0xb5, 0xab, 0x3f, 0xfe, 0x71, 0x87, 0x42, 0x88, 0x7a, 0x61, 0x4d, 0x6a, - 0x2c, 0x82, 0xee, 0xb3, 0x85, 0xb7, 0x59, 0x01, 0x8b, 0xda, 0xee, 0x8e, - 0x7a, 0xe9, 0xd3, 0x25, 0xf0, 0x5f, 0x43, 0xfa, 0xf9, 0xe3, 0xce, 0xe0, - 0xc5, 0xcf, 0xb6, 0xd7, 0x3f, 0xee, 0x7c, 0xfc, 0xe3, 0x6e, 0x2f, 0x16, - 0x22, 0x26, 0x79, 0x81, 0xed, 0x80, 0xbe, 0x1a, 0x45, 0x41, 0x25, 0x82, - 0x56, 0x84, 0x7f, 0xe7, 0xbc, 0x45, 0xc5, 0x93, 0x48, 0xda, 0x07, 0x59, - 0xa1, 0xe2, 0x10, 0x84, 0x52, 0xf5, 0x9d, 0xa3, 0xef, 0x5c, 0x79, 0x5c, - 0xcf, 0x1b, 0x2a, 0xd5, 0x62, 0x9d, 0x2b, 0x47, 0xcc, 0x99, 0x81, 0xe5, - 0x94, 0x92, 0x54, 0xa7, 0x0f, 0xe6, 0xa2, 0x63, 0x04, 0x53, 0x0b, 0x14, - 0xa0, 0xa2, 0xa3, 0x90, 0xad, 0xe0, 0x5e, 0x6d, 0xb8, 0x28, 0x28, 0xe0, - 0xb5, 0x6d, 0xc6, 0x2c, 0x13, 0xce, 0x24, 0xe4, 0x68, 0x7e, 0x2c, 0x32, - 0x29, 0x1d, 0x5e, 0x26, 0x76, 0x77, 0x80, 0xba, 0x30, 0xa2, 0xd1, 0xe3, - 0xe3, 0xb5, 0x95, 0xfa, 0xde, 0x29, 0x2e, 0x07, 0x24, 0x59, 0xc5, 0x99, - 0x7a, 0xd0, 0x18, 0x03, 0x2f, 0x23, 0xf9, 0xb5, 0x7b, 0xef, 0x6c, 0x9c, - 0x3a, 0x3d, 0x67, 0x96, 0xb5, 0xc0, 0xe3, 0xfd, 0x97, 0x3d, 0x6f, 0x78, - 0x96, 0x68, 0x95, 0x71, 0x43, 0x21, 0x4d, 0x88, 0xf0, 0x31, 0xdc, 0x8c, - 0x66, 0x51, 0x28, 0xd2, 0x37, 0x9b, 0xce, 0x2d, 0x9c, 0x98, 0x04, 0x74, - 0x27, 0x35, 0x17, 0xab, 0x21, 0xa5, 0x90, 0x61, 0x4c, 0xc9, 0xee, 0x2f, - 0xd0, 0xa5, 0x41, 0x9e, 0x82, 0x54, 0xa0, 0xed, 0x5b, 0xe8, 0xe4, 0x6c, - 0x56, 0x87, 0xb4, 0x71, 0x40, 0xae, 0x1e, 0xc2, 0x88, 0x6b, 0x90, 0x36, - 0xde, 0x77, 0xb3, 0xb4, 0x69, 0x89, 0xe9, 0xad, 0x73, 0xe1, 0xd8, 0x23, - 0xaa, 0x51, 0xf2, 0xab, 0x32, 0xbf, 0x87, 0x9d, 0xdb, 0xc3, 0x46, 0x1e, - 0xa5, 0xb6, 0x4c, 0x94, 0x4b, 0x2d, 0x74, 0x29, 0xf0, 0xb1, 0x64, 0x56, - 0xd4, 0x0f, 0x00, 0x87, 0xe2, 0xa4, 0x2f, 0x1d, 0x82, 0x8c, 0xc0, 0x73, - 0xa4, 0x08, 0xb0, 0x0b, 0x3d, 0xcb, 0x48, 0x5f, 0xf1, 0xc2, 0x04, 0xc2, - 0x6d, 0x42, 0x2c, 0xda, 0xcb, 0x59, 0x7a, 0xf5, 0x87, 0x28, 0xfc, 0xab, - 0xf8, 0x07, 0x89, 0x13, 0x01, 0xf6, 0x15, 0xfd, 0x02, 0x3f, 0xc1, 0x73, - 0x6d, 0x31, 0x32, 0x88, 0x99, 0x76, 0xce, 0x25, 0x3e, 0xfe, 0xb4, 0xbb, - 0x1d, 0xb2, 0x62, 0x07, 0x0a, 0xa4, 0x25, 0x7e, 0x88, 0x9c, 0x6a, 0xa5, - 0x27, 0x96, 0x27, 0x5d, 0x2d, 0x81, 0x0c, 0x39, 0x43, 0xe4, 0xd2, 0x1f, - 0x10, 0x31, 0x05, 0x3a, 0xae, 0xeb, 0x38, 0x1a, 0x7c, 0xfa, 0x6b, 0x59, - 0xcb, 0x53, 0x9c, 0xc5, 0xdc, 0x5e, 0x74, 0xe3, 0xef, 0x0e, 0xc6, 0x99, - 0xb9, 0x79, 0xba, 0x73, 0xdc, 0xe0, 0xd0, 0x52, 0x4e, 0x3c, 0x6f, 0xc7, - 0x50, 0x51, 0x5f, 0x5f, 0xe1, 0x9d, 0xe4, 0x02, 0x3a, 0x1d, 0xd1, 0xf5, - 0x29, 0x55, 0x0a, 0x4f, 0x76, 0x87, 0xdb, 0x22, 0xf8, 0x3d, 0x9a, 0xfe, - 0xca, 0xc8, 0x1a, 0xad, 0x36, 0xf4, 0x76, 0x46, 0xa5, 0x9e, 0xe2, 0x6f, - 0xcb, 0xa2, 0x0d, 0x77, 0x1f, 0x73, 0x73, 0x61, 0xbf, 0x45, 0xc2, 0xe7, - 0x78, 0x95, 0x56, 0x80, 0x92, 0x1e, 0x71, 0x31, 0xa7, 0x00, 0x06, 0x0f, - 0x16, 0xac, 0xc1, 0x32, 0x94, 0x32, 0xd0, 0xe0, 0xaa, 0xc2, 0x0c, 0x38, - 0xd7, 0x32, 0x5a, 0x19, 0xae, 0x62, 0x84, 0x68, 0xc4, 0x53, 0x95, 0x89, - 0x97, 0xac, 0xe9, 0x16, 0x7c, 0x3a, 0x7f, 0x7b, 0xd0, 0x69, 0xee, 0xe5, - 0x67, 0x2f, 0xb6, 0x7f, 0xcf, 0x78, 0x94, 0x56, 0xa1, 0x88, 0xc7, 0x0b, - 0xf1, 0xfc, 0x9a, 0x3a, 0x3c, 0x2b, 0x0b, 0xf1, 0x88, 0xe6, 0xf6, 0x29, - 0x75, 0x78, 0x6c, 0x19, 0x9e, 0x38, 0xfa, 0x40, 0x37, 0x4b, 0xd1, 0x45, - 0xfb, 0xf8, 0x35, 0x86, 0x50, 0x00, 0xb1, 0xf6, 0x6c, 0xa3, 0x88, 0xf8, - 0x5a, 0x16, 0x11, 0x1f, 0xab, 0x98, 0xc0, 0x21, 0xe9, 0xd9, 0xca, 0xcc, - 0x07, 0xa7, 0xef, 0xdf, 0x1f, 0x1d, 0xd8, 0xac, 0xd3, 0x9a, 0xa7, 0x69, - 0xf9, 0x5d, 0x6a, 0x11, 0x7e, 0xe2, 0x85, 0x78, 0x10, 0xc7, 0x2a, 0x4e, - 0x06, 0xee, 0xdf, 0xfc, 0x71, 0x27, 0x11, 0xba, 0xfa, 0x25, 0x13, 0x9f, - 0x84, 0xee, 0xcb, 0xdd, 0x10, 0x51, 0x41, 0xe3, 0xf5, 0x57, 0xc4, 0xa9, - 0xc5, 0xc9, 0xef, 0x60, 0xa1, 0x61, 0x0d, 0x16, 0x08, 0x8e, 0x5e, 0x05, - 0x16, 0xe9, 0xfb, 0xff, 0x4b, 0xf5, 0x57, 0xbe, 0x91, 0xe8, 0x85, 0x0e, - 0xc6, 0x6c, 0xa4, 0x54, 0x1a, 0x57, 0x27, 0x1a, 0x67, 0x5e, 0x5c, 0x43, - 0x18, 0x41, 0x61, 0xc9, 0xc1, 0x25, 0xe4, 0x51, 0x60, 0x6d, 0xed, 0xfc, - 0xde, 0xe3, 0xcc, 0xee, 0xef, 0xaa, 0x9a, 0x2a, 0x21, 0xea, 0x1a, 0xba, - 0x5d, 0x81, 0xbb, 0xf6, 0x2b, 0x4a, 0x9f, 0xac, 0x0e, 0xa1, 0xa0, 0xc2, - 0x31, 0x56, 0x40, 0x1b, 0x2c, 0xfa, 0xca, 0x11, 0x1a, 0xca, 0xbd, 0x9a, - 0xc5, 0x2c, 0xe8, 0x66, 0x74, 0x08, 0xb1, 0x65, 0x2a, 0x56, 0xd6, 0xb3, - 0x31, 0xb8, 0xb7, 0xef, 0xc6, 0x30, 0x19, 0x10, 0x93, 0x12, 0xc4, 0xc6, - 0x14, 0x03, 0x34, 0x65, 0x75, 0x7a, 0x2d, 0xee, 0x22, 0x98, 0xeb, 0x7c, - 0x26, 0x30, 0x12, 0x22, 0xe6, 0x0a, 0x76, 0x71, 0x77, 0x84, 0x02, 0x63, - 0x8f, 0xd5, 0x95, 0xe6, 0xe6, 0x06, 0x9f, 0x69, 0xce, 0x7f, 0xde, 0x48, - 0x3d, 0x53, 0xd4, 0xa7, 0xc0, 0x81, 0xb6, 0xb9, 0x40, 0xb5, 0x20, 0x5a, - 0x9b, 0x4e, 0x06, 0x81, 0x57, 0x76, 0x86, 0xdc, 0xd4, 0xaa, 0xa4, 0x03, - 0x04, 0xc9, 0x0e, 0x18, 0xe5, 0xee, 0x78, 0x78, 0xcb, 0xd0, 0xe1, 0x0e, - 0x91, 0xa0, 0x56, 0xab, 0xdc, 0xda, 0xf0, 0x77, 0x71, 0xd1, 0x30, 0xba, - 0x80, 0xa4, 0x7e, 0x89, 0x79, 0x5b, 0x39, 0x85, 0x88, 0x87, 0xa4, 0xb6, - 0xc6, 0x35, 0x32, 0x16, 0x70, 0x14, 0x5e, 0x45, 0x96, 0x4a, 0x57, 0xaa, - 0x29, 0x3d, 0x46, 0xdf, 0xae, 0xe5, 0xbd, 0x32, 0x00, 0x9a, 0x21, 0xaf, - 0xce, 0xd9, 0xb2, 0x52, 0xdb, 0x04, 0x79, 0x36, 0xaa, 0x4b, 0xe9, 0xd6, - 0xb2, 0xda, 0x42, 0xd0, 0x5f, 0x41, 0x39, 0xd2, 0x25, 0xe9, 0x4a, 0x5c, - 0xef, 0xba, 0x8c, 0xac, 0x21, 0x23, 0xef, 0x63, 0xc9, 0x4c, 0xd3, 0xc2, - 0xc2, 0xc5, 0xac, 0x31, 0x77, 0xd0, 0x13, 0x02, 0x5a, 0xc5, 0x98, 0x79, - 0x5a, 0xf5, 0xf6, 0xb8, 0x7b, 0xd8, 0x16, 0x40, 0xf2, 0x9f, 0xb8, 0x3a, - 0x1e, 0x0d, 0xfb, 0xc8, 0x51, 0x6d, 0x80, 0x87, 0xea, 0x0a, 0xd8, 0xea, - 0x52, 0x12, 0x94, 0x71, 0x1c, 0x16, 0x63, 0x32, 0xa3, 0x88, 0xde, 0x75, - 0x9f, 0x17, 0x68, 0x10, 0x34, 0xe2, 0x22, 0xcc, 0x42, 0x69, 0x9e, 0x70, - 0xab, 0x58, 0x7d, 0x5a, 0xdf, 0xd4, 0xab, 0x61, 0x86, 0x5a, 0x21, 0x1d, - 0x66, 0x74, 0x5e, 0x75, 0x0e, 0x6d, 0x95, 0x51, 0x5f, 0x1b, 0x7f, 0x94, - 0xb4, 0x57, 0xed, 0xe6, 0xec, 0x16, 0x05, 0x60, 0x61, 0x81, 0x56, 0x6a, - 0x8b, 0x74, 0x04, 0xda, 0x2a, 0x7f, 0x3d, 0xcc, 0x92, 0x1e, 0x95, 0xef, - 0xe8, 0xf9, 0xc9, 0x47, 0x92, 0xaf, 0xa7, 0xaf, 0x12, 0x16, 0x8d, 0x19, - 0xaa, 0x0b, 0x03, 0x0f, 0x25, 0x42, 0xbd, 0x1e, 0xc4, 0x3a, 0x44, 0x5b, - 0xb6, 0xf1, 0xa1, 0xc8, 0xef, 0xc1, 0x7f, 0x43, 0xd4, 0x3f, 0x3b, 0xef, - 0x47, 0x46, 0xa5, 0x05, 0xa1, 0x76, 0xb6, 0x87, 0x3b, 0xad, 0xd1, 0xe1, - 0x52, 0xa7, 0x50, 0x08, 0xbf, 0x9d, 0xc8, 0x5d, 0x18, 0xb3, 0xfa, 0xfa, - 0x1d, 0xcc, 0x1f, 0x86, 0x5e, 0x78, 0x4a, 0xd0, 0x85, 0x84, 0xb0, 0x74, - 0x5b, 0x1e, 0x78, 0xda, 0x88, 0x90, 0xda, 0x82, 0xa2, 0x79, 0x62, 0x25, - 0xd8, 0x35, 0xcd, 0xc6, 0xab, 0xbc, 0x3e, 0x8d, 0x0f, 0x68, 0x75, 0x39, - 0x76, 0xdb, 0xff, 0xff, 0x86, 0x60, 0xa7, 0x9e, 0xfe, 0xc3, 0xdc, 0xa5, - 0x5b, 0xc0, 0x18, 0xc3, 0x07, 0x03, 0x07, 0xac, 0xe4, 0xca, 0xed, 0x02, - 0x69, 0xc3, 0xec, 0x20, 0xad, 0x6f, 0x87, 0xd6, 0xcf, 0x04, 0xff, 0xa5, - 0xab, 0x78, 0xd1, 0xa9, 0xd0, 0x81, 0x7a, 0xef, 0x1d, 0xc4, 0x23, 0xdb, - 0xa6, 0xc5, 0x58, 0x19, 0x0c, 0xc4, 0x44, 0x3f, 0xc8, 0x16, 0x70, 0xf2, - 0xe2, 0x35, 0x30, 0x50, 0xb3, 0x42, 0x5e, 0xa8, 0x00, 0xbd, 0xf6, 0xe7, - 0x3f, 0x3b, 0x1e, 0xd5, 0x2e, 0x69, 0xb6, 0xf3, 0x6a, 0xf8, 0xc2, 0x19, - 0xaa, 0x18, 0x24, 0x20, 0xe9, 0xed, 0xfd, 0x88, 0xb4, 0x98, 0x9f, 0x07, - 0x3f, 0x9a, 0x3f, 0x7f, 0xee, 0x59, 0x46, 0x89, 0x38, 0xb1, 0x76, 0xf9, - 0x3d, 0x9b, 0xb4, 0x41, 0xcf, 0xd8, 0x70, 0x6a, 0xc8, 0x5c, 0xe4, 0x49, - 0xc4, 0x41, 0xe4, 0xc4, 0x6a, 0x9e, 0xa9, 0x18, 0xb1, 0x38, 0xbf, 0x1e, - 0xae, 0x76, 0xa2, 0x14, 0xbb, 0x96, 0x9a, 0xe0, 0xc5, 0x49, 0xd3, 0x78, - 0xb1, 0xaf, 0x3e, 0x58, 0xb2, 0x36, 0xdc, 0x31, 0xdb, 0x49, 0x35, 0x0d, - 0x9f, 0x39, 0xf4, 0x30, 0xd9, 0x57, 0x63, 0x08, 0x7f, 0xb0, 0x66, 0x41, - 0x74, 0x28, 0x0d, 0x54, 0x6a, 0xc5, 0x73, 0xb8, 0x02, 0xcb, 0x41, 0x99, - 0x8d, 0x24, 0xb2, 0x19, 0x97, 0x32, 0xc5, 0xfa, 0x86, 0x66, 0x28, 0x99, - 0xce, 0x09, 0x83, 0xb2, 0xad, 0x79, 0x42, 0x30, 0x46, 0xa6, 0xe9, 0xc1, - 0x04, 0x16, 0xae, 0x41, 0xd3, 0x2d, 0x79, 0x9f, 0x0a, 0x9a, 0xbd, 0x5e, - 0x5c, 0x57, 0xa6, 0xe1, 0x47, 0x40, 0x30, 0xcd, 0x53, 0xfc, 0x8c, 0xa5, - 0x5a, 0x0f, 0xe5, 0xf1, 0xf7, 0x54, 0x47, 0x18, 0x5d, 0x65, 0x45, 0x25, - 0xd0, 0x0b, 0xe6, 0xf4, 0x0e, 0x8a, 0xa3, 0x02, 0x00, 0x5e, 0xc3, 0x89, - 0x86, 0x2f, 0x77, 0x5e, 0x6e, 0x19, 0x46, 0xf2, 0x6c, 0xb8, 0x6b, 0xc3, - 0x37, 0xcc, 0x11, 0x33, 0x63, 0xe8, 0x5e, 0x9e, 0x7e, 0xa9, 0x59, 0x94, - 0xbd, 0x2b, 0x13, 0x0f, 0x50, 0x46, 0xae, 0x33, 0x97, 0xa6, 0x60, 0x36, - 0xdd, 0x0c, 0xc9, 0xe5, 0x4f, 0x04, 0x79, 0x21, 0xce, 0x45, 0x42, 0x22, - 0x0d, 0x8d, 0x45, 0x7d, 0x03, 0x4b, 0x29, 0x3d, 0x3d, 0xce, 0xcd, 0xed, - 0xdf, 0x94, 0x4b, 0xf8, 0x1f, 0xc9, 0xe1, 0xa1, 0x75, 0x7b, 0x08, 0x30, - 0x2c, 0x26, 0xcd, 0x5b, 0xfc, 0x15, 0x9e, 0x01, 0x8c, 0xda, 0xe3, 0x07, - 0x0f, 0x5d, 0x9c, 0x66, 0x4f, 0x2c, 0x0d, 0xc5, 0x07, 0xb8, 0x98, 0x09, - 0x5d, 0xc9, 0x93, 0x87, 0xee, 0x3d, 0xf2, 0x8d, 0xa1, 0xcc, 0x5b, 0x12, - 0xd9, 0xb5, 0xf8, 0xa9, 0x24, 0x9b, 0xb3, 0x8b, 0x34, 0xe5, 0xc5, 0x40, - 0xcd, 0x0f, 0x38, 0xc1, 0xe4, 0x03, 0x8e, 0x96, 0x8f, 0xd5, 0x8b, 0xf4, - 0xb3, 0x2c, 0xda, 0x00, 0xb2, 0x0c, 0x03, 0x42, 0xd8, 0xb3, 0xc0, 0x21, - 0x64, 0x05, 0xea, 0x4e, 0x0a, 0x12, 0x43, 0x19, 0x7c, 0x34, 0xb7, 0xe4, - 0xb1, 0xb2, 0x73, 0x82, 0xb4, 0xf3, 0xdf, 0x8f, 0x2c, 0x76, 0xff, 0x7f, - 0xb2, 0xf8, 0x67, 0x92, 0xc5, 0xab, 0x18, 0x59, 0x3c, 0xfb, 0xef, 0x47, - 0x16, 0xcf, 0xfe, 0x7f, 0xb2, 0xf8, 0x27, 0x92, 0xc5, 0xee, 0xcb, 0x76, - 0x7a, 0x1c, 0xd4, 0x49, 0x73, 0xc9, 0xa9, 0x56, 0x19, 0xc0, 0x8b, 0x33, - 0x61, 0x74, 0x21, 0x9d, 0x24, 0xcd, 0x4c, 0x60, 0x0d, 0x9d, 0x4a, 0x8a, - 0x5a, 0x4d, 0x04, 0xb4, 0xa7, 0x40, 0x7a, 0xa1, 0x45, 0x82, 0x00, 0x39, - 0xd3, 0xd9, 0x30, 0x39, 0xb3, 0x6f, 0x91, 0x91, 0x8f, 0x3e, 0x5b, 0x72, - 0x94, 0x45, 0x76, 0x09, 0x81, 0x0a, 0x72, 0x4a, 0x1f, 0x5f, 0x42, 0x8e, - 0x22, 0xab, 0xd1, 0x20, 0xc8, 0x8e, 0xa2, 0x57, 0xd4, 0xf9, 0x8f, 0x76, - 0x48, 0x03, 0x4d, 0x5d, 0x3a, 0x8b, 0x26, 0x51, 0xae, 0x1b, 0x69, 0x8a, - 0xa0, 0x81, 0x5d, 0xf1, 0x9f, 0x45, 0x95, 0x85, 0x85, 0x88, 0xee, 0xd9, - 0x31, 0xfe, 0x8f, 0xac, 0x2a, 0x13, 0x4d, 0xeb, 0x17, 0x2c, 0x36, 0x54, - 0xec, 0x52, 0x31, 0xc1, 0x7d, 0x48, 0xbd, 0x06, 0x5a, 0xc6, 0x9f, 0x51, - 0xc8, 0x90, 0xf1, 0xf7, 0x08, 0xe6, 0xc3, 0x26, 0xd7, 0x20, 0x4d, 0x3d, - 0x57, 0xab, 0x9b, 0x5b, 0x38, 0x95, 0x88, 0x11, 0xbe, 0x1f, 0x9c, 0x03, - 0x12, 0x5a, 0xc8, 0x70, 0xe0, 0x07, 0x1e, 0x5b, 0x45, 0xf3, 0x92, 0x01, - 0x88, 0x78, 0x38, 0xb6, 0x4e, 0xc7, 0x30, 0x22, 0xa7, 0x1f, 0x66, 0xc5, - 0x83, 0x06, 0x79, 0xb8, 0xd0, 0x00, 0x68, 0xce, 0xb7, 0xa2, 0xfd, 0xdb, - 0x62, 0x6f, 0x1a, 0xeb, 0x62, 0x87, 0x18, 0x0e, 0xa9, 0x3d, 0xe6, 0x26, - 0x12, 0x2d, 0xf7, 0xc6, 0x2e, 0x83, 0x04, 0xc3, 0xf9, 0x6b, 0xb1, 0x81, - 0x74, 0x1c, 0xf5, 0x8b, 0xa1, 0x3f, 0x6d, 0xf1, 0xd1, 0x65, 0xe0, 0xbc, - 0x5a, 0xb6, 0x6f, 0xd4, 0xcb, 0xf1, 0xdf, 0x88, 0x4b, 0x81, 0x30, 0x67, - 0x29, 0xb2, 0xd6, 0x5a, 0x25, 0x28, 0xa9, 0x1c, 0xcb, 0x72, 0x2c, 0x5e, - 0x9c, 0xb0, 0x39, 0xf3, 0x21, 0x3c, 0x76, 0xb6, 0xa2, 0x8d, 0xd0, 0x99, - 0x17, 0xf0, 0x13, 0x4c, 0xca, 0x8b, 0x5b, 0x09, 0xf6, 0x5d, 0xcf, 0x13, - 0xa9, 0x0b, 0xb5, 0x44, 0x28, 0xf8, 0x9b, 0x65, 0x57, 0x53, 0xa4, 0x58, - 0x8d, 0xcf, 0xa1, 0xc7, 0x57, 0xb6, 0x65, 0xa8, 0xb5, 0x4f, 0x5e, 0xd4, - 0xba, 0xff, 0x67, 0xfa, 0x27, 0xae, 0x30, 0xb5, 0xc0, 0x8f, 0x35, 0x98, - 0x8f, 0x1e, 0xc7, 0xd1, 0xc0, 0xeb, 0xab, 0x3a, 0x78, 0x43, 0xdf, 0x72, - 0x0f, 0x8f, 0xb7, 0x0d, 0x37, 0xe9, 0x2f, 0xe8, 0xe0, 0x43, 0xa1, 0x89, - 0xf3, 0x4a, 0xe6, 0x0b, 0x0b, 0xc3, 0x63, 0x54, 0xe3, 0xaa, 0xe0, 0x48, - 0x3c, 0x36, 0xe9, 0x89, 0x71, 0x27, 0xa1, 0x0c, 0x28, 0x42, 0x6b, 0x09, - 0x13, 0x3b, 0x08, 0xed, 0x9b, 0x18, 0x1f, 0xec, 0x55, 0xb4, 0xb7, 0x9c, - 0xee, 0x28, 0xb0, 0x9a, 0x1a, 0xb9, 0xb6, 0x28, 0x1b, 0x75, 0xd8, 0x25, - 0x53, 0xd2, 0x3c, 0x2a, 0xba, 0x1c, 0x22, 0x80, 0xec, 0xba, 0x11, 0x5a, - 0xda, 0x8b, 0x9a, 0xa5, 0x06, 0x97, 0x0b, 0xc2, 0x4d, 0x12, 0xa8, 0x0f, - 0x66, 0x68, 0x02, 0x01, 0xa5, 0x94, 0xcb, 0x3d, 0x77, 0x23, 0x5c, 0x10, - 0x7e, 0x81, 0x2b, 0xcf, 0x22, 0x84, 0xde, 0x96, 0x39, 0xe0, 0x6f, 0x91, - 0xbf, 0x39, 0xfc, 0xd4, 0x2a, 0xce, 0x6d, 0x33, 0x66, 0xdf, 0xab, 0x0a, - 0x97, 0xd6, 0x7e, 0x1a, 0x45, 0x18, 0x5e, 0x66, 0x75, 0x6e, 0xa3, 0x2b, - 0x51, 0xfe, 0xbf, 0x21, 0xe2, 0x22, 0xb5, 0x65, 0x87, 0xdc, 0x36, 0x60, - 0x94, 0x5c, 0x04, 0x85, 0x52, 0x3a, 0x26, 0x59, 0x04, 0x1b, 0xd4, 0xa1, - 0x49, 0x3f, 0x05, 0x27, 0xb1, 0x1b, 0xdc, 0x27, 0x9c, 0x70, 0xfd, 0xf4, - 0xad, 0x12, 0xb9, 0x54, 0xe4, 0x4e, 0xf1, 0x38, 0xa3, 0xc0, 0x52, 0xea, - 0xe5, 0x88, 0xac, 0xab, 0x15, 0x94, 0xcc, 0x40, 0x42, 0x77, 0xfe, 0xdb, - 0x15, 0x22, 0x2b, 0x18, 0xe9, 0x25, 0xc2, 0xa1, 0x9e, 0x98, 0xca, 0xfd, - 0xc3, 0x20, 0x2d, 0x1e, 0xc8, 0xc7, 0x16, 0x9d, 0x80, 0x4d, 0x3a, 0x46, - 0xfa, 0x92, 0x21, 0x9a, 0x9c, 0xeb, 0xc6, 0x74, 0xc2, 0x9a, 0x35, 0xd2, - 0x4b, 0x31, 0x96, 0xe7, 0xcb, 0xc0, 0xf8, 0x87, 0x47, 0xe9, 0x22, 0x67, - 0x14, 0xf8, 0xc6, 0xc1, 0x06, 0xaa, 0xf7, 0x47, 0x8e, 0x09, 0x63, 0x7e, - 0x09, 0xe8, 0x17, 0x68, 0x8b, 0xfc, 0x3e, 0x71, 0x4b, 0xfb, 0x96, 0x4d, - 0x57, 0xac, 0xa8, 0xea, 0xd2, 0xc0, 0xf0, 0xba, 0x45, 0x07, 0xf4, 0xeb, - 0x59, 0x6c, 0xca, 0xa8, 0xbf, 0xfa, 0xe8, 0x84, 0xa9, 0xf3, 0x95, 0x10, - 0x55, 0x89, 0x3f, 0x53, 0x9d, 0xd9, 0x2a, 0xbf, 0x09, 0x4f, 0x52, 0xe6, - 0xf8, 0x81, 0xd3, 0x61, 0xd0, 0x26, 0x60, 0x60, 0x89, 0xcd, 0xd0, 0xb2, - 0x78, 0x7d, 0x31, 0x04, 0x72, 0x30, 0x61, 0x18, 0x7f, 0x19, 0xb4, 0x97, - 0x9f, 0x93, 0xe3, 0xe0, 0xe4, 0xba, 0xee, 0x20, 0x65, 0x57, 0x62, 0x98, - 0xf8, 0xe0, 0xdb, 0xe8, 0x88, 0x06, 0x96, 0xb7, 0xd3, 0x16, 0x78, 0x8d, - 0xa6, 0x88, 0x0a, 0x7b, 0x84, 0xac, 0xfd, 0x55, 0xe2, 0x10, 0xb2, 0xee, - 0x08, 0xc4, 0x12, 0xfc, 0xeb, 0x16, 0x89, 0xfb, 0x8f, 0xac, 0x92, 0xf4, - 0x15, 0x85, 0xc2, 0xf5, 0x97, 0x29, 0x98, 0xd1, 0xaa, 0x74, 0x8c, 0xe8, - 0x59, 0x45, 0x57, 0x4f, 0x66, 0x66, 0x60, 0x8a, 0x41, 0x62, 0xb3, 0x37, - 0xe1, 0x47, 0xa7, 0x68, 0x07, 0xd4, 0x9a, 0x65, 0x57, 0x08, 0x5f, 0x31, - 0x10, 0x41, 0xca, 0x6e, 0x11, 0xc6, 0xa3, 0x5a, 0xb3, 0x8d, 0xbc, 0xfb, - 0xf4, 0xe9, 0x53, 0xac, 0xdf, 0x6f, 0xb9, 0xa7, 0x88, 0x32, 0x6d, 0xed, - 0x28, 0xba, 0x68, 0x4d, 0xe5, 0x51, 0x1f, 0xa7, 0x4c, 0x63, 0x67, 0xb8, - 0x0d, 0xde, 0x7b, 0xff, 0x80, 0x48, 0xab, 0x3d, 0xba, 0xc9, 0x7e, 0xee, - 0xb2, 0xe0, 0x0f, 0x56, 0x8c, 0xf7, 0xca, 0x07, 0xb3, 0x8b, 0x89, 0xde, - 0xd7, 0x91, 0x69, 0x29, 0x47, 0x07, 0xa3, 0x28, 0xd8, 0x38, 0xab, 0xeb, - 0x91, 0xe4, 0x8d, 0x57, 0x8e, 0x84, 0xf2, 0xc0, 0xf1, 0xf2, 0xce, 0xf6, - 0xe7, 0xdb, 0xd1, 0x00, 0x00, 0x08, 0x14, 0x1a, 0xef, 0x32, 0xc9, 0xbc, - 0x8a, 0x93, 0xb9, 0xab, 0x36, 0xe4, 0xf9, 0x8f, 0xd4, 0xf7, 0x47, 0x6e, - 0xb4, 0xd8, 0x3d, 0x00, 0xa7, 0x5a, 0x2e, 0xc6, 0x66, 0x31, 0xd0, 0x5a, - 0x88, 0x32, 0x75, 0x3e, 0x59, 0xbf, 0x8f, 0x75, 0x2e, 0x45, 0x92, 0xaa, - 0x9d, 0xa3, 0x9d, 0xfb, 0xa7, 0x75, 0xf1, 0x44, 0x79, 0x6b, 0xd3, 0xf5, - 0x25, 0x3c, 0x79, 0x70, 0xa7, 0xb5, 0x29, 0xcb, 0xf1, 0x23, 0xb5, 0x74, - 0xc8, 0x84, 0xc8, 0xf1, 0xaa, 0x8f, 0x96, 0xd1, 0xb1, 0xd9, 0x36, 0x1c, - 0xa6, 0x29, 0x31, 0xae, 0x41, 0xb9, 0xa5, 0x7f, 0x7e, 0x19, 0x9d, 0xbf, - 0xdb, 0xc4, 0x18, 0x4e, 0x83, 0xb1, 0xf8, 0x14, 0x14, 0xf2, 0xe9, 0x4a, - 0x7b, 0x96, 0x9e, 0x88, 0x6d, 0xf1, 0x99, 0xb5, 0xe8, 0x5a, 0x90, 0x5b, - 0xee, 0x97, 0x10, 0xf4, 0xdd, 0xc3, 0xa8, 0xb6, 0x2b, 0x21, 0x22, 0x02, - 0x97, 0x8e, 0x70, 0x25, 0xbf, 0xa6, 0x64, 0x04, 0xdf, 0x53, 0xb3, 0xb1, - 0x65, 0x10, 0xb1, 0x42, 0x85, 0x75, 0x96, 0x56, 0x46, 0xc6, 0xa2, 0xd0, - 0x34, 0x6f, 0x72, 0xff, 0x83, 0xda, 0x45, 0x59, 0x51, 0x57, 0xff, 0x20, - 0xe2, 0x07, 0xdc, 0x1a, 0xb1, 0x33, 0x70, 0x04, 0x98, 0x6a, 0xb2, 0xc1, - 0x57, 0xe3, 0xbc, 0xa9, 0x52, 0xa9, 0xcd, 0x22, 0xf5, 0x22, 0x3c, 0x37, - 0x25, 0xb2, 0xd1, 0xab, 0x84, 0x5e, 0x8b, 0xba, 0xc6, 0x86, 0xc9, 0xff, - 0x40, 0xa7, 0xf2, 0x36, 0x0b, 0x32, 0xf0, 0x8d, 0x7f, 0x75, 0xf4, 0xf6, - 0xf4, 0xfc, 0xa8, 0x8d, 0x8a, 0xc5, 0xc0, 0xf4, 0x8c, 0xca, 0xdf, 0x1d, - 0xdd, 0xdf, 0x28, 0x5d, 0xab, 0x85, 0xe8, 0xa1, 0x10, 0xf7, 0x67, 0xdf, - 0x1f, 0x7a, 0x1e, 0x0a, 0xad, 0x64, 0xe2, 0x01, 0x2e, 0x95, 0x91, 0xc2, - 0x3c, 0xe4, 0x67, 0xda, 0x74, 0xa0, 0xc8, 0x76, 0x7c, 0x0c, 0x45, 0x8b, - 0x48, 0x09, 0x95, 0xd8, 0x90, 0x2a, 0x52, 0xd7, 0x64, 0xb2, 0xb0, 0x8d, - 0x06, 0x5e, 0xca, 0x8c, 0x70, 0x8e, 0x91, 0x75, 0xa4, 0xb2, 0x4f, 0xca, - 0xa1, 0x90, 0x14, 0x1f, 0x39, 0x4c, 0xc2, 0x8e, 0x34, 0x46, 0x00, 0xbd, - 0xc4, 0x0c, 0x3c, 0x14, 0x5d, 0xc6, 0xd1, 0x70, 0xcc, 0x3a, 0x82, 0x50, - 0xb8, 0x7e, 0xf2, 0x37, 0x2e, 0x3a, 0x74, 0xc9, 0xa8, 0xbd, 0x6e, 0x21, - 0x23, 0x57, 0x95, 0xe9, 0x73, 0xa3, 0x26, 0x95, 0xd3, 0x1b, 0xaa, 0xfd, - 0x26, 0x51, 0xde, 0xbc, 0xfe, 0xe7, 0x75, 0xa7, 0x9d, 0x73, 0xc9, 0x81, - 0x78, 0x1e, 0x9f, 0x03, 0x23, 0xd8, 0x7c, 0x2a, 0xa0, 0x47, 0x67, 0x3c, - 0xd4, 0x7a, 0xb1, 0x71, 0x1f, 0xaa, 0x56, 0x83, 0x54, 0x5f, 0x87, 0xd6, - 0x37, 0x14, 0xbe, 0xa4, 0xad, 0xf0, 0x59, 0x63, 0xc8, 0x64, 0xf8, 0xf4, - 0x03, 0x53, 0x8a, 0x0b, 0x40, 0x40, 0xf1, 0x54, 0x29, 0x3f, 0xf5, 0x57, - 0xcd, 0xf8, 0x03, 0x74, 0x56, 0xfd, 0x50, 0x34, 0xf0, 0x2b, 0x33, 0xb8, - 0xc2, 0xa4, 0xac, 0xe0, 0x8a, 0x4f, 0x42, 0x32, 0xb6, 0xfb, 0x05, 0xf0, - 0x69, 0xb2, 0xdc, 0xbd, 0x7a, 0xf1, 0x8a, 0x0e, 0x1e, 0x42, 0x56, 0x24, - 0x2f, 0x5f, 0x52, 0x19, 0x90, 0x23, 0xd2, 0x1e, 0xf3, 0x20, 0x08, 0x76, - 0xa4, 0xb6, 0x44, 0x39, 0x18, 0x67, 0x33, 0xae, 0x7b, 0x30, 0xf2, 0x1a, - 0x19, 0x3e, 0x1a, 0x1b, 0xb2, 0x2a, 0xec, 0x83, 0x19, 0x9d, 0x94, 0xd7, - 0x31, 0xfb, 0x90, 0xde, 0x48, 0x74, 0x99, 0x9c, 0x06, 0x6e, 0xbc, 0xaf, - 0xbb, 0xff, 0xc8, 0xe8, 0x84, 0x14, 0x28, 0x84, 0xd0, 0x10, 0x26, 0x39, - 0xa0, 0x36, 0xfe, 0x75, 0xb3, 0x5d, 0xd8, 0x96, 0x9c, 0x99, 0x79, 0xb1, - 0xcc, 0x5a, 0xc8, 0x6f, 0xab, 0x9a, 0xbb, 0x04, 0xc3, 0x32, 0x8b, 0xd7, - 0xcd, 0xd4, 0xe3, 0x12, 0x93, 0x4d, 0xb9, 0x48, 0x52, 0xad, 0x56, 0x2a, - 0x7b, 0x1f, 0x06, 0x37, 0xa3, 0x34, 0x0f, 0xd2, 0x42, 0xc6, 0x8c, 0x91, - 0xaf, 0xd7, 0x97, 0x11, 0x39, 0x0a, 0x84, 0x77, 0x08, 0x35, 0x0a, 0xfe, - 0x05, 0x5c, 0xdc, 0x66, 0xae, 0xe6, 0xc2, 0x8c, 0xb0, 0xa6, 0xbf, 0xb7, - 0x59, 0x92, 0x20, 0xfc, 0xc8, 0x39, 0xd2, 0x28, 0x36, 0x1c, 0x65, 0x61, - 0x76, 0x96, 0x99, 0x19, 0x0a, 0x09, 0x53, 0xd6, 0xb9, 0x24, 0xb7, 0x60, - 0x75, 0xa2, 0x6d, 0x2a, 0xf6, 0x65, 0xc4, 0xad, 0x41, 0xdd, 0x3c, 0xb0, - 0x52, 0x9f, 0xcd, 0x09, 0x0c, 0x05, 0xa5, 0xa2, 0x11, 0xe7, 0x24, 0x25, - 0x9c, 0x90, 0x1a, 0x35, 0x08, 0x0b, 0x97, 0x33, 0x19, 0xbc, 0xb5, 0xf6, - 0x65, 0xd1, 0x01, 0xd4, 0x96, 0x45, 0x99, 0x52, 0x16, 0xb7, 0x89, 0x17, - 0x87, 0xa7, 0xb4, 0x92, 0xe2, 0x42, 0xe0, 0x9d, 0xeb, 0xab, 0x6a, 0xc1, - 0xa0, 0x19, 0x49, 0x24, 0x0b, 0xdf, 0x8f, 0x6b, 0xe4, 0x47, 0x95, 0x53, - 0xd8, 0xd2, 0x8c, 0xfc, 0xee, 0xf1, 0x61, 0x0b, 0x70, 0x89, 0xa3, 0xae, - 0xc7, 0x0f, 0xf1, 0xe6, 0x1c, 0xdc, 0x13, 0xc5, 0xe2, 0xb8, 0xbb, 0xc4, - 0x36, 0xe5, 0x24, 0xb8, 0xb1, 0x66, 0x5c, 0xe0, 0xbb, 0x78, 0x73, 0xd2, - 0x0a, 0x87, 0xf3, 0x70, 0x1b, 0xda, 0x30, 0x48, 0x45, 0x21, 0x6a, 0x89, - 0x18, 0x08, 0x68, 0x50, 0xbb, 0x09, 0x63, 0xe9, 0xae, 0xe7, 0xe5, 0x94, - 0xe3, 0x3c, 0x9e, 0x5c, 0x8b, 0x79, 0x39, 0xf5, 0xd8, 0xa6, 0x98, 0x2b, - 0x6b, 0x1f, 0x0c, 0x12, 0xed, 0x8c, 0x73, 0x1b, 0xee, 0x1b, 0x6f, 0xce, - 0x4d, 0x15, 0x62, 0x0d, 0x9a, 0xc7, 0x9b, 0xfe, 0x14, 0x8a, 0xa4, 0x9c, - 0x34, 0xde, 0x0c, 0xe8, 0x81, 0x78, 0x73, 0xe2, 0x79, 0x0e, 0x67, 0x46, - 0x76, 0x2b, 0x84, 0xa1, 0x3e, 0x3e, 0x33, 0x7e, 0x30, 0xd8, 0x64, 0xf3, - 0x21, 0x33, 0xf1, 0x60, 0x87, 0x57, 0xcf, 0x2c, 0xb6, 0xc3, 0x18, 0x41, - 0x77, 0x83, 0x35, 0x46, 0xa1, 0x4a, 0xa2, 0x8c, 0xdc, 0xe1, 0x90, 0xf1, - 0xea, 0x48, 0x04, 0xee, 0x23, 0x1b, 0x2c, 0xbd, 0x04, 0xab, 0x30, 0x2b, - 0xa4, 0x1e, 0xc6, 0x47, 0x46, 0x79, 0x20, 0xdc, 0xc9, 0xe6, 0xe3, 0xe3, - 0x0b, 0x32, 0x2b, 0xb4, 0x46, 0x17, 0xf0, 0x84, 0x2c, 0xb3, 0x90, 0x04, - 0x8a, 0xb4, 0x5d, 0xbd, 0x4b, 0x50, 0xa2, 0x56, 0x90, 0xbd, 0xeb, 0xcf, - 0x15, 0x43, 0x5a, 0x94, 0x39, 0x23, 0x4c, 0xdb, 0x18, 0x50, 0x7f, 0x88, - 0x49, 0xac, 0x68, 0x8e, 0x97, 0xe4, 0x15, 0x4c, 0x71, 0x7e, 0x43, 0x86, - 0x2a, 0x2b, 0x1a, 0x7c, 0x5c, 0x1d, 0x22, 0x03, 0x3a, 0xe6, 0xc7, 0x1d, - 0x1d, 0xf3, 0xac, 0x6c, 0xec, 0x97, 0x0d, 0xb6, 0x7f, 0x7a, 0xb7, 0xdb, - 0x5d, 0xda, 0x33, 0xd9, 0x1d, 0xdf, 0xe2, 0x6e, 0xaa, 0x9d, 0xd3, 0xaf, - 0xda, 0xb1, 0x5f, 0x02, 0xda, 0x82, 0x74, 0x90, 0xe8, 0xca, 0x8d, 0x5d, - 0xaa, 0x60, 0xbd, 0x62, 0x29, 0xe2, 0x29, 0x02, 0x41, 0xe7, 0x15, 0x17, - 0x6d, 0x57, 0x10, 0x7b, 0x6c, 0xc7, 0xea, 0xc5, 0x91, 0xa7, 0xdd, 0x10, - 0x99, 0xbf, 0xfb, 0x58, 0x75, 0xe1, 0x02, 0xad, 0x66, 0x78, 0xd2, 0x6b, - 0xe7, 0x40, 0x4c, 0x33, 0xaa, 0x0f, 0x28, 0xa4, 0x40, 0x59, 0x24, 0xdc, - 0x90, 0xf2, 0xbd, 0xc7, 0x08, 0x69, 0xe5, 0x1a, 0x57, 0xf3, 0x27, 0x0e, - 0xb9, 0x79, 0xc0, 0xcd, 0x8a, 0x82, 0x48, 0xbd, 0x59, 0x05, 0x27, 0x53, - 0x8e, 0xf1, 0x8a, 0x95, 0x5f, 0x35, 0x82, 0x16, 0x15, 0x3e, 0x36, 0x12, - 0x7a, 0x30, 0x36, 0x18, 0xaf, 0xac, 0x20, 0x39, 0x35, 0x1e, 0x3c, 0x4e, - 0x19, 0x6f, 0x4e, 0x86, 0xeb, 0xde, 0x93, 0xe5, 0xe9, 0x5b, 0xf0, 0x14, - 0x51, 0xe4, 0x49, 0x7f, 0x0e, 0x69, 0x43, 0x0f, 0xf8, 0x2f, 0x62, 0x10, - 0xa4, 0xae, 0xcd, 0xbc, 0x43, 0x38, 0xa8, 0x90, 0x65, 0x82, 0xc0, 0xa2, - 0xd7, 0xf8, 0x27, 0x1a, 0x4e, 0xbf, 0xa5, 0x1a, 0xd6, 0x16, 0x41, 0xd5, - 0x21, 0xe6, 0x12, 0x5e, 0x44, 0x62, 0x27, 0x04, 0x3f, 0x2c, 0xa1, 0x49, - 0x1b, 0x14, 0xc5, 0xc6, 0xe1, 0xd3, 0x24, 0x23, 0x50, 0x0a, 0x5f, 0x70, - 0xa9, 0x9b, 0xb5, 0xd9, 0x94, 0x6a, 0x63, 0x50, 0xd5, 0xb7, 0x8c, 0xaa, - 0xde, 0x57, 0x6d, 0x4c, 0xe4, 0x25, 0x0d, 0x4e, 0xa4, 0x4f, 0x52, 0x49, - 0x33, 0x4e, 0x80, 0x92, 0xd7, 0xf5, 0x00, 0x9f, 0x53, 0xbf, 0x75, 0x98, - 0x24, 0x01, 0x6f, 0xaf, 0x93, 0xe4, 0x09, 0x43, 0x38, 0x58, 0xc0, 0xed, - 0xc1, 0xf3, 0x57, 0xaf, 0x5a, 0x57, 0x9a, 0xaf, 0x37, 0xbf, 0xd8, 0xde, - 0x66, 0x64, 0xe5, 0xee, 0x6b, 0xe6, 0x8b, 0xc1, 0x2b, 0xbc, 0xd8, 0x7e, - 0x8d, 0x51, 0xfd, 0x57, 0xbf, 0x37, 0xa0, 0x6f, 0x22, 0xdd, 0x41, 0xbb, - 0x5f, 0xf9, 0xd6, 0x2b, 0xea, 0x2e, 0xf2, 0x16, 0x1e, 0xe6, 0x75, 0x2c, - 0x2f, 0x2f, 0x09, 0x56, 0x94, 0x9e, 0xe4, 0x02, 0xdf, 0x65, 0x75, 0x97, - 0x56, 0xd3, 0x70, 0xba, 0xdb, 0xfd, 0xc1, 0xce, 0xaa, 0xe9, 0xc2, 0x22, - 0x40, 0x23, 0xc1, 0x76, 0x92, 0x02, 0x65, 0x84, 0xe7, 0x8d, 0x6f, 0x36, - 0x63, 0xb3, 0xff, 0x6c, 0x7b, 0xbb, 0xff, 0x92, 0xfe, 0x7d, 0xf5, 0x6a, - 0xa5, 0xbb, 0xca, 0xf5, 0xf1, 0x4c, 0xa7, 0xd6, 0x1a, 0xad, 0x69, 0x27, - 0xd2, 0xfa, 0x8e, 0x69, 0x75, 0xe7, 0xd5, 0xab, 0x3e, 0xf5, 0xf2, 0xe2, - 0x93, 0x5a, 0x6f, 0xee, 0x4a, 0x67, 0x67, 0xa1, 0xd7, 0x1d, 0x39, 0xd6, - 0x9d, 0x19, 0x90, 0x36, 0x40, 0x0e, 0x51, 0x42, 0x9b, 0x4e, 0x3c, 0x1c, - 0x29, 0x17, 0xf2, 0xed, 0x57, 0x11, 0x44, 0xd8, 0xc0, 0x02, 0xd8, 0x00, - 0x50, 0x30, 0x59, 0x61, 0x49, 0x5d, 0xc0, 0x85, 0x9a, 0xf6, 0x5d, 0x4a, - 0xd6, 0x29, 0xdb, 0xd1, 0xae, 0xf2, 0xc6, 0x21, 0x07, 0xd4, 0xc9, 0x86, - 0x21, 0x17, 0x46, 0x2c, 0x65, 0x48, 0x64, 0xf1, 0x74, 0xae, 0x23, 0x34, - 0x90, 0x41, 0xcd, 0xd6, 0x49, 0x99, 0xa0, 0xbc, 0xd6, 0x3c, 0x9b, 0x4d, - 0xad, 0x0b, 0x50, 0x13, 0x7c, 0xf8, 0xc9, 0x01, 0x3f, 0xc3, 0x07, 0x0d, - 0x5a, 0xe0, 0xbd, 0x54, 0xc7, 0xa3, 0xc0, 0x8c, 0x4e, 0xaf, 0x89, 0xc5, - 0xa4, 0x76, 0x39, 0x00, 0x5c, 0x88, 0x06, 0x81, 0x80, 0x6e, 0x9a, 0xeb, - 0xb5, 0x57, 0x8d, 0x4d, 0xad, 0x4b, 0x7e, 0xbd, 0xea, 0x69, 0xa6, 0x45, - 0x8e, 0x3a, 0x30, 0x7a, 0xf6, 0x7d, 0x36, 0xe1, 0x2c, 0xab, 0x0e, 0x12, - 0x10, 0x12, 0xbc, 0x34, 0x9f, 0x9c, 0xd3, 0x3b, 0x49, 0xab, 0xbd, 0x4b, - 0xab, 0x4c, 0x91, 0x30, 0x8c, 0xb2, 0xad, 0x1c, 0xc0, 0x56, 0x2f, 0x95, - 0xf4, 0x0a, 0xc1, 0x2b, 0x73, 0xe9, 0x33, 0x5a, 0x8b, 0x8a, 0xfd, 0x9e, - 0x5a, 0xba, 0x32, 0x95, 0x04, 0x1e, 0x8e, 0x80, 0x6c, 0x45, 0xe2, 0xd3, - 0x7d, 0x43, 0xcc, 0x43, 0x63, 0x1f, 0xb9, 0x4a, 0xc8, 0x5a, 0x27, 0xfc, - 0xfe, 0x2a, 0xe3, 0xf0, 0x76, 0x2e, 0xbb, 0xa1, 0x39, 0xc7, 0x6e, 0x16, - 0x60, 0x47, 0x80, 0xe9, 0xa1, 0xdf, 0x78, 0xf1, 0x5d, 0xc9, 0x2c, 0xb5, - 0x33, 0xc0, 0xbc, 0xca, 0x35, 0x4c, 0x80, 0x97, 0xd7, 0xda, 0x31, 0xb3, - 0x57, 0x96, 0x09, 0x9a, 0x4d, 0x4b, 0x36, 0xbc, 0x08, 0x08, 0xd0, 0x96, - 0xa7, 0x77, 0x6b, 0x75, 0x9b, 0x92, 0xdd, 0xf9, 0x9b, 0x43, 0x1e, 0x00, - 0x3c, 0x4d, 0xbc, 0x13, 0xc0, 0x33, 0xf4, 0xb7, 0x34, 0xbb, 0x6f, 0x50, - 0x90, 0x0a, 0x4f, 0xea, 0xbd, 0x34, 0x3a, 0xfe, 0x9f, 0x47, 0xc3, 0xdf, - 0x22, 0x4e, 0xb7, 0x63, 0x69, 0x3c, 0xf7, 0x72, 0x12, 0xe9, 0xb5, 0x28, - 0x84, 0x38, 0x67, 0x99, 0x7a, 0x67, 0xcb, 0xe9, 0xdf, 0x5e, 0xb4, 0x2e, - 0x68, 0x06, 0x09, 0xb5, 0x16, 0xa5, 0x34, 0x28, 0xad, 0xda, 0xa4, 0xf3, - 0x45, 0x24, 0x95, 0xb5, 0xaf, 0x00, 0x9f, 0x0a, 0x55, 0x4a, 0x36, 0x0e, - 0x1b, 0x17, 0x22, 0x81, 0xd0, 0xa1, 0x2c, 0xe2, 0xe5, 0xd8, 0xf2, 0xb6, - 0x53, 0x5d, 0x56, 0x12, 0x98, 0xb0, 0x00, 0xd4, 0x97, 0x6f, 0x32, 0xa6, - 0x9b, 0xd8, 0xe8, 0xa4, 0x78, 0x3c, 0x9a, 0x04, 0xcf, 0x98, 0x37, 0x7e, - 0xe6, 0xa0, 0x15, 0x87, 0x78, 0x7e, 0xb3, 0x4c, 0xe1, 0x39, 0xe0, 0x67, - 0xf1, 0x2b, 0x10, 0x45, 0xb2, 0x0f, 0x6a, 0x73, 0xe1, 0x57, 0x9c, 0xde, - 0xc7, 0x5d, 0x03, 0x49, 0x8f, 0x15, 0x08, 0x46, 0xe5, 0xab, 0x1d, 0xde, - 0x2a, 0x20, 0xa7, 0xb4, 0xb4, 0x21, 0x3f, 0x1e, 0xd4, 0xef, 0x26, 0x98, - 0x09, 0x18, 0x17, 0x08, 0x8b, 0xc0, 0x45, 0x6f, 0xd7, 0x61, 0xb9, 0x93, - 0xec, 0x6a, 0xea, 0x03, 0xb8, 0xb5, 0x57, 0xe1, 0xce, 0x86, 0xa8, 0xd9, - 0x02, 0xc8, 0x70, 0x30, 0xd8, 0xc8, 0x89, 0x74, 0x26, 0x56, 0x0b, 0x42, - 0x22, 0x83, 0xf1, 0xdd, 0xe6, 0xa0, 0xc2, 0x86, 0x16, 0xcc, 0xb4, 0x41, - 0xe2, 0x9b, 0x57, 0xfa, 0x0b, 0xa9, 0xa6, 0x48, 0x85, 0x82, 0x48, 0xaf, - 0x67, 0x53, 0x52, 0x2e, 0xc4, 0x34, 0x49, 0xa1, 0xc0, 0x28, 0x7a, 0x18, - 0xe0, 0x36, 0x98, 0x7e, 0x51, 0xab, 0xbc, 0x6f, 0x56, 0xe2, 0x2e, 0x28, - 0xb1, 0xd7, 0xf2, 0xae, 0x7a, 0xe9, 0xb4, 0x14, 0xd4, 0xf1, 0x58, 0x66, - 0x13, 0x1b, 0x30, 0xdb, 0xc1, 0x23, 0x29, 0x67, 0x6e, 0xd2, 0xa2, 0xd2, - 0xac, 0x6d, 0x16, 0x73, 0x1d, 0xb5, 0xd4, 0x4e, 0xb3, 0x54, 0xe1, 0x20, - 0xcc, 0xa6, 0x1a, 0x72, 0x0d, 0x53, 0x7a, 0xef, 0xb2, 0x2a, 0x73, 0x00, - 0xa9, 0x88, 0x9c, 0x32, 0xa7, 0x6f, 0x98, 0x8c, 0x4a, 0xf3, 0x7c, 0xa4, - 0x04, 0x92, 0x66, 0x33, 0xb4, 0x00, 0x13, 0x31, 0x1c, 0x57, 0xa4, 0x98, - 0x92, 0x77, 0xd9, 0x00, 0xdc, 0x9e, 0x6f, 0x04, 0x63, 0x89, 0x0c, 0xb5, - 0xe3, 0xcc, 0xee, 0xaa, 0xc5, 0x16, 0x63, 0x86, 0xd3, 0x1b, 0x18, 0x3a, - 0x1b, 0xf4, 0x24, 0xb3, 0x94, 0xe0, 0x9f, 0xbc, 0xe6, 0x1e, 0x4b, 0xd3, - 0xda, 0x79, 0xd5, 0x8e, 0x70, 0xa3, 0x2a, 0x5c, 0x33, 0xc3, 0xcf, 0x5f, - 0x93, 0x33, 0x0c, 0xbe, 0xb0, 0xbd, 0x15, 0x19, 0x3d, 0x67, 0xea, 0x61, - 0x49, 0xc9, 0x94, 0x6c, 0xf8, 0xe7, 0xdc, 0xcb, 0xf1, 0xb8, 0x64, 0x71, - 0xd0, 0x4e, 0x14, 0x19, 0x15, 0x36, 0x4b, 0x65, 0x91, 0xe6, 0xd5, 0x30, - 0xf0, 0xb0, 0x29, 0x7e, 0x9a, 0x8b, 0xcd, 0xb7, 0x15, 0x88, 0xc1, 0x90, - 0x34, 0x2e, 0x72, 0xa3, 0xde, 0x74, 0xb5, 0xe8, 0x57, 0xc9, 0xed, 0x76, - 0x24, 0x0c, 0x6d, 0x26, 0xc8, 0xf1, 0xb0, 0x36, 0xd8, 0x3a, 0x84, 0x8c, - 0xed, 0x39, 0x7b, 0x48, 0x64, 0xd2, 0x53, 0xaf, 0xf8, 0x41, 0x80, 0xc8, - 0x22, 0x3e, 0x14, 0xca, 0x72, 0xa7, 0xd3, 0x4f, 0xc7, 0xca, 0xcc, 0xaf, - 0xe4, 0xe4, 0xc3, 0xad, 0xac, 0x99, 0x6c, 0x31, 0xd0, 0x51, 0x02, 0x0a, - 0x2f, 0x52, 0x4e, 0x38, 0x52, 0xed, 0x20, 0x28, 0xba, 0xde, 0x31, 0x8d, - 0x93, 0x83, 0x87, 0xf9, 0x87, 0xef, 0x3b, 0x74, 0xf9, 0x39, 0x5e, 0x62, - 0x75, 0xc4, 0x40, 0xab, 0x91, 0xf4, 0x76, 0xb9, 0xad, 0xdf, 0x4d, 0xb1, - 0x84, 0xda, 0x85, 0x62, 0xe8, 0x05, 0x86, 0x4f, 0xe4, 0xa4, 0x84, 0x58, - 0x01, 0xaf, 0x22, 0xf3, 0xae, 0x1d, 0x1b, 0xf9, 0xd5, 0x86, 0x71, 0xb1, - 0x90, 0x76, 0xb2, 0x6c, 0x32, 0x8e, 0x20, 0x12, 0x69, 0x2e, 0x83, 0xe0, - 0x28, 0x2e, 0xcd, 0xd5, 0x07, 0x66, 0xca, 0xa7, 0xc7, 0xf9, 0xb8, 0x44, - 0x73, 0x4e, 0x55, 0x4c, 0xf8, 0x23, 0x6e, 0x59, 0xcc, 0xa3, 0xe1, 0xc6, - 0xc9, 0xd6, 0x3e, 0x1e, 0xca, 0xb2, 0x33, 0x7c, 0xd6, 0x3e, 0x03, 0xa4, - 0x12, 0xc6, 0xea, 0x1f, 0x1c, 0x73, 0x85, 0x1c, 0x70, 0x43, 0x2e, 0xda, - 0x80, 0x60, 0x25, 0xe2, 0xf7, 0x6c, 0x64, 0xc8, 0x24, 0x70, 0x85, 0x83, - 0x1a, 0xb0, 0x66, 0xb4, 0x4e, 0x5c, 0x29, 0x22, 0x08, 0xc4, 0x70, 0xde, - 0x23, 0x85, 0x77, 0xe5, 0xae, 0x71, 0x1d, 0x3b, 0x8d, 0x88, 0x67, 0x2d, - 0x96, 0x63, 0xe2, 0x64, 0x88, 0x7d, 0x59, 0x2e, 0x86, 0x61, 0x75, 0x86, - 0xc6, 0x15, 0x7c, 0x94, 0xf7, 0x4d, 0xf7, 0xdb, 0x7e, 0x42, 0x1c, 0x84, - 0x36, 0x89, 0x2c, 0xad, 0xbd, 0xe2, 0x6a, 0xe1, 0xbe, 0x09, 0x27, 0x25, - 0xff, 0x95, 0x9d, 0x2f, 0x4f, 0x97, 0x33, 0x59, 0x18, 0xe5, 0x6a, 0xcf, - 0x2c, 0x88, 0xd4, 0xde, 0xea, 0x73, 0x5e, 0x1a, 0xc4, 0xa0, 0xe7, 0xf7, - 0xf7, 0xe1, 0x4e, 0xb8, 0xea, 0xda, 0xc4, 0xa7, 0xd4, 0x51, 0xfc, 0xe2, - 0xfe, 0xbe, 0xfd, 0xe5, 0x63, 0x45, 0x93, 0x61, 0x93, 0xe3, 0xfa, 0x50, - 0xa5, 0xac, 0x56, 0x1a, 0x59, 0x47, 0x56, 0x94, 0xee, 0x52, 0x04, 0x53, - 0x86, 0xbe, 0x20, 0x68, 0x7f, 0xe2, 0x2d, 0x77, 0x77, 0x04, 0x01, 0x33, - 0x5d, 0x9b, 0x13, 0xc9, 0x15, 0x24, 0x84, 0xe2, 0xa5, 0x41, 0xb3, 0x6e, - 0x4b, 0xcd, 0x79, 0xea, 0x06, 0x29, 0xa4, 0xb9, 0x2c, 0x7b, 0x8e, 0x6a, - 0xc4, 0x4d, 0x3e, 0xa3, 0xd7, 0x50, 0x30, 0xcf, 0xb4, 0xb0, 0x63, 0x96, - 0x3f, 0x2f, 0x96, 0x4d, 0xa6, 0x20, 0x68, 0xe8, 0x53, 0xcf, 0x63, 0x6c, - 0xd9, 0x67, 0x30, 0xf2, 0xab, 0x5f, 0x1f, 0x95, 0x11, 0x3d, 0x94, 0x10, - 0x8c, 0x4b, 0x20, 0xf9, 0x34, 0x9e, 0x99, 0x49, 0x76, 0x80, 0x57, 0x63, - 0x87, 0xd9, 0x5e, 0x42, 0x12, 0xcf, 0x9a, 0xdd, 0x9b, 0xd5, 0xe6, 0xc0, - 0xbf, 0x04, 0x79, 0x8c, 0x46, 0xd3, 0x23, 0xce, 0x75, 0x55, 0x56, 0x66, - 0x53, 0xe7, 0x43, 0x0f, 0xe9, 0x25, 0x08, 0x1a, 0xe0, 0xae, 0x6c, 0x21, - 0x3d, 0xb3, 0x0d, 0xae, 0x76, 0x76, 0x53, 0x36, 0x22, 0xa4, 0xda, 0xe2, - 0x1f, 0x72, 0x17, 0xe8, 0xb8, 0x1f, 0xbb, 0x8a, 0x76, 0xfd, 0x63, 0xf8, - 0xdb, 0x67, 0x00, 0x79, 0x6b, 0xf4, 0x48, 0xf9, 0x3f, 0x97, 0x98, 0x57, - 0xcf, 0xb2, 0x6c, 0xa1, 0x2b, 0x26, 0x55, 0xc1, 0xe5, 0x34, 0xea, 0x61, - 0x84, 0x14, 0xc0, 0x54, 0x88, 0x63, 0xbf, 0xea, 0x80, 0xe3, 0xf6, 0x26, - 0xbf, 0x93, 0x66, 0x85, 0x47, 0xb9, 0x08, 0x20, 0xc8, 0xad, 0x30, 0xb3, - 0xfa, 0x44, 0xba, 0x2d, 0xc3, 0x58, 0xec, 0xb6, 0x59, 0xa2, 0x91, 0xc5, - 0xde, 0xec, 0xc6, 0xc5, 0xaf, 0x45, 0xa2, 0x5f, 0x21, 0x0e, 0xc2, 0x4e, - 0x78, 0x05, 0xb9, 0x47, 0xb8, 0x1f, 0xf2, 0x0e, 0xb9, 0xee, 0x2a, 0x22, - 0x07, 0xbc, 0xa2, 0x9b, 0xbc, 0x82, 0x21, 0xab, 0x45, 0x18, 0x78, 0x0b, - 0x2c, 0xc0, 0x65, 0xe0, 0xfa, 0x92, 0x99, 0x3f, 0x78, 0x1f, 0x4a, 0x2e, - 0x28, 0x4e, 0xf8, 0xcf, 0x21, 0x88, 0x27, 0x4b, 0x42, 0x5e, 0xc8, 0xb1, - 0xe3, 0xeb, 0x47, 0x98, 0x3d, 0x8a, 0xc3, 0x28, 0x4b, 0xf6, 0x51, 0xbb, - 0xec, 0x96, 0xab, 0x02, 0x15, 0x98, 0xc1, 0x84, 0xb3, 0xe8, 0xa8, 0x00, - 0xfe, 0x92, 0xd2, 0x34, 0x08, 0x9c, 0x61, 0x83, 0xd0, 0xc5, 0x64, 0x68, - 0x9b, 0xf4, 0xf1, 0xac, 0xa4, 0xb0, 0xdd, 0xda, 0x2a, 0x5e, 0x55, 0x80, - 0xa6, 0x02, 0x98, 0x7b, 0xe6, 0x36, 0x53, 0xbf, 0xc4, 0x95, 0x54, 0xb8, - 0x7a, 0x5f, 0x52, 0x66, 0xb3, 0xad, 0x5f, 0x61, 0xdb, 0x91, 0x37, 0x43, - 0x30, 0x7b, 0xb4, 0xe3, 0x95, 0xc6, 0xe9, 0xb7, 0x41, 0x38, 0x64, 0xd8, - 0x48, 0x59, 0x87, 0x27, 0xf7, 0x5a, 0x50, 0xa8, 0xe9, 0x8a, 0x8b, 0x14, - 0xac, 0x04, 0x53, 0x26, 0xbf, 0x25, 0x82, 0x1e, 0x68, 0x3a, 0x91, 0x72, - 0x5c, 0xd8, 0x00, 0xd3, 0x46, 0x5e, 0x4e, 0x11, 0x2e, 0x21, 0x35, 0x79, - 0x82, 0x52, 0xb1, 0x82, 0xfe, 0x24, 0x83, 0x59, 0x47, 0xea, 0x3c, 0x97, - 0x23, 0x42, 0x13, 0x7d, 0x81, 0x86, 0x6b, 0xd5, 0xfa, 0x1c, 0x26, 0xb6, - 0x62, 0x4f, 0x1c, 0xcb, 0xd6, 0xb0, 0x30, 0xd0, 0xae, 0x54, 0x84, 0xd7, - 0x4a, 0x92, 0x96, 0xd5, 0xfe, 0x13, 0x99, 0x54, 0x8d, 0xea, 0xc6, 0xf9, - 0x2c, 0x8c, 0xbf, 0x1f, 0xe5, 0x33, 0xd1, 0xc5, 0xfe, 0xbe, 0xcc, 0xa9, - 0x0c, 0x13, 0x52, 0xd9, 0x0f, 0x4b, 0xda, 0xfc, 0x5a, 0xc2, 0x78, 0xaf, - 0x20, 0x85, 0x71, 0x04, 0x11, 0x34, 0x01, 0xe1, 0x2b, 0xa6, 0xfb, 0x40, - 0x85, 0x25, 0xfc, 0xdb, 0x61, 0x62, 0xeb, 0x52, 0x00, 0x8e, 0x7c, 0x6e, - 0x6e, 0xa9, 0xa1, 0x45, 0xd5, 0x36, 0x3c, 0x21, 0x02, 0x38, 0x0f, 0xa4, - 0x8f, 0xfa, 0x26, 0x94, 0x40, 0xfb, 0xad, 0x60, 0x72, 0x38, 0xed, 0xc5, - 0x0d, 0xd1, 0x50, 0x7e, 0x82, 0xd1, 0xfc, 0xb6, 0x18, 0x7c, 0x4b, 0x0b, - 0x77, 0x53, 0x4b, 0x1a, 0xa7, 0xdc, 0x25, 0x9b, 0x56, 0x98, 0x5e, 0x9d, - 0xd6, 0xb3, 0x41, 0xde, 0x25, 0x7c, 0x46, 0x96, 0x74, 0x01, 0x3a, 0x5e, - 0xb9, 0x11, 0x4a, 0x45, 0x1a, 0xed, 0x13, 0x34, 0x6c, 0x80, 0x37, 0xf9, - 0x08, 0xbb, 0x79, 0xb6, 0xd3, 0x52, 0x85, 0x46, 0xd8, 0x0a, 0xb3, 0xb2, - 0x03, 0xac, 0x62, 0x1c, 0xf3, 0x59, 0xf9, 0xf9, 0x80, 0xab, 0x80, 0x3b, - 0x31, 0x0b, 0x5b, 0x02, 0x71, 0xc8, 0xed, 0x41, 0x0d, 0x90, 0x46, 0xb2, - 0x85, 0x04, 0xc5, 0xc0, 0x11, 0xbf, 0xd0, 0x9a, 0x73, 0x3d, 0xe3, 0x60, - 0x29, 0xa9, 0xab, 0xd9, 0xd7, 0x2a, 0x9b, 0x0c, 0x82, 0x74, 0x51, 0x3d, - 0x68, 0x90, 0x1e, 0xa5, 0xd6, 0x5e, 0x9c, 0x8c, 0xfc, 0x24, 0x70, 0x31, - 0x1f, 0x84, 0x9c, 0x87, 0x92, 0xd0, 0x58, 0x7e, 0x86, 0x25, 0x12, 0xd5, - 0x7d, 0xfd, 0x37, 0x6c, 0x7d, 0x5f, 0xb6, 0xab, 0x6a, 0x0d, 0x0d, 0x31, - 0x9b, 0x75, 0x29, 0x92, 0x3b, 0x1e, 0x26, 0x9e, 0x91, 0x82, 0x53, 0xbf, - 0xcd, 0xe0, 0x07, 0x9a, 0x8b, 0x4e, 0x2c, 0x02, 0xd3, 0x31, 0x3c, 0xed, - 0xef, 0xac, 0x3b, 0xb3, 0x0a, 0x30, 0x08, 0xac, 0x20, 0x4d, 0x42, 0x08, - 0x9b, 0x33, 0xb8, 0xb4, 0xb3, 0x62, 0x52, 0x3d, 0xb4, 0x40, 0xc1, 0xa7, - 0x9f, 0x50, 0x7e, 0xce, 0xbf, 0xee, 0x08, 0x2a, 0x94, 0x58, 0x12, 0xa1, - 0x63, 0x4b, 0x4d, 0x42, 0xf3, 0x89, 0x1d, 0xa0, 0x36, 0x06, 0x62, 0x31, - 0xe7, 0x7a, 0x07, 0x45, 0x3f, 0xbb, 0xcd, 0xf9, 0x25, 0xc5, 0x19, 0x44, - 0x0d, 0x81, 0x32, 0x7c, 0x34, 0xac, 0x6e, 0x32, 0x5e, 0x36, 0x1e, 0x32, - 0x21, 0xb9, 0x99, 0xd8, 0xab, 0xd1, 0xdd, 0xe4, 0x25, 0xcc, 0xa2, 0x92, - 0x47, 0xd7, 0xd9, 0x6d, 0x2c, 0x4f, 0x24, 0x58, 0x4e, 0xc1, 0xaf, 0xfc, - 0xdd, 0x37, 0x3b, 0xc9, 0x69, 0x73, 0x76, 0xf3, 0x35, 0xf3, 0xa2, 0x55, - 0x98, 0x3b, 0x98, 0x0e, 0x9f, 0xc3, 0xc6, 0xa5, 0xf4, 0x7d, 0xd2, 0xb6, - 0xdb, 0x8d, 0xfe, 0xe4, 0x3a, 0x99, 0x2b, 0x76, 0xc3, 0x6d, 0x87, 0xec, - 0x07, 0xa2, 0x9d, 0x1c, 0xc9, 0x80, 0x40, 0x92, 0x8d, 0x74, 0x1a, 0x47, - 0xc4, 0x41, 0xd5, 0xed, 0x17, 0x5c, 0x65, 0x25, 0x6d, 0x5a, 0x08, 0xc8, - 0xb4, 0x29, 0xbc, 0x27, 0x8f, 0x6c, 0x49, 0x08, 0xe1, 0x9b, 0x3e, 0xb1, - 0x25, 0x10, 0x61, 0x09, 0x98, 0x2c, 0x88, 0x5d, 0x67, 0x83, 0xa2, 0x3f, - 0xc1, 0xa6, 0x15, 0xf2, 0x4f, 0xf7, 0x08, 0x6a, 0x86, 0xa4, 0x48, 0x26, - 0xf0, 0x2b, 0x69, 0x13, 0x36, 0xdc, 0x5d, 0x38, 0x16, 0x5a, 0x7f, 0xd3, - 0x28, 0x17, 0x50, 0x33, 0xab, 0xed, 0x87, 0xcf, 0xd6, 0x8e, 0x7e, 0xbf, - 0x3a, 0xda, 0x1f, 0x5d, 0x0c, 0xbb, 0x57, 0x4e, 0x90, 0xdc, 0x42, 0xdb, - 0xe7, 0x10, 0x04, 0xc9, 0xaa, 0x48, 0x45, 0x5a, 0x2b, 0x8b, 0xe2, 0x86, - 0xc1, 0xf1, 0xd8, 0x6a, 0xbb, 0x1b, 0x64, 0xab, 0x8c, 0xc1, 0xe9, 0x40, - 0x44, 0x84, 0xc3, 0x73, 0x9c, 0xcf, 0x30, 0x05, 0x33, 0x30, 0xc3, 0x7b, - 0xe7, 0xb5, 0x84, 0xf4, 0x51, 0xbd, 0xf5, 0xa4, 0x9c, 0x91, 0x59, 0x24, - 0x02, 0xac, 0x1d, 0x14, 0xaf, 0xdc, 0x3f, 0x7f, 0x7f, 0xfc, 0xfe, 0xeb, - 0xbd, 0xd6, 0x9d, 0x39, 0x2b, 0xcb, 0x3a, 0x13, 0x1f, 0x3d, 0xa3, 0x90, - 0xf3, 0x72, 0xb1, 0xfd, 0xd8, 0x42, 0x40, 0x44, 0x2e, 0x71, 0x82, 0xda, - 0xd3, 0x5b, 0x89, 0x4d, 0x73, 0x52, 0xe8, 0x84, 0x24, 0x9e, 0xe1, 0xe3, - 0x55, 0x67, 0xeb, 0x72, 0x72, 0x53, 0x3f, 0x67, 0x63, 0xd7, 0x23, 0x91, - 0xdf, 0xed, 0xba, 0xd5, 0xa3, 0xd3, 0x83, 0x6f, 0x47, 0xcf, 0x9f, 0x0c, - 0xf9, 0xe6, 0x37, 0xc2, 0xa4, 0xc9, 0x27, 0x82, 0xbe, 0x1f, 0x29, 0x33, - 0x1f, 0x39, 0x56, 0xae, 0x9c, 0x06, 0xd9, 0x42, 0xc8, 0xcc, 0x95, 0x97, - 0x4b, 0x0b, 0xe7, 0xee, 0x41, 0x27, 0xf5, 0xf9, 0xb0, 0x11, 0xb4, 0x55, - 0xa4, 0x66, 0x9e, 0xd6, 0xda, 0xf0, 0xaa, 0x6b, 0x04, 0xd1, 0x71, 0x04, - 0x0a, 0xc1, 0xc6, 0x92, 0xcf, 0xfa, 0x5d, 0x71, 0xc7, 0x70, 0x0a, 0x23, - 0xff, 0xcd, 0x96, 0xd4, 0x37, 0xd0, 0x23, 0xac, 0x09, 0x6f, 0x55, 0xc9, - 0x51, 0x59, 0x79, 0x8d, 0x26, 0xa7, 0x2b, 0xd4, 0x0d, 0x56, 0x36, 0x3b, - 0x95, 0xa7, 0xf6, 0xb6, 0xb6, 0x9c, 0x45, 0x8b, 0x63, 0x0b, 0x87, 0xbf, - 0x9f, 0x56, 0xc0, 0x7d, 0xa6, 0xbf, 0x8a, 0x28, 0xd2, 0x4f, 0xa3, 0x8a, - 0x40, 0x4a, 0xfe, 0x85, 0x54, 0xf1, 0xf9, 0x2a, 0x66, 0x1b, 0x29, 0xb3, - 0xf2, 0x24, 0x5d, 0x48, 0xcd, 0x95, 0xff, 0x46, 0x54, 0x91, 0x26, 0x9f, - 0x46, 0x17, 0x69, 0x97, 0x30, 0x22, 0x19, 0xca, 0xbf, 0x27, 0xc2, 0x21, - 0x46, 0xf1, 0x62, 0x60, 0xb1, 0xda, 0x7f, 0x05, 0xc5, 0xbc, 0x90, 0x99, - 0x6e, 0xc0, 0x08, 0x2c, 0x0e, 0x4e, 0xc5, 0x11, 0x54, 0x5b, 0xfc, 0x0a, - 0xc0, 0x78, 0x96, 0x48, 0x36, 0xf5, 0x32, 0x58, 0xcd, 0x83, 0x22, 0xd4, - 0x15, 0x84, 0x33, 0xff, 0x72, 0x5a, 0xfb, 0x3f, 0x82, 0x03, 0xbd, 0x70, - 0x48, 0xfb, 0x9f, 0x42, 0x72, 0x2f, 0xae, 0x2d, 0xc9, 0xc5, 0x4a, 0x50, - 0x2a, 0x6f, 0xfa, 0xad, 0x49, 0xae, 0x23, 0x7b, 0x04, 0x72, 0x95, 0xae, - 0x3a, 0x80, 0x0e, 0x2a, 0xa3, 0x61, 0xd3, 0x2f, 0x1e, 0x96, 0x3b, 0x3b, - 0x41, 0x34, 0xe1, 0x24, 0xb0, 0xe8, 0x61, 0x6a, 0x36, 0xb3, 0xd7, 0x73, - 0x35, 0x30, 0x36, 0x92, 0x19, 0x41, 0x70, 0x67, 0xbe, 0x78, 0x92, 0xd8, - 0x83, 0x6c, 0x29, 0xa1, 0x77, 0x25, 0xee, 0x01, 0x97, 0x1b, 0x50, 0x1a, - 0xb7, 0x8e, 0x8a, 0x48, 0x4c, 0x21, 0x9c, 0xc1, 0xb3, 0xa7, 0xef, 0x5a, - 0x9f, 0xce, 0x2d, 0x1b, 0x4d, 0x02, 0xd8, 0xc8, 0xc7, 0x12, 0xac, 0xfe, - 0x4f, 0xe1, 0xa1, 0x2f, 0x3e, 0x8d, 0x9c, 0xff, 0x19, 0x37, 0xeb, 0x7f, - 0x23, 0xe2, 0x8d, 0x6d, 0xf3, 0x86, 0x20, 0x65, 0xb1, 0x72, 0xc8, 0x17, - 0xcb, 0x26, 0xe3, 0x9e, 0x58, 0x21, 0x1e, 0xab, 0x78, 0x7c, 0xf6, 0xdd, - 0x4b, 0x04, 0xbf, 0x8d, 0x42, 0xa0, 0xf7, 0x93, 0xc3, 0xfd, 0xb3, 0xc8, - 0xcd, 0x70, 0x65, 0x54, 0xfe, 0x45, 0x3e, 0x20, 0xb5, 0x8a, 0x4c, 0x70, - 0xaf, 0xe5, 0x17, 0x22, 0xf1, 0x98, 0x91, 0x51, 0x0d, 0xa4, 0xfa, 0x3c, - 0x23, 0x49, 0xb3, 0xc7, 0x18, 0xb3, 0x14, 0xfd, 0x8c, 0x0c, 0x90, 0x93, - 0xf9, 0x74, 0x8b, 0xff, 0x1c, 0x5c, 0xfe, 0x7d, 0x1a, 0xaa, 0x7a, 0x3e, - 0x4a, 0x73, 0x2b, 0x33, 0x4e, 0xa0, 0xaf, 0xf3, 0x66, 0x55, 0x41, 0xe0, - 0x7a, 0xcf, 0x3f, 0xe6, 0x89, 0xa4, 0x7a, 0x42, 0xf7, 0x5d, 0x35, 0x31, - 0x0c, 0x2f, 0xc0, 0xe2, 0x87, 0xef, 0x12, 0x10, 0xf8, 0xf4, 0xed, 0x96, - 0xd7, 0x90, 0x6d, 0xfd, 0xb1, 0xc6, 0x23, 0x09, 0x3c, 0xae, 0xaf, 0x2d, - 0x02, 0x7c, 0x93, 0x17, 0xb9, 0x23, 0x56, 0x6b, 0x82, 0x2f, 0x2f, 0x81, - 0xf7, 0x5a, 0x67, 0x75, 0x50, 0x13, 0x23, 0x93, 0x74, 0x26, 0x6f, 0x0c, - 0x76, 0xd7, 0xb9, 0x80, 0x8a, 0x80, 0x93, 0x15, 0x93, 0x7c, 0x91, 0xce, - 0x24, 0xcd, 0xf0, 0xd1, 0x4a, 0x3e, 0xdd, 0x42, 0x28, 0xed, 0x09, 0x19, - 0x65, 0xbb, 0x5b, 0x5c, 0x8c, 0xc8, 0xdf, 0xc3, 0xaf, 0xd5, 0x02, 0x67, - 0x9a, 0xcb, 0x8b, 0xdd, 0xc3, 0x01, 0x15, 0x3d, 0x1d, 0xb1, 0xfb, 0xc4, - 0xf2, 0xf0, 0x40, 0x98, 0x94, 0x44, 0x46, 0x12, 0xca, 0x1e, 0xda, 0x79, - 0xf5, 0x72, 0x27, 0xa9, 0xd3, 0x07, 0x60, 0x75, 0xd4, 0xf2, 0xf2, 0xf3, - 0xe1, 0xb3, 0xad, 0xe7, 0xc3, 0xe7, 0x89, 0xab, 0x73, 0x8a, 0x84, 0x1f, - 0x69, 0xde, 0xb0, 0xce, 0x00, 0xa3, 0xa1, 0x11, 0x2e, 0xfe, 0xfe, 0xe8, - 0x80, 0xa4, 0x11, 0xcd, 0x39, 0xed, 0x28, 0x78, 0x09, 0xaf, 0x1b, 0x2d, - 0x9c, 0xd6, 0xe9, 0x89, 0x29, 0xa5, 0x91, 0xe5, 0x50, 0xd2, 0x44, 0xf0, - 0x7e, 0x61, 0x07, 0x42, 0xbc, 0x92, 0xa9, 0x54, 0xd6, 0x25, 0x0a, 0x48, - 0xe1, 0x2f, 0x89, 0xb7, 0x60, 0xc3, 0xc7, 0x6b, 0xd3, 0xd4, 0x8d, 0xd1, - 0x52, 0xab, 0x78, 0x94, 0xd0, 0xb9, 0x18, 0x23, 0x39, 0xe0, 0x82, 0xaa, - 0x2f, 0xb3, 0xfb, 0x56, 0xde, 0x11, 0x6b, 0x66, 0x3b, 0xa7, 0x42, 0x23, - 0x60, 0x22, 0x75, 0x17, 0x5b, 0xd9, 0x0c, 0x52, 0x6e, 0x06, 0x75, 0x6a, - 0xd7, 0x07, 0xeb, 0x7a, 0x4d, 0x69, 0xfc, 0x0c, 0x75, 0xd6, 0xb0, 0xc5, - 0xb4, 0x5b, 0xa1, 0xe0, 0x37, 0x97, 0x5b, 0x1b, 0xba, 0x0d, 0x9a, 0x6c, - 0x56, 0x64, 0x8d, 0x14, 0x3f, 0x4c, 0x5e, 0x9f, 0x9e, 0x5d, 0xbc, 0xb9, - 0x4d, 0x67, 0x41, 0x8c, 0x07, 0x61, 0xfa, 0x69, 0xa9, 0x48, 0x6b, 0xcd, - 0xa5, 0x37, 0xbd, 0xdc, 0xa8, 0x91, 0x4d, 0x12, 0xf2, 0x8a, 0x4a, 0x06, - 0xb9, 0x40, 0x17, 0x17, 0x7f, 0x3d, 0x3b, 0x7a, 0xf3, 0x9a, 0x6c, 0xc1, - 0x5f, 0x90, 0x3d, 0xbe, 0x6e, 0x99, 0x86, 0xa9, 0x28, 0x71, 0x78, 0x33, - 0xfe, 0x70, 0x78, 0x3c, 0x3a, 0x3b, 0x39, 0x3d, 0x78, 0xf3, 0xfa, 0x07, - 0xf2, 0x60, 0x9a, 0xd5, 0x7b, 0xf0, 0xde, 0xb5, 0x9f, 0xd9, 0x7c, 0x87, - 0xb0, 0x14, 0xdb, 0xd1, 0xf7, 0x1f, 0x8f, 0xde, 0x7f, 0xf7, 0xe6, 0xf5, - 0x6d, 0x5a, 0xf5, 0x69, 0x7e, 0xfc, 0x36, 0x01, 0x41, 0x44, 0x6a, 0xf4, - 0x7a, 0x6b, 0x74, 0x41, 0x6b, 0xb4, 0x5c, 0x50, 0xe8, 0xe0, 0x23, 0x61, - 0x65, 0xe0, 0xb2, 0xae, 0xf6, 0x59, 0x9b, 0x3a, 0xbc, 0x10, 0x36, 0x4d, - 0xf0, 0xd2, 0xa2, 0x0c, 0x1f, 0xce, 0x4f, 0x20, 0xb5, 0x47, 0x8b, 0x95, - 0x71, 0x7d, 0x00, 0x57, 0x1e, 0x42, 0x6c, 0x43, 0xae, 0x61, 0x94, 0x62, - 0x38, 0xb0, 0xc9, 0x6d, 0x02, 0x60, 0xf9, 0x68, 0x0c, 0x1d, 0xf3, 0x2e, - 0x04, 0xd3, 0xda, 0x72, 0xa6, 0x88, 0x1e, 0xe2, 0x4a, 0x5c, 0x66, 0x0a, - 0x39, 0x32, 0xe8, 0xb7, 0x34, 0xe7, 0x77, 0x16, 0x9a, 0xbc, 0xbc, 0x98, - 0x79, 0xb8, 0xde, 0x05, 0x16, 0xaa, 0xe4, 0x6a, 0x74, 0x18, 0x8f, 0x22, - 0x10, 0xb7, 0x67, 0x21, 0xa0, 0x52, 0xf1, 0x0a, 0x0a, 0xb3, 0x19, 0xa0, - 0xb5, 0x6f, 0xec, 0xb8, 0x2a, 0xa6, 0xdf, 0x76, 0xf2, 0x83, 0xe6, 0xa6, - 0x79, 0x81, 0x85, 0x91, 0xf4, 0xb8, 0x36, 0xdc, 0x26, 0x87, 0x33, 0x92, - 0x48, 0x49, 0xa9, 0x7b, 0x66, 0xac, 0x2e, 0x6c, 0x98, 0x37, 0xd6, 0x81, - 0x35, 0x87, 0xbe, 0x4c, 0x54, 0x08, 0xb7, 0x67, 0x4e, 0x0f, 0x5b, 0x69, - 0x41, 0xaa, 0x37, 0x46, 0x9b, 0x36, 0xdb, 0x91, 0x5a, 0x3c, 0xfb, 0xe0, - 0xf0, 0x4b, 0x23, 0xb9, 0xf1, 0xc1, 0x21, 0xec, 0x0a, 0xca, 0x6e, 0xa1, - 0x7a, 0x83, 0x1e, 0x15, 0x3a, 0x11, 0x4f, 0x17, 0xca, 0x9c, 0xa8, 0xa5, - 0xdf, 0x70, 0x06, 0xaa, 0x72, 0xed, 0x52, 0xe9, 0xd3, 0x68, 0xa9, 0x0e, - 0x4e, 0xf5, 0x4a, 0xf6, 0x25, 0x0e, 0x29, 0x6b, 0xd5, 0xe2, 0xe0, 0x3e, - 0x86, 0xbd, 0xa4, 0x55, 0x4d, 0x85, 0x3d, 0x6f, 0x9b, 0x41, 0x52, 0xdf, - 0x03, 0x5f, 0x11, 0x9e, 0x14, 0x6f, 0x03, 0xfe, 0x4c, 0xf7, 0x34, 0xd4, - 0xce, 0xd0, 0xe0, 0x56, 0x18, 0x1b, 0xca, 0x8b, 0x54, 0xf4, 0x00, 0xa7, - 0x06, 0x0a, 0x37, 0xd7, 0x9c, 0xa6, 0xec, 0x74, 0x84, 0x2f, 0xd8, 0x14, - 0x02, 0x76, 0x35, 0x89, 0x47, 0x51, 0xda, 0x84, 0x30, 0x1f, 0x83, 0x10, - 0xe2, 0x4d, 0x8c, 0x2c, 0xea, 0x5f, 0x3b, 0x02, 0x32, 0xb1, 0xc2, 0xc1, - 0x85, 0x8b, 0xda, 0xa3, 0xa0, 0xbb, 0x48, 0x7e, 0xbd, 0x14, 0x7b, 0x1b, - 0x5c, 0x04, 0xe8, 0x64, 0xf4, 0x02, 0x85, 0xac, 0x79, 0xa1, 0xec, 0x88, - 0x10, 0xa5, 0xb9, 0x33, 0x25, 0x49, 0xce, 0x0d, 0x84, 0x8a, 0xa1, 0x84, - 0xcf, 0x92, 0x3b, 0x64, 0x45, 0x5e, 0x73, 0x9d, 0xf4, 0xae, 0x66, 0xe5, - 0x78, 0x6c, 0x26, 0xd5, 0xd3, 0x3b, 0xce, 0x8c, 0x30, 0xad, 0xae, 0x20, - 0xf4, 0xf6, 0x15, 0xbf, 0xce, 0x1d, 0x56, 0x94, 0x54, 0x42, 0x5f, 0xab, - 0x72, 0x73, 0x69, 0x77, 0xc5, 0xb5, 0x23, 0xbb, 0x8a, 0x62, 0x47, 0x0f, - 0x5e, 0x21, 0x46, 0x8e, 0xc4, 0xc2, 0xe7, 0x89, 0xf6, 0x1f, 0x84, 0xf1, - 0x52, 0x2e, 0xa9, 0x4b, 0xfb, 0x14, 0xe6, 0x03, 0x96, 0x23, 0x65, 0x6e, - 0xf2, 0x48, 0x9e, 0x27, 0x4d, 0xd8, 0x4c, 0xa0, 0xf7, 0x1f, 0x34, 0x8a, - 0x9d, 0x3e, 0xfd, 0xdc, 0xfd, 0xaf, 0x9e, 0x56, 0x33, 0xa2, 0xfa, 0x71, - 0x3c, 0xf8, 0x86, 0x0a, 0xc8, 0xd4, 0x5a, 0x42, 0x29, 0x52, 0x31, 0x89, - 0xdc, 0x86, 0x2b, 0x5b, 0xcf, 0xe7, 0x57, 0x3f, 0xee, 0x0c, 0x76, 0xb6, - 0xb7, 0xb7, 0x7f, 0x1e, 0x2e, 0x68, 0xe9, 0x2e, 0xd1, 0xbc, 0xf9, 0x39, - 0x5c, 0xe4, 0x13, 0x32, 0xe4, 0x9b, 0xcd, 0xcc, 0x53, 0x6a, 0x7a, 0x8b, - 0xfb, 0xdb, 0xf2, 0x6e, 0xfe, 0x66, 0xb2, 0x18, 0x14, 0x65, 0x2c, 0x44, - 0xe6, 0x62, 0x59, 0xa1, 0x2c, 0x83, 0xd6, 0x02, 0xfd, 0xf8, 0xfe, 0xf4, - 0xf0, 0xe8, 0x64, 0xff, 0xaf, 0x1a, 0x63, 0x6b, 0x81, 0x13, 0x68, 0x24, - 0x1f, 0xb3, 0xb4, 0x7e, 0xf8, 0x58, 0x67, 0x8d, 0xf9, 0x72, 0xe3, 0xd9, - 0x26, 0x05, 0xa1, 0x05, 0xd5, 0xa0, 0xaf, 0xb2, 0x56, 0x55, 0x7b, 0x89, - 0x57, 0x72, 0xb7, 0x77, 0x47, 0x46, 0xd9, 0x69, 0x07, 0xbe, 0x36, 0xe4, - 0x0f, 0x19, 0xcf, 0x6e, 0xea, 0xfc, 0x1f, 0xe6, 0xde, 0x21, 0xa4, 0xbf, - 0x30, 0x9e, 0xf9, 0x02, 0x08, 0x0a, 0xe4, 0xd6, 0xa6, 0xdf, 0x92, 0xaf, - 0x4e, 0xbe, 0xa5, 0x30, 0x72, 0xab, 0xd3, 0xcc, 0x39, 0x65, 0x3f, 0xf9, - 0xe2, 0xc5, 0xce, 0xee, 0xa6, 0x2d, 0x6f, 0xc1, 0xc9, 0x28, 0x74, 0x38, - 0x03, 0xb7, 0xfa, 0x3f, 0x32, 0xaf, 0xce, 0x00, 0x73, 0x65, 0xe7, 0x61, - 0x44, 0x68, 0x8b, 0x5e, 0x73, 0xc0, 0xa0, 0x83, 0x27, 0xb8, 0x01, 0xe8, - 0x1f, 0x25, 0x8a, 0x04, 0xd0, 0x39, 0x17, 0x2e, 0x1b, 0x7c, 0x48, 0x81, - 0x4a, 0xaa, 0xd9, 0x98, 0xe1, 0x48, 0x7e, 0x49, 0x5c, 0x36, 0xf9, 0xad, - 0x65, 0x9d, 0x27, 0x3d, 0x55, 0x66, 0xb5, 0x67, 0x35, 0x39, 0x89, 0x49, - 0xfe, 0x48, 0x5e, 0xeb, 0x6f, 0x5f, 0x84, 0x91, 0x75, 0x09, 0xdc, 0x6c, - 0x5d, 0x58, 0x24, 0x88, 0x2d, 0xf0, 0x9e, 0x53, 0x48, 0x23, 0x71, 0x5a, - 0x3e, 0x69, 0x52, 0xb1, 0x5b, 0xcf, 0xd1, 0x8a, 0x0a, 0xbf, 0xc4, 0xda, - 0x7a, 0xa3, 0xf3, 0xb3, 0x5e, 0x5f, 0x1c, 0x78, 0xa6, 0x8f, 0x81, 0xf9, - 0xdb, 0x8c, 0x18, 0xe8, 0x9d, 0x2f, 0xb6, 0x5f, 0x3c, 0x17, 0xfb, 0x1e, - 0x06, 0x8a, 0xd4, 0xd3, 0xb0, 0x02, 0x00, 0xbe, 0xb3, 0xd5, 0x7b, 0x81, - 0x7d, 0xe1, 0xf2, 0xec, 0x0c, 0xe5, 0xb5, 0x27, 0xc9, 0x16, 0x93, 0xbe, - 0x42, 0xdc, 0xaf, 0x8c, 0x8a, 0x90, 0x3d, 0x03, 0x4f, 0xc1, 0x20, 0xc3, - 0x62, 0xdf, 0xcf, 0x3b, 0x0b, 0x69, 0xc7, 0xf0, 0x5a, 0x7f, 0x8b, 0x2d, - 0xa4, 0x5f, 0x68, 0x58, 0x8a, 0xa4, 0x59, 0x9c, 0x1f, 0x5a, 0xe4, 0x38, - 0x1e, 0xd8, 0x4a, 0x6f, 0x8a, 0x62, 0x8e, 0x7b, 0x73, 0x1c, 0xaa, 0x83, - 0x54, 0x70, 0x6d, 0xdc, 0xe2, 0xb9, 0xec, 0x16, 0x4a, 0x3f, 0x1e, 0x3e, - 0x1e, 0x14, 0xda, 0x9d, 0x1e, 0x5a, 0x78, 0x4d, 0x3f, 0xa3, 0xd3, 0xa2, - 0x2f, 0x9c, 0xd2, 0xf9, 0xfb, 0x4e, 0x4b, 0xb2, 0x29, 0xda, 0xab, 0x6e, - 0x27, 0x17, 0xa8, 0xce, 0xcd, 0xd3, 0x7b, 0x77, 0xbb, 0x33, 0xdc, 0x8e, - 0x3a, 0x39, 0xdf, 0x52, 0x41, 0xb5, 0x36, 0x98, 0x19, 0x4d, 0x47, 0xd1, - 0x60, 0xc9, 0x4f, 0x09, 0x06, 0x61, 0x75, 0x30, 0x05, 0xaa, 0x5a, 0x01, - 0x3b, 0x46, 0x2f, 0x5b, 0xa4, 0x83, 0x56, 0xc5, 0x90, 0xe7, 0xc1, 0xc9, - 0x34, 0x83, 0xda, 0xf9, 0x75, 0x83, 0xda, 0xf9, 0x5d, 0x07, 0xb5, 0xfb, - 0xeb, 0x06, 0xb5, 0xfb, 0x7b, 0x0d, 0xaa, 0x1a, 0x68, 0x5e, 0x46, 0x1c, - 0xb1, 0xf8, 0x5c, 0xab, 0x87, 0x90, 0xc4, 0x43, 0xf8, 0x7e, 0xc4, 0x4e, - 0x2f, 0x84, 0xa3, 0x0f, 0x8e, 0xe4, 0x5d, 0x17, 0x41, 0xc3, 0x32, 0x43, - 0x18, 0x39, 0x6b, 0xeb, 0x58, 0xd9, 0x98, 0xc3, 0xba, 0x5d, 0x02, 0x93, - 0xdd, 0xb5, 0xcb, 0x42, 0xbb, 0x71, 0x71, 0x43, 0x10, 0xea, 0x82, 0x79, - 0x4e, 0xb2, 0x5c, 0xc0, 0x54, 0x9f, 0x8a, 0xd0, 0x7e, 0xd9, 0x9e, 0x30, - 0x41, 0xe7, 0x44, 0x75, 0x32, 0x2d, 0x38, 0x4b, 0xbe, 0x7d, 0x5c, 0x63, - 0xf4, 0xe4, 0x74, 0xc9, 0xc9, 0x49, 0x28, 0x56, 0x9d, 0x17, 0x12, 0xe3, - 0xcb, 0x96, 0x45, 0x73, 0x37, 0x5f, 0x95, 0xf8, 0x93, 0xc6, 0xd9, 0x0f, - 0x0c, 0x3b, 0x54, 0xa1, 0x07, 0x77, 0x5e, 0xc6, 0x60, 0x9b, 0x14, 0xd7, - 0x9f, 0x17, 0x5c, 0x66, 0x8b, 0x6b, 0xdd, 0x97, 0x1e, 0x44, 0x99, 0xc8, - 0xb0, 0x2c, 0x83, 0x7f, 0x08, 0x5c, 0xe9, 0x24, 0x32, 0x53, 0x5c, 0x0a, - 0x05, 0x73, 0x89, 0xc6, 0x22, 0xe9, 0x73, 0xb6, 0x5e, 0xa1, 0xd6, 0xf4, - 0x59, 0x61, 0x07, 0x88, 0xfb, 0x5e, 0x7c, 0xeb, 0x34, 0xe2, 0x67, 0x06, - 0xb7, 0x7d, 0xae, 0x5a, 0x3a, 0x2e, 0x6b, 0x44, 0x5b, 0xcb, 0xa2, 0x05, - 0x36, 0xa3, 0x7a, 0x92, 0xe7, 0xbf, 0xa7, 0x93, 0x8c, 0x7b, 0x45, 0x37, - 0x8f, 0x6f, 0x18, 0x85, 0xc4, 0x62, 0xcb, 0x64, 0xcf, 0x5a, 0x9b, 0x66, - 0xf7, 0x8c, 0xb6, 0xcc, 0xee, 0xd8, 0xff, 0x7b, 0x36, 0xcc, 0xfc, 0x3f, - 0xd5, 0xe6, 0xa5, 0xa4, 0xc3, 0x7c, 0x96, 0xc2, 0x96, 0x24, 0x4b, 0xc3, - 0xd8, 0xb6, 0xb3, 0x2c, 0xa5, 0xdc, 0x74, 0x35, 0x61, 0x5f, 0x67, 0xf7, - 0xac, 0xfc, 0x87, 0x97, 0x3d, 0xe7, 0x31, 0x5e, 0xab, 0xd9, 0x6c, 0x7f, - 0x74, 0x70, 0x7c, 0xdc, 0x32, 0x22, 0xd2, 0xb2, 0x21, 0x88, 0x4f, 0x52, - 0xb2, 0x6a, 0xca, 0x71, 0x71, 0xea, 0x55, 0x60, 0x73, 0xa0, 0xf4, 0x4e, - 0xc0, 0x64, 0x52, 0x85, 0xe1, 0xb4, 0xce, 0x35, 0x9f, 0x36, 0xe5, 0x60, - 0xad, 0x65, 0x41, 0xd6, 0x01, 0x4a, 0x6c, 0xb8, 0x5e, 0x1a, 0x59, 0xb7, - 0xfe, 0xad, 0x09, 0x72, 0xf8, 0x7b, 0x93, 0x5e, 0x24, 0xf7, 0xf1, 0xac, - 0xd2, 0xfc, 0xcc, 0x54, 0xa2, 0xf6, 0x25, 0x7f, 0x91, 0x40, 0x74, 0x48, - 0x09, 0x64, 0x0a, 0x34, 0x83, 0xd4, 0xf1, 0xa2, 0x44, 0x99, 0x95, 0x90, - 0x03, 0xcb, 0x08, 0xcc, 0x50, 0x75, 0xb7, 0x2e, 0x76, 0x9b, 0x4b, 0x2f, - 0xfb, 0x5a, 0xe0, 0x0f, 0x22, 0xc4, 0xde, 0x4a, 0x11, 0xc9, 0xcb, 0x52, - 0xf4, 0x4a, 0xfb, 0x51, 0xee, 0x94, 0x5e, 0xf4, 0x7e, 0x21, 0x4f, 0xd6, - 0x9d, 0x1f, 0xaf, 0xd6, 0x3c, 0x4c, 0x4e, 0xed, 0xc6, 0x0c, 0x8a, 0x3e, - 0xd0, 0x22, 0x9b, 0x6a, 0x22, 0xb1, 0x79, 0xf8, 0x7d, 0xa0, 0x99, 0xae, - 0x31, 0x5e, 0x20, 0x45, 0x4b, 0xc8, 0xec, 0xfb, 0xe0, 0x80, 0xfe, 0x3c, - 0x68, 0x15, 0xae, 0x35, 0xe9, 0x94, 0x87, 0x85, 0x51, 0x0a, 0x16, 0x92, - 0xed, 0x16, 0x68, 0x47, 0x3c, 0x89, 0x28, 0xba, 0x61, 0x7c, 0xbe, 0x82, - 0xe7, 0xb6, 0x98, 0xe5, 0x0d, 0x2a, 0x58, 0xda, 0xec, 0x29, 0x09, 0xb9, - 0x9e, 0x94, 0x33, 0x73, 0xac, 0x03, 0x03, 0x3f, 0xe5, 0x5a, 0xe8, 0x21, - 0x20, 0x6b, 0xeb, 0x7c, 0x51, 0x1a, 0xd5, 0x53, 0x00, 0x90, 0xd9, 0xf0, - 0x85, 0x37, 0x55, 0xc9, 0xf5, 0xaa, 0x39, 0x86, 0x70, 0xa0, 0x2d, 0xed, - 0x0d, 0x79, 0x5a, 0xba, 0x19, 0x46, 0x35, 0xef, 0x73, 0xf0, 0x59, 0x3c, - 0x6f, 0x85, 0xef, 0xd2, 0x6f, 0x0d, 0x21, 0x65, 0x55, 0x59, 0x27, 0xdf, - 0xbd, 0xd0, 0x2c, 0xf5, 0xef, 0xf3, 0x62, 0x4a, 0xc7, 0x98, 0x0b, 0x84, - 0x5b, 0x2b, 0xc8, 0x83, 0x4b, 0xc6, 0x8e, 0xb2, 0x36, 0x75, 0xad, 0xea, - 0xeb, 0x52, 0x63, 0x9e, 0xcd, 0x64, 0x9d, 0x99, 0x00, 0x0e, 0xd9, 0x0c, - 0x92, 0x90, 0x79, 0x02, 0x0b, 0x5c, 0x3b, 0x81, 0x9e, 0xf1, 0xe7, 0x88, - 0x01, 0x3f, 0x24, 0xe5, 0xb8, 0x61, 0x0c, 0x7e, 0x3b, 0xea, 0x8b, 0x7c, - 0x72, 0x93, 0xb9, 0x1a, 0xd1, 0xd3, 0x32, 0x8c, 0x1c, 0x87, 0x3e, 0x41, - 0x6d, 0x6a, 0x40, 0x6e, 0x47, 0xe0, 0xbd, 0x26, 0x64, 0x9b, 0x6b, 0x8a, - 0x01, 0x27, 0xbb, 0x12, 0x0c, 0x6c, 0x6b, 0x2b, 0x72, 0x92, 0x71, 0x1b, - 0x13, 0x9a, 0xa7, 0xa8, 0x53, 0x6e, 0x67, 0x02, 0xf0, 0x08, 0x21, 0xca, - 0xb4, 0x7e, 0xac, 0x3c, 0x67, 0xbf, 0xe5, 0x1f, 0xe4, 0x05, 0xeb, 0x4b, - 0xd0, 0x63, 0x25, 0xa6, 0x79, 0x5b, 0x58, 0x98, 0x97, 0x33, 0xc2, 0x79, - 0x29, 0xd6, 0xbf, 0x86, 0x3d, 0x16, 0x66, 0x4a, 0xae, 0xc4, 0x75, 0xe9, - 0xf0, 0xcd, 0x43, 0x8a, 0x2e, 0x3b, 0x87, 0xc5, 0xdf, 0x2a, 0x22, 0x40, - 0xce, 0xa0, 0x4a, 0x0e, 0xcb, 0xbb, 0x62, 0x70, 0x42, 0xa1, 0xaf, 0xc9, - 0x49, 0x79, 0x65, 0x96, 0xea, 0x7d, 0xd4, 0x62, 0xfa, 0xe1, 0xec, 0x7d, - 0xb2, 0xf1, 0x81, 0xe6, 0x74, 0x66, 0x9d, 0x52, 0xf4, 0xe4, 0xa6, 0xd4, - 0xfc, 0x34, 0xfc, 0xc7, 0x43, 0x5b, 0xef, 0x27, 0x47, 0x3f, 0xec, 0xbf, - 0x3b, 0x3b, 0x39, 0xfa, 0x69, 0x85, 0xd6, 0x48, 0x1f, 0x7f, 0xa9, 0x43, - 0xa7, 0xd2, 0xd2, 0x52, 0xc4, 0xc2, 0xdc, 0x8a, 0xb3, 0x87, 0xd5, 0x5c, - 0x80, 0x0f, 0x8e, 0x12, 0xdf, 0x68, 0x74, 0x76, 0x3c, 0x90, 0x3c, 0x7f, - 0x29, 0x77, 0xcf, 0xd0, 0x69, 0x38, 0xbf, 0x92, 0xf6, 0xf6, 0x6d, 0x18, - 0xec, 0xab, 0x67, 0xa1, 0xef, 0xa1, 0xd1, 0x9a, 0xb1, 0xc7, 0x40, 0x62, - 0x45, 0x51, 0x45, 0xe7, 0x08, 0xbe, 0xa5, 0x48, 0xcb, 0x68, 0x9d, 0x4a, - 0xd4, 0x66, 0x9f, 0xa1, 0xe8, 0xd9, 0x6a, 0xde, 0x09, 0x60, 0x0b, 0x6c, - 0xa0, 0xe7, 0x02, 0x58, 0x0b, 0xd0, 0x5e, 0x6a, 0x57, 0x88, 0xda, 0xd2, - 0x06, 0x73, 0x0b, 0x57, 0xd5, 0x91, 0xd9, 0xc1, 0x9e, 0x91, 0x11, 0x96, - 0xc9, 0x5e, 0xef, 0x77, 0x14, 0xa2, 0x3e, 0x58, 0xff, 0xfd, 0x6f, 0x7f, - 0x81, 0x48, 0x38, 0xc6, 0x13, 0x17, 0xc8, 0xa3, 0xe4, 0x40, 0xb7, 0xa8, - 0x12, 0xc4, 0xe3, 0x14, 0x31, 0x2d, 0x85, 0xe6, 0xbb, 0x7e, 0x9a, 0x5f, - 0x45, 0x04, 0x6e, 0xdf, 0x03, 0x85, 0xf7, 0x57, 0x51, 0x81, 0xee, 0x7b, - 0x18, 0x9e, 0xf7, 0xa9, 0x74, 0xf0, 0xe1, 0xf7, 0xa5, 0x03, 0x14, 0x0f, - 0x7e, 0xfd, 0xe1, 0xfc, 0x64, 0xd5, 0x96, 0xa7, 0x30, 0xee, 0x12, 0xa2, - 0x01, 0x95, 0xb7, 0x0f, 0xca, 0xa2, 0xc0, 0x1d, 0x42, 0x57, 0x38, 0xf1, - 0x62, 0x5b, 0x14, 0x25, 0xac, 0xc7, 0xa7, 0xf9, 0xbd, 0xca, 0xbc, 0x4c, - 0xa3, 0x94, 0x74, 0x8d, 0x2b, 0xc1, 0x43, 0x81, 0x7d, 0x22, 0x7e, 0x46, - 0xdd, 0x07, 0x98, 0x6d, 0x1b, 0xad, 0x53, 0x70, 0x24, 0x2f, 0x4a, 0x5b, - 0xb2, 0x0e, 0xa6, 0xf3, 0xd8, 0x9d, 0x4b, 0x13, 0x22, 0x70, 0x0a, 0x76, - 0x90, 0xf6, 0x6d, 0x36, 0xd9, 0xa0, 0xa4, 0x43, 0x21, 0x22, 0xb8, 0xa4, - 0x3e, 0x20, 0x6b, 0xdf, 0xa5, 0xd2, 0xc7, 0x5c, 0x44, 0xb6, 0xb8, 0xb2, - 0xae, 0xa9, 0x2f, 0x96, 0x46, 0x92, 0x01, 0x2d, 0xe8, 0x1e, 0x2d, 0x28, - 0xee, 0x25, 0x54, 0x39, 0x51, 0xc1, 0x70, 0xab, 0x49, 0x67, 0x37, 0xc8, - 0xf5, 0x1e, 0x26, 0xef, 0x78, 0x71, 0xcd, 0x00, 0x09, 0xc4, 0x35, 0x06, - 0xab, 0x3b, 0x5e, 0x5e, 0x5d, 0xa1, 0x8a, 0xc3, 0x3e, 0x0b, 0x94, 0xb5, - 0xd6, 0xa5, 0x03, 0x2d, 0xad, 0x7f, 0xb1, 0x2e, 0x99, 0xb5, 0x3d, 0x29, - 0x64, 0x4b, 0xfa, 0x4d, 0x8f, 0xf5, 0x8b, 0x10, 0xfd, 0x8b, 0x68, 0xbf, - 0x9f, 0xac, 0xbf, 0x8e, 0xbf, 0xc4, 0xaa, 0x35, 0x03, 0x6d, 0x4d, 0xac, - 0x6f, 0xce, 0x2c, 0xe4, 0x75, 0x6e, 0x24, 0xd4, 0x22, 0x8c, 0xae, 0xe7, - 0x64, 0x78, 0x8e, 0x95, 0x60, 0x2d, 0x3e, 0x8d, 0x0e, 0xf2, 0x5f, 0xb5, - 0x3f, 0x2d, 0xcd, 0x02, 0x68, 0xbc, 0xcb, 0x32, 0xc0, 0xaa, 0x15, 0x58, - 0x2c, 0xe9, 0x3f, 0x74, 0xcd, 0xc2, 0x13, 0x2a, 0xa0, 0x20, 0xca, 0x4d, - 0xa4, 0x56, 0x0f, 0x91, 0x1f, 0xe7, 0x06, 0x4b, 0xa1, 0x59, 0x15, 0x6c, - 0x78, 0xbb, 0xcd, 0x8e, 0xe5, 0x21, 0x98, 0xb5, 0x4a, 0x47, 0x56, 0x99, - 0x71, 0x35, 0x19, 0x00, 0x28, 0x53, 0x51, 0xf2, 0x59, 0x09, 0x10, 0xb7, - 0xcb, 0x48, 0x7d, 0x09, 0x91, 0x6c, 0xd4, 0x19, 0xe9, 0xce, 0x0d, 0xe7, - 0x15, 0x68, 0x4e, 0x04, 0x29, 0x8d, 0x78, 0x30, 0x2b, 0xb8, 0xa8, 0x8a, - 0x18, 0xf9, 0xfb, 0x21, 0x24, 0x33, 0xe3, 0x04, 0x68, 0xe9, 0x42, 0xab, - 0x52, 0xb4, 0x55, 0x62, 0x0d, 0x1f, 0xf8, 0xb5, 0x5a, 0x55, 0xab, 0x31, - 0x5f, 0xab, 0x8a, 0x78, 0x1a, 0xfd, 0xec, 0xb2, 0x36, 0xd6, 0x2a, 0x52, - 0xca, 0x3c, 0x46, 0x73, 0x47, 0x0f, 0x22, 0x00, 0x82, 0x4e, 0x98, 0xd1, - 0xdb, 0x21, 0x60, 0x74, 0xb9, 0xce, 0xa1, 0xe0, 0xd3, 0xaa, 0x33, 0x4c, - 0xdd, 0xf1, 0x58, 0x34, 0x64, 0x7a, 0x29, 0xb8, 0x31, 0x99, 0x83, 0x66, - 0x19, 0x8a, 0x92, 0x13, 0xdc, 0x21, 0x43, 0x1d, 0x07, 0x56, 0x4f, 0x73, - 0x6a, 0xac, 0x4b, 0x96, 0x85, 0x6c, 0xee, 0x57, 0x04, 0xb4, 0xa6, 0x92, - 0xe4, 0x76, 0x22, 0x19, 0x30, 0x17, 0x81, 0x6c, 0x49, 0x38, 0xae, 0x22, - 0x08, 0x10, 0xb9, 0x27, 0xcd, 0xf6, 0x3e, 0xb3, 0x60, 0xb3, 0x3e, 0x07, - 0x52, 0x9f, 0xbf, 0xd4, 0xe9, 0x95, 0xc6, 0x3d, 0xf1, 0x32, 0x1a, 0xa3, - 0x4d, 0x72, 0x66, 0x8f, 0x9f, 0xed, 0xc1, 0x8e, 0x40, 0xe0, 0x34, 0xac, - 0x2a, 0x33, 0x4a, 0x1a, 0xe0, 0xd4, 0x26, 0x4b, 0x52, 0xf1, 0xe1, 0x6e, - 0x0d, 0xab, 0x3d, 0xba, 0x3b, 0x05, 0x5a, 0x49, 0xd2, 0xfb, 0x52, 0x6d, - 0x0b, 0x3d, 0x31, 0x48, 0x01, 0xab, 0xd1, 0x96, 0x95, 0x54, 0x5d, 0xbc, - 0x71, 0xcb, 0x11, 0x71, 0xb9, 0xb0, 0xaf, 0x14, 0xd8, 0x0c, 0xb4, 0x6b, - 0xa6, 0xd5, 0x41, 0x2f, 0xaa, 0x61, 0xd9, 0x79, 0x27, 0x52, 0xe6, 0xa3, - 0x7d, 0xb4, 0xb4, 0x8b, 0x3b, 0xcd, 0x6f, 0x42, 0x41, 0xa0, 0x26, 0x6f, - 0x96, 0xa1, 0x17, 0xc3, 0xa2, 0xa7, 0xc2, 0x45, 0x05, 0x1e, 0x4c, 0x4b, - 0xee, 0xfc, 0x48, 0x38, 0x4b, 0x64, 0x3b, 0x69, 0x10, 0x21, 0xc9, 0xf6, - 0x98, 0xb1, 0x42, 0x12, 0x77, 0x15, 0xff, 0x7d, 0xd3, 0xa3, 0x1b, 0x5d, - 0xdb, 0x8b, 0x61, 0xde, 0xfe, 0xd3, 0x7f, 0xe8, 0x97, 0xc0, 0x80, 0xfc, - 0x2f, 0xf5, 0xb9, 0xaa, 0xd3, 0x38, 0x8d, 0xf3, 0xb3, 0xe4, 0x4f, 0x58, - 0x15, 0x60, 0x58, 0xf3, 0xd2, 0x00, 0xa2, 0x86, 0x1a, 0xfc, 0xd3, 0xd0, - 0xba, 0x8a, 0xa5, 0x91, 0x54, 0xcb, 0x84, 0x87, 0xdc, 0x96, 0x8f, 0xf1, - 0x4f, 0x05, 0xd5, 0x2f, 0xd3, 0xfa, 0xe1, 0x82, 0xf9, 0xc0, 0xe4, 0xf5, - 0x53, 0x25, 0x4c, 0xb3, 0x49, 0xc7, 0x8c, 0xc1, 0x2b, 0x9f, 0x87, 0x16, - 0x21, 0x8a, 0xc3, 0xd8, 0xc3, 0x6e, 0xfc, 0x69, 0xc0, 0x00, 0x9f, 0x42, - 0xe1, 0x82, 0xd7, 0xab, 0x9f, 0xf1, 0xc6, 0xdc, 0xe5, 0xc5, 0xb3, 0xdd, - 0x81, 0x27, 0xa6, 0xf4, 0xa3, 0xa1, 0x6c, 0x6c, 0xdb, 0x2c, 0x27, 0x13, - 0xb8, 0xa2, 0xc8, 0x0e, 0x0d, 0x6b, 0xed, 0x9f, 0x12, 0x81, 0x89, 0x41, - 0xa6, 0xf1, 0x12, 0x52, 0xd9, 0x9d, 0x53, 0x4b, 0x57, 0xba, 0x7f, 0x9e, - 0x20, 0x1e, 0x07, 0xe1, 0x14, 0x8b, 0xf5, 0x91, 0x02, 0xec, 0x1f, 0xe1, - 0x6f, 0xe2, 0x57, 0x0f, 0xf8, 0xa3, 0xc1, 0x05, 0x7d, 0xa4, 0x61, 0x5d, - 0x92, 0xc6, 0x4b, 0xda, 0xaf, 0x06, 0x7c, 0xf6, 0x93, 0x10, 0x4d, 0x27, - 0x89, 0x85, 0xc9, 0x50, 0xec, 0xa8, 0x39, 0xd2, 0xc1, 0x38, 0xf5, 0x34, - 0x7d, 0xe4, 0xb2, 0x3f, 0xf9, 0x6d, 0xf6, 0x78, 0x6b, 0x40, 0x2a, 0x25, - 0x27, 0xfa, 0x9c, 0xc4, 0x4f, 0x67, 0xe8, 0xf3, 0xfd, 0xa1, 0x1c, 0x09, - 0xc6, 0xa0, 0x13, 0xc3, 0xa7, 0x9a, 0xf3, 0x60, 0xcd, 0xbd, 0x32, 0x74, - 0xe6, 0x8a, 0x63, 0xcc, 0x68, 0xf2, 0xa7, 0xcd, 0x40, 0xb9, 0xdc, 0xee, - 0x13, 0x73, 0x2d, 0xd9, 0x2e, 0x8a, 0x80, 0x08, 0xaf, 0xda, 0x4d, 0x1b, - 0x9a, 0x08, 0x7c, 0x3f, 0x6a, 0xde, 0x4b, 0xa2, 0x7b, 0x9b, 0x1c, 0x53, - 0xea, 0x34, 0x62, 0x63, 0x44, 0x5a, 0xc9, 0x01, 0xcb, 0x3b, 0x56, 0xb0, - 0x50, 0xdb, 0xd3, 0xe3, 0xcd, 0xd9, 0x51, 0xf0, 0x35, 0x3d, 0xf0, 0x24, - 0xac, 0x61, 0x37, 0xef, 0x6a, 0x27, 0x08, 0xc3, 0xbd, 0x6c, 0x16, 0x1f, - 0x81, 0xbe, 0xf9, 0x11, 0x60, 0x5c, 0x17, 0x9e, 0xe9, 0x00, 0x1f, 0x60, - 0xbd, 0x18, 0x2f, 0xcd, 0x28, 0xda, 0xb9, 0x94, 0x0b, 0x99, 0x95, 0x90, - 0xa1, 0x42, 0x6c, 0xa9, 0x70, 0xe5, 0x3a, 0x15, 0x04, 0xd4, 0x95, 0xd2, - 0x49, 0xb0, 0x7a, 0x1e, 0x0c, 0x8c, 0xc2, 0x16, 0x3e, 0x02, 0xa5, 0xc4, - 0x52, 0x88, 0xb9, 0x38, 0xb2, 0x8a, 0x80, 0xdc, 0x3b, 0x30, 0x26, 0x0c, - 0x6b, 0x87, 0x4c, 0xd3, 0x65, 0xa1, 0xe1, 0x12, 0x8f, 0x0f, 0x0c, 0x42, - 0xbe, 0x96, 0xf6, 0xd3, 0x32, 0x22, 0x14, 0x4f, 0x84, 0x8c, 0x6d, 0x33, - 0x50, 0x12, 0xb5, 0xd5, 0xdb, 0x3e, 0x0c, 0x6b, 0x95, 0x27, 0x41, 0x56, - 0xe4, 0xe7, 0xc3, 0x5d, 0xc6, 0xb6, 0x9d, 0xe5, 0xa9, 0xc3, 0x08, 0xe4, - 0x19, 0xe0, 0x98, 0x60, 0xbe, 0x40, 0x22, 0xbb, 0x2e, 0xef, 0x9e, 0x3c, - 0x5c, 0x1c, 0x26, 0x42, 0x32, 0xdd, 0x70, 0xc5, 0xca, 0x70, 0x65, 0x71, - 0xad, 0x35, 0x69, 0x97, 0x86, 0x97, 0x44, 0x2e, 0xe8, 0xee, 0xa2, 0xc4, - 0x42, 0xca, 0x92, 0x15, 0x08, 0x31, 0xc9, 0x86, 0x56, 0x3f, 0x66, 0xf5, - 0x74, 0xd3, 0x1e, 0x04, 0x56, 0xf8, 0xb4, 0x30, 0xc9, 0x53, 0xcd, 0x81, - 0xbb, 0x04, 0xf9, 0xfb, 0xe1, 0x86, 0x23, 0x52, 0xee, 0x63, 0xbe, 0xf0, - 0x59, 0x42, 0xab, 0x64, 0xb9, 0xf5, 0x7b, 0x09, 0xbc, 0x29, 0x05, 0xdc, - 0x09, 0x13, 0xa3, 0x53, 0xf4, 0xd4, 0x38, 0x26, 0x88, 0x0d, 0x60, 0xa4, - 0x07, 0x2f, 0xeb, 0x76, 0xa0, 0xf2, 0x86, 0xd8, 0x81, 0x8e, 0xcf, 0x6e, - 0x9f, 0x27, 0xa1, 0xdd, 0xa7, 0xf3, 0x9f, 0x79, 0xea, 0x65, 0xfb, 0x70, - 0xbd, 0x8a, 0xa4, 0xe8, 0xf0, 0x94, 0xb8, 0x2a, 0x9b, 0x4e, 0x49, 0x06, - 0xef, 0xa7, 0x4f, 0x78, 0x93, 0x68, 0x8f, 0xf3, 0xf1, 0x31, 0x78, 0x93, - 0x78, 0x72, 0x24, 0xa6, 0x27, 0x25, 0x19, 0x2a, 0x8d, 0xf9, 0xde, 0x76, - 0x6c, 0xee, 0xda, 0xc4, 0x7e, 0x01, 0x38, 0x89, 0x5c, 0xf1, 0x6e, 0x26, - 0x50, 0x79, 0x70, 0x08, 0x06, 0x8f, 0x8f, 0xe4, 0x32, 0x38, 0xd1, 0x31, - 0x80, 0x06, 0x1a, 0x83, 0x42, 0x0d, 0xd4, 0x76, 0x0c, 0xd8, 0x56, 0xef, - 0x63, 0x21, 0xdc, 0x0c, 0x75, 0x21, 0x04, 0xbd, 0xe6, 0x53, 0x4e, 0xf4, - 0x2a, 0x42, 0x0b, 0xc7, 0xa1, 0x9d, 0x7d, 0x64, 0x32, 0x86, 0xbd, 0x53, - 0x61, 0x90, 0x2c, 0xc0, 0x46, 0x2a, 0xab, 0xa1, 0x36, 0xcb, 0x01, 0x34, - 0x7a, 0x1a, 0xd2, 0x13, 0x6b, 0x41, 0x51, 0x75, 0x76, 0x3a, 0x92, 0x49, - 0xa2, 0x57, 0xb6, 0x40, 0x3a, 0x10, 0x2a, 0x01, 0x58, 0xc5, 0x84, 0xd2, - 0x52, 0x1e, 0x6f, 0x0e, 0xe0, 0x74, 0xb6, 0x41, 0x1b, 0x67, 0x0f, 0x18, - 0x0f, 0x16, 0x6c, 0xcd, 0x6d, 0x98, 0x78, 0x79, 0xf4, 0x9f, 0xc2, 0xa8, - 0x22, 0x4b, 0x42, 0x0c, 0xda, 0x1e, 0xbe, 0x0b, 0x3f, 0x4e, 0xd6, 0x9c, - 0x41, 0x3d, 0x82, 0xff, 0xfb, 0x84, 0x1a, 0x3d, 0x6d, 0x65, 0xd5, 0x39, - 0x4f, 0x4f, 0xcd, 0x21, 0x4a, 0xe2, 0x32, 0x07, 0x3d, 0x6d, 0xfe, 0x1c, - 0xfe, 0xc9, 0x87, 0x8d, 0x22, 0xb9, 0x3e, 0x2a, 0xe8, 0x29, 0x8f, 0x84, - 0x31, 0x99, 0x1c, 0x7e, 0x11, 0xc7, 0x5f, 0xf1, 0xc5, 0x45, 0xa4, 0xae, - 0x4f, 0x47, 0xe2, 0xa6, 0xd0, 0x9a, 0x98, 0x15, 0x92, 0xc7, 0x5a, 0x53, - 0xd7, 0xa3, 0x6d, 0x0a, 0x8a, 0xfb, 0x13, 0xe4, 0x4a, 0xf5, 0x27, 0xa2, - 0x3d, 0xea, 0x49, 0x90, 0x95, 0xe4, 0x2e, 0x1f, 0x99, 0x81, 0xa7, 0xc6, - 0x3c, 0xde, 0xa3, 0x7f, 0xce, 0xe2, 0x5d, 0x4b, 0x3c, 0x67, 0xf2, 0x69, - 0x4b, 0xb7, 0x32, 0x04, 0xd5, 0x48, 0xf2, 0xd9, 0xd4, 0xed, 0x03, 0xb5, - 0x95, 0x92, 0xb5, 0xcf, 0x43, 0xa4, 0xe5, 0x67, 0x3c, 0x29, 0xd3, 0x08, - 0x8b, 0xf5, 0xb2, 0x62, 0x78, 0xc9, 0xa7, 0xef, 0x68, 0xd5, 0xa8, 0x6d, - 0x7b, 0x14, 0x67, 0x47, 0xa3, 0x5b, 0x10, 0x6e, 0x20, 0x80, 0x8c, 0x56, - 0x8c, 0xca, 0x4e, 0x11, 0x8b, 0xab, 0xc3, 0xd2, 0x48, 0xd6, 0xdf, 0x68, - 0x54, 0xdc, 0xda, 0xa7, 0x8c, 0xa9, 0x9e, 0x7d, 0x34, 0x43, 0x30, 0xea, - 0xb0, 0xd9, 0xf6, 0xda, 0xc8, 0xe1, 0x4f, 0x4b, 0xeb, 0xfc, 0x9c, 0xd2, - 0x1c, 0x81, 0x05, 0x98, 0x31, 0x57, 0xc9, 0x24, 0x33, 0xaa, 0x37, 0x4a, - 0xd9, 0xb2, 0x79, 0x0e, 0xbf, 0x3f, 0x41, 0x82, 0x1c, 0xfc, 0xad, 0x32, - 0x9c, 0x55, 0x47, 0x86, 0x04, 0x99, 0x07, 0x23, 0x17, 0xf5, 0xa0, 0x6d, - 0x45, 0x72, 0x5a, 0x92, 0xae, 0xdd, 0xb4, 0xf6, 0xea, 0x38, 0x0d, 0x1f, - 0x01, 0xda, 0xb4, 0xfd, 0x1b, 0x45, 0x25, 0x5d, 0x2c, 0xe4, 0x88, 0x3f, - 0x3d, 0x77, 0x06, 0x39, 0xe2, 0xa4, 0x9e, 0x12, 0x85, 0x8a, 0x60, 0x44, - 0x68, 0xca, 0xf2, 0x26, 0x61, 0x1b, 0x84, 0x44, 0xfa, 0x36, 0x69, 0xf5, - 0x44, 0x73, 0x0c, 0x54, 0xc7, 0x8f, 0x13, 0xc2, 0xc7, 0x68, 0xf4, 0x0d, - 0xc1, 0x58, 0x5a, 0x7e, 0xb3, 0xe5, 0x1c, 0x76, 0x2c, 0x4b, 0x3f, 0x75, - 0x09, 0xda, 0xda, 0x81, 0x58, 0x07, 0x6b, 0xf2, 0xf9, 0xd4, 0x65, 0x68, - 0x8b, 0x95, 0xbf, 0xd3, 0x44, 0x2f, 0x0e, 0xce, 0xec, 0x04, 0x13, 0x5b, - 0x15, 0xc3, 0x1f, 0xfb, 0xc6, 0x53, 0x74, 0x2e, 0x12, 0x69, 0x7b, 0x8e, - 0xd1, 0x19, 0x91, 0x3a, 0x44, 0x26, 0xc7, 0xe5, 0xe2, 0xff, 0x81, 0x8d, - 0x45, 0x26, 0x24, 0x09, 0xf2, 0x9c, 0x61, 0x0b, 0x03, 0xee, 0xd3, 0x43, - 0xa6, 0x6a, 0x46, 0xf1, 0xf2, 0x5e, 0x31, 0xb5, 0x59, 0x20, 0xb7, 0xc8, - 0x02, 0x17, 0x19, 0xb6, 0xad, 0x8e, 0xfd, 0x8b, 0xc6, 0xcc, 0x09, 0x33, - 0x0a, 0xa2, 0x46, 0x43, 0x86, 0xed, 0xc6, 0x62, 0x3e, 0x9a, 0x1b, 0xdc, - 0xe8, 0x7f, 0x9f, 0xa4, 0x85, 0xb3, 0x41, 0x98, 0x51, 0x8f, 0x09, 0x1d, - 0xc0, 0xb6, 0xea, 0xea, 0xc4, 0x19, 0x39, 0x9e, 0xa2, 0xf1, 0x9e, 0x64, - 0x13, 0xa9, 0xa4, 0x40, 0xa1, 0x4a, 0x62, 0xe5, 0x21, 0xad, 0x8a, 0x9a, - 0xe9, 0xd9, 0xfd, 0x22, 0xb9, 0x6a, 0x81, 0x6a, 0x3a, 0x29, 0x67, 0xec, - 0x50, 0xb9, 0x05, 0xee, 0x6c, 0x7c, 0x2f, 0x9c, 0xe4, 0x15, 0x27, 0x10, - 0xc2, 0x5c, 0xc4, 0x3a, 0x0b, 0x7c, 0xa5, 0x3e, 0xff, 0x24, 0x9b, 0x32, - 0x2c, 0x6e, 0x61, 0x97, 0x87, 0x89, 0x84, 0xc9, 0xb4, 0x6f, 0xcf, 0x06, - 0x97, 0x70, 0xfb, 0x34, 0x52, 0x60, 0xa3, 0xa5, 0x85, 0xbd, 0xeb, 0x80, - 0xe2, 0x21, 0xb9, 0x8b, 0xbe, 0x14, 0x40, 0xe6, 0xbb, 0xb4, 0x7e, 0x6a, - 0x74, 0x29, 0x17, 0x53, 0x6b, 0x2f, 0x82, 0x0b, 0x79, 0xb2, 0x97, 0x4c, - 0x92, 0xdd, 0x67, 0x61, 0xd5, 0x8a, 0x18, 0x8b, 0x97, 0x20, 0x1f, 0xc4, - 0x58, 0xdb, 0x8c, 0x09, 0x6f, 0xbd, 0x7c, 0x90, 0xb7, 0x27, 0xa5, 0xd8, - 0x98, 0x60, 0x8f, 0xb1, 0x62, 0xe4, 0x9f, 0x7e, 0x7c, 0x7e, 0x1f, 0x16, - 0xc7, 0x31, 0x31, 0xa8, 0xac, 0x10, 0x1e, 0x9e, 0x71, 0xf6, 0xa9, 0x4a, - 0x15, 0xf0, 0xb6, 0xda, 0xc7, 0xa8, 0xcb, 0x20, 0x64, 0xe7, 0x23, 0x20, - 0xa1, 0x11, 0xc9, 0x40, 0x76, 0xc0, 0xab, 0x73, 0xc6, 0x10, 0xc3, 0x8a, - 0x91, 0x6e, 0x34, 0x53, 0x3a, 0x3e, 0x4d, 0xf6, 0x29, 0x37, 0x0d, 0xdd, - 0xff, 0xf1, 0x33, 0x23, 0xb2, 0x62, 0x4b, 0x7e, 0x0b, 0xd7, 0x59, 0xf3, - 0xd4, 0x24, 0xde, 0x10, 0x4e, 0x87, 0x4f, 0x21, 0x23, 0x32, 0x61, 0x64, - 0x52, 0x28, 0x0a, 0xf3, 0xb1, 0x18, 0x8e, 0xec, 0xf9, 0x50, 0x57, 0xc3, - 0x3c, 0x7f, 0x52, 0x55, 0xcb, 0x05, 0x84, 0x16, 0xdc, 0x79, 0x19, 0xb5, - 0xb8, 0x22, 0xd9, 0x44, 0x8d, 0x98, 0x3c, 0x21, 0x78, 0x77, 0xad, 0xc9, - 0x89, 0x5c, 0x92, 0x19, 0x97, 0x02, 0x71, 0x39, 0x1e, 0xd0, 0x2e, 0x48, - 0x78, 0x79, 0x62, 0x04, 0x62, 0x97, 0x54, 0xdf, 0xdb, 0x3a, 0x70, 0x46, - 0xc8, 0x32, 0xa9, 0x5e, 0x07, 0x56, 0x81, 0x6d, 0x6e, 0xe5, 0xde, 0xe3, - 0xcd, 0x89, 0xa3, 0xee, 0xf7, 0x28, 0x64, 0xe0, 0xa1, 0x17, 0xbc, 0xfe, - 0x51, 0xd3, 0x4e, 0xf7, 0xb6, 0xb6, 0x7e, 0xfe, 0xb1, 0x15, 0x06, 0xf1, - 0xe5, 0xcf, 0x9f, 0x52, 0xc4, 0xb7, 0x9d, 0x4a, 0xc9, 0x68, 0x3d, 0x31, - 0x53, 0x37, 0xf7, 0x17, 0xba, 0x85, 0x72, 0x17, 0x9b, 0x9f, 0x26, 0xde, - 0x60, 0xbc, 0x92, 0x97, 0xe5, 0x8a, 0xc2, 0xb8, 0x2d, 0x64, 0x70, 0x6e, - 0xdf, 0x02, 0x7c, 0x71, 0x51, 0x63, 0x0b, 0x77, 0xd4, 0xf7, 0x10, 0x6e, - 0xfa, 0x51, 0x7c, 0x07, 0xea, 0x92, 0xc2, 0xff, 0x1c, 0x2a, 0x09, 0x1c, - 0x45, 0xac, 0x38, 0xb5, 0xb0, 0xc0, 0x81, 0xbb, 0x61, 0x83, 0xd0, 0x63, - 0xc8, 0xe6, 0x02, 0xf2, 0x9a, 0xbc, 0x2f, 0x1d, 0x18, 0x84, 0x07, 0xa8, - 0x21, 0x59, 0x5c, 0xec, 0xde, 0x20, 0x44, 0x48, 0x52, 0x9f, 0x6d, 0x06, - 0x4f, 0x80, 0x78, 0x4b, 0x35, 0xbe, 0xe0, 0xb1, 0xb1, 0x55, 0x88, 0x19, - 0x44, 0x53, 0x56, 0x55, 0x9a, 0x17, 0x68, 0x39, 0x67, 0x9e, 0xcc, 0x8b, - 0x58, 0x68, 0x25, 0xa3, 0x62, 0xc4, 0x00, 0x37, 0x25, 0x31, 0xfc, 0x11, - 0x28, 0x10, 0x35, 0x27, 0xf9, 0x5b, 0x29, 0x79, 0xd7, 0x41, 0x10, 0x34, - 0x63, 0x85, 0x30, 0x87, 0x5c, 0x0d, 0x0d, 0x12, 0xf8, 0x63, 0xb3, 0xfb, - 0x9c, 0x91, 0x73, 0xfd, 0x28, 0x12, 0xcf, 0x4d, 0x22, 0x26, 0xa5, 0x3a, - 0x8b, 0x04, 0xcb, 0x59, 0x24, 0x14, 0xcd, 0x5a, 0x3d, 0x96, 0x78, 0xb4, - 0xf5, 0x95, 0x09, 0xca, 0xd4, 0x10, 0xba, 0x4b, 0xd7, 0x22, 0x32, 0xa9, - 0xc3, 0xcd, 0xaf, 0x39, 0x3f, 0xfb, 0x1e, 0x19, 0x5c, 0x3d, 0x24, 0x69, - 0xea, 0x98, 0x63, 0x91, 0xf6, 0xe4, 0x79, 0xb3, 0x8e, 0x57, 0x4f, 0xc8, - 0x91, 0xf8, 0x2d, 0x4a, 0x7c, 0x45, 0x8c, 0x69, 0xe1, 0x17, 0x96, 0x96, - 0x24, 0xb1, 0xc8, 0x65, 0x62, 0x64, 0x21, 0x36, 0x6d, 0x80, 0xb6, 0x0c, - 0x97, 0x23, 0xd4, 0x49, 0xe1, 0xf3, 0xd4, 0x00, 0x07, 0x27, 0x8b, 0x7a, - 0x45, 0x7a, 0xa6, 0xf9, 0x9a, 0xbc, 0xb8, 0x4a, 0x1c, 0xf1, 0x5a, 0xd9, - 0x13, 0x7f, 0x88, 0xec, 0xe3, 0x97, 0x2a, 0xc7, 0xd6, 0x17, 0xe5, 0x98, - 0x20, 0x60, 0x5c, 0x49, 0x54, 0x48, 0x43, 0x30, 0xbb, 0x4b, 0xbb, 0x4c, - 0xcd, 0xd2, 0xc8, 0x3a, 0xb3, 0xb0, 0xba, 0x35, 0xbc, 0x95, 0xcc, 0x90, - 0x24, 0x7f, 0x67, 0xb0, 0x50, 0x1e, 0xd4, 0x9d, 0xec, 0x83, 0x34, 0xb2, - 0xc2, 0x6b, 0xf6, 0x41, 0x62, 0xef, 0xbc, 0xd0, 0xab, 0x56, 0xc0, 0xb5, - 0xab, 0x1e, 0x16, 0xd2, 0x2a, 0xed, 0xc1, 0x5a, 0x68, 0x92, 0xe3, 0x92, - 0x1d, 0x5e, 0x64, 0x05, 0xcf, 0xba, 0x8d, 0xf2, 0x41, 0xdd, 0xe1, 0xca, - 0xf3, 0x4a, 0x80, 0xa6, 0x93, 0x10, 0x43, 0xa1, 0x82, 0xc2, 0x8a, 0xa2, - 0x17, 0x5f, 0xba, 0x64, 0xd1, 0x3f, 0x3d, 0xdf, 0x26, 0xe6, 0xa2, 0x8d, - 0xa4, 0x7e, 0xc4, 0xd3, 0x9f, 0x9e, 0xa5, 0x8f, 0x30, 0x4c, 0xa8, 0x50, - 0x01, 0xbb, 0xe4, 0xda, 0x37, 0xe9, 0x44, 0x6a, 0xb8, 0xdc, 0xa5, 0x1a, - 0xb0, 0x29, 0x94, 0x1b, 0x20, 0x81, 0xc6, 0x0e, 0x53, 0xdf, 0x8f, 0xed, - 0x6f, 0x7c, 0x66, 0x22, 0x9c, 0x77, 0x43, 0x18, 0x55, 0x37, 0x8d, 0x59, - 0xab, 0xa2, 0xa3, 0x3c, 0x2a, 0xbc, 0x49, 0xb4, 0x29, 0x7f, 0x5e, 0x1d, - 0x89, 0xfc, 0xdb, 0x5d, 0x5d, 0x3f, 0x70, 0x11, 0x11, 0xe6, 0xca, 0x2b, - 0x4b, 0x62, 0x73, 0x8e, 0xce, 0xc8, 0x26, 0x17, 0xa7, 0x5a, 0x4f, 0x43, - 0xdf, 0x94, 0x5c, 0x31, 0x3f, 0x1d, 0x93, 0xda, 0x5a, 0x16, 0x64, 0x95, - 0x88, 0x40, 0x2e, 0xb7, 0x5c, 0x85, 0x38, 0xb3, 0x36, 0x8d, 0xe8, 0xa2, - 0x75, 0xff, 0x75, 0x41, 0x9d, 0x23, 0xb5, 0x25, 0x3a, 0x95, 0xdb, 0x65, - 0x28, 0xae, 0x88, 0x06, 0x96, 0x46, 0xca, 0x08, 0xb8, 0x9c, 0x41, 0xc8, - 0x74, 0x5f, 0x1f, 0x5d, 0x6c, 0x86, 0x18, 0xb4, 0xe9, 0xd4, 0x1f, 0x18, - 0x52, 0xb5, 0xf4, 0x88, 0xa7, 0xb6, 0x64, 0x8b, 0x4d, 0x9d, 0x2d, 0x08, - 0x0d, 0xc4, 0xc8, 0x56, 0x45, 0x1c, 0x4b, 0xf2, 0xc0, 0x2c, 0x03, 0x65, - 0xe5, 0xbb, 0x58, 0x24, 0xdf, 0xc6, 0x57, 0x7b, 0x31, 0xd3, 0x94, 0xa1, - 0xcf, 0x02, 0xeb, 0xe1, 0xd1, 0xc9, 0xd1, 0xc5, 0x51, 0x1f, 0x00, 0x27, - 0x81, 0x21, 0x77, 0x86, 0xdb, 0xab, 0xc9, 0x26, 0xd7, 0x85, 0xa1, 0xf9, - 0x2b, 0xda, 0x0e, 0xe4, 0x3d, 0x7f, 0x9f, 0x8d, 0x0f, 0xf7, 0xbf, 0xa3, - 0x8a, 0x68, 0x74, 0x66, 0xce, 0xce, 0x4f, 0xcf, 0xde, 0x1e, 0xbf, 0x3f, - 0xec, 0x27, 0x07, 0xa7, 0x67, 0x7f, 0xed, 0x27, 0xef, 0x4e, 0xbf, 0x3b, - 0x8a, 0x84, 0xd8, 0x52, 0xa8, 0x58, 0x24, 0xf0, 0x49, 0xaa, 0x8e, 0xd8, - 0x40, 0x6a, 0xae, 0xb5, 0xd1, 0x8a, 0x30, 0x27, 0x96, 0x8c, 0xea, 0x22, - 0xe2, 0x7c, 0x32, 0x4b, 0x69, 0x06, 0xfc, 0xcd, 0xd1, 0xfe, 0x61, 0x57, - 0x1c, 0x38, 0x3b, 0x1d, 0x5d, 0x60, 0x5e, 0x34, 0x41, 0x3b, 0x6f, 0x62, - 0xdf, 0x86, 0x59, 0x92, 0x9d, 0x9b, 0x94, 0xcc, 0x9b, 0xcc, 0xc3, 0xd0, - 0x34, 0x47, 0x00, 0x56, 0xb2, 0xe9, 0xca, 0x6a, 0xca, 0x08, 0x81, 0xb0, - 0x91, 0x72, 0x8f, 0xdd, 0x84, 0xe4, 0xe5, 0xf6, 0x01, 0xeb, 0x13, 0xf1, - 0x2c, 0x00, 0x60, 0xd4, 0xc2, 0x36, 0xe5, 0x85, 0xb7, 0xe5, 0x6b, 0x51, - 0xe7, 0x09, 0x2b, 0x3f, 0x16, 0x80, 0x07, 0xa2, 0x12, 0x87, 0x3f, 0xa4, - 0x12, 0xc0, 0x36, 0xce, 0x28, 0xf1, 0xa6, 0x46, 0xc1, 0x1d, 0x2f, 0xea, - 0x3a, 0xce, 0xde, 0x35, 0x82, 0x11, 0x21, 0x4e, 0x10, 0xd4, 0xc8, 0x06, - 0x49, 0xeb, 0xe7, 0x3a, 0xd4, 0xe2, 0x09, 0x3f, 0xf0, 0xc2, 0x26, 0x31, - 0xe0, 0x06, 0x08, 0x14, 0xcb, 0x4b, 0x43, 0x9b, 0x19, 0x47, 0x8b, 0xf0, - 0x56, 0x95, 0x2e, 0x0c, 0xf1, 0x98, 0x8e, 0xf8, 0x35, 0x4e, 0x48, 0xfc, - 0x0a, 0xd8, 0x78, 0xbb, 0xe2, 0x74, 0xfb, 0x45, 0xc0, 0xa4, 0x45, 0xef, - 0xb0, 0x9d, 0x1c, 0x9b, 0x7d, 0xa5, 0xa3, 0xde, 0x8d, 0x22, 0x44, 0xe6, - 0x13, 0x97, 0x79, 0xcd, 0x69, 0xab, 0x71, 0xd4, 0x4d, 0x5b, 0x61, 0xc7, - 0x04, 0x1c, 0x1c, 0xed, 0x99, 0xbe, 0x78, 0xaa, 0xeb, 0xc0, 0x0c, 0x76, - 0x7e, 0x74, 0x71, 0xde, 0xf1, 0xea, 0xbf, 0x8c, 0xd8, 0xf2, 0x36, 0x08, - 0xa8, 0x78, 0x33, 0xf1, 0xba, 0x75, 0xfd, 0xd2, 0x57, 0x4f, 0xf4, 0xfb, - 0x58, 0x4a, 0xee, 0xb3, 0x18, 0xc8, 0xf0, 0x06, 0x43, 0x22, 0x47, 0x66, - 0x49, 0x5f, 0x3c, 0xd2, 0xdb, 0x37, 0x47, 0x27, 0x67, 0xe1, 0x2c, 0xbf, - 0x3b, 0x7f, 0xfb, 0xd7, 0xe1, 0x23, 0xc9, 0x96, 0xbf, 0x7d, 0x4c, 0xef, - 0x7d, 0xda, 0x34, 0x51, 0x74, 0x71, 0x73, 0x59, 0x72, 0xa5, 0x17, 0x0d, - 0x71, 0x02, 0xb8, 0x03, 0x17, 0x55, 0x6b, 0x56, 0x22, 0x0f, 0x9b, 0xa9, - 0x07, 0x62, 0x83, 0x4a, 0x58, 0x5c, 0x39, 0xda, 0xb0, 0x56, 0x2e, 0x52, - 0x56, 0xb8, 0x82, 0x74, 0x12, 0x61, 0x42, 0x43, 0xc9, 0xc7, 0x54, 0xab, - 0xa4, 0x95, 0xd4, 0x1e, 0x11, 0x5e, 0x25, 0x2c, 0x17, 0xbd, 0x59, 0xe9, - 0xe5, 0x7e, 0x7a, 0x35, 0x2c, 0xab, 0x9c, 0xec, 0x73, 0x52, 0x41, 0x8e, - 0x5b, 0x4b, 0x50, 0x29, 0x95, 0x0e, 0x2d, 0x31, 0x80, 0x58, 0x73, 0x12, - 0x31, 0x94, 0x68, 0x86, 0x7a, 0xbb, 0xdd, 0x39, 0x54, 0x7b, 0x04, 0x13, - 0xd9, 0x36, 0x87, 0x56, 0x0b, 0x88, 0x04, 0x00, 0x51, 0xc5, 0x55, 0xb3, - 0xd1, 0xf3, 0xc4, 0x71, 0x14, 0xd5, 0x38, 0xec, 0x94, 0xdd, 0x5c, 0x29, - 0xa6, 0xeb, 0x2e, 0xad, 0x0a, 0x2e, 0x82, 0x1e, 0x60, 0x29, 0xd7, 0xcb, - 0xd6, 0x86, 0x3d, 0x20, 0x88, 0x92, 0xdc, 0x24, 0x52, 0x36, 0x82, 0x7e, - 0x46, 0x0a, 0x05, 0xa5, 0xce, 0xd5, 0x43, 0x13, 0x22, 0x77, 0xb2, 0xd4, - 0x3d, 0xe0, 0x97, 0xb9, 0xc4, 0xc1, 0xb8, 0xe3, 0x20, 0x49, 0xa6, 0xcb, - 0x2a, 0x4c, 0xe3, 0x4d, 0x13, 0xaf, 0x43, 0x06, 0x6b, 0xe9, 0xb7, 0x3c, - 0x6e, 0x14, 0x88, 0x08, 0xa0, 0x09, 0x36, 0x9d, 0x99, 0xee, 0xbd, 0x17, - 0x82, 0x39, 0x39, 0x64, 0x68, 0x0b, 0x39, 0xe7, 0x0d, 0x49, 0x09, 0x75, - 0x47, 0x81, 0xfa, 0x49, 0x9d, 0xe0, 0x6c, 0xf4, 0xbf, 0x3e, 0x5e, 0xae, - 0x89, 0x63, 0xb9, 0x7d, 0x48, 0x24, 0x96, 0xbd, 0x96, 0xb5, 0xd6, 0x05, - 0xa1, 0x9d, 0x48, 0x52, 0x18, 0x35, 0x12, 0xac, 0xc9, 0x5a, 0xd4, 0xd7, - 0x49, 0x25, 0x6a, 0x9a, 0x89, 0x07, 0x73, 0x8d, 0xf8, 0x38, 0xf3, 0xa5, - 0xa1, 0x64, 0x16, 0x10, 0x0c, 0x93, 0xef, 0x33, 0x46, 0x05, 0xca, 0xe2, - 0xc9, 0x7b, 0x83, 0x88, 0x4d, 0x88, 0x4c, 0x5f, 0x2b, 0x58, 0xf3, 0x6f, - 0x77, 0x8a, 0xff, 0xea, 0x88, 0x82, 0x17, 0xf1, 0x35, 0xfe, 0xf8, 0x45, - 0x64, 0xe1, 0x95, 0xc3, 0x60, 0x2f, 0xdc, 0x86, 0x21, 0xff, 0x16, 0x7d, - 0x0c, 0x82, 0x5c, 0xd0, 0xe9, 0xa6, 0x58, 0x35, 0xbd, 0xed, 0x16, 0x33, - 0x17, 0xdd, 0xa7, 0x6d, 0xaa, 0x68, 0x91, 0x44, 0x44, 0x29, 0xe5, 0x3d, - 0xe6, 0x4c, 0x8d, 0x9c, 0x8a, 0xc1, 0xd2, 0x6d, 0x8a, 0xb3, 0x93, 0xfd, - 0x9e, 0x78, 0x64, 0xff, 0x00, 0x1e, 0x19, 0xd5, 0x94, 0xc4, 0x01, 0x78, - 0x3d, 0x25, 0x2b, 0xa0, 0x11, 0xfa, 0xc8, 0xef, 0x6f, 0x9a, 0xfe, 0xe2, - 0x3f, 0xe3, 0x25, 0x1d, 0xb5, 0xd6, 0xb1, 0x9f, 0xdd, 0xce, 0xce, 0x03, - 0xd2, 0xb0, 0x6c, 0xb9, 0xbc, 0x79, 0x39, 0x15, 0x3c, 0xae, 0xb4, 0xd1, - 0x95, 0x8e, 0x70, 0x0d, 0x5e, 0x77, 0x2d, 0x5d, 0x44, 0xe7, 0xd0, 0x3c, - 0xde, 0x27, 0x2d, 0xa8, 0x2c, 0x56, 0x36, 0x29, 0xa6, 0x6e, 0xfa, 0x36, - 0x42, 0x78, 0x6c, 0x27, 0x0c, 0xa6, 0xa3, 0xea, 0x11, 0x99, 0x52, 0x58, - 0xc2, 0x33, 0x97, 0x11, 0x1e, 0x62, 0xb5, 0xaf, 0x8e, 0x84, 0x00, 0x99, - 0x7d, 0x10, 0xe9, 0x88, 0xc4, 0x45, 0x46, 0x27, 0xa4, 0x78, 0x66, 0x5b, - 0xcb, 0xd1, 0x0c, 0xb2, 0x56, 0x4c, 0x39, 0x0a, 0xd0, 0x00, 0x56, 0x7c, - 0x6a, 0xa3, 0x19, 0x63, 0x1a, 0x91, 0x16, 0x27, 0x43, 0xf1, 0x55, 0x48, - 0x67, 0x3c, 0x2f, 0xcd, 0xb8, 0xc1, 0x90, 0x92, 0x8d, 0x39, 0x4d, 0x65, - 0x53, 0x0d, 0xd2, 0xd1, 0xad, 0xb0, 0x10, 0x78, 0x5c, 0x35, 0xca, 0x22, - 0xe5, 0x98, 0x96, 0xa9, 0x11, 0x41, 0xc9, 0x01, 0x2e, 0x0e, 0xd7, 0x88, - 0xeb, 0x2c, 0x49, 0x90, 0x27, 0xd1, 0xb4, 0xab, 0x61, 0x68, 0x92, 0x0b, - 0xd9, 0xc1, 0x15, 0x50, 0xc0, 0x7f, 0x5f, 0xcd, 0x71, 0x04, 0x96, 0x95, - 0x6c, 0x0c, 0x36, 0xad, 0xe0, 0x87, 0x2a, 0x5c, 0x4c, 0x1b, 0xa1, 0xfb, - 0x3a, 0x75, 0x41, 0xa7, 0x36, 0x39, 0x82, 0x31, 0xec, 0xe5, 0x34, 0x6a, - 0x86, 0x38, 0xf5, 0xb6, 0xc5, 0x46, 0x64, 0x65, 0x97, 0xc4, 0x8e, 0x02, - 0xb9, 0xac, 0xd3, 0x56, 0x91, 0xdd, 0xf9, 0x6d, 0x39, 0xa5, 0xcb, 0xb6, - 0xf7, 0x3b, 0x9e, 0xa9, 0x6b, 0x96, 0x4a, 0x67, 0x8b, 0xc0, 0x1e, 0x41, - 0xce, 0x7e, 0xfa, 0xc2, 0x7b, 0xf8, 0x1d, 0x57, 0xcb, 0x29, 0xc2, 0x88, - 0xa0, 0x77, 0xf8, 0x70, 0x98, 0x1c, 0x4a, 0x64, 0x3f, 0x72, 0xd3, 0x97, - 0xd2, 0x02, 0xc2, 0xbd, 0xbd, 0x66, 0xbe, 0x93, 0x4c, 0x9a, 0xc8, 0x96, - 0xca, 0xfb, 0xb5, 0x9f, 0x87, 0x2f, 0x5e, 0x09, 0x06, 0xcb, 0x12, 0x15, - 0x7d, 0x96, 0x8f, 0xf1, 0xb7, 0x5a, 0x2b, 0x73, 0x04, 0xa8, 0xd6, 0xc3, - 0x88, 0xbd, 0x81, 0xfd, 0x1c, 0xd0, 0x54, 0x9c, 0x87, 0x42, 0x4d, 0xfa, - 0xfa, 0x3e, 0xa9, 0x4e, 0x9c, 0x27, 0x63, 0x9b, 0x8e, 0xa5, 0xd4, 0x43, - 0x4f, 0x7a, 0x56, 0x4d, 0xe1, 0xc6, 0x7b, 0xa0, 0x47, 0xab, 0xb4, 0x62, - 0xd5, 0xaf, 0xb8, 0x51, 0x73, 0x2f, 0x1b, 0x31, 0xb2, 0xc9, 0xb2, 0x69, - 0x63, 0x05, 0xfa, 0x0e, 0x51, 0xb9, 0xc3, 0x79, 0x58, 0x1b, 0x70, 0xdc, - 0x88, 0x80, 0xde, 0x3b, 0x53, 0x53, 0xef, 0x5e, 0x6f, 0x53, 0x9c, 0x59, - 0xec, 0x97, 0x94, 0x8f, 0x63, 0x79, 0xf9, 0x3a, 0xe6, 0x2a, 0x63, 0xd4, - 0x30, 0xa4, 0xe9, 0x42, 0x8c, 0x89, 0x76, 0x6f, 0x68, 0xa7, 0x9a, 0xc6, - 0xfa, 0x7e, 0xcb, 0x05, 0x99, 0xbd, 0xae, 0xad, 0x51, 0x4d, 0x6a, 0x35, - 0x77, 0xbb, 0x8f, 0xf4, 0x0c, 0xd5, 0xd7, 0x68, 0xa6, 0x36, 0xf2, 0x5b, - 0x5f, 0xd5, 0xf5, 0x0f, 0xc2, 0xc0, 0x11, 0x59, 0xe5, 0xf0, 0xd8, 0x48, - 0xfe, 0xc6, 0x47, 0x36, 0x73, 0x2e, 0x98, 0xc5, 0x4d, 0x35, 0x7e, 0x6e, - 0xfe, 0xf9, 0x96, 0xfe, 0x21, 0x46, 0x41, 0x2a, 0x12, 0x83, 0x20, 0x33, - 0x8e, 0x52, 0xc8, 0x13, 0xa8, 0xc8, 0x0f, 0xeb, 0x95, 0x23, 0x50, 0xd1, - 0x5b, 0xfc, 0x52, 0x65, 0x8f, 0xbc, 0x63, 0xe6, 0xf6, 0x0f, 0xb2, 0x7a, - 0x2e, 0x8d, 0x92, 0x60, 0x28, 0x71, 0xc2, 0x16, 0xb5, 0xb9, 0xe5, 0x26, - 0xa8, 0x84, 0x6b, 0x51, 0x52, 0x18, 0x57, 0x0d, 0x06, 0x50, 0x98, 0x16, - 0xf2, 0x15, 0xee, 0xcb, 0xd5, 0xfd, 0x21, 0x9f, 0x31, 0x89, 0xa6, 0x35, - 0x3e, 0x3a, 0xb7, 0x43, 0xca, 0x17, 0x13, 0x09, 0x0b, 0x9b, 0x81, 0xa4, - 0x9f, 0xd4, 0xee, 0xcd, 0x78, 0x99, 0x6b, 0xcd, 0x5a, 0x3c, 0x3a, 0xd4, - 0x04, 0x3c, 0xce, 0xbe, 0x5c, 0x31, 0x4e, 0x4e, 0x5f, 0x43, 0x51, 0x22, - 0xa4, 0x0a, 0xdd, 0x58, 0x24, 0x94, 0x79, 0x36, 0x27, 0xbc, 0x45, 0x9b, - 0xa6, 0xc6, 0x22, 0x18, 0xa5, 0x14, 0x53, 0x77, 0x2b, 0xdc, 0x49, 0x53, - 0x4a, 0x5b, 0x26, 0xe5, 0x9a, 0x43, 0xde, 0xff, 0x10, 0xd8, 0x96, 0xeb, - 0x87, 0x62, 0x72, 0x7d, 0xf8, 0x7e, 0xb4, 0xb6, 0xda, 0x51, 0xef, 0x4d, - 0x0e, 0x4f, 0x57, 0x65, 0x41, 0x39, 0x4e, 0x5e, 0xf4, 0x42, 0xc8, 0x02, - 0x46, 0x67, 0xef, 0x8f, 0xbe, 0x3e, 0xd5, 0x7f, 0x7e, 0xc9, 0xb2, 0x9e, - 0xa4, 0xd5, 0x55, 0x16, 0x41, 0x90, 0x0c, 0x46, 0xa4, 0x98, 0x36, 0x9e, - 0x38, 0x6b, 0x48, 0x63, 0x46, 0xaf, 0x33, 0x55, 0xf4, 0x85, 0x38, 0xf0, - 0xd1, 0x0a, 0x87, 0x2f, 0xf8, 0xff, 0xee, 0xd7, 0x5f, 0x85, 0xbc, 0xfe, - 0xf0, 0xfd, 0x8a, 0xee, 0xe8, 0x9b, 0x81, 0x5e, 0xed, 0x62, 0xd5, 0xf2, - 0x32, 0xc7, 0xc3, 0x53, 0x23, 0xb0, 0xc1, 0xf1, 0x01, 0x28, 0xa6, 0xf0, - 0x13, 0xc7, 0xc8, 0x3c, 0x21, 0xff, 0x3c, 0xfa, 0xa0, 0x00, 0x94, 0xc5, - 0xbb, 0x62, 0xe4, 0xb2, 0x11, 0x17, 0x95, 0x3a, 0xe7, 0x98, 0x9a, 0x33, - 0x31, 0xb2, 0x6e, 0x3e, 0xb6, 0x47, 0xf1, 0xe6, 0x88, 0x01, 0x44, 0xca, - 0x0e, 0xbd, 0x33, 0xe2, 0x01, 0xf1, 0xe5, 0x4f, 0xde, 0x3e, 0x7d, 0x21, - 0xd9, 0x18, 0x1b, 0x4e, 0x6f, 0xef, 0x86, 0x67, 0x62, 0x0e, 0x7c, 0xce, - 0x68, 0x6b, 0xf1, 0xe6, 0x5e, 0x7c, 0xfe, 0xe2, 0xf9, 0xe6, 0x66, 0xdf, - 0xc2, 0x49, 0x68, 0x0e, 0x13, 0xe5, 0xd2, 0xe6, 0x74, 0x86, 0x58, 0xc5, - 0x31, 0xa2, 0xe1, 0x35, 0x74, 0x66, 0x0b, 0x81, 0x11, 0x6f, 0x8e, 0x58, - 0xa0, 0xbe, 0x47, 0xd3, 0x23, 0x14, 0x04, 0xb0, 0x16, 0x8b, 0x45, 0x40, - 0xac, 0x2b, 0xe3, 0x07, 0x36, 0xd4, 0x32, 0xbf, 0xd2, 0x23, 0xce, 0x85, - 0xc0, 0x2d, 0x08, 0x08, 0xfb, 0x43, 0xe0, 0x39, 0x50, 0x26, 0x4d, 0xd8, - 0xc7, 0x6f, 0x8f, 0x4f, 0x8e, 0xec, 0xf1, 0xfb, 0x5f, 0x5b, 0x43, 0x1a, - 0x63, 0x35, 0x09, 0x73, 0xf9, 0x20, 0xd9, 0x78, 0xe9, 0xbd, 0xfd, 0x04, - 0xb5, 0x08, 0xbf, 0xed, 0xb3, 0x7e, 0x85, 0x8f, 0x9d, 0x69, 0xd6, 0x34, - 0x7c, 0xf4, 0xfe, 0xbb, 0xe3, 0xf3, 0xd3, 0xf7, 0xef, 0x8e, 0xde, 0xdb, - 0x48, 0x7c, 0xba, 0x86, 0x62, 0x9e, 0xab, 0x3a, 0x74, 0x0a, 0xe4, 0x94, - 0xcb, 0x41, 0x22, 0x12, 0x39, 0x69, 0x68, 0x16, 0x66, 0xbf, 0xe4, 0xaf, - 0xa1, 0xdf, 0x9c, 0xf7, 0x90, 0x6e, 0x1d, 0x49, 0xe2, 0x0b, 0x8a, 0xa0, - 0x9d, 0x52, 0xa6, 0xd3, 0x90, 0xd3, 0x12, 0xd8, 0x01, 0x91, 0xb3, 0xf3, - 0xec, 0x7e, 0x92, 0x09, 0xf8, 0x79, 0xed, 0x15, 0x5b, 0xd3, 0xbc, 0x1c, - 0x97, 0xbd, 0xd4, 0x1a, 0x84, 0xa3, 0x76, 0x2e, 0x46, 0xcd, 0xe5, 0xdb, - 0x62, 0x7e, 0x38, 0x20, 0x0d, 0x34, 0x9e, 0xc7, 0xe6, 0x5a, 0xfc, 0x19, - 0xf0, 0x6f, 0xb0, 0xd3, 0xde, 0x03, 0xab, 0x77, 0x10, 0x9c, 0xea, 0xc8, - 0xee, 0x2a, 0xa4, 0xde, 0x0c, 0x5a, 0x2e, 0x6e, 0x54, 0x59, 0xf8, 0x42, - 0xfc, 0xd9, 0x21, 0xe8, 0x5c, 0xed, 0x3b, 0x8d, 0x2c, 0x94, 0x87, 0xa6, - 0xf6, 0xc3, 0xd9, 0xb6, 0xe6, 0xc5, 0xbe, 0x8e, 0x3e, 0x9e, 0x9d, 0x9f, - 0xfe, 0xf0, 0xd7, 0xdf, 0xb8, 0x8b, 0x91, 0x9b, 0xc6, 0x8f, 0x74, 0x51, - 0x68, 0xe3, 0x3f, 0xff, 0xe6, 0xbd, 0xb5, 0x9b, 0xef, 0x7b, 0x20, 0xee, - 0x51, 0x84, 0x70, 0x38, 0x87, 0xb8, 0x18, 0x44, 0xe2, 0xbc, 0x45, 0x5e, - 0x70, 0xab, 0x65, 0x11, 0x70, 0x6d, 0xd7, 0x6d, 0xe2, 0x4c, 0x43, 0xdf, - 0xdb, 0x30, 0x41, 0x41, 0x36, 0x92, 0x31, 0xc2, 0xb2, 0x6c, 0x7d, 0x54, - 0x01, 0xc0, 0xa5, 0x69, 0xd7, 0x63, 0xff, 0xe4, 0xe4, 0x37, 0x5d, 0x04, - 0xe8, 0xe3, 0x6e, 0x2e, 0x03, 0x2b, 0xc6, 0xa9, 0x2f, 0x39, 0x90, 0x4e, - 0x5a, 0xaa, 0xfb, 0xfb, 0x53, 0x19, 0x0d, 0xbb, 0xa2, 0x06, 0x75, 0x66, - 0x04, 0x5e, 0x78, 0x02, 0xc8, 0x94, 0x4c, 0xb7, 0x1b, 0x6a, 0x98, 0x7f, - 0x11, 0x08, 0x4c, 0x14, 0x8c, 0x4d, 0xb2, 0xb4, 0xad, 0xd0, 0x21, 0xae, - 0x5b, 0x86, 0xa9, 0x41, 0x5e, 0x74, 0x69, 0xfd, 0xa8, 0x5c, 0x2d, 0x43, - 0xcb, 0x20, 0x45, 0x7c, 0xdf, 0x64, 0xc6, 0xa4, 0x48, 0x9a, 0x2a, 0xaf, - 0x6f, 0x90, 0x50, 0x4e, 0x87, 0x52, 0xca, 0x84, 0x36, 0xa8, 0x99, 0x8c, - 0x82, 0xf7, 0x34, 0x14, 0x33, 0x76, 0x1e, 0xb1, 0xf9, 0x79, 0x71, 0x7a, - 0x70, 0x7a, 0x62, 0x7e, 0x39, 0x7a, 0x7b, 0xfc, 0x83, 0x63, 0x68, 0x5c, - 0x3d, 0xa3, 0xa5, 0x35, 0xb8, 0x52, 0x1a, 0x1d, 0x87, 0x6a, 0x0c, 0xd0, - 0x58, 0xca, 0xf1, 0xae, 0x39, 0x4f, 0xba, 0x0d, 0xe9, 0x10, 0xbf, 0xa2, - 0x07, 0x84, 0xf0, 0x58, 0x04, 0x87, 0x1f, 0xf9, 0xd2, 0xda, 0x25, 0x26, - 0xc1, 0x16, 0x86, 0x72, 0x2b, 0x00, 0x40, 0x06, 0x57, 0x56, 0xb6, 0x0c, - 0x5f, 0xe3, 0x9b, 0x00, 0x3b, 0x5a, 0xbf, 0x07, 0xce, 0x6b, 0xf4, 0x3f, - 0x7f, 0x92, 0xaa, 0x0a, 0xda, 0x18, 0x0c, 0xd4, 0xdb, 0x21, 0x1e, 0xe6, - 0xbb, 0x5d, 0x3a, 0x21, 0x2f, 0xf0, 0x07, 0xda, 0x16, 0xdb, 0x73, 0x92, - 0x05, 0x90, 0x6c, 0x5c, 0xe4, 0x73, 0xc1, 0xc9, 0xec, 0x04, 0x7d, 0x1b, - 0xb0, 0x12, 0x45, 0x4e, 0x90, 0xa2, 0xd0, 0x84, 0x59, 0x79, 0x9b, 0x72, - 0xf5, 0xd2, 0x4b, 0x5b, 0x63, 0xa3, 0xd3, 0x46, 0xfa, 0xab, 0x1a, 0x49, - 0xdb, 0xad, 0xbc, 0xf8, 0x35, 0x8d, 0xbc, 0xe8, 0xb4, 0x71, 0xfd, 0xab, - 0x1a, 0xb1, 0x55, 0xa0, 0xcc, 0xb5, 0xf8, 0xc3, 0xf1, 0x45, 0x72, 0x70, - 0x7a, 0xe8, 0x68, 0xf4, 0x42, 0x32, 0x74, 0x2b, 0xc6, 0x4a, 0x19, 0x2f, - 0x0b, 0x92, 0x25, 0xe8, 0x40, 0x71, 0x29, 0x4c, 0x57, 0x59, 0x9d, 0x3c, - 0xfb, 0x6a, 0x35, 0xcd, 0x72, 0xfa, 0xbb, 0xe2, 0xac, 0x38, 0x1f, 0xdb, - 0x51, 0x8b, 0xb0, 0xa3, 0xa0, 0xa8, 0x9c, 0x44, 0x22, 0x6d, 0x42, 0x82, - 0x4f, 0x2b, 0xb1, 0x20, 0x27, 0xe3, 0x94, 0x1c, 0x7c, 0x05, 0x3b, 0x46, - 0x8d, 0x6c, 0xb2, 0xdf, 0xb4, 0x22, 0xf1, 0x4a, 0x9b, 0x65, 0x0b, 0x93, - 0x03, 0xe5, 0xa2, 0x22, 0x3e, 0x86, 0xd5, 0xdc, 0xbc, 0xd1, 0xa1, 0xf8, - 0xe9, 0xbd, 0x3b, 0xc2, 0x09, 0x8b, 0x16, 0xc5, 0x48, 0x19, 0x00, 0x48, - 0x5e, 0xa4, 0x93, 0xc0, 0xbb, 0x82, 0x03, 0x49, 0xb7, 0x62, 0x61, 0x75, - 0x56, 0xa9, 0x50, 0x1a, 0xb0, 0x28, 0xdb, 0x84, 0xed, 0x67, 0x97, 0xff, - 0x79, 0xcb, 0x05, 0xb3, 0xcd, 0xf9, 0x93, 0xbc, 0xd0, 0xfc, 0x1f, 0xde, - 0x1d, 0xfd, 0xcc, 0x85, 0x44, 0xcc, 0xd3, 0x19, 0x07, 0xaa, 0x48, 0x32, - 0xff, 0x43, 0xd1, 0xa4, 0xf7, 0x88, 0x2d, 0x22, 0x91, 0x08, 0x6b, 0x38, - 0xf1, 0xd8, 0xe0, 0x73, 0x61, 0xce, 0xaa, 0xc1, 0xc2, 0xca, 0xb7, 0x70, - 0xb9, 0x00, 0x5c, 0x97, 0xc6, 0x8f, 0x4e, 0x54, 0x24, 0x23, 0x5e, 0x40, - 0xb3, 0x2e, 0x54, 0x8f, 0x34, 0xee, 0xc8, 0xd4, 0xb7, 0xc9, 0xd0, 0xad, - 0x30, 0x38, 0xd4, 0x01, 0x7d, 0x4a, 0x9e, 0xec, 0x7c, 0x92, 0x23, 0xed, - 0x87, 0x0b, 0xb2, 0xa3, 0xcc, 0x1b, 0x16, 0x6d, 0x10, 0xb7, 0x20, 0xfa, - 0x28, 0x0d, 0x2a, 0x7a, 0x4c, 0x4b, 0x2c, 0x23, 0xc7, 0xfb, 0xa0, 0x16, - 0xa3, 0xf9, 0xe6, 0x81, 0x47, 0x4c, 0x07, 0xbe, 0x8c, 0x20, 0xec, 0xd8, - 0x8d, 0x11, 0xed, 0xd1, 0x29, 0x6a, 0x2f, 0xd4, 0x93, 0x2e, 0x9c, 0xdc, - 0x95, 0x1d, 0x13, 0x26, 0xce, 0xa6, 0x0d, 0x31, 0x90, 0xca, 0x3d, 0xc3, - 0xf5, 0xc7, 0x26, 0xc8, 0x08, 0x63, 0xb1, 0x33, 0x58, 0x8d, 0xba, 0x13, - 0xda, 0xfc, 0xb2, 0xd3, 0x8f, 0x76, 0x43, 0x4d, 0xf1, 0xbe, 0x71, 0x17, - 0xdd, 0x44, 0x02, 0x6a, 0x3e, 0x6c, 0xed, 0xb3, 0x2e, 0x89, 0x68, 0x50, - 0x3f, 0x01, 0x34, 0x96, 0x7e, 0x7a, 0xcf, 0xe7, 0xf2, 0xa4, 0xd1, 0xdd, - 0xef, 0x32, 0x32, 0x90, 0xc8, 0x95, 0x5a, 0x65, 0x8b, 0x99, 0x9d, 0x9d, - 0x86, 0xa4, 0x32, 0xd6, 0x0a, 0xdc, 0x63, 0x92, 0x6b, 0x3a, 0x91, 0xf1, - 0x86, 0x41, 0x4e, 0xbe, 0xc0, 0xf8, 0xca, 0x75, 0x92, 0xa4, 0x48, 0x00, - 0x21, 0x32, 0x29, 0x72, 0x4b, 0x92, 0x52, 0x59, 0x15, 0x1f, 0x51, 0x0e, - 0x33, 0x70, 0xd9, 0xf4, 0x6f, 0x79, 0x23, 0x88, 0xcd, 0xeb, 0x44, 0x96, - 0xd3, 0x2a, 0x2c, 0x2b, 0x46, 0x11, 0x71, 0xf5, 0x11, 0xd4, 0xdd, 0x2d, - 0x29, 0xbe, 0x28, 0xe0, 0x6d, 0xa6, 0xf5, 0x2e, 0xcc, 0x4b, 0x2d, 0x2f, - 0x1b, 0x0b, 0xa2, 0x44, 0xe6, 0xdf, 0xa9, 0x57, 0x0f, 0x08, 0x97, 0xb2, - 0x6b, 0x14, 0xe7, 0x40, 0x6f, 0x1e, 0x44, 0xb9, 0x85, 0x09, 0xd7, 0x0e, - 0x3f, 0xce, 0xad, 0xc3, 0xce, 0x4e, 0x67, 0xb1, 0xcf, 0xf6, 0x47, 0x23, - 0x5d, 0x6a, 0xd4, 0x88, 0xd0, 0xf5, 0xe4, 0x15, 0x94, 0xf4, 0x0b, 0x82, - 0x70, 0x53, 0x18, 0xcd, 0x88, 0xba, 0x23, 0x8d, 0x74, 0xf2, 0xb6, 0x76, - 0x9e, 0xb9, 0x35, 0xb7, 0x9d, 0x7d, 0xc7, 0xad, 0xf5, 0x3f, 0xb1, 0xb3, - 0x68, 0x5f, 0xdf, 0x45, 0xfa, 0x7a, 0xde, 0x99, 0xd7, 0xee, 0xee, 0x67, - 0x82, 0x95, 0x31, 0x94, 0xe2, 0xd9, 0xae, 0x33, 0xe9, 0x8d, 0x99, 0x85, - 0x79, 0x70, 0x00, 0x93, 0x5c, 0xa4, 0x2f, 0xa1, 0x0a, 0x1a, 0x8c, 0xd7, - 0xd5, 0x0b, 0x37, 0x2d, 0xa3, 0x34, 0x51, 0x7b, 0x64, 0xa2, 0xe7, 0x63, - 0x12, 0x9c, 0x1e, 0x5b, 0x37, 0xed, 0x98, 0x46, 0x66, 0xc4, 0xb0, 0x15, - 0x99, 0x70, 0x3a, 0x0c, 0xaf, 0x9f, 0xcf, 0x6c, 0x3f, 0x76, 0xe4, 0xa4, - 0xd4, 0x30, 0x5c, 0xd7, 0xd0, 0xe7, 0x08, 0x42, 0x23, 0x5e, 0x90, 0xbf, - 0x84, 0x01, 0x45, 0xc2, 0x49, 0xf9, 0x6d, 0xd7, 0x0b, 0x1f, 0xbf, 0x33, - 0xa2, 0x62, 0xa9, 0x46, 0x32, 0x4c, 0x4e, 0xa1, 0x84, 0xb5, 0x50, 0x4b, - 0xa1, 0xca, 0xd2, 0x71, 0xb7, 0x38, 0xf3, 0xfe, 0x69, 0xdf, 0x79, 0xe5, - 0xad, 0x89, 0x0e, 0x4b, 0xfd, 0x68, 0x5b, 0x7a, 0x7c, 0x2c, 0x0b, 0x51, - 0x1f, 0x79, 0x86, 0xa0, 0x05, 0x4a, 0xe9, 0x01, 0xf0, 0x6a, 0x97, 0xc5, - 0x9a, 0x33, 0xb5, 0x69, 0x03, 0x04, 0x2e, 0xc1, 0x49, 0xbc, 0x3b, 0xc8, - 0x51, 0xf2, 0xdf, 0x97, 0xc4, 0x90, 0x70, 0xeb, 0x12, 0x74, 0x13, 0xff, - 0xa9, 0xef, 0x31, 0x06, 0x08, 0x15, 0x2d, 0xc2, 0xad, 0xec, 0x92, 0x5e, - 0xe4, 0x64, 0xd8, 0xf5, 0x77, 0x19, 0x88, 0x28, 0x10, 0xc0, 0x6c, 0x4d, - 0x40, 0x00, 0x86, 0x92, 0xd8, 0x66, 0xe1, 0x30, 0x40, 0x50, 0xee, 0x22, - 0xe1, 0x44, 0xfa, 0xd0, 0x2f, 0x64, 0x3b, 0x57, 0xae, 0x6f, 0xcb, 0x8d, - 0xbb, 0x00, 0x30, 0x74, 0xe9, 0xa4, 0x0b, 0xb1, 0x10, 0x3c, 0xdf, 0xde, - 0x0e, 0x9b, 0x4b, 0xc7, 0xe5, 0xad, 0x46, 0x51, 0x0a, 0xb6, 0x09, 0x5e, - 0x61, 0xa5, 0x19, 0xd2, 0x45, 0x4d, 0x42, 0xea, 0xe0, 0x92, 0x6c, 0x02, - 0xb4, 0x62, 0xea, 0xa3, 0xf0, 0xd6, 0x8d, 0x4f, 0xe5, 0xf7, 0xc0, 0x5a, - 0x91, 0x35, 0x6b, 0x9f, 0x45, 0x86, 0x61, 0xd1, 0x12, 0x02, 0xa9, 0xa6, - 0xa5, 0xc3, 0x96, 0x26, 0x5e, 0xfb, 0x60, 0x64, 0x82, 0x9b, 0xeb, 0x75, - 0xf3, 0x22, 0x42, 0x11, 0xc9, 0xe8, 0xe2, 0xf4, 0x3c, 0x11, 0x22, 0x0b, - 0xd9, 0x2e, 0xd2, 0x05, 0xe9, 0x09, 0x1b, 0x49, 0xda, 0x8f, 0x38, 0xc6, - 0xad, 0xe1, 0x99, 0x73, 0x18, 0x09, 0xaf, 0xcb, 0xf5, 0xfa, 0xd2, 0x05, - 0xb1, 0xc9, 0xdc, 0xbe, 0x4b, 0x2b, 0x20, 0x32, 0x69, 0x35, 0x13, 0x2d, - 0x8d, 0xec, 0xbd, 0xc4, 0x07, 0xed, 0x74, 0x09, 0x62, 0x67, 0x2b, 0x2b, - 0xd1, 0x91, 0xd8, 0x5b, 0x29, 0x70, 0x53, 0x6c, 0x62, 0xd6, 0x59, 0xd5, - 0xa5, 0x45, 0x3e, 0x44, 0xa7, 0xae, 0x5e, 0x0d, 0xfb, 0xb5, 0x87, 0x9d, - 0x70, 0x3e, 0x7c, 0x0e, 0xc4, 0x26, 0x09, 0x12, 0x10, 0x1a, 0xc2, 0x9d, - 0x10, 0x16, 0xfd, 0x9c, 0x18, 0xc9, 0x88, 0xa3, 0x29, 0x4b, 0x0d, 0xc2, - 0x50, 0x69, 0xd1, 0x49, 0x59, 0xdb, 0x6e, 0x9d, 0xcf, 0x4e, 0xcf, 0x2f, - 0x12, 0x1d, 0x1c, 0x5f, 0x9c, 0xf8, 0xa8, 0x73, 0x84, 0x08, 0xda, 0x0b, - 0x1a, 0x9c, 0x03, 0xdd, 0x08, 0xb4, 0x52, 0x91, 0x08, 0x1b, 0x6d, 0x42, - 0xdb, 0x20, 0xc0, 0xcf, 0xea, 0x41, 0xa3, 0x9c, 0x00, 0xcf, 0x6b, 0x79, - 0x8e, 0xc4, 0x6b, 0x11, 0x83, 0x8e, 0x3b, 0x20, 0x9d, 0x4c, 0xf3, 0x6c, - 0x27, 0x42, 0x1d, 0xa4, 0x40, 0x9f, 0x1f, 0x51, 0xf5, 0xec, 0x8b, 0x6b, - 0xfe, 0x2d, 0x18, 0x39, 0x5b, 0x0f, 0xe5, 0xc3, 0x68, 0xd8, 0x04, 0xa8, - 0x83, 0x32, 0x50, 0x28, 0x2c, 0x9a, 0xda, 0xb7, 0xc6, 0x61, 0x6f, 0xcd, - 0x9e, 0x79, 0xd9, 0xc6, 0xe0, 0x9c, 0x42, 0x2b, 0x38, 0xe4, 0xf8, 0xa0, - 0x27, 0x9d, 0xf4, 0xcc, 0x9d, 0xcb, 0x87, 0xa2, 0xac, 0x6e, 0xbc, 0x16, - 0x9e, 0x7b, 0xdc, 0x82, 0xb8, 0xbb, 0x34, 0x70, 0xac, 0xfe, 0x5e, 0xfa, - 0xd0, 0x06, 0x96, 0x5e, 0x65, 0x85, 0x12, 0x06, 0x3f, 0xe7, 0xda, 0x79, - 0x61, 0xbd, 0x24, 0x2a, 0x1f, 0x79, 0x43, 0xa1, 0x8f, 0x35, 0xc9, 0x13, - 0x41, 0x65, 0x1d, 0xb2, 0x7b, 0xf6, 0xd2, 0xae, 0x22, 0x29, 0x13, 0x36, - 0x6e, 0x81, 0xa7, 0xef, 0x5d, 0x46, 0x14, 0xf8, 0x91, 0x17, 0xcb, 0x4c, - 0x2c, 0x66, 0x69, 0x35, 0xcb, 0x91, 0x1e, 0x34, 0x8e, 0x59, 0x77, 0x6d, - 0xc2, 0xb2, 0xeb, 0x47, 0x6e, 0xa2, 0xe3, 0x93, 0x23, 0xb7, 0x5b, 0x8c, - 0xaa, 0x85, 0x93, 0xec, 0x84, 0x3c, 0x73, 0x70, 0x0b, 0x7b, 0x5d, 0x0c, - 0x93, 0x33, 0xaa, 0x1e, 0x06, 0xa7, 0x4d, 0xfd, 0x6f, 0xae, 0x35, 0x3e, - 0x2c, 0x30, 0xc6, 0x98, 0xfb, 0x13, 0xd2, 0x69, 0x5e, 0x98, 0xcd, 0xc5, - 0x27, 0xf4, 0xab, 0x57, 0xf8, 0x29, 0x98, 0xf2, 0x2b, 0xf7, 0x72, 0x6d, - 0x26, 0x62, 0xf4, 0xb4, 0xee, 0x23, 0xcf, 0x85, 0xb6, 0x8c, 0x12, 0xc7, - 0x05, 0xe8, 0xcb, 0x86, 0xf9, 0x33, 0x9d, 0xe9, 0x8a, 0x0b, 0x34, 0x4c, - 0xb9, 0x85, 0x4b, 0x7d, 0x46, 0xe5, 0x58, 0x7e, 0xce, 0x35, 0xc5, 0x97, - 0xc2, 0x3e, 0xaf, 0x13, 0x02, 0xba, 0xcd, 0xb9, 0x19, 0xa7, 0x93, 0x1b, - 0xd3, 0x56, 0x41, 0x1c, 0x77, 0xa6, 0xe6, 0xf2, 0x56, 0x6a, 0x0e, 0x16, - 0x56, 0xf0, 0xed, 0x42, 0x6c, 0xd5, 0x4e, 0x29, 0xb4, 0xe7, 0x4c, 0x8d, - 0x96, 0x74, 0xec, 0x3d, 0xd6, 0x1a, 0x1d, 0x75, 0xec, 0x12, 0x5b, 0x68, - 0xbb, 0xc9, 0x34, 0x64, 0xae, 0x79, 0x5f, 0xba, 0x7b, 0xfe, 0xc2, 0x35, - 0x75, 0x49, 0x08, 0x57, 0xb6, 0x2d, 0xc7, 0x83, 0x1c, 0x9c, 0x7e, 0x6e, - 0x1f, 0x13, 0x45, 0x81, 0xef, 0xb2, 0x71, 0x04, 0xa6, 0xd7, 0x5f, 0x13, - 0x26, 0x86, 0x8b, 0x92, 0x34, 0x9f, 0xe2, 0xc1, 0x01, 0x5a, 0x0c, 0x39, - 0x2a, 0x8e, 0x6d, 0x10, 0x5c, 0xad, 0xc0, 0x42, 0x5d, 0xb0, 0xb6, 0x29, - 0x0a, 0xfa, 0x3c, 0xbd, 0x0f, 0xae, 0xfa, 0xf9, 0x72, 0x2e, 0x79, 0xfc, - 0x5e, 0x4f, 0x9f, 0x8b, 0x36, 0x7b, 0x53, 0x18, 0x92, 0xb4, 0x70, 0x7f, - 0x2e, 0x6a, 0xbd, 0x54, 0x65, 0xc9, 0x7a, 0xd6, 0x0c, 0xf1, 0x20, 0x74, - 0xd6, 0x66, 0x76, 0x84, 0xd8, 0x99, 0x14, 0x55, 0x8e, 0x0b, 0x59, 0x04, - 0x45, 0x55, 0x2c, 0x4b, 0x0f, 0x86, 0x91, 0x16, 0x5c, 0x9e, 0xe3, 0xaf, - 0xd4, 0xa5, 0x17, 0xfa, 0xa6, 0xab, 0xec, 0x6f, 0xa8, 0x89, 0x38, 0xe4, - 0x4b, 0x87, 0x81, 0x90, 0x78, 0x96, 0xe4, 0x9a, 0x77, 0x2c, 0xef, 0xf9, - 0x2b, 0x31, 0x55, 0x88, 0x2a, 0xac, 0x75, 0xfa, 0xba, 0x96, 0xe6, 0x17, - 0x3b, 0x2e, 0x64, 0x3f, 0xcb, 0xaa, 0xf5, 0x9a, 0xb9, 0x83, 0x97, 0x3c, - 0x6f, 0x18, 0xdc, 0x68, 0xf4, 0x4d, 0xf2, 0xee, 0xf0, 0x05, 0xa5, 0x6f, - 0x5e, 0x65, 0x15, 0xd5, 0xc0, 0x74, 0xba, 0xd8, 0xe9, 0xb7, 0x5e, 0x63, - 0xbb, 0xce, 0x88, 0x24, 0x57, 0x6d, 0x2e, 0xa7, 0x17, 0xa8, 0xcc, 0xc5, - 0x03, 0x61, 0xc0, 0x5d, 0xf5, 0xc5, 0x7d, 0xc2, 0x66, 0x10, 0x5a, 0x48, - 0x85, 0x47, 0x64, 0xd1, 0xa5, 0x1b, 0xff, 0xdf, 0x66, 0x62, 0x2f, 0x9e, - 0x39, 0x26, 0x56, 0x3d, 0x2c, 0x08, 0xa3, 0xbd, 0xb8, 0x22, 0x89, 0x3a, - 0x72, 0xa2, 0x5e, 0x30, 0xe3, 0x3c, 0xe0, 0x73, 0x4f, 0xe2, 0x6c, 0xf8, - 0x1a, 0xa0, 0xe8, 0xe0, 0xed, 0xf0, 0xde, 0x7b, 0xe1, 0xab, 0x93, 0x46, - 0x20, 0xc7, 0xbd, 0x68, 0xd6, 0x0f, 0xf5, 0x5f, 0x49, 0x56, 0xf1, 0x9e, - 0x7d, 0x69, 0x9f, 0x25, 0xe3, 0x41, 0x5e, 0x78, 0x75, 0x2c, 0x56, 0xbc, - 0x21, 0x42, 0x30, 0x8b, 0x06, 0x2e, 0x9c, 0x80, 0x25, 0x1f, 0x6f, 0xed, - 0xbd, 0x57, 0x5e, 0xb5, 0xb5, 0x65, 0x14, 0x59, 0x73, 0xb5, 0xc3, 0x69, - 0x52, 0xf9, 0xe2, 0xda, 0x3f, 0x9c, 0x2f, 0xf9, 0xa6, 0x3e, 0x23, 0x2c, - 0x84, 0xd6, 0x7e, 0x2a, 0x13, 0xcc, 0x7c, 0x17, 0x9c, 0x9e, 0x75, 0xa6, - 0xfd, 0x83, 0x7d, 0x7d, 0x23, 0x28, 0x6b, 0x4d, 0xd4, 0xee, 0x75, 0xb2, - 0x23, 0x67, 0xc6, 0x4c, 0xb9, 0xbc, 0x2a, 0xf2, 0x7f, 0x10, 0xa1, 0xe9, - 0x0d, 0xad, 0x35, 0x48, 0xbc, 0xc7, 0x77, 0x85, 0x61, 0xdc, 0xa6, 0xb3, - 0x5c, 0x98, 0x22, 0xd9, 0xd1, 0xdd, 0x03, 0xcf, 0x84, 0x6a, 0xef, 0x73, - 0x3a, 0xa2, 0xd0, 0x02, 0x50, 0x8d, 0x8a, 0x3c, 0x38, 0x59, 0x0b, 0x5a, - 0xe3, 0xe5, 0x73, 0x91, 0xbd, 0x54, 0x48, 0xa6, 0x7b, 0x89, 0x16, 0x62, - 0x06, 0xe4, 0xec, 0x2e, 0x9b, 0x7e, 0x29, 0x57, 0x9f, 0x6c, 0xa5, 0xad, - 0x43, 0x52, 0x69, 0x09, 0x1d, 0xfa, 0xf5, 0x2e, 0x2f, 0x24, 0x23, 0x27, - 0x78, 0xfd, 0xe5, 0x0a, 0x13, 0x54, 0xcd, 0xf7, 0xe6, 0x11, 0x68, 0xc9, - 0x7b, 0xfe, 0x33, 0x7b, 0x12, 0x3c, 0xd8, 0x71, 0x4d, 0x31, 0x41, 0x20, - 0x99, 0xd6, 0x7e, 0xd0, 0x83, 0x04, 0xb5, 0x7f, 0xe1, 0x4a, 0x1c, 0x47, - 0xd2, 0xdf, 0x2e, 0x6d, 0xf7, 0xb3, 0xf2, 0x2a, 0xc9, 0xbd, 0x63, 0xfc, - 0x92, 0x49, 0xea, 0x2d, 0x6a, 0xfa, 0xe9, 0x39, 0x20, 0x6e, 0xe2, 0x97, - 0xde, 0x72, 0x4f, 0xbf, 0x12, 0xda, 0xd0, 0xfb, 0x52, 0xc5, 0xd4, 0x95, - 0x6f, 0x7c, 0xb6, 0xed, 0x0b, 0xad, 0x53, 0xb2, 0xd4, 0x33, 0xa8, 0xe1, - 0xca, 0x17, 0x98, 0x32, 0x8e, 0xcd, 0x35, 0x72, 0x65, 0x88, 0x1a, 0xcf, - 0x38, 0x34, 0x4f, 0xf7, 0xd8, 0x6e, 0x8b, 0xe9, 0x5e, 0xf8, 0x22, 0x54, - 0x72, 0x7c, 0xe8, 0x3d, 0xf8, 0xcc, 0x4d, 0x30, 0x9d, 0x91, 0x34, 0xf0, - 0xc0, 0x86, 0x88, 0x5a, 0xaa, 0x9f, 0x79, 0x8f, 0x3e, 0x97, 0xc4, 0x0a, - 0xce, 0x65, 0xc2, 0xfa, 0x07, 0xcf, 0x30, 0x39, 0x1c, 0x20, 0x0f, 0xaa, - 0x01, 0x06, 0x40, 0xa1, 0xfe, 0x82, 0xee, 0xde, 0x7f, 0xf6, 0xf2, 0x91, - 0x67, 0xe5, 0xd2, 0xac, 0xed, 0x55, 0xef, 0xbd, 0xf7, 0x59, 0x78, 0xcc, - 0x55, 0x2d, 0x50, 0xa8, 0x12, 0x39, 0x69, 0xc9, 0x06, 0x41, 0xdc, 0xfd, - 0x9b, 0x5a, 0x7e, 0x2a, 0xca, 0x07, 0xab, 0xff, 0xcd, 0x1f, 0xef, 0xe7, - 0x3e, 0xde, 0x09, 0x9b, 0x7d, 0x6c, 0x05, 0x5e, 0xbf, 0x2e, 0x9f, 0x8b, - 0x70, 0xc6, 0xea, 0x78, 0x2d, 0xf0, 0x9e, 0x1b, 0x39, 0x62, 0x59, 0x38, - 0xce, 0xc1, 0x8a, 0xa0, 0xc0, 0x44, 0x6a, 0xb4, 0xb1, 0x8c, 0xee, 0x1b, - 0xb3, 0xa9, 0xa0, 0x0e, 0xcf, 0x78, 0xb6, 0xdd, 0x39, 0x06, 0xf5, 0xf5, - 0x92, 0x35, 0x6f, 0x3b, 0x23, 0x07, 0x4f, 0xe4, 0xbd, 0xb6, 0xeb, 0xb8, - 0x97, 0x5c, 0xfb, 0x0c, 0x3a, 0x73, 0x40, 0x09, 0x6c, 0xac, 0x9e, 0x27, - 0x20, 0x45, 0xc4, 0xb7, 0x57, 0x5c, 0xf8, 0x5b, 0xc1, 0x47, 0x37, 0xd2, - 0x78, 0x2a, 0xbe, 0xa0, 0x87, 0x78, 0xdd, 0x88, 0x68, 0x43, 0x21, 0xda, - 0x66, 0x97, 0xae, 0xb3, 0xc9, 0x8d, 0x1e, 0x19, 0xdb, 0x46, 0xe4, 0xad, - 0xe7, 0x76, 0x69, 0x89, 0xfa, 0xce, 0xce, 0x8f, 0xba, 0x8a, 0x80, 0x7b, - 0x94, 0xa9, 0xe6, 0xfc, 0x62, 0x74, 0xb6, 0x47, 0xe3, 0x65, 0x1f, 0x8c, - 0x39, 0x10, 0x07, 0xa3, 0xec, 0xef, 0x92, 0x77, 0x5a, 0xbb, 0xa7, 0x5f, - 0xae, 0x78, 0x7a, 0x24, 0x91, 0x45, 0xc7, 0x53, 0xe2, 0xbe, 0x66, 0x1f, - 0xfc, 0x97, 0x3e, 0x93, 0x0c, 0x7e, 0xb5, 0xee, 0xb2, 0xf1, 0x88, 0x46, - 0x66, 0x93, 0x3c, 0xdc, 0xc3, 0x9f, 0x3b, 0x9b, 0xcd, 0xf5, 0xb2, 0xb8, - 0xb1, 0xf2, 0xa2, 0x04, 0x6a, 0xe9, 0x06, 0xbb, 0x17, 0x5e, 0xe9, 0xd1, - 0xf0, 0x50, 0xa4, 0xac, 0xfb, 0xbb, 0x2f, 0x96, 0x0a, 0x8d, 0xa2, 0x64, - 0xff, 0x91, 0xe1, 0xaf, 0x4b, 0x6f, 0x0d, 0x7e, 0xf8, 0x81, 0x59, 0x74, - 0xa9, 0x91, 0x09, 0xe2, 0x19, 0xb0, 0xc5, 0x67, 0x0d, 0x4b, 0xe3, 0x32, - 0x0a, 0x74, 0x3a, 0x60, 0x4f, 0xaf, 0xb2, 0x59, 0x46, 0x38, 0xd2, 0xac, - 0x66, 0x80, 0x2e, 0x63, 0x59, 0x6a, 0x14, 0xb4, 0x0a, 0xa7, 0x08, 0x25, - 0x83, 0xc2, 0x1c, 0x57, 0x50, 0xa4, 0xa3, 0x98, 0x9b, 0xcc, 0x86, 0xed, - 0x7f, 0xb8, 0xf8, 0xe6, 0xf4, 0x7c, 0x94, 0x6c, 0x11, 0xe0, 0xdf, 0xc5, - 0xf9, 0xf1, 0x57, 0x1f, 0x8c, 0xf6, 0x6e, 0xbd, 0x2a, 0x87, 0xa9, 0xd1, - 0xea, 0x67, 0x14, 0x17, 0x9a, 0x15, 0x66, 0x1f, 0xae, 0xb4, 0xc2, 0x21, - 0x22, 0x65, 0xe8, 0xaa, 0x2b, 0x2b, 0x2e, 0xae, 0x83, 0x34, 0xa2, 0xeb, - 0x52, 0x16, 0x93, 0xe3, 0xbb, 0x0a, 0x0e, 0xfe, 0x2f, 0x9d, 0x6a, 0x9a, - 0x77, 0xf0, 0x0a, 0xd5, 0x39, 0x9a, 0x5c, 0x7c, 0xb3, 0xff, 0xfe, 0xdb, - 0x91, 0x22, 0x9e, 0x7f, 0xff, 0xfd, 0xf7, 0xbe, 0xd3, 0x7e, 0x6f, 0x6b, - 0x0b, 0x12, 0xe2, 0x75, 0x7a, 0x7f, 0x3f, 0xac, 0xb3, 0xb5, 0xb5, 0xb7, - 0xce, 0xd5, 0xe6, 0xca, 0x53, 0xd6, 0x4b, 0x23, 0x18, 0x98, 0xaf, 0xb7, - 0x16, 0xcb, 0x31, 0x95, 0xc3, 0xdc, 0x5a, 0x36, 0xf9, 0xcc, 0xdc, 0x27, - 0x59, 0x8d, 0xb7, 0xb7, 0xd6, 0xd6, 0x46, 0x47, 0x47, 0xc9, 0xfe, 0xc9, - 0xe8, 0xd4, 0x7b, 0x77, 0x63, 0x67, 0xd3, 0x08, 0x4e, 0x57, 0x59, 0xb3, - 0x41, 0xd8, 0x99, 0x27, 0xfb, 0x17, 0xa4, 0xb1, 0x7e, 0x77, 0x74, 0x3e, - 0x3a, 0x3e, 0x7d, 0x4f, 0xbb, 0x43, 0x71, 0x75, 0xe9, 0xec, 0x8e, 0xc2, - 0x2a, 0x2f, 0x73, 0x00, 0x99, 0xdc, 0x69, 0xad, 0x49, 0x42, 0x64, 0x36, - 0x92, 0x1d, 0x0b, 0xe2, 0x1c, 0x05, 0xa1, 0x35, 0xee, 0x39, 0x7a, 0xb4, - 0x21, 0xbd, 0x51, 0x78, 0x1a, 0xad, 0x80, 0x35, 0x5b, 0x71, 0x00, 0x4b, - 0x36, 0xe6, 0x68, 0xdd, 0x3e, 0xa7, 0xff, 0xc3, 0x4d, 0xe1, 0x85, 0xf7, - 0x45, 0x27, 0x3e, 0x3a, 0xa6, 0x6a, 0x13, 0xc9, 0x87, 0xd1, 0xfe, 0xd7, - 0x47, 0xf4, 0xe8, 0xd7, 0x59, 0xe3, 0xb6, 0x83, 0x6b, 0x62, 0x52, 0x27, - 0xef, 0xb3, 0xa6, 0x9e, 0xa4, 0x0b, 0xca, 0x72, 0x36, 0xdd, 0x0c, 0xf8, - 0x1a, 0xf1, 0xda, 0x66, 0x51, 0xde, 0x15, 0x0e, 0x2d, 0xe4, 0x79, 0x54, - 0xf5, 0xf4, 0xdb, 0x3d, 0x3f, 0xda, 0x3f, 0x7c, 0x77, 0xa4, 0x21, 0xdf, - 0x7c, 0xed, 0x9a, 0x46, 0xaf, 0x4b, 0x2a, 0xe4, 0x6e, 0x0d, 0xd9, 0x74, - 0xb5, 0xd3, 0xe2, 0x9b, 0x6f, 0xa8, 0xac, 0x66, 0xbc, 0x3b, 0xb7, 0x51, - 0x78, 0x76, 0x78, 0x99, 0x6f, 0x71, 0xeb, 0xda, 0x5f, 0x6a, 0x97, 0x44, - 0x81, 0x9e, 0x45, 0xdc, 0x65, 0x9b, 0x04, 0x6c, 0x19, 0x9f, 0x6f, 0x6f, - 0x6f, 0x3f, 0x32, 0x0f, 0x68, 0x03, 0x72, 0x69, 0x9a, 0xa9, 0xec, 0xd1, - 0xe3, 0x5b, 0xae, 0x7d, 0x37, 0xe2, 0x99, 0xa4, 0x94, 0x53, 0xe5, 0xab, - 0x82, 0x6d, 0x28, 0x79, 0x93, 0xc5, 0x87, 0x3c, 0x29, 0x4b, 0xbb, 0x03, - 0xad, 0xc5, 0x99, 0x12, 0x34, 0x77, 0xde, 0x68, 0x38, 0x23, 0xde, 0xe0, - 0x81, 0x1b, 0x05, 0x06, 0x31, 0x65, 0xd5, 0x43, 0xb7, 0x49, 0xfa, 0xc6, - 0xb4, 0x49, 0xff, 0x0c, 0xcb, 0xea, 0x6a, 0x6b, 0xbe, 0x07, 0x89, 0xc4, - 0x3c, 0xf4, 0x96, 0x90, 0x26, 0x12, 0x23, 0xd9, 0xda, 0x28, 0xe7, 0x9a, - 0x16, 0x96, 0xd2, 0x31, 0x3e, 0x61, 0x5c, 0xbf, 0x60, 0x15, 0x38, 0xa0, - 0xe9, 0x52, 0x67, 0xae, 0xe5, 0xef, 0x22, 0x9d, 0xd4, 0xb4, 0x61, 0x64, - 0x31, 0x1c, 0x1a, 0x06, 0x62, 0x7a, 0xa1, 0x98, 0x33, 0x90, 0x88, 0xf9, - 0xb5, 0x32, 0x24, 0x33, 0x6c, 0xee, 0xc1, 0x36, 0xa5, 0x12, 0x23, 0xe3, - 0xee, 0x91, 0x17, 0x7b, 0x41, 0xb9, 0x80, 0x15, 0x6a, 0x4d, 0xa0, 0x07, - 0xca, 0x2f, 0x94, 0x28, 0x78, 0x1b, 0xc0, 0x43, 0x0d, 0x77, 0xfb, 0x1c, - 0x0c, 0x40, 0x3f, 0xb5, 0xa5, 0x96, 0x4f, 0xe8, 0xdc, 0x9b, 0x14, 0xaf, - 0x7e, 0x21, 0xb7, 0xac, 0x47, 0x3b, 0x23, 0x33, 0x8a, 0xa0, 0xaf, 0xa5, - 0x2b, 0x26, 0x59, 0x73, 0x77, 0xf5, 0xb5, 0x39, 0xbf, 0x43, 0xaf, 0x5c, - 0x0b, 0x61, 0x75, 0x6d, 0x21, 0x39, 0xe9, 0x93, 0x7b, 0x3a, 0x38, 0x93, - 0xdf, 0x28, 0x21, 0x32, 0xbf, 0xa5, 0x25, 0xb8, 0xc9, 0x30, 0x7b, 0x5f, - 0x31, 0x78, 0x64, 0x30, 0x7b, 0x66, 0x15, 0xe8, 0x8d, 0xff, 0xb5, 0x35, - 0xac, 0xeb, 0xeb, 0xad, 0x7c, 0xfa, 0x71, 0x5a, 0xa7, 0x14, 0xd3, 0xb4, - 0x1c, 0x07, 0x1f, 0x0f, 0xcd, 0x87, 0xc9, 0x4f, 0x2d, 0xae, 0x5f, 0x4f, - 0xe2, 0x33, 0xf9, 0x5f, 0x5b, 0x14, 0x3f, 0x8a, 0xe2, 0x53, 0xde, 0xc2, - 0x45, 0x78, 0x87, 0x99, 0x15, 0x07, 0x10, 0x9b, 0xc3, 0x18, 0xa7, 0x8c, - 0x9e, 0xd0, 0xda, 0x8f, 0xbb, 0xdb, 0xdb, 0x3b, 0x7b, 0x3b, 0x9f, 0xbf, - 0xda, 0xde, 0xdb, 0xd9, 0xd9, 0xd9, 0xdd, 0xdb, 0xd9, 0xdb, 0xdb, 0xdd, - 0xfe, 0x79, 0xab, 0xb7, 0xb6, 0x76, 0x78, 0xfa, 0xfd, 0xfb, 0x93, 0xd3, - 0xfd, 0xc3, 0xe4, 0xe2, 0x34, 0xd9, 0x87, 0xcd, 0x29, 0x72, 0xc8, 0x81, - 0x52, 0x4f, 0x29, 0x68, 0x9c, 0xfe, 0xee, 0x55, 0x52, 0x17, 0x03, 0x89, - 0x0d, 0xbc, 0xc1, 0xb2, 0x74, 0x57, 0xac, 0x84, 0x4e, 0x41, 0x2d, 0x0d, - 0xaf, 0x9b, 0xf9, 0xd3, 0xec, 0xec, 0x53, 0x7a, 0xee, 0xb3, 0x23, 0xd8, - 0xa9, 0x8d, 0x18, 0x8e, 0x92, 0xad, 0x24, 0x79, 0x88, 0x33, 0x45, 0x5c, - 0xa8, 0x36, 0x25, 0x61, 0x83, 0xe3, 0x86, 0x5c, 0x01, 0x70, 0x2e, 0x2c, - 0x5f, 0x87, 0x58, 0x19, 0x28, 0xf4, 0x2c, 0x3e, 0x7a, 0x5c, 0xf0, 0x24, - 0x10, 0x6d, 0x06, 0x13, 0x3c, 0x5d, 0x39, 0x25, 0x73, 0x11, 0x65, 0xf7, - 0x98, 0x75, 0x9b, 0x71, 0x70, 0xa4, 0xac, 0x9b, 0x1d, 0x50, 0xd8, 0x55, - 0x11, 0xce, 0x2b, 0x1d, 0x32, 0x62, 0x8b, 0x22, 0xdd, 0x51, 0x3f, 0xca, - 0x4f, 0x5c, 0x17, 0xf4, 0x8d, 0x7f, 0x09, 0x6d, 0x59, 0xdb, 0x22, 0x0f, - 0xe0, 0xc3, 0xe8, 0xf8, 0xfd, 0xd7, 0xf0, 0x1e, 0x7e, 0x7f, 0x7a, 0x7e, - 0x38, 0x32, 0xcd, 0xd2, 0xed, 0xbc, 0x06, 0xf3, 0x12, 0x1d, 0x63, 0x19, - 0x15, 0x1f, 0x0a, 0xea, 0xfa, 0xcf, 0x50, 0xd8, 0xa6, 0x7d, 0x9b, 0x36, - 0x8e, 0x61, 0x7a, 0xc2, 0x36, 0xe5, 0x82, 0xc7, 0x59, 0x1e, 0x08, 0x81, - 0x5f, 0xff, 0x72, 0x9e, 0x52, 0xad, 0x90, 0x6c, 0xc8, 0x51, 0xbb, 0x08, - 0xf3, 0xda, 0xa2, 0xbc, 0x84, 0x2d, 0x12, 0xfa, 0xb7, 0x9a, 0x12, 0xcc, - 0x03, 0xad, 0x94, 0x95, 0x8d, 0x2d, 0x6a, 0xad, 0x08, 0x9d, 0xba, 0xcb, - 0x59, 0x7a, 0x85, 0x0e, 0xc3, 0x03, 0xe9, 0x75, 0x26, 0xdd, 0x7f, 0x6a, - 0x97, 0xc4, 0xf3, 0xd0, 0xde, 0x31, 0x08, 0x00, 0xf0, 0x50, 0x48, 0x70, - 0x17, 0xaf, 0x07, 0x4b, 0x4c, 0xe4, 0x22, 0x46, 0x44, 0x09, 0x15, 0x94, - 0xed, 0x56, 0x83, 0x41, 0x85, 0x4f, 0xc6, 0xd5, 0x30, 0xf2, 0xff, 0xc0, - 0xc3, 0xe7, 0x60, 0xc5, 0x88, 0x5a, 0xf2, 0xec, 0x0f, 0xb5, 0x0b, 0x89, - 0x43, 0xcd, 0x0f, 0xa8, 0xdb, 0xbc, 0xe4, 0x34, 0x18, 0x20, 0xcb, 0xd4, - 0x1a, 0x6b, 0x25, 0x22, 0x5c, 0x8f, 0xaa, 0x7a, 0x51, 0xa4, 0x44, 0x4f, - 0xc1, 0x22, 0x5c, 0xf1, 0x00, 0xe7, 0xde, 0xac, 0x1b, 0x33, 0x94, 0x94, - 0xea, 0xc3, 0x71, 0xc5, 0x78, 0xc1, 0x0e, 0x36, 0xa2, 0x3c, 0x67, 0x78, - 0xf6, 0x34, 0xde, 0x82, 0x5b, 0xc9, 0x6b, 0x46, 0x60, 0xb6, 0x89, 0xf0, - 0xc4, 0x79, 0x19, 0xd7, 0x66, 0x4d, 0xdc, 0xd9, 0x8e, 0xc9, 0x3b, 0xb3, - 0x19, 0x31, 0x68, 0x23, 0x81, 0x1a, 0xee, 0xc9, 0x94, 0x23, 0xe9, 0x88, - 0x5e, 0x25, 0xc7, 0xd6, 0xb2, 0xf9, 0x95, 0xe7, 0x03, 0x3e, 0xdb, 0x4e, - 0x41, 0x5e, 0x43, 0x16, 0x92, 0x85, 0xa1, 0xf0, 0x96, 0x87, 0x83, 0xba, - 0xdc, 0xab, 0xb4, 0x17, 0x79, 0x53, 0x67, 0xb3, 0x4b, 0x01, 0x0d, 0x69, - 0x60, 0x14, 0xa4, 0xa9, 0xb8, 0x06, 0xd6, 0x34, 0x6d, 0x84, 0x7c, 0x72, - 0x85, 0x85, 0x32, 0x28, 0x85, 0x67, 0x5c, 0x81, 0x95, 0x0a, 0x0a, 0x49, - 0x9b, 0x51, 0xb0, 0xdb, 0x6d, 0xa8, 0x45, 0x50, 0xd6, 0x12, 0x5b, 0xbf, - 0xa5, 0x33, 0x05, 0x5b, 0xd3, 0x02, 0x35, 0x05, 0x40, 0x1d, 0xde, 0x83, - 0xcb, 0xb1, 0x59, 0x6d, 0xfb, 0x1c, 0xad, 0x1d, 0x02, 0xcf, 0xa8, 0x39, - 0x78, 0x00, 0xf1, 0xbc, 0x8d, 0xb9, 0x5c, 0x06, 0xd0, 0x28, 0xb9, 0x00, - 0xcc, 0x98, 0x83, 0x86, 0x34, 0xa7, 0x65, 0x6d, 0x57, 0x74, 0x91, 0x1b, - 0x1d, 0x87, 0x2f, 0xb8, 0x35, 0x44, 0x24, 0x86, 0xc7, 0x50, 0x38, 0xd2, - 0xea, 0x73, 0xf8, 0xf4, 0x11, 0x0c, 0x87, 0xa4, 0x4a, 0xc0, 0xec, 0x81, - 0x4f, 0x49, 0x5e, 0x3c, 0x7e, 0x18, 0x65, 0x10, 0x9f, 0xd4, 0x31, 0xe6, - 0x2a, 0x80, 0x12, 0x30, 0x75, 0xbb, 0x60, 0x30, 0x76, 0xaf, 0x23, 0xdf, - 0xa0, 0x13, 0x36, 0x4f, 0xa3, 0x6b, 0xc5, 0xae, 0xe2, 0x20, 0x70, 0x82, - 0xd8, 0x5e, 0xf2, 0x55, 0x5a, 0xe7, 0x93, 0x7e, 0x72, 0x98, 0x5f, 0x01, - 0xe1, 0x80, 0x53, 0x4e, 0xcc, 0x1b, 0xae, 0xbe, 0xd6, 0x06, 0x67, 0x4c, - 0x6c, 0x0e, 0x93, 0xef, 0xb5, 0x24, 0x9e, 0xb9, 0x8e, 0x81, 0x0e, 0x49, - 0x26, 0x5a, 0x6a, 0xad, 0x85, 0x36, 0x22, 0xb6, 0x75, 0xbf, 0x18, 0x38, - 0x3a, 0x71, 0xb5, 0x33, 0xb0, 0xab, 0x69, 0x7d, 0x63, 0xbd, 0x13, 0xd8, - 0x2b, 0x39, 0xa2, 0x40, 0x23, 0x63, 0x01, 0x89, 0xd5, 0xbd, 0x72, 0x69, - 0x5d, 0xfe, 0xf8, 0xdb, 0x92, 0xbb, 0x16, 0xb2, 0x84, 0x4d, 0xac, 0x96, - 0x58, 0x31, 0x75, 0xe8, 0xd3, 0xb5, 0x44, 0xcd, 0xd9, 0xa3, 0x3b, 0x18, - 0x98, 0x05, 0xa3, 0xa5, 0x11, 0xc6, 0x72, 0x7a, 0x71, 0xf4, 0x87, 0x64, - 0xbf, 0xeb, 0xd0, 0x24, 0x8e, 0xdd, 0xc2, 0x16, 0xe9, 0x3b, 0x02, 0xc3, - 0xd8, 0x39, 0x3c, 0xac, 0x90, 0x6a, 0x87, 0xb4, 0xfd, 0x6b, 0x92, 0x1e, - 0xe9, 0x2c, 0x77, 0x75, 0x29, 0xb1, 0xae, 0xcd, 0x83, 0xc2, 0x68, 0xd3, - 0x6b, 0x30, 0xf3, 0x7a, 0x95, 0x34, 0x38, 0x02, 0x35, 0x4f, 0x19, 0x6d, - 0x82, 0x40, 0x84, 0xcc, 0xa6, 0x14, 0x7c, 0x26, 0x11, 0x16, 0xcb, 0x06, - 0x7e, 0x46, 0xe9, 0xc9, 0x1b, 0xc8, 0xcf, 0xf0, 0xd8, 0x4b, 0x2d, 0x2c, - 0xaf, 0x56, 0x64, 0xea, 0xe3, 0x39, 0x7d, 0xa4, 0xa3, 0xf6, 0x51, 0x19, - 0xae, 0x5c, 0x0d, 0x3c, 0x16, 0x29, 0x33, 0xde, 0x26, 0x59, 0x3d, 0x76, - 0xcc, 0xe5, 0xcf, 0x34, 0x38, 0x0c, 0x1b, 0x31, 0x01, 0x5a, 0x0a, 0xd7, - 0xa8, 0x12, 0xfb, 0xaf, 0x9e, 0x6e, 0x9f, 0x61, 0x03, 0xff, 0x08, 0xa8, - 0x2b, 0xa8, 0xfb, 0x2a, 0xd5, 0x5a, 0x38, 0x10, 0xd7, 0xb4, 0xda, 0x0e, - 0x9d, 0x46, 0x4e, 0x05, 0x56, 0x95, 0x46, 0xc1, 0x60, 0x63, 0x7e, 0xe8, - 0x72, 0xcd, 0xc5, 0x17, 0x13, 0xad, 0x2f, 0xda, 0x21, 0xe8, 0xe1, 0x1a, - 0xdd, 0x44, 0xd6, 0x86, 0x85, 0xda, 0xba, 0xb6, 0x0e, 0x8a, 0x17, 0x37, - 0xf8, 0xd6, 0x02, 0x4f, 0x49, 0xb3, 0x54, 0x8c, 0x6d, 0x92, 0x79, 0x59, - 0x13, 0x45, 0xb9, 0xe6, 0xdd, 0x08, 0x4c, 0x3f, 0x65, 0x2d, 0xf5, 0x75, - 0x73, 0x46, 0x25, 0xe2, 0x5a, 0x4e, 0xe3, 0x8c, 0x01, 0xd6, 0x0d, 0x95, - 0xf0, 0x2e, 0x02, 0xb3, 0x8f, 0x4e, 0x20, 0x53, 0xe6, 0x1c, 0xc4, 0xbd, - 0xe6, 0xa8, 0x9b, 0xd8, 0xf6, 0xaa, 0x79, 0x4a, 0x16, 0xad, 0xb5, 0x61, - 0xb2, 0x48, 0x41, 0x32, 0x75, 0x21, 0x55, 0x81, 0x60, 0x11, 0x90, 0x51, - 0xd3, 0xee, 0x40, 0xe2, 0x2b, 0xac, 0xfc, 0xa1, 0x9b, 0xde, 0x42, 0xd7, - 0x22, 0x9e, 0x32, 0x4d, 0xe6, 0x0f, 0x92, 0x2e, 0x20, 0x77, 0x26, 0x65, - 0x82, 0x43, 0xd5, 0xfc, 0xfc, 0xf3, 0x40, 0x46, 0xba, 0xb7, 0x4f, 0xef, - 0x99, 0xaf, 0x3d, 0x95, 0x76, 0x46, 0xce, 0x7f, 0x52, 0x21, 0x21, 0x9f, - 0x59, 0xbd, 0x36, 0xa2, 0x31, 0x78, 0x48, 0x41, 0xdc, 0xa3, 0xb5, 0x95, - 0x07, 0x54, 0xd6, 0x77, 0x39, 0x0d, 0x6b, 0xac, 0x33, 0xf1, 0x40, 0xd3, - 0x9a, 0x83, 0x48, 0x56, 0x28, 0x11, 0xca, 0x26, 0xbb, 0xa3, 0xf5, 0xa4, - 0x49, 0x23, 0xd1, 0x0e, 0x49, 0x00, 0x25, 0xe1, 0x78, 0x54, 0x4a, 0xc3, - 0xb4, 0xc8, 0x32, 0x18, 0x4b, 0x1d, 0x1d, 0x3a, 0xb2, 0x35, 0xf0, 0x1c, - 0x8f, 0xf8, 0xb0, 0x7a, 0x38, 0x1f, 0x7e, 0xcd, 0x70, 0xf6, 0x93, 0x47, - 0xc3, 0xe6, 0xa5, 0xc2, 0x21, 0x71, 0xfc, 0x5a, 0x1c, 0x5e, 0xd3, 0x12, - 0x54, 0xad, 0x1a, 0x28, 0xaf, 0xd1, 0x84, 0x1c, 0x5e, 0xe3, 0x76, 0x79, - 0xa3, 0x50, 0xdb, 0x2c, 0x4a, 0x7e, 0x1a, 0xc2, 0x3e, 0xb5, 0xdf, 0xd7, - 0xa1, 0x7c, 0xea, 0x70, 0x19, 0x4f, 0x2e, 0xb1, 0x79, 0x31, 0x1d, 0xf8, - 0x42, 0x49, 0x45, 0xd9, 0x19, 0x6e, 0xfb, 0xa8, 0x28, 0x36, 0x41, 0xa5, - 0x02, 0xf0, 0x62, 0x03, 0x00, 0x1a, 0x57, 0xd8, 0x97, 0x66, 0x82, 0xc4, - 0xfb, 0xce, 0x6b, 0xf2, 0xd9, 0x0e, 0x83, 0xd1, 0x9a, 0x93, 0x24, 0x15, - 0x3a, 0x08, 0x65, 0x23, 0x9b, 0x2f, 0x10, 0xc8, 0xaf, 0x1c, 0xd0, 0x17, - 0x02, 0x70, 0x8e, 0x9e, 0xbb, 0x23, 0xf5, 0xc2, 0x6e, 0xb7, 0x8c, 0x91, - 0xe3, 0xbc, 0xa5, 0x52, 0x31, 0x87, 0x5a, 0x43, 0x28, 0xcb, 0x32, 0x6e, - 0xa9, 0x59, 0x99, 0x70, 0x74, 0xd0, 0xce, 0xe1, 0x23, 0x7a, 0xc6, 0x65, - 0x9b, 0x5c, 0x2e, 0x2b, 0x30, 0x5e, 0x81, 0x1e, 0x13, 0xd4, 0x0a, 0x6a, - 0x95, 0x62, 0x26, 0x23, 0x9c, 0x06, 0xe9, 0xa4, 0x19, 0x6a, 0x0f, 0xd3, - 0xb9, 0x66, 0x93, 0x27, 0xf2, 0xeb, 0xa5, 0xc8, 0x94, 0xf3, 0x87, 0x58, - 0x43, 0x9a, 0x69, 0x77, 0x96, 0x9b, 0x01, 0xad, 0x03, 0xbc, 0x41, 0x0b, - 0xab, 0x0a, 0x2f, 0xb4, 0xa8, 0x6c, 0x8a, 0x43, 0xdc, 0xae, 0x5c, 0x1a, - 0xd6, 0xac, 0xe9, 0x32, 0x5d, 0xbe, 0x06, 0xfa, 0xc9, 0xe0, 0x7f, 0xc8, - 0xca, 0x90, 0xd8, 0x4a, 0xf1, 0x3c, 0x00, 0xaa, 0x5f, 0x78, 0x38, 0x7e, - 0x92, 0x76, 0x05, 0x86, 0x4f, 0xc1, 0x7a, 0x3a, 0x0f, 0x9b, 0xd2, 0xa8, - 0x59, 0x1b, 0xe0, 0x7f, 0x6f, 0x7d, 0xc4, 0xc6, 0x56, 0x31, 0x59, 0x61, - 0x15, 0xdc, 0xdc, 0x9a, 0x45, 0xbe, 0xe7, 0x08, 0xae, 0x60, 0xc0, 0xf6, - 0x22, 0xfb, 0x8a, 0x2a, 0x83, 0x1d, 0x94, 0xa9, 0xbf, 0xac, 0xaa, 0xe3, - 0xac, 0xe9, 0x48, 0x99, 0xf8, 0x95, 0x4f, 0xf4, 0x38, 0x73, 0x70, 0x60, - 0x5e, 0x18, 0x7c, 0x10, 0xc3, 0xc3, 0x97, 0xdc, 0xc3, 0x10, 0xb6, 0x54, - 0xee, 0xe1, 0x0c, 0xe5, 0x50, 0xf5, 0x81, 0x3d, 0x79, 0x89, 0xd2, 0x0d, - 0x7b, 0x62, 0x76, 0x68, 0xaf, 0x0a, 0x3f, 0xaf, 0xe9, 0x88, 0x54, 0x4b, - 0x13, 0x53, 0x18, 0xb0, 0x91, 0x9d, 0x0e, 0x19, 0xff, 0xca, 0xef, 0x8a, - 0x52, 0xf5, 0x40, 0x4d, 0x0c, 0x39, 0x0e, 0x5a, 0x0c, 0x0e, 0xbb, 0x3b, - 0x5b, 0x3c, 0x98, 0x2d, 0x6e, 0x80, 0xe5, 0x3a, 0x21, 0x49, 0xe7, 0x98, - 0x57, 0x90, 0x12, 0xff, 0xe6, 0xa2, 0xd0, 0x6d, 0x0a, 0xa8, 0x98, 0x73, - 0x31, 0x71, 0xae, 0xe7, 0x46, 0x57, 0x93, 0xb9, 0x6b, 0x01, 0x7a, 0x22, - 0x69, 0x65, 0x84, 0x17, 0x6e, 0x37, 0xa8, 0x6f, 0x45, 0x3e, 0x43, 0x4a, - 0x83, 0x5b, 0x2f, 0x9e, 0x80, 0xb2, 0xf3, 0x80, 0xaa, 0x67, 0x2e, 0xf4, - 0x3b, 0x9b, 0xd3, 0x04, 0x64, 0x8f, 0x42, 0xdc, 0xb0, 0xe7, 0xfb, 0xef, - 0xbf, 0x3e, 0x82, 0x24, 0x00, 0xde, 0x4e, 0x07, 0x34, 0x27, 0x6a, 0x9f, - 0x2e, 0x27, 0xd0, 0x1e, 0xcc, 0x8a, 0x21, 0x1e, 0x09, 0xf8, 0xa3, 0x5a, - 0x0f, 0x0c, 0x25, 0xce, 0x40, 0xbc, 0xd8, 0x6e, 0x89, 0x32, 0x5a, 0x4b, - 0xd4, 0x4c, 0x06, 0x09, 0x82, 0x14, 0x29, 0x4a, 0x42, 0x28, 0x91, 0x6a, - 0x3d, 0x5e, 0xa4, 0x02, 0x64, 0x91, 0xfa, 0x40, 0x07, 0x62, 0x7f, 0x18, - 0xb6, 0xcf, 0xe2, 0x9a, 0xa6, 0x1c, 0x58, 0x5d, 0xb7, 0x82, 0xae, 0x3b, - 0xf4, 0x2d, 0x3f, 0x9c, 0xde, 0xbf, 0xb3, 0xbd, 0xed, 0x2a, 0x4c, 0xa4, - 0xb6, 0xc1, 0x80, 0x5b, 0x56, 0xc9, 0xf6, 0xe0, 0xd5, 0xab, 0x55, 0x8c, - 0xd0, 0x36, 0x0a, 0xd4, 0x84, 0x17, 0x9f, 0xdc, 0xe6, 0x80, 0x1e, 0x5d, - 0xd5, 0x66, 0x44, 0xa3, 0x41, 0x2d, 0x6a, 0x89, 0xf0, 0xaa, 0xad, 0xd4, - 0x22, 0x96, 0x0f, 0xb6, 0xc0, 0xc3, 0x23, 0x52, 0x58, 0xb5, 0x86, 0x96, - 0x72, 0xcd, 0x21, 0xc4, 0x22, 0x69, 0x5f, 0x8d, 0x24, 0x0b, 0x0a, 0xf2, - 0xca, 0xad, 0x5f, 0xed, 0x93, 0x16, 0xc6, 0x53, 0x6c, 0x57, 0x2c, 0xd1, - 0x65, 0x38, 0x1b, 0x15, 0x09, 0x3e, 0x9c, 0x91, 0x5d, 0xec, 0xf8, 0xfd, - 0xd7, 0x6c, 0x26, 0x30, 0x3a, 0x2f, 0x0c, 0xa4, 0x5b, 0x1d, 0x0d, 0xf8, - 0x03, 0x17, 0x8a, 0xa0, 0x00, 0x3f, 0x38, 0xd4, 0xb9, 0xda, 0x63, 0x5e, - 0x30, 0x2b, 0xf0, 0x2a, 0x73, 0x47, 0x0d, 0x74, 0x83, 0x8b, 0x64, 0xe0, - 0x09, 0x27, 0x52, 0x27, 0x82, 0x24, 0x93, 0xf9, 0x83, 0x6a, 0x46, 0xd2, - 0x03, 0x5a, 0x57, 0x73, 0xbb, 0x6d, 0x96, 0x6d, 0x61, 0xac, 0xce, 0x82, - 0x82, 0x02, 0xd9, 0x24, 0xd2, 0x25, 0x77, 0x83, 0xf3, 0xdd, 0x91, 0x44, - 0x3e, 0x6d, 0x28, 0x2d, 0x13, 0x60, 0xbb, 0xb2, 0x18, 0x49, 0x56, 0x7d, - 0xb5, 0x89, 0x74, 0xcd, 0x73, 0x5c, 0x78, 0xd8, 0xe7, 0xea, 0xb4, 0xdb, - 0xa8, 0x42, 0x58, 0x96, 0xff, 0xfb, 0xe3, 0x7c, 0x64, 0x84, 0x74, 0x50, - 0xe9, 0xa6, 0x2a, 0xa6, 0xce, 0x06, 0x20, 0x23, 0x8e, 0x5a, 0xb7, 0x2f, - 0xf8, 0x7d, 0xee, 0x3a, 0x8d, 0x77, 0xc7, 0xef, 0xeb, 0xd2, 0x44, 0x0e, - 0x00, 0x89, 0xb4, 0x52, 0x47, 0xc4, 0x26, 0x03, 0xaa, 0x2e, 0x43, 0x52, - 0x38, 0x38, 0x47, 0xde, 0x16, 0x4b, 0xd6, 0x12, 0xc9, 0x39, 0x46, 0x95, - 0x11, 0xa2, 0x21, 0xc0, 0x4e, 0xe3, 0xf2, 0xba, 0xc9, 0xa5, 0xce, 0x16, - 0x30, 0x56, 0x51, 0x39, 0xf7, 0xd8, 0x22, 0xe1, 0x38, 0xb8, 0xdb, 0x6a, - 0x59, 0x08, 0xef, 0x23, 0x7d, 0xcb, 0x0c, 0x3e, 0xad, 0xaf, 0x11, 0xca, - 0x65, 0x4d, 0x34, 0xa1, 0x78, 0x85, 0xee, 0x05, 0xbb, 0xd5, 0xc8, 0x53, - 0x2c, 0x4c, 0x41, 0xb8, 0x6e, 0x2d, 0x45, 0x7b, 0x05, 0x3c, 0x8b, 0xc6, - 0xa7, 0x9e, 0x02, 0x96, 0xa9, 0x23, 0x0e, 0x1c, 0x1c, 0x04, 0x8f, 0xb9, - 0x44, 0xc9, 0xaf, 0x6d, 0x11, 0xf2, 0xe5, 0x73, 0x18, 0x60, 0xa0, 0x2d, - 0x01, 0x92, 0xa8, 0xb3, 0x84, 0x50, 0xa2, 0x81, 0x08, 0xc9, 0x10, 0x45, - 0xca, 0x72, 0x45, 0x1a, 0x80, 0x19, 0xcc, 0x15, 0x2a, 0x91, 0x72, 0xef, - 0x74, 0xdf, 0xb3, 0x4a, 0x0a, 0x9f, 0x22, 0x27, 0x1a, 0xa1, 0x4f, 0xcc, - 0x90, 0x07, 0xc8, 0x49, 0xe1, 0x1c, 0xb7, 0x3b, 0xba, 0x20, 0xd5, 0x1e, - 0xd7, 0x91, 0xea, 0x88, 0xdf, 0x1d, 0x9d, 0x7f, 0x75, 0x3a, 0x3a, 0x32, - 0xdc, 0xe2, 0xf0, 0xe8, 0xab, 0x0f, 0xc4, 0x49, 0x68, 0xc7, 0xd8, 0x4c, - 0x0a, 0x40, 0x4f, 0x4e, 0xd9, 0x05, 0x50, 0x11, 0x12, 0x0e, 0x88, 0x74, - 0x58, 0x36, 0xe9, 0xdb, 0xf4, 0x47, 0x11, 0xbb, 0x18, 0x1b, 0x73, 0x96, - 0xb1, 0x5d, 0x2d, 0x47, 0xb0, 0xb6, 0x43, 0xef, 0xa5, 0x98, 0xa8, 0x82, - 0x20, 0xc7, 0x1b, 0x05, 0x8f, 0xd1, 0xf2, 0x71, 0xf5, 0x9e, 0x43, 0x67, - 0xbc, 0x65, 0x2b, 0xaa, 0x1c, 0x08, 0x57, 0xe6, 0x59, 0xcb, 0x39, 0xcb, - 0xd5, 0x04, 0xd9, 0x56, 0x60, 0xf6, 0x66, 0x25, 0xdf, 0x64, 0x04, 0x55, - 0x83, 0x73, 0x8d, 0xbb, 0x35, 0x6f, 0x70, 0xad, 0xb2, 0x90, 0x2f, 0xc5, - 0x95, 0x6b, 0x26, 0x38, 0xc3, 0x72, 0x38, 0x43, 0x77, 0x96, 0x79, 0x35, - 0xc7, 0xeb, 0x8c, 0x21, 0x9e, 0xf8, 0x26, 0x15, 0xc7, 0x23, 0xc7, 0x44, - 0x4a, 0x25, 0x84, 0x0d, 0x51, 0x4c, 0xef, 0x30, 0x4f, 0x29, 0xcd, 0xc7, - 0x35, 0x88, 0xb5, 0x40, 0x17, 0x56, 0xde, 0x0b, 0x5d, 0x10, 0xd2, 0xb9, - 0x5d, 0xcd, 0x0e, 0x2e, 0x78, 0xa6, 0x64, 0x7b, 0xe0, 0xcb, 0xd9, 0x47, - 0x52, 0xf5, 0xd1, 0x77, 0xc8, 0xe1, 0x6f, 0x85, 0x06, 0x3e, 0x4f, 0x14, - 0x79, 0xed, 0xa9, 0x75, 0xab, 0x8b, 0x16, 0xab, 0x84, 0x29, 0xce, 0x10, - 0x97, 0x74, 0xc1, 0x0c, 0x4f, 0xc2, 0x95, 0x68, 0x4b, 0x61, 0xbe, 0x66, - 0xe2, 0x0b, 0xcf, 0x20, 0xb7, 0xce, 0xf5, 0x8a, 0x9b, 0xfb, 0xc6, 0x37, - 0xf2, 0xaf, 0xad, 0xad, 0x1d, 0x1e, 0x5d, 0xec, 0x1f, 0x9f, 0x1c, 0x1d, - 0x26, 0xc7, 0xef, 0xdf, 0x9e, 0x9e, 0xbf, 0xdb, 0xbf, 0x10, 0xb7, 0xf7, - 0xa1, 0xb5, 0x92, 0xd9, 0xdc, 0x5b, 0x6b, 0x84, 0x74, 0x16, 0x34, 0x90, - 0xb0, 0xd9, 0xc5, 0x2b, 0x41, 0xcc, 0xe6, 0x65, 0xc8, 0x5a, 0x6b, 0xb0, - 0x96, 0x88, 0xbb, 0xdc, 0xa1, 0xe1, 0xd0, 0x5d, 0xbd, 0x65, 0x9d, 0x9c, - 0x43, 0x5d, 0x4e, 0x0b, 0xae, 0x48, 0xf5, 0xd3, 0x1e, 0x6d, 0xca, 0x16, - 0x89, 0xe7, 0x7b, 0x8a, 0xb6, 0x93, 0x93, 0xa4, 0x41, 0x93, 0x83, 0xe3, - 0xad, 0x36, 0x58, 0x28, 0x8c, 0x1f, 0x0a, 0x8e, 0x94, 0x02, 0x36, 0xc2, - 0x07, 0x27, 0x30, 0x14, 0x48, 0x36, 0x3f, 0xbf, 0x4d, 0x9b, 0x76, 0xaf, - 0x70, 0x37, 0x1c, 0x64, 0xc1, 0xd8, 0x34, 0xde, 0xfe, 0x0a, 0x44, 0x95, - 0xa1, 0x66, 0xa6, 0x03, 0xe0, 0x1e, 0xd6, 0x54, 0xa8, 0x5c, 0xcf, 0x3a, - 0xb0, 0x18, 0x2d, 0x13, 0x55, 0x4f, 0x92, 0x94, 0xfb, 0xf2, 0x9b, 0xda, - 0xb0, 0x8e, 0x51, 0x23, 0xc5, 0x0c, 0x8e, 0xa5, 0x10, 0x1c, 0xad, 0x05, - 0x41, 0x2d, 0xd3, 0xbf, 0x85, 0x83, 0x42, 0x93, 0x30, 0x3b, 0xa7, 0x85, - 0xe7, 0x5b, 0xb6, 0x36, 0xb7, 0x9c, 0x36, 0x77, 0x6e, 0x15, 0xdb, 0x62, - 0x70, 0x68, 0x1e, 0x9a, 0x2e, 0xe7, 0x0b, 0xa9, 0x24, 0xaa, 0x52, 0x2e, - 0xec, 0x6b, 0xba, 0x85, 0x2c, 0x48, 0x41, 0x20, 0x80, 0x31, 0xe6, 0xad, - 0xac, 0x01, 0xcf, 0x03, 0xf4, 0xdd, 0xa8, 0xdb, 0x8a, 0xf4, 0x56, 0xe7, - 0x69, 0xea, 0x96, 0x11, 0x6f, 0x4b, 0x13, 0x58, 0x90, 0x91, 0x7d, 0xb6, - 0x5b, 0x77, 0x3c, 0x75, 0x91, 0x20, 0x58, 0xff, 0x0d, 0x2d, 0x75, 0x40, - 0x24, 0x2b, 0x0d, 0x8a, 0x9a, 0x14, 0x3a, 0xca, 0x5a, 0x93, 0xf2, 0x5f, - 0x6c, 0xc7, 0x4e, 0xf8, 0x9c, 0x5e, 0xbb, 0x76, 0x10, 0x98, 0xdd, 0x11, - 0x08, 0x17, 0x37, 0xfc, 0xc4, 0x56, 0x9b, 0x27, 0xc4, 0x76, 0x46, 0xb8, - 0x5b, 0x93, 0x04, 0x5f, 0x1f, 0x08, 0x57, 0xc9, 0x77, 0x89, 0xb2, 0xa5, - 0xe5, 0x0d, 0xe9, 0xd7, 0xc8, 0x80, 0x1b, 0x3f, 0xf8, 0xb9, 0x4a, 0x1c, - 0xe3, 0x23, 0xc5, 0x42, 0xc0, 0xf4, 0x8a, 0x35, 0x85, 0xe7, 0xd4, 0x97, - 0x34, 0xd0, 0x0b, 0xdc, 0x9f, 0x91, 0xab, 0xc1, 0xe4, 0x49, 0xd1, 0xcd, - 0xd2, 0x1a, 0x4a, 0x0e, 0x32, 0x16, 0xf8, 0xce, 0xb0, 0xa6, 0x51, 0x87, - 0xcd, 0x8e, 0xcb, 0xc7, 0x43, 0xc4, 0x60, 0xc4, 0xbf, 0x94, 0x40, 0x07, - 0xf4, 0x50, 0x70, 0x74, 0xb2, 0x6d, 0x05, 0x77, 0x1d, 0x29, 0xb1, 0xd5, - 0x0c, 0x21, 0xa6, 0x12, 0x73, 0x77, 0x56, 0xd6, 0x7c, 0xde, 0x20, 0x75, - 0xf7, 0xb8, 0x84, 0x36, 0x91, 0x41, 0x6f, 0x71, 0x6d, 0xfa, 0xe8, 0x25, - 0x57, 0xa4, 0xb7, 0x8c, 0xcd, 0xd0, 0x03, 0x06, 0x3a, 0xe5, 0xc7, 0xdf, - 0x9c, 0xa7, 0x97, 0x69, 0x36, 0xfb, 0xd3, 0xee, 0xf6, 0x28, 0xbd, 0x5a, - 0xce, 0xd2, 0x7f, 0xc1, 0x8b, 0x6f, 0x9e, 0x3d, 0xdb, 0xdd, 0xfe, 0xec, - 0xf3, 0xed, 0x5e, 0xc7, 0x7d, 0xed, 0x45, 0xbe, 0x20, 0x94, 0x81, 0x6e, - 0x32, 0xf0, 0x5d, 0xf4, 0x33, 0x9c, 0x5c, 0xe5, 0x50, 0xb4, 0x48, 0x78, - 0x91, 0x35, 0x48, 0x59, 0xc3, 0x03, 0x9b, 0x64, 0x18, 0x32, 0xc2, 0xd3, - 0x34, 0x74, 0xfd, 0xc7, 0x9d, 0x3d, 0x66, 0x65, 0x57, 0x30, 0x88, 0xa7, - 0x4c, 0xb1, 0xc9, 0xeb, 0xbc, 0x30, 0x37, 0xd0, 0x17, 0x49, 0x93, 0x5e, - 0x59, 0x5a, 0x45, 0x0b, 0xd8, 0x0d, 0x1f, 0xd7, 0xf8, 0x92, 0x88, 0x3c, - 0x2f, 0xb8, 0xac, 0x02, 0x95, 0x0c, 0x80, 0xe0, 0xb3, 0xc8, 0x2a, 0x20, - 0x8a, 0x5d, 0x55, 0xe9, 0x5c, 0x23, 0xfa, 0xe9, 0x7d, 0x0a, 0x0f, 0x1a, - 0x2e, 0x66, 0x08, 0x36, 0xd7, 0x18, 0x1f, 0x96, 0x42, 0x99, 0xe0, 0x66, - 0x8b, 0xda, 0x81, 0x72, 0xf1, 0x75, 0xe3, 0x17, 0x23, 0x30, 0x8b, 0x05, - 0x3b, 0x47, 0x0f, 0xb3, 0x62, 0x96, 0x01, 0x6e, 0x36, 0xd5, 0x99, 0x0e, - 0xf1, 0x3b, 0xb2, 0xe4, 0x53, 0x46, 0x60, 0xeb, 0x2d, 0x38, 0xff, 0xd4, - 0x16, 0x4b, 0x67, 0x83, 0x58, 0xde, 0x9a, 0x57, 0xea, 0x22, 0xdb, 0x92, - 0xd7, 0x6a, 0xb9, 0xd9, 0xf9, 0xe2, 0x0d, 0x08, 0x62, 0xe7, 0x8b, 0x7f, - 0xb1, 0x9f, 0xed, 0xca, 0x67, 0xbb, 0x5f, 0xfc, 0xcb, 0x70, 0x88, 0xf1, - 0x11, 0x85, 0xac, 0xeb, 0xd7, 0xeb, 0x82, 0x49, 0x91, 0xca, 0x11, 0xe6, - 0xbf, 0x2c, 0x6c, 0x29, 0xef, 0x75, 0x4f, 0x7b, 0xf6, 0x57, 0xb9, 0x2f, - 0xde, 0x3f, 0xcb, 0xb7, 0xf2, 0xda, 0xc7, 0xa3, 0xad, 0x63, 0x8b, 0x6e, - 0x7d, 0x13, 0x68, 0x47, 0x82, 0xdc, 0xf0, 0xf2, 0xbf, 0x12, 0xa5, 0xfe, - 0xeb, 0x5a, 0x22, 0x4e, 0x3a, 0xda, 0x8e, 0x07, 0x38, 0x21, 0x94, 0x6c, - 0xcd, 0xa3, 0xa9, 0xd6, 0x3e, 0xa0, 0x96, 0x29, 0x4c, 0x9e, 0xee, 0x40, - 0xaf, 0x5e, 0xf8, 0x9f, 0x25, 0xfb, 0x9f, 0x37, 0x7c, 0x2d, 0xb1, 0xcf, - 0x70, 0x3a, 0x81, 0x91, 0x31, 0x1a, 0xae, 0xbe, 0x41, 0x58, 0xfc, 0x3f, - 0xfc, 0x20, 0x02, 0x95, 0xf9, 0x45, 0x46, 0x7e, 0x6d, 0x78, 0xd1, 0xd4, - 0xb0, 0xb7, 0x39, 0x6a, 0x15, 0x4b, 0x91, 0x77, 0xb9, 0xf2, 0x2f, 0x65, - 0xa6, 0xdc, 0x88, 0xd9, 0xda, 0xfd, 0xd1, 0xc1, 0xf1, 0x31, 0xe2, 0xf9, - 0xb0, 0xa8, 0x47, 0xcc, 0xc6, 0x40, 0x9b, 0x1b, 0x08, 0x47, 0x70, 0xe1, - 0x5f, 0x3e, 0xe9, 0xd3, 0xde, 0x61, 0xdb, 0x41, 0xfd, 0xa6, 0x31, 0x55, - 0x8a, 0x65, 0x2b, 0x41, 0xb3, 0x2c, 0xe5, 0xbc, 0xe9, 0xf1, 0x83, 0x57, - 0x79, 0x4f, 0x1c, 0x4b, 0xfc, 0x49, 0xcf, 0x81, 0x8c, 0xf0, 0x7e, 0x60, - 0xd3, 0xde, 0xb0, 0xe8, 0x94, 0xff, 0x23, 0x7b, 0xb3, 0xb3, 0x1d, 0x7f, - 0x02, 0x45, 0x09, 0x08, 0x0b, 0xf8, 0x8d, 0x73, 0xd2, 0x3d, 0xf6, 0x7c, - 0x3e, 0xe5, 0xa7, 0xaf, 0xf3, 0xe9, 0xd4, 0xdc, 0x09, 0xa8, 0x55, 0xff, - 0xa6, 0x37, 0xa6, 0x1b, 0x96, 0xfe, 0x7f, 0xc5, 0x38, 0xe0, 0x45, 0x92, - 0x67, 0xeb, 0xe5, 0x78, 0x9e, 0xb7, 0x06, 0xbc, 0x45, 0x13, 0xfc, 0x82, - 0x26, 0xfc, 0x7d, 0x66, 0xa9, 0x23, 0x23, 0xd1, 0x8e, 0x65, 0xbf, 0xf5, - 0xcb, 0xb2, 0x1c, 0xa7, 0xd5, 0xba, 0xb8, 0x58, 0x74, 0x9c, 0xeb, 0x3b, - 0xbb, 0xcf, 0x9e, 0xbf, 0x58, 0x1f, 0x8a, 0x9c, 0x06, 0x16, 0xd1, 0xf8, - 0xb9, 0xfc, 0xdc, 0x44, 0xca, 0x07, 0x54, 0x43, 0x52, 0x91, 0x3c, 0x1c, - 0x73, 0x78, 0x12, 0x17, 0xa3, 0xee, 0xde, 0x70, 0x6f, 0xff, 0x42, 0xfd, - 0xbc, 0x41, 0x17, 0xff, 0x92, 0x4f, 0xdf, 0xd8, 0x19, 0xfe, 0x0b, 0xcd, - 0xe5, 0x8d, 0x4c, 0xc2, 0xec, 0xab, 0x26, 0x6b, 0xd5, 0x7e, 0x9d, 0x84, - 0xa7, 0x36, 0x57, 0x37, 0x71, 0x0d, 0x93, 0x86, 0xb7, 0x7d, 0x30, 0x65, - 0x8f, 0x04, 0xa4, 0x55, 0x97, 0xa9, 0xb4, 0x75, 0x3f, 0x30, 0xad, 0x0c, - 0xa8, 0x95, 0x81, 0x63, 0xd8, 0x80, 0x70, 0x1e, 0xd0, 0x46, 0xf4, 0x25, - 0x5d, 0x6d, 0x06, 0xcb, 0x87, 0x88, 0x02, 0x65, 0x09, 0x5f, 0xf6, 0xc1, - 0xd7, 0xc7, 0xeb, 0x12, 0x24, 0xc2, 0xaa, 0x5b, 0x3f, 0x66, 0x33, 0xb6, - 0xb1, 0x5c, 0x93, 0x74, 0x41, 0xa7, 0x7f, 0x4d, 0x6b, 0x7a, 0xa5, 0x14, - 0xf3, 0x40, 0xfd, 0x72, 0x6e, 0xa9, 0xe9, 0x4c, 0x6e, 0x9d, 0x19, 0x59, - 0xa1, 0x2b, 0x06, 0x97, 0xf6, 0x9a, 0x01, 0xd8, 0x2a, 0x07, 0x3f, 0xc0, - 0x0f, 0xb3, 0xb0, 0x69, 0x69, 0x83, 0xb7, 0xd6, 0x11, 0x69, 0xd3, 0xa0, - 0xe4, 0x51, 0xf3, 0x15, 0xf3, 0x13, 0x65, 0x11, 0xbd, 0xa1, 0xb8, 0xcd, - 0x85, 0x12, 0x7c, 0xee, 0x81, 0xf4, 0xe8, 0x71, 0x26, 0xc9, 0x6c, 0x6c, - 0xca, 0x60, 0xc1, 0x90, 0xf8, 0xe7, 0xeb, 0x2f, 0x15, 0x9f, 0xf5, 0x8b, - 0x04, 0xa5, 0xf9, 0xf8, 0x2d, 0xf1, 0x05, 0x8a, 0x51, 0x88, 0xed, 0xa8, - 0x78, 0x49, 0xd4, 0x03, 0xeb, 0x96, 0xf2, 0x22, 0x47, 0x44, 0x30, 0xf0, - 0x51, 0xb4, 0xc7, 0x0f, 0x62, 0x00, 0xa0, 0x16, 0xd6, 0xff, 0x82, 0x43, - 0xf0, 0x9a, 0xb6, 0x01, 0x5f, 0x7f, 0xb1, 0xbe, 0x66, 0x6b, 0xa4, 0x5b, - 0xc9, 0xbd, 0xe3, 0xd4, 0x65, 0x02, 0xf5, 0xe7, 0x53, 0x5e, 0x5a, 0x30, - 0x52, 0x96, 0xc6, 0x08, 0xc6, 0x00, 0xf5, 0x6b, 0x8d, 0x34, 0x35, 0xa3, - 0xa4, 0xd0, 0x96, 0xd1, 0x98, 0x1b, 0xcf, 0x08, 0x23, 0x82, 0xa4, 0xc7, - 0x75, 0x0a, 0x0b, 0xc4, 0x7b, 0xeb, 0x16, 0xdb, 0x14, 0x76, 0x4c, 0x30, - 0xbc, 0x2a, 0x53, 0x58, 0xbd, 0x35, 0x49, 0x5f, 0x76, 0xd2, 0xbc, 0x3f, - 0xb1, 0xda, 0x13, 0x1e, 0x5c, 0x32, 0x18, 0x63, 0x7e, 0x04, 0x47, 0xe4, - 0x2d, 0x65, 0x5a, 0x4a, 0xa7, 0x6f, 0x68, 0xb9, 0x77, 0x86, 0x57, 0xf9, - 0x25, 0x2f, 0x86, 0x61, 0x91, 0x57, 0xd9, 0x96, 0xf9, 0xb3, 0x6f, 0x3e, - 0xdf, 0x25, 0xa9, 0x8c, 0x7e, 0x79, 0x86, 0xd8, 0x21, 0xff, 0xee, 0xf7, - 0xce, 0x86, 0x3d, 0x17, 0xf4, 0x4b, 0x6e, 0xef, 0x7c, 0xf1, 0xb4, 0xc8, - 0x28, 0x07, 0x0a, 0x62, 0xde, 0xaa, 0x46, 0xd4, 0xf7, 0xbc, 0x28, 0xc0, - 0xad, 0x2e, 0x21, 0x9f, 0xd4, 0x2e, 0xf4, 0x56, 0x82, 0x1b, 0x44, 0x50, - 0x27, 0xb9, 0x3b, 0x17, 0x93, 0x09, 0xe5, 0x4a, 0xe0, 0x66, 0xcd, 0xee, - 0x36, 0xfb, 0x7e, 0x48, 0xa3, 0x61, 0xef, 0xb7, 0x94, 0x7d, 0x4c, 0x88, - 0x06, 0x2e, 0x6f, 0x8d, 0xba, 0x47, 0x05, 0xf5, 0x35, 0x24, 0x64, 0x6a, - 0x3e, 0x26, 0xb6, 0x39, 0xef, 0xee, 0xa0, 0x57, 0xcd, 0x50, 0xa5, 0x4d, - 0xf2, 0x6a, 0x6d, 0x52, 0x37, 0xd9, 0xac, 0x86, 0xae, 0x2e, 0x80, 0x76, - 0xda, 0xab, 0xa2, 0xe0, 0xa2, 0xa3, 0x75, 0xff, 0xec, 0x97, 0x93, 0x26, - 0x33, 0xba, 0x2e, 0x01, 0x10, 0xcd, 0x99, 0xcf, 0x1d, 0xcd, 0xb9, 0xaa, - 0x1b, 0x48, 0x78, 0x36, 0xe0, 0xdb, 0x53, 0x44, 0xa2, 0xc1, 0xdb, 0x61, - 0x72, 0x82, 0xd0, 0xdc, 0x3a, 0x65, 0x1c, 0x0b, 0xbd, 0x61, 0x95, 0x1a, - 0x0c, 0xe9, 0xd4, 0x8a, 0xc5, 0x45, 0xef, 0x11, 0x74, 0x80, 0x92, 0x54, - 0xae, 0x00, 0xc7, 0x4c, 0x5c, 0x2c, 0x5f, 0x88, 0x3c, 0xd2, 0x87, 0x7d, - 0xda, 0x3e, 0x07, 0x3b, 0x3c, 0xdb, 0xe2, 0x90, 0x24, 0x63, 0x09, 0xd6, - 0x6b, 0x84, 0x03, 0x8c, 0x44, 0x00, 0xf5, 0xd8, 0xba, 0x3d, 0x04, 0x1c, - 0xfe, 0x97, 0xb1, 0xd1, 0x85, 0x72, 0xd8, 0x09, 0x4c, 0x03, 0x7e, 0x5a, - 0xd3, 0x1a, 0xa8, 0x0c, 0x78, 0xb8, 0x86, 0x8c, 0x7a, 0xd0, 0x1b, 0x67, - 0x99, 0x55, 0xae, 0x79, 0xaf, 0x4a, 0x1b, 0xd7, 0x0b, 0x5b, 0x8c, 0x60, - 0xf0, 0x5b, 0x17, 0x1a, 0x0d, 0x92, 0xc6, 0x95, 0xde, 0x9a, 0x5f, 0x48, - 0x38, 0x1b, 0x57, 0x66, 0xd7, 0xb3, 0x8a, 0xaf, 0x06, 0xf4, 0x8a, 0x12, - 0x5f, 0xe9, 0x54, 0xd4, 0x94, 0x77, 0x27, 0x89, 0xe2, 0x81, 0x5c, 0x3a, - 0x51, 0x51, 0xa3, 0x08, 0x31, 0x45, 0xb1, 0x8c, 0xb0, 0x3c, 0x24, 0x4f, - 0xf1, 0x2d, 0xc7, 0x6b, 0x4b, 0x19, 0xc5, 0x09, 0x2d, 0x4e, 0xeb, 0xc8, - 0x7a, 0x4f, 0xf0, 0xab, 0x6b, 0x8c, 0x5d, 0xb4, 0x4e, 0x4b, 0xb0, 0xde, - 0x4f, 0xd6, 0x69, 0xa8, 0xf4, 0xc5, 0x3a, 0xd6, 0x13, 0x1f, 0x7b, 0xcb, - 0xb7, 0x3e, 0x8c, 0x9c, 0x42, 0x7a, 0xe6, 0xcd, 0x97, 0xad, 0x55, 0xc2, - 0xe7, 0xda, 0xd4, 0x1b, 0x8e, 0xe6, 0x0f, 0x64, 0x6e, 0x7d, 0xd7, 0x6b, - 0xff, 0xcd, 0x81, 0x69, 0x05, 0xe0, 0xc3, 0x5e, 0x48, 0xe6, 0xc4, 0x7e, - 0x96, 0x23, 0xb3, 0x30, 0x68, 0xe8, 0xe9, 0x53, 0x7c, 0xa1, 0xac, 0xc8, - 0x86, 0x2b, 0x32, 0x77, 0x63, 0x12, 0x50, 0xce, 0x6b, 0x76, 0x33, 0x67, - 0xbd, 0xef, 0xae, 0x84, 0x95, 0x01, 0x3c, 0x67, 0x67, 0x88, 0x4c, 0x33, - 0x57, 0x5c, 0xd2, 0x36, 0x60, 0x95, 0xf7, 0x1e, 0x16, 0xb4, 0x67, 0x23, - 0x48, 0x55, 0xa5, 0xd7, 0x55, 0x8e, 0xf1, 0xae, 0x45, 0x3e, 0x01, 0xc4, - 0xee, 0x9b, 0x2f, 0xa7, 0xe5, 0x15, 0x71, 0xae, 0xbe, 0x39, 0x68, 0xf4, - 0x6f, 0x8f, 0x1e, 0xde, 0x95, 0x4e, 0x79, 0xc0, 0x38, 0x2b, 0x2c, 0xc5, - 0xeb, 0xdf, 0x2b, 0xc2, 0x29, 0x4d, 0xc3, 0xd3, 0x72, 0x22, 0x6d, 0xdb, - 0xa6, 0x79, 0x3f, 0x4c, 0xfb, 0xf6, 0x0b, 0xbf, 0x2f, 0x5d, 0x9c, 0x54, - 0x5a, 0x86, 0x6c, 0x64, 0x38, 0x45, 0xc3, 0x57, 0xb9, 0x2d, 0x56, 0x0f, - 0x03, 0x17, 0x15, 0x89, 0xe4, 0x7b, 0x6b, 0x26, 0xe9, 0x4f, 0xeb, 0x5f, - 0xae, 0x73, 0x30, 0xf6, 0xfa, 0xeb, 0x75, 0x70, 0x30, 0xe2, 0x4b, 0x5a, - 0x8f, 0x49, 0x2e, 0xa7, 0x75, 0xbe, 0x15, 0x07, 0x2c, 0x3b, 0x08, 0x2a, - 0x5a, 0x2b, 0x5a, 0x8e, 0x18, 0x86, 0xaa, 0x91, 0x7e, 0xa0, 0x1f, 0xcc, - 0x04, 0x28, 0xd5, 0x8c, 0x51, 0x11, 0xcc, 0xe3, 0xb8, 0xe1, 0xe0, 0x15, - 0xb9, 0x74, 0x21, 0x96, 0x01, 0x55, 0xa2, 0xa6, 0x98, 0x02, 0x36, 0x73, - 0x2e, 0x8b, 0x05, 0xe5, 0x10, 0x4f, 0x1a, 0xae, 0xad, 0x86, 0xb3, 0x34, - 0x4c, 0x3e, 0x14, 0x8c, 0x01, 0x9e, 0x91, 0xb2, 0x9c, 0x57, 0x93, 0xe5, - 0x9c, 0x4c, 0x15, 0x13, 0x32, 0x90, 0xe1, 0xe2, 0x61, 0xf1, 0xa0, 0xe5, - 0x32, 0xf7, 0x07, 0xcc, 0xc6, 0x11, 0x36, 0x62, 0x4b, 0xbf, 0x08, 0x0f, - 0xa1, 0xa0, 0x28, 0x31, 0x52, 0x43, 0x2a, 0xb0, 0xe8, 0x12, 0xc2, 0x80, - 0xc8, 0x5b, 0x77, 0xf4, 0xf6, 0xe8, 0xfc, 0xfc, 0xe8, 0x9c, 0xd6, 0x7b, - 0xbf, 0x68, 0x55, 0x32, 0xb2, 0x00, 0x93, 0xce, 0xfd, 0xa7, 0x21, 0xaa, - 0x21, 0xa4, 0x36, 0xb3, 0xc2, 0x74, 0x3a, 0x25, 0x08, 0x63, 0x68, 0x10, - 0x8c, 0xa7, 0xc2, 0x15, 0x63, 0x7d, 0xf3, 0x22, 0x42, 0x94, 0xad, 0x29, - 0xdf, 0x2f, 0x20, 0xe6, 0xc9, 0x16, 0xae, 0x85, 0x4a, 0x2a, 0xe4, 0x2d, - 0x35, 0x73, 0xf9, 0x3a, 0x6b, 0x89, 0xa9, 0x43, 0x89, 0x2a, 0xcd, 0xc4, - 0xc1, 0x3d, 0xb3, 0xf6, 0x09, 0x4c, 0xf9, 0x92, 0xce, 0x28, 0xe9, 0x4e, - 0x58, 0x8c, 0xba, 0x59, 0x2e, 0xf2, 0xa9, 0xb5, 0xf6, 0x9a, 0xcf, 0x8d, - 0xf8, 0x97, 0xf0, 0x29, 0xaf, 0x35, 0xfe, 0x04, 0x9e, 0x46, 0x35, 0x46, - 0xf8, 0xd6, 0xb6, 0x0e, 0xce, 0x69, 0x82, 0xb4, 0x24, 0x0e, 0xe4, 0xd2, - 0x6a, 0x27, 0xed, 0x1c, 0x5c, 0xa1, 0xfd, 0x0c, 0x56, 0x46, 0xe2, 0x16, - 0x1a, 0x12, 0xe3, 0x73, 0x06, 0xb2, 0x65, 0xcd, 0x5d, 0x6c, 0x36, 0x85, - 0x95, 0xed, 0x31, 0x5a, 0x04, 0x52, 0xef, 0xaa, 0xbd, 0xe4, 0xc7, 0x3a, - 0x9f, 0xfc, 0xec, 0x2e, 0x0f, 0xe4, 0x59, 0xb8, 0xf0, 0x69, 0xb6, 0xd0, - 0x9b, 0xc9, 0xcb, 0x42, 0x89, 0x32, 0xcc, 0x29, 0xaf, 0x1f, 0x46, 0x47, - 0xe7, 0xc9, 0xfe, 0xd7, 0x84, 0x96, 0xfa, 0xbf, 0xb9, 0xc1, 0xf4, 0x9c, - 0xdc, 0x0e, 0x6b, 0x12, 0xf3, 0x29, 0x18, 0x10, 0x99, 0x9a, 0xc2, 0x19, - 0xbf, 0xa8, 0xb5, 0xb3, 0xb9, 0x96, 0x80, 0xf5, 0x92, 0xf5, 0x5b, 0x7b, - 0xb8, 0x96, 0x3c, 0xb9, 0x8b, 0x9f, 0xb2, 0x87, 0x74, 0xc8, 0xfc, 0x5d, - 0x64, 0xf4, 0x18, 0x76, 0x49, 0xe8, 0xde, 0xc8, 0xe8, 0xeb, 0x40, 0xed, - 0xe4, 0x5d, 0xda, 0x4f, 0xd6, 0xdf, 0x95, 0xff, 0x30, 0xc2, 0x40, 0xba, - 0xf5, 0x6c, 0xb8, 0x9d, 0x6c, 0x7c, 0x9f, 0x17, 0xaf, 0x5e, 0xfc, 0x25, - 0x39, 0xde, 0x5c, 0x6f, 0x05, 0x9e, 0x73, 0x4d, 0xb0, 0x71, 0x5a, 0xdc, - 0xd8, 0x2d, 0x3b, 0xc5, 0xc9, 0xe6, 0x40, 0x37, 0x2d, 0xa8, 0xc0, 0xa5, - 0x4b, 0x57, 0xb6, 0x88, 0x04, 0x39, 0x89, 0x61, 0x4f, 0xbe, 0xb3, 0xe8, - 0xc0, 0xa4, 0xe5, 0x9b, 0xa7, 0xa6, 0xb4, 0x74, 0xaf, 0x5e, 0x04, 0x4d, - 0x3c, 0xb7, 0x6d, 0x7c, 0xe0, 0x36, 0x7e, 0x61, 0x13, 0xbb, 0xc3, 0xed, - 0xdd, 0x64, 0xe3, 0x74, 0xb4, 0xb5, 0x6b, 0x5b, 0x08, 0x9b, 0xd8, 0x45, - 0x13, 0xf4, 0x50, 0xfb, 0xe5, 0xe7, 0xd4, 0xff, 0x8f, 0x59, 0xf1, 0x73, - 0xb2, 0xf1, 0xc3, 0xce, 0x8e, 0x69, 0xe0, 0x2f, 0xc9, 0xfe, 0xf1, 0x0f, - 0xc9, 0xf3, 0xa1, 0x69, 0xec, 0x7d, 0x7a, 0x2b, 0xcd, 0x09, 0xe8, 0xe7, - 0x08, 0x8d, 0x98, 0xef, 0x83, 0x36, 0x5e, 0x74, 0xda, 0x38, 0x31, 0x7a, - 0xe1, 0xbd, 0xb9, 0x56, 0xb6, 0x87, 0xcf, 0x76, 0x93, 0xfc, 0xc5, 0xe7, - 0x2f, 0xb5, 0x21, 0x69, 0x03, 0xdf, 0xb7, 0xad, 0x95, 0x0c, 0x2b, 0x61, - 0x44, 0x9d, 0xa3, 0x7b, 0xc3, 0xd0, 0xc0, 0x22, 0x80, 0x9c, 0x7f, 0x9d, - 0x56, 0x5a, 0x4f, 0x93, 0xc0, 0xd4, 0xcd, 0x4e, 0x09, 0xdc, 0x6e, 0x06, - 0xb3, 0xa5, 0xb9, 0x38, 0xf7, 0x82, 0xe1, 0x90, 0x6e, 0xaa, 0x8f, 0xfe, - 0x25, 0x79, 0x37, 0x3a, 0x3e, 0x32, 0x33, 0xda, 0x36, 0x43, 0x73, 0x6b, - 0xc8, 0x03, 0xc2, 0x57, 0x58, 0xdc, 0x57, 0x40, 0x6f, 0x94, 0x36, 0xfc, - 0xca, 0x8f, 0x20, 0x3a, 0x73, 0x71, 0xd7, 0xe8, 0x97, 0xc2, 0x44, 0x06, - 0xfb, 0x57, 0xa4, 0x42, 0xf0, 0x55, 0x8b, 0xae, 0xbf, 0x2d, 0x0b, 0x73, - 0x4c, 0xaa, 0xb2, 0xa2, 0x68, 0xa6, 0xf5, 0x96, 0xb4, 0xf0, 0xed, 0xe1, - 0x11, 0xa7, 0x1e, 0xbf, 0x4b, 0x0b, 0xc3, 0x23, 0x09, 0x42, 0xa8, 0xbe, - 0x21, 0x9f, 0x3c, 0xbb, 0x73, 0xf8, 0xfd, 0x93, 0x87, 0xe2, 0xde, 0xec, - 0xe3, 0x67, 0xc3, 0x1d, 0x02, 0x70, 0x20, 0xad, 0xf7, 0xed, 0x3b, 0xf3, - 0xf7, 0xce, 0xf3, 0xf5, 0x84, 0xbe, 0x6a, 0x6b, 0xf0, 0x7a, 0x5e, 0xd7, - 0x0e, 0x4e, 0x4f, 0xbf, 0x3d, 0xe6, 0xa0, 0x8c, 0x03, 0x31, 0xab, 0x92, - 0x70, 0x65, 0xb5, 0x62, 0xe6, 0xae, 0x46, 0x7b, 0x73, 0x59, 0x2e, 0x70, - 0xc6, 0xdd, 0x64, 0xd9, 0x82, 0x22, 0x04, 0x9a, 0x0e, 0x47, 0x68, 0x84, - 0x47, 0xdb, 0x78, 0x23, 0x12, 0x7f, 0x5a, 0xf0, 0x47, 0x35, 0x41, 0xca, - 0xaa, 0x09, 0x77, 0xfc, 0x60, 0xe1, 0x0d, 0x52, 0xeb, 0x32, 0xd3, 0x3a, - 0x0a, 0xd2, 0x94, 0x9a, 0xa0, 0xb9, 0x08, 0x81, 0x79, 0x51, 0x74, 0xdf, - 0xf5, 0x91, 0x91, 0xee, 0x79, 0xd0, 0x7b, 0x62, 0xb5, 0x5d, 0xf7, 0x40, - 0x78, 0x21, 0xd1, 0x2e, 0xa4, 0x48, 0x07, 0x4c, 0xc7, 0x0f, 0x46, 0x96, - 0xc0, 0x9c, 0x84, 0x37, 0xd7, 0xb0, 0x65, 0x23, 0x64, 0xee, 0xfd, 0xfe, - 0xbb, 0xa3, 0x37, 0xdf, 0xed, 0x9f, 0x7c, 0x38, 0x32, 0xaf, 0xe4, 0x80, - 0xbb, 0xb6, 0x61, 0x75, 0x18, 0xe3, 0x3c, 0x47, 0xd5, 0xc9, 0xda, 0x88, - 0x07, 0xeb, 0x6b, 0x1c, 0xf2, 0x9d, 0xf4, 0xe8, 0xad, 0x1d, 0x7e, 0xcd, - 0xd0, 0x05, 0xfd, 0xb5, 0xcb, 0x7f, 0xed, 0xfe, 0xa5, 0xb7, 0xd9, 0x9a, - 0x74, 0xa0, 0x25, 0x13, 0xbd, 0xdc, 0x71, 0xa5, 0x16, 0x0a, 0xd9, 0xe1, - 0x3c, 0x03, 0x5e, 0x95, 0x9e, 0xfa, 0x68, 0xf4, 0x6e, 0xa3, 0x67, 0x37, - 0xc6, 0x0f, 0xbe, 0x0e, 0xde, 0xa3, 0x97, 0xde, 0x40, 0xc0, 0xe8, 0x6d, - 0xf6, 0xad, 0xc8, 0x01, 0xf7, 0x35, 0xb5, 0xa1, 0x4d, 0x64, 0xf7, 0x0b, - 0x8a, 0x52, 0xdc, 0xe8, 0xf1, 0x2f, 0x6f, 0x0e, 0xf7, 0x2f, 0x8e, 0xe8, - 0x05, 0xed, 0x5e, 0xa1, 0xdc, 0x35, 0x1b, 0x80, 0xc6, 0xb3, 0xd1, 0xe3, - 0x0f, 0xdf, 0xd0, 0x84, 0x7a, 0x9b, 0xec, 0xcb, 0x80, 0xa3, 0xbb, 0x33, - 0xae, 0xb2, 0xd0, 0x60, 0x6a, 0x97, 0xce, 0x5b, 0x6b, 0x14, 0xc9, 0x46, - 0x8f, 0xbf, 0xeb, 0x59, 0x0b, 0xae, 0xd4, 0x75, 0x16, 0x77, 0xe5, 0x14, - 0xb9, 0x02, 0x41, 0x0a, 0x23, 0x87, 0x89, 0xb9, 0xfd, 0x11, 0x67, 0x05, - 0x5b, 0x9c, 0x3c, 0x54, 0x62, 0xbb, 0xf1, 0x92, 0x2f, 0x4c, 0x36, 0xa6, - 0xb2, 0xdc, 0xd9, 0x7d, 0xf6, 0x17, 0xac, 0xe7, 0x9b, 0xde, 0x96, 0xb9, - 0x1b, 0x7a, 0x7f, 0xa1, 0xae, 0x73, 0x57, 0xdf, 0xd5, 0xee, 0x07, 0xe9, - 0x53, 0x42, 0x51, 0x1c, 0xc2, 0x42, 0xbb, 0xee, 0xa1, 0xa0, 0x60, 0x41, - 0xef, 0x38, 0xa3, 0x49, 0x71, 0x43, 0xd4, 0xa1, 0x8f, 0xfd, 0x1a, 0x67, - 0x57, 0x79, 0x81, 0x1a, 0x5d, 0x6c, 0xd4, 0x45, 0x77, 0xfe, 0xfd, 0xd1, - 0xe7, 0x77, 0x79, 0x8e, 0x82, 0xb3, 0x42, 0x7d, 0xce, 0x1f, 0x34, 0xe9, - 0x09, 0x7d, 0x49, 0x41, 0x53, 0xcc, 0xa5, 0x2b, 0x1d, 0x8c, 0xc5, 0xb6, - 0xa3, 0xca, 0x08, 0x64, 0x02, 0xc3, 0x5a, 0x1e, 0x20, 0x28, 0x71, 0x04, - 0x80, 0x17, 0xf8, 0xa0, 0x77, 0x76, 0x3a, 0xa6, 0x6c, 0x5e, 0x9b, 0xe1, - 0xe1, 0x69, 0xe5, 0x76, 0xe9, 0xf5, 0xf8, 0xe5, 0x1e, 0x82, 0x0d, 0x5d, - 0x94, 0xbc, 0x96, 0xb5, 0xb5, 0x21, 0xc1, 0xdb, 0x28, 0xcf, 0xb6, 0xf7, - 0xa9, 0x93, 0x3b, 0x85, 0x69, 0xb0, 0x4a, 0xcf, 0xfa, 0xb1, 0x61, 0x35, - 0x45, 0x56, 0x3d, 0x1a, 0xf4, 0x10, 0x71, 0x46, 0x61, 0x8a, 0x5e, 0x32, - 0x1e, 0xbd, 0x33, 0x1c, 0x0e, 0x5d, 0x8d, 0x5c, 0xda, 0x16, 0xf1, 0x41, - 0xa1, 0xb6, 0x89, 0x87, 0xb3, 0x89, 0x35, 0xde, 0x80, 0x30, 0x0f, 0x81, - 0x7a, 0x53, 0x82, 0x61, 0xc4, 0x4e, 0x60, 0x8f, 0x86, 0x67, 0xe3, 0x58, - 0x97, 0x6e, 0xd7, 0x35, 0xb9, 0xfd, 0x26, 0xb6, 0x09, 0x8f, 0x8c, 0x8d, - 0x6d, 0x8f, 0x52, 0x19, 0xcf, 0xf2, 0xa9, 0xd2, 0xae, 0x05, 0x51, 0x30, - 0x05, 0x75, 0x83, 0x4e, 0x38, 0xb5, 0x93, 0x17, 0x4d, 0x86, 0xe2, 0x0a, - 0x40, 0x1b, 0x51, 0x0f, 0xd9, 0xe6, 0x5c, 0x0a, 0x63, 0x51, 0x91, 0xa6, - 0x47, 0x6b, 0xac, 0x37, 0xc8, 0xc2, 0x8a, 0xcd, 0xd2, 0x8e, 0xc0, 0xae, - 0x92, 0xce, 0x0c, 0xd9, 0xbf, 0xef, 0xa0, 0x59, 0xd7, 0x50, 0xac, 0x2f, - 0x13, 0xed, 0xd9, 0x0c, 0x15, 0x6e, 0x2f, 0x99, 0xbc, 0x33, 0x57, 0x51, - 0x04, 0xd8, 0x80, 0x81, 0x2f, 0x34, 0x69, 0x4e, 0xb9, 0x87, 0x40, 0x1f, - 0x3c, 0xe6, 0x2f, 0x9f, 0x68, 0x8b, 0xd6, 0x59, 0xde, 0x59, 0x1b, 0x77, - 0x2b, 0xb7, 0x59, 0x97, 0x59, 0x51, 0xb6, 0x2e, 0x33, 0xc4, 0x80, 0xe3, - 0x7b, 0x49, 0x7a, 0x47, 0xb5, 0x9a, 0x33, 0x8a, 0x99, 0x44, 0xa4, 0x03, - 0xac, 0x32, 0x27, 0x9e, 0x9d, 0xd1, 0x81, 0xcf, 0x4a, 0x39, 0xf8, 0xd4, - 0x15, 0x84, 0xd7, 0xaa, 0xaf, 0x0c, 0x2b, 0xaa, 0x06, 0xbd, 0x1c, 0xb5, - 0x69, 0x09, 0x06, 0x52, 0x24, 0x75, 0x55, 0xcf, 0x69, 0xe4, 0x9b, 0xa8, - 0xde, 0xc9, 0xe2, 0x3c, 0x62, 0x05, 0xc9, 0xce, 0xc1, 0x71, 0x15, 0xba, - 0x5a, 0x80, 0x62, 0xb7, 0x9d, 0x58, 0xff, 0xb4, 0x98, 0x9f, 0x28, 0xe4, - 0xb6, 0x18, 0xd8, 0xb2, 0xdb, 0x36, 0x1e, 0xab, 0xca, 0xaf, 0xae, 0xa4, - 0x60, 0x68, 0x77, 0x6a, 0x71, 0x22, 0x3b, 0xa1, 0x55, 0xa1, 0xc8, 0xe4, - 0x87, 0x55, 0xab, 0x79, 0xa1, 0x36, 0x1f, 0xb5, 0xba, 0xb4, 0x88, 0x59, - 0x7d, 0x92, 0xbc, 0x6f, 0x0d, 0xaa, 0x0a, 0x23, 0x15, 0x9c, 0x92, 0x26, - 0xda, 0x3e, 0xe4, 0xd3, 0xf3, 0x35, 0x40, 0x71, 0x17, 0x2e, 0xf3, 0x5d, - 0x37, 0x1d, 0x28, 0x66, 0x2e, 0x02, 0xc5, 0x45, 0x87, 0xde, 0xd9, 0xf0, - 0x27, 0xae, 0xe9, 0x35, 0x4e, 0x9d, 0xca, 0xb5, 0x96, 0xb4, 0xac, 0xbd, - 0x54, 0x76, 0xe2, 0xb8, 0x10, 0x3e, 0x54, 0xde, 0x66, 0x0e, 0x4a, 0xcf, - 0x19, 0x1c, 0x1d, 0xfc, 0xa9, 0x9c, 0x7e, 0xcb, 0x4c, 0x3a, 0x0e, 0x5e, - 0xcb, 0xaf, 0x30, 0xc9, 0xce, 0xaa, 0xf8, 0xf5, 0x2d, 0xc4, 0x54, 0x52, - 0xfa, 0x2c, 0x9e, 0xc7, 0x26, 0x7e, 0x6b, 0x6d, 0x91, 0x69, 0x84, 0xa1, - 0x30, 0x3c, 0xd5, 0x84, 0x0b, 0x33, 0x28, 0xa2, 0xb8, 0x8d, 0x9b, 0x73, - 0xfe, 0x5f, 0x9d, 0x65, 0xcf, 0x6e, 0x52, 0x0f, 0x69, 0x70, 0x63, 0x21, - 0x02, 0xd0, 0x00, 0x09, 0x74, 0xd6, 0x85, 0xbf, 0x3f, 0x4b, 0x29, 0x88, - 0xa5, 0xe4, 0xe8, 0x00, 0x6c, 0x19, 0x88, 0x1a, 0xc6, 0xb4, 0x0e, 0x4f, - 0x0d, 0x8e, 0x9f, 0x8d, 0xd6, 0x60, 0x5a, 0x03, 0x10, 0x2a, 0x35, 0x63, - 0xa8, 0x04, 0x11, 0xd6, 0x13, 0xbf, 0xe8, 0xeb, 0xea, 0x24, 0xf1, 0x71, - 0xeb, 0x8c, 0x3e, 0x75, 0x64, 0xcf, 0xce, 0x4f, 0xbf, 0x3e, 0x3f, 0x1a, - 0x8d, 0x92, 0x77, 0x47, 0x17, 0xac, 0xf6, 0x4b, 0x25, 0xed, 0x2b, 0xd2, - 0xdc, 0x13, 0xb8, 0x1d, 0x14, 0xf4, 0x46, 0xa3, 0x4f, 0xd4, 0xa6, 0x80, - 0x94, 0xa4, 0x92, 0x5c, 0x6a, 0x10, 0xe5, 0xa0, 0xcf, 0xcf, 0x24, 0xa0, - 0xee, 0x1a, 0x86, 0x7f, 0x84, 0x37, 0xc1, 0x37, 0x69, 0xed, 0xe8, 0xce, - 0xa2, 0x0a, 0x19, 0x99, 0x03, 0x9e, 0xae, 0x95, 0x73, 0x39, 0x6b, 0x3a, - 0xdd, 0xde, 0xe6, 0x5f, 0x4c, 0xef, 0x4f, 0xc9, 0x45, 0xd9, 0x10, 0x40, - 0x27, 0xfd, 0x7a, 0xae, 0xf4, 0xf1, 0xa7, 0xe4, 0x07, 0xd3, 0xe6, 0xd4, - 0xac, 0x3a, 0x19, 0x93, 0xcd, 0x85, 0x3b, 0x42, 0xc9, 0x42, 0x57, 0x87, - 0x05, 0x20, 0xe3, 0x7e, 0xa5, 0xe6, 0x65, 0x55, 0x0d, 0xe3, 0x65, 0x4c, - 0x5a, 0x75, 0x48, 0x18, 0x27, 0x46, 0xc2, 0xeb, 0x6c, 0xcf, 0x52, 0x8b, - 0x34, 0x49, 0x4e, 0xb2, 0xcb, 0x06, 0x02, 0x09, 0x75, 0x67, 0x9a, 0xdb, - 0x26, 0xc0, 0xdc, 0x1d, 0xaa, 0xaf, 0x64, 0x7e, 0x7d, 0xf6, 0xf9, 0xcb, - 0xed, 0xcf, 0xf9, 0x57, 0xfd, 0xf9, 0xea, 0xf9, 0xb6, 0x00, 0x4f, 0x9b, - 0xbf, 0x9e, 0xef, 0x3d, 0xdf, 0xd9, 0x23, 0x3c, 0xbc, 0xed, 0xbd, 0x6d, - 0xf3, 0xff, 0xcf, 0xe5, 0x13, 0x02, 0xfd, 0x7b, 0xb5, 0xfb, 0xf9, 0x67, - 0x08, 0x8c, 0x21, 0xfa, 0x98, 0x99, 0x4e, 0x06, 0x4d, 0x39, 0x00, 0x2c, - 0x0f, 0x84, 0xa0, 0x3f, 0xb5, 0x8d, 0x92, 0xe4, 0x69, 0x9f, 0x90, 0x5f, - 0xf5, 0x8a, 0xd5, 0x9b, 0x59, 0x06, 0x3c, 0xfe, 0x4b, 0x0f, 0x6a, 0x44, - 0x03, 0xb8, 0x39, 0xdb, 0x58, 0xa6, 0x21, 0x6f, 0x37, 0xf8, 0x1b, 0x38, - 0x57, 0xad, 0x77, 0x38, 0x0e, 0xdc, 0x83, 0xd4, 0xfa, 0xa5, 0x5d, 0x6b, - 0xfe, 0xf3, 0x1a, 0x80, 0xb2, 0x64, 0xab, 0xe4, 0xbd, 0x89, 0x96, 0x73, - 0xb5, 0x4f, 0x91, 0x44, 0x38, 0xe7, 0x94, 0x81, 0x4b, 0x8e, 0x26, 0xfe, - 0xa5, 0xfd, 0xb1, 0x11, 0x8b, 0xde, 0x12, 0x6a, 0x48, 0xc2, 0xde, 0x6c, - 0xaa, 0x40, 0xa4, 0xaf, 0x16, 0xf1, 0xac, 0xb9, 0xed, 0x77, 0x2b, 0x45, - 0x5c, 0x4d, 0x1e, 0xb2, 0x29, 0x56, 0x5c, 0x1d, 0x33, 0x32, 0xe5, 0xa0, - 0x39, 0x21, 0xa3, 0x5f, 0xd0, 0x9c, 0x9b, 0x11, 0x28, 0xd8, 0xee, 0xdc, - 0xc0, 0xdb, 0x9c, 0x9c, 0x63, 0xdc, 0x74, 0x35, 0x2c, 0x10, 0xa3, 0xde, - 0x78, 0xfc, 0xaa, 0x25, 0xd9, 0x01, 0xbf, 0x21, 0xe2, 0xa7, 0x4d, 0x5b, - 0x93, 0xc2, 0xdc, 0xf6, 0x79, 0xa5, 0xec, 0xa0, 0x2b, 0xa2, 0x46, 0xaf, - 0x3f, 0xe9, 0x03, 0xe7, 0xc9, 0x1e, 0xba, 0x47, 0xa7, 0xe6, 0x42, 0xdf, - 0x6d, 0x6d, 0xd0, 0x0d, 0x1b, 0x4a, 0x1e, 0x3b, 0x92, 0xee, 0x39, 0x44, - 0x97, 0xdb, 0xe6, 0xfc, 0x8b, 0x08, 0x95, 0x61, 0x31, 0x3e, 0xe0, 0xe9, - 0x2c, 0x09, 0x0e, 0x7d, 0x53, 0x59, 0xd8, 0xe0, 0x8f, 0x36, 0x82, 0x0b, - 0xf7, 0x9a, 0x94, 0x0f, 0x4c, 0x99, 0xf2, 0x67, 0x7e, 0xaa, 0xab, 0xe5, - 0x76, 0xe3, 0xb4, 0x6a, 0xc1, 0x8e, 0xaf, 0x09, 0xa0, 0xfd, 0x9c, 0x30, - 0xbd, 0xbc, 0x1a, 0xf0, 0x7f, 0x58, 0x5b, 0x1b, 0x9d, 0x1d, 0x1d, 0x1d, - 0x26, 0x27, 0xc7, 0xef, 0x8e, 0x2f, 0x3c, 0x81, 0xdc, 0x5e, 0x24, 0x6a, - 0x74, 0xd5, 0x12, 0x3d, 0x9d, 0xe5, 0x70, 0x30, 0xb7, 0x52, 0x3a, 0x41, - 0xae, 0xf2, 0x79, 0x26, 0x49, 0x0e, 0xb3, 0xee, 0x7b, 0x50, 0xbd, 0x01, - 0xa6, 0x33, 0x4c, 0xbe, 0xf2, 0x62, 0x24, 0x93, 0xda, 0x08, 0x37, 0x13, - 0x5b, 0x33, 0x75, 0xf0, 0x57, 0x09, 0xd9, 0x68, 0x4b, 0x4e, 0x82, 0xd6, - 0x69, 0x33, 0x6e, 0x24, 0xcc, 0xb5, 0x33, 0x2a, 0x5a, 0xdb, 0x8c, 0x23, - 0x9f, 0x3d, 0x0b, 0x1d, 0x22, 0xf8, 0xee, 0x32, 0x24, 0xe9, 0xcf, 0x73, - 0x4e, 0x85, 0xf4, 0xc3, 0x8b, 0x6d, 0x19, 0xc9, 0x8b, 0x92, 0xf9, 0xb8, - 0xdf, 0xa3, 0x5f, 0x1f, 0x58, 0x63, 0x6b, 0xb5, 0x2f, 0xbf, 0xf0, 0xec, - 0xb3, 0x6d, 0x9b, 0x4d, 0xb0, 0x00, 0xcf, 0x11, 0x51, 0x9f, 0x3a, 0xdb, - 0x49, 0x8c, 0x3c, 0xb2, 0x24, 0xa9, 0xbe, 0x5a, 0x16, 0xc1, 0x75, 0xf7, - 0x57, 0x7e, 0xd7, 0xcc, 0xff, 0xe5, 0x36, 0xae, 0xb7, 0xcb, 0xb4, 0x1a, - 0x18, 0xc9, 0xeb, 0x61, 0xa0, 0xd6, 0x55, 0xa6, 0x08, 0x09, 0x3d, 0x66, - 0xd3, 0x4f, 0xe6, 0x2a, 0x56, 0x76, 0xa4, 0x45, 0x97, 0x12, 0x52, 0xc2, - 0x45, 0x39, 0x93, 0x03, 0x40, 0x53, 0xa7, 0x44, 0x5c, 0x35, 0x76, 0x3a, - 0x59, 0xc7, 0x21, 0xb9, 0xea, 0x2e, 0x3a, 0x1e, 0x45, 0x09, 0x02, 0x60, - 0xab, 0xd4, 0x6a, 0x4e, 0xd3, 0x94, 0xb9, 0x84, 0xa2, 0xf5, 0x3c, 0xd9, - 0xf9, 0x9c, 0xe6, 0xf1, 0x69, 0xf3, 0x79, 0x5b, 0x56, 0x13, 0x9b, 0xf2, - 0x0b, 0x75, 0xc1, 0xcb, 0xff, 0xe4, 0xac, 0x05, 0x94, 0xb7, 0xe1, 0xd5, - 0xd5, 0xf8, 0x58, 0xc4, 0xef, 0x91, 0x7e, 0x22, 0xae, 0x75, 0x58, 0xa6, - 0xe0, 0xeb, 0x66, 0x09, 0x89, 0xee, 0x1a, 0x59, 0x17, 0xb2, 0xb5, 0x72, - 0xfc, 0xde, 0x7a, 0x65, 0xf3, 0x43, 0x79, 0x19, 0xc8, 0x3a, 0x62, 0x68, - 0xed, 0x2e, 0x9f, 0x42, 0xaa, 0x76, 0x98, 0x5e, 0x66, 0xbf, 0x98, 0xf8, - 0x38, 0x6c, 0x1a, 0xee, 0x4b, 0xf8, 0x3d, 0xed, 0xc8, 0x44, 0x80, 0xa1, - 0x65, 0x2d, 0x61, 0x5c, 0xd8, 0x80, 0xfc, 0x40, 0xe9, 0xc7, 0xce, 0x45, - 0x40, 0xaa, 0x14, 0xb1, 0xe6, 0x9e, 0xeb, 0x85, 0x42, 0xf9, 0x9b, 0x66, - 0xa6, 0x76, 0x85, 0x77, 0x96, 0xb0, 0xdb, 0x73, 0x26, 0x80, 0x11, 0x6f, - 0xda, 0x3b, 0xdb, 0x46, 0x7e, 0x9d, 0x95, 0xdd, 0xfa, 0xd6, 0xa1, 0x52, - 0x8a, 0x69, 0x0d, 0xb0, 0x3a, 0x3b, 0xdb, 0xdf, 0xae, 0x5e, 0x75, 0xa0, - 0x82, 0x3f, 0xfa, 0xf2, 0xee, 0xf3, 0x47, 0x36, 0xed, 0xb4, 0x82, 0x5e, - 0x9e, 0x69, 0x38, 0x24, 0x04, 0x41, 0xe7, 0x84, 0x09, 0xb6, 0xcd, 0x10, - 0x7e, 0x76, 0x95, 0xd2, 0xf0, 0x1f, 0x1b, 0xbd, 0xa6, 0x6c, 0x74, 0x86, - 0xf2, 0x4e, 0x02, 0xb4, 0xf9, 0xcb, 0x9a, 0x2c, 0x64, 0x0b, 0x40, 0xa2, - 0x39, 0x35, 0xd6, 0x66, 0x7b, 0x33, 0xee, 0x84, 0xf7, 0x36, 0x73, 0xce, - 0x7e, 0x9b, 0x49, 0x28, 0xf5, 0x54, 0xd9, 0xd5, 0x92, 0x81, 0x1d, 0x4a, - 0x56, 0xfb, 0x09, 0x00, 0x58, 0xce, 0xab, 0xe1, 0xcd, 0x14, 0x49, 0xc4, - 0xf4, 0x04, 0xc6, 0x3b, 0x49, 0x55, 0x64, 0x65, 0x91, 0xa3, 0x7b, 0x31, - 0x90, 0x7d, 0x76, 0x42, 0x0e, 0x31, 0x70, 0x83, 0xb5, 0xa4, 0x5b, 0xfa, - 0x96, 0x11, 0xee, 0x86, 0x48, 0xc4, 0x65, 0x42, 0xb1, 0xcc, 0x9e, 0xb2, - 0xbe, 0xc8, 0x31, 0xd6, 0xb0, 0x87, 0x00, 0x0d, 0xf4, 0x85, 0x6a, 0xd1, - 0x92, 0xed, 0x8a, 0x38, 0x7e, 0xad, 0x48, 0x83, 0x8c, 0x4b, 0x4e, 0x76, - 0xff, 0x83, 0xd3, 0xf7, 0x6f, 0x8f, 0xbf, 0xb6, 0x08, 0x3c, 0xcc, 0xc4, - 0xb5, 0x26, 0x27, 0xda, 0xb4, 0x25, 0x8a, 0xad, 0xd3, 0x5b, 0x6a, 0xd7, - 0x49, 0x20, 0xae, 0x61, 0x4f, 0x1f, 0xfd, 0x0f, 0xc0, 0x40, 0x8a, 0x67, - 0x64, 0x2b, 0x67, 0x44, 0x8b, 0x7a, 0xd3, 0x59, 0x1e, 0x3a, 0xf0, 0x60, - 0x9c, 0xb0, 0x91, 0x56, 0xcd, 0x72, 0x61, 0xe3, 0x09, 0xbd, 0xda, 0x77, - 0x82, 0x58, 0xac, 0x99, 0xe2, 0xcb, 0x05, 0xb3, 0x26, 0xc9, 0xf7, 0x6c, - 0x19, 0x76, 0xf9, 0x0e, 0x20, 0xcb, 0x82, 0x40, 0x80, 0xc8, 0x05, 0x10, - 0x84, 0xe8, 0xcc, 0x08, 0xe2, 0xd0, 0x0f, 0x9d, 0x57, 0x57, 0xce, 0x14, - 0xd5, 0x03, 0xfd, 0xaa, 0xc5, 0x73, 0xd6, 0xcc, 0x68, 0xde, 0x28, 0x36, - 0x6b, 0xe3, 0x72, 0x6c, 0x20, 0xb0, 0x73, 0x15, 0xd9, 0x72, 0x41, 0x2e, - 0x54, 0x49, 0xb3, 0x4c, 0x53, 0x78, 0x2d, 0xe1, 0xf6, 0xc4, 0x27, 0x6f, - 0xc8, 0x43, 0xb3, 0x47, 0xc0, 0xdd, 0x73, 0x06, 0xf1, 0xf2, 0xb3, 0x43, - 0x85, 0x4b, 0x3a, 0x74, 0xed, 0xe3, 0x4b, 0x2f, 0xe1, 0x8c, 0x43, 0x06, - 0x95, 0xe8, 0xd8, 0x5c, 0x4c, 0xb6, 0x96, 0xf5, 0x3f, 0xae, 0x0f, 0xea, - 0x87, 0xf9, 0xb8, 0x9c, 0x69, 0x0e, 0x86, 0xc5, 0x77, 0xd0, 0x87, 0xb4, - 0x1c, 0x55, 0xca, 0x35, 0xdc, 0xd1, 0xb5, 0x67, 0xa1, 0x74, 0x61, 0x53, - 0x6e, 0xfc, 0x5c, 0xcf, 0x05, 0x9e, 0x22, 0x9d, 0x85, 0x45, 0x1d, 0xc9, - 0x8a, 0xc9, 0xac, 0x14, 0xaa, 0xa6, 0xfc, 0x6f, 0xac, 0x54, 0x7b, 0xea, - 0xe4, 0xfc, 0x2b, 0x97, 0x64, 0xec, 0x40, 0xad, 0x06, 0x23, 0xee, 0xf4, - 0x04, 0xf0, 0x02, 0x13, 0xa4, 0xb7, 0xf9, 0x0b, 0x09, 0xd0, 0x57, 0xb8, - 0x16, 0xd3, 0x10, 0x17, 0x77, 0x30, 0x43, 0xfd, 0x89, 0x6d, 0x8b, 0xec, - 0x02, 0xfc, 0xab, 0x76, 0xae, 0x8f, 0x76, 0x96, 0xde, 0xd0, 0x53, 0x5a, - 0x5d, 0x09, 0x32, 0x9a, 0x38, 0xd5, 0xa0, 0x24, 0xda, 0x92, 0x1b, 0xd6, - 0x46, 0x49, 0x42, 0x89, 0x0d, 0xa0, 0x81, 0xf8, 0xb4, 0xe4, 0x94, 0x3f, - 0x49, 0x88, 0x62, 0xeb, 0xa4, 0x25, 0x44, 0x8f, 0xe3, 0xfc, 0xd1, 0x86, - 0xa5, 0xa4, 0xee, 0x2e, 0xd3, 0x52, 0x00, 0xce, 0x54, 0x2b, 0x97, 0x99, - 0xf7, 0x1a, 0xd9, 0xf3, 0xa0, 0x09, 0x67, 0x62, 0x43, 0xe1, 0xae, 0x20, - 0x4b, 0x10, 0x28, 0x20, 0xf2, 0x80, 0xb2, 0xda, 0x35, 0xc1, 0xdf, 0xbf, - 0x91, 0x02, 0x40, 0xe6, 0x3c, 0x0b, 0x90, 0x89, 0x40, 0xb6, 0x7d, 0xbe, - 0x2d, 0x96, 0xb8, 0x46, 0x22, 0x57, 0xeb, 0x64, 0xff, 0xfc, 0xc8, 0x48, - 0xb6, 0x57, 0x05, 0x20, 0x24, 0x8a, 0x46, 0x73, 0xde, 0xb2, 0x42, 0x6a, - 0x0e, 0x15, 0x7a, 0x3e, 0xa8, 0xc3, 0x3b, 0xef, 0x4d, 0x22, 0x26, 0x89, - 0x11, 0xe0, 0xf4, 0x6a, 0x47, 0x72, 0x13, 0xc5, 0x5f, 0x05, 0xd7, 0x21, - 0x14, 0x03, 0x26, 0x29, 0xf2, 0x96, 0x98, 0xae, 0x4a, 0xc5, 0x5e, 0x3d, - 0x0b, 0xd8, 0xba, 0x0f, 0xba, 0xaa, 0x6b, 0x8d, 0x53, 0xed, 0xb2, 0x12, - 0xfe, 0xae, 0x58, 0x88, 0xd2, 0x57, 0xcb, 0x03, 0xea, 0xc8, 0xa9, 0x1f, - 0xb7, 0x1e, 0xfd, 0x1d, 0xf7, 0x0c, 0xc9, 0x22, 0x5d, 0xb9, 0x20, 0xb3, - 0xc1, 0xf6, 0x6c, 0xc8, 0x9e, 0x7a, 0xc2, 0x2f, 0x67, 0xe8, 0xa1, 0x74, - 0x36, 0x6c, 0xd4, 0x24, 0xfc, 0xa4, 0xb5, 0x64, 0x43, 0x89, 0x3a, 0x30, - 0x95, 0xb3, 0x4a, 0x54, 0x41, 0x91, 0xc3, 0x63, 0x02, 0xff, 0xb9, 0x61, - 0x01, 0xc0, 0xe7, 0x4f, 0x51, 0x33, 0xef, 0x1f, 0xed, 0x6c, 0xdd, 0x18, - 0xec, 0x97, 0xf4, 0xd1, 0x1b, 0x0b, 0x90, 0x86, 0x12, 0xe0, 0xd4, 0x11, - 0x58, 0x2a, 0xdc, 0xa7, 0xf4, 0x0b, 0x3e, 0x46, 0x00, 0x9c, 0x22, 0x4c, - 0xb6, 0xf0, 0x8c, 0xa4, 0xc8, 0x88, 0x3f, 0x10, 0xf6, 0xf1, 0x81, 0x43, - 0x8f, 0x7d, 0xd1, 0x78, 0xf0, 0xed, 0x96, 0x96, 0x0d, 0x25, 0x53, 0x0e, - 0xe5, 0xf7, 0xea, 0x81, 0xaf, 0xb3, 0x56, 0x9d, 0x51, 0x9b, 0x34, 0xd4, - 0x1b, 0xf4, 0xcc, 0x5a, 0xac, 0xcf, 0x66, 0x8e, 0xe1, 0xeb, 0x63, 0xb4, - 0xab, 0xc8, 0xaf, 0x73, 0x02, 0x93, 0xf0, 0x2e, 0x2a, 0x60, 0xf0, 0xd0, - 0xca, 0x76, 0xa0, 0x0a, 0x50, 0x94, 0x0c, 0x64, 0xf1, 0xa8, 0x90, 0x31, - 0x82, 0x78, 0x81, 0xdb, 0xbc, 0x56, 0x3f, 0xa4, 0xa1, 0xed, 0x09, 0x87, - 0x47, 0x34, 0x8c, 0x17, 0x90, 0x35, 0x13, 0x6f, 0x29, 0xb3, 0xc9, 0x75, - 0xc9, 0xe1, 0xb5, 0x66, 0xd1, 0xbc, 0x44, 0xcc, 0x5e, 0xf2, 0x9f, 0x42, - 0x03, 0xdf, 0xba, 0xfc, 0x3d, 0x22, 0x84, 0x21, 0x63, 0xff, 0x0d, 0x1d, - 0x41, 0x1c, 0xfd, 0x70, 0x71, 0xbe, 0x9f, 0x7c, 0x73, 0xb4, 0x7f, 0x78, - 0x74, 0x3e, 0xea, 0x5c, 0xfa, 0x12, 0x09, 0xc2, 0x12, 0x1a, 0xd9, 0x83, - 0x21, 0x1a, 0x2b, 0x2e, 0x80, 0x84, 0xf0, 0x2b, 0xd7, 0x33, 0xc4, 0x43, - 0x07, 0xc9, 0x9c, 0x0f, 0x52, 0x88, 0xd8, 0x71, 0x00, 0xa0, 0xd8, 0x1a, - 0xcc, 0xc6, 0xb6, 0x31, 0x31, 0x1c, 0x8a, 0xe2, 0x19, 0xd4, 0x7a, 0xee, - 0x27, 0xcf, 0x38, 0x88, 0x39, 0x77, 0x99, 0x4c, 0x4b, 0xcd, 0x0b, 0x6c, - 0xef, 0xdc, 0x37, 0x2e, 0x1d, 0xdb, 0x63, 0x5b, 0x72, 0xc9, 0x88, 0x01, - 0xb1, 0xf7, 0xc3, 0xc0, 0xf4, 0x3b, 0x30, 0x8b, 0x3f, 0x20, 0x5c, 0xc0, - 0x87, 0xac, 0xee, 0x75, 0xac, 0x81, 0xed, 0xee, 0xc1, 0xa3, 0xaf, 0xc2, - 0x93, 0xf4, 0x4d, 0xb4, 0x25, 0x3a, 0x5d, 0x54, 0x18, 0x37, 0xd0, 0x20, - 0x70, 0xa9, 0x7a, 0x42, 0xb2, 0x9c, 0xa0, 0x20, 0xd3, 0x45, 0x62, 0x95, - 0x9c, 0x9a, 0x29, 0xa1, 0x61, 0x18, 0x88, 0x4c, 0x01, 0xb2, 0x8e, 0x39, - 0x7b, 0x7c, 0xa9, 0xc3, 0x2e, 0xa2, 0x90, 0xb5, 0x66, 0x58, 0xf2, 0x90, - 0x7f, 0x3f, 0xc0, 0x17, 0x22, 0xe1, 0xf8, 0x75, 0xcb, 0x55, 0x2a, 0x76, - 0x51, 0x29, 0x87, 0x26, 0xcd, 0xd1, 0x18, 0x2c, 0xcd, 0x6b, 0x14, 0x3f, - 0x75, 0xa9, 0x95, 0x18, 0xe4, 0x5d, 0x0e, 0x08, 0x23, 0xa5, 0x1e, 0xa6, - 0x4e, 0x2e, 0xeb, 0x48, 0xef, 0xa8, 0xbc, 0xea, 0xa5, 0x05, 0xf9, 0xc4, - 0x8c, 0xb2, 0x51, 0x08, 0x24, 0xb7, 0xcf, 0x65, 0xc9, 0x37, 0x65, 0x8d, - 0xbb, 0x20, 0x7c, 0x9c, 0x2e, 0xf9, 0xd8, 0xf2, 0xe3, 0x0d, 0x71, 0x75, - 0x59, 0x60, 0x4e, 0xe0, 0xd8, 0x82, 0x7d, 0x9d, 0xed, 0x5f, 0x7c, 0x03, - 0x47, 0x2b, 0x48, 0xf8, 0x10, 0x80, 0x26, 0xea, 0x5e, 0x0b, 0xb3, 0xb3, - 0xac, 0x02, 0xc7, 0xf2, 0xaf, 0xe2, 0x09, 0xaa, 0x3c, 0x09, 0x47, 0x5e, - 0xce, 0x31, 0x49, 0x33, 0x2e, 0xa3, 0x09, 0x1e, 0xdd, 0x2a, 0x66, 0x86, - 0x28, 0x78, 0x9b, 0x7a, 0x67, 0x43, 0x2f, 0xd7, 0x39, 0x4f, 0x7d, 0x9d, - 0xe7, 0x04, 0xa2, 0x27, 0x61, 0x8e, 0x34, 0x1e, 0x1f, 0xed, 0x15, 0x5f, - 0x50, 0x22, 0x32, 0xfb, 0xa2, 0xa6, 0x65, 0x1c, 0xae, 0xcf, 0x3b, 0xd2, - 0x5f, 0xce, 0x1f, 0x86, 0x21, 0x3e, 0x4e, 0xf2, 0xd5, 0xb2, 0x69, 0xb3, - 0x95, 0x0e, 0xe6, 0xac, 0x95, 0x2c, 0xab, 0xb2, 0x6c, 0xbc, 0x31, 0x40, - 0xfa, 0x49, 0x1b, 0x39, 0xd1, 0x8c, 0xcb, 0xc8, 0x63, 0xa1, 0xa6, 0x0a, - 0x91, 0xbb, 0x7d, 0xc1, 0x30, 0x1d, 0xd7, 0xe5, 0x6c, 0xd9, 0x78, 0x81, - 0xd8, 0xbf, 0x6c, 0xcc, 0xde, 0xa0, 0x37, 0x8e, 0x87, 0x8a, 0x51, 0x49, - 0x55, 0x90, 0x8d, 0x10, 0x6e, 0x34, 0x7d, 0x23, 0x5e, 0xc2, 0xef, 0x58, - 0x95, 0x45, 0xbb, 0xde, 0x16, 0x62, 0xbe, 0x37, 0xd7, 0xd6, 0x46, 0xba, - 0xd9, 0x04, 0x11, 0x1a, 0x6e, 0xfa, 0xf7, 0x90, 0x26, 0x69, 0x0c, 0xec, - 0x37, 0x98, 0x98, 0x5f, 0x14, 0xa3, 0x2d, 0xe3, 0x3d, 0x05, 0x0b, 0xe7, - 0x3d, 0xce, 0xeb, 0xf6, 0xa4, 0xf0, 0x95, 0xf5, 0x5c, 0x68, 0xaa, 0xd9, - 0x45, 0xa9, 0xd8, 0xe7, 0xe2, 0xb9, 0x73, 0x04, 0xd1, 0x4a, 0x56, 0x8f, - 0xa2, 0xfa, 0xd2, 0x25, 0xa0, 0xc5, 0x59, 0x6d, 0x64, 0x2e, 0x0d, 0x72, - 0xeb, 0x7f, 0x6d, 0x25, 0xfd, 0x44, 0xea, 0x66, 0x47, 0x30, 0x88, 0xfe, - 0x2f, 0xc4, 0x60, 0x09, 0xa4, 0x2a, 0xb5, 0xd9, 0xc1, 0x21, 0x1d, 0x1a, - 0x15, 0xea, 0xba, 0x9a, 0x38, 0xea, 0x37, 0xd2, 0x41, 0x76, 0x47, 0xfa, - 0x8b, 0xea, 0x08, 0x82, 0xe6, 0xc1, 0xf5, 0x51, 0x2d, 0x3e, 0x12, 0xd0, - 0x30, 0x2e, 0xad, 0x55, 0x8f, 0x4a, 0x15, 0x72, 0xe1, 0x3e, 0x16, 0xeb, - 0x51, 0xb6, 0x46, 0x3d, 0xa8, 0x9c, 0xf0, 0x6e, 0xf5, 0xf6, 0x3a, 0xa9, - 0x4b, 0xfe, 0x57, 0xf3, 0x8f, 0x24, 0xc6, 0x4b, 0xc8, 0xdf, 0x2b, 0x87, - 0x26, 0x75, 0x44, 0x91, 0xe5, 0x24, 0xc1, 0xa7, 0x1c, 0x58, 0xa7, 0x9e, - 0x49, 0x1d, 0xa4, 0x4a, 0x01, 0xe4, 0xb8, 0x04, 0x1a, 0xa3, 0x00, 0x83, - 0x50, 0x50, 0x19, 0x21, 0xc6, 0x72, 0xfe, 0x36, 0x15, 0xba, 0x53, 0x4d, - 0x46, 0xaf, 0x54, 0xcd, 0xe8, 0xb0, 0x3b, 0xe5, 0x86, 0x2f, 0x77, 0x3f, - 0x72, 0xe4, 0xe1, 0xa4, 0xbb, 0x4b, 0x09, 0xc6, 0xcc, 0x89, 0x04, 0x3a, - 0x25, 0x29, 0x96, 0xc9, 0x71, 0x1c, 0x7e, 0x6c, 0x8a, 0x0b, 0xde, 0xbc, - 0xa2, 0x84, 0x0f, 0x31, 0x49, 0x09, 0xd4, 0x08, 0xec, 0x5f, 0xd7, 0xb9, - 0x84, 0x98, 0xf2, 0xaa, 0xb7, 0xcb, 0x10, 0xc2, 0xc2, 0x47, 0xd1, 0x05, - 0xce, 0xc1, 0x6a, 0x63, 0x20, 0x86, 0xe1, 0x81, 0x19, 0x5a, 0x30, 0x50, - 0xb9, 0x44, 0x8e, 0xfd, 0xf4, 0x72, 0x0e, 0xc8, 0xb0, 0x61, 0xcf, 0x9f, - 0xd8, 0xbb, 0xdf, 0x25, 0xc5, 0xb3, 0x16, 0x09, 0xe7, 0x92, 0x08, 0x92, - 0x1b, 0x5d, 0x28, 0xbb, 0x3b, 0x50, 0x4c, 0x39, 0x7c, 0x03, 0xf0, 0x9a, - 0xda, 0x42, 0xab, 0xe8, 0x95, 0xb7, 0xf8, 0x9b, 0x7d, 0x59, 0x25, 0x9b, - 0x7c, 0x2f, 0xde, 0x66, 0x96, 0x0b, 0x3d, 0xbf, 0x53, 0xab, 0xda, 0x16, - 0x27, 0x74, 0xd7, 0x4d, 0xb5, 0x9c, 0xb4, 0x10, 0xf4, 0x40, 0x11, 0x2d, - 0x2f, 0xbd, 0x5d, 0xe3, 0xd2, 0xd7, 0xed, 0x8f, 0xcf, 0x44, 0xbd, 0x67, - 0xed, 0x83, 0x46, 0xb6, 0x91, 0xb6, 0xf2, 0x5d, 0x6c, 0x7d, 0x44, 0xbf, - 0xdf, 0x4d, 0x4b, 0x65, 0x83, 0x33, 0x9b, 0x5c, 0xdf, 0xa9, 0xa6, 0x4d, - 0x89, 0x0a, 0xde, 0xdd, 0x2b, 0x82, 0x18, 0x04, 0x8f, 0x2a, 0x11, 0x6c, - 0x44, 0x88, 0x35, 0x64, 0xb2, 0x5c, 0xb3, 0xf8, 0x85, 0x66, 0x48, 0x03, - 0x89, 0x5a, 0x65, 0x47, 0xf0, 0x96, 0x59, 0x48, 0xad, 0xa8, 0x62, 0xab, - 0x09, 0xd5, 0x0e, 0x03, 0xb1, 0x13, 0xb2, 0x0a, 0x04, 0x25, 0x2b, 0x1f, - 0x0a, 0x96, 0x9b, 0xac, 0xdf, 0xd0, 0x56, 0xb8, 0x97, 0x1e, 0xba, 0xe2, - 0x44, 0x78, 0x37, 0x9e, 0x31, 0x52, 0x49, 0x40, 0x47, 0x87, 0x6a, 0x53, - 0x05, 0xcb, 0xc1, 0xda, 0x90, 0x66, 0xa3, 0x9b, 0x64, 0xd6, 0x55, 0xbb, - 0x30, 0x43, 0xa0, 0x19, 0xaf, 0xcf, 0xb2, 0xed, 0x75, 0xaf, 0x1c, 0xd2, - 0x06, 0xc7, 0xff, 0x97, 0xd0, 0x7e, 0x2c, 0x96, 0x20, 0x5b, 0x2f, 0x28, - 0xce, 0x6d, 0x33, 0x32, 0x14, 0xd3, 0xc4, 0x2f, 0x1d, 0xcc, 0xce, 0xab, - 0xdd, 0xe1, 0xce, 0xcb, 0xcf, 0x87, 0xdb, 0xc3, 0x9d, 0x6d, 0xe2, 0x2f, - 0x34, 0x14, 0x6f, 0x70, 0xbc, 0x2e, 0x91, 0xae, 0x5a, 0xef, 0x85, 0x7d, - 0xbe, 0x3f, 0xba, 0xf8, 0xfe, 0xf4, 0xfc, 0xdb, 0xe4, 0xf8, 0xfd, 0xc5, - 0xd1, 0xf9, 0xdb, 0xfd, 0x83, 0x4f, 0x05, 0x49, 0xf7, 0xcd, 0xd6, 0x5e, - 0x39, 0xe0, 0xcc, 0x2d, 0x4c, 0x68, 0x1b, 0x74, 0x6b, 0x96, 0x35, 0xd7, - 0xdb, 0x7b, 0x3b, 0x8f, 0x22, 0x29, 0x47, 0xcc, 0x83, 0xee, 0x7d, 0x9d, - 0xd4, 0x0e, 0x4d, 0x6a, 0x75, 0x2b, 0x16, 0x39, 0x71, 0xc4, 0x61, 0x56, - 0x36, 0x44, 0x17, 0x6c, 0x1e, 0xd5, 0x66, 0xf2, 0x71, 0x95, 0xaa, 0x61, - 0x6a, 0xcc, 0x70, 0xae, 0x9c, 0x69, 0x2b, 0x18, 0x30, 0x12, 0x8e, 0x2e, - 0x3c, 0x77, 0x8d, 0x4b, 0xef, 0x36, 0x62, 0x4e, 0x61, 0x74, 0xd6, 0x29, - 0x44, 0x3c, 0xe5, 0xca, 0x92, 0xc6, 0x46, 0xd4, 0x22, 0x05, 0x21, 0x19, - 0x0f, 0x70, 0x6a, 0x53, 0x46, 0x2c, 0x20, 0xc1, 0x5a, 0xe2, 0xc9, 0xe9, - 0x18, 0x6b, 0xbb, 0x7a, 0xb2, 0x1f, 0x49, 0xdb, 0x81, 0x46, 0xad, 0x35, - 0xc4, 0x19, 0x13, 0x6b, 0x99, 0x46, 0x0f, 0x64, 0x20, 0x38, 0x0d, 0xde, - 0x68, 0xb8, 0x2b, 0x08, 0x54, 0x0a, 0xd0, 0xdd, 0x06, 0xf6, 0xe5, 0x3b, - 0x0a, 0x69, 0x14, 0x2c, 0xff, 0x69, 0x25, 0x01, 0x6a, 0xbd, 0x6e, 0x61, - 0x08, 0x26, 0x5c, 0x01, 0xc8, 0x7f, 0x9d, 0x45, 0x6d, 0x04, 0x6a, 0x4e, - 0xab, 0xf4, 0x0e, 0x65, 0x2c, 0x72, 0x87, 0x08, 0xba, 0xd6, 0xae, 0x62, - 0x44, 0x82, 0x93, 0x5b, 0xf3, 0xe4, 0xec, 0xe8, 0xdd, 0x40, 0xeb, 0xaf, - 0x9a, 0xdf, 0xd9, 0x18, 0xa5, 0xf0, 0x8f, 0x9c, 0xe6, 0xb3, 0xc8, 0x0a, - 0x0d, 0xab, 0x01, 0x4f, 0x94, 0x38, 0x20, 0x7f, 0x02, 0x74, 0x68, 0x2c, - 0x40, 0xa4, 0x44, 0x8f, 0x6a, 0xf8, 0x25, 0xa7, 0x19, 0x76, 0x51, 0x33, - 0x69, 0x3f, 0x25, 0x76, 0x39, 0xd9, 0xb0, 0xf1, 0xba, 0xd4, 0x1f, 0x82, - 0x52, 0x11, 0x33, 0x60, 0xc3, 0x04, 0x4a, 0x4d, 0xc2, 0x3e, 0xfb, 0xf6, - 0x60, 0xf4, 0xc7, 0x9d, 0x5d, 0x19, 0xce, 0xe6, 0xd0, 0x01, 0xed, 0x06, - 0xf9, 0xf9, 0x60, 0xd7, 0xfe, 0x18, 0x35, 0xdb, 0x1a, 0x07, 0x1c, 0x9b, - 0xb1, 0x61, 0x73, 0x84, 0x36, 0x5b, 0x49, 0x42, 0x08, 0x02, 0x7b, 0xb0, - 0x22, 0xa6, 0xad, 0x8f, 0x4a, 0x2e, 0x11, 0x94, 0xd1, 0x91, 0x42, 0x36, - 0x8d, 0x8d, 0xfa, 0x4b, 0x0b, 0xfd, 0x88, 0x5b, 0x96, 0xd6, 0x90, 0x4e, - 0xee, 0x22, 0x5b, 0xba, 0x7b, 0x4e, 0xeb, 0xed, 0xbe, 0x25, 0x18, 0x57, - 0xb9, 0xd9, 0x15, 0xaf, 0xc7, 0x75, 0x83, 0x03, 0x20, 0x81, 0xec, 0x53, - 0x2d, 0x95, 0x55, 0xb8, 0xd2, 0x13, 0xf4, 0xf4, 0xa9, 0xd9, 0x28, 0x73, - 0xb2, 0x18, 0xc2, 0x81, 0x98, 0x42, 0x39, 0x23, 0xd5, 0xc5, 0x3e, 0x72, - 0x58, 0x51, 0x89, 0x8f, 0x05, 0x87, 0x94, 0xbe, 0x1f, 0x26, 0xdf, 0x64, - 0x05, 0xe5, 0xd0, 0x53, 0xf0, 0x9d, 0xa6, 0x61, 0x21, 0x44, 0x90, 0x6a, - 0xf5, 0xa1, 0x76, 0xd9, 0x49, 0x96, 0x0a, 0x64, 0xa6, 0xe1, 0x75, 0x35, - 0x6b, 0xb8, 0x5a, 0xb7, 0x27, 0xa5, 0x40, 0x3d, 0xc1, 0xf7, 0xb4, 0xb8, - 0x17, 0xf4, 0x00, 0x37, 0xb0, 0xd1, 0xc6, 0xbd, 0x04, 0x8c, 0x3e, 0x9a, - 0x93, 0x63, 0x0e, 0x5f, 0x93, 0x58, 0x95, 0xaf, 0x81, 0x02, 0x4d, 0xd6, - 0x42, 0xd6, 0xb8, 0x1c, 0x53, 0x99, 0x56, 0xd7, 0x64, 0xfa, 0xa8, 0xcd, - 0x75, 0x93, 0x16, 0x93, 0x87, 0xe1, 0xd4, 0xc8, 0xb2, 0x64, 0x3c, 0x1b, - 0x2e, 0x6f, 0xb6, 0xbc, 0x63, 0x4a, 0x2c, 0xff, 0x9a, 0xe1, 0x02, 0xda, - 0x86, 0x6f, 0xad, 0x0b, 0x1b, 0x22, 0x7b, 0xa5, 0xad, 0x33, 0x41, 0x24, - 0xa1, 0x89, 0xff, 0x7c, 0x3c, 0x57, 0x62, 0x60, 0x1d, 0x25, 0x16, 0x80, - 0x98, 0x5a, 0x18, 0x2e, 0xb2, 0xf9, 0x9e, 0x4d, 0x4c, 0x56, 0xfe, 0x20, - 0x95, 0x0c, 0xac, 0x62, 0xe1, 0x19, 0x69, 0x8b, 0xec, 0x6a, 0x26, 0x02, - 0x85, 0xaf, 0xba, 0x38, 0x40, 0xe9, 0x30, 0x1b, 0x84, 0x15, 0x1e, 0xa9, - 0x2a, 0x03, 0x89, 0xdd, 0xd0, 0x61, 0x23, 0xd1, 0xb5, 0xfc, 0x30, 0x0a, - 0xb3, 0xbb, 0x46, 0x04, 0x44, 0x04, 0x58, 0xc8, 0x24, 0x0c, 0x8b, 0x89, - 0x47, 0x83, 0x92, 0xc4, 0xfd, 0x44, 0x38, 0xad, 0xa0, 0x10, 0xa0, 0x8f, - 0x4b, 0x80, 0x34, 0x9c, 0x9f, 0x5a, 0x7b, 0x95, 0xcf, 0x8a, 0xf9, 0xfa, - 0xf6, 0x19, 0x59, 0xbc, 0x2f, 0x4e, 0x46, 0xea, 0x15, 0x29, 0xb2, 0x3b, - 0x8f, 0xb4, 0x18, 0x31, 0x5f, 0xe8, 0x8f, 0x0c, 0x40, 0x8c, 0x78, 0x0c, - 0xe0, 0x03, 0x8c, 0x84, 0xb9, 0x82, 0x73, 0x93, 0xb9, 0x3c, 0x08, 0x5d, - 0x04, 0x89, 0x28, 0xa6, 0xa1, 0x68, 0x89, 0x28, 0x16, 0x86, 0x2c, 0xe8, - 0x0b, 0x41, 0xeb, 0x19, 0x61, 0xe9, 0x59, 0x3f, 0x19, 0xec, 0x02, 0x4a, - 0x67, 0xa7, 0xbd, 0x88, 0x69, 0xc3, 0x28, 0x7e, 0xd4, 0x86, 0x69, 0x49, - 0x5b, 0x11, 0x76, 0xb0, 0x21, 0x24, 0x7d, 0x6b, 0xde, 0xa7, 0x7f, 0x76, - 0x65, 0x42, 0xb7, 0x3b, 0x08, 0xde, 0x66, 0x58, 0xc9, 0xd9, 0x43, 0x28, - 0x32, 0xec, 0x3e, 0xba, 0xab, 0x48, 0x93, 0xb8, 0xcb, 0x2d, 0xbe, 0x33, - 0x63, 0xfd, 0xc3, 0x14, 0x2a, 0x88, 0x9d, 0x3a, 0x00, 0xb3, 0x84, 0x62, - 0xe4, 0x2e, 0x92, 0xdb, 0x5d, 0xf5, 0x35, 0xd3, 0x37, 0xba, 0x6e, 0x6c, - 0xac, 0x77, 0x4c, 0x24, 0xc8, 0x60, 0xa4, 0x80, 0x37, 0x8f, 0x6a, 0x29, - 0x01, 0xca, 0xd0, 0xac, 0xe1, 0x22, 0x2d, 0x2e, 0x53, 0x16, 0x62, 0x56, - 0xe0, 0xec, 0xf7, 0xb4, 0xe0, 0xcd, 0x30, 0x72, 0xb0, 0x0b, 0x73, 0x42, - 0x10, 0xb8, 0x17, 0x1c, 0x79, 0x5c, 0xd8, 0x9c, 0x09, 0x31, 0xe5, 0x03, - 0x41, 0x0f, 0xdb, 0x7f, 0x9d, 0xb3, 0x61, 0x02, 0x61, 0xa7, 0xb8, 0xce, - 0xcd, 0xc9, 0x5f, 0x4f, 0xcc, 0x61, 0x5a, 0x12, 0xc7, 0x6f, 0x6c, 0xbd, - 0xaa, 0x11, 0x23, 0x6f, 0xae, 0xfb, 0x6c, 0x6e, 0xf0, 0x05, 0x4d, 0xa5, - 0x5e, 0x77, 0x73, 0x17, 0x04, 0xf2, 0xf6, 0x44, 0xc4, 0xcf, 0xa1, 0x15, - 0x9a, 0xce, 0x2a, 0xad, 0x43, 0xbd, 0x7e, 0x74, 0x4f, 0x32, 0xce, 0xba, - 0xf4, 0xc4, 0x5f, 0x73, 0x7a, 0x3f, 0xd6, 0xe8, 0xec, 0xf8, 0x3d, 0x97, - 0x56, 0xb6, 0x67, 0x21, 0x23, 0x64, 0xc4, 0x35, 0xae, 0x0a, 0x8e, 0xf1, - 0xa4, 0x02, 0x21, 0x91, 0xb0, 0xe1, 0x88, 0x68, 0x86, 0x68, 0x3c, 0x97, - 0xbe, 0xce, 0x97, 0xdc, 0xfb, 0x3a, 0xdd, 0x73, 0x75, 0x3d, 0x5b, 0xef, - 0x94, 0x0b, 0xb5, 0x7b, 0xd2, 0xb9, 0x50, 0xac, 0x45, 0x6a, 0x32, 0xf5, - 0x0b, 0xa0, 0x4b, 0x2b, 0x2d, 0x3e, 0xd7, 0xef, 0x24, 0x3d, 0xfa, 0xa6, - 0xf0, 0x3f, 0x26, 0xc3, 0x2d, 0xd3, 0x61, 0xbd, 0xa5, 0x2f, 0x2e, 0x6e, - 0x26, 0xb5, 0xb9, 0xe1, 0x28, 0xc3, 0xf7, 0x47, 0x0b, 0x13, 0x4f, 0x23, - 0x9e, 0xfe, 0x9c, 0x0c, 0x26, 0x33, 0xcc, 0x2f, 0x41, 0x6d, 0xe2, 0x1f, - 0xcd, 0xce, 0xd3, 0x13, 0x3f, 0xdb, 0x3d, 0x7c, 0x9b, 0xd3, 0x79, 0xbb, - 0xef, 0xeb, 0xd4, 0x4f, 0x59, 0x61, 0x60, 0xf8, 0xd9, 0x64, 0x7f, 0x7a, - 0x4b, 0xf9, 0x77, 0x53, 0xf9, 0x93, 0xe6, 0x73, 0x54, 0xa0, 0xa4, 0x23, - 0x66, 0x9a, 0x8e, 0xb9, 0x8a, 0xf3, 0x77, 0xb9, 0x51, 0x3a, 0x0e, 0x3a, - 0xf2, 0x05, 0xa5, 0x02, 0xd2, 0x00, 0xf1, 0x96, 0xf7, 0xa5, 0xe6, 0x75, - 0xf4, 0x25, 0x7d, 0xc1, 0x45, 0xfe, 0x11, 0x77, 0xa6, 0xad, 0x1b, 0x26, - 0x5f, 0x91, 0x8f, 0xb3, 0xca, 0x3c, 0x70, 0x56, 0xb9, 0xf8, 0xb8, 0xf4, - 0x19, 0x6d, 0x46, 0xca, 0x50, 0x14, 0x43, 0x3b, 0x93, 0x20, 0x1d, 0xc6, - 0xce, 0xc9, 0x7e, 0xd3, 0x9e, 0x1c, 0xc6, 0xa5, 0xd9, 0xed, 0x66, 0x2a, - 0x9a, 0x3a, 0x91, 0x04, 0x53, 0xf1, 0x60, 0x23, 0x79, 0x84, 0x7c, 0x61, - 0x4e, 0x33, 0xcd, 0xf1, 0x2f, 0x7d, 0x60, 0x15, 0xb5, 0x1c, 0xa3, 0x29, - 0x95, 0x08, 0x2c, 0x49, 0xe0, 0x0e, 0x77, 0xa3, 0x3e, 0xb8, 0x36, 0xac, - 0x39, 0xb3, 0x43, 0x1d, 0xb1, 0x49, 0x4f, 0x87, 0x38, 0xa2, 0x3b, 0x4a, - 0x37, 0xc1, 0x7e, 0xa9, 0x89, 0x92, 0x90, 0x42, 0xb7, 0x98, 0x77, 0x59, - 0xda, 0xe5, 0xd5, 0x6d, 0x4f, 0x81, 0xf2, 0x1b, 0x47, 0x1f, 0xde, 0x51, - 0x45, 0x0e, 0x54, 0xfa, 0xbd, 0x38, 0xdf, 0x7f, 0x3f, 0x7a, 0xcb, 0xa6, - 0xf1, 0x8b, 0xd2, 0xd5, 0x10, 0x16, 0x7b, 0x90, 0xf5, 0x1f, 0x5b, 0xc4, - 0xb8, 0x3b, 0x2e, 0x13, 0xa1, 0xa1, 0xf5, 0x52, 0x5d, 0xb8, 0xdf, 0x85, - 0xc3, 0xe7, 0xea, 0xc4, 0xb4, 0x1a, 0x34, 0xb4, 0x8d, 0xd1, 0xa6, 0x15, - 0x84, 0x6a, 0xbf, 0x0e, 0x96, 0xab, 0xf0, 0xad, 0xc0, 0xcd, 0xf2, 0x10, - 0x2d, 0xcb, 0x81, 0x0e, 0x46, 0x3f, 0xe5, 0xbb, 0x77, 0x25, 0x56, 0xe8, - 0x81, 0x51, 0x15, 0x07, 0x52, 0x60, 0xc5, 0xab, 0xfa, 0x65, 0xcd, 0xa9, - 0x7c, 0xf7, 0x0a, 0xaa, 0x9f, 0x6d, 0xdc, 0x4f, 0x01, 0xd5, 0xa6, 0x37, - 0xfe, 0x75, 0x67, 0x33, 0xde, 0xfc, 0xc5, 0x2f, 0x6d, 0x3e, 0x3e, 0x76, - 0xd5, 0xcd, 0x5c, 0x76, 0xd1, 0xc6, 0xbf, 0xee, 0x6e, 0x3e, 0x3a, 0x23, - 0x3f, 0x41, 0xd2, 0xf5, 0x69, 0xde, 0xa0, 0xc1, 0x26, 0x6f, 0xb4, 0x5e, - 0xbc, 0xc8, 0x4c, 0x36, 0x42, 0xc7, 0x83, 0x03, 0x6e, 0x61, 0x77, 0x50, - 0x04, 0xb7, 0x95, 0xd4, 0x9d, 0xe3, 0x4d, 0x12, 0x4d, 0x8e, 0xff, 0xe7, - 0x91, 0x8f, 0xf2, 0x58, 0xac, 0x37, 0xfe, 0x15, 0x45, 0x40, 0x01, 0x75, - 0x39, 0x44, 0xdf, 0xbb, 0x8f, 0xf4, 0xed, 0x66, 0xe7, 0x99, 0x25, 0xc8, - 0x8b, 0x4d, 0x61, 0x70, 0x0a, 0x56, 0x2d, 0xfd, 0xac, 0xb9, 0xca, 0xd4, - 0xab, 0xfb, 0xbb, 0x38, 0x7e, 0x77, 0x44, 0xa0, 0xd6, 0x87, 0xc7, 0x84, - 0x43, 0x37, 0x12, 0x24, 0x48, 0xb5, 0x40, 0x58, 0xc0, 0x5c, 0xbf, 0x4c, - 0x0a, 0xbb, 0x77, 0x6d, 0xb4, 0x99, 0xe5, 0x1c, 0x76, 0x27, 0xa8, 0x6b, - 0x09, 0x87, 0xae, 0x35, 0xe9, 0xf2, 0xf8, 0x72, 0xf0, 0xae, 0x9c, 0x42, - 0x4b, 0x1e, 0x8c, 0x10, 0x2a, 0x68, 0xde, 0x32, 0x1f, 0x7e, 0x28, 0xe6, - 0xad, 0x8f, 0x87, 0x91, 0xa4, 0xdd, 0xb5, 0x55, 0xb5, 0x64, 0xfe, 0xb1, - 0x35, 0x18, 0xa0, 0x34, 0x3c, 0x87, 0x75, 0x89, 0x73, 0xa7, 0x05, 0xd5, - 0xa1, 0xac, 0xc5, 0x2c, 0x50, 0x3e, 0x7b, 0xe0, 0x40, 0x84, 0xd4, 0x85, - 0x8f, 0xb9, 0x44, 0xce, 0x2b, 0x4a, 0x26, 0x73, 0x26, 0x3e, 0x36, 0xe2, - 0xad, 0xf9, 0xd8, 0xa2, 0x50, 0xa4, 0xb2, 0x3b, 0x17, 0xff, 0x24, 0x65, - 0x6e, 0xcb, 0xc5, 0x03, 0x66, 0x79, 0xd7, 0x0a, 0xad, 0x88, 0xfa, 0x57, - 0xff, 0xc1, 0xef, 0xb4, 0xaa, 0x27, 0x09, 0x04, 0xb4, 0x47, 0x81, 0xf2, - 0x89, 0x14, 0x1b, 0x3a, 0xad, 0xbc, 0xeb, 0x4a, 0x86, 0xad, 0x15, 0xc5, - 0x3c, 0xdc, 0x51, 0x0f, 0x26, 0xb5, 0x3d, 0x4e, 0x1f, 0xa3, 0xb5, 0xa4, - 0x2c, 0xd8, 0xc3, 0xd2, 0x3a, 0xc7, 0x0c, 0xdb, 0x59, 0xb4, 0x0b, 0xc9, - 0x66, 0x89, 0xe6, 0x7b, 0x73, 0x3a, 0xff, 0xfa, 0x60, 0x1d, 0x65, 0x13, - 0xf2, 0x22, 0x32, 0x99, 0xc1, 0x2f, 0x9f, 0x4d, 0xe0, 0x7a, 0x4d, 0x7a, - 0x97, 0x84, 0x89, 0x41, 0x7e, 0xac, 0x1e, 0x0f, 0x80, 0x21, 0x63, 0x98, - 0xb8, 0xcc, 0x05, 0x41, 0x7c, 0x4d, 0x15, 0x49, 0x56, 0xaa, 0x6d, 0x64, - 0xac, 0x35, 0x92, 0xb3, 0x55, 0x92, 0x18, 0xe9, 0x72, 0x31, 0x45, 0x50, - 0x06, 0x87, 0xa3, 0xfe, 0x3b, 0x61, 0x56, 0x57, 0x0f, 0xc9, 0xce, 0x6e, - 0x3f, 0xd9, 0xdd, 0xde, 0xd9, 0x8d, 0xcc, 0xa1, 0xf7, 0xef, 0x14, 0x14, - 0xb5, 0x8b, 0xaf, 0x7b, 0x9f, 0x3a, 0x0b, 0x97, 0xda, 0x80, 0x9b, 0x44, - 0x92, 0x80, 0x0d, 0xf3, 0x21, 0xff, 0x2c, 0x70, 0x92, 0x51, 0x5d, 0x16, - 0xc8, 0x76, 0xb8, 0xb6, 0xd8, 0x48, 0xa8, 0x65, 0x0d, 0x6d, 0xc5, 0x2b, - 0x7a, 0x62, 0x4d, 0x0a, 0x7c, 0x22, 0xf2, 0xc5, 0x5a, 0x4a, 0xd3, 0x0a, - 0x35, 0x1b, 0xdb, 0x7b, 0x94, 0x37, 0xba, 0x2d, 0x14, 0x5a, 0x43, 0x7b, - 0x63, 0xe8, 0xfd, 0xf0, 0xf8, 0xe0, 0x42, 0xa1, 0x0f, 0x2f, 0x49, 0x78, - 0xaa, 0x1e, 0x3e, 0xad, 0x00, 0xde, 0xa3, 0xcf, 0x4c, 0xf7, 0xae, 0x33, - 0x23, 0x46, 0x17, 0xe3, 0xe5, 0xd5, 0xde, 0xdf, 0xd2, 0xea, 0xaa, 0x2c, - 0x9e, 0x7a, 0x7e, 0x8a, 0xdc, 0xb2, 0x3d, 0xc3, 0xa1, 0x76, 0x5e, 0xed, - 0x3c, 0xe3, 0xc4, 0x85, 0x9c, 0xaa, 0x65, 0x82, 0x41, 0xac, 0xcf, 0xd7, - 0x19, 0x6b, 0x03, 0x19, 0x13, 0x16, 0x60, 0xa3, 0x98, 0xae, 0xf3, 0x75, - 0x9f, 0xfa, 0xcf, 0x4e, 0xe5, 0x59, 0xce, 0x42, 0x5f, 0x5f, 0xe3, 0xd2, - 0x25, 0xeb, 0x94, 0xb1, 0xb9, 0x5c, 0xac, 0xb7, 0x11, 0xdc, 0x9f, 0x98, - 0x2b, 0x75, 0x61, 0xeb, 0xfd, 0x1d, 0x58, 0x5c, 0x7a, 0x24, 0x13, 0x55, - 0x59, 0x7a, 0xe3, 0xca, 0xcd, 0x3a, 0x20, 0x0e, 0x75, 0x79, 0x9c, 0xbf, - 0x3d, 0x60, 0x30, 0x53, 0x4d, 0x9d, 0xc2, 0x52, 0x27, 0xd6, 0x34, 0xb5, - 0x49, 0xa3, 0x7c, 0xa2, 0x7f, 0xca, 0x6d, 0xd8, 0x9b, 0x8e, 0x3f, 0xe1, - 0x21, 0x73, 0xee, 0x18, 0x37, 0x6e, 0xbf, 0x5d, 0x19, 0x87, 0x14, 0x35, - 0x94, 0xf7, 0xd0, 0xba, 0xb2, 0x1b, 0x5c, 0xfb, 0x93, 0x3d, 0x0e, 0x34, - 0x34, 0xad, 0xd8, 0xab, 0xd6, 0x1d, 0x33, 0x6e, 0x2a, 0xac, 0x79, 0xb8, - 0x7f, 0xe6, 0x29, 0xba, 0x50, 0x24, 0x9d, 0x51, 0x8f, 0x9e, 0x23, 0x45, - 0x07, 0xa5, 0xab, 0xd9, 0xf6, 0xf7, 0xd0, 0x77, 0x2a, 0x4a, 0x03, 0x3e, - 0x49, 0xb2, 0x11, 0x02, 0xe4, 0x4b, 0xb9, 0x4f, 0x60, 0x7f, 0x42, 0xb1, - 0x81, 0xd9, 0x34, 0x85, 0x23, 0x54, 0x6e, 0x21, 0xc8, 0x5c, 0x68, 0x2b, - 0x97, 0x68, 0x28, 0xb3, 0x37, 0xf7, 0x89, 0x24, 0x71, 0x48, 0xb6, 0x8a, - 0x94, 0x03, 0xc1, 0x63, 0x94, 0xa0, 0xfc, 0xa0, 0x13, 0x60, 0xfe, 0x6c, - 0x06, 0x9f, 0xd6, 0x37, 0x86, 0x95, 0xb2, 0x03, 0xdf, 0xf4, 0x9e, 0x8b, - 0x0b, 0x9c, 0x8c, 0x3e, 0x39, 0x07, 0xd2, 0x90, 0xf9, 0x09, 0x90, 0x48, - 0xad, 0x0d, 0xe3, 0x2b, 0x88, 0x34, 0xce, 0x59, 0x9d, 0x31, 0x80, 0x61, - 0x72, 0x71, 0x57, 0xb2, 0x8a, 0x51, 0x6b, 0x78, 0x2d, 0x87, 0xa2, 0xd6, - 0xcb, 0x9c, 0xa5, 0x48, 0xb3, 0x79, 0xe0, 0x07, 0x5e, 0xe5, 0xce, 0x9e, - 0xb5, 0x7c, 0x1d, 0x5a, 0xbf, 0xe7, 0xe8, 0xf0, 0xdb, 0x84, 0x52, 0xeb, - 0xa9, 0x8f, 0x03, 0x82, 0xdb, 0xa7, 0x10, 0x86, 0x39, 0xb4, 0xbf, 0xaf, - 0x97, 0x74, 0xde, 0x0f, 0xae, 0xd3, 0x05, 0x29, 0x40, 0x3b, 0xdb, 0x64, - 0x2e, 0xf9, 0x5e, 0x93, 0xf4, 0xe8, 0xa0, 0x6a, 0x61, 0xf0, 0xba, 0xe7, - 0x59, 0x52, 0xa6, 0x54, 0xd7, 0x9b, 0x34, 0xa0, 0xb6, 0x91, 0xd6, 0x5c, - 0x9f, 0xf5, 0x16, 0x83, 0xec, 0xd7, 0x86, 0x34, 0xaa, 0x7a, 0x7a, 0xb3, - 0x35, 0x31, 0x3f, 0x9e, 0x6d, 0x6f, 0x01, 0x53, 0xb3, 0x81, 0x4d, 0x93, - 0x68, 0x72, 0x77, 0xf7, 0xc5, 0x8b, 0x7e, 0xd2, 0x23, 0x2b, 0xa3, 0x76, - 0x40, 0x47, 0xc2, 0x9c, 0xac, 0x5e, 0xac, 0x84, 0xe9, 0x56, 0x75, 0x39, - 0xa1, 0xff, 0xd1, 0x6b, 0x5a, 0x88, 0xf0, 0x42, 0xb2, 0x6e, 0xb0, 0x0e, - 0x85, 0x0f, 0x93, 0xc3, 0x64, 0x45, 0xdf, 0x1d, 0x5b, 0x3b, 0x12, 0x39, - 0x8d, 0x16, 0x59, 0xb9, 0x50, 0xef, 0xf0, 0x5c, 0xca, 0x77, 0xa0, 0x7b, - 0xcf, 0xa5, 0x06, 0x7f, 0x3e, 0x87, 0xc3, 0x09, 0x1e, 0x42, 0xbd, 0x1c, - 0x0f, 0x24, 0x31, 0x98, 0xb5, 0xca, 0xdc, 0x9c, 0x5c, 0xf3, 0xe7, 0x4c, - 0xcd, 0xf5, 0x01, 0x47, 0xfe, 0x2a, 0xe9, 0x09, 0x6d, 0xd1, 0x3f, 0x43, - 0x38, 0x77, 0xb3, 0x09, 0x4d, 0xa3, 0x7c, 0x23, 0x7f, 0xfc, 0xdb, 0xbf, - 0x99, 0x66, 0xff, 0x8d, 0x5a, 0x79, 0xf3, 0xaf, 0x75, 0x73, 0xed, 0x3d, - 0xd3, 0x13, 0x82, 0x3f, 0x76, 0xae, 0x6d, 0x84, 0xab, 0x01, 0x71, 0x16, - 0xf9, 0x6b, 0xef, 0x4e, 0x84, 0x23, 0xf7, 0xbd, 0xf9, 0xe5, 0xc8, 0x2c, - 0x64, 0x23, 0xa9, 0x8d, 0x16, 0xf9, 0x8a, 0xdc, 0xce, 0x19, 0x65, 0xa4, - 0x9b, 0x8b, 0x04, 0x80, 0x82, 0x9b, 0x2a, 0x62, 0x1c, 0xbd, 0xff, 0xee, - 0xf8, 0xfc, 0xf4, 0xfd, 0xbb, 0xa3, 0xf7, 0x17, 0xc9, 0x77, 0xfb, 0xe7, - 0xc7, 0xfb, 0x5f, 0x9d, 0x48, 0xe2, 0x3b, 0x4d, 0x81, 0x82, 0x7c, 0x58, - 0xf6, 0xee, 0x00, 0xc2, 0x7a, 0x89, 0x48, 0xd1, 0xd2, 0x1e, 0x9d, 0x4a, - 0xb4, 0x1f, 0x05, 0x61, 0x1c, 0x9a, 0xc8, 0x47, 0x54, 0x29, 0xea, 0x93, - 0xf0, 0xf9, 0x51, 0x0b, 0x16, 0x91, 0xf2, 0xf4, 0xe0, 0xa5, 0x52, 0x53, - 0xfc, 0x11, 0x51, 0xa9, 0xf2, 0x27, 0x57, 0xc2, 0xce, 0xd6, 0xbe, 0xf8, - 0x9a, 0xb3, 0xf1, 0xb5, 0x10, 0x88, 0xbe, 0x2a, 0x99, 0x61, 0xb0, 0xbb, - 0xd9, 0x31, 0xec, 0x9f, 0x9c, 0xb8, 0xae, 0x1e, 0xaf, 0x11, 0x23, 0x48, - 0x4c, 0x9c, 0xbc, 0x85, 0x46, 0xc9, 0x31, 0x78, 0x55, 0x3a, 0xb8, 0xf4, - 0xe2, 0xc1, 0x47, 0x46, 0xa7, 0xce, 0xcc, 0x76, 0x6c, 0x30, 0x84, 0x06, - 0x79, 0x89, 0xcd, 0x01, 0xca, 0xeb, 0x9b, 0x7e, 0xb2, 0xfe, 0xaf, 0xeb, - 0x9c, 0x54, 0x97, 0x01, 0x37, 0x98, 0x2b, 0xd0, 0x6c, 0xba, 0x41, 0xbd, - 0x3f, 0x75, 0x63, 0x12, 0xc7, 0xa7, 0x1d, 0x80, 0x7d, 0xd1, 0xb9, 0xad, - 0x6b, 0x95, 0x67, 0x10, 0x2f, 0xea, 0x1e, 0x97, 0x32, 0x0d, 0x16, 0x19, - 0x40, 0x68, 0x94, 0x1c, 0x5b, 0xd1, 0x77, 0xa1, 0xb5, 0xa5, 0x13, 0x0f, - 0x1e, 0x1a, 0x73, 0x2d, 0xc8, 0xd4, 0x61, 0x4b, 0x67, 0xa9, 0x35, 0xd0, - 0x2c, 0x35, 0xd9, 0xf4, 0xc4, 0x9d, 0xb8, 0xac, 0x85, 0x83, 0x82, 0xaa, - 0xee, 0xb7, 0xb4, 0x12, 0x0d, 0x7c, 0x8c, 0x94, 0x0f, 0x50, 0xe5, 0x53, - 0x81, 0x1b, 0x8c, 0x52, 0xc5, 0x10, 0xae, 0xa9, 0xf3, 0x03, 0xa0, 0xb3, - 0x17, 0x54, 0x4b, 0xd0, 0x55, 0xba, 0x40, 0xec, 0xb0, 0xe1, 0x22, 0x15, - 0x25, 0xe4, 0x15, 0x22, 0x84, 0x20, 0x1e, 0x17, 0x32, 0x7a, 0x7a, 0x55, - 0xaa, 0xfc, 0x9d, 0x5a, 0xa7, 0xb9, 0xad, 0x07, 0xe6, 0xc9, 0xf4, 0x16, - 0x43, 0xcc, 0x9a, 0x2c, 0xe1, 0x5e, 0x57, 0x07, 0x01, 0x85, 0x97, 0xd1, - 0x96, 0x6b, 0xd1, 0xde, 0xda, 0xcb, 0xd2, 0x76, 0xd9, 0x0b, 0xc4, 0x4b, - 0x38, 0x48, 0x5f, 0x41, 0xbd, 0x00, 0xa4, 0xa6, 0x59, 0xdd, 0x08, 0x74, - 0xc4, 0xb0, 0xe8, 0x41, 0x34, 0x29, 0x31, 0xab, 0x68, 0x52, 0x6d, 0xd7, - 0xe6, 0xf4, 0xcc, 0x28, 0x81, 0x4c, 0x39, 0x51, 0x9a, 0x8c, 0xf3, 0x2b, - 0x46, 0x07, 0xa0, 0x54, 0x74, 0xa2, 0x12, 0x80, 0xbd, 0x19, 0xc5, 0x9e, - 0xb6, 0x0a, 0x50, 0x6e, 0x90, 0xdd, 0xaf, 0xcb, 0x99, 0x8f, 0x37, 0xa6, - 0x33, 0xa9, 0xa5, 0xd2, 0x99, 0x9a, 0x3e, 0xe1, 0xfa, 0x58, 0xd2, 0x3a, - 0x6a, 0x34, 0x9a, 0x00, 0x95, 0x4b, 0x6c, 0x1e, 0xd9, 0xd4, 0x81, 0x9a, - 0x58, 0x20, 0x13, 0x48, 0xb3, 0xaa, 0xb1, 0x0e, 0x1a, 0xb7, 0x4c, 0xdc, - 0x02, 0x76, 0x34, 0x2a, 0x5c, 0xb8, 0x61, 0x91, 0xc6, 0xa9, 0x95, 0x09, - 0x63, 0xb5, 0x12, 0xd1, 0xb3, 0x47, 0xb9, 0x5d, 0xae, 0x47, 0x36, 0x4b, - 0x50, 0xb4, 0x0c, 0x4d, 0xd0, 0xa0, 0xcd, 0x4a, 0x6d, 0x78, 0x8c, 0xa7, - 0x30, 0x24, 0xc2, 0x8f, 0xb1, 0x02, 0x29, 0x7f, 0x0d, 0x6c, 0xa5, 0x31, - 0xf1, 0x3b, 0x6f, 0xba, 0xb8, 0x03, 0x96, 0x02, 0x88, 0x5a, 0x27, 0x52, - 0x1b, 0x11, 0x1e, 0x7a, 0x2a, 0xe0, 0x08, 0x68, 0xa8, 0x96, 0xed, 0x31, - 0xd1, 0x7c, 0x9b, 0xd9, 0xcc, 0x83, 0x1a, 0x67, 0x73, 0x44, 0x1a, 0xc8, - 0x1e, 0xe4, 0x1c, 0xe2, 0x34, 0x54, 0x89, 0xfc, 0x61, 0x58, 0x62, 0x6f, - 0x22, 0x12, 0x53, 0x4e, 0xd2, 0x59, 0xc7, 0xa4, 0xe9, 0x31, 0x34, 0xf5, - 0x8e, 0xfb, 0x17, 0x93, 0x54, 0xbb, 0xc8, 0xd3, 0x39, 0xcb, 0x8e, 0x8e, - 0xfa, 0xe6, 0x0f, 0x1c, 0x75, 0xb8, 0xb6, 0x76, 0xf0, 0x61, 0x74, 0x71, - 0xfa, 0x2e, 0x39, 0xfd, 0x70, 0x71, 0xf6, 0xe1, 0x42, 0x6e, 0xae, 0x31, - 0xc7, 0x6c, 0x73, 0xe4, 0x02, 0x0b, 0x01, 0xba, 0x99, 0x73, 0xf1, 0xef, - 0x23, 0xc4, 0xa4, 0x04, 0xc0, 0xa0, 0x87, 0x2d, 0x64, 0x73, 0xb2, 0x80, - 0xba, 0xc5, 0xc8, 0xc5, 0x58, 0xf2, 0x3b, 0xb3, 0xe4, 0xc8, 0xa7, 0x85, - 0x21, 0x4f, 0x53, 0xbc, 0xa0, 0xf6, 0xe8, 0x59, 0x6b, 0x57, 0x92, 0xe9, - 0x54, 0xc4, 0x84, 0x73, 0xbe, 0x8d, 0xe5, 0xe4, 0xe2, 0xa8, 0xd4, 0xb6, - 0xe3, 0x4c, 0x3f, 0x7e, 0x48, 0x27, 0x82, 0x99, 0x26, 0x8d, 0x1a, 0xa0, - 0x35, 0xaa, 0x16, 0xa1, 0x46, 0xed, 0xc4, 0x42, 0x3f, 0xbf, 0xb1, 0x29, - 0xcd, 0x0c, 0xaf, 0x6d, 0x44, 0x3c, 0x45, 0x11, 0x21, 0x12, 0x90, 0x03, - 0x28, 0x28, 0xe4, 0x8e, 0x35, 0x06, 0xa3, 0x07, 0x92, 0xcb, 0x22, 0xb8, - 0x65, 0xef, 0x92, 0xf5, 0xef, 0x33, 0xbf, 0xc1, 0x3f, 0xfd, 0x07, 0xa5, - 0x6d, 0x7e, 0xd4, 0x4f, 0xfe, 0x8b, 0xbb, 0xfc, 0xa9, 0x58, 0x47, 0x00, - 0x5d, 0xdb, 0x53, 0xfe, 0xed, 0xd1, 0xf9, 0x57, 0x47, 0xe7, 0xa7, 0x23, - 0xf0, 0x03, 0x35, 0x77, 0x85, 0xb4, 0x7e, 0x93, 0x55, 0xe3, 0xac, 0x2a, - 0xa5, 0xca, 0x95, 0xfe, 0xf5, 0x62, 0xeb, 0xeb, 0xd1, 0x68, 0xff, 0xec, - 0xd8, 0xd6, 0x91, 0xb1, 0x09, 0x64, 0xac, 0x22, 0x15, 0x9c, 0xe2, 0x48, - 0xf3, 0xd7, 0x57, 0x0c, 0x5d, 0x4c, 0x6e, 0x38, 0xb0, 0x38, 0xf0, 0x49, - 0xab, 0x5d, 0x9d, 0x9c, 0xd1, 0x92, 0x57, 0x48, 0x0d, 0x2b, 0x26, 0x94, - 0x8f, 0x3b, 0xcf, 0x00, 0xf1, 0xe4, 0x0b, 0xe8, 0xdb, 0x08, 0xbc, 0x9b, - 0x6a, 0x3c, 0x30, 0xd4, 0x7e, 0xa3, 0xe5, 0x86, 0x39, 0x0f, 0xc2, 0xb0, - 0x4a, 0x0e, 0x90, 0x76, 0xb6, 0x86, 0x1b, 0x2a, 0x3b, 0xbe, 0x75, 0x43, - 0xe7, 0x83, 0x6a, 0x9c, 0xcc, 0x86, 0xcc, 0xdd, 0xf9, 0x40, 0x69, 0xd4, - 0x2b, 0xb1, 0xd8, 0xc7, 0x70, 0x2a, 0x4c, 0x6f, 0xb6, 0x30, 0x21, 0xdb, - 0xbb, 0xcc, 0x27, 0xcf, 0x2d, 0x60, 0x97, 0x5f, 0x91, 0xfa, 0xd2, 0x08, - 0xe0, 0x8b, 0xbb, 0xa9, 0x5c, 0x22, 0xc0, 0xab, 0x2e, 0xd8, 0x3d, 0xc1, - 0x3c, 0xbc, 0xeb, 0xa0, 0xa2, 0xe2, 0x89, 0x48, 0xd8, 0x90, 0x70, 0xf4, - 0x64, 0x3c, 0x4b, 0x8b, 0x1b, 0xdc, 0x66, 0xb8, 0x9f, 0x48, 0xe5, 0x54, - 0x18, 0x2a, 0x2a, 0x6a, 0x09, 0x7f, 0xa4, 0x20, 0x43, 0x40, 0x08, 0x9c, - 0x11, 0x73, 0x7b, 0x60, 0x5b, 0xbe, 0x45, 0xdb, 0xf2, 0x3c, 0x6f, 0x38, - 0x4e, 0x6e, 0x11, 0xc8, 0x74, 0x74, 0x74, 0x62, 0x2e, 0x26, 0x9b, 0x64, - 0x02, 0x15, 0x3d, 0x9b, 0x91, 0x29, 0x58, 0x23, 0x82, 0x38, 0xaf, 0x32, - 0x07, 0x23, 0x63, 0xee, 0xa1, 0x50, 0xea, 0xf0, 0x1f, 0x81, 0x5c, 0x90, - 0x3e, 0x5a, 0xdb, 0x82, 0x23, 0xc2, 0xb9, 0x99, 0x89, 0x01, 0x27, 0xd4, - 0xd5, 0x1f, 0xf1, 0xab, 0xd3, 0x48, 0xb8, 0xdd, 0x81, 0x8b, 0x07, 0xb2, - 0xe5, 0xba, 0x78, 0x10, 0x4e, 0x2c, 0xb5, 0x1e, 0xc6, 0x56, 0x76, 0xcb, - 0xca, 0x6d, 0xe2, 0xd7, 0x63, 0x46, 0x00, 0x86, 0x37, 0x9b, 0x8a, 0xbf, - 0xc3, 0x22, 0x03, 0x69, 0xc8, 0x72, 0x3b, 0x4c, 0x58, 0x07, 0xce, 0xd1, - 0x00, 0x64, 0xbc, 0x9d, 0x35, 0xea, 0x34, 0x44, 0x88, 0xab, 0xdc, 0xc0, - 0xcd, 0x14, 0x2c, 0xa7, 0x6a, 0x81, 0xd6, 0xfa, 0xd1, 0xb9, 0x0c, 0x5e, - 0x01, 0xdb, 0x20, 0xe7, 0x6b, 0x40, 0x8b, 0xb1, 0xf2, 0xed, 0xe0, 0x3d, - 0x5d, 0x17, 0xe5, 0x60, 0xbc, 0x84, 0x5e, 0xe6, 0x95, 0xd1, 0xe2, 0x1c, - 0x4e, 0xaa, 0x3a, 0x0f, 0x5c, 0x35, 0x7c, 0x4f, 0xfe, 0x28, 0x64, 0xc7, - 0xb3, 0x8b, 0x0a, 0xe9, 0x92, 0x6d, 0xcc, 0x1d, 0x8b, 0xb4, 0xc2, 0x39, - 0x08, 0x88, 0xc5, 0xd6, 0xc2, 0x6b, 0x3c, 0x42, 0xd9, 0x64, 0x1b, 0x2d, - 0x58, 0x48, 0x11, 0x56, 0x78, 0x56, 0xda, 0x11, 0xd7, 0x8d, 0x85, 0xbe, - 0xbf, 0x80, 0x98, 0x90, 0x09, 0x20, 0xbc, 0x86, 0x52, 0x6b, 0xe2, 0xc6, - 0x6d, 0x43, 0x85, 0x9f, 0x18, 0x24, 0x22, 0x9d, 0x71, 0xc5, 0x8e, 0x95, - 0x57, 0x09, 0x1f, 0xa6, 0xe6, 0xe2, 0xe2, 0xaf, 0x67, 0x47, 0x6f, 0xf4, - 0xcd, 0xc7, 0xf6, 0x8c, 0xb1, 0xd3, 0x10, 0x33, 0x93, 0x09, 0x56, 0xa9, - 0x57, 0xd2, 0xd9, 0x10, 0xd9, 0xa0, 0x51, 0x5f, 0x3e, 0x77, 0x33, 0x48, - 0x7e, 0x38, 0x3c, 0x1e, 0x9d, 0x9d, 0x9c, 0x1e, 0xbc, 0x79, 0xfd, 0x83, - 0xb2, 0xe4, 0x2f, 0xc8, 0x45, 0xc0, 0x72, 0x9a, 0xfd, 0xcc, 0x61, 0x3b, - 0xc8, 0x7b, 0xef, 0x8f, 0xbe, 0xff, 0x68, 0xb4, 0x83, 0x37, 0x84, 0xf0, - 0xde, 0xbf, 0x4d, 0x67, 0xf2, 0x12, 0xa9, 0x58, 0x11, 0xd9, 0x6e, 0xd8, - 0x06, 0xe3, 0xeb, 0x2e, 0xac, 0xad, 0x1e, 0xea, 0xf2, 0x14, 0x1e, 0x34, - 0x8c, 0xce, 0x2b, 0x14, 0x95, 0xb6, 0xd2, 0x6a, 0x23, 0xb5, 0x7e, 0xdd, - 0xf5, 0xbf, 0xde, 0x70, 0x4c, 0x25, 0x85, 0x10, 0xf8, 0x9e, 0x79, 0xc4, - 0xad, 0xca, 0x37, 0x2e, 0x9e, 0x57, 0x90, 0x94, 0x2b, 0x0a, 0x60, 0xb1, - 0x50, 0x94, 0x52, 0x70, 0x19, 0x3e, 0x6f, 0xc1, 0xab, 0x14, 0x10, 0x26, - 0x0a, 0xa1, 0xd5, 0x68, 0x7a, 0xe5, 0x63, 0x22, 0xc2, 0xd8, 0xb1, 0xa4, - 0x5a, 0xca, 0x16, 0xb5, 0x79, 0xce, 0x8e, 0xce, 0x47, 0xc7, 0xa3, 0x0b, - 0x52, 0xa3, 0xa4, 0xae, 0xa2, 0xd8, 0xa0, 0xb5, 0xe8, 0x25, 0x30, 0x1b, - 0xda, 0xd0, 0xa3, 0x7e, 0xdd, 0x90, 0xd6, 0x89, 0xb6, 0x6c, 0xae, 0x9d, - 0xc4, 0x49, 0x37, 0x00, 0x67, 0x86, 0x92, 0x20, 0xca, 0x00, 0xba, 0xe9, - 0xa5, 0x1e, 0xe0, 0x52, 0x48, 0xa3, 0x53, 0x3e, 0x03, 0xa5, 0x6f, 0xb0, - 0x3b, 0xb3, 0x7c, 0xec, 0xac, 0xe6, 0x1d, 0x17, 0x32, 0x45, 0x27, 0x08, - 0x58, 0x87, 0x7f, 0x84, 0xd4, 0x1e, 0xee, 0x32, 0xa3, 0xa5, 0xd4, 0xae, - 0x5c, 0x6b, 0x92, 0xd5, 0xe8, 0xe7, 0xaf, 0x5a, 0x45, 0x15, 0xca, 0x89, - 0xca, 0x69, 0xf6, 0x53, 0x2f, 0x08, 0x55, 0xf0, 0x9f, 0x00, 0x5d, 0x2b, - 0x2c, 0x9b, 0x98, 0x72, 0xce, 0x99, 0x68, 0x64, 0x68, 0x31, 0x52, 0x0b, - 0x32, 0xeb, 0x11, 0x27, 0x24, 0x33, 0x0b, 0x44, 0x10, 0x11, 0x1d, 0xaf, - 0x28, 0x85, 0x0d, 0x20, 0x5b, 0x53, 0x92, 0xb7, 0x60, 0x81, 0xf3, 0x3b, - 0xd3, 0xeb, 0x94, 0x56, 0x70, 0xbc, 0xf4, 0x0b, 0xb5, 0xd9, 0xd1, 0x73, - 0x7d, 0x12, 0x2c, 0x3c, 0x22, 0x24, 0xd3, 0x0a, 0x28, 0x96, 0x8d, 0x80, - 0xc6, 0xab, 0xe2, 0x23, 0xe1, 0x8e, 0xc3, 0x36, 0x9e, 0x8f, 0xd2, 0xa5, - 0x16, 0x13, 0x7d, 0x6c, 0x45, 0xbd, 0xca, 0x8e, 0x44, 0xbe, 0x55, 0xa6, - 0x71, 0x4b, 0x6c, 0x66, 0xa8, 0xc9, 0xe1, 0x50, 0x4c, 0xec, 0x65, 0x4c, - 0x49, 0x47, 0xe4, 0x5f, 0xac, 0x04, 0x2b, 0xc9, 0xb0, 0x3f, 0xb2, 0x2c, - 0xa3, 0x1c, 0x24, 0xea, 0x24, 0x93, 0xd7, 0x4d, 0x71, 0xf4, 0x5c, 0x18, - 0x37, 0x2f, 0xb7, 0x47, 0x56, 0x6c, 0x5e, 0x7f, 0x90, 0x0e, 0x6d, 0x82, - 0xbc, 0x6e, 0x56, 0x9f, 0xf3, 0xad, 0x52, 0xa4, 0xf7, 0xa8, 0x5d, 0xd7, - 0x4b, 0x13, 0xad, 0x25, 0xf9, 0xd6, 0xba, 0xa7, 0xc1, 0xf0, 0x5a, 0x35, - 0x71, 0x69, 0x76, 0x2d, 0xd7, 0xa0, 0x91, 0x2f, 0x17, 0x28, 0xa6, 0x34, - 0x11, 0x34, 0x79, 0x04, 0xed, 0xda, 0x06, 0xf5, 0x12, 0x71, 0x8b, 0x65, - 0x56, 0xf5, 0xdd, 0x87, 0x93, 0x8b, 0xe3, 0x33, 0xdf, 0xfd, 0x98, 0x7c, - 0x7f, 0x7c, 0xf1, 0x8d, 0x91, 0xda, 0x47, 0xc7, 0xef, 0xbf, 0x3e, 0x21, - 0x1f, 0xcf, 0xbb, 0x77, 0xfb, 0xef, 0x09, 0x5d, 0xe0, 0x3d, 0x22, 0x1b, - 0xf7, 0xa1, 0x38, 0x10, 0x3b, 0x32, 0x4b, 0x4c, 0xb4, 0x43, 0x79, 0xe7, - 0xfd, 0xd0, 0xd5, 0xd0, 0x39, 0x7e, 0x5c, 0xf3, 0xb8, 0x68, 0x2f, 0xd2, - 0x1a, 0x2a, 0x58, 0x43, 0x33, 0x78, 0x20, 0xc3, 0x0e, 0x8e, 0x2d, 0x29, - 0x5b, 0xb4, 0xd0, 0x5d, 0x18, 0x79, 0xe4, 0x38, 0xb2, 0x84, 0x0e, 0x37, - 0x3a, 0xdf, 0xdd, 0xce, 0x7d, 0x81, 0x1d, 0xb5, 0x20, 0xb4, 0xd0, 0x63, - 0x8c, 0xcc, 0x54, 0x88, 0x5e, 0xc3, 0xf7, 0x65, 0x3b, 0xe7, 0xc0, 0xf4, - 0x88, 0x21, 0x21, 0x8e, 0xa0, 0x74, 0x16, 0x41, 0xd2, 0x38, 0x49, 0x69, - 0x3e, 0x3f, 0xf1, 0x2f, 0xd4, 0x76, 0x3d, 0x7a, 0x0d, 0x0f, 0xbc, 0x2a, - 0x33, 0x77, 0x72, 0x07, 0xa7, 0xda, 0x8c, 0x9a, 0x7f, 0xa1, 0x86, 0xf1, - 0xe5, 0x32, 0x20, 0xbe, 0x36, 0x30, 0x5b, 0xb2, 0x69, 0x2b, 0x0e, 0x89, - 0xf9, 0x6c, 0x8f, 0xc5, 0x4a, 0x0b, 0xb3, 0xac, 0xc5, 0xf3, 0x4c, 0x73, - 0xda, 0xb2, 0x84, 0xa2, 0x20, 0x1e, 0x5b, 0xd2, 0x9a, 0x64, 0xce, 0xe0, - 0x96, 0xfa, 0x58, 0x2b, 0x2b, 0x9b, 0xef, 0xbb, 0x53, 0x35, 0xed, 0x69, - 0x5a, 0x1b, 0x92, 0x59, 0x09, 0x7e, 0xc7, 0x79, 0x4e, 0x51, 0x64, 0xad, - 0x2c, 0x87, 0xd9, 0x7d, 0x46, 0x4e, 0x4e, 0xfa, 0xf5, 0x6f, 0x8b, 0x2b, - 0x3f, 0xe3, 0x8d, 0xcb, 0x3e, 0x2f, 0x62, 0x3b, 0x2b, 0x98, 0xce, 0x2c, - 0x16, 0x49, 0xa9, 0xb9, 0xd6, 0x08, 0xa4, 0x7e, 0xdc, 0xce, 0xaa, 0x0e, - 0xe5, 0xfb, 0xdd, 0xf0, 0xfb, 0x5d, 0x36, 0x3b, 0x1e, 0x9f, 0xdd, 0xbe, - 0xb4, 0x58, 0xa8, 0x9c, 0xc7, 0xed, 0x8b, 0x6f, 0x2a, 0x14, 0x10, 0x85, - 0xd1, 0xa3, 0x7c, 0xe7, 0xa4, 0xcc, 0x13, 0xd9, 0xf6, 0x4f, 0x11, 0x64, - 0xcb, 0x0a, 0xf9, 0xa9, 0x78, 0x04, 0x66, 0x62, 0x0e, 0xfb, 0x45, 0x90, - 0x1d, 0xf8, 0x14, 0x5d, 0x57, 0xa6, 0x41, 0xf3, 0xfd, 0x73, 0x1b, 0x8b, - 0xef, 0x78, 0x1a, 0xca, 0xb5, 0x49, 0x36, 0xd4, 0x20, 0x5f, 0xdc, 0x6a, - 0x0d, 0x5e, 0xf3, 0xeb, 0x4b, 0x5b, 0xaa, 0xa7, 0x6e, 0xf9, 0xa8, 0x5a, - 0xb8, 0xc3, 0xca, 0xfc, 0x31, 0x38, 0x84, 0x45, 0x12, 0x67, 0x70, 0x4a, - 0x46, 0x67, 0x5c, 0x59, 0x3b, 0x20, 0xdb, 0x2b, 0x22, 0x0a, 0x03, 0xf3, - 0x0c, 0x99, 0xb1, 0xe0, 0x47, 0x1e, 0x73, 0xf1, 0x31, 0xff, 0x65, 0xd7, - 0x7f, 0xdc, 0xdd, 0xde, 0xde, 0xd9, 0xdb, 0xf9, 0xfc, 0xd5, 0xf6, 0xde, - 0xce, 0xce, 0xce, 0xee, 0xde, 0xce, 0xde, 0xde, 0xee, 0xf6, 0xcf, 0x5b, - 0x64, 0x3f, 0xba, 0xcd, 0xb3, 0x3b, 0x75, 0x4c, 0x71, 0x2e, 0x1e, 0xc8, - 0x9a, 0x6b, 0xa9, 0x8b, 0x06, 0x2f, 0x7a, 0xae, 0x4a, 0x3e, 0x16, 0x55, - 0x82, 0x43, 0xe6, 0x19, 0x4c, 0x6e, 0xe1, 0x32, 0x4d, 0x71, 0x06, 0x3d, - 0xc0, 0x6b, 0x8c, 0xea, 0xef, 0x4b, 0x9a, 0xe9, 0x98, 0xc4, 0x01, 0xc8, - 0x34, 0xb5, 0xcd, 0xeb, 0xbb, 0x9a, 0x95, 0xe3, 0x31, 0x32, 0x17, 0x6c, - 0x6a, 0xeb, 0x30, 0x21, 0x54, 0xd5, 0x1b, 0x26, 0x09, 0xf1, 0x1c, 0x20, - 0xa8, 0x90, 0x0f, 0xba, 0x5b, 0x1d, 0x16, 0xbc, 0x24, 0x90, 0x7a, 0x52, - 0x52, 0x85, 0x81, 0x29, 0x31, 0x25, 0xb3, 0x48, 0x95, 0x4d, 0x79, 0x49, - 0x2e, 0xb3, 0xcf, 0xb7, 0xf7, 0xf6, 0xa8, 0x08, 0xc8, 0x9f, 0x76, 0xfa, - 0x12, 0x0f, 0xea, 0x07, 0xb9, 0xf7, 0xed, 0xf5, 0xc4, 0x6d, 0x90, 0xfa, - 0xe1, 0xcf, 0xb3, 0x58, 0xce, 0xb3, 0xca, 0x28, 0x22, 0x54, 0xda, 0x15, - 0x01, 0x91, 0x30, 0x7a, 0x33, 0xda, 0x1a, 0x00, 0x59, 0x3a, 0xc1, 0xf8, - 0x74, 0x23, 0x30, 0x6a, 0xac, 0x4d, 0x42, 0x67, 0xb8, 0x20, 0x37, 0x45, - 0xdb, 0x36, 0x0a, 0xe1, 0xc0, 0x8e, 0xcf, 0xa9, 0x2c, 0x9c, 0xc4, 0xc3, - 0xf7, 0xad, 0x70, 0x06, 0x1c, 0xae, 0x82, 0x0b, 0x8e, 0xd2, 0xe3, 0x2c, - 0xc3, 0xc3, 0x62, 0xe2, 0x09, 0xb7, 0x92, 0xbf, 0xf3, 0xa3, 0x37, 0xd9, - 0xdd, 0x17, 0x3b, 0x3f, 0x73, 0xb8, 0x22, 0x1d, 0x08, 0xb7, 0x6a, 0x52, - 0x18, 0x6e, 0xea, 0x67, 0x68, 0x28, 0x21, 0x6d, 0x64, 0xc3, 0xab, 0xa1, - 0x4a, 0x15, 0x62, 0x6d, 0xec, 0xfb, 0x41, 0xe3, 0x8c, 0x58, 0xce, 0x65, - 0x84, 0xa1, 0xa7, 0xa9, 0x41, 0x49, 0x0d, 0xc2, 0x6c, 0xcc, 0x6c, 0x55, - 0xf8, 0x31, 0x37, 0xcc, 0xd1, 0xc5, 0xbe, 0xb9, 0x3c, 0xbe, 0x0d, 0x15, - 0xfd, 0x77, 0x99, 0xd1, 0xca, 0x69, 0xb3, 0x37, 0x70, 0x1e, 0x6e, 0x2d, - 0x4e, 0x30, 0xad, 0xdd, 0xf3, 0x64, 0x83, 0x7c, 0x16, 0x2f, 0x3e, 0x7f, - 0xf1, 0x7c, 0x93, 0x8b, 0x32, 0xf0, 0x6b, 0x19, 0xe5, 0x87, 0xc0, 0x2a, - 0x29, 0xe0, 0x34, 0x64, 0x4e, 0xb6, 0x2c, 0xe9, 0xc3, 0xf9, 0x31, 0x1f, - 0xe9, 0x6b, 0xc6, 0x10, 0x60, 0xa5, 0xb7, 0x8b, 0x2b, 0x87, 0xfb, 0xd6, - 0x13, 0x32, 0xe6, 0x39, 0x61, 0x1e, 0x22, 0xf7, 0x9a, 0x2e, 0x46, 0x9b, - 0xfb, 0x8f, 0x1b, 0xd6, 0x1c, 0xd0, 0x12, 0xa5, 0x0a, 0xa5, 0x02, 0x14, - 0x06, 0x03, 0x90, 0x44, 0xc2, 0x68, 0x15, 0x3a, 0xb3, 0x1a, 0x18, 0xe9, - 0x41, 0xcc, 0x8f, 0x98, 0xfb, 0x77, 0x70, 0xb9, 0x37, 0xd9, 0xe3, 0x0f, - 0xa1, 0x90, 0xc8, 0xd0, 0x3c, 0xa8, 0xa1, 0xa3, 0x34, 0xe2, 0x56, 0x36, - 0x9a, 0x93, 0x36, 0x3d, 0x4c, 0x27, 0x85, 0x73, 0x11, 0x56, 0x64, 0x97, - 0x90, 0xdd, 0xd9, 0x0d, 0x2c, 0x8b, 0x79, 0xcb, 0xe4, 0x23, 0xb9, 0xf4, - 0xc8, 0x69, 0x47, 0xc8, 0xf1, 0xdc, 0x5c, 0x47, 0xd5, 0x83, 0x48, 0xd8, - 0x50, 0x13, 0x6c, 0x65, 0xb5, 0x4e, 0x40, 0x00, 0xa3, 0x46, 0xf8, 0x91, - 0xf4, 0x16, 0x34, 0x45, 0x95, 0xe6, 0xd6, 0x00, 0x5a, 0x6c, 0x7f, 0x30, - 0xd7, 0xaf, 0xbc, 0x78, 0x19, 0x3f, 0xbd, 0x4c, 0x7f, 0xd7, 0xe7, 0xbc, - 0x50, 0xca, 0xb4, 0x3b, 0xb1, 0x15, 0x43, 0x63, 0x6c, 0x4d, 0x84, 0x4f, - 0x59, 0xed, 0x67, 0x03, 0x23, 0xd9, 0xda, 0xda, 0x5c, 0x31, 0x1a, 0xf9, - 0x3a, 0xd6, 0xfb, 0x19, 0x30, 0x49, 0xbc, 0x8c, 0x4e, 0xb3, 0xe7, 0xed, - 0xc6, 0x69, 0x69, 0xf3, 0x9a, 0x76, 0x72, 0x2a, 0x71, 0xb1, 0x6c, 0x46, - 0x55, 0xf5, 0x8a, 0x07, 0xaf, 0xcc, 0xab, 0x3d, 0x09, 0x09, 0xc5, 0x51, - 0x8c, 0x28, 0xae, 0xf9, 0xcc, 0xee, 0xcd, 0x61, 0xb2, 0x4f, 0xd4, 0xd0, - 0xea, 0xd8, 0x1b, 0xb2, 0xda, 0x73, 0x15, 0x01, 0x5d, 0x85, 0x58, 0x6b, - 0xce, 0xeb, 0x7b, 0x5f, 0xaa, 0x98, 0xa7, 0x90, 0x00, 0xd6, 0xd8, 0x3b, - 0xce, 0x18, 0xfe, 0xc4, 0x72, 0x4e, 0x0f, 0xd9, 0x38, 0x2f, 0x5a, 0x25, - 0x43, 0xa5, 0x11, 0x38, 0xba, 0xed, 0x24, 0x00, 0x9a, 0x58, 0x29, 0x18, - 0xaf, 0x5f, 0x46, 0x10, 0x08, 0x04, 0x12, 0xd4, 0xce, 0x82, 0xb5, 0x25, - 0x62, 0xf6, 0xb6, 0x8e, 0x99, 0xbc, 0x5a, 0xeb, 0xd1, 0x67, 0x8a, 0xe7, - 0x20, 0x06, 0x8e, 0xb7, 0x35, 0x87, 0x84, 0x18, 0xc6, 0xfe, 0xf1, 0x09, - 0x45, 0xc5, 0x9d, 0x18, 0x15, 0x6f, 0xa4, 0xa2, 0x12, 0xa2, 0x44, 0x11, - 0xaf, 0x57, 0xe4, 0x24, 0xae, 0xf7, 0x6d, 0xe9, 0x11, 0x4d, 0x96, 0x82, - 0xde, 0x42, 0xce, 0x3d, 0x56, 0xfd, 0x05, 0x23, 0xd0, 0xec, 0x96, 0x91, - 0x97, 0x6a, 0x36, 0xda, 0x02, 0x8a, 0x97, 0x40, 0xea, 0xe1, 0x48, 0x85, - 0x4a, 0xcd, 0x6c, 0x1a, 0x95, 0x8f, 0xaa, 0x6c, 0x96, 0xdd, 0x8a, 0x75, - 0x95, 0x81, 0x4d, 0xbf, 0x16, 0x1f, 0x26, 0x97, 0x3e, 0x6d, 0x9c, 0x2b, - 0xb6, 0xe5, 0x26, 0xa5, 0x3e, 0xb7, 0x18, 0x13, 0xc6, 0x41, 0x7d, 0x50, - 0xf7, 0x0e, 0x8d, 0x5f, 0x5d, 0xc6, 0xf4, 0xde, 0x80, 0x74, 0x5c, 0x09, - 0x6d, 0xfd, 0x50, 0x0b, 0x9a, 0x43, 0x37, 0x56, 0x9c, 0x6d, 0x85, 0x5a, - 0x3c, 0x8f, 0x8d, 0xef, 0x7d, 0xc5, 0x4b, 0x66, 0x8f, 0x01, 0x5d, 0x3c, - 0x7d, 0x32, 0xd4, 0x72, 0x81, 0x76, 0xa3, 0x90, 0x51, 0x65, 0x8c, 0x3e, - 0x27, 0x8e, 0x82, 0x36, 0xca, 0x99, 0xf9, 0x13, 0xe1, 0x54, 0x1c, 0x60, - 0x69, 0x9e, 0x25, 0xbc, 0x57, 0x2f, 0xa2, 0xd5, 0xfc, 0xc9, 0xc9, 0x10, - 0xf2, 0x17, 0x9a, 0xaa, 0x96, 0x80, 0x15, 0xee, 0xf3, 0x65, 0x48, 0x4e, - 0xc7, 0x66, 0x32, 0xb4, 0xa3, 0x17, 0x9f, 0x3f, 0x8f, 0xff, 0x50, 0x5d, - 0xd2, 0x2a, 0x86, 0x94, 0x95, 0xae, 0x2e, 0xef, 0xc2, 0x98, 0x6b, 0x1d, - 0x7e, 0xb5, 0x24, 0x67, 0x98, 0xad, 0xe4, 0x43, 0xa3, 0x98, 0xd3, 0x55, - 0x94, 0x71, 0x59, 0x51, 0xdb, 0x38, 0x69, 0x74, 0x4b, 0xb3, 0xbb, 0xdc, - 0xfa, 0x49, 0x79, 0x47, 0x35, 0x51, 0x2f, 0x2f, 0xf3, 0x09, 0x15, 0xba, - 0x71, 0xf0, 0xc1, 0xc4, 0xe2, 0xf9, 0xc1, 0xb9, 0x96, 0x61, 0x32, 0x73, - 0x4b, 0x16, 0xcb, 0xf1, 0xcc, 0xdc, 0xd5, 0x1a, 0xcd, 0x6e, 0x0e, 0x15, - 0x56, 0xc9, 0x28, 0x5b, 0x68, 0x8e, 0x7d, 0xf9, 0xd0, 0x37, 0x3b, 0x11, - 0xd4, 0x52, 0xbc, 0x9d, 0x24, 0xf0, 0x39, 0x8a, 0xc3, 0x52, 0x98, 0xf1, - 0xbc, 0x2c, 0x34, 0x19, 0x66, 0x59, 0x33, 0x98, 0xa4, 0x56, 0x7a, 0x5f, - 0x63, 0xcf, 0x44, 0x3e, 0x13, 0xf4, 0x76, 0xd1, 0xcc, 0xf1, 0x86, 0x3f, - 0x99, 0xe9, 0x60, 0x71, 0xbd, 0xd0, 0x9d, 0x56, 0x79, 0x88, 0x85, 0x25, - 0x49, 0xbf, 0xc0, 0xc9, 0x3b, 0xfb, 0xe6, 0x6c, 0x98, 0x1c, 0x51, 0x4b, - 0x3c, 0x26, 0x91, 0x73, 0x61, 0xa2, 0x31, 0xdf, 0x99, 0xc9, 0x5e, 0xd1, - 0xfd, 0x75, 0x5a, 0xd1, 0x5f, 0x68, 0x4d, 0xbe, 0x64, 0xab, 0x2c, 0xbe, - 0x6d, 0xf7, 0x6a, 0x1a, 0xd2, 0x20, 0xeb, 0x33, 0xfc, 0x6e, 0x8e, 0x8a, - 0x91, 0xbe, 0xec, 0x36, 0xb9, 0x1e, 0xca, 0xaa, 0x05, 0xbd, 0xc3, 0x6f, - 0x26, 0x46, 0x28, 0x83, 0x68, 0xb5, 0x78, 0xc0, 0xfe, 0x79, 0xbc, 0x91, - 0xc5, 0x4f, 0x6e, 0xc0, 0x23, 0x2d, 0x21, 0x3f, 0x1b, 0xbe, 0xc7, 0xe7, - 0xaa, 0x62, 0xd0, 0x99, 0x2a, 0x93, 0x60, 0xc7, 0x52, 0xbc, 0xa4, 0x6c, - 0xd0, 0xa8, 0xb3, 0xce, 0x71, 0xf5, 0xd4, 0x37, 0xfd, 0x82, 0xb4, 0x6e, - 0x1a, 0x8b, 0x11, 0x5a, 0xcc, 0x16, 0x0c, 0xd7, 0xfe, 0x6f, 0x9c, 0x7c, - 0x7e, 0x85, 0xdf, 0x6c, 0x02, 0x00, -}; -#define BUF_SIZE 0x10000 -static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size) -{ - (void) opaque; - /* not a typo, keep it calloc() */ - return (voidpf) calloc(items, size); -} -static void zfree_func(voidpf opaque, voidpf ptr) -{ - (void) opaque; - free(ptr); -} -/* Decompress and send to stdout a gzip-compressed buffer */ -void hugehelp(void) -{ - unsigned char* buf; - int status,headerlen; - z_stream z; - - /* Make sure no gzip options are set */ - if (hugehelpgz[3] & 0xfe) - return; - - headerlen = 10; - memset(&z, 0, sizeof(z_stream)); - z.zalloc = (alloc_func)zalloc_func; - z.zfree = (free_func)zfree_func; - z.avail_in = (unsigned int)(sizeof(hugehelpgz) - headerlen); - z.next_in = (unsigned char *)hugehelpgz + headerlen; - - if (inflateInit2(&z, -MAX_WBITS) != Z_OK) - return; - - buf = malloc(BUF_SIZE); - if (buf) { - while(1) { - z.avail_out = BUF_SIZE; - z.next_out = buf; - status = inflate(&z, Z_SYNC_FLUSH); - if (status == Z_OK || status == Z_STREAM_END) { - fwrite(buf, BUF_SIZE - z.avail_out, 1, stdout); - if (status == Z_STREAM_END) - break; - } - else - break; /* Error */ - } - free(buf); - } - inflateEnd(&z); -} -#else /* !USE_MANUAL */ -/* built-in manual is disabled, blank function */ -#include "tool_hugehelp.h" -void hugehelp(void) {} -#endif /* USE_MANUAL */ -#endif /* HAVE_LIBZ */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_hugehelp.h b/external/libcurl_android/jni/libcurl/src/tool_hugehelp.h deleted file mode 100755 index 442579e5..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_hugehelp.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef HEADER_CURL_TOOL_HUGEHELP_H -#define HEADER_CURL_TOOL_HUGEHELP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -void hugehelp(void); - -#endif /* HEADER_CURL_TOOL_HUGEHELP_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_libinfo.c b/external/libcurl_android/jni/libcurl/src/tool_libinfo.c deleted file mode 100755 index 81b6680c..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_libinfo.c +++ /dev/null @@ -1,100 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_libinfo.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* global variable definitions, for libcurl run-time info */ - -curl_version_info_data *curlinfo = NULL; -long built_in_protos = 0; - -/* - * libcurl_info_init: retrieves run-time information about libcurl, - * setting a global pointer 'curlinfo' to libcurl's run-time info - * struct, and a global bit pattern 'built_in_protos' composed of - * CURLPROTO_* bits indicating which protocols are actually built - * into library being used. - */ - -CURLcode get_libcurl_info(void) -{ - static struct proto_name_pattern { - const char *proto_name; - long proto_pattern; - } const possibly_built_in[] = { - { "dict", CURLPROTO_DICT }, - { "file", CURLPROTO_FILE }, - { "ftp", CURLPROTO_FTP }, - { "ftps", CURLPROTO_FTPS }, - { "gopher", CURLPROTO_GOPHER }, - { "http", CURLPROTO_HTTP }, - { "https", CURLPROTO_HTTPS }, - { "imap", CURLPROTO_IMAP }, - { "imaps", CURLPROTO_IMAPS }, - { "ldap", CURLPROTO_LDAP }, - { "ldaps", CURLPROTO_LDAPS }, - { "pop3", CURLPROTO_POP3 }, - { "pop3s", CURLPROTO_POP3S }, - { "rtmp", CURLPROTO_RTMP }, - { "rtsp", CURLPROTO_RTSP }, - { "scp", CURLPROTO_SCP }, - { "sftp", CURLPROTO_SFTP }, - { "smtp", CURLPROTO_SMTP }, - { "smtps", CURLPROTO_SMTPS }, - { "telnet", CURLPROTO_TELNET }, - { "tftp", CURLPROTO_TFTP }, - { NULL, 0 } - }; - - struct proto_name_pattern const *p; - const char *const *proto; - - /* Pointer to libcurl's run-time version information */ - curlinfo = curl_version_info(CURLVERSION_NOW); - if(!curlinfo) - return CURLE_FAILED_INIT; - - /* Build CURLPROTO_* bit pattern with libcurl's built-in protocols */ - built_in_protos = 0; - if(curlinfo->protocols) { - for(proto = curlinfo->protocols; *proto; proto++) { - for(p = possibly_built_in; p->proto_name; p++) { - if(curlx_raw_equal(*proto, p->proto_name)) { - built_in_protos |= p->proto_pattern; - break; - } - } - } - } - - return CURLE_OK; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_libinfo.h b/external/libcurl_android/jni/libcurl/src/tool_libinfo.h deleted file mode 100755 index 5c149d91..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_libinfo.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef HEADER_CURL_TOOL_LIBINFO_H -#define HEADER_CURL_TOOL_LIBINFO_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* global variable declarations, for libcurl run-time info */ - -extern curl_version_info_data *curlinfo; -extern long built_in_protos; - -CURLcode get_libcurl_info(void); - -#endif /* HEADER_CURL_TOOL_LIBINFO_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_main.c b/external/libcurl_android/jni/libcurl/src/tool_main.c deleted file mode 100755 index 8c8acc6d..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_main.c +++ /dev/null @@ -1,275 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include <sys/stat.h> - -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif - -#ifdef USE_NSS -#include <nspr.h> -#include <plarenas.h> -#endif - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_convert.h" -#include "tool_msgs.h" -#include "tool_operate.h" -#include "tool_panykey.h" -#include "tool_vms.h" -#include "tool_main.h" -#include "tool_libinfo.h" - -/* - * This is low-level hard-hacking memory leak tracking and similar. Using - * the library level code from this client-side is ugly, but we do this - * anyway for convenience. - */ -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef __VMS -/* - * vms_show is a global variable, used in main() as parameter for - * function vms_special_exit() to allow proper curl tool exiting. - * Its value may be set in other tool_*.c source files thanks to - * forward declaration present in tool_vms.h - */ -int vms_show = 0; -#endif - -/* if we build a static library for unit tests, there is no main() function */ -#ifndef UNITTESTS - -/* - * Ensure that file descriptors 0, 1 and 2 (stdin, stdout, stderr) are - * open before starting to run. Otherwise, the first three network - * sockets opened by curl could be used for input sources, downloaded data - * or error logs as they will effectively be stdin, stdout and/or stderr. - */ -static void main_checkfds(void) -{ -#ifdef HAVE_PIPE - int fd[2] = { STDIN_FILENO, STDIN_FILENO }; - while(fd[0] == STDIN_FILENO || - fd[0] == STDOUT_FILENO || - fd[0] == STDERR_FILENO || - fd[1] == STDIN_FILENO || - fd[1] == STDOUT_FILENO || - fd[1] == STDERR_FILENO) - if(pipe(fd) < 0) - return; /* Out of handles. This isn't really a big problem now, but - will be when we try to create a socket later. */ - close(fd[0]); - close(fd[1]); -#endif -} - -#ifdef CURLDEBUG -static void memory_tracking_init(void) -{ - char *env; - /* if CURL_MEMDEBUG is set, this starts memory tracking message logging */ - env = curlx_getenv("CURL_MEMDEBUG"); - if(env) { - /* use the value as file name */ - char fname[CURL_MT_LOGFNAME_BUFSIZE]; - if(strlen(env) >= CURL_MT_LOGFNAME_BUFSIZE) - env[CURL_MT_LOGFNAME_BUFSIZE-1] = '\0'; - strcpy(fname, env); - curl_free(env); - curl_memdebug(fname); - /* this weird stuff here is to make curl_free() get called - before curl_memdebug() as otherwise memory tracking will - log a free() without an alloc! */ - } - /* if CURL_MEMLIMIT is set, this enables fail-on-alloc-number-N feature */ - env = curlx_getenv("CURL_MEMLIMIT"); - if(env) { - char *endptr; - long num = strtol(env, &endptr, 10); - if((endptr != env) && (endptr == env + strlen(env)) && (num > 0)) - curl_memlimit(num); - curl_free(env); - } -} -#else -# define memory_tracking_init() Curl_nop_stmt -#endif - -/* - * This is the main global constructor for the app. Call this before - * _any_ libcurl usage. If this fails, *NO* libcurl functions may be - * used, or havoc may be the result. - */ -static CURLcode main_init(struct GlobalConfig *config) -{ - CURLcode result = CURLE_OK; - -#if defined(__DJGPP__) || defined(__GO32__) - /* stop stat() wasting time */ - _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE; -#endif - - /* Initialise the global config */ - config->showerror = -1; /* Will show errors */ - config->errors = stderr; /* Default errors to stderr */ - - /* Allocate the initial operate config */ - config->first = config->last = malloc(sizeof(struct OperationConfig)); - if(config->first) { - /* Perform the libcurl initialization */ - result = curl_global_init(CURL_GLOBAL_DEFAULT); - if(!result) { - /* Get information about libcurl */ - result = get_libcurl_info(); - - if(!result) { - /* Get a curl handle to use for all forthcoming curl transfers */ - config->easy = curl_easy_init(); - if(config->easy) { - /* Initialise the config */ - config_init(config->first); - config->first->easy = config->easy; - config->first->global = config; - } - else { - helpf(stderr, "error initializing curl easy handle\n"); - result = CURLE_FAILED_INIT; - free(config->first); - } - } - else { - helpf(stderr, "error retrieving curl library information\n"); - free(config->first); - } - } - else { - helpf(stderr, "error initializing curl library\n"); - free(config->first); - } - } - else { - helpf(stderr, "error initializing curl\n"); - result = CURLE_FAILED_INIT; - } - - return result; -} - -static void free_config_fields(struct GlobalConfig *config) -{ - Curl_safefree(config->trace_dump); - - if(config->errors_fopened && config->errors) - fclose(config->errors); - config->errors = NULL; - - if(config->trace_fopened && config->trace_stream) - fclose(config->trace_stream); - config->trace_stream = NULL; - - Curl_safefree(config->libcurl); -} - -/* - * This is the main global destructor for the app. Call this after - * _all_ libcurl usage is done. - */ -static void main_free(struct GlobalConfig *config) -{ - /* Cleanup the easy handle */ - curl_easy_cleanup(config->easy); - config->easy = NULL; - - /* Main cleanup */ - curl_global_cleanup(); - convert_cleanup(); - metalink_cleanup(); -#ifdef USE_NSS - if(PR_Initialized()) { - /* prevent valgrind from reporting still reachable mem from NSRP arenas */ - PL_ArenaFinish(); - /* prevent valgrind from reporting possibly lost memory (fd cache, ...) */ - PR_Cleanup(); - } -#endif - free_config_fields(config); - - /* Free the config structures */ - config_free(config->last); - config->first = NULL; - config->last = NULL; -} - -/* -** curl tool main function. -*/ -int main(int argc, char *argv[]) -{ - CURLcode result = CURLE_OK; - struct GlobalConfig global; - memset(&global, 0, sizeof(global)); - - main_checkfds(); - -#if defined(HAVE_SIGNAL) && defined(SIGPIPE) - (void)signal(SIGPIPE, SIG_IGN); -#endif - - /* Initialize memory tracking */ - memory_tracking_init(); - - /* Initialize the curl library - do not call any libcurl functions before - this point */ - result = main_init(&global); - if(!result) { - /* Start our curl operation */ - result = operate(&global, argc, argv); - -#ifdef __SYMBIAN32__ - if(global.showerror) - tool_pressanykey(); -#endif - - /* Perform the main cleanup */ - main_free(&global); - } - -#ifdef __NOVELL_LIBC__ - if(getenv("_IN_NETWARE_BASH_") == NULL) - tool_pressanykey(); -#endif - -#ifdef __VMS - vms_special_exit(res, vms_show); -#else - return (int)result; -#endif -} - -#endif /* ndef UNITTESTS */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_main.h b/external/libcurl_android/jni/libcurl/src/tool_main.h deleted file mode 100755 index 9a7972fd..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_main.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef HEADER_CURL_TOOL_MAIN_H -#define HEADER_CURL_TOOL_MAIN_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define DEFAULT_MAXREDIRS 50L - -#define RETRY_SLEEP_DEFAULT 1000L /* ms */ -#define RETRY_SLEEP_MAX 600000L /* ms == 10 minutes */ - -#ifndef STDIN_FILENO -# define STDIN_FILENO fileno(stdin) -#endif - -#ifndef STDOUT_FILENO -# define STDOUT_FILENO fileno(stdout) -#endif - -#ifndef STDERR_FILENO -# define STDERR_FILENO fileno(stderr) -#endif - -#endif /* HEADER_CURL_TOOL_MAIN_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_metalink.c b/external/libcurl_android/jni/libcurl/src/tool_metalink.c deleted file mode 100755 index 3573b058..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_metalink.c +++ /dev/null @@ -1,963 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef USE_METALINK - -#include <sys/stat.h> - -#ifdef HAVE_FCNTL_H -# include <fcntl.h> -#endif - -#ifdef USE_SSLEAY -# ifdef USE_OPENSSL -# include <openssl/md5.h> -# include <openssl/sha.h> -# else -# include <md5.h> -# include <sha.h> -# endif -#elif defined(USE_GNUTLS_NETTLE) -# include <nettle/md5.h> -# include <nettle/sha.h> -# define MD5_CTX struct md5_ctx -# define SHA_CTX struct sha1_ctx -# define SHA256_CTX struct sha256_ctx -#elif defined(USE_GNUTLS) -# include <gcrypt.h> -# define MD5_CTX gcry_md_hd_t -# define SHA_CTX gcry_md_hd_t -# define SHA256_CTX gcry_md_hd_t -#elif defined(USE_NSS) -# include <nss.h> -# include <pk11pub.h> -# define MD5_CTX void * -# define SHA_CTX void * -# define SHA256_CTX void * - static NSSInitContext *nss_context; -#elif defined(USE_POLARSSL) -# include <polarssl/md5.h> -# include <polarssl/sha1.h> -# include <polarssl/sha256.h> -# define MD5_CTX md5_context -# define SHA_CTX sha1_context -# define SHA256_CTX sha256_context -#elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \ - (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \ - (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \ - (__IPHONE_OS_VERSION_MAX_ALLOWED >= 20000)) -/* For Apple operating systems: CommonCrypto has the functions we need. - The library's headers are even backward-compatible with OpenSSL's - headers as long as we define COMMON_DIGEST_FOR_OPENSSL first. - - These functions are available on Tiger and later, as well as iOS 2.0 - and later. If you're building for an older cat, well, sorry. */ -# define COMMON_DIGEST_FOR_OPENSSL -# include <CommonCrypto/CommonDigest.h> -#elif defined(_WIN32) -/* For Windows: If no other crypto library is provided, we fallback - to the hash functions provided within the Microsoft Windows CryptoAPI */ -# include <wincrypt.h> -/* Custom structure in order to store the required provider and hash handle */ -struct win32_crypto_hash { - HCRYPTPROV hCryptProv; - HCRYPTHASH hHash; -}; -/* Custom Microsoft AES Cryptographic Provider defines required for MinGW */ -# ifndef ALG_SID_SHA_256 -# define ALG_SID_SHA_256 12 -# endif -# ifndef CALG_SHA_256 -# define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) -# endif -# define MD5_CTX struct win32_crypto_hash -# define SHA_CTX struct win32_crypto_hash -# define SHA256_CTX struct win32_crypto_hash -#else -# error "Can't compile METALINK support without a crypto library." -#endif - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_getparam.h" -#include "tool_paramhlp.h" -#include "tool_cfgable.h" -#include "tool_metalink.h" -#include "tool_msgs.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* Copied from tool_getparam.c */ -#define GetStr(str,val) do { \ - if(*(str)) { \ - free(*(str)); \ - *(str) = NULL; \ - } \ - if((val)) \ - *(str) = strdup((val)); \ - if(!(val)) \ - return PARAM_NO_MEM; \ -} WHILE_FALSE - -#ifdef USE_GNUTLS_NETTLE - -static int MD5_Init(MD5_CTX *ctx) -{ - md5_init(ctx); - return 1; -} - -static void MD5_Update(MD5_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - md5_update(ctx, inputLen, input); -} - -static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx) -{ - md5_digest(ctx, 16, digest); -} - -static int SHA1_Init(SHA_CTX *ctx) -{ - sha1_init(ctx); - return 1; -} - -static void SHA1_Update(SHA_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - sha1_update(ctx, inputLen, input); -} - -static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx) -{ - sha1_digest(ctx, 20, digest); -} - -static int SHA256_Init(SHA256_CTX *ctx) -{ - sha256_init(ctx); - return 1; -} - -static void SHA256_Update(SHA256_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - sha256_update(ctx, inputLen, input); -} - -static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx) -{ - sha256_digest(ctx, 32, digest); -} - -#elif defined(USE_GNUTLS) - -static int MD5_Init(MD5_CTX *ctx) -{ - gcry_md_open(ctx, GCRY_MD_MD5, 0); - return 1; -} - -static void MD5_Update(MD5_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - gcry_md_write(*ctx, input, inputLen); -} - -static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx) -{ - memcpy(digest, gcry_md_read(*ctx, 0), 16); - gcry_md_close(*ctx); -} - -static int SHA1_Init(SHA_CTX *ctx) -{ - gcry_md_open(ctx, GCRY_MD_SHA1, 0); - return 1; -} - -static void SHA1_Update(SHA_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - gcry_md_write(*ctx, input, inputLen); -} - -static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx) -{ - memcpy(digest, gcry_md_read(*ctx, 0), 20); - gcry_md_close(*ctx); -} - -static int SHA256_Init(SHA256_CTX *ctx) -{ - gcry_md_open(ctx, GCRY_MD_SHA256, 0); - return 1; -} - -static void SHA256_Update(SHA256_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - gcry_md_write(*ctx, input, inputLen); -} - -static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx) -{ - memcpy(digest, gcry_md_read(*ctx, 0), 32); - gcry_md_close(*ctx); -} - -#elif defined(USE_NSS) - -static int nss_hash_init(void **pctx, SECOidTag hash_alg) -{ - PK11Context *ctx; - - /* we have to initialize NSS if not initialized alraedy */ - if(!NSS_IsInitialized() && !nss_context) { - static NSSInitParameters params; - params.length = sizeof params; - nss_context = NSS_InitContext("", "", "", "", ¶ms, NSS_INIT_READONLY - | NSS_INIT_NOCERTDB | NSS_INIT_NOMODDB | NSS_INIT_FORCEOPEN - | NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE | NSS_INIT_PK11RELOAD); - } - - ctx = PK11_CreateDigestContext(hash_alg); - if(!ctx) - return /* failure */ 0; - - if(PK11_DigestBegin(ctx) != SECSuccess) { - PK11_DestroyContext(ctx, PR_TRUE); - return /* failure */ 0; - } - - *pctx = ctx; - return /* success */ 1; -} - -static void nss_hash_final(void **pctx, unsigned char *out, unsigned int len) -{ - PK11Context *ctx = *pctx; - unsigned int outlen; - PK11_DigestFinal(ctx, out, &outlen, len); - PK11_DestroyContext(ctx, PR_TRUE); -} - -static int MD5_Init(MD5_CTX *pctx) -{ - return nss_hash_init(pctx, SEC_OID_MD5); -} - -static void MD5_Update(MD5_CTX *pctx, - const unsigned char *input, - unsigned int input_len) -{ - PK11_DigestOp(*pctx, input, input_len); -} - -static void MD5_Final(unsigned char digest[16], MD5_CTX *pctx) -{ - nss_hash_final(pctx, digest, 16); -} - -static int SHA1_Init(SHA_CTX *pctx) -{ - return nss_hash_init(pctx, SEC_OID_SHA1); -} - -static void SHA1_Update(SHA_CTX *pctx, - const unsigned char *input, - unsigned int input_len) -{ - PK11_DigestOp(*pctx, input, input_len); -} - -static void SHA1_Final(unsigned char digest[20], SHA_CTX *pctx) -{ - nss_hash_final(pctx, digest, 20); -} - -static int SHA256_Init(SHA256_CTX *pctx) -{ - return nss_hash_init(pctx, SEC_OID_SHA256); -} - -static void SHA256_Update(SHA256_CTX *pctx, - const unsigned char *input, - unsigned int input_len) -{ - PK11_DigestOp(*pctx, input, input_len); -} - -static void SHA256_Final(unsigned char digest[32], SHA256_CTX *pctx) -{ - nss_hash_final(pctx, digest, 32); -} - -#elif defined(USE_POLARSSL) - -static int MD5_Init(MD5_CTX *ctx) -{ - md5_starts(ctx); - return 1; -} - -static void MD5_Update(MD5_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - md5_update(ctx, input, inputLen); -} - -static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx) -{ - md5_finish(ctx, digest); -} - -static int SHA1_Init(SHA_CTX *ctx) -{ - sha1_starts(ctx); - return 1; -} - -static void SHA1_Update(SHA_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - sha1_update(ctx, input, inputLen); -} - -static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx) -{ - sha1_finish(ctx, digest); -} - -static int SHA256_Init(SHA256_CTX *ctx) -{ - sha256_starts(ctx, 0); /* 0 = sha256 */ - return 1; -} - -static void SHA256_Update(SHA256_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - sha256_update(ctx, input, inputLen); -} - -static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx) -{ - sha256_finish(ctx, digest); -} - -#elif defined(_WIN32) && !defined(USE_SSLEAY) - -static void win32_crypto_final(struct win32_crypto_hash *ctx, - unsigned char *digest, - unsigned int digestLen) -{ - unsigned long length; - CryptGetHashParam(ctx->hHash, HP_HASHVAL, NULL, &length, 0); - if(length == digestLen) - CryptGetHashParam(ctx->hHash, HP_HASHVAL, digest, &length, 0); - if(ctx->hHash) - CryptDestroyHash(ctx->hHash); - if(ctx->hCryptProv) - CryptReleaseContext(ctx->hCryptProv, 0); -} - -static int MD5_Init(MD5_CTX *ctx) -{ - if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL, - PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { - CryptCreateHash(ctx->hCryptProv, CALG_MD5, 0, 0, &ctx->hHash); - } - return 1; -} - -static void MD5_Update(MD5_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0); -} - -static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx) -{ - win32_crypto_final(ctx, digest, 16); -} - -static int SHA1_Init(SHA_CTX *ctx) -{ - if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL, - PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { - CryptCreateHash(ctx->hCryptProv, CALG_SHA1, 0, 0, &ctx->hHash); - } - return 1; -} - -static void SHA1_Update(SHA_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0); -} - -static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx) -{ - win32_crypto_final(ctx, digest, 20); -} - -static int SHA256_Init(SHA256_CTX *ctx) -{ - if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL, - PROV_RSA_AES, CRYPT_VERIFYCONTEXT)) { - CryptCreateHash(ctx->hCryptProv, CALG_SHA_256, 0, 0, &ctx->hHash); - } - return 1; -} - -static void SHA256_Update(SHA256_CTX *ctx, - const unsigned char *input, - unsigned int inputLen) -{ - CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0); -} - -static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx) -{ - win32_crypto_final(ctx, digest, 32); -} - -#endif /* CRYPTO LIBS */ - -const digest_params MD5_DIGEST_PARAMS[] = { - { - (Curl_digest_init_func) MD5_Init, - (Curl_digest_update_func) MD5_Update, - (Curl_digest_final_func) MD5_Final, - sizeof(MD5_CTX), - 16 - } -}; - -const digest_params SHA1_DIGEST_PARAMS[] = { - { - (Curl_digest_init_func) SHA1_Init, - (Curl_digest_update_func) SHA1_Update, - (Curl_digest_final_func) SHA1_Final, - sizeof(SHA_CTX), - 20 - } -}; - -const digest_params SHA256_DIGEST_PARAMS[] = { - { - (Curl_digest_init_func) SHA256_Init, - (Curl_digest_update_func) SHA256_Update, - (Curl_digest_final_func) SHA256_Final, - sizeof(SHA256_CTX), - 32 - } -}; - -static const metalink_digest_def SHA256_DIGEST_DEF[] = { - {"sha-256", SHA256_DIGEST_PARAMS} -}; - -static const metalink_digest_def SHA1_DIGEST_DEF[] = { - {"sha-1", SHA1_DIGEST_PARAMS} -}; - -static const metalink_digest_def MD5_DIGEST_DEF[] = { - {"md5", MD5_DIGEST_PARAMS} -}; - -/* - * The alias of supported hash functions in the order by preference - * (basically stronger hash comes first). We included "sha-256" and - * "sha256". The former is the name defined in the IANA registry named - * "Hash Function Textual Names". The latter is widely (and - * historically) used in Metalink version 3. - */ -static const metalink_digest_alias digest_aliases[] = { - {"sha-256", SHA256_DIGEST_DEF}, - {"sha256", SHA256_DIGEST_DEF}, - {"sha-1", SHA1_DIGEST_DEF}, - {"sha1", SHA1_DIGEST_DEF}, - {"md5", MD5_DIGEST_DEF}, - {NULL, NULL} -}; - -digest_context *Curl_digest_init(const digest_params *dparams) -{ - digest_context *ctxt; - - /* Create digest context */ - ctxt = malloc(sizeof *ctxt); - - if(!ctxt) - return ctxt; - - ctxt->digest_hashctx = malloc(dparams->digest_ctxtsize); - - if(!ctxt->digest_hashctx) { - free(ctxt); - return NULL; - } - - ctxt->digest_hash = dparams; - - if(dparams->digest_init(ctxt->digest_hashctx) != 1) { - free(ctxt); - return NULL; - } - - return ctxt; -} - -int Curl_digest_update(digest_context *context, - const unsigned char *data, - unsigned int len) -{ - (*context->digest_hash->digest_update)(context->digest_hashctx, data, len); - - return 0; -} - -int Curl_digest_final(digest_context *context, unsigned char *result) -{ - (*context->digest_hash->digest_final)(result, context->digest_hashctx); - - free(context->digest_hashctx); - free(context); - - return 0; -} - -static unsigned char hex_to_uint(const char *s) -{ - int v[2]; - int i; - for(i = 0; i < 2; ++i) { - v[i] = Curl_raw_toupper(s[i]); - if('0' <= v[i] && v[i] <= '9') { - v[i] -= '0'; - } - else if('A' <= v[i] && v[i] <= 'Z') { - v[i] -= 'A'-10; - } - } - return (unsigned char)((v[0] << 4) | v[1]); -} - -/* - * Check checksum of file denoted by filename. The expected hash value - * is given in hex_hash which is hex-encoded string. - * - * This function returns 1 if it succeeds or one of the following - * integers: - * - * 0: - * Checksum didn't match. - * -1: - * Could not open file; or could not read data from file. - * -2: - * Hash algorithm not available. - */ -static int check_hash(const char *filename, - const metalink_digest_def *digest_def, - const unsigned char *digest, FILE *error) -{ - unsigned char *result; - digest_context *dctx; - int check_ok, flags, fd; - - flags = O_RDONLY; -#ifdef O_BINARY - /* O_BINARY is required in order to avoid binary EOF in text mode */ - flags |= O_BINARY; -#endif - - fd = open(filename, flags); - if(fd == -1) { - fprintf(error, "Metalink: validating (%s) [%s] FAILED (%s)\n", filename, - digest_def->hash_name, strerror(errno)); - return -1; - } - - dctx = Curl_digest_init(digest_def->dparams); - if(!dctx) { - fprintf(error, "Metalink: validating (%s) [%s] FAILED (%s)\n", filename, - digest_def->hash_name, "failed to initialize hash algorithm"); - close(fd); - return -2; - } - - result = malloc(digest_def->dparams->digest_resultlen); - while(1) { - unsigned char buf[4096]; - ssize_t len = read(fd, buf, sizeof(buf)); - if(len == 0) { - break; - } - else if(len == -1) { - fprintf(error, "Metalink: validating (%s) [%s] FAILED (%s)\n", filename, - digest_def->hash_name, strerror(errno)); - Curl_digest_final(dctx, result); - close(fd); - return -1; - } - Curl_digest_update(dctx, buf, (unsigned int)len); - } - Curl_digest_final(dctx, result); - check_ok = memcmp(result, digest, - digest_def->dparams->digest_resultlen) == 0; - /* sha*sum style verdict output */ - if(check_ok) - fprintf(error, "Metalink: validating (%s) [%s] OK\n", filename, - digest_def->hash_name); - else - fprintf(error, "Metalink: validating (%s) [%s] FAILED (digest mismatch)\n", - filename, digest_def->hash_name); - - free(result); - close(fd); - return check_ok; -} - -int metalink_check_hash(struct GlobalConfig *config, - metalinkfile *mlfile, - const char *filename) -{ - int rv; - fprintf(config->errors, "Metalink: validating (%s)...\n", filename); - if(mlfile->checksum == NULL) { - fprintf(config->errors, - "Metalink: validating (%s) FAILED (digest missing)\n", filename); - return -2; - } - rv = check_hash(filename, mlfile->checksum->digest_def, - mlfile->checksum->digest, config->errors); - return rv; -} - -static metalink_checksum *new_metalink_checksum_from_hex_digest -(const metalink_digest_def *digest_def, const char *hex_digest) -{ - metalink_checksum *chksum; - unsigned char *digest; - size_t i; - size_t len = strlen(hex_digest); - digest = malloc(len/2); - for(i = 0; i < len; i += 2) { - digest[i/2] = hex_to_uint(hex_digest+i); - } - chksum = malloc(sizeof(metalink_checksum)); - chksum->digest_def = digest_def; - chksum->digest = digest; - return chksum; -} - -static metalink_resource *new_metalink_resource(const char *url) -{ - metalink_resource *res; - res = malloc(sizeof(metalink_resource)); - res->next = NULL; - res->url = strdup(url); - return res; -} - -/* Returns nonzero if hex_digest is properly formatted; that is each - letter is in [0-9A-Za-z] and the length of the string equals to the - result length of digest * 2. */ -static int check_hex_digest(const char *hex_digest, - const metalink_digest_def *digest_def) -{ - size_t i; - for(i = 0; hex_digest[i]; ++i) { - char c = hex_digest[i]; - if(!(('0' <= c && c <= '9') || ('a' <= c && c <= 'z') || - ('A' <= c && c <= 'Z'))) { - return 0; - } - } - return digest_def->dparams->digest_resultlen * 2 == i; -} - -static metalinkfile *new_metalinkfile(metalink_file_t *fileinfo) -{ - metalinkfile *f; - f = (metalinkfile*)malloc(sizeof(metalinkfile)); - f->next = NULL; - f->filename = strdup(fileinfo->name); - f->checksum = NULL; - f->resource = NULL; - if(fileinfo->checksums) { - const metalink_digest_alias *digest_alias; - for(digest_alias = digest_aliases; digest_alias->alias_name; - ++digest_alias) { - metalink_checksum_t **p; - for(p = fileinfo->checksums; *p; ++p) { - if(Curl_raw_equal(digest_alias->alias_name, (*p)->type) && - check_hex_digest((*p)->hash, digest_alias->digest_def)) { - f->checksum = - new_metalink_checksum_from_hex_digest(digest_alias->digest_def, - (*p)->hash); - break; - } - } - if(f->checksum) { - break; - } - } - } - if(fileinfo->resources) { - metalink_resource_t **p; - metalink_resource root, *tail; - root.next = NULL; - tail = &root; - for(p = fileinfo->resources; *p; ++p) { - metalink_resource *res; - /* Filter by type if it is non-NULL. In Metalink v3, type - includes the type of the resource. In curl, we are only - interested in HTTP, HTTPS and FTP. In addition to them, - Metalink v3 file may contain bittorrent type URL, which - points to the BitTorrent metainfo file. We ignore it here. - In Metalink v4, type was deprecated and all - fileinfo->resources point to the target file. BitTorrent - metainfo file URL may be appeared in fileinfo->metaurls. - */ - if((*p)->type == NULL || - Curl_raw_equal((*p)->type, "http") || - Curl_raw_equal((*p)->type, "https") || - Curl_raw_equal((*p)->type, "ftp") || - Curl_raw_equal((*p)->type, "ftps")) { - res = new_metalink_resource((*p)->url); - tail->next = res; - tail = res; - } - } - f->resource = root.next; - } - return f; -} - -int parse_metalink(struct OperationConfig *config, struct OutStruct *outs, - const char *metalink_url) -{ - metalink_error_t r; - metalink_t* metalink; - metalink_file_t **files; - bool warnings = FALSE; - - /* metlaink_parse_final deletes outs->metalink_parser */ - r = metalink_parse_final(outs->metalink_parser, NULL, 0, &metalink); - outs->metalink_parser = NULL; - if(r != 0) { - return -1; - } - if(metalink->files == NULL) { - fprintf(config->global->errors, "Metalink: parsing (%s) WARNING " - "(missing or invalid file name)\n", - metalink_url); - metalink_delete(metalink); - return -1; - } - for(files = metalink->files; *files; ++files) { - struct getout *url; - /* Skip an entry which has no resource. */ - if(!(*files)->resources) { - fprintf(config->global->errors, "Metalink: parsing (%s) WARNING " - "(missing or invalid resource)\n", - metalink_url, (*files)->name); - continue; - } - if(config->url_get || - ((config->url_get = config->url_list) != NULL)) { - /* there's a node here, if it already is filled-in continue to - find an "empty" node */ - while(config->url_get && (config->url_get->flags & GETOUT_URL)) - config->url_get = config->url_get->next; - } - - /* now there might or might not be an available node to fill in! */ - - if(config->url_get) - /* existing node */ - url = config->url_get; - else - /* there was no free node, create one! */ - url = new_getout(config); - - if(url) { - metalinkfile *mlfile; - mlfile = new_metalinkfile(*files); - if(!mlfile->checksum) { - warnings = TRUE; - fprintf(config->global->errors, - "Metalink: parsing (%s) WARNING (digest missing)\n", - metalink_url); - } - /* Set name as url */ - GetStr(&url->url, mlfile->filename); - - /* set flag metalink here */ - url->flags |= GETOUT_URL | GETOUT_METALINK; - - if(config->metalinkfile_list) { - config->metalinkfile_last->next = mlfile; - config->metalinkfile_last = mlfile; - } - else { - config->metalinkfile_list = config->metalinkfile_last = mlfile; - } - } - } - metalink_delete(metalink); - return (warnings) ? -2 : 0; -} - -size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb, - void *userdata) -{ - struct OutStruct *outs = userdata; - struct OperationConfig *config = outs->config; - int rv; - - /* - * Once that libcurl has called back tool_write_cb() the returned value - * is checked against the amount that was intended to be written, if - * it does not match then it fails with CURLE_WRITE_ERROR. So at this - * point returning a value different from sz*nmemb indicates failure. - */ - const size_t failure = (sz * nmemb) ? 0 : 1; - - if(!config) - return failure; - - rv = metalink_parse_update(outs->metalink_parser, buffer, sz *nmemb); - if(rv == 0) - return sz * nmemb; - else { - fprintf(config->global->errors, "Metalink: parsing FAILED\n"); - return failure; - } -} - -/* - * Returns nonzero if content_type includes mediatype. - */ -static int check_content_type(const char *content_type, const char *media_type) -{ - const char *ptr = content_type; - size_t media_type_len = strlen(media_type); - for(; *ptr && (*ptr == ' ' || *ptr == '\t'); ++ptr); - if(!*ptr) { - return 0; - } - return Curl_raw_nequal(ptr, media_type, media_type_len) && - (*(ptr+media_type_len) == '\0' || *(ptr+media_type_len) == ' ' || - *(ptr+media_type_len) == '\t' || *(ptr+media_type_len) == ';'); -} - -int check_metalink_content_type(const char *content_type) -{ - return check_content_type(content_type, "application/metalink+xml"); -} - -int count_next_metalink_resource(metalinkfile *mlfile) -{ - int count = 0; - metalink_resource *res; - for(res = mlfile->resource; res; res = res->next, ++count); - return count; -} - -static void delete_metalink_checksum(metalink_checksum *chksum) -{ - if(chksum == NULL) { - return; - } - Curl_safefree(chksum->digest); - Curl_safefree(chksum); -} - -static void delete_metalink_resource(metalink_resource *res) -{ - if(res == NULL) { - return; - } - Curl_safefree(res->url); - Curl_safefree(res); -} - -static void delete_metalinkfile(metalinkfile *mlfile) -{ - metalink_resource *res; - if(mlfile == NULL) { - return; - } - Curl_safefree(mlfile->filename); - delete_metalink_checksum(mlfile->checksum); - for(res = mlfile->resource; res;) { - metalink_resource *next; - next = res->next; - delete_metalink_resource(res); - res = next; - } - Curl_safefree(mlfile); -} - -void clean_metalink(struct OperationConfig *config) -{ - while(config->metalinkfile_list) { - metalinkfile *mlfile = config->metalinkfile_list; - config->metalinkfile_list = config->metalinkfile_list->next; - delete_metalinkfile(mlfile); - } - config->metalinkfile_last = 0; -} - -void metalink_cleanup(void) -{ -#ifdef USE_NSS - if(nss_context) { - NSS_ShutdownContext(nss_context); - nss_context = NULL; - } -#endif -} - -#endif /* USE_METALINK */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_metalink.h b/external/libcurl_android/jni/libcurl/src/tool_metalink.h deleted file mode 100755 index 36859068..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_metalink.h +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef HEADER_CURL_TOOL_METALINK_H -#define HEADER_CURL_TOOL_METALINK_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -struct GlobalConfig; -struct OperationConfig; - -/* returns 1 for success, 0 otherwise (we use OpenSSL *_Init fncs directly) */ -typedef int (* Curl_digest_init_func)(void *context); - -typedef void (* Curl_digest_update_func)(void *context, - const unsigned char *data, - unsigned int len); -typedef void (* Curl_digest_final_func)(unsigned char *result, void *context); - -typedef struct { - Curl_digest_init_func digest_init; /* Initialize context procedure */ - Curl_digest_update_func digest_update; /* Update context with data */ - Curl_digest_final_func digest_final; /* Get final result procedure */ - unsigned int digest_ctxtsize; /* Context structure size */ - unsigned int digest_resultlen; /* Result length (bytes) */ -} digest_params; - -typedef struct { - const digest_params *digest_hash; /* Hash function definition */ - void *digest_hashctx; /* Hash function context */ -} digest_context; - -digest_context * Curl_digest_init(const digest_params *dparams); -int Curl_digest_update(digest_context *context, - const unsigned char *data, - unsigned int len); -int Curl_digest_final(digest_context *context, unsigned char *result); - -typedef struct { - const char *hash_name; - const digest_params *dparams; -} metalink_digest_def; - -typedef struct { - const char *alias_name; - const metalink_digest_def *digest_def; -} metalink_digest_alias; - -typedef struct metalink_checksum { - const metalink_digest_def *digest_def; - /* raw digest value, not ascii hex digest */ - unsigned char *digest; -} metalink_checksum; - -typedef struct metalink_resource { - struct metalink_resource *next; - char *url; -} metalink_resource; - -typedef struct metalinkfile { - struct metalinkfile *next; - char *filename; - metalink_checksum *checksum; - metalink_resource *resource; -} metalinkfile; - -#ifdef USE_METALINK - -/* - * curl requires libmetalink 0.1.0 or newer - */ -#define CURL_REQ_LIBMETALINK_MAJOR 0 -#define CURL_REQ_LIBMETALINK_MINOR 1 -#define CURL_REQ_LIBMETALINK_PATCH 0 - -#define CURL_REQ_LIBMETALINK_VERS ((CURL_REQ_LIBMETALINK_MAJOR * 10000) + \ - (CURL_REQ_LIBMETALINK_MINOR * 100) + \ - CURL_REQ_LIBMETALINK_PATCH) - -extern const digest_params MD5_DIGEST_PARAMS[1]; -extern const digest_params SHA1_DIGEST_PARAMS[1]; -extern const digest_params SHA256_DIGEST_PARAMS[1]; - -#include <metalink/metalink.h> - -/* - * Counts the resource in the metalinkfile. - */ -int count_next_metalink_resource(metalinkfile *mlfile); -void clean_metalink(struct OperationConfig *config); - -/* - * Performs final parse operation and extracts information from - * Metalink and creates metalinkfile structs. - * - * This function returns 0 if it succeeds without warnings, or one of - * the following negative error codes: - * - * -1: Parsing failed; or no file is found - * -2: Parsing succeeded with some warnings. - */ -int parse_metalink(struct OperationConfig *config, struct OutStruct *outs, - const char *metalink_url); - -/* - * Callback function for CURLOPT_WRITEFUNCTION - */ -size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb, - void *userdata); - -/* - * Returns nonzero if content_type includes "application/metalink+xml" - * media-type. The check is done in case-insensitive manner. - */ -int check_metalink_content_type(const char *content_type); - -/* - * Check checksum of file denoted by filename. - * - * This function returns 1 if the checksum matches or one of the - * following integers: - * - * 0: - * Checksum didn't match. - * -1: - * Could not open file; or could not read data from file. - * -2: - * No checksum in Metalink supported, hash algorithm not available, or - * Metalink does not contain checksum. - */ -int metalink_check_hash(struct GlobalConfig *config, - metalinkfile *mlfile, - const char *filename); - -/* - * Release resources allocated at global scope. - */ -void metalink_cleanup(void); - -#else /* USE_METALINK */ - -#define count_next_metalink_resource(x) 0 -#define clean_metalink(x) (void)x - -/* metalink_cleanup() takes no arguments */ -#define metalink_cleanup() Curl_nop_stmt - -#endif /* USE_METALINK */ - -#endif /* HEADER_CURL_TOOL_METALINK_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_mfiles.c b/external/libcurl_android/jni/libcurl/src/tool_mfiles.c deleted file mode 100755 index 3eda45f9..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_mfiles.c +++ /dev/null @@ -1,127 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "tool_mfiles.h" - -#include "memdebug.h" /* keep this as LAST include */ - -static void AppendNode(struct multi_files **first, - struct multi_files **last, - struct multi_files *new) -{ - DEBUGASSERT(((*first) && (*last)) || ((!*first) && (!*last))); - - if(*last) - (*last)->next = new; - else - *first = new; - *last = new; -} - -/* - * AddMultiFiles: Add a new list node possibly followed with a type_name. - * - * multi_first argument is the address of a pointer to the first element - * of the multi_files linked list. A NULL pointer indicates empty list. - * - * multi_last argument is the address of a pointer to the last element - * of the multi_files linked list. A NULL pointer indicates empty list. - * - * Pointers stored in multi_first and multi_last are modified while - * function is executed. An out of memory condition free's the whole - * list and returns with pointers stored in multi_first and multi_last - * set to NULL and a NULL function result. - * - * Function returns same pointer as stored at multi_last. - */ - -struct multi_files *AddMultiFiles(const char *file_name, - const char *type_name, - const char *show_filename, - struct multi_files **multi_first, - struct multi_files **multi_last) -{ - struct multi_files *multi; - struct multi_files *multi_type; - struct multi_files *multi_name; - - multi = calloc(1, sizeof(struct multi_files)); - if(multi) { - multi->form.option = CURLFORM_FILE; - multi->form.value = file_name; - AppendNode(multi_first, multi_last, multi); - } - else { - FreeMultiInfo(multi_first, multi_last); - return NULL; - } - - if(type_name) { - multi_type = calloc(1, sizeof(struct multi_files)); - if(multi_type) { - multi_type->form.option = CURLFORM_CONTENTTYPE; - multi_type->form.value = type_name; - AppendNode(multi_first, multi_last, multi_type); - } - else { - FreeMultiInfo(multi_first, multi_last); - return NULL; - } - } - - if(show_filename) { - multi_name = calloc(1, sizeof(struct multi_files)); - if(multi_name) { - multi_name->form.option = CURLFORM_FILENAME; - multi_name->form.value = show_filename; - AppendNode(multi_first, multi_last, multi_name); - } - else { - FreeMultiInfo(multi_first, multi_last); - return NULL; - } - } - - return *multi_last; -} - -/* - * FreeMultiInfo: Free the items of the list. - */ - -void FreeMultiInfo(struct multi_files **multi_first, - struct multi_files **multi_last) -{ - struct multi_files *next; - struct multi_files *item = *multi_first; - - while(item) { - next = item->next; - Curl_safefree(item); - item = next; - } - *multi_first = NULL; - if(multi_last) - *multi_last = NULL; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_mfiles.h b/external/libcurl_android/jni/libcurl/src/tool_mfiles.h deleted file mode 100755 index 1ea6f4a4..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_mfiles.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef HEADER_CURL_TOOL_MFILES_H -#define HEADER_CURL_TOOL_MFILES_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* - * Structure for storing the information needed to build - * a multiple files section. - */ - -struct multi_files { - struct curl_forms form; - struct multi_files *next; -}; - -struct multi_files *AddMultiFiles(const char *file_name, - const char *type_name, - const char *show_filename, - struct multi_files **multi_first, - struct multi_files **multi_last); - -void FreeMultiInfo(struct multi_files **multi_first, - struct multi_files **multi_last); - -#endif /* HEADER_CURL_TOOL_MFILES_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_msgs.c b/external/libcurl_android/jni/libcurl/src/tool_msgs.c deleted file mode 100755 index 3311b55f..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_msgs.c +++ /dev/null @@ -1,100 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_msgs.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#define WARN_PREFIX "Warning: " -#define WARN_TEXTWIDTH (79 - (int)strlen(WARN_PREFIX)) - -/* - * Emit warning formatted message on configured 'errors' stream unless - * mute (--silent) was selected. - */ - -void warnf(struct OperationConfig *config, const char *fmt, ...) -{ - if(!config->global->mute) { - va_list ap; - int len; - char *ptr; - char print_buffer[256]; - - va_start(ap, fmt); - len = vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap); - va_end(ap); - - ptr = print_buffer; - while(len > 0) { - fputs(WARN_PREFIX, config->global->errors); - - if(len > (int)WARN_TEXTWIDTH) { - int cut = WARN_TEXTWIDTH-1; - - while(!ISSPACE(ptr[cut]) && cut) { - cut--; - } - if(0 == cut) - /* not a single cutting position was found, just cut it at the - max text width then! */ - cut = WARN_TEXTWIDTH-1; - - (void)fwrite(ptr, cut + 1, 1, config->global->errors); - fputs("\n", config->global->errors); - ptr += cut+1; /* skip the space too */ - len -= cut; - } - else { - fputs(ptr, config->global->errors); - len = 0; - } - } - } -} - -/* - * Emit help formatted message on given stream. - */ - -void helpf(FILE *errors, const char *fmt, ...) -{ - va_list ap; - if(fmt) { - va_start(ap, fmt); - fputs("curl: ", errors); /* prefix it */ - vfprintf(errors, fmt, ap); - va_end(ap); - } - fprintf(errors, "curl: try 'curl --help' " -#ifdef USE_MANUAL - "or 'curl --manual' " -#endif - "for more information\n"); -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_msgs.h b/external/libcurl_android/jni/libcurl/src/tool_msgs.h deleted file mode 100755 index 15754690..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_msgs.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef HEADER_CURL_TOOL_MSGS_H -#define HEADER_CURL_TOOL_MSGS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -void warnf(struct OperationConfig *config, const char *fmt, ...); - -void helpf(FILE *errors, const char *fmt, ...); - -#endif /* HEADER_CURL_TOOL_MSGS_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_operate.c b/external/libcurl_android/jni/libcurl/src/tool_operate.c deleted file mode 100755 index fd2fd6dd..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_operate.c +++ /dev/null @@ -1,1858 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef HAVE_FCNTL_H -# include <fcntl.h> -#endif - -#ifdef HAVE_UTIME_H -# include <utime.h> -#elif defined(HAVE_SYS_UTIME_H) -# include <sys/utime.h> -#endif - -#ifdef HAVE_LOCALE_H -# include <locale.h> -#endif - -#ifdef HAVE_NETINET_TCP_H -# include <netinet/tcp.h> -#endif - -#ifdef __VMS -# include <fabdef.h> -#endif - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_binmode.h" -#include "tool_cfgable.h" -#include "tool_cb_dbg.h" -#include "tool_cb_hdr.h" -#include "tool_cb_prg.h" -#include "tool_cb_rea.h" -#include "tool_cb_see.h" -#include "tool_cb_wrt.h" -#include "tool_dirhie.h" -#include "tool_doswin.h" -#include "tool_easysrc.h" -#include "tool_getparam.h" -#include "tool_helpers.h" -#include "tool_homedir.h" -#include "tool_libinfo.h" -#include "tool_main.h" -#include "tool_metalink.h" -#include "tool_msgs.h" -#include "tool_operate.h" -#include "tool_operhlp.h" -#include "tool_paramhlp.h" -#include "tool_parsecfg.h" -#include "tool_setopt.h" -#include "tool_sleep.h" -#include "tool_urlglob.h" -#include "tool_util.h" -#include "tool_writeenv.h" -#include "tool_writeout.h" -#include "tool_xattr.h" -#include "tool_vms.h" -#include "tool_help.h" -#include "tool_hugehelp.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef CURLDEBUG -/* libcurl's debug builds provide an extra function */ -CURLcode curl_easy_perform_ev(CURL *easy); -#endif - -#define CURLseparator "--_curl_--" - -#ifndef O_BINARY -/* since O_BINARY as used in bitmasks, setting it to zero makes it usable in - source code but yet it doesn't ruin anything */ -# define O_BINARY 0 -#endif - -#define CURL_CA_CERT_ERRORMSG1 \ - "More details here: http://curl.haxx.se/docs/sslcerts.html\n\n" \ - "curl performs SSL certificate verification by default, " \ - "using a \"bundle\"\n" \ - " of Certificate Authority (CA) public keys (CA certs). If the default\n" \ - " bundle file isn't adequate, you can specify an alternate file\n" \ - " using the --cacert option.\n" - -#define CURL_CA_CERT_ERRORMSG2 \ - "If this HTTPS server uses a certificate signed by a CA represented in\n" \ - " the bundle, the certificate verification probably failed due to a\n" \ - " problem with the certificate (it might be expired, or the name might\n" \ - " not match the domain name in the URL).\n" \ - "If you'd like to turn off curl's verification of the certificate, use\n" \ - " the -k (or --insecure) option.\n" - -static bool is_fatal_error(CURLcode code) -{ - switch(code) { - /* TODO: Should CURLE_SSL_CACERT be included as critical error ? */ - case CURLE_FAILED_INIT: - case CURLE_OUT_OF_MEMORY: - case CURLE_UNKNOWN_OPTION: - case CURLE_FUNCTION_NOT_FOUND: - case CURLE_BAD_FUNCTION_ARGUMENT: - /* critical error */ - return TRUE; - default: - break; - } - - /* no error or not critical */ - return FALSE; -} - -#ifdef __VMS -/* - * get_vms_file_size does what it takes to get the real size of the file - * - * For fixed files, find out the size of the EOF block and adjust. - * - * For all others, have to read the entire file in, discarding the contents. - * Most posted text files will be small, and binary files like zlib archives - * and CD/DVD images should be either a STREAM_LF format or a fixed format. - * - */ -static curl_off_t vms_realfilesize(const char * name, - const struct_stat * stat_buf) -{ - char buffer[8192]; - curl_off_t count; - int ret_stat; - FILE * file; - - file = fopen(name, "r"); - if(file == NULL) { - return 0; - } - count = 0; - ret_stat = 1; - while(ret_stat > 0) { - ret_stat = fread(buffer, 1, sizeof(buffer), file); - if(ret_stat != 0) - count += ret_stat; - } - fclose(file); - - return count; -} - -/* - * - * VmsSpecialSize checks to see if the stat st_size can be trusted and - * if not to call a routine to get the correct size. - * - */ -static curl_off_t VmsSpecialSize(const char * name, - const struct_stat * stat_buf) -{ - switch(stat_buf->st_fab_rfm) { - case FAB$C_VAR: - case FAB$C_VFC: - return vms_realfilesize(name, stat_buf); - break; - default: - return stat_buf->st_size; - } -} -#endif /* __VMS */ - -static CURLcode operate_do(struct GlobalConfig *global, - struct OperationConfig *config) -{ - char errorbuffer[CURL_ERROR_SIZE]; - struct ProgressData progressbar; - struct getout *urlnode; - - struct HdrCbData hdrcbdata; - struct OutStruct heads; - - metalinkfile *mlfile_last = NULL; - - CURL *curl = config->easy; - char *httpgetfields = NULL; - - CURLcode res = CURLE_OK; - unsigned long li; - - /* Save the values of noprogress and isatty to restore them later on */ - bool orig_noprogress = global->noprogress; - bool orig_isatty = global->isatty; - - errorbuffer[0] = '\0'; - - /* default headers output stream is stdout */ - memset(&hdrcbdata, 0, sizeof(struct HdrCbData)); - memset(&heads, 0, sizeof(struct OutStruct)); - heads.stream = stdout; - heads.config = config; - - /* - ** Beyond this point no return'ing from this function allowed. - ** Jump to label 'quit_curl' in order to abandon this function - ** from outside of nested loops further down below. - */ - - /* Check we have a url */ - if(!config->url_list || !config->url_list->url) { - helpf(global->errors, "no URL specified!\n"); - res = CURLE_FAILED_INIT; - goto quit_curl; - } - - /* On WIN32 we can't set the path to curl-ca-bundle.crt - * at compile time. So we look here for the file in two ways: - * 1: look at the environment variable CURL_CA_BUNDLE for a path - * 2: if #1 isn't found, use the windows API function SearchPath() - * to find it along the app's path (includes app's dir and CWD) - * - * We support the environment variable thing for non-Windows platforms - * too. Just for the sake of it. - */ - if(!config->cacert && - !config->capath && - !config->insecure_ok) { - char *env; - env = curlx_getenv("CURL_CA_BUNDLE"); - if(env) { - config->cacert = strdup(env); - if(!config->cacert) { - curl_free(env); - helpf(global->errors, "out of memory\n"); - res = CURLE_OUT_OF_MEMORY; - goto quit_curl; - } - } - else { - env = curlx_getenv("SSL_CERT_DIR"); - if(env) { - config->capath = strdup(env); - if(!config->capath) { - curl_free(env); - helpf(global->errors, "out of memory\n"); - res = CURLE_OUT_OF_MEMORY; - goto quit_curl; - } - } - else { - env = curlx_getenv("SSL_CERT_FILE"); - if(env) { - config->cacert = strdup(env); - if(!config->cacert) { - curl_free(env); - helpf(global->errors, "out of memory\n"); - res = CURLE_OUT_OF_MEMORY; - goto quit_curl; - } - } - } - } - - if(env) - curl_free(env); -#ifdef WIN32 - else { - res = FindWin32CACert(config, "curl-ca-bundle.crt"); - if(res) - goto quit_curl; - } -#endif - } - - if(config->postfields) { - if(config->use_httpget) { - /* Use the postfields data for a http get */ - httpgetfields = strdup(config->postfields); - Curl_safefree(config->postfields); - if(!httpgetfields) { - helpf(global->errors, "out of memory\n"); - res = CURLE_OUT_OF_MEMORY; - goto quit_curl; - } - if(SetHTTPrequest(config, - (config->no_body?HTTPREQ_HEAD:HTTPREQ_GET), - &config->httpreq)) { - res = CURLE_FAILED_INIT; - goto quit_curl; - } - } - else { - if(SetHTTPrequest(config, HTTPREQ_SIMPLEPOST, &config->httpreq)) { - res = CURLE_FAILED_INIT; - goto quit_curl; - } - } - } - - /* Single header file for all URLs */ - if(config->headerfile) { - /* open file for output: */ - if(!curlx_strequal(config->headerfile, "-")) { - FILE *newfile = fopen(config->headerfile, "wb"); - if(!newfile) { - warnf(config, "Failed to open %s\n", config->headerfile); - res = CURLE_WRITE_ERROR; - goto quit_curl; - } - else { - heads.filename = config->headerfile; - heads.s_isreg = TRUE; - heads.fopened = TRUE; - heads.stream = newfile; - } - } - else { - /* always use binary mode for protocol header output */ - set_binmode(heads.stream); - } - } - - /* - ** Nested loops start here. - */ - - /* loop through the list of given URLs */ - - for(urlnode = config->url_list; urlnode; urlnode = urlnode->next) { - - unsigned long up; /* upload file counter within a single upload glob */ - char *infiles; /* might be a glob pattern */ - char *outfiles; - unsigned long infilenum; - URLGlob *inglob; - - int metalink = 0; /* nonzero for metalink download. */ - metalinkfile *mlfile; - metalink_resource *mlres; - - outfiles = NULL; - infilenum = 1; - inglob = NULL; - - if(urlnode->flags & GETOUT_METALINK) { - metalink = 1; - if(mlfile_last == NULL) { - mlfile_last = config->metalinkfile_list; - } - mlfile = mlfile_last; - mlfile_last = mlfile_last->next; - mlres = mlfile->resource; - } - else { - mlfile = NULL; - mlres = NULL; - } - - /* urlnode->url is the full URL (it might be NULL) */ - - if(!urlnode->url) { - /* This node has no URL. Free node data without destroying the - node itself nor modifying next pointer and continue to next */ - Curl_safefree(urlnode->outfile); - Curl_safefree(urlnode->infile); - urlnode->flags = 0; - continue; /* next URL please */ - } - - /* save outfile pattern before expansion */ - if(urlnode->outfile) { - outfiles = strdup(urlnode->outfile); - if(!outfiles) { - helpf(global->errors, "out of memory\n"); - res = CURLE_OUT_OF_MEMORY; - break; - } - } - - infiles = urlnode->infile; - - if(!config->globoff && infiles) { - /* Unless explicitly shut off */ - res = (CURLcode) glob_url(&inglob, infiles, &infilenum, - global->showerror?global->errors:NULL); - if(res) { - Curl_safefree(outfiles); - break; - } - } - - /* Here's the loop for uploading multiple files within the same - single globbed string. If no upload, we enter the loop once anyway. */ - for(up = 0 ; up < infilenum; up++) { - - char *uploadfile; /* a single file, never a glob */ - int separator; - URLGlob *urls; - unsigned long urlnum; - - uploadfile = NULL; - urls = NULL; - urlnum = 0; - - if(!up && !infiles) - Curl_nop_stmt; - else { - if(inglob) { - res = (CURLcode) glob_next_url(&uploadfile, inglob); - if(res == CURLE_OUT_OF_MEMORY) - helpf(global->errors, "out of memory\n"); - } - else if(!up) { - uploadfile = strdup(infiles); - if(!uploadfile) { - helpf(global->errors, "out of memory\n"); - res = CURLE_OUT_OF_MEMORY; - } - } - else - uploadfile = NULL; - if(!uploadfile) - break; - } - - if(metalink) { - /* For Metalink download, we don't use glob. Instead we use - the number of resources as urlnum. */ - urlnum = count_next_metalink_resource(mlfile); - } - else - if(!config->globoff) { - /* Unless explicitly shut off, we expand '{...}' and '[...]' - expressions and return total number of URLs in pattern set */ - res = (CURLcode) glob_url(&urls, urlnode->url, &urlnum, - global->showerror?global->errors:NULL); - if(res) { - Curl_safefree(uploadfile); - break; - } - } - else - urlnum = 1; /* without globbing, this is a single URL */ - - /* if multiple files extracted to stdout, insert separators! */ - separator= ((!outfiles || curlx_strequal(outfiles, "-")) && urlnum > 1); - - /* Here's looping around each globbed URL */ - for(li = 0 ; li < urlnum; li++) { - - int infd; - bool infdopen; - char *outfile; - struct OutStruct outs; - struct InStruct input; - struct timeval retrystart; - curl_off_t uploadfilesize; - long retry_numretries; - long retry_sleep_default; - long retry_sleep; - char *this_url = NULL; - int metalink_next_res = 0; - - outfile = NULL; - infdopen = FALSE; - infd = STDIN_FILENO; - uploadfilesize = -1; /* -1 means unknown */ - - /* default output stream is stdout */ - memset(&outs, 0, sizeof(struct OutStruct)); - outs.stream = stdout; - outs.config = config; - - if(metalink) { - /* For Metalink download, use name in Metalink file as - filename. */ - outfile = strdup(mlfile->filename); - if(!outfile) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - this_url = strdup(mlres->url); - if(!this_url) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - } - else { - if(urls) { - res = (CURLcode) glob_next_url(&this_url, urls); - if(res) - goto show_error; - } - else if(!li) { - this_url = strdup(urlnode->url); - if(!this_url) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - } - else - this_url = NULL; - if(!this_url) - break; - - if(outfiles) { - outfile = strdup(outfiles); - if(!outfile) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - } - } - - if(((urlnode->flags&GETOUT_USEREMOTE) || - (outfile && !curlx_strequal("-", outfile))) && - (metalink || !config->use_metalink)) { - - /* - * We have specified a file name to store the result in, or we have - * decided we want to use the remote file name. - */ - - if(!outfile) { - /* extract the file name from the URL */ - res = get_url_file_name(&outfile, this_url); - if(res) - goto show_error; - if((!outfile || !*outfile) && !config->content_disposition) { - helpf(global->errors, "Remote file name has no length!\n"); - res = CURLE_WRITE_ERROR; - goto quit_urls; - } -#if defined(MSDOS) || defined(WIN32) - /* For DOS and WIN32, we do some major replacing of - bad characters in the file name before using it */ - outfile = sanitize_dos_name(outfile); - if(!outfile) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } -#endif /* MSDOS || WIN32 */ - } - else if(urls) { - /* fill '#1' ... '#9' terms from URL pattern */ - char *storefile = outfile; - res = (CURLcode) glob_match_url(&outfile, storefile, urls); - Curl_safefree(storefile); - if(res) { - /* bad globbing */ - warnf(config, "bad output glob!\n"); - goto quit_urls; - } - } - - /* Create the directory hierarchy, if not pre-existent to a multiple - file output call */ - - if(config->create_dirs || metalink) { - res = create_dir_hierarchy(outfile, global->errors); - /* create_dir_hierarchy shows error upon CURLE_WRITE_ERROR */ - if(res == CURLE_WRITE_ERROR) - goto quit_urls; - if(res) { - goto show_error; - } - } - - if((urlnode->flags & GETOUT_USEREMOTE) - && config->content_disposition) { - /* Our header callback MIGHT set the filename */ - DEBUGASSERT(!outs.filename); - } - - if(config->resume_from_current) { - /* We're told to continue from where we are now. Get the size - of the file as it is now and open it for append instead */ - struct_stat fileinfo; - /* VMS -- Danger, the filesize is only valid for stream files */ - if(0 == stat(outfile, &fileinfo)) - /* set offset to current file size: */ - config->resume_from = fileinfo.st_size; - else - /* let offset be 0 */ - config->resume_from = 0; - } - - if(config->resume_from) { -#ifdef __VMS - /* open file for output, forcing VMS output format into stream - mode which is needed for stat() call above to always work. */ - FILE *file = fopen(outfile, config->resume_from?"ab":"wb", - "ctx=stm", "rfm=stmlf", "rat=cr", "mrs=0"); -#else - /* open file for output: */ - FILE *file = fopen(outfile, config->resume_from?"ab":"wb"); -#endif - if(!file) { - helpf(global->errors, "Can't open '%s'!\n", outfile); - res = CURLE_WRITE_ERROR; - goto quit_urls; - } - outs.fopened = TRUE; - outs.stream = file; - outs.init = config->resume_from; - } - else { - outs.stream = NULL; /* open when needed */ - } - outs.filename = outfile; - outs.s_isreg = TRUE; - } - - if(uploadfile && !stdin_upload(uploadfile)) { - /* - * We have specified a file to upload and it isn't "-". - */ - struct_stat fileinfo; - - this_url = add_file_name_to_url(curl, this_url, uploadfile); - if(!this_url) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - /* VMS Note: - * - * Reading binary from files can be a problem... Only FIXED, VAR - * etc WITHOUT implied CC will work Others need a \n appended to a - * line - * - * - Stat gives a size but this is UNRELIABLE in VMS As a f.e. a - * fixed file with implied CC needs to have a byte added for every - * record processed, this can by derived from Filesize & recordsize - * for VARiable record files the records need to be counted! for - * every record add 1 for linefeed and subtract 2 for the record - * header for VARIABLE header files only the bare record data needs - * to be considered with one appended if implied CC - */ -#ifdef __VMS - /* Calculate the real upload site for VMS */ - infd = -1; - if(stat(uploadfile, &fileinfo) == 0) { - fileinfo.st_size = VmsSpecialSize(uploadfile, &fileinfo); - switch (fileinfo.st_fab_rfm) { - case FAB$C_VAR: - case FAB$C_VFC: - case FAB$C_STMCR: - infd = open(uploadfile, O_RDONLY | O_BINARY); - break; - default: - infd = open(uploadfile, O_RDONLY | O_BINARY, - "rfm=stmlf", "ctx=stm"); - } - } - if(infd == -1) -#else - infd = open(uploadfile, O_RDONLY | O_BINARY); - if((infd == -1) || fstat(infd, &fileinfo)) -#endif - { - helpf(global->errors, "Can't open '%s'!\n", uploadfile); - if(infd != -1) { - close(infd); - infd = STDIN_FILENO; - } - res = CURLE_READ_ERROR; - goto quit_urls; - } - infdopen = TRUE; - - /* we ignore file size for char/block devices, sockets, etc. */ - if(S_ISREG(fileinfo.st_mode)) - uploadfilesize = fileinfo.st_size; - - } - else if(uploadfile && stdin_upload(uploadfile)) { - /* count to see if there are more than one auth bit set - in the authtype field */ - int authbits = 0; - int bitcheck = 0; - while(bitcheck < 32) { - if(config->authtype & (1UL << bitcheck++)) { - authbits++; - if(authbits > 1) { - /* more than one, we're done! */ - break; - } - } - } - - /* - * If the user has also selected --anyauth or --proxy-anyauth - * we should warn him/her. - */ - if(config->proxyanyauth || (authbits>1)) { - warnf(config, - "Using --anyauth or --proxy-anyauth with upload from stdin" - " involves a big risk of it not working. Use a temporary" - " file or a fixed auth type instead!\n"); - } - - DEBUGASSERT(infdopen == FALSE); - DEBUGASSERT(infd == STDIN_FILENO); - - set_binmode(stdin); - if(curlx_strequal(uploadfile, ".")) { - if(curlx_nonblock((curl_socket_t)infd, TRUE) < 0) - warnf(config, - "fcntl failed on fd=%d: %s\n", infd, strerror(errno)); - } - } - - if(uploadfile && config->resume_from_current) - config->resume_from = -1; /* -1 will then force get-it-yourself */ - - if(output_expected(this_url, uploadfile) && outs.stream && - isatty(fileno(outs.stream))) - /* we send the output to a tty, therefore we switch off the progress - meter */ - global->noprogress = global->isatty = TRUE; - else { - /* progress meter is per download, so restore config - values */ - global->noprogress = orig_noprogress; - global->isatty = orig_isatty; - } - - if(urlnum > 1 && !global->mute) { - fprintf(global->errors, "\n[%lu/%lu]: %s --> %s\n", - li+1, urlnum, this_url, outfile ? outfile : "<stdout>"); - if(separator) - printf("%s%s\n", CURLseparator, this_url); - } - if(httpgetfields) { - char *urlbuffer; - /* Find out whether the url contains a file name */ - const char *pc = strstr(this_url, "://"); - char sep = '?'; - if(pc) - pc += 3; - else - pc = this_url; - - pc = strrchr(pc, '/'); /* check for a slash */ - - if(pc) { - /* there is a slash present in the URL */ - - if(strchr(pc, '?')) - /* Ouch, there's already a question mark in the URL string, we - then append the data with an ampersand separator instead! */ - sep='&'; - } - /* - * Then append ? followed by the get fields to the url. - */ - if(pc) - urlbuffer = aprintf("%s%c%s", this_url, sep, httpgetfields); - else - /* Append / before the ? to create a well-formed url - if the url contains a hostname only - */ - urlbuffer = aprintf("%s/?%s", this_url, httpgetfields); - - if(!urlbuffer) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - - Curl_safefree(this_url); /* free previous URL */ - this_url = urlbuffer; /* use our new URL instead! */ - } - - if(!global->errors) - global->errors = stderr; - - if((!outfile || !strcmp(outfile, "-")) && !config->use_ascii) { - /* We get the output to stdout and we have not got the ASCII/text - flag, then set stdout to be binary */ - set_binmode(stdout); - } - - if(config->tcp_nodelay) - my_setopt(curl, CURLOPT_TCP_NODELAY, 1L); - - /* where to store */ - my_setopt(curl, CURLOPT_WRITEDATA, &outs); - if(metalink || !config->use_metalink) - /* what call to write */ - my_setopt(curl, CURLOPT_WRITEFUNCTION, tool_write_cb); -#ifdef USE_METALINK - else - /* Set Metalink specific write callback function to parse - XML data progressively. */ - my_setopt(curl, CURLOPT_WRITEFUNCTION, metalink_write_cb); -#endif /* USE_METALINK */ - - /* for uploads */ - input.fd = infd; - input.config = config; - /* Note that if CURLOPT_READFUNCTION is fread (the default), then - * lib/telnet.c will Curl_poll() on the input file descriptor - * rather then calling the READFUNCTION at regular intervals. - * The circumstances in which it is preferable to enable this - * behaviour, by omitting to set the READFUNCTION & READDATA options, - * have not been determined. - */ - my_setopt(curl, CURLOPT_READDATA, &input); - /* what call to read */ - my_setopt(curl, CURLOPT_READFUNCTION, tool_read_cb); - - /* in 7.18.0, the CURLOPT_SEEKFUNCTION/DATA pair is taking over what - CURLOPT_IOCTLFUNCTION/DATA pair previously provided for seeking */ - my_setopt(curl, CURLOPT_SEEKDATA, &input); - my_setopt(curl, CURLOPT_SEEKFUNCTION, tool_seek_cb); - - if(config->recvpersecond) - /* tell libcurl to use a smaller sized buffer as it allows us to - make better sleeps! 7.9.9 stuff! */ - my_setopt(curl, CURLOPT_BUFFERSIZE, (long)config->recvpersecond); - - /* size of uploaded file: */ - if(uploadfilesize != -1) - my_setopt(curl, CURLOPT_INFILESIZE_LARGE, uploadfilesize); - my_setopt_str(curl, CURLOPT_URL, this_url); /* what to fetch */ - my_setopt(curl, CURLOPT_NOPROGRESS, global->noprogress?1L:0L); - if(config->no_body) { - my_setopt(curl, CURLOPT_NOBODY, 1L); - my_setopt(curl, CURLOPT_HEADER, 1L); - } - /* If --metalink is used, we ignore --include (headers in - output) option because mixing headers to the body will - confuse XML parser and/or hash check will fail. */ - else if(!config->use_metalink) - my_setopt(curl, CURLOPT_HEADER, config->include_headers?1L:0L); - - if(config->xoauth2_bearer) - my_setopt_str(curl, CURLOPT_XOAUTH2_BEARER, config->xoauth2_bearer); - -#if !defined(CURL_DISABLE_PROXY) - { - /* TODO: Make this a run-time check instead of compile-time one. */ - - my_setopt_str(curl, CURLOPT_PROXY, config->proxy); - my_setopt_str(curl, CURLOPT_PROXYUSERPWD, config->proxyuserpwd); - - /* new in libcurl 7.3 */ - my_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, config->proxytunnel?1L:0L); - - /* new in libcurl 7.5 */ - if(config->proxy) - my_setopt_enum(curl, CURLOPT_PROXYTYPE, (long)config->proxyver); - - /* new in libcurl 7.10 */ - if(config->socksproxy) { - my_setopt_str(curl, CURLOPT_PROXY, config->socksproxy); - my_setopt_enum(curl, CURLOPT_PROXYTYPE, (long)config->socksver); - } - - /* new in libcurl 7.10.6 */ - if(config->proxyanyauth) - my_setopt_bitmask(curl, CURLOPT_PROXYAUTH, - (long)CURLAUTH_ANY); - else if(config->proxynegotiate) - my_setopt_bitmask(curl, CURLOPT_PROXYAUTH, - (long)CURLAUTH_GSSNEGOTIATE); - else if(config->proxyntlm) - my_setopt_bitmask(curl, CURLOPT_PROXYAUTH, - (long)CURLAUTH_NTLM); - else if(config->proxydigest) - my_setopt_bitmask(curl, CURLOPT_PROXYAUTH, - (long)CURLAUTH_DIGEST); - else if(config->proxybasic) - my_setopt_bitmask(curl, CURLOPT_PROXYAUTH, - (long)CURLAUTH_BASIC); - - /* new in libcurl 7.19.4 */ - my_setopt(curl, CURLOPT_NOPROXY, config->noproxy); - } -#endif - - my_setopt(curl, CURLOPT_FAILONERROR, config->failonerror?1L:0L); - my_setopt(curl, CURLOPT_UPLOAD, uploadfile?1L:0L); - my_setopt(curl, CURLOPT_DIRLISTONLY, config->dirlistonly?1L:0L); - my_setopt(curl, CURLOPT_APPEND, config->ftp_append?1L:0L); - - if(config->netrc_opt) - my_setopt_enum(curl, CURLOPT_NETRC, (long)CURL_NETRC_OPTIONAL); - else if(config->netrc || config->netrc_file) - my_setopt_enum(curl, CURLOPT_NETRC, (long)CURL_NETRC_REQUIRED); - else - my_setopt_enum(curl, CURLOPT_NETRC, (long)CURL_NETRC_IGNORED); - - if(config->netrc_file) - my_setopt(curl, CURLOPT_NETRC_FILE, config->netrc_file); - - my_setopt(curl, CURLOPT_TRANSFERTEXT, config->use_ascii?1L:0L); - if(config->login_options) - my_setopt_str(curl, CURLOPT_LOGIN_OPTIONS, config->login_options); - my_setopt_str(curl, CURLOPT_USERPWD, config->userpwd); - my_setopt_str(curl, CURLOPT_RANGE, config->range); - my_setopt(curl, CURLOPT_ERRORBUFFER, errorbuffer); - my_setopt(curl, CURLOPT_TIMEOUT_MS, (long)(config->timeout * 1000)); - - if(built_in_protos & CURLPROTO_HTTP) { - - long postRedir = 0; - - my_setopt(curl, CURLOPT_FOLLOWLOCATION, - config->followlocation?1L:0L); - my_setopt(curl, CURLOPT_UNRESTRICTED_AUTH, - config->unrestricted_auth?1L:0L); - - switch(config->httpreq) { - case HTTPREQ_SIMPLEPOST: - my_setopt_str(curl, CURLOPT_POSTFIELDS, - config->postfields); - my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, - config->postfieldsize); - break; - case HTTPREQ_POST: - my_setopt_httppost(curl, CURLOPT_HTTPPOST, config->httppost); - break; - default: - break; - } - - my_setopt_str(curl, CURLOPT_REFERER, config->referer); - my_setopt(curl, CURLOPT_AUTOREFERER, config->autoreferer?1L:0L); - my_setopt_str(curl, CURLOPT_USERAGENT, config->useragent); - my_setopt_slist(curl, CURLOPT_HTTPHEADER, config->headers); - - /* new in libcurl 7.36.0 */ - if(config->proxyheaders) { - my_setopt_slist(curl, CURLOPT_PROXYHEADER, config->proxyheaders); - my_setopt(curl, CURLOPT_HEADEROPT, CURLHEADER_SEPARATE); - } - - /* new in libcurl 7.5 */ - my_setopt(curl, CURLOPT_MAXREDIRS, config->maxredirs); - - /* new in libcurl 7.9.1 */ - if(config->httpversion) - my_setopt_enum(curl, CURLOPT_HTTP_VERSION, config->httpversion); - - /* new in libcurl 7.10.6 (default is Basic) */ - if(config->authtype) - my_setopt_bitmask(curl, CURLOPT_HTTPAUTH, (long)config->authtype); - - /* curl 7.19.1 (the 301 version existed in 7.18.2), - 303 was added in 7.26.0 */ - if(config->post301) - postRedir |= CURL_REDIR_POST_301; - if(config->post302) - postRedir |= CURL_REDIR_POST_302; - if(config->post303) - postRedir |= CURL_REDIR_POST_303; - my_setopt(curl, CURLOPT_POSTREDIR, postRedir); - - /* new in libcurl 7.21.6 */ - if(config->encoding) - my_setopt_str(curl, CURLOPT_ACCEPT_ENCODING, ""); - - /* new in libcurl 7.21.6 */ - if(config->tr_encoding) - my_setopt(curl, CURLOPT_TRANSFER_ENCODING, 1L); - - } /* (built_in_protos & CURLPROTO_HTTP) */ - - my_setopt_str(curl, CURLOPT_FTPPORT, config->ftpport); - my_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, - config->low_speed_limit); - my_setopt(curl, CURLOPT_LOW_SPEED_TIME, config->low_speed_time); - my_setopt(curl, CURLOPT_MAX_SEND_SPEED_LARGE, - config->sendpersecond); - my_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, - config->recvpersecond); - - if(config->use_resume) - my_setopt(curl, CURLOPT_RESUME_FROM_LARGE, config->resume_from); - else - my_setopt(curl, CURLOPT_RESUME_FROM_LARGE, CURL_OFF_T_C(0)); - - my_setopt_str(curl, CURLOPT_SSLCERT, config->cert); - my_setopt_str(curl, CURLOPT_SSLCERTTYPE, config->cert_type); - my_setopt_str(curl, CURLOPT_SSLKEY, config->key); - my_setopt_str(curl, CURLOPT_SSLKEYTYPE, config->key_type); - my_setopt_str(curl, CURLOPT_KEYPASSWD, config->key_passwd); - - if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) { - - /* SSH and SSL private key uses same command-line option */ - /* new in libcurl 7.16.1 */ - my_setopt_str(curl, CURLOPT_SSH_PRIVATE_KEYFILE, config->key); - /* new in libcurl 7.16.1 */ - my_setopt_str(curl, CURLOPT_SSH_PUBLIC_KEYFILE, config->pubkey); - - /* new in libcurl 7.17.1: SSH host key md5 checking allows us - to fail if we are not talking to who we think we should */ - my_setopt_str(curl, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5, - config->hostpubmd5); - } - - if(config->cacert) - my_setopt_str(curl, CURLOPT_CAINFO, config->cacert); - if(config->capath) - my_setopt_str(curl, CURLOPT_CAPATH, config->capath); - if(config->crlfile) - my_setopt_str(curl, CURLOPT_CRLFILE, config->crlfile); - - if(curlinfo->features & CURL_VERSION_SSL) { - if(config->insecure_ok) { - my_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); - my_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); - } - else { - my_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L); - /* libcurl default is strict verifyhost -> 2L */ - /* my_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); */ - } - } - - if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) { - if(!config->insecure_ok) { - char *home; - char *file; - res = CURLE_OUT_OF_MEMORY; - home = homedir(); - if(home) { - file = aprintf("%s/%sssh/known_hosts", home, DOT_CHAR); - if(file) { - /* new in curl 7.19.6 */ - res = res_setopt_str(curl, CURLOPT_SSH_KNOWNHOSTS, file); - curl_free(file); - if(res == CURLE_UNKNOWN_OPTION) - /* libssh2 version older than 1.1.1 */ - res = CURLE_OK; - } - Curl_safefree(home); - } - if(res) - goto show_error; - } - } - - if(config->no_body || config->remote_time) { - /* no body or use remote time */ - my_setopt(curl, CURLOPT_FILETIME, 1L); - } - - my_setopt(curl, CURLOPT_CRLF, config->crlf?1L:0L); - my_setopt_slist(curl, CURLOPT_QUOTE, config->quote); - my_setopt_slist(curl, CURLOPT_POSTQUOTE, config->postquote); - my_setopt_slist(curl, CURLOPT_PREQUOTE, config->prequote); - -#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES) - if(config->cookie) - my_setopt_str(curl, CURLOPT_COOKIE, config->cookie); - - if(config->cookiefile) - my_setopt_str(curl, CURLOPT_COOKIEFILE, config->cookiefile); - - /* new in libcurl 7.9 */ - if(config->cookiejar) - my_setopt_str(curl, CURLOPT_COOKIEJAR, config->cookiejar); - - /* new in libcurl 7.9.7 */ - my_setopt(curl, CURLOPT_COOKIESESSION, config->cookiesession?1L:0L); -#else - if(config->cookie || config->cookiefile || config->cookiejar) { - warnf(config, "cookie option(s) used even though cookie support " - "is disabled!\n"); - return CURLE_NOT_BUILT_IN; - } -#endif - - my_setopt_enum(curl, CURLOPT_SSLVERSION, config->ssl_version); - my_setopt_enum(curl, CURLOPT_TIMECONDITION, (long)config->timecond); - my_setopt(curl, CURLOPT_TIMEVALUE, (long)config->condtime); - my_setopt_str(curl, CURLOPT_CUSTOMREQUEST, config->customrequest); - my_setopt(curl, CURLOPT_STDERR, global->errors); - - /* three new ones in libcurl 7.3: */ - my_setopt_str(curl, CURLOPT_INTERFACE, config->iface); - my_setopt_str(curl, CURLOPT_KRBLEVEL, config->krblevel); - - progressbarinit(&progressbar, config); - if((global->progressmode == CURL_PROGRESS_BAR) && - !global->noprogress && !global->mute) { - /* we want the alternative style, then we have to implement it - ourselves! */ - my_setopt(curl, CURLOPT_XFERINFOFUNCTION, tool_progress_cb); - my_setopt(curl, CURLOPT_XFERINFODATA, &progressbar); - } - - /* new in libcurl 7.24.0: */ - if(config->dns_servers) - my_setopt_str(curl, CURLOPT_DNS_SERVERS, config->dns_servers); - - /* new in libcurl 7.33.0: */ - if(config->dns_interface) - my_setopt_str(curl, CURLOPT_DNS_INTERFACE, config->dns_interface); - if(config->dns_ipv4_addr) - my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP4, config->dns_ipv4_addr); - if(config->dns_ipv6_addr) - my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP6, config->dns_ipv6_addr); - - /* new in libcurl 7.6.2: */ - my_setopt_slist(curl, CURLOPT_TELNETOPTIONS, config->telnet_options); - - /* new in libcurl 7.7: */ - my_setopt_str(curl, CURLOPT_RANDOM_FILE, config->random_file); - my_setopt_str(curl, CURLOPT_EGDSOCKET, config->egd_file); - my_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS, - (long)(config->connecttimeout * 1000)); - - if(config->cipher_list) - my_setopt_str(curl, CURLOPT_SSL_CIPHER_LIST, config->cipher_list); - - /* new in libcurl 7.9.2: */ - if(config->disable_epsv) - /* disable it */ - my_setopt(curl, CURLOPT_FTP_USE_EPSV, 0L); - - /* new in libcurl 7.10.5 */ - if(config->disable_eprt) - /* disable it */ - my_setopt(curl, CURLOPT_FTP_USE_EPRT, 0L); - - if(global->tracetype != TRACE_NONE) { - my_setopt(curl, CURLOPT_DEBUGFUNCTION, tool_debug_cb); - my_setopt(curl, CURLOPT_DEBUGDATA, config); - my_setopt(curl, CURLOPT_VERBOSE, 1L); - } - - /* new in curl 7.9.3 */ - if(config->engine) { - res = res_setopt_str(curl, CURLOPT_SSLENGINE, config->engine); - if(res) - goto show_error; - my_setopt(curl, CURLOPT_SSLENGINE_DEFAULT, 1L); - } - - /* new in curl 7.10.7, extended in 7.19.4 but this only sets 0 or 1 */ - my_setopt(curl, CURLOPT_FTP_CREATE_MISSING_DIRS, - config->ftp_create_dirs?1L:0L); - - /* new in curl 7.10.8 */ - if(config->max_filesize) - my_setopt(curl, CURLOPT_MAXFILESIZE_LARGE, - config->max_filesize); - - if(4 == config->ip_version) - my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); - else if(6 == config->ip_version) - my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6); - else - my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER); - - /* new in curl 7.15.5 */ - if(config->ftp_ssl_reqd) - my_setopt_enum(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL); - - /* new in curl 7.11.0 */ - else if(config->ftp_ssl) - my_setopt_enum(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_TRY); - - /* new in curl 7.16.0 */ - else if(config->ftp_ssl_control) - my_setopt_enum(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_CONTROL); - - /* new in curl 7.16.1 */ - if(config->ftp_ssl_ccc) - my_setopt_enum(curl, CURLOPT_FTP_SSL_CCC, - (long)config->ftp_ssl_ccc_mode); - -#if defined(HAVE_GSSAPI) || defined(USE_WINDOWS_SSPI) - { - /* TODO: Make this a run-time check instead of compile-time one. */ - - /* new in curl 7.19.4 */ - if(config->socks5_gssapi_service) - my_setopt_str(curl, CURLOPT_SOCKS5_GSSAPI_SERVICE, - config->socks5_gssapi_service); - - /* new in curl 7.19.4 */ - if(config->socks5_gssapi_nec) - my_setopt_str(curl, CURLOPT_SOCKS5_GSSAPI_NEC, - config->socks5_gssapi_nec); - } -#endif - /* curl 7.13.0 */ - my_setopt_str(curl, CURLOPT_FTP_ACCOUNT, config->ftp_account); - - my_setopt(curl, CURLOPT_IGNORE_CONTENT_LENGTH, config->ignorecl?1L:0L); - - /* curl 7.14.2 */ - my_setopt(curl, CURLOPT_FTP_SKIP_PASV_IP, config->ftp_skip_ip?1L:0L); - - /* curl 7.15.1 */ - my_setopt(curl, CURLOPT_FTP_FILEMETHOD, (long)config->ftp_filemethod); - - /* curl 7.15.2 */ - if(config->localport) { - my_setopt(curl, CURLOPT_LOCALPORT, (long)config->localport); - my_setopt_str(curl, CURLOPT_LOCALPORTRANGE, - (long)config->localportrange); - } - - /* curl 7.15.5 */ - my_setopt_str(curl, CURLOPT_FTP_ALTERNATIVE_TO_USER, - config->ftp_alternative_to_user); - - /* curl 7.16.0 */ - if(config->disable_sessionid) - /* disable it */ - my_setopt(curl, CURLOPT_SSL_SESSIONID_CACHE, 0L); - - /* curl 7.16.2 */ - if(config->raw) { - my_setopt(curl, CURLOPT_HTTP_CONTENT_DECODING, 0L); - my_setopt(curl, CURLOPT_HTTP_TRANSFER_DECODING, 0L); - } - - /* curl 7.17.1 */ - if(!config->nokeepalive) { - my_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L); - if(config->alivetime != 0) { -#if !defined(TCP_KEEPIDLE) || !defined(TCP_KEEPINTVL) - warnf(config, "Keep-alive functionality somewhat crippled due to " - "missing support in your operating system!\n"); -#endif - my_setopt(curl, CURLOPT_TCP_KEEPIDLE, config->alivetime); - my_setopt(curl, CURLOPT_TCP_KEEPINTVL, config->alivetime); - } - } - else - my_setopt(curl, CURLOPT_TCP_KEEPALIVE, 0L); - - /* curl 7.20.0 */ - if(config->tftp_blksize) - my_setopt(curl, CURLOPT_TFTP_BLKSIZE, config->tftp_blksize); - - if(config->mail_from) - my_setopt_str(curl, CURLOPT_MAIL_FROM, config->mail_from); - - if(config->mail_rcpt) - my_setopt_slist(curl, CURLOPT_MAIL_RCPT, config->mail_rcpt); - - /* curl 7.20.x */ - if(config->ftp_pret) - my_setopt(curl, CURLOPT_FTP_USE_PRET, 1L); - - if(config->proto_present) - my_setopt_flags(curl, CURLOPT_PROTOCOLS, config->proto); - if(config->proto_redir_present) - my_setopt_flags(curl, CURLOPT_REDIR_PROTOCOLS, config->proto_redir); - - if(config->content_disposition - && (urlnode->flags & GETOUT_USEREMOTE) - && (checkprefix("http://", this_url) || - checkprefix("https://", this_url))) - hdrcbdata.honor_cd_filename = TRUE; - else - hdrcbdata.honor_cd_filename = FALSE; - - hdrcbdata.outs = &outs; - hdrcbdata.heads = &heads; - - my_setopt(curl, CURLOPT_HEADERFUNCTION, tool_header_cb); - my_setopt(curl, CURLOPT_HEADERDATA, &hdrcbdata); - - if(config->resolve) - /* new in 7.21.3 */ - my_setopt_slist(curl, CURLOPT_RESOLVE, config->resolve); - - /* new in 7.21.4 */ - if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) { - if(config->tls_username) - my_setopt_str(curl, CURLOPT_TLSAUTH_USERNAME, - config->tls_username); - if(config->tls_password) - my_setopt_str(curl, CURLOPT_TLSAUTH_PASSWORD, - config->tls_password); - if(config->tls_authtype) - my_setopt_str(curl, CURLOPT_TLSAUTH_TYPE, - config->tls_authtype); - } - - /* new in 7.22.0 */ - if(config->gssapi_delegation) - my_setopt_str(curl, CURLOPT_GSSAPI_DELEGATION, - config->gssapi_delegation); - - /* new in 7.25.0 */ - if(config->ssl_allow_beast) - my_setopt(curl, CURLOPT_SSL_OPTIONS, (long)CURLSSLOPT_ALLOW_BEAST); - - if(config->mail_auth) - my_setopt_str(curl, CURLOPT_MAIL_AUTH, config->mail_auth); - - /* new in 7.31.0 */ - if(config->sasl_ir) - my_setopt(curl, CURLOPT_SASL_IR, 1L); - - if(config->nonpn) { - my_setopt(curl, CURLOPT_SSL_ENABLE_NPN, 0L); - } - - if(config->noalpn) { - my_setopt(curl, CURLOPT_SSL_ENABLE_ALPN, 0L); - } - - /* initialize retry vars for loop below */ - retry_sleep_default = (config->retry_delay) ? - config->retry_delay*1000L : RETRY_SLEEP_DEFAULT; /* ms */ - - retry_numretries = config->req_retry; - retry_sleep = retry_sleep_default; /* ms */ - retrystart = tvnow(); - -#ifndef CURL_DISABLE_LIBCURL_OPTION - res = easysrc_perform(); - if(res) { - goto show_error; - } -#endif - - for(;;) { -#ifdef USE_METALINK - if(!metalink && config->use_metalink) { - /* If outs.metalink_parser is non-NULL, delete it first. */ - if(outs.metalink_parser) - metalink_parser_context_delete(outs.metalink_parser); - outs.metalink_parser = metalink_parser_context_new(); - if(outs.metalink_parser == NULL) { - res = CURLE_OUT_OF_MEMORY; - goto show_error; - } - fprintf(config->global->errors, - "Metalink: parsing (%s) metalink/XML...\n", this_url); - } - else if(metalink) - fprintf(config->global->errors, - "Metalink: fetching (%s) from (%s)...\n", - mlfile->filename, this_url); -#endif /* USE_METALINK */ - -#ifdef CURLDEBUG - if(config->test_event_based) - res = curl_easy_perform_ev(curl); - else -#endif - res = curl_easy_perform(curl); - - if(outs.is_cd_filename && outs.stream && !global->mute && - outs.filename) - printf("curl: Saved to filename '%s'\n", outs.filename); - - /* if retry-max-time is non-zero, make sure we haven't exceeded the - time */ - if(retry_numretries && - (!config->retry_maxtime || - (tvdiff(tvnow(), retrystart) < - config->retry_maxtime*1000L)) ) { - enum { - RETRY_NO, - RETRY_TIMEOUT, - RETRY_HTTP, - RETRY_FTP, - RETRY_LAST /* not used */ - } retry = RETRY_NO; - long response; - if((CURLE_OPERATION_TIMEDOUT == res) || - (CURLE_COULDNT_RESOLVE_HOST == res) || - (CURLE_COULDNT_RESOLVE_PROXY == res) || - (CURLE_FTP_ACCEPT_TIMEOUT == res)) - /* retry timeout always */ - retry = RETRY_TIMEOUT; - else if((CURLE_OK == res) || - (config->failonerror && - (CURLE_HTTP_RETURNED_ERROR == res))) { - /* If it returned OK. _or_ failonerror was enabled and it - returned due to such an error, check for HTTP transient - errors to retry on. */ - char *effective_url = NULL; - curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url); - if(effective_url && - checkprefix("http", effective_url)) { - /* This was HTTP(S) */ - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response); - - switch(response) { - case 500: /* Internal Server Error */ - case 502: /* Bad Gateway */ - case 503: /* Service Unavailable */ - case 504: /* Gateway Timeout */ - retry = RETRY_HTTP; - /* - * At this point, we have already written data to the output - * file (or terminal). If we write to a file, we must rewind - * or close/re-open the file so that the next attempt starts - * over from the beginning. - * - * TODO: similar action for the upload case. We might need - * to start over reading from a previous point if we have - * uploaded something when this was returned. - */ - break; - } - } - } /* if CURLE_OK */ - else if(res) { - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response); - - if(response/100 == 4) - /* - * This is typically when the FTP server only allows a certain - * amount of users and we are not one of them. All 4xx codes - * are transient. - */ - retry = RETRY_FTP; - } - - if(retry) { - static const char * const m[]={ - NULL, "timeout", "HTTP error", "FTP error" - }; - warnf(config, "Transient problem: %s " - "Will retry in %ld seconds. " - "%ld retries left.\n", - m[retry], retry_sleep/1000L, retry_numretries); - - tool_go_sleep(retry_sleep); - retry_numretries--; - if(!config->retry_delay) { - retry_sleep *= 2; - if(retry_sleep > RETRY_SLEEP_MAX) - retry_sleep = RETRY_SLEEP_MAX; - } - if(outs.bytes && outs.filename) { - /* We have written data to a output file, we truncate file - */ - if(!global->mute) - fprintf(global->errors, "Throwing away %" - CURL_FORMAT_CURL_OFF_T " bytes\n", - outs.bytes); - fflush(outs.stream); - /* truncate file at the position where we started appending */ -#ifdef HAVE_FTRUNCATE - if(ftruncate( fileno(outs.stream), outs.init)) { - /* when truncate fails, we can't just append as then we'll - create something strange, bail out */ - if(!global->mute) - fprintf(global->errors, - "failed to truncate, exiting\n"); - res = CURLE_WRITE_ERROR; - goto quit_urls; - } - /* now seek to the end of the file, the position where we - just truncated the file in a large file-safe way */ - fseek(outs.stream, 0, SEEK_END); -#else - /* ftruncate is not available, so just reposition the file - to the location we would have truncated it. This won't - work properly with large files on 32-bit systems, but - most of those will have ftruncate. */ - fseek(outs.stream, (long)outs.init, SEEK_SET); -#endif - outs.bytes = 0; /* clear for next round */ - } - continue; /* curl_easy_perform loop */ - } - } /* if retry_numretries */ - else if(metalink) { - /* Metalink: Decide to try the next resource or - not. Basically, we want to try the next resource if - download was not successful. */ - long response; - if(CURLE_OK == res) { - /* TODO We want to try next resource when download was - not successful. How to know that? */ - char *effective_url = NULL; - curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url); - if(effective_url && - curlx_strnequal(effective_url, "http", 4)) { - /* This was HTTP(S) */ - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response); - if(response != 200 && response != 206) { - metalink_next_res = 1; - fprintf(global->errors, - "Metalink: fetching (%s) from (%s) FAILED " - "(HTTP status code %d)\n", - mlfile->filename, this_url, response); - } - } - } - else { - metalink_next_res = 1; - fprintf(global->errors, - "Metalink: fetching (%s) from (%s) FAILED (%s)\n", - mlfile->filename, this_url, - (errorbuffer[0]) ? - errorbuffer : curl_easy_strerror((CURLcode)res)); - } - } - if(metalink && !metalink_next_res) - fprintf(global->errors, "Metalink: fetching (%s) from (%s) OK\n", - mlfile->filename, this_url); - - /* In all ordinary cases, just break out of loop here */ - break; /* curl_easy_perform loop */ - - } - - if((global->progressmode == CURL_PROGRESS_BAR) && - progressbar.calls) - /* if the custom progress bar has been displayed, we output a - newline here */ - fputs("\n", progressbar.out); - - if(config->writeout) - ourWriteOut(curl, &outs, config->writeout); - - if(config->writeenv) - ourWriteEnv(curl); - - /* - ** Code within this loop may jump directly here to label 'show_error' - ** in order to display an error message for CURLcode stored in 'res' - ** variable and exit loop once that necessary writing and cleanup - ** in label 'quit_urls' has been done. - */ - - show_error: - -#ifdef __VMS - if(is_vms_shell()) { - /* VMS DCL shell behavior */ - if(!global->showerror) - vms_show = VMSSTS_HIDE; - } - else -#endif - if(res && global->showerror) { - fprintf(global->errors, "curl: (%d) %s\n", res, (errorbuffer[0]) ? - errorbuffer : curl_easy_strerror((CURLcode)res)); - if(res == CURLE_SSL_CACERT) - fprintf(global->errors, "%s%s", - CURL_CA_CERT_ERRORMSG1, CURL_CA_CERT_ERRORMSG2); - } - - /* Fall through comment to 'quit_urls' label */ - - /* - ** Upon error condition and always that a message has already been - ** displayed, code within this loop may jump directly here to label - ** 'quit_urls' otherwise it should jump to 'show_error' label above. - ** - ** When 'res' variable is _not_ CURLE_OK loop will exit once that - ** all code following 'quit_urls' has been executed. Otherwise it - ** will loop to the beginning from where it may exit if there are - ** no more urls left. - */ - - quit_urls: - - /* Set file extended attributes */ - if(!res && config->xattr && outs.fopened && outs.stream) { - int rc = fwrite_xattr(curl, fileno(outs.stream)); - if(rc) - warnf(config, "Error setting extended attributes: %s\n", - strerror(errno)); - } - - /* Close the file */ - if(outs.fopened && outs.stream) { - int rc = fclose(outs.stream); - if(!res && rc) { - /* something went wrong in the writing process */ - res = CURLE_WRITE_ERROR; - fprintf(global->errors, "(%d) Failed writing body\n", res); - } - } - else if(!outs.s_isreg && outs.stream) { - /* Dump standard stream buffered data */ - int rc = fflush(outs.stream); - if(!res && rc) { - /* something went wrong in the writing process */ - res = CURLE_WRITE_ERROR; - fprintf(global->errors, "(%d) Failed writing body\n", res); - } - } - -#ifdef __AMIGA__ - if(!res && outs.s_isreg && outs.filename) { - /* Set the url (up to 80 chars) as comment for the file */ - if(strlen(url) > 78) - url[79] = '\0'; - SetComment(outs.filename, url); - } -#endif - -#ifdef HAVE_UTIME - /* File time can only be set _after_ the file has been closed */ - if(!res && config->remote_time && outs.s_isreg && outs.filename) { - /* Ask libcurl if we got a remote file time */ - long filetime = -1; - curl_easy_getinfo(curl, CURLINFO_FILETIME, &filetime); - if(filetime >= 0) { - struct utimbuf times; - times.actime = (time_t)filetime; - times.modtime = (time_t)filetime; - utime(outs.filename, ×); /* set the time we got */ - } - } -#endif - -#ifdef USE_METALINK - if(!metalink && config->use_metalink && res == CURLE_OK) { - int rv = parse_metalink(config, &outs, this_url); - if(rv == 0) - fprintf(config->global->errors, "Metalink: parsing (%s) OK\n", - this_url); - else if(rv == -1) - fprintf(config->global->errors, "Metalink: parsing (%s) FAILED\n", - this_url); - } - else if(metalink && res == CURLE_OK && !metalink_next_res) { - int rv = metalink_check_hash(global, mlfile, outs.filename); - if(rv == 0) { - metalink_next_res = 1; - } - } -#endif /* USE_METALINK */ - - /* No more business with this output struct */ - if(outs.alloc_filename) - Curl_safefree(outs.filename); -#ifdef USE_METALINK - if(outs.metalink_parser) - metalink_parser_context_delete(outs.metalink_parser); -#endif /* USE_METALINK */ - memset(&outs, 0, sizeof(struct OutStruct)); - hdrcbdata.outs = NULL; - - /* Free loop-local allocated memory and close loop-local opened fd */ - - Curl_safefree(outfile); - Curl_safefree(this_url); - - if(infdopen) - close(infd); - - if(metalink) { - /* Should exit if error is fatal. */ - if(is_fatal_error(res)) { - break; - } - if(!metalink_next_res) - break; - mlres = mlres->next; - if(mlres == NULL) - /* TODO If metalink_next_res is 1 and mlres is NULL, - * set res to error code - */ - break; - } - else - if(urlnum > 1) { - /* when url globbing, exit loop upon critical error */ - if(is_fatal_error(res)) - break; - } - else if(res) - /* when not url globbing, exit loop upon any error */ - break; - - } /* loop to the next URL */ - - /* Free loop-local allocated memory */ - - Curl_safefree(uploadfile); - - if(urls) { - /* Free list of remaining URLs */ - glob_cleanup(urls); - urls = NULL; - } - - if(infilenum > 1) { - /* when file globbing, exit loop upon critical error */ - if(is_fatal_error(res)) - break; - } - else if(res) - /* when not file globbing, exit loop upon any error */ - break; - - } /* loop to the next globbed upload file */ - - /* Free loop-local allocated memory */ - - Curl_safefree(outfiles); - - if(inglob) { - /* Free list of globbed upload files */ - glob_cleanup(inglob); - inglob = NULL; - } - - /* Free this URL node data without destroying the - the node itself nor modifying next pointer. */ - Curl_safefree(urlnode->url); - Curl_safefree(urlnode->outfile); - Curl_safefree(urlnode->infile); - urlnode->flags = 0; - - /* - ** Bail out upon critical errors - */ - if(is_fatal_error(res)) - goto quit_curl; - - } /* for-loop through all URLs */ - - /* - ** Nested loops end here. - */ - - quit_curl: - - /* Reset the global config variables */ - global->noprogress = orig_noprogress; - global->isatty = orig_isatty; - - /* Free function-local referenced allocated memory */ - Curl_safefree(httpgetfields); - - /* Free list of given URLs */ - clean_getout(config); - - hdrcbdata.heads = NULL; - - /* Close function-local opened file descriptors */ - if(heads.fopened && heads.stream) - fclose(heads.stream); - - if(heads.alloc_filename) - Curl_safefree(heads.filename); - - /* Release metalink related resources here */ - clean_metalink(config); - - return res; -} - -CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[]) -{ - CURLcode result = CURLE_OK; - - /* Setup proper locale from environment */ -#ifdef HAVE_SETLOCALE - setlocale(LC_ALL, ""); -#endif - - /* Parse .curlrc if necessary */ - if((argc == 1) || (!curlx_strequal(argv[1], "-q"))) { - parseconfig(NULL, config); /* ignore possible failure */ - - /* If we had no arguments then make sure a url was specified in .curlrc */ - if((argc < 2) && (!config->first->url_list)) { - helpf(config->errors, NULL); - result = CURLE_FAILED_INIT; - } - } - - if(!result) { - /* Parse the command line arguments */ - ParameterError res = parse_args(config, argc, argv); - if(res) { - result = CURLE_OK; - - /* Check if we were asked for the help */ - if(res == PARAM_HELP_REQUESTED) - tool_help(); - /* Check if we were asked for the manual */ - else if(res == PARAM_MANUAL_REQUESTED) - hugehelp(); - /* Check if we were asked for the version information */ - else if(res == PARAM_VERSION_INFO_REQUESTED) - tool_version_info(); - /* Check if we were asked to list the SSL engines */ - else if(res == PARAM_ENGINES_REQUESTED) - tool_list_engines(config->easy); - else - result = CURLE_FAILED_INIT; - } - else { -#ifndef CURL_DISABLE_LIBCURL_OPTION - /* Initialise the libcurl source output */ - result = easysrc_init(); -#endif - - /* Perform the main operations */ - if(!result) { - size_t count = 0; - struct OperationConfig *operation = config->first; - - /* Get the required aguments for each operation */ - while(!result && operation) { - result = get_args(operation, count++); - - operation = operation->next; - } - - /* Set the current operation pointer */ - config->current = config->first; - - /* Perform each operation */ - while(!result && config->current) { - result = operate_do(config, config->current); - - config->current = config->current->next; - } - -#ifndef CURL_DISABLE_LIBCURL_OPTION - /* Cleanup the libcurl source output */ - easysrc_cleanup(); - - /* Dump the libcurl code if previously enabled */ - dumpeasysrc(config); -#endif - } - else - helpf(config->errors, "out of memory\n"); - } - } - - return result; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_operate.h b/external/libcurl_android/jni/libcurl/src/tool_operate.h deleted file mode 100755 index 1d5c1a96..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_operate.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HEADER_CURL_TOOL_OPERATE_H -#define HEADER_CURL_TOOL_OPERATE_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[]); - -#endif /* HEADER_CURL_TOOL_OPERATE_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_operhlp.c b/external/libcurl_android/jni/libcurl/src/tool_operhlp.c deleted file mode 100755 index 15eefabe..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_operhlp.c +++ /dev/null @@ -1,171 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_convert.h" -#include "tool_operhlp.h" -#include "tool_metalink.h" - -#include "memdebug.h" /* keep this as LAST include */ - -void clean_getout(struct OperationConfig *config) -{ - struct getout *next; - struct getout *node = config->url_list; - - while(node) { - next = node->next; - Curl_safefree(node->url); - Curl_safefree(node->outfile); - Curl_safefree(node->infile); - Curl_safefree(node); - node = next; - } - config->url_list = NULL; -} - -bool output_expected(const char *url, const char *uploadfile) -{ - if(!uploadfile) - return TRUE; /* download */ - if(checkprefix("http://", url) || checkprefix("https://", url)) - return TRUE; /* HTTP(S) upload */ - - return FALSE; /* non-HTTP upload, probably no output should be expected */ -} - -bool stdin_upload(const char *uploadfile) -{ - return (curlx_strequal(uploadfile, "-") || - curlx_strequal(uploadfile, ".")) ? TRUE : FALSE; -} - -/* - * Adds the file name to the URL if it doesn't already have one. - * url will be freed before return if the returned pointer is different - */ -char *add_file_name_to_url(CURL *curl, char *url, const char *filename) -{ - /* If no file name part is given in the URL, we add this file name */ - char *ptr = strstr(url, "://"); - if(ptr) - ptr += 3; - else - ptr = url; - ptr = strrchr(ptr, '/'); - if(!ptr || !strlen(++ptr)) { - /* The URL has no file name part, add the local file name. In order - to be able to do so, we have to create a new URL in another - buffer.*/ - - /* We only want the part of the local path that is on the right - side of the rightmost slash and backslash. */ - const char *filep = strrchr(filename, '/'); - char *file2 = strrchr(filep?filep:filename, '\\'); - char *encfile; - - if(file2) - filep = file2 + 1; - else if(filep) - filep++; - else - filep = filename; - - /* URL encode the file name */ - encfile = curl_easy_escape(curl, filep, 0 /* use strlen */); - if(encfile) { - char *urlbuffer; - if(ptr) - /* there is a trailing slash on the URL */ - urlbuffer = aprintf("%s%s", url, encfile); - else - /* there is no trailing slash on the URL */ - urlbuffer = aprintf("%s/%s", url, encfile); - - curl_free(encfile); - Curl_safefree(url); - - if(!urlbuffer) - return NULL; - - url = urlbuffer; /* use our new URL instead! */ - } - else - Curl_safefree(url); - } - return url; -} - -/* Extracts the name portion of the URL. - * Returns a pointer to a heap-allocated string or NULL if - * no name part, at location indicated by first argument. - */ -CURLcode get_url_file_name(char **filename, const char *url) -{ - const char *pc; - - *filename = NULL; - - /* Find and get the remote file name */ - pc = strstr(url, "://"); - if(pc) - pc += 3; - else - pc = url; - pc = strrchr(pc, '/'); - - if(pc) { - /* duplicate the string beyond the slash */ - pc++; - if(*pc) { - *filename = strdup(pc); - if(!*filename) - return CURLE_OUT_OF_MEMORY; - } - } - - /* in case we built debug enabled, we allow an environment variable - * named CURL_TESTDIR to prefix the given file name to put it into a - * specific directory - */ -#ifdef DEBUGBUILD - { - char *tdir = curlx_getenv("CURL_TESTDIR"); - if(tdir) { - char buffer[512]; /* suitably large */ - snprintf(buffer, sizeof(buffer), "%s/%s", tdir, *filename); - Curl_safefree(*filename); - *filename = strdup(buffer); /* clone the buffer */ - curl_free(tdir); - } - } -#endif - - return CURLE_OK; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_operhlp.h b/external/libcurl_android/jni/libcurl/src/tool_operhlp.h deleted file mode 100755 index 8fcaad69..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_operhlp.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef HEADER_CURL_TOOL_OPERHLP_H -#define HEADER_CURL_TOOL_OPERHLP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -struct OperationConfig; - -void clean_getout(struct OperationConfig *config); - -bool output_expected(const char *url, const char *uploadfile); - -bool stdin_upload(const char *uploadfile); - -char *add_file_name_to_url(CURL *curl, char *url, const char *filename); - -CURLcode get_url_file_name(char **filename, const char *url); - -#endif /* HEADER_CURL_TOOL_OPERHLP_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_panykey.c b/external/libcurl_android/jni/libcurl/src/tool_panykey.c deleted file mode 100755 index d8718e32..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_panykey.c +++ /dev/null @@ -1,48 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#if defined(__SYMBIAN32__) || defined(NETWARE) - -#ifdef NETWARE -# ifdef __NOVELL_LIBC__ -# include <screen.h> -# else -# include <nwconio.h> -# endif -#endif - -#include "tool_panykey.h" - -#include "memdebug.h" /* keep this as LAST include */ - -void tool_pressanykey(void) -{ -#if defined(__SYMBIAN32__) - getchar(); -#elif defined(NETWARE) - pressanykey(); -#endif -} - -#endif /* __SYMBIAN32__ || NETWARE */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_panykey.h b/external/libcurl_android/jni/libcurl/src/tool_panykey.h deleted file mode 100755 index 50b15d2d..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_panykey.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef HEADER_CURL_TOOL_PANYKEY_H -#define HEADER_CURL_TOOL_PANYKEY_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#if defined(__SYMBIAN32__) || defined(NETWARE) - -void tool_pressanykey(void); - -#else - -#define tool_pressanykey() Curl_nop_stmt - -#endif - -#endif /* HEADER_CURL_TOOL_PANYKEY_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_paramhlp.c b/external/libcurl_android/jni/libcurl/src/tool_paramhlp.c deleted file mode 100755 index 18da0265..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_paramhlp.c +++ /dev/null @@ -1,513 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "rawstr.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_getparam.h" -#include "tool_getpass.h" -#include "tool_homedir.h" -#include "tool_msgs.h" -#include "tool_paramhlp.h" -#include "tool_version.h" - -#include "memdebug.h" /* keep this as LAST include */ - -struct getout *new_getout(struct OperationConfig *config) -{ - struct getout *node = calloc(1, sizeof(struct getout)); - struct getout *last = config->url_last; - if(node) { - /* append this new node last in the list */ - if(last) - last->next = node; - else - config->url_list = node; /* first node */ - - /* move the last pointer */ - config->url_last = node; - - node->flags = config->default_node_flags; - } - return node; -} - -ParameterError file2string(char **bufp, FILE *file) -{ - char buffer[256]; - char *ptr; - char *string = NULL; - size_t stringlen = 0; - size_t buflen; - - if(file) { - while(fgets(buffer, sizeof(buffer), file)) { - if((ptr = strchr(buffer, '\r')) != NULL) - *ptr = '\0'; - if((ptr = strchr(buffer, '\n')) != NULL) - *ptr = '\0'; - buflen = strlen(buffer); - if((ptr = realloc(string, stringlen+buflen+1)) == NULL) { - Curl_safefree(string); - return PARAM_NO_MEM; - } - string = ptr; - strcpy(string+stringlen, buffer); - stringlen += buflen; - } - } - *bufp = string; - return PARAM_OK; -} - -ParameterError file2memory(char **bufp, size_t *size, FILE *file) -{ - char *newbuf; - char *buffer = NULL; - size_t alloc = 512; - size_t nused = 0; - size_t nread; - - if(file) { - do { - if(!buffer || (alloc == nused)) { - /* size_t overflow detection for huge files */ - if(alloc+1 > ((size_t)-1)/2) { - Curl_safefree(buffer); - return PARAM_NO_MEM; - } - alloc *= 2; - /* allocate an extra char, reserved space, for null termination */ - if((newbuf = realloc(buffer, alloc+1)) == NULL) { - Curl_safefree(buffer); - return PARAM_NO_MEM; - } - buffer = newbuf; - } - nread = fread(buffer+nused, 1, alloc-nused, file); - nused += nread; - } while(nread); - /* null terminate the buffer in case it's used as a string later */ - buffer[nused] = '\0'; - /* free trailing slack space, if possible */ - if(alloc != nused) { - if((newbuf = realloc(buffer, nused+1)) == NULL) { - Curl_safefree(buffer); - return PARAM_NO_MEM; - } - buffer = newbuf; - } - /* discard buffer if nothing was read */ - if(!nused) { - Curl_safefree(buffer); /* no string */ - } - } - *size = nused; - *bufp = buffer; - return PARAM_OK; -} - -void cleanarg(char *str) -{ -#ifdef HAVE_WRITABLE_ARGV - /* now that GetStr has copied the contents of nextarg, wipe the next - * argument out so that the username:password isn't displayed in the - * system process list */ - if(str) { - size_t len = strlen(str); - memset(str, ' ', len); - } -#else - (void)str; -#endif -} - -/* - * Parse the string and write the long in the given address. Return PARAM_OK - * on success, otherwise a parameter specific error enum. - * - * Since this function gets called with the 'nextarg' pointer from within the - * getparameter a lot, we must check it for NULL before accessing the str - * data. - */ - -ParameterError str2num(long *val, const char *str) -{ - if(str) { - char *endptr; - long num = strtol(str, &endptr, 10); - if((endptr != str) && (endptr == str + strlen(str))) { - *val = num; - return PARAM_OK; /* Ok */ - } - } - return PARAM_BAD_NUMERIC; /* badness */ -} - -/* - * Parse the string and write the long in the given address. Return PARAM_OK - * on success, otherwise a parameter error enum. ONLY ACCEPTS POSITIVE NUMBERS! - * - * Since this function gets called with the 'nextarg' pointer from within the - * getparameter a lot, we must check it for NULL before accessing the str - * data. - */ - -ParameterError str2unum(long *val, const char *str) -{ - ParameterError result = str2num(val, str); - if(result != PARAM_OK) - return result; - if(*val < 0) - return PARAM_NEGATIVE_NUMERIC; - - return PARAM_OK; -} - -/* - * Parse the string and write the double in the given address. Return PARAM_OK - * on success, otherwise a parameter specific error enum. - * - * Since this function gets called with the 'nextarg' pointer from within the - * getparameter a lot, we must check it for NULL before accessing the str - * data. - */ - -ParameterError str2double(double *val, const char *str) -{ - if(str) { - char *endptr; - double num = strtod(str, &endptr); - if((endptr != str) && (endptr == str + strlen(str))) { - *val = num; - return PARAM_OK; /* Ok */ - } - } - return PARAM_BAD_NUMERIC; /* badness */ -} - -/* - * Parse the string and write the double in the given address. Return PARAM_OK - * on success, otherwise a parameter error enum. ONLY ACCEPTS POSITIVE NUMBERS! - * - * Since this function gets called with the 'nextarg' pointer from within the - * getparameter a lot, we must check it for NULL before accessing the str - * data. - */ - -ParameterError str2udouble(double *val, const char *str) -{ - ParameterError result = str2double(val, str); - if(result != PARAM_OK) - return result; - if(*val < 0) - return PARAM_NEGATIVE_NUMERIC; - - return PARAM_OK; -} - -/* - * Parse the string and modify the long in the given address. Return - * non-zero on failure, zero on success. - * - * The string is a list of protocols - * - * Since this function gets called with the 'nextarg' pointer from within the - * getparameter a lot, we must check it for NULL before accessing the str - * data. - */ - -long proto2num(struct OperationConfig *config, long *val, const char *str) -{ - char *buffer; - const char *sep = ","; - char *token; - - static struct sprotos { - const char *name; - long bit; - } const protos[] = { - { "all", CURLPROTO_ALL }, - { "http", CURLPROTO_HTTP }, - { "https", CURLPROTO_HTTPS }, - { "ftp", CURLPROTO_FTP }, - { "ftps", CURLPROTO_FTPS }, - { "scp", CURLPROTO_SCP }, - { "sftp", CURLPROTO_SFTP }, - { "telnet", CURLPROTO_TELNET }, - { "ldap", CURLPROTO_LDAP }, - { "ldaps", CURLPROTO_LDAPS }, - { "dict", CURLPROTO_DICT }, - { "file", CURLPROTO_FILE }, - { "tftp", CURLPROTO_TFTP }, - { "imap", CURLPROTO_IMAP }, - { "imaps", CURLPROTO_IMAPS }, - { "pop3", CURLPROTO_POP3 }, - { "pop3s", CURLPROTO_POP3S }, - { "smtp", CURLPROTO_SMTP }, - { "smtps", CURLPROTO_SMTPS }, - { "rtsp", CURLPROTO_RTSP }, - { "gopher", CURLPROTO_GOPHER }, - { NULL, 0 } - }; - - if(!str) - return 1; - - buffer = strdup(str); /* because strtok corrupts it */ - if(!buffer) - return 1; - - for(token = strtok(buffer, sep); - token; - token = strtok(NULL, sep)) { - enum e_action { allow, deny, set } action = allow; - - struct sprotos const *pp; - - /* Process token modifiers */ - while(!ISALNUM(*token)) { /* may be NULL if token is all modifiers */ - switch (*token++) { - case '=': - action = set; - break; - case '-': - action = deny; - break; - case '+': - action = allow; - break; - default: /* Includes case of terminating NULL */ - Curl_safefree(buffer); - return 1; - } - } - - for(pp=protos; pp->name; pp++) { - if(curlx_raw_equal(token, pp->name)) { - switch (action) { - case deny: - *val &= ~(pp->bit); - break; - case allow: - *val |= pp->bit; - break; - case set: - *val = pp->bit; - break; - } - break; - } - } - - if(!(pp->name)) { /* unknown protocol */ - /* If they have specified only this protocol, we say treat it as - if no protocols are allowed */ - if(action == set) - *val = 0; - warnf(config, "unrecognized protocol '%s'\n", token); - } - } - Curl_safefree(buffer); - return 0; -} - -/** - * Parses the given string looking for an offset (which may be a - * larger-than-integer value). The offset CANNOT be negative! - * - * @param val the offset to populate - * @param str the buffer containing the offset - * @return PARAM_OK if successful, a parameter specific error enum if failure. - */ -ParameterError str2offset(curl_off_t *val, const char *str) -{ - char *endptr; - if(str[0] == '-') - /* offsets aren't negative, this indicates weird input */ - return PARAM_NEGATIVE_NUMERIC; - -#if(CURL_SIZEOF_CURL_OFF_T > CURL_SIZEOF_LONG) - *val = curlx_strtoofft(str, &endptr, 0); - if((*val == CURL_OFF_T_MAX || *val == CURL_OFF_T_MIN) && (ERRNO == ERANGE)) - return PARAM_BAD_NUMERIC; -#else - *val = strtol(str, &endptr, 0); - if((*val == LONG_MIN || *val == LONG_MAX) && ERRNO == ERANGE) - return PARAM_BAD_NUMERIC; -#endif - if((endptr != str) && (endptr == str + strlen(str))) - return PARAM_OK; - - return PARAM_BAD_NUMERIC; -} - -static CURLcode checkpasswd(const char *kind, /* for what purpose */ - const size_t i, /* operation index */ - const bool last, /* TRUE if last operation */ - char **userpwd) /* pointer to allocated string */ -{ - char *psep; - char *osep; - - if(!*userpwd) - return CURLE_OK; - - /* Attempt to find the password separator */ - psep = strchr(*userpwd, ':'); - - /* Attempt to find the options separator */ - osep = strchr(*userpwd, ';'); - - if(!psep && **userpwd != ';') { - /* no password present, prompt for one */ - char passwd[256] = ""; - char prompt[256]; - size_t passwdlen; - size_t userlen = strlen(*userpwd); - char *passptr; - - if(osep) - *osep = '\0'; - - /* build a nice-looking prompt */ - if(!i && last) - curlx_msnprintf(prompt, sizeof(prompt), - "Enter %s password for user '%s':", - kind, *userpwd); - else - curlx_msnprintf(prompt, sizeof(prompt), - "Enter %s password for user '%s' on URL #%" - CURL_FORMAT_CURL_OFF_TU ":", - kind, *userpwd, i + 1); - - /* get password */ - getpass_r(prompt, passwd, sizeof(passwd)); - passwdlen = strlen(passwd); - - if(osep) - *osep = ';'; - - /* extend the allocated memory area to fit the password too */ - passptr = realloc(*userpwd, - passwdlen + 1 + /* an extra for the colon */ - userlen + 1); /* an extra for the zero */ - if(!passptr) - return CURLE_OUT_OF_MEMORY; - - /* append the password separated with a colon */ - passptr[userlen] = ':'; - memcpy(&passptr[userlen+1], passwd, passwdlen+1); - *userpwd = passptr; - } - - return CURLE_OK; -} - -ParameterError add2list(struct curl_slist **list, const char *ptr) -{ - struct curl_slist *newlist = curl_slist_append(*list, ptr); - if(newlist) - *list = newlist; - else - return PARAM_NO_MEM; - - return PARAM_OK; -} - -int ftpfilemethod(struct OperationConfig *config, const char *str) -{ - if(curlx_raw_equal("singlecwd", str)) - return CURLFTPMETHOD_SINGLECWD; - if(curlx_raw_equal("nocwd", str)) - return CURLFTPMETHOD_NOCWD; - if(curlx_raw_equal("multicwd", str)) - return CURLFTPMETHOD_MULTICWD; - warnf(config, "unrecognized ftp file method '%s', using default\n", str); - return CURLFTPMETHOD_MULTICWD; -} - -int ftpcccmethod(struct OperationConfig *config, const char *str) -{ - if(curlx_raw_equal("passive", str)) - return CURLFTPSSL_CCC_PASSIVE; - if(curlx_raw_equal("active", str)) - return CURLFTPSSL_CCC_ACTIVE; - warnf(config, "unrecognized ftp CCC method '%s', using default\n", str); - return CURLFTPSSL_CCC_PASSIVE; -} - -long delegation(struct OperationConfig *config, char *str) -{ - if(curlx_raw_equal("none", str)) - return CURLGSSAPI_DELEGATION_NONE; - if(curlx_raw_equal("policy", str)) - return CURLGSSAPI_DELEGATION_POLICY_FLAG; - if(curlx_raw_equal("always", str)) - return CURLGSSAPI_DELEGATION_FLAG; - warnf(config, "unrecognized delegation method '%s', using none\n", str); - return CURLGSSAPI_DELEGATION_NONE; -} - -/* - * my_useragent: returns allocated string with default user agent - */ -static char *my_useragent(void) -{ - return strdup(CURL_NAME "/" CURL_VERSION); -} - -CURLcode get_args(struct OperationConfig *config, const size_t i) -{ - CURLcode result = CURLE_OK; - bool last = (config->next ? FALSE : TRUE); - - /* Check we have a password for the given host user */ - if(config->userpwd && !config->xoauth2_bearer) { - result = checkpasswd("host", i, last, &config->userpwd); - if(result) - return result; - } - - /* Check we have a password for the given proxy user */ - if(config->proxyuserpwd) { - result = checkpasswd("proxy", i, last, &config->proxyuserpwd); - if(result) - return result; - } - - /* Check we have a user agent */ - if(!config->useragent) { - config->useragent = my_useragent(); - if(!config->useragent) { - helpf(config->global->errors, "out of memory\n"); - result = CURLE_OUT_OF_MEMORY; - } - } - - return result; -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_paramhlp.h b/external/libcurl_android/jni/libcurl/src/tool_paramhlp.h deleted file mode 100755 index 69d7fd42..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_paramhlp.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef HEADER_CURL_TOOL_PARAMHLP_H -#define HEADER_CURL_TOOL_PARAMHLP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -struct getout *new_getout(struct OperationConfig *config); - -ParameterError file2string(char **bufp, FILE *file); - -ParameterError file2memory(char **bufp, size_t *size, FILE *file); - -void cleanarg(char *str); - -ParameterError str2num(long *val, const char *str); -ParameterError str2unum(long *val, const char *str); -ParameterError str2double(double *val, const char *str); -ParameterError str2udouble(double *val, const char *str); - -long proto2num(struct OperationConfig *config, long *val, const char *str); - -ParameterError str2offset(curl_off_t *val, const char *str); - -CURLcode get_args(struct OperationConfig *config, const size_t i); - -ParameterError add2list(struct curl_slist **list, const char *ptr); - -int ftpfilemethod(struct OperationConfig *config, const char *str); - -int ftpcccmethod(struct OperationConfig *config, const char *str); - -long delegation(struct OperationConfig *config, char *str); - -#endif /* HEADER_CURL_TOOL_PARAMHLP_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_parsecfg.c b/external/libcurl_android/jni/libcurl/src/tool_parsecfg.c deleted file mode 100755 index 7a161c3b..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_parsecfg.c +++ /dev/null @@ -1,362 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_getparam.h" -#include "tool_helpers.h" -#include "tool_homedir.h" -#include "tool_msgs.h" -#include "tool_parsecfg.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#define CURLRC DOT_CHAR "curlrc" - -/* only acknowledge colon or equals as separators if the option was not - specified with an initial dash! */ -#define ISSEP(x,dash) (!dash && (((x) == '=') || ((x) == ':'))) - -static const char *unslashquote(const char *line, char *param); -static char *my_get_line(FILE *fp); - -/* return 0 on everything-is-fine, and non-zero otherwise */ -int parseconfig(const char *filename, struct GlobalConfig *global) -{ - int res; - FILE *file; - char filebuffer[512]; - bool usedarg; - char *home; - int rc = 0; - struct OperationConfig *operation = global->first; - - if(!filename || !*filename) { - /* NULL or no file name attempts to load .curlrc from the homedir! */ - -#ifndef __AMIGA__ - filename = CURLRC; /* sensible default */ - home = homedir(); /* portable homedir finder */ - if(home) { - if(strlen(home) < (sizeof(filebuffer) - strlen(CURLRC))) { - snprintf(filebuffer, sizeof(filebuffer), - "%s%s%s", home, DIR_CHAR, CURLRC); - -#ifdef WIN32 - /* Check if the file exists - if not, try CURLRC in the same - * directory as our executable - */ - file = fopen(filebuffer, "r"); - if(file != NULL) { - fclose(file); - filename = filebuffer; - } - else { - /* Get the filename of our executable. GetModuleFileName is - * already declared via inclusions done in setup header file. - * We assume that we are using the ASCII version here. - */ - int n = GetModuleFileName(0, filebuffer, sizeof(filebuffer)); - if(n > 0 && n < (int)sizeof(filebuffer)) { - /* We got a valid filename - get the directory part */ - char *lastdirchar = strrchr(filebuffer, '\\'); - if(lastdirchar) { - size_t remaining; - *lastdirchar = 0; - /* If we have enough space, build the RC filename */ - remaining = sizeof(filebuffer) - strlen(filebuffer); - if(strlen(CURLRC) < remaining - 1) { - snprintf(lastdirchar, remaining, - "%s%s", DIR_CHAR, CURLRC); - /* Don't bother checking if it exists - we do - * that later - */ - filename = filebuffer; - } - } - } - } -#else /* WIN32 */ - filename = filebuffer; -#endif /* WIN32 */ - } - Curl_safefree(home); /* we've used it, now free it */ - } - -# else /* __AMIGA__ */ - /* On AmigaOS all the config files are into env: - */ - filename = "ENV:" CURLRC; - -#endif - } - - if(strcmp(filename,"-")) - file = fopen(filename, "r"); - else - file = stdin; - - if(file) { - char *line; - char *aline; - char *option; - char *param; - int lineno = 0; - bool alloced_param; - bool dashed_option; - - while(NULL != (aline = my_get_line(file))) { - lineno++; - line = aline; - alloced_param=FALSE; - - /* line with # in the first non-blank column is a comment! */ - while(*line && ISSPACE(*line)) - line++; - - switch(*line) { - case '#': - case '/': - case '\r': - case '\n': - case '*': - case '\0': - Curl_safefree(aline); - continue; - } - - /* the option keywords starts here */ - option = line; - - /* the option starts with a dash? */ - dashed_option = option[0]=='-'?TRUE:FALSE; - - while(*line && !ISSPACE(*line) && !ISSEP(*line, dashed_option)) - line++; - /* ... and has ended here */ - - if(*line) - *line++ = '\0'; /* zero terminate, we have a local copy of the data */ - -#ifdef DEBUG_CONFIG - fprintf(stderr, "GOT: %s\n", option); -#endif - - /* pass spaces and separator(s) */ - while(*line && (ISSPACE(*line) || ISSEP(*line, dashed_option))) - line++; - - /* the parameter starts here (unless quoted) */ - if(*line == '\"') { - /* quoted parameter, do the quote dance */ - line++; - param = malloc(strlen(line) + 1); /* parameter */ - if(!param) { - /* out of memory */ - Curl_safefree(aline); - rc = 1; - break; - } - alloced_param = TRUE; - (void)unslashquote(line, param); - } - else { - param = line; /* parameter starts here */ - while(*line && !ISSPACE(*line)) - line++; - *line = '\0'; /* zero terminate */ - - /* to detect mistakes better, see if there's data following */ - line++; - /* pass all spaces */ - while(*line && ISSPACE(*line)) - line++; - - switch(*line) { - case '\0': - case '\r': - case '\n': - case '#': /* comment */ - break; - default: - warnf(operation, "%s:%d: warning: '%s' uses unquoted white space in" - " the line that may cause side-effects!\n", - filename, lineno, option); - } - } - - if(param && !*param) { - /* do this so getparameter can check for required parameters. - Otherwise it always thinks there's a parameter. */ - if(alloced_param) - Curl_safefree(param); - param = NULL; - } - -#ifdef DEBUG_CONFIG - fprintf(stderr, "PARAM: \"%s\"\n",(param ? param : "(null)")); -#endif - res = getparameter(option, param, &usedarg, global, operation); - - if(param && *param && !usedarg) - /* we passed in a parameter that wasn't used! */ - res = PARAM_GOT_EXTRA_PARAMETER; - - if(res == PARAM_NEXT_OPERATION) { - if(operation->url_list && operation->url_list->url) { - /* Allocate the next config */ - operation->next = malloc(sizeof(struct OperationConfig)); - if(operation->next) { - /* Initialise the newly created config */ - config_init(operation->next); - - /* Copy the easy handle */ - operation->next->easy = global->easy; - - /* Set the global config pointer */ - operation->next->global = global; - - /* Update the last operation pointer */ - global->last = operation->next; - - /* Move onto the new config */ - operation->next->prev = operation; - operation = operation->next; - } - else - res = PARAM_NO_MEM; - } - } - - if(res != PARAM_OK && res != PARAM_NEXT_OPERATION) { - /* the help request isn't really an error */ - if(!strcmp(filename, "-")) { - filename = (char *)"<stdin>"; - } - if(res != PARAM_HELP_REQUESTED && - res != PARAM_MANUAL_REQUESTED && - res != PARAM_VERSION_INFO_REQUESTED && - res != PARAM_ENGINES_REQUESTED) { - const char *reason = param2text(res); - warnf(operation, "%s:%d: warning: '%s' %s\n", - filename, lineno, option, reason); - } - } - - if(alloced_param) - Curl_safefree(param); - - Curl_safefree(aline); - } - if(file != stdin) - fclose(file); - } - else - rc = 1; /* couldn't open the file */ - - return rc; -} - -/* - * Copies the string from line to the buffer at param, unquoting - * backslash-quoted characters and NUL-terminating the output string. - * Stops at the first non-backslash-quoted double quote character or the - * end of the input string. param must be at least as long as the input - * string. Returns the pointer after the last handled input character. - */ -static const char *unslashquote(const char *line, char *param) -{ - while(*line && (*line != '\"')) { - if(*line == '\\') { - char out; - line++; - - /* default is to output the letter after the backslash */ - switch(out = *line) { - case '\0': - continue; /* this'll break out of the loop */ - case 't': - out = '\t'; - break; - case 'n': - out = '\n'; - break; - case 'r': - out = '\r'; - break; - case 'v': - out = '\v'; - break; - } - *param++ = out; - line++; - } - else - *param++ = *line++; - } - *param = '\0'; /* always zero terminate */ - return line; -} - -/* - * Reads a line from the given file, ensuring is NUL terminated. - * The pointer must be freed by the caller. - * NULL is returned on an out of memory condition. - */ -static char *my_get_line(FILE *fp) -{ - char buf[4096]; - char *nl = NULL; - char *line = NULL; - - do { - if(NULL == fgets(buf, sizeof(buf), fp)) - break; - if(!line) { - line = strdup(buf); - if(!line) - return NULL; - } - else { - char *ptr; - size_t linelen = strlen(line); - ptr = realloc(line, linelen + strlen(buf) + 1); - if(!ptr) { - Curl_safefree(line); - return NULL; - } - line = ptr; - strcpy(&line[linelen], buf); - } - nl = strchr(line, '\n'); - } while(!nl); - - if(nl) - *nl = '\0'; - - return line; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_parsecfg.h b/external/libcurl_android/jni/libcurl/src/tool_parsecfg.h deleted file mode 100755 index c3b19d54..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_parsecfg.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HEADER_CURL_TOOL_PARSECFG_H -#define HEADER_CURL_TOOL_PARSECFG_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -int parseconfig(const char *filename, struct GlobalConfig *config); - -#endif /* HEADER_CURL_TOOL_PARSECFG_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_sdecls.h b/external/libcurl_android/jni/libcurl/src/tool_sdecls.h deleted file mode 100755 index e74020f7..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_sdecls.h +++ /dev/null @@ -1,153 +0,0 @@ -#ifndef HEADER_CURL_TOOL_SDECLS_H -#define HEADER_CURL_TOOL_SDECLS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" -#ifdef USE_METALINK -# include <metalink/metalink.h> -#endif /* USE_METALINK */ - -/* - * OutStruct variables keep track of information relative to curl's - * output writing, which may take place to a standard stream or a file. - * - * 'filename' member is either a pointer to a file name string or NULL - * when dealing with a standard stream. - * - * 'alloc_filename' member is TRUE when string pointed by 'filename' has been - * dynamically allocated and 'belongs' to this OutStruct, otherwise FALSE. - * - * 'is_cd_filename' member is TRUE when string pointed by 'filename' has been - * set using a server-specified Content-Disposition filename, otherwise FALSE. - * - * 's_isreg' member is TRUE when output goes to a regular file, this also - * implies that output is 'seekable' and 'appendable' and also that member - * 'filename' points to file name's string. For any standard stream member - * 's_isreg' will be FALSE. - * - * 'fopened' member is TRUE when output goes to a regular file and it - * has been fopen'ed, requiring it to be closed later on. In any other - * case this is FALSE. - * - * 'stream' member is a pointer to a stream controlling object as returned - * from a 'fopen' call or a standard stream. - * - * 'config' member is a pointer to associated 'OperationConfig' struct. - * - * 'bytes' member represents amount written so far. - * - * 'init' member holds original file size or offset at which truncation is - * taking place. Always zero unless appending to a non-empty regular file. - * - * 'metalink_parser' member is a pointer to Metalink XML parser - * context. - */ - -struct OutStruct { - char *filename; - bool alloc_filename; - bool is_cd_filename; - bool s_isreg; - bool fopened; - FILE *stream; - struct OperationConfig *config; - curl_off_t bytes; - curl_off_t init; -#ifdef USE_METALINK - metalink_parser_context_t *metalink_parser; -#endif /* USE_METALINK */ -}; - - -/* - * InStruct variables keep track of information relative to curl's - * input reading, which may take place from stdin or from some file. - * - * 'fd' member is either 'stdin' file descriptor number STDIN_FILENO - * or a file descriptor as returned from an 'open' call for some file. - * - * 'config' member is a pointer to associated 'OperationConfig' struct. - */ - -struct InStruct { - int fd; - struct OperationConfig *config; -}; - - -/* - * A linked list of these 'getout' nodes contain URL's to fetch, - * as well as information relative to where URL contents should - * be stored or which file should be uploaded. - */ - -struct getout { - struct getout *next; /* next one */ - char *url; /* the URL we deal with */ - char *outfile; /* where to store the output */ - char *infile; /* file to upload, if GETOUT_UPLOAD is set */ - int flags; /* options - composed of GETOUT_* bits */ -}; - -#define GETOUT_OUTFILE (1<<0) /* set when outfile is deemed done */ -#define GETOUT_URL (1<<1) /* set when URL is deemed done */ -#define GETOUT_USEREMOTE (1<<2) /* use remote file name locally */ -#define GETOUT_UPLOAD (1<<3) /* if set, -T has been used */ -#define GETOUT_NOUPLOAD (1<<4) /* if set, -T "" has been used */ -#define GETOUT_METALINK (1<<5) /* set when Metalink download */ - -/* - * 'trace' enumeration represents curl's output look'n feel possibilities. - */ - -typedef enum { - TRACE_NONE, /* no trace/verbose output at all */ - TRACE_BIN, /* tcpdump inspired look */ - TRACE_ASCII, /* like *BIN but without the hex output */ - TRACE_PLAIN /* -v/--verbose type */ -} trace; - - -/* - * 'HttpReq' enumeration represents HTTP request types. - */ - -typedef enum { - HTTPREQ_UNSPEC, /* first in list */ - HTTPREQ_GET, - HTTPREQ_HEAD, - HTTPREQ_POST, - HTTPREQ_SIMPLEPOST, - HTTPREQ_CUSTOM, - HTTPREQ_LAST /* last in list */ -} HttpReq; - - -/* - * Complete struct declarations which have OperationConfig struct members, - * just in case this header is directly included in some source file. - */ - -#include "tool_cfgable.h" - -#endif /* HEADER_CURL_TOOL_SDECLS_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_setopt.c b/external/libcurl_android/jni/libcurl/src/tool_setopt.c deleted file mode 100755 index 62d94a65..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_setopt.c +++ /dev/null @@ -1,565 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifndef CURL_DISABLE_LIBCURL_OPTION - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_easysrc.h" -#include "tool_setopt.h" - -#include "memdebug.h" /* keep this as LAST include */ - -/* Lookup tables for converting setopt values back to symbols */ -/* For enums, values may be in any order. */ -/* For bit masks, put combinations first, then single bits, */ -/* and finally any "NONE" value. */ - -#define NV(e) {#e, e} -#define NV1(e, v) {#e, (v)} -#define NVEND {NULL, 0} /* sentinel to mark end of list */ - -const NameValue setopt_nv_CURLPROXY[] = { - NV(CURLPROXY_HTTP), - NV(CURLPROXY_HTTP_1_0), - NV(CURLPROXY_SOCKS4), - NV(CURLPROXY_SOCKS5), - NV(CURLPROXY_SOCKS4A), - NV(CURLPROXY_SOCKS5_HOSTNAME), - NVEND, -}; - -const NameValueUnsigned setopt_nv_CURLAUTH[] = { - NV(CURLAUTH_ANY), /* combination */ - NV(CURLAUTH_ANYSAFE), /* combination */ - NV(CURLAUTH_BASIC), - NV(CURLAUTH_DIGEST), - NV(CURLAUTH_GSSNEGOTIATE), - NV(CURLAUTH_NTLM), - NV(CURLAUTH_DIGEST_IE), - NV(CURLAUTH_NTLM_WB), - NV(CURLAUTH_ONLY), - NV(CURLAUTH_NONE), - NVEND, -}; - -const NameValue setopt_nv_CURL_HTTP_VERSION[] = { - NV(CURL_HTTP_VERSION_NONE), - NV(CURL_HTTP_VERSION_1_0), - NV(CURL_HTTP_VERSION_1_1), - NVEND, -}; - -const NameValue setopt_nv_CURL_SSLVERSION[] = { - NV(CURL_SSLVERSION_DEFAULT), - NV(CURL_SSLVERSION_TLSv1), - NV(CURL_SSLVERSION_SSLv2), - NV(CURL_SSLVERSION_SSLv3), - NV(CURL_SSLVERSION_TLSv1_0), - NV(CURL_SSLVERSION_TLSv1_1), - NV(CURL_SSLVERSION_TLSv1_2), - NVEND, -}; - -const NameValue setopt_nv_CURL_TIMECOND[] = { - NV(CURL_TIMECOND_IFMODSINCE), - NV(CURL_TIMECOND_IFUNMODSINCE), - NV(CURL_TIMECOND_LASTMOD), - NV(CURL_TIMECOND_NONE), - NVEND, -}; - -const NameValue setopt_nv_CURLFTPSSL_CCC[] = { - NV(CURLFTPSSL_CCC_NONE), - NV(CURLFTPSSL_CCC_PASSIVE), - NV(CURLFTPSSL_CCC_ACTIVE), - NVEND, -}; - -const NameValue setopt_nv_CURLUSESSL[] = { - NV(CURLUSESSL_NONE), - NV(CURLUSESSL_TRY), - NV(CURLUSESSL_CONTROL), - NV(CURLUSESSL_ALL), - NVEND, -}; - -const NameValue setopt_nv_CURL_NETRC[] = { - NV(CURL_NETRC_IGNORED), - NV(CURL_NETRC_OPTIONAL), - NV(CURL_NETRC_REQUIRED), - NVEND, -}; - -/* These mappings essentially triplicated - see - * tool_libinfo.c and tool_paramhlp.c */ -const NameValue setopt_nv_CURLPROTO[] = { - NV(CURLPROTO_ALL), /* combination */ - NV(CURLPROTO_DICT), - NV(CURLPROTO_FILE), - NV(CURLPROTO_FTP), - NV(CURLPROTO_FTPS), - NV(CURLPROTO_GOPHER), - NV(CURLPROTO_HTTP), - NV(CURLPROTO_HTTPS), - NV(CURLPROTO_IMAP), - NV(CURLPROTO_IMAPS), - NV(CURLPROTO_LDAP), - NV(CURLPROTO_LDAPS), - NV(CURLPROTO_POP3), - NV(CURLPROTO_POP3S), - NV(CURLPROTO_RTSP), - NV(CURLPROTO_SCP), - NV(CURLPROTO_SFTP), - NV(CURLPROTO_SMTP), - NV(CURLPROTO_SMTPS), - NV(CURLPROTO_TELNET), - NV(CURLPROTO_TFTP), - NVEND, -}; - -/* These options have non-zero default values. */ -static const NameValue setopt_nv_CURLNONZERODEFAULTS[] = { - NV1(CURLOPT_SSL_VERIFYPEER, 1), - NV1(CURLOPT_SSL_VERIFYHOST, 1), - NV1(CURLOPT_SSL_ENABLE_NPN, 1), - NV1(CURLOPT_SSL_ENABLE_ALPN, 1), - NVEND -}; - -/* Format and add code; jump to nomem on malloc error */ -#define ADD(args) do { \ - ret = easysrc_add args; \ - if(ret) \ - goto nomem; \ -} WHILE_FALSE -#define ADDF(args) do { \ - ret = easysrc_addf args; \ - if(ret) \ - goto nomem; \ -} WHILE_FALSE - -#define DECL0(s) ADD((&easysrc_decl, s)) -#define DECL1(f,a) ADDF((&easysrc_decl, f,a)) - -#define DATA0(s) ADD((&easysrc_data, s)) -#define DATA1(f,a) ADDF((&easysrc_data, f,a)) -#define DATA2(f,a,b) ADDF((&easysrc_data, f,a,b)) -#define DATA3(f,a,b,c) ADDF((&easysrc_data, f,a,b,c)) - -#define CODE0(s) ADD((&easysrc_code, s)) -#define CODE1(f,a) ADDF((&easysrc_code, f,a)) -#define CODE2(f,a,b) ADDF((&easysrc_code, f,a,b)) -#define CODE3(f,a,b,c) ADDF((&easysrc_code, f,a,b,c)) - -#define CLEAN0(s) ADD((&easysrc_clean, s)) -#define CLEAN1(f,a) ADDF((&easysrc_clean, f,a)) - -#define REM0(s) ADD((&easysrc_toohard, s)) -#define REM1(f,a) ADDF((&easysrc_toohard, f,a)) -#define REM2(f,a,b) ADDF((&easysrc_toohard, f,a,b)) - -/* Escape string to C string syntax. Return NULL if out of memory. - * Is this correct for those wacky EBCDIC guys? */ -static char *c_escape(const char *str) -{ - size_t len = 0; - const char *s; - unsigned char c; - char *escaped, *e; - /* Allocate space based on worst-case */ - len = strlen(str); - escaped = malloc(4 * len + 1); - if(!escaped) - return NULL; - - e = escaped; - for(s=str; (c=*s) != '\0'; s++) { - if(c=='\n') { - strcpy(e, "\\n"); - e += 2; - } - else if(c=='\r') { - strcpy(e, "\\r"); - e += 2; - } - else if(c=='\t') { - strcpy(e, "\\t"); - e += 2; - } - else if(c=='\\') { - strcpy(e, "\\\\"); - e += 2; - } - else if(c=='"') { - strcpy(e, "\\\""); - e += 2; - } - else if(! isprint(c)) { - snprintf(e, 4, "\\%03o", c); - e += 4; - } - else - *e++ = c; - } - *e = '\0'; - return escaped; -} - -/* setopt wrapper for enum types */ -CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - const NameValue *nvlist, long lval) -{ - CURLcode ret = CURLE_OK; - bool skip = FALSE; - - ret = curl_easy_setopt(curl, tag, lval); - if(!lval) - skip = TRUE; - - if(config->libcurl && !skip && !ret) { - /* we only use this for real if --libcurl was used */ - const NameValue *nv = NULL; - for(nv=nvlist; nv->name; nv++) { - if(nv->value == lval) break; /* found it */ - } - if(! nv->name) { - /* If no definition was found, output an explicit value. - * This could happen if new values are defined and used - * but the NameValue list is not updated. */ - CODE2("curl_easy_setopt(hnd, %s, %ldL);", name, lval); - } - else { - CODE2("curl_easy_setopt(hnd, %s, (long)%s);", name, nv->name); - } - } - - nomem: - return ret; -} - -/* setopt wrapper for flags */ -CURLcode tool_setopt_flags(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - const NameValue *nvlist, long lval) -{ - CURLcode ret = CURLE_OK; - bool skip = FALSE; - - ret = curl_easy_setopt(curl, tag, lval); - if(!lval) - skip = TRUE; - - if(config->libcurl && !skip && !ret) { - /* we only use this for real if --libcurl was used */ - char preamble[80]; /* should accommodate any symbol name */ - long rest = lval; /* bits not handled yet */ - const NameValue *nv = NULL; - snprintf(preamble, sizeof(preamble), - "curl_easy_setopt(hnd, %s, ", name); - for(nv=nvlist; nv->name; nv++) { - if((nv->value & ~ rest) == 0) { - /* all value flags contained in rest */ - rest &= ~ nv->value; /* remove bits handled here */ - CODE3("%s(long)%s%s", - preamble, nv->name, rest ? " |" : ");"); - if(!rest) - break; /* handled them all */ - /* replace with all spaces for continuation line */ - snprintf(preamble, sizeof(preamble), "%*s", strlen(preamble), ""); - } - } - /* If any bits have no definition, output an explicit value. - * This could happen if new bits are defined and used - * but the NameValue list is not updated. */ - if(rest) - CODE2("%s%ldL);", preamble, rest); - } - - nomem: - return ret; -} - -/* setopt wrapper for bitmasks */ -CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - const NameValueUnsigned *nvlist, - long lval) -{ - CURLcode ret = CURLE_OK; - bool skip = FALSE; - - ret = curl_easy_setopt(curl, tag, lval); - if(!lval) - skip = TRUE; - - if(config->libcurl && !skip && !ret) { - /* we only use this for real if --libcurl was used */ - char preamble[80]; - unsigned long rest = (unsigned long)lval; - const NameValueUnsigned *nv = NULL; - snprintf(preamble, sizeof(preamble), - "curl_easy_setopt(hnd, %s, ", name); - for(nv=nvlist; nv->name; nv++) { - if((nv->value & ~ rest) == 0) { - /* all value flags contained in rest */ - rest &= ~ nv->value; /* remove bits handled here */ - CODE3("%s(long)%s%s", - preamble, nv->name, rest ? " |" : ");"); - if(!rest) - break; /* handled them all */ - /* replace with all spaces for continuation line */ - snprintf(preamble, sizeof(preamble), "%*s", strlen(preamble), ""); - } - } - /* If any bits have no definition, output an explicit value. - * This could happen if new bits are defined and used - * but the NameValue list is not updated. */ - if(rest) - CODE2("%s%luUL);", preamble, rest); - } - - nomem: - return ret; -} - -/* setopt wrapper for CURLOPT_HTTPPOST */ -CURLcode tool_setopt_httppost(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - struct curl_httppost *post) -{ - CURLcode ret = CURLE_OK; - char *escaped = NULL; - bool skip = FALSE; - - ret = curl_easy_setopt(curl, tag, post); - if(!post) - skip = TRUE; - - if(config->libcurl && !skip && !ret) { - struct curl_httppost *pp, *p; - int i; - /* May use several httppost lists, if multiple POST actions */ - i = ++ easysrc_form_count; - DECL1("struct curl_httppost *post%d;", i); - DATA1("post%d = NULL;", i); - CLEAN1("curl_formfree(post%d);", i); - CLEAN1("post%d = NULL;", i); - if(i == 1) - DECL0("struct curl_httppost *postend;"); - DATA0("postend = NULL;"); - for(p=post; p; p=p->next) { - DATA1("curl_formadd(&post%d, &postend,", i); - DATA1(" CURLFORM_COPYNAME, \"%s\",", p->name); - for(pp=p; pp; pp=pp->more) { - /* May be several files uploaded for one name; - * these are linked through the 'more' pointer */ - Curl_safefree(escaped); - escaped = c_escape(pp->contents); - if(!escaped) { - ret = CURLE_OUT_OF_MEMORY; - goto nomem; - } - if(pp->flags & HTTPPOST_FILENAME) { - /* file upload as for -F @filename */ - DATA1(" CURLFORM_FILE, \"%s\",", escaped); - } - else if(pp->flags & HTTPPOST_READFILE) { - /* content from file as for -F <filename */ - DATA1(" CURLFORM_FILECONTENT, \"%s\",", escaped); - } - else - DATA1(" CURLFORM_COPYCONTENTS, \"%s\",", escaped); - if(pp->showfilename) { - Curl_safefree(escaped); - escaped = c_escape(pp->showfilename); - if(!escaped) { - ret = CURLE_OUT_OF_MEMORY; - goto nomem; - } - DATA1(" CURLFORM_FILENAME, \"%s\",", escaped); - } - if(pp->contenttype) { - Curl_safefree(escaped); - escaped = c_escape(pp->contenttype); - if(!escaped) { - ret = CURLE_OUT_OF_MEMORY; - goto nomem; - } - DATA1(" CURLFORM_CONTENTTYPE, \"%s\",", escaped); - } - } - DATA0(" CURLFORM_END);"); - } - CODE2("curl_easy_setopt(hnd, %s, post%d);", name, i); - } - - nomem: - Curl_safefree(escaped); - return ret; -} - -/* setopt wrapper for curl_slist options */ -CURLcode tool_setopt_slist(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - struct curl_slist *list) -{ - CURLcode ret = CURLE_OK; - char *escaped = NULL; - bool skip = FALSE; - - ret = curl_easy_setopt(curl, tag, list); - if(!list) - skip = TRUE; - - if(config->libcurl && !skip && !ret) { - struct curl_slist *s; - int i; - /* May need several slist variables, so invent name */ - i = ++ easysrc_slist_count; - DECL1("struct curl_slist *slist%d;", i); - DATA1("slist%d = NULL;", i); - CLEAN1("curl_slist_free_all(slist%d);", i); - CLEAN1("slist%d = NULL;", i); - for(s=list; s; s=s->next) { - Curl_safefree(escaped); - escaped = c_escape(s->data); - if(!escaped) { - ret = CURLE_OUT_OF_MEMORY; - goto nomem; - } - DATA3("slist%d = curl_slist_append(slist%d, \"%s\");", i, i, escaped); - } - CODE2("curl_easy_setopt(hnd, %s, slist%d);", name, i); - } - - nomem: - Curl_safefree(escaped); - return ret; -} - -/* generic setopt wrapper for all other options. - * Some type information is encoded in the tag value. */ -CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config, - const char *name, CURLoption tag, ...) -{ - va_list arg; - char buf[256]; - const char *value = NULL; - bool remark = FALSE; - bool skip = FALSE; - bool escape = FALSE; - char *escaped = NULL; - CURLcode ret = CURLE_OK; - - va_start(arg, tag); - - if(tag < CURLOPTTYPE_OBJECTPOINT) { - /* Value is expected to be a long */ - long lval = va_arg(arg, long); - long defval = 0L; - const NameValue *nv = NULL; - for(nv=setopt_nv_CURLNONZERODEFAULTS; nv->name; nv++) { - if(!strcmp(name, nv->name)) { - defval = nv->value; - break; /* found it */ - } - } - - snprintf(buf, sizeof(buf), "%ldL", lval); - value = buf; - ret = curl_easy_setopt(curl, tag, lval); - if(lval == defval) - skip = TRUE; - } - else if(tag < CURLOPTTYPE_OFF_T) { - /* Value is some sort of object pointer */ - void *pval = va_arg(arg, void *); - - /* function pointers are never printable */ - if(tag >= CURLOPTTYPE_FUNCTIONPOINT) { - if(pval) { - value = "functionpointer"; - remark = TRUE; - } - else - skip = TRUE; - } - - else if(pval && str) { - value = (char *)pval; - escape = TRUE; - } - else if(pval) { - value = "objectpointer"; - remark = TRUE; - } - else - skip = TRUE; - - ret = curl_easy_setopt(curl, tag, pval); - - } - else { - /* Value is expected to be curl_off_t */ - curl_off_t oval = va_arg(arg, curl_off_t); - snprintf(buf, sizeof(buf), - "(curl_off_t)%" CURL_FORMAT_CURL_OFF_T, oval); - value = buf; - ret = curl_easy_setopt(curl, tag, oval); - - if(!oval) - skip = TRUE; - } - - va_end(arg); - - if(config->libcurl && !skip && !ret) { - /* we only use this for real if --libcurl was used */ - - if(remark) - REM2("%s set to a %s", name, value); - else { - if(escape) { - escaped = c_escape(value); - if(!escaped) { - ret = CURLE_OUT_OF_MEMORY; - goto nomem; - } - CODE2("curl_easy_setopt(hnd, %s, \"%s\");", name, escaped); - } - else - CODE2("curl_easy_setopt(hnd, %s, %s);", name, value); - } - } - - nomem: - Curl_safefree(escaped); - return ret; -} - -#endif /* CURL_DISABLE_LIBCURL_OPTION */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_setopt.h b/external/libcurl_android/jni/libcurl/src/tool_setopt.h deleted file mode 100755 index cd144bc0..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_setopt.h +++ /dev/null @@ -1,148 +0,0 @@ -#ifndef HEADER_CURL_TOOL_SETOPT_H -#define HEADER_CURL_TOOL_SETOPT_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -/* - * Macros used in operate() - */ - -#define SETOPT_CHECK(v) do { \ - res = (v); \ - if(res) \ - goto show_error; \ -} WHILE_FALSE - -#ifndef CURL_DISABLE_LIBCURL_OPTION - -/* Associate symbolic names with option values */ -typedef struct { - const char *name; - long value; -} NameValue; - -typedef struct { - const char *name; - unsigned long value; -} NameValueUnsigned; - -extern const NameValue setopt_nv_CURLPROXY[]; -extern const NameValue setopt_nv_CURL_HTTP_VERSION[]; -extern const NameValue setopt_nv_CURL_SSLVERSION[]; -extern const NameValue setopt_nv_CURL_TIMECOND[]; -extern const NameValue setopt_nv_CURLFTPSSL_CCC[]; -extern const NameValue setopt_nv_CURLUSESSL[]; -extern const NameValue setopt_nv_CURL_NETRC[]; -extern const NameValue setopt_nv_CURLPROTO[]; -extern const NameValueUnsigned setopt_nv_CURLAUTH[]; - -/* Map options to NameValue sets */ -#define setopt_nv_CURLOPT_HTTP_VERSION setopt_nv_CURL_HTTP_VERSION -#define setopt_nv_CURLOPT_HTTPAUTH setopt_nv_CURLAUTH -#define setopt_nv_CURLOPT_SSLVERSION setopt_nv_CURL_SSLVERSION -#define setopt_nv_CURLOPT_TIMECONDITION setopt_nv_CURL_TIMECOND -#define setopt_nv_CURLOPT_FTP_SSL_CCC setopt_nv_CURLFTPSSL_CCC -#define setopt_nv_CURLOPT_USE_SSL setopt_nv_CURLUSESSL -#define setopt_nv_CURLOPT_NETRC setopt_nv_CURL_NETRC -#define setopt_nv_CURLOPT_PROTOCOLS setopt_nv_CURLPROTO -#define setopt_nv_CURLOPT_REDIR_PROTOCOLS setopt_nv_CURLPROTO -#define setopt_nv_CURLOPT_PROXYTYPE setopt_nv_CURLPROXY -#define setopt_nv_CURLOPT_PROXYAUTH setopt_nv_CURLAUTH - -/* Intercept setopt calls for --libcurl */ - -CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - const NameValue *nv, long lval); -CURLcode tool_setopt_flags(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - const NameValue *nv, long lval); -CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - const NameValueUnsigned *nv, long lval); -CURLcode tool_setopt_httppost(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - struct curl_httppost *httppost); -CURLcode tool_setopt_slist(CURL *curl, struct GlobalConfig *config, - const char *name, CURLoption tag, - struct curl_slist *list); -CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config, - const char *name, CURLoption tag, ...); - -#define my_setopt(x,y,z) \ - SETOPT_CHECK(tool_setopt(x, FALSE, global, #y, y, z)) - -#define my_setopt_str(x,y,z) \ - SETOPT_CHECK(tool_setopt(x, TRUE, global, #y, y, z)) - -#define my_setopt_enum(x,y,z) \ - SETOPT_CHECK(tool_setopt_enum(x, global, #y, y, setopt_nv_ ## y, z)) - -#define my_setopt_flags(x,y,z) \ - SETOPT_CHECK(tool_setopt_flags(x, global, #y, y, setopt_nv_ ## y, z)) - -#define my_setopt_bitmask(x,y,z) \ - SETOPT_CHECK(tool_setopt_bitmask(x, global, #y, y, setopt_nv_ ## y, z)) - -#define my_setopt_httppost(x,y,z) \ - SETOPT_CHECK(tool_setopt_httppost(x, global, #y, y, z)) - -#define my_setopt_slist(x,y,z) \ - SETOPT_CHECK(tool_setopt_slist(x, global, #y, y, z)) - -#define res_setopt(x,y,z) tool_setopt(x, FALSE, global, #y, y, z) - -#define res_setopt_str(x,y,z) tool_setopt(x, TRUE, global, #y, y, z) - -#else /* CURL_DISABLE_LIBCURL_OPTION */ - -/* No --libcurl, so pass options directly to library */ - -#define my_setopt(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define my_setopt_str(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define my_setopt_enum(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define my_setopt_flags(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define my_setopt_bitmask(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define my_setopt_httppost(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define my_setopt_slist(x,y,z) \ - SETOPT_CHECK(curl_easy_setopt(x, y, z)) - -#define res_setopt(x,y,z) curl_easy_setopt(x,y,z) - -#define res_setopt_str(x,y,z) curl_easy_setopt(x,y,z) - -#endif /* CURL_DISABLE_LIBCURL_OPTION */ - -#endif /* HEADER_CURL_TOOL_SETOPT_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_setup.h b/external/libcurl_android/jni/libcurl/src/tool_setup.h deleted file mode 100755 index c94686f9..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_setup.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef HEADER_CURL_TOOL_SETUP_H -#define HEADER_CURL_TOOL_SETUP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -#define CURL_NO_OLDIES - -/* - * curl_setup.h may define preprocessor macros such as _FILE_OFFSET_BITS and - * _LARGE_FILES in order to support files larger than 2 GB. On platforms - * where this happens it is mandatory that these macros are defined before - * any system header file is included, otherwise file handling function - * prototypes will be misdeclared and curl tool may not build properly; - * therefore we must include curl_setup.h before curl.h when building curl. - */ - -#include "curl_setup.h" /* from the lib directory */ - -/* - * curl tool certainly uses libcurl's external interface. - */ - -#include <curl/curl.h> /* external interface */ - -/* - * Platform specific stuff. - */ - -#if defined(macintosh) && defined(__MRC__) -# define main(x,y) curl_main(x,y) -#endif - -#ifdef TPF -# undef select - /* change which select is used for the curl command line tool */ -# define select(a,b,c,d,e) tpf_select_bsd(a,b,c,d,e) - /* and turn off the progress meter */ -# define CONF_DEFAULT (0|CONF_NOPROGRESS) -#endif - -#ifndef OS -# define OS "unknown" -#endif - -#ifndef UNPRINTABLE_CHAR - /* define what to use for unprintable characters */ -# define UNPRINTABLE_CHAR '.' -#endif - -#ifndef HAVE_STRDUP -# include "strdup.h" -# define strdup(ptr) curlx_strdup(ptr) -#endif - -#endif /* HEADER_CURL_TOOL_SETUP_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_sleep.c b/external/libcurl_android/jni/libcurl/src/tool_sleep.c deleted file mode 100755 index 49cdc71b..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_sleep.c +++ /dev/null @@ -1,58 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef HAVE_SYS_SELECT_H -# include <sys/select.h> -#endif - -#ifdef HAVE_SYS_POLL_H -# include <sys/poll.h> -#elif defined(HAVE_POLL_H) -# include <poll.h> -#endif - -#ifdef MSDOS -# include <dos.h> -#endif - -#include "tool_sleep.h" - -#include "memdebug.h" /* keep this as LAST include */ - -void tool_go_sleep(long ms) -{ -#if defined(MSDOS) - delay(ms); -#elif defined(WIN32) - Sleep(ms); -#elif defined(HAVE_POLL_FINE) - poll((void *)0, 0, (int)ms); -#else - struct timeval timeout; - timeout.tv_sec = ms / 1000L; - ms = ms % 1000L; - timeout.tv_usec = ms * 1000L; - select(0, NULL, NULL, NULL, &timeout); -#endif -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_sleep.h b/external/libcurl_android/jni/libcurl/src/tool_sleep.h deleted file mode 100755 index 115a4e40..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_sleep.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef HEADER_CURL_TOOL_SLEEP_H -#define HEADER_CURL_TOOL_SLEEP_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -void tool_go_sleep(long ms); - -#endif /* HEADER_CURL_TOOL_SLEEP_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_urlglob.c b/external/libcurl_android/jni/libcurl/src/tool_urlglob.c deleted file mode 100755 index 36e83c33..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_urlglob.c +++ /dev/null @@ -1,674 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define _MPRINTF_REPLACE /* we want curl-functions instead of native ones */ -#include <curl/mprintf.h> - -#include "tool_urlglob.h" -#include "tool_vms.h" - -#include "memdebug.h" /* keep this as LAST include */ - -typedef enum { - GLOB_OK, - GLOB_NO_MEM = CURLE_OUT_OF_MEMORY, - GLOB_ERROR = CURLE_URL_MALFORMAT -} GlobCode; - -#define GLOBERROR(string, column, code) \ - glob->error = string, glob->pos = column, code - -void glob_cleanup(URLGlob* glob); - -static GlobCode glob_fixed(URLGlob *glob, char *fixed, size_t len) -{ - URLPattern *pat = &glob->pattern[glob->size]; - pat->type = UPTSet; - pat->content.Set.size = 1; - pat->content.Set.ptr_s = 0; - pat->globindex = -1; - - pat->content.Set.elements = malloc(sizeof(char*)); - - if(!pat->content.Set.elements) - return GLOBERROR("out of memory", 0, GLOB_NO_MEM); - - pat->content.Set.elements[0] = malloc(len+1); - if(!pat->content.Set.elements[0]) - return GLOBERROR("out of memory", 0, GLOB_NO_MEM); - - memcpy(pat->content.Set.elements[0], fixed, len); - pat->content.Set.elements[0][len] = 0; - - return GLOB_OK; -} - -/* multiply - * - * Multiplies and checks for overflow. - */ -static int multiply(unsigned long *amount, long with) -{ - unsigned long sum = *amount * with; - if(sum/with != *amount) - return 1; /* didn't fit, bail out */ - *amount = sum; - return 0; -} - -static GlobCode glob_set(URLGlob *glob, char **patternp, - size_t *posp, unsigned long *amount, - int globindex) -{ - /* processes a set expression with the point behind the opening '{' - ','-separated elements are collected until the next closing '}' - */ - URLPattern *pat; - bool done = FALSE; - char *buf = glob->glob_buffer; - char *pattern = *patternp; - char *opattern = pattern; - size_t opos = *posp-1; - - pat = &glob->pattern[glob->size]; - /* patterns 0,1,2,... correspond to size=1,3,5,... */ - pat->type = UPTSet; - pat->content.Set.size = 0; - pat->content.Set.ptr_s = 0; - pat->content.Set.elements = NULL; - pat->globindex = globindex; - - while(!done) { - switch (*pattern) { - case '\0': /* URL ended while set was still open */ - return GLOBERROR("unmatched brace", opos, GLOB_ERROR); - - case '{': - case '[': /* no nested expressions at this time */ - return GLOBERROR("nested brace", *posp, GLOB_ERROR); - - case '}': /* set element completed */ - if(opattern == pattern) - return GLOBERROR("empty string within braces", *posp, GLOB_ERROR); - - /* add 1 to size since it'll be incremented below */ - if(multiply(amount, pat->content.Set.size+1)) - return GLOBERROR("range overflow", 0, GLOB_ERROR); - - /* fall-through */ - case ',': - - *buf = '\0'; - if(pat->content.Set.elements) { - char **new_arr = realloc(pat->content.Set.elements, - (pat->content.Set.size + 1) * sizeof(char*)); - if(!new_arr) - return GLOBERROR("out of memory", 0, GLOB_NO_MEM); - - pat->content.Set.elements = new_arr; - } - else - pat->content.Set.elements = malloc(sizeof(char*)); - - if(!pat->content.Set.elements) - return GLOBERROR("out of memory", 0, GLOB_NO_MEM); - - pat->content.Set.elements[pat->content.Set.size] = - strdup(glob->glob_buffer); - if(!pat->content.Set.elements[pat->content.Set.size]) - return GLOBERROR("out of memory", 0, GLOB_NO_MEM); - ++pat->content.Set.size; - - if(*pattern == '}') { - pattern++; /* pass the closing brace */ - done = TRUE; - continue; - } - - buf = glob->glob_buffer; - ++pattern; - ++(*posp); - break; - - case ']': /* illegal closing bracket */ - return GLOBERROR("unexpected close bracket", *posp, GLOB_ERROR); - - case '\\': /* escaped character, skip '\' */ - if(pattern[1]) { - ++pattern; - ++(*posp); - } - /* intentional fallthrough */ - default: - *buf++ = *pattern++; /* copy character to set element */ - ++(*posp); - } - } - - *patternp = pattern; /* return with the new position */ - return GLOB_OK; -} - -static GlobCode glob_range(URLGlob *glob, char **patternp, - size_t *posp, unsigned long *amount, - int globindex) -{ - /* processes a range expression with the point behind the opening '[' - - char range: e.g. "a-z]", "B-Q]" - - num range: e.g. "0-9]", "17-2000]" - - num range with leading zeros: e.g. "001-999]" - expression is checked for well-formedness and collected until the next ']' - */ - URLPattern *pat; - int rc; - char *pattern = *patternp; - char *c; - - pat = &glob->pattern[glob->size]; - pat->globindex = globindex; - - if(ISALPHA(*pattern)) { - /* character range detected */ - char min_c; - char max_c; - int step=1; - - pat->type = UPTCharRange; - - rc = sscanf(pattern, "%c-%c", &min_c, &max_c); - - if((rc == 2) && (pattern[3] == ':')) { - char *endp; - unsigned long lstep; - errno = 0; - lstep = strtoul(&pattern[3], &endp, 10); - if(errno || (*endp != ']')) - step = -1; - else { - pattern = endp+1; - step = (int)lstep; - if(step > (max_c - min_c)) - step = -1; - } - } - else - pattern += 4; - - *posp += (pattern - *patternp); - - if((rc != 2) || (min_c >= max_c) || ((max_c - min_c) > ('z' - 'a')) || - (step < 0) ) - /* the pattern is not well-formed */ - return GLOBERROR("bad range", *posp, GLOB_ERROR); - - /* if there was a ":[num]" thing, use that as step or else use 1 */ - pat->content.CharRange.step = step; - pat->content.CharRange.ptr_c = pat->content.CharRange.min_c = min_c; - pat->content.CharRange.max_c = max_c; - - if(multiply(amount, (pat->content.CharRange.max_c - - pat->content.CharRange.min_c + 1))) - return GLOBERROR("range overflow", *posp, GLOB_ERROR); - } - else if(ISDIGIT(*pattern)) { - /* numeric range detected */ - unsigned long min_n; - unsigned long max_n = 0; - unsigned long step_n = 0; - char *endp; - - pat->type = UPTNumRange; - pat->content.NumRange.padlength = 0; - - if(*pattern == '0') { - /* leading zero specified, count them! */ - c = pattern; - while(ISDIGIT(*c)) { - c++; - ++pat->content.NumRange.padlength; /* padding length is set for all - instances of this pattern */ - } - } - - errno = 0; - min_n = strtoul(pattern, &endp, 10); - if(errno || (endp == pattern)) - endp=NULL; - else { - if(*endp != '-') - endp = NULL; - else { - pattern = endp+1; - errno = 0; - max_n = strtoul(pattern, &endp, 10); - if(errno || (*endp == ':')) { - pattern = endp+1; - errno = 0; - step_n = strtoul(pattern, &endp, 10); - if(errno) - /* over/underflow situation */ - endp = NULL; - } - else - step_n = 1; - if(endp && (*endp == ']')) { - pattern= endp+1; - } - else - endp = NULL; - } - } - - *posp += (pattern - *patternp); - - if(!endp || (min_n > max_n) || (step_n > (max_n - min_n))) - /* the pattern is not well-formed */ - return GLOBERROR("bad range", *posp, GLOB_ERROR); - - /* typecasting to ints are fine here since we make sure above that we - are within 31 bits */ - pat->content.NumRange.ptr_n = pat->content.NumRange.min_n = min_n; - pat->content.NumRange.max_n = max_n; - pat->content.NumRange.step = step_n; - - if(multiply(amount, (pat->content.NumRange.max_n - - pat->content.NumRange.min_n + 1))) - return GLOBERROR("range overflow", *posp, GLOB_ERROR); - } - else - return GLOBERROR("bad range specification", *posp, GLOB_ERROR); - - *patternp = pattern; - return GLOB_OK; -} - -static bool peek_ipv6(const char *str, size_t *skip) -{ - /* - * Scan for a potential IPv6 literal. - * - Valid globs contain a hyphen and <= 1 colon. - * - IPv6 literals contain no hyphens and >= 2 colons. - */ - size_t i = 0; - size_t colons = 0; - if(str[i++] != '[') { - return FALSE; - } - for(;;) { - const char c = str[i++]; - if(ISALNUM(c) || c == '.' || c == '%') { - /* ok */ - } - else if(c == ':') { - colons++; - } - else if(c == ']') { - *skip = i; - return colons >= 2 ? TRUE : FALSE; - } - else { - return FALSE; - } - } -} - -static GlobCode glob_parse(URLGlob *glob, char *pattern, - size_t pos, unsigned long *amount) -{ - /* processes a literal string component of a URL - special characters '{' and '[' branch to set/range processing functions - */ - GlobCode res = GLOB_OK; - int globindex = 0; /* count "actual" globs */ - - *amount = 1; - - while(*pattern && !res) { - char *buf = glob->glob_buffer; - size_t sublen = 0; - while(*pattern && *pattern != '{') { - if(*pattern == '[') { - /* Skip over potential IPv6 literals. */ - size_t skip; - if(peek_ipv6(pattern, &skip)) { - memcpy(buf, pattern, skip); - buf += skip; - pattern += skip; - sublen += skip; - continue; - } - break; - } - if(*pattern == '}' || *pattern == ']') - return GLOBERROR("unmatched close brace/bracket", pos, GLOB_ERROR); - - /* only allow \ to escape known "special letters" */ - if(*pattern == '\\' && - (*(pattern+1) == '{' || *(pattern+1) == '[' || - *(pattern+1) == '}' || *(pattern+1) == ']') ) { - - /* escape character, skip '\' */ - ++pattern; - ++pos; - } - *buf++ = *pattern++; /* copy character to literal */ - ++pos; - sublen++; - } - if(sublen) { - /* we got a literal string, add it as a single-item list */ - *buf = '\0'; - res = glob_fixed(glob, glob->glob_buffer, sublen); - } - else { - switch (*pattern) { - case '\0': /* done */ - break; - - case '{': - /* process set pattern */ - pattern++; - pos++; - res = glob_set(glob, &pattern, &pos, amount, globindex++); - break; - - case '[': - /* process range pattern */ - pattern++; - pos++; - res = glob_range(glob, &pattern, &pos, amount, globindex++); - break; - } - } - - if(++glob->size > GLOB_PATTERN_NUM) - return GLOBERROR("too many globs", pos, GLOB_ERROR); - } - return res; -} - -int glob_url(URLGlob** glob, char* url, unsigned long *urlnum, FILE *error) -{ - /* - * We can deal with any-size, just make a buffer with the same length - * as the specified URL! - */ - URLGlob *glob_expand; - unsigned long amount = 0; - char *glob_buffer; - GlobCode res; - - *glob = NULL; - - glob_buffer = malloc(strlen(url) + 1); - if(!glob_buffer) - return CURLE_OUT_OF_MEMORY; - - glob_expand = calloc(1, sizeof(URLGlob)); - if(!glob_expand) { - Curl_safefree(glob_buffer); - return CURLE_OUT_OF_MEMORY; - } - glob_expand->urllen = strlen(url); - glob_expand->glob_buffer = glob_buffer; - - res = glob_parse(glob_expand, url, 1, &amount); - if(!res) - *urlnum = amount; - else { - if(error && glob_expand->error) { - char text[128]; - const char *t; - if(glob_expand->pos) { - snprintf(text, sizeof(text), "%s in column %zu", glob_expand->error, - glob_expand->pos); - t = text; - } - else - t = glob_expand->error; - - /* send error description to the error-stream */ - fprintf(error, "curl: (%d) [globbing] %s\n", res, t); - } - /* it failed, we cleanup */ - glob_cleanup(glob_expand); - *urlnum = 1; - return res; - } - - *glob = glob_expand; - return CURLE_OK; -} - -void glob_cleanup(URLGlob* glob) -{ - size_t i; - int elem; - - /* the < condition is required since i underflows! */ - for(i = glob->size - 1; i < glob->size; --i) { - if((glob->pattern[i].type == UPTSet) && - (glob->pattern[i].content.Set.elements)) { - for(elem = glob->pattern[i].content.Set.size - 1; - elem >= 0; - --elem) { - Curl_safefree(glob->pattern[i].content.Set.elements[elem]); - } - Curl_safefree(glob->pattern[i].content.Set.elements); - } - } - Curl_safefree(glob->glob_buffer); - Curl_safefree(glob); -} - -int glob_next_url(char **globbed, URLGlob *glob) -{ - URLPattern *pat; - size_t i; - size_t j; - size_t len; - size_t buflen = glob->urllen + 1; - char *buf = glob->glob_buffer; - - *globbed = NULL; - - if(!glob->beenhere) - glob->beenhere = 1; - else { - bool carry = TRUE; - - /* implement a counter over the index ranges of all patterns, - starting with the rightmost pattern */ - /* the < condition is required since i underflows! */ - for(i = glob->size - 1; carry && (i < glob->size); --i) { - carry = FALSE; - pat = &glob->pattern[i]; - switch (pat->type) { - case UPTSet: - if((pat->content.Set.elements) && - (++pat->content.Set.ptr_s == pat->content.Set.size)) { - pat->content.Set.ptr_s = 0; - carry = TRUE; - } - break; - case UPTCharRange: - pat->content.CharRange.ptr_c = (char)(pat->content.CharRange.step + - (int)((unsigned char)pat->content.CharRange.ptr_c)); - if(pat->content.CharRange.ptr_c > pat->content.CharRange.max_c) { - pat->content.CharRange.ptr_c = pat->content.CharRange.min_c; - carry = TRUE; - } - break; - case UPTNumRange: - pat->content.NumRange.ptr_n += pat->content.NumRange.step; - if(pat->content.NumRange.ptr_n > pat->content.NumRange.max_n) { - pat->content.NumRange.ptr_n = pat->content.NumRange.min_n; - carry = TRUE; - } - break; - default: - printf("internal error: invalid pattern type (%d)\n", (int)pat->type); - return CURLE_FAILED_INIT; - } - } - if(carry) { /* first pattern ptr has run into overflow, done! */ - /* TODO: verify if this should actally return CURLE_OK. */ - return CURLE_OK; /* CURLE_OK to match previous behavior */ - } - } - - for(j = 0; j < glob->size; ++j) { - pat = &glob->pattern[j]; - switch(pat->type) { - case UPTSet: - if(pat->content.Set.elements) { - len = strlen(pat->content.Set.elements[pat->content.Set.ptr_s]); - snprintf(buf, buflen, "%s", - pat->content.Set.elements[pat->content.Set.ptr_s]); - buf += len; - buflen -= len; - } - break; - case UPTCharRange: - *buf++ = pat->content.CharRange.ptr_c; - break; - case UPTNumRange: - len = snprintf(buf, buflen, "%0*ld", - pat->content.NumRange.padlength, - pat->content.NumRange.ptr_n); - buf += len; - buflen -= len; - break; - default: - printf("internal error: invalid pattern type (%d)\n", (int)pat->type); - return CURLE_FAILED_INIT; - } - } - *buf = '\0'; - - *globbed = strdup(glob->glob_buffer); - if(!*globbed) - return CURLE_OUT_OF_MEMORY; - - return CURLE_OK; -} - -int glob_match_url(char **result, char *filename, URLGlob *glob) -{ - char *target; - size_t allocsize; - char numbuf[18]; - char *appendthis = NULL; - size_t appendlen = 0; - size_t stringlen = 0; - - *result = NULL; - - /* We cannot use the glob_buffer for storage here since the filename may - * be longer than the URL we use. We allocate a good start size, then - * we need to realloc in case of need. - */ - allocsize = strlen(filename) + 1; /* make it at least one byte to store the - trailing zero */ - target = malloc(allocsize); - if(!target) - return CURLE_OUT_OF_MEMORY; - - while(*filename) { - if(*filename == '#' && ISDIGIT(filename[1])) { - unsigned long i; - char *ptr = filename; - unsigned long num = strtoul(&filename[1], &filename, 10); - URLPattern *pat =NULL; - - if(num < glob->size) { - num--; /* make it zero based */ - /* find the correct glob entry */ - for(i=0; i<glob->size; i++) { - if(glob->pattern[i].globindex == (int)num) { - pat = &glob->pattern[i]; - break; - } - } - } - - if(pat) { - switch (pat->type) { - case UPTSet: - if(pat->content.Set.elements) { - appendthis = pat->content.Set.elements[pat->content.Set.ptr_s]; - appendlen = - strlen(pat->content.Set.elements[pat->content.Set.ptr_s]); - } - break; - case UPTCharRange: - numbuf[0] = pat->content.CharRange.ptr_c; - numbuf[1] = 0; - appendthis = numbuf; - appendlen = 1; - break; - case UPTNumRange: - snprintf(numbuf, sizeof(numbuf), "%0*d", - pat->content.NumRange.padlength, - pat->content.NumRange.ptr_n); - appendthis = numbuf; - appendlen = strlen(numbuf); - break; - default: - fprintf(stderr, "internal error: invalid pattern type (%d)\n", - (int)pat->type); - Curl_safefree(target); - return CURLE_FAILED_INIT; - } - } - else { - /* #[num] out of range, use the #[num] in the output */ - filename = ptr; - appendthis = filename++; - appendlen = 1; - } - } - else { - appendthis = filename++; - appendlen = 1; - } - if(appendlen + stringlen >= allocsize) { - char *newstr; - /* we append a single byte to allow for the trailing byte to be appended - at the end of this function outside the while() loop */ - allocsize = (appendlen + stringlen) * 2; - newstr = realloc(target, allocsize + 1); - if(!newstr) { - Curl_safefree(target); - return CURLE_OUT_OF_MEMORY; - } - target = newstr; - } - memcpy(&target[stringlen], appendthis, appendlen); - stringlen += appendlen; - } - target[stringlen]= '\0'; - *result = target; - return CURLE_OK; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_urlglob.h b/external/libcurl_android/jni/libcurl/src/tool_urlglob.h deleted file mode 100755 index 9fa6f83b..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_urlglob.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef HEADER_CURL_TOOL_URLGLOB_H -#define HEADER_CURL_TOOL_URLGLOB_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -typedef enum { - UPTSet = 1, - UPTCharRange, - UPTNumRange -} URLPatternType; - -typedef struct { - URLPatternType type; - int globindex; /* the number of this particular glob or -1 if not used - within {} or [] */ - union { - struct { - char **elements; - int size; - int ptr_s; - } Set; - struct { - char min_c; - char max_c; - char ptr_c; - int step; - } CharRange; - struct { - unsigned long min_n; - unsigned long max_n; - int padlength; - unsigned long ptr_n; - unsigned long step; - } NumRange ; - } content; -} URLPattern; - -/* the total number of globs supported */ -#define GLOB_PATTERN_NUM 100 - -typedef struct { - URLPattern pattern[GLOB_PATTERN_NUM]; - size_t size; - size_t urllen; - char *glob_buffer; - char beenhere; - const char *error; /* error message */ - size_t pos; /* column position of error or 0 */ -} URLGlob; - -int glob_url(URLGlob**, char*, unsigned long *, FILE *); -int glob_next_url(char **, URLGlob *); -int glob_match_url(char **, char*, URLGlob *); -void glob_cleanup(URLGlob* glob); - -#endif /* HEADER_CURL_TOOL_URLGLOB_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_util.c b/external/libcurl_android/jni/libcurl/src/tool_util.c deleted file mode 100755 index 00d205eb..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_util.c +++ /dev/null @@ -1,138 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#include "tool_util.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#if defined(WIN32) && !defined(MSDOS) - -struct timeval tool_tvnow(void) -{ - /* - ** GetTickCount() is available on _all_ Windows versions from W95 up - ** to nowadays. Returns milliseconds elapsed since last system boot, - ** increases monotonically and wraps once 49.7 days have elapsed. - */ - struct timeval now; - DWORD milliseconds = GetTickCount(); - now.tv_sec = milliseconds / 1000; - now.tv_usec = (milliseconds % 1000) * 1000; - return now; -} - -#elif defined(HAVE_CLOCK_GETTIME_MONOTONIC) - -struct timeval tool_tvnow(void) -{ - /* - ** clock_gettime() is granted to be increased monotonically when the - ** monotonic clock is queried. Time starting point is unspecified, it - ** could be the system start-up time, the Epoch, or something else, - ** in any case the time starting point does not change once that the - ** system has started up. - */ - struct timeval now; - struct timespec tsnow; - if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) { - now.tv_sec = tsnow.tv_sec; - now.tv_usec = tsnow.tv_nsec / 1000; - } - /* - ** Even when the configure process has truly detected monotonic clock - ** availability, it might happen that it is not actually available at - ** run-time. When this occurs simply fallback to other time source. - */ -#ifdef HAVE_GETTIMEOFDAY - else - (void)gettimeofday(&now, NULL); -#else - else { - now.tv_sec = (long)time(NULL); - now.tv_usec = 0; - } -#endif - return now; -} - -#elif defined(HAVE_GETTIMEOFDAY) - -struct timeval tool_tvnow(void) -{ - /* - ** gettimeofday() is not granted to be increased monotonically, due to - ** clock drifting and external source time synchronization it can jump - ** forward or backward in time. - */ - struct timeval now; - (void)gettimeofday(&now, NULL); - return now; -} - -#else - -struct timeval tool_tvnow(void) -{ - /* - ** time() returns the value of time in seconds since the Epoch. - */ - struct timeval now; - now.tv_sec = (long)time(NULL); - now.tv_usec = 0; - return now; -} - -#endif - -/* - * Make sure that the first argument is the more recent time, as otherwise - * we'll get a weird negative time-diff back... - * - * Returns: the time difference in number of milliseconds. - */ -long tool_tvdiff(struct timeval newer, struct timeval older) -{ - return (newer.tv_sec-older.tv_sec)*1000+ - (newer.tv_usec-older.tv_usec)/1000; -} - -/* - * Same as tool_tvdiff but with full usec resolution. - * - * Returns: the time difference in seconds with subsecond resolution. - */ -double tool_tvdiff_secs(struct timeval newer, struct timeval older) -{ - if(newer.tv_sec != older.tv_sec) - return (double)(newer.tv_sec-older.tv_sec)+ - (double)(newer.tv_usec-older.tv_usec)/1000000.0; - else - return (double)(newer.tv_usec-older.tv_usec)/1000000.0; -} - -/* return the number of seconds in the given input timeval struct */ -long tool_tvlong(struct timeval t1) -{ - return t1.tv_sec; -} - diff --git a/external/libcurl_android/jni/libcurl/src/tool_util.h b/external/libcurl_android/jni/libcurl/src/tool_util.h deleted file mode 100755 index d8bb0366..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_util.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef HEADER_CURL_TOOL_UTIL_H -#define HEADER_CURL_TOOL_UTIL_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -struct timeval tool_tvnow(void); - -/* - * Make sure that the first argument (t1) is the more recent time and t2 is - * the older time, as otherwise you get a weird negative time-diff back... - * - * Returns: the time difference in number of milliseconds. - */ -long tool_tvdiff(struct timeval t1, struct timeval t2); - -/* - * Same as tool_tvdiff but with full usec resolution. - * - * Returns: the time difference in seconds with subsecond resolution. - */ -double tool_tvdiff_secs(struct timeval t1, struct timeval t2); - -long tool_tvlong(struct timeval t1); - -#undef tvnow -#undef tvdiff -#undef tvdiff_secs -#undef tvlong - -#define tvnow() tool_tvnow() -#define tvdiff(a,b) tool_tvdiff((a), (b)) -#define tvdiff_secs(a,b) tool_tvdiff_secs((a), (b)) -#define tvlong(a) tool_tvlong((a)) - -#endif /* HEADER_CURL_TOOL_UTIL_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_version.h b/external/libcurl_android/jni/libcurl/src/tool_version.h deleted file mode 100755 index 0c09149e..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_version.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef HEADER_CURL_TOOL_VERSION_H -#define HEADER_CURL_TOOL_VERSION_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include <curl/curlver.h> - -#define CURL_NAME "curl" -#define CURL_COPYRIGHT LIBCURL_COPYRIGHT -#define CURL_VERSION "7.38.0" -#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR -#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR -#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH -#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") " - -#endif /* HEADER_CURL_TOOL_VERSION_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_vms.c b/external/libcurl_android/jni/libcurl/src/tool_vms.c deleted file mode 100755 index 4a6a6f58..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_vms.c +++ /dev/null @@ -1,219 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef __VMS - -#if defined(__DECC) && !defined(__VAX) && \ - defined(__CRTL_VER) && (__CRTL_VER >= 70301000) -#include <unixlib.h> -#endif - -#define ENABLE_CURLX_PRINTF -#include "curlx.h" - -#include "curlmsg_vms.h" -#include "tool_vms.h" - -#include "memdebug.h" /* keep this as LAST include */ - -void decc$__posix_exit(int __status); -void decc$exit(int __status); - -static int vms_shell = -1; - -/* VMS has a DCL shell and and also has Unix shells ported to it. - * When curl is running under a Unix shell, we want it to be as much - * like Unix as possible. - */ -int is_vms_shell(void) -{ - char *shell; - - /* Have we checked the shell yet? */ - if(vms_shell >= 0) - return vms_shell; - - shell = getenv("SHELL"); - - /* No shell, means DCL */ - if(shell == NULL) { - vms_shell = 1; - return 1; - } - - /* Have to make sure some one did not set shell to DCL */ - if(strcmp(shell, "DCL") == 0) { - vms_shell = 1; - return 1; - } - - vms_shell = 0; - return 0; -} - -/* - * VMS has two exit() routines. When running under a Unix style shell, then - * Unix style and the __posix_exit() routine is used. - * - * When running under the DCL shell, then the VMS encoded codes and decc$exit() - * is used. - * - * We can not use exit() or return a code from main() because the actual - * routine called depends on both the compiler version, compile options, and - * feature macro settings, and one of the exit routines is hidden at compile - * time. - * - * Since we want Curl to work properly under the VMS DCL shell and Unix - * shells under VMS, this routine should compile correctly regardless of - * the settings. - */ - -void vms_special_exit(int code, int vms_show) -{ - int vms_code; - - /* The Posix exit mode is only available after VMS 7.0 */ -#if __CRTL_VER >= 70000000 - if(is_vms_shell() == 0) { - decc$__posix_exit(code); - } -#endif - - if(code > CURL_LAST) { /* If CURL_LAST exceeded then */ - vms_code = CURL_LAST; /* curlmsg.h is out of sync. */ - } - else { - vms_code = vms_cond[code] | vms_show; - } - decc$exit(vms_code); -} - -#if defined(__DECC) && !defined(__VAX) && \ - defined(__CRTL_VER) && (__CRTL_VER >= 70301000) - -/* - * 2004-09-19 SMS. - * - * decc_init() - * - * On non-VAX systems, use LIB$INITIALIZE to set a collection of C - * RTL features without using the DECC$* logical name method, nor - * requiring the user to define the corresponding logical names. - */ - -/* Structure to hold a DECC$* feature name and its desired value. */ -typedef struct { - char *name; - int value; -} decc_feat_t; - -/* Array of DECC$* feature names and their desired values. */ -static decc_feat_t decc_feat_array[] = { - /* Preserve command-line case with SET PROCESS/PARSE_STYLE=EXTENDED */ - { "DECC$ARGV_PARSE_STYLE", 1 }, - /* Preserve case for file names on ODS5 disks. */ - { "DECC$EFS_CASE_PRESERVE", 1 }, - /* Enable multiple dots (and most characters) in ODS5 file names, - while preserving VMS-ness of ";version". */ - { "DECC$EFS_CHARSET", 1 }, - /* List terminator. */ - { (char *)NULL, 0 } -}; - -/* Flag to sense if decc_init() was called. */ -static int decc_init_done = -1; - -/* LIB$INITIALIZE initialization function. */ -static void decc_init(void) -{ - int feat_index; - int feat_value; - int feat_value_max; - int feat_value_min; - int i; - int sts; - - /* Set the global flag to indicate that LIB$INITIALIZE worked. */ - decc_init_done = 1; - - /* Loop through all items in the decc_feat_array[]. */ - for(i = 0; decc_feat_array[i].name != NULL; i++) { - - /* Get the feature index. */ - feat_index = decc$feature_get_index( decc_feat_array[i].name); - - if(feat_index >= 0) { - /* Valid item. Collect its properties. */ - feat_value = decc$feature_get_value( feat_index, 1); - feat_value_min = decc$feature_get_value( feat_index, 2); - feat_value_max = decc$feature_get_value( feat_index, 3); - - if((decc_feat_array[i].value >= feat_value_min) && - (decc_feat_array[i].value <= feat_value_max)) { - /* Valid value. Set it if necessary. */ - if(feat_value != decc_feat_array[i].value) { - sts = decc$feature_set_value( feat_index, 1, - decc_feat_array[i].value); - } - } - else { - /* Invalid DECC feature value. */ - printf(" INVALID DECC FEATURE VALUE, %d: %d <= %s <= %d.\n", - feat_value, - feat_value_min, decc_feat_array[i].name, feat_value_max); - } - } - else { - /* Invalid DECC feature name. */ - printf(" UNKNOWN DECC FEATURE: %s.\n", decc_feat_array[i].name); - } - - } -} - -/* Get "decc_init()" into a valid, loaded LIB$INITIALIZE PSECT. */ - -#pragma nostandard - -/* Establish the LIB$INITIALIZE PSECTs, with proper alignment and - other attributes. Note that "nopic" is significant only on VAX. */ -#pragma extern_model save -#pragma extern_model strict_refdef "LIB$INITIALIZ" 2, nopic, nowrt -const int spare[8] = {0}; -#pragma extern_model strict_refdef "LIB$INITIALIZE" 2, nopic, nowrt -void (*const x_decc_init)() = decc_init; -#pragma extern_model restore - -/* Fake reference to ensure loading the LIB$INITIALIZE PSECT. */ -#pragma extern_model save -int LIB$INITIALIZE(void); -#pragma extern_model strict_refdef -int dmy_lib$initialize = (int) LIB$INITIALIZE; -#pragma extern_model restore - -#pragma standard - -#endif /* __DECC && !__VAX && __CRTL_VER && __CRTL_VER >= 70301000 */ - -#endif /* __VMS */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_vms.h b/external/libcurl_android/jni/libcurl/src/tool_vms.h deleted file mode 100755 index 1afd75ec..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_vms.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef HEADER_CURL_TOOL_VMS_H -#define HEADER_CURL_TOOL_VMS_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef __VMS - -/* - * Forward-declaration of global variable vms_show defined - * in tool_main.c, used in main() as parameter for function - * vms_special_exit() to allow proper curl tool exiting. - */ -extern int vms_show; - -int is_vms_shell(void); -void vms_special_exit(int code, int vms_show); - -#undef exit -#define exit(__code) vms_special_exit((__code), (0)) - -#define VMS_STS(c,f,e,s) (((c&0xF)<<28)|((f&0xFFF)<<16)|((e&0x1FFF)<3)|(s&7)) -#define VMSSTS_HIDE VMS_STS(1,0,0,0) - -#endif /* __VMS */ - -#endif /* HEADER_CURL_TOOL_VMS_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_writeenv.c b/external/libcurl_android/jni/libcurl/src/tool_writeenv.c deleted file mode 100755 index a9462d00..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_writeenv.c +++ /dev/null @@ -1,116 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef USE_ENVIRONMENT - -#ifdef __riscos__ -# include <kernel.h> -#endif - -#define _MPRINTF_REPLACE /* use our functions only */ -#include <curl/mprintf.h> - -#include "tool_writeenv.h" - -#include "memdebug.h" /* keep this as LAST include */ - -static const struct -{ - const char * name; - CURLINFO id; - enum { - writeenv_NONE, - writeenv_DOUBLE, - writeenv_LONG, - writeenv_STRING - } type; -} variables[14] = -{ - {"curl_url_effective", CURLINFO_EFFECTIVE_URL, writeenv_STRING}, - {"curl_http_code", CURLINFO_RESPONSE_CODE, writeenv_LONG}, - {"curl_time_total", CURLINFO_TOTAL_TIME, writeenv_DOUBLE}, - {"curl_time_namelookup", CURLINFO_NAMELOOKUP_TIME, writeenv_DOUBLE}, - {"curl_time_connect", CURLINFO_CONNECT_TIME, writeenv_DOUBLE}, - {"curl_time_pretransfer", CURLINFO_PRETRANSFER_TIME, writeenv_DOUBLE}, - {"curl_time_starttransfer", CURLINFO_STARTTRANSFER_TIME, writeenv_DOUBLE}, - {"curl_size_header", CURLINFO_HEADER_SIZE, writeenv_LONG}, - {"curl_size_request", CURLINFO_REQUEST_SIZE, writeenv_LONG}, - {"curl_size_download", CURLINFO_SIZE_DOWNLOAD, writeenv_DOUBLE}, - {"curl_size_upload", CURLINFO_SIZE_UPLOAD, writeenv_DOUBLE}, - {"curl_speed_download", CURLINFO_SPEED_DOWNLOAD, writeenv_DOUBLE}, - {"curl_speed_upload", CURLINFO_SPEED_UPLOAD, writeenv_DOUBLE}, - {NULL, 0, writeenv_NONE} - }; - -static void internalSetEnv(const char * name, char * value) -{ - /* Add your OS-specific code here. */ -#ifdef __riscos__ - _kernel_setenv(name, value); -#elif defined (CURLDEBUG) - curl_memlog("ENV %s = %s\n", name, value); -#endif - return; -} - -void ourWriteEnv(CURL *curl) -{ - unsigned int i; - char *string, numtext[10]; - long longinfo; - double doubleinfo; - - for(i=0; variables[i].name; i++) { - switch (variables[i].type) { - case writeenv_STRING: - if(curl_easy_getinfo(curl, variables[i].id, &string) == CURLE_OK) - internalSetEnv(variables[i].name, string); - else - internalSetEnv(variables[i].name, NULL); - break; - - case writeenv_LONG: - if(curl_easy_getinfo(curl, variables[i].id, &longinfo) == CURLE_OK) { - curl_msprintf(numtext, "%5ld", longinfo); - internalSetEnv(variables[i].name, numtext); - } - else - internalSetEnv(variables[i].name, NULL); - break; - case writeenv_DOUBLE: - if(curl_easy_getinfo(curl, variables[i].id, &doubleinfo) == CURLE_OK) { - curl_msprintf(numtext, "%6.2f", doubleinfo); - internalSetEnv(variables[i].name, numtext); - } - else - internalSetEnv(variables[i].name, NULL); - break; - default: - break; - } - } - - return; -} - -#endif diff --git a/external/libcurl_android/jni/libcurl/src/tool_writeenv.h b/external/libcurl_android/jni/libcurl/src/tool_writeenv.h deleted file mode 100755 index c0a952fe..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_writeenv.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef HEADER_CURL_TOOL_WRITEENV_H -#define HEADER_CURL_TOOL_WRITEENV_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef USE_ENVIRONMENT - -void ourWriteEnv(CURL *curl); - -#else -# define ourWriteEnv(x) Curl_nop_stmt -#endif - -#endif /* HEADER_CURL_TOOL_WRITEENV_H */ - diff --git a/external/libcurl_android/jni/libcurl/src/tool_writeout.c b/external/libcurl_android/jni/libcurl/src/tool_writeout.c deleted file mode 100755 index f29d1ac3..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_writeout.c +++ /dev/null @@ -1,327 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#define _MPRINTF_REPLACE /* we want curl-functions instead of native ones */ -#include <curl/mprintf.h> - -#include "tool_cfgable.h" -#include "tool_writeout.h" - -#include "memdebug.h" /* keep this as LAST include */ - -typedef enum { - VAR_NONE, /* must be the first */ - VAR_TOTAL_TIME, - VAR_NAMELOOKUP_TIME, - VAR_CONNECT_TIME, - VAR_APPCONNECT_TIME, - VAR_PRETRANSFER_TIME, - VAR_STARTTRANSFER_TIME, - VAR_SIZE_DOWNLOAD, - VAR_SIZE_UPLOAD, - VAR_SPEED_DOWNLOAD, - VAR_SPEED_UPLOAD, - VAR_HTTP_CODE, - VAR_HTTP_CODE_PROXY, - VAR_HEADER_SIZE, - VAR_REQUEST_SIZE, - VAR_EFFECTIVE_URL, - VAR_CONTENT_TYPE, - VAR_NUM_CONNECTS, - VAR_REDIRECT_TIME, - VAR_REDIRECT_COUNT, - VAR_FTP_ENTRY_PATH, - VAR_REDIRECT_URL, - VAR_SSL_VERIFY_RESULT, - VAR_EFFECTIVE_FILENAME, - VAR_PRIMARY_IP, - VAR_PRIMARY_PORT, - VAR_LOCAL_IP, - VAR_LOCAL_PORT, - VAR_NUM_OF_VARS /* must be the last */ -} replaceid; - -struct variable { - const char *name; - replaceid id; -}; - - -static const struct variable replacements[]={ - {"url_effective", VAR_EFFECTIVE_URL}, - {"http_code", VAR_HTTP_CODE}, - {"response_code", VAR_HTTP_CODE}, - {"http_connect", VAR_HTTP_CODE_PROXY}, - {"time_total", VAR_TOTAL_TIME}, - {"time_namelookup", VAR_NAMELOOKUP_TIME}, - {"time_connect", VAR_CONNECT_TIME}, - {"time_appconnect", VAR_APPCONNECT_TIME}, - {"time_pretransfer", VAR_PRETRANSFER_TIME}, - {"time_starttransfer", VAR_STARTTRANSFER_TIME}, - {"size_header", VAR_HEADER_SIZE}, - {"size_request", VAR_REQUEST_SIZE}, - {"size_download", VAR_SIZE_DOWNLOAD}, - {"size_upload", VAR_SIZE_UPLOAD}, - {"speed_download", VAR_SPEED_DOWNLOAD}, - {"speed_upload", VAR_SPEED_UPLOAD}, - {"content_type", VAR_CONTENT_TYPE}, - {"num_connects", VAR_NUM_CONNECTS}, - {"time_redirect", VAR_REDIRECT_TIME}, - {"num_redirects", VAR_REDIRECT_COUNT}, - {"ftp_entry_path", VAR_FTP_ENTRY_PATH}, - {"redirect_url", VAR_REDIRECT_URL}, - {"ssl_verify_result", VAR_SSL_VERIFY_RESULT}, - {"filename_effective", VAR_EFFECTIVE_FILENAME}, - {"remote_ip", VAR_PRIMARY_IP}, - {"remote_port", VAR_PRIMARY_PORT}, - {"local_ip", VAR_LOCAL_IP}, - {"local_port", VAR_LOCAL_PORT}, - {NULL, VAR_NONE} -}; - -void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo) -{ - FILE *stream = stdout; - const char *ptr = writeinfo; - char *stringp = NULL; - long longinfo; - double doubleinfo; - - while(ptr && *ptr) { - if('%' == *ptr) { - if('%' == ptr[1]) { - /* an escaped %-letter */ - fputc('%', stream); - ptr += 2; - } - else { - /* this is meant as a variable to output */ - char *end; - char keepit; - int i; - if(('{' == ptr[1]) && ((end = strchr(ptr, '}')) != NULL)) { - bool match = FALSE; - ptr += 2; /* pass the % and the { */ - keepit = *end; - *end = 0; /* zero terminate */ - for(i = 0; replacements[i].name; i++) { - if(curl_strequal(ptr, replacements[i].name)) { - match = TRUE; - switch(replacements[i].id) { - case VAR_EFFECTIVE_URL: - if((CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &stringp)) - && stringp) - fputs(stringp, stream); - break; - case VAR_HTTP_CODE: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo)) - fprintf(stream, "%03ld", longinfo); - break; - case VAR_HTTP_CODE_PROXY: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_HTTP_CONNECTCODE, - &longinfo)) - fprintf(stream, "%03ld", longinfo); - break; - case VAR_HEADER_SIZE: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - case VAR_REQUEST_SIZE: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_REQUEST_SIZE, &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - case VAR_NUM_CONNECTS: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_NUM_CONNECTS, &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - case VAR_REDIRECT_COUNT: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_REDIRECT_COUNT, &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - case VAR_REDIRECT_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_REDIRECT_TIME, - &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_TOTAL_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_NAMELOOKUP_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, - &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_CONNECT_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_APPCONNECT_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_APPCONNECT_TIME, - &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_PRETRANSFER_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME, - &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_STARTTRANSFER_TIME: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME, - &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_SIZE_UPLOAD: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_SIZE_UPLOAD, &doubleinfo)) - fprintf(stream, "%.0f", doubleinfo); - break; - case VAR_SIZE_DOWNLOAD: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_SIZE_DOWNLOAD, - &doubleinfo)) - fprintf(stream, "%.0f", doubleinfo); - break; - case VAR_SPEED_DOWNLOAD: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_SPEED_DOWNLOAD, - &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_SPEED_UPLOAD: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &doubleinfo)) - fprintf(stream, "%.3f", doubleinfo); - break; - case VAR_CONTENT_TYPE: - if((CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &stringp)) - && stringp) - fputs(stringp, stream); - break; - case VAR_FTP_ENTRY_PATH: - if((CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_FTP_ENTRY_PATH, &stringp)) - && stringp) - fputs(stringp, stream); - break; - case VAR_REDIRECT_URL: - if((CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_REDIRECT_URL, &stringp)) - && stringp) - fputs(stringp, stream); - break; - case VAR_SSL_VERIFY_RESULT: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_SSL_VERIFYRESULT, - &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - case VAR_EFFECTIVE_FILENAME: - if(outs->filename) - fprintf(stream, "%s", outs->filename); - break; - case VAR_PRIMARY_IP: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP, - &stringp)) - fprintf(stream, "%s", stringp); - break; - case VAR_PRIMARY_PORT: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_PRIMARY_PORT, - &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - case VAR_LOCAL_IP: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_LOCAL_IP, - &stringp)) - fprintf(stream, "%s", stringp); - break; - case VAR_LOCAL_PORT: - if(CURLE_OK == - curl_easy_getinfo(curl, CURLINFO_LOCAL_PORT, - &longinfo)) - fprintf(stream, "%ld", longinfo); - break; - default: - break; - } - break; - } - } - if(!match) { - fprintf(stderr, "curl: unknown --write-out variable: '%s'\n", ptr); - } - ptr = end + 1; /* pass the end */ - *end = keepit; - } - else { - /* illegal syntax, then just output the characters that are used */ - fputc('%', stream); - fputc(ptr[1], stream); - ptr += 2; - } - } - } - else if('\\' == *ptr) { - switch(ptr[1]) { - case 'r': - fputc('\r', stream); - break; - case 'n': - fputc('\n', stream); - break; - case 't': - fputc('\t', stream); - break; - default: - /* unknown, just output this */ - fputc(*ptr, stream); - fputc(ptr[1], stream); - break; - } - ptr += 2; - } - else { - fputc(*ptr, stream); - ptr++; - } - } - -} diff --git a/external/libcurl_android/jni/libcurl/src/tool_writeout.h b/external/libcurl_android/jni/libcurl/src/tool_writeout.h deleted file mode 100755 index 4dd3a75a..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_writeout.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef HEADER_CURL_TOOL_WRITEOUT_H -#define HEADER_CURL_TOOL_WRITEOUT_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo); - -#endif /* HEADER_CURL_TOOL_WRITEOUT_H */ diff --git a/external/libcurl_android/jni/libcurl/src/tool_xattr.c b/external/libcurl_android/jni/libcurl/src/tool_xattr.c deleted file mode 100755 index b2666d97..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_xattr.c +++ /dev/null @@ -1,87 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -#ifdef HAVE_FSETXATTR -# include <sys/xattr.h> /* header from libc, not from libattr */ -# define USE_XATTR -#elif defined(__FreeBSD_version) && (__FreeBSD_version > 500000) -# include <sys/types.h> -# include <sys/extattr.h> -# define USE_XATTR -#endif - -#include "tool_xattr.h" - -#include "memdebug.h" /* keep this as LAST include */ - -#ifdef USE_XATTR - -/* mapping table of curl metadata to extended attribute names */ -static const struct xattr_mapping { - const char *attr; /* name of the xattr */ - CURLINFO info; -} mappings[] = { - /* mappings proposed by - * http://freedesktop.org/wiki/CommonExtendedAttributes - */ - { "user.xdg.origin.url", CURLINFO_EFFECTIVE_URL }, - { "user.mime_type", CURLINFO_CONTENT_TYPE }, - { NULL, CURLINFO_NONE } /* last element, abort loop here */ -}; - -/* store metadata from the curl request alongside the downloaded - * file using extended attributes - */ -int fwrite_xattr(CURL *curl, int fd) -{ - int i = 0; - int err = 0; - /* loop through all xattr-curlinfo pairs and abort on a set error */ - while(err == 0 && mappings[i].attr != NULL) { - char *value = NULL; - CURLcode rc = curl_easy_getinfo(curl, mappings[i].info, &value); - if(rc == CURLE_OK && value) { -#ifdef HAVE_FSETXATTR_6 - err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0); -#elif defined(HAVE_FSETXATTR_5) - err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0); -#elif defined(__FreeBSD_version) - err = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, mappings[i].attr, value, - strlen(value)); - /* FreeBSD's extattr_set_fd returns the length of the extended attribute - */ - err = err < 0 ? err : 0; -#endif - } - i++; - } - return err; -} -#else -int fwrite_xattr(CURL *curl, int fd) -{ - (void)curl; - (void)fd; - return 0; -} -#endif diff --git a/external/libcurl_android/jni/libcurl/src/tool_xattr.h b/external/libcurl_android/jni/libcurl/src/tool_xattr.h deleted file mode 100755 index 3f8f585e..00000000 --- a/external/libcurl_android/jni/libcurl/src/tool_xattr.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef HEADER_CURL_TOOL_XATTR_H -#define HEADER_CURL_TOOL_XATTR_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "tool_setup.h" - -int fwrite_xattr(CURL *curl, int fd); - -#endif /* HEADER_CURL_TOOL_XATTR_H */ diff --git a/external/libcurl_android/jni/libcurl/src/version.h b/external/libcurl_android/jni/libcurl/src/version.h deleted file mode 100755 index 9260aa5d..00000000 --- a/external/libcurl_android/jni/libcurl/src/version.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef HEADER_CURL_VERSION_H -#define HEADER_CURL_VERSION_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -#include <curl/curlver.h> - -#define CURL_NAME "curl" -#define CURL_COPYRIGHT LIBCURL_COPYRIGHT -#define CURL_VERSION "7.22.0" -#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR -#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR -#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH -#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") " - -#endif /* HEADER_CURL_VERSION_H */ |