From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 42274A0524 for ; Tue, 1 Jun 2021 23:28:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 09E5C40689; Tue, 1 Jun 2021 23:28:35 +0200 (CEST) Received: from mail-vs1-f98.google.com (mail-vs1-f98.google.com [209.85.217.98]) by mails.dpdk.org (Postfix) with ESMTP id D8E3540041 for ; Tue, 1 Jun 2021 23:28:33 +0200 (CEST) Received: by mail-vs1-f98.google.com with SMTP id z15so3553583vsn.13 for ; Tue, 01 Jun 2021 14:28:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=awpClFtCNThRTZnquWugUS6HL3ejJPMMMXn5ycOw8EY=; b=dmJ+4g6+ijTjuegUZin/ybKUWURlYLCB0i/ICngD/XzBZkP3y/jN/H71p/39RIiAXZ pKHwSc2eSvOpog3fmUzDhFtOgOCi7lbI5pXF/E6t7OTFJ10uT1WOPmu+coYZmDllNaQF R4ilGueZKdBLgAZDwgv3FHlEHTixSKZjuXLEQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=awpClFtCNThRTZnquWugUS6HL3ejJPMMMXn5ycOw8EY=; b=lAyZuLi+kHeXSQN0Wd7+sxYYfjsHnwUCr9lxkpXG6VzjODMjC7sG05PsXdiAZ8w481 dTl4UTPPSHFcdGg6lvmHOvGMsyOHbbluDax5FyUiFdOmE0iOZc1aKiQIxRtX2DYK/TPc guNrp4BpJhqL7GUaJl+L5ko/3D5jCWlNhoVb1dkOsAs0t76e+80hnpCAqMeWPexuV9SU Pntr9+0Pk4HWKE04UiLAPFqHlsvHbpVXrTBbLE7fstUQttbuuIM1DY7fFALjGtBr/MDv 8Xw2g39hZSl9Y+uzwK7rWMnXAQOmemVsXn+iwLNgfG2KCz73JD/EwLv/1qFdMkdmIwL7 QQNA== X-Gm-Message-State: AOAM531ENuoESX0wC5NV1ZaVh3sbl+Fxs6C/B4h27tJa1T1xGF8jj6qw gvFU/F7l2Gvecw+7DvKaN1BaZ6TjsdJvd1teo/pJb6+pcuDhwg== X-Google-Smtp-Source: ABdhPJzWAFyfgVjlRCDs6Jvzg4kk5mfCU7kCnwfwhlWj5CBu89dqw2ujcl4SdBU36nA6uDX3MGMiEElw4GP/ X-Received: by 2002:a67:c401:: with SMTP id c1mr21602467vsk.51.1622582913127; Tue, 01 Jun 2021 14:28:33 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id c39sm9886326uae.0.2021.06.01.14.28.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Jun 2021 14:28:33 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (targon.iol.unh.edu [132.177.125.242]) by postal.iol.unh.edu (Postfix) with ESMTP id A8560605246B; Tue, 1 Jun 2021 17:28:32 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id 9BF6E30647; Tue, 1 Jun 2021 17:28:32 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============3241741517718457557==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20210601212832.9BF6E30647@noxus.dpdklab.iol.unh.edu> Date: Tue, 1 Jun 2021 17:28:32 -0400 (EDT) Subject: [dpdk-test-report] |WARNING| pw93730-93739 [PATCH] [v7, 10/10] Enable the new EAL thread API X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============3241741517718457557== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzkzNzMwCgpfYXBwbHkgcGF0Y2ggZmFpbHVyZV8KClN1Ym1pdHRlcjogTmFyY2lz YSBBbmEgTWFyaWEgVmFzaWxlIDxuYXZhc2lsZUBsaW51eC5taWNyb3NvZnQuY29tPgpEYXRlOiBU dWVzZGF5LCBKdW5lIDAxIDIwMjEgMjA6NTU6NTIgCkFwcGxpZWQgb246IENvbW1pdElEOjY2YjNh NTRiOWZlYWIxOTNhNWNmOGFkNTQ2MDZkNzQ1MDc4NTg3Y2MKQXBwbHkgcGF0Y2ggc2V0IDkzNzMw LTkzNzM5IGZhaWxlZDoKCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0L3Byb2Nlc3MuaC4uLgpDaGVj a2luZyBwYXRjaCBhcHAvdGVzdC90ZXN0X2xjb3Jlcy5jLi4uCkNoZWNraW5nIHBhdGNoIGFwcC90 ZXN0L3Rlc3RfbGlua19ib25kaW5nLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QvdGVzdF9s cG1fcGVyZi5jLi4uCkNoZWNraW5nIHBhdGNoIGNvbmZpZy9tZXNvbi5idWlsZC4uLgpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL2J1cy9kcGFhL2Jhc2UvcWJtYW4vYm1hbl9kcml2ZXIuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL2J1cy9kcGFhL2Jhc2UvcWJtYW4vZHBhYV9zeXMuYy4uLgpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL2J1cy9kcGFhL2Jhc2UvcWJtYW4vcHJvY2Vzcy5jLi4uCkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvYnVzL2RwYWEvZHBhYV9idXMuYy4uLgpDaGVja2luZyBwYXRjaCBk cml2ZXJzL2J1cy9mc2xtYy9wb3J0YWwvZHBhYTJfaHdfZHBpby5jLi4uCkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvY29tcHJlc3MvbWx4NS9tbHg1X2NvbXByZXNzLmMuLi4KSHVuayAjMSBzdWNjZWVk ZWQgYXQgNzIgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDgwNCAob2Zm c2V0IC0yOSBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDgyNiAob2Zmc2V0IC0yOSBsaW5l cykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvZXZlbnQvZGxiMi9wZi9iYXNlL2RsYjJfb3NkZXAu aC4uLgpIdW5rICMyIHN1Y2NlZWRlZCBhdCAxOTQgKG9mZnNldCAyIGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYWZfeGRwL3J0ZV9ldGhfYWZfeGRwLmMuLi4KSHVuayAjMiBzdWNj ZWVkZWQgYXQgNjc2IChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA2ODcg KG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDcyNSAob2Zmc2V0IDEwIGxp bmVzKS4KSHVuayAjNSBzdWNjZWVkZWQgYXQgNzUxIChvZmZzZXQgMTAgbGluZXMpLgpIdW5rICM2 IHN1Y2NlZWRlZCBhdCA3ODAgKG9mZnNldCAxMCBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0 IDk0OCAob2Zmc2V0IDEwIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXJrL2Fy a19ldGhkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9hdGxhbnRpYy9hdGxfZXRo ZGV2LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50aWMvYXRsX3R5cGVzLmgu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50aWMvaHdfYXRsL2h3X2F0bF91dGls c19mdzJ4LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfY29tbW9u LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZGV2LmMuLi4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmMuLi4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvYXhnYmUvYXhnYmVfaTJjLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvYXhnYmUvYXhnYmVfbWRpby5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2F4Z2Jl L2F4Z2JlX3BoeV9pbXBsLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9ibnh0 LmguLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgNTM0IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjMiBz dWNjZWVkZWQgYXQgNjg3IChvZmZzZXQgLTYgbGluZXMpLgpIdW5rICMzIHN1Y2NlZWRlZCBhdCA3 NDEgKG9mZnNldCAtNiBsaW5lcykuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDk0NCAob2Zmc2V0IC0x MyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvYm54dF9jcHIuYy4uLgpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmMuLi4KSHVuayAjNiBz dWNjZWVkZWQgYXQgNDEwOCAob2Zmc2V0IDMyIGxpbmVzKS4KSHVuayAjNyBzdWNjZWVkZWQgYXQg NDExNiAob2Zmc2V0IDMyIGxpbmVzKS4KSHVuayAjOCBzdWNjZWVkZWQgYXQgNDI5MiAob2Zmc2V0 IDM4IGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgNDMwNyAob2Zmc2V0IDM4IGxpbmVzKS4K SHVuayAjMTAgc3VjY2VlZGVkIGF0IDUwOTMgKG9mZnNldCAzOCBsaW5lcykuCkh1bmsgIzExIHN1 Y2NlZWRlZCBhdCA1ODk0IChvZmZzZXQgMzggbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9ibnh0L2JueHRfaXJxLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9i bnh0X3JlcHMuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L3RmX3VscC9ibnh0 X3VscC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvdGZfdWxwL2JueHRfdWxw LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC90Zl91bHAvdWxwX2ZjX21nci5j Li4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvdGZfdWxwL3VscF9mY19tZ3IuaC4u LgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lbmEvYmFzZS9lbmFfcGxhdF9kcGRrLmguLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgcV93YWl0cXVldWVfdAkJCVwKCXN0 cnVjdCB7CQkJXAoJCXB0aHJlYWRfY29uZF90IGNvbmQ7CVwKCQlwdGhyZWFkX211dGV4X3QgbXV0 ZXg7CVwKCX0KCiNkZWZpbmUgZW5hX3dhaXRfcXVldWVfdCBxX3dhaXRxdWV1ZV90CgojZGVmaW5l IEVOQV9XQUlUX0VWRU5UX0lOSVQod2FpdHF1ZXVlKQkJCQkJXAoJZG8gewkJCQkJCQkJXAoJCXB0 aHJlYWRfbXV0ZXhfaW5pdCgmKHdhaXRxdWV1ZSkubXV0ZXgsIE5VTEwpOwkJXAoJCXB0aHJlYWRf Y29uZF9pbml0KCYod2FpdHF1ZXVlKS5jb25kLCBOVUxMKTsJCVwKCX0gd2hpbGUgKDApCgoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZW5hL2Jhc2UvZW5hX3BsYXRfZHBkay5oOjEy OQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl3YWl0LnR2X3NlYyA9IG5vdy50dl9zZWMg KyB0aW1lb3V0IC8gMTAwMDAwMFVMOwkJXAoJCXRpbWVvdXRfdXMgPSB0aW1lb3V0ICUgMTAwMDAw MFVMOwkJCVwKCQl3YWl0LnR2X25zZWMgPSAobm93LnR2X3VzZWMgKyB0aW1lb3V0X3VzKSAqIDEw MDBVTDsJXAoJCXB0aHJlYWRfbXV0ZXhfbG9jaygmd2FpdGV2ZW50Lm11dGV4KTsJCQlcCgkJcHRo cmVhZF9jb25kX3RpbWVkd2FpdCgmd2FpdGV2ZW50LmNvbmQsCQkJXAoJCQkJJndhaXRldmVudC5t dXRleCwgJndhaXQpOwkJXAoJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ3YWl0ZXZlbnQubXV0ZXgp OwkJCVwKCX0gd2hpbGUgKDApCiNkZWZpbmUgRU5BX1dBSVRfRVZFTlRfU0lHTkFMKHdhaXRldmVu dCkgcHRocmVhZF9jb25kX3NpZ25hbCgmd2FpdGV2ZW50LmNvbmQpCi8qIHB0aHJlYWQgY29uZGl0 aW9uIGRvZXNuJ3QgbmVlZCB0byBiZSByZWFybWVkIGFmdGVyIHVzYWdlICovCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lbmEvYmFzZS9lbmFfcGxhdF9kcGRrLmg6MTQ5CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L2VuaWMvZW5pYy5oLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2ljZS9pY2VfZGNmX3BhcmVudC5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDE1NiAo b2Zmc2V0IDIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pcG4za2UvaXBuM2tl X3JlcHJlc2VudG9yLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf ZXRoZGV2LmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmMu Li4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9saW51eC9tbHg1X29zLmMuLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgMjU1NyAob2Zmc2V0IDIzIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMuLi4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTA4OCAob2Zm c2V0IDEwNyBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDEyMTUgKG9mZnNldCAxMDcgbGlu ZXMpLgpIdW5rICM0IHN1Y2NlZWRlZCBhdCAxMjUxIChvZmZzZXQgMTA3IGxpbmVzKS4KSHVuayAj NSBzdWNjZWVkZWQgYXQgMTI4MiAob2Zmc2V0IDEwNyBsaW5lcykuCkh1bmsgIzYgc3VjY2VlZGVk IGF0IDEzMTUgKG9mZnNldCAxMDcgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCAyNDUwIChv ZmZzZXQgMTEyIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1Lmgu Li4KSHVuayAjMSBzdWNjZWVkZWQgYXQgOTQ5IChvZmZzZXQgMTMyIGxpbmVzKS4KQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3R4cHAuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9tbHg1L3dpbmRvd3MvbWx4NV9mbG93X29zLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvbWx4NS93aW5kb3dzL21seDVfb3MuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9xZWRlL2Jhc2UvYmNtX29zYWwuaC4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC92 aG9zdC9ydGVfZXRoX3Zob3N0LmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuaC4uLgpDaGVja2luZyBwYXRj aCBkcml2ZXJzL3Jhdy9pZnBnYS9pZnBnYV9yYXdkZXYuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL3ZkcGEvaWZjL2lmY3ZmX3ZkcGEuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL3ZkcGEv bWx4NS9tbHg1X3ZkcGEuYy4uLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCA3MzYgKG9mZnNldCAtMjgg bGluZXMpLgpIdW5rICM2IHN1Y2NlZWRlZCBhdCA3NzAgKG9mZnNldCAtMjggbGluZXMpLgpIdW5r ICM3IHN1Y2NlZWRlZCBhdCA3NzkgKG9mZnNldCAtMjggbGluZXMpLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQkJcHJpdi0+dmFyID0gTlVMTDsKCQl9CgkJbWx4NV9nbHVlLT5jbG9zZV9k ZXZpY2UocHJpdi0+Y3R4KTsKCQlwdGhyZWFkX211dGV4X2Rlc3Ryb3koJnByaXYtPnZxX2NvbmZp Z19sb2NrKTsKCQlydGVfZnJlZShwcml2KTsKCX0KCXJldHVybiAwOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy92ZHBhL21seDUvbWx4NV92ZHBhLmM6ODE2CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYS5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgpzdHJ1Y3QgbWx4NV92ZHBhX3ByaXYgewoJVEFJTFFfRU5UUlkobWx4NV92ZHBhX3ByaXYpIG5l eHQ7Cgl1aW50OF90IGNvbmZpZ3VyZWQ7CglwdGhyZWFkX211dGV4X3QgdnFfY29uZmlnX2xvY2s7 Cgl1aW50NjRfdCBsYXN0X3RyYWZmaWNfdGljOwoJcHRocmVhZF90IHRpbWVyX3RpZDsKCXB0aHJl YWRfbXV0ZXhfdCB0aW1lcl9sb2NrOwoJcHRocmVhZF9jb25kX3QgdGltZXJfY29uZDsKCXZvbGF0 aWxlIHVpbnQ4X3QgdGltZXJfb247CglpbnQgZXZlbnRfbW9kZTsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYS5oOjExOQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGFfZXZlbnQuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCXVpbnQzMl90IG1heDsKCXVpbnQ2NF90IGN1cnJlbnRfdGljOwoKCXB0aHJlYWRfbXV0 ZXhfbG9jaygmcHJpdi0+dGltZXJfbG9jayk7Cgl3aGlsZSAoIXByaXYtPnRpbWVyX29uKQoJCXB0 aHJlYWRfY29uZF93YWl0KCZwcml2LT50aW1lcl9jb25kLCAmcHJpdi0+dGltZXJfbG9jayk7Cglw dGhyZWFkX211dGV4X3VubG9jaygmcHJpdi0+dGltZXJfbG9jayk7Cglwcml2LT50aW1lcl9kZWxh eV91cyA9IHByaXYtPmV2ZW50X21vZGUgPT0KCQkJCQkgICAgTUxYNV9WRFBBX0VWRU5UX01PREVf RFlOQU1JQ19USU1FUiA/CgkJCQkJICAgICAgTUxYNV9WRFBBX0RFRkFVTFRfVElNRVJfREVMQVlf VVMgOgoJCQkJCQkJCSBwcml2LT5ldmVudF91czsKCXdoaWxlICgxKSB7CgkJbWF4ID0gMDsKCQlw dGhyZWFkX211dGV4X2xvY2soJnByaXYtPnZxX2NvbmZpZ19sb2NrKTsKCQlmb3IgKGkgPSAwOyBp IDwgcHJpdi0+bnJfdmlydHFzOyBpKyspIHsKCQkJY3EgPSAmcHJpdi0+dmlydHFzW2ldLmVxcC5j cTsKCQkJaWYgKGNxLT5jcV9vYmouY3EgJiYgIWNxLT5hcm1lZCkgewoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy92ZHBhL21seDUvbWx4NV92ZHBhX2V2ZW50LmM6MjQ3CmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgoJCQkJRFJWX0xPRyhERUJVRywgIkRldmljZSAlcyB0cmFmZmljIHdh cyBzdG9wcGVkLiIsCgkJCQkJcHJpdi0+dmRldi0+ZGV2aWNlLT5uYW1lKTsKCQkJCW1seDVfdmRw YV9hcm1fYWxsX2Nxcyhwcml2KTsKCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2LT52cV9j b25maWdfbG9jayk7CgkJCQlwdGhyZWFkX211dGV4X2xvY2soJnByaXYtPnRpbWVyX2xvY2spOwoJ CQkJcHJpdi0+dGltZXJfb24gPSAwOwoJCQkJd2hpbGUgKCFwcml2LT50aW1lcl9vbikKCQkJCQlw dGhyZWFkX2NvbmRfd2FpdCgmcHJpdi0+dGltZXJfY29uZCwKCQkJCQkJCSAgJnByaXYtPnRpbWVy X2xvY2spOwoJCQkJcHRocmVhZF9tdXRleF91bmxvY2soJnByaXYtPnRpbWVyX2xvY2spOwoJCQkJ cHJpdi0+dGltZXJfZGVsYXlfdXMgPSBwcml2LT5ldmVudF9tb2RlID09CgkJCQkJICAgIE1MWDVf VkRQQV9FVkVOVF9NT0RFX0RZTkFNSUNfVElNRVIgPwoJCQkJCSAgICAgIE1MWDVfVkRQQV9ERUZB VUxUX1RJTUVSX0RFTEFZX1VTIDoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvdmRwYS9t bHg1L21seDVfdmRwYV9ldmVudC5jOjI4MQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl9 IGVsc2UgewoJCQlwcml2LT5sYXN0X3RyYWZmaWNfdGljID0gY3VycmVudF90aWM7CgkJfQoJCXB0 aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2LT52cV9jb25maWdfbG9jayk7CgkJbWx4NV92ZHBhX3Rp bWVyX3NsZWVwKHByaXYsIG1heCk7Cgl9CglyZXR1cm4gTlVMTDsKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYV9ldmVudC5jOjI5NwplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQl1aW50OF90IGJ1ZltzaXplb2Yoc3RydWN0IG1seDVkdl9kZXZ4X2Fz eW5jX2V2ZW50X2hkcikgKyAxMjhdOwoJfSBvdXQ7CgoJcHRocmVhZF9tdXRleF9sb2NrKCZwcml2 LT52cV9jb25maWdfbG9jayk7Cgl3aGlsZSAobWx4NV9nbHVlLT5kZXZ4X2dldF9ldmVudChwcml2 LT5ldmVudGMsICZvdXQuZXZlbnRfcmVzcCwKCQkJCQkgc2l6ZW9mKG91dC5idWYpKSA+PQoJCQkJ ICAgICAgIChzc2l6ZV90KXNpemVvZihvdXQuZXZlbnRfcmVzcC5jb29raWUpKSB7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGFfZXZlbnQuYzozMTMKZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCWV2ZW50ZmRfd3JpdGUoY3EtPmNhbGxmZCwgKGV2 ZW50ZmRfdCkxKTsKCQlpZiAocHJpdi0+ZXZlbnRfbW9kZSA9PSBNTFg1X1ZEUEFfRVZFTlRfTU9E RV9PTkxZX0lOVEVSUlVQVCkgewoJCQltbHg1X3ZkcGFfY3FfYXJtKHByaXYsIGNxKTsKCQkJcHRo cmVhZF9tdXRleF91bmxvY2soJnByaXYtPnZxX2NvbmZpZ19sb2NrKTsKCQkJcmV0dXJuOwoJCX0K CQkvKiBEb24ndCBhcm0gYWdhaW4gLSB0aW1lciB3aWxsIHRha2UgY29udHJvbC4gKi8KCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYV9ldmVudC5jOjMzMgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCgkvKiBUcmFmZmljIGRldGVjdGVkOiBtYWtlIHN1 cmUgdGltZXIgaXMgb24uICovCglwcml2LT5sYXN0X3RyYWZmaWNfdGljID0gcnRlX3JkdHNjKCk7 CglwdGhyZWFkX211dGV4X2xvY2soJnByaXYtPnRpbWVyX2xvY2spOwoJaWYgKCFwcml2LT50aW1l cl9vbikgewoJCXByaXYtPnRpbWVyX29uID0gMTsKCQlwdGhyZWFkX2NvbmRfc2lnbmFsKCZwcml2 LT50aW1lcl9jb25kKTsKCX0KCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2LT50aW1lcl9sb2Nr KTsKCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2LT52cV9jb25maWdfbG9jayk7Cn0KCnN0YXRp YyB2b2lkCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGFf ZXZlbnQuYzozNDcKSHVuayAjNyBzdWNjZWVkZWQgYXQgMzQwIChvZmZzZXQgLTI5IGxpbmVzKS4K SHVuayAjOCBzdWNjZWVkZWQgYXQgMzg2IChvZmZzZXQgLTI5IGxpbmVzKS4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CnsKCWludCByZXQ7CglydGVfY3B1c2V0X3QgY3B1c2V0OwoJcHRocmVh ZF9hdHRyX3QgYXR0cjsKCWNoYXIgbmFtZVsxNl07Cgljb25zdCBzdHJ1Y3Qgc2NoZWRfcGFyYW0g c3AgPSB7CgkJLnNjaGVkX3ByaW9yaXR5ID0gc2NoZWRfZ2V0X3ByaW9yaXR5X21heChTQ0hFRF9S UiksCgl9OwoKCWlmICghcHJpdi0+ZXZlbnRjKQoJCS8qIEFsbCB2aXJ0cXMgYXJlIGluIHBvbGwg bW9kZS4gKi8KCQlyZXR1cm4gMDsKCWlmIChwcml2LT5ldmVudF9tb2RlICE9IE1MWDVfVkRQQV9F VkVOVF9NT0RFX09OTFlfSU5URVJSVVBUKSB7CgkJcHRocmVhZF9tdXRleF9pbml0KCZwcml2LT50 aW1lcl9sb2NrLCBOVUxMKTsKCQlwdGhyZWFkX2NvbmRfaW5pdCgmcHJpdi0+dGltZXJfY29uZCwg TlVMTCk7CgkJcHJpdi0+dGltZXJfb24gPSAwOwoJCXB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsK CQlyZXQgPSBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwb2xpY3koJmF0dHIsIFNDSEVEX1JSKTsKCQlp ZiAocmV0KSB7CgkJCURSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHNldCB0aHJlYWQgc2NoZWQgcG9s aWN5ID0gUlIuIik7CgkJCXJldHVybiAtMTsKCQl9CgkJcmV0ID0gcHRocmVhZF9hdHRyX3NldHNj aGVkcGFyYW0oJmF0dHIsICZzcCk7CgkJaWYgKHJldCkgewoJCQlEUlZfTE9HKEVSUiwgIkZhaWxl ZCB0byBzZXQgdGhyZWFkIHByaW9yaXR5LiIpOwoJCQlyZXR1cm4gLTE7CgkJfQoJCXJldCA9IHB0 aHJlYWRfY3JlYXRlKCZwcml2LT50aW1lcl90aWQsICZhdHRyLAoJCQkJICAgICBtbHg1X3ZkcGFf cG9sbF9oYW5kbGUsICh2b2lkICopcHJpdik7CgkJaWYgKHJldCkgewoJCQlEUlZfTE9HKEVSUiwg IkZhaWxlZCB0byBjcmVhdGUgdGltZXIgdGhyZWFkLiIpOwoJCQlyZXR1cm4gLTE7CgkJfQoJCUNQ VV9aRVJPKCZjcHVzZXQpOwoJCWlmIChwcml2LT5ldmVudF9jb3JlICE9IC0xKQoJCQlDUFVfU0VU KHByaXYtPmV2ZW50X2NvcmUsICZjcHVzZXQpOwoJCWVsc2UKCQkJY3B1c2V0ID0gcnRlX2xjb3Jl X2NwdXNldChydGVfZ2V0X21haW5fbGNvcmUoKSk7CgkJcmV0ID0gcHRocmVhZF9zZXRhZmZpbml0 eV9ucChwcml2LT50aW1lcl90aWQsCgkJCQkJICAgICBzaXplb2YoY3B1c2V0KSwgJmNwdXNldCk7 CgkJaWYgKHJldCkgewoJCQlEUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZXQgdGhyZWFkIGFmZmlu aXR5LiIpOwoJCQlnb3RvIGVycm9yOwoJCX0KCQlzbnByaW50ZihuYW1lLCBzaXplb2YobmFtZSks ICJ2RFBBLW1seDUtJWQiLCBwcml2LT52aWQpOwoJCXJldCA9IHB0aHJlYWRfc2V0bmFtZV9ucChw cml2LT50aW1lcl90aWQsIG5hbWUpOwoJCWlmIChyZXQpIHsKCQkJRFJWX0xPRyhFUlIsICJGYWls ZWQgdG8gc2V0IHRpbWVyIHRocmVhZCBuYW1lLiIpOwoJCQlyZXR1cm4gLTE7CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGFfZXZlbnQuYzo1MDIKZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CnsKCWludCByZXRyaWVzID0gTUxYNV9WRFBBX0lOVFJfUkVU UklFUzsKCWludCByZXQgPSAtRUFHQUlOOwoJdm9pZCAqc3RhdHVzOwoKCWlmIChwcml2LT5pbnRy X2hhbmRsZS5mZCkgewoJCXdoaWxlIChyZXRyaWVzLS0gJiYgcmV0ID09IC1FQUdBSU4pIHsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYV9ldmVudC5jOjU2 OQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl9CgkJbWVtc2V0KCZwcml2LT5pbnRyX2hh bmRsZSwgMCwgc2l6ZW9mKHByaXYtPmludHJfaGFuZGxlKSk7Cgl9CglpZiAocHJpdi0+dGltZXJf dGlkKSB7CgkJcHRocmVhZF9jYW5jZWwocHJpdi0+dGltZXJfdGlkKTsKCQlwdGhyZWFkX2pvaW4o cHJpdi0+dGltZXJfdGlkLCAmc3RhdHVzKTsKCX0KCXByaXYtPnRpbWVyX3RpZCA9IDA7Cn0KCnZv aWQKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYV9ldmVu dC5jOjU4NQpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9rbmkvbWFpbi5jLi4uCkNoZWNraW5nIHBh dGNoIGV4YW1wbGVzL3BlcmZvcm1hbmNlLXRocmVhZC9wdGhyZWFkX3NoaW0vbWFpbi5jLi4uCkNo ZWNraW5nIHBhdGNoIGV4YW1wbGVzL3Zob3N0L21haW4uYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCXVuc2lnbmVkIG5iX3BvcnRzLCB2YWxpZF9udW1fcG9ydHM7CglpbnQgcmV0LCBp OwoJdWludDE2X3QgcG9ydGlkOwoJc3RhdGljIHB0aHJlYWRfdCB0aWQ7Cgl1aW50NjRfdCBmbGFn cyA9IDA7CgoJc2lnbmFsKFNJR0lOVCwgc2lnaW50X2hhbmRsZXIpOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZXhhbXBsZXMvdmhvc3QvbWFpbi5jOjE2MzUKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMv dmhvc3RfYmxrL3Zob3N0X2Jsay5jLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9lYWwvY29tbW9uL2Vh bF9jb21tb25fb3B0aW9ucy5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE4NzIgKG9mZnNldCA2 IGxpbmVzKS4KSHVuayAjMiBzdWNjZWVkZWQgYXQgMTkwMCAob2Zmc2V0IDYgbGluZXMpLgpDaGVj a2luZyBwYXRjaCBsaWIvZWFsL2NvbW1vbi9lYWxfY29tbW9uX3Byb2MuYy4uLgpIdW5rICM3IHN1 Y2NlZWRlZCBhdCA1MjQgKG9mZnNldCAtMyBsaW5lcykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDU4 NCAob2Zmc2V0IC0zIGxpbmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgOTk4IChvZmZzZXQgLTEg bGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQgMTAyMSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVu ayAjMTEgc3VjY2VlZGVkIGF0IDEwNDAgKG9mZnNldCAtMSBsaW5lcykuCkh1bmsgIzEyIHN1Y2Nl ZWRlZCBhdCAxMTE4IChvZmZzZXQgLTEgbGluZXMpLgpIdW5rICMxMyBzdWNjZWVkZWQgYXQgMTE0 MSAob2Zmc2V0IC0xIGxpbmVzKS4KSHVuayAjMTQgc3VjY2VlZGVkIGF0IDExODUgKG9mZnNldCAt MSBsaW5lcykuCkh1bmsgIzE1IHN1Y2NlZWRlZCBhdCAxMjAxIChvZmZzZXQgLTEgbGluZXMpLgpD aGVja2luZyBwYXRjaCBsaWIvZWFsL2NvbW1vbi9lYWxfY29tbW9uX3RocmVhZC5jLi4uCkNoZWNr aW5nIHBhdGNoIGxpYi9lYWwvY29tbW9uL2VhbF9jb21tb25fdHJhY2UuYy4uLgpDaGVja2luZyBw YXRjaCBsaWIvZWFsL2NvbW1vbi9lYWxfcHJpdmF0ZS5oLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9l YWwvY29tbW9uL21hbGxvY19tcC5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDMwMSAob2Zmc2V0 IC0yIGxpbmVzKS4KSHVuayAjMyBzdWNjZWVkZWQgYXQgMzg3IChvZmZzZXQgLTIgbGluZXMpLgpI dW5rICM0IHN1Y2NlZWRlZCBhdCA0MDkgKG9mZnNldCAtMiBsaW5lcykuCkh1bmsgIzUgc3VjY2Vl ZGVkIGF0IDUzOSAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAjNiBzdWNjZWVkZWQgYXQgNTU3IChv ZmZzZXQgLTIgbGluZXMpLgpIdW5rICM3IHN1Y2NlZWRlZCBhdCA1ODggKG9mZnNldCAtMiBsaW5l cykuCkh1bmsgIzggc3VjY2VlZGVkIGF0IDYwMyAob2Zmc2V0IC0yIGxpbmVzKS4KSHVuayAjOSBz dWNjZWVkZWQgYXQgNjE2IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMxMCBzdWNjZWVkZWQgYXQg NzA2IChvZmZzZXQgLTIgbGluZXMpLgpIdW5rICMxMSBzdWNjZWVkZWQgYXQgNzY3IChvZmZzZXQg LTIgbGluZXMpLgpDaGVja2luZyBwYXRjaCBsaWIvZWFsL2NvbW1vbi9tZXNvbi5idWlsZC4uLgpD aGVja2luZyBwYXRjaCBsaWIvZWFsL2ZyZWVic2QvZWFsLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggbGli L2VhbC9mcmVlYnNkL2VhbF9hbGFybS5jLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9lYWwvZnJlZWJz ZC9lYWxfaW50ZXJydXB0cy5jLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9lYWwvZnJlZWJzZC9lYWxf dGhyZWFkLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggbGliL2VhbC9pbmNsdWRlL21lc29uLmJ1aWxkLi4u CkNoZWNraW5nIHBhdGNoIGxpYi9lYWwvaW5jbHVkZS9ydGVfbGNvcmUuaC4uLgpDaGVja2luZyBw YXRjaCBsaWIvZWFsL2luY2x1ZGUvcnRlX3Blcl9sY29yZS5oLi4uCkNoZWNraW5nIHBhdGNoIGxp Yi9lYWwvbGludXgvZWFsLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggbGliL2VhbC9saW51eC9lYWxfYWxh cm0uYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZWFsL2xpbnV4L2VhbF9pbnRlcnJ1cHRzLmMuLi4K Q2hlY2tpbmcgcGF0Y2ggbGliL2VhbC9saW51eC9lYWxfdGhyZWFkLmMuLi4KQ2hlY2tpbmcgcGF0 Y2ggbGliL2VhbC9saW51eC9lYWxfdGltZXIuYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZWFsL3Vu aXgvbWVzb24uYnVpbGQuLi4KQ2hlY2tpbmcgcGF0Y2ggbGliL2VhbC91bml4L3J0ZV90aHJlYWQu Yy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZWFsL3ZlcnNpb24ubWFwLi4uCkNoZWNraW5nIHBhdGNo IGxpYi9lYWwvd2luZG93cy9lYWwuYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZWFsL3dpbmRvd3Mv ZWFsX2ludGVycnVwdHMuYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvZWFsL3dpbmRvd3MvZWFsX3Ro cmVhZC5jLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9lYWwvd2luZG93cy9lYWxfd2luZG93cy5oLi4u CkNoZWNraW5nIHBhdGNoIGxpYi9lYWwvd2luZG93cy9pbmNsdWRlL21lc29uLmJ1aWxkLi4uCkNo ZWNraW5nIHBhdGNoIGxpYi9lYWwvd2luZG93cy9pbmNsdWRlL3B0aHJlYWQuaC4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNs YXVzZQogKiBDb3B5cmlnaHQoYykgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgogKi8KCiNpZm5kZWYg X1BUSFJFQURfSF8KI2RlZmluZSBfUFRIUkVBRF9IXwoKI2luY2x1ZGUgPHN0ZGludC5oPgojaW5j bHVkZSA8c2NoZWQuaD4KCi8qKgogKiBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCB0 aGUgY29tbW9uIGNvZGUgaW4gZWFsX2NvbW1vbl9wcm9jLmMsCiAqIGVhbF9jb21tb25fdGhyZWFk LmMgYW5kIGNvbW1vblxpbmNsdWRlXHJ0ZV9wZXJfbGNvcmUuaCBhcyBNaWNyb3NvZnQgbGliYwog KiBkb2VzIG5vdCBjb250YWluIHB0aHJlYWQuaC4gVGhpcyBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1 cmUgcmVsZWFzZXMuCiAqLwojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoK I2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4KI2luY2x1ZGUgPHJ0ZV93aW5kb3dzLmg+CgojZGVmaW5l IFBUSFJFQURfQkFSUklFUl9TRVJJQUxfVEhSRUFEIFRSVUUKCi8qIGRlZmluaW5nIHB0aHJlYWRf dCB0eXBlIG9uIFdpbmRvd3Mgc2luY2UgdGhlcmUgaXMgbm8gaW4gTWljcm9zb2Z0IGxpYmMqLwp0 eXBlZGVmIHVpbnRwdHJfdCBwdGhyZWFkX3Q7CgovKiBkZWZpbmluZyBwdGhyZWFkX2F0dHJfdCB0 eXBlIG9uIFdpbmRvd3Mgc2luY2UgdGhlcmUgaXMgbm8gaW4gTWljcm9zb2Z0IGxpYmMqLwp0eXBl ZGVmIHZvaWQgKnB0aHJlYWRfYXR0cl90OwoKdHlwZWRlZiB2b2lkICpwdGhyZWFkX211dGV4YXR0 cl90OwoKdHlwZWRlZiBDUklUSUNBTF9TRUNUSU9OIHB0aHJlYWRfbXV0ZXhfdDsKCnR5cGVkZWYg U1lOQ0hST05JWkFUSU9OX0JBUlJJRVIgcHRocmVhZF9iYXJyaWVyX3Q7CgojZGVmaW5lIHB0aHJl YWRfYmFycmllcl9pbml0KGJhcnJpZXIsIGF0dHIsIGNvdW50KSBcCgkhSW5pdGlhbGl6ZVN5bmNo cm9uaXphdGlvbkJhcnJpZXIoYmFycmllciwgY291bnQsIC0xKQojZGVmaW5lIHB0aHJlYWRfYmFy cmllcl93YWl0KGJhcnJpZXIpIEVudGVyU3luY2hyb25pemF0aW9uQmFycmllcihiYXJyaWVyLCBc CglTWU5DSFJPTklaQVRJT05fQkFSUklFUl9GTEFHU19CTE9DS19PTkxZKQojZGVmaW5lIHB0aHJl YWRfYmFycmllcl9kZXN0cm95KGJhcnJpZXIpIFwKCSFEZWxldGVTeW5jaHJvbml6YXRpb25CYXJy aWVyKGJhcnJpZXIpCiNkZWZpbmUgcHRocmVhZF9jYW5jZWwodGhyZWFkKSAhVGVybWluYXRlVGhy ZWFkKChIQU5ETEUpIHRocmVhZCwgMCkKCi8qIHB0aHJlYWQgZnVuY3Rpb24gb3ZlcnJpZGVzICov CiNkZWZpbmUgcHRocmVhZF9zZWxmKCkgXAoJKChwdGhyZWFkX3QpR2V0Q3VycmVudFRocmVhZElk KCkpCgoKc3RhdGljIGlubGluZSBpbnQKcHRocmVhZF9lcXVhbChwdGhyZWFkX3QgdDEsIHB0aHJl YWRfdCB0MikKewoJcmV0dXJuIHQxID09IHQyOwp9CgpzdGF0aWMgaW5saW5lIGludApwdGhyZWFk X3NldGFmZmluaXR5X25wKHB0aHJlYWRfdCB0aHJlYWRpZCwgc2l6ZV90IGNwdXNldF9zaXplLAoJ CQlydGVfY3B1c2V0X3QgKmNwdXNldCkKewoJRFdPUkRfUFRSIHJldCA9IDA7CglIQU5ETEUgdGhy ZWFkX2hhbmRsZTsKCglpZiAoY3B1c2V0ID09IE5VTEwgfHwgY3B1c2V0X3NpemUgPT0gMCkKCQly ZXR1cm4gLTE7CgoJdGhyZWFkX2hhbmRsZSA9IE9wZW5UaHJlYWQoVEhSRUFEX0FMTF9BQ0NFU1Ms IEZBTFNFLCB0aHJlYWRpZCk7CglpZiAodGhyZWFkX2hhbmRsZSA9PSBOVUxMKSB7CgkJUlRFX0xP R19XSU4zMl9FUlIoIk9wZW5UaHJlYWQoKSIpOwoJCXJldHVybiAtMTsKCX0KCglyZXQgPSBTZXRU aHJlYWRBZmZpbml0eU1hc2sodGhyZWFkX2hhbmRsZSwgKmNwdXNldC0+X2JpdHMpOwoJaWYgKHJl dCA9PSAwKSB7CgkJUlRFX0xPR19XSU4zMl9FUlIoIlNldFRocmVhZEFmZmluaXR5TWFzaygpIik7 CgkJZ290byBjbG9zZV9oYW5kbGU7Cgl9CgpjbG9zZV9oYW5kbGU6CglpZiAoQ2xvc2VIYW5kbGUo dGhyZWFkX2hhbmRsZSkgPT0gMCkgewoJCVJURV9MT0dfV0lOMzJfRVJSKCJDbG9zZUhhbmRsZSgp Iik7CgkJcmV0dXJuIC0xOwoJfQoJcmV0dXJuIChyZXQgPT0gMCkgPyAtMSA6IDA7Cn0KCnN0YXRp YyBpbmxpbmUgaW50CnB0aHJlYWRfZ2V0YWZmaW5pdHlfbnAocHRocmVhZF90IHRocmVhZGlkLCBz aXplX3QgY3B1c2V0X3NpemUsCgkJCXJ0ZV9jcHVzZXRfdCAqY3B1c2V0KQp7CgkvKiBXb3JrYXJv dW5kIGZvciB0aGUgbGFjayBvZiBhIEdldFRocmVhZEFmZmluaXR5TWFzaygpCgkgKkFQSSBpbiBX aW5kb3dzCgkgKi8KCURXT1JEX1BUUiBwcmV2X2FmZmluaXR5X21hc2s7CglIQU5ETEUgdGhyZWFk X2hhbmRsZTsKCURXT1JEX1BUUiByZXQgPSAwOwoKCWlmIChjcHVzZXQgPT0gTlVMTCB8fCBjcHVz ZXRfc2l6ZSA9PSAwKQoJCXJldHVybiAtMTsKCgl0aHJlYWRfaGFuZGxlID0gT3BlblRocmVhZChU SFJFQURfQUxMX0FDQ0VTUywgRkFMU0UsIHRocmVhZGlkKTsKCWlmICh0aHJlYWRfaGFuZGxlID09 IE5VTEwpIHsKCQlSVEVfTE9HX1dJTjMyX0VSUigiT3BlblRocmVhZCgpIik7CgkJcmV0dXJuIC0x OwoJfQoKCS8qIG9idGFpbiBwcmV2aW91cyBtYXNrIGJ5IHNldHRpbmcgZHVtbXkgbWFzayAqLwoJ cHJldl9hZmZpbml0eV9tYXNrID0gU2V0VGhyZWFkQWZmaW5pdHlNYXNrKHRocmVhZF9oYW5kbGUs IDB4MSk7CglpZiAocHJldl9hZmZpbml0eV9tYXNrID09IDApIHsKCQlSVEVfTE9HX1dJTjMyX0VS UigiU2V0VGhyZWFkQWZmaW5pdHlNYXNrKCkiKTsKCQlnb3RvIGNsb3NlX2hhbmRsZTsKCX0KCgkv KiBzZXQgaXQgYmFjayEgKi8KCXJldCA9IFNldFRocmVhZEFmZmluaXR5TWFzayh0aHJlYWRfaGFu ZGxlLCBwcmV2X2FmZmluaXR5X21hc2spOwoJaWYgKHJldCA9PSAwKSB7CgkJUlRFX0xPR19XSU4z Ml9FUlIoIlNldFRocmVhZEFmZmluaXR5TWFzaygpIik7CgkJZ290byBjbG9zZV9oYW5kbGU7Cgl9 CgoJbWVtc2V0KGNwdXNldCwgMCwgY3B1c2V0X3NpemUpOwoJKmNwdXNldC0+X2JpdHMgPSBwcmV2 X2FmZmluaXR5X21hc2s7CgpjbG9zZV9oYW5kbGU6CglpZiAoQ2xvc2VIYW5kbGUodGhyZWFkX2hh bmRsZSkgPT0gMCkgewoJCVJURV9MT0dfV0lOMzJfRVJSKCJTZXRUaHJlYWRBZmZpbml0eU1hc2so KSIpOwoJCXJldHVybiAtMTsKCX0KCXJldHVybiAocmV0ID09IDApID8gLTEgOiAwOwp9CgpzdGF0 aWMgaW5saW5lIGludApwdGhyZWFkX2NyZWF0ZSh2b2lkICp0aHJlYWRpZCwgY29uc3Qgdm9pZCAq dGhyZWFkYXR0ciwgdm9pZCAqdGhyZWFkZnVuYywKCQl2b2lkICphcmdzKQp7CglSVEVfU0VUX1VT RUQodGhyZWFkYXR0cik7CglIQU5ETEUgaFRocmVhZDsKCWhUaHJlYWQgPSBDcmVhdGVUaHJlYWQo TlVMTCwgMCwgKExQVEhSRUFEX1NUQVJUX1JPVVRJTkUpdGhyZWFkZnVuYywKCQlhcmdzLCAwLCAo TFBEV09SRCl0aHJlYWRpZCk7CglpZiAoaFRocmVhZCkgewoJCVNldFByaW9yaXR5Q2xhc3MoR2V0 Q3VycmVudFByb2Nlc3MoKSwgTk9STUFMX1BSSU9SSVRZX0NMQVNTKTsKCQlTZXRUaHJlYWRQcmlv cml0eShoVGhyZWFkLCBUSFJFQURfUFJJT1JJVFlfTk9STUFMKTsKCX0KCXJldHVybiAoKGhUaHJl YWQgIT0gTlVMTCkgPyAwIDogRV9GQUlMKTsKfQoKc3RhdGljIGlubGluZSBpbnQKcHRocmVhZF9q b2luKF9fcnRlX3VudXNlZCBwdGhyZWFkX3QgdGhyZWFkLAoJX19ydGVfdW51c2VkIHZvaWQgKip2 YWx1ZV9wdHIpCnsKCXJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludApwdGhyZWFkX211dGV4 X2luaXQocHRocmVhZF9tdXRleF90ICptdXRleCwKCQkgICBfX3J0ZV91bnVzZWQgcHRocmVhZF9t dXRleGF0dHJfdCAqYXR0cikKewoJSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbihtdXRleCk7Cgly ZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQKcHRocmVhZF9tdXRleF9sb2NrKHB0aHJlYWRf bXV0ZXhfdCAqbXV0ZXgpCnsKCUVudGVyQ3JpdGljYWxTZWN0aW9uKG11dGV4KTsKCXJldHVybiAw Owp9CgpzdGF0aWMgaW5saW5lIGludApwdGhyZWFkX211dGV4X3VubG9jayhwdGhyZWFkX211dGV4 X3QgKm11dGV4KQp7CglMZWF2ZUNyaXRpY2FsU2VjdGlvbihtdXRleCk7CglyZXR1CmVycm9yOiBw YXRjaCBmYWlsZWQ6IGxpYi9lYWwvd2luZG93cy9pbmNsdWRlL3B0aHJlYWQuaDoxCmVycm9yOiBy ZW1vdmFsIHBhdGNoIGxlYXZlcyBmaWxlIGNvbnRlbnRzCmVycm9yOiBsaWIvZWFsL3dpbmRvd3Mv aW5jbHVkZS9wdGhyZWFkLmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxp Yi9lYWwvd2luZG93cy9pbmNsdWRlL3NjaGVkLmguLi4KQ2hlY2tpbmcgcGF0Y2ggbGliL2VhbC93 aW5kb3dzL21lc29uLmJ1aWxkLi4uCkNoZWNraW5nIHBhdGNoIGxpYi9ldGhkZXYvcnRlX2V0aGRl di5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDUyNiAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMy IHN1Y2NlZWRlZCBhdCA2MDAgKG9mZnNldCAyIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggbGliL2V0 aGRldi9ydGVfZXRoZGV2X2NvcmUuaC4uLgpDaGVja2luZyBwYXRjaCBsaWIvZXRoZGV2L3J0ZV9m bG93LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjI2IChvZmZzZXQgMSBsaW5lKS4KQ2hlY2tp bmcgcGF0Y2ggbGliL2V2ZW50ZGV2L3J0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5jLi4uCkh1bmsg IzIgc3VjY2VlZGVkIGF0IDE0NDkgKG9mZnNldCAtMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxp Yi92aG9zdC9mZF9tYW4uYy4uLgpDaGVja2luZyBwYXRjaCBsaWIvdmhvc3QvZmRfbWFuLmguLi4K Q2hlY2tpbmcgcGF0Y2ggbGliL3Zob3N0L3NvY2tldC5jLi4uCkh1bmsgIzMgc3VjY2VlZGVkIGF0 IDc0IChvZmZzZXQgMSBsaW5lKS4KSHVuayAjNCBzdWNjZWVkZWQgYXQgODcgKG9mZnNldCAxIGxp bmUpLgpIdW5rICM1IHN1Y2NlZWRlZCBhdCAyNzEgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjNiBz dWNjZWVkZWQgYXQgMzI2IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzcgc3VjY2VlZGVkIGF0IDQy MCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICM4IHN1Y2NlZWRlZCBhdCA0NTYgKG9mZnNldCAyIGxp bmVzKS4KSHVuayAjOSBzdWNjZWVkZWQgYXQgNDg3IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzEw IHN1Y2NlZWRlZCBhdCA0OTkgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMTEgc3VjY2VlZGVkIGF0 IDUxMCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxMiBzdWNjZWVkZWQgYXQgNTU0IChvZmZzZXQg MiBsaW5lcykuCkh1bmsgIzEzIHN1Y2NlZWRlZCBhdCA1ODggKG9mZnNldCAyIGxpbmVzKS4KSHVu ayAjMTQgc3VjY2VlZGVkIGF0IDYwMiAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMxNSBzdWNjZWVk ZWQgYXQgNjE3IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzE2IHN1Y2NlZWRlZCBhdCA2MzEgKG9m ZnNldCAyIGxpbmVzKS4KSHVuayAjMTcgc3VjY2VlZGVkIGF0IDY0MSAob2Zmc2V0IDIgbGluZXMp LgpIdW5rICMxOCBzdWNjZWVkZWQgYXQgNjUxIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzE5IHN1 Y2NlZWRlZCBhdCA2NTkgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjAgc3VjY2VlZGVkIGF0IDY3 NCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyMSBzdWNjZWVkZWQgYXQgNjg1IChvZmZzZXQgMiBs aW5lcykuCkh1bmsgIzIyIHN1Y2NlZWRlZCBhdCA2OTggKG9mZnNldCAyIGxpbmVzKS4KSHVuayAj MjMgc3VjY2VlZGVkIGF0IDcyNCAob2Zmc2V0IDIgbGluZXMpLgpIdW5rICMyNCBzdWNjZWVkZWQg YXQgNzM0IChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI1IHN1Y2NlZWRlZCBhdCA3NTEgKG9mZnNl dCAyIGxpbmVzKS4KSHVuayAjMjYgc3VjY2VlZGVkIGF0IDc3OSAob2Zmc2V0IDIgbGluZXMpLgpI dW5rICMyNyBzdWNjZWVkZWQgYXQgNzkxIChvZmZzZXQgMiBsaW5lcykuCkh1bmsgIzI4IHN1Y2Nl ZWRlZCBhdCA4MTcgKG9mZnNldCAyIGxpbmVzKS4KSHVuayAjMjkgc3VjY2VlZGVkIGF0IDg0OSAo b2Zmc2V0IDIgbGluZXMpLgpIdW5rICMzMCBzdWNjZWVkZWQgYXQgODY5IChvZmZzZXQgMiBsaW5l cykuCkh1bmsgIzMxIHN1Y2NlZWRlZCBhdCA5NTEgKG9mZnNldCAzIGxpbmVzKS4KSHVuayAjMzIg c3VjY2VlZGVkIGF0IDk2NSAob2Zmc2V0IDMgbGluZXMpLgpIdW5rICMzMyBzdWNjZWVkZWQgYXQg OTg3IChvZmZzZXQgMyBsaW5lcykuCkh1bmsgIzM0IHN1Y2NlZWRlZCBhdCAxMDAxIChvZmZzZXQg MyBsaW5lcykuCkh1bmsgIzM1IHN1Y2NlZWRlZCBhdCAxMDE5IChvZmZzZXQgMyBsaW5lcykuCkh1 bmsgIzM2IHN1Y2NlZWRlZCBhdCAxMDM5IChvZmZzZXQgMyBsaW5lcykuCkh1bmsgIzM3IHN1Y2Nl ZWRlZCBhdCAxMDU0IChvZmZzZXQgMyBsaW5lcykuCkh1bmsgIzM4IHN1Y2NlZWRlZCBhdCAxMDY0 IChvZmZzZXQgMyBsaW5lcykuCkh1bmsgIzM5IHN1Y2NlZWRlZCBhdCAxMDc1IChvZmZzZXQgMyBs aW5lcykuCkh1bmsgIzQwIHN1Y2NlZWRlZCBhdCAxMTAwIChvZmZzZXQgMyBsaW5lcykuCkh1bmsg IzQxIHN1Y2NlZWRlZCBhdCAxMTE0IChvZmZzZXQgMyBsaW5lcykuCkh1bmsgIzQyIHN1Y2NlZWRl ZCBhdCAxMTI1IChvZmZzZXQgMyBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxpYi92aG9zdC92aG9z dC5jLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDY1NyAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzMg c3VjY2VlZGVkIGF0IDY2NiAob2Zmc2V0IDEgbGluZSkuCkh1bmsgIzQgc3VjY2VlZGVkIGF0IDY3 NCAob2Zmc2V0IDEgbGluZSkuCkNoZWNraW5nIHBhdGNoIG1lc29uX29wdGlvbnMudHh0Li4uCkFw cGxpZWQgcGF0Y2ggYXBwL3Rlc3QvcHJvY2Vzcy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggYXBw L3Rlc3QvdGVzdF9sY29yZXMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGFwcC90ZXN0L3Rlc3Rf bGlua19ib25kaW5nLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBhcHAvdGVzdC90ZXN0X2xwbV9w ZXJmLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBjb25maWcvbWVzb24uYnVpbGQgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL2J1cy9kcGFhL2Jhc2UvcWJtYW4vYm1hbl9kcml2ZXIuYyBj bGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvYnVzL2RwYWEvYmFzZS9xYm1hbi9kcGFhX3N5 cy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9idXMvZHBhYS9iYXNlL3FibWFuL3By b2Nlc3MuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvYnVzL2RwYWEvZHBhYV9idXMu YyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvYnVzL2ZzbG1jL3BvcnRhbC9kcGFhMl9o d19kcGlvLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL2NvbXByZXNzL21seDUvbWx4 NV9jb21wcmVzcy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9ldmVudC9kbGIyL3Bm L2Jhc2UvZGxiMl9vc2RlcC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYWZf eGRwL3J0ZV9ldGhfYWZfeGRwLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9h cmsvYXJrX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50 aWMvYXRsX2V0aGRldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYXRsYW50 aWMvYXRsX3R5cGVzLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9hdGxhbnRp Yy9od19hdGwvaHdfYXRsX3V0aWxzX2Z3MnguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2F4Z2JlL2F4Z2JlX2NvbW1vbi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvYXhnYmUvYXhnYmVfZGV2LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25l dC9heGdiZS9heGdiZV9ldGhkZXYuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0 L2F4Z2JlL2F4Z2JlX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv YXhnYmUvYXhnYmVfaTJjLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9heGdi ZS9heGdiZV9tZGlvLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9heGdiZS9h eGdiZV9waHlfaW1wbC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC9i bnh0LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfY3ByLmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfZXRoZGV2LmMgY2xl YW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfaXJxLmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L2JueHRfcmVwcy5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvYm54dC90Zl91bHAvYm54dF91bHAuYyBjbGVhbmx5LgpBcHBs aWVkIHBhdGNoIGRyaXZlcnMvbmV0L2JueHQvdGZfdWxwL2JueHRfdWxwLmggY2xlYW5seS4KQXBw bGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L3RmX3VscC91bHBfZmNfbWdyLmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9ibnh0L3RmX3VscC91bHBfZmNfbWdyLmggY2xlYW5s eS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZW5hL2Jhc2UvZW5hX3BsYXRfZHBkay5oIHdp dGggMiByZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvZW5pYy9lbmljLmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9pY2UvaWNlX2RjZl9wYXJlbnQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2lwbjNrZS9pcG4za2VfcmVwcmVzZW50b3IuYyBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQva25pL3J0ZV9ldGhfa25pLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBk cml2ZXJzL25ldC9tbHg1L2xpbnV4L21seDVfb3MuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L21seDUvbWx4NS5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NS9tbHg1LmggY2xlYW5seS4KQXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVf dHhwcC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS93aW5kb3dzL21s eDVfZmxvd19vcy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS93aW5k b3dzL21seDVfb3MuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L3FlZGUvYmFz ZS9iY21fb3NhbC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdmhvc3QvcnRl X2V0aF92aG9zdC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5oIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9yYXcvaWZwZ2EvaWZwZ2FfcmF3ZGV2LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL3ZkcGEvaWZjL2lmY3ZmX3ZkcGEuYyBjbGVhbmx5LgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGEuYyB3aXRoIDEgcmVqZWN0Li4uCkh1bmsg IzEgYXBwbGllZCBjbGVhbmx5LgpIdW5rICMyIGFwcGxpZWQgY2xlYW5seS4KSHVuayAjMyBhcHBs aWVkIGNsZWFubHkuCkh1bmsgIzQgYXBwbGllZCBjbGVhbmx5LgpIdW5rICM1IGFwcGxpZWQgY2xl YW5seS4KSHVuayAjNiBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzcgYXBwbGllZCBjbGVhbmx5LgpS ZWplY3RlZCBodW5rICM4LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3Zk cGEuaCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5nIHBhdGNoIGRy aXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYV9ldmVudC5jIHdpdGggOSByZWplY3RzLi4uClJlamVj dGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMuClJlamVjdGVk IGh1bmsgIzQuClJlamVjdGVkIGh1bmsgIzUuClJlamVjdGVkIGh1bmsgIzYuCkh1bmsgIzcgYXBw bGllZCBjbGVhbmx5LgpIdW5rICM4IGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjOS4K UmVqZWN0ZWQgaHVuayAjMTAuClJlamVjdGVkIGh1bmsgIzExLgpBcHBsaWVkIHBhdGNoIGV4YW1w bGVzL2tuaS9tYWluLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBleGFtcGxlcy9wZXJmb3JtYW5j ZS10aHJlYWQvcHRocmVhZF9zaGltL21haW4uYyBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBleGFt cGxlcy92aG9zdC9tYWluLmMgd2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBs aWVkIHBhdGNoIGV4YW1wbGVzL3Zob3N0X2Jsay92aG9zdF9ibGsuYyBjbGVhbmx5LgpBcHBsaWVk IHBhdGNoIGxpYi9lYWwvY29tbW9uL2VhbF9jb21tb25fb3B0aW9ucy5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggbGliL2VhbC9jb21tb24vZWFsX2NvbW1vbl9wcm9jLmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBsaWIvZWFsL2NvbW1vbi9lYWxfY29tbW9uX3RocmVhZC5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggbGliL2VhbC9jb21tb24vZWFsX2NvbW1vbl90cmFjZS5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggbGliL2VhbC9jb21tb24vZWFsX3ByaXZhdGUuaCBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGxpYi9lYWwvY29tbW9uL21hbGxvY19tcC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGli L2VhbC9jb21tb24vbWVzb24uYnVpbGQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2Zy ZWVic2QvZWFsLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2ZyZWVic2QvZWFsX2Fs YXJtLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2ZyZWVic2QvZWFsX2ludGVycnVw dHMuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9lYWwvZnJlZWJzZC9lYWxfdGhyZWFkLmMg Y2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2luY2x1ZGUvbWVzb24uYnVpbGQgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2luY2x1ZGUvcnRlX2xjb3JlLmggY2xlYW5seS4KQXBw bGllZCBwYXRjaCBsaWIvZWFsL2luY2x1ZGUvcnRlX3Blcl9sY29yZS5oIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggbGliL2VhbC9saW51eC9lYWwuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9l YWwvbGludXgvZWFsX2FsYXJtLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2xpbnV4 L2VhbF9pbnRlcnJ1cHRzLmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL2xpbnV4L2Vh bF90aHJlYWQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9lYWwvbGludXgvZWFsX3RpbWVy LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL3VuaXgvbWVzb24uYnVpbGQgY2xlYW5s eS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL3VuaXgvcnRlX3RocmVhZC5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggbGliL2VhbC92ZXJzaW9uLm1hcCBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9l YWwvd2luZG93cy9lYWwuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9lYWwvd2luZG93cy9l YWxfaW50ZXJydXB0cy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL2VhbC93aW5kb3dzL2Vh bF90aHJlYWQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGxpYi9lYWwvd2luZG93cy9lYWxfd2lu ZG93cy5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL2VhbC93aW5kb3dzL2luY2x1ZGUvbWVz b24uYnVpbGQgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBsaWIvZWFsL3dpbmRvd3MvaW5jbHVkZS9z Y2hlZC5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL2VhbC93aW5kb3dzL21lc29uLmJ1aWxk IGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBsaWIvZXRoZGV2L3J0ZV9ldGhkZXZfY29yZS5oIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggbGliL2V0aGRldi9ydGVfZmxvdy5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGli L2V2ZW50ZGV2L3J0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggbGliL3Zob3N0L2ZkX21hbi5jIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL3Zob3N0L2Zk X21hbi5oIGNsZWFubHkuCkFwcGxpZWQgcGF0Y2ggbGliL3Zob3N0L3NvY2tldC5jIGNsZWFubHku CkFwcGxpZWQgcGF0Y2ggbGliL3Zob3N0L3Zob3N0LmMgY2xlYW5seS4KQXBwbGllZCBwYXRjaCBt ZXNvbl9vcHRpb25zLnR4dCBjbGVhbmx5LgpkaWZmIGEvZHJpdmVycy9uZXQvZW5hL2Jhc2UvZW5h X3BsYXRfZHBkay5oIGIvZHJpdmVycy9uZXQvZW5hL2Jhc2UvZW5hX3BsYXRfZHBkay5oCShyZWpl Y3RlZCBodW5rcykKQEAgLTEyOSwxNCArMTI5LDE0IEBAIGRvIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogI2RlZmlu ZSBxX3dhaXRxdWV1ZV90CQkJXAogCXN0cnVjdCB7CQkJXAogCQlwdGhyZWFkX2NvbmRfdCBjb25k OwlcCi0JCXB0aHJlYWRfbXV0ZXhfdCBtdXRleDsJXAorCQlydGVfdGhyZWFkX211dGV4X3QgbXV0 ZXg7CVwKIAl9CiAKICNkZWZpbmUgZW5hX3dhaXRfcXVldWVfdCBxX3dhaXRxdWV1ZV90CiAKICNk ZWZpbmUgRU5BX1dBSVRfRVZFTlRfSU5JVCh3YWl0cXVldWUpCQkJCQlcCiAJZG8gewkJCQkJCQkJ XAotCQlwdGhyZWFkX211dGV4X2luaXQoJih3YWl0cXVldWUpLm11dGV4LCBOVUxMKTsJCVwKKwkJ cnRlX3RocmVhZF9tdXRleF9pbml0KCYod2FpdHF1ZXVlKS5tdXRleCk7CQlcCiAJCXB0aHJlYWRf Y29uZF9pbml0KCYod2FpdHF1ZXVlKS5jb25kLCBOVUxMKTsJCVwKIAl9IHdoaWxlICgwKQogCkBA IC0xNDksMTAgKzE0OSwxMCBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkJd2FpdC50dl9zZWMgPSBub3cu dHZfc2VjICsgdGltZW91dCAvIDEwMDAwMDBVTDsJCVwKIAkJdGltZW91dF91cyA9IHRpbWVvdXQg JSAxMDAwMDAwVUw7CQkJXAogCQl3YWl0LnR2X25zZWMgPSAobm93LnR2X3VzZWMgKyB0aW1lb3V0 X3VzKSAqIDEwMDBVTDsJXAotCQlwdGhyZWFkX211dGV4X2xvY2soJndhaXRldmVudC5tdXRleCk7 CQkJXAorCQlydGVfdGhyZWFkX211dGV4X2xvY2soJndhaXRldmVudC5tdXRleCk7CQlcCiAJCXB0 aHJlYWRfY29uZF90aW1lZHdhaXQoJndhaXRldmVudC5jb25kLAkJCVwKIAkJCQkmd2FpdGV2ZW50 Lm11dGV4LCAmd2FpdCk7CQlcCi0JCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ3YWl0ZXZlbnQubXV0 ZXgpOwkJCVwKKwkJcnRlX3RocmVhZF9tdXRleF91bmxvY2soJndhaXRldmVudC5tdXRleCk7CQlc CiAJfSB3aGlsZSAoMCkKICNkZWZpbmUgRU5BX1dBSVRfRVZFTlRfU0lHTkFMKHdhaXRldmVudCkg cHRocmVhZF9jb25kX3NpZ25hbCgmd2FpdGV2ZW50LmNvbmQpCiAvKiBwdGhyZWFkIGNvbmRpdGlv biBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhcm1lZCBhZnRlciB1c2FnZSAqLwpkaWZmIGEvZHJpdmVy cy92ZHBhL21seDUvbWx4NV92ZHBhLmMgYi9kcml2ZXJzL3ZkcGEvbWx4NS9tbHg1X3ZkcGEuYwko cmVqZWN0ZWQgaHVua3MpCkBAIC04MTYsNyArODE2LDcgQEAgbWx4NV92ZHBhX3BjaV9yZW1vdmUo c3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2KQogCQkJcHJpdi0+dmFyID0gTlVMTDsKIAkJ fQogCQltbHg1X2dsdWUtPmNsb3NlX2RldmljZShwcml2LT5jdHgpOwotCQlwdGhyZWFkX211dGV4 X2Rlc3Ryb3koJnByaXYtPnZxX2NvbmZpZ19sb2NrKTsKKwkJcnRlX3RocmVhZF9tdXRleF9kZXN0 cm95KCZwcml2LT52cV9jb25maWdfbG9jayk7CiAJCXJ0ZV9mcmVlKHByaXYpOwogCX0KIAlyZXR1 cm4gMDsKZGlmZiBhL2RyaXZlcnMvdmRwYS9tbHg1L21seDVfdmRwYS5oIGIvZHJpdmVycy92ZHBh L21seDUvbWx4NV92ZHBhLmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTE5LDEwICsxMTksMTAgQEAg ZW51bSB7CiBzdHJ1Y3QgbWx4NV92ZHBhX3ByaXYgewogCVRBSUxRX0VOVFJZKG1seDVfdmRwYV9w cml2KSBuZXh0OwogCXVpbnQ4X3QgY29uZmlndXJlZDsKLQlwdGhyZWFkX211dGV4X3QgdnFfY29u ZmlnX2xvY2s7CisJcnRlX3RocmVhZF9tdXRleF90IHZxX2NvbmZpZ19sb2NrOwogCXVpbnQ2NF90 IGxhc3RfdHJhZmZpY190aWM7Ci0JcHRocmVhZF90IHRpbWVyX3RpZDsKLQlwdGhyZWFkX211dGV4 X3QgdGltZXJfbG9jazsKKwlydGVfdGhyZWFkX3QgdGltZXJfdGlkOworCXJ0ZV90aHJlYWRfbXV0 ZXhfdCB0aW1lcl9sb2NrOwogCXB0aHJlYWRfY29uZF90IHRpbWVyX2NvbmQ7CiAJdm9sYXRpbGUg dWludDhfdCB0aW1lcl9vbjsKIAlpbnQgZXZlbnRfbW9kZTsKZGlmZiBhL2RyaXZlcnMvdmRwYS9t bHg1L21seDVfdmRwYV9ldmVudC5jIGIvZHJpdmVycy92ZHBhL21seDUvbWx4NV92ZHBhX2V2ZW50 LmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMjQ3LDE3ICsyNDcsMTcgQEAgbWx4NV92ZHBhX3BvbGxf aGFuZGxlKHZvaWQgKmFyZykKIAl1aW50MzJfdCBtYXg7CiAJdWludDY0X3QgY3VycmVudF90aWM7 CiAKLQlwdGhyZWFkX211dGV4X2xvY2soJnByaXYtPnRpbWVyX2xvY2spOworCXJ0ZV90aHJlYWRf bXV0ZXhfbG9jaygmcHJpdi0+dGltZXJfbG9jayk7CiAJd2hpbGUgKCFwcml2LT50aW1lcl9vbikK IAkJcHRocmVhZF9jb25kX3dhaXQoJnByaXYtPnRpbWVyX2NvbmQsICZwcml2LT50aW1lcl9sb2Nr KTsKLQlwdGhyZWFkX211dGV4X3VubG9jaygmcHJpdi0+dGltZXJfbG9jayk7CisJcnRlX3RocmVh ZF9tdXRleF91bmxvY2soJnByaXYtPnRpbWVyX2xvY2spOwogCXByaXYtPnRpbWVyX2RlbGF5X3Vz ID0gcHJpdi0+ZXZlbnRfbW9kZSA9PQogCQkJCQkgICAgTUxYNV9WRFBBX0VWRU5UX01PREVfRFlO QU1JQ19USU1FUiA/CiAJCQkJCSAgICAgIE1MWDVfVkRQQV9ERUZBVUxUX1RJTUVSX0RFTEFZX1VT IDoKIAkJCQkJCQkJIHByaXYtPmV2ZW50X3VzOwogCXdoaWxlICgxKSB7CiAJCW1heCA9IDA7Ci0J CXB0aHJlYWRfbXV0ZXhfbG9jaygmcHJpdi0+dnFfY29uZmlnX2xvY2spOworCQlydGVfdGhyZWFk X211dGV4X2xvY2soJnByaXYtPnZxX2NvbmZpZ19sb2NrKTsKIAkJZm9yIChpID0gMDsgaSA8IHBy aXYtPm5yX3ZpcnRxczsgaSsrKSB7CiAJCQljcSA9ICZwcml2LT52aXJ0cXNbaV0uZXFwLmNxOwog CQkJaWYgKGNxLT5jcV9vYmouY3EgJiYgIWNxLT5hcm1lZCkgewpAQCAtMjgxLDEzICsyODEsMTMg QEAgbWx4NV92ZHBhX3BvbGxfaGFuZGxlKHZvaWQgKmFyZykKIAkJCQlEUlZfTE9HKERFQlVHLCAi RGV2aWNlICVzIHRyYWZmaWMgd2FzIHN0b3BwZWQuIiwKIAkJCQkJcHJpdi0+dmRldi0+ZGV2aWNl LT5uYW1lKTsKIAkJCQltbHg1X3ZkcGFfYXJtX2FsbF9jcXMocHJpdik7Ci0JCQkJcHRocmVhZF9t dXRleF91bmxvY2soJnByaXYtPnZxX2NvbmZpZ19sb2NrKTsKLQkJCQlwdGhyZWFkX211dGV4X2xv Y2soJnByaXYtPnRpbWVyX2xvY2spOworCQkJCXJ0ZV90aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2 LT52cV9jb25maWdfbG9jayk7CisJCQkJcnRlX3RocmVhZF9tdXRleF9sb2NrKCZwcml2LT50aW1l cl9sb2NrKTsKIAkJCQlwcml2LT50aW1lcl9vbiA9IDA7CiAJCQkJd2hpbGUgKCFwcml2LT50aW1l cl9vbikKIAkJCQkJcHRocmVhZF9jb25kX3dhaXQoJnByaXYtPnRpbWVyX2NvbmQsCiAJCQkJCQkJ ICAmcHJpdi0+dGltZXJfbG9jayk7Ci0JCQkJcHRocmVhZF9tdXRleF91bmxvY2soJnByaXYtPnRp bWVyX2xvY2spOworCQkJCXJ0ZV90aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2LT50aW1lcl9sb2Nr KTsKIAkJCQlwcml2LT50aW1lcl9kZWxheV91cyA9IHByaXYtPmV2ZW50X21vZGUgPT0KIAkJCQkJ ICAgIE1MWDVfVkRQQV9FVkVOVF9NT0RFX0RZTkFNSUNfVElNRVIgPwogCQkJCQkgICAgICBNTFg1 X1ZEUEFfREVGQVVMVF9USU1FUl9ERUxBWV9VUyA6CkBAIC0yOTcsNyArMjk3LDcgQEAgbWx4NV92 ZHBhX3BvbGxfaGFuZGxlKHZvaWQgKmFyZykKIAkJfSBlbHNlIHsKIAkJCXByaXYtPmxhc3RfdHJh ZmZpY190aWMgPSBjdXJyZW50X3RpYzsKIAkJfQotCQlwdGhyZWFkX211dGV4X3VubG9jaygmcHJp di0+dnFfY29uZmlnX2xvY2spOworCQlydGVfdGhyZWFkX211dGV4X3VubG9jaygmcHJpdi0+dnFf Y29uZmlnX2xvY2spOwogCQltbHg1X3ZkcGFfdGltZXJfc2xlZXAocHJpdiwgbWF4KTsKIAl9CiAJ cmV0dXJuIE5VTEw7CkBAIC0zMTMsNyArMzEzLDcgQEAgbWx4NV92ZHBhX2ludGVycnVwdF9oYW5k bGVyKHZvaWQgKmNiX2FyZykKIAkJdWludDhfdCBidWZbc2l6ZW9mKHN0cnVjdCBtbHg1ZHZfZGV2 eF9hc3luY19ldmVudF9oZHIpICsgMTI4XTsKIAl9IG91dDsKIAotCXB0aHJlYWRfbXV0ZXhfbG9j aygmcHJpdi0+dnFfY29uZmlnX2xvY2spOworCXJ0ZV90aHJlYWRfbXV0ZXhfbG9jaygmcHJpdi0+ dnFfY29uZmlnX2xvY2spOwogCXdoaWxlIChtbHg1X2dsdWUtPmRldnhfZ2V0X2V2ZW50KHByaXYt PmV2ZW50YywgJm91dC5ldmVudF9yZXNwLAogCQkJCQkgc2l6ZW9mKG91dC5idWYpKSA+PQogCQkJ CSAgICAgICAoc3NpemVfdClzaXplb2Yob3V0LmV2ZW50X3Jlc3AuY29va2llKSkgewpAQCAtMzMy LDcgKzMzMiw3IEBAIG1seDVfdmRwYV9pbnRlcnJ1cHRfaGFuZGxlcih2b2lkICpjYl9hcmcpCiAJ CQlldmVudGZkX3dyaXRlKGNxLT5jYWxsZmQsIChldmVudGZkX3QpMSk7CiAJCWlmIChwcml2LT5l dmVudF9tb2RlID09IE1MWDVfVkRQQV9FVkVOVF9NT0RFX09OTFlfSU5URVJSVVBUKSB7CiAJCQlt bHg1X3ZkcGFfY3FfYXJtKHByaXYsIGNxKTsKLQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2 LT52cV9jb25maWdfbG9jayk7CisJCQlydGVfdGhyZWFkX211dGV4X3VubG9jaygmcHJpdi0+dnFf Y29uZmlnX2xvY2spOwogCQkJcmV0dXJuOwogCQl9CiAJCS8qIERvbid0IGFybSBhZ2FpbiAtIHRp bWVyIHdpbGwgdGFrZSBjb250cm9sLiAqLwpAQCAtMzQ3LDEzICszNDcsMTMgQEAgbWx4NV92ZHBh X2ludGVycnVwdF9oYW5kbGVyKHZvaWQgKmNiX2FyZykKIAogCS8qIFRyYWZmaWMgZGV0ZWN0ZWQ6 IG1ha2Ugc3VyZSB0aW1lciBpcyBvbi4gKi8KIAlwcml2LT5sYXN0X3RyYWZmaWNfdGljID0gcnRl X3JkdHNjKCk7Ci0JcHRocmVhZF9tdXRleF9sb2NrKCZwcml2LT50aW1lcl9sb2NrKTsKKwlydGVf dGhyZWFkX211dGV4X2xvY2soJnByaXYtPnRpbWVyX2xvY2spOwogCWlmICghcHJpdi0+dGltZXJf b24pIHsKIAkJcHJpdi0+dGltZXJfb24gPSAxOwogCQlwdGhyZWFkX2NvbmRfc2lnbmFsKCZwcml2 LT50aW1lcl9jb25kKTsKIAl9Ci0JcHRocmVhZF9tdXRleF91bmxvY2soJnByaXYtPnRpbWVyX2xv Y2spOwotCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZwcml2LT52cV9jb25maWdfbG9jayk7CisJcnRl X3RocmVhZF9tdXRleF91bmxvY2soJnByaXYtPnRpbWVyX2xvY2spOworCXJ0ZV90aHJlYWRfbXV0 ZXhfdW5sb2NrKCZwcml2LT52cV9jb25maWdfbG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC01 MDIsNDkgKzUwMiw0MSBAQCBtbHg1X3ZkcGFfY3FlX2V2ZW50X3NldHVwKHN0cnVjdCBtbHg1X3Zk cGFfcHJpdiAqcHJpdikKIHsKIAlpbnQgcmV0OwogCXJ0ZV9jcHVzZXRfdCBjcHVzZXQ7Ci0JcHRo cmVhZF9hdHRyX3QgYXR0cjsKKwlydGVfdGhyZWFkX2F0dHJfdCBhdHRyOwogCWNoYXIgbmFtZVsx Nl07Ci0JY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtIHNwID0gewotCQkuc2NoZWRfcHJpb3JpdHkg PSBzY2hlZF9nZXRfcHJpb3JpdHlfbWF4KFNDSEVEX1JSKSwKLQl9OwogCiAJaWYgKCFwcml2LT5l dmVudGMpCiAJCS8qIEFsbCB2aXJ0cXMgYXJlIGluIHBvbGwgbW9kZS4gKi8KIAkJcmV0dXJuIDA7 CiAJaWYgKHByaXYtPmV2ZW50X21vZGUgIT0gTUxYNV9WRFBBX0VWRU5UX01PREVfT05MWV9JTlRF UlJVUFQpIHsKLQkJcHRocmVhZF9tdXRleF9pbml0KCZwcml2LT50aW1lcl9sb2NrLCBOVUxMKTsK KwkJcnRlX3RocmVhZF9tdXRleF9pbml0KCZwcml2LT50aW1lcl9sb2NrKTsKIAkJcHRocmVhZF9j b25kX2luaXQoJnByaXYtPnRpbWVyX2NvbmQsIE5VTEwpOwogCQlwcml2LT50aW1lcl9vbiA9IDA7 Ci0JCXB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKLQkJcmV0ID0gcHRocmVhZF9hdHRyX3NldHNj aGVkcG9saWN5KCZhdHRyLCBTQ0hFRF9SUik7CisJCXJ0ZV90aHJlYWRfYXR0cl9pbml0KCZhdHRy KTsKKwkJQ1BVX1pFUk8oJmNwdXNldCk7CisJCWlmIChwcml2LT5ldmVudF9jb3JlICE9IC0xKQor CQkJQ1BVX1NFVChwcml2LT5ldmVudF9jb3JlLCAmY3B1c2V0KTsKKwkJZWxzZQorCQkJY3B1c2V0 ID0gcnRlX2xjb3JlX2NwdXNldChydGVfZ2V0X21haW5fbGNvcmUoKSk7CisJCXJldCA9IHJ0ZV90 aHJlYWRfYXR0cl9zZXRfYWZmaW5pdHkoJmF0dHIsICZjcHVzZXQpOwogCQlpZiAocmV0KSB7Ci0J CQlEUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZXQgdGhyZWFkIHNjaGVkIHBvbGljeSA9IFJSLiIp OworCQkJRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gc2V0IHRocmVhZCBhZmZpbml0eS4iKTsKIAkJ CXJldHVybiAtMTsKIAkJfQotCQlyZXQgPSBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwYXJhbSgmYXR0 ciwgJnNwKTsKKwkJcmV0ID0gcnRlX3RocmVhZF9hdHRyX3NldF9wcmlvcml0eSgmYXR0ciwKKwkJ CQkJUlRFX1RIUkVBRF9QUklPUklUWV9SRUFMVElNRV9DUklUSUNBTCk7CiAJCWlmIChyZXQpIHsK IAkJCURSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHNldCB0aHJlYWQgcHJpb3JpdHkuIik7CiAJCQly ZXR1cm4gLTE7CiAJCX0KLQkJcmV0ID0gcHRocmVhZF9jcmVhdGUoJnByaXYtPnRpbWVyX3RpZCwg JmF0dHIsCisJCXJldCA9IHJ0ZV90aHJlYWRfY3JlYXRlKCZwcml2LT50aW1lcl90aWQsICZhdHRy LAogCQkJCSAgICAgbWx4NV92ZHBhX3BvbGxfaGFuZGxlLCAodm9pZCAqKXByaXYpOwogCQlpZiAo cmV0KSB7CiAJCQlEUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBjcmVhdGUgdGltZXIgdGhyZWFkLiIp OwogCQkJcmV0dXJuIC0xOwogCQl9Ci0JCUNQVV9aRVJPKCZjcHVzZXQpOwotCQlpZiAocHJpdi0+ ZXZlbnRfY29yZSAhPSAtMSkKLQkJCUNQVV9TRVQocHJpdi0+ZXZlbnRfY29yZSwgJmNwdXNldCk7 Ci0JCWVsc2UKLQkJCWNwdXNldCA9IHJ0ZV9sY29yZV9jcHVzZXQocnRlX2dldF9tYWluX2xjb3Jl KCkpOwotCQlyZXQgPSBwdGhyZWFkX3NldGFmZmluaXR5X25wKHByaXYtPnRpbWVyX3RpZCwKLQkJ CQkJICAgICBzaXplb2YoY3B1c2V0KSwgJmNwdXNldCk7Ci0JCWlmIChyZXQpIHsKLQkJCURSVl9M T0coRVJSLCAiRmFpbGVkIHRvIHNldCB0aHJlYWQgYWZmaW5pdHkuIik7Ci0JCQlnb3RvIGVycm9y OwotCQl9CiAJCXNucHJpbnRmKG5hbWUsIHNpemVvZihuYW1lKSwgInZEUEEtbWx4NS0lZCIsIHBy aXYtPnZpZCk7Ci0JCXJldCA9IHB0aHJlYWRfc2V0bmFtZV9ucChwcml2LT50aW1lcl90aWQsIG5h bWUpOworCQlyZXQgPSBwdGhyZWFkX3NldG5hbWVfbnAocHJpdi0+dGltZXJfdGlkLm9wYXF1ZV9p ZCwgbmFtZSk7CiAJCWlmIChyZXQpIHsKIAkJCURSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHNldCB0 aW1lciB0aHJlYWQgbmFtZS4iKTsKIAkJCXJldHVybiAtMTsKQEAgLTU2OSw3ICs1NjEsNiBAQCBt bHg1X3ZkcGFfY3FlX2V2ZW50X3Vuc2V0KHN0cnVjdCBtbHg1X3ZkcGFfcHJpdiAqcHJpdikKIHsK IAlpbnQgcmV0cmllcyA9IE1MWDVfVkRQQV9JTlRSX1JFVFJJRVM7CiAJaW50IHJldCA9IC1FQUdB SU47Ci0Jdm9pZCAqc3RhdHVzOwogCiAJaWYgKHByaXYtPmludHJfaGFuZGxlLmZkKSB7CiAJCXdo aWxlIChyZXRyaWVzLS0gJiYgcmV0ID09IC1FQUdBSU4pIHsKQEAgLTU4NSwxMSArNTc2LDExIEBA IG1seDVfdmRwYV9jcWVfZXZlbnRfdW5zZXQoc3RydWN0IG1seDVfdmRwYV9wcml2ICpwcml2KQog CQl9CiAJCW1lbXNldCgmcHJpdi0+aW50cl9oYW5kbGUsIDAsIHNpemVvZihwcml2LT5pbnRyX2hh bmRsZSkpOwogCX0KLQlpZiAocHJpdi0+dGltZXJfdGlkKSB7Ci0JCXB0aHJlYWRfY2FuY2VsKHBy aXYtPnRpbWVyX3RpZCk7Ci0JCXB0aHJlYWRfam9pbihwcml2LT50aW1lcl90aWQsICZzdGF0dXMp OworCWlmIChwcml2LT50aW1lcl90aWQub3BhcXVlX2lkKSB7CisJCXJ0ZV90aHJlYWRfY2FuY2Vs KHByaXYtPnRpbWVyX3RpZCk7CisJCXJ0ZV90aHJlYWRfam9pbihwcml2LT50aW1lcl90aWQsIE5V TEwpOwogCX0KLQlwcml2LT50aW1lcl90aWQgPSAwOworCXByaXYtPnRpbWVyX3RpZC5vcGFxdWVf aWQgPSAwOwogfQogCiB2b2lkCmRpZmYgYS9leGFtcGxlcy92aG9zdC9tYWluLmMgYi9leGFtcGxl cy92aG9zdC9tYWluLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTYzNSw3ICsxNjM1LDcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCXVuc2lnbmVkIG5iX3BvcnRzLCB2YWxpZF9udW1f cG9ydHM7CiAJaW50IHJldCwgaTsKIAl1aW50MTZfdCBwb3J0aWQ7Ci0Jc3RhdGljIHB0aHJlYWRf dCB0aWQ7CisJc3RhdGljIHJ0ZV90aHJlYWRfdCB0aWQ7CiAJdWludDY0X3QgZmxhZ3MgPSAwOwog CiAJc2lnbmFsKFNJR0lOVCwgc2lnaW50X2hhbmRsZXIpOwoKaHR0cHM6Ly9sYWIuZHBkay5vcmcv cmVzdWx0cy9kYXNoYm9hcmQvcGF0Y2hzZXRzLzE3MjgwLwoKVU5ILUlPTCBEUERLIENvbW11bml0 eSBMYWIK --===============3241741517718457557==--