From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 25402 invoked from network); 17 Jan 2022 11:23:15 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Jan 2022 11:23:15 -0000 Content-Type: multipart/mixed; boundary="===============1977345356802261895==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_New_package=3A_openjdk17-17=2E0=2E1+12?= To: ml@inbox.vuxu.org From: classabbyamp Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 17 Jan 2022 12:23:15 +0100 List-Id: Message-ID: <20220117112315.rVuUoYEEWObF7wQUHrYKrt24XU8xGMCICq1EqoEBfgw@z> GitHub notification mails are now in MIME to allow UTF8. --===============1977345356802261895== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2xhc3NhYmJ5YW1wIGFnYWluc3Qg bWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNv bS9jbGFzc2FiYnlhbXAvdm9pZC1wYWNrYWdlcyBvcGVuamRrMTcKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0OTg5CgpbV0lQXSBOZXcgcGFja2FnZTog b3BlbmpkazE3LTE3LjAuMSsxMgo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQg ZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQpCdWlsdCB1cG9u IHRoZSB3b3JrIG9mIEBzZ24gYW5kIEByYWVkd3VsZi4NCg0KQ2xvc2VzICMzMjk0Mg0KU3VwZXJj ZWRlcyAjMzQzOTAsICMzNTA3OA0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0 ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKg0KDQojIyMjIE5ldyBwYWNrYWdlDQot IFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtxdWFsaXR5IHJlcXVpcmVtZW50c10o aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9N YW51YWwubWQjcXVhbGl0eS1yZXF1aXJlbWVudHMpOiAqKllFUyoqDQoNCjwhLS0gTm90ZTogSWYg dGhlIGJ1aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgW3Nr aXAgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9t YXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pDQphbmQgdGVzdCBh dCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUg Y3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBw aW5nIENJLg0KLS0+DQoNCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMg UFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlczoNCg0KfCBhcmNoIHwgY3Jvc3MgfCBi dWlsdCB8IGBjaGVja2AgcGFzc2VzIHwNCnw6LS0tLS06fDotLS0tLTp8Oi0tLS0tOnw6LS0tLS06 fA0KfCB4ODZfNjQgfHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyU IDxicj4gMTYg4pyUIDxicj4gMTcg4pyUIHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyU IDxicj4gMTUg4pyUIDxicj4gMTYg4pyUIDxicj4gMTcg4pyUIHwNCnwgeDg2XzY0LW11c2wgfHwg MTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4gMTYg4pyUIDxi cj4gMTcg4pyUIHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxi cj4gMTYg4pyUIDxicj4gMTcg4pyUIHwNCnwgaTY4NiB8fCAxMiDinJQgPGJyPiAxMyDinJQgPGJy PiAxNCDinJQgPGJyPiAxNSDinJQgPGJyPiAxNiDinJQgPGJyPiAxNyDinJQgfCAxMiDinJQgPGJy PiAxMyDinJQgPGJyPiAxNCDinJQgPGJyPiAxNSDinJQgPGJyPiAxNiDinJQgPGJyPiAxNyDinJQg fA0KfCBhYXJjaDY0IHwg4pyUIHwgMTcg4pyUIHx8DQp8IGFhcmNoNjQtbXVzbCB8IOKclCB8IDE3 IOKclCB8fA0KfCBhcm12N2wgfCDinJQgfCAxNyDinJQgfHwNCnwgYXJtdjZsLW11c2wgfCDinJQg fCAxNyDinJQgfHwNCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzQ5ODkucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============1977345356802261895== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk17-34989.patch" RnJvbSBjZWQzYTc5ZjY3NmUwOWEzZjIyOThlYjQ1ZWJjMWU0MTdjOTdlMGQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwg MTEgSmFuIDIwMjIgMDI6NTY6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvN10gc2h1dGlsczog aW50cm9kdWNlIFhCUFNfT1JJR19NQUtFSk9CUyB2YXJpYWJsZQpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKU29tZSBwYWNrYWdlcyBjb3VsZG4ndCB3b3JrIHdlbGwgd2l0aCBYQlBT X01BS0VKT0JTLAp0aHVzIHdlIGRpc2FibGUgcGFyYWxsZWwgYnVpbGQgZm9yIHRob3NlIHBhY2th Z2VzLgoKT24gdGhlIG90aGVyIGhhbmQsIHNvbWUgcGFja2FnZXMgaW5jbHVkaW5nIGJ1dCBub3Qg bGltaXRlZCB0byBvcGVuamRrCnVzZSBhbiBpbnRlcm5hbCBtZWNoYW5pc20gdG8gYnVpbGQgdGhl bXNlbHZlcyBpbiBwYXJhbGxlbC4KCkxldCdzIGludmVudCBhbm90aGVyIHZhcmlhYmxlIGZvciB0 aG9zZSBwYWNrYWdlcy4KCihtZXNzYWdlIGJ5IHNnbikKCkNvLWF1dGhvcmVkLWJ5OiDEkG/DoG4g VHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0KIGNvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2NvbW1vbi5zaCB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0 aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAppbmRleCAx NzM5MTI0MDUwZjcuLjQ3ZmYzNjVlOWZmMiAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaApA QCAtNDY1LDcgKzQ2NSw5IEBAIHNldHVwX3BrZygpIHsKICAgICBERVNURElSPSRYQlBTX0RFU1RE SVIvJFhCUFNfQ1JPU1NfVFJJUExFVC8ke3NvdXJjZXBrZ30tJHt2ZXJzaW9ufQogICAgIFBLR0RF U1RESVI9JFhCUFNfREVTVERJUi8kWEJQU19DUk9TU19UUklQTEVULyR7cGtnfS0ke3ZlcnNpb259 CiAKLSAgICBpZiBbIC1uICIkZGlzYWJsZV9wYXJhbGxlbF9idWlsZCIgLW8gLXogIiRYQlBTX01B S0VKT0JTIiBdOyB0aGVuCisgICAgOiAke1hCUFNfTUFLRUpPQlM6PTF9CisgICAgZXhwb3J0IFhC UFNfT1JJR19NQUtFSk9CUz0ke1hCUFNfT1JJR19NQUtFSk9CUzo9JFhCUFNfTUFLRUpPQlN9Cisg ICAgaWYgWyAtbiAiJGRpc2FibGVfcGFyYWxsZWxfYnVpbGQiIF07IHRoZW4KICAgICAgICAgWEJQ U19NQUtFSk9CUz0xCiAgICAgZmkKICAgICBtYWtlam9icz0iLWokWEJQU19NQUtFSk9CUyIKCkZy b20gYzY2MzcxNjlhOTlmMTY0MWM0ZDQ3MzM1ZDdiNDM0ZTQzYWZiMjQzYyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBNb24sIDE3 IEphbiAyMDIyIDA2OjE4OjM3IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAyLzddIE5ldyBwYWNrYWdl OiBvcGVuamRrMTItYm9vdHN0cmFwLTEyLjAuMisxMAoKLS0tCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDI0ICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoICAgICAgICAgICAgfCAzODcgKysrKysrKysrKysrKysrKysrCiAuLi4vZmls ZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysKIC4uLi9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAgICAgICAgICB8IDEzMCArKysrKysKIHNyY3Br Z3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDExNyArKysrKysKIDYg ZmlsZXMgY2hhbmdlZCwgNzEzIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEy LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTItYm9vdHN0cmFwL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTIt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVu amRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWE2YzVkNGQyYmUyCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9h YXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYgQEAK KyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNv bnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisgCisgI2RlZmluZSBSRUdfRlAg MjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTItYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkYzQ1MjY2MGRmNQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBA IC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGlu dXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9h cm0uY3BwCitAQCAtNzEsOSArNzEsMjAgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVk ZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250 cm9sLmg+CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sgYXMg dGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLwor Ky8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRv ciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+ CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3JjZSBp dCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2VuZGlm CisrI2RlZmluZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisgCisg Ly8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMgbm90 IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhl MjM5YmZlNzg2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwzODcgQEAKK2RpZmYg LS1naXQgYS9tYWtlL1JlbGVhc2VGaWxlLmdtayBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCistLS0g YS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01 Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxl LWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxs IGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisg ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FS Q0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYK KyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKK2Rp ZmYgLS1naXQgYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rIGIvbWFrZS9ob3RzcG90 L2xpYi9Db21waWxlSnZtLmdtaworLS0tIGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdt aworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworQEAgLTcxLDYgKzcxLDcg QEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQo VVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJ U1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTiki JyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworZGlmZiAtLWdpdCBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rIGIvbWFrZS9s aWIvQ29yZUxpYnJhcmllcy5nbWsKKy0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisr KysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5NCw2ICsxOTQsNyBAQCBpZmVx ICgkKE9QRU5KREtfVEFSR0VUX09TKSwgd2luZG93cykKKyBlbmRpZgorIAorIExJQkpMSV9DRkxB R1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgor IAorIGlmbmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9G SUxFUyArPSBcCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3Bw IGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCistLS0gYS9zcmMvaG90c3BvdC9v cy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4 LmNwcAorQEAgLTk5LDcgKzk5LDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVk ZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01MTksNiArNTE4LDExIEBAIHZvaWQg b3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3Rp bmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgp IHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAg Ly8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRp bmdzCisrICBvczo6TGludXg6OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9z OjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBT YXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NT X0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFE X1ZFUlNJT04pCitAQCAtNTM2LDYgKzU0MCw3IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFk X2luaXQoKSB7CisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNv bmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6 OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisgCisgLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8KK0BAIC0yODU1LDIwICsyODYwLDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hl ZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2Fybihp bnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2 b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1f aWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciog dmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lkKiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhh bmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbik7CisrICBzdGF0aWMg ZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVuYzsKKysgIHN0YXRpYyBib29sIGluaXRpYWxpemVk ID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRpYWxpemVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0g KGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRMRF9ORVhULCAiZGx2c3ltIik7CisrICAgIGluaXRp YWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysgIGlmIChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7Cisr ICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyhoYW5kbGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBp ZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0dXJuIGY7CisrICAgIH0KKysgIH0KKysKKysgIHJl dHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOworK30KKysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBs b2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4xIChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8v IGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJzaW9uIGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4 OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9p ZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0g TlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBm OworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjEiKTsKKyB9CisgCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2 ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5LgorIC8vIFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wg aXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0aWN1bGFyIHZlcnNpb24uCisgdm9pZCogb3M6Okxp bnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSkgewor LSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJu IGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKyB9Cisg CisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsKK2RpZmYgLS1naXQgYS9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAgYi9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtNzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdk Lmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5k ZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVm IEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAorZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90 L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcCBiL3NyYy9ob3RzcG90L3NoYXJl L2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUv Z2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9n Yy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKK0BAIC0xMTQ4LDcgKzExNDgsNyBAQCBIZWFw V29yZCogR2VuQ29sbGVjdGVkSGVhcDo6YWxsb2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXpl LAorIHN0YXRpYyBTY3JhdGNoQmxvY2sgKnJlbW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxv Y2sgKipwcmV2X3B0cikgeworICAgYm9vbCBmaXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3Np emUgPSAwOyAgIC8vICJmaXJzdCIgbWFrZXMgdGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCist ICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9j ayAqKnNtYWxsZXN0X3B0ciA9IE5VTEwsICpzbWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1 ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxlIChjdXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9 PSBjdXIsICJqdXN0IGNoZWNraW5nIik7CitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUv cnVudGltZS92bV92ZXJzaW9uLmNwcCBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVy c2lvbi5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAK KysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzAs NyArMjcwLDcgQEAgY29uc3QgY2hhciogQWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1f aW5mb19zdHJpbmcoKSB7CisgICAjZW5kaWYKKyAKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lP Tl9TVUZGSVggVk1fUkVMRUFTRSAiKSIgXAorLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBG TE9BVF9BUkNIX1NUUiBcCisrICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hf U1RSIExJQkMgXAorICAgICAgICAgICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBv biAiIF9fREFURV9fICIgIiBfX1RJTUVfXyBcCisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BP VF9CVUlMRF9VU0VSKSAiIHdpdGggIiBIT1RTUE9UX0JVSUxEX0NPTVBJTEVSCisgCitkaWZmIC0t Z2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5o cHAgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhw cAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2dj Yy5ocHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9u c19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUg ZikgeyByZXR1cm4gaXNuYW5kKGYpOyB9CisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5s aW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRl ZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lz bmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4o ZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJs ZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRm b3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVyZSIKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNl L2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYyBiL3NyYy9qYXZhLmJhc2UvbGludXgv bmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25h dGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRp dmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0 IHsKKyAvKgorICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQg c2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAK KyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVw IHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0 ZSgoY29uc3RydWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2ln bmFsIGhhbmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAg ICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOwor ICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jIGIvc3JjL2phdmEuYmFzZS91bml4L25h dGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9jaGlsZHByb2MuYworQEAgLTIzNCw3ICsyMzQsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1v ZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFy ICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikg YXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0 aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAg ICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3No IGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUg YmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBl eGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVD KSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlm ICgqZmlsZSA9PSAnXDAnKSB7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJqYXZhL2pka191dGlsX21kLmggYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmph dmEvamRrX3V0aWxfbWQuaAorLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZh L2pka191dGlsX21kLmgKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9q ZGtfdXRpbF9tZC5oCitAQCAtMzcsNyArMzcsNyBAQAorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFu KGQpCisgI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0Up CisgI2luY2x1ZGUgPG1hdGguaD4KKy0jZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikKKysjZGVm aW5lIElTTkFORihmKSBpc25hbihmKQorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2Vs aWYgZGVmaW5lZChfQUlYKQorICNpbmNsdWRlIDxtYXRoLmg+CitkaWZmIC0tZ2l0IGEvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMgYi9zcmMvamF2YS5i YXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworLS0tIGEvc3JjL2phdmEu YmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysrKyBiL3NyYy9qYXZh LmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCitAQCAtMjM1LDYgKzIz NSwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIg KmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAK KysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0Igor KyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAg IC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFS WV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZl IHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgor KyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5z ZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2Fk ZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciBy ZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAq IG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVp bmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRl ZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4s IG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysg ICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dl dmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBs aWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2Vz cyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNv KSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVw ZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisr ICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2gg dGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgs IHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQg YSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sg Zm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElC UkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbwor KyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAg ICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAg IC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBk b2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworZGlmZiAt LWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5j IGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKy0t LSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisr KysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYwor QEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVh ZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVm aW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJV UFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1 ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8K K2RpZmYgLS1naXQgYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hh d3QvWFRvb2xraXQuYyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3Qv eGF3dC9YVG9vbGtpdC5jCistLS0gYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3 dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIGIvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2 ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKK0BAIC0yNyw5ICsyNyw2IEBACisgI2luY2x1 ZGUgPFgxMS9YdXRpbC5oPgorICNpbmNsdWRlIDxYMTEvWG9zLmg+CisgI2luY2x1ZGUgPFgxMS9Y YXRvbS5oPgorLSNpZmRlZiBfX2xpbnV4X18KKy0jaW5jbHVkZSA8ZXhlY2luZm8uaD4KKy0jZW5k aWYKKyAKKyAjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGpuaS5oPgorQEAgLTc5MSwyNiAr Nzg4LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcgSk5JQ0FMTCBKYXZhX3N1bl9hd3RfWDExX1hUb29s a2l0X2dldEVudgorICAgICByZXR1cm4gcmV0OworIH0KKyAKKy0jaWZkZWYgX19saW51eF9fCist dm9pZCBwcmludF9zdGFjayh2b2lkKQorLXsKKy0gIHZvaWQgKmFycmF5WzEwXTsKKy0gIHNpemVf dCBzaXplOworLSAgY2hhciAqKnN0cmluZ3M7CistICBzaXplX3QgaTsKKy0KKy0gIHNpemUgPSBi YWNrdHJhY2UgKGFycmF5LCAxMCk7CistICBzdHJpbmdzID0gYmFja3RyYWNlX3N5bWJvbHMgKGFy cmF5LCBzaXplKTsKKy0KKy0gIGZwcmludGYgKHN0ZGVyciwgIk9idGFpbmVkICV6ZCBzdGFjayBm cmFtZXMuXG4iLCBzaXplKTsKKy0KKy0gIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCistICAg ICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3RyaW5nc1tpXSk7CistCistICBmcmVlIChzdHJp bmdzKTsKKy19CistI2VuZGlmCistCisgV2luZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52 ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7CisgICBz dGF0aWMgam1ldGhvZElEIG1ldGhvZEdldFhSb290V2luZG93ID0gTlVMTDsKK2RpZmYgLS1naXQg YS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oIGIvc3JjL2pk ay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorLS0tIGEvc3JjL2pkay5q ZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdw LmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAor ICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2Vz IGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZy ZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25v dF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZp bmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFs bG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MK Ky0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAg I2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3Vu ZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRl cmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3Jl YWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3Qg dXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNf aW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIK K2RpZmYgLS1naXQgYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMv ZXhlaW52b2tlLmMgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMv ZXhlaW52b2tlLmMKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQ YWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tH dWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxh c3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRl IDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgor QEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgeworICAgfQorIH0K KyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7Cisr ICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisr ICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRK YXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUg PD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZh bGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsK KysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpy dW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3Mg Y2xhc3NfaWQ7CitAQCAtMjU0LDEzICsyNjksMTkgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25z dCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50IHN0YWNrX3Np emUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFk X2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0 cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6 ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3Zl cmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIp OworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9y IG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5f amF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhy ZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0 aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzMsNyArMjk0LDcgQEAgaW50IG1h aW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmludGYoIlxuVGVzdGlu ZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3Vh cmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3Jl YXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVh ZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7 CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5n IHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3Bw Yy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv cHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1 MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3Ig bXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3Jn L2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYy ODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3 LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYK KyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmlu ZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9w cGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lv bjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4 dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykg eworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2 ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5 IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8g VE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhl IEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0 aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUg PHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0K KysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNr X3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisg ICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVj b21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5j bHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTIt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsx Mi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNo CkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxp bnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUx N2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2Rl ZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2 L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRk O2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRz LiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVf Q09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9u bHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8K KysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0 aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAg ICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAor KyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00g fCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICog RE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzawor KyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFBy ZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVh bnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEg LSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBw cmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJD OiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEg LSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVw ICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoK KysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3 IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2Ug dXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2Yg aW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBV X01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQ VV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9G UFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBf RlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNp c2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJ TkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNf TkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAg ICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JD X1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNl cnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0 cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJy dXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmlu ZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8K KysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJv bCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmli dXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5n IHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFy b3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNl ZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdp c3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhl IG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGls ZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3Jv cyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9y IG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVj dXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9s IGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5l IF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIg KComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8K KytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVf Y29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFS Q19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVu amRrMTItYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODEzYTY3YWM1 MGEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL3RlbXBs YXRlCkBAIC0wLDAgKzEsMTE3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTItYm9v dHN0cmFwJworX2phdmFfdmVyPTEyCitfamF2YV9taW5fdmVyPTAKK19qYXZhX3NlY192ZXI9Mgor X2pka191cGRhdGU9MTAKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVy fSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFf c2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazEyLWJvb3RzdHJhcAordmVyc2lvbj0iJHtfYmFz ZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2 YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZp Z3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBT X0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFibGUtdW5saW1p dGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVnPXN5c3RlbQor IC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNt cz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0ke19qYXZh X3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVuZG9y LW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAt LXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vz ci9saWIvanZtL29wZW5qZGsxMSIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9jaGVj a190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisg bGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIG9wZW5qZGsxMSIKK21ha2VkZXBlbmRz PSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRl dmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlw ZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21z Mi1kZXZlbCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1 bnRpbWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50 IEtpdCAoYm9vdHN0cmFwIHZlcnNpb24gMTIpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxk ZXZAa2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRp b24tMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vb3Blbmpkay5qYXZhLm5ldCIKK2Rpc3RmaWxlcz0i aHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUv YXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1iMmJjYWQzNTY1NmIwMDky ODY4MzQxNmYzNDgwYWQwMDM2M2IwMDk5M2ViNzExYzNlMTg4NmU0ZmU3N2VlZmViCitsaWIzMmRp c2FibGVkPXllcworbm9jcm9zcz15ZXMKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0 IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNw b3QgSklUIGZvciBwcGMzMgorY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQq KSA7OworCXBwYyopIF91c2VfemVybz15ZXMgOzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVy byIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJn cys9IiAtLXdpdGgtanZtLXZhcmlhbnRzPXplcm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJ TkUiIGluCisJCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdz PS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgp IHsKKwljaG1vZCAreCBjb25maWd1cmUKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJt dXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bv c3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4K KwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1z Z19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0Y2ggLWxOcDEgLWkg IiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFH Uy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllf U09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFC SV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwkj IGNvbXBhdGliaWxpdHkgd2l0aCBHQ0MgMTAueAorCUNGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxp ZmV0aW1lLWRzZSIKKwlDWFhGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIKKwor CWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1c L3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdOyB0 aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwlmaQorCUNDPSIvdXNy L2Jpbi9jYyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2NvbmZpZ3VyZSAke2NvbmZpZ3VyZV9h cmdzfSBcCisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJh LWN4eGZsYWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRMREZMQUdT IiBcCisJCVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQPSRTVFJJUCBOTT0kTk0gXAorCQlP QkpEVU1QPSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30KKworcG9zdF9pbnN0YWxsKCkgewor CW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259LWludGVy bmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmlu CisJcm0gLWYgJERFU1RESVIvJF9qZGtfaG9tZS9saWIvc3JjLnppcAorCXZsaWNlbnNlIEFTU0VN QkxZX0VYQ0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KCkZyb20gYTVhODZjNTM1ZTQ2Yjll NWNkNTA0Y2I1Y2IxNjllOTlmM2I2ZDE3OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog Y2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBNb24sIDE3IEphbiAyMDIyIDA2OjE4OjUz IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAzLzddIE5ldyBwYWNrYWdlOiBvcGVuamRrMTMtYm9vdHN0 cmFwLTEzLjAuMis4CgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAg ICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAg ICAgICAgfCAgMjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAg ICAgICB8IDM4NyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBj LnBhdGNoICAgICAgICAgICAgICB8ICA0NSArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0 cmFwL3RlbXBsYXRlICAgICAgICAgIHwgMTE2ICsrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA3MTIg aW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211 c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVt cGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAs MCArMSwxMCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGlu dXhfYWFyY2g2NC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29z X2xpbnV4X2FhcmNoNjQuY3BwCitAQCAtNzQsNyArNzQsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+ CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVk ZSA8ZnB1X2NvbnRyb2wuaD4KKyAKKyAjZGVmaW5lIFJFR19GUCAyOQorICNkZWZpbmUgUkVHX0xS IDMwCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uYWRjNDUyNjYwZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0t IGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCisrKysgYi9z cmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03MSw5ICs3 MSwyMCBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNs dWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGluY2x1ZGUg PGFzbS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93 IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNw cDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIK KysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JF RyBpcyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisr I2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4 CisrCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBEb24ndCAjZGVmaW5lIFNQ RUxMX1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2FmZSB0byB1c2UsIHNvIHRo aXMgbWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGUyMzliZmU3ODYzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDM4NyBAQAorZGlmZiAtLWdpdCBhL21ha2UvUmVsZWFz ZUZpbGUuZ21rIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKy0tLSBhL21ha2UvUmVsZWFzZUZpbGUu Z21rCisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5l IGNyZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lP Tl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJP U19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUt aXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGlu Zm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0gMSAtIFRo ZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorZGlmZiAtLWdpdCBhL21ha2UvaG90 c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21r CistLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNw b3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzEsNiArNzEsNyBAQCBDRkxBR1NfVk1fVkVSU0lP TiA6PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAg IC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURD UFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPSci bXVzbCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0 IGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdt aworLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVM aWJyYXJpZXMuZ21rCitAQCAtMTk0LDYgKzE5NCw3IEBAIGlmZXEgKCQoT1BFTkpES19UQVJHRVRf T1MpLCB3aW5kb3dzKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdT KQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VY VEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKK2RpZmYgLS1n aXQgYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAgYi9zcmMvaG90c3BvdC9vcy9s aW51eC9vc19saW51eC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNw cAorKysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtOTksNyArOTks NiBAQAorICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBp bmNsdWRlIDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgor ICMgaW5jbHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVk ZSA8bGluay5oPgorQEAgLTUxOSw2ICs1MTgsMTEgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rf c2lnbWFzayhUaHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkK KyAKKyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChf X0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5l IExpbnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIG9zOjpMaW51eDo6 c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRo cmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJl YWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikg fHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTikKK0BAIC01MzYs NiArNTQwLDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKyAgIHN0ciA9 IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29uZnN0cihfQ1NfR05VX0xJQlBU SFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVy c2lvbihzdHIpOworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTI4 NTUsMjAgKzI4NjAsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgewor IGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndo ZXJlLCAuLi4pIHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFy ICp3aGVyZSkgeyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCog aGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBl ZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBu YW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRs dnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlm ICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlk bHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAg fQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5 bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysg ICAgICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwg bmFtZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wg dmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBi YXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9p ZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBk bHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3lt X2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBI YW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIp IG9ubHkuCisgLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0 aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxz eW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhh bmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJs ZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6 bGlibnVtYV9pbml0KCkgeworZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94 ODYvb3NfbGludXhfeDg2LmNwcCBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGlu dXhfeDg2LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94 ODYuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKK0BAIC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBv bGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVk ZSA8ZnB1X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJF R19TUCBSRUdfUlNQCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dl bkNvbGxlY3RlZEhlYXAuY3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxl Y3RlZEhlYXAuY3BwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVj dGVkSGVhcC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0 ZWRIZWFwLmNwcAorQEAgLTExNDgsNyArMTE0OCw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRI ZWFwOjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hC bG9jayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7Cisg ICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0 IiBtYWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNt YWxsZXN0X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0g TlVMTCwgKnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAg d2hpbGUgKGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tp bmciKTsKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24u Y3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorLS0tIGEvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qv c2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorQEAgLTI3MCw3ICsyNzAsNyBAQCBjb25zdCBj aGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAg ICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNF ICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysg ICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAg ICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9f VElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0 aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9z aGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcCBiL3NyYy9ob3RzcG90L3No YXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCistLS0gYS9zcmMvaG90c3Bv dC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3JjL2hv dHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQs NyArMjA0LDcgQEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQo Zik7IH0KKyAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91 YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVm aW5lZChfQUxMQlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0 dXJuIGlzbmFuZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4g aXNuYW4oZik7IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFu KGYpOyB9CisgI2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5p dGlvbiBoZXJlIgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5l dC9saW51eF9jbG9zZS5jIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4 X2Nsb3NlLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xv c2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFs IHRvIHVuYmxvY2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdS VE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBo b2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAt MTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGlu aXQoKSB7CisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAg Ki8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0g c2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZz YS5zYV9tYXNrKTsKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmph dmEvY2hpbGRwcm9jLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRw cm9jLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2Mu YworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitA QCAtMjM0LDcgKzIzNCwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmls ZSwKKyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJv bikgeworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJl dHVybjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVy IHdhcyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2Vz IG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28g ZmFsbAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1l bnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2Zh bGxiYWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICBy ZXR1cm47CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsK K2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxf bWQuaCBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCist LS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysr IGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0z Nyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVk KF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5o PgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFu KGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisg I2luY2x1ZGUgPG1hdGguaD4KK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmpsaS9qYXZhX21kX3NvbGludXguYyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amxpL2phdmFfbWRfc29saW51eC5jCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmpsaS9qYXZhX21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9s aWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUsNiArMjM1LDM5IEBAIFJlcXVpcmVzU2V0 ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAg ICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4Cisr I2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlm IChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUg bXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGlu CisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGli amF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNh bGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAg ICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBj b25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5k ZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9h ZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAg ICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1 c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2Vu YW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGlu ZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAg ICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0 IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9u cyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3 aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0 cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAi bGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAg ICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVk CisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRo ZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3 aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVu ZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVy ZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsK KysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUg dG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJ R0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMgYi9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworLS0tIGEvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAor ICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRl ZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05B TCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFY IC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAg LyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworZGlmZiAtLWdpdCBhL3NyYy9q YXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jIGIvc3Jj L2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKy0t LSBhL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtp dC5jCisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3Qv WFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+Cisg I2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9f bGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxq dm0uaD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzkxLDI2ICs3ODgsNiBAQCBKTklFWFBPUlQg anN0cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJl dHVybiByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZv aWQpCisteworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoq c3RyaW5nczsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEw KTsKKy0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAg ZnByaW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOwor LQorLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwg IiVzXG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYK Ky0KKyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGlj IGpjbGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0 aG9kR2V0WFJvb3RXaW5kb3cgPSBOVUxMOworZGlmZiAtLWdpdCBhL3NyYy9qZGsuamR3cC5hZ2Vu dC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmggYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUv bmF0aXZlL2xpYmpkd3AvdXRpbC5oCistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0 aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZl L2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAg IC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUu ICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRo aXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFj ZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90 IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlz X2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxv YyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAj ZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYg c3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Uu CisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisg I2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorZGlmZiAtLWdpdCBhL3Rlc3Qv aG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYyBiL3Rlc3Qv aG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworLS0tIGEv dGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisr KysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tl LmMKK0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRl IDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNs dWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAg dm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2YV9z dGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90IGF0 dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNpb24g PSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZqZGtf YXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZwcmlu dGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBk ZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJuIGpk a19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93ICh2 b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0yNTQs MTMgKzI2OSwxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7Cisg ICAgIGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0YWNr c2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9hdHRy OworKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0 cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChhcmdj ID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAg ICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50Zigi VGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsK Ky0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxM KTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2phdmFf b3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAg IHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0 aHJlYWRcbiIpOworQEAgLTI3Myw3ICsyOTQsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0 IGNoYXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xu Iik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBm b3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1 bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRo cmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2lu ICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBi ZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9v cGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3Bw Yy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxw aW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9 OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90 c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qv Y3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNs dWRlICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3Ry KSAvLyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJz aW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5j cHAKK0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVy ZXMoKSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAK KyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYg UFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRN KSB7CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZN KSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEg TlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAg IC8vIFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBv ZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4 X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9w cGMuY3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRl IDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0 cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGlu dHB0cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFk X2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJl YWRfbGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNs dWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5j bHVkZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVh ZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uOWM2NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAK K1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFs cGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2 ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3Nf bGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xp bnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAi ZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8g VGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3Jn L2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRj Yjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1 MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNp Zm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysg ICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmli dXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisr ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysK KysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr I2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8q IE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQg ZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhl IGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysg KiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAg ICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElD IHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAq CisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9w ZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1h c2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJl c3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisr ICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVk IHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0g cm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wK KysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRv d2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5 KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBj b250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRo ZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2lu Y2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2Rl ZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNk ZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysj ZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisr CisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJ LyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5l IF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyog cm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBS RUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBf RlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKwor KyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8K KysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHBy ZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25z LCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgw MzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVF ICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVk ZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChf X0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRy b2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVy IHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBj b21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisr ICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1 c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisr CisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50 IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBm bG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NF MiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJl Z2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9f ICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19h c21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVm YXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJv bF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysj ZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpj dXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3Rl ciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVt cGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMWM1YzQ1ODgzZTgKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMTYg QEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMy1ib290c3RyYXAnCitfamF2YV92ZXI9 MTMKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitfamRrX3VwZGF0ZT04CitfamRr X2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIk e19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1l PW9wZW5qZGsxMy1ib290c3RyYXAKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3Vw ZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7dmVyc2lv bn0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iLS1kaXNhYmxl LXdhcm5pbmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQU19ERVNURElSfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0vdXNyL2xpYgorIC0tZW5hYmxlLXVubGltaXRlZC1jcnlwdG8KKyAtLXdpdGgt emxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3Rl bQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVtCisgLS13aXRoLWp0 cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9CisgLS13aXRoLWpvYnM9 JHtYQlBTX09SSUdfTUFLRUpPQlN9CisgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKKyAtLXdpdGgt dmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRoLXZlbmRvci1idWctdXJs PWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13 aXRoLXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvaXNzdWVzCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTIi CittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNw b3QtZ3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYg Y3BpbyB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwg d2hpY2ggbWFrZS1jYSBvcGVuamRrMTItYm9vdHN0cmFwIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5k ZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZs aWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFs c2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIgor cHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3Zl cnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290 c3RyYXAgdmVyc2lvbiAxMykiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+ IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCito b21lcGFnZT0iaHR0cHM6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9o Zy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9q ZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1kMzhmYjE3Nzk1NzgyZGZmZTg0ZTk4ZjIx ZjFkNjI5M2IwYTQ1ZWE4ZjFlOWM4MWU5OWNkNzFhY2FjMDNhNGUwCitsaWIzMmRpc2FibGVkPXll cworbm9jcm9zcz15ZXMKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVz ZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNwb3QgSklUIGZv ciBwcGMzMgorY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBw YyopIF91c2VfemVybz15ZXMgOzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhl bgorCW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJncys9IiAtLXdp dGgtanZtLXZhcmlhbnRzPXplcm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJ CXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJl YWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1v ZCAreCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhl bgorCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkg eworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGlu ICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJB cHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1sTnAxIC1pICIkZiIKKwkJZG9u ZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElG WV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30K KworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RB UkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJ CQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJIyBjb21wYXRpYmls aXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2Ui CisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2UiCisKKwljb25maWd1cmVf YXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXow LTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25m aWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJ Q1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQkt LXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0i JENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFE RUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JK RFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RE SVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RE SVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJtIC1mICRE RVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJ T04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIGYyNTY0ZTIwZjMzNzc0OWQzNzAxZTc0NmQ3 ZWQ5NzVlZWYxYzVkZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFt cCA8ZGV2QGtiNi5lZT4KRGF0ZTogTW9uLCAxNyBKYW4gMjAyMiAwNjoxOToxNyAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggNC83XSBOZXcgcGFja2FnZTogb3BlbmpkazE0LWJvb3RzdHJhcC0xNC4wLjIr MTIKCi0tLQogLi4uL2ZpbGVzL2k2ODZfcGF0Y2hlcy9KREstODIzODkwOS5wYXRjaCAgICAgIHwg IDMwICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAg MTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDIx ICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM3MiAr KysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgICAg ICAgICAgICB8ICA0NSArKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAg ICAgICAgICB8IDEzMCArKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0 ZSAgICAgICAgICB8IDEyNCArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNzMyIGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMv aTY4Nl9wYXRjaGVzL0pESy04MjM4OTA5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWJv b3RzdHJhcC9maWxlcy9pNjg2X3BhdGNoZXMvSkRLLTgyMzg5MDkucGF0Y2ggYi9zcmNwa2dzL29w ZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvaTY4Nl9wYXRjaGVzL0pESy04MjM4OTA5LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjE5YjA5MTFjZmFiCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL2k2ODZfcGF0 Y2hlcy9KREstODIzODkwOS5wYXRjaApAQCAtMCwwICsxLDMwIEBACisjIGZyb20gaHR0cHM6Ly9i dWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MjM4OTA5CisKKy0tLSBhL3NyYy9ob3Rz cG90L3NoYXJlL3V0aWxpdGllcy9wb3dlck9mVHdvLmhwcAlUaHUgRmViIDEzIDE1OjQzOjU5IDIw MjAgKzAwMDAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9wb3dlck9mVHdvLmhw cAlUaHUgRmViIDEzIDE3OjA1OjMwIDIwMjAgKzAxMDAKK0BAIC0yOCw2ICsyOCw3IEBACisgI2lu Y2x1ZGUgIm1ldGFwcm9ncmFtbWluZy9lbmFibGVJZi5ocHAiCisgI2luY2x1ZGUgIm1ldGFwcm9n cmFtbWluZy9pc0ludGVncmFsLmhwcCIKKyAjaW5jbHVkZSAibWV0YXByb2dyYW1taW5nL2lzU2ln bmVkLmhwcCIKKysjaW5jbHVkZSAidXRpbGl0aWVzL2FsaWduLmhwcCIKKyAjaW5jbHVkZSAidXRp bGl0aWVzL2NvdW50X2xlYWRpbmdfemVyb3MuaHBwIgorICNpbmNsdWRlICJ1dGlsaXRpZXMvZGVi dWcuaHBwIgorICNpbmNsdWRlICJ1dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnMuaHBwIgorQEAg LTY4LDcgKzY5LDcgQEAKKyAgIFNUQVRJQ19BU1NFUlQoSXNJbnRlZ3JhbDxUPjo6dmFsdWUpOwor ICAgU1RBVElDX0FTU0VSVChJc1NpZ25lZDxUPjo6dmFsdWUpOworICAgYXNzZXJ0KHZhbHVlID4g MCwgIkludmFsaWQgdmFsdWUiKTsKKy0gIGlmIChpc19wb3dlcl9vZl8yKHZhbHVlKSkgeworKyAg aWYgKGlzX3Bvd2VyX29mXzJfdCh2YWx1ZSkpIHsKKyAgICAgcmV0dXJuIHZhbHVlOworICAgfQor ICAgdWludDMyX3QgbHogPSBjb3VudF9sZWFkaW5nX3plcm9zKHZhbHVlKTsKK0BAIC04NCw3ICs4 NSw3IEBACisgICBTVEFUSUNfQVNTRVJUKElzSW50ZWdyYWw8VD46OnZhbHVlKTsKKyAgIFNUQVRJ Q19BU1NFUlQoIUlzU2lnbmVkPFQ+Ojp2YWx1ZSk7CisgICBhc3NlcnQodmFsdWUgIT0gMCwgIklu dmFsaWQgdmFsdWUiKTsKKy0gIGlmIChpc19wb3dlcl9vZl8yKHZhbHVlKSkgeworKyAgaWYgKGlz X3Bvd2VyX29mXzJfdCh2YWx1ZSkpIHsKKyAgICAgcmV0dXJuIHZhbHVlOworICAgfQorICAgdWlu dDMyX3QgbHogPSBjb3VudF9sZWFkaW5nX3plcm9zKHZhbHVlKTsKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBi L3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJl MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3Jj L2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03 NCw3ICs3NCw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAj IGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNk ZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv b3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9h cm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29u dGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFz IHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8K KysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0 b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+ fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2Ug aXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRp ZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAor IC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5v dCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9i dWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42 MGRmZGVjMzBhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0g YS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01 Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxl LWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxs IGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisg ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FS Q0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYK KyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0t LSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9s aWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9 IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURI T1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0n IiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNs IicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGli L0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAg LTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUp CisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NG TEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiks IHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3Mv bGludXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5j cHAKK0BAIC0xMDIsNyArMTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVk ZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQg b3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3Rp bmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgp IHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAg Ly8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRp bmdzCisrICAvLyBzZ246IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAy LjksIGFscGluZSdzIHRoaW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xp YmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsK KysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisg I2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9D U19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpM aW51eDo6bGlicHRocmVhZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJ bnRlcm5hbCk7CisgICBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4p OworICAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisg fQorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lk IG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJu ICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0 aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5h bWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVu Y190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNp b24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMg Ym9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAg ICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5 bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1 bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2 ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9 CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFu ZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4g SWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgor IHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIg Km5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEi KTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7Cist ICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwg bmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQg bGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVM TCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9u LgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0 IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0g YS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1 LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVk ZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5o PgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0t LSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysr IGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAt MTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25l d190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFs bGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0 cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29u Y2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21h bGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7 CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7Cisg ICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3 ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9p bmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9O X1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZM T0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9T VFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9u ICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9U X0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3Ny Yy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysg Yi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAor QEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJu IGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19p c25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVY KSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAg ZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7 IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1 cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZp YyBkZWZpbml0aW9uIGhlcmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJu ZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0 L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgor ICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVw ID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAq IGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2Vy dGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3Ry dWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRs ZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2Ff aGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdl bXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2 YS9jaGlsZHByb2MuYworQEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUs IGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoq KSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJn dik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0 IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAg IC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZv ciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVs b3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVj dmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7 CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgq ZmlsZSA9PSAnXDAnKSB7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv amRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pk a191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4o ZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkK KyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZp bmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxp ZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkg QEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxs cCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lm ZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5k aWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgor KyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFU SCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUg ZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAg ICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhh dCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0 IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2 aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0 aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxv YWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkg dGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3Qg anVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAg ICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwg aWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2 YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8g YSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhl IG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVu dCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAg ICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBs b25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUg YWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2Fu ZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBs aWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllf UEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAg ICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0 dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBX ZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24n dCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMv amF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcg KzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAg LyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVS UlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFM IChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJl YWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3Ny Yy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisr KysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xr aXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1 ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhf XworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4K KyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmlu ZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiBy ZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCist eworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5n czsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0g IHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50 ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAg Zm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4i LCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBX aW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFz cyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0 WFJvb3RXaW5kb3cgPSBOVUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2 ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9s aWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAv KiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAq LworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlz IGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vf ZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2Mo cCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90 X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2Rl ZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUg cmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0 cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgor KyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNl bmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9q dHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3Rz cG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiAr MzMsNyBAQAorIAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2lu Y2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+ CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25h bF9oYW5kbGVyKCkgeworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsK KysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8x SW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05f MV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYg KGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRl c3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3Np emUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3Rh Y2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAg Sk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAg aW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOwor ICAgfQorIAorKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0 aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJl YWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXpl KCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21w KGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5U ZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sg Z3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRf Y3JlYXRlICgmdGhyLCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxM KTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rp bmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BA IC0yNzcsNyArMjk4LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikg eworICAgICBwcmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBw cmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVh ZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJm bG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVu X25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsK KyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBp bml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAs MCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0 cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1 NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9t YWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9B c3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRy aW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKwor ICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZwor ICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcg Kzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5z aWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAm IFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I QVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8v IFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVk IGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwp IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQy LjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0t LSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysg bmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1 LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMg aW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBh ZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOwor LS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3Bw CisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5j cHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUv ZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4 Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5 MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBt dXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcv YXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4 MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAK KysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitA QCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYg Ly8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xp YmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMu Z2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdm ZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5 MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0Cisr LyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChD KSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBG bGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4x IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor KyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysg ICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9D T05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhp cyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAg dG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBT ZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rl ci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAg IDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwg cmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZh bGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysg KiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVu ZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysg KgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFBy ZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysg KiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmds ZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3Vu ZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0 eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJv dW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRo YXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVm YXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJl cy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNL X0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFT S19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01B U0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lv biBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWly ZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAg IDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRy b2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8K KysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAg IDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVf UkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhl IGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGht ZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8g bmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElF RUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisr CisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGlu dCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKwor Ky8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYi IGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBH Q0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Yg d3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBX aXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGlu ZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhh dCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgK KysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQg b3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGlj aCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisr I2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIg OiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGls ZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3 b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250 cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0 CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisr Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19w b2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uNGY5M2NjZTRmYTIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9v cGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTI0IEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICdvcGVuamRrMTQtYm9vdHN0cmFwJworX2phdmFfdmVyPTE0CitfamF2YV9taW5f dmVyPTAKK19qYXZhX3NlY192ZXI9MgorX2pka191cGRhdGU9MTIKK19qZGtfaG9tZT0idXNyL2xp Yi9qdm0vb3BlbmpkayR7X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4k e19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE0LWJv b3RzdHJhcAordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3Jldmlz aW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0 eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMt ZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91 c3IvbGliCisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQor IC0td2l0aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxp YnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdp dGgtdmVyc2lvbi1idWlsZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19N QUtFSk9CU30KKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0 dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZt LWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1 ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxMyIKK21ha2VfYnVpbGRf YXJncz0iaW1hZ2VzIgorbWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnpp cCB6aXAgY2EtY2VydGlmaWNhdGVzCisgbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNh IG9wZW5qZGsxMy1ib290c3RyYXAiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJY dHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJq cGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwK KyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwgb3BlbmpkazEzLWJvb3Rz dHJhcCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRp bWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtp dCAoYm9vdHN0cmFwIHZlcnNpb24gMTQpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZA a2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24t Mi4wIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0 cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJj aGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1kZmIzNjA3ZjFiNjc1NDU4ZjI5 YTE4NWE0MGYxZGJiZjg5NjQzOWNmMzNiM2FhMGYzZDg5ZGYyOTdlNjA0OTM1Citub2Nyb3NzPXll cworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2Fi bGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJv PXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVu ZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFu dHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmln dXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0y NTYwIjs7CisJZXNhYworZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3Vy ZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNy Yy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKSAKKwkJCWZvciBmIGluICIke0ZJTEVTRElS fSIvaTY4Nl9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtm IyRGSUxFU0RJUi99XG4iCisJCQkJcGF0Y2ggLWxOcDEgLWkgIiRmIgorCQkJZG9uZQorCQkJOzsK Kwllc2FjCisKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlm b3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJbXNnX25v cm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtbE5wMSAtaSAiJGYi CisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUoKSB7CisJQ0ZMQUdTPSR7Q0ZMQUdTLy1E X0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvLURfRk9SVElGWV9TT1VS Q0U9Mi99CisKKwkjIGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGluIGNhc2UKKwljYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQqKQorCQkJQ0ZMQUdTKz0iIC1EQUJJX0VM RnYyIgorCQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQk7OworCWVzYWMKKworCSMgY29t cGF0aWJpbGl0eSB3aXRoIEdDQyAxMC54CisJQ0ZMQUdTKz0iIC1mY29tbW9uIC1mbm8tbGlmZXRp bWUtZHNlIgorCUNYWEZMQUdTKz0iIC1mY29tbW9uIC1mbm8tbGlmZXRpbWUtZHNlIgorCisJY29u ZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNy XC9bYS16MC05XSotbGludXgtW2Etel0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF07IHRoZW4K KwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCWZpCisJQ0M9Ii91c3IvYmlu L2NjIgorCUNYWD0iL3Vzci9iaW4vYysrIgorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9 IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtY3h4 ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwK KwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBcCisJCU9CSkRV TVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbXYg JHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0taW50ZXJuYWwg JHtERVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwly bSAtZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2UgQVNTRU1CTFlf RVhDRVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQoKRnJvbSA2ZjIwNGVlY2RmY2Q0OTJlZTNj N2RlMzQwNzZjOWU0NjAzNTI0MGJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFz c2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IE1vbiwgMTcgSmFuIDIwMjIgMDY6MTk6MzIgLTA1 MDAKU3ViamVjdDogW1BBVENIIDUvN10gTmV3IHBhY2thZ2U6IG9wZW5qZGsxNS1ib290c3RyYXAt MTUuMC4zKzMKCi0tLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoICAgICAg ICAgIHwgIDEwICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoICAgICAgICAgICAg ICB8ICAyMSArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAg IHwgMzMzICsrKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9jaGVjay5w YXRjaCAgICAgICAgICAgIHwgIDI0ICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRj aCAgICAgICAgICAgICAgfCAgNDUgKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRj aCAgICAgICAgICAgICAgfCAxMzAgKysrKysrKwogc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFw L3RlbXBsYXRlICAgICAgICAgIHwgMTE5ICsrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNjgyIGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsx NS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2NoZWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Bl bmpkazE1LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1 LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv YWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBA CisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVj b250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQ IDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTUt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApA QCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xp bnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhf YXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMg aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4g aWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51 eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRv a2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8g VGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2 YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUg TkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNk ZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVz ZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCBi L3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41MDNkZjQ2OWI1ODQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzMzIEBACistLS0gYS9tYWtlL1JlbGVh c2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBA IGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZB X1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1p dGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5m by1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQo Y2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFt IDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0tLSBhL21ha2UvaG90 c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2 bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURI T1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJ U1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0nIiQoT1BFTkpES19U QVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNsIicgXAorICAgICAj CisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbW9kdWxlcy9qYXZhLmJh c2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL21vZHVsZXMvamF2YS5iYXNlL2xp Yi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNU YXJnZXRPcywgd2luZG93cyksIHRydWUpCisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQo TElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5l cSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0g XAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90 c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC0xMDIsNyArMTAyLDYgQEAKKyAjIGluY2x1 ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5 c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5 cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BA IC01OTcsNiArNTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFk KiB0aHJlYWQpIHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6 TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAh ZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0 ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICAvLyBzZ246IE5QVEwgaXMgY29ycmVjdCwg ZG9uJ3Qga25vdyBhYm91dCBnbGliYyAyLjksIGFscGluZSdzIHRoaW5nPworKyAgb3M6OkxpbnV4 OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJw dGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRo cmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9O KSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTYx NCw2ICs2MTksNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworICAgc3Ry ID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBjb25mc3RyKF9DU19HTlVfTElC UFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92 ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitAQCAt MzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7 CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAq d2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNo YXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lk KiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5 cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIq IG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUg ZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAg aWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBl KWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7Cisr ICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2 c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgewor KyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxl LCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJv bCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9t IGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2 b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFu ZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9 IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZz eW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8v IEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2 Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGlu IHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9k bHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0o aGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxh YmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4 OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29z X2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGlu dXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5j bHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0Cist IyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNk ZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9n ZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dl bkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNv bGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMg U2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9w dHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAv LyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJs b2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVz dF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9w dHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVz dCBjaGVja2luZyIpOworLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92 bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92 bV92ZXJzaW9uLmNwcAorQEAgLTI2Miw3ICsyNjIsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9W TV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAg I2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAg ICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAi IE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVS U0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgSE9UU1BPVF9CVUlMRF9USU1FIFwKKyAgICAgICAg ICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERf Q09NUElMRVIKKyAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZp bml0aW9uc19nY2MuaHBwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFs RGVmaW5pdGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNu YW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBM RV9fKQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0K KyAjZWxpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGlu ZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGlu dCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19p c25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlz c2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9uIGhlcmUiCistLS0gYS9zcmMvamF2YS5i YXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFz ZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5 cGVkZWYgc3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLwor LXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNp Z1dha2V1cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRl c2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9p ZCBfX2F0dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBT ZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JU TUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2Zs YWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gYS9zcmMvamF2 YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJh c2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworQEAgLTIzNSw3ICsyMzUsMTMgQEAg SkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52 cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2 cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBF Tk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQu IFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBm YWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRo cm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVz aW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlm IChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQor ICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7CistLS0gYS9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2Rl ZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVm aW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5G KGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05B TkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4K Ky0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWQuYworKysrIGIv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCitAQCAtMjMwLDYgKzIz MCwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIg KmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAK KysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0Igor KyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAg IC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFS WV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZl IHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgor KyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5z ZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2Fk ZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciBy ZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAq IG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVp bmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRl ZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4s IG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysg ICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dl dmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBs aWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2Vz cyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNv KSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVw ZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisr ICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2gg dGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgs IHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQg YSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sg Zm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElC UkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbwor KyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAg ICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAg IC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBk b2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworLS0tIGEv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBi L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAt MzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+ CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUg SU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9T SUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8 cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworLS0t IGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIv c3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1 ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVz ZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAg ICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9j CistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAg ICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1 bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVy ZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxs b2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNf aW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1 cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2df bWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQ YWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tH dWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxh c3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRl IDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgor QEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgeworICAgfQorIH0K KyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7Cisr ICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisr ICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRK YXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUg PD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZh bGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsK KysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpy dW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3Mg Y2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25z dCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50IHN0YWNrX3Np emUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFk X2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0 cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6 ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3Zl cmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIp OworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9y IG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5f amF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhy ZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0 aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzcsNyArMjk4LDcgQEAgaW50IG1h aW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmludGYoIlxuVGVzdGlu ZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3Vh cmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3Jl YXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVh ZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7 CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5n IHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2No ZWNrLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9jaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI1 MGM3ZWVkZTIwOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvY2hlY2sucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0tIGEv dGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvVExTL2V4ZXN0YWNrLXRscy5jCisrKysgYi90ZXN0 L2hvdHNwb3QvanRyZWcvcnVudGltZS9UTFMvZXhlc3RhY2stdGxzLmMKK0BAIC0yNiw3ICsyNiw2 IEBACisgI2luY2x1ZGUgPHN0ZGlvLmg+CisgI2luY2x1ZGUgPHN0ZGxpYi5oPgorICNpbmNsdWRl IDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorIAorIC8vIERlY2xh cmUgdGhlIHRocmVhZCBsb2NhbCB2YXJpYWJsZShzKSBpbiB0aGUgbWFpbiBleGVjdXRhYmxlLiBU aGlzIGNhbiBiZQorIC8vIHVzZWQgdG8gZGVtb25zdHJhdGUgdGhlIGlzc3VlcyBhc3NvY2lhdGVk IHdpdGggdGhlIG9uLXN0YWNrIHN0YXRpYyBUTFMgYmxvY2tzCitAQCAtNTYsMTMgKzU1LDYgQEAK KyAKKyAvLyBnbGliYyAyLjE1IGludHJvZHVjZWQgX19wdGhyZWFkX2dldF9taW5zdGFjaworIGlu dCBnbGliY19oYXNfcHRocmVhZF9nZXRfbWluc3RhY2soKSB7CistICBjb25zdCBjaGFyKiBnbGli Y192ZXJzID0gZ251X2dldF9saWJjX3ZlcnNpb24oKTsKKy0gIGNvbnN0IGludCBnbGliY192ZXJz X21ham9yID0gYXRvaShnbGliY192ZXJzKTsKKy0gIGNvbnN0IGludCBnbGliY192ZXJzX21pbm9y ID0gYXRvaShzdHJjaHIoZ2xpYmNfdmVycywgJy4nKSArIDEpOzsKKy0gIHByaW50ZigiR05VIGxp YmMgdmVyc2lvbjogJXNcbiIsIGdsaWJjX3ZlcnMpOworLSAgaWYgKChnbGliY192ZXJzX21ham9y ID4gMikgfHwgKChnbGliY192ZXJzX21ham9yID09IDIpICYmIChnbGliY192ZXJzX21pbm9yID49 IDE1KSkpIHsKKy0gICAgcmV0dXJuIDE7CistICB9CisgICBwcmludGYoIlRoaXMgdmVyc2lvbiBk b2VzIG5vdCBwcm92aWRlIF9fcHRocmVhZF9nZXRfbWluc3RhY2tcbiIpOworICAgcmV0dXJuIDA7 CisgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9wcGMucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmQzMDZkNTAxZTRiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK1Bh dGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGlu ZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2 MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJf cHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5j cHAKK0BAIC00Nyw2ICs0Nyw4IEBACisgI2luY2x1ZGUgIm9wdG8vaW50cmluc2ljbm9kZS5ocHAi CisgI2VuZGlmCisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaWZkZWYgUFJPRFVD VAorICNkZWZpbmUgQkxPQ0tfQ09NTUVOVChzdHIpIC8vIG5vdGhpbmcKKyAjZWxzZQorLS0tIG9s ZC9zcmMvaG90c3BvdC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorKysrIG5ldy9zcmMvaG90 c3BvdC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lk IFZNX1ZlcnNpb246OmRldGVybWluZV9mZWF0dXJlcygpIHsKKyAgIHVuc2lnbmVkIGxvbmcgYXV4 diA9IGdldGF1eHZhbChBVF9IV0NBUDIpOworIAorICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJf SFRNX05PU0MpIHsKKy0gICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hUTSkgeworKyAg ICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBvbiBQT1dFUjgg YW5kIFBPV0VSOSBpbiBjb21wYXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0aGUgSlZNLgor ICAgICAgIC8vIFRNIG9uIFBPV0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBub3Qgc3VwcG9y dGVkIGJ5IHRoZSBKVk0gKFRNIG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5WIGhhcyBhIGZl dyBpc3N1ZXMgdGhhdCBuZWVkIGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xkL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3Bv dC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKK0BAIC03NSw3ICs3NSw3IEBACisg IyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250 ZXh0Lmg+CistCisrIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisgYWRkcmVzcyBvczo6Y3Vy cmVudF9zdGFja19wb2ludGVyKCkgeworICAgaW50cHRyX3QqIGNzcDsKKy0tLSBvbGQvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitAQCAtMjMsNiAr MjMsOCBAQAorICAqCisgICovCisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaW5j bHVkZSAicHJlY29tcGlsZWQuaHBwIgorICNpbmNsdWRlICJydW50aW1lL2ZyYW1lLmlubGluZS5o cHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvdGhyZWFkLmhwcCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv b3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtn cy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaApAQCAtMCwwICsxLDEzMCBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9t IEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQv P2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3Jj L2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9o b3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTkwLDYgKzkwLDEy NiBAQAorICNkZWZpbmUgU1BFTExfUkVHX0ZQICJlYnAiCisgI2VuZGlmIC8vIEFNRDY0CisKKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyBUYWtlbiBmcm9tIGdsaWJjIDIuMjgKKysvLyBz b3VyY2U6IGh0dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWdsaWJjLmdpdDthPWJsb2I7Zj1z eXNkZXBzL3g4Ni9mcHVfY29udHJvbC5oO2g9NGNiOThjNTY3OWIyODk3ZmY0ZTU4MjZkMjI4Y2Jh NmJlNTg5ZTI0ZDtoYj0zYzAzYmFjYTM3ZmRjYjUyYzM4ODFlNjUzY2EzOTJiYmE3YTk5YzJiCisr Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisrI2lmbmRlZiBBTUQ2NAorKy8qIEZQVSBjb250cm9s IHdvcmQgYml0cy4gIHg4NiB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMTk5My0yMDE4IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorKyAgIENvbnRyaWJ1dGVkIGJ5IE9sYWYgRmxlYmJlLgorKworKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFs b25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9GUFVfQ09OVFJPTF9ICisrI2Rl ZmluZSBfRlBVX0NPTlRST0xfSAkxCisrCisrLyogTm90ZSB0aGF0IHRoaXMgZmlsZSBzZXRzIG9u IHg4Ni02NCBvbmx5IHRoZSB4ODcgRlBVLCBpdCBkb2VzIG5vdAorKyAgIHRvdWNoIHRoZSBTU0Ug dW5pdC4gICovCisrCisrLyogSGVyZSBpcyB0aGUgZGlydHkgcGFydC4gU2V0IHVwIHlvdXIgMzg3 IHRocm91Z2ggdGhlIGNvbnRyb2wgd29yZAorKyAqIChjdykgcmVnaXN0ZXIuCisrICoKKysgKiAg ICAgMTUtMTMgICAgMTIgIDExLTEwICA5LTggICAgIDctNiAgICAgNSAgICA0ICAgIDMgICAgMiAg ICAxICAgIDAKKysgKiB8IHJlc2VydmVkIHwgSUMgfCBSQyAgfCBQQyB8IHJlc2VydmVkIHwgUE0g fCBVTSB8IE9NIHwgWk0gfCBETSB8IElNCisrICoKKysgKiBJTTogSW52YWxpZCBvcGVyYXRpb24g bWFzaworKyAqIERNOiBEZW5vcm1hbGl6ZWQgb3BlcmFuZCBtYXNrCisrICogWk06IFplcm8tZGl2 aWRlIG1hc2sKKysgKiBPTTogT3ZlcmZsb3cgbWFzaworKyAqIFVNOiBVbmRlcmZsb3cgbWFzawor KyAqIFBNOiBQcmVjaXNpb24gKGluZXhhY3QgcmVzdWx0KSBtYXNrCisrICoKKysgKiBNYXNrIGJp dCBpcyAxIG1lYW5zIG5vIGludGVycnVwdC4KKysgKgorKyAqIFBDOiBQcmVjaXNpb24gY29udHJv bAorKyAqIDExIC0gcm91bmQgdG8gZXh0ZW5kZWQgcHJlY2lzaW9uCisrICogMTAgLSByb3VuZCB0 byBkb3VibGUgcHJlY2lzaW9uCisrICogMDAgLSByb3VuZCB0byBzaW5nbGUgcHJlY2lzaW9uCisr ICoKKysgKiBSQzogUm91bmRpbmcgY29udHJvbAorKyAqIDAwIC0gcm91bmRpbmcgdG8gbmVhcmVz dAorKyAqIDAxIC0gcm91bmRpbmcgZG93biAodG93YXJkIC0gaW5maW5pdHkpCisrICogMTAgLSBy b3VuZGluZyB1cCAodG93YXJkICsgaW5maW5pdHkpCisrICogMTEgLSByb3VuZGluZyB0b3dhcmQg emVybworKyAqCisrICogSUM6IEluZmluaXR5IGNvbnRyb2wKKysgKiBUaGF0IGlzIGZvciA4MDg3 IGFuZCA4MDI4NyBvbmx5LgorKyAqCisrICogVGhlIGhhcmR3YXJlIGRlZmF1bHQgaXMgMHgwMzdm IHdoaWNoIHdlIHVzZS4KKysgKi8KKysKKysjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysKKysvKiBt YXNraW5nIG9mIGludGVycnVwdHMgKi8KKysjZGVmaW5lIF9GUFVfTUFTS19JTSAgMHgwMQorKyNk ZWZpbmUgX0ZQVV9NQVNLX0RNICAweDAyCisrI2RlZmluZSBfRlBVX01BU0tfWk0gIDB4MDQKKysj ZGVmaW5lIF9GUFVfTUFTS19PTSAgMHgwOAorKyNkZWZpbmUgX0ZQVV9NQVNLX1VNICAweDEwCisr I2RlZmluZSBfRlBVX01BU0tfUE0gIDB4MjAKKysKKysvKiBwcmVjaXNpb24gY29udHJvbCAqLwor KyNkZWZpbmUgX0ZQVV9FWFRFTkRFRCAweDMwMAkvKiBsaWJtIHJlcXVpcmVzIGRvdWJsZSBleHRl bmRlZCBwcmVjaXNpb24uICAqLworKyNkZWZpbmUgX0ZQVV9ET1VCTEUgICAweDIwMAorKyNkZWZp bmUgX0ZQVV9TSU5HTEUgICAweDAKKysKKysvKiByb3VuZGluZyBjb250cm9sICovCisrI2RlZmlu ZSBfRlBVX1JDX05FQVJFU1QgMHgwICAgIC8qIFJFQ09NTUVOREVEICovCisrI2RlZmluZSBfRlBV X1JDX0RPV04gICAgMHg0MDAKKysjZGVmaW5lIF9GUFVfUkNfVVAgICAgICAweDgwMAorKyNkZWZp bmUgX0ZQVV9SQ19aRVJPICAgIDB4QzAwCisrCisrI2RlZmluZSBfRlBVX1JFU0VSVkVEIDB4RjBD MCAgLyogUmVzZXJ2ZWQgYml0cyBpbiBjdyAqLworKworKworKy8qIFRoZSBmZGxpYm0gY29kZSBy ZXF1aXJlcyBzdHJpY3QgSUVFRSBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWMsCisrICAgYW5k IG5vIGludGVycnVwdHMgZm9yIGV4Y2VwdGlvbnMsIHJvdW5kaW5nIHRvIG5lYXJlc3QuICAqLwor KworKyNkZWZpbmUgX0ZQVV9ERUZBVUxUICAweDAzN2YKKysKKysvKiBJRUVFOiAgc2FtZSBhcyBh Ym92ZS4gICovCisrI2RlZmluZSBfRlBVX0lFRUUgICAgIDB4MDM3ZgorKworKy8qIFR5cGUgb2Yg dGhlIGNvbnRyb2wgd29yZC4gICovCisrdHlwZWRlZiB1bnNpZ25lZCBpbnQgZnB1X2NvbnRyb2xf dCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKKysKKysvKiBNYWNyb3MgZm9y IGFjY2Vzc2luZyB0aGUgaGFyZHdhcmUgY29udHJvbCB3b3JkLiAgIiomIiBpcyB1c2VkIHRvCisr ICAgd29yayBhcm91bmQgYSBidWcgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR0NDLiAgX192b2xhdGls ZV9fIGlzIHVzZWQKKysgICB0byBzdXBwb3J0IGNvbWJpbmF0aW9uIG9mIHdyaXRpbmcgdGhlIGNv bnRyb2wgcmVnaXN0ZXIgYW5kIHJlYWRpbmcKKysgICBpdCBiYWNrLiAgV2l0aG91dCBfX3ZvbGF0 aWxlX18sIHRoZSBvbGQgdmFsdWUgbWF5IGJlIHVzZWQgZm9yIHJlYWRpbmcKKysgICBiYWNrIHVu ZGVyIGNvbXBpbGVyIG9wdGltaXphdGlvbi4KKysKKysgICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0 aGVzZSBtYWNyb3MgaXMgbm90IHN1ZmZpY2llbnQgYW55bW9yZSB3aXRoCisrICAgcmVjZW50IGhh cmR3YXJlIG5vciBvbiB4ODYtNjQuICBTb21lIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJl CisrICAgZXhlY3V0ZWQgaW4gdGhlIFNTRS9TU0UyIGVuZ2luZXMgd2hpY2ggaGF2ZSB0aGVpciBv d24gY29udHJvbCBhbmQKKysgICBzdGF0dXMgcmVnaXN0ZXIuICAqLworKyNkZWZpbmUgX0ZQVV9H RVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbnN0Y3cgJTAiIDogIj1tIiAoKiZjdykp CisrI2RlZmluZSBfRlBVX1NFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUw IiA6IDogIm0iICgqJmN3KSkKKysKKysvKiBEZWZhdWx0IGNvbnRyb2wgd29yZCBzZXQgYXQgc3Rh cnR1cC4gICovCisrZXh0ZXJuIGZwdV9jb250cm9sX3QgX19mcHVfY29udHJvbDsKKysKKysjZW5k aWYJLyogZnB1X2NvbnRyb2wuaCAqLworKworKyNlbmRpZiAvLyBBTUQ2NAorKy8vID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorKworIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAj aWZkZWYgU1BBUkNfV09SS1MKKyAgIHJlZ2lzdGVyIHZvaWQgKmVzcDsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJv b3RzdHJhcC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmMzNGI3N2FiNmU2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3Rz dHJhcC90ZW1wbGF0ZQpAQCAtMCwwICsxLDExOSBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3Bl bmpkazE1LWJvb3RzdHJhcCcKK19qYXZhX3Zlcj0xNQorX2phdmFfbWluX3Zlcj0wCitfamF2YV9z ZWNfdmVyPTMKK19qZGtfdXBkYXRlPTMKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7 X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9 LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE1LWJvb3RzdHJhcAordmVyc2lv bj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0i amRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVm aXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFi bGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVn PXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAt LXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtZ3Rlc3Q9JHtYQlBT X0JVSUxERElSfS9nb29nbGV0ZXN0LXJlbGVhc2UtMS44LjEKKyAtLXdpdGgtdmVyc2lvbi1idWls ZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdp dGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4 Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9v dC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNCIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgor bWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlm aWNhdGVzCisgbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIG9wZW5qZGsxNC1ib290 c3RyYXAiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0 LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVs IGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRl dmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwgaGFyZmJ1enotZGV2ZWwgb3BlbmpkazE0LWJvb3Rz dHJhcCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRp bWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtp dCAoYm9vdHN0cmFwIHZlcnNpb24gMTUpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZA a2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24t Mi4wIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0 cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJj aGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dv b2dsZXRlc3QvYXJjaGl2ZS9yZWZzL3RhZ3MvcmVsZWFzZS0xLjguMS50YXIuZ3oiCitjaGVja3N1 bT0iNGJiZDdhNzMzNTRhMmQyNDRjN2EwNzU0MDYzMzlhYTBjZTRjNWZjNmJlOTFhNzk1YWY5MzFm NmRjOTVkMDY3YworIDliZjFmZTUxODJhNjA0YjQxMzVlZGMxYTQyNWFlMzU2YzlhZDE1ZTliMjNm OWYxMmEwMmU4MDE4NGMzYTI0OWMiCitub2Nyb3NzPXllcworCisjIEJ1aWxkIGlzIHN0aWxsIHBh cmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisK KyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1u ICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNv bmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQU19U QVJHRVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3Qt amRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYworZmkKKworcG9z dF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9M SUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZp Cit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wi IF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsg ZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0Y2gg LWxOcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFH Uz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1E X0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBj YXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFH Uys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwll c2FjCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5 c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNI RSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlD Qz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25m aWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0 aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIk TERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5N IFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFs bCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9u fS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3Iv bGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5z ZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CisKK2RvX2NsZWFuKCkg eworCSMgY2xlYW4gdXAgZ3Rlc3QKKwlybSAtcmYgJHtYQlBTX0JVSUxERElSfS9nb29nbGV0ZXN0 LXJlbGVhc2UtKgorfQoKRnJvbSBhZDFiY2NlYzE2ZThhZDI0OTdhYjRjZjQyMjg5YzEyMGFjNzc5 ZGQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYu ZWU+CkRhdGU6IE1vbiwgMTcgSmFuIDIwMjIgMDY6MTk6NDYgLTA1MDAKU3ViamVjdDogW1BBVENI IDYvN10gTmV3IHBhY2thZ2U6IG9wZW5qZGsxNi1ib290c3RyYXAtMTYuMC4yKzcKCi0tLQogLi4u L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDIxICsrKwogLi4u L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgIHwgMTcwICsrKysrKysr KysrKysrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgICAgICAgICAg IHwgIDQ1ICsrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCAgICAgICAgICAg ICAgfCAxMzAgKysrKysrKysrKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1w bGF0ZSAgICAgICAgICB8IDExOSArKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNDg1IGlu c2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3BwYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE2LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNw a2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjEwMjQyOGYxMGYzMwotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAtNzMsNiArNzMsMTggQEAKKyAjIGluY2x1ZGUgPHVj b250ZXh0Lmg+CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sg YXMgdGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysv LworKy8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVy YXRvciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+ fn5+CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3Jj ZSBpdCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2Vu ZGlmCisrI2RlZmluZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisg CisgLy8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMg bm90IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0 Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjExNThiYWJjZDk2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxNzAgQEAKKy0t LSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9s aWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9 IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURI T1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0n IiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNs IicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbW9k dWxlcy9qYXZhLmJhc2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL21vZHVsZXMv amF2YS5iYXNlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAsNyBAQCBpZmVx ICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUpCisgZW5kaWYKKyAKKyBMSUJKTElf Q0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNs XCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhU UkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisr KysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC0zMTE3LDIwICszMTIz LDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hlZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRlcm4gIkMi IEpOSUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7 IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsg fQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwgY29u c3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lkKiAo KmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3Qg Y2hhciogdmVyc2lvbik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVuYzsK KysgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRpYWxp emVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRMRF9O RVhULCAiZGx2c3ltIik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysgIGlm IChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyhoYW5k bGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0dXJu IGY7CisrICAgIH0KKysgIH0KKysKKysgIHJldHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOworK30K KysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4x IChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJzaW9u IGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRsZSwg Y29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUsICJs aWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFuZGxl LCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFi bGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKyB9CisgCisgLy8gSGFuZGxlIHJlcXVl c3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5LgorIC8v IFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0aWN1 bGFyIHZlcnNpb24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQqIGhh bmRsZSwgY29uc3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5hbWUs ICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBu YW1lLCAibGlibnVtYV8xLjIiKTsKKyB9CisgCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5p dCgpIHsKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNw cAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitA QCAtNzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+ CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZw dV9jb250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1Ag UkVHX1JTUAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhl YXAuY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVh cC5jcHAKK0BAIC0xMTE2LDcgKzExMTYsNyBAQCBIZWFwV29yZCogR2VuQ29sbGVjdGVkSGVhcDo6 YWxsb2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXplLAorIHN0YXRpYyBTY3JhdGNoQmxvY2sg KnJlbW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipwcmV2X3B0cikgeworICAgYm9v bCBmaXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAwOyAgIC8vICJmaXJzdCIgbWFr ZXMgdGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3JhdGNoQmxvY2sgKipzbWFsbGVz dF9wdHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciA9IE5VTEws ICpzbWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxl IChjdXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNraW5nIik7 CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKysr KyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworQEAgLTIz NSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisg eworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsK KyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47 CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMg bm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3Qg aW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwK KysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0 aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFj ay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJu OworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7CistLS0g YS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kLmMKKysrKyBiL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWQuYworQEAgLTIzNiw2ICsyMzYsMzkg QEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxs cCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lm ZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5k aWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgor KyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFU SCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUg ZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAg ICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhh dCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0 IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2 aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0 aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxv YWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkg dGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3Qg anVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAg ICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwg aWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2 YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8g YSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhl IG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVu dCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAg ICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBs b25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUg YWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2Fu ZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBs aWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllf UEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAg ICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0 dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBX ZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24n dCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9q ZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKysrKyBiL3NyYy9qZGsu amR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKK0BAIC0zNSwxNSArMzUsMTUg QEAKKyAjaWZkZWYgREVCVUcKKyAgICAgLyogSnVzdCB0byBtYWtlIHN1cmUgdGhlc2UgaW50ZXJm YWNlcyBhcmUgbm90IHVzZWQgaGVyZS4gKi8KKyAgICAgI3VuZGVmIGZyZWUKKy0gICAgI2RlZmlu ZSBmcmVlKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgZnJlZSBk b19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2ZyZWUKKyAgICAgI3VuZGVmIG1hbGxvYworLSAgICAj ZGVmaW5lIG1hbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5l IG1hbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX21hbGxvYworICAgICAjdW5kZWYgY2Fs bG9jCistICAgICNkZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisr ICAgICNkZWZpbmUgY2FsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfY2FsbG9jCisgICAg ICN1bmRlZiByZWFsbG9jCistICAgICNkZWZpbmUgcmVhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMg aW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHJlYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFj ZV9yZWFsbG9jCisgICAgICN1bmRlZiBzdHJkdXAKKy0gICAgI2RlZmluZSBzdHJkdXAocCkgRG8g bm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBzdHJkdXAgZG9fbm90X3VzZV90 aGlzX2ludGVyZmFjZV9zdHJkdXAKKyAjZW5kaWYKKyAKKyAjaW5jbHVkZSAibG9nX21lc3NhZ2Vz LmgiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVu amRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggYi9zcmNwa2dzL29w ZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMDZkNTAxZTRiOAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBj LnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBp bmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04 YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3Rz cG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9j cHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKK0BAIC00Nyw2ICs0Nyw4IEBACisgI2luY2x1 ZGUgIm9wdG8vaW50cmluc2ljbm9kZS5ocHAiCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPGFzbS9w dHJhY2UuaD4KKysKKyAjaWZkZWYgUFJPRFVDVAorICNkZWZpbmUgQkxPQ0tfQ09NTUVOVChzdHIp IC8vIG5vdGhpbmcKKyAjZWxzZQorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL3ZtX3ZlcnNp b25fcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNw cAorQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFZNX1ZlcnNpb246OmRldGVybWluZV9mZWF0dXJl cygpIHsKKyAgIHVuc2lnbmVkIGxvbmcgYXV4diA9IGdldGF1eHZhbChBVF9IV0NBUDIpOworIAor ICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNX05PU0MpIHsKKy0gICAgaWYgKGF1eHYgJiBQ UENfRkVBVFVSRTJfSEFTX0hUTSkgeworKyAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE0p IHsKKyAgICAgICAvLyBUTSBvbiBQT1dFUjggYW5kIFBPV0VSOSBpbiBjb21wYXQgbW9kZSAoVk0p IGlzIHN1cHBvcnRlZCBieSB0aGUgSlZNLgorICAgICAgIC8vIFRNIG9uIFBPV0VSOSBERDIuMSBO ViAoYmFyZW1ldGFsKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBKVk0gKFRNIG9uCisgICAgICAg Ly8gUE9XRVI5IEREMi4xIE5WIGhhcyBhIGZldyBpc3N1ZXMgdGhhdCBuZWVkIGEgY291cGxlIG9m IGZpcm13YXJlCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhf cHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3Bw Yy5jcHAKK0BAIC03NSw3ICs3NSw3IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUg PHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistCisrIyBpbmNsdWRlIDxhc20vcHRy YWNlLmg+CisgCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICAgaW50 cHRyX3QqIGNzcDsKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRf bGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVh ZF9saW51eF9wcGMuY3BwCitAQCAtMjMsNiArMjMsOCBAQAorICAqCisgICovCisgCisrI2luY2x1 ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaW5jbHVkZSAicHJlY29tcGlsZWQuaHBwIgorICNpbmNs dWRlICJydW50aW1lL2ZyYW1lLmlubGluZS5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvdGhyZWFk LmhwcCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211 c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApAQCAtMCwwICsxLDEzMCBAQAor UGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxw aW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4 MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19s aW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGlu dXhfeDg2LmNwcAorQEAgLTkwLDYgKzkwLDEyNiBAQAorICNkZWZpbmUgU1BFTExfUkVHX0ZQICJl YnAiCisgI2VuZGlmIC8vIEFNRDY0CisKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyBU YWtlbiBmcm9tIGdsaWJjIDIuMjgKKysvLyBzb3VyY2U6IGh0dHBzOi8vc291cmNld2FyZS5vcmcv Z2l0Lz9wPWdsaWJjLmdpdDthPWJsb2I7Zj1zeXNkZXBzL3g4Ni9mcHVfY29udHJvbC5oO2g9NGNi OThjNTY3OWIyODk3ZmY0ZTU4MjZkMjI4Y2JhNmJlNTg5ZTI0ZDtoYj0zYzAzYmFjYTM3ZmRjYjUy YzM4ODFlNjUzY2EzOTJiYmE3YTk5YzJiCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrI2lm bmRlZiBBTUQ2NAorKy8qIEZQVSBjb250cm9sIHdvcmQgYml0cy4gIHg4NiB2ZXJzaW9uLgorKyAg IENvcHlyaWdodCAoQykgMTk5My0yMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKyAgIENvbnRyaWJ1 dGVkIGJ5IE9sYWYgRmxlYmJlLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysg ICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK KysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKwor KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlm IG5vdCwgc2VlCisrICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysj aWZuZGVmIF9GUFVfQ09OVFJPTF9ICisrI2RlZmluZSBfRlBVX0NPTlRST0xfSAkxCisrCisrLyog Tm90ZSB0aGF0IHRoaXMgZmlsZSBzZXRzIG9uIHg4Ni02NCBvbmx5IHRoZSB4ODcgRlBVLCBpdCBk b2VzIG5vdAorKyAgIHRvdWNoIHRoZSBTU0UgdW5pdC4gICovCisrCisrLyogSGVyZSBpcyB0aGUg ZGlydHkgcGFydC4gU2V0IHVwIHlvdXIgMzg3IHRocm91Z2ggdGhlIGNvbnRyb2wgd29yZAorKyAq IChjdykgcmVnaXN0ZXIuCisrICoKKysgKiAgICAgMTUtMTMgICAgMTIgIDExLTEwICA5LTggICAg IDctNiAgICAgNSAgICA0ICAgIDMgICAgMiAgICAxICAgIDAKKysgKiB8IHJlc2VydmVkIHwgSUMg fCBSQyAgfCBQQyB8IHJlc2VydmVkIHwgUE0gfCBVTSB8IE9NIHwgWk0gfCBETSB8IElNCisrICoK KysgKiBJTTogSW52YWxpZCBvcGVyYXRpb24gbWFzaworKyAqIERNOiBEZW5vcm1hbGl6ZWQgb3Bl cmFuZCBtYXNrCisrICogWk06IFplcm8tZGl2aWRlIG1hc2sKKysgKiBPTTogT3ZlcmZsb3cgbWFz aworKyAqIFVNOiBVbmRlcmZsb3cgbWFzaworKyAqIFBNOiBQcmVjaXNpb24gKGluZXhhY3QgcmVz dWx0KSBtYXNrCisrICoKKysgKiBNYXNrIGJpdCBpcyAxIG1lYW5zIG5vIGludGVycnVwdC4KKysg KgorKyAqIFBDOiBQcmVjaXNpb24gY29udHJvbAorKyAqIDExIC0gcm91bmQgdG8gZXh0ZW5kZWQg cHJlY2lzaW9uCisrICogMTAgLSByb3VuZCB0byBkb3VibGUgcHJlY2lzaW9uCisrICogMDAgLSBy b3VuZCB0byBzaW5nbGUgcHJlY2lzaW9uCisrICoKKysgKiBSQzogUm91bmRpbmcgY29udHJvbAor KyAqIDAwIC0gcm91bmRpbmcgdG8gbmVhcmVzdAorKyAqIDAxIC0gcm91bmRpbmcgZG93biAodG93 YXJkIC0gaW5maW5pdHkpCisrICogMTAgLSByb3VuZGluZyB1cCAodG93YXJkICsgaW5maW5pdHkp CisrICogMTEgLSByb3VuZGluZyB0b3dhcmQgemVybworKyAqCisrICogSUM6IEluZmluaXR5IGNv bnRyb2wKKysgKiBUaGF0IGlzIGZvciA4MDg3IGFuZCA4MDI4NyBvbmx5LgorKyAqCisrICogVGhl IGhhcmR3YXJlIGRlZmF1bHQgaXMgMHgwMzdmIHdoaWNoIHdlIHVzZS4KKysgKi8KKysKKysjaW5j bHVkZSA8ZmVhdHVyZXMuaD4KKysKKysvKiBtYXNraW5nIG9mIGludGVycnVwdHMgKi8KKysjZGVm aW5lIF9GUFVfTUFTS19JTSAgMHgwMQorKyNkZWZpbmUgX0ZQVV9NQVNLX0RNICAweDAyCisrI2Rl ZmluZSBfRlBVX01BU0tfWk0gIDB4MDQKKysjZGVmaW5lIF9GUFVfTUFTS19PTSAgMHgwOAorKyNk ZWZpbmUgX0ZQVV9NQVNLX1VNICAweDEwCisrI2RlZmluZSBfRlBVX01BU0tfUE0gIDB4MjAKKysK KysvKiBwcmVjaXNpb24gY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9FWFRFTkRFRCAweDMwMAkv KiBsaWJtIHJlcXVpcmVzIGRvdWJsZSBleHRlbmRlZCBwcmVjaXNpb24uICAqLworKyNkZWZpbmUg X0ZQVV9ET1VCTEUgICAweDIwMAorKyNkZWZpbmUgX0ZQVV9TSU5HTEUgICAweDAKKysKKysvKiBy b3VuZGluZyBjb250cm9sICovCisrI2RlZmluZSBfRlBVX1JDX05FQVJFU1QgMHgwICAgIC8qIFJF Q09NTUVOREVEICovCisrI2RlZmluZSBfRlBVX1JDX0RPV04gICAgMHg0MDAKKysjZGVmaW5lIF9G UFVfUkNfVVAgICAgICAweDgwMAorKyNkZWZpbmUgX0ZQVV9SQ19aRVJPICAgIDB4QzAwCisrCisr I2RlZmluZSBfRlBVX1JFU0VSVkVEIDB4RjBDMCAgLyogUmVzZXJ2ZWQgYml0cyBpbiBjdyAqLwor KworKworKy8qIFRoZSBmZGxpYm0gY29kZSByZXF1aXJlcyBzdHJpY3QgSUVFRSBkb3VibGUgcHJl Y2lzaW9uIGFyaXRobWV0aWMsCisrICAgYW5kIG5vIGludGVycnVwdHMgZm9yIGV4Y2VwdGlvbnMs IHJvdW5kaW5nIHRvIG5lYXJlc3QuICAqLworKworKyNkZWZpbmUgX0ZQVV9ERUZBVUxUICAweDAz N2YKKysKKysvKiBJRUVFOiAgc2FtZSBhcyBhYm92ZS4gICovCisrI2RlZmluZSBfRlBVX0lFRUUg ICAgIDB4MDM3ZgorKworKy8qIFR5cGUgb2YgdGhlIGNvbnRyb2wgd29yZC4gICovCisrdHlwZWRl ZiB1bnNpZ25lZCBpbnQgZnB1X2NvbnRyb2xfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9f SElfXykpKTsKKysKKysvKiBNYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgaGFyZHdhcmUgY29udHJv bCB3b3JkLiAgIiomIiBpcyB1c2VkIHRvCisrICAgd29yayBhcm91bmQgYSBidWcgaW4gb2xkZXIg dmVyc2lvbnMgb2YgR0NDLiAgX192b2xhdGlsZV9fIGlzIHVzZWQKKysgICB0byBzdXBwb3J0IGNv bWJpbmF0aW9uIG9mIHdyaXRpbmcgdGhlIGNvbnRyb2wgcmVnaXN0ZXIgYW5kIHJlYWRpbmcKKysg ICBpdCBiYWNrLiAgV2l0aG91dCBfX3ZvbGF0aWxlX18sIHRoZSBvbGQgdmFsdWUgbWF5IGJlIHVz ZWQgZm9yIHJlYWRpbmcKKysgICBiYWNrIHVuZGVyIGNvbXBpbGVyIG9wdGltaXphdGlvbi4KKysK KysgICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0aGVzZSBtYWNyb3MgaXMgbm90IHN1ZmZpY2llbnQg YW55bW9yZSB3aXRoCisrICAgcmVjZW50IGhhcmR3YXJlIG5vciBvbiB4ODYtNjQuICBTb21lIGZs b2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJlCisrICAgZXhlY3V0ZWQgaW4gdGhlIFNTRS9TU0Uy IGVuZ2luZXMgd2hpY2ggaGF2ZSB0aGVpciBvd24gY29udHJvbCBhbmQKKysgICBzdGF0dXMgcmVn aXN0ZXIuICAqLworKyNkZWZpbmUgX0ZQVV9HRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18g KCJmbnN0Y3cgJTAiIDogIj1tIiAoKiZjdykpCisrI2RlZmluZSBfRlBVX1NFVENXKGN3KSBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUwIiA6IDogIm0iICgqJmN3KSkKKysKKysvKiBEZWZh dWx0IGNvbnRyb2wgd29yZCBzZXQgYXQgc3RhcnR1cC4gICovCisrZXh0ZXJuIGZwdV9jb250cm9s X3QgX19mcHVfY29udHJvbDsKKysKKysjZW5kaWYJLyogZnB1X2NvbnRyb2wuaCAqLworKworKyNl bmRpZiAvLyBBTUQ2NAorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKworIGFkZHJlc3Mgb3M6OmN1 cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAjaWZkZWYgU1BBUkNfV09SS1MKKyAgIHJlZ2lzdGVy IHZvaWQgKmVzcDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1w bGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIxNzEzM2M0ZTk3YQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMCwwICsxLDExOSBA QAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmpkazE2LWJvb3RzdHJhcCcKK19qYXZhX3Zlcj0x NgorX2phdmFfbWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTIKK19qZGtfdXBkYXRlPTcKK19qZGtf aG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7 X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9 b3BlbmpkazE2LWJvb3RzdHJhcAordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBk YXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHtfYmFzZV92 ZXJzaW9ufS0ke19qZGtfdXBkYXRlfSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZp Z3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1lbmFibGUtdW5saW1p dGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVnPXN5c3RlbQor IC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNt cz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtZ3Rlc3Q9JHtYQlBTX0JVSUxERElS fS9nb29nbGV0ZXN0LXJlbGVhc2UtMS44LjEKKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0ke19qYXZh X3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVuZG9y LW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAt LXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vz ci9saWIvanZtL29wZW5qZGsxNSIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9pbnN0 YWxsX2FyZ3M9IklOU1RBTExfUFJFRklYPVwiJHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS91c3IvbGliXCIiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0 IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFy IHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1h a2UtY2Egb3BlbmpkazE1LWJvb3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVs IGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVs IGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1k ZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6ei1k ZXZlbCBvcGVuamRrMTUtYm9vdHN0cmFwIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2 ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRL IEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290c3RyYXAgdmVyc2lvbiAxNikiCittYWludGFpbmVy PSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEgg Q2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5u ZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbmpkay9qZGske19qYXZhX3Zl cn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly9naXRodWIuY29tL2dv b2dsZS9nb29nbGV0ZXN0L2FyY2hpdmUvcmVmcy90YWdzL3JlbGVhc2UtMS44LjEudGFyLmd6Igor Y2hlY2tzdW09ImI0YTBlNzFlNDFhMTExNzVlOGE3YzFkYmE4NmVkNWIwYWE4Nzg0MTMxNThjOGQ0 ODgxM2RiMWI2NGFjOTUzNmMKKyA5YmYxZmU1MTgyYTYwNGI0MTM1ZWRjMWE0MjVhZTM1NmM5YWQx NWU5YjIzZjlmMTJhMDJlODAxODRjM2EyNDljIgorbm9jcm9zcz15ZXMKKworIyBCdWlsZCBpcyBz dGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxk PXllcworCisjIG5vIGhvdHNwb3QgSklUIGZvciBwcGMzMgorY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIF91c2VfemVybz15ZXMgOzsKK2VzYWMKKwor aWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZl bCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtanZtLXZhcmlhbnRzPXplcm8iCisJY2FzZSAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0 aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2Zp CisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19U QVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdl bnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9 ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyou cGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJ CXBhdGNoIC1sTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsK KwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhG TEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1 c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJ CQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJ CTs7CisJZXNhYworCisJY29uZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdpdGgtbGli dG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgtW2Etel0qL30KKwlpZiBbICIkWEJQ U19DQ0FDSEUiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgor CWZpCisJQ0M9Ii91c3IvYmluL2NjIgorCUNYWD0iL3Vzci9iaW4vYysrIgorCS4vY29uZmlndXJl ICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAor CQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRm bGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQ IE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0 X2luc3RhbGwoKSB7CisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2Vf dmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVTVERJ Un0vdXNyL2xpYi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCisJ dmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQorCitkb19j bGVhbigpIHsKKwkjIGNsZWFuIHVwIGd0ZXN0CisJcm0gLXJmICR7WEJQU19CVUlMRERJUn0vZ29v Z2xldGVzdC1yZWxlYXNlLSoKK30KCkZyb20gYzg2YjgzMTVkODc5MTgxYmFkYmMyNjZjNGVkMTAw MmVjZDY5NGQyMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogY2xhc3NhYmJ5YW1wIDxk ZXZAa2I2LmVlPgpEYXRlOiBNb24sIDE3IEphbiAyMDIyIDA2OjIwOjAxIC0wNTAwClN1YmplY3Q6 IFtQQVRDSCA3LzddIE5ldyBwYWNrYWdlOiBvcGVuamRrMTctMTcuMC4xKzEyCgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmNwa2dz L29wZW5qZGsxNy1kb2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9v cGVuamRrMTctc3JjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9vcGVuamRr MTcvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICB8ICAyMiArKwogLi4uL29wZW5qZGsx Ny9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggIHwgMTcwICsrKysrKysrKysrKysrCiAu Li4vb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgfCAgNDUgKysrKwog Li4uL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgIHwgMTMwICsrKysr KysrKysrCiBzcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAy MTAgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL29wZW5qZGsxNy91cGRhdGUgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogOSBmaWxlcyBjaGFuZ2VkLCA1ODYgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3BlbmpkazE3LWRvYwogY3JlYXRlIG1vZGUgMTIw MDAwIHNyY3BrZ3Mvb3BlbmpkazE3LXNyYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Bl bmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRl CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvdXBkYXRlCgpkaWZmIC0tZ2l0 IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYjA3ZTE0Mzc5ZTI4Li4yYTM0 MzJkYTcyMjkgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtNDA5OCwzICs0MDk4LDkgQEAgbGlia21haWxjb25maXJtYmVmb3JlZGVsZXRpbmcuc28uNSBr ZGVwaW0tYWRkb25zLTIxLjA4LjNfMQogbGlia2FkZHJlc3Nib29rcHJpdmF0ZS5zby41IGthZGRy ZXNzYm9vay0yMS4wOC4zXzEKIGxpYmNvZGVjMi5zby4xLjAgY29kZWMyLTEuMC4xXzEKIGxpYng4 NmVtdS5zby4zIGxpYng4NmVtdS0zLjRfMQorbGliamF3dC5zbyBvcGVuamRrMTctMTcuMC4xKzEy XzEKK2xpYmF3dC5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmF3dF94YXd0LnNvIG9wZW5q ZGsxNy0xNy4wLjErMTJfMQorbGliamF2YS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmps aS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmp2bS5zbyBvcGVuamRrMTctMTcuMC4xKzEy XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYyBiL3NyY3BrZ3Mvb3BlbmpkazE3 LWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjk5YWIxY2IxYjBk MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYwpAQCAtMCwwICsxIEBA CitvcGVuamRrMTcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxNy1zcmMgYi9zcmNwa2dzL29wZW5qZGsxNy1zcmMKbmV3IGZpbGUgbW9kZSAx MjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45OWFiMWNiMWIwZDIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL29wZW5qZGsxNy1zcmMKQEAgLTAsMCArMSBAQAorb3BlbmpkazE3ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMv bXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0 Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4z MmI0YjAxMDJhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9t dXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKKy0tLSBhL3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAtNzMsNyArNzMsMTggQEAKKyAjIGlu Y2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorICMgaW5jbHVk ZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVs b3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0u Y3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIo IgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5H UkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4K KysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcg MTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZpbmUg U1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwgc28g dGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRr MTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMTE1OGJhYmNkOTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTcw IEBACistLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hv dHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzMsNiArNzMsNyBAQCBDRkxBR1NfVk1fVkVS U0lPTiA6PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisg ICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAg LURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJD PScibXVzbCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0gYS9t YWtlL21vZHVsZXMvamF2YS5iYXNlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworKysrIGIvbWFrZS9t b2R1bGVzL2phdmEuYmFzZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKK0BAIC0xOTAsNiArMTkwLDcg QEAgaWZlcSAoJChjYWxsIGlzVGFyZ2V0T3MsIHdpbmRvd3MpLCB0cnVlKQorIGVuZGlmCisgCisg TElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJD PVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElC SkxJX0VYVFJBX0ZJTEVTICs9IFwKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4 LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtMzExNywy MCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0 ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUs IC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndo ZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5k bGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYg dm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUs IGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3lt X2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFp bml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3lt KFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9Cisr CisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1 bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAg IHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1l KTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJz aW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2Ug dmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBo YW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBu YW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3lt KGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZf YXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRs ZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25s eS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMg cGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2 b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxl LCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhh bmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJu dW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4 X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2 LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8 cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNs dWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUg UkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xs ZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxl Y3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3Rl ZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRj aEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsK KyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmly c3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoq c21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIg PSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7Cisg ICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVj a2luZyIpOworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJv Yy5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMK K0BAIC0yMzUsNyArMjM1LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBjb25zdCBjaGFyICpm aWxlLAorIHsKKyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hhciAqKikgZW52cCA9PSBlbnZp cm9uKSB7CisgICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiopIGFyZ3YpOworLSAgICAgICAg cmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0aGUgZmlsZSBoZWFk ZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAgICAgICAvLyBsaWJyYXJ5IGRv ZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3IgdGhhdCBjYXNlLCBz byBmYWxsCisrICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93IHdoaWNoIGltcGxl bWVudHMgdGhhdCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8gZXhlY3ZlX3dpdGhfc2hlbGxf ZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhFQykgeworKyAgICAgICAgICAg IHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBpZiAoKmZpbGUgPT0gJ1wwJykg eworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCisrKysg Yi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kLmMKK0BAIC0yMzYsNiAr MjM2LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hh ciAqZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLwor IAorKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQi CisrI2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAg ICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJS QVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29s dmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAq CisrICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNl bnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxv YWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9y IHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAg ICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBi ZWluZyBsb2FkZWQuCisrICAgICAgICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9h ZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Bl biwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcwor KyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhv d2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVu IGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNj ZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEu c28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBk ZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMK KysgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRj aCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0 aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJl ZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9v ayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9M SUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNv CisrICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAg ICAgIHJldHVybiBKTklfVFJVRTsKKysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAg ICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxk IGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0g YS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9z cmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUg KzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNl IGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAg ICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5l IGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MK Ky0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAg I2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3Vu ZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJm YWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxv YworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVz ZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVw KHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25v dF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19t ZXNzYWdlcy5oIgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggYi9zcmNwa2dzL29wZW5q ZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApAQCAtMCwwICsxLDQ1IEBA CitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5h bHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFh NjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1i bGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9w cGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRvL2ludHJpbnNpY25vZGUu aHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2lmZGVmIFBS T0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3RoaW5nCisgI2Vsc2UKKy0t LSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3Jj L2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04NDUsNyArODQ1LDcgQEAg dm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7CisgICB1bnNpZ25lZCBsb25n IGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRV UkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsK KysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9X RVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpW TS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1 cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMg YSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitAQCAtNzUsNyArNzUsNyBA QAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1 Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6 OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBjc3A7CistLS0gb2xkL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorQEAgLTIz LDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisg I2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS9mcmFtZS5pbmxp bmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtncy9vcGVu amRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAg QEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0 LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5 MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYv b3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29z X2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19G UCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisr Ly8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUu b3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDto PTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2Zk Y2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor KyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4K KysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250 cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5 OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisr CisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKwor Ky8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwg aXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMg dGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQK KysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04 ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8 IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQor KyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVk IG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93 IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0 IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQu CisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVu ZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAw IC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRy b2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24g KHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmlu aXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0 eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAq IFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisr I2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisr I2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgor KyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgK KysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIw CisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgz MDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVm aW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisr Lyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAv KiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmlu ZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAor KworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cg Ki8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91Ymxl IHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRp b25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAg MHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9J RUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5 cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9f IChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNv bnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9s ZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9y dCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5n CisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBi ZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24u CisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNp ZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29t ZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0Uv U1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVz IHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGls ZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyog RGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29u dHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysK KysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9z OjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdp c3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZSBi L3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYmFjM2Q1MDJkNzgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVu amRrMTcvdGVtcGxhdGUKQEAgLTAsMCArMSwyMTAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29w ZW5qZGsxNycKKyMgVE9ETzogc3BsaXQgb2ZmIC1qcmUgYW5kIC1qcmUtaGVhZGxlc3Mgc3VicGFj a2FnZXMKK19qYXZhX3Zlcj0xNworX2phdmFfbWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTEKK19q ZGtfdXBkYXRlPTEyCitfamRrX2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0i CitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3Nl Y192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxNwordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSsk e19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGst JHtfYmFzZV92ZXJzaW9ufS0ke19qZGtfdXBkYXRlfSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1lbmFi bGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVn PXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAt LXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtZ3Rlc3Q9JHtYQlBT X0JVSUxERElSfS9nb29nbGV0ZXN0LXJlbGVhc2UtMS44LjEKKyAtLXdpdGgtdmVyc2lvbi1idWls ZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdp dGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4 Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMiCittYWtlX2J1aWxk X2FyZ3M9ImltYWdlcyAkKHZvcHRfaWYgZG9jcyBkb2NzKSIKK21ha2VfaW5zdGFsbF9hcmdzPSJJ TlNUQUxMX1BSRUZJWD1cIiR7REVTVERJUn0vdXNyL2xpYlwiIgorbWFrZV9jaGVja190YXJnZXQ9 InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFr ZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisgbGlicmVzc2wg emxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwg bGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwg bGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRl dmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIgorcHJvdmlkZXM9 ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEi CitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0ICh2ZXJzaW9uICR7X2ph dmFfdmVyfSkiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgorbGljZW5z ZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCitob21lcGFnZT0i aHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20v b3Blbmpkay9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6Cisg aHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9nb29nbGV0ZXN0L2FyY2hpdmUvcmVmcy90YWdzL3Jl bGVhc2UtMS44LjEudGFyLmd6IgorY2hlY2tzdW09IjhjMDc2MjAzYTZmODVhYjkxNmIzZTU0ZGUx OTkyYmNiY2M1ZmZlNTgwYzUyYjFhYzhkNTJjYTdhZmI5ZjAyZDEKKyA5YmYxZmU1MTgyYTYwNGI0 MTM1ZWRjMWE0MjVhZTM1NmM5YWQxNWU5YjIzZjlmMTJhMDJlODAxODRjM2EyNDljIgorc2hsaWJf cHJvdmlkZXM9ImxpYmF3dC5zbyBsaWJhd3RfeGF3dC5zbyBsaWJqYXZhLnNvIGxpYmpsaS5zbyBs aWJqdm0uc28gbGliamF3dC5zbyIKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRv bid0IHVzZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworYnVpbGRfb3B0aW9ucz0i ZG9jcyIKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisK K2lmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2 ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0 aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2Zp Citjb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWGxvZzpkaXNhYmxl IgorCitjYXNlICIkWEJQU19UQVJHRVRfTElCQyIgaW4KKwlnbGliYykgYnVpbGRfb3B0aW9uc19k ZWZhdWx0Kz0iIGRvY3MiOzsKK2VzYWMKKworaWYgWyAhICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K Kwlob3N0bWFrZWRlcGVuZHMrPSIgb3BlbmpkazE2LWJvb3RzdHJhcCIKKwljb25maWd1cmVfYXJn cys9IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNiIKK2Vsc2UKKwlob3N0 bWFrZWRlcGVuZHMrPSIgb3BlbmpkazE3IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290 LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazE3IgorZmkKKworYWx0ZXJuYXRpdmVzPSIKKyBqYXZh Oi91c3IvYmluL2phdmE6LyR7X2pka19ob21lfS9iaW4vamF2YQorIGphdmE6L3Vzci9iaW4vampz Oi8ke19qZGtfaG9tZX0vYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5dG9vbDovJHtfamRrX2hv bWV9L2Jpbi9rZXl0b29sCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi8ke19qZGtfaG9tZX0vYmlu L3BhY2syMDAKKyBqYXZhOi91c3IvYmluL3JtaWQ6LyR7X2pka19ob21lfS9iaW4vcm1pZAorIGph dmE6L3Vzci9iaW4vcm1pcmVnaXN0cnk6LyR7X2pka19ob21lfS9iaW4vcm1pcmVnaXN0cnkKKyBq YXZhOi91c3IvYmluL3VucGFjazIwMDovJHtfamRrX2hvbWV9L2Jpbi91bnBhY2syMDAKKworIGpk azovdXNyL2Jpbi9qYW90YzovJHtfamRrX2hvbWV9L2Jpbi9qYW90YworIGpkazovdXNyL2Jpbi9q YXI6LyR7X2pka19ob21lfS9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovJHtfamRr X2hvbWV9L2Jpbi9qYXJzaWduZXIKKyBqZGs6L3Vzci9iaW4vamF2YTovJHtfamRrX2hvbWV9L2Jp bi9qYXZhCisgamRrOi91c3IvYmluL2phdmFjOi8ke19qZGtfaG9tZX0vYmluL2phdmFjCisgamRr Oi91c3IvYmluL2phdmFkb2M6LyR7X2pka19ob21lfS9iaW4vamF2YWRvYworIGpkazovdXNyL2Jp bi9qYXZhcDovJHtfamRrX2hvbWV9L2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9qY21kOi8ke19q ZGtfaG9tZX0vYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNvbGU6LyR7X2pka19ob21lfS9i aW4vamNvbnNvbGUKKyBqZGs6L3Vzci9iaW4vamRiOi8ke19qZGtfaG9tZX0vYmluL2pkYgorIGpk azovdXNyL2Jpbi9qZGVwcnNjYW46LyR7X2pka19ob21lfS9iaW4vamRlcHJzY2FuCisgamRrOi91 c3IvYmluL2pkZXBzOi8ke19qZGtfaG9tZX0vYmluL2pkZXBzCisgamRrOi91c3IvYmluL2poc2Ri Oi8ke19qZGtfaG9tZX0vYmluL2poc2RiCisgamRrOi91c3IvYmluL2ppbWFnZTovJHtfamRrX2hv bWV9L2Jpbi9qaW1hZ2UKKyBqZGs6L3Vzci9iaW4vamluZm86LyR7X2pka19ob21lfS9iaW4vamlu Zm8KKyBqZGs6L3Vzci9iaW4vampzOi8ke19qZGtfaG9tZX0vYmluL2pqcworIGpkazovdXNyL2Jp bi9qbGluazovJHtfamRrX2hvbWV9L2Jpbi9qbGluaworIGpkazovdXNyL2Jpbi9qbWFwOi8ke19q ZGtfaG9tZX0vYmluL2ptYXAKKyBqZGs6L3Vzci9iaW4vam1vZDovJHtfamRrX2hvbWV9L2Jpbi9q bW9kCisgamRrOi91c3IvYmluL2pwczovJHtfamRrX2hvbWV9L2Jpbi9qcHMKKyBqZGs6L3Vzci9i aW4vanJ1bnNjcmlwdDovJHtfamRrX2hvbWV9L2Jpbi9qcnVuc2NyaXB0CisgamRrOi91c3IvYmlu L2pzaGVsbDovJHtfamRrX2hvbWV9L2Jpbi9qc2hlbGwKKyBqZGs6L3Vzci9iaW4vanN0YWNrOi8k e19qZGtfaG9tZX0vYmluL2pzdGFjaworIGpkazovdXNyL2Jpbi9qc3RhdDovJHtfamRrX2hvbWV9 L2Jpbi9qc3RhdAorIGpkazovdXNyL2Jpbi9qc3RhdGQ6LyR7X2pka19ob21lfS9iaW4vanN0YXRk CisgamRrOi91c3IvYmluL2tleXRvb2w6LyR7X2pka19ob21lfS9iaW4va2V5dG9vbAorIGpkazov dXNyL2Jpbi9wYWNrMjAwOi8ke19qZGtfaG9tZX0vYmluL3BhY2syMDAKKyBqZGs6L3Vzci9iaW4v cm1pYzovJHtfamRrX2hvbWV9L2Jpbi9ybWljCisgamRrOi91c3IvYmluL3JtaWQ6LyR7X2pka19o b21lfS9iaW4vcm1pZAorIGpkazovdXNyL2Jpbi9ybWlyZWdpc3RyeTovJHtfamRrX2hvbWV9L2Jp bi9ybWlyZWdpc3RyeQorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6LyR7X2pka19ob21lfS9iaW4v c2VyaWFsdmVyCisgamRrOi91c3IvYmluL3VucGFjazIwMDovJHtfamRrX2hvbWV9L2Jpbi91bnBh Y2syMDAKKyIKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsg IiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90 c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VU X0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3Bh dGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIv fVxuIgorCQkJcGF0Y2ggLWxOcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmln dXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFH Uz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3Ig cHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBw YzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VM RnYyIgorCQkJOzsKKwllc2FjCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0t d2l0aC1saWJ0b29sLXN5c3Jvb3Q9JFhCUFNfQ1JPU1NfQkFTRX0KKwlpZiBbICIkWEJQU19DQ0FD SEUiIF0gJiYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0i IC0tZW5hYmxlLWNjYWNoZSIKKwkJQ0M9Ii91c3IvYmluL2NjIgorCQlDWFg9Ii91c3IvYmluL2Mr KyIKKwlmaQorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJh LWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIg XAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVM RiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09Q WT0kT0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdXNy L2xpYi9iaW4KKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJz aW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwl2bWtkaXIgJF9qZGtfaG9tZS9s aWIvc2VjdXJpdHkKKwltYWtlLWNhIC1nIC1mIC0tZGVzdGRpciAiJHtQV0R9L2NhIiAtayAiJHtE RVNURElSfS8kX2pka19ob21lL2Jpbi9rZXl0b29sIgorCW12IC4vY2EvZXRjL3BraS90bHMvamF2 YS9jYWNlcnRzICR7REVTVERJUn0vJF9qZGtfaG9tZS9saWIvc2VjdXJpdHkvCisJY2htb2QgLVIg dWdvK3J3IC4vY2EKKwlybSAtcmYgLi9jYQorCXZta2RpciBldGMvcHJvZmlsZS5kCisJY2F0ID4+ JHtERVNURElSfS9ldGMvcHJvZmlsZS5kLzEwX29wZW5qZGsxNy5zaCA8PC1FT0YKKwlleHBvcnQg SkFWQV9IT01FPVwke0pBVkFfSE9NRT0vJF9qZGtfaG9tZX0KKwlFT0YKKwl2bGljZW5zZSBBU1NF TUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CisKK2RvX2NsZWFuKCkgeworCSMg Y2xlYW4gdXAgZ3Rlc3QKKwlybSAtcmYgJHtYQlBTX0JVSUxERElSfS9nb29nbGV0ZXN0LXJlbGVh c2UtKgorfQorCitvcGVuamRrMTctZG9jX3BhY2thZ2UoKSB7CisJbm9zdHJpcD15ZXMKKwlub3Zl cmlmeXJkZXBzPXllcworCW5vc2hsaWJwcm92aWRlcz15ZXMKKwlzaG9ydF9kZXNjKz0iIC0gZG9j dW1lbnRhdGlvbiIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJY2QgJHt3cmtzcmN9CisJCWlmIFsgIiRi dWlsZF9vcHRpb25fZG9jcyIgXTsgdGhlbgorCQkJbG9jYWwgX2RvY2Rpcj11c3Ivc2hhcmUvZG9j L29wZW5qZGskX2phdmFfdmVyCisJCQl2bWtkaXIgJF9kb2NkaXIKKwkJCWNwIC1hIGJ1aWxkL2xp bnV4LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RFU1RESVJ9LyRfZG9jZGlyCisJCWZpCisJCXZtb3Zl ICRfamRrX2hvbWUvbWFuL21hbjEKKwl9Cit9CisKK29wZW5qZGsxNy1zcmNfcGFja2FnZSgpIHsK Kwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9eWVzCisJbm9zaGxpYnByb3ZpZGVzPXllcwor CXNob3J0X2Rlc2MrPSIgLSBzb3VyY2UgY29kZSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg IiRfamRrX2hvbWUvbGliL3NyYy56aXAiCisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVu amRrMTcvdXBkYXRlIGIvc3JjcGtncy9vcGVuamRrMTcvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmFhMTNhMjJmMzU4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9vcGVuamRrMTcvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK3BhdHRlcm49J2pkay1cSzE3 XC5bXGQuK10rJwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --===============1977345356802261895==--