// $Xorg: xfree86,v 1.3 2000/08/17 19:54:42 cpqbld Exp $

//
//  Rules for resolving XKB components for use with XFree86
//  Copyright 1996 by Joseph Moss
//
//  2002 Modifier: Ivan Pascal      The XFree86 Project
//  $XFree86: xc/programs/xkbcomp/rules/xfree86,v 3.79 2004/01/09 00:16:01 dawes Exp $
//

// If you want non-latin layouts implicitly include the en_US layout
// uncomment lines below
//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \
//              in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \
//              ru scc sy syr tel th tj tam ua uz

// PC models
! $pcmodels = pc101 pc102 pc104 pc105

// Microsoft models (using MS geometry)
! $msmodels = microsoft microsoftpro microsoftprousb microsoftprose

// PC geometries - they have special geometry but symbols are mostly pc105
! $pcgeometries = abnt2 latitude jp106 kr106

! $macbooks = macbook78 macbook79
! $maclaptop = ibook powerbook macbook78 macbook79
! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79

! $macvendorlayouts = ch de dk es fi fr gb is it latam nl no pt se us

! $azerty = be fr
! $qwertz = al cz de hr hu ro si sk 

! $inetkbds = a4techKB21 a4techKBS8 a4_rfkb23 \
              acer_c300 acer_ferrari4k acer_tm_800 \
              acpi airkey armada azonaRF2300 \
              apple \
              benqx730 benqx800 brother \
              btc5113rf btc5126t btc9000 btc9000a btc9001ah btc5090 btc9019u \
              cherryblue cherrybluea cherryblueb cherrycyboard \
              chicony chicony9885 \
              compaqeak8 compaqik7 compaqik13 compaqik18 \
              cymotionlinux \
              dell inspiron precision_m dellusbmm dtk2000 sk8125 sk8135 \
              emachines ennyah_dkb1008 evdev \
              genius geniuscomfy geniuscomfy2 geniuskb19e \
              gyration honeywell_euroboard \
              hp2501 hp2505 hp5xx hp500fa hp5181 hp5185 \
              hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx \
              ipaq inspiron latitude \
              logiaccess logicdp logicdpa logicdit logicdo logicink logiciink logiclx300 \
              logiinkse logiinkseusb logiitc logiik itouch logiultrax ltcd \
              logitech_g15 \
              microsoftinet microsoftpro microsoftprousb microsoftprooem microsoftprose \
              microsoftoffice microsoftmult \
              mx1998 mx2500 mx2750 \
              oretec \
              presario propeller \
              qtronix \
              rapidaccess rapidaccess2 rapidaccess2a thinkpad \
              samsung4500 samsung4510 \
              scorpius silvercrest \
              sk1300 sk2500 sk6200 sk7100 sp_inet \
              sven symplon \
              toshiba_s3000 trust trustda \
              yahoo

// all layouts with 3rd and 4th groups
! $threelevellayouts = al az \
              be br bt \
              ca ch cs cz \
              de dk \
              ee es \
              fi fo fr \
              gb gr \
              hu \
              ie ir is it \
              kg \
              latam \
              lk lt \
              mn mt \
              nl no \
              pl pt \
              ro \
              se sk \
              tr \
              us \
              vn \
              za


! $dvoraklayouts = ca de ee es fr gb no pl se us

! model		=	keycodes
  amiga		=	amiga(de)
  ataritt	=	ataritt(de)
  sun4		=	sun(type4_euro)
  sun5		=	sun(type5_euro)
  pc98		=	xfree98(pc98)
  abnt2		=	xfree86(abnt2)
  jp106		=	xfree86(jp106)
  evdev		=	evdev
  macintosh_old	=	macintosh(old)
 $macbooks	=	macintosh+macintosh(badmap)
 $macs   	=	macintosh
  *		=	xfree86

! layout[1]	=	keycodes
  $azerty       =       +aliases(azerty)
  $qwertz       =       +aliases(qwertz)
  *             =       +aliases(qwerty)

! layout	=	keycodes
  $azerty       =       +aliases(azerty)
  $qwertz       =       +aliases(qwertz)
  *             =       +aliases(qwerty)

! option	=	keycodes
  apple:badmap		=	+macintosh(badmap)
  apple:goodmap		=	+macintosh(goodmap)

! model		layout	=	geometry
  thinkpad     us              =       thinkpad(us)
  thinkpad     *               =       thinkpad(intl)

! model		=	geometry
 $msmodels	=	microsoft(natural)
  dell101	=	dell(dell101)
  flexpro	=	keytronic(FlexPro)
  hp6000	=	hp(omnibook)
  omnikey101	=	northgate(omnikey101)
 $pcmodels	=	pc(%m)
 $pcgeometries	=	pc(%m)
  everex	=	everex(STEPnote)
  winbook	=	winbook(XP5)
  pc98		=	nec(pc98)
 $macbooks      =       macintosh(%m)
 $macs		=	macintosh(macintosh)
  *		=       pc(pc104)

