From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (NAM04-MW2-obe.outbound.protection.outlook.com [40.107.101.53]) by mx.groups.io with SMTP id smtpd.web08.23912.1662380119121240375 for ; Mon, 05 Sep 2022 05:15:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@ami.com header.s=selector1 header.b=EhVTOk8F; spf=pass (domain: ami.com, ip: 40.107.101.53, mailfrom: crystallee@ami.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j14gT1C6fBX3z17uqucI7zE11yFq1RfLiIpEQDpGEKNw1nxmoyC/I/C+K8C/mbND/uNuq6NsWbC1PnNfEzFBbSc6Oy766apwspGG2dHGKunegr+DkhT4iMr5hmi/D8GYZ1B0Skq0qiqOw3PD7eWhA98KivOsFIFno2WPVyQX17qu9y1E4McR3UBDZD6xueVrHmr6+tBsdDEn60oqYOZs9hBMWfb/wz4jA+eXzN9rTZVvmyNHZaL3+JHnJqMC1D0x8gtUeDGGPHaoftDCGHVwx9YY6YiOoPzZDmJRFHLD5138PUwwmGXo+qyz3OWpnOcFwxdymysuxJdG+5r8lf6VvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bf4Cyz7/4Lsl3iQypvDSUjjZDFiLwSW7pP30TCZm0ys=; b=OzGrQvuVq0UdA8EMrk0fn8pqNhGcVChXdUY/chRhX82ZPeZwzgN5QEnrX3agd7UaWGvc4BKa2ahjV0W+q2VLf9+As5POgMt/SDzQawjTq/zvGRjZ6DK07UGaxy+HULKBgNa8tFRQcXIgF9JPmPgm3Met/VlpY3L29OoP1b+IkD5B6WzNAwB9EEWjQmj4XYPt8ZwZCkZBLxnqTZ85DYloWcVdJ2Rx55gNoFiAvInchUY9jqpQkqd5THwzLUbJrvwlLG7S9YYfyS9WJNhUHxxc1bDNvmH+TS7rddm5vLDlW1UFSbf99/t80mh1l4DRVQSHpY2l/2xCn02VARGUaKymUA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ami.com; dmarc=pass action=none header.from=ami.com; dkim=pass header.d=ami.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ami.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bf4Cyz7/4Lsl3iQypvDSUjjZDFiLwSW7pP30TCZm0ys=; b=EhVTOk8F1tNGiIexhCphF2IvFhQInriHkBygN3Wh5u/ZI3Vg4f9yNlxSFreYTjkrbJa8mlfQxvng2FxOUsMhQEdjHTgtA8rRFEz6PTtEkWH6OrASEHbR0OyCZar3Fh2wPdgqbqn0hZGYVO9kfhdbuesSs29wqKkZ1ZH7n/5lECQ= Received: from DS7PR10MB5278.namprd10.prod.outlook.com (2603:10b6:5:3a5::9) by SJ0PR10MB4640.namprd10.prod.outlook.com (2603:10b6:a03:2af::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.11; Mon, 5 Sep 2022 12:15:17 +0000 Received: from DS7PR10MB5278.namprd10.prod.outlook.com ([fe80::186c:36fd:63c7:a627]) by DS7PR10MB5278.namprd10.prod.outlook.com ([fe80::186c:36fd:63c7:a627%3]) with mapi id 15.20.5588.018; Mon, 5 Sep 2022 12:15:17 +0000 From: =?utf-8?B?Q3J5c3RhbExlZSBb5p2O5oCh6JCxXQ==?= To: "devel@edk2.groups.io" CC: "isaac.w.oram@intel.com" , "rangasai.v.chaganty@intel.com" , "nathaniel.l.desimone@intel.com" , "gaoliming@byosoft.com.cn" , =?utf-8?B?RGF2aWRIc2llaCBb6Kyd5Z2k5pm6XQ==?= , =?utf-8?B?Q3J5c3RhbExlZSBb5p2O5oCh6JCxXQ==?= Subject: [PATCH v2 1/1] Features/Intel/OutOfBandManagement/AsfFeaturePkg: Add initial package Thread-Topic: [PATCH v2 1/1] Features/Intel/OutOfBandManagement/AsfFeaturePkg: Add initial package Thread-Index: AQHYwSEpN612sKVjEE2w0iYpje4GYQ== Date: Mon, 5 Sep 2022 12:15:17 +0000 Message-ID: <175c6ce10ac73a4f0b60d366bcd67b1511f3ab63.1662378708.git.CrystalLee@ami.com> References: In-Reply-To: Accept-Language: zh-TW, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.36.0.windows.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ami.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c10a6ae2-94ad-4da1-4078-08da8f384bc3 x-ms-traffictypediagnostic: SJ0PR10MB4640:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6KuaxC1QDJkEes9pvkefxFLB3eQFwQqU7WXTNkS1ecqgjxNZp4quJ9imrdzMMeSYWM2J9Xx+QKw1GZnDGTlv3mD43VV0HZyh3oSeRNaG7PcVdr98uvvZrrt8X/vyCDMaT6ztYNnmOReypr2tLvo+NiUmmn+CtghIHqlIiOcSBVo1wx3qmnrm+4MXiMLnAibp25oz4GVdoj7rfAeUtOTn3DUTPLFWHbpgDRXLMQ9gVqBe4ixixdPr1mLVGAxJRlXYFdtMyvXtFH+DJqAmLs9qEIZ96SQifEyZ6s6wMEWeATZHDJmCI1+VUX8e5W2af/5HJxje8k/+17g8md9QSr4jg68RejUpv65fZ+t9Q5HY1Q6KBM8HBcTKWdbHzJokYiGBhkna7UQ54mZ5rfW35Slp1XT+evp8o+BNbDwc+8VfTzkt0EB5VcVyFlwhc2Pn1BRNsRBWhgAX0SAV/ZgDchFHktO2D8QOQ8B+/Q70lG+ggiIuPEfkr5RftBzrTpQLseJ7G/EW33hbIWXUD/2HOe2cUdz6Oaz7FS8nyCeqw7RiYTX5How984ZIiiM9BHJF+/R64V23oBk/PKEmI5OosHipRKNzpRWzMbnjDyfjB1mWz1ui4ExvhpC2fW4A+cq5fBVFUJkEAz+meOHch+bwEblfQjrPWTDbY/9OeN5pQajLPJdV9gQ+HRJsxrqAETvwxUHgQkRBlXd1X2z88WIPLnIex3Zf2rOJ2ifmxiYsb6wlsmLFvMPpUnDR7nR2+CbS/RwxSyPQrjwwzeyPDctwkTYecGsLYqbit124A60TNC6OZpY= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR10MB5278.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(6029001)(4636009)(346002)(136003)(396003)(366004)(39850400004)(376002)(186003)(2616005)(478600001)(6512007)(6486002)(966005)(41300700001)(26005)(71200400001)(6506007)(38070700005)(122000001)(38100700002)(86362001)(83380400001)(5660300002)(85182001)(316002)(40140700001)(19627235002)(2906002)(8936002)(4326008)(8676002)(54906003)(91956017)(66446008)(6916009)(66946007)(66556008)(36756003)(64756008)(76116006)(66476007)(30864003)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SGpza3VLeVk3ZlJqSlAvQVN3a1l2R093TUY1TW9kZUI0QWg3ZnVNRnVoRkNy?= =?utf-8?B?N3p0S3lUeG0xaWU1YUI2dWJiVWZrV3ZEOW9vdWNXNTQ1SDZ3U3ZRQklTcVpa?= =?utf-8?B?dzA3MDRhcmcyamN4Z2RjSzZGRXc0dlRVYjk3ZGpYcFJoaURFSENRcXpjYmpI?= =?utf-8?B?WXpjeHdueWt2NTMwdUFqejBIYUdZZGsvb3RZMDhJeE5TTVphZmJTWlk1S1NH?= =?utf-8?B?cm92KzNYczVOQ3ZUZmJ0MU05YWdPOTZvNmVkdEVkSWY3dGRsSXJzbVZ3UVFI?= =?utf-8?B?bEFZbFc3L3NVTnExT1ExQjZXdENhcVg0dTd1RGFNTURzaEJKQjFpSmJmZjNR?= =?utf-8?B?ek1rU3JRV3VUeXo1RGpITnFqQWNjRFk5QlRpTWpENGF4aVFzVGdYVEptNS9Q?= =?utf-8?B?ZE1McjlEZU5IYjkzdHNOMHJyeXpuSXZPQ1JCc2ZDcHhVdWZLbHptOXE4MkR0?= =?utf-8?B?MnI4enhrWVdIdHlrNTA5SThlODMvejQvdVNGSGpCNEhJZWJCU2pISDk4S2pm?= =?utf-8?B?SWJxa2dCaXAwb3BiYTlPUVc2SEpScEJoU0IxU0prWUN5czI2b3VndDVRN2Rk?= =?utf-8?B?dyszYk1wR1lvcFZuWlNVL2E2UW9HcTBqeFU3b1dGZFV0d3RjMEZLbktpellE?= =?utf-8?B?cWNpQStQZTVVVFlPRDZBRk1zNStnSGJ6eHlzV0tLU2tuTi9jeW9lb1dha08r?= =?utf-8?B?Z29idzlRcUI2bkNkNlUvV3lLV0VsNFc0Y0hSV2E4Y3RoTXF3ZVVhK1pQMGxt?= =?utf-8?B?U0RrcWhjQnFHYVFBR24vR1dhalBzV1c5c1Frd1pZcU5IMEhpRW5KaHRjWHRw?= =?utf-8?B?bkNVM1hkc2RQNzlBUjdrR3hkbjBpSHlHSS9YOXFsdlNkMmFCTkdPcTBoUGhU?= =?utf-8?B?MEtVNDZ1Ym9jNE1vY0FPemoyWi9CcGw5R1E1TWdza3dWK1g2NjRveE85dzh5?= =?utf-8?B?d2tmTjJWWnc3b0V6NDhHcmprS3RUK3FjNmJFNGpJcEFDbTQrb0R5WThsTWFF?= =?utf-8?B?c1o1UXlhM0dVLzdDOWdnVitMYmNwWU5nQ2tzTEsra1U4R3pKeXJ1elVxY0JC?= =?utf-8?B?Wk9SUytjTnNRM2RoR1A4VFArdnlkWGJRZVUxM3BsTkFhOUVFSksrUktENUZC?= =?utf-8?B?bExCRUp1WE1nWTIzMHdDMWFRQW1GREhPOXlpQjhLb1dSMlJmOE00RWZlemE5?= =?utf-8?B?TUQxZnM2MENWWHUwRlNaMlRpZ0Zyc1VuYUltUUR2WXBEbjEyMGdZTXM1ZW8v?= =?utf-8?B?WlB3WW5ZbEtsdEN5MThLK0hPY0Rlb0NqWThlbmdTVXBGWHVjb1JaZDFYZkUy?= =?utf-8?B?bThETG52ZWFPc3pzK3F5UExPdEdqMnU3RWtXR3FSQ2VSUjA1VTZxL0Vjbkl6?= =?utf-8?B?RldlYTFRVzZjS0tWZGlMVkNSdFZTL2hFQzFrUDNHOTVFa0xDYXRWcG9abFpR?= =?utf-8?B?NkxVTkV6REljdGFEOVNJWE9oeU5hQk9reFVWZXR0WXlyVSttUjlLeHRJTzRZ?= =?utf-8?B?dG9pWUNuMUpEbFpvZTFBZjcvS21QVW9QQXJSZFd0RTVENHdLMko1djY0Rk1Q?= =?utf-8?B?Y3F2ZERBaHcxT2FrVFVXNkNPNW1JRUFQcFF4ajJMQzlSYUF1dEhVanh6SmJI?= =?utf-8?B?RXVrR1I4TUo5Wm1HMWRMTzZPSkVQNTFaai9tcFhLMnpZbmlNREREWTZyWnBy?= =?utf-8?B?b1Z0SHpST1RwaWtCUDFzNVJxUW5QWVd2b0FFckNnNGkrYWJETExvK2ladjQz?= =?utf-8?B?MDlqdTQ3ZkUwSEtaZ2ZVQy85TlZmSkN3VHMzc1o5dDFtZEkvNWlKbzFaUndG?= =?utf-8?B?NnNFY1NLS1J2MWxpR2lRakhNOXlVbCsyYmJMSE15OGNveFBFck1POGwzV25k?= =?utf-8?B?aFRqQnBMdFArbVZiVTZCRUtlZld1MTJKSVlIVjVMTS9pcDgyWWhnUDE4eW1F?= =?utf-8?B?ZjdlRjBsL1VMd0VMMjFrbFUrTTJjdVVPd3U5S0E2UWhEeTFNQ1JsZnJrTVI1?= =?utf-8?B?ZFMyaTBmRVFCSTJZN1I0YnI4a0FYQk5sK3EvSkRwK0gvK25HekV4NW40YWxE?= =?utf-8?B?YVQ3dENxTU5EQksvTHhGVjVZZGhadE5qdEVzcjlRSllkTlVCaFk1MnJMTzc3?= =?utf-8?B?WFE4cDZNWGd3NHBxUGppYWZITCtETzJqb3lpTVNLdDlWcGxJeEh3RHNxbjBl?= =?utf-8?B?VGc9PQ==?= MIME-Version: 1.0 X-OriginatorOrg: ami.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR10MB5278.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c10a6ae2-94ad-4da1-4078-08da8f384bc3 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Sep 2022 12:15:17.7749 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 27e97857-e15f-486c-b58e-86c2b3040f93 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jwB1TELCFJBJnV5IhzfNR91kw82bWI86isS2LIrn+g/WAE0h+HKG81el2butixFtixaSL8K6XBh/PsKnq5Qlug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4640 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <672760DF21014D419C9A5FC5B4B95074@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 QWRkIGEgbmV3IGZlYXR1cmUgcGFja2FnZSBmb3IgQWxlcnQgc3RhbmRhcmQgZm9ybWF0IHN1cHBv cnQuDQoNCkFsZXJ0IFN0YW5kYXJkIGZvcm1hdCBzcGVjaWZpY2F0aW9uKERTUDAxMzYpDQpSRUY6 aHR0cHM6Ly93d3cuZG10Zi5vcmcvc2l0ZXMvZGVmYXVsdC9maWxlcy9zdGFuZGFyZHMvZG9jdW1l bnRzL0RTUDAxMzYucGRmDQoNCkNjOiBTYWkgQ2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlA aW50ZWwuY29tPg0KQ2M6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQpDYzog TmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KQ2M6IExpbWlu ZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NClNpZ25lZC1vZmYtYnk6IENyeXN0YWxM ZWUgPENyeXN0YWxMZWVAYW1pLmNvbT4NCi0tLQ0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1h bmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmQWNwaVRhYmxlLmMgICAgICAgICAgfCAy MzQgKysrKysrKysrKysrDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZG ZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUuYyAgICAgICAgICAgICAgICB8IDM0MCArKysrKysrKysr KysrKysrKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBr Zy9Bc2ZEeGUvQXNmRHhlRXZlbnQuYyAgICAgICAgICAgfCAzMTkgKysrKysrKysrKysrKysrKw0K IEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkv QXNmUGVpLmMgICAgICAgICAgICAgICAgfCAzODQgKysrKysrKysrKysrKysrKysrKysNCiBGZWF0 dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvQWR2YW5jZWRGZWF0dXJlUGtnLmRzYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAxICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1 cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzLmRzYyAgICAgICAgICAgICAgICAgIHwgICA0 ICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZl YXR1cmVzUGNkLmRzYyAgICAgICAgICAgICAgIHwgICAyICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZh bmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZkZiAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9Q cmVNZW1vcnkuZmRmICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5oICAg ICAgICAgICAgICAgIHwgIDY2ICsrKysNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5pbmYgICAgICAgICAgICAgIHwgIDUxICsr Kw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZE eGUvQXNmRHhlLnVuaSAgICAgICAgICAgICAgfCAgMTUgKw0KIEZlYXR1cmVzL0ludGVsL091dE9m QmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXh0cmEudW5pICAgICAg ICAgfCAgMTMgKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVy ZVBrZy9Bc2ZGZWF0dXJlUGtnLmRlYyAgICAgICAgICAgICAgfCAgNDcgKysrDQogRmVhdHVyZXMv SW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNj ICAgICAgICAgICAgICB8ICA0MCArKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmluZiAgICAgICAgICAgICAgfCAgNTEgKysr DQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBl aS9Bc2ZQZWkudW5pICAgICAgICAgICAgICB8ICAxNSArDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZC YW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWlFeHRyYS51bmkgICAgICAg ICB8ICAxMyArDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJl UGtnL0luY2x1ZGUvQXNmRmVhdHVyZS5kc2MgICAgICAgICB8ICA1MiArKysNCiBGZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Bc2ZNZXNzYWdl cy5oICAgICAgICAgIHwgMTA0ICsrKysrKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvQXNmLmggfCAxNDUg KysrKysrKysNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQ a2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZkZiAgICAgICAgIHwgICA4ICsNCiBGZWF0dXJlcy9JbnRl bC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRm ICAgICAgICAgIHwgICA4ICsNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0Fz ZkZlYXR1cmVQa2cvSW5jbHVkZS9Qcm90b2NvbC9Bc2ZQcm90b2NvbC5oIHwgIDU3ICsrKw0KIEZl YXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9SZWFkbWUubWQg ICAgICAgICAgICAgICAgICAgICAgfCAgNjMgKysrKw0KIDI1IGZpbGVzIGNoYW5nZWQsIDIwNDAg aW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFu YWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZBY3BpVGFibGUuYyBiL0ZlYXR1cmVzL0lu dGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmQWNwaVRhYmxl LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi43ZDRhODY0ZTJjDQot LS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0Fz ZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkFjcGlUYWJsZS5jDQpAQCAtMCwwICsxLDIzNCBAQA0KKy8q KiBAZmlsZQ0KDQorICBBc2YgQWNwaSB0YWJsZQ0KDQorDQoNCisgIEluc3RhbGwgQXNmIEFjcGkg dGFibGUNCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KDQorKiovDQoNCisNCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2Vy dmljZXNUYWJsZUxpYi5oPg0KDQorI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCg0KKyNp bmNsdWRlIDxQcm90b2NvbC9BY3BpU3lzdGVtRGVzY3JpcHRpb25UYWJsZS5oPg0KDQorI2luY2x1 ZGUgPEluZHVzdHJ5U3RhbmRhcmQvQWxlcnRTdGFuZGFyZEZvcm1hdFRhYmxlLmg+DQoNCisjaW5j bHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9BY3BpLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvQWNw aVRhYmxlLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQoNCisNCg0K Ky8vIEFTRiBUYWJsZSBEZWZpbml0aW9ucw0KDQorLy8gQmVsb3cgYXJyYXkgc2l6ZSBkZWZpbmUg c2hvdWxkIGZvbGxvdyBtQXNmQWNwaVRhYmxlIHNldHRpbmcNCg0KKyNkZWZpbmUgQVNGX1JDVExf REVWSUNFU19BUlJBWV9MRU5HVEggIDQNCg0KKyNkZWZpbmUgQVNGX0FERFJfREVWSUNFX0FSUkFZ X0xFTkdUSCAgIDExDQoNCisNCg0KKyNwcmFnbWEgcGFjayhwdXNoLDEpDQoNCisNCg0KKy8vDQoN CisvLyBBbGVydCBSZW1vdGUgQ29udHJvbCBTeXN0ZW0gQWN0aW9ucy4NCg0KKy8vDQoNCit0eXBl ZGVmIHN0cnVjdCB7DQoNCisgIEVGSV9BQ1BJX0FTRl9SQ1RMICAgICAgICAgICBBc2ZSY3RsOw0K DQorICBFRklfQUNQSV9BU0ZfQ09OVFJPTERBVEEgICAgQ29udHJvbERhdGFBcnJheVtBU0ZfUkNU TF9ERVZJQ0VTX0FSUkFZX0xFTkdUSF07DQoNCit9IEFDUElfQVNGX1JDVExfQUxMOw0KDQorDQoN CisvLw0KDQorLy8gU21CdXMgRGV2aWNlcyB3aXRoIGZpeGVkIGFkZHJlc3Nlcy4NCg0KKy8vDQoN Cit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIEVGSV9BQ1BJX0FTRl9BRERSICAgIEFzZkFkZHI7DQoN CisgIFVJTlQ4ICAgICAgICAgICAgICAgIEZpeGVkU21CdXNBZGRyZXNzZXNbQVNGX0FERFJfREVW SUNFX0FSUkFZX0xFTkdUSF07DQoNCit9IEFDUElfQVNGX0FERFJfQUxMOw0KDQorDQoNCisvLw0K DQorLy8gQUNQSSAxLjAgU3RydWN0dXJlIGZvciBBU0YgRGVzY3JpcHRvciBUYWJsZS4NCg0KKy8v DQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIEVGSV9BQ1BJX1NEVF9IRUFERVIgICAgSGVhZGVy Ow0KDQorICBFRklfQUNQSV9BU0ZfSU5GTyAgICAgIEFzZkluZm87DQoNCisgIEFDUElfQVNGX1JD VExfQUxMICAgICAgQXNmUmN0bEFsbDsNCg0KKyAgRUZJX0FDUElfQVNGX1JNQ1AgICAgICBBc2ZS bWNwOw0KDQorICBBQ1BJX0FTRl9BRERSX0FMTCAgICAgIEFzZkFkZHJBbGw7DQoNCit9IEFTRl9E RVNDUklQVElPTl9UQUJMRTsNCg0KKw0KDQorI3ByYWdtYSBwYWNrKHBvcCkNCg0KKw0KDQorI2Rl ZmluZSBFRklfQUNQSV8xXzBfQVNGX0RFU0NSSVBUSU9OX1RBQkxFX1JFVklTSU9OICAweDIwDQoN CisNCg0KK0FTRl9ERVNDUklQVElPTl9UQUJMRSAgbUFzZkFjcGlUYWJsZSA9IHsNCg0KKyAgew0K DQorICAgIEVGSV9BQ1BJX0FTRl9ERVNDUklQVElPTl9UQUJMRV9TSUdOQVRVUkUsDQoNCisgICAg c2l6ZW9mIChBU0ZfREVTQ1JJUFRJT05fVEFCTEUpLA0KDQorICAgIEVGSV9BQ1BJXzFfMF9BU0Zf REVTQ1JJUFRJT05fVEFCTEVfUkVWSVNJT04sDQoNCisgICAgMCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIENoZWNrc3VtDQoNCisNCg0KKyAgICAvLyBP RU0gaWRlbnRpZmljYXRpb24NCg0KKyAgICB7ICdPJywgICdFJywgICdNJywgICdfJywgJ0knLCAn RCcgfSwNCg0KKw0KDQorICAgIC8vIE9FTSB0YWJsZSBpZGVudGlmaWNhdGlvbg0KDQorICAgIHsg J0QnLCAgJzgnLCAgJzYnLCAgJzUnLCAnRycsICdDJywgJ0gnLCAnICd9LCAgIC8vIE9FTSB0YWJs ZSBpZGVudGlmaWNhdGlvbg0KDQorDQoNCisgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gT0VNIHJldmlzaW9uIG51bWJlcg0KDQorICAgICgoKCgo J00nIDw8IDgpICsgJ1MnKSA8PCA4KSArICdGJykgPDwgOCkgKyAnVCcsIC8vIEFTTCBjb21waWxl ciB2ZW5kb3IgSUQNCg0KKyAgICAxMDAwMDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBBU0wgY29tcGlsZXIgcmV2aXNpb24gbnVtYmVyDQoNCisgIH0sDQoNCisg IHsNCg0KKyAgICAvLw0KDQorICAgIC8vIEVGSV9BQ1BJX0FTRl9JTkZPDQoNCisgICAgLy8NCg0K KyAgICB7DQoNCisgICAgICAweDAwLCAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlICJBU0Zf SU5GTyINCg0KKyAgICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc2VydmVkDQoN CisgICAgICBzaXplb2YgKEVGSV9BQ1BJX0FTRl9JTkZPKSAvLyBMZW5ndGgNCg0KKyAgICB9LA0K DQorICAgIDB4MDUsICAgICAgICAgICAgICAgLy8gTWluIFdhdGNoZG9nIFJlc2V0IFZhbHVlDQoN CisgICAgMHhGRiwgICAgICAgICAgICAgICAvLyBNaW4gQVNGIFNlbnNvciBwb2xsIFdhaXQgVGlt ZQ0KDQorICAgIDB4MDAwMSwgICAgICAgICAgICAgLy8gU3lzdGVtIElEDQoNCisgICAgMHg1NzAx MDAwMCwgICAgICAgICAvLyBJQU5BIE1hbnVmYWN0dXJlIElEIGZvciBJbnRlbA0KDQorICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gRmVhdHVyZSBGbGFnDQoNCisgICAgew0KDQorICAgICAgMHgw MCwgICAgICAgICAgICAgLy8gUmVzZXJ2ZWQNCg0KKyAgICAgIDB4MDAsDQoNCisgICAgICAweDAw DQoNCisgICAgfSAvLyBSZXNlcnZlZA0KDQorICB9LA0KDQorICB7DQoNCisgICAgLy8NCg0KKyAg ICAvLyBBQ1BJX0FTRl9SQ1RMX0FMTA0KDQorICAgIC8vDQoNCisgICAgew0KDQorICAgICAgLy8N Cg0KKyAgICAgIC8vIEVGSV9BQ1BJX0FTRl9SQ1RMDQoNCisgICAgICAvLw0KDQorICAgICAgew0K DQorICAgICAgICAweDAyLCAgICAgICAgICAgICAgICAgICAgICAvLyBUeXBlICJBU0ZfUkNUTCIN Cg0KKyAgICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXJ2ZWQNCg0KKyAg ICAgICAgc2l6ZW9mIChBQ1BJX0FTRl9SQ1RMX0FMTCkgLy8gTGVuZ3RoDQoNCisgICAgICB9LA0K DQorICAgICAgMHgwNCwgICAgICAgICAgICAgLy8gTnVtYmVyIG9mIENvbnRyb2xzDQoNCisgICAg ICAweDA0LCAgICAgICAgICAgICAvLyBBcnJheSBFbGVtZW50IExlbmd0aA0KDQorICAgICAgMHgw MDAwICAgICAgICAgICAgLy8gUmVzZXJ2ZWQNCg0KKyAgICB9LA0KDQorICAgIHsNCg0KKyAgICAg IC8vDQoNCisgICAgICAvLyBFRklfQUNQSV9BU0ZfQ09OVFJPTERBVEENCg0KKyAgICAgIC8vDQoN CisgICAgICB7IDB4MDAsIDB4ODgsIDB4MDAsIDB4MDMgfSwgLy8gQ29udHJvbCAwIC0tPiBSZXNl dCBzeXN0ZW0NCg0KKyAgICAgIHsgMHgwMSwgMHg4OCwgMHgwMCwgMHgwMiB9LCAvLyBDb250cm9s IDEgLS0+IFBvd2VyIE9mZiBzeXN0ZW0NCg0KKyAgICAgIHsgMHgwMiwgMHg4OCwgMHgwMCwgMHgw MSB9LCAvLyBDb250cm9sIDIgLS0+IFBvd2VyIE9uIHN5c3RlbQ0KDQorICAgICAgeyAweDAzLCAw eDg4LCAweDAwLCAweDA0IH0gIC8vIENvbnRyb2wgMyAtLT4gUG93ZXIgQ3ljbGUgUmVzZXQgKG9m ZiB0aGVuIG9uKQ0KDQorICAgIH0NCg0KKyAgfSwNCg0KKyAgew0KDQorICAgIC8vDQoNCisgICAg Ly8gRUZJX0FDUElfQVNGX1JNQ1ANCg0KKyAgICAvLw0KDQorICAgIHsNCg0KKyAgICAgIDB4MDMs ICAgICAgICAgICAgICAgICAgICAgIC8vIFR5cGUgIkFTRl9STUNQIg0KDQorICAgICAgMHgwMCwg ICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXJ2ZWQNCg0KKyAgICAgIHNpemVvZiAoRUZJX0FD UElfQVNGX1JNQ1ApIC8vIExlbmd0aA0KDQorICAgIH0sDQoNCisgICAgew0KDQorICAgICAgLy8g UmVtb3RlIENvbnRyb2wgQ2FwYWJpbGl0aWVzIHN1cHBvcnRlZCBCaXQgTWFza3MNCg0KKyAgICAg IDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0gRmlybXdhcmUgQ2FwYWJpbGl0 aWVzIEJpdCBNYXNrIGJ5dGUgMQ0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAg IC8vIFN5c3RlbSBGaXJtd2FyZSBDYXBhYmlsaXRpZXMgQml0IE1hc2sgYnl0ZSAyDQoNCisgICAg ICAweDAwLCAgICAgICAgICAgICAgICAgICAgICAgLy8gU3lzdGVtIEZpcm13YXJlIENhcGFiaWxp dGllcyBCaXQgTWFzayBieXRlIDMNCg0KKyAgICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAg ICAvLyBTeXN0ZW0gRmlybXdhcmUgQ2FwYWJpbGl0aWVzIEJpdCBNYXNrIGJ5dGUgNA0KDQorICAg ICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgIC8vIFNwZWNpYWwgQ29tbWFuZHMgQml0IE1h c2sgYnl0ZSAxDQoNCisgICAgICAweDAwLCAgICAgICAgICAgICAgICAgICAgICAgLy8gU3BlY2lh bCBDb21tYW5kcyBCaXQgTWFzayBieXRlIDINCg0KKyAgICAgIDB4RjAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTeXN0ZW0gQ2FwYWJpbGl0aWVzIEJpdCBNYXNrIChTdXBwb3J0cyBSZXNldCwN Cg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQb3dlci1VcCwgUG93ZXIt RG93biwgUG93ZXItQ3ljbGUgUmVzZXQgZm9yDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gY29tcGF0IGFuZCBzZWN1cmUgcG9ydC4NCg0KKyAgICB9LA0KDQorICAgIDB4 MDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBCb290IE9wdGlvbiBDb21wbGV0ZSBDb2RlDQoN CisgICAgMHg1NzAxMDAwMCwgICAgICAgICAgICAgICAgIC8vIElBTkEgSUQgZm9yIEludGVsIE1h bnVmYWN0dXJlcg0KDQorICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWFs IENvbW1hbmQNCg0KKyAgICB7IDB4MDAsIDB4MDAgfSwgICAgICAgICAgICAgLy8gU3BlY2lhbCBD b21tYW5kIFBhcmFtZXRlcg0KDQorICAgIHsgMHgwMCwgMHgwMCB9LCAgICAgICAgICAgICAvLyBC b290IE9wdGlvbnMNCg0KKyAgICB7IDB4MDAsIDB4MDAgfSAgICAgICAgICAgICAgLy8gT0VNIFBh cmFtZXRlcnMNCg0KKyAgfSwNCg0KKyAgew0KDQorICAgIC8vDQoNCisgICAgLy8gQUNQSV9BU0Zf QUREUl9BTEwNCg0KKyAgICAvLw0KDQorICAgIHsNCg0KKyAgICAgIC8vDQoNCisgICAgICAvLyBF RklfQUNQSV9BU0ZfQUREUg0KDQorICAgICAgLy8NCg0KKyAgICAgIHsNCg0KKyAgICAgICAgMHg4 NCwgICAgICAgICAgICAgICAgICAgICAgLy8gVHlwZSAiQVNGX0FERFIiLCBsYXN0IHJlY29yZA0K DQorICAgICAgICAweDAwLCAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KDQorICAg ICAgICBzaXplb2YgKEFDUElfQVNGX0FERFJfQUxMKSAvLyBMZW5ndGgNCg0KKyAgICAgIH0sDQoN CisgICAgICAweDAwLCAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNFRVBST00gQWRkcmVzcw0K DQorICAgICAgQVNGX0FERFJfREVWSUNFX0FSUkFZX0xFTkdUSCAvLyBOdW1iZXIgT2YgRGV2aWNl cw0KDQorICAgIH0sDQoNCisgICAgLy8NCg0KKyAgICAvLyBGaXhlZCBTTUJ1cyBBZGRyZXNzDQoN CisgICAgLy8NCg0KKyAgICB7DQoNCisgICAgICAweDVDLCAweDY4LCAweDg4LCAweEMyLCAweEQy LA0KDQorICAgICAgMHhEQywgMHhBMCwgMHhBMiwgMHhBNCwgMHhBNiwNCg0KKyAgICAgIDB4QzgN Cg0KKyAgICB9DQoNCisgIH0NCg0KK307DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9u IGluc3RhbGwgdGhlIEFTRiBhY3BpIFRhYmxlLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gIEV2ZW50 ICAgICBBIHBvaW50ZXIgdG8gdGhlIEV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBjYWxsYmFjay4N Cg0KKyAgQHBhcmFtW2luXSAgQ29udGV4dCAgIEEgcG9pbnRlciB0byBwcml2YXRlIGRhdGEgcmVn aXN0ZXJlZCB3aXRoIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4NCg0KKyoqLw0KDQorVk9JRA0KDQor RUZJQVBJDQoNCitJbnN0YWxsQXNmQWNwaVRhYmxlRXZlbnQgICgNCg0KKyAgSU4gRUZJX0VWRU5U ICBFdmVudCwNCg0KKyAgSU4gVk9JRCAgICAgICAqQ29udGV4dA0KDQorICApDQoNCit7DQoNCisg IEVGSV9TVEFUVVMgICAgICAgICAgICAgICBTdGF0dXM7DQoNCisgIFVJTlROICAgICAgICAgICAg ICAgICAgICBUYWJsZUhhbmRsZSA9IDA7DQoNCisgIEVGSV9BQ1BJX1RBQkxFX1BST1RPQ09MICAq QWNwaVRhYmxlUHJvdG9jb2w7DQoNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAqQ29udHJv bERhdGFBcnJheXM7DQoNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICBDb250cm9sRGF0YUFy cmF5c1NpemU7DQoNCisNCg0KKyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoJmdFZmlB Y3BpVGFibGVQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEICoqKSZBY3BpVGFibGVQcm90b2NvbCk7 DQoNCisNCg0KKyAgaWYgKCBFRklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICBERUJVRyAoKERF QlVHX0VSUk9SLCAiTG9jYXRlIEFjcGkgcHJvdG9jb2wgJXIgRXJyb3JcbiIsIFN0YXR1cykpOw0K DQorICAgIHJldHVybjsNCg0KKyAgfQ0KDQorDQoNCisgIGlmIChFdmVudCAhPSBOVUxMKSB7DQoN CisgICAgZ0JTLT5DbG9zZUV2ZW50IChFdmVudCk7DQoNCisgIH0NCg0KKw0KDQorICBDb250cm9s RGF0YUFycmF5cyA9IChVSU5UOCAqKVBjZEdldFB0ciAoUGNkQ29udHJvbERhdGFBcnJheXMpOw0K DQorICBDb250cm9sRGF0YUFycmF5c1NpemUgPSBQY2RHZXRTaXplIChQY2RDb250cm9sRGF0YUFy cmF5cyk7DQoNCisNCg0KKyAgaWYgKENvbnRyb2xEYXRhQXJyYXlzU2l6ZSA9PSAoc2l6ZW9mKEVG SV9BQ1BJX0FTRl9DT05UUk9MREFUQSkgKiBBU0ZfUkNUTF9ERVZJQ0VTX0FSUkFZX0xFTkdUSCkp IHsNCg0KKyAgICAvLyBDdXJyZW50bHkgQXNmIDIuMCBzcGVjIG9ubHkgc3VwcG9ydCBmb3VyIHR5 cGUgb2YgY29udHJvbCBmdW5jdGlvbiwgc28gV2Ugc3VwcG9ydCA0IGFycmF5cyBvZg0KDQorICAg IC8vIEVGSV9BQ1BJX0FTRl9DT05UUk9MREFUQSB0aGF0IHNob3VsZCBiZSBkZWZpbmVkIGluIHRo ZSBQY2RDb250cm9sRGF0YUFycmF5cw0KDQorICAgIENvcHlNZW0oKFZPSUQgKikoVUlOVE4pbUFz ZkFjcGlUYWJsZS5Bc2ZSY3RsQWxsLkNvbnRyb2xEYXRhQXJyYXksIChWT0lEICopKFVJTlROKUNv bnRyb2xEYXRhQXJyYXlzLCBDb250cm9sRGF0YUFycmF5c1NpemUpOw0KDQorICB9DQoNCisNCg0K K3sNCg0KKyAgVUlOVE4gIEluZGV4Ow0KDQorDQoNCisgIERFQlVHICgoREVCVUdfRVJST1IsICJj cnlzdGFsIENvbnRyb2xEYXRhQXJyYXlzU2l6ZSA9ICV4XG4iLCBDb250cm9sRGF0YUFycmF5c1Np emUpKTsNCg0KKyAgREVCVUcgKChERUJVR19FUlJPUiwgIkNvbnRyb2xEYXRhQXJyYXlzID0gXG4i KSk7DQoNCisgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8IENvbnRyb2xEYXRhQXJyYXlzU2l6ZTsg SW5kZXgrKykgew0KDQorICAgIGlmICgoSW5kZXggIT0gMCkgJiYgKEluZGV4ICUgNCkgPT0gMCkg REVCVUcgKChERUJVR19FUlJPUiwgIlxuIikpOw0KDQorICAgIERFQlVHICgoREVCVUdfRVJST1Is ICIlMDJ4ICIsIENvbnRyb2xEYXRhQXJyYXlzW0luZGV4XSkpOw0KDQorICB9DQoNCisgIERFQlVH ICgoREVCVUdfRVJST1IsICJcbiIpKTsNCg0KK30NCg0KKw0KDQorICBBY3BpVGFibGVQcm90b2Nv bC0+SW5zdGFsbEFjcGlUYWJsZSAoDQoNCisgICAgICAgICAgICAgICAgICAgICAgIEFjcGlUYWJs ZVByb3RvY29sLA0KDQorICAgICAgICAgICAgICAgICAgICAgICAmbUFzZkFjcGlUYWJsZSwNCg0K KyAgICAgICAgICAgICAgICAgICAgICAgbUFzZkFjcGlUYWJsZS5IZWFkZXIuTGVuZ3RoLA0KDQor ICAgICAgICAgICAgICAgICAgICAgICAmVGFibGVIYW5kbGUNCg0KKyAgICAgICAgICAgICAgICAg ICAgICAgKTsNCg0KKw0KDQorICByZXR1cm47DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJl cy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5j IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4 ZS9Bc2ZEeGUuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjdkNjgw NDA0YmENCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmMNCkBAIC0wLDAgKzEsMzQwIEBADQor LyoqIEBmaWxlDQoNCisgIEFzZiBEeGUgZHJpdmVyIHdoaWNoIGlzIHVzZWQgZm9yIHNlbmRpbmcg ZXZlbnQgcmVjb3JkIGxvZyB0byBOSUMgb3IgcmVjZWl2aW5nDQoNCisgIGJvb3Qgb3B0aW9uIGNv bW1hbmQgZnJvbSBOSUMgYW5kIHByb3ZpZGUgaW4gQXNmIER4ZSBwcm90b2NvbC4NCg0KKw0KDQor ICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQor KiovDQoNCisNCg0KKyNpbmNsdWRlIDxBc2ZEeGUuaD4NCg0KKw0KDQorQVNGX0JPT1RfT1BUSU9O ICAgICAgICAgICBnQXNmQm9vdE9wdGlvbiA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCB9Ow0KDQor QVNGX1BST1RPQ09MICAgICAgICAgICAgICBnQXNmUHJvdG9jb2wgICA9IHsgQXNmUHVzaEV2ZW50 LCBOVUxMIH07DQoNCitFRklfU01CVVNfREVWSUNFX0FERFJFU1MgIG1GaXhlZFRhcmdldEFkZHJl c3M7DQoNCitFRklfU01CVVNfSENfUFJPVE9DT0wgICAgICptU21CdXMgPSBOVUxMOw0KDQorDQoN CisvKioNCg0KKyAgU2VuZCBtZXNzYWdlIHRocm91Z2ggU21CdXMgdG8gbGFuIGNhcmQuDQoNCisN Cg0KKyAgQHBhcmFtW2luXSBDb21tYW5kICAgICAgQ29tbWFuZCBvZiBTeXN0ZW0gRmlybXdhcmUg RXZlbnRzLg0KDQorICBAcGFyYW1baW5dIExlbmd0aCAgICAgICBMZW5ndGggb2YgdGhlIGRhdGEg aW4gYnl0ZXMuDQoNCisgIEBwYXJhbVtpbl0gQXNmRXZlbnQgICAgIE1lc3NhZ2UgZGF0YS4NCg0K Kw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICBQdXNoIEV2ZW50IHN1Y2Nlc3NmdWxseS4N Cg0KKyAgQHJldHZhbCBPdGhlcnMgICAgICAgICAgUHVzaCBFdmVudCBlcnJvci4NCg0KKyoqLw0K DQorRUZJX1NUQVRVUw0KDQorRUZJQVBJDQoNCitBc2ZQdXNoRXZlbnQgICgNCg0KKyAgSU4gIFVJ TlQ4ICBDb21tYW5kLA0KDQorICBJTiAgVUlOVE4gIExlbmd0aCwNCg0KKyAgSU4gIFVJTlQ4ICAq QXNmRXZlbnQNCg0KKyAgKQ0KDQorew0KDQorICBFRklfU1RBVFVTICBTdGF0dXM7DQoNCisNCg0K KyAgaWYgKG1TbUJ1cyA9PSBOVUxMKSB7DQoNCisgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsN Cg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9IG1TbUJ1cy0+RXhlY3V0ZSAoDQoNCisgICAgICAg ICAgICAgICAgICAgICBtU21CdXMsDQoNCisgICAgICAgICAgICAgICAgICAgICBtRml4ZWRUYXJn ZXRBZGRyZXNzLA0KDQorICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZCwNCg0KKyAgICAgICAg ICAgICAgICAgICAgIEVmaVNtYnVzV3JpdGVCbG9jaywNCg0KKyAgICAgICAgICAgICAgICAgICAg IFRSVUUsDQoNCisgICAgICAgICAgICAgICAgICAgICAmTGVuZ3RoLA0KDQorICAgICAgICAgICAg ICAgICAgICAgQXNmRXZlbnQNCg0KKyAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiQXNmUHVz aEV2ZW50IFN0YXR1cyA9ICVyXG4iLCBTdGF0dXMpKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVy biBTdGF0dXM7DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHB1c2hlcyB0 aGUgU3lzdGVtIEZpcm13YXJlIFN0YXRlIEV2ZW50cy4NCg0KKw0KDQorICBAcGFyYW1baW5dIFN5 c3RlbVN0YXRlICAgIFN5c3RlbSBGaXJtd2FyZSBTdGF0ZS4NCg0KKw0KDQorKiovDQoNCitWT0lE DQoNCitFRklBUEkNCg0KK0FzZlB1c2hTeXN0ZW1TdGF0ZSAgKA0KDQorICBJTiAgVUlOVDggIFN5 c3RlbVN0YXRlDQoNCisgICkNCg0KK3sNCg0KKyAgbUFzZlN5c3RlbVN0YXRlLkV2ZW50U2Vuc29y VHlwZSA9IFN5c3RlbVN0YXRlOw0KDQorICBBc2ZQdXNoRXZlbnQgKA0KDQorICAgIG1Bc2ZTeXN0 ZW1TdGF0ZS5Db21tYW5kLA0KDQorICAgIG1Bc2ZTeXN0ZW1TdGF0ZS5CeXRlQ291bnQsDQoNCisg ICAgKFVJTlQ4ICopJihtQXNmU3lzdGVtU3RhdGUuU3ViQ29tbWFuZCkNCg0KKyAgICApOw0KDQor ICByZXR1cm47DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3Nl cyB0aGUgU3lzdGVtIEZpcm13YXJlIFByb2dyZXNzL0Vycm9yIEV2ZW50cy4NCg0KKw0KDQorICBA cGFyYW1baW5dIE1lc3NhZ2VFcnJvckxldmVsICAgUHJvZ3Jlc3Mgb3IgZXJyb3Igb3Igc3lzdGVt IG1hbmFnZW1lbnQgbWVzc2FnZSBUeXBlLg0KDQorICBAcGFyYW1baW5dIE1lc3NhZ2VUeXBlICAg ICAgICAgU3BlY2lmaWMgQVNGIG1lc3NhZ2UgdHlwZS4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoN CitFRklBUEkNCg0KK0FzZlB1c2hTeXN0ZW1FcnJvclByb2dyZXNzRXZlbnQgICgNCg0KKyAgSU4g VUlOVDMyICAgICAgICAgICAgTWVzc2FnZUVycm9yTGV2ZWwsDQoNCisgIElOIEFTRl9NRVNTQUdF X1RZUEUgIE1lc3NhZ2VUeXBlDQoNCisgICkNCg0KK3sNCg0KKyAgVUlOVE4gIGk7DQoNCisNCg0K KyAgaWYgKChNZXNzYWdlRXJyb3JMZXZlbCAmIFBjZEdldDMyIChQY2RBc2ZNZXNzYWdlRXJyb3JM ZXZlbCkpIHx8DQoNCisgICAgICAoKGdBc2ZCb290T3B0aW9uLkJvb3RPcHRpb25CaXQgJiBBU0Zf Qk9QX0JJVF9GT1JDRV9QUk9HUkVTU19FVkVOVCkpKQ0KDQorICB7DQoNCisgICAgZm9yICggaSA9 IDA7IGkgPCBtQXNmTWVzc2FnZXNTaXplOyBpKysgKSB7DQoNCisgICAgICBpZiAoIG1Bc2ZNZXNz YWdlc1tpXS5UeXBlID09IE1lc3NhZ2VUeXBlICkgew0KDQorICAgICAgICBBc2ZQdXNoRXZlbnQg KA0KDQorICAgICAgICAgIG1Bc2ZNZXNzYWdlc1tpXS5NZXNzYWdlLkNvbW1hbmQsDQoNCisgICAg ICAgICAgbUFzZk1lc3NhZ2VzW2ldLk1lc3NhZ2UuQnl0ZUNvdW50LA0KDQorICAgICAgICAgIChV SU5UOCAqKSYobUFzZk1lc3NhZ2VzW2ldLk1lc3NhZ2UuU3ViQ29tbWFuZCkNCg0KKyAgICAgICAg ICApOw0KDQorICAgICAgICBicmVhazsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0K Kw0KDQorICByZXR1cm47DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBTZW5kIHJlbGF0ZSBwcm9n cmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIGxhbiBjYXJkDQoNCisNCg0KKyAgQHBhcmFtW2luXSAg Q29kZVR5cGUgICAgICAgICBJbmRpY2F0ZXMgdGhlIHR5cGUgb2Ygc3RhdHVzIGNvZGUgYmVpbmcg cmVwb3J0ZWQuDQoNCisgIEBwYXJhbVtpbl0gIFZhbHVlICAgICAgICAgICAgRGVzY3JpYmVzIHRo ZSBjdXJyZW50IHN0YXR1cyBvZiBhIGhhcmR3YXJlIG9yIHNvZnR3YXJlIGVudGl0eS4NCg0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGluY2x1ZGVkIGluZm9ybWF0aW9uIGFi b3V0IHRoZSBjbGFzcyBhbmQgc3ViY2xhc3MgdGhhdCBpcyB1c2VkIHRvDQoNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2xhc3NpZnkgdGhlIGVudGl0eSBhcyB3ZWxsIGFzIGFuIG9w ZXJhdGlvbi4NCg0KKyAgQHBhcmFtW2luXSAgSW5zdGFuY2UgICAgICAgICBUaGUgZW51bWVyYXRp b24gb2YgYSBoYXJkd2FyZSBvciBzb2Z0d2FyZSBlbnRpdHkgd2l0aGluDQoNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhlIHN5c3RlbS4gVmFsaWQgaW5zdGFuY2UgbnVtYmVycyBz dGFydCB3aXRoIDEuDQoNCisgIEBwYXJhbVtpbl0gIENhbGxlcklkICAgICAgICAgVGhpcyBvcHRp b25hbCBwYXJhbWV0ZXIgbWF5IGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNhbGxlci4NCg0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgdGhlIHN0 YXR1cyBjb2RlIGRyaXZlciB0byBhcHBseSBkaWZmZXJlbnQgcnVsZXMgdG8NCg0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkaWZmZXJlbnQgY2FsbGVycy4NCg0KKyAgQHBhcmFtW2lu XSAgRGF0YSAgICAgICAgICAgICBUaGlzIG9wdGlvbmFsIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB0 byBwYXNzIGFkZGl0aW9uYWwgZGF0YS4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAg ICAgICAgIFJlcG9ydGVkIGFsbCB0aGUgcHJvZ3Jlc3MgYW5kIGVycm9yIGNvZGVzIGZvciBBc2Yg c3VjY2Vzc2Z1bGx5Lg0KDQorKiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZlJz Y0hhbmRsZXJDYWxsYmFjayAoDQoNCisgIElOIEVGSV9TVEFUVVNfQ09ERV9UWVBFICAgQ29kZVR5 cGUsDQoNCisgIElOIEVGSV9TVEFUVVNfQ09ERV9WQUxVRSAgVmFsdWUsDQoNCisgIElOIFVJTlQz MiAgICAgICAgICAgICAgICAgSW5zdGFuY2UsDQoNCisgIElOIEVGSV9HVUlEICAgICAgICAgICAg ICAgKkNhbGxlcklkLA0KDQorICBJTiBFRklfU1RBVFVTX0NPREVfREFUQSAgICpEYXRhDQoNCisg ICkNCg0KK3sNCg0KKyAgVUlOVE4gIEluZGV4Ow0KDQorDQoNCisgIGlmICgoQ29kZVR5cGUgJiBF RklfU1RBVFVTX0NPREVfVFlQRV9NQVNLKSA9PSBFRklfUFJPR1JFU1NfQ09ERSkgew0KDQorICAg IGZvciAoSW5kZXggPSAwOyBJbmRleCA8IG1Nc2dQcm9ncmVzc01hcFNpemU7IEluZGV4KyspIHsN Cg0KKyAgICAgIGlmIChtTXNnUHJvZ3Jlc3NNYXBbSW5kZXhdLlN0YXR1c0NvZGUgPT0gVmFsdWUp IHsNCg0KKyAgICAgICAgQXNmUHVzaFN5c3RlbUVycm9yUHJvZ3Jlc3NFdmVudCAoTUVTU0FHRV9F UlJPUl9MRVZFTF9QUk9HUkVTUywgbU1zZ1Byb2dyZXNzTWFwW0luZGV4XS5NZXNzYWdlVHlwZSk7 DQoNCisgICAgICAgIGJyZWFrOw0KDQorICAgICAgfQ0KDQorICAgIH0NCg0KKyAgfQ0KDQorDQoN CisgIGlmICgoQ29kZVR5cGUgJiBFRklfU1RBVFVTX0NPREVfVFlQRV9NQVNLKSA9PSBFRklfRVJS T1JfQ09ERSkgew0KDQorICAgIGZvciAoIEluZGV4ID0gMDsgSW5kZXggPCBtTXNnRXJyb3JNYXBT aXplOyBJbmRleCsrICkgew0KDQorICAgICAgaWYgKCBtTXNnRXJyb3JNYXBbSW5kZXhdLlN0YXR1 c0NvZGUgPT0gVmFsdWUgKSB7DQoNCisgICAgICAgIEFzZlB1c2hTeXN0ZW1FcnJvclByb2dyZXNz RXZlbnQgKE1FU1NBR0VfRVJST1JfTEVWRUxfRVJST1IsIG1Nc2dFcnJvck1hcFtJbmRleF0uTWVz c2FnZVR5cGUpOw0KDQorICAgICAgICBicmVhazsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisg IH0NCg0KKw0KDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCit9DQoNCisNCg0KKy8qKg0KDQor ICBUaGlzIGZ1bmN0aW9uIGlzc3VlcyB0aGUgQVNGIEdldC9DbGVhciBCb290IE9wdGlvbiBjb21t YW5kLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gIEFzZlNsYXZlQWRkcmVzcyAgU3BlY2lmeSB0aGUg RGFzaCBsYW4gU21CdXMgc2xhdmUgYWRkcmVzcy4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUND RVNTIFJlcG9ydGVkIGFsbCB0aGUgcHJvZ3Jlc3MgYW5kIGVycm9yIGNvZGVzIGZvciBBc2Ygc3Vj Y2Vzc2Z1bGx5Lg0KDQorICBAcmV0dmFsIE90aGVycyAgICAgIFNtYnVzIEV4ZWN1dGUgZnVuY3Rp b24gcmV0dXJuIGVycm9yLg0KDQorKiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0Fz ZkdldEJvb3RPcHRpb24gKA0KDQorICBJTiAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBBc2ZT bGF2ZUFkZHJlc3MNCg0KKyAgKQ0KDQorew0KDQorICBFRklfU1RBVFVTICAgICAgIFN0YXR1czsN Cg0KKyAgVUlOVE4gICAgICAgICAgICBMZW5ndGggPSBzaXplb2YgKEFTRl9CT09UX09QVElPTik7 DQoNCisgIEFTRl9CT09UX09QVElPTiAgQm9vdE9wdGlvbjsNCg0KKw0KDQorICAvLyBJbml0aWFs aXplIGdldCBib290IG9wdGlvbiBCdWZmZXIuDQoNCisgIFNldE1lbSAoJkJvb3RPcHRpb24sIHNp emVvZiAoQVNGX0JPT1RfT1BUSU9OKSwgMCk7DQoNCisNCg0KKyAgLy8gRXhlY3V0ZSBBU0ZNU0df Q01EX0NPTkZJRyBjb21tYW5kLg0KDQorICBTdGF0dXMgPSBtU21CdXMtPkV4ZWN1dGUgKA0KDQor ICAgICAgICAgICAgICAgICAgICAgbVNtQnVzLA0KDQorICAgICAgICAgICAgICAgICAgICAgQXNm U2xhdmVBZGRyZXNzLA0KDQorICAgICAgICAgICAgICAgICAgICAgQVNGTVNHX0NNRF9DT05GSUcs DQoNCisgICAgICAgICAgICAgICAgICAgICBFZmlTbWJ1c1JlYWRCbG9jaywNCg0KKyAgICAgICAg ICAgICAgICAgICAgIFRSVUUsDQoNCisgICAgICAgICAgICAgICAgICAgICAmTGVuZ3RoLA0KDQor ICAgICAgICAgICAgICAgICAgICAgJkJvb3RPcHRpb24NCg0KKyAgICAgICAgICAgICAgICAgICAg ICk7DQoNCisgIGlmICggRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoNCisgICAgcmV0dXJuIFN0YXR1 czsNCg0KKyAgfQ0KDQorDQoNCisgIGlmICggQm9vdE9wdGlvbi5TdWJDb21tYW5kID09IEFTRk1T R19TVUJDTURfUkVUX0JPT1RfT1BUSU9OICkgew0KDQorICAgIC8vIGNvcHkgUmV0dXJuIEJvb3Qg T3B0aW9uIHRvIGdsb2JhbCBBU0YgQm9vdCBPcHRpb24gYnVmZmVyLg0KDQorICAgIENvcHlNZW0g KCZnQXNmQm9vdE9wdGlvbiwgJkJvb3RPcHRpb24sIHNpemVvZiAoQVNGX0JPT1RfT1BUSU9OKSk7 DQoNCisgICAgZ0FzZlByb3RvY29sLkJvb3RPcHRpb24gPSAmZ0FzZkJvb3RPcHRpb247DQoNCisg ICAgLy8gRXhlY3V0ZSBDbGVhciBCb290IE9wdGlvbiBjb21tYW5kLg0KDQorICAgIEJvb3RPcHRp b24uU3ViQ29tbWFuZCA9IEFTRk1TR19TVUJDTURfQ0xSX0JPT1RfT1BUSU9OOw0KDQorICAgIEJv b3RPcHRpb24uVmVyc2lvbiAgICA9IDB4MTA7DQoNCisgICAgTGVuZ3RoICAgICAgICAgICAgICAg ID0gMjsNCg0KKyAgICBtU21CdXMtPkV4ZWN1dGUgKA0KDQorICAgICAgICAgICAgICBtU21CdXMs DQoNCisgICAgICAgICAgICAgIEFzZlNsYXZlQWRkcmVzcywNCg0KKyAgICAgICAgICAgICAgQVNG TVNHX0NNRF9DT05GSUcsDQoNCisgICAgICAgICAgICAgIEVmaVNtYnVzV3JpdGVCbG9jaywNCg0K KyAgICAgICAgICAgICAgVFJVRSwNCg0KKyAgICAgICAgICAgICAgJkxlbmd0aCwNCg0KKyAgICAg ICAgICAgICAgJkJvb3RPcHRpb24NCg0KKyAgICAgICAgICAgICAgKTsNCg0KKyAgfQ0KDQorDQoN CisgIHJldHVybiBTdGF0dXM7DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIEV2ZW50IENh bGxiYWNrIHByb2Nlc3NlcyB0aGUgcmVxdWVzdHMgYXQgRUZJIFJlYWR5IHRvIEJvb3QgRXZlbnQg dHJpZ2dlcmVkLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gIEV2ZW50ICAgICAgQSBwb2ludGVyIHRv IHRoZSBFdmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY2FsbGJhY2suDQoNCisgIEBwYXJhbVtpbl0g IENvbnRleHQgICAgQSBwb2ludGVyIHRvIHByaXZhdGUgZGF0YSByZWdpc3RlcmVkIHdpdGggdGhl IGNhbGxiYWNrIGZ1bmN0aW9uLg0KDQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlJl YWR5VG9Cb290RXZlbnQgKA0KDQorICBJTiAgRUZJX0VWRU5UICBFdmVudCwNCg0KKyAgSU4gIFZP SUQgICAgICAgKkNvbnRleHQNCg0KKyAgKQ0KDQorew0KDQorICAvLyBQdXNoIFN5c3RlbSBTdGF0 ZSBTMCAtICJXb3JraW5nIi4NCg0KKyAgQXNmUHVzaFN5c3RlbVN0YXRlIChBU0ZNU0dfU1lTVEVN X1NUQVRFX1MwKTsNCg0KKw0KDQorICBnQlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCg0KKyAgcmV0 dXJuOw0KDQorfQ0KDQorDQoNCisvKioNCg0KKyAgICBSZWdpc3RlciBjYWxsYmFjayBpZiBBY3Bp IHByb3RvY29sIGlzIG5vdCByZWFkeSwgZWxzZSBpbnN0YWxsIEFTRiBhY3BpIHRhYmxlIGRpcmVj dGx5Lg0KDQorDQoNCisqKi8NCg0KK1ZPSUQNCg0KK0VGSUFQSQ0KDQorSW5zdGFsbEFzZkFjcGlU YWJsZSAoDQoNCisgIFZPSUQNCg0KKyAgKQ0KDQorew0KDQorICBFRklfU1RBVFVTICAgICAgICAg ICAgICAgU3RhdHVzOw0KDQorICBFRklfRVZFTlQgICAgICAgICAgICAgICAgRXZlbnQ7DQoNCisg IFZPSUQgICAgICAgICAgICAgICAgICAgICAqUmVnaXN0cmF0aW9uOw0KDQorICBFRklfQUNQSV9U QUJMRV9QUk9UT0NPTCAgKkFjcGlUYWJsZVByb3RvY29sOw0KDQorDQoNCisgIFN0YXR1cyA9IGdC Uy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkLCBOVUxMLCAoVk9J RCAqKikmQWNwaVRhYmxlUHJvdG9jb2wpOw0KDQorICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KDQorICAgIEluc3RhbGxBc2ZBY3BpVGFibGVFdmVudCAoTlVMTCwgTlVMTCk7DQoNCisgIH0g ZWxzZSB7DQoNCisgICAgU3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudCAoDQoNCisgICAgICAgICAg ICAgICAgICAgIEVWVF9OT1RJRllfU0lHTkFMLA0KDQorICAgICAgICAgICAgICAgICAgICBUUExf Q0FMTEJBQ0ssDQoNCisgICAgICAgICAgICAgICAgICAgIEluc3RhbGxBc2ZBY3BpVGFibGVFdmVu dCwNCg0KKyAgICAgICAgICAgICAgICAgICAgTlVMTCwNCg0KKyAgICAgICAgICAgICAgICAgICAg JkV2ZW50DQoNCisgICAgICAgICAgICAgICAgICAgICk7DQoNCisNCg0KKyAgICBpZiAoIUVGSV9F UlJPUiAoU3RhdHVzKSkgew0KDQorICAgICAgU3RhdHVzID0gZ0JTLT5SZWdpc3RlclByb3RvY29s Tm90aWZ5ICgNCg0KKyAgICAgICAgICAgICAgICAgICAgICAmZ0VmaUFjcGlUYWJsZVByb3RvY29s R3VpZCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICBFdmVudCwNCg0KKyAgICAgICAgICAgICAg ICAgICAgICAmUmVnaXN0cmF0aW9uDQoNCisgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KKw0K DQorICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgICAgICBnQlMtPkNsb3Nl RXZlbnQgKEV2ZW50KTsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICBy ZXR1cm47DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBzdGFuZGFyZCBFRkkg ZHJpdmVyIGVudHJ5IHBvaW50IGZvciBEWEUgcGhhc2Ugb2YgQVNGLg0KDQorDQoNCisgIEBwYXJh bVtpbl0gSW1hZ2VIYW5kbGUgICBJbWFnZSBoYW5kbGUgb2YgdGhlIGxvYWRlZCBkcml2ZXINCg0K KyAgQHBhcmFtW2luXSBTeXN0ZW1UYWJsZSAgIFBvaW50ZXIgdG8gdGhlIFN5c3RlbSBUYWJsZQ0K DQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICBUaGlzIGRyaXZlciBpbml0aWFsIGNv cnJlY3RseQ0KDQorICBAcmV0dmFsIE90aGVycyAgICAgICAgICAgVGhpcyBkcml2ZXIgaW5pdGlh bCBmYWlsDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorQXNmRHhlRW50cnkg KA0KDQorICBJTiBFRklfSEFORExFICAgICAgICBJbWFnZUhhbmRsZSwNCg0KKyAgSU4gRUZJX1NZ U1RFTV9UQUJMRSAgKlN5c3RlbVRhYmxlDQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAg ICAgICAgICAgICAgICBTdGF0dXM7DQoNCisgIEVGSV9SU0NfSEFORExFUl9QUk9UT0NPTCAgKlJz Y0hhbmRsZXI7DQoNCisgIEVGSV9FVkVOVCAgICAgICAgICAgICAgICAgQXNmRWZpUmVhZHlUb0Jv b3RFdmVudDsNCg0KKw0KDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVNt YnVzSGNQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEICoqKSZtU21CdXMpOw0KDQorICBpZiAoIEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgIHJldHVybiBTdGF0dXM7DQoNCisgIH0NCg0KKw0K DQorICBtRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9IFBjZEdldDggKFBj ZFNtYnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbikgPj4gMTsNCg0KKyAgaWYgKG1GaXhlZFRhcmdl dEFkZHJlc3MuU21idXNEZXZpY2VBZGRyZXNzID09IDApIHsNCg0KKyAgICByZXR1cm4gRUZJX1VO U1VQUE9SVEVEOw0KDQorICB9DQoNCisNCg0KKyAgU3RhdHVzID0gQXNmR2V0Qm9vdE9wdGlvbiAo bUZpeGVkVGFyZ2V0QWRkcmVzcyk7DQoNCisgIGlmICggRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoN CisgICAgcmV0dXJuIFN0YXR1czsNCg0KKyAgfQ0KDQorDQoNCisgIEluc3RhbGxBc2ZBY3BpVGFi bGUgKCk7DQoNCisNCg0KKyAgLy8gU2VuZCBtb3RoZXIgYm9hcmQgaW5pdGlhbGl6YXRpb24gbWVz c2FnZS4NCg0KKyAgQXNmUHVzaFN5c3RlbUVycm9yUHJvZ3Jlc3NFdmVudCAoTUVTU0FHRV9FUlJP Ul9MRVZFTF9QUk9HUkVTUywgTXNnTW90aGVyQm9hcmRJbml0KTsNCg0KKw0KDQorICBTdGF0dXMg PSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVJzY0hhbmRsZXJQcm90b2NvbEd1aWQsIE5VTEws IChWT0lEICoqKSZSc2NIYW5kbGVyKTsNCg0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsN Cg0KKyAgICBSc2NIYW5kbGVyLT5SZWdpc3RlciAoQXNmUnNjSGFuZGxlckNhbGxiYWNrLCBUUExf Q0FMTEJBQ0spOw0KDQorICB9DQoNCisNCg0KKyAgRWZpQ3JlYXRlRXZlbnRSZWFkeVRvQm9vdEV4 ICgNCg0KKyAgICBUUExfQ0FMTEJBQ0ssDQoNCisgICAgQXNmUmVhZHlUb0Jvb3RFdmVudCwNCg0K KyAgICBOVUxMLA0KDQorICAgICZBc2ZFZmlSZWFkeVRvQm9vdEV2ZW50DQoNCisgICAgKTsNCg0K Kw0KDQorICBnQlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAoDQoNCisgICAgICAgICAmSW1h Z2VIYW5kbGUsDQoNCisgICAgICAgICAmZ0FzZlByb3RvY29sR3VpZCwNCg0KKyAgICAgICAgIEVG SV9OQVRJVkVfSU5URVJGQUNFLA0KDQorICAgICAgICAgJmdBc2ZQcm90b2NvbA0KDQorICAgICAg ICAgKTsNCg0KKw0KDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCit9DQoNCmRpZmYgLS1naXQg YS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhl L0FzZkR4ZUV2ZW50LmMgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZl YXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2ZW50LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwLi42NDI2NWM2ZDVjDQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2ZW50 LmMNCkBAIC0wLDAgKzEsMzE5IEBADQorLyoqIEBmaWxlDQoNCisgIEFzZiBtZXNzYWdlcyBkZWZp bmUNCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMg cmVzZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KDQorKiovDQoNCisNCg0KKyNpbmNsdWRlIDxBc2ZEeGUuaD4NCg0KKw0KDQorTUVT U0FHRV9EQVRBX0hVQl9NQVAgIG1Nc2dQcm9ncmVzc01hcFtdID0gew0KDQorICB7IE1zZ0hkZElu aXQsICAgICAgICAgICBFRklfUEVSSVBIRVJBTF9GSVhFRF9NRURJQSB8IEVGSV9QX1BDX0VOQUJM RSAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ0FwSW5pdCwgICAgICAgICAgICBFRklfQ09NUFVU SU5HX1VOSVRfSE9TVF9QUk9DRVNTT1IgfCBFRklfQ1VfSFBfUENfQVBfSU5JVCB9LA0KDQorICB7 IE1zZ1VzZXJJbml0U2V0dXAsICAgICBFRklfU09GVFdBUkVfRFhFX0JTX0RSSVZFUiB8IEVGSV9T V19QQ19VU0VSX1NFVFVQICAgICAgICB9LA0KDQorICB7IE1zZ1VzYlJlc291cmNlQ29uZmlnLCBF RklfSU9fQlVTX1VTQiB8IEVGSV9QX1BDX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICB9 LA0KDQorICB7IE1zZ1BjaVJlc291cmNlQ29uZmlnLCBFRklfSU9fQlVTX1BDSSB8IEVGSV9JT0Jf UENJX0JVU19FTlVNICAgICAgICAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ1ZpZGVvSW5pdCwg ICAgICAgICBFRklfUEVSSVBIRVJBTF9MT0NBTF9DT05TT0xFIHwgRUZJX1BfUENfRU5BQkxFICAg ICAgICAgICB9LA0KDQorICB7IE1zZ0tiY0luaXQsICAgICAgICAgICBFRklfUEVSSVBIRVJBTF9L RVlCT0FSRCB8IEVGSV9QX1BDX0VOQUJMRSAgICAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ0ti Y1Rlc3QsICAgICAgICAgICBFRklfUEVSSVBIRVJBTF9LRVlCT0FSRCB8IEVGSV9QX0tFWUJPQVJE X1BDX1NFTEZfVEVTVCAgICB9DQoNCit9Ow0KDQorDQoNCitNRVNTQUdFX0RBVEFfSFVCX01BUCAg bU1zZ0Vycm9yTWFwW10gPSB7DQoNCisgIHsgTXNnTm9WaWRlbywgICAgRUZJX1BFUklQSEVSQUxf TE9DQUxfQ09OU09MRSB8IEVGSV9QX0VDX05PVF9ERVRFQ1RFRCB9LA0KDQorICB7IE1zZ0tiZEZh aWx1cmUsIEVGSV9QRVJJUEhFUkFMX0tFWUJPQVJEIHwgRUZJX1BfRUNfTk9UX0RFVEVDVEVEICAg ICAgfSwNCg0KKyAgeyBNc2dIZGRGYWlsdXJlLCBFRklfUEVSSVBIRVJBTF9GSVhFRF9NRURJQSB8 IEVGSV9QX0VDX05PVF9ERVRFQ1RFRCAgIH0NCg0KK307DQoNCisNCg0KK0FTRl9NRVNTQUdFICBt QXNmTWVzc2FnZXNbXSA9IHsNCg0KKyAgew0KDQorICAgIE1zZ0hkZEluaXQsDQoNCisgICAgew0K DQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0 ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAg ICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNP Ul9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VO U09SX1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JF U1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisg ICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNH X1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJF Ul9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfRElTSywNCg0KKyAgICAgIEFT Rk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRf REFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9IQVJEX0RJU0tfSU5JVElBTElaQVRJ T04NCg0KKyAgICB9DQoNCisgIH0sDQoNCisgIHsNCg0KKyAgICBNc2dBcEluaXQsDQoNCisgICAg ew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8g Qnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQor ICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NF TlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVf U0VOU09SX1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJP R1JFU1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoN CisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNG TVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05V TUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfUFJPQ0VTU09SLA0KDQor ICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1T R19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBX0FQX0lOSVRJQUxJWkFU SU9ODQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnVXNlckluaXRTZXR1cCwN Cg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisgICAgICAw eDBkLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JFVFJBTlNN SVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1MsDQoNCisgICAgICBBU0ZNU0dfRVZF TlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZ U19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9B U0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fQ1JJVElDQUwsDQoNCisg ICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19T RU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9CSU9TLA0K DQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFT Rk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBX1NFVFVQX0lOSVRJ QUxJWkFUSU9ODQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnVXNiUmVzb3Vy Y2VDb25maWcsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0K DQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9O T19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAg ICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAg QVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5U X09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09V UkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJ Q0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAg ICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJ VFlfQklPUywNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoN CisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9V U0JfUkVTT1VSQ0VfQ09ORklHDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNn UGNpUmVzb3VyY2VDb25maWcsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVT U0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VC Q09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEw LA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0K DQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAgICAgQVNG TVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0df RVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlf Tk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQs DQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFT Rk1TR19FTlRJVFlfQklPUywNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVD SUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZF TlRfREFUQV9QQ0lfUkVTT1VSQ0VfQ09ORklHDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoN CisgICAgTXNnVmlkZW9Jbml0LA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01F U1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NV QkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8x MCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywN Cg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFT Rk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAgQVNGTVNH X0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZ X05PTl9DUklUSUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVE LA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBB U0ZNU0dfRU5USVRZX0FERF9JTl9DQVJELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5D RV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFT Rk1TR19FVkVOVF9EQVRBX1ZJREVPX0lOSVRJQUxJWkFUSU9ODQoNCisgICAgfQ0KDQorICB9LA0K DQorICB7DQoNCisgICAgTXNnS2JjSW5pdCwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09N TUFORF9NRVNTQUdJTkcsDQoNCisgICAgICAweDBkLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFT Rk1TR19TVUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9O VU1CRVJfMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJP R1JFU1MsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisg ICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgICAg IEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9T RVZFUklUWV9OT05fQ1JJVElDQUwsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQ RUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQor ICAgICAgQVNGTVNHX0VOVElUWV9TWVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZ X0lOU1RBTkNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQor ICAgICAgQVNGTVNHX0VWRU5UX0RBVEFfS0VZQk9BUkRfSU5JVElBTElaQVRJT04NCg0KKyAgICB9 DQoNCisgIH0sDQoNCisgIHsNCg0KKyAgICBNc2dLYmNUZXN0LA0KDQorICAgIHsNCg0KKyAgICAg IEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0K DQorICAgICAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1T R19WRVJTSU9OX05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9G V19FUlJPUl9QUk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVD SUZJQywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dSRVNTX0VOVFJZ LA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNG TVNHX0VWRU5UX1NFVkVSSVRZX05PTl9DUklUSUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1Jf REVWSUNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVD SUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX1NZU1RFTV9CT0FSRCwNCg0KKyAgICAgIEFT Rk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRf REFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9LRVlCT0FSRF9URVNUDQoNCisgICAg fQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnTW90aGVyQm9hcmRJbml0LA0KDQorICAgIHsN Cg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5 dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAg ICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5T T1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NF TlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dS RVNTX0VOVFJZLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQor ICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX01PTklUT1IsDQoNCisgICAgICBBU0ZNU0dfU0VO U09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VO U1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9TWVNURU1fQk9BUkQsDQoNCisgICAg ICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VW RU5UX0RBVEExLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEFfQk9BUkRfSU5JVElBTElaQVRJ T04NCg0KKyAgICB9DQoNCisgIH0sDQoNCisgIHsNCg0KKyAgICBNc2dOb1ZpZGVvLA0KDQorICAg IHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8v IEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0K KyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9T RU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBF X1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfTk9fQk9PVEFC TEVfTUVESUEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisg ICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNH X1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJF Ul9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfQUREX0lOX0NBUkQsDQoNCisg ICAgICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNH X0VWRU5UX0RBVEExLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEFfTk9fVklERU8NCg0KKyAg ICB9DQoNCisgIH0sDQoNCisgIHsNCg0KKyAgICBNc2dLYmRGYWlsdXJlLA0KDQorICAgIHsNCg0K KyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVD b3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAg IEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1Jf VFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNP Ul9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX0VSUk9SLA0K DQorICAgICAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNH X0VWRU5UX1NFVkVSSVRZX05PTl9DUklUSUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfREVW SUNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJ RUQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX1NZU1RFTV9CT0FSRCwNCg0KKyAgICAgIEFTRk1T R19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFU QTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9LRVlCT0FSRF9GQUlMVVJFDQoNCisgICAg fQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnSGRkRmFpbHVyZSwNCg0KKyAgICB7DQoNCisg ICAgICBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisgICAgICAweDBkLCAvLyBCeXRlQ291 bnQNCg0KKyAgICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBB U0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZ UEVfRldfRVJST1JfUFJPR1JFU1MsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1Jf U1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19FUlJPUiwNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19F VkVOVF9TRVZFUklUWV9OT05fUkVDT1ZFUkFCTEUsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RF VklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lG SUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9ESVNLLA0KDQorICAgICAgQVNGTVNHX0VOVElU WV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9EQVRBX0hBUkRfRElTS19GQUlMVVJFDQoNCisgICAgfQ0KDQor ICB9LA0KDQorICB7DQoNCisgICAgTXNnQ2hhc3Npc0ludHJ1c2lvbiwNCg0KKyAgICB7DQoNCisg ICAgICBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisgICAgICAweDBiLCAvLyBCeXRlQ291 bnQNCg0KKyAgICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBB U0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZ UEVfQ0hBU1NJU19JTlRSVVNJT04sDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1Jf U1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX0NIQVNTSVNfSU5UUlVTSU9O LA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNG TVNHX0VWRU5UX1NFVkVSSVRZX01PTklUT1IsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklD RV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVE LA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9TWVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0df RU5USVRZX0lOU1RBTkNFX1VOU1BFQ0lGSUVEDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoN CisgICAgTXNnTm9Cb290TWVkaWEsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRf TUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0df U1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVS XzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0JPT1RfRVJST1IsDQoNCisg ICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfT0ZGU0VUX1NZU19GV19FUlJPUiwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0Vf VFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fUkVDT1ZFUkFC TEUsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAg IEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElU WV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJ RUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRf REFUQV9VTlNQRUNJRklFRA0KDQorICAgIH0NCg0KKyAgfQ0KDQorfTsNCg0KKw0KDQorVUlOVE4g IG1Nc2dQcm9ncmVzc01hcFNpemUgPSBzaXplb2YgKG1Nc2dQcm9ncmVzc01hcCkgLyBzaXplb2Yg KE1FU1NBR0VfREFUQV9IVUJfTUFQKTsNCg0KK1VJTlROICBtTXNnRXJyb3JNYXBTaXplICAgID0g c2l6ZW9mIChtTXNnRXJyb3JNYXApIC8gc2l6ZW9mIChNRVNTQUdFX0RBVEFfSFVCX01BUCk7DQoN CitVSU5UTiAgbUFzZk1lc3NhZ2VzU2l6ZSAgICA9IHNpemVvZiAobUFzZk1lc3NhZ2VzKSAvIHNp emVvZiAoQVNGX01FU1NBR0UpOw0KDQorDQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbUFzZlN5 c3RlbVN0YXRlID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfU1lTVEVNX1NUQVRFLA0KDQor ICAweDMsICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9TRVRfU1lTVEVN X1NUQVRFLA0KDQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19TWVNU RU1fU1RBVEVfUzANCg0KK307DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJh bmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaS5jIGIvRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjhiNDRjZDI2ZTANCi0tLSAvZGV2 L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVy ZVBrZy9Bc2ZQZWkvQXNmUGVpLmMNCkBAIC0wLDAgKzEsMzg0IEBADQorLyoqIEBmaWxlDQoNCisg IEFzZiBQZWkgSW5pdGlhbGl6YXRpb24gRHJpdmVyLg0KDQorDQoNCisgIEZvbGxvdyBBc2Ygc3Bl YyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoNCisN Cg0KKyAgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCg0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cg0KKyoqLw0KDQorDQoNCisjaW5jbHVkZSA8QXNmTWVzc2FnZXMuaD4NCg0KKyNpbmNsdWRlIDxC YXNlLmg+DQoNCisjaW5jbHVkZSA8UHBpL1JlcG9ydFN0YXR1c0NvZGVIYW5kbGVyLmg+DQoNCisj aW5jbHVkZSA8UHBpL01lbW9yeURpc2NvdmVyZWQuaD4NCg0KKyNpbmNsdWRlIDxQcGkvU21idXMy Lmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KDQorI2luY2x1ZGUgPExpYnJh cnkvUGVpU2VydmljZXNMaWIuaD4NCg0KKyNpbmNsdWRlIDxQaS9QaVN0YXR1c0NvZGUuaD4NCg0K Kw0KDQorLyoqDQoNCisgIFRoaXMgRXZlbnQgTm90aWZ5IHByb2Nlc3NlcyB0aGUgQVNGIHJlcXVl c3QgYXQgTWVtb3J5IEluaXRpYWwgQ29tcGxldGVkLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gUGVp U2VydmljZXMgICAgICAgICAgR2VuZXJhbCBwdXJwb3NlIHNlcnZpY2VzIGF2YWlsYWJsZSB0byBl dmVyeSBQRUlNLg0KDQorICBAcGFyYW1baW5dIE5vdGlmeURlc2NyaXB0b3IgICAgIFRoZSBub3Rp ZmljYXRpb24gc3RydWN0dXJlIHRoaXMgUEVJTSByZWdpc3RlcmVkIG9uIGluc3RhbGwuDQoNCisg IEBwYXJhbVtpbl0gUHBpICAgICAgICAgICAgICAgICAgVGhlIG1lbW9yeSBkaXNjb3ZlcmVkIFBQ SS4gIE5vdCB1c2VkLg0KDQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAg U3VjY2VlZHMuDQoNCisgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgUHVzaCBFdmVu dCBlcnJvci4NCg0KKw0KDQorKiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK01zZ01l bW9yeUluaXRDb21wbGV0ZWQgKA0KDQorICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAq KlBlaVNlcnZpY2VzLA0KDQorICBJTiBFRklfUEVJX05PVElGWV9ERVNDUklQVE9SICAqTm90aWZ5 RGVzY3JpcHRvciwNCg0KKyAgSU4gVk9JRCAgICAgICAgICAgICAgICAgICAgICAgKlBwaQ0KDQor ICApOw0KDQorDQoNCitTVEFUSUMgRUZJX1BFSV9OT1RJRllfREVTQ1JJUFRPUiAgbU1lbW9yeURp c2NvdmVyZWROb3RpZnlEZXMgPSB7DQoNCisgIEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfTk9USUZZ X0NBTExCQUNLIHwgRUZJX1BFSV9QUElfREVTQ1JJUFRPUl9URVJNSU5BVEVfTElTVCwNCg0KKyAg JmdFZmlQZWlNZW1vcnlEaXNjb3ZlcmVkUHBpR3VpZCwNCg0KKyAgTXNnTWVtb3J5SW5pdENvbXBs ZXRlZA0KDQorfTsNCg0KKw0KDQorQVNGX01TR19OT1JFVFJBTlNNSVQgIG1Bc2ZTeXN0ZW1TdGF0 ZVdvcmtpbmcgPSBcDQoNCit7DQoNCisgIEFTRk1TR19DT01NQU5EX1NZU1RFTV9TVEFURSwNCg0K KyAgMHgzLCAgICAvLyBCeXRlQ291bnQNCg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfU0VUX1NZU1RF TV9TVEFURSwNCg0KKyAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICBBU0ZNU0dfU1lT VEVNX1NUQVRFX1MwDQoNCit9Ow0KDQorDQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbU1zZ1N0 b3BUaW1lciA9DQoNCit7DQoNCisgIEFTRk1TR19DT01NQU5EX01BTkFHRU1FTlRfQ09OVFJPTCwN Cg0KKyAgMHgyLCAgICAvLyBCeXRlQ291bnQNCg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfU1RPUF9X QVRDSF9ET0csDQoNCisgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMA0KDQorfTsNCg0KKw0KDQor Ly8gMy4xLjUuMyBTeXN0ZW0gRmlybXdhcmUgUHJvZ3Jlc3MgRXZlbnRzDQoNCitBU0ZfTVNHX05P UkVUUkFOU01JVCAgbU1zZ0Jpb3NQcmVzZW50ID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRf TUVTU0FHSU5HLA0KDQorICAweGQsICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09N TUFORF9OT19SRVRSQU5TTUlULA0KDQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisg IEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9FTlRJVFlfUFJFU0VOQ0UsDQoNCisgIEFTRk1TR19F VkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgQVNGTVNHX0VWRU5UX09GRlNFVF9FTlRJ VFlfUFJFU0VOVCwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBB U0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RF VklDRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQs DQoNCisgIEFTRk1TR19FTlRJVFlfQklPUywNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9V TlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRf REFUQV9VTlNQRUNJRklFRA0KDQorfTsNCg0KKw0KDQorLy8gU3RhcnRpbmcgbWVtb3J5IGluaXRp YWxpemF0aW9uIGFuZCB0ZXN0Lg0KDQorQVNGX01TR19OT1JFVFJBTlNNSVQgIG1Nc2dNZW1vcnlJ bml0ID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAg IC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQor ICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQ RV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJ RklDLA0KDQorICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0K KyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VW RVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklF RCwNCg0KKyAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19F TlRJVFlfTUVNT1JZX0RFVklDRSwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJ RklFRCwNCg0KKyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9N RU1PUllfSU5JVElBTElaQVRJT04NCg0KK307DQoNCisNCg0KKy8vIE1lbW9yeSBpbml0aWFsaXpl ZCBhbmQgdGVzdGVkLg0KDQorQVNGX01TR19OT1JFVFJBTlNNSVQgIG1Nc2dNZW1vcnlJbml0aWFs aXplZCA9DQoNCit7DQoNCisgIEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgMHhkLCAg ICAvLyBCeXRlQ291bnQNCg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0K KyAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZ UEVfRldfRVJST1JfUFJPR1JFU1MsDQoNCisgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVD SUZJQywNCg0KKyAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRVhJVCwNCg0K KyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VW RVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklF RCwNCg0KKyAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19F TlRJVFlfTUVNT1JZX0RFVklDRSwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJ RklFRCwNCg0KKyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9N RU1PUllfSU5JVElBTElaQVRJT04NCg0KK307DQoNCisNCg0KK0FTRl9NU0dfTk9SRVRSQU5TTUlU ICBtQXNmbXNnQ2FjaGVJbml0ID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5H LA0KDQorICAweGQsICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19S RVRSQU5TTUlULA0KDQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19F VkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgQVNGTVNHX0VWRU5UX1RZ UEVfU0VOU09SX1NQRUNJRklDLA0KDQorICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9H UkVTU19FTlRSWSwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBB U0ZNU0dfRVZFTlRfU0VWRVJJVFlfTU9OSVRPUiwNCg0KKyAgQVNGTVNHX1NFTlNPUl9ERVZJQ0Vf VU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQor ICBBU0ZNU0dfRU5USVRZX1BST0NFU1NPUiwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9V TlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRf REFUQV9DQUNIRV9JTklUSUFMSVpBVElPTg0KDQorfTsNCg0KKw0KDQorQVNGX01TR19OT1JFVFJB TlNNSVQgIG1Bc2Ztc2dNZW1vcnlNaXNzaW5nID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRf TUVTU0FHSU5HLA0KDQorICAweGQsICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09N TUFORF9OT19SRVRSQU5TTUlULA0KDQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisg IEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgQVNGTVNH X0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZ U19GV19FUlJPUiwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBB U0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RF VklDRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQs DQoNCisgIEFTRk1TR19FTlRJVFlfTUVNT1JZX0RFVklDRSwNCg0KKyAgQVNGTVNHX0VOVElUWV9J TlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZN U0dfRVZFTlRfREFUQV9OT19NRU1PUlkNCg0KK307DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1 bmN0aW9uIHB1c2hlcyB0aGUgUEVJIFN5c3RlbSBGaXJtd2FyZSBQcm9ncmVzcyBFdmVudHMuDQoN CisNCg0KKyAgQHBhcmFtW2luXSBTbUJ1cyAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFNt QnVzIFBQSS4NCg0KKyAgQHBhcmFtW2luXSBGaXhlZFRhcmdldEFkZHJlc3MgIERldmljZSBhZGRy ZXNzDQoNCisgIEBwYXJhbVtpbl0gTWVzc2FnZUVycm9yTGV2ZWwgICBQcm9ncmVzcyBvciBlcnJv ciBvciBzeXN0ZW0gbWFuYWdlbWVudCBtZXNzYWdlIFR5cGUuDQoNCisgIEBwYXJhbVtpbl0gTWVz c2FnZUJ1ZmZlciAgICAgICBQb2ludGVyIHRvIHRoZSBFdmVudCBEYXRhIEJ1ZmZlci4NCg0KKw0K DQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlB1c2hQcm9ncmVzc01lc3NhZ2UgKA0K DQorICBJTiBFRklfUEVJX1NNQlVTMl9QUEkgICAgICAgICpTbUJ1cywNCg0KKyAgSU4gRUZJX1NN QlVTX0RFVklDRV9BRERSRVNTICBGaXhlZFRhcmdldEFkZHJlc3MsDQoNCisgIElOIFVJTlQzMiAg ICAgICAgICAgICAgICAgICAgTWVzc2FnZUVycm9yTGV2ZWwsDQoNCisgIElOIFVJTlQ4ICAgICAg ICAgICAgICAgICAgICAgKk1lc3NhZ2VCdWZmZXINCg0KKyAgKQ0KDQorew0KDQorICBFRklfU1RB VFVTICBTdGF0dXM7DQoNCisgIFVJTlROICAgICAgIExlbmd0aDsNCg0KKw0KDQorICBpZiAoTWVz c2FnZUVycm9yTGV2ZWwgJiBQY2RHZXQzMiAoUGNkQXNmTWVzc2FnZUVycm9yTGV2ZWwpKSB7DQoN CisgICAgTGVuZ3RoID0gKChBU0ZfTVNHX05PUkVUUkFOU01JVCAqKU1lc3NhZ2VCdWZmZXIpLT5C eXRlQ291bnQ7DQoNCisgICAgU3RhdHVzID0gU21CdXMtPkV4ZWN1dGUgKA0KDQorICAgICAgICAg ICAgICAgICAgICAgIFNtQnVzLA0KDQorICAgICAgICAgICAgICAgICAgICAgIEZpeGVkVGFyZ2V0 QWRkcmVzcywNCg0KKyAgICAgICAgICAgICAgICAgICAgICAoKEFTRl9NU0dfTk9SRVRSQU5TTUlU ICopTWVzc2FnZUJ1ZmZlciktPkNvbW1hbmQsDQoNCisgICAgICAgICAgICAgICAgICAgICAgRWZp U21idXNXcml0ZUJsb2NrLA0KDQorICAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQoNCisgICAg ICAgICAgICAgICAgICAgICAgJkxlbmd0aCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAoVUlO VDggKikoTWVzc2FnZUJ1ZmZlcisyKQ0KDQorICAgICAgICAgICAgICAgICAgICAgICk7DQoNCisg ICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgICAgREVCVUcgKChERUJVR19FUlJP UiwgIlB1c2ggYWxlcnQgbWVzc2FnZSBmYWlsLCBzdGF0dXMgPSAlclxuIiwgU3RhdHVzKSk7DQoN CisgICAgfQ0KDQorICB9DQoNCisNCg0KKyAgcmV0dXJuOw0KDQorfQ0KDQorDQoNCisvKioNCg0K KyAgVGhpcyBjYWxsYmFjayByZWdpc3RlcmVkIGJ5IFJlcG9ydCBTdGF0dXMgQ29kZSBQcGkgZm9y IE1lbW9yeSBNaXNzaW5nIFBFVC4NCg0KKw0KDQorICBAcGFyYW1baW5dIFBlaVNlcnZpY2VzICAg ICAgICBHZW5lcmFsIHB1cnBvc2Ugc2VydmljZXMgYXZhaWxhYmxlIHRvIGV2ZXJ5IFBFSU0uDQoN CisgIEBwYXJhbVtpbl0gVHlwZSAgICAgICAgICAgICAgIEluZGljYXRlcyB0aGUgdHlwZSBvZiBz dGF0dXMgY29kZSBiZWluZyByZXBvcnRlZC4NCg0KKyAgQHBhcmFtW2luXSBWYWx1ZSAgICAgICAg ICAgICAgRGVzY3JpYmVzIHRoZSBjdXJyZW50IHN0YXR1cyBvZiBhIGhhcmR3YXJlIG9yIHNvZnR3 YXJlIGVudGl0eS4NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpbmNs dWRlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2xhc3MgYW5kIHN1YmNsYXNzIHRoYXQgaXMNCg0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZCB0byBjbGFzc2lmeSB0aGUgZW50 aXR5IGFzIHdlbGwgYXMgYW4gb3BlcmF0aW9uLg0KDQorICBAcGFyYW1baW5dIEluc3RhbmNlICAg ICAgICAgICBUaGUgZW51bWVyYXRpb24gb2YgYSBoYXJkd2FyZSBvciBzb2Z0d2FyZSBlbnRpdHkg d2l0aGluIHRoZSBzeXN0ZW0uDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZh bGlkIGluc3RhbmNlIG51bWJlcnMgc3RhcnQgd2l0aCAxLg0KDQorICBAcGFyYW1baW5dIENhbGxl cklkICAgICAgICAgICBUaGlzIG9wdGlvbmFsIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB0byBpZGVu dGlmeSB0aGUgY2FsbGVyLg0KDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlz IHBhcmFtZXRlciBhbGxvd3MgdGhlIHN0YXR1cyBjb2RlIGRyaXZlciB0byBhcHBseSBkaWZmZXJl bnQNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXMgdG8gZGlmZmVyZW50 IGNhbGxlcnMuDQoNCisgIEBwYXJhbVtpbl0gRGF0YSAgICAgICAgICAgICAgIFRoaXMgb3B0aW9u YWwgcGFyYW1ldGVyIG1heSBiZSB1c2VkIHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhLg0KDQorDQoN CisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIEFsd2F5cyByZXR1cm4gRUZJX1NVQ0NF U1MNCg0KKw0KDQorKiovDQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZlBlaVN0YXR1 c0NvZGVDYWxsQmFjayAoDQoNCisgIElOICBFRklfUEVJX1NFUlZJQ0VTICAgICAgICoqUGVpU2Vy dmljZXMsDQoNCisgIElOICBFRklfU1RBVFVTX0NPREVfVFlQRSAgIFR5cGUsDQoNCisgIElOICBF RklfU1RBVFVTX0NPREVfVkFMVUUgIFZhbHVlLA0KDQorICBJTiAgVUlOVDMyICAgICAgICAgICAg ICAgICBJbnN0YW5jZSwNCg0KKyAgSU4gIEVGSV9HVUlEICAgICAgICAgICAgICAgKkNhbGxlcklk LA0KDQorICBJTiAgRUZJX1NUQVRVU19DT0RFX0RBVEEgICAqRGF0YQ0KDQorICApDQoNCit7DQoN CisgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgU3RhdHVzOw0KDQorICBFRklfUEVJX1NNQlVT Ml9QUEkgICAgICAgICpTbUJ1czsNCg0KKyAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBGaXhl ZFRhcmdldEFkZHJlc3M7DQoNCisNCg0KKyAgRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNl QWRkcmVzcyA9IFBjZEdldDggKFBjZFNtYnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbikgPj4gMTsN Cg0KKyAgaWYgKEZpeGVkVGFyZ2V0QWRkcmVzcy5TbWJ1c0RldmljZUFkZHJlc3MgPT0gMCkgew0K DQorICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9IFBl aVNlcnZpY2VzTG9jYXRlUHBpICgNCg0KKyAgICAgICAgICAgICAmZ0VmaVBlaVNtYnVzMlBwaUd1 aWQsDQoNCisgICAgICAgICAgICAgMCwNCg0KKyAgICAgICAgICAgICBOVUxMLA0KDQorICAgICAg ICAgICAgIChWT0lEICoqKSZTbUJ1cw0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmICggRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQoNCisgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoN CisNCg0KKyAgaWYgKChUeXBlICYgRUZJX1NUQVRVU19DT0RFX1RZUEVfTUFTSykgPT0gRUZJX0VS Uk9SX0NPREUpIHsNCg0KKyAgICBpZiAoKFZhbHVlID09IChFRklfU09GVFdBUkVfUEVJX0NPUkUg fCBFRklfU1dfUEVJX0NPUkVfRUNfTUVNT1JZX05PVF9JTlNUQUxMRUQpKSB8fA0KDQorICAgICAg ICAoVmFsdWUgPT0gKEVGSV9DT01QVVRJTkdfVU5JVF9NRU1PUlkgfCBFRklfQ1VfTUVNT1JZX0VD X05PTkVfREVURUNURUQpKSkNCg0KKyAgICB7DQoNCisgICAgICAvLyBFcnJvciBtZXNzYWdlIC0g TWVtb3J5IE1pc3NpbmcuDQoNCisgICAgICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywg Rml4ZWRUYXJnZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xFVkVMX0VSUk9SLCAoVUlOVDggKikm bUFzZm1zZ01lbW9yeU1pc3NpbmcpOw0KDQorICAgIH0NCg0KKyAgfQ0KDQorDQoNCisgIGlmICgo KFR5cGUgJiBFRklfU1RBVFVTX0NPREVfVFlQRV9NQVNLKSA9PSBFRklfUFJPR1JFU1NfQ09ERSkg JiYNCg0KKyAgICAgIChWYWx1ZSA9PSAoRUZJX0NPTVBVVElOR19VTklUX0hPU1RfUFJPQ0VTU09S IHwgRUZJX0NVX0hQX1BDX0NBQ0hFX0lOSVQpKSkNCg0KKyAgew0KDQorICAgIC8vIFByb2dyZXNz IG1lc3NhZ2UgLSBDYWNoZSBpbml0aWFsaXphdGlvbi4NCg0KKyAgICBBc2ZQdXNoUHJvZ3Jlc3NN ZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xFVkVMX1BS T0dSRVNTLCAoVUlOVDggKikmbUFzZm1zZ0NhY2hlSW5pdCk7DQoNCisgIH0NCg0KKw0KDQorICBy ZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIHNlbmQgbWVt b3J5IGluaXRpYWxpemVkIG1lc3NhZ2UgYWZ0ZXIgbWVtb3J5IGRpc2NvdmVyZWQuDQoNCisNCg0K KyAgQHBhcmFtW2luXSBQZWlTZXJ2aWNlcyAgICAgICAgICBHZW5lcmFsIHB1cnBvc2Ugc2Vydmlj ZXMgYXZhaWxhYmxlIHRvIGV2ZXJ5IFBFSU0uDQoNCisgIEBwYXJhbVtpbl0gTm90aWZ5RGVzY3Jp cHRvciAgICAgVGhlIG5vdGlmaWNhdGlvbiBzdHJ1Y3R1cmUgdGhpcyBQRUlNIHJlZ2lzdGVyZWQg b24gaW5zdGFsbC4NCg0KKyAgQHBhcmFtW2luXSBQcGkgICAgICAgICAgICAgICAgICBUaGUgbWVt b3J5IGRpc2NvdmVyZWQgUFBJLg0KDQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgICAgQWx3YXlzIHJldHVybiBFRklfU1VDQ0VTUw0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFU VVMNCg0KK0VGSUFQSQ0KDQorTXNnTWVtb3J5SW5pdENvbXBsZXRlZCAoDQoNCisgIElOIEVGSV9Q RUlfU0VSVklDRVMgICAgICAgICAgICoqUGVpU2VydmljZXMsDQoNCisgIElOIEVGSV9QRUlfTk9U SUZZX0RFU0NSSVBUT1IgICpOb3RpZnlEZXNjcmlwdG9yLA0KDQorICBJTiBWT0lEICAgICAgICAg ICAgICAgICAgICAgICAqUHBpDQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAg ICAgICAgICBTdGF0dXM7DQoNCisgIEVGSV9QRUlfU01CVVMyX1BQSSAgICAgICAgKlNtQnVzOw0K DQorICBFRklfQk9PVF9NT0RFICAgICAgICAgICAgIEJvb3RNb2RlOw0KDQorICBFRklfU01CVVNf REVWSUNFX0FERFJFU1MgIEZpeGVkVGFyZ2V0QWRkcmVzczsNCg0KKw0KDQorICBGaXhlZFRhcmdl dEFkZHJlc3MuU21idXNEZXZpY2VBZGRyZXNzID0gUGNkR2V0OCAoUGNkU21idXNTbGF2ZUFkZHJl c3NGb3JEYXNoTGFuKSA+PiAxOw0KDQorICBpZiAoRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2 aWNlQWRkcmVzcyA9PSAwKSB7DQoNCisgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoN CisNCg0KKyAgU3RhdHVzID0gUGVpU2VydmljZXNMb2NhdGVQcGkgKA0KDQorICAgICAgICAgICAg ICZnRWZpUGVpU21idXMyUHBpR3VpZCwNCg0KKyAgICAgICAgICAgICAwLA0KDQorICAgICAgICAg ICAgIE5VTEwsDQoNCisgICAgICAgICAgICAgKFZPSUQgKiopJlNtQnVzDQoNCisgICAgICAgICAg ICAgKTsNCg0KKyAgaWYgKCBFRklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQoNCisgIH0NCg0KKw0KDQorICAvLyBQcm9ncmVzcyBtZXNzYWdlIC0gQ29tcGxl dGVkIG1lbW9yeSBpbml0aWFsaXphdGlvbiBhbmQgdGVzdC4NCg0KKyAgQXNmUHVzaFByb2dyZXNz TWVzc2FnZSAoU21CdXMsIEZpeGVkVGFyZ2V0QWRkcmVzcywgTUVTU0FHRV9FUlJPUl9MRVZFTF9Q Uk9HUkVTUywgKFVJTlQ4ICopJm1Nc2dNZW1vcnlJbml0aWFsaXplZCk7DQoNCisNCg0KKyAgLy8g R2V0IEJvb3QgUGF0aC4NCg0KKyAgU3RhdHVzID0gUGVpU2VydmljZXNHZXRCb290TW9kZSAoJkJv b3RNb2RlKTsNCg0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykgJiYgKEJvb3RNb2RlID09IEJP T1RfT05fUzNfUkVTVU1FKSkgew0KDQorICAgIC8vIFB1c2ggU3lzdGVtIFN0YXRlIFdvcmtpbmcg aWYgUzMgcmVzdW1pbmcuDQoNCisgICAgQXNmUHVzaFByb2dyZXNzTWVzc2FnZSAoDQoNCisgICAg ICBTbUJ1cywNCg0KKyAgICAgIEZpeGVkVGFyZ2V0QWRkcmVzcywNCg0KKyAgICAgIE1FU1NBR0Vf RVJST1JfTEVWRUxfU1lTVEVNX01BTkFHRU1FTlQsDQoNCisgICAgICAoVUlOVDggKikmbUFzZlN5 c3RlbVN0YXRlV29ya2luZw0KDQorICAgICAgKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBF RklfU1VDQ0VTUzsNCg0KK30NCg0KKw0KDQorLyoqDQoNCisgIEFzZiBQRUkgbW9kdWxlIGVudHJ5 IHBvaW50DQoNCisNCg0KKyAgQHBhcmFtW2luXSAgRmlsZUhhbmRsZSAgICAgICAgICAgRmlsZUhh bmRsZSAgSGFuZGxlIG9mIHRoZSBmaWxlIGJlaW5nIGludm9rZWQuDQoNCisgIEBwYXJhbVtpbl0g IFBlaVNlcnZpY2VzICAgICAgICAgIERlc2NyaWJlcyB0aGUgbGlzdCBvZiBwb3NzaWJsZSBQRUkg U2VydmljZXMuDQoNCisNCg0KKyAgQHJldHZhbCAgICAgRUZJX1NVQ0NFU1MgICAgICAgICAgVGhl IFBFSU0gaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5Lg0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFU VVMNCg0KK0VGSUFQSQ0KDQorQXNmUGVpRW50cnkgKA0KDQorICBJTiAgICAgICBFRklfUEVJX0ZJ TEVfSEFORExFICBGaWxlSGFuZGxlLA0KDQorICBJTiBDT05TVCBFRklfUEVJX1NFUlZJQ0VTICAg ICAqKlBlaVNlcnZpY2VzDQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAg ICAgICBTdGF0dXM7DQoNCisgIEVGSV9QRUlfU01CVVMyX1BQSSAgICAgICAgKlNtQnVzOw0KDQor ICBFRklfUEVJX1JTQ19IQU5ETEVSX1BQSSAgICpSc2NIbmRyUHBpOw0KDQorICBFRklfU01CVVNf REVWSUNFX0FERFJFU1MgIEZpeGVkVGFyZ2V0QWRkcmVzczsNCg0KKw0KDQorICBGaXhlZFRhcmdl dEFkZHJlc3MuU21idXNEZXZpY2VBZGRyZXNzID0gUGNkR2V0OCAoUGNkU21idXNTbGF2ZUFkZHJl c3NGb3JEYXNoTGFuKSA+PiAxOw0KDQorICBpZiAoRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2 aWNlQWRkcmVzcyA9PSAwKSB7DQoNCisgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCg0KKyAg fQ0KDQorDQoNCisgIFN0YXR1cyA9IFBlaVNlcnZpY2VzTG9jYXRlUHBpICgNCg0KKyAgICAgICAg ICAgICAmZ0VmaVBlaVNtYnVzMlBwaUd1aWQsDQoNCisgICAgICAgICAgICAgMCwNCg0KKyAgICAg ICAgICAgICBOVUxMLA0KDQorICAgICAgICAgICAgIChWT0lEICoqKSZTbUJ1cw0KDQorICAgICAg ICAgICAgICk7DQoNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICByZXR1cm4g U3RhdHVzOw0KDQorICB9DQoNCisNCg0KKyAgLy8NCg0KKyAgLy8gSWYgdGhlIG1hbmFnZWQgY2xp ZW50J3MgZmlybXdhcmUgc3VwcG9ydHMgYSBzeXN0ZW0gYm9vdC1mYWlsdXJlIHdhdGNoZG9nIHRp bWVyLA0KDQorICAvLyB0aGUgZmlybXdhcmUgaXNzdWVzIHRoZSBTdG9wIFdhdGNoZG9nIFRpbWVy IGNvbW1hbmQgdG8gc3RvcCB0aGUgdGltZXIgdGhhdCBpcw0KDQorICAvLyBhdXRvbWF0aWNhbGx5 IHN0YXJ0ZWQgYnkgdGhlIGFsZXJ0LXNlbmRpbmcgZGV2aWNlIGF0IHBvd2VyLW9uIHJlc2V0Lg0K DQorICAvLw0KDQorICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRB ZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xFVkVMX1NZU1RFTV9NQU5BR0VNRU5ULCAoVUlOVDggKikm bU1zZ1N0b3BUaW1lcik7DQoNCisNCg0KKyAgLy8gUHJvZ3Jlc3MgbWVzc2FnZSAtIEJJT1MgUHJl c2VudC4NCg0KKyAgQXNmUHVzaFByb2dyZXNzTWVzc2FnZSAoU21CdXMsIEZpeGVkVGFyZ2V0QWRk cmVzcywgTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywgKFVJTlQ4ICopJm1Nc2dCaW9zUHJl c2VudCk7DQoNCisNCg0KKyAgLy8gUHJvZ3Jlc3MgbWVzc2FnZSAtIFN0YXJ0ZWQgbWVtb3J5IGlu aXRpYWxpemF0aW9uIGFuZCB0ZXN0Lg0KDQorICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1 cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xFVkVMX1BST0dSRVNTLCAoVUlO VDggKikmbU1zZ01lbW9yeUluaXQpOw0KDQorDQoNCisgIFBlaVNlcnZpY2VzTm90aWZ5UHBpICgm bU1lbW9yeURpc2NvdmVyZWROb3RpZnlEZXMpOw0KDQorDQoNCisgIFN0YXR1cyA9IFBlaVNlcnZp Y2VzTG9jYXRlUHBpICgNCg0KKyAgICAgICAgICAgICAmZ0VmaVBlaVJzY0hhbmRsZXJQcGlHdWlk LA0KDQorICAgICAgICAgICAgIDAsDQoNCisgICAgICAgICAgICAgTlVMTCwNCg0KKyAgICAgICAg ICAgICAoVk9JRCAqKikmUnNjSG5kclBwaQ0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmICgh RUZJX0VSUk9SIChTdGF0dXMpKSB7DQoNCisgICAgUnNjSG5kclBwaS0+UmVnaXN0ZXIgKChFRklf UEVJX1JTQ19IQU5ETEVSX0NBTExCQUNLKUFzZlBlaVN0YXR1c0NvZGVDYWxsQmFjayk7DQoNCisg IH0NCg0KKw0KDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCit9DQoNCmRpZmYgLS1naXQgYS9G ZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvQWR2YW5jZWRGZWF0dXJlUGtnLmRzYyBi L0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9BZHZhbmNlZEZlYXR1cmVQa2cuZHNj DQppbmRleCBmMGYxZTA0MzVmLi5jZTBlYWM3YTU2IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50 ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0FkdmFuY2VkRmVhdHVyZVBrZy5kc2MNCisrKyBiL0ZlYXR1 cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9BZHZhbmNlZEZlYXR1cmVQa2cuZHNjDQpAQCAt NjMsNiArNjMsNyBAQA0KICAgIw0KDQogICBnSXBtaUZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RJcG1pRmVhdHVyZUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgIHxUUlVFDQoNCiAgIGdT cGNyRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNwY3JGZWF0dXJlRW5hYmxlICAgICAgICAg ICAgICAgICAgICAgICAgfFRSVUUNCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5Q Y2RBc2ZGZWF0dXJlRW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgICB8VFJVRQ0KDQoNCg0K ICAgIw0KDQogICAjIFBvd2VyTWFuYWdlbWVudCBmZWF0dXJlcw0KDQpkaWZmIC0tZ2l0IGEvRmVh dHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0luY2x1ZGUvQWR2YW5jZWRGZWF0dXJlcy5k c2MgYi9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZl YXR1cmVzLmRzYw0KaW5kZXggODA0YWFiODliYy4uODVhMDY3ZDZhMCAxMDA2NDQNCi0tLSBhL0Zl YXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL0FkdmFuY2VkRmVhdHVyZXMu ZHNjDQorKysgYi9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZh bmNlZEZlYXR1cmVzLmRzYw0KQEAgLTQ3LDYgKzQ3LDEwIEBADQogICAhaW5jbHVkZSBTcGNyRmVh dHVyZVBrZy9JbmNsdWRlL1NwY3JGZWF0dXJlLmRzYw0KDQogIWVuZGlmDQoNCg0KDQorIWlmIGdB c2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQXNmRmVhdHVyZUVuYWJsZSA9PSBUUlVFDQoN CisgICFpbmNsdWRlIEFzZkZlYXR1cmVQa2cvSW5jbHVkZS9Bc2ZGZWF0dXJlLmRzYw0KDQorIWVu ZGlmDQoNCisNCg0KICMNCg0KICMgUG93ZXJNYW5hZ2VtZW50IGZlYXR1cmVzDQoNCiAjDQoNCmRp ZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZh bmNlZEZlYXR1cmVzUGNkLmRzYyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9J bmNsdWRlL0FkdmFuY2VkRmVhdHVyZXNQY2QuZHNjDQppbmRleCAwYWY1YThiZmJjLi5lYmY4ZDFm OWI4IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0luY2x1 ZGUvQWR2YW5jZWRGZWF0dXJlc1BjZC5kc2MNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2Vk RmVhdHVyZVBrZy9JbmNsdWRlL0FkdmFuY2VkRmVhdHVyZXNQY2QuZHNjDQpAQCAtMzUsNiArMzUs NyBAQA0KICAgIw0KDQogICBJcG1pRmVhdHVyZVBrZy9JcG1pRmVhdHVyZVBrZy5kZWMNCg0KICAg U3BjckZlYXR1cmVQa2cvU3BjckZlYXR1cmVQa2cuZGVjDQoNCisgIEFzZkZlYXR1cmVQa2cvQXNm RmVhdHVyZVBrZy5kZWMNCg0KDQoNCiAgICMNCg0KICAgIyBQb3dlck1hbmFnZW1lbnQgZmVhdHVy ZXMNCg0KQEAgLTczLDYgKzc0LDcgQEANCg0KDQogICBnSXBtaUZlYXR1cmVQa2dUb2tlblNwYWNl R3VpZC5QY2RJcG1pRmVhdHVyZUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgIHxGQUxTRQ0K DQogICBnU3BjckZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RTcGNyRmVhdHVyZUVuYWJsZSAg ICAgICAgICAgICAgICAgICAgICAgIHxGQUxTRQ0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZEFzZkZlYXR1cmVFbmFibGUgICAgICAgICAgICAgICAgICAgICAgICAgIHxGQUxT RQ0KDQoNCg0KICAgZ1MzRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFMzRmVhdHVyZUVuYWJs ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8RkFMU0UNCg0KDQoNCmRpZmYgLS1naXQgYS9G ZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZkZiBi L0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRm DQppbmRleCAzNDliZGNjNDkxLi5hY2ZiYjBlMjA5IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50 ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYNCisrKyBiL0ZlYXR1 cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQpAQCAt NDgsNiArNDgsMTAgQEANCiAgICFpbmNsdWRlIFNwY3JGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1l bW9yeS5mZGYNCg0KICFlbmRpZg0KDQoNCg0KKyFpZiBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZEFzZkZlYXR1cmVFbmFibGUgPT0gVFJVRQ0KDQorICAhaW5jbHVkZSBBc2ZGZWF0dXJl UGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYNCg0KKyFlbmRpZg0KDQorDQoNCiAjDQoNCiAjIFBv d2VyTWFuYWdlbWVudCBmZWF0dXJlcw0KDQogIw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50 ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0luY2x1ZGUvUHJlTWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0lu dGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL1ByZU1lbW9yeS5mZGYNCmluZGV4IGI5OTFh NWFhYmYuLjkwYjAzZTYxMDggMTAwNjQ0DQotLS0gYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZl YXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmDQorKysgYi9GZWF0dXJlcy9JbnRlbC9BZHZh bmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmDQpAQCAtNDgsNiArNDgsMTAgQEAN CiAgICFpbmNsdWRlIFNwY3JGZWF0dXJlUGtnL0luY2x1ZGUvUHJlTWVtb3J5LmZkZg0KDQogIWVu ZGlmDQoNCg0KDQorIWlmIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQXNmRmVhdHVy ZUVuYWJsZSA9PSBUUlVFDQoNCisgICFpbmNsdWRlIEFzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVN ZW1vcnkuZmRmDQoNCishZW5kaWYNCg0KKw0KDQogIw0KDQogIyBQb3dlck1hbmFnZW1lbnQgZmVh dHVyZXMNCg0KICMNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmggYi9GZWF0dXJlcy9JbnRlbC9PdXRP ZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5oDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uOWNkZTM1OGI5Mw0KLS0tIC9kZXYvbnVsbA0K KysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0Fz ZkR4ZS9Bc2ZEeGUuaA0KQEAgLTAsMCArMSw2NiBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgRHhl IGRyaXZlciB3aGljaCBpcyB1c2VkIGZvciBzZW5kaW5nIGV2ZW50IHJlY29yZCBsb2cgdG8gTklD IG9yIHJlY2VpdmluZw0KDQorICBib290IG9wdGlvbiBjb21tYW5kIGZyb20gTklDIGFuZCBwcm92 aWRlIGluIEFzZiBEeGUgcHJvdG9jb2wuDQoNCisNCg0KKyAgQ29weXJpZ2h0IChjKSAxOTg1IC0g MjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIF9f QVNGX0RYRV9IX18NCg0KKyNkZWZpbmUgX19BU0ZfRFhFX0hfXw0KDQorDQoNCisjaW5jbHVkZSA8 UGkvUGlTdGF0dXNDb2RlLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvQXNmUHJvdG9jb2wuaD4N Cg0KKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1NtQnVzLmg+DQoNCisjaW5jbHVkZSA8UHJv dG9jb2wvU21idXNIYy5oPg0KDQorI2luY2x1ZGUgPFByb3RvY29sL1JlcG9ydFN0YXR1c0NvZGVI YW5kbGVyLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQoNCisjaW5jbHVkZSA8 TGlicmFyeS9VZWZpTGliLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KDQor I2luY2x1ZGUgPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+DQoNCisjaW5jbHVk ZSA8TGlicmFyeS9VZWZpUnVudGltZVNlcnZpY2VzVGFibGVMaWIuaD4NCg0KKyNpbmNsdWRlIDxM aWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1ByaW50TGliLmg+ DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvQWNwaVRhYmxlLmg+DQoNCisjaW5jbHVkZSA8QXNmTWVz c2FnZXMuaD4NCg0KKw0KDQorZXh0ZXJuIE1FU1NBR0VfREFUQV9IVUJfTUFQICAgICBtTXNnUHJv Z3Jlc3NNYXBbXTsNCg0KK2V4dGVybiBNRVNTQUdFX0RBVEFfSFVCX01BUCAgICAgbU1zZ0Vycm9y TWFwW107DQoNCitleHRlcm4gQVNGX01FU1NBR0UgICAgICAgICAgICAgIG1Bc2ZNZXNzYWdlc1td Ow0KDQorZXh0ZXJuIFVJTlROICAgICAgICAgICAgICAgICAgICBtTXNnUHJvZ3Jlc3NNYXBTaXpl Ow0KDQorZXh0ZXJuIFVJTlROICAgICAgICAgICAgICAgICAgICBtTXNnRXJyb3JNYXBTaXplOw0K DQorZXh0ZXJuIFVJTlROICAgICAgICAgICAgICAgICAgICBtQXNmTWVzc2FnZXNTaXplOw0KDQor ZXh0ZXJuIEFTRl9NU0dfTk9SRVRSQU5TTUlUICAgICBtQXNmU3lzdGVtU3RhdGU7DQoNCisNCg0K Ky8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHB1c2hlcyB0aGUgRFhFIFN5c3RlbSBGaXJtd2FyZSBF dmVudHMuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBDb21tYW5kICAgICAgQ29tbWFuZCBvZiBTeXN0 ZW0gRmlybXdhcmUgRXZlbnRzLg0KDQorICBAcGFyYW1baW5dIExlbmd0aCAgICAgICBMZW5ndGgg b2YgdGhlIGRhdGEgaW4gYnl0ZXMuDQoNCisgIEBwYXJhbVtpbl0gQXNmRXZlbnQgICAgIFN5c3Rl bSBGaXJtd2FyZSBFdmVudHMgQ29tbWFuZC4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNT ICAgICBQdXNoIEV2ZW50IHN1Y2Nlc3NmdWxseS4NCg0KKyAgQHJldHZhbCBFRklfVU5TVVBQT1JU RUQgUHVzaCBFdmVudCBlcnJvci4NCg0KKyoqLw0KDQorRUZJX1NUQVRVUw0KDQorRUZJQVBJDQoN CitBc2ZQdXNoRXZlbnQgICgNCg0KKyAgSU4gIFVJTlQ4ICBDb21tYW5kLA0KDQorICBJTiAgVUlO VE4gIExlbmd0aCwNCg0KKyAgSU4gIFVJTlQ4ICAqQXNmRXZlbnQNCg0KKyAgKTsNCg0KKw0KDQor LyoqDQoNCisgIFRoaXMgZnVuY3Rpb24gaW5zdGFsbCB0aGUgQVNGIGFjcGkgVGFibGUuDQoNCisN Cg0KKyAgQHBhcmFtW2luXSAgRXZlbnQgICAgIEEgcG9pbnRlciB0byB0aGUgRXZlbnQgdGhhdCB0 cmlnZ2VyZWQgdGhlIGNhbGxiYWNrLg0KDQorICBAcGFyYW1baW5dICBDb250ZXh0ICAgQSBwb2lu dGVyIHRvIHByaXZhdGUgZGF0YSByZWdpc3RlcmVkIHdpdGggdGhlIGNhbGxiYWNrIGZ1bmN0aW9u Lg0KDQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0luc3RhbGxBc2ZBY3BpVGFibGVFdmVu dCAgKA0KDQorICBJTiBFRklfRVZFTlQgIEV2ZW50LA0KDQorICBJTiBWT0lEICAgICAgICpDb250 ZXh0DQoNCisgICk7DQoNCisNCg0KKyNlbmRpZiAvL19fQVNGX0RYRV9IX18NCg0KZGlmZiAtLWdp dCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZE eGUvQXNmRHhlLmluZiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVh dHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAuLjQ0NTE3Y2ZkMjcNCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVs L091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZg0KQEAg LTAsMCArMSw1MSBAQA0KKyMjIEBmaWxlDQoNCisjICBBc2YgRHhlIGRyaXZlciB3aGljaCBpcyB1 c2VkIGZvciBzZW5kaW5nIGV2ZW50IHJlY29yZCBsb2cgdG8gTklDIG9yIHJlY2VpdmluZw0KDQor IyAgYm9vdCBvcHRpb24gY29tbWFuZCBmcm9tIE5JQyBhbmQgcHJvdmlkZSBpbiBBc2YgRHhlIHBy b3RvY29sLg0KDQorIw0KDQorIyAgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQoNCisjIw0KDQorDQoNCitbRGVmaW5lc10NCg0KKyAgSU5GX1ZFUlNJ T04gICAgICAgICAgID0gMHgwMDAxMDAwNQ0KDQorICBCQVNFX05BTUUgICAgICAgICAgICAgPSBB c2ZEeGUNCg0KKyAgTU9EVUxFX1VOSV9GSUxFICAgICAgID0gQXNmRHhlLnVuaQ0KDQorICBGSUxF X0dVSUQgICAgICAgICAgICAgPSBFRDdBRDFBMi0xNDI3LTQxRUMtQTcxRS0zMkVDOUExNTQ5RTgN Cg0KKyAgTU9EVUxFX1RZUEUgICAgICAgICAgID0gRFhFX0RSSVZFUg0KDQorICBWRVJTSU9OX1NU UklORyAgICAgICAgPSAxLjANCg0KKyAgRU5UUllfUE9JTlQgICAgICAgICAgID0gQXNmRHhlRW50 cnkNCg0KKw0KDQorW1NvdXJjZXNdDQoNCisgIEFzZkR4ZS5jDQoNCisgIEFzZkR4ZS5oDQoNCisg IEFzZkR4ZUV2ZW50LmMNCg0KKyAgQXNmQWNwaVRhYmxlLmMNCg0KKw0KDQorW1BhY2thZ2VzXQ0K DQorICBNZGVQa2cvTWRlUGtnLmRlYw0KDQorICBBc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cu ZGVjDQoNCisNCg0KK1tMaWJyYXJ5Q2xhc3Nlc10NCg0KKyAgVWVmaURyaXZlckVudHJ5UG9pbnQN Cg0KKyAgVWVmaVJ1bnRpbWVTZXJ2aWNlc1RhYmxlTGliDQoNCisgIERlYnVnTGliDQoNCisgIEJh c2VNZW1vcnlMaWINCg0KKyAgUHJpbnRMaWINCg0KKyAgVWVmaUxpYg0KDQorDQoNCitbUHJvdG9j b2xzXQ0KDQorICBnRWZpUnNjSGFuZGxlclByb3RvY29sR3VpZCAgICAjIyBDT05TVU1FUw0KDQor ICBnQXNmUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAjIyBQUk9EVUNFUw0KDQorICBnRWZpQWNw aVRhYmxlUHJvdG9jb2xHdWlkICAgICAjIyBDT05TVU1FUw0KDQorICBnRWZpU21idXNIY1Byb3Rv Y29sR3VpZCAgICAgICAjIyBDT05TVU1FUw0KDQorDQoNCitbUGNkXQ0KDQorICBnQXNmRmVhdHVy ZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNtYnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbg0KDQorICBn QXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFzZk1lc3NhZ2VFcnJvckxldmVsDQoNCisg IGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ29udHJvbERhdGFBcnJheXMNCg0KKw0K DQorW0RlcGV4XQ0KDQorICBUUlVFDQoNCisNCg0KK1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUu IkV4dHJhRmlsZXMiXQ0KDQorICBBc2ZEeGVFeHRyYS51bmkNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1 cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhl LnVuaSBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9B c2ZEeGUvQXNmRHhlLnVuaQ0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAu LjAyZmYxZjcyOTMNCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFu ZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaQ0KQEAgLTAsMCArMSwx NSBAQA0KKy8vIC8qKiBAZmlsZQ0KDQorLy8gQXNmIERYRSBNb2R1bGUNCg0KKy8vDQoNCisvLyBG b2xsb3cgQXNmIHNwZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVz IGRldmljZQ0KDQorLy8NCg0KKy8vIENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxs IHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KDQorLy8NCg0KKy8vICoqLw0KDQorDQoNCisNCg0KKyNzdHJpbmcg U1RSX01PRFVMRV9BQlNUUkFDVCAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkFzZiBEWEUg TW9kdWxlIg0KDQorDQoNCisjc3RyaW5nIFNUUl9NT0RVTEVfREVTQ1JJUFRJT04gICAgICAgICAg I2xhbmd1YWdlIGVuLVVTICJGb2xsb3cgQXNmIHNwZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJv ciBtZXNzYWdlIHRvIFNtYnVzIGRldmljZS4iDQoNCisNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXh0 cmEudW5pIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0FzZkR4ZS9Bc2ZEeGVFeHRyYS51bmkNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwLi5kYmM3NDcyNTdjDQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9P dXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV4dHJhLnVuaQ0K QEAgLTAsMCArMSwxMyBAQA0KKy8vIC8qKiBAZmlsZQ0KDQorLy8gQXNmIER4ZSBNb2R1bGUNCg0K Ky8vDQoNCisvLyBGb2xsb3cgQXNmIHNwZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJvciBtZXNz YWdlIHRvIFNtYnVzIGRldmljZQ0KDQorLy8NCg0KKy8vIENvcHlyaWdodCAoYykgMTk4NSAtIDIw MjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorLy8NCg0KKy8vICoqLw0KDQorDQoNCisj c3RyaW5nIFNUUl9QUk9QRVJUSUVTX01PRFVMRV9OQU1FDQoNCisjbGFuZ3VhZ2UgZW4tVVMNCg0K KyJBc2YgRFhFIg0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjIGIvRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZDVkZjBjYjYyZg0KLS0tIC9kZXYvbnVs bA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0FzZkZlYXR1cmVQa2cuZGVjDQpAQCAtMCwwICsxLDQ3IEBADQorIyMgQGZpbGUNCg0KKyMgVGhp cyBwYWNrYWdlIGRlZmluZXMgQXNmIHNwZWNpZmljIGludGVyZmFjZXMgYW5kIGxpYnJhcnkgY2xh c3Nlcy4NCg0KKyMNCg0KKyMgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCg0KKyMjDQoNCisNCg0KK1tEZWZpbmVzXQ0KDQorICBERUNfU1BFQ0lGSUNB VElPTiAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCg0KKyAgUEFDS0FHRV9OQU1FICAg ICAgICAgICAgICAgICAgICAgICAgPSBBc2ZGZWF0dXJlUGtnDQoNCisgIFBBQ0tBR0VfR1VJRCAg ICAgICAgICAgICAgICAgICAgICAgID0gMDI1QkU5QkQtNTBCMy00MTM5LTlBNzAtNDMzNkUyNzcz MzlBDQoNCisgIFBBQ0tBR0VfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgID0gMS4wDQoNCisN Cg0KK1tJbmNsdWRlc10NCg0KKyAgSW5jbHVkZQ0KDQorDQoNCitbR3VpZHNdDQoNCisgIGdBc2ZG ZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQgICAgPSB7IDB4YTEyZDlhYTQsIDB4ZTY5YiwgMHg0MjVj LCB7IDB4OTYsIDB4YzUsIDB4NDEsIDB4OGQsIDB4YjEsIDB4ZDAsIDB4YjksIDB4NGYgfX0NCg0K Kw0KDQorW1BwaXNdDQoNCisNCg0KK1tQcm90b2NvbHNdDQoNCisgICMjIEFzZiBwcm90b2NvbCBH VUlEDQoNCisgICMgSW5jbHVkZS9Qcm90b2NvbC9BbWlBc2ZQcm90b2NvbC5oDQoNCisgIGdBc2ZQ cm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICA9ICB7IDB4ZGVjODk4MjcsIDB4OGE3ZSwgMHg0 NWUwLCB7IDB4YmMsIDB4YjUsIDB4ZDUsIDB4M2IsIDB4NDYsIDB4MTQsIDB4YWQsIDB4YjggfSB9 DQoNCisNCg0KK1tQY2RzRmVhdHVyZUZsYWddDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkQXNmRmVhdHVyZUVuYWJsZXxGQUxTRXxCT09MRUFOfDB4MDAwMDAwMDENCg0KKw0K DQorW1BjZHNGaXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZSwgUGNkc0R5bmFtaWMs IFBjZHNEeW5hbWljRXhdDQoNCisgICMjIFNwZWNpZmllcyB0aGUgRGFzaCBsYW4gU21CdXMgc2xh dmUgYWRkcmVzcy4NCg0KKyAgIyBAUHJvbXB0IFNsYXZlIGFkZHJlc3Mgb2YgRGFzaCBsYW4NCg0K KyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RTbWJ1c1NsYXZlQWRkcmVzc0ZvckRh c2hMYW58MHgwfFVJTlQ4fDB4OTAwMDAwMDENCg0KKw0KDQorICAjIyBUaGlzIGZsYWcgaXMgdXNl ZCB0byBjb250cm9sIHdoaWNoIG1lc3NhZ2Ugd291bGQgYmUgc2VuZC4NCg0KKyAgIyAgSWYgZW5h YmxlZCwgQXNmIGRyaXZlciB3aWxsIHNlbmQgbWVzc2FnZSB0byBkZXZpY2UuPEJSPjxCUj4NCg0K KyAgIyAgIEJJVDAgIC0gUHJvZ3Jlc3MgbWVzc2FnZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAg IEJJVDEgIC0gRXJyb3IgbWVzc2FnZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIEJJVDIgIC0g U3lzdGVtIG1lbmFnZW1lbnQgbWVzc2FnZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIE90aGVy IC0gcmVzZXJ2ZWQNCg0KKyAgIyBAUHJvbXB0IE1lc3NhZ2UgbGV2ZWwNCg0KKyAgZ0FzZkZlYXR1 cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RBc2ZNZXNzYWdlRXJyb3JMZXZlbHwweDd8VUlOVDMyfDB4 OTAwMDAwMDINCg0KKw0KDQorICAjIyBTcGVjaWZpZXMgdGhlIGZvdXIgYXJyYXlzIG9mIGNvbnRy b2wgZGF0YXMgaW4gdGhlIEFTRl9SQ1RMIEFjcGkgdGFibGUuDQoNCisgICMgQFByb21wdCB0aGUg Zm91ciBhcnJheXMgb2YgY29udHJvbCBkYXRhcyB0aGF0IHVzZWQgaW4gQVNGX1JDVEwuDQoNCisg IGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQ29udHJvbERhdGFBcnJheXN8ezB4MDAs IDB4ODgsIDB4MDAsIDB4MDMsIDB4MDEsIDB4ODgsIDB4MDAsIDB4MDIsIDB4MDIsIDB4ODgsIDB4 MDAsIDB4MDEsIDB4MDMsIDB4ODgsIDB4MDAsIDB4MDR9fFZPSUQqfDB4OTAwMDAwMDMNCg0KKw0K DQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0 dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNjIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNjDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMC4uMDA2ZjM4OTJiYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVh dHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQ a2cuZHNjDQpAQCAtMCwwICsxLDQwIEBADQorIyMgQGZpbGUNCg0KKyMgQXNmIFBhY2thZ2UNCg0K KyMNCg0KKyMgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCg0KKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRl bnQNCg0KKyMjDQoNCisNCg0KK1tEZWZpbmVzXQ0KDQorICBQTEFURk9STV9OQU1FICAgICAgICAg ICAgICAgICA9IEFzZkZlYXR1cmVQa2cNCg0KKyAgUExBVEZPUk1fR1VJRCAgICAgICAgICAgICAg ICAgPSA3OUQyMkUxMy0zRjMwLTQ3MEEtQUY5RC1CODBDQjQzMjQzNzkNCg0KKyAgUExBVEZPUk1f VkVSU0lPTiAgICAgICAgICAgICAgPSAwLjENCg0KKyAgRFNDX1NQRUNJRklDQVRJT04gICAgICAg ICAgICAgPSAweDAwMDEwMDA1DQoNCisgIE9VVFBVVF9ESVJFQ1RPUlkgICAgICAgICAgICAgID0g QnVpbGQvJChQTEFURk9STV9OQU1FKQ0KDQorICBTVVBQT1JURURfQVJDSElURUNUVVJFUyAgICAg ICA9IElBMzJ8WDY0DQoNCisgIEJVSUxEX1RBUkdFVFMgICAgICAgICAgICAgICAgID0gREVCVUd8 UkVMRUFTRXxOT09QVA0KDQorICBTS1VJRF9JREVOVElGSUVSICAgICAgICAgICAgICA9IERFRkFV TFQNCg0KKyAgUEVJX0FSQ0ggICAgICAgICAgICAgICAgICAgICAgPSBJQTMyDQoNCisgIERYRV9B UkNIICAgICAgICAgICAgICAgICAgICAgID0gWDY0DQoNCisNCg0KK1tQYWNrYWdlc10NCg0KKyAg TWluUGxhdGZvcm1Qa2cvTWluUGxhdGZvcm1Qa2cuZGVjDQoNCisNCg0KKyMNCg0KKyMgTWluUGxh dGZvcm0gY29tbW9uIGluY2x1ZGUgZm9yIHJlcXVpcmVkIGZlYXR1cmUgUENEDQoNCisjIFRoZXNl IFBDRCBtdXN0IGJlIHNldCBiZWZvcmUgdGhlIGNvcmUgaW5jbHVkZSBmaWxlcywgQ29yZUNvbW1v bkxpYiwNCg0KKyMgQ29yZVBlaUxpYiwgYW5kIENvcmVEeGVMaWIuDQoNCisjDQoNCishaW5jbHVk ZSBNaW5QbGF0Zm9ybVBrZy9JbmNsdWRlL0RzYy9NaW5QbGF0Zm9ybUZlYXR1cmVzUGNkLmRzYy5p bmMNCg0KKw0KDQorIw0KDQorIyBJbmNsdWRlIGNvbW1vbiBsaWJyYXJpZXMNCg0KKyMNCg0KKyFp bmNsdWRlIE1pblBsYXRmb3JtUGtnL0luY2x1ZGUvRHNjL0NvcmVDb21tb25MaWIuZHNjDQoNCish aW5jbHVkZSBNaW5QbGF0Zm9ybVBrZy9JbmNsdWRlL0RzYy9Db3JlUGVpTGliLmRzYw0KDQorIWlu Y2x1ZGUgTWluUGxhdGZvcm1Qa2cvSW5jbHVkZS9Ec2MvQ29yZUR4ZUxpYi5kc2MNCg0KKw0KDQor Iw0KDQorIyBUaGlzIHBhY2thZ2UgYWx3YXlzIGJ1aWxkcyB0aGUgZmVhdHVyZS4NCg0KKyMNCg0K KyFpbmNsdWRlIEluY2x1ZGUvQXNmRmVhdHVyZS5kc2MNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmlu ZiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQ ZWkvQXNmUGVpLmluZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmEw MjM5ZjE5OTANCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1h bmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmluZg0KQEAgLTAsMCArMSw1MSBA QA0KKyMjIEBmaWxlDQoNCisjICBBc2YgUEVJTQ0KDQorIw0KDQorIyAgRm9sbG93IEFzZiBzcGVj IHRvIHNlbmQgcHJvZ3Jlc3Mgb3IgZXJyb3IgbWVzc2FnZSB0byBTbWJ1cyBkZXZpY2UNCg0KKyMN Cg0KKyMgIENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQoNCisjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dA0KDQorIyMNCg0KKw0KDQorW0RlZmluZXNdDQoNCisgIElORl9WRVJTSU9OICAgICAgICAgICAg ICAgICAgICA9IDB4MDAwMTAwMDUNCg0KKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAg ID0gQXNmUGVpDQoNCisgIE1PRFVMRV9VTklfRklMRSAgICAgICAgICAgICAgICA9IEFzZlBlaS51 bmkNCg0KKyAgRklMRV9HVUlEICAgICAgICAgICAgICAgICAgICAgID0gRDI2MDNCMDktQjhBMi00 ODM3LUFBMUUtRUFFOEU0REY3OEU3DQoNCisgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAg ICA9IFBFSU0NCg0KKyAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQoNCisg IEVOVFJZX1BPSU5UICAgICAgICAgICAgICAgICAgICA9IEFzZlBlaUVudHJ5DQoNCisNCg0KKyMN Cg0KKyMgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5k IG5vdCByZXF1aXJlZCBieSB0aGUgYnVpbGQgdG9vbHMuDQoNCisjDQoNCisjICBWQUxJRF9BUkNI SVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0DQoNCisjDQoNCisNCg0KK1tTb3VyY2VzXQ0K DQorICBBc2ZQZWkuYw0KDQorDQoNCitbUGFja2FnZXNdDQoNCisgIE1kZVBrZy9NZGVQa2cuZGVj DQoNCisgIEFzZkZlYXR1cmVQa2cvQXNmRmVhdHVyZVBrZy5kZWMNCg0KKw0KDQorW0xpYnJhcnlD bGFzc2VzXQ0KDQorICBQZWltRW50cnlQb2ludA0KDQorICBQZWlTZXJ2aWNlc0xpYg0KDQorICBE ZWJ1Z0xpYg0KDQorDQoNCitbUHBpc10NCg0KKyAgZ0VmaVBlaVJzY0hhbmRsZXJQcGlHdWlkICAg ICAgICAjIyBDT05TVU1FUw0KDQorICBnRWZpUGVpTWVtb3J5RGlzY292ZXJlZFBwaUd1aWQgICMj IENPTlNVTUVTDQoNCisgIGdFZmlQZWlTbWJ1czJQcGlHdWlkICAgICAgICAgICAgIyMgQ09OU1VN RVMNCg0KKw0KDQorW1BjZF0NCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RT bWJ1c1NsYXZlQWRkcmVzc0ZvckRhc2hMYW4NCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNl R3VpZC5QY2RBc2ZNZXNzYWdlRXJyb3JMZXZlbA0KDQorDQoNCitbRGVwZXhdDQoNCisgIGdFZmlQ ZWlTbWJ1czJQcGlHdWlkDQoNCisNCg0KK1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUuIkV4dHJh RmlsZXMiXQ0KDQorICBBc2ZQZWlFeHRyYS51bmkNCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVy ZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWku dW5pIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0Fz ZlBlaS9Bc2ZQZWkudW5pDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4u NjQ2NzEyOTE3ZQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5k TWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pDQpAQCAtMCwwICsxLDE1 IEBADQorLy8gLyoqIEBmaWxlDQoNCisvLyBBc2YgUEVJIE1vZHVsZQ0KDQorLy8NCg0KKy8vIEZv bGxvdyBBc2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMg ZGV2aWNlDQoNCisvLw0KDQorLy8gQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQoNCisvLw0KDQorLy8gKiovDQoNCisNCg0KKw0KDQorI3N0cmluZyBT VFJfTU9EVUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiQXNmIFBFSSBN b2R1bGUiDQoNCisNCg0KKyNzdHJpbmcgU1RSX01PRFVMRV9ERVNDUklQVElPTiAgICAgICAgICAj bGFuZ3VhZ2UgZW4tVVMgIkZvbGxvdyBBc2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9y IG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlLiINCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMv SW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWlFeHRy YS51bmkgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cv QXNmUGVpL0FzZlBlaUV4dHJhLnVuaQ0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAuLjcyODE5ZjQ5ODYNCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpRXh0cmEudW5pDQpA QCAtMCwwICsxLDEzIEBADQorLy8gLyoqIEBmaWxlDQoNCisvLyBBc2YgUEVJIE1vZHVsZQ0KDQor Ly8NCg0KKy8vIEZvbGxvdyBBc2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3Nh Z2UgdG8gU21idXMgZGV2aWNlDQoNCisvLw0KDQorLy8gQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAy MiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisvLw0KDQorLy8gKiovDQoNCisNCg0KKyNz dHJpbmcgU1RSX1BST1BFUlRJRVNfTU9EVUxFX05BTUUNCg0KKyNsYW5ndWFnZSBlbi1VUw0KDQor IkFzZiBQRUkiDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Bc2ZGZWF0dXJlLmRzYyBiL0ZlYXR1cmVzL0ludGVs L091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0FzZkZlYXR1cmUuZHNj DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZDc2YWIzMDAwOA0KLS0t IC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZG ZWF0dXJlUGtnL0luY2x1ZGUvQXNmRmVhdHVyZS5kc2MNCkBAIC0wLDAgKzEsNTIgQEANCisjIyBA ZmlsZQ0KDQorIyBBc2YgUGFja2FnZQ0KDQorIw0KDQorIyBDb3B5cmlnaHQgKGMpIDE5ODUgLSAy MDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorIyMNCg0KKw0KDQorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMNCg0KKyMNCg0KKyMgRGVmaW5lcyBTZWN0aW9uIC0gc3RhdGVtZW50cyB0aGF0 IHdpbGwgYmUgcHJvY2Vzc2VkIHRvIGNyZWF0ZSBhIE1ha2VmaWxlLg0KDQorIw0KDQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMNCg0KK1tEZWZpbmVzXQ0KDQorIWlmbmRlZiAkKFBFSV9BUkNIKQ0K DQorICAhZXJyb3IgIlBFSV9BUkNIIG11c3QgYmUgc3BlY2lmaWVkIHRvIGJ1aWxkIHRoaXMgZmVh dHVyZSEiDQoNCishZW5kaWYNCg0KKyFpZm5kZWYgJChEWEVfQVJDSCkNCg0KKyAgIWVycm9yICJE WEVfQVJDSCBtdXN0IGJlIHNwZWNpZmllZCB0byBidWlsZCB0aGlzIGZlYXR1cmUhIg0KDQorIWVu ZGlmDQoNCisNCg0KKw0KDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KKyMNCg0KKyMgQ29t cG9uZW50IHNlY3Rpb24gLSBsaXN0IG9mIGFsbCBjb21wb25lbnRzIHRoYXQgbmVlZCBidWlsdCBm b3IgdGhpcyBmZWF0dXJlLg0KDQorIw0KDQorIyBOb3RlOiBUaGUgRURLIElJIERTQyBmaWxlIGlz IG5vdCB1c2VkIHRvIHNwZWNpZnkgaG93IGNvbXBpbGVkIGJpbmFyeSBpbWFnZXMgZ2V0IHBsYWNl ZA0KDQorIyAgICAgICBpbnRvIGZpcm13YXJlIHZvbHVtZSBpbWFnZXMuIFRoaXMgc2VjdGlvbiBp cyBqdXN0IGEgbGlzdCBvZiBtb2R1bGVzIHRvIGNvbXBpbGUgZnJvbQ0KDQorIyAgICAgICBzb3Vy Y2UgaW50byBVRUZJLWNvbXBsaWFudCBiaW5hcmllcy4NCg0KKyMgICAgICAgSXQgaXMgdGhlIEZE RiBmaWxlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gb24gY29tYmluaW5nIGJpbmFyeSBmaWxl cyBpbnRvIGZpcm13YXJlDQoNCisjICAgICAgIHZvbHVtZSBpbWFnZXMsIHdob3NlIGNvbmNlcHQg aXMgYmV5b25kIFVFRkkgYW5kIGlzIGRlc2NyaWJlZCBpbiBQSSBzcGVjaWZpY2F0aW9uLg0KDQor IyAgICAgICBUaGVyZSBtYXkgYWxzbyBiZSBtb2R1bGVzIGxpc3RlZCBpbiB0aGlzIHNlY3Rpb24g dGhhdCBhcmUgbm90IHJlcXVpcmVkIGluIHRoZSBGREYgZmlsZSwNCg0KKyMgICAgICAgV2hlbiBh IG1vZHVsZSBsaXN0ZWQgaGVyZSBpcyBleGNsdWRlZCBmcm9tIEZERiBmaWxlLCB0aGVuIFVFRkkt Y29tcGxpYW50IGJpbmFyeSB3aWxsIGJlDQoNCisjICAgICAgIGdlbmVyYXRlZCBmb3IgaXQsIGJ1 dCB0aGUgYmluYXJ5IHdpbGwgbm90IGJlIHB1dCBpbnRvIGFueSBmaXJtd2FyZSB2b2x1bWUuDQoN CisjDQoNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQorIw0KDQorIyBGZWF0dXJlIFBFSSBD b21wb25lbnRzDQoNCisjDQoNCisNCg0KKyMgQHRvZG86IENoYW5nZSBiZWxvdyBsaW5lIHRvIFtD b21wb25lbnRzLiQoUEVJX0FSQ0gpXSBhZnRlciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5v cmcvc2hvd19idWcuY2dpP2lkPTIzMDgNCg0KKyMgICAgICAgIGlzIGNvbXBsZXRlZC4NCg0KK1tD b21wb25lbnRzLklBMzJdDQoNCisgIEFzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaS5pbmYNCg0K Kw0KDQorIw0KDQorIyBGZWF0dXJlIERYRSBDb21wb25lbnRzDQoNCisjDQoNCisNCg0KKyMgQHRv ZG86IENoYW5nZSBiZWxvdyBsaW5lIHRvIFtDb21wb25lbnRzLiQoRFhFX0FSQ0gpXSBhZnRlciBo dHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDgNCg0KKyMg ICAgICAgIGlzIGNvbXBsZXRlZC4NCg0KK1tDb21wb25lbnRzLlg2NF0NCg0KKyAgQXNmRmVhdHVy ZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZg0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvQXNmTWVzc2FnZXMuaCBiL0Zl YXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0Fz Zk1lc3NhZ2VzLmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42ZTc5 ZjQ5OTNmDQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5h Z2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Bc2ZNZXNzYWdlcy5oDQpAQCAtMCwwICsxLDEw NCBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgbWVzc2FnZSBmb3JtYXQgZGVmaW5lLg0KDQorDQoN CisgIENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48 QlI+DQoNCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoN CisNCg0KKyAgQHBhciBSZXZpc2lvbiBSZWZlcmVuY2U6DQoNCisgIEZvcm1hdCBkZWZpbmVkIGlu IEFzZiAyLjAgU3BlY2lmaWNhdGlvbi4NCg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIF9fQVNGX01F U1NBR0VTX0hfXw0KDQorI2RlZmluZSBfX0FTRl9NRVNTQUdFU19IX18NCg0KKw0KDQorI2luY2x1 ZGUgPEJhc2UuaD4NCg0KKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0FzZi5oPg0KDQorDQoN CisjZGVmaW5lIE1FU1NBR0VfRVJST1JfTEVWRUxfUFJPR1JFU1MgICAgICAgICAgIEJJVDANCg0K KyNkZWZpbmUgTUVTU0FHRV9FUlJPUl9MRVZFTF9FUlJPUiAgICAgICAgICAgICAgQklUMQ0KDQor I2RlZmluZSBNRVNTQUdFX0VSUk9SX0xFVkVMX1NZU1RFTV9NQU5BR0VNRU5UICBCSVQyDQoNCisN Cg0KKyNwcmFnbWEgcGFjayhwdXNoLDEpDQoNCisNCg0KKy8qKg0KDQorICBUaGlzIG1lc3NhZ2Ug Y2F1c2VzIHRoZSBhbGVydC1zZW5kaW5nIGRldmljZSB0byB0cmFuc21pdCBhIHNpbmdsZSwNCg0K KyAgdW4tcmV0cmFuc21pdHRlZCBQRVQgZnJhbWUuIElmIHRoZSBhbGVydC1zZW5kaW5nIGRldmlj ZSBpcyBlaXRoZXIgdGVtcG9yYXJpbHkNCg0KKyAgdW5hYmxlIHRvIGhhbmRsZSB0aGUgbWVzc2Fn ZSBvciB1bmFibGUgdG8gc2VuZCB0aGUgcmVxdWVzdGVkIFBFVCBmcmFtZQ0KDQorICBiZWNhdXNl IHRoZSBkZXZpY2UncyB0cmFuc3BvcnQgbWVkaWEgaXMgZG93biwgdGhlIGRldmljZSBtdXN0IE5B Q0sgdGhlIG1lc3NhZ2UNCg0KKyAgYWNjb3JkaW5nIHRvIFNNQlVTXzIuMCBkZWZpbml0aW9uczsg b3RoZXJ3aXNlLCB0aGUgZGV2aWNlIHNlbmRzIHRoZQ0KDQorICBzaW5nbGUtZnJhbWUgdHJhbnNt aXNzaW9uLg0KDQorKiovDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIFVJTlQ4ICAgIENvbW1h bmQ7ICAgICAgICAgLy8vPCBNZXNzYWdlIENvbW1hbmQuDQoNCisgIFVJTlQ4ICAgIEJ5dGVDb3Vu dDsgICAgICAgLy8vPCBMZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMuDQoNCisgIFVJTlQ4ICAg IFN1YkNvbW1hbmQ7ICAgICAgLy8vPCBTdWJDb21tYW5kIE5vIFJldHJhbnNtaXQuDQoNCisgIFVJ TlQ4ICAgIFZlcnNpb247ICAgICAgICAgLy8vPCBWZXJzaW9uIE51bWJlci4NCg0KKyAgVUlOVDgg ICAgRXZlbnRTZW5zb3JUeXBlOyAvLy88IEV2ZW50IFNlbnNvciBUeXBlLg0KDQorICBVSU5UOCAg ICBFdmVudFR5cGU7ICAgICAgIC8vLzwgRXZlbnQgVHlwZS4NCg0KKyAgVUlOVDggICAgRXZlbnRP ZmZzZXQ7ICAgICAvLy88IEV2ZW50IE9mZnNldC4NCg0KKyAgVUlOVDggICAgRXZlbnRTb3VyY2VU eXBlOyAvLy88IERlc2NyaWJlcyB0aGUgb3JpZ2luYXRvciBvZiB0aGUgZXZlbnQuDQoNCisgIFVJ TlQ4ICAgIEV2ZW50U2V2ZXJpdHk7ICAgLy8vPCBUaGUgc2V2ZXJpdHkgb2YgdGhlIGV2ZW50DQoN CisgIFVJTlQ4ICAgIFNlbnNvckRldmljZTsgICAgLy8vPCBUaGUgU2Vuc29yIERldmljZSB0aGF0 IGNhdXNlZCB0aGUgZXZlbnQNCg0KKyAgVUlOVDggICAgU2Vuc29yTnVtYmVyOyAgICAvLy88IElk ZW50aWZ5IGEgZ2l2ZW4gaW5zdGFuY2Ugb2YgYSBzZW5zb3IgcmVsYXRpdmUgdG8gdGhlIFNlbnNv ciBEZXZpY2UuDQoNCisgIFVJTlQ4ICAgIEVudGl0eTsgICAgICAgICAgLy8vPCBJbmRpY2F0ZXMg dGhlIHBsYXRmb3JtIGRldmljZSBvciBzdWJzeXN0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVu dC4NCg0KKyAgVUlOVDggICAgRW50aXR5SW5zdGFuY2U7ICAvLy88IElkZW50aWZpZXMgd2hpY2gg dW5pcXVlIGRldmljZSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50Lg0KDQorICBVSU5UOCAg ICBFdmVudERhdGExOw0KDQorICBVSU5UOCAgICBFdmVudERhdGEyOw0KDQorICBVSU5UOCAgICBF dmVudERhdGEzOw0KDQorICBVSU5UOCAgICBFdmVudERhdGE0Ow0KDQorICBVSU5UOCAgICBFdmVu dERhdGE1Ow0KDQorfSBBU0ZfTVNHX05PUkVUUkFOU01JVDsNCg0KKw0KDQorLyoqDQoNCisgIFRo aXMgaXMgdGhlIEFTRiBTVEFSVCBXYXRjaERvZyBUaW1lciBEYXRhIHN0cnVjdHVyZS4NCg0KKw0K DQorKiovDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIFVJTlQ4ICAgIENvbW1hbmQ7DQoNCisg IFVJTlQ4ICAgIEJ5dGVDb3VudDsNCg0KKyAgVUlOVDggICAgU3ViQ29tbWFuZDsNCg0KKyAgVUlO VDggICAgVmVyc2lvbjsNCg0KK30gQVNGX1NUT1BfV0FUQ0hET0c7DQoNCisNCg0KKy8qKg0KDQor ICBUaGlzIGlzIHRoZSBBU0YgTWVzc2FnZSBUeXBlIHN0cnVjdHVyZS4NCg0KKw0KDQorKiovDQoN Cit0eXBlZGVmIGVudW0gew0KDQorICBNc2dIZGRJbml0LA0KDQorICBNc2dBcEluaXQsDQoNCisg IE1zZ1VzZXJJbml0U2V0dXAsDQoNCisgIE1zZ1VzYlJlc291cmNlQ29uZmlnLA0KDQorICBNc2dQ Y2lSZXNvdXJjZUNvbmZpZywNCg0KKyAgTXNnVmlkZW9Jbml0LA0KDQorICBNc2dLYmNJbml0LA0K DQorICBNc2dLYmNUZXN0LA0KDQorICBNc2dNb3RoZXJCb2FyZEluaXQsDQoNCisgIE1zZ05vVmlk ZW8sDQoNCisgIE1zZ0tiZEZhaWx1cmUsDQoNCisgIE1zZ0hkZEZhaWx1cmUsDQoNCisgIE1zZ0No YXNzaXNJbnRydXNpb24sDQoNCisgIE1zZ05vQm9vdE1lZGlhDQoNCit9IEFTRl9NRVNTQUdFX1RZ UEU7DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBNZXNzYWdlIERhdGEgSHViIE1hcCBT dHJ1Y3R1cmUuDQoNCisNCg0KKyoqLw0KDQordHlwZWRlZiBzdHJ1Y3Qgew0KDQorICBBU0ZfTUVT U0FHRV9UWVBFICAgICAgICAgTWVzc2FnZVR5cGU7DQoNCisgIEVGSV9TVEFUVVNfQ09ERV9WQUxV RSAgICBTdGF0dXNDb2RlOw0KDQorfSBNRVNTQUdFX0RBVEFfSFVCX01BUDsNCg0KKw0KDQorLyoq DQoNCisgIFRoaXMgaXMgdGhlIEFTRiBTeXN0ZW0gRmlybXdhcmUgRXZlbnQgU3RydWN0dXJlLg0K DQorDQoNCisqKi8NCg0KK3R5cGVkZWYgc3RydWN0IHsNCg0KKyAgQVNGX01FU1NBR0VfVFlQRSAg ICAgICAgVHlwZTsNCg0KKyAgQVNGX01TR19OT1JFVFJBTlNNSVQgICAgTWVzc2FnZTsNCg0KK30g QVNGX01FU1NBR0U7DQoNCisNCg0KKyNwcmFnbWEgcGFjayhwb3ApDQoNCisNCg0KKyNlbmRpZiAv L19fQVNGX01FU1NBR0VTX0hfXw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZC YW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9Bc2Yu aCBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNs dWRlL0luZHVzdHJ5U3RhbmRhcmQvQXNmLmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwLi5mNjYwZmUwYjcyDQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRl bC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5k YXJkL0FzZi5oDQpAQCAtMCwwICsxLDE0NSBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgbWVzc2Fn ZSBjb21tYW5kcyBieXRlIGRlZmluZS4NCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAy MDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorDQoNCisgIEBwYXIgUmV2aXNpb24gUmVm ZXJlbmNlOg0KDQorICBEYXRhIGRlZmluZWQgaW4gQXNmIDIuMCBTcGVjaWZpY2F0aW9uLg0KDQor KiovDQoNCisNCg0KKyNpZm5kZWYgX19BU0ZfSF9fDQoNCisjZGVmaW5lIF9fQVNGX0hfXw0KDQor DQoNCisjaW5jbHVkZSA8QmFzZS5oPg0KDQorDQoNCisvLw0KDQorLy8gQm9vdCBvcHRpb24gbWVz c2FnZXMNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19DTURfQ09ORklHICAgICAgICAgICAgICAw eDMgICAvLyBBU0YgQ29uZmlndXJhdGlvbg0KDQorI2RlZmluZSBBU0ZNU0dfU1VCQ01EX0NMUl9C T09UX09QVElPTiAgMHgxNSAgLy8gQ2xlYXIgQm9vdCBPcHRpb25zDQoNCisjZGVmaW5lIEFTRk1T R19TVUJDTURfUkVUX0JPT1RfT1BUSU9OICAweDE2ICAvLyBSZXR1cm4gQm9vdCBPcHRpb25zDQoN CisjZGVmaW5lIEFTRk1TR19TVUJDTURfTk9fQk9PVF9PUFRJT04gICAweDE3ICAvLyBObyBCb290 IE9wdGlvbnMNCg0KKw0KDQorLy8NCg0KKy8vIFN5c3RlbSBzdGF0ZXMNCg0KKy8vDQoNCisjZGVm aW5lIEFTRk1TR19TWVNURU1fU1RBVEVfUzAgIDAgICAgICAgICAgICAgLy8gUzAvRzAgIldvcmtp bmciDQoNCisjZGVmaW5lIEFTRk1TR19TWVNURU1fU1RBVEVfUzEgIDEgICAgICAgICAgICAgLy8g UzENCg0KKyNkZWZpbmUgQVNGTVNHX1NZU1RFTV9TVEFURV9TMiAgMiAgICAgICAgICAgICAvLyBT Mg0KDQorI2RlZmluZSBBU0ZNU0dfU1lTVEVNX1NUQVRFX1MzICAzICAgICAgICAgICAgIC8vIFMz DQoNCisjZGVmaW5lIEFTRk1TR19TWVNURU1fU1RBVEVfUzQgIDQgICAgICAgICAgICAgLy8gUzQN Cg0KKyNkZWZpbmUgQVNGTVNHX1NZU1RFTV9TVEFURV9TNSAgNSAgICAgICAgICAgICAvLyBTNS9H MiAiU29mdC1vZmYiDQoNCisNCg0KKy8vDQoNCisvLyBBc2YgdmVyc2lvbg0KDQorLy8NCg0KKyNk ZWZpbmUgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwICAgICAgMHgxMA0KDQorDQoNCisvLw0KDQor Ly8gU3lzdGVtIGZpcm13YXJlIGNhcGFiaWxpdGllcyBCaXQNCg0KKy8vDQoNCisjZGVmaW5lIEFT Rl9CT1BfQklUX0ZPUkNFX1BST0dSRVNTX0VWRU5UICAgICAgICBCSVQxMg0KDQorDQoNCisvLw0K DQorLy8gQXNmIG1lc3NhZ2UgY29tbWFuZA0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0NPTU1B TkRfU1lTVEVNX1NUQVRFICAgICAgICAgICAgICAgMHgxDQoNCisjZGVmaW5lIEFTRk1TR19DT01N QU5EX01BTkFHRU1FTlRfQ09OVFJPTCAgICAgICAgIDB4Mg0KDQorI2RlZmluZSBBU0ZNU0dfQ09N TUFORF9NRVNTQUdJTkcgICAgICAgICAgICAgICAgICAweDQNCg0KKw0KDQorLy8NCg0KKy8vIEFz ZiBtZXNzYWdlIHN1YmNvbW1hbmQNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19TVUJDT01NQU5E X1NUT1BfV0FUQ0hfRE9HICAgICAgICAgIDB4MTQNCg0KKyNkZWZpbmUgQVNGTVNHX1NVQkNPTU1B TkRfTk9fUkVUUkFOU01JVCAgICAgICAgICAgMHgxNg0KDQorI2RlZmluZSBBU0ZNU0dfU1VCQ09N TUFORF9TRVRfU1lTVEVNX1NUQVRFICAgICAgICAweDE4DQoNCisNCg0KKy8vDQoNCisvLyBBc2Yg bWVzc2FnZSBldmVudCBzZW5zb3IgdHlwZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5U X1NFTlNPUl9UWVBFX0NIQVNTSVNfSU5UUlVTSU9OICAweDUNCg0KKyNkZWZpbmUgQVNGTVNHX0VW RU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTICAweEYNCg0KKyNkZWZpbmUgQVNGTVNH X0VWRU5UX1NFTlNPUl9UWVBFX0JPT1RfRVJST1IgICAgICAgICAweDFFDQoNCisjZGVmaW5lIEFT Rk1TR19FVkVOVF9TRU5TT1JfVFlQRV9FTlRJVFlfUFJFU0VOQ0UgICAgMHgyNQ0KDQorDQoNCisv Lw0KDQorLy8gQXNmIG1lc3NhZ2UgZXZlbnQgdHlwZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNH X0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDICAgICAgICAgICAweDZGDQoNCisNCg0KKy8vDQoN CisvLyBBc2YgbWVzc2FnZSBldmVudCBvZmZzZXQNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19F VkVOVF9PRkZTRVRfRU5USVRZX1BSRVNFTlQgICAgICAgICAgMHgwDQoNCisNCg0KKyNkZWZpbmUg QVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlkgICAweDINCg0KKyNkZWZp bmUgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRVhJVCAgICAweDgyDQoNCisj ZGVmaW5lIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX0VSUk9SICAgICAgICAgICAgMHgwDQoN CisNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX09GRlNFVF9OT19CT09UQUJMRV9NRURJQSAgICAg ICAweDANCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX09GRlNFVF9DSEFTU0lTX0lOVFJVU0lPTiAg ICAgICAweDANCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IHNvdXJjZSB0eXBl DQoNCisvLw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAgICAgICAg ICAgICAgIDB4NjgNCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IHNldmVyaXR5 DQoNCisvLw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTU9OSVRPUiAgICAgICAg ICAgICAgIDB4MQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FM ICAgICAgICAgIDB4OA0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfQ1JJVElDQUwg ICAgICAgICAgICAgIDB4MTANCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9S RUNPVkVSQUJMRSAgICAgICAweDIwDQoNCisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBzZW5z b3IgZGV2aWNlDQoNCisvLw0KDQorI2RlZmluZSBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJ RklFRCAgICAgICAgICAgIDB4RkYNCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIHNlbnNv ciBudW1iZXINCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lG SUVEICAgICAgICAgICAgMHhGRg0KDQorDQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2UgRW50aXR5 DQoNCisvLw0KDQorDQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfVU5TUEVDSUZJRUQgICAgICAg ICAgICAgICAgICAgMHgwDQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfUFJPQ0VTU09SICAgICAg ICAgICAgICAgICAgICAgMHgzDQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfRElTSyAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg0DQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfU1lTVEVNX0JP QVJEICAgICAgICAgICAgICAgICAgMHg3DQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfQUREX0lO X0NBUkQgICAgICAgICAgICAgICAgICAgMHhCDQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfQklP UyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMg0KDQorI2RlZmluZSBBU0ZNU0dfRU5USVRZ X01FTU9SWV9ERVZJQ0UgICAgICAgICAgICAgICAgIDB4MjANCg0KKw0KDQorLy8NCg0KKy8vIEFz ZiBtZXNzYWdlIGVudGl0eSBpbnN0YW5jZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VOVElU WV9JTlNUQU5DRV9VTlNQRUNJRklFRCAgICAgICAgICAweDANCg0KKw0KDQorLy8NCg0KKy8vIEFz ZiBtZXNzYWdlIGV2ZW50IGRhdGENCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9EQVRB MSAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0MA0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRf REFUQV9VTlNQRUNJRklFRCAgICAgICAgICAgICAgIDB4MA0KDQorI2RlZmluZSBBU0ZNU0dfRVZF TlRfREFUQV9NRU1PUllfSU5JVElBTElaQVRJT04gICAgIDB4MQ0KDQorI2RlZmluZSBBU0ZNU0df RVZFTlRfREFUQV9IQVJEX0RJU0tfSU5JVElBTElaQVRJT04gIDB4Mg0KDQorI2RlZmluZSBBU0ZN U0dfRVZFTlRfREFUQV9BUF9JTklUSUFMSVpBVElPTiAgICAgICAgIDB4Mw0KDQorI2RlZmluZSBB U0ZNU0dfRVZFTlRfREFUQV9TRVRVUF9JTklUSUFMSVpBVElPTiAgICAgIDB4NQ0KDQorI2RlZmlu ZSBBU0ZNU0dfRVZFTlRfREFUQV9VU0JfUkVTT1VSQ0VfQ09ORklHICAgICAgIDB4Ng0KDQorI2Rl ZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9QQ0lfUkVTT1VSQ0VfQ09ORklHICAgICAgIDB4Nw0KDQor I2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9WSURFT19JTklUSUFMSVpBVElPTiAgICAgIDB4OQ0K DQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9DQUNIRV9JTklUSUFMSVpBVElPTiAgICAgIDB4 QQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9LRVlCT0FSRF9JTklUSUFMSVpBVElPTiAg IDB4Qw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9CT0FSRF9JTklUSUFMSVpBVElPTiAg ICAgIDB4MTQNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfS0VZQk9BUkRfVEVTVCAgICAg ICAgICAgICAweDE3DQoNCisNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfTk9fTUVNT1JZ ICAgICAgICAgICAgICAgICAweDENCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfSEFSRF9E SVNLX0ZBSUxVUkUgICAgICAgICAweDMNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfS0VZ Qk9BUkRfRkFJTFVSRSAgICAgICAgICAweDcNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFf Tk9fVklERU8gICAgICAgICAgICAgICAgICAweEENCg0KKw0KDQorI2VuZGlmIC8vX19BU0ZfSF9f DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZl YXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFu ZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uMTAzOGU3N2I1ZA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYNCkBAIC0wLDAgKzEsOCBAQA0KKyMjIEBmaWxlDQoNCisj ICBGREYgZmlsZSBmb3IgcG9zdC1tZW1vcnkgbW9kdWxlcyB0aGF0IGVuYWJsZSBJbnRlbGxpZ2Vu dCBQbGF0Zm9ybSBNYW5hZ2VtZW50IEludGVyZmFjZS4NCg0KKyMNCg0KKyMgQ29weXJpZ2h0IChj KSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoNCisNCg0KK0lO RiBBc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUuaW5mDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJl cy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1v cnkuZmRmIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0luY2x1ZGUvUHJlTWVtb3J5LmZkZg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAuLmE3MjM1NDQ4NTUNCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL1ByZU1lbW9yeS5mZGYNCkBA IC0wLDAgKzEsOCBAQA0KKyMjIEBmaWxlDQoNCisjICBGREYgZmlsZSBmb3IgcHJlLW1lbW9yeSBt b2R1bGVzIHRoYXQgZW5hYmxlIEludGVsbGlnZW50IFBsYXRmb3JtIE1hbmFnZW1lbnQgSW50ZXJm YWNlLg0KDQorIw0KDQorIyBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KDQorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KDQorIyMNCg0KKw0KDQorSU5GIEFzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBl aS5pbmYNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQv QXNmRmVhdHVyZVBrZy9JbmNsdWRlL1Byb3RvY29sL0FzZlByb3RvY29sLmggYi9GZWF0dXJlcy9J bnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qcm90b2NvbC9B c2ZQcm90b2NvbC5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZDNh ZjBmYmE3Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFu YWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUHJvdG9jb2wvQXNmUHJvdG9jb2wuaA0KQEAg LTAsMCArMSw1NyBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgcHJvdG9jb2wgZGVmaW5lLg0KDQor DQoNCisgIENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQoNCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQoNCisqKi8NCg0KKw0KDQorI2lmbmRlZiBfX0FTRl9QUk9UT0NPTF9IX18NCg0KKyNkZWZpbmUg X19BU0ZfUFJPVE9DT0xfSF9fDQoNCisNCg0KKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1Nt QnVzLmg+DQoNCisNCg0KKyNkZWZpbmUgQVNGX1BST1RPQ09MX0dVSUQgXA0KDQorICB7IFwNCg0K KyAgICAweGRlYzg5ODI3LCAweDhhN2UsIDB4NDVlMCwgeyAweGJjLCAweGI1LCAweGQ1LCAweDNi LCAweDQ2LCAweDE0LCAweGFkLCAweGI4IH0gXA0KDQorICB9DQoNCisNCg0KKyNwcmFnbWEgcGFj ayhwdXNoLCAxKQ0KDQorDQoNCisvKioNCg0KKyAgVGhpcyBpcyB0aGUgQVNGIEJvb3QgT3B0aW9u IGRhdGEgc3RydWN0dXJlLg0KDQorDQoNCisqKi8NCg0KK3R5cGVkZWYgc3RydWN0IHsNCg0KKyAg VUlOVDggICAgIFN1YkNvbW1hbmQ7DQoNCisgIFVJTlQ4ICAgICBWZXJzaW9uOw0KDQorICBVSU5U MzIgICAgSWFuYUlkOw0KDQorICBVSU5UOCAgICAgU3BlY2lhbENvbW1hbmQ7DQoNCisgIFVJTlQx NiAgICBTcGVjQ21kUGFyYW1ldGVyOw0KDQorICBVSU5UMTYgICAgQm9vdE9wdGlvbkJpdDsNCg0K KyAgVUlOVDE2ICAgIE9lbVBhcmFtZXRlcjsNCg0KK30gQVNGX0JPT1RfT1BUSU9OOw0KDQorDQoN CisvKioNCg0KKyAgVGhpcyBpcyB0aGUgQVNGIFBVU0ggRVZFTlQgU3RydWN0dXJlLg0KDQorDQoN CisqKi8NCg0KK3R5cGVkZWYgRUZJX1NUQVRVUyAoRUZJQVBJICpBU0ZfUFVTSF9FVkVOVCkoDQoN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOIFVJTlQ4IENv bW1hbmQsDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElO IFVJTlROIExlbmd0aCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSU4gVUlOVDggKkFTRkV2ZW50DQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBBTUkgQVNG IFByb3RvY29sIFN0cnVjdHVyZS4NCg0KKw0KDQorKiovDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoN CisgIEFTRl9QVVNIX0VWRU5UICAgICBQdXNoRXZlbnQ7DQoNCisgIEFTRl9CT09UX09QVElPTiAg ICAqQm9vdE9wdGlvbjsNCg0KK30gQVNGX1BST1RPQ09MOw0KDQorDQoNCisjcHJhZ21hIHBhY2so cG9wKQ0KDQorDQoNCitleHRlcm4gRUZJX0dVSUQgIGdBc2ZQcm90b2NvbEd1aWQ7DQoNCisNCg0K KyNlbmRpZiAvL19fQVNGX1BST1RPQ09MX0hfXw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL1JlYWRtZS5tZCBiL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9SZWFkbWUubWQNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5mMThiMWJmYjA3DQotLS0gL2Rldi9u dWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQ a2cvUmVhZG1lLm1kDQpAQCAtMCwwICsxLDYzIEBADQorIyBPdmVydmlldw0KDQorKiAqKkZlYXR1 cmUgTmFtZToqKiBBbGVydCBTdGFuZGFyZCBGb3JtYXQgKEFTRikNCg0KKyogKipQSSBQaGFzZShz KSBTdXBwb3J0ZWQ6KiogUEVJLCBEWEUNCg0KKyogKipTTU0gUmVxdWlyZWQ/KiogTm8NCg0KKw0K DQorTW9yZSBJbmZvcm1hdGlvbjoNCg0KKyogW0FTRiBTcGVjaWZpY2F0aW9uIHYyLjBdKGh0dHBz Oi8vd3d3LmRtdGYub3JnL3NpdGVzL2RlZmF1bHQvZmlsZXMvc3RhbmRhcmRzL2RvY3VtZW50cy9E U1AwMTM2LnBkZikNCg0KKw0KDQorIyMgUHVycG9zZQ0KDQorVGhlIEFTRiBmZWF0dXJlIHByb3Zp ZGVzIGZpcm13YXJlIGZ1bmN0aW9uYWxpdHkgdGhhdCBpbXBsZW1lbnRzIGJlaGF2aW9yIGRlc2Ny aWJlZCBpbiB0aGUgQVNGIHNwZWNpZmljYXRpb24uDQoNCitBbGVydGluZyB0ZWNobm9sb2dpZXMg cHJvdmlkZSBhZHZhbmNlIHdhcm5pbmcgYW5kIHN5c3RlbSBmYWlsdXJlIGluZGljYXRpb24gZnJv bSBtYW5hZ2VkIGNsaWVudHMgdG8gcmVtb3RlIG1hbmFnZW1lbnQgY29uc29sZXMuIE9uY2UgYSBz eXN0ZW0gYWxlcnQgcHJvdmlkZXMgaXRzIHdhcm5pbmcgb3IgZXJyb3IgcmVwb3J0LCB0aGUgbmV4 dCBzdGVwIGluIHJlbW90ZSBzeXN0ZW0gbWFuYWdlYWJpbGl0eSBpcyB0byBhbGxvdyBjb3JyZWN0 aXZlIGFjdGlvbiB0byBiZSB0YWtlbiDigJQgdGhlc2UgYWN0aW9ucyBpbmNsdWRlIHRoZSBhYmls aXR5IHRvIHJlbW90ZWx5IHJlc2V0IG9yIHBvd2VyLW9uIG9yIC1vZmYgdGhlIGNsaWVudCBzeXN0 ZW0uDQoNCisNCg0KKyMgSGlnaC1MZXZlbCBUaGVvcnkgb2YgT3BlcmF0aW9uDQoNCitCYXNlcyBv biB0aGUgc3lzdGVtIHJlcG9ydGVkIHN0YXR1cyBjb2RlLCB0aGUgZHJpdmVyIHdpbGwgc2VuZCB3 YXJuaW5nIG9yIHN5c3RlbSBmYWlsdXJlIGluZGljYXRpb24gZnJvbSBtYW5hZ2VkIGNsaWVudHMg dG8gcmVtb3RlIG1hbmFnZW1lbnQgY29uc29sZXMuDQoNCisNCg0KKyMjIEZpcm13YXJlIFZvbHVt ZXMNCg0KKyogQXNmUGVpOiBQcmVNZW1vcnkNCg0KKyogQXNmRHhlOiBQb3N0TWVtb3J5DQoNCisN Cg0KKyMjIE1vZHVsZXMNCg0KKyogQXNmUGVpDQoNCisqIEFzZkR4ZQ0KDQorDQoNCisjIyBBc2ZQ ZWkNCg0KK0FzZiBpbml0aWFsaXplIGFuZCBzZW5kIHN0YW5kYXJkIHByb2dyZXNzIG1lc3NhZ2Vz IHRvIE5JQy4NCg0KKw0KDQorIyMgQXNmRHhlDQoNCitJbnN0YWxsIEFzZiBBY3BpIHRhYmxlIGFu ZCByZWdpc3RlciBSU0MgaGFuZGxlIHRvIHNlbmQgcHJvZ3Jlc3MvZXJyb3IgZXZlbnQgbG9ncyB0 byBOSUMuDQoNCitQcm9kdWNlIEFzZiBEeGUgcHJvdG9jb2wuDQoNCisNCg0KKyMjIDxMaWJyYXJ5 IE5hbWU+DQoNCitOL0Egbm93Lg0KDQorDQoNCisjIyBLZXkgRnVuY3Rpb25zDQoNCitBc2ZQdXNo RXZlbnQ6IFRoaXMgZnVuY3Rpb24gaXMgcHJvdmlkZWQgaW4gcHJvdG9jb2wsIGNhbGwgdGhpcyBm dW5jdGlvbiB0byBzZW5kIG1lc3NhZ2VzIHRvIE5JQy4NCg0KKw0KDQorIyMgQ29uZmlndXJhdGlv bg0KDQorRm9yIFBjZENvbnRyb2xEYXRhQXJyYXlzIHN0cnVjdHVyZSBpbmZvcm1hdGlvbiwgcGxl YXNlIGNoZWNrIEFzZjIuMCBzcGVjIGNoYXB0ZXIgNC4xLjIuNSBBU0ZfQ09OVFJPTERBVEEuDQoN CisNCg0KKyMjIERhdGEgRmxvd3MNCg0KK0FzZlB1c2hFdmVudCgpIC0+IHRocm91Z2ggU21CdXMg LT4gTklDIC0+IFJlbW90ZSBtYW5hZ2VtZW50IGNvbnNvbGVzDQoNCisNCg0KKyMjIENvbnRyb2wg Rmxvd3MNCg0KK04vQSBub3cuDQoNCisNCg0KKyMjIEJ1aWxkIEZsb3dzDQoNCitUaGVyZSBpcyBu b3Qgc3BlY2lhbCBidWlsZCBmbG93Lg0KDQorDQoNCisjIyBUZXN0IFBvaW50IFJlc3VsdHMNCg0K K1RoZXJlIGFyZSBub3QgdGVzdCBwb2ludHMgaW1wbGVtZW50ZWQuDQoNCisNCg0KKyMjIEZ1bmN0 aW9uYWwgRXhpdCBDcml0ZXJpYQ0KDQorQ2hlY2sgQXNmIEFjcGkgdGFibGUNCg0KK0NoZWNrIHRo ZSBldmVudCBsb2cgaW4gcmVtb3RlIG1hbmFnZW1lbnQgY29uc29sZXMNCg0KKw0KDQorIyMgRmVh dHVyZSBFbmFibGluZyBDaGVja2xpc3QNCg0KK1BjZEFzZkZlYXR1cmVFbmFibGUgdG8gZW5hYmxl IHRoaXMgZmVhdHVyZS4NCg0KKw0KDQorIyMgUGVyZm9ybWFuY2UgSW1wYWN0DQoNCitUaGVyZSBp cyBubyBwZXJmb3JtYW5jZSBpbXBhY3QuDQoNCisNCg0KKyMjIENvbW1vbiBPcHRpbWl6YXRpb25z DQoNCitOL0Egbm93Lg0KDQotLQ0KMi4zNi4wLndpbmRvd3MuMQ0KLVRoZSBpbmZvcm1hdGlvbiBj b250YWluZWQgaW4gdGhpcyBtZXNzYWdlIG1heSBiZSBjb25maWRlbnRpYWwgYW5kIHByb3ByaWV0 YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVuZHMgKEFNSSkuIFRoaXMgY29tbXVuaWNhdGlvbiBpcyBp bnRlbmRlZCB0byBiZSByZWFkIG9ubHkgYnkgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdo b20gaXQgaXMgYWRkcmVzc2VkIG9yIGJ5IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUgcmVhZGVyIG9m IHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBu b3RpY2UgdGhhdCBhbnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgbWVzc2FnZSwgaW4gYW55IGZvcm0s IGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIFBsZWFzZSBwcm9tcHRseSBub3RpZnkgdGhlIHNlbmRl ciBieSByZXBseSBlLW1haWwgb3IgYnkgdGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwgYW5kIHRo ZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0K