* On 2018 05 Jun 22:21 -0500, Thomas Beierlein wrote:
> Hi Nate,
> 
> ltns, hope you are well.

Oh, I am doing fine.  Been working on Hamlib documentation after getting
3.2 out into the wild, doing some FT-8 lately, fixing a noisy DG-5 for
my TS-520SE, looking at a friend's FT-890 and hooking up my FT-890 for a
radio to check into nets while the K3 does FT-8 duty.  Just small
stuff.  :-)

> We will look into it, but it would be nice to have some more
> information.
> 
> Can you please provide us with your logcfg.dat, a sample log with
> marked errors/problems and maybe your python script as a starter?

I'll attach the 2017 log, logcfg.dat, rules file, my mults file, and the
Perl script (thought I'd done it in Python, but this is in the
directory.

You can play with the scoring and adding new QSOs with the KS counties
to see what Tlf does.

73, Nate

-- 

"The optimist proclaims that we live in the best of all
possible worlds.  The pessimist fears this is true."

Web: http://www.n0nb.us  GPG key: D55A8819  GitHub: N0NB
########################
# General contest mode #
########################
#
CONTEST=ksqp
LOGFILE=ksqp_2017.log
CONTEST_MODE
CABRILLO=UNIVERSAL
#
##################################
#                                #
#  Messages F1= to F12=          #
#  Message CQ_TU_MSG=            #
#  Message S&P_TU_MSG=           #
#                                #
#  % = call                      #
#  @ = hiscall                   #
#  # = serial                    #
#  [ = RST                       #
#  + = increase cw speed         #
#  - = decrease cw speed         #
#                                #
##################################
#
F1=CQ KQP %
F2=@ DE %
F3=@ 5NN MSH
F4= TU
F5=@
F6=%
F7=@ SRI QSO B4 GL
F8=AGN
F9=?
F10=QRZ?
F11=PSE K
F12=CQ KQP %
#
CQ_TU_MSG=TU %
S&P_TU_MSG=TU 5NN MSH
#
#ALT_0=
#ALT_1=
#ALT_2=
#ALT_3=
#ALT_4=
#ALT_5=
#ALT_6=
#ALT_7=
#ALT_8=
#ALT_9=
#
#SEND_DE
#
#################################
#                               #
#  Voice Keyer Files            #
#    (F1 to F12)                #
#################################
#
VKM1=/home/nate/logs/wav/N0N/kqp/F1.wav
VKM2=/home/nate/logs/wav/N0N/kqp/F2.wav
VKM3=/home/nate/logs/wav/N0N/kqp/F3.wav
VKM4=/home/nate/logs/wav/N0N/kqp/F4.wav
#VKM5=
VKM6=/home/nate/logs/wav/N0N/kqp/F6.wav
#VKM7=
VKM8=/home/nate/logs/wav/N0N/kqp/F8.wav
#VKM9=
VKM10=/home/nate/logs/wav/N0N/kqp/F10.wav
VKM11=/home/nate/logs/wav/N0N/kqp/F11.wav
VKM12=/home/nate/logs/wav/N0N/kqp/F12.wav
VKSPM=/home/nate/logs/wav/N0N/kqp/SPM.wav
VKCQM=/home/nate/logs/wav/N0N/kqp/CQM.wav
#
#
#################################
#      Scoring rules            #
#################################
#
MIXED
RECALL_MULTS
SSBPOINTS=2
CWPOINTS=3
WYSIWYG_ONCE
MULT_LIST=ksqp.txt
####### END #####################

# DX
DX

# Canada provinces
AB
BC
MB
NB
NL
NT
NS
NU
ON
PE
QC
SK
YT

# US states (50)
AL
AK
AZ
AR
CA
CO
CT
DE
FL
GA
HI
ID
IL
IN
IA
KS
KY
LA
ME
MD
MA
MI
MN
MS
MO
MT
NE
NV
NH
NJ
NM
NY
NC
ND
OH
OK
OR
PA
RI
SC
SD
TN
TX
UT
VT
VA
WA
WV
WI
WY

# KS counties (105)
ALL
AND
ATC
BAR
BRT
BOU
BRO
BUT
CHS
CHT
CHE
CHY
CLK
CLY
CLO
COF
COM
COW
CRA
DEC
DIC
DON
DOU
EDW
ELK
ELL
ELS
FIN
FOR
FRA
GEA
GOV
GRM
GRT
GRY
GLY
GRE
HAM
HPR
HVY
HAS
HOG
JAC
JEF
JEW
JOH
KEA
KIN
KIO
LAB
LAN
LEA
LCN
LIN
LOG
LYO
MRN
MSH
MCP
MEA
MIA
MIT
MGY
MOR
MTN
NEM
NEO
NES
NOR
OSA
OSB
OTT
PAW
PHI
POT
PRA
RAW
REN
REP
RIC
RIL
ROO
RUS
RSL
SAL
SCO
SED
SEW
SHA
SHE
SMN
SMI
STA
STN
STE
SUM
THO
TRE
WAB
WAL
WAS
WIC
WIL
WOO
WYA
 20CW  26-Aug-17 14:00 0001  K3MB           599  599  PA                     3  
14042.2
 20CW  26-Aug-17 14:03 0002  KN4Y           599  599  FL                     3  
14042.2
 20CW  26-Aug-17 14:05 0003  N8II           599  599  WV                     3  
14042.2
 20CW  26-Aug-17 14:09 0004  K0PV           599  599  CO                     3  
14042.2
 20CW  26-Aug-17 14:11 0005  K4XI           599  599  FL                     3  
14042.2
 20CW  26-Aug-17 14:12 0006  K4ZGB          599  599  AL                     3  
14042.2
 20CW  26-Aug-17 14:18 0007  VE3AYR         599  599  ON                     3  
14042.2
 20CW  26-Aug-17 14:20 0008  WB2PJH         599  599  NJ                     3  
14042.2
 20CW  26-Aug-17 14:20 0009  N6MU           599  599  CA                     3  
14042.2
 20CW  26-Aug-17 14:21 0010  KD8DEU         599  599  MI                     3  
14042.2
 20CW  26-Aug-17 14:21 0011  AE1T           599  599  NH                     3  
14042.2
 20CW  26-Aug-17 14:22 0012  K3TN           599  599  MD                     3  
14042.2
 20CW  26-Aug-17 14:26 0013  VE4EA          599  599  MB                     3  
14042.2
 20CW  26-Aug-17 14:28 0014  WA2FZB         599  599  NJ                     3  
14042.2
 20CW  26-Aug-17 14:28 0015  N4UP           599  599  VA                     3  
14042.2
 20CW  26-Aug-17 14:29 0016  K2HVN          599  599  DE                     3  
14042.2
 20CW  26-Aug-17 14:30 0017  N4NQ           599  599  GA                     3  
14042.2
 20CW  26-Aug-17 14:30 0018  N1NN           599  599  MA                     3  
14042.2
 20CW  26-Aug-17 14:31 0019  K3ZGA          599  599  FL                     3  
14042.2
 20CW  26-Aug-17 14:34 0020  WD0T           599  599  SD                     3  
14042.2
 20CW  26-Aug-17 14:35 0021  NO8C           599  599  OH                     3  
14042.2
 20CW  26-Aug-17 14:38 0022  WD4AFP         599  599  SC                     3  
14042.2
 20CW  26-Aug-17 14:40 0023  K8RGI          599  599  OH                     3  
14042.2
 20CW  26-Aug-17 14:41 0024  VE5SDH         599  599  SK                     3  
14042.2
 20CW  26-Aug-17 14:42 0025  K4DGJ          599  599  NC                     3  
14042.2
 20CW  26-Aug-17 14:43 0026  K6YK           599  599  CA                     3  
14042.2
 20CW  26-Aug-17 14:44 0027  W6TK           599  599  CA                     3  
14042.2
 20CW  26-Aug-17 14:49 0028  W9OA           599  599  IL                     3  
14042.2
 20CW  26-Aug-17 14:52 0029  K0WRY          599  599  CT                     3  
14042.2
 20CW  26-Aug-17 14:53 0030  N7ENN          599  599  OR                     3  
14042.2
 20CW  26-Aug-17 14:55 0031  AA4GT          599  599  FL                     3  
14042.2
 20CW  26-Aug-17 14:56 0032  WA8REI         599  599  MI                     3  
14042.2
 40CW  26-Aug-17 15:14 0033  W5TM           599  599  OK                     3  
 7042.2
 40CW  26-Aug-17 15:18 0034  K8NYG          599  599  WV                     3  
 7042.2
 40CW  26-Aug-17 15:19 0035  NW0M           599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:20 0036  N0SM           599  599  IA                     3  
 7042.2
 40CW  26-Aug-17 15:20 0037  W0EAR          599  599  WI                     3  
 7042.2
 40CW  26-Aug-17 15:20 0038  K9DUR          599  599  IN                     3  
 7042.2
 40CW  26-Aug-17 15:21 0039  W0O            599  599  THO                    3  
 7042.2
 40CW  26-Aug-17 15:23 0040  K1HE           599  599  VA                     3  
 7042.2
 40CW  26-Aug-17 15:23 0041  W9OD           599  599  WI                     3  
 7042.2
 40CW  26-Aug-17 15:24 0042  K0FG           599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:24 0043  KE0TT          599  599  MN                     3  
 7042.2
 40CW  26-Aug-17 15:24 0044  K4AMC          599  599  TN                     3  
 7042.2
 40CW  26-Aug-17 15:25 0045  W5QGG          599  599  TX                     3  
 7042.2
 40CW  26-Aug-17 15:29 0046  KG0YR          599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:29 0047  K8FU           599  599  OK                     3  
 7042.2
 40CW  26-Aug-17 15:30 0048  K5GA           599  599  TX                     3  
 7042.2
 40CW  26-Aug-17 15:30 0049  N4RS           599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:31 0050  W7FB           599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:32 0051  K0UU           599  599  MN                     3  
 7042.2
 40CW  26-Aug-17 15:33 0052  K5BZH          599  599  TX                     3  
 7042.2
 40CW  26-Aug-17 15:34 0053  KD0DK          599  599  IA                     3  
 7042.2
 40CW  26-Aug-17 15:34 0054  K7ULS          599  599  UT                     3  
 7042.2
 40CW  26-Aug-17 15:38 0055  W5CW           599  599  OK                     3  
 7042.2
 40CW  26-Aug-17 15:39 0056  W3DYA          599  599  TX                     3  
 7042.2
 40CW  26-Aug-17 15:39 0057  N0EI           599  599  JOH                    3  
 7042.2
 40CW  26-Aug-17 15:40 0058  KW4XP          599  599  KY                     3  
 7042.2
 40CW  26-Aug-17 15:41 0059  N4NQ           599  599  GA                     3  
 7042.2
 40CW  26-Aug-17 15:42 0060  W0ZQ           599  599  MN                     3  
 7042.2
 40CW  26-Aug-17 15:42 0061  K0OU           599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:43 0062  WB0PYF         599  599  MO                     3  
 7042.2
 40CW  26-Aug-17 15:47 0063  KB0GUS         599  599  JOH                    3  
 7042.2
 40CW  26-Aug-17 15:47 0064  K8FU           599  599  OK                     0  
 7042.2
 40CW  26-Aug-17 15:49 0065  K0CCM          599  599  NM                     3  
 7042.2
 40CW  26-Aug-17 15:54 0066  K9GDF          599  599  WI                     3  
 7042.2
 40CW  26-Aug-17 15:55 0067  AD0RW          599  599  IA                     3  
 7042.2
 40CW  26-Aug-17 15:56 0068  W0GUY          599  599  REN                    3  
 7042.2
 40CW  26-Aug-17 15:58 0069  N8TFD          599  599  OH                     3  
 7042.2
 40SSB 26-Aug-17 16:01 0070  KS0KS          59   59   JOH                    2  
 7243.1
 40SSB 26-Aug-17 16:10 0071  KE0BFO         59   59   GRY                    2  
 7247.0
 20SSB 26-Aug-17 16:26 0072  K4HC           59   59   NC                     2  
14329.0
 20SSB 26-Aug-17 16:31 0073  N3NH           59   59   PA                     2  
14329.0
 20SSB 26-Aug-17 16:32 0074  K7YMA          59   59   AZ                     2  
14329.0
 20SSB 26-Aug-17 16:32 0075  W7GDK          59   59   AZ                     2  
14329.0
 20SSB 26-Aug-17 16:33 0076  K6KNS          59   59   CA                     2  
14329.0
 20SSB 26-Aug-17 16:34 0077  KC8YDS         59   59   OH                     2  
14329.0
 20SSB 26-Aug-17 16:34 0078  W0YES          59   59   MN                     2  
14329.0
 20SSB 26-Aug-17 16:35 0079  NW7E           59   59   OR                     2  
14329.0
 20SSB 26-Aug-17 16:36 0080  N5DY           59   59   OK                     2  
14329.0
 20SSB 26-Aug-17 16:37 0081  KO0OL          59   59   OK                     2  
14329.0
 20SSB 26-Aug-17 16:38 0082  AK7G           59   59   CA                     2  
14329.0
 20SSB 26-Aug-17 16:40 0083  K7HKR          59   59   AZ                     2  
14329.0
 20SSB 26-Aug-17 16:41 0084  W0NTA          59   59   CO                     2  
14329.0
 20SSB 26-Aug-17 16:42 0085  K4CAE          59   59   SC                     2  
14329.0
 20SSB 26-Aug-17 16:43 0086  NK7L           59   59   WA                     2  
14329.0
 20SSB 26-Aug-17 16:43 0087  K4AKK          59   59   TN                     2  
14329.0
 20SSB 26-Aug-17 16:43 0088  K6LJC          59   59   CA                     2  
14329.0
 20SSB 26-Aug-17 16:45 0089  W5EIY          59   59   OK                     2  
14329.0
 20SSB 26-Aug-17 16:47 0090  AE1T           59   59   NH                     2  
14329.0
 20SSB 26-Aug-17 16:49 0091  KB9HO          59   59   IN                     2  
14329.0
 20SSB 26-Aug-17 16:49 0092  KF3EB          59   59   PA                     2  
14329.0
 20SSB 26-Aug-17 16:50 0093  N0TVE          59   59   TN                     2  
14329.0
 20SSB 26-Aug-17 16:50 0094  N5MTW          59   59   MS                     2  
14329.0
 20SSB 26-Aug-17 16:51 0095  KG7NLF         59   59   AZ                     2  
14329.0
 20SSB 26-Aug-17 16:52 0096  AD0NQ          59   59   CO                     2  
14329.0
 20SSB 26-Aug-17 16:52 0097  K8BF           59   59   OH                     2  
14329.0
 20SSB 26-Aug-17 16:54 0098  W7OM           59   59   WA                     2  
14329.0
 20SSB 26-Aug-17 21:17 0099  KG7MRA         59   59   WA                     2  
14288.0
 20SSB 26-Aug-17 21:21 0100  K6PBF          59   59   CA                     2  
14288.0
 20SSB 26-Aug-17 21:21 0101  N4TUA          59   59   GA                     2  
14288.0
 20SSB 26-Aug-17 21:22 0102  W6GOK          59   59   CA                     2  
14288.0
 20SSB 26-Aug-17 21:22 0103  W7SY           59   59   OR                     2  
14288.0
 20SSB 26-Aug-17 21:23 0104  KG7FOP         59   59   OR                     2  
14288.0
 20SSB 26-Aug-17 21:23 0105  WA4IPU         59   59   FL                     2  
14288.0
 20SSB 26-Aug-17 21:24 0106  N6GD           59   59   CA                     2  
14288.0
 20SSB 26-Aug-17 21:27 0107  KA6HHW         59   59   CA                     2  
14288.0
 20CW  26-Aug-17 21:34 0108  K6JJR          599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:35 0109  K3EYJ          599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:35 0110  NC6K           599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:37 0111  KM6I           599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:37 0112  K1KX           599  599  RI                     3  
14045.2
 20CW  26-Aug-17 21:38 0113  K7DSE          599  599  WA                     3  
14045.2
 20CW  26-Aug-17 21:39 0114  K6PBF          599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:41 0115  W1END          599  599  NH                     3  
14045.2
 20CW  26-Aug-17 21:42 0116  W9EO           599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:42 0117  WA6URY         599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:43 0118  K7SS           599  599  WA                     3  
14045.2
 20CW  26-Aug-17 21:43 0119  K7QXG          599  599  OR                     3  
14045.2
 20CW  26-Aug-17 21:44 0120  K6DGW          599  599  NV                     3  
14045.2
 20CW  26-Aug-17 21:45 0121  DL3DXX         599  599  DX                     3  
14045.2
 20CW  26-Aug-17 21:46 0122  WB2VYK         599  599  FL                     3  
14045.2
 20CW  26-Aug-17 21:47 0123  K7EBV          599  599  MT                     3  
14045.2
 20CW  26-Aug-17 21:47 0124  KG4IGC         599  599  SC                     3  
14045.2
 20CW  26-Aug-17 21:49 0125  W7OM           599  599  WA                     3  
14045.2
 20CW  26-Aug-17 21:52 0126  KA4UE          599  599  VA                     3  
14045.2
 20CW  26-Aug-17 21:55 0127  N6GP           599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:55 0128  OM2VL          599  599  DX                     3  
14045.2
 20CW  26-Aug-17 21:56 0129  WB6NVB         599  599  CA                     3  
14045.2
 20CW  26-Aug-17 21:56 0130  KJ6RMM         599  599  CA                     3  
14045.2
 20CW  26-Aug-17 22:00 0131  N3CKI          599  599  NC                     3  
14045.2
 20CW  26-Aug-17 22:02 0132  KF6NCX         599  599  CA                     3  
14045.2
 20CW  26-Aug-17 22:06 0133  WN6W           599  599  OR                     3  
14045.2
 40CW  26-Aug-17 22:13 0134  W8BZY          599  599  OH                     3  
 7042.8
 40CW  26-Aug-17 22:14 0135  N8BJQ          599  599  OH                     3  
 7042.8
 40CW  26-Aug-17 22:15 0136  W3YQ           599  599  WV                     3  
 7042.8
 40CW  26-Aug-17 22:16 0137  WA9FET         599  599  IL                     3  
 7042.8
 40CW  26-Aug-17 22:17 0138  K0PV           599  599  CO                     3  
 7042.8
 40CW  26-Aug-17 22:17 0139  K3WJV          599  599  PA                     3  
 7042.8
 40CW  26-Aug-17 22:18 0140  KM4FO          599  599  KY                     3  
 7042.8
 40CW  26-Aug-17 22:18 0141  K0TC           599  599  MN                     3  
 7042.8
 40CW  26-Aug-17 22:19 0142  KJ9C           599  599  MT                     3  
 7042.8
 40CW  26-Aug-17 22:19 0143  K9CW           599  599  IL                     3  
 7042.8
 40CW  26-Aug-17 22:24 0144  K0Q            599  599  GLY                    3  
 7042.8
 40CW  26-Aug-17 22:25 0145  NY9P           599  599  IL                     3  
 7042.8
 40CW  26-Aug-17 22:28 0146  K3IE           599  599  TN                     3  
 7042.8
 40CW  26-Aug-17 22:28 0147  AE0G           599  599  NE                     3  
 7042.8
 40CW  26-Aug-17 22:29 0148  KF3EB          599  599  PA                     3  
 7042.8
 40CW  26-Aug-17 22:30 0149  N8II           599  599  WV                     3  
 7042.8
 40CW  26-Aug-17 22:30 0150  N0KV           599  599  CO                     3  
 7042.8
 40CW  26-Aug-17 22:31 0151  WA8ZBT         599  599  TX                     3  
 7042.8
 40CW  26-Aug-17 22:31 0152  W9CC           599  599  IN                     3  
 7042.8
 40CW  26-Aug-17 22:32 0153  WA0LIF         599  599  MN                     3  
 7042.8
 40CW  26-Aug-17 22:33 0154  K5KDG          599  599  AR                     3  
 7042.8
 40CW  26-Aug-17 22:34 0155  N5TM           599  599  TX                     3  
 7042.8
 40CW  26-Aug-17 22:35 0156  N4EEV          599  599  GA                     3  
 7042.8
 40CW  26-Aug-17 22:38 0157  N4IJ           599  599  OK                     3  
 7042.8
 40CW  26-Aug-17 22:38 0158  K8LS           599  599  TX                     3  
 7042.8
 40CW  26-Aug-17 22:39 0159  WZ9B           599  599  IL                     3  
 7042.8
 40CW  26-Aug-17 22:41 0160  KG4IM          599  599  SC                     3  
 7042.8
 40SSB 26-Aug-17 22:46 0161  AC0CU          59   59   MO                     2  
 7241.0
 40SSB 26-Aug-17 22:47 0162  W0RMS          59   59   MO                     2  
 7241.0
 40SSB 26-Aug-17 22:47 0163  W0RIC          59   59   AZ                     2  
 7241.0
 40SSB 26-Aug-17 22:52 0164  W0ZQ           59   59   MN                     2  
 7241.0
 40SSB 26-Aug-17 22:52 0165  WA2JQZ         59   59   CO                     2  
 7241.0
 40SSB 26-Aug-17 22:52 0166  K9DUR          59   59   IN                     2  
 7241.0
 40SSB 26-Aug-17 22:55 0167  WB0IWG         59   59   ND                     2  
 7241.0
 40SSB 26-Aug-17 22:55 0168  KB5AEB         59   59   CO                     2  
 7241.0
 40SSB 26-Aug-17 22:56 0169  W8XAL          59   59   CO                     2  
 7241.0
 40SSB 26-Aug-17 22:58 0170  WB9CTP         59   59   IL                     2  
 7241.0
 40SSB 26-Aug-17 23:00 0171  K9MOI          59   59   WI                     2  
 7241.0
 40SSB 26-Aug-17 23:05 0172  N0DOW          59   59   MN                     2  
 7241.0
 40SSB 26-Aug-17 23:06 0173  W9WB           59   59   IL                     2  
 7241.0
 40SSB 26-Aug-17 23:07 0174  K5KJ           59   59   TX                     2  
 7241.0
 40SSB 26-Aug-17 23:08 0175  W9AV           59   59   WI                     2  
 7241.0
 40SSB 26-Aug-17 23:09 0176  KC9AEW         59   59   IL                     2  
 7241.0
 40SSB 26-Aug-17 23:10 0177  KD9IKA         59   59   WI                     2  
 7241.0
 40SSB 26-Aug-17 23:12 0178  KD8NYO         59   59   OH                     2  
 7241.0
 40SSB 26-Aug-17 23:13 0179  KE4ETY         59   59   TN                     2  
 7241.0
 40SSB 26-Aug-17 23:14 0180  KG9JP          59   59   WI                     2  
 7241.0
 40SSB 26-Aug-17 23:14 0181  K4CPO          59   59   TN                     2  
 7241.0
 40SSB 26-Aug-17 23:15 0182  K8OD           59   59   MI                     2  
 7241.0
 80SSB 26-Aug-17 23:42 0183  KB0DTI         59   59   LIN                    2  
 3920.0
 80SSB 26-Aug-17 23:43 0184  WD0ESF         59   59   BAR                    2  
 3920.0
 80SSB 26-Aug-17 23:43 0185  AC0MO          59   59   REN                    2  
 3920.0
 20CW  26-Aug-17 23:47 0186  WB7AEI         599  599  WA                     3  
14044.0
 20CW  26-Aug-17 23:48 0187  AH6KO          599  599  HI                     3  
14044.0
 20CW  26-Aug-17 23:49 0188  AF6N           599  599  CA                     3  
14044.0
 20CW  26-Aug-17 23:51 0189  W6TDX          599  599  OR                     3  
14044.0
 20CW  26-Aug-17 23:53 0190  WA6KJV         599  599  CA                     3  
14044.0
 20CW  26-Aug-17 23:55 0191  KB7DY          599  599  WA                     3  
14044.0
 20CW  26-Aug-17 23:57 0192  KO6PS          599  599  CA                     3  
14044.0
 20CW  26-Aug-17 23:58 0193  K7SS           599  599  WA                     0  
14044.0
 20CW  26-Aug-17 23:59 0194  K9AC           599  599  WA                     3  
14044.0
 20CW  26-Aug-17 23:59 0195  K6YUF          599  599  CA                     3  
14044.0
 20CW  27-Aug-17 00:00 0196  W6OUL          599  599  CA                     3  
14044.0
 20CW  27-Aug-17 00:00 0197  W7TR           599  599  CA                     3  
14044.0
 20CW  27-Aug-17 00:02 0198  W7GF           599  599  OR                     3  
14044.0
 20CW  27-Aug-17 00:02 0199  DL3GA          599  599  DX                     3  
14044.0
 20CW  27-Aug-17 00:05 0200  K6CSL          599  599  CA                     3  
14044.0
 20CW  27-Aug-17 00:07 0201  N5IVZ          599  599  TX                     3  
14044.0
 20CW  27-Aug-17 00:08 0202  WA9FBC         599  599  CA                     3  
14044.0
 20CW  27-Aug-17 00:10 0203  N6NC           599  599  CA                     3  
14044.0
 20CW  27-Aug-17 00:13 0204  WZ6T           599  599  CA                     3  
14044.0
 80CW  27-Aug-17 00:16 0205  NB0Z           599  599  ATC                    3  
 3546.5
 80CW  27-Aug-17 00:19 0206  WB0B           599  599  IA                     3  
 3546.5
 80CW  27-Aug-17 00:21 0207  W8BI           599  599  OH                     3  
 3546.5
 80CW  27-Aug-17 00:21 0208  K9ZTV          599  599  MO                     3  
 3546.5
 80CW  27-Aug-17 00:22 0209  K0OU           599  599  MO                     3  
 3546.5
 80CW  27-Aug-17 00:22 0210  K9GDF          599  599  WI                     3  
 3546.5
 80CW  27-Aug-17 00:26 0211  NW0M           599  599  MO                     3  
 3546.5
 80CW  27-Aug-17 00:29 0212  W0EAR          599  599  WI                     3  
 3546.5
 80CW  27-Aug-17 00:34 0213  WB8WKQ         599  599  MI                     3  
 3546.5
 80CW  27-Aug-17 00:35 0214  W3SKK          599  599  OH                     3  
 3546.5
 80CW  27-Aug-17 00:36 0215  KS4X           599  599  TN                     3  
 3546.5
 80CW  27-Aug-17 00:37 0216  WA5SOG         599  599  AR                     3  
 3546.5
 80CW  27-Aug-17 00:38 0217  K4BAI          599  599  GA                     3  
 3546.5
 80CW  27-Aug-17 00:41 0218  K0CKM          599  599  NM                     3  
 3546.5
 80CW  27-Aug-17 00:42 0219  W9OA           599  599  IL                     3  
 3546.5
 80CW  27-Aug-17 00:44 0220  KD8DEU         599  599  MI                     3  
 3546.5
 80CW  27-Aug-17 00:45 0221  W4SIG/2        599  599  NY                     3  
 3546.5
 80CW  27-Aug-17 00:45 0222  K7SV           599  599  VA                     3  
 3546.5
 80CW  27-Aug-17 00:48 0223  W9OA           599  599  IL                     0  
 3546.5
 80CW  27-Aug-17 00:48 0224  K0DEQ          599  599  MO                     3  
 3546.5
 80CW  27-Aug-17 00:51 0225  AD0RW          599  599  IA                     3  
 3546.5
 80CW  27-Aug-17 00:55 0226  K4ZGB          599  599  AL                     3  
 3546.5
 80SSB 27-Aug-17 01:00 0227  K2HT           59   59   MO                     2  
 3920.0
 80SSB 27-Aug-17 01:03 0228  K9IDQ          59   59   IL                     2  
 3920.0
 80SSB 27-Aug-17 01:04 0229  AC0CU          59   59   MO                     2  
 3920.0
 80SSB 27-Aug-17 01:04 0230  NW0M           59   59   MO                     2  
 3920.0
 80SSB 27-Aug-17 01:08 0231  KF0XV          59   59   WYA                    2  
 3920.0
 80SSB 27-Aug-17 01:11 0232  KC3HEO         59   59   PA                     2  
 3919.2
 80SSB 27-Aug-17 01:15 0233  W0E            59   59   OTT                    2  
 3945.0
 40CW  27-Aug-17 01:18 0234  W9EO           599  599  CA                     3  
 7042.0
 40CW  27-Aug-17 01:19 0235  W7OM           599  599  WA                     3  
 7042.0
 40CW  27-Aug-17 01:19 0236  W8VVL          599  599  OH                     3  
 7042.0
 40CW  27-Aug-17 01:20 0237  N6MU           599  599  CA                     3  
 7042.0
 40CW  27-Aug-17 01:20 0238  W7TR           599  599  CA                     3  
 7042.0
 40CW  27-Aug-17 01:22 0239  W0SK           599  599  TN                     3  
 7042.0
 40CW  27-Aug-17 01:23 0240  W6KC           599  599  CA                     3  
 7042.0
 40CW  27-Aug-17 01:23 0241  VE4EA          599  599  MB                     3  
 7042.0
 40CW  27-Aug-17 01:24 0242  K1RX           599  599  NH                     3  
 7042.0
 40CW  27-Aug-17 01:25 0243  KC3JJF         599  599  MD                     3  
 7042.0
 40CW  27-Aug-17 01:27 0244  K7DR           599  599  MI                     3  
 7042.0
 40CW  27-Aug-17 01:29 0245  W5VS           599  599  VA                     3  
 7042.0
 40CW  27-Aug-17 01:30 0246  AA0AW          599  599  MN                     3  
 7042.0
 40CW  27-Aug-17 01:32 0247  W4ML           599  599  VA                     3  
 7042.0
 40CW  27-Aug-17 01:32 0248  K0GEO          599  599  TX                     3  
 7042.0
 40CW  27-Aug-17 01:33 0249  K8PJK          599  599  OH                     3  
 7042.0
 40CW  27-Aug-17 01:35 0250  W6LFB          599  599  TX                     3  
 7042.0
 40CW  27-Aug-17 01:36 0251  K8BF           599  599  OH                     3  
 7042.0
 40CW  27-Aug-17 01:38 0252  KJ4R           599  599  SC                     3  
 7042.0
 40CW  27-Aug-17 01:38 0253  AB9CA          599  599  AL                     3  
 7042.0
 40CW  27-Aug-17 01:40 0254  N3TG           599  599  VA                     3  
 7042.0
 40CW  27-Aug-17 01:40 0255  K4BAI          599  599  GA                     3  
 7042.0
 40CW  27-Aug-17 01:41 0256  KC3X           599  599  NC                     3  
 7042.0
 80CW  27-Aug-17 01:45 0257  W0ZQ           599  599  MN                     3  
 3546.5
 80CW  27-Aug-17 01:45 0258  K0N            599  599  JOH                    3  
 3546.5
 80CW  27-Aug-17 01:46 0259  K1PQS          599  599  TX                     3  
 3546.5
 80CW  27-Aug-17 01:46 0260  W0O            599  599  THO                    3  
 3546.5
 80CW  27-Aug-17 01:46 0261  K1LT           599  599  OH                     3  
 3546.5
 80CW  27-Aug-17 01:47 0262  AA0AW          599  599  MN                     3  
 3546.5
 80CW  27-Aug-17 01:47 0263  VE4EA          599  599  MB                     3  
 3546.5
 80CW  27-Aug-17 01:49 0264  K3YP           599  599  OH                     3  
 3546.5
 80CW  27-Aug-17 01:51 0265  K8CY           599  599  OH                     3  
 3546.5
 80CW  27-Aug-17 01:51 0266  W5TM           599  599  OK                     3  
 3546.5
 80CW  27-Aug-17 01:51 0267  N4VV           599  599  TN                     3  
 3546.5
 80CW  27-Aug-17 01:52 0268  N8II           599  599  WV                     3  
 3546.5
 80CW  27-Aug-17 01:52 0269  W6GMT          599  599  MN                     3  
 3546.5
 80CW  27-Aug-17 01:53 0270  K3KU           599  599  MD                     3  
 3546.5
 80CW  27-Aug-17 01:54 0271  AA1AR          599  599  MA                     3  
 3546.5
 80CW  27-Aug-17 01:54 0272  KC3X           599  599  NC                     3  
 3546.5
 80CW  27-Aug-17 01:54 0273  AD4EB          599  599  TN                     3  
 3546.5
 80CW  27-Aug-17 01:55 0274  ND8L           599  599  OH                     3  
 3546.5
 80CW  27-Aug-17 01:59 0275  K0TC           599  599  MN                     3  
 3546.5
 80CW  27-Aug-17 01:59 0276  K1AR           599  599  NH                     3  
 3546.5
 20CW  27-Aug-17 14:03 0277  K3OQ           599  599  MD                     3  
14044.0
 20CW  27-Aug-17 14:05 0278  WA8REI         599  599  MI                     0  
14044.0
 20CW  27-Aug-17 14:07 0279  K4AMC          599  599  TN                     3  
14044.0
 20CW  27-Aug-17 14:09 0280  W4CI           599  599  FL                     3  
14044.0
 20CW  27-Aug-17 14:11 0281  N0SMX          599  599  FL                     3  
14044.0
 20CW  27-Aug-17 14:12 0282  WB2PJH         599  599  NJ                     0  
14044.0
 20CW  27-Aug-17 14:13 0283  N4RSS          599  599  SC                     3  
14044.0
 40CW  27-Aug-17 14:18 0284  K4ZGB          599  599  AL                     3  
 7043.0
 40CW  27-Aug-17 14:19 0285  WB9HFK         599  599  IL                     3  
 7043.0
 40CW  27-Aug-17 14:20 0286  K0CCM          599  599  NM                     0  
 7043.0
 40CW  27-Aug-17 14:20 0287  NN0U           599  599  CO                     3  
 7043.0
 40CW  27-Aug-17 14:22 0288  K5TQ           599  599  NM                     3  
 7043.0
 40CW  27-Aug-17 14:22 0289  K7IA           599  599  NM                     3  
 7043.0
 40CW  27-Aug-17 14:23 0290  W0CCA          599  599  CO                     3  
 7043.0
 40CW  27-Aug-17 14:23 0291  N5PR           599  599  NM                     3  
 7043.0
 40CW  27-Aug-17 14:23 0292  NA4K           599  599  TN                     3  
 7043.0
 40CW  27-Aug-17 14:25 0293  W6LFB          599  599  TX                     0  
 7043.0
 40CW  27-Aug-17 14:27 0294  WA6URY         599  599  CA                     3  
 7043.0
 40CW  27-Aug-17 14:29 0295  WD5CSK         599  599  OK                     3  
 7043.0
 40CW  27-Aug-17 14:31 0296  KC9UNL         599  599  IL                     3  
 7043.0
 40SSB 27-Aug-17 14:43 0297  WC9N           59   59   IL                     2  
 7248.5
 40SSB 27-Aug-17 14:44 0298  WY0Q           59   59   MO                     2  
 7248.5
 40SSB 27-Aug-17 14:45 0299  KG5IEE         59   59   TX                     2  
 7248.5
 40SSB 27-Aug-17 14:45 0300  NR9K           59   59   IL                     2  
 7248.5
 40SSB 27-Aug-17 14:49 0301  W5QXF          59   59   AR                     2  
 7248.5
 40SSB 27-Aug-17 14:50 0302  N0SIB          59   59   ND                     2  
 7248.5
 40SSB 27-Aug-17 14:52 0303  KJ5FA          59   59   AR                     2  
 7248.5
 40SSB 27-Aug-17 14:52 0304  N0KV           59   59   CO                     2  
 7248.5
 40SSB 27-Aug-17 14:54 0305  KC1CP          59   59   CO                     2  
 7248.5
 40SSB 27-Aug-17 14:55 0306  W7KAM          59   59   MO                     2  
 7248.5
 40SSB 27-Aug-17 14:55 0307  K5SVV          59   59   TX                     2  
 7248.5
 40SSB 27-Aug-17 14:58 0308  KE0JWK         59   59   MO                     2  
 7248.5
 20SSB 27-Aug-17 15:05 0309  WA6URY         59   59   CA                     2  
14262.0
 20SSB 27-Aug-17 15:06 0310  W6OUL          59   59   CA                     2  
14262.0
 20SSB 27-Aug-17 15:06 0311  AI6US          59   59   CA                     2  
14262.0
 20SSB 27-Aug-17 15:09 0312  NN2T           59   59   FL                     2  
14262.0
 20SSB 27-Aug-17 15:09 0313  W7TR           59   59   CA                     2  
14262.0
 20SSB 27-Aug-17 15:10 0314  N8II           59   59   WV                     2  
14262.0
 20SSB 27-Aug-17 15:13 0315  NY3C           59   59   DE                     2  
14262.0
 20SSB 27-Aug-17 15:14 0316  W7LAS          59   59   NV                     2  
14262.0
 20SSB 27-Aug-17 15:14 0317  WA1SAY         59   59   CT                     2  
14262.0
 20SSB 27-Aug-17 15:16 0318  W9EO           59   59   CA                     2  
14263.0
 20SSB 27-Aug-17 15:17 0319  W4LID          59   59   KY                     2  
14263.0
 20SSB 27-Aug-17 15:20 0320  K3TW           59   59   FL                     2  
14263.0
 20SSB 27-Aug-17 15:21 0321  K4BAI          59   59   GA                     2  
14263.0
 20SSB 27-Aug-17 15:25 0322  KM4ZJL         59   59   TN                     2  
14287.5
 20SSB 27-Aug-17 15:27 0323  K6YK           59   59   CA                     2  
14287.5
 20SSB 27-Aug-17 15:30 0324  AG6WG          59   59   CA                     2  
14287.5
 20SSB 27-Aug-17 15:34 0325  KA6HHW         59   59   CA                     0  
14287.5
 20CW  27-Aug-17 15:41 0326  VE2FK          599  599  QC                     3  
14044.0
 20CW  27-Aug-17 15:42 0327  N2SQW          599  599  NY                     3  
14044.0
 20CW  27-Aug-17 15:43 0328  W1TEF          599  599  SC                     3  
14044.0
 20CW  27-Aug-17 15:43 0329  K1VI           599  599  RI                     3  
14044.0
 20CW  27-Aug-17 15:45 0330  W0RIC          599  599  AZ                     3  
14044.0
 20CW  27-Aug-17 15:45 0331  K1BZ           599  599  MD                     3  
14044.0
 20CW  27-Aug-17 15:45 0332  N9BD           599  599  CA                     3  
14044.0
 20CW  27-Aug-17 15:46 0333  W8BZY          599  599  OH                     3  
14044.0
 20CW  27-Aug-17 15:47 0334  K4RUM          599  599  NY                     3  
14044.0
 20CW  27-Aug-17 15:51 0335  K4BAI          599  599  GA                     3  
14044.0
 20CW  27-Aug-17 15:51 0336  N2SO           599  599  NY                     3  
14044.0
 20CW  27-Aug-17 15:52 0337  AC4CA          599  599  TX                     3  
14044.0
 20CW  27-Aug-17 15:52 0338  VE2FK          599  599  QC                     0  
14044.0
 20CW  27-Aug-17 15:53 0339  W4IHI          599  599  FL                     3  
14044.0
 20CW  27-Aug-17 15:54 0340  K3TW           599  599  FL                     3  
14044.0
 20CW  27-Aug-17 15:54 0341  WV2M           599  599  PA                     3  
14044.0
 20CW  27-Aug-17 15:58 0342  K1PL           599  599  CT                     3  
14044.0
 20CW  27-Aug-17 16:02 0343  K9CW           599  599  IL                     3  
14043.0
 15CW  27-Aug-17 16:09 0344  W3DLM          599  599  PA                     3  
21041.2
 15CW  27-Aug-17 16:10 0345  N8II           599  599  WV                     3  
21041.2
 15SSB 27-Aug-17 16:12 0346  N8II           59   59   WV                     2  
21250.0
 10SSB 27-Aug-17 16:12 0347  N8II           59   59   WV                     2  
28410.0
 10CW  27-Aug-17 16:13 0348  N8II           599  599  WV                     3  
28040.0
 15CW  27-Aug-17 16:34 0349  KE8NN          599  599  OH                     3  
21041.2
 15CW  27-Aug-17 16:35 0350  K7TM           599  599  ID                     3  
21041.2
 15CW  27-Aug-17 16:37 0351  W8VM           599  599  OH                     3  
21041.2
 15CW  27-Aug-17 16:39 0352  W8BZY          599  599  OH                     3  
21041.2
 15CW  27-Aug-17 16:42 0353  WT9U           599  599  IN                     3  
21041.2
 15CW  27-Aug-17 16:44 0354  KB1EFS/2       599  599  NY                     3  
21041.2
 20CW  27-Aug-17 16:54 0355  W1WBB          599  599  RI                     3  
14045.5
 20CW  27-Aug-17 16:54 0356  WT9U           599  599  IN                     3  
14045.5
 20CW  27-Aug-17 16:55 0357  KD6PLU         599  599  OR                     3  
14045.5
 20CW  27-Aug-17 16:56 0358  LY5W           599  599  DX                     3  
14045.5
 20CW  27-Aug-17 16:57 0359  K3MAW          599  599  MD                     3  
14045.5
 20CW  27-Aug-17 16:57 0360  W4JL           599  599  NC                     3  
14045.5
 20CW  27-Aug-17 16:58 0361  KE0TT          599  599  MN                     3  
14045.5
 20CW  27-Aug-17 16:59 0362  F8PDR          599  599  DX                     3  
14045.5
 20CW  27-Aug-17 16:59 0363  WA9LEY         599  599  IL                     3  
14045.5
 20CW  27-Aug-17 17:04 0364  AL7TC          599  599  AK                     3  
14045.5
 20CW  27-Aug-17 17:06 0365  N9ZI           599  599  IN                     3  
14045.5
 20CW  27-Aug-17 17:07 0366  DK2OY          599  599  DX                     3  
14045.5
 20CW  27-Aug-17 17:09 0367  VA2CZ          599  599  QC                     3  
14045.5
 20CW  27-Aug-17 17:10 0368  N3RJ           599  599  PA                     3  
14045.5
 20CW  27-Aug-17 17:10 0369  K7AZT          599  599  AZ                     3  
14045.5
 20SSB 27-Aug-17 17:15 0370  KJ4MSR         59   59   GA                     2  
14261.5
 20SSB 27-Aug-17 17:21 0371  W0QXR          59   59   MN                     2  
14256.5
 20SSB 27-Aug-17 17:22 0372  K6DLB          59   59   CA                     2  
14256.5
 20SSB 27-Aug-17 17:22 0373  W5RCG          59   59   MS                     2  
14256.5
 20SSB 27-Aug-17 17:23 0374  N4BAT          59   59   AL                     2  
14256.5
 20SSB 27-Aug-17 17:24 0375  WB6SKS         59   59   OR                     2  
14256.5
 20SSB 27-Aug-17 17:27 0376  W0RIC          59   59   AZ                     2  
14256.5
 20SSB 27-Aug-17 17:28 0377  K4MV           59   59   NC                     2  
14256.5
 20SSB 27-Aug-17 17:28 0378  K7TM           59   59   ID                     2  
14256.5
 20SSB 27-Aug-17 17:29 0379  K7SV           59   59   VA                     2  
14256.5
 20SSB 27-Aug-17 17:30 0380  K6MUG          59   59   CA                     2  
14256.5
 20SSB 27-Aug-17 17:31 0381  WX4G           59   59   FL                     2  
14256.5
 20SSB 27-Aug-17 17:34 0382  KE3ZT          59   59   PA                     2  
14256.5
 20SSB 27-Aug-17 17:35 0383  K7SEN          59   59   AZ                     2  
14256.5
 20SSB 27-Aug-17 17:37 0384  K4ADB          59   59   SC                     2  
14256.5
 20SSB 27-Aug-17 17:38 0385  W7CAP          59   59   NV                     2  
14256.5
 20SSB 27-Aug-17 17:39 0386  K6OWS          59   59   CA                     2  
14256.5
 20SSB 27-Aug-17 17:39 0387  AA0RI          59   59   AZ                     2  
14256.5
 20SSB 27-Aug-17 17:41 0388  VE6LDX         59   59   AB                     2  
14256.5
 20SSB 27-Aug-17 17:46 0389  AD7MM          59   59   AZ                     2  
14256.5
 20SSB 27-Aug-17 17:46 0390  K3WJV          59   59   PA                     2  
14256.5
 20SSB 27-Aug-17 17:47 0391  K3DMG          59   59   OH                     2  
14256.5
 20SSB 27-Aug-17 17:47 0392  KD4ADL         59   59   VA                     2  
14256.5
 20SSB 27-Aug-17 17:50 0393  N6MU           59   59   CA                     2  
14256.5
 20CW  27-Aug-17 17:55 0394  W8KNO          599  599  OH                     3  
14045.5
 20CW  27-Aug-17 17:56 0395  EA5FX          599  599  DX                     3  
14045.5
 20CW  27-Aug-17 17:57 0396  VE6UX          599  599  AB                     3  
14045.5
 20CW  27-Aug-17 17:58 0397  K9FD           599  599  HI                     3  
14045.5
 20CW  27-Aug-17 17:59 0398  WX4G           599  599  FL                     3  
14045.5
 20CW  27-Aug-17 17:59 0399  WQ6X           599  599  CA                     3  
14045.5
 20CW  27-Aug-17 18:00 0400  NA6O           599  599  CA                     3  
14045.5
 20CW  27-Aug-17 18:01 0401  K4JKB          599  599  VA                     3  
14045.5
 20CW  27-Aug-17 18:04 0402  K3WJV          599  599  PA                     3  
14045.5
 20CW  27-Aug-17 18:06 0403  K7IA           599  599  NM                     3  
14045.5
 20CW  27-Aug-17 18:09 0404  NA2X           599  599  NY                     3  
14045.5
 20CW  27-Aug-17 18:09 0405  WI6Q           599  599  CA                     3  
14045.5
 20CW  27-Aug-17 18:09 0406  W8NOR          599  599  AZ                     3  
14045.5
 40CW  27-Aug-17 18:16 0407  K3TW           599  599  FL                     3  
 7043.0
 40SSB 27-Aug-17 18:22 0408  W9JUG          59   59   IL                     2  
 7232.0
 40SSB 27-Aug-17 18:23 0409  KD9CAE         59   59   IL                     2  
 7232.0
 40SSB 27-Aug-17 18:23 0410  NE7JN          59   59   TN                     2  
 7232.0
 40SSB 27-Aug-17 18:23 0411  W0ZQ           59   59   MN                     0  
 7232.0
#!/usr/bin/perl

# Count the number of unique callsigns per band/mode of an NAQP formatted
# Cabrillo file.
#
# Lines are of the form:
# QSO:  3920 PH 2011-08-27 1400 N0N           59  MSH    WA0AUX        59  IA


use v5.10.1;
use strict;
use warnings;

no if $] >= 5.017011, warnings => 'experimental::smartmatch';

