VGhhbmsgeW91IEphbi1FcmlrLAoKU28gbXkgdW5kZXJzdGFuZGluZyBiYXNlZCBvbiB3aGF0IEkg aGF2ZSByZWFkIGFuZCB3aGF0IHlvdSBzYXkgaGVyZS4uLgoKUEFHRVNFTCBpcyBuZWVkZWQgdG8g c2V0IFBDTEFUSCBiZWZvcmUgZWFjaCBHT1RPL0NBTEwgdW5sZXNzIHRoZSB0YXJnZXQgCmlzIGlu IHRoZSBzYW1lIENPREUgYmxvY2suIFRoZSBjYWxsIGludG8gaW50ZXJydXB0IGRvZXMgTk9UIGNo YW5nZSAKUENMQVRILCBzbyB0aGVyZSBpcyBhIG5lZWQgdG8gZG8gaXQgX3dpdGhpbl8gdGhlIGhh bmRsZXIuCgpSRVRVUk4vUkVURklFIGRvbid0IHVzZSBQQ0xBVEgsIHRoZSBlbnRpcmUgYWRkcmVz cyBjb21lcyBmcm9tIHRoZSBzdGFjay4KClRoZSBvbmx5IHdheSB0byBhdm9pZCB0aGVzZSBpc3N1 ZXMgaXMgdG8gdXNlIGFic29sdXRlIGNvZGUgKG9yIHRvIHdyaXRlIApjb2RlIGluIGEgd2F5IHRo YXQgcmVtb3ZlcyBhbGwgb2YgdGhlIHJlbG9jYXRhYmxlIGNvZGUgYmVuZWZpdHMpCgpBIHJlbWFp bmluZyBxdWVzdGlvbi4uLiBkb2VzIFJFVFVSTi9SRVRGSUUgcmVzZXQgUENMQVRIPyBJbiB0aGUg Y2FzZSBvZiAKUkVUVVJOLCBpdCBjYW4gYmUgcmVzZXQgKGFzIHlvdSBrbm93IHdoZW4gdGhlIENB TEwgaGFwcGVuZWQpIGJ1dCBpbiB0aGUgCmNhc2Ugb2YgUkVURklFLCBJIGd1ZXNzIHRoYXQgeW91 IHN0b3JlIHRoZSBQQ0xBVEggcmVnaXN0ZXIganVzdCBsaWtlIFcsIApGU1IgYW5kIFNUQVRVUz8K Ck9uIDIwMTUtMDEtMTMgMDU6NTEsIEphbi1FcmlrIFPDtmVyaG9sbSB3cm90ZToKPiBIaS4KPiBZ b3UgaGF2ZSB0byByZWFkIG9mIG9uIHRoZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgaW4gZGlmZmVy ZW50IHdheXMuCj4gCj4gU29tZSB0aGluZ3MgKEdPVE8sIENBTEwuLi4pIG9ubHkgY29kZXMgdGhl IGxvd2VyIHBhcnQgb2YgdGhlIGVmZmVjdGl2ZQo+IGFkZHJlc3MgaW4gdGhlIGluc3RydWN0aW9u IGFuZCBmZXRjaGVzIHRoZSBoaWdoZXIgYml0cyBmcm9tIFBDTEFUSC4KPiAKPiBTb21lIG90aGVy IHRoaW5ncyAobGlrZSBhbiBSRVRVUk4gb3IgUkVURklFKSBhbHdheXMgZmV0Y2hlcyB0aGUgZnVs bAo+IHJldHVybiBhZGRyZXNzIGZyb20gdGhlIHN0YWNrIGFuZCBkb2VzIG5vdCB1c2UgUENMQVRI Lgo+IAo+PiBidXQgdGhpcyB3aWxsIGJyZWFrIHRoZSBCVEZTUyBhcyB0aGVyZSB3aWxsIGJlIG1v cmUgdGhhbiBvbmUgCj4+IGluc3RydWN0aW9uCj4gdGhlcmUuLi4KPiAKPiBBIHdlbGwta25vd24g InByb2JsZW0iLi4uIDotKSBZb3Ugc2ltcGx5IGhhcyB0byB3b3JrIGFyb3VuZCBpdC4KPiAKPj4g dGhlIHRhcmdldCBpcyBuZWFyYnksIHNvIEknbSBiZSB2ZXJ5IHN1cnByaXNlZCB0aGF0IHRoZXkg YXBwZWFyIGluCj4gZGlmZmVyZW50IHBhZ2VzLgo+IAo+IE5vdywgdGhlIEdPVE8gdXNlcyBQQ0xB VEggd2hpY2ggcHJvYmFibHkgaXMgc3RpbGwgcG9pbnRpbmcgdG8gdGhlIHBhZ2UgCj4gZnJvbQo+ IHdoZXJlIHRoZSBvcmlnaW5hbCBDQUxMIHdhcyBtYWRlLiBQQ0xBVEggaXMgbm90IGNoYW5nZWQg YnkgdGhlIENBTEwuIAo+IFlvdSBjYW4KPiBzdGFydCB5b3VyIHN1YnJvdXRpbmUgYnkgc2V0dGlu ZyBQQ0xBVEggdXNpbmcgdGhlIHZhbHVlIG9mIHRoZSAKPiBzeW1ib2wvbmFtZQo+IG9mIHRoZSBu ZXcgY29kZS1ibG9jay4gVGhhdCB3YXksIFBDTEFUSCB3aWxsIGFsd2F5cyBiZSBjb3JyZWN0IG5v IAo+IG1hdHRlcgo+IHdoaWNoIHBhZ2UgdGhlIGFjdHVhbCByb3V0aW5lIGhhcHBlbnMgdG8gZW5k IHVwIGluLgo+IAo+PiBGcm9tIHdoYXQgSSBoYXZlIHJlYWQsIEkgbmVlZCB0byBQQUdFU0VMIGJl Zm9yZSBlYWNoIEdPVE8uLi4KPiAKPiBJdCdzIGVub3VnaCBpZiB5b3Ugc28gaXQgb25jZSBhdCB0 aGUgc3RhcnQgb2YgdGhlIENPREUgYmxvY2sgKG9yIGF0IAo+IGVhY2gKPiBlbnRyeS1wb2ludAo+ IHRvIHRoZSBDT0RFIGJsb2NrLCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcG9zc2libGUgcG9pbnQg dG8gQ0FMTCkuIFRoZW4gCj4gYWxzbwo+IGFmdGVyCj4gYSBDQUxMIGluIHRoYXQgY29kZSBpdHNl bGYsIHRoZSByb3V0aW5lcyBDQUxMJ2VkIGNhbiBhbHNvIGhhdmUgY2hhbmdlZAo+IFBDTEFUSC4K PiAKPiBCdXQgb25jZSBQQ0xBVEggaXMgc2V0dXAsIHlvdSBjYW4gR09UTyBhcyBtdWNoIGFzIHlv dSBsaWtlICp3aXRoaW4qIHRoZSAKPiBzYW1lCj4gcGFnZS4KPiAKPj4gSXMgdGhlcmUgYW55dGhp bmcgSSBjYW4gZG8gdG8gdGhlIGxpbmtlciBzY3JpcHQgdG8gZW5zdXJlIHRoYXQgdGhlIAo+PiBj b2RlIGlzCj4gcHV0IGluIHRoZSBzYW1lIHBhZ2U/Cj4gCj4gVHdvIHRoaW5ncyBwb3BzIHVwLgo+ IC0gVXNlIHRoZSBzYW1lIENPREUgc2VnbWVudC4KPiAtIEhhcmRjb2RlIGEgbWVtb3J5IHNlY3Rp b24gaW4gdGhlIENPREUgZGlyZWN0aXZlLgo+IAo+IEphbi1FcmlrLgo+IC0tLS0tVXJzcHJ1bmds aWd0IG1lZGRlbGFuZGUtLS0tLQo+IEZyw6VuOiBwaWNsaXN0LWJvdW5jZXNAbWl0LmVkdSBbbWFp bHRvOnBpY2xpc3QtYm91bmNlc0BtaXQuZWR1XSBGw7ZyIAo+IEFudGhvbnkKPiBUb2Z0Cj4gU2tp Y2thdDogZGVuIDEzIGphbnVhcmkgMjAxNSAwMToyNwo+IFRpbGw6ICdNaWNyb2NvbnRyb2xsZXIg ZGlzY3Vzc2lvbiBsaXN0IC0gUHVibGljLicKPiDDhG1uZTogW1BJQ10gUmVsb2NhdGFibGUgY29k ZSwgcGFnZXNlbCwgY2FsbCBhbmQgZ290bwo+IAo+IEhleSBmb2xrcywgSSBhbSBtaWR3YXkgdGhy b3VnaCB3cml0aW5nIG15IGZpcnN0IHJlbG9jYXRhYmxlIGNvZGUgCj4gcHJvamVjdCBmb3IKPiBh IDE2Zjg3NmEsIGFuZCBoYXZlIG1hbmFnZWQgdG8gY29uZnVzZSBteXNlbGYgdGhvcm91Z2hseS4u Lgo+IAo+IFRoZSBwcm9ibGVtIHN0YXJ0ZWQgd2hlbiBJIGFkZGVkIHNvbWUgbmV3IGNvZGUgKGlu IGEgbmV3IENPREUgYmxvY2spIAo+IGFuZCBteQo+IGludGVycnVwdCBoYW5kbGVyIHN0YXJ0ZWQg bWlzYmVoYXZpbmcuIFRoZSBjb2RlIHRoYXQgaXMgZXhoaWJpdGluZyB0aGUKPiBwcm9ibGVtIGlz IGhlcmUKPiAKPiBOT1RfVE1SMAo+IAo+ICAgICAgQlRGU0MgUElSMSwgQURJRgo+ICAgICAgQ0FM TCBIYW5kbGVBZF9SCj4gCj4gICAgICBCQU5LU0VMIFBJRTEKPiAgICAgIEJURlNTIFBJRTEsIFRY SUUKPiAgICAgIEdPVE8gTk9UX1RYSU5HCj4gCj4gICAgICBCQU5LU0VMIFBJUjEKPiAgICAgIEJU RlNDIFBJUjEsIFRYSUYKPiAgICAgIENBTEwgU2VuZE5leHRfUgo+IAo+IE5PVF9UWElORwo+IAo+ IFRoZSBjYWxsICJHT1RPIE5PVF9UWElORyIgYXBwZWFyZWQgdG8gYnJhbmNoIGludG8gYW4gdW5y ZWxhdGVkIAo+IGZ1bmN0aW9uLAo+IHVzaW5nIHRoZSBkZWJ1Z2dlciAoUElDS2l0IDMpIEkgZGV0 ZXJtaW5lZCB0aGF0IHRoZSBwcm9ncmFtIGNvdW50ZXIgaW4gCj4gdGhlCj4gaW50ZXJydXB0IGhh bmRsZXIgaXMgMHgxOD8/IHdoaWNoIGRvZXNuJ3Qgc2VlbSByaWdodCwgSSB3b3VsZCBleHBlY3Qg aXQgCj4gdG8KPiBiZSAweDAwPz8gYXMgdGhlIGludGVycnVwdCBoYW5kbGVyIGlzIGludHJvZHVj ZWQgd2l0aCBJUlEgQ09ERSAweDAwNC4gCj4gVGhlCj4gR09UTyBjaGFuZ2VzIHRoZSBsb3dlciBi eXRlIG9mIHRoZSBwcm9ncmFtIGNvdW50ZXIsIHdoaWNoIHdoZW4gY29tYmluZWQgCj4gd2l0aAo+ IFBDTEFUSCBpcyB0aGUgYWRkcmVzcyBpdCBqdW1wcyB0by4gQWZ0ZXIgYSBiaXQgb2YgcmVzZWFy Y2gsIGl0IGFwcGVhcnMgCj4gdGhhdAo+IHRoZSBpc3N1ZSBpcyByZWxhdGVkIHRvIHRoZSBwcm9n cmFtIHBhZ2UuCj4gV2hpY2ggaXMgd2hlcmUgdGhlIGNvbmZ1c2lvbiBzaG93cyB1cC4uLgo+IAo+ ICBGcm9tIHdoYXQgSSBoYXZlIHJlYWQsIEkgbmVlZCB0byBQQUdFU0VMIGJlZm9yZSBlYWNoIEdP VE8sIGJ1dCB0aGlzIAo+IHdpbGwKPiBicmVhayB0aGUgQlRGU1MgYXMgdGhlcmUgd2lsbCBiZSBt b3JlIHRoYW4gb25lIGluc3RydWN0aW9uIHRoZXJlLCBidXQgCj4gaW4KPiB0aGlzIGNhc2UsIHRo ZSB0YXJnZXQgaXMgbmVhcmJ5LCBzbyBJJ20gYmUgdmVyeSBzdXJwcmlzZWQgdGhhdCB0aGV5IAo+ IGFwcGVhcgo+IGluIGRpZmZlcmVudCBwYWdlcy4gQXMgZmFyIGFzIEkgY2FuIHRlbGwgZWFjaCBD T0RFIGJsb2NrIGlzIGd1YXJhbnRlZWQgCj4gdG8gYmUKPiBpbiBhIHNpbmdsZSBwYWdlLiBEbyBJ IG5lZWQgdG8gUEFHRVNFTCB0aGUgaW50ZXJydXB0IGhhbmRsZXIgZXZlbiAKPiB0aG91Z2ggSQo+ IGFtIGFscmVhZHkgdGhlcmU/IElmIEkgZG8sIHdpbGwgdGhlIFJFVEZJRSB3b3JrIHByb3Blcmx5 Pwo+IAo+IFRoZSBjdXJyZW50IGNvZGUgc2l6ZSBpcyBhcm91bmQgNiUgb2YgdGhlIHByb2dyYW0g bWVtb3J5LCBzbyB3aHkgaXMgdGhlCj4gbGlua2VyIHVzaW5nIG1vcmUgdGhhbiBvbmUgcGFnZT8g SXMgdGhlcmUgYW55dGhpbmcgSSBjYW4gZG8gdG8gdGhlIAo+IGxpbmtlcgo+IHNjcmlwdCB0byBl bnN1cmUgdGhhdCB0aGUgY29kZSBpcyBwdXQgaW4gdGhlIHNhbWUgcGFnZT8KPiAKPiAKPiAtLQo+ IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0 IGFyY2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6 Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Ci0tIApodHRwOi8vd3d3 LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZp ZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5l ZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cg== .