! model		layout		variant		=	symbols
  *		ben		basic		=	pc+in(ben)
  *		ben		probhat		=	pc+in(ben_probhat)
  *		dev		basic		=	pc+in(deva)
  *		dvorak		$dvoraklayouts		=	pc+%l(dvorak)
  *		dvorak		basic		=	pc+us(dvorak)
  *		dvorak		pl_basic		=	pc+pl(dvorak)
  *		dvorak		pl		=	pc+pl(dvorak_quotes)
  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)
  *		dzdwi		basic		=	pc+bt(basic)
  *		guj		basic		=	pc+in(guj)
  *		gur		basic		=	pc+in(guru)
  *		ie		laptop		=	pc+ie(basic)
  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)
  *		il		si1452		=	pc+ie(basic)
  *		iu		basic		=	pc+ca(ike)
  *		lo		basic		=	pc+la(basic)
  *		kan		basic		=	pc+in(kan)
  *		mal		basic		=	pc+in(mal)
  *		mal		mlplusnum		=	pc+in(mal)
  *		ogham		basic		=	pc+ie(ogam)
  *		ogham		laptop		=	pc+ie(ogam)
  *		ogham		is434		=	pc+ie(ogam_is434)
  *		ogham		is434laptop		=	pc+ie(ogam_is434)
  *		ori		basic		=	pc+in(ori)
  *		ro		de		=	pc+ro(winkeys)
  *		ro		us		=	pc+ro(std)
  *		sapmi		basic		=	pc+no(smi)
  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)
  *		sapmi		sefi		=	pc+fi(smi)
  *		sin		phonetic-static		=	pc+in(sin_phonetic)
  *		syr		basic		=	pc+sy(syc)
  *		syr		phonetic		=	pc+sy(syc_phonetic)
  *		tam		INSCRIPT		=	pc+in(tam)
  *		tam		UNI		=	pc+in(tam_unicode)
  *		tam		TAB		=	pc+in(tam_TAB)
  *		tam		TSCII		=	pc+in(tam_TSCII)
  *		tel		basic		=	pc+in(tel)
  *		yu		basic		=	pc+srp(latin)
  *		yu		unicode		=	pc+srp(latinunicode)
  *		yu		yz		=	pc+srp(latinyz)
  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)

! model		layout				=	symbols
  *		ar			=	pc+ara
  *		ben			=	pc+in(ben)
  *		bs			=	pc+ba
  *		cz_qwerty			=	pc+cz(qwerty)
  *		dev			=	pc+in(deva)
  *		dvorak			=	pc+us(dvorak)
  *		dzdwi			=	pc+bt
  *		el			=	pc+gr
  *		en_US			=	pc+latin
  *		guj			=	pc+in(guj)
  *		gur			=	pc+in(guru)
  *		iu			=	pc+ca(ike)
  *		lo			=	pc+la
  *		kan			=	pc+in(kan)
  *		mi			=	pc+mao
  *		ml			=	pc+in(mal)
  *		ogham			=	pc+ie(ogam)
  *		ori			=	pc+ie(ori)
  *		sapmi			=	pc+no(smi)
  *		sr			=	pc+srp
  *		syr			=	pc+sy(syc)
  *		tel			=	pc+in(tel)
  *		tml			=	pc+in(tam)
  *		yu			=	pc+srp
  *		fr-latin9			=	pc+fr(latin9)
  *		us_intl			=	pc+us(alt-intl)
  *		ben(basic)			=	pc+in(ben)
  *		ben(probhat)			=	pc+in(ben_probhat)
  *		dev(basic)			=	pc+in(deva)
  *		dvorak($dvoraklayouts)			=	pc+%l(dvorak)
  *		dvorak(basic)			=	pc+us(dvorak)
  *		dvorak(pl_basic)			=	pc+pl(dvorak)
  *		dvorak(pl)			=	pc+pl(dvorak_quotes)
  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)
  *		dzdwi(basic)			=	pc+bt(basic)
  *		guj(basic)			=	pc+in(guj)
  *		gur(basic)			=	pc+in(guru)
  *		ie(laptop)			=	pc+ie(basic)
  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)
  *		il(si1452)			=	pc+ie(basic)
  *		iu(basic)			=	pc+ca(ike)
  *		lo(basic)			=	pc+la(basic)
  *		kan(basic)			=	pc+in(kan)
  *		mal(basic)			=	pc+in(mal)
  *		mal(mlplusnum)			=	pc+in(mal)
  *		ogham(basic)			=	pc+ie(ogam)
  *		ogham(laptop)			=	pc+ie(ogam)
  *		ogham(is434)			=	pc+ie(ogam_is434)
  *		ogham(is434laptop)			=	pc+ie(ogam_is434)
  *		ori(basic)			=	pc+in(ori)
  *		ro(de)			=	pc+ro(winkeys)
  *		ro(us)			=	pc+ro(std)
  *		sapmi(basic)			=	pc+no(smi)
  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)
  *		sapmi(sefi)			=	pc+fi(smi)
  *		sin(phonetic-static)			=	pc+in(sin_phonetic)
  *		syr(basic)			=	pc+sy(syc)
  *		syr(phonetic)			=	pc+sy(syc_phonetic)
  *		tam(INSCRIPT)			=	pc+in(tam)
  *		tam(UNI)			=	pc+in(tam_unicode)
  *		tam(TAB)			=	pc+in(tam_TAB)
  *		tam(TSCII)			=	pc+in(tam_TSCII)
  *		tel(basic)			=	pc+in(tel)
  *		yu(basic)			=	pc+srp(latin)
  *		yu(unicode)			=	pc+srp(latinunicode)
  *		yu(yz)			=	pc+srp(latinyz)
  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)
  ataritt	$nonlatin		=	xfree68_vndr/ataritt(us)+%l%(v):2
  ataritt	*			=	xfree68_vndr/ataritt(us)+%l%(v)
  amiga		$nonlatin		=	xfree68_vndr/amiga(usa1)+%l%(v):2
  amiga		*			=	xfree68_vndr/amiga(usa1)+%l%(v)
  sun4		$nonlatin		=	latin+sun_vndr/us(sun4)+%l%(v):2
  sun4		*			=	latin+sun_vndr/us(sun4)+%l%(v)
  sun5		$nonlatin		=	latin+sun_vndr/us(sun5)+%l%(v):2
  sun5		*			=	latin+sun_vndr/us(sun5)+%l%(v)
  pc98		nec_vndr/jp		=	nec_vndr/jp(pc98)
  macintosh_old	us			=	macintosh_vndr/us(oldmac)
  macintosh_old	en_US			=	macintosh_vndr/us(oldmac)
  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v)
  macintosh_old	$nonlatin		=	macintosh_vndr/us(oldmac)+%l%(v):2
  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l%(v)
 $macs		en_US			=	pc+macintosh_vndr/us(extended)
 $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l%(v)
  *	   	$nonlatin		=	pc+us+%l%(v):2
  *		*			=	pc+%l%(v)