my $qso;
my %mults;
my @fields;
# my %bands;

my $cnty;
my $mult;
my $pos = 0;
my $line_no = 0;
my $qsos = 0;

my %ph_80;
my %cw_80;
my %ry_80;
my %ph_40;
my %cw_40;
my %ry_40;
my %ph_20;
my %cw_20;
my %ry_20;
my %ph_15;
my %cw_15;
my %ry_15;
my %ph_10;
my %cw_10;
my %ry_10;

my $phpts;
my $cwpts;
my $rypts;
my $phqs;
my $cwqs;
my $ryqs;

my @ks_counties = qw(
ALL AND ATC
BAR BRT BOU BRO BUT
CHS CHT CHE CHY CLK CLY CLO COF COM COW CRA
DEC DIC DON DOU
EDW ELK ELL ELS
FIN FOR FRA
GEA GOV GRM GRT GRY GLY GRE
HAM HPR HVY HAS HOG
JAC JEF JEW JOH
KEA KIN KIO
LAB LAN LEA LCN LIN LOG LYO
MRN MSH MCP MEA MIA MIT MGY MOR MTN
NEM NEO NES NOR
OSA OSB OTT
PAW PHI POT PRA
RAW REN REP RIC RIL ROO RUS RSL
SAL SCO SED SEW SHA SHE SMN SMI STA STN STE SUM
THO TRE
WAB WAL WAS WIC WIL WOO WYA
);

