From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Paul E. McKenney" Subject: Re: RCU consistency guarantees Date: Sun, 15 Dec 2019 16:57:39 -0800 Message-ID: <20191216005739.GP2889__31933.4573506907$1576457879$gmane$org@paulmck-ThinkPad-P72> References: <512711764.1078.1575647945136.JavaMail.zimbra@efficios.com> <20191206163052.GG2889@paulmck-ThinkPad-P72> <20191207063730.GN2889@paulmck-ThinkPad-P72> <20191207224232.GR2889@paulmck-ThinkPad-P72> <20191215203019.GN2889@paulmck-ThinkPad-P72> Reply-To: paulmck@kernel.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by lists.lttng.org (Postfix) with ESMTPS id 47bjYJ6JVrz18xq for ; Sun, 15 Dec 2019 19:57:40 -0500 (EST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" To: Yuxin Ren Cc: lttng-dev List-Id: lttng-dev@lists.lttng.org T24gU3VuLCBEZWMgMTUsIDIwMTkgYXQgMDU6MTA6MTFQTSAtMDUwMCwgWXV4aW4gUmVuIHdyb3Rl Ogo+IE9uIFN1biwgRGVjIDE1LCAyMDE5IGF0IDM6MzAgUE0gUGF1bCBFLiBNY0tlbm5leSA8cGF1 bG1ja0BrZXJuZWwub3JnPiB3cm90ZToKPiAKPiA+IE9uIFNhdCwgRGVjIDE0LCAyMDE5IGF0IDAx OjMxOjMxQU0gLTA1MDAsIFl1eGluIFJlbiB3cm90ZToKPiA+ID4gSGkgUGF1bAo+ID4gPgo+ID4g PiBPbiBTYXQsIERlYyA3LCAyMDE5IGF0IDU6NDIgUE0gUGF1bCBFLiBNY0tlbm5leSA8cGF1bG1j a0BrZXJuZWwub3JnPgo+ID4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4gT24gU2F0LCBEZWMgMDcsIDIw MTkgYXQgMDM6MDQ6NDJQTSAtMDUwMCwgWXV4aW4gUmVuIHdyb3RlOgo+ID4gPiA+ID4gVGhhbmtz IGEgbG90IGZvciB5b3VyIGhlbHAuIEkgaGF2ZSBzb21lIHF1ZXN0aW9ucyBiZWxvdy4KPiA+ID4g PiA+Cj4gPiA+ID4gPiBPbiBTYXQsIERlYyA3LCAyMDE5IGF0IDE6MzcgQU0gUGF1bCBFLiBNY0tl bm5leSA8cGF1bG1ja0BrZXJuZWwub3JnPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4KPiA+ID4g PiA+ID4gT24gRnJpLCBEZWMgMDYsIDIwMTkgYXQgMDc6MDA6MTNQTSAtMDUwMCwgWXV4aW4gUmVu IHdyb3RlOgo+ID4gPiA+ID4gPiA+IFRoYW5rcyBzbyBtdWNoIGZvciB5b3VyIGdyZWF0IGhlbHAu Cj4gPiA+ID4gPiA+ID4gSSBkZWZpbml0ZWx5IHdpbGwgbG9vayBhdCB0aG9zZSByZXNvdXJjZXMg YW5kIHBhcGVycyEKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IE9uZSBtb3JlIHRoaW5nIHRo YXQgSSBhbSBjb25mdXNlZAo+ID4gPiA+ID4gPiA+IEFzIEkgbWVudGlvbmVkIGVhcmxpZXIsIHNv bWVvbmUgc2FpZCBPbmUga2V5IGRpc3RpbmN0aW9uIGlzIHRoYXQKPiA+IGJvdGgKPiA+ID4gPiA+ ID4gTVZDQwo+ID4gPiA+ID4gPiA+IGFuZCBSTFUgcHJvdmlkZSBtdWNoIHN0cm9uZ2VyIGNvbnNp c3RlbmN5IGd1YXJhbnRlZXMgdG8gcmVhZGVycwo+ID4gdGhhbgo+ID4gPiA+IGRvZXMKPiA+ID4g PiA+ID4gPiBSQ1UgLi4uKSAoaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzc3NzAzNi8pLgo+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiBUaGF0IHNvbWVvbmUgd2FzIGluIGZhY3QgbWUuICA7LSkKPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBJIGFtIG5vdCBzdXJlIGlmIHRoZSBhYm92ZSBzdGF0ZW1l bnQgaXMgY29ycmVjdCBvciBub3QuIEJ1dCBpbgo+ID4gPiA+IGdlbmVyYWwsCj4gPiA+ID4gPiA+ ID4gSG93IGNhbiB3ZSBjb21wYXJlIFJDVSBjb25zaXN0ZW5jeSBndWFyYW50ZWVzIHRvIG90aGVy IHRlY2huaXF1ZXMKPiA+ID4gPiAoc3VjaAo+ID4gPiA+ID4gPiBhcwo+ID4gPiA+ID4gPiA+IFJM VSk/Cj4gPiA+ID4gPiA+ID4gSG93IHRvIHJlYXNvbiBhYm91dCB3aGljaCBvbmUgaGFzIHN0cm9u Z2VyIG9yIHdlYWtlciBndWFyYW50ZWVzPwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJIHN1Z2dl c3Qgc3RhcnRpbmcgZnJvbSB0aGUgdXNlIGNhc2UuICBGb3IgY29uY3JldGVuZXNzLCBsZXQncwo+ ID4gYXNzdW1lCj4gPiA+ID4gPiA+IHRoYXQgd2UgYXJlIHVzaW5nIGEgaGFzaCB0YWJsZS4gIEF0 IG9uZSBleHRyZW1lLCBpbWFnaW5lIGEgdXNlCj4gPiBjYXNlIGluCj4gPiA+ID4gPiA+IHdoaWNo IGVhY2ggZXZlbnQgbWFrZXMgZXhhY3RseSBvbmUgaGFzaC10YWJsZSBvcGVyYXRpb24uICBObwo+ ID4gPiA+IGluZm9ybWF0aW9uCj4gPiA+ID4gPiA+IGlzIGNhcnJpZWQgZnJvbSBvbmUgZXZlbnQg dG8gdGhlIG5leHQuICAoVGhpcyBtaWdodCB3ZWxsIGJlIHRoZQo+ID4gY2FzZQo+ID4gPiA+ID4g PiBmb3Igc2ltcGxlIHdlYiBzZXJ2ZXIuKSAgU3VjaCBhIHVzZSBjYXNlIGNhbm5vdCB0ZWxsIHRo ZSBkaWZmZXJlbmNlCj4gPiA+ID4gPiA+IGJldHdlZW4gUkNVIG9uIHRoZSBvbmUgaGFuZCBhbmQg TVZDQy9STFUgb24gdGhlIG90aGVyLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBBdCB0aGUgb3Ro ZXIgZXh0cmVtZSwgc3VwcG9zZSB0aGF0IGVhY2ggZXZlbnQgZWl0aGVyIGFjY2Vzc2VzIG9yCj4g PiA+ID4gdXBkYXRlcwo+ID4gPiA+ID4gPiBtdWx0aXBsZSBlbnRyaWVzIGluIHRoZSBoYXNoIHRh YmxlLiAgSW4gdGhpcyBjYXNlLCBNVkNDL1JMVSB3aWxsCj4gPiBydWxlCj4gPiA+ID4gPiA+IG91 dCBvdXRjb21lcyB0aGF0IFJDVSB3b3VsZCBwZXJtaXQuICBGb3IgZXhhbXBsZSwgc3VwcG9zZSB3 ZSBoYWQKPiA+IGZvdXIKPiA+ID4gPiA+ID4gZXZlbnRzIGFjY2Vzc2luZyB0d28gZGlmZmVyZW50 IGVsZW1lbnRzIGluIGRpZmZlcmVudCBidWNrZXRzIG9mIHRoZQo+ID4gPiA+ID4gPiBoYXNoIHRh YmxlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAgICAgICAgIEUxOiBBZGRzIDMyIHRvIHRoZSBo YXNoIHRhYmxlLgo+ID4gPiA+ID4gPiAgICAgICAgIEUyOiBBZGRzIDE3MjkgdG8gdGhlIGhhc2gg dGFibGUuCj4gPiA+ID4gPiA+ICAgICAgICAgRTM6IFdpdGhpbiBhIHJlYWQtc2lkZSBjcml0aWNh bCBzZWN0aW9uLCBsb29rcyB1cCAzMiB0aGVuCj4gPiAxNzI5Lgo+ID4gPiA+ID4gPiAgICAgICAg IEU0OiBXaXRoaW4gYSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbiwgbG9va3MgdXAgMTcyOQo+ ID4gdGhlbiAzMi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gR2l2ZW4gZWl0aGVyIE1WQ0Mgb3Ig UkxVLCBpdCB3aWxsIG5vdCBiZSBwb3NzaWJsZSBmb3IgRTMgdG8gZmluZAo+ID4gMzIgYnV0Cj4g PiA+ID4gPiA+IG5vdCAxNzI5IGFuZCBhdCB0aGUgc2FtZSB0aW1lIGZvciBFNCB0byBmaW5kIDE3 MjkgYnV0IG5vdCAzMi4KPiA+IEdpdmVuCj4gPiA+ID4gUkNVLAo+ID4gPiA+ID4gPiB0aGlzIG91 dGNvbWUgaXMgcG9zc2libGUuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiBXaGVuIHlvdSBzYXkgIldp dGhpbiBhIHJlYWQtc2lkZSBzZWN0aW9uIiwgZG8geW91IG1lYW4gd2l0aGluIGEKPiA+IHNpbmds ZQo+ID4gPiA+IHNhbWUKPiA+ID4gPiA+IHJlYWQgc2VjdGlvbj8gc3VjaCBhcwo+ID4gPiA+ID4K PiA+ID4gPiA+ID4gcmVhZF9sb2NrKCkKPiA+ID4gPiA+ID4gbG9va3VwKDMyKQo+ID4gPiA+ID4g PiBsb29rdXAoMTcyOSkKPiA+ID4gPiA+ID4gcmVhZF91bmxvY2soKQo+ID4gPiA+ID4KPiA+ID4g PiA+Cj4gPiA+ID4gPiBIb3cgYWJvdXQgcHV0dGluZyB0d28gbG9va3VwcyBpbnRvIHR3byByZWFk LXNpZGUgc2VjdGlvbnM/IERvIHdlCj4gPiBzdGlsbAo+ID4gPiA+IGhhdmUKPiA+ID4gPiA+IHRo ZSBwcm9ibGVtLCB0aGVuPwo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gcmVhZF9sb2NrKCkKPiA+ID4g PiA+ID4gbG9va3VwKDMyKQo+ID4gPiA+ID4gPiByZWFkX3VubG9jaygpCj4gPiA+ID4gPiA+IHJl YWRfbG9jaygpCj4gPiA+ID4gPiA+IGxvb2t1cCgxNzI5KQo+ID4gPiA+ID4gPiByZWFkX3VubG9j aygpCj4gPiA+ID4KPiA+ID4gPiBXaXRob3V0IGluIGFueSB3YXkgYWdyZWVpbmcgd2l0aCB5b3Vy IGNoYXJhY3Rlcml6YXRpb24gb2YgdGhpcyBhcyBhCj4gPiA+ID4gcHJvYmxlbSwgYmVjYXVzZSBy Y3VfcmVhZF9sb2NrKCkgYW5kIHJjdV9yZWFkX3VubG9jaygpIHByb3ZpZGUKPiA+ID4gPiBhYnNv bHV0ZWx5IG5vIG9yZGVyaW5nIGd1YXJhbnRlZXMgaW4gdGhlIGFic2VuY2Ugb2YgYSBncmFjZSBw ZXJpb2QsCj4gPiA+ID4gYW55IG5vbi1ncmFjZS1wZXJpb2QtcmVsYXRlZCByZW9yZGVyaW5nIHRo YXQgY2FuIGhhcHBlbiB3aXRoIGEgc2luZ2xlCj4gPiA+ID4gUkNVIHJlYWQtc2lkZSBjcml0aWNh bCBzZWN0aW9uIGNhbiBhbHNvIGhhcHBlbiB3aGVuIHRoYXQgY3JpdGljYWwKPiA+ID4gPiBzZWN0 aW9uIGlzIHNwbGl0IGluIHR3byBhcyB5b3UgaGF2ZSBkb25lIGFib3ZlLgo+ID4gPiA+Cj4gPiA+ ID4gPiBDb3VsZCB5b3Uga2luZGx5IGdpdmUgbWUgbW9yZSBjbHVlcyB3aHkgUkNVIGNhbiBzZWUg c3VjaCByZW9yZGVyLAo+ID4gd2hpbGUKPiA+ID4gPiBSTFUKPiA+ID4gPiA+IGNhbiBwcmV2ZW50 IGl0Pwo+ID4gPiA+Cj4gPiA+ID4gSGVyZSBhcmUgbWluaW1hbCBDLWxhbmd1YWdlIGltcGxlbWVu dGF0aW9ucyBmb3IgUkNVIHRoYXQgY2FuIChhbmQgYXJlKQo+ID4gPiA+IGFjdHVhbGx5IHVzZWQ6 Cj4gPiA+ID4KPiA+ID4gR3JlYXQuIFdlIHVzZSB0aGUgc2FtZSB0aGluZyBpbiBvdXIgcmVhbC10 aW1lIHdvcmsgWzFdCj4gPgo+ID4gSXQgaGFzIGJlZW4gYSBwb3B1bGFyIGNob2ljZSBmb3IgNDAg eWVhcnMgbm93LiAgOy0pCj4gPgo+ID4gPiA+ICNkZWZpbmUgcmN1X3JlYWRfbG9jaygpCj4gPiA+ ID4gI2RlZmluZSByY3VfcmVhZF91bmxvY2soKQo+ID4gPiA+Cj4gPiA+ID4gUGxlYXNlIGNvbXBh cmUgdGhlc2UgdG8gdGhlIHJlYWQtc2lkZSBtYXJrZXJzIHByZXNlbnRlZCBpbiB0aGUgUkxVCj4g PiBwYXBlciwKPiA+ID4gPiBhbmQgdGhlbiB0ZWxsIG1lIHlvdXIgdGhvdWdodHMgb24gdGhlIGFu c3dlciB0byB5b3VyIHF1ZXN0aW9uLiAgOy0pCj4gPiA+ID4KPiA+ID4gSSBzdWJtaXQgbXkgaG9t ZXdvcmsgaGVyZSwgYnV0IEkgZG8gbm90IHRoaW5rIEkgZGlkIGl0IHdlbGwuCj4gPiA+IDEuIEkg YmVsaWV2ZSBpbiB0aGUgZGVmYXVsdCBVUkNVIGltcGxlbWVudGF0aW9uLCBpdCBoYXMgbWVtb3J5 IGJhcnJpZXIKPiA+ID4gaW5zaWRlIHRoZSByZWFkX2xvY2sgLyByZWFkX3VubG9jay4KPiA+Cj4g PiBJdCBjZXJ0YWlubHkgd2FzIGF0IG9uZSB0aW1lLiAgQnV0IHlvdSB3b3VsZCBvZiBjb3Vyc2Ug bmVlZCB0byBjaGVjawo+ID4gdG8gc2VlIHdoYXQgYW55IGdpdmVuIHdvcmtlciBhY3R1YWxseSB1 c2VkLgo+ID4KPiA+ID4gMi4gRnJvbSB0aGUgUkxVIHBhcGVyLCBpdCBzaG93cyB0aGUgY29kZSBm b3IgcmVhZC1zaWRlIG9wZXJhdGlvbi4KPiA+ID4gUkxVX1JFQURFUl9MT0NLKGN0eCkKPiA+ID4g ICAgIGN0eC5pcy13cml0ZXLihpBmYWxzZQo+ID4gPiAgICAgY3R4LnJ1bi1jbnTihpBjdHgucnVu LWNudCsxLgo+ID4gPiAgICAgbWVtb3J5IGZlbmNlCj4gPiA+ICAgIGN0eC5sb2NhbC1jbG9ja+KG kGdsb2JhbC1jbG9jawo+ID4gPiBSTFVfUkVBREVSX1VOTE9DSyhjdHgpCj4gPiA+ICAgICBjdHgu cnVuLWNudOKGkGN0eC5ydW4tY250KzEKPiA+ID4gICAgIGlmIChjdHguaXMtd3JpdGVyKQo+ID4g PiAgICAgICAgIFJMVV9DT01NSVRfV1JJVEVfTE9HKGN0eCkKPiA+ID4KPiA+ID4gV2UgY2FuIGln bm9yZSB0aGUgd3JpdGVyIGNoZWNrLCBhcyBpbiBvdXIgY2FzZSwgdGhlIHJlYWRlciBuZXZlciBk bwo+ID4gdXBkYXRlLgo+ID4gPiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgcmVhZC1zaWRlIG9w ZXJhdGlvbnMgYXJlIG9ubHkgdXNlZCB0byBmYWNpbGl0YXRlCj4gPiA+IHRoZSBxdWllc2NlbmNl IGRldGVjdGlvbi4KPiA+ID4gdGhlIHJ1biBjbnQgaXMgdXNlZCB0byBkZWNpZGUgaWYgYSB0aHJl YWQgaXMgYWN0aXZlIChpZiBpdCBpcyBjdXJyZW50bHkKPiA+ID4gaW5zaWRlIGEgcmVhZC1zaWRl IHNlY3Rpb24pLgo+ID4gPiB0aGUgbG9jYWwgY2xvY2sgaXMgdXNlZCB0byBjaGVjayBpZiB0aGUg YWN0aXZlIHRocmVhZCBnb2VzIGludG8gdGhlCj4gPiA+IHJlYWQtc2lkZSBzZWN0aW9uIHZlcnkg bGF0ZSwgc28gaXQgZG9lcyBub3QgcHJldmVudCByZWNsYWltaW5nIG1lbW9yeQo+ID4gPiB1bmxp bmtlZCBiZWZvcmUgaXQgZW50ZXJzIHRoZSByZWFkIHNlY3Rpb24uCj4gPiA+IEhvd2V2ZXIgaSBz ZWUgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIFJMVSBhbmQgUkNVIHJlYWQtc2lkZSBvcGVyYXRpb24K PiA+ID4gcmVnYXJkaW5nIGNvbnNpc3RlbmN5IGd1YXJhbnRlZS4KPiA+ID4gQ291bGQgeW91IGtp bmRseSB0ZWFjaCBtZSBtb3JlPwo+ID4KPiA+IEluIG9yZGVyIHRvIHRlYWNoIHlvdSBtb3JlLCBJ IGRvIG5lZWQgc29tZSBoZWxwIGZyb20geW91LiAgSSBoYXZlIHBvc3RlZAo+ID4gYSBudW1iZXIg b2YgVVJMcyBlYXJsaWVyIGluIHRoaXMgZW1haWwgdGhyZWFkLiAgQ291bGQgeW91IHBsZWFzZSB0 ZWxsCj4gPiBtZSB3aGF0IHlvdSBsZWFybmVkIGZyb20gZWFjaCBvZiB0aGVtPwo+ID4KPiBTdXJl LCBJIHdpbGwgZGVmaW5pdGVseSBsZWFybiB0aG9zZSByZXNvdXJjZXMgeW91IHByb3ZpZGVkLCBh bmQgY29tZSBiYWNrCj4gdG8geW91IGlmIEkgaGF2ZSBtb3JlIHF1ZXN0aW9ucy4KPiBTaW1wbHkg c3BlYWtpbmcsIEkgZmFpbGVkIHRvIGZpbmQgYSBjbGVhciBhbmQgZm9ybWFsIGNvbnNpc3RlbmN5 Cj4gbW9kZWwvZ3VhcmFudGVlIG9mIFJDVSBxdWlja2x5Lgo+IFRoZSBkaWZmaWN1bHR5IGZvciBt ZSBpcywgZm9yIG1vc3QgcGVvcGxlLCBhdCB0aGVpciBmaXJzdCBnbGFuY2UsIFJDVSBvbmx5Cj4g aGFzIHJlbGF4L3dlYWsgY29uc2lzdGVuY3kgZ3VhcmFudGVlLgo+IFNvIHdoZW5ldmVyIEkgc3Vn Z2VzdCB0byB1c2UgUkNVIHRvIG90aGVycywgdGhleSBhbHdheXMgYXNrIGxpa2UKPiBEb2VzIFJD VSBwcm92aWRlIFNlcmlhbGl6YWJpbGl0eT8gLi4gbWF5YmUgbm90Lgo+IERvZXMgUkNVIHByb3Zp ZGUgTGluZWFyaXphYmlsaXR5PyAuLi4gbWF5YmUgbm90Cj4gLi4uCgpBcmUgc2VyaWFsaXphYmls aXR5IGFuZCBsaW5lYXJpemFiaWxpdHkgYWx3YXlzIHVzZWZ1bD8gIERlZmluaXRlbHkgbm90LgpB cmUgc2VyaWFsaXphYmlsaXR5IGFuZCBsaW5lYXJpemFiaWxpdHkgZXhwZW5zaXZlPyAgWW91IGJl dCEhIQoKQnV0IGlmIHlvdXIgdXNlIGNhc2UgYWJzb2x1dGVseSByZXF1aXJlcyBlaXRoZXIgc2Vy aWFsaXphYmlsaXR5IG9yCmxpbmVhcml6YWJpbGl0eSwgeW91IHByb2JhYmx5IHNob3VsZCB0cnkg c29tZXRoaW5nIG90aGVyIHRoYW4gUkNVLgpCdXQgeW91IHNob3VsZCBhbHNvIHN0cm9uZ2x5IHF1 ZXN0aW9uIHNlcmlhbGl6YWJpbGl0eSBhbmQgbGluZWFyaWFiaWxpdHkKcmVxdWlyZW1lbnRzLCBn aXZlbiB0aGF0IHRoZXkgYXJlIG9mdGVuIGltcG9zZWQgb3V0IG9mIGZlYXIgYW5kIGZvcmNlCm9m IGhhYml0IHJhdGhlciB0aGFuIHJlYWwgbmVlZC4KCk5ldmVydGhlbGVzcywgdGhlcmUgYXJlIHVz ZSBjYXNlcyB3aGVyZSBSQ1UgaXMgcGFydCBvZiBhIGNvbmN1cnJlbmN5CmRlc2lnbiB0aGF0IHBy b3ZpZGVzIHNlcmlhbGl6YWJpbGl0eSBhbmQvb3IgbGluZWFyaXphYmlsaXR5LiAgRm9yIGJ1dApv bmUgZXhhbXBsZToKCkBDb25mZXJlbmNle0FyY2FuZ2VsaTAzLAogQXV0aG9yPSJBbmRyZWEgQXJj YW5nZWxpIGFuZCBNaW5nbWluZyBDYW8gYW5kIFBhdWwgRS4gTWNLZW5uZXkgYW5kCkRpcGFua2Fy IFNhcm1hIiwKIFRpdGxlPSJVc2luZyBSZWFkLUNvcHkgVXBkYXRlIFRlY2huaXF1ZXMgZm9yIHtT eXN0ZW0gViBJUEN9IGluIHRoZQp7TGludXh9IDIuNSBLZXJuZWwiLAogQm9va3RpdGxlPSJQcm9j ZWVkaW5ncyBvZiB0aGUgMjAwMyBVU0VOSVggQW5udWFsIFRlY2huaWNhbCBDb25mZXJlbmNlCihG UkVFTklYIFRyYWNrKSIsCiBQdWJsaXNoZXI9IlVTRU5JWCBBc3NvY2lhdGlvbiIsCiBsb2NhdGlv bj0iU2FuIEFudG9uaW8sIFRleGFzLCBVU0EiLAogeWVhcj0iMjAwMyIsCiBtb250aD0iSnVuZSIs CiBwYWdlcz0iMjk3LTMxMCIsCiB1cmw9Imh0dHBzOi8vd3d3LnVzZW5peC5vcmcvbGVnYWN5L3B1 YmxpY2F0aW9ucy9saWJyYXJ5L3Byb2NlZWRpbmdzL3VzZW5peDAzL3RlY2gvZnJlZW5peDAzL2Z1 bGxfcGFwZXJzL2FyY2FuZ2VsaS9hcmNhbmdlbGkucGRmIiwKIGxhc3RjaGVja2VkPSJGZWJydWFy eSAyNywgMjAxNyIsCn0KCj4gT0ssIHdoYXQgZG9lcyBSQ1UgcHJvdmlkZT8gIC4uIEkgYW0gbm90 IHN1cmUuIEkgZXZlbiBjYW5ub3QgZmluZCBhIHNpbmdsZQo+IGRvY3VtZW50IHdoaWNoIGhhcyBh biBhY2N1cmF0ZSBhbnN3ZXIuCj4gCj4gTGV0IG1lIGdpdmUgbW9yZSBleGFtcGxlcy4KPiAxLiBX aGVuIEkgcmVjb21tZW5kIHVzaW5nIHJlYWQtd3JpdGUgbG9jaywgcGVvcGxlIGFyZSBoYXBweSB0 byB1c2UgaXQuCj4gICAgIEhvd2V2ZXIsIHdoZW4gSSBmdXJ0aGVyIHN1Z2dlc3QgdG8gcmVwbGFj ZSBydyBsb2NrIHdpdGggUkNVLCB0aGVuIHRoZXkKPiBoZXNpdGF0ZSB0byBkbyBzby4gQmVjYXVz ZSB0aGV5IGZlZWwgUkNVIGlzIHdlYWtlciB0aGFuIHJ3IGxvY2ssIGFuZCBkbyBub3QKPiBrbm93 IHdoYXQgcHJlY2lzZWx5IFJDVSBndWFyYW50ZWUuCj4gMi4gSW4gY29udHJhc3QsIGluIHRoZSBk YXRhYmFzZSBhcmVhLCBpdCBoYXMgcmVsYXRpdmUgY2xlYXIgZGVmaW5pdGlvbiBvZgo+IGNvbnNp c3RlbmN5IGxldmVscyAoc3VjaCBhcyBodHRwczovL2plcHNlbi5pby9jb25zaXN0ZW5jeSksIGFu ZCB1c2VycyBhcmUKPiBlYXN5IHRvIGFzc2VydCBpZiB0aGV5IGNhbiB1c2UgY2VydGFpbiBkYXRh YmFzZSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIGl0cwo+IGNvbnNpc3RlbmN5IG1vZGVsLgoKVGhl IFJDVSBndWFyYW50ZWVzIGFyZSBjbGVhcmx5IHN0YXRlZCBpbiBhIG51bWJlciBvZiBwbGFjZXMu ICBNb3N0CnJlY2VudGx5IGFuZCBtb3N0IGZvcm1hbGx5LCB0aGUgMjAxOCBBU1BMT1MgIkZyaWdo dGVuaW5nIHNtYWxsIGNoaWxkcmVuIgpwYXBlciBjYWxsZWQgb3V0IGJlbG93ICh0aG91Z2ggdGhl IDIwMTIgcGFwZXIgeW91IHJlZmVycmVkIHRvIGhhcyBhCmdvb2QgYW5kIHN1ZmZpY2llbnQgc3Rh dGVtZW50IG9mIGl0cyBndWFyYW50ZWVzKS4gIFRoaXMgZm9ybWFsaXNtIGlzCmV4ZWN1dGFibGUs IGFuZCBoYXMgYmVlbiBhdmFpbGFibGUgd2l0aGluIHRoZSBMaW51eC1rZXJuZWwgc291cmNlIHRy ZWUKaW4gZXhlY3V0YWJsZSBmb3JtIGZvciBtb3JlIHRoYW4gYSB5ZWFyLiAgSSBzdHJvbmdseSBy ZWNvbW1lbmQgdGhhdCB5b3UKdHJ5IHBsYXlpbmcgd2l0aCB0aGlzIGV4ZWN1dGFibGUgbW9kZWwu CgpCdXQgc3VjY2Vzc2Z1bGx5IHVzaW5nIFJDVSByZXF1aXJlcyB0aGF0IHlvdSB0aGluayBhYm91 dCB5b3VyIHByb2JsZW0KZGlmZmVyZW50bHkuICBUaGlzIHNob3VsZCBub3QgYmUgYSBzdXJwcmlz ZS4gIEFmdGVyIGFsbCwgbG9ja2luZwpwcm92aWRlcyBtdXR1YWwgZXhjbHVzaW9uIGFuZCBSQ1Ug ZG9lcyBub3QuICBTbyBvbmUgc2V0IG9mIHByb21pc2luZwp1c2UgY2FzZXMgZm9yIFJDVSBhcmUg d2hlcmUgc29tZSBxdWFudGl0eSBpcyBjYWxjdWxhdGVkIHJlYWQtaG9sZGluZyBhCnJlYWRlci13 cml0ZXIgbG9jaywgYnV0IHdoZXJlIHRoYXQgcXVhbnRpdHkgaXMgdXNlZCBhZnRlciByZWxlYXNp bmcgdGhhdApyZWFkZXItd3JpdGVyIGxvY2suICBUaGlzIGlzIGEgY29tbW9uIHVzZSBjYXNlLCBh bmQgaXQgaXMgYSBjYXNlIHdoZXJlIHRoZQp1c2VyIGhhcyBwdXJwb3NlZnVsbHkgc2V0IGFzaWRl IHRoZSBzZXJpYWxpemFiaWxpdHkgYW5kIGxpbmVhcml6YWJpbGl0eQpndWFyYW50ZWVzIHRoYXQg cmVhZGVyLXdyaXRlciBsb2NraW5nIHByb3ZpZGVzIC0tIGJ1dCBoYXMgbmV2ZXJ0aGVsZXNzCnBh aWQgdGhlIGZ1bGwgcHJpY2UgZm9yIHRoZXNlIGd1YXJhbnRlZXMuCgo+IEFnYWluLCBJIHJlYWxs eSBhcHByZWNpYXRlIHlvdXIgcGF0aWVuY2UgYW5kIGNvbW11bmljYXRpb24sIGhvcGUgdGhvc2Ug ZG9lcwo+IG5vdCBib3RoZXIgeW91IGEgbG90LgoKQXQgdGhpcyBwb2ludCwgSSBtdXN0IGNvbmZl c3MgdG8gYmVpbmcgbXVjaCBtb3JlIGFtdXNlZCB0aGFuIGJvdGhlcmVkLgoKRm9yIGV4YW1wbGUs IGRvIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkgdGhhdCB5b3UgaGF2ZW4ndCB5ZXQgcmVhZCAtYW55 LQpvZiB0aGUgcmVmZXJlbmNlcyBJIHNlbnQgeW91PyAgSXQgc3VyZSBzZWVtcyB0aGF0IHdheS4g IDstKQoKQWxzbywgYXJlIHlvdSBnZXR0aW5nIGFkZXF1YXRlIHNsZWVwLCBhcyBpbiBhdCBsZWFz dCBzZXZlbiBob3VycwpwZXIgbmlnaHQ/ICBBZnRlciBhbGwsIGF0dGVtcHRpbmcgdG8gbGVhcm4g UkNVIHdoaWxlIHNsZWVwLWRlcHJpdmVkCnF1aXRlIGZvb2xoYXJkeS4KCgkJCQkJCQlUaGFueCwg UGF1bAoKPiBUaGFua3MKPiBCZXN0LAo+IFl1eGluCj4gCj4gPgo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoYW54LCBQ YXVsCj4gPgo+ID4gPiBCVFcsIHRoZSBSTFUgcmVhZC1zaWRlIG9wcyBhcmUgc2ltaWxhciwgYnV0 IG5vdCBlZmZpY2llbnQsIGNvbXBhcmluZyB0bwo+ID4gb3VyCj4gPiA+IFBhcnNlYyB3b3JrIFsx LCAyXQo+ID4gPiBbMV0gWXV4aW4gUmVuLCBHLiBMaXUsIEcuIFBhcm1lciwgQi4gQnJhbmRlbmJ1 cmcsIFNjYWxhYmxlIE1lbW9yeQo+ID4gPiBSZWNsYW1hdGlvbiBmb3IgTXVsdGktQ29yZSwgUmVh bC1UaW1lIFN5c3RlbXMsIGluIFByb2NlZWRpbmdzIG9mIHRoZSAyNHRoCj4gPiA+IElFRUUgUmVh bC1UaW1lIGFuZCBFbWJlZGRlZCBUZWNobm9sb2d5IGFuZCBBcHBsaWNhdGlvbnMgU3ltcG9zaXVt IChSVEFTKSwKPiA+ID4gMjAxOAo+ID4gPiBbMl0gUS4gV2FuZywgVC4gU3RhbWxlciwgYW5kIEcu IFBhcm1lciwgUGFyYWxsZWwgU2VjdGlvbnM6IFNjYWxpbmcKPiA+ID4gU3lzdGVtLUxldmVsIERh dGEtU3RydWN0dXJlcywgaW4gUHJvY2VlZGluZ3Mgb2YgRXVyb3BlYW4gQ29uZmVyZW5jZSBvbgo+ ID4gPiBDb21wdXRlciBTeXN0ZW1zIChFdXJvU3lzKSwgMjAxNgo+ID4gPgo+ID4gPiBUaGFua3Ms Cj4gPiA+IEJlc3QsCj4gPiA+IFl1eGluCj4gPiA+Cj4gPiA+Cj4gPiA+ID4gPiBUaGlzIGlzIGJl Y2F1c2UgTVZDQyBhbmQgUkxVIHByb3ZpZGUgcmVhZGVycyBhIGNvbnNpc3RlbnQgdmlldyBvZgo+ ID4gPiA+ID4gPiB0aGUgdXBkYXRlcywgYW5kIFJDVSBkb2VzIG5vdC4gIE9mIGNvdXJzZSwgaXQg aXMgb2Z0ZW4gdGhlIGNhc2UKPiA+IHRoYXQgYQo+ID4gPiA+ID4gPiBjb25zaXN0ZW50IHZpZXcg aXMgbm90IG5lZWRlZCwgaW4gd2hpY2ggY2FzZSB0aGUgTVZDQyBhbmQgUkxVCj4gPiA+ID4gZ3Vh cmFudGVlcwo+ID4gPiA+ID4gPiBhcmUgaW5jdXJyaW5nIHJlYWQtc2lkZSBvdmVyaGVhZCBmb3Ig bm8gcmVhc29uLiAgQnV0IGlmIHRoZSB1c2UKPiA+IGNhc2UKPiA+ID4gPiA+ID4gcmVxdWlyZXMg Y29uc2lzdGVudCByZWFkZXJzLCBSQ1UgaXMgbm90IGFuIG9wdGlvbi4KPiA+ID4gPiA+ID4KPiA+ ID4gPiA+ID4gVGhlIHJlYXNvbiBhIGNvbnNpc3RlbnQgdmlldyBpcyBub3QgYWx3YXlzIG5lZWRl ZCBpcyB0aGF0Cj4gPiA+ID4gc3BlZWQtb2YtbGlnaHQKPiA+ID4gPiA+ID4gZGVsYXlzIG1ha2Ug aXQgaW1wb3NzaWJsZSB0byBwcm92aWRlIGEgY29uc2lzdGVudCB2aWV3IG9mIHRoZQo+ID4gb3V0 c2lkZQo+ID4gPiA+ID4gPiB3b3JsZC4gIEluIHRoZSBjb21tb24gY2FzZSB3aGVyZSB0aGUgdXNl IGNhc2UgaW50ZXJhY3RzIHdpdGggdGhlCj4gPiA+ID4gPiA+IG91dHNpZGUgd29ybGQsIHRoZSBh bGdvcml0aG1zIGFic29sdXRlbHkgbXVzdCBiZSBkZXNpZ25lZCB0bwo+ID4gdG9sZXJhdGUKPiA+ ID4gPiA+ID4gaW5jb25zaXN0ZW5jeSwgd2hpY2ggb3BlbnMgdGhlIGRvb3IgdG8gdGhpbmdzIGxp a2UgUkNVLgo+ID4gPiA+ID4KPiA+ID4gPiA+IEkgYW0gY29uZnVzZWQgaGVyZS4gSSB0aGluayBz cGVlZC1vZi1saWdodCBkZWxheXMgaGFwcGVuIGV2ZXJ5d2hlcmUsCj4gPiBub3QKPiA+ID4gPiA+ IG9ubHkgYm91bmQgdG8gUkNVLCBidXQgYWxzbyAgYW55IG90aGVyIHN5bmNocm9uaXphdGlvbiBh cHByb2FjaCAoc3VjaAo+ID4gPiA+IFJMVSkuCj4gPiA+ID4gPiBJZiBzbywgaG93IGRvIG90aGVy cyAoUkxVKSBwcm92aWRlIGNvbnNpc3RlbnQgdmlld3M/Cj4gPiA+ID4KPiA+ID4gPiBZb3UganVz dCBzdGF0ZWQgdGhlIGFuc3dlci4gIE5vdyBpdCBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgeW91IHRv IGludmVzdAo+ID4gPiA+IHRoZSB0aW1lLCBlZmZvcnQsIGFuZCB0aG91Z2h0IHRvIGZ1bGx5IHVu ZGVyc3RhbmQgaXQuICBUbyBoZWxwIHdpdGgKPiA+IHRoaXMsCj4gPiA+ID4gdGhlIGZvbGxvd2lu ZyBwYXJhZ3JhcGggcHJvdmlkZXMgYW5vdGhlciBoaW50Ogo+ID4gPiA+Cj4gPiA+ID4gICAgICAg ICBZZXMsIHlvdSBhcmUgcXVpdGUgcmlnaHQsIHNwZWVkLW9mLWxpZ2h0IGRlbGF5cyBiZXR3ZWVu IHRoZQo+ID4gPiA+ICAgICAgICAgb3V0c2lkZSB3b3JsZCBhbmQgdGhlIGNvbXB1dGVyIGFmZmVj dCBSTFUganVzdCBhcyBzdXJlbHkgYXMKPiA+IHRoZXkKPiA+ID4gPiAgICAgICAgIGRvIFJDVS4g IFRoaXMgbWVhbnMgdGhhdCB0aGUgYWRkaXRpb25hbCBjb25zaXN0ZW5jeSBndWFyYW50ZWVzCj4g PiA+ID4gICAgICAgICBwcm92aWRlZCBieSBSTFUgbXVzdCBuZWNlc3NhcmlseSBiZSBsaW1pdGVk IHRvIHRoZSBjb25maW5lcyBvZgo+ID4gdGhlCj4gPiA+ID4gICAgICAgICBjb21wdXRlciBzeXN0 ZW0gaW4gcXVlc3Rpb24uICBUYWtpbmcgdGhpcyBvbmUgc3RlcCBmdXJ0aGVyLAo+ID4gdGhlcmUK PiA+ID4gPiAgICAgICAgIGFyZSBhbHNvIHNwZWVkLW9mLWxpZ2h0IGRlbGF5cyB3aXRoaW4gdGhl IGNvbXB1dGVyLiAgVGhlcmVmb3JlLAo+ID4gPiA+ICAgICAgICAgaW4gdGhlIGdlbmVyYWwgY2Fz ZSwgUkxVIGNhbiBwcm92aWRlIGl0cyBjb25zaXN0ZW5jeQo+ID4gZ3VhcmFudGVlcywKPiA+ID4g PiAgICAgICAgIGV2ZW4gd2l0aGluIHRoZSBjb25maW5lcyBvZiB0aGUgY29tcHV0ZXIgc3lzdGVt LCBvbmx5IGF0IHRoZQo+ID4gPiA+ICAgICAgICAgZXhwZW5zZSBvZiBpbmN1cnJpbmcgZGVsYXlz LiAgQmVjYXVzZSBSQ1UgZG9lcyBub3QgcHJvdmlkZQo+ID4gUkxVJ3MKPiA+ID4gPiAgICAgICAg IGNvbnNpc3RlbmN5IGd1YXJhbnRlZXMsIGl0IG5lZWQgbm90IGluY3VyIFJMVSdzIGRlbGF5cy4K PiA+ID4gPgo+ID4gPiA+IFRoaXMgaXMgbm90IGEgbmV3IGxpbmUgb2YgcmVhc29uaW5nLCBzZWUg Zm9yIGV4YW1wbGU6Cj4gPiA+ID4KPiA+ID4gPiBAYXJ0aWNsZXtIZXJsaWh5OjE5OTY6TENOOjEw NjMzNjkuMTA2MzM3Mgo+ID4gPiA+ICxhdXRob3IgPSB7SGVybGloeSwgTWF1cmljZSBhbmQgU2hh dml0LCBOaXIgYW5kIFdhYXJ0cywgT3JsaX0KPiA+ID4gPiAsdGl0bGUgPSB7TGluZWFyaXphYmxl IGNvdW50aW5nIG5ldHdvcmtzfQo+ID4gPiA+ICxqb3VybmFsID0ge0Rpc3RyaWIuIENvbXB1dC59 Cj4gPiA+ID4gLHZvbHVtZSA9IHs5fQo+ID4gPiA+ICxpc3N1ZSA9IHs0fQo+ID4gPiA+ICxtb250 aCA9IHtGZWJydWFyeX0KPiA+ID4gPiAseWVhciA9IHsxOTk2fQo+ID4gPiA+ICxpc3NuID0gezAx NzgtMjc3MH0KPiA+ID4gPiAscGFnZXMgPSB7MTkzLS0yMDN9Cj4gPiA+ID4gLG51bXBhZ2VzID0g ezExfQo+ID4gPiA+ICx1cmwgPSB7aHR0cDovL3BvcnRhbC5hY20ub3JnL2NpdGF0aW9uLmNmbT9p ZD0xMDYzMzY5LjEwNjMzNzJ9Cj4gPiA+ID4gLGRvaSA9IHsxMC4xMDA3L3MwMDQ0NjAwNTAwMTl9 Cj4gPiA+ID4gLGFjbWlkID0gezEwNjMzNzJ9Cj4gPiA+ID4gLHB1Ymxpc2hlciA9IHtTcHJpbmdl ci1WZXJsYWd9Cj4gPiA+ID4gLGFkZHJlc3MgPSB7TG9uZG9uLCBVS30KPiA+ID4gPiAsa2V5d29y ZHMgPSB7Y29uY3VycmVuY3ksIGNvbnRlbnRpb24sIGNvdW50aW5nIG5ldHdvcmtzLCBkYXRhCj4g PiBzdHJ1Y3R1cmVzLAo+ID4gPiA+IGxpbmVhcml6YWJpbGl0eX0KPiA+ID4gPiB9Cj4gPiA+ID4K PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRoYW54LCBQYXVsCj4gPiA+ID4KPiA+ID4gPiA+IFRoYW5rcyBmb3IgeW91ciBlZHVj YXRpb24uCj4gPiA+ID4gPiBZdXhpbgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU aGFueCwgUGF1bAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFRoYW5rcwo+ID4gPiA+ID4gPiA+ IFl1eGluCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBPbiBGcmksIERlYyA2LCAyMDE5IGF0 IDExOjMwIEFNIFBhdWwgRS4gTWNLZW5uZXkgPAo+ID4gcGF1bG1ja0BrZXJuZWwub3JnCj4gPiA+ ID4gPgo+ID4gPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gT24g RnJpLCBEZWMgMDYsIDIwMTkgYXQgMTA6NTk6MDVBTSAtMDUwMCwgTWF0aGlldSBEZXNub3llcnMK PiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiAtLS0tLSBPbiBEZWMgNiwgMjAxOSwgYXQgMzo1 MSBQTSwgWXV4aW4gUmVuIDwKPiA+IHJ5eEBnd21haWwuZ3d1LmVkdT4KPiA+ID4gPiA+ID4gd3Jv dGU6Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gT24gRnJpLCBEZWMgNiwg MjAxOSBhdCA1OjQ5IEFNIE1hdGhpZXUgRGVzbm95ZXJzIDwgWwo+ID4gPiA+ID4gPiA+ID4gPiA+ IG1haWx0bzptYXRoaWV1LmRlc25veWVyc0BlZmZpY2lvcy5jb20gfAo+ID4gPiA+ID4gPiBtYXRo aWV1LmRlc25veWVyc0BlZmZpY2lvcy5jb20KPiA+ID4gPiA+ID4gPiA+IF0gPgo+ID4gPiA+ID4g PiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+PiAt LS0tLSBPbiBEZWMgNSwgMjAxOSwgYXQgODoxNyBQTSwgWXV4aW4gUmVuIDwgWyBtYWlsdG86Cj4g PiA+ID4gPiA+ID4gPiByeXhAZ3dtYWlsLmd3dS5lZHUgfAo+ID4gPiA+ID4gPiA+ID4gPiA+PiBy eXhAZ3dtYWlsLmd3dS5lZHUgXSA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gSGksCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBJIGFtIGEgc3R1ZGVudCwgYW5k IGxlYXJuaW5nIFJDVSBub3csIGJ1dCBzdGlsbCBrbm93IHZlcnkKPiA+ID4gPiBsaXR0bGUKPiA+ ID4gPiA+ID4gPiA+IGFib3V0IGl0Lgo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gQXJlIHRoZXJlIGFu eSBkb2N1bWVudHMvcGFwZXJzL21hdGVyaWFscyB3aGljaAo+ID4gKGluKWZvcm1hbGx5Cj4gPiA+ ID4gPiA+IGRlZmluZQo+ID4gPiA+ID4gPiA+ID4gYW5kIGV4cGxhaW4KPiA+ID4gPiA+ID4gPiA+ ID4gPj4+IFJDVSBjb25zaXN0ZW5jeSBndWFyYW50ZWVzPwo+ID4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gPiA+PiBZb3UgbWF5IHdhbnQgdG8gaGF2ZSBhIGxvb2sgYXQKPiA+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPj4gVXNlci1MZXZlbCBJbXBsZW1lbnRhdGlvbnMg b2YgUmVhZC1Db3B5IFVwZGF0ZQo+ID4gPiA+ID4gPiA+ID4gPiA+PiBBcnRpY2xlIGluIElFRUUg VHJhbnNhY3Rpb25zIG9uIFBhcmFsbGVsIGFuZCBEaXN0cmlidXRlZAo+ID4gPiA+IFN5c3RlbXMK PiA+ID4gPiA+ID4gPiA+IDIzKDIpOjM3NSAtIDM4Mgo+ID4gPiA+ID4gPiA+ID4gPiA+PiDCtyBN YXJjaCAyMDEyCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhhbmtzIGZv ciB5b3VyIGluZm8uCj4gPiA+ID4gPiA+ID4gPiA+ID4gSG93ZXZlciwgSSBkbyBub3QgdGhpbmsg VVJDVSB0YWxrcyBhYm91dCBhbnkgY29uc2lzdGVuY3kKPiA+IG1vZGVsCj4gPiA+ID4gPiA+ID4g PiBmb3JtYWxseS4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tIHBy ZXZpb3VzIGNvbW11bmljYXRpb24gd2l0aCBQYXVsLCBoZSBzYWlkIFJDVSBpcyBub3QKPiA+ID4g PiBkZXNpZ25lZAo+ID4gPiA+ID4gPiBmb3IKPiA+ID4gPiA+ID4gPiA+ID4gPiBsaW5lYXJpemFi aWxpdHksIGFuZCBpdCBpcyB0b3RhbGx5IGFjY2VwdGFibGUgdGhhdCBSQ1UgaXMKPiA+IG5vdAo+ ID4gPiA+ID4gPiA+ID4gbGluZWFyaXphYmxlLgo+ID4gPiA+ID4gPiA+ID4gPiA+IEhvd2V2ZXIs IEkgYW0gY3VyaW91cyBob3cgdG8gYWNjdXJhdGVseS9mb3JtYWxseQo+ID4gQ2hhcmFjdGVyaXpl Cj4gPiA+ID4gUkNVCj4gPiA+ID4gPiA+ID4gPiBjb25zaXN0ZW5jeQo+ID4gPiA+ID4gPiA+ID4g PiA+IG1vZGVsL2d1YXJhbnRlZXMKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4g QWRkaW5nIFBhdWwgRS4gTWNLZW5uZXkgaW4gQ0MuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiA+IEkgYW0gcmVmZXJyaW5nIHRvIHRoZSBzZWN0aW9uICJPdmVydmlldyBvZiBSQ1Ug c2VtYW50aWNzIiBpbgo+ID4gdGhlCj4gPiA+ID4gPiA+IHBhcGVyLgo+ID4gPiA+ID4gPiA+ID4g Tm90IHN1cmUgaXQgaGFzIHRoZSBsZXZlbCBvZgo+ID4gPiA+ID4gPiA+ID4gPiBmb3JtYWxpdHkg eW91IGFyZSBsb29raW5nIGZvciB0aG91Z2guIFBhdWwsIGRvIHlvdSBoYXZlCj4gPiBwb2ludGVy cwo+ID4gPiA+IHRvCj4gPiA+ID4gPiA+ID4gPiBhZGRpdGlvbmFsIG1hdGVyaWFsID8KPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBJbmRlZWQgSSBkbyEgIFRoZSBMaW51eCBrZXJuZWwg bWVtb3J5IG1vZGVsIChMS01NKSBpbmNsdWRlcwo+ID4gUkNVLgo+ID4gPiA+IEl0IGlzCj4gPiA+ ID4gPiA+ID4gPiBpbiB0b29scy9tZW1vcnktbW9kZWwgaW4gcmVjZW50IGtlcm5lbCBzb3VyY2Ug dHJlZXMsIHdoaWNoCj4gPiBpbmNsdWRlcwo+ID4gPiA+ID4gPiA+ID4gZG9jdW1lbnRhdGlvbi4g IFRoaXMgaXMgYW4gZXhlY3V0YWJsZSBtb2RlbCwgd2hpY2ggbWVhbnMgdGhhdAo+ID4geW91Cj4g PiA+ID4gPiA+ID4gPiBjYW4gY3JlYXRlIGxpdG11cyB0ZXN0cyBhbmQgaGF2ZSB0aGUgbW9kZWwg Zm9ybWFsbHkgYW5kCj4gPiA+ID4gYXV0b21hdGljYWxseQo+ID4gPiA+ID4gPiA+ID4gZXZhbHVh dGUgdGhlbS4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUaGVyZSBhcmUgYWxzbyBh IG51bWJlciBvZiBwdWJsaWNhdGlvbnMgY292ZXJpbmcgTEtNTToKPiA+ID4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+ID4gPiBvICAgICAgIEEgZm9ybWFsIGtlcm5lbCBtZW1vcnktb3JkZXJpbmcgbW9k ZWwKPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzcxODYy OC8KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzcyMDU1 MC8KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIFRoZXNlIGNvdmVyIHRo ZSByZWxlYXNlIHN0b3JlcyBhbmQgZGVwZW5kZW5jeSBvcmRlcmluZwo+ID4gdGhhdAo+ID4gPiA+ ID4gPiA+ID4gICAgICAgICBwcm92aWRlIFJDVSdzIHB1Ymxpc2gtc3Vic2NyaWJlIGd1YXJhbnRl ZXMuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBCYWNrdXAgbWF0ZXJp YWwgaGVyZToKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4KPiA+ID4gPgo+ID4gaHR0cHM6Ly9taXJyb3JzLmVkZ2Uua2VybmVsLm9yZy9w dWIvbGludXgva2VybmVsL3Blb3BsZS9wYXVsbWNrL0xXTkxpbnV4TU0vCj4gPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBXaXRoIHRoZXNlIHR3byBsaWtlbHkgYmVpbmcgb2Yg cGFydGljdWxhciBpbnRlcmVzdDoKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPgo+ID4gaHR0cHM6Ly9taXJyb3JzLmVkZ2Uu a2VybmVsLm9yZy9wdWIvbGludXgva2VybmVsL3Blb3BsZS9wYXVsbWNrL0xXTkxpbnV4TU0vUkNV Z3VhcmFudGVlcy5odG1sCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4KPiA+ID4gPgo+ID4gaHR0cHM6Ly9taXJyb3JzLmVkZ2Uua2VybmVsLm9yZy9wdWIvbGludXgv a2VybmVsL3Blb3BsZS9wYXVsbWNrL0xXTkxpbnV4TU0vc3JjdS5odG1sCj4gPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+ID4gbyAgICAgICBGcmlnaHRlbmluZyBTbWFsbCBDaGlsZHJlbiBhbmQg RGlzY29uY2VydGluZyBHcm93bi11cHM6Cj4gPiA+ID4gPiA+ID4gPiBDb25jdXJyZW5jeSBpbiB0 aGUgTGludXggS2VybmVsCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIGh0dHBzOi8vZGwuYWNtLm9y Zy9jaXRhdGlvbi5jZm0/aWQ9MzE3NzE1Ngo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiBodHRwOi8v d3d3MC5jcy51Y2wuYWMudWsvc3RhZmYvai5hbGdsYXZlL3BhcGVycy9hc3Bsb3MxOC5wZGYKPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIEJhY2t1cCBtYXRlcmlhbDoKPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIGh0dHA6Ly9kaXkuaW5yaWEuZnIv bGludXgvCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gbyAgICAgICBXaG8ncyBhZnJh aWQgb2YgYSBiaWcgYmFkIG9wdGltaXppbmcgY29tcGlsZXI/Cj4gPiA+ID4gPiA+ID4gPiAgICAg ICAgIGh0dHBzOi8vbHduLm5ldC9BcnRpY2xlcy83OTMyNTMvCj4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gbyAgICAgICBDYWxpYnJhdGluZyB5b3VyIGZlYXIgb2YgYmlnIGJhZCBvcHRp bWl6aW5nIGNvbXBpbGVycwo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBodHRwczovL2x3bi5uZXQv QXJ0aWNsZXMvNzk5MjE4Lwo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ICAgICAgICAg VGhlc2UgbGFzdCB0d28ganVzdGlmeSB1c2Ugb2Ygbm9ybWFsIEMtbGFuZ3VhZ2UKPiA+IGFzc2ln bm1lbnQKPiA+ID4gPiA+ID4gPiA+ICAgICAgICAgc3RhdGVtZW50cyB0byBpbml0aWFsaXplIGFu ZCBhY2Nlc3MgZGF0YSByZWZlcmVuY2VkIGJ5Cj4gPiA+ID4gPiA+ID4gPiAgICAgICAgIFJDVS1w cm90ZWN0ZWQgcG9pbnRlcnMuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gVGhlcmUg aXMgYSBsYXJnZSBib2R5IG9mIGxpdG11cyB0ZXN0cyAodGhvdXNhbmRzIG9mIHRoZW0pIGhlcmU6 Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gICAgICAgICBodHRwczovL2dpdGh1Yi5j b20vcGF1bG1ja3JjdS9saXRtdXMKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBNYW55 IG9mIHRoZXNlIGxpdG11cyB0ZXN0cyBpbnZvbHZlIFJDVSwgYW5kIHRoZXNlIGNhbiBiZQo+ID4g bG9jYXRlZCBieQo+ID4gPiA+ID4gPiA+ID4gc2VhcmNoIGZvciBmaWxlcyBjb250YWluaW5nIHJj dV9yZWFkX2xvY2soKSwgcmN1X3JlYWRfdW5sb2NrKCksCj4gPiA+ID4gPiA+ID4gPiBzeW5jaHJv bml6ZV9yY3UoKSwgYW5kIHNvIG9uLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IE9y IHdlcmUgeW91IGxvb2tpbmcgZm9yIHNvbWV0aGluZyBlbHNlPwo+ID4gPiA+ID4gPiA+ID4KPiA+ ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGhhbngsCj4gPiBQYXVsCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gPiBUaGFua3MsCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE1hdGhpZXUK PiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPj4gYXMgYSBzdGFydGluZyBwb2lu dC4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPj4gVGhhbmtzLAo+ID4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+PiBNYXRoaWV1Cj4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBJIGtub3cgdGhlcmUgYXJlIHNvbWUgY29uc2lzdGVuY3kg bW9kZWxzIGluIHRoZSBkYXRhYmFzZQo+ID4gYXJlYQo+ID4gPiA+ID4gPiAoc3VjaAo+ID4gPiA+ ID4gPiA+ID4gYXMgUFJBTSwKPiA+ID4gPiA+ID4gPiA+ID4gPj4+IFJlYWQgVW5jb21taXR0ZWQs IGV0YykgZnJvbSBbCj4gPiBodHRwczovL2plcHNlbi5pby9jb25zaXN0ZW5jeQo+ID4gPiA+IHwK PiA+ID4gPiA+ID4gPiA+ID4gPj4+IGh0dHBzOi8vamVwc2VuLmlvL2NvbnNpc3RlbmN5IF0gYW5k IFsxXS4KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IEhvdyBkb2VzIFJDVSByZWxhdGVkIHRvIHRob3Nl IGNvbnNpc3RlbmN5IG1vZGVscz8KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4g Pj4+IEkgYWxzbyBmb3VuZCBzb21lIGNvbW1lbnRzIG9ubGluZSAoT25lIGtleSBkaXN0aW5jdGlv biBpcwo+ID4gPiA+IHRoYXQKPiA+ID4gPiA+ID4gYm90aAo+ID4gPiA+ID4gPiA+ID4gTVZDQyBh bmQgUkxVCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBwcm92aWRlIG11Y2ggc3Ryb25nZXIgY29uc2lz dGVuY3kgZ3VhcmFudGVlcyB0byByZWFkZXJzCj4gPiB0aGFuCj4gPiA+ID4gZG9lcwo+ID4gPiA+ ID4gPiA+ID4gUkNVIC4uLikgKCBbCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBodHRwczovL2x3bi5u ZXQvQXJ0aWNsZXMvNzc3MDM2LyB8Cj4gPiA+ID4gPiA+IGh0dHBzOi8vbHduLm5ldC9BcnRpY2xl cy83NzcwMzYvCj4gPiA+ID4gPiA+ID4gPiBdICkuCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBJIGRv IG5vdCB1bmRlcnN0YW5kIGhvdyB3ZSByZWFzb24vZHJlc2liZS9jb21wYXJlIHRoZQo+ID4gPiA+ IGNvbnNpc3RlbmN5Cj4gPiA+ID4gPiA+ID4gPiBndWFyYW50ZWVzLiAoCj4gPiA+ID4gPiA+ID4g PiA+ID4+PiBJIGV2ZW4gZG8gbm90IGtub3cgd2hhdCBjb25zaXN0ZW5jeSBndWFyYW50ZWVzIHBy b3ZpZGVkCj4gPiBieQo+ID4gPiA+IFJDVQo+ID4gPiA+ID4gPiA+ID4gZm9ybWFsbHkpCj4gPiA+ ID4gPiA+ID4gPiA+ID4+PiBDb3VsZCBzb21lb25lIGV4cGxhaW4gdGhpcyB0byBtZT8KPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IFsxXSBCYWlsaXMsIFAuLCBEYXZpZHNv biwgQS4sIEZla2V0ZSwgQS4sIEdob2RzaSwgQS4sCj4gPiA+ID4gPiA+IEhlbGxlcnN0ZWluLAo+ ID4gPiA+ID4gPiA+ID4gSi4gTS4sICYKPiA+ID4gPiA+ID4gPiA+ID4gPj4+IFN0b2ljYSwgSS4g KDIwMTMpLiBIaWdobHkgYXZhaWxhYmxlIHRyYW5zYWN0aW9uczoKPiA+IFZpcnR1ZXMgYW5kCj4g PiA+ID4gPiA+ID4gPiBsaW1pdGF0aW9ucy4KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IFByb2NlZWRp bmdzIG9mIHRoZSBWTERCIEVuZG93bWVudCwgNygzKSwgMTgxLTE5Mi4KPiA+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IFRoYW5rcwo+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gWXV4 aW4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBs dHRuZy1kZXYgbWFpbGluZyBsaXN0Cj4gPiA+ID4gPiA+ID4gPiA+ID4+PiBbIG1haWx0bzpsdHRu Zy1kZXZAbGlzdHMubHR0bmcub3JnIHwKPiA+ID4gPiBsdHRuZy1kZXZAbGlzdHMubHR0bmcub3Jn IF0KPiA+ID4gPiA+ID4gPiA+ID4gPj4+IFsKPiA+IGh0dHBzOi8vbGlzdHMubHR0bmcub3JnL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9sdHRuZy1kZXYKPiA+ID4gPiB8Cj4gPiA+ID4gPiA+ID4g PiA+ID4+Pgo+ID4gaHR0cHM6Ly9saXN0cy5sdHRuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp bmZvL2x0dG5nLWRldiBdCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4+IC0t Cj4gPiA+ID4gPiA+ID4gPiA+ID4+IE1hdGhpZXUgRGVzbm95ZXJzCj4gPiA+ID4gPiA+ID4gPiA+ ID4+IEVmZmljaU9TIEluYy4KPiA+ID4gPiA+ID4gPiA+ID4gPj4gWyBodHRwOi8vd3d3LmVmZmlj aW9zLmNvbS8gfCBodHRwOi8vd3d3LmVmZmljaW9zLmNvbSBdCj4gPiA+ID4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID4gPiA+IE1hdGhpZXUgRGVzbm95ZXJzCj4g PiA+ID4gPiA+ID4gPiA+IEVmZmljaU9TIEluYy4KPiA+ID4gPiA+ID4gPiA+ID4gaHR0cDovL3d3 dy5lZmZpY2lvcy5jb20KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4KPiA+Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmx0dG5nLWRldiBt YWlsaW5nIGxpc3QKbHR0bmctZGV2QGxpc3RzLmx0dG5nLm9yZwpodHRwczovL2xpc3RzLmx0dG5n Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vbHR0bmctZGV2Cg==