! model		layout[1]			=	symbols
  *		ar			=	pc+ara%(v[1])
  *		ben			=	pc+in(ben)%(v[1])
  *		bs			=	pc+ba%(v[1])
  *		cz_qwerty			=	pc+cz(qwerty)%(v[1])
  *		dev			=	pc+in(deva)%(v[1])
  *		dvorak			=	pc+us(dvorak)%(v[1])
  *		dzdwi			=	pc+bt%(v[1])
  *		el			=	pc+gr%(v[1])
  *		en_US			=	pc+latin%(v[1])
  *		guj			=	pc+in(guj)%(v[1])
  *		gur			=	pc+in(guru)%(v[1])
  *		iu			=	pc+ca(ike)%(v[1])
  *		lo			=	pc+la%(v[1])
  *		kan			=	pc+in(kan)%(v[1])
  *		mi			=	pc+mao%(v[1])
  *		ml			=	pc+in(mal)%(v[1])
  *		ogham			=	pc+ie(ogam)%(v[1])
  *		ori			=	pc+ie(ori)%(v[1])
  *		sapmi			=	pc+no(smi)%(v[1])
  *		sr			=	pc+srp%(v[1])
  *		syr			=	pc+sy(syc)%(v[1])
  *		tel			=	pc+in(tel)%(v[1])
  *		tml			=	pc+in(tam)%(v[1])
  *		yu			=	pc+srp%(v[1])
  *		fr-latin9			=	pc+fr(latin9)%(v[1])
  *		us_intl			=	pc+us(alt-intl)%(v[1])
  *		ben(basic)			=	pc+in(ben)
  *		ben(probhat)			=	pc+in(ben_probhat)
  *		dev(basic)			=	pc+in(deva)
  *		dvorak($dvoraklayouts)			=	pc+%l(dvorak)
  *		dvorak(basic)			=	pc+us(dvorak)
  *		dvorak(pl_basic)			=	pc+pl(dvorak)
  *		dvorak(pl)			=	pc+pl(dvorak_quotes)
  *		dvorak(pl_altquotes)			=	pc+pl(dvorak_altquotes)
  *		dzdwi(basic)			=	pc+bt(basic)
  *		guj(basic)			=	pc+in(guj)
  *		gur(basic)			=	pc+in(guru)
  *		ie(laptop)			=	pc+ie(basic)
  *		ie(CloGaelachLaptop)			=	pc+ie(CloGaelach)
  *		il(si1452)			=	pc+ie(basic)
  *		iu(basic)			=	pc+ca(ike)
  *		lo(basic)			=	pc+la(basic)
  *		kan(basic)			=	pc+in(kan)
  *		mal(basic)			=	pc+in(mal)
  *		mal(mlplusnum)			=	pc+in(mal)
  *		ogham(basic)			=	pc+ie(ogam)
  *		ogham(laptop)			=	pc+ie(ogam)
  *		ogham(is434)			=	pc+ie(ogam_is434)
  *		ogham(is434laptop)			=	pc+ie(ogam_is434)
  *		ori(basic)			=	pc+in(ori)
  *		ro(de)			=	pc+ro(winkeys)
  *		ro(us)			=	pc+ro(std)
  *		sapmi(basic)			=	pc+no(smi)
  *		sapmi(nodeadkeys)			=	pc+no(smi_nodeadkeys)
  *		sapmi(sefi)			=	pc+fi(smi)
  *		sin(phonetic-static)			=	pc+in(sin_phonetic)
  *		syr(basic)			=	pc+sy(syc)
  *		syr(phonetic)			=	pc+sy(syc_phonetic)
  *		tam(INSCRIPT)			=	pc+in(tam)
  *		tam(UNI)			=	pc+in(tam_unicode)
  *		tam(TAB)			=	pc+in(tam_TAB)
  *		tam(TSCII)			=	pc+in(tam_TSCII)
  *		tel(basic)			=	pc+in(tel)
  *		yu(basic)			=	pc+srp(latin)
  *		yu(unicode)			=	pc+srp(latinunicode)
  *		yu(yz)			=	pc+srp(latinyz)
  *		yu(unicodeyz)			=	pc+srp(latinunicodeyz)
  ataritt	*			=	xfree68_vndr/ataritt(us)+%l[1]%(v[1])
  amiga		*			=	xfree68_vndr/amiga(usa1)+%l[1]%(v[1])
  sun4		*			=	latin+sun_vndr/us(sun4)+%l[1]%(v[1])
  sun5		*			=	latin+sun_vndr/us(sun5)+%l[1]%(v[1])
  macintosh_old	us			=	macintosh_vndr/us(oldmac)
  macintosh_old	$macvendorlayouts	=	macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1])
  macintosh_old	*			=	macintosh_vndr/us(oldmac)+%l[1]%(v[1])
 $macs		$macvendorlayouts	=	pc+macintosh_vndr/%l[1]%(v[1])
  *		*			=	pc+%l[1]%(v[1])

