Subject: Re: Wskeyboard mappings
To: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
From: Reinoud Zandijk <imago@kabel065011.kabel.utwente.nl>
List: tech-kern
Date: 03/15/2001 14:06:50
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---2140140603-1454686984-984661610=:22871
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi Juergen,

I've patched my keymap again but now it really gives strange results :((
and i cant get my finger on it ... so in my deperate attempt to fix it
i'll send you the file ... maybe i am just doing something silly :)

As you can see in the file, the scancode 14 gets mapped to :
/*  pos   command   normal      shifted      altgr    shift-altgr */
    KC(14),         KS_grave,   KS_notsign,  KS_bar,

But pressing the scancode 14 key (left to 1) it gives "`" but shift gives
0xac, altgr gives 0xe0, shift altgr gives 0xac, ctrl-alt gives 0x80 ...
i'm lost ...

    KC(97),         KS_backslash, KS_brokenbar,

gives backslash ok but with shift gives 0xa6 ... is that brokenbar ?

alt `,' gives the 0xac too so i guess the `KS_notsign' works on keycode
14 but for some reason my font doesnt know it :((

but is one of `KS_bar' or `KS_brokenbar' not | ? i.e. 0x7c ?

puzzled....

Cheers,
Reinoud


---2140140603-1454686984-984661610=:22871
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="wskbdmap_mfii.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.30.0103151406500.22871@rangerover.kasbah>
Content-Description: 
Content-Disposition: attachment; filename="wskbdmap_mfii.c"

LyoJJE5ldEJTRDogd3NrYmRtYXBfbWZpaS5jLHYgMS4yMCAyMDAxLzAxLzIz
IDE5OjI1OjE0IGNodWNrIEV4cCAkCSovDQoNCi8qLQ0KICogQ29weXJpZ2h0
IChjKSAxOTk3IFRoZSBOZXRCU0QgRm91bmRhdGlvbiwgSW5jLg0KICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4NCiAqDQogKiBUaGlzIGNvZGUgaXMgZGVyaXZl
ZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIFRoZSBOZXRCU0QgRm91
bmRhdGlvbg0KICogYnkgSnVlcmdlbiBIYW5ua2VuLUlsbGplcy4NCiAqDQog
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucw0KICogYXJlIG1ldDoNCiAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQog
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuDQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodA0KICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4NCiAqIDMuIEFsbCBhZHZlcnRpc2luZyBt
YXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcyBz
b2Z0d2FyZQ0KICogICAgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNr
bm93bGVkZ2VtZW50Og0KICoJVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3
YXJlIGRldmVsb3BlZCBieSB0aGUgTmV0QlNEDQogKglGb3VuZGF0aW9uLCBJ
bmMuIGFuZCBpdHMgY29udHJpYnV0b3JzLg0KICogNC4gTmVpdGhlciB0aGUg
bmFtZSBvZiBUaGUgTmV0QlNEIEZvdW5kYXRpb24gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMNCiAqICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZA0KICogICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLg0KICoNCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIE5FVEJTRCBGT1VOREFUSU9OLCBJTkMuIEFORCBDT05UUklCVVRP
UlMNCiAqIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRA0KICogVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVINCiAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgRk9VTkRBVElPTiBP
UiBDT05UUklCVVRPUlMNCiAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IN
CiAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GDQogKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MNCiAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
DQogKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQ0KICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUNCiAqIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLg0KICovDQoNCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNs
dWRlIDxkZXYvd3Njb25zL3dza3N5bWRlZi5oPg0KI2luY2x1ZGUgPGRldi93
c2NvbnMvd3Nrc3ltdmFyLmg+DQojaW5jbHVkZSA8YXJtMzIvZGV2L3dza2Jk
bWFwX21maWkuaD4NCg0KI2RlZmluZSBLQyhuKSBLU19LRVlDT0RFKG4pDQoN
CnN0YXRpYyBjb25zdCBrZXlzeW1fdCBycGNrYmRfa2V5ZGVzY191a1tdID0g
ew0KLyogIHBvcyAgICAgIGNvbW1hbmQJCW5vcm1hbAkJc2hpZnRlZAkJYWx0
Z3IJCXNoaWZ0LWFsdGdyICovDQogICAgS0MoMTE4KSwgS1NfQ21kX0RlYnVn
Z2VyLAlLU19Fc2NhcGUsDQoNCiAgICBLQygyMiksCQkJS1NfMSwJCUtTX2V4
Y2xhbSwJS1NfcGx1c21pbnVzLAlLU19leGNsYW1kb3duLA0KICAgIEtDKDMw
KSwJCQlLU18yLAkJS1NfcXVvdGVkYmwsCUtTX3R3b3N1cGVyaW9yLAlLU19j
ZW50LA0KICAgIEtDKDM4KSwJCQlLU18zLAkJS1Nfc3RlcmxpbmcsCUtTX3Ro
cmVlc3VwZXJpb3IsDQogICAgS0MoMzcpLAkJCUtTXzQsCQlLU19kb2xsYXIs
CUtTX2FjdXRlLAlLU19jdXJyZW5jeSwNCiAgICBLQyg0NiksCQkJS1NfNSwJ
CUtTX3BlcmNlbnQsCUtTX211LAkJS1NfeWVuLA0KICAgIEtDKDU0KSwJCQlL
U182LAkJS1NfYXNjaWljaXJjdW0sCUtTX3BhcmFncmFwaCwNCiAgICBLQyg2
MSksCQkJS1NfNywJCUtTX2FtcGVyc2FuZCwJS1NfcGVyaW9kY2VudGVyZWQs
DQogICAgS0MoNjIpLAkJCUtTXzgsCQlLU19hc3RlcmlzaywJS1NfY2VkaWxs
YSwJS1Nfb3JkZmVtaW5pbmUsDQogICAgS0MoNzApLAkJCUtTXzksCQlLU19w
YXJlbmxlZnQsCUtTX29uZXN1cGVyaW9yLAlLU19kaWFlcmVzaXMsDQogICAg
S0MoNjkpLAkJCUtTXzAsCQlLU19wYXJlbnJpZ2h0LAlLU19tYXNjdWxpbmUs
CUtTX2NvcHlyaWdodCwNCiAgICBLQyg3OCksCQkJS1NfbWludXMsCUtTX3Vu
ZGVyc2NvcmUsCUtTX2h5cGhlbiwJS1Nfc3NoYXJwLA0KICAgIEtDKDg1KSwJ
CQlLU19lcXVhbCwJS1NfcGx1cywJS1Nfb25laGFsZiwJS1NfZ3VpbGxlbW90
bGVmdCwNCiAgICBLQygxNCksCQkJS1NfZ3JhdmUsCUtTX25vdHNpZ24sCUtT
X2JhciwNCiAgICBLQygxMDIpLCBLU19DbWRfUmVzZXRFbXVsLAlLU19EZWxl
dGUsDQogICAgS0MoMTMpLCAJCQlLU19UYWIsDQogICAgS0MoMjEpLCAJCQlL
U19xLA0KICAgIEtDKDI5KSwgCQkJS1NfdywNCiAgICBLQygzNiksIAkJCUtT
X2UsDQogICAgS0MoNDUpLCAJCQlLU19yLA0KICAgIEtDKDQ0KSwgCQkJS1Nf
dCwNCiAgICBLQyg1MyksIAkJCUtTX3ksDQogICAgS0MoNjApLCAJCQlLU191
LA0KICAgIEtDKDY3KSwgCQkJS1NfaSwNCiAgICBLQyg2OCksIAkJCUtTX28s
DQogICAgS0MoNzcpLCAJCQlLU19wLA0KICAgIEtDKDg0KSwgCQkJS1NfYnJh
Y2tldGxlZnQsCUtTX2JyYWNlbGVmdCwNCiAgICBLQyg5MSksIAkJCUtTX2Jy
YWNrZXRyaWdodCwgS1NfYnJhY2VyaWdodCwNCiAgICBLQyg5MCksIAkJCUtT
X1JldHVybiwNCiAgICBLQygyMCksICBLU19DbWQxLAkJS1NfQ29udHJvbF9M
LA0KICAgIEtDKDI4KSwgCQkJS1NfYSwNCiAgICBLQygyNyksIAkJCUtTX3Ms
DQogICAgS0MoMzUpLCAJCQlLU19kLA0KICAgIEtDKDQzKSwgCQkJS1NfZiwN
CiAgICBLQyg1MiksIAkJCUtTX2csDQogICAgS0MoNTEpLCAJCQlLU19oLA0K
ICAgIEtDKDU5KSwgCQkJS1NfaiwNCiAgICBLQyg2NiksIAkJCUtTX2ssDQog
ICAgS0MoNzUpLCAJCQlLU19sLA0KICAgIEtDKDc2KSwgCQkJS1Nfc2VtaWNv
bG9uLAlLU19jb2xvbiwNCiAgICBLQyg4MiksCQkJS1NfYXBvc3Ryb3BoZSwJ
S1NfYXQsCQlLU19zZWN0aW9uLAlLU19BZ3JhdmUsDQogICAgS0MoOTMpLAkJ
CUtTX251bWJlcnNpZ24sCUtTX2FzY2lpdGlsZGUsCUtTX3N0ZXJsaW5nLAlL
U190aG9ybiwNCiAgICBLQygxOCksIAkJCUtTX1NoaWZ0X0wsDQogICAgS0Mo
OTcpLAkJCUtTX2JhY2tzbGFzaCwJS1NfYnJva2VuYmFyLA0KICAgIEtDKDI2
KSwgCQkJS1NfeiwNCiAgICBLQygzNCksIAkJCUtTX3gsDQogICAgS0MoMzMp
LCAJCQlLU19jLA0KICAgIEtDKDQyKSwgCQkJS1NfdiwNCiAgICBLQyg1MCks
IAkJCUtTX2IsDQogICAgS0MoNDkpLCAJCQlLU19uLA0KICAgIEtDKDU4KSwg
CQkJS1NfbSwNCiAgICBLQyg2NSksIAkJCUtTX2NvbW1hLAlLU19sZXNzLA0K
ICAgIEtDKDczKSwgCQkJS1NfcGVyaW9kLAlLU19ncmVhdGVyLA0KICAgIEtD
KDc0KSwgCQkJS1Nfc2xhc2gsCUtTX3F1ZXN0aW9uLA0KICAgIEtDKDg5KSwg
CQkJS1NfU2hpZnRfUiwNCiAgICBLQygxMjQpLCAJCQlLU19LUF9NdWx0aXBs
eSwNCiAgICBLQygxNyksICBLU19DbWQyLAkJS1NfQWx0X0wsCUtTX01ldGFf
TCwNCiAgICBLQyg0MSksIAkJCUtTX3NwYWNlLA0KICAgIEtDKDg4KSwgCQkJ
S1NfQ2Fwc19Mb2NrLA0KICAgIEtDKDUpLCAgIEtTX0NtZF9TY3JlZW4wLAlL
U19mMSwNCiAgICBLQyg2KSwgICBLU19DbWRfU2NyZWVuMSwJS1NfZjIsDQog
ICAgS0MoNCksICAgS1NfQ21kX1NjcmVlbjIsCUtTX2YzLA0KICAgIEtDKDEy
KSwgIEtTX0NtZF9TY3JlZW4zLAlLU19mNCwNCiAgICBLQygzKSwgICBLU19D
bWRfU2NyZWVuNCwJS1NfZjUsDQogICAgS0MoMTEpLCAgS1NfQ21kX1NjcmVl
bjUsCUtTX2Y2LA0KICAgIEtDKDEzMSksIEtTX0NtZF9TY3JlZW42LAlLU19m
NywNCiAgICBLQygxMCksICBLU19DbWRfU2NyZWVuNywJS1NfZjgsDQogICAg
S0MoMSksICAgS1NfQ21kX1NjcmVlbjgsCUtTX2Y5LA0KICAgIEtDKDkpLCAg
IEtTX0NtZF9TY3JlZW45LAlLU19mMTAsDQogICAgS0MoMTE5KSwgCQkJS1Nf
TnVtX0xvY2ssDQogICAgS0MoMTI2KSwgCQkJS1NfSG9sZF9TY3JlZW4sDQog
ICAgS0MoMTA4KSwgCQkJS1NfS1BfSG9tZSwJS1NfS1BfNywNCiAgICBLQygx
MTcpLCAJCQlLU19LUF9VcCwJS1NfS1BfOCwNCiAgICBLQygxMjUpLCAJCQlL
U19LUF9QcmlvciwJS1NfS1BfOSwNCiAgICBLQygxMjMpLCAJCQlLU19LUF9T
dWJ0cmFjdCwNCiAgICBLQygxMDcpLCAJCQlLU19LUF9MZWZ0LAlLU19LUF80
LA0KICAgIEtDKDExNSksIAkJCUtTX0tQX0JlZ2luLAlLU19LUF81LA0KICAg
IEtDKDExNiksIAkJCUtTX0tQX1JpZ2h0LAlLU19LUF82LA0KICAgIEtDKDEy
MSksIAkJCUtTX0tQX0FkZCwNCiAgICBLQygxMDUpLCAJCQlLU19LUF9FbmQs
CUtTX0tQXzEsDQogICAgS0MoMTE0KSwgCQkJS1NfS1BfRG93biwJS1NfS1Bf
MiwNCiAgICBLQygxMjIpLCAJCQlLU19LUF9OZXh0LAlLU19LUF8zLA0KICAg
IEtDKDExMiksIAkJCUtTX0tQX0luc2VydCwJS1NfS1BfMCwNCiAgICBLQygx
MTMpLCAJCQlLU19LUF9EZWxldGUsCUtTX0tQX0RlY2ltYWwsDQogICAgS0Mo
MTIwKSwgCQkJS1NfZjExLA0KICAgIEtDKDcpLCAJCQlLU19mMTIsDQogICAg
S0MoMTI3KSwJCQlLU19QYXVzZSwgLyogQnJlYWsgKi8JCS8qIFhYWCBmaXht
ZSBYWFggKi8NCiAgICBLQygzNDYpLAkJCUtTX0tQX0VudGVyLA0KICAgIEtD
KDI3NiksCQkJS1NfQ29udHJvbF9SLA0KICAgIEtDKDM4MCksCQkJS1NfUHJp
bnRfU2NyZWVuLA0KICAgIEtDKDMzMCksCQkJS1NfS1BfRGl2aWRlLA0KICAg
IEtDKDM4MCksCQkJS1NfUHJpbnRfU2NyZWVuLA0KLyogIHBvcyAgICAgIGNv
bW1hbmQJCW5vcm1hbAkJc2hpZnRlZAkJYWx0Z3IJCXNoaWZ0LWFsdGdyICov
DQogICAgS0MoMjczKSwJCQlLU19BbHRfUiwJS1NfTXVsdGlfa2V5LAlLU19B
bHRfUiwJS1NfTWV0YV9SLA0KI2lmIDANCiAgICBLQygxOTgpLCAgS1NfQ21k
X1Jlc2V0Q2xvc2UsIC8qIENUTC1CcmVhayAqLwkJLyogWFhYIGZpeG1lIFhY
WCAqLw0KI2VuZGlmDQogICAgS0MoMzY0KSwJCQlLU19Ib21lLA0KICAgIEtD
KDM3MyksCQkJS1NfVXAsDQogICAgS0MoMzgxKSwJCQlLU19QcmlvciwNCiAg
ICBLQygzNjMpLAkJCUtTX0xlZnQsDQogICAgS0MoMzcyKSwJCQlLU19SaWdo
dCwNCiAgICBLQygzNjEpLAkJCUtTX0VuZCwNCiAgICBLQygzNzApLAkJCUtT
X0Rvd24sDQogICAgS0MoMzc4KSwJCQlLU19OZXh0LA0KICAgIEtDKDM2OCks
CQkJS1NfSW5zZXJ0LA0KICAgIEtDKDM2OSksCQkJS1NfRGVsZXRlLA0KI2lm
IDAJLyogZHVubm8gd2hhdCB0byBtYXAgdGhpcyBvbmUgdG9vICovDQogICAg
S0MoMjIxKSwJCQlLU19NZW51LA0KI2VuZGlmDQp9Ow0KDQoNCiNkZWZpbmUg
S0JEX01BUChuYW1lLCBiYXNlLCBtYXApIFwNCgkJCXsgbmFtZSwgYmFzZSwg
c2l6ZW9mKG1hcCkvc2l6ZW9mKGtleXN5bV90KSwgbWFwIH0NCi8qIEtCRF9O
VUxMTUFQIGdlbmVyYXRlcyBhIGVudHJ5IGZvciBtYWNoaW5lIG5hdGl2ZSB2
YXJpYW50Lg0KICAgdGhlIGVudHJ5IHdpbGwgYmUgbW9kaWZpZWQgYnkgbWFj
aGluZSBkZXBlbmRlbnQga2V5Ym9hcmQgZHJpdmVyLiAqLw0KI2RlZmluZSBL
QkRfTlVMTE1BUChuYW1lLCBiYXNlKSB7IG5hbWUsIGJhc2UsIDAsIDAgfQ0K
DQpjb25zdCBzdHJ1Y3Qgd3Njb25zX2tleWRlc2MgcnBja2JkX2tleWRlc2N0
YWJbXSA9IHsNCglLQkRfTUFQKEtCX1VLLAkJCTAsCXJwY2tiZF9rZXlkZXNj
X3VrKSwNCgl7MCwgMCwgMCwgMH0NCn07DQoNCiN1bmRlZiBLQkRfTUFQDQoj
dW5kZWYgS0MNCg0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQog
KiBPTEQgU1RVRkYJCQkJCQkJCSoNCiAqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovDQoNCiNpZiAwDQpzdGF0aWMgY29uc3Qga2V5c3ltX3QgcGNrYmRf
a2V5ZGVzY19kZVtdID0gew0KLyogIHBvcyAgICAgIG5vcm1hbAkJc2hpZnRl
ZAkJYWx0Z3IJCXNoaWZ0LWFsdGdyICovDQogICAgS0MoMyksICAgS1NfMiwJ
CUtTX3F1b3RlZGJsLAlLU190d29zdXBlcmlvciwNCiAgICBLQyg0KSwgICBL
U18zLAkJS1Nfc2VjdGlvbiwJS1NfdGhyZWVzdXBlcmlvciwNCiAgICBLQyg3
KSwgICBLU182LAkJS1NfYW1wZXJzYW5kLA0KICAgIEtDKDgpLCAgIEtTXzcs
CQlLU19zbGFzaCwJS1NfYnJhY2VsZWZ0LA0KICAgIEtDKDkpLCAgIEtTXzgs
CQlLU19wYXJlbmxlZnQsCUtTX2JyYWNrZXRsZWZ0LA0KICAgIEtDKDEwKSwg
IEtTXzksCQlLU19wYXJlbnJpZ2h0LAlLU19icmFja2V0cmlnaHQsDQogICAg
S0MoMTEpLCAgS1NfMCwJCUtTX2VxdWFsLAlLU19icmFjZXJpZ2h0LA0KICAg
IEtDKDEyKSwgIEtTX3NzaGFycCwJCUtTX3F1ZXN0aW9uLAlLU19iYWNrc2xh
c2gsDQogICAgS0MoMTMpLCAgS1NfZGVhZF9hY3V0ZSwJS1NfZGVhZF9ncmF2
ZSwNCiAgICBLQygxNiksICBLU19xLAkJS1NfUSwJCUtTX2F0LA0KICAgIEtD
KDIxKSwgIEtTX3osDQogICAgS0MoMjYpLCAgS1NfdWRpYWVyZXNpcywNCiAg
ICBLQygyNyksICBLU19wbHVzLAkJS1NfYXN0ZXJpc2ssCUtTX2RlYWRfdGls
ZGUsDQogICAgS0MoMzkpLCAgS1Nfb2RpYWVyZXNpcywNCiAgICBLQyg0MCks
ICBLU19hZGlhZXJlc2lzLA0KICAgIEtDKDQxKSwgIEtTX2RlYWRfY2lyY3Vt
ZmxleCxLU19kZWFkX2Fib3ZlcmluZywNCiAgICBLQyg0MyksICBLU19udW1i
ZXJzaWduLAlLU19hcG9zdHJvcGhlLA0KICAgIEtDKDQ0KSwgIEtTX3ksDQog
ICAgS0MoNTApLCAgS1NfbSwJCUtTX00sCQlLU19tdSwNCiAgICBLQyg1MSks
ICBLU19jb21tYSwJCUtTX3NlbWljb2xvbiwNCiAgICBLQyg1MiksICBLU19w
ZXJpb2QsCQlLU19jb2xvbiwNCiAgICBLQyg1MyksICBLU19taW51cywJCUtT
X3VuZGVyc2NvcmUsDQogICAgS0MoODYpLCAgS1NfbGVzcywJCUtTX2dyZWF0
ZXIsCUtTX2JhciwJCUtTX2Jyb2tlbmJhciwNCiAgICBLQygxODQpLCBLU19N
b2RlX3N3aXRjaCwJS1NfTXVsdGlfa2V5LA0KfTsNCg0Kc3RhdGljIGNvbnN0
IGtleXN5bV90IHBja2JkX2tleWRlc2NfZGVfbm9kZWFkW10gPSB7DQovKiAg
cG9zICAgICAgbm9ybWFsCQlzaGlmdGVkCQlhbHRncgkJc2hpZnQtYWx0Z3Ig
Ki8NCiAgICBLQygxMyksICBLU19hcG9zdHJvcGhlLAlLU19ncmF2ZSwNCiAg
ICBLQygyNyksICBLU19wbHVzLAkJS1NfYXN0ZXJpc2ssCUtTX2FzY2lpdGls
ZGUsDQogICAgS0MoNDEpLCAgS1NfYXNjaWljaXJjdW0sCUtTX2RlZ3JlZSwN
Cn07DQoNCnN0YXRpYyBjb25zdCBrZXlzeW1fdCBwY2tiZF9rZXlkZXNjX2Rr
W10gPSB7DQovKiAgcG9zICAgICAgbm9ybWFsCQlzaGlmdGVkCQlhbHRncgkJ
c2hpZnQtYWx0Z3IgKi8NCiAgICBLQygzKSwgICBLU18yLAkJS1NfcXVvdGVk
YmwsCUtTX2F0LA0KICAgIEtDKDQpLCAgIEtTXzMsCQlLU19udW1iZXJzaWdu
LAlLU19zdGVybGluZywNCiAgICBLQyg1KSwgICBLU180LAkJS1NfY3VycmVu
Y3ksCUtTX2RvbGxhciwNCiAgICBLQyg3KSwgICBLU182LAkJS1NfYW1wZXJz
YW5kLA0KICAgIEtDKDgpLCAgIEtTXzcsCQlLU19zbGFzaCwJS1NfYnJhY2Vs
ZWZ0LA0KICAgIEtDKDkpLCAgIEtTXzgsCQlLU19wYXJlbmxlZnQsCUtTX2Jy
YWNrZXRsZWZ0LA0KICAgIEtDKDEwKSwgIEtTXzksCQlLU19wYXJlbnJpZ2h0
LAlLU19icmFja2V0cmlnaHQsDQogICAgS0MoMTEpLCAgS1NfMCwJCUtTX2Vx
dWFsLAlLU19icmFjZXJpZ2h0LA0KICAgIEtDKDEyKSwgIEtTX3BsdXMsCQlL
U19xdWVzdGlvbiwNCiAgICBLQygxMyksICBLU19kZWFkX2FjdXRlLAlLU19k
ZWFkX2dyYXZlLAlLU19iYXIsDQogICAgS0MoMjYpLCAgS1NfYXJpbmcsDQog
ICAgS0MoMjcpLCAgS1NfZGVhZF9kaWFlcmVzaXMsCUtTX2RlYWRfY2lyY3Vt
ZmxleCwgS1NfZGVhZF90aWxkZSwNCiAgICBLQygzOSksICBLU19hZSwNCiAg
ICBLQyg0MCksICBLU19vc2xhc2gsDQogICAgS0MoNDEpLCAgS1Nfb25laGFs
ZiwJS1NfcGFyYWdyYXBoLA0KICAgIEtDKDQzKSwgIEtTX2Fwb3N0cm9waGUs
CUtTX2FzdGVyaXNrLA0KICAgIEtDKDUxKSwgIEtTX2NvbW1hLAkJS1Nfc2Vt
aWNvbG9uLA0KICAgIEtDKDUyKSwgIEtTX3BlcmlvZCwJCUtTX2NvbG9uLA0K
ICAgIEtDKDUzKSwgIEtTX21pbnVzLAkJS1NfdW5kZXJzY29yZSwNCiAgICBL
Qyg4NiksICBLU19sZXNzLAkJS1NfZ3JlYXRlciwJS1NfYmFja3NsYXNoLA0K
ICAgIEtDKDE4NCksIEtTX01vZGVfc3dpdGNoLAlLU19NdWx0aV9rZXksDQp9
Ow0KDQpzdGF0aWMgY29uc3Qga2V5c3ltX3QgcGNrYmRfa2V5ZGVzY19ka19u
b2RlYWRbXSA9IHsNCi8qICBwb3MgICAgICBub3JtYWwJCXNoaWZ0ZWQJCWFs
dGdyCQlzaGlmdC1hbHRnciAqLw0KICAgIEtDKDEzKSwgIEtTX2Fwb3N0cm9w
aGUsCUtTX2dyYXZlLAlLU19iYXIsDQogICAgS0MoMjcpLCAgS1NfZGlhZXJl
c2lzLAlLU19hc2NpaWNpcmN1bSwJS1NfYXNjaWl0aWxkZSwNCn07DQoNCnN0
YXRpYyBjb25zdCBrZXlzeW1fdCBwY2tiZF9rZXlkZXNjX3N2W10gPSB7DQov
KiAgcG9zICAgICAgbm9ybWFsCQlzaGlmdGVkCQlhbHRncgkJc2hpZnQtYWx0
Z3IgKi8NCiAgICBLQygxMiksICBLU19wbHVzLAkJS1NfcXVlc3Rpb24sCUtT
X2JhY2tzbGFzaCwNCiAgICBLQygyNyksICBLU19kZWFkX2RpYWVyZXNpcywJ
S1NfZGVhZF9jaXJjdW1mbGV4LCBLU19kZWFkX3RpbGRlLA0KICAgIEtDKDM5
KSwgIEtTX29kaWFlcmVzaXMsDQogICAgS0MoNDApLCAgS1NfYWRpYWVyZXNp
cywNCiAgICBLQyg0MSksICBLU19wYXJhZ3JhcGgsCUtTX29uZWhhbGYsDQog
ICAgS0MoODYpLCAgS1NfbGVzcywJCUtTX2dyZWF0ZXIsCUtTX2JhciwNCiAg
ICBLQygxODQpLCBLU19Nb2RlX3N3aXRjaCwJS1NfTXVsdGlfa2V5LA0KfTsN
Cg0Kc3RhdGljIGNvbnN0IGtleXN5bV90IHBja2JkX2tleWRlc2Nfc3Zfbm9k
ZWFkW10gPSB7DQovKiAgcG9zICAgICAgbm9ybWFsCQlzaGlmdGVkCQlhbHRn
cgkJc2hpZnQtYWx0Z3IgKi8NCiAgICBLQygxMyksICBLU19hcG9zdHJvcGhl
LAlLU19ncmF2ZSwJS1NfYmFyLA0KICAgIEtDKDI3KSwgIEtTX2RpYWVyZXNp
cywJS1NfYXNjaWljaXJjdW0sCUtTX2FzY2lpdGlsZGUsDQp9Ow0KDQpzdGF0
aWMgY29uc3Qga2V5c3ltX3QgcGNrYmRfa2V5ZGVzY19ub1tdID0gew0KLyog
IHBvcyAgICAgIG5vcm1hbAkJc2hpZnRlZAkJYWx0Z3IJCXNoaWZ0LWFsdGdy
ICovDQogICAgS0MoMTMpLCAgS1NfYmFja3NsYXNoLAlLU19kZWFkX2dyYXZl
LAlLU19kZWFkX2FjdXRlLA0KICAgIEtDKDI3KSwgIEtTX2RlYWRfZGlhZXJl
c2lzLAlLU19kZWFkX2NpcmN1bWZsZXgsIEtTX2RlYWRfdGlsZGUsDQogICAg
S0MoMzkpLCAgS1Nfb3NsYXNoLA0KICAgIEtDKDQwKSwgIEtTX2FlLA0KICAg
IEtDKDQxKSwgIEtTX2JhciwJCUtTX3BhcmFncmFwaCwNCiAgICBLQyg4Niks
ICBLU19sZXNzLAkJS1NfZ3JlYXRlciwNCn07DQoNCnN0YXRpYyBjb25zdCBr
ZXlzeW1fdCBwY2tiZF9rZXlkZXNjX25vX25vZGVhZFtdID0gew0KLyogIHBv
cyAgICAgIG5vcm1hbAkJc2hpZnRlZAkJYWx0Z3IJCXNoaWZ0LWFsdGdyICov
DQogICAgS0MoMTMpLCAgS1NfYmFja3NsYXNoLAlLU19ncmF2ZSwJS1NfYWN1
dGUsDQogICAgS0MoMjcpLCAgS1NfZGlhZXJlc2lzLAlLU19hc2NpaWNpcmN1
bSwJS1NfYXNjaWl0aWxkZSwNCn07DQoNCnN0YXRpYyBjb25zdCBrZXlzeW1f
dCBwY2tiZF9rZXlkZXNjX2ZyW10gPSB7DQovKiAgcG9zCSAgICAgbm9ybWFs
CQlzaGlmdGVkCQlhbHRncgkJc2hpZnQtYWx0Z3IgKi8NCiAgICBLQygyKSwg
ICBLU19hbXBlcnNhbmQsCUtTXzEsDQogICAgS0MoMyksICAgS1NfZWFjdXRl
LAkJS1NfMiwJCUtTX2FzY2lpdGlsZGUsDQogICAgS0MoNCksICAgS1NfcXVv
dGVkYmwsCUtTXzMsCQlLU19udW1iZXJzaWduLA0KICAgIEtDKDUpLCAgIEtT
X2Fwb3N0cm9waGUsCUtTXzQsCQlLU19icmFjZWxlZnQsDQogICAgS0MoNiks
ICAgS1NfcGFyZW5sZWZ0LAlLU181LAkJS1NfYnJhY2tldGxlZnQsDQogICAg
S0MoNyksICAgS1NfbWludXMsCQlLU182LAkJS1NfYmFyLA0KICAgIEtDKDgp
LCAgIEtTX2VncmF2ZSwJCUtTXzcsCQlLU19ncmF2ZSwNCiAgICBLQyg5KSwg
ICBLU191bmRlcnNjb3JlLAlLU184LAkJS1NfYmFja3NsYXNoLA0KICAgIEtD
KDEwKSwgIEtTX2NjZWRpbGxhLAlLU185LAkJS1NfYXNjaWljaXJjdW0sDQog
ICAgS0MoMTEpLCAgS1NfYWdyYXZlLAkJS1NfMCwJCUtTX2F0LA0KICAgIEtD
KDEyKSwgIEtTX3BhcmVucmlnaHQsCUtTX2RlZ3JlZSwJS1NfYnJhY2tldHJp
Z2h0LA0KICAgIEtDKDEzKSwgIEtTX2VxdWFsLAkJS1NfcGx1cywJS1NfYnJh
Y2VyaWdodCwNCiAgICBLQygxNiksICBLU19hLA0KICAgIEtDKDE3KSwgIEtT
X3osDQogICAgS0MoMjYpLCAgS1NfZGVhZF9jaXJjdW1mbGV4LCBLU19kZWFk
X2RpYWVyZXNpcywgDQogICAgS0MoMjcpLCAgS1NfZG9sbGFyLAkJS1Nfc3Rl
cmxpbmcsCUtTX2N1cnJlbmN5LA0KICAgIEtDKDMwKSwgIEtTX3EsDQogICAg
S0MoMzkpLCAgS1NfbSwNCiAgICBLQyg0MCksICBLU191Z3JhdmUsCQlLU19w
ZXJjZW50LA0KICAgIEtDKDQxKSwgIEtTX3R3b3N1cGVyaW9yLAlLU19hc2Np
aXRpbGRlLA0KICAgIEtDKDQzKSwgIEtTX2FzdGVyaXNrLAlLU19tdSwNCiAg
ICBLQyg0NCksICBLU193LA0KICAgIEtDKDUwKSwgIEtTX2NvbW1hLAkJS1Nf
cXVlc3Rpb24sDQogICAgS0MoNTEpLCAgS1Nfc2VtaWNvbG9uLAlLU19wZXJp
b2QsDQogICAgS0MoNTIpLCAgS1NfY29sb24sCQlLU19zbGFzaCwNCiAgICBL
Qyg1MyksICBLU19leGNsYW0sCQlLU19zZWN0aW9uLA0KICAgIEtDKDg2KSwg
IEtTX2xlc3MsCQlLU19ncmVhdGVyLA0KICAgIEtDKDE4NCksIEtTX01vZGVf
c3dpdGNoLAlLU19NdWx0aV9rZXksDQp9Ow0KDQpzdGF0aWMgY29uc3Qga2V5
c3ltX3QgcGNrYmRfa2V5ZGVzY19pdFtdID0gew0KLyogIHBvcyAgICAgIG5v
cm1hbAkJc2hpZnRlZAkJYWx0Z3IJCXNoaWZ0LWFsdGdyICovDQogICAgS0Mo
MyksICAgS1NfMiwJICAgIAlLU19xdW90ZWRibCwJS1NfdHdvc3VwZXJpb3Is
DQogICAgS0MoNCksICAgS1NfMywJICAgIAlLU19zdGVybGluZywJS1NfdGhy
ZWVzdXBlcmlvciwNCiAgICBLQyg1KSwgICBLU180LAkgICAgCUtTX2RvbGxh
ciwNCiAgICBLQyg2KSwgICBLU181LAkgICAgCUtTX3BlcmNlbnQsDQogICAg
S0MoNyksICAgS1NfNiwJICAgIAlLU19hbXBlcnNhbmQsDQogICAgS0MoOCks
ICAgS1NfNywJICAgIAlLU19zbGFzaCwNCiAgICBLQyg5KSwgICBLU184LAkg
ICAgCUtTX3BhcmVubGVmdCwNCiAgICBLQygxMCksICBLU185LAkgICAgCUtT
X3BhcmVucmlnaHQsDQogICAgS0MoMTEpLCAgS1NfMCwJICAgIAlLU19lcXVh
bCwNCiAgICBLQygxMiksICBLU19hcG9zdHJvcGhlLAlLU19xdWVzdGlvbiwN
CiAgICBLQygxMyksICBLU19pZ3JhdmUsCSAgICAJS1NfYXNjaWljaXJjdW0s
DQogICAgS0MoMjYpLCAgS1NfZWdyYXZlLAkJS1NfZWFjdXRlLAlLU19icmFj
ZWxlZnQsCUtTX2JyYWNrZXRsZWZ0LA0KICAgIEtDKDI3KSwgIEtTX3BsdXMs
CQlLU19hc3RlcmlzaywJS1NfYnJhY2VyaWdodCwJS1NfYnJhY2tldHJpZ2h0
LA0KICAgIEtDKDM5KSwgIEtTX29ncmF2ZSwJCUtTX0NjZWRpbGxhLAlLU19h
dCwNCiAgICBLQyg0MCksICBLU19hZ3JhdmUsCQlLU19kZWdyZWUsCUtTX251
bWJlcnNpZ24sDQogICAgS0MoNDEpLCAgS1NfYmFja3NsYXNoLAlLU19iYXIs
DQogICAgS0MoNDMpLCAgS1NfdWdyYXZlLAkJS1Nfc2VjdGlvbiwNCiAgICBL
Qyg1MSksICBLU19jb21tYSwJCUtTX3NlbWljb2xvbiwNCiAgICBLQyg1Miks
ICBLU19wZXJpb2QsCQlLU19jb2xvbiwNCiAgICBLQyg1MyksICBLU19taW51
cywJCUtTX3VuZGVyc2NvcmUsDQogICAgS0MoODYpLCAgS1NfbGVzcywJCUtT
X2dyZWF0ZXIsDQogICAgS0MoMTg0KSwgS1NfTW9kZV9zd2l0Y2gsCUtTX011
bHRpX2tleSwNCn07DQoNCnN0YXRpYyBjb25zdCBrZXlzeW1fdCBwY2tiZF9r
ZXlkZXNjX3VrW10gPSB7DQovKiAgcG9zICAgICAgbm9ybWFsICAgICAgICAg
ICAgIHNoaWZ0ZWQgICAgICAgICBhbHRnciAgICAgICAgICAgc2hpZnQtYWx0
Z3IgKi8NCiAgICBLQygyKSwgICBLU18xLCAgICAgICAgICAgICAgS1NfZXhj
bGFtLCAgICAgIEtTX3BsdXNtaW51cywgICBLU19leGNsYW1kb3duLA0KICAg
IEtDKDMpLCAgIEtTXzIsICAgICAgICAgICAgICBLU19xdW90ZWRibCwgICAg
S1NfdHdvc3VwZXJpb3IsIEtTX2NlbnQsDQogICAgS0MoNCksICAgS1NfMywg
ICAgICAgICAgICAgIEtTX3N0ZXJsaW5nLCAgICBLU190aHJlZXN1cGVyaW9y
LA0KICAgIEtDKDUpLCAgIEtTXzQsICAgICAgICAgICAgICBLU19kb2xsYXIs
ICAgICAgS1NfYWN1dGUsICAgICAgIEtTX2N1cnJlbmN5LA0KICAgIEtDKDYp
LCAgIEtTXzUsICAgICAgICAgICAgICBLU19wZXJjZW50LCAgICAgS1NfbXUs
ICAgICAgICAgIEtTX3llbiwNCiAgICBLQyg3KSwgICBLU182LCAgICAgICAg
ICAgICAgS1NfYXNjaWljaXJjdW0sIEtTX3BhcmFncmFwaCwNCiAgICBLQyg4
KSwgICBLU183LCAgICAgICAgICAgICAgS1NfYW1wZXJzYW5kLCAgIEtTX3Bl
cmlvZGNlbnRlcmVkLCBLU19icm9rZW5iYXIsDQogICAgS0MoOSksICAgS1Nf
OCwgICAgICAgICAgICAgIEtTX2FzdGVyaXNrLCAgICBLU19jZWRpbGxhLCAg
ICAgS1Nfb3JkZmVtaW5pbmUsDQogICAgS0MoMTApLCAgS1NfOSwgICAgICAg
ICAgICAgIEtTX3BhcmVubGVmdCwgICBLU19vbmVzdXBlcmlvciwgS1NfZGlh
ZXJlc2lzLA0KICAgIEtDKDExKSwgIEtTXzAsICAgICAgICAgICAgICBLU19w
YXJlbnJpZ2h0LCAgS1NfbWFzY3VsaW5lLCAgIEtTX2NvcHlyaWdodCwNCiAg
ICBLQygxMiksICBLU19taW51cywgICAgICAgICAgS1NfdW5kZXJzY29yZSwg
IEtTX2h5cGhlbiwgICAgICBLU19zc2hhcnAsDQogICAgS0MoMTMpLCAgS1Nf
ZXF1YWwsICAgICAgICAgIEtTX3BsdXMsICAgICAgICBLU19vbmVoYWxmLCAg
ICBLU19ndWlsbGVtb3RsZWZ0LA0KICAgIEtDKDQwKSwgIEtTX2Fwb3N0cm9w
aGUsICAgICBLU19hdCwgICAgICAgICAgS1Nfc2VjdGlvbiwgICAgIEtTX0Fn
cmF2ZSwNCiAgICBLQyg0MSksICBLU19ncmF2ZSwgICAgICAgICAgS1NfZ3Jh
dmUsICAgICAgIEtTX2FncmF2ZSwgICAgICBLU19hZ3JhdmUsDQogICAgS0Mo
NDMpLCAgS1NfbnVtYmVyc2lnbiwgICAgIEtTX2FzY2lpdGlsZGUsICBLU19z
dGVybGluZywgICAgS1NfdGhvcm4sDQogICAgS0MoODYpLCAgS1NfYmFja3Ns
YXNoLCAgICAgIEtTX2JhciwgICAgICAgICBLU19VZGlhZXJlc2lzLA0KfTsN
Cg0Kc3RhdGljIGNvbnN0IGtleXN5bV90IHBja2JkX2tleWRlc2NfanBbXSA9
IHsNCi8qICBwb3MgICAgICBub3JtYWwJCXNoaWZ0ZWQJCWFsdGdyCQlzaGlm
dC1hbHRnciAqLw0KICAgIEtDKDMpLCAgIEtTXzIsICAgICAgICAgICAgICBL
U19xdW90ZWRibCwNCiAgICBLQyg3KSwgICBLU182LCAgICAgICAgICAgICAg
S1NfYW1wZXJzYW5kLA0KICAgIEtDKDgpLCAgIEtTXzcsICAgICAgICAgICAg
ICBLU19hcG9zdHJvcGhlLA0KICAgIEtDKDkpLCAgIEtTXzgsICAgICAgICAg
ICAgICBLU19wYXJlbmxlZnQsDQogICAgS0MoMTApLCAgS1NfOSwgICAgICAg
ICAgICAgIEtTX3BhcmVucmlnaHQsDQogICAgS0MoMTEpLCAgS1NfMCwNCiAg
ICBLQygxMiksICBLU19taW51cywgICAgICAgICAgS1NfZXF1YWwsDQogICAg
S0MoMTMpLCAgS1NfYXNjaWljaXJjdW0sICAgIEtTX2FzY2lpdGlsZGUsDQog
ICAgS0MoMjYpLCAgS1NfYXQsICAgICAgICAgICAgIEtTX2dyYXZlLA0KICAg
IEtDKDI3KSwgIEtTX2JyYWNrZXRsZWZ0LCAgICBLU19icmFjZWxlZnQsDQog
ICAgS0MoMzkpLCAgS1Nfc2VtaWNvbG9uLCAgICAgIEtTX3BsdXMsDQogICAg
S0MoNDApLCAgS1NfY29sb24sICAgICAgICAgIEtTX2FzdGVyaXNrLA0KICAg
IEtDKDQxKSwgIEtTX1plbmtha3VfSGFua2FrdSwgLyogcmVwbGFjZSBncmF2
ZS90aWxkZSAqLw0KICAgIEtDKDQzKSwgIEtTX2JyYWNrZXRyaWdodCwgICBL
U19icmFjZXJpZ2h0LA0KICAgIEtDKDExMiksIEtTX0hpcmFnYW5hX0thdGFr
YW5hLA0KICAgIEtDKDExNSksIEtTX2JhY2tzbGFzaCwgICAgICBLU191bmRl
cnNjb3JlLA0KICAgIEtDKDEyMSksIEtTX0hlbmthbiwNCiAgICBLQygxMjMp
LCBLU19NdWhlbmthbiwNCiAgICBLQygxMjUpLCBLU19iYWNrc2xhc2gsICAg
ICAgS1NfYmFyLA0KfTsNCg0Kc3RhdGljIGNvbnN0IGtleXN5bV90IHBja2Jk
X2tleWRlc2NfZXNbXSA9IHsNCi8qICBwb3MgICAgICBub3JtYWwJCXNoaWZ0
ZWQJCWFsdGdyCQlzaGlmdC1hbHRnciAqLw0KICAgIEtDKDIpLCAgIEtTXzEs
CQlLU19leGNsYW0sCUtTX2JhciwNCiAgICBLQygzKSwgICBLU18yLAkJS1Nf
cXVvdGVkYmwsCUtTX2F0LA0KICAgIEtDKDQpLCAgIEtTXzMsCQlLU19wZXJp
b2RjZW50ZXJlZCwgS1NfbnVtYmVyc2lnbiwNCiAgICBLQyg1KSwgICBLU180
LAkJS1NfZG9sbGFyLAlLU19hc2NpaXRpbGRlLA0KICAgIEtDKDcpLCAgIEtT
XzYsCQlLU19hbXBlcnNhbmQsDQogICAgS0MoOCksICAgS1NfNywJCUtTX3Ns
YXNoLA0KICAgIEtDKDkpLCAgIEtTXzgsCQlLU19wYXJlbmxlZnQsDQogICAg
S0MoMTApLCAgS1NfOSwJCUtTX3BhcmVucmlnaHQsDQogICAgS0MoMTEpLCAg
S1NfMCwJCUtTX2VxdWFsLA0KICAgIEtDKDEyKSwgIEtTX2dyYXZlLAkJS1Nf
cXVlc3Rpb24sDQogICAgS0MoMTMpLCAgS1NfZXhjbGFtZG93biwJS1NfcXVl
c3Rpb25kb3duLA0KICAgIEtDKDI2KSwgIEtTX2RlYWRfZ3JhdmUsCUtTX2Rl
YWRfY2lyY3VtZmxleCwgS1NfYnJhY2tldGxlZnQsDQogICAgS0MoMjcpLCAg
S1NfcGx1cywJCUtTX2FzdGVyaXNrLAlLU19icmFja2V0cmlnaHQsDQogICAg
S0MoMzkpLCAgS1NfbnRpbGRlLA0KICAgIEtDKDQwKSwgIEtTX2RlYWRfYWN1
dGUsCUtTX2RlYWRfZGlhZXJlc2lzLCBLU19icmFjZWxlZnQsDQogICAgS0Mo
NDEpLCAgS1NfZGVncmVlLAkJS1Nfb3JkZmVtaW5pbmUsCUtTX2JhY2tzbGFz
aCwNCiAgICBLQyg0MyksICBLU19jY2VkaWxsYSwJS1NfQ2NlZGlsbGEsCUtT
X2JyYWNlcmlnaHQsDQogICAgS0MoNTEpLCAgS1NfY29tbWEsCQlLU19zZW1p
Y29sb24sDQogICAgS0MoNTIpLCAgS1NfcGVyaW9kLAkJS1NfY29sb24sDQog
ICAgS0MoNTMpLCAgS1NfbWludXMsCQlLU191bmRlcnNjb3JlLA0KICAgIEtD
KDg2KSwgIEtTX2xlc3MsCQlLU19ncmVhdGVyLA0KICAgIEtDKDE4NCksIEtT
X01vZGVfc3dpdGNoLAlLU19NdWx0aV9rZXksDQp9Ow0KDQpzdGF0aWMgY29u
c3Qga2V5c3ltX3QgcGNrYmRfa2V5ZGVzY191c19kZWNsa1tdID0gew0KLyog
IHBvcyAgICAgIG5vcm1hbAkJc2hpZnRlZAkJYWx0Z3IJCXNoaWZ0LWFsdGdy
ICovDQogICAgS0MoMSksCUtTX2dyYXZlLAlLU19hc2NpaXRpbGRlLCAvKiBy
ZXBsYWNlIGVzY2FwZSAqLw0KICAgIEtDKDQxKSwJS1NfbGVzcywJS1NfZ3Jl
YXRlciwgLyogcmVwbGFjZSBncmF2ZS90aWxkZSAqLw0KICAgIEtDKDE0Myks
CUtTX011bHRpX2tleSwgLyogbGVmdCBjb21wb3NlICovDQogICAgS0MoMTU3
KSwJS1NfTXVsdGlfa2V5LCAvKiByaWdodCBjb21wb3NlLCByZXBsYWNlIHJp
Z2h0IGNvbnRyb2wgKi8NCiAgICBLQyg4NyksCUtTX0NtZF9EZWJ1Z2dlciwJ
S1NfRXNjYXBlLCAvKiByZXBsYWNlIEYxMSAqLw0KICAgIEtDKDE4OSksCUtT
X2YxMywNCiAgICBLQygxOTApLAlLU19mMTQsDQogICAgS0MoMTkxKSwJS1Nf
SGVscCwNCiAgICBLQygxOTIpLAlLU19FeGVjdXRlLA0KICAgIEtDKDE5Myks
CUtTX2YxNywNCiAgICBLQygxODMpLAlLU19mMTgsDQogICAgS0MoNzApLAlL
U19mMTksIC8qIHJlcGxhY2Ugc2Nyb2xsIGxvY2sgKi8NCiAgICBLQygxMjcp
LAlLU19mMjAsIC8qIHJlcGxhY2UgYnJlYWsgKi8NCiAgICBLQyg2OSksCUtT
X0tQX0YxLCAvKiByZXBsYWNlIG51bSBsb2NrICovDQogICAgS0MoMTgxKSwJ
S1NfS1BfRjIsIC8qIHJlcGxhY2UgZGl2aWRlICovDQogICAgS0MoNTUpLAlL
U19LUF9GMywgLyogcmVwbGFjZSBtdWx0aXBseSAqLw0KICAgIEtDKDc0KSwJ
S1NfS1BfRjQsIC8qIHJlcGxhY2Ugc3VidHJhY3QgKi8NCg0KICAgIC8qIGtl
eXBhZCBpcyBudW1iZXJzIG9ubHkgLSBubyBudW0gbG9jayAqLw0KICAgIEtD
KDcxKSwgCUtTX0tQXzcsDQogICAgS0MoNzIpLCAJS1NfS1BfOCwNCiAgICBL
Qyg3MyksIAlLU19LUF85LA0KICAgIEtDKDc1KSwgCUtTX0tQXzQsDQogICAg
S0MoNzYpLCAJS1NfS1BfNSwNCiAgICBLQyg3NyksIAlLU19LUF82LA0KICAg
IEtDKDc5KSwgCUtTX0tQXzEsDQogICAgS0MoODApLCAJS1NfS1BfMiwNCiAg
ICBLQyg4MSksIAlLU19LUF8zLA0KICAgIEtDKDgyKSwgCUtTX0tQXzAsDQog
ICAgS0MoODMpLCAJS1NfS1BfRGVjaW1hbCwNCg0KICAgIEtDKDIwNiksCUtT
X0tQX1N1YnRyYWN0LA0KICAgIEtDKDc4KSwJS1NfS1BfU2VwYXJhdG9yLCAv
KiByZXBsYWNlIGFkZCAqLw0KICAgIEtDKDE5OSksCUtTX0ZpbmQsIC8qIHJl
cGxhY2UgaG9tZSAqLw0KICAgIEtDKDIwNyksCUtTX1NlbGVjdCwgLyogcmVw
bGFjZSBlbmQgKi8NCn07DQoNCnN0YXRpYyBjb25zdCBrZXlzeW1fdCBwY2ti
ZF9rZXlkZXNjX3VzX2R2b3Jha1tdID0gew0KLyogIHBvcyAgICAgIGNvbW1h
bmQJCW5vcm1hbAkJc2hpZnRlZCAqLw0KICAgIEtDKDEyKSwgCQkJS1NfYnJh
Y2tldGxlZnQsCUtTX2JyYWNlbGVmdCwNCiAgICBLQygxMyksIAkJCUtTX2Jy
YWNrZXRyaWdodCwgS1NfYnJhY2VyaWdodCwNCiAgICBLQygxNiksIAkJCUtT
X2Fwb3N0cm9waGUsIEtTX3F1b3RlZGJsLA0KICAgIEtDKDE3KSwgCQkJS1Nf
Y29tbWEsIEtTX2xlc3MsDQogICAgS0MoMTgpLCAJCQlLU19wZXJpb2QsIEtT
X2dyZWF0ZXIsDQogICAgS0MoMTkpLCAJCQlLU19wLA0KICAgIEtDKDIwKSwg
CQkJS1NfeSwNCiAgICBLQygyMSksIAkJCUtTX2YsDQogICAgS0MoMjIpLCAJ
CQlLU19nLA0KICAgIEtDKDIzKSwgCQkJS1NfYywNCiAgICBLQygyNCksIAkJ
CUtTX3IsDQogICAgS0MoMjUpLCAJCQlLU19sLA0KICAgIEtDKDI2KSwgCQkJ
S1Nfc2xhc2gsIEtTX3F1ZXN0aW9uLA0KICAgIEtDKDI3KSwgCQkJS1NfZXF1
YWwsIEtTX3BsdXMsDQogICAgS0MoMzEpLCAJCQlLU19vLA0KICAgIEtDKDMy
KSwgCQkJS1NfZSwNCiAgICBLQygzMyksIAkJCUtTX3UsDQogICAgS0MoMzQp
LCAJCQlLU19pLA0KICAgIEtDKDM1KSwgCQkJS1NfZCwNCiAgICBLQygzNiks
IAkJCUtTX2gsDQogICAgS0MoMzcpLCAJCQlLU190LA0KICAgIEtDKDM4KSwg
CQkJS1NfbiwNCiAgICBLQygzOSksIAkJCUtTX3MsDQogICAgS0MoNDApLCAJ
CQlLU19taW51cywgS1NfdW5kZXJzY29yZSwNCiAgICBLQyg0NCksIAkJCUtT
X3NlbWljb2xvbiwgS1NfY29sb24sDQogICAgS0MoNDUpLCAJCQlLU19xLA0K
ICAgIEtDKDQ2KSwgCQkJS1NfaiwNCiAgICBLQyg0NyksIAkJCUtTX2ssDQog
ICAgS0MoNDgpLCAJCQlLU194LA0KICAgIEtDKDQ5KSwgCQkJS1NfYiwNCiAg
ICBLQyg1MSksIAkJCUtTX3csDQogICAgS0MoNTIpLCAJCQlLU192LA0KICAg
IEtDKDUzKSwgCQkJS1NfeiwNCn07DQoNCnN0YXRpYyBjb25zdCBrZXlzeW1f
dCBwY2tiZF9rZXlkZXNjX3N3YXBjdHJsY2Fwc1tdID0gew0KLyogIHBvcyAg
ICAgIGNvbW1hbmQJCW5vcm1hbAkJc2hpZnRlZCAqLw0KICAgIEtDKDI5KSwg
CQkJS1NfQ2Fwc19Mb2NrLA0KICAgIEtDKDU4KSwgIEtTX0NtZDEsCQlLU19D
b250cm9sX0wsDQp9Ow0KDQpzdGF0aWMgY29uc3Qga2V5c3ltX3QgcGNrYmRf
a2V5ZGVzY19pb3BlbmVyW10gPSB7DQovKiAgcG9zICAgICAgY29tbWFuZAkJ
bm9ybWFsCQlzaGlmdGVkICovDQogICAgS0MoNTkpLCAgS1NfQ21kX0RlYnVn
Z2VyLAlLU19Fc2NhcGUsDQogICAgS0MoNjApLCAgS1NfQ21kX1NjcmVlbjAs
CUtTX2YxLA0KICAgIEtDKDYxKSwgIEtTX0NtZF9TY3JlZW4xLAlLU19mMiwN
CiAgICBLQyg2MiksICBLU19DbWRfU2NyZWVuMiwJS1NfZjMsDQogICAgS0Mo
NjMpLCAgS1NfQ21kX1NjcmVlbjMsCUtTX2Y0LA0KICAgIEtDKDY0KSwgIEtT
X0NtZF9TY3JlZW40LAlLU19mNSwNCiAgICBLQyg2NSksICBLU19DbWRfU2Ny
ZWVuNSwJS1NfZjYsDQogICAgS0MoNjYpLCAgS1NfQ21kX1NjcmVlbjYsCUtT
X2Y3LA0KICAgIEtDKDY3KSwgIEtTX0NtZF9TY3JlZW43LAlLU19mOCwNCiAg
ICBLQyg2OCksICBLU19DbWRfU2NyZWVuOCwJS1NfZjksDQogICAgS0MoODcp
LCAgS1NfQ21kX1NjcmVlbjksCUtTX2YxMCwNCiAgICBLQyg4OCksIAkJCUtT
X2YxMSwNCn07DQoNCiNkZWZpbmUgS0JEX01BUChuYW1lLCBiYXNlLCBtYXAp
IFwNCgkJCXsgbmFtZSwgYmFzZSwgc2l6ZW9mKG1hcCkvc2l6ZW9mKGtleXN5
bV90KSwgbWFwIH0NCi8qIEtCRF9OVUxMTUFQIGdlbmVyYXRlcyBhIGVudHJ5
IGZvciBtYWNoaW5lIG5hdGl2ZSB2YXJpYW50Lg0KICAgdGhlIGVudHJ5IHdp
bGwgYmUgbW9kaWZpZWQgYnkgbWFjaGluZSBkZXBlbmRlbnQga2V5Ym9hcmQg
ZHJpdmVyLiAqLw0KI2RlZmluZSBLQkRfTlVMTE1BUChuYW1lLCBiYXNlKSB7
IG5hbWUsIGJhc2UsIDAsIDAgfQ0KDQpjb25zdCBzdHJ1Y3Qgd3Njb25zX2tl
eWRlc2MgcGNrYmRfa2V5ZGVzY3RhYltdID0gew0KCUtCRF9NQVAoS0JfVVMs
CQkJMCwJcGNrYmRfa2V5ZGVzY191cyksDQoJS0JEX01BUChLQl9ERSwJCQlL
Ql9VUywJcGNrYmRfa2V5ZGVzY19kZSksDQoJS0JEX01BUChLQl9ERSB8IEtC
X05PREVBRCwJS0JfREUsCXBja2JkX2tleWRlc2NfZGVfbm9kZWFkKSwNCglL
QkRfTUFQKEtCX0ZSLCAgICAgICAgICAgICAgICAgIEtCX1VTLCAgcGNrYmRf
a2V5ZGVzY19mciksDQoJS0JEX01BUChLQl9ESywJCQlLQl9VUywJcGNrYmRf
a2V5ZGVzY19kayksDQoJS0JEX01BUChLQl9ESyB8IEtCX05PREVBRCwJS0Jf
REssCXBja2JkX2tleWRlc2NfZGtfbm9kZWFkKSwNCglLQkRfTUFQKEtCX0lU
LAkJCUtCX1VTLAlwY2tiZF9rZXlkZXNjX2l0KSwNCglLQkRfTUFQKEtCX1VL
LAkJCUtCX1VTLAlwY2tiZF9rZXlkZXNjX3VrKSwNCglLQkRfTUFQKEtCX0pQ
LAkJCUtCX1VTLAlwY2tiZF9rZXlkZXNjX2pwKSwNCglLQkRfTUFQKEtCX1NW
LAkJCUtCX0RLLAlwY2tiZF9rZXlkZXNjX3N2KSwNCglLQkRfTUFQKEtCX1NW
IHwgS0JfTk9ERUFELAlLQl9TViwJcGNrYmRfa2V5ZGVzY19zdl9ub2RlYWQp
LA0KCUtCRF9NQVAoS0JfTk8sCQkJS0JfREssCXBja2JkX2tleWRlc2Nfbm8p
LA0KCUtCRF9NQVAoS0JfTk8gfCBLQl9OT0RFQUQsCUtCX05PLAlwY2tiZF9r
ZXlkZXNjX25vX25vZGVhZCksDQoJS0JEX01BUChLQl9VUyB8IEtCX0RFQ0xL
LAlLQl9VUywJcGNrYmRfa2V5ZGVzY191c19kZWNsayksDQoJS0JEX01BUChL
Ql9VUyB8IEtCX0RWT1JBSywJS0JfVVMsCXBja2JkX2tleWRlc2NfdXNfZHZv
cmFrKSwNCglLQkRfTUFQKEtCX1VTIHwgS0JfU1dBUENUUkxDQVBTLCBLQl9V
UywJcGNrYmRfa2V5ZGVzY19zd2FwY3RybGNhcHMpLA0KCUtCRF9NQVAoS0Jf
VVMgfCBLQl9JT1BFTkVSLCBLQl9VUywJcGNrYmRfa2V5ZGVzY19pb3BlbmVy
KSwNCglLQkRfTUFQKEtCX0pQIHwgS0JfU1dBUENUUkxDQVBTLCBLQl9KUCwg
cGNrYmRfa2V5ZGVzY19zd2FwY3RybGNhcHMpLA0KCUtCRF9NQVAoS0JfRlIg
fCBLQl9TV0FQQ1RSTENBUFMsIEtCX0ZSLCBwY2tiZF9rZXlkZXNjX3N3YXBj
dHJsY2FwcyksDQoJS0JEX01BUChLQl9VUyB8IEtCX0RWT1JBSyB8IEtCX1NX
QVBDVFJMQ0FQUywJS0JfVVMgfCBLQl9EVk9SQUssDQoJCXBja2JkX2tleWRl
c2Nfc3dhcGN0cmxjYXBzKSwNCglLQkRfTUFQKEtCX1VTIHwgS0JfSU9QRU5F
UiB8IEtCX1NXQVBDVFJMQ0FQUywJS0JfVVMgfCBLQl9JT1BFTkVSLA0KCQlw
Y2tiZF9rZXlkZXNjX3N3YXBjdHJsY2FwcyksDQoJS0JEX01BUChLQl9FUyAs
CQkJS0JfVVMsCXBja2JkX2tleWRlc2NfZXMpLA0KCUtCRF9OVUxMTUFQKEtC
X1VTIHwgS0JfTUFDSERFUCwJS0JfVVMpLA0KCUtCRF9OVUxMTUFQKEtCX0pQ
IHwgS0JfTUFDSERFUCwJS0JfSlApLA0KCUtCRF9OVUxMTUFQKEtCX1VTIHwg
S0JfTUFDSERFUCB8IEtCX1NXQVBDVFJMQ0FQUywNCgkJICAgIEtCX1VTIHwg
S0JfU1dBUENUUkxDQVBTKSwNCglLQkRfTlVMTE1BUChLQl9KUCB8IEtCX01B
Q0hERVAgfCBLQl9TV0FQQ1RSTENBUFMsDQoJCSAgICBLQl9KUCB8IEtCX1NX
QVBDVFJMQ0FQUyksDQoJezAsIDAsIDAsIDB9DQp9Ow0KDQojdW5kZWYgS0JE
X01BUA0KI3VuZGVmIEtDDQoNCiNlbmRpZg0KDQo=
---2140140603-1454686984-984661610=:22871--