my @canada = qw( AB BC MB NB NL NT NS NU ON PE QC SK YT );
my @usa = qw( AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME MD MA MI 
MN
MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI 
WY );

open(CABLOG, '<', "./N0NB.cbr") or die $!;

while (<CABLOG>) {
    $qso = $_;
    $line_no++;

    # Look for lines that begin with 'QSO:'
    if ($qso =~ /^QSO:/) {
        $qsos++;
        chomp $qso;
        @fields = split(/\s+/, $qso);

        # Calculate multipliers

        # Kansas counties are three letters--MSH, WAS, NEM, etc.
        if (length($fields[10]) == 3) {
                if ($fields[10] ~~ @ks_counties) {
                        $mults{KS} += 1;
                } else {
                        say "Erroneous county logged: ", $fields[10], " at line 
", $line_no;
                }
        }

        # US states, Canadian provinces, and DX are loged with two letter codes.
        elsif (length($fields[10]) == 2) {
                if ($fields[10] ~~ @usa or $fields[10] ~~ @canada or 
$fields[10] eq 'DX') {
                        $mults{$fields[10]} += 1;
                }

                else {
                        say "Erroneous multiplier logged: ", $fields[10], " at 
line ", $line_no;
                }
        }

        else {
                say "Invalid multiplier length: ", $fields[10], " at line ", 
$line_no;
        }

        # 80m
        if ($fields[1] < 4000 && $fields[1] > 3500) {
            if ($fields[2] eq 'PH') {
                $ph_80{$fields[8]} +=1;
            } elsif ($fields[2] eq 'CW') {
                $cw_80{$fields[8]} +=1;
            } elsif ($fields[2] eq 'RY') {
                $ry_80{$fields[8]} +=1;
            }
        }

        # 40m
        if ($fields[1] < 7300 && $fields[1] > 7000) {
            if ($fields[2] eq 'PH') {
                $ph_40{$fields[8]} +=1;
            } elsif ($fields[2] eq 'CW') {
                $cw_40{$fields[8]} +=1;
            } elsif ($fields[2] eq 'RY') {
                $ry_40{$fields[8]} +=1;
            }
        }

        # 20m
        if ($fields[1] < 14350 && $fields[1] > 14000) {
            if ($fields[2] eq 'PH') {
                $ph_20{$fields[8]} +=1;
            } elsif ($fields[2] eq 'CW') {
                $cw_20{$fields[8]} +=1;
            } elsif ($fields[2] eq 'RY') {
                $ry_20{$fields[8]} +=1;
            }
        }

        # 15m
        if ($fields[1] < 21450 && $fields[1] > 21000) {
            if ($fields[2] eq 'PH') {
                $ph_15{$fields[8]} +=1;
            } elsif ($fields[2] eq 'CW') {
                $cw_15{$fields[8]} +=1;
            } elsif ($fields[2] eq 'RY') {
                $ry_15{$fields[8]} +=1;
            }
        }

        # 10m
        if ($fields[1] < 29000 && $fields[1] > 28000) {
            if ($fields[2] eq 'PH') {
                $ph_10{$fields[8]} +=1;
            } elsif ($fields[2] eq 'CW') {
                $cw_10{$fields[8]} +=1;
            } elsif ($fields[2] eq 'RY') {
                $ry_10{$fields[8]} +=1;
            }
        }
    }
}


