From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 68409 invoked by alias); 18 Dec 2015 19:11:09 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 68391 invoked by uid 89); 18 Dec 2015 19:11:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_50,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=Event, sk:test_wa, sk:py-brea, sk:pybrea X-HELO: mail-pa0-f73.google.com Received: from mail-pa0-f73.google.com (HELO mail-pa0-f73.google.com) (209.85.220.73) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 18 Dec 2015 19:11:01 +0000 Received: by mail-pa0-f73.google.com with SMTP id tl7so2138139pab.1 for ; Fri, 18 Dec 2015 11:11:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:message-id:date:subject:from:to:cc :content-type:content-transfer-encoding; bh=vkAOHR476n0FuDmOHmvDjbECYTMVFWLnpgb1NgwtIYc=; b=FZzMsnNIopRzruh5Q2LxJyqQngSzGN7+PQx8DkE+r6ywRTKXwrG5hqViXdJ4NUiIJj Dx4SlriFPeD2Ja3c4+GWR1rkcHDMiFBINqC6PFnHUz3pR9y02vfPyr0DO+DU4076ydJn L2ST5LgQ263bxLVkMnO9tlNiqAh4ZelZ3Whq71ooB15AQIZ1YcI9ezevKZ3w3nlDHyR2 lv+sSzIAAjwAVmoHvhb8dNnO1OZoPG5+/cYbE+e+WsXZuPqABZcHrh5l+GDBW4S0mJ0B 65o2W0djFhjyEuA/zP560pnwTS61pPKTcmHVD/M0yenF87FZaSXctmlZkaqGjWP/HOzr sIWg== X-Gm-Message-State: ALoCoQm5Bny4wurvfwVE8DD09rd5FB1Qx1A8R1FetT7rW3PWVsuy69pRBccjwy6QMxUNs8p+w0xihnrFXm1s4jIHF/sco+Mhcw== MIME-Version: 1.0 X-Received: by 10.66.199.38 with SMTP id jh6mr4432137pac.24.1450465859631; Fri, 18 Dec 2015 11:10:59 -0800 (PST) Message-ID: <001a1136affa52fa4b052730e695@google.com> Date: Fri, 18 Dec 2015 19:11:00 -0000 Subject: Re: [PING^3] [PATCH] Expose signal and syscall catchpoints to Python From: Doug Evans To: Alessandro Di Federico Cc: gdb-patches@sourceware.org Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes Content-Transfer-Encoding: base64 X-IsSubscribed: yes X-SW-Source: 2015-12/txt/msg00381.txt.bz2 QWxlc3NhbmRybyBEaSBGZWRlcmljbyB3cml0ZXM6DQogID4gVGhpcyBwYXRj aCBleHBvc2VzIHN5c2NhbGwgYW5kIHNpZ25hbCBjYXRjaHBvaW50cyB0byBQ eXRob24uIFRoaXMgbWVhbnMNCiAgPiB0aGF0IGBnZGIuYnJlYWtwb2ludHMo KWAgYWxzbyByZXR1cm5zIHN5c2NhbGwgYW5kIHNpZ25hbCBjYXRjaHBvaW50 cywgYW5kDQogID4gaXQgaXMgcG9zc2libGUgdG8gY3JlYXRlIHRoZW0gdGhy b3VnaCBgZ2RiLkJyZWFrcG9pbnRgLg0KICA+DQogID4gVGhlIHBhdGNoIGFs c28gaW1wbGVtZW50cyBgZ2RiLlN5c2NhbGxFdmVudGAsIHdoaWNoIGFsbG93 cyB0byBjYXRjaA0KICA+IHN5c2NhbGxzIHRocm91Z2ggYGdkYi5ldmVudHMu c3RvcC5jb25uZWN0YCwgYW5kIHRoZQ0KICA+IGBnZGIuZ2V0X3tzeXNjYWxs LHNpZ25hbH1fe25hbWUsbnVtYmVyfWAgc3VwcG9ydCBmdW5jdGlvbnMuDQog ID4NCiAgPiBGaW5hbGx5LCB0aGUgdGVzdHN1aXRlIGhhcyBiZWVuIGV4dGVu ZGVkIHRvIGNvdmVyIHRoZSBuZXcgZmVhdHVyZXMuDQoNCkhpLg0KRmlyc3Qs IHRoYW5rcyBmb3IgdGhlIHBhdGNoIGFuZCBlc3BlY2lhbGx5IHRoZSBwYXRp ZW5jZSENCg0KTG90cyBvZiBzdHlsZSBuaXRzLCBlYXNpbHkgZml4ZWQuDQoN ClRoaXMgd2lsbCBuZWVkIGRvYyBhZGRpdGlvbnMgdG9vIG9mIGNvdXJzZSwg YnV0IGJlZm9yZSB5b3UNCnNwZW5kIHRpbWUgb24gdGhhdCB0aGVyZSBpcyBh IGhpZ2ggbGV2ZWwgaXNzdWUgdGhhdCB3ZQ0KKHRoZSBjb21tdW5pdHkpIHNo b3VsZCBkZWNpZGUgb246DQpJcyBpdCB0aW1lIHRvIHN0YXJ0IHN1YmNsYXNz aW5nIGJyZWFrcG9pbnRzIGluc3RlYWQgb2YNCmNvbnRpbnVhbGx5IGV4dGVu ZGluZyB0aGUgb25lIHViZXItYnJlYWtwb2ludCBjbGFzcz8NCklPVywgc2hv dWxkIGNhdGNocG9pbnRzIGJlIGEgc3ViY2xhc3Mgb2YgYnJlYWtwb2ludHM/ DQoNClN1YmNsYXNzaW5nIGlzIGNsZWFybHkgYSBiZXR0ZXIgd2F5IHRvIGdv LA0Kc28gSSdtIGtpbmRhIHRoaW5raW5nIG5vdydzIHRoZSB0aW1lLg0KDQog ID4NCiAgPiAyMDE1LTA2LTAxICBBbGVzc2FuZHJvIERpIEZlZGVyaWNvICA8 YWxlK2dkYkBjbGVhcm1pbmQubWU+DQogID4NCiAgPiBnZGIvDQogID4NCiAg PiAJKiBNYWtlZmlsZS5pbjogYWRkIHB5dGhvbi9weS1zeXNjYWxsZXZlbnQu Yy4NCiAgPiAJKiBicmVhay1jYXRjaC1zaWcuYyAoZ2RiX3NpZ25hbF90eXBl KTogTW92ZSBkZWZpbml0aW9uIGluDQogID4gCWJyZWFrcG9pbnQuaC4NCiAg PiAJKHNpZ25hbF9jYXRjaHBvaW50X3ApOiBOZXcgZnVuY3Rpb24uDQogID4g CShpdGVyYXRlX292ZXJfc2lnbmFscyk6IE5ldyBmdW5jdGlvbi4NCiAgPiAJ KHNpZ25hbF9pc19jYXRjaF9hbGwpOiBOZXcgZnVuY3Rpb24uDQogID4gCShj cmVhdGVfc2lnbmFsX2NhdGNocG9pbnQpOiBDaGFuZ2UgbGlua2FnZSB0byBl eHRlcm5hbC4NCiAgPiAJKiBicmVhay1jYXRjaC1zeXNjYWxsLmMgKHN5c2Nh bGxfY2F0Y2hwb2ludF9wKTogQ2hhbmdlIGxpbmthZ2UgdG8NCiAgPiAJZXh0 ZXJuYWwuDQogID4gCShpdGVyYXRlX292ZXJfc3lzY2FsbHMpOiBOZXcgZnVu Y3Rpb24uDQogID4gCShjcmVhdGVfc3lzY2FsbF9ldmVudF9jYXRjaHBvaW50 KTogQ2hhbmdlIGxpbmthZ2UgdG8gZXh0ZXJuYWwgYW5kDQogID4gCXJlbW92 ZSB1c2VsZXNzIHBhcmFtZXRlci4NCiAgPiAJKiBicmVha3BvaW50LmggKGdk Yl9zaWduYWxfdHlwZSk6IE1vdmUgZnJvbSBicmVhay1jYXRjaC1zaWcuYy4N CiAgPiAJKHN5c2NhbGxfY2F0Y2hwb2ludF9wLCBpdGVyYXRlX292ZXJfc3lz Y2FsbHMsIHNpZ25hbF9jYXRjaHBvaW50X3AsDQogID4gCWl0ZXJhdGVfb3Zl cl9zaWduYWxzLCBzaWduYWxfaXNfY2F0Y2hfYWxsLA0KICA+IAljcmVhdGVf c3lzY2FsbF9ldmVudF9jYXRjaHBvaW50LA0KICA+IAljcmVhdGVfc2lnbmFs X2NhdGNocG9pbnQpOiBEZWNsYXJlIGZ1bmN0aW9ucy4NCiAgPg0KICA+IGdk Yi9jb21tb24vDQogID4NCiAgPiAJKiBicmVhay1jb21tb24uaCAoY2F0Y2hw b2ludF90eXBlKTogTmV3IGVudW1lcmF0aW9uLg0KICA+DQogID4gZ2RiL3B5 dGhvbi8NCiAgPg0KICA+IAkqIHB5LWJyZWFrcG9pbnQuYyAocHlicF9jb2Rl cyk6IEludHJvZHVjZSBCUF9DQVRDSFBPSU5UIGJyZWFrcG9pbnQNCiAgPiAJ dHlwZS4NCiAgPiAJKHB5YnBfY2F0Y2hwb2ludF90eXBlcyk6IE5ldyBzdHJ1 Y3R1cmUgZm9yIGNhdGNocG9pbnQgdHlwZXMuDQogID4gCShicHB5X2dldF9s YXN0X3N5c2NhbGwpOiBOZXcgZnVuY3Rpb24uDQogID4gCShicHB5X2dldF9s YXN0X3NpZ25hbCk6IE5ldyBmdW5jdGlvbi4NCiAgPiAJKGJwcHlfZ2V0X2lu dGVybmFsX3NpZ25hbHMpOiBOZXcgZnVuY3Rpb24uDQogID4gCShicHB5X2dl dF9jYXRjaHBvaW50X3R5cGUpOiBOZXcgZnVuY3Rpb24uDQogID4gCShhZGRf c3lzY2FsbF90b19saXN0KTogTmV3IGZ1bmN0aW9uLg0KICA+IAkoYWRkX3Np Z25hbF90b19saXN0KTogTmV3IGZ1bmN0aW9uLg0KICA+IAkoYnBweV9nZXRf ZmlsdGVyKTogTmV3IGZ1bmN0aW9uLg0KICA+IAkoYnBweV9pbml0KTogRXh0 ZW5kIHRvIHN1cHBvcnQgY3JlYXRpb24gb2Ygc2lnbmFsIGFuZCBzeXNjYWxs DQogID4gCWNhdGNocG9pbnRzLg0KICA+IAkoZ2RicHlfaW5pdGlhbGl6ZV9i cmVha3BvaW50cyk6IEFkZCBpbml0aWFsaXphdGlvbiBvZiBnZGIuQ1RfKg0K ICA+IAljb25zdGFudHMuDQogID4gCShicmVha3BvaW50X29iamVjdF9nZXRz ZXQpOiBBZGQgcHJvcGVydGllcyB0byBzdXBwb3J0IHNpZ25hbCBhbmQNCiAg PiAJc3lzY2FsbCBjYXRjaHBvaW50cy4NCiAgPiAJKiBweS1zdG9wZXZlbnQu YyAoZW1pdF9zdG9wX2V2ZW50KTogSW1wbGVtZW50IGhhbmRsaW5nIG9mIHRo ZQ0KICA+IAlzeXNjYWxsIGNhc2UuDQogID4gCSogcHktc3RvcGV2ZW50Lmgg KGNyZWF0ZV9zeXNjYWxsX2V2ZW50X29iamVjdCk6IE5ldyBkZWNsYXJhdGlv bi4NCiAgPiAJKiBweXRob24taW50ZXJuYWwuaCAoZ2RicHlfaW5pdGlhbGl6 ZV9zeXNjYWxsX2V2ZW50KTogTmV3IGRlY2xhcmF0aW9uLg0KICA+IAkoVkVD X3B5X2xpc3RfdG9fdmVjKTogVGVtcGxhdGUtbGlrZSBmdW5jdGlvbiB0byBj b252ZXJ0IGEgUHl0aG9uDQogID4gCWxpc3QgdG8gYSBWRUMuDQogID4gCSog cHl0aG9uLmMgKGdkYnB5X2dldF9zeXNjYWxsX25hbWUpOiBOZXcgZnVuY3Rp b24uDQogID4gCShnZGJweV9nZXRfc3lzY2FsbF9udW1iZXIpOiBOZXcgZnVu Y3Rpb24uDQogID4gCShnZGJweV9nZXRfc2lnbmFsX25hbWUpOiBOZXcgZnVu Y3Rpb24uDQogID4gCShnZGJweV9nZXRfc2lnbmFsX251bWJlcik6IE5ldyBm dW5jdGlvbi4NCiAgPiAJKF9pbml0aWFsaXplX3B5dGhvbik6IEFkZCBpbml0 aWFsaXphdGlvbiBvZiBTeXNjYWxsRXZlbnQuDQogID4gCShweXRob25fR2Ri TWV0aG9kcyk6IEFkZCBnZXRfe3N5c2NhbGwsc2lnbmFsfV97bmFtZSxudW1i ZXJ9DQogID4gCSogcHktc3lzY2FsbGV2ZW50LmM6IE5ldy4NCiAgPg0KICA+ IGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi8NCiAgPg0KICA+IAkqIHB5LWJy ZWFrcG9pbnQuZXhwICh0ZXN0X2NhdGNocG9pbnRzKTogTmV3IHRlc3QuDQog ID4gCSh0ZXN0X3N5c2NhbGxfY2F0Y2hwb2ludCk6IE5ldyB0ZXN0Lg0KICA+ IAkodGVzdF9zaWduYWxfY2F0Y2hwb2ludCk6IE5ldyB0ZXN0Lg0KICA+IAkq IHB5LWV2ZW50cy5weTogTWVyZ2UgYWxsIHRoZSBoYW5kbGVycyBvZiBgZ2Ri LmV2ZW50cy5zdG9wYCBpbiBhDQogID4gCXNpbmdsZSBvbmUgaGFuZGxpbmcg U2lnbmFsRXZlbnQsIFN5c2NhbGxFdmVudCBhbmQgQnJlYWtwb2ludEV2ZW50 Lg0KICA+IAkqIHB5LWV2c2lnbmFsLmV4cDogRml4IGV4cGVjdGF0aW9ucyBh Y2NvcmRpbmdseSB0byB0aGUgY2hhbmdlcyBpbg0KICA+IAlweS1ldmVudHMu cHkuDQogID4gCSogcHktZXZ0aHJlYWRzLmV4cDogTGlrZXdpc2UuDQogID4g CSogcHktZXZzeXNjYWxsLmV4cDogTmV3IHRlc3QuDQogID4gLS0tDQogID4g IGdkYi9NYWtlZmlsZS5pbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNiArDQogID4gIGdkYi9icmVhay1jYXRjaC1zaWcuYyAgICAgICAgICAg ICAgICAgICAgICB8ICA0OSArKysrKy0NCiAgPiAgZ2RiL2JyZWFrLWNhdGNo LXN5c2NhbGwuYyAgICAgICAgICAgICAgICAgIHwgIDM5ICsrKystDQogID4g IGdkYi9icmVha3BvaW50LmggICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxOCArKysNCiAgPiAgZ2RiL2NvbW1vbi9icmVhay1jb21tb24uaCAgICAg ICAgICAgICAgICAgIHwgIDEwICsrDQogID4gIGdkYi9weXRob24vcHktYnJl YWtwb2ludC5jICAgICAgICAgICAgICAgICB8IDIyOSAgDQorKysrKysrKysr KysrKysrKysrKysrKysrKysrLQ0KICA+ICBnZGIvcHl0aG9uL3B5LXN0b3Bl dmVudC5jICAgICAgICAgICAgICAgICAgfCAgMTUgKysNCiAgPiAgZ2RiL3B5 dGhvbi9weS1zdG9wZXZlbnQuaCAgICAgICAgICAgICAgICAgIHwgICAzICsN CiAgPiAgZ2RiL3B5dGhvbi9weS1zeXNjYWxsZXZlbnQuYyAgICAgICAgICAg ICAgIHwgIDYxICsrKysrKysrDQogID4gIGdkYi9weXRob24vcHl0aG9uLWlu dGVybmFsLmggICAgICAgICAgICAgICB8ICA0NyArKysrKysNCiAgPiAgZ2Ri L3B5dGhvbi9weXRob24uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIy ICsrKysrKysrKysrKysrKw0KICA+ICBnZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktYnJlYWtwb2ludC5leHAgfCAxMzQgKysrKysrKysrKysrKysrKysN CiAgPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5weSAg ICAgIHwgIDE1ICstDQogID4gIGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1ldnNpZ25hbC5leHAgICB8ICAgMiArLQ0KICA+ICBnZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZXZzeXNjYWxsLmV4cCAgfCAgNDEgKysrKysrDQog ID4gIGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldnRocmVhZHMuZXhw ICB8ICAgMiArLQ0KICA+ICAxNiBmaWxlcyBjaGFuZ2VkLCA3NjQgaW5zZXJ0 aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pDQogID4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBnZGIvcHl0aG9uL3B5LXN5c2NhbGxldmVudC5jDQogID4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZz eXNjYWxsLmV4cA0KICA+DQogID4gZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmls ZS5pbiBiL2dkYi9NYWtlZmlsZS5pbg0KICA+IGluZGV4IDNlYWRiYmMuLjcy OWQ0OTQgMTAwNjQ0DQogID4gLS0tIGEvZ2RiL01ha2VmaWxlLmluDQogID4g KysrIGIvZ2RiL01ha2VmaWxlLmluDQogID4gQEAgLTQwOSw2ICs0MDksNyBA QCBTVUJESVJfUFlUSE9OX09CUyA9IFwNCiAgPiAgCXB5LXN0b3BldmVudC5v IFwNCiAgPiAgCXB5LXN5bWJvbC5vIFwNCiAgPiAgCXB5LXN5bXRhYi5vIFwN CiAgPiArCXB5LXN5c2NhbGxldmVudC5vIFwNCiAgPiAgCXB5LXRocmVhZGV2 ZW50Lm8gXA0KICA+ICAJcHktdHlwZS5vIFwNCiAgPiAgCXB5LXVud2luZC5v IFwNCiAgPiBAQCAtNDQ5LDYgKzQ1MCw3IEBAIFNVQkRJUl9QWVRIT05fU1JD UyA9IFwNCiAgPiAgCXB5dGhvbi9weS1zdG9wZXZlbnQuYyBcDQogID4gIAlw eXRob24vcHktc3ltYm9sLmMgXA0KICA+ICAJcHl0aG9uL3B5LXN5bXRhYi5j IFwNCiAgPiArCXB5dGhvbi9weS1zeXNjYWxsZXZlbnQuYyBcDQogID4gIAlw eXRob24vcHktdGhyZWFkZXZlbnQuYyBcDQogID4gIAlweXRob24vcHktdHlw ZS5jIFwNCiAgPiAgCXB5dGhvbi9weS11bndpbmQuYyBcDQogID4gQEAgLTI2 NzEsNiArMjY3MywxMCBAQCBweS1zeW10YWIubzogJChzcmNkaXIpL3B5dGhv bi9weS1zeW10YWIuYw0KICA+ICAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxB R1MpICQoc3JjZGlyKS9weXRob24vcHktc3ltdGFiLmMNCiAgPiAgCSQoUE9T VENPTVBJTEUpDQogID4NCiAgPiArcHktc3lzY2FsbGV2ZW50Lm86ICQoc3Jj ZGlyKS9weXRob24vcHktc3lzY2FsbGV2ZW50LmMNCiAgPiArCSQoQ09NUElM RSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LXN5c2Nh bGxldmVudC5jDQogID4gKwkkKFBPU1RDT01QSUxFKQ0KICA+ICsNCiAgPiAg cHktdGhyZWFkZXZlbnQubzogJChzcmNkaXIpL3B5dGhvbi9weS10aHJlYWRl dmVudC5jDQogID4gIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChz cmNkaXIpL3B5dGhvbi9weS10aHJlYWRldmVudC5jDQogID4gIAkkKFBPU1RD T01QSUxFKQ0KICA+IGRpZmYgLS1naXQgYS9nZGIvYnJlYWstY2F0Y2gtc2ln LmMgYi9nZGIvYnJlYWstY2F0Y2gtc2lnLmMNCiAgPiBpbmRleCAxNThjZTAz Li45YjNkMDI3IDEwMDY0NA0KICA+IC0tLSBhL2dkYi9icmVhay1jYXRjaC1z aWcuYw0KICA+ICsrKyBiL2dkYi9icmVhay1jYXRjaC1zaWcuYw0KICA+IEBA IC0zMiwxMCArMzIsNiBAQA0KICA+DQogID4gICNkZWZpbmUgSU5URVJOQUxf U0lHTkFMKHgpICgoeCkgPT0gR0RCX1NJR05BTF9UUkFQIHx8ICh4KSA9PSAg DQpHREJfU0lHTkFMX0lOVCkNCiAgPg0KICA+IC10eXBlZGVmIGVudW0gZ2Ri X3NpZ25hbCBnZGJfc2lnbmFsX3R5cGU7DQogID4gLQ0KICA+IC1ERUZfVkVD X0kgKGdkYl9zaWduYWxfdHlwZSk7DQogID4gLQ0KICA+ICAvKiBBbiBpbnN0 YW5jZSBvZiB0aGlzIHR5cGUgaXMgdXNlZCB0byByZXByZXNlbnQgYSBzaWdu YWwgY2F0Y2hwb2ludC4NCiAgPiAgICAgSXQgaW5jbHVkZXMgYSAic3RydWN0 IGJyZWFrcG9pbnQiIGFzIGEga2luZCBvZiBiYXNlIGNsYXNzOyB1c2Vycw0K ICA+ICAgICBkb3duY2FzdCB0byAic3RydWN0IGJyZWFrcG9pbnQgKiIgd2hl biBuZWVkZWQuICBBIGJyZWFrcG9pbnQgaXMNCiAgPiBAQCAtNjYsNiArNjIs NDkgQEAgc3RydWN0IHNpZ25hbF9jYXRjaHBvaW50DQogID4NCiAgPiAgc3Rh dGljIHN0cnVjdCBicmVha3BvaW50X29wcyBzaWduYWxfY2F0Y2hwb2ludF9v cHM7DQogID4NCiAgPiArLyogUmV0dXJucyBub24temVybyBpZiAnYicgaXMg YSBzaWduYWwgY2F0Y2hwb2ludC4gICovDQogID4gKw0KICA+ICtpbnQNCiAg PiArc2lnbmFsX2NhdGNocG9pbnRfcCAoc3RydWN0IGJyZWFrcG9pbnQgKmIp DQogID4gK3sNCiAgPiArICByZXR1cm4gKGItPm9wcyA9PSAmc2lnbmFsX2Nh dGNocG9pbnRfb3BzKTsNCg0KcmVtb3ZlIHRoZSBwYXJlbnMuDQoNCltJIHJl YWxpemUgc3lzY2FsbF9jYXRjaHBvaW50X3AgaGFzIHRoZW0sDQpidXQgdGhl IGNvbnZlbnRpb24gaXMgbm8gcGFyZW5zIGluIHRoaXMgY2FzZS5dDQoNCiAg PiArfQ0KICA+ICsNCiAgPiArLyogSXRlcmF0ZXMgb3ZlciB0aGUgc2lnbmFs cyBjYXRjaGVkIGJ5IHRoZSBjYXRjaHBvaW50IGNhbGxpbmcgY2FsbGJhY2sg IA0KKi8NCg0KLSBwZXJpb2QgYXQgZW5kIG9mIHNlbnRlbmNlcywgcGx1cyB0 d28gc3BhY2VzIGFmdGVyIHRoYXQNCi0gbmVlZCB0byBkb2N1bWVudCBob3cg dG8gaW50ZXJwcmV0IHRoZSByZXR1cm4gdmFsdWUNCg0KICA+ICsNCiAgPiAr aW50DQogID4gK2l0ZXJhdGVfb3Zlcl9zaWduYWxzIChzdHJ1Y3QgYnJlYWtw b2ludCAqYiwNCiAgPiArCQkgICAgICAgaW50ICgqY2FsbGJhY2spIChpbnQs IHZvaWQgKiksDQogID4gKwkJICAgICAgIHZvaWQgKmRhdGEpDQogID4gK3sN CiAgPiArICBzdHJ1Y3Qgc2lnbmFsX2NhdGNocG9pbnQgKmNwID0gKHN0cnVj dCBzaWduYWxfY2F0Y2hwb2ludCAqKSBiOw0KICA+ICsgIGludCBpID0gMCwg cmVzdWx0ID0gMDsNCiAgPiArICBnZGJfc2lnbmFsX3R5cGUgaXRlciA9IDA7 DQogID4gKw0KICA+ICsgIGlmIChjcC0+c2lnbmFsc190b19iZV9jYXVnaHQg PT0gTlVMTCkNCiAgPiArICAgIHJldHVybiAtMTsNCiAgPiArDQogID4gKyAg Zm9yIChpID0gMDsNCiAgPiArICAgICAgIFZFQ19pdGVyYXRlIChnZGJfc2ln bmFsX3R5cGUsIGNwLT5zaWduYWxzX3RvX2JlX2NhdWdodCwgaSwgaXRlcik7 DQogID4gKyAgICAgICBpKyspDQogID4gKyAgICB7DQogID4gKyAgICAgIHJl c3VsdCA9ICgqY2FsbGJhY2spIChpdGVyLCBkYXRhKTsNCiAgPiArICAgICAg aWYgKHJlc3VsdCkNCiAgPiArCXJldHVybiByZXN1bHQ7DQogID4gKyAgICB9 DQogID4gKw0KICA+ICsgIHJldHVybiByZXN1bHQ7DQogID4gK30NCiAgPiAr DQogID4gKy8qIFJldHVybnMgbm9uLXplcm8gaWYgdGhlIHNpZ25hbCBjYXRj aHBvaW50IGNhdGNoZXMgYWxzbyBpbnRlcm5hbCAgDQpzaWduYWxzICovDQog ID4gKw0KICA+ICtpbnQNCiAgPiArc2lnbmFsX2lzX2NhdGNoX2FsbCAoc3Ry dWN0IGJyZWFrcG9pbnQgKmIpDQogID4gK3sNCiAgPiArICBzdHJ1Y3Qgc2ln bmFsX2NhdGNocG9pbnQgKmNwID0gKHN0cnVjdCBzaWduYWxfY2F0Y2hwb2lu dCAqKSBiOw0KDQpibGFuayBsaW5lIGhlcmUNCg0KICA+ICsgIHJldHVybiBj cC0+Y2F0Y2hfYWxsOw0KICA+ICt9DQogID4gKw0KICA+ICAvKiBDb3VudCBv ZiBlYWNoIHNpZ25hbC4gICovDQogID4NCiAgPiAgc3RhdGljIHVuc2lnbmVk IGludCAqc2lnbmFsX2NhdGNoX2NvdW50czsNCiAgPiBAQCAtMzY2LDcgKzQw NSw3IEBAIHNpZ25hbF9jYXRjaHBvaW50X2V4cGxhaW5zX3NpZ25hbCAoc3Ry dWN0IGJyZWFrcG9pbnQgIA0KKmIsIGVudW0gZ2RiX3NpZ25hbCBzaWcpDQog ID4gICAgIHZhbGlkIGlmIEZJTFRFUiBpcyBOVUxMLiAgSWYgRklMVEVSIGlz IE5VTEwgYW5kIENBVENIX0FMTCBpcyB6ZXJvLA0KICA+ICAgICB0aGVuIGlu dGVybmFsIHNpZ25hbHMgbGlrZSBTSUdUUkFQIGFyZSBub3QgY2F1Z2h0LiAg Ki8NCiAgPg0KICA+IC1zdGF0aWMgdm9pZA0KICA+ICt2b2lkDQogID4gIGNy ZWF0ZV9zaWduYWxfY2F0Y2hwb2ludCAoaW50IHRlbXBmbGFnLCBWRUMgKGdk Yl9zaWduYWxfdHlwZSkgKmZpbHRlciwNCiAgPiAgCQkJICBpbnQgY2F0Y2hf YWxsKQ0KICA+ICB7DQogID4gZGlmZiAtLWdpdCBhL2dkYi9icmVhay1jYXRj aC1zeXNjYWxsLmMgYi9nZGIvYnJlYWstY2F0Y2gtc3lzY2FsbC5jDQogID4g aW5kZXggN2FlMTE1Zi4uMjNkMTFkNSAxMDA2NDQNCiAgPiAtLS0gYS9nZGIv YnJlYWstY2F0Y2gtc3lzY2FsbC5jDQogID4gKysrIGIvZ2RiL2JyZWFrLWNh dGNoLXN5c2NhbGwuYw0KICA+IEBAIC00MTksMjEgKzQxOSw0NyBAQCBzdGF0 aWMgc3RydWN0IGJyZWFrcG9pbnRfb3BzICANCmNhdGNoX3N5c2NhbGxfYnJl YWtwb2ludF9vcHM7DQogID4NCiAgPiAgLyogUmV0dXJucyBub24temVybyBp ZiAnYicgaXMgYSBzeXNjYWxsIGNhdGNocG9pbnQuICAqLw0KICA+DQogID4g LXN0YXRpYyBpbnQNCiAgPiAraW50DQogID4gIHN5c2NhbGxfY2F0Y2hwb2lu dF9wIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikNCiAgPiAgew0KICA+ICAgIHJl dHVybiAoYi0+b3BzID09ICZjYXRjaF9zeXNjYWxsX2JyZWFrcG9pbnRfb3Bz KTsNCiAgPiAgfQ0KICA+DQogID4gLXN0YXRpYyB2b2lkDQogID4gLWNyZWF0 ZV9zeXNjYWxsX2V2ZW50X2NhdGNocG9pbnQgKGludCB0ZW1wZmxhZywgVkVD KGludCkgKmZpbHRlciwNCiAgPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGJyZWFrcG9pbnRfb3BzICpvcHMpDQog ID4gKy8qIEl0ZXJhdGVzIG92ZXIgdGhlIHN5c2NhbGxzIGNhdGNoZWQgYnkg dGhlIGNhdGNocG9pbnQgY2FsbGluZyAgDQpjYWxsYmFjayAqLw0KICA+ICsN CiAgPiAraW50DQogID4gK2l0ZXJhdGVfb3Zlcl9zeXNjYWxscyAoc3RydWN0 IGJyZWFrcG9pbnQgKmIsDQogID4gKwkJICAgICAgIGludCAoKmNhbGxiYWNr KSAoaW50LCB2b2lkICopLA0KICA+ICsJCSAgICAgICB2b2lkICpkYXRhKQ0K ICA+ICt7DQogID4gKyAgc3RydWN0IHN5c2NhbGxfY2F0Y2hwb2ludCAqY3Ag PSAoc3RydWN0IHN5c2NhbGxfY2F0Y2hwb2ludCAqKSBiOw0KICA+ICsgIGlu dCBpID0gMCwgaXRlciA9IDAsIHJlc3VsdCA9IDA7DQogID4gKw0KICA+ICsg IGlmIChjcC0+c3lzY2FsbHNfdG9fYmVfY2F1Z2h0ID09IE5VTEwpDQogID4g KyAgICByZXR1cm4gLTE7DQogID4gKw0KICA+ICsgIGZvciAoaSA9IDA7DQog ID4gKyAgICAgICBWRUNfaXRlcmF0ZSAoaW50LCBjcC0+c3lzY2FsbHNfdG9f YmVfY2F1Z2h0LCBpLCBpdGVyKTsNCiAgPiArICAgICAgIGkrKykNCiAgPiAr ICAgIHsNCiAgPiArICAgICAgcmVzdWx0ID0gKCpjYWxsYmFjaykgKGl0ZXIs IGRhdGEpOw0KICA+ICsgICAgICBpZiAocmVzdWx0KQ0KICA+ICsJcmV0dXJu IHJlc3VsdDsNCiAgPiArICAgIH0NCiAgPiArDQogID4gKyAgcmV0dXJuIHJl c3VsdDsNCiAgPiArfQ0KICA+ICsNCiAgPiArLyogQ3JlYXRlcyBhIHN5c2Nh bGwgY2F0Y2hwb2ludCAqLw0KICA+ICsNCiAgPiArdm9pZA0KICA+ICtjcmVh dGVfc3lzY2FsbF9ldmVudF9jYXRjaHBvaW50IChpbnQgdGVtcGZsYWcsIFZF QyhpbnQpICpmaWx0ZXIpDQogID4gIHsNCiAgPiAgICBzdHJ1Y3Qgc3lzY2Fs bF9jYXRjaHBvaW50ICpjOw0KICA+ICAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X2N1cnJlbnRfYXJjaCAoKTsNCiAgPg0KICA+ICAgIGMgPSBY TkVXIChzdHJ1Y3Qgc3lzY2FsbF9jYXRjaHBvaW50KTsNCiAgPiAtICBpbml0 X2NhdGNocG9pbnQgKCZjLT5iYXNlLCBnZGJhcmNoLCB0ZW1wZmxhZywgTlVM TCwgb3BzKTsNCiAgPiArICBpbml0X2NhdGNocG9pbnQgKCZjLT5iYXNlLCBn ZGJhcmNoLCB0ZW1wZmxhZywgTlVMTCwgIA0KJmNhdGNoX3N5c2NhbGxfYnJl YWtwb2ludF9vcHMpOw0KICA+ICAgIGMtPnN5c2NhbGxzX3RvX2JlX2NhdWdo dCA9IGZpbHRlcjsNCiAgPg0KICA+ICAgIGluc3RhbGxfYnJlYWtwb2ludCAo MCwgJmMtPmJhc2UsIDEpOw0KICA+IEBAIC01MjUsOCArNTUxLDcgQEAgdGhp cyBhcmNoaXRlY3R1cmUgeWV0LiIpKTsNCiAgPiAgICBlbHNlDQogID4gICAg ICBmaWx0ZXIgPSBOVUxMOw0KICA+DQogID4gLSAgY3JlYXRlX3N5c2NhbGxf ZXZlbnRfY2F0Y2hwb2ludCAodGVtcGZsYWcsIGZpbHRlciwNCiAgPiAtCQkJ CSAgICZjYXRjaF9zeXNjYWxsX2JyZWFrcG9pbnRfb3BzKTsNCiAgPiArICBj cmVhdGVfc3lzY2FsbF9ldmVudF9jYXRjaHBvaW50ICh0ZW1wZmxhZywgZmls dGVyKTsNCiAgPiAgfQ0KICA+DQogID4NCiAgPiBkaWZmIC0tZ2l0IGEvZ2Ri L2JyZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50LmgNCiAgPiBpbmRleCA3 MDc5Yjc1Li4xYzY0ZTZlIDEwMDY0NA0KICA+IC0tLSBhL2dkYi9icmVha3Bv aW50LmgNCiAgPiArKysgYi9nZGIvYnJlYWtwb2ludC5oDQogID4gQEAgLTEy NTIsNiArMTI1MiwxOCBAQCBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnRfb3Bz IGJrcHRfYnJlYWtwb2ludF9vcHM7DQogID4gIGV4dGVybiBzdHJ1Y3QgYnJl YWtwb2ludF9vcHMgdHJhY2Vwb2ludF9icmVha3BvaW50X29wczsNCiAgPiAg ZXh0ZXJuIHN0cnVjdCBicmVha3BvaW50X29wcyBkcHJpbnRmX2JyZWFrcG9p bnRfb3BzOw0KICA+DQogID4gK2V4dGVybiBpbnQgc3lzY2FsbF9jYXRjaHBv aW50X3AgKHN0cnVjdCBicmVha3BvaW50ICopOw0KICA+ICtleHRlcm4gaW50 IGl0ZXJhdGVfb3Zlcl9zeXNjYWxscyAoc3RydWN0IGJyZWFrcG9pbnQgKiwN CiAgPiArCQkJCSAgaW50ICgqKSAoaW50LCB2b2lkICopLCB2b2lkICopOw0K ICA+ICtleHRlcm4gaW50IHNpZ25hbF9jYXRjaHBvaW50X3AgKHN0cnVjdCBi cmVha3BvaW50ICopOw0KICA+ICtleHRlcm4gaW50IGl0ZXJhdGVfb3Zlcl9z aWduYWxzIChzdHJ1Y3QgYnJlYWtwb2ludCAqLCBpbnQgKCopIChpbnQsICAN CnZvaWQgKiksDQogID4gKwkJCQkgdm9pZCAqKTsNCiAgPiArZXh0ZXJuIGlu dCBzaWduYWxfaXNfY2F0Y2hfYWxsIChzdHJ1Y3QgYnJlYWtwb2ludCAqYik7 DQogID4gKw0KICA+ICsNCiAgPiArdHlwZWRlZiBlbnVtIGdkYl9zaWduYWwg Z2RiX3NpZ25hbF90eXBlOw0KICA+ICtERUZfVkVDX0kgKGdkYl9zaWduYWxf dHlwZSk7DQogID4gKw0KICA+ICBleHRlcm4gdm9pZCBpbml0aWFsaXplX2Jy ZWFrcG9pbnRfb3BzICh2b2lkKTsNCiAgPg0KICA+ICAvKiBBcmd1bWVudHMg dG8gcGFzcyBhcyBjb250ZXh0IHRvIHNvbWUgY2F0Y2ggY29tbWFuZCBoYW5k bGVycy4gICovDQogID4gQEAgLTEzMzcsNiArMTM0OSwxMiBAQCBleHRlcm4g aW50IGNyZWF0ZV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAgDQoqZ2Ri YXJjaCwNCiAgPiAgCQkJICAgICAgaW50IGVuYWJsZWQsDQogID4gIAkJCSAg ICAgIGludCBpbnRlcm5hbCwgdW5zaWduZWQgZmxhZ3MpOw0KICA+DQogID4g K2V4dGVybiB2b2lkIGNyZWF0ZV9zeXNjYWxsX2V2ZW50X2NhdGNocG9pbnQg KGludCB0ZW1wZmxhZywgVkVDKGludCkgIA0KKmZpbHRlcik7DQogID4gK2V4 dGVybiB2b2lkIGNyZWF0ZV9zaWduYWxfY2F0Y2hwb2ludCAoaW50IHRlbXBm bGFnLA0KICA+ICsJCQkJICAgICAgVkVDIChnZGJfc2lnbmFsX3R5cGUpICpm aWx0ZXIsDQogID4gKwkJCQkgICAgICBpbnQgY2F0Y2hfYWxsKTsNCiAgPiAr DQogID4gKw0KICA+ICBleHRlcm4gdm9pZCBpbnNlcnRfYnJlYWtwb2ludHMg KHZvaWQpOw0KICA+DQogID4gIGV4dGVybiBpbnQgcmVtb3ZlX2JyZWFrcG9p bnRzICh2b2lkKTsNCiAgPiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbW1vbi9icmVh ay1jb21tb24uaCBiL2dkYi9jb21tb24vYnJlYWstY29tbW9uLmgNCiAgPiBp bmRleCBlNWI1NWI0Li45ZTJjYjExIDEwMDY0NA0KICA+IC0tLSBhL2dkYi9j b21tb24vYnJlYWstY29tbW9uLmgNCiAgPiArKysgYi9nZGIvY29tbW9uL2Jy ZWFrLWNvbW1vbi5oDQogID4gQEAgLTE5LDYgKzE5LDggQEANCiAgPiAgI2lm bmRlZiBCUkVBS19DT01NT05fSA0KICA+ICAjZGVmaW5lIEJSRUFLX0NPTU1P Tl9IIDENCiAgPg0KICA+ICsvKiBQb3NzaWJsZSB0eXBlcyBmb3IgaGFyZHdh cmUgYnJlYWtwb2ludHMgKi8NCg0KcGVyaW9kIGF0IGVuZCBvZiBzZW50ZW5j ZXMsIHBsdXMgdHdvIHNwYWNlcyBhZnRlciB0aGF0DQoNCiAgPiArDQogID4g IGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUNCiAgPiAgICB7DQogID4gICAgICBo d193cml0ZSAgID0gMCwgCQkvKiBDb21tb24gIEhXIHdhdGNocG9pbnQgKi8N CiAgPiBAQCAtMjcsNCArMjksMTIgQEAgZW51bSB0YXJnZXRfaHdfYnBfdHlw ZQ0KICA+ICAgICAgaHdfZXhlY3V0ZSA9IDMJCS8qIEV4ZWN1dGUgSFcgYnJl YWtwb2ludCAqLw0KICA+ICAgIH07DQogID4NCiAgPiArLyogRW51bWVyYXRp b24gZm9yIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgY2F0Y2hwb2ludHMgKi8N Cg0KcGVyaW9kIGF0IGVuZCBvZiBzZW50ZW5jZXMsIHBsdXMgdHdvIHNwYWNl cyBhZnRlciB0aGF0DQoNCiAgPiArDQogID4gK2VudW0gY2F0Y2hwb2ludF90 eXBlDQogID4gKyAgew0KICA+ICsgICAgY3Rfc3lzY2FsbCA9IDAsICAgICAg ICAgICAgIC8qIFN5c2NhbGwgY2F0Y2hwb2ludCAqLw0KICA+ICsgICAgY3Rf c2lnbmFsICA9IDEgICAgICAgICAgICAgIC8qIFNpZ25hbCBjYXRjaHBvaW50 ICAqLw0KICA+ICsgIH07DQogID4gKw0KICA+ICAjZW5kaWYNCiAgPiBkaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1icmVha3BvaW50LmMgYi9nZGIvcHl0 aG9uL3B5LWJyZWFrcG9pbnQuYw0KICA+IGluZGV4IDljMGIwZTQuLjRiZTVl YzMgMTAwNjQ0DQogID4gLS0tIGEvZ2RiL3B5dGhvbi9weS1icmVha3BvaW50 LmMNCiAgPiArKysgYi9nZGIvcHl0aG9uL3B5LWJyZWFrcG9pbnQuYw0KICA+ IEBAIC0zMSw2ICszMSwxMCBAQA0KICA+ICAjaW5jbHVkZSAiYXJjaC11dGls cy5oIg0KICA+ICAjaW5jbHVkZSAibGFuZ3VhZ2UuaCINCiAgPiAgI2luY2x1 ZGUgImxvY2F0aW9uLmgiDQogID4gKyNpbmNsdWRlICJjb21tb24vZ2RiX3Np Z25hbHMuaCINCiAgPiArDQogID4gK0RFRl9WRUNfUFlfT1AoZ2RiX3NpZ25h bF90eXBlKTsNCiAgPiArREVGX1ZFQ19QWV9PUChpbnQpOw0KDQpzcGFjZSBi ZWZvcmUgcGFyZW4NCg0KICA+DQogID4gIC8qIE51bWJlciBvZiBsaXZlIGJy ZWFrcG9pbnRzLiAgKi8NCiAgPiAgc3RhdGljIGludCBicHB5X2xpdmU7DQog ID4gQEAgLTYwLDYgKzY0LDcgQEAgc3RhdGljIHN0cnVjdCBweWJwX2NvZGUg cHlicF9jb2Rlc1tdID0NCiAgPiAgICB7ICJCUF9IQVJEV0FSRV9XQVRDSFBP SU5UIiwgYnBfaGFyZHdhcmVfd2F0Y2hwb2ludH0sDQogID4gICAgeyAiQlBf UkVBRF9XQVRDSFBPSU5UIiwgYnBfcmVhZF93YXRjaHBvaW50fSwNCiAgPiAg ICB7ICJCUF9BQ0NFU1NfV0FUQ0hQT0lOVCIsIGJwX2FjY2Vzc193YXRjaHBv aW50fSwNCiAgPiArICB7ICJCUF9DQVRDSFBPSU5UIiwgYnBfY2F0Y2hwb2lu dH0sDQogID4gICAge05VTEx9IC8qIFNlbnRpbmVsLiAgKi8NCiAgPiAgfTsN CiAgPg0KICA+IEBAIC03Miw2ICs3NywxNCBAQCBzdGF0aWMgc3RydWN0IHB5 YnBfY29kZSBweWJwX3dhdGNoX3R5cGVzW10gPQ0KICA+ICAgIHtOVUxMfSAv KiBTZW50aW5lbC4gICovDQogID4gIH07DQogID4NCiAgPiArLyogRW50cmll cyByZWxhdGVkIHRvIGNhdGNocG9pbnQgdHlwZXMuICovDQogID4gK3N0YXRp YyBzdHJ1Y3QgcHlicF9jb2RlIHB5YnBfY2F0Y2hwb2ludF90eXBlc1tdID0N CiAgPiArew0KICA+ICsgIHsgIkNUX1NZU0NBTEwiLCBjdF9zeXNjYWxsfSwN CiAgPiArICB7ICJDVF9TSUdOQUwiLCBjdF9zaWduYWx9LA0KDQpJJ20gcmVh ZGluZyAiQ1RfU1lTQ0FMTCIgaW4gdGhlIHBhdGNoIHRvIHRoZSB0ZXN0c3Vp dGUgYW5kIHdvbmRlcmluZw0KIldoYXQgZG9lcyBDVF8gc3RhbmQgZm9yPyIN ClRoZW4gSSBjb21lIGJhY2sgaGVyZSBhbmQgZmluZCBpdCBhbmQgd29uZGVy IGlmIHRoaXMgaXMgc29tZXRoaW5nDQpvdGhlcnMgYXJlIGdvaW5nIHRvIGFz ayBvciB3aGV0aGVyIENUXyBpcyBzb21ldGhpbmcgSSAoYW5kIHVzZXJzIGlu DQpnZW5lcmFsKSBjYW4gcmVtZW1iZXIuDQoNCkkgbGlrZSBDUF9TWVNDQUxM LENQX1NJR05BTC4NCkl0IGxvb2tzIGxpa2UgQlBfRk9PIGFuZCBJIGtub3cg d2hhdCBCUCBzdGFuZHMgZm9yLg0KQW5kIGl0IGFwcGVhbHMgdG8gbXkgQ29u c2lzdGVuY3kgSXMgR29vZCBtYW50cmEuIDotKQ0KDQogID4gKyAge05VTEx9 IC8qIFNlbnRpbmVsLiAgKi8NCiAgPiArfTsNCiAgPiArDQogID4gIC8qIFB5 dGhvbiBmdW5jdGlvbiB3aGljaCBjaGVja3MgdGhlIHZhbGlkaXR5IG9mIGEg YnJlYWtwb2ludCBvYmplY3QuICAqLw0KICA+ICBzdGF0aWMgUHlPYmplY3Qg Kg0KICA+ICBicHB5X2lzX3ZhbGlkIChQeU9iamVjdCAqc2VsZiwgUHlPYmpl Y3QgKmFyZ3MpDQogID4gQEAgLTU0Niw2ICs1NTksMTQ5IEBAIGJwcHlfZ2V0 X3Zpc2liaWxpdHkgKFB5T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQ0K ICA+ICAgIFB5X1JFVFVSTl9UUlVFOw0KICA+ICB9DQogID4NCiAgPiArLyog UHl0aG9uIGZ1bmN0aW9uIHRvIGdldCB0aGUgbnVtYmVyIG9mIHRoZSBsYXN0 IGNhdGNoZWQgc3lzY2FsbCAqLw0KICA+ICsNCiAgPiArc3RhdGljIFB5T2Jq ZWN0ICoNCiAgPiArYnBweV9nZXRfbGFzdF9zeXNjYWxsIChQeU9iamVjdCAq c2VsZiwgdm9pZCAqY2xvc3VyZSkNCiAgPiArew0KICA+ICsgIGdkYnB5X2Jy ZWFrcG9pbnRfb2JqZWN0ICpzZWxmX2JwID0gKGdkYnB5X2JyZWFrcG9pbnRf b2JqZWN0ICopIHNlbGY7DQogID4gKyAgc3RydWN0IHRhcmdldF93YWl0c3Rh dHVzIGxhc3Q7DQogID4gKyAgcHRpZF90IHB0aWQ7DQogID4gKw0KICA+ICsg IEJQUFlfUkVRVUlSRV9WQUxJRCAoc2VsZl9icCk7DQogID4gKw0KICA+ICsg IGlmIChzZWxmX2JwLT5icC0+dHlwZSA9PSBicF9jYXRjaHBvaW50ICYmIHN5 c2NhbGxfY2F0Y2hwb2ludF9wICANCihzZWxmX2JwLT5icCkpDQogID4gKyAg ICB7DQogID4gKyAgICAgIGdldF9sYXN0X3RhcmdldF9zdGF0dXMgKCZwdGlk LCAmbGFzdCk7DQogID4gKyAgICAgIHJldHVybiBQeUludF9Gcm9tTG9uZyAo bGFzdC52YWx1ZS5zeXNjYWxsX251bWJlcik7DQogID4gKyAgICB9DQogID4g Kw0KICA+ICsgIFB5X1JFVFVSTl9OT05FOw0KICA+ICt9DQogID4gKw0KICA+ ICsvKiBQeXRob24gZnVuY3Rpb24gdG8gZ2V0IHRoZSBudW1iZXIgb2YgdGhl IGxhc3QgY2F0Y2hlZCBzaWduYWwgKi8NCiAgPiArDQogID4gK3N0YXRpYyBQ eU9iamVjdCAqDQogID4gK2JwcHlfZ2V0X2xhc3Rfc2lnbmFsIChQeU9iamVj dCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkNCiAgPiArew0KICA+ICsgIGdkYnB5 X2JyZWFrcG9pbnRfb2JqZWN0ICpzZWxmX2JwID0gKGdkYnB5X2JyZWFrcG9p bnRfb2JqZWN0ICopIHNlbGY7DQogID4gKyAgc3RydWN0IHRhcmdldF93YWl0 c3RhdHVzIGxhc3Q7DQogID4gKyAgcHRpZF90IHB0aWQ7DQogID4gKw0KICA+ ICsgIEJQUFlfUkVRVUlSRV9WQUxJRCAoc2VsZl9icCk7DQogID4gKw0KICA+ ICsgIGlmIChzZWxmX2JwLT5icC0+dHlwZSA9PSBicF9jYXRjaHBvaW50ICYm IHNpZ25hbF9jYXRjaHBvaW50X3AgIA0KKHNlbGZfYnAtPmJwKSkNCiAgPiAr ICAgIHsNCiAgPiArICAgICAgZ2V0X2xhc3RfdGFyZ2V0X3N0YXR1cyAoJnB0 aWQsICZsYXN0KTsNCiAgPiArICAgICAgcmV0dXJuIFB5SW50X0Zyb21Mb25n IChsYXN0LnZhbHVlLnNpZyk7DQogID4gKyAgICB9DQogID4gKw0KICA+ICsg IFB5X1JFVFVSTl9OT05FOw0KICA+ICt9DQogID4gKw0KICA+ICsvKiBQeXRo b24gZnVuY3Rpb24gdG8gZ2V0IHRoZSB3aGV0aGVyIHRoZSBjdXJyZW50IGNh dGNocG9pbnQgY2F0Y2hlcyAgDQppbnRlcm5hbA0KICA+ICsgICBzaWduYWxz IHRvbyAqLw0KDQpwZXJpb2QgYXQgZW5kIG9mIHNlbnRlbmNlcywgcGx1cyB0 d28gc3BhY2VzIGFmdGVyIHRoYXQNCg0KSSdtIGEgbGl0dGxlIGJpdCBsZWFy eSBhYm91dCBleHBvcnRpbmcgc29tZXRoaW5nIHRoYXQgc2F5cyAiaW50ZXJu YWwiDQppbnRvIHRoZSBweXRob24gQVBJLg0KV2hhdCdzIHRoZSB1c2UtY2Fz ZSBmb3IgdGhpcz8NCltQbHVzIHRoZSBuYW1lIGRvZXNuJ3QgZmVlbCByaWdo dCwgYnV0IGxldCdzIGVzdGFibGlzaA0KYSB1c2UtY2FzZSBmaXJzdC5dDQoN CiAgPiArDQogID4gK3N0YXRpYyBQeU9iamVjdCAqDQogID4gK2JwcHlfZ2V0 X2ludGVybmFsX3NpZ25hbHMgKFB5T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9z dXJlKQ0KICA+ICt7DQogID4gKyAgZ2RicHlfYnJlYWtwb2ludF9vYmplY3Qg KnNlbGZfYnAgPSAoZ2RicHlfYnJlYWtwb2ludF9vYmplY3QgKikgc2VsZjsN CiAgPiArICBzdHJ1Y3QgdGFyZ2V0X3dhaXRzdGF0dXMgbGFzdDsNCiAgPiAr ICBwdGlkX3QgcHRpZDsNCiAgPiArDQogID4gKyAgQlBQWV9SRVFVSVJFX1ZB TElEIChzZWxmX2JwKTsNCiAgPiArDQogID4gKyAgaWYgKHNlbGZfYnAtPmJw LT50eXBlID09IGJwX2NhdGNocG9pbnQgJiYgc2lnbmFsX2NhdGNocG9pbnRf cCAgDQooc2VsZl9icC0+YnApKQ0KICA+ICsgICAgew0KICA+ICsgICAgICBp ZiAoc2lnbmFsX2lzX2NhdGNoX2FsbCAoc2VsZl9icC0+YnApKQ0KICA+ICsJ UHlfUkVUVVJOX1RSVUU7DQogID4gKyAgICAgIGVsc2UNCiAgPiArCVB5X1JF VFVSTl9GQUxTRTsNCiAgPiArICAgIH0NCiAgPiArDQogID4gKyAgUHlfUkVU VVJOX05PTkU7DQogID4gK30NCiAgPiArDQogID4gKy8qIFB5dGhvbiBmdW5j dGlvbiB0byBvYnRhaW4gdGhlIHR5cGUgb2YgdGhlIGN1cnJlbnQgY2F0Y2hw b2ludA0KICA+ICsgICAoZS5nLiBzeXNjYWxsIG9yIHNpZ25hbCBjYXRjaHBv aW50KSAqLw0KDQpwZXJpb2QgYXQgZW5kIG9mIHNlbnRlbmNlcywgcGx1cyB0 d28gc3BhY2VzIGFmdGVyIHRoYXQNCg0KICA+ICsNCiAgPiArc3RhdGljIFB5 T2JqZWN0ICoNCiAgPiArYnBweV9nZXRfY2F0Y2hwb2ludF90eXBlIChQeU9i amVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkNCiAgPiArew0KICA+ICsgIGdk YnB5X2JyZWFrcG9pbnRfb2JqZWN0ICpzZWxmX2JwID0gKGdkYnB5X2JyZWFr cG9pbnRfb2JqZWN0ICopIHNlbGY7DQogID4gKw0KICA+ICsgIEJQUFlfUkVR VUlSRV9WQUxJRCAoc2VsZl9icCk7DQogID4gKw0KICA+ICsgIGlmIChzZWxm X2JwLT5icC0+dHlwZSA9PSBicF9jYXRjaHBvaW50KQ0KICA+ICsgICAgew0K ICA+ICsgICAgICBpZiAoc2lnbmFsX2NhdGNocG9pbnRfcCAoc2VsZl9icC0+ YnApKQ0KICA+ICsJcmV0dXJuIFB5SW50X0Zyb21Mb25nIChjdF9zaWduYWwp Ow0KICA+ICsgICAgICBlbHNlIGlmIChzeXNjYWxsX2NhdGNocG9pbnRfcCAo c2VsZl9icC0+YnApKQ0KICA+ICsJcmV0dXJuIFB5SW50X0Zyb21Mb25nIChj dF9zeXNjYWxsKTsNCiAgPiArICAgICAgZWxzZQ0KICA+ICsJUHlfUkVUVVJO X05PTkU7DQogID4gKyAgICB9DQogID4gKw0KICA+ICsgIFB5X1JFVFVSTl9O T05FOw0KICA+ICt9DQogID4gKw0KICA+ICsvKiBBIHNpbXBsZSBmdW5jdGlv biB0byBhcHBlbmQgaW50ZWdlcnMgdG8gYSBQeXRob24gbGlzdCAqLw0KDQpw ZXJpb2QgYXQgZW5kIG9mIHNlbnRlbmNlcywgcGx1cyB0d28gc3BhY2VzIGFm dGVyIHRoYXQNCg0KICA+ICsNCiAgPiArc3RhdGljIGludA0KICA+ICthZGRf c3lzY2FsbF90b19saXN0KGludCB2YWx1ZSwgdm9pZCAqbGlzdCkgew0KICA+ ICsgIHJldHVybiBQeUxpc3RfQXBwZW5kKGxpc3QsIFB5SW50X0Zyb21Mb25n ICh2YWx1ZSkpOw0KICA+ICt9DQogID4gKw0KICA+ICsvKiBBIHNpbXBsZSBm dW5jdGlvbiB0byBhcHBlbmQgaW50ZWdlcnMgdG8gYSBQeXRob24gbGlzdCAq Lw0KDQpwZXJpb2QgYXQgZW5kIG9mIHNlbnRlbmNlcywgcGx1cyB0d28gc3Bh Y2VzIGFmdGVyIHRoYXQNCg0KICA+ICsNCiAgPiArc3RhdGljIGludA0KICA+ ICthZGRfc2lnbmFsX3RvX2xpc3QoaW50IHZhbHVlLCB2b2lkICpsaXN0KSB7 DQoNCnNwYWNlIGJlZm9yZSBvcGVuaW5nIHBhcmVuDQoNCiAgPiArICBpbnQg aG9zdF9zaWduYWwgPSBnZGJfc2lnbmFsX3RvX2hvc3QgKHZhbHVlKTsNCiAg PiArICByZXR1cm4gUHlMaXN0X0FwcGVuZChsaXN0LCBQeUludF9Gcm9tTG9u ZyAoaG9zdF9zaWduYWwpKTsNCg0Kc3BhY2UgYmVmb3JlIG9wZW5pbmcgcGFy ZW4NCg0KICA+ICt9DQogID4gKw0KICA+ICsvKiBQeXRob24gZnVuY3Rpb24g dGhhdCByZXR1cm5zIGEgbGlzdCBvZiBpbnRlZ2VycyByZXByZXNlbnRpbmcg dGhlDQogID4gKyAgIHN5c2NhbGxzL3NpZ25hbHMgY2F0Y2hlZCBieSB0aGlz IGJyZWFrcG9pbnQuICovDQoNCnR3byBzcGFjZXMgYWZ0ZXIgYSBzZW50ZW5j ZQ0Kcy9icmVha3BvaW50L2NhdGNocG9pbnQvDQoNCkJ0dywgdGhlcmUncyBh IG9wZW4gZGViYXRlIG9uIHdoZXRoZXIgd2Ugc2hvdWxkIGJlIHN1YmNsYXNz aW5nDQpmcm9tIHNvbWUgYnJlYWtwb2ludCBiYXNlY2xhc3MuIEF0IHNvbWUg cG9pbnQgd2UgbWlnaHQgZG8gdGhhdC4NCk1heWJlIG5vdydzIGEgZ29vZCB0 aW1lLCBJJ20gbm90IHN1cmUuDQpXaGF0IGRvIHlvdSB0aGluaz8NCg0KICA+ ICsNCiAgPiArc3RhdGljIFB5T2JqZWN0ICoNCiAgPiArYnBweV9nZXRfZmls dGVyIChQeU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkNCiAgPiArew0K ICA+ICsgIGdkYnB5X2JyZWFrcG9pbnRfb2JqZWN0ICpzZWxmX2JwID0gKGdk YnB5X2JyZWFrcG9pbnRfb2JqZWN0ICopIHNlbGY7DQogID4gKyAgaW50IGkg PSAwLCBpdGVyID0gMCwgaXNlcnIgPSAwOw0KICA+ICsgIFB5T2JqZWN0ICps aXN0ID0gTlVMTDsNCiAgPiArDQogID4gKyAgQlBQWV9SRVFVSVJFX1ZBTElE IChzZWxmX2JwKTsNCiAgPiArDQogID4gKyAgaWYgKHNlbGZfYnAtPmJwLT50 eXBlID09IGJwX2NhdGNocG9pbnQpDQogID4gKyAgICB7DQogID4gKyAgICAg IGxpc3QgPSBQeUxpc3RfTmV3KDApOw0KDQpzcGFjZSBiZWZvcmUgb3Blbmlu ZyBwYXJlbg0KDQogID4gKw0KICA+ICsgICAgICBpZiAoIWxpc3QpDQoNCnJl ZjogIA0KaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9JbnRlcm5h bHMlMjBHREItQy1Db2RpbmctU3RhbmRhcmRzI05VTExfSXNfTm90X1plcm8N Cg0KICA+ICsJew0KICA+ICsJICBQeUVycl9TZXRTdHJpbmcgKFB5RXhjX1J1 bnRpbWVFcnJvciwNCiAgPiArCQkJICAgIkNvdWxkbid0IGNyZWF0ZSBhIGxp c3Qgb2JqZWN0LiIpOw0KICA+ICsJICByZXR1cm4gTlVMTDsNCiAgPiArCX0N CiAgPiArDQogID4gKyAgICAgIGlmIChzeXNjYWxsX2NhdGNocG9pbnRfcCAo c2VsZl9icC0+YnApKQ0KICA+ICsJaXNlcnIgPSBpdGVyYXRlX292ZXJfc3lz Y2FsbHMoc2VsZl9icC0+YnAsIGFkZF9zeXNjYWxsX3RvX2xpc3QsIGxpc3Qp Ow0KDQpzcGFjZSBiZWZvcmUgb3BlbmluZyBwYXJlbg0KDQogID4gKyAgICAg IGVsc2UgaWYgKHNpZ25hbF9jYXRjaHBvaW50X3AgKHNlbGZfYnAtPmJwKSkN CiAgPiArCWlzZXJyID0gaXRlcmF0ZV9vdmVyX3NpZ25hbHMoc2VsZl9icC0+ YnAsIGFkZF9zaWduYWxfdG9fbGlzdCwgbGlzdCk7DQoNCnNwYWNlIGJlZm9y ZSBvcGVuaW5nIHBhcmVuDQoNCiAgPiArDQogID4gKyAgICAgIGlmIChpc2Vy ciA9PSAtMSkNCiAgPiArCXsNCiAgPiArCSAgUHlFcnJfU2V0U3RyaW5nIChQ eUV4Y19SdW50aW1lRXJyb3IsDQogID4gKwkJCSAgICJFcnJvciB3aGlsZSBp bnNlcnRpbmcgYW4gZWxlbWVudCBpbiB0aGUgbGlzdC4iKTsNCiAgPiArCSAg UHlfREVDUkVGIChsaXN0KTsNCiAgPiArCSAgcmV0dXJuIE5VTEw7DQogID4g Kwl9DQogID4gKw0KICA+ICsgICAgICByZXR1cm4gbGlzdDsNCiAgPiArICAg IH0NCiAgPiArDQogID4gKyAgUHlfUkVUVVJOX05PTkU7DQogID4gK30NCiAg PiArDQogID4gIC8qIFB5dGhvbiBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYg dGhlIGJyZWFrcG9pbnQgaXMgYSB0ZW1wb3JhcnkNCiAgPiAgICAgYnJlYWtw b2ludC4gICovDQogID4NCiAgPiBAQCAtNjI4LDE5ICs3ODQsMjMgQEAgYnBw eV9nZXRfaWdub3JlX2NvdW50IChQeU9iamVjdCAqc2VsZiwgdm9pZCAgDQoq Y2xvc3VyZSkNCiAgPiAgc3RhdGljIGludA0KICA+ICBicHB5X2luaXQgKFB5 T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJn cykNCiAgPiAgew0KICA+IC0gIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0g eyAic3BlYyIsICJ0eXBlIiwgIndwX2NsYXNzIiwgImludGVybmFsIiwNCiAg PiAtCQkJICAgICAgInRlbXBvcmFyeSIsIE5VTEwgfTsNCiAgPiArICBzdGF0 aWMgY2hhciAqa2V5d29yZHNbXSA9ICANCnsgInNwZWMiLCAidHlwZSIsICJ3 cF9jbGFzcyIsICJjdF90eXBlIiwgImludGVybmFsIiwNCg0Kcy9jdF90eXBl L2NwX3R5cGUvDQoNCiAgPiArCQkJICAgICAgInRlbXBvcmFyeSIsICJmaWx0 ZXIiLCAiaW50ZXJuYWxfc2lnbmFscyIsIE5VTEwgfTsNCg0KR2l2ZW4gdGhl IG51bWJlciBvZiBrZXl3b3JkIGFyZ3VtZW50cyBub3cgcHJlc2VudCBJIHdv bmRlciBpZiB3ZSd2ZSBjcm9zc2VkICANCmENCnRocmVzaG9sZCBmb3IgYmVp bmcgdGltZSB0byBzdGFydCBzdWJjbGFzc2luZyBpbnN0ZWFkIG9mIGhhdmlu ZyBvbmUgY2xhc3MgIA0KZm9yDQphbGwgdGhlIGRpZmZlcmVudCBraW5kcyBv ZiAiYnJlYWtwb2ludHMiLg0KDQogID4gICAgY29uc3QgY2hhciAqc3BlYzsN CiAgPiAgICBpbnQgdHlwZSA9IGJwX2JyZWFrcG9pbnQ7DQogID4gICAgaW50 IGFjY2Vzc190eXBlID0gaHdfd3JpdGU7DQogID4gKyAgaW50IGNhdGNocG9p bnRfdHlwZSA9IGN0X3N5c2NhbGw7DQogID4gICAgUHlPYmplY3QgKmludGVy bmFsID0gTlVMTDsNCiAgPiAgICBQeU9iamVjdCAqdGVtcG9yYXJ5ID0gTlVM TDsNCiAgPiAgICBpbnQgaW50ZXJuYWxfYnAgPSAwOw0KICA+ICAgIGludCB0 ZW1wb3JhcnlfYnAgPSAwOw0KICA+ICsgIFB5T2JqZWN0ICpmaWx0ZXIgPSBO VUxMOw0KICA+ICsgIGludCBpbnRlcm5hbF9zaWduYWxzID0gMDsNCiAgPg0K ICA+IC0gIGlmICghIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyAoYXJn cywga3dhcmdzLCAic3xpaU9PIiwga2V5d29yZHMsDQogID4gKyAgaWYgKCEg UHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzIChhcmdzLCBrd2FyZ3MsICJz fGlpaU9PT2kiLCAgDQprZXl3b3JkcywNCiAgPiAgCQkJCSAgICAgJnNwZWMs ICZ0eXBlLCAmYWNjZXNzX3R5cGUsDQogID4gLQkJCQkgICAgICZpbnRlcm5h bCwgJnRlbXBvcmFyeSkpDQogID4gKwkJCQkgICAgICZjYXRjaHBvaW50X3R5 cGUsICZpbnRlcm5hbCwgJnRlbXBvcmFyeSwNCiAgPiArCQkJCSAgICAgJmZp bHRlciwgJmludGVybmFsX3NpZ25hbHMpKQ0KICA+ICAgICAgcmV0dXJuIC0x Ow0KICA+DQogID4gICAgaWYgKGludGVybmFsKQ0KICA+IEBAIC02OTYsNiAr ODU2LDQwIEBAIGJwcHlfaW5pdCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzLCBQeU9iamVjdCAgDQoqa3dhcmdzKQ0KICA+ICAJICAgICAgZXJy b3IoXygiQ2Fubm90IHVuZGVyc3RhbmQgd2F0Y2hwb2ludCBhY2Nlc3MgdHlw ZS4iKSk7DQogID4gIAkgICAgYnJlYWs7DQogID4gIAkgIH0NCiAgPiArCWNh c2UgYnBfY2F0Y2hwb2ludDoNCiAgPiArCSAgew0KICA+ICsJICAgIHN3aXRj aCAoY2F0Y2hwb2ludF90eXBlKQ0KICA+ICsJICAgICAgew0KICA+ICsJICAg ICAgY2FzZSBjdF9zeXNjYWxsOg0KICA+ICsJCXsNCiAgPiArCQkgIFZFQyAo aW50KSAqc3lzY2FsbF9maWx0ZXIgPSBOVUxMOw0KICA+ICsNCiAgPiArCQkg IGlmIChmaWx0ZXIgIT0gTlVMTCkNCiAgPiArCQkgICAgc3lzY2FsbF9maWx0 ZXIgPSBWRUNfcHlfbGlzdF90b192ZWMgKGludCwgZmlsdGVyLCBOVUxMKTsN CiAgPiArDQogID4gKwkJICBjcmVhdGVfc3lzY2FsbF9ldmVudF9jYXRjaHBv aW50ICh0ZW1wb3JhcnlfYnAsIHN5c2NhbGxfZmlsdGVyKTsNCiAgPiArCQkg IGJyZWFrOw0KICA+ICsJCX0NCiAgPiArCSAgICAgIGNhc2UgY3Rfc2lnbmFs Og0KICA+ICsJCXsNCiAgPiArCQkgIFZFQyAoZ2RiX3NpZ25hbF90eXBlKSAq c2lnbmFsX2ZpbHRlciA9IE5VTEw7DQogID4gKw0KICA+ICsJCSAgaWYgKGZp bHRlciAhPSBOVUxMKQ0KICA+ICsJCSAgICBzaWduYWxfZmlsdGVyID0gVkVD X3B5X2xpc3RfdG9fdmVjIChnZGJfc2lnbmFsX3R5cGUsDQogID4gKwkJCQkJ CQlmaWx0ZXIsDQogID4gKwkJCQkJCQlnZGJfc2lnbmFsX2Zyb21faG9zdCk7 DQogID4gKw0KICA+ICsJCSAgY3JlYXRlX3NpZ25hbF9jYXRjaHBvaW50ICh0 ZW1wb3JhcnlfYnAsIHNpZ25hbF9maWx0ZXIsDQogID4gKwkJCQkJICAgIGlu dGVybmFsX3NpZ25hbHMpOw0KICA+ICsJCSAgYnJlYWs7DQogID4gKwkJfQ0K ICA+ICsJICAgICAgZGVmYXVsdDoNCiAgPiArCQl7DQogID4gKwkJICBlcnJv ciAoXygiQ2F0Y2hwb2ludCB0eXBlIG5vdCBzdXBwb3J0ZWQuIikpOw0KICA+ ICsJCX0NCiAgPiArCSAgICAgIH0NCiAgPiArCSAgICBicmVhazsNCiAgPiAr CSAgfQ0KICA+ICAJZGVmYXVsdDoNCiAgPiAgCSAgZXJyb3IoXygiRG8gbm90 IHVuZGVyc3RhbmQgYnJlYWtwb2ludCB0eXBlIHRvIHNldC4iKSk7DQogID4g IAl9DQogID4gQEAgLTcxNSw4ICs5MDksNiBAQCBicHB5X2luaXQgKFB5T2Jq ZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgIA0KKmt3YXJn cykNCiAgPiAgICByZXR1cm4gMDsNCiAgPiAgfQ0KICA+DQogID4gLQwNCiAg PiAtDQogID4gIHN0YXRpYyBpbnQNCiAgPiAgYnVpbGRfYnBfbGlzdCAoc3Ry dWN0IGJyZWFrcG9pbnQgKmIsIHZvaWQgKmFyZykNCiAgPiAgew0KICA+IEBA IC04NjgsNyArMTA2MCw4IEBAIGdkYnB5X2JyZWFrcG9pbnRfY3JlYXRlZCAo c3RydWN0IGJyZWFrcG9pbnQgKmJwKQ0KICA+ICAgICAgICAmJiBicC0+dHlw ZSAhPSBicF93YXRjaHBvaW50DQogID4gICAgICAgICYmIGJwLT50eXBlICE9 IGJwX2hhcmR3YXJlX3dhdGNocG9pbnQNCiAgPiAgICAgICAgJiYgYnAtPnR5 cGUgIT0gYnBfcmVhZF93YXRjaHBvaW50DQogID4gLSAgICAgICYmIGJwLT50 eXBlICE9IGJwX2FjY2Vzc193YXRjaHBvaW50KQ0KICA+ICsgICAgICAmJiBi cC0+dHlwZSAhPSBicF9hY2Nlc3Nfd2F0Y2hwb2ludA0KICA+ICsgICAgICAm JiBicC0+dHlwZSAhPSBicF9jYXRjaHBvaW50KQ0KICA+ICAgICAgcmV0dXJu Ow0KICA+DQogID4gICAgc3RhdGUgPSBQeUdJTFN0YXRlX0Vuc3VyZSAoKTsN CiAgPiBAQCAtOTYzLDYgKzExNTYsMTYgQEAgZ2RicHlfaW5pdGlhbGl6ZV9i cmVha3BvaW50cyAodm9pZCkNCiAgPiAgCXJldHVybiAtMTsNCiAgPiAgICAg IH0NCiAgPg0KICA+ICsgIC8qIEFkZCBjYXRjaHBvaW50IHR5cGVzIGNvbnN0 YW50cy4gICovDQogID4gKyAgZm9yIChpID0gMDsgcHlicF9jYXRjaHBvaW50 X3R5cGVzW2ldLm5hbWU7ICsraSkNCiAgPiArICAgIHsNCiAgPiArICAgICAg aWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50IChnZGJfbW9kdWxlLA0KICA+ ICsJCQkJICAgLyogQ2FzdCBuZWVkZWQgZm9yIFB5dGhvbiAyLjQuICAqLw0K ICA+ICsJCQkJICAgKGNoYXIgKikgcHlicF9jYXRjaHBvaW50X3R5cGVzW2ld Lm5hbWUsDQogID4gKwkJCQkgICBweWJwX2NhdGNocG9pbnRfdHlwZXNbaV0u Y29kZSkgPCAwKQ0KICA+ICsJcmV0dXJuIC0xOw0KICA+ICsgICAgfQ0KICA+ ICsNCiAgPiAgICByZXR1cm4gMDsNCiAgPiAgfQ0KICA+DQogID4gQEAgLTEw NTIsNiArMTI1NSwxOCBAQCBvciBOb25lIGlmIG5vIGNvbmRpdGlvbiBzZXQu In0sDQogID4gICAgICAiV2hldGhlciB0aGUgYnJlYWtwb2ludCBpcyB2aXNp YmxlIHRvIHRoZSB1c2VyLiJ9LA0KICA+ICAgIHsgInRlbXBvcmFyeSIsIGJw cHlfZ2V0X3RlbXBvcmFyeSwgTlVMTCwNCiAgPiAgICAgICJXaGV0aGVyIHRo aXMgYnJlYWtwb2ludCBpcyBhIHRlbXBvcmFyeSBicmVha3BvaW50LiJ9LA0K ICA+ICsgIHsgImZpbHRlciIsIGJwcHlfZ2V0X2ZpbHRlciwgTlVMTCwNCiAg PiArICAgICJMaXN0IG9mIGNhdGNoZWQgc3lzY2FsbHMvc2lnbmFscy4gSWYg ZW1wdHksIGFsbCB0aGUgIA0Kc3lzY2FsbHMvc2lnbmFscyBhcmVcblwNCiAg PiArYmVpbmcgY2F0Y2hlZC4ifSwNCiAgPiArICB7ICJpbnRlcm5hbF9zaWdu YWxzIiwgYnBweV9nZXRfaW50ZXJuYWxfc2lnbmFscywgTlVMTCwNCiAgPiAr ICAgICJCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgYnJlYWtwb2lu dCBjYXRjaGVzIGludGVybmFsIHNpZ25hbHMgIA0KdG9vIG9yXG5cDQogID4g K25vdC4ifSwNCiAgPiArICB7ICJsYXN0X3N5c2NhbGwiLCBicHB5X2dldF9s YXN0X3N5c2NhbGwsIE5VTEwsDQogID4gKyAgICAiTGFzdCBjYXRjaGVkIHN5 c2NhbGwuIn0sDQogID4gKyAgeyAibGFzdF9zaWduYWwiLCBicHB5X2dldF9s YXN0X3NpZ25hbCwgTlVMTCwNCiAgPiArICAgICJMYXN0IGNhdGNoZWQgc2ln bmFsLiJ9LA0KICA+ICsgIHsgImN0X3R5cGUiLCBicHB5X2dldF9jYXRjaHBv aW50X3R5cGUsIE5VTEwsDQogID4gKyAgICAiR2V0IGNhdGNocG9pbnQgdHlw ZS4ifSwNCiAgPiAgICB7IE5VTEwgfSAgLyogU2VudGluZWwuICAqLw0KICA+ ICB9Ow0KICA+DQogID4gZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktc3Rv cGV2ZW50LmMgYi9nZGIvcHl0aG9uL3B5LXN0b3BldmVudC5jDQogID4gaW5k ZXggNjg0ZWRmZi4uZTZkYTMzMiAxMDA2NDQNCiAgPiAtLS0gYS9nZGIvcHl0 aG9uL3B5LXN0b3BldmVudC5jDQogID4gKysrIGIvZ2RiL3B5dGhvbi9weS1z dG9wZXZlbnQuYw0KICA+IEBAIC0xOSw2ICsxOSw3IEBADQogID4NCiAgPiAg I2luY2x1ZGUgImRlZnMuaCINCiAgPiAgI2luY2x1ZGUgInB5LXN0b3BldmVu dC5oIg0KICA+ICsjaW5jbHVkZSAiaW5mcnVuLmgiDQogID4NCiAgPiAgUHlP YmplY3QgKg0KICA+ICBjcmVhdGVfc3RvcF9ldmVudF9vYmplY3QgKFB5VHlw ZU9iamVjdCAqcHlfdHlwZSkNCiAgPiBAQCAtNDksNiArNTAsOCBAQCBlbWl0 X3N0b3BfZXZlbnQgKHN0cnVjdCBicHN0YXRzICpicywgZW51bSBnZGJfc2ln bmFsICANCnN0b3Bfc2lnbmFsKQ0KICA+ICAgIFB5T2JqZWN0ICpsaXN0ID0g TlVMTDsNCiAgPiAgICBQeU9iamVjdCAqZmlyc3RfYnAgPSBOVUxMOw0KICA+ ICAgIHN0cnVjdCBicHN0YXRzICpjdXJyZW50X2JzOw0KICA+ICsgIHB0aWRf dCBwdGlkcDsNCiAgPiArICBzdHJ1Y3QgdGFyZ2V0X3dhaXRzdGF0dXMgc3Rh dHVzOw0KICA+DQogID4gICAgaWYgKGV2cmVncHlfbm9fbGlzdGVuZXJzX3Ag KGdkYl9weV9ldmVudHMuc3RvcCkpDQogID4gICAgICByZXR1cm4gMDsNCiAg PiBAQCAtOTUsNiArOTgsMTggQEAgZW1pdF9zdG9wX2V2ZW50IChzdHJ1Y3Qg YnBzdGF0cyAqYnMsIGVudW0gZ2RiX3NpZ25hbCAgDQpzdG9wX3NpZ25hbCkN CiAgPiAgCWdvdG8gZmFpbDsNCiAgPiAgICAgIH0NCiAgPg0KICA+ICsgIGlm IChzdG9wX3NpZ25hbCA9PSBHREJfU0lHTkFMXzApDQogID4gKyAgICB7DQog ID4gKyAgICAgIGdldF9sYXN0X3RhcmdldF9zdGF0dXMoJnB0aWRwLCAmc3Rh dHVzKTsNCg0Kc3BhY2UgYmVmb3JlIHBhcmVuDQoNCiAgPiArICAgICAgaWYg KHN0YXR1cy5raW5kID09IFRBUkdFVF9XQUlUS0lORF9TWVNDQUxMX0VOVFJZ KQ0KICA+ICsJew0KICA+ICsJICBzdG9wX2V2ZW50X29iaiA9DQogID4gKwkg ICAgY3JlYXRlX3N5c2NhbGxfZXZlbnRfb2JqZWN0IChzdGF0dXMudmFsdWUu c3lzY2FsbF9udW1iZXIsIGJzKTsNCiAgPiArCSAgaWYgKCFzdG9wX2V2ZW50 X29iaikNCg0KcmVmOiAgDQpodHRwczovL3NvdXJjZXdhcmUub3JnL2dkYi93 aWtpL0ludGVybmFscyUyMEdEQi1DLUNvZGluZy1TdGFuZGFyZHMjTlVMTF9J c19Ob3RfWmVybw0KW0kgcmVhbGl6ZSBvdGhlciBjb2RlIGluIHRoaXMgZmls ZSBnZXRzIHRoaXMgd3JvbmcuDQpJbiB0aGlzIGNhc2UgSSdkIGdvIHdpdGgg d2hhdCdzIHJpZ2h0IG92ZXIgYmVpbmcNCmNvbnNpc3RlbnRseSB3cm9uZy5d DQoNCiAgPiArCSAgICBnb3RvIGZhaWw7DQogID4gKwl9DQogID4gKyAgICB9 DQogID4gKw0KICA+ICAgIC8qIElmIGFsbCBmYWlscyBlbWl0IGFuIHVua25v d24gc3RvcCBldmVudC4gIEFsbCBldmVudCB0eXBlcyBzaG91bGQNCiAgPiAg ICAgICBiZSBrbm93biBhbmQgdGhpcyBzaG91bGQgZXZlbnR1YWxseSBiZSB1 bnVzZWQuICAqLw0KICA+ICAgIGlmICghc3RvcF9ldmVudF9vYmopDQogID4g ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktc3RvcGV2ZW50LmggYi9nZGIv cHl0aG9uL3B5LXN0b3BldmVudC5oDQogID4gaW5kZXggZjIxOTA3MC4uNjYz ZGE3YyAxMDA2NDQNCiAgPiAtLS0gYS9nZGIvcHl0aG9uL3B5LXN0b3BldmVu dC5oDQogID4gKysrIGIvZ2RiL3B5dGhvbi9weS1zdG9wZXZlbnQuaA0KICA+ IEBAIC0zMyw0ICszMyw3IEBAIGV4dGVybiBQeU9iamVjdCAqY3JlYXRlX2Jy ZWFrcG9pbnRfZXZlbnRfb2JqZWN0ICANCihQeU9iamVjdCAqYnJlYWtwb2lu dF9saXN0LA0KICA+DQogID4gIGV4dGVybiBQeU9iamVjdCAqY3JlYXRlX3Np Z25hbF9ldmVudF9vYmplY3QgKGVudW0gZ2RiX3NpZ25hbCAgDQpzdG9wX3Np Z25hbCk7DQogID4NCiAgPiArZXh0ZXJuIFB5T2JqZWN0ICpjcmVhdGVfc3lz Y2FsbF9ldmVudF9vYmplY3QgKGludCBzeXNjYWxsX251bWJlciwNCiAgPiAr CQkJCQkgICAgICBzdHJ1Y3QgYnBzdGF0cyAqYnMpOw0KICA+ICsNCiAgPiAg I2VuZGlmIC8qIEdEQl9QWV9TVE9QRVZFTlRfSCAqLw0KICA+IGRpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL3B5LXN5c2NhbGxldmVudC5jIGIvZ2RiL3B5dGhv bi9weS1zeXNjYWxsZXZlbnQuYw0KICA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQogID4gaW5kZXggMDAwMDAwMC4uYzg0NGJlOA0KICA+IC0tLSAvZGV2L251 bGwNCiAgPiArKysgYi9nZGIvcHl0aG9uL3B5LXN5c2NhbGxldmVudC5jDQog ID4gQEAgLTAsMCArMSw2MSBAQA0KICA+ICsvKiBQeXRob24gaW50ZXJmYWNl IHRvIGluZmVyaW9yIHN5c2NhbGwgZXZlbnRzLg0KICA+ICsNCiAgPiArICAg Q29weXJpZ2h0IChDKSAyMDA5LTIwMTUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuDQogID4gKw0KICA+ICsgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHREIuDQogID4gKw0KICA+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQ0KICA+ICsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KICA+ICsgICB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcg0KICA+ICsgICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLg0KICA+ICsNCiAgPiArICAgVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsDQogID4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQogID4gKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUNCiAgPiArICAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiAgPiArDQogID4gKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlDQogID4gKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgIA0KPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8NCiAgPiArDQogID4gKyNpbmNsdWRlICJkZWZzLmgi DQogID4gKyNpbmNsdWRlICJweS1zdG9wZXZlbnQuaCINCiAgPiArI2luY2x1 ZGUgInhtbC1zeXNjYWxsLmgiDQogID4gKw0KICA+ICtleHRlcm4gUHlUeXBl T2JqZWN0IHN5c2NhbGxfZXZlbnRfb2JqZWN0X3R5cGUNCiAgPiArICAgIENQ WUNIRUNLRVJfVFlQRV9PQkpFQ1RfRk9SX1RZUEVERUYgKCJldmVudF9vYmpl Y3QiKTsNCiAgPiArDQogID4gK1B5T2JqZWN0ICoNCiAgPiArY3JlYXRlX3N5 c2NhbGxfZXZlbnRfb2JqZWN0IChpbnQgc3lzY2FsbF9udW1iZXIsIHN0cnVj dCBicHN0YXRzICpicykNCiAgPiArew0KICA+ICsgIFB5T2JqZWN0ICpzeXNj YWxsX251bWJlcl9vYmogPSBOVUxMOw0KICA+ICsgIFB5T2JqZWN0ICpzeXNj YWxsX2V2ZW50X29iaiA9DQogID4gKyAgICBjcmVhdGVfc3RvcF9ldmVudF9v YmplY3QgKCZzeXNjYWxsX2V2ZW50X29iamVjdF90eXBlKTsNCiAgPiArICBz dHJ1Y3Qgc3lzY2FsbCBzOw0KICA+ICsgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gYnMtPmJwX2xvY2F0aW9uX2F0LT5nZGJhcmNoOw0KICA+ICsNCiAg PiArICBpZiAoIXN5c2NhbGxfZXZlbnRfb2JqKQ0KDQpyZWY6ICANCmh0dHBz Oi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvSW50ZXJuYWxzJTIwR0RCLUMt Q29kaW5nLVN0YW5kYXJkcyNOVUxMX0lzX05vdF9aZXJvDQoNCiAgPiArICAg IGdvdG8gZmFpbDsNCiAgPiArDQogID4gKyAgZ2V0X3N5c2NhbGxfYnlfbnVt YmVyIChnZGJhcmNoLCBzeXNjYWxsX251bWJlciwgJnMpOw0KICA+ICsNCiAg PiArICBzeXNjYWxsX251bWJlcl9vYmogPSBQeUxvbmdfRnJvbUxvbmdMb25n IChzeXNjYWxsX251bWJlcik7DQogID4gKyAgaWYgKHN5c2NhbGxfbnVtYmVy X29iaiA9PSBOVUxMKQ0KICA+ICsgICAgZ290byBmYWlsOw0KICA+ICsNCiAg PiArICBpZiAoZXZweV9hZGRfYXR0cmlidXRlIChzeXNjYWxsX2V2ZW50X29i aiwNCiAgPiArICAgICAgICAgICAgICAgICAgICAgICAgICAic3RvcF9zeXNj YWxsIiwNCiAgPiArICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxs X251bWJlcl9vYmopIDwgMCkNCiAgPiArICAgIGdvdG8gZmFpbDsNCiAgPiAr DQogID4gKyAgcmV0dXJuIHN5c2NhbGxfZXZlbnRfb2JqOw0KICA+ICsNCiAg PiArIGZhaWw6DQogID4gKyAgUHlfWERFQ1JFRiAoc3lzY2FsbF9ldmVudF9v YmopOw0KICA+ICsgIHJldHVybiBOVUxMOw0KICA+ICt9DQogID4gKw0KICA+ ICtHREJQWV9ORVdfRVZFTlRfVFlQRSAoc3lzY2FsbCwNCiAgPiArICAgICAg ICAgICAgICAgICAgICAgICJnZGIuU3lzY2FsbEV2ZW50IiwNCiAgPiArICAg ICAgICAgICAgICAgICAgICAgICJTeXNjYWxsRXZlbnQiLA0KICA+ICsgICAg ICAgICAgICAgICAgICAgICAgIkdEQiBzeXNjYWxsIGV2ZW50IG9iamVjdCIs DQogID4gKyAgICAgICAgICAgICAgICAgICAgICBzdG9wX2V2ZW50X29iamVj dF90eXBlKTsNCiAgPiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24t aW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgNCiAg PiBpbmRleCBlZTk0OWI3Li42NjdkMDc0IDEwMDY0NA0KICA+IC0tLSBhL2dk Yi9weXRob24vcHl0aG9uLWludGVybmFsLmgNCiAgPiArKysgYi9nZGIvcHl0 aG9uL3B5dGhvbi1pbnRlcm5hbC5oDQogID4gQEAgLTQ3Miw2ICs0NzIsOCBA QCBpbnQgZ2RicHlfaW5pdGlhbGl6ZV9zdG9wX2V2ZW50ICh2b2lkKQ0KICA+ ICAgIENQWUNIRUNLRVJfTkVHQVRJVkVfUkVTVUxUX1NFVFNfRVhDRVBUSU9O Ow0KICA+ICBpbnQgZ2RicHlfaW5pdGlhbGl6ZV9zaWduYWxfZXZlbnQgKHZv aWQpDQogID4gICAgQ1BZQ0hFQ0tFUl9ORUdBVElWRV9SRVNVTFRfU0VUU19F WENFUFRJT047DQogID4gK2ludCBnZGJweV9pbml0aWFsaXplX3N5c2NhbGxf ZXZlbnQgKHZvaWQpDQogID4gKyAgQ1BZQ0hFQ0tFUl9ORUdBVElWRV9SRVNV TFRfU0VUU19FWENFUFRJT047DQogID4gIGludCBnZGJweV9pbml0aWFsaXpl X2JyZWFrcG9pbnRfZXZlbnQgKHZvaWQpDQogID4gICAgQ1BZQ0hFQ0tFUl9O RUdBVElWRV9SRVNVTFRfU0VUU19FWENFUFRJT047DQogID4gIGludCBnZGJw eV9pbml0aWFsaXplX2NvbnRpbnVlX2V2ZW50ICh2b2lkKQ0KICA+IEBAIC01 OTQsNCArNTk2LDQ5IEBAIHN0cnVjdCB2YXJvYmo7DQogID4gIHN0cnVjdCB2 YXJvYmpfaXRlciAqcHlfdmFyb2JqX2dldF9pdGVyYXRvciAoc3RydWN0IHZh cm9iaiAqdmFyLA0KICA+ICAJCQkJCSAgICBQeU9iamVjdCAqcHJpbnRlcik7 DQogID4NCiAgPiArLyogRGVmaW5lIGEgInRlbXBsYXRlIiBtYWNybyB0byBj cmVhdGUgYSBQeXRob24gbGlzdCBmcm9tIGEgVkVDIG9mICANCmludGVnZXIt bGlrZQ0KICA+ICsgICB2YWx1ZXMuIFNlZSB2ZWMuaC4gKi8NCg0KdHdvIHNw YWNlcyBhZnRlciBhIHBlcmlvZA0KQWxzbywgdGhpcyBkb2VzIHRoZSBvcHBv c2l0ZSBvZiB3aGF0IHRoZSBjb21tZW50IHNheXM6DQpJdCBjb252ZXJ0cyBh IHB5dGhvbiBsaXN0IHRvIGEgVkVDIG9mIGludGVnZXItbGlrZSB2YWx1ZXMu DQoNCiAgPiArDQogID4gKyNkZWZpbmUgVkVDX3B5X2xpc3RfdG9fdmVjKFQs VixDKSAoVkVDX09QKFQscHlfbGlzdF90b192ZWMpKChWKSwgKEMpICANClZF Q19BU1NFUlRfSU5GTykpDQoNCk5lZWQgdG8gZG9jdW1lbnQgdGhhdCBhIE5V TEwgcmVzdWx0IGlzIGluc3VmZmljaWVudCB0byBkZW5vdGUgZXJyb3JzLA0K dGhlIGNhbGxlciBtdXN0IGFsc28gY2hlY2sgUHlFcnJfT2NjdXJyZWQuDQoN CiAgPiArDQogID4gKyNkZWZpbmUgREVGX1ZFQ19QWV9PUChUKQkJCQkJCVwN CiAgPiArc3RhdGljIGlubGluZSBWRUMoVCkqCQkJCQkJCVwNCiAgPiArVkVD X09QKFQsIHB5X2xpc3RfdG9fdmVjKSAoUHlPYmplY3QgKmxpc3QsIFQgKCpj b252ZXJ0ZXIpKGludCkgIA0KVkVDX0FTU0VSVF9ERUNMKSBcDQoNCnNwYWNp bmc6IFZFQ19PUCAoDQoNCiAgPiArewkJCQkJCQkJCVwNCiAgPiArICBWRUMo VCkqIHJlc3VsdCA9IE5VTEw7CQkJCQkJXA0KICA+ICsgIHN0cnVjdCBjbGVh bnVwICpjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChWRUNfY2xlYW51cCAoVCks ICZyZXN1bHQpOwlcDQogID4gKyAgUHlfc3NpemVfdCBpID0gMDsJCQkJCQkJ XA0KICA+ICsgIAkJCQkJCQkJCVwNCiAgPiArICBpZiAoIVB5TGlzdF9DaGVj ayAobGlzdCkpCQkJCQkJXA0KICA+ICsgICAgewkJCQkJCQkJCVwNCiAgPiAr ICAgICAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19SdW50aW1lRXJyb3IsCQkJ CVwNCiAgPiArCQkgICAgICAgXygiSW5wdXQgb2JqZWN0IG5vdCBhIGxpc3Qu IikpOwkJCVwNCiAgPiArICAgICAgcmV0dXJuIE5VTEw7CQkJCQkJCVwNCiAg PiArICAgIH0JCQkJCQkJCQlcDQogID4gKyAgCQkJCQkJCQkJXA0KICA+ICsg IGZvciAoaSA9IDA7IGkgPCBQeUxpc3RfU2l6ZShsaXN0KTsgaSsrKQkJCQlc DQoNCnNwYWNlIGJlZm9yZSBwYXJlbiwgaGVyZSBhbmQgZWxzZXdoZXJlDQoN CiAgPiArICAgIHsJCQkJCQkJCQlcDQogID4gKyAgICAgIGxvbmcgdmFsdWU7 CQkJCQkJCVwNCiAgPiArCQkJCQkJCQkJXA0KICA+ICsgICAgICBpZiAoIWdk Yl9weV9pbnRfYXNfbG9uZyhQeUxpc3RfR2V0SXRlbSAobGlzdCwgaSksICZ2 YWx1ZSkpCVwNCg0Kc3BhY2UgYmVmb3JlIHBhcmVuDQoNCiAgPiArCXsJCQkJ CQkJCVwNCiAgPiArCSAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19SdW50aW1l RXJyb3IsCQkJCVwNCiAgPiArCQkJICAgXygiQ291bGRuJ3QgY29udmVydCBs aXN0IGVsZW1lbnQgdG8gbG9uZy4iKSk7IFwNCg0KZ2RiX3B5X2ludF9hc19s b25nIHdpbGwgaGF2ZSBhbHJlYWR5IHNldCB0aGUgZXJyb3IgY29uZGl0aW9u DQoNCiAgPiArCSAgZG9fY2xlYW51cHMgKGNsZWFudXApOwkJCQkJXA0KICA+ ICsJICByZXR1cm4gTlVMTDsJCQkJCQkJXA0KICA+ICsJfQkJCQkJCQkJXA0K ICA+ICsgICAgICAJCQkJCQkJCQlcDQogID4gKyAgICAgIGlmIChjb252ZXJ0 ZXIpCQkJCQkJCVwNCiAgPiArCXZhbHVlID0gY29udmVydGVyKHZhbHVlKTsJ CQkJCVwNCiAgPiArICAgICAgCQkJCQkJCQkJXA0KICA+ICsgICAgICBWRUNf c2FmZV9wdXNoIChULCByZXN1bHQsIHZhbHVlKTsJCQkJCVwNCiAgPiArICAg IH0JCQkJCQkJCQlcDQogID4gKyAgCQkJCQkJCQkJXA0KICA+ICsgIGRpc2Nh cmRfY2xlYW51cHMgKGNsZWFudXApOwkJCQkJCVwNCiAgPiArICByZXR1cm4g cmVzdWx0OwkJCQkJCQlcDQogID4gKyAgCQkJCQkJCQkJXA0KICA+ICt9CQkJ CQkJCQkJXA0KICA+ICtzdHJ1Y3QgdmVjX3N3YWxsb3dfdHJhaWxpbmdfc2Vt aQ0KICA+ICsNCiAgPiArDQogID4gICNlbmRpZiAvKiBHREJfUFlUSE9OX0lO VEVSTkFMX0ggKi8NCiAgPiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRo b24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMNCiAgPiBpbmRleCA2Y2JlNWYw Li43OTIzNjI3IDEwMDY0NA0KICA+IC0tLSBhL2dkYi9weXRob24vcHl0aG9u LmMNCiAgPiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jDQogID4gQEAgLTMz LDYgKzMzLDggQEANCiAgPiAgI2luY2x1ZGUgInB5dGhvbi5oIg0KICA+ICAj aW5jbHVkZSAiZXh0ZW5zaW9uLXByaXYuaCINCiAgPiAgI2luY2x1ZGUgImNs aS9jbGktdXRpbHMuaCINCiAgPiArI2luY2x1ZGUgInhtbC1zeXNjYWxsLmgi DQogID4gKyNpbmNsdWRlICJjb21tb24vZ2RiX3NpZ25hbHMuaCINCiAgPiAg I2luY2x1ZGUgPGN0eXBlLmg+DQogID4gICNpbmNsdWRlICJsb2NhdGlvbi5o Ig0KICA+DQogID4gQEAgLTcxNiw2ICs3MTgsMTEzIEBAIGdkYnB5X3NvbGli X25hbWUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykNCiAgPiAg ICByZXR1cm4gc3RyX29iajsNCiAgPiAgfQ0KICA+DQogID4gKy8qIFB5dGhv biBmdW5jdGlvbiB0byBvYnRhaW4gdGhlIG5hbWUgb2YgYSBzeXNjYWxsIGdp dmVuIGl0cyBudW1iZXIgKi8NCg0KcGVyaW9kIGF0IGVuZCBvZiBzZW50ZW5j ZXMsIHBsdXMgdHdvIHNwYWNlcyBhZnRlciB0aGF0DQoNCiAgPiArDQogID4g K3N0YXRpYyBQeU9iamVjdCAqDQogID4gK2dkYnB5X2dldF9zeXNjYWxsX25h bWUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJnKQ0KICA+ICt7DQog ID4gKyAgbG9uZyBzeXNjYWxsX251bWJlcjsNCiAgPiArICBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCA9IGdldF9jdXJyZW50X2FyY2ggKCk7DQogID4gKyAg c3RydWN0IHN5c2NhbGwgczsNCiAgPiArDQogID4gKyAgaWYgKFB5SW50X0No ZWNrIChhcmcpICYmIGdkYl9weV9pbnRfYXNfbG9uZyAoYXJnLCAmc3lzY2Fs bF9udW1iZXIpKQ0KICA+ICsgICAgew0KICA+ICsgICAgICBnZXRfc3lzY2Fs bF9ieV9udW1iZXIgKGdkYmFyY2gsIHN5c2NhbGxfbnVtYmVyLCAmcyk7DQog ID4gKw0KICA+ICsgICAgICBpZiAoIXMubmFtZSB8fCBzdHJsZW4gKHMubmFt ZSkgPT0gMCkNCg0KRG9uJ3QgdXNlICEgdG8gY2hlY2sgZm9yIG51bGwgcG9p bnRlcnMsIGNvbXBhcmUgd2l0aCBOVUxMLg0KcmVmOiAgDQpodHRwczovL3Nv dXJjZXdhcmUub3JnL2dkYi93aWtpL0ludGVybmFscyUyMEdEQi1DLUNvZGlu Zy1TdGFuZGFyZHMjTlVMTF9Jc19Ob3RfWmVybw0KDQogID4gKwlQeV9SRVRV Uk5fTk9ORTsNCiAgPiArDQogID4gKyAgICAgIHJldHVybiBQeVN0cmluZ19E ZWNvZGUgKHMubmFtZSwgc3RybGVuIChzLm5hbWUpLCBob3N0X2NoYXJzZXQg KCksICANCk5VTEwpOw0KDQpVc2UgaG9zdF9zdHJpbmdfdG9fcHl0aG9uX3N0 cmluZywgaXQgZXhpc3RzIG5vdy4NCg0KICA+ICsgICAgfQ0KICA+ICsNCiAg PiArICBQeUVycl9TZXRTdHJpbmcgKFB5RXhjX1J1bnRpbWVFcnJvciwgIkFy Z3VtZW50IGlzIG5vdCBhIG51bWJlci4iKTsNCg0KUHlFeGNfVHlwZUVycm9y DQoNClBsdXMgZ2RiX3B5X2ludF9hc19sb25nIHdpbGwgaGF2ZSBhbHJlYWR5 IHNldCB0aGUgZXJyb3IgY29uZGl0aW9uLA0Kc28geW91IGRvbid0IHdhbnQg dG8gY2xvYmJlciB0aGF0IGhlcmUuDQoNCiAgIGlmICghUHlJbnRfQ2hlY2sg KGFyZykpDQogICAgIHsNCiAgICAgICBQeUVycl9TZXRTdHJpbmcgKFB5RXhj X1R5cGVFcnJvciwgIkFyZ3VtZW50IGlzIG5vdCBhbiBpbnRlZ2VyLiIpOw0K ICAgICAgIHJldHVybiBOVUxMOw0KICAgICB9DQogICBpZiAoIWdkYl9weV9p bnRfYXNfbG9uZyAoYXJnLCAmc3lzY2FsbF9udW1iZXIpKQ0KICAgICByZXR1 cm4gTlVMTA0KDQogICAuLi4NCg0KICA+ICsgIHJldHVybiBOVUxMOw0KICA+ ICt9DQogID4gKw0KICA+ICsvKiBQeXRob24gZnVuY3Rpb24gdG8gb2J0YWlu IHRoZSBudW1iZXIgb2YgYSBzeXNjYWxsIGdpdmVuIGl0cyBuYW1lICovDQog ID4gKw0KICA+ICtzdGF0aWMgUHlPYmplY3QgKg0KICA+ICtnZGJweV9nZXRf c3lzY2FsbF9udW1iZXIgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn KQ0KICA+ICt7DQogID4gKyAgY29uc3QgY2hhciAqc3lzY2FsbF9uYW1lID0g TlVMTDsNCiAgPiArICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9j dXJyZW50X2FyY2ggKCk7DQogID4gKyAgc3RydWN0IHN5c2NhbGwgczsNCiAg PiArDQogID4gKyAgaWYgKCFQeVN0cmluZ19DaGVjayAoYXJnKSkNCiAgPiAr ICAgIHsNCiAgPiArICAgICAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19SdW50 aW1lRXJyb3IsICJBcmd1bWVudCBpcyBub3QgYSBzdHJpbmcuIik7DQoNClB5 RXhjX1R5cGVFcnJvcg0KDQogID4gKyAgICAgIHJldHVybiBOVUxMOw0KICA+ ICsgICAgfQ0KICA+ICsNCiAgPiArICBzeXNjYWxsX25hbWUgPSBQeUJ5dGVz X0FzU3RyaW5nIChhcmcpOw0KDQpUaGUgcmVzdCBvZiB0aGUgY29kZSB1c2Vz IFB5U3RyaW5nX0Zyb21TdHJpbmcuDQpJIHJlYWxpemUgdGhpcyBpcyBhIHB5 dGhvbiAyIHZzIDMgdGhpbmcsDQpidXQgQ29uc2lzdGVuY3kgSXMgR29vZCwg c28gbGV0J3MgZ28gd2l0aA0KUHlTdHJpbmdfRnJvbVN0cmluZy4NCg0KICA+ ICsNCiAgPiArICBpZiAoc3lzY2FsbF9uYW1lID09IE5VTEwpDQogID4gKyAg ICBQeV9SRVRVUk5fTk9ORTsNCiAgPiArDQogID4gKyAgZ2V0X3N5c2NhbGxf YnlfbmFtZSAoZ2RiYXJjaCwgc3lzY2FsbF9uYW1lLCAmcyk7DQogID4gKw0K ICA+ICsgIGlmIChzLm51bWJlciA9PSBVTktOT1dOX1NZU0NBTEwpDQogID4g KyAgICBQeV9SRVRVUk5fTk9ORTsNCiAgPiArDQogID4gKyAgcmV0dXJuIFB5 SW50X0Zyb21Mb25nIChzLm51bWJlcik7DQogID4gKw0KDQpyZW1vdmUgYmxh bmsgbGluZQ0KDQogID4gK30NCiAgPiArDQoNCnJlbW92ZSBleHRyYSBibGFu ayBsaW5lDQoNCiAgPiArDQogID4gKy8qIFB5dGhvbiBmdW5jdGlvbiB0byBv YnRhaW4gdGhlIG5hbWUgb2YgYSBzaWduYWwgZ2l2ZW4gaXRzIG51bWJlciAq Lw0KICA+ICsNCiAgPiArc3RhdGljIFB5T2JqZWN0ICoNCiAgPiArZ2RicHlf Z2V0X3NpZ25hbF9uYW1lIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFy ZykNCiAgPiArew0KICA+ICsgIGxvbmcgc2lnbmFsX251bWJlcjsNCiAgPiAr ICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9jdXJyZW50X2FyY2gg KCk7DQogID4gKyAgY29uc3QgY2hhciAqcyA9IE5VTEw7DQogID4gKyAgZW51 bSBnZGJfc2lnbmFsIHNpZ25hbCA9IDA7DQogID4gKw0KICA+ICsgIGlmIChQ eUludF9DaGVjayAoYXJnKSAmJiBnZGJfcHlfaW50X2FzX2xvbmcgKGFyZywg JnNpZ25hbF9udW1iZXIpKQ0KDQpTZWUgYWJvdmUuDQoNCiAgPiArICAgIHsN CiAgPiArICAgICAgc2lnbmFsID0gZ2RiX3NpZ25hbF9mcm9tX2hvc3QgKHNp Z25hbF9udW1iZXIpOw0KICA+ICsgICAgICBzID0gZ2RiX3NpZ25hbF90b19u YW1lIChzaWduYWwpOw0KICA+ICsNCiAgPiArICAgICAgaWYgKCFzIHx8IHN0 cmxlbiAocykgPT0gMCkNCg0KcmVmOiAgDQpodHRwczovL3NvdXJjZXdhcmUu b3JnL2dkYi93aWtpL0ludGVybmFscyUyMEdEQi1DLUNvZGluZy1TdGFuZGFy ZHMjTlVMTF9Jc19Ob3RfWmVybw0KDQogID4gKwlQeV9SRVRVUk5fTk9ORTsN CiAgPiArDQogID4gKyAgICAgIHJldHVybiBQeVN0cmluZ19EZWNvZGUgKHMs IHN0cmxlbiAocyksIGhvc3RfY2hhcnNldCAoKSwgTlVMTCk7DQoNClVzZSBo b3N0X3N0cmluZ190b19weXRob25fc3RyaW5nLCBpdCBleGlzdHMgbm93Lg0K DQogID4gKyAgICB9DQogID4gKw0KICA+ICsgIFB5RXJyX1NldFN0cmluZyAo UHlFeGNfUnVudGltZUVycm9yLCAiQXJndW1lbnQgaXMgbm90IGEgbnVtYmVy LiIpOw0KICA+ICsgIHJldHVybiBOVUxMOw0KICA+ICt9DQogID4gKw0KICA+ ICsvKiBQeXRob24gZnVuY3Rpb24gdG8gb2J0YWluIHRoZSBudW1iZXIgb2Yg YSBzaWduYWwgZ2l2ZW4gaXRzIG5hbWUgKi8NCiAgPiArDQogID4gK3N0YXRp YyBQeU9iamVjdCAqDQogID4gK2dkYnB5X2dldF9zaWduYWxfbnVtYmVyIChQ eU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZykNCiAgPiArew0KICA+ICsg IGNvbnN0IGNoYXIgKnNpZ25hbF9uYW1lID0gTlVMTDsNCiAgPiArICBpbnQg c2lnbmFsX251bWJlciA9IDA7DQogID4gKyAgZW51bSBnZGJfc2lnbmFsIHNp Z25hbCA9IDA7DQogID4gKw0KICA+ICsgIGlmICghUHlTdHJpbmdfQ2hlY2sg KGFyZykpDQogID4gKyAgICB7DQogID4gKyAgICAgIFB5RXJyX1NldFN0cmlu ZyAoUHlFeGNfUnVudGltZUVycm9yLCAiQXJndW1lbnQgaXMgbm90IGEgc3Ry aW5nLiIpOw0KDQpQeUV4Y19UeXBlRXJyb3INCg0KICA+ICsgICAgICByZXR1 cm4gTlVMTDsNCiAgPiArICAgIH0NCiAgPiArDQogID4gKyAgc2lnbmFsX25h bWUgPSBQeUJ5dGVzX0FzU3RyaW5nIChhcmcpOw0KDQpQeVN0cmluZ19Gcm9t U3RyaW5nDQoNCiAgPiArDQogID4gKyAgaWYgKHNpZ25hbF9uYW1lID09IE5V TEwpDQogID4gKyAgICBQeV9SRVRVUk5fTk9ORTsNCiAgPiArDQogID4gKyAg c2lnbmFsID0gZ2RiX3NpZ25hbF9mcm9tX25hbWUgKHNpZ25hbF9uYW1lKTsN CiAgPiArICBzaWduYWxfbnVtYmVyID0gZ2RiX3NpZ25hbF90b19ob3N0IChz aWduYWwpOw0KICA+ICsNCiAgPiArICBpZiAoc2lnbmFsX251bWJlciA9PSAw KQ0KICA+ICsgICAgUHlfUkVUVVJOX05PTkU7DQogID4gKw0KICA+ICsgIHJl dHVybiBQeUludF9Gcm9tTG9uZyAoc2lnbmFsX251bWJlcik7DQogID4gK30N CiAgPiArDQogID4gIC8qIEEgUHl0aG9uIGZ1bmN0aW9uIHdoaWNoIGlzIGEg d3JhcHBlciBmb3IgZGVjb2RlX2xpbmVfMS4gICovDQogID4NCiAgPiAgc3Rh dGljIFB5T2JqZWN0ICoNCiAgPiBAQCAtMTgxOSw2ICsxOTI4LDcgQEAgbWVz c2FnZSA9PSBhbiBlcnJvciBtZXNzYWdlIHdpdGhvdXQgYSBzdGFjayB3aWxs ICANCmJlIHByaW50ZWQuIiksDQogID4gICAgICAgIHx8IGdkYnB5X2luaXRp YWxpemVfZXZlbnQgKCkgPCAwDQogID4gICAgICAgIHx8IGdkYnB5X2luaXRp YWxpemVfc3RvcF9ldmVudCAoKSA8IDANCiAgPiAgICAgICAgfHwgZ2RicHlf aW5pdGlhbGl6ZV9zaWduYWxfZXZlbnQgKCkgPCAwDQogID4gKyAgICAgIHx8 IGdkYnB5X2luaXRpYWxpemVfc3lzY2FsbF9ldmVudCAoKSA8IDANCiAgPiAg ICAgICAgfHwgZ2RicHlfaW5pdGlhbGl6ZV9icmVha3BvaW50X2V2ZW50ICgp IDwgMA0KICA+ICAgICAgICB8fCBnZGJweV9pbml0aWFsaXplX2NvbnRpbnVl X2V2ZW50ICgpIDwgMA0KICA+ICAgICAgICB8fCBnZGJweV9pbml0aWFsaXpl X2luZmVyaW9yX2NhbGxfcHJlX2V2ZW50ICgpIDwgMA0KICA+IEBAIC0yMDgx LDYgKzIxOTEsMTggQEAgUmV0dXJuIHRoZSBzZWxlY3RlZCBpbmZlcmlvciBv YmplY3QuIiB9LA0KICA+ICAgIHsgImluZmVyaW9ycyIsIGdkYnB5X2luZmVy aW9ycywgTUVUSF9OT0FSR1MsDQogID4gICAgICAiaW5mZXJpb3JzICgpIC0+ IChnZGIuSW5mZXJpb3IsIC4uLikuXG5cDQogID4gIFJldHVybiBhIHR1cGxl IGNvbnRhaW5pbmcgYWxsIGluZmVyaW9ycy4iIH0sDQogID4gKyAgeyAiZ2V0 X3N5c2NhbGxfbmFtZSIsIGdkYnB5X2dldF9zeXNjYWxsX25hbWUsIE1FVEhf TywNCiAgPiArICAgICJnZXRfc3lzY2FsbF9uYW1lIChudW1iZXIpIC0+IHN0 cmluZy5cblwNCiAgPiArUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBzeXNjYWxs LiIgfSwNCiAgPiArICB7ICJnZXRfc3lzY2FsbF9udW1iZXIiLCBnZGJweV9n ZXRfc3lzY2FsbF9udW1iZXIsIE1FVEhfTywNCiAgPiArICAgICJnZXRfc3lz Y2FsbF9udW1iZXIgKHN0cmluZykgLT4gbnVtYmVyLlxuXA0KICA+ICtSZXR1 cm4gdGhlIHN5c2NhbGwgbnVtYmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNw ZWNpZmllZCBuYW1lLiIgfSwNCiAgPiArICB7ICJnZXRfc2lnbmFsX25hbWUi LCBnZGJweV9nZXRfc2lnbmFsX25hbWUsIE1FVEhfTywNCiAgPiArICAgICJn ZXRfc2lnbmFsX25hbWUgKG51bWJlcikgLT4gc3RyaW5nLlxuXA0KICA+ICtS ZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHNpZ25hbC4iIH0sDQogID4gKyAgeyAi Z2V0X3NpZ25hbF9udW1iZXIiLCBnZGJweV9nZXRfc2lnbmFsX251bWJlciwg TUVUSF9PLA0KICA+ICsgICAgImdldF9zaWduYWxfbnVtYmVyIChzdHJpbmcp IC0+IG51bWJlci5cblwNCiAgPiArUmV0dXJuIHRoZSBzaWduYWwgbnVtYmVy IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBuYW1lLiIgfSwNCiAg PiAgICB7TlVMTCwgTlVMTCwgMCwgTlVMTH0NCiAgPiAgfTsNCiAgPg0KICA+ IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYnJl YWtwb2ludC5leHAgIA0KYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt YnJlYWtwb2ludC5leHANCiAgPiBpbmRleCAwZGZjODQ1Li43NzJjMTYyIDEw MDY0NA0KICA+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1i cmVha3BvaW50LmV4cA0KICA+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1icmVha3BvaW50LmV4cA0KICA+IEBAIC00NjIsNiArNDYyLDEz NyBAQCBwcm9jIHRlc3RfYmtwdF90ZW1wb3JhcnkgeyB9IHsNCiAgPiAgICAg IH0NCiAgPiAgfQ0KICA+DQogID4gK3Byb2MgdGVzdF9jYXRjaHBvaW50cyB7 IH0gew0KICA+ICsgICAgZ2xvYmFsIHRlc3RmaWxlIGhleA0KICA+ICsNCiAg PiArICAgIHdpdGhfdGVzdF9wcmVmaXggdGVzdF9jYXRjaHBvaW50cyB7DQog ID4gKwkjIFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuDQogID4gKwljbGVhbl9y ZXN0YXJ0ICR7dGVzdGZpbGV9DQogID4gKw0KICA+ICsJaWYgIVtydW50b19t YWluXSB0aGVuIHsNCiAgPiArCSAgICBmYWlsICJDYW5ub3QgcnVuIHRvIG1h aW4uIg0KICA+ICsJICAgIHJldHVybiAwDQogID4gKwl9DQogID4gKw0KICA+ ICsJIyBDaGVjayBnZXRfe3NpZ25hbCxzeXNjYWxsfV97bmFtZSxudW1iZXJ9 IGdpdmVuIHNlbnNpYmxlIHJlc3VsdHMNCiAgPiArCWdkYl90ZXN0ICJweXRo b24gcHJpbnQgIA0KZ2RiLmdldF9zeXNjYWxsX25hbWUoZ2RiLmdldF9zeXNj YWxsX251bWJlcihcIndyaXRlXCIpKSA9PSBcIndyaXRlXCIiIFwNCiAgPiAr CSAgICAiVHJ1ZSIgIlJvdW5kLXRyaXAgY2hlY2sgZm9yIHN5c2NhbGwiDQog ID4gKwlnZGJfdGVzdCAicHl0aG9uIHByaW50ICANCmdkYi5nZXRfc2lnbmFs X25hbWUoZ2RiLmdldF9zaWduYWxfbnVtYmVyKFwiU0lHVVNSMlwiKSkgPT0g XCJTSUdVU1IyXCIiIFwNCiAgPiArCSAgICAiVHJ1ZSIgIlJvdW5kLXRyaXAg Y2hlY2sgZm9yIHNpZ25hbCINCg0KV2hldGhlciBhbnkgcGFydGljdWxhciBz eXN0ZW0gaXMgZ29pbmcgdG8gaGF2ZSB3cml0ZSBvciBTSUdVU1IyDQppcyBw cm9iYWJseSBkZWJhdGFibGUuDQpJIGRvbid0IGhhdmUgYSBzdHJvbmcgb3Bp bmlvbiBvbiB3aGF0IHRvIGRvIGhlcmUsIG1heWJlIG90aGVycyBkby4NCkkg c2VlIHB5LWV2c2lnbmFsLmV4cCB1c2VzIFNJR1VTUjEgc28gbWF5YmUgdXNp bmcgU0lHVVNSMiBoZXJlIGlzIG9rLg0KDQogID4gKw0KICA+ICsJIyBDcmVh dGUgYSBjYXRjaHBvaW50IG9uIHRoZSB3cml0ZSBzeXNjYWxsDQogID4gKwln ZGJfdGVzdCAiY2F0Y2ggc3lzY2FsbCB3cml0ZSIgXA0KICA+ICsJICAgICJD YXRjaHBvaW50LipcKHdyaXRlXCkuKiIgImNhdGNoIHN5c2NhbGwgd3JpdGUi DQogID4gKw0KICA+ICsJIyBDaGVjayB0aGF0IHRoZSBjYXRjaHBvaW50IGV4 aXN0cyBhbmQgaGFzIHRoZSBleHBlY3RlZCBwcm9wZXJ0aWVzDQogID4gKwln ZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gYmxpc3QgPSBnZGIuYnJl YWtwb2ludHMoKSIgXA0KICA+ICsJICAgICJHZXQgQnJlYWtwb2ludCBMaXN0 IiAwDQogID4gKwlnZGJfdGVzdCAicHl0aG9uIHByaW50IChsZW4oYmxpc3Qp KSIgXA0KICA+ICsJICAgICIyIiAiQ2hlY2sgZm9yIHR3byBicmVha3BvaW50 cyINCiAgPiArCWdkYl90ZXN0ICJweXRob24gcHJpbnQgKGJsaXN0XFsxXF0p IiBcDQogID4gKwkgICAgIjxnZGIuQnJlYWtwb2ludCBvYmplY3QgYXQgJGhl eD4iICJDaGVjayBvYmogZXhpc3QiDQogID4gKwlnZGJfdGVzdCAicHl0aG9u IHByaW50IChibGlzdFxbMVxdLnR5cGUgPT0gZ2RiLkJQX0NBVENIUE9JTlQp IiBcDQogID4gKwkgICAgIlRydWUiICJDaGVjayB0aGUgYnJlYWtwb2ludCBp cyBhIGNhdGNocG9pbnQiDQogID4gKwlnZGJfdGVzdCAicHl0aG9uIHByaW50 IChibGlzdFxbMVxdLmN0X3R5cGUgPT0gZ2RiLkNUX1NZU0NBTEwpIiBcDQog ID4gKwkgICAgIlRydWUiICJDaGVjayB0aGUgYnJlYWtwb2ludCBpcyBhIHN5 c2NhbGwgY2F0Y2hwb2ludCINCiAgPiArCWdkYl90ZXN0ICJweXRob24gcHJp bnQgKG1hcChnZGIuZ2V0X3N5c2NhbGxfbmFtZSwgYmxpc3RcWzFcXS5maWx0 ZXIpKSIgIA0KXA0KICA+ICsJICAgICJcXFxbJ3dyaXRlJ1xcXF0iICJDaGVj ayBjb3JyZWN0bmVzcyBvZiB0aGUgZmlsdGVyIg0KICA+ICsNCiAgPiArCSMg Q3JlYXRlIGEgY2F0Y2hwb2ludCBmb3IgdGhlIFNJR1VTUjEgc2lnbmFsDQog ID4gKwlnZGJfdGVzdCAiY2F0Y2ggc2lnbmFsIFNJR1VTUjEiICJDYXRjaHBv aW50LipcKHNpZ25hbCAgDQpTSUdVU1IxXCkuKiIgImNhdGNoIHNpZ25hbCBT SUdVU1IxIg0KICA+ICsNCiAgPiArCSMgQ2hlY2sgdGhhdCB0aGUgY2F0Y2hw b2ludCBleGlzdHMgYW5kIGhhcyB0aGUgZXhwZWN0ZWQgcHJvcGVydGllcw0K ICA+ICsJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAicHl0aG9uIGJsaXN0ID0g Z2RiLmJyZWFrcG9pbnRzKCkiIFwNCiAgPiArCSAgICAiR2V0IEJyZWFrcG9p bnQgTGlzdCIgMA0KICA+ICsJZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAobGVu KGJsaXN0KSkiIFwNCiAgPiArCSAgICAiMyIgIkNoZWNrIGZvciB0aHJlZSBi cmVha3BvaW50cyINCiAgPiArCWdkYl90ZXN0ICJweXRob24gcHJpbnQgKGJs aXN0XFsyXF0pIiBcDQogID4gKwkgICAgIjxnZGIuQnJlYWtwb2ludCBvYmpl Y3QgYXQgJGhleD4iICJDaGVjayBvYmogZXhpc3QiDQogID4gKwlnZGJfdGVz dCAicHl0aG9uIHByaW50IChibGlzdFxbMlxdLnR5cGUgPT0gZ2RiLkJQX0NB VENIUE9JTlQpIiBcDQogID4gKwkgICAgIlRydWUiICJDaGVjayB0aGUgYnJl YWtwb2ludCBpcyBhIGNhdGNocG9pbnQiDQogID4gKwlnZGJfdGVzdCAicHl0 aG9uIHByaW50IChibGlzdFxbMlxdLmN0X3R5cGUgPT0gZ2RiLkNUX1NJR05B TCkiIFwNCiAgPiArCSAgICAiVHJ1ZSIgIkNoZWNrIHRoZSBicmVha3BvaW50 IGlzIGEgc2lnbmFsIGNhdGNocG9pbnQiDQogID4gKwlnZGJfdGVzdCAicHl0 aG9uIHByaW50IChtYXAoZ2RiLmdldF9zaWduYWxfbmFtZSwgYmxpc3RcWzJc XS5maWx0ZXIpKSIgXA0KICA+ICsJICAgICJcXFxbJ1NJR1VTUjEnXFxcXSIg IkNoZWNrIGNvcnJlY3RuZXNzIG9mIHRoZSBmaWx0ZXIiDQogID4gKwlnZGJf dGVzdCAicHl0aG9uIHByaW50IChibGlzdFxbMlxdLmludGVybmFsX3NpZ25h bHMpIiBcDQogID4gKwkgICAgIkZhbHNlIiAiQ2hlY2sgY29ycmVjdG5lc3Mg b2YgaW50ZXJuYWxfc2lnbmFscyINCiAgPiArDQogID4gKwkjIENyZWF0ZSBh IGNhdGNocG9pbnQgZm9yIGFsbCB0aGUgc2lnbmFscywgaW50ZXJuYWwgb25l cyBpbmNsdWRlZA0KICA+ICsJZ2RiX3Rlc3QgImNhdGNoIHNpZ25hbCBhbGwi ICJDYXRjaHBvaW50LipcKGFueSBzaWduYWxcKS4qIiAiY2F0Y2ggIA0Kc2ln bmFsIGFsbCINCiAgPiArDQogID4gKwkjIENoZWNrIHRoYXQgdGhlIGNhdGNo cG9pbnQgZXhpc3RzIGFuZCBoYXMgdGhlIGV4cGVjdGVkIHByb3BlcnRpZXMN CiAgPiArCWdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBibGlzdCA9 IGdkYi5icmVha3BvaW50cygpIiBcDQogID4gKwkgICAgIkdldCBCcmVha3Bv aW50IExpc3QiIDANCiAgPiArCWdkYl90ZXN0ICJweXRob24gcHJpbnQgKGxl bihibGlzdCkpIiBcDQogID4gKwkgICAgIjQiICJDaGVjayBmb3IgdGhyZWUg YnJlYWtwb2ludHMiDQogID4gKwlnZGJfdGVzdCAicHl0aG9uIHByaW50IChi bGlzdFxbM1xdKSIgXA0KICA+ICsJICAgICI8Z2RiLkJyZWFrcG9pbnQgb2Jq ZWN0IGF0ICRoZXg+IiAiQ2hlY2sgb2JqIGV4aXN0Ig0KICA+ICsJZ2RiX3Rl c3QgInB5dGhvbiBwcmludCAoYmxpc3RcWzNcXS5jdF90eXBlID09IGdkYi5D VF9TSUdOQUwpIiBcDQogID4gKwkgICAgIlRydWUiICJDaGVjayB0aGUgYnJl YWtwb2ludCBpcyBhIHNpZ25hbCBjYXRjaHBvaW50Ig0KICA+ICsJZ2RiX3Rl c3QgInB5dGhvbiBwcmludCAoYmxpc3RcWzNcXS50eXBlID09IGdkYi5CUF9D QVRDSFBPSU5UKSIgXA0KICA+ICsJICAgICJUcnVlIiAiQ2hlY2sgdGhlIGJy ZWFrcG9pbnQgaXMgYSBjYXRjaHBvaW50Ig0KICA+ICsJZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCAoYmxpc3RcWzNcXS5pbnRlcm5hbF9zaWduYWxzKSIgXA0K ICA+ICsJICAgICJUcnVlIiAiQ2hlY2sgY29ycmVjdG5lc3Mgb2YgaW50ZXJu YWxfc2lnbmFscyINCiAgPiArICAgIH0NCiAgPiArfQ0KICA+ICsNCiAgPiAr cHJvYyB0ZXN0X3N5c2NhbGxfY2F0Y2hwb2ludCB7IH0gew0KICA+ICsgICAg Z2xvYmFsIHRlc3RmaWxlIGRlY2ltYWwNCiAgPiArDQogID4gKyAgICB3aXRo X3Rlc3RfcHJlZml4IHRlc3Rfc2lnbmFsX2NhdGNocG9pbnQgew0KICA+ICsJ IyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLg0KICA+ICsJY2xlYW5fcmVzdGFy dCAke3Rlc3RmaWxlfQ0KICA+ICsNCiAgPiArCWlmICFbcnVudG9fbWFpbl0g dGhlbiB7DQogID4gKwkgICAgZmFpbCAiQ2Fubm90IHJ1biB0byBtYWluLiIN CiAgPiArCSAgICByZXR1cm4gMA0KICA+ICsJfQ0KICA+ICsNCiAgPiArCSMg Q3JlYXRlIGEgc3lzY2FsbCBjYXRjaHBvaW50IGZyb20gUHl0aG9uIGZvciB3 cml0ZQ0KICA+ICsJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAicHl0aG9uIGNw MSA9IGdkYi5CcmVha3BvaW50KFwiXCIsICANCnR5cGU9Z2RiLkJQX0NBVENI UE9JTlQsIGN0X3R5cGU9Z2RiLkNUX1NZU0NBTEwsICANCmZpbHRlcj1cW2dk Yi5nZXRfc3lzY2FsbF9udW1iZXIoXCJ3cml0ZVwiKVxdKSIgXA0KICA+ICsJ ICAgICJDcmVhdGUgY2F0Y2hwb2ludCBmb3IgYSBzcGVjaWZpYyBzaWduYWwi IDANCiAgPiArCWdkYl90ZXN0ICJweXRob24gcHJpbnQgKGNwMSBpbiBnZGIu YnJlYWtwb2ludHMoKSkiICJUcnVlIiBcDQogID4gKwkgICAgIkNoZWNrIHRo ZSBjYXRjaHBvaW50IGhhcyBiZWVuIGluc2VydGVkIg0KICA+ICsJZ2RiX3Rl c3QgInB5dGhvbiBwcmludCAoY3AxLmN0X3R5cGUgPT0gZ2RiLkNUX1NZU0NB TEwpIiBcDQogID4gKwkgICAgIlRydWUiICJDaGVjayB0aGUgYnJlYWtwb2lu dCBpcyBhIHN5c2NhbGwgY2F0Y2hwb2ludCINCiAgPiArCWdkYl90ZXN0ICJw eXRob24gcHJpbnQgKG1hcChnZGIuZ2V0X3N5c2NhbGxfbmFtZSwgY3AxLmZp bHRlcikpIiBcDQogID4gKwkgICAgIlxcXFsnd3JpdGUnXFxcXSIgIkNoZWNr IGNvcnJlY3RuZXNzIG9mIHRoZSBmaWx0ZXIiDQogID4gKyAgICB9DQogID4g K30NCiAgPiArDQogID4gK3Byb2MgdGVzdF9zaWduYWxfY2F0Y2hwb2ludCB7 IH0gew0KICA+ICsgICAgZ2xvYmFsIHRlc3RmaWxlIGRlY2ltYWwNCiAgPiAr DQogID4gKyAgICB3aXRoX3Rlc3RfcHJlZml4IHRlc3Rfc2lnbmFsX2NhdGNo cG9pbnQgew0KICA+ICsJIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLg0KICA+ ICsJY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQ0KICA+ICsNCiAgPiArCWlm ICFbcnVudG9fbWFpbl0gdGhlbiB7DQogID4gKwkgICAgZmFpbCAiQ2Fubm90 IHJ1biB0byBtYWluLiINCiAgPiArCSAgICByZXR1cm4gMA0KICA+ICsJfQ0K ICA+ICsNCiAgPiArCSMgQ3JlYXRlIGEgc2lnbmFsIGNhdGNocG9pbnQgZnJv bSBQeXRob24gZm9yIGFsbCBzaWduYWxzIChpbnRlcm5hbA0KICA+ICsJIyBv bmVzIGluY2x1ZGVkKQ0KICA+ICsJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAi cHl0aG9uIGNwMSA9IGdkYi5CcmVha3BvaW50KFwiXCIsICANCnR5cGU9Z2Ri LkJQX0NBVENIUE9JTlQsIGN0X3R5cGU9Z2RiLkNUX1NJR05BTCwgaW50ZXJu YWxfc2lnbmFscz1UcnVlKSIgXA0KICA+ICsJICAgICJDcmVhdGUgY2F0Y2hw b2ludCBmb3IgYWxsIHNpZ25hbHMiIDANCiAgPiArCWdkYl90ZXN0ICJweXRo b24gcHJpbnQgKGNwMSBpbiBnZGIuYnJlYWtwb2ludHMoKSkiICJUcnVlIiBc DQogID4gKwkgICAgIkNoZWNrIHRoZSBjYXRjaHBvaW50IGhhcyBiZWVuIGlu c2VydGVkIg0KICA+ICsJZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBjcDEuaW50 ZXJuYWxfc2lnbmFscyIgIlRydWUiIFwNCiAgPiArCSAgICAiQ2hlY2sgaW50 ZXJuYWxfc2lnbmFscyB2YWx1ZSINCiAgPiArDQogID4gKwkjIENyZWF0ZSBh IHNpZ25hbCBjYXRjaHBvaW50IGZyb20gUHl0aG9uIGZvciBTSUdVU1IxDQog ID4gKwlnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gY3AyID0gZ2Ri LkJyZWFrcG9pbnQoXCJcIiwgIA0KdHlwZT1nZGIuQlBfQ0FUQ0hQT0lOVCwg Y3RfdHlwZT1nZGIuQ1RfU0lHTkFMLCAgDQpmaWx0ZXI9XFtnZGIuZ2V0X3Np Z25hbF9udW1iZXIoXCJTSUdVU1IxXCIpXF0pIiBcDQogID4gKwkgICAgIkNy ZWF0ZSBjYXRjaHBvaW50IGZvciBhIHNwZWNpZmljIHNpZ25hbCIgMA0KICA+ ICsJZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoY3AyIGluIGdkYi5icmVha3Bv aW50cygpKSIgIlRydWUiIFwNCiAgPiArCSAgICAiQ2hlY2sgdGhlIGNhdGNo cG9pbnQgaGFzIGJlZW4gaW5zZXJ0ZWQiDQogID4gKwlnZGJfdGVzdCAicHl0 aG9uIHByaW50IGNwMi5pbnRlcm5hbF9zaWduYWxzIiAiRmFsc2UiIFwNCiAg PiArCSAgICAiQ2hlY2sgaW50ZXJuYWxfc2lnbmFscyB2YWx1ZSINCiAgPiAr CWdkYl90ZXN0ICJweXRob24gcHJpbnQgKG1hcChnZGIuZ2V0X3NpZ25hbF9u YW1lLCBjcDIuZmlsdGVyKSkiIFwNCiAgPiArCSAgICAiXFxcWydTSUdVU1Ix J1xcXF0iICJDaGVjayBjb3JyZWN0bmVzcyBvZiB0aGUgZmlsdGVyIg0KICA+ ICsgICAgfQ0KICA+ICt9DQogID4gKw0KICA+ICB0ZXN0X2JrcHRfYmFzaWMN CiAgPiAgdGVzdF9ia3B0X2RlbGV0aW9uDQogID4gIHRlc3RfYmtwdF9jb25k X2FuZF9jbWRzDQogID4gQEAgLTQ3MCwzICs2MDEsNiBAQCB0ZXN0X3dhdGNo cG9pbnRzDQogID4gIHRlc3RfYmtwdF9pbnRlcm5hbA0KICA+ICB0ZXN0X2Jr cHRfZXZhbF9mdW5jcw0KICA+ICB0ZXN0X2JrcHRfdGVtcG9yYXJ5DQogID4g K3Rlc3RfY2F0Y2hwb2ludHMNCiAgPiArdGVzdF9zeXNjYWxsX2NhdGNocG9p bnQNCiAgPiArdGVzdF9zaWduYWxfY2F0Y2hwb2ludA0KICA+IGRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZlbnRzLnB5ICAN CmIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5weQ0KICA+ IGluZGV4IGQ3ZmVmZTAuLmMxNjZkMTkgMTAwNjQ0DQogID4gLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2ZW50cy5weQ0KICA+ICsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldmVudHMucHkNCiAgPiBA QCAtMTcsMTkgKzE3LDE5IEBADQogID4gICMgcHJpbnRlcnMuDQogID4gIGlt cG9ydCBnZGINCiAgPg0KICA+IC1kZWYgc2lnbmFsX3N0b3BfaGFuZGxlciAo ZXZlbnQpOg0KICA+ICtkZWYgc3RvcF9oYW5kbGVyIChldmVudCk6DQogID4g ICAgICBpZiAoaXNpbnN0YW5jZSAoZXZlbnQsIGdkYi5TdG9wRXZlbnQpKToN CiAgPiAgICAgICAgICBwcmludCAoImV2ZW50IHR5cGU6IHN0b3AiKQ0KICA+ ICsNCiAgPiAgICAgIGlmIChpc2luc3RhbmNlIChldmVudCwgZ2RiLlNpZ25h bEV2ZW50KSk6DQogID4gICAgICAgICAgcHJpbnQgKCJzdG9wIHJlYXNvbjog c2lnbmFsIikNCiAgPiAgICAgICAgICBwcmludCAoInN0b3Agc2lnbmFsOiAl cyIgJSAoZXZlbnQuc3RvcF9zaWduYWwpKQ0KICA+ICAgICAgICAgIGlmICgg ZXZlbnQuaW5mZXJpb3JfdGhyZWFkIGlzIG5vdCBOb25lKSA6DQogID4gICAg ICAgICAgICAgIHByaW50ICgidGhyZWFkIG51bTogJXMiICUgKGV2ZW50Lmlu ZmVyaW9yX3RocmVhZC5udW0pKQ0KICA+IC0NCiAgPiAtZGVmIGJyZWFrcG9p bnRfc3RvcF9oYW5kbGVyIChldmVudCk6DQogID4gLSAgICBpZiAoaXNpbnN0 YW5jZSAoZXZlbnQsIGdkYi5TdG9wRXZlbnQpKToNCiAgPiAtICAgICAgICBw cmludCAoImV2ZW50IHR5cGU6IHN0b3AiKQ0KICA+IC0gICAgaWYgKGlzaW5z dGFuY2UgKGV2ZW50LCBnZGIuQnJlYWtwb2ludEV2ZW50KSk6DQogID4gKyAg ICBlbGlmIChpc2luc3RhbmNlIChldmVudCwgZ2RiLlN5c2NhbGxFdmVudCkp Og0KICA+ICsgICAgICAgIHByaW50ICgic3RvcCByZWFzb246IHN5c2NhbGwi KQ0KICA+ICsgICAgICAgIHByaW50ICgic3RvcCBzeXNjYWxsOiAlZCIgJSAo ZXZlbnQuc3RvcF9zeXNjYWxsKSkNCiAgPiArICAgIGVsaWYgKGlzaW5zdGFu Y2UgKGV2ZW50LCBnZGIuQnJlYWtwb2ludEV2ZW50KSk6DQogID4gICAgICAg ICAgcHJpbnQgKCJzdG9wIHJlYXNvbjogYnJlYWtwb2ludCIpDQogID4gICAg ICAgICAgcHJpbnQgKCJmaXJzdCBicmVha3BvaW50IG51bWJlcjogJXMiICUg IA0KKGV2ZW50LmJyZWFrcG9pbnQubnVtYmVyKSkNCiAgPiAgICAgICAgICBm b3IgYnAgaW4gZXZlbnQuYnJlYWtwb2ludHM6DQogID4gQEAgLTkzLDggKzkz LDcgQEAgY2xhc3MgdGVzdF9ldmVudHMgKGdkYi5Db21tYW5kKToNCiAgPiAg ICAgICAgICBnZGIuQ29tbWFuZC5fX2luaXRfXyAoc2VsZiwgInRlc3QtZXZl bnRzIiwgZ2RiLkNPTU1BTkRfU1RBQ0spDQogID4NCiAgPiAgICAgIGRlZiBp bnZva2UgKHNlbGYsIGFyZywgZnJvbV90dHkpOg0KICA+IC0gICAgICAgIGdk Yi5ldmVudHMuc3RvcC5jb25uZWN0IChzaWduYWxfc3RvcF9oYW5kbGVyKQ0K ICA+IC0gICAgICAgIGdkYi5ldmVudHMuc3RvcC5jb25uZWN0IChicmVha3Bv aW50X3N0b3BfaGFuZGxlcikNCiAgPiArICAgICAgICBnZGIuZXZlbnRzLnN0 b3AuY29ubmVjdCAoc3RvcF9oYW5kbGVyKQ0KICA+ICAgICAgICAgIGdkYi5l dmVudHMuZXhpdGVkLmNvbm5lY3QgKGV4aXRfaGFuZGxlcikNCiAgPiAgICAg ICAgICBnZGIuZXZlbnRzLmNvbnQuY29ubmVjdCAoY29udGludWVfaGFuZGxl cikNCiAgPiAgICAgICAgICBnZGIuZXZlbnRzLmluZmVyaW9yX2NhbGwuY29u bmVjdCAoaW5mZXJpb3JfY2FsbF9oYW5kbGVyKQ0KICA+IGRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZzaWduYWwuZXhwICAN CmIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2c2lnbmFsLmV4cA0K ICA+IGluZGV4IGVhN2I3M2IuLmQ4NTcxZDMgMTAwNjQ0DQogID4gLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWV2c2lnbmFsLmV4cA0KICA+ ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldnNpZ25hbC5l eHANCiAgPiBAQCAtMzgsNyArMzgsNyBAQCBnZGJfdGVzdF9ub19vdXRwdXQg InNldCBub24tc3RvcCBvbiINCiAgPg0KICA+ICBnZGJfcnVuX2NtZA0KICA+ ICBnZGJfdGVzdF9tdWx0aXBsZSAiIiAiU2lnbmFsIFRocmVhZCAzIiAgew0K ICA+IC0gICAgLXJlICJldmVudCB0eXBlOiBzdG9wXHJcbnN0b3AgcmVhc29u OiBzaWduYWxcclxuc3RvcCBzaWduYWw6ICANClNJR1VTUjFcclxudGhyZWFk IG51bTogM1xyXG5ldmVudCB0eXBlOiBzdG9wXHJcbi4qJGdkYl9wcm9tcHQg JCIgew0KICA+ICsgICAgLXJlICJldmVudCB0eXBlOiBzdG9wXHJcbnN0b3Ag cmVhc29uOiBzaWduYWxcclxuc3RvcCBzaWduYWw6ICANClNJR1VTUjFcclxu dGhyZWFkIG51bTogM1xyXG4kZ2RiX3Byb21wdCAkIiB7DQogID4gICAgICAg ICAgcGFzcyAidGhyZWFkIDMgd2FzIHNpZ25hbGVkIg0KICA+ICAgICAgfQ0K ICA+ICAgICAgLXJlICJUaGUgdGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgcnVu bmluZyBpbiBub24tc3RvcCBtb2RlIiAgew0KICA+IGRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZXZzeXNjYWxsLmV4cCAgDQpi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1ldnN5c2NhbGwuZXhwDQog ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgPiBpbmRleCAwMDAwMDAwLi41 MDQwMDg5DQogID4gLS0tIC9kZXYvbnVsbA0KICA+ICsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1ldnN5c2NhbGwuZXhwDQogID4gQEAgLTAs MCArMSw0MSBAQA0KICA+ICsjIENvcHlyaWdodCAoQykgMjAxMC0yMDE1IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KICA+ICsNCiAgPiArIyBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICA+ICsjIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5DQogID4gKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCiAgPiAr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KICA+ICsj DQogID4gKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQogID4gKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YNCiAgPiArIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQogID4gKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiAg PiArIw0KICA+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogID4gKyMgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQogID4gKw0KICA+ICtsb2FkX2xpYiBn ZGItcHl0aG9uLmV4cA0KICA+ICsNCiAgPiArc3RhbmRhcmRfdGVzdGZpbGUg cHktdmFsdWUuYw0KICA+ICtzZXQgcHlmaWxlICR7c3JjZGlyfS8ke3N1YmRp cn0vcHktZXZlbnRzLnB5DQogID4gKw0KICA+ICtpZiB7W2dkYl9jb21waWxl ICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9 IiAgDQpleGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0gew0KICA+ICsgICAg cmV0dXJuIC0xDQogID4gK30NCiAgPiArY2xlYW5fcmVzdGFydCAkdGVzdGZp bGUNCiAgPiArDQogID4gK2lmIHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsg Y29udGludWUgfQ0KICA+ICsNCiAgPiArDQogID4gK2dkYl90ZXN0ICJjYXRj aCBzeXNjYWxsIHdyaXRlIiAiQ2F0Y2hwb2ludC4qXCh3cml0ZVwpLioiICJj YXRjaCBzeXNjYWxsICANCndyaXRlIg0KICA+ICsNCiAgPiArZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJweXRob24gZXhlYyAob3BlbiAoJyR7cHlmaWxlfScpLnJl YWQgKCkpIiAiIg0KICA+ICsNCiAgPiArZ2RiX3Rlc3QgInRlc3QtZXZlbnRz IiAiRXZlbnQgdGVzdGVycyByZWdpc3RlcmVkLiINCiAgPiArDQogID4gK2dk Yl9ydW5fY21kDQogID4gKw0KICA+ICtnZGJfdGVzdF9tdWx0aXBsZSAiIiAi d3JpdGUgc3lzY2FsbCIgIHsNCiAgPiArICAgIC1yZSAiZXZlbnQgdHlwZTog c3RvcFxyXG5zdG9wIHJlYXNvbjogc3lzY2FsbFxyXG5zdG9wIHN5c2NhbGw6 ICANCjFcclxuJGdkYl9wcm9tcHQgJCIgew0KICA+ICsgICAgICAgIHBhc3Mg IndyaXRlIHN5c2NhbGwgcGVyZm9ybWVkIg0KICA+ICsgICAgfQ0KICA+ICt9 DQogID4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1ldnRocmVhZHMuZXhwICANCmIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWV2dGhyZWFkcy5leHANCiAgPiBpbmRleCBkZWVmZGE1Li5mYTM0NGE5 IDEwMDY0NA0KICA+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1ldnRocmVhZHMuZXhwDQogID4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWV2dGhyZWFkcy5leHANCiAgPiBAQCAtNzUsNyArNzUsNyBA QCBnZGJfdGVzdF9tdWx0aXBsZSAiY29udGludWUmIiAkdGVzdCB7DQogID4N CiAgPiAgc2V0IHRlc3QgInRocmVhZCAzIHdhcyBzaWduYWxlZCINCiAgPiAg Z2RiX3Rlc3RfbXVsdGlwbGUgIiIgJHRlc3Qgew0KICA+IC0gICAgLXJlICJl dmVudCB0eXBlOiBzdG9wXHJcbnN0b3AgcmVhc29uOiBzaWduYWxcclxuc3Rv cCBzaWduYWw6ICANClNJR1VTUjFcclxudGhyZWFkIG51bTogM1xyXG5ldmVu dCB0eXBlOiBzdG9wXHJcbiIgew0KICA+ICsgICAgLXJlICJldmVudCB0eXBl OiBzdG9wXHJcbnN0b3AgcmVhc29uOiBzaWduYWxcclxuc3RvcCBzaWduYWw6 ICANClNJR1VTUjFcclxudGhyZWFkIG51bTogM1xyXG4kIiB7DQogID4gICAg ICAgICAgcGFzcyAkdGVzdA0KICA+ICAgICAgfQ0KICA+ICB9DQogID4gLS0N CiAgPiAyLjYuMw0KICA+DQoNCi0tIA0KL2RqZQ0K >From gdb-patches-return-128212-listarch-gdb-patches=sources.redhat.com@sourceware.org Fri Dec 18 19:14:03 2015 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 72296 invoked by alias); 18 Dec 2015 19:14:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 72256 invoked by uid 89); 18 Dec 2015 19:14:02 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: mail-io0-f174.google.com Received: from mail-io0-f174.google.com (HELO mail-io0-f174.google.com) (209.85.223.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 18 Dec 2015 19:14:01 +0000 Received: by mail-io0-f174.google.com with SMTP id 186so100999727iow.0 for ; Fri, 18 Dec 2015 11:14:00 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=PVwCcD7H5IV0WmAmcp7Q1/6Wvg8Rqz2wbJQ38Kon+54=; b=Eq/+wlSOzqahBtCeegSXJ0VnhVL8ywZdgcdd+0Etv+UmPZwnDzmDod2FAEXf0ZFHBI yE3/3hcuIWgfwTiFsgiN9aN4E+QmqLNozfdHxEd+TSUPb6lXY4FsAw3em7YAiziaKWlc YdiTb3pUuy0Can8xa5CSEUTaCx8eOeZ28mXD/YtYrbOYpwZ/AV+Ks2yuodjvWWNEE/2a JnK/sz8aIllBC/gBfNOG4RF1lfOmuZUQCBFOegv4giLJSKZehINfLEXXtz5dm6I6bhiX iyOxYaYm6ZdUHgO1kHT/Py8DSO7AW0M01dYfUsP6BjR9R7ZHjwhhsv+Bp/N7QLC/hBkt RTSA== X-Gm-Message-State: ALoCoQn4k23elv8dt0Wqotvz4AZclnY4x5WGLnd2WaONCVEUjMZeNray3FCfknVBkNH4E2Of37M7u98vWKB1UiPJhPdN30svKn06lWqijtmBmcK8rBgSUwE= X-Received: by 10.107.167.148 with SMTP id q142mr6357463ioe.61.1450466038896; Fri, 18 Dec 2015 11:13:58 -0800 (PST) MIME-Version: 1.0 Received: by 10.64.228.200 with HTTP; Fri, 18 Dec 2015 11:13:19 -0800 (PST) In-Reply-To: <5672CE76.4010502@redhat.com> References: <1449793087-23933-1-git-send-email-palves@redhat.com> <5672CE76.4010502@redhat.com> From: Doug Evans Date: Fri, 18 Dec 2015 19:14:00 -0000 Message-ID: Subject: Re: [PATCH] Remove support for LinuxThreads and vendor 2.4 kernels w/ backported NPTL To: Pedro Alves Cc: gdb-patches Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-12/txt/msg00382.txt.bz2 Content-length: 280 On Thu, Dec 17, 2015 at 7:02 AM, Pedro Alves wrote: > On 12/11/2015 12:18 AM, Pedro Alves wrote: > >> This commit removes the support for older LinuxThreads, as well as the >> workarounds for vendor 2.4 kernels with NPTL backported. > > Now pushed. Yay. :-)