SGkgQWxsZW4sCgpUaGlzIG9uZSBoYXMgZ29vZCBzcGVjcyBidXQgaXQgaXMgbXVjaCBiaWdnZXIg dGhhbiB0aGUgdGVsZWNvbSBvbmVzLCB5ZXQKbXVjaCBzbWFsbGVyIHRoYW4gdGhlIG9uZXMgdGhh dCBJIGhhdmUgZm91bmQgc28gZmFyLgoKSWYgSSBjYW5ub3QgZmluZCBhIHNtYWxsZXIgb25lLCBp dCBzZWVtcyB0aGF0IHRoaXMgaXMgdGhlIHdheSB0byBnby4KClRoYW5rcywKCklzYWFjCgoKRW0g MTcvMTAvMjAxOCAxMDo0OSwgQWxsZW4gTXVsdmV5IGVzY3JldmV1Ogo+IEkgYW0gY3VycmVudGx5 IHVzaW5nIFNjaHJhY2sgUlRFMjQwMDUgRFBEVCByZWxheXMuIFRoZXkgYXJlIHJhdGVkIDhBIEAg MjUwVkFDLiBUaGV5IGFyZSBiaWdnZXIgdGhhbiB0aGUgMSBhbmQgMiBhbXAgbWljcm8tcmVsYXlz IEkgc29tZXRpbWVzIHVzZSBidXQgdGhleSBzZWVtIHRvIGhhbmRsZSBhbG1vc3QgYW55dGhpbmcg SSBuZWVkLgo+Cj4gaHR0cHM6Ly93d3cubW91c2VyLmNvbS9wcm9kdWN0ZGV0YWlsL3RlLWNvbm5l Y3Rpdml0eS1zY2hyYWNrL3J0ZTI0MDA1P3FzPUNVZmljJTJGR3NINUN1UVY0SjNwcHlQZyUzRCUz RAo+Cj4gQWxsZW4KPgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogcGljbGlz dC1ib3VuY2VzQG1pdC5lZHUgW21haWx0bzpwaWNsaXN0LWJvdW5jZXNAbWl0LmVkdV0gT24gQmVo YWxmIE9mIElzYWFjIE0uIEJhdmFyZXNjbwo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxNywg MjAxOCA5OjE5IEFNCj4gVG86IHBpY2xpc3RAbWl0LmVkdQo+IFN1YmplY3Q6IFtFRV0gTWluaWF0 dXJlIHJlbGF5Cj4KPiBEZWFyIEFsbCwKPgo+IEkgbmVlZCBhIG1pbmlhdHVyZSBQQ0IgcmVsYXkg dG8gb3BlcmF0ZSBhIGxvY2suIFRoZSBjb250YWN0IG1heSBiZQo+IFNQU1QtTk8gb3IgU1BEVC1O Ty4gVGhlIGFwcGxpY2F0aW9uIG1heSB1c2UgYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBsb2Nrcwo+ IHdpdGggdm9sdGFnZXMgaW4gdGhlIHJhbmdlIG9mIDYgViB0byAyNCBWIEFDIG9yIERDIGFuZCB0 aGUgY3VycmVudCB1cCB0bwo+IDIgQS4KPgo+IEZvciBzb21lIGFwcGxpY2F0aW9ucyBJIGFscmVh ZHkgdXNlIG1pbmlhdHVyZSB0ZWxlY29tIHJlbGF5cywgYnV0IHRoZWlyCj4gY3VycmVudCBjYXBh YmlsaXR5IGlzIGF0IG1vc3QgMSBBIG9yIDIgQS4KPgo+IERvZXMgYW55Ym9keSBrbm93IG9mIHNv bWUgdmVyeSBzbWFsbCBQQ0IgcmVsYXlzIHdpdGggY3VycmVudCBjYXBhYmlsaXR5Cj4gb2YgYXQg bGVhc3QgNCBBPyBTTUQgcHJlZmVyYWJseSBidXQgUFRIIGFjY2VwdGFibGUsIGNvaWwgdm9sdGFn ZSBvZiA1IFYKPiBvciAxMiBWLgo+Cj4gQmVzdCByZWdhcmRzLAo+Cj4gSXNhYWMKPgo+Cj4gLS0t Cj4gRXN0ZSBlbWFpbCBmb2kgZXNjYW5lYWRvIHBlbG8gQXZhc3QgYW50aXbDrXJ1cy4KPiBodHRw czovL3d3dy5hdmFzdC5jb20vYW50aXZpcnVzCj4KPgoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5j b20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2Ug eW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFu L2xpc3RpbmZvL3BpY2xpc3QK .