From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 54196AC1AAD for ; Fri, 10 Nov 2023 23:59:39 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=XYywM33Dt7Y0LOz4Q5F1oep5IcM7DBHhC/r4eS/e8PY=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1699660778; v=1; b=F8do9LNBUqIonqfbrjaNYd3XXLqmQiceBIPQdLlg0pCnC+i+bfBSaEdwMDUv2bz8/MWtf6oy FpFdBi6nX+KXVgKXZJI7UTeU/SxzyWBX1Irs+kCPI6DiIXADEJrTQ7vQIibLvyrCLGOhTMSVy8X /ED6UhqgoFD8j8MliLKqBSCc= X-Received: by 127.0.0.2 with SMTP id 5qqEYY7687511xOlntOoR0Aq; Fri, 10 Nov 2023 15:59:38 -0800 X-Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.groups.io with SMTP id smtpd.web11.42846.1699660775918557786 for ; Fri, 10 Nov 2023 15:59:36 -0800 X-Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-306-3bf9crnJP4-JdVF-8ZrdPg-1; Fri, 10 Nov 2023 18:59:31 -0500 X-MC-Unique: 3bf9crnJP4-JdVF-8ZrdPg-1 X-Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 95E95185A782; Fri, 10 Nov 2023 23:59:31 +0000 (UTC) X-Received: from lacos-laptop-9.usersys.redhat.com (unknown [10.39.192.173]) by smtp.corp.redhat.com (Postfix) with ESMTP id BA71FC1596F; Fri, 10 Nov 2023 23:59:30 +0000 (UTC) From: "Laszlo Ersek" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Gerd Hoffmann , Jiewen Yao Subject: [edk2-devel] [PATCH 23/37] OvmfPkg: remove gEfiFirmwareVolumeProtocolGuid Date: Sat, 11 Nov 2023 00:58:06 +0100 Message-Id: <20231110235820.644381-24-lersek@redhat.com> In-Reply-To: <20231110235820.644381-1-lersek@redhat.com> References: <20231110235820.644381-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,lersek@redhat.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 24vs0fA7cQe51LNyOt5OS0Gcx7686176AA= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="US-ASCII"; x-default=true X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=F8do9LNB; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=redhat.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io QXQgdGhpcyBwb2ludCwgZ0VmaUZpcm13YXJlVm9sdW1lUHJvdG9jb2xHdWlkIGlzIHVudXNlZDsg cmVtb3ZlIGl0LgoKVGhpcyBzaHJpbmtzIHRoZSBsaXN0IG9mIHJlc291cmNlcyBzY2hlZHVsZWQg Zm9yIHJlbW92YWwgdG86CgotIEdVSURzIChwcm90b2NvbHMgb3Igb3RoZXJ3aXNlKToKICAtIFNZ U1RFTV9ST01fRklMRV9HVUlEICgxNTQ3QjRGMy0zRThBLTRGRUYtODFDOC0zMjhFRDY0N0FCMUEp CiAgLSBnRWZpTGVnYWN5ODI1OVByb3RvY29sR3VpZAogIC0gZ0VmaUxlZ2FjeUJpb3NQbGF0Zm9y bVByb3RvY29sR3VpZAogIC0gZ0VmaUxlZ2FjeUJpb3NQcm90b2NvbEd1aWQKICAtIGdFZmlMZWdh Y3lJbnRlcnJ1cHRQcm90b2NvbEd1aWQKCi0gaGVhZGVyczoKICAtIEZyYW1ld29ya0R4ZS5oCiAg LSBQcm90b2NvbC9MZWdhY3k4MjU5LmgKICAtIFByb3RvY29sL0xlZ2FjeUJpb3MuaAogIC0gUHJv dG9jb2wvTGVnYWN5Qmlvc1BsYXRmb3JtLmgKICAtIFByb3RvY29sL0xlZ2FjeUludGVycnVwdC5o CgpDYzogQXJkIEJpZXNoZXV2ZWwgPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+CkNjOiBHZXJk IEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4KQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9A aW50ZWwuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9NDU4OApTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29t PgotLS0KIE92bWZQa2cvT3ZtZlBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MSAtCiBPdm1mUGtnL0NzbS9JbmNsdWRlL1Byb3RvY29sL0Zpcm13YXJlVm9sdW1lLmggfCAzMzkg LS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMzQwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL092bWZQa2cvT3ZtZlBrZy5kZWMgYi9Pdm1mUGtnL092bWZQa2cuZGVjCmlu ZGV4IDQ1YTYxMDVkMzlkNi4uOTRhZDIyZDk1MDFiIDEwMDY0NAotLS0gYS9Pdm1mUGtnL092bWZQ a2cuZGVjCisrKyBiL092bWZQa2cvT3ZtZlBrZy5kZWMKQEAgLTE4Myw3ICsxODMsNiBAQCBbUHJv dG9jb2xzXQogICBnWGVuSW9Qcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgID0gezB4NmVm YWM4NGYsIDB4MGFiMCwgMHg0NzQ3LCB7MHg4MSwgMHhiZSwgMHg4NSwgMHg1NSwgMHg2MiwgMHg1 OSwgMHgwNCwgMHg0OX19DQogICBnSW9NbXVBYnNlbnRQcm90b2NvbEd1aWQgICAgICAgICAgICAg ID0gezB4Zjg3NzVkNTAsIDB4OGFiZCwgMHg0YWRmLCB7MHg5MiwgMHhhYywgMHg4NSwgMHgzZSwg MHg1MSwgMHhmNiwgMHhjOCwgMHhkY319DQogICBnRWZpTGVnYWN5ODI1OVByb3RvY29sR3VpZCAg ICAgICAgICAgID0gezB4MzgzMjFkYmEsIDB4NGZlMCwgMHg0ZTE3LCB7MHg4YSwgMHhlYywgMHg0 MSwgMHgzMCwgMHg1NSwgMHhlYSwgMHhlZCwgMHhjMX19DQotICBnRWZpRmlybXdhcmVWb2x1bWVQ cm90b2NvbEd1aWQgICAgICAgID0gezB4Mzg5Rjc1MUYsIDB4MTgzOCwgMHg0Mzg4LCB7MHg4Mywg MHg5MCwgMHhjZCwgMHg4MSwgMHg1NCwgMHhiZCwgMHgyNywgMHhmOH19DQogICBnRWZpTGVnYWN5 Qmlvc1Byb3RvY29sR3VpZCAgICAgICAgICAgID0gezB4ZGI5YTFlM2QsIDB4NDVjYiwgMHg0YWJi LCB7MHg4NSwgMHgzYiwgMHhlNSwgMHgzOCwgMHg3ZiwgMHhkYiwgMHgyZSwgMHgyZH19DQogICBn RWZpTGVnYWN5Qmlvc1BsYXRmb3JtUHJvdG9jb2xHdWlkICAgID0gezB4NzgzNjU4YTMsIDB4NDE3 MiwgMHg0NDIxLCB7MHhhMiwgMHg5OSwgMHhlMCwgMHgwOSwgMHgwNywgMHg5YywgMHgwYywgMHhi NH19DQogICBnRWZpTGVnYWN5SW50ZXJydXB0UHJvdG9jb2xHdWlkICAgICAgID0gezB4MzFjZTU5 M2QsIDB4MTA4YSwgMHg0ODVkLCB7MHhhZCwgMHhiMiwgMHg3OCwgMHhmMiwgMHgxZiwgMHgyOSwg MHg2NiwgMHhiZX19DQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9Dc20vSW5jbHVkZS9Qcm90b2NvbC9G aXJtd2FyZVZvbHVtZS5oIGIvT3ZtZlBrZy9Dc20vSW5jbHVkZS9Qcm90b2NvbC9GaXJtd2FyZVZv bHVtZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYWMwM2MxMWM0MDguLjAwMDAw MDAwMDAwMAotLS0gYS9Pdm1mUGtnL0NzbS9JbmNsdWRlL1Byb3RvY29sL0Zpcm13YXJlVm9sdW1l LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzMzkgKzAsMCBAQAotLyoqIEBmaWxlDQotICBUaGlzIGZp bGUgZGVjbGFyZXMgdGhlIEZpcm13YXJlIFZvbHVtZSBQcm90b2NvbC4NCi0NCi0gIFRoZSBGaXJt d2FyZSBWb2x1bWUgUHJvdG9jb2wgcHJvdmlkZXMgZmlsZS1sZXZlbCBhY2Nlc3MgdG8gdGhlIGZp cm13YXJlIHZvbHVtZS4NCi0gIEVhY2ggZmlybXdhcmUgdm9sdW1lIGRyaXZlciBtdXN0IHByb2R1 Y2UgYW4gaW5zdGFuY2Ugb2YgdGhlIEZpcm13YXJlIFZvbHVtZQ0KLSAgUHJvdG9jb2wgaWYgdGhl IGZpcm13YXJlIHZvbHVtZSBpcyB0byBiZSB2aXNpYmxlIHRvIHRoZSBzeXN0ZW0uIFRoZSBGaXJt d2FyZQ0KLSAgVm9sdW1lIFByb3RvY29sIGFsc28gcHJvdmlkZXMgbWVjaGFuaXNtcyBmb3IgZGV0 ZXJtaW5pbmcgYW5kIG1vZGlmeWluZyBzb21lDQotICBhdHRyaWJ1dGVzIG9mIHRoZSBmaXJtd2Fy ZSB2b2x1bWUuDQotDQotQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KLVNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQotDQotICBAcGFyIFJldmlzaW9uIFJlZmVyZW5jZToNCi0gIFRo aXMgcHJvdG9jb2wgaXMgZGVmaW5lZCBpbiBGaXJtd2FyZSBWb2x1bWUgc3BlY2lmaWNhdGlvbi4N Ci0gIFZlcnNpb24gMC45Lg0KLQ0KLSoqLw0KLQ0KLSNpZm5kZWYgX0ZJUk1XQVJFX1ZPTFVNRV9I Xw0KLSNkZWZpbmUgX0ZJUk1XQVJFX1ZPTFVNRV9IXw0KLQ0KLS8vDQotLy8gRmlybXdhcmUgVm9s dW1lIFByb3RvY29sIEdVSUQgZGVmaW5pdGlvbg0KLS8vDQotI2RlZmluZSBFRklfRklSTVdBUkVf Vk9MVU1FX1BST1RPQ09MX0dVSUQgXA0KLSAgeyBcDQotICAgIDB4Mzg5Rjc1MUYsIDB4MTgzOCwg MHg0Mzg4LCB7MHg4MywgMHg5MCwgMHhDRCwgMHg4MSwgMHg1NCwgMHhCRCwgMHgyNywgMHhGOCB9 IFwNCi0gIH0NCi0NCi0jZGVmaW5lIEZWX0RFVklDRV9TSUdOQVRVUkUgIFNJR05BVFVSRV8zMiAo J18nLCAnRicsICdWJywgJ18nKQ0KLQ0KLXR5cGVkZWYgc3RydWN0IF9FRklfRklSTVdBUkVfVk9M VU1FX1BST1RPQ09MIEVGSV9GSVJNV0FSRV9WT0xVTUVfUFJPVE9DT0w7DQotDQotLy8NCi0vLyBG UkFNRVdPUktfRUZJX0ZWX0FUVFJJQlVURVMgYml0IGRlZmluaXRpb25zDQotLy8NCi10eXBlZGVm IFVJTlQ2NCBGUkFNRVdPUktfRUZJX0ZWX0FUVFJJQlVURVM7DQotDQotLy8NCi0vLyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0v LyBGUkFNRVdPUktfRUZJX0ZWX0FUVFJJQlVURVMgYml0IGRlZmluaXRpb25zDQotLy8gKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQot Ly8NCi0jZGVmaW5lIEVGSV9GVl9SRUFEX0RJU0FCTEVfQ0FQICAweDAwMDAwMDAwMDAwMDAwMDFV TEwNCi0jZGVmaW5lIEVGSV9GVl9SRUFEX0VOQUJMRV9DQVAgICAweDAwMDAwMDAwMDAwMDAwMDJV TEwNCi0jZGVmaW5lIEVGSV9GVl9SRUFEX1NUQVRVUyAgICAgICAweDAwMDAwMDAwMDAwMDAwMDRV TEwNCi0NCi0jZGVmaW5lIEVGSV9GVl9XUklURV9ESVNBQkxFX0NBUCAgMHgwMDAwMDAwMDAwMDAw MDA4VUxMDQotI2RlZmluZSBFRklfRlZfV1JJVEVfRU5BQkxFX0NBUCAgIDB4MDAwMDAwMDAwMDAw MDAxMFVMTA0KLSNkZWZpbmUgRUZJX0ZWX1dSSVRFX1NUQVRVUyAgICAgICAweDAwMDAwMDAwMDAw MDAwMjBVTEwNCi0NCi0jZGVmaW5lIEVGSV9GVl9MT0NLX0NBUCAgICAgICAgICAgICAgIDB4MDAw MDAwMDAwMDAwMDA0MFVMTA0KLSNkZWZpbmUgRUZJX0ZWX0xPQ0tfU1RBVFVTICAgICAgICAgICAg MHgwMDAwMDAwMDAwMDAwMDgwVUxMDQotI2RlZmluZSBFRklfRlZfV1JJVEVfUE9MSUNZX1JFTElB QkxFICAweDAwMDAwMDAwMDAwMDAxMDBVTEwNCi0NCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRf Q0FQICAweDAwMDAwMDAwMDAwMDgwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMiAg ICAweDAwMDAwMDAwMDAwMTAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfNCAgICAw eDAwMDAwMDAwMDAwMjAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfOCAgICAweDAw MDAwMDAwMDAwNDAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMTYgICAweDAwMDAw MDAwMDAwODAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMzIgICAweDAwMDAwMDAw MDAxMDAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfNjQgICAweDAwMDAwMDAwMDAy MDAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMTI4ICAweDAwMDAwMDAwMDA0MDAw MDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMjU2ICAweDAwMDAwMDAwMDA4MDAwMDBV TEwNCi0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfNTEyICAweDAwMDAwMDAwMDEwMDAwMDBVTEwN Ci0jZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMUsgICAweDAwMDAwMDAwMDIwMDAwMDBVTEwNCi0j ZGVmaW5lIEVGSV9GVl9BTElHTk1FTlRfMksgICAweDAwMDAwMDAwMDQwMDAwMDBVTEwNCi0jZGVm aW5lIEVGSV9GVl9BTElHTk1FTlRfNEsgICAweDAwMDAwMDAwMDgwMDAwMDBVTEwNCi0jZGVmaW5l IEVGSV9GVl9BTElHTk1FTlRfOEsgICAweDAwMDAwMDAwMTAwMDAwMDBVTEwNCi0jZGVmaW5lIEVG SV9GVl9BTElHTk1FTlRfMTZLICAweDAwMDAwMDAwMjAwMDAwMDBVTEwNCi0jZGVmaW5lIEVGSV9G Vl9BTElHTk1FTlRfMzJLICAweDAwMDAwMDAwNDAwMDAwMDBVTEwNCi0jZGVmaW5lIEVGSV9GVl9B TElHTk1FTlRfNjRLICAweDAwMDAwMDAwODAwMDAwMDBVTEwNCi0NCi0vLw0KLS8vIFByb3RvY29s IEFQSSBkZWZpbml0aW9ucw0KLS8vDQotDQotLyoqDQotICBSZXRyaWV2ZXMgYXR0cmlidXRlcywg aW5zdXJlcyBwb3NpdGl2ZSBwb2xhcml0eSBvZiBhdHRyaWJ1dGUgYml0cywgYW5kIHJldHVybnMN Ci0gIHJlc3VsdGluZyBhdHRyaWJ1dGVzIGluIGFuIG91dHB1dCBwYXJhbWV0ZXIuDQotDQotICBA cGFyYW0gIFRoaXMgICAgICAgICAgICAgICAgICBJbmRpY2F0ZXMgdGhlIEVGSV9GSVJNV0FSRV9W T0xVTUVfUFJPVE9DT0wgaW5zdGFuY2UuDQotICBAcGFyYW0gIEF0dHJpYnV0ZXMgICAgICAgICAg ICBPdXRwdXQgYnVmZmVyIGNvbnRhaW5pbmcgYXR0cmlidXRlcy4NCi0NCi0gIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICAgICAgIFRoZSBmaXJtd2FyZSB2b2x1bWUgYXR0cmlidXRlcyB3ZXJlIHJl dHVybmVkLg0KLSoqLw0KLXR5cGVkZWYNCi1FRklfU1RBVFVTDQotKEVGSUFQSSAqRlJBTUVXT1JL X0VGSV9GVl9HRVRfQVRUUklCVVRFUykoDQotICBJTiAgRUZJX0ZJUk1XQVJFX1ZPTFVNRV9QUk9U T0NPTCAgICAgICAgICAgICpUaGlzLA0KLSAgT1VUIEZSQU1FV09SS19FRklfRlZfQVRUUklCVVRF UyAgICAgICAgICAgICAqQXR0cmlidXRlcw0KLSAgKTsNCi0NCi0vKioNCi0gIFNldHMgdm9sdW1l IGF0dHJpYnV0ZXMNCi0NCi0gIEBwYXJhbSAgVGhpcyAgICAgICAgICAgICAgICAgIEluZGljYXRl cyB0aGUgRUZJX0ZJUk1XQVJFX1ZPTFVNRV9QUk9UT0NPTCBpbnN0YW5jZS4NCi0gIEBwYXJhbSAg QXR0cmlidXRlcyAgICAgICAgICAgIE9uIGlucHV0LCBBdHRyaWJ1dGVzIGlzIGEgcG9pbnRlciB0 byBhbg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX0ZWX0FUVFJJQlVURVMg Y29udGFpbmluZyB0aGUgZGVzaXJlZCBmaXJtd2FyZQ0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdm9sdW1lIHNldHRpbmdzLiBPbiBzdWNjZXNzZnVsIHJldHVybiwgaXQgY29udGFp bnMNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBuZXcgc2V0dGluZ3Mgb2Yg dGhlIGZpcm13YXJlIHZvbHVtZS4gT24NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc3VjY2Vzc2Z1bCByZXR1cm4sIEF0dHJpYnV0ZXMgaXMgbm90IG1vZGlmaWVkDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIGZpcm13YXJlIHZvbHVtZSBzZXR0aW5n cyBhcmUgbm90IGNoYW5nZWQuDQotDQotICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBB IGJpdCBpbiBBdHRyaWJ1dGVzIHdhcyBpbnZhbGlkLg0KLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAg ICAgICAgICAgVGhlIHJlcXVlc3RlZCBmaXJtd2FyZSB2b2x1bWUgYXR0cmlidXRlcyB3ZXJlIHNl dA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRoZSByZXN1bHRpbmcgRUZJ X0ZWX0FUVFJJQlVURVMgaXMgcmV0dXJuZWQgaW4NCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEF0dHJpYnV0ZXMuDQotICBAcmV0dmFsIEVGSV9BQ0NFU1NfREVOSUVEICAgICBUaGUg RGV2aWNlIGlzIGxvY2tlZCBhbmQgZG9lcyBub3QgcGVybWl0IG1vZGlmaWNhdGlvbi4NCi0NCi0q Ki8NCi10eXBlZGVmDQotRUZJX1NUQVRVUw0KLShFRklBUEkgKkZSQU1FV09SS19FRklfRlZfU0VU X0FUVFJJQlVURVMpKA0KLSAgSU4gRUZJX0ZJUk1XQVJFX1ZPTFVNRV9QUk9UT0NPTCAgICAgICAq VGhpcywNCi0gIElOIE9VVCBGUkFNRVdPUktfRUZJX0ZWX0FUVFJJQlVURVMgICAgKkF0dHJpYnV0 ZXMNCi0gICk7DQotDQotLyoqDQotICBSZWFkIHRoZSByZXF1ZXN0ZWQgZmlsZSAoTmFtZUd1aWQp IG9yIGZpbGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZmlybXdhcmUgdm9sdW1lDQotICBhbmQgcmV0 dXJucyBkYXRhIGluIEJ1ZmZlci4NCi0NCi0gIEBwYXJhbSAgVGhpcyAgICAgICAgICAgICAgICAg IFRoZSBFRklfRklSTVdBUkVfVk9MVU1FX1BST1RPQ09MIGluc3RhbmNlLg0KLSAgQHBhcmFtICBO YW1lR3VpZCAgICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gRUZJX0dVSUQsIHdoaWNoIGlzIHRo ZSBmaWxlbmFtZSBvZg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZpbGUg dG8gcmVhZC4NCi0gIEBwYXJhbSAgQnVmZmVyICAgICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IHBvaW50ZXIgdG8gYnVmZmVyIGluIHdoaWNoIGNvbnRlbnRzIG9mIGZpbGUgYXJlIHJldHVybmVk Lg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPg0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgQnVmZmVyIGlzIE5VTEwsIG9ubHkgdHlwZSwgYXR0cmlidXRl cywgYW5kIHNpemUNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSByZXR1cm5l ZCBhcyB0aGVyZSBpcyBubyBvdXRwdXQgYnVmZmVyLg0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGJyPg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgQnVmZmVy ICE9IE5VTEwgYW5kICpCdWZmZXIgPT0gTlVMTCwgdGhlIG91dHB1dA0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnVmZmVyIGlzIGFsbG9jYXRlZCBmcm9tIEJTIHBvb2wgYnkgUmVh ZEZpbGUuDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+DQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJZiBCdWZmZXIgIT0gTlVMTCBhbmQgKkJ1ZmZlciAhPSBO VUxMLCB0aGUgb3V0cHV0DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIg aGFzIGJlZW4gYWxsb2NhdGVkIGJ5IHRoZSBjYWxsZXIgYW5kIGlzIGJlaW5nDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgaW4uDQotICBAcGFyYW0gIEJ1ZmZlclNpemUg ICAgICAgICAgICBPbiBpbnB1dDogVGhlIGJ1ZmZlciBzaXplLiBPbiBvdXRwdXQ6IFRoZSBzaXpl DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCB0byBjb21wbGV0ZSB0 aGUgcmVhZC4NCi0gIEBwYXJhbSAgRm91bmRUeXBlICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRv IHRoZSB0eXBlIG9mIHRoZSBmaWxlIHdob3NlIGRhdGENCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlzIHJldHVybmVkLg0KLSAgQHBhcmFtICBGaWxlQXR0cmlidXRlcyAgICAgICAg VGhlIHBvaW50ZXIgdG8gYXR0cmlidXRlcyBvZiB0aGUgZmlsZSB3aG9zZSBkYXRhDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZXR1cm5lZC4NCi0gIEBwYXJhbSAgQXV0aGVu dGljYXRpb25TdGF0dXMgIFRoZSBwb2ludGVyIHRvIHRoZSBhdXRoZW50aWNhdGlvbiBzdGF0dXMg b2YgdGhlIGRhdGEuDQotDQotICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgICAgVGhl IGNhbGwgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4NCi0gIEByZXR2YWwgRUZJX1dBUk5fQlVGRkVS X1RPT19TTUFMTCBUaGUgYnVmZmVyIGlzIHRvbyBzbWFsbCB0byBjb250YWluIHRoZSByZXF1ZXN0 ZWQgb3V0cHV0Lg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBidWZm ZXIgZmlsbGVkLCBhbmQgdGhlIG91dHB1dCBpcyB0cnVuY2F0ZWQuDQotICBAcmV0dmFsIEVGSV9O T1RfRk9VTkQgICAgICAgICAgICAgTmFtZUd1aWQgd2FzIG5vdCBmb3VuZCBpbiB0aGUgZmlybXdh cmUgdm9sdW1lLg0KLSAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgICAgIEEgaGFyZHdh cmUgZXJyb3Igb2NjdXJyZWQgd2hlbiBhdHRlbXB0aW5nIHRvDQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWNjZXNzIHRoZSBmaXJtd2FyZSB2b2x1bWUuDQotICBAcmV0dmFs IEVGSV9BQ0NFU1NfREVOSUVEICAgICAgICAgVGhlIGZpcm13YXJlIHZvbHVtZSBpcyBjb25maWd1 cmVkIHRvIGRpc2FsbG93IHJlYWRzLg0KLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAg ICAgIEFuIGFsbG9jYXRpb24gZmFpbHVyZSBvY2N1cnJlZC4NCi0NCi0qKi8NCi10eXBlZGVmDQot RUZJX1NUQVRVUw0KLShFRklBUEkgKkZSQU1FV09SS19FRklfRlZfUkVBRF9GSUxFKSgNCi0gIElO IEVGSV9GSVJNV0FSRV9WT0xVTUVfUFJPVE9DT0wgICAqVGhpcywNCi0gIElOIEVGSV9HVUlEICAg ICAgICAgICAgICAgICAgICAgICAqTmFtZUd1aWQsDQotICBJTiBPVVQgVk9JRCAgICAgICAgICAg ICAgICAgICAgICAgKipCdWZmZXIsDQotICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgKkJ1ZmZlclNpemUsDQotICBPVVQgRUZJX0ZWX0ZJTEVUWVBFICAgICAgICAgICAgICAgKkZv dW5kVHlwZSwNCi0gIE9VVCBFRklfRlZfRklMRV9BVFRSSUJVVEVTICAgICAgICAqRmlsZUF0dHJp YnV0ZXMsDQotICBPVVQgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgKkF1dGhlbnRpY2F0 aW9uU3RhdHVzDQotICApOw0KLQ0KLS8qKg0KLSAgUmVhZCB0aGUgcmVxdWVzdGVkIHNlY3Rpb24g ZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUgYW5kIHJldHVybnMgZGF0YSBpbiBCdWZmZXIuDQotDQot ICBAcGFyYW0gIFRoaXMgICAgICAgICAgICAgICAgICBJbmRpY2F0ZXMgdGhlIEVGSV9GSVJNV0FS RV9WT0xVTUVfUFJPVE9DT0wgaW5zdGFuY2UuDQotICBAcGFyYW0gIE5hbWVHdWlkICAgICAgICAg ICAgICBGaWxlbmFtZSBpZGVudGlmeWluZyB0aGUgZmlsZSBmcm9tIHdoaWNoIHRvIHJlYWQuDQot ICBAcGFyYW0gIFNlY3Rpb25UeXBlICAgICAgICAgICBUaGUgc2VjdGlvbiB0eXBlIHRvIHJldHJp ZXZlLg0KLSAgQHBhcmFtICBTZWN0aW9uSW5zdGFuY2UgICAgICAgVGhlIGluc3RhbmNlIG9mIFNl Y3Rpb25UeXBlIHRvIHJldHJpZXZlLg0KLSAgQHBhcmFtICBCdWZmZXIgICAgICAgICAgICAgICAg UG9pbnRlciB0byBwb2ludGVyIHRvIGJ1ZmZlciBpbiB3aGljaCBjb250ZW50cyBvZg0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBmaWxlIGFyZSByZXR1cm5lZC4NCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxicj4NCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIEJ1ZmZlciBpcyBOVUxMLCBvbmx5IHR5cGUsIGF0dHJpYnV0ZXMsIGFuZCBzaXpl DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgcmV0dXJuZWQgYXMgdGhlcmUg aXMgbm8gb3V0cHV0IGJ1ZmZlci4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxi cj4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIEJ1ZmZlciAhPSBOVUxMIGFu ZCAqQnVmZmVyID09IE5VTEwsIHRoZSBvdXRwdXQNCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJ1ZmZlciBpcyBhbGxvY2F0ZWQgZnJvbSBCUyBwb29sIGJ5IFJlYWRGaWxlLg0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPg0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgQnVmZmVyICE9IE5VTEwgYW5kICpCdWZmZXIgIT0gTlVMTCwgdGhlIG91 dHB1dA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyIGhhcyBiZWVuIGFs bG9jYXRlZCBieSB0aGUgY2FsbGVyIGFuZCBpcyBiZWluZw0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFzc2VkIGluLg0KLSAgQHBhcmFtICBCdWZmZXJTaXplICAgICAgICAgICAg VGhlIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBzaXplIHBhc3NlZCBpbiwgYW5kIG9uDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgdGhlIHNpemUgcmVxdWlyZWQgdG8gY29t cGxldGUgdGhlIHJlYWQuDQotICBAcGFyYW0gIEF1dGhlbnRpY2F0aW9uU3RhdHVzICBUaGUgcG9p bnRlciB0byB0aGUgYXV0aGVudGljYXRpb24gc3RhdHVzIG9mIHRoZSBkYXRhLg0KLQ0KLSAgQHJl dHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgICBUaGUgY2FsbCBjb21wbGV0ZWQgc3VjY2Vz c2Z1bGx5Lg0KLSAgQHJldHZhbCBFRklfV0FSTl9CVUZGRVJfVE9PX1NNQUxMICBUaGUgYnVmZmVy IGlzIHRvbyBzbWFsbCB0byBjb250YWluIHRoZSByZXF1ZXN0ZWQgb3V0cHV0Lg0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgYnVmZmVyIGlzIGZpbGxlZCBhbmQgdGhl IG91dHB1dCBpcyB0cnVuY2F0ZWQuDQotICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAg ICAgIEFuIGFsbG9jYXRpb24gZmFpbHVyZSBvY2N1cnJlZC4NCi0gIEByZXR2YWwgRUZJX05PVF9G T1VORCAgICAgICAgICAgICAgVGhlIG5hbWUgd2FzIG5vdCBmb3VuZCBpbiB0aGUgZmlybXdhcmUg dm9sdW1lLg0KLSAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgICAgICBBIGhhcmR3YXJl IGVycm9yIG9jY3VycmVkIHdoZW4gYXR0ZW1wdGluZyB0bw0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhY2Nlc3MgdGhlIGZpcm13YXJlIHZvbHVtZS4NCi0gIEByZXR2YWwg RUZJX0FDQ0VTU19ERU5JRUQgICAgICAgICAgVGhlIGZpcm13YXJlIHZvbHVtZSBpcyBjb25maWd1 cmVkIHRvIGRpc2FsbG93IHJlYWRzLg0KLQ0KLSoqLw0KLXR5cGVkZWYNCi1FRklfU1RBVFVTDQot KEVGSUFQSSAqRlJBTUVXT1JLX0VGSV9GVl9SRUFEX1NFQ1RJT04pKA0KLSAgSU4gRUZJX0ZJUk1X QVJFX1ZPTFVNRV9QUk9UT0NPTCAgICpUaGlzLA0KLSAgSU4gRUZJX0dVSUQgICAgICAgICAgICAg ICAgICAgICAgICpOYW1lR3VpZCwNCi0gIElOIEVGSV9TRUNUSU9OX1RZUEUgICAgICAgICAgICAg ICBTZWN0aW9uVHlwZSwNCi0gIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN0 aW9uSW5zdGFuY2UsDQotICBJTiBPVVQgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgKipCdWZm ZXIsDQotICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgKkJ1ZmZlclNpemUsDQot ICBPVVQgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgKkF1dGhlbnRpY2F0aW9uU3RhdHVz DQotICApOw0KLQ0KLXR5cGVkZWYgVUlOVDMyIEZSQU1FV09SS19FRklfRlZfV1JJVEVfUE9MSUNZ Ow0KLQ0KLSNkZWZpbmUgRlJBTUVXT1JLX0VGSV9GVl9VTlJFTElBQkxFX1dSSVRFICAweDAwMDAw MDAwDQotI2RlZmluZSBGUkFNRVdPUktfRUZJX0ZWX1JFTElBQkxFX1dSSVRFICAgIDB4MDAwMDAw MDENCi0NCi10eXBlZGVmIHN0cnVjdCB7DQotICBFRklfR1VJRCAgICAgICAgICAgICAgICAgICpO YW1lR3VpZDsNCi0gIEVGSV9GVl9GSUxFVFlQRSAgICAgICAgICAgVHlwZTsNCi0gIEVGSV9GVl9G SUxFX0FUVFJJQlVURVMgICAgRmlsZUF0dHJpYnV0ZXM7DQotICBWT0lEICAgICAgICAgICAgICAg ICAgICAgICpCdWZmZXI7DQotICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclNpemU7 DQotfSBGUkFNRVdPUktfRUZJX0ZWX1dSSVRFX0ZJTEVfREFUQTsNCi0NCi0vKioNCi0gIFdyaXRl IHRoZSBzdXBwbGllZCBmaWxlIChOYW1lR3VpZCkgdG8gdGhlIEZWLg0KLQ0KLSAgQHBhcmFtICBU aGlzICAgICAgICAgICAgICAgICAgSW5kaWNhdGVzIHRoZSBFRklfRklSTVdBUkVfVk9MVU1FX1BS T1RPQ09MIGluc3RhbmNlLg0KLSAgQHBhcmFtICBOdW1iZXJPZkZpbGVzICAgICAgICAgSW5kaWNh dGVzIHRoZSBudW1iZXIgb2YgZmlsZSByZWNvcmRzIHBvaW50ZWQgdG8NCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJ5IEZpbGVEYXRhLg0KLSAgQHBhcmFtICBXcml0ZVBvbGljeSAg ICAgICAgICAgSW5kaWNhdGVzIHRoZSBsZXZlbCBvZiByZWxpYWJpbGl0eSBvZiB0aGUgd3JpdGUN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggcmVzcGVjdCB0byB0aGluZ3Mg bGlrZSBwb3dlciBmYWlsdXJlIGV2ZW50cy4NCi0gIEBwYXJhbSAgRmlsZURhdGEgICAgICAgICAg ICAgIEEgcG9pbnRlciB0byBhbiBhcnJheSBvZiBFRklfRlZfV1JJVEVfRklMRV9EQVRBDQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3R1cmVzLiBFYWNoIGVsZW1lbnQgaW4g dGhlIGFycmF5IGluZGljYXRlcw0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSBm aWxlIHRvIHdyaXRlLCBhbmQgdGhlcmUgYXJlIE51bWJlck9mRmlsZXMNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS4NCi0NCi0gIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSB3cml0ZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1 bGx5Lg0KLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgVGhlIGZpcm13YXJlIHZvbHVt ZSBkb2VzIG5vdCBoYXZlIGVub3VnaCBmcmVlDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzcGFjZSB0byBzdG9yZSBmaWxlKHMpLg0KLSAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9S ICAgICAgQSBoYXJkd2FyZSBlcnJvciBvY2N1cnJlZCB3aGVuIGF0dGVtcHRpbmcgdG8NCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyB0aGUgZmlybXdhcmUgdm9sdW1lLg0K LSAgQHJldHZhbCBFRklfV1JJVEVfUFJPVEVDVEVEICAgVGhlIGZpcm13YXJlIHZvbHVtZSBpcyBj b25maWd1cmVkIHRvIGRpc2FsbG93IHdyaXRlcy4NCi0gIEByZXR2YWwgRUZJX05PVF9GT1VORCAg ICAgICAgIEEgZGVsZXRlIHdhcyByZXF1ZXN0ZWQsIGJ1dCB0aGUgcmVxdWVzdGVkIGZpbGUgd2Fz DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QgZm91bmQgaW4gdGhlIGZpcm13 YXJlIHZvbHVtZS4NCi0gIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEEgZGVsZXRlIHdh cyByZXF1ZXN0ZWQgd2l0aCBhIG11bHRpcGxlIGZpbGUgd3JpdGUuDQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBbiB1bnN1cHBvcnRlZCBXcml0ZVBvbGljeSB3YXMgcmVxdWVzdGVk Lg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW4gdW5rbm93biBmaWxlIHR5cGUg d2FzIHNwZWNpZmllZC4NCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgZmlsZSBz eXN0ZW0gc3BlY2lmaWMgZXJyb3IgaGFzIG9jY3VycmVkLg0KLSoqLw0KLXR5cGVkZWYNCi1FRklf U1RBVFVTDQotKEVGSUFQSSAqRlJBTUVXT1JLX0VGSV9GVl9XUklURV9GSUxFKSgNCi0gIElOIEVG SV9GSVJNV0FSRV9WT0xVTUVfUFJPVE9DT0wgICAgICAgICAgICAgKlRoaXMsDQotICBJTiBVSU5U MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlck9mRmlsZXMsDQotICBJ TiBGUkFNRVdPUktfRUZJX0ZWX1dSSVRFX1BPTElDWSAgICAgICAgICAgIFdyaXRlUG9saWN5LA0K LSAgSU4gRlJBTUVXT1JLX0VGSV9GVl9XUklURV9GSUxFX0RBVEEgICAgICAgICAqRmlsZURhdGEN Ci0gICk7DQotDQotLyoqDQotICBHaXZlbiB0aGUgaW5wdXQga2V5LCBzZWFyY2ggZm9yIHRoZSBu ZXh0IG1hdGNoaW5nIGZpbGUgaW4gdGhlIHZvbHVtZS4NCi0NCi0gIEBwYXJhbSAgVGhpcyAgICAg ICAgICAgICAgICAgIEluZGljYXRlcyB0aGUgRUZJX0ZJUk1XQVJFX1ZPTFVNRV9QUk9UT0NPTCBp bnN0YW5jZS4NCi0gIEBwYXJhbSAgS2V5ICAgICAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gYSBj YWxsZXIgYWxsb2NhdGVkIGJ1ZmZlciB0aGF0IGNvbnRhaW5zDQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbiBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBrZXkgdGhhdCBpcyB1c2Vk IHRvIHRyYWNrDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSB0byBiZWdp biBzZWFyY2hpbmcgb24gc3VjY2Vzc2l2ZSBjYWxscy4NCi0gIEBwYXJhbSAgRmlsZVR5cGUgICAg ICAgICAgICAgIFRoZSBwb2ludGVyIHRvIHRoZSBmaWxlIHR5cGUgdG8gZmlsdGVyIGZvci4NCi0g IEBwYXJhbSAgTmFtZUd1aWQgICAgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIEd1aWQgZmlsZW5h bWUgb2YgdGhlIGZpbGUgZm91bmQuDQotICBAcGFyYW0gIEF0dHJpYnV0ZXMgICAgICAgICAgICBU aGUgcG9pbnRlciB0byBBdHRyaWJ1dGVzIG9mIHRoZSBmaWxlIGZvdW5kLg0KLSAgQHBhcmFtICBT aXplICAgICAgICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gU2l6ZSBpbiBieXRlcyBvZiB0aGUg ZmlsZSBmb3VuZC4NCi0NCi0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBvdXRw dXQgcGFyYW1ldGVycyBhcmUgZmlsbGVkIHdpdGggZGF0YSBvYnRhaW5lZCBmcm9tDQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZmlyc3QgbWF0Y2hpbmcgZmlsZSB0aGF0IHdh cyBmb3VuZC4NCi0gIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgIE5vIGZpbGVzIG9mIHR5 cGUgRmlsZVR5cGUgd2VyZSBmb3VuZC4NCi0gIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAg IEEgaGFyZHdhcmUgZXJyb3Igb2NjdXJyZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGFjY2Vzcw0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZpcm13YXJlIHZvbHVtZS4NCi0gIEBy ZXR2YWwgRUZJX0FDQ0VTU19ERU5JRUQgICAgIFRoZSBmaXJtd2FyZSB2b2x1bWUgaXMgY29uZmln dXJlZCB0byBkaXNhbGxvdyByZWFkcy4NCi0NCi0qKi8NCi10eXBlZGVmDQotRUZJX1NUQVRVUw0K LShFRklBUEkgKkZSQU1FV09SS19FRklfRlZfR0VUX05FWFRfRklMRSkoDQotICBJTiBFRklfRklS TVdBUkVfVk9MVU1FX1BST1RPQ09MICAgKlRoaXMsDQotICBJTiBPVVQgVk9JRCAgICAgICAgICAg ICAgICAgICAgICAgKktleSwNCi0gIElOIE9VVCBFRklfRlZfRklMRVRZUEUgICAgICAgICAgICAq RmlsZVR5cGUsDQotICBPVVQgRUZJX0dVSUQgICAgICAgICAgICAgICAgICAgICAgKk5hbWVHdWlk LA0KLSAgT1VUIEVGSV9GVl9GSUxFX0FUVFJJQlVURVMgICAgICAgICpBdHRyaWJ1dGVzLA0KLSAg T1VUIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICpTaXplDQotICApOw0KLQ0KLS8vDQot Ly8gUHJvdG9jb2wgaW50ZXJmYWNlIHN0cnVjdHVyZQ0KLS8vDQotc3RydWN0IF9FRklfRklSTVdB UkVfVk9MVU1FX1BST1RPQ09MIHsNCi0gIC8vLw0KLSAgLy8vIFJldHJpZXZlcyB2b2x1bWUgY2Fw YWJpbGl0aWVzIGFuZCBjdXJyZW50IHNldHRpbmdzLg0KLSAgLy8vDQotICBGUkFNRVdPUktfRUZJ X0ZWX0dFVF9BVFRSSUJVVEVTICAgIEdldFZvbHVtZUF0dHJpYnV0ZXM7DQotDQotICAvLy8NCi0g IC8vLyBNb2RpZmllcyB0aGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgZmlybXdhcmUgdm9sdW1l Lg0KLSAgLy8vDQotICBGUkFNRVdPUktfRUZJX0ZWX1NFVF9BVFRSSUJVVEVTICAgIFNldFZvbHVt ZUF0dHJpYnV0ZXM7DQotDQotICAvLy8NCi0gIC8vLyBSZWFkcyBhbiBlbnRpcmUgZmlsZSBmcm9t IHRoZSBmaXJtd2FyZSB2b2x1bWUuDQotICAvLy8NCi0gIEZSQU1FV09SS19FRklfRlZfUkVBRF9G SUxFICAgICAgICAgUmVhZEZpbGU7DQotDQotICAvLy8NCi0gIC8vLyBSZWFkcyBhIHNpbmdsZSBz ZWN0aW9uIGZyb20gYSBmaWxlIGludG8gYSBidWZmZXIuDQotICAvLy8NCi0gIEZSQU1FV09SS19F RklfRlZfUkVBRF9TRUNUSU9OICAgICAgUmVhZFNlY3Rpb247DQotDQotICAvLy8NCi0gIC8vLyBX cml0ZXMgYW4gZW50aXJlIGZpbGUgaW50byB0aGUgZmlybXdhcmUgdm9sdW1lLg0KLSAgLy8vDQot ICBGUkFNRVdPUktfRUZJX0ZWX1dSSVRFX0ZJTEUgICAgICAgIFdyaXRlRmlsZTsNCi0NCi0gIC8v Lw0KLSAgLy8vIFByb3ZpZGVzIHNlcnZpY2UgdG8gYWxsb3cgc2VhcmNoaW5nIHRoZSBmaXJtd2Fy ZSB2b2x1bWUuDQotICAvLy8NCi0gIEZSQU1FV09SS19FRklfRlZfR0VUX05FWFRfRklMRSAgICAg R2V0TmV4dEZpbGU7DQotDQotICAvLy8NCi0gIC8vLyAgRGF0YSBmaWVsZCB0aGF0IGluZGljYXRl cyB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgS2V5IGlucHV0IGJ1ZmZlciBmb3INCi0gIC8vLyAg dGhlIEdldE5leHRGaWxlKCkgQVBJLg0KLSAgLy8vDQotICBVSU5UMzIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEtleVNpemU7DQotDQotICAvLy8NCi0gIC8vLyAgSGFuZGxlIG9mIHRoZSBw YXJlbnQgZmlybXdhcmUgdm9sdW1lLg0KLSAgLy8vDQotICBFRklfSEFORExFICAgICAgICAgICAg ICAgICAgICAgICAgIFBhcmVudEhhbmRsZTsNCi19Ow0KLQ0KLWV4dGVybiBFRklfR1VJRCAgZ0Vm aUZpcm13YXJlVm9sdW1lUHJvdG9jb2xHdWlkOw0KLQ0KLSNlbmRpZg0KCg0KCi09LT0tPS09LT0t PS09LT0tPS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNl bnQgdG8gdGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMTEwOTUpOiBodHRwczovL2Vk azIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMTEwOTUKTXV0ZSBUaGlzIFRvcGljOiBodHRw czovL2dyb3Vwcy5pby9tdC8xMDI1MTg2NjQvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3du ZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9k ZXZlbC9sZWF2ZS8xMjM2NzExMS83Njg2MTc2LzE5MTM0NTYyMTIveHl6enkgW3JlYmVjY2FAb3Bl bmZ3LmlvXQotPS09LT0tPS09LT0tPS09LT0tPS09LQoKDQo=