Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp9055288ybi; Tue, 23 Jul 2019 20:55:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqygKCuYEMg2GigTeprf27spv1JhQOB5s3jgTPOaQR/PEztF6qroEwEB9smWQZQ3za8NPAfs X-Received: by 2002:a63:b20f:: with SMTP id x15mr81899408pge.453.1563940537919; Tue, 23 Jul 2019 20:55:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563940537; cv=none; d=google.com; s=arc-20160816; b=mevXodvQQxOu7BAbadMTBfjYS1agVqHB/GgBv3N7VBDwTIYLMW0F6jEylWbDBKz1gd ZJHz0qzEjPg+bUJgZXIeB56qkam/phyojM1+crra5iQ0kTBJMhFS0PW+Q2dmZiSbQkbX xoDAsVyRmB45GF+qvS/pM8cuqu/O6TjFWl+8kggwEzawcccLD86xZLTqVGxeOq0oUG83 TEMADlVfe4uATLhV/elpTRBp3uR/ZNCwiaoAK2aTBqWlCxMTGYiyrbPyuwuvuv61EHwM Fq+4rONrXTIUzhA4yv7sLQj+MUqigYbz2ZG43NMD/7IsVPsqKfPngJNbLItr+1ISyDaK bdsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=TTpxfyh4JaRwwbcBBLNg9ip25S7ur6Wfw85HkcV/fpA=; b=ShhqeBpGzRfg6EPiaX9vYlLn2DFukjDHeD5HFO1dvbRbEYmwaR0k8RByUkEqidaY3C DUIXMvoeFsvwOeKB0DtO3NDPMVlW2Q11/X7S7eqgxXLYHznvopUwbkcrMfLkD2CeS5JS KRo9yF/KDR58BcyfRixeyB54cRabWopIJ8qUUAO51/pBdGIDVVc6+c+8TM6Jyk8tQCvR eU90d1ZEJx8c7AcTWalAqXDEHaCM12CcE7XucoOQ5jUKWcjvwb+H+CTrz59yDrJpOdrp C+rZf4UbwWyD4WfMi4NucTRtyfiPJ00JR75tweiEmfkUTTkQqrwAlspzKsJ1hc3Lf/GT SM3w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i23si13768612pfa.196.2019.07.23.20.55.22; Tue, 23 Jul 2019 20:55:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726426AbfGXDyr (ORCPT + 99 others); Tue, 23 Jul 2019 23:54:47 -0400 Received: from mail3-relais-sop.national.inria.fr ([192.134.164.104]:17866 "EHLO mail3-relais-sop.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726024AbfGXDyq (ORCPT ); Tue, 23 Jul 2019 23:54:46 -0400 X-IronPort-AV: E=Sophos;i="5.64,300,1559512800"; d="out'?scan'208";a="314529759" Received: from c-73-22-29-55.hsd1.il.comcast.net (HELO hadrien) ([73.22.29.55]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jul 2019 05:54:25 +0200 Date: Tue, 23 Jul 2019 22:54:24 -0500 (CDT) From: Julia Lawall X-X-Sender: jll@hadrien To: Joe Perches cc: cocci , LKML Subject: Re: [Fwd: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms] In-Reply-To: <0f3ba090dfc956f5651e6c7c430abdba94ddcb8b.camel@perches.com> Message-ID: References: <7ab8957eaf9b0931a59eff6e2bd8c5169f2f6c41.1563841972.git.joe@perches.com> <66fcdbf607d7d0bea41edb39e5579d63b62b7d84.camel@perches.com> <0f3ba090dfc956f5651e6c7c430abdba94ddcb8b.camel@perches.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-1912653147-1563940466=:2539" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1912653147-1563940466=:2539 Content-Type: text/plain; charset=US-ASCII A seantic patch and the resulting output for the case where the third arugument is a constant is attached. Likewise the resulting output on a recent linux-next. julia --8323329-1912653147-1563940466=:2539 Content-Type: text/plain; charset=US-ASCII; name=stracpy.cocci Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=stracpy.cocci Ly8gc3BhdGNoLm9wdCAtaiA0NCB+L2xpbnV4LW5leHQgc3RyYWNweS5jb2Nj aSAtLWFsbC1pbmNsdWRlcyAtLWluY2x1ZGUtaGVhZGVycy1mb3ItdHlwZXMg LS12ZXJ5LXF1aWV0ID4gc3RyYWNweS5vdXQNCg0KQHJADQppZGVudGlmaWVy IGYsaTEsaTI7DQpzdHJ1Y3QgaTEgZTE7DQpleHByZXNzaW9uIGUyOw0KcG9z aXRpb24gcDsNCkBADQpcKHN0cnNjcHlcfHN0cmxjcHlcKShlMS5mLCBlMiwg aTIpQHANCg0KQEANCmlkZW50aWZpZXIgci5pMSxyLmkyOw0KdHlwZSBUOw0K QEANCnN0cnVjdCBpMSB7IC4uLiBUIGkxW2kyXTsgLi4uIH0NCg0KQEANCmlk ZW50aWZpZXIgZixpMjsNCmV4cHJlc3Npb24gZTEsZTI7DQpwb3NpdGlvbiBy LnA7DQpAQA0KKA0KLXN0cnNjcHkNCitzdHJhY3B5DQp8DQotc3RybGNweQ0K K3N0cmFjcHkNCikoZTEuZiwgZTINCi0gICAgLCBpMg0KIClAcA0KDQovLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KQHIxQA0Kc3Ry dWN0IGkxICplMTsNCmV4cHJlc3Npb24gZTI7DQppZGVudGlmaWVyIGYsaTEs aTI7DQpwb3NpdGlvbiBwOw0KQEANClwoc3Ryc2NweVx8c3RybGNweVwpKGUx LT5mLCBlMiwgaTIpQHANCg0KQEANCmlkZW50aWZpZXIgcjEuaTEscjEuaTI7 DQp0eXBlIFQ7DQpAQA0Kc3RydWN0IGkxIHsgLi4uIFQgaTFbaTJdOyAuLi4g fQ0KDQpAQA0KaWRlbnRpZmllciBmLGkyOw0KZXhwcmVzc2lvbiBlMSxlMjsN CnBvc2l0aW9uIHIxLnA7DQpAQA0KKA0KLXN0cnNjcHkNCitzdHJhY3B5DQp8 DQotc3RybGNweQ0KK3N0cmFjcHkNCikoZTEtPmYsIGUyDQotICAgICwgaTIN CiAgKUBwDQo= --8323329-1912653147-1563940466=:2539 Content-Type: text/plain; charset=US-ASCII; name=stracpy.out Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=stracpy.out ZGlmZiAtdSAtcCBhL2RyaXZlcnMvY3B1aWRsZS9jcHVpZGxlLXBvd2VybnYu YyBiL2RyaXZlcnMvY3B1aWRsZS9jcHVpZGxlLXBvd2VybnYuYw0KLS0tIGEv ZHJpdmVycy9jcHVpZGxlL2NwdWlkbGUtcG93ZXJudi5jDQorKysgYi9kcml2 ZXJzL2NwdWlkbGUvY3B1aWRsZS1wb3dlcm52LmMNCkBAIC0yMzYsOCArMjM2 LDggQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZF9wb3dlcm52X3N0YXRlKGlu dA0KIAkJCQkgICAgIHVuc2lnbmVkIGludCBleGl0X2xhdGVuY3ksDQogCQkJ CSAgICAgdTY0IHBzc2NyX3ZhbCwgdTY0IHBzc2NyX21hc2spDQogew0KLQlz dHJsY3B5KHBvd2VybnZfc3RhdGVzW2luZGV4XS5uYW1lLCBuYW1lLCBDUFVJ RExFX05BTUVfTEVOKTsNCi0Jc3RybGNweShwb3dlcm52X3N0YXRlc1tpbmRl eF0uZGVzYywgbmFtZSwgQ1BVSURMRV9OQU1FX0xFTik7DQorCXN0cmFjcHko cG93ZXJudl9zdGF0ZXNbaW5kZXhdLm5hbWUsIG5hbWUpOw0KKwlzdHJhY3B5 KHBvd2VybnZfc3RhdGVzW2luZGV4XS5kZXNjLCBuYW1lKTsNCiAJcG93ZXJu dl9zdGF0ZXNbaW5kZXhdLmZsYWdzID0gZmxhZ3M7DQogCXBvd2VybnZfc3Rh dGVzW2luZGV4XS50YXJnZXRfcmVzaWRlbmN5ID0gdGFyZ2V0X3Jlc2lkZW5j eTsNCiAJcG93ZXJudl9zdGF0ZXNbaW5kZXhdLmV4aXRfbGF0ZW5jeSA9IGV4 aXRfbGF0ZW5jeTsNCmRpZmYgLXUgLXAgYS9hcmNoL21pcHMvYmNtNDd4eC9i b2FyZC5jIGIvYXJjaC9taXBzL2JjbTQ3eHgvYm9hcmQuYw0KLS0tIGEvYXJj aC9taXBzL2JjbTQ3eHgvYm9hcmQuYw0KKysrIGIvYXJjaC9taXBzL2JjbTQ3 eHgvYm9hcmQuYw0KQEAgLTM0NCw4ICszNDQsNyBAQCB2b2lkIF9faW5pdCBi Y200N3h4X2JvYXJkX2RldGVjdCh2b2lkKQ0KIA0KIAlib2FyZF9kZXRlY3Rl ZCA9IGJjbTQ3eHhfYm9hcmRfZ2V0X252cmFtKCk7DQogCWJjbTQ3eHhfYm9h cmQuYm9hcmQgPSBib2FyZF9kZXRlY3RlZC0+Ym9hcmQ7DQotCXN0cmxjcHko YmNtNDd4eF9ib2FyZC5uYW1lLCBib2FyZF9kZXRlY3RlZC0+bmFtZSwNCi0J CUJDTTQ3WFhfQk9BUkRfTUFYX05BTUUpOw0KKwlzdHJhY3B5KGJjbTQ3eHhf Ym9hcmQubmFtZSwgYm9hcmRfZGV0ZWN0ZWQtPm5hbWUpOw0KIH0NCiANCiBl bnVtIGJjbTQ3eHhfYm9hcmQgYmNtNDd4eF9ib2FyZF9nZXQodm9pZCkNCmRp ZmYgLXUgLXAgYS9jcnlwdG8vYXBpLmMgYi9jcnlwdG8vYXBpLmMNCi0tLSBh L2NyeXB0by9hcGkuYw0KKysrIGIvY3J5cHRvL2FwaS5jDQpAQCAtMTE1LDcg KzExNSw3IEBAIHN0cnVjdCBjcnlwdG9fbGFydmFsICpjcnlwdG9fbGFydmFs X2FsbG8NCiAJbGFydmFsLT5hbGcuY3JhX3ByaW9yaXR5ID0gLTE7DQogCWxh cnZhbC0+YWxnLmNyYV9kZXN0cm95ID0gY3J5cHRvX2xhcnZhbF9kZXN0cm95 Ow0KIA0KLQlzdHJsY3B5KGxhcnZhbC0+YWxnLmNyYV9uYW1lLCBuYW1lLCBD UllQVE9fTUFYX0FMR19OQU1FKTsNCisJc3RyYWNweShsYXJ2YWwtPmFsZy5j cmFfbmFtZSwgbmFtZSk7DQogCWluaXRfY29tcGxldGlvbigmbGFydmFsLT5j b21wbGV0aW9uKTsNCiANCiAJcmV0dXJuIGxhcnZhbDsNCmRpZmYgLXUgLXAg YS9kcml2ZXJzL3MzOTAvY2hhci9obWNkcnZfY2FjaGUuYyBiL2RyaXZlcnMv czM5MC9jaGFyL2htY2Rydl9jYWNoZS5jDQotLS0gYS9kcml2ZXJzL3MzOTAv Y2hhci9obWNkcnZfY2FjaGUuYw0KKysrIGIvZHJpdmVycy9zMzkwL2NoYXIv aG1jZHJ2X2NhY2hlLmMNCkBAIC0xNTQsOCArMTU0LDcgQEAgc3RhdGljIHNz aXplX3QgaG1jZHJ2X2NhY2hlX2RvKGNvbnN0IHN0cg0KIAkJLyogY2FjaGUg c29tZSBmaWxlIGluZm8gKEZUUCBjb21tYW5kLCBmaWxlIG5hbWUgYW5kIGZp bGUNCiAJCSAqIHNpemUpIHVuY29uZGl0aW9uYWxseQ0KIAkJICovDQotCQlz dHJsY3B5KGhtY2Rydl9jYWNoZV9maWxlLmZuYW1lLCBmdHAtPmZuYW1lLA0K LQkJCUhNQ0RSVl9GVFBfRklERU5UX01BWCk7DQorCQlzdHJhY3B5KGhtY2Ry dl9jYWNoZV9maWxlLmZuYW1lLCBmdHAtPmZuYW1lKTsNCiAJCWhtY2Rydl9j YWNoZV9maWxlLmlkID0gZnRwLT5pZDsNCiAJCXByX2RlYnVnKCJjYWNoaW5n IGNtZCAlZCwgZmlsZSBzaXplICV6dSBmb3IgJyVzJ1xuIiwNCiAJCQkgZnRw LT5pZCwgaG1jZHJ2X2NhY2hlX2ZpbGUuZnNpemUsIGZ0cC0+Zm5hbWUpOw0K ZGlmZiAtdSAtcCBhL3NvdW5kL3BwYy9rZXl3ZXN0LmMgYi9zb3VuZC9wcGMv a2V5d2VzdC5jDQotLS0gYS9zb3VuZC9wcGMva2V5d2VzdC5jDQorKysgYi9z b3VuZC9wcGMva2V5d2VzdC5jDQpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMg aW50IGtleXdlc3RfYXR0YWNoX2FkYXB0ZXIoc3RydWN0DQogCQlyZXR1cm4g LUVJTlZBTDsgLyogaWdub3JlZCAqLw0KIA0KIAltZW1zZXQoJmluZm8sIDAs IHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0Jc3RybGNweShp bmZvLnR5cGUsICJrZXl3ZXN0IiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFj cHkoaW5mby50eXBlLCAia2V5d2VzdCIpOw0KIAlpbmZvLmFkZHIgPSBrZXl3 ZXN0X2N0eC0+YWRkcjsNCiAJa2V5d2VzdF9jdHgtPmNsaWVudCA9IGkyY19u ZXdfZGV2aWNlKGFkYXB0ZXIsICZpbmZvKTsNCiAJaWYgKCFrZXl3ZXN0X2N0 eC0+Y2xpZW50KQ0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvcGNpL3Nh YTcxNjQvc2FhNzE2NC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL3NhYTcx NjQvc2FhNzE2NC1kdmIuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kvc2Fh NzE2NC9zYWE3MTY0LWR2Yi5jDQorKysgYi9kcml2ZXJzL21lZGlhL3BjaS9z YWE3MTY0L3NhYTcxNjQtZHZiLmMNCkBAIC0xMTAsNyArMTEwLDcgQEAgc3Rh dGljIGludCBzaTIxNTdfYXR0YWNoKHN0cnVjdCBzYWE3MTY0Xw0KIA0KIAlt ZW1zZXQoJmJpLCAwLCBzaXplb2YoYmkpKTsNCiANCi0Jc3Ryc2NweShiaS50 eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoYmku dHlwZSwgInNpMjE1NyIpOw0KIAliaS5wbGF0Zm9ybV9kYXRhID0gY2ZnOw0K IAliaS5hZGRyID0gYWRkcjhiaXQgPj4gMTsNCiANCkBAIC02MzMsNyArNjMz LDcgQEAgaW50IHNhYTcxNjRfZHZiX3JlZ2lzdGVyKHN0cnVjdCBzYWE3MTY0 Xw0KIAkJCXNpMjE2OF9jb25maWcuZmUgPSAmcG9ydC0+ZHZiLmZyb250ZW5k Ow0KIAkJCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2OF9UU19TRVJJ QUw7DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19i b2FyZF9pbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJzaTIxNjgi LCBJMkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgInNp MjE2OCIpOw0KIAkJCWluZm8uYWRkciA9IDB4YzggPj4gMTsNCiAJCQlpbmZv LnBsYXRmb3JtX2RhdGEgPSAmc2kyMTY4X2NvbmZpZzsNCiAJCQlyZXF1ZXN0 X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTY1Myw3ICs2NTMsNyBAQCBpbnQg c2FhNzE2NF9kdmJfcmVnaXN0ZXIoc3RydWN0IHNhYTcxNjRfDQogCQkJc2ky MTU3X2NvbmZpZy5pZl9wb3J0ID0gMTsNCiAJCQlzaTIxNTdfY29uZmlnLmZl ID0gcG9ydC0+ZHZiLmZyb250ZW5kOw0KIAkJCW1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0cnNjcHko aW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3Ry YWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJCQlpbmZvLmFkZHIgPSAw eGMwID4+IDE7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNpMjE1N19j b25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCkBAIC02 NzgsNyArNjc4LDcgQEAgaW50IHNhYTcxNjRfZHZiX3JlZ2lzdGVyKHN0cnVj dCBzYWE3MTY0Xw0KIAkJCXNpMjE2OF9jb25maWcuZmUgPSAmcG9ydC0+ZHZi LmZyb250ZW5kOw0KIAkJCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2 OF9UU19TRVJJQUw7DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3Ry dWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUs ICJzaTIxNjgiLCBJMkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8u dHlwZSwgInNpMjE2OCIpOw0KIAkJCWluZm8uYWRkciA9IDB4Y2MgPj4gMTsN CiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTY4X2NvbmZpZzsNCiAJ CQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTY5OCw3ICs2OTgs NyBAQCBpbnQgc2FhNzE2NF9kdmJfcmVnaXN0ZXIoc3RydWN0IHNhYTcxNjRf DQogCQkJc2kyMTU3X2NvbmZpZy5mZSA9IHBvcnQtPmR2Yi5mcm9udGVuZDsN CiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCW1lbXNldCgm aW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJ CXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7 DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJCQlpbmZv LmFkZHIgPSAweGMwID4+IDE7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0g JnNpMjE1N19jb25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBl KTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiLXYy L2FmOTAzNS5jIGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi12Mi9hZjkw MzUuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi12Mi9hZjkw MzUuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi12Mi9hZjkw MzUuYw0KQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMgaW50IGFmOTAzNV9h ZGRfaTJjX2RldihzdHJ1Y3QgZHZiDQogCQkucGxhdGZvcm1fZGF0YSA9IHBs YXRmb3JtX2RhdGEsDQogCX07DQogDQotCXN0cnNjcHkoYm9hcmRfaW5mby50 eXBlLCB0eXBlLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShib2FyZF9p bmZvLnR5cGUsIHR5cGUpOw0KIA0KIAkvKiBmaW5kIGZpcnN0IGZyZWUgY2xp ZW50ICovDQogCWZvciAobnVtID0gMDsgbnVtIDwgQUY5MDM1X0kyQ19DTElF TlRfTUFYOyBudW0rKykgew0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEv cGNpL3NtaXBjaWUvc21pcGNpZS1tYWluLmMgYi9kcml2ZXJzL21lZGlhL3Bj aS9zbWlwY2llL3NtaXBjaWUtbWFpbi5jDQotLS0gYS9kcml2ZXJzL21lZGlh L3BjaS9zbWlwY2llL3NtaXBjaWUtbWFpbi5jDQorKysgYi9kcml2ZXJzL21l ZGlhL3BjaS9zbWlwY2llL3NtaXBjaWUtbWFpbi5jDQpAQCAtNTQwLDcgKzU0 MCw3IEBAIHN0YXRpYyBpbnQgc21pX2R2YnNreV9tODhkczMxMDNfZmVfYXR0 YWMNCiAJfQ0KIAkvKiBhdHRhY2ggdHVuZXIgKi8NCiAJdHMyMDIwX2NvbmZp Zy5mZSA9IHBvcnQtPmZlOw0KLQlzdHJzY3B5KHR1bmVyX2luZm8udHlwZSwg InRzMjAyMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KHR1bmVyX2lu Zm8udHlwZSwgInRzMjAyMCIpOw0KIAl0dW5lcl9pbmZvLmFkZHIgPSAweDYw Ow0KIAl0dW5lcl9pbmZvLnBsYXRmb3JtX2RhdGEgPSAmdHMyMDIwX2NvbmZp ZzsNCiAJdHVuZXJfY2xpZW50ID0gc21pX2FkZF9pMmNfY2xpZW50KHR1bmVy X2kyY19hZGFwdGVyLCAmdHVuZXJfaW5mbyk7DQpAQCAtNTk2LDcgKzU5Niw3 IEBAIHN0YXRpYyBpbnQgc21pX2R2YnNreV9tODhyczYwMDBfZmVfYXR0YWMN CiAJfQ0KIAkvKiBhdHRhY2ggdHVuZXIgKi8NCiAJbTg4cnM2MDAwdF9jb25m aWcuZmUgPSBwb3J0LT5mZTsNCi0Jc3Ryc2NweSh0dW5lcl9pbmZvLnR5cGUs ICJtODhyczYwMDB0IiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkodHVu ZXJfaW5mby50eXBlLCAibTg4cnM2MDAwdCIpOw0KIAl0dW5lcl9pbmZvLmFk ZHIgPSAweDIxOw0KIAl0dW5lcl9pbmZvLnBsYXRmb3JtX2RhdGEgPSAmbTg4 cnM2MDAwdF9jb25maWc7DQogCXR1bmVyX2NsaWVudCA9IHNtaV9hZGRfaTJj X2NsaWVudCh0dW5lcl9pMmNfYWRhcHRlciwgJnR1bmVyX2luZm8pOw0KQEAg LTYzOCw3ICs2MzgsNyBAQCBzdGF0aWMgaW50IHNtaV9kdmJza3lfc2l0Ml9m ZV9hdHRhY2goc3RyDQogCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2 OF9UU19QQVJBTExFTDsNCiANCiAJbWVtc2V0KCZjbGllbnRfaW5mbywgMCwg c2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQlzdHJzY3B5KGNs aWVudF9pbmZvLnR5cGUsICJzaTIxNjgiLCBJMkNfTkFNRV9TSVpFKTsNCisJ c3RyYWNweShjbGllbnRfaW5mby50eXBlLCAic2kyMTY4Iik7DQogCWNsaWVu dF9pbmZvLmFkZHIgPSAweDY0Ow0KIAljbGllbnRfaW5mby5wbGF0Zm9ybV9k YXRhID0gJnNpMjE2OF9jb25maWc7DQogDQpAQCAtNjU1LDcgKzY1NSw3IEBA IHN0YXRpYyBpbnQgc21pX2R2YnNreV9zaXQyX2ZlX2F0dGFjaChzdHINCiAJ c2kyMTU3X2NvbmZpZy5pZl9wb3J0ID0gMTsNCiANCiAJbWVtc2V0KCZjbGll bnRfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0K LQlzdHJzY3B5KGNsaWVudF9pbmZvLnR5cGUsICJzaTIxNTciLCBJMkNfTkFN RV9TSVpFKTsNCisJc3RyYWNweShjbGllbnRfaW5mby50eXBlLCAic2kyMTU3 Iik7DQogCWNsaWVudF9pbmZvLmFkZHIgPSAweDYwOw0KIAljbGllbnRfaW5m by5wbGF0Zm9ybV9kYXRhID0gJnNpMjE1N19jb25maWc7DQogDQpkaWZmIC11 IC1wIGEvZHJpdmVycy9tZWRpYS91c2IvZHZiLXVzYi9kaWIwNzAwX2Rldmlj ZXMuYyBiL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZGliMDcwMF9kZXZp Y2VzLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2IvZGliMDcw MF9kZXZpY2VzLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2Iv ZGliMDcwMF9kZXZpY2VzLmMNCkBAIC0zNzYwLDcgKzM3NjAsNyBAQCBzdGF0 aWMgaW50IHhib3hfb25lX2F0dGFjaChzdHJ1Y3QgZHZiX3VzDQogCW1uODg0 NzJfY29uZmlnLnRzX21vZGUgPSBQQVJBTExFTF9UU19NT0RFOw0KIAltbjg4 NDcyX2NvbmZpZy50c19jbG9jayA9IEZJWEVEX1RTX0NMT0NLOw0KIAltZW1z ZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsN Ci0Jc3Ryc2NweShpbmZvLnR5cGUsICJtbjg4NDcyIiwgSTJDX05BTUVfU0la RSk7DQorCXN0cmFjcHkoaW5mby50eXBlLCAibW44ODQ3MiIpOw0KIAlpbmZv LmFkZHIgPSAweDE4Ow0KIAlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmbW44ODQ3 Ml9jb25maWc7DQogCXJlcXVlc3RfbW9kdWxlKGluZm8udHlwZSk7DQpAQCAt Mzc4Nyw3ICszNzg3LDcgQEAgc3RhdGljIGludCB4Ym94X29uZV9hdHRhY2go c3RydWN0IGR2Yl91cw0KIAl0ZGExODI1MF9jb25maWcuZmUgPSBhZGFwLT5m ZV9hZGFwWzBdLmZlOw0KIA0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShpbmZvLnR5cGUs ICJ0ZGExODI1MCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8u dHlwZSwgInRkYTE4MjUwIik7DQogCWluZm8uYWRkciA9IDB4NjA7DQogCWlu Zm8ucGxhdGZvcm1fZGF0YSA9ICZ0ZGExODI1MF9jb25maWc7DQogDQpkaWZm IC11IC1wIGEvZHJpdmVycy9tZWRpYS9wY2kvYnQ4eHgvYnR0di1pMmMuYyBi L2RyaXZlcnMvbWVkaWEvcGNpL2J0OHh4L2J0dHYtaTJjLmMNCi0tLSBhL2Ry aXZlcnMvbWVkaWEvcGNpL2J0OHh4L2J0dHYtaTJjLmMNCisrKyBiL2RyaXZl cnMvbWVkaWEvcGNpL2J0OHh4L2J0dHYtaTJjLmMNCkBAIC0zMzUsNyArMzM1 LDcgQEAgc3RhdGljIHZvaWQgZG9faTJjX3NjYW4oY2hhciAqbmFtZSwgc3Ry dQ0KIC8qIGluaXQgKyByZWdpc3RlciBpMmMgYWRhcHRlciAqLw0KIGludCBp bml0X2J0dHZfaTJjKHN0cnVjdCBidHR2ICpidHYpDQogew0KLQlzdHJzY3B5 KGJ0di0+aTJjX2NsaWVudC5uYW1lLCAiYnR0diBpbnRlcm5hbCIsIEkyQ19O QU1FX1NJWkUpOw0KKwlzdHJhY3B5KGJ0di0+aTJjX2NsaWVudC5uYW1lLCAi YnR0diBpbnRlcm5hbCIpOw0KIA0KIAlpZiAoaTJjX2h3KQ0KIAkJYnR2LT51 c2VfaTJjX2h3ID0gMTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3Vz Yi9kdmItdXNiLXYyL3J0bDI4eHh1LmMgYi9kcml2ZXJzL21lZGlhL3VzYi9k dmItdXNiLXYyL3J0bDI4eHh1LmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvdXNi L2R2Yi11c2ItdjIvcnRsMjh4eHUuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91 c2IvZHZiLXVzYi12Mi9ydGwyOHh4dS5jDQpAQCAtNjkzLDcgKzY5Myw3IEBA IHN0YXRpYyBpbnQgcnRsMjgzMXVfZnJvbnRlbmRfYXR0YWNoKHN0cnUNCiAN CiAJLyogYXR0YWNoIGRlbW9kdWxhdG9yICovDQogCW1lbXNldCgmYm9hcmRf aW5mbywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShib2Fy ZF9pbmZvLnR5cGUsICJydGwyODMwIiwgSTJDX05BTUVfU0laRSk7DQorCXN0 cmFjcHkoYm9hcmRfaW5mby50eXBlLCAicnRsMjgzMCIpOw0KIAlib2FyZF9p bmZvLmFkZHIgPSAweDEwOw0KIAlib2FyZF9pbmZvLnBsYXRmb3JtX2RhdGEg PSBwZGF0YTsNCiAJcmVxdWVzdF9tb2R1bGUoIiVzIiwgYm9hcmRfaW5mby50 eXBlKTsNCkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIGludCBydGwyODMy dV9mcm9udGVuZF9hdHRhY2goc3RydQ0KIA0KIAkvKiBhdHRhY2ggZGVtb2R1 bGF0b3IgKi8NCiAJbWVtc2V0KCZib2FyZF9pbmZvLCAwLCBzaXplb2YoYm9h cmRfaW5mbykpOw0KLQlzdHJzY3B5KGJvYXJkX2luZm8udHlwZSwgInJ0bDI4 MzIiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShib2FyZF9pbmZvLnR5 cGUsICJydGwyODMyIik7DQogCWJvYXJkX2luZm8uYWRkciA9IDB4MTA7DQog CWJvYXJkX2luZm8ucGxhdGZvcm1fZGF0YSA9IHBkYXRhOw0KIAlyZXF1ZXN0 X21vZHVsZSgiJXMiLCBib2FyZF9pbmZvLnR5cGUpOw0KQEAgLTk1Myw3ICs5 NTMsNyBAQCBzdGF0aWMgaW50IHJ0bDI4MzJ1X2Zyb250ZW5kX2F0dGFjaChz dHJ1DQogDQogCQkJbW44ODQ3Ml9jb25maWcuZmUgPSAmYWRhcC0+ZmVbMV07 DQogCQkJbW44ODQ3Ml9jb25maWcuaTJjX3dyX21heCA9IDIyLA0KLQkJCXN0 cnNjcHkoaW5mby50eXBlLCAibW44ODQ3MiIsIEkyQ19OQU1FX1NJWkUpOw0K KwkJCXN0cmFjcHkoaW5mby50eXBlLCAibW44ODQ3MiIpOw0KIAkJCW1uODg0 NzJfY29uZmlnLnh0YWwgPSAyMDUwMDAwMDsNCiAJCQltbjg4NDcyX2NvbmZp Zy50c19tb2RlID0gU0VSSUFMX1RTX01PREU7DQogCQkJbW44ODQ3Ml9jb25m aWcudHNfY2xvY2sgPSBWQVJJQUJMRV9UU19DTE9DSzsNCkBAIC05NzgsNyAr OTc4LDcgQEAgc3RhdGljIGludCBydGwyODMydV9mcm9udGVuZF9hdHRhY2go c3RydQ0KIA0KIAkJCW1uODg0NzNfY29uZmlnLmZlID0gJmFkYXAtPmZlWzFd Ow0KIAkJCW1uODg0NzNfY29uZmlnLmkyY193cl9tYXggPSAyMiwNCi0JCQlz dHJzY3B5KGluZm8udHlwZSwgIm1uODg0NzMiLCBJMkNfTkFNRV9TSVpFKTsN CisJCQlzdHJhY3B5KGluZm8udHlwZSwgIm1uODg0NzMiKTsNCiAJCQlpbmZv LmFkZHIgPSAweDE4Ow0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZtbjg4 NDczX2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0K QEAgLTEwMjEsNyArMTAyMSw3IEBAIHN0YXRpYyBpbnQgcnRsMjgzMnVfZnJv bnRlbmRfYXR0YWNoKHN0cnUNCiAJCQlzaTIxNjhfY29uZmlnLnRzX21vZGUg PSBTSTIxNjhfVFNfU0VSSUFMOw0KIAkJCXNpMjE2OF9jb25maWcudHNfY2xv Y2tfaW52ID0gZmFsc2U7DQogCQkJc2kyMTY4X2NvbmZpZy50c19jbG9ja19n YXBwZWQgPSB0cnVlOw0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY4 IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJz aTIxNjgiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJCWluZm8ucGxh dGZvcm1fZGF0YSA9ICZzaTIxNjhfY29uZmlnOw0KIAkJCXJlcXVlc3RfbW9k dWxlKGluZm8udHlwZSk7DQpAQCAtMTIxMiw3ICsxMjEyLDcgQEAgc3RhdGlj IGludCBydGwyODMydV90dW5lcl9hdHRhY2goc3RydWN0DQogCQkJCS5jbG9j ayA9IDI4ODAwMDAwLA0KIAkJCX07DQogDQotCQkJc3Ryc2NweShpbmZvLnR5 cGUsICJlNDAwMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5m by50eXBlLCAiZTQwMDAiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJ CWluZm8ucGxhdGZvcm1fZGF0YSA9ICZlNDAwMF9jb25maWc7DQogDQpAQCAt MTIzNiw3ICsxMjM2LDcgQEAgc3RhdGljIGludCBydGwyODMydV90dW5lcl9h dHRhY2goc3RydWN0DQogCQkJfTsNCiAJCQlzdHJ1Y3QgaTJjX2JvYXJkX2lu Zm8gYm9hcmRfaW5mbyA9IHt9Ow0KIA0KLQkJCXN0cnNjcHkoYm9hcmRfaW5m by50eXBlLCAiZmMyNTgwIiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNw eShib2FyZF9pbmZvLnR5cGUsICJmYzI1ODAiKTsNCiAJCQlib2FyZF9pbmZv LmFkZHIgPSAweDU2Ow0KIAkJCWJvYXJkX2luZm8ucGxhdGZvcm1fZGF0YSA9 ICZmYzI1ODBfcGRhdGE7DQogCQkJcmVxdWVzdF9tb2R1bGUoImZjMjU4MCIp Ow0KQEAgLTEyNjcsNyArMTI2Nyw3IEBAIHN0YXRpYyBpbnQgcnRsMjgzMnVf dHVuZXJfYXR0YWNoKHN0cnVjdA0KIAkJaWYgKHJldCkNCiAJCQlnb3RvIGVy cjsNCiANCi0JCXN0cnNjcHkoYm9hcmRfaW5mby50eXBlLCAidHVhOTAwMSIs IEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShib2FyZF9pbmZvLnR5cGUs ICJ0dWE5MDAxIik7DQogCQlib2FyZF9pbmZvLmFkZHIgPSAweDYwOw0KIAkJ Ym9hcmRfaW5mby5wbGF0Zm9ybV9kYXRhID0gJnR1YTkwMDFfcGRhdGE7DQog CQlyZXF1ZXN0X21vZHVsZSgidHVhOTAwMSIpOw0KQEAgLTEzMTIsNyArMTMx Miw3IEBAIHN0YXRpYyBpbnQgcnRsMjgzMnVfdHVuZXJfYXR0YWNoKHN0cnVj dA0KIAkJCQkuaW52ZXJzaW9uID0gZmFsc2UsDQogCQkJfTsNCiANCi0JCQlz dHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUpOw0K KwkJCXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTU3Iik7DQogCQkJaW5mby5h ZGRyID0gMHg2MDsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3 X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KZGlm ZiAtdSAtcCBhL25ldC9zY2hlZC9zY2hfdGVxbC5jIGIvbmV0L3NjaGVkL3Nj aF90ZXFsLmMNCi0tLSBhL25ldC9zY2hlZC9zY2hfdGVxbC5jDQorKysgYi9u ZXQvc2NoZWQvc2NoX3RlcWwuYw0KQEAgLTQ4OSw3ICs0ODksNyBAQCBzdGF0 aWMgaW50IF9faW5pdCB0ZXFsX2luaXQodm9pZCkNCiANCiAJCW1hc3RlciA9 IG5ldGRldl9wcml2KGRldik7DQogDQotCQlzdHJsY3B5KG1hc3Rlci0+cW9w cy5pZCwgZGV2LT5uYW1lLCBJRk5BTVNJWik7DQorCQlzdHJhY3B5KG1hc3Rl ci0+cW9wcy5pZCwgZGV2LT5uYW1lKTsNCiAJCWVyciA9IHJlZ2lzdGVyX3Fk aXNjKCZtYXN0ZXItPnFvcHMpOw0KIA0KIAkJaWYgKGVycikgew0KZGlmZiAt dSAtcCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVf bWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZGUvcWVk ZV9tYWluLmMNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9x ZWRlL3FlZGVfbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9x bG9naWMvcWVkZS9xZWRlX21haW4uYw0KQEAgLTEwOTQsNyArMTA5NCw3IEBA IHN0YXRpYyBpbnQgX19xZWRlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICoNCiAJ c3BfcGFyYW1zLmRydl9taW5vciA9IFFFREVfTUlOT1JfVkVSU0lPTjsNCiAJ c3BfcGFyYW1zLmRydl9yZXYgPSBRRURFX1JFVklTSU9OX1ZFUlNJT047DQog CXNwX3BhcmFtcy5kcnZfZW5nID0gUUVERV9FTkdJTkVFUklOR19WRVJTSU9O Ow0KLQlzdHJsY3B5KHNwX3BhcmFtcy5uYW1lLCAicWVkZSBMQU4iLCBRRURf RFJWX1ZFUl9TVFJfU0laRSk7DQorCXN0cmFjcHkoc3BfcGFyYW1zLm5hbWUs ICJxZWRlIExBTiIpOw0KIAlyYyA9IHFlZF9vcHMtPmNvbW1vbi0+c2xvd3Bh dGhfc3RhcnQoY2RldiwgJnNwX3BhcmFtcyk7DQogCWlmIChyYykgew0KIAkJ cHJfbm90aWNlKCJDYW5ub3Qgc3RhcnQgc2xvd3BhdGhcbiIpOw0KZGlmZiAt dSAtcCBhL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL2F1ZGlvX21vZHVsZS5j IGIvZHJpdmVycy9zdGFnaW5nL2dyZXlidXMvYXVkaW9fbW9kdWxlLmMNCi0t LSBhL2RyaXZlcnMvc3RhZ2luZy9ncmV5YnVzL2F1ZGlvX21vZHVsZS5jDQor KysgYi9kcml2ZXJzL3N0YWdpbmcvZ3JleWJ1cy9hdWRpb19tb2R1bGUuYw0K QEAgLTM0MSw3ICszNDEsNyBAQCBzdGF0aWMgaW50IGdiX2F1ZGlvX3Byb2Jl KHN0cnVjdCBnYl9idW5kDQogCS8qIGluZm9ybSBhYm92ZSBsYXllciBmb3Ig dWV2ZW50ICovDQogCWRldl9kYmcoZGV2LCAiSW5mb3JtIHNldF9ldmVudDol ZCB0byBhYm92ZSBsYXllclxuIiwgMSk7DQogCS8qIHByZXBhcmUgZm9yIHRo ZSBhdWRpbyBtYW5hZ2VyICovDQotCXN0cmxjcHkoZGVzYy5uYW1lLCBnYm1v ZHVsZS0+bmFtZSwgR0JfQVVESU9fTUFOQUdFUl9NT0RVTEVfTkFNRV9MRU4p Ow0KKwlzdHJhY3B5KGRlc2MubmFtZSwgZ2Jtb2R1bGUtPm5hbWUpOw0KIAlk ZXNjLnZpZCA9IDI7IC8qIHRvZG8gKi8NCiAJZGVzYy5waWQgPSAzOyAvKiB0 b2RvICovDQogCWRlc2MuaW50Zl9pZCA9IGdibW9kdWxlLT5kZXZfaWQ7DQpk aWZmIC11IC1wIGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYw0K LS0tIGEvbmV0L2NvcmUvZGV2LmMNCisrKyBiL25ldC9jb3JlL2Rldi5jDQpA QCAtNTcyLDcgKzU3Miw3IEBAIHN0YXRpYyBpbnQgbmV0ZGV2X2Jvb3Rfc2V0 dXBfYWRkKGNoYXIgKm4NCiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09U X1NFVFVQX01BWDsgaSsrKSB7DQogCQlpZiAoc1tpXS5uYW1lWzBdID09ICdc MCcgfHwgc1tpXS5uYW1lWzBdID09ICcgJykgew0KIAkJCW1lbXNldChzW2ld Lm5hbWUsIDAsIHNpemVvZihzW2ldLm5hbWUpKTsNCi0JCQlzdHJsY3B5KHNb aV0ubmFtZSwgbmFtZSwgSUZOQU1TSVopOw0KKwkJCXN0cmFjcHkoc1tpXS5u YW1lLCBuYW1lKTsNCiAJCQltZW1jcHkoJnNbaV0ubWFwLCBtYXAsIHNpemVv ZihzW2ldLm1hcCkpOw0KIAkJCWJyZWFrOw0KIAkJfQ0KZGlmZiAtdSAtcCBh L2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0di1pMmMuYyBiL2RyaXZlcnMv bWVkaWEvcGNpL2l2dHYvaXZ0di1pMmMuYw0KLS0tIGEvZHJpdmVycy9tZWRp YS9wY2kvaXZ0di9pdnR2LWkyYy5jDQorKysgYi9kcml2ZXJzL21lZGlhL3Bj aS9pdnR2L2l2dHYtaTJjLmMNCkBAIC0yMDYsNyArMjA2LDcgQEAgc3RhdGlj IGludCBpdnR2X2kyY19uZXdfaXIoc3RydWN0IGl2dHYgKg0KIA0KIAltZW1z ZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsN CiAJaW5mby5wbGF0Zm9ybV9kYXRhID0gaW5pdF9kYXRhOw0KLQlzdHJzY3B5 KGluZm8udHlwZSwgdHlwZSwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHko aW5mby50eXBlLCB0eXBlKTsNCiANCiAJcmV0dXJuIGkyY19uZXdfcHJvYmVk X2RldmljZShhZGFwLCAmaW5mbywgYWRkcl9saXN0LCBOVUxMKSA9PSBOVUxM ID8NCiAJICAgICAgIC0xIDogMDsNCkBAIC0yMzQsNyArMjM0LDcgQEAgc3Ry dWN0IGkyY19jbGllbnQgKml2dHZfaTJjX25ld19pcl9sZWdhYw0KIAl9Ow0K IA0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJk X2luZm8pKTsNCi0Jc3Ryc2NweShpbmZvLnR5cGUsICJpcl92aWRlbyIsIEky Q19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGluZm8udHlwZSwgImlyX3ZpZGVv Iik7DQogCXJldHVybiBpMmNfbmV3X3Byb2JlZF9kZXZpY2UoJml0di0+aTJj X2FkYXAsICZpbmZvLCBhZGRyX2xpc3QsIE5VTEwpOw0KIH0NCiANCmRpZmYg LXUgLXAgYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2N4dXNiLmMgYi9k cml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2N4dXNiLmMNCi0tLSBhL2RyaXZl cnMvbWVkaWEvdXNiL2R2Yi11c2IvY3h1c2IuYw0KKysrIGIvZHJpdmVycy9t ZWRpYS91c2IvZHZiLXVzYi9jeHVzYi5jDQpAQCAtMTQwNiw3ICsxNDA2LDcg QEAgc3RhdGljIGludCBjeHVzYl9teWdpY2FfdDIzMF9mcm9udGVuZF9hdA0K IAlzaTIxNjhfY29uZmlnLnRzX21vZGUgPSBTSTIxNjhfVFNfUEFSQUxMRUw7 DQogCXNpMjE2OF9jb25maWcudHNfY2xvY2tfaW52ID0gMTsNCiAJbWVtc2V0 KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQot CXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY4IiwgSTJDX05BTUVfU0laRSk7 DQorCXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTY4Iik7DQogCWluZm8uYWRk ciA9IDB4NjQ7DQogCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNjhfY29u ZmlnOw0KIAlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTE0MjYs NyArMTQyNiw3IEBAIHN0YXRpYyBpbnQgY3h1c2JfbXlnaWNhX3QyMzBfZnJv bnRlbmRfYXQNCiAJc2kyMTU3X2NvbmZpZy5mZSA9IGFkYXAtPmZlX2FkYXBb MF0uZmU7DQogCXNpMjE1N19jb25maWcuaWZfcG9ydCA9IDE7DQogCW1lbXNl dCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0K LQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUp Ow0KKwlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE1NyIpOw0KIAlpbmZvLmFk ZHIgPSAweDYwOw0KIAlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3X2Nv bmZpZzsNCiAJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCmRpZmYgLXUg LXAgYS9kcml2ZXJzL25ldC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2 bGFuLmMNCi0tLSBhL2RyaXZlcnMvbmV0L21hY3ZsYW4uYw0KKysrIGIvZHJp dmVycy9uZXQvbWFjdmxhbi5jDQpAQCAtODI3LDcgKzgyNyw3IEBAIHN0YXRp YyBpbnQgbWFjdmxhbl9kb19pb2N0bChzdHJ1Y3QgbmV0X2QNCiAJc3RydWN0 IGlmcmVxIGlmcnI7DQogCWludCBlcnIgPSAtRU9QTk9UU1VQUDsNCiANCi0J c3Ryc2NweShpZnJyLmlmcl9uYW1lLCByZWFsX2Rldi0+bmFtZSwgSUZOQU1T SVopOw0KKwlzdHJhY3B5KGlmcnIuaWZyX25hbWUsIHJlYWxfZGV2LT5uYW1l KTsNCiAJaWZyci5pZnJfaWZydSA9IGlmci0+aWZyX2lmcnU7DQogDQogCXN3 aXRjaCAoY21kKSB7DQpkaWZmIC11IC1wIGEvdG9vbHMvcGVyZi91dGlsL21h Y2hpbmUuYyBiL3Rvb2xzL3BlcmYvdXRpbC9tYWNoaW5lLmMNCi0tLSBhL3Rv b2xzL3BlcmYvdXRpbC9tYWNoaW5lLmMNCisrKyBiL3Rvb2xzL3BlcmYvdXRp bC9tYWNoaW5lLmMNCkBAIC0xMDc4LDcgKzEwNzgsNyBAQCBpbnQgbWFjaGlu ZV9fbWFwX3g4Nl82NF9lbnRyeV90cmFtcG9saW5lDQogCQkJLnBnb2ZmID0g cGdvZmYsDQogCQl9Ow0KIA0KLQkJc3RybGNweSh4bS5uYW1lLCBFTlRSWV9U UkFNUE9MSU5FX05BTUUsIEtNQVBfTkFNRV9MRU4pOw0KKwkJc3RyYWNweSh4 bS5uYW1lLCBFTlRSWV9UUkFNUE9MSU5FX05BTUUpOw0KIA0KIAkJaWYgKG1h Y2hpbmVfX2NyZWF0ZV9leHRyYV9rZXJuZWxfbWFwKG1hY2hpbmUsIGtlcm5l bCwgJnhtKSA8IDApDQogCQkJcmV0dXJuIC0xOw0KQEAgLTE1NDIsNyArMTU0 Miw3IEBAIHN0YXRpYyBpbnQgbWFjaGluZV9fcHJvY2Vzc19leHRyYV9rZXJu ZWwNCiAJaWYgKGtlcm5lbCA9PSBOVUxMKQ0KIAkJcmV0dXJuIC0xOw0KIA0K LQlzdHJsY3B5KHhtLm5hbWUsIGV2ZW50LT5tbWFwLmZpbGVuYW1lLCBLTUFQ X05BTUVfTEVOKTsNCisJc3RyYWNweSh4bS5uYW1lLCBldmVudC0+bW1hcC5m aWxlbmFtZSk7DQogDQogCXJldHVybiBtYWNoaW5lX19jcmVhdGVfZXh0cmFf a2VybmVsX21hcChtYWNoaW5lLCBrZXJuZWwsICZ4bSk7DQogfQ0KZGlmZiAt dSAtcCBhL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX3dpbmR0dW5uZWwuYyBi L2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX3dpbmR0dW5uZWwuYw0KLS0tIGEv ZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fd2luZHR1bm5lbC5jDQorKysgYi9k cml2ZXJzL21hY2ludG9zaC90aGVybV93aW5kdHVubmVsLmMNCkBAIC0zMjAs MTAgKzMyMCwxMCBAQCBkb19hdHRhY2goIHN0cnVjdCBpMmNfYWRhcHRlciAq YWRhcHRlciApDQogCQlzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gaW5mbzsNCiAN CiAJCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRf aW5mbykpOw0KLQkJc3RybGNweShpbmZvLnR5cGUsICJ0aGVybV9kczE3NzUi LCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoaW5mby50eXBlLCAidGhl cm1fZHMxNzc1Iik7DQogCQlpMmNfbmV3X3Byb2JlZF9kZXZpY2UoYWRhcHRl ciwgJmluZm8sIHNjYW5fZHMxNzc1LCBOVUxMKTsNCiANCi0JCXN0cmxjcHko aW5mby50eXBlLCAidGhlcm1fYWRtMTAzMCIsIEkyQ19OQU1FX1NJWkUpOw0K KwkJc3RyYWNweShpbmZvLnR5cGUsICJ0aGVybV9hZG0xMDMwIik7DQogCQlp MmNfbmV3X3Byb2JlZF9kZXZpY2UoYWRhcHRlciwgJmluZm8sIHNjYW5fYWRt MTAzMCwgTlVMTCk7DQogDQogCQlpZiggeC50aGVybW9zdGF0ICYmIHguZmFu ICkgew0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvcGNpL2N4ODgvY3g4 OC1pbnB1dC5jIGIvZHJpdmVycy9tZWRpYS9wY2kvY3g4OC9jeDg4LWlucHV0 LmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvcGNpL2N4ODgvY3g4OC1pbnB1dC5j DQorKysgYi9kcml2ZXJzL21lZGlhL3BjaS9jeDg4L2N4ODgtaW5wdXQuYw0K QEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lkIGN4ODhfaTJjX2luaXRfaXIoc3Ry dWN0IGN4ODhfY29yZSAqDQogCQlyZXR1cm47DQogDQogCW1lbXNldCgmaW5m bywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQlzdHJz Y3B5KGluZm8udHlwZSwgImlyX3ZpZGVvIiwgSTJDX05BTUVfU0laRSk7DQor CXN0cmFjcHkoaW5mby50eXBlLCAiaXJfdmlkZW8iKTsNCiANCiAJc3dpdGNo IChjb3JlLT5ib2FyZG5yKSB7DQogCWNhc2UgQ1g4OF9CT0FSRF9MRUFEVEVL X1BWUjIwMDA6DQpAQCAtNjI1LDcgKzYyNSw3IEBAIHZvaWQgY3g4OF9pMmNf aW5pdF9pcihzdHJ1Y3QgY3g4OF9jb3JlICoNCiANCiAJCWlmICgqYWRkcnAg PT0gMHg3MSkgew0KIAkJCS8qIEhhdXBwYXVnZSBaOEYwODExICovDQotCQkJ c3Ryc2NweShpbmZvLnR5cGUsICJpcl96OGYwODExX2hhdXAiLCBJMkNfTkFN RV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgImlyX3o4ZjA4MTFf aGF1cCIpOw0KIAkJCWNvcmUtPmluaXRfZGF0YS5uYW1lID0gY29yZS0+Ym9h cmQubmFtZTsNCiAJCQljb3JlLT5pbml0X2RhdGEuaXJfY29kZXMgPSBSQ19N QVBfSEFVUFBBVUdFOw0KIAkJCWNvcmUtPmluaXRfZGF0YS50eXBlID0gUkNf UFJPVE9fQklUX1JDNSB8DQpkaWZmIC11IC1wIGEvc291bmQvYW9hL2NvZGVj cy90YXMuYyBiL3NvdW5kL2FvYS9jb2RlY3MvdGFzLmMNCi0tLSBhL3NvdW5k L2FvYS9jb2RlY3MvdGFzLmMNCisrKyBiL3NvdW5kL2FvYS9jb2RlY3MvdGFz LmMNCkBAIC04OTQsNyArODk0LDcgQEAgc3RhdGljIGludCB0YXNfaTJjX3By b2JlKHN0cnVjdCBpMmNfY2xpZQ0KIAkvKiBzZWVtcyB0aGF0IGhhbGYgaXMg YSBzYW5lciBkZWZhdWx0ICovDQogCXRhcy0+ZHJjX3JhbmdlID0gVEFTMzAw NF9EUkNfTUFYIC8gMjsNCiANCi0Jc3RybGNweSh0YXMtPmNvZGVjLm5hbWUs ICJ0YXMiLCBNQVhfQ09ERUNfTkFNRV9MRU4pOw0KKwlzdHJhY3B5KHRhcy0+ Y29kZWMubmFtZSwgInRhcyIpOw0KIAl0YXMtPmNvZGVjLm93bmVyID0gVEhJ U19NT0RVTEU7DQogCXRhcy0+Y29kZWMuaW5pdCA9IHRhc19pbml0X2NvZGVj Ow0KIAl0YXMtPmNvZGVjLmV4aXQgPSB0YXNfZXhpdF9jb2RlYzsNCmRpZmYg LXUgLXAgYS9kcml2ZXJzL21mZC9odGMtaTJjcGxkLmMgYi9kcml2ZXJzL21m ZC9odGMtaTJjcGxkLmMNCi0tLSBhL2RyaXZlcnMvbWZkL2h0Yy1pMmNwbGQu Yw0KKysrIGIvZHJpdmVycy9tZmQvaHRjLWkyY3BsZC5jDQpAQCAtMzUxLDcg KzM1MSw3IEBAIHN0YXRpYyBpbnQgaHRjcGxkX3JlZ2lzdGVyX2NoaXBfaTJj KA0KIA0KIAltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2Jv YXJkX2luZm8pKTsNCiAJaW5mby5hZGRyID0gcGxhdF9jaGlwX2RhdGEtPmFk ZHI7DQotCXN0cmxjcHkoaW5mby50eXBlLCAiaHRjcGxkLWNoaXAiLCBJMkNf TkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLnR5cGUsICJodGNwbGQtY2hp cCIpOw0KIAlpbmZvLnBsYXRmb3JtX2RhdGEgPSBjaGlwOw0KIA0KIAkvKiBB ZGQgdGhlIEkyQyBkZXZpY2UuICBUaGlzIGNhbGxzIHRoZSBwcm9iZSgpIGZ1 bmN0aW9uLiAqLw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvcGxhdGZvcm0veDg2 L2ludGVsX2NodF9pbnQzM2ZlLmMgYi9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9p bnRlbF9jaHRfaW50MzNmZS5jDQotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3g4 Ni9pbnRlbF9jaHRfaW50MzNmZS5jDQorKysgYi9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni9pbnRlbF9jaHRfaW50MzNmZS5jDQpAQCAtMjg1LDcgKzI4NSw3IEBA IGNodF9pbnQzM2ZlX3JlZ2lzdGVyX21heDE3MDQ3KHN0cnVjdCBkZXYNCiAJ fQ0KIA0KIAltZW1zZXQoJmJvYXJkX2luZm8sIDAsIHNpemVvZihib2FyZF9p bmZvKSk7DQotCXN0cmxjcHkoYm9hcmRfaW5mby50eXBlLCAibWF4MTcwNDci LCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShib2FyZF9pbmZvLnR5cGUs ICJtYXgxNzA0NyIpOw0KIAlib2FyZF9pbmZvLmRldl9uYW1lID0gIm1heDE3 MDQ3IjsNCiAJYm9hcmRfaW5mby5md25vZGUgPSBmd25vZGU7DQogCWRhdGEt Pm1heDE3MDQ3ID0gaTJjX2FjcGlfbmV3X2RldmljZShkZXYsIDEsICZib2Fy ZF9pbmZvKTsNCkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGludCBjaHRf aW50MzNmZV9wcm9iZShzdHJ1Y3QgcGxhdA0KIAl9DQogDQogCW1lbXNldCgm Ym9hcmRfaW5mbywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3RybGNw eShib2FyZF9pbmZvLnR5cGUsICJ0eXBlY19mdXNiMzAyIiwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCAidHlwZWNfZnVz YjMwMiIpOw0KIAlib2FyZF9pbmZvLmRldl9uYW1lID0gImZ1c2IzMDIiOw0K IAlib2FyZF9pbmZvLmZ3bm9kZSA9IGZ3bm9kZTsNCiAJYm9hcmRfaW5mby5p cnEgPSBmdXNiMzAyX2lycTsNCkBAIC0zOTQsNyArMzk0LDcgQEAgc3RhdGlj IGludCBjaHRfaW50MzNmZV9wcm9iZShzdHJ1Y3QgcGxhdA0KIAltZW1zZXQo JmJvYXJkX2luZm8sIDAsIHNpemVvZihib2FyZF9pbmZvKSk7DQogCWJvYXJk X2luZm8uZGV2X25hbWUgPSAicGkzdXNiMzA1MzIiOw0KIAlib2FyZF9pbmZv LmZ3bm9kZSA9IGZ3bm9kZTsNCi0Jc3RybGNweShib2FyZF9pbmZvLnR5cGUs ICJwaTN1c2IzMDUzMiIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGJv YXJkX2luZm8udHlwZSwgInBpM3VzYjMwNTMyIik7DQogDQogCWRhdGEtPnBp M3VzYjMwNTMyID0gaTJjX2FjcGlfbmV3X2RldmljZShkZXYsIDMsICZib2Fy ZF9pbmZvKTsNCiAJaWYgKElTX0VSUihkYXRhLT5waTN1c2IzMDUzMikpIHsN CmRpZmYgLXUgLXAgYS90b29scy9wZXJmL2FyY2gveDg2L3V0aWwvbWFjaGlu ZS5jIGIvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL21hY2hpbmUuYw0KLS0t IGEvdG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL21hY2hpbmUuYw0KKysrIGIv dG9vbHMvcGVyZi9hcmNoL3g4Ni91dGlsL21hY2hpbmUuYw0KQEAgLTM5LDcg KzM5LDcgQEAgc3RhdGljIGludCBhZGRfZXh0cmFfa2VybmVsX21hcChzdHJ1 Y3QgZQ0KIAltaS0+bWFwc1ttaS0+Y250XS5zdGFydCA9IHN0YXJ0Ow0KIAlt aS0+bWFwc1ttaS0+Y250XS5lbmQgICA9IGVuZDsNCiAJbWktPm1hcHNbbWkt PmNudF0ucGdvZmYgPSBwZ29mZjsNCi0Jc3RybGNweShtaS0+bWFwc1ttaS0+ Y250XS5uYW1lLCBuYW1lLCBLTUFQX05BTUVfTEVOKTsNCisJc3RyYWNweSht aS0+bWFwc1ttaS0+Y250XS5uYW1lLCBuYW1lKTsNCiANCiAJbWktPmNudCAr PSAxOw0KIA0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvdXNiL3RtNjAw MC90bTYwMDAtaTJjLmMgYi9kcml2ZXJzL21lZGlhL3VzYi90bTYwMDAvdG02 MDAwLWkyYy5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi90bTYwMDAvdG02 MDAwLWkyYy5jDQorKysgYi9kcml2ZXJzL21lZGlhL3VzYi90bTYwMDAvdG02 MDAwLWkyYy5jDQpAQCAtMzAwLDcgKzMwMCw3IEBAIGludCB0bTYwMDBfaTJj X3JlZ2lzdGVyKHN0cnVjdCB0bTYwMDBfY28NCiAJCXJldHVybiByYzsNCiAN CiAJZGV2LT5pMmNfY2xpZW50LmFkYXB0ZXIgPSAmZGV2LT5pMmNfYWRhcDsN Ci0Jc3Ryc2NweShkZXYtPmkyY19jbGllbnQubmFtZSwgInRtNjAwMCBpbnRl cm5hbCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGRldi0+aTJjX2Ns aWVudC5uYW1lLCAidG02MDAwIGludGVybmFsIik7DQogCXRtNjAwMF9pMmNf ZWVwcm9tKGRldik7DQogDQogCXJldHVybiAwOw0KZGlmZiAtdSAtcCBhL2Ry aXZlcnMvbWVkaWEvcGNpL2N4MjM4ODUvY3gyMzg4NS1pMmMuYyBiL2RyaXZl cnMvbWVkaWEvcGNpL2N4MjM4ODUvY3gyMzg4NS1pMmMuYw0KLS0tIGEvZHJp dmVycy9tZWRpYS9wY2kvY3gyMzg4NS9jeDIzODg1LWkyYy5jDQorKysgYi9k cml2ZXJzL21lZGlhL3BjaS9jeDIzODg1L2N4MjM4ODUtaTJjLmMNCkBAIC0z MzQsNyArMzM0LDcgQEAgaW50IGN4MjM4ODVfaTJjX3JlZ2lzdGVyKHN0cnVj dCBjeDIzODg1Xw0KIAkJfTsNCiANCiAJCW1lbXNldCgmaW5mbywgMCwgc2l6 ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJc3Ryc2NweShpbmZv LnR5cGUsICJpcl92aWRlbyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNw eShpbmZvLnR5cGUsICJpcl92aWRlbyIpOw0KIAkJLyogVXNlIHF1aWNrIHJl YWQgY29tbWFuZCBmb3IgcHJvYmUsIHNvbWUgSVIgY2hpcHMgZG9uJ3QNCiAJ CSAqIHN1cHBvcnQgd3JpdGVzICovDQogCQlpMmNfbmV3X3Byb2JlZF9kZXZp Y2UoJmJ1cy0+aTJjX2FkYXAsICZpbmZvLCBhZGRyX2xpc3QsDQpkaWZmIC11 IC1wIGEvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jIGIv ZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9jb21lZGlfZm9wcy5jDQotLS0gYS9k cml2ZXJzL3N0YWdpbmcvY29tZWRpL2NvbWVkaV9mb3BzLmMNCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy9jb21lZGkvY29tZWRpX2ZvcHMuYw0KQEAgLTkzNyw4 ICs5MzcsOCBAQCBzdGF0aWMgaW50IGRvX2RldmluZm9faW9jdGwoc3RydWN0 IGNvbWVkDQogCS8qIGZpbGwgZGV2aW5mbyBzdHJ1Y3R1cmUgKi8NCiAJZGV2 aW5mby52ZXJzaW9uX2NvZGUgPSBDT01FRElfVkVSU0lPTl9DT0RFOw0KIAlk ZXZpbmZvLm5fc3ViZGV2cyA9IGRldi0+bl9zdWJkZXZpY2VzOw0KLQlzdHJs Y3B5KGRldmluZm8uZHJpdmVyX25hbWUsIGRldi0+ZHJpdmVyLT5kcml2ZXJf bmFtZSwgQ09NRURJX05BTUVMRU4pOw0KLQlzdHJsY3B5KGRldmluZm8uYm9h cmRfbmFtZSwgZGV2LT5ib2FyZF9uYW1lLCBDT01FRElfTkFNRUxFTik7DQor CXN0cmFjcHkoZGV2aW5mby5kcml2ZXJfbmFtZSwgZGV2LT5kcml2ZXItPmRy aXZlcl9uYW1lKTsNCisJc3RyYWNweShkZXZpbmZvLmJvYXJkX25hbWUsIGRl di0+Ym9hcmRfbmFtZSk7DQogDQogCXMgPSBjb21lZGlfZmlsZV9yZWFkX3N1 YmRldmljZShmaWxlKTsNCiAJaWYgKHMpDQpkaWZmIC11IC1wIGEvZHJpdmVy cy9pMmMvYnVzc2VzL2kyYy1pODAxLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMv aTJjLWk4MDEuYw0KLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1pODAx LmMNCisrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaTgwMS5jDQpAQCAt MTEzNCw3ICsxMTM0LDcgQEAgc3RhdGljIHZvaWQgZG1pX2NoZWNrX29uYm9h cmRfZGV2aWNlKHU4DQogDQogCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCiAJCWluZm8uYWRkciA9IGRtaV9k ZXZpY2VzW2ldLmkyY19hZGRyOw0KLQkJc3RybGNweShpbmZvLnR5cGUsIGRt aV9kZXZpY2VzW2ldLmkyY190eXBlLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0 cmFjcHkoaW5mby50eXBlLCBkbWlfZGV2aWNlc1tpXS5pMmNfdHlwZSk7DQog CQlpMmNfbmV3X2RldmljZShhZGFwLCAmaW5mbyk7DQogCQlicmVhazsNCiAJ fQ0KQEAgLTEyNzksNyArMTI3OSw3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVy X2RlbGxfbGlzM2x2MDJkX2kyY18NCiANCiAJbWVtc2V0KCZpbmZvLCAwLCBz aXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQogCWluZm8uYWRkciA9 IGRlbGxfbGlzM2x2MDJkX2RldmljZXNbaV0uaTJjX2FkZHI7DQotCXN0cmxj cHkoaW5mby50eXBlLCAibGlzM2x2MDJkIiwgSTJDX05BTUVfU0laRSk7DQor CXN0cmFjcHkoaW5mby50eXBlLCAibGlzM2x2MDJkIik7DQogCWkyY19uZXdf ZGV2aWNlKCZwcml2LT5hZGFwdGVyLCAmaW5mbyk7DQogfQ0KIA0KQEAgLTEy OTUsNyArMTI5NSw3IEBAIHN0YXRpYyB2b2lkIGk4MDFfcHJvYmVfb3B0aW9u YWxfc2xhdmVzKHMNCiANCiAJCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0 cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KIAkJaW5mby5hZGRyID0gYXBhbmVs X2FkZHI7DQotCQlzdHJsY3B5KGluZm8udHlwZSwgImZ1aml0c3VfYXBhbmVs IiwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwgImZ1 aml0c3VfYXBhbmVsIik7DQogCQlpMmNfbmV3X2RldmljZSgmcHJpdi0+YWRh cHRlciwgJmluZm8pOw0KIAl9DQogDQpkaWZmIC11IC1wIGEvZHJpdmVycy9t ZWRpYS91c2IvZHZiLXVzYi12Mi96ZDEzMDEuYyBiL2RyaXZlcnMvbWVkaWEv dXNiL2R2Yi11c2ItdjIvemQxMzAxLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEv dXNiL2R2Yi11c2ItdjIvemQxMzAxLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEv dXNiL2R2Yi11c2ItdjIvemQxMzAxLmMNCkBAIC0xNjgsNyArMTY4LDcgQEAg c3RhdGljIGludCB6ZDEzMDFfZnJvbnRlbmRfYXR0YWNoKHN0cnVjdA0KIAlk ZXYtPm10MjA2MF9wZGF0YS5pMmNfd3JpdGVfbWF4ID0gOTsNCiAJZGV2LT5t dDIwNjBfcGRhdGEuZHZiX2Zyb250ZW5kID0gZnJvbnRlbmQ7DQogCW1lbXNl dCgmYm9hcmRfaW5mbywgMCwgc2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3Ry c2NweShib2FyZF9pbmZvLnR5cGUsICJtdDIwNjAiLCBJMkNfTkFNRV9TSVpF KTsNCisJc3RyYWNweShib2FyZF9pbmZvLnR5cGUsICJtdDIwNjAiKTsNCiAJ Ym9hcmRfaW5mby5hZGRyID0gMHg2MDsNCiAJYm9hcmRfaW5mby5wbGF0Zm9y bV9kYXRhID0gJmRldi0+bXQyMDYwX3BkYXRhOw0KIAlyZXF1ZXN0X21vZHVs ZSgiJXMiLCAibXQyMDYwIik7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9zMzkw L2Jsb2NrL2Rhc2RfZWVyLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9l ZXIuYw0KLS0tIGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMNCisr KyBiL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jDQpAQCAtMzEzLDgg KzMxMyw3IEBAIHN0YXRpYyB2b2lkIGRhc2RfZWVyX3dyaXRlX3N0YW5kYXJk X3RyaWcNCiAJa3RpbWVfZ2V0X3JlYWxfdHM2NCgmdHMpOw0KIAloZWFkZXIu dHZfc2VjID0gdHMudHZfc2VjOw0KIAloZWFkZXIudHZfdXNlYyA9IHRzLnR2 X25zZWMgLyBOU0VDX1BFUl9VU0VDOw0KLQlzdHJsY3B5KGhlYWRlci5idXNp ZCwgZGV2X25hbWUoJmRldmljZS0+Y2Rldi0+ZGV2KSwNCi0JCURBU0RfRUVS X0JVU0lEX1NJWkUpOw0KKwlzdHJhY3B5KGhlYWRlci5idXNpZCwgZGV2X25h bWUoJmRldmljZS0+Y2Rldi0+ZGV2KSk7DQogDQogCXNwaW5fbG9ja19pcnFz YXZlKCZidWZmZXJsb2NrLCBmbGFncyk7DQogCWxpc3RfZm9yX2VhY2hfZW50 cnkoZWVyYiwgJmJ1ZmZlcmxpc3QsIGxpc3QpIHsNCkBAIC0zNTYsOCArMzU1 LDcgQEAgc3RhdGljIHZvaWQgZGFzZF9lZXJfd3JpdGVfc25zc190cmlnZ2Vy KA0KIAlrdGltZV9nZXRfcmVhbF90czY0KCZ0cyk7DQogCWhlYWRlci50dl9z ZWMgPSB0cy50dl9zZWM7DQogCWhlYWRlci50dl91c2VjID0gdHMudHZfbnNl YyAvIE5TRUNfUEVSX1VTRUM7DQotCXN0cmxjcHkoaGVhZGVyLmJ1c2lkLCBk ZXZfbmFtZSgmZGV2aWNlLT5jZGV2LT5kZXYpLA0KLQkJREFTRF9FRVJfQlVT SURfU0laRSk7DQorCXN0cmFjcHkoaGVhZGVyLmJ1c2lkLCBkZXZfbmFtZSgm ZGV2aWNlLT5jZGV2LT5kZXYpKTsNCiANCiAJc3Bpbl9sb2NrX2lycXNhdmUo JmJ1ZmZlcmxvY2ssIGZsYWdzKTsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShl ZXJiLCAmYnVmZmVybGlzdCwgbGlzdCkgew0KZGlmZiAtdSAtcCBhL2RyaXZl cnMvbWVkaWEvcGNpL2N4ODgvY3g4OC1pMmMuYyBiL2RyaXZlcnMvbWVkaWEv cGNpL2N4ODgvY3g4OC1pMmMuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9wY2kv Y3g4OC9jeDg4LWkyYy5jDQorKysgYi9kcml2ZXJzL21lZGlhL3BjaS9jeDg4 L2N4ODgtaTJjLmMNCkBAIC0xMzcsNyArMTM3LDcgQEAgaW50IGN4ODhfaTJj X2luaXQoc3RydWN0IGN4ODhfY29yZSAqY29yZQ0KIAlpMmNfc2V0X2FkYXBk YXRhKCZjb3JlLT5pMmNfYWRhcCwgJmNvcmUtPnY0bDJfZGV2KTsNCiAJY29y ZS0+aTJjX2FkYXAuYWxnb19kYXRhID0gJmNvcmUtPmkyY19hbGdvOw0KIAlj b3JlLT5pMmNfY2xpZW50LmFkYXB0ZXIgPSAmY29yZS0+aTJjX2FkYXA7DQot CXN0cnNjcHkoY29yZS0+aTJjX2NsaWVudC5uYW1lLCAiY3g4OHh4IGludGVy bmFsIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoY29yZS0+aTJjX2Ns aWVudC5uYW1lLCAiY3g4OHh4IGludGVybmFsIik7DQogDQogCWN4ODgwMF9i aXRfc2V0c2NsKGNvcmUsIDEpOw0KIAljeDg4MDBfYml0X3NldHNkYShjb3Jl LCAxKTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3VzYi9jeDIzMXh4 L2N4MjMxeHgtaW5wdXQuYyBiL2RyaXZlcnMvbWVkaWEvdXNiL2N4MjMxeHgv Y3gyMzF4eC1pbnB1dC5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi9jeDIz MXh4L2N4MjMxeHgtaW5wdXQuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91c2Iv Y3gyMzF4eC9jeDIzMXh4LWlucHV0LmMNCkBAIC02Nyw3ICs2Nyw3IEBAIGlu dCBjeDIzMXh4X2lyX2luaXQoc3RydWN0IGN4MjMxeHggKmRldikNCiANCiAJ ZGV2LT5pbml0X2RhdGEubmFtZSA9IGN4MjMxeHhfYm9hcmRzW2Rldi0+bW9k ZWxdLm5hbWU7DQogDQotCXN0cnNjcHkoaW5mby50eXBlLCAiaXJfdmlkZW8i LCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLnR5cGUsICJpcl92 aWRlbyIpOw0KIAlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmZGV2LT5pbml0X2Rh dGE7DQogDQogCS8qDQpkaWZmIC11IC1wIGEvbmV0L2lwdjQvaXBfdHVubmVs LmMgYi9uZXQvaXB2NC9pcF90dW5uZWwuYw0KLS0tIGEvbmV0L2lwdjQvaXBf dHVubmVsLmMNCisrKyBiL25ldC9pcHY0L2lwX3R1bm5lbC5jDQpAQCAtMTA1 NCw3ICsxMDU0LDcgQEAgaW50IGlwX3R1bm5lbF9pbml0X25ldChzdHJ1Y3Qg bmV0ICpuZXQsDQogDQogCW1lbXNldCgmcGFybXMsIDAsIHNpemVvZihwYXJt cykpOw0KIAlpZiAoZGV2bmFtZSkNCi0JCXN0cmxjcHkocGFybXMubmFtZSwg ZGV2bmFtZSwgSUZOQU1TSVopOw0KKwkJc3RyYWNweShwYXJtcy5uYW1lLCBk ZXZuYW1lKTsNCiANCiAJcnRubF9sb2NrKCk7DQogCWl0bi0+ZmJfdHVubmVs X2RldiA9IF9faXBfdHVubmVsX2NyZWF0ZShuZXQsIG9wcywgJnBhcm1zKTsN CmRpZmYgLXUgLXAgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYv aWRsZS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L2lkbGUu Yw0KLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L2lkbGUu Yw0KKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L2lkbGUu Yw0KQEAgLTEzMTEsOCArMTMxMSw3IEBAIHN0YXRpYyBpbnQgcG52X3BhcnNl X2NwdWlkbGVfZHQodm9pZCkNCiAJCWdvdG8gb3V0Ow0KIAl9DQogCWZvciAo aSA9IDA7IGkgPCBucl9pZGxlX3N0YXRlczsgaSsrKQ0KLQkJc3RybGNweShw bnZfaWRsZV9zdGF0ZXNbaV0ubmFtZSwgdGVtcF9zdHJpbmdbaV0sDQotCQkJ UE5WX0lETEVfTkFNRV9MRU4pOw0KKwkJc3RyYWNweShwbnZfaWRsZV9zdGF0 ZXNbaV0ubmFtZSwgdGVtcF9zdHJpbmdbaV0pOw0KIAlucl9wbnZfaWRsZV9z dGF0ZXMgPSBucl9pZGxlX3N0YXRlczsNCiAJcmMgPSAwOw0KIG91dDoNCmRp ZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlhL3BjaS9zYWE3MTM0L3NhYTcxMzQt aW5wdXQuYyBiL2RyaXZlcnMvbWVkaWEvcGNpL3NhYTcxMzQvc2FhNzEzNC1p bnB1dC5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3BjaS9zYWE3MTM0L3NhYTcx MzQtaW5wdXQuYw0KKysrIGIvZHJpdmVycy9tZWRpYS9wY2kvc2FhNzEzNC9z YWE3MTM0LWlucHV0LmMNCkBAIC04NTYsNyArODU2LDcgQEAgdm9pZCBzYWE3 MTM0X3Byb2JlX2kyY19pcihzdHJ1Y3Qgc2FhNzEzNA0KIA0KIAltZW1zZXQo JmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCiAJ bWVtc2V0KCZkZXYtPmluaXRfZGF0YSwgMCwgc2l6ZW9mKGRldi0+aW5pdF9k YXRhKSk7DQotCXN0cnNjcHkoaW5mby50eXBlLCAiaXJfdmlkZW8iLCBJMkNf TkFNRV9TSVpFKTsNCisJc3RyYWNweShpbmZvLnR5cGUsICJpcl92aWRlbyIp Ow0KIA0KIAlzd2l0Y2ggKGRldi0+Ym9hcmQpIHsNCiAJY2FzZSBTQUE3MTM0 X0JPQVJEX1BJTk5BQ0xFX1BDVFZfMTEwaToNCmRpZmYgLXUgLXAgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMv Y29tbW9uLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNt ODAyMTEvYnJjbWZtYWMvY29tbW9uLmMNCi0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb21tb24uYw0K KysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjEx L2JyY21mbWFjL2NvbW1vbi5jDQpAQCAtMzgzLDEzICszODMsMTEgQEAgc3Rh dGljIHZvaWQgYnJjbWZfbXBfYXR0YWNoKHZvaWQpDQogCSAqIGlmIG5vdCBz ZXQgdGhlbiBpZiBhdmFpbGFibGUgdXNlIHRoZSBwbGF0Zm9ybSBkYXRhIHZl cnNpb24uIFRvIG1ha2UNCiAJICogc3VyZSBpdCBnZXRzIGluaXRpYWxpemVk IGF0IGFsbCwgYWx3YXlzIGNvcHkgdGhlIG1vZHVsZSBwYXJhbSB2ZXJzaW9u DQogCSAqLw0KLQlzdHJsY3B5KGJyY21mX21wX2dsb2JhbC5maXJtd2FyZV9w YXRoLCBicmNtZl9maXJtd2FyZV9wYXRoLA0KLQkJQlJDTUZfRldfQUxUUEFU SF9MRU4pOw0KKwlzdHJhY3B5KGJyY21mX21wX2dsb2JhbC5maXJtd2FyZV9w YXRoLCBicmNtZl9maXJtd2FyZV9wYXRoKTsNCiAJaWYgKChicmNtZm1hY19w ZGF0YSkgJiYgKGJyY21mbWFjX3BkYXRhLT5md19hbHRlcm5hdGl2ZV9wYXRo KSAmJg0KIAkgICAgKGJyY21mX21wX2dsb2JhbC5maXJtd2FyZV9wYXRoWzBd ID09ICdcMCcpKSB7DQotCQlzdHJsY3B5KGJyY21mX21wX2dsb2JhbC5maXJt d2FyZV9wYXRoLA0KLQkJCWJyY21mbWFjX3BkYXRhLT5md19hbHRlcm5hdGl2 ZV9wYXRoLA0KLQkJCUJSQ01GX0ZXX0FMVFBBVEhfTEVOKTsNCisJCXN0cmFj cHkoYnJjbWZfbXBfZ2xvYmFsLmZpcm13YXJlX3BhdGgsDQorCQkJYnJjbWZt YWNfcGRhdGEtPmZ3X2FsdGVybmF0aXZlX3BhdGgpOw0KIAl9DQogfQ0KIA0K ZGlmZiAtdSAtcCBhL2xpYi9lYXJseWNwaW8uYyBiL2xpYi9lYXJseWNwaW8u Yw0KLS0tIGEvbGliL2Vhcmx5Y3Bpby5jDQorKysgYi9saWIvZWFybHljcGlv LmMNCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RydWN0IGNwaW9fZGF0YSBmaW5k X2NwaW9fZGF0YShjb25zdCBjaA0KIAkJCQkiRmlsZSAlcyBleGNlZWRpbmcg TUFYX0NQSU9fRklMRV9OQU1FIFslZF1cbiIsDQogCQkJCXAsIE1BWF9DUElP X0ZJTEVfTkFNRSk7DQogCQkJfQ0KLQkJCXN0cmxjcHkoY2QubmFtZSwgcCAr IG15cGF0aHNpemUsIE1BWF9DUElPX0ZJTEVfTkFNRSk7DQorCQkJc3RyYWNw eShjZC5uYW1lLCBwICsgbXlwYXRoc2l6ZSk7DQogDQogCQkJY2QuZGF0YSA9 ICh2b2lkICopZHB0cjsNCiAJCQljZC5zaXplID0gY2hbQ19GSUxFU0laRV07 DQpkaWZmIC11IC1wIGEvc291bmQvYW9hL2NvZGVjcy9vbnl4LmMgYi9zb3Vu ZC9hb2EvY29kZWNzL29ueXguYw0KLS0tIGEvc291bmQvYW9hL2NvZGVjcy9v bnl4LmMNCisrKyBiL3NvdW5kL2FvYS9jb2RlY3Mvb255eC5jDQpAQCAtMTAx MSw3ICsxMDExLDcgQEAgc3RhdGljIGludCBvbnl4X2kyY19wcm9iZShzdHJ1 Y3QgaTJjX2NsaQ0KIAkJZ290byBmYWlsOw0KIAl9DQogDQotCXN0cmxjcHko b255eC0+Y29kZWMubmFtZSwgIm9ueXgiLCBNQVhfQ09ERUNfTkFNRV9MRU4p Ow0KKwlzdHJhY3B5KG9ueXgtPmNvZGVjLm5hbWUsICJvbnl4Iik7DQogCW9u eXgtPmNvZGVjLm93bmVyID0gVEhJU19NT0RVTEU7DQogCW9ueXgtPmNvZGVj LmluaXQgPSBvbnl4X2luaXRfY29kZWM7DQogCW9ueXgtPmNvZGVjLmV4aXQg PSBvbnl4X2V4aXRfY29kZWM7DQpkaWZmIC11IC1wIGEvZHJpdmVycy91c2Iv dXNiaXAvc3R1Yl9tYWluLmMgYi9kcml2ZXJzL3VzYi91c2JpcC9zdHViX21h aW4uYw0KLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9tYWluLmMNCisr KyBiL2RyaXZlcnMvdXNiL3VzYmlwL3N0dWJfbWFpbi5jDQpAQCAtMTAxLDcg KzEwMSw3IEBAIHN0YXRpYyBpbnQgYWRkX21hdGNoX2J1c2lkKGNoYXIgKmJ1 c2lkKQ0KIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0JVU0lEOyBpKyspIHsNCiAJ CXNwaW5fbG9jaygmYnVzaWRfdGFibGVbaV0uYnVzaWRfbG9jayk7DQogCQlp ZiAoIWJ1c2lkX3RhYmxlW2ldLm5hbWVbMF0pIHsNCi0JCQlzdHJsY3B5KGJ1 c2lkX3RhYmxlW2ldLm5hbWUsIGJ1c2lkLCBCVVNJRF9TSVpFKTsNCisJCQlz dHJhY3B5KGJ1c2lkX3RhYmxlW2ldLm5hbWUsIGJ1c2lkKTsNCiAJCQlpZiAo KGJ1c2lkX3RhYmxlW2ldLnN0YXR1cyAhPSBTVFVCX0JVU0lEX0FMTE9DKSAm Jg0KIAkJCSAgICAoYnVzaWRfdGFibGVbaV0uc3RhdHVzICE9IFNUVUJfQlVT SURfUkVNT1YpKQ0KIAkJCQlidXNpZF90YWJsZVtpXS5zdGF0dXMgPSBTVFVC X0JVU0lEX0FEREVEOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvZHZi LWZyb250ZW5kcy90czIwMjAuYyBiL2RyaXZlcnMvbWVkaWEvZHZiLWZyb250 ZW5kcy90czIwMjAuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9kdmItZnJvbnRl bmRzL3RzMjAyMC5jDQorKysgYi9kcml2ZXJzL21lZGlhL2R2Yi1mcm9udGVu ZHMvdHMyMDIwLmMNCkBAIC01MTYsNyArNTE2LDcgQEAgc3RydWN0IGR2Yl9m cm9udGVuZCAqdHMyMDIwX2F0dGFjaChzdHJ1Yw0KIAlwZGF0YS5hdHRhY2hf aW5fdXNlID0gdHJ1ZTsNCiANCiAJbWVtc2V0KCZib2FyZF9pbmZvLCAwLCBz aXplb2YoYm9hcmRfaW5mbykpOw0KLQlzdHJzY3B5KGJvYXJkX2luZm8udHlw ZSwgInRzMjAyMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGJvYXJk X2luZm8udHlwZSwgInRzMjAyMCIpOw0KIAlib2FyZF9pbmZvLmFkZHIgPSBj b25maWctPnR1bmVyX2FkZHJlc3M7DQogCWJvYXJkX2luZm8ucGxhdGZvcm1f ZGF0YSA9ICZwZGF0YTsNCiAJY2xpZW50ID0gaTJjX25ld19kZXZpY2UoaTJj LCAmYm9hcmRfaW5mbyk7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9tZWRpYS9w Y2kvY3gxOC9jeDE4LWkyYy5jIGIvZHJpdmVycy9tZWRpYS9wY2kvY3gxOC9j eDE4LWkyYy5jDQotLS0gYS9kcml2ZXJzL21lZGlhL3BjaS9jeDE4L2N4MTgt aTJjLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvcGNpL2N4MTgvY3gxOC1pMmMu Yw0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGludCBjeDE4X2kyY19uZXdf aXIoc3RydWN0IGN4MTggKg0KIAl1bnNpZ25lZCBzaG9ydCBhZGRyX2xpc3Rb Ml0gPSB7IGFkZHIsIEkyQ19DTElFTlRfRU5EIH07DQogDQogCW1lbXNldCgm aW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQlz dHJzY3B5KGluZm8udHlwZSwgdHlwZSwgSTJDX05BTUVfU0laRSk7DQorCXN0 cmFjcHkoaW5mby50eXBlLCB0eXBlKTsNCiANCiAJLyogT3VyIGRlZmF1bHQg aW5mb3JtYXRpb24gZm9yIGlyLWtiZC1pMmMuYyB0byB1c2UgKi8NCiAJc3dp dGNoIChodykgew0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvc2NzaS9xZWRpL3Fl ZGlfbWFpbi5jIGIvZHJpdmVycy9zY3NpL3FlZGkvcWVkaV9tYWluLmMNCi0t LSBhL2RyaXZlcnMvc2NzaS9xZWRpL3FlZGlfbWFpbi5jDQorKysgYi9kcml2 ZXJzL3Njc2kvcWVkaS9xZWRpX21haW4uYw0KQEAgLTI0NjAsNyArMjQ2MCw3 IEBAIHN0YXRpYyBpbnQgX19xZWRpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICoN CiAJc3BfcGFyYW1zLmRydl9taW5vciA9IFFFRElfRFJJVkVSX01JTk9SX1ZF UjsNCiAJc3BfcGFyYW1zLmRydl9yZXYgPSBRRURJX0RSSVZFUl9SRVZfVkVS Ow0KIAlzcF9wYXJhbXMuZHJ2X2VuZyA9IFFFRElfRFJJVkVSX0VOR19WRVI7 DQotCXN0cmxjcHkoc3BfcGFyYW1zLm5hbWUsICJxZWRpIGlTQ1NJIiwgUUVE X0RSVl9WRVJfU1RSX1NJWkUpOw0KKwlzdHJhY3B5KHNwX3BhcmFtcy5uYW1l LCAicWVkaSBpU0NTSSIpOw0KIAlyYyA9IHFlZGlfb3BzLT5jb21tb24tPnNs b3dwYXRoX3N0YXJ0KHFlZGktPmNkZXYsICZzcF9wYXJhbXMpOw0KIAlpZiAo cmMpIHsNCiAJCVFFRElfRVJSKCZxZWRpLT5kYmdfY3R4LCAiQ2Fubm90IHN0 YXJ0IHNsb3dwYXRoXG4iKTsNCmRpZmYgLXUgLXAgYS9kcml2ZXJzL21lZGlh L3BjaS9jeDIzODg1L2N4MjM4ODUtZHZiLmMgYi9kcml2ZXJzL21lZGlhL3Bj aS9jeDIzODg1L2N4MjM4ODUtZHZiLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEv cGNpL2N4MjM4ODUvY3gyMzg4NS1kdmIuYw0KKysrIGIvZHJpdmVycy9tZWRp YS9wY2kvY3gyMzg4NS9jeDIzODg1LWR2Yi5jDQpAQCAtMTE1NSw3ICsxMTU1 LDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXJfY2lfbWFjKHN0cnVjdCBj eA0KIAkJc3AyX2NvbmZpZy5wcml2ID0gcG9ydDsNCiAJCXNwMl9jb25maWcu Y2lfY29udHJvbCA9IGN4MjM4ODVfc3AyX2NpX2N0cmw7DQogCQltZW1zZXQo JmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0J CXN0cnNjcHkoaW5mby50eXBlLCAic3AyIiwgSTJDX05BTUVfU0laRSk7DQor CQlzdHJhY3B5KGluZm8udHlwZSwgInNwMiIpOw0KIAkJaW5mby5hZGRyID0g MHg0MDsNCiAJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzcDJfY29uZmlnOw0K IAkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCkBAIC0xODIyLDcgKzE4 MjIsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4 NV90DQogCQljYXNlIDE6DQogCQkJLyogYXR0YWNoIGRlbW9kICsgdHVuZXIg Y29tYm8gKi8NCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihpbmZvKSk7 DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJ0ZGExMDA3MV9jeDI0MTE4Iiwg STJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJ0ZGEx MDA3MV9jeDI0MTE4Iik7DQogCQkJaW5mby5hZGRyID0gMHgwNTsNCiAJCQlp bmZvLnBsYXRmb3JtX2RhdGEgPSAmdGRhMTAwNzFfcGRhdGE7DQogCQkJcmVx dWVzdF9tb2R1bGUoInRkYTEwMDcxIik7DQpAQCAtMTgzOSw3ICsxODM5LDcg QEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0K IAkJCS8qIGF0dGFjaCBTRUMgKi8NCiAJCQlhODI5M19wZGF0YS5kdmJfZnJv bnRlbmQgPSBmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCQltZW1zZXQoJmluZm8s IDAsIHNpemVvZihpbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJh ODI5MyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBl LCAiYTgyOTMiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDBiOw0KIAkJCWluZm8u cGxhdGZvcm1fZGF0YSA9ICZhODI5M19wZGF0YTsNCiAJCQlyZXF1ZXN0X21v ZHVsZSgiYTgyOTMiKTsNCkBAIC0xODYwLDcgKzE4NjAsNyBAQCBzdGF0aWMg aW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJc2kyMTY1 X3BkYXRhLmNoaXBfbW9kZSA9IFNJMjE2NV9NT0RFX1BMTF9YVEFMOw0KIAkJ CXNpMjE2NV9wZGF0YS5yZWZfZnJlcV9oeiA9IDE2MDAwMDAwOw0KIAkJCW1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykp Ow0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY1IiwgSTJDX05BTUVf U0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNjUiKTsNCiAJ CQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9 ICZzaTIxNjVfcGRhdGE7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBl KTsNCkBAIC0xODk0LDcgKzE4OTQsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdp c3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogDQogCQkvKiBhdHRhY2ggZGVtb2Qg KyB0dW5lciBjb21ibyAqLw0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yo aW5mbykpOw0KLQkJc3Ryc2NweShpbmZvLnR5cGUsICJ0ZGExMDA3MV9jeDI0 MTE4IiwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwg InRkYTEwMDcxX2N4MjQxMTgiKTsNCiAJCWluZm8uYWRkciA9IDB4MDU7DQog CQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmdGRhMTAwNzFfcGRhdGE7DQogCQly ZXF1ZXN0X21vZHVsZSgidGRhMTAwNzEiKTsNCkBAIC0xOTExLDcgKzE5MTEs NyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90 DQogCQkvKiBhdHRhY2ggU0VDICovDQogCQlhODI5M19wZGF0YS5kdmJfZnJv bnRlbmQgPSBmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCW1lbXNldCgmaW5mbywg MCwgc2l6ZW9mKGluZm8pKTsNCi0JCXN0cnNjcHkoaW5mby50eXBlLCAiYTgy OTMiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoaW5mby50eXBlLCAi YTgyOTMiKTsNCiAJCWluZm8uYWRkciA9IDB4MGI7DQogCQlpbmZvLnBsYXRm b3JtX2RhdGEgPSAmYTgyOTNfcGRhdGE7DQogCQlyZXF1ZXN0X21vZHVsZSgi YTgyOTMiKTsNCkBAIC0xOTQ0LDcgKzE5NDQsNyBAQCBzdGF0aWMgaW50IGR2 Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJdHMyMDIwX2NvbmZp Zy5mZSA9IGZlMC0+ZHZiLmZyb250ZW5kOw0KIAkJCXRzMjAyMF9jb25maWcu Z2V0X2FnY19wd20gPSBtODhkczMxMDNfZ2V0X2FnY19wd207DQogCQkJbWVt c2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7 DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJ0czIwMjAiLCBJMkNfTkFNRV9T SVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgInRzMjAyMCIpOw0KIAkJ CWluZm8uYWRkciA9IDB4NjA7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0g JnRzMjAyMF9jb25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBl KTsNCkBAIC0xOTgxLDcgKzE5ODEsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdp c3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJc2kyMTY4X2NvbmZpZy5mZSA9 ICZmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCQlzaTIxNjhfY29uZmlnLnRzX21v ZGUgPSBTSTIxNjhfVFNfU0VSSUFMOw0KIAkJCW1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0cnNjcHko aW5mby50eXBlLCAic2kyMTY4IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3Ry YWNweShpbmZvLnR5cGUsICJzaTIxNjgiKTsNCiAJCQlpbmZvLmFkZHIgPSAw eDY0Ow0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNjhfY29uZmln Ow0KIAkJCXJlcXVlc3RfbW9kdWxlKGluZm8udHlwZSk7DQpAQCAtMjAwMCw3 ICsyMDAwLDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4 MjM4ODVfdA0KIAkJCXNpMjE1N19jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9u dGVuZDsNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCW1l bXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykp Ow0KLQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVf U0laRSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJ CQlpbmZvLmFkZHIgPSAweDYwOw0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9 ICZzaTIxNTdfY29uZmlnOw0KIAkJCXJlcXVlc3RfbW9kdWxlKGluZm8udHlw ZSk7DQpAQCAtMjAyOCw3ICsyMDI4LDcgQEAgc3RhdGljIGludCBkdmJfcmVn aXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJc2kyMTY4X2NvbmZpZy5mZSA9 ICZmZTAtPmR2Yi5mcm9udGVuZDsNCiAJCXNpMjE2OF9jb25maWcudHNfbW9k ZSA9IFNJMjE2OF9UU19QQVJBTExFTDsNCiAJCW1lbXNldCgmaW5mbywgMCwg c2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJc3Ryc2NweShp bmZvLnR5cGUsICJzaTIxNjgiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0cmFj cHkoaW5mby50eXBlLCAic2kyMTY4Iik7DQogCQlpbmZvLmFkZHIgPSAweDY0 Ow0KIAkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNpMjE2OF9jb25maWc7DQog CQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTIwNDYsNyArMjA0 Niw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIzODg1 X3QNCiAJCXNpMjE1N19jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9udGVuZDsN CiAJCXNpMjE1N19jb25maWcuaWZfcG9ydCA9IDE7DQogCQltZW1zZXQoJmlu Zm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCXN0 cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0laRSk7DQor CQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE1NyIpOw0KIAkJaW5mby5hZGRy ID0gMHg2MDsNCiAJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNTdfY29u ZmlnOw0KIAkJcmVxdWVzdF9tb2R1bGUoaW5mby50eXBlKTsNCkBAIC0yMDc2 LDcgKzIwNzYsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3Qg Y3gyMzg4NV90DQogCQl0czIwMjBfY29uZmlnLmZlID0gZmUwLT5kdmIuZnJv bnRlbmQ7DQogCQl0czIwMjBfY29uZmlnLmdldF9hZ2NfcHdtID0gbTg4ZHMz MTAzX2dldF9hZ2NfcHdtOw0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yo c3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCQlzdHJzY3B5KGluZm8udHlw ZSwgInRzMjAyMCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZv LnR5cGUsICJ0czIwMjAiKTsNCiAJCWluZm8uYWRkciA9IDB4NjA7DQogCQlp bmZvLnBsYXRmb3JtX2RhdGEgPSAmdHMyMDIwX2NvbmZpZzsNCiAJCXJlcXVl c3RfbW9kdWxlKGluZm8udHlwZSk7DQpAQCAtMjEyNSw3ICsyMTI1LDcgQEAg c3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJ fQ0KIA0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoaW5mbykpOw0KLQkJ c3Ryc2NweShpbmZvLnR5cGUsICJtODhkczMxMDMiLCBJMkNfTkFNRV9TSVpF KTsNCisJCXN0cmFjcHkoaW5mby50eXBlLCAibTg4ZHMzMTAzIik7DQogCQlp bmZvLmFkZHIgPSAweDY4Ow0KIAkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJm04 OGRzMzEwM19wZGF0YTsNCiAJCXJlcXVlc3RfbW9kdWxlKGluZm8udHlwZSk7 DQpAQCAtMjE0NSw3ICsyMTQ1LDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0 ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJdHMyMDIwX2NvbmZpZy5mZSA9IGZl MC0+ZHZiLmZyb250ZW5kOw0KIAkJdHMyMDIwX2NvbmZpZy5nZXRfYWdjX3B3 bSA9IG04OGRzMzEwM19nZXRfYWdjX3B3bTsNCiAJCW1lbXNldCgmaW5mbywg MCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJc3Ryc2Nw eShpbmZvLnR5cGUsICJ0czIwMjAiLCBJMkNfTkFNRV9TSVpFKTsNCisJCXN0 cmFjcHkoaW5mby50eXBlLCAidHMyMDIwIik7DQogCQlpbmZvLmFkZHIgPSAw eDYwOw0KIAkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnRzMjAyMF9jb25maWc7 DQogCQlyZXF1ZXN0X21vZHVsZShpbmZvLnR5cGUpOw0KQEAgLTIxOTAsNyAr MjE5MCw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIz ODg1X3QNCiAJCXNpMjE2OF9jb25maWcuaTJjX2FkYXB0ZXIgPSAmYWRhcHRl cjsNCiAJCXNpMjE2OF9jb25maWcuZmUgPSAmZmUwLT5kdmIuZnJvbnRlbmQ7 DQogCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJk X2luZm8pKTsNCi0JCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTY4IiwgSTJD X05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE2OCIp Ow0KIAkJaW5mby5hZGRyID0gMHg2NDsNCiAJCWluZm8ucGxhdGZvcm1fZGF0 YSA9ICZzaTIxNjhfY29uZmlnOw0KIAkJcmVxdWVzdF9tb2R1bGUoaW5mby50 eXBlKTsNCkBAIC0yMjA4LDcgKzIyMDgsNyBAQCBzdGF0aWMgaW50IGR2Yl9y ZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQlzaTIxNTdfY29uZmlnLmZl ID0gZmUwLT5kdmIuZnJvbnRlbmQ7DQogCQlzaTIxNTdfY29uZmlnLmlmX3Bv cnQgPSAxOw0KIAkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGky Y19ib2FyZF9pbmZvKSk7DQotCQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1 NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJc3RyYWNweShpbmZvLnR5cGUsICJz aTIxNTciKTsNCiAJCWluZm8uYWRkciA9IDB4NjA7DQogCQlpbmZvLnBsYXRm b3JtX2RhdGEgPSAmc2kyMTU3X2NvbmZpZzsNCiAJCXJlcXVlc3RfbW9kdWxl KGluZm8udHlwZSk7DQpAQCAtMjI0MSw3ICsyMjQxLDcgQEAgc3RhdGljIGlu dCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJCS8qIGF0dGFj aCBTRUMgKi8NCiAJCQlhODI5M19wZGF0YS5kdmJfZnJvbnRlbmQgPSBmZTAt PmR2Yi5mcm9udGVuZDsNCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihp bmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJhODI5MyIsIEkyQ19O QU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBlLCAiYTgyOTMiKTsN CiAJCQlpbmZvLmFkZHIgPSAweDBiOw0KIAkJCWluZm8ucGxhdGZvcm1fZGF0 YSA9ICZhODI5M19wZGF0YTsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiYTgyOTMi KTsNCkBAIC0yMjU4LDcgKzIyNTgsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdp c3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJbWVtc2V0KCZtODhyczYwMDB0 X2NvbmZpZywgMCwgc2l6ZW9mKG04OHJzNjAwMHRfY29uZmlnKSk7DQogCQkJ bTg4cnM2MDAwdF9jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9udGVuZDsNCiAJ CQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2lu Zm8pKTsNCi0JCQlzdHJzY3B5KGluZm8udHlwZSwgIm04OHJzNjAwMHQiLCBJ MkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgIm04OHJz NjAwMHQiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDIxOw0KIAkJCWluZm8ucGxh dGZvcm1fZGF0YSA9ICZtODhyczYwMDB0X2NvbmZpZzsNCiAJCQlyZXF1ZXN0 X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0KQEAgLTIyODMsNyArMjI4Myw3 IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIzODg1X3QN CiAJCQlzaTIxNjhfY29uZmlnLmZlID0gJmZlMC0+ZHZiLmZyb250ZW5kOw0K IAkJCXNpMjE2OF9jb25maWcudHNfbW9kZSA9IFNJMjE2OF9UU19TRVJJQUw7 DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2Fy ZF9pbmZvKSk7DQotCQkJc3Ryc2NweShpbmZvLnR5cGUsICJzaTIxNjgiLCBJ MkNfTkFNRV9TSVpFKTsNCisJCQlzdHJhY3B5KGluZm8udHlwZSwgInNpMjE2 OCIpOw0KIAkJCWluZm8uYWRkciA9IDB4NjQ7DQogCQkJaW5mby5wbGF0Zm9y bV9kYXRhID0gJnNpMjE2OF9jb25maWc7DQogCQkJcmVxdWVzdF9tb2R1bGUo IiVzIiwgaW5mby50eXBlKTsNCkBAIC0yMzAxLDcgKzIzMDEsNyBAQCBzdGF0 aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1Y3QgY3gyMzg4NV90DQogCQkJc2ky MTU3X2NvbmZpZy5mZSA9IGZlMC0+ZHZiLmZyb250ZW5kOw0KIAkJCXNpMjE1 N19jb25maWcuaWZfcG9ydCA9IDE7DQogCQkJbWVtc2V0KCZpbmZvLCAwLCBz aXplb2Yoc3RydWN0IGkyY19ib2FyZF9pbmZvKSk7DQotCQkJc3Ryc2NweShp bmZvLnR5cGUsICJzaTIxNTciLCBJMkNfTkFNRV9TSVpFKTsNCisJCQlzdHJh Y3B5KGluZm8udHlwZSwgInNpMjE1NyIpOw0KIAkJCWluZm8uYWRkciA9IDB4 NjA7DQogCQkJaW5mby5wbGF0Zm9ybV9kYXRhID0gJnNpMjE1N19jb25maWc7 DQogCQkJcmVxdWVzdF9tb2R1bGUoIiVzIiwgaW5mby50eXBlKTsNCkBAIC0y MzM2LDcgKzIzMzYsNyBAQCBzdGF0aWMgaW50IGR2Yl9yZWdpc3RlcihzdHJ1 Y3QgY3gyMzg4NV90DQogCQkJc2kyMTY4X2NvbmZpZy5mZSA9ICZmZTAtPmR2 Yi5mcm9udGVuZDsNCiAJCQlzaTIxNjhfY29uZmlnLnRzX21vZGUgPSBTSTIx NjhfVFNfU0VSSUFMOw0KIAkJCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKHN0 cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0KLQkJCXN0cnNjcHkoaW5mby50eXBl LCAic2kyMTY4IiwgSTJDX05BTUVfU0laRSk7DQorCQkJc3RyYWNweShpbmZv LnR5cGUsICJzaTIxNjgiKTsNCiAJCQlpbmZvLmFkZHIgPSAweDY0Ow0KIAkJ CWluZm8ucGxhdGZvcm1fZGF0YSA9ICZzaTIxNjhfY29uZmlnOw0KIAkJCXJl cXVlc3RfbW9kdWxlKCIlcyIsIGluZm8udHlwZSk7DQpAQCAtMjM1NCw3ICsy MzU0LDcgQEAgc3RhdGljIGludCBkdmJfcmVnaXN0ZXIoc3RydWN0IGN4MjM4 ODVfdA0KIAkJCXNpMjE1N19jb25maWcuZmUgPSBmZTAtPmR2Yi5mcm9udGVu ZDsNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCW1lbXNl dCgmaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBpMmNfYm9hcmRfaW5mbykpOw0K LQkJCXN0cnNjcHkoaW5mby50eXBlLCAic2kyMTU3IiwgSTJDX05BTUVfU0la RSk7DQorCQkJc3RyYWNweShpbmZvLnR5cGUsICJzaTIxNTciKTsNCiAJCQlp bmZvLmFkZHIgPSAweDYwOw0KIAkJCWluZm8ucGxhdGZvcm1fZGF0YSA9ICZz aTIxNTdfY29uZmlnOw0KIAkJCXJlcXVlc3RfbW9kdWxlKCIlcyIsIGluZm8u dHlwZSk7DQpAQCAtMjM4Myw3ICsyMzgzLDcgQEAgc3RhdGljIGludCBkdmJf cmVnaXN0ZXIoc3RydWN0IGN4MjM4ODVfdA0KIAkJCXNpMjE2OF9jb25maWcu ZmUgPSAmZmUwLT5kdmIuZnJvbnRlbmQ7DQogCQkJc2kyMTY4X2NvbmZpZy50 c19tb2RlID0gU0kyMTY4X1RTX1NFUklBTDsNCiAJCQltZW1zZXQoJmluZm8s IDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCQlzdHJz Y3B5KGluZm8udHlwZSwgInNpMjE2OCIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJ CXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTY4Iik7DQogCQkJaW5mby5hZGRy ID0gMHg2NjsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTY4X2Nv bmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0K QEAgLTI0MDEsNyArMjQwMSw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVy KHN0cnVjdCBjeDIzODg1X3QNCiAJCQlzaTIxNTdfY29uZmlnLmZlID0gZmUw LT5kdmIuZnJvbnRlbmQ7DQogCQkJc2kyMTU3X2NvbmZpZy5pZl9wb3J0ID0g MTsNCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2Jv YXJkX2luZm8pKTsNCi0JCQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIs IEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBlLCAic2ky MTU3Iik7DQogCQkJaW5mby5hZGRyID0gMHg2MjsNCiAJCQlpbmZvLnBsYXRm b3JtX2RhdGEgPSAmc2kyMTU3X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVs ZSgiJXMiLCBpbmZvLnR5cGUpOw0KQEAgLTI0NDMsNyArMjQ0Myw3IEBAIHN0 YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIzODg1X3QNCiAJCQlz aTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCXNpMjE1N19jb25maWcu aW52ZXJzaW9uID0gMTsNCiAJCQltZW1zZXQoJmluZm8sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCQlzdHJzY3B5KGluZm8udHlw ZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5m by50eXBlLCAic2kyMTU3Iik7DQogCQkJaW5mby5hZGRyID0gMHg2MDsNCiAJ CQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3X2NvbmZpZzsNCiAJCQly ZXF1ZXN0X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0KQEAgLTI0NzksNyAr MjQ3OSw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVyKHN0cnVjdCBjeDIz ODg1X3QNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQgPSAxOw0KIAkJCXNp MjE1N19jb25maWcuaW52ZXJzaW9uID0gMTsNCiAJCQltZW1zZXQoJmluZm8s IDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8pKTsNCi0JCQlzdHJz Y3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1FX1NJWkUpOw0KKwkJ CXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTU3Iik7DQogCQkJaW5mby5hZGRy ID0gMHg2MjsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEgPSAmc2kyMTU3X2Nv bmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBpbmZvLnR5cGUpOw0K QEAgLTI1MTksNyArMjUxOSw3IEBAIHN0YXRpYyBpbnQgZHZiX3JlZ2lzdGVy KHN0cnVjdCBjeDIzODg1X3QNCiAJCQlzaTIxNTdfY29uZmlnLmlmX3BvcnQg PSAxOw0KIAkJCXNpMjE1N19jb25maWcuaW52ZXJzaW9uID0gMTsNCiAJCQlt ZW1zZXQoJmluZm8sIDAsIHNpemVvZihzdHJ1Y3QgaTJjX2JvYXJkX2luZm8p KTsNCi0JCQlzdHJzY3B5KGluZm8udHlwZSwgInNpMjE1NyIsIEkyQ19OQU1F X1NJWkUpOw0KKwkJCXN0cmFjcHkoaW5mby50eXBlLCAic2kyMTU3Iik7DQog CQkJaW5mby5hZGRyID0gMHg2MDsNCiAJCQlpbmZvLnBsYXRmb3JtX2RhdGEg PSAmc2kyMTU3X2NvbmZpZzsNCiAJCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBp bmZvLnR5cGUpOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvczM5MC9zY3NpL3pm Y3BfZmMuYyBiL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZmMuYw0KLS0tIGEv ZHJpdmVycy9zMzkwL3Njc2kvemZjcF9mYy5jDQorKysgYi9kcml2ZXJzL3Mz OTAvc2NzaS96ZmNwX2ZjLmMNCkBAIC04ODIsOCArODgyLDcgQEAgc3RhdGlj IHZvaWQgemZjcF9mY19yc3BuKHN0cnVjdCB6ZmNwX2FkYQ0KIAl6ZmNwX2Zj X2N0X25zX2luaXQoJnJzcG5fcmVxLT5jdF9oZHIsIEZDX05TX1JTUE5fSUQs DQogCQkJICAgRkNfU1lNQk9MSUNfTkFNRV9TSVpFKTsNCiAJaHRvbjI0KHJz cG5fcmVxLT5yc3BuLmZyX2ZpZC5mcF9maWQsIGZjX2hvc3RfcG9ydF9pZChz aG9zdCkpOw0KLQlsZW4gPSBzdHJsY3B5KHJzcG5fcmVxLT5yc3BuLmZyX25h bWUsIGZjX2hvc3Rfc3ltYm9saWNfbmFtZShzaG9zdCksDQotCQkgICAgICBG Q19TWU1CT0xJQ19OQU1FX1NJWkUpOw0KKwlsZW4gPSBzdHJhY3B5KHJzcG5f cmVxLT5yc3BuLmZyX25hbWUsIGZjX2hvc3Rfc3ltYm9saWNfbmFtZShzaG9z dCkpOw0KIAlyc3BuX3JlcS0+cnNwbi5mcl9uYW1lX2xlbiA9IGxlbjsNCiAN CiAJc2dfaW5pdF9vbmUoJmZjX3JlcS0+c2dfcmVxLCByc3BuX3JlcSwgc2l6 ZW9mKCpyc3BuX3JlcSkpOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEv ZHZiLWZyb250ZW5kcy9tODhkczMxMDMuYyBiL2RyaXZlcnMvbWVkaWEvZHZi LWZyb250ZW5kcy9tODhkczMxMDMuYw0KLS0tIGEvZHJpdmVycy9tZWRpYS9k dmItZnJvbnRlbmRzL204OGRzMzEwMy5jDQorKysgYi9kcml2ZXJzL21lZGlh L2R2Yi1mcm9udGVuZHMvbTg4ZHMzMTAzLmMNCkBAIC0xMjc0LDcgKzEyNzQs NyBAQCBzdHJ1Y3QgZHZiX2Zyb250ZW5kICptODhkczMxMDNfYXR0YWNoKGNv DQogCXBkYXRhLmF0dGFjaF9pbl91c2UgPSB0cnVlOw0KIA0KIAltZW1zZXQo JmJvYXJkX2luZm8sIDAsIHNpemVvZihib2FyZF9pbmZvKSk7DQotCXN0cnNj cHkoYm9hcmRfaW5mby50eXBlLCAibTg4ZHMzMTAzIiwgSTJDX05BTUVfU0la RSk7DQorCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCAibTg4ZHMzMTAzIik7 DQogCWJvYXJkX2luZm8uYWRkciA9IGNmZy0+aTJjX2FkZHI7DQogCWJvYXJk X2luZm8ucGxhdGZvcm1fZGF0YSA9ICZwZGF0YTsNCiAJY2xpZW50ID0gaTJj X25ld19kZXZpY2UoaTJjLCAmYm9hcmRfaW5mbyk7DQpkaWZmIC11IC1wIGEv ZHJpdmVycy9tZWRpYS9wY2kvYnQ4eHgvYnR0di1pbnB1dC5jIGIvZHJpdmVy cy9tZWRpYS9wY2kvYnQ4eHgvYnR0di1pbnB1dC5jDQotLS0gYS9kcml2ZXJz L21lZGlhL3BjaS9idDh4eC9idHR2LWlucHV0LmMNCisrKyBiL2RyaXZlcnMv bWVkaWEvcGNpL2J0OHh4L2J0dHYtaW5wdXQuYw0KQEAgLTM3Myw3ICszNzMs NyBAQCB2b2lkIGluaXRfYnR0dl9pMmNfaXIoc3RydWN0IGJ0dHYgKmJ0dikN CiANCiAJbWVtc2V0KCZpbmZvLCAwLCBzaXplb2Yoc3RydWN0IGkyY19ib2Fy ZF9pbmZvKSk7DQogCW1lbXNldCgmYnR2LT5pbml0X2RhdGEsIDAsIHNpemVv ZihidHYtPmluaXRfZGF0YSkpOw0KLQlzdHJzY3B5KGluZm8udHlwZSwgImly X3ZpZGVvIiwgSTJDX05BTUVfU0laRSk7DQorCXN0cmFjcHkoaW5mby50eXBl LCAiaXJfdmlkZW8iKTsNCiANCiAJc3dpdGNoIChidHYtPmMudHlwZSkgew0K IAljYXNlIEJUVFZfQk9BUkRfUFY5NTE6DQpkaWZmIC11IC1wIGEvZHJpdmVy cy9tZWRpYS91c2IvcHZydXNiMi9wdnJ1c2IyLWkyYy1jb3JlLmMgYi9kcml2 ZXJzL21lZGlhL3VzYi9wdnJ1c2IyL3B2cnVzYjItaTJjLWNvcmUuYw0KLS0t IGEvZHJpdmVycy9tZWRpYS91c2IvcHZydXNiMi9wdnJ1c2IyLWkyYy1jb3Jl LmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvdXNiL3B2cnVzYjIvcHZydXNiMi1p MmMtY29yZS5jDQpAQCAtNTYxLDcgKzU2MSw3IEBAIHN0YXRpYyB2b2lkIHB2 cjJfaTJjX3JlZ2lzdGVyX2lyKHN0cnVjdA0KIAkJLyogSVIgUmVjZWl2ZXIg Ki8NCiAJCWluZm8uYWRkciAgICAgICAgICA9IDB4MTg7DQogCQlpbmZvLnBs YXRmb3JtX2RhdGEgPSBpbml0X2RhdGE7DQotCQlzdHJzY3B5KGluZm8udHlw ZSwgImlyX3ZpZGVvIiwgSTJDX05BTUVfU0laRSk7DQorCQlzdHJhY3B5KGlu Zm8udHlwZSwgImlyX3ZpZGVvIik7DQogCQlwdnIyX3RyYWNlKFBWUjJfVFJB Q0VfSU5GTywgIkJpbmRpbmcgJXMgdG8gaTJjIGFkZHJlc3MgMHglMDJ4LiIs DQogCQkJICAgaW5mby50eXBlLCBpbmZvLmFkZHIpOw0KIAkJaTJjX25ld19k ZXZpY2UoJmhkdy0+aTJjX2FkYXAsICZpbmZvKTsNCkBAIC01NzYsNyArNTc2 LDcgQEAgc3RhdGljIHZvaWQgcHZyMl9pMmNfcmVnaXN0ZXJfaXIoc3RydWN0 DQogCQkvKiBJUiBUcmFuc2NlaXZlciAqLw0KIAkJaW5mby5hZGRyID0gMHg3 MTsNCiAJCWluZm8ucGxhdGZvcm1fZGF0YSA9IGluaXRfZGF0YTsNCi0JCXN0 cnNjcHkoaW5mby50eXBlLCAiaXJfejhmMDgxMV9oYXVwIiwgSTJDX05BTUVf U0laRSk7DQorCQlzdHJhY3B5KGluZm8udHlwZSwgImlyX3o4ZjA4MTFfaGF1 cCIpOw0KIAkJcHZyMl90cmFjZShQVlIyX1RSQUNFX0lORk8sICJCaW5kaW5n ICVzIHRvIGkyYyBhZGRyZXNzIDB4JTAyeC4iLA0KIAkJCSAgIGluZm8udHlw ZSwgaW5mby5hZGRyKTsNCiAJCWkyY19uZXdfZGV2aWNlKCZoZHctPmkyY19h ZGFwLCAmaW5mbyk7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9zY3NpL2JmYS9i ZmFfZmNzX2xwb3J0LmMgYi9kcml2ZXJzL3Njc2kvYmZhL2JmYV9mY3NfbHBv cnQuYw0KLS0tIGEvZHJpdmVycy9zY3NpL2JmYS9iZmFfZmNzX2xwb3J0LmMN CisrKyBiL2RyaXZlcnMvc2NzaS9iZmEvYmZhX2Zjc19scG9ydC5jDQpAQCAt MjY1NSw4ICsyNjU1LDggQEAgYmZhX2Zjc19mZG1pX2dldF9oYmFhdHRyKHN0 cnVjdCBiZmFfZmNzXw0KIAliZmFfZmNzX2ZkbWlfZ2V0X3BvcnRhdHRyKGZk bWksICZmY3NfcG9ydF9hdHRyKTsNCiAJaGJhX2F0dHItPm1heF9jdF9weWxk ID0gZmNzX3BvcnRfYXR0ci5tYXhfZnJtX3NpemU7DQogDQotCXN0cmxjcHko aGJhX2F0dHItPm5vZGVfc3ltX25hbWUuc3ltbmFtZSwNCi0JCXBvcnQtPnBv cnRfY2ZnLm5vZGVfc3ltX25hbWUuc3ltbmFtZSwgQkZBX1NZTU5BTUVfTUFY TEVOKTsNCisJc3RyYWNweShoYmFfYXR0ci0+bm9kZV9zeW1fbmFtZS5zeW1u YW1lLA0KKwkJcG9ydC0+cG9ydF9jZmcubm9kZV9zeW1fbmFtZS5zeW1uYW1l KTsNCiAJc3RyY3B5KGhiYV9hdHRyLT52ZW5kb3JfaW5mbywgIlFMb2dpYyIp Ow0KIAloYmFfYXR0ci0+bnVtX3BvcnRzID0NCiAJCWNwdV90b19iZTMyKGJm YV9pb2NfZ2V0X25wb3J0cygmcG9ydC0+ZmNzLT5iZmEtPmlvYykpOw0KQEAg LTI3NDAsOCArMjc0MCw4IEBAIGJmYV9mY3NfZmRtaV9nZXRfcG9ydGF0dHIo c3RydWN0IGJmYV9mY3MNCiAJcG9ydF9hdHRyLT5ub2RlX25hbWUgPSBiZmFf ZmNzX2xwb3J0X2dldF9ud3duKHBvcnQpOw0KIAlwb3J0X2F0dHItPnBvcnRf bmFtZSA9IGJmYV9mY3NfbHBvcnRfZ2V0X3B3d24ocG9ydCk7DQogDQotCXN0 cmxjcHkocG9ydF9hdHRyLT5wb3J0X3N5bV9uYW1lLnN5bW5hbWUsDQotCQli ZmFfZmNzX2xwb3J0X2dldF9wc3ltX25hbWUocG9ydCkuc3ltbmFtZSwgQkZB X1NZTU5BTUVfTUFYTEVOKTsNCisJc3RyYWNweShwb3J0X2F0dHItPnBvcnRf c3ltX25hbWUuc3ltbmFtZSwNCisJCWJmYV9mY3NfbHBvcnRfZ2V0X3BzeW1f bmFtZShwb3J0KS5zeW1uYW1lKTsNCiAJYmZhX2Zjc19scG9ydF9nZXRfYXR0 cihwb3J0LCAmbHBvcnRfYXR0cik7DQogCXBvcnRfYXR0ci0+cG9ydF90eXBl ID0gY3B1X3RvX2JlMzIobHBvcnRfYXR0ci5wb3J0X3R5cGUpOw0KIAlwb3J0 X2F0dHItPnNjb3MgPSBwcG9ydF9hdHRyLmNvc19zdXBwb3J0ZWQ7DQpkaWZm IC11IC1wIGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfY29uZmlnZnMu YyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2NvbmZpZ2ZzLmMNCi0t LSBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2NvbmZpZ2ZzLmMNCisr KyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2NvbmZpZ2ZzLmMNCkBA IC02MTgsNyArNjE4LDcgQEAgc3RhdGljIHZvaWQgZGV2X3NldF90MTBfd3du X21vZGVsX2FsaWFzKA0KIAkgKiBoZXJlIHdpdGhvdXQgcG90ZW50aWFsbHkg YnJlYWtpbmcgZXhpc3Rpbmcgc2V0dXBzLCBzbyBjb250aW51ZSB0bw0KIAkg KiB0cnVuY2F0ZSBvbmUgYnl0ZSBzaG9ydGVyIHRoYW4gd2hhdCBjYW4gYmUg Y2FycmllZCBpbiBJTlFVSVJZLg0KIAkgKi8NCi0Jc3RybGNweShkZXYtPnQx MF93d24ubW9kZWwsIGNvbmZpZ25hbWUsIElOUVVJUllfTU9ERUxfTEVOKTsN CisJc3RyYWNweShkZXYtPnQxMF93d24ubW9kZWwsIGNvbmZpZ25hbWUpOw0K IH0NCiANCiBzdGF0aWMgc3NpemVfdCBlbXVsYXRlX21vZGVsX2FsaWFzX3N0 b3JlKHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSwNCmRpZmYgLXUgLXAgYS9k cml2ZXJzL21lZGlhL3VzYi9kdmItdXNiL2R3MjEwMi5jIGIvZHJpdmVycy9t ZWRpYS91c2IvZHZiLXVzYi9kdzIxMDIuYw0KLS0tIGEvZHJpdmVycy9tZWRp YS91c2IvZHZiLXVzYi9kdzIxMDIuYw0KKysrIGIvZHJpdmVycy9tZWRpYS91 c2IvZHZiLXVzYi9kdzIxMDIuYw0KQEAgLTE1ODYsNyArMTU4Niw3IEBAIHN0 YXRpYyBpbnQgdHRfczJfNDYwMF9mcm9udGVuZF9hdHRhY2goc3QNCiAJbTg4 ZHMzMTAzX3BkYXRhLmxuYl9odl9wb2wgPSAxOw0KIAltODhkczMxMDNfcGRh dGEubG5iX2VuX3BvbCA9IDA7DQogCW1lbXNldCgmYm9hcmRfaW5mbywgMCwg c2l6ZW9mKGJvYXJkX2luZm8pKTsNCi0Jc3Ryc2NweShib2FyZF9pbmZvLnR5 cGUsICJtODhkczMxMDMiLCBJMkNfTkFNRV9TSVpFKTsNCisJc3RyYWNweShi b2FyZF9pbmZvLnR5cGUsICJtODhkczMxMDMiKTsNCiAJYm9hcmRfaW5mby5h ZGRyID0gMHg2ODsNCiAJYm9hcmRfaW5mby5wbGF0Zm9ybV9kYXRhID0gJm04 OGRzMzEwM19wZGF0YTsNCiAJcmVxdWVzdF9tb2R1bGUoIm04OGRzMzEwMyIp Ow0KQEAgLTE2MDUsNyArMTYwNSw3IEBAIHN0YXRpYyBpbnQgdHRfczJfNDYw MF9mcm9udGVuZF9hdHRhY2goc3QNCiAJLyogYXR0YWNoIHR1bmVyICovDQog CXRzMjAyMF9jb25maWcuZmUgPSBhZGFwLT5mZV9hZGFwWzBdLmZlOw0KIAlt ZW1zZXQoJmJvYXJkX2luZm8sIDAsIHNpemVvZihib2FyZF9pbmZvKSk7DQot CXN0cnNjcHkoYm9hcmRfaW5mby50eXBlLCAidHMyMDIyIiwgSTJDX05BTUVf U0laRSk7DQorCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCAidHMyMDIyIik7 DQogCWJvYXJkX2luZm8uYWRkciA9IDB4NjA7DQogCWJvYXJkX2luZm8ucGxh dGZvcm1fZGF0YSA9ICZ0czIwMjBfY29uZmlnOw0KIAlyZXF1ZXN0X21vZHVs ZSgidHMyMDIwIik7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9zMzkwL2NoYXIv c2NscF9mdHAuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfZnRwLmMNCi0t LSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfZnRwLmMNCisrKyBiL2RyaXZl cnMvczM5MC9jaGFyL3NjbHBfZnRwLmMNCkBAIC0xMTQsOCArMTE0LDcgQEAg c3RhdGljIGludCBzY2xwX2Z0cF9ldDcoY29uc3Qgc3RydWN0IGhtYw0KIAlz Y2NiLT5ldmJ1Zi5tZGQuZnRwLmxlbmd0aCA9IGZ0cC0+bGVuOw0KIAlzY2Ni LT5ldmJ1Zi5tZGQuZnRwLmJ1ZmFkZHIgPSB2aXJ0X3RvX3BoeXMoZnRwLT5i dWYpOw0KIA0KLQlsZW4gPSBzdHJsY3B5KHNjY2ItPmV2YnVmLm1kZC5mdHAu ZmlkZW50LCBmdHAtPmZuYW1lLA0KLQkJICAgICAgSE1DRFJWX0ZUUF9GSURF TlRfTUFYKTsNCisJbGVuID0gc3RyYWNweShzY2NiLT5ldmJ1Zi5tZGQuZnRw LmZpZGVudCwgZnRwLT5mbmFtZSk7DQogCWlmIChsZW4gPj0gSE1DRFJWX0ZU UF9GSURFTlRfTUFYKSB7DQogCQlyYyA9IC1FSU5WQUw7DQogCQlnb3RvIG91 dF9mcmVlOw0KZGlmZiAtdSAtcCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jy b2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9maXJtd2FyZS5jIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2Zp cm13YXJlLmMNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29t L2JyY204MDIxMS9icmNtZm1hYy9maXJtd2FyZS5jDQorKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvZmly bXdhcmUuYw0KQEAgLTczMyw4ICs3MzMsNyBAQCBicmNtZl9md19hbGxvY19y ZXF1ZXN0KHUzMiBjaGlwLCB1MzIgY2hpDQogCQlmd25hbWVzW2pdLnBhdGhb MF0gPSAnXDAnOw0KIAkJLyogY2hlY2sgaWYgZmlybXdhcmUgcGF0aCBpcyBw cm92aWRlZCBieSBtb2R1bGUgcGFyYW1ldGVyICovDQogCQlpZiAoYnJjbWZf bXBfZ2xvYmFsLmZpcm13YXJlX3BhdGhbMF0gIT0gJ1wwJykgew0KLQkJCXN0 cmxjcHkoZnduYW1lc1tqXS5wYXRoLCBtcF9wYXRoLA0KLQkJCQlCUkNNRl9G V19OQU1FX0xFTik7DQorCQkJc3RyYWNweShmd25hbWVzW2pdLnBhdGgsIG1w X3BhdGgpOw0KIA0KIAkJCWlmIChlbmQgIT0gJy8nKSB7DQogCQkJCXN0cmxj YXQoZnduYW1lc1tqXS5wYXRoLCAiLyIsDQpkaWZmIC11IC1wIGEvZHJpdmVy cy9uZXQvbmV0Y29uc29sZS5jIGIvZHJpdmVycy9uZXQvbmV0Y29uc29sZS5j DQotLS0gYS9kcml2ZXJzL25ldC9uZXRjb25zb2xlLmMNCisrKyBiL2RyaXZl cnMvbmV0L25ldGNvbnNvbGUuYw0KQEAgLTE3Nyw3ICsxNzcsNyBAQCBzdGF0 aWMgc3RydWN0IG5ldGNvbnNvbGVfdGFyZ2V0ICphbGxvY19wDQogCQlnb3Rv IGZhaWw7DQogDQogCW50LT5ucC5uYW1lID0gIm5ldGNvbnNvbGUiOw0KLQlz dHJsY3B5KG50LT5ucC5kZXZfbmFtZSwgImV0aDAiLCBJRk5BTVNJWik7DQor CXN0cmFjcHkobnQtPm5wLmRldl9uYW1lLCAiZXRoMCIpOw0KIAludC0+bnAu bG9jYWxfcG9ydCA9IDY2NjU7DQogCW50LT5ucC5yZW1vdGVfcG9ydCA9IDY2 NjY7DQogCWV0aF9icm9hZGNhc3RfYWRkcihudC0+bnAucmVtb3RlX21hYyk7 DQpAQCAtNDEzLDcgKzQxMyw3IEBAIHN0YXRpYyBzc2l6ZV90IGRldl9uYW1l X3N0b3JlKHN0cnVjdCBjb24NCiAJCXJldHVybiAtRUlOVkFMOw0KIAl9DQog DQotCXN0cmxjcHkobnQtPm5wLmRldl9uYW1lLCBidWYsIElGTkFNU0laKTsN CisJc3RyYWNweShudC0+bnAuZGV2X25hbWUsIGJ1Zik7DQogDQogCS8qIEdl dCByaWQgb2YgcG9zc2libGUgdHJhaWxpbmcgbmV3bGluZSBmcm9tIGVjaG8o MSkgKi8NCiAJbGVuID0gc3RybmxlbihudC0+bnAuZGV2X25hbWUsIElGTkFN U0laKTsNCkBAIC02MjksNyArNjI5LDcgQEAgc3RhdGljIHN0cnVjdCBjb25m aWdfaXRlbSAqbWFrZV9uZXRjb25zbw0KIAkJcmV0dXJuIEVSUl9QVFIoLUVO T01FTSk7DQogDQogCW50LT5ucC5uYW1lID0gIm5ldGNvbnNvbGUiOw0KLQlz dHJsY3B5KG50LT5ucC5kZXZfbmFtZSwgImV0aDAiLCBJRk5BTVNJWik7DQor CXN0cmFjcHkobnQtPm5wLmRldl9uYW1lLCAiZXRoMCIpOw0KIAludC0+bnAu bG9jYWxfcG9ydCA9IDY2NjU7DQogCW50LT5ucC5yZW1vdGVfcG9ydCA9IDY2 NjY7DQogCWV0aF9icm9hZGNhc3RfYWRkcihudC0+bnAucmVtb3RlX21hYyk7 DQpAQCAtNzA3LDcgKzcwNyw3IEBAIHJlc3RhcnQ6DQogCQlpZiAobnQtPm5w LmRldiA9PSBkZXYpIHsNCiAJCQlzd2l0Y2ggKGV2ZW50KSB7DQogCQkJY2Fz ZSBORVRERVZfQ0hBTkdFTkFNRToNCi0JCQkJc3RybGNweShudC0+bnAuZGV2 X25hbWUsIGRldi0+bmFtZSwgSUZOQU1TSVopOw0KKwkJCQlzdHJhY3B5KG50 LT5ucC5kZXZfbmFtZSwgZGV2LT5uYW1lKTsNCiAJCQkJYnJlYWs7DQogCQkJ Y2FzZSBORVRERVZfUkVMRUFTRToNCiAJCQljYXNlIE5FVERFVl9KT0lOOg0K ZGlmZiAtdSAtcCBhL2RyaXZlcnMvbWVkaWEvdXNiL2R2Yi11c2ItdjIvYW55 c2VlLmMgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiLXYyL2FueXNlZS5j DQotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiLXYyL2FueXNlZS5j DQorKysgYi9kcml2ZXJzL21lZGlhL3VzYi9kdmItdXNiLXYyL2FueXNlZS5j DQpAQCAtNjI5LDcgKzYyOSw3IEBAIHN0YXRpYyBpbnQgYW55c2VlX2FkZF9p MmNfZGV2KHN0cnVjdCBkdmINCiAJCS5wbGF0Zm9ybV9kYXRhID0gcGxhdGZv cm1fZGF0YSwNCiAJfTsNCiANCi0Jc3Ryc2NweShib2FyZF9pbmZvLnR5cGUs IHR5cGUsIEkyQ19OQU1FX1NJWkUpOw0KKwlzdHJhY3B5KGJvYXJkX2luZm8u dHlwZSwgdHlwZSk7DQogDQogCS8qIGZpbmQgZmlyc3QgZnJlZSBjbGllbnQg Ki8NCiAJZm9yIChudW0gPSAwOyBudW0gPCBBTllTRUVfSTJDX0NMSUVOVF9N QVg7IG51bSsrKSB7DQpkaWZmIC11IC1wIGEvZHJpdmVycy9wbGF0Zm9ybS94 ODYvaTJjLW11bHRpLWluc3RhbnRpYXRlLmMgYi9kcml2ZXJzL3BsYXRmb3Jt L3g4Ni9pMmMtbXVsdGktaW5zdGFudGlhdGUuYw0KLS0tIGEvZHJpdmVycy9w bGF0Zm9ybS94ODYvaTJjLW11bHRpLWluc3RhbnRpYXRlLmMNCisrKyBiL2Ry aXZlcnMvcGxhdGZvcm0veDg2L2kyYy1tdWx0aS1pbnN0YW50aWF0ZS5jDQpA QCAtOTEsNyArOTEsNyBAQCBzdGF0aWMgaW50IGkyY19tdWx0aV9pbnN0X3By b2JlKHN0cnVjdCBwDQogDQogCWZvciAoaSA9IDA7IGkgPCBtdWx0aS0+bnVt X2NsaWVudHMgJiYgaW5zdF9kYXRhW2ldLnR5cGU7IGkrKykgew0KIAkJbWVt c2V0KCZib2FyZF9pbmZvLCAwLCBzaXplb2YoYm9hcmRfaW5mbykpOw0KLQkJ c3RybGNweShib2FyZF9pbmZvLnR5cGUsIGluc3RfZGF0YVtpXS50eXBlLCBJ MkNfTkFNRV9TSVpFKTsNCisJCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCBp bnN0X2RhdGFbaV0udHlwZSk7DQogCQlzbnByaW50ZihuYW1lLCBzaXplb2Yo bmFtZSksICIlcy0lcy4lZCIsIG1hdGNoLT5pZCwNCiAJCQkgaW5zdF9kYXRh W2ldLnR5cGUsIGkpOw0KIAkJYm9hcmRfaW5mby5kZXZfbmFtZSA9IG5hbWU7 DQpkaWZmIC11IC1wIGEvZHJpdmVycy9tZWRpYS9kdmItZnJvbnRlbmRzL2N4 ZDI4MjByX2NvcmUuYyBiL2RyaXZlcnMvbWVkaWEvZHZiLWZyb250ZW5kcy9j eGQyODIwcl9jb3JlLmMNCi0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiLWZyb250 ZW5kcy9jeGQyODIwcl9jb3JlLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZi LWZyb250ZW5kcy9jeGQyODIwcl9jb3JlLmMNCkBAIC01MjcsNyArNTI3LDcg QEAgc3RydWN0IGR2Yl9mcm9udGVuZCAqY3hkMjgyMHJfYXR0YWNoKGNvbg0K IAlwZGF0YS5hdHRhY2hfaW5fdXNlID0gdHJ1ZTsNCiANCiAJbWVtc2V0KCZi b2FyZF9pbmZvLCAwLCBzaXplb2YoYm9hcmRfaW5mbykpOw0KLQlzdHJzY3B5 KGJvYXJkX2luZm8udHlwZSwgImN4ZDI4MjByIiwgSTJDX05BTUVfU0laRSk7 DQorCXN0cmFjcHkoYm9hcmRfaW5mby50eXBlLCAiY3hkMjgyMHIiKTsNCiAJ Ym9hcmRfaW5mby5hZGRyID0gY29uZmlnLT5pMmNfYWRkcmVzczsNCiAJYm9h cmRfaW5mby5wbGF0Zm9ybV9kYXRhID0gJnBkYXRhOw0KIAljbGllbnQgPSBp MmNfbmV3X2RldmljZShhZGFwdGVyLCAmYm9hcmRfaW5mbyk7DQo= --8323329-1912653147-1563940466=:2539--