print "\nNumber of mults: ", scalar(keys %mults), "\n";

print "\nMults/QSOs:\n";
foreach $mult (sort keys %mults) {
        if ($pos >= 70) {
                print "\n";
                $pos = 0;
        }
        printf "%s: %3d  ", $mult, $mults{$mult};
        $pos += 9;
}
print "\n\n";

printf "80m CW: %-10dSSB: %-10dDigital: %-10d\n", scalar(keys %cw_80), 
scalar(keys %ph_80), scalar(keys %ry_80);
printf "40m CW: %-10dSSB: %-10dDigital: %-10d\n", scalar(keys %cw_40), 
scalar(keys %ph_40), scalar(keys %ry_40);
printf "20m CW: %-10dSSB: %-10dDigital: %-10d\n", scalar(keys %cw_20), 
scalar(keys %ph_20), scalar(keys %ry_20);
printf "15m CW: %-10dSSB: %-10dDigital: %-10d\n", scalar(keys %cw_15), 
scalar(keys %ph_15), scalar(keys %ry_15);
printf "10m CW: %-10dSSB: %-10dDigital: %-10d\n", scalar(keys %cw_10), 
scalar(keys %ph_10), scalar(keys %ry_10);

print "\nTotals\n";

$phqs = (scalar(keys %ph_80) + scalar(keys %ph_40) + scalar(keys %ph_20) + 
scalar(keys %ph_15) + scalar(keys %ph_10));
$cwqs = (scalar(keys %cw_80) + scalar(keys %cw_40) + scalar(keys %cw_20) + 
scalar(keys %cw_15) + scalar(keys %cw_10));
$ryqs = (scalar(keys %ry_80) + scalar(keys %ry_40) + scalar(keys %ry_20) + 
scalar(keys %ry_15) + scalar(keys %ry_10));

