diff --git a/AUTHORS b/AUTHORS index 6e78c64c34bd256412311ef9f297e42b5b712b27..27c5949edb178c627476ba9175a2e05358f05c37 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,7 +5,7 @@ Emmanuel Milou <emmanuel dot milou at savoirfairelinux dot com> - Dynamic loading of audio codecs ( shared libraries ) - Debian packages - GTK client error handling - - Plus many portions of code in sflphoned and sflphone-gtk + - Plus many portions of code in sflphoned and sflphone-gtk - Test and debugging Alexandre Savard <alexandre dot savard at savoirfairelinux dot com> @@ -14,14 +14,14 @@ Alexandre Bourget <alexandre dot bourget at savoirfairelinux dot com> - IAX implementation Guillaume Carmel-Archambault <guillaume.carmel-archambault at savoirfairelinux dot com> - - Presence + - Presence - Contacts Yun Liu <yun.liu at savoirfairelinux dot com> - Change sip library to pjsip - Support multiple accounts registration - Add chinese translation - Many portions of test and debugging - + Polytechnic School of Montreal: - Jean-Francois Blanchard-Dionne <jean-francois.blanchard-dionne at polymtl dot ca> - Ala Eddine Limame <ala-eddine.limame at polymtl dot ca> @@ -49,7 +49,7 @@ Jerome Oufella <jerome dot oufella at savoirfairelinux dot com> Julien Plissonneau Duquene <... at savoirfairelinux dot com> - autotools cleanups -Jean-Philippe Barrette-LaPierre +Jean-Philippe Barrette-LaPierre - Autotools support and portions of code Laurielle Lea diff --git a/CODING b/CODING index 22e7a34a90d790710c037820d27961de22999d69..c1785ec9017998cf73cda9aae0906b6e8df350ca 100644 --- a/CODING +++ b/CODING @@ -1,4 +1,2 @@ Please follow our coding standards when developing http://projects.savoirfairelinux.net/wiki/sflphone/Coding_Standards - - diff --git a/astylerc b/astylerc index 20608435842d7696f67be15e5e3b12c5f98fb14e..5fe7ea2a692f3923a99b1d7502341a6f3ec5874e 100644 --- a/astylerc +++ b/astylerc @@ -3,7 +3,7 @@ # http://astyle.sourceforge.net/astyle.html # Author: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> # Savoir-faire Linux Inc -# http://www.sflphone.org +# http://www.sflphone.org style=stroustrup # stroustrup style http://astyle.sourceforge.net/astyle.html#_style=stroustrup indent=spaces=4 # Use spaces instead of tabs for indentation diff --git a/daemon/AUTHORS b/daemon/AUTHORS index 26e4e78f59305d4894f7058c0be00f8438108a9d..ea49a37b381e4e554b47ee7e35176bfdc0943e8a 100644 --- a/daemon/AUTHORS +++ b/daemon/AUTHORS @@ -5,21 +5,21 @@ Emmanuel Milou <emmanuel dot milou at savoirfairelinux dot com> - Dynamic loading of audio codecs ( shared libraries ) - Debian packages - GTK client error handling - - Plus many portions of code in sflphoned and sflphone-gtk + - Plus many portions of code in sflphoned and sflphone-gtk - Test and debugging Alexandre Bourget <alexandre dot bourget at savoirfairelinux dot com> - IAX implementation Guillaume Carmel-Archambault <guillaume.carmel-archambault at savoirfairelinux dot com> - - Presence + - Presence - Contacts Yun Liu <yun.liu at savoirfairelinux dot com> - Change sip library to pjsip - Support multiple accounts registration - Add chinese translation - Many portions of test and debugging - + Polytechnic School of Montreal: - Jean-Francois Blanchard-Dionne <jean-francois.blanchard-dionne at polymtl dot ca> - Ala Eddine Limame <ala-eddine.limame at polymtl dot ca> @@ -47,7 +47,7 @@ Jerome Oufella <jerome dot oufella at savoirfairelinux dot com> Julien Plissonneau Duquene <... at savoirfairelinux dot com> - autotools cleanups -Jean-Philippe Barrette-LaPierre +Jean-Philippe Barrette-LaPierre - Autotools support and portions of code Laurielle Lea diff --git a/daemon/ChangeLog b/daemon/ChangeLog index e688e585483d8923112cc834e57d5a9fef3cad9a..654f1e1125ae48318118894e7efe596c37ceaf80 100644 --- a/daemon/ChangeLog +++ b/daemon/ChangeLog @@ -183,7 +183,7 @@ 2005-07-25 Laurielle Lea - * Migrate from libeXoSIP 0.9.0 to libeXosip2-1.9.1-pre15 + * Migrate from libeXoSIP 0.9.0 to libeXosip2-1.9.1-pre15 (http://www.antisip.com/download/) 2005-07-21 Laurielle Lea diff --git a/daemon/NEWS b/daemon/NEWS index 598bbaf6993dd44e679b210e87ea35010c437780..8bf233b2e15591be836c9864c47bcc6589249630 100644 --- a/daemon/NEWS +++ b/daemon/NEWS @@ -43,7 +43,7 @@ SFLphoned (0.6.1) / 2005-11-26 * add speex codec (experimental) * fix for codec handling in sdp and audiortp * new codec class - * add portaudio missing file + * add portaudio missing file (thanks to Pierre POMES) * add samplerate and inChannel/outChannel in AudioLayer we could use microphone in mono and speaker in stereo @@ -66,7 +66,7 @@ SFLphoned/SFLphone (0.5a) / 2005-10-17 SFLphone (0.4.1-pre2) / 2005-09-30 * rearranged utilspp use * Bug fix when trying to use more than 6 lines. - * Now, we send a final response to reINVITEs + * Now, we send a final response to reINVITEs (thanks to Mikael Magnusson) * We can build in different build directories. (thanks to Mikael Magnusson) @@ -85,7 +85,7 @@ SFLphone (0.4) / 2005-07-06 * Handle CANCEL method * PortAudio replace OSS and ALSA devices choice * Add PortAudioCpp to make easy use of RingBuffer object for - audio callback + audio callback * Add PortAudio library to make easy sound portability * Fix a few memory leak * Reorganisation of SFLphone architecture @@ -95,7 +95,7 @@ SFLphone (0.4) / 2005-07-06 * Call management updated SFLphone (0.3) / 2005-04-05 - * ALSA driver support added + * ALSA driver support added * GSM audio codec support added * Ringtones support (just ulaw format) added * Notification incoming call added diff --git a/daemon/README b/daemon/README index afc3decbec4a968f7ab33d3032a2e2284bf0fe4d..27f0b8d8f9677de1859bbcf9c07ce4bad27af6b8 100644 --- a/daemon/README +++ b/daemon/README @@ -34,7 +34,7 @@ SFLPhone is a Voice-over-IP software phone. We want it to be: - user friendly (fast, sleek, easy to learn interface) - corporate grade (transfers, holds, perfect audio quality) - fully compatible with Asterisk (SIP and IAX protocols) -- customizable +- customizable As the SIP/audio daemon and the user interface are separate processes, it is easy to provide different user interfaces. SFLPhone0.8 comes with @@ -46,7 +46,7 @@ SFLPhone is actually used by the support team of Savoir-Faire Linux Inc. More information is available on the project homepage: http://www.sflphone.org/ - + Short description of content of source tree ------------------------------------------- @@ -56,7 +56,7 @@ Short description of content of source tree - src/ is the core of SFLphone. It contains the main.cpp, managerimpl.cpp files, audio and gui directories, and files about signalisation SIP. Later, it should be better, when IAX will be implemented, that a directory groups - these protocols. + these protocols. The ManagerImpl class is the intermediaire between all the layer in the tree. - src/audio/ is the audio layer. It contains all about tones, dtmf, audiodriver, rtp layer, audio codec ulaw, alaw and gsm. @@ -79,7 +79,7 @@ cd libs/pjproject ./configure --disable-ilbc-codec && make clean && make dep && make sudo make install -If you already have installed a different version of +If you already have installed a different version of pjsip on your system, you will most likely have some errors such as : diff --git a/daemon/README.gentoo b/daemon/README.gentoo index 26dd1a655a3b58c276a4f7d002f8807de33f91ee..c17db2a1f46bb519e1d3a5fc7888c3e775050838 100644 --- a/daemon/README.gentoo +++ b/daemon/README.gentoo @@ -5,7 +5,7 @@ emerge libosip ACCEPT_KEYWORDS=~x86 emerge libeXosip emerge libsamplerate emerge cvs -emerge =qt-3.3.6-r1 +emerge =qt-3.3.6-r1 cvs ... diff --git a/daemon/autogen.sh b/daemon/autogen.sh index 839ab4aaf4d59197c89c0a18c8cecd83e9d94df6..72a79ea4bf0798d135955a08a7e1c08fd42922f2 100755 --- a/daemon/autogen.sh +++ b/daemon/autogen.sh @@ -1,6 +1,14 @@ #!/bin/sh -e # Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663 -[ ! -e m4 ] && mkdir m4 +mkdir -p m4 + +HOOKS_DIR="`git rev-parse --git-dir`"/hooks +# install pre-commit hook for doing clean commits +if test ! \( -x ${HOOKS_DIR}/hooks/pre-commit -a -L ${HOOKS_DIR}/pre-commit \); +then + rm -f ${HOOKS_DIR}/pre-commit + ln -s ${HOOKS_DIR}/pre-commit.sample ${HOOKS_DIR}/pre-commit +fi autoreconf --force --install --verbose -Wall -I m4 diff --git a/daemon/doc/dbus-api/doc/templates/interface.html b/daemon/doc/dbus-api/doc/templates/interface.html index 79c35b201c8c6d001022567028311f38c8390dee..c159bf511c0014efe9b6e05e7e227cd2b0658c82 100644 --- a/daemon/doc/dbus-api/doc/templates/interface.html +++ b/daemon/doc/dbus-api/doc/templates/interface.html @@ -45,7 +45,7 @@ #end for </table> #end if - + #if $interface.signals <h3>Signals</h3> <table class="summary"> @@ -216,7 +216,7 @@ </ul> </div> #end if - + #if $method.out_args <div class="indent"> <h3>Returns</h3> @@ -234,9 +234,9 @@ </ul> </div> #end if - + $method.get_docstring() - + #if $method.possible_errors <hr/> <div class="indent"> @@ -256,7 +256,7 @@ #end for </div> #end if - + #if $interface.signals <div class="outset signals signal"> <a name="signals"></a> @@ -417,7 +417,7 @@ #end for </div> #end if - + </div> </body> diff --git a/daemon/doc/doxygen/Makefile.am b/daemon/doc/doxygen/Makefile.am index abe5be8b20efa7d7336650ff4afed145658c2f20..9194aa041f5afe75e639edd7a29bfd8f66c847f2 100644 --- a/daemon/doc/doxygen/Makefile.am +++ b/daemon/doc/doxygen/Makefile.am @@ -2,8 +2,8 @@ if ENABLE_DOXYGEN docdir = ${prefix}/share/doc/wifidog-@VERSION@ html_parent_dir = . -HTML_HEADER = -HTML_FOOTER = +HTML_HEADER = +HTML_FOOTER = all: doxygen-trac @@ -19,7 +19,7 @@ doc: clean core-doc gtk-gui-doc %-doc : %-doc.cfg rm -rf $@/ refman.pdf $(DOXYGEN) $< -# $(MAKE) -C latex/ +# $(MAKE) -C latex/ # mv latex/refman.pdf ./refman.pdf diff --git a/daemon/doc/doxygen/blank.html b/daemon/doc/doxygen/blank.html index 8d1c8b69c3fce7bea45c73efd06983e3c419a92f..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 --- a/daemon/doc/doxygen/blank.html +++ b/daemon/doc/doxygen/blank.html @@ -1 +1 @@ - + diff --git a/daemon/doc/doxygen/core-doc.cfg.in b/daemon/doc/doxygen/core-doc.cfg.in index c526acc255ccdcdcaf4fc3c4315b7e8ae7c551a7..6c2f2d07c6925f53b36bb1b7880b402b614aa8ab 100644 --- a/daemon/doc/doxygen/core-doc.cfg.in +++ b/daemon/doc/doxygen/core-doc.cfg.in @@ -5,18 +5,18 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = SFLphone Core -PROJECT_NUMBER = -OUTPUT_DIRECTORY = +PROJECT_NUMBER = +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO QT_AUTOBRIEF = NO @@ -25,7 +25,7 @@ DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 -ALIASES = +ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO @@ -57,11 +57,11 @@ GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = +ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -70,25 +70,25 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO -WARN_FORMAT = -WARN_LOGFILE = +WARN_FORMAT = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = @-top_srcdir-@/src @-top_srcdir-@/src/audio @-top_srcdir-@/src/audio/codecs @-top_srcdir-@/src/dbus @-top_srcdir-@/src/config @-top_srcdir-@/src/zeroconf INPUT_ENCODING = UTF-8 -FILE_PATTERNS = +FILE_PATTERNS = RECURSIVE = NO -EXCLUDE = +EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -106,21 +106,21 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = @-html_dir-@ -HTML_FILE_EXTENSION = +HTML_FILE_EXTENSION = HTML_HEADER = @-html_header-@ HTML_FOOTER = @-html_footer-@ -HTML_STYLESHEET = +HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = +CHM_FILE = +HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO @@ -132,13 +132,13 @@ TREEVIEW_WIDTH = 250 # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO -LATEX_OUTPUT = -LATEX_CMD_NAME = -MAKEINDEX_CMD_NAME = +LATEX_OUTPUT = +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = COMPACT_LATEX = NO PAPER_TYPE = letter -EXTRA_PACKAGES = -LATEX_HEADER = +EXTRA_PACKAGES = +LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -147,25 +147,25 @@ LATEX_HIDE_INDICES = NO # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO -RTF_OUTPUT = +RTF_OUTPUT = COMPACT_RTF = NO RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO -MAN_OUTPUT = -MAN_EXTENSION = +MAN_OUTPUT = +MAN_EXTENSION = MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = +XML_SCHEMA = +XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output @@ -177,32 +177,32 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = +TAGFILES = +GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES -PERL_PATH = +PERL_PATH = #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES @@ -217,8 +217,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO @@ -226,6 +226,6 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO diff --git a/daemon/doc/doxygen/gtk-gui-doc.cfg.in b/daemon/doc/doxygen/gtk-gui-doc.cfg.in index dff19c26003819dcbff825911ab09d5e3150378f..50f2f2191f6a584af12c6911f3cd941872127b9e 100644 --- a/daemon/doc/doxygen/gtk-gui-doc.cfg.in +++ b/daemon/doc/doxygen/gtk-gui-doc.cfg.in @@ -5,18 +5,18 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = SFLPhone GTK GUI -PROJECT_NUMBER = -OUTPUT_DIRECTORY = +PROJECT_NUMBER = +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = YES INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO QT_AUTOBRIEF = NO @@ -25,7 +25,7 @@ DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 -ALIASES = +ALIASES = OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = NO @@ -57,11 +57,11 @@ GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = +ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -70,25 +70,25 @@ WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO -WARN_FORMAT = -WARN_LOGFILE = +WARN_FORMAT = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -INPUT = @-top_srcdir-@/sflphone-gtk/src +INPUT = @-top_srcdir-@/sflphone-gtk/src INPUT_ENCODING = UTF-8 -FILE_PATTERNS = -RECURSIVE = NO -EXCLUDE = +FILE_PATTERNS = +RECURSIVE = NO +EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -106,21 +106,21 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = @-html_dir-@ -HTML_FILE_EXTENSION = +HTML_FILE_EXTENSION = HTML_HEADER = @-html_header-@ HTML_FOOTER = @-html_footer-@ -HTML_STYLESHEET = +HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = +CHM_FILE = +HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO @@ -132,13 +132,13 @@ TREEVIEW_WIDTH = 250 # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO -LATEX_OUTPUT = -LATEX_CMD_NAME = -MAKEINDEX_CMD_NAME = +LATEX_OUTPUT = +LATEX_CMD_NAME = +MAKEINDEX_CMD_NAME = COMPACT_LATEX = NO PAPER_TYPE = letter -EXTRA_PACKAGES = -LATEX_HEADER = +EXTRA_PACKAGES = +LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -147,25 +147,25 @@ LATEX_HIDE_INDICES = NO # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO -RTF_OUTPUT = +RTF_OUTPUT = COMPACT_RTF = NO RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO -MAN_OUTPUT = -MAN_EXTENSION = +MAN_OUTPUT = +MAN_EXTENSION = MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = +XML_SCHEMA = +XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output @@ -177,32 +177,32 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = +TAGFILES = +GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES -PERL_PATH = +PERL_PATH = #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES @@ -217,8 +217,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO @@ -226,6 +226,6 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO diff --git a/daemon/globals.mak b/daemon/globals.mak index fa550b71074b130a7c99c597e86ac58419c3fd45..a6c10a05f5df299160f9d3d18e99f17969e92bc0 100644 --- a/daemon/globals.mak +++ b/daemon/globals.mak @@ -24,7 +24,7 @@ PJSIP_LIBS= \ -lpjsip-simple-$(target) \ -lpjsip-ua-$(target) \ -lpjlib-util-$(target) \ - -lpj-$(target) + -lpj-$(target) SIP_CFLAGS=-I$(src)/libs/pjproject/pjsip/include \ -I$(src)/libs/pjproject/pjlib/include \ @@ -35,13 +35,13 @@ SIP_CFLAGS=-I$(src)/libs/pjproject/pjsip/include \ if BUILD_SPEEX SPEEXCODEC=-DHAVE_SPEEX_CODEC else -SPEEXCODEC= +SPEEXCODEC= endif if BUILD_GSM GSMCODEC=-DHAVE_GSM_CODEC else -GSMCODEC= +GSMCODEC= endif # Preprocessor flags diff --git a/daemon/libs/iax2/Makefile.am b/daemon/libs/iax2/Makefile.am index 5bb06f6ddeb99ad3e183d4832ddf811ed0768263..70750275af673e1321e38582502073fa37f80593 100644 --- a/daemon/libs/iax2/Makefile.am +++ b/daemon/libs/iax2/Makefile.am @@ -3,7 +3,7 @@ AM_CFLAGS += -g -Wall -Wstrict-prototypes -I $(top_srcdir)/libs/iax2/ AM_CFLAGS += -DLIBIAX AM_CFLAGS += -fsigned-char # -DDEBUG_SUPPORT (doesn't compile with it) -# -DDEBUG_DEFAULT +# -DDEBUG_DEFAULT AM_CFLAGS += $(UCFLAGS) noinst_LTLIBRARIES = libiax2.la diff --git a/daemon/libs/iax2/answer.h b/daemon/libs/iax2/answer.h index 2a034204cf93d853bda3f65a40988ade2ed45a7b..0f2be50dae930a2bc7825481edd04bca8a09afe6 100644 --- a/daemon/libs/iax2/answer.h +++ b/daemon/libs/iax2/answer.h @@ -10,228 +10,228 @@ */ static signed short answer[] = { -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 0x19b7, 0x0245, 0xeee5, 0xb875, 0xd9a4, 0x6018, 0x660a, 0xc3c6, -0x8741, 0xff55, 0x4c2e, 0x2146, 0xfed2, 0xf079, 0xcbd4, 0xe561, 0x3c41, 0x3166, -0xd425, 0xdc59, 0x2748, 0x087d, 0xc72b, 0xfe3a, 0x4681, 0x14c6, 0xcf45, 0xdd38, -0xf8dd, 0x0a39, 0x3a5a, 0x32b9, 0xbfec, 0x957f, 0x15a3, 0x70f4, 0x1d95, 0xbfc4, -0xd367, 0xfda0, 0x0dc0, 0x29eb, 0x1fc2, 0xd684, 0xcab1, 0x19c7, 0x29ef, 0xe679, -0xe9d0, 0x2b82, 0x151a, 0xca9f, 0xdb68, 0x1f4a, 0x271c, 0x0e2a, 0xfb32, 0xd1b2, -0xc8ff, 0x2382, 0x6380, 0x0a52, 0xa118, 0xccbf, 0x2ddc, 0x33fd, 0x0964, 0xf2a4, -0xdd81, 0xe092, 0x1a00, 0x325c, 0xf5e3, 0xd6a1, 0x0b6c, 0x1c75, 0xe4f8, 0xe07c, -0x2082, 0x2b3e, 0xf445, 0xdaa9, 0xea13, 0xff3c, 0x245c, 0x35c1, 0xf308, 0xab53, -0xdf59, 0x4698, 0x3f3b, 0xe7f7, 0xca84, 0xed4d, 0x0c3f, 0x1e94, 0x1c2d, 0xf06f, -0xd4df, 0xff34, 0x23d8, 0x001e, 0xe3f1, 0x0b15, 0x2113, 0xf3fd, 0xd768, 0xf9a0, -0x1d31, 0x1c6e, 0x0797, 0xe3a0, 0xce6c, 0xfd7b, 0x422a, 0x2c4c, 0xd364, 0xbf42, -0x0278, 0x303e, 0x1c51, 0xf737, 0xe25a, 0xe75f, 0x0a8f, 0x22ab, 0x05f4, 0xe3f9, -0xf8c4, 0x1705, 0x0162, 0xe49f, 0xfb8b, 0x1e2b, 0x13ac, 0xf044, 0xe07b, 0xf01a, -0x1567, 0x2cbf, 0x0b75, 0xd01b, 0xd206, 0x1563, 0x38d7, 0x0f2e, 0xdb32, 0xdc30, -0x023b, 0x1e44, 0x16eb, 0xf5f7, 0xe425, 0xfa33, 0x14d5, 0x0968, 0xeff2, 0xf762, -0x1137, 0x0e59, 0xf13a, 0xe651, 0xff41, 0x1d60, 0x18fd, 0xf1e6, 0xd75f, 0xf097, -0x20ec, 0x27fa, 0xfba4, 0xd5b8, 0xe68e, 0x1657, 0x2518, 0x04f6, 0xe5a3, 0xe976, -0x0578, 0x18fa, 0x0a92, 0xec0a, 0xef2a, 0x111f, 0x12f4, 0xeec3, 0xe95e, 0x0d3a, -0x18fd, 0xff72, 0xeefc, 0xf114, 0xfaaa, 0x14ee, 0x21db, 0xf56e, 0xcb49, 0xf621, -0x3323, 0x1947, 0xe017, 0xe7e9, 0x0819, 0x0707, 0x084c, 0x0f57, 0xf152, 0xdf92, -0x104a, 0x28eb, 0xedcc, 0xd4ad, 0x1415, 0x296d, 0xed9a, 0xdf57, 0x0cc2, 0x0d95, -0xf7b5, 0x0deb, 0x0b34, 0xd713, 0xea08, 0x38d6, 0x216d, 0xc727, 0xdc32, 0x2cd2, -0x1822, 0xe2d5, 0xfeb3, 0x106c, 0xe6e5, 0xf81e, 0x2fe8, 0x01af, 0xc180, 0x037a, -0x42d8, 0xf88d, 0xc344, 0x0a4f, 0x2c4e, 0xf19d, 0xebeb, 0x162c, 0xf9e9, 0xde93, -0x1b56, 0x2c60, 0xd8aa, 0xce3e, 0x2a41, 0x2eeb, 0xdab1, 0xde32, 0x1c32, 0x0aba, -0xeabe, 0x1008, 0x136d, 0xda2f, 0xec3b, 0x31dd, 0x1130, 0xca79, 0xf5b8, 0x3423, -0x0274, 0xd27d, 0x035e, 0x1e68, 0xf641, 0xf904, 0x1691, 0xef7d, 0xd57a, 0x1c3b, -0x3c23, 0xe881, 0xc274, 0x0af5, 0x2962, 0xfa34, 0xf676, 0x0f71, 0xefcc, 0xe01f, -0x19e7, 0x276f, 0xe694, 0xe134, 0x1c3a, 0x0e8b, 0xd8e7, 0xfa81, 0x2f8b, 0x07c5, -0xd904, 0xf6fa, 0x0ca5, 0xf9a2, 0x0dc7, 0x2623, 0xec54, 0xbe23, 0x02b6, 0x4296, -0x10cd, 0xda61, 0xf11c, 0x0103, 0xf41c, 0x10b4, 0x2a03, 0xf63c, 0xce1a, 0xfdbd, -0x1fb4, 0xfc51, 0xf727, 0x1c8a, 0x04ff, 0xcf41, 0xec05, 0x2913, 0x1ce8, 0xf70c, -0xf744, 0xede8, 0xdd77, 0x0d99, 0x43f1, 0x119c, 0xc14f, 0xd60e, 0x17cb, 0x1e19, -0x0d4e, 0x0c95, 0xeed1, 0xcdf4, 0xf7a5, 0x331f, 0x1cd0, 0xeb17, 0xf082, 0xfb19, -0xe899, 0xfdeb, 0x323c, 0x2036, 0xdad3, 0xd134, 0xfd03, 0x1345, 0x1c10, 0x2239, -0xf656, 0xbc22, 0xdc3f, 0x3392, 0x3d59, 0xfd77, 0xdb4d, 0xe23f, 0xedbe, 0x0f7e, -0x35cc, 0x1947, 0xd5dc, 0xd1bf, 0x035d, 0x16fc, 0x1174, 0x1675, 0x0249, 0xd2d4, -0xd851, 0x184d, 0x32fe, 0x0f91, 0xee14, 0xe1e6, 0xdf9b, 0x016b, 0x3668, 0x2b2b, -0xe20c, 0xc554, 0xf257, 0x1c05, 0x1fc5, 0x14f0, 0xf891, 0xd41c, 0xdf83, 0x1865, -0x2de1, 0x0b16, 0xed58, 0xea0c, 0xea79, 0xfbd9, 0x22af, 0x2732, 0xf62f, 0xd389, -0xe7d9, 0x0b39, 0x1cdc, 0x1de3, 0x038a, 0xd809, 0xd5f7, 0x0b55, 0x305e, 0x1910, -0xf02e, 0xe089, 0xe7c7, 0x0195, 0x2265, 0x21da, 0xf743, 0xd8f2, 0xe978, 0x09a1, -0x190a, 0x17c5, 0x045a, 0xe46d, 0xdd06, 0xffb2, 0x2293, 0x1cfe, 0xfd4d, 0xe4f9, -0xe310, 0xfaf1, 0x1d22, 0x2376, 0x0113, 0xde3a, 0xe21b, 0x0204, 0x1ba1, 0x1bd6, -0x0333, 0xe563, 0xe104, 0xfd51, 0x1bc1, 0x1ccf, 0x0285, 0xe757, 0xe35e, 0xfaf2, -0x185d, 0x1d46, 0x06b7, 0xec13, 0xe108, 0xef6e, 0x121d, 0x2a17, 0x16a6, 0xe32c, -0xc9a9, 0xf070, 0x2f48, 0x3788, 0xfa4e, 0xc32a, 0xd9c2, 0x1fa1, 0x36fe, 0x07fa, -0xd9e4, 0xe577, 0x0e5e, 0x1755, 0xfb53, 0xed71, 0x0540, 0x19e0, 0x0301, 0xdc97, -0xe391, 0x1937, 0x367c, 0x0bc9, 0xca4c, 0xc96b, 0x105d, 0x461f, 0x2416, 0xd481, -0xbc97, 0xf8b7, 0x39af, 0x2ec9, 0xecc6, 0xcb50, 0xeee3, 0x1ffe, 0x1e8e, 0xf700, -0xe66a, 0xff58, 0x149f, 0x02e5, 0xe792, 0xf2d8, 0x1a4d, 0x225a, 0xf642, 0xce7f, -0xe6a6, 0x25e2, 0x38f5, 0x01d0, 0xc50f, 0xd243, 0x19bd, 0x3fc6, 0x14f0, 0xd2d7, -0xcdb6, 0x069a, 0x2ffe, 0x1847, 0xe6f8, 0xdf0a, 0x0337, 0x1a90, 0x067a, 0xeb5b, -0xf541, 0x143b, 0x14f2, 0xf092, 0xdc02, 0xfb91, 0x28a3, 0x2274, 0xeaa8, 0xc9e7, -0xef48, 0x2d01, 0x322e, 0xf6d2, 0xc7cb, 0xe13b, 0x1fda, 0x3217, 0x0458, 0xd690, -0xe2bf, 0x11c4, 0x21d5, 0x0291, 0xe5c8, 0xf3a9, 0x12ba, 0x11aa, 0xf22b, 0xe627, -0x03ec, 0x219a, 0x1036, 0xe2f2, 0xd93f, 0x059c, 0x2ed6, 0x1b75, 0xe227, 0xce55, -0xfb19, 0x2de0, 0x2477, 0xed08, 0xd148, 0xf307, 0x21d4, 0x2002, 0xf543, 0xdeac, -0xf7f9, 0x18a9, 0x11d6, 0xf0ef, 0xe8e4, 0x05ea, 0x1ba5, 0x0727, 0xe448, 0xe748, -0x100e, 0x265e, 0x07fc, 0xdbae, 0xde78, 0x0efa, 0x2ce0, 0x0f94, 0xddf1, 0xd9ea, -0x0797, 0x28f6, 0x12eb, 0xe60c, 0xdf46, 0x0469, 0x1fbb, 0x0ced, 0xe9f6, 0xe95f, -0x09fe, 0x1ab9, 0x02cb, 0xe5a4, 0xef2a, 0x1327, 0x1d7b, 0xfd07, 0xde3d, 0xed9c, -0x17e5, 0x22e7, 0xfe3a, 0xdb38, 0xe9b9, 0x161a, 0x2416, 0x0175, 0xde3d, 0xe9de, -0x1294, 0x1fc9, 0x00ea, 0xe2a7, 0xeee2, 0x1298, 0x1a7d, 0xfc1d, 0xe3bb, 0xf47a, -0x1642, 0x185e, 0xf727, 0xe1af, 0xf709, 0x19c3, 0x18e7, 0xf50d, 0xe010, 0xf75b, -0x1a9c, 0x18d8, 0xf4c5, 0xe0c9, 0xf865, 0x1a1c, 0x16d5, 0xf3a6, 0xe257, 0xfaf2, -0x1a44, 0x14d5, 0xf34f, 0xe4b6, 0xfc77, 0x17d5, 0x0ff8, 0xf133, 0xe8b7, 0x0344, -0x1a37, 0x0ad5, 0xe95e, 0xe61a, 0x08a5, 0x227e, 0x0e33, 0xe4a7, 0xdd70, 0x03b0, -0x25f4, 0x17b2, 0xec0a, 0xdb4e, 0xf898, 0x1ba3, 0x18f6, 0xf973, 0xe87f, 0xf77a, -0x0b93, 0x096c, 0xfb0e, 0xfb03, 0x0896, 0x0940, 0xf51d, 0xe904, 0xfdc7, 0x1dda, -0x1bf9, 0xf29b, 0xd37f, 0xea1b, 0x1f37, 0x3175, 0x07eb, 0xd3f7, 0xd46b, 0x077d, -0x2eeb, 0x1e67, 0xeeae, 0xd8c7, 0xef85, 0x1119, 0x18d3, 0x088e, 0xf953, 0xf5ad, -0xf556, 0xf63d, 0x0234, 0x167a, 0x19a1, 0xfbf9, 0xd873, 0xdd4b, 0x0f06, 0x3748, -0x21e6, 0xe181, 0xc032, 0xe79a, 0x2bec, 0x3e76, 0x0b1b, 0xce41, 0xcb23, 0xff96, -0x2d79, 0x26d1, 0xfcc7, 0xdf8a, 0xe525, 0xfd83, 0x10f1, 0x16d7, 0x0f50, 0xfaea, -0xe3f1, 0xe20f, 0x0158, 0x27d9, 0x2866, 0xf96f, 0xcb34, 0xd563, 0x11d6, 0x3d25, -0x2424, 0xe254, 0xc2c9, 0xe7cd, 0x248d, 0x34f5, 0x0c42, 0xdcd0, 0xd827, 0xfa65, -0x19eb, 0x1b50, 0x0721, 0xf396, 0xeb9c, 0xefde, 0x0016, 0x1594, 0x1cc1, 0x0658, -0xe22b, 0xd852, 0xfb3e, 0x2923, 0x2c78, 0xfc87, 0xcdb5, 0xd69c, 0x0e3c, 0x3527, -0x201f, 0xe993, 0xcf9e, 0xeb21, 0x183f, 0x25ea, 0x0c93, 0xed4d, 0xe5f9, 0xf548, -0x07fb, 0x117c, 0x0ff2, 0x0398, 0xf08c, 0xe628, 0xf489, 0x143b, 0x2419, 0x0ccf, -0xe2cc, 0xd5a6, 0xf861, 0x2615, 0x2a1b, 0xfeb4, 0xd543, 0xdc53, 0x09b4, 0x2901, -0x19ff, 0xf24a, 0xde86, 0xeec4, 0x0b7b, 0x1733, 0x0d0a, 0xfc24, 0xf1bb, 0xf110, -0xfa03, 0x0a0f, 0x15d4, 0x0e21, 0xf435, 0xe17e, 0xee90, 0x1225, 0x2527, 0x0efa, -0xe61f, 0xd916, 0xf7b8, 0x1f50, 0x2326, 0x0099, 0xe01e, 0xe473, 0x0491, 0x1b37, -0x1360, 0xfb17, 0xecd9, 0xf20d, 0x0051, 0x0aec, 0x0d4a, 0x073d, 0xfa5a, 0xeeb8, -0xf165, 0x0516, 0x17dc, 0x12da, 0xf71b, 0xe213, 0xed85, 0x0eef, 0x20c8, 0x0e09, -0xebcc, 0xe0d4, 0xf848, 0x1637, 0x19d6, 0x026b, 0xec09, 0xed00, 0xff9b, 0x0e5a, -0x0d6b, 0x026c, 0xf865, 0xf4da, 0xf888, 0x025a, 0x0cbb, 0x0d53, 0xff96, 0xeefa, -0xee80, 0x021c, 0x15d6, 0x126a, 0xf9c1, 0xe724, 0xf017, 0x0aa1, 0x18b6, 0x0b4e, -0xf2d7, 0xea91, 0xf957, 0x0cac, 0x1061, 0x03f4, 0xf6ad, 0xf476, 0xfbdf, 0x0489, -0x08b1, 0x06df, 0xffcf, 0xf766, 0xf537, 0xfddf, 0x0ad4, 0x0e15, 0x01da, 0xf205, -0xf0a0, 0x0082, 0x1066, 0x0e41, 0xfc71, 0xef1b, 0xf4ad, 0x05cd, 0x0f32, 0x07ed, -0xf9c8, 0xf401, 0xfa93, 0x04af, 0x088c, 0x04a7, 0xfe15, 0xf9f1, 0xfa64, 0xff1e, -0x0539, 0x078c, 0x02af, 0xfa1a, 0xf69d, 0xfd09, 0x075b, 0x0a3d, 0x01f2, 0xf761, -0xf642, 0xffa7, 0x08f3, 0x0830, 0xff05, 0xf7db, 0xf9bc, 0x0174, 0x068b, 0x04b2, -0xfeff, 0xfb39, 0xfc1a, 000000, 0x0371, 0x03d7, 0x00fe, 0xfd37, 0xfbe0, 0xfe78, -0x02af, 0x044a, 0x0180, 0xfd43, 0xfc00, 0xfed1, 0x02aa, 0x0346, 0x00dd, 0xfde0, -0xfbfe, 0x0114, 0x0987, 0x04bc, 0xf49d, 0xf23a, 0x06ab, 0x162e, 0x0544, 0xe76b, -0xea25, 0x1015, 0x2474, 0x0431, 0xd7d3, 0xe1ec, 0x1923, 0x2df5, 0x01cd, 0xd386, -0xe3d9, 0x1b9d, 0x2c62, 0xfeb8, 0xd31a, 0xe6ba, 0x1dbd, 0x2abb, 0xfbab, 0xd2ed, -0xe9ab, 0x1fa7, 0x28ef, 0xf8b3, 0xd2f5, 0xeca5, 0x2160, 0x26fd, 0xf5d7, 0xd334, -0xefa1, 0x22e5, 0x24ea, 0xf31b, 0xd3a9, 0xf29f, 0x2435, 0x22b6, 0xf07e, 0xd44e, -0xf59b, 0x2551, 0x2067, 0xee08, 0xd527, 0xf88e, 0x2639, 0x1e00, 0xebb6, 0xd62d, -0xfb77, 0x26eb, 0x1b85, 0xe98b, 0xd75f, 0xfe51, 0x276b, 0x18f9, 0xe78e, 0xd8b9, -0x011a, 0x27b6, 0x1660, 0xe5bb, 0xda3a, 0x03cc, 0x27cf, 0x13bd, 0xe415, 0xdbdf, -0x066a, 0x27b7, 0x1117, 0xe29e, 0xdda5, 0x08ec, 0x276e, 0x0e6d, 0xe154, 0xdf89, -0x0b52, 0x26f6, 0x0bc7, 0xe039, 0xe185, 0x0d96, 0x2653, 0x0924, 0xdf4e, 0xe399, -0x0fb9, 0x2584, 0x068b, 0xde93, 0xe5c0, 0x11b8, 0x248e, 0x03fd, 0xde08, 0xe7f8, -0x1390, 0x2372, 0x0180, 0xddaa, 0xea3c, 0x1544, 0x2231, 0xff12, 0xdd7a, 0xec89, -0x16cf, 0x20d0, 0xfcb9, 0xdd77, 0xeedb, 0x1831, 0x1f52, 0xfa77, 0xdd9f, 0xf132, -0x1969, 0x1db7, 0xf850, 0xddf1, 0xf385, 0x1a75, 0x1c06, 0xf645, 0xde6b, 0xf5d7, -0x1b5b, 0x1a3f, 0xf457, 0xdf0d, 0xf820, 0x1c13, 0x1867, 0xf288, 0xdfd2, 0xfa5f, -0x1ca1, 0x167f, 0xf0db, 0xe0ba, 0xfc92, 0x1d06, 0x148b, 0xef50, 0xe1c1, 0xfeb5, -0x1d43, 0x1290, 0xede9, 0xe2e6, 0x00c6, 0x1d58, 0x108e, 0xeca7, 0xe426, 0x02c4, -0x1d45, 0x0e8a, 0xeb8a, 0xe57f, 0x04a9, 0x1d0e, 0x0c87, 0xea92, 0xe6ec, 0x0677, -0x1cb2, 0x0a87, 0xe9be, 0xe86e, 0x082a, 0x1c34, 0x088b, 0xe912, 0xe9fe, 0x09c1, -0x1b95, 0x069c, 0xe88c, 0xeb9c, 0x0b3a, 0x1ad9, 0x04b6, 0xe82a, 0xed43, 0x0c96, -0x1a00, 0x02df, 0xe7eb, 0xeef3, 0x0dd0, 0x190d, 0x0116, 0xe7d0, 0xf0a8, 0x0eec, -0x1804, 0xff61, 0xe7d8, 0xf25d, 0x0fe6, 0x16e3, 0xfdc0, 0xe800, 0xf412, 0x10bf, -0x15b1, 0xfc36, 0xe848, 0xf5c5, 0x1176, 0x146e, 0xfac2, 0xe8ad, 0xf771, 0x120d, -0x1320, 0xf969, 0xe92e, 0xf913, 0x1282, 0x11c4, 0xf828, 0xe9cb, 0xfaac, 0x12d8, -0x1062, 0xf703, 0xea7e, 0xfc38, 0x130e, 0x0efa, 0xf5fb, 0xeb49, 0xfdb5, 0x1325, -0x0d8e, 0xf50e, 0xec26, 0xff20, 0x131e, 0x0c21, 0xf43f, 0xed15, 0x007a, 0x12fa, -0x0ab6, 0xf38d, 0xee15, 0x01be, 0x12bd, 0x094f, 0xf2f9, 0xef22, 0x02ef, 0x1265, -0x07f0, 0xf283, 0xf037, 0x0408, 0x11f6, 0x0699, 0xf226, 0xf156, 0x050a, 0x1170, -0x054b, 0xf1e8, 0xf27a, 0x05f4, 0x10d8, 0x040c, 0xf1c5, 0xf3a3, 0x06c2, 0x102c, -0x02da, 0xf1bc, 0xf4cc, 0x0779, 0x0f71, 0x01b7, 0xf1cc, 0xf5f5, 0x0815, 0x0ea7, -0x00a8, 0xf1f4, 0xf719, 0x0899, 0x0dd2, 0xffab, 0xf233, 0xf839, 0x0902, 0x0cf4, -0xfec0, 0xf288, 0xf950, 0x0952, 0x0c0e, 0xfdec, 0xf2ee, 0xfa5d, 0x0989, 0x0b23, -0xfd2d, 0xf368, 0xfb62, 0x09a7, 0x0a35, 0xfc85, 0xf3f1, 0xfc58, 0x09af, 0x0946, -0xfbf2, 0xf488, 0xfd3f, 0x09a1, 0x0859, 0xfb77, 0xf52c, 0xfe17, 0x097d, 0x076f, -0xfb14, 0xf5d8, 0xfede, 0x0945, 0x068a, 0xfac6, 0xf68d, 0xff93, 0x08fb, 0x05ad, -0xfa8e, 0xf747, 0x0034, 0x08a1, 0x04da, 0xfa6f, 0xf805, 0x00c2, 0x0836, 0x0410, -0xfa63, 0xf8c6, 0x013c, 0x07bf, 0x0354, 0xfa6c, 0xf985, 0x01a1, 0x073b, 0x02a4, -0xfa8a, 0xfa43, 0x01f1, 0x06af, 0x0204, 0xfab9, 0xfafc, 0x022c, 0x0619, 0x0175, -0xfafa, 0xfbae, 0x0252, 0x057f, 0x00f6, 0xfb4b, 0xfc5a, 0x0263, 0x04e0, 0x008b, -0xfbaa, 0xfcfa, 0x0262, 0x0440, 0x0032, 0xfc16, 0xfd90, 0x024b, 0x03a0, 0xffec, -0xfc8c, 0xfe19, 0x0225, 0x0301, 0xffb9, 0xfd0c, 0xfe93, 0x01ea, 0x0267, 0xff9c, -0xfd95, 0xfefe, 0x01a0, 0x01d3, 0xff90, 0xfe22, 0xff5a, 0x0147, 0x0145, 0xff99, -0xfeb3, 0xffa1, 0x00e0, 0x00c3, 0xffb6, 0xff46, 0xffd9, 0x006d, 0x004b, 0xffe5, -0xffda, 0xfffc, 000000, 0xfffe, 000000, 0xffff, 000000, 0xffff, 0xffff, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 0x19b7, 0x0245, 0xeee5, 0xb875, 0xd9a4, 0x6018, 0x660a, 0xc3c6, +0x8741, 0xff55, 0x4c2e, 0x2146, 0xfed2, 0xf079, 0xcbd4, 0xe561, 0x3c41, 0x3166, +0xd425, 0xdc59, 0x2748, 0x087d, 0xc72b, 0xfe3a, 0x4681, 0x14c6, 0xcf45, 0xdd38, +0xf8dd, 0x0a39, 0x3a5a, 0x32b9, 0xbfec, 0x957f, 0x15a3, 0x70f4, 0x1d95, 0xbfc4, +0xd367, 0xfda0, 0x0dc0, 0x29eb, 0x1fc2, 0xd684, 0xcab1, 0x19c7, 0x29ef, 0xe679, +0xe9d0, 0x2b82, 0x151a, 0xca9f, 0xdb68, 0x1f4a, 0x271c, 0x0e2a, 0xfb32, 0xd1b2, +0xc8ff, 0x2382, 0x6380, 0x0a52, 0xa118, 0xccbf, 0x2ddc, 0x33fd, 0x0964, 0xf2a4, +0xdd81, 0xe092, 0x1a00, 0x325c, 0xf5e3, 0xd6a1, 0x0b6c, 0x1c75, 0xe4f8, 0xe07c, +0x2082, 0x2b3e, 0xf445, 0xdaa9, 0xea13, 0xff3c, 0x245c, 0x35c1, 0xf308, 0xab53, +0xdf59, 0x4698, 0x3f3b, 0xe7f7, 0xca84, 0xed4d, 0x0c3f, 0x1e94, 0x1c2d, 0xf06f, +0xd4df, 0xff34, 0x23d8, 0x001e, 0xe3f1, 0x0b15, 0x2113, 0xf3fd, 0xd768, 0xf9a0, +0x1d31, 0x1c6e, 0x0797, 0xe3a0, 0xce6c, 0xfd7b, 0x422a, 0x2c4c, 0xd364, 0xbf42, +0x0278, 0x303e, 0x1c51, 0xf737, 0xe25a, 0xe75f, 0x0a8f, 0x22ab, 0x05f4, 0xe3f9, +0xf8c4, 0x1705, 0x0162, 0xe49f, 0xfb8b, 0x1e2b, 0x13ac, 0xf044, 0xe07b, 0xf01a, +0x1567, 0x2cbf, 0x0b75, 0xd01b, 0xd206, 0x1563, 0x38d7, 0x0f2e, 0xdb32, 0xdc30, +0x023b, 0x1e44, 0x16eb, 0xf5f7, 0xe425, 0xfa33, 0x14d5, 0x0968, 0xeff2, 0xf762, +0x1137, 0x0e59, 0xf13a, 0xe651, 0xff41, 0x1d60, 0x18fd, 0xf1e6, 0xd75f, 0xf097, +0x20ec, 0x27fa, 0xfba4, 0xd5b8, 0xe68e, 0x1657, 0x2518, 0x04f6, 0xe5a3, 0xe976, +0x0578, 0x18fa, 0x0a92, 0xec0a, 0xef2a, 0x111f, 0x12f4, 0xeec3, 0xe95e, 0x0d3a, +0x18fd, 0xff72, 0xeefc, 0xf114, 0xfaaa, 0x14ee, 0x21db, 0xf56e, 0xcb49, 0xf621, +0x3323, 0x1947, 0xe017, 0xe7e9, 0x0819, 0x0707, 0x084c, 0x0f57, 0xf152, 0xdf92, +0x104a, 0x28eb, 0xedcc, 0xd4ad, 0x1415, 0x296d, 0xed9a, 0xdf57, 0x0cc2, 0x0d95, +0xf7b5, 0x0deb, 0x0b34, 0xd713, 0xea08, 0x38d6, 0x216d, 0xc727, 0xdc32, 0x2cd2, +0x1822, 0xe2d5, 0xfeb3, 0x106c, 0xe6e5, 0xf81e, 0x2fe8, 0x01af, 0xc180, 0x037a, +0x42d8, 0xf88d, 0xc344, 0x0a4f, 0x2c4e, 0xf19d, 0xebeb, 0x162c, 0xf9e9, 0xde93, +0x1b56, 0x2c60, 0xd8aa, 0xce3e, 0x2a41, 0x2eeb, 0xdab1, 0xde32, 0x1c32, 0x0aba, +0xeabe, 0x1008, 0x136d, 0xda2f, 0xec3b, 0x31dd, 0x1130, 0xca79, 0xf5b8, 0x3423, +0x0274, 0xd27d, 0x035e, 0x1e68, 0xf641, 0xf904, 0x1691, 0xef7d, 0xd57a, 0x1c3b, +0x3c23, 0xe881, 0xc274, 0x0af5, 0x2962, 0xfa34, 0xf676, 0x0f71, 0xefcc, 0xe01f, +0x19e7, 0x276f, 0xe694, 0xe134, 0x1c3a, 0x0e8b, 0xd8e7, 0xfa81, 0x2f8b, 0x07c5, +0xd904, 0xf6fa, 0x0ca5, 0xf9a2, 0x0dc7, 0x2623, 0xec54, 0xbe23, 0x02b6, 0x4296, +0x10cd, 0xda61, 0xf11c, 0x0103, 0xf41c, 0x10b4, 0x2a03, 0xf63c, 0xce1a, 0xfdbd, +0x1fb4, 0xfc51, 0xf727, 0x1c8a, 0x04ff, 0xcf41, 0xec05, 0x2913, 0x1ce8, 0xf70c, +0xf744, 0xede8, 0xdd77, 0x0d99, 0x43f1, 0x119c, 0xc14f, 0xd60e, 0x17cb, 0x1e19, +0x0d4e, 0x0c95, 0xeed1, 0xcdf4, 0xf7a5, 0x331f, 0x1cd0, 0xeb17, 0xf082, 0xfb19, +0xe899, 0xfdeb, 0x323c, 0x2036, 0xdad3, 0xd134, 0xfd03, 0x1345, 0x1c10, 0x2239, +0xf656, 0xbc22, 0xdc3f, 0x3392, 0x3d59, 0xfd77, 0xdb4d, 0xe23f, 0xedbe, 0x0f7e, +0x35cc, 0x1947, 0xd5dc, 0xd1bf, 0x035d, 0x16fc, 0x1174, 0x1675, 0x0249, 0xd2d4, +0xd851, 0x184d, 0x32fe, 0x0f91, 0xee14, 0xe1e6, 0xdf9b, 0x016b, 0x3668, 0x2b2b, +0xe20c, 0xc554, 0xf257, 0x1c05, 0x1fc5, 0x14f0, 0xf891, 0xd41c, 0xdf83, 0x1865, +0x2de1, 0x0b16, 0xed58, 0xea0c, 0xea79, 0xfbd9, 0x22af, 0x2732, 0xf62f, 0xd389, +0xe7d9, 0x0b39, 0x1cdc, 0x1de3, 0x038a, 0xd809, 0xd5f7, 0x0b55, 0x305e, 0x1910, +0xf02e, 0xe089, 0xe7c7, 0x0195, 0x2265, 0x21da, 0xf743, 0xd8f2, 0xe978, 0x09a1, +0x190a, 0x17c5, 0x045a, 0xe46d, 0xdd06, 0xffb2, 0x2293, 0x1cfe, 0xfd4d, 0xe4f9, +0xe310, 0xfaf1, 0x1d22, 0x2376, 0x0113, 0xde3a, 0xe21b, 0x0204, 0x1ba1, 0x1bd6, +0x0333, 0xe563, 0xe104, 0xfd51, 0x1bc1, 0x1ccf, 0x0285, 0xe757, 0xe35e, 0xfaf2, +0x185d, 0x1d46, 0x06b7, 0xec13, 0xe108, 0xef6e, 0x121d, 0x2a17, 0x16a6, 0xe32c, +0xc9a9, 0xf070, 0x2f48, 0x3788, 0xfa4e, 0xc32a, 0xd9c2, 0x1fa1, 0x36fe, 0x07fa, +0xd9e4, 0xe577, 0x0e5e, 0x1755, 0xfb53, 0xed71, 0x0540, 0x19e0, 0x0301, 0xdc97, +0xe391, 0x1937, 0x367c, 0x0bc9, 0xca4c, 0xc96b, 0x105d, 0x461f, 0x2416, 0xd481, +0xbc97, 0xf8b7, 0x39af, 0x2ec9, 0xecc6, 0xcb50, 0xeee3, 0x1ffe, 0x1e8e, 0xf700, +0xe66a, 0xff58, 0x149f, 0x02e5, 0xe792, 0xf2d8, 0x1a4d, 0x225a, 0xf642, 0xce7f, +0xe6a6, 0x25e2, 0x38f5, 0x01d0, 0xc50f, 0xd243, 0x19bd, 0x3fc6, 0x14f0, 0xd2d7, +0xcdb6, 0x069a, 0x2ffe, 0x1847, 0xe6f8, 0xdf0a, 0x0337, 0x1a90, 0x067a, 0xeb5b, +0xf541, 0x143b, 0x14f2, 0xf092, 0xdc02, 0xfb91, 0x28a3, 0x2274, 0xeaa8, 0xc9e7, +0xef48, 0x2d01, 0x322e, 0xf6d2, 0xc7cb, 0xe13b, 0x1fda, 0x3217, 0x0458, 0xd690, +0xe2bf, 0x11c4, 0x21d5, 0x0291, 0xe5c8, 0xf3a9, 0x12ba, 0x11aa, 0xf22b, 0xe627, +0x03ec, 0x219a, 0x1036, 0xe2f2, 0xd93f, 0x059c, 0x2ed6, 0x1b75, 0xe227, 0xce55, +0xfb19, 0x2de0, 0x2477, 0xed08, 0xd148, 0xf307, 0x21d4, 0x2002, 0xf543, 0xdeac, +0xf7f9, 0x18a9, 0x11d6, 0xf0ef, 0xe8e4, 0x05ea, 0x1ba5, 0x0727, 0xe448, 0xe748, +0x100e, 0x265e, 0x07fc, 0xdbae, 0xde78, 0x0efa, 0x2ce0, 0x0f94, 0xddf1, 0xd9ea, +0x0797, 0x28f6, 0x12eb, 0xe60c, 0xdf46, 0x0469, 0x1fbb, 0x0ced, 0xe9f6, 0xe95f, +0x09fe, 0x1ab9, 0x02cb, 0xe5a4, 0xef2a, 0x1327, 0x1d7b, 0xfd07, 0xde3d, 0xed9c, +0x17e5, 0x22e7, 0xfe3a, 0xdb38, 0xe9b9, 0x161a, 0x2416, 0x0175, 0xde3d, 0xe9de, +0x1294, 0x1fc9, 0x00ea, 0xe2a7, 0xeee2, 0x1298, 0x1a7d, 0xfc1d, 0xe3bb, 0xf47a, +0x1642, 0x185e, 0xf727, 0xe1af, 0xf709, 0x19c3, 0x18e7, 0xf50d, 0xe010, 0xf75b, +0x1a9c, 0x18d8, 0xf4c5, 0xe0c9, 0xf865, 0x1a1c, 0x16d5, 0xf3a6, 0xe257, 0xfaf2, +0x1a44, 0x14d5, 0xf34f, 0xe4b6, 0xfc77, 0x17d5, 0x0ff8, 0xf133, 0xe8b7, 0x0344, +0x1a37, 0x0ad5, 0xe95e, 0xe61a, 0x08a5, 0x227e, 0x0e33, 0xe4a7, 0xdd70, 0x03b0, +0x25f4, 0x17b2, 0xec0a, 0xdb4e, 0xf898, 0x1ba3, 0x18f6, 0xf973, 0xe87f, 0xf77a, +0x0b93, 0x096c, 0xfb0e, 0xfb03, 0x0896, 0x0940, 0xf51d, 0xe904, 0xfdc7, 0x1dda, +0x1bf9, 0xf29b, 0xd37f, 0xea1b, 0x1f37, 0x3175, 0x07eb, 0xd3f7, 0xd46b, 0x077d, +0x2eeb, 0x1e67, 0xeeae, 0xd8c7, 0xef85, 0x1119, 0x18d3, 0x088e, 0xf953, 0xf5ad, +0xf556, 0xf63d, 0x0234, 0x167a, 0x19a1, 0xfbf9, 0xd873, 0xdd4b, 0x0f06, 0x3748, +0x21e6, 0xe181, 0xc032, 0xe79a, 0x2bec, 0x3e76, 0x0b1b, 0xce41, 0xcb23, 0xff96, +0x2d79, 0x26d1, 0xfcc7, 0xdf8a, 0xe525, 0xfd83, 0x10f1, 0x16d7, 0x0f50, 0xfaea, +0xe3f1, 0xe20f, 0x0158, 0x27d9, 0x2866, 0xf96f, 0xcb34, 0xd563, 0x11d6, 0x3d25, +0x2424, 0xe254, 0xc2c9, 0xe7cd, 0x248d, 0x34f5, 0x0c42, 0xdcd0, 0xd827, 0xfa65, +0x19eb, 0x1b50, 0x0721, 0xf396, 0xeb9c, 0xefde, 0x0016, 0x1594, 0x1cc1, 0x0658, +0xe22b, 0xd852, 0xfb3e, 0x2923, 0x2c78, 0xfc87, 0xcdb5, 0xd69c, 0x0e3c, 0x3527, +0x201f, 0xe993, 0xcf9e, 0xeb21, 0x183f, 0x25ea, 0x0c93, 0xed4d, 0xe5f9, 0xf548, +0x07fb, 0x117c, 0x0ff2, 0x0398, 0xf08c, 0xe628, 0xf489, 0x143b, 0x2419, 0x0ccf, +0xe2cc, 0xd5a6, 0xf861, 0x2615, 0x2a1b, 0xfeb4, 0xd543, 0xdc53, 0x09b4, 0x2901, +0x19ff, 0xf24a, 0xde86, 0xeec4, 0x0b7b, 0x1733, 0x0d0a, 0xfc24, 0xf1bb, 0xf110, +0xfa03, 0x0a0f, 0x15d4, 0x0e21, 0xf435, 0xe17e, 0xee90, 0x1225, 0x2527, 0x0efa, +0xe61f, 0xd916, 0xf7b8, 0x1f50, 0x2326, 0x0099, 0xe01e, 0xe473, 0x0491, 0x1b37, +0x1360, 0xfb17, 0xecd9, 0xf20d, 0x0051, 0x0aec, 0x0d4a, 0x073d, 0xfa5a, 0xeeb8, +0xf165, 0x0516, 0x17dc, 0x12da, 0xf71b, 0xe213, 0xed85, 0x0eef, 0x20c8, 0x0e09, +0xebcc, 0xe0d4, 0xf848, 0x1637, 0x19d6, 0x026b, 0xec09, 0xed00, 0xff9b, 0x0e5a, +0x0d6b, 0x026c, 0xf865, 0xf4da, 0xf888, 0x025a, 0x0cbb, 0x0d53, 0xff96, 0xeefa, +0xee80, 0x021c, 0x15d6, 0x126a, 0xf9c1, 0xe724, 0xf017, 0x0aa1, 0x18b6, 0x0b4e, +0xf2d7, 0xea91, 0xf957, 0x0cac, 0x1061, 0x03f4, 0xf6ad, 0xf476, 0xfbdf, 0x0489, +0x08b1, 0x06df, 0xffcf, 0xf766, 0xf537, 0xfddf, 0x0ad4, 0x0e15, 0x01da, 0xf205, +0xf0a0, 0x0082, 0x1066, 0x0e41, 0xfc71, 0xef1b, 0xf4ad, 0x05cd, 0x0f32, 0x07ed, +0xf9c8, 0xf401, 0xfa93, 0x04af, 0x088c, 0x04a7, 0xfe15, 0xf9f1, 0xfa64, 0xff1e, +0x0539, 0x078c, 0x02af, 0xfa1a, 0xf69d, 0xfd09, 0x075b, 0x0a3d, 0x01f2, 0xf761, +0xf642, 0xffa7, 0x08f3, 0x0830, 0xff05, 0xf7db, 0xf9bc, 0x0174, 0x068b, 0x04b2, +0xfeff, 0xfb39, 0xfc1a, 000000, 0x0371, 0x03d7, 0x00fe, 0xfd37, 0xfbe0, 0xfe78, +0x02af, 0x044a, 0x0180, 0xfd43, 0xfc00, 0xfed1, 0x02aa, 0x0346, 0x00dd, 0xfde0, +0xfbfe, 0x0114, 0x0987, 0x04bc, 0xf49d, 0xf23a, 0x06ab, 0x162e, 0x0544, 0xe76b, +0xea25, 0x1015, 0x2474, 0x0431, 0xd7d3, 0xe1ec, 0x1923, 0x2df5, 0x01cd, 0xd386, +0xe3d9, 0x1b9d, 0x2c62, 0xfeb8, 0xd31a, 0xe6ba, 0x1dbd, 0x2abb, 0xfbab, 0xd2ed, +0xe9ab, 0x1fa7, 0x28ef, 0xf8b3, 0xd2f5, 0xeca5, 0x2160, 0x26fd, 0xf5d7, 0xd334, +0xefa1, 0x22e5, 0x24ea, 0xf31b, 0xd3a9, 0xf29f, 0x2435, 0x22b6, 0xf07e, 0xd44e, +0xf59b, 0x2551, 0x2067, 0xee08, 0xd527, 0xf88e, 0x2639, 0x1e00, 0xebb6, 0xd62d, +0xfb77, 0x26eb, 0x1b85, 0xe98b, 0xd75f, 0xfe51, 0x276b, 0x18f9, 0xe78e, 0xd8b9, +0x011a, 0x27b6, 0x1660, 0xe5bb, 0xda3a, 0x03cc, 0x27cf, 0x13bd, 0xe415, 0xdbdf, +0x066a, 0x27b7, 0x1117, 0xe29e, 0xdda5, 0x08ec, 0x276e, 0x0e6d, 0xe154, 0xdf89, +0x0b52, 0x26f6, 0x0bc7, 0xe039, 0xe185, 0x0d96, 0x2653, 0x0924, 0xdf4e, 0xe399, +0x0fb9, 0x2584, 0x068b, 0xde93, 0xe5c0, 0x11b8, 0x248e, 0x03fd, 0xde08, 0xe7f8, +0x1390, 0x2372, 0x0180, 0xddaa, 0xea3c, 0x1544, 0x2231, 0xff12, 0xdd7a, 0xec89, +0x16cf, 0x20d0, 0xfcb9, 0xdd77, 0xeedb, 0x1831, 0x1f52, 0xfa77, 0xdd9f, 0xf132, +0x1969, 0x1db7, 0xf850, 0xddf1, 0xf385, 0x1a75, 0x1c06, 0xf645, 0xde6b, 0xf5d7, +0x1b5b, 0x1a3f, 0xf457, 0xdf0d, 0xf820, 0x1c13, 0x1867, 0xf288, 0xdfd2, 0xfa5f, +0x1ca1, 0x167f, 0xf0db, 0xe0ba, 0xfc92, 0x1d06, 0x148b, 0xef50, 0xe1c1, 0xfeb5, +0x1d43, 0x1290, 0xede9, 0xe2e6, 0x00c6, 0x1d58, 0x108e, 0xeca7, 0xe426, 0x02c4, +0x1d45, 0x0e8a, 0xeb8a, 0xe57f, 0x04a9, 0x1d0e, 0x0c87, 0xea92, 0xe6ec, 0x0677, +0x1cb2, 0x0a87, 0xe9be, 0xe86e, 0x082a, 0x1c34, 0x088b, 0xe912, 0xe9fe, 0x09c1, +0x1b95, 0x069c, 0xe88c, 0xeb9c, 0x0b3a, 0x1ad9, 0x04b6, 0xe82a, 0xed43, 0x0c96, +0x1a00, 0x02df, 0xe7eb, 0xeef3, 0x0dd0, 0x190d, 0x0116, 0xe7d0, 0xf0a8, 0x0eec, +0x1804, 0xff61, 0xe7d8, 0xf25d, 0x0fe6, 0x16e3, 0xfdc0, 0xe800, 0xf412, 0x10bf, +0x15b1, 0xfc36, 0xe848, 0xf5c5, 0x1176, 0x146e, 0xfac2, 0xe8ad, 0xf771, 0x120d, +0x1320, 0xf969, 0xe92e, 0xf913, 0x1282, 0x11c4, 0xf828, 0xe9cb, 0xfaac, 0x12d8, +0x1062, 0xf703, 0xea7e, 0xfc38, 0x130e, 0x0efa, 0xf5fb, 0xeb49, 0xfdb5, 0x1325, +0x0d8e, 0xf50e, 0xec26, 0xff20, 0x131e, 0x0c21, 0xf43f, 0xed15, 0x007a, 0x12fa, +0x0ab6, 0xf38d, 0xee15, 0x01be, 0x12bd, 0x094f, 0xf2f9, 0xef22, 0x02ef, 0x1265, +0x07f0, 0xf283, 0xf037, 0x0408, 0x11f6, 0x0699, 0xf226, 0xf156, 0x050a, 0x1170, +0x054b, 0xf1e8, 0xf27a, 0x05f4, 0x10d8, 0x040c, 0xf1c5, 0xf3a3, 0x06c2, 0x102c, +0x02da, 0xf1bc, 0xf4cc, 0x0779, 0x0f71, 0x01b7, 0xf1cc, 0xf5f5, 0x0815, 0x0ea7, +0x00a8, 0xf1f4, 0xf719, 0x0899, 0x0dd2, 0xffab, 0xf233, 0xf839, 0x0902, 0x0cf4, +0xfec0, 0xf288, 0xf950, 0x0952, 0x0c0e, 0xfdec, 0xf2ee, 0xfa5d, 0x0989, 0x0b23, +0xfd2d, 0xf368, 0xfb62, 0x09a7, 0x0a35, 0xfc85, 0xf3f1, 0xfc58, 0x09af, 0x0946, +0xfbf2, 0xf488, 0xfd3f, 0x09a1, 0x0859, 0xfb77, 0xf52c, 0xfe17, 0x097d, 0x076f, +0xfb14, 0xf5d8, 0xfede, 0x0945, 0x068a, 0xfac6, 0xf68d, 0xff93, 0x08fb, 0x05ad, +0xfa8e, 0xf747, 0x0034, 0x08a1, 0x04da, 0xfa6f, 0xf805, 0x00c2, 0x0836, 0x0410, +0xfa63, 0xf8c6, 0x013c, 0x07bf, 0x0354, 0xfa6c, 0xf985, 0x01a1, 0x073b, 0x02a4, +0xfa8a, 0xfa43, 0x01f1, 0x06af, 0x0204, 0xfab9, 0xfafc, 0x022c, 0x0619, 0x0175, +0xfafa, 0xfbae, 0x0252, 0x057f, 0x00f6, 0xfb4b, 0xfc5a, 0x0263, 0x04e0, 0x008b, +0xfbaa, 0xfcfa, 0x0262, 0x0440, 0x0032, 0xfc16, 0xfd90, 0x024b, 0x03a0, 0xffec, +0xfc8c, 0xfe19, 0x0225, 0x0301, 0xffb9, 0xfd0c, 0xfe93, 0x01ea, 0x0267, 0xff9c, +0xfd95, 0xfefe, 0x01a0, 0x01d3, 0xff90, 0xfe22, 0xff5a, 0x0147, 0x0145, 0xff99, +0xfeb3, 0xffa1, 0x00e0, 0x00c3, 0xffb6, 0xff46, 0xffd9, 0x006d, 0x004b, 0xffe5, +0xffda, 0xfffc, 000000, 0xfffe, 000000, 0xffff, 000000, 0xffff, 0xffff, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000 }; diff --git a/daemon/libs/iax2/busy.h b/daemon/libs/iax2/busy.h index 2c642fae39e9d959201785e55b9e30be39e3425f..ca7d41a0f1b9353296c7aef94bc6bc3285d39ed1 100644 --- a/daemon/libs/iax2/busy.h +++ b/daemon/libs/iax2/busy.h @@ -1,55 +1,55 @@ -/* busy.h: Generated from frequencies 480 and 620 +/* busy.h: Generated from frequencies 480 and 620 by gensound. 400 samples */ static short busy[400] = { - 0, 13697, 24766, 31109, 31585, 26222, 16198, 3569, - -9162, -19575, -25812, -26935, -23069, -15322, -5493, 4339, - 12277, 16985, 17934, 15440, 10519, 4585, -908, -4827, - -6592, -6269, -4489, -2220, -467, 30, -983, -3203, - -5839, -7844, -8215, -6301, -2035, 3975, 10543, 16141, - 19260, 18787, 14322, 6338, -3845, -14296, -22858, -27611, - -27309, -21691, -11585, 1213, 14285, 25068, 31388, 31915, - 26457, 16010, 2568, -11282, -22885, -30054, -31509, -27120, - -17908, -5805, 6760, 17379, 24147, 26028, 23020, 16094, - 6931, -2478, -10279, -15136, -16474, -14538, -10253, -4949, - 0, 3515, 5052, 4688, 3045, 1069, -268, -272, - 1269, 3996, 7067, 9381, 9889, 7910, 3365, -3123, - -10320, -16622, -20424, -20510, -16384, -8448, 2006, 13026, - 22383, 28040, 28613, 23696, 13996, 1232, -12193, -23670, - -30918, -32459, -27935, -18190, -5103, 8795, 20838, 28764, - 31164, 27753, 19395, 7893, -4412, -15136, -22342, -24909, - -22717, -16609, -8143, 780, 8361, 13272, 14909, 13455, - 9758, 5067, 678, -2387, -3624, -3133, -1538, 224, - 1209, 751, -1315, -4580, -8145, -10848, -11585, -9628, - -4878, 2038, 9844, 16867, 21403, 22124, 18429, 10638, - 0, -11524, -21643, -28211, -29702, -25561, -16364, -3737, - 9946, 22044, 30180, 32733, 29182, 20210, 7573, -6269, - -18655, -27259, -30558, -28117, -20645, -9807, 2148, 12878, - 20426, 23599, 22173, 16865, 9117, 731, -6552, -11426, - -13269, -12216, -9050, -4941, -1118, 1460, 2335, 1635, - 0, -1635, -2335, -1460, 1118, 4941, 9050, 12216, - 13269, 11426, 6552, -731, -9117, -16865, -22173, -23599, - -20426, -12878, -2148, 9807, 20645, 28117, 30558, 27259, - 18655, 6269, -7573, -20210, -29182, -32733, -30180, -22044, - -9946, 3737, 16364, 25561, 29702, 28211, 21643, 11524, - 0, -10638, -18429, -22124, -21403, -16867, -9844, -2038, - 4878, 9628, 11585, 10848, 8145, 4580, 1315, -751, - -1209, -224, 1538, 3133, 3624, 2387, -678, -5067, - -9758, -13455, -14909, -13272, -8361, -780, 8143, 16609, - 22717, 24909, 22342, 15136, 4412, -7893, -19395, -27753, - -31164, -28764, -20838, -8795, 5103, 18190, 27935, 32459, - 30918, 23670, 12193, -1232, -13996, -23696, -28613, -28040, - -22383, -13026, -2006, 8448, 16384, 20510, 20424, 16622, - 10320, 3123, -3365, -7910, -9889, -9381, -7067, -3996, - -1269, 272, 268, -1069, -3045, -4688, -5052, -3515, - 0, 4949, 10253, 14538, 16474, 15136, 10279, 2478, - -6931, -16094, -23020, -26028, -24147, -17379, -6760, 5805, - 17908, 27120, 31509, 30054, 22885, 11282, -2568, -16010, - -26457, -31915, -31388, -25068, -14285, -1213, 11585, 21691, - 27309, 27611, 22858, 14296, 3845, -6338, -14322, -18787, - -19260, -16141, -10543, -3975, 2035, 6301, 8215, 7844, - 5839, 3203, 983, -30, 467, 2220, 4489, 6269, - 6592, 4827, 908, -4585, -10519, -15440, -17934, -16985, - -12277, -4339, 5493, 15322, 23069, 26935, 25812, 19575, - 9162, -3569, -16198, -26222, -31585, -31109, -24766, -13697, + 0, 13697, 24766, 31109, 31585, 26222, 16198, 3569, + -9162, -19575, -25812, -26935, -23069, -15322, -5493, 4339, + 12277, 16985, 17934, 15440, 10519, 4585, -908, -4827, + -6592, -6269, -4489, -2220, -467, 30, -983, -3203, + -5839, -7844, -8215, -6301, -2035, 3975, 10543, 16141, + 19260, 18787, 14322, 6338, -3845, -14296, -22858, -27611, + -27309, -21691, -11585, 1213, 14285, 25068, 31388, 31915, + 26457, 16010, 2568, -11282, -22885, -30054, -31509, -27120, + -17908, -5805, 6760, 17379, 24147, 26028, 23020, 16094, + 6931, -2478, -10279, -15136, -16474, -14538, -10253, -4949, + 0, 3515, 5052, 4688, 3045, 1069, -268, -272, + 1269, 3996, 7067, 9381, 9889, 7910, 3365, -3123, + -10320, -16622, -20424, -20510, -16384, -8448, 2006, 13026, + 22383, 28040, 28613, 23696, 13996, 1232, -12193, -23670, + -30918, -32459, -27935, -18190, -5103, 8795, 20838, 28764, + 31164, 27753, 19395, 7893, -4412, -15136, -22342, -24909, + -22717, -16609, -8143, 780, 8361, 13272, 14909, 13455, + 9758, 5067, 678, -2387, -3624, -3133, -1538, 224, + 1209, 751, -1315, -4580, -8145, -10848, -11585, -9628, + -4878, 2038, 9844, 16867, 21403, 22124, 18429, 10638, + 0, -11524, -21643, -28211, -29702, -25561, -16364, -3737, + 9946, 22044, 30180, 32733, 29182, 20210, 7573, -6269, + -18655, -27259, -30558, -28117, -20645, -9807, 2148, 12878, + 20426, 23599, 22173, 16865, 9117, 731, -6552, -11426, + -13269, -12216, -9050, -4941, -1118, 1460, 2335, 1635, + 0, -1635, -2335, -1460, 1118, 4941, 9050, 12216, + 13269, 11426, 6552, -731, -9117, -16865, -22173, -23599, + -20426, -12878, -2148, 9807, 20645, 28117, 30558, 27259, + 18655, 6269, -7573, -20210, -29182, -32733, -30180, -22044, + -9946, 3737, 16364, 25561, 29702, 28211, 21643, 11524, + 0, -10638, -18429, -22124, -21403, -16867, -9844, -2038, + 4878, 9628, 11585, 10848, 8145, 4580, 1315, -751, + -1209, -224, 1538, 3133, 3624, 2387, -678, -5067, + -9758, -13455, -14909, -13272, -8361, -780, 8143, 16609, + 22717, 24909, 22342, 15136, 4412, -7893, -19395, -27753, + -31164, -28764, -20838, -8795, 5103, 18190, 27935, 32459, + 30918, 23670, 12193, -1232, -13996, -23696, -28613, -28040, + -22383, -13026, -2006, 8448, 16384, 20510, 20424, 16622, + 10320, 3123, -3365, -7910, -9889, -9381, -7067, -3996, + -1269, 272, 268, -1069, -3045, -4688, -5052, -3515, + 0, 4949, 10253, 14538, 16474, 15136, 10279, 2478, + -6931, -16094, -23020, -26028, -24147, -17379, -6760, 5805, + 17908, 27120, 31509, 30054, 22885, 11282, -2568, -16010, + -26457, -31915, -31388, -25068, -14285, -1213, 11585, 21691, + 27309, 27611, 22858, 14296, 3845, -6338, -14322, -18787, + -19260, -16141, -10543, -3975, 2035, 6301, 8215, 7844, + 5839, 3203, 983, -30, 467, 2220, 4489, 6269, + 6592, 4827, 908, -4585, -10519, -15440, -17934, -16985, + -12277, -4339, 5493, 15322, 23069, 26935, 25812, 19575, + 9162, -3569, -16198, -26222, -31585, -31109, -24766, -13697, }; diff --git a/daemon/libs/iax2/dialtone.h b/daemon/libs/iax2/dialtone.h index 09b881487da06b420fd96c0b3e65dd697c927599..f961a79ef82047eb529405deca465f5a5d95844f 100644 --- a/daemon/libs/iax2/dialtone.h +++ b/daemon/libs/iax2/dialtone.h @@ -1,105 +1,105 @@ -/* dialtone.h: Generated from frequencies 350 and 440 +/* dialtone.h: Generated from frequencies 350 and 440 by gensound. 800 samples */ static short dialtone[800] = { - 0, 9997, 19004, 26133, 30692, 32251, 30690, 26206, - 19286, 10657, 1206, -8116, -16396, -22848, -26895, -28221, - -26797, -22878, -16960, -9723, -1954, 5545, 12044, 16954, - 19887, 20687, 19434, 16420, 12107, 7061, 1881, -2866, - -6721, -9365, -10657, -10634, -9491, -7547, -5190, -2822, - -801, 607, 1263, 1168, 454, -633, -1784, -2669, - -2993, -2548, -1247, 855, 3558, 6538, 9388, 11665, - 12955, 12933, 11408, 8370, 3996, -1349, -7152, -12797, - -17635, -21060, -22583, -21895, -18914, -13807, -6985, 934, - 9180, 16913, 23309, 27654, 29422, 28342, 24429, 17998, - 9630, 123, -9589, -18538, -25813, -30667, -32588, -31360, - -27088, -20185, -11332, -1411, 8594, 17694, 24997, 29805, - 31675, 30473, 26374, 19844, 11585, 2455, -6618, -14745, - -21156, -25284, -26815, -25713, -22213, -16785, -10073, -2824, - 4203, 10318, 14969, 17794, 18653, 17628, 14998, 11197, - 6753, 2217, -1899, -5189, -7386, -8388, -8261, -7212, - -5555, -3657, -1881, -536, 169, 157, -515, -1664, - -3009, -4217, -4954, -4940, -3996, -2080, 697, 4081, - 7689, 11059, 13710, 15199, 15187, 13489, 10114, 5272, - -630, -7031, -13263, -18632, -22491, -24320, -23794, -20823, - -15582, -8498, -218, 8457, 16651, 23507, 28276, 30407, - 29606, 25876, 19524, 11134, 1511, -8401, -17616, -25208, - -30406, -32682, -31800, -27845, -21215, -12576, -2796, 7150, - 16278, 23700, 28713, 30868, 30015, 26312, 20199, 12351, - 3598, -5164, -13071, -19378, -23531, -25223, -24413, -21318, - -16384, -10218, -3526, 2980, 8655, 12985, 15642, 16505, - 15661, 13381, 10073, 6228, 2348, -1110, -3796, -5495, - -6152, -5863, -4853, -3434, -1954, -744, -62, -60, - -757, -2037, -3664, -5317, -6637, -7283, -6985, -5590, - -3096, 334, 4390, 8631, 12544, 15605, 17339, 17393, - 15582, 11928, 6672, 258, -6705, -13506, -19403, -23711, - -25879, -25558, -22653, -17341, -10061, -1480, 7570, 16185, - 23475, 28661, 31164, 30670, 27167, 20951, 12603, 2930, - -7116, -16540, -24401, -29915, -32533, -32003, -28391, -22075, - -13704, -4128, 5690, 14781, 22262, 27432, 29838, 29319, - 26014, 20339, 12940, 4614, -3777, -11401, -17540, -21660, - -23463, -22908, -20199, -15755, -10150, -4044, 1898, 7079, - 11030, 13459, 14268, 13555, 11585, 8745, 5487, 2268, - -511, -2559, -3716, -3975, -3468, -2440, -1206, -101, - 578, 618, -78, -1470, -3382, -5524, -7531, -9018, - -9630, -9103, -7308, -4280, -226, 4483, 9357, 13829, - 17329, 19352, 19524, 17659, 13788, 8177, 1302, -6184, - -13528, -19945, -24710, -27240, -27167, -24381, -19058, -11646, - -2830, 6539, 15528, 23219, 28806, 31685, 31520, 28282, - 22254, 14010, 4355, -5759, -15331, -23411, -29203, -32144, - -31966, -28714, -22748, -14695, -5384, 4241, 13228, 20707, - 25981, 28600, 28391, 25479, 20256, 13337, 5482, -2482, - -9761, -15668, -19694, -21556, -21215, -18865, -14902, -9864, - -4366, 975, 5614, 9130, 11270, 11967, 11332, 9628, - 7223, 4536, 1976, -113, -1495, -2071, -1882, -1102, - 0, 1102, 1882, 2071, 1495, 113, -1976, -4536, - -7223, -9628, -11332, -11967, -11270, -9130, -5614, -975, - 4366, 9864, 14902, 18865, 21215, 21556, 19694, 15668, - 9761, 2482, -5482, -13337, -20256, -25479, -28391, -28600, - -25981, -20707, -13228, -4241, 5384, 14695, 22748, 28714, - 31966, 32144, 29203, 23411, 15331, 5759, -4355, -14010, - -22254, -28282, -31520, -31685, -28806, -23219, -15528, -6539, - 2830, 11646, 19058, 24381, 27167, 27240, 24710, 19945, - 13528, 6184, -1302, -8177, -13788, -17659, -19524, -19352, - -17329, -13829, -9357, -4483, 226, 4280, 7308, 9103, - 9630, 9018, 7531, 5524, 3382, 1470, 78, -618, - -578, 101, 1206, 2440, 3468, 3975, 3716, 2559, - 511, -2268, -5487, -8745, -11585, -13555, -14268, -13459, - -11030, -7079, -1898, 4044, 10150, 15755, 20199, 22908, - 23463, 21660, 17540, 11401, 3777, -4614, -12940, -20339, - -26014, -29319, -29838, -27432, -22262, -14781, -5690, 4128, - 13704, 22075, 28391, 32003, 32533, 29915, 24401, 16540, - 7116, -2930, -12603, -20951, -27167, -30670, -31164, -28661, - -23475, -16185, -7570, 1480, 10061, 17341, 22653, 25558, - 25879, 23711, 19403, 13506, 6705, -258, -6672, -11928, - -15582, -17393, -17339, -15605, -12544, -8631, -4390, -334, - 3096, 5590, 6985, 7283, 6637, 5317, 3664, 2037, - 757, 60, 62, 744, 1954, 3434, 4853, 5863, - 6152, 5495, 3796, 1110, -2348, -6228, -10073, -13381, - -15661, -16505, -15642, -12985, -8655, -2980, 3526, 10218, - 16384, 21318, 24413, 25223, 23531, 19378, 13071, 5164, - -3598, -12351, -20199, -26312, -30015, -30868, -28713, -23700, - -16278, -7150, 2796, 12576, 21215, 27845, 31800, 32682, - 30406, 25208, 17616, 8401, -1511, -11134, -19524, -25876, - -29606, -30407, -28276, -23507, -16651, -8457, 218, 8498, - 15582, 20823, 23794, 24320, 22491, 18632, 13263, 7031, - 630, -5272, -10114, -13489, -15187, -15199, -13710, -11059, - -7689, -4081, -697, 2080, 3996, 4940, 4954, 4217, - 3009, 1664, 515, -157, -169, 536, 1881, 3657, - 5555, 7212, 8261, 8388, 7386, 5189, 1899, -2217, - -6753, -11197, -14998, -17628, -18653, -17794, -14969, -10318, - -4203, 2824, 10073, 16785, 22213, 25713, 26815, 25284, - 21156, 14745, 6618, -2455, -11585, -19844, -26374, -30473, - -31675, -29805, -24997, -17694, -8594, 1411, 11332, 20185, - 27088, 31360, 32588, 30667, 25813, 18538, 9589, -123, - -9630, -17998, -24429, -28342, -29422, -27654, -23309, -16913, - -9180, -934, 6985, 13807, 18914, 21895, 22583, 21060, - 17635, 12797, 7152, 1349, -3996, -8370, -11408, -12933, - -12955, -11665, -9388, -6538, -3558, -855, 1247, 2548, - 2993, 2669, 1784, 633, -454, -1168, -1263, -607, - 801, 2822, 5190, 7547, 9491, 10634, 10657, 9365, - 6721, 2866, -1881, -7061, -12107, -16420, -19434, -20687, - -19887, -16954, -12044, -5545, 1954, 9723, 16960, 22878, - 26797, 28221, 26895, 22848, 16396, 8116, -1206, -10657, - -19286, -26206, -30690, -32251, -30692, -26133, -19004, -9997, + 0, 9997, 19004, 26133, 30692, 32251, 30690, 26206, + 19286, 10657, 1206, -8116, -16396, -22848, -26895, -28221, + -26797, -22878, -16960, -9723, -1954, 5545, 12044, 16954, + 19887, 20687, 19434, 16420, 12107, 7061, 1881, -2866, + -6721, -9365, -10657, -10634, -9491, -7547, -5190, -2822, + -801, 607, 1263, 1168, 454, -633, -1784, -2669, + -2993, -2548, -1247, 855, 3558, 6538, 9388, 11665, + 12955, 12933, 11408, 8370, 3996, -1349, -7152, -12797, + -17635, -21060, -22583, -21895, -18914, -13807, -6985, 934, + 9180, 16913, 23309, 27654, 29422, 28342, 24429, 17998, + 9630, 123, -9589, -18538, -25813, -30667, -32588, -31360, + -27088, -20185, -11332, -1411, 8594, 17694, 24997, 29805, + 31675, 30473, 26374, 19844, 11585, 2455, -6618, -14745, + -21156, -25284, -26815, -25713, -22213, -16785, -10073, -2824, + 4203, 10318, 14969, 17794, 18653, 17628, 14998, 11197, + 6753, 2217, -1899, -5189, -7386, -8388, -8261, -7212, + -5555, -3657, -1881, -536, 169, 157, -515, -1664, + -3009, -4217, -4954, -4940, -3996, -2080, 697, 4081, + 7689, 11059, 13710, 15199, 15187, 13489, 10114, 5272, + -630, -7031, -13263, -18632, -22491, -24320, -23794, -20823, + -15582, -8498, -218, 8457, 16651, 23507, 28276, 30407, + 29606, 25876, 19524, 11134, 1511, -8401, -17616, -25208, + -30406, -32682, -31800, -27845, -21215, -12576, -2796, 7150, + 16278, 23700, 28713, 30868, 30015, 26312, 20199, 12351, + 3598, -5164, -13071, -19378, -23531, -25223, -24413, -21318, + -16384, -10218, -3526, 2980, 8655, 12985, 15642, 16505, + 15661, 13381, 10073, 6228, 2348, -1110, -3796, -5495, + -6152, -5863, -4853, -3434, -1954, -744, -62, -60, + -757, -2037, -3664, -5317, -6637, -7283, -6985, -5590, + -3096, 334, 4390, 8631, 12544, 15605, 17339, 17393, + 15582, 11928, 6672, 258, -6705, -13506, -19403, -23711, + -25879, -25558, -22653, -17341, -10061, -1480, 7570, 16185, + 23475, 28661, 31164, 30670, 27167, 20951, 12603, 2930, + -7116, -16540, -24401, -29915, -32533, -32003, -28391, -22075, + -13704, -4128, 5690, 14781, 22262, 27432, 29838, 29319, + 26014, 20339, 12940, 4614, -3777, -11401, -17540, -21660, + -23463, -22908, -20199, -15755, -10150, -4044, 1898, 7079, + 11030, 13459, 14268, 13555, 11585, 8745, 5487, 2268, + -511, -2559, -3716, -3975, -3468, -2440, -1206, -101, + 578, 618, -78, -1470, -3382, -5524, -7531, -9018, + -9630, -9103, -7308, -4280, -226, 4483, 9357, 13829, + 17329, 19352, 19524, 17659, 13788, 8177, 1302, -6184, + -13528, -19945, -24710, -27240, -27167, -24381, -19058, -11646, + -2830, 6539, 15528, 23219, 28806, 31685, 31520, 28282, + 22254, 14010, 4355, -5759, -15331, -23411, -29203, -32144, + -31966, -28714, -22748, -14695, -5384, 4241, 13228, 20707, + 25981, 28600, 28391, 25479, 20256, 13337, 5482, -2482, + -9761, -15668, -19694, -21556, -21215, -18865, -14902, -9864, + -4366, 975, 5614, 9130, 11270, 11967, 11332, 9628, + 7223, 4536, 1976, -113, -1495, -2071, -1882, -1102, + 0, 1102, 1882, 2071, 1495, 113, -1976, -4536, + -7223, -9628, -11332, -11967, -11270, -9130, -5614, -975, + 4366, 9864, 14902, 18865, 21215, 21556, 19694, 15668, + 9761, 2482, -5482, -13337, -20256, -25479, -28391, -28600, + -25981, -20707, -13228, -4241, 5384, 14695, 22748, 28714, + 31966, 32144, 29203, 23411, 15331, 5759, -4355, -14010, + -22254, -28282, -31520, -31685, -28806, -23219, -15528, -6539, + 2830, 11646, 19058, 24381, 27167, 27240, 24710, 19945, + 13528, 6184, -1302, -8177, -13788, -17659, -19524, -19352, + -17329, -13829, -9357, -4483, 226, 4280, 7308, 9103, + 9630, 9018, 7531, 5524, 3382, 1470, 78, -618, + -578, 101, 1206, 2440, 3468, 3975, 3716, 2559, + 511, -2268, -5487, -8745, -11585, -13555, -14268, -13459, + -11030, -7079, -1898, 4044, 10150, 15755, 20199, 22908, + 23463, 21660, 17540, 11401, 3777, -4614, -12940, -20339, + -26014, -29319, -29838, -27432, -22262, -14781, -5690, 4128, + 13704, 22075, 28391, 32003, 32533, 29915, 24401, 16540, + 7116, -2930, -12603, -20951, -27167, -30670, -31164, -28661, + -23475, -16185, -7570, 1480, 10061, 17341, 22653, 25558, + 25879, 23711, 19403, 13506, 6705, -258, -6672, -11928, + -15582, -17393, -17339, -15605, -12544, -8631, -4390, -334, + 3096, 5590, 6985, 7283, 6637, 5317, 3664, 2037, + 757, 60, 62, 744, 1954, 3434, 4853, 5863, + 6152, 5495, 3796, 1110, -2348, -6228, -10073, -13381, + -15661, -16505, -15642, -12985, -8655, -2980, 3526, 10218, + 16384, 21318, 24413, 25223, 23531, 19378, 13071, 5164, + -3598, -12351, -20199, -26312, -30015, -30868, -28713, -23700, + -16278, -7150, 2796, 12576, 21215, 27845, 31800, 32682, + 30406, 25208, 17616, 8401, -1511, -11134, -19524, -25876, + -29606, -30407, -28276, -23507, -16651, -8457, 218, 8498, + 15582, 20823, 23794, 24320, 22491, 18632, 13263, 7031, + 630, -5272, -10114, -13489, -15187, -15199, -13710, -11059, + -7689, -4081, -697, 2080, 3996, 4940, 4954, 4217, + 3009, 1664, 515, -157, -169, 536, 1881, 3657, + 5555, 7212, 8261, 8388, 7386, 5189, 1899, -2217, + -6753, -11197, -14998, -17628, -18653, -17794, -14969, -10318, + -4203, 2824, 10073, 16785, 22213, 25713, 26815, 25284, + 21156, 14745, 6618, -2455, -11585, -19844, -26374, -30473, + -31675, -29805, -24997, -17694, -8594, 1411, 11332, 20185, + 27088, 31360, 32588, 30667, 25813, 18538, 9589, -123, + -9630, -17998, -24429, -28342, -29422, -27654, -23309, -16913, + -9180, -934, 6985, 13807, 18914, 21895, 22583, 21060, + 17635, 12797, 7152, 1349, -3996, -8370, -11408, -12933, + -12955, -11665, -9388, -6538, -3558, -855, 1247, 2548, + 2993, 2669, 1784, 633, -454, -1168, -1263, -607, + 801, 2822, 5190, 7547, 9491, 10634, 10657, 9365, + 6721, 2866, -1881, -7061, -12107, -16420, -19434, -20687, + -19887, -16954, -12044, -5545, 1954, 9723, 16960, 22878, + 26797, 28221, 26895, 22848, 16396, 8116, -1206, -10657, + -19286, -26206, -30690, -32251, -30692, -26133, -19004, -9997, }; diff --git a/daemon/libs/iax2/frame.h b/daemon/libs/iax2/frame.h index efc91d6af9cdb1fd22aa9501ba36bce6951feb0a..350a25f2d4cab8fce3313349d396dd3772215056 100644 --- a/daemon/libs/iax2/frame.h +++ b/daemon/libs/iax2/frame.h @@ -2,7 +2,7 @@ * libiax: An implementation of the Inter-Asterisk eXchange protocol * * Asterisk internal frame definitions. - * + * * Copyright (C) 1999, Mark Spencer * * Mark Spencer <markster@linux-support.net> diff --git a/daemon/libs/iax2/iax.c b/daemon/libs/iax2/iax.c index 3ae3c25b82df55487b1ae934f36afca477ccec39..013879ac725a4789e82621366c8669ec6be6cd90 100644 --- a/daemon/libs/iax2/iax.c +++ b/daemon/libs/iax2/iax.c @@ -2179,7 +2179,7 @@ static int forward_match(struct sockaddr_in *sin, short callno, short dcallno, s if (cur->peercallno == 0) { cur->peercallno = callno; } - else if ( cur->peercallno != callno ) + else if ( cur->peercallno != callno ) { // print a warning when the callno's don't match fprintf( stderr, "WARNING: peercallno does not match callno" @@ -2551,7 +2551,7 @@ static struct iax_event *iax_header_to_event(struct iax_session *session, struct DEBU(G "Packet arrived out of order (expecting %d, got %d) (frametype = %d, subclass = %d)\n", session->iseqno, fh->oseqno, fh->type, subclass); - /* + /* * Check if session->iseqno > fh->oseqno, accounting for possible wrap around * This is correct if the two values are not equal (which, in this case, is guaranteed) */ diff --git a/daemon/libs/iax2/iax.h b/daemon/libs/iax2/iax.h index 8a0e3fe3d370d9d4e754e316a7d8066ccff35ac7..cb5377b45f42c023a6f701ea8fd39e79739f80c4 100644 --- a/daemon/libs/iax2/iax.h +++ b/daemon/libs/iax2/iax.h @@ -2,7 +2,7 @@ * libIAX * * Implementation of Inter-IAXerisk eXchange - * + * * Copyright (C) 1999, Mark Spencer * * Mark Spencer <markster@linux-support.net> @@ -10,7 +10,7 @@ * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ - + #ifndef _IAX_H #define _IAX_H diff --git a/daemon/libs/iax2/iax2-parser.c b/daemon/libs/iax2/iax2-parser.c index ae4a8c2ed8e1c179b977a1647df1a09549edfeee..958380a4094c650f41daa889f050535427c7111a 100644 --- a/daemon/libs/iax2/iax2-parser.c +++ b/daemon/libs/iax2/iax2-parser.c @@ -2,7 +2,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange - * + * * Copyright (C) 2003-2004, Digium * * Mark Spencer <markster@digium.com> @@ -218,7 +218,7 @@ static void dump_prov_ies(char *output, int maxlen, unsigned char *iedata, int l char tmp[256]; if (len < 2) return; - strcpy(output, "\n"); + strcpy(output, "\n"); maxlen -= (int)strlen(output); output += strlen(output); while(len > 2) { ie = iedata[0]; @@ -396,12 +396,12 @@ void iax_showframe(struct iax_frame *f, struct ast_iax2_full_hdr *fhi, int rx, s snprintf(subclass2, (int)sizeof(subclass2), "%d", fh->csub); subclass = subclass2; } -snprintf(tmp, (int)sizeof(tmp), +snprintf(tmp, (int)sizeof(tmp), "%s-Frame Retry[%s] -- OSeqno: %3.3d ISeqno: %3.3d Type: %s Subclass: %s\n", (rx ? "Rx" : "Tx"), retries, fh->oseqno, fh->iseqno, clas, subclass); outputf(tmp); -snprintf(tmp, (int)sizeof(tmp), +snprintf(tmp, (int)sizeof(tmp), " Timestamp: %05lums SCall: %5.5d DCall: %5.5d [%s:%d]\n", (unsigned long)ntohl(fh->ts), ntohs(fh->scallno) & ~IAX_FLAG_FULL, ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS, @@ -431,14 +431,14 @@ int iax_ie_append_addr(struct iax_ie_data *ied, unsigned char ie, struct sockadd return iax_ie_append_raw(ied, ie, sin, (int)sizeof(struct sockaddr_in)); } -int iax_ie_append_int(struct iax_ie_data *ied, unsigned char ie, unsigned int value) +int iax_ie_append_int(struct iax_ie_data *ied, unsigned char ie, unsigned int value) { unsigned int newval; newval = htonl(value); return iax_ie_append_raw(ied, ie, &newval, (int)sizeof(newval)); } -int iax_ie_append_short(struct iax_ie_data *ied, unsigned char ie, unsigned short value) +int iax_ie_append_short(struct iax_ie_data *ied, unsigned char ie, unsigned short value) { unsigned short newval; newval = htons(value); @@ -455,7 +455,7 @@ int iax_ie_append_byte(struct iax_ie_data *ied, unsigned char ie, unsigned char return iax_ie_append_raw(ied, ie, &dat, 1); } -int iax_ie_append(struct iax_ie_data *ied, unsigned char ie) +int iax_ie_append(struct iax_ie_data *ied, unsigned char ie) { return iax_ie_append_raw(ied, ie, NULL, 0); } @@ -777,7 +777,7 @@ void iax_frame_wrap(struct iax_frame *fr, struct ast_frame *f) fr->af.offset = AST_FRIENDLY_OFFSET; fr->af.src = f->src; fr->af.data = fr->afdata; - if (fr->af.datalen) + if (fr->af.datalen) memcpy(fr->af.data, f->data, fr->af.datalen); } diff --git a/daemon/libs/iax2/iax2-parser.h b/daemon/libs/iax2/iax2-parser.h index 8238b2f4691c1557f63108547d6ecf621475cec4..dbf0eea41bdccfae638d7c31595c12da2165b3dc 100644 --- a/daemon/libs/iax2/iax2-parser.h +++ b/daemon/libs/iax2/iax2-parser.h @@ -2,7 +2,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange - * + * * Copyright (C) 2003, Digium * * Mark Spencer <markster@digium.com> @@ -10,7 +10,7 @@ * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ - + #ifndef _IAX2_PARSER_H #define _IAX2_PARSER_H diff --git a/daemon/libs/iax2/iax2.h b/daemon/libs/iax2/iax2.h index 1be78757a457975f31b9c02e81fdf86935289a4e..da144f7047f3a0472df1ddc53a57679821a8d425 100644 --- a/daemon/libs/iax2/iax2.h +++ b/daemon/libs/iax2/iax2.h @@ -2,7 +2,7 @@ * Asterisk -- A telephony toolkit for Linux. * * Implementation of Inter-Asterisk eXchange - * + * * Copyright (C) 2003, Digium * * Mark Spencer <markster@linux-support.net> @@ -10,7 +10,7 @@ * This program is free software, distributed under the terms of * the GNU Lesser (Library) General Public License */ - + #ifndef _IAX2_H #define _IAX2_H diff --git a/daemon/libs/iax2/md5.c b/daemon/libs/iax2/md5.c index 5524d26b1f031673ba93cc38a11fb47a6ce232d2..656601f98b3094293a1b0c84f1015c41eea07301 100644 --- a/daemon/libs/iax2/md5.c +++ b/daemon/libs/iax2/md5.c @@ -136,7 +136,7 @@ void IAX_MD5Update(struct IAX_MD5Context *ctx, uint8_t const *buf, unsigned int } /* - * Final wrapup - pad to 64-byte boundary with the bit pattern + * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ void IAX_MD5Final(uint8_t digest[16], struct IAX_MD5Context *ctx) diff --git a/daemon/libs/iax2/miniphone.c b/daemon/libs/iax2/miniphone.c index ab0dd8463c7504246be307919724db1959fea4a9..dca9933b330c1a4c0cdea5ed054c8f53fe1b2c0d 100644 --- a/daemon/libs/iax2/miniphone.c +++ b/daemon/libs/iax2/miniphone.c @@ -195,14 +195,14 @@ static int send_sound(int soundfd) return -1; } /* Calculate how many samples we can send, max */ - if (total > (abi.fragments * abi.fragsize / 2)) + if (total > (abi.fragments * abi.fragsize / 2)) total = abi.fragments * abi.fragsize / 2; res = total; if (sampsent < sounds[cursound].samplen) { myoff=0; while(total) { amt = total; - if (amt > (sounds[cursound].datalen - offset)) + if (amt > (sounds[cursound].datalen - offset)) amt = sounds[cursound].datalen - offset; memcpy(myframe + myoff, sounds[cursound].data + offset, amt * 2); total -= amt; @@ -213,7 +213,7 @@ static int send_sound(int soundfd) offset = 0; } /* Set it up for silence */ - if (sampsent >= sounds[cursound].samplen) + if (sampsent >= sounds[cursound].samplen) silencelen = sounds[cursound].silencelen; frame = myframe; } else { @@ -463,7 +463,7 @@ main(int argc, char *argv[]) timerptr = &timer; timer.tv_sec = m /1000; timer.tv_usec = (m % 1000) * 1000; - } else + } else timerptr = 0; regm = check_iax_timeout(); if (!timerptr || (m > regm)) { @@ -512,7 +512,7 @@ do_iax_event(FILE *f) { if(e->event.connect.callerid && e->event.connect.dnid) - fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, + fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, e->event.connect.dnid); else if(e->event.connect.dnid) { fprintf(f, "Call from '%s'", e->event.connect.dnid); @@ -664,7 +664,7 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) int res; res = write(audiofd, fr, sizeof(fr)); - if (res < 0) + if (res < 0) fprintf(f, "Write failed: %s\n", strerror(errno)); } len += 33; @@ -696,7 +696,7 @@ dump_call(void) offhook = 0; ringing = 0; gentone(TONE_NONE, 0); -} +} void parse_cmd(FILE *f, int argc, char **argv) diff --git a/daemon/libs/iax2/ring10.h b/daemon/libs/iax2/ring10.h index 13fce373e7418f204f61893394f9e87ee0666141..7c0495dd5af5172d0d7c9d75647d6ad4bb4e6395 100644 --- a/daemon/libs/iax2/ring10.h +++ b/daemon/libs/iax2/ring10.h @@ -10,1743 +10,1743 @@ */ static signed short ring10[] = { -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 0x82a0, 0x8dc7, 0x607e, 0xc0c6, 0x2bd3, -0x8df5, 0x828d, 0x0716, 0xaca6, 0xcefe, 0x41df, 0xd185, 0x8aa3, 0x8b1a, 0x789b, -0x82a2, 0x804f, 0x7ea8, 0x8113, 0x7f7d, 0x7fff, 0x801e, 0x801d, 0x7f32, 0x82ec, -0x83e1, 0x7fb0, 0x7f71, 0x80de, 0x7f3d, 0x7fe3, 0x81b4, 0x7c37, 0x8553, 0x7b29, -0x7ede, 0xde6e, 0x0e64, 0xf9f4, 0x015e, 0x00f6, 0xfe56, 0x0019, 0xf8bb, 0xfd90, -0x08cc, 0x05ab, 0xfd0b, 0xf9c6, 0xf875, 0xf789, 0xfc74, 0x032e, 0xf97a, 0xf4bb, -0x0212, 0x006e, 0x03df, 0x17c5, 0x0f50, 0xfb23, 0xfdbd, 0xf7cf, 0xdf5b, 0xe2d3, -0xf111, 0xef27, 0x11c5, 0x33a4, 0x168d, 0x0145, 0x0494, 0xe85c, 0xdac3, 0xf0c7, -0xeea8, 0x0023, 0x3036, 0x252a, 0xffb7, 0x01d1, 0xf637, 0xd506, 0xe8eb, 0xf5ff, -0xe5ca, 0x1ec5, 0x3fa4, 0x0e3c, 0x1570, 0x2b37, 0xea23, 0xca43, 0xf392, 0xdf0e, -0xde40, 0x2e7c, 0x276f, 0x035c, 0x2ccc, 0x1acf, 0xcf4a, 0xeb5b, 0x0fb1, 0xe01a, -0x0c69, 0x3a97, 0xfb54, 0x0751, 0x20f1, 0xdce9, 0xd2a2, 0x19b3, 0x096f, 0xf1b6, -0x38de, 0x1f70, 0xf32b, 0x2569, 0x0650, 0xc3d7, 0xf1ad, 0x1aa5, 0xe87e, 0x0c7f, -0x406d, 0xffaa, 0x0ba8, 0x2e02, 0xe545, 0xcebb, 0x10fc, 0x0102, 0xded8, 0x2b7c, -0x2053, 0xec6f, 0x266e, 0x1770, 0xcb63, 0xf18e, 0x2015, 0xe6ef, 0xfe64, 0x3700, -0xf628, 0xfb00, 0x2e43, 0xee48, 0xcd4a, 0x1867, 0x0ec3, 0xdd77, 0x2291, 0x1c80, -0xe325, 0x19b7, 0x1719, 0xcb88, 0xeded, 0x258c, 0xe7e8, 0xf0c6, 0x2d21, 0xf3d5, -0xf494, 0x290d, 0xef7b, 0xca28, 0x12c8, 0x0d8d, 0xd5f3, 0x171d, 0x1994, 0xe0c0, -0x1348, 0x1929, 0xcf9b, 0xe6fb, 0x20ae, 0xe921, 0xed2b, 0x2c54, 0xf96e, 0xf19f, -0x21b6, 0xf12e, 0xc8b4, 0x0907, 0x0964, 0xd049, 0x0eb8, 0x1fa6, 0xe6b5, 0x0cec, -0x16b6, 0xcd0c, 0xda57, 0x17c9, 0xe440, 0xe2a2, 0x2b4d, 0xffa2, 0xec7e, 0x1ee9, -0xf674, 0xbfcb, 0xf769, 0x0402, 0xcfe8, 0x104b, 0x2734, 0xe7e9, 0x07d9, 0x19f4, -0xd032, 0xd00b, 0x0e46, 0xe17d, 0xe2d8, 0x3456, 0x0781, 0xed01, 0x238d, 0xfa72, -0xbb51, 0xf543, 0x050b, 0xccd5, 0x1491, 0x3358, 0xedad, 0x10c4, 0x283b, 0xd051, -0xc9e9, 0x11f8, 0xe2cb, 0xe534, 0x43aa, 0x1090, 0xf11b, 0x3267, 0x02c3, 0xb72d, -0xf9ac, 0x0fbd, 0xce45, 0x1d7b, 0x4389, 0xef2e, 0x1593, 0x348e, 0xd0cb, 0xca8c, -0x1f61, 0xe981, 0xdef7, 0x4774, 0x15ae, 0xefab, 0x3b28, 0x0a9e, 0xb2f6, 0xf9e9, -0x1976, 0xcc08, 0x15ab, 0x4534, 0xee6c, 0x159b, 0x3753, 0xcf09, 0xc69a, 0x2270, -0xf15c, 0xdee6, 0x48ce, 0x1af4, 0xf169, 0x3da0, 0x0d68, 0xb573, 0xff9e, 0x20ba, -0xcbfe, 0x142d, 0x4879, 0xed49, 0x1434, 0x3d96, 0xd714, 0xca99, 0x298b, 0xf708, -0xd92c, 0x4632, 0x1acc, 0xea6e, 0x3d2c, 0x1412, 0xb534, 0xfbfa, 0x24f9, 0xcd72, -0x0df9, 0x48f8, 0xeb87, 0x0bca, 0x3dd5, 0xd6cc, 0xc015, 0x2605, 0xfa87, 0xd1a9, -0x40d0, 0x1c59, 0xe0de, 0x34f9, 0x14c6, 0xaf61, 0xf2a5, 0x23e6, 0xc929, 0x01be, -0x4423, 0xe53b, 0x0182, 0x3c3a, 0xd758, 0xbb9d, 0x1fa9, 0xf454, 0xc611, 0x36e8, -0x18f7, 0xdac9, 0x2e8a, 0x126d, 0xac14, 0xead6, 0x2215, 0xc990, 0xf9f5, 0x43cb, -0xea01, 0xfcbf, 0x38fd, 0xd9f3, 0xb7cd, 0x1bc4, 0xfd41, 0xca56, 0x31e3, 0x1d4b, -0xdca2, 0x2a9f, 0x1c24, 0xb8aa, 0xeb59, 0x25d5, 0xd2d0, 0xfa10, 0x44fa, 0xefe0, -0xfced, 0x3ef4, 0xe9a1, 0xbdf0, 0x19ac, 0x0198, 0xca6f, 0x2f04, 0x25b6, 0xe187, -0x29ba, 0x250a, 0xbe42, 0xe40e, 0x24ef, 0xd75d, 0xf476, 0x44f8, 0xf719, 0xf7a1, -0x3c94, 0xf20e, 0xbcdf, 0x16a3, 0x07e8, 0xc8d4, 0x2a3e, 0x2b3f, 0xdf4e, 0x235d, -0x2c92, 0xc2c7, 0xdf39, 0x2873, 0xd790, 0xea2a, 0x47fd, 0xfd0e, 0xf0e3, 0x3bd8, -0xf4e9, 0xb265, 0x0c2c, 0x0751, 0xc302, 0x29bb, 0x37bd, 0xe138, 0x1e0c, 0x2d09, -0xbddb, 0xd246, 0x24c4, 0xd87a, 0xe5df, 0x4ff6, 0x08d6, 0xf0d8, 0x3d61, 0xf8bf, -0xaede, 0x0a36, 0x0df3, 0xc0f5, 0x23ec, 0x3e92, 0xe3d7, 0x1cad, 0x348e, 0xc0d6, -0xcd4e, 0x265c, 0xd9b6, 0xdf83, 0x510e, 0x0c41, 0xeece, 0x4153, 0xfeeb, 0xa9f6, -0x04b3, 0x12a4, 0xbf2f, 0x20d1, 0x42f4, 0xe1b1, 0x1b1e, 0x3980, 0xc2b4, 0xcb50, -0x2b74, 0xded0, 0xd835, 0x4e7a, 0x0b46, 0xe555, 0x4015, 0x0517, 0xaa54, 0x0504, -0x1932, 0xbc34, 0x1a77, 0x48b1, 0xe0bb, 0x149b, 0x3ba7, 0xc34a, 0xc481, 0x2bc2, -0xe401, 0xd20e, 0x4f53, 0x1389, 0xe3b7, 0x418b, 0x0a15, 0xa70d, 0x0024, 0x1f9f, -0xbf65, 0x142d, 0x4a81, 0xe0ca, 0x1152, 0x4325, 0xcb03, 0xc18a, 0x2b95, 0xeb45, -0xcf92, 0x4c54, 0x18ad, 0xe08b, 0x3f12, 0x1264, 0xa9fc, 0xfd97, 0x246f, 0xbf86, -0x0ce2, 0x4e7c, 0xe4f3, 0x0c20, 0x44e0, 0xd069, 0xbdcb, 0x2b8e, 0xf32d, 0xcad4, -0x464f, 0x1e76, 0xdf62, 0x3b07, 0x17ea, 0xaafb, 0xf5a0, 0x2835, 0xc7c2, 0x0842, -0x4d2b, 0xe634, 0x03ef, 0x42bc, 0xd7f2, 0xbb73, 0x2662, 0xf892, 0xc8b3, 0x3e30, -0x1f20, 0xdcca, 0x354a, 0x1c6b, 0xaf75, 0xf0f7, 0x2963, 0xc908, 0xfdbf, 0x4c3c, -0xebe5, 0x00e3, 0x44c4, 0xdf15, 0xb9e9, 0x243b, 0x00e9, 0xcb76, 0x3b53, 0x248e, -0xdc27, 0x2fcb, 0x22e5, 0xb66c, 0xec96, 0x2b19, 0xd0ef, 0xf97b, 0x48ae, 0xecc0, -0xf8b4, 0x411d, 0xe769, 0xb9f7, 0x1c41, 0x0022, 0xc369, 0x2ced, 0x23ac, 0xd8eb, -0x2522, 0x232a, 0xb611, 0xe19f, 0x2738, 0xd013, 0xece5, 0x434c, 0xf00e, 0xefcc, -0x3b79, 0xeb32, 0xb19c, 0x135e, 0x04ef, 0xc1b9, 0x27a8, 0x2992, 0xd7b3, 0x1ba5, -0x2481, 0xb8c5, 0xd97d, 0x246f, 0xd113, 0xe45d, 0x4486, 0xf7f7, 0xeb36, 0x395a, -0xf122, 0xaea5, 0x0c28, 0x05eb, 0xbde4, 0x2585, 0x36a2, 0xde67, 0x1b86, 0x2dac, -0xbd03, 0xd2b8, 0x2624, 0xd8b8, 0xe802, 0x521b, 0x0855, 0xefbc, 0x4048, 0xfad2, -0xafe2, 0x0fb1, 0x12b2, 0xc62c, 0x2c2a, 0x43f5, 0xe562, 0x1fcb, 0x3791, 0xc2ac, -0xd4d1, 0x2dfd, 0xde0a, 0xe53f, 0x5578, 0x0f49, 0xf2b6, 0x4609, 0x0105, 0xabf5, -0x09a8, 0x157e, 0xc286, 0x23e7, 0x425f, 0xe36a, 0x1d93, 0x3580, 0xbf80, 0xcaf2, -0x2a04, 0xf16e, 0xd92b, 0x0eaa, 0xf1a7, 0x1ddb, 0x5b52, 0x0665, 0xd2e3, 0x15f8, -0xf606, 0x9d42, 0xdba7, 0xf312, 0xd349, 0x21ed, 0x576a, 0x34e8, 0x2450, 0x2679, -0xdc01, 0xb506, 0xcb0f, 0xa454, 0xccf3, 0x2c13, 0x1673, 0xf8ca, 0x4ff1, 0x63ac, -0xec26, 0xd77c, 0xf1f9, 0xc268, 0xb11a, 0xdfe4, 0x02e7, 0x10f5, 0x3512, 0x19dd, -0x0edc, 0x3568, 0xf6f7, 0xbe10, 0xda93, 0xf4fe, 0xda03, 0xe293, 0x15dd, 0x15f3, -0x1ba5, 0x1521, 0x12e8, 0x23ab, 0x0fc3, 0xdb3e, 0xb671, 0xe960, 0xe13c, 0xc695, -0x1a81, 0x3d23, 0x1c56, 0x190d, 0x4234, 0x1970, 0xd784, 0xd86b, 0xb5e8, 0xc9f3, -0xeb89, 0xe344, 0x17ae, 0x5713, 0x37fc, 0xffe2, 0x36b3, 0x1dfe, 0xb963, 0xbf9c, -0xc9a1, 0xcc7b, 0xe409, 0x08a6, 0x2077, 0x3b4d, 0x3cba, 0x0553, 0x220e, 0x226e, -0xd219, 0xb7ec, 0xcb8b, 0xdf2a, 0xd0c7, 0xf5be, 0x2ff0, 0x42a6, 0x3c24, 0x25ae, -0x2d6d, 0x0d94, 0xde80, 0xb78b, 0xb12b, 0xdf7a, 0xde33, 0x0046, 0x47b1, 0x5170, -0x29c0, 0x2945, 0x3ab5, 0xf08f, 0xc806, 0xc229, 0xbbf4, 0xe40d, 0xf365, 0x0bfe, -0x448d, 0x5cd8, 0x1e52, 0x10ba, 0x3908, 0xefa4, 0xc243, 0xcf89, 0xd02d, 0xde92, -0xf8e0, 0x191e, 0x2f7b, 0x48e6, 0x1e38, 0x1074, 0x3785, 0xf8be, 0xbd1c, 0xc06b, -0xdc36, 0xdb97, 0xe3c0, 0x2042, 0x37c5, 0x36ff, 0x1b73, 0x2064, 0x2c9a, 0xefa2, -0xbf0c, 0xb7f0, 0xe221, 0xe243, 0xd998, 0x2263, 0x4bae, 0x3596, 0x18aa, 0x3763, -0x27d0, 0xdcc6, 0xcacc, 0xc06f, 0xd83d, 0xecfe, 0xeefa, 0x1ffa, 0x5052, 0x393f, -0x0af5, 0x3c9e, 0x316b, 0xd2df, 0xc575, 0xd3c8, 0xddd2, 0xdf98, 0xfbd7, 0x2929, -0x4879, 0x4052, 0x160c, 0x3708, 0x2b31, 0xdac6, 0xc0c3, 0xcfc0, 0xe71d, 0xddec, -0x0145, 0x3847, 0x457c, 0x356b, 0x214a, 0x3a5f, 0x1474, 0xd892, 0xc579, 0xc6a7, -0xe77a, 0xe4dc, 0x00ab, 0x3b89, 0x4eba, 0x290a, 0x16ea, 0x3dc6, 0x0956, 0xcc12, -0xc3bd, 0xc9e9, 0xe4be, 0xe60b, 0x0561, 0x3707, 0x4c82, 0x2444, 0x1406, 0x3a8e, -0xff5b, 0xc494, 0xbf9f, 0xcb26, 0xdfef, 0xe755, 0x1060, 0x334f, 0x40e5, 0x1f87, -0x16b9, 0x33e8, 0xfa6e, 0xc670, 0xb774, 0xcc17, 0xe18f, 0xdd0f, 0x102c, 0x3f0d, -0x4098, 0x1b95, 0x24b2, 0x315a, 0xe9d8, 0xc459, 0xb314, 0xc524, 0xe2a6, 0xe1cf, -0x100a, 0x44af, 0x455c, 0x1551, 0x264f, 0x2ab1, 0xd681, 0xb90c, 0xb4d6, 0xc68d, -0xddac, 0xef74, 0x1f57, 0x4357, 0x4192, 0x0e60, 0x1bcb, 0x20fd, 0xd477, 0xb435, -0xb3e3, 0xcdc3, 0xd9c4, 0xef97, 0x2384, 0x3b60, 0x34c9, 0x119d, 0x1f15, 0x0fb3, -0xd15d, 0xb30d, 0xa9e3, 0xd431, 0xdc02, 0xe98a, 0x2987, 0x4204, 0x290c, 0x1181, -0x2d0c, 0x0800, 0xcb55, 0xb8f5, 0xaaa6, 0xd49f, 0xe57c, 0xf063, 0x281c, 0x4c65, -0x2d19, 0x0cd2, 0x2ddb, 0xfefe, 0xc171, 0xbd4c, 0xb7c2, 0xd4c5, 0xe6f3, 0x0040, -0x2b86, 0x4b6d, 0x2ed1, 0x0ce3, 0x2d97, 0x01f9, 0xc2ad, 0xb8fc, 0xc53e, 0xe1cf, -0xea35, 0x0eb0, 0x38b8, 0x4a3b, 0x2a1e, 0x1457, 0x2a1e, 0xfbca, 0xcdf1, 0xbc93, -0xcc0b, 0xec27, 0xeb05, 0x144b, 0x4443, 0x496d, 0x2233, 0x2180, 0x30b2, 0xf03c, -0xcced, 0xbf0d, 0xcc55, 0xeec3, 0xf367, 0x186f, 0x45cd, 0x4e7d, 0x215a, 0x2485, -0x3122, 0xe7a8, 0xc40a, 0xbf85, 0xd4dd, 0xebe8, 0xf32b, 0x2121, 0x49bb, 0x4c61, -0x1af5, 0x1f88, 0x2c32, 0xe8c5, 0xc512, 0xc0b7, 0xdbf9, 0xe9ea, 0xf2f4, 0x2584, -0x43e2, 0x3e1b, 0x19cf, 0x28d2, 0x2442, 0xe27b, 0xc589, 0xbe8a, 0xdddc, 0xe567, -0xed4e, 0x27f2, 0x48cd, 0x3505, 0x0e88, 0x2cd5, 0x207d, 0xda54, 0xc1cf, 0xb8c1, -0xd925, 0xe569, 0xefd0, 0x2723, 0x4dd1, 0x38b2, 0x0de5, 0x2d90, 0x155b, 0xca06, -0xbab6, 0xbf37, 0xdd46, 0xe3fd, 0xfb50, 0x2e5d, 0x487b, 0x343e, 0x0abe, 0x25e9, -0x0f65, 0xcb83, 0xb474, 0xbc50, 0xe2ab, 0xe1df, 0xfd3e, 0x3672, 0x458b, 0x294e, -0x10fd, 0x2afa, 0x027f, 0xcae8, 0xb95b, 0xbc6f, 0xe536, 0xe3af, 0xfd1c, 0x3b18, -0x4cb1, 0x23ff, 0x13eb, 0x3353, 0xfb34, 0xc4aa, 0xb71a, 0xb9f2, 0xe1d7, 0xe97f, -0x058d, 0x3a0f, 0x4fcd, 0x2408, 0x11a3, 0x2fb9, 0xf271, 0xbb7f, 0xb447, 0xc317, -0xde44, 0xe56a, 0x110a, 0x3ccc, 0x494a, 0x1f80, 0x11af, 0x26a1, 0xeb09, 0xbcd0, -0xaf90, 0xc8d4, 0xe63f, 0xe47d, 0x1435, 0x3f4f, 0x3fbe, 0x17c7, 0x1a4f, 0x2393, -0xe191, 0xbfa1, 0xb0e4, 0xc7c9, 0xe2d9, 0xe363, 0x1625, 0x4320, 0x3da9, 0x11c4, -0x1e02, 0x1d1b, 0xd6be, 0xbe96, 0xb123, 0xc8a4, 0xe6ce, 0xef2e, 0x1c03, 0x4584, -0x3fd1, 0x1006, 0x20d8, 0x197b, 0xcf64, 0xb99e, 0xb693, 0xd396, 0xe8eb, 0xfb01, -0x2aca, 0x4b38, 0x3f87, 0x0de0, 0x1f2f, 0x1503, 0xd574, 0xba46, 0xb72d, 0xf07a, -0xfa16, 0xf608, 0x29c0, 0x3a7e, 0x42a7, 0x43ac, 0x2717, 0xec6f, 0xd732, 0xc1ac, -0xa146, 0xef37, 0x122b, 0x05c1, 0x5c67, 0x8e8c, 0x3d5e, 0x0043, 0x00d0, 0xb9ef, -0xa38d, 0xc8dd, 0xc921, 0x15c9, 0x5fe3, 0x531a, 0x477d, 0x5852, 0x1b9f, 0xb930, -0xd1b6, 0xde60, 0xbcce, 0xe7f7, 0x16b1, 0x2aeb, 0x4605, 0x3592, 0xfe8c, 0x0c1d, -0x1b24, 0xd084, 0xd667, 0x2736, 0x06f7, 0xdfa7, 0x1976, 0x0df9, 0xc5e8, 0x032b, -0x324e, 0xea0e, 0x1ab4, 0x46e4, 0xf72e, 0x0369, 0x0ef3, 0xbe35, 0xbd17, 0x10fd, -0xfb35, 0xeb3f, 0x4e43, 0x2da4, 0xfe31, 0x2f50, 0xf64c, 0xafd6, 0xe267, 0xfd01, -0xca77, 0x1087, 0x48c1, 0xfcf4, 0x1bb0, 0x31af, 0xd234, 0xc0cb, 0x054e, 0xec6b, -0xce29, 0x29db, 0x1bb4, 0xf0fd, 0x3608, 0x12eb, 0xbb40, 0xeaa8, 0x190f, 0xce00, -0xed59, 0x39ef, 0xf1f0, 0xfb2a, 0x3535, 0xe3b3, 0xbf33, 0x1a9b, 0x013b, 0xc2ab, -0x2976, 0x21e0, 0xd3d8, 0x1ca6, 0x14ae, 0xb242, 0xe538, 0x2958, 0xd98c, 0xf279, -0x4106, 0xf13e, 0xf68b, 0x3379, 0xe023, 0xb4a8, 0x104b, 0x0685, 0xcca4, 0x2e61, -0x2d96, 0xe2b8, 0x26ac, 0x2510, 0xc114, 0xd9e5, 0x1f91, 0xdbc9, 0xe515, 0x40bd, -0x0693, 0xff44, 0x3c5e, 0xf664, 0xb8dc, 0x0b37, 0x1314, 0xc29c, 0x161f, 0x3582, -0xe32e, 0x17c0, 0x2de6, 0xc7c1, 0xcfeb, 0x23a6, 0xe644, 0xe65f, 0x4256, 0xf765, -0xe698, 0x4148, 0xfbe1, 0xa6b4, 0x03fa, 0x1c92, 0xcb85, 0x1a54, 0x37af, 0xe830, -0x1b0b, 0x255d, 0xc13f, 0xd3d9, 0x205e, 0xde69, 0xe2ab, 0x48d5, 0x0931, 0xee2f, -0x3d79, 0x0658, 0xb36c, 0xf59e, 0x11f4, 0xd042, 0x110b, 0x2e1b, 0xe763, 0x2269, -0x3bda, 0xcefb, 0xd37b, 0x2d7f, 0xe9d7, 0xd48e, 0x3fd2, 0x0e86, 0xea62, 0x3cd5, -0x11e0, 0xc1dc, 0x08e0, 0x1f68, 0xd3f1, 0x1fc8, 0x3da6, 0xe12f, 0x1d62, 0x4060, -0xccb6, 0xd211, 0x316f, 0xf370, 0xe20e, 0x4657, 0x1280, 0xf30a, 0x3df0, 0x07fc, -0xb956, 0x023e, 0x1978, 0xcbba, 0x137d, 0x3ff7, 0xecbc, 0x1698, 0x3f29, 0xdf9f, -0xcc1c, 0x1bdc, 0xef17, 0xd3da, 0x346b, 0x1296, 0xeb25, 0x3885, 0x190f, 0xbf13, -0xfb71, 0x1df2, 0xc509, 0xffa2, 0x3a66, 0xe5fd, 0x04f6, 0x36be, 0xda99, 0xc67e, -0x1fc2, 0xef95, 0xcfa8, 0x39df, 0x0f1a, 0xd986, 0x2d7b, 0x0e88, 0xb2a2, 0xf40f, -0x1bd3, 0xc95c, 0x0511, 0x408d, 0xec48, 0x03d2, 0x3281, 0xd7a0, 0xb9a0, 0x13ab, -0xf02d, 0xc92c, 0x3af6, 0x26c0, 0xe5f8, 0x2de7, 0x18b9, 0xafd8, 0xddbf, 0x15bc, -0xc4d3, 0xf6dc, 0x4b73, 0xf89f, 0x018a, 0x3c4e, 0xdf11, 0xb20d, 0x12d7, 0xf511, -0xbf7e, 0x33aa, 0x286f, 0xe309, 0x3107, 0x1f74, 0xb1c3, 0xe10f, 0x1fd3, 0xc7d4, -0xef6e, 0x4b78, 0xf32f, 0xf8e5, 0x43cb, 0xe7da, 0xaf46, 0x115a, 0xfeb2, 0xbf7a, -0x2e9a, 0x2ed7, 0xde2f, 0x2807, 0x259c, 0xb09f, 0xd3d4, 0x2606, 0xd544, 0xeb3d, -0x5107, 0xfecf, 0xf63f, 0x4304, 0xedfe, 0xae0d, 0x0d7f, 0x0957, 0xc47d, 0x2f62, -0x3b51, 0xdfea, 0x2a01, 0x3390, 0xb825, 0xd3e9, 0x29f1, 0xd82e, 0xe2e3, 0x509a, -0x061c, 0xf530, 0x48b1, 0xf740, 0xabeb, 0x0d93, 0x0ed4, 0xbed0, 0x274e, 0x3e3b, -0xddc2, 0x2168, 0x35a1, 0xbbb0, 0xcedb, 0x2b94, 0xdd5b, 0xdd2d, 0x4e6a, 0x068d, -0xe741, 0x3eef, 0xfe34, 0xad12, 0x0bb7, 0x1a73, 0xbea5, 0x1c31, 0x4269, 0xdc1a, -0x1611, 0x37d6, 0xc048, 0xcaa3, 0x2f7e, 0xe59c, 0xd94c, 0x4ed8, 0x0af6, 0xe225, -0x3c84, 0xfd49, 0xa4b2, 0x048d, 0x1ed5, 0xc496, 0x1caa, 0x4641, 0xddd4, 0x1578, -0x37dc, 0xc13b, 0xcab7, 0x30dc, 0xfec0, 0xd462, 0x1387, 0x07dd, 0x14c1, 0x4b92, -0x0d74, 0xda49, 0x12de, 0x02fe, 0xb8fe, 0xeaae, 0x0363, 0xdab0, 0x23b0, 0x68fb, -0x3681, 0x1351, 0x29fc, 0xf22e, 0xb781, 0xd225, 0xc11d, 0xd7d8, 0x354d, 0x26b8, -0x09af, 0x60fa, 0x5f8c, 0xe302, 0xde80, 0xff6a, 0xbb95, 0xafec, 0x029f, 0x161d, -0x0fee, 0x3924, 0x2b6c, 0x1ed5, 0x24fe, 0xec7b, 0xc1fe, 0xe22b, 0xfbcd, 0xdc4d, -0xf3f7, 0x210f, 0x1d01, 0x1305, 0x1342, 0x1f6c, 0x0852, 0xfea5, 0xdd42, 0xc083, -0xf243, 0xde95, 0xd818, 0x23f7, 0x3eab, 0x0891, 0x1381, 0x52fd, 0xff10, 0xc983, -0xe091, 0xc3b8, 0xcafc, 0xe7d7, 0xfc8d, 0x2043, 0x559d, 0x2c2e, 0x0418, 0x4485, -0x0b4c, 0xb4e5, 0xc68e, 0xddbf, 0xd0b6, 0xdc81, 0x1e4b, 0x2d10, 0x365b, 0x2c50, -0x170a, 0x303e, 0x0a60, 0xcc89, 0xb88a, 0xdbc7, 0xe3e7, 0xcdd2, 0x0b38, 0x3c7e, -0x392b, 0x254c, 0x3272, 0x2fc9, 0xf0ee, 0xd4d8, 0xb5b4, 0xc03b, 0xdef0, 0xd8e9, -0x0edc, 0x533e, 0x46e4, 0x0fc4, 0x358a, 0x34b8, 0xd1c3, 0xbf29, 0xbb64, 0xbeea, -0xdb1c, 0xf31b, 0x17f1, 0x44fa, 0x4bfb, 0x0a36, 0x1fe2, 0x2ce9, 0xcf0d, 0xb605, -0xc6c6, 0xcc96, 0xcf30, 0xf9cd, 0x25fb, 0x36d1, 0x4086, 0x1499, 0x21d8, 0x287f, -0xde77, 0xb0fd, 0xba6d, 0xe0f5, 0xd3e4, 0xee77, 0x3561, 0x4077, 0x2baa, 0x1d38, -0x3753, 0x1587, 0xd2e2, 0xb252, 0xb44b, 0xe5a7, 0xdbb5, 0xe778, 0x3790, 0x55cb, -0x234e, 0x10ab, 0x42e9, 0x083e, 0xc15a, 0xc2a9, 0xbe30, 0xd7d1, 0xe76a, 0xfa22, -0x2b37, 0x53cb, 0x29a6, 0x0950, 0x4086, 0x0f68, 0xbba0, 0xb824, 0xcc9c, 0xd743, -0xd665, 0x06ae, 0x3597, 0x44f1, 0x2854, 0x19d4, 0x3395, 0xfe8f, 0xc1b9, 0xad2d, -0xc39d, 0xde05, 0xd850, 0x0bf2, 0x4266, 0x457f, 0x1d4b, 0x2284, 0x337f, 0xe442, -0xbc43, 0xb8ba, 0xc33a, 0xe0e4, 0xe8f8, 0x10b5, 0x4262, 0x4afc, 0x1744, 0x1d2b, -0x3125, 0xe2b5, 0xbcb6, 0xbdea, 0xccfd, 0xdfe5, 0xefed, 0x1bae, 0x3f5e, 0x451d, -0x167c, 0x1ea7, 0x2848, 0xdf70, 0xbb35, 0xbbfc, 0xd959, 0xe266, 0xec2b, 0x20e3, -0x435c, 0x3878, 0x0fee, 0x25e8, 0x1ba1, 0xdaf0, 0xc061, 0xb76f, 0xdd9c, 0xe727, -0xece4, 0x247e, 0x48ee, 0x303d, 0x099a, 0x320b, 0x19b9, 0xd0b8, 0xc508, 0xbe20, -0xd52c, 0xe430, 0xf5f1, 0x21d1, 0x4aae, 0x3670, 0x0bc4, 0x349a, 0x16c6, 0xc9e1, -0xbb8f, 0xc44e, 0xdbed, 0xde26, 0x03b2, 0x34c9, 0x4689, 0x30a8, 0x17ea, 0x33bd, -0x0b87, 0xcd79, 0xb9b9, 0xc3c1, 0xe227, 0xdffc, 0x07ae, 0x3deb, 0x4732, 0x25e8, -0x1ef9, 0x370f, 0xfb29, 0xcc78, 0xbf32, 0xc5c0, 0xe807, 0xe571, 0x074b, 0x4121, -0x4902, 0x1968, 0x206c, 0x3da5, 0xf467, 0xc9c7, 0xc240, 0xc6d8, 0xe2b1, 0xeca9, -0x0f7d, 0x3a80, 0x4ac1, 0x1bda, 0x1cdc, 0x3836, 0xee35, 0xc32e, 0xc0a2, 0xce3e, -0xdfd7, 0xe9c8, 0x162c, 0x3eb5, 0x48b0, 0x1a61, 0x1e8f, 0x2cf5, 0xe5c6, 0xbb80, -0xb378, 0xd228, 0xe3dd, 0xeba5, 0x2266, 0x46f5, 0x3e1f, 0x13fa, 0x26ea, 0x21ec, -0xd925, 0xbdc7, 0xb66d, 0xd76b, 0xe81e, 0xf025, 0x269d, 0x4d69, 0x3d40, 0x1027, -0x2c58, 0x1cc9, 0xd265, 0xbfd4, 0xbabe, 0xd919, 0xe822, 0xf931, 0x2bc9, 0x4c69, -0x3d20, 0x158d, 0x31ca, 0x1821, 0xce8a, 0xb8af, 0xba0f, 0xdfb6, 0xe677, 0xfd3b, -0x385e, 0x53d9, 0x3764, 0x14a8, 0x30af, 0x0a51, 0xcb95, 0xbad7, 0xbc48, 0xe366, -0xea7e, 0x06cf, 0x3f08, 0x53c7, 0x2fe0, 0x189d, 0x383f, 0x00fd, 0xc5f3, 0xbf0d, -0xc38f, 0xe4a3, 0xecee, 0x0ef5, 0x432c, 0x54a7, 0x2a15, 0x190d, 0x3675, 0xf7bc, -0xc3e0, 0xbc22, 0xc381, 0xe210, 0xec59, 0x15ed, 0x4300, 0x4fd8, 0x269c, 0x1bda, -0x324a, 0xed57, 0xbb9c, 0xb705, 0xceb8, 0xeb30, 0xed72, 0x1baa, 0x48ad, 0x4bd3, -0x1fde, 0x1ea9, 0x2826, 0xe505, 0xc2b3, 0xb577, 0xceec, 0xeeb9, 0xef73, 0x1fd5, -0x4c99, 0x41f7, 0x12c7, 0x24ad, 0x22eb, 0xd504, 0xbfe3, 0xba2a, 0xd063, 0xea6f, -0xf037, 0x1c9c, 0x4acf, 0x430c, 0x0b68, 0x200d, 0x1c9e, 0xcce4, 0xb9ad, 0xbc29, -0xd211, 0xe475, 0xfc21, 0x2910, 0x443b, 0x3a83, 0x0ef1, 0x2295, 0x15ac, 0xd00d, -0xb774, 0xbaff, 0xded3, 0xe41e, 0xf945, 0x331e, 0x49b7, 0x3276, 0x128d, 0x28c7, -0x08f2, 0xce8e, 0xbb2e, 0xb907, 0xe4c0, 0xe9f8, 0xf98a, 0x3323, 0x4a75, 0x2718, -0x0ddc, 0x3369, 0x0795, 0xc936, 0xc192, 0xc3cc, 0xe2b9, 0xe583, 0xfce9, 0x312f, -0x4951, 0x266f, 0x0ffe, 0x3698, 0x0679, 0xca63, 0xc301, 0xc844, 0xde4c, 0xe26e, -0x076e, 0x3283, 0x4507, 0x259a, 0x11af, 0x30ff, 0xfd1c, 0xc1b2, 0xb384, 0xc924, -0xe414, 0xde8f, 0x0781, 0x295f, 0x51b4, 0x5b09, 0x17c9, 0xf17b, 0xd9cd, 0xb11a, -0x8396, 0xbd98, 0x073f, 0x0598, 0x5258, 0x7bf8, 0x3dd3, 0x096d, 0xe7f8, 0xa966, -0x9271, 0xc3c7, 0xb173, 0xf5d9, 0x6db2, 0x3b89, 0x2231, 0x4aaf, 0x1c3b, 0xc115, -0xcb06, 0xd460, 0xbb98, 0x03f6, 0xf9d7, 0xecaf, 0x4aa5, 0x27cf, 0xcf8c, 0x0764, -0x3489, 0xd9cb, 0xf31b, 0x39b5, 0xebc3, 0xeb7f, 0x1192, 0xceee, 0xbd72, 0x16f9, -0x1b5a, 0xf888, 0x4a44, 0x34a8, 0xedd8, 0x18bb, 0xf8d6, 0xa74c, 0xd19c, 0x139c, -0xeaf7, 0x0d0b, 0x5317, 0x0e81, 0x0c44, 0x35bd, 0xe010, 0xb51d, 0x075b, 0xfc77, -0xc9ae, 0x2b95, 0x35a1, 0xf0e8, 0x2c61, 0x2481, 0xc370, 0xe826, 0x20b5, 0xd95a, -0xf832, 0x43e0, 0xf261, 0xf7ef, 0x414e, 0xf14b, 0xbf9e, 0x1c6c, 0x1380, 0xd3d1, -0x2650, 0x1f52, 0xd592, 0x1ddb, 0x2414, 0xc347, 0xebd1, 0x3e70, 0xf240, 0xeb89, -0x3d66, 0xf738, 0xe57b, 0x2fe8, 0xf22d, 0xbd68, 0x1e7b, 0x2466, 0xd858, 0x2613, -0x3122, 0xdc86, 0x16b9, 0x277b, 0xc324, 0xdb13, 0x2c78, 0xe8ab, 0xed0b, 0x49bb, -0x0342, 0xf02a, 0x3b6c, 0xf7d9, 0xb9c6, 0x0fd8, 0x1192, 0xc763, 0x12e5, 0x2738, -0xe26c, 0x1a89, 0x2a72, 0xcd72, 0xdca7, 0x27a9, 0xe962, 0xd98a, 0x271e, 0xf948, -0xe783, 0x29f0, 0x000e, 0xc137, 0x064c, 0x17e6, 0xcd48, 0x0efb, 0x329b, 0xdc50, -0xf9d6, 0x28fd, 0xd866, 0xc34b, 0x13df, 0xefa3, 0xdcbf, 0x3578, 0x09a7, 0xe33f, -0x2c3f, 0x02a6, 0xaa76, 0xf3eb, 0x1870, 0xc21d, 0x029e, 0x3d07, 0xedbb, 0x0a92, -0x33dc, 0xd94f, 0xc985, 0x15a5, 0xdf1c, 0xd3f5, 0x3f5e, 0x0fca, 0xe50f, 0x3b04, -0x1a3d, 0xb99b, 0xf6d1, 0x1c75, 0xcc21, 0x0987, 0x3e95, 0xed51, 0x0dcf, 0x3b32, -0xd980, 0xc6f7, 0x280e, 0xf587, 0xd3c2, 0x4871, 0x233c, 0xe02f, 0x3039, 0x183d, -0xaecf, 0xf137, 0x2776, 0xcc66, 0x0bf0, 0x5162, 0xeddf, 0x088c, 0x4536, 0xd457, -0xb205, 0x2315, 0xf51a, 0xc60d, 0x4281, 0x2682, 0xe5d9, 0x3aad, 0x1cab, 0xb02d, -0xf294, 0x20af, 0xbecb, 0x0084, 0x4c16, 0xeaf2, 0x054e, 0x449f, 0xdf02, 0xbd48, -0x25bf, 0xfda9, 0xcb15, 0x3a93, 0x1e9b, 0xddd4, 0x3408, 0x1f70, 0xb333, 0xf3df, -0x32ab, 0xd133, 0x014e, 0x52b2, 0xf138, 0xfe00, 0x4260, 0xe1f2, 0xbbac, 0x28bf, -0x0404, 0xcc81, 0x4649, 0x2e56, 0xdee8, 0x3677, 0x23ef, 0xabc0, 0xea62, 0x3159, -0xcf59, 0xfdcf, 0x575a, 0xf403, 0xfe40, 0x4759, 0xe094, 0xb225, 0x1ffa, 0xfefc, -0xc26f, 0x3a61, 0x2be1, 0xdb44, 0x2efe, 0x2504, 0xadcb, 0xe074, 0x2713, 0xc6d3, -0xecc2, 0x48d6, 0xea4d, 0xf2ec, 0x43a0, 0xe1fc, 0xaa5f, 0x1825, 0xffd7, 0xba38, -0x2bdb, 0x24a3, 0xce10, 0x1cd8, 0x1cfc, 0xab2e, 0xdc4d, 0x276d, 0xca22, 0xeb01, -0x4a08, 0xeb0e, 0xe94c, 0x3cd7, 0xe45f, 0xa6c6, 0x0f8c, 0x066f, 0xc2d2, 0x2a01, -0x2aea, 0xd9bf, 0x251a, 0x2933, 0xb64d, 0xd9b5, 0x26a1, 0xd2ba, 0xe822, 0x4af1, -0xfec7, 0xf323, 0x3fdf, 0xf78e, 0xb4c1, 0x0f7f, 0x0e1c, 0xc7ce, 0x25fb, 0x3129, -0xdeb5, 0x2268, 0x3385, 0xc266, 0xd9b6, 0x2efc, 0xddb0, 0xe00f, 0x45ac, 0x0168, -0xea8d, 0x3cd9, 0xfeda, 0xb603, 0x13c5, 0x166b, 0xc192, 0x1f5a, 0x3804, 0xda94, -0x15a3, 0x35b3, 0xc729, 0xd3ae, 0x2e68, 0xe359, 0xde70, 0x4764, 0x0725, 0xe6b1, -0x3882, 0xfed4, 0xad23, 0x0819, 0x16c2, 0xc15b, 0x1c91, 0x4358, 0xe49c, 0x1162, -0x35d1, 0xc8f8, 0xc74f, 0x2676, 0xe0e9, 0xd0d7, 0x4b09, 0x1cea, 0xedea, 0x3f3b, -0x11f4, 0xb09a, 0xfc73, 0x177b, 0xba40, 0x109f, 0x4fcb, 0xf285, 0x1d0f, 0x3dc2, -0xc588, 0xc98d, 0x329a, 0xfd8a, 0xcc33, 0x1573, 0x1810, 0x1532, 0x434e, 0x102d, -0xd555, 0x08d4, 0x0011, 0xb77c, 0xec37, 0x098c, 0xd4fc, 0x2033, 0x7926, 0x32be, -0xfe95, 0x28ab, 0xef9c, 0xa428, 0xcffc, 0xcbdf, 0xd07c, 0x3681, 0x2f87, 0x0680, -0x626e, 0x5e9c, 0xd624, 0xd9e4, 0x080a, 0xadfe, 0xa2f5, 0x12af, 0x142c, 0xffde, -0x3703, 0x3570, 0x269e, 0x24fb, 0xe8a1, 0xb7ec, 0xe753, 0xf82a, 0xce4d, 0x001a, -0x2e98, 0x1f84, 0x0eb8, 0x1beb, 0x2603, 0xfcff, 0xfd98, 0xd8c0, 0xc719, 0xfc52, -0xddd2, 0xe3ec, 0x2ee0, 0x4393, 0x042b, 0x1929, 0x569a, 0xef83, 0xc35d, 0xd9e5, -0xc6ce, 0xd1e0, 0xed86, 0x0b2a, 0x23b2, 0x504c, 0x20ad, 0x029d, 0x3b72, 0xf5a5, -0xad6b, 0xbe54, 0xddfc, 0xd162, 0xddcd, 0x2952, 0x324b, 0x3156, 0x1d3f, 0x12f5, -0x235b, 0xf27f, 0xc001, 0xb250, 0xdfdd, 0xe3f3, 0xd455, 0x14e4, 0x3c06, 0x3326, -0x1a60, 0x30e7, 0x24a0, 0xe2c3, 0xcd08, 0xb21c, 0xc75c, 0xdc66, 0xe088, 0x1e09, -0x54ef, 0x4197, 0x0dca, 0x356f, 0x22ce, 0xcaf2, 0xc0ce, 0xbc3d, 0xcfda, 0xe59b, -0xfe5c, 0x27b1, 0x4caa, 0x45a1, 0x0add, 0x274f, 0x1c6c, 0xcde6, 0xc343, 0xd011, -0xdf48, 0xe021, 0x0b0c, 0x335a, 0x3c8e, 0x345d, 0x0d86, 0x278e, 0x1b8f, 0xdc12, -0xbc28, 0xc6ff, 0xead3, 0xdba0, 0xfdee, 0x39b8, 0x3f03, 0x2143, 0x1858, 0x376b, -0x021b, 0xcaa8, 0xbb59, 0xc6f6, 0xef67, 0xe041, 0xf9ba, 0x3cd7, 0x4cfd, 0x168d, -0x1037, 0x3fec, 0xf71d, 0xbed3, 0xc8d6, 0xcbc6, 0xdd8f, 0xea8c, 0x09b1, 0x2e92, -0x4701, 0x1829, 0x091c, 0x3ad7, 0xfd4b, 0xb999, 0xbe68, 0xdc50, 0xdc39, 0xd663, -0x1009, 0x330e, 0x37f3, 0x1ad3, 0x1cca, 0x3476, 0xf66a, 0xc5e8, 0xbb6f, 0xd5e8, -0xe008, 0xd5ea, 0x10b5, 0x3f63, 0x3725, 0x1102, 0x2911, 0x3855, 0xe9cb, 0xc610, -0xc44b, 0xd547, 0xdd89, 0xe4aa, 0x195d, 0x4084, 0x3d9b, 0x10ab, 0x2a1f, 0x3667, -0xe38c, 0xc1a0, 0xc4c5, 0xdd94, 0xe21b, 0xe99c, 0x1f49, 0x4312, 0x3b69, 0x0f14, -0x2b3d, 0x2eaa, 0xdeab, 0xc00a, 0xc634, 0xe225, 0xe0e3, 0xf311, 0x2b9a, 0x44fd, -0x3881, 0x11ee, 0x2f2a, 0x2428, 0xdc87, 0xc347, 0xc2d0, 0xe6e0, 0xe5b0, 0xf196, -0x2d4e, 0x4a97, 0x3366, 0x1388, 0x3ae0, 0x1bf8, 0xd058, 0xc212, 0xc09b, 0xdbf3, -0xe25c, 0xfa1f, 0x3093, 0x4e94, 0x31f0, 0x12fe, 0x3bde, 0x11ad, 0xc841, 0xb8bd, -0xbe0b, 0xdd25, 0xdd7e, 0x0138, 0x3ac9, 0x4ccb, 0x2ba2, 0x1359, 0x3033, 0xfbc6, -0xc14d, 0xb543, 0xbd7e, 0xdcf8, 0xde2b, 0x0754, 0x388b, 0x409a, 0x1e0d, 0x134a, -0x2ba8, 0xeee4, 0xbe5b, 0xafaf, 0xbb90, 0xe059, 0xde74, 0x0736, 0x3d1c, 0x4310, -0x16f1, 0x1686, 0x2f2a, 0xe9de, 0xbe17, 0xb446, 0xc0ca, 0xdd27, 0xe1a0, 0x0ccd, -0x3c13, 0x4661, 0x1949, 0x196a, 0x2a50, 0xdf8d, 0xb6a7, 0xb25a, 0xc8aa, 0xdf0e, -0xe6dc, 0x19c8, 0x411d, 0x423f, 0x15db, 0x1a0d, 0x2316, 0xdf69, 0xba97, 0xb2a9, -0xd092, 0xe29a, 0xebf2, 0x2556, 0x4a3b, 0x3fb1, 0x16cb, 0x2603, 0x1c1b, 0xd67d, -0xbcf3, 0xb765, 0xdad1, 0xea4b, 0xf176, 0x27e4, 0x4d31, 0x3b4c, 0x0fab, 0x2ad5, -0x1a4d, 0xd10b, 0xbc49, 0xba78, 0xda1f, 0xe903, 0xffda, 0x308c, 0x4a2f, 0x38ce, -0x11cc, 0x299c, 0x105c, 0xcdc3, 0xba31, 0xc03e, 0xe616, 0xe849, 0xfec7, 0x37e1, -0x4e98, 0x3198, 0x12d8, 0x2aeb, 0x03e5, 0xcb29, 0xbccb, 0xc232, 0xe734, 0xeb9c, -0x07ed, 0x3d12, 0x4b48, 0x2515, 0x14e8, 0x330c, 0xfd19, 0xc86d, 0xc241, 0xca17, -0xe64b, 0xe918, 0x09ed, 0x3ba3, 0x4eee, 0x25e2, 0x167a, 0x38a6, 0xffcf, 0xcb0e, -0xc615, 0xd055, 0xe3d3, 0xeafc, 0x1602, 0x3e86, 0x49c2, 0x257e, 0x2166, 0x3bcd, -0xfc55, 0xc4ad, 0xbb87, 0xd6e3, 0xe7a1, 0xe64f, 0x1ddd, 0x4682, 0x4516, 0x1dee, -0x1dc5, 0x2b0d, 0xed86, 0xc590, 0xb97d, 0xd84f, 0xec06, 0xe368, 0x1c7f, 0x4cee, -0x3f07, 0x13c3, 0x289d, 0x28fb, 0xdcf0, 0xc5b7, 0xbdb7, 0xd4a7, 0xec46, 0xecd0, -0x1bda, 0x48cc, 0x4019, 0x0cd7, 0x23a7, 0x2698, 0xd5be, 0xbc3e, 0xb90e, 0xcc6c, -0xddf3, 0xf12b, 0x24f1, 0x4448, 0x3b5c, 0x118e, 0x2441, 0x1c2b, 0xd270, 0xb368, -0xb6c7, 0xdd46, 0xdf51, 0xefbb, 0x3138, 0x49d2, 0x3667, 0x1864, 0x2b86, 0x1073, -0xd35e, 0xbbf4, 0xb47a, 0xdfb4, 0xe8bb, 0xf6b2, 0x353a, 0x4fd4, 0x2e9f, 0x12a8, -0x323d, 0x07c8, 0xcb04, 0xc1fa, 0xbd57, 0xdf17, 0xe6e8, 0xfa82, 0x3052, 0x4c63, -0x2d83, 0x12bf, 0x3366, 0x0318, 0xc6dd, 0xbd85, 0xbc4f, 0xd9e1, 0xe604, 0x0814, -0x34df, 0x4a09, 0x2d9d, 0x148f, 0x2e79, 0xfba1, 0xc12c, 0xb277, 0xbf95, 0xdeb7, -0xe211, 0x10bc, 0x423c, 0x4956, 0x24f7, 0x1571, 0x2434, 0xebbb, 0xc333, 0xb587, -0xc733, 0xedc0, 0xebba, 0x0854, 0x3f2e, 0x6f7e, 0x4a81, 0x0e5e, 0x03fe, 0xcb43, -0xa313, 0xa8c3, 0xd5fe, 0x0fe0, 0x3ce3, 0x6922, 0x5cb3, 0x4541, 0x10b8, 0xc5c1, -0xb7c8, 0xca44, 0xca38, 0xd7f7, 0x38e7, 0x4e53, 0x1cb5, 0x3dfb, 0x3d19, 0x06ab, -0xeda0, 0xe9ef, 0xd83d, 0xf9bf, 0x0ebe, 0xca2a, 0x0a79, 0x510e, 0xf01d, 0xe7eb, -0x3be6, 0x1a2e, 0xf989, 0x353e, 0x099c, 0xe538, 0x16d7, 0xd697, 0xa93c, 0x0407, -0x1bee, 0xf75f, 0x46c6, 0x50e3, 0xf430, 0x1813, 0x169b, 0xaf5d, 0xc57c, 0x0fb5, -0xe638, 0xf7e9, 0x459c, 0x122e, 0x0654, 0x352e, 0xfc93, 0xc262, 0xf99c, 0x072c, -0xc8f1, 0x0bf2, 0x32cd, 0xf85b, 0x1790, 0x25c1, 0xde96, 0xd882, 0x18ea, 0xe834, -0xd77c, 0x3995, 0x1231, 0xeab1, 0x28e3, 0x0cfc, 0xc5ef, 0xf7bd, 0x18f1, 0xd03e, -0x057e, 0x320a, 0xe5e4, 0x07c7, 0x2d5d, 0xd88a, 0xc884, 0x2072, 0xfd6c, 0xd3d0, -0x2a59, 0x1066, 0xe564, 0x22a2, 0x047a, 0xb2ee, 0xeaad, 0x1c28, 0xcc6c, 0xf7e5, -0x3c36, 0xee88, 0xfbfb, 0x3085, 0xddf6, 0xb28a, 0x0aaf, 0xf456, 0xbc45, 0x223a, -0x21ed, 0xe31c, 0x2214, 0x1882, 0xb51a, 0xdbdc, 0x18ba, 0xc1ce, 0xe1c3, 0x397c, -0xed39, 0xf426, 0x3690, 0xe68c, 0xb498, 0x0e83, 0x00c5, 0xc494, 0x1ef7, 0x1b31, -0xdc33, 0x1f84, 0x1b7f, 0xb9c1, 0xdc07, 0x2246, 0xd5fb, 0xeaf7, 0x4a41, 0x042a, -0xed8c, 0x29a9, 0xf4c4, 0xbbf5, 0xffbd, 0x02b3, 0xd089, 0x2a98, 0x349a, 0xe5f4, -0x231d, 0x3682, 0xc042, 0xc757, 0x28ee, 0xe56b, 0xda47, 0x3eac, 0x0d7c, 0xfc17, -0x4512, 0x05d1, 0xbb63, 0x0fc8, 0x0da5, 0xb98f, 0x1ecc, 0x3aea, 0xdbbd, 0x1bd6, -0x4041, 0xd007, 0xd35e, 0x2aaf, 0xea38, 0xe711, 0x3e4a, 0xfa47, 0xef65, 0x3f02, -0xf730, 0xae98, 0x0fae, 0x1e19, 0xc953, 0x1ea3, 0x3db2, 0xe20d, 0x1043, 0x2d87, -0xc8ab, 0xca8a, 0x2270, 0xe769, 0xe021, 0x4751, 0x0a42, 0xed5b, 0x468e, 0x0a0e, -0xa823, 0xfc1e, 0x19ce, 0xc19e, 0x0fd8, 0x3c33, 0xe854, 0x1d91, 0x3f3f, 0xd03c, -0xd290, 0x2d60, 0xe292, 0xd443, 0x4229, 0x0590, 0xe446, 0x3c78, 0x0d2e, 0xbba0, -0x0b10, 0x1fdc, 0xccc6, 0x142f, 0x3174, 0xdc18, 0x1061, 0x371b, 0xd368, 0xd200, -0x2d59, 0xf1a5, 0xdc23, 0x3edd, 0x0fb6, 0xe812, 0x2f6f, 0x0a77, 0xb941, 0xfe00, -0x1d36, 0xcc9c, 0x11f2, 0x404a, 0xe70a, 0x0abc, 0x3965, 0xd3be, 0xbed2, 0x1fe7, -0xee09, 0xd03e, 0x3f07, 0x1799, 0xe33b, 0x342f, 0x1443, 0xb44b, 0xf906, 0x1979, -0xbeaf, 0x0a9f, 0x45b3, 0xe73c, 0x0a6f, 0x3e78, 0xd655, 0xc03d, 0x2087, 0xeb0b, -0xcf7a, 0x4395, 0x1915, 0xe1a6, 0x34d0, 0x134e, 0xac96, 0xeeeb, 0x1aa0, 0xc459, -0x0965, 0x4852, 0xe8bd, 0x0151, 0x3569, 0xd16f, 0xb855, 0x1c6f, 0xed54, 0xcabb, -0x428e, 0x1dfb, 0xdf3c, 0x323b, 0x15f0, 0xab84, 0xe597, 0x18a2, 0xc34f, 0x0120, -0x48dd, 0xedf1, 0x07d1, 0x3f6b, 0xd521, 0xb0ac, 0x1903, 0xf0c7, 0xc122, 0x3959, -0x22ad, 0xe010, 0x2ec7, 0x1837, 0xaaf6, 0xe170, 0x1e2b, 0xc7b9, 0xfdb5, 0x4c53, -0xebef, 0xfb34, 0x3ee4, 0xdef9, 0xb297, 0x1b34, 0xfd76, 0xc42a, 0x391e, 0x2b29, -0xde3f, 0x2dc8, 0x2491, 0xb2a5, 0xe544, 0x2b06, 0xcad8, 0xf507, 0x54ba, 0xf673, -0xfa92, 0x48ca, 0xe9a8, 0xafd3, 0x1ef7, 0x084a, 0xc383, 0x3a6e, 0x3354, 0xdbff, -0x2c3f, 0x2b2a, 0xb115, 0xe1c4, 0x348d, 0xd2d5, 0xf3b1, 0x5801, 0xf84b, 0xf5dc, -0x4897, 0xeba9, 0xac5a, 0x1d11, 0x0bb4, 0xbcd7, 0x32ed, 0x3809, 0xdc0a, 0x2aa8, -0x3035, 0xb63c, 0xddf9, 0x3359, 0xe1e6, 0xdc8c, 0x1666, 0xf007, 0x2428, 0x5dbe, -0x00c2, 0xd781, 0x22f0, 0xf405, 0xa1af, 0xed74, 0xf64b, 0xd808, 0x304e, 0x5c2f, -0x2e87, 0x2aaf, 0x32b5, 0xdc5e, 0xbf90, 0xd852, 0xad5b, 0xdde3, 0x38e2, 0x1923, -0x04d1, 0x62c4, 0x5bb8, 0xe529, 0xeaaf, 0xfd61, 0xc422, 0xc0df, 0xfa6b, 0x0d7b, -0x16ff, 0x3f3e, 0x1d78, 0x1a46, 0x3b1d, 0xf55f, 0xc829, 0xeeb5, 0x0157, 0xdd55, -0xf41a, 0x20b5, 0x1533, 0x2329, 0x1f7c, 0x1523, 0x1e43, 0x1419, 0xdc00, 0xbfc2, -0xfbcf, 0xe187, 0xd1ef, 0x2a18, 0x3c8b, 0x1862, 0x2179, 0x4380, 0x06a1, 0xdc67, -0xe0e4, 0xb854, 0xda4e, 0xf2b5, 0xe744, 0x1f54, 0x57ea, 0x2932, 0xfa55, 0x3961, -0x0fd9, 0xbac6, 0xcdda, 0xd258, 0xcf89, 0xe3ab, 0x0707, 0x1a3e, 0x3967, 0x30cc, -0x0264, 0x2d4f, 0x1e6c, 0xcc01, 0xb70b, 0xd1c4, 0xdac0, 0xca7b, 0xfba8, 0x26c2, -0x371b, 0x359b, 0x23c6, 0x2fb4, 0x0da1, 0xd9bd, 0xae9d, 0xb89c, 0xdb61, 0xcb90, -0x0132, 0x482d, 0x42cd, 0x1e49, 0x2e1f, 0x3691, 0xe7fa, 0xc93c, 0xba66, 0xbb0a, -0xe251, 0xe472, 0x0383, 0x3f08, 0x4cc8, 0x1215, 0x1c80, 0x3b71, 0xe4f3, 0xc431, -0xcbb0, 0xc403, 0xd2f9, 0xf12b, 0x1313, 0x2f50, 0x4774, 0x1313, 0x18c4, 0x4058, -0xed5d, 0xb643, 0xc25a, 0xd92a, 0xcdc3, 0xe267, 0x25f0, 0x37bf, 0x38e3, 0x1db0, -0x2909, 0x2dab, 0xe635, 0xb3fb, 0xb52f, 0xe71a, 0xdad1, 0xdbe5, 0x2dd4, 0x4a45, -0x2f11, 0x15fc, 0x375b, 0x1edc, 0xd95e, 0xc7dd, 0xb91d, 0xdb9a, 0xe8d2, 0xea7d, -0x243c, 0x50aa, 0x347a, 0x0b10, 0x3f2c, 0x24ae, 0xc984, 0xc48d, 0xccec, 0xd726, -0xda77, 0xf845, 0x2782, 0x491b, 0x3bb7, 0x1233, 0x3698, 0x200c, 0xcd29, 0xb25f, -0xc2ef, 0xdd85, 0xd457, 0xfe96, 0x3830, 0x43f0, 0x2e94, 0x1a60, 0x3369, 0x07e9, -0xcb4f, 0xb645, 0xba73, 0xdbb8, 0xdb8f, 0xffae, 0x3a33, 0x48d7, 0x2211, 0x15da, -0x362f, 0xfbd5, 0xc39a, 0xb7fb, 0xc2cf, 0xe1cd, 0xe2d2, 0x0604, 0x36c9, 0x495d, -0x209d, 0x15d2, 0x37e6, 0xf91a, 0xc431, 0xbe00, 0xccf7, 0xe3be, 0xe90a, 0x14f8, -0x3bed, 0x4775, 0x22c5, 0x1a55, 0x2eb8, 0xf7ab, 0xcbee, 0xbb0a, 0xd4b7, 0xea3e, -0xe43a, 0x18fd, 0x455e, 0x429e, 0x1d75, 0x27b4, 0x2e04, 0xeadd, 0xca0c, 0xb834, -0xcf7e, 0xebe8, 0xec12, 0x1d2b, 0x4ce6, 0x4388, 0x1410, 0x2882, 0x2863, 0xdbfa, -0xc201, 0xbc64, 0xd1a8, 0xe40d, 0xf23c, 0x21f6, 0x44ac, 0x3ed5, 0x105b, 0x1f33, -0x1ab9, 0xd393, 0xb879, 0xb8a2, 0xd559, 0xdf87, 0xf31b, 0x2555, 0x3b7c, 0x3066, -0x0f9b, 0x206c, 0x1043, 0xd352, 0xb6fe, 0xb4ae, 0xdacb, 0xdd79, 0xed28, 0x2944, -0x40cc, 0x26e3, 0x1073, 0x2c6d, 0x0a8e, 0xd1fe, 0xbe7c, 0xb79c, 0xdbb0, 0xe28f, -0xf1b8, 0x2782, 0x45d6, 0x288a, 0x146e, 0x3752, 0x08d7, 0xccea, 0xc003, 0xbd89, -0xda98, 0xe4f4, 0x0193, 0x3341, 0x4c65, 0x29eb, 0x1665, 0x385c, 0x0502, 0xcaf3, -0xbfdd, 0xc859, 0xe1b4, 0xe85f, 0x0f40, 0x394b, 0x49b1, 0x2907, 0x1adb, 0x324c, -0xf922, 0xc6e9, 0xb961, 0xcbdd, 0xe7b2, 0xe6bd, 0x11f6, 0x3fef, 0x46fb, 0x1df6, -0x1d0f, 0x2f40, 0xeef5, 0xc4a6, 0xb575, 0xcb9f, 0xe637, 0xea22, 0x1afc, 0x450f, -0x486c, 0x1ca2, 0x2081, 0x27c1, 0xe170, 0xbe81, 0xb610, 0xd4bd, 0xe951, 0xed82, -0x22d8, 0x4920, 0x44fd, 0x1967, 0x24be, 0x230d, 0xdd5b, 0xbd48, 0xb2b2, 0xd74f, -0xebd6, 0xf51e, 0x2d0e, 0x4f15, 0x406d, 0x18ea, 0x2d32, 0x1b37, 0xd68b, 0xc044, -0xb935, 0xdd2b, 0xe8ca, 0xf474, 0x309b, 0x54b6, 0x3c42, 0x14ba, 0x347b, 0x1910, -0xd0a8, 0xbcba, 0xb8c9, 0xdc46, 0xe9fe, 0xfff4, 0x3532, 0x5389, 0x3988, 0x14af, -0x3504, 0x102d, 0xc848, 0xb929, 0xbe6f, 0xdd0e, 0xe430, 0x059c, 0x3ba7, 0x4f58, -0x2e33, 0x10f0, 0x2a2f, 0xfdb9, 0xc2f6, 0xafbb, 0xbb99, 0xe4f6, 0xe5f2, 0x07f0, -0x3ce6, 0x4606, 0x2206, 0x1803, 0x2b80, 0xee52, 0xc24f, 0xb46d, 0xbb4a, 0xe32e, -0xe633, 0x0953, 0x4238, 0x4b00, 0x1a28, 0x1723, 0x280d, 0xe191, 0xbf29, 0xb512, -0xbb95, 0xe083, 0xee77, 0x11e1, 0x3d02, 0x4905, 0x18fb, 0x175c, 0x25d3, 0xdaba, -0xb4bd, 0xb51c, 0xcc2b, 0xe1c5, 0xed1f, 0x1d15, 0x42ae, 0x42e0, 0x12aa, 0x15c7, -0x1ce6, 0xdd86, 0xbb2e, 0xb339, 0xd4c6, 0xe6a3, 0xee5c, 0x246d, 0x4599, 0x378a, -0x117f, 0x247f, 0x1587, 0xd40f, 0xc211, 0xba12, 0xda04, 0xe9d2, 0xf097, 0x2593, -0x4a0d, 0x33f2, 0x0e58, 0x2f92, 0x1796, 0xd23e, 0xc5d1, 0xbd1d, 0xd6a8, 0xea03, -0xfd4b, 0x2b76, 0x4d07, 0x372b, 0x12c1, 0x3610, 0x1455, 0xc9fa, 0xc082, 0xc65f, -0xdbf3, 0xe5fa, 0x0864, 0x3695, 0x4d6d, 0x3441, 0x13be, 0x2f2f, 0x090c, 0xce34, -0xb830, 0xc505, 0xfada, 0xec81, 0xfb68, 0x2eba, 0x319e, 0x3ce2, 0x44fb, 0x1d01, -0xdd9d, 0xd66a, 0xb232, 0xa016, 0xf64b, 0xfff6, 0x09d5, 0x7376, 0x8570, 0x20f6, -0xfe82, 0xf200, 0x9a52, 0xa325, 0xc4f5, 0xcbde, 0x2c79, 0x67bb, 0x4c8f, 0x46a8, -0x523c, 0xf79d, 0xabd0, 0xda12, 0xcc15, 0xb71c, 0xf62d, 0x1e60, 0x327a, 0x4b18, -0x2770, 0xf598, 0x157f, 0x094e, 0xbe89, 0xebf7, 0x2a77, 0xf098, 0xe9ee, 0x28e2, -0xf32a, 0xc056, 0x237c, 0x271d, 0xe4a4, 0x3978, 0x35ba, 0xe536, 0x10f5, 0xfdaa, -0xa68b, 0xd3ea, 0x212f, 0xea07, 0x08a6, 0x5e96, 0x0ae2, 0x07c6, 0x37b6, 0xd70c, -0xb092, 0xfe7d, 0xf21a, 0xcad9, 0x34d2, 0x36e9, 0xf083, 0x37da, 0x22a5, 0xbc01, -0xdc00, 0x1395, 0xd553, 0xe5e3, 0x3bac, 0xfd08, 0xfe92, 0x3f5c, 0xee23, 0xbc45, -0x0d39, 0x0a9c, 0xc61a, 0x146f, 0x2951, 0xdb39, 0x171e, 0x293d, 0xc2e7, 0xdd20, -0x32b9, 0xe330, 0xd7b9, 0x3cc5, 0xf7d9, 0xdcad, 0x311b, 0xf1df, 0xb0b8, 0x105b, -0x1a8c, 0xca51, 0x1be5, 0x2f80, 0xd616, 0x11ca, 0x2652, 0xbc4e, 0xcb96, 0x21a7, -0xe4b4, 0xe253, 0x4487, 0x0196, 0xe674, 0x3516, 0xfb04, 0xb3bc, 0xfeb8, 0x1079, -0xc24e, 0x088e, 0x3298, 0xe80b, 0x14c1, 0x2ed3, 0xd1a8, 0xcf82, 0x2207, 0xee50, -0xcf02, 0x2dec, 0x08af, 0xe42a, 0x344d, 0x0fb2, 0xb971, 0xfa3f, 0x1df7, 0xd32e, -0x11cc, 0x3722, 0xda30, 0x07ac, 0x3d3f, 0xd7ab, 0xc34d, 0x271b, 0xfe76, 0xdbb3, -0x3d61, 0x18ed, 0xed9b, 0x3389, 0x0c14, 0xba7c, 0xf987, 0x187e, 0xcd50, 0x1066, -0x476b, 0xf480, 0x1314, 0x42bb, 0xe5fe, 0xc3be, 0x1389, 0xf39f, 0xd575, 0x3648, -0x1e47, 0xf2fa, 0x3e74, 0x234a, 0xbf4c, 0xf288, 0x221b, 0xc710, 0xfa3c, 0x5035, -0xfb9e, 0x0502, 0x44eb, 0xeee6, 0xc43e, 0x1d61, 0xfb1c, 0xc9de, 0x3c74, 0x2aae, -0xe190, 0x3674, 0x2619, 0xaff2, 0xe8b6, 0x2937, 0xc78c, 0xf5df, 0x540b, 0xfb05, -0x020b, 0x434b, 0xe0e6, 0xacc1, 0x10fc, 0xf91d, 0xbcee, 0x3592, 0x3566, 0xe36e, -0x337d, 0x30bf, 0xb32f, 0xd426, 0x2162, 0xc820, 0xe042, 0x4c56, 0xfe46, 0xf61f, -0x4a89, 0xf803, 0xad4d, 0x11a6, 0x0a6c, 0xb6d1, 0x253a, 0x3311, 0xd5a0, 0x2667, -0x3498, 0xb800, 0xd872, 0x2f83, 0xd41e, 0xe4e1, 0x5463, 0xf738, 0xea30, 0x492c, -0xf007, 0xaab2, 0x16ec, 0x11da, 0xc262, 0x2e37, 0x3e3b, 0xdd03, 0x22dd, 0x30e8, -0xb674, 0xd170, 0x2e2c, 0xdcd6, 0xe399, 0x56b9, 0x04f1, 0xea52, 0x4a44, 0xfd31, -0xa60d, 0x09bf, 0x162d, 0xbcc9, 0x1f55, 0x4352, 0xde68, 0x1cd9, 0x3c0d, 0xbf98, -0xc8d8, 0x2a1f, 0xdc64, 0xd503, 0x4d6c, 0x0785, 0xe7a8, 0x476e, 0xff01, 0xa5cd, -0x064f, 0x17bf, 0xbe55, 0x1800, 0x3b7b, 0xd4d9, 0x10f0, 0x3690, 0xbf8d, 0xc71e, -0x297a, 0xe393, 0xd729, 0x47fe, 0x0285, 0xda51, 0x391b, 0xfeb3, 0xa48e, 0xfbc3, -0x19a9, 0xc3a0, 0x108e, 0x3eae, 0xdebc, 0x0f12, 0x36a2, 0xc4c0, 0xbf91, 0x1e2f, -0xe5de, 0xd395, 0x4354, 0x10d5, 0xe319, 0x39c0, 0x0a87, 0xace4, 0xf7d2, 0x18b7, -0xc582, 0x0b6f, 0x3da5, 0xe290, 0x0dde, 0x3c3e, 0xcfe6, 0xc55b, 0x253d, 0xeca1, -0xcf94, 0x3b7a, 0x0f41, 0xdf74, 0x366b, 0x1370, 0xb644, 0xfb14, 0x1f1e, 0xc7c9, -0x07b4, 0x41e9, 0xe70d, 0x071d, 0x3d77, 0xdb66, 0xc478, 0x265f, 0xf916, 0xd180, -0x3ee6, 0x1beb, 0xdeb9, 0x31d9, 0x191a, 0xb479, 0xf52c, 0x2801, 0xccf7, 0x03d4, -0x4bd7, 0xedac, 0x016a, 0x3a65, 0xd6fc, 0xbe27, 0x2266, 0x07f4, 0xd0c6, 0x0dcf, -0x1281, 0x0eb0, 0x45e8, 0x1d9a, 0xd8e3, 0x05c1, 0x084a, 0xb5be, 0xdaec, 0x09a2, -0xe1b9, 0x11ee, 0x6086, 0x43d5, 0x17db, 0x2892, 0xfb50, 0xb60e, 0xc9f7, 0xc054, -0xc68d, 0x23e0, 0x2ffe, 0x062b, 0x4e99, 0x701f, 0xf80e, 0xd329, 0xff2c, 0xcb90, -0xa2d6, 0xed8c, 0x1910, 0x0699, 0x2f80, 0x3089, 0x1d1c, 0x374f, 0x03b2, 0xc14c, -0xd8b6, 0xfb3d, 0xd617, 0xe1a7, 0x22a2, 0x2021, 0x1a55, 0x1dcb, 0x2025, 0x150c, -0x0753, 0xe11c, 0xb5ad, 0xeb4f, 0xe450, 0xcc01, 0x1b1d, 0x3faa, 0x18aa, 0x0e6d, -0x4970, 0x17e5, 0xcba3, 0xd80b, 0xbb23, 0xc5d9, 0xe755, 0xf01c, 0x158e, 0x5028, -0x3e7d, 0xfcdb, 0x3482, 0x21eb, 0xbae5, 0xbfbe, 0xd2fb, 0xcfc4, 0xd821, 0x0aca, -0x27bb, 0x3924, 0x3d1e, 0x0e86, 0x271a, 0x205b, 0xd16c, 0xaf53, 0xc9df, 0xe377, -0xce6f, 0xfa21, 0x34f1, 0x4083, 0x3410, 0x259d, 0x319d, 0x06b6, 0xd9dc, 0xb750, -0xb2df, 0xde42, 0xd8e4, 0xfe96, 0x4970, 0x54f6, 0x25ba, 0x2520, 0x3c2e, 0xedea, -0xc061, 0xba0d, 0xba48, 0xde9c, 0xeb84, 0x0af2, 0x401e, 0x56b2, 0x1aa5, 0x0f66, -0x36cf, 0xe844, 0xb80e, 0xc1dd, 0xc246, 0xcece, 0xe9fe, 0x177a, 0x32d2, 0x4547, -0x1818, 0x0c52, 0x30b6, 0xec12, 0xaf1a, 0xb2f2, 0xcfa8, 0xd2b1, 0xdf9e, 0x2116, -0x3ab2, 0x35ab, 0x1b48, 0x247c, 0x25e1, 0xdedd, 0xb1e5, 0xaf2b, 0xdb4a, 0xe17b, -0xdfc7, 0x27da, 0x4f71, 0x34be, 0x0ed1, 0x2d58, 0x1ef5, 0xd091, 0xc1bb, 0xbe47, -0xd524, 0xeaee, 0xf469, 0x2112, 0x4cf4, 0x3d3e, 0x0aff, 0x304c, 0x281a, 0xcdc7, -0xbbed, 0xd088, 0xe04a, 0xdeea, 0xfee9, 0x2f94, 0x47fc, 0x3dff, 0x1a27, 0x31e9, -0x1deb, 0xd894, 0xbec6, 0xc6e8, 0xe5fc, 0xe340, 0x014d, 0x3cd1, 0x4e2f, 0x32bd, -0x1d0c, 0x372e, 0x0af1, 0xce88, 0xc502, 0xc97d, 0xe495, 0xeb9c, 0x0798, 0x374a, -0x4e4d, 0x2a7e, 0x16b3, 0x3ddd, 0x08ed, 0xc949, 0xc5ee, 0xce08, 0xdf28, 0xe8b7, -0x0fe9, 0x3689, 0x490a, 0x2817, 0x1714, 0x38c1, 0x0109, 0xc527, 0xc1af, 0xd087, -0xdced, 0xe41e, 0x12dc, 0x3476, 0x3cd2, 0x201b, 0x1cbb, 0x2e40, 0xf269, 0xc5fe, -0xb844, 0xcaac, 0xdf7f, 0xe02f, 0x0f09, 0x373a, 0x383b, 0x13eb, 0x21ef, 0x2cbc, -0xe41a, 0xc568, 0xb82e, 0xc319, 0xdca2, 0xe63b, 0x0f93, 0x3ca2, 0x4202, 0x11af, -0x2392, 0x2ac6, 0xd906, 0xb7d3, 0xb715, 0xce35, 0xdb89, 0xef49, 0x2213, 0x3ff6, -0x3f4b, 0x14d9, 0x2398, 0x1f27, 0xd7ab, 0xb866, 0xb50a, 0xd74b, 0xe11e, 0xf58b, -0x2ece, 0x467f, 0x3963, 0x1933, 0x2caa, 0x1426, 0xd5d8, 0xbe81, 0xb620, 0xdf76, -0xe789, 0xf65e, 0x349f, 0x505c, 0x3366, 0x16ea, 0x3646, 0x0f5a, 0xd18a, 0xc1b2, -0xb7f7, 0xdd2a, 0xeb2f, 0xfd79, 0x30f5, 0x516e, 0x31d6, 0x12af, 0x388a, 0x0be7, -0xca82, 0xbdf0, 0xbc89, 0xda3c, 0xe687, 0x06e8, 0x3695, 0x5204, 0x3323, 0x158c, -0x3447, 0x05f1, 0xca02, 0xb88d, 0xc1cf, 0xe381, 0xea5c, 0x110d, 0x40c6, 0x4e27, -0x2a69, 0x1e8c, 0x30b5, 0xf349, 0xc5eb, 0xb6f0, 0xc440, 0xe7cd, 0xebf2, 0x1281, -0x4308, 0x4ce7, 0x1f25, 0x1bf5, 0x2d5c, 0xe897, 0xc291, 0xb85f, 0xc6be, 0xe556, -0xf257, 0x1cc0, 0x442d, 0x4d14, 0x200a, 0x1f36, 0x26a6, 0xdf96, 0xbef2, 0xb898, -0xd0e1, 0xe9a1, 0xf513, 0x2536, 0x486a, 0x4666, 0x1bd4, 0x216e, 0x1a61, 0xd966, -0xbfd6, 0xb46f, 0xd414, 0xeb0f, 0xf5c1, 0x2917, 0x4b03, 0x3b01, 0x120a, 0x279d, -0x127b, 0xce60, 0xc0b2, 0xbaa1, 0xd93a, 0xea16, 0xf79d, 0x29e1, 0x4e28, 0x3952, -0x0c9b, 0x2918, 0x0da3, 0xc8e3, 0xbf5d, 0xbd5b, 0xd7be, 0xe6b5, 0xff78, 0x2bfe, -0x474e, 0x30ea, 0x0afb, 0x2996, 0x09da, 0xc618, 0xb66b, 0xc002, 0xde8f, 0xe009, -0x0068, 0x34b1, 0x479e, 0x290d, 0x1057, 0x2cf4, 0x0037, 0xc901, 0xba19, 0xc161, -0xe4c1, 0xe626, 0x06b7, 0x3bce, 0x46e6, 0x1fc6, 0x1c43, 0x37dd, 0xf4a3, 0xc6e9, -0xc0da, 0xc57a, 0xe45d, 0xe96e, 0x0b68, 0x3e09, 0x4c53, 0x1c9e, 0x1978, 0x350c, -0xec82, 0xc2fd, 0xc069, 0xc683, 0xdf64, 0xee42, 0x1619, 0x39da, 0x4685, 0x1dc8, -0x1c78, 0x2de4, 0xe52f, 0xbb56, 0xb88c, 0xd10f, 0xe424, 0xed39, 0x226e, 0x45c9, -0x4373, 0x1798, 0x1d16, 0x2213, 0xe050, 0xbf9c, 0xb315, 0xd32f, 0xe7c5, 0xec31, -0x23d2, 0x48dd, 0x38f4, 0x0de0, 0x25fc, 0x1996, 0xcef8, 0xbc82, 0xb55a, 0xd59c, -0xe89f, 0xefe0, 0x23a4, 0x4993, 0x37a4, 0x0c32, 0x2be5, 0x17d1, 0xcddd, 0xc07a, -0xb8e9, 0xd329, 0xe54b, 0xfb4e, 0x2cfc, 0x4d3a, 0x3bad, 0x0fee, 0x2b2b, 0x1047, -0xc712, 0xb4f7, 0xbbf0, 0xdc5f, 0xe2f3, 0xfef6, 0x224e, 0x4c36, 0x6c76, 0x2b5c, -0xfa57, 0xe594, 0xbdb1, 0x8b0a, 0xa7ca, 0x0160, 0x0786, 0x400c, 0x8424, 0x5796, -0x1be9, 0xf540, 0xbdf9, 0x9768, 0xc4df, 0xbd3d, 0xdd3d, 0x63d3, 0x4e65, 0x1fea, -0x4e57, 0x38bb, 0xd91b, 0xcd56, 0xe3ad, 0xbffd, 0xfbd6, 0x0607, 0xdb8e, 0x3ccb, -0x4192, 0xd6b0, 0xf73b, 0x42bf, 0xeff1, 0xe330, 0x3dbd, 0xfa84, 0xdccf, 0x13df, -0xde74, 0xb718, 0x0b45, 0x28d2, 0xfb25, 0x3fa0, 0x4276, 0xedb2, 0x1335, 0x0954, -0xadc9, 0xc6fc, 0x1522, 0xf53c, 0xfe45, 0x4b87, 0x18e7, 0x04a7, 0x3412, 0xee3f, -0xb321, 0xfd48, 0x04c9, 0xc508, 0x15a8, 0x372c, 0xeb2f, 0x165c, 0x2ca0, 0xce55, -0xd34d, 0x1c95, 0xe2fd, 0xdd7e, 0x3294, 0xf905, 0xe452, 0x34a4, 0x04d0, 0xbdd7, -0x0a01, 0x1d14, 0xce45, 0x0c02, 0x2888, 0xd716, 0x03dc, 0x2b4a, 0xd5cd, 0xd68c, -0x2ef2, 0xfc10, 0xda6f, 0x316f, 0x0773, 0xda8e, 0x2215, 0x0507, 0xb6f3, 0xfe70, -0x2a5d, 0xd6c8, 0x0b84, 0x4188, 0xe8c4, 0xfdd0, 0x2ec5, 0xd794, 0xc3a2, 0x2279, -0xf779, 0xd09d, 0x423d, 0x27fc, 0xe6f8, 0x2f40, 0x1b5a, 0xbc8b, 0xf157, 0x1fb4, -0xcaa0, 0xfa3a, 0x4232, 0xf922, 0x0ecb, 0x3f09, 0xe3ee, 0xc318, 0x1cef, 0xfdc1, -0xca4c, 0x2a22, 0x20f1, 0xe87d, 0x279c, 0x1afc, 0xbe72, 0xe720, 0x2220, 0xd1d4, -0xf6a7, 0x4e3e, 0xf5f4, 0xecca, 0x3b54, 0xf567, 0xb06f, 0x0a45, 0x0b98, 0xc973, -0x28f0, 0x2f21, 0xdfeb, 0x24a0, 0x2810, 0xaef4, 0xd207, 0x2ab3, 0xcd51, 0xdc82, -0x4ca3, 0xfdde, 0xef82, 0x40ab, 0xf143, 0xac33, 0x082b, 0xfdac, 0xb9b7, 0x28f3, -0x2b71, 0xd054, 0x2723, 0x3651, 0xb6cf, 0xd176, 0x2ba8, 0xd75d, 0xdb92, 0x450f, -0xfd8f, 0xec9c, 0x3e23, 0xf598, 0xaf02, 0x111a, 0x135a, 0xbd2d, 0x2334, 0x3d0a, -0xd3d8, 0x1768, 0x3bb0, 0xbab9, 0xc676, 0x311a, 0xe06f, 0xd889, 0x5018, 0x070b, -0xe756, 0x4942, 0xfd09, 0x9d71, 0x0bcc, 0x1bed, 0xb4ce, 0x1c66, 0x47ec, 0xdc5f, -0x1b74, 0x4238, 0xc481, 0xcf1b, 0x32f5, 0xe1ce, 0xda85, 0x4e4d, 0x0437, 0xe474, -0x4777, 0x07ed, 0xaff9, 0x127d, 0x24cd, 0xc370, 0x199d, 0x3e29, 0xd8bf, 0x14fd, -0x3d8b, 0xc8ea, 0xd1b6, 0x3766, 0xecd3, 0xda6f, 0x4fa7, 0x0ce7, 0xdddd, 0x4019, -0x0c05, 0xaedb, 0x0dbc, 0x2b4c, 0xcdd3, 0x1ddc, 0x470d, 0xe283, 0x1764, 0x40d4, -0xcabb, 0xcd66, 0x3585, 0xf1c2, 0xdda9, 0x4ffb, 0x11e4, 0xe28a, 0x415d, 0x12d2, -0xb486, 0x055e, 0x1fd4, 0xc66e, 0x12ca, 0x417e, 0xe4e2, 0x1229, 0x3e2a, 0xd10c, -0xc800, 0x29e0, 0xed4e, 0xd10c, 0x3fcc, 0x11a3, 0xe1f9, 0x3ad7, 0x16ca, 0xb727, -0x0155, 0x2400, 0xc8c6, 0x0c22, 0x40bf, 0xe1dc, 0x06e9, 0x3e89, 0xd924, 0xc59a, -0x27a2, 0xf22c, 0xcfad, 0x3f51, 0x14cd, 0xda51, 0x2f15, 0x1235, 0xae68, 0xedef, -0x1983, 0xc602, 0x06d9, 0x46e6, 0xe9de, 0x01cd, 0x3928, 0xd470, 0xb512, 0x15ff, -0xec31, 0xc9cd, 0x3f78, 0x243a, 0xe15e, 0x29ed, 0x1245, 0xaba1, 0xe5e9, 0x199e, -0xc296, 0xfe39, 0x4ac5, 0xeb5f, 0xfa56, 0x3c11, 0xd94f, 0xae50, 0x1511, 0xf001, -0xbde3, 0x36c2, 0x230d, 0xd7fe, 0x2c17, 0x1e3a, 0xaa06, 0xe31f, 0x226e, 0xc144, -0xf626, 0x4f4e, 0xeb1e, 0xf4dd, 0x3e8c, 0xdc0a, 0xaf47, 0x1e56, 0xfed8, 0xc48e, -0x3d56, 0x2b0f, 0xd682, 0x2918, 0x1dec, 0xa955, 0xe5bb, 0x2b6b, 0xc9b8, 0xfa77, -0x56f8, 0xf481, 0xfb61, 0x4479, 0xdf2e, 0xabca, 0x1c70, 0xffe7, 0xbc88, 0x3a59, -0x3826, 0xe054, 0x2f4b, 0x2c11, 0xb1dd, 0xe03e, 0x2b29, 0xc998, 0xf18d, 0x59ee, -0xf7ac, 0xf73d, 0x4d8e, 0xed67, 0xb1d8, 0x21a9, 0x1848, 0xccda, 0x07a8, 0xffcd, -0xfa23, 0x5aea, 0x3797, 0xd62f, 0x0ab0, 0x245e, 0xb225, 0xc27c, 0x09d2, 0xd863, -0xfe56, 0x5bb6, 0x4ddb, 0x2aa0, 0x3bda, 0x0b4a, 0xc172, 0xdcc2, 0xc178, 0xb04a, -0x211f, 0x3a69, 0xf99a, 0x3316, 0x7dfa, 0x1afe, 0xd954, 0x046d, 0xdf49, 0xb051, -0xdb3e, 0x09de, 0x0f9f, 0x347e, 0x2f84, 0x0af2, 0x3895, 0x1ade, 0xc5b6, 0xd468, -0xfe63, 0xe6d0, 0xddae, 0x14b5, 0x175e, 0x16c3, 0x1fae, 0x122e, 0x1fcb, 0x16f5, -0xef7f, 0xbe99, 0xdd8a, 0xf61b, 0xc6ce, 0x019a, 0x43c3, 0x2909, 0x1168, 0x39ad, -0x2f76, 0xde14, 0xddd2, 0xc963, 0xbd2a, 0xea45, 0xea62, 0x0266, 0x4616, 0x4e1c, -0x015e, 0x18de, 0x36f6, 0xcf20, 0xb656, 0xd210, 0xd017, 0xd8b3, 0xfb2f, 0x1950, -0x2b27, 0x3c69, 0x095e, 0x0ec5, 0x2d9c, 0xe85e, 0xb75b, 0xc4ac, 0xe1a3, 0xcfe0, -0xdf2a, 0x1a10, 0x3183, 0x376b, 0x1d4c, 0x237d, 0x185c, 0xe4f3, 0xbf7b, 0xab18, -0xcfc2, 0xd346, 0xe11c, 0x2903, 0x45ea, 0x24aa, 0x102b, 0x353d, 0x080f, 0xc677, -0xbdeb, 0xb32e, 0xd477, 0xe331, 0xef66, 0x2325, 0x4c5c, 0x27b3, 0xfaf5, 0x3106, -0x1252, 0xc709, 0xca81, 0xcbe5, 0xd04d, 0xdd4e, 0xfd3c, 0x1a5f, 0x3c21, 0x2935, -0x0252, 0x3750, 0x1e8e, 0xc8e4, 0xb83e, 0xd48f, 0xdc6e, 0xce04, 0x0585, 0x31bc, -0x360a, 0x2009, 0x14c2, 0x394e, 0x10a3, 0xc93d, 0xafa5, 0xd6b1, 0xef04, 0xcd94, -0x0467, 0x48be, 0x4051, 0x1437, 0x1fb5, 0x3cd3, 0xf79e, 0xcc8f, 0xc153, 0xcd1f, -0xeeb7, 0xe37c, 0x03cf, 0x4174, 0x4958, 0x1000, 0x1d3b, 0x4853, 0xf289, 0xbea9, -0xc9e2, 0xd4e7, 0xde7b, 0xe633, 0x1461, 0x3e75, 0x4911, 0x1b5a, 0x2106, 0x4059, -0xf467, 0xbf92, 0xc1f8, 0xd995, 0xdcf6, 0xe0ba, 0x1eb5, 0x4600, 0x4167, 0x1d25, -0x2ef9, 0x3639, 0xe56b, 0xc105, 0xc027, 0xd70a, 0xe1eb, 0xea01, 0x247e, 0x4c66, -0x3f10, 0x14c8, 0x3245, 0x3094, 0xdd32, 0xc132, 0xc147, 0xd9a1, 0xe18c, 0xeeb8, -0x2824, 0x4a69, 0x395c, 0x1015, 0x3040, 0x238d, 0xd48a, 0xc21b, 0xc53b, 0xdc6d, -0xe1ce, 0xf6ef, 0x2ad6, 0x46b7, 0x34da, 0x1114, 0x34eb, 0x1e8c, 0xd361, 0xbe8c, -0xc1c6, 0xe012, 0xdf71, 0xf81f, 0x3359, 0x4a06, 0x2d71, 0x1454, 0x38da, 0x0f58, -0xccf4, 0xbea1, 0xbbb5, 0xdb25, 0xe2c4, 0xfd77, 0x3627, 0x5121, 0x2c35, 0x15a0, -0x3989, 0x0018, 0xc03f, 0xbaf5, 0xc3cd, 0xe02b, 0xe6c9, 0x0e3d, 0x3eb5, 0x4d58, -0x26cb, 0x1318, 0x2fe0, 0xf891, 0xc27d, 0xb828, 0xc71e, 0xe21d, 0xe699, 0x15c5, -0x4058, 0x45ef, 0x2262, 0x1985, 0x28bc, 0xeca7, 0xc32c, 0xb7e4, 0xcfc1, 0xea07, -0xe4ac, 0x173a, 0x461c, 0x3eba, 0x15fa, 0x2087, 0x2703, 0xe29a, 0xc4b3, 0xb600, -0xc8f7, 0xe687, 0xe9ba, 0x15c4, 0x426b, 0x3e74, 0x0edd, 0x1f75, 0x23b8, 0xd925, -0xc0ab, 0xba1f, 0xcb2d, 0xe095, 0xeca2, 0x1990, 0x40e5, 0x3c5d, 0x1023, 0x24d2, -0x1ebd, 0xd280, 0xbab7, 0xba30, 0xd226, 0xe0d0, 0xf39a, 0x22d6, 0x4063, 0x34fc, -0x0f3b, 0x2825, 0x190f, 0xd310, 0xbcd9, 0xbd2e, 0xd80b, 0xdd5a, 0xf3ce, 0x2b22, -0x4783, 0x32fb, 0x13a4, 0x3361, 0x1484, 0xcf84, 0xc067, 0xc184, 0xdb6a, 0xe3e8, -0x0230, 0x3122, 0x4768, 0x320a, 0x16c1, 0x3427, 0x0aed, 0xc9bb, 0xba81, 0xc328, -0xe12c, 0xe1e3, 0x07e1, 0x3ec1, 0x4f67, 0x2ddc, 0x15f0, 0x2f32, 0xfe24, 0xc964, -0xbbfd, 0xc754, 0xe848, 0xe9ef, 0x1196, 0x41b3, 0x4b5f, 0x2760, 0x1f91, 0x35ce, -0xf3d5, 0xc722, 0xbfad, 0xcade, 0xe85a, 0xeaa5, 0x1660, 0x4809, 0x4c60, 0x1f11, -0x212f, 0x36b0, 0xefd1, 0xc764, 0xbc28, 0xc837, 0xe455, 0xec50, 0x1c88, 0x4b3c, -0x4de3, 0x2041, 0x28c6, 0x32d7, 0xe1ea, 0xbea7, 0xbd29, 0xd1a9, 0xe60c, 0xf02d, -0x2433, 0x4c51, 0x4811, 0x1816, 0x23ce, 0x292b, 0xdf35, 0xbcec, 0xb6b3, 0xd50d, -0xe49a, 0xee6a, 0x2b0c, 0x4b27, 0x39f9, 0x15f5, 0x29d8, 0x1859, 0xd36e, 0xc04c, -0xb5ab, 0xd4b0, 0xe461, 0xec0c, 0x2803, 0x4fb2, 0x371f, 0x0f49, 0x2de8, 0x1063, -0xc7dd, 0xbbcc, 0xb195, 0xcdad, 0xe2b5, 0xf6ed, 0x29d0, 0x4ac5, 0x31e4, 0x0aa9, -0x2acb, 0x0735, 0xbe72, 0xb39c, 0xb620, 0xd1d9, 0xdc5c, 0xfcdd, 0x307a, 0x46be, -0x2c7c, 0x0a2b, 0x22ab, 0xfca8, 0xc0ac, 0xafc4, 0xb815, 0xde74, 0xe13f, 0x0269, -0x370e, 0x4107, 0x21c4, 0x13c8, 0x26a3, 0xf061, 0xc3ac, 0xb5ad, 0xbbea, 0xe2b6, -0xe314, 0x03cd, 0x3a8a, 0x453e, 0x1c0b, 0x167a, 0x2afd, 0xe8ae, 0xc330, 0xbb1d, -0xbd71, 0xdff6, 0xea8c, 0x0cd6, 0x3cc1, 0x4b59, 0x1e08, 0x1762, 0x288a, 0xe327, -0xbcf5, 0xbc04, 0xcc41, 0xe3b8, 0xf214, 0x1f63, 0x40b7, 0x4556, 0x1932, 0x14e9, -0x22d4, 0xe5af, 0xc176, 0xbaf1, 0xd516, 0xeaa3, 0xed1a, 0x10a5, 0x4490, 0x6d0e, -0x387d, 0x06ad, 0xf979, 0xc011, 0x9e3c, 0xad92, 0xe582, 0x1234, 0x4531, 0x6a71, -0x4d3b, 0x3443, 0xfe14, 0xbf35, 0xb76f, 0xcbe7, 0xc8b4, 0xe9aa, 0x501f, 0x43d8, -0x1d18, 0x4560, 0x2e0d, 0xf4de, 0xea75, 0xe7b7, 0xd73f, 0x0fdc, 0x11cd, 0xd145, -0x29c3, 0x44d4, 0xdad6, 0xf4f0, 0x3e51, 0x092e, 0x07b6, 0x43ce, 0xfd5a, 0xf591, -0x1f19, 0xc2ea, 0xb2d7, 0x198e, 0x140f, 0xfa53, 0x5e12, 0x4564, 0xf1ae, 0x2e33, -0x0b49, 0xa4bb, 0xdaed, 0x1485, 0xdc90, 0x0cbf, 0x4f0d, 0x0854, 0x15b5, 0x3b75, -0xe6b5, 0xbe4e, 0x0981, 0xfc23, 0xc6c6, 0x22a2, 0x2984, 0xf1db, 0x27f9, 0x1ab0, -0xc60e, 0xe49e, 0x21a8, 0xd681, 0xe953, 0x41f4, 0xf337, 0xeb9d, 0x3560, 0xf514, -0xbd12, 0x135a, 0x1144, 0xc99f, 0x21e0, 0x2271, 0xd155, 0x1a35, 0x25a3, 0xbec7, -0xdc7d, 0x31ed, 0xe802, 0xe46d, 0x3ef6, 0xfc72, 0xeb7d, 0x2fc5, 0xecf1, 0xb132, -0x0d6d, 0x171d, 0xcaf3, 0x20be, 0x36cd, 0xdeff, 0x1430, 0x2c97, 0xc49c, 0xcab8, -0x247c, 0xe2b5, 0xd3f1, 0x3d93, 0x0c22, 0xee37, 0x3907, 0x01ea, 0xb32c, 0x07e5, -0x153f, 0xb7d0, 0x0a61, 0x333d, 0xdb8a, 0x1138, 0x3892, 0xcfca, 0xccd1, 0x2831, -0xeb12, 0xd73f, 0x357e, 0xfe1d, 0xe21b, 0x300a, 0xfded, 0xaf91, 0xffaf, 0x1ba1, -0xc5b1, 0x0c52, 0x3c73, 0xe33f, 0xfac8, 0x2338, 0xd7bc, 0xc7f4, 0x0f99, 0xe739, -0xd9e0, 0x3980, 0x0e6d, 0xe382, 0x335e, 0x15f9, 0xae82, 0xe698, 0x1c86, 0xca1d, -0xf6f1, 0x34d2, 0xf14d, 0x0fec, 0x3c9a, 0xdef1, 0xc8df, 0x20f3, 0xea68, 0xc50a, -0x33ef, 0x1185, 0xd7d4, 0x2ebc, 0x2178, 0xc1c1, 0xf72b, 0x2354, 0xd2eb, 0x0168, -0x30db, 0xe0a6, 0x05a6, 0x3bad, 0xdc09, 0xc45f, 0x276d, 0xfd11, 0xcf0a, 0x363e, -0x204b, 0xe4d0, 0x2851, 0x199c, 0xbc3c, 0xe9df, 0x1c38, 0xcf05, 0x03b3, 0x4c0e, -0xf6ee, 0x068d, 0x44a0, 0xe3e0, 0xb163, 0x17fa, 0xfdee, 0xc709, 0x37cd, 0x2e63, -0xea1c, 0x3531, 0x2ca0, 0xbf9e, 0xeeec, 0x2b06, 0xc5f7, 0xf1c8, 0x5385, 0xfc84, -0x0002, 0x49cb, 0xf52b, 0xbfbf, 0x204d, 0x04c6, 0xc649, 0x35e9, 0x30b9, 0xe658, -0x31b2, 0x2cb7, 0xb96b, 0xe5a8, 0x2f24, 0xd410, 0xf6ab, 0x5771, 0x04b9, 0xfc36, -0x3ec2, 0xecd7, 0xb28a, 0x1904, 0x0954, 0xc24d, 0x3764, 0x3ade, 0xddf2, 0x29ce, -0x3445, 0xb4d5, 0xd352, 0x2d79, 0xd037, 0xe09a, 0x535a, 0x01a5, 0xf095, 0x48ef, -0xf767, 0xa8aa, 0x11b3, 0x097b, 0xb15c, 0x2a36, 0x3db4, 0xd6cd, 0x24b8, 0x3712, -0xb430, 0xcdb4, 0x2b60, 0xd3aa, 0xe09b, 0x53eb, 0xfc4a, 0xea6b, 0x4b2a, 0xf90e, -0xa8c8, 0x1124, 0x129b, 0xbaac, 0x269d, 0x4030, 0xda96, 0x20e1, 0x3a2e, 0xbd1c, -0xd0d8, 0x3158, 0xdd88, 0xdee5, 0x57dc, 0x0a22, 0xeb70, 0x4be8, 0x027e, 0xa602, -0x0680, 0x1714, 0xbfed, 0x242e, 0x47b1, 0xe011, 0x1d8e, 0x3eca, 0xc029, 0xc616, -0x2e06, 0xe28f, 0xd4aa, 0x4f9e, 0x0f06, 0xe649, 0x438d, 0x0564, 0xa6f1, 0x02f6, -0x1bd3, 0xc020, 0x18b7, 0x4204, 0xd71b, 0x0fc8, 0x3e52, 0xc2b8, 0xbf78, 0x2bd7, -0xe6d3, 0xce7b, 0x47d7, 0x0a5d, 0xd7d4, 0x39c7, 0x074e, 0xa273, 0xfc77, 0x1fef, -0xbcf9, 0x0cec, 0x426a, 0xd4f2, 0x044f, 0x3d93, 0xc6ea, 0xbcdf, 0x2bd1, 0xed0b, -0xce10, 0x43d0, 0x0ca2, 0xd5d2, 0x35c4, 0x0c15, 0xa646, 0xfa2d, 0x2097, 0xc0dd, -0x0c2b, 0x439b, 0xdc9c, 0x059f, 0x3b30, 0xca4a, 0xbbcb, 0x2337, 0xe7a3, 0xc717, -0x3dae, 0x1491, 0xdc09, 0x3229, 0x0f3e, 0xac38, 0xf62a, 0x25d7, 0xcda9, 0xe86a, -0x0ccd, 0xe87d, 0x2a51, 0x46ee, 0xea42, 0xe40d, 0x22b1, 0xd631, 0xa84b, 0xf868, -0xe4f9, 0xdc35, 0x395d, 0x50be, 0x1fd6, 0x25ac, 0x1e57, 0xc641, 0xc358, 0xd0f2, -0xac56, 0xf1aa, 0x385d, 0x08e0, 0x0c0c, 0x6c90, 0x3d9a, 0xd534, 0xf575, 0xf32f, -0xb660, 0xc715, 0x00c3, 0x060a, 0x1cc0, 0x3bee, 0x0fef, 0x2648, 0x390e, 0xe520, -0xcaa4, 0xfc07, 0xfa8c, 0xcfc3, 0xff3b, 0x2146, 0x0eaa, 0x22f7, 0x21eb, 0x22a5, -0x2b3f, 0x140f, 0xd035, 0xce0d, 0x018b, 0xcdfd, 0xe402, 0x4024, 0x35a0, 0x11b4, -0x30f7, 0x48c6, 0xfc36, 0xe429, 0xd9e4, 0xb819, 0xe9ae, 0xecf6, 0xeaac, 0x339b, -0x5af6, 0x18c2, 0x0a7d, 0x49f9, 0xfaf8, 0xba8d, 0xd5ae, 0xd0dc, 0xd43b, 0xee6d, -0x117b, 0x23d1, 0x46ee, 0x29ad, 0x0339, 0x3a96, 0x1314, 0xc110, 0xbad0, 0xd9cf, -0xd706, 0xcd74, 0x0d91, 0x315e, 0x3f9c, 0x359b, 0x2190, 0x2aef, 0x0433, 0xcdb2, -0xa574, 0xc711, 0xe12e, 0xcf40, 0x197f, 0x5324, 0x3d77, 0x20a5, 0x375c, 0x2d03, -0xe262, 0xca54, 0xb0b0, 0xc640, 0xed6e, 0xe3a9, 0x14a7, 0x559a, 0x4789, 0x0af5, -0x2c0d, 0x3078, 0xd574, 0xc8f1, 0xc60c, 0xc4a3, 0xddbb, 0xf434, 0x12bf, 0x3a4f, -0x46b5, 0x0de9, 0x28f8, 0x3a3e, 0xd862, 0xb36e, 0xc4b9, 0xd290, 0xcc9e, 0xf150, -0x28e5, 0x36b7, 0x3727, 0x1942, 0x296a, 0x1f3b, 0xd304, 0xaa50, 0xb7e0, 0xe064, -0xcd60, 0xe774, 0x36d2, 0x4354, 0x256f, 0x16b9, 0x32a9, 0x04e9, 0xc94b, 0xbd89, -0xb4e8, 0xde63, 0xe6b3, 0xefc2, 0x2c99, 0x4d30, 0x244c, 0x0dd9, 0x4013, 0x0a25, -0xbf81, 0xc647, 0xc8d3, 0xd098, 0xddd7, 0x0729, 0x2f46, 0x49fe, 0x3186, 0x11dd, -0x33c9, 0x0a1a, 0xc455, 0xb4fe, 0xcbf9, 0xe01f, 0xd9c3, 0x0d63, 0x3ca9, 0x40e4, -0x2597, 0x1f85, 0x2fee, 0xf6c7, 0xc763, 0xb733, 0xcbd2, 0xe734, 0xe337, 0x11ef, -0x4379, 0x4377, 0x1865, 0x216c, 0x32c8, 0xee0c, 0xca47, 0xc04a, 0xd076, 0xe70b, -0xebed, 0x16a9, 0x3f81, 0x44ae, 0x16f6, 0x2266, 0x31f0, 0xe6d6, 0xc30d, 0xc333, -0xd87e, 0xe495, 0xf14b, 0x1f91, 0x3ab4, 0x3a37, 0x1822, 0x291b, 0x2bcf, 0xea2c, -0xc762, 0xbf57, 0xdd08, 0xe181, 0xec7b, 0x28f2, 0x456d, 0x366d, 0x1d72, 0x3891, -0x2266, 0xe229, 0xcd55, 0xbe26, 0xdad8, 0xe6b2, 0xf1ad, 0x2a59, 0x4ce7, 0x346f, -0x18da, 0x3eb3, 0x1a5c, 0xd0e6, 0xc45c, 0xbfe1, 0xd4d3, 0xe11f, 0x014a, 0x2f81, -0x4863, 0x3408, 0x1268, 0x31f4, 0x0ec8, 0xca3c, 0xb9fc, 0xc1dc, 0xdd52, 0xe093, -0x05ff, 0x33c3, 0x43d7, 0x2da7, 0x1671, 0x2bf0, 0x0034, 0xc97d, 0xb0c3, 0xbe5e, -0xe43b, 0xdb68, 0x0387, 0x3ae6, 0x3ee7, 0x1b43, 0x174b, 0x2d76, 0xf26e, 0xc68d, -0xb289, 0xbb76, 0xe0fe, 0xde57, 0x0305, 0x3b0e, 0x44f7, 0x17e8, 0x1ae0, 0x2e9e, -0xe6b9, 0xc23e, 0xb5b3, 0xbe35, 0xde8a, 0xe55c, 0x0e04, 0x3e2d, 0x4749, 0x1891, -0x1cce, 0x2c46, 0xe31a, 0xbc10, 0xb2be, 0xc7d4, 0xe1b0, 0xec58, 0x1b5f, 0x42a4, -0x4577, 0x18af, 0x206d, 0x2610, 0xe0cf, 0xbee7, 0xb63b, 0xd3ec, 0xe4ab, 0xed6c, -0x253f, 0x4a99, 0x42a8, 0x18da, 0x2a90, 0x2130, 0xd967, 0xc013, 0xb623, 0xd3d0, -0xe7d4, 0xf7c7, 0x2d1b, 0x4df4, 0x3dfe, 0x18d3, 0x2e94, 0x12e1, 0xceb7, 0xbc8b, -0xb721, 0xd9e6, 0xe7b6, 0xfe42, 0x37c7, 0x5256, 0x3916, 0x14fa, 0x2b19, 0x0829, -0xcbbc, 0xbc11, 0xba4e, 0xe0c8, 0xec3c, 0x04ba, 0x39d7, 0x4f48, 0x314f, 0x1b2a, -0x320f, 0xfbd4, 0xc7ad, 0xbe46, 0xbcb0, 0xdfec, 0xea9d, 0x0a76, 0x3eae, 0x51ce, -0x28b8, 0x15c7, 0x32b1, 0xf736, 0xc436, 0xbbe2, 0xc2bd, 0xe357, 0xecf4, 0x10c4, -0x40f6, 0x524e, 0x25cd, 0x19ce, 0x301e, 0xec1e, 0xbc6a, 0xbace, 0xd1d8, 0xe825, -0xec23, 0x1b1b, 0x4400, 0x482a, 0x1bce, 0x1896, 0x260d, 0xe7f6, 0xc325, 0xb5e4, -0xd101, 0xeabf, 0xea0d, 0x1d52, 0x47b3, 0x3cf0, 0x1282, 0x235d, 0x2050, 0xd9ae, -0xc4d9, 0xb970, 0xd086, 0xe87d, 0xea86, 0x1b23, 0x48b1, 0x3c02, 0x0e92, 0x2cb2, -0x2472, 0xd2cb, 0xbff8, 0xbc43, 0xce22, 0xe2d3, 0xf745, 0x2364, 0x47bb, 0x3e11, -0x1209, 0x2f53, 0x1fb0, 0xcfac, 0xba0d, 0xbeea, 0xd8e3, 0xde1c, 0xf854, 0x2f24, -0x49ea, 0x387f, 0x14be, 0x2de7, 0x1304, 0xd01b, 0xb948, 0xbc56, 0xe0d1, 0xe484, -0xff93, 0x3655, 0x488a, 0x2bf5, 0x16ba, 0x3637, 0x07aa, 0xcf32, 0xc24d, 0xc063, -0xe449, 0xe713, 0x01e8, 0x3b25, 0x4f83, 0x26c5, 0x1640, 0x3ab8, 0xff8c, 0xc83c, -0xbf7c, 0xc052, 0xdf32, 0xe807, 0x09ef, 0x390f, 0x4d01, 0x25f5, 0x19b1, 0x3685, -0xf201, 0xbb2e, 0xb561, 0xc59a, 0xdeac, 0xe81d, 0x110d, 0x2f0d, 0x5faf, 0x5bc4, -0x12fe, 0xf615, 0xda50, 0xa9ae, 0x886f, 0xcd18, 0x0718, 0x09f1, 0x5bb7, 0x7af7, -0x3e15, 0x0a73, 0xe799, 0xa715, 0x9c71, 0xc971, 0xb0a1, 0x07a7, 0x6f82, 0x3163, -0x2a82, 0x5398, 0x14c9, 0xbfc2, 0xd8b3, 0xd540, 0xc5ce, 0x0fda, 0xf099, 0xf1a7, -0x518e, 0x1c60, 0xcd84, 0x19da, 0x35b8, 0xd346, 0x03a1, 0x377b, 0xdf14, 0xefc5, -0x0c59, 0xc206, 0xc448, 0x2196, 0x11ee, 0xfe70, 0x4f48, 0x1fa8, 0xeb2d, 0x1d5b, -0xeaf2, 0x9f51, 0xdaef, 0x10e0, 0xe2b8, 0x140e, 0x4a7c, 0x0548, 0x11c6, 0x2b5c, -0xd063, 0xb9e9, 0x0c49, 0xee9f, 0xcd6b, 0x32da, 0x2204, 0xe702, 0x2c36, 0x195d, -0xbc4d, 0xef56, 0x1ea6, 0xd1a8, 0xfb24, 0x33f8, 0xe2fa, 0xffb5, 0x3ccd, 0xe4cb, -0xca25, 0x2563, 0x0355, 0xd2da, 0x2bb0, 0x137a, 0xd6ec, 0x2218, 0x1b95, 0xc3b7, -0xf854, 0x3722, 0xe6e8, 0xf671, 0x3596, 0xec18, 0xf030, 0x2d9c, 0xe6e7, 0xc2e9, -0x26d5, 0x1a49, 0xd733, 0x2bbd, 0x26a1, 0xdab2, 0x1ba0, 0x23f0, 0xc355, 0xe703, -0x2bce, 0xdc49, 0xf190, 0x496d, 0xfc6e, 0xf386, 0x3dfc, 0xf7e9, 0xbcff, 0x1444, -0x0996, 0xc579, 0x1fc6, 0x2a9c, 0xe722, 0x261f, 0x2af6, 0xc74c, 0xe3b8, 0x2a8b, -0xe105, 0xe8c4, 0x3bef, 0xfd9f, 0xefc2, 0x313f, 0xf888, 0xbeed, 0x0f0d, 0x10ba, -0xcf13, 0x2814, 0x3a0d, 0xdf51, 0x0dca, 0x2f8f, 0xccfa, 0xc831, 0x1d1f, 0xe940, -0xe8cf, 0x4a93, 0x0d52, 0xef83, 0x3c76, 0xfaba, 0xa5dd, 0x0126, 0x112f, 0xbdc7, -0x1a61, 0x422a, 0xe9fb, 0x1b1a, 0x3694, 0xc9c9, 0xce2b, 0x1ef2, 0xd732, 0xdc7b, -0x46da, 0xff7f, 0xe9fc, 0x46e1, 0x05ac, 0xaeb6, 0x0663, 0x159d, 0xc012, 0x1316, -0x34ba, 0xdd94, 0x12fd, 0x31f6, 0xc596, 0xcbff, 0x2ae2, 0xe4d5, 0xd6c1, 0x4927, -0x0b3d, 0xdd77, 0x3926, 0x07d1, 0xa2d2, 0xfb2e, 0x211d, 0xc317, 0x1769, 0x4b14, -0xe280, 0x1326, 0x411c, 0xc1e2, 0xbac5, 0x2cf6, 0xe603, 0xcb4b, 0x4ed8, 0x191b, -0xe401, 0x458d, 0x1545, 0xac87, 0x005f, 0x1e4a, 0xba9b, 0x0cc0, 0x467e, 0xe1cf, -0x11da, 0x478e, 0xd350, 0xc70d, 0x31c1, 0xf201, 0xce1e, 0x434c, 0x12d6, 0xdd0b, -0x3986, 0x1337, 0xaf6d, 0x006c, 0x2ca7, 0xc8ff, 0x0c23, 0x4bde, 0xe11d, 0x0318, -0x41ef, 0xd0e5, 0xbd29, 0x3042, 0xf8a0, 0xd014, 0x4ad2, 0x1b53, 0xda3d, 0x3aa3, -0x14be, 0xa4bb, 0xf7a1, 0x2b27, 0xc43a, 0x0948, 0x507e, 0xe296, 0x0297, 0x45db, -0xd510, 0xb990, 0x273a, 0xf430, 0xc750, 0x3f4c, 0x1a85, 0xdb6a, 0x3993, 0x1ab4, -0xadf3, 0xf5f6, 0x280d, 0xc5fc, 0xfe8a, 0x4668, 0xe58d, 0x011c, 0x457a, 0xdfc7, -0xbebe, 0x255e, 0xfae1, 0xcb02, 0x3a3a, 0x1b49, 0xd635, 0x2c90, 0x1a6d, 0xb0f1, -0xf0b7, 0x2851, 0xcb11, 0xfd3b, 0x4815, 0xe902, 0xf73a, 0x3af3, 0xde3a, 0xb633, -0x1a27, 0xfae7, 0xc8e7, 0x3373, 0x1efa, 0xdab3, 0x2af8, 0x1f54, 0xb3a4, 0xe5bd, -0x2010, 0xc657, 0xef33, 0x4332, 0xf32a, 0xf8bc, 0x3a43, 0xe716, 0xb380, 0x1025, -0xf94b, 0xbff8, 0x2cbe, 0x2722, 0xd958, 0x2238, 0x24de, 0xb4e0, 0xd8e0, 0x219f, -0xcbf4, 0xec3e, 0x4cc4, 0xf5db, 0xee65, 0x3cb1, 0xe88f, 0xad6b, 0x15fb, 0x0312, -0xbe65, 0x3207, 0x3441, 0xd731, 0x1ee6, 0x2923, 0xb321, 0xd7af, 0x26e1, 0xce3a, -0xeb73, 0x52d6, 0xfb3a, 0xed11, 0x3fa2, 0xeb93, 0xa537, 0x0fde, 0x078b, 0xbcc7, -0x2dd2, 0x39bf, 0xde73, 0x2216, 0x2ba5, 0xb204, 0xd113, 0x2873, 0xd059, 0xe433, -0x5331, 0x00f5, 0xede6, 0x41c9, 0xf3f8, 0xaa8c, 0x0f24, 0x06be, 0xb5e6, 0x29e9, -0x39f4, 0xda5d, 0x25b6, 0x2b84, 0xb07f, 0xd942, 0x36fe, 0xe8ec, 0xcdd1, 0x1733, -0x0849, 0x1aa1, 0x4558, 0xfb48, 0xd3ef, 0x11bd, 0xef48, 0xb142, 0xf697, 0xfdea, -0xd64a, 0x32a6, 0x6fed, 0x25f8, 0x0b17, 0x2a5c, 0xdff3, 0xaef4, 0xd4ec, 0xbcba, -0xe25d, 0x44cb, 0x234b, 0x1321, 0x73ba, 0x4da9, 0xced4, 0xe817, 0x007f, 0xa908, -0xb5df, 0x1df6, 0x1875, 0x0e2c, 0x3ec1, 0x2fcd, 0x272d, 0x2290, 0xe25c, 0xc07e, -0xf134, 0xfb4d, 0xd6f2, 0x0ad3, 0x3447, 0x223c, 0x13f1, 0x2272, 0x269f, 0x025a, -0x0161, 0xd722, 0xd224, 0x0308, 0xde38, 0xef78, 0x3c18, 0x42ed, 0x0555, 0x290a, -0x5400, 0xe6be, 0xca2d, 0xdae9, 0xc68f, 0xd7d0, 0xf47c, 0x10ed, 0x3184, 0x5941, -0x1cf6, 0x0891, 0x3a35, 0xeb6f, 0xae39, 0xc817, 0xe6f7, 0xd6ef, 0xebb0, 0x3372, -0x35f1, 0x34dd, 0x1e90, 0x16f7, 0x21a1, 0xf074, 0xc287, 0xb8c4, 0xe82d, 0xe6eb, -0xdb90, 0x1e19, 0x40af, 0x3208, 0x1a9a, 0x320f, 0x1b9a, 0xdeff, 0xcf46, 0xb4a3, -0xcbd7, 0xdf68, 0xe59a, 0x22fe, 0x55b5, 0x3892, 0x0be2, 0x396b, 0x1a98, 0xc635, -0xc146, 0xc092, 0xd361, 0xe7eb, 0x0383, 0x2879, 0x4c6a, 0x3c0d, 0x05ca, 0x2976, -0x14a9, 0xc798, 0xc116, 0xd2d8, 0xdd50, 0xdcd3, 0x0b09, 0x2bce, 0x3653, 0x2ab8, -0x0a52, 0x2aa9, 0x14b7, 0xd401, 0xb890, 0xcc60, 0xea88, 0xd5e4, 0xfe7d, 0x383b, -0x3ade, 0x1b88, 0x1ad7, 0x3ed1, 0x075f, 0xcd9c, 0xbbc4, 0xcbe8, 0xeb85, 0xd822, -0xfbc3, 0x3e44, 0x459b, 0x10ea, 0x17ee, 0x43df, 0xf7f9, 0xc0a0, 0xc419, 0xcf1f, -0xdea4, 0xe05f, 0x0678, 0x330f, 0x42d4, 0x111c, 0x0fba, 0x3f57, 0xf9a8, 0xb669, -0xbe1b, 0xe146, 0xdd9a, 0xd4be, 0x11a3, 0x389d, 0x37d6, 0x13b2, 0x1c70, 0x3370, -0xf10c, 0xc063, 0xb6e6, 0xd48a, 0xdc66, 0xd809, 0x1789, 0x3f92, 0x3566, 0x0e0f, -0x231e, 0x2ea3, 0xde28, 0xbb31, 0xba09, 0xcf05, 0xd866, 0xdfc8, 0x18f1, 0x3ecd, -0x369b, 0x0a8f, 0x2386, 0x2af2, 0xda2a, 0xb79e, 0xb7d0, 0xd687, 0xde35, 0xe721, -0x22ba, 0x4574, 0x3572, 0x0dd3, 0x2e06, 0x263b, 0xd7ab, 0xbfc7, 0xc2f6, 0xdf1b, -0xe1c3, 0xf1d5, 0x2cb4, 0x4e1c, 0x37cd, 0x115d, 0x35cd, 0x1fe6, 0xd779, 0xc301, -0xc58e, 0xe72d, 0xe5ce, 0xf960, 0x335a, 0x4fb4, 0x357b, 0x1898, 0x426e, 0x1cc2, -0xd473, 0xc727, 0xc831, 0xe1fb, 0xe68f, 0x072e, 0x3da1, 0x58d4, 0x39ac, 0x1d25, -0x4338, 0x1401, 0xcf2b, 0xbee6, 0xca41, 0xe875, 0xe64f, 0x1316, 0x4982, 0x5236, -0x2f67, 0x2085, 0x38b8, 0xfd01, 0xc7c8, 0xba93, 0xc979, 0xebc7, 0xea26, 0x168d, -0x477d, 0x4817, 0x212b, 0x1fdd, 0x335a, 0xef3e, 0xc484, 0xb895, 0xc9b8, 0xec42, -0xe805, 0x136b, 0x4a61, 0x4971, 0x17b6, 0x1f6a, 0x2f97, 0xe4b1, 0xc086, 0xb999, -0xcac9, 0xe5fd, 0xee0c, 0x1807, 0x412f, 0x460f, 0x166d, 0x1f4c, 0x29b3, 0xdc64, -0xb965, 0xb861, 0xd211, 0xe147, 0xeb99, 0x2193, 0x450f, 0x3ce4, 0x113e, 0x1f63, -0x1c84, 0xd769, 0xb874, 0xb487, 0xd682, 0xe1c9, 0xed74, 0x24b0, 0x43a4, 0x33ba, -0x0e1c, 0x2413, 0x10f7, 0xcdd3, 0xb977, 0xb8d7, 0xdbc4, 0xe37c, 0xf175, 0x272e, -0x457d, 0x2d0a, 0x07d0, 0x297e, 0x0f41, 0xca51, 0xb9f7, 0xbc9a, 0xdaa7, 0xddfe, -0xf766, 0x2c64, 0x4532, 0x2d7b, 0x0dd9, 0x2cf4, 0x0c17, 0xc90f, 0xb4bc, 0xc07f, -0xe270, 0xdce1, 0xfc63, 0x371a, 0x4749, 0x2579, 0x1187, 0x2dc1, 0xff1f, 0xc7eb, -0xb7f0, 0xc150, 0xe209, 0xe0bb, 0x0562, 0x39a6, 0x419b, 0x18df, 0x11d0, 0x32b0, -0xf640, 0xc162, 0xbaa8, 0xc92a, 0xe355, 0xdf42, 0x07ce, 0x3de6, 0x485f, 0x1a8d, -0x15e0, 0x345d, 0xf2a7, 0xc2b4, 0xbc48, 0xcb43, 0xe331, 0xe771, 0x171d, 0x41c7, -0x46e8, 0x1e6a, 0x1d99, 0x3169, 0xea47, 0xbb34, 0xb612, 0xcfe5, 0xe372, 0xe4f4, -0x1dce, 0x4978, 0x4538, 0x1abb, 0x1ff9, 0x2726, 0xe2ee, 0xbf5a, 0xb642, 0xd6a7, -0xeb65, 0xe981, 0x26c2, 0x5246, 0x3d0f, 0x142e, 0x2f6c, 0x28fc, 0xda88, 0xc3aa, -0xbdbe, 0xd749, 0xeb54, 0xf1e0, 0x25cd, 0x526c, 0x41ba, 0x10bf, 0x2fe6, 0x2449, -0xd374, 0xbfc4, 0xbbe2, 0xd283, 0xe25c, 0xf99f, 0x2cef, 0x4ac7, 0x3ddf, 0x17d9, -0x3082, 0x1925, 0xce89, 0xb6a1, 0xbc50, 0xe283, 0xe474, 0xfd8d, 0x3bcc, 0x4e96, -0x33c3, 0x167a, 0x2e47, 0x0a43, 0xcef1, 0xbc29, 0xba3d, 0xe1a3, 0xe5f7, 0xfe7c, -0x39db, 0x4bea, 0x270e, 0x128b, 0x30de, 0xfb59, 0xc505, 0xbdab, 0xbd60, 0xe0c5, -0xe64a, 0x0171, 0x35c3, 0x47fc, 0x21b5, 0x11b5, 0x30fa, 0xf4fc, 0xc06e, 0xbaa3, -0xbc7a, 0xd83f, 0xe4e1, 0x0b66, 0x373d, 0x497a, 0x2421, 0x109c, 0x26f1, 0xecb6, -0xbadf, 0xb11f, 0xc45d, 0xdf59, 0xe4b2, 0x1641, 0x3f59, 0x42bc, 0x1c1c, 0x129c, -0x1bee, 0xe133, 0xbe64, 0xb1ad, 0xcc9f, 0xec32, 0xe986, 0x19ae, 0x44e5, 0x3a19, -0x0e88, 0x1ade, 0x1f2c, 0xdec4, 0xc3cc, 0xb2ef, 0xdaab, 0xfd08, 0xe6a7, 0x1123, -0x3704, 0x3898, 0x3ad4, 0x346f, 0xfe92, 0xd1d3, 0xcc04, 0x9cbd, 0xc135, 0x02eb, -0xf63b, 0x365b, 0x8b58, 0x58ad, 0x0415, 0x0488, 0xcf1c, 0x8e64, 0xb611, 0xc2c4, -0xeda1, 0x4ea8, 0x63da, 0x49bb, 0x50ec, 0x3618, 0xc859, 0xb818, 0xe010, 0xbc83, -0xd14a, 0x1ad8, 0x32a9, 0x4030, 0x4434, 0x0f51, 0xf80f, 0x1895, 0xeaf8, 0xc48d, -0x175a, 0x2702, 0xe895, 0x0fd2, 0x2756, 0xcf30, 0xdfad, 0x3a11, 0xfb80, 0xfa5f, -0x565f, 0x121d, 0xf290, 0x2352, 0xddf3, 0xa5f4, 0xfe06, 0x187b, 0xde96, 0x3a13, -0x5105, 0xf698, 0x255a, 0x212e, 0xb7a3, 0xc5a7, 0x10d7, 0xdeff, 0xe90b, 0x551a, -0x1708, 0xfd81, 0x42e8, 0xf9ae, 0xb328, 0xf8c8, 0x0cd4, 0xc910, 0x1398, 0x3cf8, -0xe89b, 0x1c9d, 0x36c1, 0xcb0b, 0xcca6, 0x2759, 0xf1e2, 0xd264, 0x3d80, 0x146d, -0xe372, 0x36c2, 0x0ab3, 0xb2ef, 0x0a0e, 0x2e96, 0xc7be, 0x0dcf, 0x4ba5, 0xdcd8, -0xff1f, 0x391f, 0xcf51, 0xc4c3, 0x314b, 0xfef3, 0xd680, 0x41c6, 0x156e, 0xdd3b, -0x2eeb, 0x0886, 0xa9c9, 0xf3a6, 0x247e, 0xc927, 0x069f, 0x4a37, 0xe895, 0x0061, -0x378e, 0xd6a1, 0xb348, 0x1688, 0xf810, 0xc498, 0x323f, 0x1fc5, 0xe066, 0x29b3, -0x139d, 0xadbb, 0xe71a, 0x2c44, 0xcae3, 0xe8e1, 0x3f89, 0xe822, 0xf034, 0x367a, -0xdf30, 0xb32c, 0x1aba, 0x0281, 0xcc1b, 0x36c4, 0x14ca, 0xc6d5, 0x2590, 0x1c08, -0xa351, 0xd7ce, 0x2a74, 0xd59f, 0xf3fa, 0x477e, 0xf4e0, 0xf8ff, 0x3121, 0xdc01, -0xb775, 0x150c, 0xfcd8, 0xcc0d, 0x38c8, 0x2ece, 0xe423, 0x2849, 0x29b5, 0xc302, -0xda74, 0x1f47, 0xdd2f, 0xf247, 0x3ab2, 0xf2d7, 0x006a, 0x4787, 0xf2b8, 0xbc9f, -0x1f1c, 0x0ac7, 0xbde9, 0x23df, 0x2b4d, 0xd869, 0x1cf2, 0x2e59, 0xc8ac, 0xe6ca, -0x2cef, 0xd907, 0xf197, 0x4b23, 0xf20c, 0xef15, 0x4469, 0xf156, 0xb2a9, 0x1bfd, -0x127b, 0xca28, 0x306d, 0x3438, 0xdf08, 0x20cf, 0x27a1, 0xb9c7, 0xd8d7, 0x2741, -0xd309, 0xe588, 0x5056, 0x03d5, 0xef96, 0x4207, 0xfd8d, 0xae5f, 0x03b5, 0x0589, -0xbd38, 0x23af, 0x3a76, 0xe095, 0x2023, 0x3839, 0xc165, 0xd4ca, 0x2de1, 0xd781, -0xe09b, 0x50bd, 0x0340, 0xea0c, 0x4022, 0xf840, 0xad2c, 0x1331, 0x12e3, 0xc260, -0x2f2a, 0x3b6c, 0xd12c, 0x18a4, 0x3197, 0xb77c, 0xd13d, 0x2bd2, 0xd972, 0xe616, -0x52eb, 0x041e, 0xeb26, 0x3bdc, 0xf119, 0xa2b2, 0x06d5, 0x1049, 0xbd97, 0x289f, -0x44ee, 0xdf14, 0x1d7f, 0x34ac, 0xb7bb, 0xc690, 0x278a, 0xda25, 0xdff9, 0x579a, -0x080c, 0xe6ec, 0x4374, 0xfcbd, 0xa5be, 0x078c, 0x146b, 0xbb5b, 0x2164, 0x4262, -0xdc47, 0x1e50, 0x39f8, 0xbce7, 0xcbb4, 0x2afe, 0xdc45, 0xdb5e, 0x5409, 0x0b3a, -0xe53c, 0x4358, 0x02ae, 0xa896, 0x0857, 0x1af8, 0xc23a, 0x2352, 0x496b, 0xdfb5, -0x197e, 0x3ce3, 0xbe54, 0xc506, 0x3012, 0xe677, 0xd704, 0x5217, 0x11ee, 0xe2e7, -0x3fe4, 0x06fa, 0xa5a3, 0xfdcd, 0x181f, 0xbb44, 0x1747, 0x4a1f, 0xdca9, 0x10d6, -0x4291, 0xc4a6, 0xbd25, 0x2a87, 0xe605, 0xcbf6, 0x4b38, 0x15fb, 0xe0ad, 0x3f35, -0x0d36, 0xa652, 0x0068, 0x234a, 0xbde1, 0x11e2, 0x4aeb, 0xdbe0, 0x0a9d, 0x4344, -0xcb41, 0xbfb5, 0x3005, 0xef5d, 0xcc1b, 0x497b, 0x1516, 0xd825, 0x3b8a, 0x1677, -0xabc7, 0xfeb9, 0x2dcb, 0xc484, 0x08d9, 0x4f69, 0xe275, 0x041d, 0x4846, 0xd81a, -0xc055, 0x3307, 0xfcca, 0xce29, 0x4a68, 0x20cb, 0xd8f3, 0x379a, 0x1b24, 0xaf02, -0xfaf5, 0x36a2, 0xdc0c, 0xf2c4, 0x1be5, 0xefab, 0x3121, 0x54a4, 0xf198, 0xe7b1, -0x2ba4, 0xe144, 0xad6e, 0x0105, 0xf0a8, 0xe331, 0x4379, 0x5911, 0x2529, 0x2cc9, -0x279d, 0xcce3, 0xc4aa, 0xd6d0, 0xaebe, 0xee7a, 0x3b83, 0x0e08, 0x0c23, 0x6c6b, -0x4249, 0xd2d0, 0xee99, 0xf0dc, 0xb1d9, 0xc315, 0x0097, 0x05b2, 0x198e, 0x3a21, -0x0a87, 0x19af, 0x3001, 0xda73, 0xbf3b, 0xf320, 0xf1e8, 0xce48, 0xfde9, 0x1c97, -0x092a, 0x1c03, 0x1996, 0x174f, 0x1e06, 0x0784, 0xc7d4, 0xc266, 0xf6c0, 0xcc3e, -0xdd41, 0x35c9, 0x3070, 0x0e9b, 0x2df6, 0x46cc, 0xf777, 0xdb3b, 0xd86d, 0xb2ad, -0xdad5, 0xea97, 0xeb13, 0x2dfd, 0x5bf5, 0x1d45, 0x0c80, 0x4c6b, 0xf9d2, 0xb332, -0xd3b1, 0xcca7, 0xc90a, 0xeeb9, 0x1637, 0x2142, 0x4501, 0x2b65, 0x034c, 0x35ee, -0x0df0, 0xbcaf, 0xb962, 0xda48, 0xd509, 0xd169, 0x125a, 0x2f7e, 0x3ce9, 0x31e9, -0x1f9f, 0x25c3, 0xf9ce, 0xc7fa, 0xa4bc, 0xc4e4, 0xde14, 0xd114, 0x1820, 0x4ec1, -0x3955, 0x1716, 0x2ffb, 0x23e1, 0xd401, 0xc118, 0xaea8, 0xc267, 0xe761, 0xe650, -0x166b, 0x5317, 0x4508, 0x02ef, 0x256f, 0x2a58, 0xc9bf, 0xbfb1, 0xc690, 0xc4c0, -0xdb5a, 0xfc3e, 0x1d56, 0x406f, 0x4672, 0x07f9, 0x258b, 0x3563, 0xd0af, 0xad4b, -0xc62c, 0xd7ec, 0xd118, 0xfacb, 0x32c8, 0x3cf8, 0x3893, 0x1827, 0x2a88, 0x2056, -0xd2e0, 0xa9a8, 0xbc95, 0xe82d, 0xd209, 0xed42, 0x4049, 0x4bca, 0x27a4, 0x17b5, -0x33c7, 0x048c, 0xc896, 0xbbc4, 0xb5e8, 0xde55, 0xe670, 0xf26e, 0x319d, 0x5284, -0x20bb, 0x0a37, 0x3f54, 0x0425, 0xb7b6, 0xbeac, 0xc4a7, 0xd10a, 0xdf90, 0x067a, -0x32d8, 0x4def, 0x29e9, 0x0de0, 0x33b8, 0x00f9, 0xbb53, 0xb44c, 0xca99, 0xdcb3, -0xdf0d, 0x140a, 0x4211, 0x47c0, 0x2741, 0x1ffe, 0x3026, 0xf2ee, 0xc44d, 0xb8c2, -0xcbde, 0xe86b, 0xed77, 0x1b4d, 0x47ee, 0x4766, 0x1ae9, 0x2386, 0x33e9, 0xea57, -0xc4ae, 0xc182, 0xd3ec, 0xeae1, 0xf2fa, 0x1c99, 0x46ce, 0x4849, 0x16e5, 0x2357, -0x2d0d, 0xe171, 0xc2b4, 0xc619, 0xdb43, 0xe861, 0xf96a, 0x2580, 0x41a1, 0x3fcc, -0x14f6, 0x245e, 0x2692, 0xe3d9, 0xc4b2, 0xc084, 0xdcfb, 0xe481, 0xf277, 0x26e8, -0x4453, 0x3677, 0x1401, 0x2eb5, 0x1c61, 0xda3a, 0xc536, 0xbbc2, 0xd95f, 0xe409, -0xf088, 0x24e3, 0x4a50, 0x36ef, 0x1343, 0x3794, 0x1bd7, 0xd0b1, 0xbf04, 0xc0c0, -0xd999, 0xe102, 0xfe57, 0x307b, 0x4c60, 0x3446, 0x110b, 0x34af, 0x1719, 0xd246, -0xbe92, 0xc661, 0xdf01, 0xde95, 0x04b9, 0x34ae, 0x44b2, 0x2c3e, 0x140f, 0x311d, -0x09e5, 0xcd57, 0xb673, 0xc4ea, 0xe8e6, 0xdfae, 0x02f2, 0x3c51, 0x460d, 0x2037, -0x160e, 0x33a4, 0xffd5, 0xd044, 0xbb77, 0xbff6, 0xe547, 0xe2d3, 0x02a5, 0x3927, -0x483e, 0x1e84, 0x18a8, 0x35a4, 0xf428, 0xc4b4, 0xb810, 0xbe31, 0xdf3f, 0xe3b9, -0x070a, 0x3a6e, 0x4a01, 0x1d3d, 0x19b7, 0x312f, 0xe9ed, 0xb9d2, 0xb185, 0xc27d, -0xdf74, 0xeaac, 0x163c, 0x40b2, 0x480f, 0x196b, 0x1a68, 0x2946, 0xe387, 0xbd44, -0xb687, 0xcdd3, 0xe1c0, 0xe73f, 0x19c6, 0x454e, 0x4471, 0x1517, 0x1f37, 0x2415, -0xde12, 0xbc28, 0xb193, 0xce92, 0xe199, 0xeb2a, 0x208d, 0x45c9, 0x3dfd, 0x140f, -0x2554, 0x1b8d, 0xd3e4, 0xb631, 0xaeee, 0xd2a0, 0xe032, 0xeefc, 0x2bad, 0x4d46, -0x3a27, 0x0f3b, 0x24c9, 0x111e, 0xcdbf, 0xb6b5, 0xb194, 0xd7c9, 0xe60a, 0xf93b, -0x2f30, 0x4968, 0x3246, 0x1306, 0x2d46, 0x06e7, 0xc785, 0xba49, 0xb9ab, 0xde3a, -0xe629, 0xff26, 0x3a02, 0x5456, 0x30f0, 0x10ea, 0x3149, 0x0578, 0xc92c, 0xbe07, -0xc00c, 0xe26f, 0xec57, 0x0aaf, 0x3ec0, 0x560f, 0x2fbd, 0x16da, 0x3543, 0xfe12, -0xc441, 0xbe1e, 0xce80, 0xec2a, 0xeeda, 0x1761, 0x467e, 0x531c, 0x2945, 0x16f3, -0x30b3, 0xfa85, 0xc82a, 0xb95b, 0xd0b9, 0xf0bf, 0xecf0, 0x1a23, 0x4acc, 0x48e2, -0x1c65, 0x1e4d, 0x2902, 0xe8e0, 0xc9c2, 0xbc2f, 0xd2c0, 0xf22e, 0xed1c, 0x1844, -0x4b01, 0x4776, 0x146e, 0x2125, 0x2832, 0xde1c, 0xc52b, 0xbd52, 0xcf76, 0xec76, -0xf496, 0x1c9f, 0x4726, 0x432c, 0x116f, 0x25e7, 0x2766, 0xd731, 0xbc99, 0xc162, -0xd7c6, 0xe12d, 0xf3c2, 0x27ac, 0x489f, 0x3fb7, 0x11f9, 0x23e3, 0x1dd1, 0xd9f9, -0xbc81, 0xbc41, 0xe051, 0xe6f9, 0xf6af, 0x2df2, 0x4613, 0x2fe6, 0x12b9, 0x303c, -0x120f, 0xd130, 0xc1da, 0xbc62, 0xdb80, 0xe279, 0xf4be, 0x2c52, 0x4660, 0x275e, -0x0d1c, 0x3149, 0x075f, 0xc931, 0xbf24, 0xbaf3, 0xd888, 0xe2cc, 0xfb8b, 0x2cb6, -0x4a52, 0x29ea, 0x0caa, 0x3097, 0xff78, 0xbdf9, 0xb45b, 0xc1cb, 0xdd4e, 0xe310, -0x068a, 0x24f2, 0x54ac, 0x60d2, 0x1650, 0xf4c6, 0xe059, 0xb014, 0x83b1, 0xbc91, -0x02f9, 0x0157, 0x4fca, 0x7cb3, 0x41bb, 0x0df7, 0xea9f, 0xace6, 0x957f, 0xc6c1, -0xb25c, 0xf25c, 0x6d4a, 0x3c23, 0x2274, 0x5314, 0x2754, 0xc59a, 0xd13d, 0xdf25, -0xc110, 0x097d, 0xfee9, 0xe7e9, 0x4a58, 0x3073, 0xd0cf, 0x0834, 0x3f47, 0xde37, -0xefad, 0x3de0, 0xef24, 0xe80f, 0x1519, 0xd4ff, 0xbae7, 0x160b, 0x1ed5, 0xf6f3, -0x4a32, 0x391f, 0xed02, 0x1a95, 0x0194, 0xa798, 0xcdb4, 0x1870, 0xed7d, 0x0805, -0x5609, 0x1649, 0x0c10, 0x37fb, 0xe698, 0xb602, 0x0ab1, 0x02bc, 0xc982, 0x29a0, -0x3592, 0xeb4c, 0x26a0, 0x2b39, 0xc51e, 0xe028, 0x25df, 0xdd3d, 0xeb89, 0x3c7d, -0xf25b, 0xf2a8, 0x40cd, 0xf67a, 0xbd91, 0x18e1, 0x1367, 0xcbf7, 0x1e2b, 0x2469, -0xd608, 0x16f8, 0x2a0b, 0xc927, 0xe2cc, 0x37b1, 0xf346, 0xe694, 0x382d, 0xf93e, -0xe10a, 0x2a89, 0xf6d1, 0xba9a, 0x1681, 0x2591, 0xd24e, 0x187c, 0x2fad, 0xd8f6, -0x0b46, 0x2ae5, 0xc8c2, 0xd38a, 0x2a7a, 0xe7b1, 0xdcb3, 0x3e95, 0x03d8, 0xe5e1, -0x3718, 0x0451, 0xb6fc, 0x05d7, 0x1636, 0xc589, 0x0c0d, 0x2d31, 0xe2a5, 0x145e, -0x2ff3, 0xd16c, 0xd748, 0x2961, 0xeee4, 0xd89a, 0x2f77, 0x0413, 0xe432, 0x2a18, -0x07e4, 0xbf90, 0xffac, 0x1a5c, 0xce43, 0x0eae, 0x3e2a, 0xe525, 0xfcdf, 0x3412, -0xe19f, 0xc0d0, 0x160c, 0xf679, 0xdaf7, 0x3d0f, 0x184f, 0xe643, 0x3314, 0x0d97, -0xa9d1, 0xf210, 0x1e09, 0xc374, 0x0591, 0x4995, 0xef24, 0x05bf, 0x3aa6, 0xdaf6, -0xc1a1, 0x198b, 0xe5e1, 0xce1f, 0x40dc, 0x134c, 0xddc5, 0x3b68, 0x1d73, 0xb2c0, -0xf385, 0x2228, 0xc6a9, 0xff0d, 0x4056, 0xea16, 0x071a, 0x3ca3, 0xd74b, 0xbcb1, -0x210f, 0xf2c1, 0xcb2c, 0x414d, 0x1f07, 0xd958, 0x2f24, 0x195a, 0xa747, 0xe84d, -0x2605, 0xc501, 0xff0e, 0x4e0a, 0xea48, 0x02a4, 0x46c5, 0xd723, 0xafda, 0x23af, -0xf6a4, 0xbc7c, 0x3c45, 0x26f8, 0xdc74, 0x367d, 0x2543, 0xb0bd, 0xed3e, 0x27e5, -0xc333, 0xf8e2, 0x4d51, 0xeb5f, 0xfefc, 0x4865, 0xe34b, 0xb937, 0x2748, 0x0266, -0xc562, 0x3a6b, 0x25b1, 0xd774, 0x2daa, 0x2313, 0xb311, 0xef4a, 0x32e8, 0xcf60, -0xf8b2, 0x51fb, 0xee07, 0xf368, 0x44ab, 0xe548, 0xb2da, 0x24f2, 0x07b3, 0xc446, -0x3bc4, 0x2db3, 0xd779, 0x2ee4, 0x281e, 0xace1, 0xe4c5, 0x335a, 0xceab, 0xf17b, -0x55c7, 0xf4d4, 0xf24d, 0x4603, 0xeb3d, 0xaf65, 0x1bbf, 0x08f3, 0xbf31, 0x300f, -0x30d1, 0xd9cf, 0x29ba, 0x2ead, 0xb5b6, 0xdd53, 0x2dff, 0xcf0d, 0xe2d2, 0x4b14, -0xf7cf, 0xf104, 0x48fe, 0xf5f9, 0xb102, 0x175c, 0x0bd9, 0xbcb2, 0x27b4, 0x336a, -0xd7be, 0x2088, 0x3408, 0xbf37, 0xdc20, 0x3264, 0xdb9f, 0xe60e, 0x5013, 0xffb1, -0xe856, 0x4281, 0xff01, 0xb10f, 0x1094, 0x176a, 0xc863, 0x243b, 0x390b, 0xdf6d, -0x1d95, 0x3900, 0xc65f, 0xd25c, 0x2c3a, 0xe187, 0xdbeb, 0x465f, 0x0986, 0xeb79, -0x4044, 0x0711, 0xb0da, 0x0496, 0x1513, 0xc287, 0x187b, 0x3c78, 0xe032, 0x1521, -0x3c5f, 0xccc3, 0xcce1, 0x2b96, 0xe4ca, 0xd2ba, 0x430a, 0x0aa2, 0xdffc, 0x3ad9, -0x0be5, 0xaea0, 0x03b6, 0x1ba6, 0xbbed, 0x0db5, 0x4113, 0xdc05, 0x05bb, 0x3a65, -0xcc55, 0xc14b, 0x25ec, 0xe783, 0xd1d2, 0x4965, 0x1616, 0xdbb4, 0x3263, 0x0a8b, -0xa569, 0xf7cf, 0x1f57, 0xc4d2, 0x1559, 0x517f, 0xea47, 0x0848, 0x3a1f, 0xc9f1, -0xbb1e, 0x266f, 0xea60, 0xcd1c, 0x4d59, 0x23a6, 0xe328, 0x3b46, 0x19d2, 0xabe2, -0xf47d, 0x1e1a, 0xbcd3, 0x09ed, 0x4fb3, 0xe964, 0x0dbc, 0x485b, 0xd3bb, 0xbbbe, -0x2722, 0xffc5, 0xce39, 0x0d09, 0xfe2c, 0x112d, 0x596c, 0x16f5, 0xd170, 0x12a7, -0x07ab, 0xa521, 0xd945, 0x0290, 0xcf7b, 0x0c60, 0x5af6, 0x3c64, 0x1c78, 0x2c17, -0xf082, 0xb62e, 0xcf0c, 0xac7d, 0xba75, 0x27ac, 0x23af, 0xf129, 0x473d, 0x6f3b, -0xefd4, 0xd0fc, 0xfcb5, 0xc5fa, 0xa532, 0xe2aa, 0x08ff, 0x0704, 0x304a, 0x21e6, -0x0f85, 0x38c1, 0x010f, 0xbcdf, 0xd894, 0xf8ab, 0xd8c7, 0xe36a, 0x1b7a, 0x178e, -0x1a72, 0x1741, 0x157f, 0x1dd4, 0x0dfe, 0xe47e, 0xbdd3, 0xf139, 0xe9ae, 0xc861, -0x198e, 0x432e, 0x1c93, 0x1246, 0x4ca3, 0x23d4, 0xd5a3, 0xdda1, 0xc097, 0xcd1a, -0xeddd, 0xed1a, 0x1738, 0x5658, 0x41b1, 0xfba0, 0x3319, 0x2a1d, 0xc048, 0xc0cf, -0xd583, 0xd4c9, 0xdb7a, 0x070a, 0x2588, 0x3798, 0x3aa9, 0x0add, 0x25af, 0x2337, -0xd4c2, 0xb504, 0xca8a, 0xe4dd, 0xd039, 0xf1df, 0x2bb9, 0x3c1d, 0x3426, 0x22ac, -0x331f, 0x0f10, 0xdc7d, 0xbbe1, 0xb47c, 0xdb63, 0xd984, 0xfcbd, 0x450f, 0x5431, -0x271a, 0x210b, 0x3c62, 0xf43d, 0xc565, 0xc201, 0xc114, 0xe4f6, 0xee9b, 0x085b, -0x3cf5, 0x5653, 0x1e82, 0x0d52, 0x38a8, 0xf608, 0xc456, 0xce8b, 0xcfd1, 0xda08, -0xf0f6, 0x16f4, 0x3014, 0x4610, 0x1a46, 0x0c35, 0x36d1, 0xfb60, 0xbc9c, 0xbcea, -0xdb0c, 0xda74, 0xdb6c, 0x17ce, 0x3715, 0x33b3, 0x13c8, 0x1e7d, 0x290c, 0xe55b, -0xb756, 0xb135, 0xdad6, 0xde70, 0xd336, 0x1782, 0x43a0, 0x29e5, 0x03f8, 0x2c8f, -0x2768, 0xd396, 0xc0e1, 0xbc23, 0xccce, 0xdf32, 0xe829, 0x16bf, 0x4610, 0x3567, -0x012e, 0x312c, 0x3059, 0xcf4c, 0xbc48, 0xcf7d, 0xdb0c, 0xd4f7, 0xefe3, 0x2327, -0x3f5e, 0x34bf, 0x11d9, 0x3885, 0x2a09, 0xd700, 0xbd59, 0xc753, 0xde26, 0xd765, -0xf612, 0x31cc, 0x45d3, 0x2d56, 0x17c3, 0x3e94, 0x16b7, 0xce82, 0xc389, 0xc8ab, -0xdd9d, 0xdd82, 0xfe36, 0x3550, 0x4d5b, 0x2a45, 0x1384, 0x3ff2, 0x0ef3, 0xc81d, -0xbe61, 0xcce9, 0xe4aa, 0xe0ab, 0x0699, 0x385e, 0x486b, 0x2294, 0x15f0, 0x3d85, -0x01db, 0xc686, 0xc116, 0xcff5, 0xe34d, 0xe14b, 0x10c9, 0x3f07, 0x466b, 0x1f0d, -0x1d05, 0x3ab5, 0xf8ef, 0xc8ce, 0xc05e, 0xd357, 0xe7d4, 0xe29f, 0x13df, 0x471a, -0x4a47, 0x1c4c, 0x297f, 0x3e3f, 0xed74, 0xc6f8, 0xbfdc, 0xccde, 0xe3d5, 0xeaa0, -0x19ee, 0x4b1b, 0x4d49, 0x1865, 0x2976, 0x37a0, 0xe1a2, 0xb9e8, 0xba35, 0xd299, -0xde2b, 0xecfc, 0x27c6, 0x4ae2, 0x4564, 0x19a4, 0x28b5, 0x2426, 0xd885, 0xbc0a, -0xb90e, 0xd777, 0xe284, 0xf34a, 0x2d9a, 0x4813, 0x38b9, 0x14ee, 0x2c67, 0x1894, -0xd324, 0xbc7e, 0xb3bc, 0xda55, 0xe3e2, 0xef0a, 0x2fd7, 0x4da0, 0x2e6a, 0x0ee2, -0x326e, 0x0fc1, 0xcb23, 0xbee7, 0xb82c, 0xdaac, 0xe70d, 0xf676, 0x2c96, 0x4efe, -0x3180, 0x0f59, 0x3430, 0x0900, 0xc464, 0xbdf3, 0xbfd4, 0xdc18, 0xe54f, 0x02ac, -0x346a, 0x4ca2, 0x2bdb, 0x0ba0, 0x2ca5, 0x00e4, 0xc0c2, 0xb4ae, 0xbea2, 0xdd3b, -0xe1b5, 0x05e5, 0x36cd, 0x455d, 0x228c, 0x0f39, 0x2721, 0xf06a, 0xbe3c, 0xb625, -0xc315, 0xe0db, 0xe130, 0x0824, 0x3af9, 0x4450, 0x1a04, 0x1254, 0x2a20, 0xeab7, -0xbec0, 0xb857, 0xc3f1, 0xdf5a, 0xe831, 0x122e, 0x3daa, 0x44fa, 0x18f6, 0x1739, -0x28bb, 0xe41d, 0xbbf3, 0xb89c, 0xcff6, 0xe5c1, 0xea00, 0x1c60, 0x45d5, 0x43ef, -0x1c06, 0x2434, 0x292a, 0xe39e, 0xc2cb, 0xbd71, 0xd5c4, 0xe95c, 0xf5d3, 0x2a36, -0x4b75, 0x403d, 0x1c75, 0x32bf, 0x27ef, 0xdda2, 0xcb76, 0xc7c5, 0xdb1a, 0xe84b, -0xf612, 0x2b74, 0x5112, 0x4137, 0x18a7, 0x3889, 0x2791, 0xd8ed, 0xc90a, 0xc6c8, -0xd83c, 0xe5cf, 0x01d1, 0x32e1, 0x4e08, 0x3e77, 0x1bcc, 0x39cc, 0x1bcb, 0xcf7c, -0xbfad, 0xc693, 0xe1af, 0xe44a, 0x0379, 0x3b80, 0x5122, 0x34da, 0x12cd, 0x2ff7, -0x0b3f, 0xcb7c, 0xb95e, 0xc0f4, 0xe555, 0xe1ce, 0x01a1, 0x3cc9, 0x475e, 0x2196, -0x156a, 0x33d5, 0xf97d, 0xc4c1, 0xb9ed, 0xbd90, 0xe1db, 0xe24b, 0x021d, 0x3cfa, -0x4dca, 0x1ea3, 0x12f7, 0x33e9, 0xf159, 0xbf15, 0xb984, 0xbdf4, 0xd9dc, 0xe483, -0x0d28, 0x3bb5, 0x4aee, 0x1fcf, 0x1792, 0x2e75, 0xe773, 0xb55d, 0xaeed, 0xc525, -0xdc07, 0xe07a, 0x162d, 0x403a, 0x41df, 0x18e6, 0x1816, 0x22ca, 0xe0d7, 0xba3f, -0xab7d, 0xc6d9, 0xe296, 0xe464, 0x1a6b, 0x45ec, 0x3cb4, 0x1203, 0x21d7, 0x1e19, -0xd553, 0xc042, 0xb44a, 0xca17, 0xe29f, 0xe893, 0x1a35, 0x457e, 0x3ca4, 0x0eee, -0x274f, 0x1dc0, 0xd010, 0xbe2a, 0xb43a, 0xca4c, 0xe2e4, 0xf448, 0x246d, 0x4965, -0x3fdb, 0x10f7, 0x25b8, 0x162e, 0xcca7, 0xb882, 0xb947, 0xd7a5, 0xe438, 0xfea1, -0x33b7, 0x4cfe, 0x3b14, 0x1175, 0x24b7, 0x0bf7, 0xcecd, 0xbc06, 0xbdfc, 0xe81e, -0xee24, 0x01b0, 0x3af8, 0x476e, 0x28b0, 0x20d9, 0x3412, 0xf8f1, 0xc8c9, 0xbcf1, -0xbe75, 0xed66, 0xf061, 0x0477, 0x2e04, 0x4a13, 0x58d9, 0x3473, 0x0a86, 0xde23, -0xc927, 0xa391, 0xa85a, 0xfd01, 0x01c0, 0x26a1, 0x8016, 0x6b60, 0x1f2e, 0x05f0, -0xdab1, 0x948b, 0xb8c2, 0xc47d, 0xcb07, 0x3e6c, 0x61b3, 0x38d1, 0x421e, 0x423b, -0xe147, 0xbac6, 0xe0e9, 0xbe22, 0xd9dd, 0x0b3a, 0x03de, 0x31f4, 0x40dc, 0xf8e0, -0xf398, 0x2cdd, 0xec3a, 0xc582, 0x25ea, 0x1c58, 0xd8cd, 0x0700, 0x13d5, 0xbffb, -0xdfbf, 0x2eeb, 0xf5a6, 0x0a90, 0x5506, 0x0dfc, 0xf5d4, 0x194f, 0xd0b1, 0xa469, -0xf944, 0x0659, 0xe225, 0x3e8d, 0x4455, 0xf804, 0x285d, 0x16e8, 0xac54, 0xcbe6, -0x0dc1, 0xcfa2, 0xef3a, 0x51ba, 0x0cea, 0x02d9, 0x4169, 0xec8e, 0xb42c, 0x04b3, -0xfdcb, 0xc5c1, 0x233b, 0x2fa0, 0xe530, 0x27ec, 0x2937, 0xc096, 0xdeaa, 0x2435, -0xe010, 0xe6f7, 0x3e0a, 0xfd91, 0xeb2e, 0x333b, 0xf30c, 0xb2be, 0x1250, 0x1fd9, -0xc7fa, 0x1877, 0x3b5d, 0xdbdb, 0x0644, 0x23bb, 0xbdc0, 0xcc54, 0x2f0c, 0xf1f3, -0xe57b, 0x48e5, 0x082c, 0xe598, 0x360e, 0xf80f, 0xa876, 0x0659, 0x1b42, 0xc57b, -0x1fb9, 0x48cb, 0xe657, 0x1591, 0x3682, 0xcb26, 0xccd4, 0x2692, 0xe8fa, 0xda38, -0x445f, 0x1220, 0xf0e0, 0x3d8f, 0x09d0, 0xb6bc, 0x00e1, 0x260a, 0xd188, 0x0576, -0x3935, 0xef31, 0x1179, 0x33e9, 0xd401, 0xcde0, 0x2d56, 0xfa21, 0xdbb0, 0x4a3c, -0x1c17, 0xdc92, 0x334e, 0x1ceb, 0xb17d, 0xebbf, 0x27e0, 0xd919, 0x0f7e, 0x4a4b, -0xf20c, 0x107b, 0x3a20, 0xcab0, 0xba0a, 0x24cb, 0xf1fa, 0xcaf2, 0x3f6a, 0x2005, -0xe495, 0x30ba, 0x16ef, 0xb7a7, 0xec01, 0x1401, 0xc9b7, 0x05b6, 0x393b, 0xe12d, -0x07bf, 0x44cb, 0xdee8, 0xbd85, 0x23f1, 0xfc20, 0xc5f2, 0x2bd6, 0x194b, 0xdfc0, -0x26e3, 0x160b, 0xba3e, 0xf25d, 0x2457, 0xcdc4, 0x004b, 0x4634, 0xe4dc, 0xf4a7, -0x3d04, 0xdcc3, 0xb397, 0x1fb0, 0x0021, 0xcbc7, 0x37a0, 0x223d, 0xdd2e, 0x2e4a, -0x1e22, 0xae9d, 0xea89, 0x28db, 0xc94f, 0xf4c9, 0x4a0c, 0xf565, 0xfefa, 0x4525, -0xee89, 0xbfb1, 0x1b8b, 0xfa5c, 0xc436, 0x2f51, 0x24ca, 0xdfcd, 0x2cf4, 0x2a31, -0xbd55, 0xe94e, 0x2b96, 0xd147, 0xee2f, 0x4235, 0xf2bf, 0xf601, 0x3b75, 0xe821, -0xb876, 0x1f6c, 0x056a, 0xc597, 0x378b, 0x2e60, 0xd377, 0x1e9d, 0x283c, 0xb892, -0xdee1, 0x2781, 0xd1f0, 0xf4ba, 0x554c, 0x0123, 0xf9be, 0x420b, 0xea52, 0xaa76, -0x121d, 0x04f0, 0xbdca, 0x333f, 0x4315, 0xe753, 0x27d8, 0x325a, 0xb873, 0xd272, -0x2388, 0xcf65, 0xe913, 0x57fe, 0x07f4, 0xf542, 0x4773, 0xf6c7, 0xab18, 0x11a2, -0x0c42, 0xb926, 0x2816, 0x3c96, 0xde7c, 0x28fb, 0x3ab1, 0xb843, 0xd1f6, 0x2e08, -0xd30e, 0xdd67, 0x552d, 0x04b1, 0xe6f1, 0x4408, 0xfac7, 0xa436, 0x0956, 0x1138, -0xb9e0, 0x267a, 0x42e3, 0xd676, 0x199d, 0x3443, 0xb086, 0xc200, 0x28e5, 0xda7a, -0xd827, 0x53d9, 0x0bab, 0xe3c1, 0x40a6, 0xfc98, 0xa29e, 0x018f, 0x1105, 0xb6e7, -0x1b43, 0x498c, 0xdd00, 0x1541, 0x4138, 0xc0de, 0xbf2e, 0x283d, 0xe09c, 0xce50, -0x4aa8, 0x1053, 0xdfdb, 0x3f0a, 0x0676, 0xa0c4, 0xfe21, 0x1b86, 0xb753, 0x10a7, -0x4958, 0xd934, 0x0821, 0x3f0a, 0xc34f, 0xba57, 0x2b9e, 0xe817, 0xc7b8, 0x46a9, -0x0faa, 0xd39d, 0x38e6, 0x0b67, 0x9f2e, 0xfa87, 0x2298, 0xbafd, 0x0a31, 0x466b, -0xd41d, 0xfd51, 0x3a2b, 0xc101, 0xb40d, 0x2b20, 0xef1f, 0xc9c0, 0x46b9, 0x10a8, -0xce9c, 0x3371, 0x097d, 0x9c55, 0xf5c4, 0x3090, 0xd2df, 0xecd4, 0x147e, 0xe806, -0x2e2d, 0x4ebd, 0xe525, 0xe179, 0x26a7, 0xd61d, 0xaa44, 0x0053, 0xe8dc, 0xe136, -0x46b6, 0x57fc, 0x24b5, 0x2da9, 0x235d, 0xcd31, 0xca81, 0xd1c7, 0xaf26, 0xfdb0, -0x3bad, 0x09ac, 0x1da0, 0x74cf, 0x3a9c, 0xd9e6, 0xf662, 0xf1b3, 0xb74e, 0xc78b, -0x079d, 0x1303, 0x25f7, 0x3f88, 0x14f4, 0x2459, 0x2c9b, 0xdd69, 0xc8da, 0xfb0c, -0xfc56, 0xd94a, 0x0b6d, 0x29c0, 0x150a, 0x22e5, 0x1d92, 0x18ef, 0x1cfc, 0x0c23, -0xcdc3, 0xcd7b, 0x0116, 0xd225, 0xea05, 0x3ecf, 0x321c, 0x114b, 0x3429, 0x4818, -0xf80f, 0xe0f6, 0xd86d, 0xb88f, 0xe34c, 0xec85, 0xf335, 0x37f0, 0x5dfb, 0x1c42, -0x11db, 0x4f23, 0xfc26, 0xba44, 0xd5aa, 0xd324, 0xd1fd, 0xf17c, 0x1856, 0x276a, -0x4692, 0x286a, 0x0ba3, 0x3d7b, 0x1150, 0xc1ac, 0xbdf0, 0xe136, 0xd542, 0xcf26, -0x1384, 0x2faf, 0x3870, 0x2e2c, 0x2318, 0x28d4, 0xfdee, 0xcb16, 0xa730, 0xc88d, -0xdb00, 0xceb6, 0x1995, 0x4d9d, 0x384a, 0x1a5c, 0x3253, 0x2473, 0xd8f1, 0xc53c, -0xafa7, 0xc440, 0xe9ed, 0xe807, 0x176e, 0x51f8, 0x4372, 0x074b, 0x2912, 0x2b6d, -0xcf1e, 0xc37a, 0xc518, 0xc3a3, 0xdc9c, 0xfa3e, 0x1a98, 0x40fa, 0x4783, 0x0983, -0x2539, 0x3545, 0xd15a, 0xad3e, 0xc7ca, 0xd8f8, 0xd06d, 0xf96a, 0x3340, 0x3d0f, -0x375f, 0x19a1, 0x2cbe, 0x2480, 0xd619, 0xaa0f, 0xbfde, 0xe9c8, 0xd157, 0xf05e, -0x42af, 0x4a8c, 0x2ada, 0x1e55, 0x372a, 0x09e1, 0xcd35, 0xbbbe, 0xb8fb, 0xe193, -0xe480, 0xf329, 0x3476, 0x51aa, 0x233d, 0x1102, 0x44ce, 0x08c4, 0xbbca, 0xc158, -0xc692, 0xd1e1, 0xdde2, 0x0656, 0x33cd, 0x4f74, 0x2ddc, 0x0f4d, 0x394e, 0x09e6, -0xbe5c, 0xb5ad, 0xcc4d, 0xdc27, 0xdab2, 0x1043, 0x3ea4, 0x479b, 0x2b41, 0x1d61, -0x308b, 0xf8bb, 0xc464, 0xb735, 0xcd64, 0xe75e, 0xe437, 0x161f, 0x4870, 0x48ad, -0x1c9b, 0x1ea2, 0x33d1, 0xf0d7, 0xc828, 0xc0cf, 0xd2aa, 0xe99c, 0xeb83, 0x1a23, -0x47fe, 0x4a7b, 0x1905, 0x1e38, 0x324a, 0xe958, 0xc1e9, 0xc325, 0xd7e4, 0xe635, -0xf2dc, 0x2267, 0x3faa, 0x415f, 0x1a59, 0x202f, 0x2852, 0xe889, 0xc4bd, 0xbe6c, -0xdab6, 0xe56a, 0xef10, 0x26eb, 0x4556, 0x3a6e, 0x180a, 0x2a09, 0x1fb9, 0xde8b, -0xc5cf, 0xb9e8, 0xd7a7, 0xe7b9, 0xedd9, 0x2300, 0x49df, 0x37d1, 0x12a8, 0x2f9a, -0x18aa, 0xce1b, 0xbdb0, 0xbc6b, 0xd29e, 0xdeee, 0xf71a, 0x2781, 0x45f4, 0x339d, -0x0ccf, 0x2b8f, 0x12d6, 0xc8e8, 0xb6b6, 0xbda1, 0xd3af, 0xd912, 0xfe42, 0x2d6d, -0x3ef8, 0x304b, 0x1689, 0x29cf, 0x067c, 0xcba1, 0xb57d, 0xbede, 0xdf90, 0xdc36, -0xfffb, 0x3465, 0x3c40, 0x2128, 0x1a44, 0x31e1, 0xfd23, 0xcc9c, 0xbac3, 0xbc48, -0xdd17, 0xde23, 0xfd31, 0x3137, 0x4362, 0x1eee, 0x18fc, 0x32b8, 0xf20e, 0xc5cc, -0xbb44, 0xbdcc, 0xd9bd, 0xe2e3, 0x076b, 0x353c, 0x4892, 0x1e7b, 0x18f6, 0x30cf, -0xea76, 0xbae7, 0xb387, 0xc4fa, 0xdcc0, 0xe7b8, 0x15fe, 0x3d5b, 0x45ed, 0x199f, -0x192d, 0x2670, 0xe39c, 0xbd23, 0xb49a, 0xce79, 0xe000, 0xe7b3, 0x1c0b, 0x42fb, -0x4231, 0x1500, 0x214f, 0x24b7, 0xddd0, 0xbdaf, 0xb443, 0xd1d6, 0xe488, 0xf035, -0x248c, 0x481a, 0x412e, 0x17e3, 0x2a09, 0x1e55, 0xd730, 0xbb6d, 0xb458, 0xd6fe, -0xe4f4, 0xf65d, 0x30dd, 0x50e1, 0x3ee0, 0x15ff, 0x2a77, 0x133f, 0xd208, 0xbb41, -0xb5d0, 0xdc9b, 0xea0f, 0xfe2e, 0x33e8, 0x4ec6, 0x3729, 0x17b0, 0x327e, 0x0ae7, -0xcbb1, 0xbd40, 0xbbb0, 0xe021, 0xe92f, 0x0274, 0x3a54, 0x53fa, 0x3201, 0x1417, -0x340a, 0x073d, 0xcaf8, 0xbd21, 0xbddc, 0xdfe9, 0xebda, 0x0cee, 0x3df0, 0x5410, -0x3025, 0x16c7, 0x32e0, 0xfb90, 0xc1f6, 0xbac8, 0xcb01, 0xe852, 0xeb00, 0x14bb, -0x4362, 0x4e09, 0x267e, 0x175e, 0x2ea6, 0xf673, 0xc679, 0xb7ca, 0xce42, 0xef38, -0xea88, 0x19da, 0x4c19, 0x4976, 0x1f9b, 0x2155, 0x2984, 0xe747, 0xc939, 0xbc60, -0xced0, 0xf05b, 0xef4a, 0x1a1b, 0x4d06, 0x49db, 0x1707, 0x21a4, 0x261f, 0xdb58, -0xc42f, 0xbd07, 0xcd03, 0xeb57, 0xf6f1, 0x1fe4, 0x4885, 0x45cb, 0x1391, 0x2121, -0x232c, 0xd7ec, 0xbd29, 0xbf59, 0xd799, 0xe575, 0xf6b7, 0x28c6, 0x4774, 0x3e39, -0x1137, 0x1ef7, 0x1744, 0xd610, 0xbc35, 0xb9e4, 0xdd70, 0xe860, 0xf41e, 0x2929, -0x4423, 0x2e1c, 0x110a, 0x2d77, 0x0e41, 0xced2, 0xc1cd, 0xbb1d, 0xd9b8, 0xe41e, -0xf4ed, 0x2b8f, 0x4959, 0x2b92, 0x0f36, 0x32ac, 0x0962, 0xc983, 0xc063, 0xbadd, -0xd65d, 0xe557, 0xfe42, 0x2c4a, 0x49b0, 0x2cc4, 0x11af, 0x335e, 0x0099, 0xbfb6, -0xb950, 0xc282, 0xda13, 0xe2c3, 0x0c6b, 0x2301, 0x3d0d, 0x5b32, 0x2bf1, 0xf816, -0xd811, 0xc694, 0x94e5, 0xa76b, 0x02b3, 0xf90f, 0x23f0, 0x863b, 0x6a8b, 0x1164, -0xf826, 0xd412, 0x8d7c, 0xade7, 0xbb44, 0xce06, 0x446e, 0x60cd, 0x37d3, 0x464b, -0x4603, 0xdb1a, 0xadc9, 0xd748, 0xbb79, 0xd2d1, 0x0130, 0x0928, 0x3b0a, 0x4390, -0x0002, 0xef18, 0x25c7, 0xf662, 0xbcac, 0x1201, 0x1f14, 0xda32, 0xff28, 0x1fbe, -0xd1ed, 0xd6db, 0x389e, 0x0dbf, 0xf3fb, 0x488e, 0x1c7e, 0xe70e, 0x1374, 0xed9e, -0xa6a3, 0xedff, 0x24fa, 0xe3d7, 0x2454, 0x55ff, 0xfbf6, 0x19ad, 0x27e2, 0xbe48, -0xc206, 0x1296, 0xe45b, 0xdd35, 0x4db6, 0x1c33, 0xef46, 0x4348, 0x0b24, 0xb5eb, -0xf732, 0x126a, 0xcd2b, 0x063c, 0x37c5, 0xec01, 0x18d9, 0x3cc8, 0xd616, 0xd2bc, -0x273a, 0xf84b, 0xd381, 0x30e7, 0x1385, 0xdff9, 0x30f4, 0x18b0, 0xc10e, 0x0696, -0x364d, 0xd762, 0xfbf8, 0x3d8c, 0xe397, 0xf63d, 0x3932, 0xe0e0, 0xc7fb, 0x31c6, -0x0e47, 0xd472, 0x33f1, 0x19cb, 0xd9b6, 0x297e, 0x174d, 0xb770, 0xf385, 0x2b80, -0xd844, 0x020b, 0x44ae, 0xecdc, 0xffc6, 0x3c84, 0xe59b, 0xc239, 0x1b9c, 0x03d8, -0xcdfc, 0x284d, 0x2050, 0xe856, 0x29ba, 0x1da6, 0xc79c, 0xf13e, 0x2a8b, 0xdb89, -0xe7cf, 0x315a, 0xf321, 0xf5f9, 0x332c, 0xf230, 0xc508, 0x1566, 0x093d, 0xce9a, -0x23e7, 0x1dac, 0xd1bc, 0x1aa1, 0x2c3b, 0xbf9a, 0xd5cb, 0x286f, 0xe374, 0xeccb, -0x3bb8, 0xfa4b, 0xf5e8, 0x2f2d, 0xe9fe, 0xbb23, 0x0ce2, 0xff3a, 0xc469, 0x2484, -0x2c01, 0xe186, 0x1b3d, 0x26db, 0xc966, 0xd43c, 0x0cf6, 0xd3cc, 0xeaf1, 0x349d, -0xf49e, 0xfa1b, 0x3da3, 0xf2ae, 0xb5a2, 0x09f1, 0x0303, 0xbee6, 0x1c15, 0x2f77, -0xe137, 0x187e, 0x2a96, 0xc3d0, 0xd414, 0x1e88, 0xd685, 0xe774, 0x4a59, 0xfa19, -0xe6e2, 0x3f71, 0xf365, 0xa657, 0x0aac, 0x0b27, 0xbbf9, 0x22a4, 0x3896, 0xdde2, -0x1ea6, 0x2ddb, 0xb6a3, 0xcf13, 0x234d, 0xd209, 0xdfcd, 0x4de4, 0x0530, 0xf235, -0x458e, 0xfe1c, 0xaf9c, 0x04ff, 0x0ba8, 0xc04a, 0x1dfe, 0x3a8f, 0xe44e, 0x1ebd, -0x3786, 0xc838, 0xd340, 0x2d49, 0xe462, 0xdc75, 0x4606, 0x05e5, 0xe8d6, 0x3e07, -0x0367, 0xb349, 0x0d09, 0x1be3, 0xc56a, 0x2148, 0x4004, 0xd8d7, 0x1595, 0x3a7d, -0xc56d, 0xd126, 0x3261, 0xe7bb, 0xe124, 0x5308, 0x0eb8, 0xeb26, 0x437a, 0x042c, -0xaf26, 0x0eb2, 0x218d, 0xc6ad, 0x22c2, 0x4ab9, 0xe2d2, 0x1874, 0x40cd, 0xca8d, -0xc838, 0x2e68, 0xedb9, 0xd7fa, 0x4c7a, 0x1526, 0xe7cb, 0x4150, 0x0c9e, 0xae99, -0x0430, 0x20bb, 0xc1b5, 0x1187, 0x47d4, 0xe4da, 0x1440, 0x42ec, 0xcdff, 0xc6df, -0x2c13, 0xec08, 0xd2d5, 0x46ed, 0x0ef1, 0xdd36, 0x3d9e, 0x0f6f, 0xadf9, 0x0331, -0x2434, 0xc516, 0x0f43, 0x4485, 0xde32, 0x0700, 0x3d61, 0xce91, 0xbeff, 0x2926, -0xf4fa, 0xd134, 0x41a9, 0x1664, 0xdc49, 0x34e2, 0x1333, 0xace3, 0xf361, 0x1f70, -0xc693, 0x0699, 0x47e9, 0xe934, 0x0537, 0x4024, 0xd7ae, 0xba09, 0x1da8, 0xf1cd, -0xcbb4, 0x3981, 0x188e, 0xddeb, 0x326b, 0x1892, 0xb095, 0xf130, 0x20bc, 0xc29d, -0xf9a7, 0x3f9b, 0xe3d4, 0xfb7a, 0x3e64, 0xdf3d, 0xbe59, 0x2395, 0xf6d6, 0xc4b9, -0x3386, 0x1936, 0xd767, 0x2b7a, 0x1dd1, 0xb547, 0xeefe, 0x2814, 0xcaa5, 0xf817, -0x487c, 0xeb89, 0xf26b, 0x397c, 0xdf7f, 0xb39b, 0x1c04, 0xfe68, 0xc54d, 0x349f, -0x2a68, 0xdbdd, 0x22d6, 0x1ddd, 0xb0a0, 0xe0fa, 0x21cc, 0xc993, 0xf898, 0x52ec, -0xf689, 0xf70a, 0x426a, 0xe741, 0xaf61, 0x151d, 0xf921, 0xc0cc, 0x3886, 0x3002, -0xdf54, 0x2dc5, 0x25fe, 0xb022, 0xe019, 0x2b01, 0xdc46, 0xdf34, 0x113b, 0xf3ef, -0x2b9e, 0x5380, 0xf6a9, 0xdedb, 0x2143, 0xe2d9, 0xa1ed, 0xf09b, 0xf0dc, 0xdb67, -0x3407, 0x5e55, 0x32ca, 0x27e1, 0x25c5, 0xd709, 0xc36a, 0xcfc9, 0xa7f8, 0xea51, -0x3bd7, 0x0e16, 0x0801, 0x6978, 0x4f5b, 0xdcee, 0xefc1, 0xfe47, 0xbe36, 0xbc03, -0xf6fb, 0x0a54, 0x1b49, 0x3bd0, 0x15ec, 0x2382, 0x3cb2, 0xeb19, 0xc5aa, 0xedb7, -0xf957, 0xd7a6, 0xf768, 0x22e7, 0x17a3, 0x2061, 0x1ba7, 0x1fd9, 0x23d8, 0x0c01, -0xd667, 0xc4b5, 0xfb1e, 0xd994, 0xd7e9, 0x3398, 0x3e92, 0x166b, 0x27af, 0x4ec2, -0x0515, 0xd7d3, 0xde1a, 0xb994, 0xdcbe, 0xf079, 0xeced, 0x2d31, 0x5f61, 0x253a, -0x040a, 0x4aa6, 0x0dcf, 0xb7f1, 0xcf3e, 0xd1b1, 0xcf61, 0xe63f, 0x105c, 0x26cc, -0x431a, 0x31ef, 0x089d, 0x3279, 0x1505, 0xc9c8, 0xbc77, 0xd253, 0xdbe3, 0xd185, -0x028c, 0x2ef7, 0x3d5b, 0x2ff3, 0x2436, 0x2ecc, 0xffae, 0xd27d, 0xae72, 0xb7bb, -0xda8b, 0xd2ea, 0x0b5f, 0x4d03, 0x43e6, 0x19f3, 0x2a63, 0x2e3d, 0xdc83, 0xc2d3, -0xb8a6, 0xbf1e, 0xe681, 0xe9fe, 0x0c02, 0x47ed, 0x4b9b, 0x0b96, 0x1c09, 0x3193, -0xdad3, 0xc2e7, 0xcba3, 0xc7a2, 0xd979, 0xf765, 0x1768, 0x34eb, 0x4272, 0x0e6d, -0x1cba, 0x35bf, 0xe2f7, 0xb4ec, 0xc2dc, 0xdbc9, 0xd4b0, 0xeaf5, 0x2a04, 0x3d45, -0x3135, 0x163c, 0x29bf, 0x1de9, 0xd862, 0xb512, 0xbc25, 0xe60f, 0xdb2d, 0xe4e1, -0x2e4c, 0x46ed, 0x2280, 0x0c95, 0x3390, 0x0dba, 0xc912, 0xc227, 0xbe99, 0xd9c1, -0xe290, 0xed33, 0x2239, 0x44f4, 0x1ed4, 0x0166, 0x3720, 0x122c, 0xc1e5, 0xbe0b, -0xcc00, 0xd5f1, 0xd17f, 0xf3b3, 0x23a2, 0x3db4, 0x2624, 0x0cc4, 0x33e1, 0x1023, -0xc9ae, 0xb631, 0xc8cd, 0xdd8a, 0xceea, 0xfaf7, 0x3621, 0x3ded, 0x1ca5, 0x1b0d, -0x3ba6, 0x0216, 0xce92, 0xc394, 0xc90e, 0xdd1a, 0xd9c7, 0x0438, 0x3a3b, 0x43f5, -0x193b, 0x1b93, 0x427f, 0xfe8c, 0xc66d, 0xc591, 0xd58c, 0xe393, 0xe1bc, 0x0fe2, -0x3df6, 0x448e, 0x1c8a, 0x21c0, 0x3e71, 0xf9bd, 0xc96f, 0xc456, 0xd5d9, 0xe4b5, -0xe922, 0x1ce5, 0x418b, 0x417b, 0x1d09, 0x2518, 0x341d, 0xf03a, 0xcbea, 0xc1e1, -0xd6e8, 0xe7f3, 0xe55f, 0x1d2e, 0x4954, 0x3f9e, 0x1b23, 0x31e7, 0x3163, 0xe580, -0xcb7b, 0xbe90, 0xd27b, 0xe98e, 0xede5, 0x22f3, 0x51cc, 0x440f, 0x174a, 0x3744, -0x308b, 0xdab4, 0xc2e8, 0xc03f, 0xd50d, 0xe3f9, 0xf766, 0x2e0e, 0x4fbc, 0x4269, -0x17f2, 0x2ec2, 0x1f55, 0xd524, 0xbca2, 0xbb93, 0xda21, 0xe34e, 0xfad1, 0x31b6, -0x47da, 0x36e7, 0x19ff, 0x2ef6, 0x0ef3, 0xd0a0, 0xb94c, 0xb54a, 0xdd97, 0xe171, -0xf86b, 0x35bc, 0x47ba, 0x2983, 0x1694, 0x3324, 0x023b, 0xc961, 0xbc03, 0xb2d4, -0xd7d9, 0xe2e7, 0xf9f7, 0x3391, 0x4b1a, 0x23f3, 0x1255, 0x2f9f, 0xf2dd, 0xbf1b, -0xb8c8, 0xb595, 0xd67b, 0xe49e, 0x04eb, 0x3553, 0x491e, 0x20bc, 0x101c, 0x2d09, -0xefb9, 0xbc9b, 0xb456, 0xbc74, 0xdcb8, 0xe7e3, 0x1085, 0x3e2d, 0x4862, 0x20a4, -0x178e, 0x24e7, 0xe5be, 0xbfc5, 0xb5ac, 0xc6ce, 0xe4c1, 0xe9df, 0x156b, 0x41e6, -0x4347, 0x169b, 0x1dcf, 0x2537, 0xdbdb, 0xbd60, 0xb4ac, 0xc74f, 0xe58f, 0xf1d1, -0x1bdb, 0x438d, 0x41e3, 0x1215, 0x1c5f, 0x197b, 0xd34e, 0xbb05, 0xb7f2, 0xd3b2, -0xe362, 0xf0f9, 0x2581, 0x46a8, 0x3c22, 0x115f, 0x2009, 0x122f, 0xd304, 0xbd34, -0xb54b, 0xd890, 0xe911, 0xf7d8, 0x2be6, 0x4644, 0x3124, 0x11c4, 0x2d7b, 0x0ee0, -0xcfc2, 0xc445, 0xbf59, 0xdf01, 0xe6a3, 0xf6fe, 0x2fa7, 0x4f24, 0x32c6, 0x10fe, -0x360f, 0x14d0, 0xd1fe, 0xc5f6, 0xc3cd, 0xdf16, 0xe84d, 0x00f9, 0x3302, 0x4f34, -0x330f, 0x190f, 0x3c38, 0x0f70, 0xcd2f, 0xc1c9, 0xccf8, 0xe5e1, 0xe528, 0x0d0a, -0x3fdc, 0x4c89, 0x2965, 0x1572, 0x3558, 0x0773, 0xcf30, 0xbe56, 0xcfa1, 0xeeb4, -0xe390, 0x0d40, 0x446b, 0x47d6, 0x22c9, 0x1f4d, 0x33f7, 0xf611, 0xcd9c, 0xbd57, -0xc66d, 0xec7d, 0xe7bf, 0x0df9, 0x474d, 0x4b43, 0x1b2f, 0x1f2d, 0x35f1, 0xea3c, -0xc455, 0xbc6b, 0xc16f, 0xe41e, 0xef9d, 0x16e5, 0x457b, 0x4d9b, 0x1df1, 0x2052, -0x310e, 0xe35e, 0xbd3b, 0xbe4a, 0xd17b, 0xe63a, 0xf0dd, 0x2445, 0x4bde, 0x4c1f, -0x20d2, 0x25a1, 0x2da1, 0xe9a8, 0xc288, 0xb909, 0xd9c6, 0xee3e, 0xf6a6, 0x2ef9, -0x50a3, 0x43ee, 0x1dd3, 0x2eed, 0x2309, 0xe027, 0xcabc, 0xbd16, 0xdbde, 0xee25, -0xf339, 0x2c27, 0x5390, 0x40a0, 0x1b96, 0x375c, 0x1d2b, 0xd734, 0xc78b, 0xb807, -0xd541, 0xecee, 0xfe54, 0x2fa0, 0x5361, 0x3f28, 0x1522, 0x3393, 0x1266, 0xc88d, -0xbc85, 0xb8d2, 0xd4a8, 0xe5ab, 0x0438, 0x3396, 0x4c0c, 0x33cd, 0x0a79, 0x2169, -0xfe45, 0xc2f1, 0xb2f9, 0xb954, 0xe0e9, 0xe165, 0x029e, 0x2aa5, 0x318e, 0x465f, -0x33d0, 0x0444, 0xd0f3, 0xc734, 0xa46c, 0x9309, 0xec1b, 0xfbdf, 0x010e, 0x6440, -0x7e13, 0x1ed8, 0xeedd, 0xe7dd, 0x9c36, 0x94bd, 0xaeea, 0xb4e6, 0x08d9, 0x4ccc, -0x44d3, 0x3995, 0x43b3, 0xfbc8, 0xa9f8, 0xbc47, 0xb7e9, 0xb05c, 0xd4b9, 0x0205, -0x2fad, 0x38f1, 0x145d, 0xf759, 0x0aec, 0xf6cf, 0xb93a, 0xdb0a, 0x14b9, 0xe52f, -0xdb64, 0x2275, 0xfc04, 0xc169, 0x1482, 0x2708, 0xda58, 0x13ad, 0x34f3, 0xe68c, -0xf5c6, 0x0b27, 0xbfca, 0xc11f, 0x1a39, 0xf895, 0xf15a, 0x535e, 0x1fbe, 0xfd1c, -0x2fab, 0xeb46, 0xb207, 0xf114, 0xfe7d, 0xd0f4, 0x2a5f, 0x4be3, 0xf98f, 0x2db3, -0x365b, 0xcbe5, 0xd12f, 0x160e, 0xe93e, 0xe29c, 0x4478, 0x1d6f, 0x0413, 0x49f1, -0x0cdb, 0xc582, 0x08ff, 0x1ce3, 0xd295, 0x10d4, 0x44fb, 0xeff9, 0x15bb, 0x4310, -0xddfd, 0xd8c9, 0x34f7, 0xfaaf, 0xd716, 0x4457, 0x1cff, 0xe28a, 0x3514, 0x1237, -0xb5a9, 0x01cc, 0x3075, 0xd90a, 0x1130, 0x4b8f, 0xf1cd, 0x0fee, 0x37f4, 0xcf77, -0xc32c, 0x262d, 0xfb1f, 0xde11, 0x4cfa, 0x220f, 0xe7b6, 0x379f, 0x1630, 0xb473, -0xeb2b, 0x1f40, 0xcdde, 0xfb49, 0x44ba, 0xf7a8, 0x0b44, 0x3ad4, 0xdf56, 0xbc11, -0x192e, 0xfdae, 0xc1e6, 0x2be2, 0x260a, 0xe13b, 0x285b, 0x1e09, 0xb912, 0xe471, -0x2223, 0xd36d, 0xfe2f, 0x46c5, 0xe36b, 0xf7a8, 0x4755, 0xdf55, 0xa7b3, 0x1a23, -0x0b84, 0xc893, 0x2faf, 0x2991, 0xe2bb, 0x2481, 0x13cb, 0xb383, 0xe0a3, 0x1702, -0xc7e4, 0xf45d, 0x4b67, 0xf6a6, 0xf97a, 0x3e6f, 0xecd9, 0xadf3, 0xfeb4, 0xfd06, -0xc788, 0x1f7a, 0x200a, 0xe5ba, 0x31ba, 0x2511, 0xb3da, 0xe100, 0x2776, 0xc990, -0xe1ba, 0x44f0, 0xef0a, 0xe6e3, 0x3c2c, 0xf024, 0xb397, 0x1376, 0x054e, 0xc2a5, -0x2c7f, 0x2067, 0xc5d1, 0x227f, 0x2507, 0xa6ee, 0xd8b4, 0x2da2, 0xd0d2, 0xe5d2, -0x4ae3, 0xf3c8, 0xec01, 0x3d1d, 0xe4c8, 0xa76d, 0x0cd7, 0x02fe, 0xc051, 0x2a3f, -0x2ff4, 0xd96d, 0x206e, 0x2cdb, 0xbcc2, 0xcfce, 0x1d9e, 0xd936, 0xe286, 0x3c62, -0xf899, 0xf161, 0x4188, 0xfacc, 0xb89c, 0x13b2, 0x0f18, 0xbfc2, 0x1908, 0x2b9b, -0xdd40, 0x1c58, 0x31c8, 0xcc18, 0xe1de, 0x3029, 0xe1a2, 0xeab8, 0x4814, 0xf8bb, -0xec3b, 0x41cd, 0xfd3d, 0xbb42, 0x1ab1, 0x1bc5, 0xd03f, 0x2b94, 0x39e6, 0xe56b, -0x20f6, 0x302f, 0xc7e3, 0xe07e, 0x304b, 0xe35d, 0xef37, 0x556b, 0x0a77, 0xf3f3, -0x471e, 0x0715, 0xb6bf, 0x0a15, 0x15a7, 0xc8f0, 0x27ce, 0x49e1, 0xef3f, 0x24d8, -0x3fc8, 0xcf85, 0xd3a9, 0x2981, 0xe391, 0xe1e2, 0x5568, 0x1a44, 0xf6f8, 0x47a5, -0x0bb1, 0xb4f6, 0x0758, 0x180f, 0xc264, 0x1c7f, 0x4997, 0xe7b6, 0x1790, 0x3eec, -0xcc71, 0xc989, 0x25c5, 0xe0ff, 0xd5eb, 0x4cb5, 0x1585, 0xe9fb, 0x3f4e, 0x079f, -0xa4e8, 0xf8b6, 0x18b7, 0xbe0e, 0x140f, 0x4dcd, 0xe6f8, 0x106e, 0x3e48, 0xc659, -0xb8d1, 0x1fc6, 0xe2f7, 0xcafc, 0x4b21, 0x1aac, 0xddf9, 0x38ef, 0x0d86, 0xa172, -0xefb8, 0x1ae3, 0xb8b9, 0x022b, 0x4952, 0xe3b7, 0x0763, 0x3fb6, 0xcaa1, 0xb546, -0x2034, 0xe7b3, 0xc26e, 0x4341, 0x1b44, 0xd872, 0x37f9, 0x158c, 0xa302, 0xed16, -0x212e, 0xbda6, 0x0112, 0x4eb5, 0xe481, 0x0180, 0x448c, 0xd2be, 0xb34a, 0x2659, -0xf969, 0xc3e7, 0x4253, 0x2498, 0xd3ac, 0x2f84, 0x1c93, 0xa86a, 0xeae4, 0x2be9, -0xc824, 0xfb1e, 0x5254, 0xeb1f, 0xf85a, 0x40c6, 0xd602, 0xacc6, 0x20d2, 0xfcc1, -0xbfa1, 0x3d9b, 0x2b83, 0xd669, 0x2fcc, 0x202d, 0xa65f, 0xe170, 0x2e20, 0xdd4c, -0xe4e8, 0x1128, 0xe9c6, 0x2b2e, 0x54f5, 0xec68, 0xd881, 0x25b3, 0xe44f, 0x9e7f, -0xf130, 0xeb8e, 0xd492, 0x3413, 0x5451, 0x26e6, 0x289d, 0x2623, 0xcf51, 0xbd9d, -0xcfb5, 0xa20d, 0xdfe7, 0x36b7, 0x0cc4, 0x056d, 0x65fe, 0x4dbe, 0xdc03, 0xeb0b, -0xf3c5, 0xb95e, 0xbfab, 0xf463, 0x0575, 0x1cd4, 0x3d59, 0x1332, 0x1c9e, 0x36b2, -0xe6ff, 0xc1d2, 0xebab, 0xf875, 0xd9ed, 0xf751, 0x1ec8, 0x177a, 0x1fdf, 0x14b0, -0x158a, 0x1d8b, 0x09a1, 0xd3cc, 0xc301, 0xfa03, 0xda41, 0xd913, 0x31d2, 0x3bcd, -0x1398, 0x2276, 0x47f0, 0x04ad, 0xdb13, 0xde05, 0xbc40, 0xe0b4, 0xf233, 0xedf8, -0x2b4d, 0x5c62, 0x258d, 0x04db, 0x4756, 0x0b9d, 0xbaa9, 0xd2dc, 0xd3e6, 0xd2e5, -0xeb10, 0x1044, 0x260b, 0x4492, 0x307c, 0x0989, 0x37e3, 0x1952, 0xc9b1, 0xbe5d, -0xd980, 0xdd51, 0xcfb1, 0x0665, 0x3440, 0x3f66, 0x32e5, 0x2caa, 0x3828, 0x04a2, -0xd6f3, 0xb98c, 0xc152, 0xdc75, 0xd7fc, 0x131d, 0x50a8, 0x4584, 0x218f, 0x39e9, -0x3a8c, 0xe3c0, 0xca56, 0xc147, 0xc3c0, 0xe3a0, 0xec33, 0x13df, 0x4aaa, 0x4c83, -0x117c, 0x2896, 0x399a, 0xdc86, 0xc6f6, 0xcd47, 0xc6ce, 0xd9cc, 0xf86e, 0x19ad, -0x3a91, 0x491f, 0x123e, 0x24d9, 0x3cde, 0xe11b, 0xb37c, 0xc2df, 0xd7a4, 0xd130, -0xef29, 0x2c49, 0x3d20, 0x37d9, 0x16ea, 0x291c, 0x26ac, 0xda1f, 0xaaed, 0xb607, -0xe686, 0xd568, 0xe17d, 0x337f, 0x4b43, 0x2881, 0x1389, 0x38c7, 0x12c8, 0xcd26, -0xbcc3, 0xb56e, 0xdd1b, 0xe483, 0xea42, 0x2a90, 0x51ed, 0x261e, 0x0805, 0x4126, -0x1494, 0xbddc, 0xbaf3, 0xc450, 0xd324, 0xd5cd, 0xf712, 0x2ef6, 0x4d20, 0x2af3, -0x0e0c, 0x3762, 0x0ac6, 0xbe79, 0xae49, 0xc076, 0xd8d1, 0xd3ec, 0x0029, 0x3a43, -0x4756, 0x22ca, 0x1958, 0x35d2, 0xf721, 0xbeb2, 0xb3fe, 0xbef0, 0xda1f, 0xdc92, -0x07d3, 0x4050, 0x4bd0, 0x19d3, 0x154a, 0x3522, 0xefeb, 0xbbc4, 0xb715, 0xc994, -0xdf48, 0xe0b3, 0x1046, 0x40b6, 0x462c, 0x16f6, 0x1aab, 0x3230, 0xe981, 0xbd2a, -0xbab3, 0xd2a2, 0xe5c9, 0xe97f, 0x1c0b, 0x466f, 0x4272, 0x167d, 0x2642, 0x3042, -0xe930, 0xc684, 0xbe13, 0xdccc, 0xed63, 0xea9d, 0x2413, 0x5441, 0x43f9, 0x180c, -0x36e2, 0x2e3f, 0xdd7b, 0xc957, 0xc358, 0xdaa2, 0xeec1, 0xf6ba, 0x27c0, 0x5560, -0x448c, 0x1635, 0x38ef, 0x285a, 0xd524, 0xc336, 0xc6ef, 0xdd82, 0xe86a, 0x024a, -0x3514, 0x5243, 0x4024, 0x1679, 0x30ad, 0x19cb, 0xd2e3, 0xbea4, 0xc57f, 0xe4e0, -0xe5d6, 0xfff4, 0x3873, 0x4af7, 0x2f8e, 0x188b, 0x3243, 0x0881, 0xcd5e, 0xbb93, -0xbf31, 0xe52f, 0xe3f9, 0xfc94, 0x39c7, 0x4714, 0x1d41, 0x169d, 0x38c9, 0xfecd, -0xcb1a, 0xc0fc, 0xbdbe, 0xdc75, 0xe1b5, 0xfaa7, 0x3213, 0x48a1, 0x1b68, 0x15dc, -0x3a99, 0xf55f, 0xc01b, 0xbf71, 0xc2a6, 0xd4e4, 0xdf4d, 0x066a, 0x3170, 0x40f1, -0x1a26, 0x18e0, 0x342c, 0xedf9, 0xba41, 0xb3b4, 0xc38e, 0xd795, 0xe02b, 0x10cf, -0x387d, 0x3bf9, 0x151b, 0x1afe, 0x254b, 0xde99, 0xbc43, 0xb3bd, 0xc921, 0xde4a, -0xe189, 0x1332, 0x3ec6, 0x3af6, 0x0d82, 0x1fcf, 0x23ba, 0xd6bf, 0xb847, 0xb180, -0xcc73, 0xe0cc, 0xeb2b, 0x1cb5, 0x417e, 0x395b, 0x0e37, 0x260e, 0x1c37, 0xceea, -0xb693, 0xb466, 0xd44d, 0xde55, 0xeccf, 0x28e9, 0x4c64, 0x3a26, 0x1085, 0x2a16, -0x12d5, 0xcc04, 0xb7f6, 0xb4e4, 0xda25, 0xe424, 0xf801, 0x3387, 0x4c82, 0x2ff0, -0x133d, 0x33da, 0x0a6a, 0xc653, 0xba9f, 0xb9a4, 0xdb0d, 0xe2d3, 0xfd70, 0x3932, -0x535b, 0x2ec6, 0x131d, 0x36f2, 0x041c, 0xc4de, 0xbc13, 0xbb88, 0xdb49, 0xe632, -0x0792, 0x3bf9, 0x5215, 0x2df5, 0x197b, 0x38ba, 0xfc1c, 0xc000, 0xb9c1, 0xc559, -0xe3b9, 0xea55, 0x13bb, 0x45e0, 0x506f, 0x2598, 0x1a8a, 0x31d4, 0xf25d, 0xc2c1, -0xb752, 0xc926, 0xeaa3, 0xebad, 0x18ac, 0x4b3a, 0x4b14, 0x1dc9, 0x246e, 0x2f24, -0xe2ff, 0xc4be, 0xbca8, 0xccb7, 0xee7a, 0xf1d7, 0x1fad, 0x5446, 0x4e8c, 0x1a55, -0x2bfd, 0x2de3, 0xdbcc, 0xc7c4, 0xc19e, 0xcdf0, 0xeebf, 0x0347, 0x2b46, 0x50aa, -0x4efc, 0x1ae7, 0x2bc2, 0x29fc, 0xd661, 0xbcdd, 0xc496, 0xddc3, 0xe917, 0xff6c, -0x336f, 0x4f83, 0x433f, 0x1820, 0x2877, 0x176c, 0xd63d, 0xbf37, 0xbd41, 0xe3e4, -0xec70, 0xfccc, 0x35e8, 0x4cad, 0x2f68, 0x12a7, 0x2fac, 0x08d7, 0xcd76, 0xc4f5, -0xbf59, 0xdfbb, 0xe9f3, 0xfd34, 0x3194, 0x4aa3, 0x2767, 0x0f36, 0x33c2, 0x0048, -0xc54f, 0xc2fd, 0xbd10, 0xd605, 0xe41c, 0xff51, 0x2a83, 0x4801, 0x28e6, 0x0aff, -0x2f62, 0xfdb7, 0xbd39, 0xb775, 0xc18e, 0xd7dc, 0xe021, 0x0a7d, 0x33af, 0x423a, -0x2081, 0x0d26, 0x28f2, 0xf6aa, 0xc604, 0xb20f, 0xca22, 0xf929, 0xe0c9, 0xfe41, -0x2c91, 0x285c, 0x3479, 0x40e1, 0x11dd, 0xd23c, 0xd207, 0xa861, 0xa807, 0xfe96, -0xf904, 0x0d6b, 0x7934, 0x78f8, 0x0f08, 0xfce1, 0xe859, 0x8e1b, 0xa714, 0xc4a3, -0xd05d, 0x3229, 0x6379, 0x4af3, 0x48ea, 0x4a2d, 0xe67d, 0xa875, 0xd782, 0xc120, -0xb7cb, 0xfb9f, 0x1f2e, 0x34e8, 0x4bf0, 0x20cd, 0xf0b2, 0x1643, 0x0563, 0xbcd0, -0xf27f, 0x2741, 0xe7cd, 0xef58, 0x2d5f, 0xebc6, 0xc657, 0x2de0, 0x1cb6, 0xe47e, -0x4360, 0x2d6e, 0xe23e, 0x16ee, 0xf98d, 0xa445, 0xddbb, 0x207f, 0xe2c0, 0x123e, -0x5bce, 0x016d, 0x1099, 0x3582, 0xc93d, 0xb242, 0x0573, 0xeaa3, 0xcd42, 0x3ec8, -0x2edf, 0xedf6, 0x39f9, 0x19b8, 0xb85b, 0xe3bc, 0x1369, 0xd1a8, 0xf1db, 0x3e71, -0xf679, 0x05fa, 0x4211, 0xe5a8, 0xbfbb, 0x17fb, 0x0686, 0xc767, 0x1e4b, 0x24e5, -0xdea8, 0x2460, 0x26bf, 0xbfbf, 0xebef, 0x3662, 0xdb5b, 0xe735, 0x478f, 0xf36f, -0xe6aa, 0x3a12, 0xedab, 0xb885, 0x2168, 0x1a11, 0xd137, 0x2b7c, 0x29a9, 0xd6be, -0x2004, 0x24d0, 0xb744, 0xddad, 0x2f52, 0xe201, 0xeeef, 0x4b3b, 0xfc02, 0xef7b, -0x3d92, 0xf6b9, 0xb6be, 0x0b17, 0x0d77, 0xc534, 0x191c, 0x30b3, 0xe945, 0x23b0, -0x2f3b, 0xc9bb, 0xd7dc, 0x269c, 0xe46c, 0xd902, 0x3766, 0x0212, 0xeb25, 0x39af, -0x03e0, 0xb8e7, 0x077c, 0x169d, 0xcc6f, 0x1b10, 0x2e0e, 0xd19a, 0x0fd8, 0x38f6, -0xca91, 0xc8f9, 0x29d6, 0xf078, 0xdd5c, 0x3b96, 0x09ef, 0xf001, 0x3507, 0xfbb1, -0xb660, 0x03d5, 0x0e0a, 0xc387, 0x17f0, 0x3e5b, 0xe93c, 0x15a4, 0x38a5, 0xd46a, -0xc5fe, 0x1360, 0xe4bc, 0xda9b, 0x39bc, 0x0c8d, 0xef2a, 0x3f9f, 0x0fdb, 0xb193, -0xf8d2, 0x1694, 0xb855, 0xffea, 0x4558, 0xed39, 0x083b, 0x3cd1, 0xda45, 0xc36d, -0x1e6e, 0xe476, 0xc765, 0x430f, 0x19a5, 0xde45, 0x3c55, 0x16d3, 0xa619, 0xf171, -0x1f0a, 0xbe1b, 0x04f9, 0x4d9d, 0xeec4, 0x0d1f, 0x3e78, 0xccbe, 0xb49f, 0x1d9b, -0xeb29, 0xc2b6, 0x448d, 0x28e1, 0xe2a4, 0x3aab, 0x21b9, 0xad2c, 0xe5d9, 0x1d14, -0xbe21, 0xf5ec, 0x4db1, 0xef99, 0x030b, 0x4e45, 0xe3cc, 0xb105, 0x20c5, 0xfc50, -0xb9ac, 0x35e2, 0x2898, 0xd9cf, 0x3397, 0x236d, 0xace6, 0xea90, 0x2c38, 0xc65d, -0xf7eb, 0x5313, 0xe39f, 0xf211, 0x477a, 0xdbe9, 0xad7a, 0x1ffa, 0x0017, 0xc201, -0x3906, 0x27ff, 0xd56a, 0x2d70, 0x20b7, 0xa843, 0xe22b, 0x2d3a, 0xc8d1, 0xeff9, -0x5809, 0xf171, 0xf1ca, 0x4aa1, 0xe752, 0xa7f6, 0x1531, 0x03a8, 0xbd38, 0x3515, -0x35e4, 0xd873, 0x2cec, 0x2fa3, 0xaedb, 0xd92e, 0x2cc6, 0xccea, 0xe531, 0x5116, -0xf947, 0xf6dd, 0x4ce8, 0xef45, 0xaeac, 0x190f, 0x0bfc, 0xbc68, 0x2afb, 0x3612, -0xd723, 0x2687, 0x3899, 0xbdfb, 0xda26, 0x3069, 0xdbaf, 0xe6bf, 0x5016, 0x0057, -0xf1d5, 0x480e, 0xf64b, 0xad29, 0x13a0, 0x16f4, 0xc33e, 0x2614, 0x4041, 0xe193, -0x201a, 0x3648, 0xc1be, 0xd35e, 0x2aee, 0xe031, 0xe3b6, 0x52de, 0x0b18, 0xedc3, -0x4b67, 0x084a, 0xaf95, 0x0ccc, 0x1af7, 0xc089, 0x19da, 0x4369, 0xe6d2, 0x1d97, -0x422d, 0xcfe2, 0xd1f7, 0x2e93, 0xe6d4, 0xd904, 0x4acc, 0x0d46, 0xe47d, 0x425b, -0x0eb4, 0xb1bb, 0x06af, 0x2009, 0xc469, 0x12a4, 0x3fee, 0xdd98, 0x0e0f, 0x3d40, -0xcdb1, 0xc9b2, 0x2f38, 0xedc8, 0xcf7d, 0x42ef, 0x1026, 0xd9af, 0x3710, 0x1033, -0xad12, 0xfd62, 0x2285, 0xc358, 0x0c72, 0x48be, 0xe51c, 0x0a9a, 0x2ff8, 0xbdc8, -0xc28d, 0x2cc9, 0xfec9, 0xc7ca, 0x13e5, 0x17e1, 0x02ca, 0x35c6, 0x0fac, 0xcd93, -0xf8c0, 0xfbac, 0xbba6, 0xe67f, 0x0735, 0xd6a6, 0x1bde, 0x7350, 0x2eb9, 0xfad9, -0x2334, 0xeee4, 0xa104, 0xc9e5, 0xcf89, 0xd376, 0x2f8b, 0x2f58, 0x13f9, 0x6199, -0x5172, 0xd760, 0xdae6, 0x0109, 0xaaab, 0x9f01, 0x11f6, 0x1c74, 0xff8b, 0x303b, -0x3d89, 0x2a49, 0x1900, 0xe5d6, 0xbb94, 0xe00a, 0xeeb6, 0xce23, 0x0253, 0x3291, -0x20e8, 0x0d77, 0x2650, 0x2ac1, 0xf46d, 0xf971, 0xdbe5, 0xc599, 0xf13a, 0xdd86, -0xebfb, 0x30a4, 0x422d, 0x0726, 0x20e1, 0x53cf, 0xe990, 0xbf8d, 0xd717, 0xc738, -0xcc12, 0xed69, 0x1207, 0x2679, 0x4b59, 0x2072, 0x0f6e, 0x3b3c, 0xef93, 0xaf82, -0xc07e, 0xdcf5, 0xccea, 0xe17b, 0x31b5, 0x3ad1, 0x3673, 0x24ae, 0x1fad, 0x2260, -0xf0dd, 0xc29e, 0xb494, 0xe43c, 0xe377, 0xdb2b, 0x2318, 0x45fc, 0x34e0, 0x20c4, -0x3ea5, 0x232d, 0xdb31, 0xcc1d, 0xb320, 0xc65a, 0xdf18, 0xea47, 0x25f0, 0x5cd4, -0x4386, 0x10e7, 0x3d78, 0x214b, 0xc538, 0xbca9, 0xbe8b, 0xcd16, 0xe049, 0x05f5, -0x2fe8, 0x5197, 0x45f2, 0x0fc2, 0x2f2f, 0x1971, 0xc5a7, 0xb7fc, 0xca80, 0xd975, -0xd7df, 0x0c99, 0x3a4e, 0x3fc6, 0x30e6, 0x13a0, 0x2b87, 0x0f79, 0xcd82, 0xaf27, -0xc107, 0xe381, 0xd5f3, 0x035c, 0x44e6, 0x44fc, 0x1db9, 0x1e95, 0x3a4e, 0xf713, -0xc17f, 0xb545, 0xc44b, 0xea43, 0xe0b2, 0x034f, 0x458e, 0x4e96, 0x1557, 0x1819, -0x3caa, 0xeb53, 0xb81f, 0xc29d, 0xcb34, 0xd827, 0xea2e, 0x153f, 0x3683, 0x4599, -0x17a8, 0x1025, 0x3238, 0xefae, 0xb3df, 0xb7d0, 0xd811, 0xd6f7, 0xd85a, 0x1792, -0x3a94, 0x35ea, 0x1657, 0x21c8, 0x243d, 0xdfb1, 0xbb30, 0xb0e9, 0xceed, 0xddbf, -0xdff2, 0x1be1, 0x44e0, 0x3265, 0x0879, 0x260d, 0x1f6a, 0xcd4c, 0xba1b, 0xbafd, -0xcb3d, 0xd899, 0xeb07, 0x19d6, 0x3c13, 0x3544, 0x08ed, 0x2407, 0x1daa, 0xcd68, -0xb792, 0xbf01, 0xd1c2, 0xd611, 0xf34b, 0x259b, 0x3b2f, 0x2f39, 0x1053, 0x2d78, -0x1a05, 0xd265, 0xba97, 0xc02a, 0xdab7, 0xd903, 0xf86d, 0x2ff9, 0x403d, 0x28d3, -0x14a1, 0x34af, 0x0a0e, 0xcda4, 0xc3ac, 0xc13a, 0xdd8d, 0xe2ea, 0xfd27, 0x2eb2, -0x45ac, 0x26be, 0x14ec, 0x3dd9, 0x06bc, 0xc81d, 0xc6e2, 0xc719, 0xd8c3, 0xe5c7, -0x0b66, 0x32c9, 0x4b92, 0x2cb4, 0x19ce, 0x3c10, 0x0272, 0xc5eb, 0xbb96, 0xccd7, -0xe07a, 0xdfbb, 0x160a, 0x4341, 0x4749, 0x2676, 0x21c7, 0x2fd3, 0xf0d0, 0xc6ee, -0xb624, 0xcad8, 0xe85f, 0xe7c5, 0x1d81, 0x4b84, 0x45af, 0x1eba, 0x2c0d, 0x30c1, -0xe4ba, 0xca8d, 0xbdbe, 0xcc89, 0xed50, 0xf3dd, 0x2203, 0x5159, 0x4cd1, 0x1b22, -0x2e08, 0x3255, 0xe28f, 0xc7e6, 0xc2e3, 0xd510, 0xe8de, 0xfa14, 0x2846, 0x4a33, -0x4c04, 0x1fed, 0x2f64, 0x2cdb, 0xe195, 0xc51d, 0xc13f, 0xdb62, 0xe696, 0xfa3e, -0x31bd, 0x4d3c, 0x4355, 0x2150, 0x33b3, 0x204a, 0xe0d7, 0xc877, 0xbdd9, 0xdeff, -0xeb46, 0x0024, 0x3a0c, 0x5485, 0x3c57, 0x1fe4, 0x3a57, 0x110e, 0xd1f0, 0xc4f8, -0xbfae, 0xe303, 0xf0e8, 0x0757, 0x3795, 0x525c, 0x364d, 0x163e, 0x3411, 0x078d, -0xc95e, 0xbed3, 0xc146, 0xdd79, 0xe8cb, 0x0fb0, 0x3b8b, 0x4b40, 0x2f52, 0x1708, -0x2c9b, 0xf6f7, 0xc33e, 0xb8f8, 0xc0a0, 0xe27b, 0xe6d8, 0x0c22, 0x3d9b, 0x4878, -0x24a6, 0x186c, 0x2467, 0xe600, 0xc014, 0xb323, 0xbc0b, 0xe0eb, 0xe8da, 0x0f11, -0x3cef, 0x40c5, 0x12df, 0x1430, 0x227a, 0xdb2e, 0xb8c4, 0xb5de, 0xc528, 0xdd7a, -0xe824, 0x13d4, 0x3e15, 0x4384, 0x124e, 0x1469, 0x1e10, 0xd6df, 0xb7fb, 0xb8e3, -0xcdaf, 0xdd42, 0xecbb, 0x1e7d, 0x3c6f, 0x378a, 0x1149, 0x1e8a, 0x1b08, 0xd447, -0xb3c7, 0xb0b3, 0xd341, 0xe16d, 0xebda, 0x22db, 0x4450, 0x345d, 0x0fcd, 0x27aa, -0x137c, 0xcfd2, 0xc241, 0xbb1b, 0xd538, 0xe771, 0xf62c, 0x297f, 0x4c37, 0x3271, -0x103e, 0x360c, 0x143c, 0xc8cb, 0xc2e2, 0xc46f, 0xd919, 0xe83f, 0x0316, 0x2e44, -0x49f7, 0x320d, 0x1102, 0x34eb, 0x0f20, 0xc998, 0xc1e5, 0xc68b, 0xd8b7, 0xe3aa, -0x0e51, 0x3839, 0x473d, 0x306d, 0x1936, 0x313b, 0x023a, 0xca3b, 0xb9cb, 0xc4e8, -0xe9a8, 0xe8e8, 0x0e4f, 0x4390, 0x4a72, 0x23d2, 0x1d52, 0x31ca, 0xf0b0, 0xc813, -0xbd25, 0xc202, 0xe6ea, 0xee18, 0x12c8, 0x4476, 0x4b2e, 0x198b, 0x19a1, 0x2fcc, -0xe518, 0xbf8d, 0xbe9e, 0xcb6d, 0xe622, 0xee0e, 0x167e, 0x3fbf, 0x46fb, 0x1a7d, -0x1f4e, 0x2d08, 0xe17f, 0xbedd, 0xbaa3, 0xcc16, 0xe196, 0xeedc, 0x21cc, 0x44ed, -0x4348, 0x1a18, 0x2363, 0x242e, 0xdc65, 0xbd61, 0xb300, 0xcfa0, 0xe712, 0xe5c7, -0x169f, 0x5f17, 0x7299, 0x2bb1, 0x0b65, 0xe2fd, 0x9b1c, 0xa3b5, 0xaeb5, 0xe147, -0x3787, 0x593a, 0x5290, 0x4a3c, 0x2e69, 0xcbb4, 0xa91f, 0xc5a3, 0xbd85, 0xd07b, -0x1055, 0x3d01, 0x2411, 0x222c, 0x2b1a, 0x0b05, 0xffdc, 0xe3f2, 0xcf8c, 0xf390, -0x15ad, 0xd9f5, 0xc944, 0x2d37, 0x09de, 0xc93f, 0x0d00, 0x229d, 0x0eb5, 0x31fb, -0x193d, 0xdefd, 0x0b6e, 0xe2b8, 0x80c1, 0xd2cb, 0x1719, 0xe9c2, 0x3008, 0x6a8a, -0xfee8, 0x01bc, 0x299a, 0xb39d, 0xa48f, 0x0798, 0xe5e9, 0xddfa, 0x41e1, 0x17dc, -0xf43b, 0x3829, 0x05c3, 0xbd89, 0xf1bc, 0x0dab, 0xcd37, 0xfad8, 0x2e14, 0xf080, -0x107b, 0x24ea, 0xd852, 0xd4a0, 0x17fd, 0xfd24, 0xd818, 0x2b57, 0x168d, 0xdb81, -0x1759, 0x0cdb, 0xc867, 0xf2e6, 0x257d, 0xe349, 0xfff1, 0x39a1, 0xe33d, 0xee45, -0x2b9d, 0xe388, 0xc702, 0x21a8, 0x103e, 0xda0f, 0x2f4b, 0x1b70, 0xd6c1, 0x1b55, -0x104d, 0xb577, 0xe811, 0x28c6, 0xe0aa, 0xfee3, 0x4403, 0xf56f, 0xf711, 0x2c32, -0xe60a, 0xbd96, 0x0d61, 0x048f, 0xce3d, 0x272f, 0x325d, 0xf1c7, 0x2094, 0x1ff0, -0xc860, 0xe30a, 0x2515, 0xdac5, 0xe92d, 0x441f, 0x0548, 0xfb76, 0x3d79, 0xfd5c, -0xbecb, 0x1149, 0x13f9, 0xd214, 0x2a6f, 0x3388, 0xe6f8, 0x2190, 0x2948, 0xc4a5, -0xdd42, 0x2f43, 0xe6af, 0xf03f, 0x54db, 0x13d9, 0xfca6, 0x3215, 0xf506, 0xc57a, -0x12c0, 0x0f9f, 0xd3cc, 0x322e, 0x4301, 0xf273, 0x23ab, 0x356e, 0xd3b2, 0xd051, -0x21b7, 0xf281, 0xecda, 0x4489, 0x12f0, 0x0242, 0x4407, 0x06d1, 0xbafe, 0x0b6c, -0x1d26, 0xc6ee, 0x19bc, 0x44e9, 0xe86d, 0x13b7, 0x39ca, 0xd446, 0xd119, 0x2941, -0xee93, 0xe7c5, 0x4bc2, 0x0643, 0xe908, 0x4535, 0x0444, 0xaaed, 0x0a10, 0x21a1, -0xc807, 0x1964, 0x41d6, 0xe77b, 0x16b3, 0x34e4, 0xc869, 0xc8dc, 0x2196, 0xe4ba, -0xdb97, 0x4973, 0x106a, 0xe7d9, 0x3cc5, 0x0a39, 0xa769, 0xf083, 0x1925, 0xc4c2, -0x075d, 0x3c4a, 0xe3ca, 0x0d28, 0x38d3, 0xc8d1, 0xbd34, 0x29a4, 0xea91, 0xbfc6, -0x3ad0, 0x0fbe, 0xd348, 0x3125, 0x0f03, 0xa6a3, 0xf4e3, 0x222b, 0xbe73, 0x00e2, -0x3cfa, 0xd671, 0xff6d, 0x3893, 0xc753, 0xb6c9, 0x236e, 0xec95, 0xc571, 0x3925, -0x1324, 0xdbd6, 0x2c09, 0x07a8, 0xaa2d, 0xf242, 0x1fa6, 0xc716, 0x042c, 0x441c, -0xe490, 0xffd3, 0x3dc4, 0xdc2a, 0xb9f6, 0x1f30, 0xfbb0, 0xca2e, 0x371c, 0x2003, -0xddf1, 0x31fa, 0x2307, 0xb4d8, 0xf004, 0x2cbc, 0xc878, 0xf7c6, 0x4caf, 0xed6b, -0xfe78, 0x48e2, 0xe5f3, 0xb861, 0x209c, 0xffdd, 0xc990, 0x3a8f, 0x2235, 0xd8df, -0x3307, 0x26fb, 0xb85c, 0xf04e, 0x2cb8, 0xd049, 0xfa7c, 0x49ae, 0xedac, 0xfa25, -0x3f7d, 0xe587, 0xbae6, 0x1de2, 0x03f4, 0xc964, 0x35b0, 0x2bf3, 0xdcc1, 0x287a, -0x2509, 0xb53e, 0xdd34, 0x21f5, 0xd014, 0xf4e6, 0x5327, 0xfbed, 0xf63d, 0x422a, -0xebde, 0xadff, 0x109b, 0x03c0, 0xc66e, 0x34a1, 0x371f, 0xe1e5, 0x266b, 0x298a, -0xb6ec, 0xdb6e, 0x2815, 0xd421, 0xf019, 0x5352, 0xff26, 0xf3f2, 0x43a2, 0xf389, -0xb155, 0x11bc, 0x093e, 0xc3cf, 0x2cd7, 0x37d3, 0xe04d, 0x22e3, 0x2ecd, 0xb8a8, -0xd4f6, 0x2b5c, 0xd879, 0xe9c1, 0x5345, 0x0074, 0xeb1b, 0x3d0d, 0xf0a8, 0xa78e, -0x0f83, 0x1369, 0xc523, 0x2e80, 0x3d4c, 0xdb13, 0x1e41, 0x2ecc, 0xb34d, 0xd013, -0x2f65, 0xd81e, 0xe458, 0x57d2, 0x0406, 0xebe0, 0x457a, 0xf7e1, 0xa66e, 0x0b6f, -0x0e7a, 0xb8d1, 0x251b, 0x3fe1, 0xdd7d, 0x20b9, 0x3687, 0xbb17, 0xd0b9, 0x2e06, -0xd6de, 0xd8c9, 0x50ce, 0x0665, 0xe605, 0x3fce, 0xfc63, 0xac6f, 0x0f4a, 0x249e, -0xcfcc, 0xfc68, 0x0488, 0xeb03, 0x4794, 0x43ec, 0xda83, 0xf3bd, 0x2644, 0xc019, -0xac19, 0xfdb7, 0xdae0, 0xebc8, 0x4a7e, 0x4842, 0x204b, 0x2f4a, 0x0bd7, 0xb466, -0xc7b6, 0xc25a, 0x9ff5, 0xfeaa, 0x3147, 0xf5d6, 0x1606, 0x7098, 0x2536, 0xcb1f, -0xef7c, 0xd8bb, 0xa610, 0xc6a6, 0xf94d, 0x01cf, 0x2326, 0x2e92, 0xfa36, 0x1b23, -0x1fee, 0xc9e0, 0xbf64, 0xf0f7, 0xebf9, 0xcd60, 0xfed7, 0x1727, 0x0a34, 0x1723, -0x0a36, 0x0e7b, 0x18aa, 0xfc64, 0xb854, 0xc985, 0xfdd8, 0xc68b, 0xea58, 0x3e80, -0x2a34, 0x0ba2, 0x2d28, 0x367f, 0xec1b, 0xe1de, 0xce20, 0xb654, 0xf084, 0xed7d, -0xf556, 0x44c2, 0x5de8, 0x118c, 0x103a, 0x43c2, 0xea97, 0xbbb3, 0xd781, 0xd5a7, -0xe105, 0xfd04, 0x1bc6, 0x2dbd, 0x4a4e, 0x2262, 0x090c, 0x37f3, 0x0697, 0xc337, -0xc445, 0xe70d, 0xe217, 0xdb53, 0x1953, 0x38c9, 0x40c1, 0x2ede, 0x22c3, 0x260c, -0xfc8c, 0xcfd4, 0xb0e1, 0xd39e, 0xe34c, 0xdae1, 0x253f, 0x508f, 0x342f, 0x1aa5, -0x3628, 0x1e6e, 0xd753, 0xc9cd, 0xb7c4, 0xd23c, 0xef41, 0xeb30, 0x1cc2, 0x523c, -0x3c38, 0x02b5, 0x29f9, 0x28a2, 0xd759, 0xd1f8, 0xd1bf, 0xd245, 0xe508, 0xfe91, -0x19fc, 0x3b30, 0x3d9b, 0x0a4c, 0x2fd0, 0x37f4, 0xdc8c, 0xbe49, 0xd7b4, 0xe591, -0xd3af, 0xfd0f, 0x3070, 0x36f1, 0x325e, 0x18a4, 0x3386, 0x27ca, 0xdc73, 0xb513, -0xcdc8, 0xf809, 0xd5d9, 0xf013, 0x4334, 0x4964, 0x2395, 0x1b7b, 0x3c5a, 0x0fe4, -0xd7a3, 0xc6c6, 0xc6b6, 0xf0cf, 0xeb7d, 0xf80b, 0x3914, 0x525a, 0x2445, 0x1417, -0x4928, 0x0ff5, 0xc35d, 0xc78a, 0xd244, 0xdff9, 0xe35e, 0x07df, 0x35ae, 0x4ba7, -0x2974, 0x1106, 0x3cf3, 0x0fec, 0xc4b4, 0xb9c7, 0xd562, 0xe489, 0xd970, 0x0e52, -0x3f61, 0x43d6, 0x27aa, 0x2131, 0x364b, 0xfd16, 0xc955, 0xb961, 0xcde0, 0xe8ce, -0xe024, 0x0e4f, 0x4544, 0x4582, 0x18cd, 0x22be, 0x3a77, 0xf22e, 0xc4f3, 0xbabf, -0xcce0, 0xe32e, 0xe352, 0x12f7, 0x43a1, 0x4666, 0x1401, 0x1c0c, 0x30e6, 0xe619, -0xbb56, 0xbb95, 0xd491, 0xe00b, 0xe61a, 0x17a4, 0x3b47, 0x3b00, 0x10e7, 0x1c7e, -0x2707, 0xe361, 0xb750, 0xb2d2, 0xd7be, 0xdb41, 0xe145, 0x2096, 0x40ed, 0x319a, -0x118b, 0x2924, 0x1a2e, 0xd6af, 0xba5f, 0xad6c, 0xd2c9, 0xe064, 0xe67c, 0x25df, -0x4ea4, 0x3357, 0x0fc7, 0x312c, 0x1020, 0xc418, 0xb5ff, 0xb68a, 0xd4f7, 0xe2ef, -0xfb14, 0x2e11, 0x4c3e, 0x3280, 0x08fc, 0x2966, 0x0e36, 0xc69d, 0xb3ba, 0xbf26, -0xde72, 0xe461, 0x0918, 0x3887, 0x4967, 0x313c, 0x1236, 0x2763, 0x0526, 0xcb44, -0xb35a, 0xc8b5, 0xed8f, 0xdf83, 0x05bf, 0x41b2, 0x4548, 0x20ab, 0x1a30, 0x2bd9, -0xf884, 0xce0f, 0xb377, 0xc10c, 0xede8, 0xe5b7, 0x0520, 0x42f2, 0x4b64, 0x19c0, -0x1a50, 0x2fd7, 0xee52, 0xc8d4, 0xbcea, 0xc661, 0xe5d5, 0xe9b8, 0x0e4b, 0x42da, -0x4c23, 0x187a, 0x1ba9, 0x2fdd, 0xe89e, 0xbcad, 0xb84a, 0xd201, 0xe619, 0xeba8, -0x1a61, 0x40ef, 0x41b7, 0x151a, 0x1cbf, 0x2b05, 0xea44, 0xc1f8, 0xbc6c, 0xdb3c, -0xe422, 0xe69f, 0x208e, 0x4881, 0x3cc7, 0x1503, 0x2aa9, 0x27ed, 0xe431, 0xc5cc, -0xbdfa, 0xdd9a, 0xe8e9, 0xf074, 0x2496, 0x4a59, 0x3e74, 0x1374, 0x2e8f, 0x252c, -0xd82c, 0xba66, 0xbeda, 0xe1cc, 0xe3a5, 0xf456, 0x3043, 0x4df4, 0x382a, 0x0d8b, -0x25d9, 0x1516, 0xd249, 0xb805, 0xbbdd, 0xe317, 0xe31f, 0xf717, 0x307f, 0x4438, -0x2ce7, 0x1089, 0x29b8, 0x060d, 0xc757, 0xb6c7, 0xb848, 0xdd4c, 0xde36, 0xf60e, -0x341a, 0x45f6, 0x1fc8, 0x0b03, 0x2ed5, 0xff75, 0xc14a, 0xb3bb, 0xb4dc, 0xd6d2, -0xdc36, 0xfbb0, 0x356c, 0x49c3, 0x2300, 0x0fe9, 0x2f18, 0xf499, 0xb802, 0xb1b2, -0xc06f, 0xdc85, 0xde22, 0x0805, 0x3cc1, 0x488e, 0x1f2e, 0x11d7, 0x2c64, 0xf3b1, -0xbd78, 0xadbb, 0xc5eb, 0xe451, 0xde57, 0x0e82, 0x4140, 0x4137, 0x1916, 0x1b84, -0x28d4, 0xe639, 0xc1a0, 0xb2e7, 0xc697, 0xe4be, 0xdf87, 0x10dc, 0x49b4, 0x457d, -0x1479, 0x2405, 0x2b0f, 0xdcbe, 0xbefc, 0xb3a9, 0xc6dd, 0xe60b, 0xed45, 0x1b13, -0x497b, 0x4531, 0x1324, 0x24b0, 0x243c, 0xd210, 0xb83d, 0xb984, 0xd0bc, 0xe2a6, -0xf3b7, 0x2766, 0x4a82, 0x4204, 0x133f, 0x22b4, 0x1b4e, 0xd4a3, 0xba37, 0xbaaf, -0xdf26, 0xea12, 0xf84b, 0x3177, 0x4e17, 0x39af, 0x193b, 0x308a, 0x13c1, 0xd6b0, -0xc5d3, 0xbffc, 0xe599, 0xeec6, 0xff4d, 0x38ac, 0x5167, 0x346a, 0x1b9d, 0x376a, -0x0ce4, 0xd4a8, 0xc78f, 0xc195, 0xe4f4, 0xf0f5, 0x07bb, 0x3cdc, 0x5981, 0x3510, -0x1b26, 0x3a31, 0x03fb, 0xca72, 0xc53e, 0xcd25, 0xecab, 0xf768, 0x193e, 0x437d, -0x53af, 0x2c6f, 0x15b8, 0x31bf, 0xff10, 0xcc99, 0xc147, 0xd348, 0xee05, 0xee95, -0x1782, 0x2f2b, 0x4b20, 0x5a80, 0x2b14, 0xfd25, 0xdd6a, 0xccb5, 0x9c77, 0xbb91, -0x0abb, 0xfa6d, 0x308d, 0x8b3b, 0x6386, 0x0f1b, 0x0366, 0xd9a6, 0x969a, 0xbb36, -0xbe42, 0xd650, 0x4a43, 0x5e11, 0x39f6, 0x4e5f, 0x3f3f, 0xd1f7, 0xbac7, 0xda01, -0xb75e, 0xdb85, 0x0689, 0x0f50, 0x402d, 0x3a48, 0xf492, 0xf3ba, 0x232e, 0xe3c2, -0xc221, 0x1c7e, 0x103b, 0xda32, 0x0d99, 0x12a9, 0xc374, 0xe4a9, 0x2fee, 0xef59, -0xf571, 0x4551, 0x09ce, 0xee4d, 0x190c, 0xdd87, 0xa5eb, 0xf5c9, 0x0d02, 0xd8dd, -0x32e0, 0x4556, 0xf27b, 0x272d, 0x1a0f, 0xac2d, 0xc929, 0x0d48, 0xd065, 0xe73f, -0x4fb6, 0x0a4b, 0xfcc1, 0x4512, 0xed54, 0xb2b9, 0x0350, 0xfc0b, 0xbed7, 0x1926, -0x2f0c, 0xe1a6, 0x2871, 0x338a, 0xc365, 0xd8fc, 0x2261, 0xe12a, 0xda5e, 0x3836, -0x02a6, 0xeb2d, 0x3c29, 0xfc95, 0xb47f, 0x126c, 0x2240, 0xc4df, 0x1301, 0x42d9, -0xddbd, 0x05c8, 0x2ff4, 0xc609, 0xc9ef, 0x2ebd, 0xf193, 0xda07, 0x46da, 0x0cd3, -0xe052, 0x39eb, 0x0085, 0xa3df, 0xfdbd, 0x1d67, 0xc36d, 0x1321, 0x461a, 0xe3db, -0x121d, 0x3bc5, 0xce7e, 0xc611, 0x1e92, 0xe869, 0xd146, 0x3d6e, 0x12f6, 0xe781, -0x3a2e, 0x100e, 0xb4c0, 0xf87f, 0x2451, 0xce12, 0xfd54, 0x3b61, 0xe9af, 0x0485, -0x363a, 0xd7a5, 0xc531, 0x26b6, 0xfb26, 0xd3af, 0x4024, 0x13d3, 0xcf38, 0x31ca, -0x1fe6, 0xacba, 0xe830, 0x28d0, 0xd67b, 0x03f4, 0x4390, 0xeff5, 0x0d9b, 0x3cdc, -0xd2ef, 0xbce5, 0x1df5, 0xf194, 0xcc0a, 0x3c7b, 0x22be, 0xe9d0, 0x37e4, 0x1f21, -0xbf6a, 0xed14, 0x13f9, 0xccad, 0xfeed, 0x36f2, 0xe931, 0x0bd9, 0x4870, 0xe9a7, -0xc649, 0x2406, 0x009e, 0xc7de, 0x28c6, 0x1d14, 0xe19d, 0x2d2e, 0x24eb, 0xc1ae, -0xf293, 0x2948, 0xd034, 0xfc36, 0x4c80, 0xed33, 0xf76a, 0x4574, 0xe546, 0xb51f, -0x205e, 0x01e4, 0xc8f6, 0x3c9b, 0x2dfd, 0xe000, 0x3231, 0x23e4, 0xac3f, 0xe1e2, -0x2470, 0xc806, 0xf279, 0x51f9, 0xfc93, 0xfd3d, 0x471f, 0xf14b, 0xb564, 0x0d8d, -0xf7a1, 0xbaf7, 0x2ae2, 0x3330, 0xe3cf, 0x2876, 0x2f9d, 0xbe99, 0xd8ed, 0x2066, -0xcc5b, 0xe037, 0x444b, 0xfc55, 0xf1ae, 0x3dee, 0xedb1, 0xa9f3, 0x0f58, 0x052a, -0xb88b, 0x286b, 0x32e9, 0xd191, 0x1a2d, 0x2b19, 0xb1ba, 0xd055, 0x2574, 0xcd9d, -0xe17a, 0x4f5d, 0xf991, 0xe9c8, 0x4424, 0xee22, 0xa03f, 0x0b3e, 0x0833, 0xb2f6, -0x25d7, 0x3fb5, 0xd971, 0x1eca, 0x3552, 0xb55f, 0xc5ed, 0x2341, 0xd2b5, 0xd7c1, -0x523e, 0x069d, 0xe63d, 0x453d, 0xfaec, 0xa137, 0x0414, 0x12c4, 0xb981, 0x1bb8, -0x4054, 0xdb21, 0x1feb, 0x3f6a, 0xbc6b, 0xcb19, 0x2eaa, 0xdddc, 0xd782, 0x53f0, -0x0db9, 0xe5f5, 0x4ae5, 0x09f1, 0xaaaa, 0x08ea, 0x1b96, 0xc280, 0x22c4, 0x4ce0, -0xe24f, 0x1cfe, 0x4491, 0xc23a, 0xc424, 0x2faf, 0xe9a8, 0xd606, 0x50b8, 0x16c3, -0xe5a3, 0x41e4, 0x0b1a, 0xa940, 0xfef6, 0x1bdf, 0xbfb1, 0x1607, 0x4e4e, 0xe252, -0x116e, 0x44af, 0xc71f, 0xbeed, 0x2c56, 0xed57, 0xd13f, 0x46da, 0x1220, 0xdf44, -0x3fcf, 0x0e72, 0xa687, 0xfe99, 0x22c2, 0xc0f4, 0x10f5, 0x4ab0, 0xdcc9, 0x0862, -0x42d3, 0xcce8, 0xbf2b, 0x2c4a, 0xf130, 0xcf23, 0x47a0, 0x1557, 0xd894, 0x3b17, -0x15eb, 0xac91, 0xfc3e, 0x2839, 0xc889, 0x0a6b, 0x4a0a, 0xe524, 0x0571, 0x40a3, -0xd642, 0xc2d3, 0x2b1c, 0xfa19, 0xd4f9, 0x465b, 0x1ef6, 0xe106, 0x371e, 0x15ec, -0xb185, 0xfc2f, 0x2898, 0xcc97, 0x0b55, 0x4c1f, 0xebc4, 0x08bc, 0x3f08, 0xd705, -0xc599, 0x2bb5, 0x081d, 0xcd96, 0x0d3b, 0x0ffa, 0x0823, 0x3f09, 0x1a45, 0xdad9, -0x0662, 0x07b7, 0xbb6a, 0xde9a, 0x0740, 0xda46, 0x0e1e, 0x6549, 0x38b1, 0x04bd, -0x2510, 0xf943, 0xad98, 0xc9a0, 0xca5c, 0xcaba, 0x22c9, 0x2b10, 0x01f0, 0x511a, -0x637c, 0xe409, 0xcfea, 0xff1b, 0xbae4, 0x9b34, 0xfafc, 0x154f, 0xfdb5, 0x2da1, -0x2e82, 0x1b20, 0x2472, 0xf46c, 0xbc6b, 0xd8c3, 0xf895, 0xcd65, 0xe4ee, 0x20c1, -0x1821, 0x08d6, 0x178c, 0x2a03, 0x07e8, 0xfe05, 0xe136, 0xbccf, 0xeb99, 0xdae7, -0xd3aa, 0x1d70, 0x3e94, 0x094b, 0x0900, 0x5434, 0x0901, 0xc4b1, 0xdc6e, 0xc832, -0xca7f, 0xe370, 0xfc55, 0x19fb, 0x5037, 0x3174, 0xfe1c, 0x3bdc, 0x1079, 0xb5a5, -0xbd97, 0xde91, 0xd7dc, 0xd8e9, 0x1ed3, 0x2fd7, 0x3373, 0x2e1c, 0x130d, 0x2861, -0x0ada, 0xcec0, 0xaf81, 0xd3f1, 0xe991, 0xcbf7, 0x0636, 0x408c, 0x3d14, 0x22da, -0x2e7f, 0x334f, 0xf091, 0xd23f, 0xb6f6, 0xbe39, 0xe0ea, 0xdac6, 0x0ab7, 0x52de, -0x5241, 0x1a28, 0x36a7, 0x3ee4, 0xdc10, 0xbfb1, 0xc06c, 0xc69f, 0xdf82, 0xf62e, -0x1f54, 0x4e25, 0x578d, 0x17a6, 0x26c4, 0x37fc, 0xe05d, 0xc099, 0xcd8c, 0xd886, -0xd8c3, 0xfcba, 0x2d83, 0x3fa6, 0x48bb, 0x1e77, 0x2a31, 0x31eb, 0xe98e, 0xbcf5, -0xc196, 0xe4e4, 0xdb34, 0xf4b5, 0x398d, 0x47e8, 0x3526, 0x2168, 0x3d9a, 0x20eb, -0xddcb, 0xbe09, 0xb85c, 0xe775, 0xe3f6, 0xedd1, 0x3731, 0x576a, 0x2d99, 0x1229, -0x4011, 0x0fb4, 0xc58a, 0xc2e0, 0xc163, 0xd8b3, 0xe485, 0xfbc4, 0x28a2, 0x4aba, -0x2b57, 0x06a4, 0x385f, 0x150e, 0xc2cd, 0xb65c, 0xcd33, 0xde60, 0xd4fe, 0x0096, -0x3507, 0x45bc, 0x2781, 0x142c, 0x33ba, 0x049c, 0xc775, 0xb39c, 0xc6ec, 0xe39b, -0xd75b, 0x0203, 0x3c34, 0x4589, 0x1c2f, 0x171d, 0x336b, 0xeff6, 0xbf31, 0xb8c6, -0xc21c, 0xde19, 0xe412, 0x0b3a, 0x399a, 0x4631, 0x1799, 0x116c, 0x3085, 0xeefe, -0xbcec, 0xb922, 0xcdc6, 0xe051, 0xe2d7, 0x10d0, 0x38e1, 0x3dfb, 0x1356, 0x1516, -0x2876, 0xe6f8, 0xbb6a, 0xb636, 0xd128, 0xdda0, 0xdf16, 0x11df, 0x387e, 0x338c, -0x0c5c, 0x211c, 0x2422, 0xdca8, 0xbf10, 0xb435, 0xcd32, 0xde18, 0xe25f, 0x144e, -0x3fe0, 0x3472, 0x0753, 0x2b41, 0x27e8, 0xd555, 0xc117, 0xbddb, 0xcb8c, 0xdaa8, -0xee16, 0x185e, 0x406a, 0x394d, 0x0e4c, 0x3224, 0x2283, 0xcee6, 0xb78f, 0xbe46, -0xd600, 0xd73a, 0xf882, 0x2db5, 0x4253, 0x3500, 0x1558, 0x2eee, 0x13ba, 0xd1b3, -0xb80a, 0xbd32, 0xe28d, 0xdf23, 0xfd44, 0x3980, 0x4ace, 0x2d3f, 0x18f4, 0x34ae, -0x039f, 0xcc97, 0xbb5e, 0xbe2a, 0xe6fa, 0xe555, 0x023b, 0x3de8, 0x4db4, 0x2192, -0x1578, 0x3a68, 0xfe29, 0xc84a, 0xbd0b, 0xc1ef, 0xe3a9, 0xe936, 0x0a3b, 0x3ab4, -0x505a, 0x260d, 0x1903, 0x39c0, 0xf9ac, 0xc53b, 0xbc41, 0xcc45, 0xe5fc, 0xe843, -0x15b8, 0x436d, 0x4dae, 0x24c5, 0x212b, 0x33f2, 0xf1b2, 0xc3a3, 0xb509, 0xcd57, -0xe8db, 0xeb7c, 0x1d1e, 0x4aef, 0x4a01, 0x1af5, 0x24c7, 0x2df1, 0xe4a5, 0xc1ae, -0xb8ad, 0xd2c8, 0xe887, 0xee7b, 0x21d0, 0x4d5f, 0x4806, 0x171f, 0x2854, 0x27e5, -0xdd26, 0xc075, 0xb9c1, 0xd6dc, 0xe94e, 0xf760, 0x2a99, 0x4d0c, 0x4405, 0x1751, -0x2a63, 0x1e7d, 0xd670, 0xba60, 0xb674, 0xde00, 0xe8fc, 0xf57e, 0x3121, 0x51b2, -0x3a66, 0x11d4, 0x29d9, 0x107f, 0xd01f, 0xbbd1, 0xb864, 0xe08f, 0xea2a, 0xfafd, -0x34de, 0x5038, 0x3061, 0x1294, 0x3316, 0x07d3, 0xc6ab, 0xbd82, 0xc0f2, 0xe421, -0xebe4, 0x0398, 0x39c6, 0x54a2, 0x2e8b, 0x0e55, 0x3308, 0x0648, 0xc5ad, 0xbd8e, -0xc53c, 0xdfb2, 0xe8b4, 0x0f4a, 0x3d14, 0x4caa, 0x2bf1, 0x15bf, 0x2e89, 0xf945, -0xc136, 0xb890, 0xcaeb, 0xe950, 0xe7bf, 0x115d, 0x451b, 0x4aa1, 0x20cd, 0x1684, -0x2a91, 0xf0a3, 0xc5b7, 0xb815, 0xc9bf, 0xee16, 0xea12, 0x117d, 0x470b, 0x42c7, -0x113f, 0x1b7c, 0x2b91, 0xe191, 0xc212, 0xbd24, 0xc84b, 0xe419, 0xe8c1, 0x104f, -0x440c, 0x4662, 0x1122, 0x20a6, 0x2d8e, 0xda8b, 0xbcf3, 0xc089, 0xcbf5, 0xde1c, -0xf3c0, 0x2135, 0x414e, 0x3fd9, 0x15e1, 0x26f5, 0x292e, 0xdc7e, 0xb937, 0xb924, -0xd769, 0xe06d, 0xee92, 0x2aa0, 0x48ae, 0x379d, 0x15e3, 0x2afa, 0x167d, 0xd370, -0xbfeb, 0xb8aa, 0xd8da, 0xe695, 0xf331, 0x2abe, 0x4918, 0x2e1c, 0x0f19, 0x32cf, -0x0f46, 0xc822, 0xbf6b, 0xbca2, 0xdadc, 0xe628, 0xf835, 0x2cf1, 0x4b03, 0x2c10, -0x0df9, 0x358e, 0x0a2c, 0xc678, 0xc06b, 0xc05f, 0xd849, 0xe170, 0x02e1, 0x3324, -0x4bd0, 0x2fc8, 0x13c8, 0x3314, 0x0029, 0xbf2e, 0xb455, 0xc1d3, 0xe027, 0xe480, -0x0a7f, 0x2c7a, 0x5506, 0x634d, 0x2129, 0xfadf, 0xe1b5, 0xb620, 0x8bd2, 0xbfae, -0x0a2a, 0x0d5d, 0x5240, 0x8109, 0x4e83, 0x15cf, 0xf367, 0xba2c, 0x9d5f, 0xcd2e, -0xbdc8, 0xf85d, 0x6f35, 0x4484, 0x29e8, 0x54f0, 0x2a04, 0xcc06, 0xd6d5, 0xe253, -0xc387, 0x09da, 0xff4a, 0xebc6, 0x4eb3, 0x2edb, 0xcfcc, 0x0b9a, 0x3d1b, 0xdc1f, -0xf4a1, 0x3fae, 0xeb9b, 0xe915, 0x13be, 0xcb86, 0xb940, 0x1643, 0x18ee, 0xf7d9, -0x4acf, 0x30df, 0xe6dc, 0x16fe, 0xf4d5, 0x9c55, 0xcc79, 0x10aa, 0xe384, 0x0496, -0x4c2c, 0x0504, 0xff4c, 0x2d7e, 0xd93d, 0xacb4, 0x00e4, 0xf5af, 0xc18e, 0x2289, -0x2a64, 0xe0a9, 0x2089, 0x21b8, 0xbaf3, 0xdd89, 0x1ea4, 0xd2e4, 0xe648, 0x37ea, -0xec35, 0xe993, 0x35d6, 0xed2e, 0xbadd, 0x15b4, 0x0a9d, 0xc841, 0x1a7c, 0x191c, -0xcaef, 0x0f4e, 0x1fff, 0xbfae, 0xe155, 0x3460, 0xeb55, 0xe0b6, 0x3048, 0xf2f2, -0xddca, 0x235a, 0xee7f, 0xb7cc, 0x15dd, 0x2097, 0xce52, 0x180f, 0x2dcf, 0xd499, -0x0857, 0x29b8, 0xc4c2, 0xd000, 0x28ff, 0xe652, 0xde94, 0x43c5, 0x05e6, 0xe425, -0x356a, 0xfee7, 0xb2c1, 0x0914, 0x1584, 0xbe7b, 0x0e5a, 0x368a, 0xe276, 0x1274, -0x3391, 0xd008, 0xd357, 0x26c2, 0xec06, 0xdd61, 0x39e2, 0x0868, 0xe6f9, 0x3207, -0x091c, 0xbc0e, 0x0582, 0x1f6d, 0xd133, 0x1cab, 0x4d57, 0xeb81, 0x02e3, 0x3712, -0xde41, 0xc71f, 0x212b, 0xfb67, 0xe7a1, 0x504a, 0x23ac, 0xedd8, 0x3eb6, 0x157e, -0xad36, 0xfc30, 0x2995, 0xcb86, 0x10c5, 0x529b, 0xf7a7, 0x15fe, 0x4546, 0xdc21, -0xcaba, 0x26eb, 0xe984, 0xd493, 0x4c8e, 0x16e6, 0xe56c, 0x463b, 0x1cf9, 0xb4a9, -0xfd71, 0x24ab, 0xc8a4, 0x09c8, 0x41c1, 0xe4ff, 0x0a9c, 0x3d28, 0xd226, 0xc16f, -0x2d0a, 0xf732, 0xcb2f, 0x42b2, 0x1d8f, 0xd5f3, 0x2c26, 0x1649, 0xa7c7, 0xed21, -0x286f, 0xc688, 0x04e2, 0x51dd, 0xe73b, 0x0013, 0x46f0, 0xd1e8, 0xab29, 0x260f, -0xf7aa, 0xbdee, 0x402d, 0x25c0, 0xda8b, 0x3989, 0x21df, 0xa95c, 0xf0ed, 0x290b, -0xbd3d, 0xfb44, 0x4eba, 0xe63a, 0xfecd, 0x4a1d, 0xe177, 0xbc6f, 0x2af3, 0xfdf2, -0xc4cf, 0x3b3d, 0x1ebb, 0xd4a0, 0x319d, 0x221e, 0xaf94, 0xf1b0, 0x3313, 0xcaf9, -0xf7f2, 0x4fd1, 0xeb5b, 0xf54e, 0x3faa, 0xd925, 0xb016, 0x2624, 0x012e, 0xc2f3, -0x3e16, 0x255d, 0xce61, 0x2b67, 0x1e8d, 0xa020, 0xe075, 0x2e2f, 0xc930, 0xf3f3, -0x4f96, 0xe6da, 0xef8a, 0x43fb, 0xdd85, 0xab7b, 0x2022, 0xfe5f, 0xba39, 0x346d, -0x27b4, 0xd20a, 0x2bfd, 0x2882, 0xae6f, 0xe3d3, 0x2b38, 0xc9c6, 0xef8e, 0x49d8, -0xeade, 0xf2c2, 0x46de, 0xe8ca, 0xb2fe, 0x208e, 0x0855, 0xc5c4, 0x338e, 0x29eb, -0xd645, 0x257e, 0x260c, 0xb7e2, 0xebef, 0x3365, 0xd6d8, 0xf811, 0x518d, 0xf457, -0xf134, 0x4558, 0xf41a, 0xb66e, 0x1a28, 0x0bd1, 0xcaa3, 0x31f9, 0x3045, 0xe17a, -0x2ad4, 0x2f2d, 0xbd2b, 0xe13e, 0x2cfe, 0xd3bd, 0xea52, 0x4fb4, 0x020e, 0xf40a, -0x4278, 0xf8f7, 0xb45e, 0x127c, 0x0af1, 0xc2d1, 0x2b03, 0x36f1, 0xdd10, 0x20d2, -0x35ec, 0xc074, 0xd7bd, 0x2eef, 0xd9db, 0xe543, 0x52c9, 0x05cf, 0xec53, 0x41bb, -0xfa65, 0xaf2a, 0x15c6, 0x1274, 0xbe0e, 0x2c97, 0x448e, 0xdd59, 0x1c74, 0x3817, -0xbb2b, 0xcf5b, 0x2f9a, 0xdc0c, 0xe4f0, 0x586d, 0x096c, 0xe913, 0x42c2, 0xf921, -0xa4d2, 0x0f94, 0x157d, 0xbee7, 0x2a97, 0x46c2, 0xe0bf, 0x1d38, 0x3786, 0xb9af, -0xcb2a, 0x2dd9, 0xd952, 0xdcbe, 0x5596, 0x0bab, 0xea4b, 0x4531, 0xffe2, 0xa78b, -0x0c61, 0x136f, 0xb532, 0x2148, 0x44ae, 0xd96e, 0x195c, 0x392c, 0xb898, 0xc8e9, -0x3388, 0xef92, 0xcd85, 0x0ef6, 0xf796, 0x13e1, 0x506a, 0x028d, 0xcd42, 0x14f5, -0xf58e, 0x9d81, 0xe29f, 0xfb3c, 0xcd66, 0x1bbf, 0x6302, 0x30d7, 0x14e4, 0x29bc, -0xdf14, 0xae5e, 0xce80, 0xabdc, 0xca7e, 0x3503, 0x1ee4, 0xf688, 0x5aac, 0x62a7, -0xd87d, 0xd4d5, 0xfc76, 0xb6dd, 0xa5b5, 0xf6e7, 0x0b99, 0x0665, 0x381b, 0x1f19, -0x1206, 0x2ed5, 0xebdd, 0xb56d, 0xde2e, 0xf87e, 0xce4d, 0xed47, 0x2439, 0x121c, -0x1266, 0x1483, 0x16c8, 0x10fd, 0x0650, 0xd754, 0xbaff, 0xf7e2, 0xda39, 0xcd45, -0x2986, 0x40dc, 0x0e53, 0x182a, 0x50a1, 0x01de, 0xcb6e, 0xdc62, 0xb781, 0xcfc4, -0xee54, 0xf542, 0x2240, 0x5981, 0x2c5e, 0xf8e5, 0x3e3b, 0x0d29, 0xaf98, 0xc3b7, -0xd787, 0xd3b1, 0xe2e2, 0x19c0, 0x28df, 0x3943, 0x2fe3, 0x081e, 0x2922, 0x0f78, -0xc962, 0xb6cc, 0xd979, 0xe6a6, 0xd121, 0x07cf, 0x3500, 0x3ad0, 0x2c2a, 0x2624, -0x2c95, 0xfb6f, 0xd7be, 0xb61f, 0xc05e, 0xe300, 0xd931, 0x0c0c, 0x4eae, 0x4878, -0x15a7, 0x2a43, 0x31b1, 0xdd24, 0xc4ea, 0xbda7, 0xc680, 0xe6be, 0xf0c6, 0x13f8, -0x45f0, 0x4cdc, 0x09ee, 0x185b, 0x3039, 0xdd40, 0xc562, 0xd19d, 0xd51e, 0xdcc7, -0xfbf1, 0x1f9a, 0x3311, 0x4108, 0x10a0, 0x1d6d, 0x368a, 0xebc0, 0xbacd, 0xc61c, -0xe6be, 0xd8c6, 0xecc7, 0x2b4f, 0x3ad6, 0x3234, 0x16aa, 0x312b, 0x2c20, 0xe5cf, -0xbf0c, 0xc2d3, 0xef02, 0xde96, 0xe42b, 0x3264, 0x4f6e, 0x2b87, 0x1502, 0x434e, -0x2169, 0xd824, 0xcd4a, 0xcbe5, 0xe67d, 0xe8bc, 0xf5fe, 0x2bd2, 0x4fbf, 0x2b2a, -0x05aa, 0x4482, 0x2857, 0xcb20, 0xc28b, 0xdaa2, 0xe5a8, 0xd616, 0xfaa0, 0x2fc3, -0x4640, 0x2ce5, 0x0f5a, 0x3ab7, 0x1944, 0xcda3, 0xbbcb, 0xcda1, 0xe22a, 0xd491, -0x0143, 0x3873, 0x3fbe, 0x22bb, 0x1736, 0x3ae6, 0x0407, 0xc3a8, 0xb9c4, 0xc437, -0xdc67, 0xd7ba, 0x00f1, 0x3801, 0x41a0, 0x1951, 0x11c6, 0x35de, 0xf7fb, 0xbeac, -0xb811, 0xc658, 0xdc21, 0xd8e4, 0x060e, 0x39e5, 0x4146, 0x14d2, 0x16dd, 0x36f4, -0xed6d, 0xba86, 0xb9b4, 0xcb20, 0xdd7e, 0xdfe1, 0x0f15, 0x3b82, 0x3e9b, 0x1158, -0x1b8a, 0x323f, 0xe8e2, 0xbdfb, 0xb835, 0xd09f, 0xddf2, 0xdd36, 0x148a, 0x40d3, -0x3e5f, 0x13a7, 0x2794, 0x2f4a, 0xde17, 0xbd25, 0xb6e3, 0xcb99, 0xdc56, 0xe6b9, -0x1ce9, 0x4836, 0x40a4, 0x1189, 0x2c70, 0x2966, 0xd436, 0xb74c, 0xb722, 0xd074, -0xdc0f, 0xf37b, 0x2f67, 0x4c6c, 0x3aa1, 0x13df, 0x2e82, 0x1863, 0xcd4e, 0xbc3f, -0xbce0, 0xd9c4, 0xe1be, 0xfb8d, 0x359d, 0x4c01, 0x3625, 0x17b8, 0x32ce, 0x1032, -0xcc89, 0xbc30, 0xbdba, 0xe2ec, 0xe81c, 0x005e, 0x3db9, 0x512c, 0x2c97, 0x17fc, -0x380c, 0x06f5, 0xcdb1, 0xc0d4, 0xbe6b, 0xe241, 0xead9, 0x05a4, 0x3a27, 0x518a, -0x2c10, 0x187d, 0x3809, 0xfd0c, 0xc4ac, 0xbff0, 0xc939, 0xe3de, 0xe907, 0x0ded, -0x3e36, 0x4e75, 0x2456, 0x1759, 0x31b3, 0xf547, 0xc449, 0xba76, 0xcb7c, 0xe629, -0xeb17, 0x17cc, 0x43ae, 0x4970, 0x1dfb, 0x1c5c, 0x2c1b, 0xe97c, 0xc40d, 0xbedd, -0xd492, 0xe90c, 0xea14, 0x18aa, 0x44ec, 0x43bf, 0x15aa, 0x2421, 0x2f68, 0xe453, -0xc2c4, 0xbef4, 0xd4c2, 0xe5c8, 0xf22d, 0x2430, 0x475e, 0x4461, 0x187f, 0x2916, -0x2d8a, 0xe382, 0xc1ee, 0xc2fa, 0xe144, 0xe6ea, 0xf400, 0x30a7, 0x50eb, 0x4265, -0x1b39, 0x2f67, 0x2260, 0xde78, 0xc61b, 0xc3e2, 0xe4c5, 0xea6e, 0xf9b7, 0x32e4, -0x4b24, 0x330a, 0x1529, 0x377b, 0x1ad4, 0xd298, 0xc471, 0xc39e, 0xdfcf, 0xe493, -0xf83e, 0x339f, 0x5169, 0x3178, 0x0fe4, 0x3634, 0x10e7, 0xcad8, 0xc188, 0xc0cb, -0xd97a, 0xe36b, 0x01cf, 0x3255, 0x49ca, 0x2dc9, 0x1019, 0x33a3, 0x059a, 0xbd42, -0xb33f, 0xbe30, 0xd9b3, 0xdc31, 0x0338, 0x37ee, 0x44ae, 0x224f, 0x0cf2, 0x27ab, -0xf5dc, 0xbd67, 0xaf02, 0xbe02, 0xde1c, 0xd738, 0x02b2, 0x3eba, 0x4074, 0x174f, -0x1829, 0x2c82, 0xe72a, 0xbf61, 0xb6b3, 0xbe85, 0xe2b1, 0xe25f, 0x05c1, 0x4181, -0x4a2b, 0x1512, 0x1a96, 0x326a, 0xe3c7, 0xbc8c, 0xb7af, 0xbd6f, 0xd849, 0xe90a, -0x150e, 0x3ed0, 0x469e, 0x176f, 0x1b23, 0x2908, 0xdb26, 0xb2f3, 0xb1f8, 0xca6a, -0xdb06, 0xe6a5, 0x1fb9, 0x4383, 0x3e5d, 0x1596, 0x1e94, 0x1cb0, 0xd8cf, 0xba95, -0xaec4, 0xcef4, 0xe43f, 0xeaf7, 0x2443, 0x4766, 0x336a, 0x0e32, 0x27a3, 0x1356, -0xcd5d, 0xc150, 0xb6ba, 0xd1d8, 0xe528, 0xee84, 0x2426, 0x4adf, 0x3667, 0x10cd, -0x310e, 0x1388, 0xcbbb, 0xc47e, 0xbd1f, 0xd491, 0xe98e, 0x0244, 0x3289, 0x53b3, -0x3eb9, 0x1566, 0x3290, 0x11e3, 0xcc07, 0xc004, 0xc4fd, 0xe223, 0xed0a, 0x10ae, -0x3ff0, 0x5037, 0x36e6, 0x164f, 0x29a1, 0x0284, 0xcdb8, 0xbdcd, 0xc637, 0xed96, -0xeeb1, 0x0cd0, 0x4050, 0x49bb, 0x239a, 0x1780, 0x2eab, 0xf6b6, 0xce3d, 0xbc38, -0xc8a0, 0x00e6, 0xefad, 0x0021, 0x33f9, 0x3ae3, 0x3cd3, 0x3fb1, 0x1838, 0xd924, -0xd541, 0xaecf, 0xa5de, 0xf7be, 0xfc4c, 0x140b, 0x790a, 0x7937, 0x1616, 0xfecc, -0xe9f4, 0x93de, 0xa330, 0xc0f0, 0xcf7e, 0x2cbc, 0x6286, 0x4ccf, 0x462d, 0x450f, -0xe74f, 0xa99c, 0xd6b1, 0xc669, 0xba55, 0xfefe, 0x25a9, 0x3149, 0x43ec, 0x1f26, -0xede2, 0x0adf, 0xff6f, 0xbdad, 0xf121, 0x2c23, 0xf18d, 0xf0cc, 0x2718, 0xe6c1, -0xbbba, 0x1d92, 0x14c7, 0xde85, 0x3e57, 0x31f4, 0xe295, 0x0f8d, 0xf992, 0xa267, -0xd117, 0x1bec, 0xe179, 0x07c9, 0x5af9, 0x03a7, 0x02e9, 0x3014, 0xd04d, 0xa794, -0xfb7e, 0xf282, 0xc715, 0x36b9, 0x3764, 0xea25, 0x307a, 0x1cb0, 0xb2ec, 0xd406, -0x117c, 0xd2a9, 0xea54, 0x43e9, 0xfc21, 0xfaa3, 0x3fc1, 0xeafd, 0xb060, 0x0b4c, -0x0ff9, 0xc461, 0x1954, 0x3040, 0xd984, 0x1601, 0x2825, 0xbc3f, 0xdbce, 0x3875, -0xe248, 0xdd2e, 0x4e02, 0xfd2c, 0xd91c, 0x3749, 0xf658, 0xaa69, 0x13e1, 0x2498, -0xcc14, 0x21ba, 0x3a26, 0xdb15, 0x1623, 0x2c3d, 0xba40, 0xcd2e, 0x2cf5, 0xe4ae, -0xe186, 0x52e0, 0x0d31, 0xe5cf, 0x3778, 0xffc1, 0xac3d, 0xfddf, 0x1bac, 0xc8ec, -0x14d4, 0x4029, 0xe79d, 0x15d6, 0x3792, 0xcc34, 0xca86, 0x3225, 0xf50a, 0xcf32, -0x3e28, 0x12b9, 0xe181, 0x364b, 0x1002, 0xb4c9, 0x031c, 0x26d6, 0xd0a9, 0x1e6a, -0x443a, 0xd350, 0x08d3, 0x41ed, 0xc7a2, 0xb99c, 0x2fe3, 0xff21, 0xdc75, 0x4839, -0x19bb, 0xe84c, 0x32f7, 0x01b7, 0xaddf, 0xfef1, 0x1e1c, 0xcae8, 0x16e4, 0x4bda, -0xecbb, 0x0caf, 0x3f24, 0xe0dc, 0xc4bc, 0x18da, 0xf67e, 0xdd77, 0x3908, 0x10f4, -0xed5b, 0x4369, 0x1b8d, 0xb980, 0x0190, 0x297a, 0xc6e3, 0x009e, 0x4462, 0xea33, -0x0155, 0x3cba, 0xe27f, 0xcbef, 0x2bda, 0xf9a0, 0xd4bc, 0x439f, 0x150b, 0xd559, -0x344d, 0x1a5b, 0xaf57, 0xf935, 0x2de0, 0xcf9a, 0x0979, 0x49a9, 0xea95, 0x051a, -0x3cdb, 0xd6df, 0xbc25, 0x2174, 0xf28b, 0xc89b, 0x4222, 0x2645, 0xdfc1, 0x315e, -0x201e, 0xb2fc, 0xe3d4, 0x181b, 0xc442, 0xfd80, 0x4a43, 0xed31, 0xff1f, 0x4381, -0xdf06, 0xb4dc, 0x1fd7, 0xf6dc, 0xbffe, 0x3a30, 0x24f3, 0xd6d6, 0x297b, 0x1c5d, -0xaf37, 0xedb8, 0x286b, 0xc61d, 0xfe95, 0x515b, 0xe559, 0xf3c9, 0x4090, 0xd830, -0xae85, 0x1db8, 0xf7ec, 0xc607, 0x3f9f, 0x264d, 0xd94a, 0x2a8a, 0x1485, 0xa002, -0xdeaf, 0x235b, 0xc381, 0xfa49, 0x5796, 0xefa6, 0xf6b9, 0x4056, 0xd904, 0xa813, -0x17bf, 0xf931, 0xbf26, 0x3e31, 0x2c1d, 0xd50a, 0x2d55, 0x22b9, 0xa846, 0xdf9f, -0x28c5, 0xc598, 0xef6b, 0x51e5, 0xf17d, 0xfa6e, 0x46ce, 0xddcb, 0xac63, 0x1bcf, -0xff42, 0xc08e, 0x3b8a, 0x30ab, 0xd540, 0x2b2a, 0x2b14, 0xb01e, 0xe003, 0x2eb4, -0xd207, 0xf705, 0x5a04, 0xf5f1, 0xf4f2, 0x49c1, 0xe735, 0xac7d, 0x1ff2, 0x0bc1, -0xc150, 0x3a15, 0x3cd0, 0xdc44, 0x29ee, 0x3079, 0xb504, 0xdcbb, 0x2cd7, 0xcfca, -0xeed8, 0x5c84, 0xfe19, 0xf346, 0x4ec0, 0xf24e, 0xa9a2, 0x1b01, 0x120e, 0xbf61, -0x31bd, 0x3ed0, 0xdca8, 0x27d7, 0x3553, 0xb79f, 0xddc0, 0x376a, 0xd743, 0xea45, -0x592a, 0xf9f4, 0xe94c, 0x4a1d, 0xf552, 0xa9a1, 0x19d2, 0x14c6, 0xbc9b, 0x2b11, -0x3913, 0xd2dc, 0x1f02, 0x340a, 0xb6b6, 0xd426, 0x33f8, 0xd9a8, 0xdc7f, 0x5123, -0xfd3a, 0xde46, 0x40ce, 0xfa10, 0xa997, 0x14a8, 0x1bb4, 0xc08d, 0x2376, 0x3d24, -0xd503, 0x166b, 0x35f1, 0xbc86, 0xd0fa, 0x36e8, 0xf1a1, 0xd628, 0x16ed, 0xf145, -0x0d1a, 0x55e9, 0x09b3, 0xd0ea, 0x189e, 0xfae5, 0xa1d9, 0xe581, 0xfd1f, 0xd241, -0x1ffa, 0x5b9f, 0x2d05, 0x1f94, 0x316b, 0xe330, 0xba22, 0xd9ab, 0xb354, 0xcfaa, -0x3059, 0x1e34, 0xfcfc, 0x565e, 0x623a, 0xe738, 0xe027, 0xfe57, 0xc099, 0xb327, -0xf470, 0x0c3c, 0x0e38, 0x38fd, 0x1a11, 0x0892, 0x3339, 0xf5c3, 0xbab1, 0xe297, -0xf843, 0xce95, 0xe620, 0x1c2a, 0x09ee, 0x1283, 0x1b02, 0x1187, 0x188b, 0x0e86, -0xd87e, 0xb652, 0xeca9, 0xdb2d, 0xc7dd, 0x1fe5, 0x379e, 0x0fd2, 0x1c45, 0x4c2e, -0x1316, 0xd85d, 0xdfc8, 0xb6df, 0xc87f, 0xeb35, 0xe54a, 0x1628, 0x57e4, 0x3419, -0xff6c, 0x4156, 0x1c74, 0xb5b4, 0xca06, 0xd49b, 0xc6db, 0xdff3, 0x0f42, 0x1c9b, -0x38c2, 0x3cc3, 0x059b, 0x2a27, 0x2699, 0xce85, 0xb4f9, 0xd393, 0xdea9, 0xcdb3, -0x03e7, 0x3281, 0x3d54, 0x3c61, 0x2583, 0x2ce2, 0x0c86, 0xdb4d, 0xb3bf, 0xbb9c, -0xe353, 0xd3fa, 0x034f, 0x4cdb, 0x4ab4, 0x21fa, 0x2b59, 0x391f, 0xeb27, 0xc6cb, -0xb8e4, 0xba9a, 0xe811, 0xec0e, 0x0c31, 0x4bdb, 0x5772, 0x163d, 0x1a19, 0x3f4d, -0xe9e8, 0xc3a2, 0xce2a, 0xc788, 0xd9f4, 0xf83e, 0x1bc6, 0x3ce8, 0x5548, 0x1db0, -0x1a55, 0x4521, 0xf1e2, 0xb3ab, 0xc2fd, 0xdbe1, 0xd800, 0xed52, 0x2c30, 0x402d, -0x430b, 0x23ff, 0x260b, 0x2f76, 0xea68, 0xb3d7, 0xb28e, 0xe14a, 0xdd06, 0xe066, -0x33b3, 0x51ec, 0x33b4, 0x1667, 0x3052, 0x1b77, 0xd41e, 0xc1bd, 0xb6c4, 0xd7a4, -0xeae0, 0xe9c9, 0x2119, 0x50ee, 0x3348, 0x0504, 0x35a7, 0x2224, 0xc555, 0xbad4, -0xc362, 0xd0c4, 0xdade, 0xf6c3, 0x247a, 0x463c, 0x3726, 0x098e, 0x2ae9, 0x1a2f, -0xc9d7, 0xb0fe, 0xc012, 0xdaac, 0xd5e1, 0xf9b0, 0x351f, 0x47da, 0x2cc6, 0x10fb, -0x2d9f, 0x068e, 0xc5e3, 0xb7fe, 0xc297, 0xe2b0, 0xe422, 0x01db, 0x36ef, 0x48cb, -0x23b7, 0x10de, 0x3507, 0x0307, 0xc7bf, 0xbff3, 0xc77c, 0xe128, 0xe56e, 0x0857, -0x3924, 0x4aaf, 0x2249, 0x103e, 0x31eb, 0xfa7b, 0xc42a, 0xbff2, 0xca69, 0xdf50, -0xe715, 0x1070, 0x37d6, 0x4303, 0x1eac, 0x16ba, 0x3184, 0xf739, 0xc4f5, 0xba46, -0xcd7e, 0xe4d0, 0xe592, 0x10ee, 0x3d09, 0x4044, 0x17ce, 0x2016, 0x2f3f, 0xe9e5, -0xc633, 0xbad5, 0xc6f9, 0xdeac, 0xe624, 0x121c, 0x413b, 0x4301, 0x1783, 0x29fd, -0x2ba5, 0xdaa4, 0xbe2e, 0xbb8e, 0xcbc8, 0xdde4, 0xf1e9, 0x21db, 0x439b, 0x4190, -0x172e, 0x27a0, 0x21f8, 0xd636, 0xbad8, 0xb8bf, 0xd096, 0xdf64, 0xf8a8, 0x2b93, -0x443b, 0x3b96, 0x185e, 0x26da, 0x10a6, 0xd167, 0xbdb5, 0xb977, 0xdb3a, 0xe708, -0xfa86, 0x2f52, 0x4806, 0x3265, 0x17a3, 0x31bc, 0x0e05, 0xd510, 0xc461, 0xbd66, -0xe192, 0xed77, 0x0119, 0x32ba, 0x50ed, 0x31ea, 0x16d3, 0x36ec, 0x0732, 0xcfc7, -0xc460, 0xc184, 0xdf83, 0xea58, 0x0626, 0x3550, 0x5246, 0x2def, 0x16cd, 0x3427, -0xfd3a, 0xc953, 0xbd3c, 0xc544, 0xe4ec, 0xf153, 0x166b, 0x3e10, 0x4e6d, 0x26d4, -0x1968, 0x2f16, 0xf428, 0xcae0, 0xbedd, 0xccf8, 0xe956, 0xefa2, 0x1950, 0x4297, -0x4a75, 0x1de5, 0x1955, 0x29ba, 0xeb91, 0xc61c, 0xbb12, 0xce33, 0xe7ce, 0xefe6, -0x18c6, 0x3e32, 0x43c5, 0x1922, 0x1cc3, 0x20fd, 0xde2b, 0xbf55, 0xb70b, 0xd16f, -0xe788, 0xef8e, 0x20c4, 0x4654, 0x3d93, 0x11d7, 0x1d2e, 0x15c5, 0xd810, 0xc122, -0xb7df, 0xd5bd, 0xe934, 0xf5a0, 0x24cd, 0x4321, 0x356b, 0x10be, 0x2522, 0x0e25, -0xcdbf, 0xc120, 0xbd1c, 0xd9ef, 0xe950, 0xf8ec, 0x2940, 0x4a04, 0x31e9, 0x09bb, -0x2935, 0x0de2, 0xcd32, 0xc3e0, 0xc0ad, 0xd96f, 0xebee, 0x0617, 0x2f65, 0x4a9d, -0x32b8, 0x104d, 0x2b20, 0x042c, 0xc6fe, 0xc0fc, 0xccb1, 0xe4c6, 0xe7e5, 0x0a2f, -0x3646, 0x44a9, 0x27ed, 0x0f84, 0x2482, 0xf9ba, 0xc9c9, 0xbc46, 0xc6f1, 0xe7c9, -0xe7b4, 0x0935, 0x38ab, 0x3dfb, 0x17f4, 0x1202, 0x2366, 0xe8cf, 0xc894, 0xc02b, -0xc4e7, 0xe682, 0xe9b4, 0x07dc, 0x39bc, 0x4323, 0x1255, 0x11a3, 0x2383, 0xde38, -0xc201, 0xc28c, 0xc797, 0xe30e, 0xf319, 0x11aa, 0x3329, 0x3e07, 0x11d9, 0x1242, -0x2173, 0xdd6c, 0xbc12, 0xbfc4, 0xd3cc, 0xe301, 0xf14f, 0x1ed7, 0x3c0b, 0x3bbe, -0x150a, 0x16d9, 0x1504, 0xded6, 0xc844, 0xc0c3, 0xdedd, 0xf0d7, 0xf666, 0x25d8, -0x4424, 0x33d0, 0x130e, 0x2876, 0x1370, 0xd7a6, 0xcf17, 0xc604, 0xdfb9, 0xf3d2, -0xfde9, 0x29bc, 0x4a3a, 0x328f, 0x0b59, 0x293f, 0x0f84, 0xd398, 0xd04b, 0xc938, -0xdc96, 0xf077, 0x05ff, 0x2a1d, 0x46e9, 0x33e3, 0x0e06, 0x27af, 0x084b, 0xcbee, -0xc5ed, 0xce50, 0xe4ec, 0xee95, 0x0fc4, 0x3481, 0x4291, 0x2ab8, 0x0ee7, 0x217a, -0xfbca, 0xd072, 0xc584, 0xcdc2, 0xeeae, 0xf284, 0x0beb, 0x2a91, 0x499c, 0x4ab9, -0x1751, 0xfb4e, 0xdff4, 0xc548, 0xaa11, 0xcb25, 0x079b, 0x0c5f, 0x3e98, 0x6247, -0x3e07, 0x0f43, 0xf0e4, 0xca5f, 0xb34f, 0xd401, 0xc893, 0xf3d1, 0x4c26, 0x308b, -0x22b3, 0x41c0, 0x2279, 0xdc8b, 0xdff8, 0xe310, 0xcceb, 0x027f, 0xf615, 0xee06, -0x3db0, 0x2392, 0xe01d, 0x1366, 0x3415, 0xe34c, 0xf6fc, 0x29c3, 0xe8c4, 0xee7a, -0x0fa2, 0xddee, 0xd84b, 0x1d1b, 0x1722, 0xff58, 0x3ac2, 0x1f74, 0xf03f, 0x1870, -0xfcd6, 0xbff1, 0xe68f, 0x1180, 0xed1f, 0x0a12, 0x3895, 0x07ec, 0x0a31, 0x24b3, -0xe648, 0xc9fc, 0x0734, 0xf757, 0xd412, 0x1f4f, 0x1e8b, 0xee37, 0x1f0e, 0x1be3, -0xd43a, 0xefa3, 0x194b, 0xddce, 0xf237, 0x287d, 0xeedf, 0xf88e, 0x2f7f, 0xf704, -0xd874, 0x1c88, 0x0972, 0xd8d5, 0x1702, 0x0f28, 0xe05e, 0x15f4, 0x1a7c, 0xd9ff, -0xf6eb, 0x29b0, 0xf002, 0xf068, 0x23d5, 0xf4b8, 0xf046, 0x1d23, 0xf157, 0xd110, -0x1519, 0x14cc, 0xdede, 0x142d, 0x1a12, 0xe515, 0x0b1c, 0x1636, 0xd4d5, 0xe629, -0x1cf8, 0xe7c6, 0xea58, 0x2b1f, 0xfc3e, 0xeeea, 0x236a, 0xfb53, 0xcfca, 0x089d, -0x0488, 0xd160, 0x0a55, 0x141d, 0xe5cd, 0x107d, 0x186d, 0xd8c8, 0xeaf7, 0x1870, -0xe826, 0xe955, 0x18d7, 0xf4b0, 0xf2f4, 0x198f, 0xf637, 0xd898, 0x0a60, 0x099d, -0xe121, 0x112c, 0x19f0, 0xe9f0, 0x0257, 0x16f3, 0xea68, 0xe825, 0x11db, 0xf73d, -0xf784, 0x22c2, 0x01a7, 0xfa94, 0x2329, 0xff98, 0xd3ac, 0x066b, 0x0f20, 0xe092, -0x0cc3, 0x1ddc, 0xf6f5, 0x1320, 0x1de5, 0xe877, 0xf111, 0x167b, 0xeabe, 0xf59b, -0x2682, 0xf99e, 0xf763, 0x2689, 0x0359, 0xdfbd, 0x0e98, 0x0da2, 0xe78d, 0x0e20, -0x0ddb, 0xeff0, 0x11e2, 0x1312, 0xe459, 0xf4b0, 0x1704, 0xee92, 0xf4ab, 0x1ec2, -0xfc20, 0xf450, 0x169f, 0xfcad, 0xdbac, 0x0468, 0x089e, 0xe794, 0x0e53, 0x118e, -0xefe9, 0x0e4a, 0x169a, 0xe1da, 0xebc0, 0x15eb, 0xefcb, 0xf2ee, 0x1beb, 0xfce8, -0xfa9c, 0x1c17, 0xffdb, 0xe6b1, 0x0fc5, 0x065c, 0xe6be, 0x10a6, 0x0c31, 0xefee, -0x1306, 0x13f9, 0xe94c, 0xfe45, 0x19f0, 0xf32a, 0xfe85, 0x1905, 0xf62a, 0xfd6b, -0x1747, 0xf729, 0xeaea, 0x11d1, 0x0593, 0xf301, 0x1786, 0x0b5f, 0xf124, 0x0940, -0x0668, 0xe6ec, 0xfe96, 0x1506, 0xf474, 0x04f3, 0x1923, 0xf708, 0xfe00, 0x1197, -0xf0a5, 0xe784, 0x0dcb, 0xff73, 0xf084, 0x1476, 0x091e, 0xf640, 0x0af0, 0x0286, -0xe773, 0xfd6b, 0x0efa, 0xf175, 0xf89a, 0x07af, 0xf9a6, 0x0516, 0x128d, 0x00ff, -0xfb4e, 0x0ed0, 0xfc70, 0xe60e, 0xf53d, 0xf46c, 0xf494, 0x0bff, 0x1551, 0x06e1, -0x0c9f, 0x0f55, 0xefab, 0xed70, 0xf731, 0xf0fe, 0xfd13, 0x0d56, 0x068f, 0x0174, -0x0fee, 0xffe4, 0xea15, 0xfb9a, 0xffd4, 0xf166, 0xfe33, 0x0e6f, 0xfeb8, 0x0068, -0x0cad, 0xf543, 0xef47, 0x0118, 0xf5be, 0xeb4f, 0x04dc, 0x09b3, 0xf586, 0x0081, -0x05bb, 0xf123, 0xf60d, 0x03d9, 0xf8d9, 0xfe28, 0x0dac, 0xfb79, 0xf27c, 0xfe7f, -0xf2c5, 0xeeb0, 0x04d2, 0x030d, 0xfb07, 0x0e9e, 0x0d11, 0xf686, 0xfc94, 0xffbf, -0xed59, 0xf589, 0x05ab, 0xfa48, 0xffa7, 0x10c1, 0x014b, 0xfa25, 0x09af, 0xfdfc, -0xf0ef, 0x03b9, 0x0400, 0xf635, 0x063f, 0x0b0b, 0xf9ca, 0x03dd, 0x0d8d, 0xfce6, -0x00df, 0x0f4b, 0x024e, 0xff59, 0x0dc5, 0x0159, 0xf654, 0x067a, 0x0580, 0xfe5c, -0x0e74, 0x0f97, 0x0220, 0x099e, 0x09f1, 0xf6cc, 0xfa19, 0x04a0, 0xfb69, 0x0199, -0x10a2, 0x0726, 0x02f2, 0x0c0d, 0x00c5, 0xf7e4, 0x056d, 0x020c, 0xf921, 0x0880, -0x0a05, 0xfc9b, 0x05b1, 0x0ba8, 0xfd73, 0x0126, 0x0afa, 0xfedb, 0xfe8e, 0x0754, -0xff08, 0x010e, 0x0a12, 0xff2a, 0xfc7a, 0x0965, 0x0306, 0xfbf9, 0x0735, 0x05c2, -0xfdbe, 0x020b, 0x01d4, 0xfd23, 0x035d, 0x0690, 0x0006, 0x0536, 0x0b42, 0x02fd, -0x0048, 0x04d9, 0xffac, 0xfb96, 0x0522, 0x06ea, 0x01a3, 0x0640, 0x0721, 0x02e7, -0x04ad, 0x0494, 0xfe70, 0x009e, 0x0380, 0xfafb, 0xfecf, 0x0890, 0x0224, 0xffd6, -0x0613, 0x005f, 0xfada, 0x0129, 0xfdf3, 0xf949, 0x014d, 0x006d, 0xfa91, 0x0029, -0x002c, 0xf7d8, 0xff02, 0x0615, 0xfbc4, 0xfc2b, 0x035b, 0xfb89, 0xf601, 0xfa4f, -0xfabf, 0xfbd9, 0x00a3, 0xfe0a, 0xfbd4, 0x0009, 0xfe8b, 0xf866, 0xf96c, 0xfcbd, -0xf750, 0xf6d5, 0xfee5, 0xfea6, 0xfc47, 0x00a5, 0x013f, 0xfaa4, 0xf910, 0xf98a, -0xf6f0, 0xfa55, 0xfc01, 0xfac1, 0xff53, 0x001d, 0xfac1, 0xfb9d, 0xfef2, 0xf9c9, -0xf9ce, 0xff10, 0xfabf, 0xfab8, 0xfe59, 0xfa05, 0xfa90, 0x00a1, 0xff54, 0xfdbe, -0x0243, 0xff6b, 0xfac6, 0xfde2, 0xfc78, 0xf927, 0xfc12, 0xfe2f, 0xfc8a, 0xfe15, -0x00a9, 0xff55, 0x0011, 0x0049, 0xfbfb, 0xfa18, 0xfd23, 0xfbc7, 0xf7ac, 0xfd25, -0x019e, 0x0030, 0x02a9, 0x0344, 0x0053, 0x0036, 0x003f, 0xfc42, 0xfd77, 0x047f, -0x022f, 0xffd5, 0x0747, 0x065b, 0xffcd, 0x058c, 0x0801, 0x00b8, 0x029f, 0x057c, -0x0228, 0x02a9, 0x03ae, 0x0336, 0x052e, 0x06d3, 0x0355, 0x0367, 0x097b, 0x0767, -0x040b, 0x0708, 0x062b, 0x00f3, 0x010e, 0x0624, 0x0661, 0x0641, 0x0870, 0x08cf, -0x095c, 0x0672, 0x0114, 0x0064, 0x0450, 0x0372, 0x00f0, 0x074e, 0x0927, 0x0375, -0x04d0, 0x06fa, 0x0278, 0x00e0, 0x023e, 0x0105, 0x0392, 0x0478, 0x01dc, 0x0633, -0x06ad, 0x0137, 0x035b, 0x071e, 0x039a, 0x00b9, 0x0238, 0x0257, 0x03b3, 0x032c, -0x00b5, 0x062b, 0x0920, 0x0425, 0x05d7, 0x09b0, 0x0457, 0x011e, 0x02cb, 0x0112, -0x01e7, 0x03e0, 0x04a0, 0x09f0, 0x0993, 0x025d, 0x03ab, 0x06f0, 0x01ce, 0xffa9, -0x0343, 0x03bf, 0x02bc, 0x0192, 0x0175, 0x03f8, 0x025f, 0xfe13, 0xffaf, 0x037b, -0x017f, 0xff0d, 0x010c, 0x01cc, 0xff47, 0xfda7, 0xff79, 0xffc8, 0xfd08, 0xfdcd, -0x01e5, 0x03c0, 0x00fa, 0xfdf8, 0xfdb9, 0xff87, 0xff9b, 0xfbe2, 0xfeae, 0x0380, -0x0014, 0xfe6f, 0x0115, 0x0048, 0xfe1d, 0xff3b, 0xff7b, 0xff0a, 0x0012, 0xfed0, -0xfed6, 0xffe0, 0xfcbf, 0xfbdb, 0x005d, 0xffb1, 0xf9ae, 0xfb2b, 0x0004, 0xff44, -0xfc6c, 0xfb62, 0xfdf8, 0xff0d, 0xfbbb, 0xfae7, 0xfd8a, 0xfd70, 0xfaee, 0xfbe3, -0xfdf3, 0xfc89, 0xfa9a, 0xfb6e, 0xfd82, 0xfcb8, 0xfaa3, 0xfc2a, 0xfeb9, 0xfc5c, -0xf8a1, 0xfb85, 0x000c, 0xfee7, 0xfbc5, 0xfc1f, 0xfee8, 0xfdac, 0xfae0, 0xfc8b, -0xfef5, 0xfebd, 0xfdf5, 0xfec1, 0x0023, 0xff0f, 0xfc4a, 0xfdd7, 0x00f5, 0xfea6, -0xfd0c, 0x002f, 0x0087, 0xfc77, 0xfc93, 0x0024, 0x013b, 0x00dc, 0xfdb0, 0xfcbd, -0x0060, 0xfed8, 0xfc65, 0xfff5, 0x0160, 0xfef8, 0x0045, 0x0243, 0x0065, 0xfff6, -0x0124, 0x00f9, 0x00f5, 0x00ae, 0xff8e, 0x00df, 0x02e1, 0xffa3, 0xfea2, 0x0390, -0x035d, 0xff35, 0xff1f, 0x009b, 0x0048, 0xffed, 0x0005, 0xfff7, 0x0019, 0xff23, -0xfe36, 0xff91, 0x0112, 0x0088, 0xfff6, 0x00fa, 0x00a3, 0xfe18, 0xfe82, 0x01b6, -0x00ae, 0xfead, 0x018f, 0x02ef, 0x0126, 0x002b, 0xffb6, 0x01e3, 0x0382, 0x00b0, -0x00bd, 0x0402, 0x024e, 0x0002, 0x02e3, 0x0327, 0x00b6, 0x01cf, 0x02ca, 0x0250, -0x0280, 0x01bd, 0x021d, 0x04f6, 0x0340, 0xfee9, 0x0095, 0x0305, 0x00bc, 0x012c, -0x04fc, 0x0469, 0x0257, 0x027e, 0x0242, 0x01ad, 0x014b, 0x00c3, 0x0147, 0x037a, -0x036a, 0x00b5, 0x0068, 0x0121, 0xff9a, 0xfec8, 0x0143, 0x0151, 0xfd18, 0xfced, -0xffbd, 0x0066, 0x007d, 0xff3b, 0xfdd4, 0xfe9a, 0xff0d, 0xfdc1, 0xfe33, 0xffd7, -0xfd45, 0xfbe9, 0xffc6, 0xff2d, 0xfb3e, 0xfd69, 0x0057, 0xff59, 0xffc4, 0x00ad, -0x0017, 0xffc4, 0xfde4, 0xfc22, 0xfe08, 0x004b, 0xffd4, 0x0028, 0x0265, 0x00fa, -0xfdc5, 0xfe0b, 0xff0e, 0xfe78, 0xfdca, 0xfe74, 0xff9b, 0x005c, 0x0106, 0x00eb, -0x015c, 0x01a8, 0xff52, 0xfee2, 0x00ee, 0xffbe, 0xfec8, 0x010d, 0x01ab, 0x00d9, -0x0106, 0x010d, 0x00e8, 0x0118, 0x00e8, 0x012b, 0x02b4, 0x0211, 0xff7a, 0xff8e, -0x0115, 0x0100, 0x00de, 0x02dd, 0x0379, 0x00f9, 0xffd1, 0x0018, 0xfff6, 0xfffa, -0x000c, 0xfff1, 0x0004, 0x0012, 0xffc4, 0x009c, 0x010c, 0xfffb, 0xffe4, 0x001a, -0xfff2, 0xfffc, 0x0012, 0xffe2, 0x0015, 0x015a, 0x0257, 0x01c9, 0x004d, 0xfff9, -0xffdd, 0x0059, 0x019b, 0x004f, 0x0095, 0x030f, 0x0191, 0xff96, 0x015d, 0x0296, -0x01ee, 0x0205, 0x01f5, 0x0220, 0x0303, 0x0276, 0x01b6, 0x02a2, 0x02f4, 0x01f9, -0x0209, 0x01e3, 0x0073, 0x00ad, 0x0219, 0x0205, 0x00f2, 0x000a, 0xffc0, 0x00c9, -0x0105, 0xffac, 0x007c, 0x0198, 0x0051, 0xffcf, 0x001b, 0xfff4, 0x0001, 0x0002, -0xfffe, 0xfffb, 0x0005, 0xfffd, 0xfff3, 0x0025, 0xff14, 0xfe3b, 0xffa5, 0xfffc, -0xfee0, 0xff17, 0xffe8, 0x0010, 0xffec, 0x0017, 0xffe5, 0xff21, 0xfef3, 0xfef8, -0xff4b, 0x002c, 0xffc0, 0xfee9, 0xffc3, 0x001f, 0xff65, 0xffbc, 0x001d, 0xfff2, -000000, 0x0003, 0xfffc, 0xfffc, 0x000a, 0xffec, 0x0015, 0x0095, 0x002c, 0xffc9, -0x006a, 0x0078, 0xfff2, 0xfffb, 0x0006, 0xfffa, 0x0002, 0xfffd, 0x0004, 0xfff4, -0x0010, 0xfff2, 0xfff7, 0x003a, 0xfeb1, 0xfe3a, 0xfff4, 0x0020, 0xffde, 0x0015, -0xfff6, 000000, 0x0002, 0xfffc, 0x0001, 0xfffe, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, -000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 0x82a0, 0x8dc7, 0x607e, 0xc0c6, 0x2bd3, +0x8df5, 0x828d, 0x0716, 0xaca6, 0xcefe, 0x41df, 0xd185, 0x8aa3, 0x8b1a, 0x789b, +0x82a2, 0x804f, 0x7ea8, 0x8113, 0x7f7d, 0x7fff, 0x801e, 0x801d, 0x7f32, 0x82ec, +0x83e1, 0x7fb0, 0x7f71, 0x80de, 0x7f3d, 0x7fe3, 0x81b4, 0x7c37, 0x8553, 0x7b29, +0x7ede, 0xde6e, 0x0e64, 0xf9f4, 0x015e, 0x00f6, 0xfe56, 0x0019, 0xf8bb, 0xfd90, +0x08cc, 0x05ab, 0xfd0b, 0xf9c6, 0xf875, 0xf789, 0xfc74, 0x032e, 0xf97a, 0xf4bb, +0x0212, 0x006e, 0x03df, 0x17c5, 0x0f50, 0xfb23, 0xfdbd, 0xf7cf, 0xdf5b, 0xe2d3, +0xf111, 0xef27, 0x11c5, 0x33a4, 0x168d, 0x0145, 0x0494, 0xe85c, 0xdac3, 0xf0c7, +0xeea8, 0x0023, 0x3036, 0x252a, 0xffb7, 0x01d1, 0xf637, 0xd506, 0xe8eb, 0xf5ff, +0xe5ca, 0x1ec5, 0x3fa4, 0x0e3c, 0x1570, 0x2b37, 0xea23, 0xca43, 0xf392, 0xdf0e, +0xde40, 0x2e7c, 0x276f, 0x035c, 0x2ccc, 0x1acf, 0xcf4a, 0xeb5b, 0x0fb1, 0xe01a, +0x0c69, 0x3a97, 0xfb54, 0x0751, 0x20f1, 0xdce9, 0xd2a2, 0x19b3, 0x096f, 0xf1b6, +0x38de, 0x1f70, 0xf32b, 0x2569, 0x0650, 0xc3d7, 0xf1ad, 0x1aa5, 0xe87e, 0x0c7f, +0x406d, 0xffaa, 0x0ba8, 0x2e02, 0xe545, 0xcebb, 0x10fc, 0x0102, 0xded8, 0x2b7c, +0x2053, 0xec6f, 0x266e, 0x1770, 0xcb63, 0xf18e, 0x2015, 0xe6ef, 0xfe64, 0x3700, +0xf628, 0xfb00, 0x2e43, 0xee48, 0xcd4a, 0x1867, 0x0ec3, 0xdd77, 0x2291, 0x1c80, +0xe325, 0x19b7, 0x1719, 0xcb88, 0xeded, 0x258c, 0xe7e8, 0xf0c6, 0x2d21, 0xf3d5, +0xf494, 0x290d, 0xef7b, 0xca28, 0x12c8, 0x0d8d, 0xd5f3, 0x171d, 0x1994, 0xe0c0, +0x1348, 0x1929, 0xcf9b, 0xe6fb, 0x20ae, 0xe921, 0xed2b, 0x2c54, 0xf96e, 0xf19f, +0x21b6, 0xf12e, 0xc8b4, 0x0907, 0x0964, 0xd049, 0x0eb8, 0x1fa6, 0xe6b5, 0x0cec, +0x16b6, 0xcd0c, 0xda57, 0x17c9, 0xe440, 0xe2a2, 0x2b4d, 0xffa2, 0xec7e, 0x1ee9, +0xf674, 0xbfcb, 0xf769, 0x0402, 0xcfe8, 0x104b, 0x2734, 0xe7e9, 0x07d9, 0x19f4, +0xd032, 0xd00b, 0x0e46, 0xe17d, 0xe2d8, 0x3456, 0x0781, 0xed01, 0x238d, 0xfa72, +0xbb51, 0xf543, 0x050b, 0xccd5, 0x1491, 0x3358, 0xedad, 0x10c4, 0x283b, 0xd051, +0xc9e9, 0x11f8, 0xe2cb, 0xe534, 0x43aa, 0x1090, 0xf11b, 0x3267, 0x02c3, 0xb72d, +0xf9ac, 0x0fbd, 0xce45, 0x1d7b, 0x4389, 0xef2e, 0x1593, 0x348e, 0xd0cb, 0xca8c, +0x1f61, 0xe981, 0xdef7, 0x4774, 0x15ae, 0xefab, 0x3b28, 0x0a9e, 0xb2f6, 0xf9e9, +0x1976, 0xcc08, 0x15ab, 0x4534, 0xee6c, 0x159b, 0x3753, 0xcf09, 0xc69a, 0x2270, +0xf15c, 0xdee6, 0x48ce, 0x1af4, 0xf169, 0x3da0, 0x0d68, 0xb573, 0xff9e, 0x20ba, +0xcbfe, 0x142d, 0x4879, 0xed49, 0x1434, 0x3d96, 0xd714, 0xca99, 0x298b, 0xf708, +0xd92c, 0x4632, 0x1acc, 0xea6e, 0x3d2c, 0x1412, 0xb534, 0xfbfa, 0x24f9, 0xcd72, +0x0df9, 0x48f8, 0xeb87, 0x0bca, 0x3dd5, 0xd6cc, 0xc015, 0x2605, 0xfa87, 0xd1a9, +0x40d0, 0x1c59, 0xe0de, 0x34f9, 0x14c6, 0xaf61, 0xf2a5, 0x23e6, 0xc929, 0x01be, +0x4423, 0xe53b, 0x0182, 0x3c3a, 0xd758, 0xbb9d, 0x1fa9, 0xf454, 0xc611, 0x36e8, +0x18f7, 0xdac9, 0x2e8a, 0x126d, 0xac14, 0xead6, 0x2215, 0xc990, 0xf9f5, 0x43cb, +0xea01, 0xfcbf, 0x38fd, 0xd9f3, 0xb7cd, 0x1bc4, 0xfd41, 0xca56, 0x31e3, 0x1d4b, +0xdca2, 0x2a9f, 0x1c24, 0xb8aa, 0xeb59, 0x25d5, 0xd2d0, 0xfa10, 0x44fa, 0xefe0, +0xfced, 0x3ef4, 0xe9a1, 0xbdf0, 0x19ac, 0x0198, 0xca6f, 0x2f04, 0x25b6, 0xe187, +0x29ba, 0x250a, 0xbe42, 0xe40e, 0x24ef, 0xd75d, 0xf476, 0x44f8, 0xf719, 0xf7a1, +0x3c94, 0xf20e, 0xbcdf, 0x16a3, 0x07e8, 0xc8d4, 0x2a3e, 0x2b3f, 0xdf4e, 0x235d, +0x2c92, 0xc2c7, 0xdf39, 0x2873, 0xd790, 0xea2a, 0x47fd, 0xfd0e, 0xf0e3, 0x3bd8, +0xf4e9, 0xb265, 0x0c2c, 0x0751, 0xc302, 0x29bb, 0x37bd, 0xe138, 0x1e0c, 0x2d09, +0xbddb, 0xd246, 0x24c4, 0xd87a, 0xe5df, 0x4ff6, 0x08d6, 0xf0d8, 0x3d61, 0xf8bf, +0xaede, 0x0a36, 0x0df3, 0xc0f5, 0x23ec, 0x3e92, 0xe3d7, 0x1cad, 0x348e, 0xc0d6, +0xcd4e, 0x265c, 0xd9b6, 0xdf83, 0x510e, 0x0c41, 0xeece, 0x4153, 0xfeeb, 0xa9f6, +0x04b3, 0x12a4, 0xbf2f, 0x20d1, 0x42f4, 0xe1b1, 0x1b1e, 0x3980, 0xc2b4, 0xcb50, +0x2b74, 0xded0, 0xd835, 0x4e7a, 0x0b46, 0xe555, 0x4015, 0x0517, 0xaa54, 0x0504, +0x1932, 0xbc34, 0x1a77, 0x48b1, 0xe0bb, 0x149b, 0x3ba7, 0xc34a, 0xc481, 0x2bc2, +0xe401, 0xd20e, 0x4f53, 0x1389, 0xe3b7, 0x418b, 0x0a15, 0xa70d, 0x0024, 0x1f9f, +0xbf65, 0x142d, 0x4a81, 0xe0ca, 0x1152, 0x4325, 0xcb03, 0xc18a, 0x2b95, 0xeb45, +0xcf92, 0x4c54, 0x18ad, 0xe08b, 0x3f12, 0x1264, 0xa9fc, 0xfd97, 0x246f, 0xbf86, +0x0ce2, 0x4e7c, 0xe4f3, 0x0c20, 0x44e0, 0xd069, 0xbdcb, 0x2b8e, 0xf32d, 0xcad4, +0x464f, 0x1e76, 0xdf62, 0x3b07, 0x17ea, 0xaafb, 0xf5a0, 0x2835, 0xc7c2, 0x0842, +0x4d2b, 0xe634, 0x03ef, 0x42bc, 0xd7f2, 0xbb73, 0x2662, 0xf892, 0xc8b3, 0x3e30, +0x1f20, 0xdcca, 0x354a, 0x1c6b, 0xaf75, 0xf0f7, 0x2963, 0xc908, 0xfdbf, 0x4c3c, +0xebe5, 0x00e3, 0x44c4, 0xdf15, 0xb9e9, 0x243b, 0x00e9, 0xcb76, 0x3b53, 0x248e, +0xdc27, 0x2fcb, 0x22e5, 0xb66c, 0xec96, 0x2b19, 0xd0ef, 0xf97b, 0x48ae, 0xecc0, +0xf8b4, 0x411d, 0xe769, 0xb9f7, 0x1c41, 0x0022, 0xc369, 0x2ced, 0x23ac, 0xd8eb, +0x2522, 0x232a, 0xb611, 0xe19f, 0x2738, 0xd013, 0xece5, 0x434c, 0xf00e, 0xefcc, +0x3b79, 0xeb32, 0xb19c, 0x135e, 0x04ef, 0xc1b9, 0x27a8, 0x2992, 0xd7b3, 0x1ba5, +0x2481, 0xb8c5, 0xd97d, 0x246f, 0xd113, 0xe45d, 0x4486, 0xf7f7, 0xeb36, 0x395a, +0xf122, 0xaea5, 0x0c28, 0x05eb, 0xbde4, 0x2585, 0x36a2, 0xde67, 0x1b86, 0x2dac, +0xbd03, 0xd2b8, 0x2624, 0xd8b8, 0xe802, 0x521b, 0x0855, 0xefbc, 0x4048, 0xfad2, +0xafe2, 0x0fb1, 0x12b2, 0xc62c, 0x2c2a, 0x43f5, 0xe562, 0x1fcb, 0x3791, 0xc2ac, +0xd4d1, 0x2dfd, 0xde0a, 0xe53f, 0x5578, 0x0f49, 0xf2b6, 0x4609, 0x0105, 0xabf5, +0x09a8, 0x157e, 0xc286, 0x23e7, 0x425f, 0xe36a, 0x1d93, 0x3580, 0xbf80, 0xcaf2, +0x2a04, 0xf16e, 0xd92b, 0x0eaa, 0xf1a7, 0x1ddb, 0x5b52, 0x0665, 0xd2e3, 0x15f8, +0xf606, 0x9d42, 0xdba7, 0xf312, 0xd349, 0x21ed, 0x576a, 0x34e8, 0x2450, 0x2679, +0xdc01, 0xb506, 0xcb0f, 0xa454, 0xccf3, 0x2c13, 0x1673, 0xf8ca, 0x4ff1, 0x63ac, +0xec26, 0xd77c, 0xf1f9, 0xc268, 0xb11a, 0xdfe4, 0x02e7, 0x10f5, 0x3512, 0x19dd, +0x0edc, 0x3568, 0xf6f7, 0xbe10, 0xda93, 0xf4fe, 0xda03, 0xe293, 0x15dd, 0x15f3, +0x1ba5, 0x1521, 0x12e8, 0x23ab, 0x0fc3, 0xdb3e, 0xb671, 0xe960, 0xe13c, 0xc695, +0x1a81, 0x3d23, 0x1c56, 0x190d, 0x4234, 0x1970, 0xd784, 0xd86b, 0xb5e8, 0xc9f3, +0xeb89, 0xe344, 0x17ae, 0x5713, 0x37fc, 0xffe2, 0x36b3, 0x1dfe, 0xb963, 0xbf9c, +0xc9a1, 0xcc7b, 0xe409, 0x08a6, 0x2077, 0x3b4d, 0x3cba, 0x0553, 0x220e, 0x226e, +0xd219, 0xb7ec, 0xcb8b, 0xdf2a, 0xd0c7, 0xf5be, 0x2ff0, 0x42a6, 0x3c24, 0x25ae, +0x2d6d, 0x0d94, 0xde80, 0xb78b, 0xb12b, 0xdf7a, 0xde33, 0x0046, 0x47b1, 0x5170, +0x29c0, 0x2945, 0x3ab5, 0xf08f, 0xc806, 0xc229, 0xbbf4, 0xe40d, 0xf365, 0x0bfe, +0x448d, 0x5cd8, 0x1e52, 0x10ba, 0x3908, 0xefa4, 0xc243, 0xcf89, 0xd02d, 0xde92, +0xf8e0, 0x191e, 0x2f7b, 0x48e6, 0x1e38, 0x1074, 0x3785, 0xf8be, 0xbd1c, 0xc06b, +0xdc36, 0xdb97, 0xe3c0, 0x2042, 0x37c5, 0x36ff, 0x1b73, 0x2064, 0x2c9a, 0xefa2, +0xbf0c, 0xb7f0, 0xe221, 0xe243, 0xd998, 0x2263, 0x4bae, 0x3596, 0x18aa, 0x3763, +0x27d0, 0xdcc6, 0xcacc, 0xc06f, 0xd83d, 0xecfe, 0xeefa, 0x1ffa, 0x5052, 0x393f, +0x0af5, 0x3c9e, 0x316b, 0xd2df, 0xc575, 0xd3c8, 0xddd2, 0xdf98, 0xfbd7, 0x2929, +0x4879, 0x4052, 0x160c, 0x3708, 0x2b31, 0xdac6, 0xc0c3, 0xcfc0, 0xe71d, 0xddec, +0x0145, 0x3847, 0x457c, 0x356b, 0x214a, 0x3a5f, 0x1474, 0xd892, 0xc579, 0xc6a7, +0xe77a, 0xe4dc, 0x00ab, 0x3b89, 0x4eba, 0x290a, 0x16ea, 0x3dc6, 0x0956, 0xcc12, +0xc3bd, 0xc9e9, 0xe4be, 0xe60b, 0x0561, 0x3707, 0x4c82, 0x2444, 0x1406, 0x3a8e, +0xff5b, 0xc494, 0xbf9f, 0xcb26, 0xdfef, 0xe755, 0x1060, 0x334f, 0x40e5, 0x1f87, +0x16b9, 0x33e8, 0xfa6e, 0xc670, 0xb774, 0xcc17, 0xe18f, 0xdd0f, 0x102c, 0x3f0d, +0x4098, 0x1b95, 0x24b2, 0x315a, 0xe9d8, 0xc459, 0xb314, 0xc524, 0xe2a6, 0xe1cf, +0x100a, 0x44af, 0x455c, 0x1551, 0x264f, 0x2ab1, 0xd681, 0xb90c, 0xb4d6, 0xc68d, +0xddac, 0xef74, 0x1f57, 0x4357, 0x4192, 0x0e60, 0x1bcb, 0x20fd, 0xd477, 0xb435, +0xb3e3, 0xcdc3, 0xd9c4, 0xef97, 0x2384, 0x3b60, 0x34c9, 0x119d, 0x1f15, 0x0fb3, +0xd15d, 0xb30d, 0xa9e3, 0xd431, 0xdc02, 0xe98a, 0x2987, 0x4204, 0x290c, 0x1181, +0x2d0c, 0x0800, 0xcb55, 0xb8f5, 0xaaa6, 0xd49f, 0xe57c, 0xf063, 0x281c, 0x4c65, +0x2d19, 0x0cd2, 0x2ddb, 0xfefe, 0xc171, 0xbd4c, 0xb7c2, 0xd4c5, 0xe6f3, 0x0040, +0x2b86, 0x4b6d, 0x2ed1, 0x0ce3, 0x2d97, 0x01f9, 0xc2ad, 0xb8fc, 0xc53e, 0xe1cf, +0xea35, 0x0eb0, 0x38b8, 0x4a3b, 0x2a1e, 0x1457, 0x2a1e, 0xfbca, 0xcdf1, 0xbc93, +0xcc0b, 0xec27, 0xeb05, 0x144b, 0x4443, 0x496d, 0x2233, 0x2180, 0x30b2, 0xf03c, +0xcced, 0xbf0d, 0xcc55, 0xeec3, 0xf367, 0x186f, 0x45cd, 0x4e7d, 0x215a, 0x2485, +0x3122, 0xe7a8, 0xc40a, 0xbf85, 0xd4dd, 0xebe8, 0xf32b, 0x2121, 0x49bb, 0x4c61, +0x1af5, 0x1f88, 0x2c32, 0xe8c5, 0xc512, 0xc0b7, 0xdbf9, 0xe9ea, 0xf2f4, 0x2584, +0x43e2, 0x3e1b, 0x19cf, 0x28d2, 0x2442, 0xe27b, 0xc589, 0xbe8a, 0xdddc, 0xe567, +0xed4e, 0x27f2, 0x48cd, 0x3505, 0x0e88, 0x2cd5, 0x207d, 0xda54, 0xc1cf, 0xb8c1, +0xd925, 0xe569, 0xefd0, 0x2723, 0x4dd1, 0x38b2, 0x0de5, 0x2d90, 0x155b, 0xca06, +0xbab6, 0xbf37, 0xdd46, 0xe3fd, 0xfb50, 0x2e5d, 0x487b, 0x343e, 0x0abe, 0x25e9, +0x0f65, 0xcb83, 0xb474, 0xbc50, 0xe2ab, 0xe1df, 0xfd3e, 0x3672, 0x458b, 0x294e, +0x10fd, 0x2afa, 0x027f, 0xcae8, 0xb95b, 0xbc6f, 0xe536, 0xe3af, 0xfd1c, 0x3b18, +0x4cb1, 0x23ff, 0x13eb, 0x3353, 0xfb34, 0xc4aa, 0xb71a, 0xb9f2, 0xe1d7, 0xe97f, +0x058d, 0x3a0f, 0x4fcd, 0x2408, 0x11a3, 0x2fb9, 0xf271, 0xbb7f, 0xb447, 0xc317, +0xde44, 0xe56a, 0x110a, 0x3ccc, 0x494a, 0x1f80, 0x11af, 0x26a1, 0xeb09, 0xbcd0, +0xaf90, 0xc8d4, 0xe63f, 0xe47d, 0x1435, 0x3f4f, 0x3fbe, 0x17c7, 0x1a4f, 0x2393, +0xe191, 0xbfa1, 0xb0e4, 0xc7c9, 0xe2d9, 0xe363, 0x1625, 0x4320, 0x3da9, 0x11c4, +0x1e02, 0x1d1b, 0xd6be, 0xbe96, 0xb123, 0xc8a4, 0xe6ce, 0xef2e, 0x1c03, 0x4584, +0x3fd1, 0x1006, 0x20d8, 0x197b, 0xcf64, 0xb99e, 0xb693, 0xd396, 0xe8eb, 0xfb01, +0x2aca, 0x4b38, 0x3f87, 0x0de0, 0x1f2f, 0x1503, 0xd574, 0xba46, 0xb72d, 0xf07a, +0xfa16, 0xf608, 0x29c0, 0x3a7e, 0x42a7, 0x43ac, 0x2717, 0xec6f, 0xd732, 0xc1ac, +0xa146, 0xef37, 0x122b, 0x05c1, 0x5c67, 0x8e8c, 0x3d5e, 0x0043, 0x00d0, 0xb9ef, +0xa38d, 0xc8dd, 0xc921, 0x15c9, 0x5fe3, 0x531a, 0x477d, 0x5852, 0x1b9f, 0xb930, +0xd1b6, 0xde60, 0xbcce, 0xe7f7, 0x16b1, 0x2aeb, 0x4605, 0x3592, 0xfe8c, 0x0c1d, +0x1b24, 0xd084, 0xd667, 0x2736, 0x06f7, 0xdfa7, 0x1976, 0x0df9, 0xc5e8, 0x032b, +0x324e, 0xea0e, 0x1ab4, 0x46e4, 0xf72e, 0x0369, 0x0ef3, 0xbe35, 0xbd17, 0x10fd, +0xfb35, 0xeb3f, 0x4e43, 0x2da4, 0xfe31, 0x2f50, 0xf64c, 0xafd6, 0xe267, 0xfd01, +0xca77, 0x1087, 0x48c1, 0xfcf4, 0x1bb0, 0x31af, 0xd234, 0xc0cb, 0x054e, 0xec6b, +0xce29, 0x29db, 0x1bb4, 0xf0fd, 0x3608, 0x12eb, 0xbb40, 0xeaa8, 0x190f, 0xce00, +0xed59, 0x39ef, 0xf1f0, 0xfb2a, 0x3535, 0xe3b3, 0xbf33, 0x1a9b, 0x013b, 0xc2ab, +0x2976, 0x21e0, 0xd3d8, 0x1ca6, 0x14ae, 0xb242, 0xe538, 0x2958, 0xd98c, 0xf279, +0x4106, 0xf13e, 0xf68b, 0x3379, 0xe023, 0xb4a8, 0x104b, 0x0685, 0xcca4, 0x2e61, +0x2d96, 0xe2b8, 0x26ac, 0x2510, 0xc114, 0xd9e5, 0x1f91, 0xdbc9, 0xe515, 0x40bd, +0x0693, 0xff44, 0x3c5e, 0xf664, 0xb8dc, 0x0b37, 0x1314, 0xc29c, 0x161f, 0x3582, +0xe32e, 0x17c0, 0x2de6, 0xc7c1, 0xcfeb, 0x23a6, 0xe644, 0xe65f, 0x4256, 0xf765, +0xe698, 0x4148, 0xfbe1, 0xa6b4, 0x03fa, 0x1c92, 0xcb85, 0x1a54, 0x37af, 0xe830, +0x1b0b, 0x255d, 0xc13f, 0xd3d9, 0x205e, 0xde69, 0xe2ab, 0x48d5, 0x0931, 0xee2f, +0x3d79, 0x0658, 0xb36c, 0xf59e, 0x11f4, 0xd042, 0x110b, 0x2e1b, 0xe763, 0x2269, +0x3bda, 0xcefb, 0xd37b, 0x2d7f, 0xe9d7, 0xd48e, 0x3fd2, 0x0e86, 0xea62, 0x3cd5, +0x11e0, 0xc1dc, 0x08e0, 0x1f68, 0xd3f1, 0x1fc8, 0x3da6, 0xe12f, 0x1d62, 0x4060, +0xccb6, 0xd211, 0x316f, 0xf370, 0xe20e, 0x4657, 0x1280, 0xf30a, 0x3df0, 0x07fc, +0xb956, 0x023e, 0x1978, 0xcbba, 0x137d, 0x3ff7, 0xecbc, 0x1698, 0x3f29, 0xdf9f, +0xcc1c, 0x1bdc, 0xef17, 0xd3da, 0x346b, 0x1296, 0xeb25, 0x3885, 0x190f, 0xbf13, +0xfb71, 0x1df2, 0xc509, 0xffa2, 0x3a66, 0xe5fd, 0x04f6, 0x36be, 0xda99, 0xc67e, +0x1fc2, 0xef95, 0xcfa8, 0x39df, 0x0f1a, 0xd986, 0x2d7b, 0x0e88, 0xb2a2, 0xf40f, +0x1bd3, 0xc95c, 0x0511, 0x408d, 0xec48, 0x03d2, 0x3281, 0xd7a0, 0xb9a0, 0x13ab, +0xf02d, 0xc92c, 0x3af6, 0x26c0, 0xe5f8, 0x2de7, 0x18b9, 0xafd8, 0xddbf, 0x15bc, +0xc4d3, 0xf6dc, 0x4b73, 0xf89f, 0x018a, 0x3c4e, 0xdf11, 0xb20d, 0x12d7, 0xf511, +0xbf7e, 0x33aa, 0x286f, 0xe309, 0x3107, 0x1f74, 0xb1c3, 0xe10f, 0x1fd3, 0xc7d4, +0xef6e, 0x4b78, 0xf32f, 0xf8e5, 0x43cb, 0xe7da, 0xaf46, 0x115a, 0xfeb2, 0xbf7a, +0x2e9a, 0x2ed7, 0xde2f, 0x2807, 0x259c, 0xb09f, 0xd3d4, 0x2606, 0xd544, 0xeb3d, +0x5107, 0xfecf, 0xf63f, 0x4304, 0xedfe, 0xae0d, 0x0d7f, 0x0957, 0xc47d, 0x2f62, +0x3b51, 0xdfea, 0x2a01, 0x3390, 0xb825, 0xd3e9, 0x29f1, 0xd82e, 0xe2e3, 0x509a, +0x061c, 0xf530, 0x48b1, 0xf740, 0xabeb, 0x0d93, 0x0ed4, 0xbed0, 0x274e, 0x3e3b, +0xddc2, 0x2168, 0x35a1, 0xbbb0, 0xcedb, 0x2b94, 0xdd5b, 0xdd2d, 0x4e6a, 0x068d, +0xe741, 0x3eef, 0xfe34, 0xad12, 0x0bb7, 0x1a73, 0xbea5, 0x1c31, 0x4269, 0xdc1a, +0x1611, 0x37d6, 0xc048, 0xcaa3, 0x2f7e, 0xe59c, 0xd94c, 0x4ed8, 0x0af6, 0xe225, +0x3c84, 0xfd49, 0xa4b2, 0x048d, 0x1ed5, 0xc496, 0x1caa, 0x4641, 0xddd4, 0x1578, +0x37dc, 0xc13b, 0xcab7, 0x30dc, 0xfec0, 0xd462, 0x1387, 0x07dd, 0x14c1, 0x4b92, +0x0d74, 0xda49, 0x12de, 0x02fe, 0xb8fe, 0xeaae, 0x0363, 0xdab0, 0x23b0, 0x68fb, +0x3681, 0x1351, 0x29fc, 0xf22e, 0xb781, 0xd225, 0xc11d, 0xd7d8, 0x354d, 0x26b8, +0x09af, 0x60fa, 0x5f8c, 0xe302, 0xde80, 0xff6a, 0xbb95, 0xafec, 0x029f, 0x161d, +0x0fee, 0x3924, 0x2b6c, 0x1ed5, 0x24fe, 0xec7b, 0xc1fe, 0xe22b, 0xfbcd, 0xdc4d, +0xf3f7, 0x210f, 0x1d01, 0x1305, 0x1342, 0x1f6c, 0x0852, 0xfea5, 0xdd42, 0xc083, +0xf243, 0xde95, 0xd818, 0x23f7, 0x3eab, 0x0891, 0x1381, 0x52fd, 0xff10, 0xc983, +0xe091, 0xc3b8, 0xcafc, 0xe7d7, 0xfc8d, 0x2043, 0x559d, 0x2c2e, 0x0418, 0x4485, +0x0b4c, 0xb4e5, 0xc68e, 0xddbf, 0xd0b6, 0xdc81, 0x1e4b, 0x2d10, 0x365b, 0x2c50, +0x170a, 0x303e, 0x0a60, 0xcc89, 0xb88a, 0xdbc7, 0xe3e7, 0xcdd2, 0x0b38, 0x3c7e, +0x392b, 0x254c, 0x3272, 0x2fc9, 0xf0ee, 0xd4d8, 0xb5b4, 0xc03b, 0xdef0, 0xd8e9, +0x0edc, 0x533e, 0x46e4, 0x0fc4, 0x358a, 0x34b8, 0xd1c3, 0xbf29, 0xbb64, 0xbeea, +0xdb1c, 0xf31b, 0x17f1, 0x44fa, 0x4bfb, 0x0a36, 0x1fe2, 0x2ce9, 0xcf0d, 0xb605, +0xc6c6, 0xcc96, 0xcf30, 0xf9cd, 0x25fb, 0x36d1, 0x4086, 0x1499, 0x21d8, 0x287f, +0xde77, 0xb0fd, 0xba6d, 0xe0f5, 0xd3e4, 0xee77, 0x3561, 0x4077, 0x2baa, 0x1d38, +0x3753, 0x1587, 0xd2e2, 0xb252, 0xb44b, 0xe5a7, 0xdbb5, 0xe778, 0x3790, 0x55cb, +0x234e, 0x10ab, 0x42e9, 0x083e, 0xc15a, 0xc2a9, 0xbe30, 0xd7d1, 0xe76a, 0xfa22, +0x2b37, 0x53cb, 0x29a6, 0x0950, 0x4086, 0x0f68, 0xbba0, 0xb824, 0xcc9c, 0xd743, +0xd665, 0x06ae, 0x3597, 0x44f1, 0x2854, 0x19d4, 0x3395, 0xfe8f, 0xc1b9, 0xad2d, +0xc39d, 0xde05, 0xd850, 0x0bf2, 0x4266, 0x457f, 0x1d4b, 0x2284, 0x337f, 0xe442, +0xbc43, 0xb8ba, 0xc33a, 0xe0e4, 0xe8f8, 0x10b5, 0x4262, 0x4afc, 0x1744, 0x1d2b, +0x3125, 0xe2b5, 0xbcb6, 0xbdea, 0xccfd, 0xdfe5, 0xefed, 0x1bae, 0x3f5e, 0x451d, +0x167c, 0x1ea7, 0x2848, 0xdf70, 0xbb35, 0xbbfc, 0xd959, 0xe266, 0xec2b, 0x20e3, +0x435c, 0x3878, 0x0fee, 0x25e8, 0x1ba1, 0xdaf0, 0xc061, 0xb76f, 0xdd9c, 0xe727, +0xece4, 0x247e, 0x48ee, 0x303d, 0x099a, 0x320b, 0x19b9, 0xd0b8, 0xc508, 0xbe20, +0xd52c, 0xe430, 0xf5f1, 0x21d1, 0x4aae, 0x3670, 0x0bc4, 0x349a, 0x16c6, 0xc9e1, +0xbb8f, 0xc44e, 0xdbed, 0xde26, 0x03b2, 0x34c9, 0x4689, 0x30a8, 0x17ea, 0x33bd, +0x0b87, 0xcd79, 0xb9b9, 0xc3c1, 0xe227, 0xdffc, 0x07ae, 0x3deb, 0x4732, 0x25e8, +0x1ef9, 0x370f, 0xfb29, 0xcc78, 0xbf32, 0xc5c0, 0xe807, 0xe571, 0x074b, 0x4121, +0x4902, 0x1968, 0x206c, 0x3da5, 0xf467, 0xc9c7, 0xc240, 0xc6d8, 0xe2b1, 0xeca9, +0x0f7d, 0x3a80, 0x4ac1, 0x1bda, 0x1cdc, 0x3836, 0xee35, 0xc32e, 0xc0a2, 0xce3e, +0xdfd7, 0xe9c8, 0x162c, 0x3eb5, 0x48b0, 0x1a61, 0x1e8f, 0x2cf5, 0xe5c6, 0xbb80, +0xb378, 0xd228, 0xe3dd, 0xeba5, 0x2266, 0x46f5, 0x3e1f, 0x13fa, 0x26ea, 0x21ec, +0xd925, 0xbdc7, 0xb66d, 0xd76b, 0xe81e, 0xf025, 0x269d, 0x4d69, 0x3d40, 0x1027, +0x2c58, 0x1cc9, 0xd265, 0xbfd4, 0xbabe, 0xd919, 0xe822, 0xf931, 0x2bc9, 0x4c69, +0x3d20, 0x158d, 0x31ca, 0x1821, 0xce8a, 0xb8af, 0xba0f, 0xdfb6, 0xe677, 0xfd3b, +0x385e, 0x53d9, 0x3764, 0x14a8, 0x30af, 0x0a51, 0xcb95, 0xbad7, 0xbc48, 0xe366, +0xea7e, 0x06cf, 0x3f08, 0x53c7, 0x2fe0, 0x189d, 0x383f, 0x00fd, 0xc5f3, 0xbf0d, +0xc38f, 0xe4a3, 0xecee, 0x0ef5, 0x432c, 0x54a7, 0x2a15, 0x190d, 0x3675, 0xf7bc, +0xc3e0, 0xbc22, 0xc381, 0xe210, 0xec59, 0x15ed, 0x4300, 0x4fd8, 0x269c, 0x1bda, +0x324a, 0xed57, 0xbb9c, 0xb705, 0xceb8, 0xeb30, 0xed72, 0x1baa, 0x48ad, 0x4bd3, +0x1fde, 0x1ea9, 0x2826, 0xe505, 0xc2b3, 0xb577, 0xceec, 0xeeb9, 0xef73, 0x1fd5, +0x4c99, 0x41f7, 0x12c7, 0x24ad, 0x22eb, 0xd504, 0xbfe3, 0xba2a, 0xd063, 0xea6f, +0xf037, 0x1c9c, 0x4acf, 0x430c, 0x0b68, 0x200d, 0x1c9e, 0xcce4, 0xb9ad, 0xbc29, +0xd211, 0xe475, 0xfc21, 0x2910, 0x443b, 0x3a83, 0x0ef1, 0x2295, 0x15ac, 0xd00d, +0xb774, 0xbaff, 0xded3, 0xe41e, 0xf945, 0x331e, 0x49b7, 0x3276, 0x128d, 0x28c7, +0x08f2, 0xce8e, 0xbb2e, 0xb907, 0xe4c0, 0xe9f8, 0xf98a, 0x3323, 0x4a75, 0x2718, +0x0ddc, 0x3369, 0x0795, 0xc936, 0xc192, 0xc3cc, 0xe2b9, 0xe583, 0xfce9, 0x312f, +0x4951, 0x266f, 0x0ffe, 0x3698, 0x0679, 0xca63, 0xc301, 0xc844, 0xde4c, 0xe26e, +0x076e, 0x3283, 0x4507, 0x259a, 0x11af, 0x30ff, 0xfd1c, 0xc1b2, 0xb384, 0xc924, +0xe414, 0xde8f, 0x0781, 0x295f, 0x51b4, 0x5b09, 0x17c9, 0xf17b, 0xd9cd, 0xb11a, +0x8396, 0xbd98, 0x073f, 0x0598, 0x5258, 0x7bf8, 0x3dd3, 0x096d, 0xe7f8, 0xa966, +0x9271, 0xc3c7, 0xb173, 0xf5d9, 0x6db2, 0x3b89, 0x2231, 0x4aaf, 0x1c3b, 0xc115, +0xcb06, 0xd460, 0xbb98, 0x03f6, 0xf9d7, 0xecaf, 0x4aa5, 0x27cf, 0xcf8c, 0x0764, +0x3489, 0xd9cb, 0xf31b, 0x39b5, 0xebc3, 0xeb7f, 0x1192, 0xceee, 0xbd72, 0x16f9, +0x1b5a, 0xf888, 0x4a44, 0x34a8, 0xedd8, 0x18bb, 0xf8d6, 0xa74c, 0xd19c, 0x139c, +0xeaf7, 0x0d0b, 0x5317, 0x0e81, 0x0c44, 0x35bd, 0xe010, 0xb51d, 0x075b, 0xfc77, +0xc9ae, 0x2b95, 0x35a1, 0xf0e8, 0x2c61, 0x2481, 0xc370, 0xe826, 0x20b5, 0xd95a, +0xf832, 0x43e0, 0xf261, 0xf7ef, 0x414e, 0xf14b, 0xbf9e, 0x1c6c, 0x1380, 0xd3d1, +0x2650, 0x1f52, 0xd592, 0x1ddb, 0x2414, 0xc347, 0xebd1, 0x3e70, 0xf240, 0xeb89, +0x3d66, 0xf738, 0xe57b, 0x2fe8, 0xf22d, 0xbd68, 0x1e7b, 0x2466, 0xd858, 0x2613, +0x3122, 0xdc86, 0x16b9, 0x277b, 0xc324, 0xdb13, 0x2c78, 0xe8ab, 0xed0b, 0x49bb, +0x0342, 0xf02a, 0x3b6c, 0xf7d9, 0xb9c6, 0x0fd8, 0x1192, 0xc763, 0x12e5, 0x2738, +0xe26c, 0x1a89, 0x2a72, 0xcd72, 0xdca7, 0x27a9, 0xe962, 0xd98a, 0x271e, 0xf948, +0xe783, 0x29f0, 0x000e, 0xc137, 0x064c, 0x17e6, 0xcd48, 0x0efb, 0x329b, 0xdc50, +0xf9d6, 0x28fd, 0xd866, 0xc34b, 0x13df, 0xefa3, 0xdcbf, 0x3578, 0x09a7, 0xe33f, +0x2c3f, 0x02a6, 0xaa76, 0xf3eb, 0x1870, 0xc21d, 0x029e, 0x3d07, 0xedbb, 0x0a92, +0x33dc, 0xd94f, 0xc985, 0x15a5, 0xdf1c, 0xd3f5, 0x3f5e, 0x0fca, 0xe50f, 0x3b04, +0x1a3d, 0xb99b, 0xf6d1, 0x1c75, 0xcc21, 0x0987, 0x3e95, 0xed51, 0x0dcf, 0x3b32, +0xd980, 0xc6f7, 0x280e, 0xf587, 0xd3c2, 0x4871, 0x233c, 0xe02f, 0x3039, 0x183d, +0xaecf, 0xf137, 0x2776, 0xcc66, 0x0bf0, 0x5162, 0xeddf, 0x088c, 0x4536, 0xd457, +0xb205, 0x2315, 0xf51a, 0xc60d, 0x4281, 0x2682, 0xe5d9, 0x3aad, 0x1cab, 0xb02d, +0xf294, 0x20af, 0xbecb, 0x0084, 0x4c16, 0xeaf2, 0x054e, 0x449f, 0xdf02, 0xbd48, +0x25bf, 0xfda9, 0xcb15, 0x3a93, 0x1e9b, 0xddd4, 0x3408, 0x1f70, 0xb333, 0xf3df, +0x32ab, 0xd133, 0x014e, 0x52b2, 0xf138, 0xfe00, 0x4260, 0xe1f2, 0xbbac, 0x28bf, +0x0404, 0xcc81, 0x4649, 0x2e56, 0xdee8, 0x3677, 0x23ef, 0xabc0, 0xea62, 0x3159, +0xcf59, 0xfdcf, 0x575a, 0xf403, 0xfe40, 0x4759, 0xe094, 0xb225, 0x1ffa, 0xfefc, +0xc26f, 0x3a61, 0x2be1, 0xdb44, 0x2efe, 0x2504, 0xadcb, 0xe074, 0x2713, 0xc6d3, +0xecc2, 0x48d6, 0xea4d, 0xf2ec, 0x43a0, 0xe1fc, 0xaa5f, 0x1825, 0xffd7, 0xba38, +0x2bdb, 0x24a3, 0xce10, 0x1cd8, 0x1cfc, 0xab2e, 0xdc4d, 0x276d, 0xca22, 0xeb01, +0x4a08, 0xeb0e, 0xe94c, 0x3cd7, 0xe45f, 0xa6c6, 0x0f8c, 0x066f, 0xc2d2, 0x2a01, +0x2aea, 0xd9bf, 0x251a, 0x2933, 0xb64d, 0xd9b5, 0x26a1, 0xd2ba, 0xe822, 0x4af1, +0xfec7, 0xf323, 0x3fdf, 0xf78e, 0xb4c1, 0x0f7f, 0x0e1c, 0xc7ce, 0x25fb, 0x3129, +0xdeb5, 0x2268, 0x3385, 0xc266, 0xd9b6, 0x2efc, 0xddb0, 0xe00f, 0x45ac, 0x0168, +0xea8d, 0x3cd9, 0xfeda, 0xb603, 0x13c5, 0x166b, 0xc192, 0x1f5a, 0x3804, 0xda94, +0x15a3, 0x35b3, 0xc729, 0xd3ae, 0x2e68, 0xe359, 0xde70, 0x4764, 0x0725, 0xe6b1, +0x3882, 0xfed4, 0xad23, 0x0819, 0x16c2, 0xc15b, 0x1c91, 0x4358, 0xe49c, 0x1162, +0x35d1, 0xc8f8, 0xc74f, 0x2676, 0xe0e9, 0xd0d7, 0x4b09, 0x1cea, 0xedea, 0x3f3b, +0x11f4, 0xb09a, 0xfc73, 0x177b, 0xba40, 0x109f, 0x4fcb, 0xf285, 0x1d0f, 0x3dc2, +0xc588, 0xc98d, 0x329a, 0xfd8a, 0xcc33, 0x1573, 0x1810, 0x1532, 0x434e, 0x102d, +0xd555, 0x08d4, 0x0011, 0xb77c, 0xec37, 0x098c, 0xd4fc, 0x2033, 0x7926, 0x32be, +0xfe95, 0x28ab, 0xef9c, 0xa428, 0xcffc, 0xcbdf, 0xd07c, 0x3681, 0x2f87, 0x0680, +0x626e, 0x5e9c, 0xd624, 0xd9e4, 0x080a, 0xadfe, 0xa2f5, 0x12af, 0x142c, 0xffde, +0x3703, 0x3570, 0x269e, 0x24fb, 0xe8a1, 0xb7ec, 0xe753, 0xf82a, 0xce4d, 0x001a, +0x2e98, 0x1f84, 0x0eb8, 0x1beb, 0x2603, 0xfcff, 0xfd98, 0xd8c0, 0xc719, 0xfc52, +0xddd2, 0xe3ec, 0x2ee0, 0x4393, 0x042b, 0x1929, 0x569a, 0xef83, 0xc35d, 0xd9e5, +0xc6ce, 0xd1e0, 0xed86, 0x0b2a, 0x23b2, 0x504c, 0x20ad, 0x029d, 0x3b72, 0xf5a5, +0xad6b, 0xbe54, 0xddfc, 0xd162, 0xddcd, 0x2952, 0x324b, 0x3156, 0x1d3f, 0x12f5, +0x235b, 0xf27f, 0xc001, 0xb250, 0xdfdd, 0xe3f3, 0xd455, 0x14e4, 0x3c06, 0x3326, +0x1a60, 0x30e7, 0x24a0, 0xe2c3, 0xcd08, 0xb21c, 0xc75c, 0xdc66, 0xe088, 0x1e09, +0x54ef, 0x4197, 0x0dca, 0x356f, 0x22ce, 0xcaf2, 0xc0ce, 0xbc3d, 0xcfda, 0xe59b, +0xfe5c, 0x27b1, 0x4caa, 0x45a1, 0x0add, 0x274f, 0x1c6c, 0xcde6, 0xc343, 0xd011, +0xdf48, 0xe021, 0x0b0c, 0x335a, 0x3c8e, 0x345d, 0x0d86, 0x278e, 0x1b8f, 0xdc12, +0xbc28, 0xc6ff, 0xead3, 0xdba0, 0xfdee, 0x39b8, 0x3f03, 0x2143, 0x1858, 0x376b, +0x021b, 0xcaa8, 0xbb59, 0xc6f6, 0xef67, 0xe041, 0xf9ba, 0x3cd7, 0x4cfd, 0x168d, +0x1037, 0x3fec, 0xf71d, 0xbed3, 0xc8d6, 0xcbc6, 0xdd8f, 0xea8c, 0x09b1, 0x2e92, +0x4701, 0x1829, 0x091c, 0x3ad7, 0xfd4b, 0xb999, 0xbe68, 0xdc50, 0xdc39, 0xd663, +0x1009, 0x330e, 0x37f3, 0x1ad3, 0x1cca, 0x3476, 0xf66a, 0xc5e8, 0xbb6f, 0xd5e8, +0xe008, 0xd5ea, 0x10b5, 0x3f63, 0x3725, 0x1102, 0x2911, 0x3855, 0xe9cb, 0xc610, +0xc44b, 0xd547, 0xdd89, 0xe4aa, 0x195d, 0x4084, 0x3d9b, 0x10ab, 0x2a1f, 0x3667, +0xe38c, 0xc1a0, 0xc4c5, 0xdd94, 0xe21b, 0xe99c, 0x1f49, 0x4312, 0x3b69, 0x0f14, +0x2b3d, 0x2eaa, 0xdeab, 0xc00a, 0xc634, 0xe225, 0xe0e3, 0xf311, 0x2b9a, 0x44fd, +0x3881, 0x11ee, 0x2f2a, 0x2428, 0xdc87, 0xc347, 0xc2d0, 0xe6e0, 0xe5b0, 0xf196, +0x2d4e, 0x4a97, 0x3366, 0x1388, 0x3ae0, 0x1bf8, 0xd058, 0xc212, 0xc09b, 0xdbf3, +0xe25c, 0xfa1f, 0x3093, 0x4e94, 0x31f0, 0x12fe, 0x3bde, 0x11ad, 0xc841, 0xb8bd, +0xbe0b, 0xdd25, 0xdd7e, 0x0138, 0x3ac9, 0x4ccb, 0x2ba2, 0x1359, 0x3033, 0xfbc6, +0xc14d, 0xb543, 0xbd7e, 0xdcf8, 0xde2b, 0x0754, 0x388b, 0x409a, 0x1e0d, 0x134a, +0x2ba8, 0xeee4, 0xbe5b, 0xafaf, 0xbb90, 0xe059, 0xde74, 0x0736, 0x3d1c, 0x4310, +0x16f1, 0x1686, 0x2f2a, 0xe9de, 0xbe17, 0xb446, 0xc0ca, 0xdd27, 0xe1a0, 0x0ccd, +0x3c13, 0x4661, 0x1949, 0x196a, 0x2a50, 0xdf8d, 0xb6a7, 0xb25a, 0xc8aa, 0xdf0e, +0xe6dc, 0x19c8, 0x411d, 0x423f, 0x15db, 0x1a0d, 0x2316, 0xdf69, 0xba97, 0xb2a9, +0xd092, 0xe29a, 0xebf2, 0x2556, 0x4a3b, 0x3fb1, 0x16cb, 0x2603, 0x1c1b, 0xd67d, +0xbcf3, 0xb765, 0xdad1, 0xea4b, 0xf176, 0x27e4, 0x4d31, 0x3b4c, 0x0fab, 0x2ad5, +0x1a4d, 0xd10b, 0xbc49, 0xba78, 0xda1f, 0xe903, 0xffda, 0x308c, 0x4a2f, 0x38ce, +0x11cc, 0x299c, 0x105c, 0xcdc3, 0xba31, 0xc03e, 0xe616, 0xe849, 0xfec7, 0x37e1, +0x4e98, 0x3198, 0x12d8, 0x2aeb, 0x03e5, 0xcb29, 0xbccb, 0xc232, 0xe734, 0xeb9c, +0x07ed, 0x3d12, 0x4b48, 0x2515, 0x14e8, 0x330c, 0xfd19, 0xc86d, 0xc241, 0xca17, +0xe64b, 0xe918, 0x09ed, 0x3ba3, 0x4eee, 0x25e2, 0x167a, 0x38a6, 0xffcf, 0xcb0e, +0xc615, 0xd055, 0xe3d3, 0xeafc, 0x1602, 0x3e86, 0x49c2, 0x257e, 0x2166, 0x3bcd, +0xfc55, 0xc4ad, 0xbb87, 0xd6e3, 0xe7a1, 0xe64f, 0x1ddd, 0x4682, 0x4516, 0x1dee, +0x1dc5, 0x2b0d, 0xed86, 0xc590, 0xb97d, 0xd84f, 0xec06, 0xe368, 0x1c7f, 0x4cee, +0x3f07, 0x13c3, 0x289d, 0x28fb, 0xdcf0, 0xc5b7, 0xbdb7, 0xd4a7, 0xec46, 0xecd0, +0x1bda, 0x48cc, 0x4019, 0x0cd7, 0x23a7, 0x2698, 0xd5be, 0xbc3e, 0xb90e, 0xcc6c, +0xddf3, 0xf12b, 0x24f1, 0x4448, 0x3b5c, 0x118e, 0x2441, 0x1c2b, 0xd270, 0xb368, +0xb6c7, 0xdd46, 0xdf51, 0xefbb, 0x3138, 0x49d2, 0x3667, 0x1864, 0x2b86, 0x1073, +0xd35e, 0xbbf4, 0xb47a, 0xdfb4, 0xe8bb, 0xf6b2, 0x353a, 0x4fd4, 0x2e9f, 0x12a8, +0x323d, 0x07c8, 0xcb04, 0xc1fa, 0xbd57, 0xdf17, 0xe6e8, 0xfa82, 0x3052, 0x4c63, +0x2d83, 0x12bf, 0x3366, 0x0318, 0xc6dd, 0xbd85, 0xbc4f, 0xd9e1, 0xe604, 0x0814, +0x34df, 0x4a09, 0x2d9d, 0x148f, 0x2e79, 0xfba1, 0xc12c, 0xb277, 0xbf95, 0xdeb7, +0xe211, 0x10bc, 0x423c, 0x4956, 0x24f7, 0x1571, 0x2434, 0xebbb, 0xc333, 0xb587, +0xc733, 0xedc0, 0xebba, 0x0854, 0x3f2e, 0x6f7e, 0x4a81, 0x0e5e, 0x03fe, 0xcb43, +0xa313, 0xa8c3, 0xd5fe, 0x0fe0, 0x3ce3, 0x6922, 0x5cb3, 0x4541, 0x10b8, 0xc5c1, +0xb7c8, 0xca44, 0xca38, 0xd7f7, 0x38e7, 0x4e53, 0x1cb5, 0x3dfb, 0x3d19, 0x06ab, +0xeda0, 0xe9ef, 0xd83d, 0xf9bf, 0x0ebe, 0xca2a, 0x0a79, 0x510e, 0xf01d, 0xe7eb, +0x3be6, 0x1a2e, 0xf989, 0x353e, 0x099c, 0xe538, 0x16d7, 0xd697, 0xa93c, 0x0407, +0x1bee, 0xf75f, 0x46c6, 0x50e3, 0xf430, 0x1813, 0x169b, 0xaf5d, 0xc57c, 0x0fb5, +0xe638, 0xf7e9, 0x459c, 0x122e, 0x0654, 0x352e, 0xfc93, 0xc262, 0xf99c, 0x072c, +0xc8f1, 0x0bf2, 0x32cd, 0xf85b, 0x1790, 0x25c1, 0xde96, 0xd882, 0x18ea, 0xe834, +0xd77c, 0x3995, 0x1231, 0xeab1, 0x28e3, 0x0cfc, 0xc5ef, 0xf7bd, 0x18f1, 0xd03e, +0x057e, 0x320a, 0xe5e4, 0x07c7, 0x2d5d, 0xd88a, 0xc884, 0x2072, 0xfd6c, 0xd3d0, +0x2a59, 0x1066, 0xe564, 0x22a2, 0x047a, 0xb2ee, 0xeaad, 0x1c28, 0xcc6c, 0xf7e5, +0x3c36, 0xee88, 0xfbfb, 0x3085, 0xddf6, 0xb28a, 0x0aaf, 0xf456, 0xbc45, 0x223a, +0x21ed, 0xe31c, 0x2214, 0x1882, 0xb51a, 0xdbdc, 0x18ba, 0xc1ce, 0xe1c3, 0x397c, +0xed39, 0xf426, 0x3690, 0xe68c, 0xb498, 0x0e83, 0x00c5, 0xc494, 0x1ef7, 0x1b31, +0xdc33, 0x1f84, 0x1b7f, 0xb9c1, 0xdc07, 0x2246, 0xd5fb, 0xeaf7, 0x4a41, 0x042a, +0xed8c, 0x29a9, 0xf4c4, 0xbbf5, 0xffbd, 0x02b3, 0xd089, 0x2a98, 0x349a, 0xe5f4, +0x231d, 0x3682, 0xc042, 0xc757, 0x28ee, 0xe56b, 0xda47, 0x3eac, 0x0d7c, 0xfc17, +0x4512, 0x05d1, 0xbb63, 0x0fc8, 0x0da5, 0xb98f, 0x1ecc, 0x3aea, 0xdbbd, 0x1bd6, +0x4041, 0xd007, 0xd35e, 0x2aaf, 0xea38, 0xe711, 0x3e4a, 0xfa47, 0xef65, 0x3f02, +0xf730, 0xae98, 0x0fae, 0x1e19, 0xc953, 0x1ea3, 0x3db2, 0xe20d, 0x1043, 0x2d87, +0xc8ab, 0xca8a, 0x2270, 0xe769, 0xe021, 0x4751, 0x0a42, 0xed5b, 0x468e, 0x0a0e, +0xa823, 0xfc1e, 0x19ce, 0xc19e, 0x0fd8, 0x3c33, 0xe854, 0x1d91, 0x3f3f, 0xd03c, +0xd290, 0x2d60, 0xe292, 0xd443, 0x4229, 0x0590, 0xe446, 0x3c78, 0x0d2e, 0xbba0, +0x0b10, 0x1fdc, 0xccc6, 0x142f, 0x3174, 0xdc18, 0x1061, 0x371b, 0xd368, 0xd200, +0x2d59, 0xf1a5, 0xdc23, 0x3edd, 0x0fb6, 0xe812, 0x2f6f, 0x0a77, 0xb941, 0xfe00, +0x1d36, 0xcc9c, 0x11f2, 0x404a, 0xe70a, 0x0abc, 0x3965, 0xd3be, 0xbed2, 0x1fe7, +0xee09, 0xd03e, 0x3f07, 0x1799, 0xe33b, 0x342f, 0x1443, 0xb44b, 0xf906, 0x1979, +0xbeaf, 0x0a9f, 0x45b3, 0xe73c, 0x0a6f, 0x3e78, 0xd655, 0xc03d, 0x2087, 0xeb0b, +0xcf7a, 0x4395, 0x1915, 0xe1a6, 0x34d0, 0x134e, 0xac96, 0xeeeb, 0x1aa0, 0xc459, +0x0965, 0x4852, 0xe8bd, 0x0151, 0x3569, 0xd16f, 0xb855, 0x1c6f, 0xed54, 0xcabb, +0x428e, 0x1dfb, 0xdf3c, 0x323b, 0x15f0, 0xab84, 0xe597, 0x18a2, 0xc34f, 0x0120, +0x48dd, 0xedf1, 0x07d1, 0x3f6b, 0xd521, 0xb0ac, 0x1903, 0xf0c7, 0xc122, 0x3959, +0x22ad, 0xe010, 0x2ec7, 0x1837, 0xaaf6, 0xe170, 0x1e2b, 0xc7b9, 0xfdb5, 0x4c53, +0xebef, 0xfb34, 0x3ee4, 0xdef9, 0xb297, 0x1b34, 0xfd76, 0xc42a, 0x391e, 0x2b29, +0xde3f, 0x2dc8, 0x2491, 0xb2a5, 0xe544, 0x2b06, 0xcad8, 0xf507, 0x54ba, 0xf673, +0xfa92, 0x48ca, 0xe9a8, 0xafd3, 0x1ef7, 0x084a, 0xc383, 0x3a6e, 0x3354, 0xdbff, +0x2c3f, 0x2b2a, 0xb115, 0xe1c4, 0x348d, 0xd2d5, 0xf3b1, 0x5801, 0xf84b, 0xf5dc, +0x4897, 0xeba9, 0xac5a, 0x1d11, 0x0bb4, 0xbcd7, 0x32ed, 0x3809, 0xdc0a, 0x2aa8, +0x3035, 0xb63c, 0xddf9, 0x3359, 0xe1e6, 0xdc8c, 0x1666, 0xf007, 0x2428, 0x5dbe, +0x00c2, 0xd781, 0x22f0, 0xf405, 0xa1af, 0xed74, 0xf64b, 0xd808, 0x304e, 0x5c2f, +0x2e87, 0x2aaf, 0x32b5, 0xdc5e, 0xbf90, 0xd852, 0xad5b, 0xdde3, 0x38e2, 0x1923, +0x04d1, 0x62c4, 0x5bb8, 0xe529, 0xeaaf, 0xfd61, 0xc422, 0xc0df, 0xfa6b, 0x0d7b, +0x16ff, 0x3f3e, 0x1d78, 0x1a46, 0x3b1d, 0xf55f, 0xc829, 0xeeb5, 0x0157, 0xdd55, +0xf41a, 0x20b5, 0x1533, 0x2329, 0x1f7c, 0x1523, 0x1e43, 0x1419, 0xdc00, 0xbfc2, +0xfbcf, 0xe187, 0xd1ef, 0x2a18, 0x3c8b, 0x1862, 0x2179, 0x4380, 0x06a1, 0xdc67, +0xe0e4, 0xb854, 0xda4e, 0xf2b5, 0xe744, 0x1f54, 0x57ea, 0x2932, 0xfa55, 0x3961, +0x0fd9, 0xbac6, 0xcdda, 0xd258, 0xcf89, 0xe3ab, 0x0707, 0x1a3e, 0x3967, 0x30cc, +0x0264, 0x2d4f, 0x1e6c, 0xcc01, 0xb70b, 0xd1c4, 0xdac0, 0xca7b, 0xfba8, 0x26c2, +0x371b, 0x359b, 0x23c6, 0x2fb4, 0x0da1, 0xd9bd, 0xae9d, 0xb89c, 0xdb61, 0xcb90, +0x0132, 0x482d, 0x42cd, 0x1e49, 0x2e1f, 0x3691, 0xe7fa, 0xc93c, 0xba66, 0xbb0a, +0xe251, 0xe472, 0x0383, 0x3f08, 0x4cc8, 0x1215, 0x1c80, 0x3b71, 0xe4f3, 0xc431, +0xcbb0, 0xc403, 0xd2f9, 0xf12b, 0x1313, 0x2f50, 0x4774, 0x1313, 0x18c4, 0x4058, +0xed5d, 0xb643, 0xc25a, 0xd92a, 0xcdc3, 0xe267, 0x25f0, 0x37bf, 0x38e3, 0x1db0, +0x2909, 0x2dab, 0xe635, 0xb3fb, 0xb52f, 0xe71a, 0xdad1, 0xdbe5, 0x2dd4, 0x4a45, +0x2f11, 0x15fc, 0x375b, 0x1edc, 0xd95e, 0xc7dd, 0xb91d, 0xdb9a, 0xe8d2, 0xea7d, +0x243c, 0x50aa, 0x347a, 0x0b10, 0x3f2c, 0x24ae, 0xc984, 0xc48d, 0xccec, 0xd726, +0xda77, 0xf845, 0x2782, 0x491b, 0x3bb7, 0x1233, 0x3698, 0x200c, 0xcd29, 0xb25f, +0xc2ef, 0xdd85, 0xd457, 0xfe96, 0x3830, 0x43f0, 0x2e94, 0x1a60, 0x3369, 0x07e9, +0xcb4f, 0xb645, 0xba73, 0xdbb8, 0xdb8f, 0xffae, 0x3a33, 0x48d7, 0x2211, 0x15da, +0x362f, 0xfbd5, 0xc39a, 0xb7fb, 0xc2cf, 0xe1cd, 0xe2d2, 0x0604, 0x36c9, 0x495d, +0x209d, 0x15d2, 0x37e6, 0xf91a, 0xc431, 0xbe00, 0xccf7, 0xe3be, 0xe90a, 0x14f8, +0x3bed, 0x4775, 0x22c5, 0x1a55, 0x2eb8, 0xf7ab, 0xcbee, 0xbb0a, 0xd4b7, 0xea3e, +0xe43a, 0x18fd, 0x455e, 0x429e, 0x1d75, 0x27b4, 0x2e04, 0xeadd, 0xca0c, 0xb834, +0xcf7e, 0xebe8, 0xec12, 0x1d2b, 0x4ce6, 0x4388, 0x1410, 0x2882, 0x2863, 0xdbfa, +0xc201, 0xbc64, 0xd1a8, 0xe40d, 0xf23c, 0x21f6, 0x44ac, 0x3ed5, 0x105b, 0x1f33, +0x1ab9, 0xd393, 0xb879, 0xb8a2, 0xd559, 0xdf87, 0xf31b, 0x2555, 0x3b7c, 0x3066, +0x0f9b, 0x206c, 0x1043, 0xd352, 0xb6fe, 0xb4ae, 0xdacb, 0xdd79, 0xed28, 0x2944, +0x40cc, 0x26e3, 0x1073, 0x2c6d, 0x0a8e, 0xd1fe, 0xbe7c, 0xb79c, 0xdbb0, 0xe28f, +0xf1b8, 0x2782, 0x45d6, 0x288a, 0x146e, 0x3752, 0x08d7, 0xccea, 0xc003, 0xbd89, +0xda98, 0xe4f4, 0x0193, 0x3341, 0x4c65, 0x29eb, 0x1665, 0x385c, 0x0502, 0xcaf3, +0xbfdd, 0xc859, 0xe1b4, 0xe85f, 0x0f40, 0x394b, 0x49b1, 0x2907, 0x1adb, 0x324c, +0xf922, 0xc6e9, 0xb961, 0xcbdd, 0xe7b2, 0xe6bd, 0x11f6, 0x3fef, 0x46fb, 0x1df6, +0x1d0f, 0x2f40, 0xeef5, 0xc4a6, 0xb575, 0xcb9f, 0xe637, 0xea22, 0x1afc, 0x450f, +0x486c, 0x1ca2, 0x2081, 0x27c1, 0xe170, 0xbe81, 0xb610, 0xd4bd, 0xe951, 0xed82, +0x22d8, 0x4920, 0x44fd, 0x1967, 0x24be, 0x230d, 0xdd5b, 0xbd48, 0xb2b2, 0xd74f, +0xebd6, 0xf51e, 0x2d0e, 0x4f15, 0x406d, 0x18ea, 0x2d32, 0x1b37, 0xd68b, 0xc044, +0xb935, 0xdd2b, 0xe8ca, 0xf474, 0x309b, 0x54b6, 0x3c42, 0x14ba, 0x347b, 0x1910, +0xd0a8, 0xbcba, 0xb8c9, 0xdc46, 0xe9fe, 0xfff4, 0x3532, 0x5389, 0x3988, 0x14af, +0x3504, 0x102d, 0xc848, 0xb929, 0xbe6f, 0xdd0e, 0xe430, 0x059c, 0x3ba7, 0x4f58, +0x2e33, 0x10f0, 0x2a2f, 0xfdb9, 0xc2f6, 0xafbb, 0xbb99, 0xe4f6, 0xe5f2, 0x07f0, +0x3ce6, 0x4606, 0x2206, 0x1803, 0x2b80, 0xee52, 0xc24f, 0xb46d, 0xbb4a, 0xe32e, +0xe633, 0x0953, 0x4238, 0x4b00, 0x1a28, 0x1723, 0x280d, 0xe191, 0xbf29, 0xb512, +0xbb95, 0xe083, 0xee77, 0x11e1, 0x3d02, 0x4905, 0x18fb, 0x175c, 0x25d3, 0xdaba, +0xb4bd, 0xb51c, 0xcc2b, 0xe1c5, 0xed1f, 0x1d15, 0x42ae, 0x42e0, 0x12aa, 0x15c7, +0x1ce6, 0xdd86, 0xbb2e, 0xb339, 0xd4c6, 0xe6a3, 0xee5c, 0x246d, 0x4599, 0x378a, +0x117f, 0x247f, 0x1587, 0xd40f, 0xc211, 0xba12, 0xda04, 0xe9d2, 0xf097, 0x2593, +0x4a0d, 0x33f2, 0x0e58, 0x2f92, 0x1796, 0xd23e, 0xc5d1, 0xbd1d, 0xd6a8, 0xea03, +0xfd4b, 0x2b76, 0x4d07, 0x372b, 0x12c1, 0x3610, 0x1455, 0xc9fa, 0xc082, 0xc65f, +0xdbf3, 0xe5fa, 0x0864, 0x3695, 0x4d6d, 0x3441, 0x13be, 0x2f2f, 0x090c, 0xce34, +0xb830, 0xc505, 0xfada, 0xec81, 0xfb68, 0x2eba, 0x319e, 0x3ce2, 0x44fb, 0x1d01, +0xdd9d, 0xd66a, 0xb232, 0xa016, 0xf64b, 0xfff6, 0x09d5, 0x7376, 0x8570, 0x20f6, +0xfe82, 0xf200, 0x9a52, 0xa325, 0xc4f5, 0xcbde, 0x2c79, 0x67bb, 0x4c8f, 0x46a8, +0x523c, 0xf79d, 0xabd0, 0xda12, 0xcc15, 0xb71c, 0xf62d, 0x1e60, 0x327a, 0x4b18, +0x2770, 0xf598, 0x157f, 0x094e, 0xbe89, 0xebf7, 0x2a77, 0xf098, 0xe9ee, 0x28e2, +0xf32a, 0xc056, 0x237c, 0x271d, 0xe4a4, 0x3978, 0x35ba, 0xe536, 0x10f5, 0xfdaa, +0xa68b, 0xd3ea, 0x212f, 0xea07, 0x08a6, 0x5e96, 0x0ae2, 0x07c6, 0x37b6, 0xd70c, +0xb092, 0xfe7d, 0xf21a, 0xcad9, 0x34d2, 0x36e9, 0xf083, 0x37da, 0x22a5, 0xbc01, +0xdc00, 0x1395, 0xd553, 0xe5e3, 0x3bac, 0xfd08, 0xfe92, 0x3f5c, 0xee23, 0xbc45, +0x0d39, 0x0a9c, 0xc61a, 0x146f, 0x2951, 0xdb39, 0x171e, 0x293d, 0xc2e7, 0xdd20, +0x32b9, 0xe330, 0xd7b9, 0x3cc5, 0xf7d9, 0xdcad, 0x311b, 0xf1df, 0xb0b8, 0x105b, +0x1a8c, 0xca51, 0x1be5, 0x2f80, 0xd616, 0x11ca, 0x2652, 0xbc4e, 0xcb96, 0x21a7, +0xe4b4, 0xe253, 0x4487, 0x0196, 0xe674, 0x3516, 0xfb04, 0xb3bc, 0xfeb8, 0x1079, +0xc24e, 0x088e, 0x3298, 0xe80b, 0x14c1, 0x2ed3, 0xd1a8, 0xcf82, 0x2207, 0xee50, +0xcf02, 0x2dec, 0x08af, 0xe42a, 0x344d, 0x0fb2, 0xb971, 0xfa3f, 0x1df7, 0xd32e, +0x11cc, 0x3722, 0xda30, 0x07ac, 0x3d3f, 0xd7ab, 0xc34d, 0x271b, 0xfe76, 0xdbb3, +0x3d61, 0x18ed, 0xed9b, 0x3389, 0x0c14, 0xba7c, 0xf987, 0x187e, 0xcd50, 0x1066, +0x476b, 0xf480, 0x1314, 0x42bb, 0xe5fe, 0xc3be, 0x1389, 0xf39f, 0xd575, 0x3648, +0x1e47, 0xf2fa, 0x3e74, 0x234a, 0xbf4c, 0xf288, 0x221b, 0xc710, 0xfa3c, 0x5035, +0xfb9e, 0x0502, 0x44eb, 0xeee6, 0xc43e, 0x1d61, 0xfb1c, 0xc9de, 0x3c74, 0x2aae, +0xe190, 0x3674, 0x2619, 0xaff2, 0xe8b6, 0x2937, 0xc78c, 0xf5df, 0x540b, 0xfb05, +0x020b, 0x434b, 0xe0e6, 0xacc1, 0x10fc, 0xf91d, 0xbcee, 0x3592, 0x3566, 0xe36e, +0x337d, 0x30bf, 0xb32f, 0xd426, 0x2162, 0xc820, 0xe042, 0x4c56, 0xfe46, 0xf61f, +0x4a89, 0xf803, 0xad4d, 0x11a6, 0x0a6c, 0xb6d1, 0x253a, 0x3311, 0xd5a0, 0x2667, +0x3498, 0xb800, 0xd872, 0x2f83, 0xd41e, 0xe4e1, 0x5463, 0xf738, 0xea30, 0x492c, +0xf007, 0xaab2, 0x16ec, 0x11da, 0xc262, 0x2e37, 0x3e3b, 0xdd03, 0x22dd, 0x30e8, +0xb674, 0xd170, 0x2e2c, 0xdcd6, 0xe399, 0x56b9, 0x04f1, 0xea52, 0x4a44, 0xfd31, +0xa60d, 0x09bf, 0x162d, 0xbcc9, 0x1f55, 0x4352, 0xde68, 0x1cd9, 0x3c0d, 0xbf98, +0xc8d8, 0x2a1f, 0xdc64, 0xd503, 0x4d6c, 0x0785, 0xe7a8, 0x476e, 0xff01, 0xa5cd, +0x064f, 0x17bf, 0xbe55, 0x1800, 0x3b7b, 0xd4d9, 0x10f0, 0x3690, 0xbf8d, 0xc71e, +0x297a, 0xe393, 0xd729, 0x47fe, 0x0285, 0xda51, 0x391b, 0xfeb3, 0xa48e, 0xfbc3, +0x19a9, 0xc3a0, 0x108e, 0x3eae, 0xdebc, 0x0f12, 0x36a2, 0xc4c0, 0xbf91, 0x1e2f, +0xe5de, 0xd395, 0x4354, 0x10d5, 0xe319, 0x39c0, 0x0a87, 0xace4, 0xf7d2, 0x18b7, +0xc582, 0x0b6f, 0x3da5, 0xe290, 0x0dde, 0x3c3e, 0xcfe6, 0xc55b, 0x253d, 0xeca1, +0xcf94, 0x3b7a, 0x0f41, 0xdf74, 0x366b, 0x1370, 0xb644, 0xfb14, 0x1f1e, 0xc7c9, +0x07b4, 0x41e9, 0xe70d, 0x071d, 0x3d77, 0xdb66, 0xc478, 0x265f, 0xf916, 0xd180, +0x3ee6, 0x1beb, 0xdeb9, 0x31d9, 0x191a, 0xb479, 0xf52c, 0x2801, 0xccf7, 0x03d4, +0x4bd7, 0xedac, 0x016a, 0x3a65, 0xd6fc, 0xbe27, 0x2266, 0x07f4, 0xd0c6, 0x0dcf, +0x1281, 0x0eb0, 0x45e8, 0x1d9a, 0xd8e3, 0x05c1, 0x084a, 0xb5be, 0xdaec, 0x09a2, +0xe1b9, 0x11ee, 0x6086, 0x43d5, 0x17db, 0x2892, 0xfb50, 0xb60e, 0xc9f7, 0xc054, +0xc68d, 0x23e0, 0x2ffe, 0x062b, 0x4e99, 0x701f, 0xf80e, 0xd329, 0xff2c, 0xcb90, +0xa2d6, 0xed8c, 0x1910, 0x0699, 0x2f80, 0x3089, 0x1d1c, 0x374f, 0x03b2, 0xc14c, +0xd8b6, 0xfb3d, 0xd617, 0xe1a7, 0x22a2, 0x2021, 0x1a55, 0x1dcb, 0x2025, 0x150c, +0x0753, 0xe11c, 0xb5ad, 0xeb4f, 0xe450, 0xcc01, 0x1b1d, 0x3faa, 0x18aa, 0x0e6d, +0x4970, 0x17e5, 0xcba3, 0xd80b, 0xbb23, 0xc5d9, 0xe755, 0xf01c, 0x158e, 0x5028, +0x3e7d, 0xfcdb, 0x3482, 0x21eb, 0xbae5, 0xbfbe, 0xd2fb, 0xcfc4, 0xd821, 0x0aca, +0x27bb, 0x3924, 0x3d1e, 0x0e86, 0x271a, 0x205b, 0xd16c, 0xaf53, 0xc9df, 0xe377, +0xce6f, 0xfa21, 0x34f1, 0x4083, 0x3410, 0x259d, 0x319d, 0x06b6, 0xd9dc, 0xb750, +0xb2df, 0xde42, 0xd8e4, 0xfe96, 0x4970, 0x54f6, 0x25ba, 0x2520, 0x3c2e, 0xedea, +0xc061, 0xba0d, 0xba48, 0xde9c, 0xeb84, 0x0af2, 0x401e, 0x56b2, 0x1aa5, 0x0f66, +0x36cf, 0xe844, 0xb80e, 0xc1dd, 0xc246, 0xcece, 0xe9fe, 0x177a, 0x32d2, 0x4547, +0x1818, 0x0c52, 0x30b6, 0xec12, 0xaf1a, 0xb2f2, 0xcfa8, 0xd2b1, 0xdf9e, 0x2116, +0x3ab2, 0x35ab, 0x1b48, 0x247c, 0x25e1, 0xdedd, 0xb1e5, 0xaf2b, 0xdb4a, 0xe17b, +0xdfc7, 0x27da, 0x4f71, 0x34be, 0x0ed1, 0x2d58, 0x1ef5, 0xd091, 0xc1bb, 0xbe47, +0xd524, 0xeaee, 0xf469, 0x2112, 0x4cf4, 0x3d3e, 0x0aff, 0x304c, 0x281a, 0xcdc7, +0xbbed, 0xd088, 0xe04a, 0xdeea, 0xfee9, 0x2f94, 0x47fc, 0x3dff, 0x1a27, 0x31e9, +0x1deb, 0xd894, 0xbec6, 0xc6e8, 0xe5fc, 0xe340, 0x014d, 0x3cd1, 0x4e2f, 0x32bd, +0x1d0c, 0x372e, 0x0af1, 0xce88, 0xc502, 0xc97d, 0xe495, 0xeb9c, 0x0798, 0x374a, +0x4e4d, 0x2a7e, 0x16b3, 0x3ddd, 0x08ed, 0xc949, 0xc5ee, 0xce08, 0xdf28, 0xe8b7, +0x0fe9, 0x3689, 0x490a, 0x2817, 0x1714, 0x38c1, 0x0109, 0xc527, 0xc1af, 0xd087, +0xdced, 0xe41e, 0x12dc, 0x3476, 0x3cd2, 0x201b, 0x1cbb, 0x2e40, 0xf269, 0xc5fe, +0xb844, 0xcaac, 0xdf7f, 0xe02f, 0x0f09, 0x373a, 0x383b, 0x13eb, 0x21ef, 0x2cbc, +0xe41a, 0xc568, 0xb82e, 0xc319, 0xdca2, 0xe63b, 0x0f93, 0x3ca2, 0x4202, 0x11af, +0x2392, 0x2ac6, 0xd906, 0xb7d3, 0xb715, 0xce35, 0xdb89, 0xef49, 0x2213, 0x3ff6, +0x3f4b, 0x14d9, 0x2398, 0x1f27, 0xd7ab, 0xb866, 0xb50a, 0xd74b, 0xe11e, 0xf58b, +0x2ece, 0x467f, 0x3963, 0x1933, 0x2caa, 0x1426, 0xd5d8, 0xbe81, 0xb620, 0xdf76, +0xe789, 0xf65e, 0x349f, 0x505c, 0x3366, 0x16ea, 0x3646, 0x0f5a, 0xd18a, 0xc1b2, +0xb7f7, 0xdd2a, 0xeb2f, 0xfd79, 0x30f5, 0x516e, 0x31d6, 0x12af, 0x388a, 0x0be7, +0xca82, 0xbdf0, 0xbc89, 0xda3c, 0xe687, 0x06e8, 0x3695, 0x5204, 0x3323, 0x158c, +0x3447, 0x05f1, 0xca02, 0xb88d, 0xc1cf, 0xe381, 0xea5c, 0x110d, 0x40c6, 0x4e27, +0x2a69, 0x1e8c, 0x30b5, 0xf349, 0xc5eb, 0xb6f0, 0xc440, 0xe7cd, 0xebf2, 0x1281, +0x4308, 0x4ce7, 0x1f25, 0x1bf5, 0x2d5c, 0xe897, 0xc291, 0xb85f, 0xc6be, 0xe556, +0xf257, 0x1cc0, 0x442d, 0x4d14, 0x200a, 0x1f36, 0x26a6, 0xdf96, 0xbef2, 0xb898, +0xd0e1, 0xe9a1, 0xf513, 0x2536, 0x486a, 0x4666, 0x1bd4, 0x216e, 0x1a61, 0xd966, +0xbfd6, 0xb46f, 0xd414, 0xeb0f, 0xf5c1, 0x2917, 0x4b03, 0x3b01, 0x120a, 0x279d, +0x127b, 0xce60, 0xc0b2, 0xbaa1, 0xd93a, 0xea16, 0xf79d, 0x29e1, 0x4e28, 0x3952, +0x0c9b, 0x2918, 0x0da3, 0xc8e3, 0xbf5d, 0xbd5b, 0xd7be, 0xe6b5, 0xff78, 0x2bfe, +0x474e, 0x30ea, 0x0afb, 0x2996, 0x09da, 0xc618, 0xb66b, 0xc002, 0xde8f, 0xe009, +0x0068, 0x34b1, 0x479e, 0x290d, 0x1057, 0x2cf4, 0x0037, 0xc901, 0xba19, 0xc161, +0xe4c1, 0xe626, 0x06b7, 0x3bce, 0x46e6, 0x1fc6, 0x1c43, 0x37dd, 0xf4a3, 0xc6e9, +0xc0da, 0xc57a, 0xe45d, 0xe96e, 0x0b68, 0x3e09, 0x4c53, 0x1c9e, 0x1978, 0x350c, +0xec82, 0xc2fd, 0xc069, 0xc683, 0xdf64, 0xee42, 0x1619, 0x39da, 0x4685, 0x1dc8, +0x1c78, 0x2de4, 0xe52f, 0xbb56, 0xb88c, 0xd10f, 0xe424, 0xed39, 0x226e, 0x45c9, +0x4373, 0x1798, 0x1d16, 0x2213, 0xe050, 0xbf9c, 0xb315, 0xd32f, 0xe7c5, 0xec31, +0x23d2, 0x48dd, 0x38f4, 0x0de0, 0x25fc, 0x1996, 0xcef8, 0xbc82, 0xb55a, 0xd59c, +0xe89f, 0xefe0, 0x23a4, 0x4993, 0x37a4, 0x0c32, 0x2be5, 0x17d1, 0xcddd, 0xc07a, +0xb8e9, 0xd329, 0xe54b, 0xfb4e, 0x2cfc, 0x4d3a, 0x3bad, 0x0fee, 0x2b2b, 0x1047, +0xc712, 0xb4f7, 0xbbf0, 0xdc5f, 0xe2f3, 0xfef6, 0x224e, 0x4c36, 0x6c76, 0x2b5c, +0xfa57, 0xe594, 0xbdb1, 0x8b0a, 0xa7ca, 0x0160, 0x0786, 0x400c, 0x8424, 0x5796, +0x1be9, 0xf540, 0xbdf9, 0x9768, 0xc4df, 0xbd3d, 0xdd3d, 0x63d3, 0x4e65, 0x1fea, +0x4e57, 0x38bb, 0xd91b, 0xcd56, 0xe3ad, 0xbffd, 0xfbd6, 0x0607, 0xdb8e, 0x3ccb, +0x4192, 0xd6b0, 0xf73b, 0x42bf, 0xeff1, 0xe330, 0x3dbd, 0xfa84, 0xdccf, 0x13df, +0xde74, 0xb718, 0x0b45, 0x28d2, 0xfb25, 0x3fa0, 0x4276, 0xedb2, 0x1335, 0x0954, +0xadc9, 0xc6fc, 0x1522, 0xf53c, 0xfe45, 0x4b87, 0x18e7, 0x04a7, 0x3412, 0xee3f, +0xb321, 0xfd48, 0x04c9, 0xc508, 0x15a8, 0x372c, 0xeb2f, 0x165c, 0x2ca0, 0xce55, +0xd34d, 0x1c95, 0xe2fd, 0xdd7e, 0x3294, 0xf905, 0xe452, 0x34a4, 0x04d0, 0xbdd7, +0x0a01, 0x1d14, 0xce45, 0x0c02, 0x2888, 0xd716, 0x03dc, 0x2b4a, 0xd5cd, 0xd68c, +0x2ef2, 0xfc10, 0xda6f, 0x316f, 0x0773, 0xda8e, 0x2215, 0x0507, 0xb6f3, 0xfe70, +0x2a5d, 0xd6c8, 0x0b84, 0x4188, 0xe8c4, 0xfdd0, 0x2ec5, 0xd794, 0xc3a2, 0x2279, +0xf779, 0xd09d, 0x423d, 0x27fc, 0xe6f8, 0x2f40, 0x1b5a, 0xbc8b, 0xf157, 0x1fb4, +0xcaa0, 0xfa3a, 0x4232, 0xf922, 0x0ecb, 0x3f09, 0xe3ee, 0xc318, 0x1cef, 0xfdc1, +0xca4c, 0x2a22, 0x20f1, 0xe87d, 0x279c, 0x1afc, 0xbe72, 0xe720, 0x2220, 0xd1d4, +0xf6a7, 0x4e3e, 0xf5f4, 0xecca, 0x3b54, 0xf567, 0xb06f, 0x0a45, 0x0b98, 0xc973, +0x28f0, 0x2f21, 0xdfeb, 0x24a0, 0x2810, 0xaef4, 0xd207, 0x2ab3, 0xcd51, 0xdc82, +0x4ca3, 0xfdde, 0xef82, 0x40ab, 0xf143, 0xac33, 0x082b, 0xfdac, 0xb9b7, 0x28f3, +0x2b71, 0xd054, 0x2723, 0x3651, 0xb6cf, 0xd176, 0x2ba8, 0xd75d, 0xdb92, 0x450f, +0xfd8f, 0xec9c, 0x3e23, 0xf598, 0xaf02, 0x111a, 0x135a, 0xbd2d, 0x2334, 0x3d0a, +0xd3d8, 0x1768, 0x3bb0, 0xbab9, 0xc676, 0x311a, 0xe06f, 0xd889, 0x5018, 0x070b, +0xe756, 0x4942, 0xfd09, 0x9d71, 0x0bcc, 0x1bed, 0xb4ce, 0x1c66, 0x47ec, 0xdc5f, +0x1b74, 0x4238, 0xc481, 0xcf1b, 0x32f5, 0xe1ce, 0xda85, 0x4e4d, 0x0437, 0xe474, +0x4777, 0x07ed, 0xaff9, 0x127d, 0x24cd, 0xc370, 0x199d, 0x3e29, 0xd8bf, 0x14fd, +0x3d8b, 0xc8ea, 0xd1b6, 0x3766, 0xecd3, 0xda6f, 0x4fa7, 0x0ce7, 0xdddd, 0x4019, +0x0c05, 0xaedb, 0x0dbc, 0x2b4c, 0xcdd3, 0x1ddc, 0x470d, 0xe283, 0x1764, 0x40d4, +0xcabb, 0xcd66, 0x3585, 0xf1c2, 0xdda9, 0x4ffb, 0x11e4, 0xe28a, 0x415d, 0x12d2, +0xb486, 0x055e, 0x1fd4, 0xc66e, 0x12ca, 0x417e, 0xe4e2, 0x1229, 0x3e2a, 0xd10c, +0xc800, 0x29e0, 0xed4e, 0xd10c, 0x3fcc, 0x11a3, 0xe1f9, 0x3ad7, 0x16ca, 0xb727, +0x0155, 0x2400, 0xc8c6, 0x0c22, 0x40bf, 0xe1dc, 0x06e9, 0x3e89, 0xd924, 0xc59a, +0x27a2, 0xf22c, 0xcfad, 0x3f51, 0x14cd, 0xda51, 0x2f15, 0x1235, 0xae68, 0xedef, +0x1983, 0xc602, 0x06d9, 0x46e6, 0xe9de, 0x01cd, 0x3928, 0xd470, 0xb512, 0x15ff, +0xec31, 0xc9cd, 0x3f78, 0x243a, 0xe15e, 0x29ed, 0x1245, 0xaba1, 0xe5e9, 0x199e, +0xc296, 0xfe39, 0x4ac5, 0xeb5f, 0xfa56, 0x3c11, 0xd94f, 0xae50, 0x1511, 0xf001, +0xbde3, 0x36c2, 0x230d, 0xd7fe, 0x2c17, 0x1e3a, 0xaa06, 0xe31f, 0x226e, 0xc144, +0xf626, 0x4f4e, 0xeb1e, 0xf4dd, 0x3e8c, 0xdc0a, 0xaf47, 0x1e56, 0xfed8, 0xc48e, +0x3d56, 0x2b0f, 0xd682, 0x2918, 0x1dec, 0xa955, 0xe5bb, 0x2b6b, 0xc9b8, 0xfa77, +0x56f8, 0xf481, 0xfb61, 0x4479, 0xdf2e, 0xabca, 0x1c70, 0xffe7, 0xbc88, 0x3a59, +0x3826, 0xe054, 0x2f4b, 0x2c11, 0xb1dd, 0xe03e, 0x2b29, 0xc998, 0xf18d, 0x59ee, +0xf7ac, 0xf73d, 0x4d8e, 0xed67, 0xb1d8, 0x21a9, 0x1848, 0xccda, 0x07a8, 0xffcd, +0xfa23, 0x5aea, 0x3797, 0xd62f, 0x0ab0, 0x245e, 0xb225, 0xc27c, 0x09d2, 0xd863, +0xfe56, 0x5bb6, 0x4ddb, 0x2aa0, 0x3bda, 0x0b4a, 0xc172, 0xdcc2, 0xc178, 0xb04a, +0x211f, 0x3a69, 0xf99a, 0x3316, 0x7dfa, 0x1afe, 0xd954, 0x046d, 0xdf49, 0xb051, +0xdb3e, 0x09de, 0x0f9f, 0x347e, 0x2f84, 0x0af2, 0x3895, 0x1ade, 0xc5b6, 0xd468, +0xfe63, 0xe6d0, 0xddae, 0x14b5, 0x175e, 0x16c3, 0x1fae, 0x122e, 0x1fcb, 0x16f5, +0xef7f, 0xbe99, 0xdd8a, 0xf61b, 0xc6ce, 0x019a, 0x43c3, 0x2909, 0x1168, 0x39ad, +0x2f76, 0xde14, 0xddd2, 0xc963, 0xbd2a, 0xea45, 0xea62, 0x0266, 0x4616, 0x4e1c, +0x015e, 0x18de, 0x36f6, 0xcf20, 0xb656, 0xd210, 0xd017, 0xd8b3, 0xfb2f, 0x1950, +0x2b27, 0x3c69, 0x095e, 0x0ec5, 0x2d9c, 0xe85e, 0xb75b, 0xc4ac, 0xe1a3, 0xcfe0, +0xdf2a, 0x1a10, 0x3183, 0x376b, 0x1d4c, 0x237d, 0x185c, 0xe4f3, 0xbf7b, 0xab18, +0xcfc2, 0xd346, 0xe11c, 0x2903, 0x45ea, 0x24aa, 0x102b, 0x353d, 0x080f, 0xc677, +0xbdeb, 0xb32e, 0xd477, 0xe331, 0xef66, 0x2325, 0x4c5c, 0x27b3, 0xfaf5, 0x3106, +0x1252, 0xc709, 0xca81, 0xcbe5, 0xd04d, 0xdd4e, 0xfd3c, 0x1a5f, 0x3c21, 0x2935, +0x0252, 0x3750, 0x1e8e, 0xc8e4, 0xb83e, 0xd48f, 0xdc6e, 0xce04, 0x0585, 0x31bc, +0x360a, 0x2009, 0x14c2, 0x394e, 0x10a3, 0xc93d, 0xafa5, 0xd6b1, 0xef04, 0xcd94, +0x0467, 0x48be, 0x4051, 0x1437, 0x1fb5, 0x3cd3, 0xf79e, 0xcc8f, 0xc153, 0xcd1f, +0xeeb7, 0xe37c, 0x03cf, 0x4174, 0x4958, 0x1000, 0x1d3b, 0x4853, 0xf289, 0xbea9, +0xc9e2, 0xd4e7, 0xde7b, 0xe633, 0x1461, 0x3e75, 0x4911, 0x1b5a, 0x2106, 0x4059, +0xf467, 0xbf92, 0xc1f8, 0xd995, 0xdcf6, 0xe0ba, 0x1eb5, 0x4600, 0x4167, 0x1d25, +0x2ef9, 0x3639, 0xe56b, 0xc105, 0xc027, 0xd70a, 0xe1eb, 0xea01, 0x247e, 0x4c66, +0x3f10, 0x14c8, 0x3245, 0x3094, 0xdd32, 0xc132, 0xc147, 0xd9a1, 0xe18c, 0xeeb8, +0x2824, 0x4a69, 0x395c, 0x1015, 0x3040, 0x238d, 0xd48a, 0xc21b, 0xc53b, 0xdc6d, +0xe1ce, 0xf6ef, 0x2ad6, 0x46b7, 0x34da, 0x1114, 0x34eb, 0x1e8c, 0xd361, 0xbe8c, +0xc1c6, 0xe012, 0xdf71, 0xf81f, 0x3359, 0x4a06, 0x2d71, 0x1454, 0x38da, 0x0f58, +0xccf4, 0xbea1, 0xbbb5, 0xdb25, 0xe2c4, 0xfd77, 0x3627, 0x5121, 0x2c35, 0x15a0, +0x3989, 0x0018, 0xc03f, 0xbaf5, 0xc3cd, 0xe02b, 0xe6c9, 0x0e3d, 0x3eb5, 0x4d58, +0x26cb, 0x1318, 0x2fe0, 0xf891, 0xc27d, 0xb828, 0xc71e, 0xe21d, 0xe699, 0x15c5, +0x4058, 0x45ef, 0x2262, 0x1985, 0x28bc, 0xeca7, 0xc32c, 0xb7e4, 0xcfc1, 0xea07, +0xe4ac, 0x173a, 0x461c, 0x3eba, 0x15fa, 0x2087, 0x2703, 0xe29a, 0xc4b3, 0xb600, +0xc8f7, 0xe687, 0xe9ba, 0x15c4, 0x426b, 0x3e74, 0x0edd, 0x1f75, 0x23b8, 0xd925, +0xc0ab, 0xba1f, 0xcb2d, 0xe095, 0xeca2, 0x1990, 0x40e5, 0x3c5d, 0x1023, 0x24d2, +0x1ebd, 0xd280, 0xbab7, 0xba30, 0xd226, 0xe0d0, 0xf39a, 0x22d6, 0x4063, 0x34fc, +0x0f3b, 0x2825, 0x190f, 0xd310, 0xbcd9, 0xbd2e, 0xd80b, 0xdd5a, 0xf3ce, 0x2b22, +0x4783, 0x32fb, 0x13a4, 0x3361, 0x1484, 0xcf84, 0xc067, 0xc184, 0xdb6a, 0xe3e8, +0x0230, 0x3122, 0x4768, 0x320a, 0x16c1, 0x3427, 0x0aed, 0xc9bb, 0xba81, 0xc328, +0xe12c, 0xe1e3, 0x07e1, 0x3ec1, 0x4f67, 0x2ddc, 0x15f0, 0x2f32, 0xfe24, 0xc964, +0xbbfd, 0xc754, 0xe848, 0xe9ef, 0x1196, 0x41b3, 0x4b5f, 0x2760, 0x1f91, 0x35ce, +0xf3d5, 0xc722, 0xbfad, 0xcade, 0xe85a, 0xeaa5, 0x1660, 0x4809, 0x4c60, 0x1f11, +0x212f, 0x36b0, 0xefd1, 0xc764, 0xbc28, 0xc837, 0xe455, 0xec50, 0x1c88, 0x4b3c, +0x4de3, 0x2041, 0x28c6, 0x32d7, 0xe1ea, 0xbea7, 0xbd29, 0xd1a9, 0xe60c, 0xf02d, +0x2433, 0x4c51, 0x4811, 0x1816, 0x23ce, 0x292b, 0xdf35, 0xbcec, 0xb6b3, 0xd50d, +0xe49a, 0xee6a, 0x2b0c, 0x4b27, 0x39f9, 0x15f5, 0x29d8, 0x1859, 0xd36e, 0xc04c, +0xb5ab, 0xd4b0, 0xe461, 0xec0c, 0x2803, 0x4fb2, 0x371f, 0x0f49, 0x2de8, 0x1063, +0xc7dd, 0xbbcc, 0xb195, 0xcdad, 0xe2b5, 0xf6ed, 0x29d0, 0x4ac5, 0x31e4, 0x0aa9, +0x2acb, 0x0735, 0xbe72, 0xb39c, 0xb620, 0xd1d9, 0xdc5c, 0xfcdd, 0x307a, 0x46be, +0x2c7c, 0x0a2b, 0x22ab, 0xfca8, 0xc0ac, 0xafc4, 0xb815, 0xde74, 0xe13f, 0x0269, +0x370e, 0x4107, 0x21c4, 0x13c8, 0x26a3, 0xf061, 0xc3ac, 0xb5ad, 0xbbea, 0xe2b6, +0xe314, 0x03cd, 0x3a8a, 0x453e, 0x1c0b, 0x167a, 0x2afd, 0xe8ae, 0xc330, 0xbb1d, +0xbd71, 0xdff6, 0xea8c, 0x0cd6, 0x3cc1, 0x4b59, 0x1e08, 0x1762, 0x288a, 0xe327, +0xbcf5, 0xbc04, 0xcc41, 0xe3b8, 0xf214, 0x1f63, 0x40b7, 0x4556, 0x1932, 0x14e9, +0x22d4, 0xe5af, 0xc176, 0xbaf1, 0xd516, 0xeaa3, 0xed1a, 0x10a5, 0x4490, 0x6d0e, +0x387d, 0x06ad, 0xf979, 0xc011, 0x9e3c, 0xad92, 0xe582, 0x1234, 0x4531, 0x6a71, +0x4d3b, 0x3443, 0xfe14, 0xbf35, 0xb76f, 0xcbe7, 0xc8b4, 0xe9aa, 0x501f, 0x43d8, +0x1d18, 0x4560, 0x2e0d, 0xf4de, 0xea75, 0xe7b7, 0xd73f, 0x0fdc, 0x11cd, 0xd145, +0x29c3, 0x44d4, 0xdad6, 0xf4f0, 0x3e51, 0x092e, 0x07b6, 0x43ce, 0xfd5a, 0xf591, +0x1f19, 0xc2ea, 0xb2d7, 0x198e, 0x140f, 0xfa53, 0x5e12, 0x4564, 0xf1ae, 0x2e33, +0x0b49, 0xa4bb, 0xdaed, 0x1485, 0xdc90, 0x0cbf, 0x4f0d, 0x0854, 0x15b5, 0x3b75, +0xe6b5, 0xbe4e, 0x0981, 0xfc23, 0xc6c6, 0x22a2, 0x2984, 0xf1db, 0x27f9, 0x1ab0, +0xc60e, 0xe49e, 0x21a8, 0xd681, 0xe953, 0x41f4, 0xf337, 0xeb9d, 0x3560, 0xf514, +0xbd12, 0x135a, 0x1144, 0xc99f, 0x21e0, 0x2271, 0xd155, 0x1a35, 0x25a3, 0xbec7, +0xdc7d, 0x31ed, 0xe802, 0xe46d, 0x3ef6, 0xfc72, 0xeb7d, 0x2fc5, 0xecf1, 0xb132, +0x0d6d, 0x171d, 0xcaf3, 0x20be, 0x36cd, 0xdeff, 0x1430, 0x2c97, 0xc49c, 0xcab8, +0x247c, 0xe2b5, 0xd3f1, 0x3d93, 0x0c22, 0xee37, 0x3907, 0x01ea, 0xb32c, 0x07e5, +0x153f, 0xb7d0, 0x0a61, 0x333d, 0xdb8a, 0x1138, 0x3892, 0xcfca, 0xccd1, 0x2831, +0xeb12, 0xd73f, 0x357e, 0xfe1d, 0xe21b, 0x300a, 0xfded, 0xaf91, 0xffaf, 0x1ba1, +0xc5b1, 0x0c52, 0x3c73, 0xe33f, 0xfac8, 0x2338, 0xd7bc, 0xc7f4, 0x0f99, 0xe739, +0xd9e0, 0x3980, 0x0e6d, 0xe382, 0x335e, 0x15f9, 0xae82, 0xe698, 0x1c86, 0xca1d, +0xf6f1, 0x34d2, 0xf14d, 0x0fec, 0x3c9a, 0xdef1, 0xc8df, 0x20f3, 0xea68, 0xc50a, +0x33ef, 0x1185, 0xd7d4, 0x2ebc, 0x2178, 0xc1c1, 0xf72b, 0x2354, 0xd2eb, 0x0168, +0x30db, 0xe0a6, 0x05a6, 0x3bad, 0xdc09, 0xc45f, 0x276d, 0xfd11, 0xcf0a, 0x363e, +0x204b, 0xe4d0, 0x2851, 0x199c, 0xbc3c, 0xe9df, 0x1c38, 0xcf05, 0x03b3, 0x4c0e, +0xf6ee, 0x068d, 0x44a0, 0xe3e0, 0xb163, 0x17fa, 0xfdee, 0xc709, 0x37cd, 0x2e63, +0xea1c, 0x3531, 0x2ca0, 0xbf9e, 0xeeec, 0x2b06, 0xc5f7, 0xf1c8, 0x5385, 0xfc84, +0x0002, 0x49cb, 0xf52b, 0xbfbf, 0x204d, 0x04c6, 0xc649, 0x35e9, 0x30b9, 0xe658, +0x31b2, 0x2cb7, 0xb96b, 0xe5a8, 0x2f24, 0xd410, 0xf6ab, 0x5771, 0x04b9, 0xfc36, +0x3ec2, 0xecd7, 0xb28a, 0x1904, 0x0954, 0xc24d, 0x3764, 0x3ade, 0xddf2, 0x29ce, +0x3445, 0xb4d5, 0xd352, 0x2d79, 0xd037, 0xe09a, 0x535a, 0x01a5, 0xf095, 0x48ef, +0xf767, 0xa8aa, 0x11b3, 0x097b, 0xb15c, 0x2a36, 0x3db4, 0xd6cd, 0x24b8, 0x3712, +0xb430, 0xcdb4, 0x2b60, 0xd3aa, 0xe09b, 0x53eb, 0xfc4a, 0xea6b, 0x4b2a, 0xf90e, +0xa8c8, 0x1124, 0x129b, 0xbaac, 0x269d, 0x4030, 0xda96, 0x20e1, 0x3a2e, 0xbd1c, +0xd0d8, 0x3158, 0xdd88, 0xdee5, 0x57dc, 0x0a22, 0xeb70, 0x4be8, 0x027e, 0xa602, +0x0680, 0x1714, 0xbfed, 0x242e, 0x47b1, 0xe011, 0x1d8e, 0x3eca, 0xc029, 0xc616, +0x2e06, 0xe28f, 0xd4aa, 0x4f9e, 0x0f06, 0xe649, 0x438d, 0x0564, 0xa6f1, 0x02f6, +0x1bd3, 0xc020, 0x18b7, 0x4204, 0xd71b, 0x0fc8, 0x3e52, 0xc2b8, 0xbf78, 0x2bd7, +0xe6d3, 0xce7b, 0x47d7, 0x0a5d, 0xd7d4, 0x39c7, 0x074e, 0xa273, 0xfc77, 0x1fef, +0xbcf9, 0x0cec, 0x426a, 0xd4f2, 0x044f, 0x3d93, 0xc6ea, 0xbcdf, 0x2bd1, 0xed0b, +0xce10, 0x43d0, 0x0ca2, 0xd5d2, 0x35c4, 0x0c15, 0xa646, 0xfa2d, 0x2097, 0xc0dd, +0x0c2b, 0x439b, 0xdc9c, 0x059f, 0x3b30, 0xca4a, 0xbbcb, 0x2337, 0xe7a3, 0xc717, +0x3dae, 0x1491, 0xdc09, 0x3229, 0x0f3e, 0xac38, 0xf62a, 0x25d7, 0xcda9, 0xe86a, +0x0ccd, 0xe87d, 0x2a51, 0x46ee, 0xea42, 0xe40d, 0x22b1, 0xd631, 0xa84b, 0xf868, +0xe4f9, 0xdc35, 0x395d, 0x50be, 0x1fd6, 0x25ac, 0x1e57, 0xc641, 0xc358, 0xd0f2, +0xac56, 0xf1aa, 0x385d, 0x08e0, 0x0c0c, 0x6c90, 0x3d9a, 0xd534, 0xf575, 0xf32f, +0xb660, 0xc715, 0x00c3, 0x060a, 0x1cc0, 0x3bee, 0x0fef, 0x2648, 0x390e, 0xe520, +0xcaa4, 0xfc07, 0xfa8c, 0xcfc3, 0xff3b, 0x2146, 0x0eaa, 0x22f7, 0x21eb, 0x22a5, +0x2b3f, 0x140f, 0xd035, 0xce0d, 0x018b, 0xcdfd, 0xe402, 0x4024, 0x35a0, 0x11b4, +0x30f7, 0x48c6, 0xfc36, 0xe429, 0xd9e4, 0xb819, 0xe9ae, 0xecf6, 0xeaac, 0x339b, +0x5af6, 0x18c2, 0x0a7d, 0x49f9, 0xfaf8, 0xba8d, 0xd5ae, 0xd0dc, 0xd43b, 0xee6d, +0x117b, 0x23d1, 0x46ee, 0x29ad, 0x0339, 0x3a96, 0x1314, 0xc110, 0xbad0, 0xd9cf, +0xd706, 0xcd74, 0x0d91, 0x315e, 0x3f9c, 0x359b, 0x2190, 0x2aef, 0x0433, 0xcdb2, +0xa574, 0xc711, 0xe12e, 0xcf40, 0x197f, 0x5324, 0x3d77, 0x20a5, 0x375c, 0x2d03, +0xe262, 0xca54, 0xb0b0, 0xc640, 0xed6e, 0xe3a9, 0x14a7, 0x559a, 0x4789, 0x0af5, +0x2c0d, 0x3078, 0xd574, 0xc8f1, 0xc60c, 0xc4a3, 0xddbb, 0xf434, 0x12bf, 0x3a4f, +0x46b5, 0x0de9, 0x28f8, 0x3a3e, 0xd862, 0xb36e, 0xc4b9, 0xd290, 0xcc9e, 0xf150, +0x28e5, 0x36b7, 0x3727, 0x1942, 0x296a, 0x1f3b, 0xd304, 0xaa50, 0xb7e0, 0xe064, +0xcd60, 0xe774, 0x36d2, 0x4354, 0x256f, 0x16b9, 0x32a9, 0x04e9, 0xc94b, 0xbd89, +0xb4e8, 0xde63, 0xe6b3, 0xefc2, 0x2c99, 0x4d30, 0x244c, 0x0dd9, 0x4013, 0x0a25, +0xbf81, 0xc647, 0xc8d3, 0xd098, 0xddd7, 0x0729, 0x2f46, 0x49fe, 0x3186, 0x11dd, +0x33c9, 0x0a1a, 0xc455, 0xb4fe, 0xcbf9, 0xe01f, 0xd9c3, 0x0d63, 0x3ca9, 0x40e4, +0x2597, 0x1f85, 0x2fee, 0xf6c7, 0xc763, 0xb733, 0xcbd2, 0xe734, 0xe337, 0x11ef, +0x4379, 0x4377, 0x1865, 0x216c, 0x32c8, 0xee0c, 0xca47, 0xc04a, 0xd076, 0xe70b, +0xebed, 0x16a9, 0x3f81, 0x44ae, 0x16f6, 0x2266, 0x31f0, 0xe6d6, 0xc30d, 0xc333, +0xd87e, 0xe495, 0xf14b, 0x1f91, 0x3ab4, 0x3a37, 0x1822, 0x291b, 0x2bcf, 0xea2c, +0xc762, 0xbf57, 0xdd08, 0xe181, 0xec7b, 0x28f2, 0x456d, 0x366d, 0x1d72, 0x3891, +0x2266, 0xe229, 0xcd55, 0xbe26, 0xdad8, 0xe6b2, 0xf1ad, 0x2a59, 0x4ce7, 0x346f, +0x18da, 0x3eb3, 0x1a5c, 0xd0e6, 0xc45c, 0xbfe1, 0xd4d3, 0xe11f, 0x014a, 0x2f81, +0x4863, 0x3408, 0x1268, 0x31f4, 0x0ec8, 0xca3c, 0xb9fc, 0xc1dc, 0xdd52, 0xe093, +0x05ff, 0x33c3, 0x43d7, 0x2da7, 0x1671, 0x2bf0, 0x0034, 0xc97d, 0xb0c3, 0xbe5e, +0xe43b, 0xdb68, 0x0387, 0x3ae6, 0x3ee7, 0x1b43, 0x174b, 0x2d76, 0xf26e, 0xc68d, +0xb289, 0xbb76, 0xe0fe, 0xde57, 0x0305, 0x3b0e, 0x44f7, 0x17e8, 0x1ae0, 0x2e9e, +0xe6b9, 0xc23e, 0xb5b3, 0xbe35, 0xde8a, 0xe55c, 0x0e04, 0x3e2d, 0x4749, 0x1891, +0x1cce, 0x2c46, 0xe31a, 0xbc10, 0xb2be, 0xc7d4, 0xe1b0, 0xec58, 0x1b5f, 0x42a4, +0x4577, 0x18af, 0x206d, 0x2610, 0xe0cf, 0xbee7, 0xb63b, 0xd3ec, 0xe4ab, 0xed6c, +0x253f, 0x4a99, 0x42a8, 0x18da, 0x2a90, 0x2130, 0xd967, 0xc013, 0xb623, 0xd3d0, +0xe7d4, 0xf7c7, 0x2d1b, 0x4df4, 0x3dfe, 0x18d3, 0x2e94, 0x12e1, 0xceb7, 0xbc8b, +0xb721, 0xd9e6, 0xe7b6, 0xfe42, 0x37c7, 0x5256, 0x3916, 0x14fa, 0x2b19, 0x0829, +0xcbbc, 0xbc11, 0xba4e, 0xe0c8, 0xec3c, 0x04ba, 0x39d7, 0x4f48, 0x314f, 0x1b2a, +0x320f, 0xfbd4, 0xc7ad, 0xbe46, 0xbcb0, 0xdfec, 0xea9d, 0x0a76, 0x3eae, 0x51ce, +0x28b8, 0x15c7, 0x32b1, 0xf736, 0xc436, 0xbbe2, 0xc2bd, 0xe357, 0xecf4, 0x10c4, +0x40f6, 0x524e, 0x25cd, 0x19ce, 0x301e, 0xec1e, 0xbc6a, 0xbace, 0xd1d8, 0xe825, +0xec23, 0x1b1b, 0x4400, 0x482a, 0x1bce, 0x1896, 0x260d, 0xe7f6, 0xc325, 0xb5e4, +0xd101, 0xeabf, 0xea0d, 0x1d52, 0x47b3, 0x3cf0, 0x1282, 0x235d, 0x2050, 0xd9ae, +0xc4d9, 0xb970, 0xd086, 0xe87d, 0xea86, 0x1b23, 0x48b1, 0x3c02, 0x0e92, 0x2cb2, +0x2472, 0xd2cb, 0xbff8, 0xbc43, 0xce22, 0xe2d3, 0xf745, 0x2364, 0x47bb, 0x3e11, +0x1209, 0x2f53, 0x1fb0, 0xcfac, 0xba0d, 0xbeea, 0xd8e3, 0xde1c, 0xf854, 0x2f24, +0x49ea, 0x387f, 0x14be, 0x2de7, 0x1304, 0xd01b, 0xb948, 0xbc56, 0xe0d1, 0xe484, +0xff93, 0x3655, 0x488a, 0x2bf5, 0x16ba, 0x3637, 0x07aa, 0xcf32, 0xc24d, 0xc063, +0xe449, 0xe713, 0x01e8, 0x3b25, 0x4f83, 0x26c5, 0x1640, 0x3ab8, 0xff8c, 0xc83c, +0xbf7c, 0xc052, 0xdf32, 0xe807, 0x09ef, 0x390f, 0x4d01, 0x25f5, 0x19b1, 0x3685, +0xf201, 0xbb2e, 0xb561, 0xc59a, 0xdeac, 0xe81d, 0x110d, 0x2f0d, 0x5faf, 0x5bc4, +0x12fe, 0xf615, 0xda50, 0xa9ae, 0x886f, 0xcd18, 0x0718, 0x09f1, 0x5bb7, 0x7af7, +0x3e15, 0x0a73, 0xe799, 0xa715, 0x9c71, 0xc971, 0xb0a1, 0x07a7, 0x6f82, 0x3163, +0x2a82, 0x5398, 0x14c9, 0xbfc2, 0xd8b3, 0xd540, 0xc5ce, 0x0fda, 0xf099, 0xf1a7, +0x518e, 0x1c60, 0xcd84, 0x19da, 0x35b8, 0xd346, 0x03a1, 0x377b, 0xdf14, 0xefc5, +0x0c59, 0xc206, 0xc448, 0x2196, 0x11ee, 0xfe70, 0x4f48, 0x1fa8, 0xeb2d, 0x1d5b, +0xeaf2, 0x9f51, 0xdaef, 0x10e0, 0xe2b8, 0x140e, 0x4a7c, 0x0548, 0x11c6, 0x2b5c, +0xd063, 0xb9e9, 0x0c49, 0xee9f, 0xcd6b, 0x32da, 0x2204, 0xe702, 0x2c36, 0x195d, +0xbc4d, 0xef56, 0x1ea6, 0xd1a8, 0xfb24, 0x33f8, 0xe2fa, 0xffb5, 0x3ccd, 0xe4cb, +0xca25, 0x2563, 0x0355, 0xd2da, 0x2bb0, 0x137a, 0xd6ec, 0x2218, 0x1b95, 0xc3b7, +0xf854, 0x3722, 0xe6e8, 0xf671, 0x3596, 0xec18, 0xf030, 0x2d9c, 0xe6e7, 0xc2e9, +0x26d5, 0x1a49, 0xd733, 0x2bbd, 0x26a1, 0xdab2, 0x1ba0, 0x23f0, 0xc355, 0xe703, +0x2bce, 0xdc49, 0xf190, 0x496d, 0xfc6e, 0xf386, 0x3dfc, 0xf7e9, 0xbcff, 0x1444, +0x0996, 0xc579, 0x1fc6, 0x2a9c, 0xe722, 0x261f, 0x2af6, 0xc74c, 0xe3b8, 0x2a8b, +0xe105, 0xe8c4, 0x3bef, 0xfd9f, 0xefc2, 0x313f, 0xf888, 0xbeed, 0x0f0d, 0x10ba, +0xcf13, 0x2814, 0x3a0d, 0xdf51, 0x0dca, 0x2f8f, 0xccfa, 0xc831, 0x1d1f, 0xe940, +0xe8cf, 0x4a93, 0x0d52, 0xef83, 0x3c76, 0xfaba, 0xa5dd, 0x0126, 0x112f, 0xbdc7, +0x1a61, 0x422a, 0xe9fb, 0x1b1a, 0x3694, 0xc9c9, 0xce2b, 0x1ef2, 0xd732, 0xdc7b, +0x46da, 0xff7f, 0xe9fc, 0x46e1, 0x05ac, 0xaeb6, 0x0663, 0x159d, 0xc012, 0x1316, +0x34ba, 0xdd94, 0x12fd, 0x31f6, 0xc596, 0xcbff, 0x2ae2, 0xe4d5, 0xd6c1, 0x4927, +0x0b3d, 0xdd77, 0x3926, 0x07d1, 0xa2d2, 0xfb2e, 0x211d, 0xc317, 0x1769, 0x4b14, +0xe280, 0x1326, 0x411c, 0xc1e2, 0xbac5, 0x2cf6, 0xe603, 0xcb4b, 0x4ed8, 0x191b, +0xe401, 0x458d, 0x1545, 0xac87, 0x005f, 0x1e4a, 0xba9b, 0x0cc0, 0x467e, 0xe1cf, +0x11da, 0x478e, 0xd350, 0xc70d, 0x31c1, 0xf201, 0xce1e, 0x434c, 0x12d6, 0xdd0b, +0x3986, 0x1337, 0xaf6d, 0x006c, 0x2ca7, 0xc8ff, 0x0c23, 0x4bde, 0xe11d, 0x0318, +0x41ef, 0xd0e5, 0xbd29, 0x3042, 0xf8a0, 0xd014, 0x4ad2, 0x1b53, 0xda3d, 0x3aa3, +0x14be, 0xa4bb, 0xf7a1, 0x2b27, 0xc43a, 0x0948, 0x507e, 0xe296, 0x0297, 0x45db, +0xd510, 0xb990, 0x273a, 0xf430, 0xc750, 0x3f4c, 0x1a85, 0xdb6a, 0x3993, 0x1ab4, +0xadf3, 0xf5f6, 0x280d, 0xc5fc, 0xfe8a, 0x4668, 0xe58d, 0x011c, 0x457a, 0xdfc7, +0xbebe, 0x255e, 0xfae1, 0xcb02, 0x3a3a, 0x1b49, 0xd635, 0x2c90, 0x1a6d, 0xb0f1, +0xf0b7, 0x2851, 0xcb11, 0xfd3b, 0x4815, 0xe902, 0xf73a, 0x3af3, 0xde3a, 0xb633, +0x1a27, 0xfae7, 0xc8e7, 0x3373, 0x1efa, 0xdab3, 0x2af8, 0x1f54, 0xb3a4, 0xe5bd, +0x2010, 0xc657, 0xef33, 0x4332, 0xf32a, 0xf8bc, 0x3a43, 0xe716, 0xb380, 0x1025, +0xf94b, 0xbff8, 0x2cbe, 0x2722, 0xd958, 0x2238, 0x24de, 0xb4e0, 0xd8e0, 0x219f, +0xcbf4, 0xec3e, 0x4cc4, 0xf5db, 0xee65, 0x3cb1, 0xe88f, 0xad6b, 0x15fb, 0x0312, +0xbe65, 0x3207, 0x3441, 0xd731, 0x1ee6, 0x2923, 0xb321, 0xd7af, 0x26e1, 0xce3a, +0xeb73, 0x52d6, 0xfb3a, 0xed11, 0x3fa2, 0xeb93, 0xa537, 0x0fde, 0x078b, 0xbcc7, +0x2dd2, 0x39bf, 0xde73, 0x2216, 0x2ba5, 0xb204, 0xd113, 0x2873, 0xd059, 0xe433, +0x5331, 0x00f5, 0xede6, 0x41c9, 0xf3f8, 0xaa8c, 0x0f24, 0x06be, 0xb5e6, 0x29e9, +0x39f4, 0xda5d, 0x25b6, 0x2b84, 0xb07f, 0xd942, 0x36fe, 0xe8ec, 0xcdd1, 0x1733, +0x0849, 0x1aa1, 0x4558, 0xfb48, 0xd3ef, 0x11bd, 0xef48, 0xb142, 0xf697, 0xfdea, +0xd64a, 0x32a6, 0x6fed, 0x25f8, 0x0b17, 0x2a5c, 0xdff3, 0xaef4, 0xd4ec, 0xbcba, +0xe25d, 0x44cb, 0x234b, 0x1321, 0x73ba, 0x4da9, 0xced4, 0xe817, 0x007f, 0xa908, +0xb5df, 0x1df6, 0x1875, 0x0e2c, 0x3ec1, 0x2fcd, 0x272d, 0x2290, 0xe25c, 0xc07e, +0xf134, 0xfb4d, 0xd6f2, 0x0ad3, 0x3447, 0x223c, 0x13f1, 0x2272, 0x269f, 0x025a, +0x0161, 0xd722, 0xd224, 0x0308, 0xde38, 0xef78, 0x3c18, 0x42ed, 0x0555, 0x290a, +0x5400, 0xe6be, 0xca2d, 0xdae9, 0xc68f, 0xd7d0, 0xf47c, 0x10ed, 0x3184, 0x5941, +0x1cf6, 0x0891, 0x3a35, 0xeb6f, 0xae39, 0xc817, 0xe6f7, 0xd6ef, 0xebb0, 0x3372, +0x35f1, 0x34dd, 0x1e90, 0x16f7, 0x21a1, 0xf074, 0xc287, 0xb8c4, 0xe82d, 0xe6eb, +0xdb90, 0x1e19, 0x40af, 0x3208, 0x1a9a, 0x320f, 0x1b9a, 0xdeff, 0xcf46, 0xb4a3, +0xcbd7, 0xdf68, 0xe59a, 0x22fe, 0x55b5, 0x3892, 0x0be2, 0x396b, 0x1a98, 0xc635, +0xc146, 0xc092, 0xd361, 0xe7eb, 0x0383, 0x2879, 0x4c6a, 0x3c0d, 0x05ca, 0x2976, +0x14a9, 0xc798, 0xc116, 0xd2d8, 0xdd50, 0xdcd3, 0x0b09, 0x2bce, 0x3653, 0x2ab8, +0x0a52, 0x2aa9, 0x14b7, 0xd401, 0xb890, 0xcc60, 0xea88, 0xd5e4, 0xfe7d, 0x383b, +0x3ade, 0x1b88, 0x1ad7, 0x3ed1, 0x075f, 0xcd9c, 0xbbc4, 0xcbe8, 0xeb85, 0xd822, +0xfbc3, 0x3e44, 0x459b, 0x10ea, 0x17ee, 0x43df, 0xf7f9, 0xc0a0, 0xc419, 0xcf1f, +0xdea4, 0xe05f, 0x0678, 0x330f, 0x42d4, 0x111c, 0x0fba, 0x3f57, 0xf9a8, 0xb669, +0xbe1b, 0xe146, 0xdd9a, 0xd4be, 0x11a3, 0x389d, 0x37d6, 0x13b2, 0x1c70, 0x3370, +0xf10c, 0xc063, 0xb6e6, 0xd48a, 0xdc66, 0xd809, 0x1789, 0x3f92, 0x3566, 0x0e0f, +0x231e, 0x2ea3, 0xde28, 0xbb31, 0xba09, 0xcf05, 0xd866, 0xdfc8, 0x18f1, 0x3ecd, +0x369b, 0x0a8f, 0x2386, 0x2af2, 0xda2a, 0xb79e, 0xb7d0, 0xd687, 0xde35, 0xe721, +0x22ba, 0x4574, 0x3572, 0x0dd3, 0x2e06, 0x263b, 0xd7ab, 0xbfc7, 0xc2f6, 0xdf1b, +0xe1c3, 0xf1d5, 0x2cb4, 0x4e1c, 0x37cd, 0x115d, 0x35cd, 0x1fe6, 0xd779, 0xc301, +0xc58e, 0xe72d, 0xe5ce, 0xf960, 0x335a, 0x4fb4, 0x357b, 0x1898, 0x426e, 0x1cc2, +0xd473, 0xc727, 0xc831, 0xe1fb, 0xe68f, 0x072e, 0x3da1, 0x58d4, 0x39ac, 0x1d25, +0x4338, 0x1401, 0xcf2b, 0xbee6, 0xca41, 0xe875, 0xe64f, 0x1316, 0x4982, 0x5236, +0x2f67, 0x2085, 0x38b8, 0xfd01, 0xc7c8, 0xba93, 0xc979, 0xebc7, 0xea26, 0x168d, +0x477d, 0x4817, 0x212b, 0x1fdd, 0x335a, 0xef3e, 0xc484, 0xb895, 0xc9b8, 0xec42, +0xe805, 0x136b, 0x4a61, 0x4971, 0x17b6, 0x1f6a, 0x2f97, 0xe4b1, 0xc086, 0xb999, +0xcac9, 0xe5fd, 0xee0c, 0x1807, 0x412f, 0x460f, 0x166d, 0x1f4c, 0x29b3, 0xdc64, +0xb965, 0xb861, 0xd211, 0xe147, 0xeb99, 0x2193, 0x450f, 0x3ce4, 0x113e, 0x1f63, +0x1c84, 0xd769, 0xb874, 0xb487, 0xd682, 0xe1c9, 0xed74, 0x24b0, 0x43a4, 0x33ba, +0x0e1c, 0x2413, 0x10f7, 0xcdd3, 0xb977, 0xb8d7, 0xdbc4, 0xe37c, 0xf175, 0x272e, +0x457d, 0x2d0a, 0x07d0, 0x297e, 0x0f41, 0xca51, 0xb9f7, 0xbc9a, 0xdaa7, 0xddfe, +0xf766, 0x2c64, 0x4532, 0x2d7b, 0x0dd9, 0x2cf4, 0x0c17, 0xc90f, 0xb4bc, 0xc07f, +0xe270, 0xdce1, 0xfc63, 0x371a, 0x4749, 0x2579, 0x1187, 0x2dc1, 0xff1f, 0xc7eb, +0xb7f0, 0xc150, 0xe209, 0xe0bb, 0x0562, 0x39a6, 0x419b, 0x18df, 0x11d0, 0x32b0, +0xf640, 0xc162, 0xbaa8, 0xc92a, 0xe355, 0xdf42, 0x07ce, 0x3de6, 0x485f, 0x1a8d, +0x15e0, 0x345d, 0xf2a7, 0xc2b4, 0xbc48, 0xcb43, 0xe331, 0xe771, 0x171d, 0x41c7, +0x46e8, 0x1e6a, 0x1d99, 0x3169, 0xea47, 0xbb34, 0xb612, 0xcfe5, 0xe372, 0xe4f4, +0x1dce, 0x4978, 0x4538, 0x1abb, 0x1ff9, 0x2726, 0xe2ee, 0xbf5a, 0xb642, 0xd6a7, +0xeb65, 0xe981, 0x26c2, 0x5246, 0x3d0f, 0x142e, 0x2f6c, 0x28fc, 0xda88, 0xc3aa, +0xbdbe, 0xd749, 0xeb54, 0xf1e0, 0x25cd, 0x526c, 0x41ba, 0x10bf, 0x2fe6, 0x2449, +0xd374, 0xbfc4, 0xbbe2, 0xd283, 0xe25c, 0xf99f, 0x2cef, 0x4ac7, 0x3ddf, 0x17d9, +0x3082, 0x1925, 0xce89, 0xb6a1, 0xbc50, 0xe283, 0xe474, 0xfd8d, 0x3bcc, 0x4e96, +0x33c3, 0x167a, 0x2e47, 0x0a43, 0xcef1, 0xbc29, 0xba3d, 0xe1a3, 0xe5f7, 0xfe7c, +0x39db, 0x4bea, 0x270e, 0x128b, 0x30de, 0xfb59, 0xc505, 0xbdab, 0xbd60, 0xe0c5, +0xe64a, 0x0171, 0x35c3, 0x47fc, 0x21b5, 0x11b5, 0x30fa, 0xf4fc, 0xc06e, 0xbaa3, +0xbc7a, 0xd83f, 0xe4e1, 0x0b66, 0x373d, 0x497a, 0x2421, 0x109c, 0x26f1, 0xecb6, +0xbadf, 0xb11f, 0xc45d, 0xdf59, 0xe4b2, 0x1641, 0x3f59, 0x42bc, 0x1c1c, 0x129c, +0x1bee, 0xe133, 0xbe64, 0xb1ad, 0xcc9f, 0xec32, 0xe986, 0x19ae, 0x44e5, 0x3a19, +0x0e88, 0x1ade, 0x1f2c, 0xdec4, 0xc3cc, 0xb2ef, 0xdaab, 0xfd08, 0xe6a7, 0x1123, +0x3704, 0x3898, 0x3ad4, 0x346f, 0xfe92, 0xd1d3, 0xcc04, 0x9cbd, 0xc135, 0x02eb, +0xf63b, 0x365b, 0x8b58, 0x58ad, 0x0415, 0x0488, 0xcf1c, 0x8e64, 0xb611, 0xc2c4, +0xeda1, 0x4ea8, 0x63da, 0x49bb, 0x50ec, 0x3618, 0xc859, 0xb818, 0xe010, 0xbc83, +0xd14a, 0x1ad8, 0x32a9, 0x4030, 0x4434, 0x0f51, 0xf80f, 0x1895, 0xeaf8, 0xc48d, +0x175a, 0x2702, 0xe895, 0x0fd2, 0x2756, 0xcf30, 0xdfad, 0x3a11, 0xfb80, 0xfa5f, +0x565f, 0x121d, 0xf290, 0x2352, 0xddf3, 0xa5f4, 0xfe06, 0x187b, 0xde96, 0x3a13, +0x5105, 0xf698, 0x255a, 0x212e, 0xb7a3, 0xc5a7, 0x10d7, 0xdeff, 0xe90b, 0x551a, +0x1708, 0xfd81, 0x42e8, 0xf9ae, 0xb328, 0xf8c8, 0x0cd4, 0xc910, 0x1398, 0x3cf8, +0xe89b, 0x1c9d, 0x36c1, 0xcb0b, 0xcca6, 0x2759, 0xf1e2, 0xd264, 0x3d80, 0x146d, +0xe372, 0x36c2, 0x0ab3, 0xb2ef, 0x0a0e, 0x2e96, 0xc7be, 0x0dcf, 0x4ba5, 0xdcd8, +0xff1f, 0x391f, 0xcf51, 0xc4c3, 0x314b, 0xfef3, 0xd680, 0x41c6, 0x156e, 0xdd3b, +0x2eeb, 0x0886, 0xa9c9, 0xf3a6, 0x247e, 0xc927, 0x069f, 0x4a37, 0xe895, 0x0061, +0x378e, 0xd6a1, 0xb348, 0x1688, 0xf810, 0xc498, 0x323f, 0x1fc5, 0xe066, 0x29b3, +0x139d, 0xadbb, 0xe71a, 0x2c44, 0xcae3, 0xe8e1, 0x3f89, 0xe822, 0xf034, 0x367a, +0xdf30, 0xb32c, 0x1aba, 0x0281, 0xcc1b, 0x36c4, 0x14ca, 0xc6d5, 0x2590, 0x1c08, +0xa351, 0xd7ce, 0x2a74, 0xd59f, 0xf3fa, 0x477e, 0xf4e0, 0xf8ff, 0x3121, 0xdc01, +0xb775, 0x150c, 0xfcd8, 0xcc0d, 0x38c8, 0x2ece, 0xe423, 0x2849, 0x29b5, 0xc302, +0xda74, 0x1f47, 0xdd2f, 0xf247, 0x3ab2, 0xf2d7, 0x006a, 0x4787, 0xf2b8, 0xbc9f, +0x1f1c, 0x0ac7, 0xbde9, 0x23df, 0x2b4d, 0xd869, 0x1cf2, 0x2e59, 0xc8ac, 0xe6ca, +0x2cef, 0xd907, 0xf197, 0x4b23, 0xf20c, 0xef15, 0x4469, 0xf156, 0xb2a9, 0x1bfd, +0x127b, 0xca28, 0x306d, 0x3438, 0xdf08, 0x20cf, 0x27a1, 0xb9c7, 0xd8d7, 0x2741, +0xd309, 0xe588, 0x5056, 0x03d5, 0xef96, 0x4207, 0xfd8d, 0xae5f, 0x03b5, 0x0589, +0xbd38, 0x23af, 0x3a76, 0xe095, 0x2023, 0x3839, 0xc165, 0xd4ca, 0x2de1, 0xd781, +0xe09b, 0x50bd, 0x0340, 0xea0c, 0x4022, 0xf840, 0xad2c, 0x1331, 0x12e3, 0xc260, +0x2f2a, 0x3b6c, 0xd12c, 0x18a4, 0x3197, 0xb77c, 0xd13d, 0x2bd2, 0xd972, 0xe616, +0x52eb, 0x041e, 0xeb26, 0x3bdc, 0xf119, 0xa2b2, 0x06d5, 0x1049, 0xbd97, 0x289f, +0x44ee, 0xdf14, 0x1d7f, 0x34ac, 0xb7bb, 0xc690, 0x278a, 0xda25, 0xdff9, 0x579a, +0x080c, 0xe6ec, 0x4374, 0xfcbd, 0xa5be, 0x078c, 0x146b, 0xbb5b, 0x2164, 0x4262, +0xdc47, 0x1e50, 0x39f8, 0xbce7, 0xcbb4, 0x2afe, 0xdc45, 0xdb5e, 0x5409, 0x0b3a, +0xe53c, 0x4358, 0x02ae, 0xa896, 0x0857, 0x1af8, 0xc23a, 0x2352, 0x496b, 0xdfb5, +0x197e, 0x3ce3, 0xbe54, 0xc506, 0x3012, 0xe677, 0xd704, 0x5217, 0x11ee, 0xe2e7, +0x3fe4, 0x06fa, 0xa5a3, 0xfdcd, 0x181f, 0xbb44, 0x1747, 0x4a1f, 0xdca9, 0x10d6, +0x4291, 0xc4a6, 0xbd25, 0x2a87, 0xe605, 0xcbf6, 0x4b38, 0x15fb, 0xe0ad, 0x3f35, +0x0d36, 0xa652, 0x0068, 0x234a, 0xbde1, 0x11e2, 0x4aeb, 0xdbe0, 0x0a9d, 0x4344, +0xcb41, 0xbfb5, 0x3005, 0xef5d, 0xcc1b, 0x497b, 0x1516, 0xd825, 0x3b8a, 0x1677, +0xabc7, 0xfeb9, 0x2dcb, 0xc484, 0x08d9, 0x4f69, 0xe275, 0x041d, 0x4846, 0xd81a, +0xc055, 0x3307, 0xfcca, 0xce29, 0x4a68, 0x20cb, 0xd8f3, 0x379a, 0x1b24, 0xaf02, +0xfaf5, 0x36a2, 0xdc0c, 0xf2c4, 0x1be5, 0xefab, 0x3121, 0x54a4, 0xf198, 0xe7b1, +0x2ba4, 0xe144, 0xad6e, 0x0105, 0xf0a8, 0xe331, 0x4379, 0x5911, 0x2529, 0x2cc9, +0x279d, 0xcce3, 0xc4aa, 0xd6d0, 0xaebe, 0xee7a, 0x3b83, 0x0e08, 0x0c23, 0x6c6b, +0x4249, 0xd2d0, 0xee99, 0xf0dc, 0xb1d9, 0xc315, 0x0097, 0x05b2, 0x198e, 0x3a21, +0x0a87, 0x19af, 0x3001, 0xda73, 0xbf3b, 0xf320, 0xf1e8, 0xce48, 0xfde9, 0x1c97, +0x092a, 0x1c03, 0x1996, 0x174f, 0x1e06, 0x0784, 0xc7d4, 0xc266, 0xf6c0, 0xcc3e, +0xdd41, 0x35c9, 0x3070, 0x0e9b, 0x2df6, 0x46cc, 0xf777, 0xdb3b, 0xd86d, 0xb2ad, +0xdad5, 0xea97, 0xeb13, 0x2dfd, 0x5bf5, 0x1d45, 0x0c80, 0x4c6b, 0xf9d2, 0xb332, +0xd3b1, 0xcca7, 0xc90a, 0xeeb9, 0x1637, 0x2142, 0x4501, 0x2b65, 0x034c, 0x35ee, +0x0df0, 0xbcaf, 0xb962, 0xda48, 0xd509, 0xd169, 0x125a, 0x2f7e, 0x3ce9, 0x31e9, +0x1f9f, 0x25c3, 0xf9ce, 0xc7fa, 0xa4bc, 0xc4e4, 0xde14, 0xd114, 0x1820, 0x4ec1, +0x3955, 0x1716, 0x2ffb, 0x23e1, 0xd401, 0xc118, 0xaea8, 0xc267, 0xe761, 0xe650, +0x166b, 0x5317, 0x4508, 0x02ef, 0x256f, 0x2a58, 0xc9bf, 0xbfb1, 0xc690, 0xc4c0, +0xdb5a, 0xfc3e, 0x1d56, 0x406f, 0x4672, 0x07f9, 0x258b, 0x3563, 0xd0af, 0xad4b, +0xc62c, 0xd7ec, 0xd118, 0xfacb, 0x32c8, 0x3cf8, 0x3893, 0x1827, 0x2a88, 0x2056, +0xd2e0, 0xa9a8, 0xbc95, 0xe82d, 0xd209, 0xed42, 0x4049, 0x4bca, 0x27a4, 0x17b5, +0x33c7, 0x048c, 0xc896, 0xbbc4, 0xb5e8, 0xde55, 0xe670, 0xf26e, 0x319d, 0x5284, +0x20bb, 0x0a37, 0x3f54, 0x0425, 0xb7b6, 0xbeac, 0xc4a7, 0xd10a, 0xdf90, 0x067a, +0x32d8, 0x4def, 0x29e9, 0x0de0, 0x33b8, 0x00f9, 0xbb53, 0xb44c, 0xca99, 0xdcb3, +0xdf0d, 0x140a, 0x4211, 0x47c0, 0x2741, 0x1ffe, 0x3026, 0xf2ee, 0xc44d, 0xb8c2, +0xcbde, 0xe86b, 0xed77, 0x1b4d, 0x47ee, 0x4766, 0x1ae9, 0x2386, 0x33e9, 0xea57, +0xc4ae, 0xc182, 0xd3ec, 0xeae1, 0xf2fa, 0x1c99, 0x46ce, 0x4849, 0x16e5, 0x2357, +0x2d0d, 0xe171, 0xc2b4, 0xc619, 0xdb43, 0xe861, 0xf96a, 0x2580, 0x41a1, 0x3fcc, +0x14f6, 0x245e, 0x2692, 0xe3d9, 0xc4b2, 0xc084, 0xdcfb, 0xe481, 0xf277, 0x26e8, +0x4453, 0x3677, 0x1401, 0x2eb5, 0x1c61, 0xda3a, 0xc536, 0xbbc2, 0xd95f, 0xe409, +0xf088, 0x24e3, 0x4a50, 0x36ef, 0x1343, 0x3794, 0x1bd7, 0xd0b1, 0xbf04, 0xc0c0, +0xd999, 0xe102, 0xfe57, 0x307b, 0x4c60, 0x3446, 0x110b, 0x34af, 0x1719, 0xd246, +0xbe92, 0xc661, 0xdf01, 0xde95, 0x04b9, 0x34ae, 0x44b2, 0x2c3e, 0x140f, 0x311d, +0x09e5, 0xcd57, 0xb673, 0xc4ea, 0xe8e6, 0xdfae, 0x02f2, 0x3c51, 0x460d, 0x2037, +0x160e, 0x33a4, 0xffd5, 0xd044, 0xbb77, 0xbff6, 0xe547, 0xe2d3, 0x02a5, 0x3927, +0x483e, 0x1e84, 0x18a8, 0x35a4, 0xf428, 0xc4b4, 0xb810, 0xbe31, 0xdf3f, 0xe3b9, +0x070a, 0x3a6e, 0x4a01, 0x1d3d, 0x19b7, 0x312f, 0xe9ed, 0xb9d2, 0xb185, 0xc27d, +0xdf74, 0xeaac, 0x163c, 0x40b2, 0x480f, 0x196b, 0x1a68, 0x2946, 0xe387, 0xbd44, +0xb687, 0xcdd3, 0xe1c0, 0xe73f, 0x19c6, 0x454e, 0x4471, 0x1517, 0x1f37, 0x2415, +0xde12, 0xbc28, 0xb193, 0xce92, 0xe199, 0xeb2a, 0x208d, 0x45c9, 0x3dfd, 0x140f, +0x2554, 0x1b8d, 0xd3e4, 0xb631, 0xaeee, 0xd2a0, 0xe032, 0xeefc, 0x2bad, 0x4d46, +0x3a27, 0x0f3b, 0x24c9, 0x111e, 0xcdbf, 0xb6b5, 0xb194, 0xd7c9, 0xe60a, 0xf93b, +0x2f30, 0x4968, 0x3246, 0x1306, 0x2d46, 0x06e7, 0xc785, 0xba49, 0xb9ab, 0xde3a, +0xe629, 0xff26, 0x3a02, 0x5456, 0x30f0, 0x10ea, 0x3149, 0x0578, 0xc92c, 0xbe07, +0xc00c, 0xe26f, 0xec57, 0x0aaf, 0x3ec0, 0x560f, 0x2fbd, 0x16da, 0x3543, 0xfe12, +0xc441, 0xbe1e, 0xce80, 0xec2a, 0xeeda, 0x1761, 0x467e, 0x531c, 0x2945, 0x16f3, +0x30b3, 0xfa85, 0xc82a, 0xb95b, 0xd0b9, 0xf0bf, 0xecf0, 0x1a23, 0x4acc, 0x48e2, +0x1c65, 0x1e4d, 0x2902, 0xe8e0, 0xc9c2, 0xbc2f, 0xd2c0, 0xf22e, 0xed1c, 0x1844, +0x4b01, 0x4776, 0x146e, 0x2125, 0x2832, 0xde1c, 0xc52b, 0xbd52, 0xcf76, 0xec76, +0xf496, 0x1c9f, 0x4726, 0x432c, 0x116f, 0x25e7, 0x2766, 0xd731, 0xbc99, 0xc162, +0xd7c6, 0xe12d, 0xf3c2, 0x27ac, 0x489f, 0x3fb7, 0x11f9, 0x23e3, 0x1dd1, 0xd9f9, +0xbc81, 0xbc41, 0xe051, 0xe6f9, 0xf6af, 0x2df2, 0x4613, 0x2fe6, 0x12b9, 0x303c, +0x120f, 0xd130, 0xc1da, 0xbc62, 0xdb80, 0xe279, 0xf4be, 0x2c52, 0x4660, 0x275e, +0x0d1c, 0x3149, 0x075f, 0xc931, 0xbf24, 0xbaf3, 0xd888, 0xe2cc, 0xfb8b, 0x2cb6, +0x4a52, 0x29ea, 0x0caa, 0x3097, 0xff78, 0xbdf9, 0xb45b, 0xc1cb, 0xdd4e, 0xe310, +0x068a, 0x24f2, 0x54ac, 0x60d2, 0x1650, 0xf4c6, 0xe059, 0xb014, 0x83b1, 0xbc91, +0x02f9, 0x0157, 0x4fca, 0x7cb3, 0x41bb, 0x0df7, 0xea9f, 0xace6, 0x957f, 0xc6c1, +0xb25c, 0xf25c, 0x6d4a, 0x3c23, 0x2274, 0x5314, 0x2754, 0xc59a, 0xd13d, 0xdf25, +0xc110, 0x097d, 0xfee9, 0xe7e9, 0x4a58, 0x3073, 0xd0cf, 0x0834, 0x3f47, 0xde37, +0xefad, 0x3de0, 0xef24, 0xe80f, 0x1519, 0xd4ff, 0xbae7, 0x160b, 0x1ed5, 0xf6f3, +0x4a32, 0x391f, 0xed02, 0x1a95, 0x0194, 0xa798, 0xcdb4, 0x1870, 0xed7d, 0x0805, +0x5609, 0x1649, 0x0c10, 0x37fb, 0xe698, 0xb602, 0x0ab1, 0x02bc, 0xc982, 0x29a0, +0x3592, 0xeb4c, 0x26a0, 0x2b39, 0xc51e, 0xe028, 0x25df, 0xdd3d, 0xeb89, 0x3c7d, +0xf25b, 0xf2a8, 0x40cd, 0xf67a, 0xbd91, 0x18e1, 0x1367, 0xcbf7, 0x1e2b, 0x2469, +0xd608, 0x16f8, 0x2a0b, 0xc927, 0xe2cc, 0x37b1, 0xf346, 0xe694, 0x382d, 0xf93e, +0xe10a, 0x2a89, 0xf6d1, 0xba9a, 0x1681, 0x2591, 0xd24e, 0x187c, 0x2fad, 0xd8f6, +0x0b46, 0x2ae5, 0xc8c2, 0xd38a, 0x2a7a, 0xe7b1, 0xdcb3, 0x3e95, 0x03d8, 0xe5e1, +0x3718, 0x0451, 0xb6fc, 0x05d7, 0x1636, 0xc589, 0x0c0d, 0x2d31, 0xe2a5, 0x145e, +0x2ff3, 0xd16c, 0xd748, 0x2961, 0xeee4, 0xd89a, 0x2f77, 0x0413, 0xe432, 0x2a18, +0x07e4, 0xbf90, 0xffac, 0x1a5c, 0xce43, 0x0eae, 0x3e2a, 0xe525, 0xfcdf, 0x3412, +0xe19f, 0xc0d0, 0x160c, 0xf679, 0xdaf7, 0x3d0f, 0x184f, 0xe643, 0x3314, 0x0d97, +0xa9d1, 0xf210, 0x1e09, 0xc374, 0x0591, 0x4995, 0xef24, 0x05bf, 0x3aa6, 0xdaf6, +0xc1a1, 0x198b, 0xe5e1, 0xce1f, 0x40dc, 0x134c, 0xddc5, 0x3b68, 0x1d73, 0xb2c0, +0xf385, 0x2228, 0xc6a9, 0xff0d, 0x4056, 0xea16, 0x071a, 0x3ca3, 0xd74b, 0xbcb1, +0x210f, 0xf2c1, 0xcb2c, 0x414d, 0x1f07, 0xd958, 0x2f24, 0x195a, 0xa747, 0xe84d, +0x2605, 0xc501, 0xff0e, 0x4e0a, 0xea48, 0x02a4, 0x46c5, 0xd723, 0xafda, 0x23af, +0xf6a4, 0xbc7c, 0x3c45, 0x26f8, 0xdc74, 0x367d, 0x2543, 0xb0bd, 0xed3e, 0x27e5, +0xc333, 0xf8e2, 0x4d51, 0xeb5f, 0xfefc, 0x4865, 0xe34b, 0xb937, 0x2748, 0x0266, +0xc562, 0x3a6b, 0x25b1, 0xd774, 0x2daa, 0x2313, 0xb311, 0xef4a, 0x32e8, 0xcf60, +0xf8b2, 0x51fb, 0xee07, 0xf368, 0x44ab, 0xe548, 0xb2da, 0x24f2, 0x07b3, 0xc446, +0x3bc4, 0x2db3, 0xd779, 0x2ee4, 0x281e, 0xace1, 0xe4c5, 0x335a, 0xceab, 0xf17b, +0x55c7, 0xf4d4, 0xf24d, 0x4603, 0xeb3d, 0xaf65, 0x1bbf, 0x08f3, 0xbf31, 0x300f, +0x30d1, 0xd9cf, 0x29ba, 0x2ead, 0xb5b6, 0xdd53, 0x2dff, 0xcf0d, 0xe2d2, 0x4b14, +0xf7cf, 0xf104, 0x48fe, 0xf5f9, 0xb102, 0x175c, 0x0bd9, 0xbcb2, 0x27b4, 0x336a, +0xd7be, 0x2088, 0x3408, 0xbf37, 0xdc20, 0x3264, 0xdb9f, 0xe60e, 0x5013, 0xffb1, +0xe856, 0x4281, 0xff01, 0xb10f, 0x1094, 0x176a, 0xc863, 0x243b, 0x390b, 0xdf6d, +0x1d95, 0x3900, 0xc65f, 0xd25c, 0x2c3a, 0xe187, 0xdbeb, 0x465f, 0x0986, 0xeb79, +0x4044, 0x0711, 0xb0da, 0x0496, 0x1513, 0xc287, 0x187b, 0x3c78, 0xe032, 0x1521, +0x3c5f, 0xccc3, 0xcce1, 0x2b96, 0xe4ca, 0xd2ba, 0x430a, 0x0aa2, 0xdffc, 0x3ad9, +0x0be5, 0xaea0, 0x03b6, 0x1ba6, 0xbbed, 0x0db5, 0x4113, 0xdc05, 0x05bb, 0x3a65, +0xcc55, 0xc14b, 0x25ec, 0xe783, 0xd1d2, 0x4965, 0x1616, 0xdbb4, 0x3263, 0x0a8b, +0xa569, 0xf7cf, 0x1f57, 0xc4d2, 0x1559, 0x517f, 0xea47, 0x0848, 0x3a1f, 0xc9f1, +0xbb1e, 0x266f, 0xea60, 0xcd1c, 0x4d59, 0x23a6, 0xe328, 0x3b46, 0x19d2, 0xabe2, +0xf47d, 0x1e1a, 0xbcd3, 0x09ed, 0x4fb3, 0xe964, 0x0dbc, 0x485b, 0xd3bb, 0xbbbe, +0x2722, 0xffc5, 0xce39, 0x0d09, 0xfe2c, 0x112d, 0x596c, 0x16f5, 0xd170, 0x12a7, +0x07ab, 0xa521, 0xd945, 0x0290, 0xcf7b, 0x0c60, 0x5af6, 0x3c64, 0x1c78, 0x2c17, +0xf082, 0xb62e, 0xcf0c, 0xac7d, 0xba75, 0x27ac, 0x23af, 0xf129, 0x473d, 0x6f3b, +0xefd4, 0xd0fc, 0xfcb5, 0xc5fa, 0xa532, 0xe2aa, 0x08ff, 0x0704, 0x304a, 0x21e6, +0x0f85, 0x38c1, 0x010f, 0xbcdf, 0xd894, 0xf8ab, 0xd8c7, 0xe36a, 0x1b7a, 0x178e, +0x1a72, 0x1741, 0x157f, 0x1dd4, 0x0dfe, 0xe47e, 0xbdd3, 0xf139, 0xe9ae, 0xc861, +0x198e, 0x432e, 0x1c93, 0x1246, 0x4ca3, 0x23d4, 0xd5a3, 0xdda1, 0xc097, 0xcd1a, +0xeddd, 0xed1a, 0x1738, 0x5658, 0x41b1, 0xfba0, 0x3319, 0x2a1d, 0xc048, 0xc0cf, +0xd583, 0xd4c9, 0xdb7a, 0x070a, 0x2588, 0x3798, 0x3aa9, 0x0add, 0x25af, 0x2337, +0xd4c2, 0xb504, 0xca8a, 0xe4dd, 0xd039, 0xf1df, 0x2bb9, 0x3c1d, 0x3426, 0x22ac, +0x331f, 0x0f10, 0xdc7d, 0xbbe1, 0xb47c, 0xdb63, 0xd984, 0xfcbd, 0x450f, 0x5431, +0x271a, 0x210b, 0x3c62, 0xf43d, 0xc565, 0xc201, 0xc114, 0xe4f6, 0xee9b, 0x085b, +0x3cf5, 0x5653, 0x1e82, 0x0d52, 0x38a8, 0xf608, 0xc456, 0xce8b, 0xcfd1, 0xda08, +0xf0f6, 0x16f4, 0x3014, 0x4610, 0x1a46, 0x0c35, 0x36d1, 0xfb60, 0xbc9c, 0xbcea, +0xdb0c, 0xda74, 0xdb6c, 0x17ce, 0x3715, 0x33b3, 0x13c8, 0x1e7d, 0x290c, 0xe55b, +0xb756, 0xb135, 0xdad6, 0xde70, 0xd336, 0x1782, 0x43a0, 0x29e5, 0x03f8, 0x2c8f, +0x2768, 0xd396, 0xc0e1, 0xbc23, 0xccce, 0xdf32, 0xe829, 0x16bf, 0x4610, 0x3567, +0x012e, 0x312c, 0x3059, 0xcf4c, 0xbc48, 0xcf7d, 0xdb0c, 0xd4f7, 0xefe3, 0x2327, +0x3f5e, 0x34bf, 0x11d9, 0x3885, 0x2a09, 0xd700, 0xbd59, 0xc753, 0xde26, 0xd765, +0xf612, 0x31cc, 0x45d3, 0x2d56, 0x17c3, 0x3e94, 0x16b7, 0xce82, 0xc389, 0xc8ab, +0xdd9d, 0xdd82, 0xfe36, 0x3550, 0x4d5b, 0x2a45, 0x1384, 0x3ff2, 0x0ef3, 0xc81d, +0xbe61, 0xcce9, 0xe4aa, 0xe0ab, 0x0699, 0x385e, 0x486b, 0x2294, 0x15f0, 0x3d85, +0x01db, 0xc686, 0xc116, 0xcff5, 0xe34d, 0xe14b, 0x10c9, 0x3f07, 0x466b, 0x1f0d, +0x1d05, 0x3ab5, 0xf8ef, 0xc8ce, 0xc05e, 0xd357, 0xe7d4, 0xe29f, 0x13df, 0x471a, +0x4a47, 0x1c4c, 0x297f, 0x3e3f, 0xed74, 0xc6f8, 0xbfdc, 0xccde, 0xe3d5, 0xeaa0, +0x19ee, 0x4b1b, 0x4d49, 0x1865, 0x2976, 0x37a0, 0xe1a2, 0xb9e8, 0xba35, 0xd299, +0xde2b, 0xecfc, 0x27c6, 0x4ae2, 0x4564, 0x19a4, 0x28b5, 0x2426, 0xd885, 0xbc0a, +0xb90e, 0xd777, 0xe284, 0xf34a, 0x2d9a, 0x4813, 0x38b9, 0x14ee, 0x2c67, 0x1894, +0xd324, 0xbc7e, 0xb3bc, 0xda55, 0xe3e2, 0xef0a, 0x2fd7, 0x4da0, 0x2e6a, 0x0ee2, +0x326e, 0x0fc1, 0xcb23, 0xbee7, 0xb82c, 0xdaac, 0xe70d, 0xf676, 0x2c96, 0x4efe, +0x3180, 0x0f59, 0x3430, 0x0900, 0xc464, 0xbdf3, 0xbfd4, 0xdc18, 0xe54f, 0x02ac, +0x346a, 0x4ca2, 0x2bdb, 0x0ba0, 0x2ca5, 0x00e4, 0xc0c2, 0xb4ae, 0xbea2, 0xdd3b, +0xe1b5, 0x05e5, 0x36cd, 0x455d, 0x228c, 0x0f39, 0x2721, 0xf06a, 0xbe3c, 0xb625, +0xc315, 0xe0db, 0xe130, 0x0824, 0x3af9, 0x4450, 0x1a04, 0x1254, 0x2a20, 0xeab7, +0xbec0, 0xb857, 0xc3f1, 0xdf5a, 0xe831, 0x122e, 0x3daa, 0x44fa, 0x18f6, 0x1739, +0x28bb, 0xe41d, 0xbbf3, 0xb89c, 0xcff6, 0xe5c1, 0xea00, 0x1c60, 0x45d5, 0x43ef, +0x1c06, 0x2434, 0x292a, 0xe39e, 0xc2cb, 0xbd71, 0xd5c4, 0xe95c, 0xf5d3, 0x2a36, +0x4b75, 0x403d, 0x1c75, 0x32bf, 0x27ef, 0xdda2, 0xcb76, 0xc7c5, 0xdb1a, 0xe84b, +0xf612, 0x2b74, 0x5112, 0x4137, 0x18a7, 0x3889, 0x2791, 0xd8ed, 0xc90a, 0xc6c8, +0xd83c, 0xe5cf, 0x01d1, 0x32e1, 0x4e08, 0x3e77, 0x1bcc, 0x39cc, 0x1bcb, 0xcf7c, +0xbfad, 0xc693, 0xe1af, 0xe44a, 0x0379, 0x3b80, 0x5122, 0x34da, 0x12cd, 0x2ff7, +0x0b3f, 0xcb7c, 0xb95e, 0xc0f4, 0xe555, 0xe1ce, 0x01a1, 0x3cc9, 0x475e, 0x2196, +0x156a, 0x33d5, 0xf97d, 0xc4c1, 0xb9ed, 0xbd90, 0xe1db, 0xe24b, 0x021d, 0x3cfa, +0x4dca, 0x1ea3, 0x12f7, 0x33e9, 0xf159, 0xbf15, 0xb984, 0xbdf4, 0xd9dc, 0xe483, +0x0d28, 0x3bb5, 0x4aee, 0x1fcf, 0x1792, 0x2e75, 0xe773, 0xb55d, 0xaeed, 0xc525, +0xdc07, 0xe07a, 0x162d, 0x403a, 0x41df, 0x18e6, 0x1816, 0x22ca, 0xe0d7, 0xba3f, +0xab7d, 0xc6d9, 0xe296, 0xe464, 0x1a6b, 0x45ec, 0x3cb4, 0x1203, 0x21d7, 0x1e19, +0xd553, 0xc042, 0xb44a, 0xca17, 0xe29f, 0xe893, 0x1a35, 0x457e, 0x3ca4, 0x0eee, +0x274f, 0x1dc0, 0xd010, 0xbe2a, 0xb43a, 0xca4c, 0xe2e4, 0xf448, 0x246d, 0x4965, +0x3fdb, 0x10f7, 0x25b8, 0x162e, 0xcca7, 0xb882, 0xb947, 0xd7a5, 0xe438, 0xfea1, +0x33b7, 0x4cfe, 0x3b14, 0x1175, 0x24b7, 0x0bf7, 0xcecd, 0xbc06, 0xbdfc, 0xe81e, +0xee24, 0x01b0, 0x3af8, 0x476e, 0x28b0, 0x20d9, 0x3412, 0xf8f1, 0xc8c9, 0xbcf1, +0xbe75, 0xed66, 0xf061, 0x0477, 0x2e04, 0x4a13, 0x58d9, 0x3473, 0x0a86, 0xde23, +0xc927, 0xa391, 0xa85a, 0xfd01, 0x01c0, 0x26a1, 0x8016, 0x6b60, 0x1f2e, 0x05f0, +0xdab1, 0x948b, 0xb8c2, 0xc47d, 0xcb07, 0x3e6c, 0x61b3, 0x38d1, 0x421e, 0x423b, +0xe147, 0xbac6, 0xe0e9, 0xbe22, 0xd9dd, 0x0b3a, 0x03de, 0x31f4, 0x40dc, 0xf8e0, +0xf398, 0x2cdd, 0xec3a, 0xc582, 0x25ea, 0x1c58, 0xd8cd, 0x0700, 0x13d5, 0xbffb, +0xdfbf, 0x2eeb, 0xf5a6, 0x0a90, 0x5506, 0x0dfc, 0xf5d4, 0x194f, 0xd0b1, 0xa469, +0xf944, 0x0659, 0xe225, 0x3e8d, 0x4455, 0xf804, 0x285d, 0x16e8, 0xac54, 0xcbe6, +0x0dc1, 0xcfa2, 0xef3a, 0x51ba, 0x0cea, 0x02d9, 0x4169, 0xec8e, 0xb42c, 0x04b3, +0xfdcb, 0xc5c1, 0x233b, 0x2fa0, 0xe530, 0x27ec, 0x2937, 0xc096, 0xdeaa, 0x2435, +0xe010, 0xe6f7, 0x3e0a, 0xfd91, 0xeb2e, 0x333b, 0xf30c, 0xb2be, 0x1250, 0x1fd9, +0xc7fa, 0x1877, 0x3b5d, 0xdbdb, 0x0644, 0x23bb, 0xbdc0, 0xcc54, 0x2f0c, 0xf1f3, +0xe57b, 0x48e5, 0x082c, 0xe598, 0x360e, 0xf80f, 0xa876, 0x0659, 0x1b42, 0xc57b, +0x1fb9, 0x48cb, 0xe657, 0x1591, 0x3682, 0xcb26, 0xccd4, 0x2692, 0xe8fa, 0xda38, +0x445f, 0x1220, 0xf0e0, 0x3d8f, 0x09d0, 0xb6bc, 0x00e1, 0x260a, 0xd188, 0x0576, +0x3935, 0xef31, 0x1179, 0x33e9, 0xd401, 0xcde0, 0x2d56, 0xfa21, 0xdbb0, 0x4a3c, +0x1c17, 0xdc92, 0x334e, 0x1ceb, 0xb17d, 0xebbf, 0x27e0, 0xd919, 0x0f7e, 0x4a4b, +0xf20c, 0x107b, 0x3a20, 0xcab0, 0xba0a, 0x24cb, 0xf1fa, 0xcaf2, 0x3f6a, 0x2005, +0xe495, 0x30ba, 0x16ef, 0xb7a7, 0xec01, 0x1401, 0xc9b7, 0x05b6, 0x393b, 0xe12d, +0x07bf, 0x44cb, 0xdee8, 0xbd85, 0x23f1, 0xfc20, 0xc5f2, 0x2bd6, 0x194b, 0xdfc0, +0x26e3, 0x160b, 0xba3e, 0xf25d, 0x2457, 0xcdc4, 0x004b, 0x4634, 0xe4dc, 0xf4a7, +0x3d04, 0xdcc3, 0xb397, 0x1fb0, 0x0021, 0xcbc7, 0x37a0, 0x223d, 0xdd2e, 0x2e4a, +0x1e22, 0xae9d, 0xea89, 0x28db, 0xc94f, 0xf4c9, 0x4a0c, 0xf565, 0xfefa, 0x4525, +0xee89, 0xbfb1, 0x1b8b, 0xfa5c, 0xc436, 0x2f51, 0x24ca, 0xdfcd, 0x2cf4, 0x2a31, +0xbd55, 0xe94e, 0x2b96, 0xd147, 0xee2f, 0x4235, 0xf2bf, 0xf601, 0x3b75, 0xe821, +0xb876, 0x1f6c, 0x056a, 0xc597, 0x378b, 0x2e60, 0xd377, 0x1e9d, 0x283c, 0xb892, +0xdee1, 0x2781, 0xd1f0, 0xf4ba, 0x554c, 0x0123, 0xf9be, 0x420b, 0xea52, 0xaa76, +0x121d, 0x04f0, 0xbdca, 0x333f, 0x4315, 0xe753, 0x27d8, 0x325a, 0xb873, 0xd272, +0x2388, 0xcf65, 0xe913, 0x57fe, 0x07f4, 0xf542, 0x4773, 0xf6c7, 0xab18, 0x11a2, +0x0c42, 0xb926, 0x2816, 0x3c96, 0xde7c, 0x28fb, 0x3ab1, 0xb843, 0xd1f6, 0x2e08, +0xd30e, 0xdd67, 0x552d, 0x04b1, 0xe6f1, 0x4408, 0xfac7, 0xa436, 0x0956, 0x1138, +0xb9e0, 0x267a, 0x42e3, 0xd676, 0x199d, 0x3443, 0xb086, 0xc200, 0x28e5, 0xda7a, +0xd827, 0x53d9, 0x0bab, 0xe3c1, 0x40a6, 0xfc98, 0xa29e, 0x018f, 0x1105, 0xb6e7, +0x1b43, 0x498c, 0xdd00, 0x1541, 0x4138, 0xc0de, 0xbf2e, 0x283d, 0xe09c, 0xce50, +0x4aa8, 0x1053, 0xdfdb, 0x3f0a, 0x0676, 0xa0c4, 0xfe21, 0x1b86, 0xb753, 0x10a7, +0x4958, 0xd934, 0x0821, 0x3f0a, 0xc34f, 0xba57, 0x2b9e, 0xe817, 0xc7b8, 0x46a9, +0x0faa, 0xd39d, 0x38e6, 0x0b67, 0x9f2e, 0xfa87, 0x2298, 0xbafd, 0x0a31, 0x466b, +0xd41d, 0xfd51, 0x3a2b, 0xc101, 0xb40d, 0x2b20, 0xef1f, 0xc9c0, 0x46b9, 0x10a8, +0xce9c, 0x3371, 0x097d, 0x9c55, 0xf5c4, 0x3090, 0xd2df, 0xecd4, 0x147e, 0xe806, +0x2e2d, 0x4ebd, 0xe525, 0xe179, 0x26a7, 0xd61d, 0xaa44, 0x0053, 0xe8dc, 0xe136, +0x46b6, 0x57fc, 0x24b5, 0x2da9, 0x235d, 0xcd31, 0xca81, 0xd1c7, 0xaf26, 0xfdb0, +0x3bad, 0x09ac, 0x1da0, 0x74cf, 0x3a9c, 0xd9e6, 0xf662, 0xf1b3, 0xb74e, 0xc78b, +0x079d, 0x1303, 0x25f7, 0x3f88, 0x14f4, 0x2459, 0x2c9b, 0xdd69, 0xc8da, 0xfb0c, +0xfc56, 0xd94a, 0x0b6d, 0x29c0, 0x150a, 0x22e5, 0x1d92, 0x18ef, 0x1cfc, 0x0c23, +0xcdc3, 0xcd7b, 0x0116, 0xd225, 0xea05, 0x3ecf, 0x321c, 0x114b, 0x3429, 0x4818, +0xf80f, 0xe0f6, 0xd86d, 0xb88f, 0xe34c, 0xec85, 0xf335, 0x37f0, 0x5dfb, 0x1c42, +0x11db, 0x4f23, 0xfc26, 0xba44, 0xd5aa, 0xd324, 0xd1fd, 0xf17c, 0x1856, 0x276a, +0x4692, 0x286a, 0x0ba3, 0x3d7b, 0x1150, 0xc1ac, 0xbdf0, 0xe136, 0xd542, 0xcf26, +0x1384, 0x2faf, 0x3870, 0x2e2c, 0x2318, 0x28d4, 0xfdee, 0xcb16, 0xa730, 0xc88d, +0xdb00, 0xceb6, 0x1995, 0x4d9d, 0x384a, 0x1a5c, 0x3253, 0x2473, 0xd8f1, 0xc53c, +0xafa7, 0xc440, 0xe9ed, 0xe807, 0x176e, 0x51f8, 0x4372, 0x074b, 0x2912, 0x2b6d, +0xcf1e, 0xc37a, 0xc518, 0xc3a3, 0xdc9c, 0xfa3e, 0x1a98, 0x40fa, 0x4783, 0x0983, +0x2539, 0x3545, 0xd15a, 0xad3e, 0xc7ca, 0xd8f8, 0xd06d, 0xf96a, 0x3340, 0x3d0f, +0x375f, 0x19a1, 0x2cbe, 0x2480, 0xd619, 0xaa0f, 0xbfde, 0xe9c8, 0xd157, 0xf05e, +0x42af, 0x4a8c, 0x2ada, 0x1e55, 0x372a, 0x09e1, 0xcd35, 0xbbbe, 0xb8fb, 0xe193, +0xe480, 0xf329, 0x3476, 0x51aa, 0x233d, 0x1102, 0x44ce, 0x08c4, 0xbbca, 0xc158, +0xc692, 0xd1e1, 0xdde2, 0x0656, 0x33cd, 0x4f74, 0x2ddc, 0x0f4d, 0x394e, 0x09e6, +0xbe5c, 0xb5ad, 0xcc4d, 0xdc27, 0xdab2, 0x1043, 0x3ea4, 0x479b, 0x2b41, 0x1d61, +0x308b, 0xf8bb, 0xc464, 0xb735, 0xcd64, 0xe75e, 0xe437, 0x161f, 0x4870, 0x48ad, +0x1c9b, 0x1ea2, 0x33d1, 0xf0d7, 0xc828, 0xc0cf, 0xd2aa, 0xe99c, 0xeb83, 0x1a23, +0x47fe, 0x4a7b, 0x1905, 0x1e38, 0x324a, 0xe958, 0xc1e9, 0xc325, 0xd7e4, 0xe635, +0xf2dc, 0x2267, 0x3faa, 0x415f, 0x1a59, 0x202f, 0x2852, 0xe889, 0xc4bd, 0xbe6c, +0xdab6, 0xe56a, 0xef10, 0x26eb, 0x4556, 0x3a6e, 0x180a, 0x2a09, 0x1fb9, 0xde8b, +0xc5cf, 0xb9e8, 0xd7a7, 0xe7b9, 0xedd9, 0x2300, 0x49df, 0x37d1, 0x12a8, 0x2f9a, +0x18aa, 0xce1b, 0xbdb0, 0xbc6b, 0xd29e, 0xdeee, 0xf71a, 0x2781, 0x45f4, 0x339d, +0x0ccf, 0x2b8f, 0x12d6, 0xc8e8, 0xb6b6, 0xbda1, 0xd3af, 0xd912, 0xfe42, 0x2d6d, +0x3ef8, 0x304b, 0x1689, 0x29cf, 0x067c, 0xcba1, 0xb57d, 0xbede, 0xdf90, 0xdc36, +0xfffb, 0x3465, 0x3c40, 0x2128, 0x1a44, 0x31e1, 0xfd23, 0xcc9c, 0xbac3, 0xbc48, +0xdd17, 0xde23, 0xfd31, 0x3137, 0x4362, 0x1eee, 0x18fc, 0x32b8, 0xf20e, 0xc5cc, +0xbb44, 0xbdcc, 0xd9bd, 0xe2e3, 0x076b, 0x353c, 0x4892, 0x1e7b, 0x18f6, 0x30cf, +0xea76, 0xbae7, 0xb387, 0xc4fa, 0xdcc0, 0xe7b8, 0x15fe, 0x3d5b, 0x45ed, 0x199f, +0x192d, 0x2670, 0xe39c, 0xbd23, 0xb49a, 0xce79, 0xe000, 0xe7b3, 0x1c0b, 0x42fb, +0x4231, 0x1500, 0x214f, 0x24b7, 0xddd0, 0xbdaf, 0xb443, 0xd1d6, 0xe488, 0xf035, +0x248c, 0x481a, 0x412e, 0x17e3, 0x2a09, 0x1e55, 0xd730, 0xbb6d, 0xb458, 0xd6fe, +0xe4f4, 0xf65d, 0x30dd, 0x50e1, 0x3ee0, 0x15ff, 0x2a77, 0x133f, 0xd208, 0xbb41, +0xb5d0, 0xdc9b, 0xea0f, 0xfe2e, 0x33e8, 0x4ec6, 0x3729, 0x17b0, 0x327e, 0x0ae7, +0xcbb1, 0xbd40, 0xbbb0, 0xe021, 0xe92f, 0x0274, 0x3a54, 0x53fa, 0x3201, 0x1417, +0x340a, 0x073d, 0xcaf8, 0xbd21, 0xbddc, 0xdfe9, 0xebda, 0x0cee, 0x3df0, 0x5410, +0x3025, 0x16c7, 0x32e0, 0xfb90, 0xc1f6, 0xbac8, 0xcb01, 0xe852, 0xeb00, 0x14bb, +0x4362, 0x4e09, 0x267e, 0x175e, 0x2ea6, 0xf673, 0xc679, 0xb7ca, 0xce42, 0xef38, +0xea88, 0x19da, 0x4c19, 0x4976, 0x1f9b, 0x2155, 0x2984, 0xe747, 0xc939, 0xbc60, +0xced0, 0xf05b, 0xef4a, 0x1a1b, 0x4d06, 0x49db, 0x1707, 0x21a4, 0x261f, 0xdb58, +0xc42f, 0xbd07, 0xcd03, 0xeb57, 0xf6f1, 0x1fe4, 0x4885, 0x45cb, 0x1391, 0x2121, +0x232c, 0xd7ec, 0xbd29, 0xbf59, 0xd799, 0xe575, 0xf6b7, 0x28c6, 0x4774, 0x3e39, +0x1137, 0x1ef7, 0x1744, 0xd610, 0xbc35, 0xb9e4, 0xdd70, 0xe860, 0xf41e, 0x2929, +0x4423, 0x2e1c, 0x110a, 0x2d77, 0x0e41, 0xced2, 0xc1cd, 0xbb1d, 0xd9b8, 0xe41e, +0xf4ed, 0x2b8f, 0x4959, 0x2b92, 0x0f36, 0x32ac, 0x0962, 0xc983, 0xc063, 0xbadd, +0xd65d, 0xe557, 0xfe42, 0x2c4a, 0x49b0, 0x2cc4, 0x11af, 0x335e, 0x0099, 0xbfb6, +0xb950, 0xc282, 0xda13, 0xe2c3, 0x0c6b, 0x2301, 0x3d0d, 0x5b32, 0x2bf1, 0xf816, +0xd811, 0xc694, 0x94e5, 0xa76b, 0x02b3, 0xf90f, 0x23f0, 0x863b, 0x6a8b, 0x1164, +0xf826, 0xd412, 0x8d7c, 0xade7, 0xbb44, 0xce06, 0x446e, 0x60cd, 0x37d3, 0x464b, +0x4603, 0xdb1a, 0xadc9, 0xd748, 0xbb79, 0xd2d1, 0x0130, 0x0928, 0x3b0a, 0x4390, +0x0002, 0xef18, 0x25c7, 0xf662, 0xbcac, 0x1201, 0x1f14, 0xda32, 0xff28, 0x1fbe, +0xd1ed, 0xd6db, 0x389e, 0x0dbf, 0xf3fb, 0x488e, 0x1c7e, 0xe70e, 0x1374, 0xed9e, +0xa6a3, 0xedff, 0x24fa, 0xe3d7, 0x2454, 0x55ff, 0xfbf6, 0x19ad, 0x27e2, 0xbe48, +0xc206, 0x1296, 0xe45b, 0xdd35, 0x4db6, 0x1c33, 0xef46, 0x4348, 0x0b24, 0xb5eb, +0xf732, 0x126a, 0xcd2b, 0x063c, 0x37c5, 0xec01, 0x18d9, 0x3cc8, 0xd616, 0xd2bc, +0x273a, 0xf84b, 0xd381, 0x30e7, 0x1385, 0xdff9, 0x30f4, 0x18b0, 0xc10e, 0x0696, +0x364d, 0xd762, 0xfbf8, 0x3d8c, 0xe397, 0xf63d, 0x3932, 0xe0e0, 0xc7fb, 0x31c6, +0x0e47, 0xd472, 0x33f1, 0x19cb, 0xd9b6, 0x297e, 0x174d, 0xb770, 0xf385, 0x2b80, +0xd844, 0x020b, 0x44ae, 0xecdc, 0xffc6, 0x3c84, 0xe59b, 0xc239, 0x1b9c, 0x03d8, +0xcdfc, 0x284d, 0x2050, 0xe856, 0x29ba, 0x1da6, 0xc79c, 0xf13e, 0x2a8b, 0xdb89, +0xe7cf, 0x315a, 0xf321, 0xf5f9, 0x332c, 0xf230, 0xc508, 0x1566, 0x093d, 0xce9a, +0x23e7, 0x1dac, 0xd1bc, 0x1aa1, 0x2c3b, 0xbf9a, 0xd5cb, 0x286f, 0xe374, 0xeccb, +0x3bb8, 0xfa4b, 0xf5e8, 0x2f2d, 0xe9fe, 0xbb23, 0x0ce2, 0xff3a, 0xc469, 0x2484, +0x2c01, 0xe186, 0x1b3d, 0x26db, 0xc966, 0xd43c, 0x0cf6, 0xd3cc, 0xeaf1, 0x349d, +0xf49e, 0xfa1b, 0x3da3, 0xf2ae, 0xb5a2, 0x09f1, 0x0303, 0xbee6, 0x1c15, 0x2f77, +0xe137, 0x187e, 0x2a96, 0xc3d0, 0xd414, 0x1e88, 0xd685, 0xe774, 0x4a59, 0xfa19, +0xe6e2, 0x3f71, 0xf365, 0xa657, 0x0aac, 0x0b27, 0xbbf9, 0x22a4, 0x3896, 0xdde2, +0x1ea6, 0x2ddb, 0xb6a3, 0xcf13, 0x234d, 0xd209, 0xdfcd, 0x4de4, 0x0530, 0xf235, +0x458e, 0xfe1c, 0xaf9c, 0x04ff, 0x0ba8, 0xc04a, 0x1dfe, 0x3a8f, 0xe44e, 0x1ebd, +0x3786, 0xc838, 0xd340, 0x2d49, 0xe462, 0xdc75, 0x4606, 0x05e5, 0xe8d6, 0x3e07, +0x0367, 0xb349, 0x0d09, 0x1be3, 0xc56a, 0x2148, 0x4004, 0xd8d7, 0x1595, 0x3a7d, +0xc56d, 0xd126, 0x3261, 0xe7bb, 0xe124, 0x5308, 0x0eb8, 0xeb26, 0x437a, 0x042c, +0xaf26, 0x0eb2, 0x218d, 0xc6ad, 0x22c2, 0x4ab9, 0xe2d2, 0x1874, 0x40cd, 0xca8d, +0xc838, 0x2e68, 0xedb9, 0xd7fa, 0x4c7a, 0x1526, 0xe7cb, 0x4150, 0x0c9e, 0xae99, +0x0430, 0x20bb, 0xc1b5, 0x1187, 0x47d4, 0xe4da, 0x1440, 0x42ec, 0xcdff, 0xc6df, +0x2c13, 0xec08, 0xd2d5, 0x46ed, 0x0ef1, 0xdd36, 0x3d9e, 0x0f6f, 0xadf9, 0x0331, +0x2434, 0xc516, 0x0f43, 0x4485, 0xde32, 0x0700, 0x3d61, 0xce91, 0xbeff, 0x2926, +0xf4fa, 0xd134, 0x41a9, 0x1664, 0xdc49, 0x34e2, 0x1333, 0xace3, 0xf361, 0x1f70, +0xc693, 0x0699, 0x47e9, 0xe934, 0x0537, 0x4024, 0xd7ae, 0xba09, 0x1da8, 0xf1cd, +0xcbb4, 0x3981, 0x188e, 0xddeb, 0x326b, 0x1892, 0xb095, 0xf130, 0x20bc, 0xc29d, +0xf9a7, 0x3f9b, 0xe3d4, 0xfb7a, 0x3e64, 0xdf3d, 0xbe59, 0x2395, 0xf6d6, 0xc4b9, +0x3386, 0x1936, 0xd767, 0x2b7a, 0x1dd1, 0xb547, 0xeefe, 0x2814, 0xcaa5, 0xf817, +0x487c, 0xeb89, 0xf26b, 0x397c, 0xdf7f, 0xb39b, 0x1c04, 0xfe68, 0xc54d, 0x349f, +0x2a68, 0xdbdd, 0x22d6, 0x1ddd, 0xb0a0, 0xe0fa, 0x21cc, 0xc993, 0xf898, 0x52ec, +0xf689, 0xf70a, 0x426a, 0xe741, 0xaf61, 0x151d, 0xf921, 0xc0cc, 0x3886, 0x3002, +0xdf54, 0x2dc5, 0x25fe, 0xb022, 0xe019, 0x2b01, 0xdc46, 0xdf34, 0x113b, 0xf3ef, +0x2b9e, 0x5380, 0xf6a9, 0xdedb, 0x2143, 0xe2d9, 0xa1ed, 0xf09b, 0xf0dc, 0xdb67, +0x3407, 0x5e55, 0x32ca, 0x27e1, 0x25c5, 0xd709, 0xc36a, 0xcfc9, 0xa7f8, 0xea51, +0x3bd7, 0x0e16, 0x0801, 0x6978, 0x4f5b, 0xdcee, 0xefc1, 0xfe47, 0xbe36, 0xbc03, +0xf6fb, 0x0a54, 0x1b49, 0x3bd0, 0x15ec, 0x2382, 0x3cb2, 0xeb19, 0xc5aa, 0xedb7, +0xf957, 0xd7a6, 0xf768, 0x22e7, 0x17a3, 0x2061, 0x1ba7, 0x1fd9, 0x23d8, 0x0c01, +0xd667, 0xc4b5, 0xfb1e, 0xd994, 0xd7e9, 0x3398, 0x3e92, 0x166b, 0x27af, 0x4ec2, +0x0515, 0xd7d3, 0xde1a, 0xb994, 0xdcbe, 0xf079, 0xeced, 0x2d31, 0x5f61, 0x253a, +0x040a, 0x4aa6, 0x0dcf, 0xb7f1, 0xcf3e, 0xd1b1, 0xcf61, 0xe63f, 0x105c, 0x26cc, +0x431a, 0x31ef, 0x089d, 0x3279, 0x1505, 0xc9c8, 0xbc77, 0xd253, 0xdbe3, 0xd185, +0x028c, 0x2ef7, 0x3d5b, 0x2ff3, 0x2436, 0x2ecc, 0xffae, 0xd27d, 0xae72, 0xb7bb, +0xda8b, 0xd2ea, 0x0b5f, 0x4d03, 0x43e6, 0x19f3, 0x2a63, 0x2e3d, 0xdc83, 0xc2d3, +0xb8a6, 0xbf1e, 0xe681, 0xe9fe, 0x0c02, 0x47ed, 0x4b9b, 0x0b96, 0x1c09, 0x3193, +0xdad3, 0xc2e7, 0xcba3, 0xc7a2, 0xd979, 0xf765, 0x1768, 0x34eb, 0x4272, 0x0e6d, +0x1cba, 0x35bf, 0xe2f7, 0xb4ec, 0xc2dc, 0xdbc9, 0xd4b0, 0xeaf5, 0x2a04, 0x3d45, +0x3135, 0x163c, 0x29bf, 0x1de9, 0xd862, 0xb512, 0xbc25, 0xe60f, 0xdb2d, 0xe4e1, +0x2e4c, 0x46ed, 0x2280, 0x0c95, 0x3390, 0x0dba, 0xc912, 0xc227, 0xbe99, 0xd9c1, +0xe290, 0xed33, 0x2239, 0x44f4, 0x1ed4, 0x0166, 0x3720, 0x122c, 0xc1e5, 0xbe0b, +0xcc00, 0xd5f1, 0xd17f, 0xf3b3, 0x23a2, 0x3db4, 0x2624, 0x0cc4, 0x33e1, 0x1023, +0xc9ae, 0xb631, 0xc8cd, 0xdd8a, 0xceea, 0xfaf7, 0x3621, 0x3ded, 0x1ca5, 0x1b0d, +0x3ba6, 0x0216, 0xce92, 0xc394, 0xc90e, 0xdd1a, 0xd9c7, 0x0438, 0x3a3b, 0x43f5, +0x193b, 0x1b93, 0x427f, 0xfe8c, 0xc66d, 0xc591, 0xd58c, 0xe393, 0xe1bc, 0x0fe2, +0x3df6, 0x448e, 0x1c8a, 0x21c0, 0x3e71, 0xf9bd, 0xc96f, 0xc456, 0xd5d9, 0xe4b5, +0xe922, 0x1ce5, 0x418b, 0x417b, 0x1d09, 0x2518, 0x341d, 0xf03a, 0xcbea, 0xc1e1, +0xd6e8, 0xe7f3, 0xe55f, 0x1d2e, 0x4954, 0x3f9e, 0x1b23, 0x31e7, 0x3163, 0xe580, +0xcb7b, 0xbe90, 0xd27b, 0xe98e, 0xede5, 0x22f3, 0x51cc, 0x440f, 0x174a, 0x3744, +0x308b, 0xdab4, 0xc2e8, 0xc03f, 0xd50d, 0xe3f9, 0xf766, 0x2e0e, 0x4fbc, 0x4269, +0x17f2, 0x2ec2, 0x1f55, 0xd524, 0xbca2, 0xbb93, 0xda21, 0xe34e, 0xfad1, 0x31b6, +0x47da, 0x36e7, 0x19ff, 0x2ef6, 0x0ef3, 0xd0a0, 0xb94c, 0xb54a, 0xdd97, 0xe171, +0xf86b, 0x35bc, 0x47ba, 0x2983, 0x1694, 0x3324, 0x023b, 0xc961, 0xbc03, 0xb2d4, +0xd7d9, 0xe2e7, 0xf9f7, 0x3391, 0x4b1a, 0x23f3, 0x1255, 0x2f9f, 0xf2dd, 0xbf1b, +0xb8c8, 0xb595, 0xd67b, 0xe49e, 0x04eb, 0x3553, 0x491e, 0x20bc, 0x101c, 0x2d09, +0xefb9, 0xbc9b, 0xb456, 0xbc74, 0xdcb8, 0xe7e3, 0x1085, 0x3e2d, 0x4862, 0x20a4, +0x178e, 0x24e7, 0xe5be, 0xbfc5, 0xb5ac, 0xc6ce, 0xe4c1, 0xe9df, 0x156b, 0x41e6, +0x4347, 0x169b, 0x1dcf, 0x2537, 0xdbdb, 0xbd60, 0xb4ac, 0xc74f, 0xe58f, 0xf1d1, +0x1bdb, 0x438d, 0x41e3, 0x1215, 0x1c5f, 0x197b, 0xd34e, 0xbb05, 0xb7f2, 0xd3b2, +0xe362, 0xf0f9, 0x2581, 0x46a8, 0x3c22, 0x115f, 0x2009, 0x122f, 0xd304, 0xbd34, +0xb54b, 0xd890, 0xe911, 0xf7d8, 0x2be6, 0x4644, 0x3124, 0x11c4, 0x2d7b, 0x0ee0, +0xcfc2, 0xc445, 0xbf59, 0xdf01, 0xe6a3, 0xf6fe, 0x2fa7, 0x4f24, 0x32c6, 0x10fe, +0x360f, 0x14d0, 0xd1fe, 0xc5f6, 0xc3cd, 0xdf16, 0xe84d, 0x00f9, 0x3302, 0x4f34, +0x330f, 0x190f, 0x3c38, 0x0f70, 0xcd2f, 0xc1c9, 0xccf8, 0xe5e1, 0xe528, 0x0d0a, +0x3fdc, 0x4c89, 0x2965, 0x1572, 0x3558, 0x0773, 0xcf30, 0xbe56, 0xcfa1, 0xeeb4, +0xe390, 0x0d40, 0x446b, 0x47d6, 0x22c9, 0x1f4d, 0x33f7, 0xf611, 0xcd9c, 0xbd57, +0xc66d, 0xec7d, 0xe7bf, 0x0df9, 0x474d, 0x4b43, 0x1b2f, 0x1f2d, 0x35f1, 0xea3c, +0xc455, 0xbc6b, 0xc16f, 0xe41e, 0xef9d, 0x16e5, 0x457b, 0x4d9b, 0x1df1, 0x2052, +0x310e, 0xe35e, 0xbd3b, 0xbe4a, 0xd17b, 0xe63a, 0xf0dd, 0x2445, 0x4bde, 0x4c1f, +0x20d2, 0x25a1, 0x2da1, 0xe9a8, 0xc288, 0xb909, 0xd9c6, 0xee3e, 0xf6a6, 0x2ef9, +0x50a3, 0x43ee, 0x1dd3, 0x2eed, 0x2309, 0xe027, 0xcabc, 0xbd16, 0xdbde, 0xee25, +0xf339, 0x2c27, 0x5390, 0x40a0, 0x1b96, 0x375c, 0x1d2b, 0xd734, 0xc78b, 0xb807, +0xd541, 0xecee, 0xfe54, 0x2fa0, 0x5361, 0x3f28, 0x1522, 0x3393, 0x1266, 0xc88d, +0xbc85, 0xb8d2, 0xd4a8, 0xe5ab, 0x0438, 0x3396, 0x4c0c, 0x33cd, 0x0a79, 0x2169, +0xfe45, 0xc2f1, 0xb2f9, 0xb954, 0xe0e9, 0xe165, 0x029e, 0x2aa5, 0x318e, 0x465f, +0x33d0, 0x0444, 0xd0f3, 0xc734, 0xa46c, 0x9309, 0xec1b, 0xfbdf, 0x010e, 0x6440, +0x7e13, 0x1ed8, 0xeedd, 0xe7dd, 0x9c36, 0x94bd, 0xaeea, 0xb4e6, 0x08d9, 0x4ccc, +0x44d3, 0x3995, 0x43b3, 0xfbc8, 0xa9f8, 0xbc47, 0xb7e9, 0xb05c, 0xd4b9, 0x0205, +0x2fad, 0x38f1, 0x145d, 0xf759, 0x0aec, 0xf6cf, 0xb93a, 0xdb0a, 0x14b9, 0xe52f, +0xdb64, 0x2275, 0xfc04, 0xc169, 0x1482, 0x2708, 0xda58, 0x13ad, 0x34f3, 0xe68c, +0xf5c6, 0x0b27, 0xbfca, 0xc11f, 0x1a39, 0xf895, 0xf15a, 0x535e, 0x1fbe, 0xfd1c, +0x2fab, 0xeb46, 0xb207, 0xf114, 0xfe7d, 0xd0f4, 0x2a5f, 0x4be3, 0xf98f, 0x2db3, +0x365b, 0xcbe5, 0xd12f, 0x160e, 0xe93e, 0xe29c, 0x4478, 0x1d6f, 0x0413, 0x49f1, +0x0cdb, 0xc582, 0x08ff, 0x1ce3, 0xd295, 0x10d4, 0x44fb, 0xeff9, 0x15bb, 0x4310, +0xddfd, 0xd8c9, 0x34f7, 0xfaaf, 0xd716, 0x4457, 0x1cff, 0xe28a, 0x3514, 0x1237, +0xb5a9, 0x01cc, 0x3075, 0xd90a, 0x1130, 0x4b8f, 0xf1cd, 0x0fee, 0x37f4, 0xcf77, +0xc32c, 0x262d, 0xfb1f, 0xde11, 0x4cfa, 0x220f, 0xe7b6, 0x379f, 0x1630, 0xb473, +0xeb2b, 0x1f40, 0xcdde, 0xfb49, 0x44ba, 0xf7a8, 0x0b44, 0x3ad4, 0xdf56, 0xbc11, +0x192e, 0xfdae, 0xc1e6, 0x2be2, 0x260a, 0xe13b, 0x285b, 0x1e09, 0xb912, 0xe471, +0x2223, 0xd36d, 0xfe2f, 0x46c5, 0xe36b, 0xf7a8, 0x4755, 0xdf55, 0xa7b3, 0x1a23, +0x0b84, 0xc893, 0x2faf, 0x2991, 0xe2bb, 0x2481, 0x13cb, 0xb383, 0xe0a3, 0x1702, +0xc7e4, 0xf45d, 0x4b67, 0xf6a6, 0xf97a, 0x3e6f, 0xecd9, 0xadf3, 0xfeb4, 0xfd06, +0xc788, 0x1f7a, 0x200a, 0xe5ba, 0x31ba, 0x2511, 0xb3da, 0xe100, 0x2776, 0xc990, +0xe1ba, 0x44f0, 0xef0a, 0xe6e3, 0x3c2c, 0xf024, 0xb397, 0x1376, 0x054e, 0xc2a5, +0x2c7f, 0x2067, 0xc5d1, 0x227f, 0x2507, 0xa6ee, 0xd8b4, 0x2da2, 0xd0d2, 0xe5d2, +0x4ae3, 0xf3c8, 0xec01, 0x3d1d, 0xe4c8, 0xa76d, 0x0cd7, 0x02fe, 0xc051, 0x2a3f, +0x2ff4, 0xd96d, 0x206e, 0x2cdb, 0xbcc2, 0xcfce, 0x1d9e, 0xd936, 0xe286, 0x3c62, +0xf899, 0xf161, 0x4188, 0xfacc, 0xb89c, 0x13b2, 0x0f18, 0xbfc2, 0x1908, 0x2b9b, +0xdd40, 0x1c58, 0x31c8, 0xcc18, 0xe1de, 0x3029, 0xe1a2, 0xeab8, 0x4814, 0xf8bb, +0xec3b, 0x41cd, 0xfd3d, 0xbb42, 0x1ab1, 0x1bc5, 0xd03f, 0x2b94, 0x39e6, 0xe56b, +0x20f6, 0x302f, 0xc7e3, 0xe07e, 0x304b, 0xe35d, 0xef37, 0x556b, 0x0a77, 0xf3f3, +0x471e, 0x0715, 0xb6bf, 0x0a15, 0x15a7, 0xc8f0, 0x27ce, 0x49e1, 0xef3f, 0x24d8, +0x3fc8, 0xcf85, 0xd3a9, 0x2981, 0xe391, 0xe1e2, 0x5568, 0x1a44, 0xf6f8, 0x47a5, +0x0bb1, 0xb4f6, 0x0758, 0x180f, 0xc264, 0x1c7f, 0x4997, 0xe7b6, 0x1790, 0x3eec, +0xcc71, 0xc989, 0x25c5, 0xe0ff, 0xd5eb, 0x4cb5, 0x1585, 0xe9fb, 0x3f4e, 0x079f, +0xa4e8, 0xf8b6, 0x18b7, 0xbe0e, 0x140f, 0x4dcd, 0xe6f8, 0x106e, 0x3e48, 0xc659, +0xb8d1, 0x1fc6, 0xe2f7, 0xcafc, 0x4b21, 0x1aac, 0xddf9, 0x38ef, 0x0d86, 0xa172, +0xefb8, 0x1ae3, 0xb8b9, 0x022b, 0x4952, 0xe3b7, 0x0763, 0x3fb6, 0xcaa1, 0xb546, +0x2034, 0xe7b3, 0xc26e, 0x4341, 0x1b44, 0xd872, 0x37f9, 0x158c, 0xa302, 0xed16, +0x212e, 0xbda6, 0x0112, 0x4eb5, 0xe481, 0x0180, 0x448c, 0xd2be, 0xb34a, 0x2659, +0xf969, 0xc3e7, 0x4253, 0x2498, 0xd3ac, 0x2f84, 0x1c93, 0xa86a, 0xeae4, 0x2be9, +0xc824, 0xfb1e, 0x5254, 0xeb1f, 0xf85a, 0x40c6, 0xd602, 0xacc6, 0x20d2, 0xfcc1, +0xbfa1, 0x3d9b, 0x2b83, 0xd669, 0x2fcc, 0x202d, 0xa65f, 0xe170, 0x2e20, 0xdd4c, +0xe4e8, 0x1128, 0xe9c6, 0x2b2e, 0x54f5, 0xec68, 0xd881, 0x25b3, 0xe44f, 0x9e7f, +0xf130, 0xeb8e, 0xd492, 0x3413, 0x5451, 0x26e6, 0x289d, 0x2623, 0xcf51, 0xbd9d, +0xcfb5, 0xa20d, 0xdfe7, 0x36b7, 0x0cc4, 0x056d, 0x65fe, 0x4dbe, 0xdc03, 0xeb0b, +0xf3c5, 0xb95e, 0xbfab, 0xf463, 0x0575, 0x1cd4, 0x3d59, 0x1332, 0x1c9e, 0x36b2, +0xe6ff, 0xc1d2, 0xebab, 0xf875, 0xd9ed, 0xf751, 0x1ec8, 0x177a, 0x1fdf, 0x14b0, +0x158a, 0x1d8b, 0x09a1, 0xd3cc, 0xc301, 0xfa03, 0xda41, 0xd913, 0x31d2, 0x3bcd, +0x1398, 0x2276, 0x47f0, 0x04ad, 0xdb13, 0xde05, 0xbc40, 0xe0b4, 0xf233, 0xedf8, +0x2b4d, 0x5c62, 0x258d, 0x04db, 0x4756, 0x0b9d, 0xbaa9, 0xd2dc, 0xd3e6, 0xd2e5, +0xeb10, 0x1044, 0x260b, 0x4492, 0x307c, 0x0989, 0x37e3, 0x1952, 0xc9b1, 0xbe5d, +0xd980, 0xdd51, 0xcfb1, 0x0665, 0x3440, 0x3f66, 0x32e5, 0x2caa, 0x3828, 0x04a2, +0xd6f3, 0xb98c, 0xc152, 0xdc75, 0xd7fc, 0x131d, 0x50a8, 0x4584, 0x218f, 0x39e9, +0x3a8c, 0xe3c0, 0xca56, 0xc147, 0xc3c0, 0xe3a0, 0xec33, 0x13df, 0x4aaa, 0x4c83, +0x117c, 0x2896, 0x399a, 0xdc86, 0xc6f6, 0xcd47, 0xc6ce, 0xd9cc, 0xf86e, 0x19ad, +0x3a91, 0x491f, 0x123e, 0x24d9, 0x3cde, 0xe11b, 0xb37c, 0xc2df, 0xd7a4, 0xd130, +0xef29, 0x2c49, 0x3d20, 0x37d9, 0x16ea, 0x291c, 0x26ac, 0xda1f, 0xaaed, 0xb607, +0xe686, 0xd568, 0xe17d, 0x337f, 0x4b43, 0x2881, 0x1389, 0x38c7, 0x12c8, 0xcd26, +0xbcc3, 0xb56e, 0xdd1b, 0xe483, 0xea42, 0x2a90, 0x51ed, 0x261e, 0x0805, 0x4126, +0x1494, 0xbddc, 0xbaf3, 0xc450, 0xd324, 0xd5cd, 0xf712, 0x2ef6, 0x4d20, 0x2af3, +0x0e0c, 0x3762, 0x0ac6, 0xbe79, 0xae49, 0xc076, 0xd8d1, 0xd3ec, 0x0029, 0x3a43, +0x4756, 0x22ca, 0x1958, 0x35d2, 0xf721, 0xbeb2, 0xb3fe, 0xbef0, 0xda1f, 0xdc92, +0x07d3, 0x4050, 0x4bd0, 0x19d3, 0x154a, 0x3522, 0xefeb, 0xbbc4, 0xb715, 0xc994, +0xdf48, 0xe0b3, 0x1046, 0x40b6, 0x462c, 0x16f6, 0x1aab, 0x3230, 0xe981, 0xbd2a, +0xbab3, 0xd2a2, 0xe5c9, 0xe97f, 0x1c0b, 0x466f, 0x4272, 0x167d, 0x2642, 0x3042, +0xe930, 0xc684, 0xbe13, 0xdccc, 0xed63, 0xea9d, 0x2413, 0x5441, 0x43f9, 0x180c, +0x36e2, 0x2e3f, 0xdd7b, 0xc957, 0xc358, 0xdaa2, 0xeec1, 0xf6ba, 0x27c0, 0x5560, +0x448c, 0x1635, 0x38ef, 0x285a, 0xd524, 0xc336, 0xc6ef, 0xdd82, 0xe86a, 0x024a, +0x3514, 0x5243, 0x4024, 0x1679, 0x30ad, 0x19cb, 0xd2e3, 0xbea4, 0xc57f, 0xe4e0, +0xe5d6, 0xfff4, 0x3873, 0x4af7, 0x2f8e, 0x188b, 0x3243, 0x0881, 0xcd5e, 0xbb93, +0xbf31, 0xe52f, 0xe3f9, 0xfc94, 0x39c7, 0x4714, 0x1d41, 0x169d, 0x38c9, 0xfecd, +0xcb1a, 0xc0fc, 0xbdbe, 0xdc75, 0xe1b5, 0xfaa7, 0x3213, 0x48a1, 0x1b68, 0x15dc, +0x3a99, 0xf55f, 0xc01b, 0xbf71, 0xc2a6, 0xd4e4, 0xdf4d, 0x066a, 0x3170, 0x40f1, +0x1a26, 0x18e0, 0x342c, 0xedf9, 0xba41, 0xb3b4, 0xc38e, 0xd795, 0xe02b, 0x10cf, +0x387d, 0x3bf9, 0x151b, 0x1afe, 0x254b, 0xde99, 0xbc43, 0xb3bd, 0xc921, 0xde4a, +0xe189, 0x1332, 0x3ec6, 0x3af6, 0x0d82, 0x1fcf, 0x23ba, 0xd6bf, 0xb847, 0xb180, +0xcc73, 0xe0cc, 0xeb2b, 0x1cb5, 0x417e, 0x395b, 0x0e37, 0x260e, 0x1c37, 0xceea, +0xb693, 0xb466, 0xd44d, 0xde55, 0xeccf, 0x28e9, 0x4c64, 0x3a26, 0x1085, 0x2a16, +0x12d5, 0xcc04, 0xb7f6, 0xb4e4, 0xda25, 0xe424, 0xf801, 0x3387, 0x4c82, 0x2ff0, +0x133d, 0x33da, 0x0a6a, 0xc653, 0xba9f, 0xb9a4, 0xdb0d, 0xe2d3, 0xfd70, 0x3932, +0x535b, 0x2ec6, 0x131d, 0x36f2, 0x041c, 0xc4de, 0xbc13, 0xbb88, 0xdb49, 0xe632, +0x0792, 0x3bf9, 0x5215, 0x2df5, 0x197b, 0x38ba, 0xfc1c, 0xc000, 0xb9c1, 0xc559, +0xe3b9, 0xea55, 0x13bb, 0x45e0, 0x506f, 0x2598, 0x1a8a, 0x31d4, 0xf25d, 0xc2c1, +0xb752, 0xc926, 0xeaa3, 0xebad, 0x18ac, 0x4b3a, 0x4b14, 0x1dc9, 0x246e, 0x2f24, +0xe2ff, 0xc4be, 0xbca8, 0xccb7, 0xee7a, 0xf1d7, 0x1fad, 0x5446, 0x4e8c, 0x1a55, +0x2bfd, 0x2de3, 0xdbcc, 0xc7c4, 0xc19e, 0xcdf0, 0xeebf, 0x0347, 0x2b46, 0x50aa, +0x4efc, 0x1ae7, 0x2bc2, 0x29fc, 0xd661, 0xbcdd, 0xc496, 0xddc3, 0xe917, 0xff6c, +0x336f, 0x4f83, 0x433f, 0x1820, 0x2877, 0x176c, 0xd63d, 0xbf37, 0xbd41, 0xe3e4, +0xec70, 0xfccc, 0x35e8, 0x4cad, 0x2f68, 0x12a7, 0x2fac, 0x08d7, 0xcd76, 0xc4f5, +0xbf59, 0xdfbb, 0xe9f3, 0xfd34, 0x3194, 0x4aa3, 0x2767, 0x0f36, 0x33c2, 0x0048, +0xc54f, 0xc2fd, 0xbd10, 0xd605, 0xe41c, 0xff51, 0x2a83, 0x4801, 0x28e6, 0x0aff, +0x2f62, 0xfdb7, 0xbd39, 0xb775, 0xc18e, 0xd7dc, 0xe021, 0x0a7d, 0x33af, 0x423a, +0x2081, 0x0d26, 0x28f2, 0xf6aa, 0xc604, 0xb20f, 0xca22, 0xf929, 0xe0c9, 0xfe41, +0x2c91, 0x285c, 0x3479, 0x40e1, 0x11dd, 0xd23c, 0xd207, 0xa861, 0xa807, 0xfe96, +0xf904, 0x0d6b, 0x7934, 0x78f8, 0x0f08, 0xfce1, 0xe859, 0x8e1b, 0xa714, 0xc4a3, +0xd05d, 0x3229, 0x6379, 0x4af3, 0x48ea, 0x4a2d, 0xe67d, 0xa875, 0xd782, 0xc120, +0xb7cb, 0xfb9f, 0x1f2e, 0x34e8, 0x4bf0, 0x20cd, 0xf0b2, 0x1643, 0x0563, 0xbcd0, +0xf27f, 0x2741, 0xe7cd, 0xef58, 0x2d5f, 0xebc6, 0xc657, 0x2de0, 0x1cb6, 0xe47e, +0x4360, 0x2d6e, 0xe23e, 0x16ee, 0xf98d, 0xa445, 0xddbb, 0x207f, 0xe2c0, 0x123e, +0x5bce, 0x016d, 0x1099, 0x3582, 0xc93d, 0xb242, 0x0573, 0xeaa3, 0xcd42, 0x3ec8, +0x2edf, 0xedf6, 0x39f9, 0x19b8, 0xb85b, 0xe3bc, 0x1369, 0xd1a8, 0xf1db, 0x3e71, +0xf679, 0x05fa, 0x4211, 0xe5a8, 0xbfbb, 0x17fb, 0x0686, 0xc767, 0x1e4b, 0x24e5, +0xdea8, 0x2460, 0x26bf, 0xbfbf, 0xebef, 0x3662, 0xdb5b, 0xe735, 0x478f, 0xf36f, +0xe6aa, 0x3a12, 0xedab, 0xb885, 0x2168, 0x1a11, 0xd137, 0x2b7c, 0x29a9, 0xd6be, +0x2004, 0x24d0, 0xb744, 0xddad, 0x2f52, 0xe201, 0xeeef, 0x4b3b, 0xfc02, 0xef7b, +0x3d92, 0xf6b9, 0xb6be, 0x0b17, 0x0d77, 0xc534, 0x191c, 0x30b3, 0xe945, 0x23b0, +0x2f3b, 0xc9bb, 0xd7dc, 0x269c, 0xe46c, 0xd902, 0x3766, 0x0212, 0xeb25, 0x39af, +0x03e0, 0xb8e7, 0x077c, 0x169d, 0xcc6f, 0x1b10, 0x2e0e, 0xd19a, 0x0fd8, 0x38f6, +0xca91, 0xc8f9, 0x29d6, 0xf078, 0xdd5c, 0x3b96, 0x09ef, 0xf001, 0x3507, 0xfbb1, +0xb660, 0x03d5, 0x0e0a, 0xc387, 0x17f0, 0x3e5b, 0xe93c, 0x15a4, 0x38a5, 0xd46a, +0xc5fe, 0x1360, 0xe4bc, 0xda9b, 0x39bc, 0x0c8d, 0xef2a, 0x3f9f, 0x0fdb, 0xb193, +0xf8d2, 0x1694, 0xb855, 0xffea, 0x4558, 0xed39, 0x083b, 0x3cd1, 0xda45, 0xc36d, +0x1e6e, 0xe476, 0xc765, 0x430f, 0x19a5, 0xde45, 0x3c55, 0x16d3, 0xa619, 0xf171, +0x1f0a, 0xbe1b, 0x04f9, 0x4d9d, 0xeec4, 0x0d1f, 0x3e78, 0xccbe, 0xb49f, 0x1d9b, +0xeb29, 0xc2b6, 0x448d, 0x28e1, 0xe2a4, 0x3aab, 0x21b9, 0xad2c, 0xe5d9, 0x1d14, +0xbe21, 0xf5ec, 0x4db1, 0xef99, 0x030b, 0x4e45, 0xe3cc, 0xb105, 0x20c5, 0xfc50, +0xb9ac, 0x35e2, 0x2898, 0xd9cf, 0x3397, 0x236d, 0xace6, 0xea90, 0x2c38, 0xc65d, +0xf7eb, 0x5313, 0xe39f, 0xf211, 0x477a, 0xdbe9, 0xad7a, 0x1ffa, 0x0017, 0xc201, +0x3906, 0x27ff, 0xd56a, 0x2d70, 0x20b7, 0xa843, 0xe22b, 0x2d3a, 0xc8d1, 0xeff9, +0x5809, 0xf171, 0xf1ca, 0x4aa1, 0xe752, 0xa7f6, 0x1531, 0x03a8, 0xbd38, 0x3515, +0x35e4, 0xd873, 0x2cec, 0x2fa3, 0xaedb, 0xd92e, 0x2cc6, 0xccea, 0xe531, 0x5116, +0xf947, 0xf6dd, 0x4ce8, 0xef45, 0xaeac, 0x190f, 0x0bfc, 0xbc68, 0x2afb, 0x3612, +0xd723, 0x2687, 0x3899, 0xbdfb, 0xda26, 0x3069, 0xdbaf, 0xe6bf, 0x5016, 0x0057, +0xf1d5, 0x480e, 0xf64b, 0xad29, 0x13a0, 0x16f4, 0xc33e, 0x2614, 0x4041, 0xe193, +0x201a, 0x3648, 0xc1be, 0xd35e, 0x2aee, 0xe031, 0xe3b6, 0x52de, 0x0b18, 0xedc3, +0x4b67, 0x084a, 0xaf95, 0x0ccc, 0x1af7, 0xc089, 0x19da, 0x4369, 0xe6d2, 0x1d97, +0x422d, 0xcfe2, 0xd1f7, 0x2e93, 0xe6d4, 0xd904, 0x4acc, 0x0d46, 0xe47d, 0x425b, +0x0eb4, 0xb1bb, 0x06af, 0x2009, 0xc469, 0x12a4, 0x3fee, 0xdd98, 0x0e0f, 0x3d40, +0xcdb1, 0xc9b2, 0x2f38, 0xedc8, 0xcf7d, 0x42ef, 0x1026, 0xd9af, 0x3710, 0x1033, +0xad12, 0xfd62, 0x2285, 0xc358, 0x0c72, 0x48be, 0xe51c, 0x0a9a, 0x2ff8, 0xbdc8, +0xc28d, 0x2cc9, 0xfec9, 0xc7ca, 0x13e5, 0x17e1, 0x02ca, 0x35c6, 0x0fac, 0xcd93, +0xf8c0, 0xfbac, 0xbba6, 0xe67f, 0x0735, 0xd6a6, 0x1bde, 0x7350, 0x2eb9, 0xfad9, +0x2334, 0xeee4, 0xa104, 0xc9e5, 0xcf89, 0xd376, 0x2f8b, 0x2f58, 0x13f9, 0x6199, +0x5172, 0xd760, 0xdae6, 0x0109, 0xaaab, 0x9f01, 0x11f6, 0x1c74, 0xff8b, 0x303b, +0x3d89, 0x2a49, 0x1900, 0xe5d6, 0xbb94, 0xe00a, 0xeeb6, 0xce23, 0x0253, 0x3291, +0x20e8, 0x0d77, 0x2650, 0x2ac1, 0xf46d, 0xf971, 0xdbe5, 0xc599, 0xf13a, 0xdd86, +0xebfb, 0x30a4, 0x422d, 0x0726, 0x20e1, 0x53cf, 0xe990, 0xbf8d, 0xd717, 0xc738, +0xcc12, 0xed69, 0x1207, 0x2679, 0x4b59, 0x2072, 0x0f6e, 0x3b3c, 0xef93, 0xaf82, +0xc07e, 0xdcf5, 0xccea, 0xe17b, 0x31b5, 0x3ad1, 0x3673, 0x24ae, 0x1fad, 0x2260, +0xf0dd, 0xc29e, 0xb494, 0xe43c, 0xe377, 0xdb2b, 0x2318, 0x45fc, 0x34e0, 0x20c4, +0x3ea5, 0x232d, 0xdb31, 0xcc1d, 0xb320, 0xc65a, 0xdf18, 0xea47, 0x25f0, 0x5cd4, +0x4386, 0x10e7, 0x3d78, 0x214b, 0xc538, 0xbca9, 0xbe8b, 0xcd16, 0xe049, 0x05f5, +0x2fe8, 0x5197, 0x45f2, 0x0fc2, 0x2f2f, 0x1971, 0xc5a7, 0xb7fc, 0xca80, 0xd975, +0xd7df, 0x0c99, 0x3a4e, 0x3fc6, 0x30e6, 0x13a0, 0x2b87, 0x0f79, 0xcd82, 0xaf27, +0xc107, 0xe381, 0xd5f3, 0x035c, 0x44e6, 0x44fc, 0x1db9, 0x1e95, 0x3a4e, 0xf713, +0xc17f, 0xb545, 0xc44b, 0xea43, 0xe0b2, 0x034f, 0x458e, 0x4e96, 0x1557, 0x1819, +0x3caa, 0xeb53, 0xb81f, 0xc29d, 0xcb34, 0xd827, 0xea2e, 0x153f, 0x3683, 0x4599, +0x17a8, 0x1025, 0x3238, 0xefae, 0xb3df, 0xb7d0, 0xd811, 0xd6f7, 0xd85a, 0x1792, +0x3a94, 0x35ea, 0x1657, 0x21c8, 0x243d, 0xdfb1, 0xbb30, 0xb0e9, 0xceed, 0xddbf, +0xdff2, 0x1be1, 0x44e0, 0x3265, 0x0879, 0x260d, 0x1f6a, 0xcd4c, 0xba1b, 0xbafd, +0xcb3d, 0xd899, 0xeb07, 0x19d6, 0x3c13, 0x3544, 0x08ed, 0x2407, 0x1daa, 0xcd68, +0xb792, 0xbf01, 0xd1c2, 0xd611, 0xf34b, 0x259b, 0x3b2f, 0x2f39, 0x1053, 0x2d78, +0x1a05, 0xd265, 0xba97, 0xc02a, 0xdab7, 0xd903, 0xf86d, 0x2ff9, 0x403d, 0x28d3, +0x14a1, 0x34af, 0x0a0e, 0xcda4, 0xc3ac, 0xc13a, 0xdd8d, 0xe2ea, 0xfd27, 0x2eb2, +0x45ac, 0x26be, 0x14ec, 0x3dd9, 0x06bc, 0xc81d, 0xc6e2, 0xc719, 0xd8c3, 0xe5c7, +0x0b66, 0x32c9, 0x4b92, 0x2cb4, 0x19ce, 0x3c10, 0x0272, 0xc5eb, 0xbb96, 0xccd7, +0xe07a, 0xdfbb, 0x160a, 0x4341, 0x4749, 0x2676, 0x21c7, 0x2fd3, 0xf0d0, 0xc6ee, +0xb624, 0xcad8, 0xe85f, 0xe7c5, 0x1d81, 0x4b84, 0x45af, 0x1eba, 0x2c0d, 0x30c1, +0xe4ba, 0xca8d, 0xbdbe, 0xcc89, 0xed50, 0xf3dd, 0x2203, 0x5159, 0x4cd1, 0x1b22, +0x2e08, 0x3255, 0xe28f, 0xc7e6, 0xc2e3, 0xd510, 0xe8de, 0xfa14, 0x2846, 0x4a33, +0x4c04, 0x1fed, 0x2f64, 0x2cdb, 0xe195, 0xc51d, 0xc13f, 0xdb62, 0xe696, 0xfa3e, +0x31bd, 0x4d3c, 0x4355, 0x2150, 0x33b3, 0x204a, 0xe0d7, 0xc877, 0xbdd9, 0xdeff, +0xeb46, 0x0024, 0x3a0c, 0x5485, 0x3c57, 0x1fe4, 0x3a57, 0x110e, 0xd1f0, 0xc4f8, +0xbfae, 0xe303, 0xf0e8, 0x0757, 0x3795, 0x525c, 0x364d, 0x163e, 0x3411, 0x078d, +0xc95e, 0xbed3, 0xc146, 0xdd79, 0xe8cb, 0x0fb0, 0x3b8b, 0x4b40, 0x2f52, 0x1708, +0x2c9b, 0xf6f7, 0xc33e, 0xb8f8, 0xc0a0, 0xe27b, 0xe6d8, 0x0c22, 0x3d9b, 0x4878, +0x24a6, 0x186c, 0x2467, 0xe600, 0xc014, 0xb323, 0xbc0b, 0xe0eb, 0xe8da, 0x0f11, +0x3cef, 0x40c5, 0x12df, 0x1430, 0x227a, 0xdb2e, 0xb8c4, 0xb5de, 0xc528, 0xdd7a, +0xe824, 0x13d4, 0x3e15, 0x4384, 0x124e, 0x1469, 0x1e10, 0xd6df, 0xb7fb, 0xb8e3, +0xcdaf, 0xdd42, 0xecbb, 0x1e7d, 0x3c6f, 0x378a, 0x1149, 0x1e8a, 0x1b08, 0xd447, +0xb3c7, 0xb0b3, 0xd341, 0xe16d, 0xebda, 0x22db, 0x4450, 0x345d, 0x0fcd, 0x27aa, +0x137c, 0xcfd2, 0xc241, 0xbb1b, 0xd538, 0xe771, 0xf62c, 0x297f, 0x4c37, 0x3271, +0x103e, 0x360c, 0x143c, 0xc8cb, 0xc2e2, 0xc46f, 0xd919, 0xe83f, 0x0316, 0x2e44, +0x49f7, 0x320d, 0x1102, 0x34eb, 0x0f20, 0xc998, 0xc1e5, 0xc68b, 0xd8b7, 0xe3aa, +0x0e51, 0x3839, 0x473d, 0x306d, 0x1936, 0x313b, 0x023a, 0xca3b, 0xb9cb, 0xc4e8, +0xe9a8, 0xe8e8, 0x0e4f, 0x4390, 0x4a72, 0x23d2, 0x1d52, 0x31ca, 0xf0b0, 0xc813, +0xbd25, 0xc202, 0xe6ea, 0xee18, 0x12c8, 0x4476, 0x4b2e, 0x198b, 0x19a1, 0x2fcc, +0xe518, 0xbf8d, 0xbe9e, 0xcb6d, 0xe622, 0xee0e, 0x167e, 0x3fbf, 0x46fb, 0x1a7d, +0x1f4e, 0x2d08, 0xe17f, 0xbedd, 0xbaa3, 0xcc16, 0xe196, 0xeedc, 0x21cc, 0x44ed, +0x4348, 0x1a18, 0x2363, 0x242e, 0xdc65, 0xbd61, 0xb300, 0xcfa0, 0xe712, 0xe5c7, +0x169f, 0x5f17, 0x7299, 0x2bb1, 0x0b65, 0xe2fd, 0x9b1c, 0xa3b5, 0xaeb5, 0xe147, +0x3787, 0x593a, 0x5290, 0x4a3c, 0x2e69, 0xcbb4, 0xa91f, 0xc5a3, 0xbd85, 0xd07b, +0x1055, 0x3d01, 0x2411, 0x222c, 0x2b1a, 0x0b05, 0xffdc, 0xe3f2, 0xcf8c, 0xf390, +0x15ad, 0xd9f5, 0xc944, 0x2d37, 0x09de, 0xc93f, 0x0d00, 0x229d, 0x0eb5, 0x31fb, +0x193d, 0xdefd, 0x0b6e, 0xe2b8, 0x80c1, 0xd2cb, 0x1719, 0xe9c2, 0x3008, 0x6a8a, +0xfee8, 0x01bc, 0x299a, 0xb39d, 0xa48f, 0x0798, 0xe5e9, 0xddfa, 0x41e1, 0x17dc, +0xf43b, 0x3829, 0x05c3, 0xbd89, 0xf1bc, 0x0dab, 0xcd37, 0xfad8, 0x2e14, 0xf080, +0x107b, 0x24ea, 0xd852, 0xd4a0, 0x17fd, 0xfd24, 0xd818, 0x2b57, 0x168d, 0xdb81, +0x1759, 0x0cdb, 0xc867, 0xf2e6, 0x257d, 0xe349, 0xfff1, 0x39a1, 0xe33d, 0xee45, +0x2b9d, 0xe388, 0xc702, 0x21a8, 0x103e, 0xda0f, 0x2f4b, 0x1b70, 0xd6c1, 0x1b55, +0x104d, 0xb577, 0xe811, 0x28c6, 0xe0aa, 0xfee3, 0x4403, 0xf56f, 0xf711, 0x2c32, +0xe60a, 0xbd96, 0x0d61, 0x048f, 0xce3d, 0x272f, 0x325d, 0xf1c7, 0x2094, 0x1ff0, +0xc860, 0xe30a, 0x2515, 0xdac5, 0xe92d, 0x441f, 0x0548, 0xfb76, 0x3d79, 0xfd5c, +0xbecb, 0x1149, 0x13f9, 0xd214, 0x2a6f, 0x3388, 0xe6f8, 0x2190, 0x2948, 0xc4a5, +0xdd42, 0x2f43, 0xe6af, 0xf03f, 0x54db, 0x13d9, 0xfca6, 0x3215, 0xf506, 0xc57a, +0x12c0, 0x0f9f, 0xd3cc, 0x322e, 0x4301, 0xf273, 0x23ab, 0x356e, 0xd3b2, 0xd051, +0x21b7, 0xf281, 0xecda, 0x4489, 0x12f0, 0x0242, 0x4407, 0x06d1, 0xbafe, 0x0b6c, +0x1d26, 0xc6ee, 0x19bc, 0x44e9, 0xe86d, 0x13b7, 0x39ca, 0xd446, 0xd119, 0x2941, +0xee93, 0xe7c5, 0x4bc2, 0x0643, 0xe908, 0x4535, 0x0444, 0xaaed, 0x0a10, 0x21a1, +0xc807, 0x1964, 0x41d6, 0xe77b, 0x16b3, 0x34e4, 0xc869, 0xc8dc, 0x2196, 0xe4ba, +0xdb97, 0x4973, 0x106a, 0xe7d9, 0x3cc5, 0x0a39, 0xa769, 0xf083, 0x1925, 0xc4c2, +0x075d, 0x3c4a, 0xe3ca, 0x0d28, 0x38d3, 0xc8d1, 0xbd34, 0x29a4, 0xea91, 0xbfc6, +0x3ad0, 0x0fbe, 0xd348, 0x3125, 0x0f03, 0xa6a3, 0xf4e3, 0x222b, 0xbe73, 0x00e2, +0x3cfa, 0xd671, 0xff6d, 0x3893, 0xc753, 0xb6c9, 0x236e, 0xec95, 0xc571, 0x3925, +0x1324, 0xdbd6, 0x2c09, 0x07a8, 0xaa2d, 0xf242, 0x1fa6, 0xc716, 0x042c, 0x441c, +0xe490, 0xffd3, 0x3dc4, 0xdc2a, 0xb9f6, 0x1f30, 0xfbb0, 0xca2e, 0x371c, 0x2003, +0xddf1, 0x31fa, 0x2307, 0xb4d8, 0xf004, 0x2cbc, 0xc878, 0xf7c6, 0x4caf, 0xed6b, +0xfe78, 0x48e2, 0xe5f3, 0xb861, 0x209c, 0xffdd, 0xc990, 0x3a8f, 0x2235, 0xd8df, +0x3307, 0x26fb, 0xb85c, 0xf04e, 0x2cb8, 0xd049, 0xfa7c, 0x49ae, 0xedac, 0xfa25, +0x3f7d, 0xe587, 0xbae6, 0x1de2, 0x03f4, 0xc964, 0x35b0, 0x2bf3, 0xdcc1, 0x287a, +0x2509, 0xb53e, 0xdd34, 0x21f5, 0xd014, 0xf4e6, 0x5327, 0xfbed, 0xf63d, 0x422a, +0xebde, 0xadff, 0x109b, 0x03c0, 0xc66e, 0x34a1, 0x371f, 0xe1e5, 0x266b, 0x298a, +0xb6ec, 0xdb6e, 0x2815, 0xd421, 0xf019, 0x5352, 0xff26, 0xf3f2, 0x43a2, 0xf389, +0xb155, 0x11bc, 0x093e, 0xc3cf, 0x2cd7, 0x37d3, 0xe04d, 0x22e3, 0x2ecd, 0xb8a8, +0xd4f6, 0x2b5c, 0xd879, 0xe9c1, 0x5345, 0x0074, 0xeb1b, 0x3d0d, 0xf0a8, 0xa78e, +0x0f83, 0x1369, 0xc523, 0x2e80, 0x3d4c, 0xdb13, 0x1e41, 0x2ecc, 0xb34d, 0xd013, +0x2f65, 0xd81e, 0xe458, 0x57d2, 0x0406, 0xebe0, 0x457a, 0xf7e1, 0xa66e, 0x0b6f, +0x0e7a, 0xb8d1, 0x251b, 0x3fe1, 0xdd7d, 0x20b9, 0x3687, 0xbb17, 0xd0b9, 0x2e06, +0xd6de, 0xd8c9, 0x50ce, 0x0665, 0xe605, 0x3fce, 0xfc63, 0xac6f, 0x0f4a, 0x249e, +0xcfcc, 0xfc68, 0x0488, 0xeb03, 0x4794, 0x43ec, 0xda83, 0xf3bd, 0x2644, 0xc019, +0xac19, 0xfdb7, 0xdae0, 0xebc8, 0x4a7e, 0x4842, 0x204b, 0x2f4a, 0x0bd7, 0xb466, +0xc7b6, 0xc25a, 0x9ff5, 0xfeaa, 0x3147, 0xf5d6, 0x1606, 0x7098, 0x2536, 0xcb1f, +0xef7c, 0xd8bb, 0xa610, 0xc6a6, 0xf94d, 0x01cf, 0x2326, 0x2e92, 0xfa36, 0x1b23, +0x1fee, 0xc9e0, 0xbf64, 0xf0f7, 0xebf9, 0xcd60, 0xfed7, 0x1727, 0x0a34, 0x1723, +0x0a36, 0x0e7b, 0x18aa, 0xfc64, 0xb854, 0xc985, 0xfdd8, 0xc68b, 0xea58, 0x3e80, +0x2a34, 0x0ba2, 0x2d28, 0x367f, 0xec1b, 0xe1de, 0xce20, 0xb654, 0xf084, 0xed7d, +0xf556, 0x44c2, 0x5de8, 0x118c, 0x103a, 0x43c2, 0xea97, 0xbbb3, 0xd781, 0xd5a7, +0xe105, 0xfd04, 0x1bc6, 0x2dbd, 0x4a4e, 0x2262, 0x090c, 0x37f3, 0x0697, 0xc337, +0xc445, 0xe70d, 0xe217, 0xdb53, 0x1953, 0x38c9, 0x40c1, 0x2ede, 0x22c3, 0x260c, +0xfc8c, 0xcfd4, 0xb0e1, 0xd39e, 0xe34c, 0xdae1, 0x253f, 0x508f, 0x342f, 0x1aa5, +0x3628, 0x1e6e, 0xd753, 0xc9cd, 0xb7c4, 0xd23c, 0xef41, 0xeb30, 0x1cc2, 0x523c, +0x3c38, 0x02b5, 0x29f9, 0x28a2, 0xd759, 0xd1f8, 0xd1bf, 0xd245, 0xe508, 0xfe91, +0x19fc, 0x3b30, 0x3d9b, 0x0a4c, 0x2fd0, 0x37f4, 0xdc8c, 0xbe49, 0xd7b4, 0xe591, +0xd3af, 0xfd0f, 0x3070, 0x36f1, 0x325e, 0x18a4, 0x3386, 0x27ca, 0xdc73, 0xb513, +0xcdc8, 0xf809, 0xd5d9, 0xf013, 0x4334, 0x4964, 0x2395, 0x1b7b, 0x3c5a, 0x0fe4, +0xd7a3, 0xc6c6, 0xc6b6, 0xf0cf, 0xeb7d, 0xf80b, 0x3914, 0x525a, 0x2445, 0x1417, +0x4928, 0x0ff5, 0xc35d, 0xc78a, 0xd244, 0xdff9, 0xe35e, 0x07df, 0x35ae, 0x4ba7, +0x2974, 0x1106, 0x3cf3, 0x0fec, 0xc4b4, 0xb9c7, 0xd562, 0xe489, 0xd970, 0x0e52, +0x3f61, 0x43d6, 0x27aa, 0x2131, 0x364b, 0xfd16, 0xc955, 0xb961, 0xcde0, 0xe8ce, +0xe024, 0x0e4f, 0x4544, 0x4582, 0x18cd, 0x22be, 0x3a77, 0xf22e, 0xc4f3, 0xbabf, +0xcce0, 0xe32e, 0xe352, 0x12f7, 0x43a1, 0x4666, 0x1401, 0x1c0c, 0x30e6, 0xe619, +0xbb56, 0xbb95, 0xd491, 0xe00b, 0xe61a, 0x17a4, 0x3b47, 0x3b00, 0x10e7, 0x1c7e, +0x2707, 0xe361, 0xb750, 0xb2d2, 0xd7be, 0xdb41, 0xe145, 0x2096, 0x40ed, 0x319a, +0x118b, 0x2924, 0x1a2e, 0xd6af, 0xba5f, 0xad6c, 0xd2c9, 0xe064, 0xe67c, 0x25df, +0x4ea4, 0x3357, 0x0fc7, 0x312c, 0x1020, 0xc418, 0xb5ff, 0xb68a, 0xd4f7, 0xe2ef, +0xfb14, 0x2e11, 0x4c3e, 0x3280, 0x08fc, 0x2966, 0x0e36, 0xc69d, 0xb3ba, 0xbf26, +0xde72, 0xe461, 0x0918, 0x3887, 0x4967, 0x313c, 0x1236, 0x2763, 0x0526, 0xcb44, +0xb35a, 0xc8b5, 0xed8f, 0xdf83, 0x05bf, 0x41b2, 0x4548, 0x20ab, 0x1a30, 0x2bd9, +0xf884, 0xce0f, 0xb377, 0xc10c, 0xede8, 0xe5b7, 0x0520, 0x42f2, 0x4b64, 0x19c0, +0x1a50, 0x2fd7, 0xee52, 0xc8d4, 0xbcea, 0xc661, 0xe5d5, 0xe9b8, 0x0e4b, 0x42da, +0x4c23, 0x187a, 0x1ba9, 0x2fdd, 0xe89e, 0xbcad, 0xb84a, 0xd201, 0xe619, 0xeba8, +0x1a61, 0x40ef, 0x41b7, 0x151a, 0x1cbf, 0x2b05, 0xea44, 0xc1f8, 0xbc6c, 0xdb3c, +0xe422, 0xe69f, 0x208e, 0x4881, 0x3cc7, 0x1503, 0x2aa9, 0x27ed, 0xe431, 0xc5cc, +0xbdfa, 0xdd9a, 0xe8e9, 0xf074, 0x2496, 0x4a59, 0x3e74, 0x1374, 0x2e8f, 0x252c, +0xd82c, 0xba66, 0xbeda, 0xe1cc, 0xe3a5, 0xf456, 0x3043, 0x4df4, 0x382a, 0x0d8b, +0x25d9, 0x1516, 0xd249, 0xb805, 0xbbdd, 0xe317, 0xe31f, 0xf717, 0x307f, 0x4438, +0x2ce7, 0x1089, 0x29b8, 0x060d, 0xc757, 0xb6c7, 0xb848, 0xdd4c, 0xde36, 0xf60e, +0x341a, 0x45f6, 0x1fc8, 0x0b03, 0x2ed5, 0xff75, 0xc14a, 0xb3bb, 0xb4dc, 0xd6d2, +0xdc36, 0xfbb0, 0x356c, 0x49c3, 0x2300, 0x0fe9, 0x2f18, 0xf499, 0xb802, 0xb1b2, +0xc06f, 0xdc85, 0xde22, 0x0805, 0x3cc1, 0x488e, 0x1f2e, 0x11d7, 0x2c64, 0xf3b1, +0xbd78, 0xadbb, 0xc5eb, 0xe451, 0xde57, 0x0e82, 0x4140, 0x4137, 0x1916, 0x1b84, +0x28d4, 0xe639, 0xc1a0, 0xb2e7, 0xc697, 0xe4be, 0xdf87, 0x10dc, 0x49b4, 0x457d, +0x1479, 0x2405, 0x2b0f, 0xdcbe, 0xbefc, 0xb3a9, 0xc6dd, 0xe60b, 0xed45, 0x1b13, +0x497b, 0x4531, 0x1324, 0x24b0, 0x243c, 0xd210, 0xb83d, 0xb984, 0xd0bc, 0xe2a6, +0xf3b7, 0x2766, 0x4a82, 0x4204, 0x133f, 0x22b4, 0x1b4e, 0xd4a3, 0xba37, 0xbaaf, +0xdf26, 0xea12, 0xf84b, 0x3177, 0x4e17, 0x39af, 0x193b, 0x308a, 0x13c1, 0xd6b0, +0xc5d3, 0xbffc, 0xe599, 0xeec6, 0xff4d, 0x38ac, 0x5167, 0x346a, 0x1b9d, 0x376a, +0x0ce4, 0xd4a8, 0xc78f, 0xc195, 0xe4f4, 0xf0f5, 0x07bb, 0x3cdc, 0x5981, 0x3510, +0x1b26, 0x3a31, 0x03fb, 0xca72, 0xc53e, 0xcd25, 0xecab, 0xf768, 0x193e, 0x437d, +0x53af, 0x2c6f, 0x15b8, 0x31bf, 0xff10, 0xcc99, 0xc147, 0xd348, 0xee05, 0xee95, +0x1782, 0x2f2b, 0x4b20, 0x5a80, 0x2b14, 0xfd25, 0xdd6a, 0xccb5, 0x9c77, 0xbb91, +0x0abb, 0xfa6d, 0x308d, 0x8b3b, 0x6386, 0x0f1b, 0x0366, 0xd9a6, 0x969a, 0xbb36, +0xbe42, 0xd650, 0x4a43, 0x5e11, 0x39f6, 0x4e5f, 0x3f3f, 0xd1f7, 0xbac7, 0xda01, +0xb75e, 0xdb85, 0x0689, 0x0f50, 0x402d, 0x3a48, 0xf492, 0xf3ba, 0x232e, 0xe3c2, +0xc221, 0x1c7e, 0x103b, 0xda32, 0x0d99, 0x12a9, 0xc374, 0xe4a9, 0x2fee, 0xef59, +0xf571, 0x4551, 0x09ce, 0xee4d, 0x190c, 0xdd87, 0xa5eb, 0xf5c9, 0x0d02, 0xd8dd, +0x32e0, 0x4556, 0xf27b, 0x272d, 0x1a0f, 0xac2d, 0xc929, 0x0d48, 0xd065, 0xe73f, +0x4fb6, 0x0a4b, 0xfcc1, 0x4512, 0xed54, 0xb2b9, 0x0350, 0xfc0b, 0xbed7, 0x1926, +0x2f0c, 0xe1a6, 0x2871, 0x338a, 0xc365, 0xd8fc, 0x2261, 0xe12a, 0xda5e, 0x3836, +0x02a6, 0xeb2d, 0x3c29, 0xfc95, 0xb47f, 0x126c, 0x2240, 0xc4df, 0x1301, 0x42d9, +0xddbd, 0x05c8, 0x2ff4, 0xc609, 0xc9ef, 0x2ebd, 0xf193, 0xda07, 0x46da, 0x0cd3, +0xe052, 0x39eb, 0x0085, 0xa3df, 0xfdbd, 0x1d67, 0xc36d, 0x1321, 0x461a, 0xe3db, +0x121d, 0x3bc5, 0xce7e, 0xc611, 0x1e92, 0xe869, 0xd146, 0x3d6e, 0x12f6, 0xe781, +0x3a2e, 0x100e, 0xb4c0, 0xf87f, 0x2451, 0xce12, 0xfd54, 0x3b61, 0xe9af, 0x0485, +0x363a, 0xd7a5, 0xc531, 0x26b6, 0xfb26, 0xd3af, 0x4024, 0x13d3, 0xcf38, 0x31ca, +0x1fe6, 0xacba, 0xe830, 0x28d0, 0xd67b, 0x03f4, 0x4390, 0xeff5, 0x0d9b, 0x3cdc, +0xd2ef, 0xbce5, 0x1df5, 0xf194, 0xcc0a, 0x3c7b, 0x22be, 0xe9d0, 0x37e4, 0x1f21, +0xbf6a, 0xed14, 0x13f9, 0xccad, 0xfeed, 0x36f2, 0xe931, 0x0bd9, 0x4870, 0xe9a7, +0xc649, 0x2406, 0x009e, 0xc7de, 0x28c6, 0x1d14, 0xe19d, 0x2d2e, 0x24eb, 0xc1ae, +0xf293, 0x2948, 0xd034, 0xfc36, 0x4c80, 0xed33, 0xf76a, 0x4574, 0xe546, 0xb51f, +0x205e, 0x01e4, 0xc8f6, 0x3c9b, 0x2dfd, 0xe000, 0x3231, 0x23e4, 0xac3f, 0xe1e2, +0x2470, 0xc806, 0xf279, 0x51f9, 0xfc93, 0xfd3d, 0x471f, 0xf14b, 0xb564, 0x0d8d, +0xf7a1, 0xbaf7, 0x2ae2, 0x3330, 0xe3cf, 0x2876, 0x2f9d, 0xbe99, 0xd8ed, 0x2066, +0xcc5b, 0xe037, 0x444b, 0xfc55, 0xf1ae, 0x3dee, 0xedb1, 0xa9f3, 0x0f58, 0x052a, +0xb88b, 0x286b, 0x32e9, 0xd191, 0x1a2d, 0x2b19, 0xb1ba, 0xd055, 0x2574, 0xcd9d, +0xe17a, 0x4f5d, 0xf991, 0xe9c8, 0x4424, 0xee22, 0xa03f, 0x0b3e, 0x0833, 0xb2f6, +0x25d7, 0x3fb5, 0xd971, 0x1eca, 0x3552, 0xb55f, 0xc5ed, 0x2341, 0xd2b5, 0xd7c1, +0x523e, 0x069d, 0xe63d, 0x453d, 0xfaec, 0xa137, 0x0414, 0x12c4, 0xb981, 0x1bb8, +0x4054, 0xdb21, 0x1feb, 0x3f6a, 0xbc6b, 0xcb19, 0x2eaa, 0xdddc, 0xd782, 0x53f0, +0x0db9, 0xe5f5, 0x4ae5, 0x09f1, 0xaaaa, 0x08ea, 0x1b96, 0xc280, 0x22c4, 0x4ce0, +0xe24f, 0x1cfe, 0x4491, 0xc23a, 0xc424, 0x2faf, 0xe9a8, 0xd606, 0x50b8, 0x16c3, +0xe5a3, 0x41e4, 0x0b1a, 0xa940, 0xfef6, 0x1bdf, 0xbfb1, 0x1607, 0x4e4e, 0xe252, +0x116e, 0x44af, 0xc71f, 0xbeed, 0x2c56, 0xed57, 0xd13f, 0x46da, 0x1220, 0xdf44, +0x3fcf, 0x0e72, 0xa687, 0xfe99, 0x22c2, 0xc0f4, 0x10f5, 0x4ab0, 0xdcc9, 0x0862, +0x42d3, 0xcce8, 0xbf2b, 0x2c4a, 0xf130, 0xcf23, 0x47a0, 0x1557, 0xd894, 0x3b17, +0x15eb, 0xac91, 0xfc3e, 0x2839, 0xc889, 0x0a6b, 0x4a0a, 0xe524, 0x0571, 0x40a3, +0xd642, 0xc2d3, 0x2b1c, 0xfa19, 0xd4f9, 0x465b, 0x1ef6, 0xe106, 0x371e, 0x15ec, +0xb185, 0xfc2f, 0x2898, 0xcc97, 0x0b55, 0x4c1f, 0xebc4, 0x08bc, 0x3f08, 0xd705, +0xc599, 0x2bb5, 0x081d, 0xcd96, 0x0d3b, 0x0ffa, 0x0823, 0x3f09, 0x1a45, 0xdad9, +0x0662, 0x07b7, 0xbb6a, 0xde9a, 0x0740, 0xda46, 0x0e1e, 0x6549, 0x38b1, 0x04bd, +0x2510, 0xf943, 0xad98, 0xc9a0, 0xca5c, 0xcaba, 0x22c9, 0x2b10, 0x01f0, 0x511a, +0x637c, 0xe409, 0xcfea, 0xff1b, 0xbae4, 0x9b34, 0xfafc, 0x154f, 0xfdb5, 0x2da1, +0x2e82, 0x1b20, 0x2472, 0xf46c, 0xbc6b, 0xd8c3, 0xf895, 0xcd65, 0xe4ee, 0x20c1, +0x1821, 0x08d6, 0x178c, 0x2a03, 0x07e8, 0xfe05, 0xe136, 0xbccf, 0xeb99, 0xdae7, +0xd3aa, 0x1d70, 0x3e94, 0x094b, 0x0900, 0x5434, 0x0901, 0xc4b1, 0xdc6e, 0xc832, +0xca7f, 0xe370, 0xfc55, 0x19fb, 0x5037, 0x3174, 0xfe1c, 0x3bdc, 0x1079, 0xb5a5, +0xbd97, 0xde91, 0xd7dc, 0xd8e9, 0x1ed3, 0x2fd7, 0x3373, 0x2e1c, 0x130d, 0x2861, +0x0ada, 0xcec0, 0xaf81, 0xd3f1, 0xe991, 0xcbf7, 0x0636, 0x408c, 0x3d14, 0x22da, +0x2e7f, 0x334f, 0xf091, 0xd23f, 0xb6f6, 0xbe39, 0xe0ea, 0xdac6, 0x0ab7, 0x52de, +0x5241, 0x1a28, 0x36a7, 0x3ee4, 0xdc10, 0xbfb1, 0xc06c, 0xc69f, 0xdf82, 0xf62e, +0x1f54, 0x4e25, 0x578d, 0x17a6, 0x26c4, 0x37fc, 0xe05d, 0xc099, 0xcd8c, 0xd886, +0xd8c3, 0xfcba, 0x2d83, 0x3fa6, 0x48bb, 0x1e77, 0x2a31, 0x31eb, 0xe98e, 0xbcf5, +0xc196, 0xe4e4, 0xdb34, 0xf4b5, 0x398d, 0x47e8, 0x3526, 0x2168, 0x3d9a, 0x20eb, +0xddcb, 0xbe09, 0xb85c, 0xe775, 0xe3f6, 0xedd1, 0x3731, 0x576a, 0x2d99, 0x1229, +0x4011, 0x0fb4, 0xc58a, 0xc2e0, 0xc163, 0xd8b3, 0xe485, 0xfbc4, 0x28a2, 0x4aba, +0x2b57, 0x06a4, 0x385f, 0x150e, 0xc2cd, 0xb65c, 0xcd33, 0xde60, 0xd4fe, 0x0096, +0x3507, 0x45bc, 0x2781, 0x142c, 0x33ba, 0x049c, 0xc775, 0xb39c, 0xc6ec, 0xe39b, +0xd75b, 0x0203, 0x3c34, 0x4589, 0x1c2f, 0x171d, 0x336b, 0xeff6, 0xbf31, 0xb8c6, +0xc21c, 0xde19, 0xe412, 0x0b3a, 0x399a, 0x4631, 0x1799, 0x116c, 0x3085, 0xeefe, +0xbcec, 0xb922, 0xcdc6, 0xe051, 0xe2d7, 0x10d0, 0x38e1, 0x3dfb, 0x1356, 0x1516, +0x2876, 0xe6f8, 0xbb6a, 0xb636, 0xd128, 0xdda0, 0xdf16, 0x11df, 0x387e, 0x338c, +0x0c5c, 0x211c, 0x2422, 0xdca8, 0xbf10, 0xb435, 0xcd32, 0xde18, 0xe25f, 0x144e, +0x3fe0, 0x3472, 0x0753, 0x2b41, 0x27e8, 0xd555, 0xc117, 0xbddb, 0xcb8c, 0xdaa8, +0xee16, 0x185e, 0x406a, 0x394d, 0x0e4c, 0x3224, 0x2283, 0xcee6, 0xb78f, 0xbe46, +0xd600, 0xd73a, 0xf882, 0x2db5, 0x4253, 0x3500, 0x1558, 0x2eee, 0x13ba, 0xd1b3, +0xb80a, 0xbd32, 0xe28d, 0xdf23, 0xfd44, 0x3980, 0x4ace, 0x2d3f, 0x18f4, 0x34ae, +0x039f, 0xcc97, 0xbb5e, 0xbe2a, 0xe6fa, 0xe555, 0x023b, 0x3de8, 0x4db4, 0x2192, +0x1578, 0x3a68, 0xfe29, 0xc84a, 0xbd0b, 0xc1ef, 0xe3a9, 0xe936, 0x0a3b, 0x3ab4, +0x505a, 0x260d, 0x1903, 0x39c0, 0xf9ac, 0xc53b, 0xbc41, 0xcc45, 0xe5fc, 0xe843, +0x15b8, 0x436d, 0x4dae, 0x24c5, 0x212b, 0x33f2, 0xf1b2, 0xc3a3, 0xb509, 0xcd57, +0xe8db, 0xeb7c, 0x1d1e, 0x4aef, 0x4a01, 0x1af5, 0x24c7, 0x2df1, 0xe4a5, 0xc1ae, +0xb8ad, 0xd2c8, 0xe887, 0xee7b, 0x21d0, 0x4d5f, 0x4806, 0x171f, 0x2854, 0x27e5, +0xdd26, 0xc075, 0xb9c1, 0xd6dc, 0xe94e, 0xf760, 0x2a99, 0x4d0c, 0x4405, 0x1751, +0x2a63, 0x1e7d, 0xd670, 0xba60, 0xb674, 0xde00, 0xe8fc, 0xf57e, 0x3121, 0x51b2, +0x3a66, 0x11d4, 0x29d9, 0x107f, 0xd01f, 0xbbd1, 0xb864, 0xe08f, 0xea2a, 0xfafd, +0x34de, 0x5038, 0x3061, 0x1294, 0x3316, 0x07d3, 0xc6ab, 0xbd82, 0xc0f2, 0xe421, +0xebe4, 0x0398, 0x39c6, 0x54a2, 0x2e8b, 0x0e55, 0x3308, 0x0648, 0xc5ad, 0xbd8e, +0xc53c, 0xdfb2, 0xe8b4, 0x0f4a, 0x3d14, 0x4caa, 0x2bf1, 0x15bf, 0x2e89, 0xf945, +0xc136, 0xb890, 0xcaeb, 0xe950, 0xe7bf, 0x115d, 0x451b, 0x4aa1, 0x20cd, 0x1684, +0x2a91, 0xf0a3, 0xc5b7, 0xb815, 0xc9bf, 0xee16, 0xea12, 0x117d, 0x470b, 0x42c7, +0x113f, 0x1b7c, 0x2b91, 0xe191, 0xc212, 0xbd24, 0xc84b, 0xe419, 0xe8c1, 0x104f, +0x440c, 0x4662, 0x1122, 0x20a6, 0x2d8e, 0xda8b, 0xbcf3, 0xc089, 0xcbf5, 0xde1c, +0xf3c0, 0x2135, 0x414e, 0x3fd9, 0x15e1, 0x26f5, 0x292e, 0xdc7e, 0xb937, 0xb924, +0xd769, 0xe06d, 0xee92, 0x2aa0, 0x48ae, 0x379d, 0x15e3, 0x2afa, 0x167d, 0xd370, +0xbfeb, 0xb8aa, 0xd8da, 0xe695, 0xf331, 0x2abe, 0x4918, 0x2e1c, 0x0f19, 0x32cf, +0x0f46, 0xc822, 0xbf6b, 0xbca2, 0xdadc, 0xe628, 0xf835, 0x2cf1, 0x4b03, 0x2c10, +0x0df9, 0x358e, 0x0a2c, 0xc678, 0xc06b, 0xc05f, 0xd849, 0xe170, 0x02e1, 0x3324, +0x4bd0, 0x2fc8, 0x13c8, 0x3314, 0x0029, 0xbf2e, 0xb455, 0xc1d3, 0xe027, 0xe480, +0x0a7f, 0x2c7a, 0x5506, 0x634d, 0x2129, 0xfadf, 0xe1b5, 0xb620, 0x8bd2, 0xbfae, +0x0a2a, 0x0d5d, 0x5240, 0x8109, 0x4e83, 0x15cf, 0xf367, 0xba2c, 0x9d5f, 0xcd2e, +0xbdc8, 0xf85d, 0x6f35, 0x4484, 0x29e8, 0x54f0, 0x2a04, 0xcc06, 0xd6d5, 0xe253, +0xc387, 0x09da, 0xff4a, 0xebc6, 0x4eb3, 0x2edb, 0xcfcc, 0x0b9a, 0x3d1b, 0xdc1f, +0xf4a1, 0x3fae, 0xeb9b, 0xe915, 0x13be, 0xcb86, 0xb940, 0x1643, 0x18ee, 0xf7d9, +0x4acf, 0x30df, 0xe6dc, 0x16fe, 0xf4d5, 0x9c55, 0xcc79, 0x10aa, 0xe384, 0x0496, +0x4c2c, 0x0504, 0xff4c, 0x2d7e, 0xd93d, 0xacb4, 0x00e4, 0xf5af, 0xc18e, 0x2289, +0x2a64, 0xe0a9, 0x2089, 0x21b8, 0xbaf3, 0xdd89, 0x1ea4, 0xd2e4, 0xe648, 0x37ea, +0xec35, 0xe993, 0x35d6, 0xed2e, 0xbadd, 0x15b4, 0x0a9d, 0xc841, 0x1a7c, 0x191c, +0xcaef, 0x0f4e, 0x1fff, 0xbfae, 0xe155, 0x3460, 0xeb55, 0xe0b6, 0x3048, 0xf2f2, +0xddca, 0x235a, 0xee7f, 0xb7cc, 0x15dd, 0x2097, 0xce52, 0x180f, 0x2dcf, 0xd499, +0x0857, 0x29b8, 0xc4c2, 0xd000, 0x28ff, 0xe652, 0xde94, 0x43c5, 0x05e6, 0xe425, +0x356a, 0xfee7, 0xb2c1, 0x0914, 0x1584, 0xbe7b, 0x0e5a, 0x368a, 0xe276, 0x1274, +0x3391, 0xd008, 0xd357, 0x26c2, 0xec06, 0xdd61, 0x39e2, 0x0868, 0xe6f9, 0x3207, +0x091c, 0xbc0e, 0x0582, 0x1f6d, 0xd133, 0x1cab, 0x4d57, 0xeb81, 0x02e3, 0x3712, +0xde41, 0xc71f, 0x212b, 0xfb67, 0xe7a1, 0x504a, 0x23ac, 0xedd8, 0x3eb6, 0x157e, +0xad36, 0xfc30, 0x2995, 0xcb86, 0x10c5, 0x529b, 0xf7a7, 0x15fe, 0x4546, 0xdc21, +0xcaba, 0x26eb, 0xe984, 0xd493, 0x4c8e, 0x16e6, 0xe56c, 0x463b, 0x1cf9, 0xb4a9, +0xfd71, 0x24ab, 0xc8a4, 0x09c8, 0x41c1, 0xe4ff, 0x0a9c, 0x3d28, 0xd226, 0xc16f, +0x2d0a, 0xf732, 0xcb2f, 0x42b2, 0x1d8f, 0xd5f3, 0x2c26, 0x1649, 0xa7c7, 0xed21, +0x286f, 0xc688, 0x04e2, 0x51dd, 0xe73b, 0x0013, 0x46f0, 0xd1e8, 0xab29, 0x260f, +0xf7aa, 0xbdee, 0x402d, 0x25c0, 0xda8b, 0x3989, 0x21df, 0xa95c, 0xf0ed, 0x290b, +0xbd3d, 0xfb44, 0x4eba, 0xe63a, 0xfecd, 0x4a1d, 0xe177, 0xbc6f, 0x2af3, 0xfdf2, +0xc4cf, 0x3b3d, 0x1ebb, 0xd4a0, 0x319d, 0x221e, 0xaf94, 0xf1b0, 0x3313, 0xcaf9, +0xf7f2, 0x4fd1, 0xeb5b, 0xf54e, 0x3faa, 0xd925, 0xb016, 0x2624, 0x012e, 0xc2f3, +0x3e16, 0x255d, 0xce61, 0x2b67, 0x1e8d, 0xa020, 0xe075, 0x2e2f, 0xc930, 0xf3f3, +0x4f96, 0xe6da, 0xef8a, 0x43fb, 0xdd85, 0xab7b, 0x2022, 0xfe5f, 0xba39, 0x346d, +0x27b4, 0xd20a, 0x2bfd, 0x2882, 0xae6f, 0xe3d3, 0x2b38, 0xc9c6, 0xef8e, 0x49d8, +0xeade, 0xf2c2, 0x46de, 0xe8ca, 0xb2fe, 0x208e, 0x0855, 0xc5c4, 0x338e, 0x29eb, +0xd645, 0x257e, 0x260c, 0xb7e2, 0xebef, 0x3365, 0xd6d8, 0xf811, 0x518d, 0xf457, +0xf134, 0x4558, 0xf41a, 0xb66e, 0x1a28, 0x0bd1, 0xcaa3, 0x31f9, 0x3045, 0xe17a, +0x2ad4, 0x2f2d, 0xbd2b, 0xe13e, 0x2cfe, 0xd3bd, 0xea52, 0x4fb4, 0x020e, 0xf40a, +0x4278, 0xf8f7, 0xb45e, 0x127c, 0x0af1, 0xc2d1, 0x2b03, 0x36f1, 0xdd10, 0x20d2, +0x35ec, 0xc074, 0xd7bd, 0x2eef, 0xd9db, 0xe543, 0x52c9, 0x05cf, 0xec53, 0x41bb, +0xfa65, 0xaf2a, 0x15c6, 0x1274, 0xbe0e, 0x2c97, 0x448e, 0xdd59, 0x1c74, 0x3817, +0xbb2b, 0xcf5b, 0x2f9a, 0xdc0c, 0xe4f0, 0x586d, 0x096c, 0xe913, 0x42c2, 0xf921, +0xa4d2, 0x0f94, 0x157d, 0xbee7, 0x2a97, 0x46c2, 0xe0bf, 0x1d38, 0x3786, 0xb9af, +0xcb2a, 0x2dd9, 0xd952, 0xdcbe, 0x5596, 0x0bab, 0xea4b, 0x4531, 0xffe2, 0xa78b, +0x0c61, 0x136f, 0xb532, 0x2148, 0x44ae, 0xd96e, 0x195c, 0x392c, 0xb898, 0xc8e9, +0x3388, 0xef92, 0xcd85, 0x0ef6, 0xf796, 0x13e1, 0x506a, 0x028d, 0xcd42, 0x14f5, +0xf58e, 0x9d81, 0xe29f, 0xfb3c, 0xcd66, 0x1bbf, 0x6302, 0x30d7, 0x14e4, 0x29bc, +0xdf14, 0xae5e, 0xce80, 0xabdc, 0xca7e, 0x3503, 0x1ee4, 0xf688, 0x5aac, 0x62a7, +0xd87d, 0xd4d5, 0xfc76, 0xb6dd, 0xa5b5, 0xf6e7, 0x0b99, 0x0665, 0x381b, 0x1f19, +0x1206, 0x2ed5, 0xebdd, 0xb56d, 0xde2e, 0xf87e, 0xce4d, 0xed47, 0x2439, 0x121c, +0x1266, 0x1483, 0x16c8, 0x10fd, 0x0650, 0xd754, 0xbaff, 0xf7e2, 0xda39, 0xcd45, +0x2986, 0x40dc, 0x0e53, 0x182a, 0x50a1, 0x01de, 0xcb6e, 0xdc62, 0xb781, 0xcfc4, +0xee54, 0xf542, 0x2240, 0x5981, 0x2c5e, 0xf8e5, 0x3e3b, 0x0d29, 0xaf98, 0xc3b7, +0xd787, 0xd3b1, 0xe2e2, 0x19c0, 0x28df, 0x3943, 0x2fe3, 0x081e, 0x2922, 0x0f78, +0xc962, 0xb6cc, 0xd979, 0xe6a6, 0xd121, 0x07cf, 0x3500, 0x3ad0, 0x2c2a, 0x2624, +0x2c95, 0xfb6f, 0xd7be, 0xb61f, 0xc05e, 0xe300, 0xd931, 0x0c0c, 0x4eae, 0x4878, +0x15a7, 0x2a43, 0x31b1, 0xdd24, 0xc4ea, 0xbda7, 0xc680, 0xe6be, 0xf0c6, 0x13f8, +0x45f0, 0x4cdc, 0x09ee, 0x185b, 0x3039, 0xdd40, 0xc562, 0xd19d, 0xd51e, 0xdcc7, +0xfbf1, 0x1f9a, 0x3311, 0x4108, 0x10a0, 0x1d6d, 0x368a, 0xebc0, 0xbacd, 0xc61c, +0xe6be, 0xd8c6, 0xecc7, 0x2b4f, 0x3ad6, 0x3234, 0x16aa, 0x312b, 0x2c20, 0xe5cf, +0xbf0c, 0xc2d3, 0xef02, 0xde96, 0xe42b, 0x3264, 0x4f6e, 0x2b87, 0x1502, 0x434e, +0x2169, 0xd824, 0xcd4a, 0xcbe5, 0xe67d, 0xe8bc, 0xf5fe, 0x2bd2, 0x4fbf, 0x2b2a, +0x05aa, 0x4482, 0x2857, 0xcb20, 0xc28b, 0xdaa2, 0xe5a8, 0xd616, 0xfaa0, 0x2fc3, +0x4640, 0x2ce5, 0x0f5a, 0x3ab7, 0x1944, 0xcda3, 0xbbcb, 0xcda1, 0xe22a, 0xd491, +0x0143, 0x3873, 0x3fbe, 0x22bb, 0x1736, 0x3ae6, 0x0407, 0xc3a8, 0xb9c4, 0xc437, +0xdc67, 0xd7ba, 0x00f1, 0x3801, 0x41a0, 0x1951, 0x11c6, 0x35de, 0xf7fb, 0xbeac, +0xb811, 0xc658, 0xdc21, 0xd8e4, 0x060e, 0x39e5, 0x4146, 0x14d2, 0x16dd, 0x36f4, +0xed6d, 0xba86, 0xb9b4, 0xcb20, 0xdd7e, 0xdfe1, 0x0f15, 0x3b82, 0x3e9b, 0x1158, +0x1b8a, 0x323f, 0xe8e2, 0xbdfb, 0xb835, 0xd09f, 0xddf2, 0xdd36, 0x148a, 0x40d3, +0x3e5f, 0x13a7, 0x2794, 0x2f4a, 0xde17, 0xbd25, 0xb6e3, 0xcb99, 0xdc56, 0xe6b9, +0x1ce9, 0x4836, 0x40a4, 0x1189, 0x2c70, 0x2966, 0xd436, 0xb74c, 0xb722, 0xd074, +0xdc0f, 0xf37b, 0x2f67, 0x4c6c, 0x3aa1, 0x13df, 0x2e82, 0x1863, 0xcd4e, 0xbc3f, +0xbce0, 0xd9c4, 0xe1be, 0xfb8d, 0x359d, 0x4c01, 0x3625, 0x17b8, 0x32ce, 0x1032, +0xcc89, 0xbc30, 0xbdba, 0xe2ec, 0xe81c, 0x005e, 0x3db9, 0x512c, 0x2c97, 0x17fc, +0x380c, 0x06f5, 0xcdb1, 0xc0d4, 0xbe6b, 0xe241, 0xead9, 0x05a4, 0x3a27, 0x518a, +0x2c10, 0x187d, 0x3809, 0xfd0c, 0xc4ac, 0xbff0, 0xc939, 0xe3de, 0xe907, 0x0ded, +0x3e36, 0x4e75, 0x2456, 0x1759, 0x31b3, 0xf547, 0xc449, 0xba76, 0xcb7c, 0xe629, +0xeb17, 0x17cc, 0x43ae, 0x4970, 0x1dfb, 0x1c5c, 0x2c1b, 0xe97c, 0xc40d, 0xbedd, +0xd492, 0xe90c, 0xea14, 0x18aa, 0x44ec, 0x43bf, 0x15aa, 0x2421, 0x2f68, 0xe453, +0xc2c4, 0xbef4, 0xd4c2, 0xe5c8, 0xf22d, 0x2430, 0x475e, 0x4461, 0x187f, 0x2916, +0x2d8a, 0xe382, 0xc1ee, 0xc2fa, 0xe144, 0xe6ea, 0xf400, 0x30a7, 0x50eb, 0x4265, +0x1b39, 0x2f67, 0x2260, 0xde78, 0xc61b, 0xc3e2, 0xe4c5, 0xea6e, 0xf9b7, 0x32e4, +0x4b24, 0x330a, 0x1529, 0x377b, 0x1ad4, 0xd298, 0xc471, 0xc39e, 0xdfcf, 0xe493, +0xf83e, 0x339f, 0x5169, 0x3178, 0x0fe4, 0x3634, 0x10e7, 0xcad8, 0xc188, 0xc0cb, +0xd97a, 0xe36b, 0x01cf, 0x3255, 0x49ca, 0x2dc9, 0x1019, 0x33a3, 0x059a, 0xbd42, +0xb33f, 0xbe30, 0xd9b3, 0xdc31, 0x0338, 0x37ee, 0x44ae, 0x224f, 0x0cf2, 0x27ab, +0xf5dc, 0xbd67, 0xaf02, 0xbe02, 0xde1c, 0xd738, 0x02b2, 0x3eba, 0x4074, 0x174f, +0x1829, 0x2c82, 0xe72a, 0xbf61, 0xb6b3, 0xbe85, 0xe2b1, 0xe25f, 0x05c1, 0x4181, +0x4a2b, 0x1512, 0x1a96, 0x326a, 0xe3c7, 0xbc8c, 0xb7af, 0xbd6f, 0xd849, 0xe90a, +0x150e, 0x3ed0, 0x469e, 0x176f, 0x1b23, 0x2908, 0xdb26, 0xb2f3, 0xb1f8, 0xca6a, +0xdb06, 0xe6a5, 0x1fb9, 0x4383, 0x3e5d, 0x1596, 0x1e94, 0x1cb0, 0xd8cf, 0xba95, +0xaec4, 0xcef4, 0xe43f, 0xeaf7, 0x2443, 0x4766, 0x336a, 0x0e32, 0x27a3, 0x1356, +0xcd5d, 0xc150, 0xb6ba, 0xd1d8, 0xe528, 0xee84, 0x2426, 0x4adf, 0x3667, 0x10cd, +0x310e, 0x1388, 0xcbbb, 0xc47e, 0xbd1f, 0xd491, 0xe98e, 0x0244, 0x3289, 0x53b3, +0x3eb9, 0x1566, 0x3290, 0x11e3, 0xcc07, 0xc004, 0xc4fd, 0xe223, 0xed0a, 0x10ae, +0x3ff0, 0x5037, 0x36e6, 0x164f, 0x29a1, 0x0284, 0xcdb8, 0xbdcd, 0xc637, 0xed96, +0xeeb1, 0x0cd0, 0x4050, 0x49bb, 0x239a, 0x1780, 0x2eab, 0xf6b6, 0xce3d, 0xbc38, +0xc8a0, 0x00e6, 0xefad, 0x0021, 0x33f9, 0x3ae3, 0x3cd3, 0x3fb1, 0x1838, 0xd924, +0xd541, 0xaecf, 0xa5de, 0xf7be, 0xfc4c, 0x140b, 0x790a, 0x7937, 0x1616, 0xfecc, +0xe9f4, 0x93de, 0xa330, 0xc0f0, 0xcf7e, 0x2cbc, 0x6286, 0x4ccf, 0x462d, 0x450f, +0xe74f, 0xa99c, 0xd6b1, 0xc669, 0xba55, 0xfefe, 0x25a9, 0x3149, 0x43ec, 0x1f26, +0xede2, 0x0adf, 0xff6f, 0xbdad, 0xf121, 0x2c23, 0xf18d, 0xf0cc, 0x2718, 0xe6c1, +0xbbba, 0x1d92, 0x14c7, 0xde85, 0x3e57, 0x31f4, 0xe295, 0x0f8d, 0xf992, 0xa267, +0xd117, 0x1bec, 0xe179, 0x07c9, 0x5af9, 0x03a7, 0x02e9, 0x3014, 0xd04d, 0xa794, +0xfb7e, 0xf282, 0xc715, 0x36b9, 0x3764, 0xea25, 0x307a, 0x1cb0, 0xb2ec, 0xd406, +0x117c, 0xd2a9, 0xea54, 0x43e9, 0xfc21, 0xfaa3, 0x3fc1, 0xeafd, 0xb060, 0x0b4c, +0x0ff9, 0xc461, 0x1954, 0x3040, 0xd984, 0x1601, 0x2825, 0xbc3f, 0xdbce, 0x3875, +0xe248, 0xdd2e, 0x4e02, 0xfd2c, 0xd91c, 0x3749, 0xf658, 0xaa69, 0x13e1, 0x2498, +0xcc14, 0x21ba, 0x3a26, 0xdb15, 0x1623, 0x2c3d, 0xba40, 0xcd2e, 0x2cf5, 0xe4ae, +0xe186, 0x52e0, 0x0d31, 0xe5cf, 0x3778, 0xffc1, 0xac3d, 0xfddf, 0x1bac, 0xc8ec, +0x14d4, 0x4029, 0xe79d, 0x15d6, 0x3792, 0xcc34, 0xca86, 0x3225, 0xf50a, 0xcf32, +0x3e28, 0x12b9, 0xe181, 0x364b, 0x1002, 0xb4c9, 0x031c, 0x26d6, 0xd0a9, 0x1e6a, +0x443a, 0xd350, 0x08d3, 0x41ed, 0xc7a2, 0xb99c, 0x2fe3, 0xff21, 0xdc75, 0x4839, +0x19bb, 0xe84c, 0x32f7, 0x01b7, 0xaddf, 0xfef1, 0x1e1c, 0xcae8, 0x16e4, 0x4bda, +0xecbb, 0x0caf, 0x3f24, 0xe0dc, 0xc4bc, 0x18da, 0xf67e, 0xdd77, 0x3908, 0x10f4, +0xed5b, 0x4369, 0x1b8d, 0xb980, 0x0190, 0x297a, 0xc6e3, 0x009e, 0x4462, 0xea33, +0x0155, 0x3cba, 0xe27f, 0xcbef, 0x2bda, 0xf9a0, 0xd4bc, 0x439f, 0x150b, 0xd559, +0x344d, 0x1a5b, 0xaf57, 0xf935, 0x2de0, 0xcf9a, 0x0979, 0x49a9, 0xea95, 0x051a, +0x3cdb, 0xd6df, 0xbc25, 0x2174, 0xf28b, 0xc89b, 0x4222, 0x2645, 0xdfc1, 0x315e, +0x201e, 0xb2fc, 0xe3d4, 0x181b, 0xc442, 0xfd80, 0x4a43, 0xed31, 0xff1f, 0x4381, +0xdf06, 0xb4dc, 0x1fd7, 0xf6dc, 0xbffe, 0x3a30, 0x24f3, 0xd6d6, 0x297b, 0x1c5d, +0xaf37, 0xedb8, 0x286b, 0xc61d, 0xfe95, 0x515b, 0xe559, 0xf3c9, 0x4090, 0xd830, +0xae85, 0x1db8, 0xf7ec, 0xc607, 0x3f9f, 0x264d, 0xd94a, 0x2a8a, 0x1485, 0xa002, +0xdeaf, 0x235b, 0xc381, 0xfa49, 0x5796, 0xefa6, 0xf6b9, 0x4056, 0xd904, 0xa813, +0x17bf, 0xf931, 0xbf26, 0x3e31, 0x2c1d, 0xd50a, 0x2d55, 0x22b9, 0xa846, 0xdf9f, +0x28c5, 0xc598, 0xef6b, 0x51e5, 0xf17d, 0xfa6e, 0x46ce, 0xddcb, 0xac63, 0x1bcf, +0xff42, 0xc08e, 0x3b8a, 0x30ab, 0xd540, 0x2b2a, 0x2b14, 0xb01e, 0xe003, 0x2eb4, +0xd207, 0xf705, 0x5a04, 0xf5f1, 0xf4f2, 0x49c1, 0xe735, 0xac7d, 0x1ff2, 0x0bc1, +0xc150, 0x3a15, 0x3cd0, 0xdc44, 0x29ee, 0x3079, 0xb504, 0xdcbb, 0x2cd7, 0xcfca, +0xeed8, 0x5c84, 0xfe19, 0xf346, 0x4ec0, 0xf24e, 0xa9a2, 0x1b01, 0x120e, 0xbf61, +0x31bd, 0x3ed0, 0xdca8, 0x27d7, 0x3553, 0xb79f, 0xddc0, 0x376a, 0xd743, 0xea45, +0x592a, 0xf9f4, 0xe94c, 0x4a1d, 0xf552, 0xa9a1, 0x19d2, 0x14c6, 0xbc9b, 0x2b11, +0x3913, 0xd2dc, 0x1f02, 0x340a, 0xb6b6, 0xd426, 0x33f8, 0xd9a8, 0xdc7f, 0x5123, +0xfd3a, 0xde46, 0x40ce, 0xfa10, 0xa997, 0x14a8, 0x1bb4, 0xc08d, 0x2376, 0x3d24, +0xd503, 0x166b, 0x35f1, 0xbc86, 0xd0fa, 0x36e8, 0xf1a1, 0xd628, 0x16ed, 0xf145, +0x0d1a, 0x55e9, 0x09b3, 0xd0ea, 0x189e, 0xfae5, 0xa1d9, 0xe581, 0xfd1f, 0xd241, +0x1ffa, 0x5b9f, 0x2d05, 0x1f94, 0x316b, 0xe330, 0xba22, 0xd9ab, 0xb354, 0xcfaa, +0x3059, 0x1e34, 0xfcfc, 0x565e, 0x623a, 0xe738, 0xe027, 0xfe57, 0xc099, 0xb327, +0xf470, 0x0c3c, 0x0e38, 0x38fd, 0x1a11, 0x0892, 0x3339, 0xf5c3, 0xbab1, 0xe297, +0xf843, 0xce95, 0xe620, 0x1c2a, 0x09ee, 0x1283, 0x1b02, 0x1187, 0x188b, 0x0e86, +0xd87e, 0xb652, 0xeca9, 0xdb2d, 0xc7dd, 0x1fe5, 0x379e, 0x0fd2, 0x1c45, 0x4c2e, +0x1316, 0xd85d, 0xdfc8, 0xb6df, 0xc87f, 0xeb35, 0xe54a, 0x1628, 0x57e4, 0x3419, +0xff6c, 0x4156, 0x1c74, 0xb5b4, 0xca06, 0xd49b, 0xc6db, 0xdff3, 0x0f42, 0x1c9b, +0x38c2, 0x3cc3, 0x059b, 0x2a27, 0x2699, 0xce85, 0xb4f9, 0xd393, 0xdea9, 0xcdb3, +0x03e7, 0x3281, 0x3d54, 0x3c61, 0x2583, 0x2ce2, 0x0c86, 0xdb4d, 0xb3bf, 0xbb9c, +0xe353, 0xd3fa, 0x034f, 0x4cdb, 0x4ab4, 0x21fa, 0x2b59, 0x391f, 0xeb27, 0xc6cb, +0xb8e4, 0xba9a, 0xe811, 0xec0e, 0x0c31, 0x4bdb, 0x5772, 0x163d, 0x1a19, 0x3f4d, +0xe9e8, 0xc3a2, 0xce2a, 0xc788, 0xd9f4, 0xf83e, 0x1bc6, 0x3ce8, 0x5548, 0x1db0, +0x1a55, 0x4521, 0xf1e2, 0xb3ab, 0xc2fd, 0xdbe1, 0xd800, 0xed52, 0x2c30, 0x402d, +0x430b, 0x23ff, 0x260b, 0x2f76, 0xea68, 0xb3d7, 0xb28e, 0xe14a, 0xdd06, 0xe066, +0x33b3, 0x51ec, 0x33b4, 0x1667, 0x3052, 0x1b77, 0xd41e, 0xc1bd, 0xb6c4, 0xd7a4, +0xeae0, 0xe9c9, 0x2119, 0x50ee, 0x3348, 0x0504, 0x35a7, 0x2224, 0xc555, 0xbad4, +0xc362, 0xd0c4, 0xdade, 0xf6c3, 0x247a, 0x463c, 0x3726, 0x098e, 0x2ae9, 0x1a2f, +0xc9d7, 0xb0fe, 0xc012, 0xdaac, 0xd5e1, 0xf9b0, 0x351f, 0x47da, 0x2cc6, 0x10fb, +0x2d9f, 0x068e, 0xc5e3, 0xb7fe, 0xc297, 0xe2b0, 0xe422, 0x01db, 0x36ef, 0x48cb, +0x23b7, 0x10de, 0x3507, 0x0307, 0xc7bf, 0xbff3, 0xc77c, 0xe128, 0xe56e, 0x0857, +0x3924, 0x4aaf, 0x2249, 0x103e, 0x31eb, 0xfa7b, 0xc42a, 0xbff2, 0xca69, 0xdf50, +0xe715, 0x1070, 0x37d6, 0x4303, 0x1eac, 0x16ba, 0x3184, 0xf739, 0xc4f5, 0xba46, +0xcd7e, 0xe4d0, 0xe592, 0x10ee, 0x3d09, 0x4044, 0x17ce, 0x2016, 0x2f3f, 0xe9e5, +0xc633, 0xbad5, 0xc6f9, 0xdeac, 0xe624, 0x121c, 0x413b, 0x4301, 0x1783, 0x29fd, +0x2ba5, 0xdaa4, 0xbe2e, 0xbb8e, 0xcbc8, 0xdde4, 0xf1e9, 0x21db, 0x439b, 0x4190, +0x172e, 0x27a0, 0x21f8, 0xd636, 0xbad8, 0xb8bf, 0xd096, 0xdf64, 0xf8a8, 0x2b93, +0x443b, 0x3b96, 0x185e, 0x26da, 0x10a6, 0xd167, 0xbdb5, 0xb977, 0xdb3a, 0xe708, +0xfa86, 0x2f52, 0x4806, 0x3265, 0x17a3, 0x31bc, 0x0e05, 0xd510, 0xc461, 0xbd66, +0xe192, 0xed77, 0x0119, 0x32ba, 0x50ed, 0x31ea, 0x16d3, 0x36ec, 0x0732, 0xcfc7, +0xc460, 0xc184, 0xdf83, 0xea58, 0x0626, 0x3550, 0x5246, 0x2def, 0x16cd, 0x3427, +0xfd3a, 0xc953, 0xbd3c, 0xc544, 0xe4ec, 0xf153, 0x166b, 0x3e10, 0x4e6d, 0x26d4, +0x1968, 0x2f16, 0xf428, 0xcae0, 0xbedd, 0xccf8, 0xe956, 0xefa2, 0x1950, 0x4297, +0x4a75, 0x1de5, 0x1955, 0x29ba, 0xeb91, 0xc61c, 0xbb12, 0xce33, 0xe7ce, 0xefe6, +0x18c6, 0x3e32, 0x43c5, 0x1922, 0x1cc3, 0x20fd, 0xde2b, 0xbf55, 0xb70b, 0xd16f, +0xe788, 0xef8e, 0x20c4, 0x4654, 0x3d93, 0x11d7, 0x1d2e, 0x15c5, 0xd810, 0xc122, +0xb7df, 0xd5bd, 0xe934, 0xf5a0, 0x24cd, 0x4321, 0x356b, 0x10be, 0x2522, 0x0e25, +0xcdbf, 0xc120, 0xbd1c, 0xd9ef, 0xe950, 0xf8ec, 0x2940, 0x4a04, 0x31e9, 0x09bb, +0x2935, 0x0de2, 0xcd32, 0xc3e0, 0xc0ad, 0xd96f, 0xebee, 0x0617, 0x2f65, 0x4a9d, +0x32b8, 0x104d, 0x2b20, 0x042c, 0xc6fe, 0xc0fc, 0xccb1, 0xe4c6, 0xe7e5, 0x0a2f, +0x3646, 0x44a9, 0x27ed, 0x0f84, 0x2482, 0xf9ba, 0xc9c9, 0xbc46, 0xc6f1, 0xe7c9, +0xe7b4, 0x0935, 0x38ab, 0x3dfb, 0x17f4, 0x1202, 0x2366, 0xe8cf, 0xc894, 0xc02b, +0xc4e7, 0xe682, 0xe9b4, 0x07dc, 0x39bc, 0x4323, 0x1255, 0x11a3, 0x2383, 0xde38, +0xc201, 0xc28c, 0xc797, 0xe30e, 0xf319, 0x11aa, 0x3329, 0x3e07, 0x11d9, 0x1242, +0x2173, 0xdd6c, 0xbc12, 0xbfc4, 0xd3cc, 0xe301, 0xf14f, 0x1ed7, 0x3c0b, 0x3bbe, +0x150a, 0x16d9, 0x1504, 0xded6, 0xc844, 0xc0c3, 0xdedd, 0xf0d7, 0xf666, 0x25d8, +0x4424, 0x33d0, 0x130e, 0x2876, 0x1370, 0xd7a6, 0xcf17, 0xc604, 0xdfb9, 0xf3d2, +0xfde9, 0x29bc, 0x4a3a, 0x328f, 0x0b59, 0x293f, 0x0f84, 0xd398, 0xd04b, 0xc938, +0xdc96, 0xf077, 0x05ff, 0x2a1d, 0x46e9, 0x33e3, 0x0e06, 0x27af, 0x084b, 0xcbee, +0xc5ed, 0xce50, 0xe4ec, 0xee95, 0x0fc4, 0x3481, 0x4291, 0x2ab8, 0x0ee7, 0x217a, +0xfbca, 0xd072, 0xc584, 0xcdc2, 0xeeae, 0xf284, 0x0beb, 0x2a91, 0x499c, 0x4ab9, +0x1751, 0xfb4e, 0xdff4, 0xc548, 0xaa11, 0xcb25, 0x079b, 0x0c5f, 0x3e98, 0x6247, +0x3e07, 0x0f43, 0xf0e4, 0xca5f, 0xb34f, 0xd401, 0xc893, 0xf3d1, 0x4c26, 0x308b, +0x22b3, 0x41c0, 0x2279, 0xdc8b, 0xdff8, 0xe310, 0xcceb, 0x027f, 0xf615, 0xee06, +0x3db0, 0x2392, 0xe01d, 0x1366, 0x3415, 0xe34c, 0xf6fc, 0x29c3, 0xe8c4, 0xee7a, +0x0fa2, 0xddee, 0xd84b, 0x1d1b, 0x1722, 0xff58, 0x3ac2, 0x1f74, 0xf03f, 0x1870, +0xfcd6, 0xbff1, 0xe68f, 0x1180, 0xed1f, 0x0a12, 0x3895, 0x07ec, 0x0a31, 0x24b3, +0xe648, 0xc9fc, 0x0734, 0xf757, 0xd412, 0x1f4f, 0x1e8b, 0xee37, 0x1f0e, 0x1be3, +0xd43a, 0xefa3, 0x194b, 0xddce, 0xf237, 0x287d, 0xeedf, 0xf88e, 0x2f7f, 0xf704, +0xd874, 0x1c88, 0x0972, 0xd8d5, 0x1702, 0x0f28, 0xe05e, 0x15f4, 0x1a7c, 0xd9ff, +0xf6eb, 0x29b0, 0xf002, 0xf068, 0x23d5, 0xf4b8, 0xf046, 0x1d23, 0xf157, 0xd110, +0x1519, 0x14cc, 0xdede, 0x142d, 0x1a12, 0xe515, 0x0b1c, 0x1636, 0xd4d5, 0xe629, +0x1cf8, 0xe7c6, 0xea58, 0x2b1f, 0xfc3e, 0xeeea, 0x236a, 0xfb53, 0xcfca, 0x089d, +0x0488, 0xd160, 0x0a55, 0x141d, 0xe5cd, 0x107d, 0x186d, 0xd8c8, 0xeaf7, 0x1870, +0xe826, 0xe955, 0x18d7, 0xf4b0, 0xf2f4, 0x198f, 0xf637, 0xd898, 0x0a60, 0x099d, +0xe121, 0x112c, 0x19f0, 0xe9f0, 0x0257, 0x16f3, 0xea68, 0xe825, 0x11db, 0xf73d, +0xf784, 0x22c2, 0x01a7, 0xfa94, 0x2329, 0xff98, 0xd3ac, 0x066b, 0x0f20, 0xe092, +0x0cc3, 0x1ddc, 0xf6f5, 0x1320, 0x1de5, 0xe877, 0xf111, 0x167b, 0xeabe, 0xf59b, +0x2682, 0xf99e, 0xf763, 0x2689, 0x0359, 0xdfbd, 0x0e98, 0x0da2, 0xe78d, 0x0e20, +0x0ddb, 0xeff0, 0x11e2, 0x1312, 0xe459, 0xf4b0, 0x1704, 0xee92, 0xf4ab, 0x1ec2, +0xfc20, 0xf450, 0x169f, 0xfcad, 0xdbac, 0x0468, 0x089e, 0xe794, 0x0e53, 0x118e, +0xefe9, 0x0e4a, 0x169a, 0xe1da, 0xebc0, 0x15eb, 0xefcb, 0xf2ee, 0x1beb, 0xfce8, +0xfa9c, 0x1c17, 0xffdb, 0xe6b1, 0x0fc5, 0x065c, 0xe6be, 0x10a6, 0x0c31, 0xefee, +0x1306, 0x13f9, 0xe94c, 0xfe45, 0x19f0, 0xf32a, 0xfe85, 0x1905, 0xf62a, 0xfd6b, +0x1747, 0xf729, 0xeaea, 0x11d1, 0x0593, 0xf301, 0x1786, 0x0b5f, 0xf124, 0x0940, +0x0668, 0xe6ec, 0xfe96, 0x1506, 0xf474, 0x04f3, 0x1923, 0xf708, 0xfe00, 0x1197, +0xf0a5, 0xe784, 0x0dcb, 0xff73, 0xf084, 0x1476, 0x091e, 0xf640, 0x0af0, 0x0286, +0xe773, 0xfd6b, 0x0efa, 0xf175, 0xf89a, 0x07af, 0xf9a6, 0x0516, 0x128d, 0x00ff, +0xfb4e, 0x0ed0, 0xfc70, 0xe60e, 0xf53d, 0xf46c, 0xf494, 0x0bff, 0x1551, 0x06e1, +0x0c9f, 0x0f55, 0xefab, 0xed70, 0xf731, 0xf0fe, 0xfd13, 0x0d56, 0x068f, 0x0174, +0x0fee, 0xffe4, 0xea15, 0xfb9a, 0xffd4, 0xf166, 0xfe33, 0x0e6f, 0xfeb8, 0x0068, +0x0cad, 0xf543, 0xef47, 0x0118, 0xf5be, 0xeb4f, 0x04dc, 0x09b3, 0xf586, 0x0081, +0x05bb, 0xf123, 0xf60d, 0x03d9, 0xf8d9, 0xfe28, 0x0dac, 0xfb79, 0xf27c, 0xfe7f, +0xf2c5, 0xeeb0, 0x04d2, 0x030d, 0xfb07, 0x0e9e, 0x0d11, 0xf686, 0xfc94, 0xffbf, +0xed59, 0xf589, 0x05ab, 0xfa48, 0xffa7, 0x10c1, 0x014b, 0xfa25, 0x09af, 0xfdfc, +0xf0ef, 0x03b9, 0x0400, 0xf635, 0x063f, 0x0b0b, 0xf9ca, 0x03dd, 0x0d8d, 0xfce6, +0x00df, 0x0f4b, 0x024e, 0xff59, 0x0dc5, 0x0159, 0xf654, 0x067a, 0x0580, 0xfe5c, +0x0e74, 0x0f97, 0x0220, 0x099e, 0x09f1, 0xf6cc, 0xfa19, 0x04a0, 0xfb69, 0x0199, +0x10a2, 0x0726, 0x02f2, 0x0c0d, 0x00c5, 0xf7e4, 0x056d, 0x020c, 0xf921, 0x0880, +0x0a05, 0xfc9b, 0x05b1, 0x0ba8, 0xfd73, 0x0126, 0x0afa, 0xfedb, 0xfe8e, 0x0754, +0xff08, 0x010e, 0x0a12, 0xff2a, 0xfc7a, 0x0965, 0x0306, 0xfbf9, 0x0735, 0x05c2, +0xfdbe, 0x020b, 0x01d4, 0xfd23, 0x035d, 0x0690, 0x0006, 0x0536, 0x0b42, 0x02fd, +0x0048, 0x04d9, 0xffac, 0xfb96, 0x0522, 0x06ea, 0x01a3, 0x0640, 0x0721, 0x02e7, +0x04ad, 0x0494, 0xfe70, 0x009e, 0x0380, 0xfafb, 0xfecf, 0x0890, 0x0224, 0xffd6, +0x0613, 0x005f, 0xfada, 0x0129, 0xfdf3, 0xf949, 0x014d, 0x006d, 0xfa91, 0x0029, +0x002c, 0xf7d8, 0xff02, 0x0615, 0xfbc4, 0xfc2b, 0x035b, 0xfb89, 0xf601, 0xfa4f, +0xfabf, 0xfbd9, 0x00a3, 0xfe0a, 0xfbd4, 0x0009, 0xfe8b, 0xf866, 0xf96c, 0xfcbd, +0xf750, 0xf6d5, 0xfee5, 0xfea6, 0xfc47, 0x00a5, 0x013f, 0xfaa4, 0xf910, 0xf98a, +0xf6f0, 0xfa55, 0xfc01, 0xfac1, 0xff53, 0x001d, 0xfac1, 0xfb9d, 0xfef2, 0xf9c9, +0xf9ce, 0xff10, 0xfabf, 0xfab8, 0xfe59, 0xfa05, 0xfa90, 0x00a1, 0xff54, 0xfdbe, +0x0243, 0xff6b, 0xfac6, 0xfde2, 0xfc78, 0xf927, 0xfc12, 0xfe2f, 0xfc8a, 0xfe15, +0x00a9, 0xff55, 0x0011, 0x0049, 0xfbfb, 0xfa18, 0xfd23, 0xfbc7, 0xf7ac, 0xfd25, +0x019e, 0x0030, 0x02a9, 0x0344, 0x0053, 0x0036, 0x003f, 0xfc42, 0xfd77, 0x047f, +0x022f, 0xffd5, 0x0747, 0x065b, 0xffcd, 0x058c, 0x0801, 0x00b8, 0x029f, 0x057c, +0x0228, 0x02a9, 0x03ae, 0x0336, 0x052e, 0x06d3, 0x0355, 0x0367, 0x097b, 0x0767, +0x040b, 0x0708, 0x062b, 0x00f3, 0x010e, 0x0624, 0x0661, 0x0641, 0x0870, 0x08cf, +0x095c, 0x0672, 0x0114, 0x0064, 0x0450, 0x0372, 0x00f0, 0x074e, 0x0927, 0x0375, +0x04d0, 0x06fa, 0x0278, 0x00e0, 0x023e, 0x0105, 0x0392, 0x0478, 0x01dc, 0x0633, +0x06ad, 0x0137, 0x035b, 0x071e, 0x039a, 0x00b9, 0x0238, 0x0257, 0x03b3, 0x032c, +0x00b5, 0x062b, 0x0920, 0x0425, 0x05d7, 0x09b0, 0x0457, 0x011e, 0x02cb, 0x0112, +0x01e7, 0x03e0, 0x04a0, 0x09f0, 0x0993, 0x025d, 0x03ab, 0x06f0, 0x01ce, 0xffa9, +0x0343, 0x03bf, 0x02bc, 0x0192, 0x0175, 0x03f8, 0x025f, 0xfe13, 0xffaf, 0x037b, +0x017f, 0xff0d, 0x010c, 0x01cc, 0xff47, 0xfda7, 0xff79, 0xffc8, 0xfd08, 0xfdcd, +0x01e5, 0x03c0, 0x00fa, 0xfdf8, 0xfdb9, 0xff87, 0xff9b, 0xfbe2, 0xfeae, 0x0380, +0x0014, 0xfe6f, 0x0115, 0x0048, 0xfe1d, 0xff3b, 0xff7b, 0xff0a, 0x0012, 0xfed0, +0xfed6, 0xffe0, 0xfcbf, 0xfbdb, 0x005d, 0xffb1, 0xf9ae, 0xfb2b, 0x0004, 0xff44, +0xfc6c, 0xfb62, 0xfdf8, 0xff0d, 0xfbbb, 0xfae7, 0xfd8a, 0xfd70, 0xfaee, 0xfbe3, +0xfdf3, 0xfc89, 0xfa9a, 0xfb6e, 0xfd82, 0xfcb8, 0xfaa3, 0xfc2a, 0xfeb9, 0xfc5c, +0xf8a1, 0xfb85, 0x000c, 0xfee7, 0xfbc5, 0xfc1f, 0xfee8, 0xfdac, 0xfae0, 0xfc8b, +0xfef5, 0xfebd, 0xfdf5, 0xfec1, 0x0023, 0xff0f, 0xfc4a, 0xfdd7, 0x00f5, 0xfea6, +0xfd0c, 0x002f, 0x0087, 0xfc77, 0xfc93, 0x0024, 0x013b, 0x00dc, 0xfdb0, 0xfcbd, +0x0060, 0xfed8, 0xfc65, 0xfff5, 0x0160, 0xfef8, 0x0045, 0x0243, 0x0065, 0xfff6, +0x0124, 0x00f9, 0x00f5, 0x00ae, 0xff8e, 0x00df, 0x02e1, 0xffa3, 0xfea2, 0x0390, +0x035d, 0xff35, 0xff1f, 0x009b, 0x0048, 0xffed, 0x0005, 0xfff7, 0x0019, 0xff23, +0xfe36, 0xff91, 0x0112, 0x0088, 0xfff6, 0x00fa, 0x00a3, 0xfe18, 0xfe82, 0x01b6, +0x00ae, 0xfead, 0x018f, 0x02ef, 0x0126, 0x002b, 0xffb6, 0x01e3, 0x0382, 0x00b0, +0x00bd, 0x0402, 0x024e, 0x0002, 0x02e3, 0x0327, 0x00b6, 0x01cf, 0x02ca, 0x0250, +0x0280, 0x01bd, 0x021d, 0x04f6, 0x0340, 0xfee9, 0x0095, 0x0305, 0x00bc, 0x012c, +0x04fc, 0x0469, 0x0257, 0x027e, 0x0242, 0x01ad, 0x014b, 0x00c3, 0x0147, 0x037a, +0x036a, 0x00b5, 0x0068, 0x0121, 0xff9a, 0xfec8, 0x0143, 0x0151, 0xfd18, 0xfced, +0xffbd, 0x0066, 0x007d, 0xff3b, 0xfdd4, 0xfe9a, 0xff0d, 0xfdc1, 0xfe33, 0xffd7, +0xfd45, 0xfbe9, 0xffc6, 0xff2d, 0xfb3e, 0xfd69, 0x0057, 0xff59, 0xffc4, 0x00ad, +0x0017, 0xffc4, 0xfde4, 0xfc22, 0xfe08, 0x004b, 0xffd4, 0x0028, 0x0265, 0x00fa, +0xfdc5, 0xfe0b, 0xff0e, 0xfe78, 0xfdca, 0xfe74, 0xff9b, 0x005c, 0x0106, 0x00eb, +0x015c, 0x01a8, 0xff52, 0xfee2, 0x00ee, 0xffbe, 0xfec8, 0x010d, 0x01ab, 0x00d9, +0x0106, 0x010d, 0x00e8, 0x0118, 0x00e8, 0x012b, 0x02b4, 0x0211, 0xff7a, 0xff8e, +0x0115, 0x0100, 0x00de, 0x02dd, 0x0379, 0x00f9, 0xffd1, 0x0018, 0xfff6, 0xfffa, +0x000c, 0xfff1, 0x0004, 0x0012, 0xffc4, 0x009c, 0x010c, 0xfffb, 0xffe4, 0x001a, +0xfff2, 0xfffc, 0x0012, 0xffe2, 0x0015, 0x015a, 0x0257, 0x01c9, 0x004d, 0xfff9, +0xffdd, 0x0059, 0x019b, 0x004f, 0x0095, 0x030f, 0x0191, 0xff96, 0x015d, 0x0296, +0x01ee, 0x0205, 0x01f5, 0x0220, 0x0303, 0x0276, 0x01b6, 0x02a2, 0x02f4, 0x01f9, +0x0209, 0x01e3, 0x0073, 0x00ad, 0x0219, 0x0205, 0x00f2, 0x000a, 0xffc0, 0x00c9, +0x0105, 0xffac, 0x007c, 0x0198, 0x0051, 0xffcf, 0x001b, 0xfff4, 0x0001, 0x0002, +0xfffe, 0xfffb, 0x0005, 0xfffd, 0xfff3, 0x0025, 0xff14, 0xfe3b, 0xffa5, 0xfffc, +0xfee0, 0xff17, 0xffe8, 0x0010, 0xffec, 0x0017, 0xffe5, 0xff21, 0xfef3, 0xfef8, +0xff4b, 0x002c, 0xffc0, 0xfee9, 0xffc3, 0x001f, 0xff65, 0xffbc, 0x001d, 0xfff2, +000000, 0x0003, 0xfffc, 0xfffc, 0x000a, 0xffec, 0x0015, 0x0095, 0x002c, 0xffc9, +0x006a, 0x0078, 0xfff2, 0xfffb, 0x0006, 0xfffa, 0x0002, 0xfffd, 0x0004, 0xfff4, +0x0010, 0xfff2, 0xfff7, 0x003a, 0xfeb1, 0xfe3a, 0xfff4, 0x0020, 0xffde, 0x0015, +0xfff6, 000000, 0x0002, 0xfffc, 0x0001, 0xfffe, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, +000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000, 000000 }; diff --git a/daemon/libs/iax2/ringtone.h b/daemon/libs/iax2/ringtone.h index 637021d3412b5db0682113e57de9ddc8d463576d..ea517fc57b1536bb1f92aa11028c0ada825f9bdd 100644 --- a/daemon/libs/iax2/ringtone.h +++ b/daemon/libs/iax2/ringtone.h @@ -1,30 +1,30 @@ -/* ringtone.h: Generated from frequencies 440 and 480 +/* ringtone.h: Generated from frequencies 440 and 480 by gensound. 200 samples */ static short ringtone[200] = { - 0, 11581, 21659, 28927, 32445, 31764, 26981, 18727, - 8084, -3559, -14693, -23875, -29927, -32083, -30088, -24228, - -15290, -4453, 6864, 17195, 25212, 29902, 30693, 27526, - 20856, 11585, 944, -9673, -18899, -25560, -28837, -28357, - -24244, -17089, -7868, 2192, 11780, 19667, 24872, 26779, - 25212, 20450, 13179, 4396, -4731, -13019, -19421, -23164, - -23839, -21446, -16384, -9384, -1408, 6484, 13281, 18145, - 20517, 20182, 17286, 12301, 5951, -887, -7314, -12519, - -15886, -17068, -16017, -12983, -8458, -3109, 2327, 7142, - 10750, 12757, 13007, 11585, 8793, 5095, 1044, -2800, - -5951, -8053, -8921, -8560, -7141, -4967, -2421, 104, - 2260, 3791, 4567, 4589, 3977, 2941, 1733, 600, - -257, -722, -772, -481, 0, 481, 772, 722, - 257, -600, -1733, -2941, -3977, -4589, -4567, -3791, - -2260, -104, 2421, 4967, 7141, 8560, 8921, 8053, - 5951, 2800, -1044, -5095, -8793, -11585, -13007, -12757, - -10750, -7142, -2327, 3109, 8458, 12983, 16017, 17068, - 15886, 12519, 7314, 887, -5951, -12301, -17286, -20182, - -20517, -18145, -13281, -6484, 1408, 9384, 16384, 21446, - 23839, 23164, 19421, 13019, 4731, -4396, -13179, -20450, - -25212, -26779, -24872, -19667, -11780, -2192, 7868, 17089, - 24244, 28357, 28837, 25560, 18899, 9673, -944, -11585, - -20856, -27526, -30693, -29902, -25212, -17195, -6864, 4453, - 15290, 24228, 30088, 32083, 29927, 23875, 14693, 3559, - -8084, -18727, -26981, -31764, -32445, -28927, -21659, -11581, + 0, 11581, 21659, 28927, 32445, 31764, 26981, 18727, + 8084, -3559, -14693, -23875, -29927, -32083, -30088, -24228, + -15290, -4453, 6864, 17195, 25212, 29902, 30693, 27526, + 20856, 11585, 944, -9673, -18899, -25560, -28837, -28357, + -24244, -17089, -7868, 2192, 11780, 19667, 24872, 26779, + 25212, 20450, 13179, 4396, -4731, -13019, -19421, -23164, + -23839, -21446, -16384, -9384, -1408, 6484, 13281, 18145, + 20517, 20182, 17286, 12301, 5951, -887, -7314, -12519, + -15886, -17068, -16017, -12983, -8458, -3109, 2327, 7142, + 10750, 12757, 13007, 11585, 8793, 5095, 1044, -2800, + -5951, -8053, -8921, -8560, -7141, -4967, -2421, 104, + 2260, 3791, 4567, 4589, 3977, 2941, 1733, 600, + -257, -722, -772, -481, 0, 481, 772, 722, + 257, -600, -1733, -2941, -3977, -4589, -4567, -3791, + -2260, -104, 2421, 4967, 7141, 8560, 8921, 8053, + 5951, 2800, -1044, -5095, -8793, -11585, -13007, -12757, + -10750, -7142, -2327, 3109, 8458, 12983, 16017, 17068, + 15886, 12519, 7314, 887, -5951, -12301, -17286, -20182, + -20517, -18145, -13281, -6484, 1408, 9384, 16384, 21446, + 23839, 23164, 19421, 13019, 4731, -4396, -13179, -20450, + -25212, -26779, -24872, -19667, -11780, -2192, 7868, 17089, + 24244, 28357, 28837, 25560, 18899, 9673, -944, -11585, + -20856, -27526, -30693, -29902, -25212, -17195, -6864, 4453, + 15290, 24228, 30088, 32083, 29927, 23875, 14693, 3559, + -8084, -18727, -26981, -31764, -32445, -28927, -21659, -11581, }; diff --git a/daemon/libs/iax2/winiphone.c b/daemon/libs/iax2/winiphone.c index 0bc3147b7ce2130ff5ff6c7ca3987cf434b4e76d..fe6ba83a9ca233fa9363547f81bcb163baa56dc5 100644 --- a/daemon/libs/iax2/winiphone.c +++ b/daemon/libs/iax2/winiphone.c @@ -115,7 +115,7 @@ void killem(void) { waveInStop(win); waveInReset(win); - waveInClose(win); + waveInClose(win); waveOutReset(wout); waveOutClose(wout); WSACleanup(); /* dont forget socket stuff too */ @@ -294,7 +294,7 @@ main(int argc, char *argv[]) service_network(netfd,f); /* service network here for better performance */ /* if last one was removed from queue, zot it here */ if (i && wh1) - { + { free(wh1); wh1 = wh2; } @@ -303,14 +303,14 @@ main(int argc, char *argv[]) { /* prepare audio header */ if ((c = waveOutUnprepareHeader(wout,&wh->w,sizeof(WAVEHDR))) != MMSYSERR_NOERROR) - { + { fprintf(stderr,"Cannot unprepare audio out header, error %d\n",c); exit(255); } if (wh1 != NULL) /* if there was a last one */ { wh1->next = wh->next; - } + } if (outqueue == wh) /* is first one, so set outqueue to next one */ { outqueue = wh->next; @@ -390,7 +390,7 @@ main(int argc, char *argv[]) gsm_encode(most_recent_answer->gsmout, (short *) ((char *) whin[i].lpData), fo); if(iax_send_voice(most_recent_answer->session, AST_FORMAT_GSM, (char *)fo, sizeof(gsm_frame)) == -1) - puts("Failed to send voice!"); + puts("Failed to send voice!"); lastouttick = GetTickCount(); /* save time of last output */ /* unprepare (free) the header */ @@ -402,7 +402,7 @@ main(int argc, char *argv[]) /* exit the loop so that we can start at lowest buffer again */ break; } - } + } if (i >= NWHIN) break; /* if all found, get out of loop */ } } @@ -433,7 +433,7 @@ do_iax_event(FILE *f) { if(e->event.connect.callerid && e->event.connect.dnid) - fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, + fprintf(f, "Call from '%s' for '%s'", e->event.connect.callerid, e->event.connect.dnid); else if(e->event.connect.dnid) { fprintf(f, "Call from '%s'", e->event.connect.dnid); @@ -583,8 +583,8 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) } else { /* its an audio packet to be output to user */ /* get count of pending items in audio output queue */ - n = 0; - if (outqueue) + n = 0; + if (outqueue) { /* determine number of pending out queue items */ for(wh = outqueue; wh != NULL; wh = wh->next) { @@ -615,7 +615,7 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) fprintf(stderr,"Cannot prepare header for audio out\n"); exit(255); } - /* if not currently transmitting, hold off a couple of packets for + /* if not currently transmitting, hold off a couple of packets for smooth sounding output */ if ((!n) && (!paused_xmit)) { @@ -647,7 +647,7 @@ handle_event(FILE *f, struct iax_event *e, struct peer *p) while(wh1->next) wh1 = wh1->next; /* find last entry in queue */ wh1->next = wh; /* point it to new entry */ } - } + } #ifdef PRINTCHUCK else printf("Chucking packet!!\n"); #endif diff --git a/daemon/libs/iax2/winpoop.h b/daemon/libs/iax2/winpoop.h index 3089a5ffaf6248a821e851f98843299411e25695..2c55cd0cbff0275890a8fc484295dd37b8f30f57 100644 --- a/daemon/libs/iax2/winpoop.h +++ b/daemon/libs/iax2/winpoop.h @@ -1,4 +1,4 @@ -/* +/* * Functions Windows doesn't have... but should * Copyright(C) 2001, Linux Support Services, Inc. * @@ -32,7 +32,7 @@ static INLINE int inet_aton(char *cp, struct in_addr *inp) a1 &= 0xff; a2 &= 0xff; a3 &= 0xff; - a4 &= 0xff; + a4 &= 0xff; saddr = (a1 << 24) | (a2 << 16) | (a3 << 8) | a4; inp->s_addr = htonl(saddr); return 1; diff --git a/daemon/libs/utilspp/null_type.hpp b/daemon/libs/utilspp/null_type.hpp index 5e7800deaac87369ff18c336322c914cff7d4059..0ba1208ad44028f147ecbbd0840d299771d7e88a 100644 --- a/daemon/libs/utilspp/null_type.hpp +++ b/daemon/libs/utilspp/null_type.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/daemon/libs/utilspp/singleton/creation_using_new.hpp b/daemon/libs/utilspp/singleton/creation_using_new.hpp index de9c995d3d16ea4d1e9882067e6a44159c714539..fe94f128528572979518adbf753436e8338a2b83 100644 --- a/daemon/libs/utilspp/singleton/creation_using_new.hpp +++ b/daemon/libs/utilspp/singleton/creation_using_new.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -26,7 +26,7 @@ /** * This class is a creation policy for the utilspp::singleton_holder. The - * policy is creating the singleton by a "new" call. + * policy is creating the singleton by a "new" call. */ namespace utilspp { diff --git a/daemon/libs/utilspp/singleton/creation_using_new.inl b/daemon/libs/utilspp/singleton/creation_using_new.inl index adb66ede9ee12036dbcc41f9469475378190a8b3..5c9ae88eb8d07084494879f7849ef0d994015f78 100644 --- a/daemon/libs/utilspp/singleton/creation_using_new.inl +++ b/daemon/libs/utilspp/singleton/creation_using_new.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/daemon/libs/utilspp/singleton/lifetime_default.hpp b/daemon/libs/utilspp/singleton/lifetime_default.hpp index 68a4342e76c6d6bcb6979d5d5862d7a613e21771..ba0208c0a2fbf4e5a7fcb0c5ce10fe7873140078 100644 --- a/daemon/libs/utilspp/singleton/lifetime_default.hpp +++ b/daemon/libs/utilspp/singleton/lifetime_default.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ diff --git a/daemon/libs/utilspp/singleton/lifetime_default.inl b/daemon/libs/utilspp/singleton/lifetime_default.inl index 8ff996e1db15d89bb9e4d3b7ac639bec5406af7b..6760ececcd6d07376fc9b33df7556d1b4d092063 100644 --- a/daemon/libs/utilspp/singleton/lifetime_default.inl +++ b/daemon/libs/utilspp/singleton/lifetime_default.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -28,7 +28,7 @@ #include <stdexcept> template< typename T > -void +void utilspp::LifetimeDefault< T >::scheduleDestruction( T *, void (*func)() ) { std::atexit(func); diff --git a/daemon/libs/utilspp/singleton/singleton_holder.hpp b/daemon/libs/utilspp/singleton/singleton_holder.hpp index da4118f3551173b432c75e1c6c6ba328f6bd88a4..6b0fcf47b1503620c1f12c59fc256ff065e2c83d 100644 --- a/daemon/libs/utilspp/singleton/singleton_holder.hpp +++ b/daemon/libs/utilspp/singleton/singleton_holder.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -42,14 +42,14 @@ namespace utilspp static T& instance(); static void makeInstance(); static void terminate(); - + protected: //protected to be sure that nobody may create one by himself. SingletonHolder(); - + private: static void destroySingleton(); - + private: typedef typename ThreadingModel< T * >::VolatileType InstanceType; static InstanceType mInstance; diff --git a/daemon/libs/utilspp/singleton/singleton_holder.inl b/daemon/libs/utilspp/singleton/singleton_holder.inl index d1a9e4f12bda144f1d218749fd7f9e0fb83032ce..5fb9fab7f480e13a2243d95f572e77a9d93fa0c0 100644 --- a/daemon/libs/utilspp/singleton/singleton_holder.inl +++ b/daemon/libs/utilspp/singleton/singleton_holder.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -77,7 +77,7 @@ ThreadingModel LifetimePolicy< T >::onDeadReference(); mDestroyed = false; } - + mInstance = CreationPolicy< T >::create(); LifetimePolicy< T >::scheduleDestruction( mInstance, &destroySingleton ); } diff --git a/daemon/libs/utilspp/threading_single.hpp b/daemon/libs/utilspp/threading_single.hpp index 69dc04fbc7c936f9d8a01da684f53f27424af35d..81c023402c5dd18dc9e107b48653ee33df80dbcd 100644 --- a/daemon/libs/utilspp/threading_single.hpp +++ b/daemon/libs/utilspp/threading_single.hpp @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -36,7 +36,7 @@ namespace utilspp void lock(); void unlock(); }; - + struct lock { lock(); diff --git a/daemon/libs/utilspp/threading_single.inl b/daemon/libs/utilspp/threading_single.inl index 5285bf3af11b7907905aba9c414ea3478bbf859c..4d26c4ff1dab7593a37761e024d7537d3857e99a 100644 --- a/daemon/libs/utilspp/threading_single.inl +++ b/daemon/libs/utilspp/threading_single.inl @@ -1,22 +1,22 @@ /* * Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre> - * + * * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files - * (cURLpp), to deal in the Software without restriction, + * a copy of this software and associated documentation files + * (cURLpp), to deal in the Software without restriction, * including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, - * and to permit persons to whom the Software is furnished to do so, + * and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ @@ -31,7 +31,7 @@ utilspp::ThreadingSingle< T >::lock::lock() template< typename T > inline -utilspp::ThreadingSingle< T >::lock::lock( +utilspp::ThreadingSingle< T >::lock::lock( utilspp::ThreadingSingle< T >::mutex & ) {} diff --git a/daemon/man/Makefile.am b/daemon/man/Makefile.am index 6df5e801d0d4bb06ba520ecdb53646277a550ded..3a3edf5b86c8cbc8d753220258832bbc6e61ea23 100644 --- a/daemon/man/Makefile.am +++ b/daemon/man/Makefile.am @@ -14,7 +14,7 @@ all: $(MANPAGES) SUFFIXES=.pod .1 .pod.1: - $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ + $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ clean-local: rm -rf *.1 diff --git a/daemon/man/README.manpages b/daemon/man/README.manpages index f794a0d25710dcf35e30464afcd383a13832712a..75f6044095a3fdc0a0d28c7da43a15a636613f83 100644 --- a/daemon/man/README.manpages +++ b/daemon/man/README.manpages @@ -5,7 +5,7 @@ Procedure: - Creating the manual pages under POD format. A template is available in this directory. - Convert the pdo file in a manpage file: pod2man --section=1 --release=$(VERSION) --center "" myapp.pod > myapp.1 - - You are done! You can read the manpage file with: + - You are done! You can read the manpage file with: groff -man -Tascii myapp.1 diff --git a/daemon/man/sflphoned.pod b/daemon/man/sflphoned.pod index 58c7b8f089b2860e499ad1f320a20d617863af35..8f59d4d2e6c976bbf4731711f7a4d88ee0628042 100644 --- a/daemon/man/sflphoned.pod +++ b/daemon/man/sflphoned.pod @@ -36,7 +36,7 @@ Please report bugs at https://projects.savoirfairelinux.com/projects/sflphone/is =head1 AUTHORS -B<sflphoned> is developed in Montreal by Savoir-Faire Linux Inc. The active developers are Tristan Matthews <tristan.matthews@savoirfairelinux.com> and Alexandre Savard <alexandre.savard@savoirfairelinux.com>. +B<sflphoned> is developed in Montreal by Savoir-Faire Linux Inc. The active developers are Tristan Matthews <tristan.matthews@savoirfairelinux.com> and Alexandre Savard <alexandre.savard@savoirfairelinux.com>. This manual page was written by Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>. diff --git a/daemon/src/Makefile.am b/daemon/src/Makefile.am index 8795e0063b0dc618c1684842d27c3f1faacac72a..271c3902d446362786f1df58e1c45fa4cba10767 100644 --- a/daemon/src/Makefile.am +++ b/daemon/src/Makefile.am @@ -28,7 +28,7 @@ sflphoned_CXXFLAGS = \ -DPREFIX=\"$(prefix)\" -DPROGSHAREDIR=\"${datadir}/sflphone\" $(IAX_CXXFLAG) $(NETWORKMANAGER) \ -DVERSION=\"$(VERSION)\" -# libsflphone +# libsflphone sflphoned_LDADD = ./libsflphone.la $(libssl_LIBS) -lcrypto noinst_LTLIBRARIES = libsflphone.la diff --git a/daemon/src/audio/Makefile.am b/daemon/src/audio/Makefile.am index 1d4595d1305335d4a8d545e0d88043fabe2a3226..3e623cbae44c5621a165fe3b1df3c76046c266ef 100644 --- a/daemon/src/audio/Makefile.am +++ b/daemon/src/audio/Makefile.am @@ -2,7 +2,7 @@ include $(top_srcdir)/globals.mak noinst_LTLIBRARIES = libaudio.la -SUBDIRS = codecs audiortp sound alsa pulseaudio +SUBDIRS = codecs audiortp sound alsa pulseaudio libaudio_la_SOURCES = \ audioloop.cpp \ @@ -42,7 +42,7 @@ libaudio_la_LIBADD = \ ./codecs/libcodecdescriptor.la \ ./alsa/libalsalayer.la \ ./pulseaudio/libpulselayer.la \ - ./sound/libsound.la + ./sound/libsound.la diff --git a/daemon/src/audio/alsa/Makefile.am b/daemon/src/audio/alsa/Makefile.am index 8f67710b33ea530dc6a44016121f6802d51276c7..4ca799e54638c2e2bc293990e86e9a491a66641d 100644 --- a/daemon/src/audio/alsa/Makefile.am +++ b/daemon/src/audio/alsa/Makefile.am @@ -2,7 +2,7 @@ include $(top_srcdir)/globals.mak noinst_LTLIBRARIES = libalsalayer.la -libalsalayer_la_SOURCES = alsalayer.cpp +libalsalayer_la_SOURCES = alsalayer.cpp noinst_HEADERS = alsalayer.h diff --git a/daemon/src/audio/alsa/alsalayer.cpp b/daemon/src/audio/alsa/alsalayer.cpp index c1e7620f8af80a1a062426e8d528d209e3a501f9..f8d7b915bf5ee2034e1e9b7ee173c9cfc9ef821e 100644 --- a/daemon/src/audio/alsa/alsalayer.cpp +++ b/daemon/src/audio/alsa/alsalayer.cpp @@ -484,7 +484,7 @@ AlsaLayer::getAudioDeviceIndexMap(AudioStreamDirection dir) const std::string description = snd_ctl_card_info_get_name(info); description.append(" - "); description.append(snd_pcm_info_get_name(pcminfo)); - + // The number of the sound card is associated with a string description audioDevice.push_back(HwIDPair(numCard , description)); } @@ -522,8 +522,8 @@ AlsaLayer::soundCardIndexExists(int card, int stream) int AlsaLayer::getAudioDeviceIndex(const std::string &description) const { - std::vector<HwIDPair> audioDeviceIndexMap; - + std::vector<HwIDPair> audioDeviceIndexMap; + std::vector<HwIDPair> captureDevice = getAudioDeviceIndexMap(AUDIO_STREAM_CAPTURE); std::vector<HwIDPair> playbackDevice = getAudioDeviceIndexMap(AUDIO_STREAM_PLAYBACK); diff --git a/daemon/src/audio/audiolayer.h b/daemon/src/audio/audiolayer.h index 87d76caf2576f3668e506688de03041f623af73f..573002e9b5e09e571d36b5b929cb77948c9a4794 100644 --- a/daemon/src/audio/audiolayer.h +++ b/daemon/src/audio/audiolayer.h @@ -81,7 +81,7 @@ class AudioLayer { virtual void stopStream() = 0; /** - * Determine wether or not the audio layer is active (i.e. stream opened) + * Determine wether or not the audio layer is active (i.e. stream opened) */ bool isStarted() const { return isStarted_; @@ -96,7 +96,7 @@ class AudioLayer { void putUrgent(void* buffer, int toCopy); /** - * Flush main buffer + * Flush main buffer */ void flushMain(); diff --git a/daemon/src/audio/audiortp/Makefile.am b/daemon/src/audio/audiortp/Makefile.am index 5d5daf3755ebbbd9eb0f8884dc6cefd643fd597e..bb0bf253e22845b6011d9619cb36043cec8d3369 100644 --- a/daemon/src/audio/audiortp/Makefile.am +++ b/daemon/src/audio/audiortp/Makefile.am @@ -16,5 +16,5 @@ libaudiortp_la_SOURCES = \ audio_symmetric_rtp_session.h \ audio_zrtp_session.h \ zrtp_session_callback.h \ - audio_srtp_session.h + audio_srtp_session.h diff --git a/daemon/src/audio/codecs/Makefile.am b/daemon/src/audio/codecs/Makefile.am index 36a051ecd02d0870b2872e2adb40ea273fac5577..e18478023780cb1044bc6bcf630878d65e1ff476 100644 --- a/daemon/src/audio/codecs/Makefile.am +++ b/daemon/src/audio/codecs/Makefile.am @@ -87,7 +87,7 @@ libcodec_g722_so_CXXFLAGS = -fPIC -g -Wall libcodec_g722_so_LDADD = libcodecdescriptor.la libcodec_g722_so_LDFLAGS = --shared -lc -install-exec-local: install-libcodec_ulaw_so install-libcodec_alaw_so install-libcodec_g722_so $(INSTALL_GSM_RULE) $(INSTALL_SPEEX_NB_RULE) $(INSTALL_SPEEX_WB_RULE) $(INSTALL_SPEEX_UB_RULE) $(INSTALL_CELT_RULE) $(INSTALL_ILBC_RULE) +install-exec-local: install-libcodec_ulaw_so install-libcodec_alaw_so install-libcodec_g722_so $(INSTALL_GSM_RULE) $(INSTALL_SPEEX_NB_RULE) $(INSTALL_SPEEX_WB_RULE) $(INSTALL_SPEEX_UB_RULE) $(INSTALL_CELT_RULE) $(INSTALL_ILBC_RULE) uninstall-local: uninstall-libcodec_ulaw_so uninstall-libcodec_alaw_so uninstall-libcodec_g722_so uninstall-libcodec_gsm_so uninstall-libcodec_speex_nb_so uninstall-libcodec_speex_wb_so uninstall-libcodec_speex_ub_so uninstall-libcodec_celt_so diff --git a/daemon/src/audio/codecs/README b/daemon/src/audio/codecs/README index 515353165c94ee678521b564890e9b33869508ca..f7fbdf1a8805ff24f8df8520c26f0a83bde3d3b2 100644 --- a/daemon/src/audio/codecs/README +++ b/daemon/src/audio/codecs/README @@ -2,8 +2,8 @@ How to build the codec shared libraries --------------------------------------- CODEC_ALAW: - gcc -fPIC -g -c -Wall ulaw.cpp --------> gives you the object file ulaw.o. + gcc -fPIC -g -c -Wall ulaw.cpp +-------> gives you the object file ulaw.o. -------> option -g to include debug information -------> option -Wall to generate warnings -------> option -fPIC to enable position independant code generation @@ -11,7 +11,7 @@ CODEC_ALAW: gcc -shared -o libcodec_ulaw.so ulaw.o -lc -------> creates the shared library -CODEC ALAW: +CODEC ALAW: idem CODEC_GSM: diff --git a/daemon/src/audio/pulseaudio/Makefile.am b/daemon/src/audio/pulseaudio/Makefile.am index 0e58b78b275cc4bbc7e31fef373f60b6f8b41d5f..19be919ef90e9a029bfb122dd27e7bb874a19008 100644 --- a/daemon/src/audio/pulseaudio/Makefile.am +++ b/daemon/src/audio/pulseaudio/Makefile.am @@ -9,5 +9,5 @@ libpulselayer_la_SOURCES = \ noinst_HEADERS = \ audiostream.h \ - pulselayer.h + pulselayer.h diff --git a/daemon/src/audio/pulseaudio/audiostream.cpp b/daemon/src/audio/pulseaudio/audiostream.cpp index 387d31fcbc8cd84c9cfbf060310be99d1b186510..2eb1308e5098c1e1c54fe6635b38737edcaa1b21 100644 --- a/daemon/src/audio/pulseaudio/audiostream.cpp +++ b/daemon/src/audio/pulseaudio/audiostream.cpp @@ -65,10 +65,10 @@ AudioStream::AudioStream(pa_context *c, pa_threaded_mainloop *m, const char *des pa_threaded_mainloop_lock(mainloop_); if (type == PLAYBACK_STREAM || type == RINGTONE_STREAM) - pa_stream_connect_playback(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, + pa_stream_connect_playback(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, (pa_stream_flags_t)(PA_STREAM_ADJUST_LATENCY|PA_STREAM_AUTO_TIMING_UPDATE), NULL, NULL); else if (type == CAPTURE_STREAM) - pa_stream_connect_record(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, + pa_stream_connect_record(audiostream_, deviceName == "" ? NULL : deviceName.c_str(), &attributes, (pa_stream_flags_t)(PA_STREAM_ADJUST_LATENCY|PA_STREAM_AUTO_TIMING_UPDATE)); pa_threaded_mainloop_unlock(mainloop_); diff --git a/daemon/src/audio/pulseaudio/pulselayer.cpp b/daemon/src/audio/pulseaudio/pulselayer.cpp index 74f2dbf47e4bcdd05ced33787121ea8ad32dd449..9bb92f5fea435ecb102fcb9d917354ad9eb39871 100644 --- a/daemon/src/audio/pulseaudio/pulselayer.cpp +++ b/daemon/src/audio/pulseaudio/pulselayer.cpp @@ -187,7 +187,7 @@ bool PulseLayer::inSourceList(const std::string &deviceName) const return std::find(sourceList_.begin(), sourceList_.end(), deviceName) != sourceList_.end(); } -std::vector<std::string> PulseLayer::getAudioDeviceList(AudioStreamDirection dir) const +std::vector<std::string> PulseLayer::getAudioDeviceList(AudioStreamDirection dir) const { if(AUDIO_STREAM_CAPTURE == dir) { return sinkList_; diff --git a/daemon/src/audio/pulseaudio/pulselayer.h b/daemon/src/audio/pulseaudio/pulselayer.h index fc6c742a28d744ac21c614633165c328c7a4a6f0..a8640f42cf35856552f3b174738314c5dac4eca1 100644 --- a/daemon/src/audio/pulseaudio/pulselayer.h +++ b/daemon/src/audio/pulseaudio/pulselayer.h @@ -109,7 +109,7 @@ class PulseLayer : public AudioLayer { AudioStream* ringtone_; /** - * Contain the list of playback devices + * Contain the list of playback devices */ std::vector<std::string> sinkList_; diff --git a/daemon/src/audio/sound/Makefile.am b/daemon/src/audio/sound/Makefile.am index 10e9960b7a14c29d2c66d7fb1447f2e18e2bdc1f..0680471c72962021e672a1fc78dd13ab0d7765c3 100644 --- a/daemon/src/audio/sound/Makefile.am +++ b/daemon/src/audio/sound/Makefile.am @@ -14,5 +14,5 @@ noinst_HEADERS = \ tone.h \ tonelist.h \ dtmfgenerator.h \ - dtmf.h + dtmf.h diff --git a/daemon/src/dbus/callmanager-introspec.xml b/daemon/src/dbus/callmanager-introspec.xml index 645a776d00cdb23af14f9d4dca3fae42835df746..a742426b77507d01a447521eca94b2237ad136f1 100644 --- a/daemon/src/dbus/callmanager-introspec.xml +++ b/daemon/src/dbus/callmanager-introspec.xml @@ -206,7 +206,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/> @@ -225,7 +225,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="callID" direction="in"> <tp:docstring> @@ -304,7 +304,7 @@ conferences. <tp:rationale>To update client status, one should use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> + with provided conference IDs.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -324,7 +324,7 @@ </arg> </method> - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> <tp:docstring> Tells whether or not a call is being recorded. </tp:docstring> @@ -342,7 +342,7 @@ <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> <tp:docstring> - Once after starting recording for the first time, this signal is emited to + Once after starting recording for the first time, this signal is emited to provide the recorded file path to client application. </tp:docstring> <arg type="s" name="callID" /> @@ -383,7 +383,7 @@ <method name="getCallList" tp:name-for-bindings="getCallList"> <tp:docstring> Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -455,7 +455,7 @@ <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> <tp:docstring> - Notify clients that a new text message has been received. + Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> <arg type="s" name="from" /> @@ -464,7 +464,7 @@ <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> <tp:docstring> - <p>Notify of a change in a call state.</p> + <p>Notify of a change in a call state.</p> <p>The client must subscribe to this signal.</p> </tp:docstring> <arg type="s" name="callID"> @@ -474,7 +474,7 @@ </arg> <arg type="s" name="state" > <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>INCOMING: Initial state of incoming calls</li> <li>RINGING: Initial state of received outgoing call</li> @@ -502,7 +502,7 @@ </arg> <arg type="s" name="state"> <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>ACTIVE_ATTACHED: SFLphone user is participating to this conference</li> @@ -636,7 +636,7 @@ The SIP or IAX2 message code </tp:docstring> </arg> - </signal> + </signal> <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> <tp:docstring> @@ -656,7 +656,7 @@ <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> <tp:docstring> - <p>Notify clients of a volume level change.</p> + <p>Notify clients of a volume level change.</p> <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> </tp:docstring> <arg type="s" name="device"> @@ -692,7 +692,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a conference.</p> + for this call only. It does not apply for a conference.</p> <p>A conference can be considered to be secured if and only if each participant is secured.</p> </tp:docstring> @@ -702,7 +702,7 @@ <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> <tp:added version="0.9.7"/> <tp:docstring> - <p>Sinal sent to notify that SDES session failed.</p> + <p>Sinal sent to notify that SDES session failed.</p> <p>Media transmission is not encrypted.</p> </tp:docstring> <arg type="s" name="callID" /> diff --git a/daemon/src/history/history.cpp b/daemon/src/history/history.cpp index caa95b663ec191d44b3c8cc9d8872e7af3ea9f71..16482fde4656b9ef4b1dd872780aec13e57ce5bb 100644 --- a/daemon/src/history/history.cpp +++ b/daemon/src/history/history.cpp @@ -44,11 +44,11 @@ namespace { { time_t currentTimestamp; time(¤tTimestamp); - // Number of seconds in one day: 60 sec/min x 60 min/hr x 24hr/day + // Number of seconds in one day: 60 sec/min x 60 min/hr x 24hr/day static const int DAY_UNIX_TIMESTAMP = 60 * 60 * 24; return static_cast<int>(currentTimestamp) - (days * DAY_UNIX_TIMESTAMP); } - + using std::map; using std::string; using std::vector; diff --git a/daemon/src/hooks/Makefile.am b/daemon/src/hooks/Makefile.am index aa5797fe7a723e97055388356c1b3d8bb82aea32..149f232406f0f95452df95995f71cfc753809c73 100644 --- a/daemon/src/hooks/Makefile.am +++ b/daemon/src/hooks/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = +SUBDIRS = noinst_LTLIBRARIES = libhooks.la diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp index ea4e0027a3b3632f99877ac9d37cd33a1dd4ee7f..1f9f3283bbb85cc90c4a92b7195b5d28e6141c67 100644 --- a/daemon/src/managerimpl.cpp +++ b/daemon/src/managerimpl.cpp @@ -127,7 +127,7 @@ void ManagerImpl::init(std::string config_file) telephoneTone_ = new TelephoneTone(preferences.getZoneToneChoice(), audiodriver_->getSampleRate()); dtmfKey_ = new DTMF(8000); } - } + } history_->load(preferences.getHistoryLimit()); registerAccounts(); @@ -2096,7 +2096,7 @@ bool ManagerImpl::isRecording(const std::string& id) bool ManagerImpl::startRecordedFilePlayback(const std::string& filepath) { DEBUG("Manager: Start recorded file playback %s", filepath.c_str()); - + int sampleRate; { ost::MutexLock lock(audioLayerMutex_); diff --git a/daemon/src/sip/sipaccount.cpp b/daemon/src/sip/sipaccount.cpp index 8f59dd933de927ec90dcc0d70da6f9a579d9df30..bd57505637c48fc32e8bcd72bbac48e64266e28e 100644 --- a/daemon/src/sip/sipaccount.cpp +++ b/daemon/src/sip/sipaccount.cpp @@ -122,7 +122,7 @@ void SIPAccount::serialize(Conf::YamlEmitter *emitter) portstr << localPort_; ScalarNode port(portstr.str()); ScalarNode serviceRoute(serviceRoute_); - ScalarNode contactUpdateEnabled(contactUpdateEnabled_); + ScalarNode contactUpdateEnabled(contactUpdateEnabled_); ScalarNode mailbox(mailBox_); ScalarNode publishAddr(publishedIpAddress_); @@ -597,7 +597,7 @@ void SIPAccount::startKeepAliveTimer() { keepAliveDelay_.sec = registrationExpire_; keepAliveDelay_.msec = 0; - + link_->registerKeepAliveTimer(keepAliveTimer_, keepAliveDelay_); } @@ -777,12 +777,12 @@ void SIPAccount::setContactHeader(std::string address, std::string port) transport = ";transport=" + std::string(pjsip_transport_get_type_name(transportType_)); } else scheme = "sip:"; - + contactHeader_ = displayName_ + (displayName_.empty() ? "" : " ") + "<" + scheme + username_ + (username_.empty() ? "":"@") + address + ":" + port + transport + ">"; } - + std::string SIPAccount::getContactHeader() const { @@ -809,7 +809,7 @@ std::string SIPAccount::getContactHeader() const address + ":" + port + transport + ">"; } -void SIPAccount::keepAliveRegistrationCb(UNUSED pj_timer_heap_t *th, pj_timer_entry *te) +void SIPAccount::keepAliveRegistrationCb(UNUSED pj_timer_heap_t *th, pj_timer_entry *te) { SIPAccount *sipAccount = reinterpret_cast<SIPAccount *>(te->user_data); @@ -822,10 +822,10 @@ void SIPAccount::keepAliveRegistrationCb(UNUSED pj_timer_heap_t *th, pj_timer_en sipAccount->registerVoIPLink(); // make sure the current timer is deactivated - sipAccount->stopKeepAliveTimer(); + sipAccount->stopKeepAliveTimer(); // register a new timer - sipAccount->startKeepAliveTimer(); + sipAccount->startKeepAliveTimer(); } } diff --git a/daemon/src/sip/sipaccount.h b/daemon/src/sip/sipaccount.h index 6a5b272a39ee09ee153610696c6b712329beb373..94986a5ae8bd8da62c4b9136a0a214a6405fc6fd 100644 --- a/daemon/src/sip/sipaccount.h +++ b/daemon/src/sip/sipaccount.h @@ -188,7 +188,7 @@ class SIPAccount : public Account { * Stop the keep alive timer. Once canceled, no further registration will be scheduled */ void stopKeepAliveTimer(); - + pjsip_cred_info *getCredInfo() const { return cred_; @@ -222,7 +222,7 @@ class SIPAccount : public Account { } /** - * Set the expiration for this account as found in + * Set the expiration for this account as found in * the "Expire" sip header or the CONTACT's "expire" param. */ void setRegistrationExpire(int expire) { @@ -244,8 +244,8 @@ class SIPAccount : public Account { bool userMatch(const std::string& username) const; bool hostnameMatch(const std::string& hostname) const; - /** - * Registration flag + /** + * Registration flag */ bool isRegistered() const { return bRegister_; @@ -370,7 +370,7 @@ class SIPAccount : public Account { void setContactHeader(std::string address, std::string port); /** - * Get the contact header for + * Get the contact header for * @return pj_str_t The contact header based on account information */ std::string getContactHeader(void) const; @@ -383,7 +383,7 @@ class SIPAccount : public Account { } /** - * The contact header is not updated even if the registrar + * The contact header is not updated even if the registrar */ void disableContactUpdate(void) { contactUpdateEnabled_ = false; @@ -392,7 +392,7 @@ class SIPAccount : public Account { bool isContactUpdateEnabled(void) { return contactUpdateEnabled_; } - + /** * Get the local interface name on which this account is bound. */ @@ -566,15 +566,15 @@ class SIPAccount : public Account { pj_uint16_t tlsListenerPort_; /** - * Transport type used for this sip account. Currently supported types: + * Transport type used for this sip account. Currently supported types: * PJSIP_TRANSPORT_UNSPECIFIED * PJSIP_TRANSPORT_UDP * PJSIP_TRANSPORT_TLS - */ + */ pjsip_transport_type_e transportType_; /** - * Credential information stored for further registration. + * Credential information stored for further registration. */ pjsip_cred_info *cred_; @@ -584,9 +584,9 @@ class SIPAccount : public Account { pjsip_tls_setting tlsSetting_; /** - * The CONTACT header used for registration as provided by the registrar, this value could differ + * The CONTACT header used for registration as provided by the registrar, this value could differ * from the host name in case the registrar is inside a subnetwork (such as a VPN). - * The header will be stored + * The header will be stored */ std::string contactHeader_; @@ -638,7 +638,7 @@ class SIPAccount : public Account { std::string tlsNegotiationTimeoutMsec_; /** - * The stun server hostname (optional), used to provide the public IP address in case the softphone + * The stun server hostname (optional), used to provide the public IP address in case the softphone * stay behind a NAT. */ std::string stunServer_; @@ -651,14 +651,14 @@ class SIPAccount : public Account { /** * Determine if SRTP is enabled for this account, SRTP and ZRTP are mutually exclusive - * This only determine if the media channel is secured. One could only enable TLS + * This only determine if the media channel is secured. One could only enable TLS * with no secured media channel. - */ + */ bool srtpEnabled_; /** * Specifies the type of key exchange usd for SRTP (sdes/zrtp) - */ + */ std::string srtpKeyExchange_; /** @@ -672,7 +672,7 @@ class SIPAccount : public Account { * Determine if the SAS sould be displayed on client side. SAS is a 4-charcter string * that end users should verbaly validate to ensure the channel is secured. Used especially * to prevent man-in-the-middle attack. - */ + */ bool zrtpDisplaySas_; /** @@ -688,11 +688,11 @@ class SIPAccount : public Account { * This is a protocol Code:Description pair. */ std::pair<int, std::string> registrationStateDetailed_; - + /** * Timer used to regularrly send re-register request based * on the "Expire" sip header (or the "expire" Contact parameter) - */ + */ pj_timer_entry keepAliveTimer_; diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp index 17bca249280e89e7231dfc68af24a103be0e611a..50d0f2214afdcd2596ea52e0d4d6ca47b4f5f414 100644 --- a/daemon/src/sip/sipvoiplink.cpp +++ b/daemon/src/sip/sipvoiplink.cpp @@ -656,14 +656,14 @@ void SIPVoIPLink::registerKeepAliveTimer(pj_timer_entry& timer, pj_time_val& del { pj_status_t status; - status = pjsip_endpt_schedule_timer(endpt_, &timer, &delay); + status = pjsip_endpt_schedule_timer(endpt_, &timer, &delay); if (status != PJ_SUCCESS) ERROR("Could not schedule new timer in pjsip endpoint"); } void SIPVoIPLink::cancelKeepAliveTimer(pj_timer_entry& timer) { - pjsip_endpt_cancel_timer(endpt_, &timer); + pjsip_endpt_cancel_timer(endpt_, &timer); } Call *SIPVoIPLink::newOutgoingCall(const std::string& id, const std::string& toUrl) @@ -1036,7 +1036,7 @@ SIPVoIPLink::dtmfSend(SIPCall *call, char code, const std::string &dtmf) return; } else if (dtmf != SIPAccount::SIPINFO_STR) { - WARN("SIPVoIPLink: Unknown DTMF type %s, defaulting to %s instead", + WARN("SIPVoIPLink: Unknown DTMF type %s, defaulting to %s instead", dtmf.c_str(), SIPAccount::SIPINFO_STR); } // else : dtmf == SIPINFO @@ -1491,11 +1491,11 @@ void SIPVoIPLink::findLocalAddressFromTransport(pjsip_transport *transport, pjsi // Update address and port with active transport if (!transport) { - ERROR("SIPVoIPLink: Transport is NULL in findLocalAddress, using local address %s:%s", addr.c_str(), port.c_str()); + ERROR("SIPVoIPLink: Transport is NULL in findLocalAddress, using local address %s:%s", addr.c_str(), port.c_str()); return; } - // get the transport manager associated with the SIP enpoint + // get the transport manager associated with the SIP enpoint pjsip_tpmgr *tpmgr = pjsip_endpt_get_tpmgr(endpt_); if (!tpmgr) { ERROR("SIPVoIPLink: Transport manager is NULL in findLocalAddress, using local address %s:%s", addr.c_str(), port.c_str()); @@ -1520,9 +1520,9 @@ void SIPVoIPLink::findLocalAddressFromTransport(pjsip_transport *transport, pjsi return; } - // Update local address based on the transport type + // Update local address based on the transport type addr = std::string(localAddress.ptr, localAddress.slen); - + // Fallback on local ip provided by pj_gethostip() if (addr == "0.0.0.0") addr = getSIPLocalIP(); @@ -1851,9 +1851,9 @@ void update_contact_header(struct pjsip_regc_cbparam *param, SIPAccount *account if(siplink == NULL) { ERROR("SIPVoIPLink: Could not find voip link from account"); return; - } + } - pj_pool_t *pool = pj_pool_create(&cp_->factory, "tmp", 512, 512, NULL); + pj_pool_t *pool = pj_pool_create(&cp_->factory, "tmp", 512, 512, NULL); if(pool == NULL) { ERROR("SIPVoIPLink: Could not create temporary memory pool in transport header"); return; @@ -1895,14 +1895,14 @@ void update_contact_header(struct pjsip_regc_cbparam *param, SIPAccount *account updateContact = true; } - size_t foundPort = currentContactHeader.find(recvContactPort); + size_t foundPort = currentContactHeader.find(recvContactPort); if(foundPort == std::string::npos) { updateContact = true; } if(updateContact) { - DEBUG("SIPVoIPLink: Update contact header: %s:%s\n", recvContactHost.c_str(), recvContactPort.c_str()); - account->setContactHeader(recvContactHost, recvContactPort); + DEBUG("SIPVoIPLink: Update contact header: %s:%s\n", recvContactHost.c_str(), recvContactPort.c_str()); + account->setContactHeader(recvContactHost, recvContactPort); siplink->sendRegister(account); } pj_pool_release(pool); @@ -1925,7 +1925,7 @@ void registration_cb(struct pjsip_regc_cbparam *param) if(account->isContactUpdateEnabled()) { update_contact_header(param, account); } - + const pj_str_t *description = pjsip_get_status_text(param->code); if (param->code && description) { diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h index d825758087d4e62e644cb4567b228873882aba49..12d63f7263c5e042df537bcc679641a1ab1ba191 100644 --- a/daemon/src/sip/sipvoiplink.h +++ b/daemon/src/sip/sipvoiplink.h @@ -107,7 +107,7 @@ class SIPVoIPLink : public VoIPLink { /** * Abort currently registered timer */ - void cancelKeepAliveTimer(pj_timer_entry& timer); + void cancelKeepAliveTimer(pj_timer_entry& timer); /** * Place a new call diff --git a/daemon/test/sflphoned-sample.yml b/daemon/test/sflphoned-sample.yml index e306032345b20cc288a4574c23fd73b252910907..942b1541229737aa284302e7a7c0239b30c02b2f 100644 --- a/daemon/test/sflphoned-sample.yml +++ b/daemon/test/sflphoned-sample.yml @@ -1,26 +1,26 @@ --- accounts: -- alias: +- alias: codecs: 0/ credential: - - password: + - password: realm: '*' - username: - displayName: + username: + displayName: dtmfType: true enable: true - hostname: + hostname: id: IP2IP interface: default - mailbox: + mailbox: port: 5060 - publishAddr: + publishAddr: publishPort: 5060 registrationExpire: true ringtoneEnabled: true ringtonePath: /usr/share/sflphone/ringtones/konga.ul sameasLocal: true - serviceRoute: + serviceRoute: srtp: enable: false keyExchange: sdes @@ -28,22 +28,22 @@ accounts: stunEnabled: false stunServer: stun.sflphone.org tls: - calist: - certificate: - ciphers: + calist: + certificate: + ciphers: enable: false method: TLSv1 - password: - privateKey: + password: + privateKey: requireCertif: true - server: + server: timeout: 2 tlsPort: 5061 verifyClient: true verifyServer: true type: SIP updateContact: false - username: + username: zrtp: displaySas: true displaySasOnce: false @@ -70,13 +70,13 @@ addressbook: business: true enabled: true home: true - list: + list: maxResults: 25 mobile: true photo: true hooks: iax2Enabled: false - numberAddPrefix: + numberAddPrefix: numberEnabled: false sipEnabled: false urlCommand: x-www-browser @@ -98,13 +98,13 @@ audio: devicePlayback: alsa_output.pci-0000_00_1b.0.analog-stereo deviceRecord: alsa_input.pci-0000_00_1b.0.analog-stereo deviceRingtone: alsa_output.pci-0000_00_1b.0.analog-stereo - recordPath: + recordPath: volumeMic: 100 volumeSpkr: 100 shortcuts: - hangUp: - pickUp: - popupWindow: - toggleHold: - togglePickupHangup: + hangUp: + pickUp: + popupWindow: + toggleHold: + togglePickupHangup: ... diff --git a/daemon/test/sippxml/test_1.xml b/daemon/test/sippxml/test_1.xml index 0bdfd4b2446e77449c5673167f059f037ed884ad..709263935701cf94a8c6ceba041d29bb7a544c2c 100644 --- a/daemon/test/sippxml/test_1.xml +++ b/daemon/test/sippxml/test_1.xml @@ -20,7 +20,7 @@ <!-- --> <scenario name="UAS responder put on hold then hungup"> - + <!-- This scenario implies a second call made by the uac which implies --> <!-- This call to be put on hold automatically --> diff --git a/daemon/test/sippxml/test_2.xml b/daemon/test/sippxml/test_2.xml index 003b0adac85c72ddfd91c7eac08fe39389037cc8..fa3b9c129ec9ee4cce50d58bfb9446caa089b804 100644 --- a/daemon/test/sippxml/test_2.xml +++ b/daemon/test/sippxml/test_2.xml @@ -84,7 +84,7 @@ <!-- Here is where the call is put on hold --> <recv request="INVITE" crlf="true"> - </recv> + </recv> <send> <![CDATA[ diff --git a/daemon/test/sippxml/test_3.xml b/daemon/test/sippxml/test_3.xml index 568a97a9e62ddf5bd4a323b920f425f300104273..bae7eaa2bc795eafd357f3ca30e18433c1220a2e 100644 --- a/daemon/test/sippxml/test_3.xml +++ b/daemon/test/sippxml/test_3.xml @@ -7,7 +7,7 @@ <recv request="INVITE" crlf="true"> <action> - <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> + <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> <log message="Media is [$1]"/> </action> </recv> @@ -184,4 +184,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/daemon/test/sippxml/test_4.xml b/daemon/test/sippxml/test_4.xml index bc4e5636fee7ad1998c5cd59747eed2edd3208c6..d241bfe3b6a33860adcfc6eef34ca1e7886c16c5 100644 --- a/daemon/test/sippxml/test_4.xml +++ b/daemon/test/sippxml/test_4.xml @@ -64,7 +64,7 @@ <recv response="200" rtd="true"> <action> <ereg regexp="a=rtpmap:0 PCMU/8000" search_in="body" check_it="true" assign_to="1" /> - <log message="Custom header is [$1]"/> + <log message="Custom header is [$1]"/> </action> </recv> diff --git a/daemon/test/siptest.cpp b/daemon/test/siptest.cpp index 2de4da4ad006e1b0e16146d95ff368f1eebf3c39..06b8f7bf4dfcd0f747f8799a01da96755c4cb8dc 100644 --- a/daemon/test/siptest.cpp +++ b/daemon/test/siptest.cpp @@ -209,7 +209,7 @@ void SIPTest::testTwoOutgoingIpCall() // The second call uses the default user agent scenario std::string secondCallCommand("sipp -sn uas -i 127.0.0.1 -p 5064 -m 1"); - pthread_t firstCallThread; + pthread_t firstCallThread; int rc = pthread_create(&firstCallThread, NULL, sippThread, &firstCallCommand); if (rc) diff --git a/daemon/test/ymlParser.yml b/daemon/test/ymlParser.yml index c63756336f815a62a8745e960d6263be9c047807..d5bab9a1c3563b748f9f295aed164fa3063cb2dc 100644 --- a/daemon/test/ymlParser.yml +++ b/daemon/test/ymlParser.yml @@ -1,7 +1,7 @@ accounts: - id: 1234 alias: sfl-181 - username: 181 + username: 181 password: sfl-181pw hostname: sflphone.org enable: true @@ -9,7 +9,7 @@ accounts: - id: 2345 alias: sfl-431 - username: 431 + username: 431 password: alexandre hostname: 192.168.50.3 enable: true @@ -21,7 +21,7 @@ accounts: publishaddr: 127.0.0.1 publishport: 5065 sameaslocal: true - resolveonce: false + resolveonce: false codecs: 0/9/110/111/112/ credential: count: 0 diff --git a/gnome/Makefile.am b/gnome/Makefile.am index a80580d35c8337a15222bdb85dd8c5954c530cd7..ca8bba4dff38d04e81e9e13af21ba4adb2e09298 100644 --- a/gnome/Makefile.am +++ b/gnome/Makefile.am @@ -19,7 +19,7 @@ appsdir = $(datadir)/applications apps_in_files = sflphone.desktop.in apps_DATA = $(apps_in_files:.desktop.in=.desktop) -DISTCLEANFILES= sflphone.desktop $(GNOME_DOC) +DISTCLEANFILES= sflphone.desktop $(GNOME_DOC) install-data-local: GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_srcdir)/$(schema_DATA) diff --git a/gnome/configure.ac b/gnome/configure.ac index 93d2703c9878b051aceb4966e632d1928987973b..07b8c0697bfda0e361b9f67e6ae85e8bd2cd7a1f 100644 --- a/gnome/configure.ac +++ b/gnome/configure.ac @@ -40,7 +40,7 @@ PKG_CHECK_MODULES(WEBKIT, webkitgtk-3.0) PKG_CHECK_MODULES([CHECK], [check >= 0.9.4]) AC_CONFIG_FILES([ -Makefile +Makefile src/Makefile src/config/Makefile src/dbus/Makefile diff --git a/gnome/doc/C/figures/accounts_security.png b/gnome/doc/C/figures/accounts_security.png index ca3f76c3d9a899589dc29b299a3117ae8ebe110f..11426a93cf93430bbf7e76bc46fb61b625b22363 100644 Binary files a/gnome/doc/C/figures/accounts_security.png and b/gnome/doc/C/figures/accounts_security.png differ diff --git a/gnome/doc/C/figures/conference.png b/gnome/doc/C/figures/conference.png index 91fbc4904ba21ded7969ef39c5ebdbc663f9bb44..92dac72305111027d1ecfbbee5379c02b06901af 100644 Binary files a/gnome/doc/C/figures/conference.png and b/gnome/doc/C/figures/conference.png differ diff --git a/gnome/doc/C/figures/rec-settings.png b/gnome/doc/C/figures/rec-settings.png index c5afcd60aa35d50688dc548a5778a9f7d5ad424e..255e372c59c5c60ec7d7cd969de6a5d72d3b3a0d 100644 Binary files a/gnome/doc/C/figures/rec-settings.png and b/gnome/doc/C/figures/rec-settings.png differ diff --git a/gnome/doc/C/figures/record.png b/gnome/doc/C/figures/record.png index dc5635c3d5cd3bcbccdad13c38190dd2fcd3373f..3e884a72da8ad3cb1027346dd5dade2b9a4f1c3a 100644 Binary files a/gnome/doc/C/figures/record.png and b/gnome/doc/C/figures/record.png differ diff --git a/gnome/doc/C/figures/transfer.png b/gnome/doc/C/figures/transfer.png index fcb2c4a33a3bdeb8e2a6b762b2e5ca155a35b7eb..8e0628c19889b05a5f169cd0e4ec293a6e8be8d0 100644 Binary files a/gnome/doc/C/figures/transfer.png and b/gnome/doc/C/figures/transfer.png differ diff --git a/gnome/doc/C/sflphone.xml b/gnome/doc/C/sflphone.xml index 233512d272d0f56033b4fb3d07de137fc1bc6b93..4065d60977ecf3ded50c6ce9f4bde1a7b5bc1969 100644 --- a/gnome/doc/C/sflphone.xml +++ b/gnome/doc/C/sflphone.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ - <!ENTITY app "SFLphone"> - <!ENTITY appversion "0.9.8~rc1"> - <!ENTITY docversion "1.0"> + <!ENTITY app "SFLphone"> + <!ENTITY appversion "0.9.8~rc1"> + <!ENTITY docversion "1.0"> ]> <!-- =============Document Header ============================= --> @@ -26,8 +26,8 @@ --> <abstract role="description"> <para> - SFLphone is an enterprise-class SIP/IAX2 compatible softphone for GNU/Linux, published under the GPLv3 license. - </para> + SFLphone is an enterprise-class SIP/IAX2 compatible softphone for GNU/Linux, published under the GPLv3 license. + </para> </abstract> <publisher> @@ -35,12 +35,12 @@ </publisher> <legalnotice id="legalnotice"> - <para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type="help" url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS distributed with this manual.</para> + <para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation Licence (GFDL), Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy of the GFDL at this <ulink type="help" url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS distributed with this manual.</para> <para>This manual is part of a collection of GNOME manuals distributed under the GFDL. If you want to distribute this manual separately from the collection, you can do so by adding a copy of the licence to the manual, as described in section 6 of the licence.</para> - </legalnotice> + </legalnotice> <authorgroup> - <author> + <author> <firstname>Pierre-Luc</firstname> <surname>Bacon</surname> <affiliation> @@ -48,7 +48,7 @@ </affiliation> </author> - <author role="maintainer"> + <author role="maintainer"> <firstname>Emmanuel</firstname> <surname>Milou</surname> <affiliation> @@ -64,7 +64,7 @@ </affiliation> </author> - <author> + <author> <firstname>Alexandre</firstname> <surname>Savard</surname> <affiliation> @@ -74,13 +74,13 @@ </authorgroup> <revhistory> - <revision> + <revision> <revnumber>SFLphone Manual v1.0.1</revnumber> <date>March 2010</date> <revdescription> <para role="author">SFLphone team</para> <para role="publisher">Savoir-faire Linux</para> - <para>Minor changes</para> + <para>Minor changes</para> </revdescription> </revision> @@ -104,137 +104,137 @@ <sect1 id="introduction"> <title>Introduction</title> - <para> - <application>SFLphone</application> is a SIP/IAX2 softphone and VoIP client for GNU/Linux. It aims at being a robust enterprise-class desktop phone and has been designed with a hundred-calls-a-day receptionist in mind. - </para> - <para> - <application>SFLphone</application> is a free software and is distributed under the GNU General Public License version 3. It is developed by Savoir-Faire Linux, a Canadian Linux consulting company, in partnership with the global community. - </para> - <para> - Among the many features we developed for you, we could - highlight the high definition sound (wide-band audio - codecs - speex, G722, Celt), multiple conference call, - audio recording, voicemail notification, and call history. - More than a simple softphone, <application>SFLphone</application> supports advanced enterprise-class call features: unlimited number of calls, call transfer, and on/off hold option. - </para> - <para> - This release also provides advanced security features (secure RTP and TLS). - </para> - - <para> - Besides the native ALSA interface, <application>SFLphone</application> now fully supports PulseAudio sound server so you could experience the great possibilities it offers (sound mixing, per application volume control, ...). - </para> + <para> + <application>SFLphone</application> is a SIP/IAX2 softphone and VoIP client for GNU/Linux. It aims at being a robust enterprise-class desktop phone and has been designed with a hundred-calls-a-day receptionist in mind. + </para> + <para> + <application>SFLphone</application> is a free software and is distributed under the GNU General Public License version 3. It is developed by Savoir-Faire Linux, a Canadian Linux consulting company, in partnership with the global community. + </para> + <para> + Among the many features we developed for you, we could + highlight the high definition sound (wide-band audio + codecs - speex, G722, Celt), multiple conference call, + audio recording, voicemail notification, and call history. + More than a simple softphone, <application>SFLphone</application> supports advanced enterprise-class call features: unlimited number of calls, call transfer, and on/off hold option. + </para> + <para> + This release also provides advanced security features (secure RTP and TLS). + </para> + + <para> + Besides the native ALSA interface, <application>SFLphone</application> now fully supports PulseAudio sound server so you could experience the great possibilities it offers (sound mixing, per application volume control, ...). + </para> </sect1> <sect1 id="getting-started"> - <title>Getting started</title> - <para> - The first time you start up SFLphone, you will be ask to complete a wizard to set up your(s) account(s). This account configuration manager offers you two possibilities: - <itemizedlist> - <listitem> - <para><guilabel>Create a free SIP/IAX2 account on sflphone.org</guilabel></para> - <para>Savoir-faire Linux provides free SIP/IAX2 accounts on an Asterisk server. - By clicking this option, you will be created an account to make test calls. The echo service is available, you may also call other accounts registered to the same server.</para> - <para>By filling out your email address information, you will receive voicemail notifications by email. This information is not mandatory to get your free account.</para> - </listitem> - <listitem> - <para><guilabel>Register an existing SIP or IAX2 account</guilabel></para> - <para>Click there if you already have an account and you want to use it with SFLphone. - You will be prompted to select the account type (SIP or IAX2) and to fill out your account information. <application>SFLphone</application> will then try to register it so you could start using it.</para> - </listitem> - </itemizedlist> - </para> - <para> - You can always access the account creation manager: <menuchoice><guimenu>Edit</guimenu> <guimenuitem>Account creation assistant</guimenuitem></menuchoice>. - </para> + <title>Getting started</title> + <para> + The first time you start up SFLphone, you will be ask to complete a wizard to set up your(s) account(s). This account configuration manager offers you two possibilities: + <itemizedlist> + <listitem> + <para><guilabel>Create a free SIP/IAX2 account on sflphone.org</guilabel></para> + <para>Savoir-faire Linux provides free SIP/IAX2 accounts on an Asterisk server. + By clicking this option, you will be created an account to make test calls. The echo service is available, you may also call other accounts registered to the same server.</para> + <para>By filling out your email address information, you will receive voicemail notifications by email. This information is not mandatory to get your free account.</para> + </listitem> + <listitem> + <para><guilabel>Register an existing SIP or IAX2 account</guilabel></para> + <para>Click there if you already have an account and you want to use it with SFLphone. + You will be prompted to select the account type (SIP or IAX2) and to fill out your account information. <application>SFLphone</application> will then try to register it so you could start using it.</para> + </listitem> + </itemizedlist> + </para> + <para> + You can always access the account creation manager: <menuchoice><guimenu>Edit</guimenu> <guimenuitem>Account creation assistant</guimenuitem></menuchoice>. + </para> </sect1> <sect1 id="accounts"> - <title>Managing your accounts</title> - <para> - <application>SFLphone</application> supports both IAX2 - and SIP accounts. - </para> - - <sect2 id="accounts_basic"> - <title>Basic features</title> - <sect3 id="account_creation"> - <title>Creating a new account</title> - <para>To create a new account, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Click on the <guilabel>Add</guilabel> button. Fill out the following information:</para> - <itemizedlist> - <listitem> - <para><guilabel>Alias</guilabel></para> - <para>The name to identify your account in the list. It is not used for the communications</para> - </listitem> - <listitem> - <para><guilabel>Protocol</guilabel></para> - <para>Select SIP or IAX2. The most commonly used protocol is SIP.</para> - </listitem> - <listitem> - <para><guilabel>Host name</guilabel></para> - <para>The name or the IP address of the server you want to register on.</para> - </listitem> - <listitem> - <para><guilabel>User name</guilabel></para> - <para>The name or the extension for your account.</para> - </listitem> - <listitem> - <para><guilabel>Password</guilabel></para> - <para>The password for your account.</para> - </listitem> - <listitem> - <para><guilabel>Voicemail number</guilabel></para> - <para>The number to dial to reach your voicemail. Example: 888, or *97. It will be used as a quick dial button on the main interface.</para> - </listitem> + <title>Managing your accounts</title> + <para> + <application>SFLphone</application> supports both IAX2 + and SIP accounts. + </para> + + <sect2 id="accounts_basic"> + <title>Basic features</title> + <sect3 id="account_creation"> + <title>Creating a new account</title> + <para>To create a new account, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Click on the <guilabel>Add</guilabel> button. Fill out the following information:</para> + <itemizedlist> + <listitem> + <para><guilabel>Alias</guilabel></para> + <para>The name to identify your account in the list. It is not used for the communications</para> + </listitem> + <listitem> + <para><guilabel>Protocol</guilabel></para> + <para>Select SIP or IAX2. The most commonly used protocol is SIP.</para> + </listitem> + <listitem> + <para><guilabel>Host name</guilabel></para> + <para>The name or the IP address of the server you want to register on.</para> + </listitem> + <listitem> + <para><guilabel>User name</guilabel></para> + <para>The name or the extension for your account.</para> + </listitem> + <listitem> + <para><guilabel>Password</guilabel></para> + <para>The password for your account.</para> + </listitem> + <listitem> + <para><guilabel>Voicemail number</guilabel></para> + <para>The number to dial to reach your voicemail. Example: 888, or *97. It will be used as a quick dial button on the main interface.</para> + </listitem> </itemizedlist> - </listitem> - <listitem><para>Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button.</para></listitem> - </orderedlist> - <para>You may now check the state of your account(s). If it is registered, you may now use it to make calls.</para> - <note><para>You can setup as many accounts as you wish.</para></note> - </sect3> - - <sect3 id="account_edit"> - <title>Editing a configured account</title> - <para>To edit an existing account, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> - <listitem><para>Make your modifications, then click on the <guilabel>Apply</guilabel> button.</para></listitem> - </orderedlist> - </sect3> - - <sect3 id="account_delete"> - <title>Deleting an account</title> - <para>To delete an existing account, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Select in the list the account you would like to delete, then click on the <guibutton>Delete</guibutton> button.</para></listitem> - </orderedlist> - </sect3> - - <sect3 id="account_selection"> - <title>Selecting a default account</title> - <para>Since it is possible to have an unlimited number of registered accounts at the same time, which account will be used when making a call ? You can not only set up a default account to be used every time you are making a call, but an entire priority list. To do that, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice> to access the accounts list.</para></listitem> - <listitem> - <para>The first account in the account in list will be used as the default account to make calls with. If it is not registered, SFLphone will try to use the second in the list, if still not registered, the third, and so one ...</para> - <para>To reorder the accounts as you wish, select an account and click on the <menuchoice><guimenu>Up</guimenu></menuchoice> or <menuchoice><guimenu>Down</guimenu></menuchoice> button.</para> - </listitem> - </orderedlist> - <para>Note that you also can select an account to make a call with when dialing by right-clicking on it.</para> - </sect3> + </listitem> + <listitem><para>Click the <menuchoice><guimenu>Apply</guimenu></menuchoice> button.</para></listitem> + </orderedlist> + <para>You may now check the state of your account(s). If it is registered, you may now use it to make calls.</para> + <note><para>You can setup as many accounts as you wish.</para></note> + </sect3> + + <sect3 id="account_edit"> + <title>Editing a configured account</title> + <para>To edit an existing account, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> + <listitem><para>Make your modifications, then click on the <guilabel>Apply</guilabel> button.</para></listitem> + </orderedlist> + </sect3> + + <sect3 id="account_delete"> + <title>Deleting an account</title> + <para>To delete an existing account, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Select in the list the account you would like to delete, then click on the <guibutton>Delete</guibutton> button.</para></listitem> + </orderedlist> + </sect3> + + <sect3 id="account_selection"> + <title>Selecting a default account</title> + <para>Since it is possible to have an unlimited number of registered accounts at the same time, which account will be used when making a call ? You can not only set up a default account to be used every time you are making a call, but an entire priority list. To do that, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice> to access the accounts list.</para></listitem> + <listitem> + <para>The first account in the account in list will be used as the default account to make calls with. If it is not registered, SFLphone will try to use the second in the list, if still not registered, the third, and so one ...</para> + <para>To reorder the accounts as you wish, select an account and click on the <menuchoice><guimenu>Up</guimenu></menuchoice> or <menuchoice><guimenu>Down</guimenu></menuchoice> button.</para> + </listitem> + </orderedlist> + <para>Note that you also can select an account to make a call with when dialing by right-clicking on it.</para> + </sect3> </sect2> - <sect2 id="account_advanced"> - <title>Advanced features</title> - <para>These features are only available with SIP.</para> - <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Advanced</guimenu> tab.</para> - <!-- ==== Figure ==== --> + <sect2 id="account_advanced"> + <title>Advanced features</title> + <para>These features are only available with SIP.</para> + <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Advanced</guimenu> tab.</para> + <!-- ==== Figure ==== --> <figure id="account-advanced-fig"> <title>Advanced features configuration panel</title> <screenshot> @@ -246,45 +246,45 @@ </screenshot> </figure> <!-- ==== End of Figure ==== --> - <sect3 id="accounts_registration"> - <title>Registration</title> - <para>You may set the expires header for a contact.</para> - <para>It basically represents the duration your registration will remain active. If you don't register again within that time, calls will no longer be routed to you. It should not be used as a keepalive mechanism though. The default value is 600 seconds (ten minutes).</para> - <note><para>Some VoIP services requires that you set this value at at least 1600 seconds (e.g. the French VoIP server freephonie.net).</para> - </note> - </sect3> - <sect3 id="accounts_stun"> - <title>Network</title> - <para>This section enables you to set advanced network parameters.</para> - <variablelist> - <varlistentry> - <term><guilabel>Local address</guilabel></term> - <listitem><para>it is initialized to your private/local IP address. Calls will be routed to this address by default.</para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>Local port</guilabel></term> - <listitem><para>It is initialized to the default SIP port, 5060.</para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>Set published address and port</guilabel></term> - <listitem> - <itemizedlist> - <listitem><para>Using STUN</para> - <para>If enabled, the core will try to initialize an UDP transport on the mapped address/port number that the NAT (Network Address Translator) has allocated to <application>SFLphone</application>.</para></listitem> - <listitem><para>Same as local parameters</para> - </listitem> - <listitem><para>Manually</para> - </listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - </sect3> - </sect2> - <sect2 id="account_security"> - <title>Security features</title> - <para>These features are only available with SIP.</para> - <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Security</guimenu> tab.</para> + <sect3 id="accounts_registration"> + <title>Registration</title> + <para>You may set the expires header for a contact.</para> + <para>It basically represents the duration your registration will remain active. If you don't register again within that time, calls will no longer be routed to you. It should not be used as a keepalive mechanism though. The default value is 600 seconds (ten minutes).</para> + <note><para>Some VoIP services requires that you set this value at at least 1600 seconds (e.g. the French VoIP server freephonie.net).</para> + </note> + </sect3> + <sect3 id="accounts_stun"> + <title>Network</title> + <para>This section enables you to set advanced network parameters.</para> + <variablelist> + <varlistentry> + <term><guilabel>Local address</guilabel></term> + <listitem><para>it is initialized to your private/local IP address. Calls will be routed to this address by default.</para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Local port</guilabel></term> + <listitem><para>It is initialized to the default SIP port, 5060.</para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Set published address and port</guilabel></term> + <listitem> + <itemizedlist> + <listitem><para>Using STUN</para> + <para>If enabled, the core will try to initialize an UDP transport on the mapped address/port number that the NAT (Network Address Translator) has allocated to <application>SFLphone</application>.</para></listitem> + <listitem><para>Same as local parameters</para> + </listitem> + <listitem><para>Manually</para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect3> + </sect2> + <sect2 id="account_security"> + <title>Security features</title> + <para>These features are only available with SIP.</para> + <para>Follow the indications to <link linkend='account_edit'>edit an account</link> and choose the <guimenu>Security</guimenu> tab.</para> <!-- ==== Figure ==== --> <figure id="account-security-fig"> <title>Security features configuration panel</title> @@ -298,25 +298,25 @@ </figure> <!-- ==== End of Figure ==== --> - <sect3 id="realms"> - <title>Credentials</title> - <para>SFLphone supports multiple realms.</para> - </sect3> + <sect3 id="realms"> + <title>Credentials</title> + <para>SFLphone supports multiple realms.</para> + </sect3> - <sect3 id="security_frame"> - <title>Security </title> - <para>Please refer to the section <link linkend="detailed_security_features">Security features</link> for detailed information about security features.</para> - </sect3> - </sect2> + <sect3 id="security_frame"> + <title>Security </title> + <para>Please refer to the section <link linkend="detailed_security_features">Security features</link> for detailed information about security features.</para> + </sect3> + </sect2> </sect1> <sect1 id="call_features"> - <title>Call features</title> + <title>Call features</title> - <para>The following features are available with both SIP and IAX2 accounts.</para> + <para>The following features are available with both SIP and IAX2 accounts.</para> - <sect2><title>Dialing a number</title> - <!-- ==== Figure ==== --> + <sect2><title>Dialing a number</title> + <!-- ==== Figure ==== --> <figure id="dial-fig"> <title>Dial button</title> <screenshot> @@ -329,9 +329,9 @@ </figure> <!-- ==== End of Figure ==== --> - <para>You may have an unlimited number of calls at the same time, even with different accounts.</para> - <para>To create a new call when you already have a current call, just click on the <guilabel>Dial</guilabel> button. The current call will automatically be put on hold.</para> - <!-- ==== Figure ==== --> + <para>You may have an unlimited number of calls at the same time, even with different accounts.</para> + <para>To create a new call when you already have a current call, just click on the <guilabel>Dial</guilabel> button. The current call will automatically be put on hold.</para> + <!-- ==== Figure ==== --> <figure id="call-second-fig"> <title>Make an other call</title> <screenshot> @@ -344,13 +344,13 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>NUMPAD</accel></guimenuitem> or almost any keys.</para> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>NUMPAD</accel></guimenuitem> or almost any keys.</para> - </sect2> - - <sect2><title>Calling a number</title> + </sect2> + + <sect2><title>Calling a number</title> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="call-fig"> <title>Call button</title> <screenshot> @@ -363,12 +363,12 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> - </sect2> + </sect2> - <sect2><title>Answering a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Answering a call</title> + <!-- ==== Figure ==== --> <figure id="answer-fig"> <title>Answer button</title> <screenshot> @@ -381,11 +381,11 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> - </sect2> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>Enter</accel></guimenuitem>.</para> + </sect2> - <sect2><title>Hanging up a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Hanging up a call</title> + <!-- ==== Figure ==== --> <figure id="hangup-fig"> <title>Hangup button</title> <screenshot> @@ -398,12 +398,12 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> - </sect2> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> + </sect2> - <sect2><title>Refusing a call</title> + <sect2><title>Refusing a call</title> - <para>When you refuse a call, your caller is automatically redirected to your voicemail box, if applicable.</para> + <para>When you refuse a call, your caller is automatically redirected to your voicemail box, if applicable.</para> <!-- ==== Figure ==== --> <figure id="refuse-fig"> @@ -418,12 +418,12 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> + <para>Keyboard shortcut to perform this action: <guimenuitem><accel>ESC</accel></guimenuitem>.</para> </sect2> - <sect2><title>Holding on/off a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Holding on/off a call</title> + <!-- ==== Figure ==== --> <figure id="holdon-fig"> <title>Hold on button</title> <screenshot> @@ -435,7 +435,7 @@ </screenshot> </figure> <!-- ==== End of Figure ==== --> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="holdoff-fig"> <title>Hold off button</title> <screenshot> @@ -447,10 +447,10 @@ </screenshot> </figure> <!-- ==== End of Figure ==== --> - </sect2> + </sect2> - <sect2><title>Transferring a call</title> - <!-- ==== Figure ==== --> + <sect2><title>Transferring a call</title> + <!-- ==== Figure ==== --> <figure id="transfer-fig"> <title>Transfer button</title> <screenshot> @@ -463,8 +463,8 @@ </figure> <!-- ==== End of Figure ==== --> - <para>Then type the number you want to transfer the current call to.</para> - <!-- ==== Figure ==== --> + <para>Then type the number you want to transfer the current call to.</para> + <!-- ==== Figure ==== --> <figure id="transfer-go-fig"> <title>Validate the transfer</title> <screenshot> @@ -477,15 +477,15 @@ </figure> <!-- ==== End of Figure ==== --> - <para>And press <guimenuitem><accel>Enter</accel></guimenuitem>. Clicking again on the transfer button cancels the transfer.</para> + <para>And press <guimenuitem><accel>Enter</accel></guimenuitem>. Clicking again on the transfer button cancels the transfer.</para> - </sect2> + </sect2> + + <sect2><title>Record a call</title> - <sect2><title>Record a call</title> - - <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Audio</guimenuitem></menuchoice> to configure the recordings destination folder.</para> + <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Audio</guimenuitem></menuchoice> to configure the recordings destination folder.</para> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="rec-settings-fig"> <title>Record settings</title> <screenshot> @@ -512,9 +512,9 @@ <!-- ==== End of Figure ==== --> </sect2> - <sect2><title>Voicemail quick dial</title> - - <caution><para>This feature is available only if you fill out the voicemail number information for your default account.</para></caution> + <sect2><title>Voicemail quick dial</title> + + <caution><para>This feature is available only if you fill out the voicemail number information for your default account.</para></caution> <!-- ==== Figure ==== --> <figure id="voicemail-fig"> @@ -531,88 +531,88 @@ </sect2> - <sect2 id="directip"><title>Direct IP calls</title> - <para>A direct IP call is a call established between two peers without any accounts. When dialing, such a call must prefixed with <guilabel>sip:</guilabel>.</para> + <sect2 id="directip"><title>Direct IP calls</title> + <para>A direct IP call is a call established between two peers without any accounts. When dialing, such a call must prefixed with <guilabel>sip:</guilabel>.</para> - <para>Direct IP calls use SIP protocol to establish communication and RTP to transport data. It is right now not available with IAX2.</para> + <para>Direct IP calls use SIP protocol to establish communication and RTP to transport data. It is right now not available with IAX2.</para> - <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Direct IP calls</guimenuitem></menuchoice> to configure the advanced security features for this kind of calls.</para> - </sect2> + <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem> <guimenuitem>Direct IP calls</guimenuitem></menuchoice> to configure the advanced security features for this kind of calls.</para> + </sect2> - <sect2 id="conferencecall"><title>Conference calls</title> - <para>SFLphone now supports conference call hosting + <sect2 id="conferencecall"><title>Conference calls</title> + <para>SFLphone now supports conference call hosting integrating server like features in a simple GUI. </para> <para> <itemizedlist> <listitem> - <para><guilabel>Create a conference</guilabel></para> + <para><guilabel>Create a conference</guilabel></para> <para>To host a conference, simply drag and drop one call on another. Additional participants are added the same way, dragging a call on the conference icon. </para> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="drag_n_frop-fig"> - <title>Creating a new conference</title> - <screenshot> + <title>Creating a new conference</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/drag_n_drop.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="conference-fig"> - <title>Conference call</title> - <screenshot> + <title>Conference call</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/conference.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> </listitem> <listitem> - <para><guilabel>Leave a conference</guilabel></para> + <para><guilabel>Leave a conference</guilabel></para> <para> SFLphone conference model let you leave a conference that you are currently hosting to answer any other incoming communication or even initiate new ones. The conference is not interrupted, double clicking the conference icon let you reintroduce it at any moment. - </para> - <!-- ==== Figure ==== --> + </para> + <!-- ==== Figure ==== --> <figure id="conference_detached-fig"> - <title>Conference detached</title> - <screenshot> + <title>Conference detached</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/conference_detached.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> - <!-- ==== Figure ==== --> + <!-- ==== Figure ==== --> <figure id="conference_attached-fig"> - <title>Conference attached</title> - <screenshot> + <title>Conference attached</title> + <screenshot> <mediaobject> <imageobject> <imagedata fileref="figures/conference_attached.png" format="PNG"/> </imageobject> </mediaobject> - </screenshot> + </screenshot> </figure> <!-- ==== End of Figure ==== --> </listitem> <listitem> - <para><guilabel>Multiple conference</guilabel></para> + <para><guilabel>Multiple conference</guilabel></para> <para> SFLphone supports multiple conferences running simultaneously. Two conferences can be joined the same way @@ -630,64 +630,64 @@ </listitem> </itemizedlist> </para> - </sect2> + </sect2> </sect1> <sect1 id="detailed_security_features"> - <title>Security features</title> + <title>Security features</title> <sect2 id="zrtp_srtp"> - <title>SRTP/ZRTP</title> - <sect3 id="zrtp_srtp_definition"> - <title>SRTP and ZRTP, the big picture</title> + <title>SRTP/ZRTP</title> + <sect3 id="zrtp_srtp_definition"> + <title>SRTP and ZRTP, the big picture</title> <para>RTP is the underlying protocol that is used in pair with the widely used SIP protocol to carry voice data. RTP alone does not provide any security features.</para> <para>Details for implementing Secure RTP (SRTP) were described independently in a separate document (RFC). However, in this paper, one aspect was deliberately left unspecified: how should the encryption keys be exchanged between the two parties involved in a secure RTP session ?</para> - + <para>Multiple solutions were proposed to fill in that blank. Among them, are SDES (RFC4568) and ZRTP which are probably the most popular today. For the 0.9.7 release, SFLphone integrates support for Secure RTP through the ZRTP protocol, and SDES is expected to be implemented in the very few next releases.</para> - + <para>As of today, blueprints for ZRTP are still laid out and are recognized under the name "zrtp-draftzimmerman" in the RFC machine. The author of ZRTP is Phil Zimmermann, that same person who brought us PGP. Therefore, it is not surprising that he designed ZRTP as an anti-PKI solution for key exchange.</para> - + <para>ZRTP makes possible for two parties to automatically establish a shared secret in a very simple way from the user's point of view. Indeed under SFLphone no special configuration is needed, apart from enabling the option itself.</para> - + <para>If you want to use ZRTP, please take note that if you are connecting to a PBX, this one must have been configured to support ZRTP. Unfortunately, security for VoIP communications is still young and chances are that your PBX software won't support it.</para> - + <para>This does not mean that you want be able to benefit from ZRTP ! In fact, it turns out that you will be able to use it, as long as the server does not need to decode the RTP stream. This is often the case when the person you are calling to uses a codec that you don't support. In that case, the server will need to transcode the RTP packets and obviously need to be able to handle the ZRTP stream.</para> - + <para>Obviously, if you are calling another user (for example by prefixing the number with "sip:") directly, then this one will have to support ZRTP as well if you want to use it.</para> - </sect3> - - <sect3 id="enabling_srtp"> - <title>Enabling SRTP/ZRTP</title> - <para>To enable ZRTP per account basis, perform the following steps:</para> - <orderedlist> - <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> - <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> - <listitem><para>Select the <guilabel>Security</guilabel> tab.</para></listitem> - <listitem><para>Select <guilabel>ZRTP</guilabel> from the select box named <guilabel>SRTP Key Exchange</guilabel>.</para></listitem> - </orderedlist> - <!-- ==== Figure ==== --> - <figure id="srtp-enabled-fig"> - <title>Enabling SRTP</title> - <screenshot> - <mediaobject> - <imageobject> - <imagedata fileref="figures/srtp_enabled.png" format="PNG"/> - </imageobject> - </mediaobject> - </screenshot> - </figure> - <!-- ==== End of Figure ==== --> - </sect3> - - <sect3 id="account_zrtp"> + </sect3> + + <sect3 id="enabling_srtp"> + <title>Enabling SRTP/ZRTP</title> + <para>To enable ZRTP per account basis, perform the following steps:</para> + <orderedlist> + <listitem><para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Manage accounts</guimenuitem></menuchoice>.</para></listitem> + <listitem><para>Select in the list the account you would like to edit, then click on the <guilabel>Edit</guilabel> button.</para></listitem> + <listitem><para>Select the <guilabel>Security</guilabel> tab.</para></listitem> + <listitem><para>Select <guilabel>ZRTP</guilabel> from the select box named <guilabel>SRTP Key Exchange</guilabel>.</para></listitem> + </orderedlist> + <!-- ==== Figure ==== --> + <figure id="srtp-enabled-fig"> + <title>Enabling SRTP</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="figures/srtp_enabled.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </figure> + <!-- ==== End of Figure ==== --> + </sect3> + + <sect3 id="account_zrtp"> <title>Configuration options</title> - + <para>After enabling SRTP, click the <guilabel>Preferences</guilabel> button.</para> - <para>For basic usage, one don't have to worry about that.</para> - - <!-- ==== Figure ==== --> + <para>For basic usage, one don't have to worry about that.</para> + + <!-- ==== Figure ==== --> <figure id="zrtp-options-fig"> <title>ZRTP configuration panel</title> <screenshot> @@ -701,50 +701,50 @@ <!-- ==== End of Figure ==== --> - <variablelist> - <varlistentry> - <term><guilabel>Send Hello Hash in SDP</guilabel></term> - <listitem><para>Selecting this option will cause the program to compute an hash function over the "Hello" packet and send it as an SDP field "zrtp-hash:". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it.</para> - <para>Take note that for 0.9.7, SFLphone does not perform the comparison on its side.</para></listitem> - </varlistentry> - - <varlistentry> - <term><guilabel>Ask user to confirm SAS</guilabel></term> - <listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requiring the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para> - - <para>Disabling this option will stop the program from prompting the user with the SAS.</para> - - <para>Such an option was motivated to be developed at that time by the the state of the libzrtpcpp library that SFLphone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para> - </listitem> - </varlistentry> - - <varlistentry> - <term><guilabel>Display SAS once for hold event</guilabel></term> - <listitem><para>When call is put on hold, the RTP stream is stopped and reinitiated later. From the ZRTP point of view, this appears as a "new call". Therefore, the SAS will be redisplayed unless this option is selected.</para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>ZRTP for direct peer-to-peer calls</guilabel></term> - <listitem><para>If you want to use ZRTP for calls that are placed directly to a user (without an intervening PBX), you must enable the option under the "Direct IP Calls" tab in the "configuration" window, available from the "edit" menu.</para> - + <variablelist> + <varlistentry> + <term><guilabel>Send Hello Hash in SDP</guilabel></term> + <listitem><para>Selecting this option will cause the program to compute an hash function over the "Hello" packet and send it as an SDP field "zrtp-hash:". The remote end might be interested in getting this value to add an additional layer of protection based on another communication channel. Upon receiving this value, the remote point can compute the hash function on the received hello packet and compare it.</para> + <para>Take note that for 0.9.7, SFLphone does not perform the comparison on its side.</para></listitem> + </varlistentry> + + <varlistentry> + <term><guilabel>Ask user to confirm SAS</guilabel></term> + <listitem><para>The short authentication mechanism is at the heart of the ZRTP protocol. Not requiring the user to manually check the SAS value presents a security risk over Man in the Middle type of attacks.</para> + + <para>Disabling this option will stop the program from prompting the user with the SAS.</para> + + <para>Such an option was motivated to be developed at that time by the the state of the libzrtpcpp library that SFLphone was making use of. It is only from version x.x that this library can cache results of SAS computation between two peers.</para> + </listitem> + </varlistentry> + + <varlistentry> + <term><guilabel>Display SAS once for hold event</guilabel></term> + <listitem><para>When call is put on hold, the RTP stream is stopped and reinitiated later. From the ZRTP point of view, this appears as a "new call". Therefore, the SAS will be redisplayed unless this option is selected.</para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>ZRTP for direct peer-to-peer calls</guilabel></term> + <listitem><para>If you want to use ZRTP for calls that are placed directly to a user (without an intervening PBX), you must enable the option under the "Direct IP Calls" tab in the "configuration" window, available from the "edit" menu.</para> + <para>Configuration instruction from that point are the same as for configured accounts.</para> - </listitem> - </varlistentry> - </variablelist> + </listitem> + </varlistentry> + </variablelist> </sect3> - </sect2> - <sect2 id="accounts_tls"> + </sect2> + <sect2 id="accounts_tls"> <title>TLS</title> - <para>TODO</para> - </sect2> + <para>TODO</para> + </sect2> </sect1> <sect1 id="audio_interfaces"> - <title>Audio configuration</title> - <para> - ALSA and PulseAudio native interfaces are available. - </para> + <title>Audio configuration</title> + <para> + ALSA and PulseAudio native interfaces are available. + </para> <sect2><title>Pulseaudio</title> <para> @@ -758,44 +758,44 @@ </sect1> <sect1 id="codecs_overview"> - <title>Codecs overview</title> - <para>SFLphone supports several widely used audio codecs:</para> + <title>Codecs overview</title> + <para>SFLphone supports several widely used audio codecs:</para> <para> <itemizedlist> <listitem> <para><guilabel>PCMU/PCMA</guilabel></para> <para> - ITU-T telephony standard PCM formats, 8kHz, 64 - kbit/s, using logarithmic byte compression algorithm. + ITU-T telephony standard PCM formats, 8kHz, 64 + kbit/s, using logarithmic byte compression algorithm. </para> </listitem> <listitem> <para><guilabel>GSM</guilabel></para> <para> - Global System for Mobile communications (GSM) - narrowband 8kHz standard based on linear prediction encoding. + Global System for Mobile communications (GSM) + narrowband 8kHz standard based on linear prediction encoding. </para> </listitem> <listitem> <para><guilabel>G722</guilabel></para> <para> - ITU-T standard wideband 16kHz standard based on linear prediction. + ITU-T standard wideband 16kHz standard based on linear prediction. </para> </listitem> <listitem> <para><guilabel>SPEEX</guilabel></para> <para> - High quality voice encoding/decoding available - in narrowband 8kHz, wideband 16kHz (HD Voice), - and ultra-wideband 32 kHz. - Integrate additional features such as Variable Bit - Rate (VBR) and noise reduction. + High quality voice encoding/decoding available + in narrowband 8kHz, wideband 16kHz (HD Voice), + and ultra-wideband 32 kHz. + Integrate additional features such as Variable Bit + Rate (VBR) and noise reduction. </para> </listitem> <listitem> <para><guilabel>CELT</guilabel></para> <para> - + </para> </listitem> </itemizedlist> @@ -804,92 +804,92 @@ </sect1> <sect1 id="addressbook"> - <title>Address books</title> - <sect2 id="adressbook_enable"> - <title>Enable the address book support</title> - <para>To enable the address book, perform the following steps:</para> + <title>Address books</title> + <sect2 id="adressbook_enable"> + <title>Enable the address book support</title> + <para>To enable the address book, perform the following steps:</para> <orderedlist> - <listitem> - <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. - </para> - </listitem> - <listitem> - <para>Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab. - </para> - </listitem> - <listitem> - <para>Check the <guilabel>Use Evolution address books</guilabel> box.</para> - </listitem> + <listitem> + <para>Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice>. + </para> + </listitem> + <listitem> + <para>Select the <menuchoice><guimenu>Address book</guimenu></menuchoice> tab. + </para> + </listitem> + <listitem> + <para>Check the <guilabel>Use Evolution address books</guilabel> box.</para> + </listitem> + </orderedlist> + <para>Every address books you configured in Evolution will be now available in <application>SFLphone</application>. Please be sure you selected at least one address book.</para> + </sect2> + + <sect2 id="adressbook_options"> + <title>Available options</title> + <para>In <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Address book</guimenuitem></menuchoice>, you may select one or all of the following options:</para> + <variablelist> + <varlistentry> + <term><guilabel>Display contact photo if available</guilabel></term> + <listitem><para> + The contact photo will be displayed as a thumbnail beside the phone number. + </para></listitem> + </varlistentry> + <varlistentry> + <term><guilabel>Fields from Evolution's address book</guilabel></term> + <listitem><para> + You may use one or all of these following information from your contact.</para> + <itemizedlist> + <listitem><para>Work phone number</para></listitem> + <listitem><para>Home phone number</para></listitem> + <listitem><para>Mobile phone number</para></listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </sect2> + + <sect2 id="addressbook_use"> + <title>Using the address book</title> + <orderedlist> + <listitem> + <para>On the toolbar, click on the following button to display the address book window:</para> + + <!-- ==== Figure ==== --> + <figure id="addressbook-fig"> + <title>Address book toolbar button</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="figures/addressbook-button.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </figure> + <!-- ==== End of Figure ==== --> + </listitem> + + <listitem> + <para>Search for a contact</para> + </listitem> + + <listitem> + <para>New entries should have appeared in the window. Double click on it to call the contact. You may also <menuchoice><guimenu>Right click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> to modify the entry before calling.</para> + </listitem> </orderedlist> - <para>Every address books you configured in Evolution will be now available in <application>SFLphone</application>. Please be sure you selected at least one address book.</para> - </sect2> - - <sect2 id="adressbook_options"> - <title>Available options</title> - <para>In <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem><guimenuitem>Address book</guimenuitem></menuchoice>, you may select one or all of the following options:</para> - <variablelist> - <varlistentry> - <term><guilabel>Display contact photo if available</guilabel></term> - <listitem><para> - The contact photo will be displayed as a thumbnail beside the phone number. - </para></listitem> - </varlistentry> - <varlistentry> - <term><guilabel>Fields from Evolution's address book</guilabel></term> - <listitem><para> - You may use one or all of these following information from your contact.</para> - <itemizedlist> - <listitem><para>Work phone number</para></listitem> - <listitem><para>Home phone number</para></listitem> - <listitem><para>Mobile phone number</para></listitem> - </itemizedlist> - </listitem> - </varlistentry> - </variablelist> - </sect2> - - <sect2 id="addressbook_use"> - <title>Using the address book</title> - <orderedlist> - <listitem> - <para>On the toolbar, click on the following button to display the address book window:</para> - - <!-- ==== Figure ==== --> - <figure id="addressbook-fig"> - <title>Address book toolbar button</title> - <screenshot> - <mediaobject> - <imageobject> - <imagedata fileref="figures/addressbook-button.png" format="PNG"/> - </imageobject> - </mediaobject> - </screenshot> - </figure> - <!-- ==== End of Figure ==== --> - </listitem> - - <listitem> - <para>Search for a contact</para> - </listitem> - - <listitem> - <para>New entries should have appeared in the window. Double click on it to call the contact. You may also <menuchoice><guimenu>Right click</guimenu><guimenuitem>Edit before calling</guimenuitem></menuchoice> to modify the entry before calling.</para> - </listitem> - </orderedlist> - </sect2> + </sect2> </sect1> <sect1 id="preferences"> - <title>Preferences</title> + <title>Preferences</title> - <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice> to access the configuration panel.</para> - <para>Each section is detailed below.</para> + <para>Go to <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></menuchoice> to access the configuration panel.</para> + <para>Each section is detailed below.</para> - <sect2> - <title>General</title> - <para>This section provides the user general settings regarding the application.</para> - <sect3><title>Desktop Notifications</title> - <!-- ==== Figure ==== --> + <sect2> + <title>General</title> + <para>This section provides the user general settings regarding the application.</para> + <sect3><title>Desktop Notifications</title> + <!-- ==== Figure ==== --> <figure id="desktop-notif-settings-fig"> <title>Desktop notifications options</title> <screenshot> @@ -903,13 +903,13 @@ <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Enable notifications</guilabel></term> <listitem><para> - Both clients use their desktop environment notification system. If checked, you will receive desktop notifications for events such as incoming calls and system messages. - </para> - <figure id="notif-example-fig"> + Both clients use their desktop environment notification system. If checked, you will receive desktop notifications for events such as incoming calls and system messages. + </para> + <figure id="notif-example-fig"> <title>Example of an incoming call notification</title> <screenshot> <mediaobject> @@ -921,12 +921,12 @@ </figure> </listitem> </varlistentry> - <varlistentry> + <varlistentry> <term><guilabel>Enable voicemail notifications</guilabel></term> <listitem><para> - The voicemail notifications are handled separately. If checked, you will be notified with the number of unread voicemails for your accounts. - </para> - <figure id="voicemail-notif-fig"> + The voicemail notifications are handled separately. If checked, you will be notified with the number of unread voicemails for your accounts. + </para> + <figure id="voicemail-notif-fig"> <title>Example of a voicemail notification</title> <screenshot> <mediaobject> @@ -940,11 +940,11 @@ </listitem> </varlistentry> - </variablelist> - </sect3> + </variablelist> + </sect3> - <sect3><title>System Tray Icon</title> - <!-- ==== Figure ==== --> + <sect3><title>System Tray Icon</title> + <!-- ==== Figure ==== --> <figure id="systemtray-settings-fig"> <title>System tray options</title> <screenshot> @@ -958,57 +958,57 @@ <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Popup main window on incoming call</guilabel></term> <listitem><para> - If SFLphone is closed on the system tray, pops the main window up on foreground when receiving an incoming call. + If SFLphone is closed on the system tray, pops the main window up on foreground when receiving an incoming call. </para></listitem> </varlistentry> - <varlistentry> + <varlistentry> <term><guilabel>Never popup main window</guilabel></term> <listitem><para> - If SFLphone is closed on the system tray, never pops the main window up on foreground when receiving an incoming call. + If SFLphone is closed on the system tray, never pops the main window up on foreground when receiving an incoming call. </para></listitem> </varlistentry> - <varlistentry> + <varlistentry> <term><guilabel>Hide SFLphone window on startup</guilabel></term> <listitem><para> - On startup, SFLphone will go directly on the system tray. + On startup, SFLphone will go directly on the system tray. </para></listitem> </varlistentry> - </variablelist> + </variablelist> - </sect3> + </sect3> - <sect3><title>Calls history</title> - <!-- ==== Figure ==== --> - <figure id="callshistory-settings-fig"> - <title>Calls history options</title> - <screenshot> - <mediaobject> - <imageobject> - <imagedata fileref="figures/callshistory-settings.png" format="PNG"/> - </imageobject> - </mediaobject> - </screenshot> - </figure> - <!-- ==== End of Figure ==== --> + <sect3><title>Calls history</title> + <!-- ==== Figure ==== --> + <figure id="callshistory-settings-fig"> + <title>Calls history options</title> + <screenshot> + <mediaobject> + <imageobject> + <imagedata fileref="figures/callshistory-settings.png" format="PNG"/> + </imageobject> + </mediaobject> + </screenshot> + </figure> + <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Keep my history for at least n days</guilabel></term> <listitem><para> - If checked, calls will be kept up to N days in the history. You may select a custom number of days. Do not check it if you don't want to use this feature. + If checked, calls will be kept up to N days in the history. You may select a custom number of days. Do not check it if you don't want to use this feature. </para></listitem> </varlistentry> - </variablelist> - </sect3> + </variablelist> + </sect3> - <sect3><title>Configuration File</title> - <!-- ==== Figure ==== --> + <sect3><title>Configuration File</title> + <!-- ==== Figure ==== --> <figure id="configfile-settings-fig"> <title>Configuration file options</title> <screenshot> @@ -1021,44 +1021,44 @@ </figure> <!-- ==== End of Figure ==== --> - <variablelist> + <variablelist> <varlistentry> <term><guilabel>Store SIP credentials as MD5 hash</guilabel></term> <listitem><para> - If checked, your password information will be encrypted in the configuration file, instead of plain text. + If checked, your password information will be encrypted in the configuration file, instead of plain text. </para></listitem> </varlistentry> </variablelist> - - </sect3> - </sect2> - <sect2> - <title>Audio</title> - <para>TODO</para> - </sect2> + </sect3> + </sect2> - <sect2> - <title>Address book</title> + <sect2> + <title>Audio</title> + <para>TODO</para> + </sect2> + + <sect2> + <title>Address book</title> - <para>Refer to the <link linkend='addressbook'>Address books</link> section for more information.</para> - </sect2> + <para>Refer to the <link linkend='addressbook'>Address books</link> section for more information.</para> + </sect2> - <sect2> - <title>Hooks</title> - <para>TODO</para> - </sect2> + <sect2> + <title>Hooks</title> + <para>TODO</para> + </sect2> - <sect2> - <title>Network</title> - <para>TODO</para> - </sect2> + <sect2> + <title>Network</title> + <para>TODO</para> + </sect2> - <sect2> - <title>Direct IP calls</title> - <para>Refer to the <link linkend='directip'>Direct IP calls</link> section for more information.</para> - </sect2> + <sect2> + <title>Direct IP calls</title> + <para>Refer to the <link linkend='directip'>Direct IP calls</link> section for more information.</para> + </sect2> </sect1> diff --git a/gnome/doc/sflphone.omf.in b/gnome/doc/sflphone.omf.in index ace92a2e534db2242544dbcdd5cae9090cee43e6..7e1233aa8085d64557474cef3a11170ff01a8c23 100644 --- a/gnome/doc/sflphone.omf.in +++ b/gnome/doc/sflphone.omf.in @@ -2,7 +2,7 @@ <omf> <resource> <creator> - sflphoneteam@savoirfairelinux.com + sflphoneteam@savoirfairelinux.com </creator> <maintainer> emmanuel.milou@savoirfairelinux.com @@ -26,5 +26,5 @@ <language code="C"/> <relation seriesid="00e1b4a0-74d3-6e38-acf3-04cbb6e855c540"/> <rights type="GNU FDL" license.version="1.1" holder="Savoir-faire Linux Inc"/> - </resource> + </resource> </omf> diff --git a/gnome/man/Makefile.am b/gnome/man/Makefile.am index 5101b6dc40b4a8e32f0daca6935eedb3dbc4ab3d..90a426f5beca3209a3ec5d86156128e769d130fd 100644 --- a/gnome/man/Makefile.am +++ b/gnome/man/Makefile.am @@ -16,7 +16,7 @@ all: $(MANPAGES) SUFFIXES=.pod .1 .pod.1: - $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ + $(POD2MAN) --section=$(SECTION) --release=@VERSION@ --center "" $< > $@ clean-local: rm -rf *.1 diff --git a/gnome/man/README.manpages b/gnome/man/README.manpages index f794a0d25710dcf35e30464afcd383a13832712a..75f6044095a3fdc0a0d28c7da43a15a636613f83 100644 --- a/gnome/man/README.manpages +++ b/gnome/man/README.manpages @@ -5,7 +5,7 @@ Procedure: - Creating the manual pages under POD format. A template is available in this directory. - Convert the pdo file in a manpage file: pod2man --section=1 --release=$(VERSION) --center "" myapp.pod > myapp.1 - - You are done! You can read the manpage file with: + - You are done! You can read the manpage file with: groff -man -Tascii myapp.1 diff --git a/gnome/man/sflphone-client-gnome.pod b/gnome/man/sflphone-client-gnome.pod index 471c8b7c93f4bf8ca1467c13611ce3090d53f98e..284aad9cc0c90b2e85c021f00da72f0e5c15d1b0 100644 --- a/gnome/man/sflphone-client-gnome.pod +++ b/gnome/man/sflphone-client-gnome.pod @@ -4,7 +4,7 @@ sflphone-client-gnome - SIP and IAX2 compatible voice over IP softphone GTK+ cli =head1 SYNOPSIS -sflphone-client-gnome +sflphone-client-gnome =head1 DESCRIPTION diff --git a/gnome/src/Makefile.am b/gnome/src/Makefile.am index bded0118565e9d790f6c94e3dc8edb98f6600023..3e673bfde457f4c7e9c3e8d994d6b346abc26040 100644 --- a/gnome/src/Makefile.am +++ b/gnome/src/Makefile.am @@ -3,7 +3,7 @@ include ../globals.mak bin_PROGRAMS = sflphone-client-gnome SUBDIRS = config contacts dbus widget icons - + NOFIFY_LIBS = -lnotify X11_LIBS = -lX11 LD_LIBS = -ldl @@ -43,7 +43,7 @@ sflphone_client_gnome_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) $(NOTIFY_C # add symbolic link install-exec-local: echo $(prefix); echo $(bindir); echo $(datadir); echo $(libdir) - cd $(DESTDIR)$(bindir); ln -sf sflphone-client-gnome sflphone + cd $(DESTDIR)$(bindir); ln -sf sflphone-client-gnome sflphone uninstall-local: -test -h $(DESTDIR)$(bindir)/sflphone && rm $(DESTDIR)$(bindir)/sflphone diff --git a/gnome/src/callable_obj.c b/gnome/src/callable_obj.c index d381941927b30ee9a6600be0a17e5550de048067..83449c6490f80acef63bfe5b9e11b4534a996f82 100644 --- a/gnome/src/callable_obj.c +++ b/gnome/src/callable_obj.c @@ -234,7 +234,7 @@ gchar* get_call_duration(callable_obj_t *obj) return g_strdup_printf("<small>Duration:</small> %.2ld:%.2ld" , duration/60 , duration%60); } -static +static void add_to_hashtable(GHashTable *hashtable, const gchar *key, const gchar *value) { g_hash_table_insert(hashtable, g_strdup(key), g_strdup(value)); diff --git a/gnome/src/config/audioconf.c b/gnome/src/config/audioconf.c index 84d6b42c68a7d901519e2bedfd2c80a829a71722..d449d3e51a9c91659e18d85a08d2dea9663e18d1 100644 --- a/gnome/src/config/audioconf.c +++ b/gnome/src/config/audioconf.c @@ -159,7 +159,7 @@ select_active_output_audio_device() // Select active output device on server gchar **devices = dbus_get_current_audio_devices_index(); - + int currentDeviceIndex = atoi(devices[0]); DEBUG("audio device index for output = %d", currentDeviceIndex); diff --git a/gnome/src/contacts/addressbook.h b/gnome/src/contacts/addressbook.h index 49bcb7cc4cd7969141a3c75aaf68ea7ab15baca4..ce1ad477aa044e5e1428ac284d3c2bc356f48663 100644 --- a/gnome/src/contacts/addressbook.h +++ b/gnome/src/contacts/addressbook.h @@ -84,9 +84,9 @@ struct AddrBookHandle { void (*search) (void (*search_cb)(GList *, gpointer), GtkEntry *, AddressBook_Config *); GSList *(*get_books_data)(gchar **); book_data_t *(*get_book_data_by_uid)(gchar *); - void (*set_current_book)(gchar *); + void (*set_current_book)(gchar *); void (*set_search_type)(AddrbookSearchType); - void (*search_cb)(GList *, gpointer); + void (*search_cb)(GList *, gpointer); }; #endif diff --git a/gnome/src/dbus/README b/gnome/src/dbus/README index 963bb0cf5e8a05a646a5d4cc6aa7c6bfef397035..6c1c538245af830d21efa5c41b96655da3ac9ecb 100644 --- a/gnome/src/dbus/README +++ b/gnome/src/dbus/README @@ -8,4 +8,4 @@ These files are generated by dbus-binding-tool using the server's files named *- These files dbus call wrapper functions to simplify access to dbus API. -UPDATE: These files, and { marshaller.c, marshaller.h } are now created by the build system at the compilation time +UPDATE: These files, and { marshaller.c, marshaller.h } are now created by the build system at the compilation time diff --git a/gnome/src/dbus/callmanager-introspec.xml b/gnome/src/dbus/callmanager-introspec.xml index 62535f06029b78689ae8629ff981f3f0ef8dcbae..0682fb319c33f663548c74b9ef0db686ed3b94f1 100644 --- a/gnome/src/dbus/callmanager-introspec.xml +++ b/gnome/src/dbus/callmanager-introspec.xml @@ -206,7 +206,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/> @@ -225,7 +225,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="callID" direction="in"> <tp:docstring> @@ -304,7 +304,7 @@ conferences. <tp:rationale>To update client status, one should use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> + with provided conference IDs.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -324,7 +324,7 @@ </arg> </method> - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> <tp:docstring> Tells whether or not a call is being recorded. </tp:docstring> @@ -342,7 +342,7 @@ <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> <tp:docstring> - Once after starting recording for the first time, this signal is emited to + Once after starting recording for the first time, this signal is emited to provide the recorded file path to client application. </tp:docstring> <arg type="s" name="callID" /> @@ -383,7 +383,7 @@ <method name="getCallList" tp:name-for-bindings="getCallList"> <tp:docstring> Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -455,7 +455,7 @@ <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> <tp:docstring> - Notify clients that a new text message has been received. + Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> <arg type="s" name="from" /> @@ -464,7 +464,7 @@ <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> <tp:docstring> - <p>Notify of a change in a call state.</p> + <p>Notify of a change in a call state.</p> <p>The client must subscribe to this signal.</p> </tp:docstring> <arg type="s" name="callID"> @@ -474,7 +474,7 @@ </arg> <arg type="s" name="state" > <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>INCOMING: Initial state of incoming calls</li> <li>RINGING: Initial state of received outgoing call</li> @@ -502,7 +502,7 @@ </arg> <arg type="s" name="state"> <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>ACTIVE_ATTACHED: SFLphone user is participating to this conference</li> @@ -636,7 +636,7 @@ The SIP or IAX2 message code </tp:docstring> </arg> - </signal> + </signal> <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> <tp:docstring> @@ -656,7 +656,7 @@ <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> <tp:docstring> - <p>Notify clients of a volume level change.</p> + <p>Notify clients of a volume level change.</p> <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> </tp:docstring> <arg type="s" name="device"> @@ -692,7 +692,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a conference.</p> + for this call only. It does not apply for a conference.</p> <p>A conference can be considered to be secured if and only if each participant is secured.</p> </tp:docstring> @@ -702,7 +702,7 @@ <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> <tp:added version="0.9.7"/> <tp:docstring> - <p>Sinal sent to notify that SDES session failed.</p> + <p>Sinal sent to notify that SDES session failed.</p> <p>Media transmission is not encrypted.</p> </tp:docstring> <arg type="s" name="callID" /> diff --git a/gnome/src/dbus/shortcutsmanager-introspec.xml b/gnome/src/dbus/shortcutsmanager-introspec.xml index 89d39efb192ecd3fe0604f080a95ff58129368d1..c6491e2d99b969456330868fe8a957e8dccfb178 100644 --- a/gnome/src/dbus/shortcutsmanager-introspec.xml +++ b/gnome/src/dbus/shortcutsmanager-introspec.xml @@ -1,32 +1,32 @@ <?xml version="1.0" ?> <node name="/org/sflphone/SFLphone"> <interface name="org.sflphone.SFLphone.ContactManager"> - + <!-- Contacts related methods --> - + <!-- Called by the client to get all saved contacts --> <method name="getContacts"> <arg type="s" name="accountID" direction="in"/> <arg type="a{ss}" name="details" direction="out"/> </method> - + <!-- Called by the client to save all local contacts --> <method name="setContacts"> <arg type="s" name="accountID" direction="in"/> <arg type="a{ss}" name="details" direction="in"/> </method> - + <!-- /////////////////////// --> <!-- Presence related methods --> - + <!-- Called by the client to set its new presence status --> <method name="setPresence"> <arg type="s" name="accountID" direction="in"/> <arg type="s" name="presence" direction="in"/> <arg type="s" name="additionalInfo" direction="in"/> </method> - + <!-- Called by the daemon when a contact presence changes --> <method name="setContactPresence"> <arg type="s" name="accountID" direction="in"/> diff --git a/gnome/src/icons/README b/gnome/src/icons/README index 064443d612404e0796f8bbf0ae9269b5b029cbd7..04c2bdcef15b042407aa658d5d7f2adf95b16a1a 100644 --- a/gnome/src/icons/README +++ b/gnome/src/icons/README @@ -1,6 +1,6 @@ To add a svg icon as a stock icon: -1. Dump the raw data from the svg: +1. Dump the raw data from the svg: gdk-pixbuf-csource --raw --name=gnome_stock_example example.svg 2. Copy the output in the file sflphone-client-gnome/src/icons/pixmaps_data.h @@ -11,4 +11,4 @@ gdk-pixbuf-csource --raw --name=gnome_stock_example example.svg 4. Add the icon to the factory. In sflphone-client-gnome/src/icons/icon_factory.c, function register_sflphone_stock_icons, add the line: add_icon (factory, GTK_STOCK_EXAMPLE, gnome_stock_example, GTK_ICON_SIZE_SMALL_TOOLBAR) - You may now use this icon in the code just like a GTK stock icon, the stock id being GTK_STOCK_EXAMPLE. + You may now use this icon in the code just like a GTK stock icon, the stock id being GTK_STOCK_EXAMPLE. diff --git a/gnome/src/unused.h b/gnome/src/unused.h index 24a0ac2e40553a92badabed036fdb285057ee365..94aed5f1c5587c4f07e5e1801626b08623a5e1d7 100644 --- a/gnome/src/unused.h +++ b/gnome/src/unused.h @@ -30,6 +30,6 @@ #ifndef UNUSED_H_ -#define UNUSED __attribute__((__unused__)) +#define UNUSED __attribute__((__unused__)) #endif /* UNUSED_H_ */ diff --git a/kde/.gitignore b/kde/.gitignore index 4d847ba9567132816fab72da9ea72c383aad5c61..f7fbb2166c9079e94c632c05085efbacb980a37f 100755 --- a/kde/.gitignore +++ b/kde/.gitignore @@ -11,7 +11,7 @@ doc/index.cache.bz2 src/sflphone-client-kde src/sflphone-client-kde.shell #po/ -#po/* +#po/* #doc/ #man/ #data/ diff --git a/kde/Doxyfile b/kde/Doxyfile index acc49e116bc24b1c83b26f4303b981f780c09a56..374a8da38ce1f2fba9c83d92049bd04588ef8614 100755 --- a/kde/Doxyfile +++ b/kde/Doxyfile @@ -6,7 +6,7 @@ DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = sflphone_kde PROJECT_NUMBER = 0.1 -OUTPUT_DIRECTORY = +OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English BRIEF_MEMBER_DESC = YES @@ -26,7 +26,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = YES STRIP_FROM_PATH = /home/jquentin/ -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO QT_AUTOBRIEF = NO @@ -35,7 +35,7 @@ DETAILS_AT_TOP = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 8 -ALIASES = +ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO OPTIMIZE_FOR_FORTRAN = NO @@ -74,13 +74,13 @@ GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = +ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO SHOW_FILES = YES SHOW_NAMESPACES = YES -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -90,7 +90,7 @@ WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_NO_PARAMDOC = NO WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- @@ -154,16 +154,16 @@ FILE_PATTERNS = *.c \ *.xpm \ *.dox RECURSIVE = yes -EXCLUDE = +EXCLUDE = EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXCLUDE_SYMBOLS = -EXAMPLE_PATH = +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing @@ -181,29 +181,29 @@ VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO GENERATE_DOCSET = NO DOCSET_FEEDNAME = "Doxygen generated docs" DOCSET_BUNDLE_ID = org.doxygen.Project HTML_DYNAMIC_SECTIONS = NO -CHM_FILE = -HHC_LOCATION = -QTHELP_FILE = -QTHELP_CONFIG = -DOXYGEN2QTHELP_LOC = +CHM_FILE = +HHC_LOCATION = +QTHELP_FILE = +QTHELP_CONFIG = +DOXYGEN2QTHELP_LOC = GENERATE_CHI = NO -CHM_INDEX_ENCODING = +CHM_INDEX_ENCODING = BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO @@ -220,8 +220,8 @@ LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = +EXTRA_PACKAGES = +LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = NO @@ -233,8 +233,8 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- @@ -247,8 +247,8 @@ MAN_LINKS = NO #--------------------------------------------------------------------------- GENERATE_XML = yes XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = +XML_SCHEMA = +XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output @@ -260,36 +260,36 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = -EXPAND_AS_DEFINED = +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -TAGFILES = +TAGFILES = GENERATE_TAGFILE = sflphone_kde.tag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES -MSCGEN_PATH = +MSCGEN_PATH = HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO DOT_FONTNAME = FreeSans -DOT_FONTPATH = +DOT_FONTPATH = CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES @@ -302,8 +302,8 @@ CALLER_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = +DOT_PATH = +DOTFILE_DIRS = DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 1000 DOT_TRANSPARENT = YES @@ -311,6 +311,6 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO diff --git a/kde/cmake/FindQt4.cmake b/kde/cmake/FindQt4.cmake index e05949f552379d788c79733d0e296340b49518d6..25aab9aab48767951ce5e9ed442041103b2e9ff2 100755 --- a/kde/cmake/FindQt4.cmake +++ b/kde/cmake/FindQt4.cmake @@ -1,13 +1,13 @@ # - Find QT 4 -# Original module modified by Jeremy Quentin +# Original module modified by Jeremy Quentin # Function qt4_add_dbus_interface modified to take compile properties. # This module can be used to find Qt4. # The most important issue is that the Qt4 qmake is available via the system path. # This qmake is then used to detect basically everything else. -# This module defines a number of key variables and macros. -# First is QT_USE_FILE which is the path to a CMake file that can be included -# to compile Qt 4 applications and libraries. By default, the QtCore and QtGui -# libraries are loaded. This behavior can be changed by setting one or more +# This module defines a number of key variables and macros. +# First is QT_USE_FILE which is the path to a CMake file that can be included +# to compile Qt 4 applications and libraries. By default, the QtCore and QtGui +# libraries are loaded. This behavior can be changed by setting one or more # of the following variables to true before doing INCLUDE(${QT_USE_FILE}): # QT_DONT_USE_QTCORE # QT_DONT_USE_QTGUI @@ -47,12 +47,12 @@ # # There are also some files that need processing by some Qt tools such as moc # and uic. Listed below are macros that may be used to process those files. -# +# # macro QT4_WRAP_CPP(outfiles inputfile ... OPTIONS ...) # create moc code from a list of files containing Qt class with -# the Q_OBJECT declaration. Per-direcotry preprocessor definitions +# the Q_OBJECT declaration. Per-direcotry preprocessor definitions # are also added. Options may be given to moc, such as those found -# when executing "moc -help". +# when executing "moc -help". # # macro QT4_WRAP_UI(outfiles inputfile ... OPTIONS ...) # create code from a list of Qt designer ui files. @@ -72,23 +72,23 @@ # macro QT4_AUTOMOC(sourcefile1 sourcefile2 ... ) # This macro is still experimental. # It can be used to have moc automatically handled. -# So if you have the files foo.h and foo.cpp, and in foo.h a +# So if you have the files foo.h and foo.cpp, and in foo.h a # a class uses the Q_OBJECT macro, moc has to run on it. If you don't # want to use QT4_WRAP_CPP() (which is reliable and mature), you can insert # #include "foo.moc" # in foo.cpp and then give foo.cpp as argument to QT4_AUTOMOC(). This will the # scan all listed files at cmake-time for such included moc files and if it finds -# them cause a rule to be generated to run moc at build time on the +# them cause a rule to be generated to run moc at build time on the # accompanying header file foo.h. # If a source file has the SKIP_AUTOMOC property set it will be ignored by this macro. # # macro QT4_ADD_DBUS_INTERFACE(outfiles interface basename) -# create a the interface header and implementation files with the -# given basename from the given interface xml file and add it to +# create a the interface header and implementation files with the +# given basename from the given interface xml file and add it to # the list of sources # # macro QT4_ADD_DBUS_INTERFACES(outfiles inputfile ... ) -# create the interface header and implementation files +# create the interface header and implementation files # for all listed interface xml files # the name will be automatically determined from the name of the xml file # @@ -101,18 +101,18 @@ # # macro QT4_GENERATE_DBUS_INTERFACE( header [interfacename] ) # generate the xml interface file from the given header. -# If the optional argument interfacename is omitted, the name of the +# If the optional argument interfacename is omitted, the name of the # interface file is constructed from the basename of the header with # the suffix .xml appended. # -# macro QT4_CREATE_TRANSLATION( qm_files directories ... sources ... +# macro QT4_CREATE_TRANSLATION( qm_files directories ... sources ... # ts_files ... OPTIONS ...) # out: qm_files # in: directories sources ts_files # options: flags to pass to lupdate, such as -extensions to specify # extensions for a directory scan. # generates commands to create .ts (vie lupdate) and .qm -# (via lrelease) - files from directories and/or sources. The ts files are +# (via lrelease) - files from directories and/or sources. The ts files are # created and/or updated in the source tree (unless given with full paths). # The qm files are generated in the build tree. # Updating the translations can be done by adding the qm_files @@ -166,33 +166,33 @@ # The QT_USE_FILE will also define QT_DEBUG and QT_NO_DEBUG # to fit your current build type. Those are not contained # in QT_DEFINITIONS. -# -# QT_INCLUDES List of paths to all include directories of +# +# QT_INCLUDES List of paths to all include directories of # Qt4 QT_INCLUDE_DIR and QT_QTCORE_INCLUDE_DIR are # always in this variable even if NOTFOUND, # all other INCLUDE_DIRS are # only added if they are found. # You do not need to use this if you include QT_USE_FILE. -# +# # # Include directories for the Qt modules are listed here. # You do not need to use these variables if you include QT_USE_FILE. # # QT_INCLUDE_DIR Path to "include" of Qt4 -# QT_QT_INCLUDE_DIR Path to "include/Qt" -# QT_QT3SUPPORT_INCLUDE_DIR Path to "include/Qt3Support" -# QT_QTASSISTANT_INCLUDE_DIR Path to "include/QtAssistant" -# QT_QTCORE_INCLUDE_DIR Path to "include/QtCore" -# QT_QTDESIGNER_INCLUDE_DIR Path to "include/QtDesigner" +# QT_QT_INCLUDE_DIR Path to "include/Qt" +# QT_QT3SUPPORT_INCLUDE_DIR Path to "include/Qt3Support" +# QT_QTASSISTANT_INCLUDE_DIR Path to "include/QtAssistant" +# QT_QTCORE_INCLUDE_DIR Path to "include/QtCore" +# QT_QTDESIGNER_INCLUDE_DIR Path to "include/QtDesigner" # QT_QTDESIGNERCOMPONENTS_INCLUDE_DIR Path to "include/QtDesigner" -# QT_QTDBUS_INCLUDE_DIR Path to "include/QtDBus" -# QT_QTGUI_INCLUDE_DIR Path to "include/QtGui" -# QT_QTMOTIF_INCLUDE_DIR Path to "include/QtMotif" -# QT_QTNETWORK_INCLUDE_DIR Path to "include/QtNetwork" -# QT_QTNSPLUGIN_INCLUDE_DIR Path to "include/QtNsPlugin" -# QT_QTOPENGL_INCLUDE_DIR Path to "include/QtOpenGL" -# QT_QTSQL_INCLUDE_DIR Path to "include/QtSql" -# QT_QTXML_INCLUDE_DIR Path to "include/QtXml" +# QT_QTDBUS_INCLUDE_DIR Path to "include/QtDBus" +# QT_QTGUI_INCLUDE_DIR Path to "include/QtGui" +# QT_QTMOTIF_INCLUDE_DIR Path to "include/QtMotif" +# QT_QTNETWORK_INCLUDE_DIR Path to "include/QtNetwork" +# QT_QTNSPLUGIN_INCLUDE_DIR Path to "include/QtNsPlugin" +# QT_QTOPENGL_INCLUDE_DIR Path to "include/QtOpenGL" +# QT_QTSQL_INCLUDE_DIR Path to "include/QtSql" +# QT_QTXML_INCLUDE_DIR Path to "include/QtXml" # QT_QTSVG_INCLUDE_DIR Path to "include/QtSvg" # QT_QTSCRIPT_INCLUDE_DIR Path to "include/QtScript" # QT_QTTEST_INCLUDE_DIR Path to "include/QtTest" @@ -201,11 +201,11 @@ # QT_QTWEBKIT_INCLUDE_DIR Path to "include/QtWebKit" # QT_QTXMLPATTERNS_INCLUDE_DIR Path to "include/QtXmlPatterns" # QT_PHONON_INCLUDE_DIR Path to "include/phonon" -# +# # QT_LIBRARY_DIR Path to "lib" of Qt4 -# +# # QT_PLUGINS_DIR Path to "plugins" for Qt4 -# +# # # The Qt toolkit may contain both debug and release libraries. # In that case, the following library variables will contain both. @@ -235,7 +235,7 @@ # QT_QTWEBKIT_LIBRARY The QtWebKit library # QT_QTXMLPATTERNS_LIBRARY The QtXmlPatterns library # QT_PHONON_LIBRARY The phonon library -# +# # also defined, but NOT for general use are # QT_MOC_EXECUTABLE Where to find the moc tool. # QT_UIC_EXECUTABLE Where to find the uic tool. @@ -245,20 +245,20 @@ # QT_DBUSXML2CPP_EXECUTABLE Where to find the qdbusxml2cpp tool. # QT_LUPDATE_EXECUTABLE Where to find the lupdate tool. # QT_LRELEASE_EXECUTABLE Where to find the lrelease tool. -# +# # QT_DOC_DIR Path to "doc" of Qt4 # QT_MKSPECS_DIR Path to "mkspecs" of Qt4 # # -# These are around for backwards compatibility +# These are around for backwards compatibility # they will be set # QT_WRAP_CPP Set true if QT_MOC_EXECUTABLE is found # QT_WRAP_UI Set true if QT_UIC_EXECUTABLE is found -# +# # These variables do _NOT_ have any effect anymore (compared to FindQt.cmake) # QT_MT_REQUIRED Qt4 is now always multithreaded -# -# These variables are set to "" Because Qt structure changed +# +# These variables are set to "" Because Qt structure changed # (They make no sense in Qt4) # QT_QT_LIBRARY Qt-Library is now split @@ -294,13 +294,13 @@ MACRO(QT_QUERY_QMAKE outvar invar) # information. Use the same variable for both stdout and stderr # to make sure we get the output on all platforms. EXECUTE_PROCESS(COMMAND ${QT_QMAKE_EXECUTABLE} - WORKING_DIRECTORY + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake OUTPUT_VARIABLE _qmake_query_output RESULT_VARIABLE _qmake_result ERROR_VARIABLE _qmake_query_output ) - - FILE(REMOVE_RECURSE + + FILE(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmpQmake") IF(_qmake_result) @@ -324,7 +324,7 @@ FIND_PROGRAM(QT_QMAKE_EXECUTABLE NAMES qmake qmake4 qmake-qt4 PATHS IF (QT_QMAKE_EXECUTABLE) SET(QT4_QMAKE_FOUND FALSE) - + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) # check for qt3 qmake and then try and find qmake4 or qmake-qt4 in the path @@ -336,7 +336,7 @@ IF (QT_QMAKE_EXECUTABLE) $ENV{QTDIR}/bin ) IF(QT_QMAKE_EXECUTABLE) - EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} + EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} ARGS "-query QT_VERSION" OUTPUT_VARIABLE QTVERSION) ENDIF(QT_QMAKE_EXECUTABLE) ENDIF("${QTVERSION}" MATCHES "Unknown") @@ -401,7 +401,7 @@ IF (QT4_QMAKE_FOUND) MESSAGE("Warning: ${QT_LIBRARY_DIR_TMP} does NOT exist, Qt must NOT be installed correctly.") ENDIF(EXISTS "${QT_LIBRARY_DIR_TMP}") ENDIF(NOT QT_LIBRARY_DIR) - + IF (APPLE) IF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) SET(QT_USE_FRAMEWORKS ON @@ -410,10 +410,10 @@ IF (QT4_QMAKE_FOUND) SET(QT_USE_FRAMEWORKS OFF CACHE BOOL "Set to ON if Qt build uses frameworks.") ENDIF (EXISTS ${QT_LIBRARY_DIR}/QtCore.framework) - + MARK_AS_ADVANCED(QT_USE_FRAMEWORKS) ENDIF (APPLE) - + # ask qmake for the binary dir IF (QT_LIBRARY_DIR AND NOT QT_BINARY_DIR) EXEC_PROGRAM(${QT_QMAKE_EXECUTABLE} @@ -427,8 +427,8 @@ IF (QT4_QMAKE_FOUND) # ask qmake for the include dir IF (QT_LIBRARY_DIR AND NOT QT_HEADERS_DIR) EXEC_PROGRAM( ${QT_QMAKE_EXECUTABLE} - ARGS "-query QT_INSTALL_HEADERS" - OUTPUT_VARIABLE qt_headers ) + ARGS "-query QT_INSTALL_HEADERS" + OUTPUT_VARIABLE qt_headers ) # make sure we have / and not \ as qmake gives on windows FILE(TO_CMAKE_PATH "${qt_headers}" qt_headers) SET(QT_HEADERS_DIR ${qt_headers} CACHE INTERNAL "") @@ -589,9 +589,9 @@ IF (QT4_QMAKE_FOUND) # Set QT_QTMOTIF_INCLUDE_DIR IF(Q_WS_X11) - FIND_PATH(QT_QTMOTIF_INCLUDE_DIR QtMotif - PATHS - ${QT_INCLUDE_DIR}/QtMotif + FIND_PATH(QT_QTMOTIF_INCLUDE_DIR QtMotif + PATHS + ${QT_INCLUDE_DIR}/QtMotif NO_DEFAULT_PATH ) ENDIF(Q_WS_X11) @@ -666,7 +666,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtDBus.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTASSISTANTCLIENT_INCLUDE_DIR FIND_PATH(QT_QTASSISTANTCLIENT_INCLUDE_DIR QAssistantClient PATHS @@ -674,7 +674,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtAssistant.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTHELP_INCLUDE_DIR FIND_PATH(QT_QTHELP_INCLUDE_DIR QtHelp PATHS @@ -682,7 +682,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtHelp.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTWEBKIT_INCLUDE_DIR FIND_PATH(QT_QTWEBKIT_INCLUDE_DIR QtWebKit PATHS @@ -690,7 +690,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtWebKit.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_QTXMLPATTERNS_INCLUDE_DIR FIND_PATH(QT_QTXMLPATTERNS_INCLUDE_DIR QtXmlPatterns PATHS @@ -698,7 +698,7 @@ IF (QT4_QMAKE_FOUND) ${QT_LIBRARY_DIR}/QtXmlPatterns.framework/Headers NO_DEFAULT_PATH ) - + # Set QT_PHONON_INCLUDE_DIR FIND_PATH(QT_PHONON_INCLUDE_DIR phonon PATHS @@ -778,7 +778,7 @@ IF (QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTSCRIPT_LIBRARY_DEBUG NAMES QtScript_debug QtScriptd QtScriptd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) IF( NOT QT_QTCORE_LIBRARY_DEBUG AND NOT QT_QTCORE_LIBRARY_RELEASE ) - + # try dropping a hint if trying to use Visual Studio with Qt built by mingw IF(QT_LIBRARY_DIR AND MSVC) IF(EXISTS ${QT_LIBRARY_DIR}/libqtmain.a) @@ -810,7 +810,7 @@ IF (QT4_QMAKE_FOUND) FIND_LIBRARY(QT_QTMAIN_LIBRARY_DEBUG NAMES qtmaind PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) ENDIF(WIN32) - + # Set QT_QTASSISTANTCLIENT_LIBRARY FIND_LIBRARY(QT_QTASSISTANTCLIENT_LIBRARY_RELEASE NAMES QtAssistantClient QtAssistantClient4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTASSISTANTCLIENT_LIBRARY_DEBUG NAMES QtAssistantClient_debug QtAssistantClientd QtAssistantClientd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) @@ -832,7 +832,7 @@ IF (QT4_QMAKE_FOUND) # Set QT_QTXMLPATTERNS_LIBRARY FIND_LIBRARY(QT_QTXMLPATTERNS_LIBRARY_RELEASE NAMES QtXmlPatterns QtXmlPatterns4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_QTXMLPATTERNS_LIBRARY_DEBUG NAMES QtXmlPatterns_debug QtXmlPatternsd QtXmlPatternsd4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) - + # Set QT_PHONON_LIBRARY FIND_LIBRARY(QT_PHONON_LIBRARY_RELEASE NAMES phonon phonon4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) FIND_LIBRARY(QT_PHONON_LIBRARY_DEBUG NAMES phonon_debug phonond phonond4 PATHS ${QT_LIBRARY_DIR} NO_DEFAULT_PATH) @@ -891,7 +891,7 @@ IF (QT4_QMAKE_FOUND) ENDMACRO (_QT4_ADJUST_LIB_VARS) - # Set QT_xyz_LIBRARY variable and add + # Set QT_xyz_LIBRARY variable and add # library include path to QT_INCLUDES _QT4_ADJUST_LIB_VARS(QTCORE) _QT4_ADJUST_LIB_VARS(QTGUI) @@ -923,11 +923,11 @@ IF (QT4_QMAKE_FOUND) IF(WIN32) _QT4_ADJUST_LIB_VARS(QTMAIN) ENDIF(WIN32) - + ####################################### # - # Check the executables of Qt + # Check the executables of Qt # ( moc, uic, rcc ) # ####################################### @@ -938,15 +938,15 @@ IF (QT4_QMAKE_FOUND) QT_QUERY_QMAKE(QT_UIC_EXECUTABLE_INTERNAL "QMAKE_UIC") # make sure we have / and not \ as qmake gives on windows - FILE(TO_CMAKE_PATH + FILE(TO_CMAKE_PATH "${QT_MOC_EXECUTABLE_INTERNAL}" QT_MOC_EXECUTABLE_INTERNAL) # make sure we have / and not \ as qmake gives on windows - FILE(TO_CMAKE_PATH + FILE(TO_CMAKE_PATH "${QT_UIC_EXECUTABLE_INTERNAL}" QT_UIC_EXECUTABLE_INTERNAL) - SET(QT_MOC_EXECUTABLE + SET(QT_MOC_EXECUTABLE ${QT_MOC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The moc executable") - SET(QT_UIC_EXECUTABLE + SET(QT_UIC_EXECUTABLE ${QT_UIC_EXECUTABLE_INTERNAL} CACHE FILEPATH "The uic executable") FIND_PROGRAM(QT_UIC3_EXECUTABLE @@ -955,19 +955,19 @@ IF (QT4_QMAKE_FOUND) NO_DEFAULT_PATH ) - FIND_PROGRAM(QT_RCC_EXECUTABLE + FIND_PROGRAM(QT_RCC_EXECUTABLE NAMES rcc PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH ) - FIND_PROGRAM(QT_DBUSCPP2XML_EXECUTABLE + FIND_PROGRAM(QT_DBUSCPP2XML_EXECUTABLE NAMES qdbuscpp2xml PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH ) - FIND_PROGRAM(QT_DBUSXML2CPP_EXECUTABLE + FIND_PROGRAM(QT_DBUSXML2CPP_EXECUTABLE NAMES qdbusxml2cpp PATHS ${QT_BINARY_DIR} NO_DEFAULT_PATH @@ -1013,15 +1013,15 @@ IF (QT4_QMAKE_FOUND) IF ("${_currentArg}" STREQUAL "OPTIONS") SET(_QT4_DOING_OPTIONS TRUE) ELSE ("${_currentArg}" STREQUAL "OPTIONS") - IF(_QT4_DOING_OPTIONS) + IF(_QT4_DOING_OPTIONS) LIST(APPEND ${_qt4_options} "${_currentArg}") ELSE(_QT4_DOING_OPTIONS) LIST(APPEND ${_qt4_files} "${_currentArg}") ENDIF(_QT4_DOING_OPTIONS) ENDIF ("${_currentArg}" STREQUAL "OPTIONS") - ENDFOREACH(_currentArg) + ENDFOREACH(_currentArg) ENDMACRO (QT4_EXTRACT_OPTIONS) - + # macro used to create the names of output files preserving relative dirs MACRO (QT4_MAKE_OUTPUT_FILE infile prefix ext outfile ) STRING(LENGTH ${CMAKE_CURRENT_BINARY_DIR} _binlength) @@ -1050,7 +1050,7 @@ IF (QT4_QMAKE_FOUND) FOREACH(_current ${_inc_DIRS}) SET(${_moc_flags} ${${_moc_flags}} "-I${_current}") ENDFOREACH(_current ${_inc_DIRS}) - + GET_DIRECTORY_PROPERTY(_defines COMPILE_DEFINITIONS) FOREACH(_current ${_defines}) SET(${_moc_flags} ${${_moc_flags}} "-D${_current}") @@ -1087,15 +1087,15 @@ IF (QT4_QMAKE_FOUND) DEPENDS ${infile} ${_moc_working_dir} VERBATIM) - ELSE (WIN32) + ELSE (WIN32) ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_MOC_EXECUTABLE} ARGS ${moc_flags} ${moc_options} -o ${outfile} ${infile} - DEPENDS ${infile}) + DEPENDS ${infile}) ENDIF (WIN32) ENDMACRO (QT4_CREATE_MOC_COMMAND) - + MACRO (QT4_GENERATE_MOC infile outfile ) QT4_GET_MOC_FLAGS(moc_flags) GET_FILENAME_COMPONENT(abs_infile ${infile} ABSOLUTE) @@ -1150,7 +1150,7 @@ IF (QT4_QMAKE_FOUND) GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) GET_FILENAME_COMPONENT(rc_path ${infile} PATH) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) - # parse file for dependencies + # parse file for dependencies # all files are absolute paths or relative to the location of the qrc file FILE(READ "${infile}" _RC_FILE_CONTENTS) STRING(REGEX MATCHALL "<file[^<]+" _RC_FILES "${_RC_FILE_CONTENTS}") @@ -1179,39 +1179,39 @@ IF (QT4_QMAKE_FOUND) SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h) SET(_impl ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.cpp) SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc) - + GET_SOURCE_FILE_PROPERTY(_nonamespace ${_interface} NO_NAMESPACE) IF ( _nonamespace ) SET(_params -N -m) ELSE ( _nonamespace ) SET(_params -m) ENDIF ( _nonamespace ) - + GET_SOURCE_FILE_PROPERTY(_classname ${_interface} CLASSNAME) IF ( _classname ) SET(_params ${_params} -c ${_classname}) ENDIF ( _classname ) - + GET_SOURCE_FILE_PROPERTY(_include ${_interface} INCLUDE) IF ( _include ) SET(_params ${_params} -i ${_include}) ENDIF ( _include ) - + ADD_CUSTOM_COMMAND(OUTPUT ${_impl} ${_header} COMMAND ${QT_DBUSXML2CPP_EXECUTABLE} ${_params} -p ${_basename} ${_infile} DEPENDS ${_infile}) - + SET_SOURCE_FILES_PROPERTIES(${_impl} PROPERTIES SKIP_AUTOMOC TRUE) - + QT4_GENERATE_MOC(${_header} ${_moc}) - + SET(${_sources} ${${_sources}} ${_impl} ${_header} ${_moc}) MACRO_ADD_FILE_DEPENDENCIES(${_impl} ${_moc}) - + ENDMACRO(QT4_ADD_DBUS_INTERFACE) - - + + MACRO(QT4_ADD_DBUS_INTERFACES _sources) FOREACH (_current_FILE ${ARGN}) GET_FILENAME_COMPONENT(_infile ${_current_FILE} ABSOLUTE) @@ -1221,29 +1221,29 @@ IF (QT4_QMAKE_FOUND) QT4_ADD_DBUS_INTERFACE(${_sources} ${_infile} ${_basename}interface) ENDFOREACH (_current_FILE) ENDMACRO(QT4_ADD_DBUS_INTERFACES) - - + + MACRO(QT4_GENERATE_DBUS_INTERFACE _header) # _customName ) SET(_customName "${ARGV1}") GET_FILENAME_COMPONENT(_in_file ${_header} ABSOLUTE) GET_FILENAME_COMPONENT(_basename ${_header} NAME_WE) - + IF (_customName) SET(_target ${CMAKE_CURRENT_BINARY_DIR}/${_customName}) ELSE (_customName) SET(_target ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.xml) ENDIF (_customName) - + ADD_CUSTOM_COMMAND(OUTPUT ${_target} COMMAND ${QT_DBUSCPP2XML_EXECUTABLE} ${_in_file} > ${_target} DEPENDS ${_in_file} ) ENDMACRO(QT4_GENERATE_DBUS_INTERFACE) - - + + MACRO(QT4_ADD_DBUS_ADAPTOR _sources _xml_file _include _parentClass) # _optionalBasename ) GET_FILENAME_COMPONENT(_infile ${_xml_file} ABSOLUTE) - + SET(_optionalBasename "${ARGV4}") IF (_optionalBasename) SET(_basename ${_optionalBasename} ) @@ -1363,7 +1363,7 @@ IF (QT4_QMAKE_FOUND) ###################################### # if the includes,libraries,moc,uic and rcc are found then we have it - IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND + IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE AND QT_QTCORE_LIBRARY) SET( QT4_FOUND "YES" ) INCLUDE(FindPackageMessage) @@ -1376,9 +1376,9 @@ IF (QT4_QMAKE_FOUND) IF( Qt4_FIND_REQUIRED) MESSAGE( FATAL_ERROR "Qt libraries, includes, moc, uic or/and rcc NOT found!") ENDIF( Qt4_FIND_REQUIRED) - ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND + ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE AND QT_QTCORE_LIBRARY) - + SET(QT_FOUND ${QT4_FOUND}) @@ -1397,13 +1397,13 @@ IF (QT4_QMAKE_FOUND) SET(QT_EDITION_DESKTOPLIGHT 1) ENDIF("${QT_EDITION}" MATCHES "DesktopLight") - + ############################################### # - # configuration/system dependent settings + # configuration/system dependent settings # ############################################### - + # find dependencies for some Qt modules # when doing builds against a static Qt, they are required # when doing builds against a shared Qt, they are sometimes not required @@ -1417,18 +1417,18 @@ IF (QT4_QMAKE_FOUND) SET(QT_QTOPENGL_LIB_DEPENDENCIES "") SET(QT_QTDBUS_LIB_DEPENDENCIES "") SET(QT_QTHELP_LIB_DEPENDENCIES ${QT_QTCLUCENE_LIBRARY}) - + # build using shared Qt needs -DQT_DLL IF(NOT QT_CONFIG MATCHES "static") # warning currently only qconfig.pri on Windows potentially contains "static" # so QT_DLL might not get defined properly on other platforms. SET(QT_DEFINITIONS ${QT_DEFINITIONS} -DQT_DLL) ENDIF(NOT QT_CONFIG MATCHES "static") - + # QtOpenGL dependencies QT_QUERY_QMAKE(QMAKE_LIBS_OPENGL "QMAKE_LIBS_OPENGL") SET (QT_QTOPENGL_LIB_DEPENDENCIES ${QT_QTOPENGL_LIB_DEPENDENCIES} ${QMAKE_LIBS_OPENGL}) - + IF(Q_WS_X11) # X11 libraries Qt absolutely depends on QT_QUERY_QMAKE(QT_LIBS_X11 "QMAKE_LIBS_X11") @@ -1445,25 +1445,25 @@ IF (QT4_QMAKE_FOUND) QT_QUERY_QMAKE(QT_LIBS_THREAD "QMAKE_LIBS_THREAD") SET(QT_QTCORE_LIB_DEPENDENCIES ${QT_QTCORE_LIB_DEPENDENCIES} ${QT_LIBS_THREAD}) - + QT_QUERY_QMAKE(QMAKE_LIBS_DYNLOAD "QMAKE_LIBS_DYNLOAD") SET (QT_QTCORE_LIB_DEPENDENCIES ${QT_QTCORE_LIB_DEPENDENCIES} ${QMAKE_LIBS_DYNLOAD}) ENDIF(Q_WS_X11) - + IF(Q_WS_WIN) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} imm32 winmm) SET(QT_QTCORE_LIB_DEPENDENCIES ${QT_QTCORE_LIB_DEPENDENCIES} ws2_32) ENDIF(Q_WS_WIN) - + IF(Q_WS_MAC) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} "-framework Carbon") - + # Qt 4.0, 4.1, 4.2 use QuickTime IF(QT_VERSION_MINOR LESS 3) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} "-framework QuickTime") ENDIF(QT_VERSION_MINOR LESS 3) - + # Qt 4.2+ use AppKit IF(QT_VERSION_MINOR GREATER 1) SET(QT_QTGUI_LIB_DEPENDENCIES ${QT_QTGUI_LIB_DEPENDENCIES} "-framework AppKit") @@ -1474,7 +1474,7 @@ IF (QT4_QMAKE_FOUND) ####################################### # - # compatibility settings + # compatibility settings # ####################################### # Backwards compatibility for CMake1.4 and 1.2 @@ -1484,7 +1484,7 @@ IF (QT4_QMAKE_FOUND) SET( QT_QT_LIBRARY "") ELSE(QT4_QMAKE_FOUND) - + SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH "Invalid qmake found" FORCE) IF(Qt4_FIND_REQUIRED) IF(QT4_INSTALLED_VERSION_TOO_OLD) @@ -1497,7 +1497,7 @@ ELSE(QT4_QMAKE_FOUND) MESSAGE(STATUS "The installed Qt version ${QTVERSION} is too old, at least version ${QT_MIN_VERSION} is required") ENDIF(QT4_INSTALLED_VERSION_TOO_OLD AND NOT Qt4_FIND_QUIETLY) ENDIF(Qt4_FIND_REQUIRED) - + ENDIF (QT4_QMAKE_FOUND) - + diff --git a/kde/cmake/TargetDistclean.cmake b/kde/cmake/TargetDistclean.cmake index eeb8861e42aa2eba1d5b17b3abff7776cbcd161d..d061713d0d6aa20b22eeddddbfe9f1bf1934872c 100755 --- a/kde/cmake/TargetDistclean.cmake +++ b/kde/cmake/TargetDistclean.cmake @@ -1,4 +1,4 @@ - + # add custom target distclean # cleans and removes cmake generated files etc. # Jan Woetzel 04/2003 @@ -70,13 +70,13 @@ IF (UNIX) po/Makefile po/CMakeFiles ) - + SET(DISTCLEANED_REC - *.cmake + *.cmake Makefile CMakeFiles ) - + ADD_CUSTOM_COMMAND( DEPENDS clean COMMENT "distribution clean" @@ -84,7 +84,7 @@ IF (UNIX) ARGS -Rf CMakeTmp CMakeFiles ${DISTCLEANED} `find ./po -maxdepth 2 -name 'Makefile'` `find ./po -maxdepth 2 -name 'CMakeFiles'` `find ./po -maxdepth 2 -name '*.gmo'` `find ./po -maxdepth 2 -name '*.cmake'` # COMMAND find # ARGS "./po ( -name 'Makefile' -o -name 'CMakeFiles' -o -name '*.gmo' -o -name '*.cmake' ) -maxdepth 2 -exec rm -rf {} \;" -# COMMAND rm +# COMMAND rm # ARGS -Rf `find ./po -maxdepth 2 -name 'Makefile'` # COMMAND find # ARGS ./po -maxdepth 2 -name 'CMakeFiles' -exec rm -rf {} \; diff --git a/kde/config.sh b/kde/config.sh index 8c37d45a0da5d06c46f9ac0533dd5428a5a269ad..e8dd0b490356fb206cfb7f150c44b415e5214ebc 100755 --- a/kde/config.sh +++ b/kde/config.sh @@ -16,7 +16,7 @@ fi cd build # prefix=`echo $@ | grep -q "--prefix="` -# +# # if $prefix # then options=$@" -DCMAKE_INSTALL_PREFIX="$prefix_env @@ -37,7 +37,7 @@ autocmd cmake $options .. echo "**********************************************" -echo "Configuration done!" +echo "Configuration done!" echo "Run \`cd build' to go to the build directory." echo "Then run \`make'to build the software." echo "**********************************************" diff --git a/kde/doc/advanced-use.docbook b/kde/doc/advanced-use.docbook index 770d78766d507486e50a4083af7ca822ca465aae..0a7e2f8d20c64e4d912dd64c335b9e9729030d62 100755 --- a/kde/doc/advanced-use.docbook +++ b/kde/doc/advanced-use.docbook @@ -11,7 +11,7 @@ </chapterinfo> <title>Advanced use of &sflphone-client-kde;</title> - + <sect1 id="advanced-use-hooks"> <title>Hooks</title> @@ -33,7 +33,7 @@ <title> Phone number formatting </title> <para> This feature permits you to add the chosen prefix at the beginning of the phone number you are calling. - </para> + </para> </sect2> </sect1> diff --git a/kde/doc/basic-use.docbook b/kde/doc/basic-use.docbook index d089a2c123ab15ec744592a021f726121b9d49c5..3de63acbf1695f29930d3c6833426a13d4cd02f3 100755 --- a/kde/doc/basic-use.docbook +++ b/kde/doc/basic-use.docbook @@ -16,10 +16,10 @@ <para>The main window is composed of three main parts : the &actions-p;, the &screen-p; and the &dialpad-p; (although you can hide the two last ones in the Settings menu). The screen part has three positions. The ¤t-w; : it is the one you are by default, it shows the current, dialing and incoming calls. -The &history-w; : it shows the past calls and enables you to call someone you called earlier or from whom you missed a call. +The &history-w; : it shows the past calls and enables you to call someone you called earlier or from whom you missed a call. The &address-w; : it enables you to look in the address book of KDE and to call somebody if his number is available. -To switch between those windows, click on the history and address book buttons. If none of these buttons is triggerred, you are currently in the ¤t-w;, if the history button is triggerred, you are in the &history-w;, and if the address book button is triggerred, you are in the &address-w;. +To switch between those windows, click on the history and address book buttons. If none of these buttons is triggerred, you are currently in the ¤t-w;, if the history button is triggerred, you are in the &history-w;, and if the address book button is triggerred, you are in the &address-w;. </para> @@ -59,7 +59,7 @@ To switch between those windows, click on the history and address book buttons. <para> If you have your KAddressBook configured and filled with some phone numbers, you can go to the &address-w;. The detailed use of this window and its features (search...) is described in this section. Once you are in it, find the name of the person you want to call with the right phone number (&pt-home;, &pt-work; or &pt-cell;), then select it and click on the Accept button in the &actions-p;'s toolbar or in the "actions" menu, or type enter on your keyboard, or double-click on the number.</para> -<para>The screen will come back to the ¤t-w; with a new ringing call with the number you chose in the &address-w;.</para> +<para>The screen will come back to the ¤t-w; with a new ringing call with the number you chose in the &address-w;.</para> <para> Note that you can also right click and select Edit before call to modify the number in the address book before calling it.</para> diff --git a/kde/doc/common-use.docbook b/kde/doc/common-use.docbook index 06b4667fd0155a4070198edbf2a8f0937823d47f..4e1011ea4f46f4d96df57ac36dbce13f682cf9f3 100755 --- a/kde/doc/common-use.docbook +++ b/kde/doc/common-use.docbook @@ -11,7 +11,7 @@ </chapterinfo> <title>Common use of &sflphone-client-kde;</title> - + <sect1 id="common-use-current"> <title>Handling a call</title> @@ -84,7 +84,7 @@ <sect2 id="common-use-address-config"> <title>Configuring &sflphone-client-kde;</title> -<para> You can now go to the Configuration Dialog to choose how &sflphone; will handle your searches in the address book. This step is optionnal though, because the default settings enable you to use the feature without more setup. +<para> You can now go to the Configuration Dialog to choose how &sflphone; will handle your searches in the address book. This step is optionnal though, because the default settings enable you to use the feature without more setup. </para> <para> The maximum results setting enables you to choose how many phone numbers can be displayed when you look for a contact. KDE address book can contain lots of contacts, especially if connected to LDAP directories, and you don't want to see thousands of contacts displayed as soon as you type a letter to search for.</para> @@ -98,7 +98,7 @@ <sect2 id="common-use-address-use"> <title>Search in Address Book</title> -<para> Now that everything is set up, you can go to the &address-w;, then type some letters of the name you want to phone. You will see all the phone numbers that match your request and their type. When the resulting list's size is greater than the maximum chosen in configuration, it will only display the beginning of the list with the max size, and will display a warning message to let you know that your wanted number may be in the rest of the list and so not displayed. In that case you should type some more letters to improve precision of the search. Once you found the right number, double click on the item to call it. +<para> Now that everything is set up, you can go to the &address-w;, then type some letters of the name you want to phone. You will see all the phone numbers that match your request and their type. When the resulting list's size is greater than the maximum chosen in configuration, it will only display the beginning of the list with the max size, and will display a warning message to let you know that your wanted number may be in the rest of the list and so not displayed. In that case you should type some more letters to improve precision of the search. Once you found the right number, double click on the item to call it. </para> </sect2> @@ -116,7 +116,7 @@ <sect2 id="common-use-config-address"> <title>General settings</title> -<para> Here you can choose the capacity of the call history. +<para> Here you can choose the capacity of the call history. </para> </sect2> diff --git a/kde/doc/credits.docbook b/kde/doc/credits.docbook index c8ed6a2d52dca7842cc2ac84c87dd73d2a8d89c7..188f7cee5a1dd2718c31c19d5cdc9a1792715f4f 100755 --- a/kde/doc/credits.docbook +++ b/kde/doc/credits.docbook @@ -14,7 +14,7 @@ <listitem><para>Titus Laska<email>titus.laska@gmx.de</email> Some updates and additions</para></listitem> <listitem><para>Pino Toscano <email>pino@kde.org</email></para></listitem> </itemizedlist>--> - + <itemizedlist> <title>Program:</title> <listitem> @@ -22,7 +22,7 @@ </para> </listitem> </itemizedlist> - + <itemizedlist> <title>Documentation:</title> <listitem> diff --git a/kde/doc/index.docbook b/kde/doc/index.docbook index 5bf4cfa21d6bc2433964c81cd9dc02b11667ec93..dc19819589eceb5c8c86a917e99865f633555f2c 100755 --- a/kde/doc/index.docbook +++ b/kde/doc/index.docbook @@ -16,7 +16,7 @@ <!ENTITY sflphone "SFLphone"> <!ENTITY % addindex "IGNORE"> <!ENTITY % English "INCLUDE" > - + <!-- chapters in separate docbook files --> <!ENTITY introduction SYSTEM "introduction.docbook"> <!ENTITY getting-started SYSTEM "getting-started.docbook"> @@ -28,10 +28,10 @@ <book lang="&language;"> <bookinfo> - <title>&sflphone-client-kde; User Manual</title> + <title>&sflphone-client-kde; User Manual</title> <date>2009-05-10</date> <releaseinfo>&sflphonerelease;</releaseinfo> - + <authorgroup> <author> <firstname>Jérémy</firstname> @@ -46,7 +46,7 @@ <year>2009</year> <holder>Savoir faire linux</holder> </copyright> - + <legalnotice>&FDLNotice;</legalnotice> <abstract> @@ -60,12 +60,12 @@ <keyword>phone</keyword> <keyword>enterprise</keyword> </keywordset> - + </bookinfo> &introduction; -&getting-started; +&getting-started; &basic-use; &common-use; &advanced-use; diff --git a/kde/doc/introduction.docbook b/kde/doc/introduction.docbook index cbf8c1a26337a5004504588972aa07b71cb215b5..dfb1fc478f41e35ad98dab49ad0cddd6aff73622 100755 --- a/kde/doc/introduction.docbook +++ b/kde/doc/introduction.docbook @@ -10,5 +10,5 @@ It provides functions like call transfer, call hold, multiple lines, multiple ac It is SIP and IAX2 compatible. &sflphone; audio layer is build upon a native ALSA interface and and a native PulseAudio interface. </para> - + </chapter> diff --git a/kde/doc/wizard-welcome.png b/kde/doc/wizard-welcome.png index d732be6eec55cee995448b7d22e25f072a18c6c0..d234a38d33950a1c25d0c7070f50d0eeb12ddfc9 100755 Binary files a/kde/doc/wizard-welcome.png and b/kde/doc/wizard-welcome.png differ diff --git a/kde/man/README.manpages b/kde/man/README.manpages index f794a0d25710dcf35e30464afcd383a13832712a..75f6044095a3fdc0a0d28c7da43a15a636613f83 100755 --- a/kde/man/README.manpages +++ b/kde/man/README.manpages @@ -5,7 +5,7 @@ Procedure: - Creating the manual pages under POD format. A template is available in this directory. - Convert the pdo file in a manpage file: pod2man --section=1 --release=$(VERSION) --center "" myapp.pod > myapp.1 - - You are done! You can read the manpage file with: + - You are done! You can read the manpage file with: groff -man -Tascii myapp.1 diff --git a/kde/man/sflphone-client-kde.pod b/kde/man/sflphone-client-kde.pod index 559160f429bbabf2d079efdc27c29d90241de5cf..7736b13111507e56357124332c4d4a0ef97c5f48 100755 --- a/kde/man/sflphone-client-kde.pod +++ b/kde/man/sflphone-client-kde.pod @@ -4,7 +4,7 @@ sflphone-client-kde - SIP and IAX2 compatible voice over IP softphone KDE client =head1 SYNOPSIS -sflphone-client-kde +sflphone-client-kde =head1 DESCRIPTION diff --git a/kde/plasma/dataengine/CMakeLists.txt b/kde/plasma/dataengine/CMakeLists.txt index 4aa0ad6cf6d726055511b53402ba5381fec27644..867b10900d910300e50955897785df5fb46c5f9a 100644 --- a/kde/plasma/dataengine/CMakeLists.txt +++ b/kde/plasma/dataengine/CMakeLists.txt @@ -2,29 +2,29 @@ project(plasma-sflphone) find_package(KDE4 REQUIRED) include(KDE4Defaults) - + add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ) - -set(sflphone_engine_SRCS + +set(sflphone_engine_SRCS sflphonEngine.cpp ) - + kde4_add_plugin(plasma_engine_sflphone ${sflphone_engine_SRCS}) target_link_libraries(plasma_engine_sflphone qtsflphone ${KDE4_KDECORE_LIBS} ${KDE4_PLASMA_LIBS}) - + install(TARGETS plasma_engine_sflphone DESTINATION ${PLUGIN_INSTALL_DIR}) - + install(FILES plasma-engine-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) diff --git a/kde/plasma/dataengine/plasma-engine-sflphone.desktop b/kde/plasma/dataengine/plasma-engine-sflphone.desktop index f26be6c79b819ffa5cf273b89c5d2f3c6a125f17..e9b9775f61b940f4ad92c5ba783baa0a3c773578 100644 --- a/kde/plasma/dataengine/plasma-engine-sflphone.desktop +++ b/kde/plasma/dataengine/plasma-engine-sflphone.desktop @@ -2,7 +2,7 @@ Name=sflphone Comment=An SFLPhone IP soft-phone frontend Type=Service - + X-KDE-ServiceTypes=Plasma/DataEngine X-KDE-Library=plasma_engine_sflphone X-Plasma-EngineName=sflphone diff --git a/kde/plasma/dataengine/plasma-engine-testtime.desktop b/kde/plasma/dataengine/plasma-engine-testtime.desktop index 1012d8986e559964fc550cd1b6dda5fbda4ca8a6..b2e369f4bbeddfa2876ebbf4457053c9be71a0b2 100644 --- a/kde/plasma/dataengine/plasma-engine-testtime.desktop +++ b/kde/plasma/dataengine/plasma-engine-testtime.desktop @@ -2,7 +2,7 @@ Name=sflphone Comment=An SFLPhone IP soft-phone frontend Type=Service - + X-KDE-ServiceTypes=Plasma/DataEngine X-KDE-Library=plasma_engine_sflphone X-Plasma-EngineName=sflphone diff --git a/kde/plasma/dataengine/sflphonEngine.cpp b/kde/plasma/dataengine/sflphonEngine.cpp index 741a86ae8ea9bd5f04ea799e19591f685ec23e65..4c7c51c90c4d4a4ccb464cece20ccbc1963e76f8 100644 --- a/kde/plasma/dataengine/sflphonEngine.cpp +++ b/kde/plasma/dataengine/sflphonEngine.cpp @@ -1,5 +1,5 @@ #include "sflphonEngine.h" - + #include <Plasma/DataContainer> #include "../../src/lib/Call.h" @@ -8,7 +8,7 @@ #include "../../src/lib/configurationmanager_interface_singleton.h" #include "../../src/lib/callmanager_interface_singleton.h" #include "../../src/lib/sflphone_const.h" - + SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) : Plasma::DataEngine(parent, args) { @@ -16,7 +16,7 @@ SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) m_pModel = new CallModelConvenience(CallModelConvenience::ActiveCall); m_pModel->initCall(); m_pModel->initHistory(); - + CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); connect(m_pModel , SIGNAL( callStateChanged(Call*)) , this , SLOT(callStateChangedSignal(Call*) )); @@ -24,7 +24,7 @@ SFLPhoneEngine::SFLPhoneEngine(QObject* parent, const QVariantList& args) connect(&callManager , SIGNAL( conferenceCreated(Call*)) , this , SLOT(conferenceCreatedSignal(Call*) )); connect(&callManager , SIGNAL( conferenceChanged(Call*)) , this , SLOT(conferenceChangedSignal(Call*) )); } - + bool SFLPhoneEngine::sourceRequestEvent(const QString &name) { if ( name == "history" ) { @@ -54,7 +54,7 @@ QStringList SFLPhoneEngine::sources() const { return toReturn; } -QString SFLPhoneEngine::getCallStateName(call_state state) +QString SFLPhoneEngine::getCallStateName(call_state state) { if (state == CALL_STATE_INCOMING) { return I18N_NOOP("Ringing (in)"); @@ -118,10 +118,10 @@ void SFLPhoneEngine::updateConferenceList() void SFLPhoneEngine::updateContacts() { - + } -void SFLPhoneEngine::updateInfo() +void SFLPhoneEngine::updateInfo() { qDebug() << "Currentaccount: " << m_pModel->getCurrentAccountId(); setData("info", I18N_NOOP("Account"), m_pModel->getCurrentAccountId()); @@ -165,9 +165,9 @@ void SFLPhoneEngine::voiceMailNotifySignal(const QString& accountId, int count) //TODO } -void SFLPhoneEngine::accountChanged() +void SFLPhoneEngine::accountChanged() { - + } K_EXPORT_PLASMA_DATAENGINE(sflphone, SFLPhoneEngine) diff --git a/kde/plasma/dataengine/sflphonEngine.h b/kde/plasma/dataengine/sflphonEngine.h index 549c0c16734199898311ef744fdfd3b3f5c1a618..9a234f254094761e2d0e6db71e2968f05999f0da 100644 --- a/kde/plasma/dataengine/sflphonEngine.h +++ b/kde/plasma/dataengine/sflphonEngine.h @@ -17,10 +17,10 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * **************************************************************************/ - + #ifndef SFLPHONEENGINE_H #define SFLPHONEENGINE_H - + #include <Plasma/DataEngine> #include <QHash> @@ -40,7 +40,7 @@ class SFLPhoneEngine : public Plasma::DataEngine protected: bool sourceRequestEvent(const QString& name); bool updateSourceEvent(const QString& source); - + private: QHash<QString, HashStringString > historyCall ; QHash<QString, HashStringString > currentCall ; @@ -62,5 +62,5 @@ class SFLPhoneEngine : public Plasma::DataEngine void voiceMailNotifySignal( const QString& accountId, int count ); void accountChanged(); }; - + #endif // SFLPHONEENGINE_H diff --git a/kde/plasma/plasmoid/CMakeLists.txt b/kde/plasma/plasmoid/CMakeLists.txt index f7d4a1aefa6cc7e55e59d9f60aaadbe0cce8275b..7ecfe0d700dc67285e6acfd734ade92d96c7bbd9 100644 --- a/kde/plasma/plasmoid/CMakeLists.txt +++ b/kde/plasma/plasmoid/CMakeLists.txt @@ -1,19 +1,19 @@ # Project Needs a name ofcourse project(sflphone-plasmoid) - + # Find the required Libaries find_package(KDE4 REQUIRED) include(KDE4Defaults) - + add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ) - + # We add our source code here -set(tutorial1_SRCS +set(tutorial1_SRCS SFLPhonePlasmoid.cpp CallItem.cpp ConferenceItem.cpp @@ -44,18 +44,18 @@ kde4_add_plugin(plasma_applet_sflphone ${tutorial1_SRCS}) target_link_libraries(plasma_applet_sflphone qtsflphone ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS}) - + install(TARGETS plasma_applet_sflphone DESTINATION ${PLUGIN_INSTALL_DIR}) - + install(FILES plasma-applet-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) #set(sflphone-plasmoid_SRCS # SFLPhonePlasmoid.cpp) -# +# #kde4_add_plugin(plasma_applet_sflphone ${sflphone-plasmoid_SRCS}) #target_link_libraries(plasma_applet_sflphone ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${KDE4_KDEUI_LIBS}) -# +# #install(TARGETS plasma_applet_sflphone DESTINATION ${PLUGIN_INSTALL_DIR}) #install(FILES plasma-applet-sflphone.desktop DESTINATION ${SERVICES_INSTALL_DIR}) diff --git a/kde/plasma/plasmoid/CallItem.cpp b/kde/plasma/plasmoid/CallItem.cpp index b795a529704ed6d1fb54ea14490e97f642d4a301..339b3c81732c36744be9a95e16fe2d9a49bf85ce 100644 --- a/kde/plasma/plasmoid/CallItem.cpp +++ b/kde/plasma/plasmoid/CallItem.cpp @@ -10,7 +10,7 @@ CallItem::CallItem() : frmDate(0), parentItem(0) { setMinimumSize(QSizeF(24,64)); setMaximumSize(QSizeF(10000000,64)); - + frmCallerName = new Plasma::Frame(this); frmCallerNumber = new Plasma::Frame(this); frmStateIcon = new Plasma::Frame(this); @@ -33,7 +33,7 @@ CallItem::CallItem() : frmDate(0), parentItem(0) mainLayout->addItem(frmCallerName,0,1); mainLayout->addItem(frmCallerNumber,1,1); - + } QString CallItem::getCallId() diff --git a/kde/plasma/plasmoid/CallItem.h b/kde/plasma/plasmoid/CallItem.h index 78a53a8920430ab9f4d66b2fa9b9aa80bb7f0837..bf55b76d0f396708caaecc35b98749c81ed7738d 100644 --- a/kde/plasma/plasmoid/CallItem.h +++ b/kde/plasma/plasmoid/CallItem.h @@ -20,7 +20,7 @@ class CallItem : public Plasma::Frame, public ViewItem void setDate(int date); ViewItem* parent(); void setParent(ViewItem* parent); - bool isConference() + bool isConference() { return false; } @@ -33,7 +33,7 @@ class CallItem : public Plasma::Frame, public ViewItem QString callId; ViewItem* parentItem; QGraphicsGridLayout* mainLayout; - + }; #endif diff --git a/kde/plasma/plasmoid/ConferenceItem.cpp b/kde/plasma/plasmoid/ConferenceItem.cpp index 3b4c1cef9c9516254cb4cf97a7b61a427a8bfae8..04bdf6f3c3ebdc4daf521dedb200c6f1b89b2e9a 100644 --- a/kde/plasma/plasmoid/ConferenceItem.cpp +++ b/kde/plasma/plasmoid/ConferenceItem.cpp @@ -12,7 +12,7 @@ ConferenceItem::ConferenceItem() : Plasma::Frame() conferenceLayout = new QGraphicsLinearLayout(Qt::Vertical); conferenceLayout->addItem(header); - + setLayout(conferenceLayout); } diff --git a/kde/plasma/plasmoid/ConferenceItem.h b/kde/plasma/plasmoid/ConferenceItem.h index a2676b77978abc524e36687d812d41e47bdc3a39..1ca61d170bc9adb932f5b0655e72590e9fc80e3a 100644 --- a/kde/plasma/plasmoid/ConferenceItem.h +++ b/kde/plasma/plasmoid/ConferenceItem.h @@ -12,13 +12,13 @@ class ConferenceItem : public Plasma::Frame, public ViewItem { public: ConferenceItem(); - bool isConference() + bool isConference() { return true; } void setCallList(QList<CallItem*> list); void setConfId(QString value); - + private: QString confId; QGraphicsLinearLayout* conferenceLayout; diff --git a/kde/plasma/plasmoid/DialPage.cpp b/kde/plasma/plasmoid/DialPage.cpp index 0c1e20e490ea4277fa210e34b5131515ff0f866d..6b9906f338c8ac162ba815a22a3c6e7a1934c4cd 100644 --- a/kde/plasma/plasmoid/DialPage.cpp +++ b/kde/plasma/plasmoid/DialPage.cpp @@ -8,7 +8,7 @@ #include <QHBoxLayout> #include <QDebug> -DialPage::DialPage() +DialPage::DialPage() { QGraphicsGridLayout* mainLayout = new QGraphicsGridLayout(); setLayout(mainLayout); @@ -20,19 +20,19 @@ DialPage::DialPage() //currentNumber->setEnabledBorders(FrameSvg::EnabledBorders::Raised); mainLayout->addItem(currentNumber,0,0,1,6); - QString numbers[12] = - {"1", "2", "3", - "4", "5", "6", - "7", "8", "9", + QString numbers[12] = + {"1", "2", "3", + "4", "5", "6", + "7", "8", "9", "*", "0", "#"}; - - QString texts[12] = - { "" , "abc", "def" , - "ghi" , "jkl", "mno" , - "pqrs", "tuv", "wxyz", + + QString texts[12] = + { "" , "abc", "def" , + "ghi" , "jkl", "mno" , + "pqrs", "tuv", "wxyz", "" , "" , "" }; - - for(int i = 0 ; i < 12 ; i++) { + + for(int i = 0 ; i < 12 ; i++) { DialButton* newButton = new DialButton(this); newButton->setMinimumHeight(40); newButton->setLetter(numbers[i]); @@ -44,12 +44,12 @@ DialPage::DialPage() Plasma::PushButton* newButton = new Plasma::PushButton(this); newButton->setText("Call"); newButton->setIcon(KIcon("/usr/share/kde4/apps/sflphone-plasmoid/icons/outgoing.svg")); - mainLayout->addItem(newButton,5,0,1,3); + mainLayout->addItem(newButton,5,0,1,3); Plasma::PushButton* cancelButton = new Plasma::PushButton(this); cancelButton->setText("Cancel"); cancelButton->setIcon(KIcon("/usr/share/kde4/apps/sflphone-plasmoid/icons/hang_up.svg")); - mainLayout->addItem(cancelButton,5,3,1,3); + mainLayout->addItem(cancelButton,5,3,1,3); connect(newButton, SIGNAL(clicked()), this, SLOT(call())); connect(cancelButton, SIGNAL(clicked()), this, SLOT(cancel())); @@ -61,14 +61,14 @@ void DialPage::charTyped(QString value) currentNumber->setText(currentNumber2); } -void DialPage::call() +void DialPage::call() { emit call(currentNumber2); currentNumber2 = ""; currentNumber->setText("Dial"); } -void DialPage::cancel() +void DialPage::cancel() { currentNumber2 = ""; currentNumber->setText("Dial"); diff --git a/kde/plasma/plasmoid/DialPage.h b/kde/plasma/plasmoid/DialPage.h index 5652ea802bd36832374c0dd2a5f1ab03841370d1..88e553c77d93f8980e4d8532918c488eefaaf6ca 100644 --- a/kde/plasma/plasmoid/DialPage.h +++ b/kde/plasma/plasmoid/DialPage.h @@ -4,7 +4,7 @@ #include <Plasma/Frame> #include <Plasma/PushButton> -class DialButton : public Plasma::PushButton +class DialButton : public Plasma::PushButton { Q_OBJECT @@ -25,7 +25,7 @@ class DialButton : public Plasma::PushButton QString letter; }; -class DialPage : public Plasma::Frame +class DialPage : public Plasma::Frame { Q_OBJECT public: @@ -35,15 +35,15 @@ class DialPage : public Plasma::Frame void charTyped(QString value); void call(); void cancel(); - + private: Plasma::Frame* currentNumber; QString currentNumber2; - + signals: void typed(QString); void call(QString); - + }; #endif diff --git a/kde/plasma/plasmoid/MainWidget.cpp b/kde/plasma/plasmoid/MainWidget.cpp index b71ae991786d647e5263cbd4719509d6c76238c7..ff3a9567c57950ff54d3a236312257faba64f090 100644 --- a/kde/plasma/plasmoid/MainWidget.cpp +++ b/kde/plasma/plasmoid/MainWidget.cpp @@ -15,7 +15,7 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon frmHistory = new Plasma::Frame ( this ); historyLayout = new QGraphicsLinearLayout ( Qt::Vertical ); historyScrollArea = new Plasma::ScrollWidget ( this ); - + mainLayout()->addItem(mainTabs); //connect(mainTabs, SIGNAL(currentChanged(int)), this, SLOT(modeChanged(int))); @@ -28,15 +28,15 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon frmContact->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); contactScrollArea->setWidget(frmContact); - + frmHistory->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); frmHistory->setLayout(historyLayout); - + historyScrollArea->setWidget(frmHistory); dialPage = new DialPage(); connect(dialPage, SIGNAL(call(QString)), this, SLOT(call(QString))); - + QGraphicsLinearLayout* callTabLayout = new QGraphicsLinearLayout( Qt::Vertical ); QGraphicsLinearLayout* historyTabLayout = new QGraphicsLinearLayout( Qt::Vertical ); QGraphicsLinearLayout* contactTabLayout = new QGraphicsLinearLayout( Qt::Vertical ); @@ -53,13 +53,13 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon mainTabs->addTab( KIcon("list-add") , "", addTabLayout ); //mainLayout()->addItem(callTabLayout); - + //mainLayout()->addItem(callScrollArea); //mainLayout()->addItem(historyScrollArea); //mainLayout()->addItem(contactScrollArea); - + initPos = frmCalls->pos(); - + frmCalls->setPos ( initPos ); frmHistory->setPos( initPos ); frmContact->setPos( initPos ); @@ -67,7 +67,7 @@ MainWidget::MainWidget() : Plasma::Frame(), m_mainLayout(0), frmCalls(0), frmCon setMinimumSize(285,390); } -void MainWidget::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) +void MainWidget::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) { if ((source == "calls") && (frmCalls)) { QHash<QString, QVariant> value = data; diff --git a/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp b/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp index d13e72ebab3033659d304637b09f4031f2c1b8d3..293df0fa9ab29501536eb13062dbb9a25388d780 100644 --- a/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp +++ b/kde/plasma/plasmoid/SFLPhonePlasmoid.cpp @@ -6,19 +6,19 @@ #include <KPushButton> #include "../../src/lib/CallModel.h" - + SFLPhonePlasmoid::SFLPhonePlasmoid(QObject* parent, const QVariantList& args) : Plasma::PopupApplet(parent, args), extenderItem(0), callInit(false), requierAttention(false) { //m_svg.setImagePath("widgets/background"); setBackgroundHints(DefaultBackground); - + CallModelConvenience::init(); - + setMinimumSize(24,24); } -void SFLPhonePlasmoid::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) +void SFLPhonePlasmoid::dataUpdated(const QString& source, const Plasma::DataEngine::Data& data) { mainWidget->dataUpdated(source, data); @@ -28,12 +28,12 @@ void SFLPhonePlasmoid::dataUpdated(const QString& source, const Plasma::DataEngi callInit = true; } } - + SFLPhonePlasmoid::~SFLPhonePlasmoid() { } - + void SFLPhonePlasmoid::init() { //contactEngine = dataEngine("akonadi"); @@ -41,7 +41,7 @@ void SFLPhonePlasmoid::init() sflphoneEngine->connectSource("calls", this,0/*Update only if something happen*/); sflphoneEngine->connectSource("info", this,0/*Update only if something happen*/); sflphoneEngine->connectSource("history", this,0/*Update only if something happen*/); - + mainWidget = new MainWidget(); connect(mainWidget,SIGNAL(requierAttention()),this,SLOT(notify())); @@ -52,7 +52,7 @@ void SFLPhonePlasmoid::init() //panel_icon.setImagePath("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone.svg"); panelFrame->setImage("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone.svg"); - + mainLayout->addItem(panelFrame); setLayout(mainLayout); @@ -61,7 +61,7 @@ void SFLPhonePlasmoid::init() connect(panelFrame->nativeWidget(), SIGNAL(clicked()), this, SLOT(showCallPopup())); extender()->setEmptyExtenderMessage(i18n("no running jobs...")); -} +} void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) { @@ -81,12 +81,12 @@ void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) formFaction = Panel; m_orientation = Qt::Vertical; break; - } + } //if (previous != m_mode) //connectToEngine(); - } -} + } +} @@ -115,7 +115,7 @@ void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) //currentMode = index; //} -//void SFLPhonePlasmoid::switchPage(Plasma::ScrollWidget* oldFrame, Plasma::ScrollWidget* newFrame, Plasma::ScrollWidget* toHide, bool direction) +//void SFLPhonePlasmoid::switchPage(Plasma::ScrollWidget* oldFrame, Plasma::ScrollWidget* newFrame, Plasma::ScrollWidget* toHide, bool direction) //{ // QPointF targetPos = oldFrame->pos(); // newFrame->setPos(QPoint(targetPos.x() - newFrame->size().width() ,targetPos.y())); @@ -137,12 +137,12 @@ void SFLPhonePlasmoid::constraintsEvent(Plasma::Constraints constraints) // oldFrame->setVisible(true); // newFrame->setVisible(true); // toHide->setVisible(false); - + // slideAnim->start(QAbstractAnimation::DeleteWhenStopped); // slideAnimOut->start(QAbstractAnimation::DeleteWhenStopped); //} -void SFLPhonePlasmoid::showCallPopup(/*Qt::MouseButton button*/) +void SFLPhonePlasmoid::showCallPopup(/*Qt::MouseButton button*/) { //Q_UNUSED(button) if (!extenderItem) { @@ -161,7 +161,7 @@ void SFLPhonePlasmoid::showCallPopup(/*Qt::MouseButton button*/) } } -void SFLPhonePlasmoid::notify() +void SFLPhonePlasmoid::notify() { //panel_icon.setImagePath("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone_notif.svg"); panelFrame->setImage("/usr/share/kde4/apps/sflphone-plasmoid/icons/sflphone_notif.svg"); diff --git a/kde/plasma/plasmoid/SFLPhonePlasmoid.h b/kde/plasma/plasmoid/SFLPhonePlasmoid.h index f557f367f44bb4b8003b3fed571a7d2e2e661b3b..96ef72e2bec1863eb26eb751bdf91fb2feb82ba8 100644 --- a/kde/plasma/plasmoid/SFLPhonePlasmoid.h +++ b/kde/plasma/plasmoid/SFLPhonePlasmoid.h @@ -2,7 +2,7 @@ #define SFLPHONE_PLASMOID_HEADER #include <KIcon> - + #include <Plasma/PopupApplet> #include <Plasma/Svg> #include <QGraphicsLinearLayout> @@ -11,7 +11,7 @@ #include <plasma/widgets/tabbar.h> //#include <plasma/animations/animation.h> //#include <plasma/animator.h> -#include <Plasma/DataEngine> +#include <Plasma/DataEngine> #include <Plasma/ScrollWidget> #include <Plasma/SvgWidget> #include <Plasma/Extender> @@ -20,10 +20,10 @@ #include "ConferenceItem.h" #include "DialPage.h" #include "MainWidget.h" - + class QSizeF; -enum FormFactor { Panel, Desktop }; +enum FormFactor { Panel, Desktop }; class SFLPhonePlasmoid : public Plasma::PopupApplet { @@ -32,12 +32,12 @@ class SFLPhonePlasmoid : public Plasma::PopupApplet SFLPhonePlasmoid(QObject* parent, const QVariantList &args); ~SFLPhonePlasmoid(); void init(); - + private: Plasma::Svg panel_icon; //Plasma::SvgWidget* panelFrame; Plasma::PushButton* panelFrame; - + Qt::Orientation m_orientation; void constraintsEvent(Plasma::Constraints constraints); Plasma::ExtenderItem* extenderItem; @@ -56,8 +56,8 @@ class SFLPhonePlasmoid : public Plasma::PopupApplet public slots: void dataUpdated(const QString& source, const Plasma::DataEngine::Data &data); }; - + // This is the command that links your applet to the .desktop file - + #endif diff --git a/kde/plasma/plasmoid/plasma-applet-sflphone.desktop b/kde/plasma/plasmoid/plasma-applet-sflphone.desktop index f2050e84d1e8b14b06296c974238d07fa66b5fd7..db6626966069fc38b0a9b5e50fce49373b174060 100644 --- a/kde/plasma/plasmoid/plasma-applet-sflphone.desktop +++ b/kde/plasma/plasmoid/plasma-applet-sflphone.desktop @@ -3,7 +3,7 @@ Name=sflphone Comment=Plasma frontend for the SFLPhone VoIP software Type=Service ServiceTypes=Plasma/Applet - + X-KDE-Library=plasma_applet_sflphone X-KDE-PluginInfo-Author=Emmanuel Lepage Vallee X-KDE-PluginInfo-Email=emmanuel.lepage@savoirfairelinux.com diff --git a/kde/plasma/plasmoid/sflphone-plasmoid.desktop b/kde/plasma/plasmoid/sflphone-plasmoid.desktop index 680a0f59524bb39d45fb2aa63252eeec48e5cefb..3fec3d7edf4412f8e2345e1aaf6933c8ab9b5546 100644 --- a/kde/plasma/plasmoid/sflphone-plasmoid.desktop +++ b/kde/plasma/plasmoid/sflphone-plasmoid.desktop @@ -2,7 +2,7 @@ Name=Extender Tutorial Type=Service X-KDE-ServiceTypes=Plasma/Applet - + X-KDE-Library=plasma_applet_extendertutorial X-KDE-PluginInfo-Author=The Plasma Team X-KDE-PluginInfo-Email=plasma-devel@kde.org diff --git a/kde/po/ru/sflphone-client-kde.po b/kde/po/ru/sflphone-client-kde.po index 07c0961e76a51362d15de795ed5e4dbd53c55939..673fdf09b599869ac1b2688bac727241d990f439 100755 --- a/kde/po/ru/sflphone-client-kde.po +++ b/kde/po/ru/sflphone-client-kde.po @@ -484,7 +484,7 @@ msgid "" "to edit it using the form on the right." msgstr "" "Это кнопка позволит вам добавить новый аккаунт. После этого вы сможете " -"его изменить при помощи экрана справа." +"его изменить при помощи экрана справа." #: ../sflphone-client-kde/build/src/ui_dlgaccountsbase.h:347 msgid "Add" diff --git a/kde/src/AccountListModel.h b/kde/src/AccountListModel.h index b62566809bc20660930b4bd502dcb1531ef12050..7d5546362fafe88d882c08e3255a88be6aaaa5ef 100755 --- a/kde/src/AccountListModel.h +++ b/kde/src/AccountListModel.h @@ -53,7 +53,7 @@ public: bool accountDown ( int index ); bool removeAccount ( int index ); bool addAccount ( const QString& alias ); - + QString getOrderedList() const; }; diff --git a/kde/src/AccountView.cpp b/kde/src/AccountView.cpp index c70da2b96963741b9db51c8e5fe7cc394896efd6..eee3f689ff0a5b1dd3706888454ae1e7a4650892 100644 --- a/kde/src/AccountView.cpp +++ b/kde/src/AccountView.cpp @@ -54,7 +54,7 @@ void AccountView::initItemWidget() { if(m_pWidget != NULL) delete m_pWidget; - + bool enabled = getAccountDetail(ACCOUNT_ENABLED) == ACCOUNT_ENABLED_TRUE; m_pWidget = new AccountItemWidget(); m_pWidget->setEnabled(enabled); @@ -152,7 +152,7 @@ void AccountView::updateState() { if(! isNew()) { Account::updateState(); - + AccountItemWidget * m_pWidget = getItemWidget(); if(getAccountDetail(ACCOUNT_ENABLED) != ACCOUNT_ENABLED_TRUE ) { kDebug() << "Changing account state to Unregistered"; diff --git a/kde/src/AccountView.h b/kde/src/AccountView.h index 2fbc56623ee48f184a1c7baceb909941060ec06f..9d484670b1258b579603d9e40fd115d6bfe6c626 100644 --- a/kde/src/AccountView.h +++ b/kde/src/AccountView.h @@ -51,7 +51,7 @@ class AccountView : public Account, public Item<AccountItemWidget> { static AccountView* buildExistingAccountFromId (const QString& _accountId ); static AccountView* buildNewAccountFromAlias (const QString& alias ); virtual void updateState(); - + private: //Attributes QListWidgetItem* m_pItem; diff --git a/kde/src/AccountWizard.cpp b/kde/src/AccountWizard.cpp index 9df923005a2659ba14945fcab6296fe8aa581121..6fdfd3dae5bd1de850074e27198ac6ec674c63b6 100755 --- a/kde/src/AccountWizard.cpp +++ b/kde/src/AccountWizard.cpp @@ -75,7 +75,7 @@ typedef struct { } rest_account; ///Validate if the connection can be done with the PBX -int sendRequest(QString host, int port, QString req, QString & ret) +int sendRequest(QString host, int port, QString req, QString & ret) { int s; struct sockaddr_in servSockAddr; @@ -85,7 +85,7 @@ int sendRequest(QString host, int port, QString req, QString & ret) int i=0; FILE *f; char buf[1024]; - + bzero(&servSockAddr, sizeof(servSockAddr)); servHostEnt = gethostbyname(host.toLatin1()); if (servHostEnt == NULL) { @@ -95,20 +95,20 @@ int sendRequest(QString host, int port, QString req, QString & ret) bcopy((char *)servHostEnt->h_addr, (char *)&servSockAddr.sin_addr, servHostEnt->h_length); servSockAddr.sin_port = htons(port); servSockAddr.sin_family = AF_INET; - + if ((s = socket(AF_INET,SOCK_STREAM,0)) < 0) { ret = "socket"; return -1; } - + if(connect(s, (const struct sockaddr *) &servSockAddr, (socklen_t) sizeof(servSockAddr)) < 0 ) { perror(NULL); ret = "connect"; return -1; } - + f = fdopen(s, "r+"); - + const char * req2 = req.toLatin1(); const char * host2 = host.toLatin1(); fprintf(f, "%s HTTP/1.1\r\n", req2); @@ -126,7 +126,7 @@ int sendRequest(QString host, int port, QString req, QString & ret) } for (i = 0; i < length; i++) ret[i] = fgetc(f); - + if (status != 200) { ret = "http error: " + status; // sprintf(ret, "http error: %ld", status); @@ -140,7 +140,7 @@ int sendRequest(QString host, int port, QString req, QString & ret) } /// -rest_account get_rest_account(QString host, QString email) +rest_account get_rest_account(QString host, QString email) { QString req = "GET /rest/accountcreator?email=" + email; QString ret; @@ -158,7 +158,7 @@ rest_account get_rest_account(QString host, QString email) } kDebug() << ret; return ra; -} +} /*************************************************************************** * Class AccountWizard * @@ -177,7 +177,7 @@ AccountWizard::AccountWizard(QWidget * parent) setPage(Page_IAXForm , new WizardAccountIAXFormPage ); setPage(Page_Stun , new WizardAccountStunPage ); setPage(Page_Conclusion , new WizardAccountConclusionPage ); - + setStartId(Page_Intro); setWindowTitle(i18n("Account creation wizard")); setWindowIcon(QIcon(ICON_SFLPHONE)); @@ -198,7 +198,7 @@ void AccountWizard::accept() QString ret; MapStringString accountDetails; - + QString& alias = accountDetails[ QString(ACCOUNT_ALIAS) ]; QString& enabled = accountDetails[ QString(ACCOUNT_ENABLED) ]; QString& mailbox = accountDetails[ QString(ACCOUNT_MAILBOX) ]; @@ -219,7 +219,7 @@ void AccountWizard::accept() QString& zrtp_hello_hash = accountDetails[ QString(ACCOUNT_ZRTP_HELLO_HASH) ]; QString& display_sas_once = accountDetails[ QString(ACCOUNT_DISPLAY_SAS_ONCE) ]; - // interface paramters + // interface paramters QString& locale_interface = accountDetails[ QString(LOCAL_INTERFACE) ]; QString& published_address = accountDetails[ QString(PUBLISHED_ADDRESS) ]; @@ -255,10 +255,10 @@ void AccountWizard::accept() ret += i18n("Creation of account has failed for the reason") + " :\n"; ret += acc.reason; } - } + } else if(field(FIELD_SIP_ACCOUNT).toBool()) { //sip ret += i18n("This assistant is now finished.") + "\n"; - + alias = field ( FIELD_SIP_ALIAS ).toString(); enabled = QString ( ACCOUNT_ENABLED_TRUE ); mailbox = field ( FIELD_SIP_VOICEMAIL ).toString(); @@ -297,7 +297,7 @@ void AccountWizard::accept() stun_enabled = QString(ACCOUNT_ENABLED_FALSE); stun_server = QString(); } - + if(field(FIELD_ZRTP_ENABLED).toBool()) { srtp_enabled = QString( ACCOUNT_ENABLED_TRUE ); key_exchange = QString( ZRTP ); @@ -319,7 +319,7 @@ void AccountWizard::accept() ret += i18n( "Protocol" ) + " : " + protocol + "\n"; ret += i18n( "Voicemail number" ) + " : " + mailbox + "\n"; } - + if(is_create_account) { QString accountId = configurationManager.addAccount(accountDetails); } @@ -327,7 +327,7 @@ void AccountWizard::accept() QDialog::accept(); restart(); } - + @@ -350,8 +350,8 @@ WizardIntroPage::WizardIntroPage(QWidget *parent) layout->addWidget(introLabel); setLayout(layout); } - - + + WizardIntroPage::~WizardIntroPage() { delete introLabel; @@ -386,7 +386,7 @@ WizardAccountAutoManualPage::WizardAccountAutoManualPage(QWidget *parent) layout->addWidget( radioButton_manual ); setLayout(layout); } - + ///Second page destructor WizardAccountAutoManualPage::~WizardAccountAutoManualPage() { @@ -417,7 +417,7 @@ WizardAccountTypePage::WizardAccountTypePage(QWidget *parent) radioButton_SIP = new QRadioButton(i18n("SIP (Session Initiation Protocol)" )); radioButton_IAX = new QRadioButton(i18n("IAX2 (InterAsterix Exchange)" )); radioButton_SIP->setChecked(true); - + registerField( FIELD_SIP_ACCOUNT, radioButton_SIP ); registerField( FIELD_IAX_ACCOUNT, radioButton_IAX ); @@ -426,7 +426,7 @@ WizardAccountTypePage::WizardAccountTypePage(QWidget *parent) layout->addWidget(radioButton_IAX); setLayout(layout); } - + ///Third page destructor WizardAccountTypePage::~WizardAccountTypePage() { @@ -459,7 +459,7 @@ WizardAccountEmailAddressPage::WizardAccountEmailAddressPage(QWidget *parent) lineEdit_emailAddress = new QLineEdit(); label_enableZrtp = new QLabel(i18n("Secure with ZRTP")); checkBox_enableZrtp = new QCheckBox(); - + registerField( FIELD_EMAIL_ADDRESS , lineEdit_emailAddress ); registerField( FIELD_ZRTP_ENABLED , checkBox_enableZrtp ); @@ -472,7 +472,7 @@ WizardAccountEmailAddressPage::WizardAccountEmailAddressPage(QWidget *parent) setLayout(layout); } - + ///Email page destructor WizardAccountEmailAddressPage::~WizardAccountEmailAddressPage() { @@ -514,17 +514,17 @@ WizardAccountSIPFormPage::WizardAccountSIPFormPage(QWidget *parent) checkBox_enableZrtp = new QCheckBox; lineEdit_password->setEchoMode(QLineEdit::Password); - + registerField(QString( FIELD_SIP_ALIAS) + "*" , lineEdit_alias ); registerField(QString( FIELD_SIP_SERVER) + "*" , lineEdit_server ); registerField(QString( FIELD_SIP_USER) + "*" , lineEdit_user ); registerField(QString( FIELD_SIP_PASSWORD) + "*" , lineEdit_password ); registerField(QString( FIELD_SIP_VOICEMAIL) , lineEdit_voicemail ); registerField(QString( FIELD_ZRTP_ENABLED) , checkBox_enableZrtp ); - + QFormLayout *layout = new QFormLayout; - - + + layout->setWidget( 0, QFormLayout::LabelRole , label_alias ); layout->setWidget( 0, QFormLayout::FieldRole , lineEdit_alias ); layout->setWidget( 1, QFormLayout::LabelRole , label_server ); @@ -537,11 +537,11 @@ WizardAccountSIPFormPage::WizardAccountSIPFormPage(QWidget *parent) layout->setWidget( 4, QFormLayout::FieldRole , lineEdit_voicemail ); layout->setWidget( 5, QFormLayout::LabelRole , label_enableZrtp ); layout->setWidget( 5, QFormLayout::FieldRole , checkBox_enableZrtp ); - + setLayout(layout); } - - + + WizardAccountSIPFormPage::~WizardAccountSIPFormPage() { delete label_alias; @@ -579,7 +579,7 @@ WizardAccountIAXFormPage::WizardAccountIAXFormPage(QWidget *parent) label_user = new QLabel(i18n("Username") + " *" ); label_password = new QLabel(i18n("Password") + " *" ); label_voicemail = new QLabel(i18n("Voicemail number" )); - + lineEdit_alias = new QLineEdit; lineEdit_server = new QLineEdit; lineEdit_user = new QLineEdit; @@ -587,15 +587,15 @@ WizardAccountIAXFormPage::WizardAccountIAXFormPage(QWidget *parent) lineEdit_voicemail = new QLineEdit; lineEdit_password->setEchoMode(QLineEdit::Password); - + registerField( QString( FIELD_IAX_ALIAS ) + "*", lineEdit_alias ); registerField( QString( FIELD_IAX_SERVER ) + "*", lineEdit_server ); registerField( QString( FIELD_IAX_USER ) + "*", lineEdit_user ); registerField( QString( FIELD_IAX_PASSWORD ) + "*", lineEdit_password ); registerField( QString( FIELD_IAX_VOICEMAIL ) , lineEdit_voicemail ); - + QFormLayout *layout = new QFormLayout; - + layout->setWidget( 0 , QFormLayout::LabelRole , label_alias ); layout->setWidget( 0 , QFormLayout::FieldRole , lineEdit_alias ); layout->setWidget( 1 , QFormLayout::LabelRole , label_server ); @@ -606,11 +606,11 @@ WizardAccountIAXFormPage::WizardAccountIAXFormPage(QWidget *parent) layout->setWidget( 3 , QFormLayout::FieldRole , lineEdit_password ); layout->setWidget( 4 , QFormLayout::LabelRole , label_voicemail ); layout->setWidget( 4 , QFormLayout::FieldRole , lineEdit_voicemail ); - + setLayout(layout); } - - + + WizardAccountIAXFormPage::~WizardAccountIAXFormPage() { delete label_alias; @@ -645,7 +645,7 @@ WizardAccountStunPage::WizardAccountStunPage(QWidget *parent) label_StunServer = new QLabel(i18n("Stun Server")); lineEdit_StunServer = new QLineEdit(); lineEdit_StunServer->setDisabled(true); - + registerField(FIELD_SIP_ENABLE_STUN, checkBox_enableStun); registerField(FIELD_SIP_STUN_SERVER, lineEdit_StunServer); @@ -654,7 +654,7 @@ WizardAccountStunPage::WizardAccountStunPage(QWidget *parent) layout->addWidget( label_StunServer ); layout->addWidget( lineEdit_StunServer ); setLayout(layout); - + connect(checkBox_enableStun, SIGNAL(toggled(bool)), lineEdit_StunServer, SLOT(setEnabled(bool))); } diff --git a/kde/src/AccountWizard.h b/kde/src/AccountWizard.h index b4af3e90bc6173bef1ee23c75ad0476255fc2754..924f03f19aff98f370a9d5e9ac7109f5ce38ff4d 100755 --- a/kde/src/AccountWizard.h +++ b/kde/src/AccountWizard.h @@ -37,9 +37,9 @@ class AccountWizard : public QWizard Q_OBJECT public: - + enum { Page_Intro, Page_AutoMan, Page_Type, Page_Email, Page_SIPForm, Page_IAXForm, Page_Stun, Page_Conclusion }; - + AccountWizard(QWidget * parent = 0); ~AccountWizard(); void accept(); @@ -134,7 +134,7 @@ class WizardAccountSIPFormPage : public QWizardPage Q_OBJECT public: - + WizardAccountSIPFormPage(QWidget *parent = 0); ~WizardAccountSIPFormPage(); int nextId() const; @@ -167,7 +167,7 @@ class WizardAccountIAXFormPage : public QWizardPage Q_OBJECT public: - + WizardAccountIAXFormPage(QWidget *parent = 0); ~WizardAccountIAXFormPage(); int nextId() const; diff --git a/kde/src/ActionSetAccountFirst.h b/kde/src/ActionSetAccountFirst.h index 2b9dd739e5c07b08048930735d10c6facbeb953e..07e044c02c60b3b4da73bee08f84545cfcd46ae6 100755 --- a/kde/src/ActionSetAccountFirst.h +++ b/kde/src/ActionSetAccountFirst.h @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * **************************************************************************/ - + #ifndef ACTION_SET_ACCOUNT_FIRST_H #define ACTION_SET_ACCOUNT_FIRST_H @@ -40,7 +40,7 @@ public: private slots: void emitSetFirst(); - + signals: void setFirst(Account * account); diff --git a/kde/src/AkonadiBackend.cpp b/kde/src/AkonadiBackend.cpp index a265001a791110b22a88db2487642b41956baa80..7677746d4f05f29761b19a4491c609818da18e44 100644 --- a/kde/src/AkonadiBackend.cpp +++ b/kde/src/AkonadiBackend.cpp @@ -67,7 +67,7 @@ AkonadiBackend::AkonadiBackend(QObject* parent) : ContactBackend(parent) ///Destructor AkonadiBackend::~AkonadiBackend() { - + } @@ -130,7 +130,7 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) KABC::Addressee tmp = item.payload<KABC::Addressee>(); Contact* aContact = new Contact(); m_AddrHash[tmp.uid()] = tmp; - + KABC::PhoneNumber::List numbers = tmp.phoneNumbers(); PhoneNumbers newNumbers; foreach (KABC::PhoneNumber number, numbers) { @@ -138,7 +138,7 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) m_ContactByPhone[number.number()] = aContact; } m_ContactByUid[tmp.uid()] = aContact; - + aContact->setNickName (tmp.nickName() ); aContact->setFormattedName (tmp.formattedName() ); aContact->setFirstName (tmp.givenName() ); @@ -147,7 +147,7 @@ ContactList AkonadiBackend::update(Akonadi::Collection collection) aContact->setPreferredEmail (tmp.preferredEmail() ); aContact->setUid (tmp.uid() ); aContact->setPhoneNumbers (newNumbers ); - + if (!tmp.photo().data().isNull()) aContact->setPhoto(new QPixmap(QPixmap::fromImage( tmp.photo().data()).scaled(QSize(48,48)))); else @@ -208,17 +208,17 @@ void AkonadiBackend::addNewContact(Contact* contact) newContact.insertPhoneNumber(pn); } - + //aContact->setPhoneNumbers (newNumbers );//TODO - + Akonadi::ContactEditor *editor = new Akonadi::ContactEditor( Akonadi::ContactEditor::CreateMode, SFLPhone::app()->view() ); editor->setContactTemplate(newContact); - + KDialog* dlg = new KDialog(SFLPhone::app()->view()); dlg->setMainWidget(editor); dlg->exec(); - + if ( !editor->saveContact() ) { kDebug() << "Unable to save new contact to storage"; return; diff --git a/kde/src/AkonadiBackend.h b/kde/src/AkonadiBackend.h index 89a3224ef20ee2767b6bc637f3c985d4111287c1..a0494d9633201414fb595d4f8ad2183b3366e0ee 100644 --- a/kde/src/AkonadiBackend.h +++ b/kde/src/AkonadiBackend.h @@ -52,24 +52,24 @@ public: Contact* getContactByUid ( const QString& uid ); void editContact ( Contact* contact ); void addNewContact ( Contact* contact ); - + private: AkonadiBackend(QObject* parent); virtual ~AkonadiBackend(); - + //Attributes static AkonadiBackend* m_pInstance ; Akonadi::Session* m_pSession ; Akonadi::Collection m_Collection ; QHash<QString,KABC::Addressee> m_AddrHash ; - + protected: ContactList update_slot(); - + public slots: ContactList update(Akonadi::Collection collection); void collectionsReceived( const Akonadi::Collection::List& ); - + signals: void collectionChanged(); }; diff --git a/kde/src/CMakeLists.txt b/kde/src/CMakeLists.txt index 15fffdec377ed73d89dd2e95e0dc67040e09b305..7ca4c1ec0f8b762a28822751b497c4bb16f231d1 100755 --- a/kde/src/CMakeLists.txt +++ b/kde/src/CMakeLists.txt @@ -1,9 +1,9 @@ ADD_DEFINITIONS( - ${KDE4_DEFINITIONS} - ${QT_DEFINITIONS} - -fexceptions - -DDATA_INSTALL_DIR="\\\"${DATA_INSTALL_DIR}\\\"" + ${KDE4_DEFINITIONS} + ${QT_DEFINITIONS} + -fexceptions + -DDATA_INSTALL_DIR="\\\"${DATA_INSTALL_DIR}\\\"" -DSHARE_INSTALL_PREFIX="\\\"${SHARE_INSTALL_PREFIX}\\\"" ) diff --git a/kde/src/CallView.cpp b/kde/src/CallView.cpp index e4484c904342da63282813a6d7d2e37e83d51793..5c912479f30e307bdc444d676e6a69e82e983b8d 100644 --- a/kde/src/CallView.cpp +++ b/kde/src/CallView.cpp @@ -55,9 +55,9 @@ CallView::CallView(QWidget* parent) : QTreeWidget(parent),m_pActiveOverlay(0),m_ setDragEnabled(true); setAnimated(true); CallTreeItemDelegate *delegate = new CallTreeItemDelegate(); - setItemDelegate(delegate); + setItemDelegate(delegate); setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding)); - + m_pTransferOverlay = new CallViewOverlay(this); m_pTransferOverlay->setVisible(false); m_pTransferOverlay->resize(size()); @@ -309,11 +309,11 @@ bool CallView::contactToCall(QTreeWidgetItem *parent, int index, const QMimeData } ///Action performed when an item is dropped on the TreeView -bool CallView::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) +bool CallView::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action) { Q_UNUSED(index) Q_UNUSED(action) - + QByteArray encodedCallId = data->data( MIME_CALLID ); QByteArray encodedPhoneNumber = data->data( MIME_PHONENUMBER ); QByteArray encodedContact = data->data( MIME_CONTACT ); @@ -335,14 +335,14 @@ bool CallView::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeData ///Encode data to be tranported during the drag n' drop operation QMimeData* CallView::mimeData( const QList<QTreeWidgetItem *> items) const -{ +{ kDebug() << "A call is being dragged"; if (items.size() < 1) { return NULL; } - + QMimeData *mimeData = new QMimeData(); - + //Call ID for internal call merging and spliting if (SFLPhone::model()->getCall(items[0])->isConference()) { mimeData->setData(MIME_CALLID, SFLPhone::model()->getCall(items[0])->getConfId().toAscii()); @@ -350,10 +350,10 @@ QMimeData* CallView::mimeData( const QList<QTreeWidgetItem *> items) const else { mimeData->setData(MIME_CALLID, SFLPhone::model()->getCall(items[0])->getCallId().toAscii()); } - + //Plain text for other applications mimeData->setData(MIME_PLAIN_TEXT, QString(SFLPhone::model()->getCall(items[0])->getPeerName()+"\n"+SFLPhone::model()->getCall(items[0])->getPeerPhoneNumber()).toAscii()); - + //TODO Comment this line if you don't want to see ugly artefact, but the caller details will not be visible while dragged items[0]->setText(0, SFLPhone::model()->getCall(items[0])->getPeerName() + "\n" + SFLPhone::model()->getCall(items[0])->getPeerPhoneNumber()); return mimeData; @@ -367,14 +367,14 @@ QMimeData* CallView::mimeData( const QList<QTreeWidgetItem *> items) const ****************************************************************************/ ///Add a call in the model structure, the call must exist before being added to the model -Call* CallView::addCall(Call* call, Call* parent) +Call* CallView::addCall(Call* call, Call* parent) { QTreeWidgetItem* callItem = new QTreeWidgetItem(); SFLPhone::model()->updateIndex(call,callItem); insertItem(callItem,parent); - + setCurrentItem(callItem); - + connect(call, SIGNAL(isOver(Call*)), this, SLOT(destroyCall(Call*))); return call; } @@ -432,13 +432,13 @@ void CallView::resizeEvent (QResizeEvent *e) } ///Set the TreeView header text -void CallView::setTitle(const QString& title) +void CallView::setTitle(const QString& title) { headerItem()->setText(0,title); } ///Select an item in the TreeView -bool CallView::selectItem(Call* item) +bool CallView::selectItem(Call* item) { if (SFLPhone::model()->getIndex(item)) { setCurrentItem(SFLPhone::model()->getIndex(item)); @@ -449,7 +449,7 @@ bool CallView::selectItem(Call* item) } ///Return the current item -Call* CallView::getCurrentItem() +Call* CallView::getCurrentItem() { if (currentItem() && SFLPhone::model()->getCall(QTreeWidget::currentItem())) return SFLPhone::model()->getCall(QTreeWidget::currentItem()); @@ -458,7 +458,7 @@ Call* CallView::getCurrentItem() } ///Remove a TreeView item and delete it -bool CallView::removeItem(Call* item) +bool CallView::removeItem(Call* item) { if (indexOfTopLevelItem(SFLPhone::model()->getIndex(item)) != -1) { QTreeWidgetItem* parent = itemAt(indexOfTopLevelItem(SFLPhone::model()->getIndex(item)),0); @@ -472,29 +472,29 @@ bool CallView::removeItem(Call* item) } ///Return the TreeView, this -QWidget* CallView::getWidget() +QWidget* CallView::getWidget() { return this; } ///Convenience wrapper around extractItem(QTreeWidgetItem*) -QTreeWidgetItem* CallView::extractItem(const QString& callId) +QTreeWidgetItem* CallView::extractItem(const QString& callId) { QTreeWidgetItem* currentItem = SFLPhone::model()->getIndex(callId); return extractItem(currentItem); } ///Extract an item from the TreeView and return it, the item is -not- deleted -QTreeWidgetItem* CallView::extractItem(QTreeWidgetItem* item) +QTreeWidgetItem* CallView::extractItem(QTreeWidgetItem* item) { QTreeWidgetItem* parentItem = item->parent(); - + if (parentItem) { if ((indexOfTopLevelItem(parentItem) == -1 ) || (parentItem->indexOfChild(item) == -1)) { kDebug() << "The conversation does not exist"; return 0; } - + QTreeWidgetItem* toReturn = parentItem->takeChild(parentItem->indexOfChild(item)); return toReturn; @@ -504,45 +504,45 @@ QTreeWidgetItem* CallView::extractItem(QTreeWidgetItem* item) } ///Convenience wrapper around insertItem(QTreeWidgetItem*, QTreeWidgetItem*) -CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, Call* parent) +CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, Call* parent) { return insertItem(item,(parent)?SFLPhone::model()->getIndex(parent):0); } ///Insert a TreeView item in the TreeView as child of parent or as a top level item, also restore the item Widget -CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, QTreeWidgetItem* parent) +CallTreeItem* CallView::insertItem(QTreeWidgetItem* item, QTreeWidgetItem* parent) { if (!item) { kDebug() << "This is not a valid call"; return 0; } - + if (!parent) insertTopLevelItem(0,item); else parent->addChild(item); - + CallTreeItem* callItem = new CallTreeItem(); connect(callItem, SIGNAL(showChilds(CallTreeItem*)), this, SLOT(showDropOptions(CallTreeItem*))); connect(callItem, SIGNAL(askTransfer(Call*)), this, SLOT(showTransferOverlay(Call*))); connect(callItem, SIGNAL(transferDropEvent(Call*,QMimeData*)), this, SLOT(transferDropEvent(Call*,QMimeData*))); connect(callItem, SIGNAL(conversationDropEvent(Call*,QMimeData*)), this, SLOT(conversationDropEvent(Call*,QMimeData*))); - + SFLPhone::model()->updateWidget(SFLPhone::model()->getCall(item), callItem); callItem->setCall(SFLPhone::model()->getCall(item)); - + setItemWidget(item,0,callItem); - + expandAll(); return callItem; } ///Remove a call from the interface -void CallView::destroyCall(Call* toDestroy) +void CallView::destroyCall(Call* toDestroy) { if (SFLPhone::model()->getIndex(toDestroy) == currentItem()) setCurrentItem(0); - + if (!SFLPhone::model()->getIndex(toDestroy)) kDebug() << "Call not found"; else if (indexOfTopLevelItem(SFLPhone::model()->getIndex(toDestroy)) != -1) @@ -562,7 +562,7 @@ void CallView::destroyCall(Call* toDestroy) } /// @todo Remove the text partially covering the TreeView item widget when it is being dragged, a beter implementation is needed -void CallView::clearArtefact(QTreeWidgetItem* item) +void CallView::clearArtefact(QTreeWidgetItem* item) { if (item) item->setText(0,""); @@ -607,33 +607,33 @@ void CallView::itemClicked(QTreeWidgetItem* item, int column) { ****************************************************************************/ ///Add a new conference, get the call list and update the interface as needed -Call* CallView::addConference(Call* conf) +Call* CallView::addConference(Call* conf) { kDebug() << "Conference created"; Call* newConf = conf;//SFLPhone::model()->addConference(confID);//TODO ELV? - + QTreeWidgetItem* confItem = new QTreeWidgetItem(); SFLPhone::model()->updateIndex(conf,confItem); insertItem(confItem,(QTreeWidgetItem*)0); - + setCurrentItem(confItem); CallManagerInterface& callManager = CallManagerInterfaceSingleton::getInstance(); QStringList callList = callManager.getParticipantList(conf->getConfId()); - + foreach (QString callId, callList) { kDebug() << "Adding " << callId << "to the conversation"; insertItem(extractItem(SFLPhone::model()->getIndex(callId)),confItem); } - + Q_ASSERT_X(confItem->childCount() == 0, "add conference","Conference created, but without any participants"); return newConf; } ///Executed when the daemon signal a modification in an existing conference. Update the call list and update the TreeView -bool CallView::conferenceChanged(Call* conf) +bool CallView::conferenceChanged(Call* conf) { kDebug() << "Conference changed"; //if (!SFLPhone::model()->conferenceChanged(confId, state)) @@ -658,14 +658,14 @@ bool CallView::conferenceChanged(Call* conf) if (buffer.indexOf(SFLPhone::model()->getIndex(conf)->child(j)) == -1) insertItem(extractItem(SFLPhone::model()->getIndex(conf)->child(j))); } - + Q_ASSERT_X(SFLPhone::model()->getIndex(conf)->childCount() == 0,"changind conference","A conference can't have no participants"); - + return true; } ///Remove a conference from the model and the TreeView -void CallView::conferenceRemoved(Call* conf) +void CallView::conferenceRemoved(Call* conf) { kDebug() << "Attempting to remove conference"; QTreeWidgetItem* idx = SFLPhone::model()->getIndex(conf); diff --git a/kde/src/CallView.h b/kde/src/CallView.h index 0d05fa7fcdd2fe83666925934da74759a46d3651..0fa3f8ce562c7e41ea0a33841862e475f614456a 100644 --- a/kde/src/CallView.h +++ b/kde/src/CallView.h @@ -44,11 +44,11 @@ class CallTreeItemDelegate : public QItemDelegate { public: CallTreeItemDelegate() { } - QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const - { + QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const + { Q_UNUSED(option) Q_UNUSED(index) - return QSize(0,60); + return QSize(0,60); } }; @@ -62,18 +62,18 @@ public: //Setters void setCornerWidget(QWidget* wdg); void setVisible(bool enabled); - + protected: virtual void paintEvent (QPaintEvent* event ); virtual void resizeEvent (QResizeEvent* e ); - + private: QWidget* m_pIcon ; uint m_step ; QTimer* m_pTimer ; bool m_enabled; QColor m_black ; - + private slots: void changeVisibility(); }; @@ -91,7 +91,7 @@ class CallView : public QTreeWidget { bool dropMimeData ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); virtual QMimeData* mimeData ( const QList<QTreeWidgetItem *> items ) const; bool haveOverlay(); - + private: QTreeWidgetItem* extractItem ( const QString& callId ); QTreeWidgetItem* extractItem ( QTreeWidgetItem* item ); @@ -113,7 +113,7 @@ class CallView : public QTreeWidget { bool callToCall ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); bool phoneNumberToCall ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); bool contactToCall ( QTreeWidgetItem *parent, int index, const QMimeData *data, Qt::DropAction action ); - + public slots: void destroyCall ( Call* toDestroy); void itemDoubleClicked ( QTreeWidgetItem* item, int column ); @@ -135,6 +135,6 @@ class CallView : public QTreeWidget { signals: void itemChanged(Call*); - + }; #endif diff --git a/kde/src/Codec.h b/kde/src/Codec.h index fc17948dd58afe561eba0880546cd11c0b2555fc..8617cc86f9c9ae41ec5e0a834b39c951478dba3a 100755 --- a/kde/src/Codec.h +++ b/kde/src/Codec.h @@ -49,7 +49,7 @@ public: void setBitrate ( const QString& bitrate ); void setBandwidth ( const QString& bandwidth ); void setEnabled ( bool enabled ); - + private: //Attributes QString m_Payload ; @@ -58,7 +58,7 @@ private: QString m_Bitrate ; QString m_Bandwidth ; bool m_Enabled ; - + //Operators Codec& operator=(const Codec&); }; diff --git a/kde/src/SFLPhone.cpp b/kde/src/SFLPhone.cpp index ce24a9b10fd786042a0e3c1d10490ad64e069152..21b03330c878e0b2d6e959d910a024f3001e8b2a 100755 --- a/kde/src/SFLPhone.cpp +++ b/kde/src/SFLPhone.cpp @@ -88,14 +88,14 @@ bool SFLPhone::initialize() //Keep these template paramater or the static attribute wont be share between this and the call view, they need to be CallModel<CallTreeItem*,QTreeWidgetItem*>* histoModel = new CallModel<CallTreeItem*,QTreeWidgetItem*>(CallModel<CallTreeItem*,QTreeWidgetItem*>::History); histoModel->initHistory(); - + ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); // accept dnd setAcceptDrops(true); m_pContactCD = new ContactDock(this); addDockWidget(Qt::TopDockWidgetArea,m_pContactCD); - + // tell the KXmlGuiWindow that this is indeed the main widget m_pCentralDW = new QDockWidget(this); m_pCentralDW->setObjectName ( "callDock" ); @@ -113,11 +113,11 @@ bool SFLPhone::initialize() }\ \ "); - + m_pCentralDW->setTitleBarWidget(new QWidget()); m_pCentralDW->setContentsMargins(0,0,0,0); m_pView->setContentsMargins(0,0,0,0); - + addDockWidget(Qt::TopDockWidgetArea,m_pCentralDW); m_pHistoryDW = new HistoryDock(this); @@ -160,7 +160,7 @@ bool SFLPhone::initialize() void SFLPhone::setupActions() { kDebug() << "setupActions"; - + action_accept = new KAction(this); action_refuse = new KAction(this); action_hold = new KAction(this); @@ -177,21 +177,21 @@ void SFLPhone::setupActions() action_screen = new QActionGroup(this); action_screen->setExclusive(true); - + action_close = KStandardAction::close(this, SLOT(close()), this); action_quit = KStandardAction::quit(this, SLOT(quitButton()), this); - + action_configureSflPhone = KStandardAction::preferences(m_pView, SLOT(configureSflPhone()), this); action_configureSflPhone->setText(i18n("Configure SFLphone")); - + action_displayDialpad = new KAction(KIcon(QIcon(ICON_DISPLAY_DIALPAD)), i18n("Display dialpad"), this); action_displayDialpad->setCheckable( true ); action_displayDialpad->setChecked ( ConfigurationSkeleton::displayDialpad() ); - action_displayVolumeControls = new KAction(KIcon(QIcon(ICON_DISPLAY_VOLUME_CONSTROLS)), i18n("Display volume controls"), this); + action_displayVolumeControls = new KAction(KIcon(QIcon(ICON_DISPLAY_VOLUME_CONSTROLS)), i18n("Display volume controls"), this); action_displayVolumeControls->setCheckable( true ); action_displayVolumeControls->setChecked ( ConfigurationSkeleton::displayVolume() ); - + action_accountCreationWizard = new KAction(i18n("Account creation wizard"), this); @@ -209,7 +209,7 @@ void SFLPhone::setupActions() /**/connect(action_configureShortcut, SIGNAL(triggered()), this , SLOT(showShortCutEditor() )); /* */ - + actionCollection()->addAction("action_accept" , action_accept ); actionCollection()->addAction("action_refuse" , action_refuse ); actionCollection()->addAction("action_hold" , action_hold ); @@ -223,7 +223,7 @@ void SFLPhone::setupActions() actionCollection()->addAction("action_configureSflPhone" , action_configureSflPhone ); actionCollection()->addAction("action_accountCreationWizard" , action_accountCreationWizard ); actionCollection()->addAction("action_configureShortcut" , action_configureShortcut ); - + setAutoSaveSettings(); createGUI(); } diff --git a/kde/src/SFLPhone.h b/kde/src/SFLPhone.h index e58c412851a39776d2a58907bdb163b6abec2eff..030a2292433b591696ce50770ef6f4b6667c0a01 100755 --- a/kde/src/SFLPhone.h +++ b/kde/src/SFLPhone.h @@ -45,19 +45,19 @@ class CallTreeItem; typedef CallModel<CallTreeItem*,QTreeWidgetItem*> TreeWidgetCallModel; -/** - * This class represents the SFLphone main window - * It implements the methods relative to windowing - * (status, menus, toolbars, notifications...). - * It uses a view which implements the real functionning - * and features of the phone. - * The display of the window is according to the state of the view, - * so the view sends some signals to ask for changes on the window - * that the window has to take into account. - * - * @short Main window - * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> - * @version 0.9.6 +/** + * This class represents the SFLphone main window + * It implements the methods relative to windowing + * (status, menus, toolbars, notifications...). + * It uses a view which implements the real functionning + * and features of the phone. + * The display of the window is according to the state of the view, + * so the view sends some signals to ask for changes on the window + * that the window has to take into account. + * + * @short Main window + * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> + * @version 0.9.6 **/ class SFLPhone : public KXmlGuiWindow { @@ -100,7 +100,7 @@ private: QDockWidget* m_pCentralDW ; HistoryDock* m_pHistoryDW ; BookmarkDock* m_pBookmarkDW ; - + static SFLPhone* m_sApp; static TreeWidgetCallModel* m_pModel; @@ -110,7 +110,7 @@ private: protected: virtual bool queryClose(); virtual void changeEvent(QEvent * event); - + public: SFLPhone(QWidget *parent = 0); @@ -121,7 +121,7 @@ public: QList<QAction *> getCallActions (); friend class SFLPhoneView; - + static SFLPhone* app (); static TreeWidgetCallModel* model (); SFLPhoneView* view (); @@ -129,7 +129,7 @@ public: ContactDock* contactDock(); HistoryDock* historyDock(); BookmarkDock* bookmarkDock(); - + private slots: void on_m_pView_statusMessageChangeAsked ( const QString& message ); void on_m_pView_windowTitleChangeAsked ( const QString& message ); @@ -146,4 +146,4 @@ private slots: }; #endif - + diff --git a/kde/src/SFLPhoneView.cpp b/kde/src/SFLPhoneView.cpp index 9c908ca5fc21ad15ecb6be81d6d41a68ec95545e..dadf805c4b5ffaafce1809aff635bde537f5b1ec 100755 --- a/kde/src/SFLPhoneView.cpp +++ b/kde/src/SFLPhoneView.cpp @@ -58,12 +58,12 @@ SFLPhoneView::SFLPhoneView(QWidget *parent) wizard(0), errorWindow(0) { setupUi(this); - + ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - - + + callTreeModel->setTitle(i18n("Calls")); - + QPalette pal = QPalette(palette()); pal.setColor(QPalette::AlternateBase, Qt::lightGray); setPalette(pal); @@ -127,7 +127,7 @@ QErrorMessage * SFLPhoneView::getErrorWindow() void SFLPhoneView::typeString(QString str) { CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); - + Call* call = callTreeModel->getCurrentItem(); callManager.playDTMF(str); Call *currentCall = 0; @@ -254,9 +254,9 @@ void SFLPhoneView::updateWindowCallState() bool enabledActions[6]= {true,true,true,true,true,true}; QString buttonIconFiles[6] = {ICON_CALL, ICON_HANGUP, ICON_HOLD, ICON_TRANSFER, ICON_REC_DEL_OFF, ICON_MAILBOX}; QString actionTexts[6] = {ACTION_LABEL_CALL, ACTION_LABEL_HANG_UP, ACTION_LABEL_HOLD, ACTION_LABEL_TRANSFER, ACTION_LABEL_RECORD, ACTION_LABEL_MAILBOX}; - + Call* call = 0; - + bool transfer = false; bool recordActivated = false; //tells whether the call is in recording position @@ -337,9 +337,9 @@ void SFLPhoneView::updateWindowCallState() break; } } - + kDebug() << "Updating Window."; - + emit enabledActionsChangeAsked ( enabledActions ); emit actionIconsChangeAsked ( buttonIconFiles ); emit actionTextsChangeAsked ( actionTexts ); @@ -358,15 +358,15 @@ int SFLPhoneView::phoneNumberTypesDisplayed() if(addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS]) { typesDisplayed = typesDisplayed | KABC::PhoneNumber::Work; } - + if(addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE]) { typesDisplayed = typesDisplayed | KABC::PhoneNumber::Cell; } - + if(addressBookSettings[ADDRESSBOOK_DISPLAY_HOME]) { typesDisplayed = typesDisplayed | KABC::PhoneNumber::Home; } - + return typesDisplayed; } @@ -388,8 +388,8 @@ void SFLPhoneView::updateRecordButton() else { toolButton_recVol->setIcon(QIcon(ICON_REC_VOL_3)); } - - if(recVol > 0) { + + if(recVol > 0) { toolButton_recVol->setChecked(false); } } @@ -400,7 +400,7 @@ void SFLPhoneView::updateVolumeButton() kDebug() << "updateVolumeButton"; CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance(); double sndVol = callManager.getVolume(SOUND_DEVICE); - + if(sndVol == 0.00) { toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_0)); } @@ -413,7 +413,7 @@ void SFLPhoneView::updateVolumeButton() else { toolButton_sndVol->setIcon(QIcon(ICON_SND_VOL_3)); } - + if(sndVol > 0) { toolButton_sndVol->setChecked(false); } @@ -447,7 +447,7 @@ void SFLPhoneView::updateVolumeControls() toolButton_sndVol->setVisible ( SFLPhone::app()->action_displayVolumeControls->isChecked() && ConfigurationSkeleton::displayVolume() ); slider_recVol->setVisible ( SFLPhone::app()->action_displayVolumeControls->isChecked() && ConfigurationSkeleton::displayVolume() ); slider_sndVol->setVisible ( SFLPhone::app()->action_displayVolumeControls->isChecked() && ConfigurationSkeleton::displayVolume() ); - + } ///Hide or show the dialpad @@ -465,8 +465,8 @@ void SFLPhoneView::updateStatusMessage() emit statusMessageChangeAsked(i18n("No registered accounts")); } else { - emit statusMessageChangeAsked(i18n("Using account") - + " \'" + account->getAlias() + emit statusMessageChangeAsked(i18n("Using account") + + " \'" + account->getAlias() + "\' (" + account->getAccountDetail(ACCOUNT_TYPE) + ")") ; } } @@ -497,8 +497,8 @@ void SFLPhoneView::displayDialpad(bool checked) ///Input grabber void SFLPhoneView::on_widget_dialpad_typed(QString text) -{ - typeString(text); +{ + typeString(text); } ///The value on the slider changed @@ -552,7 +552,7 @@ void SFLPhoneView::on_toolButton_sndVol_clicked(bool checked) slider_sndVol->setEnabled(false); callManager.setVolume(SOUND_DEVICE, 0.0); } - + updateVolumeButton(); } @@ -560,22 +560,22 @@ void SFLPhoneView::on_toolButton_sndVol_clicked(bool checked) void SFLPhoneView::contextMenuEvent(QContextMenuEvent *event) { KMenu menu(this); - + SFLPhone * window = SFLPhone::app(); QList<QAction *> callActions = window->getCallActions(); - + menu.addAction ( callActions.at((int) SFLPhone::Accept) ); menu.addAction ( callActions[ SFLPhone::Refuse ] ); menu.addAction ( callActions[ SFLPhone::Hold ] ); menu.addAction ( callActions[ SFLPhone::Transfer ] ); menu.addAction ( callActions[ SFLPhone::Record ] ); menu.addSeparator(); - + QAction* action = new ActionSetAccountFirst(NULL, &menu); action->setChecked(SFLPhone::model()->getPriorAccoundId().isEmpty()); connect(action, SIGNAL(setFirst(Account *)), this , SLOT(setAccountFirst(Account *))); menu.addAction(action); - + QVector<Account *> accounts = SFLPhone::model()->getAccountList()->registeredAccounts(); for (int i = 0 ; i < accounts.size() ; i++) { Account* account = accounts.at(i); @@ -592,7 +592,7 @@ void SFLPhoneView::editBeforeCall() { QString name; QString number; - + bool ok; QString newNumber = QInputDialog::getText(this, i18n("Edit before call"), QString(), QLineEdit::Normal, number, &ok); if(ok) { @@ -622,10 +622,10 @@ void SFLPhoneView::configureSflPhone() { ConfigurationDialog* configDialog = new ConfigurationDialog(this); configDialog->setModal(true); - + connect(configDialog, SIGNAL(changesApplied()), this, SLOT(loadWindow())); - + //configDialog->reload(); configDialog->show(); } @@ -729,7 +729,7 @@ void SFLPhoneView::on1_error(MapStringString details) void SFLPhoneView::on1_incomingCall(Call* call) { kDebug() << "Signal : Incoming Call ! ID = " << call->getCallId(); - + updateWindowCallState(); SFLPhone::app()->activateWindow ( ); diff --git a/kde/src/SFLPhoneView.h b/kde/src/SFLPhoneView.h index 59d3028359a34c9564255c69e92828a8db9b2684..3f444acd6a37be1ab5f882178ebb8a426f0cae36 100755 --- a/kde/src/SFLPhoneView.h +++ b/kde/src/SFLPhoneView.h @@ -37,28 +37,28 @@ class AccountWizard; class CallView; -/** - * This is the main view class for sflphone-client-kde. Most of the non-menu, - * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go - * here. - * As the state of the view has effects on the window, - * it emits some signals to ask for changes that the window has - * to treat. - * - * @short Main view - * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> - * @version 0.9.6 +/** + * This is the main view class for sflphone-client-kde. Most of the non-menu, + * non-toolbar, and non-statusbar (e.g., non frame) GUI code should go + * here. + * As the state of the view has effects on the window, + * it emits some signals to ask for changes that the window has + * to treat. + * + * @short Main view + * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com> + * @version 0.9.6 */ class SFLPhoneView : public QWidget, public Ui::SFLPhone_view { Q_OBJECT - + private: AccountWizard * wizard; QErrorMessage * errorWindow; protected: - + /** * override context menu handling * @param event @@ -74,21 +74,21 @@ public: * You should call the loadWindow() method once * you have constructed the object and connected the * expected signals. - * @param parent + * @param parent */ SFLPhoneView(QWidget *parent); virtual ~SFLPhoneView(); - + //Getters - - + + QErrorMessage * getErrorWindow(); - - + + //Daemon getters /** * Used to sort contacts according to their types with Kabc. - * @return the integer resulting to the flags of the types + * @return the integer resulting to the flags of the types * chosen to be displayed in SFLphone configuration. */ int phoneNumberTypesDisplayed(); @@ -102,16 +102,16 @@ private slots: * @param action the code of the action to perform */ void action(Call * call, call_action action); - + /** * Sets the account account to be the prior account. * That means it's gonna be used when the user places a call - * if it's defined and registered, else the first registered of + * if it's defined and registered, else the first registered of * accountList will be used. * @param account the account to use prior */ void setAccountFirst(Account * account); - + /** * Handles the behaviour when the user types something with * the dialpad widget or his keyboard (normally it's a one char @@ -152,7 +152,7 @@ private slots: /** * Updates the history's search bar's display according to the current - * text searched. + * text searched. * If empty, hide the search bar. */ void updateRecordButton (); @@ -161,7 +161,7 @@ private slots: void updateVolumeBar (double _value = -1); void updateVolumeControls (); void updateDialpad (); - + public slots: /** @@ -169,17 +169,17 @@ public slots: * according to the settings. */ void loadWindow(); - + /** - * Updates the toolbar's actions' display according to the selected + * Updates the toolbar's actions' display according to the selected * item's state. */ void updateWindowCallState(); - - + + void updateStatusMessage(); - - + + virtual void keyPressEvent(QKeyEvent *event) { int key = event->key(); @@ -209,19 +209,19 @@ public slots: void transfer (); void record (); void mailBox (); - + void on_widget_dialpad_typed(QString text); - + void on_slider_recVol_valueChanged ( int value ); void on_slider_sndVol_valueChanged ( int value ); void on_toolButton_recVol_clicked ( bool checked ); void on_toolButton_sndVol_clicked ( bool checked ); - + void on1_error(MapStringString details); void on1_incomingCall(Call* call); void on1_voiceMailNotify(const QString &accountID, int count); void on1_volumeChanged(const QString &device, double value); - + signals: void statusMessageChangeAsked ( const QString& message ); void windowTitleChangeAsked ( const QString& title ); @@ -233,7 +233,7 @@ signals: void addressBookEnableAsked ( bool enableAddressBook ); void screenChanged(int screen); void incomingCall(const Call * call); - + }; diff --git a/kde/src/SFLPhoneapplication.cpp b/kde/src/SFLPhoneapplication.cpp index cdaf6472ab131bdfe0a9c5cfd4ccaa38f45bf356..75aec9e06f06eccb0e99bce01a97ebf873727686 100755 --- a/kde/src/SFLPhoneapplication.cpp +++ b/kde/src/SFLPhoneapplication.cpp @@ -95,7 +95,7 @@ void SFLPhoneApplication::initializeMainWindow() // if( KMainWindow::classNameOfToplevel( n ) != QLatin1String( "SFLPhone" ) ) { // continue; // } -// +// // restoredWindow = n; // break; // } @@ -128,7 +128,7 @@ void SFLPhoneApplication::initializePaths() Q_NOREPLY void SFLPhoneApplication::quit2() { - + } #include "SFLPhoneapplication.moc" diff --git a/kde/src/conf/ConfigAccountList.cpp b/kde/src/conf/ConfigAccountList.cpp index f41399054bf8eb59972fffc662997a9e19d3345e..9de04ed73a3c60f3a012895e19e1fda800b7a91e 100644 --- a/kde/src/conf/ConfigAccountList.cpp +++ b/kde/src/conf/ConfigAccountList.cpp @@ -39,7 +39,7 @@ AccountView* ConfigAccountList::addAccount(const QString& alias) void ConfigAccountList::removeAccount(QListWidgetItem* item) { - if(!item) + if(!item) kDebug() << "Attempting to remove an account from a NULL item."; return; AccountView* a = (AccountView*) getAccountByItem(item); diff --git a/kde/src/conf/ConfigAccountList.h b/kde/src/conf/ConfigAccountList.h index c2b8bd09cbd2a1dbb975e056e7b274afd2114754..ac8538bce1ada095eac37a9f164e28d88833026f 100644 --- a/kde/src/conf/ConfigAccountList.h +++ b/kde/src/conf/ConfigAccountList.h @@ -24,7 +24,7 @@ class ConfigAccountList : public QObject { AccountView* getAccountByItem ( QListWidgetItem* item ) ; QVector<AccountView*> getAccountByState ( QString & state ) ; AccountView* getAccountById ( const QString & id ) const; - + ///Mutators virtual AccountView* addAccount ( const QString & alias ); void removeAccount ( QListWidgetItem* item ); @@ -39,7 +39,7 @@ class ConfigAccountList : public QObject { private: QVector<AccountView*>* accounts; - + signals: void accountListUpdated(); }; diff --git a/kde/src/conf/ConfigurationDialog.cpp b/kde/src/conf/ConfigurationDialog.cpp index b8c184ae3dd80a738d62d1d40fd684060f31aa3f..c24fd3433d74c05e3a34ddf89d0b39afd564cbb0 100755 --- a/kde/src/conf/ConfigurationDialog.cpp +++ b/kde/src/conf/ConfigurationDialog.cpp @@ -39,24 +39,24 @@ ConfigurationDialog::ConfigurationDialog(SFLPhoneView *parent) :KConfigDialog(parent, SETTINGS_NAME, ConfigurationSkeleton::self()) { this->setWindowIcon(QIcon(ICON_SFLPHONE)); - + dlgGeneral = new DlgGeneral (this); dlgDisplay = new DlgDisplay (this); dlgAccounts = new DlgAccounts (this); dlgAudio = new DlgAudio (this); dlgAddressBook = new DlgAddressBook (this); dlgHooks = new DlgHooks (this); - - addPage( dlgGeneral , i18n("General") , "sflphone-client-kde" ); - addPage( dlgDisplay , i18n("Display") , "applications-graphics" ); + + addPage( dlgGeneral , i18n("General") , "sflphone-client-kde" ); + addPage( dlgDisplay , i18n("Display") , "applications-graphics" ); addPage( dlgAccounts , i18n("Accounts") , "user-identity" ); - addPage( dlgAudio , i18n("Audio") , "audio-headset" ); + addPage( dlgAudio , i18n("Audio") , "audio-headset" ); addPage( dlgAddressBook , i18n("Address Book") , "x-office-address-book" ); addPage( dlgHooks , i18n("Hooks") , "insert-link" ); - + connect(this, SIGNAL(applyClicked()), this, SLOT(applyCustomSettings())); connect(this, SIGNAL(okClicked()), this, SLOT(applyCustomSettings())); - + connect(dlgGeneral, SIGNAL(clearCallHistoryAsked()), this, SIGNAL(clearCallHistoryAsked())); } diff --git a/kde/src/conf/ConfigurationDialog.h b/kde/src/conf/ConfigurationDialog.h index 879793939bd626e0cf8900b1a7d2f422b1718ba2..06bc43c9ae9c398982f6116a9047ff38849fe644 100755 --- a/kde/src/conf/ConfigurationDialog.h +++ b/kde/src/conf/ConfigurationDialog.h @@ -48,7 +48,7 @@ class SFLPhoneView; A few complicated settings are handled directly by its pages. Some custom behaviors have been added to handle specific cases, as this config dialog is not the usual kind. - A few things might be done a cleaner way by passing the handling + A few things might be done a cleaner way by passing the handling to the skeleton like it has been done with codecs. */ class ConfigurationDialog : public KConfigDialog @@ -56,7 +56,7 @@ class ConfigurationDialog : public KConfigDialog Q_OBJECT private: - + DlgGeneral * dlgGeneral; DlgDisplay * dlgDisplay; DlgAccounts * dlgAccounts; @@ -68,8 +68,8 @@ public: ConfigurationDialog(SFLPhoneView *parent = 0); ~ConfigurationDialog(); - - + + public slots: /** * Reimplements KConfigDialog @@ -93,12 +93,12 @@ public slots: * @return whether any custom widget has changed in the dialog. */ bool hasChanged(); - + /** * reloads the informations before showing it. */ void reload(); - + private slots: /** * Apply settings not managed by kconfig (accounts) @@ -110,7 +110,7 @@ private slots: signals: void clearCallHistoryAsked(); void changesApplied(); - + }; #endif diff --git a/kde/src/conf/ConfigurationSkeleton.cpp b/kde/src/conf/ConfigurationSkeleton.cpp index 683e29d9457748096d04930f09a396eaf6dfe565..3fadaea56a68bc8417ba73df0ce67027d86d4c1d 100755 --- a/kde/src/conf/ConfigurationSkeleton.cpp +++ b/kde/src/conf/ConfigurationSkeleton.cpp @@ -40,7 +40,7 @@ ConfigurationSkeleton * ConfigurationSkeleton::self() { if(instance == NULL) { instance = new ConfigurationSkeleton(); } - return instance; + return instance; } @@ -57,17 +57,17 @@ void ConfigurationSkeleton::readConfig() { //ConfigurationSkeleton::readConfig(); kDebug() << "Reading config"; - + ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - + //////////////////////// ////General settings//// //////////////////////// - + //Call history settings //setEnableHistory(true); setHistoryMax(1000);//configurationManager.getHistoryLimit()); - + //////////////////////// ////Display settings//// //////////////////////// @@ -75,22 +75,22 @@ void ConfigurationSkeleton::readConfig() //Notification settings setNotifOnCalls(true); setNotifOnMessages(true);//configurationManager.getMailNotify()); - + //Window display settings setDisplayOnStart(true); setDisplayOnCalls(true); - + ///////////////////////// ////Accounts settings//// ///////////////////////// - + // loadAccountList(); - + ////////////////////// ////Audio settings//// ////////////////////// - + //Audio Interface settings QString audioManager = configurationManager.getAudioManager(); kDebug() << "audioManager = " << audioManager; @@ -118,23 +118,23 @@ void ConfigurationSkeleton::readConfig() kDebug() << "inputDevice = " << devices[1]; inputDevice = devices[1].toInt(& ok); } - else + else kDebug() << "Fatal: Too few audio devices"; - if(!ok) + if(!ok) kDebug() << "inputDevice is not a number"; - + setAlsaInputDevice(inputDevice); - + //kDebug() << "outputDevice = " << devices[0]; //int outputDevice = devices[0].toInt(& ok); //if(!ok) kDebug() << "outputDevice is not a number"; - //setAlsaOutputDevice(outputDevice); - + //setAlsaOutputDevice(outputDevice); + /////////////////////// ////Record settings//// /////////////////////// - + QString recordPath = configurationManager.getRecordPath(); if(! recordPath.isEmpty()) { setDestinationFolder(recordPath); @@ -142,13 +142,13 @@ void ConfigurationSkeleton::readConfig() else { setDestinationFolder(QDir::home().path()); } - - - + + + ///////////////////////////// ////Address book settings//// ///////////////////////////// - + MapStringInt addressBookSettings = configurationManager.getAddressbookSettings().value(); setEnableAddressBook(addressBookSettings[ADDRESSBOOK_ENABLE]); setMaxResults(addressBookSettings[ADDRESSBOOK_MAX_RESULTS]); @@ -156,11 +156,11 @@ void ConfigurationSkeleton::readConfig() setBusiness(addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS]); setMobile(addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE]); setHome(addressBookSettings[ADDRESSBOOK_DISPLAY_HOME]); - + ///////////////////////////// ///////Hooks settings//////// ///////////////////////////// - + MapStringString hooksSettings = configurationManager.getHookSettings().value(); setAddPrefix(hooksSettings[HOOKS_ENABLED]=="1"); setPrepend(hooksSettings[HOOKS_ADD_PREFIX]); @@ -168,7 +168,7 @@ void ConfigurationSkeleton::readConfig() setEnableHooksIAX(hooksSettings[HOOKS_IAX2_ENABLED]=="1"); setHooksSIPHeader(hooksSettings[HOOKS_SIP_FIELD]); setHooksCommand(hooksSettings[HOOKS_COMMAND]); - + kDebug() << "Finished to read config"; } @@ -177,14 +177,14 @@ void ConfigurationSkeleton::writeConfig() //ConfigurationSkeleton::writeConfig(); kDebug() << "Writing config"; /*ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); - - + + //////////////////////// ////General settings//// //////////////////////// - + kDebug() << "Writing General settings"; - + //Call history settings //if(enableHistory() != QVariant(configurationManager.getHistoryEnabled()).toBool() ) { //configurationManager.setHistoryEnabled(); @@ -195,39 +195,39 @@ void ConfigurationSkeleton::writeConfig() //////////////////////// ////Display settings//// //////////////////////// - + kDebug() << "Writing Display settings"; - + //Notification settings //if(notifOnCalls() != configurationManager.getNotify()) configurationManager.setNotify(); //if(notifOnMessages() != configurationManager.getMailNotify()) configurationManager.setMailNotify(); - + //Window display settings //WARNING états inversés //if(displayOnStart() == configurationManager.isStartHidden()) configurationManager.startHidden(); //if(displayOnCalls() != configurationManager.popupMode()) configurationManager.switchPopupMode(); - + ///////////////////////// ////Accounts settings//// ///////////////////////// - + kDebug() << "Writing Accounts settings"; - + // saveAccountList(); ////////////////////// ////Audio settings//// ////////////////////// - + kDebug() << "Writing Audio settings"; - + //Audio Interface settings int prevManager = configurationManager.getAudioManager(); int newManager = interface(); if(prevManager != newManager) { configurationManager.setAudioManager(newManager); } - + //ringtones settings if(enableRingtones() != configurationManager.isRingtoneEnabled()) configurationManager.ringtoneEnabled(); configurationManager.setRingtoneChoice(ringtone()); @@ -235,7 +235,7 @@ void ConfigurationSkeleton::writeConfig() //codecs settings //kDebug() << "activeCodecList = " << activeCodecList(); //configurationManager.setActiveCodecList(activeCodecList()); - + //alsa settings if(prevManager == CONST_ALSA && newManager == EnumInterface::ALSA) { @@ -244,24 +244,24 @@ void ConfigurationSkeleton::writeConfig() configurationManager.setAudioInputDevice(alsaInputDevice()); configurationManager.setAudioOutputDevice(alsaOutputDevice()); } - - + + /////////////////////// ////Record settings//// /////////////////////// - + kDebug() << "Writing Record settings"; - + QString destination = destinationFolder(); configurationManager.setRecordPath(destination); - - + + ///////////////////////////// ////Address Book settings//// ///////////////////////////// - + kDebug() << "Writing Address Book settings"; - + MapStringInt addressBookSettings = MapStringInt(); addressBookSettings[ADDRESSBOOK_ENABLE] = enableAddressBook(); addressBookSettings[ADDRESSBOOK_MAX_RESULTS] = maxResults(); @@ -270,13 +270,13 @@ void ConfigurationSkeleton::writeConfig() addressBookSettings[ADDRESSBOOK_DISPLAY_MOBILE] = mobile(); addressBookSettings[ADDRESSBOOK_DISPLAY_HOME] = home(); configurationManager.setAddressbookSettings(addressBookSettings); - + ///////////////////////////// ///////Hooks settings//////// ///////////////////////////// - + kDebug() << "Writing Hooks settings"; - + MapStringString hooksSettings = MapStringString(); hooksSettings[HOOKS_ENABLED] = addPrefix() ? "1" : "0"; hooksSettings[HOOKS_ADD_PREFIX] = prepend(); @@ -285,7 +285,7 @@ void ConfigurationSkeleton::writeConfig() hooksSettings[HOOKS_SIP_FIELD] = hooksSIPHeader(); hooksSettings[HOOKS_COMMAND] = hooksCommand(); configurationManager.setHookSettings(hooksSettings); - + kDebug() << "Finished to write config\n";*/ ConfigurationSkeletonBase::writeConfig(); } @@ -294,7 +294,7 @@ void ConfigurationSkeleton::writeConfig() // { // return codecListModel->getActiveCodecList(); // } -// +// // void ConfigurationSkeleton::setActiveCodecList(const QStringList & v) // { // codecListModel->setActiveCodecList(v); @@ -302,6 +302,6 @@ void ConfigurationSkeleton::writeConfig() // void ConfigurationSkeleton::writeConfig() // { -// +// // ConfigurationSkeletonBase::writeConfig(); // } \ No newline at end of file diff --git a/kde/src/conf/ConfigurationSkeleton.h b/kde/src/conf/ConfigurationSkeleton.h index a9fcb1a3f7f605142f1a690bfd0d1b3b4fda9f86..cd99acd48a1770c1f31181f2677f399355c01fd2 100755 --- a/kde/src/conf/ConfigurationSkeleton.h +++ b/kde/src/conf/ConfigurationSkeleton.h @@ -30,10 +30,10 @@ /** @author Jérémy Quentin <jeremy.quentin@gmail.com> This class represents the config skeleton for the config dialog. - It inherits the KConfigSkeleton "ConfigurationSkeletonBase"generated + It inherits the KConfigSkeleton "ConfigurationSkeletonBase"generated by sflphone-client-kde.kcfg which handles most of the settings. - This class handles the codec list. - A few complicated settings are handled directly by the config dialog + This class handles the codec list. + A few complicated settings are handled directly by the config dialog and its pages (accounts, sound managers). This class reimplements the writeConfig and readConfig functions to ask the daemon instead of the normal behavior (read and write in a kconfig file). @@ -44,29 +44,29 @@ Q_OBJECT private: static ConfigurationSkeleton * instance; - + //CodecListModel * codecListModel; public: ConfigurationSkeleton(); ~ConfigurationSkeleton(); - + /** * @copydoc KCoreConfigSkeleton::readConfig() */ virtual void readConfig(); - + /** * @copydoc KCoreConfigSkeleton::writeConfig() */ virtual void writeConfig(); - + static ConfigurationSkeleton * self(); - + //QStringList activeCodecList() const; //void setActiveCodecList(const QStringList & v); - + //CodecListModel * getCodecListModel(); }; diff --git a/kde/src/conf/dlgaccounts.cpp b/kde/src/conf/dlgaccounts.cpp index f5d27aca18dce67316c02f9be85c68a94c22ada0..5f300b648060b1f392682824949aa8616c826ab0 100755 --- a/kde/src/conf/dlgaccounts.cpp +++ b/kde/src/conf/dlgaccounts.cpp @@ -135,7 +135,7 @@ DlgAccounts::DlgAccounts(KConfigDialog* parent) connect(list_credential, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this,SLOT( selectCredential(QListWidgetItem*, QListWidgetItem*))); - + //Disable control connect(radioButton_pa_same_as_local, SIGNAL(clicked(bool)) , this , SLOT(enablePublished())); connect(radioButton_pa_custom, SIGNAL(clicked(bool)) , this , SLOT(enablePublished())); @@ -206,15 +206,15 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) { QString protocolsTab[] = ACCOUNT_TYPES_TAB; - if(! item) { + if(! item) { kDebug() << "Attempting to save details of an account from a NULL item"; - return; + return; } - + AccountView* account = accountList->getAccountByItem(item); if(!account) { kDebug() << "Attempting to save details of an unexisting account : " << item->text(); - return; + return; } //ACCOUNT DETAILS // FIELD WIDGET VALUE / @@ -255,7 +255,7 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) /**/account->setAccountDetail( LOCAL_PORT , QString::number(spinBox_pa_published_port->value()) ); /**/account->setAccountDetail( LOCAL_INTERFACE , comboBox_ni_local_address->currentText() ); // / - + QStringList _codecList; foreach (QString aCodec, keditlistbox_codec->items()) { foreach (StringHash _aCodec, codecList) { @@ -268,31 +268,31 @@ void DlgAccounts::saveAccount(QListWidgetItem * item) ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); configurationManager.setActiveAudioCodecList(_codecList, account->getAccountDetail(ACCOUNT_ID)); kDebug() << "Account codec have been saved" << _codecList << account->getAccountDetail(ACCOUNT_ID); - + saveCredential(account->getAccountDetail(ACCOUNT_ID)); } void DlgAccounts::loadAccount(QListWidgetItem * item) { - if(! item ) { + if(! item ) { kDebug() << "Attempting to load details of an account from a NULL item"; - return; + return; } AccountView* account = accountList->getAccountByItem(item); - if(! account ) { + if(! account ) { kDebug() << "Attempting to load details of an unexisting account"; - return; + return; } edit1_alias->setText( account->getAccountDetail(ACCOUNT_ALIAS)); - + QString protocolsTab[] = ACCOUNT_TYPES_TAB; QList<QString> * protocolsList = new QList<QString>(); - for(int i = 0 ; i < (int) (sizeof(protocolsTab) / sizeof(QString)) ; i++) { + for(int i = 0 ; i < (int) (sizeof(protocolsTab) / sizeof(QString)) ; i++) { protocolsList->append(protocolsTab[i]); } - + QString accountName = account->getAccountDetail(ACCOUNT_TYPE); int protocolIndex = protocolsList->indexOf(accountName); delete protocolsList; @@ -300,7 +300,7 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) loadCredentails(account->getAccountDetail(ACCOUNT_ID)); - + bool ok; int val = account->getAccountDetail(ACCOUNT_EXPIRE).toInt(&ok); spinbox_regExpire->setValue(ok ? val : ACCOUNT_EXPIRE_DEFAULT); @@ -309,8 +309,8 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) edit5_password->setText( credentialList[0].password ); - - + + switch (account->getAccountDetail(TLS_METHOD ).toInt()) { case 0: //KEY_EXCHANGE_NONE checkbox_SDES_fallback_rtp->setVisible ( false ); @@ -367,14 +367,14 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) /**/group_security_tls->setChecked ( (account->getAccountDetail( TLS_ENABLE ) == "true")?1:0 ); /**/combo_security_STRP->setCurrentIndex ( account->getAccountDetail( TLS_METHOD ).toInt() ); /* */ - + combo_tls_method->setCurrentIndex ( combo_tls_method->findText(account->getAccountDetail(TLS_METHOD ))); ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); comboBox_ni_local_address->clear(); QStringList interfaceList = configurationManager.getAllIpInterfaceByName(); comboBox_ni_local_address->addItems(interfaceList); - + spinBox_ni_local_port->setValue(account->getAccountDetail(LOCAL_PORT).toInt()); comboBox_ni_local_address->setCurrentIndex(comboBox_ni_local_address->findText(account->getAccountDetail(LOCAL_INTERFACE))); //TODO need to load the list first @@ -386,8 +386,8 @@ void DlgAccounts::loadAccount(QListWidgetItem * item) keditlistbox_codec->insertItem(_aCodec["alias"]); } } - - + + if(protocolIndex == 0) { // if sip selected checkbox_stun->setChecked(account->getAccountDetail(ACCOUNT_SIP_STUN_ENABLED) == ACCOUNT_ENABLED_TRUE); @@ -419,9 +419,9 @@ void DlgAccounts::loadAccountList() for (int i = 0; i < accountList->size(); ++i) { addAccountToAccountList((*accountList)[i]); } - if (listWidget_accountList->count() > 0 && listWidget_accountList->currentItem() == NULL) + if (listWidget_accountList->count() > 0 && listWidget_accountList->currentItem() == NULL) listWidget_accountList->setCurrentRow(0); - else + else frame2_editAccounts->setEnabled(false); } @@ -527,7 +527,7 @@ void DlgAccounts::updateAccountListCommands() if(listWidget_accountList->currentRow() == listWidget_accountList->count() - 1) { buttonsEnabled[1] = false; } - + button_accountUp->setEnabled ( buttonsEnabled[0] ); button_accountDown->setEnabled ( buttonsEnabled[1] ); button_accountAdd->setEnabled ( buttonsEnabled[2] ); @@ -546,8 +546,8 @@ void DlgAccounts::updateAccountStates() void DlgAccounts::updateStatusLabel(QListWidgetItem * item) { - if(! item ) { - return; + if(! item ) { + return; } AccountView* account = accountList->getAccountByItem(item); updateStatusLabel(account); @@ -555,8 +555,8 @@ void DlgAccounts::updateStatusLabel(QListWidgetItem * item) void DlgAccounts::updateStatusLabel(AccountView* account) { - if(! account ) { - return; + if(! account ) { + return; } QString status = account->getAccountDetail(ACCOUNT_STATUS); edit7_state->setText( "<FONT COLOR=\"" + account->getStateColorName() + "\">" + status + "</FONT>" ); @@ -585,12 +585,12 @@ void DlgAccounts::updateWidgets() accountListHasChanged = false; } -void DlgAccounts::loadCodecList() +void DlgAccounts::loadCodecList() { ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); QVector<int> codecIdList = configurationManager.getAudioCodecList(); QStringList tmpNameList; - + foreach (int aCodec, codecIdList) { QStringList codec = configurationManager.getAudioCodecDetails(aCodec); QHash<QString, QString> _codec; @@ -598,12 +598,12 @@ void DlgAccounts::loadCodecList() _codec[ "frequency" ] = codec[1]; _codec[ "bitrate" ] = codec[2]; _codec[ "id" ] = QString::number(aCodec); - + tmpNameList << _codec["name"]; - + codecList.push_back(_codec); } - + //Generate a relative alias for each codec for (int i =0; i < codecList.size();i++) { if (tmpNameList.indexOf(codecList[i]["name"]) == tmpNameList.lastIndexOf(codecList[i]["name"])) { @@ -616,7 +616,7 @@ void DlgAccounts::loadCodecList() } -void DlgAccounts::codecClicked(const QModelIndex& model) +void DlgAccounts::codecClicked(const QModelIndex& model) { Q_UNUSED(model) foreach (StringHash aCodec, codecList) { @@ -631,7 +631,7 @@ void DlgAccounts::codecClicked(const QModelIndex& model) keditlistbox_codec->addButton()->setEnabled(true); } -void DlgAccounts::addCodec(QString name) +void DlgAccounts::addCodec(QString name) { if (name.isEmpty()) { Private_AddCodecDialog* aDialog = new Private_AddCodecDialog(codecList, keditlistbox_codec->items(), this); @@ -645,18 +645,18 @@ void DlgAccounts::addCodec(QString name) } } -void DlgAccounts::codecChanged() +void DlgAccounts::codecChanged() { if (keditlistbox_codec->items().size() == codecList.size()) keditlistbox_codec->addButton()->setEnabled(false); else keditlistbox_codec->addButton()->setEnabled(true); - + accountListHasChanged = true; emit updateButtons(); } -void DlgAccounts::updateCombo(int value) +void DlgAccounts::updateCombo(int value) { Q_UNUSED(value) switch (combo_security_STRP->currentIndex()) { @@ -708,7 +708,7 @@ void DlgAccounts::saveCredential(QString accountId) { ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); //configurationManager.setNumberOfCredential(accountId, list_credential->count()); //TODO VectorMapStringString toReturn; - + for (int i=0; i < list_credential->count();i++) { QListWidgetItem* currentItem = list_credential->item(i); MapStringString credentialData; diff --git a/kde/src/conf/dlgaccounts.h b/kde/src/conf/dlgaccounts.h index eb3bb5b44a3df49894ae225ff18f4ce9291b8460..39c64829e5cfd41bdb76b7159d49925ae9e2ecf8 100755 --- a/kde/src/conf/dlgaccounts.h +++ b/kde/src/conf/dlgaccounts.h @@ -51,20 +51,20 @@ class Private_AddCodecDialog : public KDialog { Q_OBJECT public: Private_AddCodecDialog(QList< StringHash > itemList, QStringList currentItems ,QWidget* parent = 0); - + private: QTableWidget* codecTable; - + private slots: void emitNewCodec(); - + signals: void addCodec(QString alias); }; -/** - * @author Jérémy Quentin <jeremy.quentin@gmail.com> - * +/** + * @author Jérémy Quentin <jeremy.quentin@gmail.com> + * * \note see ticket #1309 for advices about how to improve this class. */ class DlgAccounts : public QWidget, public Ui_DlgAccountsBase @@ -74,23 +74,23 @@ public: DlgAccounts(KConfigDialog *parent = 0); void saveAccount(QListWidgetItem * item); - + /** - * Fills the settings form in the right side with the - * settings of @p item. - * - * \note When the user creates a new account, its accountDetails - * map is empty, so the form is filled with blank strings, - * zeros... And when the user clicks \e Apply , these settings are - * saved just after the account is created. So be careful the form - * is filled with the right default settings if blank (as 600 for - * registration expire). - * - * @param item the item with which to fill the settings form - * + * Fills the settings form in the right side with the + * settings of @p item. + * + * \note When the user creates a new account, its accountDetails + * map is empty, so the form is filled with blank strings, + * zeros... And when the user clicks \e Apply , these settings are + * saved just after the account is created. So be careful the form + * is filled with the right default settings if blank (as 600 for + * registration expire). + * + * @param item the item with which to fill the settings form + * */ void loadAccount(QListWidgetItem * item); - + private: ///Attributes ConfigAccountList* accountList ; @@ -108,7 +108,7 @@ public slots: bool hasChanged (); void updateSettings (); void updateWidgets (); - + private slots: void changedAccountList (); void connectAccountsChangedSignal (); @@ -123,7 +123,7 @@ private slots: void enablePublished (); void updateAccountStates (); void updateAccountListCommands (); - + void codecClicked ( const QModelIndex& model ); void updateStatusLabel ( QListWidgetItem* item ); void on_listWidget_accountList_currentItemChanged ( QListWidgetItem* current , QListWidgetItem * previous ); @@ -135,8 +135,8 @@ private slots: void loadCredentails ( QString accountId ); void saveCredential ( QString accountId ); void on_edit1_alias_textChanged ( const QString& text ); - - + + signals: void updateButtons(); diff --git a/kde/src/conf/dlgaudio.cpp b/kde/src/conf/dlgaudio.cpp index adf36b85eb7a3a6630ad0b0abe422f262a88b344..ae9bbd966f15f5b8f3dce3c9969cac1adb318800 100755 --- a/kde/src/conf/dlgaudio.cpp +++ b/kde/src/conf/dlgaudio.cpp @@ -32,19 +32,19 @@ DlgAudio::DlgAudio(KConfigDialog *parent) : QWidget(parent) { setupUi(this); - + KUrlRequester_ringtone->setMode(KFile::File | KFile::ExistingOnly); - KUrlRequester_ringtone->lineEdit()->setObjectName("kcfg_ringtone"); - KUrlRequester_ringtone->lineEdit()->setReadOnly(true); - + KUrlRequester_ringtone->lineEdit()->setObjectName("kcfg_ringtone"); + KUrlRequester_ringtone->lineEdit()->setReadOnly(true); + KUrlRequester_destinationFolder->setMode(KFile::Directory|KFile::ExistingOnly|KFile::LocalOnly); KUrlRequester_destinationFolder->setUrl(KUrl(QDir::home().path())); - KUrlRequester_destinationFolder->lineEdit()->setObjectName("kcfg_destinationFolder"); + KUrlRequester_destinationFolder->lineEdit()->setObjectName("kcfg_destinationFolder"); KUrlRequester_destinationFolder->lineEdit()->setReadOnly(true); - + connect( box_alsaPlugin, SIGNAL(activated(int)), parent, SLOT(updateButtons())); connect( this, SIGNAL(updateButtons()), parent, SLOT(updateButtons())); - + } @@ -63,7 +63,7 @@ void DlgAudio::updateSettings() //alsaPlugin ConfigurationSkeleton * skeleton = ConfigurationSkeleton::self(); skeleton->setAlsaPlugin(box_alsaPlugin->currentText()); - + //codecTableHasChanged = false; } @@ -79,24 +79,24 @@ void DlgAudio::loadAlsaSettings() ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance(); if(QString(configurationManager.getAudioManager()) == "alsa") { ConfigurationSkeleton* skeleton = ConfigurationSkeleton::self(); - + int index = box_alsaPlugin->findText(skeleton->alsaPlugin()); if(index < 0) index = 0; QStringList pluginList = configurationManager.getAudioPluginList (); box_alsaPlugin->clear ( ); box_alsaPlugin->addItems ( pluginList ); box_alsaPlugin->setCurrentIndex ( index ); - + QStringList inputDeviceList = configurationManager.getAudioInputDeviceList (); kcfg_alsaInputDevice->clear ( ); kcfg_alsaInputDevice->addItems ( inputDeviceList ); kcfg_alsaInputDevice->setCurrentIndex ( skeleton->alsaInputDevice() ); - + QStringList outputDeviceList = configurationManager.getAudioOutputDeviceList (); kcfg_alsaOutputDevice->clear ( ); kcfg_alsaOutputDevice->addItems ( outputDeviceList ); kcfg_alsaOutputDevice->setCurrentIndex( skeleton->alsaOutputDevice() ); - + groupBox_alsa->setEnabled(true); } else { diff --git a/kde/src/conf/dlgaudio.h b/kde/src/conf/dlgaudio.h index c8873745b2200877b319bc4887f4f0b9c3771802..5b9a9885e3f41c5ed6539c38c011761e65b0d774 100755 --- a/kde/src/conf/dlgaudio.h +++ b/kde/src/conf/dlgaudio.h @@ -45,18 +45,18 @@ public slots: void updateSettings(); bool hasChanged(); /** - * Loads the ALSA settings to fill the combo boxes - * of the ALSA settings. - * ALSA choices for input, output... can be load only - * when the daemon has set ALSA as sound manager. - * So we have to load these settings once the user choses - * ALSA. + * Loads the ALSA settings to fill the combo boxes + * of the ALSA settings. + * ALSA choices for input, output... can be load only + * when the daemon has set ALSA as sound manager. + * So we have to load these settings once the user choses + * ALSA. */ void loadAlsaSettings(); - + private slots: //void codecTableChanged(); - + signals: void updateButtons(); }; diff --git a/kde/src/conf/kcfg_settings.kcfgc b/kde/src/conf/kcfg_settings.kcfgc index 10b2271aa04c56e17858ae22b6fd057e78827807..b14ca1863f8e830d10729b176f512a36358b339b 100755 --- a/kde/src/conf/kcfg_settings.kcfgc +++ b/kde/src/conf/kcfg_settings.kcfgc @@ -1,4 +1,4 @@ - + File=sflphone-client-kde.kcfg ClassName=ConfigurationSkeletonBase Singleton=true diff --git a/kde/src/conf/sflphone-client-kde.kcfg b/kde/src/conf/sflphone-client-kde.kcfg index 50eccb29a31a0d667d6eb4866f67ca0bcafce515..3bc1f21fb5c8833228e5f10a013060a8e8afc471 100755 --- a/kde/src/conf/sflphone-client-kde.kcfg +++ b/kde/src/conf/sflphone-client-kde.kcfg @@ -1,29 +1,29 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd"> -<kcfg> +<kcfg> <kcfgfile/> <group name="main"> <!-- General Settings --> - - <entry name="SIPPort" type="Int"> - <label>Defines the port that will be used for SIP communication.</label> + + <entry name="SIPPort" type="Int"> + <label>Defines the port that will be used for SIP communication.</label> <min> 1025 </min> <max> 65536 </max> - <default> 1025 </default> + <default> 1025 </default> + </entry> + <entry name="enableHistory" type="Bool"> + <label>Defines whether sflphone should keep a history of calls.</label> </entry> - <entry name="enableHistory" type="Bool"> - <label>Defines whether sflphone should keep a history of calls.</label> - </entry> - <entry name="historyMax" type="Int"> - <label>Defines the number of days the history has to be kept.</label> + <entry name="historyMax" type="Int"> + <label>Defines the number of days the history has to be kept.</label> <min> 1 </min> <max> 99 </max> - <default> 30 </default> - </entry> - + <default> 30 </default> + </entry> + <!-- Display Settings --> - + <entry name="notifOnCalls" type="Bool"> <label>Defines whether user should be notified when receiving a call.</label> </entry> @@ -51,9 +51,9 @@ <entry name="displayContactCallHistory" type="Bool"> <label>Defines if the individual contact history list is visible</label> </entry> - + <!-- Audio Settings --> - + <entry name="interface" type="Enum"> <label>Defines the Stun server to use.</label> <choices> @@ -67,7 +67,7 @@ <entry name="ringtone" type="Path"> <label>Defines which ringtone is used.</label> </entry> - <!-- + <!-- <entry name="activeCodecList" type="StringList"> <label>Defines which ALSA plugin to use.</label> </entry> @@ -84,9 +84,9 @@ <entry name="pulseAudioVolumeAlter" type="Bool"> <label>Defines whether pulse audio can mute other applications during a call.</label> </entry> - + <!-- Address Book Settings --> - + <entry name="enableAddressBook" type="Bool"> <label>Defines whether the search in KDE Address Book is enabled</label> </entry> @@ -110,15 +110,15 @@ <entry name="bookmarkList" type="StringList"> <label>List of bookmarked clients</label> </entry> - + <!-- Record Settings --> - + <entry name="destinationFolder" type="Path"> <label>Defines the destination directory for call recordings.</label> </entry> - + <!-- Hooks Settings --> - + <entry name="enableHooksSIP" type="Bool"> <label>Defines whether to enable hooks for SIP accounts.</label> </entry> @@ -137,5 +137,5 @@ <entry name="prepend" type="String"> <label>Defines the prefix to add.</label> </entry> - </group> + </group> </kcfg> diff --git a/kde/src/dbus/callmanager-introspec.xml b/kde/src/dbus/callmanager-introspec.xml index 645a776d00cdb23af14f9d4dca3fae42835df746..a742426b77507d01a447521eca94b2237ad136f1 100755 --- a/kde/src/dbus/callmanager-introspec.xml +++ b/kde/src/dbus/callmanager-introspec.xml @@ -206,7 +206,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join two participants together to create a 3-way conference including the current client.</p> - <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/> @@ -225,7 +225,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Join a new particiant to an existing conference.</p> - <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> + <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> </tp:docstring> <arg type="s" name="callID" direction="in"> <tp:docstring> @@ -304,7 +304,7 @@ conferences. <tp:rationale>To update client status, one should use <tp:member-ref>getParticipantList</tp:member-ref> - with provided conference IDs.</tp:rationale> + with provided conference IDs.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -324,7 +324,7 @@ </arg> </method> - <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> + <method name="getIsRecording" tp:name-for-bindings="getIsRecording"> <tp:docstring> Tells whether or not a call is being recorded. </tp:docstring> @@ -342,7 +342,7 @@ <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath"> <tp:docstring> - Once after starting recording for the first time, this signal is emited to + Once after starting recording for the first time, this signal is emited to provide the recorded file path to client application. </tp:docstring> <arg type="s" name="callID" /> @@ -383,7 +383,7 @@ <method name="getCallList" tp:name-for-bindings="getCallList"> <tp:docstring> Get the list of active calls. - <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> + <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> </tp:docstring> <arg type="as" name="list" direction="out"> <tp:docstring> @@ -455,7 +455,7 @@ <signal name="incomingMessage" tp:name-for-bindings="incomingMessage"> <tp:docstring> - Notify clients that a new text message has been received. + Notify clients that a new text message has been received. </tp:docstring> <arg type="s" name="callID" /> <arg type="s" name="from" /> @@ -464,7 +464,7 @@ <signal name="callStateChanged" tp:name-for-bindings="callStateChanged"> <tp:docstring> - <p>Notify of a change in a call state.</p> + <p>Notify of a change in a call state.</p> <p>The client must subscribe to this signal.</p> </tp:docstring> <arg type="s" name="callID"> @@ -474,7 +474,7 @@ </arg> <arg type="s" name="state" > <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>INCOMING: Initial state of incoming calls</li> <li>RINGING: Initial state of received outgoing call</li> @@ -502,7 +502,7 @@ </arg> <arg type="s" name="state"> <tp:docstring> - The acceptable states are: + The acceptable states are: <ul> <li>ACTIVE_ATTACHED: SFLphone user is participating to this conference</li> @@ -636,7 +636,7 @@ The SIP or IAX2 message code </tp:docstring> </arg> - </signal> + </signal> <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify"> <tp:docstring> @@ -656,7 +656,7 @@ <signal name="volumeChanged" tp:name-for-bindings="volumeChanged"> <tp:docstring> - <p>Notify clients of a volume level change.</p> + <p>Notify clients of a volume level change.</p> <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p> </tp:docstring> <arg type="s" name="device"> @@ -692,7 +692,7 @@ <tp:added version="0.9.7"/> <tp:docstring> <p>Signal sent on SDES session success. Media transmission is encripted - for this call only. It does not apply for a conference.</p> + for this call only. It does not apply for a conference.</p> <p>A conference can be considered to be secured if and only if each participant is secured.</p> </tp:docstring> @@ -702,7 +702,7 @@ <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff"> <tp:added version="0.9.7"/> <tp:docstring> - <p>Sinal sent to notify that SDES session failed.</p> + <p>Sinal sent to notify that SDES session failed.</p> <p>Media transmission is not encrypted.</p> </tp:docstring> <arg type="s" name="callID" /> diff --git a/kde/src/icons/user-group-properties.svgz b/kde/src/icons/user-group-properties.svgz index edc81b9a6ef2ecc393c402a5def7ebb6ae75e832..136ef7f28cf3ec9c7ce4af9163835687e995c81a 100755 Binary files a/kde/src/icons/user-group-properties.svgz and b/kde/src/icons/user-group-properties.svgz differ diff --git a/kde/src/icons/x-office-address-book.png b/kde/src/icons/x-office-address-book.png index fa1be70cd382a67ac38c1ae68caed83df6ce87ab..b677215ef856d740b6581de815405d0fbd0c1e29 100755 Binary files a/kde/src/icons/x-office-address-book.png and b/kde/src/icons/x-office-address-book.png differ diff --git a/kde/src/main.cpp b/kde/src/main.cpp index dec3123eb8727b943387e3373dd7f4950897720d..f91419b4ffb3540ee6335b4d9b6c4160bbab439c 100755 --- a/kde/src/main.cpp +++ b/kde/src/main.cpp @@ -56,11 +56,11 @@ static const char version[] = "1.0.2"; int main(int argc, char **argv) { - + try { KLocale::setMainCatalog("sflphone-client-kde"); - + KAboutData about( "sflphone-client-kde" , "sflphone-client-kde" , @@ -79,7 +79,7 @@ int main(int argc, char **argv) KCmdLineArgs::init(argc, argv, &about); KCmdLineOptions options; KCmdLineArgs::addCmdLineOptions(options); - + //configuration dbus TreeWidgetCallModel::init(); @@ -91,9 +91,9 @@ int main(int argc, char **argv) return 1; }; sflphoneWindow_->show(); - + int retVal = app.exec(); - + ConfigurationSkeleton* conf = ConfigurationSkeleton::self(); conf->writeConfig(); delete sflphoneWindow_; @@ -107,4 +107,4 @@ int main(int argc, char **argv) { kDebug() << msg; } -} +} diff --git a/kde/src/widgets/AccountItemWidget.cpp b/kde/src/widgets/AccountItemWidget.cpp index 1adfabc30088f7465baefcfcacfe73de0049456a..7be1cf55fbdc87e0dcc3c8dd5dfdeacec76f0d79 100755 --- a/kde/src/widgets/AccountItemWidget.cpp +++ b/kde/src/widgets/AccountItemWidget.cpp @@ -37,11 +37,11 @@ AccountItemWidget::AccountItemWidget(QWidget *parent) { m_pCheckBox = new QCheckBox(this); m_pCheckBox->setObjectName("m_pCheckBox"); - + m_pLed = new QLabel(); m_pLed->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); m_pTextLabel = new QLabel(); - + QSpacerItem* horizontalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Preferred, QSizePolicy::Minimum); QHBoxLayout* hlayout = new QHBoxLayout(); hlayout->setContentsMargins( 0,0,0,0 ); @@ -49,12 +49,12 @@ AccountItemWidget::AccountItemWidget(QWidget *parent) hlayout->addWidget ( m_pTextLabel ); hlayout->addItem ( horizontalSpacer ); hlayout->addWidget ( m_pLed ); - + this->setLayout(hlayout); m_State = Unregistered; m_Enabled = false; updateDisplay(); - + QMetaObject::connectSlotsByName(this); } diff --git a/kde/src/widgets/AccountItemWidget.h b/kde/src/widgets/AccountItemWidget.h index e2d1659a8cac2502667bc231c07c894a3f82da99..8b5cabe200ba5252aa5af4956fe7bbb50230a54b 100755 --- a/kde/src/widgets/AccountItemWidget.h +++ b/kde/src/widgets/AccountItemWidget.h @@ -18,7 +18,7 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ - + #ifndef ACCOUNTITEMWIDGET_H #define ACCOUNTITEMWIDGET_H @@ -43,17 +43,17 @@ public: //Getters int getState (); bool getEnabled(); - + //Setters void setState (int state ); void setEnabled (bool enabled ); void setAccountText (const QString& text ); - + //Updates void updateStateDisplay (); void updateEnabledDisplay (); void updateDisplay (); - + private: //Attributes int m_State ; @@ -61,10 +61,10 @@ private: QLabel* m_pLed ; QCheckBox* m_pCheckBox ; QLabel* m_pTextLabel; - -private slots: + +private slots: void on_m_pCheckBox_stateChanged(int state); - + signals: void checkStateChanged(bool checked); diff --git a/kde/src/widgets/BookmarkDock.cpp b/kde/src/widgets/BookmarkDock.cpp index 1d255a012b50d6b0efae48001e4366c8825216aa..37638d7aae7c8933d2de67e9933359912fc89d43 100644 --- a/kde/src/widgets/BookmarkDock.cpp +++ b/kde/src/widgets/BookmarkDock.cpp @@ -62,7 +62,7 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent) setObjectName("bookmarkDock"); setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum); setMinimumSize(250,0); - + m_pFilterLE = new KLineEdit(this); m_pSplitter = new QSplitter(Qt::Vertical,this); m_pItemView = new QTreeWidget(this); @@ -75,10 +75,10 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent) mainLayout->addWidget(m_pSplitter); m_pSplitter->addWidget(m_pItemView); mainLayout->addWidget(m_pFilterLE); - + m_pSplitter->setChildrenCollapsible(true); m_pSplitter->setStretchFactor(0,7); - + setWindowTitle(i18n("Bookmark")); m_pItemView->headerItem()->setText(0,i18n("Bookmark") ); @@ -92,7 +92,7 @@ BookmarkDock::BookmarkDock(QWidget* parent) : QDockWidget(parent) ///Destructor BookmarkDock::~BookmarkDock() { - + } diff --git a/kde/src/widgets/CallTreeItem.cpp b/kde/src/widgets/CallTreeItem.cpp index 67e4918f09401189853df20d026057a9b0f075cd..223cacfbdb146861b2da482525243bbc05330d1b 100644 --- a/kde/src/widgets/CallTreeItem.cpp +++ b/kde/src/widgets/CallTreeItem.cpp @@ -65,7 +65,7 @@ CallTreeItem::CallTreeItem(QWidget *parent) ///Destructor CallTreeItem::~CallTreeItem() { - + } @@ -93,7 +93,7 @@ void CallTreeItem::setCall(Call *call) { m_pItemCall = call; setAcceptDrops(true); - + if (m_pItemCall->isConference()) { if (!m_Init) { m_pHistoryPeerL = new QLabel(i18n("Conference"),this); @@ -116,11 +116,11 @@ void CallTreeItem::setCall(Call *call) m_pTransferNumberL = new QLabel(); m_pPeerL = new QLabel(); QSpacerItem* verticalSpacer = new QSpacerItem(16777215, 20, QSizePolicy::Expanding, QSizePolicy::Expanding); - + QHBoxLayout* mainLayout = new QHBoxLayout(); mainLayout->setContentsMargins ( 3, 1, 2, 1); - + m_pBtnConf = new TranslucentButtons(this); m_pBtnConf->setVisible(false); m_pBtnConf->setParent(this); @@ -133,12 +133,12 @@ void CallTreeItem::setCall(Call *call) m_pBtnTrans->setVisible(false); m_pBtnTrans->setPixmap(new QImage(KStandardDirs::locate("data","sflphone-client-kde/transferarraw.png"))); connect(m_pBtnTrans,SIGNAL(dataDropped(QMimeData*)),this,SLOT(transferEvent(QMimeData*))); - + m_pCodecL = new QLabel(this); //m_pCodecL->setText("Codec: "+m_pItemCall->getCurrentCodecName()); m_pSecureL = new QLabel(this); - + mainLayout->setSpacing(4); QVBoxLayout* descr = new QVBoxLayout(); descr->setMargin(1); @@ -147,7 +147,7 @@ void CallTreeItem::setCall(Call *call) transfer->setMargin(0); transfer->setSpacing(0); mainLayout->addWidget(m_pIconL); - + if(! m_pItemCall->getPeerName().isEmpty()) { m_pPeerL->setText(m_pItemCall->getPeerName()); descr->addWidget(m_pPeerL); @@ -161,7 +161,7 @@ void CallTreeItem::setCall(Call *call) descr->addLayout(transfer); descr->addItem(verticalSpacer); mainLayout->addLayout(descr); - + setLayout(mainLayout); setMinimumSize(QSize(50, 30)); @@ -190,7 +190,7 @@ void CallTreeItem::updated() m_pPeerL->setText(i18n("<b>Unknow</b>")); } } - + call_state state = m_pItemCall->getState(); bool recording = m_pItemCall->getRecording(); if(state != CALL_STATE_OVER) { @@ -210,7 +210,7 @@ void CallTreeItem::updated() } m_pTransferNumberL->setText(m_pItemCall->getTransferNumber()); m_pCallNumberL->setText(m_pItemCall->getPeerPhoneNumber()); - + if(state == CALL_STATE_DIALING) { m_pCallNumberL->setText(m_pItemCall->getCallNumber()); } @@ -309,7 +309,7 @@ void CallTreeItem::resizeEvent ( QResizeEvent *e ) m_pBtnTrans->move(width()/2+10,m_pBtnTrans->y()+2); m_pBtnConf->move(10,m_pBtnConf->y()+2); } - + e->accept(); } diff --git a/kde/src/widgets/CallTreeItem.h b/kde/src/widgets/CallTreeItem.h index 22b23540bf15ca7b6be7980e630ecaed1d194d4e..93c881245c362ae021d4c252df56ddab8ff0cefe 100644 --- a/kde/src/widgets/CallTreeItem.h +++ b/kde/src/widgets/CallTreeItem.h @@ -56,7 +56,7 @@ class CallTreeItem : public QWidget //Const static const char* callStateIcons[12]; - + private: //Attributes Call* m_pItemCall; @@ -72,7 +72,7 @@ class CallTreeItem : public QWidget QLabel* m_pHistoryPeerL; TranslucentButtons* m_pBtnConf; TranslucentButtons* m_pBtnTrans; - + protected: //Reimplementation virtual void dragEnterEvent ( QDragEnterEvent *e ); @@ -88,7 +88,7 @@ private slots: public slots: void updated(); - + signals: void over(Call*); void changed(); diff --git a/kde/src/widgets/ContactDock.cpp b/kde/src/widgets/ContactDock.cpp index cf95ee6cc45841ee41e458a84d00ae3b0d676b51..bce78d16d87806ea612c74639a3bbb800c750067 100644 --- a/kde/src/widgets/ContactDock.cpp +++ b/kde/src/widgets/ContactDock.cpp @@ -130,7 +130,7 @@ ContactDock::ContactDock(QWidget* parent) : QDockWidget(parent) m_pSplitter->setChildrenCollapsible(true); m_pSplitter->setStretchFactor(0,7); - + connect (AkonadiBackend::getInstance(),SIGNAL(collectionChanged()), this, SLOT(reloadContact() )); connect (m_pContactView, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),this, SLOT(loadContactHistory(QTreeWidgetItem*) )); connect (m_pFilterLE, SIGNAL(textChanged(QString)), this, SLOT(filter(QString) )); @@ -273,7 +273,7 @@ bool ContactTree::dropMimeData(QTreeWidgetItem *parent, int index, const QMimeDa * * ****************************************************************************/ -///Show or hide the history list +///Show or hide the history list void ContactDock::setHistoryVisible(bool visible) { kDebug() << "Toggling history visibility"; diff --git a/kde/src/widgets/ContactDock.h b/kde/src/widgets/ContactDock.h index 014d89152021713c6c55558e206ec5540faa94d5..b19f9c7514f2670e7e6cabe2104b5d0d197dc894 100644 --- a/kde/src/widgets/ContactDock.h +++ b/kde/src/widgets/ContactDock.h @@ -58,7 +58,7 @@ public: //Constructor ContactDock(QWidget* parent); virtual ~ContactDock(); - + private: //Attributes KLineEdit* m_pFilterLE; @@ -68,10 +68,10 @@ private: QComboBox* m_pSortByCBB; QCheckBox* m_pShowHistoCK; QList<ContactItemWidget*> m_Contacts; - + public slots: virtual void keyPressEvent(QKeyEvent* event); - + private slots: void reloadContact(); void loadContactHistory(QTreeWidgetItem* item); @@ -96,13 +96,13 @@ public: KeyPressEaterC(ContactDock* parent) : QObject(parent) { m_pDock = parent; } - + protected: bool eventFilter(QObject *obj, QEvent *event); - + private: ContactDock* m_pDock; - + }; #endif \ No newline at end of file diff --git a/kde/src/widgets/ContactItemWidget.cpp b/kde/src/widgets/ContactItemWidget.cpp index a59ee82c4cddd2312eb0d1616723dbe5bc63d3ac..db15eaa48bca58d0e31186ffb1d15bb4919b2776 100644 --- a/kde/src/widgets/ContactItemWidget.cpp +++ b/kde/src/widgets/ContactItemWidget.cpp @@ -57,22 +57,22 @@ ContactItemWidget::ContactItemWidget(QWidget *parent) m_pCallAgain->setShortcut ( Qt::CTRL + Qt::Key_Enter ); m_pCallAgain->setText ( i18n("Call Again") ); m_pCallAgain->setIcon ( KIcon(ICON_DIALING) ); - + m_pEditContact = new KAction(this); m_pEditContact->setShortcut ( Qt::CTRL + Qt::Key_E ); m_pEditContact->setText ( i18n("Edit contact") ); m_pEditContact->setIcon ( KIcon("contact-new") ); - + m_pCopy = new KAction(this); m_pCopy->setShortcut ( Qt::CTRL + Qt::Key_C ); m_pCopy->setText ( i18n("Copy") ); m_pCopy->setIcon ( KIcon("edit-copy") ); - + m_pEmail = new KAction(this); m_pEmail->setShortcut ( Qt::CTRL + Qt::Key_M ); m_pEmail->setText ( i18n("Send Email") ); m_pEmail->setIcon ( KIcon("mail-message-new") ); - + m_pAddPhone = new KAction(this); m_pAddPhone->setShortcut ( Qt::CTRL + Qt::Key_N ); m_pAddPhone->setText ( i18n("Add Phone Number") ); @@ -113,7 +113,7 @@ void ContactItemWidget::setContact(Contact* contact) m_pOrganizationL = new QLabel ( this ); m_pEmailL = new QLabel ( ); m_pCallNumberL = new QLabel ( this ); - + m_pIconL->setMinimumSize(70,48); m_pIconL->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); @@ -170,7 +170,7 @@ void ContactItemWidget::updated() else { m_pEmailL->setVisible(false); } - + PhoneNumbers numbers = m_pContactKA->getPhoneNumbers(); foreach (Contact::PhoneNumber* number, numbers) { kDebug() << "Phone:" << number->getNumber() << number->getType(); diff --git a/kde/src/widgets/ContactItemWidget.h b/kde/src/widgets/ContactItemWidget.h index fbbe3be35615be304ca6c53da08ec921a242a5b8..eeaf078b3b28165230203777f8737f9531d3b90f 100644 --- a/kde/src/widgets/ContactItemWidget.h +++ b/kde/src/widgets/ContactItemWidget.h @@ -87,7 +87,7 @@ class ContactItemWidget : public QWidget public slots: void updated(); - + private slots: void showContext(const QPoint& pos); void sendEmail (); diff --git a/kde/src/widgets/Dialpad.cpp b/kde/src/widgets/Dialpad.cpp index 1f7d70404a18a4e2e65a2696ec7db83dc0355e21..2db664f43d94600932f41fcd54e447241c402349 100755 --- a/kde/src/widgets/Dialpad.cpp +++ b/kde/src/widgets/Dialpad.cpp @@ -31,11 +31,11 @@ const char* Dialpad::m_pNumbers[] = "4", "5", "6", "7", "8", "9", "*", "0", "#"}; - + const char* Dialpad::m_pTexts[12] = { "" , "abc", "def" , - "ghi" , "jkl", "mno" , - "pqrs", "tuv", "wxyz", + "ghi" , "jkl", "mno" , + "pqrs", "tuv", "wxyz", "" , "" , "" }; ///Constructor diff --git a/kde/src/widgets/Dialpad.h b/kde/src/widgets/Dialpad.h index fbccc35edf41096c8b860137075cfe3b57727f4d..9c6a2672e38ab9fc33c4a9cca9e30ea362008c07 100755 --- a/kde/src/widgets/Dialpad.h +++ b/kde/src/widgets/Dialpad.h @@ -59,7 +59,7 @@ private: static const int m_Spacing = 5 ; static const int m_NumberSize = 14 ; static const int m_TextSize = 8 ; - + public: Dialpad(QWidget *parent = 0); diff --git a/kde/src/widgets/HistoryDock.cpp b/kde/src/widgets/HistoryDock.cpp index b13754fdc84c09711188fac3b5b1a6a59413e225..165759f7c68b6bb8e01948b167273a541d06cb83 100644 --- a/kde/src/widgets/HistoryDock.cpp +++ b/kde/src/widgets/HistoryDock.cpp @@ -96,7 +96,7 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) m_pToDW = new KDateWidget(); m_pAllTimeCB = new QCheckBox(i18n("Display all")); m_pLinkPB = new QPushButton(this); - + m_pAllTimeCB->setChecked(ConfigurationSkeleton::displayDataRange()); enableDateRange(ConfigurationSkeleton::displayDataRange()); @@ -105,7 +105,7 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) m_pLinkPB->setMaximumSize(20,9999999); m_pLinkPB->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); m_pLinkPB->setCheckable(true); - + m_pItemView->headerItem()->setText(0,i18n("Calls") ); m_pItemView->header ()->setClickable(true ); m_pItemView->header ()->setSortIndicatorShown(true ); @@ -117,7 +117,7 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) m_pFilterLE->setPlaceholderText(i18n("Filter")); m_pFilterLE->setClearButtonShown(true); - + QStringList sortBy; sortBy << "Date" << "Name" << "Popularity" << "Duration"; m_pSortByCBB->addItems(sortBy); @@ -137,12 +137,12 @@ HistoryDock::HistoryDock(QWidget* parent) : QDockWidget(parent) mainLayout->addWidget(m_pToDW ,5,0,1,2 ); mainLayout->addWidget(m_pItemView ,6,0,1,3 ); mainLayout->addWidget(m_pFilterLE ,7,0,1,3 ); - + setWindowTitle(i18n("History")); QDate date(2000,1,1); m_pFromDW->setDate(date); - + reload(); m_CurrentFromDate = m_pFromDW->date(); m_CurrentToDate = m_pToDW->date(); @@ -269,7 +269,7 @@ void HistoryDock::enableDateRange(bool enable) m_pFromDW->setVisible(enable); m_pToDW->setVisible(enable); m_pLinkPB->setVisible(enable); - + ConfigurationSkeleton::setDisplayDataRange(enable); } @@ -329,7 +329,7 @@ void HistoryDock::updateLinkedToDate(QDate date) * * ****************************************************************************/ -///Generate serializerd version of the content +///Generate serializerd version of the content QMimeData* HistoryTree::mimeData( const QList<QTreeWidgetItem *> items) const { kDebug() << "An history call is being dragged"; diff --git a/kde/src/widgets/HistoryDock.h b/kde/src/widgets/HistoryDock.h index f7b6663c983e8dc3460738251845f8dd08364aa8..e331b476e37c4d1b29673a947afd5633d7972329 100644 --- a/kde/src/widgets/HistoryDock.h +++ b/kde/src/widgets/HistoryDock.h @@ -48,7 +48,7 @@ typedef QList<HistoryTreeItem*> HistoryList; ///@class HistoryDock Dock to see the previous SFLPhone calls class HistoryDock : public QDockWidget { Q_OBJECT - + public: //Friends friend class KeyPressEater; @@ -56,7 +56,7 @@ public: //Constructors HistoryDock(QWidget* parent); virtual ~HistoryDock(); - + private: //Enum enum SortBy { @@ -86,7 +86,7 @@ private: //Mutator void updateLinkedDate(KDateWidget* item, QDate& prevDate, QDate& newDate); - + public slots: void enableDateRange(bool enable); virtual void keyPressEvent(QKeyEvent* event); diff --git a/kde/src/widgets/HistoryTreeItem.cpp b/kde/src/widgets/HistoryTreeItem.cpp index f082620898fdd7c1db3b62acff99d2a21360d7e0..86d24c424a4310dde988b3dd5a4eaf6528d2b3a8 100644 --- a/kde/src/widgets/HistoryTreeItem.cpp +++ b/kde/src/widgets/HistoryTreeItem.cpp @@ -58,7 +58,7 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) m_pEmail = new KAction(this); m_pAddToContact = new KAction(this); m_pBookmark = new KAction(this); - + m_pCallAgain->setShortcut ( Qt::CTRL + Qt::Key_Enter ); m_pCallAgain->setText ( i18n("Call Again") ); m_pCallAgain->setIcon ( KIcon(ICON_DIALING) ); @@ -67,16 +67,16 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) m_pAddToContact->setText ( i18n("Add Number to Contact") ); m_pAddToContact->setIcon ( KIcon("list-resource-add") ); m_pAddToContact->setDisabled ( true ); - + m_pAddContact->setShortcut ( Qt::CTRL + Qt::Key_E ); m_pAddContact->setText ( i18n("Add Contact") ); m_pAddContact->setIcon ( KIcon("contact-new") ); - + m_pCopy->setShortcut ( Qt::CTRL + Qt::Key_C ); m_pCopy->setText ( i18n("Copy") ); m_pCopy->setIcon ( KIcon("edit-copy") ); m_pCopy->setDisabled ( true ); - + m_pEmail->setShortcut ( Qt::CTRL + Qt::Key_M ); m_pEmail->setText ( i18n("Send Email") ); m_pEmail->setIcon ( KIcon("mail-message-new") ); @@ -99,7 +99,7 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) m_pCallNumberL = new QLabel( this ); m_pDurationL = new QLabel( this ); m_pTimeL = new QLabel( this ); - + m_pIconL->setMinimumSize(70,48); m_pIconL->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); QSpacerItem* verticalSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -124,7 +124,7 @@ HistoryTreeItem::HistoryTreeItem(QWidget *parent ,QString phone) ///Destructor HistoryTreeItem::~HistoryTreeItem() { - + } @@ -159,12 +159,12 @@ void HistoryTreeItem::updated() m_pIconL->setPixmap(QPixmap(str)); } m_pCallNumberL->setText(m_pItemCall->getPeerPhoneNumber()); - + if(state == CALL_STATE_DIALING) { m_pCallNumberL->setText(m_pItemCall->getCallNumber()); } } - + } ///Show the context menu @@ -239,12 +239,12 @@ void HistoryTreeItem::bookmark() void HistoryTreeItem::setCall(Call *call) { m_pItemCall = call; - + if (m_pItemCall->isConference()) { m_pIconL->setVisible(true); return; } - + m_pCallNumberL->setText(m_pItemCall->getPeerPhoneNumber()); m_pTimeL->setText(QDateTime::fromTime_t(m_pItemCall->getStartTimeStamp().toUInt()).toString()); diff --git a/kde/src/widgets/HistoryTreeItem.h b/kde/src/widgets/HistoryTreeItem.h index 54671f924b39b15759d92f310ff3e4b58bc34f05..808d394abc5588e40d2612475665f22047f61977 100644 --- a/kde/src/widgets/HistoryTreeItem.h +++ b/kde/src/widgets/HistoryTreeItem.h @@ -49,7 +49,7 @@ class HistoryTreeItem : public QWidget //Constructor HistoryTreeItem(QWidget* parent =0, QString phone = ""); ~HistoryTreeItem(); - + //Getters Call* call () const; uint getTimeStamp (); @@ -64,7 +64,7 @@ class HistoryTreeItem : public QWidget //Const static const char * callStateIcons[12]; - + private: //Attributes Call* m_pItemCall ; @@ -87,12 +87,12 @@ class HistoryTreeItem : public QWidget uint m_Duration ; QString m_Name ; QString m_PhoneNumber ; - + QTreeWidgetItem* m_pItem; public slots: void updated(); - + private slots: void showContext(const QPoint& pos); void sendEmail(); @@ -102,7 +102,7 @@ private slots: void addToContact(); void bookmark(); bool getContactInfo(QString phone); - + signals: void over(Call*); }; diff --git a/kde/src/widgets/TranslucentButtons.cpp b/kde/src/widgets/TranslucentButtons.cpp index a75fdb3f6cfae89cf86c318ee504880ee9f61dac..9c23c3741c7c6c3f2dd5fde398c4694a53eb485c 100644 --- a/kde/src/widgets/TranslucentButtons.cpp +++ b/kde/src/widgets/TranslucentButtons.cpp @@ -20,7 +20,7 @@ TranslucentButtons::TranslucentButtons(QWidget* parent):QPushButton(parent),m_en ///Destructor TranslucentButtons::~TranslucentButtons() { - + } ///How to paint diff --git a/kde/src/widgets/TranslucentButtons.h b/kde/src/widgets/TranslucentButtons.h index 50585294ddecdaaa298da54ebc29c1db49163f95..8176c54452395d80257ebafeabfd6a0e9b233123 100644 --- a/kde/src/widgets/TranslucentButtons.h +++ b/kde/src/widgets/TranslucentButtons.h @@ -19,7 +19,7 @@ public: //Setters void setHoverState(bool hover); void setPixmap(QImage* img); - + protected: //Reimplementation virtual void paintEvent(QPaintEvent* event); @@ -27,7 +27,7 @@ protected: virtual void dragMoveEvent ( QDragMoveEvent *e ); virtual void dragLeaveEvent ( QDragLeaveEvent *e ); virtual void dropEvent ( QDropEvent *e ); - + private: //Attributes bool m_enabled ; @@ -37,7 +37,7 @@ private: QPen m_Pen ; bool m_CurrentState; QImage* m_pImg ; - + public slots: void setVisible(bool enabled); private slots: diff --git a/plugins/addressbook/evolution/addressbook.c b/plugins/addressbook/evolution/addressbook.c index f9ae969f09f4bb1642257907fe196a273b4dbbdc..197c6102afdd07399f542c461b5bef75c8b0d6a0 100644 --- a/plugins/addressbook/evolution/addressbook.c +++ b/plugins/addressbook/evolution/addressbook.c @@ -39,7 +39,7 @@ void addressbook_search (void (*search_cb)(GList *, gpointer), GtkEntry* entry, AddressBook_Config *addressbook_config) { - search_async_by_contacts (gtk_entry_get_text(entry), + search_async_by_contacts (gtk_entry_get_text(entry), addressbook_config->max_results, search_cb, addressbook_config); @@ -89,9 +89,9 @@ addressbook_get_books_data(gchar **book_list) } book_data_t * -addressbook_get_book_data_by_uid(gchar *uid) +addressbook_get_book_data_by_uid(gchar *uid) { - return books_get_book_data_by_uid (uid); + return books_get_book_data_by_uid (uid); } /** diff --git a/plugins/configure.ac b/plugins/configure.ac index 7c0cd8b9ad0822a17ee058e4761063330154f33a..a0e7c2f68132d2a822de2d0a3f846afb21710498 100644 --- a/plugins/configure.ac +++ b/plugins/configure.ac @@ -43,7 +43,7 @@ PKG_CHECK_MODULES([LIBEDATASERVER], [libedataserver-1.2 >= 2.32], ) AC_CONFIG_FILES([ -Makefile +Makefile addressbook/evolution/Makefile addressbook/Makefile ]) diff --git a/tools/build-package.sh b/tools/build-package.sh index 215d8545c0cd5a6f05aa6f90361b3674040628d7..327ba8987ddc84e0f0a0d3c83260938b909ac89b 100755 --- a/tools/build-package.sh +++ b/tools/build-package.sh @@ -3,17 +3,17 @@ # @author: Yun Liu <yun.liu@savoirfairelinux.com> # # Build sflphone rpm packages for Fedora 10 and openSUSE 11 -# 1 - The SFLphone package must be build with a specific GnuPG key. Please contact us to have more information about that (<sflphoneteam@savoirfairelinux.com>) +# 1 - The SFLphone package must be build with a specific GnuPG key. Please contact us to have more information about that (<sflphoneteam@savoirfairelinux.com>) # 2. The source code can be teched through anonymous http access. So no need of special access. # 3. After having all the prerequisites, you can run "build-rpm-package.sh" to build rpm packages for sflphone. -# +# # Refer to http://www.sflphone.org for futher information # Analyze parameters if [ "$1" == "--help" ] || [ "$1" == "" ];then echo -e '\E[34mThis script is used to build sflphone rpm packages on ubuntu series(8.04,8,10,9), Fedora 10 and SUSE 11 platform.' echo -e '\E[34mYou can add --fedora, --suse or --ubuntu to start packaging.' - echo + echo echo "The SFLphone package must be build with a specific GnuPG key. Please contact us to have more information about that (<sflphoneteam@savoirfairelinux.com>)" echo echo "For fedora and SUSE, you also need to add the following lines to $HOME/.rpmmacros:" diff --git a/tools/build-system/automatic-build-machine.sh b/tools/build-system/automatic-build-machine.sh index 66882c356977e9059e8951ef54ac15520486c3da..f019f7d86c28985499ff288fd41ddc83ec3550b3 100755 --- a/tools/build-system/automatic-build-machine.sh +++ b/tools/build-system/automatic-build-machine.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-04-20 # Last Modified: diff --git a/tools/build-system/build-osc.sh b/tools/build-system/build-osc.sh index 55d1cda9006a1aa46068a9d7287bb02bf246260e..559173b50ea7be059f32a8466a99fec9bf628c23 100755 --- a/tools/build-system/build-osc.sh +++ b/tools/build-system/build-osc.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-11-02 # Last Modified: 2010-05-27 17:39:58 -0400 @@ -39,7 +39,7 @@ do echo Copy package in current directory ${OSC_DIR}/${LAUNCHPAD_PACKAGE}* cp ${OSC_DIR}/${LAUNCHPAD_PACKAGE}* . - echo + echo sed -i -e "s/VERSION_INDEX/${VERSION_INDEX}/g" -e "s/VERSION/${SOFTWARE_VERSION}/g" ${LAUNCHPAD_PACKAGE}.spec echo Create tar ball ${LAUNCHPAD_PACKAGE}-${SOFTWARE_VERSION}.tar.gz @@ -52,7 +52,7 @@ do osc add ${LAUNCHPAD_PACKAGE}-${SOFTWARE_VERSION}.tar.gz osc add *.patch - echo OSC Commit + echo OSC Commit yes | osc commit --force -m "Version ${SOFTWARE_VERSION}" done diff --git a/tools/build-system/init-osc.sh b/tools/build-system/init-osc.sh index eb3b80aa80116390a1178a6911c71f0d2b4ed294..88f93e9d80947834c6ddd5bef7183a7941ac07da 100755 --- a/tools/build-system/init-osc.sh +++ b/tools/build-system/init-osc.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-11-02 # Last Modified: diff --git a/tools/build-system/launch-build-machine-2.sh b/tools/build-system/launch-build-machine-2.sh index 7020d26b10d71b5fb74c47c694b7755a505176bc..70b93f23a424368daf3fee9dc7fbc937491c6083 100755 --- a/tools/build-system/launch-build-machine-2.sh +++ b/tools/build-system/launch-build-machine-2.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-10-20 # Last Modified: 2010-04-22 16:42:57 -0400 @@ -187,7 +187,7 @@ do DEBIAN_DIR="${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}/debian" echo " --> Clean debian directory" - git checkout ${DEBIAN_DIR} + git checkout ${DEBIAN_DIR} echo " --> Retrieve new sources" DIRNAME=`get_dir_name ${LAUNCHPAD_PACKAGE}` diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler index 727ef0f93c26927ed962654154418cd59ca2983a..c3686ff8043d377d441fc3e249ad4addd2db8b56 100755 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/bin/sflphone-handler @@ -19,7 +19,7 @@ if [ -f "$RESFILE" ]; then # Use first account declared in sflphone config ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`" - fi + fi else echo Fatal: Cant find sflphonedrc config file. @@ -32,11 +32,11 @@ if [ -z $1 ]; then exit 1 fi -# Cleanup destination, keeping numbers only +# Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^0123456789]//g'`" # Generate call id. -CALLID=${RANDOM}$$ +CALLID=${RANDOM}$$ dbus-send \ --type="method_call" \ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css index c154c5200629e37a8cfab53bd5366c9baecacd56..89a400e72fefeb04e680fcb1138f7129feaaeefa 100644 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/dialog.css @@ -5,12 +5,12 @@ #idTelify_popup_dial .menu-iconic-icon { width: 22px; height: 15px; -} +} #idTelify_popup_context .menu-iconic-icon { width: 22px; height: 15px; -} +} .tmpl_empty { color: #a0a0a0; diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png index a0673c0e4e2786360e76bcd6ff6d65f8b29b7184..9cd944fecdc3a410a6b685511e5661600c7345ce 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/243.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png index 923e1368ef2a83749ad67facd7ce688a2409615a..64cd624bcb16e744dbad7459526a24b1d3a96da7 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/244.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png index 9318eb8fe70febc98c026e9a4ffd1afa3d3208d2..9714e588249b3295e67272e2b14d533882fc0a69 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/247.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png index 1689fcbf67274bedecbd967d0df7d45ac3c6b5d5..209b5f073cb42653929fa4426cb3e92a49f8c3d0 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/357.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png index 9318eb8fe70febc98c026e9a4ffd1afa3d3208d2..9714e588249b3295e67272e2b14d533882fc0a69 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/44.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png index 55137c4ae14ab41c4b4f6fa1e89899c1ee636aa8..e73802c19bb3b2d8354550c19d52c0e5f915cb32 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/500.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png index 21114e73be7e073336806f993c469c1022d8e302..57d20aec04316e3644230e01a28fed71b1734771 100644 Binary files a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png and b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/content/flag/976.png differ diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd index 7dd845151d32971ad402b73a451fb68d9e2b1cf4..0af8755f0e19f2aa45d35f7790b3824f6663b716 100644 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/mozilla-telify-sflphone/usr/share/telify/chrome/locale/en-US/lang.dtd @@ -36,4 +36,3 @@ <!ENTITY dialog.config.opentype1 "in a new window"> <!ENTITY dialog.config.opentype2 "in a new tab without focus"> <!ENTITY dialog.config.opentype3 "in a new tab with focus"> - \ No newline at end of file diff --git a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules index 8522b9ee026d450490d0168c1db7a97a389fa2e2..d002bc28395f49919b2bf8c9569e39f26f727577 100755 --- a/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules +++ b/tools/build-system/launchpad/mozilla-telify-sflphone/debian/rules @@ -40,7 +40,7 @@ binary-indep: build install dh_testdir dh_testroot dh_installchangelogs -i - dh_link -i + dh_link -i dh_compress -XMPL -i dh_fixperms -i dh_installdeb -i diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog index f85fb80ecde0ef76455b02a998fad3fdda139376..d7513f0170db97acf823055d85ae01ded71b5069 100644 --- a/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog +++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-client-gnome (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-client-gnome/debian/rules b/tools/build-system/launchpad/sflphone-client-gnome/debian/rules index 61b69aa3260e5b8e621b31df6ea3710e9db9e377..3a8f3444e275ea59076259caa1b93387ee51467e 100755 --- a/tools/build-system/launchpad/sflphone-client-gnome/debian/rules +++ b/tools/build-system/launchpad/sflphone-client-gnome/debian/rules @@ -25,18 +25,18 @@ configure-stamp: touch configure-stamp -#Architecture +#Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: configure-stamp +build-arch-stamp: configure-stamp # Add here commands to compile the arch part of the package. - $(MAKE) + $(MAKE) touch $@ build-indep: build-indep-stamp -build-indep-stamp: configure-stamp +build-indep-stamp: configure-stamp # Add here commands to compile the indep part of the package. #$(MAKE) doc @@ -46,7 +46,7 @@ clean: dh_testroot rm -f build-arch-stamp build-indep-stamp configure-stamp # Add here commands to clean up after the build process. - [ ! -f Makefile ] || $(MAKE) distclean + [ ! -f Makefile ] || $(MAKE) distclean ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub @@ -54,22 +54,22 @@ endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif - dh_clean + dh_clean install: install-indep install-arch install-indep: dh_testdir dh_testroot - dh_clean -k -i + dh_clean -k -i dh_installdirs -i # Add here commands to install the package into debian/sflphone. install-arch: dh_testdir dh_testroot - dh_clean -k -s + dh_clean -k -s dh_installdirs -s - # Add here commands to install the arch part of the package into + # Add here commands to install the arch part of the package into # debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install dh_install -s @@ -96,7 +96,7 @@ binary-common: dh_installman dh_link dh_strip - dh_compress + dh_compress dh_fixperms # dh_perl dh_makeshlibs diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/changelog b/tools/build-system/launchpad/sflphone-client-kde/debian/changelog index a368c43102ab944f554a06dfb2c3c09994594a27..4f977e142e383b15914b1bfc7dd7b0904e7e4cf2 100644 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/changelog +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-client-kde (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/postinst b/tools/build-system/launchpad/sflphone-client-kde/debian/postinst index 20a15b4f8f7d3b61eb5a3632bfa02d0b44cb6bd0..03f87b04e8143e344563fca7b6760ec43986592a 100644 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/postinst +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/postinst @@ -3,7 +3,7 @@ update-alternatives --install /usr/bin/sflphone sflphone /usr/bin/sflphone-client-kde 200 \ --slave /usr/share/man/man1/sflphone.1.gz sflphone.1.gz \ /usr/share/man/man1/sflphone-client-kde.1 - + update-alternatives --set sflphone /usr/bin/sflphone-client-kde exit 0 diff --git a/tools/build-system/launchpad/sflphone-client-kde/debian/rules b/tools/build-system/launchpad/sflphone-client-kde/debian/rules index f1edaffc9d4b76c42705aafb9c8af9490893c49f..b6368f42f485c9e57d82f6fc153969cbe9b90d62 100755 --- a/tools/build-system/launchpad/sflphone-client-kde/debian/rules +++ b/tools/build-system/launchpad/sflphone-client-kde/debian/rules @@ -24,18 +24,18 @@ configure-stamp: touch configure-stamp -#Architecture +#Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: configure-stamp +build-arch-stamp: configure-stamp # Add here commands to compile the arch part of the package. $(MAKE) touch $@ build-indep: build-indep-stamp -build-indep-stamp: configure-stamp +build-indep-stamp: configure-stamp # Add here commands to compile the indep part of the package. #$(MAKE) doc @@ -54,22 +54,22 @@ endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif - dh_clean + dh_clean install: install-indep install-arch install-indep: dh_testdir dh_testroot - dh_clean -k -i + dh_clean -k -i dh_installdirs -i # Add here commands to install the package into debian/sflphone. install-arch: dh_testdir dh_testroot - dh_clean -k -s + dh_clean -k -s dh_installdirs -s - # Add here commands to install the arch part of the package into + # Add here commands to install the arch part of the package into # debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install dh_install -s @@ -97,7 +97,7 @@ binary-common: # dh_installman dh_link dh_strip - dh_compress + dh_compress dh_fixperms # dh_perl dh_makeshlibs diff --git a/tools/build-system/launchpad/sflphone-common/debian/changelog b/tools/build-system/launchpad/sflphone-common/debian/changelog index a7e89561170a9223419ad57bcf7afd545cd223e1..a5ffee640b0309e18070ed67783a8cab8067536d 100644 --- a/tools/build-system/launchpad/sflphone-common/debian/changelog +++ b/tools/build-system/launchpad/sflphone-common/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-common (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-common/debian/postinst b/tools/build-system/launchpad/sflphone-common/debian/postinst index ff29eda3335c59c5451f8b5bc9366ec73505965d..5ac10f4f256c9f3d9fa280eabd191c3d750f2a0c 100644 --- a/tools/build-system/launchpad/sflphone-common/debian/postinst +++ b/tools/build-system/launchpad/sflphone-common/debian/postinst @@ -12,8 +12,8 @@ INST_CONFIG="$HOME/.sflphone/sflphonedrc"; INST_DATA="$HOME/.sflphone/history"; INST_CACHE="$HOME/.sflphone/sfl.pid"; -NEW_INST_CONFIG= -NEW_INST_DATA= +NEW_INST_CONFIG= +NEW_INST_DATA= NEW_INST_CACHE= # Set the XDG CONFIG directory to the default one or to the path set in the environment variable diff --git a/tools/build-system/launchpad/sflphone-common/debian/rules b/tools/build-system/launchpad/sflphone-common/debian/rules index d3f7a238f2362a647d883f62027e6f4a9f9c6580..ab3b9bf91861f5ed49a27ac0308b689baac2f01a 100755 --- a/tools/build-system/launchpad/sflphone-common/debian/rules +++ b/tools/build-system/launchpad/sflphone-common/debian/rules @@ -89,5 +89,5 @@ binary-arch: build-arch install-arch override_dh_strip: dh_strip --dbg-package=sflphone-common-dbg -binary: binary-arch +binary: binary-arch .PHONY: build clean binary-arch binary install install-arch configure override_dh_strip diff --git a/tools/build-system/launchpad/sflphone-plugins/debian/changelog b/tools/build-system/launchpad/sflphone-plugins/debian/changelog index 0a5d85585dc16fb5f82ed3fa0e623d6a86ab2eb4..440cc2e8987ee6c080171c63a61438b7a769233d 100644 --- a/tools/build-system/launchpad/sflphone-plugins/debian/changelog +++ b/tools/build-system/launchpad/sflphone-plugins/debian/changelog @@ -2687,7 +2687,7 @@ sflphone-plugins (0.9.4-0ubuntu2) SYSTEM; urgency=low [ Emmanuel Milou ] * Fix bug #1090 - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Wed, 8 Apr 2009 11:29:15 -0500 sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low @@ -2699,7 +2699,7 @@ sflphone (0.9.4-0ubuntu1) SYSTEM; urgency=low * Protect case when no codecs are active * Fix some return values * Add unitary tests for the hook manager (premisces) - + [Yun Liu] * Update chinese translation @@ -2832,7 +2832,7 @@ sflphone (0.9.3-0ubuntu2) SYSTEM; urgency=low * Update spanish translation [Yun Liu ] - * Update chinese translation + * Update chinese translation [ Hussein Abdallah ] * Update russian translation @@ -3000,10 +3000,10 @@ sflphone (0.9.2-2ubuntu4) SYSTEM; urgency=low [ Emmanuel Milou ] * add german translation - + [ Yun Liu ] * Fix GUI crash in Ubuntu8.10 64bit system - + -- Yun Liu <yun.liu@savoirfairelinux.com> Thu, 08 Jan 2009 13:08:51 -0500 sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low @@ -3012,16 +3012,16 @@ sflphone (0.9.2-2ubuntu3) SYSTEM; urgency=low * The main thread synchronizes the ringtone thread * disable custom ringtone for the ALSA layer * Fix the Makefile.am in man directory, add a SEE ALSO section - + [ Yun Liu ] * Fix daemon crash caused by the previous patch ( for bug ticket #129) - + -- Yun Liu <yun.liu@savoirfairelinux.com> Tue, 06 Jan 2009 16:18:38 -0500 sflphone (0.9.2-2ubuntu2) SYSTEM; urgency=low - + * Fix bug ticket #129 - + -- Yun Liu <yun.liu@savoirfairelinux.com> Wed, 5 Jan 2009 15:54:53 -0500 sflphone (0.9.2-2ubuntu1) SYSTEM; urgency=low @@ -3069,7 +3069,7 @@ sflphone (0.9-2008-05-06) unstable; urgency=low * GTK+ warnings removal * libnotify warnings removal * Remove aliasing on the SFLphone logo - + -- Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Mon, 05 May 2008 16:58:25 -0500 sflphone (0.9) unstable; urgency=low @@ -3077,7 +3077,7 @@ sflphone (0.9) unstable; urgency=low * Several GTK improvement and updates -account window -configuration window - * Migrate from GtkCheckMenuItem to GtkImageMenuItem + * Migrate from GtkCheckMenuItem to GtkImageMenuItem * ALSA standard I/O transfers: MMAP instead of R/W * Fix speex audio quality * IAX2 protocol diff --git a/tools/build-system/launchpad/sflphone-plugins/debian/rules b/tools/build-system/launchpad/sflphone-plugins/debian/rules index d18a6e0a7793070eb76f86f630177a23458920b0..0395b7ec3590b4ca440b986c447412fcf032feb4 100755 --- a/tools/build-system/launchpad/sflphone-plugins/debian/rules +++ b/tools/build-system/launchpad/sflphone-plugins/debian/rules @@ -24,18 +24,18 @@ configure-stamp: touch configure-stamp -#Architecture +#Architecture build: build-arch build-indep build-arch: build-arch-stamp -build-arch-stamp: configure-stamp +build-arch-stamp: configure-stamp # Add here commands to compile the arch part of the package. - $(MAKE) + $(MAKE) touch $@ build-indep: build-indep-stamp -build-indep-stamp: configure-stamp +build-indep-stamp: configure-stamp # Add here commands to compile the indep part of the package. #$(MAKE) doc @@ -45,7 +45,7 @@ clean: dh_testroot rm -f build-arch-stamp build-indep-stamp configure-stamp # Add here commands to clean up after the build process. - [ ! -f Makefile ] || $(MAKE) distclean + [ ! -f Makefile ] || $(MAKE) distclean ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub @@ -53,22 +53,22 @@ endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif - dh_clean + dh_clean install: install-indep install-arch install-indep: dh_testdir dh_testroot - dh_clean -k -i + dh_clean -k -i dh_installdirs -i # Add here commands to install the package into debian/sflphone. install-arch: dh_testdir dh_testroot - dh_clean -k -s + dh_clean -k -s dh_installdirs -s - # Add here commands to install the arch part of the package into + # Add here commands to install the arch part of the package into # debian/tmp. $(MAKE) DESTDIR=$(CURDIR)/debian/$(package) install dh_install -s @@ -95,7 +95,7 @@ binary-common: dh_installman dh_link dh_strip - dh_compress + dh_compress dh_fixperms # dh_perl dh_makeshlibs diff --git a/tools/build-system/make-telify-package.sh b/tools/build-system/make-telify-package.sh index 4f2300786e7e0004f9a806add5a8d406468edcc6..f7a4d3cef8661b78f963ab9fff356ebeea9f0fae 100644 --- a/tools/build-system/make-telify-package.sh +++ b/tools/build-system/make-telify-package.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-12-15 # Last Modified: 2009-12-15 18:16:47 -0500 diff --git a/tools/build-system/osc/sflphone-client-gnome.spec b/tools/build-system/osc/sflphone-client-gnome.spec index 3e55a6268fedb0b1a4f1fcc4a341421c70002041..9e697bd28e7bf96f330fe84fedfcb007ed3d438c 100644 --- a/tools/build-system/osc/sflphone-client-gnome.spec +++ b/tools/build-system/osc/sflphone-client-gnome.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 @@ -111,7 +111,7 @@ make DESTDIR=%{buildroot} install %if %{defined suse_version} %suse_update_desktop_file -n %{buildroot}/%{_prefix}/share/applications/sflphone.desktop %endif -rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper +rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper %clean make clean diff --git a/tools/build-system/osc/sflphone-client-kde.spec b/tools/build-system/osc/sflphone-client-kde.spec index c3a9c2de2a4c138bf8526f8d0f460d2634694e00..b238d34f213da362102f3cf31159b83fc1723b6d 100644 --- a/tools/build-system/osc/sflphone-client-kde.spec +++ b/tools/build-system/osc/sflphone-client-kde.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 @@ -81,7 +81,7 @@ make clean %files %defattr(-, root, root) %dir %{_prefix}/share/doc/kde/HTML/en/sflphone-client-kde -%dir %{_prefix}/share/kde4/apps/sflphone-client-kde +%dir %{_prefix}/share/kde4/apps/sflphone-client-kde %lang(fr) %{_prefix}/share/locale/fr/LC_MESSAGES/*.mo %lang(es) %{_prefix}/share/locale/es/LC_MESSAGES/*.mo %lang(de) %{_prefix}/share/locale/de/LC_MESSAGES/*.mo diff --git a/tools/build-system/osc/sflphone-common.spec b/tools/build-system/osc/sflphone-common.spec index 2c0e7680878876f4ec08c8888272d26d16497043..93a59cdb2ab2401a9493fdc9b8ea475dc1c2ea2b 100644 --- a/tools/build-system/osc/sflphone-common.spec +++ b/tools/build-system/osc/sflphone-common.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 diff --git a/tools/build-system/osc/sflphone-plugins.spec b/tools/build-system/osc/sflphone-plugins.spec index 8c542057da652696f0991492140125cb831b04af..957600857d93c073e727da3c29186dfbd8d44d1d 100644 --- a/tools/build-system/osc/sflphone-plugins.spec +++ b/tools/build-system/osc/sflphone-plugins.spec @@ -3,7 +3,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-05-27 # Last Modified: 2009-10-07 @@ -73,7 +73,7 @@ make DESTDIR=%{buildroot} install %if %{defined suse_version} %suse_update_desktop_file -n %{buildroot}/%{_prefix}/share/applications/sflphone.desktop %endif -rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper +rm -rf $RPM_BUILD_ROOT/var/lib/scrollkeeper %clean make clean diff --git a/tools/build-system/setenv.sh b/tools/build-system/setenv.sh index 1f22c606008aee759ca5656ef7d4340df391155f..cecbc8e880dd91c5a4c045ebb79073c53e0774aa 100644 --- a/tools/build-system/setenv.sh +++ b/tools/build-system/setenv.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-12-15 # Last Modified: 2009-12-15 18:16:52 -0500 diff --git a/tools/build-system/sfl-git-dch-2.sh b/tools/build-system/sfl-git-dch-2.sh index 6a4641e6264c559c4acac8d7f246be30adeb3d8d..73410bfbc8f1f38fe4e810e6000b1a28b01404aa 100755 --- a/tools/build-system/sfl-git-dch-2.sh +++ b/tools/build-system/sfl-git-dch-2.sh @@ -4,7 +4,7 @@ # # Purpose : # -# Author: Julien Bonjean (julien@bonjean.info) +# Author: Julien Bonjean (julien@bonjean.info) # # Creation Date: 2009-10-21 # Last Modified: 2009-10-21 14:58:22 -0400 diff --git a/tools/mozilla-telify-sflphone/sflphone-handler b/tools/mozilla-telify-sflphone/sflphone-handler index db1cf92d0abc3536f3eb2e3bce1752b3e12d6cb5..a76b3ed7a6a8b72edb62aa9fdc9016ac40783265 100755 --- a/tools/mozilla-telify-sflphone/sflphone-handler +++ b/tools/mozilla-telify-sflphone/sflphone-handler @@ -19,14 +19,14 @@ if [ -z $1 ]; then exit 1 fi -# Cleanup destination, keeping numbers only +# Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^0123456789]//g'`" # Generate call id. -CALLID=${RANDOM}$$ +CALLID=${RANDOM}$$ # Dbus placeCallFirstAccount method does not reach sflphoned if starting -# Should find another way to do this +# Should find another way to do this sleep 1 dbus-send \ diff --git a/tools/mozilla-telify-sflphone/telify-1.0-fx.xpi b/tools/mozilla-telify-sflphone/telify-1.0-fx.xpi index 8df2b63f5b8622d44eac232ed72b6d7699e54f23..35d2e19f0efe33142217347bf0cc7e9d56c68751 100644 Binary files a/tools/mozilla-telify-sflphone/telify-1.0-fx.xpi and b/tools/mozilla-telify-sflphone/telify-1.0-fx.xpi differ diff --git a/tools/pysflphone/pysflphone.py b/tools/pysflphone/pysflphone.py index 61fde183b0134ae237fdd4126d1fd1edf01f9462..458d444db2624398271c01ed8358b95527de40cf 100644 --- a/tools/pysflphone/pysflphone.py +++ b/tools/pysflphone/pysflphone.py @@ -84,11 +84,11 @@ def printHelp(): # Option definition try: - opts, args = getopt.getopt(sys.argv[1:],"", - [ "help", "gaa", "gal", "gara", "gaea", "gasa", "gaia", - "gacl", "gac", "gcc", "hangup=", "refuse=", "hold", - "unhold=", "transfer=","dtmf=", "accept=", "gcd=", - "gad=", "register=", "unregister=", "enable=", "disable=", + opts, args = getopt.getopt(sys.argv[1:],"", + [ "help", "gaa", "gal", "gara", "gaea", "gasa", "gaia", + "gacl", "gac", "gcc", "hangup=", "refuse=", "hold", + "unhold=", "transfer=","dtmf=", "accept=", "gcd=", + "gad=", "register=", "unregister=", "enable=", "disable=", "call=", "sac=" ]) except getopt.GetoptError,err: print str(err) @@ -96,7 +96,7 @@ except getopt.GetoptError,err: # SFLPhone instance. -sflphone = SflPhoneCtrlSimple() +sflphone = SflPhoneCtrlSimple() # If no arguments, run the d-bus event loop. if len(sys.argv) == 1: @@ -107,7 +107,7 @@ if len(sys.argv) == 1: else: for opt, arg in opts: - if opt == "--help": + if opt == "--help": printHelp() # @@ -115,32 +115,32 @@ else: # # Get all accounts - elif opt == "--gaa": + elif opt == "--gaa": for account in sflphone.getAllAccounts(): print account # Get all registered accounts - elif opt == "--gara": + elif opt == "--gara": for account in sflphone.getAllRegisteredAccounts(): print account # Get all enabled accounts - elif opt == "--gaea": + elif opt == "--gaea": for account in sflphone.getAllEnabledAccounts(): print account # Get all SIP accounts - elif opt == "--gasa": + elif opt == "--gasa": for account in sflphone.getAllSipAccounts(): print account # Get all IAX accounts - elif opt == "--gaia": + elif opt == "--gaia": for account in sflphone.getAllIaxAccounts(): print account # Get current call - elif opt == "--gcc": + elif opt == "--gcc": call = sflphone.getCurrentCallID() if call: print call @@ -148,7 +148,7 @@ else: print "No current call." # Get account details - elif opt == "--gad": + elif opt == "--gad": if sflphone.checkAccountExists(arg): details = sflphone.getAccountDetails(arg) for var in details: @@ -157,11 +157,11 @@ else: print "No such account: " + arg # Get active codec list - elif opt == "--gacl": + elif opt == "--gacl": print "Not implemented." # Get call details - elif opt == "--gcd": + elif opt == "--gcd": if arg == "current": arg = sflphone.getCurrentCallID() details = sflphone.getCallDetails(arg) @@ -173,7 +173,7 @@ else: elif opt == "--sac": if arg is "": print "Must specifies the accout to be set" - else: + else: sflphone.setAccount(arg) @@ -182,43 +182,43 @@ else: # # Make a call - elif opt == "--call": + elif opt == "--call": sflphone.Call(arg) # Hangup a call - elif opt == "--hangup": - if arg == "current": + elif opt == "--hangup": + if arg == "current": arg = sflphone.getCurrentCallID() - if arg: + if arg: sflphone.HangUp(arg) # Refuse a call - elif opt == "--refuse": + elif opt == "--refuse": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.Refuse(arg) # Hold a call - elif opt == "--hold": + elif opt == "--hold": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.Hold(arg) # Unhold a call - elif opt == "--unhold": + elif opt == "--unhold": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.UnHold(arg) # Transfer the current call - elif opt == "--transfer": + elif opt == "--transfer": call = sflphone.callmanager.getCurrentCallID() sflphone.Transfert(call, arg) - # Send DTMF - elif opt == "--dtmf": + # Send DTMF + elif opt == "--dtmf": sflphone.Dtmf(arg) # Accept a call - elif opt == "--accept": + elif opt == "--accept": if arg == "current": arg = sflphone.getCurrentCallID() sflphone.Accept(arg) @@ -228,7 +228,7 @@ else: # # Register an account - elif opt == "--register": + elif opt == "--register": if not sflphone.checkAccountExists(arg): print "Account " + arg + ": no such account." @@ -240,7 +240,7 @@ else: print arg + ": Sent register request." # Unregister an account - elif opt == "--unregister": + elif opt == "--unregister": if not sflphone.checkAccountExists(arg): print "Account " + arg + ": no such account." diff --git a/tools/pysflphone/pysflphone_testdbus.py b/tools/pysflphone/pysflphone_testdbus.py index dc17f2bbc9e615a674cedc7584f1e639ca3ed2fe..05b341a569b709be600c56b8f65a276f92d48462 100644 --- a/tools/pysflphone/pysflphone_testdbus.py +++ b/tools/pysflphone/pysflphone_testdbus.py @@ -34,8 +34,8 @@ def acceptOnIncomingCall(sflphone): # Define function callback to emulate UA behavior on # receiving a call and hanging up def acceptOnIncomingCallHangup(sflphone): - - sflphone.Accept(sflphone.currentCallId) + + sflphone.Accept(sflphone.currentCallId) sflphone.HangUp(sflphone.currentCallId) @@ -56,7 +56,7 @@ class SflPhoneTests(): for account in self.getAllAccounts(): print " " + account - + for account in self.getAllRegisteredAccounts(): print " " + account @@ -69,7 +69,7 @@ class SflPhoneTests(): def test_create_account(self): """Create a new sip account""" - CONFIG_ACCOUNT_TYPE = "Account.type" + CONFIG_ACCOUNT_TYPE = "Account.type" CONFIG_ACCOUNT_ALIAS = "Account.alias" HOSTNAME = "hostname" USERNAME = "username" @@ -101,8 +101,8 @@ class SflPhoneTests(): callid = self.sflphone.Call("sip:test@" + REMOTEADDR_lo) time.sleep(0.5) - - self.sflphone.HangUp(callid) + + self.sflphone.HangUp(callid) time.sleep(0.5) i = i+1 @@ -124,7 +124,7 @@ class SflPhoneTests(): del self.sflphone - + # SCENARIO 1 Test 3 def test_ip2ip_recv_hangup(self): """Wait for calls, answer then hangup""" @@ -135,7 +135,7 @@ class SflPhoneTests(): # Start Glib mainloop self.sflphone.start() - + # SCENARIO 1 Test 4 @@ -158,8 +158,8 @@ class SflPhoneTests(): callid = self.sflphone.Call(PHONE1) time.sleep(0.2) - - self.sflphone.HangUp(callid) + + self.sflphone.HangUp(callid) time.sleep(0.2) i = i+1 @@ -182,7 +182,7 @@ class SflPhoneTests(): del self.sflphone - # SCENARIO 2 Test 3 + # SCENARIO 2 Test 3 def test_account_recv_hangup(self): """Register an account and wait for incoming calls""" @@ -193,7 +193,7 @@ class SflPhoneTests(): self.sflphone.start() - # SCENARIO 2 Test 4 + # SCENARIO 2 Test 4 def test_account_recv_peer_hungup(self): """Register an account and wait for incoming calls""" @@ -218,8 +218,8 @@ class SflPhoneTests(): self.sflphone.UnHold(callid) time.sleep(0.5) - - self.sflphone.HangUp(callid) + + self.sflphone.HangUp(callid) time.sleep(0.5) i = i+1 @@ -236,15 +236,15 @@ class SflPhoneTests(): callid = self.sflphone.Call(PHONE1) time.sleep(1.0) - + self.sflphone.Transfer(callid,PHONE3) - # self.sflphone.HangUp(callid) + # self.sflphone.HangUp(callid) # time.sleep(1.0) i = i+1 - # SCENARIO 5 Test 1 + # SCENARIO 5 Test 1 def test_ip2ip_recv_refuse(self): """Receive an incoming IP2IP call, refuse it""" @@ -269,14 +269,14 @@ class SflPhoneTests(): callid3 = self.sflphone.Call("sip:test@" + REMOTEADDR_lo3) time.sleep(0.1) - - self.sflphone.HangUp(callid1) + + self.sflphone.HangUp(callid1) time.sleep(0.1) - self.sflphone.HangUp(callid2) + self.sflphone.HangUp(callid2) time.sleep(0.1) - self.sflphone.HangUp(callid3) + self.sflphone.HangUp(callid3) time.sleep(0.1) i = i+1 @@ -301,7 +301,7 @@ class SflPhoneTests(): # Open sflphone and connect to sflphoned through dbus sflphone = SflPhoneCtrlSimple(True) -# Init test suite +# Init test suite testsuite = SflPhoneTests(sflphone) # Register the first account available, should be the test account diff --git a/tools/pysflphone/sflphonectrlsimple.py b/tools/pysflphone/sflphonectrlsimple.py index cba2cf72da9907ce39fefe5a5c4fa6662efd9a11..12709ed900ddb56310ed0d4487af2693faa5db98 100755 --- a/tools/pysflphone/sflphonectrlsimple.py +++ b/tools/pysflphone/sflphonectrlsimple.py @@ -50,9 +50,9 @@ except ImportError, e: class SflPhoneCtrlSimple(Thread): """ Simple class for controlling SflPhoned through DBUS - If option testSuite (ts) is put to true, + If option testSuite (ts) is put to true, simple actions are implemented on incoming call. - """ + """ # list of active calls (known by the client) activeCalls = {} @@ -105,7 +105,7 @@ class SflPhoneCtrlSimple(Thread): raise SPdbusError("Unable to connect DBUS session bus") dbus_objects = dbus.Interface(self.bus.get_object( - 'org.freedesktop.DBus', '/org/freedesktop/DBus'), + 'org.freedesktop.DBus', '/org/freedesktop/DBus'), 'org.freedesktop.DBus').ListNames() if not "org.sflphone.SFLphone" in dbus_objects: @@ -116,8 +116,8 @@ class SflPhoneCtrlSimple(Thread): "/org/sflphone/SFLphone/Instance", introspect=False) proxy_callmgr = self.bus.get_object("org.sflphone.SFLphone", "/org/sflphone/SFLphone/CallManager", introspect=False) - proxy_confmgr = self.bus.get_object("org.sflphone.SFLphone", - "/org/sflphone/SFLphone/ConfigurationManager", + proxy_confmgr = self.bus.get_object("org.sflphone.SFLphone", + "/org/sflphone/SFLphone/ConfigurationManager", introspect=False) self.instance = dbus.Interface(proxy_instance, @@ -128,7 +128,7 @@ class SflPhoneCtrlSimple(Thread): "org.sflphone.SFLphone.ConfigurationManager") except dbus.DBusException, e: - + raise SPdbusError("Unable to bind to sflphoned api, ask core-dev team to implement getVersion method and start to pray.") try: @@ -197,7 +197,7 @@ class SflPhoneCtrlSimple(Thread): - # On call state changed event, set the values for new calls, + # On call state changed event, set the values for new calls, # or delete the call from the list of active calls def onCallStateChanged(self, callid, state): print "Call state changed: " + callid + ", " + state @@ -209,11 +209,11 @@ class SflPhoneCtrlSimple(Thread): elif state in [ "RINGING", "CURRENT", "INCOMING", "HOLD" ]: try: - self.activeCalls[callid]['State'] = state + self.activeCalls[callid]['State'] = state except KeyError, e: print "This call didn't exist!: " + callid + ". Adding it to the list." callDetails = self.getCallDetails(callid) - self.activeCalls[callid] = {'Account': callDetails['ACCOUNTID'], + self.activeCalls[callid] = {'Account': callDetails['ACCOUNTID'], 'To': callDetails['PEER_NUMBER'], 'State': state } elif state in [ "BUSY", "FAILURE" ]: try: @@ -231,7 +231,7 @@ class SflPhoneCtrlSimple(Thread): def addAccount(self, details=None): """Add a new account account - Add a new account to the SFLphone-daemon. Default parameters are \ + Add a new account to the SFLphone-daemon. Default parameters are \ used for missing account configuration field. Required parameters are type, alias, hostname, username and password @@ -289,7 +289,7 @@ class SflPhoneCtrlSimple(Thread): for testedaccount in self.getAllAccounts(): details = self.getAccountDetails(testedaccount) - if ( details['Account.enable'] == "TRUE" and + if ( details['Account.enable'] == "TRUE" and details['Account.alias'] == alias ): self.account = testedaccount return @@ -405,7 +405,7 @@ class SflPhoneCtrlSimple(Thread): def getAllSipAccounts(self): """Return a list of SIP accounts""" sipAccountsList = [] - for accountName in self.getAllAccounts(): + for accountName in self.getAllAccounts(): if self.getAccountDetails(accountName)['Account.type'] == "SIP": sipAccountsList.append(accountName) @@ -442,7 +442,7 @@ class SflPhoneCtrlSimple(Thread): # # Codec manager # - + def getCodecList(self): """ Return the codec list """ return self.configurationmanager.getCodecList() @@ -630,5 +630,5 @@ class SflPhoneCtrlSimple(Thread): while True: context.iteration(True) - if self.isStop: + if self.isStop: return diff --git a/tools/sflphone-callto b/tools/sflphone-callto index 727ef0f93c26927ed962654154418cd59ca2983a..94f5cb1d491e50ab838133c91a99c636a5d8b318 100755 --- a/tools/sflphone-callto +++ b/tools/sflphone-callto @@ -11,15 +11,15 @@ RESFILE=~/.config/sflphone/sflphonedrc # Parse sflphonedrc and get default account id string if [ -f "$RESFILE" ]; then - # Use first ID - ACCOUNTID=`grep Accounts.order $RESFILE | sed -e 's/Accounts.order=//' -e 's/\/.*//'` + # Use first ID + ACCOUNTID=`grep Accounts.order $RESFILE | sed -e 's/Accounts.order=//' -e 's/\/.*//'` - # Accounts.order is not set - if [ -z $ACCOUNTID ]; then + # Accounts.order is not set + if [ -z $ACCOUNTID ]; then - # Use first account declared in sflphone config - ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`" - fi + # Use first account declared in sflphone config + ACCOUNTID="`grep -m 1 Account: $RESFILE | sed -e 's/\[//' -e 's/\]//'`" + fi else echo Fatal: Cant find sflphonedrc config file. @@ -32,11 +32,11 @@ if [ -z $1 ]; then exit 1 fi -# Cleanup destination, keeping numbers only +# Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^0123456789]//g'`" # Generate call id. -CALLID=${RANDOM}$$ +CALLID=${RANDOM}$$ dbus-send \ --type="method_call" \ diff --git a/tools/sippxml/account_uas_recv_transfered.xml b/tools/sippxml/account_uas_recv_transfered.xml index 210f5621b4b5a002adcbbd0a1880756c49b33088..8e67f3cec2ec2676afc03e8519351c9193f1996e 100644 --- a/tools/sippxml/account_uas_recv_transfered.xml +++ b/tools/sippxml/account_uas_recv_transfered.xml @@ -98,7 +98,7 @@ </recv> - <!-- + <!-- <recv request="BYE"> </recv> diff --git a/tools/sippxml/ip2ip_uas_recv_hangup.xml b/tools/sippxml/ip2ip_uas_recv_hangup.xml index 4e86b47480bd761e3d4ccdf071dcbe5738f5c5f9..45023d08fa640276cd296c5e8599f38309387430 100644 --- a/tools/sippxml/ip2ip_uas_recv_hangup.xml +++ b/tools/sippxml/ip2ip_uas_recv_hangup.xml @@ -46,17 +46,17 @@ ]]> </send> - <!-- tag from From: header is required to build the To: header in - -- Bye request. --> + <!-- tag from From: header is required to build the To: header in + -- Bye request. --> - <recv request="ACK"> + <recv request="ACK"> <action> <ereg regexp="tag=.*" search_in="hdr" header="From:" check_it="true" assign_to="1" /> </action> </recv> <pause milliseconds="500"/> - + <send retrans="500"> <![CDATA[ @@ -84,4 +84,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml b/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml index 568a97a9e62ddf5bd4a323b920f425f300104273..bae7eaa2bc795eafd357f3ca30e18433c1220a2e 100644 --- a/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml +++ b/tools/sippxml/ip2ip_uas_recv_hold_offhold.xml @@ -7,7 +7,7 @@ <recv request="INVITE" crlf="true"> <action> - <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> + <ereg regexp="sendrecv" search_in="body" check_it="true" assign_to="1"/> <log message="Media is [$1]"/> </action> </recv> @@ -184,4 +184,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml b/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml index 04a964cd1c6900b66af0e563f95054df66b0aff8..0d9da874ba1a50bcb54e2ba0eb6693c467e2490b 100644 --- a/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml +++ b/tools/sippxml/ip2ip_uas_recv_peer_hungup.xml @@ -75,4 +75,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ipcalluac.xml b/tools/sippxml/ip2ipcalluac.xml index 90238563904458931a5f3798c004961e7fdae6e0..7d146cec2be6de5f01edb54d14e0f240d4dc22cc 100644 --- a/tools/sippxml/ip2ipcalluac.xml +++ b/tools/sippxml/ip2ipcalluac.xml @@ -82,4 +82,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/ip2ipcalluas.xml b/tools/sippxml/ip2ipcalluas.xml index b7ef0303b086fc5c2673fad83194ab3e5bcc2a0d..08d17440ea5a7f593bbd1992511761f929cefdb9 100644 --- a/tools/sippxml/ip2ipcalluas.xml +++ b/tools/sippxml/ip2ipcalluas.xml @@ -77,4 +77,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/simpleServiceRoute.xml b/tools/sippxml/simpleServiceRoute.xml index f09cd05012249742044ad1ba0f43cce09a499de3..c20071763179f9ee9fa1f4b9c084122ec007b03c 100644 --- a/tools/sippxml/simpleServiceRoute.xml +++ b/tools/sippxml/simpleServiceRoute.xml @@ -82,4 +82,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/sippusage.txt b/tools/sippxml/sippusage.txt index 5c19252857d274683acfb1dbc09de2c3aedcfb77..f1a519088278b35d0023b60c82764592de926f52 100644 --- a/tools/sippxml/sippusage.txt +++ b/tools/sippxml/sippusage.txt @@ -53,7 +53,7 @@ Usage: - pingreply Reply to ping requests If a behavior is prefaced with a -, then it is turned off. Example: all,-bye - + -error_file : Set the name of the error log file. @@ -67,7 +67,7 @@ Usage: -i : Set the local IP address for 'Contact:','Via:', and 'From:' headers. Default is primary host IP address. - + -inf : Inject values from an external CSV file during calls into the scenarios. @@ -76,7 +76,7 @@ Usage: (USER) order. Each line corresponds to one call and has one or more ';' delimited data fields. Those fields can be referred - as [field0], [field1], ... in the xml scenario file. + as [field0], [field1], ... in the xml scenario file. Several CSV files can be used simultaneously (syntax: -inf f1.csv -inf f2.csv ...) @@ -159,18 +159,18 @@ Usage: - On unexpected PING send a 200 OK and continue the call - On any other unexpected message, abort the call by sending a BYE or a CANCEL - + -nr : Disable retransmission in UDP mode. -nostdin : Disable stdin. - + -p : Set the local port number. Default is a random free port chosen by the system. -pause_msg_ign : Ignore the messages received during a pause defined in - the scenario + the scenario -periodic_rtd : Reset response time partition counters each logging interval. @@ -265,7 +265,7 @@ Usage: -oocsn : Load out-of-call scenario. - -skip_rlimit : Do not perform rlimit tuning of file descriptor limits. + -skip_rlimit : Do not perform rlimit tuning of file descriptor limits. Default: false. -slave : 3pcc extended mode: indicates the slave number @@ -277,7 +277,7 @@ Usage: If this option is omitted, the Standard SipStone UAC scenario is loaded. Available values in this version: - + - 'uac' : Standard SipStone UAC (default). - 'uas' : Simple UAS responder. - 'regexp' : Standard SipStone UAC - with regexp and @@ -286,15 +286,15 @@ Usage: scenarios - client. - 'branchs' : Branching and conditional branching in scenarios - server. - + Default 3pcc scenarios (see -3pcc option): - + - '3pcc-C-A' : Controller A side (must be started after all other 3pcc scenarios) - '3pcc-C-B' : Controller B side. - '3pcc-A' : A side. - '3pcc-B' : B side. - + -stat_delimiter : Set the delimiter for the statistics file @@ -313,7 +313,7 @@ Usage: loaded), - cn: un + compression (only if compression plugin loaded). This plugin is not provided with sipp. - + -timeout : Global timeout. Default unit is seconds. If this option is set, SIPp quits after nb units (-timeout 20s quits @@ -322,7 +322,7 @@ Usage: -timeout_error : SIPp fails if the global timeout is reached is set (-timeout option required). - -timer_resol : Set the timer resolution. Default unit is milliseconds. + -timer_resol : Set the timer resolution. Default unit is milliseconds. This option has an impact on timers precision.Small values allow more precise scheduling but impacts CPU usage.If the compression is on, the value is set to @@ -366,7 +366,7 @@ Usage: -watchdog_interval: Set gap between watchdog timer firings. Default is 400. -watchdog_reset : If the watchdog timer has not fired in more than this - time period, then reset the max triggers counters. + time period, then reset the max triggers counters. Default is 10 minutes. -watchdog_minor_threshold: If it has been longer than this period between watchdog @@ -422,7 +422,7 @@ Usage: Set the start offset of dynamic_id varaiable -dynamicMax : variable value - Set the maximum of dynamic_id variable + Set the maximum of dynamic_id variable -dynamicStep : variable value Set the increment of dynamic_id variable @@ -436,7 +436,7 @@ Signal handling: are finished before SIPp exits. Example: kill -SIGUSR1 732 USR2: Triggers a dump of all statistics screens in - <scenario_name>_<pid>_screens.log file. Especially useful + <scenario_name>_<pid>_screens.log file. Especially useful in background mode to know what the current status is. Example: kill -SIGUSR2 732 diff --git a/tools/sippxml/testEarlyMedia.xml b/tools/sippxml/testEarlyMedia.xml index 28f34ff4f084dc598c77b2bba5b8ecead188ff89..7909bebecdf70737018cb6dac38166dff40a57a5 100644 --- a/tools/sippxml/testEarlyMedia.xml +++ b/tools/sippxml/testEarlyMedia.xml @@ -104,4 +104,4 @@ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/> -</scenario> +</scenario> diff --git a/tools/sippxml/testsuiteuac.sh b/tools/sippxml/testsuiteuac.sh index 93975593688f3d7d2242bdf7dfe0abb732abe7a5..563500358296d6a2097ffadd7554bf9d16c4da87 100644 --- a/tools/sippxml/testsuiteuac.sh +++ b/tools/sippxml/testsuiteuac.sh @@ -12,7 +12,7 @@ REMOTEADDR_ast=192.168.50.79 function test_ip2ip_send_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone sipp -sf ip2ip_uas_recv_peer_hungup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} @@ -31,7 +31,7 @@ function test_ip2ip_send_hangup { function test_ip2ip_send_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone and then hangup sipp -sf ip2ip_uas_recv_hangup.xml ${REMOTEADDR_lo} -s ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} @@ -43,7 +43,7 @@ function test_ip2ip_send_peer_hungup { # python ../tools/pysflphone/pysflphone_testdbus.py & # kill every one - bashtrap + bashtrap } @@ -51,7 +51,7 @@ function test_ip2ip_send_peer_hungup { function test_ip2ip_recv_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -61,11 +61,11 @@ function test_ip2ip_recv_hangup { # wait some time to make sure client is bound # sleep 1; - # start sipp client and send calls + # start sipp client and send calls sipp -sf ip2ip_uac_send_peer_hungup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 -m 10 # kill every one - # bashtrap + # bashtrap } @@ -73,7 +73,7 @@ function test_ip2ip_recv_hangup { function test_ip2ip_recv_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -83,11 +83,11 @@ function test_ip2ip_recv_peer_hungup { # wait some time to make sure client is bound # sleep 1; - # start sipp client and send calls + # start sipp client and send calls sipp -sf ip2ip_uac_send_hangup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 -m 10 # kill every one - # bashtrap + # bashtrap } @@ -95,7 +95,7 @@ function test_ip2ip_recv_peer_hungup { function test_account_send_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -108,7 +108,7 @@ function test_account_send_hangup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uas_recv_peer_hungup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 # kill every one @@ -119,7 +119,7 @@ function test_account_send_hangup { function test_account_send_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -132,7 +132,7 @@ function test_account_send_peer_hungup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uas_recv_hangup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 # kill every one @@ -143,7 +143,7 @@ function test_account_send_peer_hungup { function test_account_recv_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -156,7 +156,7 @@ function test_account_recv_hangup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uac_send_peer_hungup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 10 # kill every one # bashtrap @@ -166,7 +166,7 @@ function test_account_recv_hangup { function test_account_recv_peer_hungup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -179,7 +179,7 @@ function test_account_recv_peer_hungup { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uac_send_hangup.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 10 # kill every one @@ -190,7 +190,7 @@ function test_account_recv_peer_hungup { function test_ip2ip_send_hold_offhold { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -200,7 +200,7 @@ function test_ip2ip_send_hold_offhold { # wait some time to make sure client is bound # sleep 1; - # start sipp client and send calls + # start sipp client and send calls sipp -sf ip2ip_uas_recv_hold_offhold.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} # kill every one # bashtrap @@ -210,7 +210,7 @@ function test_ip2ip_send_hold_offhold { function test_account_send_transfer { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # wait some time to make sure sflphoned is started # sleep 1; @@ -223,7 +223,7 @@ function test_account_send_transfer { # process only one registration sipp -sf account_uas_register.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 -m 1 - # start sipp client and send calls + # start sipp client and send calls sipp -sf account_uas_recv_transfered.xml ${REMOTEADDR_ast} -i ${LOCALIP_eth0} -p ${LOCALPORT} -l 1 # kill every one @@ -235,7 +235,7 @@ function test_account_send_transfer { function test_ip2ip_send_refused { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone and then hangup sipp -sf ip2ip_uac_send_refused.xml ${REMOTEADDR_lo} -s ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 @@ -247,7 +247,7 @@ function test_ip2ip_send_refused { # python ../tools/pysflphone/pysflphone_testdbus.py & # kill every one - bashtrap + bashtrap } @@ -255,10 +255,10 @@ function test_ip2ip_send_refused { function test_mult_ip2ip_send_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone - sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5062 -l 1 -m 10 + sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5062 -l 1 -m 10 sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5064 -l 1 -m 10 sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1:5060 -i 127.0.0.1 -p 5066 -l 1 -m 10 # sipp -sf ip2ip_uac_send_hangup.xml ${REMOTEADDR_lo} -i ${LOCALIP_lo} -p ${LOCALPORT} -l 1 -m 10 @@ -278,7 +278,7 @@ function test_mult_ip2ip_send_hangup { function test_mult_ip2ip_recv_peer_hangup { # start sflphoned - # /usr/lib/sflphone/sflphoned& + # /usr/lib/sflphone/sflphoned& # start sipp server to receive calls from sflphone sipp -sf ip2ip_uac_send_hangup.xml 127.0.0.1 -i 127.0.0.1:5060 -p 5062 @@ -297,7 +297,7 @@ function test_mult_ip2ip_recv_peer_hangup { } -# function called if CTRL-C detected +# function called if CTRL-C detected bashtrap() { killall sipp diff --git a/tools/vm/deploy_vm.sh b/tools/vm/deploy_vm.sh index 4f566c33dc792c5835a3422e216c7d7800cb8355..81144d284d4e5c5c2e19e7932cf697256b1c3982 100644 --- a/tools/vm/deploy_vm.sh +++ b/tools/vm/deploy_vm.sh @@ -29,7 +29,7 @@ VM=Ubuntu-10.04-i386-on-KVM VIRSH="virsh -c qemu:///system" -# Get the full path to vm's +# Get the full path to vm's DISK_IMG=$($VIRSH dumpxml "${VM}"|grep source.file|cut -d"'" -f2) echo "Disk Image: $DISK_IMG" # Get MAC address for this vm