! model		layout[1]	variant[1]	=	symbols
  *		ben		basic		=	pc+in(ben)
  *		ben		probhat		=	pc+in(ben_probhat)
  *		dev		basic		=	pc+in(deva)
  *		dvorak		$dvoraklayouts		=	pc+%l(dvorak)
  *		dvorak		basic		=	pc+us(dvorak)
  *		dvorak		pl_basic		=	pc+pl(dvorak)
  *		dvorak		pl		=	pc+pl(dvorak_quotes)
  *		dvorak		pl_altquotes		=	pc+pl(dvorak_altquotes)
  *		dzdwi		basic		=	pc+bt(basic)
  *		guj		basic		=	pc+in(guj)
  *		gur		basic		=	pc+in(guru)
  *		ie		laptop		=	pc+ie(basic)
  *		ie		CloGaelachLaptop		=	pc+ie(CloGaelach)
  *		il		si1452		=	pc+ie(basic)
  *		iu		basic		=	pc+ca(ike)
  *		lo		basic		=	pc+la(basic)
  *		kan		basic		=	pc+in(kan)
  *		mal		basic		=	pc+in(mal)
  *		mal		mlplusnum		=	pc+in(mal)
  *		ogham		basic		=	pc+ie(ogam)
  *		ogham		laptop		=	pc+ie(ogam)
  *		ogham		is434		=	pc+ie(ogam_is434)
  *		ogham		is434laptop		=	pc+ie(ogam_is434)
  *		ori		basic		=	pc+in(ori)
  *		ro		de		=	pc+ro(winkeys)
  *		ro		us		=	pc+ro(std)
  *		sapmi		basic		=	pc+no(smi)
  *		sapmi		nodeadkeys		=	pc+no(smi_nodeadkeys)
  *		sapmi		sefi		=	pc+fi(smi)
  *		sin		phonetic-static		=	pc+in(sin_phonetic)
  *		syr		basic		=	pc+sy(syc)
  *		syr		phonetic		=	pc+sy(syc_phonetic)
  *		tam		INSCRIPT		=	pc+in(tam)
  *		tam		UNI		=	pc+in(tam_unicode)
  *		tam		TAB		=	pc+in(tam_TAB)
  *		tam		TSCII		=	pc+in(tam_TSCII)
  *		tel		basic		=	pc+in(tel)
  *		yu		basic		=	pc+srp(latin)
  *		yu		unicode		=	pc+srp(latinunicode)
  *		yu		yz		=	pc+srp(latinyz)
  *		yu		unicodeyz		=	pc+srp(latinunicodeyz)

! layout[2]	=	symbols
  ar		=	+ara%(v[2]):2
  ben		=	+in(ben)%(v[2]):2
  bs		=	+ba%(v[2]):2
  cz_qwerty		=	+cz(qwerty)%(v[2]):2
  dev		=	+in(deva)%(v[2]):2
  dvorak		=	+us(dvorak)%(v[2]):2
  dzdwi		=	+bt%(v[2]):2
  el		=	+gr%(v[2]):2
  en_US		=	+latin%(v[2]):2
  guj		=	+in(guj)%(v[2]):2
  gur		=	+in(guru)%(v[2]):2
  iu		=	+ca(ike)%(v[2]):2
  lo		=	+la%(v[2]):2
  kan		=	+in(kan)%(v[2]):2
  mi		=	+mao%(v[2]):2
  ml		=	+in(mal)%(v[2]):2
  ogham		=	+ie(ogam)%(v[2]):2
  ori		=	+ie(ori)%(v[2]):2
  sapmi		=	+no(smi)%(v[2]):2
  sr		=	+srp%(v[2]):2
  syr		=	+sy(syc)%(v[2]):2
  tel		=	+in(tel)%(v[2]):2
  tml		=	+in(tam)%(v[2]):2
  yu		=	+srp%(v[2]):2
  fr-latin9		=	+fr(latin9)%(v[2]):2
  us_intl		=	+us(alt-intl)%(v[2]):2
  ben(basic)	=	+in(ben):2
  ben(probhat)	=	+in(ben_probhat):2
  dev(basic)	=	+in(deva):2
  dvorak($dvoraklayouts)	=	+%l(dvorak):2
  dvorak(basic)	=	+us(dvorak):2
  dvorak(pl_basic)	=	+pl(dvorak):2
  dvorak(pl)	=	+pl(dvorak_quotes):2
  dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):2
  dzdwi(basic)	=	+bt(basic):2
  guj(basic)	=	+in(guj):2
  gur(basic)	=	+in(guru):2
  ie(laptop)	=	+ie(basic):2
  ie(CloGaelachLaptop)	=	+ie(CloGaelach):2
  il(si1452)	=	+ie(basic):2
  iu(basic)	=	+ca(ike):2
  lo(basic)	=	+la(basic):2
  kan(basic)	=	+in(kan):2
  mal(basic)	=	+in(mal):2
  mal(mlplusnum)	=	+in(mal):2
  ogham(basic)	=	+ie(ogam):2
  ogham(laptop)	=	+ie(ogam):2
  ogham(is434)	=	+ie(ogam_is434):2
  ogham(is434laptop)	=	+ie(ogam_is434):2
  ori(basic)	=	+in(ori):2
  ro(de)	=	+ro(winkeys):2
  ro(us)	=	+ro(std):2
  sapmi(basic)	=	+no(smi):2
  sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):2
  sapmi(sefi)	=	+fi(smi):2
  sin(phonetic-static)	=	+in(sin_phonetic):2
  syr(basic)	=	+sy(syc):2
  syr(phonetic)	=	+sy(syc_phonetic):2
  tam(INSCRIPT)	=	+in(tam):2
  tam(UNI)	=	+in(tam_unicode):2
  tam(TAB)	=	+in(tam_TAB):2
  tam(TSCII)	=	+in(tam_TSCII):2
  tel(basic)	=	+in(tel):2
  yu(basic)	=	+srp(latin):2
  yu(unicode)	=	+srp(latinunicode):2
  yu(yz)	=	+srp(latinyz):2
  yu(unicodeyz)	=	+srp(latinunicodeyz):2
  *		=	+%l[2]%(v[2]):2

