SEkgU2NvdHQKClllcywgdGhpcyBkb2VzIGluZGVlZCBvbmx5IGFmZmVjdCBvbGRlciB2ZXJzaW9u cyBvZiBQSFAgLSBJ4oCZbSBzb3JyeSBpZiB0aGF0IHdhc27igJl0IGNsZWFyIGluIG91ciBhZHZp c29yeS4gQ2hlY2sgdGhlIOKAnG1pdGlnYXRpb25z4oCdIHNlY3Rpb246ICJlbnN1cmUgdGhhdCB5 b3UgYXJlIHVzaW5nIGEgcmVjZW50IHZlcnNpb24gb2YgcGhwIChhdCBsZWFzdCA1LjMpIgoKU2Fk bHkgb3ZlciAxMyUgb2YgV29yZFByZXNzIHNpdGVzIGFyZSBzdGlsbCB1c2luZyBQSFAgNS4yIGFj Y29yZGluZyB0byB0aGVpciBzdGF0czogaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2Fib3V0L3N0YXRz LyA8aHR0cHM6Ly93b3JkcHJlc3Mub3JnL2Fib3V0L3N0YXRzLz4KClJlZ2FyZHMKCkR1bmNhbgoK LS0tCkR1bmNhbiBTdHVhcnQgKEBkZ21zdHVhcnQpCgpIZWFkIG9mIFByb2R1Y3RzLCBkeHcKCkV4 ZW1wbGFyeSB3ZWIgcHJvamVjdHMgZm9yIHRoZSBwdWJsaWMgc2VjdG9yCgpodHRwOi8vZHh3LmNv bS8KICAKMDc4NjYgOTM2IDk1OQowMzQ1IDI1NyA3NTIwCnNreXBlOiBkeHdkdW5jYW4KCj4gT24g MTIgQXVnIDIwMTUsIGF0IDIwOjQzLCBTY290dCBBcmNpc3pld3NraSA8c2NvdHRAYXJjaXN6ZXdz a2kubWU+IHdyb3RlOgo+IAo+IE9uIFdlZCwgQXVnIDEyLCAyMDE1IGF0IDk6NDggQU0sIGR4dyBT ZWN1cml0eSA8c2VjdXJpdHlAZHh3LmNvbT4gd3JvdGU6Cj4+IERldGFpbHMKPj4gPT09PT09PT09 PT09PT09PQo+PiBTb2Z0d2FyZTogT0F1dGgyIENvbXBsZXRlIEZvciBXb3JkUHJlc3MKPj4gVmVy c2lvbjogMy4xLjMKPj4gSG9tZXBhZ2U6IGh0dHA6Ly93b3JkcHJlc3Mub3JnL3BsdWdpbnMvb2F1 dGgyLXByb3ZpZGVyLwo+PiBBZHZpc29yeSByZXBvcnQ6IGh0dHBzOi8vc2VjdXJpdHkuZHh3LmNv bS9hZHZpc29yaWVzL3RoZS1vYXV0aDItY29tcGxldGUtcGx1Z2luLWZvci13b3JkcHJlc3MtdXNl cy1hLXBzZXVkb3JhbmRvbS1udW1iZXItZ2VuZXJhdG9yLXdoaWNoLWlzLW5vbi1jcnlwdG9ncmFw aGljYWxseS1zZWN1cmUvCj4+IENWRTogQXdhaXRpbmcgYXNzaWdubWVudAo+PiBDVlNTOiAxMCAo SGlnaDsgQVY6Ti9BQzpML0F1Ok4vQzpDL0k6Qy9BOkMpCj4+IAo+PiBEZXNjcmlwdGlvbgo+PiA9 PT09PT09PT09PT09PT09Cj4+IFRoZSBPQXV0aDIgQ29tcGxldGUgcGx1Z2luIGZvciBXb3JkUHJl c3MgdXNlcyBhIHBzZXVkb3JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHdoaWNoIGlzIG5vbi1jcnlw dG9ncmFwaGljYWxseSBzZWN1cmUKPj4gCj4+IFZ1bG5lcmFiaWxpdHkKPj4gPT09PT09PT09PT09 PT09PQo+PiBUaGUgZm9sbG93aW5nIHJlZmVyIHRvIHRoZSBnZW5lcmF0ZUFjY2Vzc1Rva2VuKCkg ZnVuY3Rpb24gaW4gbGlicmFyeS9PQXV0aDIvUmVzcG9uc2VUeXBlL0FjY2Vzc1Rva2VuLnBocCwg YW5kIHRoZSBnZW5lcmF0ZUF1dGhvcml6YXRpb25Db2RlKCkgZnVuY3Rpb24gaW4gbGlicmFyeS9P QXV0aDIvUmVzcG9uc2VUeXBlL0F1dGhvcml6YXRpb25Db2RlLnBocC4KPj4gCj4+IFRoZXNlIGZ1 bmN0aW9ucyBhdHRlbXB0IHRvIGdlbmVyYXRlIHNlY3VyZSBhdXRoIHRva2VucywgYnV0IGRvIG5v dCB1c2UgdGhlIFdvcmRQcmVzcyByYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gSW5zdGVhZCB0aGV5 IHVzZSBhIHNlcmllcyBvZiBmYWxsYmFjayBjYWxjdWxhdGlvbnMgZGVwZW5kaW5nIG9uIHdoaWNo IFBIUCB2ZXJzaW9uIGlzIGJlaW5nIHVzZWQuIFNvbWUgb2YgdGhlc2UgY2FsY3VsYXRpb25zIGFy ZSBub3QgY3J5cG9ncmFwaGljYWxseSBzZWN1cmU6Cj4+IFRoZSBmaXJzdCBpcyBtY3J5cHRfY3Jl YXRlX2l2KDEwMCwgTUNSWVBUX0RFVl9VUkFORE9NKS4gTUNSWVBUX0RFVl9VUkFORE9NIGlzIGV4 cGVjdGVkIHRvIGNoYW5nZSB0byBhIGRpZmZlcmVudCByYW5kb20gdmFsdWUgd2hlbmV2ZXIgaXQg aXMgY2FsbGVkLCBidXQgb24gV2luZG93cywgb24gb2xkZXIgdmVyc2lvbnMgb2YgcGhwIGl0IGlz IGtub3duIHRvIGJlIGEgY29uc3RhbnQgdmFsdWUKPj4gaWYgbm8gb3RoZXIgZnVuY3Rpb25zIChl LmcuIC9kZXYvdXJhbmRvbSkgYXJlIGF2YWlsYWJsZSB0aGVuIHRoZSBhY2Nlc3MgdG9rZW4gaXMg Z2VuZXJhdGVkIHNvbGVseSB1c2luZyBtdF9yYW5kKCksIG1pY3JvdGltZSgpLCBhbmQgdW5pcWlk KCkuCj4+IG10X3JhbmQoKSAoTWVyc2VubmUgdHdpc3RlcikgaXMgbm90IGEgY3J5cHRvZ3JhcGhp Y2FsbHkgc2VjdXJlIHBzZXVkb3JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgo+PiBBY2NvcmRpbmcg dG8gdGhlIGRvY3VtZW50YXRpb24gbXRfcmFuZCgpIGlzIGFsc28gYmlhc3NlZCB0b3dhcmRzIGV2 ZW4gcmV0dXJuIHZhbHVlcyBpbiBzb21lIGNpcmN1bXN0YW5jZXMuCj4+IEFjY29yZGluZyB0byB0 aGUgZG9jdW1lbnRhdGlvbiB1bmlxaWQoKSBpcyBhcyBzZWN1cmUgYSBQUk5HIGFzIG1pY3JvdGlt ZSgpLgo+PiAKPj4gCj4+IFByb29mIG9mIGNvbmNlcHQKPj4gPT09PT09PT09PT09PT09PQo+PiBT ZWUgdGhlIGRvY3VtZW50YXRpb246Cj4+IGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVu Y3Rpb24udW5pcWlkLnBocAo+PiBodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9u Lm10LXJhbmQucGhwCj4+IAo+PiBNaXRpZ2F0aW9ucwo+PiA9PT09PT09PT09PT09PT09Cj4+IFVw Z3JhZGUgdG8gdmVyc2lvbiAzLjEuNSBvciBsYXRlci4KPj4gSWYgdGhpcyBpcyBub3QgcG9zc2li bGUgdGhlbiBlbnN1cmUgdGhhdCB5b3UgYXJlIHVzaW5nIGEgcmVjZW50IHZlcnNpb24gb2YgcGhw IChhdCBsZWFzdCA1LjMpLCBvciBkaXNhYmxlIHRoZSBwbHVnaW4uCj4+IAo+PiBEaXNjbG9zdXJl IHBvbGljeQo+PiA9PT09PT09PT09PT09PT09Cj4+IGR4dyBiZWxpZXZlcyBpbiByZXNwb25zaWJs ZSBkaXNjbG9zdXJlLiBZb3VyIGF0dGVudGlvbiBpcyBkcmF3biB0byBvdXIgZGlzY2xvc3VyZSBw b2xpY3k6IGh0dHBzOi8vc2VjdXJpdHkuZHh3LmNvbS9kaXNjbG9zdXJlLwo+PiAKPj4gUGxlYXNl IGNvbnRhY3QgdXMgb24gc2VjdXJpdHlAZHh3LmNvbSB0byBhY2tub3dsZWRnZSB0aGlzIHJlcG9y dCBpZiB5b3UgcmVjZWl2ZWQgaXQgdmlhIGEgdGhpcmQgcGFydHkgKGZvciBleGFtcGxlLCBwbHVn aW5zQHdvcmRwcmVzcy5vcmcpIGFzIHRoZXkgZ2VuZXJhbGx5IGNhbm5vdCBjb21tdW5pY2F0ZSB3 aXRoIHVzIG9uIHlvdXIgYmVoYWxmLgo+PiAKPj4gVGhpcyB2dWxuZXJhYmlsaXR5IHdpbGwgYmUg cHVibGlzaGVkIGlmIHdlIGRvIG5vdCByZWNlaXZlIGEgcmVzcG9uc2UgdG8gdGhpcyByZXBvcnQg d2l0aCAxNCBkYXlzLgo+PiAKPj4gVGltZWxpbmUKPj4gPT09PT09PT09PT09PT09PQo+PiAKPj4g MjAxNC0wNC0xNjogRGlzY292ZXJlZAo+PiAyMDE1LTA3LTIxOiBSZXBvcnRlZCB0byB2ZW5kb3Ig YnkgZW1haWwKPj4gMjAxNS0wNy0yMTogUmVxdWVzdGVkIENWRQo+PiAyMDE1LTA4LTEwOiBWZW5k b3IgcmVzcG9uZGVkCj4+IDIwMTUtMDgtMTE6IFZlbmRvciBjb25maXJtZWQgZml4ZWQgaW4gdmVy c2lvbiAzLjEuNQo+PiAyMDE1LTA4LTEyOiBQdWJsaXNoZWQKPj4gCj4+IAo+PiAKPj4gRGlzY292 ZXJlZCBieSBkeHc6Cj4+ID09PT09PT09PT09PT09PT0KPj4gVG9tIEFkYW1zCj4+IFBsZWFzZSB2 aXNpdCBzZWN1cml0eS5keHcuY29tIGZvciBtb3JlIGluZm9ybWF0aW9uLgo+PiAKPj4gCj4+IAo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBTZW50 IHRocm91Z2ggdGhlIEZ1bGwgRGlzY2xvc3VyZSBtYWlsaW5nIGxpc3QKPj4gaHR0cHM6Ly9ubWFw Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Z1bGxkaXNjbG9zdXJlCj4+IFdlYiBBcmNoaXZlcyAmIFJT UzogaHR0cDovL3NlY2xpc3RzLm9yZy9mdWxsZGlzY2xvc3VyZS8KPiAKPiBIaSBUb20sIEZEIHJl YWRlcnMsCj4gCj4+IFRoZSBmaXJzdCBpcyBtY3J5cHRfY3JlYXRlX2l2KDEwMCwgTUNSWVBUX0RF Vl9VUkFORE9NKS4gTUNSWVBUX0RFVl9VUkFORE9NIGlzIGV4cGVjdGVkIHRvIGNoYW5nZSB0byBh IGRpZmZlcmVudCByYW5kb20gdmFsdWUgd2hlbmV2ZXIgaXQgaXMgY2FsbGVkLCBidXQgb24gV2lu ZG93cywgb24gb2xkZXIgdmVyc2lvbnMgb2YgcGhwIGl0IGlzIGtub3duIHRvIGJlIGEgY29uc3Rh bnQgdmFsdWUKPiAKPiBUaGUgYnVnIHlvdSBhcmUgcmVmZXJyaW5nIHRvIHdhcyBmaXhlZCBpbiBQ SFAgNS4zLjc7IHRoaXMgY2FuIGJlCj4gc29sdmVkIGJ5IGNoZWNraW5nIHRoZSBQSFAgdmVyc2lv biBhbmQvb3IgYnkgbm90IHN1cHBvcnRpbmcgb2xkZXIgYW5kCj4gaW5zZWN1cmUgdmVyc2lvbnMg b2YgUEhQLgo+IAo+IFNlZSByYW5kb21fY29tcGF0IGZvciBob3cgdGhpcyBzaG91bGQgYmUgZG9u ZToKPiAKPiBodHRwczovL2dpdGh1Yi5jb20vcGFyYWdvbmllL3JhbmRvbV9jb21wYXQvYmxvYi9t YXN0ZXIvbGliL3JhbmRvbS5waHAjTDUzCj4gCj4+IGlmIG5vIG90aGVyIGZ1bmN0aW9ucyAoZS5n LiAvZGV2L3VyYW5kb20pIGFyZSBhdmFpbGFibGUgdGhlbiB0aGUgYWNjZXNzIHRva2VuIGlzIGdl bmVyYXRlZCBzb2xlbHkgdXNpbmcgbXRfcmFuZCgpLCBtaWNyb3RpbWUoKSwgYW5kIHVuaXFpZCgp Lgo+PiBtdF9yYW5kKCkgKE1lcnNlbm5lIHR3aXN0ZXIpIGlzIG5vdCBhIGNyeXB0b2dyYXBoaWNh bGx5IHNlY3VyZSBwc2V1ZG9yYW5kb20gbnVtYmVyIGdlbmVyYXRvci4KPj4gQWNjb3JkaW5nIHRv IHRoZSBkb2N1bWVudGF0aW9uIG10X3JhbmQoKSBpcyBhbHNvIGJpYXNzZWQgdG93YXJkcyBldmVu IHJldHVybiB2YWx1ZXMgaW4gc29tZSBjaXJjdW1zdGFuY2VzLgo+PiBBY2NvcmRpbmcgdG8gdGhl IGRvY3VtZW50YXRpb24gdW5pcWlkKCkgaXMgYXMgc2VjdXJlIGEgUFJORyBhcyBtaWNyb3RpbWUo KS4KPiAKPiBMZXQncyBxdWFudGlmeSB0aGVzZSBudW1iZXJzOgo+IAo+ICogbXRfcmFuZCgpCj4g ICAgKiBQcmVkaWN0YWJsZSwgb25seSB1cCB0byAzMSBiaXRzIG9mIGVudHJvcHkgaW4gdGhlIHBv c3NpYmxlIHNlZWQgdmFsdWVzCj4gICAgKiBodHRwOi8vd3d3Lm9wZW53YWxsLmNvbS9waHBfbXRf c2VlZC8KPiAqIG1pY3JvdGltZSgpCj4gICAgKiBHaXZlbiB0aGUgVU5JWCB0aW1lc3RhbXAgb2Yg dGhlIHNlcnZlciBpcyBnZW5lcmFsbHkga25vd2FibGUsIHdlCj4gY2FuIGJhbGxwYXJrIHRoaXMg YXQgYSBtYXhpbXVtIG9mIDEwXjYgKG9yIGFib3V0IDIwIGJpdHMpIGR1ZSB0bwo+IG1pY3Jvc2Vj b25kIHJlc29sdXRpb24uCj4gKiB1bmlxaWQoKQo+ICAgICogMTAgYml0cyBvZiBlbnRyb3B5IGJ5 IGRlZmF1bHQKPiAgICAqIDI5IGJpdHMgb2YgZW50cm9weSB3aXRoIG1vcmVfZW50cm9weQo+ICAg ICogaHR0cDovL3NlY3VyaXR5bWF2ZXJpY2suY29tL3BocC11bmlxaWQtZW50cm9weS1hbmFseXNp cy1hbmQtcG90ZW50aWFsbHktdnVsbmVyYWJsZS1hcHBzCj4gCj4gU28gaWYgeW91J3JlIHVzaW5n IFdvcmRQcmVzcyBvbiBhbiBhbmNpZW50IHZlcnNpb24gb2YgUEhQIG9uIFdpbmRvd3MKPiBvciBo YXZlIG9wZW5fYmFzZWRpciByZXN0cmljdGlvbnMgb24gTGludXgsIGFuZCBkaXNhYmxlZCBleHQv bWNyeXB0LAo+IHlvdSBjYW4gc3F1ZWV6ZSA2MCB0byA4MCBiaXRzIG91dCBvZiB0aGlzLCBhc3N1 bWluZyBhbGwgb2YgdGhlIHNlZWRzCj4gYXJlIHVucmVsYXRlZC4KPiAKPiBUaGF0J3Mgbm90IGFz IHRlcnJpYmxlIGFzIHNvbWUgb2Ygd2hhdCBJJ3ZlIHNlZW4gKFlvdSB3YW50IG1lIHRvIHB1dAo+ IHRoaXMgc3RyX3NodWZmbGUoKSBwYXNzd29yZCBnZW5lcmF0b3IgaW4gcHJvZHVjdGlvbj8gRHJl YW0gb24hKSBidXQKPiBzdGlsbCBub3QgZ3JlYXQuIElkZWFsbHksIHlvdSB3YW50IGF0IGxlYXN0 IDEwMCBiaXRzIG9mIGVudHJvcHkgKGZyb20KPiB1cmFuZG9tIG9yIGVxdWl2YWxlbnQpLgo+IAo+ IEJUVywgdW5sZXNzIHlvdSdyZSB1c2luZyB0aGUgbGF0ZXN0IHBhdGNoZXMgZm9yIDUuNCwgNS41 LCBvciA1LjYsCj4gb3BlbnNzbF9yYW5kb21fcHNldWRvX2J5dGVzKCkgY2FuIHNpbGVudGx5IGZh aWwgYW5kIGJlY29tZSB3ZWFrIHRvby4KPiA6KAo+IAo+IFRoZSBsZXNzb24gdG8gbGVhcm4gaGVy ZSBpcyB0aGF0IHlvdSBzaG91bGQgYmUgcnVubmluZyBhIHN1cHBvcnRlZAo+IHZlcnNpb24gb2Yg UEhQIHdoZXJlIHRoZXNlIGJ1Z3MgYXJlIGZpeGVkLCByYXRoZXIgdGhhbiBjb250aW51aW5nIHRv Cj4gcnVuIDUuMi54IGluIDIwMTUuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KU2VudCB0aHJvdWdoIHRoZSBGdWxsIERpc2Nsb3N1cmUgbWFpbGluZyBs aXN0Cmh0dHBzOi8vbm1hcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mdWxsZGlzY2xvc3VyZQpXZWIg QXJjaGl2ZXMgJiBSU1M6IGh0dHA6Ly9zZWNsaXN0cy5vcmcvZnVsbGRpc2Nsb3N1cmUv