printf "All: %-5dDuped: %-5d\n", $qsos, $cwqs + $phqs + $ryqs;
printf "CW: %-5dSSB: %-5dDigital: %-5d\n", $cwqs, $phqs, $ryqs;

$phpts = $phqs * 2;
$cwpts = $cwqs * 3;
$rypts = $ryqs * 3;

print "\nPoints:\n";
printf "Pts CW: %-12dSSB: %-12dDigital: %-12dTotal: %d\n", $phpts, $cwpts, 
$rypts, $phpts + $cwpts + $rypts;

print "\nTotal claimed score: ", ($phpts + $cwpts + $rypts) * scalar(keys 
%mults), "\n";

close(CABLOG);

RULES=ksqp
#
#################################
#                               #
#   TLF-LOGCFG.DAT v. 1.1.0     #
#                               #
#  Uncomment the options you    #
#  want to enable. See tlf.doc  #
#  for a description of the     #
#  options. You can keep diff-  #
#  erent versions for different #
#  contests. I keep separate    #
#  configuration files for      #
#  each contest. If you enable  #
#  more than 1 mutually exclu-  #
#  sive options, the last one   #
#  will be efective.            #
#                               #
#                               #
#################################
#
#CTCOMPATIBLE
#
#################################
#                               #
#   EDITOR                      #
#                               #
#################################
#
#EDITOR=joe
#EDITOR=vi
#EDITOR=e3
EDITOR=mcedit
#
#################################
#                               #
#  CALL                         #
#                               #
#################################
#
CALL=N0N
# CALL=N0NB
#
#
#################################
#                               #
#  Time offset from UTC         #
#                               #
#################################
#
TIME_OFFSET=0
TIME_MASTER
#
#################################
#                               #
#  LAN PORT                     #
#                               #
#################################
#  addnode only OTHER nodes !!
#
#ADDNODE=10.0.0.115
#ADDNODE=192.168.1.2
#
THISNODE=A
#
LAN_DEBUG
#
#################################
#                               #
#  KEYERPORT                    #
#                               #
#################################
#
NETKEYER
NETKEYERPORT=6789
NETKEYERHOST=127.0.0.1
#
#################################
#                               #
#  KEYERPARAMETERS              #
#                               #
#################################
#---speed (6 ... 60 wpm)
CWSPEED=24
#---weight (-5 ... 5 ms)
WEIGHT=1
#---cq delay (in 0,5 s)
CQDELAY=10
#---txdelay (ms)
TXDELAY=2
#---sidetone (200...800, 0 = mute)
CWTONE=800
#################################
#                               #
#  PACKET INTERFACE             #
#                               #
#################################
# Cluster: PI4TUE (Eindhoven)
#TELNETHOST=131.155.192.179
#TELNETPORT=8000
#TELNETHOST=wr3d.dxcluster.net
#TELNETPORT=7300
# automatic login ###############
#CLUSTERLOGIN=N0NB
# write log to disk #############
CLUSTER_LOG
#
# use tnc instead of telnet #####
#TNCPORT=/dev/ttyS0
#TNCPORT=/dev/ttyUSB1
#TNCSPEED=2400
#
# get clusterinfo from network ##
#FIFO_INTERFACE
#
#################################
#                               #
#  RADIO CONTROL                #
# (comment out if not present)  #
# Rigmodel = Hamlib index, here #
#           for ten tec OMNI VI #
#################################
#
RADIO_CONTROL
RIGMODEL=229
RIGSPEED=38400
#RIGPORT=/dev/null
RIGPORT=/dev/rig
RIGPTT
#
SSBMODE
#
#RIT_CLEAR
#
SHOW_FREQUENCY
#
#################################
#                               #
#  INFORMATION WINDOWS          #
#                               #
#################################
#
#CLUSTER
BANDMAP=S,900  # skipdupes, 900s livetime
#FILTER
#
SCOREWINDOW
#
CHECKWINDOW
#################################
#                               #
#  CHECK PARTIAL FUNCTION       #
#                               #
#################################
#
PARTIALS
#USEPARTIALS
#
#################################
#                               #
#  CONDX (info for muf calc.)   #
#                               #
#################################
#
SUNSPOTS=40
SFI=80
#
#################################
#                               #
#     Misc commands             #
#                               #
#################################
# No automatic 'qso before msg'
NOB4
#
# No automatic cq
#NOAUTOCQ
#
# Left/right arrows don't change band...
#NO_BANDSWITCH_ARROWKEYS
#
# Marker file for Xplanet
MARKERS=tlfmarkers
#
#############END#################

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Tlf-devel mailing list
Tlf-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tlf-devel

Reply via email to