! layout[3]	=	symbols
  ar		=	+ara%(v[3]):3
  ben		=	+in(ben)%(v[3]):3
  bs		=	+ba%(v[3]):3
  cz_qwerty		=	+cz(qwerty)%(v[3]):3
  dev		=	+in(deva)%(v[3]):3
  dvorak		=	+us(dvorak)%(v[3]):3
  dzdwi		=	+bt%(v[3]):3
  el		=	+gr%(v[3]):3
  en_US		=	+latin%(v[3]):3
  guj		=	+in(guj)%(v[3]):3
  gur		=	+in(guru)%(v[3]):3
  iu		=	+ca(ike)%(v[3]):3
  lo		=	+la%(v[3]):3
  kan		=	+in(kan)%(v[3]):3
  mi		=	+mao%(v[3]):3
  ml		=	+in(mal)%(v[3]):3
  ogham		=	+ie(ogam)%(v[3]):3
  ori		=	+ie(ori)%(v[3]):3
  sapmi		=	+no(smi)%(v[3]):3
  sr		=	+srp%(v[3]):3
  syr		=	+sy(syc)%(v[3]):3
  tel		=	+in(tel)%(v[3]):3
  tml		=	+in(tam)%(v[3]):3
  yu		=	+srp%(v[3]):3
  fr-latin9		=	+fr(latin9)%(v[3]):3
  us_intl		=	+us(alt-intl)%(v[3]):3
  ben(basic)	=	+in(ben):3
  ben(probhat)	=	+in(ben_probhat):3
  dev(basic)	=	+in(deva):3
  dvorak($dvoraklayouts)	=	+%l(dvorak):3
  dvorak(basic)	=	+us(dvorak):3
  dvorak(pl_basic)	=	+pl(dvorak):3
  dvorak(pl)	=	+pl(dvorak_quotes):3
  dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):3
  dzdwi(basic)	=	+bt(basic):3
  guj(basic)	=	+in(guj):3
  gur(basic)	=	+in(guru):3
  ie(laptop)	=	+ie(basic):3
  ie(CloGaelachLaptop)	=	+ie(CloGaelach):3
  il(si1452)	=	+ie(basic):3
  iu(basic)	=	+ca(ike):3
  lo(basic)	=	+la(basic):3
  kan(basic)	=	+in(kan):3
  mal(basic)	=	+in(mal):3
  mal(mlplusnum)	=	+in(mal):3
  ogham(basic)	=	+ie(ogam):3
  ogham(laptop)	=	+ie(ogam):3
  ogham(is434)	=	+ie(ogam_is434):3
  ogham(is434laptop)	=	+ie(ogam_is434):3
  ori(basic)	=	+in(ori):3
  ro(de)	=	+ro(winkeys):3
  ro(us)	=	+ro(std):3
  sapmi(basic)	=	+no(smi):3
  sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):3
  sapmi(sefi)	=	+fi(smi):3
  sin(phonetic-static)	=	+in(sin_phonetic):3
  syr(basic)	=	+sy(syc):3
  syr(phonetic)	=	+sy(syc_phonetic):3
  tam(INSCRIPT)	=	+in(tam):3
  tam(UNI)	=	+in(tam_unicode):3
  tam(TAB)	=	+in(tam_TAB):3
  tam(TSCII)	=	+in(tam_TSCII):3
  tel(basic)	=	+in(tel):3
  yu(basic)	=	+srp(latin):3
  yu(unicode)	=	+srp(latinunicode):3
  yu(yz)	=	+srp(latinyz):3
  yu(unicodeyz)	=	+srp(latinunicodeyz):3
  *		=	+%l[3]%(v[3]):3

