From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3.5 1/2] doc: correct livepatch.markdown syntax Date: Tue, 8 May 2018 10:55:56 +0100 Message-ID: <1525773356-18198-1-git-send-email-andrew.cooper3@citrix.com> References: <20180508064731.12391-2-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180508064731.12391-2-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Juergen Gross , Andrew Cooper List-Id: xen-devel@lists.xenproject.org RnJvbTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgoKIm1ha2UgLUMgZG9jcyBhbGwi IGZhaWxzIGR1ZSB0byBpbmNvcnJlY3QgbWFya2Rvd24gc3ludGF4IGluCmxpdmVwYXRjaC5tYXJr ZG93bi4gQ29ycmVjdCBpdC4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz dXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KCk1pc2MgZml4ZXM6CiAqIEluc2VydCByZWFsIFVSTHMKICogRHJvcCB0cmFp bGluZyB3aGl0ZXNwYWNlCiAqIENvbnNpc3RlbnQgYWxpZ25tZW50IGFuZCBpbmRlbnRhdGlvbiBm b3IgY29kZSBibG9ja3MgYW5kIGxpc3RzCiAqIENvbnNpc3RlbnQgY2FwaXRhbGlzYXRpb24KICog Q29uc2lzdGVudCB1c2Ugb2YgYGAgYmxvY2tzIGZvciBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFu ZCBmdW5jdGlvbiBuYW1lcwogKiBSZWFycmFuZ2UgdGhpbmdzIG5vdCB0byBsZWF2ZSAmbHQ7IGFu ZCAmZ3Q7IGluIHRoZSB0ZXh0CgpObyBjaGFuZ2UgaW4gY29udGVudC4gIFRoZSBkb2N1bWVudCBu b3cgcmVhZHMgcmF0aGVyIG1vcmUgY29uc2lzdGVudGx5IGluIEhUTUwKYW5kIFBERiBmb3JtLgoK U2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4K LS0tCiBkb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duIHwgNjkzICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMjAgaW5zZXJ0aW9u cygrKSwgMzczIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy9saXZlcGF0Y2gu bWFya2Rvd24gYi9kb2NzL21pc2MvbGl2ZXBhdGNoLm1hcmtkb3duCmluZGV4IDU0YTZiODUuLjJi ZGY4NzEgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy9saXZlcGF0Y2gubWFya2Rvd24KKysrIGIvZG9j cy9taXNjL2xpdmVwYXRjaC5tYXJrZG93bgpAQCAtODUsNTMgKzg1LDQyIEBAIG1lY2hhbmlzbS4g U2VlIGBUcmFtcG9saW5lIChlOSBvcGNvZGUpYCBzZWN0aW9uIGZvciBtb3JlIGRldGFpbHMuCiAj IyMgRXhhbXBsZSBvZiB0cmFtcG9saW5lIGFuZCBpbi1wbGFjZSBzcGxpY2luZwogCiBBcyBleGFt cGxlIHdlIHdpbGwgYXNzdW1lIHRoZSBoeXBlcnZpc29yIGRvZXMgbm90IGhhdmUgWFNBLTEzMiAo c2VlCi0qZG9tY3RsL3N5c2N0bDogZG9uJ3QgbGVhayBoeXBlcnZpc29yIHN0YWNrIHRvIHRvb2xz dGFja3MqCi00ZmYzNDQ5ZjBlOWQxNzVjZWI5NTUxZDNmMmFlY2I1OTI3M2Y2MzlkKSBhbmQgd2Ug d291bGQgbGlrZSB0byBiaW5hcnkgcGF0Y2gKLXRoZSBoeXBlcnZpc29yIHdpdGggaXQuIFRoZSBv cmlnaW5hbCBjb2RlIGxvb2tzIGFzIHNvOgorW2RvbWN0bC9zeXNjdGw6IGRvbid0IGxlYWsgaHlw ZXJ2aXNvciBzdGFjayB0byB0b29sc3RhY2tzXShodHRwOi8veGVuYml0cy54ZW4ub3JnL2dpdHdl Yi8/cD14ZW4uZ2l0O2E9Y29tbWl0ZGlmZjtoPTRmZjM0NDlmMGU5ZDE3NWNlYjk1NTFkM2YyYWVj YjU5MjczZjYzOWQpKQorYW5kIHdlIHdvdWxkIGxpa2UgdG8gYmluYXJ5IHBhdGNoIHRoZSBoeXBl cnZpc29yIHdpdGggaXQuIFRoZSBvcmlnaW5hbCBjb2RlCitsb29rcyBhcyBzbzoKIAotPHByZT4K LSAgIDQ4IDg5IGUwICAgICAgICAgICAgICAgICAgbW92ICAgICVyc3AsJXJheCAgCi0gICA0OCAy NSAwMCA4MCBmZiBmZiAgICAgICAgIGFuZCAgICAkMHhmZmZmZmZmZmZmZmY4MDAwLCVyYXggIAot PC9wcmU+CisgICAgNDggODkgZTAgICAgICAgICAgICAgICAgICBtb3YgICAgJXJzcCwlcmF4Cisg ICAgNDggMjUgMDAgODAgZmYgZmYgICAgICAgICBhbmQgICAgJDB4ZmZmZmZmZmZmZmZmODAwMCwl cmF4CiAKIHdoaWxlIHRoZSBuZXcgcGF0Y2hlZCBoeXBlcnZpc29yIHdvdWxkIGJlOgogCi08cHJl PgotICAgNDggYzcgNDUgYjggMDAgMDAgMDAgMDAgICBtb3ZxICAgJDB4MCwtMHg0OCglcmJwKSAg Ci0gICA0OCBjNyA0NSBjMCAwMCAwMCAwMCAwMCAgIG1vdnEgICAkMHgwLC0weDQwKCVyYnApICAK LSAgIDQ4IGM3IDQ1IGM4IDAwIDAwIDAwIDAwICAgbW92cSAgICQweDAsLTB4MzgoJXJicCkgIAot ICAgNDggODkgZTAgICAgICAgICAgICAgICAgICBtb3YgICAgJXJzcCwlcmF4ICAKLSAgIDQ4IDI1 IDAwIDgwIGZmIGZmICAgICAgICAgYW5kICAgICQweGZmZmZmZmZmZmZmZjgwMDAsJXJheCAgCi08 L3ByZT4KKyAgICA0OCBjNyA0NSBiOCAwMCAwMCAwMCAwMCAgIG1vdnEgICAkMHgwLC0weDQ4KCVy YnApCisgICAgNDggYzcgNDUgYzAgMDAgMDAgMDAgMDAgICBtb3ZxICAgJDB4MCwtMHg0MCglcmJw KQorICAgIDQ4IGM3IDQ1IGM4IDAwIDAwIDAwIDAwICAgbW92cSAgICQweDAsLTB4MzgoJXJicCkK KyAgICA0OCA4OSBlMCAgICAgICAgICAgICAgICAgIG1vdiAgICAlcnNwLCVyYXgKKyAgICA0OCAy NSAwMCA4MCBmZiBmZiAgICAgICAgIGFuZCAgICAkMHhmZmZmZmZmZmZmZmY4MDAwLCVyYXgKIAot VGhpcyBpcyBpbnNpZGUgdGhlIGFyY2hfZG9fZG9tY3RsLiBUaGlzIG5ldyBjaGFuZ2UgYWRkcyAy MSBleHRyYQorVGhpcyBpcyBpbnNpZGUgdGhlIGFyY2hcX2RvXF9kb21jdGwuIFRoaXMgbmV3IGNo YW5nZSBhZGRzIDIxIGV4dHJhCiBieXRlcyBvZiBjb2RlIHdoaWNoIGFsdGVycyBhbGwgdGhlIG9m ZnNldHMgaW5zaWRlIHRoZSBmdW5jdGlvbi4gVG8gYWx0ZXIKIHRoZXNlIG9mZnNldHMgYW5kIGFk ZCB0aGUgZXh0cmEgMjEgYnl0ZXMgb2YgY29kZSB3ZSBtaWdodCBub3QgaGF2ZSBlbm91Z2gKIHNw YWNlIGluIC50ZXh0IHRvIHNxdWVlemUgdGhpcyBpbi4KIAogQXMgc3VjaCB3ZSBjb3VsZCBzaW1w bGlmeSB0aGlzIHByb2JsZW0gYnkgb25seSBwYXRjaGluZyB0aGUgc2l0ZQotd2hpY2ggY2FsbHMg YXJjaF9kb19kb21jdGw6Cit3aGljaCBjYWxscyBhcmNoXF9kb1xfZG9tY3RsOgogCi08cHJlPgot ZG9fZG9tY3RsOiAgCi0gZTggNGIgYjEgMDUgMDAgICAgICAgICAgY2FsbHEgIGZmZmY4MmQwODAx NWZiYjkgPGFyY2hfZG9fZG9tY3RsPiAgCi08L3ByZT4KKyAgICBkb19kb21jdGw6CisgICAgZTgg NGIgYjEgMDUgMDAgICAgICAgICAgY2FsbHEgIGZmZmY4MmQwODAxNWZiYjkgPGFyY2hfZG9fZG9t Y3RsPgogCiB3aXRoIGEgbmV3IGFkZHJlc3MgZm9yIHdoZXJlIHRoZSBuZXcgYGFyY2hfZG9fZG9t Y3RsYCB3b3VsZCBiZSAodGhpcwogYXJlYSB3b3VsZCBiZSBhbGxvY2F0ZWQgZHluYW1pY2FsbHkp LgogCiBBc3R1dGUgcmVhZGVycyB3aWxsIHdvbmRlciB3aGF0IHdlIG5lZWQgdG8gZG8gaWYgd2Ug d2VyZSB0byBwYXRjaCBgZG9fZG9tY3RsYAogLSB3aGljaCBpcyBub3QgY2FsbGVkIGRpcmVjdGx5 IGJ5IGh5cGVydmlzb3IgYnV0IG9uIGJlaGFsZiBvZiB0aGUgZ3Vlc3RzIHZpYQotdGhlIGBjb21w YXRfaHlwZXJjYWxsX3RhYmxlYCBhbmQgYGh5cGVyY2FsbF90YWJsZWAuCi1QYXRjaGluZyB0aGUg b2Zmc2V0IGluIGBoeXBlcmNhbGxfdGFibGVgIGZvciBgZG9fZG9tY3RsOgotKGZmZmY4MmQwODAx MDMwNzkgPGRvX2RvbWN0bD46KQordGhlIGBjb21wYXRfaHlwZXJjYWxsX3RhYmxlYCBhbmQgYGh5 cGVyY2FsbF90YWJsZWAuICBQYXRjaGluZyB0aGUgb2Zmc2V0IGluCitgaHlwZXJjYWxsX3RhYmxl YCBmb3IgYGRvX2RvbWN0bGA6CiAKLTxwcmU+Ci0KLSBmZmZmODJkMDgwMjRkNDkwOiAgIDc5IDMw ICAKLSBmZmZmODJkMDgwMjRkNDkyOiAgIDEwIDgwIGQwIDgyIGZmIGZmICAgCi0KLTwvcHJlPgor ICAgIGZmZmY4MmQwODAyNGQ0OTA6ICAgNzkgMzAKKyAgICBmZmZmODJkMDgwMjRkNDkyOiAgIDEw IDgwIGQwIDgyIGZmIGZmCiAKIHdpdGggdGhlIG5ldyBhZGRyZXNzIHdoZXJlIHRoZSBuZXcgYGRv X2RvbWN0bGAgaXMgcG9zc2libGUuIFRoZSBvdGhlcgogcGxhY2Ugd2hlcmUgaXQgaXMgdXNlZCBp cyBpbiBgaHZtX2h5cGVyY2FsbDY0X3RhYmxlYCB3aGljaCB3b3VsZCBuZWVkCkBAIC0xMzksMTAg KzEyOCwxMSBAQCB0byBiZSBwYXRjaGVkIGluIGEgc2ltaWxhciB3YXkuIFRoaXMgd291bGQgcmVx dWlyZSBhbiBpbi1wbGFjZSBzcGxpY2luZwogb2YgdGhlIG5ldyB2aXJ0dWFsIGFkZHJlc3Mgb2Yg YGFyY2hfZG9fZG9tY3RsYC4KIAogSW4gc3VtbWFyeSB0aGlzIGV4YW1wbGUgcGF0Y2hlZCB0aGUg Y2FsbGVlIG9mIHRoZSBhZmZlY3RlZCBmdW5jdGlvbiBieQotICogYWxsb2NhdGluZyBtZW1vcnkg Zm9yIHRoZSBuZXcgY29kZSB0byBsaXZlIGluLAotICogY2hhbmdpbmcgdGhlIHZpcnR1YWwgYWRk cmVzcyBpbiBhbGwgdGhlIGZ1bmN0aW9ucyB3aGljaCBjYWxsZWQgdGhlIG9sZAorCisgKiBBbGxv Y2F0aW5nIG1lbW9yeSBmb3IgdGhlIG5ldyBjb2RlIHRvIGxpdmUgaW4sCisgKiBDaGFuZ2luZyB0 aGUgdmlydHVhbCBhZGRyZXNzIGluIGFsbCB0aGUgZnVuY3Rpb25zIHdoaWNoIGNhbGxlZCB0aGUg b2xkCiAgICBjb2RlIChjb21wdXRpbmcgdGhlIG5ldyBvZmZzZXQsIHBhdGNoaW5nIHRoZSBjYWxs cSB3aXRoIGEgbmV3IGNhbGxxKS4KLSAqIGNoYW5naW5nIHRoZSBmdW5jdGlvbiBwb2ludGVyIHRh YmxlcyB3aXRoIHRoZSBuZXcgdmlydHVhbCBhZGRyZXNzIG9mCisgKiBDaGFuZ2luZyB0aGUgZnVu Y3Rpb24gcG9pbnRlciB0YWJsZXMgd2l0aCB0aGUgbmV3IHZpcnR1YWwgYWRkcmVzcyBvZgogICAg dGhlIGZ1bmN0aW9uIChzcGxpY2luZyBpbiB0aGUgbmV3IHZpcnR1YWwgYWRkcmVzcykuIFNpbmNl IHRoaXMgdGFibGUKICAgIHJlc2lkZXMgaW4gdGhlIC5yb2RhdGEgc2VjdGlvbiB3ZSB3b3VsZCBu ZWVkIHRvIHRlbXBvcmFyaWx5IGNoYW5nZSB0aGUKICAgIHBhZ2UgdGFibGUgcGVybWlzc2lvbnMg ZHVyaW5nIHRoaXMgcGFydC4KQEAgLTE2MiwyMSArMTUyLDE4IEBAIGV4aXN0aW5nIGZ1bmN0aW9u IHRvIGJlIHBhdGNoZWQgdG8ganVtcCBkaXJlY3RseSB0byB0aGUgbmV3IGNvZGUuIFRoaXMKIGxl c3NlbnMgdGhlIGxvY2F0aW9ucyB0byBiZSBwYXRjaGVkIHRvIG9uZSBidXQgaXQgcHV0cyBwcmVz c3VyZSBvbiB0aGUKIENQVSBicmFuY2hpbmcgbG9naWMgKEktY2FjaGUsIGJ1dCBpdCBpcyBqdXN0 IG9uZSB1bmNvbmRpdGlvbmFsIGp1bXApLgogCi1Gb3IgdGhpcyBleGFtcGxlIHdlIHdpbGwgYXNz dW1lIHRoYXQgdGhlIGh5cGVydmlzb3IgaGFzIG5vdCBiZWVuIGNvbXBpbGVkCi13aXRoIGZlMmUw NzlmNjQyZWZmYjNkMjRhNmUxYTcwOTZlZjI2ZTY5MWQ5M2UgKFhTQS0xMjU6ICpwcmUtZmlsbCBz dHJ1Y3R1cmVzCi1mb3IgY2VydGFpbiBIWVBFUlZJU09SX3hlbl92ZXJzaW9uIHN1Yi1vcHMqKSB3 aGljaCBtZW0tc2V0cyBhbiBzdHJ1Y3R1cmUKLWluIGB4ZW5fdmVyc2lvbmAgaHlwZXJjYWxsLiBU aGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgKiphbnl3aGVyZSoqIGluCi10aGUgaHlwZXJ2aXNv ciAoaXQgaXMgY2FsbGVkIGJ5IHRoZSBndWVzdCkgYnV0IHJlZmVyZW5jZWQgaW4gdGhlCi1gY29t cGF0X2h5cGVyY2FsbF90YWJsZWAgYW5kIGBoeXBlcmNhbGxfdGFibGVgIChhbmQgaW5kaXJlY3Rs eSBjYWxsZWQKLWZyb20gdGhhdCkuIFBhdGNoaW5nIHRoZSBvZmZzZXQgaW4gYGh5cGVyY2FsbF90 YWJsZWAgZm9yIHRoZSBvbGQKLWBkb194ZW5fdmVyc2lvbmAgKGZmZmY4MmQwODAxMTJmOWUgPGRv X3hlbl92ZXJzaW9uPikKLQotPC9wcmU+Ci0gZmZmZjgyZDA4MDI0YjI3MCA8aHlwZXJjYWxsX3Rh YmxlPjogICAKLSAuLi4gIAotIGZmZmY4MmQwODAyNGIyZjg6ICAgOWUgMmYgMTEgODAgZDAgODIg ZmYgZmYgIAorRm9yIHRoaXMgZXhhbXBsZSB3ZSB3aWxsIGFzc3VtZSB0aGF0IHRoZSBoeXBlcnZp c29yIGhhcyBub3QgYmVlbiBjb21waWxlZCB3aXRoCitYU0EtMTI1IChzZWUKK1twcmUtZmlsbCBz dHJ1Y3R1cmVzIGZvciBjZXJ0YWluIEhZUEVSVklTT1JcX3hlblxfdmVyc2lvbiBzdWItb3BzXSho dHRwOi8veGVuYml0cy54ZW4ub3JnL2dpdHdlYi8/cD14ZW4uZ2l0O2E9Y29tbWl0ZGlmZjtoPWZl MmUwNzlmNjQyZWZmYjNkMjRhNmUxYTcwOTZlZjI2ZTY5MWQ5M2UpKQord2hpY2ggbWVtLXNldHMg YW4gc3RydWN0dXJlIGluIGB4ZW5fdmVyc2lvbmAgaHlwZXJjYWxsLiBUaGlzIGZ1bmN0aW9uIGlz IG5vdAorY2FsbGVkICoqYW55d2hlcmUqKiBpbiB0aGUgaHlwZXJ2aXNvciAoaXQgaXMgY2FsbGVk IGJ5IHRoZSBndWVzdCkgYnV0CityZWZlcmVuY2VkIGluIHRoZSBgY29tcGF0X2h5cGVyY2FsbF90 YWJsZWAgYW5kIGBoeXBlcmNhbGxfdGFibGVgIChhbmQKK2luZGlyZWN0bHkgY2FsbGVkIGZyb20g dGhhdCkuIFBhdGNoaW5nIHRoZSBvZmZzZXQgaW4gYGh5cGVyY2FsbF90YWJsZWAgZm9yIHRoZQor b2xkIGBkb194ZW5fdmVyc2lvbmA6CiAKLTwvcHJlPgorICAgIGZmZmY4MmQwODAyNGIyNzAgPGh5 cGVyY2FsbF90YWJsZT46CisgICAgLi4uCisgICAgZmZmZjgyZDA4MDI0YjJmODogICA5ZSAyZiAx MSA4MCBkMCA4MiBmZiBmZgogCiB3aXRoIHRoZSBuZXcgYWRkcmVzcyB3aGVyZSB0aGUgbmV3IGBk b194ZW5fdmVyc2lvbmAgaXMgcG9zc2libGUuIFRoZSBvdGhlcgogcGxhY2Ugd2hlcmUgaXQgaXMg dXNlZCBpcyBpbiBgaHZtX2h5cGVyY2FsbDY0X3RhYmxlYCB3aGljaCB3b3VsZCBuZWVkCkBAIC0x ODQsMzEgKzE3MSwyOCBAQCB0byBiZSBwYXRjaGVkIGluIGEgc2ltaWxhciB3YXkuIFRoaXMgd291 bGQgcmVxdWlyZSBhbiBpbi1wbGFjZSBzcGxpY2luZwogb2YgdGhlIG5ldyB2aXJ0dWFsIGFkZHJl c3Mgb2YgYGRvX3hlbl92ZXJzaW9uYC4KIAogQW4gYWx0ZXJuYXRpdmUgc29sdXRpb24gd291bGQg YmUgdG8gcGF0Y2ggaW5zZXJ0IGEgdHJhbXBvbGluZSBpbiB0aGUKLW9sZCBgZG9feGVuX3ZlcnNp b24nIGZ1bmN0aW9uIHRvIGRpcmVjdGx5IGp1bXAgdG8gdGhlIG5ldyBgZG9feGVuX3ZlcnNpb25g Lgorb2xkIGBkb194ZW5fdmVyc2lvbmAgZnVuY3Rpb24gdG8gZGlyZWN0bHkganVtcCB0byB0aGUg bmV3IGBkb194ZW5fdmVyc2lvbmA6CiAKLTxwcmU+Ci0gZmZmZjgyZDA4MDExMmY5ZSBkb194ZW5f dmVyc2lvbjogIAotIGZmZmY4MmQwODAxMTJmOWU6ICAgICAgIDQ4IGM3IGMwIGRhIGZmIGZmIGZm ICAgIG1vdiAgICAkMHhmZmZmZmZmZmZmZmZmZmRhLCVyYXggIAotIGZmZmY4MmQwODAxMTJmYTU6 ICAgICAgIDgzIGZmIDA5ICAgICAgICAgICAgICAgIGNtcCAgICAkMHg5LCVlZGkgIAotIGZmZmY4 MmQwODAxMTJmYTg6ICAgICAgIDBmIDg3IDI0IDA1IDAwIDAwICAgICAgIGphICAgICBmZmZmODJk MDgwMTEzNGQyIDsgZG9feGVuX3ZlcnNpb24rMHg1MzQgIAotPC9wcmU+CisgICAgZmZmZjgyZDA4 MDExMmY5ZSBkb194ZW5fdmVyc2lvbjoKKyAgICBmZmZmODJkMDgwMTEyZjllOiAgICAgICA0OCBj NyBjMCBkYSBmZiBmZiBmZiAgICBtb3YgICAgJDB4ZmZmZmZmZmZmZmZmZmZkYSwlcmF4CisgICAg ZmZmZjgyZDA4MDExMmZhNTogICAgICAgODMgZmYgMDkgICAgICAgICAgICAgICAgY21wICAgICQw eDksJWVkaQorICAgIGZmZmY4MmQwODAxMTJmYTg6ICAgICAgIDBmIDg3IDI0IDA1IDAwIDAwICAg ICAgIGphICAgICBmZmZmODJkMDgwMTEzNGQyIDsgZG9feGVuX3ZlcnNpb24rMHg1MzQKIAogd2l0 aDoKIAotPHByZT4KLSBmZmZmODJkMDgwMTEyZjllIGRvX3hlbl92ZXJzaW9uOiAgCi0gZmZmZjgy ZDA4MDExMmY5ZTogICAgICAgZTkgWFggWVkgWlogUVEgICAgICAgICAgam1wcSAgIFtuZXcgZG9f eGVuX3ZlcnNpb25dICAKLTwvcHJlPgorICAgIGZmZmY4MmQwODAxMTJmOWUgZG9feGVuX3ZlcnNp b246CisgICAgZmZmZjgyZDA4MDExMmY5ZTogICAgICAgZTkgWFggWVkgWlogUVEgICAgICAgICAg am1wcSAgIFtuZXcgZG9feGVuX3ZlcnNpb25dCiAKIHdoaWNoIHdvdWxkIGxlc3NlbiB0aGUgYW1v dW50IG9mIHBhdGNoaW5nIHRvIGp1c3Qgb25lIGxvY2F0aW9uLgogCiBJbiBzdW1tYXJ5IHRoaXMg ZXhhbXBsZSBwYXRjaGVkIHRoZSBhZmZlY3RlZCBmdW5jdGlvbiB0byBqdW1wIHRvIHRoZQogbmV3 IHJlcGxhY2VtZW50IGZ1bmN0aW9uIHdoaWNoIHJlcXVpcmVkOgotICogYWxsb2NhdGluZyBtZW1v cnkgZm9yIHRoZSBuZXcgY29kZSB0byBsaXZlIGluLAotICogaW5zZXJ0aW5nIHRyYW1wb2xpbmUg d2l0aCBuZXcgb2Zmc2V0IGluIHRoZSBvbGQgZnVuY3Rpb24gdG8gcG9pbnQgdG8gdGhlCisKKyAq IEFsbG9jYXRpbmcgbWVtb3J5IGZvciB0aGUgbmV3IGNvZGUgdG8gbGl2ZSBpbiwKKyAqIEluc2Vy dGluZyB0cmFtcG9saW5lIHdpdGggbmV3IG9mZnNldCBpbiB0aGUgb2xkIGZ1bmN0aW9uIHRvIHBv aW50IHRvIHRoZQogICAgbmV3IGZ1bmN0aW9uLgogICogT3B0aW9uYWxseSB3ZSBjYW4gaW5zZXJ0 IGluIHRoZSBvbGQgZnVuY3Rpb24gYSB0cmFtcG9saW5lIGp1bXAgdG8gYW4gZnVuY3Rpb24KLSAg IHByb3ZpZGluZyBhbiBCVUdfT04gdG8gY2F0Y2ggZXJyYW50IGNvZGUuCisgICBwcm92aWRpbmcg YW4gQlVHXF9PTiB0byBjYXRjaCBlcnJhbnQgY29kZS4KIAogVGhlIGRpc2FkdmFudGFnZSBvZiB0 aGlzIGFyZSB0aGF0IHRoZSB1bmNvbmRpdGlvbmFsIGp1bXAgd2lsbCBjb25zdW1lIGEgc21hbGwK IEktY2FjaGUgcGVuYWx0eS4gSG93ZXZlciB0aGUgc2ltcGxpY2l0eSBvZiB0aGUgcGF0Y2hpbmcg YW5kIGhpZ2hlciBjaGFuY2UKQEAgLTI2MCw3ICsyNDQsNyBAQCBOb3RlIHRoYXQgZXZlcnkgc3Ry dWN0dXJlIGhhcyBwYWRkaW5nLiBUaGlzIGlzIGFkZGVkIHNvIHRoYXQgdGhlIGh5cGVydmlzb3IK IGNhbiByZS11c2UgdGhvc2UgZmllbGRzIGFzIGl0IHNlZXMgZml0LgogCiBFYXJsaWVyIGRlc2ln biBhdHRlbXB0ZWQgdG8gaW5lcHRseSBleHBsYWluIHRoZSByZWxhdGlvbnMgb2YgdGhlIEVMRiBz ZWN0aW9ucwotdG8gZWFjaCBvdGhlciB3aXRob3V0IHVzaW5nIHByb3BlciBFTEYgbWVjaGFuaXNt IChzaF9pbmZvLCBzaF9saW5rLCBkYXRhCit0byBlYWNoIG90aGVyIHdpdGhvdXQgdXNpbmcgcHJv cGVyIEVMRiBtZWNoYW5pc20gKHNoXF9pbmZvLCBzaFxfbGluaywgZGF0YQogc3RydWN0dXJlcyB1 c2luZyBFbGYgdHlwZXMsIGV0YykuIFRoaXMgZGVzaWduIHdpbGwgZXhwbGFpbiB0aGUgc3RydWN0 dXJlcwogYW5kIGhvdyB0aGV5IGFyZSB1c2VkIHRvZ2V0aGVyIGFuZCBub3QgZGlnIGluIHRoZSBF TEYgZm9ybWF0IC0gZXhjZXB0IG1lbnRpb24KIHRoYXQgdGhlIHNlY3Rpb24gbmFtZXMgc2hvdWxk IG1hdGNoIHRoZSBzdHJ1Y3R1cmUgbmFtZXMuCkBAIC0yODUsNjAgKzI2OSw1MyBAQCBsaWtlIHdo YXQgdGhlIExpbnV4IGtlcm5lbCBtb2R1bGUgbG9hZGVyIGRvZXMuCiAKIFRoZSBwYXlsb2FkIGNv bnRhaW5zIGF0IGxlYXN0IHRocmVlIHNlY3Rpb25zOgogCi0gKiBgLmxpdmVwYXRjaC5mdW5jc2Ag LSB3aGljaCBpcyBhbiBhcnJheSBvZiBsaXZlcGF0Y2hfZnVuYyBzdHJ1Y3R1cmVzLgorICogYC5s aXZlcGF0Y2guZnVuY3NgIC0gd2hpY2ggaXMgYW4gYXJyYXkgb2YgbGl2ZXBhdGNoXF9mdW5jIHN0 cnVjdHVyZXMuCiAgKiBgLmxpdmVwYXRjaC5kZXBlbmRzYCAtIHdoaWNoIGlzIGFuIEVMRiBOb3Rl IHRoYXQgZGVzY3JpYmVzIHdoYXQgdGhlIHBheWxvYWQKICAgICBkZXBlbmRzIG9uLiAqKk1VU1Qq KiBoYXZlIG9uZS4KICAqICBgLm5vdGUuZ251LmJ1aWxkLWlkYCAtIHRoZSBidWlsZC1pZCBvZiB0 aGlzIHBheWxvYWQuICoqTVVTVCoqIGhhdmUgb25lLgogCiAjIyMgLmxpdmVwYXRjaC5mdW5jcwog Ci1UaGUgYC5saXZlcGF0Y2guZnVuY3NgIGNvbnRhaW5zIGFuIGFycmF5IG9mIGxpdmVwYXRjaF9m dW5jIHN0cnVjdHVyZXMKK1RoZSBgLmxpdmVwYXRjaC5mdW5jc2AgY29udGFpbnMgYW4gYXJyYXkg b2YgbGl2ZXBhdGNoXF9mdW5jIHN0cnVjdHVyZXMKIHdoaWNoIGRlc2NyaWJlIHRoZSBmdW5jdGlv bnMgdG8gYmUgcGF0Y2hlZDoKIAotPHByZT4KLXN0cnVjdCBsaXZlcGF0Y2hfZnVuYyB7ICAKLSAg ICBjb25zdCBjaGFyICpuYW1lOyAgCi0gICAgdm9pZCAqbmV3X2FkZHI7ICAKLSAgICB2b2lkICpv bGRfYWRkcjsgIAotICAgIHVpbnQzMl90IG5ld19zaXplOyAgCi0gICAgdWludDMyX3Qgb2xkX3Np emU7ICAKLSAgICB1aW50OF90IHZlcnNpb247ICAKLSAgICB1aW50OF90IG9wYXF1ZVszMV07ICAK LX07ICAKLTwvcHJlPgorICAgIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyB7CisgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWU7CisgICAgICAgIHZvaWQgKm5ld19hZGRyOworICAgICAgICB2b2lkICpvbGRf YWRkcjsKKyAgICAgICAgdWludDMyX3QgbmV3X3NpemU7CisgICAgICAgIHVpbnQzMl90IG9sZF9z aXplOworICAgICAgICB1aW50OF90IHZlcnNpb247CisgICAgICAgIHVpbnQ4X3Qgb3BhcXVlWzMx XTsKKyAgICB9OwogCiBUaGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGlzIDY0IGJ5dGVzIG9uIDY0 LWJpdCBoeXBlcnZpc29ycy4gSXQgd2lsbCBiZQogNTIgb24gMzItYml0IGh5cGVydmlzb3JzLgog Ci0qIGBuYW1lYCBpcyB0aGUgc3ltYm9sIG5hbWUgb2YgdGhlIG9sZCBmdW5jdGlvbi4gT25seSB1 c2VkIGlmIGBvbGRfYWRkcmAgaXMKKyAqIGBuYW1lYCBpcyB0aGUgc3ltYm9sIG5hbWUgb2YgdGhl IG9sZCBmdW5jdGlvbi4gT25seSB1c2VkIGlmIGBvbGRfYWRkcmAgaXMKICAgIHplcm8sIG90aGVy d2lzZSB3aWxsIGJlIHVzZWQgZHVyaW5nIGR5bmFtaWMgbGlua2luZyAod2hlbiBoeXBlcnZpc29y IGxvYWRzCiAgICB0aGUgcGF5bG9hZCkuCi0KLSogYG9sZF9hZGRyYCBpcyB0aGUgYWRkcmVzcyBv ZiB0aGUgZnVuY3Rpb24gdG8gYmUgcGF0Y2hlZCBhbmQgaXMgZmlsbGVkIGluIGF0Ci0gIHBheWxv YWQgZ2VuZXJhdGlvbiB0aW1lIGlmIGh5cGVydmlzb3IgZnVuY3Rpb24gYWRkcmVzcyBpcyBrbm93 bi4gSWYgdW5rbm93biwKLSAgdGhlIHZhbHVlICpNVVNUKiBiZSB6ZXJvIGFuZCB0aGUgaHlwZXJ2 aXNvciB3aWxsIGF0dGVtcHQgdG8gcmVzb2x2ZSB0aGUgYWRkcmVzcy4KLQotKiBgbmV3X2FkZHJg IGNhbiBlaXRoZXIgaGF2ZSBhIG5vbi16ZXJvIHZhbHVlIG9yIGJlIHplcm8uCi0gICogSWYgdGhl cmUgaXMgYSBub24temVybyB2YWx1ZSwgdGhlbiBpdCBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgZnVu Y3Rpb24gdGhhdCBpcwotICAgIHJlcGxhY2luZyB0aGUgb2xkIGZ1bmN0aW9uIGFuZCB0aGUgYWRk cmVzcyBpcyByZWNvbXB1dGVkIGR1cmluZyByZWxvY2F0aW9uLgotICAgIFRoZSB2YWx1ZSAqKk1V U1QqKiBiZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV3IGZ1bmN0aW9uIGluIHRoZSBwYXlsb2FkIGZp bGUuCi0KLSAgKiBJZiB0aGUgdmFsdWUgaXMgemVybywgdGhlbiB3ZSBOT1Bpbmcgb3V0IGF0IHRo ZSBgb2xkX2FkZHJgIGxvY2F0aW9uCisgKiBgb2xkX2FkZHJgIGlzIHRoZSBhZGRyZXNzIG9mIHRo ZSBmdW5jdGlvbiB0byBiZSBwYXRjaGVkIGFuZCBpcyBmaWxsZWQgaW4gYXQKKyAgIHBheWxvYWQg Z2VuZXJhdGlvbiB0aW1lIGlmIGh5cGVydmlzb3IgZnVuY3Rpb24gYWRkcmVzcyBpcyBrbm93bi4g SWYgdW5rbm93biwKKyAgIHRoZSB2YWx1ZSAqTVVTVCogYmUgemVybyBhbmQgdGhlIGh5cGVydmlz b3Igd2lsbCBhdHRlbXB0IHRvIHJlc29sdmUgdGhlCisgICBhZGRyZXNzLgorICogYG5ld19hZGRy YCBjYW4gZWl0aGVyIGhhdmUgYSBub24temVybyB2YWx1ZSBvciBiZSB6ZXJvLgorICAgKiBJZiB0 aGVyZSBpcyBhIG5vbi16ZXJvIHZhbHVlLCB0aGVuIGl0IGlzIHRoZSBhZGRyZXNzIG9mIHRoZSBm dW5jdGlvbiB0aGF0CisgICAgaXMgcmVwbGFjaW5nIHRoZSBvbGQgZnVuY3Rpb24gYW5kIHRoZSBh ZGRyZXNzIGlzIHJlY29tcHV0ZWQgZHVyaW5nCisgICAgcmVsb2NhdGlvbi4gIFRoZSB2YWx1ZSAq Kk1VU1QqKiBiZSB0aGUgYWRkcmVzcyBvZiB0aGUgbmV3IGZ1bmN0aW9uIGluIHRoZQorICAgIHBh eWxvYWQgZmlsZS4KKyAgICogSWYgdGhlIHZhbHVlIGlzIHplcm8sIHRoZW4gd2UgTk9QaW5nIG91 dCBhdCB0aGUgYG9sZF9hZGRyYCBsb2NhdGlvbgogICAgIGBuZXdfc2l6ZWAgYnl0ZXMuCi0KLSog YG9sZF9zaXplYCBjb250YWlucyB0aGUgc2l6ZXMgb2YgdGhlIHJlc3BlY3RpdmUgYG9sZF9hZGRy YCBmdW5jdGlvbiBpbiBieXRlcy4KLSAgIFRoZSB2YWx1ZSBvZiBgb2xkX3NpemVgICoqTVVTVCoq IG5vdCBiZSB6ZXJvLgotCi0qIGBuZXdfc2l6ZWAgZGVwZW5kcyBvbiB3aGF0IGBuZXdfYWRkcmAg Y29udGFpbnM6Ci0gICogSWYgYG5ld19hZGRyYCBjb250YWlucyBhbiBub24temVybyB2YWx1ZSwg dGhlbiBgbmV3X3NpemVgIGhhcyB0aGUgc2l6ZSBvZgotICAgIHRoZSBuZXcgZnVuY3Rpb24gKHdo aWNoIHdpbGwgcmVwbGFjZSB0aGUgb25lIGF0IGBvbGRfYWRkcmApICBpbiBieXRlcy4KLSAgKiBJ ZiB0aGUgdmFsdWUgb2YgYG5ld19hZGRyYCBpcyB6ZXJvIHRoZW4gYG5ld19zaXplYCBkZXRlcm1p bmVzIGhvdyBtYW55CisgKiBgb2xkX3NpemVgIGNvbnRhaW5zIHRoZSBzaXplcyBvZiB0aGUgcmVz cGVjdGl2ZSBgb2xkX2FkZHJgIGZ1bmN0aW9uIGluCisgICAgYnl0ZXMuICBUaGUgdmFsdWUgb2Yg YG9sZF9zaXplYCAqKk1VU1QqKiBub3QgYmUgemVyby4KKyAqIGBuZXdfc2l6ZWAgZGVwZW5kcyBv biB3aGF0IGBuZXdfYWRkcmAgY29udGFpbnM6CisgICAqIElmIGBuZXdfYWRkcmAgY29udGFpbnMg YW4gbm9uLXplcm8gdmFsdWUsIHRoZW4gYG5ld19zaXplYCBoYXMgdGhlIHNpemUgb2YKKyAgICB0 aGUgbmV3IGZ1bmN0aW9uICh3aGljaCB3aWxsIHJlcGxhY2UgdGhlIG9uZSBhdCBgb2xkX2FkZHJg KSBpbiBieXRlcy4KKyAgICogSWYgdGhlIHZhbHVlIG9mIGBuZXdfYWRkcmAgaXMgemVybyB0aGVu IGBuZXdfc2l6ZWAgZGV0ZXJtaW5lcyBob3cgbWFueQogICAgIGluc3RydWN0aW9uIGJ5dGVzIHRv IE5PUCAodXAgdG8gb3BhcXVlIHNpemUgbW9kdWxvIHNtYWxsZXN0IHBsYXRmb3JtCiAgICAgaW5z dHJ1Y3Rpb24gLSAxIGJ5dGUgeDg2IGFuZCA0IGJ5dGVzIG9uIEFSTSkuCi0KLSogYHZlcnNpb25g IGlzIHRvIGJlIG9uZS4KLQotKiBgb3BhcXVlYCAqKk1VU1QqKiBiZSB6ZXJvLgorICogYHZlcnNp b25gIGlzIHRvIGJlIG9uZS4KKyAqIGBvcGFxdWVgICoqTVVTVCoqIGJlIHplcm8uCiAKIFRoZSBz aXplIG9mIHRoZSBgbGl2ZXBhdGNoX2Z1bmNgIGFycmF5IGlzIGRldGVybWluZWQgZnJvbSB0aGUg RUxGIHNlY3Rpb24KIHNpemUuCkBAIC0zNjIsMzggKzMzOSwzNSBAQCBiZWluZyBhcHBsaWVkIGFu ZCBhZnRlciBiZWluZyByZXZlcnRlZDoKIAogQSBzaW1wbGUgZXhhbXBsZSBvZiB3aGF0IGEgcGF5 bG9hZCBmaWxlIGNhbiBiZToKIAotPHByZT4KLS8qIE1VU1QgYmUgaW4gc3luYyB3aXRoIGh5cGVy dmlzb3IuICovICAKLXN0cnVjdCBsaXZlcGF0Y2hfZnVuYyB7ICAKLSAgICBjb25zdCBjaGFyICpu YW1lOyAgCi0gICAgdm9pZCAqbmV3X2FkZHI7ICAKLSAgICB2b2lkICpvbGRfYWRkcjsgIAotICAg IHVpbnQzMl90IG5ld19zaXplOyAgCi0gICAgdWludDMyX3Qgb2xkX3NpemU7ICAKLSAgICB1aW50 OF90IHZlcnNpb247Ci0gICAgdWludDhfdCBwYWRbMzFdOyAgCi19OyAgCi0KLS8qIE91ciByZXBs YWNlbWVudCBmdW5jdGlvbiBmb3IgeGVuX2V4dHJhX3ZlcnNpb24uICovICAKLWNvbnN0IGNoYXIg Knhlbl9oZWxsb193b3JsZCh2b2lkKSAgCi17ICAKLSAgICByZXR1cm4gIkhlbGxvIFdvcmxkIjsg IAotfSAgCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHBhdGNoX3RoaXNfZm5jW10gPSAieGVuX2V4 dHJhX3ZlcnNpb24iOyAgCi0KLXN0cnVjdCBsaXZlcGF0Y2hfZnVuYyBsaXZlcGF0Y2hfaGVsbG9f d29ybGQgPSB7ICAKLSAgICAudmVyc2lvbiA9IExJVkVQQVRDSF9QQVlMT0FEX1ZFUlNJT04sCi0g ICAgLm5hbWUgPSBwYXRjaF90aGlzX2ZuYywgIAotICAgIC5uZXdfYWRkciA9IHhlbl9oZWxsb193 b3JsZCwgIAotICAgIC5vbGRfYWRkciA9ICh2b2lkICopMHhmZmZmODJkMDgwMTM5NjNjLCAvKiBF eHRyYWN0ZWQgZnJvbSB4ZW4tc3ltcy4gKi8gIAotICAgIC5uZXdfc2l6ZSA9IDEzLCAvKiBUbyBi ZSBiZSBjb21wdXRlZCBieSBzY3JpcHRzLiAqLyAgCi0gICAgLm9sZF9zaXplID0gMTMsIC8qIC0t LS0tLS0tLS0tIiItLS0tLS0tLS0tLS0tLS0gICovICAKLX0gX19hdHRyaWJ1dGVfXygoX19zZWN0 aW9uX18oIi5saXZlcGF0Y2guZnVuY3MiKSkpOyAgCi0KLTwvcHJlPgotCi1Db2RlIG11c3QgYmUg Y29tcGlsZWQgd2l0aCAtZlBJQy4KKyAgICAvKiBNVVNUIGJlIGluIHN5bmMgd2l0aCBoeXBlcnZp c29yLiAqLworICAgIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyB7CisgICAgICAgIGNvbnN0IGNoYXIg Km5hbWU7CisgICAgICAgIHZvaWQgKm5ld19hZGRyOworICAgICAgICB2b2lkICpvbGRfYWRkcjsK KyAgICAgICAgdWludDMyX3QgbmV3X3NpemU7CisgICAgICAgIHVpbnQzMl90IG9sZF9zaXplOwor ICAgICAgICB1aW50OF90IHZlcnNpb247CisgICAgICAgIHVpbnQ4X3QgcGFkWzMxXTsKKyAgICB9 OworCisgICAgLyogT3VyIHJlcGxhY2VtZW50IGZ1bmN0aW9uIGZvciB4ZW5fZXh0cmFfdmVyc2lv bi4gKi8KKyAgICBjb25zdCBjaGFyICp4ZW5faGVsbG9fd29ybGQodm9pZCkKKyAgICB7CisgICAg ICAgIHJldHVybiAiSGVsbG8gV29ybGQiOworICAgIH0KKworICAgIHN0YXRpYyB1bnNpZ25lZCBj aGFyIHBhdGNoX3RoaXNfZm5jW10gPSAieGVuX2V4dHJhX3ZlcnNpb24iOworCisgICAgc3RydWN0 IGxpdmVwYXRjaF9mdW5jIGxpdmVwYXRjaF9oZWxsb193b3JsZCA9IHsKKyAgICAgICAgLnZlcnNp b24gPSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OLAorICAgICAgICAubmFtZSA9IHBhdGNoX3Ro aXNfZm5jLAorICAgICAgICAubmV3X2FkZHIgPSB4ZW5faGVsbG9fd29ybGQsCisgICAgICAgIC5v bGRfYWRkciA9ICh2b2lkICopMHhmZmZmODJkMDgwMTM5NjNjLCAvKiBFeHRyYWN0ZWQgZnJvbSB4 ZW4tc3ltcy4gKi8KKyAgICAgICAgLm5ld19zaXplID0gMTMsIC8qIFRvIGJlIGJlIGNvbXB1dGVk IGJ5IHNjcmlwdHMuICovCisgICAgICAgIC5vbGRfc2l6ZSA9IDEzLCAvKiAtLS0tLS0tLS0tLSIi LS0tLS0tLS0tLS0tLS0tICAqLworICAgIH0gX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5s aXZlcGF0Y2guZnVuY3MiKSkpOworCitDb2RlIG11c3QgYmUgY29tcGlsZWQgd2l0aCBgLWZQSUNg LgogCiAjIyMgLmxpdmVwYXRjaC5ob29rcy5sb2FkIGFuZCAubGl2ZXBhdGNoLmhvb2tzLnVubG9h ZAogCkBAIC00MDYsMTAgKzM4MCw4IEBAIEVhY2ggZW50cnkgaW4gdGhpcyBhcnJheSBpcyBlaWdo dCBieXRlcy4KIAogVGhlIHR5cGUgZGVmaW5pdGlvbiBvZiB0aGUgZnVuY3Rpb24gYXJlIGFzIGZv bGxvdzoKIAotPHByZT4KLXR5cGVkZWYgdm9pZCAoKmxpdmVwYXRjaF9sb2FkY2FsbF90KSh2b2lk KTsgIAotdHlwZWRlZiB2b2lkICgqbGl2ZXBhdGNoX3VubG9hZGNhbGxfdCkodm9pZCk7ICAgCi08 L3ByZT4KKyAgICB0eXBlZGVmIHZvaWQgKCpsaXZlcGF0Y2hfbG9hZGNhbGxfdCkodm9pZCk7Cisg ICAgdHlwZWRlZiB2b2lkICgqbGl2ZXBhdGNoX3VubG9hZGNhbGxfdCkodm9pZCk7CiAKICMjIyAu bGl2ZXBhdGNoLmRlcGVuZHMgYW5kIC5ub3RlLmdudS5idWlsZC1pZAogCkBAIC00MjMsMTAgKzM5 NSwxMCBAQCB3aGljaCBmb2xsb3dzIHRoZSBmb3JtYXQgb2YgYW4gRUxGIE5vdGUuIFRoZSBjb250 ZW50cyBvZiB0aGlzCiBidWlsZCB0aGUgaHlwZXZpc29yIGFuZCBwYXlsb2FkLgogCiBJZiBHTlUg bGlua2VyIGlzIHVzZWQgdGhlbiB0aGUgbmFtZSBpcyBgR05VYCBhbmQgdGhlIGRlc2NyaXB0aW9u Ci1pcyBhIE5UX0dOVV9CVUlMRF9JRCB0eXBlIElELiBUaGUgZGVzY3JpcHRpb24gY2FuIGJlIGFu IFNIQTEKK2lzIGEgTlRcX0dOVVxfQlVJTERcX0lEIHR5cGUgSUQuIFRoZSBkZXNjcmlwdGlvbiBj YW4gYmUgYW4gU0hBMQogY2hlY2tzdW0sIE1ENSBjaGVja3N1bSBvciBhbnkgdW5pcXVlIHZhbHVl LgogCi1UaGUgc2l6ZSBvZiB0aGVzZSBzdHJ1Y3R1cmVzIHZhcmllcyB3aXRoIHRoZSAtLWJ1aWxk LWlkIGxpbmtlciBvcHRpb24uCitUaGUgc2l6ZSBvZiB0aGVzZSBzdHJ1Y3R1cmVzIHZhcmllcyB3 aXRoIHRoZSBgLS1idWlsZC1pZGAgbGlua2VyIG9wdGlvbi4KIAogIyMgSHlwZXJjYWxscwogCkBA IC00NTQsMjIgKzQyNiwyMCBAQCBGdXJ0aGVybW9yZSBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG11 bHRpcGxlIGRpZmZlcmVudCBwYXlsb2FkcyBmb3IgdGhlIHNhbWUKIGZ1bmN0aW9uLiBBcyBzdWNo IGFuIHVuaXF1ZSBuYW1lIHBlciBwYXlsb2FkIGhhcyB0byBiZSB2aXNpYmxlIHRvIGFsbG93IHBy b3BlciBtYW5pcHVsYXRpb24uCiAKIFRoZSBoeXBlcmNhbGwgaXMgcGFydCBvZiB0aGUgYHhlbl9z eXNjdGxgLiBUaGUgdG9wIGxldmVsIHN0cnVjdHVyZSBjb250YWlucwotb25lIHVpbnQzMl90IHRv IGRldGVybWluZSB0aGUgc3ViLW9wZXJhdGlvbnMgYW5kIG9uZSBwYWRkaW5nIGZpZWxkIHdoaWNo CitvbmUgdWludDMyXF90IHRvIGRldGVybWluZSB0aGUgc3ViLW9wZXJhdGlvbnMgYW5kIG9uZSBw YWRkaW5nIGZpZWxkIHdoaWNoCiAqTVVTVCogYWx3YXlzIGJlIHplcm8uCiAKLTxwcmU+Ci1zdHJ1 Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3AgeyAgCi0gICAgdWludDMyX3QgY21kOyAgICAgICAg ICAgICAgICAgICAvKiBJTjogWEVOX1NZU0NUTF9MSVZFUEFUQ0hfKi4gKi8gIAotICAgIHVpbnQz Ml90IHBhZDsgICAgICAgICAgICAgICAgICAgLyogSU46IEFsd2F5cyB6ZXJvLiAqLyAgCi0JdW5p b24geyAgCi0gICAgICAgICAgLi4uIHNlZSBiZWxvdyAuLi4gIAotICAgICAgICB9IHU7ICAKLX07 ICAKKyAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfb3AgeworICAgICAgICB1aW50MzJf dCBjbWQ7ICAgICAgICAgICAgICAgICAgIC8qIElOOiBYRU5fU1lTQ1RMX0xJVkVQQVRDSF8qLiAq LworICAgICAgICB1aW50MzJfdCBwYWQ7ICAgICAgICAgICAgICAgICAgIC8qIElOOiBBbHdheXMg emVyby4gKi8KKwkgICAgdW5pb24geworICAgICAgICAgICAgICAuLi4gc2VlIGJlbG93IC4uLgor ICAgICAgICAgICAgfSB1OworICAgIH07CiAKLTwvcHJlPgogd2hpbGUgdGhlIHJlc3Qgb2YgaHlw ZXJjYWxsIHNwZWNpZmljIHN0cnVjdHVyZXMgYXJlIHBhcnQgb2YgdGhlIHRoaXMgc3RydWN0dXJl LgogCi0jIyMgQmFzaWMgdHlwZTogc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZQorIyMjIEJhc2lj IHR5cGU6IHN0cnVjdCB4ZW5cX2xpdmVwYXRjaFxfbmFtZQogCiBNb3N0IG9mIHRoZSBoeXBlcmNh bGxzIGVtcGxveSBhbiBzaGFyZWQgc3RydWN0dXJlIGNhbGxlZCBgc3RydWN0IHhlbl9saXZlcGF0 Y2hfbmFtZWAKIHdoaWNoIGNvbnRhaW5zOgpAQCAtNDgwLDI2ICs0NTAsMjQgQEAgd2hpY2ggY29u dGFpbnM6CiAKIFRoZSBzdHJ1Y3R1cmUgaXMgYXMgZm9sbG93OgogCi08cHJlPgotLyogIAotICog IFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHBheWxvYWQuICBTaG91bGQgYmUgaHVtYW4gcmVhZGFi bGUuICAKLSAqIEluY2x1ZGVzIHRoZSBOVUwgdGVybWluYXRvciAgCi0gKi8gIAotI2RlZmluZSBY RU5fTElWRVBBVENIX05BTUVfU0laRSAxMjggIAotc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZSB7 ICAKLSAgICBYRU5fR1VFU1RfSEFORExFXzY0KGNoYXIpIG5hbWU7ICAgICAgICAgLyogSU4sIHBv aW50ZXIgdG8gbmFtZS4gKi8gIAotICAgIHVpbnQxNl90IHNpemU7ICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBJTiwgc2l6ZSBvZiBuYW1lLiBNYXkgYmUgdXB0byAgIAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fTElWRVBBVENIX05BTUVfU0la RS4gKi8gIAotICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJ TjogTVVTVCBiZSB6ZXJvLiAqLyAKLX07ICAKLTwvcHJlPgotCi0jIyMgWEVOX1NZU0NUTF9MSVZF UEFUQ0hfVVBMT0FEICgwKQorICAgIC8qCisgICAgICogIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhl IHBheWxvYWQuICBTaG91bGQgYmUgaHVtYW4gcmVhZGFibGUuCisgICAgICogSW5jbHVkZXMgdGhl IE5VTCB0ZXJtaW5hdG9yCisgICAgICovCisgICAgI2RlZmluZSBYRU5fTElWRVBBVENIX05BTUVf U0laRSAxMjgKKyAgICBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lIHsKKyAgICAgICAgWEVOX0dV RVNUX0hBTkRMRV82NChjaGFyKSBuYW1lOyAgICAgICAgIC8qIElOLCBwb2ludGVyIHRvIG5hbWUu ICovCisgICAgICAgIHVpbnQxNl90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJ Tiwgc2l6ZSBvZiBuYW1lLiBNYXkgYmUgdXB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUuICovCisgICAg ICAgIHVpbnQxNl90IHBhZFszXTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjogTVVTVCBi ZSB6ZXJvLiAqLworICAgIH07CisKKyMjIyBYRU5cX1NZU0NUTFxfTElWRVBBVENIXF9VUExPQUQg KDApCiAKIFVwbG9hZCBhIHBheWxvYWQgdG8gdGhlIGh5cGVydmlzb3IuIFRoZSBwYXlsb2FkIGlz IHZlcmlmaWVkCiBhZ2FpbnN0IGJhc2ljIGNoZWNrcyBhbmQgaWYgdGhlcmUgYXJlIGFueSBpc3N1 ZXMgdGhlIHByb3BlciByZXR1cm4gY29kZQogd2lsbCBiZSByZXR1cm5lZC4gVGhlIHBheWxvYWQg aXMgbm90IGFwcGxpZWQgYXQgdGhpcyB0aW1lIC0gdGhhdCBpcwotY29udHJvbGxlZCBieSAqWEVO X1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OKi4KK2NvbnRyb2xsZWQgYnkgKlhFTlxfU1lTQ1RMXF9M SVZFUEFUQ0hcX0FDVElPTiouCiAKIFRoZSBjYWxsZXIgcHJvdmlkZXM6CiAKQEAgLTUxMiwyMSAr NDgwLDE5IEBAIHBheWxvYWQuIEl0IGNhbiBiZSBlbWJlZGRlZCBpbnRvIHRoZSBFTEYgcGF5bG9h ZCBhdCBjcmVhdGlvbiB0aW1lCiBhbmQgZXh0cmFjdGVkIGJ5IHRvb2xzLgogCiBUaGUgcmV0dXJu IHZhbHVlIGlzIHplcm8gaWYgdGhlIHBheWxvYWQgd2FzIHN1Y2Nlc2Z1bGx5IHVwbG9hZGVkLgot T3RoZXJ3aXNlIGFuIC1YRU5fRVhYIHJldHVybiB2YWx1ZSBpcyBwcm92aWRlZC4gRHVwbGljYXRl IGBuYW1lYCBhcmUgbm90IHN1cHBvcnRlZC4KK090aGVyd2lzZSBhbiAtWEVOXF9FWFggcmV0dXJu IHZhbHVlIGlzIHByb3ZpZGVkLiBEdXBsaWNhdGUgYG5hbWVgIGFyZSBub3Qgc3VwcG9ydGVkLgog CiBUaGUgYHBheWxvYWRgIGlzIHRoZSBFTEYgcGF5bG9hZCBhcyBtZW50aW9uZWQgaW4gdGhlIGBQ YXlsb2FkIGZvcm1hdGAgc2VjdGlvbi4KIAogVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAK LTxwcmU+Ci1zdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfdXBsb2FkIHsgIAotICAgIHhlbl9s aXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAgICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXRjaC4g Ki8gIAotICAgIHVpbnQ2NF90IHNpemU7ICAgICAgICAgICAgICAgICAgICAgIC8qIElOLCBzaXpl IG9mIHRoZSBFTEYgZmlsZS4gKi8gIAotICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDgpIHBh eWxvYWQ7IC8qIElOOiBFTEYgZmlsZS4gKi8gIAotfTsgIAotPC9wcmU+CisgICAgc3RydWN0IHhl bl9zeXNjdGxfbGl2ZXBhdGNoX3VwbG9hZCB7CisgICAgICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90 IG5hbWU7ICAgICAgICAgIC8qIElOLCBuYW1lIG9mIHRoZSBwYXRjaC4gKi8KKyAgICAgICAgdWlu dDY0X3Qgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAgLyogSU4sIHNpemUgb2YgdGhlIEVMRiBm aWxlLiAqLworICAgICAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQ4KSBwYXlsb2FkOyAvKiBJ TjogRUxGIGZpbGUuICovCisgICAgfTsKIAotIyMjIFhFTl9TWVNDVExfTElWRVBBVENIX0dFVCAo MSkKKyMjIyBYRU5cX1NZU0NUTFxfTElWRVBBVENIXF9HRVQgKDEpCiAKIFJldHJpZXZlIGFuIHN0 YXR1cyBvZiBhbiBzcGVjaWZpYyBwYXlsb2FkLiBUaGlzIGNhbGxlciBwcm92aWRlczoKIApAQCAt NTM3LDMzICs1MDMsMjkgQEAgUmV0cmlldmUgYW4gc3RhdHVzIG9mIGFuIHNwZWNpZmljIHBheWxv YWQuIFRoaXMgY2FsbGVyIHByb3ZpZGVzOgogVXBvbiBjb21wbGV0aW9uIHRoZSBgc3RydWN0IHhl bl9saXZlcGF0Y2hfc3RhdHVzYCBpcyB1cGRhdGVkLgogCiAgKiBgc3RhdHVzYCAtIGluZGljYXRl cyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHBheWxvYWQ6Ci0gICAqICpMSVZFUEFUQ0hfU1RB VFVTX0NIRUNLRUQqICAoMSkgbG9hZGVkIGFuZCB0aGUgRUxGIHBheWxvYWQgc2FmZXR5IGNoZWNr cyBwYXNzZWQuCi0gICAqICpMSVZFUEFUQ0hfU1RBVFVTX0FQUExJRUQqICgyKSBsb2FkZWQsIGNo ZWNrZWQsIGFuZCBhcHBsaWVkLgorICAgKiAqTElWRVBBVENIXF9TVEFUVVNcX0NIRUNLRUQqICgx KSBsb2FkZWQgYW5kIHRoZSBFTEYgcGF5bG9hZCBzYWZldHkgY2hlY2tzIHBhc3NlZC4KKyAgICog KkxJVkVQQVRDSFxfU1RBVFVTXF9BUFBMSUVEKiAoMikgbG9hZGVkLCBjaGVja2VkLCBhbmQgYXBw bGllZC4KICAgICogIE5vIG90aGVyIHZhbHVlIGlzIHBvc3NpYmxlLgotICogYHJjYCAtIC1YRU5f RVhYIHR5cGUgZXJyb3JzIGVuY291bnRlcmVkIHdoaWxlIHBlcmZvcm1pbmcgdGhlIGxhc3QKLSAg IExJVkVQQVRDSF9BQ1RJT05fKiBvcGVyYXRpb24uIFRoZSBub3JtYWwgdmFsdWVzIGNhbiBiZSB6 ZXJvIG9yIC1YRU5fRUFHQUlOIHdoaWNoCisgKiBgcmNgIC0gLVhFTlxfRVhYIHR5cGUgZXJyb3Jz IGVuY291bnRlcmVkIHdoaWxlIHBlcmZvcm1pbmcgdGhlIGxhc3QKKyAgIExJVkVQQVRDSFxfQUNU SU9OXF9cKiBvcGVyYXRpb24uIFRoZSBub3JtYWwgdmFsdWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5c X0VBR0FJTiB3aGljaAogICAgcmVzcGVjdGl2ZWx5IG1lYW46IHN1Y2Nlc3Mgb3Igb3BlcmF0aW9u IGluIHByb2dyZXNzLiBPdGhlciB2YWx1ZXMKICAgIGltcGx5IGFuIGVycm9yIG9jY3VycmVkLiBJ ZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBgcmNgLCBgc3RhdHVzYCB3aWxsICoqTk9UKioKICAgIGhh dmUgY2hhbmdlZC4KIAotVGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgaHlwZXJjYWxsIGlzIHplcm8g b24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KLShOb3RlIHRoYXQgdGhlIGByY2Bg IHZhbHVlIGNhbiBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcmV0dXJuIHZhbHVlLCBhcyBpbgotcmM9 LVhFTl9FQUdBSU4gYW5kIHJldHVybiB2YWx1ZSBjYW4gYmUgMCkuCitUaGUgcmV0dXJuIHZhbHVl IG9mIHRoZSBoeXBlcmNhbGwgaXMgemVybyBvbiBzdWNjZXNzIGFuZCAtWEVOXF9FWFggb24gZmFp bHVyZS4KKyhOb3RlIHRoYXQgdGhlIGByY2AgdmFsdWUgY2FuIGJlIGRpZmZlcmVudCBmcm9tIHRo ZSByZXR1cm4gdmFsdWUsIGFzIGluCityYz0tWEVOXF9FQUdBSU4gYW5kIHJldHVybiB2YWx1ZSBj YW4gYmUgMCkuCiAKIEZvciBleGFtcGxlLCBzdXBwb3NpbmcgdGhlcmUgaXMgYW4gcGF5bG9hZDoK IAotPHByZT4KLSBzdGF0dXM6IExJVkVQQVRDSF9TVEFUVVNfQ0hFQ0tFRAotIHJjOiAwCi08L3By ZT4KKyAgICBzdGF0dXM6IExJVkVQQVRDSF9TVEFUVVNfQ0hFQ0tFRAorICAgIHJjOiAwCiAKLVdl IGFwcGx5IGFuIGFjdGlvbiAtIExJVkVQQVRDSF9BQ1RJT05fUkVWRVJUIC0gdG8gcmV2ZXJ0IGl0 ICh3aGljaCB3b24ndCB3b3JrCitXZSBhcHBseSBhbiBhY3Rpb24gLSBMSVZFUEFUQ0hcX0FDVElP TlxfUkVWRVJUIC0gdG8gcmV2ZXJ0IGl0ICh3aGljaCB3b24ndCB3b3JrCiBhcyB3ZSBoYXZlIG5v dCBldmVuIGFwcGxpZWQgaXQuIEFmdGVyd2FyZHMgd2Ugd2lsbCBoYXZlOgogCi08cHJlPgotIHN0 YXR1czogTElWRVBBVENIX1NUQVRVU19DSEVDS0VECi0gcmM6IC1YRU5fRUlOVkFMCi08L3ByZT4K KyAgICBzdGF0dXM6IExJVkVQQVRDSF9TVEFUVVNfQ0hFQ0tFRAorICAgIHJjOiAtWEVOX0VJTlZB TAogCiBJdCBoYXMgZmFpbGVkIGJ1dCBpdCByZW1haW5zIGxvYWRlZC4KIApAQCAtNTcxLDIxICs1 MzMsMTkgQEAgVGhpcyBvcGVyYXRpb24gaXMgc3luY2hyb25vdXMgYW5kIGRvZXMgbm90IHJlcXVp cmUgcHJlZW1wdGlvbi4KIAogVGhlIHN0cnVjdHVyZSBpcyBhcyBmb2xsb3c6CiAKLTxwcmU+Ci1z dHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXMgeyAgCi0jZGVmaW5lIExJVkVQQVRDSF9TVEFUVVNf Q0hFQ0tFRCAgICAgIDEgIAotI2RlZmluZSBMSVZFUEFUQ0hfU1RBVFVTX0FQUExJRUQgICAgICAy ICAKLSAgICB1aW50MzJfdCBzdGF0ZTsgICAgICAgICAgICAgICAgIC8qIE9VVDogTElWRVBBVENI X1NUQVRFXyouICovICAKLSAgICBpbnQzMl90IHJjOyAgICAgICAgICAgICAgICAgICAgIC8qIE9V VDogMCBpZiBubyBlcnJvciwgb3RoZXJ3aXNlIC1YRU5fRVhYLiAqLyAgCi19OyAgCisgICAgc3Ry dWN0IHhlbl9saXZlcGF0Y2hfc3RhdHVzIHsKKyAgICAjZGVmaW5lIExJVkVQQVRDSF9TVEFUVVNf Q0hFQ0tFRCAgICAgIDEKKyAgICAjZGVmaW5lIExJVkVQQVRDSF9TVEFUVVNfQVBQTElFRCAgICAg IDIKKyAgICAgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAgICAgICAgICAvKiBPVVQ6IExJVkVQ QVRDSF9TVEFURV8qLiAqLworICAgICAgICBpbnQzMl90IHJjOyAgICAgICAgICAgICAgICAgICAg IC8qIE9VVDogMCBpZiBubyBlcnJvciwgb3RoZXJ3aXNlIC1YRU5fRVhYLiAqLworICAgIH07CiAK LXN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9nZXQgeyAgCi0gICAgeGVuX2xpdmVwYXRjaF9u YW1lX3QgbmFtZTsgICAgICAvKiBJTiwgdGhlIG5hbWUgb2YgdGhlIHBheWxvYWQuICovICAKLSAg ICB4ZW5fbGl2ZXBhdGNoX3N0YXR1c190IHN0YXR1czsgIC8qIElOL09VVDogc3RhdHVzIG9mIHRo ZSBwYXlsb2FkLiAqLyAgCi19OyAgCi08L3ByZT4KKyAgICBzdHJ1Y3QgeGVuX3N5c2N0bF9saXZl cGF0Y2hfZ2V0IHsKKyAgICAgICAgeGVuX2xpdmVwYXRjaF9uYW1lX3QgbmFtZTsgICAgICAvKiBJ TiwgdGhlIG5hbWUgb2YgdGhlIHBheWxvYWQuICovCisgICAgICAgIHhlbl9saXZlcGF0Y2hfc3Rh dHVzX3Qgc3RhdHVzOyAgLyogSU4vT1VUOiBzdGF0dXMgb2YgdGhlIHBheWxvYWQuICovCisgICAg fTsKIAotIyMjIFhFTl9TWVNDVExfTElWRVBBVENIX0xJU1QgKDIpCisjIyMgWEVOXF9TWVNDVExc X0xJVkVQQVRDSFxfTElTVCAoMikKIAogUmV0cmlldmUgYW4gYXJyYXkgb2YgYWJicmV2aWF0ZWQg c3RhdHVzIGFuZCBuYW1lcyBvZiBwYXlsb2FkcyB0aGF0IGFyZSBsb2FkZWQgaW4gdGhlCiBoeXBl cnZpc29yLgpAQCAtNTk0LDMyICs1NTQsMzIgQEAgVGhlIGNhbGxlciBwcm92aWRlczoKIAogICog YHZlcnNpb25gLiBWZXJzaW9uIG9mIHRoZSBwYXlsb2FkLiBDYWxsZXIgc2hvdWxkIHJlLXVzZSB0 aGUgZmllbGQgcHJvdmlkZWQgYnkKICAgICB0aGUgaHlwZXJ2aXNvci4gSWYgdGhlIHZhbHVlIGRp ZmZlcnMgdGhlIGRhdGEgaXMgc3RhbGUuCi0gKiBgaWR4YCBpbmRleCBpdGVyYXRvci4gVGhlIGlu ZGV4IGludG8gdGhlIGh5cGVydmlzb3IncyBwYXlsb2FkIGNvdW50LiBJdCBpcworICogYGlkeGAg SW5kZXggaXRlcmF0b3IuIFRoZSBpbmRleCBpbnRvIHRoZSBoeXBlcnZpc29yJ3MgcGF5bG9hZCBj b3VudC4gSXQgaXMKICAgICByZWNvbW1lbmRlZCB0aGF0IG9uIGZpcnN0IGludm9jYXRpb24gemVy byBiZSB1c2VkIHNvIHRoYXQgYG5yYCAod2hpY2ggdGhlCiAgICAgaHlwZXJ2aXNvciB3aWxsIHVw ZGF0ZSB3aXRoIHRoZSByZW1haW5pbmcgcGF5bG9hZCBjb3VudCkgYmUgcHJvdmlkZWQuCiAgICAg QWxzbyB0aGUgaHlwZXJ2aXNvciB3aWxsIHByb3ZpZGUgYHZlcnNpb25gIHdpdGggdGhlIG1vc3Qg Y3VycmVudCB2YWx1ZS4KLSAqIGBucmAgdGhlIG1heCBudW1iZXIgb2YgZW50cmllcyB0byBwb3B1 bGF0ZS4gQ2FuIGJlIHplcm8gd2hpY2ggd2lsbCByZXN1bHQKKyAqIGBucmAgVGhlIG1heCBudW1i ZXIgb2YgZW50cmllcyB0byBwb3B1bGF0ZS4gQ2FuIGJlIHplcm8gd2hpY2ggd2lsbCByZXN1bHQK ICAgICBpbiB0aGUgaHlwZXJjYWxsIGJlaW5nIGEgcHJvYmluZyBvbmUgYW5kIHJldHVybiB0aGUg bnVtYmVyIG9mIHBheWxvYWRzCiAgICAgKGFuZCB1cGRhdGUgdGhlIGB2ZXJzaW9uYCkuCiAgKiBg cGFkYCAtICpNVVNUKiBiZSB6ZXJvLgotICogYHN0YXR1c2AgdmlydHVhbCBhZGRyZXNzIG9mIHdo ZXJlIHRvIHdyaXRlIGBzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9zdGF0dXNgCisgKiBgc3RhdHVzYCBW aXJ0dWFsIGFkZHJlc3Mgb2Ygd2hlcmUgdG8gd3JpdGUgYHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0 YXR1c2AKICAgIHN0cnVjdHVyZXMuIENhbGxlciAqTVVTVCogYWxsb2NhdGUgdXAgdG8gYG5yYCBv ZiB0aGVtLgotICogYG5hbWVgIC0gdmlydHVhbCBhZGRyZXNzIG9mIHdoZXJlIHRvIHdyaXRlIHRo ZSB1bmlxdWUgbmFtZSBvZiB0aGUgcGF5bG9hZC4KKyAqIGBuYW1lYCAtIFZpcnR1YWwgYWRkcmVz cyBvZiB3aGVyZSB0byB3cml0ZSB0aGUgdW5pcXVlIG5hbWUgb2YgdGhlIHBheWxvYWQuCiAgICBD YWxsZXIgKk1VU1QqIGFsbG9jYXRlIHVwIHRvIGBucmAgb2YgdGhlbS4gRWFjaCAqTVVTVCogYmUg b2YKLSAgICoqWEVOX0xJVkVQQVRDSF9OQU1FX1NJWkUqKiBzaXplLiBOb3RlIHRoYXQgKipYRU5f TElWRVBBVENIX05BTUVfU0laRSoqIGluY2x1ZGVzCisgICAqKlhFTlxfTElWRVBBVENIXF9OQU1F XF9TSVpFKiogc2l6ZS4gTm90ZSB0aGF0ICoqWEVOXF9MSVZFUEFUQ0hcX05BTUVcX1NJWkUqKiBp bmNsdWRlcwogICAgdGhlIE5VTCB0ZXJtaW5hdG9yLgotICogYGxlbmAgLSB2aXJ0dWFsIGFkZHJl c3Mgb2Ygd2hlcmUgdG8gd3JpdGUgdGhlIGxlbmd0aCBvZiBlYWNoIHVuaXF1ZSBuYW1lCisgKiBg bGVuYCAtIFZpcnR1YWwgYWRkcmVzcyBvZiB3aGVyZSB0byB3cml0ZSB0aGUgbGVuZ3RoIG9mIGVh Y2ggdW5pcXVlIG5hbWUKICAgIG9mIHRoZSBwYXlsb2FkLiBDYWxsZXIgKk1VU1QqIGFsbG9jYXRl IHVwIHRvIGBucmAgb2YgdGhlbS4gRWFjaCAqTVVTVCogYmUKLSAgIG9mIHNpemVvZih1aW50MzJf dCkgKDQgYnl0ZXMpLgorICAgb2Ygc2l6ZW9mKHVpbnQzMlxfdCkgKDQgYnl0ZXMpLgogCiBJZiB0 aGUgaHlwZXJjYWxsIHJldHVybnMgYW4gcG9zaXRpdmUgbnVtYmVyLCBpdCBpcyB0aGUgbnVtYmVy ICh1cHRvIGBucmAKIHByb3ZpZGVkIHRvIHRoZSBoeXBlcmNhbGwpIG9mIHRoZSBwYXlsb2FkcyBy ZXR1cm5lZCwgYWxvbmcgd2l0aCBgbnJgIHVwZGF0ZWQKIHdpdGggdGhlIG51bWJlciBvZiByZW1h aW5pbmcgcGF5bG9hZHMsIGB2ZXJzaW9uYCB1cGRhdGVkIChpdCBtYXkgYmUgdGhlIHNhbWUKIGFj cm9zcyBoeXBlcmNhbGxzIC0gaWYgaXQgdmFyaWVzIHRoZSBkYXRhIGlzIHN0YWxlIGFuZCBmdXJ0 aGVyIGNhbGxzIGNvdWxkCi1mYWlsKS4gVGhlIGBzdGF0dXNgLCBgbmFtZWAsIGFuZCBgbGVuYCcg YXJlIHVwZGF0ZWQgYXQgdGhlaXIgZGVzaWduZWQgaW5kZXgKK2ZhaWwpLiBUaGUgYHN0YXR1c2As IGBuYW1lYCwgYW5kIGBsZW5gIGFyZSB1cGRhdGVkIGF0IHRoZWlyIGRlc2lnbmVkIGluZGV4CiB2 YWx1ZSAoYGlkeGApIHdpdGggdGhlIHJldHVybmVkIHZhbHVlIG9mIGRhdGEuCiAKLUlmIHRoZSBo eXBlcmNhbGwgcmV0dXJucyAtWEVOX0UyQklHIHRoZSBgbnJgIGlzIHRvbyBiaWcgYW5kIHNob3Vs ZCBiZQorSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5zIC1YRU5cX0UyQklHIHRoZSBgbnJgIGlzIHRv byBiaWcgYW5kIHNob3VsZCBiZQogbG93ZXJlZC4KIAogSWYgdGhlIGh5cGVyY2FsbCByZXR1cm5z IGFuIHplcm8gdmFsdWUgdGhlcmUgYXJlIG5vIG1vcmUgcGF5bG9hZHMuCkBAIC02MzQsNjIgKzU5 NCw2MCBAQCBkYXRhIGFuZCBzdGFydCBmcm9tIHNjcmF0Y2guIEl0IGlzIE9LIGZvciB0aGUgdG9v bHN0YWNrIHRvIHVzZSB0aGUgbmV3CiBUaGUgYHN0cnVjdCB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2Ag c3RydWN0dXJlIGNvbnRhaW5zIGFuIHN0YXR1cyBvZiBwYXlsb2FkIHdoaWNoIGluY2x1ZGVzOgog CiAgKiBgc3RhdHVzYCAtIGluZGljYXRlcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHBheWxv YWQ6Ci0gICAqICpMSVZFUEFUQ0hfU1RBVFVTX0NIRUNLRUQqICAoMSkgbG9hZGVkIGFuZCB0aGUg RUxGIHBheWxvYWQgc2FmZXR5IGNoZWNrcyBwYXNzZWQuCi0gICAqICpMSVZFUEFUQ0hfU1RBVFVT X0FQUExJRUQqICgyKSBsb2FkZWQsIGNoZWNrZWQsIGFuZCBhcHBsaWVkLgorICAgKiAqTElWRVBB VENIXF9TVEFUVVNcX0NIRUNLRUQqICgxKSBsb2FkZWQgYW5kIHRoZSBFTEYgcGF5bG9hZCBzYWZl dHkgY2hlY2tzIHBhc3NlZC4KKyAgICogKkxJVkVQQVRDSFxfU1RBVFVTXF9BUFBMSUVEKiAoMikg bG9hZGVkLCBjaGVja2VkLCBhbmQgYXBwbGllZC4KICAgICogIE5vIG90aGVyIHZhbHVlIGlzIHBv c3NpYmxlLgotICogYHJjYCAtIC1YRU5fRVhYIHR5cGUgZXJyb3JzIGVuY291bnRlcmVkIHdoaWxl IHBlcmZvcm1pbmcgdGhlIGxhc3QKLSAgIExJVkVQQVRDSF9BQ1RJT05fKiBvcGVyYXRpb24uIFRo ZSBub3JtYWwgdmFsdWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5fRUFHQUlOIHdoaWNoCisgKiBgcmNg IC0gLVhFTlxfRVhYIHR5cGUgZXJyb3JzIGVuY291bnRlcmVkIHdoaWxlIHBlcmZvcm1pbmcgdGhl IGxhc3QKKyAgIExJVkVQQVRDSFxfQUNUSU9OXF9cKiBvcGVyYXRpb24uIFRoZSBub3JtYWwgdmFs dWVzIGNhbiBiZSB6ZXJvIG9yIC1YRU5cX0VBR0FJTiB3aGljaAogICAgcmVzcGVjdGl2ZWx5IG1l YW46IHN1Y2Nlc3Mgb3Igb3BlcmF0aW9uIGluIHByb2dyZXNzLiBPdGhlciB2YWx1ZXMKICAgIGlt cGx5IGFuIGVycm9yIG9jY3VycmVkLiBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBgcmNgLCBgc3Rh dHVzYCB3aWxsICoqTk9UKioKICAgIGhhdmUgY2hhbmdlZC4KIAogVGhlIHN0cnVjdHVyZSBpcyBh cyBmb2xsb3c6CiAKLTxwcmU+Ci1zdHJ1Y3QgeGVuX3N5c2N0bF9saXZlcGF0Y2hfbGlzdCB7ICAK LSAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgICAgICAgICAgICAgLyogT1VUOiBIeXBl cnZpc29yIHN0YW1wcyB2YWx1ZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgdmFyaWVzIGJldHdlZW4gY2FsbHMsIHdlIGFyZSAgCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldHRpbmcgc3RhbGUgZGF0YS4g Ki8gIAotICAgIHVpbnQzMl90IGlkeDsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJTjog SW5kZXggaW50byBoeXBlcnZpc29yIGxpc3QuICovCi0gICAgdWludDMyX3QgbnI7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIElOOiBIb3cgbWFueSBzdGF0dXMsIG5hbWVzLCBhbmQgbGVu ICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxk IGJlIGZpbGxlZCBvdXQuIENhbiBiZSB6ZXJvIHRvIGdldCAgCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudCBvZiBwYXlsb2FkcyBhbmQgdmVyc2lv bi4gIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVVQ6 IEhvdyBtYW55IHBheWxvYWRzIGxlZnQuICovICAKLSAgICB1aW50MzJfdCBwYWQ7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogSU46IE11c3QgYmUgemVyby4gKi8gIAotICAgIFhFTl9HVUVT VF9IQU5ETEVfNjQoeGVuX2xpdmVwYXRjaF9zdGF0dXNfdCkgc3RhdHVzOyAgLyogT1VULiBNdXN0 IGhhdmUgZW5vdWdoICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovICAKLSAgICBYRU5fR1VFU1Rf SEFORExFXzY0KGNoYXIpIGlkOyAgICAgICAgICAgLyogT1VUOiBBcnJheSBvZiBuYW1lcy4gRWFj aCBtZW1iZXIgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNVVNUIFhFTl9MSVZFUEFUQ0hfTkFNRV9TSVpFIGluIHNpemUuICAKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICov ICAKLSAgICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgbGVuOyAgICAgICAgLyogT1VUOiBB cnJheSBvZiBsZW5ndGhzIG9mIG5hbWUncy4gIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNdXN0IGhhdmUgbnIgb2YgdGhlbS4gKi8gIAotfTsgIAotPC9w cmU+Ci0KLSMjIyBYRU5fU1lTQ1RMX0xJVkVQQVRDSF9BQ1RJT04gKDMpCisgICAgc3RydWN0IHhl bl9zeXNjdGxfbGl2ZXBhdGNoX2xpc3QgeworICAgICAgICB1aW50MzJfdCB2ZXJzaW9uOyAgICAg ICAgICAgICAgICAgICAgICAgLyogT1VUOiBIeXBlcnZpc29yIHN0YW1wcyB2YWx1ZS4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHZhcmllcyBi ZXR3ZWVuIGNhbGxzLCB3ZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdldHRpbmcgc3RhbGUgZGF0YS4gKi8KKyAgICAgICAgdWludDMyX3Qg aWR4OyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBJbmRleCBpbnRvIGh5cGVydmlz b3IgbGlzdC4gKi8KKyAgICAgICAgdWludDMyX3QgbnI7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIElOOiBIb3cgbWFueSBzdGF0dXMsIG5hbWVzLCBhbmQgbGVuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgZmlsbGVkIG91 dC4gQ2FuIGJlIHplcm8gdG8gZ2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhbW91bnQgb2YgcGF5bG9hZHMgYW5kIHZlcnNpb24uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPVVQ6IEhvdyBtYW55 IHBheWxvYWRzIGxlZnQuICovCisgICAgICAgIHVpbnQzMl90IHBhZDsgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBJTjogTXVzdCBiZSB6ZXJvLiAqLworICAgICAgICBYRU5fR1VFU1RfSEFO RExFXzY0KHhlbl9saXZlcGF0Y2hfc3RhdHVzX3QpIHN0YXR1czsgIC8qIE9VVC4gTXVzdCBoYXZl IGVub3VnaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3BhY2UgYWxsb2NhdGUgZm9yIG5yIG9mIHRoZW0uICovCisgICAgICAgIFhFTl9HVUVTVF9I QU5ETEVfNjQoY2hhcikgaWQ7ICAgICAgICAgICAvKiBPVVQ6IEFycmF5IG9mIG5hbWVzLiBFYWNo IG1lbWJlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTVVTVCBYRU5fTElWRVBBVENIX05BTUVfU0laRSBpbiBzaXplLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0u ICovCisgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQodWludDMyKSBsZW47ICAgICAgICAvKiBP VVQ6IEFycmF5IG9mIGxlbmd0aHMgb2YgbmFtZSdzLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTXVzdCBoYXZlIG5yIG9mIHRoZW0uICovCisgICAg fTsKKworIyMjIFhFTlxfU1lTQ1RMXF9MSVZFUEFUQ0hcX0FDVElPTiAoMykKIAogUGVyZm9ybSBh biBvcGVyYXRpb24gb24gdGhlIHBheWxvYWQgc3RydWN0dXJlIHJlZmVyZW5jZWQgYnkgdGhlIGBu YW1lYCBmaWVsZC4KIFRoZSBvcGVyYXRpb24gcmVxdWVzdCBpcyBhc3luY2hyb25vdXMgYW5kIHRo ZSBzdGF0dXMgc2hvdWxkIGJlIHJldHJpZXZlZAotYnkgdXNpbmcgZWl0aGVyICoqWEVOX1NZU0NU TF9MSVZFUEFUQ0hfR0VUKiogb3IgKipYRU5fU1lTQ1RMX0xJVkVQQVRDSF9MSVNUKiogaHlwZXJj YWxsLgorYnkgdXNpbmcgZWl0aGVyICoqWEVOXF9TWVNDVExcX0xJVkVQQVRDSFxfR0VUKiogb3Ig KipYRU5cX1NZU0NUTFxfTElWRVBBVENIXF9MSVNUKiogaHlwZXJjYWxsLgogCiBUaGUgY2FsbGVy IHByb3ZpZGVzOgogCi0gKiBBICdzdHJ1Y3QgeGVuX2xpdmVwYXRjaF9uYW1lYCBgbmFtZWAgY29u dGFpbmluZyB0aGUgdW5pcXVlIG5hbWUuCi0gKiBgY21kYCB0aGUgY29tbWFuZCByZXF1ZXN0ZWQ6 Ci0gICogKkxJVkVQQVRDSF9BQ1RJT05fVU5MT0FEKiAoMSkgdW5sb2FkIHRoZSBwYXlsb2FkLgor ICogQSBgc3RydWN0IHhlbl9saXZlcGF0Y2hfbmFtZWAgYG5hbWVgIGNvbnRhaW5pbmcgdGhlIHVu aXF1ZSBuYW1lLgorICogYGNtZGAgVGhlIGNvbW1hbmQgcmVxdWVzdGVkOgorICAqICpMSVZFUEFU Q0hcX0FDVElPTlxfVU5MT0FEKiAoMSkgVW5sb2FkIHRoZSBwYXlsb2FkLgogICAgQW55IGZ1cnRo ZXIgaHlwZXJjYWxscyBhZ2FpbnN0IHRoZSBgbmFtZWAgd2lsbCByZXN1bHQgaW4gZmFpbHVyZSB1 bmxlc3MKLSAgICoqWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEKiogaHlwZXJjYWxsIGlzIHBl cmZvbWVkIHdpdGggc2FtZSBgbmFtZWAuCi0gICogKkxJVkVQQVRDSF9BQ1RJT05fUkVWRVJUKiAo MikgcmV2ZXJ0IHRoZSBwYXlsb2FkLiBJZiB0aGUgb3BlcmF0aW9uIHRha2VzCi0gIG1vcmUgdGlt ZSB0aGFuIHRoZSB1cHBlciBib3VuZCBvZiB0aW1lIHRoZSBgcmNgIGluIGB4ZW5fbGl2ZXBhdGNo X3N0YXR1cycKLSAgcmV0cmlldmVkIHZpYSAqKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCoqIHdp bGwgYmUgLVhFTl9FQlVTWS4KLSAgKiAqTElWRVBBVENIX0FDVElPTl9BUFBMWSogKDMpIGFwcGx5 IHRoZSBwYXlsb2FkLiBJZiB0aGUgb3BlcmF0aW9uIHRha2VzCi0gIG1vcmUgdGltZSB0aGFuIHRo ZSB1cHBlciBib3VuZCBvZiB0aW1lIHRoZSBgcmNgIGluIGB4ZW5fbGl2ZXBhdGNoX3N0YXR1cycK LSAgcmV0cmlldmVkIHZpYSAqKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCoqIHdpbGwgYmUgLVhF Tl9FQlVTWS4KLSAgKiAqTElWRVBBVENIX0FDVElPTl9SRVBMQUNFKiAoNCkgcmV2ZXJ0IGFsbCBh cHBsaWVkIHBheWxvYWRzIGFuZCBhcHBseSB0aGlzCisgICAqKlhFTlxfU1lTQ1RMXF9MSVZFUEFU Q0hcX1VQTE9BRCoqIGh5cGVyY2FsbCBpcyBwZXJmb21lZCB3aXRoIHNhbWUgYG5hbWVgLgorICAq ICpMSVZFUEFUQ0hcX0FDVElPTlxfUkVWRVJUKiAoMikgUmV2ZXJ0IHRoZSBwYXlsb2FkLiBJZiB0 aGUgb3BlcmF0aW9uIHRha2VzCisgIG1vcmUgdGltZSB0aGFuIHRoZSB1cHBlciBib3VuZCBvZiB0 aW1lIHRoZSBgcmNgIGluIGB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2AKKyAgcmV0cmlldmVkIHZpYSAq KlhFTlxfU1lTQ1RMXF9MSVZFUEFUQ0hcX0dFVCoqIHdpbGwgYmUgLVhFTlxfRUJVU1kuCisgICog KkxJVkVQQVRDSFxfQUNUSU9OXF9BUFBMWSogKDMpIEFwcGx5IHRoZSBwYXlsb2FkLiBJZiB0aGUg b3BlcmF0aW9uIHRha2VzCisgIG1vcmUgdGltZSB0aGFuIHRoZSB1cHBlciBib3VuZCBvZiB0aW1l IHRoZSBgcmNgIGluIGB4ZW5fbGl2ZXBhdGNoX3N0YXR1c2AKKyAgcmV0cmlldmVkIHZpYSAqKlhF TlxfU1lTQ1RMXF9MSVZFUEFUQ0hcX0dFVCoqIHdpbGwgYmUgLVhFTlxfRUJVU1kuCisgICogKkxJ VkVQQVRDSFxfQUNUSU9OXF9SRVBMQUNFKiAoNCkgUmV2ZXJ0IGFsbCBhcHBsaWVkIHBheWxvYWRz IGFuZCBhcHBseSB0aGlzCiAgIHBheWxvYWQuIElmIHRoZSBvcGVyYXRpb24gdGFrZXMgbW9yZSB0 aW1lIHRoYW4gdGhlIHVwcGVyIGJvdW5kIG9mIHRpbWUKLSAgdGhlIGByY2AgaW4gYHhlbl9saXZl cGF0Y2hfc3RhdHVzJyByZXRyaWV2ZWQgdmlhICoqWEVOX1NZU0NUTF9MSVZFUEFUQ0hfR0VUKioK LSAgd2lsbCBiZSAtWEVOX0VCVVNZLgotICogYHRpbWVgIHRoZSB1cHBlciBib3VuZCBvZiB0aW1l IChucykgdGhlIGNtZCBzaG91bGQgdGFrZS4gWmVybyBtZWFucyB0byB1c2UKKyAgdGhlIGByY2Ag aW4gYHhlbl9saXZlcGF0Y2hfc3RhdHVzYCByZXRyaWV2ZWQgdmlhICoqWEVOXF9TWVNDVExcX0xJ VkVQQVRDSFxfR0VUKioKKyAgd2lsbCBiZSAtWEVOXF9FQlVTWS4KKyAqIGB0aW1lYCBUaGUgdXBw ZXIgYm91bmQgb2YgdGltZSAobnMpIHRoZSBjbWQgc2hvdWxkIHRha2UuIFplcm8gbWVhbnMgdG8g dXNlCiAgICB0aGUgaHlwZXJ2aXNvciBkZWZhdWx0LiBJZiB3aXRoaW4gdGhlIHRpbWUgdGhlIG9w ZXJhdGlvbiBkb2VzIG5vdCBzdWNjZWVkCiAgICB0aGUgb3BlcmF0aW9uIHdvdWxkIGdvIGluIGVy cm9yIHN0YXRlLgogICogYHBhZGAgLSAqTVVTVCogYmUgemVyby4KQEAgLTY5OCw3MSArNjU2LDY0 IEBAIFRoZSByZXR1cm4gdmFsdWUgd2lsbCBiZSB6ZXJvIHVubGVzcyB0aGUgcHJvdmlkZWQgZmll bGRzIGFyZSBpbmNvcnJlY3QuCiAKIFRoZSBzdHJ1Y3R1cmUgaXMgYXMgZm9sbG93OgogCi08cHJl PgotI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1VOTE9BRCAgMSAgCi0jZGVmaW5lIExJVkVQQVRD SF9BQ1RJT05fUkVWRVJUICAyICAKLSNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9BUFBMWSAgIDMg IAotI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1JFUExBQ0UgNCAgCi1zdHJ1Y3QgeGVuX3N5c2N0 bF9saXZlcGF0Y2hfYWN0aW9uIHsgIAotICAgIHhlbl9saXZlcGF0Y2hfbmFtZV90IG5hbWU7ICAg ICAgICAgICAgICAvKiBJTiwgbmFtZSBvZiB0aGUgcGF0Y2guICovICAKLSAgICB1aW50MzJfdCBj bWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IExJVkVQQVRDSF9BQ1RJT05fKiAq LyAgCi0gICAgdWludDMyX3QgdGltZTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElOOiBJ ZiB6ZXJvIHRoZW4gdXNlcyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBoeXBlcnZpc29yIGRlZmF1bHQuICovCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIE9yIHVwcGVyIGJvdW5kIG9mIHRpbWUgKG5zKSAqLwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmb3Igb3BlcmF0 aW9uIHRvIHRha2UuICovCi19OyAgCisgICAgI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9OX1VOTE9B RCAgMQorICAgICNkZWZpbmUgTElWRVBBVENIX0FDVElPTl9SRVZFUlQgIDIKKyAgICAjZGVmaW5l IExJVkVQQVRDSF9BQ1RJT05fQVBQTFkgICAzCisgICAgI2RlZmluZSBMSVZFUEFUQ0hfQUNUSU9O X1JFUExBQ0UgNAorICAgIHN0cnVjdCB4ZW5fc3lzY3RsX2xpdmVwYXRjaF9hY3Rpb24geworICAg ICAgICB4ZW5fbGl2ZXBhdGNoX25hbWVfdCBuYW1lOyAgICAgICAgICAgICAgLyogSU4sIG5hbWUg b2YgdGhlIHBhdGNoLiAqLworICAgICAgICB1aW50MzJfdCBjbWQ7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogSU46IExJVkVQQVRDSF9BQ1RJT05fKiAqLworICAgICAgICB1aW50MzJfdCB0 aW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSU46IElmIHplcm8gdGhlbiB1c2VzICov CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBoeXBl cnZpc29yIGRlZmF1bHQuICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBPciB1cHBlciBib3VuZCBvZiB0aW1lIChucykgKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvciBvcGVyYXRpb24gdG8g dGFrZS4gKi8KKyAgICB9OwogCi08L3ByZT4KIAotIyMgU3RhdGUgZGlhZ3JhbXMgb2YgTElWRVBB VENIX0FDVElPTiBjb21tYW5kcy4KKyMjIFN0YXRlIGRpYWdyYW1zIG9mIExJVkVQQVRDSFxfQUNU SU9OIGNvbW1hbmRzLgogCiBUaGVyZSBpcyBhIHN0cmljdCBvcmRlcmluZyBzdGF0ZSBvZiB3aGF0 IHRoZSBjb21tYW5kcyBjYW4gYmUuCi1UaGUgTElWRVBBVENIX0FDVElPTiBwcmVmaXggaGFzIGJl ZW4gZHJvcHBlZCB0byBlYXN5IHJlYWRpbmcgYW5kCi1kb2VzIG5vdCBpbmNsdWRlIHRoZSBMSVZF UEFUQ0hfU1RBVEVTOgorVGhlIExJVkVQQVRDSFxfQUNUSU9OIHByZWZpeCBoYXMgYmVlbiBkcm9w cGVkIHRvIGVhc3kgcmVhZGluZyBhbmQKK2RvZXMgbm90IGluY2x1ZGUgdGhlIExJVkVQQVRDSFxf U1RBVEVTOgogCi08cHJlPgotICAgICAgICAgICAgICAvLT5cICAKLSAgICAgICAgICAgICAgXCAg LyAgCi0gVU5MT0FEIDwtLS0gQ0hFQ0sgLS0tPiBSRVBMQUNFfEFQUExZIC0tPiBSRVZFUlQgLS1c ICAKLSAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IAotICAgICAgICAgICAgICAgICBcLS0tLS0tLS0tLS0tLS0tLS0tLTwtLS0tLS0tLS0tLS0tLyAg CisgICAgICAgICAgICAgICAgIC8tPlwKKyAgICAgICAgICAgICAgICAgXCAgLworICAgIFVOTE9B RCA8LS0tIENIRUNLIC0tLT4gUkVQTEFDRXxBUFBMWSAtLT4gUkVWRVJUIC0tXAorICAgICAgICAg ICAgICAgICAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAg ICAgICAgICAgICBcLS0tLS0tLS0tLS0tLS0tLS0tLTwtLS0tLS0tLS0tLS0tLwogCi08L3ByZT4K LSMjIFN0YXRlIHRyYW5zaXRpb24gdGFibGUgb2YgTElWRVBBVENIX0FDVElPTiBjb21tYW5kcyBh bmQgTElWRVBBVENIX1NUQVRVUy4KKyMjIFN0YXRlIHRyYW5zaXRpb24gdGFibGUgb2YgTElWRVBB VENIXF9BQ1RJT04gY29tbWFuZHMgYW5kIExJVkVQQVRDSFxfU1RBVFVTLgogCiBOb3RlIHRoYXQ6 CiAKLSAtIFRoZSBDSEVDS0VEIHN0YXRlIGlzIHRoZSBzdGFydGluZyBvbmUgYWNoaWV2ZWQgd2l0 aCAqWEVOX1NZU0NUTF9MSVZFUEFUQ0hfVVBMT0FEKiBoeXBlcmNhbGwuCisgLSBUaGUgQ0hFQ0tF RCBzdGF0ZSBpcyB0aGUgc3RhcnRpbmcgb25lIGFjaGlldmVkIHdpdGggKlhFTlxfU1lTQ1RMXF9M SVZFUEFUQ0hcX1VQTE9BRCogaHlwZXJjYWxsLgogIC0gVGhlIFJFVkVSVCBvcGVyYXRpb24gb24g c3VjY2VzcyB3aWxsIGF1dG9tYXRpY2FsbHkgbW92ZSB0byB0aGUgQ0hFQ0tFRCBzdGF0ZS4KICAt IFRoZXJlIGFyZSB0d28gU1RBVEVTOiBDSEVDS0VEIGFuZCBBUFBMSUVELgogIC0gVGhlcmUgYXJl IGZvdXIgYWN0aW9ucyAoYWthIGNvbW1hbmRzKTogQVBQTFksIFJFUExBQ0UsIFJFVkVSVCwgYW5k IFVOTE9BRC4KIAogVGhlIHN0YXRlIHRyYW5zaXRpb24gdGFibGUgb2YgdmFsaWQgc3RhdGVzIGFu ZCBhY3Rpb24gc3RhdGVzOgogCi08cHJlPgotCi0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKwotfCBBQ1RJT04gIHwg Q3VycmVudCB8IFJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICB8IE5leHQgU1RBVEU6ICAg IHwKLXwgQUNUSU9OICB8IFNUQVRFICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fENIRUNLRUR8QVBQTElFRCB8Ci0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKwotfCBVTkxPQUQgIHwgQ0hFQ0tFRCB8 IFVubG9hZCBwYXlsb2FkLiBBbHdheXMgd29ya3MuICB8ICAgICAgIHwgICAgICAgIHwKLXwgICAg ICAgICB8ICAgICAgICAgfCBObyBuZXh0IHN0YXRlcy4gICAgICAgICAgICAgICAgfCAgICAgICB8 ICAgICAgICB8Ci0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKwotfCBBUFBMWSAgIHwgQ0hFQ0tFRCB8IEFwcGx5IHBh eWxvYWQgKHN1Y2Nlc3MpLiAgICAgICB8ICAgICAgIHwgICB4ICAgIHwKLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0r Ci18IEFQUExZICAgfCBDSEVDS0VEIHwgQXBwbHkgcGF5bG9hZCAoZXJyb3J8dGltZW91dCkgIHwg ICB4ICAgfCAgICAgICAgfAotKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSsKLXwgUkVQTEFDRSB8IENIRUNLRUQgfCBS ZXZlcnQgcGF5bG9hZHMgYW5kIGFwcGx5IG5ldyAgfCAgICAgICB8ICAgeCAgICB8Ci18ICAgICAg ICAgfCAgICAgICAgIHwgcGF5bG9hZCB3aXRoIHN1Y2Nlc3MuICAgICAgICAgIHwgICAgICAgfCAg ICAgICAgfAotKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLSsKLXwgUkVQTEFDRSB8IENIRUNLRUQgfCBSZXZlcnQgcGF5 bG9hZHMgYW5kIGFwcGx5IG5ldyAgfCAgIHggICB8ICAgICAgICB8Ci18ICAgICAgICAgfCAgICAg ICAgIHwgcGF5bG9hZCB3aXRoIGVycm9yLiAgICAgICAgICAgIHwgICAgICAgfCAgICAgICAgfAot Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLSsKLXwgUkVWRVJUICB8IEFQUExJRUQgfCBSZXZlcnQgcGF5bG9hZCAoc3Vj Y2VzcykuICAgICAgfCAgIHggICB8ICAgICAgICB8Ci0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKwotfCBSRVZFUlQg IHwgQVBQTElFRCB8IFJldmVydCBwYXlsb2FkIChlcnJvcnx0aW1lb3V0KSB8ICAgICAgIHwgICB4 ICAgIHwKLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0rCi08L3ByZT4KKyAgICArLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKworICAgIHwg QUNUSU9OICB8IEN1cnJlbnQgfCBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIE5l eHQgU1RBVEU6ICB8CisgICAgfCBBQ1RJT04gIHwgU1RBVEUgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Q0hFQ0tFRHxBUFBMSUVEIHwKKyAgICArLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKworICAg IHwgVU5MT0FEICB8IENIRUNLRUQgfCBVbmxvYWQgcGF5bG9hZC4gQWx3YXlzIHdvcmtzLiAgfCAg ICAgICB8ICAgICAgICB8CisgICAgfCAgICAgICAgIHwgICAgICAgICB8IE5vIG5leHQgc3RhdGVz LiAgICAgICAgICAgICAgICB8ICAgICAgIHwgICAgICAgIHwKKyAgICArLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tKwor ICAgIHwgQVBQTFkgICB8IENIRUNLRUQgfCBBcHBseSBwYXlsb2FkIChzdWNjZXNzKS4gICAgICAg fCAgICAgICB8ICAgeCAgICB8CisgICAgKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSsKKyAgICB8IEFQUExZICAgfCBD SEVDS0VEIHwgQXBwbHkgcGF5bG9hZCAoZXJyb3J8dGltZW91dCkgIHwgICB4ICAgfCAgICAgICAg fAorICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0tLS0rCisgICAgfCBSRVBMQUNFIHwgQ0hFQ0tFRCB8IFJldmVydCBw YXlsb2FkcyBhbmQgYXBwbHkgbmV3ICB8ICAgICAgIHwgICB4ICAgIHwKKyAgICB8ICAgICAgICAg fCAgICAgICAgIHwgcGF5bG9hZCB3aXRoIHN1Y2Nlc3MuICAgICAgICAgIHwgICAgICAgfCAgICAg ICAgfAorICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0rCisgICAgfCBSRVBMQUNFIHwgQ0hFQ0tFRCB8IFJldmVy dCBwYXlsb2FkcyBhbmQgYXBwbHkgbmV3ICB8ICAgeCAgIHwgICAgICAgIHwKKyAgICB8ICAgICAg ICAgfCAgICAgICAgIHwgcGF5bG9hZCB3aXRoIGVycm9yLiAgICAgICAgICAgIHwgICAgICAgfCAg ICAgICAgfAorICAgICstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0rCisgICAgfCBSRVZFUlQgIHwgQVBQTElFRCB8IFJl dmVydCBwYXlsb2FkIChzdWNjZXNzKS4gICAgICB8ICAgeCAgIHwgICAgICAgIHwKKyAgICArLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tKworICAgIHwgUkVWRVJUICB8IEFQUExJRUQgfCBSZXZlcnQgcGF5bG9hZCAoZXJy b3J8dGltZW91dCkgfCAgICAgICB8ICAgeCAgICB8CisgICAgKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLSsKIAogQWxs IHRoZSBvdGhlciBzdGF0ZSB0cmFuc2l0aW9ucyBhcmUgaW52YWxpZC4KIApAQCAtNzcwLDEwICs3 MjEsMTAgQEAgQWxsIHRoZSBvdGhlciBzdGF0ZSB0cmFuc2l0aW9ucyBhcmUgaW52YWxpZC4KIAog VGhlIG5vcm1hbCBzZXF1ZW5jZSBvZiBldmVudHMgaXMgdG86CiAKLSAxLiAqWEVOX1NZU0NUTF9M SVZFUEFUQ0hfVVBMT0FEKiB0byB1cGxvYWQgdGhlIHBheWxvYWQuIElmIHRoZXJlIGFyZSBlcnJv cnMgKlNUT1AqIGhlcmUuCi0gMi4gKlhFTl9TWVNDVExfTElWRVBBVENIX0dFVCogdG8gY2hlY2sg dGhlIGAtPnJjYC4gSWYgKi1YRU5fRUFHQUlOKiBzcGluLiBJZiB6ZXJvIGdvIHRvIG5leHQgc3Rl cC4KLSAzLiAqWEVOX1NZU0NUTF9MSVZFUEFUQ0hfQUNUSU9OKiB3aXRoICpMSVZFUEFUQ0hfQUNU SU9OX0FQUExZKiB0byBhcHBseSB0aGUgcGF0Y2guCi0gNC4gKlhFTl9TWVNDVExfTElWRVBBVENI X0dFVCogdG8gY2hlY2sgdGhlIGAtPnJjYC4gSWYgaW4gKi1YRU5fRUFHQUlOKiBzcGluLiBJZiB6 ZXJvIGV4aXQgd2l0aCBzdWNjZXNzLgorIDEuICpYRU5cX1NZU0NUTFxfTElWRVBBVENIXF9VUExP QUQqIHRvIHVwbG9hZCB0aGUgcGF5bG9hZC4gSWYgdGhlcmUgYXJlIGVycm9ycyAqU1RPUCogaGVy ZS4KKyAyLiAqWEVOXF9TWVNDVExcX0xJVkVQQVRDSFxfR0VUKiB0byBjaGVjayB0aGUgYC0+cmNg LiBJZiAqLVhFTlxfRUFHQUlOKiBzcGluLiBJZiB6ZXJvIGdvIHRvIG5leHQgc3RlcC4KKyAzLiAq WEVOXF9TWVNDVExcX0xJVkVQQVRDSFxfQUNUSU9OKiB3aXRoICpMSVZFUEFUQ0hcX0FDVElPTlxf QVBQTFkqIHRvIGFwcGx5IHRoZSBwYXRjaC4KKyA0LiAqWEVOXF9TWVNDVExcX0xJVkVQQVRDSFxf R0VUKiB0byBjaGVjayB0aGUgYC0+cmNgLiBJZiBpbiAqLVhFTlxfRUFHQUlOKiBzcGluLiBJZiB6 ZXJvIGV4aXQgd2l0aCBzdWNjZXNzLgogCiAKICMjIEFkZGVuZHVtCkBAIC04MDcsMTggKzc1OCwx OCBAQCBtaW5pbWl6ZSB0aGUgY2hhbmNlIG9mIHRoZSBwYXRjaCBub3QgYmVpbmcgYXBwbGllZCBk dWUgdG8gc2FmZXR5CiBjaGVja3MgZmFpbGluZy4gU2FmZXR5IGNoZWNrcyBzdWNoIGFzIG5vdCBw YXRjaGluZyBjb2RlIHdoaWNoCiBpcyBvbiB0aGUgc3RhY2sgLSB3aGljaCBjYW4gbGVhZCB0byBj b3JydXB0aW9uLgogCi0jIyMjIFJlbmRlenZvdXMgY29kZSBpbnN0ZWFkIG9mIHN0b3BfbWFjaGlu ZSBmb3IgcGF0Y2hpbmcKKyMjIyMgUmVuZGV6dm91cyBjb2RlIGluc3RlYWQgb2Ygc3RvcFxfbWFj aGluZSBmb3IgcGF0Y2hpbmcKIAogVGhlIGh5cGVydmlzb3IncyB0aW1lIHJlbmRlenZvdXMgY29k ZSBydW5zIHN5bmNocm9ub3VzbHkgYWNyb3NzIGFsbCBDUFVzCi1ldmVyeSBzZWNvbmQuIFVzaW5n IHRoZSBzdG9wX21hY2hpbmUgdG8gcGF0Y2ggY2FuIHN0YWxsIHRoZSB0aW1lIHJlbmRlenZvdXMK K2V2ZXJ5IHNlY29uZC4gVXNpbmcgdGhlIGBzdG9wX21hY2hpbmVgIHRvIHBhdGNoIGNhbiBzdGFs bCB0aGUgdGltZSByZW5kZXp2b3VzCiBjb2RlIGFuZCByZXN1bHQgaW4gTk1JLiBBcyBzdWNoIGhh dmluZyB0aGUgcGF0Y2hpbmcgYmUgZG9uZSBhdCB0aGUgdGFpbAogb2YgcmVuZGV6dm91cyBjb2Rl IHNob3VsZCBhdm9pZCB0aGlzIHByb2JsZW0uCiAKLUhvd2V2ZXIgdGhlIGVudHJhbmNlIHBvaW50 IGZvciB0aGF0IGNvZGUgaXMKLWRvX3NvZnRpcnEtPnRpbWVyX3NvZnRpcnFfYWN0aW9uLT50aW1l X2NhbGlicmF0aW9uCi13aGljaCBlbmRzIHVwIGNhbGxpbmcgb25fc2VsZWN0ZWRfY3B1cyBvbiBy ZW1vdGUgQ1BVcy4KK0hvd2V2ZXIgdGhlIGVudHJhbmNlIHBvaW50IGZvciB0aGF0IGNvZGUgaXMg YGRvX3NvZnRpcnEgLT4KK3RpbWVyX3NvZnRpcnFfYWN0aW9uIC0+IHRpbWVfY2FsaWJyYXRpb25g IHdoaWNoIGVuZHMgdXAgY2FsbGluZworYG9uX3NlbGVjdGVkX2NwdXNgIG9uIHJlbW90ZSBDUFVz LgogCi1UaGUgcmVtb3RlIENQVXMgcmVjZWl2ZSBDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiBJUEkgYW5k IGV4ZWN1dGUgdGhlCitUaGUgcmVtb3RlIENQVXMgcmVjZWl2ZSBDQUxMXF9GVU5DVElPTlxfVkVD VE9SIElQSSBhbmQgZXhlY3V0ZSB0aGUKIGRlc2lyZWQgZnVuY3Rpb24uCiAKICMjIyMgQmVmb3Jl IGVudGVyaW5nIHRoZSBndWVzdCBjb2RlLgpAQCAtODMyLDE2ICs3ODMsMTYgQEAgY291bGQgYmUg YWRqdXN0ZWQpLCBjb21iaW5lZCB3aXRoIGZvcmNpbmcgYWxsIG90aGVyIENQVXMgdGhyb3VnaCB0 aGUKIGh5cGVydmlzb3Igd2l0aCBJUElzLCBjYW4gYmUgdXRpbGl6ZWQgdG8gZXhlY3V0ZSBsb2Nr c3RlcCBpbnN0cnVjdGlvbnMKIG9uIGFsbCBDUFVzLgogCi1UaGUgYXBwcm9hY2ggaXMgc2ltaWxh ciBpbiBjb25jZXB0IHRvIHN0b3BfbWFjaGluZSBhbmQgdGhlIHRpbWUgcmVuZGV6dm91cworVGhl IGFwcHJvYWNoIGlzIHNpbWlsYXIgaW4gY29uY2VwdCB0byBgc3RvcF9tYWNoaW5lYCBhbmQgdGhl IHRpbWUgcmVuZGV6dm91cwogYnV0IGlzIHRpbWUtYm91bmQuIEhvd2V2ZXIgdGhlIGxvY2FsIENQ VSBzdGFjayBpcyBtdWNoIHNob3J0ZXIgYW5kCiBhIGxvdCBtb3JlIGRldGVybWluaXN0aWMuCiAK LVRoaXMgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIFhlbiBQcm9qZWN0IGh5cGVydmlzb3IuCitUaGlz IGlzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gaHlwZXJ2aXNvci4KIAogIyMjIENvbXBpbGluZyB0 aGUgaHlwZXJ2aXNvciBjb2RlCiAKIEhvdHBhdGNoIGdlbmVyYXRpb24gb2Z0ZW4gcmVxdWlyZXMg c3VwcG9ydCBmb3IgY29tcGlsaW5nIHRoZSB0YXJnZXQKLXdpdGggLWZmdW5jdGlvbi1zZWN0aW9u cyAvIC1mZGF0YS1zZWN0aW9ucy4gIENoYW5nZXMgd291bGQgaGF2ZSB0bword2l0aCBgLWZmdW5j dGlvbi1zZWN0aW9uc2AgLyBgLWZkYXRhLXNlY3Rpb25zYC4gIENoYW5nZXMgd291bGQgaGF2ZSB0 bwogYmUgZG9uZSB0byB0aGUgbGlua2VyIHNjcmlwdHMgdG8gc3VwcG9ydCB0aGlzLgogCiAjIyMg R2VuZXJhdGlvbiBvZiBMaXZlIFBhdGNoIEVMRiBwYXlsb2FkcwpAQCAtODY2LDcgKzgxNyw3IEBA IGFuZCByZW9yZGVyIGl0IGFmdGVyd2FyZHMuCiBBcyBmb3VuZCBhbG1vc3QgZXZlcnkgcGF0Y2gg KFhTQSkgdG8gYSBub24tdHJpdmlhbCBmdW5jdGlvbiByZXF1aXJlcwogYWRkaXRpb25hbCBlbnRy aWVzIGluIHRoZSBleGNlcHRpb24gdGFibGUgYW5kL29yIHRoZSBidWcgZnJhbWVzLgogCi1UaGlz IGlzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gUHJvamVjdCBoeXBlcnZpc29yLgorVGhpcyBpcyBp bXBsZW1lbnRlZCBpbiB0aGUgWGVuIGh5cGVydmlzb3IuCiAKICMjIyAucm9kYXRhIHNlY3Rpb25z CiAKQEAgLTg4MiwxOCArODMzLDE4IEBAIFRvIGd1YXJkIGFnYWluc3QgdGhhdCB3ZSBtdXN0IGJl IHByZXBhcmVkIHRvIGRvIHBhdGNoaW5nIHNpbWlsYXIgdG8KIHRyYW1wb2xpbmUgcGF0Y2hpbmcg b3IgaW4tbGluZSBkZXBlbmRpbmcgb24gdGhlIGZsYXZvdXIuIElmIHdlIGNhbgogZG8gaW4tbGlu ZSBwYXRjaGluZyB3ZSB3b3VsZCBuZWVkIHRvOgogCi0gKiBhbHRlciBgLnJvZGF0YWAgdG8gYmUg d3JpdGVhYmxlLgotICogaW5saW5lIHBhdGNoLgotICogYWx0ZXIgYC5yb2RhdGFgIHRvIGJlIHJl YWQtb25seS4KKyAqIEFsdGVyIGAucm9kYXRhYCB0byBiZSB3cml0ZWFibGUuCisgKiBJbmxpbmUg cGF0Y2guCisgKiBBbHRlciBgLnJvZGF0YWAgdG8gYmUgcmVhZC1vbmx5LgogCiBJZiBhcmUgZG9p bmcgdHJhbXBvbGluZSBwYXRjaGluZyB3ZSB3b3VsZCBuZWVkIHRvOgogCi0gKiBhbGxvY2F0ZSBh IG5ldyBtZW1vcnkgbG9jYXRpb24gZm9yIHRoZSBzdHJpbmcuCi0gKiBhbGwgbG9jYXRpb25zIHdo aWNoIHVzZSB0aGlzIHN0cmluZyB3aWxsIGhhdmUgdG8gYmUgdXBkYXRlZCB0byB1c2UgdGhlCisg KiBBbGxvY2F0ZSBhIG5ldyBtZW1vcnkgbG9jYXRpb24gZm9yIHRoZSBzdHJpbmcuCisgKiBBbGwg bG9jYXRpb25zIHdoaWNoIHVzZSB0aGlzIHN0cmluZyB3aWxsIGhhdmUgdG8gYmUgdXBkYXRlZCB0 byB1c2UgdGhlCiAgICBvZmZzZXQgdG8gdGhlIHN0cmluZy4KLSAqIG1hcmsgdGhlIHJlZ2lvbiBS TyB3aGVuIHdlIGFyZSBkb25lLgorICogTWFyayB0aGUgcmVnaW9uIFJPIHdoZW4gd2UgYXJlIGRv bmUuCiAKLVRoZSB0cmFtcG9saW5lIHBhdGNoaW5nIGlzIGltcGxlbWVudGVkIGluIHRoZSBYZW4g UHJvamVjdCBoeXBlcnZpc29yLgorVGhlIHRyYW1wb2xpbmUgcGF0Y2hpbmcgaXMgaW1wbGVtZW50 ZWQgaW4gdGhlIFhlbiBoeXBlcnZpc29yLgogCiAjIyMgLmJzcyBhbmQgLmRhdGEgc2VjdGlvbnMu CiAKQEAgLTkwOCw3ICs4NTksNyBAQCBQYXRjaGluZyBpbiB0aGUgbmV3IGZ1bmN0aW9uIHdpbGwg ZW5kIHVwIGFsc28gcGF0Y2hpbmcgaW4gdGhlIG5ldyAucm9kYXRhCiBzZWN0aW9uIGFuZCB0aGUg bmV3IGZ1bmN0aW9uIHdpbGwgcmVmZXJlbmNlIHRoZSBuZXcgc3RyaW5nIGluIHRoZSBuZXcKIC5y b2RhdGEgc2VjdGlvbi4KIAotVGhpcyBpcyBpbXBsZW1lbnRlZCBpbiB0aGUgWGVuIFByb2plY3Qg aHlwZXJ2aXNvci4KK1RoaXMgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIFhlbiBoeXBlcnZpc29yLgog CiAjIyMgU2VjdXJpdHkKIApAQCAtOTQxLDcgKzg5Miw3IEBAIFRoZSBvbGQgY29kZSBhbGxvd3Mg bXVjaCBtb3JlIGZsZXhpYmlsaXR5IGFuZCBhbiBhZGRpdGlvbmFsIGd1YXJkLAogYnV0IGlzIG1v cmUgY29tcGxleCB0byBpbXBsZW1lbnQuCiAKIFRoZSBzZWNvbmQgb3B0aW9uIHdoaWNoIHJlcXVp cmVzIGFuIGJ1aWxkLWlkIG9mIHRoZSBoeXBlcnZpc29yCi1pcyBpbXBsZW1lbnRlZCBpbiB0aGUg WGVuIFByb2plY3QgaHlwZXJ2aXNvci4KK2lzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gaHlwZXJ2 aXNvci4KIAogU3BlY2lmaWNhbGx5IGVhY2ggcGF5bG9hZCBoYXMgdHdvIGJ1aWxkLWlkIEVMRiBu b3RlczoKICAqIFRoZSBidWlsZC1pZCBvZiB0aGUgcGF5bG9hZCBpdHNlbGYgKGdlbmVyYXRlZCB2 aWEgLS1idWlsZC1pZCkuCkBAIC05NjcsMTAgKzkxOCwxMCBAQCBUaGUgaW1wbGVtZW50YXRpb24g bXVzdCBhbHNvIGhhdmUgYSBtZWNoYW5pc20gZm9yIChpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKToK ICAgIHRoZSBzdGFjaywgbWFrZSBzdXJlIHRoZSBwYXlsb2FkIGlzIGJ1aWx0IHdpdGggc2FtZSBj b21waWxlciBhcyBoeXBlcnZpc29yKS4KICAgIFNwZWNpZmljYWxseSB3ZSB3YW50IHRvIG1ha2Ug c3VyZSB0aGF0IGxpdmUgcGF0Y2hpbmcgY29kZXBhdGhzIGNhbm5vdCBiZSBwYXRjaGVkLgogICog Tk9QIG91dCB0aGUgY29kZSBzZXF1ZW5jZSBpZiBgbmV3X3NpemVgIGlzIHplcm8uCi0gKiBEZWFs IHdpdGggb3RoZXIgcmVsb2NhdGlvbiB0eXBlczogIFJfWDg2XzY0X1s4LDE2LDMyLDMyU10sIFJf WDg2XzY0X1BDWzgsMTYsNjRdCisgKiBEZWFsIHdpdGggb3RoZXIgcmVsb2NhdGlvbiB0eXBlczog IFJcX1g4NlxfNjRcX1s4LDE2LDMyLDMyU10sIFJcX1g4NlxfNjRcX1BDWzgsMTYsNjRdCiAgICBp biBwYXlsb2FkIGZpbGUuCiAKLSMjIyBIYW5kbGUgaW5saW5lZCBfX0xJTkVfXworIyMjIEhhbmRs ZSBpbmxpbmVkIFxfXF9MSU5FXF9cXwogCiBUaGlzIHByb2JsZW0gaXMgcmVsYXRlZCB0byBob3Rw YXRjaCBjb25zdHJ1Y3Rpb24KIGFuZCBwb3RlbnRpYWxseSBoYXMgaW5mbHVlbmNlIG9uIHRoZSBk ZXNpZ24gb2YgdGhlIGhvdHBhdGNoaW5nCkBAIC0xMDMwLDcgKzk4MSw3IEBAIE9wdGlvbnM6CiBG b3IgQlVHKCksIFdBUk4oKSwgZXRjLiwgdGhlIGxpbmUgbnVtYmVyIGlzIGVtYmVkZGVkIGludG8g dGhlIGJ1ZyBmcmFtZSwgbm90CiB0aGUgZnVuY3Rpb24gaXRzZWxmLgogCi1TaW1pbGFyIGNvbnNp ZGVyYXRpb25zIGFyZSB0cnVlIHRvIGEgbGVzc2VyIGV4dGVudCBmb3IgX19GSUxFX18sIGJ1dCBp dAorU2ltaWxhciBjb25zaWRlcmF0aW9ucyBhcmUgdHJ1ZSB0byBhIGxlc3NlciBleHRlbnQgZm9y IFxfXF9GSUxFXF9cXywgYnV0IGl0CiBjb3VsZCBiZSBhcmd1ZWQgdGhhdCBmaWxlIHJlbmFtaW5n IHNob3VsZCBiZSBkb25lIG91dHNpZGUgb2YgaG90cGF0Y2hlcy4KIAogIyMgU2lnbmF0dXJlIGNo ZWNraW5nIHJlcXVpcmVtZW50cy4KQEAgLTEwNDIsNDkgKzk5Myw0NiBAQCBleHBlY3Rpbmcgc3Vj aCB0aGF0IGl0IGNhbiBwcm9wZXJseSBkbyBzaWduYXR1cmUgdmVyaWZpY2F0aW9uLgogCiBUaGUg c2lnbmF0dXJlIGlzIGJhc2VkIG9uIHRoZSBhbGwgb2YgdGhlIHBheWxvYWRzIGNvbnRpbnVvdXNs eSBsYWlkIG91dAogaW4gbWVtb3J5LiBUaGUgc2lnbmF0dXJlIGlzIHRvIGJlIGFwcGVuZGVkIGF0 IHRoZSBlbmQgb2YgdGhlIEVMRiBwYXlsb2FkCi1wcmVmaXhlZCB3aXRoIHRoZSBzdHJpbmcgYCd+ TW9kdWxlIHNpZ25hdHVyZSBhcHBlbmRlZH5cbidgLCBmb2xsb3dlZCBieQorcHJlZml4ZWQgd2l0 aCB0aGUgc3RyaW5nICdgfk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+XG5gJywgZm9sbG93ZWQg YnkKIGFuIHNpZ25hdHVyZSBoZWFkZXIgdGhlbiBmb2xsb3dlZCBieSB0aGUgc2lnbmF0dXJlLCBr ZXkgaWRlbnRpZmllciwgYW5kIHNpZ25lcnMKIG5hbWUuCiAKIFNwZWNpZmljYWxseSB0aGUgc2ln bmF0dXJlIGhlYWRlciB3b3VsZCBiZToKIAotPHByZT4KLSNkZWZpbmUgUEtFWV9BTEdPX0RTQSAg ICAgICAwICAKLSNkZWZpbmUgUEtFWV9BTEdPX1JTQSAgICAgICAxICAKLQotI2RlZmluZSBQS0VZ X0lEX1BHUCAgICAgICAgIDAgLyogT3BlblBHUCBnZW5lcmF0ZWQga2V5IElEICovICAKLSNkZWZp bmUgUEtFWV9JRF9YNTA5ICAgICAgICAxIC8qIFguNTA5IGFyYml0cmFyeSBzdWJqZWN0S2V5SWRl bnRpZmllciAqLyAgCi0KLSNkZWZpbmUgSEFTSF9BTEdPX01ENCAgICAgICAgICAwICAKLSNkZWZp bmUgSEFTSF9BTEdPX01ENSAgICAgICAgICAxICAKLSNkZWZpbmUgSEFTSF9BTEdPX1NIQTEgICAg ICAgICAyICAKLSNkZWZpbmUgSEFTSF9BTEdPX1JJUEVfTURfMTYwICAzICAKLSNkZWZpbmUgSEFT SF9BTEdPX1NIQTI1NiAgICAgICA0ICAKLSNkZWZpbmUgSEFTSF9BTEdPX1NIQTM4NCAgICAgICA1 ICAKLSNkZWZpbmUgSEFTSF9BTEdPX1NIQTUxMiAgICAgICA2ICAKLSNkZWZpbmUgSEFTSF9BTEdP X1NIQTIyNCAgICAgICA3ICAKLSNkZWZpbmUgSEFTSF9BTEdPX1JJUEVfTURfMTI4ICA4ICAKLSNk ZWZpbmUgSEFTSF9BTEdPX1JJUEVfTURfMjU2ICA5ICAKLSNkZWZpbmUgSEFTSF9BTEdPX1JJUEVf TURfMzIwIDEwICAKLSNkZWZpbmUgSEFTSF9BTEdPX1dQXzI1NiAgICAgIDExICAKLSNkZWZpbmUg SEFTSF9BTEdPX1dQXzM4NCAgICAgIDEyICAKLSNkZWZpbmUgSEFTSF9BTEdPX1dQXzUxMiAgICAg IDEzICAKLSNkZWZpbmUgSEFTSF9BTEdPX1RHUl8xMjggICAgIDE0ICAKLSNkZWZpbmUgSEFTSF9B TEdPX1RHUl8xNjAgICAgIDE1ICAKLSNkZWZpbmUgSEFTSF9BTEdPX1RHUl8xOTIgICAgIDE2ICAK LQotCi1zdHJ1Y3QgZWxmX3BheWxvYWRfc2lnbmF0dXJlIHsgIAotCXU4CWFsZ287CQkvKiBQdWJs aWMta2V5IGNyeXB0byBhbGdvcml0aG0gUEtFWV9BTEdPXyouICovICAKLQl1OAloYXNoOwkJLyog RGlnZXN0IGFsZ29yaXRobTogSEFTSF9BTEdPXyouICovICAKLQl1OAlpZF90eXBlOwkvKiBLZXkg aWRlbnRpZmllciB0eXBlIFBLRVlfSUQqLiAqLyAgCi0JdTgJc2lnbmVyX2xlbjsJLyogTGVuZ3Ro IG9mIHNpZ25lcidzIG5hbWUgKi8gIAotCXU4CWtleV9pZF9sZW47CS8qIExlbmd0aCBvZiBrZXkg aWRlbnRpZmllciAqLyAgCi0JdTgJX19wYWRbM107ICAKLQlfX2JlMzIJc2lnX2xlbjsJLyogTGVu Z3RoIG9mIHNpZ25hdHVyZSBkYXRhICovICAKLX07Ci0KLTwvcHJlPgorICAgICNkZWZpbmUgUEtF WV9BTEdPX0RTQSAgICAgICAwCisgICAgI2RlZmluZSBQS0VZX0FMR09fUlNBICAgICAgIDEKKwor ICAgICNkZWZpbmUgUEtFWV9JRF9QR1AgICAgICAgICAwIC8qIE9wZW5QR1AgZ2VuZXJhdGVkIGtl eSBJRCAqLworICAgICNkZWZpbmUgUEtFWV9JRF9YNTA5ICAgICAgICAxIC8qIFguNTA5IGFyYml0 cmFyeSBzdWJqZWN0S2V5SWRlbnRpZmllciAqLworCisgICAgI2RlZmluZSBIQVNIX0FMR09fTUQ0 ICAgICAgICAgIDAKKyAgICAjZGVmaW5lIEhBU0hfQUxHT19NRDUgICAgICAgICAgMQorICAgICNk ZWZpbmUgSEFTSF9BTEdPX1NIQTEgICAgICAgICAyCisgICAgI2RlZmluZSBIQVNIX0FMR09fUklQ RV9NRF8xNjAgIDMKKyAgICAjZGVmaW5lIEhBU0hfQUxHT19TSEEyNTYgICAgICAgNAorICAgICNk ZWZpbmUgSEFTSF9BTEdPX1NIQTM4NCAgICAgICA1CisgICAgI2RlZmluZSBIQVNIX0FMR09fU0hB NTEyICAgICAgIDYKKyAgICAjZGVmaW5lIEhBU0hfQUxHT19TSEEyMjQgICAgICAgNworICAgICNk ZWZpbmUgSEFTSF9BTEdPX1JJUEVfTURfMTI4ICA4CisgICAgI2RlZmluZSBIQVNIX0FMR09fUklQ RV9NRF8yNTYgIDkKKyAgICAjZGVmaW5lIEhBU0hfQUxHT19SSVBFX01EXzMyMCAxMAorICAgICNk ZWZpbmUgSEFTSF9BTEdPX1dQXzI1NiAgICAgIDExCisgICAgI2RlZmluZSBIQVNIX0FMR09fV1Bf Mzg0ICAgICAgMTIKKyAgICAjZGVmaW5lIEhBU0hfQUxHT19XUF81MTIgICAgICAxMworICAgICNk ZWZpbmUgSEFTSF9BTEdPX1RHUl8xMjggICAgIDE0CisgICAgI2RlZmluZSBIQVNIX0FMR09fVEdS XzE2MCAgICAgMTUKKyAgICAjZGVmaW5lIEhBU0hfQUxHT19UR1JfMTkyICAgICAxNgorCisgICAg c3RydWN0IGVsZl9wYXlsb2FkX3NpZ25hdHVyZSB7CisJICAgIHU4CWFsZ287CQkvKiBQdWJsaWMt a2V5IGNyeXB0byBhbGdvcml0aG0gUEtFWV9BTEdPXyouICovCisJICAgIHU4CWhhc2g7CQkvKiBE aWdlc3QgYWxnb3JpdGhtOiBIQVNIX0FMR09fKi4gKi8KKwkgICAgdTgJaWRfdHlwZTsJLyogS2V5 IGlkZW50aWZpZXIgdHlwZSBQS0VZX0lEKi4gKi8KKwkgICAgdTgJc2lnbmVyX2xlbjsJLyogTGVu Z3RoIG9mIHNpZ25lcidzIG5hbWUgKi8KKwkgICAgdTgJa2V5X2lkX2xlbjsJLyogTGVuZ3RoIG9m IGtleSBpZGVudGlmaWVyICovCisJICAgIHU4CV9fcGFkWzNdOworCSAgICBfX2JlMzIJc2lnX2xl bjsJLyogTGVuZ3RoIG9mIHNpZ25hdHVyZSBkYXRhICovCisgICAgfTsKKwogKE5vdGUgdGhhdCB0 aGlzIGhhcyBiZWVuIGJvcnJvd2VkIGZyb20gTGludXggbW9kdWxlIHNpZ25hdHVyZSBjb2RlLiku CiAKIApAQCAtMTEyOCwxNSArMTA3NiwxNCBAQCBhdCBsZWFzdCBmaXZlIGJ5dGVzIGlmIHBhdGNo aW5nIGluIHRyYW1wb2xpbmUuCiBEZXBlbmRpbmcgb24gY29tcGlsZXIgc2V0dGluZ3MsIHRoZXJl IGFyZSBzZXZlcmFsIGZ1bmN0aW9ucyBpbiBYZW4gdGhhdAogYXJlIHNtYWxsZXIgKHdpdGhvdXQg aW50ZXItZnVuY3Rpb24gcGFkZGluZykuCiAKLTxwcmU+IAotcmVhZGVsZiAtc1cgeGVuLXN5bXMg fCBncmVwICIgRlVOQyAiIHwgXAotICAgIGF3ayAneyBpZiAoJDMgPCA1KSBwcmludCAkMywgJDQs ICQ1LCAkOCB9JworICAgIHJlYWRlbGYgLXNXIHhlbi1zeW1zIHwgZ3JlcCAiIEZVTkMgIiB8IFwK KyAgICAgICAgYXdrICd7IGlmICgkMyA8IDUpIHByaW50ICQzLCAkNCwgJDUsICQ4IH0nCisKKyAg ICAuLi4KKyAgICAzIEZVTkMgTE9DQUwgd2JpbnZkX2lwaQorICAgIDMgRlVOQyBMT0NBTCBzaGFk b3dfbDFfaW5kZXgKKyAgICAuLi4KIAotLi4uCi0zIEZVTkMgTE9DQUwgd2JpbnZkX2lwaQotMyBG VU5DIExPQ0FMIHNoYWRvd19sMV9pbmRleAotLi4uCi08L3ByZT4KIEEgY29tcGlsZS10aW1lIGNo ZWNrIGZvciwgZS5nLiwgYSBtaW5pbXVtIGFsaWdubWVudCBvZiBmdW5jdGlvbnMgb3IgYQogcnVu dGltZSBjaGVjayB0aGF0IHZlcmlmaWVzIHN5bWJvbCBzaXplICgrIHBhZGRpbmcgdG8gbmV4dCBz eW1ib2xzKSBmb3IKIHRoYXQgaW4gdGhlIGh5cGVydmlzb3IgaXMgYWR2aXNlZC4KLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==