Open Clean Source

Frank A. Christoph christo@nextsolution.co.jp
Wed, 27 Jan 1999 11:24:26 +0900


Pj4gRWdhZHMsIHlvdSdyZSByaWdodC0tLXRoaW5rIG9mIHRoZSBoYXZvYyBhIG1hZCBwcm9ncmFt
bWVyIGNvdWxkIHdyZWFrIHdpdGggc3VjaCBhIHRvb2wgYXQgaGlzIGNvbW1hbmQhIEl0J3MgPiBt
dWNoIHRvbyBkYW5nZXJvdXMgdG8gaGF2ZSBhIGZ1bmN0aW9uYWwgY29tcGlsZXIgb24gdGhlIGxv
b3NlLiANCj4NCj5JIHN1cHBvc2UgdGhhdCBvbmUgb2YgdGhlIGFkdmFudGFnZXMgb2YgZnVuY3Rp
b25hbCBwcm9ncmFtbWluZyBpcyBzYWZlDQo+Y29kZS4NCj5UaGUgY29kZSB3aWxsIG5vdCBiZSBz
YWZlIGlmIHRoZSBjb21waWxlciBpcyBub3Qgc2FmZS4NCg0KT2YgY291cnNlLiBObyBvbmUgaXMg
Zm9yY2luZyB5b3UgdG8gdXNlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgQ2xlYW4gY29tcGls
ZXIsIGlmIGl0IGV2ZXIgbWF0ZXJpYWxpemVzLg0KDQpCZXNpZGVzLCBob3cgZG8geW91IGtub3cg
dGhlIENsZWFuIGNvbXBpbGVyIGlzICJzYWZlIj8gSG93IGRpZCB5b3Uga25vdyBpdCB3YXMgc2Fm
ZSB0aGUgZmlyc3QgdGltZSB5b3UgdXNlZCBpdD8gV2l0aG91dCBsb29raW5nIGF0IHRoZSBzb3Vy
Y2UsIHlvdSBjYW4gb25seSB0YWtlIHRoZSBDbGVhbiB0ZWFtJ3Mgd29yZCBmb3IgaXQsIGFuZCB0
aGV5IGFyZSBqdXN0IGFzIGZhbGxpYmxlIGFzIGFueW9uZSBlbHNlLg0KDQo+T25lIG9mIHVzIChB
bGV4KSwgd2hvIGlzIHNvZnR3YXJlIEVuZ2luZWVyLCB0aGlua3MgdGhhdCBjb21waWxlciBvbiB0
aGUNCj5sb29zZQ0KPmlzIHZlcnkgZGFuZ2Vyb3VzLiBBbnkgc29mdHdhcmUgaXMgdmVyeSBkYW5n
ZXJvdXMuDQoNCk9LLCB5b3UndmUgY29udmluY2VkIG1lLiBDb25zaWRlcmluZyBob3cgbWFueSBm
cmVlIGNvbXBpbGVycyB0aGVyZSBhcmUgb3V0IHRoZXJlIGFscmVhZHksIEkgZ3Vlc3MgSSdsbCBz
dGFydCBrZWVwaW5nIGEgYmF0IG5lYXIgYnkgZGVzayB0byBzY2FyZSBvZmYgYW55IGx1cmtpbmcg
YmVsbGlnZXJlbnQgc29mdHdhcmUuDQoNCj5MZXQncyBzZWUgdGhlIHBvaW50IG9mIG91ciBsYXN0
IHBvc3RpbmcuIEkgdGhpbmsgdGhhdCB5b3UgZGlkbid0DQo+dW5kZXJzdGFuZCBpdC4NCj5XZSBh
cmUgYWZyYWlkIG9mIENsZWFuIGdvaW5nIHVuc3Vwb3J0ZWQuIElmIHRoZSBDbGVhbiB0ZWFtIGRl
Y2lkZXMgdG8NCj5zdHVkeSB0aGUNCj5wcmUtc29jcmF0aWMgcGhpbG9zb3BoZXJzLCBsaWtlIFNj
aHL2ZGluZ2VyLCB0aGUgdXNlcnMgd2lsbCBub3QgaGF2ZSBhIA0KPmJhY2sgdXAgY2VudGVyIGZv
ciBzdXBwb3J0aW5nLiBXZSBkbyBub3QgdGhpbmsgdGhhdCBvcGVuaW5nIHRoZSBzb3VyY2VzDQo+
d2lsbCBoZWxwIHZlcnkgbXVjaCBpbiBzb2x2aW5nIHRoZSBwcm9ibGVtLiBJdCBpcyB0cnVlOiBX
ZSB3b3VsZCBoYXZlIGENCj5sb3QNCj5vZiB2YXJpYW50cy4gSG93ZXZlciwgd2UgY291bGQgbm90
IHRydXN0IHRoZXNlIHZhcmlhbnRzLiBXZWxsIHRoZXkNCj5jb3VsZCBvcGVuIHRoZSBzb3VyY2Vz
IGZvciBvdGhlciByZWFzb25zLCBidXQgdGhpcyB3b3VsZG4ndCBzb2x2ZQ0KPnRoZSBwcm9ibGVt
IG9mIHN1cHBvcnQgYmFjayB1cC4gQW5hJ3Mgc3VnZ2VzdGlvbiB3YXMgYSB0cmFuc2ZlciBvZg0K
PnRlY2hub2xvZ3kNCj50byBhbm90aGVyIGdyb3VwIG9mIHJlc2VhcmNoZXJzLiBPZiBjb3Vyc2Us
IGl0IHdvdWxkIGJlIG5lY2Vzc2FyeSBzb21lDQo+cXVhbGl0eSBjb250cm9sOiBUaGUgQ2xlYW4g
dGVhbSBzaG91bGQgYW5zd2VyIHRoZSBxdWVzdGlvbnMNCj5vZiB0aGlzIHNlY29uZCBncm91cCwg
Y3JlYXRlIGEgdGVzdCBzdWl0ZSwgZXRjLg0KDQpJdCBzb3VuZHMgdG8gbWUgbGlrZSB5b3Ugd2Fu
dCBhbiBlbmRvcnNlbWVudCBmcm9tIHRoZSBDbGVhbiB0ZWFtIG9mIHNvbWUgZnV0dXJlIGhlaXIu
IEZpbmUuIFRoYXQncyBub3QgaW5jb21wYXRpYmxlIHdpdGggbWFraW5nIHRoZSBzb3VyY2UgYXZh
aWxhYmxlLg0KDQpJbiBmYWN0LCBzaW5jZSB5b3UgYXJlIGNsZWFybHkgYXMgZm9uZCBhcyBJIGFt
IG9mIHNhcmNhc20gYW5kIGZhbnRhc3RpYyBzY2VuYXJpb3MsIGxldCBtZSBpbXByb3ZlIG9uIHlv
dXJzLiAgT25lIGRheSwgUmludXMgUGxhc21laWplciBzdGFydHMgc3R1ZHlpbmcgdGhlIHByZS1T
b2NyYXRpY3MgYW5kIE1hcmtvIHZhbiBFZWtlbGVuIG9wZW5zIGEgbWFydGlhbCBhcnRzIGFjYWRl
bXkuICBOYXR1cmFsbHksIHlvdSB3YW50IHRvIGNvbnRpbnVlIHByb2dyYW1taW5nIGluIENsZWFu
LCBidXQgbm93IHlvdSBoYXZlIG5vd2hlcmUgdG8gdHVybiB0by4gIFNvIHlvdSB0cnkgdG8gY29u
dGFjdCB0aGUgdHdvIHRvIGRpc2NvdmVyIHdobyBpcyB2aXJ0dW91cyBlbm91Z2ggdG8gcmVpZ24g
b3ZlciB0aGUgQ2xlYW4gd29ybGQgaW4gdGhlaXIgcGxhY2UuDQoNCkJ1dCwgYXMgZmF0ZSB3b3Vs
ZCBoYXZlIGl0LCBQbGFzbWVpamVyIGlzIHNvIGVjc3RhdGljIHRvIGdldCBhd2F5IGZyb20gdGhl
IGN1dHRocm9hdCB3b3JsZCBvZiBkZWNsYXJhdGl2ZSBwcm9ncmFtbWluZyBhbmQgdGhlIHRlZW1p
bmcsIHNjaGVtaW5nIGhvYXJkIG9mIGxhd2xlc3MgaGFja2VycyB3aG8gYXJlIGp1c3QgZHlpbmcg
dG8gbW9kaWZ5IHRoZSBIb2x5IENvbXBpbGVyLCB0aGF0IGhpcyB0cmF1bWEgaW5kdWNlcyBoaW0g
dG8gc3dlYXJzIG9mZiBhbnl0aGluZyBtb3JlIHRlY2hub2xvZ2ljYWwgdGhhbiBhIHRvb3RoYnJ1
c2gsIGFuZCBoZSBlbmRzIHVwIHNwZW5kaW5nIHRoZSByZXN0IG9mIGhpcyBsaWZlIGJhYmJsaW5n
IGluY29oZXJlbnRseSBhYm91dCBBbmF4aW1hbmRlcidzIG5vdGlvbiBvZiB0aGUgaW5kZWZpbml0
ZSBpbiBhIGxlYWZ5IGdsYWRlIGluIGEgcmVtb3RlIHBhcnQgb2YgdGhlIFBvIHZhbGxleS4NCg0K
VmFuIEVla2VsZW4sIG9uIHRoZSBvdGhlciBoYW5kLCBkZWNpZGVzIHRoYXQgaGUgd2FudHMgdG8g
Z2V0IHJldmVuZ2Ugb24gdGhvc2UgYmxvb2R5IGhhY2tlcnMuIEhpcyBreW9rdXNoaW4gYWNhZGVt
eSBiZWNvbWVzIHRoZSBtb3N0IHZpb2xlbnQgYW5kIHJ1dGhsZXNzIGJhbmQgb2Yga2lsbGVycyBz
aW5jZSB0aGUgR3JhY2llIGZhbWlseSwgYW5kIGhlIG1ha2VzIGEgbmFtZSBmb3IgaGltc2VsZiBp
biB0aGUgVWx0aW1hdGUgRmlnaHRpbmcgd29ybGQuIEFsYXMsIHZhbiBFZWtlbGVuJ3MgZGVyYW5n
ZWQgYW5kIGJsb29kdGhpcnN0eSBuYXR1cmUgZ2V0cyB0aGUgYmVzdCBvZiBoaW0gaW4gYSB0aXRs
ZSBtYXRjaCBvbmx5IGhvdXJzIGJlZm9yZSB5b3VyIGUtbWFpbCBxdWVyeSBhcnJpdmVzOiBoZSBy
dXNoZXMgaGlzIG9wcG9uZW50IGluIGEgYmxpbmQgZnVyeSwgbmV2ZXIgc2VlaW5nIHRoZSBzdHJh
eSBmaXN0IHRoYXQgc2hhdHRlcnMgaGlzIGxlZnQgdGVtcGxlIGFuZCByZWR1Y2VzIGhpbSB0byBh
IGNhdGF0b25pYyBzdGF0ZSwgZnJvbSB3aGljaCBoZSB3aWxsIG1vc3QgbGlrZWx5IG5ldmVyIGF3
YWtlbjsgZXZlbiBpZiBoZSBkaWQsIGhpcyBicmFpbnMgaGF2ZSBiZWVuIHNvIHNjcmFtYmxlZCB0
aGF0IGhlIHdvdWxkIGJlIGx1Y2t5IHRvIGhhdmUgcmV0YWluZWQgZW5vdWdoIGludGVsbGVjdHVh
bCBjYXBhY2l0eSB0byB0aWUgaGlzIHNob2VsYWNlcywgbXVjaCBsZXNzIHNvbHZlIGEgc3lzdGVt
IG9mIG11dHVhbGx5IHJlY3Vyc2l2ZSBkb21haW4gZXF1YXRpb25zLg0KDQoiT2gsIHRoZSBwYXRo
b3MhIiB5b3UgdGhpbmsuICJUaGF0IEZhdGUgY291bGQgZGVhbCBzdWNoIGEgY3J1ZWwgaGFuZCB0
byB0aGVzZSB0d28gZm9ybWVyIHNoaW5pbmcgaGVyb3Mgb2YgdGhlIGZ1bmN0aW9uYWwgd29ybGQh
IEkgZ3Vlc3MgaXQncyB0cnVlIHdoYXQgdGhleSBzYXkgYWJvdXQgdHJ1dGggYmVpbmcgc3RyYW5n
ZXIgdGhhbiBmaWN0aW9uLi4uIFdlbGwsIG1heWJlIHNvbWVib2R5IGVsc2UgTmlqbWVnZW4gY2Fu
IHRlbGwgdXMgd2hhdCB0byBiZWxpZXZlLi4uIiBTbywgeW91IGNvbnRhY3QgUGV0ZXIgQWNodGVu
LCBKb2huIHZhbiBHcm9uaW5nZW4sIFBpZXRlciBLb29wbWFuIGFuZCBvdGhlcnMuICBCdXQgdGhl
eSBhcmUgc28gZGlzdHJhdWdodCBieSB0aGUgZXZlbnRzIHN1cnJvdW5kaW5nIHRoZSBkZXBhcnR1
cmUgb2YgdGhlaXIgbWVudG9ycyB0aGF0IHRoZXkgdG9vIGxvc2UgYWxsIGludGVyZXN0IGluIHRo
ZSBwcm9qZWN0LCBhbmQgZ28gb2ZmIHRvIHN0dWR5LCB2YXJpb3VzbHksIGNsZWFuIGxpdmluZywg
aW50ZXJpb3IgZGVjb3JhdGluZyBvciB1bmRlcndhdGVyIGJhc2tldC13ZWF2aW5nLg0KDQpBcyBp
dCBoYXBwZW5zLCB0aGVzZSBldmVudHMgdGFrZSBwbGFjZSBkdXJpbmcgYSBwZXJpb2Qgb2YgaGlz
dG9yeSB3aGVuIGZ1bmN0aW9uYWwgbGFuZ3VhZ2VzIGFyZSBpbiBwYXJ0aWN1bGFyIGRpc3JlcHV0
ZSwgbW9zdCBpbXBsZW1lbnRhdGlvbnMgYmVpbmcgc2xvdyBhbmQgdXNlbGVzcywgYW5kIGNvdW50
bGVzcyBoYWxmLWJha2VkIHZhcmlhbnRzIGJyYW5jaGluZyBvZmYgZnJvbSBlYWNoIG9mIHRoZSBt
YWpvciBpbXBsZW1lbnRhdGlvbnMuIEV4Y2VwdCBmb3IgQ2xlYW4gd2hpY2gsIHRoYW5rcyB0byB5
b3VyIGVmZm9ydHMgYW5kIHBlcnN1YXNpb24sIG1hbmFnZWQgbmV2ZXIgdG8gZmxvYXQgYSBzb3Vy
Y2UgZGlzdHJpYnV0aW9uIG9mZiBpbnRvIHRoZSBJbnRlcm5ldCB3aWxkZXJuZXNzLiAgQ2xlYW4g
aXRzZWxmIHN0YW5kcyBvdXQgZm9tIHRoZSBncnVuZ3kgZnVuY3Rpb25hbCBtYXNzZXMgYW5kLCB0
byBhIGNlcnRhaW4gZXh0ZW50LCBuZXV0cmFsaXplcyB0aGUgdm9pY2Ugb2YgZGlzY29udGVudCBh
bmQgdGhlIGFjY3VzYXRpb25zIHRoYXQgYXJlIGxldmVsZWQgYWdhaW5zdCB0aGUgaW5lcHRuZXNz
IG9mIHRoZSBmdW5jdGlvbmFsIGxhbmd1YWdlIGltcGxlbWVudG9ycy4gQnV0IG5vdywgdGhlcmUg
aXMgbm8gbW9yZSBDbGVhbiwgdGhlIENsZWFuIHRlYW0gaXMgZGVhZCBvciBnb25lIG9yIHdpdGxl
c3MsIGFuZCB0aGUgbGF0ZXN0IHZlcnNpb24gaXMgNCB5ZWFycyBvbGQuIFRoZXJlIGlzIG5vIGxv
bmdlciBhIHNoaW5pbmcgZXhhbXBsZSBvZiBkZWNsYXJhdGl2ZSBtaWdodCB0byBzYXZlIHRoZSBm
YWNlIG9mIHRoZSBsZXNzIGNvbXBldGVudCBpbXBsZW1lbnRvcnMsIGFuZCBzbyB0aGUgd29ybGQg
YmVjb21lcyBldmVuIG1vcmUgZ3JpbSBhbmQgaGF0ZWZ1bCBvZiBmdW5jdGlvbmFsIGxhbmd1YWdl
cyBhbmQgcHJvZ3JhbW1lcnMuDQoNCiJZb3UgZGFtbmVkIGZ1bmN0aW9uYWwgcHJvZ3JhbW1lcnMh
IiBzY3JlYW1zIHRoZSBmYWNlIG91dHNpZGUgeW91ciB3aW5kb3cuIEZvciB3ZWVrcyB0aGUgcHJv
dGVzdHMgYnkgdGhlIExlYWd1ZSBvZiB0aGUgSW1wZXJhdGl2ZSBJbXBlcmlhbGlzdHMgaGFzIGNv
bnRpbnVlZCBvdXRzaWRlIHlvdXIgZG9vci4gIldoeSBkb24ndCB5b3UgZ28gYmFjayB3aGVyZSB5
b3UgYmVsb25nISBXZSBkb24ndCB3YW50IHlvdSBoZXJlISIgWW91IHdvbmRlciBpZiB0aGlzIGxh
dGVzdCBtb2Igb2YgYW50aS1mdW5jdGlvbmFsaXN0cyB3aWxsIHR1cm4gdG8gdmlvbGVuY2UuIFRo
ZSBiYW5naW5nIGFuZCB0aHVkZGluZyBvbiB5b3VyIHdhbGxzIGJldHJheXMgdGhlIG51bWJlcnMg
b3V0c2lkZS4gU2hyaWxsIGNyaWVzIG9mICI6PSIgYW5kICJzZXQhIiByaXNlIGZyb20gdGhlIGNy
b3dkLCBzb21lYm9keSBzdGFydHMgYSBjaG9ydXMgb2YgdGhhdCBvbGQgZmF2b3JpdGUgIkkgR290
IE15IFN0YXRlIEFuZCBJJ20gR29ubmEgQ2hhbmdlIEl0IiwgYW5kIHlvdSBodWRkbGUgdG9nZXRo
ZXIgd2l0aCB5b3VyIGZ1bmN0aW9uYWwgY29tcmFkZXMsIGNvbGQgZmVhciB0aWNrbGluZyB5b3Vy
IHNwaW5lLg0KDQpTdWRkZW5seSwgYW4gaWRlYSBvY2N1cnMgdG8geW91LiAgTWF5YmUsIGp1c3Qg
bWF5YmUsIHRoZSBOaWptZWdlbiBhZG1pbmlzdHJhdGlvbiBoYXMgYXNzaWduZWQgYSBuZXcgZ3Jv
dXAgb2YgcGVvcGxlIHRvIHdvcmsgb24gdGhlIENsZWFuIHByb2plY3QuIEl0IHNlZW1zIGEgcmF5
IG9mIGhvcGUgdG8geW91LCBzbyB5b3UgcmVhY2ggZm9yIHRoZSBwaG9uZSBhbmQgY2FsbCB1cCB0
aGUgdW5pdmVyc2l0eS4gQnV0LCBhcyBpdCB0dXJucyBvdXQsIHRoZSBkaXNyZXB1dGUgb2YgZnVu
Y3Rpb25hbCBsYW5ndWFnZXMgaW4gZ2VuZXJhbCBoYXMgZGlzc3VhZGVkIGFueW9uZSBmcm9tIHdh
c3RpbmcgdGhlaXIgdGltZSBvbiBzdWNoIGFuIGFwcGFyZW50bHkgdXNlbGVzcyBpZGVhLg0KDQpB
bmQgc28gdGhlIENsZWFuIHNvdXJjZXMgY29udGludWUgdG8gZ2F0aGVyIGR1c3QgaW4gdGhlIGRl
ZXBlc3QsIGRhcmtlc3QgYmFzZW1lbnQgc3RvcmFnZSByb29tIGF0IE5pam1lZ2VuLiBZb3UgdGhp
bmsgdG8geW91cnNlbGYsICJJZiBvbmx5IHdlIGhhZCBtYWRlIHRoZSBzb3VyY2VzIG9wZW4sIHdh
eSBiYWNrIHdoZW4uLi4gdGhlbiBzb21lb25lIHdvdWxkIGhhdmUgaGFkIHRoZSBvcHRpb24gdG8g
a2VlcCBtYWludGFpbmluZyBpdCwgbWF5YmUgd2UgY291bGQgZXZlbiBoYXZlIGhlbHBlZCBvdXJz
ZWx2ZXMuLi4gb3IgdGhlIG90aGVyIGZ1bmN0aW9uYWwgY29tcGlsZXJzIGNvdWxkIGhhdmUgYmVu
ZWZpdHRlZCBmcm9tIHRoZSBpZGVhcyBhbmQgaW1wcm92ZWQgdGhlaXIgb3duIHBlcmZvcm1hbmNl
IGFuZCB0aGlzIHRlcnJpYmxlIHRpZGUgb2YgZGlzY29udGVudCBjb3VsZCBoYXZlIGJlZW4gYXZl
cnRlZC4uLiEiIEEgaGVhdnkgc2lnaCBvZiByZW1vcnNlIGVzY2FwZXMgeW91ciBsaXBzLCBidXQg
c3VkZGVubHkgeW91IHJlYWxpemUgdGhhdCBvbmUgb2YgdGhlIG1vYiBoYWQgaGlzIGVhciBwcmVz
c2VkIHRvIHlvdXIgd2luZG93LiBIZSBvdmVyaGVhcmQgeW91IQ0KDQoiSGV5IGd1eXMhIEkganVz
dCBoZWFyZCB0aGlzIG9uZSBzYXlpbmcgc29tZXRoaW5nIGFib3V0IG9wZW4gc291cmNlISBEaWQg
eW91IGhlYXIgbWU/ISBUaGF0J3MgcmlnaHQtLS10aGV5J3JlIG5vdCBqdXN0IGZ1bmN0aW9uYWwg
cHJvZ3JhbW1lcnMtLS10aGV5J3JlIGZyaWdnaW4nIGNvbW11bmlzdHMgdG9vISBMZXQncyBnZXQg
J2VtISIgQSBtYXNzaXZlIHJvYXIgb2YgaWdub3JhbnQgaWxsIHdpbGwgZXNjYXBlcyB0aGUgY3Jv
d2QsIGFuZCB0aGUgd2FsbHMgb2YgeW91ciBvZmZpY2UsIGFscmVhZHkgc2h1ZGRlcmluZyBmcm9t
IHRoZSBwcmVzcyBvZiBib2RpZXMgYWdhaW5zdCBpdCBvdXRzaWRlLCBzdGFydCB0byBjcmFjayBh
bmQgY3J1bWJsZS4uLg0KDQo+PiBCZXNpZGVzICh1c2luZyB5b3VyIGFuYWxvZ3kgd2l0aCBIYXNr
ZWxsKSwgYWxsIHRoZSBIYXNrZWxsIGNvbXBpbGVycyANCj4+IGhhdmUgb3BlbiBzb3VyY2UgYW5k
IHlvdSBkb24ndCBzZWUgYSBiYWtlcidzIGRvemVuIG9mIGhhbGYtYmFrZWQgDQo+PiBIYXNrZWxs
IHZhcmlhbnRzIHBvcHBpbmcgdXAgYWxsIG92ZXIgdGhlIHBsYWNlLCBkbyB5b3U/DQo+DQo+SSB3
b3VsZCBub3Qgc2F5IGEgZG96ZW4sIGJ1dCBJIGhhdmUgc2VlbiB0aGluZ3MgbGlrZSBOZWFybHkg
YSBIYXNrZWxsDQo+Y29tcGlsZXIsDQo+R2FtbWEgSGFza2VsbCwgZXRjLiBBbnkgd2F5LCB0aGUg
R0hDIGl0c2VsZiBsb29rcyBsaWtlIGhhbGYtYmFrZWQuDQoNClByb2dyYW1zIGxpa2UgTkhDIGFy
ZSByZXNlYXJjaCBpbXBsZW1lbnRhdGlvbnMgKGFsdGhvdWdoIEkgdGhpbmsgTkhDIGlzIHN1aXRh
YmxlIGZvciByZWFsIHVzZSBpZiB5b3UgbmVlZCBhIHNtYWxsIG1lbW9yeSBmb290cHJpbnQgbW9y
ZSB0aGFuIHRpbWUgcGVyZm9ybWFuY2UpLiBUaGV5IGFyZW4ndCBjcmVhdGVkIHdpbGx5LW5pbGx5
IGFuZCB0aGVuIHNldCBsb29zZSBvbiB0aGUgdW5zdXNwZWN0aW5nIHByb2dyYW1taW5nIHB1Ymxp
YyBpbiBvcmRlciB0byBmb29sIHRoZW0gaW50byB0aGlua2luZyB0aGF0IHRoZXkgYXJlIGZ1bGwg
b3IgZmFpdGhmdWwgaW1wbGVtZW50YXRpb25zIG9mIEhhc2tlbGwuIEV4cGVyaW1lbnRhdGlvbiBn
ZXRzIGRvbmUgYnkgY3JlYXRpbmcgaW1wbGVtZW50YXRpb25zIHRoYXQgZW1waGFzaXplIG9uZSBh
c3BlY3Qgb3IgYW5vdGhlciwgb3IgZXh0ZW5kIHRoZSBsYW5ndWFnZSB3aXRoIHNvbWUgc2V0IG9m
IGZlYXR1cmVzLCBhbmQgdGhlbiBldmFsdWF0aW5nIHRoZW0gYW5kIHB1Ymxpc2hpbmcgdGhlIHJl
c3VsdHMuIFRoYXQncyBob3cgdGVjaG5vbG9neSBldm9sdmVzLg0KDQpBcyBmb3IgR0hDLCBoYXZp
bmcgYmF0dGxlZCB3aXRoIHRoZSBzb3VyY2VzIG9uIG1vcmUgdGhhbiBhIGZldyBvY2Nhc2lvbnMg
bXlzZWxmLCBJIHdpbGwgYmUgdGhlIGZpcnN0IHRvIGFkbWl0IHRoYXQgaXQgY2FuIGJlIGEgYml0
Y2ggdG8gY29tcGlsZS4gQnV0LCBvbmNlIHlvdSBjb21waWxlIGl0LCBpdCBpcyBlYXN5IHRvIHVz
ZSBhbmQgcmVsaWFibGUuIFlvdSBzYWlkIHlvdXJzZWxmIHRoYXQgeW91IHRob3VnaHQgaXQgd2Fz
IHZlcnkgZmFzdC4gQmVzaWRlcywgaGF2aW5nIG5ldmVyIGNvbXBpbGVkIHRoZSBDbGVhbiBjb21w
aWxlciB5b3Vyc2VsZiwgeW91IGFyZSBoYXJkbHkgaW4gYSBwb3NpdGlvbiB0byB0aHJvdyBzdG9u
ZXMuIE5vIG9uZSBmb3JjZXMgeW91IHRvIGNvbXBpbGUgR0hDOyB0aGVyZSBhcmUgYmluYXJ5IHBh
Y2thZ2VzIGF2YWlsYWJsZSwgYW5kIHRoZXkgaW5zdGFsbCBqdXN0IGFzIGVhc2lseSBhcyBDbGVh
biBkb2VzIChhdCBsZWFzdCBvbiBVTklYKS4NCg0KPj4gSG1tLCBtYXliZSB5b3UganVzdCBkb24n
dCBoYXZlIG11Y2ggZmFpdGggaW4gdGhlIG1vcmFsIGZvcnRpdHVkZSANCj4+IG9mIHRoZSBDbGVh
biB1c2VyIHBvcHVsYXRpb24uLi4/DQo+DQo+Tm8sIHdlIGRvbid0ISBIb3dldmVyLCB3ZSBjb3Vs
ZG4ndCBjYXJlIGxlc3MgaWYgaHVuZHJlZHMgb2YgcGVvcGxlDQo+d291bGQgcHJvZHVjZSB0aGVp
ciBDbGVhbiBjb21waWxlcnMuIFdoYXQgaXMgbmVjZXNzYXJ5IGlzIHRvIGhhdmUNCj5hIHRydXN0
eSBzdXBwb3J0IGJhY2sgdXAuDQoNClNvIHlvdSdyZSBzYXlpbmcgdGhhdCBpdCdzIGEgY29tcGxl
dGVseSBvcnRob2dvbmFsIGlzc3VlLi4uIHVoLCB3aGF0IHdlcmUgd2UgYXJndWluZyBhYm91dD8N
Cg0KPlRoZSBmaXJzdCB0aW1lIHdlIG9wZW5lZCB0aGUgQ2xlYW4gcGFnZXMsIHRoZXJlIHdhcyBh
IG5vdGUNCj5zYXlpbmcgdGhhdCB0aGV5IGRvbid0IGhhdmUgYW4gYXV0b21hdGljIGRpc3RyaWJ1
dGlvbiBvZiBzb3VyY2VzDQo+Zm9yIG9idmlvdXMgcmVhc29ucyAoSSBkb24ndCBrbm93IHdoYXQg
YXJlIHRoZXNlIG9idmlvdXMNCj5yZWFzb25zLCBidXQgSSBoYXZlIG15IHN1c3BpdGlvbnMpLiBI
b3dldmVyLCB0aGV5IGNvdWxkIGdpdmUNCj50aGUgc291cmNlcyBpZiB5b3UgaGF2ZSBhIGdvb2Qg
cmVhc29uIHRvIGhhdmUgdGhlbSAobGlrZQ0KPnBvcnRpbmcgdGhlbSB0byBhIG5ldyBtYWNoaW5l
KS4gRG8geW91IHJlbWVtYmVyIHRoYXQ/DQo+V2UgdGhpbmsgdGhhdCBnaXZpbmcgYXdheSB0aGUg
c291cmNlcyB3aXRob3V0IGZ1cnRoZXINCj5leHBsYW5hdGlvbnMgd29uJ3QgaGVscCBpbiBjcmVh
dGluZyBhIGJhY2sgdXAgc3VwcG9ydC4NCj5JdCBzZWVtcyB0byB1cyB0aGF0LCBjaG9vc2luZyB0
d28gb3IgdGhyZWUgc21hbGwgZ3JvdXBzIGFuZA0KPnRyYW5zZmVyaW5nIHRoZSBjb21waWxlciAi
dGVjaG5vbG9neSIgdG8gdGhlbSBpcyBlYXNpZXIgdGhhbg0KPnRyeWluZyB0byBleHBsYWluIHRo
ZSBzb3VyY2UgdG8gZXZlcnlib2R5Lg0KDQpZb3UncmUgcmlnaHQgdGhhdCBvcGVuaW5nIHRoZSBz
b3VyY2VzIHdvbid0IGd1YXJhbnRlZSBhbnkgdGhpcmQtcGFydHkgc3VwcG9ydC4gQnV0IGl0IGVu
c3VyZXMgdGhhdCBzb21lb25lIGFsd2F5cyBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvIHByb3ZpZGUg
dGhhdCBzdXBwb3J0LCBhbmQgaXQgZG9lcyBub3RoaW5nIHRvIHByZXZlbnQgaXQuIFdoZXRoZXIg
dGhlIENsZWFuIHRlYW0gZW5kb3JzZXMgc29tZSBwYXJ0aWN1bGFyIGdyb3VwIG9mIGRldmVsb3Bl
cnMgb3Igc3VwcG9ydC1wcm92aWRlcnMgaXMgaXJyZWxldmFudCB0byB0aGUgb3BlbiBzb3VyY2Ug
aXNzdWUuDQoNCi0tRkMNCg0K