diff --git a/CHANGES b/CHANGES index 93b0f140dafa275e6dcff491915647713af43f92..4511b5252b311f811d2835d0c3e6de4e7b18d226 100644 --- a/CHANGES +++ b/CHANGES @@ -1,11 +1,10 @@ -SFLphone (0.4) - * Reorganisation of SFLphone architecture -SFLphone (0.3.1) / 2005-04-21 +SFLphone (0.3.1) / 2005-05-27 + * Reorganisation of SFLphone architecture * Handle error messages on screen * Handle refused call * Notification of remote RINGING event added - * Management of lines updated + * Call management updated SFLphone (0.3) / 2005-04-05 * ALSA driver support added diff --git a/README b/README index 0948a4a9cfef3d301a8d817906fc30eb08ba72c8..ce1793f7ade6466d582323052d45bac3442eeb61 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -This is SFLPhone-0.3 release. +This is SFLPhone-0.3.1 release. You need ccrtp-1.3.0 which needs commoncpp2>=1.3.0 libeXosip-0.9.0 needs libosip2-2.2.0 @@ -42,6 +42,9 @@ make install How to use it ? --------------- + +If you have old version, remove your sflphonerc file located in $HOME/.sflphone + 1. Lauch it, a setup window appears. 2. If you do have a SIP account, fill the SIP stuff where related. You can use diff --git a/src/Makefile b/src/Makefile index d7e79a0b7d93020c7fcc3fb14f264e24e26db64d..b62f90672efa1a96e98db596ccf45ce6c722ecdd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -72,8 +72,6 @@ OBJS = \ gui/qt/configurationpanelui.moc.o \ gui/qt/url_inputui.o \ gui/qt/url_inputui.moc.o \ - gui/qt/voIPLinkmanagementui.o \ - gui/qt/voIPLinkmanagementui.moc.o \ main.o \ manager.o \ sipcall.o \ @@ -97,16 +95,12 @@ endif .cpp.o: $(CXX) $(DEFVARS) $(CXXFLAGS) -c -o $@ $< -prereq: gui/qt/phonebook.ui gui/qt/url_input.ui gui/qt/configurationpanel.ui gui/qt/voIPLinkmanagement.ui +prereq: gui/qt/url_input.ui gui/qt/configurationpanel.ui @echo "Making User Interface files..." - $(UIC) -o gui/qt/phonebookui.h gui/qt/phonebook.ui - $(UIC) -o gui/qt/phonebookui.cpp -impl gui/qt/phonebookui.h gui/qt/phonebook.ui $(UIC) -o gui/qt/url_inputui.h gui/qt/url_input.ui $(UIC) -o gui/qt/url_inputui.cpp -impl gui/qt/url_inputui.h gui/qt/url_input.ui $(UIC) -o gui/qt/configurationpanelui.h gui/qt/configurationpanel.ui $(UIC) -o gui/qt/configurationpanelui.cpp -impl gui/qt/configurationpanelui.h gui/qt/configurationpanel.ui - $(UIC) -o gui/qt/voIPLinkmanagementui.h gui/qt/voIPLinkmanagement.ui - $(UIC) -o gui/qt/voIPLinkmanagementui.cpp -impl gui/qt/voIPLinkmanagementui.h gui/qt/voIPLinkmanagement.ui %.moc.cpp: %.h $(MOC) -o $@ $< diff --git a/src/audio/audiortp.cpp b/src/audio/audiortp.cpp index cd9e7a741604112d7a7f2f4b398b62df5746f70d..a738d531e8b3b93bc5a8b71f4bea2de4331a2092 100644 --- a/src/audio/audiortp.cpp +++ b/src/audio/audiortp.cpp @@ -326,7 +326,6 @@ AudioRtpRTX::run (void) { TimerPort::incTimer(frameSize); // 'frameSize' ms } -// AudioCodec::destroy(_ca->payload); delete[] data_for_speakers; delete[] data_from_mic; delete[] data_from_mic_tmp; diff --git a/src/audio/dtmfgenerator.cpp b/src/audio/dtmfgenerator.cpp index b0e095fdf2c5f0f64da4ecfcb0b9828217005353..77ff79ca002c807d8860968d0e30f0b33ffda86b 100644 --- a/src/audio/dtmfgenerator.cpp +++ b/src/audio/dtmfgenerator.cpp @@ -164,7 +164,6 @@ void DTMFGenerator::getNextSamples(short* buffer, size_t n) throw(DTMFException) */ short* DTMFGenerator::generateSample(unsigned char code) throw (DTMFException) { short* ptr; -// double arg1, arg2; // try { ptr = new short[SAMPLING_RATE]; @@ -172,16 +171,6 @@ short* DTMFGenerator::generateSample(unsigned char code) throw (DTMFException) { //throw new DTMFException("No memory left"); return 0; } -#if 0 - arg1 = (double)2 * (double)M_PI * (double)tones[code].higher / (double)SAMPLING_RATE; - arg2 = (double)2 * (double)M_PI * (double)tones[code].lower / (double)SAMPLING_RATE; - - for(unsigned int i = 0; i < SAMPLING_RATE; i++) { - ptr[i] = (short)((double)(AMPLITUDE >> 2) * sin(arg1 * i) + (double)(AMPLITUDE >> 2) * sin(arg2 * i)); - }; - - return ptr; -#endif generateSin(tones[code].higher, tones[code].lower, AMPLITUDE, SAMPLING_RATE, ptr); diff --git a/src/audio/dtmfgenerator.h b/src/audio/dtmfgenerator.h index d97f8b998a8cb479064bc07b13ef76f60fbb29ab..5b31519009960472d51ac7dbad27fa775c2a985b 100644 --- a/src/audio/dtmfgenerator.h +++ b/src/audio/dtmfgenerator.h @@ -51,9 +51,6 @@ public: class DTMFGenerator : public ToneGenerator { private: -// unsigned int samplingRate; // Sampling rate used, default is 8000 Hz -// short amplitude; // Amplitude of the resulting signal - struct DTMFTone { unsigned char code; // Code of the tone int lower; // Lower frequency diff --git a/src/call.cpp b/src/call.cpp index 617ad8ed3b783f35b2b7c6e820d6a826540a2c78..aa7098e03600150e53d8c91dad97c8f6cd592d0b 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -18,19 +18,11 @@ */ #include <iostream> -//#include "audio/audiocodec.h" #include "call.h" #include "manager.h" #include "sipvoiplink.h" #include "voIPLink.h" -Call::Call (void) -{ - initConstructor(); - _id = 0; - _manager = NULL; - _voIPLink = NULL; -} Call::Call (Manager* manager, short id, CallType type, VoIPLink* voiplink) { @@ -104,13 +96,6 @@ Call::getVoIPLink (void) return _voIPLink; } -/* -void -Call::setAudioCodec (void) -{ - _audiocodec = _voIPLink->getAudioCodec(getId()); -} -*/ string Call::getStatus (void) { @@ -332,13 +317,6 @@ Call::refuse (void) return i; } -int -Call::cancel (void) -{ - int i = _voIPLink->cancel(_id); - _voIPLink->deleteSipCall(_id); - return i; -} /////////////////////////////////////////////////////////////////////////////// // Private functions @@ -350,5 +328,4 @@ Call::initConstructor(void) _state = NotExist; _type = Null; _voIPLinkId = 1; -// _audiocodec = NULL; } diff --git a/src/call.h b/src/call.h index 270c5e1e3bfb6381765396370e8184c06bebf497..bab86b01696a58c121b27f0512ec20f3fbadce05 100644 --- a/src/call.h +++ b/src/call.h @@ -52,11 +52,8 @@ enum CallType { #include "manager.h" -//class AudioCodec; - class Call { public: - Call(void); Call(Manager* manager, short id, CallType type, VoIPLink* voiplink); ~Call(void); @@ -71,7 +68,6 @@ public: void setVoIPLinkId (short voIPLinkId); void setVoIPLink (VoIPLink* voIPLink); VoIPLink* getVoIPLink(void); -// void setAudioCodec(void); string getStatus (void); void setStatus (const string& status); @@ -113,15 +109,12 @@ public: int muteOn (void); int muteOff (void); int refuse (void); - int cancel (void); - private: void initConstructor (void); Manager* _manager; VoIPLink* _voIPLink; -// AudioCodec* _audiocodec; short _id; short _voIPLinkId; diff --git a/src/configuration.cpp b/src/configuration.cpp index 17c5c5491d9022a9fc16d8a9ba9e0592e7626f3a..2cc7e4145e01114f88ab0d86b4d6e25553a006c0 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -43,11 +43,6 @@ Config::get (const string& section, const string& key, const string& defval) { return value; } } -/* -string -Config::getschar (const string& section, const string& key) { - return Config::getchar (section, key, ""); -}*/ string Config::getchar (const string& section, const string& key, const string& defval){ @@ -59,13 +54,7 @@ Config::getchar (const string& section, const string& key, const string& defval) return value; } } -/* -bool -Config::getb (const string& section, const string& key) { - return (bool)Config::get (section, key, 0); -} -*/ int Config::geti (const string& section, const string& key) { return Config::get (section, key, 0); diff --git a/src/configuration.h b/src/configuration.h index 885e1107a31eb05f8a756662e6bf1c8003e1259c..23d1a0b0e021024344991d77219a532fff9bb2f3 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -33,9 +33,7 @@ public: ~Config (void) {}; static string gets (const string&, const string&); -// static string getschar(const string&, const string&); static int geti (const string&, const string&); -// static bool getb (const string&, const string&); static string get (const string&, const string&, const string&); static string getchar (const string&, const string&, const string&); diff --git a/src/eventthread.cpp b/src/eventthread.cpp index 17decd3ef51f2f2bf561d7e274ca5afa5df20cf3..e9cc4ac27349582537944b47a01b8062fb61012d 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -17,7 +17,6 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -//#include <stdio.h> #include <iostream> #include "eventthread.h" diff --git a/src/global.h b/src/global.h index 4f6fb90fa5e0f9177ee9104c123ef9fd7ba3b4c1..f5f9f29cd4f6c1682110285bf0ea1deffd90f4b6 100644 --- a/src/global.h +++ b/src/global.h @@ -32,7 +32,7 @@ #define PREFIX "/usr/local" #endif -#define VERSION "0.4" +#define VERSION "0.3.1" #define PROGNAME "sflphone" #define SKINDIR "skins" #define PIXDIR "pixmaps" diff --git a/src/gui/guiframework.cpp b/src/gui/guiframework.cpp index 9db3fa8d2bc43c36fff7ecc7b56cddd23cfd70b2..8395fed417c0e0bdac26f5b110aeb054173fe160 100644 --- a/src/gui/guiframework.cpp +++ b/src/gui/guiframework.cpp @@ -116,16 +116,6 @@ GuiFramework::refuseCall (short id) } } -int -GuiFramework::cancelCall (short id) -{ - if (_manager->cancelCall(id)) { - return 1; - } else { - return 0; - } -} - int GuiFramework::saveConfig (void) { diff --git a/src/gui/guiframework.h b/src/gui/guiframework.h index df668aeb0791e45a14d14cf71303d04988b1c942..dcfb5851b87e597db82e432f13384ac91fe926db 100644 --- a/src/gui/guiframework.h +++ b/src/gui/guiframework.h @@ -56,7 +56,6 @@ public: int muteOn (short id); int muteOff (short id); int refuseCall (short id); - int cancelCall (short id); int saveConfig (void); int registerVoIPLink (void); diff --git a/src/gui/qt/configurationpanel.ui b/src/gui/qt/configurationpanel.ui index e350341bdabc3ada1c73ea6b295fa3570e4db19d..c02d0e9d4ca52c2226a6cd8c7ef88bf97f9dc314 100644 --- a/src/gui/qt/configurationpanel.ui +++ b/src/gui/qt/configurationpanel.ui @@ -18,1302 +18,1237 @@ <property name="sizeGripEnabled"> <bool>true</bool> </property> - <widget class="QLayoutWidget"> + <grid> <property name="name"> - <cstring>layout20</cstring> + <cstring>unnamed</cstring> </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>12</y> - <width>540</width> - <height>530</height> - </rect> - </property> - <vbox> + <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout19</cstring> </property> - <widget class="QLayoutWidget"> + <vbox> <property name="name"> - <cstring>layout31</cstring> + <cstring>unnamed</cstring> </property> - <hbox> + <widget class="Line"> + <property name="name"> + <cstring>line1</cstring> + </property> + <property name="frameShape"> + <enum>HLine</enum> + </property> + <property name="frameShadow"> + <enum>Sunken</enum> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + </widget> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout28</cstring> </property> - <widget class="QListBox"> + <hbox> <property name="name"> - <cstring>Menu</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>0</hsizetype> - <vsizetype>7</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="cursor"> - <cursor>13</cursor> - </property> - <property name="currentItem"> - <number>-1</number> - </property> - <property name="selectionMode"> - <enum>Single</enum> + <cstring>unnamed</cstring> </property> - </widget> - <widget class="QLayoutWidget"> + <widget class="QPushButton"> + <property name="name"> + <cstring>buttonHelp</cstring> + </property> + <property name="text"> + <string>&Help</string> + </property> + <property name="accel"> + <string>F1</string> + </property> + <property name="autoDefault"> + <bool>true</bool> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>Horizontal Spacing2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>160</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QPushButton"> + <property name="name"> + <cstring>buttonSave</cstring> + </property> + <property name="text"> + <string>&Save</string> + </property> + <property name="accel"> + <string>Alt+S</string> + </property> + <property name="autoDefault"> + <bool>true</bool> + </property> + <property name="default"> + <bool>true</bool> + </property> + </widget> + <widget class="QPushButton"> + <property name="name"> + <cstring>buttonOk</cstring> + </property> + <property name="text"> + <string>&OK</string> + </property> + <property name="accel"> + <string>Alt+O</string> + </property> + <property name="autoDefault"> + <bool>true</bool> + </property> + </widget> + <widget class="QPushButton"> + <property name="name"> + <cstring>buttonCancel</cstring> + </property> + <property name="text"> + <string>&Cancel</string> + </property> + <property name="accel"> + <string>F, Backspace</string> + </property> + <property name="autoDefault"> + <bool>true</bool> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> + <widget class="QListBox" row="0" column="0"> + <property name="name"> + <cstring>Menu</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>7</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="cursor"> + <cursor>13</cursor> + </property> + <property name="currentItem"> + <number>-1</number> + </property> + <property name="selectionMode"> + <enum>Single</enum> + </property> + </widget> + <widget class="QLayoutWidget" row="0" column="1"> + <property name="name"> + <cstring>layout17</cstring> + </property> + <vbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>TitleTab</cstring> + </property> + <property name="font"> + <font> + <bold>1</bold> + </font> + </property> + <property name="text"> + <string>Setup signalisation</string> + </property> + </widget> + <widget class="Line"> + <property name="name"> + <cstring>line2</cstring> + </property> + <property name="frameShape"> + <enum>HLine</enum> + </property> + <property name="frameShadow"> + <enum>Sunken</enum> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + </widget> + <widget class="QTabWidget"> + <property name="name"> + <cstring>Tab_Signalisations</cstring> + </property> + <widget class="QWidget"> <property name="name"> - <cstring>layout17</cstring> + <cstring>SIPPage</cstring> </property> - <vbox> + <attribute name="title"> + <string>SIP Authentication</string> + </attribute> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout24</cstring> </property> - <widget class="QLabel"> - <property name="name"> - <cstring>TitleTab</cstring> - </property> - <property name="font"> - <font> - <bold>1</bold> - </font> - </property> - <property name="text"> - <string>Setup signalisation</string> - </property> - </widget> - <widget class="Line"> - <property name="name"> - <cstring>line2</cstring> - </property> - <property name="frameShape"> - <enum>HLine</enum> - </property> - <property name="frameShadow"> - <enum>Sunken</enum> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - </widget> - <widget class="QTabWidget"> + <property name="geometry"> + <rect> + <x>16</x> + <y>12</y> + <width>401</width> + <height>393</height> + </rect> + </property> + <vbox> <property name="name"> - <cstring>Tab_Signalisations</cstring> + <cstring>unnamed</cstring> </property> - <widget class="QWidget"> + <widget class="QGroupBox"> <property name="name"> - <cstring>SIPPage</cstring> + <cstring>groupBox1</cstring> + </property> + <property name="title"> + <string></string> </property> - <attribute name="title"> - <string>SIP Authentication</string> - </attribute> - <widget class="QLayoutWidget"> + <grid> <property name="name"> - <cstring>layout24</cstring> + <cstring>unnamed</cstring> </property> - <property name="geometry"> - <rect> - <x>16</x> - <y>12</y> - <width>401</width> - <height>393</height> - </rect> - </property> - <vbox> + <widget class="QLabel" row="0" column="0"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>textLabel2</cstring> </property> - <widget class="QGroupBox"> - <property name="name"> - <cstring>groupBox1</cstring> - </property> - <property name="title"> - <string></string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel" row="0" column="0"> - <property name="name"> - <cstring>textLabel2</cstring> - </property> - <property name="text"> - <string>Full name</string> - </property> - </widget> - <widget class="QLineEdit" row="1" column="0"> - <property name="name"> - <cstring>fullName</cstring> - </property> - </widget> - <widget class="QLineEdit" row="3" column="0"> - <property name="name"> - <cstring>userPart</cstring> - </property> - </widget> - <widget class="QLabel" row="2" column="0"> - <property name="name"> - <cstring>textLabel3</cstring> - </property> - <property name="text"> - <string>User Part of SIP URL</string> - </property> - </widget> - <widget class="QLabel" row="4" column="0"> - <property name="name"> - <cstring>textLabel2_3</cstring> - </property> - <property name="text"> - <string>Authorization user</string> - </property> - </widget> - <widget class="QLineEdit" row="5" column="0"> - <property name="name"> - <cstring>username</cstring> - </property> - </widget> - <widget class="QLineEdit" row="9" column="0"> - <property name="name"> - <cstring>hostPart</cstring> - </property> - </widget> - <widget class="QLineEdit" row="11" column="0"> - <property name="name"> - <cstring>sipproxy</cstring> - </property> - </widget> - <widget class="QLabel" row="10" column="0"> - <property name="name"> - <cstring>textLabel3_2_2</cstring> - </property> - <property name="text"> - <string>SIP proxy</string> - </property> - </widget> - <widget class="QLineEdit" row="7" column="0"> - <property name="name"> - <cstring>password</cstring> - </property> - <property name="echoMode"> - <enum>Password</enum> - </property> - </widget> - <widget class="QLabel" row="6" column="0"> - <property name="name"> - <cstring>textLabel1_3</cstring> - </property> - <property name="text"> - <string>Password</string> - </property> - </widget> - <widget class="QLabel" row="8" column="0"> - <property name="name"> - <cstring>textLabel3_2</cstring> - </property> - <property name="text"> - <string>Host part of SIP URL</string> - </property> - </widget> - </grid> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout23</cstring> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout19</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QCheckBox"> - <property name="name"> - <cstring>autoregister</cstring> - </property> - <property name="text"> - <string>Auto-register</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer7</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>201</width> - <height>21</height> - </size> - </property> - </spacer> - <widget class="QPushButton"> - <property name="name"> - <cstring>Register</cstring> - </property> - <property name="text"> - <string>Register</string> - </property> - </widget> - </hbox> - </widget> - <spacer> - <property name="name"> - <cstring>spacer9</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>21</height> - </size> - </property> - </spacer> - </vbox> - </widget> - </vbox> - </widget> - </widget> - <widget class="QWidget"> - <property name="name"> - <cstring>STUNPage</cstring> - </property> - <attribute name="title"> - <string>STUN</string> - </attribute> - <widget class="QGroupBox"> - <property name="name"> - <cstring>groupBox3</cstring> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>110</y> - <width>253</width> - <height>100</height> - </rect> - </property> - <property name="title"> - <string>Settings </string> - </property> - <widget class="QLabel"> + <property name="text"> + <string>Full name</string> + </property> + </widget> + <widget class="QLineEdit" row="1" column="0"> <property name="name"> - <cstring>textLabel1_5</cstring> + <cstring>fullName</cstring> </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>38</y> - <width>229</width> - <height>16</height> - </rect> + </widget> + <widget class="QLineEdit" row="3" column="0"> + <property name="name"> + <cstring>userPart</cstring> + </property> + </widget> + <widget class="QLabel" row="2" column="0"> + <property name="name"> + <cstring>textLabel3</cstring> </property> <property name="text"> - <string>STUN server (address:port)</string> + <string>User Part of SIP URL</string> </property> </widget> - <widget class="QLineEdit"> + <widget class="QLabel" row="4" column="0"> <property name="name"> - <cstring>STUNserver</cstring> + <cstring>textLabel2_3</cstring> </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>60</y> - <width>229</width> - <height>23</height> - </rect> + <property name="text"> + <string>Authorization user</string> </property> </widget> - </widget> - <widget class="QButtonGroup"> - <property name="name"> - <cstring>stunButtonGroup</cstring> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>90</width> - <height>81</height> - </rect> - </property> - <property name="title"> - <string>Use STUN</string> - </property> - <vbox> + <widget class="QLineEdit" row="5" column="0"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>username</cstring> </property> - <widget class="QRadioButton"> - <property name="name"> - <cstring>useStunNo</cstring> - </property> - <property name="text"> - <string>No</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <widget class="QRadioButton"> - <property name="name"> - <cstring>useStunYes</cstring> - </property> - <property name="text"> - <string>Yes</string> - </property> - <property name="checked"> - <bool>false</bool> - </property> - </widget> - </vbox> - </widget> + </widget> + <widget class="QLineEdit" row="9" column="0"> + <property name="name"> + <cstring>hostPart</cstring> + </property> + </widget> + <widget class="QLineEdit" row="11" column="0"> + <property name="name"> + <cstring>sipproxy</cstring> + </property> + </widget> + <widget class="QLabel" row="10" column="0"> + <property name="name"> + <cstring>textLabel3_2_2</cstring> + </property> + <property name="text"> + <string>SIP proxy</string> + </property> + </widget> + <widget class="QLineEdit" row="7" column="0"> + <property name="name"> + <cstring>password</cstring> + </property> + <property name="echoMode"> + <enum>Password</enum> + </property> + </widget> + <widget class="QLabel" row="6" column="0"> + <property name="name"> + <cstring>textLabel1_3</cstring> + </property> + <property name="text"> + <string>Password</string> + </property> + </widget> + <widget class="QLabel" row="8" column="0"> + <property name="name"> + <cstring>textLabel3_2</cstring> + </property> + <property name="text"> + <string>Host part of SIP URL</string> + </property> + </widget> + </grid> </widget> - <widget class="QWidget"> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>DTMFPage</cstring> + <cstring>layout23</cstring> </property> - <attribute name="title"> - <string>DTMF</string> - </attribute> - <widget class="QGroupBox"> + <vbox> <property name="name"> - <cstring>SettingsDTMF</cstring> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>301</width> - <height>130</height> - </rect> + <cstring>unnamed</cstring> </property> - <property name="title"> - <string>Settings</string> - </property> - <grid> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout19</cstring> </property> - <widget class="QLayoutWidget" row="0" column="0"> + <hbox> <property name="name"> - <cstring>layout11</cstring> + <cstring>unnamed</cstring> </property> - <vbox> + <widget class="QCheckBox"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>autoregister</cstring> </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout10</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QCheckBox"> - <property name="name"> - <cstring>playTones</cstring> - </property> - <property name="text"> - <string>Play tones locally</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer6</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>111</width> - <height>20</height> - </size> - </property> - </spacer> - </hbox> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout7</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>labelPulseLength</cstring> - </property> - <property name="text"> - <string>Pulse length</string> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer3</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>115</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="QSpinBox"> - <property name="name"> - <cstring>pulseLength</cstring> - </property> - <property name="suffix"> - <string> ms</string> - </property> - <property name="maxValue"> - <number>1500</number> - </property> - <property name="minValue"> - <number>10</number> - </property> - <property name="value"> - <number>250</number> - </property> - </widget> - </hbox> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout8</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>labelSendDTMF</cstring> - </property> - <property name="text"> - <string>Send DTMF as</string> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer4</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>85</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>SIP INFO</string> - </property> - </item> - <property name="name"> - <cstring>sendDTMFas</cstring> - </property> - <property name="currentItem"> - <number>0</number> - </property> - </widget> - </hbox> - </widget> - </vbox> - </widget> - </grid> - </widget> + <property name="text"> + <string>Auto-register</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer7</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>201</width> + <height>21</height> + </size> + </property> + </spacer> + <widget class="QPushButton"> + <property name="name"> + <cstring>Register</cstring> + </property> + <property name="text"> + <string>Register</string> + </property> + </widget> + </hbox> + </widget> + <spacer> + <property name="name"> + <cstring>spacer9</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>20</width> + <height>21</height> + </size> + </property> + </spacer> + </vbox> </widget> + </vbox> + </widget> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>STUNPage</cstring> + </property> + <attribute name="title"> + <string>STUN</string> + </attribute> + <widget class="QGroupBox"> + <property name="name"> + <cstring>groupBox3</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>110</y> + <width>253</width> + <height>100</height> + </rect> + </property> + <property name="title"> + <string>Settings </string> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_5</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>38</y> + <width>229</width> + <height>16</height> + </rect> + </property> + <property name="text"> + <string>STUN server (address:port)</string> + </property> </widget> - <widget class="QTabWidget"> + <widget class="QLineEdit"> + <property name="name"> + <cstring>STUNserver</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>60</y> + <width>229</width> + <height>23</height> + </rect> + </property> + </widget> + </widget> + <widget class="QButtonGroup"> + <property name="name"> + <cstring>stunButtonGroup</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>90</width> + <height>81</height> + </rect> + </property> + <property name="title"> + <string>Use STUN</string> + </property> + <vbox> <property name="name"> - <cstring>Tab_Audio</cstring> + <cstring>unnamed</cstring> </property> - <widget class="QWidget"> + <widget class="QRadioButton"> <property name="name"> - <cstring>DriversPage</cstring> + <cstring>useStunNo</cstring> + </property> + <property name="text"> + <string>No</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + <widget class="QRadioButton"> + <property name="name"> + <cstring>useStunYes</cstring> + </property> + <property name="text"> + <string>Yes</string> + </property> + <property name="checked"> + <bool>false</bool> </property> - <attribute name="title"> - <string>Drivers</string> - </attribute> - <widget class="QButtonGroup"> + </widget> + </vbox> + </widget> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>DTMFPage</cstring> + </property> + <attribute name="title"> + <string>DTMF</string> + </attribute> + <widget class="QGroupBox"> + <property name="name"> + <cstring>SettingsDTMF</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>301</width> + <height>130</height> + </rect> + </property> + <property name="title"> + <string>Settings</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget" row="0" column="0"> + <property name="name"> + <cstring>layout11</cstring> + </property> + <vbox> <property name="name"> - <cstring>DriverChoice</cstring> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>104</width> - <height>81</height> - </rect> + <cstring>unnamed</cstring> </property> - <property name="title"> - <string>Drivers</string> - </property> - <vbox> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout10</cstring> </property> - <widget class="QRadioButton"> + <hbox> <property name="name"> - <cstring>ossButton</cstring> + <cstring>unnamed</cstring> </property> - <property name="text"> - <string>OSS</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <widget class="QRadioButton"> + <widget class="QCheckBox"> + <property name="name"> + <cstring>playTones</cstring> + </property> + <property name="text"> + <string>Play tones locally</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer6</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>111</width> + <height>20</height> + </size> + </property> + </spacer> + </hbox> + </widget> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout7</cstring> + </property> + <hbox> <property name="name"> - <cstring>alsaButton</cstring> - </property> - <property name="enabled"> - <bool>true</bool> + <cstring>unnamed</cstring> </property> - <property name="text"> - <string>ALSA</string> - </property> - </widget> - </vbox> - </widget> - </widget> - <widget class="QWidget"> - <property name="name"> - <cstring>CodecsPage</cstring> - </property> - <attribute name="title"> - <string>Codecs</string> - </attribute> - <widget class="QButtonGroup"> - <property name="name"> - <cstring>CodecsChoice</cstring> - </property> - <property name="geometry"> - <rect> - <x>20</x> - <y>10</y> - <width>126</width> - <height>196</height> - </rect> - </property> - <property name="title"> - <string>Supported codecs</string> - </property> - <grid> + <widget class="QLabel"> + <property name="name"> + <cstring>labelPulseLength</cstring> + </property> + <property name="text"> + <string>Pulse length</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer3</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>115</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QSpinBox"> + <property name="name"> + <cstring>pulseLength</cstring> + </property> + <property name="suffix"> + <string> ms</string> + </property> + <property name="maxValue"> + <number>1500</number> + </property> + <property name="minValue"> + <number>10</number> + </property> + <property name="value"> + <number>250</number> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout8</cstring> </property> - <widget class="QLayoutWidget" row="0" column="0"> + <hbox> <property name="name"> - <cstring>layout11</cstring> + <cstring>unnamed</cstring> </property> - <hbox> + <widget class="QLabel"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>labelSendDTMF</cstring> </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout9</cstring> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>G711u</string> - </property> - </item> - <item> - <property name="text"> - <string>G711a</string> - </property> - </item> - <item> - <property name="text"> - <string>GSM</string> - </property> - </item> - <property name="name"> - <cstring>codec1</cstring> - </property> - </widget> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>G711a</string> - </property> - </item> - <item> - <property name="text"> - <string>G711u</string> - </property> - </item> - <item> - <property name="text"> - <string>GSM</string> - </property> - </item> - <property name="name"> - <cstring>codec2</cstring> - </property> - </widget> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>G711u</string> - </property> - </item> - <item> - <property name="text"> - <string>G711a</string> - </property> - </item> - <item> - <property name="text"> - <string>GSM</string> - </property> - </item> - <property name="name"> - <cstring>codec3</cstring> - </property> - </widget> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>G711u</string> - </property> - </item> - <item> - <property name="text"> - <string>G711a</string> - </property> - </item> - <item> - <property name="text"> - <string>GSM</string> - </property> - </item> - <property name="name"> - <cstring>codec4</cstring> - </property> - </widget> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>G711u</string> - </property> - </item> - <item> - <property name="text"> - <string>G711a</string> - </property> - </item> - <item> - <property name="text"> - <string>GSM</string> - </property> - </item> - <property name="name"> - <cstring>codec5</cstring> - </property> - </widget> - </vbox> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout10</cstring> + <property name="text"> + <string>Send DTMF as</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer4</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>85</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QComboBox"> + <item> + <property name="text"> + <string>SIP INFO</string> </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_4</cstring> - </property> - <property name="text"> - <string>1</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_4_2</cstring> - </property> - <property name="text"> - <string>2</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_4_3</cstring> - </property> - <property name="text"> - <string>3</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_4_4</cstring> - </property> - <property name="text"> - <string>4</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_4_5</cstring> - </property> - <property name="text"> - <string>5</string> - </property> - </widget> - </vbox> - </widget> - </hbox> - </widget> - </grid> - </widget> - </widget> - <widget class="QWidget"> - <property name="name"> - <cstring>RingPage</cstring> - </property> - <attribute name="title"> - <string>Ringtones</string> - </attribute> - <widget class="QComboBox"> - <property name="name"> - <cstring>ringsChoice</cstring> - </property> - <property name="geometry"> - <rect> - <x>20</x> - <y>21</y> - <width>150</width> - <height>30</height> - </rect> - </property> - </widget> + </item> + <property name="name"> + <cstring>sendDTMFas</cstring> + </property> + <property name="currentItem"> + <number>0</number> + </property> + </widget> + </hbox> + </widget> + </vbox> </widget> - </widget> - <widget class="QTabWidget"> + </grid> + </widget> + </widget> + </widget> + <widget class="QTabWidget"> + <property name="name"> + <cstring>Tab_Audio</cstring> + </property> + <widget class="QWidget"> + <property name="name"> + <cstring>DriversPage</cstring> + </property> + <attribute name="title"> + <string>Drivers</string> + </attribute> + <widget class="QButtonGroup"> + <property name="name"> + <cstring>DriverChoice</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>104</width> + <height>81</height> + </rect> + </property> + <property name="title"> + <string>Drivers</string> + </property> + <vbox> <property name="name"> - <cstring>Tab_Video</cstring> + <cstring>unnamed</cstring> </property> - <widget class="QWidget"> + <widget class="QRadioButton"> <property name="name"> - <cstring>DriversPage</cstring> + <cstring>ossButton</cstring> </property> - <attribute name="title"> - <string>Drivers</string> - </attribute> - </widget> - <widget class="QWidget"> - <property name="name"> - <cstring>CodecsPage</cstring> + <property name="text"> + <string>OSS</string> </property> - <attribute name="title"> - <string>Codecs</string> - </attribute> - </widget> - </widget> - <widget class="QTabWidget"> - <property name="name"> - <cstring>Tab_Network</cstring> - </property> - <widget class="QWidget"> - <property name="name"> - <cstring>DriversPage</cstring> + <property name="checked"> + <bool>true</bool> </property> - <attribute name="title"> - <string></string> - </attribute> </widget> - <widget class="QWidget"> + <widget class="QRadioButton"> <property name="name"> - <cstring>CodecsPage</cstring> + <cstring>alsaButton</cstring> + </property> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="text"> + <string>ALSA</string> </property> - <attribute name="title"> - <string></string> - </attribute> </widget> - </widget> - <widget class="QTabWidget"> + </vbox> + </widget> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>CodecsPage</cstring> + </property> + <attribute name="title"> + <string>Codecs</string> + </attribute> + <widget class="QButtonGroup"> + <property name="name"> + <cstring>CodecsChoice</cstring> + </property> + <property name="geometry"> + <rect> + <x>20</x> + <y>10</y> + <width>126</width> + <height>196</height> + </rect> + </property> + <property name="title"> + <string>Supported codecs</string> + </property> + <grid> <property name="name"> - <cstring>Tab_Preferences</cstring> + <cstring>unnamed</cstring> </property> - <widget class="QWidget"> - <property name="name"> - <cstring>DriversPage</cstring> - </property> - <attribute name="title"> - <string>Themes</string> - </attribute> - <widget class="QComboBox"> - <property name="name"> - <cstring>SkinChoice</cstring> - </property> - <property name="geometry"> - <rect> - <x>12</x> - <y>42</y> - <width>110</width> - <height>27</height> - </rect> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonApplySkin</cstring> - </property> - <property name="geometry"> - <rect> - <x>136</x> - <y>40</y> - <width>80</width> - <height>32</height> - </rect> - </property> - <property name="text"> - <string>&Apply</string> - </property> - <property name="accel"> - <string>Alt+A</string> - </property> - </widget> - </widget> - <widget class="QWidget"> + <widget class="QLayoutWidget" row="0" column="0"> <property name="name"> - <cstring>TabPage</cstring> + <cstring>layout11</cstring> </property> - <attribute name="title"> - <string>Options</string> - </attribute> - <widget class="QLayoutWidget"> + <hbox> <property name="name"> - <cstring>layout17</cstring> - </property> - <property name="geometry"> - <rect> - <x>10</x> - <y>10</y> - <width>262</width> - <height>200</height> - </rect> + <cstring>unnamed</cstring> </property> - <vbox> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>layout9</cstring> </property> - <widget class="QLayoutWidget"> + <vbox> <property name="name"> - <cstring>layout16</cstring> + <cstring>unnamed</cstring> </property> - <hbox> + <widget class="QComboBox"> + <item> + <property name="text"> + <string>G711u</string> + </property> + </item> + <item> + <property name="text"> + <string>G711a</string> + </property> + </item> + <item> + <property name="text"> + <string>GSM</string> + </property> + </item> <property name="name"> - <cstring>unnamed</cstring> + <cstring>codec1</cstring> </property> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_2</cstring> - </property> + </widget> + <widget class="QComboBox"> + <item> <property name="text"> - <string>Zone tone:</string> + <string>G711a</string> </property> - </widget> - <widget class="QComboBox"> - <item> - <property name="text"> - <string>North America</string> - </property> - </item> - <item> - <property name="text"> - <string>France</string> - </property> - </item> - <item> - <property name="text"> - <string>Australia</string> - </property> - </item> - <item> - <property name="text"> - <string>United Kingdom</string> - </property> - </item> - <item> - <property name="text"> - <string>Spain</string> - </property> - </item> - <item> - <property name="text"> - <string>Italy</string> - </property> - </item> - <item> - <property name="text"> - <string>Japan</string> - </property> - </item> - <property name="name"> - <cstring>zoneToneChoice</cstring> + </item> + <item> + <property name="text"> + <string>G711u</string> </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer5</cstring> + </item> + <item> + <property name="text"> + <string>GSM</string> </property> - <property name="orientation"> - <enum>Horizontal</enum> + </item> + <property name="name"> + <cstring>codec2</cstring> + </property> + </widget> + <widget class="QComboBox"> + <item> + <property name="text"> + <string>G711u</string> </property> - <property name="sizeType"> - <enum>Expanding</enum> + </item> + <item> + <property name="text"> + <string>G711a</string> </property> - <property name="sizeHint"> - <size> - <width>31</width> - <height>21</height> - </size> + </item> + <item> + <property name="text"> + <string>GSM</string> </property> - </spacer> - </hbox> - </widget> - <widget class="QCheckBox"> - <property name="name"> - <cstring>confirmationToQuit</cstring> - </property> - <property name="text"> - <string>Show confirmation to quit.</string> - </property> - <property name="checked"> - <bool>true</bool> - </property> - </widget> - <widget class="QCheckBox"> - <property name="name"> - <cstring>checkedTray</cstring> - </property> - <property name="text"> - <string>Minimize to tray</string> - </property> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout16</cstring> - </property> - <hbox> + </item> <property name="name"> - <cstring>unnamed</cstring> + <cstring>codec3</cstring> </property> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1_6</cstring> - </property> + </widget> + <widget class="QComboBox"> + <item> <property name="text"> - <string>Voicemail:</string> + <string>G711u</string> </property> - </widget> - <widget class="QLineEdit"> - <property name="name"> - <cstring>voicemailNumber</cstring> + </item> + <item> + <property name="text"> + <string>G711a</string> </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer6_2</cstring> + </item> + <item> + <property name="text"> + <string>GSM</string> </property> - <property name="orientation"> - <enum>Horizontal</enum> + </item> + <property name="name"> + <cstring>codec4</cstring> + </property> + </widget> + <widget class="QComboBox"> + <item> + <property name="text"> + <string>G711u</string> </property> - <property name="sizeType"> - <enum>Expanding</enum> + </item> + <item> + <property name="text"> + <string>G711a</string> </property> - <property name="sizeHint"> - <size> - <width>61</width> - <height>21</height> - </size> + </item> + <item> + <property name="text"> + <string>GSM</string> </property> - </spacer> - </hbox> - </widget> - </vbox> - </widget> + </item> + <property name="name"> + <cstring>codec5</cstring> + </property> + </widget> + </vbox> + </widget> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout10</cstring> + </property> + <vbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_4</cstring> + </property> + <property name="text"> + <string>1</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_4_2</cstring> + </property> + <property name="text"> + <string>2</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_4_3</cstring> + </property> + <property name="text"> + <string>3</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_4_4</cstring> + </property> + <property name="text"> + <string>4</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_4_5</cstring> + </property> + <property name="text"> + <string>5</string> + </property> + </widget> + </vbox> + </widget> + </hbox> </widget> - </widget> - <widget class="QTabWidget"> + </grid> + </widget> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>RingPage</cstring> + </property> + <attribute name="title"> + <string>Ringtones</string> + </attribute> + <widget class="QComboBox"> + <property name="name"> + <cstring>ringsChoice</cstring> + </property> + <property name="geometry"> + <rect> + <x>20</x> + <y>21</y> + <width>150</width> + <height>30</height> + </rect> + </property> + </widget> + </widget> + </widget> + <widget class="QTabWidget"> + <property name="name"> + <cstring>Tab_Preferences</cstring> + </property> + <widget class="QWidget"> + <property name="name"> + <cstring>DriversPage</cstring> + </property> + <attribute name="title"> + <string>Themes</string> + </attribute> + <widget class="QComboBox"> + <property name="name"> + <cstring>SkinChoice</cstring> + </property> + <property name="geometry"> + <rect> + <x>12</x> + <y>42</y> + <width>110</width> + <height>27</height> + </rect> + </property> + </widget> + <widget class="QPushButton"> + <property name="name"> + <cstring>buttonApplySkin</cstring> + </property> + <property name="geometry"> + <rect> + <x>136</x> + <y>40</y> + <width>80</width> + <height>32</height> + </rect> + </property> + <property name="text"> + <string>&Apply</string> + </property> + <property name="accel"> + <string>Alt+A</string> + </property> + </widget> + </widget> + <widget class="QWidget"> + <property name="name"> + <cstring>TabPage</cstring> + </property> + <attribute name="title"> + <string>Options</string> + </attribute> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout17</cstring> + </property> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>262</width> + <height>200</height> + </rect> + </property> + <vbox> <property name="name"> - <cstring>Tab_About</cstring> + <cstring>unnamed</cstring> </property> - <widget class="QWidget"> + <widget class="QLayoutWidget"> <property name="name"> - <cstring>DriversPage</cstring> + <cstring>layout16</cstring> </property> - <attribute name="title"> - <string>About SFLPhone</string> - </attribute> - <widget class="QLabel"> - <property name="name"> - <cstring>pixmapLabel1</cstring> - </property> - <property name="geometry"> - <rect> - <x>50</x> - <y>40</y> - <width>312</width> - <height>91</height> - </rect> - </property> - <property name="pixmap"> - <pixmap>image0</pixmap> - </property> - <property name="scaledContents"> - <bool>true</bool> - </property> - </widget> - <widget class="QLabel"> + <hbox> <property name="name"> - <cstring>textLabel2_2</cstring> - </property> - <property name="geometry"> - <rect> - <x>20</x> - <y>170</y> - <width>371</width> - <height>121</height> - </rect> + <cstring>unnamed</cstring> </property> - <property name="text"> - <string><p align="center"> -Copyright (C) 2004-2005 Savoir-faire Linux inc.<br><br> -Laurielle LEA &lt;laurielle.lea@savoirfairelinux.com&gt;<br><br> -SFLPhone-0.4 is released under the General Public License.<br> -For more information, see http://www.sflphone.org<br> -</p></string> - </property> - </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_2</cstring> + </property> + <property name="text"> + <string>Zone tone:</string> + </property> + </widget> + <widget class="QComboBox"> + <item> + <property name="text"> + <string>North America</string> + </property> + </item> + <item> + <property name="text"> + <string>France</string> + </property> + </item> + <item> + <property name="text"> + <string>Australia</string> + </property> + </item> + <item> + <property name="text"> + <string>United Kingdom</string> + </property> + </item> + <item> + <property name="text"> + <string>Spain</string> + </property> + </item> + <item> + <property name="text"> + <string>Italy</string> + </property> + </item> + <item> + <property name="text"> + <string>Japan</string> + </property> + </item> + <property name="name"> + <cstring>zoneToneChoice</cstring> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer5</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>31</width> + <height>21</height> + </size> + </property> + </spacer> + </hbox> </widget> - <widget class="QWidget"> + <widget class="QCheckBox"> <property name="name"> - <cstring>CodecsPage</cstring> + <cstring>confirmationToQuit</cstring> </property> - <attribute name="title"> - <string>About Savoir-faire Linux inc.</string> - </attribute> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="geometry"> - <rect> - <x>85</x> - <y>126</y> - <width>291</width> - <height>131</height> - </rect> - </property> - <property name="text"> - <string><p align="center">Website: http://www.savoirfairelinux.com<br><br> -5505, Saint-Laurent - bureau 3030<br> -Montreal, Quebec H2T 1S6</p></string> - </property> - </widget> - <widget class="QLabel"> + <property name="text"> + <string>Show confirmation to quit.</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + <widget class="QCheckBox"> + <property name="name"> + <cstring>checkedTray</cstring> + </property> + <property name="text"> + <string>Minimize to tray</string> + </property> + </widget> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout16</cstring> + </property> + <hbox> <property name="name"> - <cstring>pixmapLabel2</cstring> + <cstring>unnamed</cstring> </property> - <property name="geometry"> - <rect> - <x>130</x> - <y>50</y> - <width>173</width> - <height>48</height> - </rect> - </property> - <property name="pixmap"> - <pixmap>image1</pixmap> - </property> - <property name="scaledContents"> - <bool>true</bool> - </property> - </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_6</cstring> + </property> + <property name="text"> + <string>Voicemail:</string> + </property> + </widget> + <widget class="QLineEdit"> + <property name="name"> + <cstring>voicemailNumber</cstring> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer6_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>61</width> + <height>21</height> + </size> + </property> + </spacer> + </hbox> </widget> - </widget> - </vbox> + </vbox> + </widget> </widget> - </hbox> - </widget> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout19</cstring> - </property> - <vbox> + </widget> + <widget class="QTabWidget"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>Tab_About</cstring> </property> - <widget class="Line"> + <widget class="QWidget"> <property name="name"> - <cstring>line1</cstring> - </property> - <property name="frameShape"> - <enum>HLine</enum> - </property> - <property name="frameShadow"> - <enum>Sunken</enum> - </property> - <property name="orientation"> - <enum>Horizontal</enum> + <cstring>DriversPage</cstring> </property> + <attribute name="title"> + <string>About SFLPhone</string> + </attribute> + <widget class="QLabel"> + <property name="name"> + <cstring>pixmapLabel1</cstring> + </property> + <property name="geometry"> + <rect> + <x>50</x> + <y>40</y> + <width>312</width> + <height>91</height> + </rect> + </property> + <property name="pixmap"> + <pixmap>image0</pixmap> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel2_2</cstring> + </property> + <property name="geometry"> + <rect> + <x>20</x> + <y>170</y> + <width>371</width> + <height>121</height> + </rect> + </property> + <property name="text"> + <string><p align="center"> +Copyright (C) 2004-2005 Savoir-faire Linux inc.<br><br> +Laurielle LEA &lt;laurielle.lea@savoirfairelinux.com&gt;<br><br> +SFLPhone-0.3.1 is released under the General Public License.<br> +For more information, see http://www.sflphone.org<br> +</p></string> + </property> + </widget> </widget> - <widget class="QLayoutWidget"> + <widget class="QWidget"> <property name="name"> - <cstring>layout28</cstring> + <cstring>CodecsPage</cstring> </property> - <hbox> + <attribute name="title"> + <string>About Savoir-faire Linux inc.</string> + </attribute> + <widget class="QLabel"> <property name="name"> - <cstring>unnamed</cstring> + <cstring>textLabel1</cstring> </property> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonHelp</cstring> - </property> - <property name="text"> - <string>&Help</string> - </property> - <property name="accel"> - <string>F1</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>Horizontal Spacing2</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>160</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonSave</cstring> - </property> - <property name="text"> - <string>&Save</string> - </property> - <property name="accel"> - <string>Alt+S</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonOk</cstring> - </property> - <property name="text"> - <string>&OK</string> - </property> - <property name="accel"> - <string>Alt+O</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonCancel</cstring> - </property> - <property name="text"> - <string>&Cancel</string> - </property> - <property name="accel"> - <string>F, Backspace</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - </widget> - </hbox> + <property name="geometry"> + <rect> + <x>85</x> + <y>126</y> + <width>291</width> + <height>131</height> + </rect> + </property> + <property name="text"> + <string><p align="center">Website: http://www.savoirfairelinux.com<br><br> +5505, Saint-Laurent - bureau 3030<br> +Montreal, Quebec H2T 1S6</p></string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>pixmapLabel2</cstring> + </property> + <property name="geometry"> + <rect> + <x>130</x> + <y>50</y> + <width>173</width> + <height>48</height> + </rect> + </property> + <property name="pixmap"> + <pixmap>image1</pixmap> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> </widget> - </vbox> - </widget> - </vbox> - </widget> + </widget> + </vbox> + </widget> + </grid> </widget> <images> <image name="image0"> <data format="XPM.GZ" length="58862">789ced5d596fe3b8b27e9f5f114cbd0d0eea6475625cdc878eb3b4b34ca72799e9745f9c07c74b76c776363b07e7bfdf629194488ad49249e4f40151109292488a923e7dac85a2fff9dbc2e9d1e1c26ffffce5fea1f370d95de85e74260bbff51e6f6f67fff7affffdf72fbfae2c2d2f34971696165717967ffdc72fbfe21f0bdd05682c37d61a52ffcc7a87f40eebbb4a6f2a7d47e93da57f17fafa4aa3b7be2274e8487d7d49eab8a4f43575fc96f533d2cf58df547a53e953a5f794fe22f48d95f5de866caf2df58d25a9c34ce96beaf8b9d4cf96cf56f9f890f5333a2edb1b2bbd29757c547a4f1d1f495dd7c78b44efb13e507a43e9db426fae6ef49af27c7da93797943e50fa9ad4f145ea49fd65a577947ea8f5ee1ad7df557a5f1e872dadcbe3f8c47a97daefb2fea0f4a6d2ef95de53faa5d4757de849bdbbacf496d03babcd5e47f6ff52ea9d25a583d2d7a48e7da927f59f125d5ecf27a537947ec47a97eacbfe4c94de51fab1d2fb528767a927f5af94de913a74b5de93e7df577a5f955f14fad96aa7af9ee758eac9f36d28bda1f0b22775dd1e9e28bdaff403a9f79695bece7a2f799e23a5ebe7f9ac74f5fc7045eaba3e7c4af43e1f5f557a43eac0f8eaae25cffb4eeafa7ee354e90da5f7a4aeebe3b5d23baa3d7e3fba3d7d3fe14ee9ea7ee250e9eafec195d4757dfc5debfd06eb6b4aefabf62fb42e8fc367a9f79795ceef5b6f2db99f33a927f7734fe90da57f937a52ff20d1657fba4a6fa8fefc99e8f238bf2fd43b7d3f51e9fa7a6e95aefa8f9b52d7f5e14ce91dd5de86d0fb0d7d7df855eaba7fd854baea0fec285dd587b6d607f2f8b5d2fbaafd2f5a57c7f97dee27fdc153a5ebf6264ad7f5ffd2baac8f37521f2c2bfd4ce90da5ff10fa20391fee4b3d29df52ba2edf49f4019fff46e91da533df0c06fa3882d2d5f1af0f4a1f683d4a94fa24622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d7f177308d821399bf77544f979e4b598c32ef6b08f033cc70bb55de2155ee3cdbcafe8e30bdee210ef7084639ce03d3ee0233ed1df09e9cf38c519decebb87ef2bd53147ac768d2f8cb601612dfbf7136ecefbaa3ea2600bb70855dbb883bbf8b960dbc5366171847bb83fef7ebfbd54c51c1e58dc16da0e3f0eeef81df91dbfbc4bdbfb848b23622d282cf99570f4c7abb6e379dfc1b7962a98c31b1a3ffddce6fb7b52aac53f091107344a5ff2d87c42e8f8eb2daf0fbf25fd7973d4e1293392e0a5eff8a3a0ec6221b785b6a5b7eef7bca53ce6e8e915f39bbd2de7f916c43f57c17a2b7ebb903c966f6447ae166c6b29be08cdbaddde5bdf3b6c187c342a28bbe4e1b0255c278edcc0267e05c42d00e8f8b80ef0ad7b3e5f298b39465c96cb06849b2b42c8359ce1267433c797b1e36d0d88db2e0ab8f2c41db108a56539f602bfa9f324fbe1cd31077d838f724740ea4786bf60e02b07e7597b0fcedfbae7f3957298f372dc00d7ac327f911597e5ac818fb108a7699915dc14c8c40e9cc105f48cba874ead9ea7fdd0c67da3676df8d56f7defc8df4cb928b7751a855deeea602b507694e1bac5b7eef97ca50ce6f08b974baecd32c47321cec93c0db2e0521f37c38364e3ad32838ae3dfac73749df69709bb3d204e931bc915fd774dffabbec14d5e3ffeae900f9a72513ee6006e1d9edb0a9786a1c373776fddf3f94a29cc2dfbb8c4ba4b6730cae19c15abb52fc9fee073a267744163ab331a1242cd7657a13016581fcf6151d99151760727b9656fd9fa53e561f8d6fd9eb714638ec63eafdd649559ceb7afe0dadb5ec5f8b1652f96b2ce98e7743fde97e7c685a587e42734b3f13698900771ef29dfa211f9166790d766618c46956bc2234ee9fca76f7d0f5e234598a3912ec45f3725caa80d9e8c7bfca4f62f57ed2b3c57e5ac6a3c87fb70477e64533c49dcc7198ef101a6f81d66788477d9676ff1dc1fd2d2a7e7fa0c973084195c12b70523bad4b3676a7da6f90c3a30a61acd40e91f7847e567844260940e71421ecc928e1e877009f7e40bbfa49c293816c80dae7ae7df568a30079fcac4df380b96ef4b265137b6d5c4fe4f55fb6ad87307256b54b0e70861a94fd9f1c6ca1c5bdee439e6ba4e12af4bda8147efb9a6b0e9cf3f402bcb4584c5cf057ddbf58dd6701eb80eb204ca32e47b4821cf0d82fc3548fb4dcfd66bf319db956a2fe144c8b1a2037d49ec39b82859a302cf116b14e604888b8c676bf35cb0ceb6739e0d62a6dc3a84310311706ff154f83cb6853d8171ee39a64551ecf7937ccc4149eee2d859418e425bfc894ffa37ecb9b29833edb97c8cc343b9bc00f99f498cc3e539ff465c6322085d2ef46e064e7156a65fcca98955483ed8b0b04e7b5e5c5780b96e0e772dbb1126f20ef2b84e656089add27c43a5ab4eed3928392e97e7395f3e1436c9f619e13d8f50e9fe84e9caf11c6d897f41c8dec91cff4ee36cb64edab359e9dc6ce2e11253da1cb8497bc66401dad7f72131c7fe68c817ddf194ff421e4288eb5655995563ff7295b900863d57d287b0ecb9c3dc92599e3347d16d63ffae1e95b23c0703c2e83159edf6fe84b518a5d639a4f5c6734edaceb199aa93e1397811ef029dcbe52e957f33f2c09f79144d7c06f2904d3bf27b282efdbe92873908fba397e18c395c046cc0849bac5cc33969d7e5f2ef567ceeba548dd7f39ce32fc038cb412ecfe9d82db6c0e226d00c3fb4b8a7a351a5fbca2832b849ed77788ed84af11379d98e1da86a3c18fb3fdb769b7d9daead598fe4610ebf0438ab2036a66c3bb75e12d123241c7a8ef7b1879b79715e279fbb92df0bae61c6e772633336cfd93618f779cb3caef6d93c67645c9969b2e56d2ef5cc0ae051362dc3fce4f09cc54d60e571a1aff6764c4ecc9c636a5c67e6681d928bb96e96af60b7242765e78c185164c2c20a86e6e1898cd6375f9b467c4ee57269cf09b1a42d9be96c1693e7f27d0887e71a9eb34f8de3724434796ed78ec5391cc8c74c5b0ebc36059c5b9cc628b679ce9e1940bd36cb735c86fc629b17ad5929ecc398c7e71025ce1d5bcf325c5421a606570e9739f32838bf15f6750fb3a36726df1afeab50f76a7bce1335b5388547c5bc3c04581c28222c840593af02790b93a3a41de8f09c937b25de73cb8f1c3b8fd80cef69ef049f4c8e53dbccdf8ff7945c9edb7478a56214173edbf5bde7001ac1d788ad2e3dbce7ccb374f2ad79db4dd27aba2f17738e9de3cb45ad1bfcf0cc7bcc7925ce1be5d85a6453c1a3c55781f94966ec0ea6bcc7b6e79cecabe5f34a9e9b94f673c5f6fc1628aa26b93cd7b6b8a354ae8afcd6d574ae0878edb990e00d95bfb238cb9a7f97999f774863ab98a3796d6e84f4c4267c9d3d07de397f8c22cd5b6ced59f69c930720567379cea8af6d35cf3dc8f4c3e1b90da757e30ccfdd67b82c67f3e749de577279cef65bd3b9b7c44df464fd3697f4493fe9a33c37d3f15bf385ce7a62d88f8615e6d873d725be427815cff96d2df23a537e38e23da6cde662ceb60f7f64e6c505ec28b8346d446ec9e63907ab561f183fe4d796e5b85d7a6be610a32b88cfa5398313b56713b59de68d3d305e64fcaec7333121c9af96f0339356560dae4bfc34d39e2b9789b0ecb9f27eab27f2e8f014fb9c16cfb9b195877c9e0bcd37b7da6cf31e8be7dc6cbe555ef2dc83cd6564cd1d1147cf5c216fe263c68493f9bc623612f9142f066f9c786b98b9089e73492894ba971773ceece42fac7c6bc95cadc573b963bbc34b9ef920786c1c67abaa22cfd97c159887697d3721f754e4393cb2ec46af9d305f29c0dcb5b68792586f9abff4320d5c383ee441e29b56fad69ff854b7b39ab49dda732539d3b2e7cef3de6b87973c2c0426dfb0556571cc716e7b82e79a165f79470998581cb5ce67a9ca730dab8dc2797df54b01e63a094f64e36dde6f02c907f5fb92157d5e6c2575137e34f2adaf9957720139b90bc76fcde484a83fd9785b259e7338cc6bd1d9795299d7a8cc73b7561b7e0b08e6397bb370fedc5e300ee6650d62466f79a8b8a289f18d57ea8526f65cd9d62c7bee22ef8b5b273eb7eb8eae3831b84667a52ad9733cea99e7c85eb39527d57da8ca734e1ee2366b27e0a2884e136fcf213627a4107367c118981f7327deb2b93ea3b79d6b6d131afbd2f85cc9595036cfe5f1a39b6fd579247517d0e21a9d4bafca734de71c1607e186fd0dace6daaa3ca7a2d7693b632b5b36219426b6dec7cbf1ababfa1488f5fba3584f5e4eec5a2d7e29c20c8d6487b23e18350d7baee437f98e3d27da7bc26bfe4aec0c76f026b5313df34a1e93f9235bc416296725b9d86af61cd77062678487a9980bcf2b99d8f3eabeeb79ead5790ef7ed6f64a9f777c4a12d7a73d6ad3cc72eeebd359eca4809cc75d03f4fe44f4fd91b1f278215eb861ecab973413f965a39d4fc68bda3697cae24e65c9ef36df024d8cfbf9e08bc40dfcab38a2dc9c556e539f12e79e7cae5e607aaf31cc7654a9c43e639ea9752df1afee9e52e8f756ac5d5923cab3d57c498537268e62cd4d18ecafecbfa16b68cf85ce9b547f025688f5a9c5d7a9ef0d8988d6bd671fc43e215b3debeb17fa9c479ccb97b95798ef717ae8f42e89fd3ecf492dff11f7839c2f10369b4cae44c61e4ceedc41bd8b2ca5c72066b8dc6bc7dec9bf1347b44b66276a5a39999b928be6d10e2b90cefb5cc33e3c4389659338e9ea93e66dd01f12d56ee7976ecd89df33d843b37fbd8386665897196c7a9e4417cd0ef218c2b58f172841127232bed30cb21bed9c41cc53bcce59e174260c6e6c3dfd5f10a1e49609d15fbef75a9ef2176325fd3fc20ab4b1e6b7bce7cac8e7dcfe6f3f1ab9527357dd5a32c16f029e1a6ec9a08a9afbbebe662bf8a6fd9be67cf43e79e8b1da7a5c2ba4c2b7e8e202611ab21f9befbbac89b794e185dc1cb6c7be4b3acf96b243c7a55e50af10b5c65e6d8a5f24d62db89cf6d8ad506f116ce0939c46770e7fff29438eb0e4710f2e167b01d5ef781fcd4291e93bdb8091db21bc70070e79bcfc2e74142cfc8df07f2b7ee704cfdf0f7615f7c718b47d4fe0c0506a7f3febab5e2fa73df8cfc6be15ff2154a45d1e89e7dc12e1c10a20af334342e1f54cba1951587e7d6dfe31c51a4545b67932cfcb273d856e77d65d5c4b1e7fecb57f49daf545f4f18ce3cebcc59f3e4b057cc581f4d2c9efb3ecfafdcfffbe575eba613dfadaa58b1c96dcb7812b2c53eba58f3e7e6f265cacf254994fb156b6cffbddf87c01659619bbcc666096bec230b790c29cfcdbd37957b7f1b9a1bf54ee79b605bcc3026ff7b884fc15253ff4c82f83b385ae025b1e77e8a95cac9537dd4cf148f0803019ff75dcedda7bbb52efa407f3d7122eed30f98fa675245cc6949e69ded64e35c1f51a08f6d9d8703a0ff6bf47b08ed7c6e62b2761073b774ccfbf646cca5c22b03ce7e8e5f01c12631db4b92d53f224ea9317b8adb74be06af36360dadb543e3ee4be4b9aa8220a2baf82c249d394c96df3eaf8ad8247c9a6b81006ee008c5bccb75f5053e582b324d6cfe34d6779af1d7a723dc4a66ac00b5b108e7380cc589517c952884bf06123c074311b9a636c4b70fd64a50740d47b84eef53c1db04f738c6276a690cad74bd46c2ce3936685ba7f6f5fcaa323c774ac7bcbf60103117161abd8e047a080153fdcee20f7a26e24edf132a1e04d7c84c83989706537af6e2c91fd3336b094b3bcd55c13d3dc9699a3d23dc3e0a1c93d5d3a2273862643cc240cdeedc127692380fb5ef99274f3d7a54fd78e49537c56a9a6dfebda60798d179fa12a9544eac43774c489ca2f82e312707c1f938d9c63db5a1381487b84d75c53b764af7635baf6020ed39be2f219e8310f746cc85c5e405badb6da103f38bcea0121bb465665d7872aebf4b8c933c0f40ae97cc04854769f513e2da3ac34a3ca34ac09d6431f20a037379457d3ece7599e7668a5d9b023bb28764a3b6d3160889399683b8428d4a14efceb6ea53bab2a5e895fc46a304cf718b5e8c47cc95131ecbf6388ed74e5732a7777906721d89470fe6c8e6d2775da09339418f4e13815562b7a9594bd86522064123aae0b87e78ee07f1a4e04048eb19ebe22d4aeb9d38746622826c84b66f25163ec69c9a9ffbc73d7d8d65ec3931c3c0bf3f62ae8c306371448a79cef8f681ac37f915ea3a3353c35979eb51e7f84539168dc16dc144b2969e1387fb0223e249499ecbff5d0818a4f612fbad49691a0fd9cee335eddae96a13c2560bc51e39da92fb8d188fad8a87cbf15c287a1331972fbc7afabde4288101c173e69a21642bb5d53aeb6c0d11f7b4d2df39c4b1b4e8041f12beee68ec92df729dca919af889ed3042e494acf47b14489ae9b857becd0f2de2448d6830ed3ee6e24bf9a6703bf41fa1f888da7e0afd2e19db0ea17b704a0c3911f6a8b01f794f097b2e2c117321c1167b09fcf536bde3438939e639e38b6ec154fa7fb27deea43f49a5e52a3a5bd25aa367ced8a3b148f2c4a2fcc2465873f42cd14597e4b982fedda74cc83c675a9fcc73b0adbcd912d11fb6e63c5fe4d01508bbe007db78e2ad929e45299e0b49c45c48c4334d474acef69c2b9e33ec7ab6d2adf71c26621c250e427e4ec2b34cd0c156d8808f4b5d708767652469cf15f58fb84dfb32c29e4b7a21ceca3c37947fcb5e6d766c657b33b100c5fb26cb94b3e7421231e717810ecbba9f04786e94c58688a7249ee391b2e3b46fda521ea9f47685e5e5fb6587923c67d973e6ac7969cf9d9a9e72416b23ee97b326077be3497e83af3df2dcbb094cf819682ff394b5a987e746ca9e33c625b6a75ea4b720d0435c90c6e59e9903d3b89df00492f9bf34864ba40ec379cca4ec84da51dfae727c2ec3733c86bfa4ab7d91b5300dfa98fb6caf6d2719dc0deaa988eebda416204764c6b2d7ca9e1be6d97310f855b388b990f00828be09ddc031fb93722685e00e234a4b969a8c9534e8dd5f17bf8e04d2a6532312790f633342c1f113834f84374825d6a9ddafb00d331561c6222f52fbd26a55b2a30ccfc9d8728bfde545dc00b16eec76deec059cb1cd3aa41a138ef08937e996e37e77e25de0b743c70f5b9263a5671c686f3fe621aa0bee894c02bdef7b34aaece9cc8fbd8616dd5995d1a2e313fe052f61bf19712ef1bcac1a5fed118cd8846a127300e156b10c79230d7745cdac48bb51b02e21d62a0d8f464e6e28fa457d1a17fdde35e1f252bc5d847cd01904eafdb6f88e82aeee2b217028475a7a0ff95706443fc3bf688c81bc47c4dccf2c345abef91783ef3fc721622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b22e6a2d42d117351ea9688b928754bc45c94ba25622e4add123117a56e89988b52b744cc45a95b7efdcffffcf2ff6d14cd7e</data> </image> <image name="image1"> - <data format="PNG" length="5629">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade000015c449444154789ced5d7f6c14d7b5fe2ee2456be4a2d9a88966adbe68071594352f51668028b615945dd4aaac63f4f0a67ff8471bc11aa2c4bc3ea5367daa8a8900474f226c50fbec5401d628897f482fac7932d85454ec5654b69fa0cc5441f14610311641de15adbc23c7b257e849e7fd31ecec8e77f6a79dd6557cfff93033f7dc73ef9cf9eeb9e79eb9cb6e015000882b847e225afc0a000f287140e4810a00f2138cad643b6bf8ed45766e1902fc44347a37062de94060320c252e0090014896e8767a20395474bc24616c2363ab6100d6f01f0f59394c6b7b481499068e4442d0380988cb005f1a724e098d7601c10620c8d60c780d8bc79298d64f449e8fc3884ce767d452d1edf46060af0db18d1bd65c88352c88eb8ab9517a4464fb8c881d0f21927c6cb0bcb46218990ea36a288eb1eb9fd3df7b40d670f56341a6b53d9ca5d68b80120f63a598351f8abc0af9a067cd6558c39c989769a58744755734dd60579059f3a10201f69321f88968350cd01aae3eccc9b4b687b354775e83962c9131bf3b05acaf3524799f52d1f38a04391e43120eb47e1a2a4a0e679391f8856f598ceb27a2de3341c87f9ac0d2e27ad68596975b80ef01b1aaaa7f085fda4f44a3974651bfbd1ec1aa9599895c730bd47bb617d12fa288de55e1da2ca0fb4037c65eac2a59fe37a19f155a460fa48744f62b2ab4e922a3019a8c6b3ff6c1f35d00dfc9b20fa34ca840ddefd5a2a30c9c569ee14a7344a1a151749ded8208110a144307abbf850601dd478fac7a9764f8d809522fa950a0606a445e11c34876f550ef95a0693c38b71dfef70225bfc8df847e4531adeb1151d569b52486bdf76f3e0876e42dfe2b32fa6eda8b92b75cc69d38b09f2695b461f2bc03be864634bb9b317673188eb803dd9100e2f198714fff997380b46d5533ae9f88060607e0ddd188e12d1b966d108d7716a8aeb9cef49c6a4411c133c1b25ee095d6af68a61db83a4b91c970f171d7e76a417b1dc857a4c10928f38eb2e2b9e025b86d2a4ebdbeab2883f2cf11557b2483513b9a3a808e56cb0194ee104d3d98823aafc2b1e7d59cf2a53b44d8bcbc78b29f88f2d5f7cf1095cb4cd20c11809298cd3f4754bbc7036d5e03909e817ade3e05b56557cef192b794beb359aa7ed20c111cb9c7dbc4b4aefb4475e78bf33953b87f4702c1dd12729572197629f6ef055ccf6f2a3860906f51ebc136a37db7db53f254d7786781dade6943f46ed4b24f6eb7079d07da91d8b2891d7ac54ddabc06ae92c3e899d12c86d1ae8fd391a347a0cd6b706d76c13b34c8527a0687a2506e060dc34915d766176ab68be8fc79a7e9c109816b7468a81300d0f37e0fb89d756cf2c373d47bb6d7a8cbf30e6306b9f0763f265bb65a3ef894de56e5da07a3187bb18a796fcc50cbf136d38c942a5c25870e77076a0f48c69aa018fdb84acee86f4abfd4da23746938ab2d9e77a0bbe104c42617a28fe3f846f4c04f44f543a19257fb129fdb602754a0ef2b7b49f272e121458f171732384934eba34512e87cd54bc2c035d2ae8f937fa67054a2aeb90ed1bb5170951cae7d308aa94119532332dc6e0f44888844c26839e887344724426f4f9bd7e0fbf96b59f2c64e8e190f29f1b506114038f01eb51e6c43241280302f80e71d68dfed478d28c25de941f46e147d4383a8de21c17b63c6d0f7d0502744fdd5844db34101800749537f1d71def8f7e097c339fb79ee680f0018f252a5a3a9038e671d1001ec7aab1e8e380f9e77e0da07a3e83f73ce18076d5e43d7a52e040ef6a214fd8479c1a49f7f8ea8d6ed41efd95ec4e33178792f1a1b1ad1f3f629b836bbe088f3683bdb865d7bea21ddd19fbfc1b4bd23b7a84f298311791574d003abe25780be4ba531773e3cd1e483634be129c67b638676bd556fa953aa70951c5c9b05785ef1a0a5b9c5c468fe3922f94bd9d2c76ddd2e524ac6d4888cde4b416432c9b59151837952ae8a71ed8351c87119878f77193ab41ff0c3d5d26a6aa766e0737aed74ab516f7c701cc35b36b04046dbed07da51f3461beb5de2bf033a53ef6f6a8663cfab2c3ad04f137f06925a1800206daf45fb413f828cb1a5ed3436344278a7abe038f889a87a47ba5fa94557a9fad537d4c37fd08fd475b7db03e9bd80e9f90e1f3b41c3978601e8fe76edd93eb64e84ce60c38932191102a6feb2d424f412fc1e56348e1bb8585cfc76ecc52a367553c6fea66634bfdc0c209b51847901938a82774f0750bd43826be4962137b891b1cc0705f916d5843fa7ce57bdc64311210271a0fda01f5c2567c857ff1433f43872badb68cfcb7b31f662150b9c9934ea5b19ac0860b2652b3b71e08451f7c8d9ae25da03a243d46796c7335daafd7347cfc13b34c8523efabba703884402482ac0a4a2a0f76c2f0606072002a87655a7e5414477c311931e4bc74192896ac29f93a7a1de349e725c2e4b3fdc8561b02244c41fc4d078678120df22ff0c91707d816c9acdb83ea928f013d17a0540320e3dbc85c78b9f12b1f5f73ce4e60a6495a780f79e030ec7cb93bb14354818b8ad16e59b0619639ec77ff70370cc8c92030e84bf9c802d6a43e00f01e06e5ad5b6e36d989a230a6e64cc7b6386ba3f0d40b929eb537b868f9c2a0a1480d7db690cbc477d43830080cef73b314144ea5d15e1837ee37ef7c11a382e0381f898517fa03988604baba5fe9acb9e6eeba60c3357014a4c410d80deb89cd6074074cf36135335363422f6400500d440848db3eb334b4b2b243e43dee3fe2c9db1cce39066d738d2bea7c44b4807cd8ad74faa5cd2fe5ddd35b32a0a1470951c16bf5ec47a1140db954459abfa142a5f8e01f05936d659a3fb30876fa36cf999189ef62089fc066b85a8aa6263197fff0a406ce4320d1e1f3606b4772808fec3cb866bc15572b870b21fd5cf56030e6060700063a7c3c6fd2986919a3a91325a615e40e6d42942448c8f674427d27162599173bb3836215dbf326e3059aa7e26934d669874d6a2f29dae2c260fbe178068e82f66f547811ebfddf596cea836be02d74e0ec0f13d87310eef9e0e18fa208eb2f45bda7e634323ba0f1cc91b65886edc80758eb90552e2dab2993014cd5e61a64a670d70e1651b605b3ee3f629e1822e827f8ef429a6c07df5dbeb91b9d1b0389f40d7d9b4bf39110963d2b395c9558c051963ae965616e3e3c6fd122f4101205731d6d8d008002679a9bfbb1b4e18edda32e6d1e0d060ce17edd0e94ea37efb8eb70ca929f94a4c311ebcb9bde25f645dffb4bea9fe34de5930361cd44a15e14b7a3421350e2dcd2da6fea518ba54fd24d1dc7e4753474e8375cccc188bf075aa568165fb9cdf9d82cf953f56eb7339406f0ae869f02dbbbd81dbf90db6da232170b05767bc403f4507fac93f4324cd11f9e788b4ebe3c47d7899aaf7a419d1cb7be1dfd16efc2dcc0b80625e7c040f77502a2493c9300a80eea3474cfd4df9705c2587da26c9b82f782c685c8f44c240a09f52abe294c1bcdbd44cb6bb36a3beef407dd13e63293310e219f232fa33f145d8ecb366cc087e22f235b794edd32e75e17ade3e655caf3f586f8a96487344ae915b74e8153775ee39928e1eec2f376a90916b400556ea4bcbe222b0e1933050e04b875cd8b1d707d7f3d66fa46b6e815adfc81d63b52aaecd2e9c3ad60d61b3005f738ba92ecf3b909c5fcc8aa502c8daaae48e5da6ae4b5da67b52ab68d3947d67817c3f7fcd32fe995978de81e0fb3d486cd1e3d3c18cd8aad5ea9ce71d68b93c56fc06c3d2284058467023637ed2c350997d2e661c065ef51a2fb5957e5c2507ff1f2259fa2532d604b98a6bb30ba1c101041963ace3ea2c054ad901cb40ef53098cee95f23696af7446a610b85b51c60e198753af3f9977c3a0f1ce02052ff5a242abc0d2bd75050a9a5f6e46924ba27db7df941c92da8ad4bed020c7f538f4545245fbeefd487249241fe8539f7b730daab75743de98de214ae53c8cfd6918122f61915b84a7e3704e3d632397291983717faabd456e11fe86f6ac8d8ad8c8659abe398da9a48ade93a710648cf9e788fc1d7e48bc04d70f44703beb4ade48198c0cc2bdb906939eada671e83d13041e240dbd62eb13687eb911d55c35261ec8c638a4ea15d2cfb9c39973e7d1aa3d392ec3bbbd111e9707eacef407020cc72e50c90c5b598b0bbb51d02528a64ca809d45d49027f9d28ba7dce26e1d47f6c5ad5c92d6bf8cde1ba527dca5ffdc0073ae058118305805ac10efa8903fb5ff616ad8796ccbdea16a1c79d5df78906af120d5c9da5c1abb7c8759fa8981db5355cfd583cd3da64dc3b50389b6b3965208aa2f36dcfbd939b69bb7f3d43d35a36738bbc07ed6f3cb92c86763dd2933f947802b5ff6cb74ceaf013d1c4570988bc1d4a3c01db33f95d9952db8f5a7c8e9fbc3f4b89a41d4a7c0ae0ab212206c796e5e7094fdeb8473204a8d1303a6a3c10b804924fa7fb13bb334381499ba9a6a7c6033fbf58d6377fb687b334acd9119e0c1b57ec420d7a5e80218fe1c37b54d097fcbfd2175be596b00aecfa2454d0b7bdf5ce6b390764dbb10b544ebd6270626496fa94f41a808e9ad326bd734455a7b3f5efdfeb4332c7e2b118f41391fda4fef5b3080ee7de78d2e44bb3a1ec3ce5f1dd026ccf947fdec4e40da2438a592ee79470eaf53461c4ae2f505764ccf23975080934ffb0b8744f3f11f93e9dc070c23a1b70e1973e0c3ea18fdfba82f1514dc6c2bebf8dc102804700aefdc457305e9b6f00caad570cf6296193bcee3f4e99ae1ffadd8465bbad174318f868965c65ba28bd375568495d9e12d74cd7176db0ec6f38b93c664f70d972b569d91427ef78a9026ea7c7b2fdc0a41d6d1f5e2b182ff71391f09b510c471d9672faf7a60d5641113eedbd033e5458ecd02ea74cfd05f0471611ca1195320c378f5ef906bcdc7ac560963cbe7ac98376e56c3f321d46ddef12b03d2cdd709d9cf92b68d3f578b65e3a432def05450eb9135fa5ef8b3ec158cbeb4fb2f17d3e70b6ec7ea7bef9ab79686db8aefbfa0c326dabce6ac7c94d61e197d933d43a67720ab99849fcbef71bf161ab9f02fafe3886d73e55c13e18c52915887dbd68bac72300de1f5833aec87bfe6e4c9b252f6e665ac494fced2b61d49d5791bc3f5b9ae1c6cdcfc9749dcfd64b1fa7e5bda0a5c88d3ec358e2173e8850b3eed79212b6fe3684ee5fcfd0d8f5cf29768768f0ea2deafef50cd59d0f19334866bd0e2101f567f526863598d6e7aa8525333825c80dd9142bc780fa8b00bb94003b19023ba3827dbc98755fc1f2dce376d757e3f02721540dc5c13e367f8038fa2f00be9fad9f60b7ad5aa6951c62def653d18fba2b1aa29f95c0b8bc99898a61c4a52f54c9189f2a89c1838cb1736fec6227dc8265bd696d025dd10a740d851050ed98d626b2eee39c1216f60968fee13696ebcb85759c2d062b46f07e2761fa48b1333205f67e0cdbce8630765b059430f0f80de9df5186fff0976876bbd30eb09321a889c7f77c07f05664ebb7ff858a55cbb47201a6cdc4d68b2a7a476e1567b87998163918114b5ea8d25fd0ea1c72f3d7f3ee646c7c3707aec45c1391f760a64940b4c0e2719dff856c5f029071e14792615fec83517de76a3efbcd002fc186324a2e46e2246cfaaf10c27a361d4ebc94dd9edd56c0b0fe8e4cbbb45fa2e8c1e5260174d48773ef6c6274d48713ee45704efd7a5fcc8e77ff7bbce062251fd3fead7d5aa508b9b6679e64897d82d1cf426b27a7ab16f23e3bacc279594c3bb691312bcb4f2dbed807a3c05f73bc718fd1e7b230ca42a50023edfa2404697011db2e9957eb9c26170ce3ac269f76fc477638b63063aa0b32c6bc3bb7b29926018d6e2f1097311c75403a933f7b2d329da71fabc0a7b57c0e4f9590a71d93817f2a4eee3a1140a38bcfb2fc5e0560ef8f02ebad99d8c0e76a735865815284efa7e7e99a57cddd6e5f61c35a253eaddba9e6648ee8138c79776e60fd7bf528890201ec7808b6cff46cb4d47d7e229abc411450ed39fbb15a7cda4c6c7ea447058ad9e104644cdbaa0bbeb806d32a00faffb522cbf20f5d0a01f3f919169080afd59c7699b794e0fb65a2c8270a1b569efa8eb985656de596e6d38a05e5259f67ecf3377de0345d5eebc510d86915db8e5da0b663f7881d0fe1d01535ef8cf14df9b41a57ba4feb7a7c58e186ffb48e0ae44325ae87c75cf7f31bee3a11c0e0138c397345110a60cf37c8b44bd1ede48ada12cd2747d5f22fe296cbb4e67e152777f2693d5c6415e72c66c650b56cbdc04b084f167ec1f36128326a29d72a0c25428fb956ff4f0cad17ad1956e4395c6ed27dfafebd3e38b96c26d7380975e743885e9d35cd38594c2b02e87e368972986f6c5ace699779cb929da56270b4c95e9c61e59153773e84891b44c9fbb385173f16589a4f5bbcdc20cb1de72ce49b279f66cc2ade1e99d6ca3e3eb577e4164d6bd94cbbdf91fd22f8498fbb6e38af623a9abd2328f21e8cefd6b79ee35b749f3ef93c63a17f7f95f588b08c320426c3b0ff56c5e48d7b59faaf37fee3f94dccfdd1358aa4289d2f0ec7d65b7f3e9eaf2caa285a7e0add359e9c6f784ea6cd21afef4a087dbc04c4c328947bd151e301efb4437c7cb2cad2eb226ff6b1258788c874ea9449a524430932c6ce01e81d21ea8b21ef782cadaffeac1ea9dc84ccfbbaa212c21fcd52cf6e3baa39007956e7d223229b06d40f8d623a66cf1a47112a820d1e0433ea353fd2b7604d3b5a19eda7722e6c39fa5df3e22696982392fec04151cc79dd5a5cc6214582fba3590aff349d9c643a61c64ffac1c9c063ca2e12e9a8f5478db94aa9e721703609536ff245670db51dbb47a5e85f0ca6b2cab62dc98a3be15e8477e75643afccf323dc4e0f5a5e2f2fab2cfad93d6abd8882fa2c653ce137a398d6aa73d6733b55d8851a9dd1f96a203e85b0ea809654f2fe6686dba922fcd3f4b9c1ae47445d5f00818bd6cf91b3c918dfe7c3e4d3259cc17683a8ef4a6179a6f369838cb1f17da57fc3d51999b2b2cd9ca52f87af940b7b760b25a5b975d4244af6cdf3e109f7a221df5de3315def78c9ecd376bf92ae2739ec65fb94aee737b1857d0244d193a58fc85b7f461f64fa94dbbf57c07e8b7a808c4852c07064ccd899ea8a5620321d8602eb13de4fb8bd18df27e0d4ebbb4c3b5481ff5dd40dd672eda122f18bd20c560450fb2263336f5bfbf61aa76f05d73c24b23c9f369fc55ba24dc2f88f39d40af682065bead95efbc504daf7947e9a6166de6b2aafb51cb472499a1f1115caa78d7d5d5e3ea915969b9feb27a281db2a549b60e4a7aada8425138bbc0ace26c25e1185f8422d44c450bfd991f310b8e867f728a87050e26168c93483efe7b565e7f1fa89a8f7a68a509403a020322dc0c94d41e06a31b0d796e37cda4744d2ef12593e465e7cae16e32f38509b3eaa29ab9c9a040edf2efe7cda524e4b5cc36f0fe63c09dcf588a8ee7ca2e4df5af03e97c0851f49a674c6c545a0eee204942f1d45cb6974c510fa71edaa3fe8780dfff658f077c49237880e5d29fc25c14ae27e47792ec11a7e3bb0a8df1173ddd78f01d5922bb71acf1525e8d95ddc39b46bf8edc5a27e472c95e0eb76aa2bba2acf44778d0789378535835dc38258f26fe326efcfd29108f400fa0a30acdba962b4a9f88d83355cc3b27e1b57811e96e8fc3d10d262fad65d093eab3339856e773d5a9c309dd0b2866b580c2eeb57c8330d78e0b60ace26a0efcf13482cba4c77a476601a9fad86ddb672f1cb35fc76e2ff03de0404877368e85c0000000049454e44ae426082</data> + <data format="PNG" length="5550">89504e470d0a1a0a0000000d49484452000000ad0000003008060000006357fade0000157549444154789ced5d7f6c53d7bdff1cd42107a5d57545a7eb48ab6c34d09cae6836655a9cb5aa6fd56a38a41a71fb24926c15b940d525ddb497b0e975091525ddf40a2e6a9bac1ae020ba38480f0c4f908427aa5e57f4c5792a2ff64437bb2a15b660c21645b14523624593beef8f1b5ffbdad73fae03234fcdf9e743b8e77ccff79cfb3d9ff33ddf73ee31ae02380ae06e2111115d2322229a5a445a20badbf5ace03717d951000200a906148968e24a028009030109e1a4ad6c09a7d90dbb2984fd4fdb31b69ab15aeb5dc16f36b2ab35149cbf49144e023de7fd48f302109700b33ee4ac02da0c46785b012f5b31e015ac1e7531ad4844c2071202f1f28caa179d66377cdbe69179680dbbdf1db282cb1f575593d1b240c47f41c4def023804583350b770d03713f1ace64e0bbf837badf1db282cb1f2b32edfccd59ea3c634438e9ffa7a864e3c308ed16565c86152c896599d67293a8f963c8066b5e7c728f316cb0c1f8961f22112d870e5ac1e587259976fee62c351f03d2199d22d70681075a94bf5d8f8430fa133ba478020683095bff5c1d63730609a9dfb897c4b822110d1ff622f4bf411426ebf7ace87eb61be9b569641a1afe5ff8d222114d9c9b40cb8f5be07df8eecc44fced3b347c6418d1cfa3885e89c1bade82a1578730b6718d6ef9f7423f2dd48c1e586e12193f4e211d95aa8b062425ccfccc0d7b3d80078bec4349c118d0fc49aaea280397accd702db789a43341f4bcd70327040420293a68fd6d6ce530b8b77fd9bb24de7dfb29752e8d0024442e84ee8a6118de1ca537cf7854fd0127d077c0a37b20df0bfdb4b08869f905a28643295d0c3bbbc70d631dca26f17c0823972cba55ac857183bbba683a1c56eae67913dcad6de8de22c2f7890fd6a4157d810124930925cfe8e1a330da372d6bc61589c837e643c7931df03eba748310af1135b6d955efa9c96683f7b0b7a6017cb7f5ab9a697d178902017ff571d7cd2ed096f2166b1f0b22fc0f6b4df15c9805381186f7a567aa32287181a8d161571875ff8efd48776fd5ec40cb1744895b09846e85d0f8fcd692f22d5f1061fdd2e2c92211952b2fce12d5ca4c961b44304017b3890b448ee704a4e7d2007233d0e86b47116edb54b2bf621b98ee81ad573fcb0d22984af7b78a699b6e123df6bebe2841d7e618bc5bd4a3353fd5cab08538ba2d0dc7c675153b2c159aa1cedd3b95fa9d4e41f754275e2372ffb603d12b51cd36399d02fa7675031bd6b18ea79d949e4b83abe710fc402a6298d8c529eadfdb8ff45c1ad6f556b84e8cb1ac9ede1309842f7914c3c926eb7a2b9a9eb0a1ef5ffb542fcee699a1ce1372db86de1e82e5a96636f9a7a3347c645829cbf3266506f9e8d71398ec68d07cf159bdb5d2ccc814c636ae61ed97ef50cb6b2fa866a46ce2ea390c3a0761dd6551d604d5e8c7d5734a7bb3fa65d71efe73a78beae27913865a8760d9ce23b918c757a2072211351fd31f2510cca50d36180346beb2e892570a7b3ee76059a08a715cbbad409f00206e7591edf40cc52e4e91385b392ad1d86647f44a145c3d8799912944c642885c08c1e91464460a48e8d82dc2729b4880000048cfa521fca2a5485ef0ada0f292525fa72100f07b0e50e7ee9d080406609bb383e74df8ddb65e34d96c68ab6f43f44a142327c6d0b8d98ef6cb77147d3b4fec947d4e007cc604090077cba06aae356955fe3dfca5b7643bfdbff70180222f9bf6efd88f3a731d04009bba9a614d5ac1f326cc8c4c61f4f051a51fd27369f49ceb8177b70f7af4b3cde5decff0975e99f19d02868f0c23994ca09d6f475b6b1b465f3b0aeb7a2bac492b5e38e2c633cfb7c0f285fcfe15a61d3c3b4323e11a18910f8376ab1b9e4d6214183979f7e2bbfb77b861aac2576abf7c873675356bea944d5c3d07eb7a0b84a70574b477a8184d5c200afd35a4e9e3b63c61a3ac8cc88510864f7a91cf241f9d9d509827ebaa64d3ccc814a4b8843d6f0c283a74ef12e1e8e854d5e3f2dda0670eb528e522a743f03eca9827afeeee5ddd70bdbc930d16f8ef80ccd45ddbdbd1f8fc5616f48d52f02f1c32e9d30000fb130e74ef16e1658c15d6d3d6da06cbeb0315fb4124a2c6cdb97665175d7af56b696d81b85b44f6b9d329c07ec0a37abfde7dfbe9f43959f7269b0d8e23236c950079c7eb74a6464634d810f9aac8260000deb5b8ab715ccf89eae2b7631bd7b0c8a510bab6b7a3fbd96eb9430a18c53667c774388c370f79d0b8d98ea60b5715b9ded58ce5bfa85468865cc11b246e75292fc509018803ddbb4570f59c223ff5d78ca247ff1f0695fadaf9768c6d5cc33c87a34a792d8315004c7634b0a1578794b2ddeff515680f382d829cdf2ca8da77eaf77eb84e8cb1ac8ffee6210f02810118c2464c87c3183e320cdf980f020093d59493070183adfd2a3d0afbc1122272056f90d0daa2eacf503c54937eb8829cc14240f2ef0988d78852a1191267892c17894c1993f27c3a1c8648440f48009ad290c35b10e4c58f4eecfcd08d503b8ad323c081f569ec89d726b710d310e0fb2c56152f7b1963eec5bf2700186e4cd0b0e120a4bf06c1474d18f8b81fb89253f585d7dc882c10795733d67ef90ef5fd7900e14b2178e6d2409e8f9c4d01488059aea7cd7380464e8c010076fe5e44908862576290768b4a7edb6e2b1ac7014f724c293fdc7e10de8e4e4dfd63965c5de14b214885f5c724b8000cc6a59c3e00a69f5ba7f6a95bdb90f87b0c19a4d0041b0c9c519e593a3a219a8bdb533863a9fb21c7ae49e47c4fbbd90e6f0dfa896b0beabf22bb665a2900095c3d87f9afe7f18000c07d0635adeab318fed20fc0ad59595f93dcfb7baed42e3f1fc3493732286fb09ad8d0c0bc797f1f0410393b4e936f04940e1d3ee685f5f894e25a70f51c3e7a770226b3093001be311f8287c24afe2cc358b6f7216bb4b6393bf2a74e270444f9a8129dc88f1387c2a1d22e0e67cb95af8f4200e0c92b9fcf64f9d36fa11cf1f5812226f71ef04058d45fa54f3ca78fe1cd51dad4d50c270418f83accbc3b81bab5754a3fbc79c8a3e887386ad2afb0feb6d6360cbeda5f36ca907c680d56196edfa17032b56426f4478b5798d9d4d7049cda9c010c4b675ccf746517415c589c622ae46bf9718b6aa3617e2e859ef77a00c8061b0c48987434b05803635ec698a3a39345f95c44c16eb64302106b60acadb50d0054f2b27f0fb50e29f5666c29e599f7c458c981d6f9879d4af9fecdbf53a466e50762929c3faeae4fcf40b69bed2a7db3ed11af91b2e110ae0f413a3781b18d6b947ee868ef50b52fcbd07af5b3dbd4f50fee286db0861b379445f8aa54a60e4bf639d706e1cef38fb492db6a02bd62c4e88bee25d7e7fbacbcc1363aecf0ee9657dfdcf038057da3b28f749b485c208a5d9c22cbf1296a7c2ec788ed7c3bfa36f7297fdbe6ec4058bdf838b8a797b221997c8691000ceeed57b537ebc371f51c1ab75b947cde7ff72acf030109dcf0386557c55983e9dbde4efc1593525ed8e558949627bf84cfa8670642bc40dfc5f64cfc6542edb3e6cd082211b9db3b6af669558ccf181b7deda8f2dcf17341152db1dc266aba70953a9e76d2e0f39e5cf4a0abd6a84116d70641bfc8ad40ab4decb00454f8d2a114f66e77c3ba417b44f2b7ef50e7cb3b4bc658b59275bd1507f70dc2b2de0277bb3a3ecbf32664e6e68b62a9008ab62a2dfba6a8e75c8f2a4f7615ad1a58d788845fb468c63ff313cf9be07d7b08d820c7a7bd79b155add539cf9bd0313e59fd0643611420188277356322c961a8fc3657d30fbead2e65506be9c7d573103f0e14e997ca5b13944ad6f556f8c77cf032c6d8fe8b44037a76c0f2d0f5600c13db4ac7692ba5be40049eeba61a76c88cf0be547e6746bc4674f0e44198322614eead0720a1fbd96e240c09fc6e5bafea7048762b1271796a13cc0282e930fab7f5226148c070cb88404c42dbe32e98be6f42eca19c1ed9330fbefff642300b48181270f7ee29a967e4ec38d5a58c4afe6c7d0943027d2ff6156d5444ce8e53fab33482e93086df3a082f634c5c2012bb45086601a6272db03cd5ac7b2365f8bc176d8fbb30e96850f5c3f0612fb85b0645afe83f62e87e5684c96042e4564ce9876cb94afa718f7325771eb5ea93e2123a7e2c42b038107b2ad7cf0cfb4e916e86ad77e1d496744597a09a148ca5d07cde00dc9aacba7ece20e0e06f1f5ed6875b56f0dee12abd3ee58156376857dd5d31580070588ca09fd5a1f7d9ea7ddd74462adb30cb0251d34da2e10b44be8b44c31766a8e92651353b6a2bb8fcb17aa63548987db5f269aea5a48918aa3e6f7bf4f5d24c3bf8ce1d8aa78b99dbc6bbd1fdf2d24e1ff10b4475df0282d753707cc7a879a84324a2ecf3e0f5144c8f3e7cd74e8ff10b44c9d5c5ae51e2da2c014648f108606e842d9340e386a59f139efcf42a850c16c4c212069d0238430a75dfceb527f2c50df24c9b542505a70091abed9bbff99bb3743a638414c83d315a050c7d2f278fe1f82c55f425e76a5b6cd592420960d391ca3ef6d5d75f28d921ebf69da25aca5583d10b449ee99c7eb4577d6cb27d8168cd1f8af51fdfee46b2c4e2b11a1489c8f896fcf5b32d6384ff65b52fcdce149f539e721a617a54ffa9ac9cc112f544d57239ab8083ff92238ccca7443de7b5df57af2986eee7aa3bee291291fb6410a7e7b54f03e6f7f3aa8af1d1a4f44f335800b09b80995dee8af1da721d506bb96ad033ed57c91bfc24a27adef99f41cd7ab79ef0c3779c88afd14519be14433a232c6eb0a4d4ed7d109aed9596d04e09408a2f969b8e4aaa3879d70f00a759fb7d79a62d70ffe9a38af17291882cef4ee074d4aa29677cbb9a182afab4b3af6aef742d2545be02faa6017f89a89462b865f42ad7e1b596ab068be4991b0b5eb4a364fd81b81fcd1fcbf746e8add7c6abcf86e43f0f5e2fd64b66a8a50d50c4b5e506afe7f2255733d6f112637f7bc50dce50dceeec377faedbda86db74539e41e25c71bf99b920686ff10cb5ca9cd66606c425d8be7b6f7cd8c64700cf877ebc703205f6c7091c4c0089afe75579ec26c0d5aa3d826dbcfbbe316d91bcb89a6911d3ae378be1693f9a8fa590b836abcf70e39192ed707ca7582fc42508e6a50d50c1ac2dd7f19de2fcd3df662cf51b376c997051fe744640c3213f06dfb943be8b7fa3c43579713cf8ce1d7aec7dbf3283e497eb35c510fb658be69a6195685bfc08b170445905845a8b0d2e96025ace00ec4380bde507fb2005f64171be8a69b34baea7de813d47e47b0fd807ea0f1027be0be07157917e166305c3ba8f4c2b58b4eb2d8c7e340780e0651d8c6b6e2cd90e9460dac201a51be311ed765cd7ceef658cf95f7e86ed771a35cbc5d3931888993070cc0f4fc282787ab2281f6715403b8ce87e6e132bf5e5c22a403d82b3e87a20a6fa48b12f10017b7b1eebdef363f2b31430ed071647c8f89385165945ba3e5d5c6fdc0af6961fa92ce93e08b8102dcad7fba30a86751f9956aac0b4f9d8792685c1b333d5196e19a64509a645e180d28930376acbd560da7cec788ab12927c0e93c6b62e3ddb8f153236215168fab7a7fa41ec159ccdfe9627f9c9077aee68a4706cc023219e84fa5188917f0f0013f428b3b9c434fdb35f22d5fa62d6c97adc98df1ed46d05e378ebefe30a3bd6eec7726c059e5e723290bfafe63aae262a51cd3de4f9fb6149a1e7d98a576189576565a3b996d2e8476c83e7225bd568dad664cd3f21713fbe30470cb517684b8735f78549f2a30d2a6237ed8c7807527d5ffcf25a58a619cfbc9b485ed9a7a1a68dcc094a9cecb18eb78ea3176e3a746b46d917df6d3512bec87a5b2a7d74e7f1e2ad98ee5e0d36abe8747749cd38e49c0b7aa93bb4a00d0662df6417c5180bd3d01d4975e0d03d2a26f5a43aac2f70b7fe9070ceabbc386b6945f84dd6fa6cdf7699de67049e648ae66ccf543c6c6b7cb5192b0c106f6861ffc17f269b46c3e9188263f25f2244a470f968b4f9b8fd9b872353b9c808438e7a8387015a69500f85f4491e5779ef40373e519161080afd4dfff549d74f87ef968e152950dab4c79c3ed3b4bdacad5ebd3569297dcc0d88d5fbbc125e5ffd97ac20f76288575fb4ed1ce7db3c4def0a3e77cf17967557bef914f9be6f5fbb47cde65855a518172184ecae1b1a69be50d77950079ca32db8a57e9d5e0e8664769c32c97aa60da42749a8d556d89969393cad4dd53a655b7ab3ab9930fc9e122ad3867353346e4ab62bd601620056a6fa700c07f7e42536ea955bde51a51e37fcd63eb096d86b5f1464ced907dfaf1ed6e98b96051be342fe0b1f7fd485c54cf38454c2b00183427510bf38d7d1e2a69976553c1ce523528fdbc4ac32a23e7b1f7fd085e264a5c9badbcf8d1407d3e6df572bdac749c530bf3cbd77d9b31ad787b209eaaf9fad4c1b333144f17cfb45dc6e26ff44492e3aeec580af1f064911e36de8d2927e07f99b1e8a3b24f9fdcc098f4abad6cc89ad68c320c04fc30be9fc2e4a7578bf457ee3d706c5cc79ce6b06ea69dacafe13c6d0cbaeb713aabbf1aa992bc91337e340700f6861f3b8fcfd2ba7da7a814262e1245f2be2cd01ba7d56328d93867974d3bce594e6eec972d9a4c3d1033413c4ee4ba5df9949b6541ce27bc334e23a9e2afb36d7c18de567b91c15ade9d40a1cf9dc5f1edf221a55233a4eb87eb58ea15236c4dc53ba0e98c849e2807f138a9084675c38c48b22fa27732a1bdfab67af5de87c01904445e31547d6a68e7be59aa7d52d4c6eca9b27505a7e2f63b13e878ea3145affcfb239c66373a5eaaed904cf0f255ea3cc355d447cb80e26947c9724e731846ab005b26b218878d408a35229d29ff9b194e7318d2cf73ae01bf403410073c27b4df2367901079c58dc98774dcc1769968e44c6579aafb69bd4cde43d6c380300be80b44b46cb3641a29e12b95c2a12d465dc7dc7a9b62ba99bc1cee772614f94ea7ba7ffa9f5433edd04f727165bba9f661e2d8b88ed10e6d06b2f1e1924c2dfd6a2b1bdd6644af4639404200369c3eef5776a606622604e27e840dda37bc0f6d71636a8711de979e51ed508dfc65d16035facb690e23f51b7d062b00706c64eccebf69fbf6695ede0a76dd26d2bc9fb69cc56ba241c0d48bf281ee4a49efdd5e5db618fa9fd77f9b61e1b9d75ab1d279d952cf135fdfbddf90a8f57cae4844becf62887116e57c6a2cadcdc4363e0cce20c0581784ed470ed83209b4ac379574c98297af92376c4138294709b20cdec52dfd1caf4844c39762f047653b09c46d30734158b816f8b6cd97b89f7681c8fe31109ed6f1edd86617a6be570747de251385e9e034b0e74af5f7d3eab92d7105bf3958f226707e81a8f91874ffd682eb71ed8f1ded634184bfb4562da7cd1a85ff45c7b2bfe87805fff958f177c40c97893acfd4f6b56eadd865accd2558c16f0656f53b624d37e56b40d3997bab12671030b4a5ba7b6857f09b8b55fd8e58f6806f2d715c3d71d8d42bc615835dc18aa8fbb77113d766a93f6044207e77ee9d2d8cffddef0e59c1e58f35fd36ae04392cd1f721e0cfcccb5b7766a16a9fd59c0e62684b0b5a78a86e6859c115ac0697f42be4f906ecfb2c060b6781e77f8248cdabe380d91d18f1078d00567e0377059786ff07eb0134671ac4ce230000000049454e44ae426082</data> </image> </images> <connections> @@ -1397,8 +1332,6 @@ Montreal, Quebec H2T 1S6</p></string> <tabstop>codec3</tabstop> <tabstop>codec4</tabstop> <tabstop>codec5</tabstop> - <tabstop>Tab_Video</tabstop> - <tabstop>Tab_Network</tabstop> <tabstop>Tab_Preferences</tabstop> <tabstop>Tab_About</tabstop> <tabstop>Register</tabstop> diff --git a/src/gui/qt/configurationpanel.ui.h b/src/gui/qt/configurationpanel.ui.h index ca1cbe8cd8f6db42385dfa4bc4ce3a72c7bfbcdb..1500b6ea06bdebb76b97383f8cf190f22ffeca90 100644 --- a/src/gui/qt/configurationpanel.ui.h +++ b/src/gui/qt/configurationpanel.ui.h @@ -89,21 +89,19 @@ void ConfigurationPanel::init() // For preferences tab SkinChoice->setCurrentText(QString(get_config_fields_str( - PREFERENCES, SKIN_CHOICE))); + PREFERENCES, SKIN_CHOICE))); confirmationToQuit->setChecked(get_config_fields_int( - PREFERENCES, CONFIRM_QUIT)); + PREFERENCES, CONFIRM_QUIT)); zoneToneChoice->setCurrentText(QString(get_config_fields_str( - PREFERENCES, ZONE_TONE))); + PREFERENCES, ZONE_TONE))); checkedTray->setChecked(get_config_fields_int( - PREFERENCES, CHECKED_TRAY)); + PREFERENCES, CHECKED_TRAY)); voicemailNumber->setText(QString(get_config_fields_str( - PREFERENCES, VOICEMAIL_NUM))); + PREFERENCES, VOICEMAIL_NUM))); // Init tab view order Tab_Signalisations->show(); Tab_Audio->hide(); - Tab_Video->hide(); - Tab_Network->hide(); Tab_Preferences->hide(); Tab_About->hide(); @@ -113,12 +111,7 @@ void ConfigurationPanel::init() new QjListBoxPixmap (QjListBoxPixmap::Above, QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_AUDIO))) , "Audio", Menu ); - new QjListBoxPixmap (QjListBoxPixmap::Above, - QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_VIDEO))), - "Video", Menu ); - new QjListBoxPixmap (QjListBoxPixmap::Above, - QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_NETWORK))), - "Network", Menu ); + new QjListBoxPixmap (QjListBoxPixmap::Above, QPixmap(Skin::getPathPixmap(QString(PIXDIR), QString(PIXMAP_PREFERENCES))), "Preferences", Menu ); @@ -149,10 +142,10 @@ void ConfigurationPanel::saveSlot() Config::set("Audio", "Codecs.codec5", string(codec5->currentText().ascii())); if (ringsChoice->currentText() != NULL) Config::set("Audio", "Rings.ringChoice", - string(ringsChoice->currentText().ascii())); + string(ringsChoice->currentText().ascii())); Config::set("Preferences", "Themes.skinChoice", - string(SkinChoice->currentText().ascii())); + string(SkinChoice->currentText().ascii())); Config::set("Preferences", "Options.zoneToneChoice", string(zoneToneChoice->currentText().ascii())); Config::set("Preferences", "Options.confirmQuit", @@ -160,7 +153,7 @@ void ConfigurationPanel::saveSlot() Config::set("Preferences", "Options.checkedTray", checkedTray->isChecked()); Config::set("Preferences", "Options.voicemailNumber", - string(voicemailNumber->text().ascii())); + string(voicemailNumber->text().ascii())); #if 0 QMessageBox::information(this, "Save settings", "You must restart SFLPhone", @@ -176,8 +169,6 @@ void ConfigurationPanel::changeTabSlot() TitleTab->setText("Setup signalisation"); Tab_Signalisations->show(); Tab_Audio->hide(); - Tab_Video->hide(); - Tab_Network->hide(); Tab_Preferences->hide(); Tab_About->hide(); break; @@ -185,44 +176,20 @@ void ConfigurationPanel::changeTabSlot() TitleTab->setText("Setup audio"); Tab_Signalisations->hide(); Tab_Audio->show(); - Tab_Video->hide(); - Tab_Network->hide(); Tab_Preferences->hide(); Tab_About->hide(); break; case 2: - TitleTab->setText("Setup video"); - Tab_Signalisations->hide(); - Tab_Audio->hide(); - Tab_Video->show(); - Tab_Network->hide(); - Tab_Preferences->hide(); - Tab_About->hide(); - break; - case 3: - TitleTab->setText("Setup network"); - Tab_Signalisations->hide(); - Tab_Audio->hide(); - Tab_Video->hide(); - Tab_Network->show(); - Tab_Preferences->hide(); - Tab_About->hide(); - break; - case 4: TitleTab->setText("Setup preferences"); Tab_Signalisations->hide(); Tab_Audio->hide(); - Tab_Video->hide(); - Tab_Network->hide(); Tab_Preferences->show(); Tab_About->hide(); break; - case 5: + case 3: TitleTab->setText("About"); Tab_Signalisations->hide(); Tab_Audio->hide(); - Tab_Video->hide(); - Tab_Network->hide(); Tab_Preferences->hide(); Tab_About->show(); break; diff --git a/src/gui/qt/configurationpanelui.cpp b/src/gui/qt/configurationpanelui.cpp index 7ee42f14c81d93eedff452c5153ca2975a50608e..7c38fe28f48f593f61a2bd4c5875c7919008178c 100644 --- a/src/gui/qt/configurationpanelui.cpp +++ b/src/gui/qt/configurationpanelui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'gui/qt/configurationpanel.ui' ** -** Created: Thu May 26 16:51:17 2005 +** Created: Fri May 27 17:07:54 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! @@ -11,9 +11,9 @@ #include <qvariant.h> #include <qpushbutton.h> +#include <qframe.h> #include <qlistbox.h> #include <qlabel.h> -#include <qframe.h> #include <qtabwidget.h> #include <qwidget.h> #include <qgroupbox.h> @@ -323,473 +323,466 @@ static const unsigned char image1_data[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x63, 0x57, 0xfa, 0xde, 0x00, 0x00, 0x15, - 0xc4, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, 0x7f, 0x6c, 0x14, - 0xd7, 0xb5, 0xfe, 0x2e, 0xe2, 0x45, 0x6b, 0xe4, 0xa2, 0xd9, 0xa8, 0x89, - 0x66, 0xad, 0xbe, 0x68, 0x07, 0x15, 0x94, 0x35, 0x2f, 0x51, 0x66, 0x80, - 0x28, 0xb6, 0x15, 0x94, 0x5d, 0xd4, 0xaa, 0xac, 0x63, 0xf4, 0xf0, 0xa6, - 0x7f, 0xf8, 0x47, 0x1b, 0xc1, 0x1a, 0xa2, 0xc4, 0xbc, 0x3e, 0xa5, 0x36, - 0x7d, 0xaa, 0x8a, 0x89, 0x00, 0x47, 0x4f, 0x22, 0x6c, 0x50, 0xfb, 0xec, - 0x54, 0x01, 0xd6, 0x28, 0x89, 0x7f, 0x48, 0x2f, 0xac, 0x79, 0x32, 0xd8, - 0x54, 0x54, 0xec, 0x56, 0x54, 0xb6, 0x9f, 0xa0, 0xcc, 0x54, 0x41, 0xf1, - 0x46, 0x10, 0x31, 0x16, 0x41, 0xde, 0x15, 0xad, 0xbc, 0x23, 0xc7, 0xb2, - 0x57, 0xe8, 0x49, 0xe7, 0xfd, 0x31, 0xec, 0xec, 0x8e, 0x77, 0xf6, 0xa7, - 0x9d, 0xd6, 0x55, 0x7c, 0xff, 0xf9, 0x30, 0x33, 0xf7, 0xdc, 0x73, 0xef, - 0x9c, 0xf9, 0xee, 0xb9, 0xe7, 0x9e, 0xb9, 0xcb, 0x6e, 0x01, 0x50, 0x00, - 0x88, 0x2b, 0x84, 0x7e, 0x22, 0x5a, 0xfc, 0x0a, 0x00, 0x0f, 0x28, 0x71, - 0x40, 0xe4, 0x81, 0x0a, 0x00, 0xf2, 0x13, 0x8c, 0xad, 0x64, 0x3b, 0x6b, - 0xf8, 0xed, 0x45, 0x76, 0x6e, 0x19, 0x02, 0xfc, 0x44, 0x34, 0x7a, 0x37, - 0x06, 0x2d, 0xe9, 0x40, 0x60, 0x32, 0x0c, 0x25, 0x2e, 0x00, 0x90, 0x01, - 0x48, 0x96, 0xe8, 0x76, 0x7a, 0x20, 0x39, 0x54, 0x74, 0xbc, 0x24, 0x61, - 0x6c, 0x23, 0x63, 0xab, 0x61, 0x00, 0xd6, 0xf0, 0x1f, 0x0f, 0x59, 0x39, - 0x4c, 0x6b, 0x7b, 0x48, 0x14, 0x99, 0x06, 0x8e, 0x44, 0x42, 0xd0, 0x38, - 0x09, 0x88, 0xcb, 0x00, 0x5f, 0x1a, 0x72, 0x4e, 0x09, 0x8d, 0x76, 0x01, - 0xc1, 0x06, 0x20, 0xc8, 0xd6, 0x0c, 0x78, 0x0d, 0x8b, 0xc7, 0x92, 0x98, - 0xd6, 0x4f, 0x44, 0x9e, 0x8f, 0xc3, 0x88, 0x4c, 0xe7, 0x67, 0xd4, 0x52, - 0xd1, 0xed, 0xf4, 0x60, 0x60, 0xaf, 0x0d, 0xb1, 0x8d, 0x1b, 0xd6, 0x5c, - 0x88, 0x35, 0x2c, 0x88, 0xeb, 0x8a, 0xb9, 0x51, 0x7a, 0x44, 0x64, 0xfb, - 0x8c, 0x88, 0x1d, 0x0f, 0x21, 0x92, 0x7c, 0x6c, 0xb0, 0xbc, 0xb4, 0x62, - 0x18, 0x99, 0x0e, 0xa3, 0x6a, 0x28, 0x8e, 0xb1, 0xeb, 0x9f, 0xd3, 0xdf, - 0x7b, 0x40, 0xd6, 0x70, 0xf5, 0x63, 0x41, 0xa6, 0xb5, 0x3d, 0x9c, 0xa5, - 0xd6, 0x8b, 0x80, 0x12, 0x0f, 0x63, 0xa5, 0x98, 0x35, 0x1f, 0x8a, 0xbc, - 0x0a, 0xf9, 0xa0, 0x67, 0xcd, 0x65, 0x58, 0xc3, 0x9c, 0x98, 0x97, 0x69, - 0xa5, 0x87, 0x44, 0x75, 0x57, 0x34, 0xdd, 0x60, 0x57, 0x90, 0x59, 0xf3, - 0xa1, 0x02, 0x01, 0xf6, 0x93, 0x21, 0xf8, 0x89, 0x68, 0x35, 0x0c, 0xd0, - 0x1a, 0xae, 0x3e, 0xcc, 0xc9, 0xb4, 0xb6, 0x87, 0xb3, 0x54, 0x77, 0x5e, - 0x83, 0x96, 0x2c, 0x91, 0x31, 0xbf, 0x3b, 0x05, 0xac, 0xaf, 0x35, 0x24, - 0x79, 0x9f, 0x52, 0xd1, 0xf3, 0x8a, 0x04, 0x39, 0x1e, 0x43, 0x12, 0x0e, - 0xb4, 0x7e, 0x1a, 0x2a, 0x4a, 0x0e, 0x67, 0x93, 0x91, 0xf8, 0x85, 0x6f, - 0x59, 0x8c, 0xeb, 0x27, 0xa2, 0xde, 0x33, 0x41, 0xc8, 0x7f, 0x9a, 0xc0, - 0xd2, 0xe2, 0x7a, 0xd6, 0x85, 0x96, 0x97, 0x5b, 0x80, 0xef, 0x01, 0xb1, - 0xaa, 0xaa, 0x7f, 0x08, 0x5f, 0xda, 0x4f, 0x44, 0xa3, 0x97, 0x46, 0x51, - 0xbf, 0xbd, 0x1e, 0xc1, 0xaa, 0x95, 0x99, 0x89, 0x5c, 0x73, 0x0b, 0xd4, - 0x7b, 0xb6, 0x17, 0xd1, 0x2f, 0xa2, 0x88, 0xde, 0x55, 0xe1, 0xda, 0x2c, - 0xa0, 0xfb, 0x40, 0x37, 0xc6, 0x5e, 0xac, 0x2a, 0x59, 0xfe, 0x37, 0xa1, - 0x9f, 0x15, 0x5a, 0x46, 0x0f, 0xa4, 0x87, 0x44, 0xf6, 0x2b, 0x2a, 0xb4, - 0xe9, 0x22, 0xa3, 0x01, 0x9a, 0x8c, 0x6b, 0x3f, 0xf6, 0xc1, 0xf3, 0x5d, - 0x00, 0xdf, 0xc9, 0xb2, 0x0f, 0xa3, 0x4c, 0xa8, 0x40, 0xdd, 0xef, 0xd5, - 0xa2, 0xa3, 0x0c, 0x9c, 0x56, 0x9e, 0xe1, 0x4a, 0x73, 0x44, 0xa1, 0xa1, - 0x51, 0x74, 0x9d, 0xed, 0x82, 0x08, 0x11, 0x0a, 0x14, 0x43, 0x07, 0xab, - 0xbf, 0x85, 0x06, 0x01, 0xdd, 0x47, 0x8f, 0xac, 0x7a, 0x97, 0x64, 0xf8, - 0xd8, 0x09, 0x52, 0x2f, 0xa9, 0x50, 0xa0, 0x60, 0x6a, 0x44, 0x5e, 0x11, - 0xc3, 0x48, 0x76, 0xf5, 0x50, 0xef, 0x95, 0xa0, 0x69, 0x3c, 0x38, 0xb7, - 0x1d, 0xfe, 0xf7, 0x02, 0x25, 0xbf, 0xc8, 0xdf, 0x84, 0x7e, 0x45, 0x31, - 0xad, 0xeb, 0x11, 0x51, 0xd5, 0x69, 0xb5, 0x24, 0x86, 0xbd, 0xf7, 0x6f, - 0x3e, 0x08, 0x76, 0xe4, 0x2d, 0xfe, 0x2b, 0x32, 0xfa, 0x6e, 0xda, 0x8b, - 0x92, 0xb7, 0x5c, 0xc6, 0x9d, 0x38, 0xb0, 0x9f, 0x26, 0x95, 0xb4, 0x61, - 0xf2, 0xbc, 0x03, 0xbe, 0x86, 0x46, 0x34, 0xbb, 0x9b, 0x31, 0x76, 0x73, - 0x18, 0x8e, 0xb8, 0x03, 0xdd, 0x91, 0x00, 0xe2, 0xf1, 0x98, 0x71, 0x4f, - 0xff, 0x99, 0x73, 0x80, 0xb4, 0x6d, 0x55, 0x33, 0xae, 0x9f, 0x88, 0x06, - 0x06, 0x07, 0xe0, 0xdd, 0xd1, 0x88, 0xe1, 0x2d, 0x1b, 0x96, 0x6d, 0x10, - 0x8d, 0x77, 0x16, 0xa8, 0xae, 0xb9, 0xce, 0xf4, 0x9c, 0x6a, 0x44, 0x11, - 0xc1, 0x33, 0xc1, 0xb2, 0x5e, 0xe0, 0x95, 0xd6, 0xaf, 0x68, 0xa6, 0x1d, - 0xb8, 0x3a, 0x4b, 0x91, 0xc9, 0x70, 0xf1, 0x71, 0xd7, 0xe7, 0x6a, 0x41, - 0x7b, 0x1d, 0xc8, 0x57, 0xa4, 0xc1, 0x09, 0x28, 0xf3, 0x8e, 0xb2, 0xe2, - 0xb9, 0xe0, 0x25, 0xb8, 0x6d, 0x2a, 0x4e, 0xbd, 0xbe, 0xab, 0x28, 0x83, - 0xf2, 0xcf, 0x11, 0x55, 0x7b, 0x24, 0x83, 0x51, 0x3b, 0x9a, 0x3a, 0x80, - 0x8e, 0x56, 0xcb, 0x01, 0x94, 0xee, 0x10, 0x4d, 0x3d, 0x98, 0x82, 0x3a, - 0xaf, 0xc2, 0xb1, 0xe7, 0xd5, 0x9c, 0xf2, 0xa5, 0x3b, 0x44, 0xd8, 0xbc, - 0xbc, 0x78, 0xb2, 0x9f, 0x88, 0xf2, 0xd5, 0xf7, 0xcf, 0x10, 0x95, 0xcb, - 0x4c, 0xd2, 0x0c, 0x11, 0x80, 0x92, 0x98, 0xcd, 0x3f, 0x47, 0x54, 0xbb, - 0xc7, 0x03, 0x6d, 0x5e, 0x03, 0x90, 0x9e, 0x81, 0x7a, 0xde, 0x3e, 0x05, - 0xb5, 0x65, 0x57, 0xce, 0xf1, 0x92, 0xb7, 0x94, 0xbe, 0xb3, 0x59, 0xaa, - 0x7e, 0xd2, 0x0c, 0x11, 0x1c, 0xb9, 0xc7, 0xdb, 0xc4, 0xb4, 0xae, 0xfb, - 0x44, 0x75, 0xe7, 0x8b, 0xf3, 0x39, 0x53, 0xb8, 0x7f, 0x47, 0x02, 0xc1, - 0xdd, 0x12, 0x72, 0x95, 0x72, 0x19, 0x76, 0x29, 0xf6, 0xef, 0x05, 0x5c, - 0xcf, 0x6f, 0x2a, 0x38, 0x60, 0x90, 0x6f, 0x51, 0xeb, 0xc1, 0x36, 0xa3, - 0x7d, 0xb7, 0xdb, 0x53, 0xf2, 0x54, 0xd7, 0x78, 0x67, 0x81, 0xda, 0xde, - 0x69, 0x43, 0xf4, 0x6e, 0xd4, 0xb2, 0x4f, 0x6e, 0xb7, 0x07, 0x9d, 0x07, - 0xda, 0x91, 0xd8, 0xb2, 0x89, 0x1d, 0x7a, 0xc5, 0x4d, 0xda, 0xbc, 0x06, - 0xae, 0x92, 0xc3, 0xe8, 0x99, 0xd1, 0x2c, 0x86, 0xd1, 0xae, 0x8f, 0xd3, - 0x91, 0xa3, 0x47, 0xa0, 0xcd, 0x6b, 0x70, 0x6d, 0x76, 0xc1, 0x3b, 0x34, - 0xc8, 0x52, 0x7a, 0x06, 0x87, 0xa2, 0x50, 0x6e, 0x06, 0x0d, 0xc3, 0x49, - 0x15, 0xd7, 0x66, 0x17, 0x6a, 0xb6, 0x8b, 0xe8, 0xfc, 0x79, 0xa7, 0xe9, - 0xc1, 0x09, 0x81, 0x6b, 0x74, 0x68, 0xa8, 0x13, 0x00, 0xd0, 0xf3, 0x7e, - 0x0f, 0xb8, 0x9d, 0x75, 0x6c, 0xf2, 0xc3, 0x73, 0xd4, 0x7b, 0xb6, 0xd7, - 0xa8, 0xcb, 0xf3, 0x0e, 0x63, 0x06, 0xb9, 0xf0, 0x76, 0x3f, 0x26, 0x5b, - 0xb6, 0x5a, 0x3e, 0xf8, 0x94, 0xde, 0x56, 0xe5, 0xda, 0x07, 0xa3, 0x18, - 0x7b, 0xb1, 0x8a, 0x79, 0x6f, 0xcc, 0x50, 0xcb, 0xf1, 0x36, 0xd3, 0x8c, - 0x94, 0x2a, 0x5c, 0x25, 0x87, 0x0e, 0x77, 0x07, 0x6a, 0x0f, 0x48, 0xc6, - 0x9a, 0xa0, 0x18, 0xfd, 0xb8, 0x4a, 0xce, 0xe8, 0x6f, 0x4a, 0xbf, 0xd4, - 0xda, 0x23, 0x74, 0x69, 0x38, 0xab, 0x2d, 0x9e, 0x77, 0xa0, 0xbb, 0xe1, - 0x04, 0xc4, 0x26, 0x17, 0xa2, 0x8f, 0xe3, 0xf8, 0x46, 0xf4, 0xc0, 0x4f, - 0x44, 0xf5, 0x43, 0xa1, 0x92, 0x57, 0xfb, 0x12, 0x9f, 0xdb, 0x60, 0x27, - 0x54, 0xa0, 0xef, 0x2b, 0x7b, 0x49, 0xf2, 0x72, 0xe1, 0x21, 0x45, 0x8f, - 0x17, 0x17, 0x32, 0x38, 0x49, 0x34, 0xeb, 0xa3, 0x45, 0x12, 0xe8, 0x7c, - 0xd5, 0x4b, 0xc2, 0xc0, 0x35, 0xd2, 0xae, 0x8f, 0x93, 0x7f, 0xa6, 0x70, - 0x54, 0xa2, 0xae, 0xb9, 0x0e, 0xd1, 0xbb, 0x51, 0x70, 0x95, 0x1c, 0xae, - 0x7d, 0x30, 0x8a, 0xa9, 0x41, 0x19, 0x53, 0x23, 0x32, 0xdc, 0x6e, 0x0f, - 0x44, 0x88, 0x88, 0x44, 0xc2, 0x68, 0x39, 0xe8, 0x87, 0x34, 0x47, 0x24, - 0x42, 0x6f, 0x4f, 0x9b, 0xd7, 0xe0, 0xfb, 0xf9, 0x6b, 0x59, 0xf2, 0xc6, - 0x4e, 0x8e, 0x19, 0x0f, 0x29, 0xf1, 0xb5, 0x06, 0x11, 0x40, 0x38, 0xf0, - 0x1e, 0xb5, 0x1e, 0x6c, 0x43, 0x24, 0x12, 0x80, 0x30, 0x2f, 0x80, 0xe7, - 0x1d, 0x68, 0xdf, 0xed, 0x47, 0x8d, 0x28, 0xc2, 0x5d, 0xe9, 0x41, 0xf4, - 0x6e, 0x14, 0x7d, 0x43, 0x83, 0xa8, 0xde, 0x21, 0xc1, 0x7b, 0x63, 0xc6, - 0xd0, 0xf7, 0xd0, 0x50, 0x27, 0x44, 0xfd, 0xd5, 0x84, 0x4d, 0xb3, 0x41, - 0x01, 0x80, 0x07, 0x49, 0x53, 0x7f, 0x1d, 0x71, 0xde, 0xf8, 0xf7, 0xe0, - 0x97, 0xc3, 0x39, 0xfb, 0x79, 0xee, 0x68, 0x0f, 0x00, 0x18, 0xf2, 0x52, - 0xa5, 0xa3, 0xa9, 0x03, 0x8e, 0x67, 0x1d, 0x10, 0x01, 0xec, 0x7a, 0xab, - 0x1e, 0x8e, 0x38, 0x0f, 0x9e, 0x77, 0xe0, 0xda, 0x07, 0xa3, 0xe8, 0x3f, - 0x73, 0xce, 0x18, 0x07, 0x6d, 0x5e, 0x43, 0xd7, 0xa5, 0x2e, 0x04, 0x0e, - 0xf6, 0xa2, 0x14, 0xfd, 0x84, 0x79, 0xc1, 0xa4, 0x9f, 0x7f, 0x8e, 0xa8, - 0xd6, 0xed, 0x41, 0xef, 0xd9, 0x5e, 0xc4, 0xe3, 0x31, 0x78, 0x79, 0x2f, - 0x1a, 0x1b, 0x1a, 0xd1, 0xf3, 0xf6, 0x29, 0xb8, 0x36, 0xbb, 0xe0, 0x88, - 0xf3, 0x68, 0x3b, 0xdb, 0x86, 0x5d, 0x7b, 0xea, 0x21, 0xdd, 0xd1, 0x9f, - 0xbf, 0xc1, 0xb4, 0xbd, 0x23, 0xb7, 0xa8, 0x4f, 0x29, 0x83, 0x11, 0x79, - 0x15, 0x74, 0xd0, 0x03, 0xab, 0xe2, 0x57, 0x80, 0xbe, 0x4b, 0xa5, 0x31, - 0x77, 0x3e, 0x3c, 0xd1, 0xe4, 0x83, 0x63, 0x4b, 0xe1, 0x29, 0xc6, 0x7b, - 0x63, 0x86, 0x76, 0xbd, 0x55, 0x6f, 0xa9, 0x53, 0xaa, 0x70, 0x95, 0x1c, - 0x5c, 0x9b, 0x05, 0x78, 0x5e, 0xf1, 0xa0, 0xa5, 0xb9, 0xc5, 0xc4, 0x68, - 0xfe, 0x39, 0x22, 0xf9, 0x4b, 0xd9, 0xd2, 0xc7, 0x6d, 0xdd, 0x2e, 0x52, - 0x4a, 0xc6, 0xd4, 0x88, 0x8c, 0xde, 0x4b, 0x41, 0x64, 0x32, 0xc9, 0xb5, - 0x91, 0x51, 0x83, 0x79, 0x52, 0xae, 0x8a, 0x71, 0xed, 0x83, 0x51, 0xc8, - 0x71, 0x19, 0x87, 0x8f, 0x77, 0x19, 0x3a, 0xb4, 0x1f, 0xf0, 0xc3, 0xd5, - 0xd2, 0x6a, 0x6a, 0xa7, 0x66, 0xe0, 0x73, 0x7a, 0xed, 0x74, 0xab, 0x51, - 0x6f, 0x7c, 0x70, 0x1c, 0xc3, 0x5b, 0x36, 0xb0, 0x40, 0x46, 0xdb, 0xed, - 0x07, 0xda, 0x51, 0xf3, 0x46, 0x1b, 0xeb, 0x5d, 0xe2, 0xbf, 0x03, 0x3a, - 0x53, 0xef, 0x6f, 0x6a, 0x86, 0x63, 0xcf, 0xab, 0x2c, 0x3a, 0xd0, 0x4f, - 0x13, 0x7f, 0x06, 0x92, 0x5a, 0x18, 0x00, 0x20, 0x6d, 0xaf, 0x45, 0xfb, - 0x41, 0x3f, 0x82, 0x8c, 0xb1, 0xa5, 0xed, 0x34, 0x36, 0x34, 0x42, 0x78, - 0xa7, 0xab, 0xe0, 0x38, 0xf8, 0x89, 0xa8, 0x7a, 0x47, 0xba, 0x5f, 0xa9, - 0x45, 0x57, 0xa9, 0xfa, 0xd5, 0x37, 0xd4, 0xc3, 0x7f, 0xd0, 0x8f, 0xd4, - 0x75, 0xb7, 0xdb, 0x03, 0xe9, 0xbd, 0x80, 0xe9, 0xf9, 0x0e, 0x1f, 0x3b, - 0x41, 0xc3, 0x97, 0x86, 0x01, 0xe8, 0xfe, 0x76, 0xed, 0xd9, 0x3e, 0xb6, - 0x4e, 0x84, 0xce, 0x60, 0xc3, 0x89, 0x32, 0x19, 0x11, 0x02, 0xa6, 0xfe, - 0xb2, 0xd4, 0x24, 0xf4, 0x12, 0xfc, 0x1e, 0x56, 0x34, 0x8e, 0x1b, 0xb8, - 0x58, 0x5c, 0xfc, 0x76, 0xec, 0xc5, 0x2a, 0x36, 0x75, 0x53, 0xc6, 0xfe, - 0xa6, 0x66, 0x34, 0xbf, 0xdc, 0x0c, 0x20, 0x9b, 0x51, 0x84, 0x79, 0x01, - 0x93, 0x8a, 0x82, 0x77, 0x4f, 0x07, 0x50, 0xbd, 0x43, 0x82, 0x6b, 0xe4, - 0x96, 0x21, 0x37, 0xb8, 0x91, 0xb1, 0xcc, 0x07, 0x05, 0xf9, 0x16, 0xd5, - 0x84, 0x3f, 0xa7, 0xce, 0x57, 0xbd, 0xc6, 0x43, 0x11, 0x21, 0x02, 0x71, - 0xa0, 0xfd, 0xa0, 0x1f, 0x5c, 0x25, 0x67, 0xc8, 0x57, 0xff, 0x14, 0x33, - 0xf4, 0x38, 0x72, 0xba, 0xdb, 0x68, 0xcf, 0xcb, 0x7b, 0x31, 0xf6, 0x62, - 0x15, 0x0b, 0x9c, 0x99, 0x34, 0xea, 0x5b, 0x19, 0xac, 0x08, 0x60, 0xb2, - 0x65, 0x2b, 0x3b, 0x71, 0xe0, 0x84, 0x51, 0xf7, 0xc8, 0xd9, 0xae, 0x25, - 0xda, 0x03, 0xa2, 0x43, 0xd4, 0x67, 0x96, 0xc7, 0x33, 0x5d, 0xaa, 0xfd, - 0x73, 0x47, 0xcf, 0xc1, 0x3b, 0x34, 0xc8, 0x52, 0x3e, 0xfa, 0xbb, 0xa7, - 0x03, 0x88, 0x44, 0x02, 0x48, 0x2a, 0xc0, 0xa4, 0xa2, 0xa0, 0xf7, 0x6c, - 0x2f, 0x06, 0x06, 0x07, 0x20, 0x02, 0xa8, 0x76, 0x55, 0xa7, 0xe5, 0x41, - 0x44, 0x77, 0xc3, 0x11, 0x93, 0x1e, 0x4b, 0xc7, 0x41, 0x92, 0x89, 0x6a, - 0xc2, 0x9f, 0x93, 0xa7, 0xa1, 0xde, 0x34, 0x9e, 0x72, 0x5c, 0x2e, 0x4b, - 0x3f, 0xdc, 0x85, 0x61, 0xb0, 0x22, 0x44, 0xc4, 0x1f, 0xc4, 0xd0, 0x78, - 0x67, 0x81, 0x20, 0xdf, 0x22, 0xff, 0x0c, 0x91, 0x70, 0x7d, 0x81, 0x6c, - 0x9a, 0xcd, 0xb8, 0x3e, 0xa9, 0x28, 0xf0, 0x13, 0xd1, 0x7a, 0x05, 0x40, - 0x32, 0x0e, 0x3d, 0xbc, 0x85, 0xc7, 0x8b, 0x9f, 0x12, 0xb1, 0xf5, 0xf7, - 0x3c, 0xe4, 0xe6, 0x0a, 0x64, 0x95, 0xa7, 0x80, 0xf7, 0x9e, 0x03, 0x0e, - 0xc7, 0xcb, 0x93, 0xbb, 0x14, 0x35, 0x48, 0x18, 0xb8, 0xad, 0x16, 0xe5, - 0x9b, 0x06, 0x19, 0x63, 0x9e, 0xc7, 0x7f, 0xf7, 0x03, 0x70, 0xcc, 0x8c, - 0x92, 0x03, 0x0e, 0x84, 0xbf, 0x9c, 0x80, 0x2d, 0x6a, 0x43, 0xe0, 0x0f, - 0x01, 0xe0, 0x6e, 0x5a, 0xd5, 0xb6, 0xe3, 0x6d, 0x98, 0x9a, 0x23, 0x0a, - 0x6e, 0x64, 0xcc, 0x7b, 0x63, 0x86, 0xba, 0x3f, 0x0d, 0x40, 0xb9, 0x29, - 0xeb, 0x53, 0x7b, 0x86, 0x8f, 0x9c, 0x2a, 0x0a, 0x14, 0x80, 0xd7, 0xdb, - 0x69, 0x0c, 0xbc, 0x47, 0x7d, 0x43, 0x83, 0x00, 0x80, 0xce, 0xf7, 0x3b, - 0x31, 0x41, 0x44, 0xea, 0x5d, 0x15, 0xe1, 0x83, 0x7e, 0xe3, 0x7e, 0xf7, - 0xc1, 0x1a, 0x38, 0x2e, 0x03, 0x81, 0xf8, 0x98, 0x51, 0x7f, 0xa0, 0x39, - 0x88, 0x60, 0x4b, 0xab, 0xa5, 0xfe, 0x9a, 0xcb, 0x9e, 0x6e, 0xeb, 0xa6, - 0x0c, 0x33, 0x57, 0x01, 0x4a, 0x4c, 0x41, 0x0d, 0x80, 0xde, 0xb8, 0x9c, - 0xd6, 0x07, 0x40, 0x74, 0xcf, 0x36, 0x13, 0x53, 0x35, 0x36, 0x34, 0x22, - 0xf6, 0x40, 0x05, 0x00, 0xd4, 0x40, 0x84, 0x8d, 0xb3, 0xeb, 0x33, 0x4b, - 0x4b, 0x2b, 0x24, 0x3e, 0x43, 0xde, 0xe3, 0xfe, 0x2c, 0x9d, 0xb1, 0xcc, - 0xe3, 0x90, 0x66, 0xd7, 0x38, 0xd2, 0xbe, 0xa7, 0xc4, 0x4b, 0x48, 0x07, - 0xcd, 0x8a, 0xd7, 0x4f, 0xaa, 0x5c, 0xd2, 0xfe, 0x5d, 0xdd, 0x35, 0xb3, - 0x2a, 0x0a, 0x14, 0x70, 0x95, 0x1c, 0x16, 0xbf, 0x5e, 0xc4, 0x7a, 0x11, - 0x40, 0xdb, 0x95, 0x44, 0x59, 0xab, 0xfa, 0x14, 0x2a, 0x5f, 0x8e, 0x01, - 0xf0, 0x59, 0x36, 0xd6, 0x59, 0xa3, 0xfb, 0x30, 0x87, 0x6f, 0xa3, 0x6c, - 0xf9, 0x99, 0x18, 0x9e, 0xf6, 0x20, 0x89, 0xfc, 0x06, 0x6b, 0x85, 0xa8, - 0xaa, 0x62, 0x63, 0x19, 0x7f, 0xff, 0x0a, 0x40, 0x6c, 0xe4, 0x32, 0x0d, - 0x1e, 0x1f, 0x36, 0x06, 0xb4, 0x77, 0x28, 0x08, 0xfe, 0xc3, 0xcb, 0x86, - 0x6b, 0xc1, 0x55, 0x72, 0xb8, 0x70, 0xb2, 0x1f, 0xd5, 0xcf, 0x56, 0x03, - 0x0e, 0x60, 0x60, 0x70, 0x00, 0x63, 0xa7, 0xc3, 0xc6, 0xfd, 0x29, 0x86, - 0x91, 0x9a, 0x3a, 0x91, 0x32, 0x5a, 0x61, 0x5e, 0x40, 0xe6, 0xd4, 0x29, - 0x42, 0x44, 0x8c, 0x8f, 0x67, 0x44, 0x27, 0xd2, 0x71, 0x62, 0x59, 0x91, - 0x73, 0xbb, 0x38, 0x36, 0x21, 0x5d, 0xbf, 0x32, 0x6e, 0x30, 0x59, 0xaa, - 0x7e, 0x26, 0x93, 0x4d, 0x66, 0x98, 0x74, 0xd6, 0xa2, 0xf2, 0x9d, 0xae, - 0x2c, 0x26, 0x0f, 0xbe, 0x17, 0x80, 0x68, 0xe8, 0x2f, 0x66, 0xf5, 0x47, - 0x81, 0x1e, 0xbf, 0xdd, 0xf5, 0x96, 0xce, 0xa8, 0x36, 0xbe, 0x02, 0xd7, - 0x4e, 0x0e, 0xc0, 0xf1, 0x3d, 0x87, 0x31, 0x0e, 0xef, 0x9e, 0x0e, 0x18, - 0xfa, 0x20, 0x8e, 0xb2, 0xf4, 0x5b, 0xda, 0x7e, 0x63, 0x43, 0x23, 0xba, - 0x0f, 0x1c, 0xc9, 0x1b, 0x65, 0x88, 0x6e, 0xdc, 0x80, 0x75, 0x8e, 0xb9, - 0x05, 0x52, 0xe2, 0xda, 0xb2, 0x99, 0x30, 0x14, 0xcd, 0x5e, 0x61, 0xa6, - 0x4a, 0x67, 0x0d, 0x70, 0xe1, 0x65, 0x1b, 0x60, 0x5b, 0x3e, 0xe3, 0xf6, - 0x29, 0xe1, 0x82, 0x2e, 0x82, 0x7f, 0x8e, 0xf4, 0x29, 0xa6, 0xc0, 0x7d, - 0xf5, 0xdb, 0xeb, 0x91, 0xb9, 0xd1, 0xb0, 0x38, 0x9f, 0x40, 0xd7, 0xd9, - 0xb4, 0xbf, 0x39, 0x11, 0x09, 0x63, 0xd2, 0xb3, 0x95, 0xc9, 0x55, 0x8c, - 0x05, 0x19, 0x63, 0xae, 0x96, 0x56, 0x16, 0xe3, 0xe3, 0xc6, 0xfd, 0x12, - 0x2f, 0x41, 0x01, 0x20, 0x57, 0x31, 0xd6, 0xd8, 0xd0, 0x08, 0x00, 0x26, - 0x79, 0xa9, 0xbf, 0xbb, 0x1b, 0x4e, 0x18, 0xed, 0xda, 0x32, 0xe6, 0xd1, - 0xe0, 0xd0, 0x60, 0xce, 0x17, 0xed, 0xd0, 0xe9, 0x4e, 0xa3, 0x7e, 0xfb, - 0x8e, 0xb7, 0x0c, 0xa9, 0x29, 0xf9, 0x4a, 0x4c, 0x31, 0x1e, 0xbc, 0xb9, - 0xbd, 0xe2, 0x5f, 0x64, 0x5d, 0xff, 0xb4, 0xbe, 0xa9, 0xfe, 0x34, 0xde, - 0x59, 0x30, 0x36, 0x1c, 0xd4, 0x4a, 0x15, 0xe1, 0x4b, 0x7a, 0x34, 0x21, - 0x35, 0x0e, 0x2d, 0xcd, 0x2d, 0xa6, 0xfe, 0xa5, 0x18, 0xba, 0x54, 0xfd, - 0x24, 0xd1, 0xdc, 0x7e, 0x47, 0x53, 0x47, 0x4e, 0x83, 0x75, 0xcc, 0xcc, - 0x18, 0x8b, 0xf0, 0x75, 0xaa, 0x56, 0x81, 0x65, 0xfb, 0x9c, 0xdf, 0x9d, - 0x82, 0xcf, 0x95, 0x3f, 0x56, 0xeb, 0x73, 0x39, 0x40, 0x6f, 0x0a, 0xe8, - 0x69, 0xf0, 0x2d, 0xbb, 0xbd, 0x81, 0xdb, 0xf9, 0x0d, 0xb6, 0xda, 0x23, - 0x21, 0x70, 0xb0, 0x57, 0x67, 0xbc, 0x40, 0x3f, 0x45, 0x07, 0xfa, 0xc9, - 0x3f, 0x43, 0x24, 0xcd, 0x11, 0xf9, 0xe7, 0x88, 0xb4, 0xeb, 0xe3, 0xc4, - 0x7d, 0x78, 0x99, 0xaa, 0xf7, 0xa4, 0x19, 0xd1, 0xcb, 0x7b, 0xe1, 0xdf, - 0xd1, 0x6e, 0xfc, 0x2d, 0xcc, 0x0b, 0x80, 0x62, 0x5e, 0x7c, 0x04, 0x0f, - 0x77, 0x50, 0x2a, 0x24, 0x93, 0xc9, 0x30, 0x0a, 0x80, 0xee, 0xa3, 0x47, - 0x4c, 0xfd, 0x4d, 0xf9, 0x70, 0x5c, 0x25, 0x87, 0xda, 0x26, 0xc9, 0xb8, - 0x2f, 0x78, 0x2c, 0x68, 0x5c, 0x8f, 0x44, 0xc2, 0x40, 0xa0, 0x9f, 0x52, - 0xab, 0xe2, 0x94, 0xc1, 0xbc, 0xdb, 0xd4, 0x4c, 0xb6, 0xbb, 0x36, 0xa3, - 0xbe, 0xef, 0x40, 0x7d, 0xd1, 0x3e, 0x63, 0x29, 0x33, 0x10, 0xe2, 0x19, - 0xf2, 0x32, 0xfa, 0x33, 0xf1, 0x45, 0xd8, 0xec, 0xb3, 0x66, 0xcc, 0x08, - 0x7e, 0x22, 0xf2, 0x35, 0xb7, 0x94, 0xed, 0xd3, 0x2e, 0x75, 0xe1, 0x7a, - 0xde, 0x3e, 0x65, 0x5c, 0xaf, 0x3f, 0x58, 0x6f, 0x8a, 0x96, 0x48, 0x73, - 0x44, 0xae, 0x91, 0x5b, 0x74, 0xe8, 0x15, 0x37, 0x75, 0xee, 0x39, 0x92, - 0x8e, 0x1e, 0xec, 0x2f, 0x37, 0x6a, 0x90, 0x91, 0x6b, 0x40, 0x05, 0x56, - 0xea, 0x4b, 0xcb, 0xe2, 0x22, 0xb0, 0xe1, 0x93, 0x30, 0x50, 0xe0, 0x4b, - 0x87, 0x5c, 0xd8, 0xb1, 0xd7, 0x07, 0xd7, 0xf3, 0xd6, 0x6f, 0xa4, 0x6b, - 0x6e, 0x81, 0x5a, 0xdf, 0xc8, 0x1d, 0x63, 0xb5, 0x2a, 0xae, 0xcd, 0x2e, - 0x9c, 0x3a, 0xd6, 0x0d, 0x61, 0xb3, 0x00, 0x5f, 0x73, 0x8b, 0xa9, 0x2e, - 0xcf, 0x3b, 0x90, 0x9c, 0x5f, 0xcc, 0x8a, 0xa5, 0x02, 0xc8, 0xda, 0xaa, - 0xe4, 0x8e, 0x5d, 0xa6, 0xae, 0x4b, 0x5d, 0xa6, 0x7b, 0x52, 0xab, 0x68, - 0xd3, 0x94, 0x7d, 0x67, 0x81, 0x7c, 0x3f, 0x7f, 0xcd, 0x32, 0xfe, 0x99, - 0x59, 0x78, 0xde, 0x81, 0xe0, 0xfb, 0x3d, 0x48, 0x6c, 0xd1, 0xe3, 0xd3, - 0xc1, 0x8c, 0xd8, 0xaa, 0xd5, 0xea, 0x9c, 0xe7, 0x1d, 0x68, 0xb9, 0x3c, - 0x56, 0xfc, 0x06, 0xc3, 0xd2, 0x28, 0x40, 0x58, 0x46, 0x70, 0x23, 0x63, - 0x7e, 0xd2, 0xc3, 0x50, 0x99, 0x7d, 0x2e, 0x66, 0x1c, 0x06, 0x5e, 0xf5, - 0x1a, 0x2f, 0xb5, 0x95, 0x7e, 0x5c, 0x25, 0x07, 0xff, 0x1f, 0x22, 0x59, - 0xfa, 0x25, 0x32, 0xd6, 0x04, 0xb9, 0x8a, 0x6b, 0xb3, 0x0b, 0xa1, 0xc1, - 0x01, 0x04, 0x19, 0x63, 0xac, 0xe3, 0xea, 0x2c, 0x05, 0x4a, 0xd9, 0x01, - 0xcb, 0x40, 0xef, 0x53, 0x09, 0x8c, 0xee, 0x95, 0xf2, 0x36, 0x96, 0xaf, - 0x74, 0x46, 0xa6, 0x10, 0xb8, 0x5b, 0x51, 0xc6, 0x0e, 0x19, 0x87, 0x53, - 0xaf, 0x3f, 0x99, 0x77, 0xc3, 0xa0, 0xf1, 0xce, 0x02, 0x05, 0x2f, 0xf5, - 0xa2, 0x42, 0xab, 0xc0, 0xd2, 0xbd, 0x75, 0x05, 0x0a, 0x9a, 0x5f, 0x6e, - 0x46, 0x92, 0x4b, 0xa2, 0x7d, 0xb7, 0xdf, 0x94, 0x1c, 0x92, 0xda, 0x8a, - 0xd4, 0xbe, 0xd0, 0x20, 0xc7, 0xf5, 0x38, 0xf4, 0x54, 0x52, 0x45, 0xfb, - 0xee, 0xfd, 0x48, 0x72, 0x49, 0x24, 0x1f, 0xe8, 0x53, 0x9f, 0x7b, 0x73, - 0x0d, 0xaa, 0xb7, 0x57, 0x43, 0xde, 0x98, 0xde, 0x21, 0x4a, 0xe5, 0x3c, - 0x8c, 0xfd, 0x69, 0x18, 0x12, 0x2f, 0x61, 0x91, 0x5b, 0x84, 0xa7, 0xe3, - 0x70, 0x4e, 0x3d, 0x63, 0x23, 0x97, 0x29, 0x19, 0x83, 0x71, 0x7f, 0xaa, - 0xbd, 0x45, 0x6e, 0x11, 0xfe, 0x86, 0xf6, 0xac, 0x8d, 0x8a, 0xd8, 0xc8, - 0x65, 0x9a, 0xbe, 0x39, 0x8d, 0xa9, 0xa4, 0x8a, 0xde, 0x93, 0xa7, 0x10, - 0x64, 0x8c, 0xf9, 0xe7, 0x88, 0xfc, 0x1d, 0x7e, 0x48, 0xbc, 0x04, 0xd7, - 0x0f, 0x44, 0x70, 0x3b, 0xeb, 0x4a, 0xde, 0x48, 0x19, 0x8c, 0x0c, 0xc2, - 0xbd, 0xb9, 0x06, 0x93, 0x9e, 0xad, 0xa6, 0x71, 0xe8, 0x3d, 0x13, 0x04, - 0x1e, 0x24, 0x0d, 0xbd, 0x62, 0xeb, 0x13, 0x68, 0x7e, 0xb9, 0x11, 0xd5, - 0x5c, 0x35, 0x26, 0x1e, 0xc8, 0xc6, 0x38, 0xa4, 0xea, 0x15, 0xd2, 0xcf, - 0xb9, 0xc3, 0x99, 0x73, 0xe7, 0xd1, 0xaa, 0x3d, 0x39, 0x2e, 0xc3, 0xbb, - 0xbd, 0x11, 0x1e, 0x97, 0x07, 0xea, 0xce, 0xf4, 0x07, 0x02, 0x0c, 0xc7, - 0x2e, 0x50, 0xc9, 0x0c, 0x5b, 0x59, 0x8b, 0x0b, 0xbb, 0x51, 0xd0, 0x25, - 0x28, 0xa6, 0x4c, 0xa8, 0x09, 0xd4, 0x5d, 0x49, 0x02, 0x7f, 0x9d, 0x28, - 0xba, 0x7d, 0xce, 0x26, 0xe1, 0xd4, 0x7f, 0x6c, 0x5a, 0xd5, 0xc9, 0x2d, - 0x6b, 0xf8, 0xcd, 0xe1, 0xba, 0x52, 0x7d, 0xca, 0x5f, 0xfd, 0xc0, 0x07, - 0x3a, 0xe0, 0x58, 0x11, 0x83, 0x05, 0x80, 0x5a, 0xc1, 0x0e, 0xfa, 0x89, - 0x03, 0xfb, 0x5f, 0xf6, 0x16, 0xad, 0x87, 0x96, 0xcc, 0xbd, 0xea, 0x16, - 0xa1, 0xc7, 0x9d, 0x5d, 0xf7, 0x89, 0x06, 0xaf, 0x12, 0x0d, 0x5c, 0x9d, - 0xa5, 0xc1, 0xab, 0xb7, 0xc8, 0x75, 0x9f, 0xa8, 0x98, 0x1d, 0xb5, 0x35, - 0x5c, 0xfd, 0x58, 0x3c, 0xd3, 0xda, 0x64, 0xdc, 0x3b, 0x50, 0x38, 0x9b, - 0x6b, 0x39, 0x65, 0x20, 0x8a, 0xa2, 0xf3, 0x6d, 0xcf, 0xbd, 0x93, 0x9b, - 0x69, 0xbb, 0x7f, 0x3d, 0x43, 0xd3, 0x5a, 0x36, 0x73, 0x8b, 0xbc, 0x07, - 0xed, 0x6f, 0x3c, 0xb9, 0x2c, 0x86, 0x76, 0x3d, 0xd2, 0x93, 0x3f, 0x94, - 0x78, 0x02, 0xb5, 0xff, 0x6c, 0xb7, 0x4c, 0xea, 0xf0, 0x13, 0xd1, 0xc4, - 0x57, 0x09, 0x88, 0xbc, 0x1d, 0x4a, 0x3c, 0x01, 0xdb, 0x33, 0xf9, 0x5d, - 0x99, 0x52, 0xdb, 0x8f, 0x5a, 0x7c, 0x8e, 0x9f, 0xbc, 0x3f, 0x4b, 0x89, - 0xa4, 0x1d, 0x4a, 0x7c, 0x0a, 0xe0, 0xab, 0x21, 0x22, 0x06, 0xc7, 0x96, - 0xe5, 0xe7, 0x09, 0x4f, 0xde, 0xb8, 0x47, 0x32, 0x04, 0xa8, 0xd1, 0x30, - 0x3a, 0x6a, 0x3c, 0x10, 0xb8, 0x04, 0x92, 0x4f, 0xa7, 0xfb, 0x13, 0xbb, - 0x33, 0x43, 0x81, 0x49, 0x9b, 0xa9, 0xa6, 0xa7, 0xc6, 0x03, 0x3f, 0xbf, - 0x58, 0xd6, 0x37, 0x7f, 0xb6, 0x87, 0xb3, 0x34, 0xac, 0xd9, 0x11, 0x9e, - 0x0c, 0x1b, 0x57, 0xec, 0x42, 0x0d, 0x7a, 0x5e, 0x80, 0x21, 0x8f, 0xe1, - 0xc3, 0x7b, 0x54, 0xd0, 0x97, 0xfc, 0xbf, 0xd2, 0x17, 0x5b, 0xe5, 0x96, - 0xb0, 0x0a, 0xec, 0xfa, 0x24, 0x54, 0xd0, 0xb7, 0xbd, 0xf5, 0xce, 0x6b, - 0x39, 0x07, 0x64, 0xdb, 0xb1, 0x0b, 0x54, 0x4e, 0xbd, 0x62, 0x70, 0x62, - 0x64, 0x96, 0xfa, 0x94, 0xf4, 0x1a, 0x80, 0x8e, 0x9a, 0xd3, 0x26, 0xbd, - 0x73, 0x44, 0x55, 0xa7, 0xb3, 0xf5, 0xef, 0xdf, 0xeb, 0x43, 0x32, 0xc7, - 0xe2, 0xb1, 0x18, 0xf4, 0x13, 0x91, 0xfd, 0xa4, 0xfe, 0xf5, 0xb3, 0x08, - 0x0e, 0xe7, 0xde, 0x78, 0xd2, 0xe4, 0x4b, 0xb3, 0xa1, 0xec, 0x3c, 0xe5, - 0xf1, 0xdd, 0x02, 0x6c, 0xcf, 0x94, 0x7f, 0xde, 0xc4, 0xe4, 0x0d, 0xa2, - 0x43, 0x8a, 0x59, 0x2e, 0xe7, 0x94, 0x70, 0xea, 0xf5, 0x34, 0x61, 0xc4, - 0xae, 0x2f, 0x50, 0x57, 0x64, 0xcc, 0xf2, 0x39, 0x75, 0x08, 0x09, 0x34, - 0xff, 0xb0, 0xb8, 0x74, 0x4f, 0x3f, 0x11, 0xf9, 0x3e, 0x9d, 0xc0, 0x70, - 0xc2, 0x3a, 0x1b, 0x70, 0xe1, 0x97, 0x3e, 0x0c, 0x3e, 0xa1, 0x8f, 0xdf, - 0xba, 0x82, 0xf1, 0x51, 0x4d, 0xc6, 0xc2, 0xbe, 0xbf, 0x8d, 0xc1, 0x02, - 0x80, 0x47, 0x00, 0xae, 0xfd, 0xc4, 0x57, 0x30, 0x5e, 0x9b, 0x6f, 0x00, - 0xca, 0xad, 0x57, 0x0c, 0xf6, 0x29, 0x61, 0x93, 0xbc, 0xee, 0x3f, 0x4e, - 0x99, 0xae, 0x1f, 0xfa, 0xdd, 0x84, 0x65, 0xbb, 0xad, 0x17, 0x43, 0x18, - 0xf8, 0x68, 0x96, 0x5c, 0x65, 0xba, 0x28, 0xbd, 0x37, 0x55, 0x68, 0x49, - 0x5d, 0x9e, 0x12, 0xd7, 0x4c, 0xd7, 0x17, 0x6d, 0xb0, 0xec, 0x6f, 0x38, - 0xb9, 0x3c, 0x66, 0x4f, 0x70, 0xd9, 0x72, 0xb5, 0x69, 0xd9, 0x14, 0x27, - 0xef, 0x78, 0xa9, 0x02, 0x6e, 0xa7, 0xc7, 0xb2, 0xfd, 0xc0, 0xa4, 0x1d, - 0x6d, 0x1f, 0x5e, 0x2b, 0x18, 0x2f, 0xf7, 0x13, 0x91, 0xf0, 0x9b, 0x51, - 0x0c, 0x47, 0x1d, 0x96, 0x72, 0xfa, 0xf7, 0xa6, 0x0d, 0x56, 0x41, 0x11, - 0x3e, 0xed, 0xbd, 0x03, 0x3e, 0x54, 0x58, 0xec, 0xd0, 0x2e, 0xa7, 0x4c, - 0xfd, 0x05, 0xf0, 0x47, 0x16, 0x11, 0xca, 0x11, 0x95, 0x32, 0x0c, 0x37, - 0x8f, 0x5e, 0xf9, 0x06, 0xbc, 0xdc, 0x7a, 0xc5, 0x60, 0x96, 0x3c, 0xbe, - 0x7a, 0xc9, 0x83, 0x76, 0xe5, 0x6c, 0x3f, 0x32, 0x1d, 0x46, 0xdd, 0xef, - 0x12, 0xb0, 0x3d, 0x2c, 0xdd, 0x70, 0x9d, 0x9c, 0xf9, 0x2b, 0x68, 0xd3, - 0xf5, 0x78, 0xb6, 0x5e, 0x3a, 0x43, 0x2d, 0xef, 0x05, 0x45, 0x0e, 0xb9, - 0x13, 0x5f, 0xa5, 0xef, 0x8b, 0x3e, 0xc1, 0x58, 0xcb, 0xeb, 0x4f, 0xb2, - 0xf1, 0x7d, 0x3e, 0x70, 0xb6, 0xec, 0x7e, 0xa7, 0xbe, 0xf9, 0xab, 0x79, - 0x68, 0x6d, 0xb8, 0xae, 0xfb, 0xfa, 0x0c, 0x32, 0x6d, 0xab, 0xce, 0x6a, - 0xc7, 0xc9, 0x4d, 0x61, 0xe1, 0x97, 0xd9, 0x33, 0xd4, 0x3a, 0x67, 0x72, - 0x0a, 0xb9, 0x98, 0x49, 0xfc, 0xbe, 0xf7, 0x1b, 0xf1, 0x61, 0xab, 0x9f, - 0x02, 0xfa, 0xfe, 0x38, 0x86, 0xd7, 0x3e, 0x55, 0xc1, 0x3e, 0x18, 0xc5, - 0x29, 0x15, 0x88, 0x7d, 0xbd, 0x68, 0xba, 0xc7, 0x23, 0x00, 0xde, 0x1f, - 0x58, 0x33, 0xae, 0xc8, 0x7b, 0xfe, 0x6e, 0x4c, 0x9b, 0x25, 0x2f, 0x6e, - 0x66, 0x5a, 0xc4, 0x94, 0xfc, 0xed, 0x2b, 0x61, 0xd4, 0x9d, 0x57, 0x91, - 0xbc, 0x3f, 0x5b, 0x9a, 0xe1, 0xc6, 0xcd, 0xcf, 0xc9, 0x74, 0x9d, 0xcf, - 0xd6, 0x4b, 0x1f, 0xa7, 0xe5, 0xbd, 0xa0, 0xa5, 0xc8, 0x8d, 0x3e, 0xc3, - 0x58, 0xe2, 0x17, 0x3e, 0x88, 0x50, 0xb3, 0xee, 0xd7, 0x92, 0x12, 0xb6, - 0xfe, 0x36, 0x84, 0xee, 0x5f, 0xcf, 0xd0, 0xd8, 0xf5, 0xcf, 0x29, 0x76, - 0x87, 0x68, 0xf0, 0xea, 0x2d, 0xea, 0xfe, 0xf5, 0x0c, 0xd5, 0x9d, 0x0f, - 0x19, 0x33, 0x48, 0x66, 0xbd, 0x0e, 0x21, 0x01, 0xf5, 0x67, 0xf5, 0x26, - 0x86, 0x35, 0x98, 0xd6, 0xe7, 0xaa, 0x85, 0x25, 0x33, 0x38, 0x25, 0xc8, - 0x0d, 0xd9, 0x14, 0x2b, 0xc7, 0x80, 0xfa, 0x8b, 0x00, 0xbb, 0x94, 0x00, - 0x3b, 0x19, 0x02, 0x3b, 0xa3, 0x82, 0x7d, 0xbc, 0x98, 0x75, 0x5f, 0xc1, - 0xf2, 0xdc, 0xe3, 0x76, 0xd7, 0x57, 0xe3, 0xf0, 0x27, 0x21, 0x54, 0x0d, - 0xc5, 0xc1, 0x3e, 0x36, 0x7f, 0x80, 0x38, 0xfa, 0x2f, 0x00, 0xbe, 0x9f, - 0xad, 0x9f, 0x60, 0xb7, 0xad, 0x5a, 0xa6, 0x95, 0x1c, 0x62, 0xde, 0xf6, - 0x53, 0xd1, 0x8f, 0xba, 0x2b, 0x1a, 0xa2, 0x9f, 0x95, 0xc0, 0xb8, 0xbc, - 0x99, 0x89, 0x8a, 0x61, 0xc4, 0xa5, 0x2f, 0x54, 0xc9, 0x18, 0x9f, 0x2a, - 0x89, 0xc1, 0x83, 0x8c, 0xb1, 0x73, 0x6f, 0xec, 0x62, 0x27, 0xdc, 0x82, - 0x65, 0xbd, 0x69, 0x6d, 0x02, 0x5d, 0xd1, 0x0a, 0x74, 0x0d, 0x85, 0x10, - 0x50, 0xed, 0x98, 0xd6, 0x26, 0xb2, 0xee, 0xe3, 0x9c, 0x12, 0x16, 0xf6, - 0x09, 0x68, 0xfe, 0xe1, 0x36, 0x96, 0xeb, 0xcb, 0x85, 0x75, 0x9c, 0x2d, - 0x06, 0x2b, 0x46, 0xf0, 0x7e, 0x27, 0x61, 0xfa, 0x48, 0xb1, 0x33, 0x32, - 0x05, 0xf6, 0x7e, 0x0c, 0xdb, 0xce, 0x86, 0x30, 0x76, 0x5b, 0x05, 0x94, - 0x30, 0xf0, 0xf8, 0x0d, 0xe9, 0xdf, 0x51, 0x86, 0xff, 0xf0, 0x97, 0x68, - 0x76, 0xbb, 0xd3, 0x0e, 0xb0, 0x93, 0x21, 0xa8, 0x89, 0xc7, 0xf7, 0x7c, - 0x07, 0xf0, 0x56, 0x64, 0xeb, 0xb7, 0xff, 0x85, 0x8a, 0x55, 0xcb, 0xb4, - 0x72, 0x01, 0xa6, 0xcd, 0xc4, 0xd6, 0x8b, 0x2a, 0x7a, 0x47, 0x6e, 0x15, - 0x67, 0xb8, 0x79, 0x98, 0x16, 0x39, 0x18, 0x11, 0x4b, 0x5e, 0xa8, 0xd2, - 0x5f, 0xd0, 0xea, 0x1c, 0x72, 0xf3, 0xd7, 0xf3, 0xee, 0x64, 0x6c, 0x7c, - 0x37, 0x07, 0xae, 0xc4, 0x5c, 0x13, 0x91, 0xf7, 0x60, 0xa6, 0x49, 0x40, - 0xb4, 0xc0, 0xe2, 0x71, 0x9d, 0xff, 0x85, 0x6c, 0x5f, 0x02, 0x90, 0x71, - 0xe1, 0x47, 0x92, 0x61, 0x5f, 0xec, 0x83, 0x51, 0x7d, 0xe7, 0x6a, 0x3e, - 0xfb, 0xcd, 0x00, 0x2f, 0xc1, 0x86, 0x32, 0x4a, 0x2e, 0x46, 0xe2, 0x24, - 0x6c, 0xfa, 0xaf, 0x10, 0xc2, 0x7a, 0x36, 0x1d, 0x4e, 0xbc, 0x94, 0xdd, - 0x9e, 0xdd, 0x56, 0xc0, 0xb0, 0xfe, 0x8e, 0x4c, 0xbb, 0xb4, 0x5f, 0xa2, - 0xe8, 0xc1, 0xe5, 0x26, 0x01, 0x74, 0xd4, 0x87, 0x73, 0xef, 0x6c, 0x62, - 0x74, 0xd4, 0x87, 0x13, 0xee, 0x45, 0x70, 0x4e, 0xfd, 0x7a, 0x5f, 0xcc, - 0x8e, 0x77, 0xff, 0x7b, 0xbc, 0xe0, 0x62, 0x25, 0x1f, 0xd3, 0xfe, 0xad, - 0x7d, 0x5a, 0xa5, 0x08, 0xb9, 0xb6, 0x67, 0x9e, 0x64, 0x89, 0x7d, 0x82, - 0xd1, 0xcf, 0x42, 0x6b, 0x27, 0xa7, 0xab, 0x16, 0xf2, 0x3e, 0x3b, 0xac, - 0xc2, 0x79, 0x59, 0x4c, 0x3b, 0xb6, 0x91, 0x31, 0x2b, 0xcb, 0x4f, 0x2d, - 0xbe, 0xd8, 0x07, 0xa3, 0xc0, 0x5f, 0x73, 0xbc, 0x71, 0x8f, 0xd1, 0xe7, - 0xb2, 0x30, 0xca, 0x42, 0xa5, 0x00, 0x23, 0xed, 0xfa, 0x24, 0x04, 0x69, - 0x70, 0x11, 0xdb, 0x2e, 0x99, 0x57, 0xeb, 0x9c, 0x26, 0x17, 0x0c, 0xe3, - 0xac, 0x26, 0x9f, 0x76, 0xfc, 0x47, 0x76, 0x38, 0xb6, 0x30, 0x63, 0xaa, - 0x0b, 0x32, 0xc6, 0xbc, 0x3b, 0xb7, 0xb2, 0x99, 0x26, 0x01, 0x8d, 0x6e, - 0x2f, 0x10, 0x97, 0x31, 0x1c, 0x75, 0x40, 0x3a, 0x93, 0x3f, 0x7b, 0x2d, - 0x32, 0x9d, 0xa7, 0x1f, 0xab, 0xc0, 0xa7, 0xb5, 0x7c, 0x0e, 0x4f, 0x95, - 0x90, 0xa7, 0x1d, 0x93, 0x81, 0x7f, 0x2a, 0x4e, 0xee, 0x3a, 0x11, 0x40, - 0xa3, 0x8b, 0xcf, 0xb2, 0xfc, 0x5e, 0x05, 0x60, 0xef, 0x8f, 0x02, 0xeb, - 0xad, 0x99, 0xd8, 0xc0, 0xe7, 0x6a, 0x73, 0x58, 0x65, 0x81, 0x52, 0x84, - 0xef, 0xa7, 0xe7, 0xe9, 0x9a, 0x57, 0xcd, 0xdd, 0x6e, 0x5f, 0x61, 0xc3, - 0x5a, 0x25, 0x3e, 0xad, 0xdb, 0xa9, 0xe6, 0x64, 0x8e, 0xe8, 0x13, 0x8c, - 0x79, 0x77, 0x6e, 0x60, 0xfd, 0x7b, 0xf5, 0x28, 0x89, 0x02, 0x01, 0xec, - 0x78, 0x08, 0xb6, 0xcf, 0xf4, 0x6c, 0xb4, 0xd4, 0x7d, 0x7e, 0x22, 0x9a, - 0xbc, 0x41, 0x14, 0x50, 0xed, 0x39, 0xfb, 0xb1, 0x5a, 0x7c, 0xda, 0x4c, - 0x6c, 0x7e, 0xa4, 0x47, 0x05, 0x8a, 0xd9, 0xe1, 0x04, 0x64, 0x4c, 0xdb, - 0xaa, 0x0b, 0xbe, 0xb8, 0x06, 0xd3, 0x2a, 0x00, 0xfa, 0xff, 0xb5, 0x22, - 0xcb, 0xf2, 0x0f, 0x5d, 0x0a, 0x01, 0xf3, 0xf9, 0x19, 0x16, 0x90, 0x80, - 0xaf, 0xd5, 0x9c, 0x76, 0x99, 0xb7, 0x94, 0xe0, 0xfb, 0x65, 0xa2, 0xc8, - 0x27, 0x0a, 0x1b, 0x56, 0x9e, 0xfa, 0x8e, 0xb9, 0x85, 0x65, 0x6d, 0xe5, - 0x96, 0xe6, 0xd3, 0x8a, 0x05, 0xe5, 0x25, 0x9f, 0x67, 0xec, 0xf3, 0x37, - 0x7d, 0xe0, 0x34, 0x5d, 0x5e, 0xeb, 0xc5, 0x10, 0xd8, 0x69, 0x15, 0xdb, - 0x8e, 0x5d, 0xa0, 0xb6, 0x63, 0xf7, 0x88, 0x1d, 0x0f, 0xe1, 0xd0, 0x15, - 0x35, 0xef, 0x8c, 0xf1, 0x4d, 0xf9, 0xb4, 0x1a, 0x57, 0xba, 0x4f, 0xeb, - 0x7a, 0x7c, 0x58, 0xe1, 0x86, 0xff, 0xb4, 0x8e, 0x0a, 0xe4, 0x43, 0x25, - 0xae, 0x87, 0xc7, 0x5c, 0xf7, 0xf3, 0x1b, 0xee, 0x3a, 0x11, 0xc0, 0xe0, - 0x13, 0x8c, 0x39, 0x73, 0x45, 0x11, 0x0a, 0x60, 0xcf, 0x37, 0xc8, 0xb4, - 0x4b, 0xd1, 0xed, 0xe4, 0x8a, 0xda, 0x12, 0xcd, 0x27, 0x47, 0xd5, 0xf2, - 0x2f, 0xe2, 0x96, 0xcb, 0xb4, 0xe6, 0x7e, 0x15, 0x27, 0x77, 0xf2, 0x69, - 0x3d, 0x5c, 0x64, 0x15, 0xe7, 0x2c, 0x66, 0xc6, 0x50, 0xb5, 0x6c, 0xbd, - 0xc0, 0x4b, 0x08, 0x4f, 0x16, 0x7e, 0xc1, 0xf3, 0x61, 0x28, 0x32, 0x6a, - 0x29, 0xd7, 0x2a, 0x0c, 0x25, 0x42, 0x8f, 0xb9, 0x56, 0xff, 0x4f, 0x0c, - 0xad, 0x17, 0xad, 0x19, 0x56, 0xe4, 0x39, 0x5c, 0x6e, 0xd2, 0x7d, 0xfa, - 0xfe, 0xbd, 0x3e, 0x38, 0xb9, 0x6c, 0x26, 0xd7, 0x38, 0x09, 0x75, 0xe7, - 0x43, 0x88, 0x5e, 0x9d, 0x35, 0xcd, 0x38, 0x59, 0x4c, 0x2b, 0x02, 0xe8, - 0x7e, 0x36, 0x89, 0x72, 0x98, 0x6f, 0x6c, 0x5a, 0xce, 0x69, 0x97, 0x79, - 0xcb, 0x92, 0x9d, 0xa5, 0x62, 0x70, 0xb4, 0xc9, 0x5e, 0x9c, 0x61, 0xe5, - 0x91, 0x53, 0x77, 0x3e, 0x84, 0x89, 0x1b, 0x44, 0xc9, 0xfb, 0xb3, 0x85, - 0x17, 0x3f, 0x16, 0x58, 0x9a, 0x4f, 0x5b, 0xbc, 0xdc, 0x20, 0xcb, 0x1d, - 0xe7, 0x2c, 0xe4, 0x9b, 0x27, 0x9f, 0x66, 0xcc, 0x2a, 0xde, 0x1e, 0x99, - 0xd6, 0xca, 0x3e, 0x3e, 0xb5, 0x77, 0xe4, 0x16, 0x4d, 0x6b, 0xd9, 0x4c, - 0xbb, 0xdf, 0x91, 0xfd, 0x22, 0xf8, 0x49, 0x8f, 0xbb, 0x6e, 0x38, 0xaf, - 0x62, 0x3a, 0x9a, 0xbd, 0x23, 0x28, 0xf2, 0x1e, 0x8c, 0xef, 0xd6, 0xb7, - 0x9e, 0xe3, 0x5b, 0x74, 0x9f, 0x3e, 0xf9, 0x3c, 0x63, 0xa1, 0x7f, 0x7f, - 0x95, 0xf5, 0x88, 0xb0, 0x8c, 0x32, 0x04, 0x26, 0xc3, 0xb0, 0xff, 0x56, - 0xc5, 0xe4, 0x8d, 0x7b, 0x59, 0xfa, 0xaf, 0x37, 0xfe, 0xe3, 0xf9, 0x4d, - 0xcc, 0xfd, 0xd1, 0x35, 0x8a, 0xa4, 0x28, 0x9d, 0x2f, 0x0e, 0xc7, 0xd6, - 0x5b, 0x7f, 0x3e, 0x9e, 0xaf, 0x2c, 0xaa, 0x28, 0x5a, 0x7e, 0x0a, 0xdd, - 0x35, 0x9e, 0x9c, 0x6f, 0x78, 0x4e, 0xa6, 0xcd, 0x21, 0xaf, 0xef, 0x4a, - 0x08, 0x7d, 0xbc, 0x04, 0xc4, 0xc3, 0x28, 0x94, 0x7b, 0xd1, 0x51, 0xe3, - 0x01, 0xef, 0xb4, 0x43, 0x7c, 0x7c, 0xb2, 0xca, 0xd2, 0xeb, 0x22, 0x6f, - 0xf6, 0xb1, 0x25, 0x87, 0x88, 0xc8, 0x74, 0xea, 0x94, 0x49, 0xa5, 0x24, - 0x43, 0x09, 0x32, 0xc6, 0xce, 0x01, 0xe8, 0x1d, 0x21, 0xea, 0x8b, 0x21, - 0xef, 0x78, 0x2c, 0xad, 0xaf, 0xfe, 0xac, 0x1e, 0xa9, 0xdc, 0x84, 0xcc, - 0xfb, 0xba, 0xa2, 0x12, 0xc2, 0x1f, 0xcd, 0x52, 0xcf, 0x6e, 0x3b, 0xaa, - 0x39, 0x00, 0x79, 0x56, 0xe7, 0xd2, 0x23, 0x22, 0x9b, 0x06, 0xd4, 0x0f, - 0x8d, 0x62, 0x3a, 0x66, 0xcf, 0x1a, 0x47, 0x11, 0x2a, 0x82, 0x0d, 0x1e, - 0x04, 0x33, 0xea, 0x35, 0x3f, 0xd2, 0xb7, 0x60, 0x4d, 0x3b, 0x5a, 0x19, - 0xed, 0xa7, 0x72, 0x2e, 0x6c, 0x39, 0xfa, 0x5d, 0xf3, 0xe2, 0x26, 0x96, - 0x98, 0x23, 0x92, 0xfe, 0xc0, 0x41, 0x51, 0xcc, 0x79, 0xdd, 0x5a, 0x5c, - 0xc6, 0x21, 0x45, 0x82, 0xfb, 0xa3, 0x59, 0x0a, 0xff, 0x34, 0x9d, 0x9c, - 0x64, 0x3a, 0x61, 0xc6, 0x4f, 0xfa, 0xc1, 0xc9, 0xc0, 0x63, 0xca, 0x2e, - 0x12, 0xe9, 0xa8, 0xf5, 0x47, 0x8d, 0xb9, 0x4a, 0xa9, 0xe7, 0x21, 0x70, - 0x36, 0x09, 0x53, 0x6f, 0xf2, 0x45, 0x67, 0x0d, 0xb5, 0x1d, 0xbb, 0x47, - 0xa5, 0xe8, 0x5f, 0x0c, 0xa6, 0xb2, 0xca, 0xb6, 0x2d, 0xc9, 0x8a, 0x3b, - 0xe1, 0x5e, 0x84, 0x77, 0xe7, 0x56, 0x43, 0xaf, 0xcc, 0xf3, 0x23, 0xdc, - 0x4e, 0x0f, 0x5a, 0x5e, 0x2f, 0x2f, 0xab, 0x2c, 0xfa, 0xd9, 0x3d, 0x6a, - 0xbd, 0x88, 0x82, 0xfa, 0x2c, 0x65, 0x3c, 0xe1, 0x37, 0xa3, 0x98, 0xd6, - 0xaa, 0x73, 0xd6, 0x73, 0x3b, 0x55, 0xd8, 0x85, 0x1a, 0x9d, 0xd1, 0xf9, - 0x6a, 0x20, 0x3e, 0x85, 0xb0, 0xea, 0x80, 0x96, 0x54, 0xf2, 0xfe, 0x66, - 0x86, 0xdb, 0xa9, 0x22, 0xfc, 0xd3, 0xf4, 0xb9, 0xc1, 0xae, 0x47, 0x44, - 0x5d, 0x5f, 0x00, 0x81, 0x8b, 0xd6, 0xcf, 0x91, 0xb3, 0xc9, 0x18, 0xdf, - 0xe7, 0xc3, 0xe4, 0xd3, 0x25, 0x9c, 0xc1, 0x76, 0x83, 0xa8, 0xef, 0x4a, - 0x61, 0x79, 0xa6, 0xf3, 0x69, 0x83, 0x8c, 0xb1, 0xf1, 0x7d, 0xa5, 0x7f, - 0xc3, 0xd5, 0x19, 0x99, 0xb2, 0xb2, 0xcd, 0x9c, 0xa5, 0x2f, 0x87, 0xaf, - 0x94, 0x0b, 0x7b, 0x76, 0x0b, 0x25, 0xa5, 0xb9, 0x75, 0xd4, 0x24, 0x4a, - 0xf6, 0xcd, 0xf3, 0xe1, 0x09, 0xf7, 0xa2, 0x21, 0xdf, 0x5d, 0xe3, 0x31, - 0x5d, 0xef, 0x78, 0xc9, 0xec, 0xd3, 0x76, 0xbf, 0x92, 0xae, 0x27, 0x39, - 0xec, 0x65, 0xfb, 0x94, 0xae, 0xe7, 0x37, 0xb1, 0x85, 0x7d, 0x02, 0x44, - 0xd1, 0x93, 0xa5, 0x8f, 0xc8, 0x5b, 0x7f, 0x46, 0x1f, 0x64, 0xfa, 0x94, - 0xdb, 0xbf, 0x57, 0xc0, 0x7e, 0x8b, 0x7a, 0x80, 0x8c, 0x48, 0x52, 0xc0, - 0x70, 0x64, 0xcc, 0xd8, 0x99, 0xea, 0x8a, 0x56, 0x20, 0x32, 0x1d, 0x86, - 0x02, 0xeb, 0x13, 0xde, 0x4f, 0xb8, 0xbd, 0x18, 0xdf, 0x27, 0xe0, 0xd4, - 0xeb, 0xbb, 0x4c, 0x3b, 0x54, 0x81, 0xff, 0x5d, 0xd4, 0x0d, 0xd6, 0x72, - 0xed, 0xa1, 0x22, 0xf1, 0x8b, 0xd2, 0x0c, 0x56, 0x04, 0x50, 0xfb, 0x22, - 0x63, 0x33, 0x6f, 0x5b, 0xfb, 0xf6, 0x1a, 0xa7, 0x6f, 0x05, 0xd7, 0x3c, - 0x24, 0xb2, 0x3c, 0x9f, 0x36, 0x9f, 0xc5, 0x5b, 0xa2, 0x4d, 0xc2, 0xf8, - 0x8f, 0x39, 0xd4, 0x0a, 0xf6, 0x82, 0x06, 0x5b, 0xea, 0xd9, 0x5e, 0xfb, - 0xc5, 0x04, 0xda, 0xf7, 0x94, 0x7e, 0x9a, 0x61, 0x66, 0xde, 0x6b, 0x2a, - 0xaf, 0xb5, 0x1c, 0xb4, 0x72, 0x49, 0x9a, 0x1f, 0x11, 0x15, 0xca, 0xa7, - 0x8d, 0x7d, 0x5d, 0x5e, 0x3e, 0xa9, 0x15, 0x96, 0x9b, 0x9f, 0xeb, 0x27, - 0xa2, 0x81, 0xdb, 0x2a, 0x54, 0x9b, 0x60, 0xe4, 0xa7, 0xaa, 0xda, 0x84, - 0x25, 0x13, 0x8b, 0xbc, 0x0a, 0xce, 0x26, 0xc2, 0x5e, 0x11, 0x85, 0xf8, - 0x42, 0x2d, 0x44, 0xc4, 0x50, 0xbf, 0xd9, 0x91, 0xf3, 0x10, 0xb8, 0xe8, - 0x67, 0xf7, 0x28, 0xa8, 0x70, 0x50, 0xe2, 0x61, 0x68, 0xc9, 0x34, 0x83, - 0xef, 0xe7, 0xb5, 0x65, 0xe7, 0xf1, 0xfa, 0x89, 0xa8, 0xf7, 0xa6, 0x8a, - 0x50, 0x94, 0x03, 0xa0, 0x20, 0x32, 0x2d, 0xc0, 0xc9, 0x4d, 0x41, 0xe0, - 0x6a, 0x31, 0xb0, 0xd7, 0x96, 0xe3, 0x7c, 0xda, 0x47, 0x44, 0xd2, 0xef, - 0x12, 0x59, 0x3e, 0x46, 0x5e, 0x7c, 0xae, 0x16, 0xe3, 0x2f, 0x38, 0x50, - 0x9b, 0x3e, 0xaa, 0x29, 0xab, 0x9c, 0x9a, 0x04, 0x0e, 0xdf, 0x2e, 0xfe, - 0x7c, 0xda, 0x52, 0x4e, 0x4b, 0x5c, 0xc3, 0x6f, 0x0f, 0xe6, 0x3c, 0x09, - 0xdc, 0xf5, 0x88, 0xa8, 0xee, 0x7c, 0xa2, 0xe4, 0xdf, 0x5a, 0xf0, 0x3e, - 0x97, 0xc0, 0x85, 0x1f, 0x49, 0xa6, 0x74, 0xc6, 0xc5, 0x45, 0xa0, 0xee, - 0xe2, 0x04, 0x94, 0x2f, 0x1d, 0x45, 0xcb, 0x69, 0x74, 0xc5, 0x10, 0xfa, - 0x71, 0xed, 0xaa, 0x3f, 0xe8, 0x78, 0x0d, 0xff, 0xf6, 0x58, 0xf0, 0x77, - 0xc4, 0x92, 0x37, 0x88, 0x0e, 0x5d, 0x29, 0xfc, 0x25, 0xc1, 0x4a, 0xe2, - 0x7e, 0x47, 0x79, 0x2e, 0xc1, 0x1a, 0x7e, 0x3b, 0xb0, 0xa8, 0xdf, 0x11, - 0x73, 0xdd, 0xd7, 0x8f, 0x01, 0xd5, 0x92, 0x2b, 0xb7, 0x1a, 0xcf, 0x15, - 0x25, 0xe8, 0xd9, 0x5d, 0xdc, 0x39, 0xb4, 0x6b, 0xf8, 0xed, 0xc5, 0xa2, - 0x7e, 0x47, 0x2c, 0x95, 0xe0, 0xeb, 0x76, 0xaa, 0x2b, 0xba, 0x2a, 0xcf, - 0x44, 0x77, 0x8d, 0x07, 0x89, 0x37, 0x85, 0x35, 0x83, 0x5d, 0xc3, 0x82, - 0x58, 0xf2, 0x6f, 0xe3, 0x26, 0xef, 0xcf, 0xd2, 0x91, 0x08, 0xf4, 0x00, - 0xfa, 0x0a, 0x30, 0xac, 0xdb, 0xa9, 0x62, 0xb4, 0xa9, 0xf8, 0x8d, 0x83, - 0x35, 0x5c, 0xc3, 0xb2, 0x7e, 0x1b, 0x57, 0x81, 0x1e, 0x96, 0xe8, 0xfc, - 0x3d, 0x10, 0xd2, 0x62, 0xfa, 0xd6, 0x5d, 0x09, 0x3e, 0xab, 0x33, 0x39, - 0x85, 0x6e, 0x77, 0x3d, 0x5a, 0x9c, 0x30, 0x9d, 0xd0, 0xb2, 0x86, 0x6b, - 0x58, 0x0c, 0x2e, 0xeb, 0x57, 0xc8, 0x33, 0x0d, 0x78, 0xe0, 0xb6, 0x0a, - 0xce, 0x26, 0xa0, 0xef, 0xcf, 0x13, 0x48, 0x2c, 0xba, 0x4c, 0x77, 0xa4, - 0x76, 0x60, 0x1a, 0x9f, 0xad, 0x86, 0xdd, 0xb6, 0x72, 0xf1, 0xcb, 0x35, - 0xfc, 0x76, 0xe2, 0xff, 0x03, 0xde, 0x04, 0x04, 0x87, 0x73, 0x68, 0xe8, - 0x5c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, - 0x82 + 0x75, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0xed, 0x5d, 0x7f, 0x6c, 0x53, + 0xd7, 0xbd, 0xff, 0x1c, 0xd4, 0x21, 0x07, 0xa5, 0xd5, 0x75, 0x45, 0xa7, + 0xeb, 0x48, 0xab, 0x6c, 0x34, 0xd0, 0x9c, 0xae, 0x68, 0x36, 0x65, 0x5a, + 0x9c, 0xb5, 0xaa, 0x6f, 0xd5, 0x6a, 0x38, 0xa4, 0x1a, 0x71, 0xfb, 0x24, + 0x92, 0x6c, 0x15, 0xb9, 0x40, 0xd5, 0x25, 0xdd, 0xb4, 0x97, 0xb0, 0xe9, + 0x75, 0x09, 0x15, 0x25, 0xdd, 0xf4, 0x0a, 0x2e, 0x6a, 0x9b, 0xac, 0x1a, + 0xe0, 0x20, 0xba, 0x38, 0x48, 0x0f, 0x0c, 0x4f, 0x90, 0x84, 0x27, 0xaa, + 0x5e, 0x57, 0xf4, 0xc5, 0x79, 0x2a, 0x2f, 0xf6, 0x44, 0x37, 0xbb, 0x2a, + 0x15, 0xb6, 0x60, 0xc2, 0x16, 0x45, 0xb1, 0x45, 0x23, 0x62, 0x45, 0x93, + 0xbe, 0xef, 0x8f, 0x1b, 0x5f, 0xfb, 0xda, 0xd7, 0x3f, 0xae, 0x03, 0x23, + 0x4f, 0xcd, 0xf9, 0xe7, 0x43, 0xb8, 0xe7, 0x7c, 0xcf, 0xf7, 0x9c, 0xfb, + 0x3d, 0x9f, 0xf3, 0x3d, 0xdf, 0x73, 0xee, 0x31, 0xae, 0x02, 0x38, 0x0a, + 0xe0, 0x6e, 0x21, 0x11, 0x11, 0x5d, 0x23, 0x22, 0x22, 0x9a, 0x5a, 0x44, + 0x5a, 0x20, 0xba, 0xdb, 0xf5, 0xac, 0xe0, 0x37, 0x17, 0xd9, 0x51, 0x00, + 0x02, 0x00, 0xa9, 0x06, 0x14, 0x89, 0x68, 0xe2, 0x4a, 0x02, 0x80, 0x09, + 0x03, 0x01, 0x09, 0xe1, 0xa4, 0xad, 0x6c, 0x09, 0xa7, 0xd9, 0x0d, 0xbb, + 0x29, 0x84, 0xfd, 0x4f, 0xdb, 0x31, 0xb6, 0x9a, 0xb1, 0x5a, 0xeb, 0x5d, + 0xc1, 0x6f, 0x36, 0xb2, 0xab, 0x35, 0x14, 0x9c, 0xbf, 0x49, 0x14, 0x4e, + 0x02, 0x3d, 0xe7, 0xfd, 0x48, 0xf3, 0x02, 0x10, 0x97, 0x00, 0xb3, 0x3e, + 0xe4, 0xac, 0x02, 0xda, 0x0c, 0x46, 0x78, 0x5b, 0x01, 0x2f, 0x5b, 0x31, + 0xe0, 0x15, 0xac, 0x1e, 0x75, 0x31, 0xad, 0x48, 0x44, 0xc2, 0x07, 0x12, + 0x02, 0xf1, 0xf2, 0x8c, 0xaa, 0x17, 0x9d, 0x66, 0x37, 0x7c, 0xdb, 0xe6, + 0x91, 0x79, 0x68, 0x0d, 0xbb, 0xdf, 0x1d, 0xb2, 0x82, 0xcb, 0x1f, 0x57, + 0x55, 0x93, 0xd1, 0xb2, 0x40, 0xc4, 0x7f, 0x41, 0xc4, 0xde, 0xf0, 0x23, + 0x80, 0x45, 0x83, 0x35, 0x0b, 0x77, 0x0d, 0x03, 0x71, 0x3f, 0x1a, 0xce, + 0x64, 0xe0, 0xbb, 0xf8, 0x37, 0xba, 0xdf, 0x1d, 0xb2, 0x82, 0xcb, 0x1f, + 0x2b, 0x32, 0xed, 0xfc, 0xcd, 0x59, 0xea, 0x3c, 0x63, 0x44, 0x38, 0xe9, + 0xff, 0xa7, 0xa8, 0x64, 0xe3, 0xc3, 0x08, 0xed, 0x16, 0x56, 0x5c, 0x86, + 0x15, 0x2c, 0x89, 0x65, 0x99, 0xd6, 0x72, 0x93, 0xa8, 0xf9, 0x63, 0xc8, + 0x06, 0x6b, 0x5e, 0x7c, 0x72, 0x8f, 0x31, 0x6c, 0xb0, 0xc1, 0xf8, 0x96, + 0x1f, 0x22, 0x11, 0x2d, 0x87, 0x0e, 0x5a, 0xc1, 0xe5, 0x87, 0x25, 0x99, + 0x76, 0xfe, 0xe6, 0x2c, 0x35, 0x1f, 0x03, 0xd2, 0x19, 0x9d, 0x22, 0xd7, + 0x06, 0x81, 0x07, 0x5a, 0x94, 0xbf, 0x5d, 0x8f, 0x84, 0x30, 0xfa, 0x13, + 0x3b, 0xa4, 0x78, 0x02, 0x06, 0x83, 0x09, 0x5b, 0xff, 0x5c, 0x1d, 0x63, + 0x73, 0x06, 0x09, 0xa9, 0xdf, 0xb8, 0x97, 0xc4, 0xb8, 0x22, 0x11, 0x0d, + 0x1f, 0xf6, 0x22, 0xf4, 0xbf, 0x41, 0x14, 0x26, 0xeb, 0xf7, 0xac, 0xe8, + 0x7e, 0xb6, 0x1b, 0xe9, 0xb5, 0x69, 0x64, 0x1a, 0x1a, 0xfe, 0x5f, 0xf8, + 0xd2, 0x22, 0x11, 0x4d, 0x9c, 0x9b, 0x40, 0xcb, 0x8f, 0x5b, 0xe0, 0x7d, + 0xf8, 0xee, 0xcc, 0x44, 0xfc, 0xed, 0x3b, 0x34, 0x7c, 0x64, 0x18, 0xd1, + 0xcf, 0xa3, 0x88, 0x5e, 0x89, 0xc1, 0xba, 0xde, 0x82, 0xa1, 0x57, 0x87, + 0x30, 0xb6, 0x71, 0x8d, 0x6e, 0xf9, 0xf7, 0x42, 0x3f, 0x2d, 0xd4, 0x8c, + 0x1e, 0x58, 0x6e, 0x12, 0x19, 0x3f, 0x4e, 0x21, 0x1d, 0x95, 0xaa, 0x8b, + 0x06, 0x24, 0x25, 0xcc, 0xfc, 0xcc, 0x0d, 0x7b, 0x3d, 0x80, 0x07, 0x8b, + 0xec, 0x43, 0x49, 0xc1, 0x18, 0xd0, 0xfc, 0x49, 0xaa, 0xea, 0x28, 0x03, + 0x97, 0xac, 0xcd, 0x70, 0x2d, 0xb7, 0x89, 0xa4, 0x33, 0x41, 0xf4, 0xbc, + 0xd7, 0x03, 0x27, 0x04, 0x04, 0x20, 0x29, 0x3a, 0x68, 0xfd, 0x6d, 0x6c, + 0xe5, 0x30, 0xb8, 0xb7, 0x7f, 0xd9, 0xbb, 0x24, 0xde, 0x7d, 0xfb, 0x29, + 0x75, 0x2e, 0x8d, 0x00, 0x24, 0x44, 0x2e, 0x84, 0xee, 0x8a, 0x61, 0x18, + 0xde, 0x1c, 0xa5, 0x37, 0xcf, 0x78, 0x54, 0xfd, 0x01, 0x27, 0xd0, 0x77, + 0xc0, 0xa3, 0x7b, 0x20, 0xdf, 0x0b, 0xfd, 0xb4, 0xb0, 0x88, 0x69, 0xf9, + 0x05, 0xa2, 0x86, 0x43, 0x29, 0x5d, 0x0c, 0x3b, 0xbb, 0xc7, 0x0d, 0x63, + 0x1d, 0xca, 0x26, 0xf1, 0x7c, 0x08, 0x23, 0x97, 0x2c, 0xba, 0x55, 0xac, + 0x85, 0x71, 0x83, 0xbb, 0xba, 0x68, 0x3a, 0x1c, 0x56, 0xea, 0xe6, 0x79, + 0x13, 0xdc, 0xad, 0x6d, 0xe8, 0xde, 0x22, 0xc2, 0xf7, 0x89, 0x0f, 0xd6, + 0xa4, 0x15, 0x7d, 0x81, 0x01, 0x24, 0x93, 0x09, 0x25, 0xcf, 0xe8, 0xe1, + 0xa3, 0x30, 0xda, 0x37, 0x2d, 0x6b, 0xc6, 0x15, 0x89, 0xc8, 0x37, 0xe6, + 0x43, 0xc7, 0x93, 0x1d, 0xf0, 0x3e, 0xba, 0x74, 0x83, 0x10, 0xaf, 0x11, + 0x35, 0xb6, 0xd9, 0x55, 0xef, 0xa9, 0xc9, 0x66, 0x83, 0xf7, 0xb0, 0xb7, + 0xa6, 0x01, 0x7c, 0xb7, 0xf5, 0xab, 0x9a, 0x69, 0x7d, 0x17, 0x89, 0x02, + 0x01, 0x7f, 0xf5, 0x71, 0xd7, 0xcd, 0x2e, 0xd0, 0x96, 0xf2, 0x16, 0x6b, + 0x1f, 0x0b, 0x22, 0xfc, 0x0f, 0x6b, 0x4d, 0xf1, 0x5c, 0x98, 0x05, 0x38, + 0x11, 0x86, 0xf7, 0xa5, 0x67, 0xaa, 0x32, 0x28, 0x71, 0x81, 0xa8, 0xd1, + 0x61, 0x57, 0x18, 0x75, 0xff, 0x8e, 0xfd, 0x48, 0x77, 0x6f, 0xd5, 0xec, + 0x40, 0xcb, 0x17, 0x44, 0x89, 0x5b, 0x09, 0x84, 0x6e, 0x85, 0xd0, 0xf8, + 0xfc, 0xd6, 0x92, 0xf2, 0x2d, 0x5f, 0x10, 0x61, 0xfd, 0xd2, 0xe2, 0xc9, + 0x22, 0x11, 0x95, 0x2b, 0x2f, 0xce, 0x12, 0xd5, 0xca, 0x4c, 0x96, 0x1b, + 0x44, 0x30, 0x40, 0x17, 0xb3, 0x89, 0x0b, 0x44, 0x8e, 0xe7, 0x04, 0xa4, + 0xe7, 0xd2, 0x00, 0x72, 0x33, 0xd0, 0xe8, 0x6b, 0x47, 0x11, 0x6e, 0xdb, + 0x54, 0xb2, 0xbf, 0x62, 0x1b, 0x98, 0xee, 0x81, 0xad, 0x57, 0x3f, 0xcb, + 0x0d, 0x22, 0x98, 0x4a, 0xf7, 0xb7, 0x8a, 0x69, 0x9b, 0x6e, 0x12, 0x3d, + 0xf6, 0xbe, 0xbe, 0x28, 0x41, 0xd7, 0xe6, 0x18, 0xbc, 0x5b, 0xd4, 0xa3, + 0x35, 0x3f, 0xd5, 0xca, 0xb0, 0x85, 0x38, 0xba, 0x2d, 0x0d, 0xc7, 0xc6, + 0x75, 0x15, 0x3b, 0x2c, 0x15, 0x9a, 0xa1, 0xce, 0xdd, 0x3b, 0x95, 0xfa, + 0x9d, 0x4e, 0x41, 0xf7, 0x54, 0x27, 0x5e, 0x23, 0x72, 0xff, 0xb6, 0x03, + 0xd1, 0x2b, 0x51, 0xcd, 0x36, 0x39, 0x9d, 0x02, 0xfa, 0x76, 0x75, 0x03, + 0x1b, 0xd6, 0xb1, 0x8e, 0xa7, 0x9d, 0x94, 0x9e, 0x4b, 0x83, 0xab, 0xe7, + 0x10, 0xfc, 0x40, 0x2a, 0x62, 0x98, 0xd8, 0xc5, 0x29, 0xea, 0xdf, 0xdb, + 0x8f, 0xf4, 0x5c, 0x1a, 0xd6, 0xf5, 0x56, 0xb8, 0x4e, 0x8c, 0xb1, 0xac, + 0x9e, 0xde, 0x13, 0x09, 0x84, 0x2f, 0x79, 0x14, 0xc3, 0xc9, 0x26, 0xeb, + 0x7a, 0x2b, 0x9a, 0x9e, 0xb0, 0xa1, 0xef, 0x5f, 0xfb, 0x54, 0x2f, 0xce, + 0xe6, 0x99, 0xa1, 0xce, 0x13, 0x72, 0xdb, 0x86, 0xde, 0x1e, 0x82, 0xe5, + 0xa9, 0x66, 0x36, 0xf9, 0xa7, 0xa3, 0x34, 0x7c, 0x64, 0x58, 0x29, 0xcb, + 0xf3, 0x26, 0x65, 0x06, 0xf9, 0xe8, 0xd7, 0x13, 0x98, 0xec, 0x68, 0xd0, + 0x7c, 0xf1, 0x59, 0xbd, 0xb5, 0xd2, 0xcc, 0xc8, 0x14, 0xc6, 0x36, 0xae, + 0x61, 0xed, 0x97, 0xef, 0x50, 0xcb, 0x6b, 0x2f, 0xa8, 0x66, 0xa4, 0x6c, + 0xe2, 0xea, 0x39, 0x0c, 0x3a, 0x07, 0x61, 0xdd, 0x65, 0x51, 0xd6, 0x04, + 0xd5, 0xe8, 0xc7, 0xd5, 0x73, 0x4a, 0x7b, 0xb3, 0xfa, 0x65, 0xd7, 0x1e, + 0xfe, 0x73, 0xa7, 0x8b, 0xea, 0xe2, 0x79, 0x13, 0x86, 0x5a, 0x87, 0x60, + 0xd9, 0xce, 0x23, 0xb9, 0x18, 0xc7, 0x57, 0xa2, 0x07, 0x22, 0x11, 0x35, + 0x1f, 0xd3, 0x1f, 0x25, 0x10, 0xcc, 0xa5, 0x0d, 0x36, 0x18, 0x03, 0x46, + 0xbe, 0xb2, 0xe8, 0x92, 0x57, 0x0a, 0x7b, 0x3e, 0xe7, 0x60, 0x59, 0xa0, + 0x8a, 0x71, 0x5c, 0xbb, 0xad, 0x40, 0x9f, 0x00, 0x20, 0x6e, 0x75, 0x91, + 0xed, 0xf4, 0x0c, 0xc5, 0x2e, 0x4e, 0x91, 0x38, 0x5b, 0x39, 0x2a, 0xd1, + 0xd8, 0x66, 0x47, 0xf4, 0x4a, 0x14, 0x5c, 0x3d, 0x87, 0x99, 0x91, 0x29, + 0x44, 0xc6, 0x42, 0x88, 0x5c, 0x08, 0xc1, 0xe9, 0x14, 0x64, 0x46, 0x0a, + 0x48, 0xe8, 0xd8, 0x2d, 0xc2, 0x72, 0x9b, 0x48, 0x80, 0x00, 0x00, 0x48, + 0xcf, 0xa5, 0x21, 0xfc, 0xa2, 0xa5, 0x48, 0x5e, 0xf0, 0xad, 0xa0, 0xf2, + 0x92, 0x52, 0x5f, 0xa7, 0x21, 0x00, 0xf0, 0x7b, 0x0e, 0x50, 0xe7, 0xee, + 0x9d, 0x08, 0x04, 0x06, 0x60, 0x9b, 0xb3, 0x83, 0xe7, 0x4d, 0xf8, 0xdd, + 0xb6, 0x5e, 0x34, 0xd9, 0x6c, 0x68, 0xab, 0x6f, 0x43, 0xf4, 0x4a, 0x14, + 0x23, 0x27, 0xc6, 0xd0, 0xb8, 0xd9, 0x8e, 0xf6, 0xcb, 0x77, 0x14, 0x7d, + 0x3b, 0x4f, 0xec, 0x94, 0x7d, 0x4e, 0x00, 0x7c, 0xc6, 0x04, 0x09, 0x00, + 0x77, 0xcb, 0xa0, 0x6a, 0xae, 0x35, 0x69, 0x55, 0xfe, 0x3d, 0xfc, 0xa5, + 0xb7, 0x64, 0x3b, 0xfd, 0xbf, 0xf7, 0x01, 0x80, 0x22, 0x2f, 0x9b, 0xf6, + 0xef, 0xd8, 0x8f, 0x3a, 0x73, 0x1d, 0x04, 0x00, 0x9b, 0xba, 0x9a, 0x61, + 0x4d, 0x5a, 0xc1, 0xf3, 0x26, 0xcc, 0x8c, 0x4c, 0x61, 0xf4, 0xf0, 0x51, + 0xa5, 0x1f, 0xd2, 0x73, 0x69, 0xf4, 0x9c, 0xeb, 0x81, 0x77, 0xb7, 0x0f, + 0x7a, 0xf4, 0xb3, 0xcd, 0xe5, 0xde, 0xcf, 0xf0, 0x97, 0x5e, 0x99, 0xf1, + 0x9d, 0x02, 0x86, 0x8f, 0x0c, 0x23, 0x99, 0x4c, 0xa0, 0x9d, 0x6f, 0x47, + 0x5b, 0x6b, 0x1b, 0x46, 0x5f, 0x3b, 0x0a, 0xeb, 0x7a, 0x2b, 0xac, 0x49, + 0x2b, 0x5e, 0x38, 0xe2, 0xc6, 0x33, 0xcf, 0xb7, 0xc0, 0xf2, 0x85, 0xfc, + 0xfe, 0x15, 0xa6, 0x1d, 0x3c, 0x3b, 0x43, 0x23, 0xe1, 0x1a, 0x18, 0x91, + 0x0f, 0x83, 0x76, 0xab, 0x1b, 0x9e, 0x4d, 0x62, 0x14, 0x18, 0x39, 0x79, + 0xf7, 0xe2, 0xbb, 0xfb, 0x77, 0xb8, 0x61, 0xaa, 0xc2, 0x57, 0x6a, 0xbf, + 0x7c, 0x87, 0x36, 0x75, 0x35, 0x6b, 0xea, 0x94, 0x4d, 0x5c, 0x3d, 0x07, + 0xeb, 0x7a, 0x0b, 0x84, 0xa7, 0x05, 0x74, 0xb4, 0x77, 0xa8, 0x18, 0x4d, + 0x5c, 0x20, 0x0a, 0xfd, 0x35, 0xa4, 0xe9, 0xe3, 0xb6, 0x3c, 0x61, 0xa3, + 0xac, 0x8c, 0xc8, 0x85, 0x10, 0x86, 0x4f, 0x7a, 0x91, 0xcf, 0x24, 0x1f, + 0x9d, 0x9d, 0x50, 0x98, 0x27, 0xeb, 0xaa, 0x64, 0xd3, 0xcc, 0xc8, 0x14, + 0xa4, 0xb8, 0x84, 0x3d, 0x6f, 0x0c, 0x28, 0x3a, 0x74, 0xef, 0x12, 0xe1, + 0xe8, 0xe8, 0x54, 0xd5, 0xe3, 0xf2, 0xdd, 0xa0, 0x67, 0x0e, 0xb5, 0x28, + 0xe5, 0x22, 0xa7, 0x43, 0xf0, 0x3e, 0xca, 0x98, 0x27, 0xaf, 0xee, 0xee, + 0x5d, 0xdd, 0x70, 0xbd, 0xbc, 0x93, 0x0d, 0x16, 0xf8, 0xef, 0x80, 0xcc, + 0xd4, 0x5d, 0xdb, 0xdb, 0xd1, 0xf8, 0xfc, 0x56, 0x16, 0xf4, 0x8d, 0x52, + 0xf0, 0x2f, 0x1c, 0x32, 0xe9, 0xd3, 0x00, 0x00, 0xfb, 0x13, 0x0e, 0x74, + 0xef, 0x16, 0xe1, 0x65, 0x8c, 0x15, 0xd6, 0xd3, 0xd6, 0xda, 0x06, 0xcb, + 0xeb, 0x03, 0x15, 0xfb, 0x41, 0x24, 0xa2, 0xc6, 0xcd, 0xb9, 0x76, 0x65, + 0x17, 0x5d, 0x7a, 0xf5, 0x6b, 0x69, 0x6d, 0x81, 0xb8, 0x5b, 0x44, 0xf6, + 0xb9, 0xd3, 0x29, 0xc0, 0x7e, 0xc0, 0xa3, 0x7a, 0xbf, 0xde, 0x7d, 0xfb, + 0xe9, 0xf4, 0x39, 0x59, 0xf7, 0x26, 0x9b, 0x0d, 0x8e, 0x23, 0x23, 0x6c, + 0x95, 0x00, 0x79, 0xc7, 0xeb, 0x74, 0xa6, 0x46, 0x46, 0x34, 0xd8, 0x10, + 0xf9, 0xaa, 0xc8, 0x26, 0x00, 0x00, 0xde, 0xb5, 0xb8, 0xab, 0x71, 0x5c, + 0xcf, 0x89, 0xea, 0xe2, 0xb7, 0x63, 0x1b, 0xd7, 0xb0, 0xc8, 0xa5, 0x10, + 0xba, 0xb6, 0xb7, 0xa3, 0xfb, 0xd9, 0x6e, 0xb9, 0x43, 0x0a, 0x18, 0xc5, + 0x36, 0x67, 0xc7, 0x74, 0x38, 0x8c, 0x37, 0x0f, 0x79, 0xd0, 0xb8, 0xd9, + 0x8e, 0xa6, 0x0b, 0x57, 0x15, 0xb9, 0xde, 0xd5, 0x8c, 0xe5, 0xbf, 0xa8, + 0x54, 0x68, 0x86, 0x5c, 0xc1, 0x1b, 0x24, 0x6e, 0x75, 0x29, 0x2f, 0xc5, + 0x09, 0x01, 0x88, 0x03, 0xdd, 0xbb, 0x45, 0x70, 0xf5, 0x9c, 0x22, 0x3f, + 0xf5, 0xd7, 0x8c, 0xa2, 0x47, 0xff, 0x1f, 0x06, 0x95, 0xfa, 0xda, 0xf9, + 0x76, 0x8c, 0x6d, 0x5c, 0xc3, 0x3c, 0x87, 0xa3, 0x4a, 0x79, 0x2d, 0x83, + 0x15, 0x00, 0x4c, 0x76, 0x34, 0xb0, 0xa1, 0x57, 0x87, 0x94, 0xb2, 0xdd, + 0xef, 0xf5, 0x15, 0x68, 0x0f, 0x38, 0x2d, 0x82, 0x9c, 0xdf, 0x2c, 0xa8, + 0xda, 0x77, 0xea, 0xf7, 0x7e, 0xb8, 0x4e, 0x8c, 0xb1, 0xac, 0x8f, 0xfe, + 0xe6, 0x21, 0x0f, 0x02, 0x81, 0x01, 0x18, 0xc2, 0x46, 0x4c, 0x87, 0xc3, + 0x18, 0x3e, 0x32, 0x0c, 0xdf, 0x98, 0x0f, 0x02, 0x00, 0x93, 0xd5, 0x94, + 0x93, 0x07, 0x01, 0x83, 0xad, 0xfd, 0x2a, 0x3d, 0x0a, 0xfb, 0xc1, 0x12, + 0x22, 0x72, 0x05, 0x6f, 0x90, 0xd0, 0xda, 0xa2, 0xea, 0xcf, 0x50, 0x3c, + 0x54, 0x93, 0x7e, 0xb8, 0x82, 0x9c, 0xc1, 0x42, 0x40, 0xf2, 0xef, 0x09, + 0x88, 0xd7, 0x88, 0x52, 0xa1, 0x19, 0x12, 0x67, 0x89, 0x2c, 0x17, 0x89, + 0x4c, 0x19, 0x93, 0xf2, 0x7c, 0x3a, 0x1c, 0x86, 0x48, 0x44, 0x0f, 0x48, + 0x00, 0x9a, 0xd2, 0x90, 0xc3, 0x5b, 0x10, 0xe4, 0xc5, 0x8f, 0x4e, 0xec, + 0xfc, 0xd0, 0x8d, 0x50, 0x3b, 0x8a, 0xd3, 0x23, 0xc0, 0x81, 0xf5, 0x69, + 0xec, 0x89, 0xd7, 0x26, 0xb7, 0x10, 0xd3, 0x10, 0xe0, 0xfb, 0x2c, 0x56, + 0x15, 0x2f, 0x7b, 0x19, 0x63, 0xee, 0xc5, 0xbf, 0x27, 0x00, 0x18, 0x6e, + 0x4c, 0xd0, 0xb0, 0xe1, 0x20, 0xa4, 0xbf, 0x06, 0xc1, 0x47, 0x4d, 0x18, + 0xf8, 0xb8, 0x1f, 0xb8, 0x92, 0x53, 0xf5, 0x85, 0xd7, 0xdc, 0x88, 0x2c, + 0x10, 0x79, 0x57, 0x33, 0xd6, 0x7e, 0xf9, 0x0e, 0xf5, 0xfd, 0x79, 0x00, + 0xe1, 0x4b, 0x21, 0x78, 0xe6, 0xd2, 0x40, 0x9e, 0x8f, 0x9c, 0x4d, 0x01, + 0x48, 0x80, 0x59, 0xae, 0xa7, 0xcd, 0x73, 0x80, 0x46, 0x4e, 0x8c, 0x01, + 0x00, 0x76, 0xfe, 0x5e, 0x44, 0x90, 0x88, 0x62, 0x57, 0x62, 0x90, 0x76, + 0x8b, 0x4a, 0x7e, 0xdb, 0x6e, 0x2b, 0x1a, 0xc7, 0x01, 0x4f, 0x72, 0x4c, + 0x29, 0x3f, 0xdc, 0x7e, 0x10, 0xde, 0x8e, 0x4e, 0x4d, 0xfd, 0x63, 0x96, + 0x5c, 0x5d, 0xe1, 0x4b, 0x21, 0x48, 0x85, 0xf5, 0xc7, 0x24, 0xb8, 0x00, + 0x0c, 0xc6, 0xa5, 0x9c, 0x3e, 0x00, 0xa6, 0x9f, 0x5b, 0xa7, 0xf6, 0xa9, + 0x5b, 0xdb, 0x90, 0xf8, 0x7b, 0x0c, 0x19, 0xa4, 0xd0, 0x04, 0x1b, 0x0c, + 0x9c, 0x51, 0x9e, 0x59, 0x3a, 0x3a, 0x21, 0x9a, 0x8b, 0xdb, 0x53, 0x38, + 0x63, 0xa9, 0xfb, 0x21, 0xc7, 0xae, 0x49, 0xe4, 0x7c, 0x4f, 0xbb, 0xd9, + 0x0e, 0x6f, 0x0d, 0xfa, 0x89, 0x6b, 0x0b, 0xea, 0xbf, 0x22, 0xbb, 0x66, + 0x5a, 0x29, 0x00, 0x09, 0x5c, 0x3d, 0x87, 0xf9, 0xaf, 0xe7, 0xf1, 0x80, + 0x00, 0xc0, 0x7d, 0x06, 0x35, 0xad, 0xea, 0xb3, 0x18, 0xfe, 0xd2, 0x0f, + 0xc0, 0xad, 0x59, 0x59, 0x5f, 0x93, 0xdc, 0xfb, 0x7b, 0xae, 0xd4, 0x2e, + 0x3f, 0x1f, 0xc3, 0x49, 0x37, 0x32, 0x28, 0x6f, 0xb0, 0x9a, 0xd8, 0xd0, + 0xc0, 0xbc, 0x79, 0x7f, 0x1f, 0x04, 0x10, 0x39, 0x3b, 0x4e, 0x93, 0x6f, + 0x04, 0x94, 0x0e, 0x1d, 0x3e, 0xe6, 0x85, 0xf5, 0xf8, 0x94, 0xe2, 0x5a, + 0x70, 0xf5, 0x1c, 0x3e, 0x7a, 0x77, 0x02, 0x26, 0xb3, 0x09, 0x30, 0x01, + 0xbe, 0x31, 0x1f, 0x82, 0x87, 0xc2, 0x4a, 0xfe, 0x2c, 0xc3, 0x58, 0xb6, + 0xf7, 0x21, 0x6b, 0xb4, 0xb6, 0x39, 0x3b, 0xf2, 0xa7, 0x4e, 0x27, 0x04, + 0x44, 0xf9, 0xa8, 0x12, 0x9d, 0xc8, 0x8f, 0x13, 0x87, 0xc2, 0xa1, 0xd2, + 0x2e, 0x0e, 0x67, 0xcb, 0x95, 0xaf, 0x8f, 0x42, 0x00, 0xe0, 0xc9, 0x2b, + 0x9f, 0xcf, 0x64, 0xf9, 0xd3, 0x6f, 0xa1, 0x1c, 0xf1, 0xf5, 0x81, 0x22, + 0x26, 0xf7, 0x1e, 0xf0, 0x40, 0x58, 0xd4, 0x5f, 0xa5, 0x4f, 0x3c, 0xa7, + 0x8f, 0xe1, 0xcd, 0x51, 0xda, 0xd4, 0xd5, 0x0c, 0x27, 0x04, 0x18, 0xf8, + 0x3a, 0xcc, 0xbc, 0x3b, 0x81, 0xba, 0xb5, 0x75, 0x4a, 0x3f, 0xbc, 0x79, + 0xc8, 0xa3, 0xe8, 0x87, 0x38, 0x6a, 0xd2, 0xaf, 0xb0, 0xfe, 0xb6, 0xd6, + 0x36, 0x0c, 0xbe, 0xda, 0x5f, 0x36, 0xca, 0x90, 0x7c, 0x68, 0x0d, 0x56, + 0x19, 0x6e, 0xdf, 0xa1, 0x70, 0x32, 0xb5, 0x64, 0x26, 0xf4, 0x47, 0x8b, + 0x57, 0x98, 0xd9, 0xd4, 0xd7, 0x04, 0x9c, 0xda, 0x9c, 0x01, 0x0c, 0x4b, + 0x67, 0x5c, 0xcf, 0x74, 0x65, 0x17, 0x41, 0x5c, 0x58, 0x9c, 0x62, 0x2a, + 0xe4, 0x6b, 0xf9, 0x71, 0x8b, 0x6a, 0xa3, 0x61, 0x7e, 0x2e, 0x85, 0x9e, + 0xf7, 0x7a, 0x00, 0xc8, 0x06, 0x1b, 0x0c, 0x48, 0x98, 0x74, 0x34, 0xb0, + 0x58, 0x03, 0x63, 0x5e, 0xc6, 0x98, 0xa3, 0xa3, 0x93, 0x45, 0xf9, 0x5c, + 0x44, 0xc1, 0x6e, 0xb6, 0x43, 0x02, 0x10, 0x6b, 0x60, 0xac, 0xad, 0xb5, + 0x0d, 0x00, 0x54, 0xf2, 0xb2, 0x7f, 0x0f, 0xb5, 0x0e, 0x29, 0xf5, 0x66, + 0x6c, 0x29, 0xe5, 0x99, 0xf7, 0xc4, 0x58, 0xc9, 0x81, 0xd6, 0xf9, 0x87, + 0x9d, 0x4a, 0xf9, 0xfe, 0xcd, 0xbf, 0x53, 0xa4, 0x66, 0xe5, 0x07, 0x62, + 0x92, 0x9c, 0x3f, 0xae, 0xae, 0x4f, 0xcf, 0x40, 0xb6, 0x9b, 0xed, 0x2a, + 0x7d, 0xb3, 0xed, 0x11, 0xaf, 0x91, 0xb2, 0xe1, 0x10, 0xae, 0x0f, 0x41, + 0x3a, 0x37, 0x81, 0xb1, 0x8d, 0x6b, 0x94, 0x7e, 0xe8, 0x68, 0xef, 0x50, + 0xb5, 0x2f, 0xcb, 0xd0, 0x7a, 0xf5, 0xb3, 0xdb, 0xd4, 0xf5, 0x0f, 0xee, + 0x28, 0x6d, 0xb0, 0x86, 0x1b, 0x37, 0x94, 0x45, 0xf8, 0xaa, 0x54, 0xa6, + 0x0e, 0x4b, 0xf6, 0x39, 0xd7, 0x06, 0xe1, 0xce, 0xf3, 0x8f, 0xb4, 0x92, + 0xdb, 0x6a, 0x02, 0xbd, 0x62, 0xc4, 0xe8, 0x8b, 0xee, 0x25, 0xd7, 0xe7, + 0xfb, 0xac, 0xbc, 0xc1, 0x36, 0x3a, 0xec, 0xf0, 0xee, 0x96, 0x57, 0xdf, + 0xdc, 0xf0, 0x38, 0x05, 0x7d, 0xa3, 0xb2, 0x8f, 0x74, 0x9b, 0x48, 0x5c, + 0x20, 0x8a, 0x5d, 0x9c, 0x22, 0xcb, 0xf1, 0x29, 0x6a, 0x7c, 0x2e, 0xc7, + 0x88, 0xed, 0x7c, 0x3b, 0xfa, 0x36, 0xf7, 0x29, 0x7f, 0xdb, 0xe6, 0xec, + 0x40, 0x58, 0xbd, 0xf8, 0x38, 0xb8, 0xa7, 0x97, 0xb2, 0x21, 0x99, 0x7c, + 0x86, 0x91, 0x00, 0x0c, 0xee, 0xed, 0x57, 0xb5, 0x37, 0xeb, 0xc3, 0x71, + 0xf5, 0x1c, 0x1a, 0xb7, 0x5b, 0x94, 0x7c, 0xde, 0x7f, 0xf7, 0x2a, 0xcf, + 0x03, 0x01, 0x09, 0xdc, 0xf0, 0x38, 0x65, 0x57, 0xc5, 0x59, 0x83, 0xe9, + 0xdb, 0xde, 0x4e, 0xfc, 0x15, 0x93, 0x52, 0x5e, 0xd8, 0xe5, 0x58, 0x94, + 0x96, 0x27, 0xbf, 0x84, 0xcf, 0xa8, 0x67, 0x06, 0x42, 0xbc, 0x40, 0xdf, + 0xc5, 0xf6, 0x4c, 0xfc, 0x65, 0x42, 0xed, 0xb3, 0xe6, 0xcd, 0x08, 0x22, + 0x11, 0xb9, 0xdb, 0x3b, 0x6a, 0xf6, 0x69, 0x55, 0x8c, 0xcf, 0x18, 0x1b, + 0x7d, 0xed, 0xa8, 0xf2, 0xdc, 0xf1, 0x73, 0x41, 0x15, 0x2d, 0xb1, 0xdc, + 0x26, 0x6a, 0xba, 0x70, 0x95, 0x3a, 0x9e, 0x76, 0xd2, 0xe0, 0xf3, 0x9e, + 0x5c, 0xf4, 0xa0, 0xab, 0xd6, 0xa8, 0x41, 0x16, 0xd7, 0x06, 0x41, 0xbf, + 0xc8, 0xad, 0x40, 0xab, 0x4d, 0xec, 0xb0, 0x04, 0x54, 0xf8, 0xd2, 0xa1, + 0x14, 0xf6, 0x6e, 0x77, 0xc3, 0xba, 0x41, 0x7b, 0x44, 0xf2, 0xb7, 0xef, + 0x50, 0xe7, 0xcb, 0x3b, 0x4b, 0xc6, 0x58, 0xb5, 0x92, 0x75, 0xbd, 0x15, + 0x07, 0xf7, 0x0d, 0xc2, 0xb2, 0xde, 0x02, 0x77, 0xbb, 0x3a, 0x3e, 0xcb, + 0xf3, 0x26, 0x64, 0xe6, 0xe6, 0x8b, 0x62, 0xa9, 0x00, 0x8a, 0xb6, 0x2a, + 0x2d, 0xfb, 0xa6, 0xa8, 0xe7, 0x5c, 0x8f, 0x2a, 0x4f, 0x76, 0x15, 0xad, + 0x1a, 0x58, 0xd7, 0x88, 0x84, 0x5f, 0xb4, 0x68, 0xc6, 0x3f, 0xf3, 0x13, + 0xcf, 0x9b, 0xe0, 0x7d, 0x7b, 0x08, 0xd8, 0x20, 0xc7, 0xa7, 0xbd, 0x79, + 0xb1, 0x55, 0xad, 0xd5, 0x39, 0xcf, 0x9b, 0xd0, 0x31, 0x3e, 0x59, 0xfd, + 0x06, 0x43, 0x61, 0x14, 0x20, 0x18, 0x82, 0x77, 0x35, 0x63, 0x22, 0xc9, + 0x61, 0xa8, 0xfc, 0x36, 0x57, 0xd3, 0x0f, 0xbe, 0xad, 0x2e, 0x65, 0x50, + 0x6b, 0xe9, 0xc7, 0xd5, 0x73, 0x10, 0x3f, 0x0e, 0x14, 0xe9, 0x97, 0xca, + 0x5b, 0x13, 0x94, 0x4a, 0xd6, 0xf5, 0x56, 0xf8, 0xc7, 0x7c, 0xf0, 0x32, + 0xc6, 0xd8, 0xfe, 0x8b, 0x44, 0x03, 0x7a, 0x76, 0xc0, 0xf2, 0xd0, 0xf5, + 0x60, 0x0c, 0x13, 0xdb, 0x4a, 0xc7, 0x69, 0x2b, 0xa5, 0xbe, 0x40, 0x04, + 0x9e, 0xeb, 0xa6, 0x1a, 0x76, 0xc8, 0x8c, 0xf0, 0xbe, 0x54, 0x7e, 0x67, + 0x46, 0xbc, 0x46, 0x74, 0xf0, 0xe4, 0x41, 0x98, 0x32, 0x26, 0x14, 0xee, + 0xad, 0x07, 0x20, 0xa1, 0xfb, 0xd9, 0x6e, 0x24, 0x0c, 0x09, 0xfc, 0x6e, + 0x5b, 0xaf, 0xea, 0x70, 0x48, 0x76, 0x2b, 0x12, 0x71, 0x79, 0x6a, 0x13, + 0xcc, 0x02, 0x82, 0xe9, 0x30, 0xfa, 0xb7, 0xf5, 0x22, 0x61, 0x48, 0xc0, + 0x70, 0xcb, 0x88, 0x40, 0x4c, 0x42, 0xdb, 0xe3, 0x2e, 0x98, 0xbe, 0x6f, + 0x42, 0xec, 0xa1, 0x9c, 0x1e, 0xd9, 0x33, 0x0f, 0xbe, 0xff, 0xf6, 0x42, + 0x30, 0x0b, 0x48, 0x18, 0x12, 0x70, 0xf7, 0xee, 0x29, 0xa9, 0x67, 0xe4, + 0xec, 0x38, 0xd5, 0xa5, 0x8c, 0x4a, 0xfe, 0x6c, 0x7d, 0x09, 0x43, 0x02, + 0x7d, 0x2f, 0xf6, 0x15, 0x6d, 0x54, 0x44, 0xce, 0x8e, 0x53, 0xfa, 0xb3, + 0x34, 0x82, 0xe9, 0x30, 0x86, 0xdf, 0x3a, 0x08, 0x2f, 0x63, 0x4c, 0x5c, + 0x20, 0x12, 0xbb, 0x45, 0x08, 0x66, 0x01, 0xa6, 0x27, 0x2d, 0xb0, 0x3c, + 0xd5, 0xac, 0x7b, 0x23, 0x65, 0xf8, 0xbc, 0x17, 0x6d, 0x8f, 0xbb, 0x30, + 0xe9, 0x68, 0x50, 0xf5, 0xc3, 0xf0, 0x61, 0x2f, 0xb8, 0x5b, 0x06, 0x45, + 0xaf, 0xe8, 0x3f, 0x62, 0xe8, 0x7e, 0x56, 0x84, 0xc9, 0x60, 0x42, 0xe4, + 0x56, 0x4c, 0xe9, 0x87, 0x6c, 0xb9, 0x4a, 0xfa, 0x71, 0x8f, 0x73, 0x25, + 0x77, 0x1e, 0xb5, 0xea, 0x93, 0xe2, 0x12, 0x3a, 0x7e, 0x2c, 0x42, 0xb0, + 0x38, 0x10, 0x7b, 0x2a, 0xd7, 0xcf, 0x0c, 0xfb, 0x4e, 0x91, 0x6e, 0x86, + 0xad, 0x77, 0xe1, 0xd4, 0x96, 0x74, 0x45, 0x97, 0xa0, 0x9a, 0x14, 0x8c, + 0xa5, 0xd0, 0x7c, 0xde, 0x00, 0xdc, 0x9a, 0xac, 0xba, 0x7e, 0xce, 0x20, + 0xe0, 0xe0, 0x6f, 0x1f, 0x5e, 0xd6, 0x87, 0x5b, 0x56, 0xf0, 0xde, 0xe1, + 0x2a, 0xbd, 0x3e, 0xe5, 0x81, 0x56, 0x37, 0x68, 0x57, 0xdd, 0x5d, 0x31, + 0x58, 0x00, 0x70, 0x58, 0x8c, 0xa0, 0x9f, 0xd5, 0xa1, 0xf7, 0xd9, 0xea, + 0x7d, 0xdd, 0x74, 0x46, 0x2a, 0xdb, 0x30, 0xcb, 0x02, 0x51, 0xd3, 0x4d, + 0xa2, 0xe1, 0x0b, 0x44, 0xbe, 0x8b, 0x44, 0xc3, 0x17, 0x66, 0xa8, 0xe9, + 0x26, 0x51, 0x35, 0x3b, 0x6a, 0x2b, 0xb8, 0xfc, 0xb1, 0x7a, 0xa6, 0x35, + 0x48, 0x98, 0x7d, 0xb5, 0xf2, 0x69, 0xae, 0xa5, 0xa4, 0x89, 0x18, 0xaa, + 0x3e, 0x6f, 0x7b, 0xf4, 0xf5, 0xd2, 0x4c, 0x3b, 0xf8, 0xce, 0x1d, 0x8a, + 0xa7, 0x8b, 0x99, 0xdb, 0xc6, 0xbb, 0xd1, 0xfd, 0xf2, 0xd2, 0x4e, 0x1f, + 0xf1, 0x0b, 0x44, 0x75, 0xdf, 0x02, 0x82, 0xd7, 0x53, 0x70, 0x7c, 0xc7, + 0xa8, 0x79, 0xa8, 0x43, 0x24, 0xa2, 0xec, 0xf3, 0xe0, 0xf5, 0x14, 0x4c, + 0x8f, 0x3e, 0x7c, 0xd7, 0x4e, 0x8f, 0xf1, 0x0b, 0x44, 0xc9, 0xd5, 0xc5, + 0xae, 0x51, 0xe2, 0xda, 0x2c, 0x01, 0x46, 0x48, 0xf1, 0x08, 0x60, 0x6e, + 0x84, 0x2d, 0x93, 0x40, 0xe3, 0x86, 0xa5, 0x9f, 0x13, 0x9e, 0xfc, 0xf4, + 0x2a, 0x85, 0x0c, 0x16, 0xc4, 0xc2, 0x12, 0x06, 0x9d, 0x02, 0x38, 0x43, + 0x0a, 0x75, 0xdf, 0xce, 0xb5, 0x27, 0xf2, 0xc5, 0x0d, 0xf2, 0x4c, 0x9b, + 0x54, 0x25, 0x05, 0xa7, 0x00, 0x91, 0xab, 0xed, 0x9b, 0xbf, 0xf9, 0x9b, + 0xb3, 0x74, 0x3a, 0x63, 0x84, 0x14, 0xc8, 0x3d, 0x31, 0x5a, 0x05, 0x0c, + 0x7d, 0x2f, 0x27, 0x8f, 0xe1, 0xf8, 0x2c, 0x55, 0xf4, 0x25, 0xe7, 0x6a, + 0x5b, 0x6c, 0xd5, 0x92, 0x42, 0x09, 0x60, 0xd3, 0x91, 0xca, 0x3e, 0xf6, + 0xd5, 0xd7, 0x5f, 0x28, 0xd9, 0x21, 0xeb, 0xf6, 0x9d, 0xa2, 0x5a, 0xca, + 0x55, 0x83, 0xd1, 0x0b, 0x44, 0x9e, 0xe9, 0x9c, 0x7e, 0xb4, 0x57, 0x7d, + 0x6c, 0xb2, 0x7d, 0x81, 0x68, 0xcd, 0x1f, 0x8a, 0xf5, 0x1f, 0xdf, 0xee, + 0x46, 0xb2, 0xc4, 0xe2, 0xb1, 0x1a, 0x14, 0x89, 0xc8, 0xf8, 0x96, 0xfc, + 0xf5, 0xb3, 0x2d, 0x63, 0x84, 0xff, 0x65, 0xb5, 0x2f, 0xcd, 0xce, 0x14, + 0x9f, 0x53, 0x9e, 0x72, 0x1a, 0x61, 0x7a, 0x54, 0xff, 0xa9, 0xac, 0x9c, + 0xc1, 0x12, 0xf5, 0x44, 0xd5, 0x72, 0x39, 0xab, 0x80, 0x83, 0xff, 0x92, + 0x23, 0x8c, 0xcc, 0xa7, 0x44, 0x3d, 0xe7, 0xb5, 0xdf, 0x57, 0xaf, 0x29, + 0x86, 0xee, 0xe7, 0xaa, 0x3b, 0xee, 0x29, 0x12, 0x91, 0xfb, 0x64, 0x10, + 0xa7, 0xe7, 0xb5, 0x4f, 0x03, 0xe6, 0xf7, 0xf3, 0xaa, 0x8a, 0xf1, 0xd1, + 0xa4, 0xf4, 0x4f, 0x33, 0x58, 0x00, 0xb0, 0x9b, 0x80, 0x99, 0x5d, 0xee, + 0x8a, 0xf1, 0xda, 0x72, 0x1d, 0x50, 0x6b, 0xb9, 0x6a, 0xd0, 0x33, 0xed, + 0x57, 0xc9, 0x1b, 0xfc, 0x24, 0xa2, 0x7a, 0xde, 0xf9, 0x9f, 0x41, 0xcd, + 0x7a, 0xb7, 0x9e, 0xf0, 0xc3, 0x77, 0x9c, 0x88, 0xaf, 0xd1, 0x45, 0x19, + 0xbe, 0x14, 0x43, 0x3a, 0x23, 0x2c, 0x6e, 0xb0, 0xa4, 0xd4, 0xed, 0x7d, + 0x10, 0x9a, 0xed, 0x95, 0x96, 0xd0, 0x4e, 0x09, 0x40, 0x8a, 0x2f, 0x96, + 0x9b, 0x8e, 0x4a, 0xaa, 0x38, 0x79, 0xd7, 0x0f, 0x00, 0xa7, 0x59, 0xfb, + 0x7d, 0x79, 0xa6, 0x2d, 0x70, 0xff, 0xe9, 0xa3, 0x8a, 0xf1, 0x72, 0x91, + 0x88, 0x2c, 0xef, 0x4e, 0xe0, 0x74, 0xd4, 0xaa, 0x29, 0x67, 0x7c, 0xbb, + 0x9a, 0x18, 0x2a, 0xfa, 0xb4, 0xb3, 0xaf, 0x6a, 0xef, 0x74, 0x2d, 0x25, + 0x45, 0xbe, 0x02, 0xfa, 0xa6, 0x01, 0x7f, 0x89, 0xa8, 0x94, 0x62, 0xb8, + 0x65, 0xf4, 0x2a, 0xd7, 0xe1, 0xb5, 0x96, 0xab, 0x06, 0x8b, 0xe4, 0x99, + 0x1b, 0x0b, 0x5e, 0xb4, 0xa3, 0x64, 0xfd, 0x81, 0xb8, 0x1f, 0xcd, 0x1f, + 0xcb, 0xf7, 0x46, 0xe8, 0xad, 0xd7, 0xc6, 0xab, 0xcf, 0x86, 0xe4, 0x3f, + 0x0f, 0x5e, 0x2f, 0xd6, 0x4b, 0x66, 0xa8, 0xa5, 0x0d, 0x50, 0xc4, 0xb5, + 0xe5, 0x06, 0xaf, 0xe7, 0xf2, 0x25, 0x57, 0x33, 0xd6, 0xf1, 0x12, 0x63, + 0x7f, 0x7b, 0xc5, 0x0d, 0xce, 0x50, 0xdc, 0xee, 0xec, 0x37, 0x7f, 0xae, + 0xdb, 0xda, 0x86, 0xdb, 0x74, 0x53, 0x9e, 0x41, 0xe2, 0x5c, 0x71, 0xbf, + 0x99, 0xb9, 0x20, 0x68, 0x6f, 0xf1, 0x0c, 0xb5, 0xca, 0x9c, 0xd6, 0x66, + 0x06, 0xc4, 0x25, 0xd8, 0xbe, 0x7b, 0x6f, 0x7c, 0xd8, 0xc6, 0x47, 0x00, + 0xcf, 0x87, 0x7e, 0xbc, 0x70, 0x32, 0x05, 0xf6, 0xc7, 0x09, 0x1c, 0x4c, + 0x00, 0x89, 0xaf, 0xe7, 0x55, 0x79, 0xec, 0x26, 0xc0, 0xd5, 0xaa, 0x3d, + 0x82, 0x6d, 0xbc, 0xfb, 0xbe, 0x31, 0x6d, 0x91, 0xbc, 0xb8, 0x9a, 0x69, + 0x11, 0xd3, 0xae, 0x37, 0x8b, 0xe1, 0x69, 0x3f, 0x9a, 0x8f, 0xa5, 0x90, + 0xb8, 0x36, 0xab, 0xcf, 0x70, 0xe3, 0x91, 0x92, 0xed, 0x70, 0x7c, 0xa7, + 0x58, 0x2f, 0xc4, 0x25, 0x08, 0xe6, 0xa5, 0x0d, 0x50, 0xc1, 0xac, 0x2d, + 0xd7, 0xf1, 0x9d, 0xe2, 0xfc, 0xd3, 0xdf, 0x66, 0x2c, 0xf5, 0x1b, 0x37, + 0x6c, 0x99, 0x70, 0x51, 0xfe, 0x74, 0x46, 0x40, 0xc3, 0x21, 0x3f, 0x06, + 0xdf, 0xb9, 0x43, 0xbe, 0x8b, 0x7f, 0xa3, 0xc4, 0x35, 0x79, 0x71, 0x3c, + 0xf8, 0xce, 0x1d, 0x7a, 0xec, 0x7d, 0xbf, 0x32, 0x83, 0xe4, 0x97, 0xeb, + 0x35, 0xc5, 0x10, 0xfb, 0x65, 0x8b, 0xe6, 0x9a, 0x61, 0x95, 0x68, 0x5b, + 0xfc, 0x08, 0xb1, 0x70, 0x44, 0x59, 0x05, 0x84, 0x5a, 0x8b, 0x0d, 0x2e, + 0x96, 0x02, 0x5a, 0xce, 0x00, 0xec, 0x43, 0x80, 0xbd, 0xe5, 0x07, 0xfb, + 0x20, 0x05, 0xf6, 0x41, 0x71, 0xbe, 0x8a, 0x69, 0xb3, 0x4b, 0xae, 0xa7, + 0xde, 0x81, 0x3d, 0x47, 0xe4, 0x7b, 0x0f, 0xd8, 0x07, 0xea, 0x0f, 0x10, + 0x27, 0xbe, 0x0b, 0xe0, 0x71, 0x57, 0x91, 0x7e, 0x16, 0x63, 0x05, 0xc3, + 0xba, 0x8f, 0x4c, 0x2b, 0x58, 0xb4, 0xeb, 0x2d, 0x8c, 0x7e, 0x34, 0x07, + 0x80, 0xe0, 0x65, 0x1d, 0x8c, 0x6b, 0x6e, 0x2c, 0xd9, 0x0e, 0x94, 0x60, + 0xda, 0xc2, 0x01, 0xa5, 0x1b, 0xe3, 0x11, 0xed, 0x76, 0x5c, 0xd7, 0xce, + 0xef, 0x65, 0x8c, 0xf9, 0x5f, 0x7e, 0x86, 0xed, 0x77, 0x1a, 0x35, 0xcb, + 0xc5, 0xd3, 0x93, 0x18, 0x88, 0x99, 0x30, 0x70, 0xcc, 0x0f, 0x4f, 0xc2, + 0x82, 0x78, 0x7a, 0xb2, 0x28, 0x1f, 0x67, 0x15, 0x40, 0x3b, 0x8c, 0xe8, + 0x7e, 0x6e, 0x13, 0x2b, 0xf5, 0xe5, 0xc2, 0x2a, 0x40, 0x3d, 0x82, 0xb3, + 0xe8, 0x7a, 0x20, 0xa6, 0xfa, 0x48, 0xb1, 0x2f, 0x10, 0x01, 0x7b, 0x7b, + 0x1e, 0xeb, 0xde, 0xf3, 0x63, 0xf2, 0xb3, 0x14, 0x30, 0xed, 0x07, 0x16, + 0x47, 0xc8, 0xf8, 0x93, 0x85, 0x16, 0x59, 0x45, 0xba, 0x3e, 0x5d, 0x5c, + 0x6f, 0xdc, 0x0a, 0xf6, 0x96, 0x1f, 0xa9, 0x2c, 0xe9, 0x3e, 0x08, 0xb8, + 0x10, 0x2d, 0xca, 0xd7, 0xfb, 0xa3, 0x0a, 0x86, 0x75, 0x1f, 0x99, 0x56, + 0xaa, 0xc0, 0xb4, 0xf9, 0xd8, 0x79, 0x26, 0x85, 0xc1, 0xb3, 0x33, 0xd5, + 0x19, 0x6e, 0x19, 0xa6, 0x45, 0x09, 0xa6, 0x45, 0xe1, 0x80, 0xd2, 0x89, + 0x30, 0x37, 0x6a, 0xcb, 0xd5, 0x60, 0xda, 0x7c, 0xec, 0x78, 0x8a, 0xb1, + 0x29, 0x27, 0xc0, 0xe9, 0x3c, 0x6b, 0x62, 0xe3, 0xdd, 0xb8, 0xf1, 0x53, + 0x23, 0x62, 0x15, 0x16, 0x8f, 0xab, 0x7a, 0x7f, 0xa4, 0x1e, 0xc1, 0x59, + 0xcc, 0xdf, 0xe9, 0x62, 0x7f, 0x9c, 0x90, 0x77, 0xae, 0xe6, 0x8a, 0x47, + 0x06, 0xcc, 0x02, 0x32, 0x19, 0xe8, 0x4f, 0xa5, 0x18, 0x89, 0x17, 0xf0, + 0xf0, 0x01, 0x3f, 0x42, 0x8b, 0x3b, 0x9c, 0x43, 0x4f, 0xdb, 0x35, 0xf2, + 0x2d, 0x5f, 0xa6, 0x2d, 0x6c, 0x97, 0xad, 0xc9, 0x8d, 0xf1, 0xed, 0x46, + 0xd0, 0x5e, 0x37, 0x8e, 0xbe, 0xfe, 0x30, 0xa3, 0xbd, 0x6e, 0xec, 0x77, + 0x26, 0xc0, 0x59, 0xe5, 0xe7, 0x23, 0x29, 0x0b, 0xfa, 0xfe, 0x63, 0xaa, + 0xe2, 0x62, 0xa5, 0x1c, 0xd3, 0xde, 0x4f, 0x9f, 0xb6, 0x14, 0x9a, 0x1e, + 0x7d, 0x98, 0xa5, 0x76, 0x18, 0x95, 0x76, 0x56, 0x5a, 0x3b, 0x99, 0x6d, + 0x2e, 0x84, 0x76, 0xc8, 0x3e, 0x72, 0x25, 0xbd, 0x56, 0x8d, 0xad, 0x66, + 0x4c, 0xd3, 0xf2, 0x17, 0x13, 0xfb, 0xe3, 0x04, 0x70, 0xcb, 0x51, 0x76, + 0x84, 0xb8, 0x73, 0x5f, 0x78, 0x54, 0x9f, 0x2a, 0x30, 0xd2, 0xa6, 0x23, + 0x7e, 0xd8, 0xc7, 0x80, 0x75, 0x27, 0xd5, 0xff, 0xcf, 0x25, 0xa5, 0x8a, + 0x61, 0x9c, 0xfb, 0xc9, 0xb4, 0x85, 0xed, 0x9a, 0x7a, 0x1a, 0x68, 0xdc, + 0xc0, 0x94, 0xa9, 0xce, 0xcb, 0x18, 0xeb, 0x78, 0xea, 0x31, 0x76, 0xe3, + 0xa7, 0x46, 0xb4, 0x6d, 0x91, 0x7d, 0xf6, 0xd3, 0x51, 0x2b, 0xec, 0x87, + 0xa5, 0xb2, 0xa7, 0xd7, 0x4e, 0x7f, 0x1e, 0x2a, 0xd9, 0x8e, 0xe5, 0xe0, + 0xd3, 0x6a, 0xbe, 0x87, 0x47, 0x74, 0x9c, 0xd3, 0x8e, 0x49, 0xc0, 0xb7, + 0xaa, 0x93, 0xbb, 0x4a, 0x00, 0xd0, 0x66, 0x2d, 0xf6, 0x41, 0x7c, 0x51, + 0x80, 0xbd, 0x3d, 0x01, 0xd4, 0x97, 0x5e, 0x0d, 0x03, 0xd2, 0xa2, 0x6f, + 0x5a, 0x43, 0xaa, 0xc2, 0xf7, 0x0b, 0x7f, 0xe9, 0x07, 0x0c, 0xea, 0xbb, + 0xc3, 0x86, 0xb6, 0x94, 0x5f, 0x84, 0xdd, 0x6f, 0xa6, 0xcd, 0xf7, 0x69, + 0x9d, 0xe6, 0x70, 0x49, 0xe6, 0x48, 0xae, 0x66, 0xcc, 0xf5, 0x43, 0xc6, + 0xc6, 0xb7, 0xcb, 0x51, 0x92, 0xb0, 0xc1, 0x06, 0xf6, 0x86, 0x1f, 0xfc, + 0x17, 0xf2, 0x69, 0xb4, 0x6c, 0x3e, 0x91, 0x88, 0x26, 0x3f, 0x25, 0xf2, + 0x24, 0x4a, 0x47, 0x0f, 0x96, 0x8b, 0x4f, 0x9b, 0x8f, 0xd9, 0xb8, 0x72, + 0x35, 0x3b, 0x9c, 0x80, 0x84, 0x38, 0xe7, 0xa8, 0x38, 0x70, 0x15, 0xa6, + 0x95, 0x00, 0xf8, 0x5f, 0x44, 0x91, 0xe5, 0x77, 0x9e, 0xf4, 0x03, 0x73, + 0xe5, 0x19, 0x16, 0x10, 0x80, 0xaf, 0xd4, 0xdf, 0xff, 0x54, 0x9d, 0x74, + 0xf8, 0x7e, 0xf9, 0x68, 0xe1, 0x52, 0x95, 0x0d, 0xab, 0x4c, 0x79, 0xc3, + 0xed, 0x3b, 0x4b, 0xda, 0xca, 0xd5, 0xeb, 0xd3, 0x56, 0x92, 0x97, 0xdc, + 0xc0, 0xd8, 0x8d, 0x5f, 0xbb, 0xc1, 0x25, 0xe5, 0xff, 0xd9, 0x7a, 0xc2, + 0x0f, 0x76, 0x28, 0x85, 0x75, 0xfb, 0x4e, 0xd1, 0xce, 0x7d, 0xb3, 0xc4, + 0xde, 0xf0, 0xa3, 0xe7, 0x7c, 0xf1, 0x79, 0x67, 0x55, 0x7b, 0xef, 0x91, + 0x4f, 0x9b, 0xe6, 0xf5, 0xfb, 0xb4, 0x7c, 0xde, 0x65, 0x85, 0x5a, 0x51, + 0x81, 0x72, 0x18, 0x4e, 0xca, 0xe1, 0xb1, 0xa6, 0x9b, 0xe5, 0x0d, 0x77, + 0x95, 0x00, 0x79, 0xca, 0x32, 0xdb, 0x8a, 0x57, 0xe9, 0xd5, 0xe0, 0xe8, + 0x66, 0x47, 0x69, 0xc3, 0x2c, 0x97, 0xaa, 0x60, 0xda, 0x42, 0x74, 0x9a, + 0x8d, 0x55, 0x6d, 0x89, 0x96, 0x93, 0x93, 0xca, 0xd4, 0xdd, 0x53, 0xa6, + 0x55, 0xb7, 0xab, 0x3a, 0xb9, 0x93, 0x0f, 0xc9, 0xe1, 0x22, 0xad, 0x38, + 0x67, 0x35, 0x33, 0x46, 0xe4, 0xab, 0x62, 0xbd, 0x60, 0x16, 0x20, 0x05, + 0x6a, 0x6f, 0xa7, 0x00, 0xc0, 0x7f, 0x7e, 0x42, 0x53, 0x6e, 0xa9, 0x55, + 0xbd, 0xe5, 0x1a, 0x51, 0xe3, 0x7f, 0xcd, 0x63, 0xeb, 0x09, 0x6d, 0x86, + 0xb5, 0xf1, 0x46, 0x4c, 0xed, 0x90, 0x7d, 0xfa, 0xf1, 0xed, 0x6e, 0x98, + 0xb9, 0x60, 0x51, 0xbe, 0x34, 0x2f, 0xe0, 0xb1, 0xf7, 0xfd, 0x48, 0x5c, + 0x54, 0xcf, 0x38, 0x45, 0x4c, 0x2b, 0x00, 0x18, 0x34, 0x27, 0x51, 0x0b, + 0xf3, 0x8d, 0x7d, 0x1e, 0x2a, 0x69, 0x97, 0x65, 0x53, 0xc1, 0xce, 0x52, + 0x35, 0x28, 0xfd, 0xbc, 0x4a, 0xc3, 0x2a, 0x23, 0xe7, 0xb1, 0xf7, 0xfd, + 0x08, 0x5e, 0x26, 0x4a, 0x5c, 0x9b, 0xad, 0xbc, 0xf8, 0xd1, 0x40, 0x7d, + 0x3e, 0x6d, 0xf5, 0x72, 0xbd, 0xac, 0x74, 0x9c, 0x53, 0x0b, 0xf3, 0xcb, + 0xd7, 0x7d, 0x9b, 0x31, 0xad, 0x78, 0x7b, 0x20, 0x9e, 0xaa, 0xf9, 0xfa, + 0xd4, 0xc1, 0xb3, 0x33, 0x14, 0x4f, 0x17, 0xcf, 0xb4, 0x5d, 0xc6, 0xe2, + 0x6f, 0xf4, 0x44, 0x92, 0xe3, 0xae, 0xec, 0x58, 0x0a, 0xf1, 0xf0, 0x64, + 0x91, 0x1e, 0x36, 0xde, 0x8d, 0x29, 0x27, 0xe0, 0x7f, 0x99, 0xb1, 0xe8, + 0xa3, 0xb2, 0x4f, 0x9f, 0xdc, 0xc0, 0x98, 0xf4, 0xab, 0xad, 0x6c, 0xc8, + 0x9a, 0xd6, 0x8c, 0x32, 0x0c, 0x04, 0xfc, 0x30, 0xbe, 0x9f, 0xc2, 0xe4, + 0xa7, 0x57, 0x8b, 0xf4, 0x57, 0xee, 0x3d, 0x70, 0x6c, 0x5c, 0xc7, 0x9c, + 0xe6, 0xb0, 0x6e, 0xa6, 0x9d, 0xac, 0xaf, 0xe1, 0x3c, 0x6d, 0x0c, 0xba, + 0xeb, 0x71, 0x3a, 0xab, 0xbf, 0x1a, 0xa9, 0x92, 0xbc, 0x91, 0x33, 0x7e, + 0x34, 0x07, 0x00, 0xf6, 0x86, 0x1f, 0x3b, 0x8f, 0xcf, 0xd2, 0xba, 0x7d, + 0xa7, 0xa8, 0x14, 0x26, 0x2e, 0x12, 0x45, 0xf2, 0xbe, 0x2c, 0xd0, 0x1b, + 0xa7, 0xd5, 0x63, 0x28, 0xd9, 0x38, 0x67, 0x97, 0x4d, 0x3b, 0xce, 0x59, + 0x4e, 0x6e, 0xec, 0x97, 0x2d, 0x9a, 0x4c, 0x3d, 0x10, 0x33, 0x41, 0x3c, + 0x4e, 0xe4, 0xba, 0x5d, 0xf9, 0x94, 0x9b, 0x65, 0x41, 0xce, 0x27, 0xbc, + 0x33, 0x4e, 0x23, 0xa9, 0xe2, 0xaf, 0xb3, 0x6d, 0x7c, 0x18, 0xde, 0x56, + 0x7b, 0x91, 0xc1, 0x5a, 0xde, 0x9d, 0x40, 0xa1, 0xcf, 0x9d, 0xc5, 0xf1, + 0xed, 0xf2, 0x21, 0xa5, 0x52, 0x33, 0xa4, 0xeb, 0x87, 0xeb, 0x58, 0xea, + 0x15, 0x23, 0x6c, 0x4d, 0xc5, 0x3b, 0xa0, 0xe9, 0x8c, 0x84, 0x9e, 0x28, + 0x07, 0xf1, 0x38, 0xa9, 0x08, 0x46, 0x75, 0xc3, 0x8c, 0x48, 0xb2, 0x2f, + 0xa2, 0x77, 0x32, 0xa1, 0xbd, 0xfa, 0xb6, 0x7a, 0xf5, 0xde, 0x87, 0xc0, + 0x19, 0x04, 0x44, 0x5e, 0x31, 0x54, 0x7d, 0x6a, 0x68, 0xe7, 0xbe, 0x59, + 0xaa, 0x7d, 0x52, 0xd4, 0xc6, 0xec, 0xa9, 0xb2, 0x75, 0x05, 0xa7, 0xe2, + 0xf6, 0x3b, 0x13, 0xe8, 0x78, 0xea, 0x31, 0x45, 0xaf, 0xfc, 0xfb, 0x23, + 0x9c, 0x66, 0x37, 0x3a, 0x5e, 0xaa, 0xed, 0x90, 0x4c, 0xf0, 0xf2, 0x55, + 0xea, 0x3c, 0xc3, 0x55, 0xd4, 0x47, 0xcb, 0x80, 0xe2, 0x69, 0x47, 0xc9, + 0x72, 0x4e, 0x73, 0x18, 0x46, 0xab, 0x00, 0x5b, 0x26, 0xb2, 0x18, 0x87, + 0x8d, 0x40, 0x8a, 0x35, 0x22, 0x9d, 0x29, 0xff, 0x9b, 0x19, 0x4e, 0x73, + 0x18, 0xd2, 0xcf, 0x73, 0xae, 0x01, 0xbf, 0x40, 0x34, 0x10, 0x07, 0x3c, + 0x27, 0xb4, 0xdf, 0x23, 0x67, 0x90, 0x10, 0x79, 0xc5, 0x8d, 0xc9, 0x87, + 0x74, 0xdc, 0xc1, 0x76, 0x99, 0x68, 0xe4, 0x4c, 0x65, 0x79, 0xaa, 0xfb, + 0x69, 0xbd, 0x4c, 0xde, 0x43, 0xd6, 0xc3, 0x80, 0x30, 0x0b, 0xe8, 0x0b, + 0x44, 0xb4, 0x6c, 0xb3, 0x64, 0x1a, 0x29, 0xe1, 0x2b, 0x95, 0xc2, 0xa1, + 0x2d, 0x46, 0x5d, 0xc7, 0xdc, 0x7a, 0x9b, 0x62, 0xba, 0x99, 0xbc, 0x1c, + 0xee, 0x77, 0x26, 0x14, 0xf9, 0x4e, 0xa7, 0xba, 0x7f, 0xfa, 0x9f, 0x54, + 0x33, 0xed, 0xd0, 0x4f, 0x72, 0x71, 0x65, 0xbb, 0xa9, 0xf6, 0x61, 0xe2, + 0xd8, 0xb8, 0x8e, 0xd1, 0x0e, 0x6d, 0x06, 0xb2, 0xf1, 0xe1, 0x92, 0x4c, + 0x2d, 0xfd, 0x6a, 0x2b, 0x1b, 0xdd, 0x66, 0x44, 0xaf, 0x46, 0x39, 0x40, + 0x42, 0x00, 0x36, 0x9c, 0x3e, 0xef, 0x57, 0x76, 0xa6, 0x06, 0x62, 0x26, + 0x04, 0xe2, 0x7e, 0x84, 0x0d, 0xda, 0x37, 0xbc, 0x0f, 0x6d, 0x71, 0x63, + 0x6a, 0x87, 0x11, 0xde, 0x97, 0x9e, 0x51, 0xed, 0x50, 0x8d, 0xfc, 0x65, + 0xd1, 0x60, 0x35, 0xfa, 0xcb, 0x69, 0x0e, 0x23, 0xf5, 0x1b, 0x7d, 0x06, + 0x2b, 0x00, 0x70, 0x6c, 0x64, 0xec, 0xce, 0xbf, 0x69, 0xfb, 0xf6, 0x69, + 0x5e, 0xde, 0x0a, 0x76, 0xdd, 0x26, 0xd2, 0xbc, 0x9f, 0xb6, 0x9c, 0xc5, + 0x6b, 0xa2, 0x41, 0xc0, 0xd4, 0x8b, 0xf2, 0x81, 0xee, 0x4a, 0x49, 0xef, + 0xdd, 0x5e, 0x5d, 0xb6, 0x18, 0xfa, 0x9f, 0xd7, 0x7f, 0x9b, 0x61, 0xe1, + 0xb9, 0xd7, 0x5a, 0xb1, 0xd2, 0x79, 0xd9, 0x52, 0xcf, 0x13, 0x5f, 0xdf, + 0xbd, 0xdf, 0x90, 0xa8, 0xf5, 0x7c, 0xae, 0x48, 0x44, 0xbe, 0xcf, 0x62, + 0x88, 0x71, 0x16, 0xe5, 0x7c, 0x6a, 0x2c, 0xad, 0xcd, 0xc4, 0x36, 0x3e, + 0x0c, 0xce, 0x20, 0xc0, 0x58, 0x17, 0x84, 0xed, 0x47, 0x0e, 0xd8, 0x32, + 0x09, 0xb4, 0xac, 0x37, 0x95, 0x74, 0xc9, 0x82, 0x97, 0xaf, 0x92, 0x37, + 0x6c, 0x41, 0x38, 0x29, 0x47, 0x09, 0xb2, 0x0c, 0xde, 0xc5, 0x2d, 0xfd, + 0x1c, 0xaf, 0x48, 0x44, 0xc3, 0x97, 0x62, 0xf0, 0x47, 0x65, 0x3b, 0x09, + 0xc4, 0x6d, 0x30, 0x73, 0x41, 0x58, 0xb8, 0x16, 0xf8, 0xb6, 0xcd, 0x97, + 0xb8, 0x9f, 0x76, 0x81, 0xc8, 0xfe, 0x31, 0x10, 0x9e, 0xd6, 0xf1, 0xed, + 0xd8, 0x66, 0x17, 0xa6, 0xbe, 0x57, 0x07, 0x47, 0xde, 0x25, 0x13, 0x85, + 0xe9, 0xe0, 0x34, 0xb0, 0xe7, 0x4a, 0xf5, 0xf7, 0xd3, 0xea, 0xb9, 0x2d, + 0x71, 0x05, 0xbf, 0x39, 0x58, 0xf2, 0x26, 0x70, 0x7e, 0x81, 0xa8, 0xf9, + 0x18, 0x74, 0xff, 0xd6, 0x82, 0xeb, 0x71, 0xed, 0x8f, 0x1d, 0xed, 0x63, + 0x41, 0x84, 0xbf, 0xb4, 0x56, 0x2d, 0xa7, 0xcd, 0x1a, 0x85, 0xff, 0x45, + 0xc7, 0xb2, 0xbf, 0xe8, 0x78, 0x05, 0xff, 0xf9, 0x58, 0xf1, 0x77, 0xc4, + 0x0c, 0x97, 0x89, 0x3a, 0xcf, 0xd4, 0xf6, 0xb5, 0x6e, 0xad, 0xd8, 0x65, + 0xac, 0xcd, 0x25, 0x58, 0xc1, 0x6f, 0x06, 0x56, 0xf5, 0x3b, 0x62, 0x4d, + 0x37, 0xe5, 0x6b, 0x40, 0xd3, 0x99, 0x7b, 0xab, 0x12, 0x67, 0x10, 0x30, + 0xb4, 0xa5, 0xba, 0x7b, 0x68, 0x57, 0xf0, 0x9b, 0x8b, 0x55, 0xfd, 0x8e, + 0x58, 0xf6, 0x80, 0x6f, 0x2d, 0x71, 0x5c, 0x3d, 0x71, 0xd8, 0xd4, 0x2b, + 0xc6, 0x15, 0x83, 0x5d, 0xc1, 0x8a, 0xa8, 0xfb, 0xb7, 0x71, 0x13, 0xd7, + 0x66, 0xa9, 0x3f, 0x60, 0x44, 0x20, 0x7e, 0x77, 0xee, 0x9d, 0x2d, 0x8c, + 0xff, 0xdd, 0xef, 0x0e, 0x59, 0xc1, 0xe5, 0x8f, 0x35, 0xfd, 0x36, 0xae, + 0x04, 0x39, 0x2c, 0xd1, 0xf7, 0x21, 0xe0, 0xcf, 0xcc, 0xcb, 0x5b, 0x77, + 0x66, 0xa1, 0x6a, 0x9f, 0xd5, 0x9c, 0x0e, 0x62, 0x68, 0x4b, 0x0b, 0x5a, + 0x78, 0xa8, 0x6e, 0x68, 0x59, 0xc1, 0x15, 0xac, 0x06, 0x97, 0xf4, 0x2b, + 0xe4, 0xf9, 0x06, 0xec, 0xfb, 0x2c, 0x06, 0x0b, 0x67, 0x81, 0xe7, 0x7f, + 0x82, 0x48, 0xcd, 0xab, 0xe3, 0x80, 0xd9, 0x1d, 0x18, 0xf1, 0x07, 0x8d, + 0x00, 0x56, 0x7e, 0x03, 0x77, 0x05, 0x97, 0x86, 0xff, 0x07, 0xeb, 0x01, + 0x34, 0x67, 0x1a, 0xc4, 0xce, 0x23, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, + 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; @@ -810,42 +803,70 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool if ( !name ) setName( "ConfigurationPanel" ); setSizeGripEnabled( TRUE ); + ConfigurationPanelLayout = new QGridLayout( this, 1, 1, 11, 6, "ConfigurationPanelLayout"); + + layout19 = new QVBoxLayout( 0, 0, 6, "layout19"); + + line1 = new QFrame( this, "line1" ); + line1->setFrameShape( QFrame::HLine ); + line1->setFrameShadow( QFrame::Sunken ); + line1->setFrameShape( QFrame::HLine ); + layout19->addWidget( line1 ); + + layout28 = new QHBoxLayout( 0, 0, 6, "layout28"); + + buttonHelp = new QPushButton( this, "buttonHelp" ); + buttonHelp->setAutoDefault( TRUE ); + layout28->addWidget( buttonHelp ); + Horizontal_Spacing2 = new QSpacerItem( 160, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); + layout28->addItem( Horizontal_Spacing2 ); + + buttonSave = new QPushButton( this, "buttonSave" ); + buttonSave->setAutoDefault( TRUE ); + buttonSave->setDefault( TRUE ); + layout28->addWidget( buttonSave ); - QWidget* privateLayoutWidget = new QWidget( this, "layout20" ); - privateLayoutWidget->setGeometry( QRect( 10, 12, 540, 530 ) ); - layout20 = new QVBoxLayout( privateLayoutWidget, 11, 6, "layout20"); + buttonOk = new QPushButton( this, "buttonOk" ); + buttonOk->setAutoDefault( TRUE ); + layout28->addWidget( buttonOk ); - layout31 = new QHBoxLayout( 0, 0, 6, "layout31"); + buttonCancel = new QPushButton( this, "buttonCancel" ); + buttonCancel->setAutoDefault( TRUE ); + layout28->addWidget( buttonCancel ); + layout19->addLayout( layout28 ); - Menu = new QListBox( privateLayoutWidget, "Menu" ); + ConfigurationPanelLayout->addMultiCellLayout( layout19, 1, 1, 0, 1 ); + + Menu = new QListBox( this, "Menu" ); Menu->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)7, 0, 0, Menu->sizePolicy().hasHeightForWidth() ) ); Menu->setCursor( QCursor( 13 ) ); Menu->setSelectionMode( QListBox::Single ); - layout31->addWidget( Menu ); + + ConfigurationPanelLayout->addWidget( Menu, 0, 0 ); layout17 = new QVBoxLayout( 0, 0, 6, "layout17"); - TitleTab = new QLabel( privateLayoutWidget, "TitleTab" ); + TitleTab = new QLabel( this, "TitleTab" ); QFont TitleTab_font( TitleTab->font() ); TitleTab_font.setBold( TRUE ); TitleTab->setFont( TitleTab_font ); layout17->addWidget( TitleTab ); - line2 = new QFrame( privateLayoutWidget, "line2" ); + line2 = new QFrame( this, "line2" ); line2->setFrameShape( QFrame::HLine ); line2->setFrameShadow( QFrame::Sunken ); line2->setFrameShape( QFrame::HLine ); layout17->addWidget( line2 ); - Tab_Signalisations = new QTabWidget( privateLayoutWidget, "Tab_Signalisations" ); + Tab_Signalisations = new QTabWidget( this, "Tab_Signalisations" ); SIPPage = new QWidget( Tab_Signalisations, "SIPPage" ); - QWidget* privateLayoutWidget_2 = new QWidget( SIPPage, "layout24" ); - privateLayoutWidget_2->setGeometry( QRect( 16, 12, 401, 393 ) ); - layout24 = new QVBoxLayout( privateLayoutWidget_2, 11, 6, "layout24"); + QWidget* privateLayoutWidget = new QWidget( SIPPage, "layout24" ); + privateLayoutWidget->setGeometry( QRect( 16, 12, 401, 393 ) ); + layout24 = new QVBoxLayout( privateLayoutWidget, 11, 6, "layout24"); - groupBox1 = new QGroupBox( privateLayoutWidget_2, "groupBox1" ); + groupBox1 = new QGroupBox( privateLayoutWidget, "groupBox1" ); groupBox1->setColumnLayout(0, Qt::Vertical ); groupBox1->layout()->setSpacing( 6 ); groupBox1->layout()->setMargin( 11 ); @@ -904,17 +925,17 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool layout23 = new QVBoxLayout( 0, 0, 6, "layout23"); - layout19 = new QHBoxLayout( 0, 0, 6, "layout19"); + layout19_2 = new QHBoxLayout( 0, 0, 6, "layout19_2"); - autoregister = new QCheckBox( privateLayoutWidget_2, "autoregister" ); + autoregister = new QCheckBox( privateLayoutWidget, "autoregister" ); autoregister->setChecked( TRUE ); - layout19->addWidget( autoregister ); + layout19_2->addWidget( autoregister ); spacer7 = new QSpacerItem( 201, 21, QSizePolicy::Expanding, QSizePolicy::Minimum ); - layout19->addItem( spacer7 ); + layout19_2->addItem( spacer7 ); - Register = new QPushButton( privateLayoutWidget_2, "Register" ); - layout19->addWidget( Register ); - layout23->addLayout( layout19 ); + Register = new QPushButton( privateLayoutWidget, "Register" ); + layout19_2->addWidget( Register ); + layout23->addLayout( layout19_2 ); spacer9 = new QSpacerItem( 20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding ); layout23->addItem( spacer9 ); layout24->addLayout( layout23 ); @@ -998,7 +1019,7 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool Tab_Signalisations->insertTab( DTMFPage, QString("") ); layout17->addWidget( Tab_Signalisations ); - Tab_Audio = new QTabWidget( privateLayoutWidget, "Tab_Audio" ); + Tab_Audio = new QTabWidget( this, "Tab_Audio" ); DriversPage = new QWidget( Tab_Audio, "DriversPage" ); @@ -1077,65 +1098,47 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool Tab_Audio->insertTab( RingPage, QString("") ); layout17->addWidget( Tab_Audio ); - Tab_Video = new QTabWidget( privateLayoutWidget, "Tab_Video" ); - - DriversPage_2 = new QWidget( Tab_Video, "DriversPage_2" ); - Tab_Video->insertTab( DriversPage_2, QString("") ); - - CodecsPage_2 = new QWidget( Tab_Video, "CodecsPage_2" ); - Tab_Video->insertTab( CodecsPage_2, QString("") ); - layout17->addWidget( Tab_Video ); + Tab_Preferences = new QTabWidget( this, "Tab_Preferences" ); - Tab_Network = new QTabWidget( privateLayoutWidget, "Tab_Network" ); + DriversPage_2 = new QWidget( Tab_Preferences, "DriversPage_2" ); - DriversPage_3 = new QWidget( Tab_Network, "DriversPage_3" ); - Tab_Network->insertTab( DriversPage_3, QString("") ); - - CodecsPage_3 = new QWidget( Tab_Network, "CodecsPage_3" ); - Tab_Network->insertTab( CodecsPage_3, QString("") ); - layout17->addWidget( Tab_Network ); - - Tab_Preferences = new QTabWidget( privateLayoutWidget, "Tab_Preferences" ); - - DriversPage_4 = new QWidget( Tab_Preferences, "DriversPage_4" ); - - SkinChoice = new QComboBox( FALSE, DriversPage_4, "SkinChoice" ); + SkinChoice = new QComboBox( FALSE, DriversPage_2, "SkinChoice" ); SkinChoice->setGeometry( QRect( 12, 42, 110, 27 ) ); - buttonApplySkin = new QPushButton( DriversPage_4, "buttonApplySkin" ); + buttonApplySkin = new QPushButton( DriversPage_2, "buttonApplySkin" ); buttonApplySkin->setGeometry( QRect( 136, 40, 80, 32 ) ); - Tab_Preferences->insertTab( DriversPage_4, QString("") ); + Tab_Preferences->insertTab( DriversPage_2, QString("") ); TabPage = new QWidget( Tab_Preferences, "TabPage" ); - QWidget* privateLayoutWidget_3 = new QWidget( TabPage, "layout17" ); - privateLayoutWidget_3->setGeometry( QRect( 10, 10, 262, 200 ) ); - layout17_2 = new QVBoxLayout( privateLayoutWidget_3, 11, 6, "layout17_2"); + QWidget* privateLayoutWidget_2 = new QWidget( TabPage, "layout17" ); + privateLayoutWidget_2->setGeometry( QRect( 10, 10, 262, 200 ) ); + layout17_2 = new QVBoxLayout( privateLayoutWidget_2, 11, 6, "layout17_2"); layout16 = new QHBoxLayout( 0, 0, 6, "layout16"); - textLabel1_2 = new QLabel( privateLayoutWidget_3, "textLabel1_2" ); + textLabel1_2 = new QLabel( privateLayoutWidget_2, "textLabel1_2" ); layout16->addWidget( textLabel1_2 ); - zoneToneChoice = new QComboBox( FALSE, privateLayoutWidget_3, "zoneToneChoice" ); + zoneToneChoice = new QComboBox( FALSE, privateLayoutWidget_2, "zoneToneChoice" ); layout16->addWidget( zoneToneChoice ); spacer5 = new QSpacerItem( 31, 21, QSizePolicy::Expanding, QSizePolicy::Minimum ); layout16->addItem( spacer5 ); layout17_2->addLayout( layout16 ); - confirmationToQuit = new QCheckBox( privateLayoutWidget_3, "confirmationToQuit" ); + confirmationToQuit = new QCheckBox( privateLayoutWidget_2, "confirmationToQuit" ); confirmationToQuit->setChecked( TRUE ); layout17_2->addWidget( confirmationToQuit ); - checkedTray = new QCheckBox( privateLayoutWidget_3, "checkedTray" ); + checkedTray = new QCheckBox( privateLayoutWidget_2, "checkedTray" ); layout17_2->addWidget( checkedTray ); layout16_2 = new QHBoxLayout( 0, 0, 6, "layout16_2"); - textLabel1_6 = new QLabel( privateLayoutWidget_3, "textLabel1_6" ); + textLabel1_6 = new QLabel( privateLayoutWidget_2, "textLabel1_6" ); layout16_2->addWidget( textLabel1_6 ); - voicemailNumber = new QLineEdit( privateLayoutWidget_3, "voicemailNumber" ); + voicemailNumber = new QLineEdit( privateLayoutWidget_2, "voicemailNumber" ); layout16_2->addWidget( voicemailNumber ); spacer6_2 = new QSpacerItem( 61, 21, QSizePolicy::Expanding, QSizePolicy::Minimum ); layout16_2->addItem( spacer6_2 ); @@ -1143,63 +1146,32 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool Tab_Preferences->insertTab( TabPage, QString("") ); layout17->addWidget( Tab_Preferences ); - Tab_About = new QTabWidget( privateLayoutWidget, "Tab_About" ); + Tab_About = new QTabWidget( this, "Tab_About" ); - DriversPage_5 = new QWidget( Tab_About, "DriversPage_5" ); + DriversPage_3 = new QWidget( Tab_About, "DriversPage_3" ); - pixmapLabel1 = new QLabel( DriversPage_5, "pixmapLabel1" ); + pixmapLabel1 = new QLabel( DriversPage_3, "pixmapLabel1" ); pixmapLabel1->setGeometry( QRect( 50, 40, 312, 91 ) ); pixmapLabel1->setPixmap( image0 ); pixmapLabel1->setScaledContents( TRUE ); - textLabel2_2 = new QLabel( DriversPage_5, "textLabel2_2" ); + textLabel2_2 = new QLabel( DriversPage_3, "textLabel2_2" ); textLabel2_2->setGeometry( QRect( 20, 170, 371, 121 ) ); - Tab_About->insertTab( DriversPage_5, QString("") ); + Tab_About->insertTab( DriversPage_3, QString("") ); - CodecsPage_4 = new QWidget( Tab_About, "CodecsPage_4" ); + CodecsPage_2 = new QWidget( Tab_About, "CodecsPage_2" ); - textLabel1 = new QLabel( CodecsPage_4, "textLabel1" ); + textLabel1 = new QLabel( CodecsPage_2, "textLabel1" ); textLabel1->setGeometry( QRect( 85, 126, 291, 131 ) ); - pixmapLabel2 = new QLabel( CodecsPage_4, "pixmapLabel2" ); + pixmapLabel2 = new QLabel( CodecsPage_2, "pixmapLabel2" ); pixmapLabel2->setGeometry( QRect( 130, 50, 173, 48 ) ); pixmapLabel2->setPixmap( image1 ); pixmapLabel2->setScaledContents( TRUE ); - Tab_About->insertTab( CodecsPage_4, QString("") ); + Tab_About->insertTab( CodecsPage_2, QString("") ); layout17->addWidget( Tab_About ); - layout31->addLayout( layout17 ); - layout20->addLayout( layout31 ); - layout19_2 = new QVBoxLayout( 0, 0, 6, "layout19_2"); - - line1 = new QFrame( privateLayoutWidget, "line1" ); - line1->setFrameShape( QFrame::HLine ); - line1->setFrameShadow( QFrame::Sunken ); - line1->setFrameShape( QFrame::HLine ); - layout19_2->addWidget( line1 ); - - layout28 = new QHBoxLayout( 0, 0, 6, "layout28"); - - buttonHelp = new QPushButton( privateLayoutWidget, "buttonHelp" ); - buttonHelp->setAutoDefault( TRUE ); - layout28->addWidget( buttonHelp ); - Horizontal_Spacing2 = new QSpacerItem( 160, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); - layout28->addItem( Horizontal_Spacing2 ); - - buttonSave = new QPushButton( privateLayoutWidget, "buttonSave" ); - buttonSave->setAutoDefault( TRUE ); - buttonSave->setDefault( TRUE ); - layout28->addWidget( buttonSave ); - - buttonOk = new QPushButton( privateLayoutWidget, "buttonOk" ); - buttonOk->setAutoDefault( TRUE ); - layout28->addWidget( buttonOk ); - - buttonCancel = new QPushButton( privateLayoutWidget, "buttonCancel" ); - buttonCancel->setAutoDefault( TRUE ); - layout28->addWidget( buttonCancel ); - layout19_2->addLayout( layout28 ); - layout20->addLayout( layout19_2 ); + ConfigurationPanelLayout->addLayout( layout17, 0, 1 ); languageChange(); resize( QSize(561, 552).expandedTo(minimumSizeHint()) ); clearWState( WState_Polished ); @@ -1244,9 +1216,7 @@ ConfigurationPanel::ConfigurationPanel( QWidget* parent, const char* name, bool setTabOrder( codec2, codec3 ); setTabOrder( codec3, codec4 ); setTabOrder( codec4, codec5 ); - setTabOrder( codec5, Tab_Video ); - setTabOrder( Tab_Video, Tab_Network ); - setTabOrder( Tab_Network, Tab_Preferences ); + setTabOrder( codec5, Tab_Preferences ); setTabOrder( Tab_Preferences, Tab_About ); setTabOrder( Tab_About, Register ); setTabOrder( Register, useStunNo ); @@ -1270,6 +1240,14 @@ ConfigurationPanel::~ConfigurationPanel() void ConfigurationPanel::languageChange() { setCaption( tr( "Configuration panel" ) ); + buttonHelp->setText( tr( "&Help" ) ); + buttonHelp->setAccel( QKeySequence( tr( "F1" ) ) ); + buttonSave->setText( tr( "&Save" ) ); + buttonSave->setAccel( QKeySequence( tr( "Alt+S" ) ) ); + buttonOk->setText( tr( "&OK" ) ); + buttonOk->setAccel( QKeySequence( tr( "Alt+O" ) ) ); + buttonCancel->setText( tr( "&Cancel" ) ); + buttonCancel->setAccel( QKeySequence( tr( "F, Backspace" ) ) ); Menu->setCurrentItem( -1 ); TitleTab->setText( tr( "Setup signalisation" ) ); groupBox1->setTitle( QString::null ); @@ -1329,13 +1307,9 @@ void ConfigurationPanel::languageChange() textLabel1_4_5->setText( tr( "5" ) ); Tab_Audio->changeTab( CodecsPage, tr( "Codecs" ) ); Tab_Audio->changeTab( RingPage, tr( "Ringtones" ) ); - Tab_Video->changeTab( DriversPage_2, tr( "Drivers" ) ); - Tab_Video->changeTab( CodecsPage_2, tr( "Codecs" ) ); - Tab_Network->changeTab( DriversPage_3, QString::null ); - Tab_Network->changeTab( CodecsPage_3, QString::null ); buttonApplySkin->setText( tr( "&Apply" ) ); buttonApplySkin->setAccel( QKeySequence( tr( "Alt+A" ) ) ); - Tab_Preferences->changeTab( DriversPage_4, tr( "Themes" ) ); + Tab_Preferences->changeTab( DriversPage_2, tr( "Themes" ) ); textLabel1_2->setText( tr( "Zone tone:" ) ); zoneToneChoice->clear(); zoneToneChoice->insertItem( tr( "North America" ) ); @@ -1352,21 +1326,13 @@ void ConfigurationPanel::languageChange() textLabel2_2->setText( tr( "<p align=\"center\">\n" "Copyright (C) 2004-2005 Savoir-faire Linux inc.<br><br>\n" "Laurielle LEA <laurielle.lea@savoirfairelinux.com><br><br>\n" -"SFLPhone-0.4 is released under the General Public License.<br>\n" +"SFLPhone-0.3.1 is released under the General Public License.<br>\n" "For more information, see http://www.sflphone.org<br>\n" "</p>" ) ); - Tab_About->changeTab( DriversPage_5, tr( "About SFLPhone" ) ); + Tab_About->changeTab( DriversPage_3, tr( "About SFLPhone" ) ); textLabel1->setText( tr( "<p align=\"center\">Website: http://www.savoirfairelinux.com<br><br>\n" "5505, Saint-Laurent - bureau 3030<br>\n" "Montreal, Quebec H2T 1S6</p>" ) ); - Tab_About->changeTab( CodecsPage_4, tr( "About Savoir-faire Linux inc." ) ); - buttonHelp->setText( tr( "&Help" ) ); - buttonHelp->setAccel( QKeySequence( tr( "F1" ) ) ); - buttonSave->setText( tr( "&Save" ) ); - buttonSave->setAccel( QKeySequence( tr( "Alt+S" ) ) ); - buttonOk->setText( tr( "&OK" ) ); - buttonOk->setAccel( QKeySequence( tr( "Alt+O" ) ) ); - buttonCancel->setText( tr( "&Cancel" ) ); - buttonCancel->setAccel( QKeySequence( tr( "F, Backspace" ) ) ); + Tab_About->changeTab( CodecsPage_2, tr( "About Savoir-faire Linux inc." ) ); } diff --git a/src/gui/qt/configurationpanelui.h b/src/gui/qt/configurationpanelui.h index eb39e18276a0dd44c3dc00b876d9267a1df89df0..397163a56b28d442d0d0ac9bacb5d6705134c111 100644 --- a/src/gui/qt/configurationpanelui.h +++ b/src/gui/qt/configurationpanelui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'gui/qt/configurationpanel.ui' ** -** Created: Thu May 26 16:51:17 2005 +** Created: Fri May 27 17:07:54 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! @@ -18,16 +18,16 @@ class QVBoxLayout; class QHBoxLayout; class QGridLayout; class QSpacerItem; +class QFrame; +class QPushButton; class QListBox; class QListBoxItem; class QLabel; -class QFrame; class QTabWidget; class QWidget; class QGroupBox; class QLineEdit; class QCheckBox; -class QPushButton; class QButtonGroup; class QRadioButton; class QSpinBox; @@ -41,6 +41,11 @@ public: ConfigurationPanel( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); ~ConfigurationPanel(); + QFrame* line1; + QPushButton* buttonHelp; + QPushButton* buttonSave; + QPushButton* buttonOk; + QPushButton* buttonCancel; QListBox* Menu; QLabel* TitleTab; QFrame* line2; @@ -94,14 +99,8 @@ public: QLabel* textLabel1_4_5; QWidget* RingPage; QComboBox* ringsChoice; - QTabWidget* Tab_Video; - QWidget* DriversPage_2; - QWidget* CodecsPage_2; - QTabWidget* Tab_Network; - QWidget* DriversPage_3; - QWidget* CodecsPage_3; QTabWidget* Tab_Preferences; - QWidget* DriversPage_4; + QWidget* DriversPage_2; QComboBox* SkinChoice; QPushButton* buttonApplySkin; QWidget* TabPage; @@ -112,17 +111,12 @@ public: QLabel* textLabel1_6; QLineEdit* voicemailNumber; QTabWidget* Tab_About; - QWidget* DriversPage_5; + QWidget* DriversPage_3; QLabel* pixmapLabel1; QLabel* textLabel2_2; - QWidget* CodecsPage_4; + QWidget* CodecsPage_2; QLabel* textLabel1; QLabel* pixmapLabel2; - QFrame* line1; - QPushButton* buttonHelp; - QPushButton* buttonSave; - QPushButton* buttonOk; - QPushButton* buttonCancel; public slots: virtual void saveSlot(); @@ -132,14 +126,16 @@ public slots: virtual void driverSlot( int id ); protected: - QVBoxLayout* layout20; - QHBoxLayout* layout31; + QGridLayout* ConfigurationPanelLayout; + QVBoxLayout* layout19; + QHBoxLayout* layout28; + QSpacerItem* Horizontal_Spacing2; QVBoxLayout* layout17; QVBoxLayout* layout24; QGridLayout* groupBox1Layout; QVBoxLayout* layout23; QSpacerItem* spacer9; - QHBoxLayout* layout19; + QHBoxLayout* layout19_2; QSpacerItem* spacer7; QVBoxLayout* stunButtonGroupLayout; QGridLayout* SettingsDTMFLayout; @@ -160,9 +156,6 @@ protected: QSpacerItem* spacer5; QHBoxLayout* layout16_2; QSpacerItem* spacer6_2; - QVBoxLayout* layout19_2; - QHBoxLayout* layout28; - QSpacerItem* Horizontal_Spacing2; protected slots: virtual void languageChange(); diff --git a/src/gui/qt/mydisplay.cpp b/src/gui/qt/mydisplay.cpp index 017990103fbcce0fb33aa13e59d986ac0cd374b9..238da2463dfb95d4ce25b89126d61a8ab5c20672 100644 --- a/src/gui/qt/mydisplay.cpp +++ b/src/gui/qt/mydisplay.cpp @@ -34,9 +34,7 @@ #define TEXT_LINE 2 #define TIMER_LINE 4 #define FONT_FAMILY "Courier" -//#define FONT_FAMILY "Monospace" -//#define FONT_FAMILY "Fixed" -//#define FONT_FAMILY "MiscFixed" +// Others fixed font support "Monospace", "Fixed", "MiscFixed" #define FONT_SIZE 10 /////////////////////////////////////////////////////////////////////////////// diff --git a/src/gui/qt/phonebook.ui b/src/gui/qt/phonebook.ui deleted file mode 100644 index d5419d309afbf4cce23365c8597325b93f907784..0000000000000000000000000000000000000000 --- a/src/gui/qt/phonebook.ui +++ /dev/null @@ -1,247 +0,0 @@ -<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> -<class>PhoneBook</class> -<widget class="QDialog"> - <property name="name"> - <cstring>PhoneBook</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>511</width> - <height>282</height> - </rect> - </property> - <property name="caption"> - <string>Phone book</string> - </property> - <property name="sizeGripEnabled"> - <bool>true</bool> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2"> - <property name="name"> - <cstring>Layout1</cstring> - </property> - <hbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <property name="margin"> - <number>0</number> - </property> - <property name="spacing"> - <number>6</number> - </property> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonHelp</cstring> - </property> - <property name="text"> - <string>&Help</string> - </property> - <property name="accel"> - <string>F1</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>Horizontal Spacing2</cstring> - </property> - <property name="orientation"> - <enum>Horizontal</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>20</width> - <height>20</height> - </size> - </property> - </spacer> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonOk</cstring> - </property> - <property name="text"> - <string>&OK</string> - </property> - <property name="accel"> - <string></string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonCancel</cstring> - </property> - <property name="text"> - <string>&Cancel</string> - </property> - <property name="accel"> - <string></string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - </widget> - </hbox> - </widget> - <widget class="QListView" row="0" column="0"> - <column> - <property name="text"> - <string>Name</string> - </property> - <property name="clickable"> - <bool>true</bool> - </property> - <property name="resizable"> - <bool>true</bool> - </property> - </column> - <column> - <property name="text"> - <string>Address SIP</string> - </property> - <property name="clickable"> - <bool>true</bool> - </property> - <property name="resizable"> - <bool>true</bool> - </property> - </column> - <column> - <property name="text"> - <string>Mail</string> - </property> - <property name="clickable"> - <bool>true</bool> - </property> - <property name="resizable"> - <bool>true</bool> - </property> - </column> - <column> - <property name="text"> - <string>Phone</string> - </property> - <property name="clickable"> - <bool>true</bool> - </property> - <property name="resizable"> - <bool>true</bool> - </property> - </column> - <property name="name"> - <cstring>ContactList</cstring> - </property> - </widget> - <widget class="QLayoutWidget" row="0" column="1"> - <property name="name"> - <cstring>layout10</cstring> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonOk_2</cstring> - </property> - <property name="text"> - <string>&Add</string> - </property> - <property name="accel"> - <string>Alt+A</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonOk_3</cstring> - </property> - <property name="text"> - <string>&Delete</string> - </property> - <property name="accel"> - <string>Alt+D</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonOk_4</cstring> - </property> - <property name="text"> - <string>&Modify</string> - </property> - <property name="accel"> - <string>Alt+M</string> - </property> - <property name="autoDefault"> - <bool>true</bool> - </property> - <property name="default"> - <bool>true</bool> - </property> - </widget> - <spacer> - <property name="name"> - <cstring>spacer4</cstring> - </property> - <property name="orientation"> - <enum>Vertical</enum> - </property> - <property name="sizeType"> - <enum>Expanding</enum> - </property> - <property name="sizeHint"> - <size> - <width>21</width> - <height>91</height> - </size> - </property> - </spacer> - </vbox> - </widget> - </grid> -</widget> -<connections> - <connection> - <sender>buttonOk</sender> - <signal>clicked()</signal> - <receiver>PhoneBook</receiver> - <slot>accept()</slot> - </connection> - <connection> - <sender>buttonCancel</sender> - <signal>clicked()</signal> - <receiver>PhoneBook</receiver> - <slot>reject()</slot> - </connection> -</connections> -<layoutdefaults spacing="6" margin="11"/> -</UI> diff --git a/src/gui/qt/phonebookui.cpp b/src/gui/qt/phonebookui.cpp deleted file mode 100644 index 661406ee4fb85d1aa0099a65dc4f6ba8c66e458a..0000000000000000000000000000000000000000 --- a/src/gui/qt/phonebookui.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'gui/qt/phonebook.ui' -** -** Created: Thu May 26 16:51:16 2005 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "gui/qt/phonebookui.h" - -#include <qvariant.h> -#include <qpushbutton.h> -#include <qheader.h> -#include <qlistview.h> -#include <qlayout.h> -#include <qtooltip.h> -#include <qwhatsthis.h> - -/* - * Constructs a PhoneBook as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - * - * The dialog will by default be modeless, unless you set 'modal' to - * TRUE to construct a modal dialog. - */ -PhoneBook::PhoneBook( QWidget* parent, const char* name, bool modal, WFlags fl ) - : QDialog( parent, name, modal, fl ) -{ - if ( !name ) - setName( "PhoneBook" ); - setSizeGripEnabled( TRUE ); - PhoneBookLayout = new QGridLayout( this, 1, 1, 11, 6, "PhoneBookLayout"); - - Layout1 = new QHBoxLayout( 0, 0, 6, "Layout1"); - - buttonHelp = new QPushButton( this, "buttonHelp" ); - buttonHelp->setAutoDefault( TRUE ); - Layout1->addWidget( buttonHelp ); - Horizontal_Spacing2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); - Layout1->addItem( Horizontal_Spacing2 ); - - buttonOk = new QPushButton( this, "buttonOk" ); - buttonOk->setAutoDefault( TRUE ); - buttonOk->setDefault( TRUE ); - Layout1->addWidget( buttonOk ); - - buttonCancel = new QPushButton( this, "buttonCancel" ); - buttonCancel->setAutoDefault( TRUE ); - Layout1->addWidget( buttonCancel ); - - PhoneBookLayout->addMultiCellLayout( Layout1, 1, 1, 0, 1 ); - - ContactList = new QListView( this, "ContactList" ); - ContactList->addColumn( tr( "Name" ) ); - ContactList->addColumn( tr( "Address SIP" ) ); - ContactList->addColumn( tr( "Mail" ) ); - ContactList->addColumn( tr( "Phone" ) ); - - PhoneBookLayout->addWidget( ContactList, 0, 0 ); - - layout10 = new QVBoxLayout( 0, 0, 6, "layout10"); - - buttonOk_2 = new QPushButton( this, "buttonOk_2" ); - buttonOk_2->setAutoDefault( TRUE ); - buttonOk_2->setDefault( TRUE ); - layout10->addWidget( buttonOk_2 ); - - buttonOk_3 = new QPushButton( this, "buttonOk_3" ); - buttonOk_3->setAutoDefault( TRUE ); - buttonOk_3->setDefault( TRUE ); - layout10->addWidget( buttonOk_3 ); - - buttonOk_4 = new QPushButton( this, "buttonOk_4" ); - buttonOk_4->setAutoDefault( TRUE ); - buttonOk_4->setDefault( TRUE ); - layout10->addWidget( buttonOk_4 ); - spacer4 = new QSpacerItem( 21, 91, QSizePolicy::Minimum, QSizePolicy::Expanding ); - layout10->addItem( spacer4 ); - - PhoneBookLayout->addLayout( layout10, 0, 1 ); - languageChange(); - resize( QSize(511, 282).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); - - // signals and slots connections - connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) ); - connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) ); -} - -/* - * Destroys the object and frees any allocated resources - */ -PhoneBook::~PhoneBook() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void PhoneBook::languageChange() -{ - setCaption( tr( "Phone book" ) ); - buttonHelp->setText( tr( "&Help" ) ); - buttonHelp->setAccel( QKeySequence( tr( "F1" ) ) ); - buttonOk->setText( tr( "&OK" ) ); - buttonOk->setAccel( QKeySequence( QString::null ) ); - buttonCancel->setText( tr( "&Cancel" ) ); - buttonCancel->setAccel( QKeySequence( QString::null ) ); - ContactList->header()->setLabel( 0, tr( "Name" ) ); - ContactList->header()->setLabel( 1, tr( "Address SIP" ) ); - ContactList->header()->setLabel( 2, tr( "Mail" ) ); - ContactList->header()->setLabel( 3, tr( "Phone" ) ); - buttonOk_2->setText( tr( "&Add" ) ); - buttonOk_2->setAccel( QKeySequence( tr( "Alt+A" ) ) ); - buttonOk_3->setText( tr( "&Delete" ) ); - buttonOk_3->setAccel( QKeySequence( tr( "Alt+D" ) ) ); - buttonOk_4->setText( tr( "&Modify" ) ); - buttonOk_4->setAccel( QKeySequence( tr( "Alt+M" ) ) ); -} - diff --git a/src/gui/qt/phonebookui.h b/src/gui/qt/phonebookui.h deleted file mode 100644 index 04ab15c65a9a4010c82e68cb88e0f1f1d15c35c5..0000000000000000000000000000000000000000 --- a/src/gui/qt/phonebookui.h +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'gui/qt/phonebook.ui' -** -** Created: Thu May 26 16:51:16 2005 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef PHONEBOOK_H -#define PHONEBOOK_H - -#include <qvariant.h> -#include <qdialog.h> - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QPushButton; -class QListView; -class QListViewItem; - -class PhoneBook : public QDialog -{ - Q_OBJECT - -public: - PhoneBook( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); - ~PhoneBook(); - - QPushButton* buttonHelp; - QPushButton* buttonOk; - QPushButton* buttonCancel; - QListView* ContactList; - QPushButton* buttonOk_2; - QPushButton* buttonOk_3; - QPushButton* buttonOk_4; - -protected: - QGridLayout* PhoneBookLayout; - QHBoxLayout* Layout1; - QSpacerItem* Horizontal_Spacing2; - QVBoxLayout* layout10; - QSpacerItem* spacer4; - -protected slots: - virtual void languageChange(); - -}; - -#endif // PHONEBOOK_H diff --git a/src/gui/qt/point.cpp b/src/gui/qt/point.cpp index ce124d033dc28f4b2da6627de5d3c7927cbdf147..a30dace943503e86fd81b1b1f5022dc3b601f827 100644 --- a/src/gui/qt/point.cpp +++ b/src/gui/qt/point.cpp @@ -64,13 +64,6 @@ Point::getSubstrY (const char* key) { */ int Point::getX (const char* key) { -/* - char * value = skinConfigTree->getValue(NULL, key); - string tmp(value); - int index = tmp.find(','); - return atoi((tmp.substr(0, index)).data()); -*/ - int index; string tmp = getSubstrX(key); @@ -87,21 +80,6 @@ Point::getX (const char* key) { */ int Point::getY (const char* key) { -/* - char * value = skinConfigTree->getValue(NULL, key); - string tmp(value); - int index1, index2; - - index1 = tmp.find(','); - if (tmp.find('-') == string::npos) { - // If string tmp doesn't contain '-' - return atoi((tmp.substr(index1 + 1, tmp.length() - index1)).data()); - } else { - // If string tmp contains '-', it looks like 'y-variation' - index2 = tmp.find('-'); - return atoi((tmp.substr(index1 + 1, index2 - index1)).data()); - } -*/ int index; string tmp = getSubstrY(key); @@ -118,12 +96,6 @@ Point::getY (const char* key) { */ int Point::getVariation (const char* key) { -/* - char * value = skinConfigTree->getValue(NULL, key); - string tmp(value); - int index = tmp.find('-'); - return atoi((tmp.substr(index + 1, tmp.length() - index)).data()); -*/ int index; string str; diff --git a/src/gui/qt/qtGUImainwindow.cpp b/src/gui/qt/qtGUImainwindow.cpp index b3f279a29b5c2331615abf7ed4c095c674240da8..c3ea1fe6127f9f7b3c424b3abfdcba1da3c863db 100644 --- a/src/gui/qt/qtGUImainwindow.cpp +++ b/src/gui/qt/qtGUImainwindow.cpp @@ -18,10 +18,6 @@ */ -//////////////////////////////////////////////////////////////////////////////// -// QtGUIMainWindow Implementation // -//////////////////////////////////////////////////////////////////////////////// - #include "../../configurationtree.h" #include <stdio.h> @@ -46,7 +42,6 @@ #include "../../user_cfg.h" #include "../../skin.h" #include "configurationpanelui.h" -#include "voIPLinkmanagementui.h" #include "jpushbutton.h" #include "numerickeypadtools.h" #include "point.h" @@ -111,8 +106,6 @@ QtGUIMainWindow::QtGUIMainWindow (QWidget *parent, const char *name, WFlags f, // Create configuration_panel _panel = new ConfigurationPanel (0, 0, false); - //VoIPLinkManagement* vlm = new VoIPLinkManagement(); - //vlm->show(); // URL input dialog _urlinput = new URL_Input (this); @@ -943,17 +936,6 @@ QtGUIMainWindow::qt_refuseCall (short id) return i; } -int -QtGUIMainWindow::qt_cancelCall (short id) -{ - int i; - i = cancelCall(id); - getPhoneLine(id)->setStatus(QString(getCall(id)->getStatus())); - displayStatus(HUNGUP_STATUS); - - return i; -} - /////////////////////////////////////////////////////////////////////////////// // Public Methods implementations // /////////////////////////////////////////////////////////////////////////////// @@ -1279,7 +1261,6 @@ QtGUIMainWindow::configuration (void) { void QtGUIMainWindow::addressBook (void) { -// TODO: phonebook->show(); QMessageBox::information(this, "Directory", "This feature is not implemented yet", QMessageBox::Yes); } diff --git a/src/gui/qt/qtGUImainwindow.h b/src/gui/qt/qtGUImainwindow.h index 8f29350e36dfddff816d4e831bcc776bfd77455d..5993f154136f1a56ea5a949805e9053d708914e6 100644 --- a/src/gui/qt/qtGUImainwindow.h +++ b/src/gui/qt/qtGUImainwindow.h @@ -111,7 +111,6 @@ public: void qt_muteOn (short id); void qt_muteOff (short id); int qt_refuseCall (short id); - int qt_cancelCall (short id); /* * Return the call corresponding to the id diff --git a/src/gui/qt/url_inputui.cpp b/src/gui/qt/url_inputui.cpp index fca3efe3d6045f3964168bc7912f911ca50ea18a..d4f1dd2662577c9ff4b4e65b7d39a34e75183e8d 100644 --- a/src/gui/qt/url_inputui.cpp +++ b/src/gui/qt/url_inputui.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'gui/qt/url_input.ui' ** -** Created: Thu May 26 16:51:17 2005 +** Created: Fri May 27 17:07:54 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/url_inputui.h b/src/gui/qt/url_inputui.h index 41074aa1cefc005d4a77eb71ab3d3e9fb66afd7b..914bdc2e6c996fb901f7fadb1efb8eb361335b60 100644 --- a/src/gui/qt/url_inputui.h +++ b/src/gui/qt/url_inputui.h @@ -1,7 +1,7 @@ /**************************************************************************** ** Form interface generated from reading ui file 'gui/qt/url_input.ui' ** -** Created: Thu May 26 16:51:17 2005 +** Created: Fri May 27 17:07:54 2005 ** by: The User Interface Compiler ($Id$) ** ** WARNING! All changes made in this file will be lost! diff --git a/src/gui/qt/voIPLinkmanagement.ui b/src/gui/qt/voIPLinkmanagement.ui deleted file mode 100644 index 6b9c70af8bfc9621075094272820056e18ad894e..0000000000000000000000000000000000000000 --- a/src/gui/qt/voIPLinkmanagement.ui +++ /dev/null @@ -1,333 +0,0 @@ -<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> -<class>VoIPLinkManagement</class> -<widget class="QWidget"> - <property name="name"> - <cstring>VoIPLinkManagement</cstring> - </property> - <property name="geometry"> - <rect> - <x>0</x> - <y>0</y> - <width>589</width> - <height>323</height> - </rect> - </property> - <property name="caption"> - <string>VoIP Link management</string> - </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout15</cstring> - </property> - <property name="geometry"> - <rect> - <x>11</x> - <y>31</y> - <width>563</width> - <height>280</height> - </rect> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLayoutWidget" row="0" column="0"> - <property name="name"> - <cstring>layout30</cstring> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QListBox"> - <item> - <property name="text"> - <string>SIP sfl</string> - </property> - </item> - <item> - <property name="text"> - <string>SIP fwd</string> - </property> - </item> - <item> - <property name="text"> - <string>IAX sfl</string> - </property> - </item> - <property name="name"> - <cstring>listVoiplink</cstring> - </property> - <property name="enabled"> - <bool>true</bool> - </property> - <property name="cursor"> - <cursor>13</cursor> - </property> - <property name="currentItem"> - <number>0</number> - </property> - <property name="selectionMode"> - <enum>Single</enum> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonAddVoiplink</cstring> - </property> - <property name="text"> - <string>Add VoIP Link</string> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>buttonRemoveVoiplink</cstring> - </property> - <property name="text"> - <string>Remove VoIP Link</string> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>up</cstring> - </property> - <property name="text"> - <string></string> - </property> - <property name="pixmap"> - <pixmap>image0</pixmap> - </property> - </widget> - <widget class="QPushButton"> - <property name="name"> - <cstring>down</cstring> - </property> - <property name="text"> - <string></string> - </property> - <property name="pixmap"> - <pixmap>image1</pixmap> - </property> - </widget> - </vbox> - </widget> - <widget class="QGroupBox" row="0" column="1"> - <property name="name"> - <cstring>parameters</cstring> - </property> - <property name="title"> - <string></string> - </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout14</cstring> - </property> - <property name="geometry"> - <rect> - <x>12</x> - <y>22</y> - <width>390</width> - <height>230</height> - </rect> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLayoutWidget"> - <property name="name"> - <cstring>layout26</cstring> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLayoutWidget" row="0" column="0"> - <property name="name"> - <cstring>layout24</cstring> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel1</cstring> - </property> - <property name="text"> - <string>Your name</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel2</cstring> - </property> - <property name="text"> - <string>User part of URL</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel3</cstring> - </property> - <property name="text"> - <string>Host part of URL</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel4</cstring> - </property> - <property name="text"> - <string>Authorization user</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel5</cstring> - </property> - <property name="text"> - <string>Password</string> - </property> - </widget> - <widget class="QLabel"> - <property name="name"> - <cstring>textLabel6</cstring> - </property> - <property name="text"> - <string>Proxy</string> - </property> - </widget> - </vbox> - </widget> - <widget class="QLayoutWidget" row="0" column="1"> - <property name="name"> - <cstring>layout23</cstring> - </property> - <vbox> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="QLineEdit"> - <property name="name"> - <cstring>fullName</cstring> - </property> - </widget> - <widget class="QLineEdit"> - <property name="name"> - <cstring>userPart</cstring> - </property> - </widget> - <widget class="QLineEdit"> - <property name="name"> - <cstring>hostPart</cstring> - </property> - </widget> - <widget class="QLineEdit"> - <property name="name"> - <cstring>authUser</cstring> - </property> - </widget> - <widget class="QLineEdit"> - <property name="name"> - <cstring>password</cstring> - </property> - <property name="echoMode"> - <enum>Password</enum> - </property> - </widget> - <widget class="QLineEdit"> - <property name="name"> - <cstring>proxy</cstring> - </property> - <property name="echoMode"> - <enum>Normal</enum> - </property> - </widget> - </vbox> - </widget> - </grid> - </widget> - <widget class="QCheckBox"> - <property name="name"> - <cstring>autoRegister</cstring> - </property> - <property name="text"> - <string>Auto-register</string> - </property> - </widget> - </vbox> - </widget> - </widget> - </grid> - </widget> -</widget> -<images> - <image name="image0"> - <data format="PNG" length="206">89504e470d0a1a0a0000000d494844520000000d000000100806000000cda3f53900000095494441542891dd91b10dc4200c459fa9b340ca640c32bf192003d0b2003d69ce11f1f97457df97108227fc30483d2b746081d61bebb242872defa314155bcf3cb5de1e1bad37b6bc0f809c8f1171a9677d33e0e28d2932f878a3584f9f0e84462dca80f1ebd0a2c880af061fd1a2774f36e77cdc85ec4a334ff62a339813f1f09fe6443c3d0caf8adee4f9e39faca23779fe8f3d5d9601dc62f81b177a0000000049454e44ae426082</data> - </image> - <image name="image1"> - <data format="PNG" length="195">89504e470d0a1a0a0000000d494844520000000d000000100806000000cda3f5390000008a494441542891dd91b10dc3300c049facb5804a6780ec3f0707a04a2ec05e29620514a3c476eb6f24f0717c104f2a0a388002981b6aa9d89e8f8e5d4d94b2cfe6360dcc0d512b9fc7a7960a38de6fd0cae72961df9893b2cf71c367634acafe1d6fa20e745c143751ba0234516273c359b089d274d3113880af9e7e811158f694c108fced69803961f82f0746c5f7b2f4f32c0000000049454e44ae426082</data> - </image> -</images> -<connections> - <connection> - <sender>listVoiplink</sender> - <signal>clicked(QListBoxItem*)</signal> - <receiver>VoIPLinkManagement</receiver> - <slot>changeParamSlot()</slot> - </connection> - <connection> - <sender>up</sender> - <signal>clicked()</signal> - <receiver>VoIPLinkManagement</receiver> - <slot>moveUpItemSlot()</slot> - </connection> - <connection> - <sender>down</sender> - <signal>clicked()</signal> - <receiver>VoIPLinkManagement</receiver> - <slot>moveDownItemSlot()</slot> - </connection> - <connection> - <sender>buttonRemoveVoiplink</sender> - <signal>clicked()</signal> - <receiver>VoIPLinkManagement</receiver> - <slot>removeVoIPLinkSlot()</slot> - </connection> - <connection> - <sender>buttonAddVoiplink</sender> - <signal>clicked()</signal> - <receiver>VoIPLinkManagement</receiver> - <slot>addVoIPLinkSlot()</slot> - </connection> -</connections> -<tabstops> - <tabstop>fullName</tabstop> - <tabstop>userPart</tabstop> - <tabstop>hostPart</tabstop> - <tabstop>authUser</tabstop> - <tabstop>password</tabstop> - <tabstop>proxy</tabstop> - <tabstop>autoRegister</tabstop> - <tabstop>listVoiplink</tabstop> - <tabstop>buttonAddVoiplink</tabstop> - <tabstop>buttonRemoveVoiplink</tabstop> - <tabstop>up</tabstop> - <tabstop>down</tabstop> -</tabstops> -<includes> - <include location="local" impldecl="in implementation">voIPLinkmanagement.ui.h</include> -</includes> -<slots> - <slot>changeParamSlot()</slot> - <slot>moveUpItemSlot()</slot> - <slot>moveDownItemSlot()</slot> - <slot>addVoIPLinkSlot()</slot> - <slot>removeVoIPLinkSlot()</slot> -</slots> -<functions> - <function access="private" specifier="non virtual">init()</function> -</functions> -<layoutdefaults spacing="6" margin="11"/> -</UI> diff --git a/src/gui/qt/voIPLinkmanagement.ui.h b/src/gui/qt/voIPLinkmanagement.ui.h deleted file mode 100644 index b98d86d02d62acb5b461a4c473ca4ccbbc15c274..0000000000000000000000000000000000000000 --- a/src/gui/qt/voIPLinkmanagement.ui.h +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** ui.h extension file, included from the uic-generated form implementation. -** -** If you want to add, delete, or rename functions or slots, use -** Qt Designer to update this file, preserving your code. -** -** You should not define a constructor or destructor in this file. -** Instead, write your code in functions called init() and destroy(). -** These will automatically be called by the form's constructor and -** destructor. -*****************************************************************************/ - -void VoIPLinkManagement::init() -{ -parameters->setTitle(listVoiplink->text(0)); -} - -void VoIPLinkManagement::changeParamSlot() -{ - int index = listVoiplink->currentItem(); - parameters->setTitle(listVoiplink->text(index)); -} - - -void VoIPLinkManagement::moveUpItemSlot() -{ - int i = listVoiplink->currentItem(); - if (i > 0) { - QString temp = listVoiplink->text(i - 1); - listVoiplink->changeItem( listVoiplink->text(i), i - 1); - listVoiplink ->changeItem(temp, i); - listVoiplink ->setCurrentItem(i - 1); - } -} - - -void VoIPLinkManagement::moveDownItemSlot() -{ - int i = listVoiplink->currentItem(); - if (i < (int)listVoiplink->count() - 1) { - QString temp = listVoiplink->text(i + 1); - listVoiplink->changeItem( listVoiplink->text(i), i + 1); - listVoiplink ->changeItem(temp, i); - listVoiplink ->setCurrentItem(i + 1); - } -} - - -void VoIPLinkManagement::addVoIPLinkSlot() -{ - listVoiplink->insertItem(QString("TOTO")); -} - - -void VoIPLinkManagement::removeVoIPLinkSlot() -{ - listVoiplink->removeItem(listVoiplink->currentItem()); -} diff --git a/src/gui/qt/voIPLinkmanagementui.cpp b/src/gui/qt/voIPLinkmanagementui.cpp deleted file mode 100644 index b55101915d922da97bff739ea2fd05e18c9ff024..0000000000000000000000000000000000000000 --- a/src/gui/qt/voIPLinkmanagementui.cpp +++ /dev/null @@ -1,229 +0,0 @@ -/**************************************************************************** -** Form implementation generated from reading ui file 'gui/qt/voIPLinkmanagement.ui' -** -** Created: Thu May 26 16:51:18 2005 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#include "gui/qt/voIPLinkmanagementui.h" - -#include <qvariant.h> -#include <qpushbutton.h> -#include <qlistbox.h> -#include <qgroupbox.h> -#include <qlabel.h> -#include <qlineedit.h> -#include <qcheckbox.h> -#include <qlayout.h> -#include <qtooltip.h> -#include <qwhatsthis.h> -#include <qimage.h> -#include <qpixmap.h> - -#include "voIPLinkmanagement.ui.h" -static const unsigned char image0_data[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xcd, 0xa3, 0xf5, 0x39, 0x00, 0x00, 0x00, - 0x95, 0x49, 0x44, 0x41, 0x54, 0x28, 0x91, 0xdd, 0x91, 0xb1, 0x0d, 0xc4, - 0x20, 0x0c, 0x45, 0x9f, 0xa9, 0xb3, 0x40, 0xca, 0x64, 0x0c, 0x32, 0xbf, - 0x19, 0x20, 0x03, 0xd0, 0xb2, 0x00, 0x3d, 0x69, 0xce, 0x11, 0xf1, 0xf9, - 0x74, 0x57, 0xdf, 0x97, 0x10, 0x82, 0x27, 0xfc, 0x30, 0x48, 0x3d, 0x2b, - 0x74, 0x60, 0x81, 0xd6, 0x1b, 0xeb, 0xb2, 0x42, 0x87, 0x2d, 0xef, 0xa3, - 0x14, 0x15, 0x5b, 0xcf, 0x3c, 0xb5, 0xde, 0x1e, 0x1b, 0xad, 0x37, 0xb6, - 0xbc, 0x0f, 0x80, 0x9c, 0x8f, 0x11, 0x71, 0xa9, 0x67, 0x7d, 0x33, 0xe0, - 0xe2, 0x8d, 0x29, 0x32, 0xf8, 0x78, 0xa3, 0x58, 0x4f, 0x9f, 0x0e, 0x84, - 0x46, 0x2d, 0xca, 0x80, 0xf1, 0xeb, 0xd0, 0xa2, 0xc8, 0x80, 0xaf, 0x06, - 0x1f, 0xd1, 0xa2, 0x77, 0x4f, 0x36, 0xe7, 0x7c, 0xdc, 0x85, 0xec, 0x4a, - 0x33, 0x4f, 0xf6, 0x2a, 0x33, 0x98, 0x13, 0xf1, 0xf0, 0x9f, 0xe6, 0x44, - 0x3c, 0x3d, 0x0c, 0xaf, 0x8a, 0xde, 0xe4, 0xf9, 0xe3, 0x9f, 0xac, 0xa2, - 0x37, 0x79, 0xfe, 0x8f, 0x3d, 0x5d, 0x96, 0x01, 0xdc, 0x62, 0xf8, 0x1b, - 0x17, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, - 0x60, 0x82 -}; - -static const unsigned char image1_data[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x10, - 0x08, 0x06, 0x00, 0x00, 0x00, 0xcd, 0xa3, 0xf5, 0x39, 0x00, 0x00, 0x00, - 0x8a, 0x49, 0x44, 0x41, 0x54, 0x28, 0x91, 0xdd, 0x91, 0xb1, 0x0d, 0xc3, - 0x30, 0x0c, 0x04, 0x9f, 0xac, 0xb5, 0x80, 0x4a, 0x67, 0x80, 0xec, 0x3f, - 0x07, 0x07, 0xa0, 0x4a, 0x2e, 0xc0, 0x5e, 0x29, 0x62, 0x05, 0x14, 0xa3, - 0xc4, 0x76, 0xeb, 0x6f, 0x24, 0xf0, 0x71, 0x7c, 0x10, 0x4f, 0x2a, 0x0a, - 0x38, 0x80, 0x02, 0x98, 0x1b, 0x6a, 0xa9, 0xd8, 0x9e, 0x8f, 0x8e, 0x5d, - 0x4d, 0x94, 0xb2, 0xcf, 0xe6, 0x36, 0x0d, 0xcc, 0x0d, 0x51, 0x2b, 0x9f, - 0xc7, 0xa7, 0x96, 0x0a, 0x38, 0xde, 0x6f, 0xd0, 0xca, 0xe7, 0x29, 0x61, - 0xdf, 0x98, 0x93, 0xb2, 0xcf, 0x71, 0xc3, 0x67, 0x63, 0x4a, 0xca, 0xfe, - 0x1d, 0x6f, 0xa2, 0x0e, 0x74, 0x5c, 0x14, 0x37, 0x51, 0xba, 0x02, 0x34, - 0x51, 0x62, 0x73, 0xc3, 0x59, 0xb0, 0x89, 0xd2, 0x74, 0xd3, 0x11, 0x38, - 0x80, 0xaf, 0x9e, 0x7e, 0x81, 0x11, 0x58, 0xf6, 0x94, 0xc1, 0x08, 0xfc, - 0xed, 0x69, 0x80, 0x39, 0x61, 0xf8, 0x2f, 0x07, 0x46, 0xc5, 0xf7, 0xb2, - 0xf4, 0xf3, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, - 0x42, 0x60, 0x82 -}; - - -/* - * Constructs a VoIPLinkManagement as a child of 'parent', with the - * name 'name' and widget flags set to 'f'. - */ -VoIPLinkManagement::VoIPLinkManagement( QWidget* parent, const char* name, WFlags fl ) - : QWidget( parent, name, fl ) -{ - QImage img; - img.loadFromData( image0_data, sizeof( image0_data ), "PNG" ); - image0 = img; - img.loadFromData( image1_data, sizeof( image1_data ), "PNG" ); - image1 = img; - if ( !name ) - setName( "VoIPLinkManagement" ); - - QWidget* privateLayoutWidget = new QWidget( this, "layout15" ); - privateLayoutWidget->setGeometry( QRect( 11, 31, 563, 280 ) ); - layout15 = new QGridLayout( privateLayoutWidget, 1, 1, 11, 6, "layout15"); - - layout30 = new QVBoxLayout( 0, 0, 6, "layout30"); - - listVoiplink = new QListBox( privateLayoutWidget, "listVoiplink" ); - listVoiplink->setEnabled( TRUE ); - listVoiplink->setCursor( QCursor( 13 ) ); - listVoiplink->setSelectionMode( QListBox::Single ); - layout30->addWidget( listVoiplink ); - - buttonAddVoiplink = new QPushButton( privateLayoutWidget, "buttonAddVoiplink" ); - layout30->addWidget( buttonAddVoiplink ); - - buttonRemoveVoiplink = new QPushButton( privateLayoutWidget, "buttonRemoveVoiplink" ); - layout30->addWidget( buttonRemoveVoiplink ); - - up = new QPushButton( privateLayoutWidget, "up" ); - up->setPixmap( image0 ); - layout30->addWidget( up ); - - down = new QPushButton( privateLayoutWidget, "down" ); - down->setPixmap( image1 ); - layout30->addWidget( down ); - - layout15->addLayout( layout30, 0, 0 ); - - parameters = new QGroupBox( privateLayoutWidget, "parameters" ); - - QWidget* privateLayoutWidget_2 = new QWidget( parameters, "layout14" ); - privateLayoutWidget_2->setGeometry( QRect( 12, 22, 390, 230 ) ); - layout14 = new QVBoxLayout( privateLayoutWidget_2, 11, 6, "layout14"); - - layout26 = new QGridLayout( 0, 1, 1, 0, 6, "layout26"); - - layout24 = new QVBoxLayout( 0, 0, 6, "layout24"); - - textLabel1 = new QLabel( privateLayoutWidget_2, "textLabel1" ); - layout24->addWidget( textLabel1 ); - - textLabel2 = new QLabel( privateLayoutWidget_2, "textLabel2" ); - layout24->addWidget( textLabel2 ); - - textLabel3 = new QLabel( privateLayoutWidget_2, "textLabel3" ); - layout24->addWidget( textLabel3 ); - - textLabel4 = new QLabel( privateLayoutWidget_2, "textLabel4" ); - layout24->addWidget( textLabel4 ); - - textLabel5 = new QLabel( privateLayoutWidget_2, "textLabel5" ); - layout24->addWidget( textLabel5 ); - - textLabel6 = new QLabel( privateLayoutWidget_2, "textLabel6" ); - layout24->addWidget( textLabel6 ); - - layout26->addLayout( layout24, 0, 0 ); - - layout23 = new QVBoxLayout( 0, 0, 6, "layout23"); - - fullName = new QLineEdit( privateLayoutWidget_2, "fullName" ); - layout23->addWidget( fullName ); - - userPart = new QLineEdit( privateLayoutWidget_2, "userPart" ); - layout23->addWidget( userPart ); - - hostPart = new QLineEdit( privateLayoutWidget_2, "hostPart" ); - layout23->addWidget( hostPart ); - - authUser = new QLineEdit( privateLayoutWidget_2, "authUser" ); - layout23->addWidget( authUser ); - - password = new QLineEdit( privateLayoutWidget_2, "password" ); - password->setEchoMode( QLineEdit::Password ); - layout23->addWidget( password ); - - proxy = new QLineEdit( privateLayoutWidget_2, "proxy" ); - proxy->setEchoMode( QLineEdit::Normal ); - layout23->addWidget( proxy ); - - layout26->addLayout( layout23, 0, 1 ); - layout14->addLayout( layout26 ); - - autoRegister = new QCheckBox( privateLayoutWidget_2, "autoRegister" ); - layout14->addWidget( autoRegister ); - - layout15->addWidget( parameters, 0, 1 ); - languageChange(); - resize( QSize(589, 323).expandedTo(minimumSizeHint()) ); - clearWState( WState_Polished ); - - // signals and slots connections - connect( listVoiplink, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( changeParamSlot() ) ); - connect( up, SIGNAL( clicked() ), this, SLOT( moveUpItemSlot() ) ); - connect( down, SIGNAL( clicked() ), this, SLOT( moveDownItemSlot() ) ); - connect( buttonRemoveVoiplink, SIGNAL( clicked() ), this, SLOT( removeVoIPLinkSlot() ) ); - connect( buttonAddVoiplink, SIGNAL( clicked() ), this, SLOT( addVoIPLinkSlot() ) ); - - // tab order - setTabOrder( fullName, userPart ); - setTabOrder( userPart, hostPart ); - setTabOrder( hostPart, authUser ); - setTabOrder( authUser, password ); - setTabOrder( password, proxy ); - setTabOrder( proxy, autoRegister ); - setTabOrder( autoRegister, listVoiplink ); - setTabOrder( listVoiplink, buttonAddVoiplink ); - setTabOrder( buttonAddVoiplink, buttonRemoveVoiplink ); - setTabOrder( buttonRemoveVoiplink, up ); - setTabOrder( up, down ); - init(); -} - -/* - * Destroys the object and frees any allocated resources - */ -VoIPLinkManagement::~VoIPLinkManagement() -{ - // no need to delete child widgets, Qt does it all for us -} - -/* - * Sets the strings of the subwidgets using the current - * language. - */ -void VoIPLinkManagement::languageChange() -{ - setCaption( tr( "VoIP Link management" ) ); - listVoiplink->clear(); - listVoiplink->insertItem( tr( "SIP sfl" ) ); - listVoiplink->insertItem( tr( "SIP fwd" ) ); - listVoiplink->insertItem( tr( "IAX sfl" ) ); - listVoiplink->setCurrentItem( 0 ); - buttonAddVoiplink->setText( tr( "Add VoIP Link" ) ); - buttonRemoveVoiplink->setText( tr( "Remove VoIP Link" ) ); - up->setText( QString::null ); - down->setText( QString::null ); - parameters->setTitle( QString::null ); - textLabel1->setText( tr( "Your name" ) ); - textLabel2->setText( tr( "User part of URL" ) ); - textLabel3->setText( tr( "Host part of URL" ) ); - textLabel4->setText( tr( "Authorization user" ) ); - textLabel5->setText( tr( "Password" ) ); - textLabel6->setText( tr( "Proxy" ) ); - autoRegister->setText( tr( "Auto-register" ) ); -} - diff --git a/src/gui/qt/voIPLinkmanagementui.h b/src/gui/qt/voIPLinkmanagementui.h deleted file mode 100644 index c97a08ea4f686c25a3b69d750407aee5aba25576..0000000000000000000000000000000000000000 --- a/src/gui/qt/voIPLinkmanagementui.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** Form interface generated from reading ui file 'gui/qt/voIPLinkmanagement.ui' -** -** Created: Thu May 26 16:51:18 2005 -** by: The User Interface Compiler ($Id$) -** -** WARNING! All changes made in this file will be lost! -****************************************************************************/ - -#ifndef VOIPLINKMANAGEMENT_H -#define VOIPLINKMANAGEMENT_H - -#include <qvariant.h> -#include <qpixmap.h> -#include <qwidget.h> - -class QVBoxLayout; -class QHBoxLayout; -class QGridLayout; -class QSpacerItem; -class QListBox; -class QListBoxItem; -class QPushButton; -class QGroupBox; -class QLabel; -class QLineEdit; -class QCheckBox; - -class VoIPLinkManagement : public QWidget -{ - Q_OBJECT - -public: - VoIPLinkManagement( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); - ~VoIPLinkManagement(); - - QListBox* listVoiplink; - QPushButton* buttonAddVoiplink; - QPushButton* buttonRemoveVoiplink; - QPushButton* up; - QPushButton* down; - QGroupBox* parameters; - QLabel* textLabel1; - QLabel* textLabel2; - QLabel* textLabel3; - QLabel* textLabel4; - QLabel* textLabel5; - QLabel* textLabel6; - QLineEdit* fullName; - QLineEdit* userPart; - QLineEdit* hostPart; - QLineEdit* authUser; - QLineEdit* password; - QLineEdit* proxy; - QCheckBox* autoRegister; - -public slots: - virtual void changeParamSlot(); - virtual void moveUpItemSlot(); - virtual void moveDownItemSlot(); - virtual void addVoIPLinkSlot(); - virtual void removeVoIPLinkSlot(); - -protected: - QGridLayout* layout15; - QVBoxLayout* layout30; - QVBoxLayout* layout14; - QGridLayout* layout26; - QVBoxLayout* layout24; - QVBoxLayout* layout23; - -protected slots: - virtual void languageChange(); - -private: - QPixmap image0; - QPixmap image1; - - void init(); - -}; - -#endif // VOIPLINKMANAGEMENT_H diff --git a/src/main.cpp b/src/main.cpp index e38ae9bf5cf5777c968515cf1407b3b5ff1b1e49..ac5d4729af0da64dd05b44556e83541a8103494a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,5 +1,5 @@ /** - * Copyright (C) 2005 Savoir-Faire Linux inc. + * Copyright (C) 2004-2005 Savoir-Faire Linux inc. * Author: Laurielle Lea <laurielle.lea@savoirfairelinux.com> * * This program is free software; you can redistribute it and/or modify @@ -38,6 +38,7 @@ main (int argc, char **argv) { manager = new Manager(); // Faire partir la gui selon l'option choisie +#if 1 QApplication a(argc, argv); QtGUIMainWindow *qtgui = new QtGUIMainWindow (0, 0 , Qt::WDestructiveClose | @@ -49,8 +50,9 @@ main (int argc, char **argv) { a.setMainWidget(qtgui); return a.exec(); -// int ret = OptionProcess (argc,argv, manager); -// return ret; +#endif + int ret = OptionProcess (argc,argv, manager); + return ret; } int OptionProcess (int argc,char **argv, Manager* manager) @@ -85,7 +87,8 @@ int OptionProcess (int argc,char **argv, Manager* manager) Qt::WStyle_Customize | Qt::WStyle_NoBorder, manager); - cout << "a.setMainWidget(qtgui);" << endl; + manager->setGui(qtgui); + manager->init(); a.setMainWidget(qtgui); return a.exec(); #endif @@ -103,6 +106,17 @@ int OptionProcess (int argc,char **argv, Manager* manager) break; case '?': case 'h': + cout << "Usage: sflphone [OPTIONS] " << endl + << "Valid Options:" << endl + << "-i <interface>, --ui=<interface>" << endl + << " Select an user interface (right now just qt interface is available)" << endl + << "-v, --verbose" << endl + << " Display all messages for debbugging" << endl + << "-p <number>, --phonenumber=<number>" << endl + << " Compose directly the phone number that you want" + << endl + << "-h, --help" << endl + << " Display help options message" << endl; break; default: cout << "Option " << c << "doesn't exist" <<endl; diff --git a/src/manager.cpp b/src/manager.cpp index bdeb0d3d648bac14e0109aca2b7dc09b9c842fb4..8080972324fa3af84d9ee35f4fbfe14505f790eb 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -28,18 +28,24 @@ #include <sys/types.h> #include <sys/stat.h> #include <cc++/thread.h> -#include <cc++/file.h> #include <cstdlib> #include <iostream> #include <fstream> #include <string> #include <vector> - #include "user_cfg.h" #include "audio/audiocodec.h" #include "audio/codecDescriptor.h" #include "audio/tonegenerator.h" +#include "call.h" +#include "configuration.h" +#include "configurationtree.h" +#include "manager.h" +#include "sipvoiplink.h" +#include "skin.h" +#include "voIPLink.h" +#include "../stund/udp.h" #ifdef ALSA #include "audio/audiodriversalsa.h" @@ -49,14 +55,6 @@ #include "audio/audiodriversoss.h" #endif -#include "call.h" -#include "configuration.h" -#include "configurationtree.h" -#include "manager.h" -#include "sipvoiplink.h" -#include "skin.h" -#include "voIPLink.h" -#include "../stund/udp.h" using namespace std; using namespace ost; @@ -74,6 +72,7 @@ Manager::Manager (void) // Set a sip voip link by default _voIPLinkVector->push_back(new SipVoIPLink(DFT_VOIP_LINK, this)); + _nCalls = 0; _nCodecs = 0; _currentCallId = 0; @@ -226,7 +225,6 @@ Manager::deleteCall (short id) while (i < _callVector->size()) { if (_callVector->at(i)->getId() == id) { _callVector->erase(_callVector->begin()+i); - // delete getCall(id); return; } else { i++; @@ -358,19 +356,6 @@ Manager::refuseCall (short id) return 1; } -int -Manager::cancelCall (short id) -{ - Call *call; - call = getCall(id); - call->setStatus(string(LOGGED_IN_STATUS)); - call->setState(Cancelled); - call->cancel(); - ringback(false); - delete call; - return 1; -} - int Manager::saveConfig (void) { @@ -719,7 +704,7 @@ Manager::initAudioCodec (void) CODEC_ALAW)); _codecDescVector->push_back(new CodecDescriptor(PAYLOAD_CODEC_GSM, CODEC_GSM)); - // TODO: put to 1 when these codec will be implemented + // TODO: When these codec will be implemented, remove comment #if 0 _codecDescVector->push_back(new CodecDescriptor(PAYLOAD_CODEC_ILBC, CODEC_ILBC)); diff --git a/src/manager.h b/src/manager.h index 3ea3be0d6e5f2df27e71827b5622d3401bd12f1a..fcdf0f6b03a3f393c336aa692b205c2c4c8426c1 100644 --- a/src/manager.h +++ b/src/manager.h @@ -116,6 +116,10 @@ public: * Add a new call at the end of the CallVector with identifiant 'id' */ void pushBackNewCall (short id, enum CallType type); + + /* + * Erase the Call(id) from the CallVector + */ void deleteCall (short id); int outgoingCall (const string& to); @@ -127,7 +131,6 @@ public: int muteOn (short id); int muteOff (short id); int refuseCall (short id); - int cancelCall (short id); int saveConfig (void); int registerVoIPLink (void); @@ -161,6 +164,10 @@ public: void ringtone (bool var); void congestion (bool var); + + /* + * Notification of incoming call when you are already busy + */ void notificationIncomingCall (void); /* diff --git a/src/sipcall.cpp b/src/sipcall.cpp index 349ec07067d35e9a53adf2b19204f4e218c7d599..d839c5cfdbe1b81341c258a5e3d5a29b75c19de9 100644 --- a/src/sipcall.cpp +++ b/src/sipcall.cpp @@ -269,7 +269,6 @@ SipCall::answeredCall(eXosip_event_t *event) { this->_status_code = event->status_code; } this->_state = event->type; -// delete ac; return 0; } @@ -305,29 +304,6 @@ SipCall::offholdCall (eXosip_event_t *event) { return 0; } -int -SipCall::redirectedCall(eXosip_event_t *event) { - /* - if (ca->enable_audio>0) { - ca->enable_audio = -1; - os_sound_close(ca); - } - */ - this->_state = NOT_USED; - return 0; -} - -int -SipCall::closedCall (void) { - SipCall *ca = this; - - if (ca->enable_audio > 0) { - // manager->closeSound(ca); - } - - return 0; -} - void SipCall::alloc(void) { this->_reason_phrase = new char[50]; diff --git a/src/sipcall.h b/src/sipcall.h index 71f87c18b301812a1915a2bf8c30429de169012e..0766cbaaa405746e070492d8e08de4d8fb8f05cb 100644 --- a/src/sipcall.h +++ b/src/sipcall.h @@ -44,14 +44,7 @@ public: int newIncomingCall (eXosip_event_t *); int answeredCall (eXosip_event_t *); -// int proceedingCall (eXosip_event_t *); int ringingCall (eXosip_event_t *); - int redirectedCall (eXosip_event_t *); - int requestfailureCall (eXosip_event_t *); - int serverfailureCall (eXosip_event_t *); - int globalfailureCall (eXosip_event_t *); - - int closedCall (void); int onholdCall (eXosip_event_t *); int offholdCall (eXosip_event_t *); @@ -99,7 +92,6 @@ private: int _state; int _local_audio_port; int _remote_sdp_audio_port; - }; #endif // __SIP_CALL_H__ diff --git a/src/sipvoiplink.cpp b/src/sipvoiplink.cpp index f2218fc4481e48ddba5a226595e47f14c979b9ed..0a353f4732aff68c3f6d492853c12275b35377c4 100644 --- a/src/sipvoiplink.cpp +++ b/src/sipvoiplink.cpp @@ -48,15 +48,6 @@ using namespace std; #define RANDOM_LOCAL_PORT ((rand() % 27250) + 5250)*2 -SipVoIPLink::SipVoIPLink (void) : VoIPLink () -{ -// _evThread = new EventThread (this); - _sipcallVector = new SipCallVector(); - _localPort = 0; - _manager = NULL; -// _audiortp = new AudioRtp(_manager); -} - SipVoIPLink::SipVoIPLink (short id, Manager* manager) : VoIPLink (id, manager) { setId(id); @@ -374,17 +365,6 @@ SipVoIPLink::refuse (short id) return i; } -int -SipVoIPLink::cancel (short id) -{ - int i; - eXosip_lock(); - i = eXosip_terminate_call (getSipCall(id)->getCid(), - getSipCall(id)->getDid()); - eXosip_unlock(); - return i; -} - int SipVoIPLink::getEvent (void) { @@ -394,7 +374,7 @@ SipVoIPLink::getEvent (void) static int countReg = 0; event = eXosip_event_wait (0, 50); - //event = eXosip_event_get(); + eXosip_automatic_refresh(); if (event == NULL) { return -1; } @@ -680,7 +660,6 @@ SipVoIPLink::deleteSipCall (short callid) while (i < _sipcallVector->size()) { if (_sipcallVector->at(i)->getId() == callid) { _sipcallVector->erase(_sipcallVector->begin()+i); - // delete getSipCall(callid); return; } else { i++; @@ -757,18 +736,6 @@ SipVoIPLink::setAuthentication (void) return -1; } -#if 0 - if (_manager->useStun()) { - realm = get_config_fields_str(SIGNALISATION, HOST_PART); - } else { - if (!get_config_fields_str(SIGNALISATION, PROXY).empty()) { - realm = get_config_fields_str(SIGNALISATION, PROXY); - } else { - realm = get_config_fields_str(SIGNALISATION, HOST_PART); - } - } -#endif - if (eXosip_add_authentication_info(login.data(), login.data(), pass.data(), NULL, NULL) != 0) { _debug("No authentication\n"); diff --git a/src/sipvoiplink.h b/src/sipvoiplink.h index 92c06b35db421ad4de455e36f2d8a41840078bfb..a6c321f919262ba5791002e7e2f8389253a3495a 100644 --- a/src/sipvoiplink.h +++ b/src/sipvoiplink.h @@ -64,7 +64,6 @@ typedef vector<CodecDescriptor*, allocator<CodecDescriptor*> > CodecDescriptorVe class SipVoIPLink : public VoIPLink { public: - SipVoIPLink (void); SipVoIPLink (short id, Manager* manager); virtual ~SipVoIPLink (void); @@ -79,7 +78,6 @@ public: virtual int offhold (short id); virtual int transfer (short id, const string& to); virtual int refuse (short id); - virtual int cancel (short id); virtual int getEvent (void); virtual void carryingDTMFdigits (short id, char code); @@ -93,8 +91,7 @@ public: void newIncomingCall(short callid); /* - * Erase the call(id) from the SipCallVector - * and delete this call + * Erase the SipCall(id) from the SipCallVector */ void deleteSipCall(short callid); diff --git a/src/voIPLink.cpp b/src/voIPLink.cpp index e84c2a2481b068370b0549a110a66f2f3e09e99d..a3d9ef8bdabcab7376bc2f38881810db1964791a 100644 --- a/src/voIPLink.cpp +++ b/src/voIPLink.cpp @@ -25,12 +25,6 @@ using namespace std; -VoIPLink::VoIPLink (void) -{ - _id = 1; - _manager = NULL; - initConstructor(); -} VoIPLink::VoIPLink (short id, Manager* manager) { @@ -41,7 +35,6 @@ VoIPLink::VoIPLink (short id, Manager* manager) VoIPLink::~VoIPLink (void) { - } void diff --git a/src/voIPLink.h b/src/voIPLink.h index 362d6abc1d941f0bf902e8265318a0fb8f9f5a43..3d46697935da4d4e0984ac0a101057592bf46aa3 100644 --- a/src/voIPLink.h +++ b/src/voIPLink.h @@ -34,7 +34,6 @@ class Call; class Manager; class VoIPLink { public: - VoIPLink (void); VoIPLink (short id, Manager* manager); virtual ~VoIPLink (void); @@ -52,7 +51,6 @@ public: virtual int offhold (short id) = 0; virtual int transfer (short id, const string& to) = 0; virtual int refuse (short id) = 0; - virtual int cancel (short id) = 0; virtual int setRegister (void) = 0; virtual void carryingDTMFdigits(short id, char code) = 0;