Re: Boost Review for Capy and Corosio - June 23 to July 7th
Alan de Freitas via Boost <[email protected]> Tue, 7 Jul 2026 16:38:03 -0500
| Newsgroups | gmane.comp.lib.boost.devel |
|---|---|
| Message-ID | <CAHpLXUg+RiiFc6JXKh3N2X6gqnwqfZmUE0JPV09DdS5sQwffNg@mail.gmail.com> |
Qm9vc3QuQ2FweSBSZXZpZXcNCg0KSSB3YW50IHRvIHRoYW5rIHRoZSBhdXRob3JzIGZvciB0aGVp ciB3b3JrLg0KDQpUaGlzIGlzIGEgcmV2aWV3IG9mIEJvb3N0LkNhcHkgb25seS4gSXQgd2FzbuKA mXQgYW4gZXhwbGljaXQgZGVjaXNpb24gdG8NCnJldmlldyB0aGVtIHNlcGFyYXRlbHkuIEl04oCZ cyBqdXN0IGhvdyBtdWNoIEkgbWFuYWdlZCB0byByZXZpZXcgcHJvcGVybHkuDQpJ4oCZbGwgc3Rh cnQgcmV2aWV3aW5nIENvcm9zaW8gYW5kIHNlbmQgYSBzZXBhcmF0ZSByZXZpZXcgaWYgdGhlcmXi gJlzIHRpbWUsIG9yDQppbmRlcGVuZGVudCBmZWVkYmFjayBpZiBJ4oCZbSB0b28gbGF0ZS4NCg0K SSBoYXZlbuKAmXQgYmVlbiBhYmxlIHRvIGZvbGxvdyBhbGwgdGhlIGRpc2N1c3Npb25zIGluIG90 aGVyIHJldmlld3MsIHNvIEkNCmltYWdpbmUgbWFueSBvZiB0aGUgcG9pbnRzIEnigJlsbCByYWlz ZSBoZXJlIG1heSBhbHJlYWR5IGhhdmUgYmVlbiBhZGRyZXNzZWQuDQpJIGtpbmRseSBhc2sgZm9y IHRoZSByZXZpZXcgbWFuYWdlciB0byBhY2NvdW50IGZvciB0aGF0IGFjY29yZGluZ2x5Lg0KDQpU aGVyZeKAmXMgYSBzbWFsbCBhcHBlbmRpeCBhdCB0aGUgZW5kIG9mIHRoaXMgcmV2aWV3IHdpdGgg YSBtb3JlIGRldGFpbGVkDQpsaXN0IG9mIG1pbm9yIGlzc3VlcyB0byBtYWtlIHRoZSBtYWluIHBv aW50cyBlYXNpZXIgdG8gZm9sbG93Lg0KDQo+IERvZXMgdGhpcyBsaWJyYXJ5IGJyaW5nIHJlYWwg YmVuZWZpdCB0byBDKysgZGV2ZWxvcGVycyBmb3IgcmVhbCB3b3JsZA0KdXNlLWNhc2U/DQoNClll cy4gSeKAmW0gZXhjaXRlZCBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgZXhwbG9yaW5nIHRoZXNl IGNvcm91dGluZQ0KaW1wbGVtZW50YXRpb24gZGV0YWlscyBub3Qgb25seSB0byBhY2hpZXZlIGJl dHRlciBzeW50YXggYnV0IGFsc28gdG8NCmltcHJvdmUgcGVyZm9ybWFuY2UuDQoNCj4gRG8geW91 IGhhdmUgYW4gYXBwbGljYXRpb24gZm9yIHRoaXMgbGlicmFyeT8NCg0KTm90IHJpZ2h0IG5vdywg YnV0IEkgaW50ZW5kIHRvIHVzZSBpdCBvbmNlIGl04oCZcyBhY2NlcHRlZC4NCg0KPiBEb2VzIHRo ZSBBUEkgbWF0Y2ggd2l0aCBjdXJyZW50IGJlc3QgcHJhY3RpY2VzPw0KDQpZZXMuIFRvIGEgY2Vy dGFpbiBleHRlbnQsIHRoZSBsaWJyYXJ5IGFsc28gcHJvcG9zZXMgaXRzIG93biBiZXN0IHByYWN0 aWNlcy4NClNvLCBmb3IgYSBzdWJzZXQgb2YgdGhvc2UgcHJhY3RpY2VzLCBvbmx5IHRoZSBmdXR1 cmUgd2lsbCB0ZWxsLiBBcyBvdGhlcnMNCmhhdmUgbm90ZWQsIHRoZSDigJxUd28tQ2FsbCBTeW50 YXjigJ0gaXMgYSBiaXQgY29udHJvdmVyc2lhbCwgYW5kIEkgaG9wZQ0KdGhlcmXigJlzIGEgYmV0 dGVyIHNvbHV0aW9uLiBBdCB0aGUgdmVyeSBsZWFzdCwgdGhlIHdhcm5pbmcgYWRtb25pdGlvbiBu ZWVkcw0KdG8gbGlzdCBtb3JlIGRhbmdlcm91cyBjYXNlcy4NCg0KSSB0aGluayB0aGUgc3BsaXQg aW50byB0d28gbGlicmFyaWVzIGhlcmUgaXMgYWxzbyBhIGxpdHRsZSBjb250cm92ZXJzaWFsDQph bmQgbm90IHdlbGwgYXJ0aWN1bGF0ZWQgKEkgaGF2ZW7igJl0IGZvbGxvd2VkIGFsbCBwcmV2aW91 cyBkaXNjdXNzaW9ucyB5b3UNCmd1eXMgaGFkIGFib3V0IHRoYXQpLiBNeSBpbXByZXNzaW9uIGlz IHRoYXQgdGhlIGRlY2lzaW9uIHdhcyBiYXNlZCBvbg0KY29uZGl0aW9ucyB0aGF0IG5vIGxvbmdl ciBhcHBseSAocHJvYmFibHkgc29tZXRoaW5nIGFib3V0IGRlcGVuZGVuY2llcyksDQphbmQgdGhh dCBzb21lIG9mIHRoZSBqdXN0aWZpY2F0aW9uIG5vdyBpcyBiZWluZyBmb3JtdWxhdGVkIGluIHJl dHJvc3BlY3QsDQp3aGljaCBzZWVtcyB3ZWlyZCB0byBtZS4gSSBzdXNwZWN0IHRoZSBhdXRob3Jz IG9yaWdpbmFsbHkgZXhwZWN0ZWQNCmRpZmZlcmVudCBkZXBlbmRlbmNpZXMgZm9yIGVhY2gsIGJ1 dCB0aGF0IGlzIG5vIGxvbmdlciBhIHByb2JsZW0gbm93IHRoYXQNCnRoZXnigJlyZSBib3RoIHN0 YW5kYWxvbmUgbGlicmFyaWVzLiBTcGxpdHRpbmcgZnVuY3Rpb25hbGl0eSBhbHNvIGRvZXNu4oCZ dA0KbWFrZSBtdWNoIHNlbnNlIGhlcmUgaW4gbXkgb3BpbmlvbiwgYmVjYXVzZSAoaSkgQ2FweSBp cyBpbnRlbmRlZCB0byBiZSB1c2VkDQpvbmx5IHdpdGggQ29yb3NpbyAod2hpY2ggd2FzIGEgcG9p bnQgYWdhaW5zdCBzcGxpdHRpbmcgaXQpLCBhbmQgKGlpKQ0KdGhlcmXigJlzIHNvIG11Y2ggZnVu Y3Rpb25hbGl0eSBpbiB0aGVzZSBsaWJyYXJpZXMgdGhhdCBhbnkgcGFydGljdWxhciBzcGxpdA0K aW50byBvbmx5IHR3byBsaWJyYXJpZXMgd291bGQgYmUgc29tZXdoYXQgYXJiaXRyYXJ5LiBJZiBp dCBjYW4gYmUgdXNlZA0Kd2l0aG91dCBDb3Jvc2lvLCB0aGVuIENvcm9zaW8gc2hvdWxkbuKAmXQg YmUgdXNlZCB0byBqdXN0aWZ5IG1pc3NpbmcgZmVhdHVyZXMNCnRvIHBlb3BsZSB3aG8gcmVxdWVz dCB0aGVtLCBhbmQgdGhlIGRvY3VtZW50YXRpb24gc2hvdWxkIGV4cGxhaW4gdGhlDQpleHBsaWNp dCBkZWNpc2lvbiBmcm9tIHRoZSB2ZXJ5IGJlZ2lubmluZy4gT3RoZXJ3aXNlLCBpdCBzZWVtcyBs aWtlIHRoZQ0KYXJndW1lbnQgZm9yIHRoZSBzcGxpdCBrZWVwcyBtb3ZpbmcgdGhlIGdvYWxwb3N0 cyAodGhpbmdzIGFyZSBtaXNzaW5nLCBhbmQNCml04oCZcyBub3QgaW5kZXBlbmRlbnQsIGJ1dCB0 aGF04oCZcyBPSyBiZWNhdXNlIGl04oCZcyBpbnRlbmRlZCBmb3IgQ29yb3NpbyAvIGl0DQpkZXNl cnZlcyB0byBiZSBhIHNlcGFyYXRlIGxpYnJhcnkgYmVjYXVzZSBpdOKAmXMgaW5kZXBlbmRlbnQg ZnJvbSBDb3Jvc2lvKS4NCg0KPiBJcyB0aGUgZG9jdW1lbnRhdGlvbiBoZWxwZnVsIGFuZCBjbGVh cj8NCg0KVGhlIGRvY3VtZW50YXRpb24gaXMgaW5jb21wbGV0ZSAoaW4gYSBzZW5zZSwgdG9vIOKA nGNvbXBsZXRlLOKAnSBiZWNhdXNlIG11Y2gNCm9mIHRoZSB3b3JrIG5lZWRlZCBpcyByZW1vdmlu ZyBBSSBmbHVmZikuIEV4YW1wbGVzIHRoYXQgZG9u4oCZdCBjb21waWxlLCBldGMuDQpUaGUgcGFn ZXMgaW50ZW5kZWQgYXMgZXhwb3NpdGlvbiBvZnRlbiByZXBsaWNhdGUgYSBwYXJ0aWFsLCBleGhh dXN0aXZlDQpyZWZlcmVuY2UgaW5zdGVhZC4gSWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSwgdGhl IGF1dGhvcnMgd2VyZSB3b3JraW5nIG9uDQppdCBhbmQgaGFkIHRvIGZyZWV6ZSBpdCBmb3IgdGhl IHJldmlldywgYnV0IEnigJltIHN1cmUgdGhleSB3aWxsIGZpeCB0aGlzLg0KDQpPbiB0aGUgdXNl IG9mIEFJOg0KDQpUaGUgd2F5IEFJIHdhcyB1c2VkIGhlcmUgbWFrZXMgdGhlIGRvY3VtZW50YXRp b24gdmVyeSBoYXJkIHRvIHJlYWQuIEkgbGVmdA0KYSBtb3JlIGRldGFpbGVkIGxpc3Qgb2YgaXNz dWVzIGF0IHRoZSBlbmQgb2YgdGhlIHJldmlldyBidXQsIHRvIGJlIGNsZWFyLCBJDQpoYXZlIG5v dGhpbmcgYWdhaW5zdCBBSS4gSSBqdXN0IHRoaW5rIHRvIHNvbWUgZXh0ZW50IGl0IHdhc27igJl0 IHVzZWQNCnByb3Blcmx5IGhlcmUuIFdl4oCZcmUgZ29pbmcgdG8gZGlzYWdyZWUgb24gdGhlIHNw ZWNpZmljIGxpc3QgYnV0IGluIGdlbmVyYWw6DQoNCi0gQUkgaXMgZ29vZCBhdCBzdW1tYXJpemlu ZyBjb250ZW50LCBib290c3RyYXBwaW5nIHByb2plY3RzLCBwZXJmb3JtaW5nDQpsYXJnZSBtZWNo YW5pY2FsIHJlZmFjdG9yaW5ncywgYW5kIGZpeGluZyBidWdzIHRoYXQgYXJlIGVhc3kgdG8gZml4 IGJ1dA0KZGlmZmljdWx0IHRvIHJlcHJvZHVjZS4NCi0gQUkgaXMgYmFkIGF0IGV4cGFuZGluZyBj b250ZW50IHdpdGggYWN0dWFsIGluZm9ybWF0aW9uIChpdCBiZWdpbnMgdG8NCmdlbmVyYXRlIGZs dWZmIGJldHdlZW4gc3RhdGVtZW50cyBhbmQgYnJlYWtzIGhpZXJhcmNoaWNhbCBjb25zaXN0ZW5j eSksDQp1bmRlcnN0YW5kaW5nIGltcG9ydGFudCBjb250ZXh0dWFsIHN1YnRsZXRpZXMgKGluIHBh cnRpY3VsYXIsIHBlcnNvbmFsLA0KdW5zcG9rZW4sIGFuZCBvZnRlbiBlbW90aW9uYWwpLCBwcm9k dWNpbmcgZ29vZCB0ZWNobmljYWwgd3JpdGluZyBpbg0KZ2VuZXJhbCwgZG9pbmcgc3RyYXRlZ2lj IHdvcmssIG1haW50YWluaW5nIGhpZXJhcmNoaWNhbCBjb25zaXN0ZW5jeSBpbiBhDQpwcm9qZWN0 LCBlbnN1cmluZyBzb2x1dGlvbnMgYXJlIG1haW50YWluYWJsZSwgYW5kIGtlZXBpbmcgdGhlbSB0 aGF0IHdheS4NCg0KVGhlIGxhc3QgcG9pbnQgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBiZWNh dXNlLCBmb3IgbGFyZ2UgcHJvamVjdHMsIHRoZQ0KY29zdCBvZiBtYWludGFpbmluZyBpdCBpcyBv cmRlcnMgb2YgbWFnbml0dWRlIGdyZWF0ZXIgdGhhbiB0aGUgY29zdCBvZg0KYm9vdHN0cmFwcGlu ZyBpdC4gSWYgd2UgdGhyb3cgQUkgYXQgdGhhdCwgdG9vLCB0aGUgY29kZSBhbmQgZG9jdW1lbnRh dGlvbg0Kd2lsbCBrZWVwIGRyaWZ0aW5nLCBmaW5lciBkZXRhaWxzIHdpbGwgbmV2ZXIgZ2V0IGZp eGVkLCBhbmQgd2XigJlsbCBrZWVwDQpzZWVpbmcgcmVncmVzc2lvbnMuIEJ5IOKAnHRocm93IEFJ IGF0IHRoYXQs4oCdIEkgbWVhbiBsZXR0aW5nIGl0IGRvIG1vc3Qgb2YgdGhlDQp3b3JrIG9uIGlz c3VlcyBvciByZWx5aW5nIG9uIGl0IHRvIG1haW50YWluIGNvbnNpc3RlbmN5LiBBY2NlcHRpbmcg b25lIG9mDQp0aGUgc3VnZ2VzdGlvbnMgaXQgcmVjb21tZW5kZWQgZm9yIGEgc21hbGwgcHJvYmxl bSBhZnRlciBwcm9wZXJseSByZXZpZXdpbmcNCnRoZW0gbGluZSBieSBsaW5lIHNlZW1zIGZpbmUg Zm9yIG1hbnkgbG9jYWwgaXNzdWVzLg0KDQpJbiBvdGhlciB3b3JkcywgaXTigJlzIGltcG9ydGFu dCB0byBub3RpY2UgdGhhdCBBSSBtaWdodCBiZSBoZWxwZnVsIHdoZW4NCmJvb3RzdHJhcHBpbmcg Y29kZSBvciBkb2N1bWVudGF0aW9uIGJ1dCBub3QgZm9yIG1haW50YWluaW5nIGNvZGUgdGhhdA0K ZG9lc27igJl0IGRyaWZ0LiBUaGUgdXNlIG9mIEFJIGhlcmUgc28gZmFyIHNlZW1zIHRvIGhhdmUg YmVlbiByZWFzb25hYmx5IGdvb2QNCmZvciB0aGUgY29kZSAodGhlIGNvZGUgaXMgYWxzbyBtb3Jl IHZlcmlmaWFibGUgdGhhbiB3cml0aW5nLCBhbmQgcGVvcGxlDQpzZWVtIHJlYXNvbmFibHkgaGFw cHkgd2l0aCBpdCksIGJ1dCBub3Qgc28gZ29vZCBmb3IgdGhlIGRvY3VtZW50YXRpb24sDQp0aG91 Z2ggdGhhdCBjYW4gYmUgZml4ZWQuIEJ1dCBpZiBBSSBpcyB1c2VkIGFnYWluIHRvIGZpeCB0aGUg aXNzdWVzIHRoYXQNCmNvbWUgdXAgZHVyaW5nIHRoaXMgcmV2aWV3IGFuZCBhZnRlciB0aGF0IHRo ZXJl4oCZcyBubyBsb2NrIGludG8gc29tZSBraW5kIG9mDQpzdGFibGUgdmVyc2lvbiB0aGF0IHdp bGwgYmUgbWFpbnRhaW5lZCB3aXRoIGEgbW9yZSBhY3RpdmUgaHVtYW4gaW4gdGhlDQpsb29wLCBh bnkgcmV2aWV3IHdpbGwgYmUgcG9pbnRsZXNzIGJlY2F1c2UgbW9yZSBhbmQgbW9yZSBBSSB3aWxs IGp1c3QgZHJpZnQNCnRvIGFub3RoZXIgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQg Y29kZSB3aXRoIHRoZSBzYW1lIHByb2JsZW1zLiBJbg0KdGhlIGNhc2Ugb2YgZG9jdW1lbnRhdGlv biwgaXTigJlzIG5vdCBvbmx5IGFib3V0IGRyaWZ0aW5nIGJlY2F1c2UgSSB0aGluayBBSSwNCm9y IGF0IGxlYXN0IHRoZSBjdXJyZW50IG1vZGVscyB3ZSBoYXZlLCBpcyBzaW1wbHkgaW5jYXBhYmxl IG9mIGZpeGluZyBpdCBieQ0KaXRzZWxmLg0KDQpXaGF04oCZcyBpbnRlcmVzdGluZyBpcyB0aGF0 IEkgb2Z0ZW4gd291bGRu4oCZdCB1bmRlcnN0YW5kIHNvbWV0aGluZyBpbiB0aGUNCmRvY3VtZW50 YXRpb24sIHNvIEkgd291bGQgZ2V0IGhlbHAgZnJvbSBhbiBBSSBhZ2VudC4gRXZlbiB0aG91Z2gg Ym90aA0KZXhwbGFuYXRpb25zIGFyZSBmcm9tIEFJLCBJIHRoaW5rIHRoZSBvdGhlciBhZ2VudCBn YXZlIG1lIGEgYmV0dGVyDQpleHBsYW5hdGlvbiBiZWNhdXNlIHRoZXkgd2VyZSBmb3JjZWQgdG8g cHJvdmlkZSBpdCB3aXRob3V0IHRoZSBzZXNzaW9uDQpjb250ZXh0IGJlaW5nIHBvbGx1dGVkIGJ5 IG90aGVyIGFzc3VtcHRpb25zLiBUaGlzIG1pZ2h0IGJlIGEgaGludCBpbnRvIGhvdw0KdG8gaW1w cm92ZSB0aGluZ3MgYSBsaXR0bGUgaWYgd2UgcHVycG9zZWZ1bGx5IHVzZSBhZ2VudHMgd2l0aG91 dCBjb250ZXh0LA0KbWFraW5nIHRoZW0gbW9yZSByZXByZXNlbnRhdGl2ZSBvZiBob3cgdGhlIHJl YWRlciBhcnJpdmVzIGF0IHVuZGVyc3RhbmRpbmcuDQoNCk9uIHRoZSBmb3JtYXQ6DQoNCkkgYWxz byB0aGluayB0aGUgZG9jdW1lbnRhdGlvbiBpcyBvcmRlcnMgb2YgbWFnbml0dWRlIGxvbmdlciB0 aGFuIGl0IG5lZWRzDQp0byBiZSwgZ2l2ZW4gdGhlIHJlcGV0aXRpb24gYW5kIGNvbmNlcHRzIGZy b20gdGhlIHJlZmVyZW5jZSB0aGF0IGFyZQ0KZXhoYXVzdGl2ZWx5IHJlcGxpY2F0ZWQgaW4gdGhl IGV4cG9zaXRpb24gc2ltcGx5IGJlY2F1c2UgQUkgY2FuIGRvIGl0DQpjaGVhcGx5IChtYW55IGFs cmVhZHkgZHJpZnRpbmcgZnJvbSB0aGUgcmVmZXJlbmNlKS4gRm9yIGluc3RhbmNlLCBJIGNvdWxk DQplYXNpbHkgc2VlIGhvdyB0aGUgZmV3IGNvbmNlcHRzIG9mIGFjdHVhbCBpbmZvcm1hdGlvbiBh Y3Jvc3MgYWxsIDcgcGFnZXMNCnVuZGVyIOKAnEJ1ZmZlciBTZXF1ZW5jZXPigJ0gKEJ1ZmZlciwg QnVmZmVyIHNlcXVlbmNlcywgZXRjLikgY291bGQgYmUNCnByZXNlbnRlZCBvbiBhIHNpbmdsZSBw YWdlLCB3aXRoIG9uZSBzZWN0aW9uIGZvciBlYWNoLCBhbG9uZyB3aXRoIGJyaWVmDQphZG1vbml0 aW9ucyBmb3IgdGhlIGRlc2lnbiByYXRpb25hbGUuDQoNCkEgc2lkZSBub3RlIGFib3V0IHRoZSBw cm9jZXNzOg0KDQpNeSBmaW5hbCBldmFsdWF0aW9uIGlzIHRoYXQgdGhlIGRvY3VtZW50YXRpb24g aXMgdmVyeSBoYXJkIHRvIHJlYWQgZHVlIHRvDQpBSSBmbHVmZiwgYW5kIHRoYXQgY2FyZWZ1bGx5 IHJlYWRpbmcgdGhlIGRvY3VtZW50YXRpb24gYW5kIHRoZSBjb2RlIGlzDQppbXBvc3NpYmxlIHdp dGhpbiB0aGUgMTAtZGF5IHJldmlldyBwZXJpb2QuIEkgbWVhbiDigJxpbXBvc3NpYmxl4oCdIGxp dGVyYWxseSwNCmFzIGFueSByZWFzb25hYmxlIHdvcmRzLXBlci1taW51dGUgb3IgTE9DLXBlci1t aW51dGUgY2FsY3VsYXRpb24uIEJ1dCBpbg0KdGhlIGdlbmVyYWwgY2FzZSwgdGhpcyBoYXMgbGl0 dGxlIHRvIGRvIHdpdGggdGhlIHN1Ym1pc3Npb24sIG9yIGV2ZW4gQUkuDQpBbmQgdGhlIGF1dGhv cnMgYXJlIG5vdCB0byBibGFtZSBmb3IgdGhhdCBidXQgc2hvdWxkIGJlIHBhcnQgb2YgYW4NCmlu ZGVwZW5kZW50IGRpc2N1c3Npb24gSeKAmWQgbGlrZSB0byBwcm9wb3NlLg0KDQpJIGJlbGlldmUg dGhpcyBpcyB0aGUgbG9uZ2VzdCBib29zdCBzdWJtaXNzaW9uIGV2ZXIgdW5kZXIgcmV2aWV3LCBh bmQgaXTigJlzDQptYW55IHRpbWVzIGxhcmdlciB0aGFuIEFzaW8gYW5kIEJlYXN0IHdlcmUgd2hl biB0aGV5IHdlcmUgYWNjZXB0ZWQgKEkNCmNoZWNrZWQpLiBXZSBoYXZlIGhhZCByZXZpZXcgZXh0 ZW5zaW9ucyBmb3IgbXVjaCBzbWFsbGVyIGxpYnJhcmllcy4NCklkZWFsbHksIGluc3RlYWQgb2Yg YXNraW5nIGZvciBleHRlbnNpb25zLCB3ZSBjb3VsZCBoYXZlIGEgcHJvY2VzcyB0aGF0DQphbHJl YWR5IGFjY29tbW9kYXRlcyBsYXJnZXIgbGlicmFyaWVzIGJhc2VkIG9uIHRoZWlyIHNpemUsIHRo b3VnaCBJIGhhdmUgbm8NCmlkZWEgd2hhdCB0aGF0IHdvdWxkIGxvb2sgbGlrZS4gT3RoZXJ3aXNl LCB3ZeKAmXJlIGVpdGhlciBnb2luZyB0byBoYXZlIChpKQ0Kb25seSByZXZpZXdzIGJ5IHBlb3Bs ZSB3aG8gd2VyZSBhbHJlYWR5IGNhc3VhbGx5IHVzaW5nIHRoZSBsaWJyYXJ5LCBvcg0Kd2XigJly ZSBnb2luZyB0byBoYXZlIChpaSkgYSBiYXR0bGUgb2YgcGVvcGxlIHVzaW5nIEFJIGFnZW50cyB0 byBwcmV0ZW5kDQp0aGV54oCZcmUgcmV2aWV3aW5nIGNvZGUgd3JpdHRlbiBieSBvdGhlciBBSSBh Z2VudHMuDQoNCkl0IHdvdWxkIGFsc28gYmUgbmljZSB0byBjb25maXJtIHdpdGggdGhlIGF1dGhv cnMgKG1heWJlIHRoaXMgaGFzIGFscmVhZHkNCmhhcHBlbmVkKSB0aGF0IHRoZSBkb2N1bWVudGF0 aW9uIGlzIGluIGEgc3RhdGUgdGhleSBmaW5kIGFjY2VwdGFibGUgZm9yDQpyZXZpZXcgYmVmb3Jl IHN0YXJ0aW5nIHRoZSByZXZpZXcsIHNvIHRoZXkgZG9u4oCZdCBmcmVlemUgdGhlIGRvY3VtZW50 YXRpb24NCmluIGFuIGludGVybWVkaWF0ZSBzdGF0ZSBmcm9tIGFub3RoZXIgbWlsZXN0b25lIGlu IHRoZSBwcm9qZWN0Lg0KDQo+IERpZCB5b3UgdHJ5IHRvIHVzZSBpdD8gV2hhdCBwcm9ibGVtcyBv ciBzdXJwcmlzZXMgZGlkIHlvdSBlbmNvdW50ZXI/DQoNClllcy4gSSBjb21waWxlZCB0aGUgY29k ZSBhbmQgcmFuIHRoZSBleGFtcGxlcy4NCg0KPiBXaGF0IGlzIHlvdXIgZXZhbHVhdGlvbiBvZiB0 aGUgaW1wbGVtZW50YXRpb24/DQoNCkkgZGlkbuKAmXQgaGF2ZSB0aW1lIHRvIHByb3Blcmx5IGV2 YWx1YXRlIHRoZSBpbXBsZW1lbnRhdGlvbiBsaW5lIGJ5IGxpbmUuIEkNCmhhdmUgYSBsaXN0IG9m IG5vdGVzIEkgbGVmdCBhdCB0aGUgZW5kLiBJIG1vc3RseSBhc3N1bWVkIHRoZSBBUEkgYXMNCnBy ZXNlbnRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiB0byB3cml0ZSB0aGF0Lg0KDQo+IFBsZWFzZSBl eHBsaWNpdGx5IHN0YXRlIHRoYXQgeW91IGVpdGhlciAqYWNjZXB0KiBvciAqcmVqZWN0KiB0aGUN CmluY2x1c2lvbiBvZiB0aGlzIGxpYnJhcnkgaW50byBib29zdC4NCg0KSSByZWNvbW1lbmQgYWNj ZXB0aW5nIHRoZSBsaWJyYXJ5LiBJIGRvbuKAmXQgd2FudCB0byBtYWtlIGl0IGNvbmRpdGlvbmFs LA0Kc2luY2UgSSBrbm93IHRoZSBhdXRob3JzIHdpbGwgdGFrZSBhbGwgY29tbWVudHMgaW50byBh Y2NvdW50LCB3aGljaCBtYWtlcw0KaXQgcmVkdW5kYW50Lg0KDQo+IEFsc28sIHBsZWFzZSBpbmRp Y2F0ZSB0aGUgdGltZSAmIGVmZm9ydCBzcGVudCBvbiB0aGUgZXZhbHVhdGlvbiBhbmQgZ2l2ZQ0K dGhlIHJlYXNvbnMgZm9yIHlvdXIgZGVjaXNpb24uDQoNCkkgcmVhZCB0aGUgZG9jdW1lbnRhdGlv biBidXQgbm90IHRoZSB3aG9sZSByZWZlcmVuY2UuIEkgc2tpbW1lZCB0aHJvdWdoIHRoZQ0Kc291 cmNlIGNvZGUuIEkgY29tcGlsZWQgdGhlIGxpYnJhcnkgYW5kIHJhbiB0aGUgZXhhbXBsZXMuIEkg c3BlbnQgbW9zdCBvZg0KdGhlIGxhc3QgdGhyZWUgd2Vla3MgcmV2aWV3aW5nIHRoZSBsaWJyYXJ5 Lg0KDQo+IERpc2NsYWltZXINCg0KSSdtIGFmZmlsaWF0ZWQgd2l0aCB0aGUgQysrIEFsbGlhbmNl Lg0KDQo+IE15IGNvbXBsZXRlIGxpc3Qgb2YgbWlub3IgaXNzdWVzLCBub3RlcywgYW5kIHN1Z2dl c3Rpb25zIHNvIGl0IGRvZXNu4oCZdA0KcG9sbHV0ZSB0aGUgcmVzdCBvZiB0aGUgcmV2aWV3DQoN CkFzIEkgbWVudGlvbmVkLCDigJxJIGhhdmVu4oCZdCBmb2xsb3dlZCBhbGwgdGhlIGRpc2N1c3Np b25zIGluIG90aGVyIHJldmlld3MsDQpzbyBJIGltYWdpbmUgbWFueSBvZiB0aGUgcG9pbnRzIEni gJlsbCBicmluZyB1cCBoZXJlIGhhdmUgYWxyZWFkeSBiZWVuDQpkaXNjdXNzZWQu4oCdDQoNCi0g VGhlIGRvY3VtZW50YXRpb24gaXMgY2xlYXJseSBpbmNvbXBsZXRlLiBFeGFtcGxlcyB0aGF0IGRv buKAmXQgY29tcGlsZSwNCmV0Yy4gSWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSwgdGhleSB3ZXJl IHdvcmtpbmcgb24gaXQgYW5kIGhhZCB0byBmcmVlemUNCml0IGZvciB0aGUgcmV2aWV3LCBidXQg SeKAmW0gc3VyZSB0aGV5IHdpbGwgZml4IHRoaXMuDQotIFRoZSB3YXkgQUkgd2FzIHVzZWQgaGVy ZSBtYWtlcyB0aGUgZG9jdW1lbnRhdGlvbiB2ZXJ5IGhhcmQgdG8gcmVhZC4gKGkpDQpUaGUgc2Ft ZSBjb25jZXB0IG9yIHBhcnQgb2YgaXQgaXMgb2Z0ZW4gcGhyYXNlZCBkaWZmZXJlbnRseSBvdmVy IGFuZCBvdmVyDQp3aXRob3V0IGFkZGluZyBhbnkgbmV3IGluZm9ybWF0aW9uLiBWZXJ5IG9mdGVu LCB0aGlzIGlzIGRvbmUgdmlhDQp1bm5lY2Vzc2FyeSBuZWdhdGl2ZXMgKOKAnFRoaXMgaXMgWC4g Tm90IFkuIE5vdCBa4oCdLCBpbnN0ZWFkIG9mIOKAnFRoaXMgaXMgWOKAnSkuDQooaWkpIFRoZXJl IGFyZSB0b28gbWFueSBjbGljaMOpcyBhbmQgbWV0YXBob3JzIHRoYXQgY29uc3RpdHV0ZSBiYWQg dGVjaG5pY2FsDQp3cml0aW5nIGJlY2F1c2UgdGhleSBmb3JjZSB0aGUgcmVhZGVyIHRvIGtlZXAg cmV2ZXJzZS1lbmdpbmVlcmluZyB0aGVtDQooYWx0aG91Z2ggb25lIHBlciBwYWdlIGNvdWxkIGJl IHVzZWZ1bCB0byBtYWtlIHNvbWV0aGluZyBtb3JlIG1lbW9yYWJsZSkuDQooaWlpKSBFeHByZXNz aW9ucyBhcmUgdXNlZCBpbiB0aGUgdGV4dCB3aXRob3V0IGEgcHJvcGVyIGRlZmluaXRpb24sDQpw cm9iYWJseSBiZWNhdXNlIHRoZXkgY2FtZSBmcm9tIHRoZSBjb252ZXJzYXRpb24gY29udGV4dCB3 aXRoIHRoZSBhZ2VudC4NCihpdikgVGhlIGhpZXJhcmNoeSBvZiB0aGUgcGFnZXMgYW5kIHNlY3Rp b25zIGlzIG9mdGVuIGluY29oZXJlbnQuIFRoaXMgaXMNCm5vdCBhIHByb2JsZW0gd2l0aCBBSSBw ZXIgc2UuIFRoZSBwcm9ibGVtIGlzIGJhZCB3cml0aW5nIHN0eWxlLiBXZSBqdXN0DQpoYXBwZW4g dG8ga25vdyBBSSBpcyB0aGUgY2F1c2UuDQotIEkgZG9u4oCZdCBsaWtlIHRoZSBpbnRyb2R1Y3Rp b24gdG8gY29yb3V0aW5lcyBiZWNhdXNlIGl04oCZcyBzeW50YXgtYmFzZWQNCihsaXN0aW5nIHdo YXQgZWFjaCBjb21tYW5kIGRvZXMgYmVmb3JlIHByZXNlbnRpbmcgdGhlIG1vdGl2YXRpb24pIHJh dGhlcg0KdGhhbiBnb2FsLW9yaWVudGVkIChsaXN0aW5nIHR5cGljYWwgdXNlIGNhc2VzIHJlZ2Fy ZGxlc3Mgb2YgY29yb3V0aW5lcyBhbmQNCmV4cGxhaW5pbmcgaG93IGNvcm91dGluZXMgaGVscCB3 aXRoIGVhY2ggb25lIHVudGlsIGFsbCB0aGUgc3ludGF4IGlzDQpjb3ZlcmVkKS4NCi0gVGhlIGV4 YW1wbGVzIGNvdWxkIGluY2x1ZGUgc29tZXRoaW5nIHNsaWdodGx5IHByYWN0aWNhbCByYXRoZXIg dGhhbiBhDQpjb3JvdXRpbmUgdGhhdCBsaXRlcmFsbHkgZG9lcyB0aGUgdGhpbmcgaXTigJlzIGV4 cGxhaW5pbmcuIEZvciBpbnN0YW5jZSwgdGhlDQpgZmluYWxfc3VzcGVuZGAgY291bGQgYmUgYW4g ZXhhbXBsZSB0aGF0IHNob3dzIHRoZSByZWFkZXIgc29tZXRoaW5nIHRoZXkNCmNhbiByZWxhdGUg dG8gYXMgYWNoaWV2aW5nIGEgZ29hbCwgbm8gbWF0dGVyIGhvdyBzaW1wbGUgaXQgaXMuDQotIFRo ZSBleGFtcGxlcyB0aGF0IHVzZWQgcHNldWRvY29kZSB3aXRoIHRoZSBzYW1lIGtleXdvcmRzIGFz IHRoZSByZWFsDQpzeW50YXgsIG1peGVkIHdpdGggdGhlIHJlYWwgc3ludGF4LCB3ZXJlIGNvbmZ1 c2luZy4gSXTigJlzIGVhc3kgdG8gbG9zZSB0cmFjaw0Kb2Ygd2hhdCBhIGtleXdvcmQgbWVhbnMg aW4gYSBzcGVjaWZpYyBleGFtcGxlLg0KLSBUaGUgaGllcmFyY2h5IG9mIHRoZSBpbnRyb2R1Y3Rp b24gdG8gY29yb3V0aW5lcyBpcyBpbmNvaGVyZW50LiDigJxBZHZhbmNlZA0KVG9waWNz4oCdICh3 aGljaCBvbmx5IGRpc2N1c3NlcyBTeW1tZXRyaWMgVHJhbnNmZXIpIGlzIHByZXNlbnRlZCBiZWZv cmUNCmF3YWl0X3N1c3BlbmQgaXMgcHJvcGVybHkgZXhwbGFpbmVkIGluIHRoZSBwcmV2aW91cyBw YWdlcy4gRXZlbiB3aXRoaW4gdGhlDQpzYW1lIHBhZ2UsIHRoZSDigJxUaGUgU29sdXRpb246IFJl dHVybiB0aGUgSGFuZGxl4oCdIGlzIHByZXNlbnRlZCBiZWZvcmUgdGhlDQpzZWN0aW9uIOKAnFJl dHVybiBUeXBlcyBmb3IgYXdhaXRfc3VzcGVuZOKAnSB0aGF0IHByZXNlbnRzIHdoaWNoIHJldHVy biB0eXBlcw0KYXJlIHZhbGlkIGFuZCB3aGF0IHRoZXkgZG8uDQotIEluIHRoZSBIQUxPIHNlY3Rp b24sIHRoZSBzZW50ZW5jZSAiVGhlIGNvcm91dGluZSB0eXBlIGlzIG1hcmtlZCB3aXRoDQooQ2xh bmcgZXh0ZW5zaW9uKSIgcmVuZGVycyB3aXRoIGEgYmxhbmsgd2hlcmUgdGhlIGF0dHJpYnV0ZSBu YW1lIHNob3VsZCBiZS4NClRoZSBIVE1MIGNvbnRhaW5zDQotIFRoZSAzIHRvcGljcyBpbiBBZHZh bmNlZCBUb3BpY3MgY291bGQgaGF2ZSB0aGVpciBvd24gcGFnZSwgYW5kIHNvIHRoZXkNCmNhbiBi ZSBleHBsYWluZWQgcHJvcGVybHkuIFRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIEFkdmFuY2VkIFRv cGljcyBhbmQNCm90aGVyIHRvcGljcyBjb3VsZCBiZSByZW1vdmVkLg0KLSBNeSBpbXByZXNzaW9u IGlzIHRoYXQgdGhlIHdyaXRpbmcgc3R5bGVzIG9mIHRoZSBpbnRyb2R1Y3Rpb25zIHRvDQpjb3Jv dXRpbmVzIGFuZCB0byBjb25jdXJyZW5jeSBhcmUgdG9vIGRpZmZlcmVudCAoYW5kIHRoZSBpbnRy b2R1Y3Rpb24gdG8NCmNvbmN1cnJlbmN5IGlzIGJldHRlcikuIFRoZSBpbnRyb2R1Y3Rpb24gdG8g Y29uY3VycmVuY3kgZXhwbGFpbnMgdmVyeSBiYXNpYw0KY29uY2VwdHMgdmVyeSB3ZWxsLiBDb25j ZXB0cyBtb3N0IEMrKyBkZXZlbG9wZXJzIGFyZSBsaWtlbHkgYWxyZWFkeQ0KZmFtaWxpYXIgd2l0 aC4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBpbnRyb2R1Y3Rpb24gdG8gY29yb3V0aW5lcyB1c2Vz IHZlcnkNCmJpZyB3b3JkcyB3aXRob3V0IGJvdGhlcmluZyB0byBleHBsYWluIHRoZW0uIEZvciBp bnN0YW5jZSwgdGhlcmXigJlzIGEgd2hvbGUNCnBhZ2UgYWJvdXQgc3RkOjp0aHJlYWRzLCBldmVy eXRoaW5nIHJlbGF0ZWQgdG8gaXQsIGFuZCB3b3JraW5nIGV4YW1wbGVzIG9uDQpob3cgdG8gdXNl IGl0IGluIGRpZmZlcmVudCB1c2UgY2FzZXMuIE1lYW53aGlsZSwgU3ltbWV0cmljIFRyYW5zZmVy LCBhDQpjb25jZXB0IHRoYXTigJlzIHdheSBtb3JlIGNvbXBsZXggYW5kIG11Y2ggbW9yZSBjb25z ZXF1ZW50aWFsIHRvIHRoZSBsaWJyYXJ5DQphbmQgbXVjaCBoYXJkZXIgdG8gdmlzdWFsaXplLCBp cyBleHBsYWluZWQgd2l0aCB0d28gdmVyeSBzaG9ydCBwYXJhZ3JhcGhzLg0KLSBUaGUgc2VjdGlv biB0aXRsZXMgaW4gdGhlIENvbmN1cnJlbmN5IGludHJvZHVjdGlvbiBhcmUgbm90IHJlYWxseQ0K YXBwcm9wcmlhdGUsIHRob3VnaC4gVGhleSBjb3VsZCBqdXN0IHJlZmxlY3Qgd2hhdCB0aGV5IGRl c2NyaWJlOiBJOg0KVGhyZWFkcywgSUk6IE11dGV4ZXMsIGV0Yy4gT3RoZXJ3aXNlLCBpdCBzZWVt cyB0byBwcm9taXNlIG11Y2ggbW9yZSB0aGFuIGl0DQphY3R1YWxseSBvZmZlcnMuDQotIFRoZSBw YXJhZ3JhcGggb24gc3B1cmlvdXMgd2FrZXVwcyBjb3VsZCBicmllZmx5IGV4cGxhaW4gd2h5IHRo ZXkgZXhpc3QuDQotIFRoZSBkb2N1bWVudGF0aW9uIGhpZXJhcmNoeSBpcyBpbmNvbnNpc3RlbnQg aW4gaG93IGl0IHByZXNlbnRzIHRoZSBkZXNpZ24NCnJhdGlvbmFsZS4gU29tZSBwYWdlcyBhcmUg ZGVkaWNhdGVkIHRvIGl0OyB0aGVyZeKAmXMgYWxzbyBhIHNldCBvZiBwYWdlcyBhdA0KdGhlIGVu ZCBkZWRpY2F0ZWQgdG8gaXQ7IGFuZCBzb21ldGltZXMgaXTigJlzIHByZXNlbnRlZCBpbnRlcmxl YXZlZCB3aXRoIHRoZQ0KdGV4dC4gVGhlIGRvY3VtZW50YXRpb24gc2hvdWxkIGNob29zZSBvbmUg b2YgdGhlbS4gTXkgcGVyc29uYWwgcHJlZmVyZW5jZQ0KaXMgZm9yIGFkbW9uaXRpb25zIGludGVy bGVhdmVkIHdpdGggdGhlIHRleHQsIGJlY2F1c2UgdGhlIHVzZXIgaGFzIHRoZQ0KbmVjZXNzYXJ5 IGNvbnRleHQgYW5kIGNhbiBjaG9vc2UgdG8gaWdub3JlIHRoZW0uIFRoZSBvdGhlciBvcHRpb25z IGFyZQ0KZWFzaWx5IGlnbm9yZWQgYW5kIG9mdGVuIGFubm95aW5nIGJlY2F1c2UgdGhlIHRleHQg ZG9lc27igJl0IGdldCB0byB0aGUNCmNvbnRlbnQgdGhlIHVzZXIgaXMgbG9va2luZyBmb3IuDQot IFRoZSBkb2N1bWVudGF0aW9uIGV4cG9zaXRpb24gc2hvdWxkIHVzZSB0aGUgY3BwOiBtYWNybyBz byB0aGF0IHdlIGdldA0KbGlua3MgdG8gdGhlIHJlZmVyZW5jZS4gVGhpcyBpcyB2ZXJ5IHVzZWZ1 bCBzbyBJIGNhbiBzZWUgd2hhdCBhIGNsYXNzIGxvb2tzDQpsaWtlIHdoZW4gcmVhZGluZyBhYm91 dCBpdCBmb3IgdGhlIGZpcnN0IHRpbWUuDQotIFRoZSBkb2N1bWVudGF0aW9uIGlzIGFsc28gbm90 IGdvYWwtb3JpZW50ZWQgd2hlbiBpdOKAmXMgZXhwbGFpbmluZyBjb25jZXB0cw0KYWJvdXQgQ2Fw eS4gRm9yIGluc3RhbmNlLCB0aGUgcGFnZSDigJxUaGUgdGFzayBUeXBl4oCdIGhhcyBjb3JvdXRp bmVzIHRoYXQNCnJldHVybiBjYXB5Ojp0YXNrIGJ1dCBubyBleGFtcGxlIHdoZXJlIHRoZSB0YXNr IGlzIGV4ZWN1dGVkLiBBIHVzZXINCmZvbGxvd2luZyB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgY29t cGlsaW5nIHNtYWxsIGV4YW1wbGVzIGFzIHRoZXkgbGVhcm4gaGFzDQpub3RoaW5nIHRoZXkgY2Fu IHJ1bi4gVGhlIGV4YW1wbGVzIGNvdWxkIGp1c3QgY29udGFpbiB3aGF0ZXZlciB0aGUgc2ltcGxl c3QNCndheSB0byBydW4gdGhlc2UgdGFza3MgaXMgKG1heWJlIGp1c3QgcnVubmluZyB0aGVtIGlu bGluZSkuDQotIFRoZSByZWZlcmVuY2Ugb2YgY2FweTo6cnVuX2FzeW5jLCBpZiBpdCByZW1haW5z IGxpa2UgdGhpcyBhZnRlciByZXZpZXcsDQppcyBpbmNvcnJlY3QuIEl0IHNheXMg4oCcQXN5bmNo cm9ub3VzbHkgbGF1bmNoIGEgbGF6eSB0YXNrIG9uIHRoZSBnaXZlbg0KZXhlY3V0b3LigJ0uIEJ1 dCBpdCBkb2VzbuKAmXQgZG8gdGhhdCBiZWNhdXNlIGl0IGRvZXNu4oCZdCByZWNlaXZlIGFueSB0 YXNrLiBXaGF0DQppdCBkb2VzIGlzIGNyZWF0ZSB0aGUgaW50ZXJtZWRpYXJ5IG9iamVjdCB0aGUg bGlicmFyeSByZXF1aXJlcyBmb3IgdGhhdC4NCi0gVGhlIOKAnFR3by1DYWxsIFN5bnRheOKAnSBz ZWN0aW9uIGRvZXNu4oCZdCBleHBsYWluIHRoZSBkZXNpZ24gcmF0aW9uYWxlIHdlbGwNCmhlcmUu IFRoZSBuZWNlc3NpdHkgaGVyZSBpcyBqdXN0IGFzc3VtZWQsIGJ1dCB0aGUgdXNlciBkb2VzbuKA mXQga25vdyB0aGUNCmltcGxlbWVudGF0aW9uIGRldGFpbHMgdGhhdCBqdXN0aWZ5IGl0IG9yIHRo ZSB0cmFkZW9mZnMgb2YgdGhlDQphbHRlcm5hdGl2ZXMuIFRoZSBsb2dpYyBtaWdodCBiZSBzb3Vu ZCwgYnV0IHRoZSBkb2N1bWVudGF0aW9uIGRvZXNu4oCZdA0KZXhwbGFpbiBpdCB3ZWxsLiBJbiBh bnkgY2FzZSwgdGhlIHN5bnRheCBsb29rcyBxdWl0ZSB1Z2x5IGFuZCBkYW5nZXJvdXMuIEkNCmhv cGUgeW91IGd1eXMgZmluZCBhIGJldHRlciBzb2x1dGlvbiB0byB0aGlzLiBUaGVyZSBjb3VsZCBh bHNvIGJlIGENCnJlZmVyZW5jZSBmcm9tIHRoaXMgcGFnZSB0byB0aGUg4oCcRnJhbWUgQWxsb2Nh dG9yc+KAnSBwYWdlLCB3aGVyZSB0aGVyZeKAmXMgYQ0KbGl0dGxlIG1vcmUgZGV0YWlsIG9uIHdo eSB0aGluZ3MgaGF2ZSB0byBiZSB0aGlzIHdheS4NCi0g4oCcV2hlbiBubyByZXN1bHQgaGFuZGxl ciBpcyBwcm92aWRlZCwgdGhlIHJlc3VsdCBpcyBkaXNjYXJkZWTigJ0g4oaSIENvdWxkbuKAmXQN Cml0IGp1c3QgcmV0dXJuIHRoZSByZXN1bHQgd2hlbiBubyBoYW5kbGVyIGlzIHByb3ZpZGVkIChh bmQgdGhyb3cgdGhlDQpleGNlcHRpb25zKT8gVGhpcyB3b3VsZCBtYWtlIGNvcm91dGluZSBjb2Rl IGxvb2sgYSBsaXR0bGUgbW9yZSBsaWtlIHJlZ3VsYXINCmNvZGUuIEkga25vdyBzb21lIGV4YW1w bGVzIHNob3cgdGhlIHZhbHVlIGJlaW5nIGhhbmRsZWQgaW4gdGhlIGV4ZWN1dG9yLA0KYnV0IGZv ciBtYW55IHVzZSBjYXNlcyB3ZSBtaWdodCBub3QgcmVhbGx5IG5lZWQgdGhhdC4NCi0gSSBmaW5k IHRoZSBuYW1lIOKAnHJ1buKAnSBhIGxpdHRsZSB3ZWlyZCBmb3IgdGhpcyBmdW5jdGlvbiBiZWNh dXNlIHdoYXTigJlzDQpzcGVjaWFsIGhlcmUgaXMgdGhlIGNvbnRleHQgdHJhbnNmZXIgbW9yZSB0 aGFuIHRoZSBmYWN0IHRoYXQgc29tZXRoaW5nIGlzDQpiZWluZyBydW4sIHdoaWNoIGNvdWxkIGJl IGRvbmUgbW9zdCBvZiB0aGUgdGltZSBieSBqdXN0IGNhbGxpbmcgdGhlDQpmdW5jdGlvbi4NCi0g VGhlIHJlZmVyZW5jZSBzZWN0aW9ucyBpbiB0aGUgZXhwb3NpdGlvbiBwYWdlcyBkb27igJl0IGxv b2sgdmVyeSBnb29kLiBXZQ0KYWxyZWFkeSBoYXZlIGEgcmVhbCByZWZlcmVuY2UuIEFuZCBpZiB0 aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGhlYWRlcnMgaXMNCmltcG9ydGFudCAodGhleSBhcmUp LCB0aGV5IHNob3VsZCBiZSBleHBsYWluZWQgcmlnaHQgYXQgdGhlIGJlZ2lubmluZy4gQXMNCndl 4oCZcmUgaW5jZW50aXZpemluZyB0aGUgdXNlciB0byBpbmNsdWRlIHdoYXQgdGhleSB1c2UgYW5k IHRoaXMgaW5mb3JtYXRpb24NCmlzIGltcG9ydGFudCwgdGhlIGV4YW1wbGVzIHNob3VsZCBhbHNv IG5vdCBpbmNsdWRlIGJvb3N0L2NhcHkuaHBwIGRpcmVjdGx5Lg0KLSBJIHVuZGVyc3RhbmQgd2hh dCB0aGUgY29kZSBpcyBkb2luZywgYnV0IEkgZmluZCBpdCBhIGJpdCB3ZWlyZCB0aGF0IHdlDQpo YXZlIHRoZSBzYW1lIG5hbWUgZm9yIGRpZmZlcmVudCBraW5kcyBvZiBzeW1ib2xzIGV4ZWN1dGlv bl9jb250ZXh0IGFuZA0KRXhlY3V0aW9uQ29udGV4dCB3aGVyZSB0aGUgZGlzdGluY3Rpb24gaXMg b25seSB0aGUgY2FzaW5nLiBUaGlzIHNlZW1zIGxpa2UNCmEgc21lbGwgdG8gbWUuDQotIFRoZSBl eGVjdXRvciBjb25jZXB0IGRvZXNu4oCZdCBlbmZvcmNlIHRoYXQgY2UuY29udGV4dCgpIHJldHVy bnMgYSByZWFsDQpjb250ZXh0Lg0KLSBUaGUgZXhwb3NpdGlvbiBhdHRlbXB0cyB0byBkbyB0aGUg cm9sZSBvZiB0aGUgcmVmZXJlbmNlIGFuZCByZXBsaWNhdGUgdGhlDQpmdWxsIGNvbmNlcHRzIGJ1 dCBpdOKAmXMgZHJpZnRpbmcgYW5kIG91dCBvZiBkYXRlLg0KLSBUaGVyZSBhcmUgc2ltcGxlciB3 YXlzIHRvIGV4cHJlc3MgdGhlc2UgcmVxdWlyZXMgY2xhdXNlcyBvZiB0aGUgRXhlY3V0b3INCmNv bmNlcHRzIGJlY2F1c2UgdGhleeKAmXJlIGp1c3QgYSBjb25qdW5jdGlvbi4NCi0g4oCcRXhlY3V0 b3JzIGFuZCBFeGVjdXRpb24gQ29udGV4dHPigJ0gbmVlZHMgbXVjaCBiZXR0ZXIgZXhhbXBsZXMg Zm9yDQpldmVyeXRoaW5nLg0KLSBJIGZpbmQgdGhlIGNvbmNlcHQgb2YgYW4gZXhlY3V0b3JfcmVm IGEgbGl0dGxlIHdlaXJkLCBiZWNhdXNlIEkgdGhvdWdodA0KZXhlY3V0b3JzIHdlcmUgYWxyZWFk eSBhbG1vc3Qgc29ydCBvZiByZWZlcmVuY2UgdHlwZXMgd2l0aGluIHRoZSBleGVjdXRvcg0KY29u dGV4dC4gVGhlbiBJIGtub3cgdGhpcyBmdW5jdGlvbiBpcyBtb3JlIGFib3V0IHR5cGUtZXJhc3Vy ZSB0aGFuIGFib3V0DQpjcmVhdGluZyByZWZlcmVuY2UgdHlwZXMsIGJ1dCB0aGF04oCZcyBhbm90 aGVyIHByb2JsZW0gYmVjYXVzZSB3ZSBoYXZlDQphbHJlYWR5IGJlZW4gdXNpbmcgXCpcX3JlZiBm b3IgcmVmZXJlbmNlIHR5cGVzIGluIGJvb3N0IGxpYnJhcmllcywgc3VjaCBhcw0KaW4gYm9vc3Q6 OnVybHM6OnNlZ21lbnRzX3JlZi4gSSB0aGluayB0aGUgdHlwaWNhbCBuYW1lIHdvdWxkIGJlDQph bnlfZXhlY3V0b3Igb3Igc29tZXRoaW5nIGxpa2UgdGhhdCBidXQgSeKAmW0gc3VyZSB0aGV5IGNv bnNpZGVyZWQgdGhhdCBhbmQNCmRpc2NhcmRlZCB0aGUgaWRlYSBmb3Igc29tZSByZWFzb24uDQot IFRoZSBzZWN0aW9uIOKAnGV4ZWN1dGlvbl9jb250ZXh0OiBCYXNlIENsYXNz4oCdIGlzIGEgbGl0 dGxlIG91dCBvZiBwbGFjZS4gVGhlDQpkb2N1bWVudGF0aW9uIGlzIGxpc3RpbmcgZXhlY3V0b3Ig Y29udGV4dHMgdGhlIGxpYnJhcnkgcHJvdmlkZXMsIGFuZCB0aGlzDQpzZWN0aW9uIGlzIGludGVy bGVhdmVkIHRoZXJlLiBCdXQgdGhpcyBzZWN0aW9uIGlzIGFib3V0IHdyaXRpbmcgeW91ciBvd24N CmNvbnRleHRzLiBUaGlzIHNob3VsZCBjb21lIGJlZm9yZSBvciBhZnRlciB0aGUgbGlzdCBvZiBj b250ZXh0cyB0aGF0IGNvbWUNCndpdGggdGhlIGxpYnJhcnkuDQotIFNvbWUgcGFnZXMgYXJlIHF1 aXRlIGxvbmcsIGFuZCBJIG1pc3MgdGhlIFRvQyBvbiB0aGUgcmlnaHQtaGFuZCBzaWRlIG9uDQp0 aGUgQW50b3JhIHRlbXBsYXRlLiBFdmVuIGlmIGl0IHdlcmUgb3B0aW9uYWwuDQotIEkgZm91bmQg dGhlIHBhZ2Ugb24g4oCcVGhlIElvQXdhaXRhYmxlIFByb3RvY29s4oCdIGEgbGl0dGxlIGNvbmZ1 c2luZyBiZWNhdXNlDQp0aGUgcHJvcGVydGllcyBkZXNjcmliZWQgaGVyZSBkb27igJl0IHNlZW0g c3BlY2lmaWMgdG8gSS9PLiBUaGUgY29uZnVzaW9uDQpzZWVtcyB0byBzdGVtIGZyb20gdGhpcyBh bWJpZ3VvdXMgYW5kIHBhcnRseSByZXRyb2FjdGl2ZWx5IGp1c3RpZmllZA0KcmVsYXRpb25zaGlw IGJldHdlZW4gQ2FweSBhbmQgQ29yb3Npby4gQnV0IHRoZSBmYWN0IGlzIHRoYXQgYWZ0ZXIgcmVh ZGluZw0KYWJvdXQgMzUlIG9mIHRoZSBkb2N1bWVudGF0aW9uLCB0aGUgcmVhZGVyIGRvZXNu4oCZ dCBvbmNlIHNlZSBhbnkgbWVudGlvbiBvZg0KSS9PLiBBbmQgbW9zdCBvZiB0aGUgY29udGVudCBp biB0aGUgZG9jdW1lbnRhdGlvbiBhZnRlciB0aGlzIHBhZ2UgYWxzbw0KZG9lc27igJl0IG1lbnRp b24gSS9PIGF0IGFsbCB1bnRpbCB3ZSBnZXQgdG8gdGhlIG5leHQgcGFyZW50IHNlY3Rpb24uIFNv LCB0bw0KdGhlIHJlYWRlciwgaXQgc2VlbXMgbGlrZSB0aGUgbGlicmFyeSBkb2VzbuKAmXQgaGF2 ZSBhbnkgc3BlY2lhbCBlbnRhbmdsZW1lbnQNCndpdGggSS9PLCBhbHRob3VnaCBpdCBtaWdodCBz dXBwb3J0IGl0LCBhbmQgdGhlbiB0aGUgcmVhZGVyIGhhcyB0bw0KY29tcGxldGVseSBjaGFuZ2Ug d2hhdCB0aGV5IGFyZSBzdXBwb3NlZCB0byBleHBlY3QgYWZ0ZXIgaGF2aW5nIGJlZW4NCnJlYWRp bmcgdGhlIGRvY3VtZW50YXRpb24gZm9yIGhvdXJzIG9yIGRheXMsIGRlcGVuZGluZyBvbiBob3cg ZGVlcGx5DQp0aGV54oCZcmUgcmVhZGluZyBpdC4gV2hhdOKAmXMgZXZlbiBtb3JlIGNvbmZ1c2lu ZyBpcyB0aGF0IHRoaXMgcGFnZSBkb2VzbuKAmXQNCm1lbnRpb24gSS9PIG11Y2ggYXQgYWxsLiBU aGUgb25seSBtZW50aW9uIG9mIEkvTyBvbiB0aGlzIHBhZ2UgaXMgaW4gYQ0KY29udGV4dCB0aGF0 IHJlZXhwbGFpbnMgdGhlIGNvbmNlcHRzIHN1cHBvcnRlZCBieSB0aGUgcnVuX2FzeW5jIGZ1bmN0 aW9uLg0KU28sIGlmIHRoaXMgcGFnZSBjb250ZW50IGlzIGNvbXBsZXRlLCBpdCBzZWVtcyBsaWtl IHRoZSBjb25jZXB0IGNvdWxkDQpzaW1wbHkgbm90IGJlIGF0dGFjaGVkIHRvIEkvTyBiZWNhdXNl IHdlIGFsc28gbmVlZCBleGVjdXRvcnMsIHN0b3AgdG9rZW5zLA0KYW5kIGFsbG9jYXRvcnMgaW4g b3RoZXIgYXBwbGljYXRpb25zLiDigJxCdXQgcmVhbCBJL08gY29kZSBuZWVkcyBtb3JlOuKAnSBj b3VsZA0KanVzdCBzYXkg4oCcQnV0IHJlYWwgYXBwbGljYXRpb25zIG5lZWRzIG1vcmU64oCdIGFu ZCB0aGUgY29uY2VwdCB3b3VsZCBzdGlsbCBiZQ0KY29ycmVjdCB3aXRoIG5vIG1lbnRpb24gdG8g SS9PLg0KLSBUaGUgc2VjdGlvbiDigJxUaGUgSW9Bd2FpdGFibGUgUHJvdG9jb2zigJ0gY291bGQg anVzdCBoYXZlIGV4YW1wbGVzIG9mIHRoZQ0KZW52aXJvbm1lbnQgYmVpbmcgcHJvcGFnYXRlZCAo aW4gb3RoZXIgd29yZHMsIGl0IGNvdWxkIGp1c3QgZXhwbGFpbiBob3cgdG8NCnVzZSBpdCkgYmVm b3JlIGRlc2NyaWJpbmcgaG93IGl0IHdvcmtzIGFuZCBob3cgdHJ5aW5nIHRvIGR1cGxpY2F0ZSB0 aGUNCnJlZmVyZW5jZS4gSW4gZmFjdCwgdGhlc2UgZHVwbGljYXRlcyBvZiB0aGUgcmVmZXJlbmNl IGluIHRoZSBleHBvc2l0aW9uIGFyZQ0Kbm90IG9ubHkgdW5oZWxwZnVsIGJ1dCBhbHNvIHByb25l IHRvIGRyaWZ0aW5nIHZlcnkgZWFzaWx5LiBBSSBnaXZlcyB0aGUNCmltcHJlc3Npb24gdGhhdCBp dOKAmXMgbm93IGNoZWFwIHRvIHdyaXRlLCBidXQgdGhpcyBkb2VzbuKAmXQgaW5jbHVkZSB0aGUg Y29zdA0Kb2YgbWFpbnRhaW5pbmcgaXQuDQotIOKAnEEgY29tcGxldGUgYXdhaXRhYmxlIHN0aWxs IHByb3ZpZGVzIGBhd2FpdF9yZWFkeWAgYW5kIGBhd2FpdF9yZXN1bWVgIHNvDQppdCBjYW4gYmUg YGNvX2F3YWl0YC1lZDsgdGhlIGNvbmNlcHQgc2ltcGx5IGRvZXMgbm90IHRlc3QgZm9yIHRoZW3i gJ0uIFdoeQ0Kbm90IGp1c3QgdGVzdCBmb3IgdGhlbSBzbyB0aGUgbmFtZSBtYXRjaGVzIHRoZSBj aGVjaz8gT3IgcmVuYW1lIGl0IHNvIGl0DQphbHNvIG1hdGNoZXM/DQotIFRoaXMgd2hvbGUgcGFn ZSBvbiBUaGUgSW9Bd2FpdGFibGUgUHJvdG9jb2wgaXMgdmVyeSB0aXJpbmcuIEl04oCZcyBmdWxs IG9mDQppbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCB0aGVuIGEgY3VzdG9tIGNsYXNzLCBidXQgbm90 IGEgc2luZ2xlIGV4YW1wbGUgb2YgYQ0KdGFzayBydW5uaW5nIGFuZCBiZW5lZml0aW5nIGZyb20g YW55IG9mIHRoaXMuIFdpdGhvdXQgYW4gZXhhbXBsZSwgaXTigJlzIGhhcmQNCnRvIGV4cGxhaW4g aW4gd2hhdCBjb250ZXh0IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHdvdWxkIGJlIGNhbGxlZC4g SSB0aGluaw0KdGhpcyBjcml0aWNpc20gYXBwbGllcyB0byBhbG1vc3QgZXZlcnl0aGluZyBpbiB0 aGUgZG9jdW1lbnRhdGlvbiwgc28gSeKAmWxsDQp0cnkgdG8gc3RvcCByZXBlYXRpbmcgbXlzZWxm Lg0KLSBUaGUgZG9jdW1lbnRhdGlvbiBoYXMgZ29vZCBleGFtcGxlIHNuaXBwZXRzIHRoYXQgZXhw bGFpbiBob3cgdG8gdXNlDQp3ZWxsLWtub3duIGZ1bmN0aW9uYWxpdGllcyBvZiB0aGUgU1RMIChs aWtlIHN0ZDo6c3RvcF90b2tlbiksIGJ1dCBpdA0KZG9lc27igJl0IGhhdmUgZXhhbXBsZXMgb2Yg dGhlIHNhbWUgbGV2ZWwgb2YgcXVhbGl0eSBmb3IgdGhlIGxpYnJhcnnigJlzIG93bg0KdXRpbGl0 aWVzLiBNeSBpbnR1aXRpb24gaXMgdGhhdCB0aGlzIGlzIGJlY2F1c2UgQUkgaXMgYWxyZWFkeSB0 cmFpbmVkIG9uDQpleGlzdGluZyB0aGluZ3MsIHNvIGl0IGNvdWxkIGNyZWF0ZSBnb29kIGNvbnRl bnQgZm9yIGV4aXN0aW5nIGNvbmNlcHRzIGFuZA0KZGlkbuKAmXQgZ2VuZXJhdGUgY29udGVudCBh cyBuaWNlIGZvciB0aGUgbmV3IGNvbmNlcHRzLiBGb3IgaW5zdGFuY2UsIHRoZQ0KZXhhbXBsZXMg Zm9yIHN0ZDo6c3RvcF90b2tlbiBleGVtcGxpZnkgc3RkOjpzdG9wX3Rva2VuIHdpdGhvdXQgY29y b3V0aW5lcw0KdW50aWwgbXVjaCBsYXRlci4gTXVjaCBvZiB0aGlzIOKAnFBhcnTigJ0gb2YgdGhl IHBhZ2UgY291bGQgYmUgaW4gdGhlIGluaXRpYWwNCnR1dG9yaWFscy4NCi0g4oCcU3RvcCBUb2tl bnMgYW5kIENhbmNlbGxhdGlvbuKAnSBjb250YWlucyBhIGxhcmdlIGhlYWRpbmcgY2FsbGVkIOKA nFBhcnQgNOKAnQ0KYW5kIGl04oCZcyBhIHNpbmdsZSBwYXJhZ3JhcGguIFRoaXMgZG9lc27igJl0 IG1ha2UgbXVjaCBzZW5zZS4gSWYgaXTigJlzIGp1c3QgYQ0Kc21hbGwgZGV0YWlsLCB0aGVyZeKA mXMgbm8gcmVhc29uIHRvIGNhbGwgaXQgYSDigJxQYXJ04oCdIGFuZCBtYWtlIGEgYmlnIGRlYWwN CmFib3V0IGl0LiBUbyBiZSBob25lc3QsIEkgZG9u4oCZdCBzZWUgd2hhdOKAmXMgc3BlY2lhbCBh Ym91dCB0aGlzIHBhZ2UgdG8gbWFrZQ0KaXQgZGVzZXJ2ZSBleHBsaWNpdCDigJxQYXJ04oCdcyBp bnN0ZWFkIG9mIHJlZ3VsYXIgaGVhZGluZ3MuDQotIEZvciB3aGVuX2FsbCBhbmQgd2hlbl9hbnks IGl04oCZcyBub3QgY2xlYXIgdG8gbWUgZnJvbSB0aGUgZXhhbXBsZXMgaG93IHRvDQpjb21tdW5p Y2F0ZSBub24tZXhjZXB0aW9uYWwgc3VjY2Vzcy9mYWlsdXJlIGFuZCB3aGF0IHRoZSByZWxhdGlv bnNoaXAgd2l0aA0Kc3RvcCB0b2tlbnMgaXMgKGlmIGFueSkgZm9yIHRoZSBhc3N1bXB0aW9ucyBh Ym91dCBzdWNjZXNzIGFuZCBmYWlsdXJlIHNvDQp0aGF0IG90aGVyIHRhc2tzIGNhbiBiZSBjYW5j ZWxlZCBhY2NvcmRpbmdseS4NCi0gRm9yIHdoZW5fYWxsIGFuZCB3aGVuX2FueSwgSSB0aG91Z2h0 IHRoZSB0eXBpY2FsIHR5cGUgdG8gcmVwcmVzZW50IGENCnJlZ3VsYXIgdm9pZCB3b3VsZCBiZSBz dGQ6Om1vbm9zdGF0ZSByYXRoZXIgdGhhbiB0dXBsZSZsdDsmZ3Q7Lg0KLSBUaGUgc2VjdGlvbiBl eHBsYWluaW5nIHdoZW5fYW55IGNhc3VhbGx5IG1lbnRpb25zIGlvX3Rhc2sgd2l0aG91dCBhbnkN CnByZXZpb3VzIGV4cGxhbmF0aW9uIGFuZCBJIHN1c3BlY3QgdGhlIHNlbnRlbmNlIGlzIG5vdCBl dmVuIGNvcnJlY3QgdGhhdA0KdGhpcyBpcyByZXF1aXJlZCBhYm91dCB0aGUgY2hpbGRyZW4uDQot IEFzIHVzdWFsLCB0aGUgRnJhbWUgQWxsb2NhdG9ycyBwYWdlIGNvdWxkIHN0YXJ0IHdpdGggdGhl IOKAnFVzaW5nIEN1c3RvbQ0KRXhhbXBsZXPigJ0gYW5kIHVzZSB0aGF0IGFzIHRoZSBzdGFydGlu ZyBwb2ludCBmb3IgbGF0ZXIgZGlzY3Vzc2luZyB0aGUNCmludGVybmFsIGRldGFpbHMuDQotIElu IHRoZSBleGFtcGxlIGZvciDigJxTY29wZSBWYXJpYWJsZXMgdG8gUmVkdWNlIEZyYW1lIFNpemXi gJ0sIEkgY291bGRu4oCZdA0KZmluZCB3aGVyZSByZXBseSBjb21lcyBmcm9tLiBUaGlzIHNlZW1z IGltcG9ydGFudCB0byBtYWtlIHRoZSBjb2RlDQpyZXByZXNlbnRhdGl2ZSBvZiBzb21ldGhpbmcg dGhhdCBuZWVkcyB0aGUgYnVmZmVyLg0KLSDigJx0aGUgY29tcGlsZXIgY2FuIHJldXNlIHRoZSBz YW1lIGZyYW1lIG1lbW9yeSBmb3IgYm90aCDigJQgZXZlbiBvbiBDbGFuZ+KAnToNCndoYXQgZG9l cyDigJxldmVuIG9uIENsYW5n4oCdIG1lYW4gaGVyZT8NCi0gSSBmaW5kIHRoZSBkaXNjdXNzaW9u IGFib3V0IHZhcmlhYmxlIHNjb3BlcyBhIGxpdHRsZSBvdXQgb2YgcGxhY2UgaGVyZS4NCkl04oCZ cyBhIGRpZGFjdGljIGN1cmlvc2l0eSBhbmQgaXTigJlzIGludGVyZXN0aW5nLiBCdXQgaXTigJlz IG5vdCBhYm91dCB3aGF0IHRoZQ0KbGlicmFyeSBwcm92aWRlcyBhbmQgaXMgbm90IG5lY2Vzc2Fy eSB0byBhbnkgbGlicmFyeSBjb25jZXB0IGFib3V0IHRvIGJlDQpleHBsYWluZWQgYWZ0ZXIgaXQu IFRoZSBzdGF0ZW1lbnRzIGFsc28gc2VlbSB0b28gY2lyY3Vtc3RhbnRpYWwuDQotIEluZm9ybWF0 aW9uIHN1Y2ggYXMg4oCcR0NDIHZzIENsYW5nIEZyYW1lIFNpemVz4oCdIGlzIGludGVyZXN0aW5n IGJ1dCBjb3VsZA0KYmUgaW4gYWRtb25pdGlvbnMuIEl0IHdvdWxkIGdpdmUgdGhlIHRleHQgYmV0 dGVyIHZpc3VhbCBzdHJ1Y3R1cmUsIHdoaWNoIGlzDQptaXNzaW5nLCBhbmQgb3JpZW50IHRoZSBy ZWFkZXIgYSBsaXR0bGUgYmV0dGVyLg0KLSBUaGUgZXhwbGFuYXRpb24gaW4g4oCcTGFtYmRhIENv cm91dGluZSBDYXB0dXJlc+KAnSDihpIg4oCcV2h5IEl0IEZhaWxz4oCdIGhhcyBsb3RzDQpvZiBz dGVwcyB1bnJlbGF0ZWQgdG8gdGhlIHByb2JsZW0uIEl0IHNlZW1zIGxpa2Ugc3RlcCA2IGlzIHJl bGF0ZWQgdG8gdGhlDQp0d28tc3RlcCBwYXR0ZXJuIEkgaG9wZSB0aGVyZeKAmXMgYSBmaXggZm9y IGFuZCBhdCBsZWFzdCBhbiBhbHRlcm5hdGl2ZQ0Kc29sdXRpb24gdGhhdCBibG9ja3MgdGhpbmdz IGFzIGV4cGVjdGVkIGV2ZW4gaWYgdGhlIGRlc2lyZWQgb3B0aW1pemF0aW9ucw0KaGF2ZSB0byBi ZSBkaXNhYmxlZC4gVGhlIGV4cGxhbmF0aW9uIGFsc28gYmVncyB0aGUgcXVlc3Rpb24gYmVjYXVz ZSBpdA0KZG9lc27igJl0IHJlYWxseSBleHBsYWluIHdoeSB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhl IG91dGVyIG1vdmVkLWZyb20gaW1wbGllcw0KdGhlIGludmFsaWRhdGlvbiBvZiB0aGUgaW5uZXIg bW92ZWQtdG8gdGFzay4gSSB0aGluayBhbm90aGVyIHByb2JsZW0gaGVyZQ0KaXMgdGhlIHNlY3Rp b24g4oCcVGhlIFByb2JsZW3igJ0gaXMgYWxzbyB1c2luZyBhbiBleGFtcGxlIHRoYXTigJlzIElJ RkUsIGJ1dA0KYmVjYXVzZSB0aGlzIGNvbmNlcHQgaXMgb25seSBwcmVzZW50ZWQgbGF0ZXIsIHRo ZSBjYWxsIGlzIG9ubHkgYCgpYCwgYW5kDQp0aGUgdGFzayB2YXJpYWJsZSB1c2VzIGBhdXRvYCwg aXTigJlzIHZlcnkgZWFzeSB0byBtaXNzIGFuZCBhdCBmaXJzdCBnbGFuY2UNCnRoaW5rIHRoYXQg YHRhc2tgIHJlcHJlc2VudHMgdGhlIGxhbWJkYSByYXRoZXIgdGhhbiB0aGUgcmVzdWx0IG9mIHRo ZQ0KaW52b2NhdGlvbi4NCi0gSSB0aG91Z2h0IGNhcHk6OnRlc3Q6OnJ1bl9ibG9ja2luZyB3b3Vs ZCBiZSBhdmFpbGFibGUgZnJvbSBjYXB5OjogZXZlbiBpZg0Kd2l0aCBhbm90aGVyIG5hbWUuIEl0 IHNlZW1zIGxpa2Ugc29tZXRoaW5nIHBlb3BsZSBkbyBvZnRlbi4NCi0gVGhlIOKAnFF1aWNrIFJl ZmVyZW5jZeKAnSBmb3IgIkxhbWJkYSBDb3JvdXRpbmUgQ2FwdHVyZXPigJ0gc2hvdWxkIGhhdmUg dGhlDQpzYWZlIHBhdHRlcm5zIGZpcnN0IGFuZCB0aGUgdW5zYWZlIG9uZXMgbGF0ZXIuDQotIFRo ZSBzZWN0aW9uICJTY2F0dGVyL0dhdGhlciBJL0/igJ0gc2F5cyB0aGUgb25seSBhbHRlcm5hdGl2 ZSBpcyB0byBjcmVhdGUNCmNvcGllcywgYnV0IHRoZSBtb3N0IG9idmlvdXMgYWx0ZXJuYXRpdmUg dG8gbWUgaXMgdG8gY2FsbCB0aGUgZnVuY3Rpb24NCnR3aWNlLiBJdOKAmXMgc3RpbGwgbm90IGdy ZWF0LCBidXQgaXTigJlzIG5vdCB0aGUgc2FtZS4NCi0gSSBkb27igJl0IGtub3cgaG93IG90aGVy IHBlb3BsZSBmZWVsIGFib3V0IHRoaXMsIGJ1dCDigJxUaGUgU3BhbiBSZWZsZXggZm9yDQpNdWx0 aXBsZSBCdWZmZXJz4oCdIGRpZG7igJl0IG9jY3VyIHRvIG1lIGF0IGFsbC4NCi0gVGhlIHNlY3Rp b24g4oCcU1RMIFBhcmFsbGVs4oCdIHNlZW1zIHRvIGJlIGNsYWltaW5nIHRvbyBtdWNoLiBFc3Bl Y2lhbGx5IHdoZW4NCnRoZSBhbGdvcml0aG0gZXhwZWN0cyBhIHJhbmdlIHJhdGhlciB0aGFuIGl0 ZXJhdG9ycy4NCi0gVGhlIHNlY3Rpb24g4oCcV2h5IE5vdCBzdGQ6OmJ5dGU/4oCdIGlzIGVsaW1p bmF0aW5nIGEgcG9zc2liaWxpdHkgdGhhdCBzaG91bGQNCmJlIGVsaW1pbmF0ZWQgcmlnaHQgYXQg dGhlIGJlZ2lubmluZy4gQW5kIHRoZSBwYWdlIGlzIGxhY2tpbmcgZXhhbXBsZXMsDQplc3BlY2lh bGx5IGZvciB0aGluZ3MgbGlrZSDigJxDYXB5IHByb3ZpZGVzIGBjb25zdF9idWZmZXJgIGFuZA0K YG11dGFibGVfYnVmZmVyYCBhcyBzZW1hbnRpY2FsbHkgbmV1dHJhbCBidWZmZXIgdHlwZXMuIFRo ZXkgaGF2ZSBrbm93bg0KbGF5b3V0IGNvbXBhdGlibGUgd2l0aCBPUyBzdHJ1Y3R1cmVzIChgaW92 ZWNgLCBgV1NBQlVGYCkgd2l0aG91dCBpbXBvc2luZw0KYHN0ZDo6Ynl0ZWAgc2VtYW50aWNz4oCd LiBUaGVyZSBhcmUgbm8gZXhhbXBsZXMgdXNpbmcgdGhlc2UgdHlwZXMuIEluIGFueQ0KY2FzZSwg dGhpcyBpcyBhbm90aGVyIGludGVybGVhdmVkIGRlc2lnbiByYXRpb25hbGUgcGFnZSB3aG9zZSBj b250ZW50IGNvdWxkDQpiZSBpbnRlcmxlYXZlZCB3aXRoIGxpYnJhcnkgY29udGVudCBhcyBhZG1v bml0aW9ucy4NCi0gVGhlIGV4cGxhbmF0aW9uIGluIOKAnFdoeSBOb3Qgc3RkOjpieXRlP+KAnSBp cyBjb250cmFkaWN0b3J5LiBUaGUgY2xhaW0gaXMNCnRoYXQgc3RkOjpieXRlIHNheXMgInRoaXMg aXMgcmF3IGJ5dGVz4oCdLiBCdXQgdGhlIGRlc2NyaXB0aW9uIGZvciB2b2lkXCoNCnRoYXQg4oCc VGhlIE9TIGRvZXNu4oCZdCBjYXJlIGlmIHRoZSBieXRlcyByZXByZXNlbnQgdGV4dCwgaW50ZWdl cnMsIG9yDQpjb21wcmVzc2VkIGRhdGHigJ0gdXNpbmcgdGhlIHdvcmQgYnl0ZXMgYWdhaW4gaXMs IGluIHByYWN0aWNlLCBjbGFpbWluZw0Kdm9pZFwqIGFsc28gc2F5cyAidGhpcyBpcyByYXcgYnl0 ZXPigJ0uIFRoZSB3b3JkIOKAnGJ5dGVz4oCdIGlzIGxpdGVyYWxseSB0aGF0LA0KYW5kIHRoZSBm YWN0IHRoYXQgdGhleSBhcmUgb3BhcXVlIHJlcHJlc2VudGF0aW9ucyBmb3Igb3RoZXIgdGhpbmdz IGlzDQpsaXRlcmFsbHkgdGhlIGRlZmluaXRpb24gb2Yg4oCccmF34oCdIGluIHRoaXMgY29udGV4 dC4gSXTigJlzIGJhc2ljYWxseSBzYXlpbmcNCnRoZSBzYW1lIHRoaW5nIGFib3V0IHN0ZDo6Ynl0 ZSBhbmQgdm9pZFwqLCBhbmQgdXNpbmcgdGhhdCB0byBqdXN0aWZ5DQp2b2lkXCouIEnigJltIG5v dCBzYXlpbmcgc3RkOjpieXRlIGlzIHRoZSByaWdodCBjaG9pY2UuIE9ubHkgdGhhdCB0aGlzDQpq dXN0aWZpY2F0aW9uIGlzIG5vdCB0aGUgYmVzdCBvbmUuIEFsc28sIHNlY3Rpb24gU3lzdGVtIEkv TyBJbnRlZ3JhdGlvbg0KZGVzY3JpYmVzIHRoYXQgQ0hBUiBpcyB1c2VkIGludGVybmFsbHkgb24g d2luZG93cy4NCi0gVGhlIOKAnEJ1ZmZlciBTZXF1ZW5jZXPigJ0gcGFnZSBhbmQgaXRzIGNvbnRl bnRzIGFyZSBhcnJpdmluZyBhIGxpdHRsZSB0b28NCmxhdGUuIFRoZSBwcmV2aW91cyBwYWdlcyBh bGwgZGlzY3VzcyBidWZmZXIgc2VudGVuY2VzIGV2ZW4gbW9yZSB0aGF0IGJ1ZmZlcg0KdHlwZXMu DQotIFRoZSBleGFtcGxlIGZvciDigJxidWZmZXJfc2xpY2XigJ0gZG9lc27igJl0IHNlZW0gZ3Jl YXQgYmVjYXVzZSBJIGhhdmUgdGhlDQppbXByZXNzaW9uIHlvdSBjb3VsZCBwcm9iYWJseSBkbyB0 aGUgc2FtZSB0aGluZyB3aXRob3V0IHRoZSBidWZmZXJfc2xpY2UuDQpUaGUgZXhhbXBsZSB1c2Vz IHRoZSBmaXJzdCBwYXJhbWV0ZXIsIGJ1dCB0aGUgZXhwbGFuYXRpb24gdXNlcyAzIHBhcmFtZXRl cnMuDQotIEkgZmluZCB0aGUgbmFtZSBvZiB0aGUgYnVmZmVyX2xlbmd0aCBmdW5jdGlvbiBhIGxp dHRsZSBjb25mdXNpbmcuIFRoZQ0KaW5wdXQgaXMgYSBzZXF1ZW5jZSByYXRoZXIgdGhhbiBhIGJ1 ZmZlciAoYnVmZmVyIGlzIGEgY2FzZSBvZiBidWZmZXINCnNlcXVlbmNlIGJ5IHRoZSBvdGhlciBj b25jZXB0IGJ1dCB0aGlzIGlzIHRoZSBpbnZlcnNlIHJlbGF0aW9uc2hpcCkgYW5kIHRoZQ0KbmFt ZSBwbHVzIGl0cyB2ZXJ5IGV4aXN0YW5jZSBtYWtlcyBpdCBzZWVtIGxpa2UgaXQgZG9lcyBzb21l dGhpbmcgbW9yZQ0Kc3BlY2lhbCAodGhlIGJ5dGVzKSB0aGFuIGp1c3QgcmV0dXJuaW5nIHNvbWV0 aGluZyBsaWtlIHRoZQ0K4oCcc3RkOjpyYW5nZXM6OnNpemXigJ0uIOKAnGJ1ZmZlcl9zaXpl4oCd IG1lYXN1cmluZyBieXRlcyBtYWtlcyBhbGwgb2YgdGhhdCAxMHgNCm1vcmUgY29uZnVzaW5nLiBV bmxlc3MgeW914oCZcmUgdXNpbmcgdGhlIGxpYnJhcnkgKG9yIHRoZSBvbmUgdGhpcyBwYXR0ZXJu DQpjYW1lIGZyb20pIHRvbyBvZnRlbiwgZXZlcnlvbmUgd2lsbCBiZSBsb29raW5nIGF0IHRoZSBk b2N1bWVudGF0aW9uIGV2ZXJ5DQp0aW1lIHRoZXkgbmVlZCB0aGlzIG9wZXJhdGlvbi4NCi0g4oCc Q2FweeKAmXMgQ29yb3NpbyBsaWJyYXJ5IGV4cG9zZXMgdGhlc2Ugb3B0aW1pemF0aW9ucyB3aGVy ZSBhdmFpbGFibGXigJ06IGhvdz8NCi0g4oCcRHluYW1pYyBCdWZmZXJz4oCdIGlzIG9uY2UgYWdh aW4gcmVwbGljYXRpbmcgdGhlIEFQSSBleGF1c3RpdmVseSBpbnN0ZWFkDQpvZiBwcm92aWRpbmcg ZXhhbXBsZXMgYW5kIGFuIGV4cGxhbmF0aW9uLg0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KQm9vc3QgbWFpbGluZyBsaXN0IC0tIGJvb3N0QGxpc3RzLmJv b3N0Lm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIGJvb3N0LWxlYXZlQGxpc3Rz LmJvb3N0Lm9yZwpodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9tYWlsbWFuMy9saXN0cy9ib29zdC5s aXN0cy5ib29zdC5vcmcvCkFyY2hpdmVkIGF0OiBodHRwczovL2xpc3RzLmJvb3N0Lm9yZy9hcmNo aXZlcy9saXN0L2Jvb3N0QGxpc3RzLmJvb3N0Lm9yZy9tZXNzYWdlLzNESkdWVFFZWElOVk9ZSVM1 Q0NZN0ZJQ1E3RE1YTzdQLyAK