T24gMzEgSmFudWFyeSAyMDE2IGF0IDAzOjExLCBSdXNzZWxsTWMgPGFwcHRlY2huekBnbWFpbC5j b20+IHdyb3RlOgoKKuKAi+KAi1NvbWUgb2YgdGhlIHRoaW5ncyB0aGV5IGNsYWltIGFyZSBpbXBv c3NpYmxlIGFzIGRlc2NyaWJlZCwgc29tZSBhcmUKPiBpbGxlZ2FsIChpbiBhbG1vc3QgYW55IGNv dW50cnkpIGFzIGRlc2NyaWJlZCAoSXNsYW5kaW5nLCBvciBpbXBvc3NpYmlsaXR5IC0KPiBkaXJl Y3QgcGx1ZyBpbiwgLi4uKSBhbmQgc29tZSBhcmUgdmVyeSB2ZXJ5IHZlcnkgdW5saWtlbHkuKgo+ Cgo+ICpUaGVpciBjaXJjdWl0IGlzb2xhdGlvbiBmZWF0dXJlIGR1cmluZyBhIHBvd2VyIG91dGFn ZSBpcyBpbXBvc3NpYmxlIGFzCj4gZGVzY3JpYmVkLioKPgoqSWYgdGhlIHBvd2VyZWQgZXF1aXBt ZW50IHBsdWdzIGludG8gYW4gb3V0bGV0IG9uIHRoZSBkZXZpY2UgaXQgaXMgcG9zc2libGUKPiAg YW5kIHBvdGVudGlhbGx5IGxlZ2FsIGJ1dCBpcyBub3Qgd2hhdCB0aGV5IGRlc2NyaWJlLioKPgoq SWYgcG93ZXIgaXMgZmVkIGludG8gdGhlIGhvdXNlIHZpYSBhIHNpbmdsZSBjb25uZWN0aW9uICgy IHdpcmVzIHBsdXMKPiBvcHRpb25hbCBncm91bmQpIHRoZW4gdGhlIGlzb2xhdGlvbiByZXF1aXJl ZCB0byBwcmV2ZW50IGdyaWQgY29ubmVjdGlvbiBpcwo+IGltcG9zc2libGUgd2l0aG91dCBtb3Jl IGVxdWlwbWVudCBiZXR3ZWVuIHRoZW0gYW5kIHRoZSBncmlkLioKPgoKPgoqT24gc29tZSBvZiB0 aGUgc21hcnRwaG9uZSBkaXNwbGF5IHNjcmVlbnMgaXQgc2F5cyAiSVNMQU5ERUQiLioKPgoqZWcg dXBwZXIgaW1hZ2UgaW4gbGluayBiZWxvdy4qCj4KCj4gKlRoaXMgbWVhbnMgdGhhdCB0aGUgYmF0 dGVyeSBnZW5lcmF0ZWQgQUMgaXMgaXNvbGF0ZWQgZnJvbSB0aGUgbWFpbnMgKGhhcwo+IGl0cyBv d24gSVNMQU5EKSAuKgo+CipUaGlzIGlzIG5lY2Vzc2FyeSBidXQgaW1wb3NzaWJsZSBpZiAidGhl cmUgaXMgb25seSBvbmUgcm9hZCBpbiBhbmQgb3V0Ii4gKgo+CgpUaGVpciAiYXMgZGVzY3JpYmVk IiBzY2VuYXJpbyBvbiB0aGVpciBtYWluIHdlYnNpdGUgaXMgaW5jb21wbGV0ZS7igIsK4oCLUmVh ZGluZyB0aGUgS2lja3N0YXJ0ZXIgY29tbWVudHMg4oCLZm9yIGV4dHJhIGluZm9ybWF0aW9uIChO T1QgdGhlIHBsYWNlIHlvdQpzaG91bGQgbmVlZCB0byBsb29rIGZvciBleHRyYSBpbmZvcm1hdGlv biBmb3IgS2lja3N0YXJ0ZXIgb3IgdGhlaXIgbWFpbgpzaXRlKSBpdCBpcyBzZWVuIHRoYXQKClRo ZSBjbGFpbWVkIGV4dHJhcyBtYWtlIHdoYXQgdGhleSBjbGFpbSB0ZWNobmljYWxseSBwb3NzaWJs ZSwgd2l0aApsaW1pdGF0aW9ucy4KClRoZSBpc29sYXRpb24gYXJyYW5nZW1lbnQgZm9yIHBvd2Vy IG91dGFnZXMgZG9lcyBub3QgbWVldCBhbnkga25vd24KcmVndWxhdG9yeSBzdGFuZGFyZCBhbmQg dGhlIGNoYW5jZXMgb2YgaXQgbWVldGluZyBhbnkgZnV0dXJlIHJlbGF4ZWQgb25lcwpzZWVtcyBt aW5pbWFsLgoKVGhleSBoYXZlIHRvIGFkZCBxdWl0ZSBhIGxvdCBvZiBzbWFsbCBidXQgc2lnbmlm aWNhbnQgZXh0cmEgc3R1ZmYgKGFzCmRlc2NyaWJlZCBpbiB0aGVpciBLUyBjb21tZW50cykgdG8g bWFrZSB0aGUgc3lzdGVtIHdvcmsgYXMgY2xhaW1lZC4gVGhpcwp2aW9sYXRlcyB0aGVpciAianVz dCBwbHVnIGl0IGluIiBjbGFpbXMuClRoZSBleHRyYSBzdHVmZiAoYXQgYSBtaW5pbXVtLCBjdXJy ZW50IHNlbnNlIGFuZCB2b2x0YWdlIHNlbnNlIG9mIGJvdGggZ3JpZApmZWVkIHRvIGhvdXNlIGFu ZCBQViBmZWVkKSBoYXMgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgbWFpbiB1bml0IHNvbWVob3ci LgpIYXJkIGNvbm5lY3Rpb24gaXMgbWVzc3kgYW5kIFdpRmkgb3IgQmx1ZXRvb3RoIG9yIG1haW5z IGNhcnJpZXIgb3IgLi4uIGFkZHMKY29zdCBhdCBib3RoIGVuZHMuClRoZSByZXRhaWwgY29zdCBv ZiB0aGUgZXh0cmFzIGlzIHNheSAkMjAwIC0geW91IE1JR0hUIGRvIGl0IGZvciAkMTAwIGFzCnBh cnQgb2YgYW0gb3ZlcmFsbCBzeXN0ZW0gLSBidXQgbm9ib2R5IGRvZXMgLSBhbmQgc29tZSB3b3Vs ZCBjaGFyZ2Ugc2F5CiQ0MDAgZm9yIHRoZSBleHRyYXMgdGhleSBhcmUgb2ZmZXJpbmcuCgpUSGUg dXNlIG9mIGFuIEVMQ0Igb3IgY2lyY3VpdCBicmVha2VyIHRvIGlzb2xhdGUgdGhlIGZlZWQgYXQg dGhlCnN3aXRjaGJvYXJkIChhcyBvcHBvc2VkIHRvIGF0IHRoZWlyIGVxdWlwbWVudCkgaXMgSGVh dGggUm9iaW5zb24gaW4gdGhlCmV4dHJlbWUsIHVubGlrZWx5IHRvIG1lZXQgcmVndWxhdG9yeSBh cHByb3ZhbCwgYW5kIG11c3QgYmUgbWFudWFsbHkgcmVzZXQKRVZFUlkgVElNRSBhZnRlciB0aGUg dW5pdCBwcm92aWRlcyBwb3dlciB0byB0aGUgaG91c2UgdW5kZXIgY3VycmVudCByZWdzCmFuZCBq dXN0IG1heWJlIG9ubHkgYWZ0ZXIgYSBtYWlucyBvdXRhZ2UgdW5kZXIgc29tZSBhc3RvdW5kaW5n bHkgc29mdApmdXR1cmUgcmVncy4KClRoZSBjb25zaXN0ZW50IG9uZ29pbmcgdHJlbmQgb2YgYWxs IHJlZ3VsYXRvcnkgcmVxdWlyZW1lbnRzIHRvIGRhdGUgaGFzCmJlZW4gdG8gdGlnaHRlbiB1cCBy ZXF1aXJlbWVudHMgYW5kIG1ha2UgdGhpbmdzIGhhcmRlciB0byBhY2hpZXZlLiBlZwpzdXBlcmIg cXVhbGl0eSBleHRyZW1lbHkgc2FmZSBTTUEgIlN1bm55IEJveSIgaW52ZXJ0ZXJzIHdoaWNoIG1l dCBhbGwgd29ybGQKcmVndWxhdG9yeSByZXF1aXJlbWVudHMgYSB5ZWFyIGFnbyBub3cgY2Fubm90 IGJlIGluc3RhbGxlZCBpZiBub3QgYWxyZWFkeQppbiBwbGFjZSBkdWUgdG8gcmVndWxhdG9yeSBj aGFuZ2VzIGludGVybmF0aW9uYWxseS4KClRoZSBwbGd1IGl0IGluIGFuZCBnbyBzY2VuYXJpbyAq Kk1JR0hUKiogYmUgYWxsb3dlZCBpbiBzb21lCnV0b3BpYS1keXN0b3BpYW4gVVMgc2NlbmFyaW8g YnV0IGluIE5aIHNvIGZhciBhbGwgaW5zdGFsbGF0aW9ucyBNVVNUIGJlCmFwcHJvdmVkIGFuZCBp dCBpcyBhcHByb3ggaW5jb25jZWl2YWJsZSB0aGF0IHBsdWcgYW5kIGdvIHdpbGwgYmUgYWxsb3dh YmxlCmluIHRoZSBmb3Jlc2VlYWJsZSBmdXR1cmUuCgpUaGUgdXNlIG9mIGFuIEVMQ0IgdG8gbWVl dCAibWFrZXMgcG93ZXIgb3V0IG9mIHRoZSBwbHVnIGlmIHlvdSBsZXQgaXQiIGlzCm5vbiBzdGFu ZGFyZCBhbmQgcGFpbmZ1bCAoYXNrIG1lIGhvdyBJIGtub3cpIHVubGVzcyB5b3UgbWFrZSBhIHdo b2xlIG5ldwpjbGFzcyBvZiBFTENCIGluc2lkZSB0aGUgdW5pdC4gKGVnIHlvdSBjb3VsZCB0ZXN0 IGZvciBOZXV0cmFsLWdyb3VuZCBsb3cKcmVzaXN0YW5jZSBjb25uZWN0aW9uIGFuZCBub3QgZXZl biBzdGFydCB0byBmZWVkIHBvd2VyIG91dCBpZiB0aGlzIGlzIG5vdApwcmVzZW50LiBUaGF0IGlz IE5PVCBhIHN0ZCBFTENCIGZ1bmN0aW9uLgoKT3ZlcmFsbCBJIGdldCB0aGUgaW1wcmVzc2lvbiB0 aGF0IGtub3dsZWRnZWFibGUgcGVvcGxlIGFyZSB0aGlua2luZyB1cCBuZXcKYW5zd2VycyBvZiBo b3cgdGhleSBNSUdIVCBhY2hpZXZlIHNvbWV0aGluZyBldmVyeSB0aW1lIHNvbWVib2R5IHJhaXNl cyBhCm5ldyB2YWxpZCBwb3RlbnRpYWwgb2JqZWN0aW9uLgoKVGhleSBjbGFpbSB0byBiZSB3b3Jr aW5nIHdpdGggZXZvbHZpbmcgc3RhbmRhcmRzIG9yZ2FuaXNhdGlvbnMuIFRoZXkgbWF5CmJlLiBU aGF0IG1heSBiZSBoeXBlLiBPciBsaWVzLiBPciBub3QuCgpJIGhhdmUgcGFpZCBteSAkNSB0byB0 aGVpciBjYW1wYWlnbi4gSSBkaWQgbm90IGhhdmUgYSBsb25nIGVub3VnaCBiYXJnZQpwb2xlIHRv IG1hbmFnZSB0byBwdXNoIGFueSBtb3JlIGluIHRoZWlyIGRpcmVjdGlvbi4KCkkgcHJlZGljdCBt aWxkIHRvIGxhcmdlIGRpc2FzdGVyLgpJIG1heSBiZSB3cm9uZy4KSSdkIGJlIHN1cnByaXNlZC4K V2l0aCBsdWNrIEkgd2lsbCBiZS4KCgpSdXNzZWxsCgoKIOKAiwpodHRwczovL3d3dy5raWNrc3Rh cnRlci5jb20vcHJvamVjdHMvZXJpY2NsaWZ0b24vb3Jpc29uLXJldGhpbmstdGhlLXBvd2VyLW9m LWVuZXJneT91dG1fc291cmNlPXdlYnNpdGUmdXRtX21lZGl1bT1idXR0b24mdXRtX2NhbXBhaWdu PW9yZ2FuaWMKCuKAiyAgICAgICAgICAg4oCLCmh0dHA6Ly9vcmlzb24uZW5lcmd5LyA8aHR0cDov L29yaXNvbi5lbmVyZ3kvPgoKCgpOb3RlczoKCkknbSBzdXJwcmlzZWQgYW5kIGR1YmlvdXMgcmUg dGhlaXIgY2xhaW1zIG9mIGZ1dHVyZSBpc29sYXRpb24gZmFjaWxpdGllcwpiZWluZyBhbGxvd2Vk IHRvIHVzZSAiY2lyY3VpdCBicmVha2VycyIuCgpJbiB0aGUgY29tbWVudHMgdGhleSBzYXk6CgpR dWVzdGlvbiAxOgpIb3cgZG9lcyBPcmlzb24ga25vdyBteSBzb2xhciBwYW5lbHMgYXJlIHByb2R1 Y2luZyBtb3JlIHRoZW4gd2UgdXNlIHNvIGl0CndpbGwgc3RvcmUgdGhlIGV4Y2VzcyBlbmVyZ3ku CkFuc3dlciAxOgpPcmlzb24gaGFzIHRocmVlIG1lYW5zIG9mIGtub3dpbmcgaG93IG11Y2ggZW5l cmd5IHRvIHN0b3JlOiAoMSkKd2lyZWxlc3MgY29ubmVjdGlvbgogICAgaW50byBhIHNtYXJ0IG1l dGVyCiAgICBhbmQgc29sYXIgb3V0cHV0IHN0cmVhbSwgKDIpCgphZGQgb24KICAgICAgIChlYXN5 IHRvIGluc3RhbGwpCiAgICAgICAgICAgcG93ZXIgc2Vuc29ycyBmb3IKICAgICAgICAgICAgICAg IG1haW4gcG93ZXIgKGdyaWQpIGZlZWQgYW5kCiAgICAgICAgICAgICAgICBzb2xhciBvdXRwdXQs IGFuZCAoMykKCm1hbnVhbCBpbnB1dCBvZiBzb2xhciBwb3dlciBuYW1lcGxhdGUgb3V0cHV0IGNv dXBsZWQgd2l0aCByZWFsLXRpbWUKbWV0ZW9yb2xvZ2ljYWwgZGF0YSB0byBwcmVkaWN0IHNvbGFy IG91dHB1dC4KCmllIHRoZXkgYWRkIHVubWVudGlvbmVkIGNvbm5lY3Rpb24gdG8gdGhlIHNtYXJ0 IG1ldGVyIGFuZCBwb3dlciBzZW5zb3JzIGZvcgp0aGUgZ3JpZCBlbnRyeSBwb2ludCBhbmQgc29s YXIgY29ubmVjdGlvbiBwb2ludC4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9w aWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJz aGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3Bp Y2xpc3QK .