+ my $s = $thing->{'s'};
+ if ($s eq 'au') {
+ my $n = $thing->{n} || $thing->{user};
+ my @out;
+ if ($n && (my $u = $thing->{u})) {
+ my $s = '';
+ for (split /:/, $u) {
+ my ($here, $call) = unpack "A1 A*", $_;
+ my $str = sprintf "^%s * %d", $call, $here;
+ if (length($s) + length($str) > $DXProt::sentencelth) {
+ push @out, "PC16^$n" . $s . sprintf "^%s^", DXProt::get_hops(16);
+ $s = '';
+ }
+ $s .= $str;
+ }
+ push @out, "PC16^$n" . $s . sprintf "^%s^", DXProt::get_hops(16);
+ $thing->{DXProt} = @out > 1 ? \@out : $out[0];
+ }
+ } elsif ($s eq 'du') {
+ my $n = $thing->{n} || $thing->{user};
+ my $hops = DXProt::get_hops(17);
+ if ($n && (my $u = $thing->{u})) {
+ $thing->{DXProt} = "PC17^$u^$n^$hops^";
+ }
+ } elsif ($s eq 'an') {
+ } elsif ($s eq 'dn') {
+ }