Commit Graph

1724 Commits

Author SHA1 Message Date
Bill Somerville
26137ac1b1 Increased NetworkMessage schema number and Qt serialization format
The Qt_5_0  QDataStream serialization  format is  buggy, moved  to the
Qt_5_2 format.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5231 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-16 22:17:14 +00:00
Bill Somerville
84cd4b7036 Abandon using C++ std::unordered_map :(
Apple Clang++ doesn't seem cope with the necessary hash template class
specializations. So have degraded to Qt QHash.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5227 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-15 19:24:41 +00:00
Bill Somerville
3f75b4144a Send status information to UDP server
To  facilitate interaction  with other  applications WSJT-X  now sends
status  updates  to  a  predefined   UDP  server  or  multicast  group
address. The  status updates include the  information currently posted
to  the  decodes.txt and  wsjtx_status.txt  files.   An optional  back
communications  channel is  also implemented  allowing the  UDP server
application to control some basic actions in WSJT-X.

A reference implementaion of a typical UDP server written in C++ using
Qt is  provided to demonstrate  these facilities. This  application is
not intended  as a user  tool but  only as an  example of how  a third
party application may interact with WSJT-X.

The  UDP messages  Use QDataStream  based serialization.  Messages are
documented in  NetworkMessage.hpp along with some  helper classes that
simplify the building and decoding of messages.

Two  message  handling  classes   are  introduced,  MessageClient  and
MessageServer.  WSJT-X uses the MessageClient class to manage outgoing
and  incoming  UDP  messages   that  allow  communication  with  other
applications.   The MessageServer  class implements  the kind  of code
that a  potential cooperating  application might use.   Although these
classes  use  Qt serialization  facilities,  the  message formats  are
easily  read and  written  by  applications that  do  not  use the  Qt
framework.

MessageAggregator   is   a   demonstration   application   that   uses
MessageServer and  presents a GUI  that displays messages from  one or
more  WSJT-X instances  and  allows sending  back a  CQ  or QRZ  reply
invocation  by double  clicking  a decode.   This  application is  not
intended as  a user facing tool  but rather as a  demonstration of the
WSJT-X UDP messaging facility. It  also demonstrates being a multicast
UDP server by allowing multiple instances to run concurrently. This is
enabled by using an appropriate  multicast group address as the server
address.  Cooperating   applications  need  not   implement  multicast
techniques but  it is recomended  otherwise only a  single appliaction
can act as a broadcast message (from WSJT-X) recipient.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5225 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-15 16:40:49 +00:00
Bill Somerville
a5642a4807 Improved DTR and RTS line control
Made  the  force control  lines  group  box  in the  Configuration  UI
checkable which allows the DTR and RTS checkboxes to mean either force
low or force high.

Also  improved   UI  control  logic   to  only  allow   valid  setting
combintions.  Disabled network  port  text edit  for OmniRig.  Cleared
network port combo box list for  network interfaces like HRD and DXLab
Commander, was erroneously showing COM ports.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5222 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-14 10:54:14 +00:00
Bill Somerville
ae29261978 Remove compiler warning and avoid a potential issue with IB
Subtracting unsigned types  is tricky, made sure result  does not wrap
to avoid potentially implementation defined behaviour.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5211 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-11 15:29:37 +00:00
Bill Somerville
b6216c713d Band activity & Rx frequency widget enhancements
Ensure that  these windows have  their viewport scrolled fully  to the
left after deocdes and font changes.

Add the band to the separator line but only if we are certain that the
decodes below it are on that band.

Thanks to  Ton PA0TBR for the  implementation and testing of  the core
features of this change.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5207 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-10 20:25:14 +00:00
Bill Somerville
5489920441 Fix regression introduced when fixing fonts
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5183 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-07 17:14:03 +00:00
Bill Somerville
075e22b8aa Add 115.2 kBaud as a serial port speed option
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5182 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-07 16:23:14 +00:00
Bill Somerville
fe70882ef2 Remove unneeded debug message
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5180 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-07 13:12:23 +00:00
Bill Somerville
ed2f4ee226 Fix font setting
Several issues  mainly related  to the  rather complex  interaction of
style sheets and widget properties with respect to fonts.

Font setting  on the  astro window  should now  be consistent  and not
overridden by application style sheet driven font settings.

Decoded text font setting should now be consistent and not revert back
to Courier 10 on the next decode after a font change.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5179 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-07 12:08:55 +00:00
Bill Somerville
177aaef501 Fix another issue with station details not being saved
Due to  what appears to be  a Qt bug, any  in progress user edit  to a
table  fields is  not  updated  in the  underlying  data models  until
QDialog::accept() is  called, this means that  model validation before
calling QDialog::accept() is tricky.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5164 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-06 13:25:51 +00:00
Bill Somerville
f7b0d3904a Ensure all model proxy caches are flushed before access
This fixes a defect where station detail changes are not saved.

The Qt sort and filter proxy models utilize an item cache that must be
flushed by  callig submit() before  accessing the underlying  model if
the proxy model has been used for updates.

Also  separated  the   item  model  candidate  key   filter  from  the
implementation  internals of  the foreign  key item  delegate so  that
candidate key filtered models can be used directly as view models.

Make the insert new station details band combo box use a candidate key
filtered item model to avoid constraint violations. Constraint is zero
or one station records per band.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5161 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-06 01:57:47 +00:00
Bill Somerville
868ce60f7e Sort out decoded text font and font changes
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5159 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-05 12:22:01 +00:00
Bill Somerville
4b0d7f2d18 Try to leave the bandwidth of the rig untouched
Hamlib conflates mode and bandwidth which sometimes make it impossible
to  change mode  without  forcing a  bandwidth change.   Unfortunately
Hamlib  has  no  bandwidth  value  that is  documented  to  leave  the
bandwidth as is, despite this being easy to implement. Many Hamlib rig
back ends do interpret RIG_PASSBAND_NORMAL as "don't explicitly change
the bandwidth".

Some rigs  like the  Tentec Jupiter  have a  widest bandwidth  of 8kHz
which is larger than desired for this application so the old behaviour
of setting the default wide bandwidth  is not very friendly. Also many
rig  back ends  in Hamlib  do not  do the  required bandwidth  setting
correctly due  to the CAT protocol  having no way of  discovering user
defined bandwidth allocations.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5151 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-03 18:50:48 +00:00
Bill Somerville
aa7e6b7a86 Allow for HRD to fragment command replies
Also cleaned up some debugging messages.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5141 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-02 10:28:10 +00:00
Bill Somerville
a7a60412c5 Do not package kvasd.dat
This file is created  at run time and is not  needed in the deployment
package.   Also  removed   from  source   control  to   avoid  further
misunderstandings.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5139 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-01 23:04:09 +00:00
Bill Somerville
1f9301e20e Allow for rigs that cannot have their VFOs selected
Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5133 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-27 19:35:40 +00:00
Bill Somerville
3e9b3045f9 Tidy up resource generation with a CMake function
This  change  generates  all  the resources  using  a  CMake  function
add_resources()  and  substitution  into  a template  .qrc  file.  The
location of resource files in the  source tree is no longer related to
the path  of the resources  in the embedded executable  resources file
system.  Instead the roesources  are embedded with predetermined paths
e.g.  :/, :/Palettes/ and, :/samples/ .

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5131 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-27 13:42:10 +00:00
Bill Somerville
1a6267256e Add CMake option to exclude sample files from the embedded resources
The compilation of the WSJT-X resources file requires a lot of virtual
memory  because of  the  large .WAV  files  included.  For  developers
building on very limited resource  machines like single board embedded
platforms there is  now an option WSJT_EMBED_SAMPLES which  can be set
to OFF to skip the inclusion of the sample files in the WSJT_X binary.

The sample files may still be  added manually to the target machine if
required.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5130 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-27 01:48:41 +00:00
Bill Somerville
8785f6eeb2 Fix some settings tool tip typos
Thanks to Sebastian W4AS for reporting these.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5129 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-26 22:34:59 +00:00
Joe Taylor
df804923c3 Forgot to commit the updated CMakeLists.txt
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5089 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-21 12:24:20 +00:00
Joe Taylor
14c96e8232 Update jt9sim with a standard *.wav header.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5088 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-21 00:34:21 +00:00
Joe Taylor
bd9e4e2997 Bring jt9sim.f90 up to date.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5078 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-19 13:48:26 +00:00
Bill Somerville
6ca5c61c32 Ensure Tx and Rx cursor are initialized from settings
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5072 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-18 16:28:49 +00:00
Bill Somerville
5566022c01 Ensure main frequency display gets initialized with Rig=None
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5068 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-17 17:35:39 +00:00
Bill Somerville
083416e8ba Refine the special treatment of 73 messages
The  feature to  set the  next message  to be  sent to  auto generated
message number 6 (CQ) is now only trggered when a transmission of a 73
message is made for the first time in a QSO. If a second 73 message is
required, for example when a QSO  partner repeats an RRR message after
your 73 message, simply double  clicking the RRR message will initiate
another 73 message without triggering a  log QSO dialog or setting the
next message to CQ.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5065 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-17 14:59:19 +00:00
Bill Somerville
9995073cb3 Implement Elecraft K3 data mode via HRD
Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5060 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-16 02:17:56 +00:00
Bill Somerville
ef75677e54 Don't attempt to lookup empty calls in CALL3.TXT
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5057 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-15 13:16:41 +00:00
Bill Somerville
54463bdb11 Fix latent error with uninitialize variable
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5056 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-14 22:19:22 +00:00
Bill Somerville
2b781d1685 Improved automatic message handling
More consistent and accurate processing of compund callsigns including
recognizing the  user's call  in both base  and fully  qualified form,
extracting reports  from special type  one and type two  compound call
messages.  Ensure that  "CQ DX"  message prefixes  are recognized  and
processd correctly.

The  cycle of  double  clicking through  a QSO  has  been enhanced  to
recognoize the  standard messages correctly  and use the  correct next
message. The automatic  transmission button "Enable Tx"  now does what
it says and does not double as a stop transmit button. This allows the
current transmission  to complete  even if the  automatic transmission
feature is  disabled. In line with  this the "stop sending  after a 73
message is sent"  feature turns off the  automatic transmission enable
at the start of the sending of  a 73 message and also the next message
is now set up as the CQ  message automatically in this scenario.  A 73
message is now  either a standard message containing the  word "73" or
any free text  message containing "73" (not necessarily  as a distinct
word").

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5055 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-14 19:13:18 +00:00
John Nelson
fff0d4a74a wsjtx: Update Mac ReadMe for 1.5
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5054 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-14 16:21:02 +00:00
Bill Somerville
6bd4602662 QtCreator/QtDesigner don't understand their own classes
Wrapping the  Ui:: UI  class in a  QScopedPointer, a  perfectly proper
thing to do, causes QtDesigner to fail to grok the code.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5019 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-08 00:06:43 +00:00
Joe Taylor
80ece75da6 Remove calls to timer() around the "flatten" loop in filbig.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5017 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-06 19:44:46 +00:00
Joe Taylor
32bcc4f90c Correct the date in Copyright notice.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5012 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-06 16:14:05 +00:00
Joe Taylor
6abec2102c Zero out the wrapped-around end points after cshift from c3a to c3.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5007 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-05 17:13:00 +00:00
Joe Taylor
196020ff3c Reformat last few lines of timer.out.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5006 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-05 15:27:13 +00:00
Bill Somerville
5bfcdd824e Fix minor merging issue
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5005 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-04 19:21:06 +00:00
Joe Taylor
c75c4aefda Further improvements to JT9 decoder.
Better AFC (wider range of possible drifts; more accurate DT alignment).
Better definition of metric tables used by Fano decoder.
Zero-centeres soft symbols, instead of offset +128.
Tuned several empirical parameters.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5004 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-04 17:07:15 +00:00
Bill Somerville
e0c37eda14 Prep for v1.4.0-rc4
Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5002 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-04 13:21:41 +00:00
Bill Somerville
21bf2b6b31 Better handling of compound callsigns
Option  to control  standard message  generation for  type 2  compound
callsign holders.

Process decoded  messages based  on either base  or full  callsign for
both DE and DX callsigns.

Change CW id when callsign changed in settings.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5000 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-03-04 12:22:33 +00:00
Joe Taylor
f424080883 Another minor adjustment to the JT9 decoder, conditionally changing
limits on sync and schk.  (Probably still more to come...)


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4998 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-28 14:24:57 +00:00
Bill Somerville
35e377d364 Use freq-mode-freq-mode sequency to set freqquency
Because setting frequency can change  mode and setting mode can change
frequency on various rigs it is  necessary to set a frequency by first
setting a  frequency which  gets to the  correct band  and potentially
band stack  register. Then  to set  the mode to  ensure that  any band
remembered mode is cleared. Then set frequency again in case the prior
mode change  moved the frequency  (e.g. CW correction). Then  set mode
again because some rigs set the mode according to frequency.

Who would have  thought setting the rig frequency via  CAT could be so
complicated :( TODO: Even this is  flawed on some Yaesu rigs that must
be band changed to select some settings like aerial socket and pre-amp
settings.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4997 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-28 13:40:07 +00:00
Bill Somerville
a249ce4c29 Add option for returning to last monitored frequency on monitor enable
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4995 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-27 18:59:08 +00:00
Bill Somerville
a37e07bdd0 Don't use QSerialPortInfo::isBusy() to filter available ports
The above  member opens the  port and  that twiddles DTR/RTS  which is
unhelpful if they are connected to  PTT. Instead a primitive port name
filter  to try  and  detect unuseable  ends of  serial  port pairs  is
employed. This may  need further tests to exclude  similar devices yet
to be discovered.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4994 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-27 17:37:37 +00:00
Joe Taylor
476c0683a8 Further improvements to JT9 decoder.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4993 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-27 15:38:24 +00:00
Bill Somerville
2474f73b7b Improved next and current Tx message widget short cuts
Short cut  keys implemented via a  special key press event  handler do
not  fully  integrate  with  the UI  and  standard  UI  implementation
guidelines,  also they  introduce an  alternative code  path that  can
diverge from the intended behaviour.

Short  cuts   to  set  the  next   Tx  message  have  been   added  as
Ctrl+<number>.  Alt+<number>  short cuts  now do  as the  help implies
i.e. change  the current Tx message  even if there is  another message
being transmitted.

The log QSO  window should only be  triggered by a 73  Tx message when
transmitting.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4992 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-27 13:34:18 +00:00
Joe Taylor
2aa42f0414 Minor tweaks in JT9 decoder.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4989 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-24 20:19:04 +00:00
Bill Somerville
4933a30546 Clean up program identification to pskreporter and other places
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4987 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-23 15:19:41 +00:00
Bill Somerville
0f72c3fd9b Abandon getting changeset revision number from svn keyword expansion
Subversion keyword expansion of $Rev:$ in  a file is hopeless as it is
impossible to  coordinate with  a release. Revert  to an  empty string
when it can't be discovered with svn info etc..

Further changes to the way verion and revision numbers are generated

Local builds from  source tar balls or the  two phase wsjtx-superbuild
no longer specify  any revision, just the version  number. Since these
sort  of builds  are  expected  to be  release  candidates or  release
versions the revision (svn changeset  number) is implicit from the svn
tag of the version.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4986 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-22 00:20:42 +00:00
Bill Somerville
b79456ed1b Look in the right place for temporary files
decoded.txt was not being deleted after a full activity window erase.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4982 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-02-21 20:13:28 +00:00