! layout[4]	=	symbols
  ar		=	+ara%(v[4]):4
  ben		=	+in(ben)%(v[4]):4
  bs		=	+ba%(v[4]):4
  cz_qwerty		=	+cz(qwerty)%(v[4]):4
  dev		=	+in(deva)%(v[4]):4
  dvorak		=	+us(dvorak)%(v[4]):4
  dzdwi		=	+bt%(v[4]):4
  el		=	+gr%(v[4]):4
  en_US		=	+latin%(v[4]):4
  guj		=	+in(guj)%(v[4]):4
  gur		=	+in(guru)%(v[4]):4
  iu		=	+ca(ike)%(v[4]):4
  lo		=	+la%(v[4]):4
  kan		=	+in(kan)%(v[4]):4
  mi		=	+mao%(v[4]):4
  ml		=	+in(mal)%(v[4]):4
  ogham		=	+ie(ogam)%(v[4]):4
  ori		=	+ie(ori)%(v[4]):4
  sapmi		=	+no(smi)%(v[4]):4
  sr		=	+srp%(v[4]):4
  syr		=	+sy(syc)%(v[4]):4
  tel		=	+in(tel)%(v[4]):4
  tml		=	+in(tam)%(v[4]):4
  yu		=	+srp%(v[4]):4
  fr-latin9		=	+fr(latin9)%(v[4]):4
  us_intl		=	+us(alt-intl)%(v[4]):4
  ben(basic)	=	+in(ben):4
  ben(probhat)	=	+in(ben_probhat):4
  dev(basic)	=	+in(deva):4
  dvorak($dvoraklayouts)	=	+%l(dvorak):4
  dvorak(basic)	=	+us(dvorak):4
  dvorak(pl_basic)	=	+pl(dvorak):4
  dvorak(pl)	=	+pl(dvorak_quotes):4
  dvorak(pl_altquotes)	=	+pl(dvorak_altquotes):4
  dzdwi(basic)	=	+bt(basic):4
  guj(basic)	=	+in(guj):4
  gur(basic)	=	+in(guru):4
  ie(laptop)	=	+ie(basic):4
  ie(CloGaelachLaptop)	=	+ie(CloGaelach):4
  il(si1452)	=	+ie(basic):4
  iu(basic)	=	+ca(ike):4
  lo(basic)	=	+la(basic):4
  kan(basic)	=	+in(kan):4
  mal(basic)	=	+in(mal):4
  mal(mlplusnum)	=	+in(mal):4
  ogham(basic)	=	+ie(ogam):4
  ogham(laptop)	=	+ie(ogam):4
  ogham(is434)	=	+ie(ogam_is434):4
  ogham(is434laptop)	=	+ie(ogam_is434):4
  ori(basic)	=	+in(ori):4
  ro(de)	=	+ro(winkeys):4
  ro(us)	=	+ro(std):4
  sapmi(basic)	=	+no(smi):4
  sapmi(nodeadkeys)	=	+no(smi_nodeadkeys):4
  sapmi(sefi)	=	+fi(smi):4
  sin(phonetic-static)	=	+in(sin_phonetic):4
  syr(basic)	=	+sy(syc):4
  syr(phonetic)	=	+sy(syc_phonetic):4
  tam(INSCRIPT)	=	+in(tam):4
  tam(UNI)	=	+in(tam_unicode):4
  tam(TAB)	=	+in(tam_TAB):4
  tam(TSCII)	=	+in(tam_TSCII):4
  tel(basic)	=	+in(tel):4
  yu(basic)	=	+srp(latin):4
  yu(unicode)	=	+srp(latinunicode):4
  yu(yz)	=	+srp(latinyz):4
  yu(unicodeyz)	=	+srp(latinunicodeyz):4
  *		=	+%l[4]%(v[4]):4

! layout[2]	variant[2]	=	symbols
  ben		basic	=	+in(ben):2
  ben		probhat	=	+in(ben_probhat):2
  dev		basic	=	+in(deva):2
  dvorak		$dvoraklayouts	=	+%l(dvorak):2
  dvorak		basic	=	+us(dvorak):2
  dvorak		pl_basic	=	+pl(dvorak):2
  dvorak		pl	=	+pl(dvorak_quotes):2
  dvorak		pl_altquotes	=	+pl(dvorak_altquotes):2
  dzdwi		basic	=	+bt(basic):2
  guj		basic	=	+in(guj):2
  gur		basic	=	+in(guru):2
  ie		laptop	=	+ie(basic):2
  ie		CloGaelachLaptop	=	+ie(CloGaelach):2
  il		si1452	=	+ie(basic):2
  iu		basic	=	+ca(ike):2
  lo		basic	=	+la(basic):2
  kan		basic	=	+in(kan):2
  mal		basic	=	+in(mal):2
  mal		mlplusnum	=	+in(mal):2
  ogham		basic	=	+ie(ogam):2
  ogham		laptop	=	+ie(ogam):2
  ogham		is434	=	+ie(ogam_is434):2
  ogham		is434laptop	=	+ie(ogam_is434):2
  ori		basic	=	+in(ori):2
  ro		de	=	+ro(winkeys):2
  ro		us	=	+ro(std):2
  sapmi		basic	=	+no(smi):2
  sapmi		nodeadkeys	=	+no(smi_nodeadkeys):2
  sapmi		sefi	=	+fi(smi):2
  sin		phonetic-static	=	+in(sin_phonetic):2
  syr		basic	=	+sy(syc):2
  syr		phonetic	=	+sy(syc_phonetic):2
  tam		INSCRIPT	=	+in(tam):2
  tam		UNI	=	+in(tam_unicode):2
  tam		TAB	=	+in(tam_TAB):2
  tam		TSCII	=	+in(tam_TSCII):2
  tel		basic	=	+in(tel):2
  yu		basic	=	+srp(latin):2
  yu		unicode	=	+srp(latinunicode):2
  yu		yz	=	+srp(latinyz):2
  yu		unicodeyz	=	+srp(latinunicodeyz):2

