From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFA2D393DC8 for ; Mon, 22 Jun 2026 08:55:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.135.223.130 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782118545; cv=none; b=RMVIw2q5srij7fWZpHayv4j9xAVHw8r8bw1lYHKSyWGzO/oH476kEKEkx2MT/+PyGNB9V0Wvy2/exGifpkMYd8A7Lr+3MSknLkDuxWSkv8VGpSTrIwYTn9rQrfnaalFdqx0s6XmW450QIQhNoIBDjwcQK0M2p6zjqb0K8jMeyuM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782118545; c=relaxed/simple; bh=jWLOauc12MbnH5Lj5lpgqkFnfzCxyfnzWrjt5PkJfb4=; h=Date:Message-ID:From:To:Cc:Subject:In-Reply-To:References: MIME-Version:Content-Type; b=f3fhPveDmXpSEcnW29nt+JqCmKATJCl/rJqqkfeldydf4/sE1gZbtpqGcaIRBUa1kjrpZWfV0zDh6JWwBIU25pAdw+bGC8xCIXWqiuH2FBIssx4b8rosRgWMBTKQpKECBv9ctaxCBAgn6iC06s7djnlktNZF5tY7k6e+RpECDyE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=suse.de; spf=pass smtp.mailfrom=suse.de; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b=vDeHc17g; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b=VIxWN/1t; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b=MOmuKuBP; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b=tIb7LM1D; arc=none smtp.client-ip=195.135.223.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="vDeHc17g"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="VIxWN/1t"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="MOmuKuBP"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="tIb7LM1D" Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id DB6877069E; Mon, 22 Jun 2026 08:55:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1782118540; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MG+mZjoHAjmeXE5aQi4R5t7YAjqldOVKSGOWpVi7GaE=; b=vDeHc17gvLWw8rUWRCGcKGDWolPpPir8t0QO/PmbKNJDdoDRWbGBfDnIfgTIc4AgUR6H0i G1n9ZT+/IOzhFwNUDCwhRcVHVZ/2KHVjkxMuV3q6O+o9aeHIzSmm1dylVQxZxV0dQap/AV qU4lmC5ES+xZWJ93Vrk4U+YLlFnqspg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1782118540; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MG+mZjoHAjmeXE5aQi4R5t7YAjqldOVKSGOWpVi7GaE=; b=VIxWN/1t7Q0LnR+yohk6OgCCv1183sHIQslzII17oH8b2sbV1jA7Qdqx0xHftEFfS+3Pob IGpVHCmpijky1bBQ== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=MOmuKuBP; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=tIb7LM1D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1782118539; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MG+mZjoHAjmeXE5aQi4R5t7YAjqldOVKSGOWpVi7GaE=; b=MOmuKuBP5hstOxD1+BNE5L7fVdfqS12HP3kkeXqmbxDBCYf1T/dNppbn50RwVbRLmuW5P9 MXHB5toZfrw2YOlF3ZM55cr4uZ/Hh0weOyRKefkL3LHRLD7WFsDsFSSsdDf6VEqGW9JXvE zTWAiq2eeM9eOlJIqd2umHVSXuWEeKA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1782118539; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MG+mZjoHAjmeXE5aQi4R5t7YAjqldOVKSGOWpVi7GaE=; b=tIb7LM1DJjkMNUQLRXr5ReIdovBjVw9zdZ8ZXqITr7WhuyxdIlDXy6YYmx5PQ9Lia0OqZF J9CcZlNq8gGq5bCw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9F918779A8; Mon, 22 Jun 2026 08:55:39 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id QHPKIIv4OGpRFgAAD6G6ig (envelope-from ); Mon, 22 Jun 2026 08:55:39 +0000 Date: Mon, 22 Jun 2026 10:55:38 +0200 Message-ID: <87ldc7dkdx.wl-tiwai@suse.de> From: Takashi Iwai To: Christopher =?ISO-8859-1?Q?H=F6ner?= Cc: linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org, perex@perex.cz, tiwai@suse.com Subject: Re: [PATCH v2] ALSA: hda/realtek: Enable internal speakers on Razer Blade 16 (2025) In-Reply-To: <20260621205711.11127-1-christopher-hoener@web.de> References: <20260620144128.13602-1-christopher-hoener@web.de> <20260621205711.11127-1-christopher-hoener@web.de> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/30.2 Mule/6.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Flag: NO X-Rspamd-Action: no action X-Spam-Level: X-Spamd-Result: default: False [-3.51 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FREEMAIL_TO(0.00)[web.de]; FUZZY_RATELIMITED(0.00)[rspamd.com]; ARC_NA(0.00)[]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FREEMAIL_ENVRCPT(0.00)[web.de]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; DNSWL_BLOCKED(0.00)[2a07:de40:b281:106:10:150:64:167:received]; RCVD_VIA_SMTP_AUTH(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; DKIM_TRACE(0.00)[suse.de:+]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:mid,suse.de:dkim,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Queue-Id: DB6877069E X-Spam-Score: -3.51 On Sun, 21 Jun 2026 22:57:11 +0200, Christopher Höner wrote: > > On the Razer Blade 16 (2025) (Realtek ALC298, PCI SSID 1a58:300e) the > internal speakers are driven through an external smart amplifier whose > crossover, voicing and protection live in a DSP reached over a vendor > coef mailbox on NID 0x20. Both speaker pins are fed from one DAC > through a mixer and the amplifier does the crossover. The BIOS leaves > the tweeter pin (NID 0x14) disabled (default config 0x411111f0), so the > tweeters are not exposed and the amplifier is never programmed for this > machine under Linux. > > Add a fixup for the machine that: > > - re-exposes the tweeter pin (NID 0x14) as an internal speaker in the > same association (2) as the woofer (NID 0x17), so the controls come > out as "Speaker"/"Bass Speaker", with auto-mute on headphone > insertion; > > - pins every output to a fixed converter via preferred_dacs so the > routing does not depend on the generic parser's DAC-allocation > heuristics: both speaker pins share DAC 0x03 (the only converter > that drives the woofer on this machine) through the mixer, while the > headphone (NID 0x21) keeps DAC 0x02. Without a fixed assignment the > parser brings up only one speaker pin and leaves the other silent; > > - wakes the external amp, programs its DSP over the NID-0x20 mailbox > at init (boot and resume) and parks it; it is woken again for > playback and parked afterwards from a pcm_playback_hook, like the > existing Samsung and LG Gram amplifier fixups. > > The DSP sequence was obtained by capturing the Windows driver's HD-audio > traffic via QEMU/VFIO passthrough of the controller and reducing it to > the NID-0x20 writes this machine needs; everything else the parser > rebuilds. > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=207423 > Signed-off-by: Christopher Höner > --- > Changes in v2: > - Bring up both speaker pins via preferred_dacs instead of explicit > SET_CONNECT_SEL/SET_POWER_STATE/SET_PIN_WIDGET_CONTROL/amp verbs at > init. All three output pins are pinned to fixed converters > (headphone NID 0x21 -> DAC 0x02, both speaker pins -> DAC 0x03), so > the generic parser routes, powers and unmutes them and the routing > no longer depends on its DAC-allocation heuristics. This also drops > the hardcoded NID 0x17 connection-select value questioned in v1. > - Drop the codec-coef preamble that the captured trace replayed before > the DSP body: the standard codec init already establishes that state > on this machine, so the preamble is redundant. Init now wakes the > amp, programs the DSP body and parks it. > - Reduce the per-playback wake and park to the three coef writes that > select the amp's run/idle state (ea00, c121, f109); the rest of the > captured wake/park was constant context the Windows driver re-sends > on every transition. > - Explain in a comment why the NID-0x20 mailbox stream uses > snd_hda_codec_write() rather than alc_process_coef_fw(); drop a > duplicated comment and correct the init comment. > - Limit the quirk to PCI SSID 1a58:300e. > - Tested from cold boot, warm reboot, S3 resume and a full power cycle > on Linux 7.1.1. > > Notes (not part of the commit message - for reviewers): > > * Scope: this fixup covers only PCI SSID 1a58:300e (the 2025 model). > Other Razer Blade models use a similar design but are not tested > here and are intentionally left out. > > * Speaker pin sequence: the woofer (NID 0x17) is sequenced ahead of > the tweeter (NID 0x14) in association 2 (sequence 0 vs 1) so the > parser treats the woofer as the primary speaker channel. > > * The fixup pins all output pins with preferred_dacs instead of letting > the parser allocate converters and overriding the result. Both > speaker pins share DAC 0x03 (each routed through mixer 0x0d); the > headphone keeps DAC 0x02. DAC 0x03 is required: of the woofer pin's > three sources -- mixer 0x0c (DAC 0x02), mixer 0x0d (DAC 0x03) and the > digital converter 0x06 -- only DAC 0x03 drives the woofer on > hardware; DAC 0x02 and converter 0x06 both leave it silent (which is > also why the Windows converter map, tweeter on 0x02 and woofer on > 0x06, cannot be reused on Linux). Pinning all pins also keeps the > routing stable if the parser's allocation heuristics change in a > later kernel. > > * On WRITE_COEF()/alc_process_coef_fw(): the plain coefficient writes > already go through alc_write_coef_idx(). The amp programming is not > a list of independent coefficients, though -- each step streams four > PROC_COEF words into a single coef index (0x23) on NID 0x20 to reach > the external DSP, which alc_process_coef_fw() (one value per index) > cannot express. The plain coefs and mailbox writes share one > order-dependent table. > > * Tested on Linux 7.1.1 on a Razer Blade 16 2025 (RZ09-0528): both > internal speakers play (tweeter and woofer), auto-mute works on > headphone insertion, the amplifier powers up on playback and parks on > idle, and audio survives suspend/resume and a cold boot. > > * The init table is the captured DSP body, kept verbatim and in order > (the writes are ordered, with phase-dependent repeats); only the > redundant preamble and the constant wake/park padding were removed. > It could be moved to a request_firmware() blob the way other > smart-amp codecs load their data if that is preferred -- guidance > welcome. > > * The captured sequence is the OS-level programming only and contains > no DSP coefficient-bank loads; those appear to be primed by the > platform firmware at power-on. Cold boot and S3 are covered; > hibernation (S4) should be too, as the firmware re-primes on the > power cycle, but is worth confirming. > > sound/hda/codecs/realtek/alc269.c | 828 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 828 insertions(+) > > diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c > index 5d09baa..91a6115 100644 > --- a/sound/hda/codecs/realtek/alc269.c > +++ b/sound/hda/codecs/realtek/alc269.c > @@ -4041,6 +4041,8 @@ enum { > ALC298_FIXUP_SAMSUNG_AMP_V2_2_AMPS, > ALC298_FIXUP_SAMSUNG_AMP_V2_4_AMPS, > ALC298_FIXUP_LG_GRAM_STYLE_14, > + ALC298_FIXUP_RAZER_BLADE16_PINS, > + ALC298_FIXUP_RAZER_BLADE16, > ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET, > ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET, > ALC295_FIXUP_ASUS_MIC_NO_PRESENCE, > @@ -4205,7 +4207,832 @@ static void alc287_fixup_lenovo_yoga_book_9i(struct hda_codec *codec, > __snd_hda_apply_fixup(codec, id, action, 0); > } > > +/* > + * Razer Blade 16 (2025): Realtek ALC298 driving an external smart amp. > + * Crossover, voicing and speaker protection live in an external DSP reached > + * through a vendor-coef mailbox on NID 0x20. The Windows driver programs the > + * DSP at boot and powers it up/down around playback; this replays the same > + * traffic. The sequence was captured from the Windows driver via QEMU/VFIO > + * passthrough of the HD-audio controller and reduced to the NID-0x20 traffic > + * (everything else the HDA parser rebuilds). NID 0x14, the BIOS-disabled > + * tweeter pin, is re-exposed via a pin-config override so the parser drives it > + * as a normal internal speaker (shared volume/mute, auto-mute on headphone > + * insertion). > + * > + * Each table entry is either a plain codec coef write or an external-DSP > + * mailbox write: > + * strobe == 0: coef[addr] = lo > + * strobe != 0: amp[addr] = (hi << 16) | lo, bank selected on port 0x89 and > + * committed by the strobe opcode. > + */ > +struct alc298_rb16_op { > + u16 bank; /* mailbox bank (port 0x89); unused for a plain coef */ > + u16 addr; /* mailbox register, or plain coef index */ > + u16 hi; /* mailbox high word; unused for a plain coef */ > + u16 lo; /* mailbox low word, or plain coef value */ > + u16 strobe; /* mailbox commit opcode; 0 marks a plain coef write */ > +}; > + > +/* > + * Run one op-table. A plain coef write (strobe == 0) uses the normal > + * codec coef registers via alc_write_coef_idx(). A mailbox op selects > + * a bank, then streams four PROC_COEF words (addr/hi/lo/commit) into a > + * single coef index (0x23) on node 0x20 to reach the external DSP -- > + * that one-index/many-words form is why the mailbox cannot be written > + * as an alc_process_coef_fw() table (which is one value per index). > + */ > +static void alc298_rb16_apply(struct hda_codec *codec, > + const struct alc298_rb16_op *seq, int num) > +{ > + int i; > + > + for (i = 0; i < num; i++) { > + if (!seq[i].strobe) { > + alc_write_coef_idx(codec, seq[i].addr, seq[i].lo); > + continue; > + } > + alc_write_coef_idx(codec, 0x89, seq[i].bank); > + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_COEF_INDEX, 0x23); > + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].addr); > + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].hi); > + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].lo); > + snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, seq[i].strobe); > + } > +} > + > +/* program the external DSP at init; the amp is woken/parked separately */ > +static const struct alc298_rb16_op alc298_rb16_amp_init[] = { > + { 0x0000, 0xc000, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xea00, 0x0000, 0x0047, 0xb031 }, > + { 0x0000, 0xf20d, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xf212, 0x0000, 0x003e, 0xb031 }, > + { 0x0000, 0xc001, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xc003, 0x0000, 0x0022, 0xb031 }, > + { 0x0000, 0xc004, 0x0000, 0x0044, 0xb031 }, > + { 0x0000, 0xc005, 0x0000, 0x0044, 0xb031 }, > + { 0x0000, 0xc007, 0x0000, 0x0064, 0xb031 }, > + { 0x0000, 0xc00e, 0x0000, 0x00e7, 0xb031 }, > + { 0x0000, 0xf223, 0x0000, 0x007f, 0xb031 }, > + { 0x0000, 0xf224, 0x0000, 0x00db, 0xb031 }, > + { 0x0000, 0xf225, 0x0000, 0x00ee, 0xb031 }, > + { 0x0000, 0xf226, 0x0000, 0x003f, 0xb031 }, > + { 0x0000, 0xf227, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xf21a, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xf242, 0x0000, 0x003c, 0xb031 }, > + { 0x0000, 0xc120, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xc125, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xc321, 0x0000, 0x000b, 0xb031 }, > + { 0x0000, 0xc200, 0x0000, 0x00d8, 0xb031 }, > + { 0x0000, 0xc201, 0x0000, 0x0027, 0xb031 }, > + { 0x0000, 0xc202, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xc400, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xc401, 0x0000, 0x0043, 0xb031 }, > + { 0x0000, 0xc402, 0x0000, 0x00e0, 0xb031 }, > + { 0x0000, 0xc403, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xc404, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xc406, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xc407, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xc408, 0x0000, 0x003f, 0xb031 }, > + { 0x0000, 0xc300, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xc125, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xdf00, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xdf5f, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xdf60, 0x0000, 0x00a7, 0xb031 }, > + { 0x0000, 0xc203, 0x0000, 0x0084, 0xb031 }, > + { 0x0000, 0xc206, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xf10a, 0x0000, 0x000b, 0xb031 }, > + { 0x0000, 0xf10b, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xf104, 0x0000, 0x00f4, 0xb031 }, > + { 0x0000, 0xf105, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xf109, 0x0000, 0x00e0, 0xb031 }, > + { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 }, > + { 0x0000, 0xf104, 0x0000, 0x00f4, 0xb031 }, > + { 0x0000, 0xf105, 0x0000, 0x0004, 0xb031 }, > + { 0x0000, 0xf109, 0x0000, 0x0065, 0xb031 }, > + { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 }, > + { 0x0000, 0xf104, 0x0000, 0x00f7, 0xb031 }, > + { 0x0000, 0xf105, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xf109, 0x0000, 0x0006, 0xb031 }, > + { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 }, > + { 0x0000, 0xf104, 0x0000, 0x00f7, 0xb031 }, > + { 0x0000, 0xf105, 0x0000, 0x0031, 0xb031 }, > + { 0x0000, 0xf109, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xf10b, 0x0000, 0x005c, 0xb031 }, > + { 0x0000, 0xe706, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xe707, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xe806, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xe807, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xce04, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xce05, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xce06, 0x0000, 0x0031, 0xb031 }, > + { 0x0000, 0xce07, 0x0000, 0x00b4, 0xb031 }, > + { 0x0000, 0xcf04, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xcf05, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xcf06, 0x0000, 0x0031, 0xb031 }, > + { 0x0000, 0xcf07, 0x0000, 0x00b4, 0xb031 }, > + { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xc130, 0x0000, 0x0051, 0xb031 }, > + { 0x0000, 0xe000, 0x0000, 0x00a8, 0xb031 }, > + { 0x4100, 0x1888, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xc121, 0x0000, 0x000b, 0xb031 }, > + { 0x0000, 0xea00, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xf800, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xca00, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xca10, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xca02, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xca12, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xed00, 0x0000, 0x0090, 0xb031 }, > + { 0x0000, 0xcc2c, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc2d, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xcc2e, 0x0000, 0x0076, 0xb031 }, > + { 0x0000, 0xcc2f, 0x0000, 0x0043, 0xb031 }, > + { 0x0000, 0xcd2c, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd2d, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xcd2e, 0x0000, 0x0076, 0xb031 }, > + { 0x0000, 0xcd2f, 0x0000, 0x0043, 0xb031 }, > + { 0x0000, 0xcc24, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc25, 0x0000, 0x0051, 0xb031 }, > + { 0x0000, 0xcc26, 0x0000, 0x00eb, 0xb031 }, > + { 0x0000, 0xcc27, 0x0000, 0x0085, 0xb031 }, > + { 0x0000, 0xcd24, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd25, 0x0000, 0x0051, 0xb031 }, > + { 0x0000, 0xcd26, 0x0000, 0x00eb, 0xb031 }, > + { 0x0000, 0xcd27, 0x0000, 0x0085, 0xb031 }, > + { 0x0000, 0xcc20, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc21, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc22, 0x0000, 0x0043, 0xb031 }, > + { 0x0000, 0xcd20, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd21, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd22, 0x0000, 0x0043, 0xb031 }, > + { 0x0000, 0xcc16, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xcc17, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd16, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xcd17, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc29, 0x0000, 0x005d, 0xb031 }, > + { 0x0000, 0xcc2a, 0x0000, 0x00c0, 0xb031 }, > + { 0x0000, 0xcd29, 0x0000, 0x005d, 0xb031 }, > + { 0x0000, 0xcd2a, 0x0000, 0x00c0, 0xb031 }, > + { 0x0000, 0xcc31, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xcc32, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc33, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc34, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd31, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xcd32, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd33, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd34, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc36, 0x0000, 0x0079, 0xb031 }, > + { 0x0000, 0xcc37, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xcc38, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xcc39, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xcd36, 0x0000, 0x0079, 0xb031 }, > + { 0x0000, 0xcd37, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xcd38, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xcd39, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xcc09, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc0a, 0x0000, 0x000a, 0xb031 }, > + { 0x0000, 0xcc0b, 0x0000, 0x007c, 0xb031 }, > + { 0x0000, 0xcc0c, 0x0000, 0x005b, 0xb031 }, > + { 0x0000, 0xcd09, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd0a, 0x0000, 0x000a, 0xb031 }, > + { 0x0000, 0xcd0b, 0x0000, 0x007c, 0xb031 }, > + { 0x0000, 0xcd0c, 0x0000, 0x005b, 0xb031 }, > + { 0x0000, 0xcc0e, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcc0f, 0x0000, 0x0005, 0xb031 }, > + { 0x0000, 0xcc10, 0x0000, 0x003e, 0xb031 }, > + { 0x0000, 0xcc11, 0x0000, 0x002d, 0xb031 }, > + { 0x0000, 0xcd0e, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcd0f, 0x0000, 0x0005, 0xb031 }, > + { 0x0000, 0xcd10, 0x0000, 0x003e, 0xb031 }, > + { 0x0000, 0xcd11, 0x0000, 0x002d, 0xb031 }, > + { 0x0000, 0xccd6, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xccd7, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xcdd6, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcdd7, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xccd8, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xccd9, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xcdd8, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcdd9, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xccda, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xccdb, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xcdda, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xcddb, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xc320, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xc321, 0x0000, 0x000a, 0xb031 }, > + { 0x0000, 0xe604, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xdb00, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xdd00, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xdc19, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xdc1a, 0x0000, 0x006a, 0xb031 }, > + { 0x0000, 0xdc1b, 0x0000, 0x00aa, 0xb031 }, > + { 0x0000, 0xdc1c, 0x0000, 0x00ab, 0xb031 }, > + { 0x0000, 0xdc1d, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xdc1e, 0x0000, 0x0027, 0xb031 }, > + { 0x0000, 0xdc1f, 0x0000, 0x0062, 0xb031 }, > + { 0x0000, 0xdc20, 0x0000, 0x0076, 0xb031 }, > + { 0x0000, 0xde19, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xde1a, 0x0000, 0x006a, 0xb031 }, > + { 0x0000, 0xde1b, 0x0000, 0x00aa, 0xb031 }, > + { 0x0000, 0xde1c, 0x0000, 0x00ab, 0xb031 }, > + { 0x0000, 0xde1d, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xde1e, 0x0000, 0x0027, 0xb031 }, > + { 0x0000, 0xde1f, 0x0000, 0x0062, 0xb031 }, > + { 0x0000, 0xde20, 0x0000, 0x0076, 0xb031 }, > + { 0x0000, 0xdb32, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xdd32, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xdb33, 0x0000, 0x000a, 0xb031 }, > + { 0x0000, 0xdd33, 0x0000, 0x000a, 0xb031 }, > + { 0x0000, 0xdb34, 0x0000, 0x001a, 0xb031 }, > + { 0x0000, 0xdd34, 0x0000, 0x001a, 0xb031 }, > + { 0x0000, 0xdb15, 0x0000, 0x00ef, 0xb031 }, > + { 0x0000, 0xdd15, 0x0000, 0x00ef, 0xb031 }, > + { 0x0000, 0xdb17, 0x0000, 0x003f, 0xb031 }, > + { 0x0000, 0xdd17, 0x0000, 0x003f, 0xb031 }, > + { 0x0000, 0xdb94, 0x0000, 0x0070, 0xb031 }, > + { 0x0000, 0xdd94, 0x0000, 0x0070, 0xb031 }, > + { 0x0000, 0xdb19, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xdd19, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xc203, 0x0000, 0x001c, 0xb031 }, > + { 0x0000, 0xdb00, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xdb04, 0x0000, 0x0005, 0xb031 }, > + { 0x0000, 0xdb05, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xdd04, 0x0000, 0x0005, 0xb031 }, > + { 0x0000, 0xdd05, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xdbbb, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xdbbc, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xdbbd, 0x0000, 0x00f3, 0xb031 }, > + { 0x0000, 0xdbbe, 0x0000, 0x00cf, 0xb031 }, > + { 0x0000, 0xddbb, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xddbc, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xddbd, 0x0000, 0x00f3, 0xb031 }, > + { 0x0000, 0xddbe, 0x0000, 0x00cf, 0xb031 }, > + { 0x0000, 0xdb01, 0x0000, 0x0079, 0xb031 }, > + { 0x0000, 0xdd01, 0x0000, 0x0079, 0xb031 }, > + { 0x0000, 0xdb08, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xdd08, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xdc52, 0x0000, 0x00ef, 0xb031 }, > + { 0x0000, 0xde52, 0x0000, 0x00ef, 0xb031 }, > + { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 }, > + { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 }, > + { 0x0000, 0xdf0a, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xdf0b, 0x0000, 0x007f, 0xb031 }, > + { 0x0000, 0xc851, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xc951, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xdf01, 0x0000, 0x0073, 0xb031 }, > + { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 }, > + { 0x0000, 0xf800, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xebcb, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xeb10, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xeb11, 0x0000, 0x00bb, 0xb031 }, > + { 0x0000, 0xeb12, 0x0000, 0x00ab, 0xb031 }, > + { 0x0000, 0xeb13, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xeb14, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb15, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xeb16, 0x0000, 0x0069, 0xb031 }, > + { 0x0000, 0xeb21, 0x0000, 0x0011, 0xb031 }, > + { 0x0000, 0xeb22, 0x0000, 0x00c2, 0xb031 }, > + { 0x0000, 0xeb23, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xeb24, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xeb25, 0x0000, 0x00bd, 0xb031 }, > + { 0x0000, 0xeb26, 0x0000, 0x0055, 0xb031 }, > + { 0x0000, 0xeb27, 0x0000, 0x00d0, 0xb031 }, > + { 0x0000, 0xeb28, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb29, 0x0000, 0x003c, 0xb031 }, > + { 0x0000, 0xeb2a, 0x0000, 0x0051, 0xb031 }, > + { 0x0000, 0xeb2b, 0x0000, 0x0018, 0xb031 }, > + { 0x0000, 0xeb30, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xeb31, 0x0000, 0x004f, 0xb031 }, > + { 0x0000, 0xeb32, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xeb33, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xeb34, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb35, 0x0000, 0x00bb, 0xb031 }, > + { 0x0000, 0xeb36, 0x0000, 0x0024, 0xb031 }, > + { 0x0000, 0xeb37, 0x0000, 0x0068, 0xb031 }, > + { 0x0000, 0xeb40, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb41, 0x0000, 0x00f5, 0xb031 }, > + { 0x0000, 0xeb42, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xeb43, 0x0000, 0x00e8, 0xb031 }, > + { 0x0000, 0xeb44, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xeb45, 0x0000, 0x004f, 0xb031 }, > + { 0x0000, 0xeb46, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xeb47, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xeb48, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb49, 0x0000, 0x00c5, 0xb031 }, > + { 0x0000, 0xeb4a, 0x0000, 0x0032, 0xb031 }, > + { 0x0000, 0xeb4b, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xeb50, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xeb51, 0x0000, 0x008a, 0xb031 }, > + { 0x0000, 0xeb52, 0x0000, 0x00b4, 0xb031 }, > + { 0x0000, 0xeb53, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xeb54, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb55, 0x0000, 0x007d, 0xb031 }, > + { 0x0000, 0xeb56, 0x0000, 0x00d9, 0xb031 }, > + { 0x0000, 0xeb57, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xeb60, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xeb61, 0x0000, 0x00e7, 0xb031 }, > + { 0x0000, 0xeb62, 0x0000, 0x00b5, 0xb031 }, > + { 0x0000, 0xeb63, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xeb64, 0x0000, 0x00fa, 0xb031 }, > + { 0x0000, 0xeb65, 0x0000, 0x0086, 0xb031 }, > + { 0x0000, 0xeb66, 0x0000, 0x00a8, 0xb031 }, > + { 0x0000, 0xeb67, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xeb68, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xeb69, 0x0000, 0x009a, 0xb031 }, > + { 0x0000, 0xeb6a, 0x0000, 0x002f, 0xb031 }, > + { 0x0000, 0xeb6b, 0x0000, 0x0018, 0xb031 }, > + { 0x0000, 0xebb6, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xeb70, 0x0000, 0x00f5, 0xb031 }, > + { 0x0000, 0xeb71, 0x0000, 0x00e1, 0xb031 }, > + { 0x0000, 0xeb72, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xeb73, 0x0000, 0x00d0, 0xb031 }, > + { 0x0000, 0xeb74, 0x0000, 0x0006, 0xb031 }, > + { 0x0000, 0xeb75, 0x0000, 0x0050, 0xb031 }, > + { 0x0000, 0xeb76, 0x0000, 0x002c, 0xb031 }, > + { 0x0000, 0xeb77, 0x0000, 0x0050, 0xb031 }, > + { 0x0000, 0xeb80, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb81, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xeb82, 0x0000, 0x0016, 0xb031 }, > + { 0x0000, 0xeb83, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xeb84, 0x0000, 0x00f5, 0xb031 }, > + { 0x0000, 0xeb85, 0x0000, 0x00e1, 0xb031 }, > + { 0x0000, 0xeb86, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xeb87, 0x0000, 0x00d0, 0xb031 }, > + { 0x0000, 0xeb88, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xeb89, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xeb8a, 0x0000, 0x0016, 0xb031 }, > + { 0x0000, 0xeb8b, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xebb8, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xeb90, 0x0000, 0x00fc, 0xb031 }, > + { 0x0000, 0xeb91, 0x0000, 0x008b, 0xb031 }, > + { 0x0000, 0xeb92, 0x0000, 0x00bd, 0xb031 }, > + { 0x0000, 0xeb93, 0x0000, 0x0064, 0xb031 }, > + { 0x0000, 0xeb94, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xeb95, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xeb96, 0x0000, 0x00e7, 0xb031 }, > + { 0x0000, 0xeb97, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xeba0, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xeba1, 0x0000, 0x0091, 0xb031 }, > + { 0x0000, 0xeba2, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xeba3, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xeba4, 0x0000, 0x00f6, 0xb031 }, > + { 0x0000, 0xeba5, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xeba6, 0x0000, 0x0093, 0xb031 }, > + { 0x0000, 0xeba7, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xeba8, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xeba9, 0x0000, 0x0087, 0xb031 }, > + { 0x0000, 0xebaa, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xebab, 0x0000, 0x006c, 0xb031 }, > + { 0x0000, 0xebc3, 0x0000, 0x00ff, 0xb031 }, > + { 0x0000, 0xebc4, 0x0000, 0x00fc, 0xb031 }, > + { 0x0000, 0xeb00, 0x0000, 0x0005, 0xb031 }, > + { 0x0000, 0xeb01, 0x0000, 0x00a9, 0xb031 }, > + { 0x0000, 0xeb02, 0x0000, 0x00df, 0xb031 }, > + { 0x0000, 0xeb03, 0x0000, 0x007b, 0xb031 }, > + { 0x0000, 0xeb05, 0x0000, 0x0079, 0xb031 }, > + { 0x0000, 0xeb06, 0x0000, 0x005a, 0xb031 }, > + { 0x0000, 0xeb07, 0x0000, 0x0004, 0xb031 }, > + { 0x0000, 0xebc0, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xd0cb, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xd0b0, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xd010, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd011, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xd012, 0x0000, 0x0092, 0xb031 }, > + { 0x0000, 0xd013, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd014, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xd015, 0x0000, 0x00f6, 0xb031 }, > + { 0x0000, 0xd016, 0x0000, 0x0072, 0xb031 }, > + { 0x0000, 0xd017, 0x0000, 0x00b0, 0xb031 }, > + { 0x0000, 0xd020, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xd021, 0x0000, 0x00fb, 0xb031 }, > + { 0x0000, 0xd022, 0x0000, 0x0037, 0xb031 }, > + { 0x0000, 0xd023, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd024, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd025, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xd026, 0x0000, 0x0090, 0xb031 }, > + { 0x0000, 0xd027, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xd028, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xd029, 0x0000, 0x00fb, 0xb031 }, > + { 0x0000, 0xd02a, 0x0000, 0x0037, 0xb031 }, > + { 0x0000, 0xd02b, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd0c3, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd0c4, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xd0c0, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xce6a, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xce63, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xce64, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 }, > + { 0x0000, 0xdb04, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xdb05, 0x0000, 0x0006, 0xb031 }, > + { 0x0000, 0xcc00, 0x0000, 0x00c1, 0xb031 }, > + { 0x0000, 0xca02, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xca00, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xca62, 0x0000, 0x0077, 0xb031 }, > + { 0x0000, 0xca65, 0x0000, 0x0082, 0xb031 }, > + { 0x0000, 0xca68, 0x0000, 0x00c2, 0xb031 }, > + { 0x0000, 0xca75, 0x0000, 0x003a, 0xb031 }, > + { 0x0000, 0xca7b, 0x0000, 0x006f, 0xb031 }, > + { 0x0000, 0xca00, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xca02, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xc860, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xc861, 0x0000, 0x00e5, 0xb031 }, > + { 0x0000, 0xc862, 0x0000, 0x00eb, 0xb031 }, > + { 0x0000, 0xc863, 0x0000, 0x00c6, 0xb031 }, > + { 0x0000, 0xc864, 0x0000, 0x00ba, 0xb031 }, > + { 0x0000, 0xc865, 0x0000, 0x0061, 0xb031 }, > + { 0x0000, 0xc867, 0x0000, 0x0017, 0xb031 }, > + { 0x0000, 0xc868, 0x0000, 0x00ed, 0xb031 }, > + { 0x0000, 0xc869, 0x0000, 0x003c, 0xb031 }, > + { 0x0000, 0xc86a, 0x0000, 0x008a, 0xb031 }, > + { 0x0000, 0xc86b, 0x0000, 0x00e2, 0xb031 }, > + { 0x0000, 0xc875, 0x0000, 0x003a, 0xb031 }, > + { 0x0000, 0xc87b, 0x0000, 0x006f, 0xb031 }, > + { 0x0000, 0xc836, 0x0000, 0x00f9, 0xb031 }, > + { 0x0000, 0xc8a0, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xc833, 0x0000, 0x000b, 0xb031 }, > + { 0x0000, 0xc834, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xc83f, 0x0000, 0x0014, 0xb031 }, > + { 0x0000, 0xc83e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc83a, 0x0000, 0x0076, 0xb031 }, > + { 0x0000, 0xc83b, 0x0000, 0x0089, 0xb031 }, > + { 0x0000, 0xc830, 0x0000, 0x0013, 0xb031 }, > + { 0x0000, 0xc826, 0x0000, 0x00d1, 0xb031 }, > + { 0x0000, 0xc890, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xc823, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xc824, 0x0000, 0x0004, 0xb031 }, > + { 0x0000, 0xc82f, 0x0000, 0x0018, 0xb031 }, > + { 0x0000, 0xc82e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc820, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xc816, 0x0000, 0x00f9, 0xb031 }, > + { 0x0000, 0xc880, 0x0000, 0x00e1, 0xb031 }, > + { 0x0000, 0xc813, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xc814, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xc81f, 0x0000, 0x0014, 0xb031 }, > + { 0x0000, 0xc81e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc81a, 0x0000, 0x0066, 0xb031 }, > + { 0x0000, 0xc81b, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xc810, 0x0000, 0x000d, 0xb031 }, > + { 0x0000, 0xc846, 0x0000, 0x00f9, 0xb031 }, > + { 0x0000, 0xc8d0, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xc844, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xc84f, 0x0000, 0x0014, 0xb031 }, > + { 0x0000, 0xc84e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc84a, 0x0000, 0x0026, 0xb031 }, > + { 0x0000, 0xc84b, 0x0000, 0x0056, 0xb031 }, > + { 0x0000, 0xc800, 0x0000, 0x00b0, 0xb031 }, > + { 0x0000, 0xc851, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xc500, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc501, 0x0000, 0x0026, 0xb031 }, > + { 0x0000, 0xc502, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xc503, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xc504, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xc505, 0x0000, 0x00da, 0xb031 }, > + { 0x0000, 0xc506, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xc507, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc510, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xc511, 0x0000, 0x00da, 0xb031 }, > + { 0x0000, 0xc512, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xc513, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc514, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc515, 0x0000, 0x0026, 0xb031 }, > + { 0x0000, 0xc516, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xc517, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xc518, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xc541, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xd250, 0x0000, 0x0087, 0xb031 }, > + { 0x0000, 0xd251, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xd264, 0x0000, 0x00c0, 0xb031 }, > + { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 }, > + { 0x0000, 0xf800, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xecb0, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xec10, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xec11, 0x0000, 0x00bb, 0xb031 }, > + { 0x0000, 0xec12, 0x0000, 0x00ab, 0xb031 }, > + { 0x0000, 0xec13, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xec14, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec15, 0x0000, 0x004c, 0xb031 }, > + { 0x0000, 0xec16, 0x0000, 0x0069, 0xb031 }, > + { 0x0000, 0xec21, 0x0000, 0x0011, 0xb031 }, > + { 0x0000, 0xec22, 0x0000, 0x00c2, 0xb031 }, > + { 0x0000, 0xec23, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xec24, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xec25, 0x0000, 0x00bd, 0xb031 }, > + { 0x0000, 0xec26, 0x0000, 0x0055, 0xb031 }, > + { 0x0000, 0xec27, 0x0000, 0x00d0, 0xb031 }, > + { 0x0000, 0xec28, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec29, 0x0000, 0x003c, 0xb031 }, > + { 0x0000, 0xec2a, 0x0000, 0x0051, 0xb031 }, > + { 0x0000, 0xec2b, 0x0000, 0x0018, 0xb031 }, > + { 0x0000, 0xecb2, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xec30, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xec31, 0x0000, 0x004f, 0xb031 }, > + { 0x0000, 0xec32, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xec33, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xec34, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec35, 0x0000, 0x00bb, 0xb031 }, > + { 0x0000, 0xec36, 0x0000, 0x0024, 0xb031 }, > + { 0x0000, 0xec37, 0x0000, 0x0068, 0xb031 }, > + { 0x0000, 0xec40, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec41, 0x0000, 0x00f5, 0xb031 }, > + { 0x0000, 0xec42, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xec43, 0x0000, 0x00e8, 0xb031 }, > + { 0x0000, 0xec44, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xec45, 0x0000, 0x004f, 0xb031 }, > + { 0x0000, 0xec46, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xec47, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xec48, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec49, 0x0000, 0x00c5, 0xb031 }, > + { 0x0000, 0xec4a, 0x0000, 0x0032, 0xb031 }, > + { 0x0000, 0xec4b, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xecb4, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xec50, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xec51, 0x0000, 0x008a, 0xb031 }, > + { 0x0000, 0xec52, 0x0000, 0x00b4, 0xb031 }, > + { 0x0000, 0xec53, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xec54, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec55, 0x0000, 0x007d, 0xb031 }, > + { 0x0000, 0xec56, 0x0000, 0x00d9, 0xb031 }, > + { 0x0000, 0xec57, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xec60, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xec61, 0x0000, 0x00e7, 0xb031 }, > + { 0x0000, 0xec62, 0x0000, 0x00b5, 0xb031 }, > + { 0x0000, 0xec63, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xec64, 0x0000, 0x00fa, 0xb031 }, > + { 0x0000, 0xec65, 0x0000, 0x0086, 0xb031 }, > + { 0x0000, 0xec66, 0x0000, 0x00a8, 0xb031 }, > + { 0x0000, 0xec67, 0x0000, 0x0040, 0xb031 }, > + { 0x0000, 0xec68, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xec69, 0x0000, 0x009a, 0xb031 }, > + { 0x0000, 0xec6a, 0x0000, 0x002f, 0xb031 }, > + { 0x0000, 0xec6b, 0x0000, 0x0018, 0xb031 }, > + { 0x0000, 0xecb6, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xec70, 0x0000, 0x00f5, 0xb031 }, > + { 0x0000, 0xec71, 0x0000, 0x00e1, 0xb031 }, > + { 0x0000, 0xec72, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xec73, 0x0000, 0x00d0, 0xb031 }, > + { 0x0000, 0xec74, 0x0000, 0x0006, 0xb031 }, > + { 0x0000, 0xec75, 0x0000, 0x0050, 0xb031 }, > + { 0x0000, 0xec76, 0x0000, 0x002c, 0xb031 }, > + { 0x0000, 0xec77, 0x0000, 0x0050, 0xb031 }, > + { 0x0000, 0xec80, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec81, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xec82, 0x0000, 0x0016, 0xb031 }, > + { 0x0000, 0xec83, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xec84, 0x0000, 0x00f5, 0xb031 }, > + { 0x0000, 0xec85, 0x0000, 0x00e1, 0xb031 }, > + { 0x0000, 0xec86, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xec87, 0x0000, 0x00d0, 0xb031 }, > + { 0x0000, 0xec88, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xec89, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xec8a, 0x0000, 0x0016, 0xb031 }, > + { 0x0000, 0xec8b, 0x0000, 0x0028, 0xb031 }, > + { 0x0000, 0xecb8, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xec90, 0x0000, 0x00fc, 0xb031 }, > + { 0x0000, 0xec91, 0x0000, 0x008b, 0xb031 }, > + { 0x0000, 0xec92, 0x0000, 0x00bd, 0xb031 }, > + { 0x0000, 0xec93, 0x0000, 0x0064, 0xb031 }, > + { 0x0000, 0xec94, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xec95, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xec96, 0x0000, 0x00e7, 0xb031 }, > + { 0x0000, 0xec97, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xeca0, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xeca1, 0x0000, 0x0091, 0xb031 }, > + { 0x0000, 0xeca2, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xeca3, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xeca4, 0x0000, 0x00f6, 0xb031 }, > + { 0x0000, 0xeca5, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xeca6, 0x0000, 0x0093, 0xb031 }, > + { 0x0000, 0xeca7, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xeca8, 0x0000, 0x0003, 0xb031 }, > + { 0x0000, 0xeca9, 0x0000, 0x0087, 0xb031 }, > + { 0x0000, 0xecaa, 0x0000, 0x0099, 0xb031 }, > + { 0x0000, 0xecab, 0x0000, 0x006c, 0xb031 }, > + { 0x0000, 0xebc3, 0x0000, 0x00ff, 0xb031 }, > + { 0x0000, 0xebc4, 0x0000, 0x00fc, 0xb031 }, > + { 0x0000, 0xec00, 0x0000, 0x0005, 0xb031 }, > + { 0x0000, 0xec01, 0x0000, 0x00a9, 0xb031 }, > + { 0x0000, 0xec02, 0x0000, 0x00df, 0xb031 }, > + { 0x0000, 0xec03, 0x0000, 0x007b, 0xb031 }, > + { 0x0000, 0xec05, 0x0000, 0x0079, 0xb031 }, > + { 0x0000, 0xec06, 0x0000, 0x005a, 0xb031 }, > + { 0x0000, 0xec07, 0x0000, 0x0004, 0xb031 }, > + { 0x0000, 0xebc0, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xd1b0, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xd110, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd111, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xd112, 0x0000, 0x0092, 0xb031 }, > + { 0x0000, 0xd113, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd114, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xd115, 0x0000, 0x00f6, 0xb031 }, > + { 0x0000, 0xd116, 0x0000, 0x0072, 0xb031 }, > + { 0x0000, 0xd117, 0x0000, 0x00b0, 0xb031 }, > + { 0x0000, 0xd120, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xd121, 0x0000, 0x00fb, 0xb031 }, > + { 0x0000, 0xd122, 0x0000, 0x0037, 0xb031 }, > + { 0x0000, 0xd123, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd124, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd125, 0x0000, 0x0009, 0xb031 }, > + { 0x0000, 0xd126, 0x0000, 0x0090, 0xb031 }, > + { 0x0000, 0xd127, 0x0000, 0x0020, 0xb031 }, > + { 0x0000, 0xd128, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xd129, 0x0000, 0x00fb, 0xb031 }, > + { 0x0000, 0xd12a, 0x0000, 0x0037, 0xb031 }, > + { 0x0000, 0xd12b, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd0c3, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd0c4, 0x0000, 0x000c, 0xb031 }, > + { 0x0000, 0xd0c0, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xce63, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xce64, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 }, > + { 0x0000, 0xdd04, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xdd05, 0x0000, 0x0006, 0xb031 }, > + { 0x0000, 0xca12, 0x0000, 0x000f, 0xb031 }, > + { 0x0000, 0xca10, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xca82, 0x0000, 0x0077, 0xb031 }, > + { 0x0000, 0xca85, 0x0000, 0x0082, 0xb031 }, > + { 0x0000, 0xca88, 0x0000, 0x00c2, 0xb031 }, > + { 0x0000, 0xca95, 0x0000, 0x003a, 0xb031 }, > + { 0x0000, 0xca9b, 0x0000, 0x006f, 0xb031 }, > + { 0x0000, 0xca10, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xca12, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xc960, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xc961, 0x0000, 0x00e5, 0xb031 }, > + { 0x0000, 0xc962, 0x0000, 0x00eb, 0xb031 }, > + { 0x0000, 0xc963, 0x0000, 0x00c6, 0xb031 }, > + { 0x0000, 0xc964, 0x0000, 0x00ba, 0xb031 }, > + { 0x0000, 0xc965, 0x0000, 0x0061, 0xb031 }, > + { 0x0000, 0xc967, 0x0000, 0x0017, 0xb031 }, > + { 0x0000, 0xc968, 0x0000, 0x00ed, 0xb031 }, > + { 0x0000, 0xc969, 0x0000, 0x003c, 0xb031 }, > + { 0x0000, 0xc96a, 0x0000, 0x008a, 0xb031 }, > + { 0x0000, 0xc96b, 0x0000, 0x00e2, 0xb031 }, > + { 0x0000, 0xc975, 0x0000, 0x003a, 0xb031 }, > + { 0x0000, 0xc97b, 0x0000, 0x006f, 0xb031 }, > + { 0x0000, 0xc936, 0x0000, 0x00f9, 0xb031 }, > + { 0x0000, 0xc9a0, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xc933, 0x0000, 0x000b, 0xb031 }, > + { 0x0000, 0xc934, 0x0000, 0x0002, 0xb031 }, > + { 0x0000, 0xc93f, 0x0000, 0x0014, 0xb031 }, > + { 0x0000, 0xc93e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc93a, 0x0000, 0x0076, 0xb031 }, > + { 0x0000, 0xc93b, 0x0000, 0x0089, 0xb031 }, > + { 0x0000, 0xc930, 0x0000, 0x0013, 0xb031 }, > + { 0x0000, 0xc926, 0x0000, 0x00d1, 0xb031 }, > + { 0x0000, 0xc990, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xc923, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xc924, 0x0000, 0x0004, 0xb031 }, > + { 0x0000, 0xc92f, 0x0000, 0x0018, 0xb031 }, > + { 0x0000, 0xc92e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc920, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xc916, 0x0000, 0x00f9, 0xb031 }, > + { 0x0000, 0xc980, 0x0000, 0x00e1, 0xb031 }, > + { 0x0000, 0xc913, 0x0000, 0x0000, 0xb031 }, > + { 0x0000, 0xc914, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xc91f, 0x0000, 0x0014, 0xb031 }, > + { 0x0000, 0xc91e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc91a, 0x0000, 0x0066, 0xb031 }, > + { 0x0000, 0xc91b, 0x0000, 0x0078, 0xb031 }, > + { 0x0000, 0xc910, 0x0000, 0x000d, 0xb031 }, > + { 0x0000, 0xc946, 0x0000, 0x00f9, 0xb031 }, > + { 0x0000, 0xc9d0, 0x0000, 0x00f1, 0xb031 }, > + { 0x0000, 0xc944, 0x0000, 0x0001, 0xb031 }, > + { 0x0000, 0xc94f, 0x0000, 0x0014, 0xb031 }, > + { 0x0000, 0xc94e, 0x0000, 0x0094, 0xb031 }, > + { 0x0000, 0xc94a, 0x0000, 0x0026, 0xb031 }, > + { 0x0000, 0xc94b, 0x0000, 0x0056, 0xb031 }, > + { 0x0000, 0xc951, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xc600, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc601, 0x0000, 0x0026, 0xb031 }, > + { 0x0000, 0xc602, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xc603, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xc604, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xc605, 0x0000, 0x00da, 0xb031 }, > + { 0x0000, 0xc606, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xc607, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc610, 0x0000, 0x0007, 0xb031 }, > + { 0x0000, 0xc611, 0x0000, 0x00da, 0xb031 }, > + { 0x0000, 0xc612, 0x0000, 0x000e, 0xb031 }, > + { 0x0000, 0xc613, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc614, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xc615, 0x0000, 0x0026, 0xb031 }, > + { 0x0000, 0xc616, 0x0000, 0x004a, 0xb031 }, > + { 0x0000, 0xc617, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xc618, 0x0000, 0x0008, 0xb031 }, > + { 0x0000, 0xc541, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xc802, 0x0000, 0x00d2, 0xb031 }, > + { 0x0000, 0xc902, 0x0000, 0x00d2, 0xb031 }, > + { 0x0000, 0xc800, 0x0000, 0x00f0, 0xb031 }, > + { 0x0000, 0xd250, 0x0000, 0x0087, 0xb031 }, > + { 0x0000, 0xd252, 0x0000, 0x0030, 0xb031 }, > + { 0x0000, 0xd264, 0x0000, 0x00c0, 0xb031 }, > + { 0x0000, 0xce60, 0x0000, 0x00e3, 0xb031 }, > + { 0x0000, 0xdf00, 0x0000, 0x0010, 0xb031 }, > + { 0x0000, 0xdbb5, 0x0041, 0xd27f, 0xb037 }, > + { 0x0000, 0xddb5, 0x0040, 0x6e3b, 0xb037 }, > + { 0x0000, 0xdb93, 0x0000, 0x009e, 0xb033 }, > + { 0x0000, 0xdd93, 0x0000, 0x009e, 0xb033 }, > + { 0x0000, 0xdb12, 0x0000, 0x00c0, 0xb031 }, > + { 0x0000, 0xdd12, 0x0000, 0x00c0, 0xb031 }, > + { 0x0000, 0xdb08, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xdd08, 0x0000, 0x0080, 0xb031 }, > + { 0x0000, 0xdb00, 0x0000, 0x00cc, 0xb031 }, > + { 0x0000, 0xc203, 0x0000, 0x009c, 0xb031 }, > + { 0x0000, 0x0010, 0x0000, 0x0f21, 0x0000 }, > +}; > + > +/* wake the amp (ea00=0x43, c121=0x0b, f109=0xe0) */ > +static const struct alc298_rb16_op alc298_rb16_amp_wake[] = { > + { 0x0000, 0xea00, 0x0000, 0x0043, 0xb031 }, > + { 0x0000, 0xc121, 0x0000, 0x000b, 0xb031 }, > + { 0x0000, 0xf109, 0x0000, 0x00e0, 0xb031 }, > +}; > + > +/* park the amp (ea00=0x47, c121=0x0a, f109=0xa0) */ > +static const struct alc298_rb16_op alc298_rb16_amp_sleep[] = { > + { 0x0000, 0xea00, 0x0000, 0x0047, 0xb031 }, > + { 0x0000, 0xc121, 0x0000, 0x000a, 0xb031 }, > + { 0x0000, 0xf109, 0x0000, 0x00a0, 0xb031 }, > +}; It's way too big to embed into alc269.c. Please put into another file and include it, instead. > + > +static void alc298_rb16_pcm_hook(struct hda_pcm_stream *hinfo, > + struct hda_codec *codec, > + struct snd_pcm_substream *substream, > + int action) > +{ > + /* power the external amp only while a stream is running */ > + switch (action) { > + case HDA_GEN_PCM_ACT_PREPARE: > + alc298_rb16_apply(codec, alc298_rb16_amp_wake, > + ARRAY_SIZE(alc298_rb16_amp_wake)); > + break; > + case HDA_GEN_PCM_ACT_CLEANUP: > + alc298_rb16_apply(codec, alc298_rb16_amp_sleep, > + ARRAY_SIZE(alc298_rb16_amp_sleep)); > + break; > + } > +} Any reason this must be a PCM hook? The amp control could be done via the normal power control path by simply setting codec->power_save_node=1; then the power up of each widget is optimized depending on the used path dynamically via runtime PM. thanks, Takashi