UkE0IGlzIG9wZW4gZHJhaW4gb3V0cHV0LiBJdCBjYW4gc2luayBjdXJyZW50IGJ1dCBjYW5ub3Qg c2F1cmNlLiBZb3UgY2FuIGNvbm5lY3QgdGhlIGxvYWQgZnJvbSA1ViB0byBSQTQuIChMb2FkID0g TEVEIGluIHNlcmllcyB3aXRoIGEgMzMwIG9obSByZXNpc3RvcikuIFRoaXMgd2lsbCBtYWtlIHRo ZSBMRUQgYWN0aXZlIGxvdy4NCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTog S2V2aW4gVmFuZGVybWFhcmVsIFttYWlsdG86S1ZhbmRlcm1hYXJlbEBKTVBFTkcuQ09NXQ0KU2Vu dDogMzEgTWFyY2ggMjAwNCAwNDoxNCBQTQ0KVG86IFBJQ0xJU1RATUlUVk1BLk1JVC5FRFUNClN1 YmplY3Q6IFtQSUNdOiAxNkY4NzcgUkMgY2xvY2sgcHJvYmxlbXMgYW5kIHF1ZXN0aW9ucy4NCg0K DQpIZWxsbywNCiANCkkgYW0gYSBQSUMgbmV3YmllLCBzbyBiZWFyIHdpdGggbWUuICBJIGhhdmUg cmVhZCB0aGUgYXJ0aWNsZXMgSSBjb3VsZCBmaW5kIGluIHRoZSBhcmNoaXZlcywgYnV0IG5vdGhp bmcgd2FzIGFibGUgdG8gYWRkcmVzcyBteSBxdWVzdGlvbiBzcGVjaWZpY2FsbHksIG9yIEkgaGF2 ZSBhbHJlYWR5IGNvbnNpZGVyZWQgdGhlIGlkZWFzLiAgSSBoYXZlIGFsc28gcmVhZCB0aGUgbmV3 YmllIGZhcSwgYW5kIGkgdGhpbmsgSSBoYXZlIGFkZHJlc3NlZCB0aGUgYmFzaWNzLiAgUGxlYXNl IGxldCBtZSBrbm93IGlmIEkgaGF2ZSBub3QuDQogDQpQcm9ibGVtcyBJIGFtIGhhdmluZzoNCg0K QmFzaWNhbGx5LCBhbiBMRUQgY29ubmVjdGVkIHRvIFBPUlRBLCBiaXQgNCBpcyBub3QgdHVybmlu ZyBvbi4gIEkgdGhpbmsgaXQgaXMgYmVjYXVzZSBvZiB0aGUgUkMgY2xvY2sgYmFzZWQgb24gdGhl IGZvbGxvd2luZyBmaW5kaW5nczoNCg0KMSkgQSBtZWFzdXJlbWVudCBvZiB0aGUgY2xvY2sgY3lj bGUgZ29pbmcgaW50byBPU0MxIGhhcyBWbWluPX4xViBhbmQgVm1heD1+My44Vi4gIFRoZSBzcGVj IHJlcXVpcmVzIGEgcmFuZ2Ugb2YgMVYgKDAuMiBWZGQpIC0gNC41IFYgKDAuOSBWZGQpIGluIFJD IG1vZGUuICBJIHRyaWVkIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIHJlc2lzdG9ycyBhbmQgY2Fw YWNpdG9ycyBmb3IgdGhlIFJDIGNpcmN1aXQsIGJ1dCB0aGlzIHdvdWxkIG5vdCBjaGFuZ2UgdGhl IGFtcGxpdHVkZSwgb25seSB0aGUgZnJlcXVlbmN5Lg0KMikgVGhlIDVWIHNvdXJjZSBpcyBkcmF3 biBkb3duIHRvIH40ViB3aGVuIEkgY29ubmVjdCB0aGUgUkMgY2lyY3VpdCB0byB0aGUgT1NDMSBw aW4uICBJIGhhdmUgdHJpZWQgdHdvIFAvUyBtZXRob2RzIGEpIE9uZSBnZW5lcmljIFAvUyBzdXBw bGluZyBhIDEyVkRDIHNpZ25hbCB3aGljaCBJIHRoZW4gcGFzcyB0aHJvdWdoIGEgTE03ODA1IDVW IHZvbHRhZ2UgcmVndWxhciAyKSBBIDEyMC05VkFDIHdhbGwgYWRhcHRvciwgdGhyb3VnaCBhIGZ1 bGwgd2F2ZSBicmlkZ2UgcmVjdGlmaWVyIGFuZCB0aGVuIGEgc2ltcGxlIHZvbHRhZ2UgZGl2aWRl ci4gIEkgaGF2ZSBhbHNvIHRyaWVkIHRoZSB2b2x0YWdlIHJlZ3VsYXRvciBvbiB0aGUgb3V0cHV0 IG9mIHRoZSByZWN0aWZpZXIgY2lyY3VpdCB3aXRoIHRoZSBzYW1lIHJlc3VsdHMuDQogDQpJZiBJ IGFtIHdheSBvZmYgYmFzZSBhbmQgdGhlIFJDIGNpcmN1aXQgaXMgYWNjZXB0YWJsZSwgd2hhdCBl bHNlIGNvdWxkIGJlIHdyb25nIGJhc2VkIG9uIG15IGNvbmZpZ3VyYXRpb24uDQoNCkNvbmZpZ3Vy YXRpb24gYW5kIEVxdWlwbWVudA0KMS4gTWljcm9jaGlwIFBpYzE2Rjg3Nw0KMi4gUGluIFJBNCBj b25uZWN0ZWQgdG8gYSAyMjAgT2htIHJlc2lzdG9yIGFuZCBicmlnaHQgcmVkIExFRCBpbiBzZXJp ZXMgdG8gZ25kIA0KMy4gR3JvdW5kZWQgYWxsIHVudXNlZCBwaW5zIEkvTyBwaW5zDQo0LiBDb25u ZWN0ZWQgYWxsIFZzcyBhbmQgVmRkIHBpbnMNCjUuIERvd25sb2FkZWQgYSBiYXNpYyBwZ20gdG8g dHVybiBvbiBQb3J0IEEsIGJpdCA0LiAgU2VlIGJlbG93Lg0KNi4gU2VsZWN0ZWQgcHJvcGVyIGNs b2NrIHR5cGUgZm9yIHRoZSBIUyAvIFJDIGZvciBlYWNoIGNvbmZpZ3VyYXRpb24gSSB0cmllZA0K Ny4gVGllZCBNQ0xSIGhpZ2ggdW5sZXNzIEkgd2FudCB0byByZXNldCBieSBtb21lbnRhcmlseSBj b25uZWN0aW5nIHRvIGduZA0KOC4gQ29kZSBwcm90ZWN0aW9uIGlzIG9mZg0KOS4gTVBMQUIgSURF IHRvIHByb2dyYW0gdGhlIGNvZGUgYW5kIGNvbnZlcnQgdG8gSEVYLiAgQ29kZSB3YXMgc2ltdWxh dGVkIGluIE1QTEFCIFNJTSBhbmQgc2VlbXMgdG8gb3BlcmF0ZSBPSw0KMTAuIFdhcnAgMTMtYSBw cm9ncmFtIGFuZCBib2FyZCB0byBkb3dubG9hZCB0byB0aGUgY2hpcC4gIERvd25sb2FkIGFuZCB2 ZXJpZnkgaXMgT0suDQoxMS4gUkMgY2xvY2sgUj0zMzMzT2htLCBDPTQwcEYuIC0gSSBhbSBnZXR0 aW5nIGFib3V0IDFNSHogY2xvY2sgY3ljbGUNCjEyLiBJIGFsc28gdHJpZWQgYSAxOS54eHggTUh6 IGNyeXN0YWwgY2xvY2sgd2l0aCBIUyBtb2RlIHNlbGVjdGVkLCBidXQgZ2V0IG5vIHJlc3BvbnNl LiAgSSBkaWQgbm90IGhhdmUgYSBwcm9wZXIgc2NvcGUgdG8gbWVhc3VyZSB0aGUgY2xvY2sgY2ly Y3VpdCBzbyBJIGFiYW5kb25lZCB0aGlzIHJvdXRlLg0KDQoNClRoZSBjb2RlIGlzIGFzIGZvbGxv d3M6DQogDQogDQogDQoNCiBsaXN0ICAgICAgcD0xNmY4NzcgICAgICAgICAgICA7IGxpc3QgZGly ZWN0aXZlIHRvIGRlZmluZSBwcm9jZXNzb3INCiAjaW5jbHVkZSA8cDE2Zjg3Ny5pbmM+ICAgICAg ICA7IHByb2Nlc3NvciBzcGVjaWZpYyB2YXJpYWJsZSBkZWZpbml0aW9ucw0KIA0KIF9fQ09ORklH IF9DUF9PRkYgJiBfV0RUX09GRiAmIF9CT0RFTl9PTiAmIF9QV1JURV9PTiAmIF9SQ19PU0MgJiBf V1JUX0VOQUJMRV9PTiAmIF9MVlBfT04gJiBfREVCVUdfT0ZGICYgX0NQRF9PRkYgDQogDQo7ICdf X0NPTkZJRycgZGlyZWN0aXZlIGlzIHVzZWQgdG8gZW1iZWQgY29uZmlndXJhdGlvbiBkYXRhIHdp dGhpbiAuYXNtIGZpbGUuDQo7IFRoZSBsYWJsZXMgZm9sbG93aW5nIHRoZSBkaXJlY3RpdmUgYXJl IGxvY2F0ZWQgaW4gdGhlIHJlc3BlY3RpdmUgLmluYyBmaWxlLg0KOyBTZWUgcmVzcGVjdGl2ZSBk YXRhIHNoZWV0IGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gd29y ZC4NCiANCjsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqU0VUICBVUCAgU3Rh cnQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogIG9yZyAgICAgMHgwMDAgICAg ICAgICAgICAgO1Byb2Nlc3NvciByZXNldCB2ZWN0b3INCiAgY2xyZiAgICBQQ0xBVEggICAgICAg ICAgICA7RW5zdXJlIHBhZ2UgYml0cyBhcmUgY2xlYXJlZA0KICAgIGdvdG8gICAgbWFpbiAgICAg ICAgICAgICAgO0dvIHRvIGJlZ2lubmluZyBvZiBwcm9ncmFtDQo7KioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiAgIFNldCB1cCAgIEVuZCAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKg0KIA0KOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICBNYWluIFN0 YXJ0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQptYWluDQog DQogIDtJbml0aWFsaXplIHBvcnQgQQ0KICBiY2YgIFNUQVRVUyxSUDAgICAgICAgIDtTZXQgdG8g DQogIGJjZiAgU1RBVFVTLFJQMSAgICAgICAgOyAgICAgQmFuayAwDQogIGNscmYgUE9SVEEgICAg ICAgICAgICAgO0luaXRpYWxpemUgcG9ydCBBIGJ5IGNsZWFyaW5nIG91dHB1dA0KICBic2YgIFNU QVRVUyxSUDAgICAgICAgIDtTZXQgdG8gDQogIGJjZiAgU1RBVFVTLFJQMSAgICAgICAgOyAgICAg QmFuayAxDQogIG1vdmx3ICAgMHgwNg0KICBtb3Z3ZiAgIEFEQ09OMQ0KICBtb3ZsdyAgIDB4Q0YN CiAgbW92d2YgICBUUklTQQ0KIA0KDQogIGJjZiAgU1RBVFVTLFJQMCAgICAgICAgO1NldCB0byAN CiAgYmNmICBTVEFUVVMsUlAxICAgICAgICA7ICAgICBCYW5rIDANCiANCmxvb3ANCiAgYnNmICAg ICBQT1JUQSw0ICANCiANCiAgZ290byAgICBsb29wDQogDQogIGVuZCAgICAgICAgICAgICAgICAg ICAgICAgO0RpcmVjdGl2ZSAnZW5kIG9mIHByb2dyYW0nDQo7KioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiogTWFpbiBFbmQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqDQogDQoNCkFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLg0KIA0KDQpS ZWdhcmRzLA0KIA0KDQpLZXZpbiBWYW5kZXJtYWFyZWwNCmsgPG1haWx0bzprdmFuZGVybWFhcmVs QGptcGVuZy5jb20+IHZhbmRlcm1hYXJlbEBqbXBlbmcuY29tDQoNCg0KLS0NCmh0dHA6Ly93d3cu cGljbGlzdC5jb20gaGludDogVG8gbGVhdmUgdGhlIFBJQ0xpc3QNCm1haWx0bzpwaWNsaXN0LXVu c3Vic2NyaWJlLXJlcXVlc3RAbWl0dm1hLm1pdC5lZHUNCiANCiANCiANCk5PVElDRTogUGxlYXNl IG5vdGUgdGhhdCB0aGlzIGVNYWlsLCBhbmQgdGhlIGNvbnRlbnRzIHRoZXJlb2YsICANCmlzIHN1 YmplY3QgdG8gdGhlIHN0YW5kYXJkIFAgRSBUZWNobmlrb24gZU1haWwgZGlzY2xhaW1lciB3aGlj aCBtYXkgYmUgZm91bmQgYXQ6IA0KIA0KPGh0dHA6Ly93d3cucGV0ZWNoLmFjLnphL25ldy9kaXNj X2VtYWlsLmh0bT4+IA0KIA0KDQogDQoNCiANCg==