! layout[3]	variant[3]	=	symbols
  ben		basic	=	+in(ben):3
  ben		probhat	=	+in(ben_probhat):3
  dev		basic	=	+in(deva):3
  dvorak		$dvoraklayouts	=	+%l(dvorak):3
  dvorak		basic	=	+us(dvorak):3
  dvorak		pl_basic	=	+pl(dvorak):3
  dvorak		pl	=	+pl(dvorak_quotes):3
  dvorak		pl_altquotes	=	+pl(dvorak_altquotes):3
  dzdwi		basic	=	+bt(basic):3
  guj		basic	=	+in(guj):3
  gur		basic	=	+in(guru):3
  ie		laptop	=	+ie(basic):3
  ie		CloGaelachLaptop	=	+ie(CloGaelach):3
  il		si1452	=	+ie(basic):3
  iu		basic	=	+ca(ike):3
  lo		basic	=	+la(basic):3
  kan		basic	=	+in(kan):3
  mal		basic	=	+in(mal):3
  mal		mlplusnum	=	+in(mal):3
  ogham		basic	=	+ie(ogam):3
  ogham		laptop	=	+ie(ogam):3
  ogham		is434	=	+ie(ogam_is434):3
  ogham		is434laptop	=	+ie(ogam_is434):3
  ori		basic	=	+in(ori):3
  ro		de	=	+ro(winkeys):3
  ro		us	=	+ro(std):3
  sapmi		basic	=	+no(smi):3
  sapmi		nodeadkeys	=	+no(smi_nodeadkeys):3
  sapmi		sefi	=	+fi(smi):3
  sin		phonetic-static	=	+in(sin_phonetic):3
  syr		basic	=	+sy(syc):3
  syr		phonetic	=	+sy(syc_phonetic):3
  tam		INSCRIPT	=	+in(tam):3
  tam		UNI	=	+in(tam_unicode):3
  tam		TAB	=	+in(tam_TAB):3
  tam		TSCII	=	+in(tam_TSCII):3
  tel		basic	=	+in(tel):3
  yu		basic	=	+srp(latin):3
  yu		unicode	=	+srp(latinunicode):3
  yu		yz	=	+srp(latinyz):3
  yu		unicodeyz	=	+srp(latinunicodeyz):3

! layout[4]	variant[4]	=	symbols
  ben		basic	=	+in(ben):4
  ben		probhat	=	+in(ben_probhat):4
  dev		basic	=	+in(deva):4
  dvorak		$dvoraklayouts	=	+%l(dvorak):4
  dvorak		basic	=	+us(dvorak):4
  dvorak		pl_basic	=	+pl(dvorak):4
  dvorak		pl	=	+pl(dvorak_quotes):4
  dvorak		pl_altquotes	=	+pl(dvorak_altquotes):4
  dzdwi		basic	=	+bt(basic):4
  guj		basic	=	+in(guj):4
  gur		basic	=	+in(guru):4
  ie		laptop	=	+ie(basic):4
  ie		CloGaelachLaptop	=	+ie(CloGaelach):4
  il		si1452	=	+ie(basic):4
  iu		basic	=	+ca(ike):4
  lo		basic	=	+la(basic):4
  kan		basic	=	+in(kan):4
  mal		basic	=	+in(mal):4
  mal		mlplusnum	=	+in(mal):4
  ogham		basic	=	+ie(ogam):4
  ogham		laptop	=	+ie(ogam):4
  ogham		is434	=	+ie(ogam_is434):4
  ogham		is434laptop	=	+ie(ogam_is434):4
  ori		basic	=	+in(ori):4
  ro		de	=	+ro(winkeys):4
  ro		us	=	+ro(std):4
  sapmi		basic	=	+no(smi):4
  sapmi		nodeadkeys	=	+no(smi_nodeadkeys):4
  sapmi		sefi	=	+fi(smi):4
  sin		phonetic-static	=	+in(sin_phonetic):4
  syr		basic	=	+sy(syc):4
  syr		phonetic	=	+sy(syc_phonetic):4
  tam		INSCRIPT	=	+in(tam):4
  tam		UNI	=	+in(tam_unicode):4
  tam		TAB	=	+in(tam_TAB):4
  tam		TSCII	=	+in(tam_TSCII):4
  tel		basic	=	+in(tel):4
  yu		basic	=	+srp(latin):4
  yu		unicode	=	+srp(latinunicode):4
  yu		yz	=	+srp(latinyz):4
  yu		unicodeyz	=	+srp(latinunicodeyz):4

! model		=	symbols
  $inetkbds     =       +inet(%m)
  $maclaptop	=	+inet(apple)+level3(enter_switch)
  $macs	        =	+inet(apple)

! model		layout		=	compat
  pc98		nec_vndr/jp	=	pc98(basic)
  *		jp		=	complete+japan
  *		*		=	complete

