2005-01-20 15:09:14 +00:00
|
|
|
#
|
|
|
|
|
# Configuration for the Intel HD audio (ICH6/ICH7)
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
<confdir:pcm/front.conf>
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.front.0 {
|
|
|
|
|
@args [ CARD ]
|
|
|
|
|
@args.CARD {
|
2005-02-22 20:23:18 +00:00
|
|
|
type string
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
2011-04-24 11:56:44 +08:00
|
|
|
type asym
|
|
|
|
|
playback.pcm {
|
|
|
|
|
type softvol
|
|
|
|
|
slave.pcm {
|
|
|
|
|
type hw
|
|
|
|
|
card $CARD
|
2011-05-09 14:11:22 +02:00
|
|
|
subdevice 0
|
2011-04-24 11:56:44 +08:00
|
|
|
}
|
|
|
|
|
control {
|
|
|
|
|
name "PCM Playback Volume"
|
|
|
|
|
card $CARD
|
|
|
|
|
}
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
2011-04-24 11:56:44 +08:00
|
|
|
capture.pcm {
|
|
|
|
|
type hw
|
2005-01-20 15:09:14 +00:00
|
|
|
card $CARD
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2005-01-31 11:51:36 +00:00
|
|
|
# default with dmix+softvol & dsnoop
|
2005-01-20 15:09:14 +00:00
|
|
|
HDA-Intel.pcm.default {
|
|
|
|
|
@args [ CARD ]
|
|
|
|
|
@args.CARD {
|
2005-02-22 20:23:18 +00:00
|
|
|
type string
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
|
|
|
|
type asym
|
|
|
|
|
playback.pcm {
|
|
|
|
|
type plug
|
|
|
|
|
slave.pcm {
|
|
|
|
|
type softvol
|
|
|
|
|
slave.pcm {
|
2005-01-31 11:51:36 +00:00
|
|
|
@func concat
|
|
|
|
|
strings [ "dmix:" $CARD ]
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
|
|
|
|
control {
|
|
|
|
|
name "PCM Playback Volume"
|
|
|
|
|
card $CARD
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
capture.pcm {
|
|
|
|
|
type plug
|
|
|
|
|
slave.pcm {
|
2007-05-18 15:04:12 +02:00
|
|
|
type softvol
|
|
|
|
|
slave.pcm {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [ "dsnoop:" $CARD ]
|
|
|
|
|
}
|
|
|
|
|
control {
|
|
|
|
|
name "Digital Capture Volume"
|
|
|
|
|
card $CARD
|
|
|
|
|
}
|
|
|
|
|
min_dB -30.0
|
|
|
|
|
max_dB 30.0
|
|
|
|
|
resolution 121
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
2009-03-23 09:06:23 +01:00
|
|
|
# to avoid possible phase inversions with digital mics
|
|
|
|
|
route_policy copy
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
2009-02-13 17:14:51 +01:00
|
|
|
hint.device 0
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
|
|
|
|
|
2014-02-18 16:41:49 +01:00
|
|
|
<confdir:pcm/surround21.conf>
|
2005-01-20 15:09:14 +00:00
|
|
|
<confdir:pcm/surround40.conf>
|
|
|
|
|
<confdir:pcm/surround41.conf>
|
|
|
|
|
<confdir:pcm/surround50.conf>
|
|
|
|
|
<confdir:pcm/surround51.conf>
|
|
|
|
|
<confdir:pcm/surround71.conf>
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.surround40.0 cards.HDA-Intel.pcm.front.0
|
|
|
|
|
HDA-Intel.pcm.surround51.0 cards.HDA-Intel.pcm.front.0
|
|
|
|
|
HDA-Intel.pcm.surround71.0 cards.HDA-Intel.pcm.front.0
|
|
|
|
|
|
|
|
|
|
<confdir:pcm/iec958.conf>
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.iec958.0 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD {
|
|
|
|
|
type string
|
|
|
|
|
}
|
|
|
|
|
@args.AES0 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.AES1 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.AES2 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.AES3 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
2005-02-24 10:19:23 +00:00
|
|
|
type asym
|
|
|
|
|
playback.pcm {
|
|
|
|
|
type hooks
|
|
|
|
|
slave.pcm {
|
|
|
|
|
type hw
|
|
|
|
|
card $CARD
|
|
|
|
|
device 1
|
|
|
|
|
}
|
|
|
|
|
hooks.0 {
|
|
|
|
|
type ctl_elems
|
|
|
|
|
hook_args [
|
2013-02-11 12:28:45 +01:00
|
|
|
{
|
|
|
|
|
name "IEC958 Playback Default"
|
|
|
|
|
index 16
|
|
|
|
|
optional true
|
|
|
|
|
lock true
|
|
|
|
|
preserve true
|
|
|
|
|
value [ $AES0 $AES1 $AES2 $AES3 ]
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
name "IEC958 Playback Switch"
|
|
|
|
|
index 16
|
|
|
|
|
optional true
|
|
|
|
|
value true
|
|
|
|
|
# if this element is present, skip the rest
|
|
|
|
|
skip_rest true
|
|
|
|
|
}
|
2005-01-20 15:09:14 +00:00
|
|
|
{
|
|
|
|
|
name "IEC958 Playback Default"
|
|
|
|
|
lock true
|
|
|
|
|
preserve true
|
|
|
|
|
value [ $AES0 $AES1 $AES2 $AES3 ]
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
name "IEC958 Playback Switch"
|
|
|
|
|
value true
|
|
|
|
|
}
|
2005-02-24 10:19:23 +00:00
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
capture.pcm {
|
|
|
|
|
type hooks
|
|
|
|
|
slave.pcm {
|
|
|
|
|
type hw
|
|
|
|
|
card $CARD
|
|
|
|
|
device 1
|
|
|
|
|
}
|
|
|
|
|
hooks.0 {
|
|
|
|
|
type ctl_elems
|
|
|
|
|
hook_args [
|
|
|
|
|
{
|
|
|
|
|
name "IEC958 Capture Switch"
|
|
|
|
|
lock true
|
|
|
|
|
preserve true
|
|
|
|
|
value true
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
2006-10-12 14:34:23 +02:00
|
|
|
hint.device 1
|
2005-01-20 15:09:14 +00:00
|
|
|
}
|
2005-09-12 10:44:53 +00:00
|
|
|
|
2010-08-03 20:27:49 +03:00
|
|
|
HDA-Intel.pcm.hdmi.common {
|
|
|
|
|
@args [ CARD DEVICE CTLINDEX AES0 AES1 AES2 AES3 ]
|
2008-03-07 17:15:10 +01:00
|
|
|
@args.CARD {
|
|
|
|
|
type string
|
|
|
|
|
}
|
2010-08-03 20:27:49 +03:00
|
|
|
@args.DEVICE {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.CTLINDEX {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
2008-03-07 17:15:10 +01:00
|
|
|
@args.AES0 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.AES1 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.AES2 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
@args.AES3 {
|
|
|
|
|
type integer
|
|
|
|
|
}
|
|
|
|
|
type hooks
|
|
|
|
|
slave.pcm {
|
|
|
|
|
type hw
|
|
|
|
|
card $CARD
|
2010-08-03 20:27:49 +03:00
|
|
|
device $DEVICE
|
2008-03-07 17:15:10 +01:00
|
|
|
}
|
|
|
|
|
hooks.0 {
|
|
|
|
|
type ctl_elems
|
|
|
|
|
hook_args [
|
|
|
|
|
{
|
|
|
|
|
name "IEC958 Playback Default"
|
2010-08-03 20:27:49 +03:00
|
|
|
index $CTLINDEX
|
2008-03-07 17:15:10 +01:00
|
|
|
lock true
|
|
|
|
|
preserve true
|
|
|
|
|
value [ $AES0 $AES1 $AES2 $AES3 ]
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
name "IEC958 Playback Switch"
|
2010-08-03 20:27:49 +03:00
|
|
|
index $CTLINDEX
|
2008-03-07 17:15:10 +01:00
|
|
|
value true
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
2010-08-03 20:27:49 +03:00
|
|
|
hint.device $DEVICE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.0 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=3,"
|
|
|
|
|
"CTLINDEX=0,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.1 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=7,"
|
|
|
|
|
"CTLINDEX=1,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.2 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=8,"
|
|
|
|
|
"CTLINDEX=2,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.3 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=9,"
|
|
|
|
|
"CTLINDEX=3,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
2008-03-07 17:15:10 +01:00
|
|
|
}
|
|
|
|
|
|
2013-09-23 00:41:50 +03:00
|
|
|
HDA-Intel.pcm.hdmi.4 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=10,"
|
|
|
|
|
"CTLINDEX=4,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.5 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=11,"
|
|
|
|
|
"CTLINDEX=5,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.6 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=12,"
|
|
|
|
|
"CTLINDEX=6,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.7 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=13,"
|
|
|
|
|
"CTLINDEX=7,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
conf: HDA-Intel: increase the max number of HDMI/DP output to 11
Intel TGL HDMI/DP codec provides 9 pins (Linux kernel, 9a11ba7388f16:
ALSA: hda: hdmi - add Tigerlake support), and with the DP MST enabled,
the linux kernel will build 11 output devices (3, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16), and current alsa-lib only maps the first 8 output
devices, if users plug the HDMI/DP monitor to the last 3 ports, the
users will not see the output device from pulseaudio or gnome.
We have experienced this issue on a dell TGL machine with a dock, we
plugged 2 HDMP/DP monitors on the dock, but we could only see 1
HDMI/DP output device from pulseaudio or gnome, through investigation,
we found one monitor is plugged in the 2nd port from last.
Signed-off-by: Hui Wang <hui.wang@canonical.com>
BugLink: https://github.com/alsa-project/alsa-lib/pull/118
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-02-02 08:33:36 +08:00
|
|
|
HDA-Intel.pcm.hdmi.8 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=14,"
|
|
|
|
|
"CTLINDEX=8,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.9 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=15,"
|
|
|
|
|
"CTLINDEX=9,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.hdmi.10 {
|
|
|
|
|
@args [ CARD AES0 AES1 AES2 AES3 ]
|
|
|
|
|
@args.CARD { type string }
|
|
|
|
|
@args.AES0 { type integer }
|
|
|
|
|
@args.AES1 { type integer }
|
|
|
|
|
@args.AES2 { type integer }
|
|
|
|
|
@args.AES3 { type integer }
|
|
|
|
|
@func refer
|
|
|
|
|
name {
|
|
|
|
|
@func concat
|
|
|
|
|
strings [
|
|
|
|
|
"cards.HDA-Intel.pcm.hdmi.common:"
|
|
|
|
|
"CARD=" $CARD ","
|
|
|
|
|
"DEVICE=16,"
|
|
|
|
|
"CTLINDEX=10,"
|
|
|
|
|
"AES0=" $AES0 ","
|
|
|
|
|
"AES1=" $AES1 ","
|
|
|
|
|
"AES2=" $AES2 ","
|
|
|
|
|
"AES3=" $AES3
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2005-09-12 10:44:53 +00:00
|
|
|
<confdir:pcm/modem.conf>
|
|
|
|
|
|
|
|
|
|
HDA-Intel.pcm.modem.0 {
|
|
|
|
|
@args [ CARD ]
|
|
|
|
|
@args.CARD {
|
|
|
|
|
type string
|
|
|
|
|
}
|
|
|
|
|
type hw
|
|
|
|
|
card $CARD
|
|
|
|
|
device 6
|
2006-10-12 14:34:23 +02:00
|
|
|
hint.show off
|
2005-09-12 10:44:53 +00:00
|
|
|
}
|