[#97063] [Ruby master Bug#16608] ConditionVariable#wait should return false when timeout exceeded — shugo@...

Issue #16608 has been reported by shugo (Shugo Maeda).

10 messages 2020/02/05

[#97084] [Ruby master Feature#16614] New method cache mechanism for Guild — ko1@...

Issue #16614 has been reported by ko1 (Koichi Sasada).

18 messages 2020/02/07

[#97248] [Ruby master Bug#16651] Extensions Do Not Compile on Mingw64 — cfis@...

Issue #16651 has been reported by cfis (Charlie Savage).

17 messages 2020/02/24

[#97289] [Ruby master Bug#16658] `method__cache__clear` DTrace hook was dropped without replacement — v.ondruch@...

Issue #16658 has been reported by vo.x (Vit Ondruch).

9 messages 2020/02/27

[#97307] [Ruby master Feature#16663] Add block or filtered forms of Kernel#caller to allow early bail-out — headius@...

Issue #16663 has been reported by headius (Charles Nutter).

29 messages 2020/02/28

[#97310] [Ruby master Feature#16665] Add an Array#except_index method — alexandr1golubenko@...

Issue #16665 has been reported by alex_golubenko (Alex Golubenko).

12 messages 2020/02/29

[ruby-core:97150] [Ruby master Feature#16511] Staged warnings and better compatibility for keyword arguments in 2.7.1

From: daniel@...42.com
Date: 2020-02-13 03:48:37 UTC
List: ruby-core #97150
SXNzdWUgIzE2NTExIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp
Lg0KDQoNCj4gSSdkIGd1ZXNzIGl0J3MgZmFpcmx5IHVuY29tbW9uIHRvIGNhbGwgYSBtZXRob2Qg
bm90IGFjY2VwdGluZyBrZXl3b3JkIGFyZ3VtZW50cyB3aXRoIGAqKmAuDQoNCk1heWJlLCB3aG8g
a25vd3MuIEknZCByYXRoZXIgbm90IG1ha2UgYXNzdW1wdGlvbnMgb24gd2hhdCBpcyAidW5jb21t
b24iLg0KDQo+IENvdWxkIHlvdSBzaG93IGEgdGVudGF0aXZlIHRpbWVsaW5lIGZvciB5b3VyIHBy
b3Bvc2FsPw0KPiBJLmUuLCB3aGVuIGVhY2ggZGVwcmVjYXRpb24gaXMgaW50cm9kdWNlZCBhbmQg
d2hlbiBiZWhhdmlvciBpcyBjaGFuZ2VkLg0KDQpPaywgZmFpciBlbm91Z2guIFRoZSBtZXRob2Rz
IGFuZCB0YWJsZSBiZWxvdyBzaG91bGQgY292ZXIgYWxsIHBvc3NpYmxlIHdhcm5pbmdzIGFuZCBl
cnJvcnMuDQoNCmBgYHJ1YnkNCmRlZiBmb28obGVhZCwgb3B0PW5pbCwgazpuaWwpDQogIHtsZWFk
OiBsZWFkLCBvcHQ6IG9wdCwgazoga30NCmVuZA0KZGVmIGJhcihsZWFkLCBvcHQ9bmlsLCAqKmt3
KQ0KICB7bGVhZDogbGVhZCwgb3B0OiBvcHQsIGt3OiBrd30NCmVuZA0KZGVmIGRlbGVnKG0sICpy
ZXN0KQ0KICBzZW5kKG0sICpyZXN0KQ0KZW5kDQpgYGANCg0KfCBtZXRob2QgY2FsbCAgICAgICAg
ICAgIHwgMi42IC8gMi43IHJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIuNyAg
ICAgIHwgMy4wIHRvIDMuMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMy4zIHRv
IDMuNCAoMi43IGlzIGVvbCkgfCAzLjUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
d2FybmluZyBtZXNzYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfA0KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tfA0KfCBmb28oazoxKSAgICAgICAgICAgICAgIHwgezpsZWFkPT57Oms9
PjF9LCA6b3B0PT5uaWwsIDprPT5uaWx9ICAgICAgICB8IHdhcm5pbmfiiJcgfCB3YXJuaW5n4oiX
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHdhcm5pbmcgICAgICAgICAgICAg
ICAgIHwgZXJyb3I6IHdyb25nIG51bWJlciBvZiBhcmd1bWVudHMgICB8IFBhc3NpbmcgdGhlIGtl
eXdvcmQgYXJndW1lbnQgYXMgdGhlIGxhc3QgaGFzaCBwYXJhbWV0ZXIgaXMgZGVwcmVjYXRlZCAg
ICAgICAgICAgIHwNCnwgYmFyKGs6MSkgICAgICAgICAgICAgICB8IHs6bGVhZD0+ezprPT4xfSwg
Om9wdD0+bmlsLCA6a3c9Pnt9fSAgICAgICAgfCB3YXJuaW5n4oiXIHwgd2FybmluZ+KIlyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3YXJuaW5nICAgICAgICAgICAgICAgICB8
IGVycm9yOiB3cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzICAgfCBQYXNzaW5nIHRoZSBrZXl3b3Jk
IGFyZ3VtZW50IGFzIHRoZSBsYXN0IGhhc2ggcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQgICAgICAg
ICAgICB8DQp8IGZvbygxLCAiYSI9PjIpICAgICAgICAgfCB7OmxlYWQ9PjEsIDpvcHQ9PnsiYSI9
PjJ9LCA6az0+bmlsfSAgICAgICAgIHwgd2FybmluZ+KIlyB8IHdhcm5pbmfiiJcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgd2FybmluZyAgICAgICAgICAgICAgICAgfCBlcnJv
cjogd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyAgIHwgUGFzc2luZyB0aGUga2V5d29yZCBhcmd1
bWVudCBhcyB0aGUgbGFzdCBoYXNoIHBhcmFtZXRlciBpcyBkZXByZWNhdGVkICAgICAgICAgICAg
fA0KfCBiYXIoMSwgImEiPT4yKSAgICAgICAgIHwgezpsZWFkPT4xLCA6b3B0PT5uaWwsIDprdz0+
eyJhIj0+Mn19ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfCBmb28o
MSwgImEiPT4yLCBrOjMpICAgIHwgezpsZWFkPT4xLCA6b3B0PT57ImEiPT4yfSwgOms9PjN9ICAg
ICAgICAgICB8IHdhcm5pbmcgIHwgZXJyb3I6IHdyb25nIG51bWJlciBvZiBhcmd1bWVudHMgICAg
ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgU3BsaXR0aW5nIHRoZSBsYXN0IGFyZ3VtZW50IGludG8gcG9zaXRpb25h
bCBhbmQga2V5d29yZCBwYXJhbWV0ZXJzIGlzIGRlcHJlY2F0ZWQgfA0KfCBiYXIoMSwgImEiPT4y
LCBrOjMpICAgIHwgezpsZWFkPT4xLCA6b3B0PT5uaWwsIDprdz0+eyJhIj0+MiwgOms9PjN9fSB8
ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KfCBmb28oMSwgeyJhIj0+MiwgazozfSkg
IHwgezpsZWFkPT4xLCA6b3B0PT57ImEiPT4yfSwgOms9PjN9ICAgICAgICAgICB8IHdhcm5pbmcg
IHwgezpsZWFkPT4xLCA6b3B0PT57ImEiPT4yLCA6az0+M30sIDprPT5uaWx9IHwgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3Bs
aXR0aW5nIHRoZSBsYXN0IGFyZ3VtZW50IGludG8gcG9zaXRpb25hbCBhbmQga2V5d29yZCBwYXJh
bWV0ZXJzIGlzIGRlcHJlY2F0ZWQgfA0KfCBiYXIoMSwgeyJhIj0+MiwgazozfSkgIHwgezpsZWFk
PT4xLCA6b3B0PT57ImEiPT4yfSwgOmt3PT57Oms9PjN9fSAgICB8IHdhcm5pbmcgIHwgezpsZWFk
PT4xLCA6b3B0PT57ImEiPT4yLCA6az0+M30sIDprPT5uaWx9IHwgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU3BsaXR0aW5nIHRo
ZSBsYXN0IGFyZ3VtZW50IGludG8gcG9zaXRpb25hbCBhbmQga2V5d29yZCBwYXJhbWV0ZXJzIGlz
IGRlcHJlY2F0ZWQgfA0KfCBmb28oMSwge2s6Mn0pICAgICAgICAgIHwgezpsZWFkPT4xLCA6b3B0
PT5uaWwsIDprPT4yfSAgICAgICAgICAgICAgICB8IHdhcm5pbmcgIHwgezpsZWFkPT4xLCA6b3B0
PT57Oms9PjJ9LCA6az0+bmlsfSAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVXNpbmcgdGhlIGxhc3QgYXJndW1l
bnQgYXMga2V5d29yZCBwYXJhbWV0ZXJzIGlzIGRlcHJlY2F0ZWQgICAgICAgICAgICAgICAgICAg
ICAgfA0KfCBmb28oMSwgMiwge2s6M30pICAgICAgIHwgezpsZWFkPT4xLCA6b3B0PT4yLCA6az0+
M30gICAgICAgICAgICAgICAgICB8IHdhcm5pbmfiiJcgfCB3YXJuaW5n4oiXICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IHdhcm5pbmcgICAgICAgICAgICAgICAgIHwgZXJyb3I6
IHdyb25nIG51bWJlciBvZiBhcmd1bWVudHMgICB8IFVzaW5nIHRoZSBsYXN0IGFyZ3VtZW50IGFz
IGtleXdvcmQgcGFyYW1ldGVycyBpcyBkZXByZWNhdGVkICAgICAgICAgICAgICAgICAgICAgIHwN
CnwgZGVsZWcoOmZvbywgMSwgazoyKSAgICB8IHs6bGVhZD0+MSwgOm9wdD0+bmlsLCA6az0+Mn0g
ICAgICAgICAgICAgICAgfCAgICAgICAgICB8IG9wdC1pbiB3YXJuaW5n4oiXICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgd2FybmluZyAgICAgICAgICAgICAgICAgfCB7OmxlYWQ9PjEsIDpv
cHQ9Pns6az0+Mn0sIDprPT5uaWx9IHwgVXNpbmcgdGhlIGxhc3QgYXJndW1lbnQgYXMga2V5d29y
ZCBwYXJhbWV0ZXJzIGlzIGRlcHJlY2F0ZWQgICAgICAgICAgICAgICAgICAgICAgfA0KfCBkZWxl
Zyg6Zm9vLCAxLCAyLCBrOjMpIHwgezpsZWFkPT4xLCA6b3B0PT4yLCA6az0+M30gICAgICAgICAg
ICAgICAgICB8ICAgICAgICAgIHwgb3B0LWluIHdhcm5pbmfiiJcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCB3YXJuaW5nICAgICAgICAgICAgICAgICB8IGVycm9yOiB3cm9uZyBudW1iZXIg
b2YgYXJndW1lbnRzICAgfCBVc2luZyB0aGUgbGFzdCBhcmd1bWVudCBhcyBrZXl3b3JkIHBhcmFt
ZXRlcnMgaXMgZGVwcmVjYXRlZCAgICAgICAgICAgICAgICAgICAgICB8DQoNCkJsYW5rIGNlbGxz
IG1lYW4gdGhlcmUncyBubyBjaGFuZ2UgZnJvbSB0aGUgcHJldmlvdXMgdmVyc2lvbi4NCndhcm5p
bmfiiJcgbWVhbnMgdGhlcmUncyBhIHdhcm5pbmcgZXhjZXB0IGlmIGl0IGNvbWVzIGZyb20gYSBn
ZW0gKGZyb20gYSBmaWxlIGluIEdlbTo6UlVCWUdFTVNfRElSKQ0Kb3B0LWluIHdhcm5pbmcgaXMg
Zm9yIHBlb3BsZSB3aG8gd2FudCB0byBzdG9wIHN1cHBvcnRpbmcgcnVieSAyLnggYmVmb3JlIDIu
NyBlb2wuDQoNCj4gVHJlYXRpbmcgYXMga2V5d29yZHMgZXZlbiBmb3IgYGZvbyhoKWAgaWYgYGhg
IGlzIGZsYWdnZWQgc2VlbXMgbGlrZSBpdCB3b3VsZCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRo
ZSBjaGFuY2UgdG8gbm90IGJlaGF2ZSBhcyBpbnRlbmRlZCwgYXMgSmVyZW15IHNob3dlZC4NCj4g
Q29uc2lkZXJpbmcgbWluaW11bSBhcml0eSBsaWtlIGluIGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu
b3JnL2lzc3Vlcy8xNjUxMSNub3RlLTggd291bGQgSU1ITyBicmVha3MgdGhlIHNlcGFyYXRpb24g
YW5kIGFkZCBhIG5ldyBleGNlcHRpb25hbCBjYXNlLg0KPiBJdCdzIGxpa2VseSB0byBhbHNvIGJl
IHZlcnkgYnJpdHRsZSBpZiB0aGVyZSBhcmUgbm9uLXJlcXVpcmVkIGFyZ3VtZW50cy4NCg0KSSdt
IG5vdCBzdXJlIHdoYXQgeW91IGNvbnNpZGVyIGFzICJpbnRlbmRlZCIgYmVoYXZpb3IsIGJ1dCBm
b3IgbWUgaXQgbWVhbnMgdGhhdA0KMSkgcG9zaXRpb25hbCBoYXNoIHNob3VsZCBub3QgYmUgY29u
dmVydGVkIHRvIGtleXdvcmRzOyANCjIpIGtleXdvcmRzIHNob3VsZCBiZSBub3QgYmUgY29udmVy
dGVkIHRvIHBvc2l0aW9uYWwgaGFzaCAoZXhjZXB0IGZvciBwb3NpdGlvbmFsLW9ubHkgbWV0aG9k
cyk7DQozKSBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kLCBkZWxlZ2F0aW9uIHNob3VsZCB3
b3JrIGZvciBrZXl3b3JkcyBldmVuIGlmIG5vdCB1c2luZyBgKiprd3Jlc3RgOw0KNCkgZXZlcnl0
aGluZyBlbHNlIHNob3VsZCBjb250aW51ZSB3b3JraW5nIGFzIGl0IHdvcmtlZCBpbiB0aGUgcGFz
dC4NCg0KU2luY2UgdGhlIGJlaGF2aW9yIG9mIGEgZmxhZ2dlZCBoYXNoIGluIDIuNyBpcyBfZXhh
Y3RseV8gbGlrZSBhbnkgaGFzaCBpbiAyLjYsIHRoZSBjb21wYXRpYmlsaXR5IGZvciB0aGF0IGNh
c2UgaXMgMTAwJS4gQXQgbGVhc3QgZm9yIG5vdywgYnV0IGl0IHdvdWxkIHN0aWxsIHdhcm4gaW4g
My4zLiBBbmQgY29uc2lkZXJpbmcgbWluaW11bSBhcml0eSBpcyBzb21ldGhpbmcgdGhhdCB3YXMg
X2FscmVhZHlfIGJlaW5nIGRvbmUgaW4gMi42LCBzbyBpdCdzIG5vdCBzb21lIG5ldyBleGNlcHRp
b25hbCBjYXNlLiBBbmQgaXQgd291bGQgc3RpbGwgc2hvdyBhIHdhcm5pbmcsIHNvIGl0J3Mgbm90
IGJyZWFraW5nIHNlcGFyYXRpb24uIFRoZXJlJ3Mgbm90aGluZyBicml0dGxlIGluIHRoZXJlOyB3
b3VsZCB5b3UgY2FyZSB0byBlbGFib3JhdGU/DQoNCj4gV291bGQgc3VjaCBiZWhhdmlvciBiZSBl
dmVudHVhbGx5IHJlbW92ZWQgaW4geW91ciBwcm9wb3NhbD8gUGVyZm9ybWFuY2Utd2lzZSBpdCBs
aWtlbHkgaGFzIHNvbWUgY29zdCBhcyBpdCBjYXVzZXMgZXh0cmEgY2hlY2tzLg0KDQpZZXMsIGl0
IHdvdWxkIGJlIHJlbW92ZWQuIEl0J3Mgc29tZXdoYXQgZXF1aXZhbGVudCB0byBydWJ5Ml9rZXl3
b3JkcyBieSBkZWZhdWx0IGJ1dCBtb3JlIGNvbXByZWhlbnNpdmUuIFBlcmZvcm1hbmNlLXdpc2Ug
aXQncyB2ZXJ5IHVubGlrZWx5IHRvIGhhdmUgYSBtZWFzdXJhYmxlIGNvc3QsIGJhc2VkIG9uIHRo
ZSBjb2RlIEkndmUgc2VlbiBpbiB2bV9hcmdzLmMNCg0KPiBUaGUgYHJ1YnkyX2tleXdvcmRzYCBy
dWxlIHRvIG9ubHkgY29uc2lkZXIgYCphcmdzYCBpcyBhIHZlcnkgcHJlY2lzZSB3YXkgdG8gZGV0
ZWN0IGRlbGVnYXRpb24gaW4gUnVieS4NCj4gRm9yIHRoYXQgcmVhc29uIEkgdGhpbmsgaXQncyB2
YWx1YWJsZSB0byBvbmx5IGhhdmUgc3BlY2lhbCBiZWhhdmlvciBmb3IgdGhhdCBjYXNlLCBhbmQg
b25seSB1bnRpbCB3ZSBjYW4gc2FmZWx5IG1pZ3JhdGUgdG8gYCgqYXJncywgKiprd2FyZ3MpYC1k
ZWxlZ2F0aW9uLg0KDQpJdCdzIGFjdHVhbGx5IG5vdCB0aGF0IHByZWNpc2UuIEkgdGhpbmsgdGhp
cyBpcyBKZXJlbXkncyBtYWluIHdvcnJ5IGFib3V0IHJ1YnkyX2tleXdvcmRzIGJ5IGRlZmF1bHQs
IHRoYXQgYCphcmdzYCBpcyBub3QgYWx3YXlzIHVzZWQgb25seSBmb3IgZGVsZWdhdGlvbi4NCg0K
PiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5IGZyb20gdGhlIGZpcnN0IHBvc3QsIHlvdXIgcHJv
cG9zYWwgaGFzIG1vcmUgc3RlcHMgdGhhbiBtaW5lLg0KDQpObywgaXQgaGFzIHRoZSBzYW1lIG51
bWJlciBvZiBzdGVwcywgaXQncyBqdXN0IG1vcmUgbGVuaWVudCBhYm91dCB0aGluZ3MgdGhhdCB3
ZSBjYW4gYWZmb3JkIHRvIGJlIGxlbmllbnQgYWJvdXQuIFRoZSAiU3RlcHMiIGluIHRoZSBwcm9w
b3NhbCBhcmUgb25seSBjb25jZXB0dWFsIHN0ZXBzLCBpbiBvcmRlciB0byBleHBsYWluIHRoZSBs
b2dpYy4gSXQncyBzdGlsbCBvbmUgcm91bmQgb2YgZGVwcmVjYXRpb25zIGluIDIuNyAoU3RlcHMg
MS0zKSBhbmQgYW5vdGhlciBpbiAzLndhcm4gKFN0ZXAgNCkuIEFuZCBmb3IgZW5kLXVzZXJzIGl0
IGJvaWxzIGRvd24gdG8gdGhlIHNhbWUgdGhpbmc6IGlmIHlvdSBzZWUgYSB3YXJuaW5nLCBmaXgg
aXQuIFRoZXJlJ3MganVzdCBmZXdlciB3YXJuaW5ncyB0byBmaXggYXQgb25jZS4NCg0KDQo+ID4g
RGVzdHJ1Y3R1cmluZyBpdGVyYXRpb24gaXMgY29tcGF0aWJsZQ0KPiANCj4gVGhhdCB3b3VsZCBv
bmx5IHdvcmsgaW4gdmVyeSBmZXcgY2FzZXMuDQo+IFRoYXQncyBhbiBhYnVzZSBvZiB0aGUgYXV0
b21hdGljIGNvbnZlcnNpb24sIGxldCdzIGtpbGwgaXQsIHRoZXJlIGlzIG5vIHdheSB0byBwcmVz
ZXJ2ZSBpdCB3aXRob3V0IGJyZWFraW5nIHRoZSBzZXBhcmF0aW9uLg0KDQpJIGRpc2FncmVlIHRo
aXMgaXMgYWJ1c2l2ZSBvciBoYWNreSBjb2RlLiBBbHRob3VnaCBJIG5ldmVyIHVzZWQgaXQgYmVm
b3JlLCBteSBmaXJzdCBpbXByZXNzaW9uIHdhcyBvZiBhIHZlcnkgY2xlYW4gYW5kIHBvd2VyZnVs
IGlkaW9tLiAjMTY0OTQgb25seSBzaG93ZWQgYSBgd29yZHNgIGFycmF5IHNvIEkgZG9uJ3Qga25v
dyBob3cgaXQgd2FzIGJ1aWx0LiBQZXJoYXBzIG5laXRoZXIgb2YgeW91ciBgSlNPTi5sb2FkYCBv
ciBgWyoqaDEsICoqaDJdYCBleGFtcGxlcyBpcyByZWxldmFudC4gV2hhdCdzIGltcG9ydGFudCB0
aG91Z2ggaXMgdGhhdCBpdCBfY2FuXyBiZSBtYWRlIHRvIHdvcmsgcXVpdGUgZWFzaWx5LCB3aXRo
b3V0IGhhdmluZyB0byByZXN0cnVjdHVyZSBldmVyeXRoaW5nLiBBbmQgc2luY2UgaXQgYmVoYXZl
cyBkaWZmZXJlbnRseSBiYXNlZCBvbiBoYXZpbmcgYSBwb3NpdGlvbmFsIGhhc2ggb3IgYSBrZXl3
b3JkIChmbGFnZ2VkKSBoYXNoLCB0aGF0IG1lYW5zIHNlcGFyYXRpb24gaXMgcHJlc2VydmVkLCBh
dCBsZWFzdCB0byBzb21lIGV4dGVudC4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxNjUxMTogU3RhZ2VkIHdhcm5pbmdzIGFuZCBiZXR0ZXIg
Y29tcGF0aWJpbGl0eSBmb3Iga2V5d29yZCBhcmd1bWVudHMgaW4gMi43LjENCmh0dHBzOi8vYnVn
cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjUxMSNjaGFuZ2UtODQyNTMNCg0KKiBBdXRob3I6IERh
bjAwNDIgKERhbmllbCBEZUxvcm1lKQ0KKiBTdGF0dXM6IE9wZW4NCiogUHJpb3JpdHk6IE5vcm1h
bA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQXMgYW4gYWx0ZXJu
YXRpdmUgdG8gIzE2NDYzIGFuZCAjMTY0OTQgSSdkIGxpa2UgdG8gcHJvcG9zZSB0aGlzIGFwcHJv
YWNoLCB3aGljaCBJIGJlbGlldmUgYWxsb3dzIGEgKiptdWNoKiogbW9yZSBmbGV4aWJsZSBwYXRo
IGZvciBtaWdyYXRpb24gb2Yga2V5d29yZCBhcmd1bWVudHMuDQoNClRoZSBpZGVhIGlzIHRvIGlu
ZGljYXRlIGZvciBldmVyeSBIYXNoIG9iamVjdCBpZiBpdCdzIGludGVuZGVkIHRvIHJlcHJlc2Vu
dCBhIF9rZXl3b3JkXyBoYXNoIG9yIGEgX2RhdGFfIGhhc2guIFRoaXMgZXh0cmEgaW5mb3JtYXRp
b24gaXMgdGhlbiB1c2VkIHRvIGdlbmVyYXRlIG1vcmUgZ3JhbnVsYXIgd2FybmluZ3MgZGVwZW5k
aW5nIG9uIGEgdXNlcidzIGNvbXBhdGliaWxpdHkgbmVlZHMuDQoNClRoZSAia2V5d29yZG5lc3Mi
IG9mIGEgaGFzaCB3b3VsZCBiZSBpbmRpY2F0ZWQgYnkgYSAqKmZsYWcqKiBvbiB0aGUgSGFzaCBv
YmplY3Q7IHRoaXMgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBpbiAyLjcgYW5kIGlzIHRoZSBhcHBy
b2FjaCBmYXZvcmVkIGJ5IE1hdHouIExldCdzIGNhbGwgdGhpcyBmbGFnZ2VkIGhhc2ggYSAiS3dI
YXNoIiwgYW5kIGEgbm9uLWZsYWdnZWQgaGFzaCBpcyBqdXN0IGEgIkhhc2giLiBOb3RlOiB0aGlz
IGNvdWxkIGFsc28gYmUgaW1wbGVtZW50ZWQgdmlhIGEgKipzdWJjbGFzcyoqIG9mIEhhc2ggKEkg
cGVyc29uYWxseSBmYXZvciB0aGlzIG9iamVjdC1vcmllbnRlZCBhcHByb2FjaCkgd2hpY2ggd2Fz
IHRoZSBvcmlnaW5hbCBpZGVhIGluIHRoaXMgcHJvcG9zYWwuDQoNCkknbGwgdHJ5IHRvIGRlc2Ny
aWJlIHRoZSBpZGVhIGluIGRldGFpbCBieSBicmVha2luZyBpdCBkb3duIGludG8gZmlndXJhdGl2
ZSBzdGVwcy4gKFNraXAgdG8gIlB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyIiBmb3IgdGhlIFRMO0RS
IHZlcnNpb24uKSBJbWFnaW5lIHN0YXJ0aW5nIHdpdGggcnVieSAyLjYgYW5kIHRoZW46DQoNCiMj
IyBTdGVwIDENCg0KV2hlbiBhIGRvdWJsZS1zcGxhdCBvciBhIGJyYWNlLWxlc3MgaGFzaCBpcyB1
c2VkLCBpbnN0ZWFkIG9mIGEgSGFzaCBpdCBjcmVhdGVzIGEgS3dIYXNoLg0KDQpgYGBydWJ5DQpk
ZWYgZm9vKHgpIHggZW5kDQpmb28oazoxKS5jbGFzcyAgICAgICM9PiBLd0hhc2gNCmZvbygqKmhh
c2gpLmNsYXNzICAgIz0+IEt3SGFzaA0KW2s6MV0ubGFzdC5jbGFzcyAgICAjPT4gS3dIYXNoDQpb
KipoYXNoXS5sYXN0LmNsYXNzICM9PiBLd0hhc2gNCnsqKmhhc2h9LmNsYXNzICAgICAgIz0+IEhh
c2gNCmBgYA0KDQpBdCB0aGlzIHBvaW50IHdlIGhhdmVuJ3QgaW50cm9kdWNlZCBhbnkgcmVhbCBj
aGFuZ2UuIEV2ZXJ5dGhpbmcgdGhhdCB3b3JrZWQgYmVmb3JlIGlzIHN0aWxsIHdvcmtpbmcgdGhl
IHNhbWUgd2F5Lg0KKFdpdGggYSBtaW5vciBleGNlcHRpb24gaWYgdXNpbmcgdGhlIHN1YmNsYXNz
IGFwcHJvYWNoOiB1bnVzdWFsIGNvZGUgbGlrZSBga3cuY2xhc3MgPT0gSGFzaGAgd291bGQgbm93
IHJldHVybiBmYWxzZS4pDQoNCiMjIyBTdGVwIDINCg0KV2hlbiB0aGVyZSBpcyBhbWJpZ3VpdHkg
ZHVlIHRvIG9wdGlvbmFsIHZzIGtleXdvcmQgYXJndW1lbnQsIHdlIHJlbHkgb24gdGhlIGxhc3Qg
YXJndW1lbnQgYmVpbmcgSGFzaCBvciBLd0hhc2ggdG8gZGlzYW1iaWd1YXRlLg0KDQpgYGBydWJ5
DQpkZWYgZm9vKHg9bmlsLCAqKmt3KQ0KICBbeCxrd10NCmVuZA0KZm9vKHtrOjF9KSAjPT4gW3tr
OjF9LHt9XQ0KZm9vKGs6MSkgICAjPT4gW25pbCx7azoxfV0NCmBgYA0KDQpUaGlzIGlzIHRoZSBf
bWluaW11bV8gYW1vdW50IG9mIGluY29tcGF0aWJpbGl0eSByZXF1aXJlZCB0byBzb2x2ZSBBTEwg
YnVncyBwcmV2aW91c2x5IHJlcG9ydGVkIHdpdGgga2V5d29yZCBhcmd1bWVudHMuICgjODA0MCwg
IzgzMTYsICM5ODk4LCAjMTA4NTYsICMxMTIzNiwgIzExOTY3LCAjMTIxMDQsICMxMjcxNywgIzEy
ODIxLCAjMTMzMzYsICMxMzY0NywgIzE0MTMwLCBldGMuKSANCg0KVGhlIHdhcm5pbmdzIGZvciB0
aGlzIHdvdWxkIGJlIGFib3V0IGFuIGltcGVuZGluZyBfY2hhbmdlIG9mIGJlaGF2aW9yXyBpbiB0
aGUgX25leHQgcnVieSB2ZXJzaW9uXywgd2hlcmUgYGZvbyh7azoxfSlgIGlzIG5vIGxvbmdlciBp
bnRlcnByZXRlZCBhcyBrZXl3b3JkIGFyZ3VtZW50Lg0KDQojIyMgU3RlcCAzDQoNCkludHJvZHVj
ZSBhZGRpdGlvbmFsIGluY29tcGF0aWJpbGl0eSB0byBpbXByb3ZlIGNsYXJpdHkgb2YgZGVzaWdu
LiBIZXJlIHdlIGRlcHJlY2F0ZSB0aGUgYXV0b21hdGljIGNvbnZlcnNpb24gb2YgSGFzaCB0byBr
ZXl3b3JkIGFyZ3VtZW50OyBvbmx5IEt3SGFzaCBpcyBhY2NlcHRlZC4gV2l0aCBhIGRlcHJlY2F0
aW9uL3dhcm5pbmcgcGhhc2UsIG9mIGNvdXJzZS4gVGhlICJhdXRvbWF0aWMiIHByb21vdGlvbiBv
ZiBhIEt3SGFzaCB0byBhIGtleXdvcmQgYXJndW1lbnQgZm9sbG93cyB0aGUgc2FtZSBydWxlcyBh
cyBhIEhhc2ggaW4gMi42OyBzaW5jZSB0aGUgS3dIYXNoIGlzIGNvbmNlcHR1YWxseSBpbnRlbmRl
ZCB0byByZXByZXNlbnQga2V5d29yZCBhcmd1bWVudHMsIHRoaXMgY29udmVyc2lvbiBtYWtlcyBz
ZW5zZSBpbiBhIHdheSB0aGF0IGEgbm9ybWFsIGRhdGEgSGFzaCBkb2Vzbid0LiBXZSd2ZSB0YWtl
biB0aGUgImxhc3QgcG9zaXRpb25hbCBoYXNoIiBjb25jZXB0IGFuZCBzcGxpdCBpdCBpbnRvICJj
b25jZXB0dWFsbHkgYSBoYXNoIiBhbmQgImNvbmNlcHR1YWxseSBrZXl3b3JkIGFyZ3VtZW50cyIu
IF9Nb3N0IGltcG9ydGFudGx5XywgYWxsIHRoZSBjaGFuZ2VzIHJlcXVpcmVkIHRvIHNpbGVuY2Ug
dGhlc2Ugd2FybmluZ3MgYXJlIF9jb21wYXRpYmxlIHdpdGggMi42Xy4NCg0KYGBgcnVieQ0KZGVm
IGZvbyh4LCAqKmt3KTsgZW5kDQpmb28oazoxKSAgICAgICMgQXJndW1lbnRFcnJvciBiZWNhdXNl
IHggbm90IHNwZWNpZmllZA0KZm9vKDEsIHtrOjF9KSAjIEFyZ3VtZW50RXJyb3IgYmVjYXVzZSB0
b28gbWFueSBhcmd1bWVudHM7IEhhc2ggY2Fubm90IGJlIGNvbnZlcnRlZCB0byBLd0hhc2hzDQpv
cHRzID0gW2s6MV0uZmlyc3QNCmZvbyhvcHRzKSAgICAgIyBvcHRzIGlzIGEgS3dIYXNoIHRoZXJl
Zm9yZSB1c2VkIGFzIGtleXdvcmQgYXJndW1lbnQ7IEFyZ3VtZW50RXJyb3IgYmVjYXVzZSB4IG5v
dCBzcGVjaWZpZWQNCmZvbygxLCBvcHRzKSAgIyBvcHRzIGlzIGEgS3dIYXNoIHRoZXJlZm9yZSB1
c2VkIGFzIGtleXdvcmQgYXJndW1lbnQNCmBgYA0KDQpUaGUgd2FybmluZ3MgZm9yIHRoaXMgd291
bGQgYmUgYWJvdXQgdXBjb21pbmcgX2Vycm9yc18gZm9yIHBvc2l0aW9uYWwgYXJndW1lbnRzOiBg
Zm9vKHg6MSlgIHdpbGwgYmUgImdpdmVuIDAsIGV4cGVjdGVkIDEiIGFuZCBgZm9vKDEse3g6Mn0p
YCB3aWxsIGJlICJnaXZlbiAyLCBleHBlY3RlZCAxIi4gU3VjaCBlcnJvcnMgYXJlIHVzZWZ1bCB3
aGVuIGRldmVsb3BpbmcsIGJ1dCB0aGVyZSBpcyBubyBuZXcgZnVuY3Rpb25hbGl0eSBwZXIgc2Us
IGp1c3QgYSBzdHJpY3RlciBzeW50YXguIFNvIGl0J3MgbGVzcyBpbXBvcnRhbnQgdG8gZXNjYWxh
dGUgdG8gYW4gZXJyb3IgYW5kIHdlIGNhbiBrZWVwIHRoZSB3YXJuaW5ncyBmb3IgbG9uZ2VyIHRo
YW4gU3RlcCAyLg0KDQpBdCB0aGlzIHBvaW50IHdlIGhhdmUgYWNoaWV2ZWQgX2FsbW9zdC1mdWxs
XyAqKmR5bmFtaWMqKiBrZXl3b3JkIHNlcGFyYXRpb24sIGFzIG9wcG9zZWQgdG8gdGhlIGN1cnJl
bnQgX2FsbW9zdC1mdWxsXyAqKnN0YXRpYyoqIGFwcHJvYWNoLiBJIHdhbnQgdG8gbWFrZSB0aGUg
cG9pbnQgaGVyZSB0aGF0LCB5ZXMsIGtleXdvcmQgYXJndW1lbnRzICoqYXJlKiogc2VwYXJhdGVk
LCBpdCdzIGp1c3QgYSBkaWZmZXJlbnQgcGFyYWRpZ20uIFdpdGggc3RhdGljIHNlcGFyYXRpb24s
IGEga2V5d29yZCBhcmd1bWVudCBpcyBkZWZpbmVkIGxleGljYWxseSBieSBhIGRvdWJsZS1zcGxh
dC4gV2l0aCBkeW5hbWljIHNlcGFyYXRpb24sIGEga2V5d29yZCBhcmd1bWVudCBpcyB3aGVuIHRo
ZSBsYXN0IGFyZ3VtZW50IGlzIGEgS3dIYXNoLiB7e05vdGU6IEknbSBzYXlpbmcgImFsbW9zdC1m
dWxsIiBiZWNhdXNlIEt3SGFzaCBpcyBub3QgcHJvbW90ZWQgdG8ga2V5d29yZHMgaW4gYGRlZiBm
b28oYSwqKmt3KTtlbmQ7Zm9vKHg6MSlgIGFuZCBiZWNhdXNlIHN0YXRpYyBrZXl3b3JkcyBhcmUg
YXV0by1kZW1vdGVkIHRvIHBvc2l0aW9uYWwgaW4gYGRlZiBmb28oYSk7ZW5kO2Zvbyh4OjEpYH19
DQoNCkFueSBmb3JtIG9mIGRlbGVnYXRpb24gd29ya3Mgd2l0aCBubyBjaGFuZ2UgcmVxdWlyZWQu
IFRoaXMgcHJlc2VydmVzIHRoZSBiZWhhdmlvciBvZiAyLjYgYnV0IG9ubHkgZm9yIEt3SGFzaCBv
YmplY3RzLiBUaGlzIGlzIHNpbWlsYXIgdG8gaGF2aW5nIDIuNyB3aXRoIGBydWJ5Ml9rZXl3b3Jk
c2AgZW5hYmxlZCBieSBkZWZhdWx0LiBCdXQgYWxzbyBkaWZmZXJlbnQgaW4gc29tZSB3YXlzOyBt
b3N0IG5vdGFibHkgaXQgYWxsb3dzIHRoZSBjYXNlIHNob3duIGluICMxNjQ5NCB0byB3b3JrIGJ5
IGRlZmF1bHQ6DQoNCmBgYHJ1YnkNCmFycmF5ID0gW3g6MV0NCmFycmF5LnB1c2goeDoyKQ0KYXJy
YXkubWFweyB8eDp8IHggfSAjPT4gWzEsMl0NClt7eDozfV0ubWFweyB8eDp8IHggfSAjPT4gYnV0
IHRoaXMgd2FybnMsIGFzIGl0IHNob3VsZA0KYGBgDQoNClRoZSBjdXJyZW50IGFwcHJvYWNoIGRv
ZXMgbm90IGFsbG93IHRoaXMgdG8gd29yayBhdCBhbGwuIFRoZSBzb2x1dGlvbiBwcm9wb3NlZCBp
biAjMTY0OTQgaGFzIGFsbCB0aGUgc2FtZSBmbGF3cyBhcyBIYXNoLWJhc2VkIGtleXdvcmQgYXJn
dW1lbnRzOyB3aGF0IGhhcHBlbnMgdG8gYGVhY2h7IHx4PW5pbCwqKmt3fCB9YCA/IFRoaXMgc29s
dXRpb24gYWxsb3dzIGEgS3dIYXNoIHRvIGJlIGNvbnZlcnRlZCB0by4uLiBrZXl3b3Jkcy4gVmVy
eSB1bnN1cnByaXNpbmcuDQoNCkdpdmVuIHRoYXQgcnVieSBpcyBhIGR5bmFtaWNhbGx5LXR5cGVk
IGxhbmd1YWdlIEkgZmVlbCB0aGF0IGR5bmFtaWMgdHlwaW5nIG9mIGtleXdvcmRzIGlmIGEgbW9y
ZSBuYXR1cmFsIGZpdCB0aGFuIHN0YXRpYyB0eXBpbmcuIEJ1dCBJIHJlYWxpemUgdGhhdCBtYW55
IGRpc2FncmVlIHdpdGggdGhhdCwgd2hpY2ggaXMgd2h5IHdlIGNvbnRpbnVlIHRvLi4uDQoNCiMj
IyBTdGVwIDQNCg0KSW50cm9kdWNlIGFkZGl0aW9uYWwgaW5jb21wYXRpYmlsaXR5IHRvIHJlYWNo
IHN0YXRpYy9sZXhpY2FsIHNlcGFyYXRpb24gb2Yga2V5d29yZCBhcmd1bWVudHMuIEhlcmUgd2Ug
cmVxdWlyZSB0aGF0IGV2ZW4gYSBLd0hhc2ggc2hvdWxkIGJlIHBhc3NlZCB3aXRoIGEgZG91Ymxl
LXNwbGF0IGluIG9yZGVyIHRvIHF1YWxpZnkgYXMgYSBrZXl3b3JkIGFyZ3VtZW50Lg0KDQpgYGBy
dWJ5DQpkZWYgYmFyKCoqa3cpDQplbmQNCmRlZiBmb28oKiprdykNCiAgYmFyKGt3KSAgICM9PiBl
cnJvcjsgS3dIYXNoIHBhc3NlZCB3aXRob3V0ICoqDQogIGJhcigqKmt3KSAjPT4gb2sNCmVuZA0K
YGBgDQoNCkF0IHRoaXMgcG9pbnQgd2UndmUgcmVhY2hlZCB0aGUgc2FtZSBiZWhhdmlvciBhcyAy
LjcuIERlbGVnYXRpb24gbmVlZHMgdG8gYmUgZml4ZWQsIGJ1dCBhcyB3ZSBrbm93IHRoZSBjaGFu
Z2VzIHJlcXVpcmVkIHRvIHNpbGVuY2UgdGhlc2Ugd2FybmluZ3MgYXJlICoqbm90KiogY29tcGF0
aWJsZSB3aXRoIDIuNiBvciAyLjcuIFRoZSB3YXJuaW5ncyBmb3IgdGhpcyBhcmUgX2Z1bmRhbWVu
dGFsbHkgbm90IGZpeGFibGVfIGFzIGxvbmcgYXMgU3RlcCAyIGhhcyBub3QgYmVlbiBmaXhlZC4g
VGhpcyBpcyB0aGUgY29yZSByZWFzb24gd2h5IGBydWJ5Ml9rZXl3b3Jkc2AgaXMgY3VycmVudGx5
IG5lY2Vzc2FyeSBpbiAyLjcuIFNvIGluIHRoZSB2ZXJzaW9uIGFmdGVyIDIuNyB3ZSBjYW4gZW5h
YmxlIHRoZXNlIHdhcm5pbmdzIGJ5IGRlZmF1bHQgc2luY2UgaXQncyBub3cgcG9zc2libGUgdG8g
Zml4IGRlbGVnYXRpb24gdG8gdXNlIHN0YXRpYyBrZXl3b3Jkcy4gRXhjZXB0IHRoYXQgZ2VtIGF1
dGhvcnMgd2hvIG5lZWQgdG8gc3RheSBjb21wYXRpYmxlIHdpdGgg4omkMi43IGNhbm5vdCB5ZXQg
bWFrZSB0aGVzZSBjaGFuZ2VzLCBzbyB3ZSBpbnRyb2R1Y2UgYSB3YXkgdG8gX3NpbGVuY2UgKipv
bmx5KiogdGhlc2UgIlN0ZXAgNCIgd2FybmluZ3NfLCBmb3IgcGVvcGxlIHdobyBuZWVkIHRvIHJl
bWFpbiBjb21wYXRpYmxlIHdpdGgg4omkMi43LiBBbmQgd2Uga2VlcCB0aGVtIGFzIHdhcm5pbmdz
IGluc3RlYWQgb2YgZXJyb3JzIHVudGlsIHJ1YnkgMi43IGlzIEVPTC4NCg0KU28gaW5zdGVhZCBv
ZiBoYXZpbmcgdG8gdXBkYXRlIGEgYnVuY2ggb2YgcGxhY2VzIHdpdGggYHJ1YnkyX2tleXdvcmRz
YCBqdXN0IHRvIHRlbXBvcmFyaWx5IHNpbGVuY2Ugd2FybmluZ3MsIGl0J3MgYSBzaW5nbGUgZmxh
ZyBsaWtlIGBXYXJuaW5nWzpydWJ5M19rZXl3b3Jkc11gLiBPbmNlIHJ1YnkgMi43IGlzIEVPTCB0
aGVzZSBiZWNvbWUgY29udHJvbGxlZCBieSBgV2FybmluZ1s6ZGVwcmVjYXRlZF1gIHdoaWNoIHRl
bGxzIHBlb3BsZSB0aGV5ICoqaGF2ZSoqIHRvIGZpeCB0aGVpciBjb2RlLiBXaGljaCBpcyBqdXN0
IGxpa2UgdGhlIGV2ZW50dWFsIGRlcHJlY2F0aW9uIG9mIGBydWJ5Ml9rZXl3b3Jkc2AsIGp1c3Qg
d2l0aG91dCB0aGUgYnVzeSB3b3JrIG9mIGFkZGluZyBgcnVieTJfa2V5d29yZHNgIHN0YXRlbWVu
dHMgaW4gdGhlIGZpcnN0IHBsYWNlLiBCdXQgYWdhaW4sIHRoaXMgaW50cm9kdWNlcyBubyBuZXcg
ZnVuY3Rpb25hbGl0eSwganVzdCBhIHN0cmljdGVyIHN5bnRheC4gU28gd2UgY2FuIHBsYXkgbmlj
ZSBhbmQgbGVhdmUgdGhlIHdhcm5pbmdzIGZvciBhIGZldyB5ZWFycyBiZWZvcmUgY2hhbmdpbmcg
dG8gZXJyb3JzLg0KDQpUaGUgcXVlc3Rpb24gcmVtYWlucyBvZiBob3cgdG8gaGFuZGxlICMxNjQ5
NCBoZXJlLiBFaXRoZXIgZGlzYWxsb3cgaXQgZW50aXJlbHksIGJ1dCBJIHRoaW5rIHRoYXQgd291
bGQgYmUgYSBzaGFtZS4gT3IganVzdCBsaWtlICMxNjQ5NCBzdWdnZXN0cywgYWxsb3cgaGFzaCB1
bnBhY2tpbmcgaW4gbm9uLWxhbWJkYSBQcm9jLiBFeGNlcHQgdGhhdCBub3cgaXQgY2FuIGJlIGEg
S3dIYXNoIGluc3RlYWQgb2YgYSBIYXNoLCB3aGljaCBhdCBsZWFzdCBwcmVzZXJ2ZXMgZHluYW1p
YyBrZXl3b3JkIHNlcGFyYXRpb24uDQoNCiMjIFB1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyIChUTDtE
UikNCg0KVGhlIGlkZWEgaXMgX25vdF8gdG8gcmVpbXBsZW1lbnQga2V5d29yZCBhcmd1bWVudCBz
ZXBhcmF0aW9uOyBhbGwgdGhhdCBpcyBuZWVkZWQgaXMgdG8gaW1wbGVtZW50IHRoZSB0aGluZ3Mg
YWJvdmUgdGhhdCBhcmUgbm90IGluIDIuNzoNCiogQ3JlYXRlIGEgS3dIYXNoIG9iamVjdCBmb3Ig
YnJhY2UtbGVzcyBhbmQgZG91YmxlLXNwbGF0dGVkIGhhc2hlcy4NCiogRGlmZmVyZW50aWF0ZSB0
aGUgdmFyaW91cyB0eXBlcyBvZiB3YXJuaW5ncyBhbmQgYWxsb3cgdG8gdG9nZ2xlIG9uL29mZiBz
ZXBhcmF0ZWx5DQogICogU3RlcCAyIHdhcm5pbmdzIF9tdXN0XyBiZSBmaXhlZCBub3c7IGNhbm5v
dCB0b2dnbGUgb2ZmDQogICogU3RlcCAzIHdhcm5pbmdzIF9zaG91bGRfIGJlIGZpeGVkIG5vdyBi
dXQgeW91IGRvbid0IGFic29sdXRlbHkgbmVlZCB0byB1cGdyYWRlIHlvdXIgZ2VtcyBqdXN0IGZv
ciB0aGF0DQogICogU3RlcCA0IHdhcm5pbmdzIF9zaG91bGRfIGJlIGZpeGVkIGluIG5leHQgdmVy
c2lvbiB1bmxlc3MgeW91IG5lZWQgdG8gc3VwcG9ydCDiiaQyLjcNCg0KSSB0aGluayB0aGF0J3Mg
YWxsLCByZWFsbHkuLi4NCg0KIyMjIFByb3MNCiogQ2xlYW5lciB3YXkgdG8gc29sdmUgIzE2NDk0
DQoqIEJldHRlciBjb21wYXRpYmlsaXR5IChhdCBsZWFzdCB1bnRpbCAyLjYgaXMgRU9MKQ0KICAg
KiBkZWxlZ2F0aW9uDQogICAqIHN0b3JpbmcgYW4gYXJndW1lbnQgbGlzdCB0aGF0IGVuZHMgd2l0
aCBhIEt3SGFzaA0KICAgKiBkZXN0cnVjdHVyaW5nIGl0ZXJhdGlvbiAoIzE2NDk0KQ0KKiBXZSBj
YW4gYXZvaWQgdGhlICJ1bmZvcnR1bmF0ZSBjb3JuZXIgY2FzZSIgYXMgZGVzY3JpYmVkIGluIHRo
ZSBbcmVsZWFzZSBub3Rlc10oaHR0cHM6Ly93d3cucnVieS1sYW5nLm9yZy9lbi9uZXdzLzIwMTkv
MTIvMTIvc2VwYXJhdGlvbi1vZi1wb3NpdGlvbmFsLWFuZC1rZXl3b3JkLWFyZ3VtZW50cy1pbi1y
dWJ5LTMtMC8pDQogICAqIGluIDIuNyBvbmx5IGRvIG5vdCBvdXRwdXQgIlN0ZXAgNCIgd2Fybmlu
Z3MsIGxlYXZlIGRlbGVnYXRpb24gbGlrZSBpdCB3YXMNCiAgICogaW4gMi44IHRoZSAiU3RlcCAz
IiB3YXJuaW5ncyBoYXZlIGJlZW4gZml4ZWQgYW5kIGEgSGFzaCB3aWxsIG5vdCBiZSBjb252ZXJ0
ZWQgdG8ga2V5d29yZCBhcmd1bWVudHMNCiAgICogZGVsZWdhdGlvbiBjYW4gbm93IHNhZmVseSBi
ZSBmaXhlZCB0byB1c2UgdGhlIGAqKmAgc3ludGF4DQoqIHJ1YnkyX2tleXdvcmRzIGlzIG5vdCBy
ZXF1aXJlZCwgd2hpY2ggaXMgZGVzaXJhYmxlIGJlY2F1c2UNCiAgICogaXQncyBhIGhpZGRlbiBm
bGFnIF9oYWNrXw0KICAgKiBpdCByZXF1aXJlcyB0byBjaGFuZ2UgdGhlIGNvZGUgbm93LCBhbmQg
Y2hhbmdlIGl0IF9hZ2Fpbl8gd2hlbiBydWJ5Ml9rZXl3b3JkcyBpcyBkZXByZWNhdGVkOyB0d2lj
ZSB0aGUgd29yazsgdHdpY2UgdGhlIGdlbSB1cGdyYWRlcw0KICAgKiBpdCB3YXMgc3VwcG9zZWQg
dG8gYmUgdXNlZCBvbmx5IGZvciBwZW9wbGUgd2hvIG5lZWQgdG8gc3VwcG9ydCAyLjYgb3IgYmVs
b3csIGJ1dCBpdCdzIGJlaW5nIG1pc3VuZGVyc3Rvb2QgYXMgYW4gYWNjZXB0YWJsZSB3YXkgdG8g
Zml4IGRlbGVnYXRpb24gaW4gZ2VuZXJhbA0KICAgKiB0aGVyZSdzIHRoZSBub24temVybyByaXNr
IHRoYXQgcnVieTJfa2V5d29yZHMgd2lsbCBuZXZlciBiZSByZW1vdmVkLCBsZWF2aW5nIHVzIHdp
dGggYSBwZXJtYW5lbnQgImhhY2sgbW9kZSINCiAgICAgICogZHluYW1pYyBrZXl3b3JkcyBhcmUg
YnkgZmFyIHByZWZlcmFibGUgdG8gc3VwcG9ydGluZyBydWJ5Ml9rZXl3b3JkcyBmb3JldmVyDQoq
IExpa2VseSBfYmV0dGVyIHBlcmZvcm1hbmNlXywgYXMgdGhlIEt3SGFzaCBjbGFzcyBjYW4gYmUg
b3B0aW1pemVkIHNwZWNpZmljYWxseSBmb3IgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiBrZXl3b3Jk
IGFyZ3VtZW50cy4NCiogTW9yZSBmbGV4aWJsZSBtaWdyYXRpb24NCiAgICogQWxsb3cgbW9yZSB0
aW1lIHRvIHVwZ3JhZGUgdGhlIGhhcmQgc3R1ZmYgaW4gU3RlcCA0DQogICAqIENhbiByZWFjaCB0
aGUgX3NhbWVfIGdvYWwgYXMgdGhlIGN1cnJlbnQgc3RhdGljIGFwcHJvYWNoDQogICAqIExhcmdl
ciAic3VwcG9ydCB6b25lIiBodHRwczovL3hrY2QuY29tLzIyMjQvDQogICAqIEluc3RlYWQgb2Yg
d2lkZS1yYW5naW5nIGluY29tcGF0aWJpbGl0aWVzIGFsbCBhdCBvbmNlLCB0aGVyZSdzIHRoZSBf
cG9zc2liaWxpdHlfIG9mIG1ha2luZyBpdCBmaW5lci1ncmFpbmVkIGFuZCBtb3JlIGdyYWR1YWwN
CiAgICAgICogcnVieWlzdHMgY2FuIF9jaG9vc2VfIHRvIG1pZ3JhdGUgYWxsIGF0IG9uY2Ugb3Ig
aW4gc21hbGxlciBjaHVua3MNCiAgICogSXQgaGVkZ2VzIHRoZSByaXNrcyBieSBrZWVwaW5nIG1v
cmUgcG9zc2liaWxpdGllcyBvcGVuIGZvciBub3cuDQogICAqIEl0IGFsbG93cyB0byBjb3Atb3V0
IGF0IFN0ZXAgMyBpZiBTdGVwIDQgdHVybnMgb3V0IHRvbyBoYXJkIGJlY2F1c2UgaXQgYnJlYWtz
IHRvbyBtdWNoIHN0dWZmDQoNCiMjIyBDb25zDQoqIEl0IGFsbG93cyB0byBjb3Atb3V0IGF0IFN0
ZXAgMyBpZiBTdGVwIDQgdHVybnMgb3V0IHRvbyBoYXJkIGJlY2F1c2UgaXQgYnJlYWtzIHRvbyBt
dWNoIHN0dWZmDQoNCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5z
dWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0
PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFu
L29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next