! model		layout[1]	=	compat
  *		*		=	complete

! model		=	types
  $macs		=	complete+numpad(mac)
  *		=	complete

! layout	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle)

! layout[1]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1

! layout[2]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2

! layout[3]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3

! layout[4]	option	=	symbols
  $threelevellayouts	grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4

! option	=	symbols
  grp:shift_toggle	=	+group(shifts_toggle)
  altwin:menu		=	+altwin(menu)
  altwin:meta_alt	=	+altwin(meta_alt)
  altwin:ctrl_win	=	+altwin(ctrl_win)
  altwin:meta_win	=	+altwin(meta_win)
  altwin:left_meta_win	=	+altwin(left_meta_win)
  altwin:super_win	=	+altwin(super_win)
  altwin:hyper_win	=	+altwin(hyper_win)
  altwin:alt_super_win	=	+altwin(alt_super_win)
  altwin:swap_lalt_lwin	=	+altwin(swap_lalt_lwin)
  grp:switch		=	+group(switch)
  grp:lswitch		=	+group(lswitch)
  grp:win_switch	=	+group(win_switch)
  grp:lwin_switch	=	+group(lwin_switch)
  grp:rwin_switch	=	+group(rwin_switch)
  grp:toggle		=	+group(toggle)
  grp:shifts_toggle	=	+group(shifts_toggle)
  grp:ctrls_toggle	=	+group(ctrls_toggle)
  grp:alts_toggle	=	+group(alts_toggle)
  grp:ctrl_shift_toggle	=	+group(ctrl_shift_toggle)
  grp:lctrl_lshift_toggle	=	+group(lctrl_lshift_toggle)
  grp:caps_toggle	=	+group(caps_toggle)
  grp:shift_caps_toggle	=	+group(shift_caps_toggle)
  grp:alt_caps_toggle   =       +group(alt_caps_toggle)
  grp:ctrl_alt_toggle	=	+group(ctrl_alt_toggle)
  grp:alt_shift_toggle	=	+group(alt_shift_toggle)
  grp:menu_toggle	=	+group(menu_toggle)
  grp:lwin_toggle	=	+group(lwin_toggle)
  grp:rwin_toggle	=	+group(rwin_toggle)
  grp:lshift_toggle	=	+group(lshift_toggle)
  grp:rshift_toggle	=	+group(rshift_toggle)
  grp:lctrl_toggle	=	+group(lctrl_toggle)
  grp:rctrl_toggle	=	+group(rctrl_toggle)
  grp:lalt_toggle	=	+group(lalt_toggle)
  lv3:switch		=	+level3(switch)
  lv3:ralt_switch	=	+level3(ralt_switch)
  lv3:ralt_switch_multikey	=	+level3(ralt_switch_multikey)
  lv3:ralt_alt		=	+level3(ralt_alt)
  lv3:lalt_switch	=	+level3(lalt_switch)
  lv3:alt_switch	=	+level3(alt_switch)
  lv3:menu_switch	=	+level3(menu_switch)
  lv3:win_switch	=	+level3(win_switch)
  lv3:lwin_switch	=	+level3(lwin_switch)
  lv3:rwin_switch	=	+level3(rwin_switch)
  caps:capslock		=	+capslock(capslock)
  caps:shiftlock	=	+capslock(shiftlock)
  caps:grouplock	=	+capslock(grouplock)
  ctrl:nocaps		=	+ctrl(nocaps)
  ctrl:swapcaps		=	+ctrl(swapcaps)
  ctrl:ctrl_ac		=	+ctrl(ctrl_ac)
  ctrl:ctrl_aa		=	+ctrl(ctrl_aa)
  ctrl:ctrl_ra		=	+ctrl(ctrl_ra)
  compose:ralt		=	+compose(ralt)
  compose:lwin		=	+compose(lwin)
  compose:rwin		=	+compose(rwin)
  compose:menu		=	+compose(menu)
  compose:rctrl		=	+compose(rctrl)
  compose:caps      =   +compose(caps)
  srvrkeys:none		=	+srvr_ctrl(no_srvr_keys)
  eurosign:e		=	+eurosign(e)
  eurosign:5		=	+eurosign(5)
  eurosign:2		=	+eurosign(2)
  keypad:oss            =       +keypad(oss)
  keypad:legacy         =	+keypad(legacy)
  nbsp:none             =	+nbsp(none)
  nbsp:level2           =	+nbsp(level2)
  nbsp:level3           =	+nbsp(level3)
  nbsp:level3s          =	+nbsp(level3s)
  nbsp:level3n          =	+nbsp(level3n)
  nbsp:level4           =	+nbsp(level4)
  nbsp:level4n          =	+nbsp(level4n)

! option	=	compat
  grp_led:num		=	+lednum(group_lock)
  grp_led:caps		=	+ledcaps(group_lock)
  grp_led:scroll	=	+ledscroll(group_lock)
  grp:caps_toggle	=	+ledcaps(group_lock)
  japan:kana_lock	=	+japan(kana_lock)


! option	=	types
  caps:internal			=	+caps(internal)
  caps:internal_nocancel	=	+caps(internal_nocancel)
  caps:shift			=	+caps(shift)
  caps:shift_nocancel		=	+caps(shift_nocancel)
  numpad:pc			=	+numpad(pc)
  numpad:mac			=	+numpad(mac)
  numpad:microsoft		=	+numpad(microsoft)
