From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:38472 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750720AbdIOE5r (ORCPT ); Fri, 15 Sep 2017 00:57:47 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 9153E10281F8B for ; Thu, 14 Sep 2017 21:57:42 -0700 (PDT) Date: Thu, 14 Sep 2017 21:57:40 -0700 (PDT) Message-Id: <20170914.215740.487357971543540932.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Sep_14_21_57_40_2017_050)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Sep_14_21_57_40_2017_050)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.9, v4.12, and v4.13 -stable, respectively. Thank you. ----Next_Part(Thu_Sep_14_21_57_40_2017_050)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSAyNDc0M2FjZjIwM2IzOWE5ZjU0YjkwNjc0NTJhNWFjNWU1NjRmMjVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpE YXRlOiBGcmksIDE4IEF1ZyAyMDE3IDE0OjQwOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS8y NV0gaXB2NjogYWNjZXB0IDY0ayAtIDEgcGFja2V0IGxlbmd0aCBpbgogaXA2X2ZpbmRfMXN0ZnJh Z29wdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAzZGUzM2UxYmEwNTA2NzIzYWIyNTczNGUwOThjZjI4 MGVjYzM0NzU2IF0KCkEgcGFja2V0IGxlbmd0aCBvZiBleGFjdGx5IElQVjZfTUFYUExFTiBpcyBh bGxvd2VkLCB3ZSBzaG91bGQKcmVmdXNlIHBhcnNpbmcgb3B0aW9ucyBvbmx5IGlmIHRoZSBzaXpl IGlzIDY0S2lCIG9yIG1vcmUuCgpXaGlsZSBhdCBpdCwgcmVtb3ZlIG9uZSBleHRyYSB2YXJpYWJs ZSBhbmQgb25lIGFzc2lnbm1lbnQgd2hpY2gKd2VyZSBhbHNvIGludHJvZHVjZWQgYnkgdGhlIGNv bW1pdCB0aGF0IGludHJvZHVjZWQgdGhlIHNpemUKY2hlY2suIENoZWNraW5nIHRoZSBzdW0gJ29m ZnNldCArIGxlbicgYW5kIG9ubHkgbGF0ZXIgYWRkaW5nCidsZW4nIHRvICdvZmZzZXQnIGRvZXNu J3QgcHJvdmlkZSBhbnkgYWR2YW50YWdlIG92ZXIgZGlyZWN0bHkKc3VtbWluZyB0byAnb2Zmc2V0 JyBhbmQgY2hlY2tpbmcgaXQuCgpGaXhlczogNjM5OWYxZmFlNGVjICgiaXB2NjogYXZvaWQgb3Zl cmZsb3cgb2Ygb2Zmc2V0IGluIGlwNl9maW5kXzFzdGZyYWdvcHQiKQpTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvb3V0cHV0X2NvcmUu YyB8IDYgKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L291dHB1dF9jb3JlLmMgYi9uZXQvaXB2Ni9vdXRw dXRfY29yZS5jCmluZGV4IGFiYjJjMzA3ZmJlOC4uYTMzOGJiYzMzY2YzIDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9vdXRwdXRfY29yZS5jCisrKyBiL25ldC9pcHY2L291dHB1dF9jb3JlLmMKQEAgLTg2 LDcgKzg2LDYgQEAgaW50IGlwNl9maW5kXzFzdGZyYWdvcHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwg dTggKipuZXh0aGRyKQogCiAJd2hpbGUgKG9mZnNldCA8PSBwYWNrZXRfbGVuKSB7CiAJCXN0cnVj dCBpcHY2X29wdF9oZHIgKmV4dGhkcjsKLQkJdW5zaWduZWQgaW50IGxlbjsKIAogCQlzd2l0Y2gg KCoqbmV4dGhkcikgewogCkBAIC0xMTIsMTAgKzExMSw5IEBAIGludCBpcDZfZmluZF8xc3RmcmFn b3B0KHN0cnVjdCBza19idWZmICpza2IsIHU4ICoqbmV4dGhkcikKIAogCQlleHRoZHIgPSAoc3Ry dWN0IGlwdjZfb3B0X2hkciAqKShza2JfbmV0d29ya19oZWFkZXIoc2tiKSArCiAJCQkJCQkgb2Zm c2V0KTsKLQkJbGVuID0gaXB2Nl9vcHRsZW4oZXh0aGRyKTsKLQkJaWYgKGxlbiArIG9mZnNldCA+ PSBJUFY2X01BWFBMRU4pCisJCW9mZnNldCArPSBpcHY2X29wdGxlbihleHRoZHIpOworCQlpZiAo b2Zmc2V0ID4gSVBWNl9NQVhQTEVOKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCW9mZnNldCArPSBs ZW47CiAJCSpuZXh0aGRyID0gJmV4dGhkci0+bmV4dGhkcjsKIAl9CiAKLS0gCjIuMTMuNQoKCkZy b20gZjIyZjUxMDRlMTFkYjBkYzgxMTVmM2U2ZTMzYjk2MDM1NTlkMmRmYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogV2VpIFdhbmcgPHdlaXdhbkBnb29nbGUuY29tPgpEYXRlOiBNb24s IDIxIEF1ZyAyMDE3IDA5OjQ3OjEwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8yNV0gaXB2Njog YWRkIHJjdSBncmFjZSBwZXJpb2QgYmVmb3JlIGZyZWVpbmcgZmliNl9ub2RlCgpbIFVwc3RyZWFt IGNvbW1pdCBjNWNmZjg1NjFkMmQwMDA2ZTk3MmJkMTE0YWZkNTFmMDgyZmVlNzdjIF0KCldlIGN1 cnJlbnRseSBrZWVwIHJ0LT5ydDZpX25vZGUgcG9pbnRpbmcgdG8gdGhlIGZpYjZfbm9kZSBmb3Ig dGhlIHJvdXRlLgpBbmQgc29tZSBmdW5jdGlvbnMgbWFrZSB1c2Ugb2YgdGhpcyBwb2ludGVyIHRv IGRlcmVmZXJlbmNlIHRoZSBmaWI2X25vZGUKZnJvbSBydCBzdHJ1Y3R1cmUsIGUuZy4gcnQ2X2No ZWNrKCkuIEhvd2V2ZXIsIGFzIHRoZXJlIGlzIG5laXRoZXIKcmVmY291bnQgbm9yIHJjdSB0YWtl biB3aGVuIGRlcmVmZXJlbmNpbmcgcnQtPnJ0Nmlfbm9kZSwgaXQgY291bGQKcG90ZW50aWFsbHkg Y2F1c2UgY3Jhc2hlcyBhcyBydC0+cnQ2aV9ub2RlIGNvdWxkIGJlIHNldCB0byBOVUxMIGJ5IG90 aGVyCkNQVXMgd2hlbiBkb2luZyBhIHJvdXRlIGRlbGV0aW9uLgpUaGlzIHBhdGNoIGludHJvZHVj ZXMgYW4gcmN1IGdyYWNlIHBlcmlvZCBiZWZvcmUgZnJlZWluZyBmaWI2X25vZGUgYW5kCm1ha2Vz IHN1cmUgdGhlIGZ1bmN0aW9ucyB0aGF0IGRlcmVmZXJlbmNlIGl0IHRha2VzIHJjdV9yZWFkX2xv Y2soKS4KCk5vdGU6IHRoZXJlIGlzIG5vICJGaXhlcyIgdGFnIGJlY2F1c2UgdGhpcyBidWcgd2Fz IHRoZXJlIGluIGEgdmVyeQplYXJseSBzdGFnZS4KClNpZ25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3 ZWl3YW5AZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KQWNrZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L2lwNl9maWIuaCB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogbmV0L2lw djYvaXA2X2ZpYi5jICAgIHwgMjAgKysrKysrKysrKysrKysrKy0tLS0KIG5ldC9pcHY2L3JvdXRl LmMgICAgICB8IDE0ICsrKysrKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXA2X2ZpYi5o IGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCmluZGV4IGE3NGUyYWE0MGVmNC4uYzE3MTgwMTE4ODk3 IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcDZfZmliLmgKKysrIGIvaW5jbHVkZS9uZXQvaXA2 X2ZpYi5oCkBAIC02OCw2ICs2OCw3IEBAIHN0cnVjdCBmaWI2X25vZGUgewogCV9fdTE2CQkJZm5f ZmxhZ3M7CiAJaW50CQkJZm5fc2VybnVtOwogCXN0cnVjdCBydDZfaW5mbwkJKnJyX3B0cjsKKwlz dHJ1Y3QgcmN1X2hlYWQJCXJjdTsKIH07CiAKICNpZm5kZWYgQ09ORklHX0lQVjZfU1VCVFJFRVMK QEAgLTE2NSwxMyArMTY2LDQwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBydDZfdXBkYXRlX2V4cGly ZXMoc3RydWN0IHJ0Nl9pbmZvICpydDAsIGludCB0aW1lb3V0KQogCXJ0MC0+cnQ2aV9mbGFncyB8 PSBSVEZfRVhQSVJFUzsKIH0KIAorLyogRnVuY3Rpb24gdG8gc2FmZWx5IGdldCBmbi0+c2VybnVt IGZvciBwYXNzZWQgaW4gcnQKKyAqIGFuZCBzdG9yZSByZXN1bHQgaW4gcGFzc2VkIGluIGNvb2tp ZS4KKyAqIFJldHVybiB0cnVlIGlmIHdlIGNhbiBnZXQgY29va2llIHNhZmVseQorICogUmV0dXJu IGZhbHNlIGlmIG5vdAorICovCitzdGF0aWMgaW5saW5lIGJvb2wgcnQ2X2dldF9jb29raWVfc2Fm ZShjb25zdCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LAorCQkJCSAgICAgICB1MzIgKmNvb2tpZSkKK3sK KwlzdHJ1Y3QgZmliNl9ub2RlICpmbjsKKwlib29sIHN0YXR1cyA9IGZhbHNlOworCisJcmN1X3Jl YWRfbG9jaygpOworCWZuID0gcmN1X2RlcmVmZXJlbmNlKHJ0LT5ydDZpX25vZGUpOworCisJaWYg KGZuKSB7CisJCSpjb29raWUgPSBmbi0+Zm5fc2VybnVtOworCQlzdGF0dXMgPSB0cnVlOworCX0K KworCXJjdV9yZWFkX3VubG9jaygpOworCXJldHVybiBzdGF0dXM7Cit9CisKIHN0YXRpYyBpbmxp bmUgdTMyIHJ0Nl9nZXRfY29va2llKGNvbnN0IHN0cnVjdCBydDZfaW5mbyAqcnQpCiB7CisJdTMy IGNvb2tpZSA9IDA7CisKIAlpZiAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfUENQVSB8fAogCSAgICAo dW5saWtlbHkocnQtPmRzdC5mbGFncyAmIERTVF9OT0NBQ0hFKSAmJiBydC0+ZHN0LmZyb20pKQog CQlydCA9IChzdHJ1Y3QgcnQ2X2luZm8gKikocnQtPmRzdC5mcm9tKTsKIAotCXJldHVybiBydC0+ cnQ2aV9ub2RlID8gcnQtPnJ0Nmlfbm9kZS0+Zm5fc2VybnVtIDogMDsKKwlydDZfZ2V0X2Nvb2tp ZV9zYWZlKHJ0LCAmY29va2llKTsKKworCXJldHVybiBjb29raWU7CiB9CiAKIHN0YXRpYyBpbmxp bmUgdm9pZCBpcDZfcnRfcHV0KHN0cnVjdCBydDZfaW5mbyAqcnQpCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9pcDZfZmliLmMgYi9uZXQvaXB2Ni9pcDZfZmliLmMKaW5kZXggZmYzODk1OTFhMzQwLi5l ZDgzMmIzZDliNzAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2 Ni9pcDZfZmliLmMKQEAgLTE0OCwxMSArMTQ4LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgZmliNl9ub2Rl ICpub2RlX2FsbG9jKHZvaWQpCiAJcmV0dXJuIGZuOwogfQogCi1zdGF0aWMgdm9pZCBub2RlX2Zy ZWUoc3RydWN0IGZpYjZfbm9kZSAqZm4pCitzdGF0aWMgdm9pZCBub2RlX2ZyZWVfaW1tZWRpYXRl KHN0cnVjdCBmaWI2X25vZGUgKmZuKQoreworCWttZW1fY2FjaGVfZnJlZShmaWI2X25vZGVfa21l bSwgZm4pOworfQorCitzdGF0aWMgdm9pZCBub2RlX2ZyZWVfcmN1KHN0cnVjdCByY3VfaGVhZCAq aGVhZCkKIHsKKwlzdHJ1Y3QgZmliNl9ub2RlICpmbiA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1 Y3QgZmliNl9ub2RlLCByY3UpOworCiAJa21lbV9jYWNoZV9mcmVlKGZpYjZfbm9kZV9rbWVtLCBm bik7CiB9CiAKK3N0YXRpYyB2b2lkIG5vZGVfZnJlZShzdHJ1Y3QgZmliNl9ub2RlICpmbikKK3sK KwljYWxsX3JjdSgmZm4tPnJjdSwgbm9kZV9mcmVlX3JjdSk7Cit9CisKIHN0YXRpYyB2b2lkIHJ0 Nl9yY3VfZnJlZShzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQogewogCWNhbGxfcmN1KCZydC0+ZHN0LnJj dV9oZWFkLCBkc3RfcmN1X2ZyZWUpOwpAQCAtNTg5LDkgKzYwMSw5IEBAIHN0YXRpYyBzdHJ1Y3Qg ZmliNl9ub2RlICpmaWI2X2FkZF8xKHN0cnVjdCBmaWI2X25vZGUgKnJvb3QsCiAKIAkJaWYgKCFp biB8fCAhbG4pIHsKIAkJCWlmIChpbikKLQkJCQlub2RlX2ZyZWUoaW4pOworCQkJCW5vZGVfZnJl ZV9pbW1lZGlhdGUoaW4pOwogCQkJaWYgKGxuKQotCQkJCW5vZGVfZnJlZShsbik7CisJCQkJbm9k ZV9mcmVlX2ltbWVkaWF0ZShsbik7CiAJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAkJfQog CkBAIC0xMDIwLDcgKzEwMzIsNyBAQCBpbnQgZmliNl9hZGQoc3RydWN0IGZpYjZfbm9kZSAqcm9v dCwgc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJCQkgICByb290LCBhbmQgdGhlbiAoaW4gZmFpbHVy ZSkgc3RhbGUgbm9kZQogCQkJCSAgIGluIG1haW4gdHJlZS4KIAkJCQkgKi8KLQkJCQlub2RlX2Zy ZWUoc2ZuKTsKKwkJCQlub2RlX2ZyZWVfaW1tZWRpYXRlKHNmbik7CiAJCQkJZXJyID0gUFRSX0VS Uihzbik7CiAJCQkJZ290byBmYWlsdXJlOwogCQkJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91 dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggNTc2NGE4NDQ2NWY4Li42MzI5ODdmZmMwN2Qg MTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAt MTI2Nyw3ICsxMjY3LDkgQEAgc3RhdGljIHZvaWQgcnQ2X2RzdF9mcm9tX21ldHJpY3NfY2hlY2so c3RydWN0IHJ0Nl9pbmZvICpydCkKIAogc3RhdGljIHN0cnVjdCBkc3RfZW50cnkgKnJ0Nl9jaGVj ayhzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCB1MzIgY29va2llKQogewotCWlmICghcnQtPnJ0Nmlfbm9k ZSB8fCAocnQtPnJ0Nmlfbm9kZS0+Zm5fc2VybnVtICE9IGNvb2tpZSkpCisJdTMyIHJ0X2Nvb2tp ZTsKKworCWlmICghcnQ2X2dldF9jb29raWVfc2FmZShydCwgJnJ0X2Nvb2tpZSkgfHwgcnRfY29v a2llICE9IGNvb2tpZSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlpZiAocnQ2X2NoZWNrX2V4cGlyZWQo cnQpKQpAQCAtMTMzNSw4ICsxMzM3LDE0IEBAIHN0YXRpYyB2b2lkIGlwNl9saW5rX2ZhaWx1cmUo c3RydWN0IHNrX2J1ZmYgKnNrYikKIAkJaWYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX0NBQ0hFKSB7 CiAJCQlkc3RfaG9sZCgmcnQtPmRzdCk7CiAJCQlpcDZfZGVsX3J0KHJ0KTsKLQkJfSBlbHNlIGlm IChydC0+cnQ2aV9ub2RlICYmIChydC0+cnQ2aV9mbGFncyAmIFJURl9ERUZBVUxUKSkgewotCQkJ cnQtPnJ0Nmlfbm9kZS0+Zm5fc2VybnVtID0gLTE7CisJCX0gZWxzZSB7CisJCQlzdHJ1Y3QgZmli Nl9ub2RlICpmbjsKKworCQkJcmN1X3JlYWRfbG9jaygpOworCQkJZm4gPSByY3VfZGVyZWZlcmVu Y2UocnQtPnJ0Nmlfbm9kZSk7CisJCQlpZiAoZm4gJiYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX0RF RkFVTFQpKQorCQkJCWZuLT5mbl9zZXJudW0gPSAtMTsKKwkJCXJjdV9yZWFkX3VubG9jaygpOwog CQl9CiAJfQogfQotLSAKMi4xMy41CgoKRnJvbSBlN2MwNGIwYzA2ZmE0ZDAxNTM3ODgwYWE1MjIw ZWRmZjQ4ZGUzODczIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXZWkgV2FuZyA8d2Vp d2FuQGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMjUgQXVnIDIwMTcgMTU6MDM6MTAgLTA3MDAKU3Vi amVjdDogW1BBVENIIDAzLzI1XSBpcHY2OiBmaXggc3BhcnNlIHdhcm5pbmcgb24gcnQ2aV9ub2Rl CgpbIFVwc3RyZWFtIGNvbW1pdCA0ZTU4N2VhNzFiZjkyNGY3ZGFjNjIxZjEzNTE2NTNiZDQxZTQ0 NmNiIF0KCkNvbW1pdCBjNWNmZjg1NjFkMmQgYWRkcyByY3UgZ3JhY2UgcGVyaW9kIGJlZm9yZSBm cmVlaW5nIGZpYjZfbm9kZS4gVGhpcwpnZW5lcmF0ZXMgYSBuZXcgc3BhcnNlIHdhcm5pbmcgb24g cnQtPnJ0Nmlfbm9kZSByZWxhdGVkIGNvZGU6CiAgbmV0L2lwdjYvcm91dGUuYzoxMzk0OjMwOiBl cnJvcjogaW5jb21wYXRpYmxlIHR5cGVzIGluIGNvbXBhcmlzb24KICBleHByZXNzaW9uIChkaWZm ZXJlbnQgYWRkcmVzcyBzcGFjZXMpCiAgLi9pbmNsdWRlL25ldC9pcDZfZmliLmg6MTg3OjE0OiBl cnJvcjogaW5jb21wYXRpYmxlIHR5cGVzIGluIGNvbXBhcmlzb24KICBleHByZXNzaW9uIChkaWZm ZXJlbnQgYWRkcmVzcyBzcGFjZXMpCgpUaGlzIGNvbW1pdCBhZGRzICJfX3JjdSIgdGFnIGZvciBy dDZpX25vZGUgYW5kIG1ha2VzIHN1cmUgY29ycmVzcG9uZGluZwpyY3UgQVBJIGlzIHVzZWQgZm9y IGl0LgpBZnRlciB0aGlzIGZpeCwgc3BhcnNlIG5vIGxvbmdlciBnZW5lcmF0ZXMgdGhlIGFib3Zl IHdhcm5pbmcuCgpGaXhlczogYzVjZmY4NTYxZDJkICgiaXB2NjogYWRkIHJjdSBncmFjZSBwZXJp b2QgYmVmb3JlIGZyZWVpbmcgZmliNl9ub2RlIikKU2lnbmVkLW9mZi1ieTogV2VpIFdhbmcgPHdl aXdhbkBnb29nbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUu Y29tPgpBY2tlZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9u ZXQvaXA2X2ZpYi5oIHwgIDIgKy0KIG5ldC9pcHY2L2FkZHJjb25mLmMgICB8ICAyICstCiBuZXQv aXB2Ni9pcDZfZmliLmMgICAgfCAxMSArKysrKysrLS0tLQogbmV0L2lwdjYvcm91dGUuYyAgICAg IHwgIDMgKystCiA0IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXA2 X2ZpYi5oCmluZGV4IGMxNzE4MDExODg5Ny4uYTZiY2IxOGFjNGMzIDEwMDY0NAotLS0gYS9pbmNs dWRlL25ldC9pcDZfZmliLmgKKysrIGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCkBAIC0xMDMsNyAr MTAzLDcgQEAgc3RydWN0IHJ0Nl9pbmZvIHsKIAkgKiB0aGUgc2FtZSBjYWNoZSBsaW5lLgogCSAq LwogCXN0cnVjdCBmaWI2X3RhYmxlCQkqcnQ2aV90YWJsZTsKLQlzdHJ1Y3QgZmliNl9ub2RlCQkq cnQ2aV9ub2RlOworCXN0cnVjdCBmaWI2X25vZGUgX19yY3UJCSpydDZpX25vZGU7CiAKIAlzdHJ1 Y3QgaW42X2FkZHIJCQlydDZpX2dhdGV3YXk7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJj b25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IGIyY2FiZGE3MjMyMC4uY2MxMDFiMWJl OTAzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJj b25mLmMKQEAgLTU0NDMsNyArNTQ0Myw3IEBAIHN0YXRpYyB2b2lkIF9faXB2Nl9pZmFfbm90aWZ5 KGludCBldmVudCwgc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwKQogCQkgKiBvdXIgREFEIHByb2Nl c3MsIHNvIHdlIGRvbid0IG5lZWQKIAkJICogdG8gZG8gaXQgYWdhaW4KIAkJICovCi0JCWlmICgh KGlmcC0+cnQtPnJ0Nmlfbm9kZSkpCisJCWlmICghcmN1X2FjY2Vzc19wb2ludGVyKGlmcC0+cnQt PnJ0Nmlfbm9kZSkpCiAJCQlpcDZfaW5zX3J0KGlmcC0+cnQpOwogCQlpZiAoaWZwLT5pZGV2LT5j bmYuZm9yd2FyZGluZykKIAkJCWFkZHJjb25mX2pvaW5fYW55Y2FzdChpZnApOwpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4IGVkODMyYjNk OWI3MC4uYWY3NDQyMjExZmZiIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIv bmV0L2lwdjYvaXA2X2ZpYi5jCkBAIC04NzQsNyArODc0LDcgQEAgc3RhdGljIGludCBmaWI2X2Fk ZF9ydDJub2RlKHN0cnVjdCBmaWI2X25vZGUgKmZuLCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LAogCiAJ CXJ0LT5kc3QucnQ2X25leHQgPSBpdGVyOwogCQkqaW5zID0gcnQ7Ci0JCXJ0LT5ydDZpX25vZGUg PSBmbjsKKwkJcmN1X2Fzc2lnbl9wb2ludGVyKHJ0LT5ydDZpX25vZGUsIGZuKTsKIAkJYXRvbWlj X2luYygmcnQtPnJ0NmlfcmVmKTsKIAkJaW5ldDZfcnRfbm90aWZ5KFJUTV9ORVdST1VURSwgcnQs IGluZm8sIG5sZmxhZ3MpOwogCQlpbmZvLT5ubF9uZXQtPmlwdjYucnQ2X3N0YXRzLT5maWJfcnRf ZW50cmllcysrOwpAQCAtODk5LDcgKzg5OSw3IEBAIHN0YXRpYyBpbnQgZmliNl9hZGRfcnQybm9k ZShzdHJ1Y3QgZmliNl9ub2RlICpmbiwgc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJCXJldHVybiBl cnI7CiAKIAkJKmlucyA9IHJ0OwotCQlydC0+cnQ2aV9ub2RlID0gZm47CisJCXJjdV9hc3NpZ25f cG9pbnRlcihydC0+cnQ2aV9ub2RlLCBmbik7CiAJCXJ0LT5kc3QucnQ2X25leHQgPSBpdGVyLT5k c3QucnQ2X25leHQ7CiAJCWF0b21pY19pbmMoJnJ0LT5ydDZpX3JlZik7CiAJCWluZXQ2X3J0X25v dGlmeShSVE1fTkVXUk9VVEUsIHJ0LCBpbmZvLCBOTE1fRl9SRVBMQUNFKTsKQEAgLTE0NTksOCAr MTQ1OSw5IEBAIHN0YXRpYyB2b2lkIGZpYjZfZGVsX3JvdXRlKHN0cnVjdCBmaWI2X25vZGUgKmZu LCBzdHJ1Y3QgcnQ2X2luZm8gKipydHAsCiAKIGludCBmaWI2X2RlbChzdHJ1Y3QgcnQ2X2luZm8g KnJ0LCBzdHJ1Y3QgbmxfaW5mbyAqaW5mbykKIHsKKwlzdHJ1Y3QgZmliNl9ub2RlICpmbiA9IHJj dV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQocnQtPnJ0Nmlfbm9kZSwKKwkJCQkgICAgbG9ja2RlcF9p c19oZWxkKCZydC0+cnQ2aV90YWJsZS0+dGI2X2xvY2spKTsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBp bmZvLT5ubF9uZXQ7Ci0Jc3RydWN0IGZpYjZfbm9kZSAqZm4gPSBydC0+cnQ2aV9ub2RlOwogCXN0 cnVjdCBydDZfaW5mbyAqKnJ0cDsKIAogI2lmIFJUNl9ERUJVRyA+PSAyCkBAIC0xNjQ5LDcgKzE2 NTAsOSBAQCBzdGF0aWMgaW50IGZpYjZfY2xlYW5fbm9kZShzdHJ1Y3QgZmliNl93YWxrZXIgKncp CiAJCQlpZiAocmVzKSB7CiAjaWYgUlQ2X0RFQlVHID49IDIKIAkJCQlwcl9kZWJ1ZygiJXM6IGRl bCBmYWlsZWQ6IHJ0PSVwQCVwIGVycj0lZFxuIiwKLQkJCQkJIF9fZnVuY19fLCBydCwgcnQtPnJ0 Nmlfbm9kZSwgcmVzKTsKKwkJCQkJIF9fZnVuY19fLCBydCwKKwkJCQkJIHJjdV9hY2Nlc3NfcG9p bnRlcihydC0+cnQ2aV9ub2RlKSwKKwkJCQkJIHJlcyk7CiAjZW5kaWYKIAkJCQljb250aW51ZTsK IAkJCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmlu ZGV4IDYzMjk4N2ZmYzA3ZC4uOWMyZGQzZjc3Y2RiIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yb3V0 ZS5jCisrKyBiL25ldC9pcHY2L3JvdXRlLmMKQEAgLTEzNjEsNyArMTM2MSw4IEBAIHN0YXRpYyB2 b2lkIHJ0Nl9kb191cGRhdGVfcG10dShzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCB1MzIgbXR1KQogc3Rh dGljIGJvb2wgcnQ2X2NhY2hlX2FsbG93ZWRfZm9yX3BtdHUoY29uc3Qgc3RydWN0IHJ0Nl9pbmZv ICpydCkKIHsKIAlyZXR1cm4gIShydC0+cnQ2aV9mbGFncyAmIFJURl9DQUNIRSkgJiYKLQkJKHJ0 LT5ydDZpX2ZsYWdzICYgUlRGX1BDUFUgfHwgcnQtPnJ0Nmlfbm9kZSk7CisJCShydC0+cnQ2aV9m bGFncyAmIFJURl9QQ1BVIHx8CisJCSByY3VfYWNjZXNzX3BvaW50ZXIocnQtPnJ0Nmlfbm9kZSkp OwogfQogCiBzdGF0aWMgdm9pZCBfX2lwNl9ydF91cGRhdGVfcG10dShzdHJ1Y3QgZHN0X2VudHJ5 ICpkc3QsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKLS0gCjIuMTMuNQoKCkZyb20gZmQyYzFhNWFi YzM5ZTlkMmMzYzUwMGRkNzcwZGI3ZjdjZTkyMmJkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRhdGU6IFR1ZSwgMjIg QXVnIDIwMTcgMTU6MzY6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0LzI1XSBtYWNzZWM6IGFk ZCBnZW5sIGZhbWlseSBtb2R1bGUgYWxpYXMKClsgVXBzdHJlYW0gY29tbWl0IDc4MzYyOTk4ZjU4 YzdjMjcxZTI3MTlkY2QwYWFjZWQ0MzVjODAxZjkgXQoKVGhpcyBoZWxwcyB0b29scyBzdWNoIGFz IHdwYV9zdXBwbGljYW50IGNhbiBzdGFydCBldmVuIGlmIHRoZSBtYWNzZWMKbW9kdWxlIGlzbid0 IGxvYWRlZCB5ZXQuCgpGaXhlczogYzA5NDQwZjdkY2IzICgibWFjc2VjOiBpbnRyb2R1Y2UgSUVF RSA4MDIuMUFFIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVl YXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjc2VjLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3NlYy5jIGIvZHJp dmVycy9uZXQvbWFjc2VjLmMKaW5kZXggYTVkNjZlMjA1YmIyLi4yY2FhYzBjMzcwNTkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L21hY3NlYy5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3NlYy5jCkBA IC0zNTEwLDYgKzM1MTAsNyBAQCBtb2R1bGVfaW5pdChtYWNzZWNfaW5pdCk7CiBtb2R1bGVfZXhp dChtYWNzZWNfZXhpdCk7CiAKIE1PRFVMRV9BTElBU19SVE5MX0xJTksoIm1hY3NlYyIpOworTU9E VUxFX0FMSUFTX0dFTkxfRkFNSUxZKCJtYWNzZWMiKTsKIAogTU9EVUxFX0RFU0NSSVBUSU9OKCJN QUNzZWMgSUVFRSA4MDIuMUFFIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci0tIAoyLjEz LjUKCgpGcm9tIGRhNTYwOTBlZDUxZDFkN2E3YjJkNWVhZjE0NzFlYTAwNDZiMjAxZTggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCAyMiBBdWcgMjAxNyAwOTozOToyOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjVdIHVkcDogb24gcGVla2luZyBiYWQgY3N1bSwgZHJvcCBwYWNrZXRzIGV2ZW4gaWYgbm90 IGF0CiBoZWFkCgpbIFVwc3RyZWFtIGNvbW1pdCBmZDYwNTVhODA2ZWRjNDAxOWJlMWI5ZmI3ZDI1 MjYyNTk5YmNhNWIxIF0KCldoZW4gcGVla2luZywgaWYgYSBiYWQgY3N1bSBpcyBkaXNjb3ZlcmVk LCB0aGUgc2tiIGlzIHVubGlua2VkIGZyb20KdGhlIHF1ZXVlIHdpdGggX19za19xdWV1ZV9kcm9w X3NrYiBhbmQgdGhlIHBlZWsgb3BlcmF0aW9uIHJlc3RhcnRlZC4KCl9fc2tfcXVldWVfZHJvcF9z a2Igb25seSBkcm9wcyBwYWNrZXRzIHRoYXQgbWF0Y2ggdGhlIHF1ZXVlIGhlYWQuCgpUaGlzIGZh aWxzIGlmIHRoZSBza2Igd2FzIGZvdW5kIGFmdGVyIHRoZSBoZWFkLCB1c2luZyBTT19QRUVLX09G Rgpzb2NrZXQgb3B0aW9uLiBUaGlzIGNhdXNlcyBhbiBpbmZpbml0ZSBsb29wLgoKV2UgTVVTVCBk cm9wIHRoaXMgcHJvYmxlbWF0aWMgc2tiLCBhbmQgd2UgY2FuIHNpbXBseSBjaGVjayBpZiBza2Ig d2FzCmFscmVhZHkgcmVtb3ZlZCBieSBhbm90aGVyIHRocmVhZCwgYnkgbG9va2luZyBhdCBza2It Pm5leHQgOgoKVGhpcyBwb2ludGVyIGlzIHNldCB0byBOVUxMIGJ5IHRoZSAgX19za2JfdW5saW5r KCkgb3BlcmF0aW9uLCB0aGF0IG1pZ2h0CmhhdmUgaGFwcGVuZWQgb25seSB1bmRlciB0aGUgc3Bp bmxvY2sgcHJvdGVjdGlvbi4KCk1hbnkgdGhhbmtzIHRvIHN5emthbGxlciB0ZWFtIChhbmQgcGFy dGljdWxhcmx5IERtaXRyeSBWeXVrb3Ygd2hvCnByb3ZpZGVkIHVzIG5pY2UgQyByZXByb2R1Y2Vy cyBleGhpYml0aW5nIHRoZSBsb2NrdXApIGFuZCBXaWxsZW0gZGUKQnJ1aWpuIHdobyBwcm92aWRl ZCBmaXJzdCB2ZXJzaW9uIGZvciB0aGlzIHBhdGNoIGFuZCBhIHRlc3QgcHJvZ3JhbS4KCkZpeGVz OiA2MjdkMmQ2YjU1MDAgKCJ1ZHA6IGVuYWJsZSBNU0dfUEVFSyBhdCBub24temVybyBvZmZzZXQi KQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9y dGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+CkNjOiBXaWxsZW0gZGUg QnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5p QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvY29yZS9kYXRhZ3JhbS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGF0YWdyYW0uYyBi L25ldC9jb3JlL2RhdGFncmFtLmMKaW5kZXggNThkZmEyM2QxMmNhLi40ZmE0MDExZmVlYzEgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2RhdGFncmFtLmMKKysrIGIvbmV0L2NvcmUvZGF0YWdyYW0uYwpA QCAtMzUxLDcgKzM1MSw3IEBAIGludCBza2Jfa2lsbF9kYXRhZ3JhbShzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBza19idWZmICpza2IsIHVuc2lnbmVkIGludCBmbGFncykKIAlpZiAoZmxhZ3MgJiBN U0dfUEVFSykgewogCQllcnIgPSAtRU5PRU5UOwogCQlzcGluX2xvY2tfYmgoJnNrLT5za19yZWNl aXZlX3F1ZXVlLmxvY2spOwotCQlpZiAoc2tiID09IHNrYl9wZWVrKCZzay0+c2tfcmVjZWl2ZV9x dWV1ZSkpIHsKKwkJaWYgKHNrYi0+bmV4dCkgewogCQkJX19za2JfdW5saW5rKHNrYiwgJnNrLT5z a19yZWNlaXZlX3F1ZXVlKTsKIAkJCWF0b21pY19kZWMoJnNrYi0+dXNlcnMpOwogCQkJZXJyID0g MDsKLS0gCjIuMTMuNQoKCkZyb20gZjJjYTllMWQ1ZTAxZWQ5MDRlODI5N2Q5MzI5M2ZlMzFiMmEx MWZhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zi5m YWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjIgQXVnIDIwMTcgMTU6MjQ6NDcgLTA3MDAK U3ViamVjdDogW1BBVENIIDA2LzI1XSBmc2wvbWFuOiBJbmhlcml0IHBhcmVudCBkZXZpY2UgYW5k IG9mX25vZGUKClsgVXBzdHJlYW0gY29tbWl0IGExYTUwYzhlNGMyNDFhNTA1YjcyNzBlMWEzYzZl NTBkOTRlNzk0YjEgXQoKSnVub3RlIENhaSByZXBvcnRlZCB0aGF0IGhlIHdhcyBub3QgYWJsZSB0 byBnZXQgYSBEU0Egc2V0dXAgaW52b2x2aW5nIHRoZQpGcmVlc2NhbGUgRFBBQS9GTUFOIGRyaXZl ciB0byB3b3JrIGFuZCBuYXJyb3dlZCBpdCBkb3duIHRvCm9mX2ZpbmRfbmV0X2RldmljZV9ieV9u b2RlKCkuIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhlIG5ldHdvcmsgZGV2aWNlJ3MKZGV2aWNl IHJlZmVyZW5jZSB0byBiZSBjb3JyZWN0bHkgc2V0IHdoaWNoIGlzIHRoZSBjYXNlIGhlcmUsIHRo b3VnaCB3ZSBoYXZlCmxvc3QgYW55IGRldmljZV9ub2RlIGFzc29jaWF0aW9uIHRoZXJlLgoKVGhl IHByb2JsZW0gaXMgdGhhdCBkcGFhX2V0aF9hZGRfZGV2aWNlKCkgYWxsb2NhdGVzIGEgImRwYWEt ZXRoZXJuZXQiIHBsYXRmb3JtCmRldmljZSwgYW5kIGxhdGVyIG9uIGRwYWFfZXRoX3Byb2JlKCkg aXMgY2FsbGVkIGJ1dCBTRVRfTkVUREVWX0RFVigpIHdvbid0IGJlCnByb3BhZ2F0aW5nICZwZGV2 LT5kZXYub2Zfbm9kZSBwcm9wZXJseS4gRml4IHRoaXMgYnkgaW5oZXJlbnRpbmcgYm90aCB0aGUg cGFyZW50CmRldmljZSBhbmQgdGhlIG9mX25vZGUgd2hlbiBkcGFhX2V0aF9hZGRfZGV2aWNlKCkg Y3JlYXRlcyB0aGUgcGxhdGZvcm0gZGV2aWNlLgoKRml4ZXM6IDM5MzM5NjE2ODJhMyAoImZzbC9m bWFuOiBBZGQgRk1hbiBNQUMgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxs aSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUv Zm1hbi9tYWMuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vbWFjLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9tYWMuYwppbmRleCA3MzZkYjlkOWIwYWQu LjgxMDIxZjg3ZTRmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxl L2ZtYW4vbWFjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vbWFj LmMKQEAgLTYyMiw2ICs2MjIsOSBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZHBh YV9ldGhfYWRkX2RldmljZShpbnQgZm1hbl9pZCwKIAkJZ290byBub19tZW07CiAJfQogCisJcGRl di0+ZGV2Lm9mX25vZGUgPSBub2RlOworCXBkZXYtPmRldi5wYXJlbnQgPSBwcml2LT5kZXY7CisK IAlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEocGRldiwgJmRhdGEsIHNpemVvZihkYXRh KSk7CiAJaWYgKHJldCkKIAkJZ290byBlcnI7Ci0tIAoyLjEzLjUKCgpGcm9tIDBkMmNmZTg3ZmFh M2E1OTM2YmJmNWNlYmYxN2EwYjMzZTE3MzgzMjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMjMgQXVn IDIwMTcgMTM6Mjc6MTMgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3LzI1XSBzY3RwOiBBdm9pZCBv dXQtb2YtYm91bmRzIHJlYWRzIGZyb20gYWRkcmVzcyBzdG9yYWdlCgpbIFVwc3RyZWFtIGNvbW1p dCBlZTZjODhiYjc1NGUzZDM2M2U1NjhkYTc4MDg2YWRmZWRiNjkyNDQ3IF0KCmluZXRfZGlhZ19t c2dfc2N0cHssbH1hZGRyX2ZpbGwoKSBhbmQgc2N0cF9nZXRfc2N0cF9pbmZvKCkgY29weQpzaXpl b2Yoc29ja2FkZHJfc3RvcmFnZSkgYnl0ZXMgdG8gZmlsbCBpbiBzb2NrYWRkciBzdHJ1Y3RzIHVz ZWQKdG8gZXhwb3J0IGRpYWdub3N0aWMgaW5mb3JtYXRpb24gdG8gdXNlcnNwYWNlLgoKSG93ZXZl ciwgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgdG8gc3RvcmUgc29ja2FkZHIgaW5mb3JtYXRpb24gaXMK c21hbGxlciB0aGFuIHRoYXQgYW5kIGRlcGVuZHMgb24gdGhlIGFkZHJlc3MgZmFtaWx5LCBzbyB3 ZSBsZWFrCnVwIHRvIDEwMCB1bmluaXRpYWxpemVkIGJ5dGVzIHRvIHVzZXJzcGFjZS4gSnVzdCB1 c2UgdGhlIHNpemUgb2YKdGhlIHNvdXJjZSBzdHJ1Y3RzIGluc3RlYWQsIGluIGFsbCB0aGUgdGhy ZWUgY2FzZXMgdGhpcyBpcyB3aGF0CnVzZXJzcGFjZSBleHBlY3RzLiBaZXJvIG91dCB0aGUgcmVt YWluaW5nIG1lbW9yeS4KClVudXNlZCBieXRlcyAoaS5lLiB3aGVuIElQdjQgYWRkcmVzc2VzIGFy ZSB1c2VkKSBpbiBzb3VyY2UKc3RydWN0cyBzY3RwX3NvY2thZGRyX2VudHJ5IGFuZCBzY3RwX3Ry YW5zcG9ydCBhcmUgYWxyZWFkeQpjbGVhcmVkIGJ5IHNjdHBfYWRkX2JpbmRfYWRkcigpIGFuZCBz Y3RwX3RyYW5zcG9ydF9uZXcoKSwKcmVzcGVjdGl2ZWx5LgoKTm90aWNlZCB3aGlsZSB0ZXN0aW5n IEtBU0FOLWVuYWJsZWQga2VybmVsIHdpdGggJ3NzJzoKClsgMjMyNi44ODUyNDNdIEJVRzogS0FT QU46IHNsYWItb3V0LW9mLWJvdW5kcyBpbiBpbmV0X3NjdHBfZGlhZ19maWxsKzB4NDJjLzB4NmMw IFtzY3RwX2RpYWddIGF0IGFkZHIgZmZmZjg4MWJlODc3OTgwMApbIDIzMjYuODk2ODAwXSBSZWFk IG9mIHNpemUgMTI4IGJ5IHRhc2sgc3MvOTUyNwpbIDIzMjYuOTAxNTY0XSBDUFU6IDAgUElEOiA5 NTI3IENvbW06IHNzIE5vdCB0YWludGVkIDQuMTEuMC0yMi5lbDdhLng4Nl82NCAjMQpbIDIzMjYu OTA5MjM2XSBIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4gUG93ZXJFZGdlIFI3MzAvMDcyVDZELCBC SU9TIDIuNC4zIDAxLzE3LzIwMTcKWyAyMzI2LjkxNzU4NV0gQ2FsbCBUcmFjZToKWyAyMzI2Ljky MDMxMl0gIGR1bXBfc3RhY2srMHg2My8weDhkClsgMjMyNi45MjQwMTRdICBrYXNhbl9vYmplY3Rf ZXJyKzB4MjEvMHg3MApbIDIzMjYuOTI4Mjk1XSAga2FzYW5fcmVwb3J0KzB4Mjg4LzB4NTQwClsg MjMyNi45MzIzODBdICA/IGluZXRfc2N0cF9kaWFnX2ZpbGwrMHg0MmMvMHg2YzAgW3NjdHBfZGlh Z10KWyAyMzI2LjkzODUwMF0gID8gc2tiX3B1dCsweDhiLzB4ZDAKWyAyMzI2Ljk0MjA5OF0gID8g bWVtc2V0KzB4MzEvMHg0MApbIDIzMjYuOTQ1NTk5XSAgY2hlY2tfbWVtb3J5X3JlZ2lvbisweDEz Yy8weDFhMApbIDIzMjYuOTUwMzYyXSAgbWVtY3B5KzB4MjMvMHg1MApbIDIzMjYuOTUzNjY5XSAg aW5ldF9zY3RwX2RpYWdfZmlsbCsweDQyYy8weDZjMCBbc2N0cF9kaWFnXQpbIDIzMjYuOTU5NTk2 XSAgPyBpbmV0X2RpYWdfbXNnX3NjdHBhc29jX2ZpbGwrMHg0NjAvMHg0NjAgW3NjdHBfZGlhZ10K WyAyMzI2Ljk2NjQ5NV0gID8gX19sb2NrX3NvY2srMHgxMDIvMHgxNTAKWyAyMzI2Ljk3MDY3MV0g ID8gc29ja19kZWZfd2FrZXVwKzB4NjAvMHg2MApbIDIzMjYuOTc1MDQ4XSAgPyByZW1vdmVfd2Fp dF9xdWV1ZSsweGMwLzB4YzAKWyAyMzI2Ljk3OTYxOV0gIHNjdHBfZGlhZ19kdW1wKzB4NDRhLzB4 NzYwIFtzY3RwX2RpYWddClsgMjMyNi45ODUwNjNdICA/IHNjdHBfZXBfZHVtcCsweDI4MC8weDI4 MCBbc2N0cF9kaWFnXQpbIDIzMjYuOTkwNTA0XSAgPyBtZW1zZXQrMHgzMS8weDQwClsgMjMyNi45 OTQwMDddICA/IG11dGV4X2xvY2srMHgxMi8weDQwClsgMjMyNi45OTc5MDBdICBfX2luZXRfZGlh Z19kdW1wKzB4NTcvMHhiMCBbaW5ldF9kaWFnXQpbIDIzMjcuMDAzMzQwXSAgPyBfX3N5c19zZW5k bXNnKzB4MTUwLzB4MTUwClsgMjMyNy4wMDc3MTVdICBpbmV0X2RpYWdfZHVtcCsweDRkLzB4ODAg W2luZXRfZGlhZ10KWyAyMzI3LjAxMjk3OV0gIG5ldGxpbmtfZHVtcCsweDFlNi8weDQ5MApbIDIz MjcuMDE3MDY0XSAgX19uZXRsaW5rX2R1bXBfc3RhcnQrMHgyOGUvMHgyYzAKWyAyMzI3LjAyMTky NF0gIGluZXRfZGlhZ19oYW5kbGVyX2NtZCsweDE4OS8weDFhMCBbaW5ldF9kaWFnXQpbIDIzMjcu MDI4MDQ1XSAgPyBpbmV0X2RpYWdfcmN2X21zZ19jb21wYXQrMHgxYjAvMHgxYjAgW2luZXRfZGlh Z10KWyAyMzI3LjAzNDY1MV0gID8gaW5ldF9kaWFnX2R1bXBfY29tcGF0KzB4MTkwLzB4MTkwIFtp bmV0X2RpYWddClsgMjMyNy4wNDA5NjVdICA/IF9fbmV0bGlua19sb29rdXArMHgxYjkvMHgyNjAK WyAyMzI3LjA0NTYzMV0gIHNvY2tfZGlhZ19yY3ZfbXNnKzB4MThiLzB4MWUwClsgMjMyNy4wNTAx OTldICBuZXRsaW5rX3Jjdl9za2IrMHgxNGIvMHgxODAKWyAyMzI3LjA1NDU3NF0gID8gc29ja19k aWFnX2JpbmQrMHg2MC8weDYwClsgMjMyNy4wNTg4NTBdICBzb2NrX2RpYWdfcmN2KzB4MjgvMHg0 MApbIDIzMjcuMDYyODM3XSAgbmV0bGlua191bmljYXN0KzB4MmU3LzB4M2IwClsgMjMyNy4wNjcy MTJdICA/IG5ldGxpbmtfYXR0YWNoc2tiKzB4MzMwLzB4MzMwClsgMjMyNy4wNzE5NzVdICA/IGth c2FuX2NoZWNrX3dyaXRlKzB4MTQvMHgyMApbIDIzMjcuMDc2NTQ0XSAgbmV0bGlua19zZW5kbXNn KzB4NWJlLzB4NzMwClsgMjMyNy4wODA5MThdICA/IG5ldGxpbmtfdW5pY2FzdCsweDNiMC8weDNi MApbIDIzMjcuMDg1NDg2XSAgPyBrYXNhbl9jaGVja193cml0ZSsweDE0LzB4MjAKWyAyMzI3LjA5 MDA1N10gID8gc2VsaW51eF9zb2NrZXRfc2VuZG1zZysweDI0LzB4MzAKWyAyMzI3LjA5NTEwOV0g ID8gbmV0bGlua191bmljYXN0KzB4M2IwLzB4M2IwClsgMjMyNy4wOTk2NzhdICBzb2NrX3NlbmRt c2crMHg3NC8weDgwClsgMjMyNy4xMDM1NjddICBfX19zeXNfc2VuZG1zZysweDUyMC8weDUzMApb IDIzMjcuMTA3ODQ0XSAgPyBfX2dldF9sb2NrZWRfcHRlKzB4MTc4LzB4MjAwClsgMjMyNy4xMTI1 MTBdICA/IGNvcHlfbXNnaGRyX2Zyb21fdXNlcisweDI3MC8weDI3MApbIDIzMjcuMTE3NjYwXSAg PyB2bV9pbnNlcnRfcGFnZSsweDM2MC8weDM2MApbIDIzMjcuMTIyMTMzXSAgPyB2bV9pbnNlcnRf cGZuX3Byb3QrMHhiNC8weDE1MApbIDIzMjcuMTI2ODk1XSAgPyB2bV9pbnNlcnRfcGZuKzB4MzIv MHg0MApbIDIzMjcuMTMxMDc3XSAgPyB2dmFyX2ZhdWx0KzB4NzEvMHhkMApbIDIzMjcuMTM0OTY4 XSAgPyBzcGVjaWFsX21hcHBpbmdfZmF1bHQrMHg2OS8weDExMApbIDIzMjcuMTQwMDIyXSAgPyBf X2RvX2ZhdWx0KzB4NDIvMHgxMjAKWyAyMzI3LjE0NDAwOF0gID8gX19oYW5kbGVfbW1fZmF1bHQr MHgxMDYyLzB4MTdhMApbIDIzMjcuMTQ4OTY1XSAgPyBfX2ZnZXRfbGlnaHQrMHhhNy8weGMwClsg MjMyNy4xNTMwNDldICBfX3N5c19zZW5kbXNnKzB4Y2IvMHgxNTAKWyAyMzI3LjE1NzEzM10gID8g X19zeXNfc2VuZG1zZysweGNiLzB4MTUwClsgMjMyNy4xNjE0MDldICA/IFN5U19zaHV0ZG93bisw eDE0MC8weDE0MApbIDIzMjcuMTY1Njg4XSAgPyBleGl0X3RvX3VzZXJtb2RlX2xvb3ArMHhkMC8w eGQwClsgMjMyNy4xNzA2NDZdICA/IF9fZG9fcGFnZV9mYXVsdCsweDU1ZC8weDYyMApbIDIzMjcu MTc1MjE2XSAgPyBfX3N5c19zZW5kbXNnKzB4MTUwLzB4MTUwClsgMjMyNy4xNzk1OTFdICBTeVNf c2VuZG1zZysweDEyLzB4MjAKWyAyMzI3LjE4MzM4NF0gIGRvX3N5c2NhbGxfNjQrMHhlMy8weDIz MApbIDIzMjcuMTg3NDcxXSAgZW50cnlfU1lTQ0FMTDY0X3Nsb3dfcGF0aCsweDI1LzB4MjUKWyAy MzI3LjE5MjYyMl0gUklQOiAwMDMzOjB4N2Y0MWQxOGZhM2IwClsgMjMyNy4xOTY2MDhdIFJTUDog MDAyYjowMDAwN2ZmYzNiNzMxMjE4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAw MDAwMDAwMmUKWyAyMzI3LjIwNTA1NV0gUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdm ZmMzYjczMTM4MCBSQ1g6IDAwMDA3ZjQxZDE4ZmEzYjAKWyAyMzI3LjIxMzAxN10gUkRYOiAwMDAw MDAwMDAwMDAwMDAwIFJTSTogMDAwMDdmZmMzYjczMTM0MCBSREk6IDAwMDAwMDAwMDAwMDAwMDMK WyAyMzI3LjIyMDk3OF0gUkJQOiAwMDAwMDAwMDAwMDAwMDAyIFIwODogMDAwMDAwMDAwMDAwMDAw NCBSMDk6IDAwMDAwMDAwMDAwMDAwNDAKWyAyMzI3LjIyODkzOV0gUjEwOiAwMDAwN2ZmYzNiNzMw ZjMwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDMKWyAyMzI3LjIz NjkwMV0gUjEzOiAwMDAwN2ZmYzNiNzMxMzQwIFIxNDogMDAwMDdmZmMzYjczMTNkMCBSMTU6IDAw MDAwMDAwMDAwMDAwODQKWyAyMzI3LjI0NDg2NV0gT2JqZWN0IGF0IGZmZmY4ODFiZTg3Nzk3ZTAs IGluIGNhY2hlIGttYWxsb2MtNjQgc2l6ZTogNjQKWyAyMzI3LjI1MTk1M10gQWxsb2NhdGVkOgpb IDIzMjcuMjU0NTgxXSBQSUQgPSA5NDg0ClsgMjMyNy4yNTcyMTVdICBzYXZlX3N0YWNrX3RyYWNl KzB4MWIvMHgyMApbIDIzMjcuMjYxNDg1XSAgc2F2ZV9zdGFjaysweDQ2LzB4ZDAKWyAyMzI3LjI2 NTE3OV0gIGthc2FuX2ttYWxsb2MrMHhhZC8weGUwClsgMjMyNy4yNjkxNjVdICBrbWVtX2NhY2hl X2FsbG9jX3RyYWNlKzB4ZTYvMHgxZDAKWyAyMzI3LjI3NDEzOF0gIHNjdHBfYWRkX2JpbmRfYWRk cisweDU4LzB4MTgwIFtzY3RwXQpbIDIzMjcuMjc5NDAwXSAgc2N0cF9kb19iaW5kKzB4MjA4LzB4 MzEwIFtzY3RwXQpbIDIzMjcuMjg0MTc2XSAgc2N0cF9iaW5kKzB4NjEvMHhhMCBbc2N0cF0KWyAy MzI3LjI4ODQ1NV0gIGluZXRfYmluZCsweDVmLzB4M2EwClsgMjMyNy4yOTIxNTFdICBTWVNDX2Jp bmQrMHgxYTQvMHgxZTAKWyAyMzI3LjI5NTk0NF0gIFN5U19iaW5kKzB4ZS8weDEwClsgMjMyNy4y OTkzNDldICBkb19zeXNjYWxsXzY0KzB4ZTMvMHgyMzAKWyAyMzI3LjMwMzQzM10gIHJldHVybl9m cm9tX1NZU0NBTExfNjQrMHgwLzB4NmEKWyAyMzI3LjMwODE5NF0gRnJlZWQ6ClsgMjMyNy4zMTA0 MzRdIFBJRCA9IDQxMzEKWyAyMzI3LjMxMzA2NV0gIHNhdmVfc3RhY2tfdHJhY2UrMHgxYi8weDIw ClsgMjMyNy4zMTczNDRdICBzYXZlX3N0YWNrKzB4NDYvMHhkMApbIDIzMjcuMzIxMDQwXSAga2Fz YW5fc2xhYl9mcmVlKzB4NzMvMHhjMApbIDIzMjcuMzI1MjIwXSAga2ZyZWUrMHg5Ni8weDFhMApb IDIzMjcuMzI4NTMwXSAgZHluYW1pY19rb2JqX3JlbGVhc2UrMHgxNS8weDQwClsgMjMyNy4zMzMx OTVdICBrb2JqZWN0X3JlbGVhc2UrMHg5OS8weDFlMApbIDIzMjcuMzM3NDcyXSAga29iamVjdF9w dXQrMHgzOC8weDcwClsgMjMyNy4zNDEyNjZdICBmcmVlX25vdGVzX2F0dHJzKzB4NjYvMHg4MApb IDIzMjcuMzQ1NTQ1XSAgbW9kX3N5c2ZzX3RlYXJkb3duKzB4MWE1LzB4MjcwClsgMjMyNy4zNTAy MTFdICBmcmVlX21vZHVsZSsweDIwLzB4MmEwClsgMjMyNy4zNTQwOTldICBTeVNfZGVsZXRlX21v ZHVsZSsweDJjYi8weDJmMApbIDIzMjcuMzU4NjY3XSAgZG9fc3lzY2FsbF82NCsweGUzLzB4MjMw ClsgMjMyNy4zNjI3NTBdICByZXR1cm5fZnJvbV9TWVNDQUxMXzY0KzB4MC8weDZhClsgMjMyNy4z Njc1MTBdIE1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6ClsgMjMyNy4zNzI4 NTVdICBmZmZmODgxYmU4Nzc5NzAwOiBmYyBmYyBmYyBmYyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCBmYyBmYyBmYyBmYwpbIDIzMjcuMzgwOTE0XSAgZmZmZjg4MWJlODc3OTc4MDogZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmMgZmMgZmMgZmMgMDAgMDAgMDAgMDAKWyAyMzI3LjM4ODk3Ml0gPmZm ZmY4ODFiZTg3Nzk4MDA6IDAwIDAwIDAwIDAwIGZjIGZjIGZjIGZjIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiClsgMjMyNy4zOTcwMzFdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeClsg MjMyNy40MDE3OTJdICBmZmZmODgxYmU4Nzc5ODgwOiBmYyBmYyBmYyBmYyBmYiBmYiBmYiBmYiBm YiBmYiBmYiBmYiBmYyBmYyBmYyBmYwpbIDIzMjcuNDA5ODUwXSAgZmZmZjg4MWJlODc3OTkwMDog MDAgMDAgMDAgMDAgMDAgMDQgZmMgZmMgZmMgZmMgZmMgZmMgMDAgMDAgMDAgMDAKWyAyMzI3LjQx NzkwN10gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CgpUaGlzIGZpeGVzIENWRS0yMDE3LTc1NTguCgpSZWZlcmVuY2VzOiBo dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTE0ODAyNjYKRml4ZXM6 IDhmODQwZTQ3ZjE5MCAoInNjdHA6IGFkZCB0aGUgc2N0cF9kaWFnLmMgZmlsZSIpCkNjOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkNjOiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hA Z21haWwuY29tPgpDYzogTmVpbCBIb3JtYW4gPG5ob3JtYW5AdHV4ZHJpdmVyLmNvbT4KU2lnbmVk LW9mZi1ieTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4KQWNrZWQtYnk6IE1h cmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvc2N0cF9kaWFn LmMgfCA3ICsrKysrLS0KIG5ldC9zY3RwL3NvY2tldC5jICAgIHwgMyArLS0KIDIgZmlsZXMgY2hh bmdlZCwgNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9z Y3RwL3NjdHBfZGlhZy5jIGIvbmV0L3NjdHAvc2N0cF9kaWFnLmMKaW5kZXggMDQ4OTU0ZWVlOTg0 Li5lOGY1NmI3YzVhZmIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NjdHBfZGlhZy5jCisrKyBiL25l dC9zY3RwL3NjdHBfZGlhZy5jCkBAIC03MCw3ICs3MCw4IEBAIHN0YXRpYyBpbnQgaW5ldF9kaWFn X21zZ19zY3RwbGFkZHJzX2ZpbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCWluZm8gPSBubGFf ZGF0YShhdHRyKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShsYWRkciwgYWRkcmVzc19saXN0 LCBsaXN0KSB7Ci0JCW1lbWNweShpbmZvLCAmbGFkZHItPmEsIGFkZHJsZW4pOworCQltZW1jcHko aW5mbywgJmxhZGRyLT5hLCBzaXplb2YobGFkZHItPmEpKTsKKwkJbWVtc2V0KGluZm8gKyBzaXpl b2YobGFkZHItPmEpLCAwLCBhZGRybGVuIC0gc2l6ZW9mKGxhZGRyLT5hKSk7CiAJCWluZm8gKz0g YWRkcmxlbjsKIAl9CiAKQEAgLTkzLDcgKzk0LDkgQEAgc3RhdGljIGludCBpbmV0X2RpYWdfbXNn X3NjdHBhZGRyc19maWxsKHN0cnVjdCBza19idWZmICpza2IsCiAJaW5mbyA9IG5sYV9kYXRhKGF0 dHIpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoZnJvbSwgJmFzb2MtPnBlZXIudHJhbnNwb3J0X2Fk ZHJfbGlzdCwKIAkJCSAgICB0cmFuc3BvcnRzKSB7Ci0JCW1lbWNweShpbmZvLCAmZnJvbS0+aXBh ZGRyLCBhZGRybGVuKTsKKwkJbWVtY3B5KGluZm8sICZmcm9tLT5pcGFkZHIsIHNpemVvZihmcm9t LT5pcGFkZHIpKTsKKwkJbWVtc2V0KGluZm8gKyBzaXplb2YoZnJvbS0+aXBhZGRyKSwgMCwKKwkJ ICAgICAgIGFkZHJsZW4gLSBzaXplb2YoZnJvbS0+aXBhZGRyKSk7CiAJCWluZm8gKz0gYWRkcmxl bjsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0 LmMKaW5kZXggOTY0N2UzMTRkNGZjLi4zZWY3MjUyMjk0NDkgMTAwNjQ0Ci0tLSBhL25ldC9zY3Rw L3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC00MzczLDggKzQzNzMsNyBAQCBp bnQgc2N0cF9nZXRfc2N0cF9pbmZvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNjdHBfYXNzb2Np YXRpb24gKmFzb2MsCiAJaW5mby0+c2N0cGlfaWN0cmxjaHVua3MgPSBhc29jLT5zdGF0cy5pY3Ry bGNodW5rczsKIAogCXByaW0gPSBhc29jLT5wZWVyLnByaW1hcnlfcGF0aDsKLQltZW1jcHkoJmlu Zm8tPnNjdHBpX3BfYWRkcmVzcywgJnByaW0tPmlwYWRkciwKLQkgICAgICAgc2l6ZW9mKHN0cnVj dCBzb2NrYWRkcl9zdG9yYWdlKSk7CisJbWVtY3B5KCZpbmZvLT5zY3RwaV9wX2FkZHJlc3MsICZw cmltLT5pcGFkZHIsIHNpemVvZihwcmltLT5pcGFkZHIpKTsKIAlpbmZvLT5zY3RwaV9wX3N0YXRl ID0gcHJpbS0+c3RhdGU7CiAJaW5mby0+c2N0cGlfcF9jd25kID0gcHJpbS0+Y3duZDsKIAlpbmZv LT5zY3RwaV9wX3NydHQgPSBwcmltLT5zcnR0OwotLSAKMi4xMy41CgoKRnJvbSA4ZDhiMTJlZTM4 YTRjYTgxZGM1NDE2YmRiYzNkODY0MWM0MmI0ZWZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgpEYXRlOiBXZWQsIDIzIEF1ZyAyMDE3 IDE1OjU5OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC8yNV0gcWxnZTogYXZvaWQgbWVtY3B5 IGJ1ZmZlciBvdmVyZmxvdwoKWyBVcHN0cmVhbSBjb21taXQgZTU4Zjk1ODMxZTc0NjhkMjVlYjZl NDFmMjM0ODQyZWNmZTZmMDE0ZiBdCgpnY2MtOC4wLjAgKHNuYXBzaG90KSBwb2ludHMgb3V0IHRo YXQgd2UgY29weSBhIHZhcmlhYmxlLWxlbmd0aCBzdHJpbmcKaW50byBhIGZpeGVkIGxlbmd0aCBm aWVsZCB1c2luZyBtZW1jcHkoKSB3aXRoIHRoZSBkZXN0aW5hdGlvbiBsZW5ndGgsCmFuZCB0aGF0 IGVuZHMgdXAgY29weWluZyB3aGF0ZXZlciBmb2xsb3dzIHRoZSBzdHJpbmc6CgogICAgaW5saW5l ZCBmcm9tICdxbF9jb3JlX2R1bXAnIGF0IGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdl L3FsZ2VfZGJnLmM6MTEwNjoyOgpkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWxnZS9xbGdl X2RiZy5jOjcwODoyOiBlcnJvcjogJ21lbWNweScgcmVhZGluZyAxNSBieXRlcyBmcm9tIGEgcmVn aW9uIG9mIHNpemUgMTQgWy1XZXJyb3I9c3RyaW5nb3Atb3ZlcmZsb3c9XQogIG1lbWNweShzZWdf aGRyLT5kZXNjcmlwdGlvbiwgZGVzYywgKHNpemVvZihzZWdfaGRyLT5kZXNjcmlwdGlvbikpIC0g MSk7CgpDaGFuZ2luZyBpdCB0byB1c2Ugc3RybmNweSgpIHdpbGwgaW5zdGVhZCB6ZXJvLXBhZCB0 aGUgZGVzdGluYXRpb24sCndoaWNoIHNlZW1zIHRvIGJlIHRoZSByaWdodCB0aGluZyB0byBkbyBo ZXJlLgoKVGhlIGJ1ZyBpcyBwcm9iYWJseSBoYXJtbGVzcywgYnV0IGl0IHNlZW1zIGxpa2UgYSBn b29kIGlkZWEgdG8gYWRkcmVzcwppdCBpbiBzdGFibGUga2VybmVscyBhcyB3ZWxsLCBpZiBvbmx5 IGZvciB0aGUgcHVycG9zZSBvZiBidWlsZGluZyB3aXRoCmdjYy04IHdpdGhvdXQgd2FybmluZ3Mu CgpGaXhlczogYTYxZjgwMjYxMzA2ICgicWxnZTogQWRkIGV0aHRvb2wgcmVnaXN0ZXIgZHVtcCBm dW5jdGlvbi4iKQpTaWduZWQtb2ZmLWJ5OiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9kYmcuYyB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfZGJnLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9xbG9naWMvcWxnZS9xbGdlX2RiZy5jCmluZGV4IDgyOWJlMjFmOTdiMi4uYmUyNThk OTBkZTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWxnZS9xbGdl X2RiZy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfZGJnLmMK QEAgLTcyNCw3ICs3MjQsNyBAQCBzdGF0aWMgdm9pZCBxbF9idWlsZF9jb3JlZHVtcF9zZWdfaGVh ZGVyKAogCXNlZ19oZHItPmNvb2tpZSA9IE1QSV9DT1JFRFVNUF9DT09LSUU7CiAJc2VnX2hkci0+ c2VnTnVtID0gc2VnX251bWJlcjsKIAlzZWdfaGRyLT5zZWdTaXplID0gc2VnX3NpemU7Ci0JbWVt Y3B5KHNlZ19oZHItPmRlc2NyaXB0aW9uLCBkZXNjLCAoc2l6ZW9mKHNlZ19oZHItPmRlc2NyaXB0 aW9uKSkgLSAxKTsKKwlzdHJuY3B5KHNlZ19oZHItPmRlc2NyaXB0aW9uLCBkZXNjLCAoc2l6ZW9m KHNlZ19oZHItPmRlc2NyaXB0aW9uKSkgLSAxKTsKIH0KIAogLyoKLS0gCjIuMTMuNQoKCkZyb20g MTcxNTI1ZmE4YzYzM2ZmNWQ2MWY4MzZiZDdkNjEwMTZiMTc2YzVhNCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogc3RlcGhlbiBoZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIu b3JnPgpEYXRlOiBUaHUsIDI0IEF1ZyAyMDE3IDE2OjQ5OjE2IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwOS8yNV0gbmV0dnNjOiBmaXggZGVhZGxvY2sgYmV0d2VuIGxpbmsgc3RhdHVzIGFuZCByZW1v dmFsCgpbIFVwc3RyZWFtIGNvbW1pdCA5YjRlOTQ2Y2UxNGUyMGQ3YWRkYmZiN2Q5MTM5ZTYwNGY5 ZmRhMTA3IF0KClRoZXJlIGlzIGEgZGVhZGxvY2sgcG9zc2libGUgd2hlbiBjYW5jZWxpbmcgdGhl IGxpbmsgc3RhdHVzCmRlbGF5ZWQgd29yayBxdWV1ZS4gVGhlIHJlbW92YWwgcHJvY2VzcyBpcyBy dW4gd2l0aCBSVE5MIGhlbGQsCmFuZCB0aGUgbGluayBzdGF0dXMgY2FsbGJhY2sgaXMgYWNxdXJp bmcgUlROTC4KClJlc29sdmUgdGhlIGlzc3VlIGJ5IHVzaW5nIHRyeWxvY2sgYW5kIHJlc2NoZWR1 bGluZy4KSWYgY2FuY2VsIGlzIGluIHByb2Nlc3MsIHRoYXQgYmxvY2sgaXQgZnJvbSBoYXBwZW5p bmcuCgpGaXhlczogMTIyYTVmNjQxMGY0ICgic3RhZ2luZzogaHY6IHVzZSBkZWxheWVkX3dvcmsg Zm9yIG5ldHZzY19zZW5kX2dhcnAoKSIpClNpZ25lZC1vZmYtYnk6IFN0ZXBoZW4gSGVtbWluZ2Vy IDxzdGhlbW1pbkBtaWNyb3NvZnQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYu YyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9kcml2 ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGZmMDM4ZTUwN2ZkNi4uMzZhMDRlMTgy YWYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBiL2Ry aXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTEwODQsNyArMTA4NCwxMiBAQCBzdGF0 aWMgdm9pZCBuZXR2c2NfbGlua19jaGFuZ2Uoc3RydWN0IHdvcmtfc3RydWN0ICp3KQogCWJvb2wg bm90aWZ5ID0gZmFsc2UsIHJlc2NoZWR1bGUgPSBmYWxzZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz LCBuZXh0X3JlY29uZmlnLCBkZWxheTsKIAotCXJ0bmxfbG9jaygpOworCS8qIGlmIGNoYW5nZXMg YXJlIGhhcHBlbmluZywgY29tZWJhY2sgbGF0ZXIgKi8KKwlpZiAoIXJ0bmxfdHJ5bG9jaygpKSB7 CisJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmbmRldl9jdHgtPmR3b3JrLCBMSU5LQ0hBTkdFX0lO VCk7CisJCXJldHVybjsKKwl9CisKIAlpZiAobmRldl9jdHgtPnN0YXJ0X3JlbW92ZSkKIAkJZ290 byBvdXRfdW5sb2NrOwogCi0tIAoyLjEzLjUKCgpGcm9tIGU0M2IyNjdlYWU1ODFlOWJjM2E4OTIw OWZhMjEzNDljMDllNGVjYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbm8g QnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMjUgQXVnIDIwMTcgMjI6NDg6 NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzI1XSBjeGdiNDogRml4IHN0YWNrIG91dC1vZi1i b3VuZHMgcmVhZCBkdWUgdG8gd3Jvbmcgc2l6ZQogdG8gdDRfcmVjb3JkX21ib3goKQoKWyBVcHN0 cmVhbSBjb21taXQgMGYzMDg2ODY4ZTg4ODlhODIzYTZlMGYzZDI5OTEwMmFhODk1ZDk0NyBdCgpQ YXNzaW5nIGNvbW1hbmRzIGZvciBsb2dnaW5nIHRvIHQ0X3JlY29yZF9tYm94KCkgd2l0aCBzaXpl Ck1CT1hfTEVOLCB3aGVuIHRoZSBhY3R1YWwgY29tbWFuZCBzaXplIGlzIGFjdHVhbGx5IHNtYWxs ZXIsCmNhdXNlcyBvdXQtb2YtYm91bmRzIHN0YWNrIGFjY2Vzc2VzIGluIHQ0X3JlY29yZF9tYm94 KCkgd2hpbGUKY29weWluZyBjb21tYW5kIHdvcmRzIGhlcmU6CgoJZm9yIChpID0gMDsgaSA8IHNp emUgLyA4OyBpKyspCgkJZW50cnktPmNtZFtpXSA9IGJlNjRfdG9fY3B1KGNtZFtpXSk7CgpVcCB0 byA0OCBieXRlcyBmcm9tIHRoZSBzdGFjayBhcmUgdGhlbiBsZWFrZWQgdG8gZGVidWdmcy4KClRo aXMgaGFwcGVucyB3aGVuZXZlciB3ZSBzZW5kIChhbmQgbG9nKSBjb21tYW5kcyBkZXNjcmliZWQg YnkKc3RydWN0cyBmd19zY2hlZF9jbWQgKDMyIGJ5dGVzIGxlYWtlZCksIGZ3X3ZpX3J4bW9kZV9j bWQgKDQ4KSwKZndfaGVsbG9fY21kICg0OCksIGZ3X2J5ZV9jbWQgKDQ4KSwgZndfaW5pdGlhbGl6 ZV9jbWQgKDQ4KSwKZndfcmVzZXRfY21kICg0OCksIGZ3X3BmdmZfY21kICgzMiksIGZ3X2VxX2V0 aF9jbWQgKDE2KSwKZndfZXFfY3RybF9jbWQgKDMyKSwgZndfZXFfb2ZsZF9jbWQgKDMyKSwgZndf YWNsX21hY19jbWQoMTYpLApmd19yc3NfZ2xiX2NvbmZpZ19jbWQoMzIpLCBmd19yc3NfdmlfY29u ZmlnX2NtZCgzMiksCmZ3X2RldmxvZ19jbWQoMzIpLCBmd192aV9lbmFibGVfY21kKDQ4KSwgZndf cG9ydF9jbWQoMzIpLApmd19zY2hlZF9jbWQoMzIpLCBmd19kZXZsb2dfY21kKDMyKS4KClRoZSBj eGdiNHZmIGRyaXZlciBnb3QgdGhpcyByaWdodCBpbnN0ZWFkLgoKV2hlbiB3ZSBjYWxsIHQ0X3Jl Y29yZF9tYm94KCkgdG8gbG9nIGEgY29tbWFuZCByZXBseSwgYSBNQk9YX0xFTgpzaXplIGNhbiBi ZSB1c2VkIHRob3VnaCwgYXMgZ2V0X21ib3hfcnBsKCkgd2lsbCBmaWxsIGNtZF9ycGwgdXAKY29t cGxldGVseS4KCkZpeGVzOiA3ZjA4MGMzZjJmZjAgKCJjeGdiNDogQWRkIHN1cHBvcnQgdG8gZW5h YmxlIGxvZ2dpbmcgb2YgZmlybXdhcmUgbWFpbGJveCBjb21tYW5kcyIpClNpZ25lZC1vZmYtYnk6 IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lv L2N4Z2I0L3Q0X2h3LmMKaW5kZXggZTgxMzk1MTRkMzJjLi45ZTA3M2ZiNjg3MGEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfaHcuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMKQEAgLTMxNywxMiArMzE3LDEy IEBAIGludCB0NF93cl9tYm94X21lYXRfdGltZW91dChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgaW50 IG1ib3gsIGNvbnN0IHZvaWQgKmNtZCwKIAogCWlmICh2ICE9IE1CT1hfT1dORVJfRFJWKSB7CiAJ CXJldCA9ICh2ID09IE1CT1hfT1dORVJfRlcpID8gLUVCVVNZIDogLUVUSU1FRE9VVDsKLQkJdDRf cmVjb3JkX21ib3goYWRhcCwgY21kLCBNQk9YX0xFTiwgYWNjZXNzLCByZXQpOworCQl0NF9yZWNv cmRfbWJveChhZGFwLCBjbWQsIHNpemUsIGFjY2VzcywgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9 CiAKIAkvKiBDb3B5IGluIHRoZSBuZXcgbWFpbGJveCBjb21tYW5kIGFuZCBzZW5kIGl0IG9uIGl0 cyB3YXkgLi4uICovCi0JdDRfcmVjb3JkX21ib3goYWRhcCwgY21kLCBNQk9YX0xFTiwgYWNjZXNz LCAwKTsKKwl0NF9yZWNvcmRfbWJveChhZGFwLCBjbWQsIHNpemUsIGFjY2VzcywgMCk7CiAJZm9y IChpID0gMDsgaSA8IHNpemU7IGkgKz0gOCkKIAkJdDRfd3JpdGVfcmVnNjQoYWRhcCwgZGF0YV9y ZWcgKyBpLCBiZTY0X3RvX2NwdSgqcCsrKSk7CiAKQEAgLTM3MSw3ICszNzEsNyBAQCBpbnQgdDRf d3JfbWJveF9tZWF0X3RpbWVvdXQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIGludCBtYm94LCBjb25z dCB2b2lkICpjbWQsCiAJfQogCiAJcmV0ID0gKHBjaWVfZncgJiBQQ0lFX0ZXX0VSUl9GKSA/IC1F TlhJTyA6IC1FVElNRURPVVQ7Ci0JdDRfcmVjb3JkX21ib3goYWRhcCwgY21kLCBNQk9YX0xFTiwg YWNjZXNzLCByZXQpOworCXQ0X3JlY29yZF9tYm94KGFkYXAsIGNtZCwgc2l6ZSwgYWNjZXNzLCBy ZXQpOwogCWRldl9lcnIoYWRhcC0+cGRldl9kZXYsICJjb21tYW5kICUjeCBpbiBtYWlsYm94ICVk IHRpbWVkIG91dFxuIiwKIAkJKihjb25zdCB1OCAqKWNtZCwgbWJveCk7CiAJdDRfcmVwb3J0X2Z3 X2Vycm9yKGFkYXApOwotLSAKMi4xMy41CgoKRnJvbSA5NTU5MjRkN2I0M2YzOGIxNTFkYjE2OTVk OGIwM2E3M2EyOGVkZDMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBQ b2lyaWVyIDxicG9pcmllckBzdXNlLmNvbT4KRGF0ZTogTW9uLCAyOCBBdWcgMjAxNyAxNDoyOTo0 MSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMjVdIHBhY2tldDogRG9uJ3Qgd3JpdGUgdm5ldCBo ZWFkZXIgYmV5b25kIGVuZCBvZiBidWZmZXIKClsgVXBzdHJlYW0gY29tbWl0IGVkYmQ1OGJlMTVh OTU3ZjZhNzYwYzRhNTE0Y2Q0NzUyMTdlYjk3ZmQgXQoKLi4uIHdoaWNoIG1heSBoYXBwZW4gd2l0 aCBjZXJ0YWluIHZhbHVlcyBvZiB0cF9yZXNlcnZlIGFuZCBtYWNsZW4uCgpGaXhlczogNThkMTli MTljZDk5ICgicGFja2V0OiB2bmV0X2hkciBzdXBwb3J0IGZvciB0cGFja2V0X3JjdiIpClNpZ25l ZC1vZmYtYnk6IEJlbmphbWluIFBvaXJpZXIgPGJwb2lyaWVyQHN1c2UuY29tPgpDYzogV2lsbGVt IGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpBY2tlZC1ieTogV2lsbGVtIGRlIEJydWlq biA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDEyICsrKysr KysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYwppbmRleCBhZTdiZmQyNmNkOTEuLjM1YmE0YjYwZDkyNyAxMDA2NDQKLS0tIGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0yMTUxLDYg KzIxNTEsNyBAQCBzdGF0aWMgaW50IHRwYWNrZXRfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCV9fdTMyIHRzX3N0 YXR1czsKIAlib29sIGlzX2Ryb3Bfbl9hY2NvdW50ID0gZmFsc2U7CisJYm9vbCBkb192bmV0ID0g ZmFsc2U7CiAKIAkvKiBzdHJ1Y3QgdHBhY2tldHsyLDN9X2hkciBpcyBhbGlnbmVkIHRvIGEgbXVs dGlwbGUgb2YgVFBBQ0tFVF9BTElHTk1FTlQuCiAJICogV2UgbWF5IGFkZCBtZW1iZXJzIHRvIHRo ZW0gdW50aWwgY3VycmVudCBhbGlnbmVkIHNpemUgd2l0aG91dCBmb3JjaW5nCkBAIC0yMjAxLDgg KzIyMDIsMTAgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQluZXRvZmYgPSBUUEFDS0VUX0FMSUdOKHBvLT50cF9o ZHJsZW4gKwogCQkJCSAgICAgICAobWFjbGVuIDwgMTYgPyAxNiA6IG1hY2xlbikpICsKIAkJCQkg ICAgICAgcG8tPnRwX3Jlc2VydmU7Ci0JCWlmIChwby0+aGFzX3ZuZXRfaGRyKQorCQlpZiAocG8t Pmhhc192bmV0X2hkcikgewogCQkJbmV0b2ZmICs9IHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9o ZHIpOworCQkJZG9fdm5ldCA9IHRydWU7CisJCX0KIAkJbWFjb2ZmID0gbmV0b2ZmIC0gbWFjbGVu OwogCX0KIAlpZiAocG8tPnRwX3ZlcnNpb24gPD0gVFBBQ0tFVF9WMikgewpAQCAtMjIxOSw4ICsy MjIyLDEwIEBAIHN0YXRpYyBpbnQgdHBhY2tldF9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJc2tiX3NldF9vd25lcl9yKGNvcHlfc2tiLCBzayk7 CiAJCQl9CiAJCQlzbmFwbGVuID0gcG8tPnJ4X3JpbmcuZnJhbWVfc2l6ZSAtIG1hY29mZjsKLQkJ CWlmICgoaW50KXNuYXBsZW4gPCAwKQorCQkJaWYgKChpbnQpc25hcGxlbiA8IDApIHsKIAkJCQlz bmFwbGVuID0gMDsKKwkJCQlkb192bmV0ID0gZmFsc2U7CisJCQl9CiAJCX0KIAl9IGVsc2UgaWYg KHVubGlrZWx5KG1hY29mZiArIHNuYXBsZW4gPgogCQkJICAgIEdFVF9QQkRRQ19GUk9NX1JCKCZw by0+cnhfcmluZyktPm1heF9mcmFtZV9sZW4pKSB7CkBAIC0yMjMzLDYgKzIyMzgsNyBAQCBzdGF0 aWMgaW50IHRwYWNrZXRfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJCWlmICh1bmxpa2VseSgoaW50KXNuYXBsZW4gPCAwKSkgewogCQkJc25hcGxlbiA9 IDA7CiAJCQltYWNvZmYgPSBHRVRfUEJEUUNfRlJPTV9SQigmcG8tPnJ4X3JpbmcpLT5tYXhfZnJh bWVfbGVuOworCQkJZG9fdm5ldCA9IGZhbHNlOwogCQl9CiAJfQogCXNwaW5fbG9jaygmc2stPnNr X3JlY2VpdmVfcXVldWUubG9jayk7CkBAIC0yMjU4LDcgKzIyNjQsNyBAQCBzdGF0aWMgaW50IHRw YWNrZXRfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJ fQogCXNwaW5fdW5sb2NrKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsKIAotCWlmIChwby0+ aGFzX3ZuZXRfaGRyKSB7CisJaWYgKGRvX3ZuZXQpIHsKIAkJaWYgKF9fcGFja2V0X3Jjdl92bmV0 KHNrYiwgaC5yYXcgKyBtYWNvZmYgLQogCQkJCQkgICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRf aGRyKSkpIHsKIAkJCXNwaW5fbG9jaygmc2stPnNrX3JlY2VpdmVfcXVldWUubG9jayk7Ci0tIAoy LjEzLjUKCgpGcm9tIDRhODExMTJhNzFkY2E1Nzc0ODkzOWMwZTMwOWQ4MzIxYTM2NjgxMGUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KRGF0ZTogV2VkLCAzMCBBdWcgMjAxNyAwOToyOTozMSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMTIvMjVdIGtjbTogZG8gbm90IGF0dGFjaCBQRl9LQ00gc29ja2V0cyB0byBhdm9pZCBkZWFk bG9jawoKWyBVcHN0cmVhbSBjb21taXQgMzUxMDUwZWNkNjUyMzM3NGIzNzAzNDFjYzI5ZmU2MWUy MjAxNTU2YiBdCgpzeXprYWxsZXIgaGFkIG5vIHByb2JsZW0gdG8gdHJpZ2dlciBhIGRlYWRsb2Nr LCBhdHRhY2hpbmcgYSBLQ00gc29ja2V0CnRvIGFub3RoZXIgb25lIChvciBpdHNlbGYpLiAob3Jp Z2luYWwgc3l6a2FsbGVyIHJlcG9ydCB3YXMgYSB2ZXJ5CmNvbmZ1c2luZyBsb2NrZGVwIHNwbGF0 IGR1cmluZyBhIHNlbmRtc2coKSkKCkl0IHNlZW1zIEtDTSBjbGFpbXMgdG8gb25seSBzdXBwb3J0 IFRDUCwgYnV0IG5vIGVuZm9yY2VtZW50IGlzIGRvbmUsCnNvIHdlIG1pZ2h0IG5lZWQgdG8gYWRk IGFkZGl0aW9uYWwgY2hlY2tzLgoKRml4ZXM6IGFiN2FjNGViOTgzMiAoImtjbTogS2VybmVsIENv bm5lY3Rpb24gTXVsdGlwbGV4b3IgbW9kdWxlIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtv dkBnb29nbGUuY29tPgpBY2tlZC1ieTogVG9tIEhlcmJlcnQgPHRvbUBxdWFudG9uaXVtLm5ldD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9rY20va2Ntc29jay5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvbmV0L2tjbS9rY21zb2NrLmMgYi9uZXQva2NtL2tjbXNvY2suYwpp bmRleCBmZWNhZDEwOThjZjguLjdlYjBlOGZlM2NhOCAxMDA2NDQKLS0tIGEvbmV0L2tjbS9rY21z b2NrLmMKKysrIGIvbmV0L2tjbS9rY21zb2NrLmMKQEAgLTEzODEsNiArMTM4MSwxMCBAQCBzdGF0 aWMgaW50IGtjbV9hdHRhY2goc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqY3Nv Y2ssCiAJaWYgKCFjc2spCiAJCXJldHVybiAtRUlOVkFMOwogCisJLyogV2UgbXVzdCBwcmV2ZW50 IGxvb3BzIG9yIHJpc2sgZGVhZGxvY2sgISAqLworCWlmIChjc2stPnNrX2ZhbWlseSA9PSBQRl9L Q00pCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwogCXBzb2NrID0ga21lbV9jYWNoZV96YWxsb2Mo a2NtX3Bzb2NrcCwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFwc29jaykKIAkJcmV0dXJuIC1FTk9NRU07 Ci0tIAoyLjEzLjUKCgpGcm9tIDFmNmQzMmNkNmY4ODJmYzk4MGM4ZTk4MjgzOTVhYWY3ZmI1ODQ5 NDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpEYXRlOiBXZWQsIDMwIEF1ZyAyMDE3IDE3OjQ5OjI5IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAxMy8yNV0gUmV2ZXJ0ICJuZXQ6IHBoeTogQ29ycmVjdGx5IHByb2Nlc3Mg UEhZX0hBTFRFRCBpbgogcGh5X3N0b3BfbWFjaGluZSgpIgoKWyBVcHN0cmVhbSBjb21taXQgZWJj ODI1NGFlYWUzNDIyNmQwYmM4ZmRhMzA5ZmQ5NzkwZDRkY2NmZSBdCgpUaGlzIHJldmVydHMgY29t bWl0IDdhZDgxM2YyMDg1MzNjZWJmY2MzMmQzZDc0NzRkYzE2NzdkMWIwOWEgKCJuZXQ6IHBoeToK Q29ycmVjdGx5IHByb2Nlc3MgUEhZX0hBTFRFRCBpbiBwaHlfc3RvcF9tYWNoaW5lKCkiKSBiZWNh dXNlIGl0IGlzCmNyZWF0aW5nIHRoZSBwb3NzaWJpbGl0eSBmb3IgYSBOVUxMIHBvaW50ZXIgZGVy ZWZlcmVuY2UuCgpEYXZpZCBEYW5leSBwcm92aWRlIHRoZSBmb2xsb3dpbmcgY2FsbCB0cmFjZSBh bmQgZGlhZ3JhbSBvZiBldmVudHM6CgpXaGVuIG5kb19zdG9wKCkgaXMgY2FsbGVkIHdlIGNhbGw6 CgogcGh5X2Rpc2Nvbm5lY3QoKQogICAgKy0tLT4gcGh5X3N0b3BfaW50ZXJydXB0cygpIGltcGxp ZXM6IHBoeWRldi0+aXJxID0gUEhZX1BPTEw7CiAgICArLS0tPiBwaHlfc3RvcF9tYWNoaW5lKCkK ICAgIHwgICAgICArLS0tPiBwaHlfc3RhdGVfbWFjaGluZSgpCiAgICB8ICAgICAgICAgICAgICAr LS0tLT4gcXVldWVfZGVsYXllZF93b3JrKCk6IFdvcmsgcXVldWVkLgogICAgKy0tLT5waHlfZGV0 YWNoKCkgaW1wbGllczogcGh5ZGV2LT5hdHRhY2hlZF9kZXYgPSBOVUxMOwoKTm93IGF0IGEgbGF0 ZXIgdGltZSB0aGUgcXVldWVkIHdvcmsgZG9lczoKCiBwaHlfc3RhdGVfbWFjaGluZSgpCiAgICAr LS0tLT5uZXRpZl9jYXJyaWVyX29mZihwaHlkZXYtPmF0dGFjaGVkX2Rldik6IE9oIG5vISBJdCBp cyBOVUxMOgoKIENQVSAxMiBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCBh dCB2aXJ0dWFsIGFkZHJlc3MKMDAwMDAwMDAwMDAwMDA0OCwgZXBjID09IGZmZmZmZmZmODBkZTM3 ZWMsIHJhID09IGZmZmZmZmZmODBjN2MKT29wc1sjMV06CkNQVTogMTIgUElEOiAxNTAyIENvbW06 IGt3b3JrZXIvMTI6MSBOb3QgdGFpbnRlZCA0LjkuNDMtQ2F2aXVtLU9jdGVvbisgIzEKV29ya3F1 ZXVlOiBldmVudHNfcG93ZXJfZWZmaWNpZW50IHBoeV9zdGF0ZV9tYWNoaW5lCnRhc2s6IDgwMDAw MDA0MDIxZWQxMDAgdGFzay5zdGFjazogODAwMDAwMDQwOWQ3MDAwMAokIDAgICA6IDAwMDAwMDAw MDAwMDAwMDAgZmZmZmZmZmY4NDcyMDA2MCAwMDAwMDAwMDAwMDAwMDQ4IDAwMDAwMDAwMDAwMDAw MDQKJCA0ICAgOiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAw MDAwNCAwMDAwMDAwMDAwMDAwMDAwCiQgOCAgIDogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw MDAwMDAwIDAwMDAwMDAwZmZmZjk4ZjMgMDAwMDAwMDAwMDAwMDAwMAokMTIgICA6IDgwMDAwMDA0 MDlkNzNmZTAgMDAwMDAwMDAwMDAwOWMwMCBmZmZmZmZmZjg0NjU0N2M4IDAwMDAwMDAwMDAwMGFm M2IKJDE2ICAgOiA4MDAwMDAwNDA5NmJhYjY4IDgwMDAwMDA0MDk2YmFiZDAgMDAwMDAwMDAwMDAw MDAwMCA4MDAwMDAwNDA5NmJhODAwCiQyMCAgIDogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw MDAwMDAwIGZmZmZmZmZmODEwOTAwMDAgMDAwMDAwMDAwMDAwMDAwOAokMjQgICA6IDAwMDAwMDAw MDAwMDAwNjEgZmZmZmZmZmY4MDg2MzdiMAokMjggICA6IDgwMDAwMDA0MDlkNzAwMDAgODAwMDAw MDQwOWQ3M2NmMCA4MDAwMDAwMDI3MWJkMzAwIGZmZmZmZmZmODBjNzgwNGMKSGkgICAgOiAwMDAw MDAwMDAwMDAwMDJhCkxvICAgIDogMDAwMDAwMDAwMDAwMDAzZgplcGMgICA6IGZmZmZmZmZmODBk ZTM3ZWMgbmV0aWZfY2Fycmllcl9vZmYrMHhjLzB4NTgKcmEgICAgOiBmZmZmZmZmZjgwYzc4MDRj IHBoeV9zdGF0ZV9tYWNoaW5lKzB4NDhjLzB4NGY4ClN0YXR1czogMTQwMDljZTMgICAgICAgIEtY IFNYIFVYIEtFUk5FTCBFWEwgSUUKQ2F1c2UgOiAwMDgwMDAwOCAoRXhjQ29kZSAwMikKQmFkVkEg OiAwMDAwMDAwMDAwMDAwMDQ4ClBySWQgIDogMDAwZDk1MDEgKENhdml1bSBPY3Rlb24gSUlJKQpN b2R1bGVzIGxpbmtlZCBpbjoKUHJvY2VzcyBrd29ya2VyLzEyOjEgKHBpZDogMTUwMiwgdGhyZWFk aW5mbz04MDAwMDAwNDA5ZDcwMDAwLAp0YXNrPTgwMDAwMDA0MDIxZWQxMDAsIHRscz0wMDAwMDAw MDAwMDAwMDAwKQpTdGFjayA6IDgwMDAwMDA0MDlhNTQwMDAgODAwMDAwMDQwOTZiYWI2OCA4MDAw MDAwMDI3MWJkMzAwIDgwMDAwMDAwMjcxYzFlMDAKICAgICAgICAwMDAwMDAwMDAwMDAwMDAwIGZm ZmZmZmZmODA4YTE3MDggODAwMDAwMDQwOWE1NDAwMCA4MDAwMDAwMDI3MWJkMzAwCiAgICAgICAg ODAwMDAwMDAyNzFiZDMyMCA4MDAwMDAwNDA5YTU0MDMwIGZmZmZmZmZmODBmZjBmMDAgMDAwMDAw MDAwMDAwMDAwMQogICAgICAgIGZmZmZmZmZmODEwOTAwMDAgZmZmZmZmZmY4MDhhMWFjMCA4MDAw MDAwNDAyMTgyMDgwIGZmZmZmZmZmODQ2NTAwMDAKICAgICAgICA4MDAwMDAwNDAyMTgyMDgwIGZm ZmZmZmZmODQ2NTAwMDAgZmZmZmZmZmY4MGZmMDAwMCA4MDAwMDAwNDA5YTU0MDAwCiAgICAgICAg ZmZmZmZmZmY4MDhhMTk3MCAwMDAwMDAwMDAwMDAwMDAwIDgwMDAwMDA0MDk5ZTgwMDAgODAwMDAw MDQwMjA5OTI0MAogICAgICAgIDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmY4MDhhODU5OCAwMDAw MDAwMDAwMDAwMDAwIDgwMDAwMDA0MDhlZWViMDAKICAgICAgICA4MDAwMDAwNDA5YTU0MDAwIDAw MDAwMDAwODEwYTFkMDAgMDAwMDAwMDAwMDAwMDAwMCA4MDAwMDAwNDA5ZDczZGU4CiAgICAgICAg ODAwMDAwMDQwOWQ3M2RlOCAwMDAwMDAwMDAwMDAwMDg4IDAwMDAwMDAwMGMwMDljMDAgODAwMDAw MDQwOWQ3M2UwOAogICAgICAgIDgwMDAwMDA0MDlkNzNlMDggODAwMDAwMDQwMjE4MjA4MCBmZmZm ZmZmZjgwOGE4NGQwIDgwMDAwMDA0MDIxODIwODAKICAgICAgICAuLi4KQ2FsbCBUcmFjZToKWzxm ZmZmZmZmZjgwZGUzN2VjPl0gbmV0aWZfY2Fycmllcl9vZmYrMHhjLzB4NTgKWzxmZmZmZmZmZjgw Yzc4MDRjPl0gcGh5X3N0YXRlX21hY2hpbmUrMHg0OGMvMHg0ZjgKWzxmZmZmZmZmZjgwOGExNzA4 Pl0gcHJvY2Vzc19vbmVfd29yaysweDE1OC8weDM2OApbPGZmZmZmZmZmODA4YTFhYzA+XSB3b3Jr ZXJfdGhyZWFkKzB4MTUwLzB4NGMwCls8ZmZmZmZmZmY4MDhhODU5OD5dIGt0aHJlYWQrMHhjOC8w eGUwCls8ZmZmZmZmZmY4MDg2MTdmMD5dIHJldF9mcm9tX2tlcm5lbF90aHJlYWQrMHgxNC8weDFj CgpUaGUgb3JpZ2luYWwgbW90aXZhdGlvbiBmb3IgdGhpcyBjaGFuZ2Ugb3JpZ2luYXRlZCBmcm9t IE1hcmMgR29uemFsZXMKaW5kaWNhdGluZyB0aGF0IGhpcyBuZXR3b3JrIGRyaXZlciBkaWQgbm90 IGhhdmUgaXRzIGFkanVzdF9saW5rIGNhbGxiYWNrCmV4ZWN1dGluZyB3aXRoIHBoeWRldi0+bGlu ayA9IDAgd2hpbGUgaGUgd2FzIGV4cGVjdGluZyBpdC4KClBIWUxJQiBoYXMgbmV2ZXIgbWFkZSBh bnkgc3VjaCBndWFyYW50ZWVzIGV2ZXIgYmVjYXVzZSBwaHlfc3RvcCgpIG1lcmVseSBqdXN0CnRl bGxzIHRoZSB3b3JrcXVldWUgdG8gbW92ZSBpbnRvIFBIWV9IQUxURUQgc3RhdGUgd2hpY2ggd2ls bCBoYXBwZW4KYXN5bmNocm9ub3VzbHkuCgpSZXBvcnRlZC1ieTogR2VlcnQgVXl0dGVyaG9ldmVu IDxnZWVydCtyZW5lc2FzQGdsaWRlci5iZT4KUmVwb3J0ZWQtYnk6IERhdmlkIERhbmV5IDxkZGFu ZXkuY2F2bUBnbWFpbC5jb20+CkZpeGVzOiA3YWQ4MTNmMjA4NTMgKCJuZXQ6IHBoeTogQ29ycmVj dGx5IHByb2Nlc3MgUEhZX0hBTFRFRCBpbiBwaHlfc3RvcF9tYWNoaW5lKCkiKQpTaWduZWQtb2Zm LWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3BoeS9waHkuYyB8IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5LmMgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKaW5k ZXggNzc1YTZlMWZkZWY5Li42ZTEyNDAxYjUxMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Bo eS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKQEAgLTY3NCw5ICs2NzQsNiBAQCB2 b2lkIHBoeV9zdG9wX21hY2hpbmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAocGh5 ZGV2LT5zdGF0ZSA+IFBIWV9VUCAmJiBwaHlkZXYtPnN0YXRlICE9IFBIWV9IQUxURUQpCiAJCXBo eWRldi0+c3RhdGUgPSBQSFlfVVA7CiAJbXV0ZXhfdW5sb2NrKCZwaHlkZXYtPmxvY2spOwotCi0J LyogTm93IHdlIGNhbiBydW4gdGhlIHN0YXRlIG1hY2hpbmUgc3luY2hyb25vdXNseSAqLwotCXBo eV9zdGF0ZV9tYWNoaW5lKCZwaHlkZXYtPnN0YXRlX3F1ZXVlLndvcmspOwogfQogCiAvKioKLS0g CjIuMTMuNQoKCkZyb20gYzFjODJmM2M5MzJhZTk3YmViMDQ0ZDk2Y2QwMmVlOTZkNDY0MGUxZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2VpIFdhbmcgPHdlaXdhbkBnb29nbGUuY29t PgpEYXRlOiBUaHUsIDE4IE1heSAyMDE3IDExOjIyOjMzIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAx NC8yNV0gdGNwOiBpbml0aWFsaXplIHJjdl9tc3MgdG8gVENQX01JTl9NU1MgaW5zdGVhZCBvZiAw CgpbIFVwc3RyZWFtIGNvbW1pdCA0OTkzNTBhNWE2ZTc1MTJkOWVkMzY5ZWQ2M2E0MjQ0YjY1MzZm NGY4IF0KCldoZW4gdGNwX2Rpc2Nvbm5lY3QoKSBpcyBjYWxsZWQsIGluZXRfY3NrX2RlbGFja19p bml0KCkgc2V0cwppY3NrLT5pY3NrX2Fjay5yY3ZfbXNzIHRvIDAuClRoaXMgY291bGQgcG90ZW50 aWFsbHkgY2F1c2UgdGNwX3JlY3Ztc2coKSA9PiB0Y3BfY2xlYW51cF9yYnVmKCkgPT4KX190Y3Bf c2VsZWN0X3dpbmRvdygpIGNhbGwgcGF0aCB0byBoYXZlIGRpdmlzaW9uIGJ5IDAgaXNzdWUuClNv IHRoaXMgcGF0Y2ggaW5pdGlhbGl6ZXMgcmN2X21zcyB0byBUQ1BfTUlOX01TUyBpbnN0ZWFkIG9m IDAuCgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiAgPGFuZHJleWtudmxAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogV2VpIFdhbmcgPHdlaXdhbkBnb29nbGUuY29tPgpTaWduZWQtb2Zm LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IE5l YWwgQ2FyZHdlbGwgPG5jYXJkd2VsbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBZdWNodW5n IENoZW5nIDx5Y2hlbmdAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcC5jIHwgNCArKysrCiAxIGZp bGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMg Yi9uZXQvaXB2NC90Y3AuYwppbmRleCAxYTRkYjI3ZjU4MzMuLjZiM2QyN2U1MDMxNyAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvdGNwLmMKKysrIGIvbmV0L2lwdjQvdGNwLmMKQEAgLTIyOTcsNiArMjI5 NywxMCBAQCBpbnQgdGNwX2Rpc2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MpCiAJ dGNwX3NldF9jYV9zdGF0ZShzaywgVENQX0NBX09wZW4pOwogCXRjcF9jbGVhcl9yZXRyYW5zKHRw KTsKIAlpbmV0X2Nza19kZWxhY2tfaW5pdChzayk7CisJLyogSW5pdGlhbGl6ZSByY3ZfbXNzIHRv IFRDUF9NSU5fTVNTIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IDAKKwkgKiBpc3N1ZSBpbiBfX3RjcF9z ZWxlY3Rfd2luZG93KCkKKwkgKi8KKwlpY3NrLT5pY3NrX2Fjay5yY3ZfbXNzID0gVENQX01JTl9N U1M7CiAJdGNwX2luaXRfc2VuZF9oZWFkKHNrKTsKIAltZW1zZXQoJnRwLT5yeF9vcHQsIDAsIHNp emVvZih0cC0+cnhfb3B0KSk7CiAJX19za19kc3RfcmVzZXQoc2spOwotLSAKMi4xMy41CgoKRnJv bSAzNTFjOTlkZDIwZjA2ZmNmYzZiZjIyZDZhYzQ0MWEzNWEwZjc0OTZmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6 IEZyaSwgMSBTZXAgMjAxNyAxMDo1MjozMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTUvMjVdIG1s eHN3OiBzcGVjdHJ1bTogRm9yYmlkIGxpbmtpbmcgdG8gZGV2aWNlcyB0aGF0IGhhdmUKIHVwcGVy cwoKWyBVcHN0cmVhbSBjb21taXQgMjVjYzcyYTMzODM1ZWQ4YTZmNTMxODBhODIyY2FkYWI4NTU4 NTJhYyBdCgpUaGUgbWx4c3cgZHJpdmVyIHJlbGllcyBvbiBORVRERVZfQ0hBTkdFVVBQRVIgZXZl bnRzIHRvIGNvbmZpZ3VyZSB0aGUKZGV2aWNlIGluIGNhc2UgYSBwb3J0IGlzIGVuc2xhdmVkIHRv IGEgbWFzdGVyIG5ldGRldiBzdWNoIGFzIGJyaWRnZSBvcgpib25kLgoKU2luY2UgdGhlIGRyaXZl ciBpZ25vcmVzIGV2ZW50cyB1bnJlbGF0ZWQgdG8gaXRzIHBvcnRzIGFuZCB0aGVpcgp1cHBlcnMs IGl0J3MgcG9zc2libGUgdG8gZW5naW5lZXIgc2l0dWF0aW9ucyBpbiB3aGljaCB0aGUgZGV2aWNl J3MgZGF0YQpwYXRoIGRpZmZlcnMgZnJvbSB0aGUga2VybmVsJ3MuCgpPbmUgZXhhbXBsZSB0byBz dWNoIGEgc2l0dWF0aW9uIGlzIHdoZW4gYSBwb3J0IGlzIGVuc2xhdmVkIHRvIGEgYm9uZAp0aGF0 IGlzIGFscmVhZHkgZW5zbGF2ZWQgdG8gYSBicmlkZ2UuIFdoZW4gdGhlIGJvbmQgd2FzIGVuc2xh dmVkIHRoZQpkcml2ZXIgaWdub3JlZCB0aGUgZXZlbnQgLSBhcyB0aGUgYm9uZCB3YXNuJ3Qgb25l IG9mIGl0cyB1cHBlcnMgLSBhbmQKdGhlcmVmb3JlIGEgYnJpZGdlIHBvcnQgaW5zdGFuY2UgaXNu J3QgY3JlYXRlZCBpbiB0aGUgZGV2aWNlLgoKVW50aWwgc3VjaCBjb25maWd1cmF0aW9ucyBhcmUg c3VwcG9ydGVkIGZvcmJpZCB0aGVtIGJ5IGNoZWNraW5nIHRoYXQgdGhlCnVwcGVyIGRldmljZSBk b2Vzbid0IGhhdmUgdXBwZXJzIG9mIGl0cyBvd24uCgpGaXhlczogMGQ2NWZjMTMwNDJmICgibWx4 c3c6IHNwZWN0cnVtOiBJbXBsZW1lbnQgTEFHIHBvcnQgam9pbi9sZWF2ZSIpClNpZ25lZC1vZmYt Ynk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KUmVwb3J0ZWQtYnk6IE5vZ2Fo IEZyYW5rZWwgPG5vZ2FoZkBtZWxsYW5veC5jb20+ClRlc3RlZC1ieTogTm9nYWggRnJhbmtlbCA8 bm9nYWhmQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5j IHwgNiArKysrKysKIGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggICAgICAgICAgICAgICAgICAg ICAgfCAyICsrCiBuZXQvY29yZS9kZXYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0 cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCmlu ZGV4IGY5MDJjNGQzZGU5OS4uMTgwNmIxZmM2ZTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKQEAgLTQxNzIsNiArNDE3Miw4IEBAIHN0YXRp YyBpbnQgbWx4c3dfc3BfbmV0ZGV2aWNlX3BvcnRfdXBwZXJfZXZlbnQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAkJCXJldHVybiAtRUlOVkFMOwogCQlpZiAoIWluZm8tPmxpbmtpbmcpCiAJCQli cmVhazsKKwkJaWYgKG5ldGRldl9oYXNfYW55X3VwcGVyX2Rldih1cHBlcl9kZXYpKQorCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCS8qIEhXIGxpbWl0YXRpb24gZm9yYmlkcyB0byBwdXQgcG9ydHMgdG8g bXVsdGlwbGUgYnJpZGdlcy4gKi8KIAkJaWYgKG5ldGlmX2lzX2JyaWRnZV9tYXN0ZXIodXBwZXJf ZGV2KSAmJgogCQkgICAgIW1seHN3X3NwX21hc3Rlcl9icmlkZ2VfY2hlY2sobWx4c3dfc3AsIHVw cGVyX2RldikpCkBAIC00MTg1LDYgKzQxODcsMTAgQEAgc3RhdGljIGludCBtbHhzd19zcF9uZXRk ZXZpY2VfcG9ydF91cHBlcl9ldmVudChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlpZiAobmV0 aWZfaXNfbGFnX3BvcnQoZGV2KSAmJiBpc192bGFuX2Rldih1cHBlcl9kZXYpICYmCiAJCSAgICAh bmV0aWZfaXNfbGFnX21hc3Rlcih2bGFuX2Rldl9yZWFsX2Rldih1cHBlcl9kZXYpKSkKIAkJCXJl dHVybiAtRUlOVkFMOworCQlpZiAoIWluZm8tPmxpbmtpbmcpCisJCQlicmVhazsKKwkJaWYgKG5l dGRldl9oYXNfYW55X3VwcGVyX2Rldih1cHBlcl9kZXYpKQorCQkJcmV0dXJuIC1FSU5WQUw7CiAJ CWJyZWFrOwogCWNhc2UgTkVUREVWX0NIQU5HRVVQUEVSOgogCQl1cHBlcl9kZXYgPSBpbmZvLT51 cHBlcl9kZXY7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oIGIvaW5jbHVk ZS9saW51eC9uZXRkZXZpY2UuaAppbmRleCA3ODBlNzE3MWY1NDguLjIzZGIxYWUzNzQ2NCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25l dGRldmljZS5oCkBAIC0zOTAxLDYgKzM5MDEsOCBAQCBzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2 X2FsbF91cHBlcl9nZXRfbmV4dF9kZXZfcmN1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJICAg ICB1cGRldjsgXAogCSAgICAgdXBkZXYgPSBuZXRkZXZfYWxsX3VwcGVyX2dldF9uZXh0X2Rldl9y Y3UoZGV2LCAmKGl0ZXIpKSkKIAorYm9vbCBuZXRkZXZfaGFzX2FueV91cHBlcl9kZXYoc3RydWN0 IG5ldF9kZXZpY2UgKmRldik7CisKIHZvaWQgKm5ldGRldl9sb3dlcl9nZXRfbmV4dF9wcml2YXRl KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJICAgIHN0cnVjdCBsaXN0X2hlYWQgKippdGVy KTsKIHZvaWQgKm5ldGRldl9sb3dlcl9nZXRfbmV4dF9wcml2YXRlX3JjdShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwpp bmRleCAxZDBhNzM2OWQ1YTIuLmJhN2I4MTIxYTQxNCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2 LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTUzMzcsMTIgKzUzMzcsMTMgQEAgRVhQT1JUX1NZ TUJPTChuZXRkZXZfaGFzX3VwcGVyX2Rldik7CiAgKiBGaW5kIG91dCBpZiBhIGRldmljZSBpcyBs aW5rZWQgdG8gYW4gdXBwZXIgZGV2aWNlIGFuZCByZXR1cm4gdHJ1ZSBpbiBjYXNlCiAgKiBpdCBp cy4gVGhlIGNhbGxlciBtdXN0IGhvbGQgdGhlIFJUTkwgbG9jay4KICAqLwotc3RhdGljIGJvb2wg bmV0ZGV2X2hhc19hbnlfdXBwZXJfZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCitib29sIG5l dGRldl9oYXNfYW55X3VwcGVyX2RldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCUFTU0VS VF9SVE5MKCk7CiAKIAlyZXR1cm4gIWxpc3RfZW1wdHkoJmRldi0+YWxsX2Fkal9saXN0LnVwcGVy KTsKIH0KK0VYUE9SVF9TWU1CT0wobmV0ZGV2X2hhc19hbnlfdXBwZXJfZGV2KTsKIAogLyoqCiAg KiBuZXRkZXZfbWFzdGVyX3VwcGVyX2Rldl9nZXQgLSBHZXQgbWFzdGVyIHVwcGVyIGRldmljZQot LSAKMi4xMy41CgoKRnJvbSA5NzE4MDhmZDMyMWEyMjgwYzdjYzIxNWIyNDE0YWY3ZWE0ZWM5OTc5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxs YW5veC5jb20+CkRhdGU6IEZyaSwgMSBTZXAgMjAxNyAxMjoyMjoyNSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMTYvMjVdIGJyaWRnZTogc3dpdGNoZGV2OiBDbGVhciBmb3J3YXJkIG1hcmsgd2hlbiB0 cmFuc21pdHRpbmcKIHBhY2tldAoKWyBVcHN0cmVhbSBjb21taXQgNzllOTliZGQ2MGI0ODRhZjlh ZmUwMTQ3ZTg1YTEzZTY2ZDVjMWNkYiBdCgpDb21taXQgNmJjNTA2YjRmYjA2ICgiYnJpZGdlOiBz d2l0Y2hkZXY6IEFkZCBmb3J3YXJkIG1hcmsgc3VwcG9ydCBmb3IKc3RhY2tlZCBkZXZpY2VzIikg YWRkZWQgdGhlICdvZmZsb2FkX2Z3ZF9tYXJrJyBiaXQgdG8gdGhlIHNrYiBpbiBvcmRlcgp0byBh bGxvdyBkcml2ZXJzIHRvIGluZGljYXRlIHRvIHRoZSBicmlkZ2UgZHJpdmVyIHRoYXQgdGhleSBh bHJlYWR5CmZvcndhcmRlZCB0aGUgcGFja2V0IGluIEwyLgoKSW4gY2FzZSB0aGUgYml0IGlzIHNl dCwgYmVmb3JlIHRyYW5zbWl0dGluZyB0aGUgcGFja2V0IGZyb20gZWFjaCBwb3J0LAp0aGUgcG9y dCdzIG1hcmsgaXMgY29tcGFyZWQgd2l0aCB0aGUgbWFyayBzdG9yZWQgaW4gdGhlIHNrYidzIGNv bnRyb2wKYmxvY2suIElmIGJvdGggbWFya3MgYXJlIGVxdWFsLCB3ZSBrbm93IHRoZSBwYWNrZXQg YXJyaXZlZCBmcm9tIGEgc3dpdGNoCmRldmljZSB0aGF0IGFscmVhZHkgZm9yd2FyZGVkIHRoZSBw YWNrZXQgYW5kIGl0J3Mgbm90IHJlLXRyYW5zbWl0dGVkLgoKSG93ZXZlciwgaWYgdGhlIHBhY2tl dCBpcyB0cmFuc21pdHRlZCBmcm9tIHRoZSBicmlkZ2UgZGV2aWNlIGl0c2VsZgooZS5nLiwgYnIw KSwgd2Ugc2hvdWxkIGNsZWFyIHRoZSAnb2ZmbG9hZF9md2RfbWFyaycgYml0IGFzIHRoZSBtYXJr CnN0b3JlZCBpbiB0aGUgc2tiJ3MgY29udHJvbCBibG9jayBpc24ndCB2YWxpZC4KClRoaXMgc2Nl bmFyaW8gY2FuIGhhcHBlbiBpbiByYXJlIGNhc2VzIHdoZXJlIGEgcGFja2V0IHdhcyB0cmFwcGVk IGR1cmluZwpMMyBmb3J3YXJkaW5nIGFuZCBmb3J3YXJkZWQgYnkgdGhlIGtlcm5lbCB0byBhIGJy aWRnZSBkZXZpY2UuCgpGaXhlczogNmJjNTA2YjRmYjA2ICgiYnJpZGdlOiBzd2l0Y2hkZXY6IEFk ZCBmb3J3YXJkIG1hcmsgc3VwcG9ydCBmb3Igc3RhY2tlZCBkZXZpY2VzIikKU2lnbmVkLW9mZi1i eTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogWW90YW0g R2lnaSA8eW90YW1nQG1lbGxhbm94LmNvbT4KVGVzdGVkLWJ5OiBZb3RhbSBHaWdpIDx5b3RhbWdA bWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ CkFja2VkLWJ5OiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvYnJpZGdlL2JyX2RldmljZS5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX2RldmljZS5jIGIvbmV0L2Jy aWRnZS9icl9kZXZpY2UuYwppbmRleCA4OWE2ODdmM2MwYTMuLjVmNWUyOGYyMTBlMCAxMDA2NDQK LS0tIGEvbmV0L2JyaWRnZS9icl9kZXZpY2UuYworKysgYi9uZXQvYnJpZGdlL2JyX2RldmljZS5j CkBAIC01Myw2ICs1Myw5IEBAIG5ldGRldl90eF90IGJyX2Rldl94bWl0KHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJYnJzdGF0cy0+dHhfYnl0ZXMgKz0gc2ti LT5sZW47CiAJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJmJyc3RhdHMtPnN5bmNwKTsKIAorI2lmZGVm IENPTkZJR19ORVRfU1dJVENIREVWCisJc2tiLT5vZmZsb2FkX2Z3ZF9tYXJrID0gMDsKKyNlbmRp ZgogCUJSX0lOUFVUX1NLQl9DQihza2IpLT5icmRldiA9IGRldjsKIAogCXNrYl9yZXNldF9tYWNf aGVhZGVyKHNrYik7Ci0tIAoyLjEzLjUKCgpGcm9tIGU3YjQ5ZjQ4OTQyNWM5MDg3ODE1MjhiMjI3 NTA4NTgxMDM0ODkzOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEplc3BlciBEYW5n YWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPgpEYXRlOiBGcmksIDEgU2VwIDIwMTcgMTE6 MjY6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzI1XSBSZXZlcnQgIm5ldDogdXNlIGxpYi9w ZXJjcHVfY291bnRlciBBUEkgZm9yCiBmcmFnbWVudGF0aW9uIG1lbSBhY2NvdW50aW5nIgoKWyBV cHN0cmVhbSBjb21taXQgZmI0NTJhMWFhM2ZkNDAzNGQ3OTk5ZTMwOWM1NDY2ZmYyZDcwMDVhYSBd CgpUaGlzIHJldmVydHMgY29tbWl0IDZkN2I4NTdkNTQxZWNkMWQ5YmQ5OTdjOTcyNDJkNGVmOTRi MTlkZTIuCgpUaGVyZSBpcyBhIGJ1ZyBpbiBmcmFnbWVudGF0aW9uIGNvZGVzIHVzZSBvZiB0aGUg cGVyY3B1X2NvdW50ZXIgQVBJLAp0aGF0IGNhbiBjYXVzZSBpc3N1ZXMgb24gc3lzdGVtcyB3aXRo IG1hbnkgQ1BVcy4KClRoZSBmcmFnX21lbV9saW1pdCgpIGp1c3QgcmVhZHMgdGhlIGdsb2JhbCBj b3VudGVyIChmYmMtPmNvdW50KSwKd2l0aG91dCBjb25zaWRlcmluZyBvdGhlciBDUFVzIGNhbiBo YXZlIHVwdG8gYmF0Y2ggc2l6ZSAoMTMwSykgdGhhdApoYXZlbid0IGJlZW4gc3VidHJhY3RlZCB5 ZXQuICBEdWUgdG8gdGhlIDNNQnl0ZXMgbG93ZXIgdGhyZXNoIGxpbWl0LAp0aGlzIGJlY29tZSBk YW5nZXJvdXMgYXQgPj0yNCBDUFVzICgzKjEwMjQqMTAyNC8xMzAwMDA9MjQpLgoKVGhlIGNvcnJl Y3QgQVBJIHVzYWdlIHdvdWxkIGJlIHRvIHVzZSBfX3BlcmNwdV9jb3VudGVyX2NvbXBhcmUoKSB3 aGljaApkb2VzIHRoZSByaWdodCB0aGluZywgYW5kIHRha2VzIGludG8gYWNjb3VudCB0aGUgbnVt YmVyIG9mIChvbmxpbmUpCkNQVXMgYW5kIGJhdGNoIHNpemUsIHRvIGFjY291bnQgZm9yIHRoaXMg YW5kIGNhbGwgX19wZXJjcHVfY291bnRlcl9zdW0oKQp3aGVuIG5lZWRlZC4KCldlIGNob29zZSB0 byByZXZlcnQgdGhlIHVzZSBvZiB0aGUgbGliL3BlcmNwdV9jb3VudGVyIEFQSSBmb3IgZnJhZwpt ZW1vcnkgYWNjb3VudGluZyBmb3Igc2V2ZXJhbCByZWFzb25zOgoKMSkgT24gc3lzdGVtcyB3aXRo IENQVXMgPiAyNCwgdGhlIGhlYXZpZXIgZnVsbHkgbG9ja2VkCiAgIF9fcGVyY3B1X2NvdW50ZXJf c3VtKCkgaXMgYWx3YXlzIGludm9rZWQsIHdoaWNoIHdpbGwgYmUgbW9yZQogICBleHBlbnNpdmUg dGhhbiB0aGUgYXRvbWljX3QgdGhhdCBpcyByZXZlcnRlZCB0by4KCkdpdmVuIHN5c3RlbXMgd2l0 aCBtb3JlIHRoYW4gMjQgQ1BVcyBhcmUgYmVjb21pbmcgY29tbW9uIHRoaXMgZG9lc24ndApzZWVt IGxpa2UgYSBnb29kIG9wdGlvbi4gIFRvIG1pdGlnYXRlIHRoaXMsIHRoZSBiYXRjaCBzaXplIGNv dWxkIGJlCmRlY3JlYXNlZCBhbmQgdGhyZXNoIGJlIGluY3JlYXNlZC4KCjIpIFRoZSBhZGRfZnJh Z19tZW1fbGltaXQrc3ViX2ZyYWdfbWVtX2xpbWl0IHBhaXJzIGhhcHBlbiBvbiB0aGUgUlgKICAg Q1BVLCBiZWZvcmUgU0tCcyBhcmUgcHVzaGVkIGludG8gc29ja2V0cyBvbiByZW1vdGUgQ1BVcy4g IEdpdmVuCiAgIE5JQ3MgY2FuIG9ubHkgaGFzaCBvbiBMMiBwYXJ0IG9mIHRoZSBJUC1oZWFkZXIs IHRoZSBOSUMtUlhxJ3Mgd2lsbAogICBsaWtlbHkgYmUgbGltaXRlZC4gIFRodXMsIGEgZmFpciBj aGFuY2UgdGhhdCBhdG9taWMgYWRkK2RlYyBoYXBwZW4KICAgb24gdGhlIHNhbWUgQ1BVLgoKUmV2 ZXJ0IG5vdGUgdGhhdCBjb21taXQgMWQ2MTE5YmFmMDYxICgibmV0OiBmaXggcGVyY3B1IG1lbW9y eSBsZWFrcyIpCnJlbW92ZWQgaW5pdF9mcmFnX21lbV9saW1pdCgpIGFuZCBpbnN0ZWFkIHVzZSBp bmV0X2ZyYWdzX2luaXRfbmV0KCkuCkFmdGVyIHRoaXMgcmV2ZXJ0LCBpbmV0X2ZyYWdzX3VuaW5p dF9uZXQoKSBiZWNvbWVzIGVtcHR5LgoKRml4ZXM6IDZkN2I4NTdkNTQxZSAoIm5ldDogdXNlIGxp Yi9wZXJjcHVfY291bnRlciBBUEkgZm9yIGZyYWdtZW50YXRpb24gbWVtIGFjY291bnRpbmciKQpG aXhlczogMWQ2MTE5YmFmMDYxICgibmV0OiBmaXggcGVyY3B1IG1lbW9yeSBsZWFrcyIpClNpZ25l ZC1vZmYtYnk6IEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPgpBY2tl ZC1ieTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVuLmRlPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaW5ldF9m cmFnLmggIHwgMzYgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBuZXQvaXB2 NC9pbmV0X2ZyYWdtZW50LmMgfCAgNCArLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRfZnJh Zy5oIGIvaW5jbHVkZS9uZXQvaW5ldF9mcmFnLmgKaW5kZXggOTA5OTcyYWEzYWNkLi4zYmI4ZGZl Yzc3MjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRfZnJhZy5oCisrKyBiL2luY2x1ZGUv bmV0L2luZXRfZnJhZy5oCkBAIC0xLDE0ICsxLDkgQEAKICNpZm5kZWYgX19ORVRfRlJBR19IX18K ICNkZWZpbmUgX19ORVRfRlJBR19IX18KIAotI2luY2x1ZGUgPGxpbnV4L3BlcmNwdV9jb3VudGVy Lmg+Ci0KIHN0cnVjdCBuZXRuc19mcmFncyB7Ci0JLyogVGhlIHBlcmNwdV9jb3VudGVyICJtZW0i IG5lZWQgdG8gYmUgY2FjaGVsaW5lIGFsaWduZWQuCi0JICogIG1lbS5jb3VudCBtdXN0IG5vdCBz aGFyZSBjYWNoZWxpbmUgd2l0aCBvdGhlciB3cml0ZXJzCi0JICovCi0Jc3RydWN0IHBlcmNwdV9j b3VudGVyICAgbWVtIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7Ci0KKwkvKiBLZWVwIGF0 b21pYyBtZW0gb24gc2VwYXJhdGUgY2FjaGVsaW5lcyBpbiBzdHJ1Y3RzIHRoYXQgaW5jbHVkZSBp dCAqLworCWF0b21pY190CQltZW0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKIAkvKiBz eXNjdGxzICovCiAJaW50CQkJdGltZW91dDsKIAlpbnQJCQloaWdoX3RocmVzaDsKQEAgLTExMCwx MSArMTA1LDExIEBAIHZvaWQgaW5ldF9mcmFnc19maW5pKHN0cnVjdCBpbmV0X2ZyYWdzICopOwog CiBzdGF0aWMgaW5saW5lIGludCBpbmV0X2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBuZXRuc19mcmFn cyAqbmYpCiB7Ci0JcmV0dXJuIHBlcmNwdV9jb3VudGVyX2luaXQoJm5mLT5tZW0sIDAsIEdGUF9L RVJORUwpOworCWF0b21pY19zZXQoJm5mLT5tZW0sIDApOworCXJldHVybiAwOwogfQogc3RhdGlj IGlubGluZSB2b2lkIGluZXRfZnJhZ3NfdW5pbml0X25ldChzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5m KQogewotCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJm5mLT5tZW0pOwogfQogCiB2b2lkIGluZXRf ZnJhZ3NfZXhpdF9uZXQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwgc3RydWN0IGluZXRfZnJhZ3Mg KmYpOwpAQCAtMTQwLDM3ICsxMzUsMjQgQEAgc3RhdGljIGlubGluZSBib29sIGluZXRfZnJhZ19l dmljdGluZyhzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICpxKQogCiAvKiBNZW1vcnkgVHJhY2tpbmcg RnVuY3Rpb25zLiAqLwogCi0vKiBUaGUgZGVmYXVsdCBwZXJjcHVfY291bnRlciBiYXRjaCBzaXpl IGlzIG5vdCBiaWcgZW5vdWdoIHRvIHNjYWxlIHRvCi0gKiBmcmFnbWVudGF0aW9uIG1lbSBhY2N0 IHNpemVzLgotICogVGhlIG1lbSBzaXplIG9mIGEgNjRLIGZyYWdtZW50IGlzIGFwcHJveDoKLSAq ICAoNDQgZnJhZ21lbnRzICogMjk0NCB0cnVlc2l6ZSkgKyBmcmFnX3F1ZXVlIHN0cnVjdCgyMDAp ID0gMTI5NzM2IGJ5dGVzCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgZnJhZ19wZXJjcHVfY291 bnRlcl9iYXRjaCA9IDEzMDAwMDsKLQogc3RhdGljIGlubGluZSBpbnQgZnJhZ19tZW1fbGltaXQo c3RydWN0IG5ldG5zX2ZyYWdzICpuZikKIHsKLQlyZXR1cm4gcGVyY3B1X2NvdW50ZXJfcmVhZCgm bmYtPm1lbSk7CisJcmV0dXJuIGF0b21pY19yZWFkKCZuZi0+bWVtKTsKIH0KIAogc3RhdGljIGlu bGluZSB2b2lkIHN1Yl9mcmFnX21lbV9saW1pdChzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mLCBpbnQg aSkKIHsKLQlfX3BlcmNwdV9jb3VudGVyX2FkZCgmbmYtPm1lbSwgLWksIGZyYWdfcGVyY3B1X2Nv dW50ZXJfYmF0Y2gpOworCWF0b21pY19zdWIoaSwgJm5mLT5tZW0pOwogfQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgYWRkX2ZyYWdfbWVtX2xpbWl0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYsIGludCBp KQogewotCV9fcGVyY3B1X2NvdW50ZXJfYWRkKCZuZi0+bWVtLCBpLCBmcmFnX3BlcmNwdV9jb3Vu dGVyX2JhdGNoKTsKKwlhdG9taWNfYWRkKGksICZuZi0+bWVtKTsKIH0KIAotc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBpbnQgc3VtX2ZyYWdfbWVtX2xpbWl0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYp CitzdGF0aWMgaW5saW5lIGludCBzdW1fZnJhZ19tZW1fbGltaXQoc3RydWN0IG5ldG5zX2ZyYWdz ICpuZikKIHsKLQl1bnNpZ25lZCBpbnQgcmVzOwotCi0JbG9jYWxfYmhfZGlzYWJsZSgpOwotCXJl cyA9IHBlcmNwdV9jb3VudGVyX3N1bV9wb3NpdGl2ZSgmbmYtPm1lbSk7Ci0JbG9jYWxfYmhfZW5h YmxlKCk7Ci0KLQlyZXR1cm4gcmVzOworCXJldHVybiBhdG9taWNfcmVhZCgmbmYtPm1lbSk7CiB9 CiAKIC8qIFJGQyAzMTY4IHN1cHBvcnQgOgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9mcmFn bWVudC5jIGIvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jCmluZGV4IGI1ZTkzMTdlYWY5ZS4uNjMx YzBkMGQ3Y2Y4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMKKysrIGIvbmV0 L2lwdjQvaW5ldF9mcmFnbWVudC5jCkBAIC0yMzQsMTAgKzIzNCw4IEBAIHZvaWQgaW5ldF9mcmFn c19leGl0X25ldChzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mLCBzdHJ1Y3QgaW5ldF9mcmFncyAqZikK IAljb25kX3Jlc2NoZWQoKTsKIAogCWlmIChyZWFkX3NlcXJldHJ5KCZmLT5ybmRfc2VxbG9jaywg c2VxKSB8fAotCSAgICBwZXJjcHVfY291bnRlcl9zdW0oJm5mLT5tZW0pKQorCSAgICBzdW1fZnJh Z19tZW1fbGltaXQobmYpKQogCQlnb3RvIGV2aWN0X2FnYWluOwotCi0JcGVyY3B1X2NvdW50ZXJf ZGVzdHJveSgmbmYtPm1lbSk7CiB9CiBFWFBPUlRfU1lNQk9MKGluZXRfZnJhZ3NfZXhpdF9uZXQp OwogCi0tIAoyLjEzLjUKCgpGcm9tIGYxNGZiZjkyYTM2YTViMmIzNzNlMzg2Y2FjZWU2YmM4MjA3 OTVlMWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEplc3BlciBEYW5nYWFyZCBCcm91 ZXIgPGJyb3VlckByZWRoYXQuY29tPgpEYXRlOiBGcmksIDEgU2VwIDIwMTcgMTE6MjY6MTMgKzAy MDAKU3ViamVjdDogW1BBVENIIDE4LzI1XSBSZXZlcnQgIm5ldDogZml4IHBlcmNwdSBtZW1vcnkg bGVha3MiCgpbIFVwc3RyZWFtIGNvbW1pdCA1YTYzNjQzZTU4M2I2YTk3ODlkN2EyMjVhZTA3NmZi NGU2MDM5OTFjIF0KClRoaXMgcmV2ZXJ0cyBjb21taXQgMWQ2MTE5YmFmMDYxMGY4MTNlYjlkOTU4 MGViNGZkMTZkZTViNGNlYi4KCkFmdGVyIHJldmVydGluZyBjb21taXQgNmQ3Yjg1N2Q1NDFlICgi bmV0OiB1c2UgbGliL3BlcmNwdV9jb3VudGVyIEFQSQpmb3IgZnJhZ21lbnRhdGlvbiBtZW0gYWNj b3VudGluZyIpIHRoZW4gaGVyZSBpcyBubyBuZWVkIGZvciB0aGlzCmZpeC11cCBwYXRjaC4gIEFz IHBlcmNwdV9jb3VudGVyIGlzIG5vIGxvbmdlciB1c2VkLCBpdCBjYW5ub3QKbWVtb3J5IGxlYWsg aXQgYW55LWxvbmdlci4KCkZpeGVzOiA2ZDdiODU3ZDU0MWUgKCJuZXQ6IHVzZSBsaWIvcGVyY3B1 X2NvdW50ZXIgQVBJIGZvciBmcmFnbWVudGF0aW9uIG1lbSBhY2NvdW50aW5nIikKRml4ZXM6IDFk NjExOWJhZjA2MSAoIm5ldDogZml4IHBlcmNwdSBtZW1vcnkgbGVha3MiKQpTaWduZWQtb2ZmLWJ5 OiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0 L2luZXRfZnJhZy5oICAgICAgICAgICAgICAgICB8ICA3ICstLS0tLS0KIG5ldC9pZWVlODAyMTU0 LzZsb3dwYW4vcmVhc3NlbWJseS5jICAgICB8IDExICsrKy0tLS0tLS0tCiBuZXQvaXB2NC9pcF9m cmFnbWVudC5jICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0tLS0tLS0KIG5ldC9pcHY2L25l dGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYyB8IDEyICsrKy0tLS0tLS0tLQogbmV0L2lwdjYv cmVhc3NlbWJseS5jICAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tLS0tLS0tCiA1IGZpbGVz IGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbmV0L2luZXRfZnJhZy5oIGIvaW5jbHVkZS9uZXQvaW5ldF9mcmFnLmgKaW5kZXgg M2JiOGRmZWM3NzI1Li42MzRkMTkyMDNlN2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2luZXRf ZnJhZy5oCisrKyBiL2luY2x1ZGUvbmV0L2luZXRfZnJhZy5oCkBAIC0xMDMsMTUgKzEwMywxMCBA QCBzdHJ1Y3QgaW5ldF9mcmFncyB7CiBpbnQgaW5ldF9mcmFnc19pbml0KHN0cnVjdCBpbmV0X2Zy YWdzICopOwogdm9pZCBpbmV0X2ZyYWdzX2Zpbmkoc3RydWN0IGluZXRfZnJhZ3MgKik7CiAKLXN0 YXRpYyBpbmxpbmUgaW50IGluZXRfZnJhZ3NfaW5pdF9uZXQoc3RydWN0IG5ldG5zX2ZyYWdzICpu ZikKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbmV0X2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBuZXRuc19m cmFncyAqbmYpCiB7CiAJYXRvbWljX3NldCgmbmYtPm1lbSwgMCk7Ci0JcmV0dXJuIDA7CiB9Ci1z dGF0aWMgaW5saW5lIHZvaWQgaW5ldF9mcmFnc191bmluaXRfbmV0KHN0cnVjdCBuZXRuc19mcmFn cyAqbmYpCi17Ci19Ci0KIHZvaWQgaW5ldF9mcmFnc19leGl0X25ldChzdHJ1Y3QgbmV0bnNfZnJh Z3MgKm5mLCBzdHJ1Y3QgaW5ldF9mcmFncyAqZik7CiAKIHZvaWQgaW5ldF9mcmFnX2tpbGwoc3Ry dWN0IGluZXRfZnJhZ19xdWV1ZSAqcSwgc3RydWN0IGluZXRfZnJhZ3MgKmYpOwpkaWZmIC0tZ2l0 IGEvbmV0L2llZWU4MDIxNTQvNmxvd3Bhbi9yZWFzc2VtYmx5LmMgYi9uZXQvaWVlZTgwMjE1NC82 bG93cGFuL3JlYXNzZW1ibHkuYwppbmRleCAzMGQ4NzVkZmY2YjUuLmY4NWIwOGJhZmYxNiAxMDA2 NDQKLS0tIGEvbmV0L2llZWU4MDIxNTQvNmxvd3Bhbi9yZWFzc2VtYmx5LmMKKysrIGIvbmV0L2ll ZWU4MDIxNTQvNmxvd3Bhbi9yZWFzc2VtYmx5LmMKQEAgLTU4MCwxOSArNTgwLDE0IEBAIHN0YXRp YyBpbnQgX19uZXRfaW5pdCBsb3dwYW5fZnJhZ3NfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQog ewogCXN0cnVjdCBuZXRuc19pZWVlODAyMTU0X2xvd3BhbiAqaWVlZTgwMjE1NF9sb3dwYW4gPQog CQluZXRfaWVlZTgwMjE1NF9sb3dwYW4obmV0KTsKLQlpbnQgcmVzOwogCiAJaWVlZTgwMjE1NF9s b3dwYW4tPmZyYWdzLmhpZ2hfdGhyZXNoID0gSVBWNl9GUkFHX0hJR0hfVEhSRVNIOwogCWllZWU4 MDIxNTRfbG93cGFuLT5mcmFncy5sb3dfdGhyZXNoID0gSVBWNl9GUkFHX0xPV19USFJFU0g7CiAJ aWVlZTgwMjE1NF9sb3dwYW4tPmZyYWdzLnRpbWVvdXQgPSBJUFY2X0ZSQUdfVElNRU9VVDsKIAot CXJlcyA9IGluZXRfZnJhZ3NfaW5pdF9uZXQoJmllZWU4MDIxNTRfbG93cGFuLT5mcmFncyk7Ci0J aWYgKHJlcykKLQkJcmV0dXJuIHJlczsKLQlyZXMgPSBsb3dwYW5fZnJhZ3NfbnNfc3lzY3RsX3Jl Z2lzdGVyKG5ldCk7Ci0JaWYgKHJlcykKLQkJaW5ldF9mcmFnc191bmluaXRfbmV0KCZpZWVlODAy MTU0X2xvd3Bhbi0+ZnJhZ3MpOwotCXJldHVybiByZXM7CisJaW5ldF9mcmFnc19pbml0X25ldCgm aWVlZTgwMjE1NF9sb3dwYW4tPmZyYWdzKTsKKworCXJldHVybiBsb3dwYW5fZnJhZ3NfbnNfc3lz Y3RsX3JlZ2lzdGVyKG5ldCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fbmV0X2V4aXQgbG93cGFuX2Zy YWdzX2V4aXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2Zy YWdtZW50LmMgYi9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCmluZGV4IGJiZTdmNzJkYjljMS4uNDUz ZGI5NTBkYzlmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCisrKyBiL25ldC9p cHY0L2lwX2ZyYWdtZW50LmMKQEAgLTgzNSw4ICs4MzUsNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg aXA0X2ZyYWdzX2N0bF9yZWdpc3Rlcih2b2lkKQogCiBzdGF0aWMgaW50IF9fbmV0X2luaXQgaXB2 NF9mcmFnc19pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiB7Ci0JaW50IHJlczsKLQogCS8qIEZy YWdtZW50IGNhY2hlIGxpbWl0cy4KIAkgKgogCSAqIFRoZSBmcmFnbWVudCBtZW1vcnkgYWNjb3Vu dGluZyBjb2RlLCAodHJpZXMgdG8pIGFjY291bnQgZm9yCkBAIC04NjIsMTMgKzg2MCw5IEBAIHN0 YXRpYyBpbnQgX19uZXRfaW5pdCBpcHY0X2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkK IAogCW5ldC0+aXB2NC5mcmFncy5tYXhfZGlzdCA9IDY0OwogCi0JcmVzID0gaW5ldF9mcmFnc19p bml0X25ldCgmbmV0LT5pcHY0LmZyYWdzKTsKLQlpZiAocmVzKQotCQlyZXR1cm4gcmVzOwotCXJl cyA9IGlwNF9mcmFnc19uc19jdGxfcmVnaXN0ZXIobmV0KTsKLQlpZiAocmVzKQotCQlpbmV0X2Zy YWdzX3VuaW5pdF9uZXQoJm5ldC0+aXB2NC5mcmFncyk7Ci0JcmV0dXJuIHJlczsKKwlpbmV0X2Zy YWdzX2luaXRfbmV0KCZuZXQtPmlwdjQuZnJhZ3MpOworCisJcmV0dXJuIGlwNF9mcmFnc19uc19j dGxfcmVnaXN0ZXIobmV0KTsKIH0KIAogc3RhdGljIHZvaWQgX19uZXRfZXhpdCBpcHY0X2ZyYWdz X2V4aXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L25ldGZpbHRl ci9uZl9jb25udHJhY2tfcmVhc20uYyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tf cmVhc20uYwppbmRleCA5ODZkNGNhMzg4MzIuLmIyNjNiZjNhMTlmNyAxMDA2NDQKLS0tIGEvbmV0 L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCisrKyBiL25ldC9pcHY2L25ldGZp bHRlci9uZl9jb25udHJhY2tfcmVhc20uYwpAQCAtNjIyLDE4ICs2MjIsMTIgQEAgRVhQT1JUX1NZ TUJPTF9HUEwobmZfY3RfZnJhZzZfZ2F0aGVyKTsKIAogc3RhdGljIGludCBuZl9jdF9uZXRfaW5p dChzdHJ1Y3QgbmV0ICpuZXQpCiB7Ci0JaW50IHJlczsKLQogCW5ldC0+bmZfZnJhZy5mcmFncy5o aWdoX3RocmVzaCA9IElQVjZfRlJBR19ISUdIX1RIUkVTSDsKIAluZXQtPm5mX2ZyYWcuZnJhZ3Mu bG93X3RocmVzaCA9IElQVjZfRlJBR19MT1dfVEhSRVNIOwogCW5ldC0+bmZfZnJhZy5mcmFncy50 aW1lb3V0ID0gSVBWNl9GUkFHX1RJTUVPVVQ7Ci0JcmVzID0gaW5ldF9mcmFnc19pbml0X25ldCgm bmV0LT5uZl9mcmFnLmZyYWdzKTsKLQlpZiAocmVzKQotCQlyZXR1cm4gcmVzOwotCXJlcyA9IG5m X2N0X2ZyYWc2X3N5c2N0bF9yZWdpc3RlcihuZXQpOwotCWlmIChyZXMpCi0JCWluZXRfZnJhZ3Nf dW5pbml0X25ldCgmbmV0LT5uZl9mcmFnLmZyYWdzKTsKLQlyZXR1cm4gcmVzOworCWluZXRfZnJh Z3NfaW5pdF9uZXQoJm5ldC0+bmZfZnJhZy5mcmFncyk7CisKKwlyZXR1cm4gbmZfY3RfZnJhZzZf c3lzY3RsX3JlZ2lzdGVyKG5ldCk7CiB9CiAKIHN0YXRpYyB2b2lkIG5mX2N0X25ldF9leGl0KHN0 cnVjdCBuZXQgKm5ldCkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JlYXNzZW1ibHkuYyBiL25ldC9p cHY2L3JlYXNzZW1ibHkuYwppbmRleCAzODE1ZTg1MDVlZDIuLmU1ODVjMGEyNTkxYyAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jCisrKyBiL25ldC9pcHY2L3JlYXNzZW1ibHkuYwpA QCAtNzA5LDE5ICs3MDksMTMgQEAgc3RhdGljIHZvaWQgaXA2X2ZyYWdzX3N5c2N0bF91bnJlZ2lz dGVyKHZvaWQpCiAKIHN0YXRpYyBpbnQgX19uZXRfaW5pdCBpcHY2X2ZyYWdzX2luaXRfbmV0KHN0 cnVjdCBuZXQgKm5ldCkKIHsKLQlpbnQgcmVzOwotCiAJbmV0LT5pcHY2LmZyYWdzLmhpZ2hfdGhy ZXNoID0gSVBWNl9GUkFHX0hJR0hfVEhSRVNIOwogCW5ldC0+aXB2Ni5mcmFncy5sb3dfdGhyZXNo ID0gSVBWNl9GUkFHX0xPV19USFJFU0g7CiAJbmV0LT5pcHY2LmZyYWdzLnRpbWVvdXQgPSBJUFY2 X0ZSQUdfVElNRU9VVDsKIAotCXJlcyA9IGluZXRfZnJhZ3NfaW5pdF9uZXQoJm5ldC0+aXB2Ni5m cmFncyk7Ci0JaWYgKHJlcykKLQkJcmV0dXJuIHJlczsKLQlyZXMgPSBpcDZfZnJhZ3NfbnNfc3lz Y3RsX3JlZ2lzdGVyKG5ldCk7Ci0JaWYgKHJlcykKLQkJaW5ldF9mcmFnc191bmluaXRfbmV0KCZu ZXQtPmlwdjYuZnJhZ3MpOwotCXJldHVybiByZXM7CisJaW5ldF9mcmFnc19pbml0X25ldCgmbmV0 LT5pcHY2LmZyYWdzKTsKKworCXJldHVybiBpcDZfZnJhZ3NfbnNfc3lzY3RsX3JlZ2lzdGVyKG5l dCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fbmV0X2V4aXQgaXB2Nl9mcmFnc19leGl0X25ldChzdHJ1 Y3QgbmV0ICpuZXQpCi0tIAoyLjEzLjUKCgpGcm9tIGI3MmMyOGI1MzYzYWE2NGY2NTMzZmRjMDlm M2Y3NDU5ZmU3NjY1ZWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENsYXVkaXUgTWFu b2lsIDxjbGF1ZGl1Lm1hbm9pbEBueHAuY29tPgpEYXRlOiBNb24sIDQgU2VwIDIwMTcgMTA6NDU6 MjggKzAzMDAKU3ViamVjdDogW1BBVENIIDE5LzI1XSBnaWFuZmFyOiBGaXggVHggZmxvdyBjb250 cm9sIGRlYWN0aXZhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgNWQ2MjE2NzJiYzFhMWU1MDkwYzFh YzU0MzJhMThjNzllMGUxM2UwMyBdCgpUaGUgd3JvbmcgcmVnaXN0ZXIgaXMgY2hlY2tlZCBmb3Ig dGhlIFR4IGZsb3cgY29udHJvbCBiaXQsCml0IHNob3VsZCBoYXZlIGJlZW4gbWFjY2ZnMSBub3Qg bWFjY2ZnMi4KVGhpcyB3ZW50IHVubm90aWNlZCBmb3Igc28gbG9uZyBwcm9iYWJseSBiZWNhdXNl IHRoZSBpbXBhY3QgaXMKaGFyZGx5IHZpc2libGUsIG5vdCB0byBtZW50aW9uIHRoZSB0YW5nbGVk IGNvZGUgZnJvbSBhZGp1c3RfbGluaygpLgpGaXJzdCwgbGluayBmbG93IGNvbnRyb2wgKGkuZS4g aGFuZGxpbmcgb2YgUngvVHggbGluayBsZXZlbCBwYXVzZSBmcmFtZXMpCmlzIGRpc2FibGVkIGJ5 IGRlZmF1bHQgKG5lZWRzIHRvIGJlIGVuYWJsZWQgdmlhICdldGh0b29sIC1BJykuClNlY29uZGx5 LCBtYWNjZmcyIGFsd2F5cyByZXR1cm5zIDAgZm9yIHR4X2Zsb3dfb2xkdmFsIChleGNlcHQgZm9y IGEgZmV3Cm9sZCBib2FyZHMpLCB3aGljaCByZXN1bHRzIGluIFR4IGZsb3cgY29udHJvbCByZW1h aW5pbmcgYWx3YXlzIG9uCm9uY2UgYWN0aXZhdGVkLgoKRml4ZXM6IDQ1YjY3OWM5YTNjY2Q5ZTM0 ZjI4ZTZlYzY3N2I4MTJhODYwZWI4ZWIgKCJnaWFuZmFyOiBJbXBsZW1lbnQgUEFVU0UgZnJhbWUg Z2VuZXJhdGlvbiBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogQ2xhdWRpdSBNYW5vaWwgPGNsYXVk aXUubWFub2lsQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZh ci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMKaW5kZXggM2Y0ZTcxMTQ4 ODA4Li5mZDIwNjg4OWE0MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9naWFuZmFyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5m YXIuYwpAQCAtMzY5MCw3ICszNjkwLDcgQEAgc3RhdGljIG5vaW5saW5lIHZvaWQgZ2Zhcl91cGRh dGVfbGlua19zdGF0ZShzdHJ1Y3QgZ2Zhcl9wcml2YXRlICpwcml2KQogCQl1MzIgdGVtcHZhbDEg PSBnZmFyX3JlYWQoJnJlZ3MtPm1hY2NmZzEpOwogCQl1MzIgdGVtcHZhbCA9IGdmYXJfcmVhZCgm cmVncy0+bWFjY2ZnMik7CiAJCXUzMiBlY250cmwgPSBnZmFyX3JlYWQoJnJlZ3MtPmVjbnRybCk7 Ci0JCXUzMiB0eF9mbG93X29sZHZhbCA9ICh0ZW1wdmFsICYgTUFDQ0ZHMV9UWF9GTE9XKTsKKwkJ dTMyIHR4X2Zsb3dfb2xkdmFsID0gKHRlbXB2YWwxICYgTUFDQ0ZHMV9UWF9GTE9XKTsKIAogCQlp ZiAocGh5ZGV2LT5kdXBsZXggIT0gcHJpdi0+b2xkZHVwbGV4KSB7CiAJCQlpZiAoIShwaHlkZXYt PmR1cGxleCkpCi0tIAoyLjEzLjUKCgpGcm9tIGIxMjY0MDBmYTY5Yjg1NGVmOTQ1MzYxMGJlYTU1 ZGUwMWViNzNlMjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEphc29uIFdhbmcgPGph c293YW5nQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgNSBTZXAgMjAxNyAwOToyMjowNSArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMjAvMjVdIHZob3N0X25ldDogY29ycmVjdGx5IGNoZWNrIHR4IGF2YWls IGR1cmluZyByeCBidXN5CiBwb2xsaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCA4Yjk0OWJlZjkxNzJj YTY5ZDkxOGU5MzUwOWE0ZWNiMDNkMDM1NWUwIF0KCldlIGNoZWNrIHR4IGF2YWlsIHRocm91Z2gg dmhvc3RfZW5hYmxlX25vdGlmeSgpIGluIHRoZSBwYXN0IHdoaWNoIGlzCndyb25nIHNpbmNlIGl0 IG9ubHkgY2hlY2tzIHdoZXRoZXIgb3Igbm90IGd1ZXN0IGhhcyBmaWxsZWQgbW9yZQphdmFpbGFi bGUgYnVmZmVyIHNpbmNlIGxhc3QgYXZhaWwgaWR4IHN5bmNocm9uaXphdGlvbiB3aGljaCB3YXMg anVzdApkb25lIGJ5IHZob3N0X3ZxX2F2YWlsX2VtcHR5KCkgYmVmb3JlLiBXaGF0IHdlIHJlYWxs eSB3YW50IGlzIGNoZWNraW5nCnBlbmRpbmcgYnVmZmVycyBpbiB0aGUgYXZhaWwgcmluZy4gRml4 IHRoaXMgYnkgY2FsbGluZwp2aG9zdF92cV9hdmFpbF9lbXB0eSgpIGluc3RlYWQuCgpUaGlzIGlz c3VlIGNvdWxkIGJlIG5vdGljZWQgYnkgZG9pbmcgbmV0cGVyZiBUQ1BfUlIgYmVuY2htYXJrIGFz CmNsaWVudCBmcm9tIGd1ZXN0IChidXQgbm90IGhvc3QpLiBXaXRoIHRoaXMgZml4LCBUQ1BfUlIg ZnJvbSBndWVzdCB0bwpsb2NhbGhvc3QgcmVzdG9yZXMgZnJvbSAxMzc1LjkxIHRyYW5zIHBlciBz ZWMgdG8gNTUyMzUuMjggdHJhbnMgcGVyCnNlYyBvbiBteSBsYXB0b3AgKEludGVsKFIpIENvcmUo VE0pIGk3LTU2MDBVIENQVSBAIDIuNjBHSHopLgoKRml4ZXM6IDAzMDg4MTM3MjQ2MCAoInZob3N0 X25ldDogYmFzaWMgcG9sbGluZyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogSmFzb24gV2FuZyA8 amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvdmhvc3QvbmV0LmMgfCA3ICsrKysrKy0KIDEg ZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL3Zob3N0L25ldC5jIGIvZHJpdmVycy92aG9zdC9uZXQuYwppbmRleCA1ZGMxMjhh OGRhODMuLjk2YTA2NjEwMTFmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aG9zdC9uZXQuYworKysg Yi9kcml2ZXJzL3Zob3N0L25ldC5jCkBAIC01MzcsOCArNTM3LDEzIEBAIHN0YXRpYyBpbnQgdmhv c3RfbmV0X3J4X3BlZWtfaGVhZF9sZW4oc3RydWN0IHZob3N0X25ldCAqbmV0LCBzdHJ1Y3Qgc29j ayAqc2spCiAKIAkJcHJlZW1wdF9lbmFibGUoKTsKIAotCQlpZiAodmhvc3RfZW5hYmxlX25vdGlm eSgmbmV0LT5kZXYsIHZxKSkKKwkJaWYgKCF2aG9zdF92cV9hdmFpbF9lbXB0eSgmbmV0LT5kZXYs IHZxKSkKIAkJCXZob3N0X3BvbGxfcXVldWUoJnZxLT5wb2xsKTsKKwkJZWxzZSBpZiAodW5saWtl bHkodmhvc3RfZW5hYmxlX25vdGlmeSgmbmV0LT5kZXYsIHZxKSkpIHsKKwkJCXZob3N0X2Rpc2Fi bGVfbm90aWZ5KCZuZXQtPmRldiwgdnEpOworCQkJdmhvc3RfcG9sbF9xdWV1ZSgmdnEtPnBvbGwp OworCQl9CisKIAkJbXV0ZXhfdW5sb2NrKCZ2cS0+bXV0ZXgpOwogCiAJCWxlbiA9IHBlZWtfaGVh ZF9sZW4oc2spOwotLSAKMi4xMy41CgoKRnJvbSBhMTc2M2EwYzJlZWQ5YzBlOGNmNjU3Yjk1ZWEw Nzc2ZjlmYzBkZmY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgNSBTZXAgMjAxNyAxNzoyNjozMyArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMjEvMjVdIGlwNl9ncmU6IHVwZGF0ZSBtdHUgcHJvcGVybHkgaW4gaXA2 Z3JlX2VycgoKWyBVcHN0cmVhbSBjb21taXQgNWMyNWYzMGM5M2ZkYzViZjI1ZTYyMTAxYWVhYWU3 YTRmOWI0MjFiMyBdCgpOb3cgd2hlbiBwcm9iZXNzaW5nIElDTVBWNl9QS1RfVE9PQklHLCBpcDZn cmVfZXJyIG9ubHkgc3VidHJhY3RzIHRoZQpvZmZzZXQgb2YgZ3JlIGhlYWRlciBmcm9tIG10dSBp bmZvLiBUaGUgZXhwZWN0ZWQgbXR1IG9mIGdyZSBkZXZpY2UKc2hvdWxkIGFsc28gc3VidHJhY3Qg Z3JlIGhlYWRlci4gT3RoZXJ3aXNlLCB0aGUgbmV4dCBwYWNrZXRzIHN0aWxsCmNhbid0IGJlIHNl bnQgb3V0LgoKSmlhbmxpbiBmb3VuZCB0aGlzIGlzc3VlIHdoZW4gdXNpbmcgdGhlIHRvcG86CiAg Y2xpZW50KGlwNmdyZSk8LS0tLT4obmljMSlyb3V0ZShuaWMyKTwtLS0tLT4oaXA2Z3JlKXNlcnZl cgoKYW5kIHJlZHVjaW5nIG5pYzIncyBtdHUsIHRoZW4gYm90aCB0Y3AgYW5kIHNjdHAncyBwZXJm b3JtYW5jZSB3aXRoCmJpZyBzaXplIGRhdGEgYmVjYW1lIDAuCgpUaGlzIHBhdGNoIGlzIHRvIGZp eCBpdCBieSBhbHNvIHN1YnRyYWN0aW5nIGdyZWhkciAodHVuLT50dW5faGxlbikKZnJvbSBtdHUg aW5mbyB3aGVuIHVwZGF0aW5nIGdyZSBkZXZpY2UncyBtdHUgaW4gaXA2Z3JlX2VycigpLiBJdAph bHNvIG5lZWRzIHRvIHN1YnRyYWN0IEVUSF9ITEVOIGlmIGdyZSBkZXYndHlwZSBpcyBBUlBIUkRf RVRIRVIuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9n cmUuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUu YwppbmRleCBkMjg0NGVlNDY5Y2IuLmY3OGFmZTQzYmRmZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv aXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtNDMyLDcgKzQzMiw5IEBAIHN0 YXRpYyB2b2lkIGlwNmdyZV9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGluZXQ2X3Nr Yl9wYXJtICpvcHQsCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBJQ01QVjZfUEtUX1RPT0JJRzoKLQkJ bXR1ID0gYmUzMl90b19jcHUoaW5mbykgLSBvZmZzZXQ7CisJCW10dSA9IGJlMzJfdG9fY3B1KGlu Zm8pIC0gb2Zmc2V0IC0gdC0+dHVuX2hsZW47CisJCWlmICh0LT5kZXYtPnR5cGUgPT0gQVJQSFJE X0VUSEVSKQorCQkJbXR1IC09IEVUSF9ITEVOOwogCQlpZiAobXR1IDwgSVBWNl9NSU5fTVRVKQog CQkJbXR1ID0gSVBWNl9NSU5fTVRVOwogCQl0LT5kZXYtPm10dSA9IG10dTsKLS0gCjIuMTMuNQoK CkZyb20gZDYxYjEwZmRhNjZjYzZmY2RmOGZiZTc0MjNkYzIzMTk5Mjc0MzIxZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+ CkRhdGU6IEZyaSwgOCBTZXAgMjAxNyAxMDoyNjoxOSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjIv MjVdIGlwdjY6IGZpeCBtZW1vcnkgbGVhayB3aXRoIG11bHRpcGxlIHRhYmxlcyBkdXJpbmcgbmV0 bnMKIGRlc3RydWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBiYTFjYzA4ZDk0ODhjOTRjYjhkOTRm NTQ1MzA1Njg4YjcyYTJhMzAwIF0KCmZpYjZfbmV0X2V4aXQgb25seSBmcmVlcyB0aGUgbWFpbiBh bmQgbG9jYWwgdGFibGVzLiBJZiBhbm90aGVyIHRhYmxlIHdhcwpjcmVhdGVkIHdpdGggZmliNl9h bGxvY190YWJsZSwgd2UgbGVhayBpdCB3aGVuIHRoZSBuZXRucyBpcyBkZXN0cm95ZWQuCgpGaXgg dGhpcyBpbiB0aGUgc2FtZSB3YXkgaXBfZmliX25ldF9leGl0IGNsZWFucyB1cCB0YWJsZXMsIGJ5 IHdhbGtpbmcKdGhyb3VnaCB0aGUgd2hvbGUgaGFzaHRhYmxlIG9mIGZpYjZfdGFibGUncy4gV2Ug Y2FuIGdldCByaWQgb2YgdGhlCnNwZWNpYWwgY2FzZXMgZm9yIGxvY2FsIGFuZCBtYWluLCBzaW5j ZSB0aGV5J3JlIGFsc28gcGFydCBvZiB0aGUKaGFzaHRhYmxlLgoKUmVwcm9kdWNlcjoKICAgIGlw IG5ldG5zIGFkZCB4CiAgICBpcCAtbmV0IHggLTYgcnVsZSBhZGQgZnJvbSA2MDAzOjE6Oi82NCB0 YWJsZSAxMDAKICAgIGlwIG5ldG5zIGRlbCB4CgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGpp c2hpQHJlZGhhdC5jb20+CkZpeGVzOiA1OGYwOWI3OGI3MzAgKCJbTkVUTlNdW0lQVjZdIGlwNl9m aWIgLSBtYWtlIGl0IHBlciBuZXR3b3JrIG5hbWVzcGFjZSIpClNpZ25lZC1vZmYtYnk6IFNhYnJp bmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2ZpYi5jIHwgMjUg KysrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2ZpYi5jIGIvbmV0 L2lwdjYvaXA2X2ZpYi5jCmluZGV4IGFmNzQ0MjIxMWZmYi4uMjkxZWM1ZTJkM2NiIDEwMDY0NAot LS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCkBAIC0yMDEs NiArMjAxLDEyIEBAIHN0YXRpYyB2b2lkIHJ0Nl9yZWxlYXNlKHN0cnVjdCBydDZfaW5mbyAqcnQp CiAJfQogfQogCitzdGF0aWMgdm9pZCBmaWI2X2ZyZWVfdGFibGUoc3RydWN0IGZpYjZfdGFibGUg KnRhYmxlKQoreworCWluZXRwZWVyX2ludmFsaWRhdGVfdHJlZSgmdGFibGUtPnRiNl9wZWVycyk7 CisJa2ZyZWUodGFibGUpOworfQorCiBzdGF0aWMgdm9pZCBmaWI2X2xpbmtfdGFibGUoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3QgZmliNl90YWJsZSAqdGIpCiB7CiAJdW5zaWduZWQgaW50IGg7CkBA IC0xODkzLDE1ICsxODk5LDIyIEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCBmaWI2X25ldF9pbml0 KHN0cnVjdCBuZXQgKm5ldCkKIAogc3RhdGljIHZvaWQgZmliNl9uZXRfZXhpdChzdHJ1Y3QgbmV0 ICpuZXQpCiB7CisJdW5zaWduZWQgaW50IGk7CisKIAlydDZfaWZkb3duKG5ldCwgTlVMTCk7CiAJ ZGVsX3RpbWVyX3N5bmMoJm5ldC0+aXB2Ni5pcDZfZmliX3RpbWVyKTsKIAotI2lmZGVmIENPTkZJ R19JUFY2X01VTFRJUExFX1RBQkxFUwotCWluZXRwZWVyX2ludmFsaWRhdGVfdHJlZSgmbmV0LT5p cHY2LmZpYjZfbG9jYWxfdGJsLT50YjZfcGVlcnMpOwotCWtmcmVlKG5ldC0+aXB2Ni5maWI2X2xv Y2FsX3RibCk7Ci0jZW5kaWYKLQlpbmV0cGVlcl9pbnZhbGlkYXRlX3RyZWUoJm5ldC0+aXB2Ni5m aWI2X21haW5fdGJsLT50YjZfcGVlcnMpOwotCWtmcmVlKG5ldC0+aXB2Ni5maWI2X21haW5fdGJs KTsKKwlmb3IgKGkgPSAwOyBpIDwgRklCX1RBQkxFX0hBU0hTWjsgaSsrKSB7CisJCXN0cnVjdCBo bGlzdF9oZWFkICpoZWFkID0gJm5ldC0+aXB2Ni5maWJfdGFibGVfaGFzaFtpXTsKKwkJc3RydWN0 IGhsaXN0X25vZGUgKnRtcDsKKwkJc3RydWN0IGZpYjZfdGFibGUgKnRiOworCisJCWhsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUodGIsIHRtcCwgaGVhZCwgdGI2X2hsaXN0KSB7CisJCQlobGlzdF9k ZWwoJnRiLT50YjZfaGxpc3QpOworCQkJZmliNl9mcmVlX3RhYmxlKHRiKTsKKwkJfQorCX0KKwog CWtmcmVlKG5ldC0+aXB2Ni5maWJfdGFibGVfaGFzaCk7CiAJa2ZyZWUobmV0LT5pcHY2LnJ0Nl9z dGF0cyk7CiB9Ci0tIAoyLjEzLjUKCgpGcm9tIDRkMWExYWZjYTk1M2FjY2NlZDk4YjgwMTlhZDJh MmE2OWZiZjM4NGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCA4IFNlcCAyMDE3IDE1OjQ4OjQ3IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAyMy8yNV0gaXB2NjogZml4IHR5cG8gaW4gZmliNl9uZXRfZXhpdCgp CgpbIFVwc3RyZWFtIGNvbW1pdCAzMmE4MDViYWYwZmI3MGI2ZGJlZGVmY2Q3MjQ5YWM3ZjU4MGY5 ZTNiIF0KCklQdjYgRklCIHNob3VsZCB1c2UgRklCNl9UQUJMRV9IQVNIU1osIG5vdCBGSUJfVEFC TEVfSEFTSFNaLgoKRml4ZXM6IGJhMWNjMDhkOTQ4OCAoImlwdjY6IGZpeCBtZW1vcnkgbGVhayB3 aXRoIG11bHRpcGxlIHRhYmxlcyBkdXJpbmcgbmV0bnMgZGVzdHJ1Y3Rpb24iKQpTaWduZWQtb2Zm LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZmli LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmliLmMgYi9uZXQvaXB2Ni9pcDZfZmliLmMKaW5k ZXggMjkxZWM1ZTJkM2NiLi41ZGE4NjQ5OTc0OTUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9m aWIuYworKysgYi9uZXQvaXB2Ni9pcDZfZmliLmMKQEAgLTE5MDQsNyArMTkwNCw3IEBAIHN0YXRp YyB2b2lkIGZpYjZfbmV0X2V4aXQoc3RydWN0IG5ldCAqbmV0KQogCXJ0Nl9pZmRvd24obmV0LCBO VUxMKTsKIAlkZWxfdGltZXJfc3luYygmbmV0LT5pcHY2LmlwNl9maWJfdGltZXIpOwogCi0JZm9y IChpID0gMDsgaSA8IEZJQl9UQUJMRV9IQVNIU1o7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBG SUI2X1RBQkxFX0hBU0hTWjsgaSsrKSB7CiAJCXN0cnVjdCBobGlzdF9oZWFkICpoZWFkID0gJm5l dC0+aXB2Ni5maWJfdGFibGVfaGFzaFtpXTsKIAkJc3RydWN0IGhsaXN0X25vZGUgKnRtcDsKIAkJ c3RydWN0IGZpYjZfdGFibGUgKnRiOwotLSAKMi4xMy41CgoKRnJvbSBlNTAzZGYzZmM0NjYxMmNm N2I5YTFjODZkYWFlMzNiNzlkMDdjMTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN YXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KRGF0ZTog RnJpLCA4IFNlcCAyMDE3IDExOjM1OjIxIC0wMzAwClN1YmplY3Q6IFtQQVRDSCAyNC8yNV0gc2N0 cDogZml4IG1pc3Npbmcgd2FrZSB1cHMgaW4gc29tZSBzaXR1YXRpb25zCgpbIFVwc3RyZWFtIGNv bW1pdCA3OTA2YjAwZjVjZDFjZDQ4NGZjZWQ3ZmNkYTg5MjE3NmUzMjAyYzhhIF0KCkNvbW1pdCBm YjU4NmYyNTMwMGYgKCJzY3RwOiBkZWxheSBjYWxscyB0byBza19kYXRhX3JlYWR5KCkgYXMgbXVj aCBhcwpwb3NzaWJsZSIpIG1pbmltaXplZCB0aGUgbnVtYmVyIG9mIHdha2UgdXBzIHRoYXQgYXJl IHRyaWdnZXJlZCBpbiBjYXNlCnRoZSBhc3NvY2lhdGlvbiByZWNlaXZlcyBhIHBhY2tldCB3aXRo IG11bHRpcGxlIGRhdGEgY2h1bmtzIG9uIGl0IGFuZC9vcgp3aGVuIGlvX2V2ZW50cyBhcmUgZW5h YmxlZCBhbmQgdGhlbiBjb21taXQgMDk3MGY1YjM2NjU5ICgic2N0cDogc2lnbmFsCnNrX2RhdGFf cmVhZHkgZWFybGllciBvbiBkYXRhIGNodW5rcyByZWNlcHRpb24iKSBtb3ZlZCB0aGUgd2FrZSB1 cCB0byBhcwpzb29uIGFzIHBvc3NpYmxlLiBJdCB0aHVzIHJlbGllcyBvbiB0aGUgc3RhdGUgbWFj aGluZSBydW5uaW5nIGxhdGVyIHRvCmNsZWFuIHRoZSBmbGFnIHRoYXQgdGhlIGV2ZW50IHdhcyBh bHJlYWR5IGdlbmVyYXRlZC4KClRoZSBpc3N1ZSBpcyB0aGF0IHRoZXJlIGFyZSAyIGNhbGwgcGF0 aHMgdGhhdCBjYWxscwpzY3RwX3VscHFfdGFpbF9ldmVudCgpIG91dHNpZGUgb2YgdGhlIHN0YXRl IG1hY2hpbmUsIGNhdXNpbmcgdGhlIGZsYWcgdG8KbGluZ2VyIGFuZCBwb3NzaWJseSBvbWl0dGlu ZyBhIG5lZWRlZCB3YWtlIHVwIGluIHRoZSBzZXF1ZW5jZS4KCk9uZSBvZiB0aGUgY2FsbCBwYXRo cyBpcyB3aGVuIGVuYWJsaW5nIFNDVFBfU0VOREVSX0RSWV9FVkVOVFMgdmlhCnNldHNvY2tvcHQo U0NUUF9FVkVOVFMpLCBhcyBub3RpY2VkIGJ5IEhhcmFsZCBXZWx0ZS4gVGhlIG90aGVyIGlzIHdo ZW4KcGFydGlhbCByZWxpYWJpbGl0eSB0cmlnZ2VycyByZW1vdmFsIG9mIGNodW5rcyBmcm9tIHRo ZSBzZW5kIHF1ZXVlIHdoZW4KdGhlIGFwcGxpY2F0aW9uIGNhbGxzIHNlbmRtc2coKS4KClRoaXMg Y29tbWl0IGZpeGVzIGl0IGJ5IG5vdCBzZXR0aW5nIHRoZSBmbGFnIGluIGNhc2UgdGhlIHNvY2tl dCBpcyBub3QKb3duZWQgYnkgdGhlIHVzZXIsIGFzIGl0IHdvbid0IGJlIGNsZWFuZWQgbGF0ZXIu IFRoaXMgd29ya3MgZm9yCnVzZXItaW5pdGlhdGVkIGNhbGxzIGFuZCBhbHNvIGZvciByeCBwYXRo IHByb2Nlc3NpbmcuCgpGaXhlczogZmI1ODZmMjUzMDBmICgic2N0cDogZGVsYXkgY2FsbHMgdG8g c2tfZGF0YV9yZWFkeSgpIGFzIG11Y2ggYXMgcG9zc2libGUiKQpSZXBvcnRlZC1ieTogSGFyYWxk IFdlbHRlIDxsYWZvcmdlQGdudW1vbmtzLm9yZz4KU2lnbmVkLW9mZi1ieTogTWFyY2VsbyBSaWNh cmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC91bHBxdWV1 ZS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC91bHBxdWV1ZS5jIGIvbmV0L3NjdHAvdWxwcXVldWUu YwppbmRleCA4NGQwZmRhZjdkZTkuLmQzY2ZiZjJmNDA3ZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAv dWxwcXVldWUuYworKysgYi9uZXQvc2N0cC91bHBxdWV1ZS5jCkBAIC0yNjUsNyArMjY1LDggQEAg aW50IHNjdHBfdWxwcV90YWlsX2V2ZW50KHN0cnVjdCBzY3RwX3VscHEgKnVscHEsIHN0cnVjdCBz Y3RwX3VscGV2ZW50ICpldmVudCkKIAkJc2N0cF91bHBxX2NsZWFyX3BkKHVscHEpOwogCiAJaWYg KHF1ZXVlID09ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZSAmJiAhc3AtPmRhdGFfcmVhZHlfc2lnbmFs bGVkKSB7Ci0JCXNwLT5kYXRhX3JlYWR5X3NpZ25hbGxlZCA9IDE7CisJCWlmICghc29ja19vd25l ZF9ieV91c2VyKHNrKSkKKwkJCXNwLT5kYXRhX3JlYWR5X3NpZ25hbGxlZCA9IDE7CiAJCXNrLT5z a19kYXRhX3JlYWR5KHNrKTsKIAl9CiAJcmV0dXJuIDE7Ci0tIAoyLjEzLjUKCgpGcm9tIDk2NGY3 N2ZlNTc4NjUxOWY4NmNlMTU1Yzc2OWI1YzU1NjA4MDM5YjAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEhhaXNodWFuZyBZYW4gPHlhbmhhaXNodWFuZ0BjbXNzLmNoaW5hbW9iaWxlLmNv bT4KRGF0ZTogVGh1LCA3IFNlcCAyMDE3IDE0OjA4OjM0ICswODAwClN1YmplY3Q6IFtQQVRDSCAy NS8yNV0gaXBfdHVubmVsOiBmaXggc2V0dGluZyB0dGwgYW5kIHRvcyB2YWx1ZSBpbiBjb2xsZWN0 X21kCiBtb2RlCgpbIFVwc3RyZWFtIGNvbW1pdCAwZjY5M2YxOTk1Y2YwMDI0MzJiNzBmNDNjZTcz Zjc5YmY4ZDBiNmM5IF0KCnR0bCBhbmQgdG9zIHZhcmlhYmxlcyBhcmUgZGVjbGFyZWQgYW5kIGFz c2lnbmVkLCBidXQgYXJlIG5vdCB1c2VkIGluCmlwdHVubmVsX3htaXQoKSBmdW5jdGlvbi4KCkZp eGVzOiBjZmM3MzgxYjMwMDIgKCJpcF90dW5uZWw6IGFkZCBjb2xsZWN0X21kIG1vZGUgdG8gSVBJ UCB0dW5uZWwiKQpDYzogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAZmIuY29tPgpTaWduZWQtb2Zm LWJ5OiBIYWlzaHVhbmcgWWFuIDx5YW5oYWlzaHVhbmdAY21zcy5jaGluYW1vYmlsZS5jb20+CkFj a2VkLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBf dHVubmVsLmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMgYi9uZXQvaXB2NC9p cF90dW5uZWwuYwppbmRleCA1NzE5ZDZiYTA4MjQuLmJkN2YxODM2YmI3MCAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKQEAgLTYwOSw4 ICs2MDksOCBAQCB2b2lkIGlwX21kX3R1bm5lbF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cnVjdCBuZXRfZGV2aWNlICpkZXYsIHU4IHByb3RvKQogCQlpcF9ydF9wdXQocnQpOwogCQlnb3Rv IHR4X2Ryb3BwZWQ7CiAJfQotCWlwdHVubmVsX3htaXQoTlVMTCwgcnQsIHNrYiwgZmw0LnNhZGRy LCBmbDQuZGFkZHIsIHByb3RvLCBrZXktPnRvcywKLQkJICAgICAga2V5LT50dGwsIGRmLCAhbmV0 X2VxKHR1bm5lbC0+bmV0LCBkZXZfbmV0KGRldikpKTsKKwlpcHR1bm5lbF94bWl0KE5VTEwsIHJ0 LCBza2IsIGZsNC5zYWRkciwgZmw0LmRhZGRyLCBwcm90bywgdG9zLCB0dGwsCisJCSAgICAgIGRm LCAhbmV0X2VxKHR1bm5lbC0+bmV0LCBkZXZfbmV0KGRldikpKTsKIAlyZXR1cm47CiB0eF9lcnJv cjoKIAlkZXYtPnN0YXRzLnR4X2Vycm9ycysrOwotLSAKMi4xMy41Cgo= ----Next_Part(Thu_Sep_14_21_57_40_2017_050)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_412.mbox" RnJvbSA1NjllOTVkYTIzYTA1OTY0Njg3YmI2YWMyZTRkODc2NGZiNjBjNTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpE YXRlOiBGcmksIDE4IEF1ZyAyMDE3IDE0OjQwOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMS80 M10gaXB2NjogYWNjZXB0IDY0ayAtIDEgcGFja2V0IGxlbmd0aCBpbgogaXA2X2ZpbmRfMXN0ZnJh Z29wdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAzZGUzM2UxYmEwNTA2NzIzYWIyNTczNGUwOThjZjI4 MGVjYzM0NzU2IF0KCkEgcGFja2V0IGxlbmd0aCBvZiBleGFjdGx5IElQVjZfTUFYUExFTiBpcyBh bGxvd2VkLCB3ZSBzaG91bGQKcmVmdXNlIHBhcnNpbmcgb3B0aW9ucyBvbmx5IGlmIHRoZSBzaXpl IGlzIDY0S2lCIG9yIG1vcmUuCgpXaGlsZSBhdCBpdCwgcmVtb3ZlIG9uZSBleHRyYSB2YXJpYWJs ZSBhbmQgb25lIGFzc2lnbm1lbnQgd2hpY2gKd2VyZSBhbHNvIGludHJvZHVjZWQgYnkgdGhlIGNv bW1pdCB0aGF0IGludHJvZHVjZWQgdGhlIHNpemUKY2hlY2suIENoZWNraW5nIHRoZSBzdW0gJ29m ZnNldCArIGxlbicgYW5kIG9ubHkgbGF0ZXIgYWRkaW5nCidsZW4nIHRvICdvZmZzZXQnIGRvZXNu J3QgcHJvdmlkZSBhbnkgYWR2YW50YWdlIG92ZXIgZGlyZWN0bHkKc3VtbWluZyB0byAnb2Zmc2V0 JyBhbmQgY2hlY2tpbmcgaXQuCgpGaXhlczogNjM5OWYxZmFlNGVjICgiaXB2NjogYXZvaWQgb3Zl cmZsb3cgb2Ygb2Zmc2V0IGluIGlwNl9maW5kXzFzdGZyYWdvcHQiKQpTaWduZWQtb2ZmLWJ5OiBT dGVmYW5vIEJyaXZpbyA8c2JyaXZpb0ByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvb3V0cHV0X2NvcmUu YyB8IDYgKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L291dHB1dF9jb3JlLmMgYi9uZXQvaXB2Ni9vdXRw dXRfY29yZS5jCmluZGV4IGFiYjJjMzA3ZmJlOC4uYTMzOGJiYzMzY2YzIDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9vdXRwdXRfY29yZS5jCisrKyBiL25ldC9pcHY2L291dHB1dF9jb3JlLmMKQEAgLTg2 LDcgKzg2LDYgQEAgaW50IGlwNl9maW5kXzFzdGZyYWdvcHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwg dTggKipuZXh0aGRyKQogCiAJd2hpbGUgKG9mZnNldCA8PSBwYWNrZXRfbGVuKSB7CiAJCXN0cnVj dCBpcHY2X29wdF9oZHIgKmV4dGhkcjsKLQkJdW5zaWduZWQgaW50IGxlbjsKIAogCQlzd2l0Y2gg KCoqbmV4dGhkcikgewogCkBAIC0xMTIsMTAgKzExMSw5IEBAIGludCBpcDZfZmluZF8xc3RmcmFn b3B0KHN0cnVjdCBza19idWZmICpza2IsIHU4ICoqbmV4dGhkcikKIAogCQlleHRoZHIgPSAoc3Ry dWN0IGlwdjZfb3B0X2hkciAqKShza2JfbmV0d29ya19oZWFkZXIoc2tiKSArCiAJCQkJCQkgb2Zm c2V0KTsKLQkJbGVuID0gaXB2Nl9vcHRsZW4oZXh0aGRyKTsKLQkJaWYgKGxlbiArIG9mZnNldCA+ PSBJUFY2X01BWFBMRU4pCisJCW9mZnNldCArPSBpcHY2X29wdGxlbihleHRoZHIpOworCQlpZiAo b2Zmc2V0ID4gSVBWNl9NQVhQTEVOKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCW9mZnNldCArPSBs ZW47CiAJCSpuZXh0aGRyID0gJmV4dGhkci0+bmV4dGhkcjsKIAl9CiAKLS0gCjIuMTMuNQoKCkZy b20gYzlmYzUyMGMyY2I0Mzc0Nzc2YTIxNjc4MzRkMmE4MWQ1MmM2MDAxNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogV2VpIFdhbmcgPHdlaXdhbkBnb29nbGUuY29tPgpEYXRlOiBNb24s IDIxIEF1ZyAyMDE3IDA5OjQ3OjEwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi80M10gaXB2Njog YWRkIHJjdSBncmFjZSBwZXJpb2QgYmVmb3JlIGZyZWVpbmcgZmliNl9ub2RlCgpbIFVwc3RyZWFt IGNvbW1pdCBjNWNmZjg1NjFkMmQwMDA2ZTk3MmJkMTE0YWZkNTFmMDgyZmVlNzdjIF0KCldlIGN1 cnJlbnRseSBrZWVwIHJ0LT5ydDZpX25vZGUgcG9pbnRpbmcgdG8gdGhlIGZpYjZfbm9kZSBmb3Ig dGhlIHJvdXRlLgpBbmQgc29tZSBmdW5jdGlvbnMgbWFrZSB1c2Ugb2YgdGhpcyBwb2ludGVyIHRv IGRlcmVmZXJlbmNlIHRoZSBmaWI2X25vZGUKZnJvbSBydCBzdHJ1Y3R1cmUsIGUuZy4gcnQ2X2No ZWNrKCkuIEhvd2V2ZXIsIGFzIHRoZXJlIGlzIG5laXRoZXIKcmVmY291bnQgbm9yIHJjdSB0YWtl biB3aGVuIGRlcmVmZXJlbmNpbmcgcnQtPnJ0Nmlfbm9kZSwgaXQgY291bGQKcG90ZW50aWFsbHkg Y2F1c2UgY3Jhc2hlcyBhcyBydC0+cnQ2aV9ub2RlIGNvdWxkIGJlIHNldCB0byBOVUxMIGJ5IG90 aGVyCkNQVXMgd2hlbiBkb2luZyBhIHJvdXRlIGRlbGV0aW9uLgpUaGlzIHBhdGNoIGludHJvZHVj ZXMgYW4gcmN1IGdyYWNlIHBlcmlvZCBiZWZvcmUgZnJlZWluZyBmaWI2X25vZGUgYW5kCm1ha2Vz IHN1cmUgdGhlIGZ1bmN0aW9ucyB0aGF0IGRlcmVmZXJlbmNlIGl0IHRha2VzIHJjdV9yZWFkX2xv Y2soKS4KCk5vdGU6IHRoZXJlIGlzIG5vICJGaXhlcyIgdGFnIGJlY2F1c2UgdGhpcyBidWcgd2Fz IHRoZXJlIGluIGEgdmVyeQplYXJseSBzdGFnZS4KClNpZ25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3 ZWl3YW5AZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KQWNrZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L2lwNl9maWIuaCB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBuZXQvaXB2 Ni9pcDZfZmliLmMgICAgfCAyMCArKysrKysrKysrKysrKysrLS0tLQogbmV0L2lwdjYvcm91dGUu YyAgICAgIHwgMTQgKysrKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcDZfZmliLmgg Yi9pbmNsdWRlL25ldC9pcDZfZmliLmgKaW5kZXggYzk3OWM4NzhkZjFjLi5kYzQzMDEyNjZhODkg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwNl9maWIuaAorKysgYi9pbmNsdWRlL25ldC9pcDZf ZmliLmgKQEAgLTcwLDYgKzcwLDcgQEAgc3RydWN0IGZpYjZfbm9kZSB7CiAJX191MTYJCQlmbl9m bGFnczsKIAlpbnQJCQlmbl9zZXJudW07CiAJc3RydWN0IHJ0Nl9pbmZvCQkqcnJfcHRyOworCXN0 cnVjdCByY3VfaGVhZAkJcmN1OwogfTsKIAogI2lmbmRlZiBDT05GSUdfSVBWNl9TVUJUUkVFUwpA QCAtMTY3LDEzICsxNjgsMzkgQEAgc3RhdGljIGlubGluZSB2b2lkIHJ0Nl91cGRhdGVfZXhwaXJl cyhzdHJ1Y3QgcnQ2X2luZm8gKnJ0MCwgaW50IHRpbWVvdXQpCiAJcnQwLT5ydDZpX2ZsYWdzIHw9 IFJURl9FWFBJUkVTOwogfQogCisvKiBGdW5jdGlvbiB0byBzYWZlbHkgZ2V0IGZuLT5zZXJudW0g Zm9yIHBhc3NlZCBpbiBydAorICogYW5kIHN0b3JlIHJlc3VsdCBpbiBwYXNzZWQgaW4gY29va2ll LgorICogUmV0dXJuIHRydWUgaWYgd2UgY2FuIGdldCBjb29raWUgc2FmZWx5CisgKiBSZXR1cm4g ZmFsc2UgaWYgbm90CisgKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBydDZfZ2V0X2Nvb2tpZV9zYWZl KGNvbnN0IHN0cnVjdCBydDZfaW5mbyAqcnQsCisJCQkJICAgICAgIHUzMiAqY29va2llKQorewor CXN0cnVjdCBmaWI2X25vZGUgKmZuOworCWJvb2wgc3RhdHVzID0gZmFsc2U7CisKKwlyY3VfcmVh ZF9sb2NrKCk7CisJZm4gPSByY3VfZGVyZWZlcmVuY2UocnQtPnJ0Nmlfbm9kZSk7CisKKwlpZiAo Zm4pIHsKKwkJKmNvb2tpZSA9IGZuLT5mbl9zZXJudW07CisJCXN0YXR1cyA9IHRydWU7CisJfQor CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJcmV0dXJuIHN0YXR1czsKK30KKwogc3RhdGljIGlubGlu ZSB1MzIgcnQ2X2dldF9jb29raWUoY29uc3Qgc3RydWN0IHJ0Nl9pbmZvICpydCkKIHsKKwl1MzIg Y29va2llID0gMDsKKwogCWlmIChydC0+cnQ2aV9mbGFncyAmIFJURl9QQ1BVIHx8CiAJICAgICh1 bmxpa2VseShydC0+ZHN0LmZsYWdzICYgRFNUX05PQ0FDSEUpICYmIHJ0LT5kc3QuZnJvbSkpCiAJ CXJ0ID0gKHN0cnVjdCBydDZfaW5mbyAqKShydC0+ZHN0LmZyb20pOworCXJ0Nl9nZXRfY29va2ll X3NhZmUocnQsICZjb29raWUpOwogCi0JcmV0dXJuIHJ0LT5ydDZpX25vZGUgPyBydC0+cnQ2aV9u b2RlLT5mbl9zZXJudW0gOiAwOworCXJldHVybiBjb29raWU7CiB9CiAKIHN0YXRpYyBpbmxpbmUg dm9pZCBpcDZfcnRfcHV0KHN0cnVjdCBydDZfaW5mbyAqcnQpCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9pcDZfZmliLmMgYi9uZXQvaXB2Ni9pcDZfZmliLmMKaW5kZXggY2Q4ZGQ4YzRlODE5Li5jYWZj ZmVlZjBlNTMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2Ni9p cDZfZmliLmMKQEAgLTE0OCwxMSArMTQ4LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgZmliNl9ub2RlICpu b2RlX2FsbG9jKHZvaWQpCiAJcmV0dXJuIGZuOwogfQogCi1zdGF0aWMgdm9pZCBub2RlX2ZyZWUo c3RydWN0IGZpYjZfbm9kZSAqZm4pCitzdGF0aWMgdm9pZCBub2RlX2ZyZWVfaW1tZWRpYXRlKHN0 cnVjdCBmaWI2X25vZGUgKmZuKQoreworCWttZW1fY2FjaGVfZnJlZShmaWI2X25vZGVfa21lbSwg Zm4pOworfQorCitzdGF0aWMgdm9pZCBub2RlX2ZyZWVfcmN1KHN0cnVjdCByY3VfaGVhZCAqaGVh ZCkKIHsKKwlzdHJ1Y3QgZmliNl9ub2RlICpmbiA9IGNvbnRhaW5lcl9vZihoZWFkLCBzdHJ1Y3Qg ZmliNl9ub2RlLCByY3UpOworCiAJa21lbV9jYWNoZV9mcmVlKGZpYjZfbm9kZV9rbWVtLCBmbik7 CiB9CiAKK3N0YXRpYyB2b2lkIG5vZGVfZnJlZShzdHJ1Y3QgZmliNl9ub2RlICpmbikKK3sKKwlj YWxsX3JjdSgmZm4tPnJjdSwgbm9kZV9mcmVlX3JjdSk7Cit9CisKIHN0YXRpYyB2b2lkIHJ0Nl9y Y3VfZnJlZShzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQogewogCWNhbGxfcmN1KCZydC0+ZHN0LnJjdV9o ZWFkLCBkc3RfcmN1X2ZyZWUpOwpAQCAtNTk5LDkgKzYxMSw5IEBAIHN0YXRpYyBzdHJ1Y3QgZmli Nl9ub2RlICpmaWI2X2FkZF8xKHN0cnVjdCBmaWI2X25vZGUgKnJvb3QsCiAKIAkJaWYgKCFpbiB8 fCAhbG4pIHsKIAkJCWlmIChpbikKLQkJCQlub2RlX2ZyZWUoaW4pOworCQkJCW5vZGVfZnJlZV9p bW1lZGlhdGUoaW4pOwogCQkJaWYgKGxuKQotCQkJCW5vZGVfZnJlZShsbik7CisJCQkJbm9kZV9m cmVlX2ltbWVkaWF0ZShsbik7CiAJCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAkJfQogCkBA IC0xMDM1LDcgKzEwNDcsNyBAQCBpbnQgZmliNl9hZGQoc3RydWN0IGZpYjZfbm9kZSAqcm9vdCwg c3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJCQkgICByb290LCBhbmQgdGhlbiAoaW4gZmFpbHVyZSkg c3RhbGUgbm9kZQogCQkJCSAgIGluIG1haW4gdHJlZS4KIAkJCQkgKi8KLQkJCQlub2RlX2ZyZWUo c2ZuKTsKKwkJCQlub2RlX2ZyZWVfaW1tZWRpYXRlKHNmbik7CiAJCQkJZXJyID0gUFRSX0VSUihz bik7CiAJCQkJZ290byBmYWlsdXJlOwogCQkJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUu YyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggYWViNzA5N2FjYzBhLi41MDJmODRiZmQ3NjIgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMTI4 OSw3ICsxMjg5LDkgQEAgc3RhdGljIHZvaWQgcnQ2X2RzdF9mcm9tX21ldHJpY3NfY2hlY2soc3Ry dWN0IHJ0Nl9pbmZvICpydCkKIAogc3RhdGljIHN0cnVjdCBkc3RfZW50cnkgKnJ0Nl9jaGVjayhz dHJ1Y3QgcnQ2X2luZm8gKnJ0LCB1MzIgY29va2llKQogewotCWlmICghcnQtPnJ0Nmlfbm9kZSB8 fCAocnQtPnJ0Nmlfbm9kZS0+Zm5fc2VybnVtICE9IGNvb2tpZSkpCisJdTMyIHJ0X2Nvb2tpZTsK KworCWlmICghcnQ2X2dldF9jb29raWVfc2FmZShydCwgJnJ0X2Nvb2tpZSkgfHwgcnRfY29va2ll ICE9IGNvb2tpZSkKIAkJcmV0dXJuIE5VTEw7CiAKIAlpZiAocnQ2X2NoZWNrX2V4cGlyZWQocnQp KQpAQCAtMTM1Nyw4ICsxMzU5LDE0IEBAIHN0YXRpYyB2b2lkIGlwNl9saW5rX2ZhaWx1cmUoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAkJaWYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX0NBQ0hFKSB7CiAJ CQlkc3RfaG9sZCgmcnQtPmRzdCk7CiAJCQlpcDZfZGVsX3J0KHJ0KTsKLQkJfSBlbHNlIGlmIChy dC0+cnQ2aV9ub2RlICYmIChydC0+cnQ2aV9mbGFncyAmIFJURl9ERUZBVUxUKSkgewotCQkJcnQt PnJ0Nmlfbm9kZS0+Zm5fc2VybnVtID0gLTE7CisJCX0gZWxzZSB7CisJCQlzdHJ1Y3QgZmliNl9u b2RlICpmbjsKKworCQkJcmN1X3JlYWRfbG9jaygpOworCQkJZm4gPSByY3VfZGVyZWZlcmVuY2Uo cnQtPnJ0Nmlfbm9kZSk7CisJCQlpZiAoZm4gJiYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX0RFRkFV TFQpKQorCQkJCWZuLT5mbl9zZXJudW0gPSAtMTsKKwkJCXJjdV9yZWFkX3VubG9jaygpOwogCQl9 CiAJfQogfQotLSAKMi4xMy41CgoKRnJvbSBmNDFkYmJiNWZjOTQzMDUyMTI5OGQxMDI0NGJiMGY2 MDUwNGQ5MDg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXZWkgV2FuZyA8d2Vpd2Fu QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgMjUgQXVnIDIwMTcgMTU6MDM6MTAgLTA3MDAKU3ViamVj dDogW1BBVENIIDAzLzQzXSBpcHY2OiBmaXggc3BhcnNlIHdhcm5pbmcgb24gcnQ2aV9ub2RlCgpb IFVwc3RyZWFtIGNvbW1pdCA0ZTU4N2VhNzFiZjkyNGY3ZGFjNjIxZjEzNTE2NTNiZDQxZTQ0NmNi IF0KCkNvbW1pdCBjNWNmZjg1NjFkMmQgYWRkcyByY3UgZ3JhY2UgcGVyaW9kIGJlZm9yZSBmcmVl aW5nIGZpYjZfbm9kZS4gVGhpcwpnZW5lcmF0ZXMgYSBuZXcgc3BhcnNlIHdhcm5pbmcgb24gcnQt PnJ0Nmlfbm9kZSByZWxhdGVkIGNvZGU6CiAgbmV0L2lwdjYvcm91dGUuYzoxMzk0OjMwOiBlcnJv cjogaW5jb21wYXRpYmxlIHR5cGVzIGluIGNvbXBhcmlzb24KICBleHByZXNzaW9uIChkaWZmZXJl bnQgYWRkcmVzcyBzcGFjZXMpCiAgLi9pbmNsdWRlL25ldC9pcDZfZmliLmg6MTg3OjE0OiBlcnJv cjogaW5jb21wYXRpYmxlIHR5cGVzIGluIGNvbXBhcmlzb24KICBleHByZXNzaW9uIChkaWZmZXJl bnQgYWRkcmVzcyBzcGFjZXMpCgpUaGlzIGNvbW1pdCBhZGRzICJfX3JjdSIgdGFnIGZvciBydDZp X25vZGUgYW5kIG1ha2VzIHN1cmUgY29ycmVzcG9uZGluZwpyY3UgQVBJIGlzIHVzZWQgZm9yIGl0 LgpBZnRlciB0aGlzIGZpeCwgc3BhcnNlIG5vIGxvbmdlciBnZW5lcmF0ZXMgdGhlIGFib3ZlIHdh cm5pbmcuCgpGaXhlczogYzVjZmY4NTYxZDJkICgiaXB2NjogYWRkIHJjdSBncmFjZSBwZXJpb2Qg YmVmb3JlIGZyZWVpbmcgZmliNl9ub2RlIikKU2lnbmVkLW9mZi1ieTogV2VpIFdhbmcgPHdlaXdh bkBnb29nbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpBY2tlZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQv aXA2X2ZpYi5oIHwgIDIgKy0KIG5ldC9pcHY2L2FkZHJjb25mLmMgICB8ICAyICstCiBuZXQvaXB2 Ni9pcDZfZmliLmMgICAgfCAxMSArKysrKysrLS0tLQogbmV0L2lwdjYvcm91dGUuYyAgICAgIHwg IDMgKystCiA0IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXA2X2Zp Yi5oCmluZGV4IGRjNDMwMTI2NmE4OS4uMGYyOWVhMWJjN2JmIDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9pcDZfZmliLmgKKysrIGIvaW5jbHVkZS9uZXQvaXA2X2ZpYi5oCkBAIC0xMDUsNyArMTA1 LDcgQEAgc3RydWN0IHJ0Nl9pbmZvIHsKIAkgKiB0aGUgc2FtZSBjYWNoZSBsaW5lLgogCSAqLwog CXN0cnVjdCBmaWI2X3RhYmxlCQkqcnQ2aV90YWJsZTsKLQlzdHJ1Y3QgZmliNl9ub2RlCQkqcnQ2 aV9ub2RlOworCXN0cnVjdCBmaWI2X25vZGUgX19yY3UJCSpydDZpX25vZGU7CiAKIAlzdHJ1Y3Qg aW42X2FkZHIJCQlydDZpX2dhdGV3YXk7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25m LmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDM5YTQ0YzA1OThmNy4uZDE2ZDY0MmVhMzIy IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25m LmMKQEAgLTU1NDEsNyArNTU0MSw3IEBAIHN0YXRpYyB2b2lkIF9faXB2Nl9pZmFfbm90aWZ5KGlu dCBldmVudCwgc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwKQogCQkgKiBvdXIgREFEIHByb2Nlc3Ms IHNvIHdlIGRvbid0IG5lZWQKIAkJICogdG8gZG8gaXQgYWdhaW4KIAkJICovCi0JCWlmICghKGlm cC0+cnQtPnJ0Nmlfbm9kZSkpCisJCWlmICghcmN1X2FjY2Vzc19wb2ludGVyKGlmcC0+cnQtPnJ0 Nmlfbm9kZSkpCiAJCQlpcDZfaW5zX3J0KGlmcC0+cnQpOwogCQlpZiAoaWZwLT5pZGV2LT5jbmYu Zm9yd2FyZGluZykKIAkJCWFkZHJjb25mX2pvaW5fYW55Y2FzdChpZnApOwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4IGNhZmNmZWVmMGU1 My4uODQ2NjQ4ZWEzYmNjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0 L2lwdjYvaXA2X2ZpYi5jCkBAIC04ODcsNyArODg3LDcgQEAgc3RhdGljIGludCBmaWI2X2FkZF9y dDJub2RlKHN0cnVjdCBmaWI2X25vZGUgKmZuLCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LAogCiAJCXJ0 LT5kc3QucnQ2X25leHQgPSBpdGVyOwogCQkqaW5zID0gcnQ7Ci0JCXJ0LT5ydDZpX25vZGUgPSBm bjsKKwkJcmN1X2Fzc2lnbl9wb2ludGVyKHJ0LT5ydDZpX25vZGUsIGZuKTsKIAkJYXRvbWljX2lu YygmcnQtPnJ0NmlfcmVmKTsKIAkJaWYgKCFpbmZvLT5za2lwX25vdGlmeSkKIAkJCWluZXQ2X3J0 X25vdGlmeShSVE1fTkVXUk9VVEUsIHJ0LCBpbmZvLCBubGZsYWdzKTsKQEAgLTkxMyw3ICs5MTMs NyBAQCBzdGF0aWMgaW50IGZpYjZfYWRkX3J0Mm5vZGUoc3RydWN0IGZpYjZfbm9kZSAqZm4sIHN0 cnVjdCBydDZfaW5mbyAqcnQsCiAJCQlyZXR1cm4gZXJyOwogCiAJCSppbnMgPSBydDsKLQkJcnQt PnJ0Nmlfbm9kZSA9IGZuOworCQlyY3VfYXNzaWduX3BvaW50ZXIocnQtPnJ0Nmlfbm9kZSwgZm4p OwogCQlydC0+ZHN0LnJ0Nl9uZXh0ID0gaXRlci0+ZHN0LnJ0Nl9uZXh0OwogCQlhdG9taWNfaW5j KCZydC0+cnQ2aV9yZWYpOwogCQlpZiAoIWluZm8tPnNraXBfbm90aWZ5KQpAQCAtMTQ3NSw4ICsx NDc1LDkgQEAgc3RhdGljIHZvaWQgZmliNl9kZWxfcm91dGUoc3RydWN0IGZpYjZfbm9kZSAqZm4s IHN0cnVjdCBydDZfaW5mbyAqKnJ0cCwKIAogaW50IGZpYjZfZGVsKHN0cnVjdCBydDZfaW5mbyAq cnQsIHN0cnVjdCBubF9pbmZvICppbmZvKQogeworCXN0cnVjdCBmaWI2X25vZGUgKmZuID0gcmN1 X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChydC0+cnQ2aV9ub2RlLAorCQkJCSAgICBsb2NrZGVwX2lz X2hlbGQoJnJ0LT5ydDZpX3RhYmxlLT50YjZfbG9jaykpOwogCXN0cnVjdCBuZXQgKm5ldCA9IGlu Zm8tPm5sX25ldDsKLQlzdHJ1Y3QgZmliNl9ub2RlICpmbiA9IHJ0LT5ydDZpX25vZGU7CiAJc3Ry dWN0IHJ0Nl9pbmZvICoqcnRwOwogCiAjaWYgUlQ2X0RFQlVHID49IDIKQEAgLTE2NjUsNyArMTY2 Niw5IEBAIHN0YXRpYyBpbnQgZmliNl9jbGVhbl9ub2RlKHN0cnVjdCBmaWI2X3dhbGtlciAqdykK IAkJCWlmIChyZXMpIHsKICNpZiBSVDZfREVCVUcgPj0gMgogCQkJCXByX2RlYnVnKCIlczogZGVs IGZhaWxlZDogcnQ9JXBAJXAgZXJyPSVkXG4iLAotCQkJCQkgX19mdW5jX18sIHJ0LCBydC0+cnQ2 aV9ub2RlLCByZXMpOworCQkJCQkgX19mdW5jX18sIHJ0LAorCQkJCQkgcmN1X2FjY2Vzc19wb2lu dGVyKHJ0LT5ydDZpX25vZGUpLAorCQkJCQkgcmVzKTsKICNlbmRpZgogCQkJCWNvbnRpbnVlOwog CQkJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5k ZXggNTAyZjg0YmZkNzYyLi5jZDJmYjE4ZDlmOGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRl LmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMTM4Myw3ICsxMzgzLDggQEAgc3RhdGljIHZv aWQgcnQ2X2RvX3VwZGF0ZV9wbXR1KHN0cnVjdCBydDZfaW5mbyAqcnQsIHUzMiBtdHUpCiBzdGF0 aWMgYm9vbCBydDZfY2FjaGVfYWxsb3dlZF9mb3JfcG10dShjb25zdCBzdHJ1Y3QgcnQ2X2luZm8g KnJ0KQogewogCXJldHVybiAhKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX0NBQ0hFKSAmJgotCQkocnQt PnJ0NmlfZmxhZ3MgJiBSVEZfUENQVSB8fCBydC0+cnQ2aV9ub2RlKTsKKwkJKHJ0LT5ydDZpX2Zs YWdzICYgUlRGX1BDUFUgfHwKKwkJIHJjdV9hY2Nlc3NfcG9pbnRlcihydC0+cnQ2aV9ub2RlKSk7 CiB9CiAKIHN0YXRpYyB2b2lkIF9faXA2X3J0X3VwZGF0ZV9wbXR1KHN0cnVjdCBkc3RfZW50cnkg KmRzdCwgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAotLSAKMi4xMy41CgoKRnJvbSAyOTU1ZTgwMmUw OWFmNzRjOGQ0YTIxZWQxMTExYjE5YTg1MTllZThlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0ZTogVHVlLCAyMiBB dWcgMjAxNyAxNTozNjowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNDNdIG1hY3NlYzogYWRk IGdlbmwgZmFtaWx5IG1vZHVsZSBhbGlhcwoKWyBVcHN0cmVhbSBjb21taXQgNzgzNjI5OThmNThj N2MyNzFlMjcxOWRjZDBhYWNlZDQzNWM4MDFmOSBdCgpUaGlzIGhlbHBzIHRvb2xzIHN1Y2ggYXMg d3BhX3N1cHBsaWNhbnQgY2FuIHN0YXJ0IGV2ZW4gaWYgdGhlIG1hY3NlYwptb2R1bGUgaXNuJ3Qg bG9hZGVkIHlldC4KCkZpeGVzOiBjMDk0NDBmN2RjYjMgKCJtYWNzZWM6IGludHJvZHVjZSBJRUVF IDgwMi4xQUUgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVh c3lzbmFpbC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9tYWNzZWMuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjc2VjLmMgYi9kcml2 ZXJzL25ldC9tYWNzZWMuYwppbmRleCA3OTQxMTY3NWYwZTYuLmQxNmNlNjFiMzY5NiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvbWFjc2VjLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKQEAg LTM1MTgsNiArMzUxOCw3IEBAIG1vZHVsZV9pbml0KG1hY3NlY19pbml0KTsKIG1vZHVsZV9leGl0 KG1hY3NlY19leGl0KTsKIAogTU9EVUxFX0FMSUFTX1JUTkxfTElOSygibWFjc2VjIik7CitNT0RV TEVfQUxJQVNfR0VOTF9GQU1JTFkoIm1hY3NlYyIpOwogCiBNT0RVTEVfREVTQ1JJUFRJT04oIk1B Q3NlYyBJRUVFIDgwMi4xQUUiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKLS0gCjIuMTMu NQoKCkZyb20gNWNiMDc1NWMwOGMyZmIzZjJmMTc4NDJkYmIxNTNlZjRmMDU1MTc3MSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBUdWUsIDIyIEF1ZyAyMDE3IDA5OjM5OjI4IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAw NS80M10gdWRwOiBvbiBwZWVraW5nIGJhZCBjc3VtLCBkcm9wIHBhY2tldHMgZXZlbiBpZiBub3Qg YXQKIGhlYWQKClsgVXBzdHJlYW0gY29tbWl0IGZkNjA1NWE4MDZlZGM0MDE5YmUxYjlmYjdkMjUy NjI1OTliY2E1YjEgXQoKV2hlbiBwZWVraW5nLCBpZiBhIGJhZCBjc3VtIGlzIGRpc2NvdmVyZWQs IHRoZSBza2IgaXMgdW5saW5rZWQgZnJvbQp0aGUgcXVldWUgd2l0aCBfX3NrX3F1ZXVlX2Ryb3Bf c2tiIGFuZCB0aGUgcGVlayBvcGVyYXRpb24gcmVzdGFydGVkLgoKX19za19xdWV1ZV9kcm9wX3Nr YiBvbmx5IGRyb3BzIHBhY2tldHMgdGhhdCBtYXRjaCB0aGUgcXVldWUgaGVhZC4KClRoaXMgZmFp bHMgaWYgdGhlIHNrYiB3YXMgZm91bmQgYWZ0ZXIgdGhlIGhlYWQsIHVzaW5nIFNPX1BFRUtfT0ZG CnNvY2tldCBvcHRpb24uIFRoaXMgY2F1c2VzIGFuIGluZmluaXRlIGxvb3AuCgpXZSBNVVNUIGRy b3AgdGhpcyBwcm9ibGVtYXRpYyBza2IsIGFuZCB3ZSBjYW4gc2ltcGx5IGNoZWNrIGlmIHNrYiB3 YXMKYWxyZWFkeSByZW1vdmVkIGJ5IGFub3RoZXIgdGhyZWFkLCBieSBsb29raW5nIGF0IHNrYi0+ bmV4dCA6CgpUaGlzIHBvaW50ZXIgaXMgc2V0IHRvIE5VTEwgYnkgdGhlICBfX3NrYl91bmxpbmso KSBvcGVyYXRpb24sIHRoYXQgbWlnaHQKaGF2ZSBoYXBwZW5lZCBvbmx5IHVuZGVyIHRoZSBzcGlu bG9jayBwcm90ZWN0aW9uLgoKTWFueSB0aGFua3MgdG8gc3l6a2FsbGVyIHRlYW0gKGFuZCBwYXJ0 aWN1bGFybHkgRG1pdHJ5IFZ5dWtvdiB3aG8KcHJvdmlkZWQgdXMgbmljZSBDIHJlcHJvZHVjZXJz IGV4aGliaXRpbmcgdGhlIGxvY2t1cCkgYW5kIFdpbGxlbSBkZQpCcnVpam4gd2hvIHByb3ZpZGVk IGZpcnN0IHZlcnNpb24gZm9yIHRoaXMgcGF0Y2ggYW5kIGEgdGVzdCBwcm9ncmFtLgoKRml4ZXM6 IDYyN2QyZDZiNTUwMCAoInVkcDogZW5hYmxlIE1TR19QRUVLIGF0IG5vbi16ZXJvIG9mZnNldCIp ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0 ZWQtYnk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IFdpbGxlbSBkZSBC cnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlA cmVkaGF0LmNvbT4KQWNrZWQtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9jb3JlL2RhdGFncmFtLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kYXRhZ3JhbS5jIGIv bmV0L2NvcmUvZGF0YWdyYW0uYwppbmRleCBkYjE4NjZmMmZmY2YuLjI1YzgwM2U1MjBkYSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvZGF0YWdyYW0uYworKysgYi9uZXQvY29yZS9kYXRhZ3JhbS5jCkBA IC0zNDUsNyArMzQ1LDcgQEAgaW50IF9fc2tfcXVldWVfZHJvcF9za2Ioc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChmbGFncyAmIE1TR19QRUVLKSB7CiAJCWVyciA9 IC1FTk9FTlQ7CiAJCXNwaW5fbG9ja19iaCgmc2stPnNrX3JlY2VpdmVfcXVldWUubG9jayk7Ci0J CWlmIChza2IgPT0gc2tiX3BlZWsoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSkgeworCQlpZiAoc2ti LT5uZXh0KSB7CiAJCQlfX3NrYl91bmxpbmsoc2tiLCAmc2stPnNrX3JlY2VpdmVfcXVldWUpOwog CQkJYXRvbWljX2RlYygmc2tiLT51c2Vycyk7CiAJCQlpZiAoZGVzdHJ1Y3RvcikKLS0gCjIuMTMu NQoKCkZyb20gYWYwODVlMTQ0YTFiMzEzNDJlNDRjOWJjMmZjODM4NDUxZjM5YjQ5ZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94 Lm5ldD4KRGF0ZTogV2VkLCAyMyBBdWcgMjAxNyAwMDowNjowOSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDYvNDNdIGJwZjogZml4IG1hcCB2YWx1ZSBhdHRyaWJ1dGUgZm9yIGhhc2ggb2YgbWFwcwoK WyBVcHN0cmVhbSBjb21taXQgMzNiYTQzZWQwYWZjMTNhMjliMTMxNGUzZTQ1YTk5MzhkMzEwYmEx MyBdCgpDdXJyZW50bHksIGlwcm91dGUyJ3MgQlBGIEVMRiBsb2FkZXIgd29ya3MgZmluZSB3aXRo IGFycmF5IG9mIG1hcHMKd2hlbiByZXRyaWV2aW5nIHRoZSBmZCBmcm9tIGEgcGlubmVkIG5vZGUg YW5kIGRvaW5nIGEgc2VsZmNoZWNrCmFnYWluc3QgdGhlIHByb3ZpZGVkIG1hcCBhdHRyaWJ1dGVz IGZyb20gdGhlIG9iamVjdCBmaWxlLCBidXQgd2UKZmFpbCB0byBkbyB0aGUgc2FtZSBmb3IgaGFz aCBvZiBtYXBzIGFuZCB0aHVzIHJlZnVzZSB0byBnZXQgdGhlCm1hcCBmcm9tIHBpbm5lZCBub2Rl LgoKUmVhc29uIGlzIHRoYXQgd2hlbiBhbGxvY2F0aW5nIGhhc2ggb2YgbWFwcywgZmRfaHRhYl9t YXBfYWxsb2MoKSB3aWxsCnNldCB0aGUgdmFsdWUgc2l6ZSB0byBzaXplb2Yodm9pZCAqKSwgYW5k IGFueSB1c2VyIHNwYWNlIG1hcCBjcmVhdGlvbgpyZXF1ZXN0cyBhcmUgZm9yY2VkIHRvIHNldCA0 IGJ5dGVzIGFzIHZhbHVlIHNpemUuIFRodXMsIHNlbGZjaGVjawp3aWxsIGNvbXBsYWluIGFib3V0 IGV4cG9zZWQgOCBieXRlcyBvbiA2NCBiaXQgYXJjaHMgdnMuIDQgYnl0ZXMgZnJvbQpvYmplY3Qg ZmlsZSBhcyB2YWx1ZSBzaXplLiBDb250cmFjdCBpcyB0aGF0IGZkaW5mbyBvciBCUEZfTUFQX0dF VF9GRF9CWV9JRApyZXR1cm5zIHRoZSB2YWx1ZSBzaXplIHVzZWQgdG8gY3JlYXRlIHRoZSBtYXAu CgpGaXggaXQgYnkgaGFuZGxpbmcgaXQgdGhlIHNhbWUgd2F5IGFzIHdlIGRvIGZvciBhcnJheSBv ZiBtYXBzLCB3aGljaAptZWFucyB0aGF0IHdlIGxlYXZlIHZhbHVlIHNpemUgYXQgNCBieXRlcyBh bmQgaW4gdGhlIGFsbG9jYXRpb24gcGhhc2UKcm91bmQgdXAgdmFsdWUgc2l6ZSB0byA4IGJ5dGVz LiBhbGxvY19odGFiX2VsZW0oKSBuZWVkcyBhbiBhZGp1c3RtZW50CmluIG9yZGVyIHRvIGNvcHkg cm91bmRlZCB1cCA4IGJ5dGVzIGR1ZSB0byBicGZfZmRfaHRhYl9tYXBfdXBkYXRlX2VsZW0oKQpj YWxsaW5nIGludG8gaHRhYl9tYXBfdXBkYXRlX2VsZW0oKSB3aXRoIHRoZSBwb2ludGVyIG9mIHRo ZSBtYXAKcG9pbnRlciBhcyB2YWx1ZS4gVW5saWtlIGFycmF5IG9mIG1hcHMgd2hlcmUgd2UganVz dCB4Y2hnKCksIHdlJ3JlCnVzaW5nIHRoZSBnZW5lcmljIGh0YWJfbWFwX3VwZGF0ZV9lbGVtKCkg Y2FsbGJhY2sgYWxzbyB1c2VkIGZyb20gaGVscGVyCmNhbGxzLCB3aGljaCBwdWJsaXNoZWQgdGhl IGtleS92YWx1ZSBhbHJlYWR5IG9uIHJldHVybiwgc28gd2UgbmVlZAp0byBlbnN1cmUgdG8gbWVt Y3B5KCkgdGhlIHJpZ2h0IHNpemUuCgpGaXhlczogYmNjNmIxYjdlYmY4ICgiYnBmOiBBZGQgaGFz aCBvZiBtYXBzIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmll bEBpb2dlYXJib3gubmV0PgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAa2VybmVs Lm9yZz4KQWNrZWQtYnk6IE1hcnRpbiBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGtlcm5lbC9i cGYvaGFzaHRhYi5jIHwgMzAgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv a2VybmVsL2JwZi9oYXNodGFiLmMgYi9rZXJuZWwvYnBmL2hhc2h0YWIuYwppbmRleCAwMDQzMzRl YTEzYmEuLjA2YzU1YWMxNWIwNyAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9oYXNodGFiLmMKKysr IGIva2VybmVsL2JwZi9oYXNodGFiLmMKQEAgLTY1MiwxMiArNjUyLDI3IEBAIHN0YXRpYyB2b2lk IHBjcHVfY29weV92YWx1ZShzdHJ1Y3QgYnBmX2h0YWIgKmh0YWIsIHZvaWQgX19wZXJjcHUgKnBw dHIsCiAJfQogfQogCitzdGF0aWMgYm9vbCBmZF9odGFiX21hcF9uZWVkc19hZGp1c3QoY29uc3Qg c3RydWN0IGJwZl9odGFiICpodGFiKQoreworCXJldHVybiBodGFiLT5tYXAubWFwX3R5cGUgPT0g QlBGX01BUF9UWVBFX0hBU0hfT0ZfTUFQUyAmJgorCSAgICAgICBCSVRTX1BFUl9MT05HID09IDY0 OworfQorCitzdGF0aWMgdTMyIGh0YWJfc2l6ZV92YWx1ZShjb25zdCBzdHJ1Y3QgYnBmX2h0YWIg Kmh0YWIsIGJvb2wgcGVyY3B1KQoreworCXUzMiBzaXplID0gaHRhYi0+bWFwLnZhbHVlX3NpemU7 CisKKwlpZiAocGVyY3B1IHx8IGZkX2h0YWJfbWFwX25lZWRzX2FkanVzdChodGFiKSkKKwkJc2l6 ZSA9IHJvdW5kX3VwKHNpemUsIDgpOworCXJldHVybiBzaXplOworfQorCiBzdGF0aWMgc3RydWN0 IGh0YWJfZWxlbSAqYWxsb2NfaHRhYl9lbGVtKHN0cnVjdCBicGZfaHRhYiAqaHRhYiwgdm9pZCAq a2V5LAogCQkJCQkgdm9pZCAqdmFsdWUsIHUzMiBrZXlfc2l6ZSwgdTMyIGhhc2gsCiAJCQkJCSBi b29sIHBlcmNwdSwgYm9vbCBvbmFsbGNwdXMsCiAJCQkJCSBzdHJ1Y3QgaHRhYl9lbGVtICpvbGRf ZWxlbSkKIHsKLQl1MzIgc2l6ZSA9IGh0YWItPm1hcC52YWx1ZV9zaXplOworCXUzMiBzaXplID0g aHRhYl9zaXplX3ZhbHVlKGh0YWIsIHBlcmNwdSk7CiAJYm9vbCBwcmVhbGxvYyA9IGh0YWJfaXNf cHJlYWxsb2MoaHRhYik7CiAJc3RydWN0IGh0YWJfZWxlbSAqbF9uZXcsICoqcGxfbmV3OwogCXZv aWQgX19wZXJjcHUgKnBwdHI7CkBAIC02OTYsOSArNzExLDYgQEAgc3RhdGljIHN0cnVjdCBodGFi X2VsZW0gKmFsbG9jX2h0YWJfZWxlbShzdHJ1Y3QgYnBmX2h0YWIgKmh0YWIsIHZvaWQgKmtleSwK IAogCW1lbWNweShsX25ldy0+a2V5LCBrZXksIGtleV9zaXplKTsKIAlpZiAocGVyY3B1KSB7Ci0J CS8qIHJvdW5kIHVwIHZhbHVlX3NpemUgdG8gOCBieXRlcyAqLwotCQlzaXplID0gcm91bmRfdXAo c2l6ZSwgOCk7Ci0KIAkJaWYgKHByZWFsbG9jKSB7CiAJCQlwcHRyID0gaHRhYl9lbGVtX2dldF9w dHIobF9uZXcsIGtleV9zaXplKTsKIAkJfSBlbHNlIHsKQEAgLTEyMDksMTcgKzEyMjEsOSBAQCBj b25zdCBzdHJ1Y3QgYnBmX21hcF9vcHMgaHRhYl9scnVfcGVyY3B1X21hcF9vcHMgPSB7CiAKIHN0 YXRpYyBzdHJ1Y3QgYnBmX21hcCAqZmRfaHRhYl9tYXBfYWxsb2ModW5pb24gYnBmX2F0dHIgKmF0 dHIpCiB7Ci0Jc3RydWN0IGJwZl9tYXAgKm1hcDsKLQogCWlmIChhdHRyLT52YWx1ZV9zaXplICE9 IHNpemVvZih1MzIpKQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQotCS8qIHBvaW50ZXIg aXMgc3RvcmVkIGludGVybmFsbHkgKi8KLQlhdHRyLT52YWx1ZV9zaXplID0gc2l6ZW9mKHZvaWQg Kik7Ci0JbWFwID0gaHRhYl9tYXBfYWxsb2MoYXR0cik7Ci0JYXR0ci0+dmFsdWVfc2l6ZSA9IHNp emVvZih1MzIpOwotCi0JcmV0dXJuIG1hcDsKKwlyZXR1cm4gaHRhYl9tYXBfYWxsb2MoYXR0cik7 CiB9CiAKIHN0YXRpYyB2b2lkIGZkX2h0YWJfbWFwX2ZyZWUoc3RydWN0IGJwZl9tYXAgKm1hcCkK LS0gCjIuMTMuNQoKCkZyb20gMTNiN2Y2ZWE3NDc2YjhlYjk3NmMyNWY5ZjBiODRlNzNiZjg4NmU1 NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWlu ZWxsaUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjIgQXVnIDIwMTcgMTU6MjQ6NDcgLTA3MDAKU3Vi amVjdDogW1BBVENIIDA3LzQzXSBmc2wvbWFuOiBJbmhlcml0IHBhcmVudCBkZXZpY2UgYW5kIG9m X25vZGUKClsgVXBzdHJlYW0gY29tbWl0IGExYTUwYzhlNGMyNDFhNTA1YjcyNzBlMWEzYzZlNTBk OTRlNzk0YjEgXQoKSnVub3RlIENhaSByZXBvcnRlZCB0aGF0IGhlIHdhcyBub3QgYWJsZSB0byBn ZXQgYSBEU0Egc2V0dXAgaW52b2x2aW5nIHRoZQpGcmVlc2NhbGUgRFBBQS9GTUFOIGRyaXZlciB0 byB3b3JrIGFuZCBuYXJyb3dlZCBpdCBkb3duIHRvCm9mX2ZpbmRfbmV0X2RldmljZV9ieV9ub2Rl KCkuIFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhlIG5ldHdvcmsgZGV2aWNlJ3MKZGV2aWNlIHJl ZmVyZW5jZSB0byBiZSBjb3JyZWN0bHkgc2V0IHdoaWNoIGlzIHRoZSBjYXNlIGhlcmUsIHRob3Vn aCB3ZSBoYXZlCmxvc3QgYW55IGRldmljZV9ub2RlIGFzc29jaWF0aW9uIHRoZXJlLgoKVGhlIHBy b2JsZW0gaXMgdGhhdCBkcGFhX2V0aF9hZGRfZGV2aWNlKCkgYWxsb2NhdGVzIGEgImRwYWEtZXRo ZXJuZXQiIHBsYXRmb3JtCmRldmljZSwgYW5kIGxhdGVyIG9uIGRwYWFfZXRoX3Byb2JlKCkgaXMg Y2FsbGVkIGJ1dCBTRVRfTkVUREVWX0RFVigpIHdvbid0IGJlCnByb3BhZ2F0aW5nICZwZGV2LT5k ZXYub2Zfbm9kZSBwcm9wZXJseS4gRml4IHRoaXMgYnkgaW5oZXJlbnRpbmcgYm90aCB0aGUgcGFy ZW50CmRldmljZSBhbmQgdGhlIG9mX25vZGUgd2hlbiBkcGFhX2V0aF9hZGRfZGV2aWNlKCkgY3Jl YXRlcyB0aGUgcGxhdGZvcm0gZGV2aWNlLgoKRml4ZXM6IDM5MzM5NjE2ODJhMyAoImZzbC9mbWFu OiBBZGQgRk1hbiBNQUMgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8 Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1h bi9tYWMuYyB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9tYWMuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL21hYy5jCmluZGV4IDZlNjdkMjJmZDBkNS4uMWM3 ZGExNmFkMGZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1h bi9tYWMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9tYWMuYwpA QCAtNjIzLDYgKzYyMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkcGFhX2V0 aF9hZGRfZGV2aWNlKGludCBmbWFuX2lkLAogCQlnb3RvIG5vX21lbTsKIAl9CiAKKwlwZGV2LT5k ZXYub2Zfbm9kZSA9IG5vZGU7CisJcGRldi0+ZGV2LnBhcmVudCA9IHByaXYtPmRldjsKIAlzZXRf ZG1hX29wcygmcGRldi0+ZGV2LCBnZXRfZG1hX29wcyhwcml2LT5kZXYpKTsKIAogCXJldCA9IHBs YXRmb3JtX2RldmljZV9hZGRfZGF0YShwZGV2LCAmZGF0YSwgc2l6ZW9mKGRhdGEpKTsKLS0gCjIu MTMuNQoKCkZyb20gYzM0Y2FmZTk1ZDRkYTE3NzQ2NThmYzRlNTlhOTI4OWUyZTQ1MjYzNCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0 LmNvbT4KRGF0ZTogV2VkLCAyMyBBdWcgMjAxNyAxMzoyNzoxMyArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDgvNDNdIHNjdHA6IEF2b2lkIG91dC1vZi1ib3VuZHMgcmVhZHMgZnJvbSBhZGRyZXNzIHN0 b3JhZ2UKClsgVXBzdHJlYW0gY29tbWl0IGVlNmM4OGJiNzU0ZTNkMzYzZTU2OGRhNzgwODZhZGZl ZGI2OTI0NDcgXQoKaW5ldF9kaWFnX21zZ19zY3RweyxsfWFkZHJfZmlsbCgpIGFuZCBzY3RwX2dl dF9zY3RwX2luZm8oKSBjb3B5CnNpemVvZihzb2NrYWRkcl9zdG9yYWdlKSBieXRlcyB0byBmaWxs IGluIHNvY2thZGRyIHN0cnVjdHMgdXNlZAp0byBleHBvcnQgZGlhZ25vc3RpYyBpbmZvcm1hdGlv biB0byB1c2Vyc3BhY2UuCgpIb3dldmVyLCB0aGUgbWVtb3J5IGFsbG9jYXRlZCB0byBzdG9yZSBz b2NrYWRkciBpbmZvcm1hdGlvbiBpcwpzbWFsbGVyIHRoYW4gdGhhdCBhbmQgZGVwZW5kcyBvbiB0 aGUgYWRkcmVzcyBmYW1pbHksIHNvIHdlIGxlYWsKdXAgdG8gMTAwIHVuaW5pdGlhbGl6ZWQgYnl0 ZXMgdG8gdXNlcnNwYWNlLiBKdXN0IHVzZSB0aGUgc2l6ZSBvZgp0aGUgc291cmNlIHN0cnVjdHMg aW5zdGVhZCwgaW4gYWxsIHRoZSB0aHJlZSBjYXNlcyB0aGlzIGlzIHdoYXQKdXNlcnNwYWNlIGV4 cGVjdHMuIFplcm8gb3V0IHRoZSByZW1haW5pbmcgbWVtb3J5LgoKVW51c2VkIGJ5dGVzIChpLmUu IHdoZW4gSVB2NCBhZGRyZXNzZXMgYXJlIHVzZWQpIGluIHNvdXJjZQpzdHJ1Y3RzIHNjdHBfc29j a2FkZHJfZW50cnkgYW5kIHNjdHBfdHJhbnNwb3J0IGFyZSBhbHJlYWR5CmNsZWFyZWQgYnkgc2N0 cF9hZGRfYmluZF9hZGRyKCkgYW5kIHNjdHBfdHJhbnNwb3J0X25ldygpLApyZXNwZWN0aXZlbHku CgpOb3RpY2VkIHdoaWxlIHRlc3RpbmcgS0FTQU4tZW5hYmxlZCBrZXJuZWwgd2l0aCAnc3MnOgoK WyAyMzI2Ljg4NTI0M10gQlVHOiBLQVNBTjogc2xhYi1vdXQtb2YtYm91bmRzIGluIGluZXRfc2N0 cF9kaWFnX2ZpbGwrMHg0MmMvMHg2YzAgW3NjdHBfZGlhZ10gYXQgYWRkciBmZmZmODgxYmU4Nzc5 ODAwClsgMjMyNi44OTY4MDBdIFJlYWQgb2Ygc2l6ZSAxMjggYnkgdGFzayBzcy85NTI3ClsgMjMy Ni45MDE1NjRdIENQVTogMCBQSUQ6IDk1MjcgQ29tbTogc3MgTm90IHRhaW50ZWQgNC4xMS4wLTIy LmVsN2EueDg2XzY0ICMxClsgMjMyNi45MDkyMzZdIEhhcmR3YXJlIG5hbWU6IERlbGwgSW5jLiBQ b3dlckVkZ2UgUjczMC8wNzJUNkQsIEJJT1MgMi40LjMgMDEvMTcvMjAxNwpbIDIzMjYuOTE3NTg1 XSBDYWxsIFRyYWNlOgpbIDIzMjYuOTIwMzEyXSAgZHVtcF9zdGFjaysweDYzLzB4OGQKWyAyMzI2 LjkyNDAxNF0gIGthc2FuX29iamVjdF9lcnIrMHgyMS8weDcwClsgMjMyNi45MjgyOTVdICBrYXNh bl9yZXBvcnQrMHgyODgvMHg1NDAKWyAyMzI2LjkzMjM4MF0gID8gaW5ldF9zY3RwX2RpYWdfZmls bCsweDQyYy8weDZjMCBbc2N0cF9kaWFnXQpbIDIzMjYuOTM4NTAwXSAgPyBza2JfcHV0KzB4OGIv MHhkMApbIDIzMjYuOTQyMDk4XSAgPyBtZW1zZXQrMHgzMS8weDQwClsgMjMyNi45NDU1OTldICBj aGVja19tZW1vcnlfcmVnaW9uKzB4MTNjLzB4MWEwClsgMjMyNi45NTAzNjJdICBtZW1jcHkrMHgy My8weDUwClsgMjMyNi45NTM2NjldICBpbmV0X3NjdHBfZGlhZ19maWxsKzB4NDJjLzB4NmMwIFtz Y3RwX2RpYWddClsgMjMyNi45NTk1OTZdICA/IGluZXRfZGlhZ19tc2dfc2N0cGFzb2NfZmlsbCsw eDQ2MC8weDQ2MCBbc2N0cF9kaWFnXQpbIDIzMjYuOTY2NDk1XSAgPyBfX2xvY2tfc29jaysweDEw Mi8weDE1MApbIDIzMjYuOTcwNjcxXSAgPyBzb2NrX2RlZl93YWtldXArMHg2MC8weDYwClsgMjMy Ni45NzUwNDhdICA/IHJlbW92ZV93YWl0X3F1ZXVlKzB4YzAvMHhjMApbIDIzMjYuOTc5NjE5XSAg c2N0cF9kaWFnX2R1bXArMHg0NGEvMHg3NjAgW3NjdHBfZGlhZ10KWyAyMzI2Ljk4NTA2M10gID8g c2N0cF9lcF9kdW1wKzB4MjgwLzB4MjgwIFtzY3RwX2RpYWddClsgMjMyNi45OTA1MDRdICA/IG1l bXNldCsweDMxLzB4NDAKWyAyMzI2Ljk5NDAwN10gID8gbXV0ZXhfbG9jaysweDEyLzB4NDAKWyAy MzI2Ljk5NzkwMF0gIF9faW5ldF9kaWFnX2R1bXArMHg1Ny8weGIwIFtpbmV0X2RpYWddClsgMjMy Ny4wMDMzNDBdICA/IF9fc3lzX3NlbmRtc2crMHgxNTAvMHgxNTAKWyAyMzI3LjAwNzcxNV0gIGlu ZXRfZGlhZ19kdW1wKzB4NGQvMHg4MCBbaW5ldF9kaWFnXQpbIDIzMjcuMDEyOTc5XSAgbmV0bGlu a19kdW1wKzB4MWU2LzB4NDkwClsgMjMyNy4wMTcwNjRdICBfX25ldGxpbmtfZHVtcF9zdGFydCsw eDI4ZS8weDJjMApbIDIzMjcuMDIxOTI0XSAgaW5ldF9kaWFnX2hhbmRsZXJfY21kKzB4MTg5LzB4 MWEwIFtpbmV0X2RpYWddClsgMjMyNy4wMjgwNDVdICA/IGluZXRfZGlhZ19yY3ZfbXNnX2NvbXBh dCsweDFiMC8weDFiMCBbaW5ldF9kaWFnXQpbIDIzMjcuMDM0NjUxXSAgPyBpbmV0X2RpYWdfZHVt cF9jb21wYXQrMHgxOTAvMHgxOTAgW2luZXRfZGlhZ10KWyAyMzI3LjA0MDk2NV0gID8gX19uZXRs aW5rX2xvb2t1cCsweDFiOS8weDI2MApbIDIzMjcuMDQ1NjMxXSAgc29ja19kaWFnX3Jjdl9tc2cr MHgxOGIvMHgxZTAKWyAyMzI3LjA1MDE5OV0gIG5ldGxpbmtfcmN2X3NrYisweDE0Yi8weDE4MApb IDIzMjcuMDU0NTc0XSAgPyBzb2NrX2RpYWdfYmluZCsweDYwLzB4NjAKWyAyMzI3LjA1ODg1MF0g IHNvY2tfZGlhZ19yY3YrMHgyOC8weDQwClsgMjMyNy4wNjI4MzddICBuZXRsaW5rX3VuaWNhc3Qr MHgyZTcvMHgzYjAKWyAyMzI3LjA2NzIxMl0gID8gbmV0bGlua19hdHRhY2hza2IrMHgzMzAvMHgz MzAKWyAyMzI3LjA3MTk3NV0gID8ga2FzYW5fY2hlY2tfd3JpdGUrMHgxNC8weDIwClsgMjMyNy4w NzY1NDRdICBuZXRsaW5rX3NlbmRtc2crMHg1YmUvMHg3MzAKWyAyMzI3LjA4MDkxOF0gID8gbmV0 bGlua191bmljYXN0KzB4M2IwLzB4M2IwClsgMjMyNy4wODU0ODZdICA/IGthc2FuX2NoZWNrX3dy aXRlKzB4MTQvMHgyMApbIDIzMjcuMDkwMDU3XSAgPyBzZWxpbnV4X3NvY2tldF9zZW5kbXNnKzB4 MjQvMHgzMApbIDIzMjcuMDk1MTA5XSAgPyBuZXRsaW5rX3VuaWNhc3QrMHgzYjAvMHgzYjAKWyAy MzI3LjA5OTY3OF0gIHNvY2tfc2VuZG1zZysweDc0LzB4ODAKWyAyMzI3LjEwMzU2N10gIF9fX3N5 c19zZW5kbXNnKzB4NTIwLzB4NTMwClsgMjMyNy4xMDc4NDRdICA/IF9fZ2V0X2xvY2tlZF9wdGUr MHgxNzgvMHgyMDAKWyAyMzI3LjExMjUxMF0gID8gY29weV9tc2doZHJfZnJvbV91c2VyKzB4Mjcw LzB4MjcwClsgMjMyNy4xMTc2NjBdICA/IHZtX2luc2VydF9wYWdlKzB4MzYwLzB4MzYwClsgMjMy Ny4xMjIxMzNdICA/IHZtX2luc2VydF9wZm5fcHJvdCsweGI0LzB4MTUwClsgMjMyNy4xMjY4OTVd ICA/IHZtX2luc2VydF9wZm4rMHgzMi8weDQwClsgMjMyNy4xMzEwNzddICA/IHZ2YXJfZmF1bHQr MHg3MS8weGQwClsgMjMyNy4xMzQ5NjhdICA/IHNwZWNpYWxfbWFwcGluZ19mYXVsdCsweDY5LzB4 MTEwClsgMjMyNy4xNDAwMjJdICA/IF9fZG9fZmF1bHQrMHg0Mi8weDEyMApbIDIzMjcuMTQ0MDA4 XSAgPyBfX2hhbmRsZV9tbV9mYXVsdCsweDEwNjIvMHgxN2EwClsgMjMyNy4xNDg5NjVdICA/IF9f ZmdldF9saWdodCsweGE3LzB4YzAKWyAyMzI3LjE1MzA0OV0gIF9fc3lzX3NlbmRtc2crMHhjYi8w eDE1MApbIDIzMjcuMTU3MTMzXSAgPyBfX3N5c19zZW5kbXNnKzB4Y2IvMHgxNTAKWyAyMzI3LjE2 MTQwOV0gID8gU3lTX3NodXRkb3duKzB4MTQwLzB4MTQwClsgMjMyNy4xNjU2ODhdICA/IGV4aXRf dG9fdXNlcm1vZGVfbG9vcCsweGQwLzB4ZDAKWyAyMzI3LjE3MDY0Nl0gID8gX19kb19wYWdlX2Zh dWx0KzB4NTVkLzB4NjIwClsgMjMyNy4xNzUyMTZdICA/IF9fc3lzX3NlbmRtc2crMHgxNTAvMHgx NTAKWyAyMzI3LjE3OTU5MV0gIFN5U19zZW5kbXNnKzB4MTIvMHgyMApbIDIzMjcuMTgzMzg0XSAg ZG9fc3lzY2FsbF82NCsweGUzLzB4MjMwClsgMjMyNy4xODc0NzFdICBlbnRyeV9TWVNDQUxMNjRf c2xvd19wYXRoKzB4MjUvMHgyNQpbIDIzMjcuMTkyNjIyXSBSSVA6IDAwMzM6MHg3ZjQxZDE4ZmEz YjAKWyAyMzI3LjE5NjYwOF0gUlNQOiAwMDJiOjAwMDA3ZmZjM2I3MzEyMTggRUZMQUdTOiAwMDAw MDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyZQpbIDIzMjcuMjA1MDU1XSBSQVg6IGZmZmZm ZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmYzNiNzMxMzgwIFJDWDogMDAwMDdmNDFkMThmYTNiMApb IDIzMjcuMjEzMDE3XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwN2ZmYzNiNzMxMzQw IFJESTogMDAwMDAwMDAwMDAwMDAwMwpbIDIzMjcuMjIwOTc4XSBSQlA6IDAwMDAwMDAwMDAwMDAw MDIgUjA4OiAwMDAwMDAwMDAwMDAwMDA0IFIwOTogMDAwMDAwMDAwMDAwMDA0MApbIDIzMjcuMjI4 OTM5XSBSMTA6IDAwMDA3ZmZjM2I3MzBmMzAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAw MDAwMDAwMDAwMDAwMwpbIDIzMjcuMjM2OTAxXSBSMTM6IDAwMDA3ZmZjM2I3MzEzNDAgUjE0OiAw MDAwN2ZmYzNiNzMxM2QwIFIxNTogMDAwMDAwMDAwMDAwMDA4NApbIDIzMjcuMjQ0ODY1XSBPYmpl Y3QgYXQgZmZmZjg4MWJlODc3OTdlMCwgaW4gY2FjaGUga21hbGxvYy02NCBzaXplOiA2NApbIDIz MjcuMjUxOTUzXSBBbGxvY2F0ZWQ6ClsgMjMyNy4yNTQ1ODFdIFBJRCA9IDk0ODQKWyAyMzI3LjI1 NzIxNV0gIHNhdmVfc3RhY2tfdHJhY2UrMHgxYi8weDIwClsgMjMyNy4yNjE0ODVdICBzYXZlX3N0 YWNrKzB4NDYvMHhkMApbIDIzMjcuMjY1MTc5XSAga2FzYW5fa21hbGxvYysweGFkLzB4ZTAKWyAy MzI3LjI2OTE2NV0gIGttZW1fY2FjaGVfYWxsb2NfdHJhY2UrMHhlNi8weDFkMApbIDIzMjcuMjc0 MTM4XSAgc2N0cF9hZGRfYmluZF9hZGRyKzB4NTgvMHgxODAgW3NjdHBdClsgMjMyNy4yNzk0MDBd ICBzY3RwX2RvX2JpbmQrMHgyMDgvMHgzMTAgW3NjdHBdClsgMjMyNy4yODQxNzZdICBzY3RwX2Jp bmQrMHg2MS8weGEwIFtzY3RwXQpbIDIzMjcuMjg4NDU1XSAgaW5ldF9iaW5kKzB4NWYvMHgzYTAK WyAyMzI3LjI5MjE1MV0gIFNZU0NfYmluZCsweDFhNC8weDFlMApbIDIzMjcuMjk1OTQ0XSAgU3lT X2JpbmQrMHhlLzB4MTAKWyAyMzI3LjI5OTM0OV0gIGRvX3N5c2NhbGxfNjQrMHhlMy8weDIzMApb IDIzMjcuMzAzNDMzXSAgcmV0dXJuX2Zyb21fU1lTQ0FMTF82NCsweDAvMHg2YQpbIDIzMjcuMzA4 MTk0XSBGcmVlZDoKWyAyMzI3LjMxMDQzNF0gUElEID0gNDEzMQpbIDIzMjcuMzEzMDY1XSAgc2F2 ZV9zdGFja190cmFjZSsweDFiLzB4MjAKWyAyMzI3LjMxNzM0NF0gIHNhdmVfc3RhY2srMHg0Ni8w eGQwClsgMjMyNy4zMjEwNDBdICBrYXNhbl9zbGFiX2ZyZWUrMHg3My8weGMwClsgMjMyNy4zMjUy MjBdICBrZnJlZSsweDk2LzB4MWEwClsgMjMyNy4zMjg1MzBdICBkeW5hbWljX2tvYmpfcmVsZWFz ZSsweDE1LzB4NDAKWyAyMzI3LjMzMzE5NV0gIGtvYmplY3RfcmVsZWFzZSsweDk5LzB4MWUwClsg MjMyNy4zMzc0NzJdICBrb2JqZWN0X3B1dCsweDM4LzB4NzAKWyAyMzI3LjM0MTI2Nl0gIGZyZWVf bm90ZXNfYXR0cnMrMHg2Ni8weDgwClsgMjMyNy4zNDU1NDVdICBtb2Rfc3lzZnNfdGVhcmRvd24r MHgxYTUvMHgyNzAKWyAyMzI3LjM1MDIxMV0gIGZyZWVfbW9kdWxlKzB4MjAvMHgyYTAKWyAyMzI3 LjM1NDA5OV0gIFN5U19kZWxldGVfbW9kdWxlKzB4MmNiLzB4MmYwClsgMjMyNy4zNTg2NjddICBk b19zeXNjYWxsXzY0KzB4ZTMvMHgyMzAKWyAyMzI3LjM2Mjc1MF0gIHJldHVybl9mcm9tX1NZU0NB TExfNjQrMHgwLzB4NmEKWyAyMzI3LjM2NzUxMF0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVn Z3kgYWRkcmVzczoKWyAyMzI3LjM3Mjg1NV0gIGZmZmY4ODFiZTg3Nzk3MDA6IGZjIGZjIGZjIGZj IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZjIGZjIGZjIGZjClsgMjMyNy4zODA5MTRdICBmZmZm ODgxYmU4Nzc5NzgwOiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYyBmYyBmYyBmYyAwMCAwMCAw MCAwMApbIDIzMjcuMzg4OTcyXSA+ZmZmZjg4MWJlODc3OTgwMDogMDAgMDAgMDAgMDAgZmMgZmMg ZmMgZmMgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAyMzI3LjM5NzAzMV0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KWyAyMzI3LjQwMTc5Ml0gIGZmZmY4ODFiZTg3Nzk4ODA6IGZj IGZjIGZjIGZjIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZjIGZjIGZjIGZjClsgMjMyNy40MDk4 NTBdICBmZmZmODgxYmU4Nzc5OTAwOiAwMCAwMCAwMCAwMCAwMCAwNCBmYyBmYyBmYyBmYyBmYyBm YyAwMCAwMCAwMCAwMApbIDIzMjcuNDE3OTA3XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KClRoaXMgZml4ZXMgQ1ZFLTIw MTctNzU1OC4KClJlZmVyZW5jZXM6IGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9MTQ4MDI2NgpGaXhlczogOGY4NDBlNDdmMTkwICgic2N0cDogYWRkIHRoZSBzY3Rw X2RpYWcuYyBmaWxlIikKQ2M6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KQ2M6IFZs YWQgWWFzZXZpY2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkNjOiBOZWlsIEhvcm1hbiA8bmhvcm1h bkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJyaXZpbyA8c2JyaXZpb0By ZWRoYXQuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVp dG5lckBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvc2N0cC9zY3RwX2RpYWcuYyB8IDcgKysrKystLQogbmV0L3NjdHAvc29ja2V0LmMg ICAgfCAzICstLQogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc2N0cF9kaWFnLmMgYi9uZXQvc2N0cC9zY3RwX2Rp YWcuYwppbmRleCA5YTY0NzIxNGE5MWUuLmU5OTUxOGU3OWI1MiAxMDA2NDQKLS0tIGEvbmV0L3Nj dHAvc2N0cF9kaWFnLmMKKysrIGIvbmV0L3NjdHAvc2N0cF9kaWFnLmMKQEAgLTcwLDcgKzcwLDgg QEAgc3RhdGljIGludCBpbmV0X2RpYWdfbXNnX3NjdHBsYWRkcnNfZmlsbChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCiAJaW5mbyA9IG5sYV9kYXRhKGF0dHIpOwogCWxpc3RfZm9yX2VhY2hfZW50cnlf cmN1KGxhZGRyLCBhZGRyZXNzX2xpc3QsIGxpc3QpIHsKLQkJbWVtY3B5KGluZm8sICZsYWRkci0+ YSwgYWRkcmxlbik7CisJCW1lbWNweShpbmZvLCAmbGFkZHItPmEsIHNpemVvZihsYWRkci0+YSkp OworCQltZW1zZXQoaW5mbyArIHNpemVvZihsYWRkci0+YSksIDAsIGFkZHJsZW4gLSBzaXplb2Yo bGFkZHItPmEpKTsKIAkJaW5mbyArPSBhZGRybGVuOwogCX0KIApAQCAtOTMsNyArOTQsOSBAQCBz dGF0aWMgaW50IGluZXRfZGlhZ19tc2dfc2N0cGFkZHJzX2ZpbGwoc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAlpbmZvID0gbmxhX2RhdGEoYXR0cik7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShmcm9tLCAm YXNvYy0+cGVlci50cmFuc3BvcnRfYWRkcl9saXN0LAogCQkJICAgIHRyYW5zcG9ydHMpIHsKLQkJ bWVtY3B5KGluZm8sICZmcm9tLT5pcGFkZHIsIGFkZHJsZW4pOworCQltZW1jcHkoaW5mbywgJmZy b20tPmlwYWRkciwgc2l6ZW9mKGZyb20tPmlwYWRkcikpOworCQltZW1zZXQoaW5mbyArIHNpemVv Zihmcm9tLT5pcGFkZHIpLCAwLAorCQkgICAgICAgYWRkcmxlbiAtIHNpemVvZihmcm9tLT5pcGFk ZHIpKTsKIAkJaW5mbyArPSBhZGRybGVuOwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29j a2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCAzYTgzMThlNTE4ZjEuLjUxNTMyYTFkYThj NiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMK QEAgLTQ1MzgsOCArNDUzOCw3IEBAIGludCBzY3RwX2dldF9zY3RwX2luZm8oc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKIAlpbmZvLT5zY3RwaV9pY3RybGNo dW5rcyA9IGFzb2MtPnN0YXRzLmljdHJsY2h1bmtzOwogCiAJcHJpbSA9IGFzb2MtPnBlZXIucHJp bWFyeV9wYXRoOwotCW1lbWNweSgmaW5mby0+c2N0cGlfcF9hZGRyZXNzLCAmcHJpbS0+aXBhZGRy LAotCSAgICAgICBzaXplb2Yoc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UpKTsKKwltZW1jcHkoJmlu Zm8tPnNjdHBpX3BfYWRkcmVzcywgJnByaW0tPmlwYWRkciwgc2l6ZW9mKHByaW0tPmlwYWRkcikp OwogCWluZm8tPnNjdHBpX3Bfc3RhdGUgPSBwcmltLT5zdGF0ZTsKIAlpbmZvLT5zY3RwaV9wX2N3 bmQgPSBwcmltLT5jd25kOwogCWluZm8tPnNjdHBpX3Bfc3J0dCA9IHByaW0tPnNydHQ7Ci0tIAoy LjEzLjUKCgpGcm9tIDU2MTJjNzU5N2I2YWQzYjUwOGRlYTk2OTY2ZjkyZTdkZTUyNzFmZmYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+ CkRhdGU6IFdlZCwgMjMgQXVnIDIwMTcgMTU6NTk6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5 LzQzXSBxbGdlOiBhdm9pZCBtZW1jcHkgYnVmZmVyIG92ZXJmbG93CgpbIFVwc3RyZWFtIGNvbW1p dCBlNThmOTU4MzFlNzQ2OGQyNWViNmU0MWYyMzQ4NDJlY2ZlNmYwMTRmIF0KCmdjYy04LjAuMCAo c25hcHNob3QpIHBvaW50cyBvdXQgdGhhdCB3ZSBjb3B5IGEgdmFyaWFibGUtbGVuZ3RoIHN0cmlu ZwppbnRvIGEgZml4ZWQgbGVuZ3RoIGZpZWxkIHVzaW5nIG1lbWNweSgpIHdpdGggdGhlIGRlc3Rp bmF0aW9uIGxlbmd0aCwKYW5kIHRoYXQgZW5kcyB1cCBjb3B5aW5nIHdoYXRldmVyIGZvbGxvd3Mg dGhlIHN0cmluZzoKCiAgICBpbmxpbmVkIGZyb20gJ3FsX2NvcmVfZHVtcCcgYXQgZHJpdmVycy9u ZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxnZV9kYmcuYzoxMTA2OjI6CmRyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfZGJnLmM6NzA4OjI6IGVycm9yOiAnbWVtY3B5JyByZWFk aW5nIDE1IGJ5dGVzIGZyb20gYSByZWdpb24gb2Ygc2l6ZSAxNCBbLVdlcnJvcj1zdHJpbmdvcC1v dmVyZmxvdz1dCiAgbWVtY3B5KHNlZ19oZHItPmRlc2NyaXB0aW9uLCBkZXNjLCAoc2l6ZW9mKHNl Z19oZHItPmRlc2NyaXB0aW9uKSkgLSAxKTsKCkNoYW5naW5nIGl0IHRvIHVzZSBzdHJuY3B5KCkg d2lsbCBpbnN0ZWFkIHplcm8tcGFkIHRoZSBkZXN0aW5hdGlvbiwKd2hpY2ggc2VlbXMgdG8gYmUg dGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGhlcmUuCgpUaGUgYnVnIGlzIHByb2JhYmx5IGhhcm1sZXNz LCBidXQgaXQgc2VlbXMgbGlrZSBhIGdvb2QgaWRlYSB0byBhZGRyZXNzCml0IGluIHN0YWJsZSBr ZXJuZWxzIGFzIHdlbGwsIGlmIG9ubHkgZm9yIHRoZSBwdXJwb3NlIG9mIGJ1aWxkaW5nIHdpdGgK Z2NjLTggd2l0aG91dCB3YXJuaW5ncy4KCkZpeGVzOiBhNjFmODAyNjEzMDYgKCJxbGdlOiBBZGQg ZXRodG9vbCByZWdpc3RlciBkdW1wIGZ1bmN0aW9uLiIpClNpZ25lZC1vZmYtYnk6IEFybmQgQmVy Z21hbm4gPGFybmRAYXJuZGIuZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWxnZS9x bGdlX2RiZy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FsZ2UvcWxn ZV9kYmcuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfZGJnLmMKaW5k ZXggMjhlYTBhZjg5YWVmLi5lMzIyM2YyZmUyZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xbGdlL3FsZ2VfZGJnLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv cWxvZ2ljL3FsZ2UvcWxnZV9kYmcuYwpAQCAtNzI0LDcgKzcyNCw3IEBAIHN0YXRpYyB2b2lkIHFs X2J1aWxkX2NvcmVkdW1wX3NlZ19oZWFkZXIoCiAJc2VnX2hkci0+Y29va2llID0gTVBJX0NPUkVE VU1QX0NPT0tJRTsKIAlzZWdfaGRyLT5zZWdOdW0gPSBzZWdfbnVtYmVyOwogCXNlZ19oZHItPnNl Z1NpemUgPSBzZWdfc2l6ZTsKLQltZW1jcHkoc2VnX2hkci0+ZGVzY3JpcHRpb24sIGRlc2MsIChz aXplb2Yoc2VnX2hkci0+ZGVzY3JpcHRpb24pKSAtIDEpOworCXN0cm5jcHkoc2VnX2hkci0+ZGVz Y3JpcHRpb24sIGRlc2MsIChzaXplb2Yoc2VnX2hkci0+ZGVzY3JpcHRpb24pKSAtIDEpOwogfQog CiAvKgotLSAKMi4xMy41CgoKRnJvbSBkZmM3Y2JjYTllNWM1NzBjMjcyNzRhZTgyZjg5MzgyMGZm ODQzZWM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCb2IgUGV0ZXJzb24gPHJwZXRl cnNvQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwgMjMgQXVnIDIwMTcgMTA6NDM6MDIgLTA0MDAKU3Vi amVjdDogW1BBVENIIDEwLzQzXSB0aXBjOiBGaXggdGlwY19za19yZWluaXQgaGFuZGxpbmcgb2Yg LUVBR0FJTgoKWyBVcHN0cmVhbSBjb21taXQgNmM3ZTk4M2IyMjBmODllMDMyODZkYzcwYTQxYzdl ZjNhOGI0MDlkZiBdCgpJbiA5ZGJiZmIwYWI2NjgwYzZhODU2MDkwNDEwMTE0ODRlNjY1OGU3ZDNj IGZ1bmN0aW9uIHRpcGNfc2tfcmVpbml0CmhhZCBhZGRpdGlvbmFsIGxvZ2ljIGFkZGVkIHRvIGxv b3AgaW4gdGhlIGV2ZW50IHRoYXQgZnVuY3Rpb24Kcmhhc2h0YWJsZV93YWxrX25leHQoKSByZXR1 cm5lZCAtRUFHQUlOLiBObyB3b3JyaWVzLgoKSG93ZXZlciwgaWYgcmhhc2h0YWJsZV93YWxrX3N0 YXJ0IHJldHVybnMgLUVBR0FJTiwgaXQgZG9lcyAiY29udGludWUiLAphbmQgdGhlcmVmb3JlIHNr aXBzIHRoZSBjYWxsIHRvIHJoYXNodGFibGVfd2Fsa19zdG9wKCkuIFRoYXQgaGFzCnRoZSBlZmZl Y3Qgb2YgY2FsbGluZyByY3VfcmVhZF9sb2NrKCkgd2l0aG91dCBpdHMgcGFpcmVkIGNhbGwgdG8K cmN1X3JlYWRfdW5sb2NrKCkuIFNpbmNlIHJjdV9yZWFkX2xvY2soKSBtYXkgYmUgbmVzdGVkLCB0 aGUgcHJvYmxlbQptYXkgbm90IGJlIGFwcGFyZW50IGZvciBhIHdoaWxlLCBlc3BlY2lhbGx5IHNp bmNlIHJlc2l6ZSBldmVudHMgbWF5CmJlIHJhcmUuIEJ1dCB0aGUgY29tbWVudHMgdG8gcmhhc2h0 YWJsZV93YWxrX3N0YXJ0KCkgc3RhdGU6CgogKiAuLi5Ob3RlIHRoYXQgd2UgdGFrZSB0aGUgUkNV IGxvY2sgaW4gYWxsCiAqIGNhc2VzIGluY2x1ZGluZyB3aGVuIHdlIHJldHVybiBhbiBlcnJvci4g IFNvIHlvdSBtdXN0IGFsd2F5cyBjYWxsCiAqIHJoYXNodGFibGVfd2Fsa19zdG9wIHRvIGNsZWFu IHVwLgoKVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgY29udGludWUgd2l0aCBhIGdvdG8gYW5kIGxh YmVsIHRvIGVuc3VyZSBhCm1hdGNoaW5nIGNhbGwgdG8gcmhhc2h0YWJsZV93YWxrX3N0b3AoKS4K ClNpZ25lZC1vZmYtYnk6IEJvYiBQZXRlcnNvbiA8cnBldGVyc29AcmVkaGF0LmNvbT4KQWNrZWQt Ynk6IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3Nv Y2tldC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2Nr ZXQuYwppbmRleCAxYjkyYjcyZTgxMmYuLmEwZjUwMjc4OTAxYiAxMDA2NDQKLS0tIGEvbmV0L3Rp cGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTIyNTUsOCArMjI1NSw4IEBA IHZvaWQgdGlwY19za19yZWluaXQoc3RydWN0IG5ldCAqbmV0KQogCiAJZG8gewogCQl0c2sgPSBF UlJfUFRSKHJoYXNodGFibGVfd2Fsa19zdGFydCgmaXRlcikpOwotCQlpZiAodHNrKQotCQkJY29u dGludWU7CisJCWlmIChJU19FUlIodHNrKSkKKwkJCWdvdG8gd2Fsa19zdG9wOwogCiAJCXdoaWxl ICgodHNrID0gcmhhc2h0YWJsZV93YWxrX25leHQoJml0ZXIpKSAmJiAhSVNfRVJSKHRzaykpIHsK IAkJCXNwaW5fbG9ja19iaCgmdHNrLT5zay5za19sb2NrLnNsb2NrKTsKQEAgLTIyNjUsNyArMjI2 NSw3IEBAIHZvaWQgdGlwY19za19yZWluaXQoc3RydWN0IG5ldCAqbmV0KQogCQkJbXNnX3NldF9v cmlnbm9kZShtc2csIHRuLT5vd25fYWRkcik7CiAJCQlzcGluX3VubG9ja19iaCgmdHNrLT5zay5z a19sb2NrLnNsb2NrKTsKIAkJfQotCit3YWxrX3N0b3A6CiAJCXJoYXNodGFibGVfd2Fsa19zdG9w KCZpdGVyKTsKIAl9IHdoaWxlICh0c2sgPT0gRVJSX1BUUigtRUFHQUlOKSk7CiB9Ci0tIAoyLjEz LjUKCgpGcm9tIDlmMjYxNDQxMDM2ODI4YzZiNTQ5NjZlMTFlNzFkYjZkOTczNWY2ZGYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21h aWwuY29tPgpEYXRlOiBUaHUsIDI0IEF1ZyAyMDE3IDE1OjIwOjQxIC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxMS80M10gbmV0OiBzeXN0ZW1wb3J0OiBCZSBkcm9wIG1vbml0b3IgZnJpZW5kbHkKClsg VXBzdHJlYW0gY29tbWl0IGM0NTE4MmViOTY3YWYxMWU5NDgyMTY4YmU1YmU0MWFhMjJlNWQzMjEg XQoKVXRpbGl6ZSBkZXZfY29uc3VtZV9za2JfYW55KGNiLT5za2IpIGluIGJjbV9zeXNwb3J0X2Zy ZWVfY2IoKSB3aGljaCBpcwp1c2VkIHdoZW4gYSBUWCBwYWNrZXQgaXMgY29tcGxldGVkLCBhcyB3 ZWxsIGFzIHdoZW4gdGhlIFJYIHJpbmcgaXMKY2xlYW5lZCBvbiBzaHV0ZG93bi4gTm9uZSBvZiB0 aGVzZSB0d28gY2FzZXMgYXJlIHBhY2tldCBkcm9wcywgc28gYmUKZHJvcCBtb25pdG9yIGZyaWVu ZGx5LgoKU3VnZ2VzdGVkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdtYWlsLmNvbT4KRml4 ZXM6IDgwMTA1YmVmZGI0YiAoIm5ldDogc3lzdGVtcG9ydDogYWRkIEJyb2FkY29tIFNZU1RFTVBP UlQgRXRoZXJuZXQgTUFDIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkg PGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNt c3lzcG9ydC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lz cG9ydC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCmluZGV4 IDUyNzQ1MDE0MjhlNC4uYTJjODA4NmMxOWNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYmNtc3lzcG9ydC5jCkBAIC01OTMsNyArNTkzLDcgQEAgc3RhdGljIGludCBiY21fc3lz cG9ydF9zZXRfY29hbGVzY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAogc3RhdGljIHZvaWQg YmNtX3N5c3BvcnRfZnJlZV9jYihzdHJ1Y3QgYmNtX3N5c3BvcnRfY2IgKmNiKQogewotCWRldl9r ZnJlZV9za2JfYW55KGNiLT5za2IpOworCWRldl9jb25zdW1lX3NrYl9hbnkoY2ItPnNrYik7CiAJ Y2ItPnNrYiA9IE5VTEw7CiAJZG1hX3VubWFwX2FkZHJfc2V0KGNiLCBkbWFfYWRkciwgMCk7CiB9 Ci0tIAoyLjEzLjUKCgpGcm9tIGMzYmExNzFlNDBkZWEzYzk4NjUxMjk4ZmFmZDliMjIzNDc5Nzkz NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDI0IEF1ZyAyMDE3IDE1OjU2OjI5IC0wNzAwClN1 YmplY3Q6IFtQQVRDSCAxMi80M10gbmV0OiBiY21nZW5ldDogQmUgZHJvcCBtb25pdG9yIGZyaWVu ZGx5CgpbIFVwc3RyZWFtIGNvbW1pdCBkNGZlYzg1NTkwNWZhOGJkNWZiMWM1OWY3M2FkMmQ3NGE5 NDQ4NzZhIF0KClRoZXJlIGFyZSAzIHNwb3RzIHdoZXJlIHdlIGNhbGwgZGV2X2tmcmVlX3NrYigp IGJ1dCB3ZSBhcmUgYWN0dWFsbHkKanVzdCBkb2luZyBhIG5vcm1hbCBTS0IgY29uc3VtcHRpb246 IF9fYmNtZ2VuZXRfdHhfcmVjbGFpbSgpIGZvciBub3JtYWwKVFggcmVjbGFtYXRpb24sIGJjbWdl bmV0X2FsbG9jX3J4X2J1ZmZlcnMoKSBkdXJpbmcgdGhlIGluaXRpYWwgUlggcmluZwpzZXR1cCBh bmQgYmNtZ2VuZXRfZnJlZV9yeF9idWZmZXJzKCkgZHVyaW5nIFJYIHJpbmcgY2xlYW51cC4KCkZp eGVzOiBkNjcwN2JlYzU5ODYgKCJuZXQ6IGJjbWdlbmV0OiByZXdyaXRlIGJjbWdlbmV0X3J4X3Jl ZmlsbCgpIikKRml4ZXM6IGY0OGJlZDE2YTc1NiAoIm5ldDogYmNtZ2VuZXQ6IEZyZWUgc2tiIGFm dGVyIGxhc3QgVHggZnJhZyIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFp bmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNt Z2VuZXQuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5l dC9iY21nZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2Vu ZXQuYwppbmRleCBhMjA1YTlmZjllMTcuLmNjYjMyNWNmMDNiNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vZ2VuZXQvYmNtZ2VuZXQuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCkBAIC0xMjAzLDcgKzEyMDMsNyBA QCBzdGF0aWMgc3RydWN0IGVuZXRfY2IgKmJjbWdlbmV0X2dldF90eGNiKHN0cnVjdCBiY21nZW5l dF9wcml2ICpwcml2LAogLyogU2ltcGxlIGhlbHBlciB0byBmcmVlIGEgY29udHJvbCBibG9jaydz IHJlc291cmNlcyAqLwogc3RhdGljIHZvaWQgYmNtZ2VuZXRfZnJlZV9jYihzdHJ1Y3QgZW5ldF9j YiAqY2IpCiB7Ci0JZGV2X2tmcmVlX3NrYl9hbnkoY2ItPnNrYik7CisJZGV2X2NvbnN1bWVfc2ti X2FueShjYi0+c2tiKTsKIAljYi0+c2tiID0gTlVMTDsKIAlkbWFfdW5tYXBfYWRkcl9zZXQoY2Is IGRtYV9hZGRyLCAwKTsKIH0KQEAgLTE4NjgsNyArMTg2OCw3IEBAIHN0YXRpYyBpbnQgYmNtZ2Vu ZXRfYWxsb2NfcnhfYnVmZmVycyhzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiwKIAkJY2IgPSBy aW5nLT5jYnMgKyBpOwogCQlza2IgPSBiY21nZW5ldF9yeF9yZWZpbGwocHJpdiwgY2IpOwogCQlp ZiAoc2tiKQotCQkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwkJCWRldl9jb25zdW1lX3NrYl9h bnkoc2tiKTsKIAkJaWYgKCFjYi0+c2tiKQogCQkJcmV0dXJuIC1FTk9NRU07CiAJfQotLSAKMi4x My41CgoKRnJvbSBiYjY0MTlkOGMxOTNlNTZjYTJjMTZlNjkxMjFkNWUxMDQxMzFkNzRmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAyNCBBdWcgMjAxNyAxNjowMToxMyAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMTMvNDNdIG5ldDogc3lzdGVtcG9ydDogRnJlZSBETUEgY29oZXJlbnQgZGVzY3JpcHRv cnMgb24KIGVycm9ycwoKWyBVcHN0cmVhbSBjb21taXQgYzIwNjJlZTNkOTYxNTgyODEwOWZmZTgw ODlmYmY2OWJlZDM5NGQwNSBdCgpJbiBjYXNlIGJjbV9zeXNwb3J0X2luaXRfdHhfcmluZygpIGlz IG5vdCBhYmxlIHRvIGFsbG9jYXRlIHJpbmctPmNicywgd2UKd291bGQgcmV0dXJuIHdpdGggYW4g ZXJyb3IsIGFuZCBjYWxsIGJjbV9zeXNwb3J0X2ZpbmlfdHhfcmluZygpIGFuZCBpdAp3b3VsZCBz ZWUgdGhhdCByaW5nLT5jYnMgaXMgTlVMTCBhbmQgZG8gbm90aGluZy4gVGhpcyB3b3VsZCBsZWFr IHRoZQpjb2hlcmVudCBETUEgZGVzY3JpcHRvciBhcmVhLCBzbyB3ZSBuZWVkIHRvIGZyZWUgaXQg b24gZXJyb3IgYmVmb3JlCnJldHVybmluZy4KClJlcG9ydGVkLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdtYWlsLmNvbT4KRml4ZXM6IDgwMTA1YmVmZGI0YiAoIm5ldDogc3lzdGVtcG9ydDog YWRkIEJyb2FkY29tIFNZU1RFTVBPUlQgRXRoZXJuZXQgTUFDIGRyaXZlciIpClNpZ25lZC1vZmYt Ynk6IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L2JjbXN5c3BvcnQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbXN5c3BvcnQu YwppbmRleCBhMmM4MDg2YzE5Y2EuLmYzMjhiM2Q4NmMxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL2JjbXN5c3BvcnQuYwpAQCAtMTM0Miw2ICsxMzQyLDggQEAgc3RhdGljIGlu dCBiY21fc3lzcG9ydF9pbml0X3R4X3Jpbmcoc3RydWN0IGJjbV9zeXNwb3J0X3ByaXYgKnByaXYs CiAKIAlyaW5nLT5jYnMgPSBrY2FsbG9jKHNpemUsIHNpemVvZihzdHJ1Y3QgYmNtX3N5c3BvcnRf Y2IpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXJpbmctPmNicykgeworCQlkbWFfZnJlZV9jb2hlcmVu dChrZGV2LCBzaXplb2Yoc3RydWN0IGRtYV9kZXNjKSwKKwkJCQkgIHJpbmctPmRlc2NfY3B1LCBy aW5nLT5kZXNjX2RtYSk7CiAJCW5ldGlmX2Vycihwcml2LCBodywgcHJpdi0+bmV0ZGV2LCAiQ0Ig YWxsb2NhdGlvbiBmYWlsZWRcbiIpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0tIAoyLjEzLjUK CgpGcm9tIGMzMjIxMmMzOGJkM2E5NTY4NmQ4OTJkOTg3ZDRmZGI4YzBhYjUzMzYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IHN0ZXBoZW4gaGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtw bHVtYmVyLm9yZz4KRGF0ZTogVGh1LCAyNCBBdWcgMjAxNyAxNjo0OToxNiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMTQvNDNdIG5ldHZzYzogZml4IGRlYWRsb2NrIGJldHdlbiBsaW5rIHN0YXR1cyBh bmQgcmVtb3ZhbAoKWyBVcHN0cmVhbSBjb21taXQgOWI0ZTk0NmNlMTRlMjBkN2FkZGJmYjdkOTEz OWU2MDRmOWZkYTEwNyBdCgpUaGVyZSBpcyBhIGRlYWRsb2NrIHBvc3NpYmxlIHdoZW4gY2FuY2Vs aW5nIHRoZSBsaW5rIHN0YXR1cwpkZWxheWVkIHdvcmsgcXVldWUuIFRoZSByZW1vdmFsIHByb2Nl c3MgaXMgcnVuIHdpdGggUlROTCBoZWxkLAphbmQgdGhlIGxpbmsgc3RhdHVzIGNhbGxiYWNrIGlz IGFjcXVyaW5nIFJUTkwuCgpSZXNvbHZlIHRoZSBpc3N1ZSBieSB1c2luZyB0cnlsb2NrIGFuZCBy ZXNjaGVkdWxpbmcuCklmIGNhbmNlbCBpcyBpbiBwcm9jZXNzLCB0aGF0IGJsb2NrIGl0IGZyb20g aGFwcGVuaW5nLgoKRml4ZXM6IDEyMmE1ZjY0MTBmNCAoInN0YWdpbmc6IGh2OiB1c2UgZGVsYXll ZF93b3JrIGZvciBuZXR2c2Nfc2VuZF9nYXJwKCkiKQpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIEhl bW1pbmdlciA8c3RoZW1taW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2h5cGVydi9uZXR2 c2NfZHJ2LmMgfCA3ICsrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5j IGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwppbmRleCA2NDNjNTM5YTA4YmEuLjM5 MjkzNjM4ZDE4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwor KysgYi9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCkBAIC0xMjcwLDcgKzEyNzAsMTIg QEAgc3RhdGljIHZvaWQgbmV0dnNjX2xpbmtfY2hhbmdlKHN0cnVjdCB3b3JrX3N0cnVjdCAqdykK IAlib29sIG5vdGlmeSA9IGZhbHNlLCByZXNjaGVkdWxlID0gZmFsc2U7CiAJdW5zaWduZWQgbG9u ZyBmbGFncywgbmV4dF9yZWNvbmZpZywgZGVsYXk7CiAKLQlydG5sX2xvY2soKTsKKwkvKiBpZiBj aGFuZ2VzIGFyZSBoYXBwZW5pbmcsIGNvbWViYWNrIGxhdGVyICovCisJaWYgKCFydG5sX3RyeWxv Y2soKSkgeworCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJm5kZXZfY3R4LT5kd29yaywgTElOS0NI QU5HRV9JTlQpOworCQlyZXR1cm47CisJfQorCiAJbmV0X2RldmljZSA9IHJ0bmxfZGVyZWZlcmVu Y2UobmRldl9jdHgtPm52ZGV2KTsKIAlpZiAoIW5ldF9kZXZpY2UpCiAJCWdvdG8gb3V0X3VubG9j azsKLS0gCjIuMTMuNQoKCkZyb20gMGNhZGMyZTJiNDRmYzc1NDNhNzgzM2FiMjg2OTUxY2JkYjIz N2EyZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUBy ZWRoYXQuY29tPgpEYXRlOiBGcmksIDI1IEF1ZyAyMDE3IDE0OjMxOjAxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAxNS80M10gdWRwNjogc2V0IHJ4X2RzdF9jb29raWUgb24gcnhfZHN0IHVwZGF0ZXMK ClsgVXBzdHJlYW0gY29tbWl0IDY0ZjBmNWQxOGE0N2M3MDNjODU1NzYzNzVjYzAxMGU4M2RhYzZh NDggXQoKQ3VycmVudGx5LCBpbiB0aGUgdWRwNiBjb2RlLCB0aGUgZHN0IGNvb2tpZSBpcyBub3Qg aW5pdGlhbGl6ZWQvdXBkYXRlZApjb25jdXJyZW50bHkgd2l0aCB0aGUgUlggZHN0IHVzZWQgYnkg ZWFybHkgZGVtdXguCgpBcyBhIHJlc3VsdCwgdGhlIGRzdF9jaGVjaygpIGluIHRoZSBlYXJseV9k ZW11eCBwYXRoIGFsd2F5cyBmYWlscywKdGhlIHJ4IGRzdCBjYWNoZSBpcyBhbHdheXMgaW52YWxp ZGF0ZWQsIGFuZCB3ZSBjYW4ndCByZWFsbHkKbGV2ZXJhZ2Ugc2lnbmlmaWNhbnQgZ2FpbiBmcm9t IHRoZSBkZW11eCBsb29rdXAuCgpGaXggaXQgYWRkaW5nIHVkcDYgc3BlY2lmaWMgdmFyaWFudCBv ZiBza19yeF9kc3Rfc2V0KCkgYW5kIHVzZSBpdAp0byBzZXQgdGhlIGRzdCBjb29raWUgd2hlbiB0 aGUgZHN0IGVudHJ5IGlzIHJlYWxseSBjaGFuZ2VkLgoKVGhlIGlzc3VlIGlzIHRoZXJlIHNpbmNl IHRoZSBpbnRyb2R1Y3Rpb24gb2YgZWFybHkgZGVtdXggZm9yIGlwdjYuCgpGaXhlczogNTQyNTA3 N2Q3M2UwICgibmV0OiBpcHY2OiBBZGQgZWFybHkgZGVtdXggaGFuZGxlciBmb3IgVURQIHVuaWNh c3QiKQpBY2tlZC1ieTogSGFubmVzIEZyZWRlcmljIFNvd2EgPGhhbm5lc0BzdHJlc3NpbmR1a3Rp b24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBp bmNsdWRlL25ldC91ZHAuaCB8ICAyICstCiBuZXQvaXB2NC91ZHAuYyAgICB8ICAzICsrLQogbmV0 L2lwdjYvdWRwLmMgICAgfCAxMSArKysrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3VkcC5o IGIvaW5jbHVkZS9uZXQvdWRwLmgKaW5kZXggMTkzMzQ0MmNmMWE2Li5hMWJjM2U3OTM0ZDYgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3VkcC5oCisrKyBiL2luY2x1ZGUvbmV0L3VkcC5oCkBAIC0y NjUsNyArMjY1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqc2tiX3JlY3ZfdWRw KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IGZsYWdzLAogfQogCiB2b2lkIHVkcF92NF9l YXJseV9kZW11eChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKLXZvaWQgdWRwX3NrX3J4X2RzdF9zZXQo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QpOworYm9vbCB1ZHBfc2tfcnhf ZHN0X3NldChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBkc3RfZW50cnkgKmRzdCk7CiBpbnQgdWRw X2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSwKIAkJIGludCAo KnNhZGRyX2NtcCkoY29uc3Qgc3RydWN0IHNvY2sgKiwKIAkJCQkgIGNvbnN0IHN0cnVjdCBzb2Nr ICopKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcC5jIGIvbmV0L2lwdjQvdWRwLmMKaW5kZXgg Yzk5MWI5N2NiYjI4Li4yYTdiZmY3NDk3NjQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3VkcC5jCisr KyBiL25ldC9pcHY0L3VkcC5jCkBAIC0xNzYyLDEzICsxNzYyLDE0IEBAIHN0YXRpYyBpbnQgdWRw X3F1ZXVlX3Jjdl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogLyog Rm9yIFRDUCBzb2NrZXRzLCBza19yeF9kc3QgaXMgcHJvdGVjdGVkIGJ5IHNvY2tldCBsb2NrCiAg KiBGb3IgVURQLCB3ZSB1c2UgeGNoZygpIHRvIGd1YXJkIGFnYWluc3QgY29uY3VycmVudCBjaGFu Z2VzLgogICovCi12b2lkIHVkcF9za19yeF9kc3Rfc2V0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IGRzdF9lbnRyeSAqZHN0KQorYm9vbCB1ZHBfc2tfcnhfZHN0X3NldChzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBkc3RfZW50cnkgKmRzdCkKIHsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpvbGQ7CiAKIAlk c3RfaG9sZChkc3QpOwogCW9sZCA9IHhjaGcoJnNrLT5za19yeF9kc3QsIGRzdCk7CiAJZHN0X3Jl bGVhc2Uob2xkKTsKKwlyZXR1cm4gb2xkICE9IGRzdDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L3VkcC5jIGIvbmV0L2lwdjYvdWRwLmMKaW5kZXggNTkyMjcwYzMxMGY0Li41YzdiMmE5 NGUzNTggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25ldC9pcHY2L3VkcC5jCkBA IC03NTIsNiArNzUyLDE1IEBAIHN0YXRpYyBpbnQgX191ZHA2X2xpYl9tY2FzdF9kZWxpdmVyKHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlyZXR1cm4gMDsKIH0KIAorc3Rh dGljIHZvaWQgdWRwNl9za19yeF9kc3Rfc2V0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGRzdF9l bnRyeSAqZHN0KQoreworCWlmICh1ZHBfc2tfcnhfZHN0X3NldChzaywgZHN0KSkgeworCQljb25z dCBzdHJ1Y3QgcnQ2X2luZm8gKnJ0ID0gKGNvbnN0IHN0cnVjdCBydDZfaW5mbyAqKWRzdDsKKwor CQlpbmV0Nl9zayhzayktPnJ4X2RzdF9jb29raWUgPSBydDZfZ2V0X2Nvb2tpZShydCk7CisJfQor fQorCiBpbnQgX191ZHA2X2xpYl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHVkcF90 YWJsZSAqdWRwdGFibGUsCiAJCSAgIGludCBwcm90bykKIHsKQEAgLTgwMSw3ICs4MTAsNyBAQCBp bnQgX191ZHA2X2xpYl9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHVkcF90YWJsZSAq dWRwdGFibGUsCiAJCWludCByZXQ7CiAKIAkJaWYgKHVubGlrZWx5KHNrLT5za19yeF9kc3QgIT0g ZHN0KSkKLQkJCXVkcF9za19yeF9kc3Rfc2V0KHNrLCBkc3QpOworCQkJdWRwNl9za19yeF9kc3Rf c2V0KHNrLCBkc3QpOwogCiAJCXJldCA9IHVkcHY2X3F1ZXVlX3Jjdl9za2Ioc2ssIHNrYik7CiAJ CXNvY2tfcHV0KHNrKTsKLS0gCjIuMTMuNQoKCkZyb20gMmFlMTg0ZjllMmI5ZmYxMjg0NDA5MTdk OTI3Mjg5N2Y3MDY4ZmNkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW50b2luZSBU ZW5hcnQgPGFudG9pbmUudGVuYXJ0QGZyZWUtZWxlY3Ryb25zLmNvbT4KRGF0ZTogRnJpLCAyNSBB dWcgMjAxNyAxNjoxNDoxNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNDNdIG5ldDogbXZwcDI6 IGZpeCB0aGUgbWFjIGFkZHJlc3MgdXNlZCB3aGVuIHVzaW5nIFBQdjIuMgoKWyBVcHN0cmVhbSBj b21taXQgNGMyMjg2ODI2NDUxNmZlMGM0MjgxN2E4N2YzN2VmYjQ0MjU0ZTdhOSBdCgpUaGUgbWFj IGFkZHJlc3MgaXMgb25seSByZXRyaWV2ZWQgZnJvbSBoL3cgd2hlbiB1c2luZyBQUHYyLjEuIE90 aGVyd2lzZQp0aGUgdmFyaWFibGUgaG9sZGluZyBpdCBpcyBzdGlsbCBjaGVja2VkIGFuZCB1c2Vk IGlmIGl0IGNvbnRhaW5zIGEgdmFsaWQKdmFsdWUuIEFzIHRoZSB2YXJpYWJsZSBpc24ndCBpbml0 aWFsaXplZCB0byBhbiBpbnZhbGlkIG1hYyBhZGRyZXNzCnZhbHVlLCB3ZSBlbmQgdXAgd2l0aCBy YW5kb20gbWFjIGFkZHJlc3NlcyB3aGljaCBjYW4gYmUgdGhlIHNhbWUgZm9yIGFsbAp0aGUgcG9y dHMgaGFuZGxlZCBieSB0aGlzIFBQdjIgZHJpdmVyLgoKRml4ZXMgdGhpcyBieSBpbml0aWFsaXpp bmcgdGhlIGgvdyBtYWMgYWRkcmVzcyB2YXJpYWJsZSB0byB7MH0sIHdoaWNoIGlzCmFuIGludmFs aWQgbWFjIGFkZHJlc3MgdmFsdWUuIFRoaXMgd2F5IHRoZSByYW5kb20gYXNzaWduYXRpb24gZmFs bGJhY2sKaXMgY2FsbGVkIGFuZCBhbGwgcG9ydHMgZW5kIHVwIHdpdGggdGhlaXIgb3duIGFkZHJl c3Nlcy4KClNpZ25lZC1vZmYtYnk6IEFudG9pbmUgVGVuYXJ0IDxhbnRvaW5lLnRlbmFydEBmcmVl LWVsZWN0cm9ucy5jb20+CkZpeGVzOiAyNjk3NTgyMTQ0ZGQgKCJuZXQ6IG12cHAyOiBoYW5kbGUg bWlzYyBQUHYyLjEvUFB2Mi4yIGRpZmZlcmVuY2VzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21h cnZlbGwvbXZwcDIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZw cDIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIuYwppbmRleCAzM2M5MDE2 MjJlZDUuLjJhZDQ4MTUwYjgyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFy dmVsbC9tdnBwMi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIuYwpA QCAtNjQ2NSw3ICs2NDY1LDcgQEAgc3RhdGljIGludCBtdnBwMl9wb3J0X3Byb2JlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJY29uc3QgY2hh ciAqZHRfbWFjX2FkZHI7CiAJY29uc3QgY2hhciAqbWFjX2Zyb207Ci0JY2hhciBod19tYWNfYWRk cltFVEhfQUxFTl07CisJY2hhciBod19tYWNfYWRkcltFVEhfQUxFTl0gPSB7MH07CiAJdTMyIGlk OwogCWludCBmZWF0dXJlczsKIAlpbnQgcGh5X21vZGU7Ci0tIAoyLjEzLjUKCgpGcm9tIGVkNWE2 NWYyNzZiYWI0MTc1MzY3OWZjNTJkNTc0YjYzYmMzMzNlZDQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwg MjUgQXVnIDIwMTcgMjI6NDg6NDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzQzXSBjeGdiNDog Rml4IHN0YWNrIG91dC1vZi1ib3VuZHMgcmVhZCBkdWUgdG8gd3Jvbmcgc2l6ZQogdG8gdDRfcmVj b3JkX21ib3goKQoKWyBVcHN0cmVhbSBjb21taXQgMGYzMDg2ODY4ZTg4ODlhODIzYTZlMGYzZDI5 OTEwMmFhODk1ZDk0NyBdCgpQYXNzaW5nIGNvbW1hbmRzIGZvciBsb2dnaW5nIHRvIHQ0X3JlY29y ZF9tYm94KCkgd2l0aCBzaXplCk1CT1hfTEVOLCB3aGVuIHRoZSBhY3R1YWwgY29tbWFuZCBzaXpl IGlzIGFjdHVhbGx5IHNtYWxsZXIsCmNhdXNlcyBvdXQtb2YtYm91bmRzIHN0YWNrIGFjY2Vzc2Vz IGluIHQ0X3JlY29yZF9tYm94KCkgd2hpbGUKY29weWluZyBjb21tYW5kIHdvcmRzIGhlcmU6CgoJ Zm9yIChpID0gMDsgaSA8IHNpemUgLyA4OyBpKyspCgkJZW50cnktPmNtZFtpXSA9IGJlNjRfdG9f Y3B1KGNtZFtpXSk7CgpVcCB0byA0OCBieXRlcyBmcm9tIHRoZSBzdGFjayBhcmUgdGhlbiBsZWFr ZWQgdG8gZGVidWdmcy4KClRoaXMgaGFwcGVucyB3aGVuZXZlciB3ZSBzZW5kIChhbmQgbG9nKSBj b21tYW5kcyBkZXNjcmliZWQgYnkKc3RydWN0cyBmd19zY2hlZF9jbWQgKDMyIGJ5dGVzIGxlYWtl ZCksIGZ3X3ZpX3J4bW9kZV9jbWQgKDQ4KSwKZndfaGVsbG9fY21kICg0OCksIGZ3X2J5ZV9jbWQg KDQ4KSwgZndfaW5pdGlhbGl6ZV9jbWQgKDQ4KSwKZndfcmVzZXRfY21kICg0OCksIGZ3X3BmdmZf Y21kICgzMiksIGZ3X2VxX2V0aF9jbWQgKDE2KSwKZndfZXFfY3RybF9jbWQgKDMyKSwgZndfZXFf b2ZsZF9jbWQgKDMyKSwgZndfYWNsX21hY19jbWQoMTYpLApmd19yc3NfZ2xiX2NvbmZpZ19jbWQo MzIpLCBmd19yc3NfdmlfY29uZmlnX2NtZCgzMiksCmZ3X2RldmxvZ19jbWQoMzIpLCBmd192aV9l bmFibGVfY21kKDQ4KSwgZndfcG9ydF9jbWQoMzIpLApmd19zY2hlZF9jbWQoMzIpLCBmd19kZXZs b2dfY21kKDMyKS4KClRoZSBjeGdiNHZmIGRyaXZlciBnb3QgdGhpcyByaWdodCBpbnN0ZWFkLgoK V2hlbiB3ZSBjYWxsIHQ0X3JlY29yZF9tYm94KCkgdG8gbG9nIGEgY29tbWFuZCByZXBseSwgYSBN Qk9YX0xFTgpzaXplIGNhbiBiZSB1c2VkIHRob3VnaCwgYXMgZ2V0X21ib3hfcnBsKCkgd2lsbCBm aWxsIGNtZF9ycGwgdXAKY29tcGxldGVseS4KCkZpeGVzOiA3ZjA4MGMzZjJmZjAgKCJjeGdiNDog QWRkIHN1cHBvcnQgdG8gZW5hYmxlIGxvZ2dpbmcgb2YgZmlybXdhcmUgbWFpbGJveCBjb21tYW5k cyIpClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQnJpdmlvIDxzYnJpdmlvQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMgfCA2ICsrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMKaW5kZXggM2EzNGFhNjI5ZjdkLi5mNWQ3 ZWVlNmQ0MjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQv dDRfaHcuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X2h3LmMK QEAgLTM2OSwxMiArMzY5LDEyIEBAIGludCB0NF93cl9tYm94X21lYXRfdGltZW91dChzdHJ1Y3Qg YWRhcHRlciAqYWRhcCwgaW50IG1ib3gsIGNvbnN0IHZvaWQgKmNtZCwKIAkJbGlzdF9kZWwoJmVu dHJ5Lmxpc3QpOwogCQlzcGluX3VubG9jaygmYWRhcC0+bWJveF9sb2NrKTsKIAkJcmV0ID0gKHYg PT0gTUJPWF9PV05FUl9GVykgPyAtRUJVU1kgOiAtRVRJTUVET1VUOwotCQl0NF9yZWNvcmRfbWJv eChhZGFwLCBjbWQsIE1CT1hfTEVOLCBhY2Nlc3MsIHJldCk7CisJCXQ0X3JlY29yZF9tYm94KGFk YXAsIGNtZCwgc2l6ZSwgYWNjZXNzLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KIAogCS8qIENv cHkgaW4gdGhlIG5ldyBtYWlsYm94IGNvbW1hbmQgYW5kIHNlbmQgaXQgb24gaXRzIHdheSAuLi4g Ki8KLQl0NF9yZWNvcmRfbWJveChhZGFwLCBjbWQsIE1CT1hfTEVOLCBhY2Nlc3MsIDApOworCXQ0 X3JlY29yZF9tYm94KGFkYXAsIGNtZCwgc2l6ZSwgYWNjZXNzLCAwKTsKIAlmb3IgKGkgPSAwOyBp IDwgc2l6ZTsgaSArPSA4KQogCQl0NF93cml0ZV9yZWc2NChhZGFwLCBkYXRhX3JlZyArIGksIGJl NjRfdG9fY3B1KCpwKyspKTsKIApAQCAtNDI2LDcgKzQyNiw3IEBAIGludCB0NF93cl9tYm94X21l YXRfdGltZW91dChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgaW50IG1ib3gsIGNvbnN0IHZvaWQgKmNt ZCwKIAl9CiAKIAlyZXQgPSAocGNpZV9mdyAmIFBDSUVfRldfRVJSX0YpID8gLUVOWElPIDogLUVU SU1FRE9VVDsKLQl0NF9yZWNvcmRfbWJveChhZGFwLCBjbWQsIE1CT1hfTEVOLCBhY2Nlc3MsIHJl dCk7CisJdDRfcmVjb3JkX21ib3goYWRhcCwgY21kLCBzaXplLCBhY2Nlc3MsIHJldCk7CiAJZGV2 X2VycihhZGFwLT5wZGV2X2RldiwgImNvbW1hbmQgJSN4IGluIG1haWxib3ggJWQgdGltZWQgb3V0 XG4iLAogCQkqKGNvbnN0IHU4ICopY21kLCBtYm94KTsKIAl0NF9yZXBvcnRfZndfZXJyb3IoYWRh cCk7Ci0tIAoyLjEzLjUKCgpGcm9tIDk1OTRjMDZjMTFlYTczYjg0NjdhNzhmZGU2Njc1MGI4ZWNh ZDA5MmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBMb25nIDxsdWNpZW4ueGlu QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyNiBBdWcgMjAxNyAyMDoxMDoxMCArMDgwMApTdWJqZWN0 OiBbUEFUQ0ggMTgvNDNdIGlwdjY6IHNldCBkc3Qub2Jzb2xldGUgd2hlbiBhIGNhY2hlZCByb3V0 ZSBoYXMgZXhwaXJlZAoKWyBVcHN0cmVhbSBjb21taXQgMWUyZWE4YWQzN2JlMjVhN2NkY2M5NzQ5 NDU5MzU4MjlkNTM0ZDVkMyBdCgpOb3cgaXQgZG9lc24ndCBjaGVjayBmb3IgdGhlIGNhY2hlZCBy b3V0ZSBleHBpcmF0aW9uIGluIGlwdjYncwpkc3Rfb3BzLT5jaGVjaygpLCBiZWNhdXNlIGl0IHRy dXN0cyBkc3RfZ2MgdGhhdCB3b3VsZCBjbGVhbiB0aGUKY2FjaGVkIHJvdXRlIHVwIHdoZW4gaXQn cyBleHBpcmVkLgoKVGhlIHByb2JsZW0gaXMgaW4gZHN0X2djLCBpdCB3b3VsZCBjbGVhbiB0aGUg Y2FjaGVkIHJvdXRlIG9ubHkKd2hlbiBpdCdzIHJlZmNvdW50IGlzIDEuIElmIHNvbWUgb3RoZXIg bW9kdWxlIChsaWtlIHhmcm0pIGtlZXBzCmhvbGRpbmcgaXQgYW5kIHRoZSBtb2R1bGUgb25seSBy ZWxlYXNlIGl0IHdoZW4gZHN0X29wcy0+Y2hlY2soKQpmYWlscy4KCkJ1dCB3aXRob3V0IGNoZWNr aW5nIGZvciB0aGUgY2FjaGVkIHJvdXRlIGV4cGlyYXRpb24sIC5jaGVjaygpCm1heSBhbHdheXMg cmV0dXJuIHRydWUuIE1lYW53aGlsZSwgd2l0aG91dCByZWxlYXNpbmcgdGhlIGNhY2hlZApyb3V0 ZSwgZHN0X2djIGNvdWxkbid0IGRlbCBpdC4gSXQgd2lsbCBjYXVzZSB0aGlzIGNhY2hlZCByb3V0 ZQpuZXZlciB0byBleHBpcmUuCgpUaGlzIHBhdGNoIGlzIHRvIHNldCBkc3Qub2Jzb2xldGUgd2l0 aCBEU1RfT0JTT0xFVEVfS0lMTCBpbiAuZ2MKd2hlbiBpdCdzIGV4cGlyZWQsIGFuZCBjaGVjayBv YnNvbGV0ZSAhPSBEU1RfT0JTT0xFVEVfRk9SQ0VfQ0hLCmluIC5jaGVjay4KCk5vdGUgdGhhdCB0 aGlzIGlzIGV2ZW4gbmVlZGVkIHdoZW4gaXB2NiBkc3RfZ2MgdGltZXIgaXMgcmVtb3ZlZApvbmUg ZGF5LiBJdCB3b3VsZCBzZXQgZHN0Lm9ic29sZXRlIGluIC5yZWRpcmVjdCBhbmQgLnVwZGF0ZV9w bXR1Cmluc3RlYWQsIGFuZCBjaGVjayBmb3IgY2FjaGVkIHJvdXRlIGV4cGlyYXRpb24gd2hlbiBn ZXR0aW5nIGl0LApqdXN0IGxpa2Ugd2hhdCBpcHY0IHJvdXRlIGRvZXMuCgpSZXBvcnRlZC1ieTog SmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxs dWNpZW4ueGluQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5u ZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9maWIuYyB8IDQgKysrLQogbmV0 L2lwdjYvcm91dGUuYyAgIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9maWIuYyBiL25ldC9p cHY2L2lwNl9maWIuYwppbmRleCA4NDY2NDhlYTNiY2MuLjc2Y2RhYTlkNGE1MSAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYwpAQCAtMTc5MCw4 ICsxNzkwLDEwIEBAIHN0YXRpYyBpbnQgZmliNl9hZ2Uoc3RydWN0IHJ0Nl9pbmZvICpydCwgdm9p ZCAqYXJnKQogCQl9CiAJCWdjX2FyZ3MtPm1vcmUrKzsKIAl9IGVsc2UgaWYgKHJ0LT5ydDZpX2Zs YWdzICYgUlRGX0NBQ0hFKSB7CisJCWlmICh0aW1lX2FmdGVyX2VxKG5vdywgcnQtPmRzdC5sYXN0 dXNlICsgZ2NfYXJncy0+dGltZW91dCkpCisJCQlydC0+ZHN0Lm9ic29sZXRlID0gRFNUX09CU09M RVRFX0tJTEw7CiAJCWlmIChhdG9taWNfcmVhZCgmcnQtPmRzdC5fX3JlZmNudCkgPT0gMCAmJgot CQkgICAgdGltZV9hZnRlcl9lcShub3csIHJ0LT5kc3QubGFzdHVzZSArIGdjX2FyZ3MtPnRpbWVv dXQpKSB7CisJCSAgICBydC0+ZHN0Lm9ic29sZXRlID09IERTVF9PQlNPTEVURV9LSUxMKSB7CiAJ CQlSVDZfVFJBQ0UoImFnaW5nIGNsb25lICVwXG4iLCBydCk7CiAJCQlyZXR1cm4gLTE7CiAJCX0g ZWxzZSBpZiAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfR0FURVdBWSkgewpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggY2QyZmIxOGQ5ZjhkLi5iNzVm NzlhMDc5NjIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91 dGUuYwpAQCAtNDQ0LDcgKzQ0NCw4IEBAIHN0YXRpYyBib29sIHJ0Nl9jaGVja19leHBpcmVkKGNv bnN0IHN0cnVjdCBydDZfaW5mbyAqcnQpCiAJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHJ0LT5k c3QuZXhwaXJlcykpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9IGVsc2UgaWYgKHJ0LT5kc3QuZnJvbSkg ewotCQlyZXR1cm4gcnQ2X2NoZWNrX2V4cGlyZWQoKHN0cnVjdCBydDZfaW5mbyAqKSBydC0+ZHN0 LmZyb20pOworCQlyZXR1cm4gcnQtPmRzdC5vYnNvbGV0ZSAhPSBEU1RfT0JTT0xFVEVfRk9SQ0Vf Q0hLIHx8CisJCSAgICAgICBydDZfY2hlY2tfZXhwaXJlZCgoc3RydWN0IHJ0Nl9pbmZvICopcnQt PmRzdC5mcm9tKTsKIAl9CiAJcmV0dXJuIGZhbHNlOwogfQotLSAKMi4xMy41CgoKRnJvbSAxYzE3 Y2Y0MGM3Y2JjYmQ3ZTViZmUzMDE3MmNiOGE0M2JmMGY1ZTY0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjgg QXVnIDIwMTcgMTA6NDU6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIDE5LzQzXSBpcHY2OiBkbyBu b3Qgc2V0IHNrX2Rlc3RydWN0IGluIElQVjZfQUREUkZPUk0gc29ja29wdAoKWyBVcHN0cmVhbSBj b21taXQgZThkNDExZDI5ODA3MjNiOGY4YmE4ZTRkZDc4YjY5NGM1ZmQ5ZWEzZSBdCgpDaHVuWXUg Zm91bmQgYSBrZXJuZWwgd2Fybl9vbiBkdXJpbmcgc3l6a2FsbGVyIGZ1enppbmc6CgpbNDAyMjYu MDM4NTM5XSBXQVJOSU5HOiBDUFU6IDUgUElEOiAyMzcyMCBhdCBuZXQvaXB2NC9hZl9pbmV0LmM6 MTUyIGluZXRfc29ja19kZXN0cnVjdCsweDc4ZC8weDlhMApbNDAyMjYuMTQ0ODQ5XSBDYWxsIFRy YWNlOgpbNDAyMjYuMTQ3NTkwXSAgPElSUT4KWzQwMjI2LjE0OTg1OV0gIGR1bXBfc3RhY2srMHhl Mi8weDE4NgpbNDAyMjYuMTc2NTQ2XSAgX193YXJuKzB4MWE0LzB4MWUwCls0MDIyNi4xODAwNjZd ICB3YXJuX3Nsb3dwYXRoX251bGwrMHgzMS8weDQwCls0MDIyNi4xODQ1NTVdICBpbmV0X3NvY2tf ZGVzdHJ1Y3QrMHg3OGQvMHg5YTAKWzQwMjI2LjI0NjM1NV0gIF9fc2tfZGVzdHJ1Y3QrMHhmYS8w eDhjMApbNDAyMjYuMjkwNjEyXSAgcmN1X3Byb2Nlc3NfY2FsbGJhY2tzKzB4YWEwLzB4MThhMApb NDAyMjYuMzM2ODE2XSAgX19kb19zb2Z0aXJxKzB4MjQxLzB4NzVlCls0MDIyNi4zNjc3NThdICBp cnFfZXhpdCsweDFmNi8weDIyMApbNDAyMjYuMzcxNDU4XSAgc21wX2FwaWNfdGltZXJfaW50ZXJy dXB0KzB4N2IvMHhhMApbNDAyMjYuMzc2NTA3XSAgYXBpY190aW1lcl9pbnRlcnJ1cHQrMHg5My8w eGEwCgpUaGUgd2Fybl9vbiBoYXBwbmVkIHdoZW4gc2stPnNrX3JtZW1fYWxsb2Mgd2Fzbid0IDAg aW4gaW5ldF9zb2NrX2Rlc3RydWN0LgpBcyBhZnRlciBjb21taXQgZjk3MGJkOWUzYTA2ICgidWRw OiBpbXBsZW1lbnQgbWVtb3J5IGFjY291bnRpbmcgaGVscGVycyIpLAp1ZHAgaGFzIGNoYW5nZWQg dG8gdXNlIHVkcF9kZXN0cnVjdF9zb2NrIGFzIHNrX2Rlc3RydWN0IHdoZXJlIGl0IHdvdWxkCnVk cF9ybWVtX3JlbGVhc2UgYWxsIHJtZW0uCgpCdXQgSVBWNl9BRERSRk9STSBzb2Nrb3B0IHNldHMg c2tfZGVzdHJ1Y3Qgd2l0aCBpbmV0X3NvY2tfZGVzdHJ1Y3QgYWZ0ZXIKY2hhbmdpbmcgZmFtaWx5 IHRvIFBGX0lORVQuIElmIHJtZW0gaXMgbm90IDAgYXQgdGhhdCB0aW1lLCBhbmQgdGhlcmUgaXMK bm8gcGxhY2UgdG8gcmVsZWFzZSBybWVtIGJlZm9yZSBjYWxsaW5nIGluZXRfc29ja19kZXN0cnVj dCwgdGhlIHdhcm5fb24Kd2lsbCBiZSB0cmlnZ2VyZWQuCgpUaGlzIHBhdGNoIGlzIHRvIGZpeCBp dCBieSBub3Qgc2V0dGluZyBza19kZXN0cnVjdCBpbiBJUFY2X0FERFJGT1JNIHNvY2tvcHQKYW55 IG1vcmUuIEFzIElQVjZfQUREUkZPUk0gc29ja29wdCBvbmx5IHdvcmtzIGZvciB0Y3AgYW5kIHVk cC4gVENQIHNvY2sgaGFzCmFscmVhZHkgc2V0IGl0J3Mgc2tfZGVzdHJ1Y3Qgd2l0aCBpbmV0X3Nv Y2tfZGVzdHJ1Y3QgYW5kIFVEUCBoYXMgc2V0IHdpdGgKdWRwX2Rlc3RydWN0X3NvY2sgc2luY2Ug dGhleSdyZSBjcmVhdGVkLgoKRml4ZXM6IGY5NzBiZDllM2EwNiAoInVkcDogaW1wbGVtZW50IG1l bW9yeSBhY2NvdW50aW5nIGhlbHBlcnMiKQpSZXBvcnRlZC1ieTogQ2h1bll1IFdhbmcgPGNodW53 YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KQWNrZWQtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2 L2lwdjZfc29ja2dsdWUuYyB8IDEgLQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMgYi9uZXQvaXB2Ni9pcHY2X3NvY2tn bHVlLmMKaW5kZXggYTUzMWJhMDMyYjg1Li5mNzg0NzhmZGJmYjkgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L2lwdjZfc29ja2dsdWUuYworKysgYi9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMKQEAgLTI0 Miw3ICsyNDIsNiBAQCBzdGF0aWMgaW50IGRvX2lwdjZfc2V0c29ja29wdChzdHJ1Y3Qgc29jayAq c2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiAJCQlwa3RvcHQgPSB4Y2hnKCZucC0+cGt0b3B0 aW9ucywgTlVMTCk7CiAJCQlrZnJlZV9za2IocGt0b3B0KTsKIAotCQkJc2stPnNrX2Rlc3RydWN0 ID0gaW5ldF9zb2NrX2Rlc3RydWN0OwogCQkJLyoKIAkJCSAqIC4uLiBhbmQgYWRkIGl0IHRvIHRo ZSByZWZjbnQgZGVidWcgc29ja3MgY291bnQKIAkJCSAqIGluIHRoZSBuZXcgZmFtaWx5LiAtYWNt ZQotLSAKMi4xMy41CgoKRnJvbSAwYzkyNDAyY2FiMzIxOWFlYjA2MWE4YjVhODUxOGY2ODIwMjM2 YTg0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBQb2lyaWVyIDxicG9p cmllckBzdXNlLmNvbT4KRGF0ZTogTW9uLCAyOCBBdWcgMjAxNyAxNDoyOTo0MSAtMDQwMApTdWJq ZWN0OiBbUEFUQ0ggMjAvNDNdIHBhY2tldDogRG9uJ3Qgd3JpdGUgdm5ldCBoZWFkZXIgYmV5b25k IGVuZCBvZiBidWZmZXIKClsgVXBzdHJlYW0gY29tbWl0IGVkYmQ1OGJlMTVhOTU3ZjZhNzYwYzRh NTE0Y2Q0NzUyMTdlYjk3ZmQgXQoKLi4uIHdoaWNoIG1heSBoYXBwZW4gd2l0aCBjZXJ0YWluIHZh bHVlcyBvZiB0cF9yZXNlcnZlIGFuZCBtYWNsZW4uCgpGaXhlczogNThkMTliMTljZDk5ICgicGFj a2V0OiB2bmV0X2hkciBzdXBwb3J0IGZvciB0cGFja2V0X3JjdiIpClNpZ25lZC1vZmYtYnk6IEJl bmphbWluIFBvaXJpZXIgPGJwb2lyaWVyQHN1c2UuY29tPgpDYzogV2lsbGVtIGRlIEJydWlqbiA8 d2lsbGVtYkBnb29nbGUuY29tPgpBY2tlZC1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVtYkBn b29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDEyICsrKysrKysrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBh YTJkNDAwMGJhZmMuLjJiMzFhNjlkNDJhNSAxMDA2NDQKLS0tIGEvbmV0L3BhY2tldC9hZl9wYWNr ZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0yMTkyLDYgKzIxOTIsNyBAQCBz dGF0aWMgaW50IHRwYWNrZXRfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCV9fdTMyIHRzX3N0YXR1czsKIAlib29s IGlzX2Ryb3Bfbl9hY2NvdW50ID0gZmFsc2U7CisJYm9vbCBkb192bmV0ID0gZmFsc2U7CiAKIAkv KiBzdHJ1Y3QgdHBhY2tldHsyLDN9X2hkciBpcyBhbGlnbmVkIHRvIGEgbXVsdGlwbGUgb2YgVFBB Q0tFVF9BTElHTk1FTlQuCiAJICogV2UgbWF5IGFkZCBtZW1iZXJzIHRvIHRoZW0gdW50aWwgY3Vy cmVudCBhbGlnbmVkIHNpemUgd2l0aG91dCBmb3JjaW5nCkBAIC0yMjQyLDggKzIyNDMsMTAgQEAg c3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCQluZXRvZmYgPSBUUEFDS0VUX0FMSUdOKHBvLT50cF9oZHJsZW4gKwogCQkJ CSAgICAgICAobWFjbGVuIDwgMTYgPyAxNiA6IG1hY2xlbikpICsKIAkJCQkgICAgICAgcG8tPnRw X3Jlc2VydmU7Ci0JCWlmIChwby0+aGFzX3ZuZXRfaGRyKQorCQlpZiAocG8tPmhhc192bmV0X2hk cikgewogCQkJbmV0b2ZmICs9IHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHIpOworCQkJZG9f dm5ldCA9IHRydWU7CisJCX0KIAkJbWFjb2ZmID0gbmV0b2ZmIC0gbWFjbGVuOwogCX0KIAlpZiAo cG8tPnRwX3ZlcnNpb24gPD0gVFBBQ0tFVF9WMikgewpAQCAtMjI2MCw4ICsyMjYzLDEwIEBAIHN0 YXRpYyBpbnQgdHBhY2tldF9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAkJCQkJc2tiX3NldF9vd25lcl9yKGNvcHlfc2tiLCBzayk7CiAJCQl9CiAJCQlz bmFwbGVuID0gcG8tPnJ4X3JpbmcuZnJhbWVfc2l6ZSAtIG1hY29mZjsKLQkJCWlmICgoaW50KXNu YXBsZW4gPCAwKQorCQkJaWYgKChpbnQpc25hcGxlbiA8IDApIHsKIAkJCQlzbmFwbGVuID0gMDsK KwkJCQlkb192bmV0ID0gZmFsc2U7CisJCQl9CiAJCX0KIAl9IGVsc2UgaWYgKHVubGlrZWx5KG1h Y29mZiArIHNuYXBsZW4gPgogCQkJICAgIEdFVF9QQkRRQ19GUk9NX1JCKCZwby0+cnhfcmluZykt Pm1heF9mcmFtZV9sZW4pKSB7CkBAIC0yMjc0LDYgKzIyNzksNyBAQCBzdGF0aWMgaW50IHRwYWNr ZXRfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCWlm ICh1bmxpa2VseSgoaW50KXNuYXBsZW4gPCAwKSkgewogCQkJc25hcGxlbiA9IDA7CiAJCQltYWNv ZmYgPSBHRVRfUEJEUUNfRlJPTV9SQigmcG8tPnJ4X3JpbmcpLT5tYXhfZnJhbWVfbGVuOworCQkJ ZG9fdm5ldCA9IGZhbHNlOwogCQl9CiAJfQogCXNwaW5fbG9jaygmc2stPnNrX3JlY2VpdmVfcXVl dWUubG9jayk7CkBAIC0yMjk5LDcgKzIzMDUsNyBAQCBzdGF0aWMgaW50IHRwYWNrZXRfcmN2KHN0 cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJfQogCXNwaW5fdW5s b2NrKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsKIAotCWlmIChwby0+aGFzX3ZuZXRfaGRy KSB7CisJaWYgKGRvX3ZuZXQpIHsKIAkJaWYgKHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwg aC5yYXcgKyBtYWNvZmYgLQogCQkJCQkgICAgc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0X2hkciks CiAJCQkJCSAgICB2aW9fbGUoKSwgdHJ1ZSkpIHsKLS0gCjIuMTMuNQoKCkZyb20gM2QxYzhlMWIz NjFmZWU0ZmNhOWEzOGRkNmI3MGMzOWUxMzZmM2U5ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBXZWQsIDMwIEF1 ZyAyMDE3IDA5OjI5OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMS80M10ga2NtOiBkbyBub3Qg YXR0YWNoIFBGX0tDTSBzb2NrZXRzIHRvIGF2b2lkIGRlYWRsb2NrCgpbIFVwc3RyZWFtIGNvbW1p dCAzNTEwNTBlY2Q2NTIzMzc0YjM3MDM0MWNjMjlmZTYxZTIyMDE1NTZiIF0KCnN5emthbGxlciBo YWQgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIGEgZGVhZGxvY2ssIGF0dGFjaGluZyBhIEtDTSBzb2Nr ZXQKdG8gYW5vdGhlciBvbmUgKG9yIGl0c2VsZikuIChvcmlnaW5hbCBzeXprYWxsZXIgcmVwb3J0 IHdhcyBhIHZlcnkKY29uZnVzaW5nIGxvY2tkZXAgc3BsYXQgZHVyaW5nIGEgc2VuZG1zZygpKQoK SXQgc2VlbXMgS0NNIGNsYWltcyB0byBvbmx5IHN1cHBvcnQgVENQLCBidXQgbm8gZW5mb3JjZW1l bnQgaXMgZG9uZSwKc28gd2UgbWlnaHQgbmVlZCB0byBhZGQgYWRkaXRpb25hbCBjaGVja3MuCgpG aXhlczogYWI3YWM0ZWI5ODMyICgia2NtOiBLZXJuZWwgQ29ubmVjdGlvbiBNdWx0aXBsZXhvciBt b2R1bGUiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ ClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+CkFja2VkLWJ5 OiBUb20gSGVyYmVydCA8dG9tQHF1YW50b25pdW0ubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2tjbS9rY21zb2NrLmMgfCA0 ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQv a2NtL2tjbXNvY2suYyBiL25ldC9rY20va2Ntc29jay5jCmluZGV4IGRlY2EyMGZiMmNlMi4uMGRk Y2IyMDliZWE2IDEwMDY0NAotLS0gYS9uZXQva2NtL2tjbXNvY2suYworKysgYi9uZXQva2NtL2tj bXNvY2suYwpAQCAtMTM4Myw2ICsxMzgzLDEwIEBAIHN0YXRpYyBpbnQga2NtX2F0dGFjaChzdHJ1 Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpjc29jaywKIAlpZiAoIWNzaykKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKKwkvKiBXZSBtdXN0IHByZXZlbnQgbG9vcHMgb3IgcmlzayBkZWFkbG9j ayAhICovCisJaWYgKGNzay0+c2tfZmFtaWx5ID09IFBGX0tDTSkKKwkJcmV0dXJuIC1FT1BOT1RT VVBQOworCiAJcHNvY2sgPSBrbWVtX2NhY2hlX3phbGxvYyhrY21fcHNvY2twLCBHRlBfS0VSTkVM KTsKIAlpZiAoIXBzb2NrKQogCQlyZXR1cm4gLUVOT01FTTsKLS0gCjIuMTMuNQoKCkZyb20gNjNi ZmUwZWRjM2Y5MTIwZDFhMTliMGYzMDk4NmYwNDNhOWEyYjZiNSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMzAgQXVnIDIwMTcgMTI6Mzk6MzMgLTA3MDAKU3ViamVjdDogW1BBVENIIDIyLzQzXSBu ZXQ6IGRzYTogYmNtX3NmMjogRml4IG51bWJlciBvZiBDRlAgZW50cmllcyBmb3IKIEJDTTcyNzgK ClsgVXBzdHJlYW0gY29tbWl0IGRmMTkxNjMyZjgxNDM1N2VlNGQ2NDY0MjE2NjJkODY2MDI4YjU2 OWQgXQoKQkNNNzI3OCBoYXMgb25seSAxMjggZW50cmllcyB3aGlsZSBCQ003NDQ1IGhhcyB0aGUg ZnVsbCAyNTYgZW50cmllcyBzZXQsCmZpeCB0aGF0LgoKRml4ZXM6IDczMTgxNjZjYWNhZCAoIm5l dDogZHNhOiBiY21fc2YyOiBBZGQgc3VwcG9ydCBmb3IgZXRodG9vbDo6cnhuZmMiKQpTaWduZWQt b2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KUmV2aWV3ZWQt Ynk6IFZpdmllbiBEaWRlbG90IDx2aXZpZW4uZGlkZWxvdEBzYXZvaXJmYWlyZWxpbnV4LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMgICAgIHwgNCArKysrCiBkcml2ZXJzL25ldC9kc2Ev YmNtX3NmMi5oICAgICB8IDEgKwogZHJpdmVycy9uZXQvZHNhL2JjbV9zZjJfY2ZwLmMgfCA4ICsr KystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jIGIvZHJpdmVycy9uZXQvZHNh L2JjbV9zZjIuYwppbmRleCAyYmU5NjMyNTJjYTUuLmUwZTE0ZjdjZDIwOCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYworKysgYi9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5j CkBAIC0xMDU1LDYgKzEwNTUsNyBAQCBzdHJ1Y3QgYmNtX3NmMl9vZl9kYXRhIHsKIAl1MzIgdHlw ZTsKIAljb25zdCB1MTYgKnJlZ19vZmZzZXRzOwogCXVuc2lnbmVkIGludCBjb3JlX3JlZ19hbGln bjsKKwl1bnNpZ25lZCBpbnQgbnVtX2NmcF9ydWxlczsKIH07CiAKIC8qIFJlZ2lzdGVyIG9mZnNl dHMgZm9yIHRoZSBTV0lUQ0hfUkVHXyogYmxvY2sgKi8KQEAgLTEwNzgsNiArMTA3OSw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgYmNtX3NmMl9vZl9kYXRhIGJjbV9zZjJfNzQ0NV9kYXRhID0gewog CS50eXBlCQk9IEJDTTc0NDVfREVWSUNFX0lELAogCS5jb3JlX3JlZ19hbGlnbgk9IDAsCiAJLnJl Z19vZmZzZXRzCT0gYmNtX3NmMl83NDQ1X3JlZ19vZmZzZXRzLAorCS5udW1fY2ZwX3J1bGVzCT0g MjU2LAogfTsKIAogc3RhdGljIGNvbnN0IHUxNiBiY21fc2YyXzcyNzhfcmVnX29mZnNldHNbXSA9 IHsKQEAgLTExMDAsNiArMTEwMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtX3NmMl9vZl9k YXRhIGJjbV9zZjJfNzI3OF9kYXRhID0gewogCS50eXBlCQk9IEJDTTcyNzhfREVWSUNFX0lELAog CS5jb3JlX3JlZ19hbGlnbgk9IDEsCiAJLnJlZ19vZmZzZXRzCT0gYmNtX3NmMl83Mjc4X3JlZ19v ZmZzZXRzLAorCS5udW1fY2ZwX3J1bGVzCT0gMTI4LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgYmNtX3NmMl9vZl9tYXRjaFtdID0gewpAQCAtMTE1Niw2ICsxMTU5LDcg QEAgc3RhdGljIGludCBiY21fc2YyX3N3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJcHJpdi0+dHlwZSA9IGRhdGEtPnR5cGU7CiAJcHJpdi0+cmVnX29mZnNldHMgPSBkYXRh LT5yZWdfb2Zmc2V0czsKIAlwcml2LT5jb3JlX3JlZ19hbGlnbiA9IGRhdGEtPmNvcmVfcmVnX2Fs aWduOworCXByaXYtPm51bV9jZnBfcnVsZXMgPSBkYXRhLT5udW1fY2ZwX3J1bGVzOwogCiAJLyog QXV0by1kZXRlY3Rpb24gdXNpbmcgc3RhbmRhcmQgcmVnaXN0ZXJzIHdpbGwgbm90IHdvcmssIHNv CiAJICogcHJvdmlkZSBhbiBpbmRpY2F0aW9uIG9mIHdoYXQga2luZCBvZiBkZXZpY2Ugd2UgYXJl IGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuaCBiL2RyaXZlcnMvbmV0 L2RzYS9iY21fc2YyLmgKaW5kZXggN2QzMDMwZTA0ZjExLi43ZjkxMjVlZWYzZGYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmgKKysrIGIvZHJpdmVycy9uZXQvZHNhL2JjbV9z ZjIuaApAQCAtNzIsNiArNzIsNyBAQCBzdHJ1Y3QgYmNtX3NmMl9wcml2IHsKIAl1MzIgCQkJCXR5 cGU7CiAJY29uc3QgdTE2CQkJKnJlZ19vZmZzZXRzOwogCXVuc2lnbmVkIGludAkJCWNvcmVfcmVn X2FsaWduOworCXVuc2lnbmVkIGludAkJCW51bV9jZnBfcnVsZXM7CiAKIAkvKiBzcGlubG9jayBw cm90ZWN0aW5nIGFjY2VzcyB0byB0aGUgaW5kaXJlY3QgcmVnaXN0ZXJzICovCiAJc3BpbmxvY2tf dAkJCWluZGlyX2xvY2s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMl9jZnAu YyBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyX2NmcC5jCmluZGV4IDJmYjMyZDY3MDY1Zi4uOGEx ZGE3ZTY3NzA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMl9jZnAuYworKysg Yi9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMl9jZnAuYwpAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgYmNtX3NmMl9jZnBfcnVsZV9hZGRyX3NldChzdHJ1Y3QgYmNtX3NmMl9wcml2 ICpwcml2LAogewogCXUzMiByZWc7CiAKLQlXQVJOX09OKGFkZHIgPj0gQ0ZQX05VTV9SVUxFUyk7 CisJV0FSTl9PTihhZGRyID49IHByaXYtPm51bV9jZnBfcnVsZXMpOwogCiAJcmVnID0gY29yZV9y ZWFkbChwcml2LCBDT1JFX0NGUF9BQ0MpOwogCXJlZyAmPSB+KFhDRVNTX0FERFJfTUFTSyA8PCBY Q0VTU19BRERSX1NISUZUKTsKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg YmNtX3NmMl9jZnBfcnVsZV9hZGRyX3NldChzdHJ1Y3QgYmNtX3NmMl9wcml2ICpwcml2LAogc3Rh dGljIGlubGluZSB1bnNpZ25lZCBpbnQgYmNtX3NmMl9jZnBfcnVsZV9zaXplKHN0cnVjdCBiY21f c2YyX3ByaXYgKnByaXYpCiB7CiAJLyogRW50cnkgIzAgaXMgcmVzZXJ2ZWQgKi8KLQlyZXR1cm4g Q0ZQX05VTV9SVUxFUyAtIDE7CisJcmV0dXJuIHByaXYtPm51bV9jZnBfcnVsZXMgLSAxOwogfQog CiBzdGF0aWMgaW50IGJjbV9zZjJfY2ZwX3J1bGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywg aW50IHBvcnQsCkBAIC01MjMsNyArNTIzLDcgQEAgc3RhdGljIGludCBiY21fc2YyX2NmcF9ydWxl X2dldF9hbGwoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwKIAkJaWYgKCEocmVnICYgT1BfU1RS X0RPTkUpKQogCQkJYnJlYWs7CiAKLQl9IHdoaWxlIChpbmRleCA8IENGUF9OVU1fUlVMRVMpOwor CX0gd2hpbGUgKGluZGV4IDwgcHJpdi0+bnVtX2NmcF9ydWxlcyk7CiAKIAkvKiBQdXQgdGhlIFRD QU0gc2l6ZSBoZXJlICovCiAJbmZjLT5kYXRhID0gYmNtX3NmMl9jZnBfcnVsZV9zaXplKHByaXYp OwpAQCAtNTQ0LDcgKzU0NCw3IEBAIGludCBiY21fc2YyX2dldF9yeG5mYyhzdHJ1Y3QgZHNhX3N3 aXRjaCAqZHMsIGludCBwb3J0LAogCWNhc2UgRVRIVE9PTF9HUlhDTFNSTENOVDoKIAkJLyogU3Vi dHJhY3QgdGhlIGRlZmF1bHQsIHVudXNhYmxlIHJ1bGUgKi8KIAkJbmZjLT5ydWxlX2NudCA9IGJp dG1hcF93ZWlnaHQocHJpdi0+Y2ZwLnVzZWQsCi0JCQkJCSAgICAgIENGUF9OVU1fUlVMRVMpIC0g MTsKKwkJCQkJICAgICAgcHJpdi0+bnVtX2NmcF9ydWxlcykgLSAxOwogCQkvKiBXZSBzdXBwb3J0 IHNwZWNpZnlpbmcgcnVsZSBsb2NhdGlvbnMgKi8KIAkJbmZjLT5kYXRhIHw9IFJYX0NMU19MT0Nf U1BFQ0lBTDsKIAkJYnJlYWs7Ci0tIAoyLjEzLjUKCgpGcm9tIDhmNzNkODMxYzQ0ZmE5YmZkODEy MTUzNWY5M2NkOTlmMjk1YWJjMTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEh1eSBO Z3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpEYXRlOiBUaHUsIDEzIEp1bCAyMDE3IDEzOjQ1OjEx IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyMy80M10gbmV0L21seDVlOiBDaGVjayBmb3IgcW9zIGNh cGFiaWxpdHkgaW4gZGNibmxfaW5pdGlhbGl6ZQoKWyBVcHN0cmVhbSBjb21taXQgMzNjNTJiNjcx OGQyYTZjYjQxNDQ0MGM5ODU2MDgxODkxMGQ4OTZkYyBdCgpxb3MgY2FwYWJpbGl0eSBpcyB0aGUg bWFzdGVyIGNhcGFiaWxpdHkgYml0IHRoYXQgZGV0ZXJtaW5lcwppZiB0aGUgRENCWCBpcyBzdXBw b3J0ZWQgZm9yIHRoZSBQQ0kgZnVuY3Rpb24uIElmIHRoaXMgYml0IGlzIG9mZiwKZHJpdmVyIGNh bm5vdCBydW4gYW55IGRjYnggY29kZS4KCkZpeGVzOiBlMjA3YjdlOTkxNzYgKCJuZXQvbWx4NWU6 IENvbm5lY3RYLTQgZmlybXdhcmUgc3VwcG9ydCBmb3IgRENCWCIpClNpZ25lZC1vZmYtYnk6IEh1 eSBOZ3V5ZW4gPGh1eW5AbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUGFyYXYgUGFuZGl0IDxw YXJhdkBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1A bWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9kY2JubC5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNi bmwuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9kY2JubC5j CmluZGV4IDJlYjU0ZDM2ZTE2ZS4uODEwYjUxMDI5YzdmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYwpAQCAtNzU0LDYgKzc1NCw5 IEBAIHZvaWQgbWx4NWVfZGNibmxfaW5pdGlhbGl6ZShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikK IHsKIAlzdHJ1Y3QgbWx4NWVfZGNieCAqZGNieCA9ICZwcml2LT5kY2J4OwogCisJaWYgKCFNTFg1 X0NBUF9HRU4ocHJpdi0+bWRldiwgcW9zKSkKKwkJcmV0dXJuOworCiAJaWYgKE1MWDVfQ0FQX0dF Tihwcml2LT5tZGV2LCBkY2J4KSkKIAkJbWx4NWVfZGNibmxfcXVlcnlfZGNieF9tb2RlKHByaXYs ICZkY2J4LT5tb2RlKTsKIAotLSAKMi4xMy41CgoKRnJvbSBjZWE3MGY2NGYxM2U5NmQwNjUxY2Q2 MjE2MzY2Yzg3YmJkZDU4N2VjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIdXkgTmd1 eWVuIDxodXluQG1lbGxhbm94LmNvbT4KRGF0ZTogTW9uLCAxMCBKdWwgMjAxNyAxNDowMDoyMyAt MDUwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNDNdIG5ldC9tbHg1ZTogRml4IERDQl9DQVBfQVRUUl9E Q0JYIGNhcGFiaWxpdHkgZm9yIERDQk5MCiBnZXRjYXAuCgpbIFVwc3RyZWFtIGNvbW1pdCA5ZTEw YmYxZDM0OTc4N2YzNzM0ODRkODM1ZWZlMmRiYjVmOWM1NjE0IF0KCkN1cnJlbnQgY29kZSBkb2Vz bid0IHJlcG9ydCBEQ0JfQ0FQX0RDQlhfSE9TVCBjYXBhYmlsaXR5IHdoZW4gcXVlcnkKdGhyb3Vn aCBnZXRjYXAuIFVzZXIgc3BhY2UgbGxkcHRvb2wgZXhwZWN0cyBjYXBhYmlsaXR5IHRvIGhhdmUg SE9TVCBtb2RlCnNldCB3aGVuIGl0IHdhbnRzIHRvIGNvbmZpZ3VyZSBEQ0JYIENFRSBtb2RlLiBJ biBhYnNlbmNlIG9mIEhPU1QgbW9kZQpjYXBhYmlsaXR5LCBsbGRwdG9vbCBmYWlscyB0byBzd2l0 Y2ggdG8gQ0VFIG1vZGUuCgpUaGlzIGZpeCByZXR1cm5zIERDQl9DQVBfRENCWF9IT1NUIGNhcGFi aWxpdHkgd2hlbiBwb3J0J3MgRENCWApjb250cm9sbGVkIG1vZGUgaXMgdW5kZXIgc29mdHdhcmUg Y29udHJvbC4KCkZpeGVzOiAzYTZhOTMxZGZiOGUgKCJuZXQvbWx4NWU6IFN1cHBvcnQgRENCWCBD RUUgQVBJIikKU2lnbmVkLW9mZi1ieTogSHV5IE5ndXllbiA8aHV5bkBtZWxsYW5veC5jb20+ClJl dmlld2VkLWJ5OiBQYXJhdiBQYW5kaXQgPHBhcmF2QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1i eTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggICAgICAgfCAgMSArCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwuYyB8IDIxICsrKysrKysrKysr Ky0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5k ZXggM2IzOWRiZDk3ZTU3Li41YTFiODVjMThlNjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbi5oCkBAIC0yNTgsNiArMjU4LDcgQEAgc3RydWN0IG1seDVl X2RjYnggewogCiAJLyogVGhlIG9ubHkgc2V0dGluZyB0aGF0IGNhbm5vdCBiZSByZWFkIGZyb20g RlcgKi8KIAl1OCAgICAgICAgICAgICAgICAgICAgICAgICB0Y190c2FbSUVFRV84MDIxUUFaX01B WF9UQ1NdOworCXU4ICAgICAgICAgICAgICAgICAgICAgICAgIGNhcDsKIH07CiAjZW5kaWYKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2Rj Ym5sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZGNibmwu YwppbmRleCA4MTBiNTEwMjljN2YuLmMxZDM4NGZjYTRkYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2RjYm5sLmMKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2RjYm5sLmMKQEAgLTI4OCwxMyArMjg4 LDggQEAgc3RhdGljIGludCBtbHg1ZV9kY2JubF9pZWVlX3NldHBmYyhzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogc3RhdGljIHU4IG1seDVlX2RjYm5sX2dldGRjYngoc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7Ci0J c3RydWN0IG1seDVlX2RjYnggKmRjYnggPSAmcHJpdi0+ZGNieDsKLQl1OCBtb2RlID0gRENCX0NB UF9EQ0JYX1ZFUl9JRUVFIHwgRENCX0NBUF9EQ0JYX1ZFUl9DRUU7Ci0KLQlpZiAoZGNieC0+bW9k ZSA9PSBNTFg1RV9EQ0JYX1BBUkFNX1ZFUl9PUEVSX0hPU1QpCi0JCW1vZGUgfD0gRENCX0NBUF9E Q0JYX0hPU1Q7CiAKLQlyZXR1cm4gbW9kZTsKKwlyZXR1cm4gcHJpdi0+ZGNieC5jYXA7CiB9CiAK IHN0YXRpYyB1OCBtbHg1ZV9kY2JubF9zZXRkY2J4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHU4 IG1vZGUpCkBAIC0zMTIsNiArMzA3LDcgQEAgc3RhdGljIHU4IG1seDVlX2RjYm5sX3NldGRjYngo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTggbW9kZSkKIAkJLyogc2V0IGRjYnggdG8gZncgY29u dHJvbGxlZCAqLwogCQlpZiAoIW1seDVlX2RjYm5sX3NldF9kY2J4X21vZGUocHJpdiwgTUxYNUVf RENCWF9QQVJBTV9WRVJfT1BFUl9BVVRPKSkgewogCQkJZGNieC0+bW9kZSA9IE1MWDVFX0RDQlhf UEFSQU1fVkVSX09QRVJfQVVUTzsKKwkJCWRjYngtPmNhcCAmPSB+RENCX0NBUF9EQ0JYX0hPU1Q7 CiAJCQlyZXR1cm4gMDsKIAkJfQogCkBAIC0zMjQsNiArMzIwLDggQEAgc3RhdGljIHU4IG1seDVl X2RjYm5sX3NldGRjYngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTggbW9kZSkKIAlpZiAobWx4 NWVfZGNibmxfc3dpdGNoX3RvX2hvc3RfbW9kZShuZXRkZXZfcHJpdihkZXYpKSkKIAkJcmV0dXJu IDE7CiAKKwlkY2J4LT5jYXAgPSBtb2RlOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTYyOCw5ICs2 MjYsOSBAQCBzdGF0aWMgdTggbWx4NWVfZGNibmxfZ2V0Y2FwKHN0cnVjdCBuZXRfZGV2aWNlICpu ZXRkZXYsCiAJCSpjYXAgPSBmYWxzZTsKIAkJYnJlYWs7CiAJY2FzZSBEQ0JfQ0FQX0FUVFJfRENC WDoKLQkJKmNhcCA9IChEQ0JfQ0FQX0RDQlhfTExEX01BTkFHRUQgfAotCQkJRENCX0NBUF9EQ0JY X1ZFUl9DRUUgfAotCQkJRENCX0NBUF9EQ0JYX1NUQVRJQyk7CisJCSpjYXAgPSBwcml2LT5kY2J4 LmNhcCB8CisJCSAgICAgICBEQ0JfQ0FQX0RDQlhfVkVSX0NFRSB8CisJCSAgICAgICBEQ0JfQ0FQ X0RDQlhfVkVSX0lFRUU7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCSpjYXAgPSAwOwpAQCAtNzYw LDUgKzc1OCwxMCBAQCB2b2lkIG1seDVlX2RjYm5sX2luaXRpYWxpemUoc3RydWN0IG1seDVlX3By aXYgKnByaXYpCiAJaWYgKE1MWDVfQ0FQX0dFTihwcml2LT5tZGV2LCBkY2J4KSkKIAkJbWx4NWVf ZGNibmxfcXVlcnlfZGNieF9tb2RlKHByaXYsICZkY2J4LT5tb2RlKTsKIAorCXByaXYtPmRjYngu Y2FwID0gRENCX0NBUF9EQ0JYX1ZFUl9DRUUgfAorCQkJIERDQl9DQVBfRENCWF9WRVJfSUVFRTsK KwlpZiAocHJpdi0+ZGNieC5tb2RlID09IE1MWDVFX0RDQlhfUEFSQU1fVkVSX09QRVJfSE9TVCkK KwkJcHJpdi0+ZGNieC5jYXAgfD0gRENCX0NBUF9EQ0JYX0hPU1Q7CisKIAltbHg1ZV9ldHNfaW5p dChwcml2KTsKIH0KLS0gCjIuMTMuNQoKCkZyb20gOGZhM2RkMTE1ODRjNjIwOWYxMWE5MjRkMGM3 YWNiODcyNjU5NGJmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTm9hIE9zaGVyb3Zp Y2ggPG5vYW9zQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAzMCBKdWwgMjAxNyAxMzo1NTo0OCAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMjUvNDNdIG5ldC9tbHg1OiBGaXggYXJtIFNSUSBjb21tYW5k IGZvciBJU1NJIHZlcnNpb24gMAoKWyBVcHN0cmVhbSBjb21taXQgNjcyZDA4ODBiNzc5OGE5MTdi Y2M2MjIzMDhmMjVhMGZiYjk5MWRhYiBdCgpTdXBwb3J0IGZvciBJU1NJIHZlcnNpb24gMCB3YXMg cmVjZW50bHkgYnJva2VuIGFzIHRoZSBhcm1fc3JxX2NtZApjb21tYW5kLCB3aGljaCBpcyB1c2Vk IG9ubHkgZm9yIElTU0kgdmVyc2lvbiAwLCB3YXMgZ2l2ZW4gdGhlIG9wY29kZQpmb3IgSVNTSSB2 ZXJzaW9uIDEgaW5zdGVhZCBvZiBJU1NJIHZlcnNpb24gMC4KCkNoYW5nZSBhcm1fc3JxX2NtZCB0 byB1c2UgdGhlIGNvcnJlY3QgY29tbWFuZCBvcGNvZGUgZm9yIElTU0kgdmVyc2lvbgowLgoKRml4 ZXM6IGFmMWJhMjkxYzVlNCAoJ3tuZXQsIElCfS9tbHg1OiBSZWZhY3RvciBpbnRlcm5hbCBTUlEg QVBJJykKU2lnbmVkLW9mZi1ieTogTm9hIE9zaGVyb3ZpY2ggPG5vYW9zQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQog ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3NycS5jIHwgMTIgKysrKysr LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcnEu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcnEuYwppbmRleCAz MDk5NjMwMDE1ZDcuLjc1YTE0NTQ3ZWUzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL3NycS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9zcnEuYwpAQCAtMjAxLDEzICsyMDEsMTMgQEAgc3RhdGljIGludCBk ZXN0cm95X3NycV9jbWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwKIHN0YXRpYyBpbnQgYXJt X3NycV9jbWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY29yZV9zcnEg KnNycSwKIAkJICAgICAgIHUxNiBsd20sIGludCBpc19zcnEpCiB7Ci0JLyogYXJtX3NycSBzdHJ1 Y3RzIG1pc3NpbmcgdXNpbmcgaWRlbnRpY2FsIHhyYyBvbmVzICovCi0JdTMyIHNycV9pbltNTFg1 X1NUX1NaX0RXKGFybV94cmNfc3JxX2luKV0gPSB7MH07Ci0JdTMyIHNycV9vdXRbTUxYNV9TVF9T Wl9EVyhhcm1feHJjX3NycV9vdXQpXSA9IHswfTsKKwl1MzIgc3JxX2luW01MWDVfU1RfU1pfRFco YXJtX3JxX2luKV0gPSB7MH07CisJdTMyIHNycV9vdXRbTUxYNV9TVF9TWl9EVyhhcm1fcnFfb3V0 KV0gPSB7MH07CiAKLQlNTFg1X1NFVChhcm1feHJjX3NycV9pbiwgc3JxX2luLCBvcGNvZGUsICAg TUxYNV9DTURfT1BfQVJNX1hSQ19TUlEpOwotCU1MWDVfU0VUKGFybV94cmNfc3JxX2luLCBzcnFf aW4sIHhyY19zcnFuLCBzcnEtPnNycW4pOwotCU1MWDVfU0VUKGFybV94cmNfc3JxX2luLCBzcnFf aW4sIGx3bSwgICAgICBsd20pOworCU1MWDVfU0VUKGFybV9ycV9pbiwgc3JxX2luLCBvcGNvZGUs IE1MWDVfQ01EX09QX0FSTV9SUSk7CisJTUxYNV9TRVQoYXJtX3JxX2luLCBzcnFfaW4sIG9wX21v ZCwgTUxYNV9BUk1fUlFfSU5fT1BfTU9EX1NSUSk7CisJTUxYNV9TRVQoYXJtX3JxX2luLCBzcnFf aW4sIHNycV9udW1iZXIsIHNycS0+c3Jxbik7CisJTUxYNV9TRVQoYXJtX3JxX2luLCBzcnFfaW4s IGx3bSwgICAgICBsd20pOwogCiAJcmV0dXJuICBtbHg1X2NtZF9leGVjKGRldiwgc3JxX2luLCBz aXplb2Yoc3JxX2luKSwKIAkJCSAgICAgIHNycV9vdXQsIHNpemVvZihzcnFfb3V0KSk7Ci0tIAoy LjEzLjUKCgpGcm9tIDU4ZWJmYTdmNDQ1M2Y4NjdjNjlkN2Y1MTk4NjZhYjYzNDNhMzJjYzcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVsaXNoYSA8ZXJhbmJlQG1lbGxh bm94LmNvbT4KRGF0ZTogV2VkLCAxNiBBdWcgMjAxNyAxNDozNzoxMSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggMjYvNDNdIG5ldC9tbHg1ZTogRml4IGRhbmdsaW5nIHBhZ2UgcG9pbnRlciBvbiBETUEg bWFwcGluZwogZXJyb3IKClsgVXBzdHJlYW0gY29tbWl0IDA1NTZjZTcyYWIxNjE1NmFmNmM5NGNk Yzc5NjRlNDMxMGFjYzk3YzAgXQoKRnVuY3Rpb24gbWx4NWVfZGVhbGxvY19yeF93cWUgaXMgdXNp bmcgcGFnZSBwb2ludGVyIHZhbHVlIGFzIGFuCmluZGljYXRpb24gdG8gdmFsaWQgRE1BIG1hcHBp bmcuIEluIGNhc2UgdGhhdCB0aGUgbWFwcGluZyBmYWlsZWQsIHdlCnJlbGVhc2VkIHRoZSBwYWdl IGJ1dCBrZXB0IHRoZSBkYW5nbGluZyBwb2ludGVyLiBTdG9yZSB0aGUgcGFnZSBwb2ludGVyCm9u bHkgYWZ0ZXIgdGhlIERNQSBtYXBwaW5nIHBhc3NlZCB0byBhdm9pZCBpbnZhbGlkIHBhZ2UgRE1B IHVubWFwLgoKRml4ZXM6IGJjNzdiMjQwYjNjNSAoIm5ldC9tbHg1ZTogQWRkIGZyYWdtZW50ZWQg bWVtb3J5IHN1cHBvcnQgZm9yIFJYIG11bHRpIHBhY2tldCBXUUUiKQpTaWduZWQtb2ZmLWJ5OiBF cmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9yeC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fcnguYwppbmRleCA2NmI1ZmVjMTUzMTMuLmY3MDAyOWQ1ZWVhMSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4 LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4LmMK QEAgLTIxNiwxMyArMjE2LDEzIEBAIHN0YXRpYyBpbmxpbmUgaW50IG1seDVlX3BhZ2VfYWxsb2Nf bWFwcGVkKHN0cnVjdCBtbHg1ZV9ycSAqcnEsCiAJaWYgKHVubGlrZWx5KCFwYWdlKSkKIAkJcmV0 dXJuIC1FTk9NRU07CiAKLQlkbWFfaW5mby0+cGFnZSA9IHBhZ2U7CiAJZG1hX2luZm8tPmFkZHIg PSBkbWFfbWFwX3BhZ2UocnEtPnBkZXYsIHBhZ2UsIDAsCiAJCQkJICAgICAgUlFfUEFHRV9TSVpF KHJxKSwgcnEtPmJ1ZmYubWFwX2Rpcik7CiAJaWYgKHVubGlrZWx5KGRtYV9tYXBwaW5nX2Vycm9y KHJxLT5wZGV2LCBkbWFfaW5mby0+YWRkcikpKSB7CiAJCXB1dF9wYWdlKHBhZ2UpOwogCQlyZXR1 cm4gLUVOT01FTTsKIAl9CisJZG1hX2luZm8tPnBhZ2UgPSBwYWdlOwogCiAJcmV0dXJuIDA7CiB9 Ci0tIAoyLjEzLjUKCgpGcm9tIGY5MjlmYzQ3NDVhN2Y0MGQ5YWE0MTNjNGU2ODk3ZDk4YThlMzc3 MDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEluYmFyIEthcm15IDxpbmJhcmtAbWVs bGFub3guY29tPgpEYXRlOiBNb24sIDE0IEF1ZyAyMDE3IDE2OjEyOjE2ICswMzAwClN1YmplY3Q6 IFtQQVRDSCAyNy80M10gbmV0L21seDVlOiBEb24ndCBvdmVycmlkZSB1c2VyIFJTUyB1cG9uIHNl dCBjaGFubmVscwoKWyBVcHN0cmVhbSBjb21taXQgNWE4ZTEyNjc4Yzc2N2NjZjhiYjE2ZDYyMzc1 NjllNGE3MDdkNjU1YiBdCgpDdXJyZW50bHksIGluY3JlYXNpbmcgdGhlIG51bWJlciBvZiBjb21i aW5lZCBjaGFubmVscyBpcyBjaGFuZ2luZwp0aGUgUlNTIHNwcmVhZCB0byB1c2UgdGhlIG5ldyBj cmVhdGVkIGNoYW5uZWxzLgpQcmV2ZW50IHRoZSBSU1Mgc3ByZWFkIGNoYW5nZSBpbiBjYXNlIHRo ZSB1c2VyIGV4cGxpY2l0bHkgZGVjbGFyZSBpdCwKdG8gYXZvaWQgb3ZlcnJpZGluZyB1c2VyIGNv bmZpZ3VyYXRpb24uCgpUZXN0ZWQ6CndoZW4gUlNTIGRlZmF1bHQ6CgojIGV0aHRvb2wgLUwgZW5z OCBjb21iaW5lZCA0ClJTUyBzcHJlYWQgd2lsbCBjaGFuZ2UgYW5kIHBvaW50IHRvIDQgY2hhbm5l bHMuCgojIGV0aHRvb2wgLVggZW5zOCBlcXVhbCA0CiMgZXRodG9vbCAtTCBlbnM4IGNvbWJpbmVk IDYKUlNTIHdpbGwgbm90IGNoYW5nZSBhZnRlciBpbmNyZWFzaW5nIHRoZSBudW1iZXIgb2YgdGhl IGNoYW5uZWxzLgoKRml4ZXM6IDhiZjM2ODYyMDQ4NiAoJ2V0aHRvb2w6IGVuc3VyZSBjaGFubmVs IGNvdW50cyBhcmUgd2l0aGluIGJvdW5kcyBkdXJpbmcgU0NIQU5ORUxTJykKU2lnbmVkLW9mZi1i eTogSW5iYXIgS2FybXkgPGluYmFya0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwppbmRleCAxNjQ4NmRm ZjE0OTMuLmE2MGY2ZjJmYTRlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCkBAIC01ODAsOCArNTgwLDEwIEBAIHN0YXRp YyBpbnQgbWx4NWVfc2V0X2NoYW5uZWxzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAluZXdf Y2hhbm5lbHMucGFyYW1zID0gcHJpdi0+Y2hhbm5lbHMucGFyYW1zOwogCW5ld19jaGFubmVscy5w YXJhbXMubnVtX2NoYW5uZWxzID0gY291bnQ7Ci0JbWx4NWVfYnVpbGRfZGVmYXVsdF9pbmRpcl9y cXQocHJpdi0+bWRldiwgbmV3X2NoYW5uZWxzLnBhcmFtcy5pbmRpcmVjdGlvbl9ycXQsCi0JCQkJ ICAgICAgTUxYNUVfSU5ESVJfUlFUX1NJWkUsIGNvdW50KTsKKwlpZiAoIW5ldGlmX2lzX3J4Zmhf Y29uZmlndXJlZChwcml2LT5uZXRkZXYpKQorCQltbHg1ZV9idWlsZF9kZWZhdWx0X2luZGlyX3Jx dChwcml2LT5tZGV2LAorCQkJCQkgICAgICBuZXdfY2hhbm5lbHMucGFyYW1zLmluZGlyZWN0aW9u X3JxdCwKKwkJCQkJICAgICAgTUxYNUVfSU5ESVJfUlFUX1NJWkUsIGNvdW50KTsKIAogCWlmICgh dGVzdF9iaXQoTUxYNUVfU1RBVEVfT1BFTkVELCAmcHJpdi0+c3RhdGUpKSB7CiAJCXByaXYtPmNo YW5uZWxzLnBhcmFtcyA9IG5ld19jaGFubmVscy5wYXJhbXM7Ci0tIAoyLjEzLjUKCgpGcm9tIGE4 YzYzYzI5ZWM4ZDc5ZjI4NDQyYmJmZjY2YjMzYWRkYWRlOTk5YjEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwg MjIgQXVnIDIwMTcgMTM6NTE6NTYgKzAzMDAKU3ViamVjdDogW1BBVENIIDI4LzQzXSBuZXQvbWx4 NWU6IFByb3Blcmx5IHJlc29sdmUgVEMgb2ZmbG9hZGVkIGlwdjYgdnhsYW4KIHR1bm5lbCBzb3Vy Y2UgYWRkcmVzcwoKWyBVcHN0cmVhbSBjb21taXQgMDg4MjA1MjhjOWQzZmYwZDBlZGEwNDdkN2Vm NWVjYWMyZGExZWY2YyBdCgpDdXJyZW50bHkgaWYgdnhsYW4gdHVubmVsIGlwdjYgc3JjIGlzbid0 IHN1cHBsaWVkIHRoZSBkcml2ZXIgZmFpbHMgdG8KcmVzb2x2ZSBpdCBhcyBwYXJ0IG9mIHRoZSBy b3V0ZSBsb29rdXAuIFRoZSByZXN1bHRpbmcgZW5jYXAgaGVhZGVyCmlzIGxlZnQgd2l0aCBhIHpl cm9lZCBvdXQgaXB2NiBzcmMgYWRkcmVzcyBzbyB0aGUgcGFja2V0cyBhcmUgc2VudAp3aXRoIHRo aXMgc3JjIGlwLgoKVXNlIGFuIGFwcHJvcHJpYXRlIHJvdXRlIGxvb2t1cCBBUEkgdGhhdCBhbHNv IHJlc29sdmVzIHRoZSBzb3VyY2UKaXB2NiBhZGRyZXNzIGlmIGl0J3Mgbm90IHN1cHBsaWVkLgoK Rml4ZXM6IGNlOTlmNmI5N2ZjZCAoJ25ldC9tbHg1ZTogU3VwcG9ydCBTUklPViBUQyBlbmNhcHN1 bGF0aW9uIG9mZmxvYWRzIGZvciBJUHY2IHR1bm5lbHMnKQpTaWduZWQtb2ZmLWJ5OiBQYXVsIEJs YWtleSA8cGF1bGJAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogT3IgR2VybGl0eiA8b2dlcmxp dHpAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogUm9pIERheWFuIDxyb2lkQG1lbGxhbm94LmNv bT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgfCA4ICsr Ky0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKaW5k ZXggOWRmOWZjMGQyNmY1Li41NThhODg0MWM5YTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jCkBAIC0xMjYyLDEyICsxMjYyLDEwIEBAIHN0 YXRpYyBpbnQgbWx4NWVfcm91dGVfbG9va3VwX2lwdjYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs CiAJc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3ID0gcHJpdi0+bWRldi0+cHJpdi5lc3dpdGNoOwog CWludCByZXQ7CiAKLQlkc3QgPSBpcDZfcm91dGVfb3V0cHV0KGRldl9uZXQobWlycmVkX2Rldiks IE5VTEwsIGZsNik7Ci0JcmV0ID0gZHN0LT5lcnJvcjsKLQlpZiAocmV0KSB7Ci0JCWRzdF9yZWxl YXNlKGRzdCk7CisJcmV0ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXAoZGV2X25ldChtaXJy ZWRfZGV2KSwgTlVMTCwgJmRzdCwKKwkJCQkJIGZsNik7CisJaWYgKHJldCA8IDApCiAJCXJldHVy biByZXQ7Ci0JfQogCiAJKm91dF90dGwgPSBpcDZfZHN0X2hvcGxpbWl0KGRzdCk7CiAKLS0gCjIu MTMuNQoKCkZyb20gNWJmOTkxZGNhZWNhODljODNhMTQ5YTVlNDQ0ZmY4NjZhOGYxMTlkOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2hhaGFyIEtsZWluIDxzaGFoYXJrQG1lbGxhbm94 LmNvbT4KRGF0ZTogVHVlLCAxIEF1ZyAyMDE3IDE1OjI5OjU1ICswMzAwClN1YmplY3Q6IFtQQVRD SCAyOS80M10gbmV0L21seDU6IEUtU3dpdGNoLCBVbmxvYWQgdGhlIHJlcHJlc2VudG9ycyBpbiB0 aGUKIGNvcnJlY3Qgb3JkZXIKClsgVXBzdHJlYW0gY29tbWl0IDE5MTIyMDM5NmRiODQwODIyZmM4 MThlZGYwM2M0OWYwYzAyZWIyMzcgXQoKV2hlbiBjaGFuZ2luZyBmcm9tIHN3aXRjaGRldiB0byBs ZWdhY3kgbW9kZSwgYWxsIHRoZSByZXByZXNlbnRvciBwb3J0CmRldmljZXMgKHVwbGluayBuaWMg YW5kIHJlcHMpIGFyZSBjbGVhbmVkIHVwLiBQYXJ0IG9mIHRoaXMgY2xlYW5pbmcKcHJvY2VzcyBp cyByZW1vdmluZyB0aGUgbmVpZ2ggZW50cmllcyBhbmQgdGhlIGhhc2ggdGFibGUgY29udGFpbmlu ZyB0aGVtLgpIb3dldmVyLCBhIHJlcHJlc2VudG9yIG5laWdoIGVudHJ5IG1pZ2h0IGJlIGxpbmtl ZCB0byB0aGUgdXBsaW5rIHBvcnQKaGFzaCB0YWJsZSBhbmQgaWYgdGhlIHVwbGluayBuaWMgaXMg Y2xlYW5lZCBmaXJzdCB0aGUgY2xlYW5pbmcgb2YgdGhlCnJlcHJlc2VudG9yIHdpbGwgZW5kIHVw IGluIG51bGwgZGVyZWYuCkZpeCB0aGF0IGJ5IHVubG9hZGluZyB0aGUgcmVwcmVzZW50b3JzIGlu IHRoZSBvcHBvc2l0ZSBvcmRlciBvZiBsb2FkLgoKRml4ZXM6IGNiNjdiODMyOTIxYyAoIm5ldC9t bHg1ZTogSW50cm9kdWNlIFNSSU9WIFZGIHJlcHJlc2VudG9ycyIpClNpZ25lZC1vZmYtYnk6IFNo YWhhciBLbGVpbiA8c2hhaGFya0BtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSb2kgRGF5YW4g PHJvaWRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRt QG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXN3aXRjaF9vZmZsb2Fkcy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKaW5kZXggYTUzZTk4MmE2ODYz Li5mMjg3NTBiYjU2ZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYwpAQCAtODE4LDcgKzgxOCw3IEBA IHZvaWQgZXN3X29mZmxvYWRzX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQg bnZwb3J0cykKIAlzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAqcmVwOwogCWludCB2cG9ydDsKIAot CWZvciAodnBvcnQgPSAwOyB2cG9ydCA8IG52cG9ydHM7IHZwb3J0KyspIHsKKwlmb3IgKHZwb3J0 ID0gbnZwb3J0cyAtIDE7IHZwb3J0ID49IDA7IHZwb3J0LS0pIHsKIAkJcmVwID0gJmVzdy0+b2Zm bG9hZHMudnBvcnRfcmVwc1t2cG9ydF07CiAJCWlmICghcmVwLT52YWxpZCkKIAkJCWNvbnRpbnVl OwotLSAKMi4xMy41CgoKRnJvbSAwNzI2OTkyYzFjMTA1NWU5YzJjNDdjZGZiZTk3YTEzZjUwMWM5 YWE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBt ZWxsYW5veC5jb20+CkRhdGU6IFR1ZSwgOCBBdWcgMjAxNyAxNTo1NjozNyArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMzAvNDNdIG5ldC9tbHg1ZTogRml4IGlubGluZSBoZWFkZXIgc2l6ZSBmb3Igc21h bGwgcGFja2V0cwoKWyBVcHN0cmVhbSBjb21taXQgNmFhY2UxN2U2NGY0YWExYzQ5ODAyYzQ2YmQx MDY4ODk2OGIzNzg3ZiBdCgpGaXggaW5saW5lIGhlYWRlciBzaXplLCBtYWtlIHN1cmUgaXQgaXMg bm90IGdyZWF0ZXIgdGhhbiBza2IgbGVuLgpUaGlzIGJ1ZyBlZmZlY3RzIHNtYWxsIHBhY2tldHMs IGZvciBleGFtcGxlIEwyIHBhY2tldHMgd2l0aCBzaXplIDwgMTguCgpGaXhlczogYWU3NjcxNWQx NTNlICgibmV0L21seDVlOiBDaGVjayB0aGUgbWluaW11bSBpbmxpbmUgaGVhZGVyIG1vZGUgYmVm b3JlIHhtaXQiKQpTaWduZWQtb2ZmLWJ5OiBNb3NoZSBTaGVtZXNoIDxtb3NoZUBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jIHwgMTcg KysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl90eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3R4LmMKaW5kZXggYWIzYmIwMjZmZjllLi4wOTFmMDNmMGQ4ZjAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCkBAIC0xMjcsMTAgKzEy NywxMCBAQCBzdGF0aWMgaW5saW5lIGludCBtbHg1ZV9za2JfbDNfaGVhZGVyX29mZnNldChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCQlyZXR1cm4gbWx4NWVfc2tiX2wyX2hlYWRlcl9vZmZzZXQoc2ti KTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbWx4NWVfY2FsY19taW5faW5saW5l KGVudW0gbWx4NV9pbmxpbmVfbW9kZXMgbW9kZSwKLQkJCQkJCSBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQorc3RhdGljIGlubGluZSB1MTYgbWx4NWVfY2FsY19taW5faW5saW5lKGVudW0gbWx4NV9pbmxp bmVfbW9kZXMgbW9kZSwKKwkJCQkJc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKLQlpbnQgaGxlbjsK Kwl1MTYgaGxlbjsKIAogCXN3aXRjaCAobW9kZSkgewogCWNhc2UgTUxYNV9JTkxJTkVfTU9ERV9O T05FOgpAQCAtMTM5LDE5ICsxMzksMjIgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbWx4 NWVfY2FsY19taW5faW5saW5lKGVudW0gbWx4NV9pbmxpbmVfbW9kZXMgbW9kZSwKIAkJaGxlbiA9 IGV0aF9nZXRfaGVhZGxlbihza2ItPmRhdGEsIHNrYl9oZWFkbGVuKHNrYikpOwogCQlpZiAoaGxl biA9PSBFVEhfSExFTiAmJiAhc2tiX3ZsYW5fdGFnX3ByZXNlbnQoc2tiKSkKIAkJCWhsZW4gKz0g VkxBTl9ITEVOOwotCQlyZXR1cm4gaGxlbjsKKwkJYnJlYWs7CiAJY2FzZSBNTFg1X0lOTElORV9N T0RFX0lQOgogCQkvKiBXaGVuIHRyYW5zcG9ydCBoZWFkZXIgaXMgc2V0IHRvIHplcm8sIGl0IG1l YW5zIG5vIHRyYW5zcG9ydAogCQkgKiBoZWFkZXIuIFdoZW4gdHJhbnNwb3J0IGhlYWRlciBpcyBz ZXQgdG8gMHhmZidzLCBpdCBtZWFucwogCQkgKiB0cmFuc3BvcnQgaGVhZGVyIHdhc24ndCBzZXQu CiAJCSAqLwotCQlpZiAoc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSkKLQkJCXJldHVybiBtbHg1 ZV9za2JfbDNfaGVhZGVyX29mZnNldChza2IpOworCQlpZiAoc2tiX3RyYW5zcG9ydF9vZmZzZXQo c2tiKSkgeworCQkJaGxlbiA9IG1seDVlX3NrYl9sM19oZWFkZXJfb2Zmc2V0KHNrYik7CisJCQli cmVhazsKKwkJfQogCQkvKiBmYWxsIHRocm91Z2ggKi8KIAljYXNlIE1MWDVfSU5MSU5FX01PREVf TDI6CiAJZGVmYXVsdDoKLQkJcmV0dXJuIG1seDVlX3NrYl9sMl9oZWFkZXJfb2Zmc2V0KHNrYik7 CisJCWhsZW4gPSBtbHg1ZV9za2JfbDJfaGVhZGVyX29mZnNldChza2IpOwogCX0KKwlyZXR1cm4g bWluX3QodTE2LCBobGVuLCBza2ItPmxlbik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1 ZV90eF9za2JfcHVsbF9pbmxpbmUodW5zaWduZWQgY2hhciAqKnNrYl9kYXRhLAotLSAKMi4xMy41 CgoKRnJvbSA2OGQ3NmQ0MzZhMzA3OWQ5ZTU4NzRmNzRjODE4NjJjZmU3MzZiNGExIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+CkRh dGU6IE1vbiwgMjggQXVnIDIwMTcgMTg6NDU6MDggKzAzMDAKU3ViamVjdDogW1BBVENIIDMxLzQz XSBuZXQvbWx4NWU6IEZpeCBDUSBtb2RlcmF0aW9uIG1vZGUgbm90IHNldCBwcm9wZXJseQoKWyBV cHN0cmVhbSBjb21taXQgMTIxM2FkMjhmOTU5NWEwOGUzODc3MjQ4YmJiYTFhMjVjNDAyMjVkNiBd CgpjcV9wZXJpb2RfbW9kZSBhc3NpZ25tZW50IHdhcyBtaXN0YWtlbmx5IHJlbW92ZWQgc28gaXQg d2FzIGFsd2F5cyBzZXQgdG8gIjAiLAp3aGljaCBpcyBFUUUgYmFzZWQgbW9kZXJhdGlvbiwgcmVn YXJkbGVzcyBvZiB0aGUgZGV2aWNlIENBUHMgYW5kCnJlcXVlc3RlZCB2YWx1ZSBpbiBldGh0b29s LgoKRml4ZXM6IDZhOTc2NGVmYjI1NSAoIm5ldC9tbHg1ZTogSXNvbGF0ZSBvcGVuX2NoYW5uZWxz IGZyb20gcHJpdi0+cGFyYW1zIikKU2lnbmVkLW9mZi1ieTogVGFsIEdpbGJvYSA8dGFsZ2lAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94 LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFp bi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwppbmRleCAwNzJhYThh MTNhMGEuLjAwYjUxMjUyYjgwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0xOTM2LDYgKzE5MzYsNyBAQCBzdGF0aWMgdm9p ZCBtbHg1ZV9idWlsZF9yeF9jcV9wYXJhbShzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAl9CiAK IAltbHg1ZV9idWlsZF9jb21tb25fY3FfcGFyYW0ocHJpdiwgcGFyYW0pOworCXBhcmFtLT5jcV9w ZXJpb2RfbW9kZSA9IHBhcmFtcy0+cnhfY3FfcGVyaW9kX21vZGU7CiB9CiAKIHN0YXRpYyB2b2lk IG1seDVlX2J1aWxkX3R4X2NxX3BhcmFtKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAotLSAKMi4x My41CgoKRnJvbSBmNjdlOWVmNTllZDFmNDU5NDJiZmUyZjJjYmI1YTc4ZjZhYjQxNzA3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAzMCBBdWcgMjAxNyAxNzo0OToyOSAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMzIvNDNdIFJldmVydCAibmV0OiBwaHk6IENvcnJlY3RseSBwcm9jZXNzIFBIWV9IQUxU RUQgaW4KIHBoeV9zdG9wX21hY2hpbmUoKSIKClsgVXBzdHJlYW0gY29tbWl0IGViYzgyNTRhZWFl MzQyMjZkMGJjOGZkYTMwOWZkOTc5MGQ0ZGNjZmUgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCA3YWQ4 MTNmMjA4NTMzY2ViZmNjMzJkM2Q3NDc0ZGMxNjc3ZDFiMDlhICgibmV0OiBwaHk6CkNvcnJlY3Rs eSBwcm9jZXNzIFBIWV9IQUxURUQgaW4gcGh5X3N0b3BfbWFjaGluZSgpIikgYmVjYXVzZSBpdCBp cwpjcmVhdGluZyB0aGUgcG9zc2liaWxpdHkgZm9yIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNl LgoKRGF2aWQgRGFuZXkgcHJvdmlkZSB0aGUgZm9sbG93aW5nIGNhbGwgdHJhY2UgYW5kIGRpYWdy YW0gb2YgZXZlbnRzOgoKV2hlbiBuZG9fc3RvcCgpIGlzIGNhbGxlZCB3ZSBjYWxsOgoKIHBoeV9k aXNjb25uZWN0KCkKICAgICstLS0+IHBoeV9zdG9wX2ludGVycnVwdHMoKSBpbXBsaWVzOiBwaHlk ZXYtPmlycSA9IFBIWV9QT0xMOwogICAgKy0tLT4gcGh5X3N0b3BfbWFjaGluZSgpCiAgICB8ICAg ICAgKy0tLT4gcGh5X3N0YXRlX21hY2hpbmUoKQogICAgfCAgICAgICAgICAgICAgKy0tLS0+IHF1 ZXVlX2RlbGF5ZWRfd29yaygpOiBXb3JrIHF1ZXVlZC4KICAgICstLS0+cGh5X2RldGFjaCgpIGlt cGxpZXM6IHBoeWRldi0+YXR0YWNoZWRfZGV2ID0gTlVMTDsKCk5vdyBhdCBhIGxhdGVyIHRpbWUg dGhlIHF1ZXVlZCB3b3JrIGRvZXM6CgogcGh5X3N0YXRlX21hY2hpbmUoKQogICAgKy0tLS0+bmV0 aWZfY2Fycmllcl9vZmYocGh5ZGV2LT5hdHRhY2hlZF9kZXYpOiBPaCBubyEgSXQgaXMgTlVMTDoK CiBDUFUgMTIgVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgdmlydHVh bCBhZGRyZXNzCjAwMDAwMDAwMDAwMDAwNDgsIGVwYyA9PSBmZmZmZmZmZjgwZGUzN2VjLCByYSA9 PSBmZmZmZmZmZjgwYzdjCk9vcHNbIzFdOgpDUFU6IDEyIFBJRDogMTUwMiBDb21tOiBrd29ya2Vy LzEyOjEgTm90IHRhaW50ZWQgNC45LjQzLUNhdml1bS1PY3Rlb24rICMxCldvcmtxdWV1ZTogZXZl bnRzX3Bvd2VyX2VmZmljaWVudCBwaHlfc3RhdGVfbWFjaGluZQp0YXNrOiA4MDAwMDAwNDAyMWVk MTAwIHRhc2suc3RhY2s6IDgwMDAwMDA0MDlkNzAwMDAKJCAwICAgOiAwMDAwMDAwMDAwMDAwMDAw IGZmZmZmZmZmODQ3MjAwNjAgMDAwMDAwMDAwMDAwMDA0OCAwMDAwMDAwMDAwMDAwMDA0CiQgNCAg IDogMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAxIDAwMDAwMDAwMDAwMDAwMDQgMDAw MDAwMDAwMDAwMDAwMAokIDggICA6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAw MDAwMDAwMGZmZmY5OGYzIDAwMDAwMDAwMDAwMDAwMDAKJDEyICAgOiA4MDAwMDAwNDA5ZDczZmUw IDAwMDAwMDAwMDAwMDljMDAgZmZmZmZmZmY4NDY1NDdjOCAwMDAwMDAwMDAwMDBhZjNiCiQxNiAg IDogODAwMDAwMDQwOTZiYWI2OCA4MDAwMDAwNDA5NmJhYmQwIDAwMDAwMDAwMDAwMDAwMDAgODAw MDAwMDQwOTZiYTgwMAokMjAgICA6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCBm ZmZmZmZmZjgxMDkwMDAwIDAwMDAwMDAwMDAwMDAwMDgKJDI0ICAgOiAwMDAwMDAwMDAwMDAwMDYx IGZmZmZmZmZmODA4NjM3YjAKJDI4ICAgOiA4MDAwMDAwNDA5ZDcwMDAwIDgwMDAwMDA0MDlkNzNj ZjAgODAwMDAwMDAyNzFiZDMwMCBmZmZmZmZmZjgwYzc4MDRjCkhpICAgIDogMDAwMDAwMDAwMDAw MDAyYQpMbyAgICA6IDAwMDAwMDAwMDAwMDAwM2YKZXBjICAgOiBmZmZmZmZmZjgwZGUzN2VjIG5l dGlmX2NhcnJpZXJfb2ZmKzB4Yy8weDU4CnJhICAgIDogZmZmZmZmZmY4MGM3ODA0YyBwaHlfc3Rh dGVfbWFjaGluZSsweDQ4Yy8weDRmOApTdGF0dXM6IDE0MDA5Y2UzICAgICAgICBLWCBTWCBVWCBL RVJORUwgRVhMIElFCkNhdXNlIDogMDA4MDAwMDggKEV4Y0NvZGUgMDIpCkJhZFZBIDogMDAwMDAw MDAwMDAwMDA0OApQcklkICA6IDAwMGQ5NTAxIChDYXZpdW0gT2N0ZW9uIElJSSkKTW9kdWxlcyBs aW5rZWQgaW46ClByb2Nlc3Mga3dvcmtlci8xMjoxIChwaWQ6IDE1MDIsIHRocmVhZGluZm89ODAw MDAwMDQwOWQ3MDAwMCwKdGFzaz04MDAwMDAwNDAyMWVkMTAwLCB0bHM9MDAwMDAwMDAwMDAwMDAw MCkKU3RhY2sgOiA4MDAwMDAwNDA5YTU0MDAwIDgwMDAwMDA0MDk2YmFiNjggODAwMDAwMDAyNzFi ZDMwMCA4MDAwMDAwMDI3MWMxZTAwCiAgICAgICAgMDAwMDAwMDAwMDAwMDAwMCBmZmZmZmZmZjgw OGExNzA4IDgwMDAwMDA0MDlhNTQwMDAgODAwMDAwMDAyNzFiZDMwMAogICAgICAgIDgwMDAwMDAw MjcxYmQzMjAgODAwMDAwMDQwOWE1NDAzMCBmZmZmZmZmZjgwZmYwZjAwIDAwMDAwMDAwMDAwMDAw MDEKICAgICAgICBmZmZmZmZmZjgxMDkwMDAwIGZmZmZmZmZmODA4YTFhYzAgODAwMDAwMDQwMjE4 MjA4MCBmZmZmZmZmZjg0NjUwMDAwCiAgICAgICAgODAwMDAwMDQwMjE4MjA4MCBmZmZmZmZmZjg0 NjUwMDAwIGZmZmZmZmZmODBmZjAwMDAgODAwMDAwMDQwOWE1NDAwMAogICAgICAgIGZmZmZmZmZm ODA4YTE5NzAgMDAwMDAwMDAwMDAwMDAwMCA4MDAwMDAwNDA5OWU4MDAwIDgwMDAwMDA0MDIwOTky NDAKICAgICAgICAwMDAwMDAwMDAwMDAwMDAwIGZmZmZmZmZmODA4YTg1OTggMDAwMDAwMDAwMDAw MDAwMCA4MDAwMDAwNDA4ZWVlYjAwCiAgICAgICAgODAwMDAwMDQwOWE1NDAwMCAwMDAwMDAwMDgx MGExZDAwIDAwMDAwMDAwMDAwMDAwMDAgODAwMDAwMDQwOWQ3M2RlOAogICAgICAgIDgwMDAwMDA0 MDlkNzNkZTggMDAwMDAwMDAwMDAwMDA4OCAwMDAwMDAwMDBjMDA5YzAwIDgwMDAwMDA0MDlkNzNl MDgKICAgICAgICA4MDAwMDAwNDA5ZDczZTA4IDgwMDAwMDA0MDIxODIwODAgZmZmZmZmZmY4MDhh ODRkMCA4MDAwMDAwNDAyMTgyMDgwCiAgICAgICAgLi4uCkNhbGwgVHJhY2U6Cls8ZmZmZmZmZmY4 MGRlMzdlYz5dIG5ldGlmX2NhcnJpZXJfb2ZmKzB4Yy8weDU4Cls8ZmZmZmZmZmY4MGM3ODA0Yz5d IHBoeV9zdGF0ZV9tYWNoaW5lKzB4NDhjLzB4NGY4Cls8ZmZmZmZmZmY4MDhhMTcwOD5dIHByb2Nl c3Nfb25lX3dvcmsrMHgxNTgvMHgzNjgKWzxmZmZmZmZmZjgwOGExYWMwPl0gd29ya2VyX3RocmVh ZCsweDE1MC8weDRjMApbPGZmZmZmZmZmODA4YTg1OTg+XSBrdGhyZWFkKzB4YzgvMHhlMApbPGZm ZmZmZmZmODA4NjE3ZjA+XSByZXRfZnJvbV9rZXJuZWxfdGhyZWFkKzB4MTQvMHgxYwoKVGhlIG9y aWdpbmFsIG1vdGl2YXRpb24gZm9yIHRoaXMgY2hhbmdlIG9yaWdpbmF0ZWQgZnJvbSBNYXJjIEdv bnphbGVzCmluZGljYXRpbmcgdGhhdCBoaXMgbmV0d29yayBkcml2ZXIgZGlkIG5vdCBoYXZlIGl0 cyBhZGp1c3RfbGluayBjYWxsYmFjawpleGVjdXRpbmcgd2l0aCBwaHlkZXYtPmxpbmsgPSAwIHdo aWxlIGhlIHdhcyBleHBlY3RpbmcgaXQuCgpQSFlMSUIgaGFzIG5ldmVyIG1hZGUgYW55IHN1Y2gg Z3VhcmFudGVlcyBldmVyIGJlY2F1c2UgcGh5X3N0b3AoKSBtZXJlbHkganVzdAp0ZWxscyB0aGUg d29ya3F1ZXVlIHRvIG1vdmUgaW50byBQSFlfSEFMVEVEIHN0YXRlIHdoaWNoIHdpbGwgaGFwcGVu CmFzeW5jaHJvbm91c2x5LgoKUmVwb3J0ZWQtYnk6IEdlZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnQr cmVuZXNhc0BnbGlkZXIuYmU+ClJlcG9ydGVkLWJ5OiBEYXZpZCBEYW5leSA8ZGRhbmV5LmNhdm1A Z21haWwuY29tPgpGaXhlczogN2FkODEzZjIwODUzICgibmV0OiBwaHk6IENvcnJlY3RseSBwcm9j ZXNzIFBIWV9IQUxURUQgaW4gcGh5X3N0b3BfbWFjaGluZSgpIikKU2lnbmVkLW9mZi1ieTogRmxv cmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5 LmMgfCAzIC0tLQogMSBmaWxlIGNoYW5nZWQsIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcGh5L3BoeS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jCmluZGV4IGIzMGQ5 Y2VlZThiYy4uZWViYjBlMWM3MGZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5LmMK KysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeS5jCkBAIC03NDksOSArNzQ5LDYgQEAgdm9pZCBwaHlf c3RvcF9tYWNoaW5lKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiAJaWYgKHBoeWRldi0+c3Rh dGUgPiBQSFlfVVAgJiYgcGh5ZGV2LT5zdGF0ZSAhPSBQSFlfSEFMVEVEKQogCQlwaHlkZXYtPnN0 YXRlID0gUEhZX1VQOwogCW11dGV4X3VubG9jaygmcGh5ZGV2LT5sb2NrKTsKLQotCS8qIE5vdyB3 ZSBjYW4gcnVuIHRoZSBzdGF0ZSBtYWNoaW5lIHN5bmNocm9ub3VzbHkgKi8KLQlwaHlfc3RhdGVf bWFjaGluZSgmcGh5ZGV2LT5zdGF0ZV9xdWV1ZS53b3JrKTsKIH0KIAogLyoqCi0tIAoyLjEzLjUK CgpGcm9tIGUzY2Q1MmJlODhhMTMyYjNhOTE3MmZhYWY2YWJkMTU0YWZjODdkNjIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KRGF0ZTog U3VuLCAzMCBKdWwgMjAxNyAxOTozNjowNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzMvNDNdIG5l dDogZmVjOiBBbGxvdyByZWNlcHRpb24gb2YgZnJhbWVzIGJpZ2dlciB0aGFuIDE1MjIKIGJ5dGVz CgpbIFVwc3RyZWFtIGNvbW1pdCBmYmJlZWZkZDIxMDQ5ZmNmOTQzN2M4MDlkYTM4MjhiMjEwNTc3 ZjM2IF0KClRoZSBGRUMgUmVjZWl2ZSBDb250cm9sIFJlZ2lzdGVyIGhhcyBhIDE0IGJpdCBmaWVs ZCBpbmRpY2F0aW5nIHRoZQpsb25nZXN0IGZyYW1lIHRoYXQgbWF5IGJlIHJlY2VpdmVkLiBJdCBp cyBiZWluZyBzZXQgdG8gMTUyMi4gRnJhbWVzCmxvbmdlciB0aGFuIHRoaXMgYXJlIGRpc2NhcmRl ZCwgYnV0IGNvdW50ZWQgYXMgYmVpbmcgaW4gZXJyb3IuCgpXaGVuIHVzaW5nIERTQSwgZnJhbWVz IGZyb20gdGhlIHN3aXRjaCBoYXMgYW4gYWRkaXRpb25hbCBoZWFkZXIsCmVpdGhlciA0IG9yIDgg Ynl0ZXMgaWYgYSBNYXJ2ZWxsIHN3aXRjaCBpcyB1c2VkLiBUaHVzIGEgZnVsbCBNVFUgZnJhbWUK b2YgMTUyMiBieXRlcyByZWNlaXZlZCBieSB0aGUgc3dpdGNoIG9uIGEgcG9ydCBiZWNvbWVzIDE1 MzAgYnl0ZXMgd2hlbgpwYXNzZWQgdG8gdGhlIGhvc3QgdmlhIHRoZSBGRUMgaW50ZXJmYWNlLgoK Q2hhbmdlIHRoZSBtYXhpbXVtIHJlY2VpdmUgc2l6ZSB0byAyMDQ4IC0gNjQsIHdoZXJlIDY0IGlz IHRoZSBtYXhpbXVtCnJ4X2FsaWdubWVudCBhcHBsaWVkIG9uIHRoZSByZWNlaXZlIGJ1ZmZlciBm b3IgQVZCIGNhcGFibGUgRkVDCmNvcmVzLiBVc2UgdGhpcyB2YWx1ZSBhbHNvIGZvciB0aGUgbWF4 aW11bSByZWNlaXZlIGJ1ZmZlciBzaXplLiBUaGUKZHJpdmVyIGlzIGFscmVhZHkgYWxsb2NhdGlu ZyBhIHJlY2VpdmUgU0tCIG9mIDIwNDggYnl0ZXMsIHNvIHRoaXMKY2hhbmdlIHNob3VsZCBub3Qg aGF2ZSBhbnkgc2lnbmlmaWNhbnQgZWZmZWN0cy4KClRlc3RlZCBvbiBpbXg1MSwgaW14NiwgdmY2 MTAuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYyB8IDggKysrKystLS0KIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwppbmRleCBmN2M4NjQ5ZmQyOGYuLjAxMDg0Y2Q0YTVj MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTE3Mywx MCArMTczLDEyIEBAIE1PRFVMRV9QQVJNX0RFU0MobWFjYWRkciwgIkZFQyBFdGhlcm5ldCBNQUMg YWRkcmVzcyIpOwogI2VuZGlmIC8qIENPTkZJR19NNTI3MiAqLwogCiAvKiBUaGUgRkVDIHN0b3Jl cyBkZXN0L3NyYy90eXBlL3ZsYW4sIGRhdGEsIGFuZCBjaGVja3N1bSBmb3IgcmVjZWl2ZSBwYWNr ZXRzLgorICoKKyAqIDIwNDggYnl0ZSBza2J1ZnMgYXJlIGFsbG9jYXRlZC4gSG93ZXZlciwgYWxp Z25tZW50IHJlcXVpcmVtZW50cworICogdmFyaWVzIGJldHdlZW4gRkVDIHZhcmlhbnRzLiBXb3Jz dCBjYXNlIGlzIDY0LCBzbyByb3VuZCBkb3duIGJ5IDY0LgogICovCi0jZGVmaW5lIFBLVF9NQVhC VUZfU0laRQkJMTUyMgorI2RlZmluZSBQS1RfTUFYQlVGX1NJWkUJCShyb3VuZF9kb3duKDIwNDgg LSA2NCwgNjQpKQogI2RlZmluZSBQS1RfTUlOQlVGX1NJWkUJCTY0Ci0jZGVmaW5lIFBLVF9NQVhC TFJfU0laRQkJMTUzNgogCiAvKiBGRUMgcmVjZWl2ZSBhY2NlbGVyYXRpb24gKi8KICNkZWZpbmUg RkVDX1JBQ0NfSVBESVMJCSgxIDw8IDEpCkBAIC04NDgsNyArODUwLDcgQEAgc3RhdGljIHZvaWQg ZmVjX2VuZXRfZW5hYmxlX3Jpbmcoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiAJZm9yIChpID0g MDsgaSA8IGZlcC0+bnVtX3J4X3F1ZXVlczsgaSsrKSB7CiAJCXJ4cSA9IGZlcC0+cnhfcXVldWVb aV07CiAJCXdyaXRlbChyeHEtPmJkLmRtYSwgZmVwLT5od3AgKyBGRUNfUl9ERVNfU1RBUlQoaSkp OwotCQl3cml0ZWwoUEtUX01BWEJMUl9TSVpFLCBmZXAtPmh3cCArIEZFQ19SX0JVRkZfU0laRShp KSk7CisJCXdyaXRlbChQS1RfTUFYQlVGX1NJWkUsIGZlcC0+aHdwICsgRkVDX1JfQlVGRl9TSVpF KGkpKTsKIAogCQkvKiBlbmFibGUgRE1BMS8yICovCiAJCWlmIChpKQotLSAKMi4xMy41CgoKRnJv bSAzZThhZjFkZDIxMjU1NWYyYWI5NjU3YTAyYjNkYjljMGVkMDZjZDdkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRhdGU6 IEZyaSwgMSBTZXAgMjAxNyAxMDo1MjozMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzQvNDNdIG1s eHN3OiBzcGVjdHJ1bTogRm9yYmlkIGxpbmtpbmcgdG8gZGV2aWNlcyB0aGF0IGhhdmUKIHVwcGVy cwoKWyBVcHN0cmVhbSBjb21taXQgMjVjYzcyYTMzODM1ZWQ4YTZmNTMxODBhODIyY2FkYWI4NTU4 NTJhYyBdCgpUaGUgbWx4c3cgZHJpdmVyIHJlbGllcyBvbiBORVRERVZfQ0hBTkdFVVBQRVIgZXZl bnRzIHRvIGNvbmZpZ3VyZSB0aGUKZGV2aWNlIGluIGNhc2UgYSBwb3J0IGlzIGVuc2xhdmVkIHRv IGEgbWFzdGVyIG5ldGRldiBzdWNoIGFzIGJyaWRnZSBvcgpib25kLgoKU2luY2UgdGhlIGRyaXZl ciBpZ25vcmVzIGV2ZW50cyB1bnJlbGF0ZWQgdG8gaXRzIHBvcnRzIGFuZCB0aGVpcgp1cHBlcnMs IGl0J3MgcG9zc2libGUgdG8gZW5naW5lZXIgc2l0dWF0aW9ucyBpbiB3aGljaCB0aGUgZGV2aWNl J3MgZGF0YQpwYXRoIGRpZmZlcnMgZnJvbSB0aGUga2VybmVsJ3MuCgpPbmUgZXhhbXBsZSB0byBz dWNoIGEgc2l0dWF0aW9uIGlzIHdoZW4gYSBwb3J0IGlzIGVuc2xhdmVkIHRvIGEgYm9uZAp0aGF0 IGlzIGFscmVhZHkgZW5zbGF2ZWQgdG8gYSBicmlkZ2UuIFdoZW4gdGhlIGJvbmQgd2FzIGVuc2xh dmVkIHRoZQpkcml2ZXIgaWdub3JlZCB0aGUgZXZlbnQgLSBhcyB0aGUgYm9uZCB3YXNuJ3Qgb25l IG9mIGl0cyB1cHBlcnMgLSBhbmQKdGhlcmVmb3JlIGEgYnJpZGdlIHBvcnQgaW5zdGFuY2UgaXNu J3QgY3JlYXRlZCBpbiB0aGUgZGV2aWNlLgoKVW50aWwgc3VjaCBjb25maWd1cmF0aW9ucyBhcmUg c3VwcG9ydGVkIGZvcmJpZCB0aGVtIGJ5IGNoZWNraW5nIHRoYXQgdGhlCnVwcGVyIGRldmljZSBk b2Vzbid0IGhhdmUgdXBwZXJzIG9mIGl0cyBvd24uCgpGaXhlczogMGQ2NWZjMTMwNDJmICgibWx4 c3c6IHNwZWN0cnVtOiBJbXBsZW1lbnQgTEFHIHBvcnQgam9pbi9sZWF2ZSIpClNpZ25lZC1vZmYt Ynk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KUmVwb3J0ZWQtYnk6IE5vZ2Fo IEZyYW5rZWwgPG5vZ2FoZkBtZWxsYW5veC5jb20+ClRlc3RlZC1ieTogTm9nYWggRnJhbmtlbCA8 bm9nYWhmQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5j IHwgNiArKysrKysKIGluY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggICAgICAgICAgICAgICAgICAg ICAgfCAyICsrCiBuZXQvY29yZS9kZXYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0 cnVtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCmlu ZGV4IDg4MzU3Y2VlNzY3OS4uOTQwZDYxMTU5YjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtLmMKQEAgLTQxMTAsNiArNDExMCw4IEBAIHN0YXRp YyBpbnQgbWx4c3dfc3BfbmV0ZGV2aWNlX3BvcnRfdXBwZXJfZXZlbnQoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwKIAkJCXJldHVybiAtRUlOVkFMOwogCQlpZiAoIWluZm8tPmxpbmtpbmcpCiAJCQli cmVhazsKKwkJaWYgKG5ldGRldl9oYXNfYW55X3VwcGVyX2Rldih1cHBlcl9kZXYpKQorCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCS8qIEhXIGxpbWl0YXRpb24gZm9yYmlkcyB0byBwdXQgcG9ydHMgdG8g bXVsdGlwbGUgYnJpZGdlcy4gKi8KIAkJaWYgKG5ldGlmX2lzX2JyaWRnZV9tYXN0ZXIodXBwZXJf ZGV2KSAmJgogCQkgICAgIW1seHN3X3NwX21hc3Rlcl9icmlkZ2VfY2hlY2sobWx4c3dfc3AsIHVw cGVyX2RldikpCkBAIC00Mjc0LDYgKzQyNzYsMTAgQEAgc3RhdGljIGludCBtbHhzd19zcF9uZXRk ZXZpY2VfYnJpZGdlX2V2ZW50KHN0cnVjdCBuZXRfZGV2aWNlICpicl9kZXYsCiAJCWlmIChpc192 bGFuX2Rldih1cHBlcl9kZXYpICYmCiAJCSAgICBicl9kZXYgIT0gbWx4c3dfc3AtPm1hc3Rlcl9i cmlkZ2UuZGV2KQogCQkJcmV0dXJuIC1FSU5WQUw7CisJCWlmICghaW5mby0+bGlua2luZykKKwkJ CWJyZWFrOworCQlpZiAobmV0ZGV2X2hhc19hbnlfdXBwZXJfZGV2KHVwcGVyX2RldikpCisJCQly ZXR1cm4gLUVJTlZBTDsKIAkJYnJlYWs7CiAJY2FzZSBORVRERVZfQ0hBTkdFVVBQRVI6CiAJCXVw cGVyX2RldiA9IGluZm8tPnVwcGVyX2RldjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0 ZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IDRlZDk1MmMxN2ZjNy4u NjYzYzQ2ZWUwNjU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCisrKyBi L2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKQEAgLTM4NjgsNiArMzg2OCw4IEBAIGludCBuZXRk ZXZfd2Fsa19hbGxfdXBwZXJfZGV2X3JjdShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogYm9vbCBu ZXRkZXZfaGFzX3VwcGVyX2Rldl9hbGxfcmN1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJ ICBzdHJ1Y3QgbmV0X2RldmljZSAqdXBwZXJfZGV2KTsKIAorYm9vbCBuZXRkZXZfaGFzX2FueV91 cHBlcl9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CisKIHZvaWQgKm5ldGRldl9sb3dlcl9n ZXRfbmV4dF9wcml2YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJICAgIHN0cnVjdCBs aXN0X2hlYWQgKippdGVyKTsKIHZvaWQgKm5ldGRldl9sb3dlcl9nZXRfbmV4dF9wcml2YXRlX3Jj dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9u ZXQvY29yZS9kZXYuYwppbmRleCA1MjhlZGM2OGE2NGEuLjNhNDBlMzBjODM4OCAxMDA2NDQKLS0t IGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUvZGV2LmMKQEAgLTU1OTAsMTIgKzU1OTAs MTMgQEAgRVhQT1JUX1NZTUJPTChuZXRkZXZfaGFzX3VwcGVyX2Rldl9hbGxfcmN1KTsKICAqIEZp bmQgb3V0IGlmIGEgZGV2aWNlIGlzIGxpbmtlZCB0byBhbiB1cHBlciBkZXZpY2UgYW5kIHJldHVy biB0cnVlIGluIGNhc2UKICAqIGl0IGlzLiBUaGUgY2FsbGVyIG11c3QgaG9sZCB0aGUgUlROTCBs b2NrLgogICovCi1zdGF0aWMgYm9vbCBuZXRkZXZfaGFzX2FueV91cHBlcl9kZXYoc3RydWN0IG5l dF9kZXZpY2UgKmRldikKK2Jvb2wgbmV0ZGV2X2hhc19hbnlfdXBwZXJfZGV2KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiB7CiAJQVNTRVJUX1JUTkwoKTsKIAogCXJldHVybiAhbGlzdF9lbXB0eSgm ZGV2LT5hZGpfbGlzdC51cHBlcik7CiB9CitFWFBPUlRfU1lNQk9MKG5ldGRldl9oYXNfYW55X3Vw cGVyX2Rldik7CiAKIC8qKgogICogbmV0ZGV2X21hc3Rlcl91cHBlcl9kZXZfZ2V0IC0gR2V0IG1h c3RlciB1cHBlciBkZXZpY2UKLS0gCjIuMTMuNQoKCkZyb20gMGM3ODgxMjA3YzM4ZWI5YTUwNjgw Y2NjZGVkOWJjMmQwMmVlMjg3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSWRvIFNj aGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpEYXRlOiBGcmksIDEgU2VwIDIwMTcgMTI6MjI6 MjUgKzAzMDAKU3ViamVjdDogW1BBVENIIDM1LzQzXSBicmlkZ2U6IHN3aXRjaGRldjogQ2xlYXIg Zm9yd2FyZCBtYXJrIHdoZW4gdHJhbnNtaXR0aW5nCiBwYWNrZXQKClsgVXBzdHJlYW0gY29tbWl0 IDc5ZTk5YmRkNjBiNDg0YWY5YWZlMDE0N2U4NWExM2U2NmQ1YzFjZGIgXQoKQ29tbWl0IDZiYzUw NmI0ZmIwNiAoImJyaWRnZTogc3dpdGNoZGV2OiBBZGQgZm9yd2FyZCBtYXJrIHN1cHBvcnQgZm9y CnN0YWNrZWQgZGV2aWNlcyIpIGFkZGVkIHRoZSAnb2ZmbG9hZF9md2RfbWFyaycgYml0IHRvIHRo ZSBza2IgaW4gb3JkZXIKdG8gYWxsb3cgZHJpdmVycyB0byBpbmRpY2F0ZSB0byB0aGUgYnJpZGdl IGRyaXZlciB0aGF0IHRoZXkgYWxyZWFkeQpmb3J3YXJkZWQgdGhlIHBhY2tldCBpbiBMMi4KCklu IGNhc2UgdGhlIGJpdCBpcyBzZXQsIGJlZm9yZSB0cmFuc21pdHRpbmcgdGhlIHBhY2tldCBmcm9t IGVhY2ggcG9ydCwKdGhlIHBvcnQncyBtYXJrIGlzIGNvbXBhcmVkIHdpdGggdGhlIG1hcmsgc3Rv cmVkIGluIHRoZSBza2IncyBjb250cm9sCmJsb2NrLiBJZiBib3RoIG1hcmtzIGFyZSBlcXVhbCwg d2Uga25vdyB0aGUgcGFja2V0IGFycml2ZWQgZnJvbSBhIHN3aXRjaApkZXZpY2UgdGhhdCBhbHJl YWR5IGZvcndhcmRlZCB0aGUgcGFja2V0IGFuZCBpdCdzIG5vdCByZS10cmFuc21pdHRlZC4KCkhv d2V2ZXIsIGlmIHRoZSBwYWNrZXQgaXMgdHJhbnNtaXR0ZWQgZnJvbSB0aGUgYnJpZGdlIGRldmlj ZSBpdHNlbGYKKGUuZy4sIGJyMCksIHdlIHNob3VsZCBjbGVhciB0aGUgJ29mZmxvYWRfZndkX21h cmsnIGJpdCBhcyB0aGUgbWFyawpzdG9yZWQgaW4gdGhlIHNrYidzIGNvbnRyb2wgYmxvY2sgaXNu J3QgdmFsaWQuCgpUaGlzIHNjZW5hcmlvIGNhbiBoYXBwZW4gaW4gcmFyZSBjYXNlcyB3aGVyZSBh IHBhY2tldCB3YXMgdHJhcHBlZCBkdXJpbmcKTDMgZm9yd2FyZGluZyBhbmQgZm9yd2FyZGVkIGJ5 IHRoZSBrZXJuZWwgdG8gYSBicmlkZ2UgZGV2aWNlLgoKRml4ZXM6IDZiYzUwNmI0ZmIwNiAoImJy aWRnZTogc3dpdGNoZGV2OiBBZGQgZm9yd2FyZCBtYXJrIHN1cHBvcnQgZm9yIHN0YWNrZWQgZGV2 aWNlcyIpClNpZ25lZC1vZmYtYnk6IElkbyBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4K UmVwb3J0ZWQtYnk6IFlvdGFtIEdpZ2kgPHlvdGFtZ0BtZWxsYW5veC5jb20+ClRlc3RlZC1ieTog WW90YW0gR2lnaSA8eW90YW1nQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28g PGppcmlAbWVsbGFub3guY29tPgpBY2tlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xh eUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2JyaWRnZS9icl9kZXZpY2UuYyB8IDMgKysrCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9i cl9kZXZpY2UuYyBiL25ldC9icmlkZ2UvYnJfZGV2aWNlLmMKaW5kZXggZjBmMzQ0N2U4YWE0Li5i NWQ3NmJjYjJkNDMgMTAwNjQ0Ci0tLSBhL25ldC9icmlkZ2UvYnJfZGV2aWNlLmMKKysrIGIvbmV0 L2JyaWRnZS9icl9kZXZpY2UuYwpAQCAtNTMsNiArNTMsOSBAQCBuZXRkZXZfdHhfdCBicl9kZXZf eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWJyc3Rh dHMtPnR4X2J5dGVzICs9IHNrYi0+bGVuOwogCXU2NF9zdGF0c191cGRhdGVfZW5kKCZicnN0YXRz LT5zeW5jcCk7CiAKKyNpZmRlZiBDT05GSUdfTkVUX1NXSVRDSERFVgorCXNrYi0+b2ZmbG9hZF9m d2RfbWFyayA9IDA7CisjZW5kaWYKIAlCUl9JTlBVVF9TS0JfQ0Ioc2tiKS0+YnJkZXYgPSBkZXY7 CiAKIAlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOwotLSAKMi4xMy41CgoKRnJvbSAxYzAxNjI4 MzBlZjk1Y2EzYTM3ZWYzNTRhMDlkOGYyY2E3NTBiZDFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KRGF0ZTog RnJpLCAxIFNlcCAyMDE3IDExOjI2OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNi80M10gUmV2 ZXJ0ICJuZXQ6IHVzZSBsaWIvcGVyY3B1X2NvdW50ZXIgQVBJIGZvcgogZnJhZ21lbnRhdGlvbiBt ZW0gYWNjb3VudGluZyIKClsgVXBzdHJlYW0gY29tbWl0IGZiNDUyYTFhYTNmZDQwMzRkNzk5OWUz MDljNTQ2NmZmMmQ3MDA1YWEgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCA2ZDdiODU3ZDU0MWVjZDFk OWJkOTk3Yzk3MjQyZDRlZjk0YjE5ZGUyLgoKVGhlcmUgaXMgYSBidWcgaW4gZnJhZ21lbnRhdGlv biBjb2RlcyB1c2Ugb2YgdGhlIHBlcmNwdV9jb3VudGVyIEFQSSwKdGhhdCBjYW4gY2F1c2UgaXNz dWVzIG9uIHN5c3RlbXMgd2l0aCBtYW55IENQVXMuCgpUaGUgZnJhZ19tZW1fbGltaXQoKSBqdXN0 IHJlYWRzIHRoZSBnbG9iYWwgY291bnRlciAoZmJjLT5jb3VudCksCndpdGhvdXQgY29uc2lkZXJp bmcgb3RoZXIgQ1BVcyBjYW4gaGF2ZSB1cHRvIGJhdGNoIHNpemUgKDEzMEspIHRoYXQKaGF2ZW4n dCBiZWVuIHN1YnRyYWN0ZWQgeWV0LiAgRHVlIHRvIHRoZSAzTUJ5dGVzIGxvd2VyIHRocmVzaCBs aW1pdCwKdGhpcyBiZWNvbWUgZGFuZ2Vyb3VzIGF0ID49MjQgQ1BVcyAoMyoxMDI0KjEwMjQvMTMw MDAwPTI0KS4KClRoZSBjb3JyZWN0IEFQSSB1c2FnZSB3b3VsZCBiZSB0byB1c2UgX19wZXJjcHVf Y291bnRlcl9jb21wYXJlKCkgd2hpY2gKZG9lcyB0aGUgcmlnaHQgdGhpbmcsIGFuZCB0YWtlcyBp bnRvIGFjY291bnQgdGhlIG51bWJlciBvZiAob25saW5lKQpDUFVzIGFuZCBiYXRjaCBzaXplLCB0 byBhY2NvdW50IGZvciB0aGlzIGFuZCBjYWxsIF9fcGVyY3B1X2NvdW50ZXJfc3VtKCkKd2hlbiBu ZWVkZWQuCgpXZSBjaG9vc2UgdG8gcmV2ZXJ0IHRoZSB1c2Ugb2YgdGhlIGxpYi9wZXJjcHVfY291 bnRlciBBUEkgZm9yIGZyYWcKbWVtb3J5IGFjY291bnRpbmcgZm9yIHNldmVyYWwgcmVhc29uczoK CjEpIE9uIHN5c3RlbXMgd2l0aCBDUFVzID4gMjQsIHRoZSBoZWF2aWVyIGZ1bGx5IGxvY2tlZAog ICBfX3BlcmNwdV9jb3VudGVyX3N1bSgpIGlzIGFsd2F5cyBpbnZva2VkLCB3aGljaCB3aWxsIGJl IG1vcmUKICAgZXhwZW5zaXZlIHRoYW4gdGhlIGF0b21pY190IHRoYXQgaXMgcmV2ZXJ0ZWQgdG8u CgpHaXZlbiBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIDI0IENQVXMgYXJlIGJlY29taW5nIGNvbW1v biB0aGlzIGRvZXNuJ3QKc2VlbSBsaWtlIGEgZ29vZCBvcHRpb24uICBUbyBtaXRpZ2F0ZSB0aGlz LCB0aGUgYmF0Y2ggc2l6ZSBjb3VsZCBiZQpkZWNyZWFzZWQgYW5kIHRocmVzaCBiZSBpbmNyZWFz ZWQuCgoyKSBUaGUgYWRkX2ZyYWdfbWVtX2xpbWl0K3N1Yl9mcmFnX21lbV9saW1pdCBwYWlycyBo YXBwZW4gb24gdGhlIFJYCiAgIENQVSwgYmVmb3JlIFNLQnMgYXJlIHB1c2hlZCBpbnRvIHNvY2tl dHMgb24gcmVtb3RlIENQVXMuICBHaXZlbgogICBOSUNzIGNhbiBvbmx5IGhhc2ggb24gTDIgcGFy dCBvZiB0aGUgSVAtaGVhZGVyLCB0aGUgTklDLVJYcSdzIHdpbGwKICAgbGlrZWx5IGJlIGxpbWl0 ZWQuICBUaHVzLCBhIGZhaXIgY2hhbmNlIHRoYXQgYXRvbWljIGFkZCtkZWMgaGFwcGVuCiAgIG9u IHRoZSBzYW1lIENQVS4KClJldmVydCBub3RlIHRoYXQgY29tbWl0IDFkNjExOWJhZjA2MSAoIm5l dDogZml4IHBlcmNwdSBtZW1vcnkgbGVha3MiKQpyZW1vdmVkIGluaXRfZnJhZ19tZW1fbGltaXQo KSBhbmQgaW5zdGVhZCB1c2UgaW5ldF9mcmFnc19pbml0X25ldCgpLgpBZnRlciB0aGlzIHJldmVy dCwgaW5ldF9mcmFnc191bmluaXRfbmV0KCkgYmVjb21lcyBlbXB0eS4KCkZpeGVzOiA2ZDdiODU3 ZDU0MWUgKCJuZXQ6IHVzZSBsaWIvcGVyY3B1X2NvdW50ZXIgQVBJIGZvciBmcmFnbWVudGF0aW9u IG1lbSBhY2NvdW50aW5nIikKRml4ZXM6IDFkNjExOWJhZjA2MSAoIm5ldDogZml4IHBlcmNwdSBt ZW1vcnkgbGVha3MiKQpTaWduZWQtb2ZmLWJ5OiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91 ZXJAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3QHN0cmxlbi5kZT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGluY2x1ZGUvbmV0L2luZXRfZnJhZy5oICB8IDMwICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQogbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jIHwgIDQgKy0tLQogMiBmaWxlcyBjaGFuZ2Vk LCAxMCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC9pbmV0X2ZyYWcuaCBiL2luY2x1ZGUvbmV0L2luZXRfZnJhZy5oCmluZGV4IDU5MzJlNmRl OGZjMC4uM2JiOGRmZWM3NzI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaAor KysgYi9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaApAQCAtMSwxNCArMSw5IEBACiAjaWZuZGVmIF9f TkVUX0ZSQUdfSF9fCiAjZGVmaW5lIF9fTkVUX0ZSQUdfSF9fCiAKLSNpbmNsdWRlIDxsaW51eC9w ZXJjcHVfY291bnRlci5oPgotCiBzdHJ1Y3QgbmV0bnNfZnJhZ3MgewotCS8qIFRoZSBwZXJjcHVf Y291bnRlciAibWVtIiBuZWVkIHRvIGJlIGNhY2hlbGluZSBhbGlnbmVkLgotCSAqICBtZW0uY291 bnQgbXVzdCBub3Qgc2hhcmUgY2FjaGVsaW5lIHdpdGggb3RoZXIgd3JpdGVycwotCSAqLwotCXN0 cnVjdCBwZXJjcHVfY291bnRlciAgIG1lbSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wOwot CisJLyogS2VlcCBhdG9taWMgbWVtIG9uIHNlcGFyYXRlIGNhY2hlbGluZXMgaW4gc3RydWN0cyB0 aGF0IGluY2x1ZGUgaXQgKi8KKwlhdG9taWNfdAkJbWVtIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9p bl9zbXA7CiAJLyogc3lzY3RscyAqLwogCWludAkJCXRpbWVvdXQ7CiAJaW50CQkJaGlnaF90aHJl c2g7CkBAIC0xMTAsMTEgKzEwNSwxMSBAQCB2b2lkIGluZXRfZnJhZ3NfZmluaShzdHJ1Y3QgaW5l dF9mcmFncyAqKTsKIAogc3RhdGljIGlubGluZSBpbnQgaW5ldF9mcmFnc19pbml0X25ldChzdHJ1 Y3QgbmV0bnNfZnJhZ3MgKm5mKQogewotCXJldHVybiBwZXJjcHVfY291bnRlcl9pbml0KCZuZi0+ bWVtLCAwLCBHRlBfS0VSTkVMKTsKKwlhdG9taWNfc2V0KCZuZi0+bWVtLCAwKTsKKwlyZXR1cm4g MDsKIH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBpbmV0X2ZyYWdzX3VuaW5pdF9uZXQoc3RydWN0IG5l dG5zX2ZyYWdzICpuZikKIHsKLQlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZuZi0+bWVtKTsKIH0K IAogdm9pZCBpbmV0X2ZyYWdzX2V4aXRfbmV0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYsIHN0cnVj dCBpbmV0X2ZyYWdzICpmKTsKQEAgLTE0MCwzMSArMTM1LDI0IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBpbmV0X2ZyYWdfZXZpY3Rpbmcoc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqcSkKIAogLyogTWVt b3J5IFRyYWNraW5nIEZ1bmN0aW9ucy4gKi8KIAotLyogVGhlIGRlZmF1bHQgcGVyY3B1X2NvdW50 ZXIgYmF0Y2ggc2l6ZSBpcyBub3QgYmlnIGVub3VnaCB0byBzY2FsZSB0bwotICogZnJhZ21lbnRh dGlvbiBtZW0gYWNjdCBzaXplcy4KLSAqIFRoZSBtZW0gc2l6ZSBvZiBhIDY0SyBmcmFnbWVudCBp cyBhcHByb3g6Ci0gKiAgKDQ0IGZyYWdtZW50cyAqIDI5NDQgdHJ1ZXNpemUpICsgZnJhZ19xdWV1 ZSBzdHJ1Y3QoMjAwKSA9IDEyOTczNiBieXRlcwotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGZy YWdfcGVyY3B1X2NvdW50ZXJfYmF0Y2ggPSAxMzAwMDA7Ci0KIHN0YXRpYyBpbmxpbmUgaW50IGZy YWdfbWVtX2xpbWl0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYpCiB7Ci0JcmV0dXJuIHBlcmNwdV9j b3VudGVyX3JlYWQoJm5mLT5tZW0pOworCXJldHVybiBhdG9taWNfcmVhZCgmbmYtPm1lbSk7CiB9 CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdWJfZnJhZ19tZW1fbGltaXQoc3RydWN0IG5ldG5zX2Zy YWdzICpuZiwgaW50IGkpCiB7Ci0JcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKCZuZi0+bWVtLCAt aSwgZnJhZ19wZXJjcHVfY291bnRlcl9iYXRjaCk7CisJYXRvbWljX3N1YihpLCAmbmYtPm1lbSk7 CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRfZnJhZ19tZW1fbGltaXQoc3RydWN0IG5ldG5z X2ZyYWdzICpuZiwgaW50IGkpCiB7Ci0JcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNoKCZuZi0+bWVt LCBpLCBmcmFnX3BlcmNwdV9jb3VudGVyX2JhdGNoKTsKKwlhdG9taWNfYWRkKGksICZuZi0+bWVt KTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgc3VtX2ZyYWdfbWVtX2xpbWl0KHN0 cnVjdCBuZXRuc19mcmFncyAqbmYpCitzdGF0aWMgaW5saW5lIGludCBzdW1fZnJhZ19tZW1fbGlt aXQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZikKIHsKLQlyZXR1cm4gcGVyY3B1X2NvdW50ZXJfc3Vt X3Bvc2l0aXZlKCZuZi0+bWVtKTsKKwlyZXR1cm4gYXRvbWljX3JlYWQoJm5mLT5tZW0pOwogfQog CiAvKiBSRkMgMzE2OCBzdXBwb3J0IDoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfZnJhZ21l bnQuYyBiL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYwppbmRleCBiNWU5MzE3ZWFmOWUuLjYzMWMw ZDBkN2NmOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jCisrKyBiL25ldC9p cHY0L2luZXRfZnJhZ21lbnQuYwpAQCAtMjM0LDEwICsyMzQsOCBAQCB2b2lkIGluZXRfZnJhZ3Nf ZXhpdF9uZXQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwgc3RydWN0IGluZXRfZnJhZ3MgKmYpCiAJ Y29uZF9yZXNjaGVkKCk7CiAKIAlpZiAocmVhZF9zZXFyZXRyeSgmZi0+cm5kX3NlcWxvY2ssIHNl cSkgfHwKLQkgICAgcGVyY3B1X2NvdW50ZXJfc3VtKCZuZi0+bWVtKSkKKwkgICAgc3VtX2ZyYWdf bWVtX2xpbWl0KG5mKSkKIAkJZ290byBldmljdF9hZ2FpbjsKLQotCXBlcmNwdV9jb3VudGVyX2Rl c3Ryb3koJm5mLT5tZW0pOwogfQogRVhQT1JUX1NZTUJPTChpbmV0X2ZyYWdzX2V4aXRfbmV0KTsK IAotLSAKMi4xMy41CgoKRnJvbSAxMzBhNjViMDNmYjlkYTliNDRhMmFiZDRlOTQyNjYxNTcyNmNj OGQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVy IDxicm91ZXJAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAxIFNlcCAyMDE3IDExOjI2OjEzICswMjAw ClN1YmplY3Q6IFtQQVRDSCAzNy80M10gUmV2ZXJ0ICJuZXQ6IGZpeCBwZXJjcHUgbWVtb3J5IGxl YWtzIgoKWyBVcHN0cmVhbSBjb21taXQgNWE2MzY0M2U1ODNiNmE5Nzg5ZDdhMjI1YWUwNzZmYjRl NjAzOTkxYyBdCgpUaGlzIHJldmVydHMgY29tbWl0IDFkNjExOWJhZjA2MTBmODEzZWI5ZDk1ODBl YjRmZDE2ZGU1YjRjZWIuCgpBZnRlciByZXZlcnRpbmcgY29tbWl0IDZkN2I4NTdkNTQxZSAoIm5l dDogdXNlIGxpYi9wZXJjcHVfY291bnRlciBBUEkKZm9yIGZyYWdtZW50YXRpb24gbWVtIGFjY291 bnRpbmciKSB0aGVuIGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhpcwpmaXgtdXAgcGF0Y2guICBBcyBw ZXJjcHVfY291bnRlciBpcyBubyBsb25nZXIgdXNlZCwgaXQgY2Fubm90Cm1lbW9yeSBsZWFrIGl0 IGFueS1sb25nZXIuCgpGaXhlczogNmQ3Yjg1N2Q1NDFlICgibmV0OiB1c2UgbGliL3BlcmNwdV9j b3VudGVyIEFQSSBmb3IgZnJhZ21lbnRhdGlvbiBtZW0gYWNjb3VudGluZyIpCkZpeGVzOiAxZDYx MTliYWYwNjEgKCJuZXQ6IGZpeCBwZXJjcHUgbWVtb3J5IGxlYWtzIikKU2lnbmVkLW9mZi1ieTog SmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9p bmV0X2ZyYWcuaCAgICAgICAgICAgICAgICAgfCAgNyArLS0tLS0tCiBuZXQvaWVlZTgwMjE1NC82 bG93cGFuL3JlYXNzZW1ibHkuYyAgICAgfCAxMSArKystLS0tLS0tLQogbmV0L2lwdjQvaXBfZnJh Z21lbnQuYyAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tLS0tLS0tCiBuZXQvaXB2Ni9uZXRm aWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgfCAxMiArKystLS0tLS0tLS0KIG5ldC9pcHY2L3Jl YXNzZW1ibHkuYyAgICAgICAgICAgICAgICAgICB8IDEyICsrKy0tLS0tLS0tLQogNSBmaWxlcyBj aGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9p bmNsdWRlL25ldC9pbmV0X2ZyYWcuaCBiL2luY2x1ZGUvbmV0L2luZXRfZnJhZy5oCmluZGV4IDNi YjhkZmVjNzcyNS4uNjM0ZDE5MjAzZTdkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pbmV0X2Zy YWcuaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaApAQCAtMTAzLDE1ICsxMDMsMTAgQEAg c3RydWN0IGluZXRfZnJhZ3MgewogaW50IGluZXRfZnJhZ3NfaW5pdChzdHJ1Y3QgaW5ldF9mcmFn cyAqKTsKIHZvaWQgaW5ldF9mcmFnc19maW5pKHN0cnVjdCBpbmV0X2ZyYWdzICopOwogCi1zdGF0 aWMgaW5saW5lIGludCBpbmV0X2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYp CitzdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9mcmFnc19pbml0X25ldChzdHJ1Y3QgbmV0bnNfZnJh Z3MgKm5mKQogewogCWF0b21pY19zZXQoJm5mLT5tZW0sIDApOwotCXJldHVybiAwOwogfQotc3Rh dGljIGlubGluZSB2b2lkIGluZXRfZnJhZ3NfdW5pbml0X25ldChzdHJ1Y3QgbmV0bnNfZnJhZ3Mg Km5mKQotewotfQotCiB2b2lkIGluZXRfZnJhZ3NfZXhpdF9uZXQoc3RydWN0IG5ldG5zX2ZyYWdz ICpuZiwgc3RydWN0IGluZXRfZnJhZ3MgKmYpOwogCiB2b2lkIGluZXRfZnJhZ19raWxsKHN0cnVj dCBpbmV0X2ZyYWdfcXVldWUgKnEsIHN0cnVjdCBpbmV0X2ZyYWdzICpmKTsKZGlmZiAtLWdpdCBh L25ldC9pZWVlODAyMTU0LzZsb3dwYW4vcmVhc3NlbWJseS5jIGIvbmV0L2llZWU4MDIxNTQvNmxv d3Bhbi9yZWFzc2VtYmx5LmMKaW5kZXggMzBkODc1ZGZmNmI1Li5mODViMDhiYWZmMTYgMTAwNjQ0 Ci0tLSBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vcmVhc3NlbWJseS5jCisrKyBiL25ldC9pZWVl ODAyMTU0LzZsb3dwYW4vcmVhc3NlbWJseS5jCkBAIC01ODAsMTkgKzU4MCwxNCBAQCBzdGF0aWMg aW50IF9fbmV0X2luaXQgbG93cGFuX2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldCkKIHsK IAlzdHJ1Y3QgbmV0bnNfaWVlZTgwMjE1NF9sb3dwYW4gKmllZWU4MDIxNTRfbG93cGFuID0KIAkJ bmV0X2llZWU4MDIxNTRfbG93cGFuKG5ldCk7Ci0JaW50IHJlczsKIAogCWllZWU4MDIxNTRfbG93 cGFuLT5mcmFncy5oaWdoX3RocmVzaCA9IElQVjZfRlJBR19ISUdIX1RIUkVTSDsKIAlpZWVlODAy MTU0X2xvd3Bhbi0+ZnJhZ3MubG93X3RocmVzaCA9IElQVjZfRlJBR19MT1dfVEhSRVNIOwogCWll ZWU4MDIxNTRfbG93cGFuLT5mcmFncy50aW1lb3V0ID0gSVBWNl9GUkFHX1RJTUVPVVQ7CiAKLQly ZXMgPSBpbmV0X2ZyYWdzX2luaXRfbmV0KCZpZWVlODAyMTU0X2xvd3Bhbi0+ZnJhZ3MpOwotCWlm IChyZXMpCi0JCXJldHVybiByZXM7Ci0JcmVzID0gbG93cGFuX2ZyYWdzX25zX3N5c2N0bF9yZWdp c3RlcihuZXQpOwotCWlmIChyZXMpCi0JCWluZXRfZnJhZ3NfdW5pbml0X25ldCgmaWVlZTgwMjE1 NF9sb3dwYW4tPmZyYWdzKTsKLQlyZXR1cm4gcmVzOworCWluZXRfZnJhZ3NfaW5pdF9uZXQoJmll ZWU4MDIxNTRfbG93cGFuLT5mcmFncyk7CisKKwlyZXR1cm4gbG93cGFuX2ZyYWdzX25zX3N5c2N0 bF9yZWdpc3RlcihuZXQpOwogfQogCiBzdGF0aWMgdm9pZCBfX25ldF9leGl0IGxvd3Bhbl9mcmFn c19leGl0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9mcmFn bWVudC5jIGIvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYwppbmRleCBiM2NkZWVjODVmMWYuLjRiZjNi OGFmMDI1NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2 NC9pcF9mcmFnbWVudC5jCkBAIC04NDQsOCArODQ0LDYgQEAgc3RhdGljIHZvaWQgX19pbml0IGlw NF9mcmFnc19jdGxfcmVnaXN0ZXIodm9pZCkKIAogc3RhdGljIGludCBfX25ldF9pbml0IGlwdjRf ZnJhZ3NfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogewotCWludCByZXM7Ci0KIAkvKiBGcmFn bWVudCBjYWNoZSBsaW1pdHMuCiAJICoKIAkgKiBUaGUgZnJhZ21lbnQgbWVtb3J5IGFjY291bnRp bmcgY29kZSwgKHRyaWVzIHRvKSBhY2NvdW50IGZvcgpAQCAtODcxLDEzICs4NjksOSBAQCBzdGF0 aWMgaW50IF9fbmV0X2luaXQgaXB2NF9mcmFnc19pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAK IAluZXQtPmlwdjQuZnJhZ3MubWF4X2Rpc3QgPSA2NDsKIAotCXJlcyA9IGluZXRfZnJhZ3NfaW5p dF9uZXQoJm5ldC0+aXB2NC5mcmFncyk7Ci0JaWYgKHJlcykKLQkJcmV0dXJuIHJlczsKLQlyZXMg PSBpcDRfZnJhZ3NfbnNfY3RsX3JlZ2lzdGVyKG5ldCk7Ci0JaWYgKHJlcykKLQkJaW5ldF9mcmFn c191bmluaXRfbmV0KCZuZXQtPmlwdjQuZnJhZ3MpOwotCXJldHVybiByZXM7CisJaW5ldF9mcmFn c19pbml0X25ldCgmbmV0LT5pcHY0LmZyYWdzKTsKKworCXJldHVybiBpcDRfZnJhZ3NfbnNfY3Rs X3JlZ2lzdGVyKG5ldCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fbmV0X2V4aXQgaXB2NF9mcmFnc19l eGl0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIv bmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Jl YXNtLmMKaW5kZXggOTg2ZDRjYTM4ODMyLi5iMjYzYmYzYTE5ZjcgMTAwNjQ0Ci0tLSBhL25ldC9p cHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYworKysgYi9uZXQvaXB2Ni9uZXRmaWx0 ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKQEAgLTYyMiwxOCArNjIyLDEyIEBAIEVYUE9SVF9TWU1C T0xfR1BMKG5mX2N0X2ZyYWc2X2dhdGhlcik7CiAKIHN0YXRpYyBpbnQgbmZfY3RfbmV0X2luaXQo c3RydWN0IG5ldCAqbmV0KQogewotCWludCByZXM7Ci0KIAluZXQtPm5mX2ZyYWcuZnJhZ3MuaGln aF90aHJlc2ggPSBJUFY2X0ZSQUdfSElHSF9USFJFU0g7CiAJbmV0LT5uZl9mcmFnLmZyYWdzLmxv d190aHJlc2ggPSBJUFY2X0ZSQUdfTE9XX1RIUkVTSDsKIAluZXQtPm5mX2ZyYWcuZnJhZ3MudGlt ZW91dCA9IElQVjZfRlJBR19USU1FT1VUOwotCXJlcyA9IGluZXRfZnJhZ3NfaW5pdF9uZXQoJm5l dC0+bmZfZnJhZy5mcmFncyk7Ci0JaWYgKHJlcykKLQkJcmV0dXJuIHJlczsKLQlyZXMgPSBuZl9j dF9mcmFnNl9zeXNjdGxfcmVnaXN0ZXIobmV0KTsKLQlpZiAocmVzKQotCQlpbmV0X2ZyYWdzX3Vu aW5pdF9uZXQoJm5ldC0+bmZfZnJhZy5mcmFncyk7Ci0JcmV0dXJuIHJlczsKKwlpbmV0X2ZyYWdz X2luaXRfbmV0KCZuZXQtPm5mX2ZyYWcuZnJhZ3MpOworCisJcmV0dXJuIG5mX2N0X2ZyYWc2X3N5 c2N0bF9yZWdpc3RlcihuZXQpOwogfQogCiBzdGF0aWMgdm9pZCBuZl9jdF9uZXRfZXhpdChzdHJ1 Y3QgbmV0ICpuZXQpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMgYi9uZXQvaXB2 Ni9yZWFzc2VtYmx5LmMKaW5kZXggZTFkYTViODg4Y2M0Li44NDYwMTJlYWU1MjYgMTAwNjQ0Ci0t LSBhL25ldC9pcHY2L3JlYXNzZW1ibHkuYworKysgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKQEAg LTcxNCwxOSArNzE0LDEzIEBAIHN0YXRpYyB2b2lkIGlwNl9mcmFnc19zeXNjdGxfdW5yZWdpc3Rl cih2b2lkKQogCiBzdGF0aWMgaW50IF9fbmV0X2luaXQgaXB2Nl9mcmFnc19pbml0X25ldChzdHJ1 Y3QgbmV0ICpuZXQpCiB7Ci0JaW50IHJlczsKLQogCW5ldC0+aXB2Ni5mcmFncy5oaWdoX3RocmVz aCA9IElQVjZfRlJBR19ISUdIX1RIUkVTSDsKIAluZXQtPmlwdjYuZnJhZ3MubG93X3RocmVzaCA9 IElQVjZfRlJBR19MT1dfVEhSRVNIOwogCW5ldC0+aXB2Ni5mcmFncy50aW1lb3V0ID0gSVBWNl9G UkFHX1RJTUVPVVQ7CiAKLQlyZXMgPSBpbmV0X2ZyYWdzX2luaXRfbmV0KCZuZXQtPmlwdjYuZnJh Z3MpOwotCWlmIChyZXMpCi0JCXJldHVybiByZXM7Ci0JcmVzID0gaXA2X2ZyYWdzX25zX3N5c2N0 bF9yZWdpc3RlcihuZXQpOwotCWlmIChyZXMpCi0JCWluZXRfZnJhZ3NfdW5pbml0X25ldCgmbmV0 LT5pcHY2LmZyYWdzKTsKLQlyZXR1cm4gcmVzOworCWluZXRfZnJhZ3NfaW5pdF9uZXQoJm5ldC0+ aXB2Ni5mcmFncyk7CisKKwlyZXR1cm4gaXA2X2ZyYWdzX25zX3N5c2N0bF9yZWdpc3RlcihuZXQp OwogfQogCiBzdGF0aWMgdm9pZCBfX25ldF9leGl0IGlwdjZfZnJhZ3NfZXhpdF9uZXQoc3RydWN0 IG5ldCAqbmV0KQotLSAKMi4xMy41CgoKRnJvbSA0NDY5MjlmODY3YjRhN2M3NzFhOGY2ZjVhYzEy OGY2ZmEzZDhhNThhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDbGF1ZGl1IE1hbm9p bCA8Y2xhdWRpdS5tYW5vaWxAbnhwLmNvbT4KRGF0ZTogTW9uLCA0IFNlcCAyMDE3IDEwOjQ1OjI4 ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzOC80M10gZ2lhbmZhcjogRml4IFR4IGZsb3cgY29udHJv bCBkZWFjdGl2YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDVkNjIxNjcyYmMxYTFlNTA5MGMxYWM1 NDMyYTE4Yzc5ZTBlMTNlMDMgXQoKVGhlIHdyb25nIHJlZ2lzdGVyIGlzIGNoZWNrZWQgZm9yIHRo ZSBUeCBmbG93IGNvbnRyb2wgYml0LAppdCBzaG91bGQgaGF2ZSBiZWVuIG1hY2NmZzEgbm90IG1h Y2NmZzIuClRoaXMgd2VudCB1bm5vdGljZWQgZm9yIHNvIGxvbmcgcHJvYmFibHkgYmVjYXVzZSB0 aGUgaW1wYWN0IGlzCmhhcmRseSB2aXNpYmxlLCBub3QgdG8gbWVudGlvbiB0aGUgdGFuZ2xlZCBj b2RlIGZyb20gYWRqdXN0X2xpbmsoKS4KRmlyc3QsIGxpbmsgZmxvdyBjb250cm9sIChpLmUuIGhh bmRsaW5nIG9mIFJ4L1R4IGxpbmsgbGV2ZWwgcGF1c2UgZnJhbWVzKQppcyBkaXNhYmxlZCBieSBk ZWZhdWx0IChuZWVkcyB0byBiZSBlbmFibGVkIHZpYSAnZXRodG9vbCAtQScpLgpTZWNvbmRseSwg bWFjY2ZnMiBhbHdheXMgcmV0dXJucyAwIGZvciB0eF9mbG93X29sZHZhbCAoZXhjZXB0IGZvciBh IGZldwpvbGQgYm9hcmRzKSwgd2hpY2ggcmVzdWx0cyBpbiBUeCBmbG93IGNvbnRyb2wgcmVtYWlu aW5nIGFsd2F5cyBvbgpvbmNlIGFjdGl2YXRlZC4KCkZpeGVzOiA0NWI2NzljOWEzY2NkOWUzNGYy OGU2ZWM2NzdiODEyYTg2MGViOGViICgiZ2lhbmZhcjogSW1wbGVtZW50IFBBVVNFIGZyYW1lIGdl bmVyYXRpb24gc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IENsYXVkaXUgTWFub2lsIDxjbGF1ZGl1 Lm1hbm9pbEBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2dpYW5mYXIu YyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFyLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jCmluZGV4IDBmZjE2NmVjM2U3 ZS4uYWFjODQ5MGM5MTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZ2lhbmZhci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9naWFuZmFy LmMKQEAgLTM2ODcsNyArMzY4Nyw3IEBAIHN0YXRpYyBub2lubGluZSB2b2lkIGdmYXJfdXBkYXRl X2xpbmtfc3RhdGUoc3RydWN0IGdmYXJfcHJpdmF0ZSAqcHJpdikKIAkJdTMyIHRlbXB2YWwxID0g Z2Zhcl9yZWFkKCZyZWdzLT5tYWNjZmcxKTsKIAkJdTMyIHRlbXB2YWwgPSBnZmFyX3JlYWQoJnJl Z3MtPm1hY2NmZzIpOwogCQl1MzIgZWNudHJsID0gZ2Zhcl9yZWFkKCZyZWdzLT5lY250cmwpOwot CQl1MzIgdHhfZmxvd19vbGR2YWwgPSAodGVtcHZhbCAmIE1BQ0NGRzFfVFhfRkxPVyk7CisJCXUz MiB0eF9mbG93X29sZHZhbCA9ICh0ZW1wdmFsMSAmIE1BQ0NGRzFfVFhfRkxPVyk7CiAKIAkJaWYg KHBoeWRldi0+ZHVwbGV4ICE9IHByaXYtPm9sZGR1cGxleCkgewogCQkJaWYgKCEocGh5ZGV2LT5k dXBsZXgpKQotLSAKMi4xMy41CgoKRnJvbSBlMWRlOWJhODI5YTMzNWYzODgyM2Q4ZTc2M2Y3MDRi NWYxYzY5NmQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBXYW5nIDxqYXNv d2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDUgU2VwIDIwMTcgMDk6MjI6MDUgKzA4MDAKU3Vi amVjdDogW1BBVENIIDM5LzQzXSB2aG9zdF9uZXQ6IGNvcnJlY3RseSBjaGVjayB0eCBhdmFpbCBk dXJpbmcgcnggYnVzeQogcG9sbGluZwoKWyBVcHN0cmVhbSBjb21taXQgOGI5NDliZWY5MTcyY2E2 OWQ5MThlOTM1MDlhNGVjYjAzZDAzNTVlMCBdCgpXZSBjaGVjayB0eCBhdmFpbCB0aHJvdWdoIHZo b3N0X2VuYWJsZV9ub3RpZnkoKSBpbiB0aGUgcGFzdCB3aGljaCBpcwp3cm9uZyBzaW5jZSBpdCBv bmx5IGNoZWNrcyB3aGV0aGVyIG9yIG5vdCBndWVzdCBoYXMgZmlsbGVkIG1vcmUKYXZhaWxhYmxl IGJ1ZmZlciBzaW5jZSBsYXN0IGF2YWlsIGlkeCBzeW5jaHJvbml6YXRpb24gd2hpY2ggd2FzIGp1 c3QKZG9uZSBieSB2aG9zdF92cV9hdmFpbF9lbXB0eSgpIGJlZm9yZS4gV2hhdCB3ZSByZWFsbHkg d2FudCBpcyBjaGVja2luZwpwZW5kaW5nIGJ1ZmZlcnMgaW4gdGhlIGF2YWlsIHJpbmcuIEZpeCB0 aGlzIGJ5IGNhbGxpbmcKdmhvc3RfdnFfYXZhaWxfZW1wdHkoKSBpbnN0ZWFkLgoKVGhpcyBpc3N1 ZSBjb3VsZCBiZSBub3RpY2VkIGJ5IGRvaW5nIG5ldHBlcmYgVENQX1JSIGJlbmNobWFyayBhcwpj bGllbnQgZnJvbSBndWVzdCAoYnV0IG5vdCBob3N0KS4gV2l0aCB0aGlzIGZpeCwgVENQX1JSIGZy b20gZ3Vlc3QgdG8KbG9jYWxob3N0IHJlc3RvcmVzIGZyb20gMTM3NS45MSB0cmFucyBwZXIgc2Vj IHRvIDU1MjM1LjI4IHRyYW5zIHBlcgpzZWMgb24gbXkgbGFwdG9wIChJbnRlbChSKSBDb3JlKFRN KSBpNy01NjAwVSBDUFUgQCAyLjYwR0h6KS4KCkZpeGVzOiAwMzA4ODEzNzI0NjAgKCJ2aG9zdF9u ZXQ6IGJhc2ljIHBvbGxpbmcgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGph c293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L25ldC5jIHwgNyArKysrKystCiAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy92aG9zdC9uZXQuYyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKaW5kZXggZjYxZjg1MmQ2 Y2ZkLi44M2FkMmFjMGNiZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3QvbmV0LmMKKysrIGIv ZHJpdmVycy92aG9zdC9uZXQuYwpAQCAtNTU3LDggKzU1NywxMyBAQCBzdGF0aWMgaW50IHZob3N0 X25ldF9yeF9wZWVrX2hlYWRfbGVuKHN0cnVjdCB2aG9zdF9uZXQgKm5ldCwgc3RydWN0IHNvY2sg KnNrKQogCiAJCXByZWVtcHRfZW5hYmxlKCk7CiAKLQkJaWYgKHZob3N0X2VuYWJsZV9ub3RpZnko Jm5ldC0+ZGV2LCB2cSkpCisJCWlmICghdmhvc3RfdnFfYXZhaWxfZW1wdHkoJm5ldC0+ZGV2LCB2 cSkpCiAJCQl2aG9zdF9wb2xsX3F1ZXVlKCZ2cS0+cG9sbCk7CisJCWVsc2UgaWYgKHVubGlrZWx5 KHZob3N0X2VuYWJsZV9ub3RpZnkoJm5ldC0+ZGV2LCB2cSkpKSB7CisJCQl2aG9zdF9kaXNhYmxl X25vdGlmeSgmbmV0LT5kZXYsIHZxKTsKKwkJCXZob3N0X3BvbGxfcXVldWUoJnZxLT5wb2xsKTsK KwkJfQorCiAJCW11dGV4X3VubG9jaygmdnEtPm11dGV4KTsKIAogCQlsZW4gPSBwZWVrX2hlYWRf bGVuKHNrKTsKLS0gCjIuMTMuNQoKCkZyb20gN2ZlYzNhNzIzNDIyOTE1YTE1MDk3ZmUxN2M5MjVj NTUxODY5OGY0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2ll bi54aW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDUgU2VwIDIwMTcgMTc6MjY6MzMgKzA4MDAKU3Vi amVjdDogW1BBVENIIDQwLzQzXSBpcDZfZ3JlOiB1cGRhdGUgbXR1IHByb3Blcmx5IGluIGlwNmdy ZV9lcnIKClsgVXBzdHJlYW0gY29tbWl0IDVjMjVmMzBjOTNmZGM1YmYyNWU2MjEwMWFlYWFlN2E0 ZjliNDIxYjMgXQoKTm93IHdoZW4gcHJvYmVzc2luZyBJQ01QVjZfUEtUX1RPT0JJRywgaXA2Z3Jl X2VyciBvbmx5IHN1YnRyYWN0cyB0aGUKb2Zmc2V0IG9mIGdyZSBoZWFkZXIgZnJvbSBtdHUgaW5m by4gVGhlIGV4cGVjdGVkIG10dSBvZiBncmUgZGV2aWNlCnNob3VsZCBhbHNvIHN1YnRyYWN0IGdy ZSBoZWFkZXIuIE90aGVyd2lzZSwgdGhlIG5leHQgcGFja2V0cyBzdGlsbApjYW4ndCBiZSBzZW50 IG91dC4KCkppYW5saW4gZm91bmQgdGhpcyBpc3N1ZSB3aGVuIHVzaW5nIHRoZSB0b3BvOgogIGNs aWVudChpcDZncmUpPC0tLS0+KG5pYzEpcm91dGUobmljMik8LS0tLS0+KGlwNmdyZSlzZXJ2ZXIK CmFuZCByZWR1Y2luZyBuaWMyJ3MgbXR1LCB0aGVuIGJvdGggdGNwIGFuZCBzY3RwJ3MgcGVyZm9y bWFuY2Ugd2l0aApiaWcgc2l6ZSBkYXRhIGJlY2FtZSAwLgoKVGhpcyBwYXRjaCBpcyB0byBmaXgg aXQgYnkgYWxzbyBzdWJ0cmFjdGluZyBncmVoZHIgKHR1bi0+dHVuX2hsZW4pCmZyb20gbXR1IGlu Zm8gd2hlbiB1cGRhdGluZyBncmUgZGV2aWNlJ3MgbXR1IGluIGlwNmdyZV9lcnIoKS4gSXQKYWxz byBuZWVkcyB0byBzdWJ0cmFjdCBFVEhfSExFTiBpZiBncmUgZGV2J3R5cGUgaXMgQVJQSFJEX0VU SEVSLgoKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZfZ3Jl LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMK aW5kZXggNjRlZWEzOTYyNzMzLi5jYTJhNDUxMzRjNmIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lw Nl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTQzMiw3ICs0MzIsOSBAQCBzdGF0 aWMgdm9pZCBpcDZncmVfZXJyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBpbmV0Nl9za2Jf cGFybSAqb3B0LAogCQl9CiAJCWJyZWFrOwogCWNhc2UgSUNNUFY2X1BLVF9UT09CSUc6Ci0JCW10 dSA9IGJlMzJfdG9fY3B1KGluZm8pIC0gb2Zmc2V0OworCQltdHUgPSBiZTMyX3RvX2NwdShpbmZv KSAtIG9mZnNldCAtIHQtPnR1bl9obGVuOworCQlpZiAodC0+ZGV2LT50eXBlID09IEFSUEhSRF9F VEhFUikKKwkJCW10dSAtPSBFVEhfSExFTjsKIAkJaWYgKG10dSA8IElQVjZfTUlOX01UVSkKIAkJ CW10dSA9IElQVjZfTUlOX01UVTsKIAkJdC0+ZGV2LT5tdHUgPSBtdHU7Ci0tIAoyLjEzLjUKCgpG cm9tIDk5NzRmMWI0Yjk5MmVkYjY2M2NkNmE0MGYxNzE2NjJlMTJiNmMzNzUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpE YXRlOiBGcmksIDggU2VwIDIwMTcgMTA6MjY6MTkgKzAyMDAKU3ViamVjdDogW1BBVENIIDQxLzQz XSBpcHY2OiBmaXggbWVtb3J5IGxlYWsgd2l0aCBtdWx0aXBsZSB0YWJsZXMgZHVyaW5nIG5ldG5z CiBkZXN0cnVjdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgYmExY2MwOGQ5NDg4Yzk0Y2I4ZDk0ZjU0 NTMwNTY4OGI3MmEyYTMwMCBdCgpmaWI2X25ldF9leGl0IG9ubHkgZnJlZXMgdGhlIG1haW4gYW5k IGxvY2FsIHRhYmxlcy4gSWYgYW5vdGhlciB0YWJsZSB3YXMKY3JlYXRlZCB3aXRoIGZpYjZfYWxs b2NfdGFibGUsIHdlIGxlYWsgaXQgd2hlbiB0aGUgbmV0bnMgaXMgZGVzdHJveWVkLgoKRml4IHRo aXMgaW4gdGhlIHNhbWUgd2F5IGlwX2ZpYl9uZXRfZXhpdCBjbGVhbnMgdXAgdGFibGVzLCBieSB3 YWxraW5nCnRocm91Z2ggdGhlIHdob2xlIGhhc2h0YWJsZSBvZiBmaWI2X3RhYmxlJ3MuIFdlIGNh biBnZXQgcmlkIG9mIHRoZQpzcGVjaWFsIGNhc2VzIGZvciBsb2NhbCBhbmQgbWFpbiwgc2luY2Ug dGhleSdyZSBhbHNvIHBhcnQgb2YgdGhlCmhhc2h0YWJsZS4KClJlcHJvZHVjZXI6CiAgICBpcCBu ZXRucyBhZGQgeAogICAgaXAgLW5ldCB4IC02IHJ1bGUgYWRkIGZyb20gNjAwMzoxOjovNjQgdGFi bGUgMTAwCiAgICBpcCBuZXRucyBkZWwgeAoKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNo aUByZWRoYXQuY29tPgpGaXhlczogNThmMDliNzhiNzMwICgiW05FVE5TXVtJUFY2XSBpcDZfZmli IC0gbWFrZSBpdCBwZXIgbmV0d29yayBuYW1lc3BhY2UiKQpTaWduZWQtb2ZmLWJ5OiBTYWJyaW5h IER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9maWIuYyB8IDI1ICsr KysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9maWIuYyBiL25ldC9p cHY2L2lwNl9maWIuYwppbmRleCA3NmNkYWE5ZDRhNTEuLjRjNGRkNzk3MjRlNyAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaXA2X2ZpYi5jCisrKyBiL25ldC9pcHY2L2lwNl9maWIuYwpAQCAtMjAxLDYg KzIwMSwxMiBAQCBzdGF0aWMgdm9pZCBydDZfcmVsZWFzZShzdHJ1Y3QgcnQ2X2luZm8gKnJ0KQog CX0KIH0KIAorc3RhdGljIHZvaWQgZmliNl9mcmVlX3RhYmxlKHN0cnVjdCBmaWI2X3RhYmxlICp0 YWJsZSkKK3sKKwlpbmV0cGVlcl9pbnZhbGlkYXRlX3RyZWUoJnRhYmxlLT50YjZfcGVlcnMpOwor CWtmcmVlKHRhYmxlKTsKK30KKwogc3RhdGljIHZvaWQgZmliNl9saW5rX3RhYmxlKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IGZpYjZfdGFibGUgKnRiKQogewogCXVuc2lnbmVkIGludCBoOwpAQCAt MTkxMSwxNSArMTkxNywyMiBAQCBzdGF0aWMgaW50IF9fbmV0X2luaXQgZmliNl9uZXRfaW5pdChz dHJ1Y3QgbmV0ICpuZXQpCiAKIHN0YXRpYyB2b2lkIGZpYjZfbmV0X2V4aXQoc3RydWN0IG5ldCAq bmV0KQogeworCXVuc2lnbmVkIGludCBpOworCiAJcnQ2X2lmZG93bihuZXQsIE5VTEwpOwogCWRl bF90aW1lcl9zeW5jKCZuZXQtPmlwdjYuaXA2X2ZpYl90aW1lcik7CiAKLSNpZmRlZiBDT05GSUdf SVBWNl9NVUxUSVBMRV9UQUJMRVMKLQlpbmV0cGVlcl9pbnZhbGlkYXRlX3RyZWUoJm5ldC0+aXB2 Ni5maWI2X2xvY2FsX3RibC0+dGI2X3BlZXJzKTsKLQlrZnJlZShuZXQtPmlwdjYuZmliNl9sb2Nh bF90YmwpOwotI2VuZGlmCi0JaW5ldHBlZXJfaW52YWxpZGF0ZV90cmVlKCZuZXQtPmlwdjYuZmli Nl9tYWluX3RibC0+dGI2X3BlZXJzKTsKLQlrZnJlZShuZXQtPmlwdjYuZmliNl9tYWluX3RibCk7 CisJZm9yIChpID0gMDsgaSA8IEZJQl9UQUJMRV9IQVNIU1o7IGkrKykgeworCQlzdHJ1Y3QgaGxp c3RfaGVhZCAqaGVhZCA9ICZuZXQtPmlwdjYuZmliX3RhYmxlX2hhc2hbaV07CisJCXN0cnVjdCBo bGlzdF9ub2RlICp0bXA7CisJCXN0cnVjdCBmaWI2X3RhYmxlICp0YjsKKworCQlobGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKHRiLCB0bXAsIGhlYWQsIHRiNl9obGlzdCkgeworCQkJaGxpc3RfZGVs KCZ0Yi0+dGI2X2hsaXN0KTsKKwkJCWZpYjZfZnJlZV90YWJsZSh0Yik7CisJCX0KKwl9CisKIAlr ZnJlZShuZXQtPmlwdjYuZmliX3RhYmxlX2hhc2gpOwogCWtmcmVlKG5ldC0+aXB2Ni5ydDZfc3Rh dHMpOwogfQotLSAKMi4xMy41CgoKRnJvbSA0Y2NiOTgzYzkwZWRmZmEzYmY5ZTEyNmE3MDkwM2Jm MjBhNTQ3NjA5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IEZyaSwgOCBTZXAgMjAxNyAxNTo0ODo0NyAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggNDIvNDNdIGlwdjY6IGZpeCB0eXBvIGluIGZpYjZfbmV0X2V4aXQoKQoK WyBVcHN0cmVhbSBjb21taXQgMzJhODA1YmFmMGZiNzBiNmRiZWRlZmNkNzI0OWFjN2Y1ODBmOWUz YiBdCgpJUHY2IEZJQiBzaG91bGQgdXNlIEZJQjZfVEFCTEVfSEFTSFNaLCBub3QgRklCX1RBQkxF X0hBU0hTWi4KCkZpeGVzOiBiYTFjYzA4ZDk0ODggKCJpcHY2OiBmaXggbWVtb3J5IGxlYWsgd2l0 aCBtdWx0aXBsZSB0YWJsZXMgZHVyaW5nIG5ldG5zIGRlc3RydWN0aW9uIikKU2lnbmVkLW9mZi1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2ZpYi5j IHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4 IDRjNGRkNzk3MjRlNy4uZmEwM2ZhNDY5ZjkyIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmli LmMKKysrIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCkBAIC0xOTIyLDcgKzE5MjIsNyBAQCBzdGF0aWMg dm9pZCBmaWI2X25ldF9leGl0KHN0cnVjdCBuZXQgKm5ldCkKIAlydDZfaWZkb3duKG5ldCwgTlVM TCk7CiAJZGVsX3RpbWVyX3N5bmMoJm5ldC0+aXB2Ni5pcDZfZmliX3RpbWVyKTsKIAotCWZvciAo aSA9IDA7IGkgPCBGSUJfVEFCTEVfSEFTSFNaOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgRklC Nl9UQUJMRV9IQVNIU1o7IGkrKykgewogCQlzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZCA9ICZuZXQt PmlwdjYuZmliX3RhYmxlX2hhc2hbaV07CiAJCXN0cnVjdCBobGlzdF9ub2RlICp0bXA7CiAJCXN0 cnVjdCBmaWI2X3RhYmxlICp0YjsKLS0gCjIuMTMuNQoKCkZyb20gZjE5NmNiZWQ4NjRkMDAxMjAy YjQ0OWUyODEwZDA4NjBmODZlZmJlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFy Y2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkRhdGU6IEZy aSwgOCBTZXAgMjAxNyAxMTozNToyMSAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggNDMvNDNdIHNjdHA6 IGZpeCBtaXNzaW5nIHdha2UgdXBzIGluIHNvbWUgc2l0dWF0aW9ucwoKWyBVcHN0cmVhbSBjb21t aXQgNzkwNmIwMGY1Y2QxY2Q0ODRmY2VkN2ZjZGE4OTIxNzZlMzIwMmM4YSBdCgpDb21taXQgZmI1 ODZmMjUzMDBmICgic2N0cDogZGVsYXkgY2FsbHMgdG8gc2tfZGF0YV9yZWFkeSgpIGFzIG11Y2gg YXMKcG9zc2libGUiKSBtaW5pbWl6ZWQgdGhlIG51bWJlciBvZiB3YWtlIHVwcyB0aGF0IGFyZSB0 cmlnZ2VyZWQgaW4gY2FzZQp0aGUgYXNzb2NpYXRpb24gcmVjZWl2ZXMgYSBwYWNrZXQgd2l0aCBt dWx0aXBsZSBkYXRhIGNodW5rcyBvbiBpdCBhbmQvb3IKd2hlbiBpb19ldmVudHMgYXJlIGVuYWJs ZWQgYW5kIHRoZW4gY29tbWl0IDA5NzBmNWIzNjY1OSAoInNjdHA6IHNpZ25hbApza19kYXRhX3Jl YWR5IGVhcmxpZXIgb24gZGF0YSBjaHVua3MgcmVjZXB0aW9uIikgbW92ZWQgdGhlIHdha2UgdXAg dG8gYXMKc29vbiBhcyBwb3NzaWJsZS4gSXQgdGh1cyByZWxpZXMgb24gdGhlIHN0YXRlIG1hY2hp bmUgcnVubmluZyBsYXRlciB0bwpjbGVhbiB0aGUgZmxhZyB0aGF0IHRoZSBldmVudCB3YXMgYWxy ZWFkeSBnZW5lcmF0ZWQuCgpUaGUgaXNzdWUgaXMgdGhhdCB0aGVyZSBhcmUgMiBjYWxsIHBhdGhz IHRoYXQgY2FsbHMKc2N0cF91bHBxX3RhaWxfZXZlbnQoKSBvdXRzaWRlIG9mIHRoZSBzdGF0ZSBt YWNoaW5lLCBjYXVzaW5nIHRoZSBmbGFnIHRvCmxpbmdlciBhbmQgcG9zc2libHkgb21pdHRpbmcg YSBuZWVkZWQgd2FrZSB1cCBpbiB0aGUgc2VxdWVuY2UuCgpPbmUgb2YgdGhlIGNhbGwgcGF0aHMg aXMgd2hlbiBlbmFibGluZyBTQ1RQX1NFTkRFUl9EUllfRVZFTlRTIHZpYQpzZXRzb2Nrb3B0KFND VFBfRVZFTlRTKSwgYXMgbm90aWNlZCBieSBIYXJhbGQgV2VsdGUuIFRoZSBvdGhlciBpcyB3aGVu CnBhcnRpYWwgcmVsaWFiaWxpdHkgdHJpZ2dlcnMgcmVtb3ZhbCBvZiBjaHVua3MgZnJvbSB0aGUg c2VuZCBxdWV1ZSB3aGVuCnRoZSBhcHBsaWNhdGlvbiBjYWxscyBzZW5kbXNnKCkuCgpUaGlzIGNv bW1pdCBmaXhlcyBpdCBieSBub3Qgc2V0dGluZyB0aGUgZmxhZyBpbiBjYXNlIHRoZSBzb2NrZXQg aXMgbm90Cm93bmVkIGJ5IHRoZSB1c2VyLCBhcyBpdCB3b24ndCBiZSBjbGVhbmVkIGxhdGVyLiBU aGlzIHdvcmtzIGZvcgp1c2VyLWluaXRpYXRlZCBjYWxscyBhbmQgYWxzbyBmb3IgcnggcGF0aCBw cm9jZXNzaW5nLgoKRml4ZXM6IGZiNTg2ZjI1MzAwZiAoInNjdHA6IGRlbGF5IGNhbGxzIHRvIHNr X2RhdGFfcmVhZHkoKSBhcyBtdWNoIGFzIHBvc3NpYmxlIikKUmVwb3J0ZWQtYnk6IEhhcmFsZCBX ZWx0ZSA8bGFmb3JnZUBnbnVtb25rcy5vcmc+ClNpZ25lZC1vZmYtYnk6IE1hcmNlbG8gUmljYXJk byBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAvdWxwcXVldWUu YyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvdWxwcXVldWUuYyBiL25ldC9zY3RwL3VscHF1ZXVlLmMK aW5kZXggYWEzNjI0ZDUwMjc4Li44MzU0NDc5MTc4YjkgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Vs cHF1ZXVlLmMKKysrIGIvbmV0L3NjdHAvdWxwcXVldWUuYwpAQCAtMjY1LDcgKzI2NSw4IEBAIGlu dCBzY3RwX3VscHFfdGFpbF9ldmVudChzdHJ1Y3Qgc2N0cF91bHBxICp1bHBxLCBzdHJ1Y3Qgc2N0 cF91bHBldmVudCAqZXZlbnQpCiAJCXNjdHBfdWxwcV9jbGVhcl9wZCh1bHBxKTsKIAogCWlmIChx dWV1ZSA9PSAmc2stPnNrX3JlY2VpdmVfcXVldWUgJiYgIXNwLT5kYXRhX3JlYWR5X3NpZ25hbGxl ZCkgewotCQlzcC0+ZGF0YV9yZWFkeV9zaWduYWxsZWQgPSAxOworCQlpZiAoIXNvY2tfb3duZWRf YnlfdXNlcihzaykpCisJCQlzcC0+ZGF0YV9yZWFkeV9zaWduYWxsZWQgPSAxOwogCQlzay0+c2tf ZGF0YV9yZWFkeShzayk7CiAJfQogCXJldHVybiAxOwotLSAKMi4xMy41Cgo= ----Next_Part(Thu_Sep_14_21_57_40_2017_050)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_413.mbox" RnJvbSBmYTA3OGE3NDNmODA2YWI2ZmU2N2E3MTdhYTZhZDE0MGQ5NzU4ZTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0 LmNvbT4KRGF0ZTogRnJpLCAxIFNlcCAyMDE3IDExOjI2OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMS8xMV0gUmV2ZXJ0ICJuZXQ6IHVzZSBsaWIvcGVyY3B1X2NvdW50ZXIgQVBJIGZvcgogZnJh Z21lbnRhdGlvbiBtZW0gYWNjb3VudGluZyIKClsgVXBzdHJlYW0gY29tbWl0IGZiNDUyYTFhYTNm ZDQwMzRkNzk5OWUzMDljNTQ2NmZmMmQ3MDA1YWEgXQoKVGhpcyByZXZlcnRzIGNvbW1pdCA2ZDdi ODU3ZDU0MWVjZDFkOWJkOTk3Yzk3MjQyZDRlZjk0YjE5ZGUyLgoKVGhlcmUgaXMgYSBidWcgaW4g ZnJhZ21lbnRhdGlvbiBjb2RlcyB1c2Ugb2YgdGhlIHBlcmNwdV9jb3VudGVyIEFQSSwKdGhhdCBj YW4gY2F1c2UgaXNzdWVzIG9uIHN5c3RlbXMgd2l0aCBtYW55IENQVXMuCgpUaGUgZnJhZ19tZW1f bGltaXQoKSBqdXN0IHJlYWRzIHRoZSBnbG9iYWwgY291bnRlciAoZmJjLT5jb3VudCksCndpdGhv dXQgY29uc2lkZXJpbmcgb3RoZXIgQ1BVcyBjYW4gaGF2ZSB1cHRvIGJhdGNoIHNpemUgKDEzMEsp IHRoYXQKaGF2ZW4ndCBiZWVuIHN1YnRyYWN0ZWQgeWV0LiAgRHVlIHRvIHRoZSAzTUJ5dGVzIGxv d2VyIHRocmVzaCBsaW1pdCwKdGhpcyBiZWNvbWUgZGFuZ2Vyb3VzIGF0ID49MjQgQ1BVcyAoMyox MDI0KjEwMjQvMTMwMDAwPTI0KS4KClRoZSBjb3JyZWN0IEFQSSB1c2FnZSB3b3VsZCBiZSB0byB1 c2UgX19wZXJjcHVfY291bnRlcl9jb21wYXJlKCkgd2hpY2gKZG9lcyB0aGUgcmlnaHQgdGhpbmcs IGFuZCB0YWtlcyBpbnRvIGFjY291bnQgdGhlIG51bWJlciBvZiAob25saW5lKQpDUFVzIGFuZCBi YXRjaCBzaXplLCB0byBhY2NvdW50IGZvciB0aGlzIGFuZCBjYWxsIF9fcGVyY3B1X2NvdW50ZXJf c3VtKCkKd2hlbiBuZWVkZWQuCgpXZSBjaG9vc2UgdG8gcmV2ZXJ0IHRoZSB1c2Ugb2YgdGhlIGxp Yi9wZXJjcHVfY291bnRlciBBUEkgZm9yIGZyYWcKbWVtb3J5IGFjY291bnRpbmcgZm9yIHNldmVy YWwgcmVhc29uczoKCjEpIE9uIHN5c3RlbXMgd2l0aCBDUFVzID4gMjQsIHRoZSBoZWF2aWVyIGZ1 bGx5IGxvY2tlZAogICBfX3BlcmNwdV9jb3VudGVyX3N1bSgpIGlzIGFsd2F5cyBpbnZva2VkLCB3 aGljaCB3aWxsIGJlIG1vcmUKICAgZXhwZW5zaXZlIHRoYW4gdGhlIGF0b21pY190IHRoYXQgaXMg cmV2ZXJ0ZWQgdG8uCgpHaXZlbiBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIDI0IENQVXMgYXJlIGJl Y29taW5nIGNvbW1vbiB0aGlzIGRvZXNuJ3QKc2VlbSBsaWtlIGEgZ29vZCBvcHRpb24uICBUbyBt aXRpZ2F0ZSB0aGlzLCB0aGUgYmF0Y2ggc2l6ZSBjb3VsZCBiZQpkZWNyZWFzZWQgYW5kIHRocmVz aCBiZSBpbmNyZWFzZWQuCgoyKSBUaGUgYWRkX2ZyYWdfbWVtX2xpbWl0K3N1Yl9mcmFnX21lbV9s aW1pdCBwYWlycyBoYXBwZW4gb24gdGhlIFJYCiAgIENQVSwgYmVmb3JlIFNLQnMgYXJlIHB1c2hl ZCBpbnRvIHNvY2tldHMgb24gcmVtb3RlIENQVXMuICBHaXZlbgogICBOSUNzIGNhbiBvbmx5IGhh c2ggb24gTDIgcGFydCBvZiB0aGUgSVAtaGVhZGVyLCB0aGUgTklDLVJYcSdzIHdpbGwKICAgbGlr ZWx5IGJlIGxpbWl0ZWQuICBUaHVzLCBhIGZhaXIgY2hhbmNlIHRoYXQgYXRvbWljIGFkZCtkZWMg aGFwcGVuCiAgIG9uIHRoZSBzYW1lIENQVS4KClJldmVydCBub3RlIHRoYXQgY29tbWl0IDFkNjEx OWJhZjA2MSAoIm5ldDogZml4IHBlcmNwdSBtZW1vcnkgbGVha3MiKQpyZW1vdmVkIGluaXRfZnJh Z19tZW1fbGltaXQoKSBhbmQgaW5zdGVhZCB1c2UgaW5ldF9mcmFnc19pbml0X25ldCgpLgpBZnRl ciB0aGlzIHJldmVydCwgaW5ldF9mcmFnc191bmluaXRfbmV0KCkgYmVjb21lcyBlbXB0eS4KCkZp eGVzOiA2ZDdiODU3ZDU0MWUgKCJuZXQ6IHVzZSBsaWIvcGVyY3B1X2NvdW50ZXIgQVBJIGZvciBm cmFnbWVudGF0aW9uIG1lbSBhY2NvdW50aW5nIikKRml4ZXM6IDFkNjExOWJhZjA2MSAoIm5ldDog Zml4IHBlcmNwdSBtZW1vcnkgbGVha3MiKQpTaWduZWQtb2ZmLWJ5OiBKZXNwZXIgRGFuZ2FhcmQg QnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3 QHN0cmxlbi5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRfZnJhZy5oICB8IDMwICsrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLQogbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jIHwgIDQgKy0tLQogMiBm aWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaCBiL2luY2x1ZGUvbmV0L2luZXRfZnJhZy5oCmlu ZGV4IDZmZGNkMjQyNzc3Ni4uZmE2MzVhYTZkMGI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9p bmV0X2ZyYWcuaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaApAQCAtMSwxNCArMSw5IEBA CiAjaWZuZGVmIF9fTkVUX0ZSQUdfSF9fCiAjZGVmaW5lIF9fTkVUX0ZSQUdfSF9fCiAKLSNpbmNs dWRlIDxsaW51eC9wZXJjcHVfY291bnRlci5oPgotCiBzdHJ1Y3QgbmV0bnNfZnJhZ3MgewotCS8q IFRoZSBwZXJjcHVfY291bnRlciAibWVtIiBuZWVkIHRvIGJlIGNhY2hlbGluZSBhbGlnbmVkLgot CSAqICBtZW0uY291bnQgbXVzdCBub3Qgc2hhcmUgY2FjaGVsaW5lIHdpdGggb3RoZXIgd3JpdGVy cwotCSAqLwotCXN0cnVjdCBwZXJjcHVfY291bnRlciAgIG1lbSBfX19fY2FjaGVsaW5lX2FsaWdu ZWRfaW5fc21wOwotCisJLyogS2VlcCBhdG9taWMgbWVtIG9uIHNlcGFyYXRlIGNhY2hlbGluZXMg aW4gc3RydWN0cyB0aGF0IGluY2x1ZGUgaXQgKi8KKwlhdG9taWNfdAkJbWVtIF9fX19jYWNoZWxp bmVfYWxpZ25lZF9pbl9zbXA7CiAJLyogc3lzY3RscyAqLwogCWludAkJCXRpbWVvdXQ7CiAJaW50 CQkJaGlnaF90aHJlc2g7CkBAIC0xMTAsMTEgKzEwNSwxMSBAQCB2b2lkIGluZXRfZnJhZ3NfZmlu aShzdHJ1Y3QgaW5ldF9mcmFncyAqKTsKIAogc3RhdGljIGlubGluZSBpbnQgaW5ldF9mcmFnc19p bml0X25ldChzdHJ1Y3QgbmV0bnNfZnJhZ3MgKm5mKQogewotCXJldHVybiBwZXJjcHVfY291bnRl cl9pbml0KCZuZi0+bWVtLCAwLCBHRlBfS0VSTkVMKTsKKwlhdG9taWNfc2V0KCZuZi0+bWVtLCAw KTsKKwlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbmxpbmUgdm9pZCBpbmV0X2ZyYWdzX3VuaW5pdF9u ZXQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZikKIHsKLQlwZXJjcHVfY291bnRlcl9kZXN0cm95KCZu Zi0+bWVtKTsKIH0KIAogdm9pZCBpbmV0X2ZyYWdzX2V4aXRfbmV0KHN0cnVjdCBuZXRuc19mcmFn cyAqbmYsIHN0cnVjdCBpbmV0X2ZyYWdzICpmKTsKQEAgLTE0MCwzMSArMTM1LDI0IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBpbmV0X2ZyYWdfZXZpY3Rpbmcoc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAq cSkKIAogLyogTWVtb3J5IFRyYWNraW5nIEZ1bmN0aW9ucy4gKi8KIAotLyogVGhlIGRlZmF1bHQg cGVyY3B1X2NvdW50ZXIgYmF0Y2ggc2l6ZSBpcyBub3QgYmlnIGVub3VnaCB0byBzY2FsZSB0bwot ICogZnJhZ21lbnRhdGlvbiBtZW0gYWNjdCBzaXplcy4KLSAqIFRoZSBtZW0gc2l6ZSBvZiBhIDY0 SyBmcmFnbWVudCBpcyBhcHByb3g6Ci0gKiAgKDQ0IGZyYWdtZW50cyAqIDI5NDQgdHJ1ZXNpemUp ICsgZnJhZ19xdWV1ZSBzdHJ1Y3QoMjAwKSA9IDEyOTczNiBieXRlcwotICovCi1zdGF0aWMgdW5z aWduZWQgaW50IGZyYWdfcGVyY3B1X2NvdW50ZXJfYmF0Y2ggPSAxMzAwMDA7Ci0KIHN0YXRpYyBp bmxpbmUgaW50IGZyYWdfbWVtX2xpbWl0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYpCiB7Ci0JcmV0 dXJuIHBlcmNwdV9jb3VudGVyX3JlYWQoJm5mLT5tZW0pOworCXJldHVybiBhdG9taWNfcmVhZCgm bmYtPm1lbSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzdWJfZnJhZ19tZW1fbGltaXQoc3Ry dWN0IG5ldG5zX2ZyYWdzICpuZiwgaW50IGkpCiB7Ci0JcGVyY3B1X2NvdW50ZXJfYWRkX2JhdGNo KCZuZi0+bWVtLCAtaSwgZnJhZ19wZXJjcHVfY291bnRlcl9iYXRjaCk7CisJYXRvbWljX3N1Yihp LCAmbmYtPm1lbSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRfZnJhZ19tZW1fbGltaXQo c3RydWN0IG5ldG5zX2ZyYWdzICpuZiwgaW50IGkpCiB7Ci0JcGVyY3B1X2NvdW50ZXJfYWRkX2Jh dGNoKCZuZi0+bWVtLCBpLCBmcmFnX3BlcmNwdV9jb3VudGVyX2JhdGNoKTsKKwlhdG9taWNfYWRk KGksICZuZi0+bWVtKTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgc3VtX2ZyYWdf bWVtX2xpbWl0KHN0cnVjdCBuZXRuc19mcmFncyAqbmYpCitzdGF0aWMgaW5saW5lIGludCBzdW1f ZnJhZ19tZW1fbGltaXQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZikKIHsKLQlyZXR1cm4gcGVyY3B1 X2NvdW50ZXJfc3VtX3Bvc2l0aXZlKCZuZi0+bWVtKTsKKwlyZXR1cm4gYXRvbWljX3JlYWQoJm5m LT5tZW0pOwogfQogCiAvKiBSRkMgMzE2OCBzdXBwb3J0IDoKZGlmZiAtLWdpdCBhL25ldC9pcHY0 L2luZXRfZnJhZ21lbnQuYyBiL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYwppbmRleCA5NmU5NWU4 M2NjNjEuLmFmNzRkMDQzMzQ1MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5j CisrKyBiL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYwpAQCAtMjM0LDEwICsyMzQsOCBAQCB2b2lk IGluZXRfZnJhZ3NfZXhpdF9uZXQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwgc3RydWN0IGluZXRf ZnJhZ3MgKmYpCiAJY29uZF9yZXNjaGVkKCk7CiAKIAlpZiAocmVhZF9zZXFyZXRyeSgmZi0+cm5k X3NlcWxvY2ssIHNlcSkgfHwKLQkgICAgcGVyY3B1X2NvdW50ZXJfc3VtKCZuZi0+bWVtKSkKKwkg ICAgc3VtX2ZyYWdfbWVtX2xpbWl0KG5mKSkKIAkJZ290byBldmljdF9hZ2FpbjsKLQotCXBlcmNw dV9jb3VudGVyX2Rlc3Ryb3koJm5mLT5tZW0pOwogfQogRVhQT1JUX1NZTUJPTChpbmV0X2ZyYWdz X2V4aXRfbmV0KTsKIAotLSAKMi4xMy41CgoKRnJvbSBjMDM2MDI0ODU4MmQ4NWU3MzgzNTRiZThl MTEwODk5MGI0ZTIxZGJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNwZXIgRGFu Z2FhcmQgQnJvdWVyIDxicm91ZXJAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCAxIFNlcCAyMDE3IDEx OjI2OjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMi8xMV0gUmV2ZXJ0ICJuZXQ6IGZpeCBwZXJj cHUgbWVtb3J5IGxlYWtzIgoKWyBVcHN0cmVhbSBjb21taXQgNWE2MzY0M2U1ODNiNmE5Nzg5ZDdh MjI1YWUwNzZmYjRlNjAzOTkxYyBdCgpUaGlzIHJldmVydHMgY29tbWl0IDFkNjExOWJhZjA2MTBm ODEzZWI5ZDk1ODBlYjRmZDE2ZGU1YjRjZWIuCgpBZnRlciByZXZlcnRpbmcgY29tbWl0IDZkN2I4 NTdkNTQxZSAoIm5ldDogdXNlIGxpYi9wZXJjcHVfY291bnRlciBBUEkKZm9yIGZyYWdtZW50YXRp b24gbWVtIGFjY291bnRpbmciKSB0aGVuIGhlcmUgaXMgbm8gbmVlZCBmb3IgdGhpcwpmaXgtdXAg cGF0Y2guICBBcyBwZXJjcHVfY291bnRlciBpcyBubyBsb25nZXIgdXNlZCwgaXQgY2Fubm90Cm1l bW9yeSBsZWFrIGl0IGFueS1sb25nZXIuCgpGaXhlczogNmQ3Yjg1N2Q1NDFlICgibmV0OiB1c2Ug bGliL3BlcmNwdV9jb3VudGVyIEFQSSBmb3IgZnJhZ21lbnRhdGlvbiBtZW0gYWNjb3VudGluZyIp CkZpeGVzOiAxZDYxMTliYWYwNjEgKCJuZXQ6IGZpeCBwZXJjcHUgbWVtb3J5IGxlYWtzIikKU2ln bmVkLW9mZi1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBp bmNsdWRlL25ldC9pbmV0X2ZyYWcuaCAgICAgICAgICAgICAgICAgfCAgNyArLS0tLS0tCiBuZXQv aWVlZTgwMjE1NC82bG93cGFuL3JlYXNzZW1ibHkuYyAgICAgfCAxMSArKystLS0tLS0tLQogbmV0 L2lwdjQvaXBfZnJhZ21lbnQuYyAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0tLS0tLS0tCiBu ZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgfCAxMiArKystLS0tLS0tLS0K IG5ldC9pcHY2L3JlYXNzZW1ibHkuYyAgICAgICAgICAgICAgICAgICB8IDEyICsrKy0tLS0tLS0t LQogNSBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaCBiL2luY2x1ZGUvbmV0L2luZXRfZnJh Zy5oCmluZGV4IGZhNjM1YWE2ZDBiOS4uZmM1OWUwNzc1ZTAwIDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC9pbmV0X2ZyYWcuaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2ZyYWcuaApAQCAtMTAzLDE1 ICsxMDMsMTAgQEAgc3RydWN0IGluZXRfZnJhZ3MgewogaW50IGluZXRfZnJhZ3NfaW5pdChzdHJ1 Y3QgaW5ldF9mcmFncyAqKTsKIHZvaWQgaW5ldF9mcmFnc19maW5pKHN0cnVjdCBpbmV0X2ZyYWdz ICopOwogCi1zdGF0aWMgaW5saW5lIGludCBpbmV0X2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBuZXRu c19mcmFncyAqbmYpCitzdGF0aWMgaW5saW5lIHZvaWQgaW5ldF9mcmFnc19pbml0X25ldChzdHJ1 Y3QgbmV0bnNfZnJhZ3MgKm5mKQogewogCWF0b21pY19zZXQoJm5mLT5tZW0sIDApOwotCXJldHVy biAwOwogfQotc3RhdGljIGlubGluZSB2b2lkIGluZXRfZnJhZ3NfdW5pbml0X25ldChzdHJ1Y3Qg bmV0bnNfZnJhZ3MgKm5mKQotewotfQotCiB2b2lkIGluZXRfZnJhZ3NfZXhpdF9uZXQoc3RydWN0 IG5ldG5zX2ZyYWdzICpuZiwgc3RydWN0IGluZXRfZnJhZ3MgKmYpOwogCiB2b2lkIGluZXRfZnJh Z19raWxsKHN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnEsIHN0cnVjdCBpbmV0X2ZyYWdzICpmKTsK ZGlmZiAtLWdpdCBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vcmVhc3NlbWJseS5jIGIvbmV0L2ll ZWU4MDIxNTQvNmxvd3Bhbi9yZWFzc2VtYmx5LmMKaW5kZXggMzBkODc1ZGZmNmI1Li5mODViMDhi YWZmMTYgMTAwNjQ0Ci0tLSBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vcmVhc3NlbWJseS5jCisr KyBiL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vcmVhc3NlbWJseS5jCkBAIC01ODAsMTkgKzU4MCwx NCBAQCBzdGF0aWMgaW50IF9fbmV0X2luaXQgbG93cGFuX2ZyYWdzX2luaXRfbmV0KHN0cnVjdCBu ZXQgKm5ldCkKIHsKIAlzdHJ1Y3QgbmV0bnNfaWVlZTgwMjE1NF9sb3dwYW4gKmllZWU4MDIxNTRf bG93cGFuID0KIAkJbmV0X2llZWU4MDIxNTRfbG93cGFuKG5ldCk7Ci0JaW50IHJlczsKIAogCWll ZWU4MDIxNTRfbG93cGFuLT5mcmFncy5oaWdoX3RocmVzaCA9IElQVjZfRlJBR19ISUdIX1RIUkVT SDsKIAlpZWVlODAyMTU0X2xvd3Bhbi0+ZnJhZ3MubG93X3RocmVzaCA9IElQVjZfRlJBR19MT1df VEhSRVNIOwogCWllZWU4MDIxNTRfbG93cGFuLT5mcmFncy50aW1lb3V0ID0gSVBWNl9GUkFHX1RJ TUVPVVQ7CiAKLQlyZXMgPSBpbmV0X2ZyYWdzX2luaXRfbmV0KCZpZWVlODAyMTU0X2xvd3Bhbi0+ ZnJhZ3MpOwotCWlmIChyZXMpCi0JCXJldHVybiByZXM7Ci0JcmVzID0gbG93cGFuX2ZyYWdzX25z X3N5c2N0bF9yZWdpc3RlcihuZXQpOwotCWlmIChyZXMpCi0JCWluZXRfZnJhZ3NfdW5pbml0X25l dCgmaWVlZTgwMjE1NF9sb3dwYW4tPmZyYWdzKTsKLQlyZXR1cm4gcmVzOworCWluZXRfZnJhZ3Nf aW5pdF9uZXQoJmllZWU4MDIxNTRfbG93cGFuLT5mcmFncyk7CisKKwlyZXR1cm4gbG93cGFuX2Zy YWdzX25zX3N5c2N0bF9yZWdpc3RlcihuZXQpOwogfQogCiBzdGF0aWMgdm9pZCBfX25ldF9leGl0 IGxvd3Bhbl9mcmFnc19leGl0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9pcF9mcmFnbWVudC5jIGIvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYwppbmRleCA5YThjZmFj NTAzZGMuLjQ2NDA4YzIyMGQ5ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYwor KysgYi9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCkBAIC04NDQsOCArODQ0LDYgQEAgc3RhdGljIHZv aWQgX19pbml0IGlwNF9mcmFnc19jdGxfcmVnaXN0ZXIodm9pZCkKIAogc3RhdGljIGludCBfX25l dF9pbml0IGlwdjRfZnJhZ3NfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogewotCWludCByZXM7 Ci0KIAkvKiBGcmFnbWVudCBjYWNoZSBsaW1pdHMuCiAJICoKIAkgKiBUaGUgZnJhZ21lbnQgbWVt b3J5IGFjY291bnRpbmcgY29kZSwgKHRyaWVzIHRvKSBhY2NvdW50IGZvcgpAQCAtODcxLDEzICs4 NjksOSBAQCBzdGF0aWMgaW50IF9fbmV0X2luaXQgaXB2NF9mcmFnc19pbml0X25ldChzdHJ1Y3Qg bmV0ICpuZXQpCiAKIAluZXQtPmlwdjQuZnJhZ3MubWF4X2Rpc3QgPSA2NDsKIAotCXJlcyA9IGlu ZXRfZnJhZ3NfaW5pdF9uZXQoJm5ldC0+aXB2NC5mcmFncyk7Ci0JaWYgKHJlcykKLQkJcmV0dXJu IHJlczsKLQlyZXMgPSBpcDRfZnJhZ3NfbnNfY3RsX3JlZ2lzdGVyKG5ldCk7Ci0JaWYgKHJlcykK LQkJaW5ldF9mcmFnc191bmluaXRfbmV0KCZuZXQtPmlwdjQuZnJhZ3MpOwotCXJldHVybiByZXM7 CisJaW5ldF9mcmFnc19pbml0X25ldCgmbmV0LT5pcHY0LmZyYWdzKTsKKworCXJldHVybiBpcDRf ZnJhZ3NfbnNfY3RsX3JlZ2lzdGVyKG5ldCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9fbmV0X2V4aXQg aXB2NF9mcmFnc19leGl0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZf Y29ubnRyYWNrX3JlYXNtLmMKaW5kZXggOTg2ZDRjYTM4ODMyLi5iMjYzYmYzYTE5ZjcgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYworKysgYi9uZXQv aXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKQEAgLTYyMiwxOCArNjIyLDEyIEBA IEVYUE9SVF9TWU1CT0xfR1BMKG5mX2N0X2ZyYWc2X2dhdGhlcik7CiAKIHN0YXRpYyBpbnQgbmZf Y3RfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0KQogewotCWludCByZXM7Ci0KIAluZXQtPm5mX2Zy YWcuZnJhZ3MuaGlnaF90aHJlc2ggPSBJUFY2X0ZSQUdfSElHSF9USFJFU0g7CiAJbmV0LT5uZl9m cmFnLmZyYWdzLmxvd190aHJlc2ggPSBJUFY2X0ZSQUdfTE9XX1RIUkVTSDsKIAluZXQtPm5mX2Zy YWcuZnJhZ3MudGltZW91dCA9IElQVjZfRlJBR19USU1FT1VUOwotCXJlcyA9IGluZXRfZnJhZ3Nf aW5pdF9uZXQoJm5ldC0+bmZfZnJhZy5mcmFncyk7Ci0JaWYgKHJlcykKLQkJcmV0dXJuIHJlczsK LQlyZXMgPSBuZl9jdF9mcmFnNl9zeXNjdGxfcmVnaXN0ZXIobmV0KTsKLQlpZiAocmVzKQotCQlp bmV0X2ZyYWdzX3VuaW5pdF9uZXQoJm5ldC0+bmZfZnJhZy5mcmFncyk7Ci0JcmV0dXJuIHJlczsK KwlpbmV0X2ZyYWdzX2luaXRfbmV0KCZuZXQtPm5mX2ZyYWcuZnJhZ3MpOworCisJcmV0dXJuIG5m X2N0X2ZyYWc2X3N5c2N0bF9yZWdpc3RlcihuZXQpOwogfQogCiBzdGF0aWMgdm9pZCBuZl9jdF9u ZXRfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2VtYmx5 LmMgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKaW5kZXggZTFkYTViODg4Y2M0Li44NDYwMTJlYWU1 MjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JlYXNzZW1ibHkuYworKysgYi9uZXQvaXB2Ni9yZWFz c2VtYmx5LmMKQEAgLTcxNCwxOSArNzE0LDEzIEBAIHN0YXRpYyB2b2lkIGlwNl9mcmFnc19zeXNj dGxfdW5yZWdpc3Rlcih2b2lkKQogCiBzdGF0aWMgaW50IF9fbmV0X2luaXQgaXB2Nl9mcmFnc19p bml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiB7Ci0JaW50IHJlczsKLQogCW5ldC0+aXB2Ni5mcmFn cy5oaWdoX3RocmVzaCA9IElQVjZfRlJBR19ISUdIX1RIUkVTSDsKIAluZXQtPmlwdjYuZnJhZ3Mu bG93X3RocmVzaCA9IElQVjZfRlJBR19MT1dfVEhSRVNIOwogCW5ldC0+aXB2Ni5mcmFncy50aW1l b3V0ID0gSVBWNl9GUkFHX1RJTUVPVVQ7CiAKLQlyZXMgPSBpbmV0X2ZyYWdzX2luaXRfbmV0KCZu ZXQtPmlwdjYuZnJhZ3MpOwotCWlmIChyZXMpCi0JCXJldHVybiByZXM7Ci0JcmVzID0gaXA2X2Zy YWdzX25zX3N5c2N0bF9yZWdpc3RlcihuZXQpOwotCWlmIChyZXMpCi0JCWluZXRfZnJhZ3NfdW5p bml0X25ldCgmbmV0LT5pcHY2LmZyYWdzKTsKLQlyZXR1cm4gcmVzOworCWluZXRfZnJhZ3NfaW5p dF9uZXQoJm5ldC0+aXB2Ni5mcmFncyk7CisKKwlyZXR1cm4gaXA2X2ZyYWdzX25zX3N5c2N0bF9y ZWdpc3RlcihuZXQpOwogfQogCiBzdGF0aWMgdm9pZCBfX25ldF9leGl0IGlwdjZfZnJhZ3NfZXhp dF9uZXQoc3RydWN0IG5ldCAqbmV0KQotLSAKMi4xMy41CgoKRnJvbSBhZDZkMjNkZWQ0N2RkZDI2 MDAzYjAwNTQ3MDBkYzQ2YjY1OTAxZGE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBD bGF1ZGl1IE1hbm9pbCA8Y2xhdWRpdS5tYW5vaWxAbnhwLmNvbT4KRGF0ZTogTW9uLCA0IFNlcCAy MDE3IDEwOjQ1OjI4ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMy8xMV0gZ2lhbmZhcjogRml4IFR4 IGZsb3cgY29udHJvbCBkZWFjdGl2YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDVkNjIxNjcyYmMx YTFlNTA5MGMxYWM1NDMyYTE4Yzc5ZTBlMTNlMDMgXQoKVGhlIHdyb25nIHJlZ2lzdGVyIGlzIGNo ZWNrZWQgZm9yIHRoZSBUeCBmbG93IGNvbnRyb2wgYml0LAppdCBzaG91bGQgaGF2ZSBiZWVuIG1h Y2NmZzEgbm90IG1hY2NmZzIuClRoaXMgd2VudCB1bm5vdGljZWQgZm9yIHNvIGxvbmcgcHJvYmFi bHkgYmVjYXVzZSB0aGUgaW1wYWN0IGlzCmhhcmRseSB2aXNpYmxlLCBub3QgdG8gbWVudGlvbiB0 aGUgdGFuZ2xlZCBjb2RlIGZyb20gYWRqdXN0X2xpbmsoKS4KRmlyc3QsIGxpbmsgZmxvdyBjb250 cm9sIChpLmUuIGhhbmRsaW5nIG9mIFJ4L1R4IGxpbmsgbGV2ZWwgcGF1c2UgZnJhbWVzKQppcyBk aXNhYmxlZCBieSBkZWZhdWx0IChuZWVkcyB0byBiZSBlbmFibGVkIHZpYSAnZXRodG9vbCAtQScp LgpTZWNvbmRseSwgbWFjY2ZnMiBhbHdheXMgcmV0dXJucyAwIGZvciB0eF9mbG93X29sZHZhbCAo ZXhjZXB0IGZvciBhIGZldwpvbGQgYm9hcmRzKSwgd2hpY2ggcmVzdWx0cyBpbiBUeCBmbG93IGNv bnRyb2wgcmVtYWluaW5nIGFsd2F5cyBvbgpvbmNlIGFjdGl2YXRlZC4KCkZpeGVzOiA0NWI2Nzlj OWEzY2NkOWUzNGYyOGU2ZWM2NzdiODEyYTg2MGViOGViICgiZ2lhbmZhcjogSW1wbGVtZW50IFBB VVNFIGZyYW1lIGdlbmVyYXRpb24gc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IENsYXVkaXUgTWFu b2lsIDxjbGF1ZGl1Lm1hbm9pbEBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2dpYW5mYXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9n aWFuZmFyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jCmluZGV4 IGM0YjRiMGExYmJmMC4uNWJlNTJkODliMTgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9mcmVlc2NhbGUvZ2lhbmZhci5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVz Y2FsZS9naWFuZmFyLmMKQEAgLTM2ODcsNyArMzY4Nyw3IEBAIHN0YXRpYyBub2lubGluZSB2b2lk IGdmYXJfdXBkYXRlX2xpbmtfc3RhdGUoc3RydWN0IGdmYXJfcHJpdmF0ZSAqcHJpdikKIAkJdTMy IHRlbXB2YWwxID0gZ2Zhcl9yZWFkKCZyZWdzLT5tYWNjZmcxKTsKIAkJdTMyIHRlbXB2YWwgPSBn ZmFyX3JlYWQoJnJlZ3MtPm1hY2NmZzIpOwogCQl1MzIgZWNudHJsID0gZ2Zhcl9yZWFkKCZyZWdz LT5lY250cmwpOwotCQl1MzIgdHhfZmxvd19vbGR2YWwgPSAodGVtcHZhbCAmIE1BQ0NGRzFfVFhf RkxPVyk7CisJCXUzMiB0eF9mbG93X29sZHZhbCA9ICh0ZW1wdmFsMSAmIE1BQ0NGRzFfVFhfRkxP Vyk7CiAKIAkJaWYgKHBoeWRldi0+ZHVwbGV4ICE9IHByaXYtPm9sZGR1cGxleCkgewogCQkJaWYg KCEocGh5ZGV2LT5kdXBsZXgpKQotLSAKMi4xMy41CgoKRnJvbSA0NjY1ZjdiNzc4YmI1ZDk3YzAw OWVlN2I3NDM5YzY0NjcwMTRhMTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNv biBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgpEYXRlOiBUdWUsIDUgU2VwIDIwMTcgMDk6MjI6 MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIDA0LzExXSB2aG9zdF9uZXQ6IGNvcnJlY3RseSBjaGVj ayB0eCBhdmFpbCBkdXJpbmcgcnggYnVzeQogcG9sbGluZwoKWyBVcHN0cmVhbSBjb21taXQgOGI5 NDliZWY5MTcyY2E2OWQ5MThlOTM1MDlhNGVjYjAzZDAzNTVlMCBdCgpXZSBjaGVjayB0eCBhdmFp bCB0aHJvdWdoIHZob3N0X2VuYWJsZV9ub3RpZnkoKSBpbiB0aGUgcGFzdCB3aGljaCBpcwp3cm9u ZyBzaW5jZSBpdCBvbmx5IGNoZWNrcyB3aGV0aGVyIG9yIG5vdCBndWVzdCBoYXMgZmlsbGVkIG1v cmUKYXZhaWxhYmxlIGJ1ZmZlciBzaW5jZSBsYXN0IGF2YWlsIGlkeCBzeW5jaHJvbml6YXRpb24g d2hpY2ggd2FzIGp1c3QKZG9uZSBieSB2aG9zdF92cV9hdmFpbF9lbXB0eSgpIGJlZm9yZS4gV2hh dCB3ZSByZWFsbHkgd2FudCBpcyBjaGVja2luZwpwZW5kaW5nIGJ1ZmZlcnMgaW4gdGhlIGF2YWls IHJpbmcuIEZpeCB0aGlzIGJ5IGNhbGxpbmcKdmhvc3RfdnFfYXZhaWxfZW1wdHkoKSBpbnN0ZWFk LgoKVGhpcyBpc3N1ZSBjb3VsZCBiZSBub3RpY2VkIGJ5IGRvaW5nIG5ldHBlcmYgVENQX1JSIGJl bmNobWFyayBhcwpjbGllbnQgZnJvbSBndWVzdCAoYnV0IG5vdCBob3N0KS4gV2l0aCB0aGlzIGZp eCwgVENQX1JSIGZyb20gZ3Vlc3QgdG8KbG9jYWxob3N0IHJlc3RvcmVzIGZyb20gMTM3NS45MSB0 cmFucyBwZXIgc2VjIHRvIDU1MjM1LjI4IHRyYW5zIHBlcgpzZWMgb24gbXkgbGFwdG9wIChJbnRl bChSKSBDb3JlKFRNKSBpNy01NjAwVSBDUFUgQCAyLjYwR0h6KS4KCkZpeGVzOiAwMzA4ODEzNzI0 NjAgKCJ2aG9zdF9uZXQ6IGJhc2ljIHBvbGxpbmcgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEph c29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL3Zob3N0L25ldC5jIHwgNyAr KysrKystCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy92aG9zdC9uZXQuYyBiL2RyaXZlcnMvdmhvc3QvbmV0LmMKaW5k ZXggMDZkMDQ0ODYyZTU4Li4xYzc1NTcyZjVhM2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmhvc3Qv bmV0LmMKKysrIGIvZHJpdmVycy92aG9zdC9uZXQuYwpAQCAtNjM0LDggKzYzNCwxMyBAQCBzdGF0 aWMgaW50IHZob3N0X25ldF9yeF9wZWVrX2hlYWRfbGVuKHN0cnVjdCB2aG9zdF9uZXQgKm5ldCwg c3RydWN0IHNvY2sgKnNrKQogCiAJCXByZWVtcHRfZW5hYmxlKCk7CiAKLQkJaWYgKHZob3N0X2Vu YWJsZV9ub3RpZnkoJm5ldC0+ZGV2LCB2cSkpCisJCWlmICghdmhvc3RfdnFfYXZhaWxfZW1wdHko Jm5ldC0+ZGV2LCB2cSkpCiAJCQl2aG9zdF9wb2xsX3F1ZXVlKCZ2cS0+cG9sbCk7CisJCWVsc2Ug aWYgKHVubGlrZWx5KHZob3N0X2VuYWJsZV9ub3RpZnkoJm5ldC0+ZGV2LCB2cSkpKSB7CisJCQl2 aG9zdF9kaXNhYmxlX25vdGlmeSgmbmV0LT5kZXYsIHZxKTsKKwkJCXZob3N0X3BvbGxfcXVldWUo JnZxLT5wb2xsKTsKKwkJfQorCiAJCW11dGV4X3VubG9jaygmdnEtPm11dGV4KTsKIAogCQlsZW4g PSBwZWVrX2hlYWRfbGVuKHJ2cSwgc2spOwotLSAKMi4xMy41CgoKRnJvbSA1NmE1ZDZlZGJkNWI4 NWFmY2VlMTAwOTdlN2VjNTkwZjc1YTY0MTExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgNSBTZXAgMjAxNyAx NzoyNjozMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTFdIGlwNl9ncmU6IHVwZGF0ZSBtdHUg cHJvcGVybHkgaW4gaXA2Z3JlX2VycgoKWyBVcHN0cmVhbSBjb21taXQgNWMyNWYzMGM5M2ZkYzVi ZjI1ZTYyMTAxYWVhYWU3YTRmOWI0MjFiMyBdCgpOb3cgd2hlbiBwcm9iZXNzaW5nIElDTVBWNl9Q S1RfVE9PQklHLCBpcDZncmVfZXJyIG9ubHkgc3VidHJhY3RzIHRoZQpvZmZzZXQgb2YgZ3JlIGhl YWRlciBmcm9tIG10dSBpbmZvLiBUaGUgZXhwZWN0ZWQgbXR1IG9mIGdyZSBkZXZpY2UKc2hvdWxk IGFsc28gc3VidHJhY3QgZ3JlIGhlYWRlci4gT3RoZXJ3aXNlLCB0aGUgbmV4dCBwYWNrZXRzIHN0 aWxsCmNhbid0IGJlIHNlbnQgb3V0LgoKSmlhbmxpbiBmb3VuZCB0aGlzIGlzc3VlIHdoZW4gdXNp bmcgdGhlIHRvcG86CiAgY2xpZW50KGlwNmdyZSk8LS0tLT4obmljMSlyb3V0ZShuaWMyKTwtLS0t LT4oaXA2Z3JlKXNlcnZlcgoKYW5kIHJlZHVjaW5nIG5pYzIncyBtdHUsIHRoZW4gYm90aCB0Y3Ag YW5kIHNjdHAncyBwZXJmb3JtYW5jZSB3aXRoCmJpZyBzaXplIGRhdGEgYmVjYW1lIDAuCgpUaGlz IHBhdGNoIGlzIHRvIGZpeCBpdCBieSBhbHNvIHN1YnRyYWN0aW5nIGdyZWhkciAodHVuLT50dW5f aGxlbikKZnJvbSBtdHUgaW5mbyB3aGVuIHVwZGF0aW5nIGdyZSBkZXZpY2UncyBtdHUgaW4gaXA2 Z3JlX2VycigpLiBJdAphbHNvIG5lZWRzIHRvIHN1YnRyYWN0IEVUSF9ITEVOIGlmIGdyZSBkZXYn dHlwZSBpcyBBUlBIUkRfRVRIRVIuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY2L2lwNl9ncmUuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9ncmUuYyBiL25l dC9pcHY2L2lwNl9ncmUuYwppbmRleCA2N2ZmMmFhZjVkY2IuLmI3YTcyZDQwOTMzNCAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtNDMy LDcgKzQzMiw5IEBAIHN0YXRpYyB2b2lkIGlwNmdyZV9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IGluZXQ2X3NrYl9wYXJtICpvcHQsCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBJQ01QVjZf UEtUX1RPT0JJRzoKLQkJbXR1ID0gYmUzMl90b19jcHUoaW5mbykgLSBvZmZzZXQ7CisJCW10dSA9 IGJlMzJfdG9fY3B1KGluZm8pIC0gb2Zmc2V0IC0gdC0+dHVuX2hsZW47CisJCWlmICh0LT5kZXYt PnR5cGUgPT0gQVJQSFJEX0VUSEVSKQorCQkJbXR1IC09IEVUSF9ITEVOOwogCQlpZiAobXR1IDwg SVBWNl9NSU5fTVRVKQogCQkJbXR1ID0gSVBWNl9NSU5fTVRVOwogCQl0LT5kZXYtPm10dSA9IG10 dTsKLS0gCjIuMTMuNQoKCkZyb20gOWYxNGY5NDM3ZjVmYzQ4MzAxMGI3YjhhNzBjMmIwZWMyNDM4 YzI2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUBy ZWRoYXQuY29tPgpEYXRlOiBXZWQsIDYgU2VwIDIwMTcgMTQ6NDQ6MzYgKzAyMDAKU3ViamVjdDog W1BBVENIIDA2LzExXSB1ZHA6IGRyb3AgaGVhZCBzdGF0ZXMgb25seSB3aGVuIGFsbCBza2IgcmVm ZXJlbmNlcyBhcmUKIGdvbmUKClsgVXBzdHJlYW0gY29tbWl0IGNhMmMxNDE4ZWZlOWY3ZmUzN2Fh MWYzNTVlZmRmNGViMjkzNjczY2UgXQoKQWZ0ZXIgY29tbWl0IDBkZGYzZmIyYzQzZCAoInVkcDog cHJlc2VydmUgc2tiLT5kc3QgaWYgcmVxdWlyZWQKZm9yIElQIG9wdGlvbnMgcHJvY2Vzc2luZyIp IHdlIGNsZWFyIHRoZSBza2IgaGVhZCBzdGF0ZSBhcyBzb29uCmFzIHRoZSBza2IgY2Fycnlpbmcg dGhlbSBpcyBmaXJzdCBwcm9jZXNzZWQuCgpTaW5jZSB0aGUgc2FtZSBza2IgY2FuIGJlIHByb2Nl c3NlZCBzZXZlcmFsIHRpbWVzIHdoZW4gTVNHX1BFRUsKaXMgdXNlZCwgd2UgY2FuIGVuZCB1cCBs YWNraW5nIHRoZSByZXF1aXJlZCBoZWFkIHN0YXRlcywgYW5kCmV2ZW50dWFsbHkgb29wc2luZy4K CkZpeCB0aGlzIGNsZWFyaW5nIHRoZSBza2IgaGVhZCBzdGF0ZSBvbmx5IHdoZW4gcHJvY2Vzc2lu ZyB0aGUKbGFzdCBza2IgcmVmZXJlbmNlLgoKUmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KRml4ZXM6IDBkZGYzZmIyYzQzZCAoInVkcDogcHJlc2VydmUgc2ti LT5kc3QgaWYgcmVxdWlyZWQgZm9yIElQIG9wdGlvbnMgcHJvY2Vzc2luZyIpClNpZ25lZC1vZmYt Ynk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvc2tidWZm LmggfCAyICstCiBuZXQvY29yZS9za2J1ZmYuYyAgICAgIHwgOSArKystLS0tLS0KIG5ldC9pcHY0 L3VkcC5jICAgICAgICAgfCA1ICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oIGIv aW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCBkNjdhODE4MmU1ZWIuLjYzZGY3NWFlNzBlZSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Nr YnVmZi5oCkBAIC04ODUsNyArODg1LDcgQEAgdm9pZCBrZnJlZV9za2Ioc3RydWN0IHNrX2J1ZmYg KnNrYik7CiB2b2lkIGtmcmVlX3NrYl9saXN0KHN0cnVjdCBza19idWZmICpzZWdzKTsKIHZvaWQg c2tiX3R4X2Vycm9yKHN0cnVjdCBza19idWZmICpza2IpOwogdm9pZCBjb25zdW1lX3NrYihzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKTsKLXZvaWQgY29uc3VtZV9zdGF0ZWxlc3Nfc2tiKHN0cnVjdCBza19i dWZmICpza2IpOwordm9pZCBfX2NvbnN1bWVfc3RhdGVsZXNzX3NrYihzdHJ1Y3Qgc2tfYnVmZiAq c2tiKTsKIHZvaWQgIF9fa2ZyZWVfc2tiKHN0cnVjdCBza19idWZmICpza2IpOwogZXh0ZXJuIHN0 cnVjdCBrbWVtX2NhY2hlICpza2J1ZmZfaGVhZF9jYWNoZTsKIApkaWZmIC0tZ2l0IGEvbmV0L2Nv cmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCBlMDc1NTY2MDYyODQuLjcyZWIy M2QyNDI2ZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2ti dWZmLmMKQEAgLTc1MywxNCArNzUzLDExIEBAIEVYUE9SVF9TWU1CT0woY29uc3VtZV9za2IpOwog ICoJY29uc3VtZV9zdGF0ZWxlc3Nfc2tiIC0gZnJlZSBhbiBza2J1ZmYsIGFzc3VtaW5nIGl0IGlz IHN0YXRlbGVzcwogICoJQHNrYjogYnVmZmVyIHRvIGZyZWUKICAqCi0gKglXb3JrcyBsaWtlIGNv bnN1bWVfc2tiKCksIGJ1dCB0aGlzIHZhcmlhbnQgYXNzdW1lcyB0aGF0IGFsbCB0aGUgaGVhZAot ICoJc3RhdGVzIGhhdmUgYmVlbiBhbHJlYWR5IGRyb3BwZWQuCisgKglBbGlrZSBjb25zdW1lX3Nr YigpLCBidXQgdGhpcyB2YXJpYW50IGFzc3VtZXMgdGhhdCB0aGlzIGlzIHRoZSBsYXN0CisgKglz a2IgcmVmZXJlbmNlIGFuZCBhbGwgdGhlIGhlYWQgc3RhdGVzIGhhdmUgYmVlbiBhbHJlYWR5IGRy b3BwZWQKICAqLwotdm9pZCBjb25zdW1lX3N0YXRlbGVzc19za2Ioc3RydWN0IHNrX2J1ZmYgKnNr YikKK3ZvaWQgX19jb25zdW1lX3N0YXRlbGVzc19za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsK LQlpZiAoIXNrYl91bnJlZihza2IpKQotCQlyZXR1cm47Ci0KIAl0cmFjZV9jb25zdW1lX3NrYihz a2IpOwogCWlmIChsaWtlbHkoc2tiLT5oZWFkKSkKIAkJc2tiX3JlbGVhc2VfZGF0YShza2IpOwpk aWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA2MjM0NDgw NGJhYWUuLjk3OWU0ZDg1MjZiYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0 L2lwdjQvdWRwLmMKQEAgLTEzODYsMTIgKzEzODYsMTUgQEAgdm9pZCBza2JfY29uc3VtZV91ZHAo c3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgbGVuKQogCQl1bmxvY2tf c29ja19mYXN0KHNrLCBzbG93KTsKIAl9CiAKKwlpZiAoIXNrYl91bnJlZihza2IpKQorCQlyZXR1 cm47CisKIAkvKiBJbiB0aGUgbW9yZSBjb21tb24gY2FzZXMgd2UgY2xlYXJlZCB0aGUgaGVhZCBz dGF0ZXMgcHJldmlvdXNseSwKIAkgKiBzZWUgX191ZHBfcXVldWVfcmN2X3NrYigpLgogCSAqLwog CWlmICh1bmxpa2VseSh1ZHBfc2tiX2hhc19oZWFkX3N0YXRlKHNrYikpKQogCQlza2JfcmVsZWFz ZV9oZWFkX3N0YXRlKHNrYik7Ci0JY29uc3VtZV9zdGF0ZWxlc3Nfc2tiKHNrYik7CisJX19jb25z dW1lX3N0YXRlbGVzc19za2Ioc2tiKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHNrYl9jb25zdW1l X3VkcCk7CiAKLS0gCjIuMTMuNQoKCkZyb20gODlmMzc2YTJmYTAyYmVjN2ZiMTQ3NzRmY2Q2MTRl OWU5MjE5ZjAyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FicmluYSBEdWJyb2Nh IDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRhdGU6IEZyaSwgOCBTZXAgMjAxNyAxMDoyNjoxOSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDcvMTFdIGlwdjY6IGZpeCBtZW1vcnkgbGVhayB3aXRoIG11bHRp cGxlIHRhYmxlcyBkdXJpbmcgbmV0bnMKIGRlc3RydWN0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCBi YTFjYzA4ZDk0ODhjOTRjYjhkOTRmNTQ1MzA1Njg4YjcyYTJhMzAwIF0KCmZpYjZfbmV0X2V4aXQg b25seSBmcmVlcyB0aGUgbWFpbiBhbmQgbG9jYWwgdGFibGVzLiBJZiBhbm90aGVyIHRhYmxlIHdh cwpjcmVhdGVkIHdpdGggZmliNl9hbGxvY190YWJsZSwgd2UgbGVhayBpdCB3aGVuIHRoZSBuZXRu cyBpcyBkZXN0cm95ZWQuCgpGaXggdGhpcyBpbiB0aGUgc2FtZSB3YXkgaXBfZmliX25ldF9leGl0 IGNsZWFucyB1cCB0YWJsZXMsIGJ5IHdhbGtpbmcKdGhyb3VnaCB0aGUgd2hvbGUgaGFzaHRhYmxl IG9mIGZpYjZfdGFibGUncy4gV2UgY2FuIGdldCByaWQgb2YgdGhlCnNwZWNpYWwgY2FzZXMgZm9y IGxvY2FsIGFuZCBtYWluLCBzaW5jZSB0aGV5J3JlIGFsc28gcGFydCBvZiB0aGUKaGFzaHRhYmxl LgoKUmVwcm9kdWNlcjoKICAgIGlwIG5ldG5zIGFkZCB4CiAgICBpcCAtbmV0IHggLTYgcnVsZSBh ZGQgZnJvbSA2MDAzOjE6Oi82NCB0YWJsZSAxMDAKICAgIGlwIG5ldG5zIGRlbCB4CgpSZXBvcnRl ZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJlZGhhdC5jb20+CkZpeGVzOiA1OGYwOWI3OGI3MzAg KCJbTkVUTlNdW0lQVjZdIGlwNl9maWIgLSBtYWtlIGl0IHBlciBuZXR3b3JrIG5hbWVzcGFjZSIp ClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjYvaXA2X2ZpYi5jIHwgMjUgKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4IGUxYzg1YmI0ZWFjMC4u NDUyODk4YWUyNGYxIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0L2lw djYvaXA2X2ZpYi5jCkBAIC0xOTgsNiArMTk4LDEyIEBAIHN0YXRpYyB2b2lkIHJ0Nl9yZWxlYXNl KHN0cnVjdCBydDZfaW5mbyAqcnQpCiAJfQogfQogCitzdGF0aWMgdm9pZCBmaWI2X2ZyZWVfdGFi bGUoc3RydWN0IGZpYjZfdGFibGUgKnRhYmxlKQoreworCWluZXRwZWVyX2ludmFsaWRhdGVfdHJl ZSgmdGFibGUtPnRiNl9wZWVycyk7CisJa2ZyZWUodGFibGUpOworfQorCiBzdGF0aWMgdm9pZCBm aWI2X2xpbmtfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmliNl90YWJsZSAqdGIpCiB7 CiAJdW5zaWduZWQgaW50IGg7CkBAIC0xOTE1LDE1ICsxOTIxLDIyIEBAIHN0YXRpYyBpbnQgX19u ZXRfaW5pdCBmaWI2X25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCkKIAogc3RhdGljIHZvaWQgZmli Nl9uZXRfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpCiB7CisJdW5zaWduZWQgaW50IGk7CisKIAlydDZf aWZkb3duKG5ldCwgTlVMTCk7CiAJZGVsX3RpbWVyX3N5bmMoJm5ldC0+aXB2Ni5pcDZfZmliX3Rp bWVyKTsKIAotI2lmZGVmIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUwotCWluZXRwZWVyX2lu dmFsaWRhdGVfdHJlZSgmbmV0LT5pcHY2LmZpYjZfbG9jYWxfdGJsLT50YjZfcGVlcnMpOwotCWtm cmVlKG5ldC0+aXB2Ni5maWI2X2xvY2FsX3RibCk7Ci0jZW5kaWYKLQlpbmV0cGVlcl9pbnZhbGlk YXRlX3RyZWUoJm5ldC0+aXB2Ni5maWI2X21haW5fdGJsLT50YjZfcGVlcnMpOwotCWtmcmVlKG5l dC0+aXB2Ni5maWI2X21haW5fdGJsKTsKKwlmb3IgKGkgPSAwOyBpIDwgRklCX1RBQkxFX0hBU0hT WjsgaSsrKSB7CisJCXN0cnVjdCBobGlzdF9oZWFkICpoZWFkID0gJm5ldC0+aXB2Ni5maWJfdGFi bGVfaGFzaFtpXTsKKwkJc3RydWN0IGhsaXN0X25vZGUgKnRtcDsKKwkJc3RydWN0IGZpYjZfdGFi bGUgKnRiOworCisJCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodGIsIHRtcCwgaGVhZCwgdGI2 X2hsaXN0KSB7CisJCQlobGlzdF9kZWwoJnRiLT50YjZfaGxpc3QpOworCQkJZmliNl9mcmVlX3Rh YmxlKHRiKTsKKwkJfQorCX0KKwogCWtmcmVlKG5ldC0+aXB2Ni5maWJfdGFibGVfaGFzaCk7CiAJ a2ZyZWUobmV0LT5pcHY2LnJ0Nl9zdGF0cyk7CiB9Ci0tIAoyLjEzLjUKCgpGcm9tIDhhMTUyNTYw NjgyOTJhN2JjMDIyYWIyZDc2YWUxOGI0MmM0NGNiMzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCA4IFNl cCAyMDE3IDE1OjQ4OjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC8xMV0gaXB2NjogZml4IHR5 cG8gaW4gZmliNl9uZXRfZXhpdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCAzMmE4MDViYWYwZmI3MGI2 ZGJlZGVmY2Q3MjQ5YWM3ZjU4MGY5ZTNiIF0KCklQdjYgRklCIHNob3VsZCB1c2UgRklCNl9UQUJM RV9IQVNIU1osIG5vdCBGSUJfVEFCTEVfSEFTSFNaLgoKRml4ZXM6IGJhMWNjMDhkOTQ4OCAoImlw djY6IGZpeCBtZW1vcnkgbGVhayB3aXRoIG11bHRpcGxlIHRhYmxlcyBkdXJpbmcgbmV0bnMgZGVz dHJ1Y3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvaXB2Ni9pcDZfZmliLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmliLmMgYi9u ZXQvaXB2Ni9pcDZfZmliLmMKaW5kZXggNDUyODk4YWUyNGYxLi4xNzkyYmJmZDgwZTEgMTAwNjQ0 Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2Ni9pcDZfZmliLmMKQEAgLTE5 MjYsNyArMTkyNiw3IEBAIHN0YXRpYyB2b2lkIGZpYjZfbmV0X2V4aXQoc3RydWN0IG5ldCAqbmV0 KQogCXJ0Nl9pZmRvd24obmV0LCBOVUxMKTsKIAlkZWxfdGltZXJfc3luYygmbmV0LT5pcHY2Lmlw Nl9maWJfdGltZXIpOwogCi0JZm9yIChpID0gMDsgaSA8IEZJQl9UQUJMRV9IQVNIU1o7IGkrKykg eworCWZvciAoaSA9IDA7IGkgPCBGSUI2X1RBQkxFX0hBU0hTWjsgaSsrKSB7CiAJCXN0cnVjdCBo bGlzdF9oZWFkICpoZWFkID0gJm5ldC0+aXB2Ni5maWJfdGFibGVfaGFzaFtpXTsKIAkJc3RydWN0 IGhsaXN0X25vZGUgKnRtcDsKIAkJc3RydWN0IGZpYjZfdGFibGUgKnRiOwotLSAKMi4xMy41CgoK RnJvbSA5MjI5NDAzN2JjMWQ0YzY4YzczNjQ3NGQxYzQ2YTk5YThiYWQxYWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0 bmVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IFNlcCAyMDE3IDExOjM1OjIxIC0wMzAwClN1Ympl Y3Q6IFtQQVRDSCAwOS8xMV0gc2N0cDogZml4IG1pc3Npbmcgd2FrZSB1cHMgaW4gc29tZSBzaXR1 YXRpb25zCgpbIFVwc3RyZWFtIGNvbW1pdCA3OTA2YjAwZjVjZDFjZDQ4NGZjZWQ3ZmNkYTg5MjE3 NmUzMjAyYzhhIF0KCkNvbW1pdCBmYjU4NmYyNTMwMGYgKCJzY3RwOiBkZWxheSBjYWxscyB0byBz a19kYXRhX3JlYWR5KCkgYXMgbXVjaCBhcwpwb3NzaWJsZSIpIG1pbmltaXplZCB0aGUgbnVtYmVy IG9mIHdha2UgdXBzIHRoYXQgYXJlIHRyaWdnZXJlZCBpbiBjYXNlCnRoZSBhc3NvY2lhdGlvbiBy ZWNlaXZlcyBhIHBhY2tldCB3aXRoIG11bHRpcGxlIGRhdGEgY2h1bmtzIG9uIGl0IGFuZC9vcgp3 aGVuIGlvX2V2ZW50cyBhcmUgZW5hYmxlZCBhbmQgdGhlbiBjb21taXQgMDk3MGY1YjM2NjU5ICgi c2N0cDogc2lnbmFsCnNrX2RhdGFfcmVhZHkgZWFybGllciBvbiBkYXRhIGNodW5rcyByZWNlcHRp b24iKSBtb3ZlZCB0aGUgd2FrZSB1cCB0byBhcwpzb29uIGFzIHBvc3NpYmxlLiBJdCB0aHVzIHJl bGllcyBvbiB0aGUgc3RhdGUgbWFjaGluZSBydW5uaW5nIGxhdGVyIHRvCmNsZWFuIHRoZSBmbGFn IHRoYXQgdGhlIGV2ZW50IHdhcyBhbHJlYWR5IGdlbmVyYXRlZC4KClRoZSBpc3N1ZSBpcyB0aGF0 IHRoZXJlIGFyZSAyIGNhbGwgcGF0aHMgdGhhdCBjYWxscwpzY3RwX3VscHFfdGFpbF9ldmVudCgp IG91dHNpZGUgb2YgdGhlIHN0YXRlIG1hY2hpbmUsIGNhdXNpbmcgdGhlIGZsYWcgdG8KbGluZ2Vy IGFuZCBwb3NzaWJseSBvbWl0dGluZyBhIG5lZWRlZCB3YWtlIHVwIGluIHRoZSBzZXF1ZW5jZS4K Ck9uZSBvZiB0aGUgY2FsbCBwYXRocyBpcyB3aGVuIGVuYWJsaW5nIFNDVFBfU0VOREVSX0RSWV9F VkVOVFMgdmlhCnNldHNvY2tvcHQoU0NUUF9FVkVOVFMpLCBhcyBub3RpY2VkIGJ5IEhhcmFsZCBX ZWx0ZS4gVGhlIG90aGVyIGlzIHdoZW4KcGFydGlhbCByZWxpYWJpbGl0eSB0cmlnZ2VycyByZW1v dmFsIG9mIGNodW5rcyBmcm9tIHRoZSBzZW5kIHF1ZXVlIHdoZW4KdGhlIGFwcGxpY2F0aW9uIGNh bGxzIHNlbmRtc2coKS4KClRoaXMgY29tbWl0IGZpeGVzIGl0IGJ5IG5vdCBzZXR0aW5nIHRoZSBm bGFnIGluIGNhc2UgdGhlIHNvY2tldCBpcyBub3QKb3duZWQgYnkgdGhlIHVzZXIsIGFzIGl0IHdv bid0IGJlIGNsZWFuZWQgbGF0ZXIuIFRoaXMgd29ya3MgZm9yCnVzZXItaW5pdGlhdGVkIGNhbGxz IGFuZCBhbHNvIGZvciByeCBwYXRoIHByb2Nlc3NpbmcuCgpGaXhlczogZmI1ODZmMjUzMDBmICgi c2N0cDogZGVsYXkgY2FsbHMgdG8gc2tfZGF0YV9yZWFkeSgpIGFzIG11Y2ggYXMgcG9zc2libGUi KQpSZXBvcnRlZC1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQGdudW1vbmtzLm9yZz4KU2lnbmVk LW9mZi1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvc2N0cC91bHBxdWV1ZS5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC91bHBxdWV1ZS5j IGIvbmV0L3NjdHAvdWxwcXVldWUuYwppbmRleCAwMjI1ZDYyYTg2OWYuLmE3MWJlMzNmM2FmZSAx MDA2NDQKLS0tIGEvbmV0L3NjdHAvdWxwcXVldWUuYworKysgYi9uZXQvc2N0cC91bHBxdWV1ZS5j CkBAIC0yNjUsNyArMjY1LDggQEAgaW50IHNjdHBfdWxwcV90YWlsX2V2ZW50KHN0cnVjdCBzY3Rw X3VscHEgKnVscHEsIHN0cnVjdCBzY3RwX3VscGV2ZW50ICpldmVudCkKIAkJc2N0cF91bHBxX2Ns ZWFyX3BkKHVscHEpOwogCiAJaWYgKHF1ZXVlID09ICZzay0+c2tfcmVjZWl2ZV9xdWV1ZSAmJiAh c3AtPmRhdGFfcmVhZHlfc2lnbmFsbGVkKSB7Ci0JCXNwLT5kYXRhX3JlYWR5X3NpZ25hbGxlZCA9 IDE7CisJCWlmICghc29ja19vd25lZF9ieV91c2VyKHNrKSkKKwkJCXNwLT5kYXRhX3JlYWR5X3Np Z25hbGxlZCA9IDE7CiAJCXNrLT5za19kYXRhX3JlYWR5KHNrKTsKIAl9CiAJcmV0dXJuIDE7Ci0t IAoyLjEzLjUKCgpGcm9tIDFhNjQ5NmQ2YjYzM2E2OTQwNjI0ZWFkNjM2M2E4ZWRjODk4ODcxMWYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogRnJpLCA4IFNlcCAyMDE3IDEyOjQ0OjQ3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAxMC8xMV0gdGNwOiBmaXggYSByZXF1ZXN0IHNvY2tldCBsZWFrCgpbIFVwc3RyZWFtIGNv bW1pdCAxZjNiMzU5ZjEwMDRiZDM0YjdiMGJhZDcwYjkzZTNjN2FmOTJhMzdiIF0KCldoaWxlIHRo ZSBjaXRlZCBjb21taXQgZml4ZWQgYSBwb3NzaWJsZSBkZWFkbG9jaywgaXQgYWRkZWQgYSBsZWFr Cm9mIHRoZSByZXF1ZXN0IHNvY2tldCwgc2luY2UgcmVxc2tfcHV0KCkgbXVzdCBiZSBjYWxsZWQg aWYgdGhlIEJQRgpmaWx0ZXIgZGVjaWRlZCB0aGUgQUNLIHBhY2tldCBtdXN0IGJlIGRyb3BwZWQu CgpGaXhlczogZDYyNGQyNzZkMWRkICgidGNwOiBmaXggcG9zc2libGUgZGVhZGxvY2sgaW4gVENQ IHN0YWNrIHZzIEJQRiBmaWx0ZXIiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+CkFja2VkLWJ5OiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFzdEBrZXJuZWwu b3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2lwdjQvdGNwX2lwdjQuYyB8IDYgKysrLS0tCiBuZXQvaXB2Ni90Y3BfaXB2Ni5j IHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pcHY0LmMgYi9uZXQvaXB2NC90Y3BfaXB2 NC5jCmluZGV4IGU5MjUyYzdkZjgwOS4uMjEwMjJkYjdhMmE2IDEwMDY0NAotLS0gYS9uZXQvaXB2 NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTE3MjIsOSArMTcyMiw5 IEBAIGludCB0Y3BfdjRfcmN2KHN0cnVjdCBza19idWZmICpza2IpCiAJCSAqLwogCQlzb2NrX2hv bGQoc2spOwogCQlyZWZjb3VudGVkID0gdHJ1ZTsKLQkJaWYgKHRjcF9maWx0ZXIoc2ssIHNrYikp Ci0JCQlnb3RvIGRpc2NhcmRfYW5kX3JlbHNlOwotCQluc2sgPSB0Y3BfY2hlY2tfcmVxKHNrLCBz a2IsIHJlcSwgZmFsc2UpOworCQluc2sgPSBOVUxMOworCQlpZiAoIXRjcF9maWx0ZXIoc2ssIHNr YikpCisJCQluc2sgPSB0Y3BfY2hlY2tfcmVxKHNrLCBza2IsIHJlcSwgZmFsc2UpOwogCQlpZiAo IW5zaykgewogCQkJcmVxc2tfcHV0KHJlcSk7CiAJCQlnb3RvIGRpc2NhcmRfYW5kX3JlbHNlOwpk aWZmIC0tZ2l0IGEvbmV0L2lwdjYvdGNwX2lwdjYuYyBiL25ldC9pcHY2L3RjcF9pcHY2LmMKaW5k ZXggMjA2MjEwMTI1ZmQ3Li42NjBiOWIyYThhMjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9p cHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTQ1Niw5ICsxNDU2LDkgQEAgc3Rh dGljIGludCB0Y3BfdjZfcmN2KHN0cnVjdCBza19idWZmICpza2IpCiAJCX0KIAkJc29ja19ob2xk KHNrKTsKIAkJcmVmY291bnRlZCA9IHRydWU7Ci0JCWlmICh0Y3BfZmlsdGVyKHNrLCBza2IpKQot CQkJZ290byBkaXNjYXJkX2FuZF9yZWxzZTsKLQkJbnNrID0gdGNwX2NoZWNrX3JlcShzaywgc2ti LCByZXEsIGZhbHNlKTsKKwkJbnNrID0gTlVMTDsKKwkJaWYgKCF0Y3BfZmlsdGVyKHNrLCBza2Ip KQorCQkJbnNrID0gdGNwX2NoZWNrX3JlcShzaywgc2tiLCByZXEsIGZhbHNlKTsKIAkJaWYgKCFu c2spIHsKIAkJCXJlcXNrX3B1dChyZXEpOwogCQkJZ290byBkaXNjYXJkX2FuZF9yZWxzZTsKLS0g CjIuMTMuNQoKCkZyb20gYzc5NTk0OTAxZmZjNjcyY2M3NDQxYjFlZTBlN2ZhM2YyMDg0YzgxMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFpc2h1YW5nIFlhbiA8eWFuaGFpc2h1YW5n QGNtc3MuY2hpbmFtb2JpbGUuY29tPgpEYXRlOiBUaHUsIDcgU2VwIDIwMTcgMTQ6MDg6MzQgKzA4 MDAKU3ViamVjdDogW1BBVENIIDExLzExXSBpcF90dW5uZWw6IGZpeCBzZXR0aW5nIHR0bCBhbmQg dG9zIHZhbHVlIGluIGNvbGxlY3RfbWQKIG1vZGUKClsgVXBzdHJlYW0gY29tbWl0IDBmNjkzZjE5 OTVjZjAwMjQzMmI3MGY0M2NlNzNmNzliZjhkMGI2YzkgXQoKdHRsIGFuZCB0b3MgdmFyaWFibGVz IGFyZSBkZWNsYXJlZCBhbmQgYXNzaWduZWQsIGJ1dCBhcmUgbm90IHVzZWQgaW4KaXB0dW5uZWxf eG1pdCgpIGZ1bmN0aW9uLgoKRml4ZXM6IGNmYzczODFiMzAwMiAoImlwX3R1bm5lbDogYWRkIGNv bGxlY3RfbWQgbW9kZSB0byBJUElQIHR1bm5lbCIpCkNjOiBBbGV4ZWkgU3Rhcm92b2l0b3YgPGFz dEBmYi5jb20+ClNpZ25lZC1vZmYtYnk6IEhhaXNodWFuZyBZYW4gPHlhbmhhaXNodWFuZ0BjbXNz LmNoaW5hbW9iaWxlLmNvbT4KQWNrZWQtYnk6IEFsZXhlaSBTdGFyb3ZvaXRvdiA8YXN0QGtlcm5l bC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2NC9pcF90dW5uZWwuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF90 dW5uZWwuYyBiL25ldC9pcHY0L2lwX3R1bm5lbC5jCmluZGV4IDEyOWQxYTM2MTZmOC4uZTE4NTZi ZmE3NTNkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF90dW5uZWwuYworKysgYi9uZXQvaXB2NC9p cF90dW5uZWwuYwpAQCAtNjE4LDggKzYxOCw4IEBAIHZvaWQgaXBfbWRfdHVubmVsX3htaXQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTggcHJvdG8pCiAJCWlw X3J0X3B1dChydCk7CiAJCWdvdG8gdHhfZHJvcHBlZDsKIAl9Ci0JaXB0dW5uZWxfeG1pdChOVUxM LCBydCwgc2tiLCBmbDQuc2FkZHIsIGZsNC5kYWRkciwgcHJvdG8sIGtleS0+dG9zLAotCQkgICAg ICBrZXktPnR0bCwgZGYsICFuZXRfZXEodHVubmVsLT5uZXQsIGRldl9uZXQoZGV2KSkpOworCWlw dHVubmVsX3htaXQoTlVMTCwgcnQsIHNrYiwgZmw0LnNhZGRyLCBmbDQuZGFkZHIsIHByb3RvLCB0 b3MsIHR0bCwKKwkJICAgICAgZGYsICFuZXRfZXEodHVubmVsLT5uZXQsIGRldl9uZXQoZGV2KSkp OwogCXJldHVybjsKIHR4X2Vycm9yOgogCWRldi0+c3RhdHMudHhfZXJyb3JzKys7Ci0tIAoyLjEz LjUKCg== ----Next_Part(Thu_Sep_14_21_57_40_2017_050)----