From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Andrew Burgess To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: fix rhbz2467251 - multi piece computed locations and synthetic pointers Date: Sun, 28 Jun 2026 00:02:23 GMT Message-ID: <178260494312.1.13532735939363010268.rpms-gdb-0b14d14bbaae@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 0b14d14bbaae07b5cc3ebd1c8237c3e6e4f5cc9d ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMGIxNGQxNGJiYWFlMDdiNWNjM2ViZDFjODIzN2MzZTZlNGY1 Y2M5ZAogICAgICAgICAgICBBdXRob3IgOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAyNi0wNS0xNlQxNDo1Nzo1NCswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTI0NC8tMSBpbiA1IGZpbGUocykKICAgICAgICAgICAgVVJMICAg IDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy8wYjE0ZDE0YmJhYWUw N2I1Y2MzZWJkMWM4MjM3YzNlNmU0ZjVjYzlkP2JyYW5jaD1nZGItMTcuMi1yZWJhc2UtZjQ0Cgog ICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIGZpeCByaGJ6MjQ2NzI1MSAtIG11bHRpIHBpZWNl IGNvbXB1dGVkIGxvY2F0aW9ucyBhbmQgc3ludGhldGljIHBvaW50ZXJzCgpCYWNrcG9ydCB0aGUg Zm9sbG93aW5nIHVwc3RyZWFtIGNvbW1pdHMgaW4gb3JkZXIgdG8gYWRkcmVzcyBSSEJaCjI0Njcy NTE6IGQ5ODAzMTdjN2YxLCA5NThkMDYyNjJhNywgN2QxZDczODY1NjEsIDg5MTVkZTA4ODNjLAo4 ZjY1YWI3YjcxZi4gIFRoZXNlIGNvbW1pdHMgd2lsbCBhbGwgZHJvcCBvdXQgd2hlbiB3ZSByZWJh c2UgdG8gR0RCCjE4LgoKLS0tCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZSBi L19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4IDFmOWUwNjAuLmJlOWQ5N2MgMTAwNjQ0Ci0t LSBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRl CkBAIC02MiwzICs2Miw5IEBAIFBhdGNoMDEyOiBnZGItcmhiejIzNjY0NjEtYmFkLXNvbGliLWVu dHJ5LWFkZHIucGF0Y2gKICMgKFRvbSBkZSBWcmllcykKIFBhdGNoMDEzOiBnZGItZml4LXRlc3Rz dWl0ZS1uZXdlci10Y2wucGF0Y2gKIAorIyBCYWNrcG9ydCB0aGUgZm9sbG93aW5nIHVwc3RyZWFt IGNvbW1pdHMgaW4gb3JkZXIgdG8gYWRkcmVzcyBSSEJaCisjIDI0NjcyNTE6IGQ5ODAzMTdjN2Yx LCA5NThkMDYyNjJhNywgN2QxZDczODY1NjEsIDg5MTVkZTA4ODNjLAorIyA4ZjY1YWI3YjcxZi4g IFRoZXNlIGNvbW1pdHMgd2lsbCBhbGwgZHJvcCBvdXQgd2hlbiB3ZSByZWJhc2UgdG8gR0RCCisj IDE4LgorUGF0Y2gwMTQ6IGdkYi1yaGJ6MjQ2NzI1MS1jb21wdXRlZC1sb2NhdGlvbi1zeW50aGV0 aWMtcG9pbnRlcnMucGF0Y2gKKwoKZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRl IGIvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKaW5kZXggY2IxMzMzMC4uZTdlOTZlMiAxMDA2NDQK LS0tIGEvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLnBhdGNoLmluY2x1 ZGUKQEAgLTExLDMgKzExLDQgQEAKICVwYXRjaCAtcDEgLVAwMTEKICVwYXRjaCAtcDEgLVAwMTIK ICVwYXRjaCAtcDEgLVAwMTMKKyVwYXRjaCAtcDEgLVAwMTQKCmRpZmYgLS1naXQgYS9fcGF0Y2hf b3JkZXIgYi9fcGF0Y2hfb3JkZXIKaW5kZXggZWI5MzNlNS4uMmM4ODkyYyAxMDA2NDQKLS0tIGEv X3BhdGNoX29yZGVyCisrKyBiL19wYXRjaF9vcmRlcgpAQCAtMTEsMyArMTEsNCBAQCBnZGItZmls ZWlvLXRlc3QtZml4ZXMucGF0Y2gKIGdkYi1yaGJ6MjM2NjQ2MS1taXNzaW5nLXRocmVhZC5wYXRj aAogZ2RiLXJoYnoyMzY2NDYxLWJhZC1zb2xpYi1lbnRyeS1hZGRyLnBhdGNoCiBnZGItZml4LXRl c3RzdWl0ZS1uZXdlci10Y2wucGF0Y2gKK2dkYi1yaGJ6MjQ2NzI1MS1jb21wdXRlZC1sb2NhdGlv bi1zeW50aGV0aWMtcG9pbnRlcnMucGF0Y2gKCmRpZmYgLS1naXQgYS9nZGItcmhiejI0NjcyNTEt Y29tcHV0ZWQtbG9jYXRpb24tc3ludGhldGljLXBvaW50ZXJzLnBhdGNoIGIvZ2RiLXJoYnoyNDY3 MjUxLWNvbXB1dGVkLWxvY2F0aW9uLXN5bnRoZXRpYy1wb2ludGVycy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmMxZTBhCi0tLSAvZGV2L251bGwKKysrIGIvZ2Ri LXJoYnoyNDY3MjUxLWNvbXB1dGVkLWxvY2F0aW9uLXN5bnRoZXRpYy1wb2ludGVycy5wYXRjaApA QCAtMCwwICsxLDEyMjkgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4KK0RhdGU6 IEZyaSwgOCBNYXkgMjAyNiAyMTo0NDoxMiArMDEwMAorU3ViamVjdDogZ2RiLXJoYnoyNDY3MjUx LWNvbXB1dGVkLWxvY2F0aW9uLXN5bnRoZXRpYy1wb2ludGVycy5wYXRjaAorCis7OyBCYWNrcG9y dCB0aGUgZm9sbG93aW5nIHVwc3RyZWFtIGNvbW1pdHMgaW4gb3JkZXIgdG8gYWRkcmVzcyBSSEJa Cis7OyAyNDY3MjUxOiBkOTgwMzE3YzdmMSwgOTU4ZDA2MjYyYTcsIDdkMWQ3Mzg2NTYxLCA4OTE1 ZGUwODgzYywKKzs7IDhmNjVhYjdiNzFmLiAgVGhlc2UgY29tbWl0cyB3aWxsIGFsbCBkcm9wIG91 dCB3aGVuIHdlIHJlYmFzZSB0byBHREIKKzs7IDE4LgorCisqKiogQ29tbWl0IGQ5ODAzMTdjN2Yx OiBnZGI6IGludCB0byBib29sIGNvbnZlcnNpb24gaW4gdmFscHJpbnQue2MsfWgKKworZ2RiOiBp bnQgdG8gYm9vbCBjb252ZXJzaW9uIGluIHZhbHByaW50LntjLGh9CisKK1NvbWUgaW50IHRvIGJv b2wgY29udmVyc2lvbiBpbiB2YWxwcmludC5jIGFuZCB2YWxwcmludC5oLiAgSSBhbHNvCittb3Zl ZCB0aGUgaGVhZGVyIGNvbW1lbnQgb24gdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgaW50byB0aGUg aGVhZGVyLgorCitUaGVyZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIg dGhpcyBjb21taXQuCisKK0FwcHJvdmVkLUJ5OiBUb20gVHJvbWV5IDx0b21AdHJvbWV5LmNvbT4K KworQ29tbWl0IDk1OGQwNjI2MmE3OiBnZGI6IGZpeCBjb2VyY2VfcGllY2VkX3JlZiBmb3IgbXVs dGktcGllY2UgdmFsdWVzCisKK2dkYjogZml4IGNvZXJjZV9waWVjZWRfcmVmIGZvciBtdWx0aS1w aWVjZSB2YWx1ZXMKKworQnVnIFBSIGdkYi8zMDY5MyBkZXNjcmliZXMgYSBjYXNlIHdoZXJlIHRo ZSBmb2xsb3dpbmcgYXNzZXJ0aW9uIGNhbiBiZQordHJpZ2dlcmVkOgorCisgIC4uLy4uL2dkYi9k d2FyZjIvbG9jLmM6MjIxMzogaW50ZXJuYWwtZXJyb3I6IHZhbHVlKiBjb2VyY2VfcGllY2VkX3Jl Zihjb25zdCB2YWx1ZSopOiBBc3NlcnRpb24gYGNsb3N1cmUtPnBpZWNlcy5zaXplICgpID09IDEn IGZhaWxlZC4KKworVGhlIHByb2JsZW0gaXMgdGhhdCBjb2VyY2VfcGllY2VkX3JlZiBtYWtlcyB0 aGUgZm9sbG93aW5nIGNsYWltOgorCisgICAgICAvKiBnZGIgcmVwcmVzZW50cyBzeW50aGV0aWMg cG9pbnRlcnMgYXMgcGllY2VkIHZhbHVlcyB3aXRoIGEgc2luZ2xlCisgICAgICAgIHBpZWNlLiAg Ki8KKyAgICAgIGdkYl9hc3NlcnQgKGNsb3N1cmUgIT0gTlVMTCk7CisgICAgICBnZGJfYXNzZXJ0 IChjbG9zdXJlLT5waWVjZXMuc2l6ZSAoKSA9PSAxKTsKKworQnV0IHRoaXMgaXMgbm90IHJlYWxs eSB0cnVlLiAgSWYgYW4gYWdncmVnYXRlIHR5cGUgY29udGFpbnMgYSBzeW50aGV0aWMKK3BvaW50 ZXIsIHRoZW4gaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgYWdncmVnYXRlIHR5cGUgd2lsbCBoYXZl IGEKK2NvbXB1dGVkIGxvY2F0aW9uIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgcGllY2VzLiAgV2hl biBHREIgcHJpbnRzIHRoZQorZmllbGRzIG9mIHRoYXQgYWdncmVnYXRlIHR5cGUgdGhlc2UgZmll bGRzIGFyZSBleHRyYWN0ZWQgYnkgY2FsbGluZwordmFsdWU6OnByaW1pdGl2ZV9maWVsZC4gIFdp dGhpbiB2YWx1ZTo6cHJpbWl0aXZlX2ZpZWxkIHRoZSBsb2NhdGlvbiBvZgordGhlIGZpZWxkIGlz IHNldCBieSBjYWxsaW5nIHZhbHVlOjpzZXRfY29tcG9uZW50X2xvY2F0aW9uLgorCitXaGVuIHRo ZSBwYXJlbnQgdmFsdWUgdGhhdCBob2xkcyB0aGUgZmllbGQgaGFzIGEgY29tcHV0ZWQgbG9jYXRp b24sIHRoZQorZmllbGQgdmFsdWUgZ2FpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCB2YWx1 ZSdzIGNsb3N1cmUsIHRoaXMgY2FuIGJlCitzZWVuIGluIGNvcHlfcGllY2VkX3ZhbHVlX2Nsb3N1 cmUgaW4gZHdhcmYyL2V4cHIuYy4KKworV2hhdCB0aGlzIG1lYW5zIGlzIHRoYXQsIGlmIHRoZSBh Z2dyZWdhdGUgdmFsdWUgaGFzIGEgbXVsdGktcGllY2UKK2NvbXB1dGVkIGxvY2F0aW9uLCB0aGVu IHRoZSBzeW50aGV0aWMgcG9pbnRlciBmaWVsZCB3aWxsIGFsc28gaGF2ZSBhCityZWZlcmVuY2Ug dG8gdGhhdCBzYW1lIG11bHRpLXBpZWNlIGNvbXB1dGVkIGxvY2F0aW9uLCBldmVuIGlmIHRoZXJl IGlzCityZWFsbHkgb25seSBhIHNpbmdsZSBwaWVjZSB0aGF0IGRlc2NyaWJlcyB0aGUgc3ludGhl dGljIHBvaW50ZXIgaXRzZWxmLgorCitTb21lIHBhcnRzIG9mIEdEQiBhcmUgYWxyZWFkeSBhd2Fy ZSBvZiB0aGlzLiAgSWYgd2UgbG9vayBhdAorY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVy IHdoaWNoIGltcGxlbWVudHMgdGhlCit2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBmdW5j dGlvbiwgeW91J2xsIHNlZSB0aGF0IHRoaXMgZnVuY3Rpb24KK3NlYXJjaGVzIHRocm91Z2ggYWxs IG9mIHRoZSBwaWVjZXMgdG8gZmluZCB0aGUgcGllY2UgdGhhdCBjb3ZlcnMgdGhlCit2YWx1ZSB3 ZSBhcmUgbG9va2luZyBmb3IsIGl0IHRoZW4gY2hlY2tzIGlmIHRoYXQgcGllY2UgaXMgYW4gaW1w bGljaXQKK3BvaW50ZXIgbG9jYXRpb24uICBCdXQgYmFjayBpbiBjb2VyY2VfcGllY2VkX3JlZiwg YWZ0ZXIgY2FsbGluZwordmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIsIHdlIHN0aWxsIG1h a2UgdGhlIGFzc2VydGlvbiB0aGF0IHRoZXJlCit3aWxsIGJlIGp1c3QgYSBzaW5nbGUgcGllY2Uu CisKK0ZpeCB0aGlzIGJ5IGNvcHlpbmcgdGhlIHNlYXJjaCB0aHJvdWdoIGFsbCBwaWVjZXMgbG9n aWMgaW50bworY29lcmNlX3BpZWNlZF9yZWYgKHNlZSBub3RlIG9uIGVmZmljaWVuY3kgYmVsb3cp LiAgV2Ugbm93IHNlYXJjaCB0aHJvdWdoCithbGwgdGhlIHBpZWNlcyBsb29raW5nIGZvciBhIHBp ZWNlIHRoYXQgZGVzY3JpYmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUKK3N5bnRoZXRpYyBwb2ludGVy LCBhbmQgd2UgdGhlbiB1c2UgdGhhdCBwaWVjZSB0byBmb3JtIHRoZSBwb2ludGVyJ3MKK3ZhbHVl LgorCitUaGVyZSBhcmUgc29tZSBhc3NlcnRpb25zIGluIHRoZSBuZXcgY29kZSwgdGhlc2UgYWxp Z24gd2l0aCBob3cKK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciBvcGVyYXRlcy4KKwor SW4gYWRkaXRpb24sIHRoZXJlIGlzIGFuIGVycm9yIGZvciB0aGUgY2FzZSB3aGVyZSBtdWx0aXBs ZSBwaWVjZXMgYXJlCit1c2VkIHRvIGRlc2NyaWJlIHRoZSBsb2NhdGlvbiBvZiBhIHN5bnRoZXRp YyBwb2ludGVyLiAgVGhpcyBjYXNlIGlzCit0ZWNobmljYWxseSBhbGxvd2VkIGJ5IGNoZWNrX3Bp ZWNlZF9zeW50aGV0aWNfcG9pbnRlciwgYnV0IHN1cHBvcnRpbmcKK3RoaXMgd291bGQgcmVxdWly ZSBjaGFuZ2VzIHRvIGluZGlyZWN0X3N5bnRoZXRpY19wb2ludGVyLCBzbyBJIHByb3Bvc2UKK2xl YXZpbmcgdGhhdCB1bnRpbCB3ZSBzZWUgc3VjaCBhIGNhc2UgaW4gdGhlIHdpbGQuCisKK09uIGVm ZmljaWVuY3ksIHlvdSdsbCBub3RpY2UgdGhhdCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50 ZXIKK3BlcmZvcm1zIGEgc2VhcmNoIHRocm91Z2ggYWxsIHRoZSBsb2NhdGlvbiBwaWVjZXMsIGFu ZAorY29lcmNlX3BpZWNlZF9yZWYgYWxzbyBoYXMgdG8gc2VhcmNoIHRocm91Z2ggdGhlIHBpZWNl cy4gIEl0IHdvdWxkIGJlCituaWNlIGlmIHRoaXMgY291bGQgYmUgYXZvaWRlZCBpbiBvcmRlciB0 byBhdm9pZCBtdWx0aXBsZSBzZWFyY2hlcy4KK0N1cnJlbnRseSB0aG91Z2ggY29lcmNlX3BpZWNl ZF9yZWYgY2FsbHMKK3ZhbHVlLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyLCB3aGljaCBpcyBhbiBB UEkgdGhhdCBzaG91bGQgYmUgYWdub3N0aWMKK3RvIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0 aW9uLCBpLmUuIHNob3VsZG4ndCBuZWVkIHRvIGtub3cgdGhhdCB0aGUKK2ltcGxlbWVudGF0aW9u IGlzIGNvbXB1dGVkLCBzbyBwYXNzaW5nIHBpZWNlcyBiYWNrIHdvdWxkIGJlIGhhcmRlci4KKwor TWF5YmUgY29lcmNlX3BpZWNlZF9yZWYgY291bGQgYXZvaWQgdGhlIHZhbHVlOjpiaXRzX3N5bnRo ZXRpY19wb2ludGVyCitjYWxsLCBhbmQgaW5zdGVhZCBjYWxsIGNoZWNrX3BpZWNlZF9zeW50aGV0 aWNfcG9pbnRlciBkaXJlY3RseSwgb3IKK3NvbWUgcmVsYXRlZCBoZWxwZXIgZnVuY3Rpb24sIGFu ZCBjb3VsZCBnZXQgdGhlIHBpZWNlcyBiYWNrIHRoYXQgd2F5LgorQnV0IHRoaXMgYnJlYWtzIHRo ZSBjbGVhbmx5IHN0cnVjdHVyZWQgQVBJIHRoYXQgd2UgY3VycmVudGx5IGhhdmUuCisKK0ZvciBu b3cgSSdtIGxlYXZpbmcgdGhpbmdzIGFzIHRoZXkgYXJlLiAgTXkgYXNzdW1wdGlvbiBpcyB0aGF0 IHRoZQorbnVtYmVyIG9mIHBpZWNlcyB1c2VkIHRvIHJlcHJlc2VudCBhIHZhbHVlIGlzIHByZXR0 eSBsb3csIHNvIHRoZQorc2VhcmNoIGlzIGFjdHVhbGx5IHByZXR0eSBjaGVhcC4KKworVGhlcmUn cyBhIG5ldyB0ZXN0IHRoYXQgdXNlcyB0aGUgRFdBUkYgYXNzZW1ibGVyIHRvIGNyZWF0ZSBhCity ZXByZXNlbnRhdGl2ZSBleGFtcGxlIG9mIGEgbXVsdGktcGllY2UgYWdncmVnYXRlIHRoYXQgY29u dGFpbnMgYQorc3ludGhldGljIHBvaW50ZXIgbWVtYmVyIHZhcmlhYmxlLiAgVGhpcyB0ZXN0IHRy aWdnZXJzIHRoZSBhc3NlcnRpb24KK2JlZm9yZSB0aGlzIGNvbW1pdC4KKworQnVnOiBodHRwczov L3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0zMDY5MworQnVnOiBodHRw czovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTI0NjcyNTEKKworQXBwcm92 ZWQtQnk6IFRvbSBUcm9tZXkgPHRvbUB0cm9tZXkuY29tPgorCitDb21taXQgN2QxZDczODY1NjE6 IGdkYjogcmVuYW1lIGFyZ3VtZW50IGluIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5CisKK2dkYjog cmVuYW1lIGFyZ3VtZW50IGluIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5CisKK1RvIHVuZGVyc3Rh bmQgdGhlIG1vdGl2YXRpb24gZm9yIHRoaXMgY29tbWl0IHlvdSdsbCBuZWVkIHRvIGxvb2sgYWhl YWQKK3R3byBjb21taXRzIGluIHRoaXMgc2VyaWVzIGZvciBhbiB1cGNvbWluZyBidWcgZml4Lgor CitMb29rIGF0IGNvZXJjZV9waWVjZWRfcmVmIGluIGR3YXJmMi9leHByLmMsIGFuZCB0aGlzIGNh bGw6CisKKyAgaWYgKHZhbHVlLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyICh2YWx1ZS0+ZW1iZWRk ZWRfb2Zmc2V0ICgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBUkdF VF9DSEFSX0JJVCAqIHR5cGUtPmxlbmd0aCAoKSkpCisgICAgeyAuLi4gfQorCitUaGlzIHBhc3Nl cyB0aGUgcmVzdWx0IGZyb20gdmFsdWU6OmVtYmVkZGVkX29mZnNldCBhcyB0aGUgZmlyc3QgYXJn dW1lbnQuCitUaG91Z2ggaXQncyBub3QgY2xlYXIgZnJvbSB2YWx1ZS5oLCB0aGUgbnVtYmVyIHJl dHVybmVkIGJ5Cit2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0IGlzIGEgYnl0ZSBvZmZzZXQuCisKK1Ro ZSB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBjYWxsIGNhbiBlbmQgdXAgY2FsbGluZwor Y2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyLCB3aXRoIHRoZSBmaXJzdCBhcmd1bWVudCB0 bwordmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIgYmVjb21pbmcgdGhlIHNlY29uZCBhcmd1 bWVudCB0bworY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyLiAgVGhlIHNlY29uZCBhcmd1 bWVudCB0bworY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyIGlzIGNhbGxlZCBCSVRfT0ZG U0VULCBhIHZhbHVlIGluIGJpdHMuCitMb29raW5nIGF0IGhvdyB0aGlzIGFyZ3VtZW50IGlzIHVz ZWQgY29uZmlybXMgdGhhdCBpdCBpcyBleHBlY3RlZCB0byBiZQorYSB2YWx1ZSBpbiBiaXRzLCBu b3QgYnl0ZXMuCisKK1RoZSBmaXggc2hvdWxkIGJlIGVhc3ksIG11bHRpcGx5IHRoZSBlbWJlZGRl ZCBvZmZzZXQgYnkKK1RBUkdFVF9DSEFSX0JJVCwgYnV0IEkgdGhpbmsgdGhpbmdzIGFyZSBhIGxp dHRsZSBtb3JlIGNvbXBsZXggdGhhbgordGhpcy4KKworSSBzdGFydGVkIGxvb2tpbmcgYXQgaG93 IHZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyIGlzIHVzZWQsIHRoZXJlCithcmUgb25seSA3 IHVzZXMsIGFuZCB0aGV5IGNhbiBiZSBncm91cGVkIGFzIGZvbGxvd3M6CisKK2dkYi9kd2FyZjIv ZXhwci5jCitnZGIvdmFsb3BzLmMKKworICBUaGVzZSBjYWxsIHZhbHVlOjplbWJlZGRlZF9vZmZz ZXQgZGlyZWN0bHkgd2l0aGluIHRoZSBjYWxsIHRvCisgIHZhbHVlOjpiaXRzX3N5bnRoZXRpY19w b2ludGVyLgorCitnZGIvb3BlbmNsLWxhbmcuYworCisgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBh cyBhIHdyYXBwZXIgdGhhdCBpbXBsZW1lbnRzIGEKKyAgbHZhbF9mdW5jczo6Y2hlY2tfc3ludGhl dGljX3BvaW50ZXIgY2FsbGJhY2ssIGl0IGFkanVzdHMgdGhlCisgIGFyZ3VtZW50cyBhbmQgdGhl biBjYWxscyB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlci4gIEFzIHN1Y2ggd2UnZAorICBu b3QgZXhwZWN0IHRvIHNlZSBlbWJlZGRlZCBvZmZzZXQgbWVudGlvbmVkIGhlcmUgYXMgdGhhdCB3 b3VsZCAod2UKKyAgYXNzdW1lKSBiZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCisKK2dkYi92YWxw cmludC5jIChpbiBnZW5lcmljX3ZhbF9wcmludF9yZWYpCisKKyAgVGhpcyBjYWxsIHBhc3NlcyBh biBhcmd1bWVudCBjYWxsZWQgJ2VtYmVkZGVkX29mZnNldCcsIGJ1dCB0aGUKKyAgZnVuY3Rpb24g Z2VuZXJpY192YWxfcHJpbnRfcmVmIGlzIG9ubHkgdXNlZCBpbiBvbmUgcGxhY2UsIGFuZCB0aGUK KyAgZW1iZWRkZWRfb2Zmc2V0IGlzIGFsd2F5cyBwYXNzZWQgYXMgemVyby4KKworZ2RiL3ZhbHBy aW50LmMgKGluIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5KQorCisgIFRoaXMgY2FsbCBhbHNvIHBh c3NlcyBhbiBhcmd1bWVudCBjYWxsZWQgJ2VtYmVkZGVkX29mZnNldCcuICBUaGlzCisgIGZ1bmN0 aW9uIGlzIHVzZWQgaW4gdHdvIHBsYWNlcy4gIEluIGNvbW1vbl92YWxfcHJpbnQgdGhlCisgIGVt YmVkZGVkX29mZnNldCBpcyBhbHdheXMgcGFzc2VkIGFzIHplcm8sIGJ1dCBpbgorICB2YWxwcmlu dF9jaGVja192YWxpZGl0eSAoaW4gY3AtdmFscHJpbnQuYykgdGhlIGVtYmVkZGVkX29mZnNldCBi ZWluZworICBwYXNzZWQgaXMgdGhlIG9mZnNldCBvZiBhIGZpZWxkIHdpdGhpbiB0aGUgdmFsdWUs IG5vdCB0aGUgdmFsdWUncworICBlbWJlZGRlZF9vZmZzZXQgd2l0aGluIHNvbWUgbGFyZ2VyIHZh bHVlLgorCitnZGIvY3AtdmFscHJpbnQuYworZ2RiL3AtdmFscHJpbnQuYworCisgIEFzIHdpdGgg dGhlIGNhbGwgdG8gdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgaW4gY3AtdmFscHJpbnQuYywgdGhl c2UKKyAgdHdvIGRpcmVjdCBjYWxscyB0byB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBw YXNzIHRoZSBvZmZzZXQgb2YgYQorICBmaWVsZCB3aXRoaW4gdGhlIHZhbHVlLCByYXRoZXIgdGhh biB0aGUgdmFsdWUncyBlbWJlZGRlZF9vZmZzZXQuCisKK1doYXQgSSBzZWUgaW4gdGhlIGFib3Zl IGlzIHNvbWUgY29uZnVzaW9uLiAgSW4gc29tZSBwbGFjZXMgd2UgYXJlCitwYXNzaW5nIHRoZSB2 YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0LCB3aGlsZSBpbiBvdGhlciBwbGFjZXMgd2UgYXJlCitwYXNz aW5nIHRoZSBvZmZzZXQgb2YgYSBmaWVsZCB3aXRoaW4gdGhlIHZhbHVlIGl0c2VsZi4KKworSWYg d2UgY29uc2lkZXIgdGhlIGRpcmVjdCBjYWxsIHRvIHZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2lu dGVyIGluCitnZGIvY3AtdmFscHJpbnQuYywgd2hlcmUgYSBmaWVsZCBvZmZzZXQgaXMgcGFzc2Vk LCB0aGVuIGl0IHNob3VsZCBiZQorcG9zc2libGUsIHRoYXQgaWYgd2UgY2FuIGNyZWF0ZSBhbiBv YmplY3Qgd2l0aCBhIG5vbi16ZXJvCitlbWJlZGRlZF9vZmZzZXQgKHdoaWNoIGlzbid0IGFjY291 bnRlZCBmb3IgaW4gdGhpcyBjb2RlIHBhdGgpLCB0aGVuIHdlCitzaG91bGQgc2VlIHNvbWUgYnVn cyBpbiBHREIsIGFuZCBpbmRlZWQsIHRoaXMgaXMgd2hhdCBJIGRvIHNlZS4KKworTXkgcGxhbiBm b3IgZml4aW5nIHRoaXMgaXMgdG8gaGF2ZSB0aGUgb2Zmc2V0IHBhc3NlZCB0bwordmFsdWU6OmJp dHNfc3ludGhldGljX3BvaW50ZXIgYWx3YXlzIGJlIGEgZmllbGQgb2Zmc2V0IHdpdGhpbiB0aGUg dmFsdWUsCit0aGUgdmFsdWU6OmVtYmVkZGVkX29mZnNldCB3aWxsIHRoZW4gYmUgaGFuZGxlZCBk aXJlY3RseSB3aXRoaW4gdGhlCit2YXJpb3VzIHZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVy IGltcGxlbWVudGF0aW9ucy4KKworVGhpcyBjb21taXQgaXMgYSBzbWFsbCByZWZhY3RvciBpbiBw cmVwYXJhdGlvbiBmb3IgdGhpcyBmaXguCisKK0kgYmVsaWV2ZSBwYXJ0IG9mIHRoZSBjb25mdXNp b24gaGVyZSBpcyB0aGF0IHdlIGhhdmUgZnVuY3Rpb25zIHRoYXQKK3Rha2UgYXJndW1lbnRzIGNh bGxlZCBlbWJlZGRlZF9vZmZzZXQsIHdoZW4gdGhlIHZhbHVlIHRoZXkgc2hvdWxkCithY2NlcHQg aXMgbm8gbG9uZ2VyIHRoZSBlbWJlZGRlZCBvZmZzZXQuCisKK1NvIGluIHRoaXMgY29tbWl0IEkg cHJvcG9zZSByZW5hbWluZyB0aGUgZW1iZWRkZWRfb2Zmc2V0IGFyZ3VtZW50IHRvCitmaWVsZF9i eXRlX29mZnNldCBpbiB2YWxwcmludF9jaGVja192YWxpZGl0eS4gIFRoaXMgaXMgcHVyZWx5IGEK K21lY2hhbmljYWwgcmVuYW1lLCB0aGVyZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5n ZXMgYWZ0ZXIgdGhpcworY29tbWl0LgorCitBcHByb3ZlZC1CeTogVG9tIFRyb21leSA8dG9tQHRy b21leS5jb20+CisKK0NvbW1pdCA4OTE1ZGUwODgzYzogZ2RiOiByZW1vdmUgZW1iZWRkZWRfb2Zm c2V0IGFyZ3VtZW50IHRoYXQgaXMgYWx3YXlzIDAKKworZ2RiOiByZW1vdmUgZW1iZWRkZWRfb2Zm c2V0IGFyZ3VtZW50IHRoYXQgaXMgYWx3YXlzIDAKKworRm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBt b3RpdmF0aW9uIGZvciB0aGlzIHBhdGNoIHlvdSBzaG91bGQgcmVhZCB0aGUKK3ByZXZpb3VzIGNv bW1pdC4KKworVGhlIGdvYWwgb2YgdGhpcyBjb21taXQgc3RhcnRlZCBhcyBzaW1pbGFyIHRvIHRo ZSBwcmV2aW91cyBvbmU7IHJlbmFtZQordGhlIGVtYmVkZGVkX29mZnNldCBhcmd1bWVudCB0byBn ZW5lcmljX3ZhbF9wcmludF9yZWYuICBUbyBkbyB0aGlzIEkKK3N0YXJ0ZWQgdHJhY2luZyBiYWNr IHdoaWNoIHZhbHVlcyBhcmUgcGFzc2VkIGludG8gdGhpcyBmdW5jdGlvbiBzbyBJCitjb3VsZCBt YWtlIHN1cmUgdGhlIG5ldyBhcmd1bWVudCBuYW1lIG1hdGNoZWQgdGhlIHVzYWdlLgorCitCdXQg aXQgdHVybnMgb3V0IHRoYXQgdGhlIG9ubHkgdmFsdWUgdGhhdCBpcyBldmVyIHBhc3NlZCB0byB0 aGlzCitmdW5jdGlvbiBpcyB6ZXJvLgorCitJIGJlbGlldmUgdGhhdCwgbGlrZSB0aGUgbGFzdCBj b21taXQsIHRoZSBlbWJlZGRlZF9vZmZzZXQgaXMgYWN0dWFsbHkKK3JlcHJlc2VudGluZyB0aGUg b2Zmc2V0IG9mIGEgZmllbGQgd2l0aGluIGEgdmFsdWUuICBIb3dldmVyLCBpbiBhbGwgb2YKK3Ro ZSB1c2UgY2FzZXMsIHRoZSAiZmllbGQiIGJlaW5nIGFjY2Vzc2VkIGlzIHRoZSBlbnRpcmUgdmFs dWUsIGhlbmNlCit3aHkgd2UgYWx3YXlzIHBhc3MgMCwgd2UgYXJlIGFza2luZyBhYm91dCB0aGUg d2hvbGUgdmFsdWUgc3RhcnRpbmcKK2Zyb20gdGhlIHZlcnkgYmVnaW5uaW5nLgorCitHaXZlbiB0 aGlzLCBJIGNvdWxkbid0IGJyaW5nIG15c2VsZiB0byByZW5hbWUgdGhlIGFyZ3VtZW50LiAgTGV0 J3MganVzdAorcmVtb3ZlIGl0LiAgSXQgdHVybnMgb3V0IHRoYXQgdGhlcmUncyBhIGJ1bmNoIG9m IGZ1bmN0aW9ucyBpbgordmFscHJpbnQuYyB0aGF0IHRha2UgYW4gYXJndW1lbnQgY2FsbGVkIGVt YmVkZGVkX29mZnNldCwgd2hpY2ggYXJlCithbHdheXMgemVyby4KKworVGhpcyBjb21taXQgcmVt b3ZlcyB0aGUgYXJndW1lbnQsIGFuZCB1cGRhdGVzIHRoZSBjb2RlIHRvIGFzc3VtZSB6ZXJvLgor CitUaGVyZSBzaG91bGQgYmUgbm8gdXNlciB2aXNpYmxlIGNoYW5nZXMgYWZ0ZXIgdGhpcyBjb21t aXQuCisKK0FwcHJvdmVkLUJ5OiBUb20gVHJvbWV5IDx0b21AdHJvbWV5LmNvbT4KKworQ29tbWl0 IDhmNjVhYjdiNzFmOiBnZGI6IHVzZSB2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0IGluIGNoZWNrX3Bp ZWNlZF9zeW50aGV0aWNfcG9pbnRlcgorCitnZGI6IHVzZSB2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0 IGluIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlcgorCitUaGlzIGNvbW1pdCBidWlsZHMg b24gdGhlIHByZXZpb3VzIHR3byBjb21taXRzLiAgWW91IHNob3VsZCBnbyBhbmQKK3JlYWQgdGhl bSBib3RoIGZvciBjb250ZXh0LgorCitMb29raW5nIGF0IHRoZSB1c2VycyBvZiB2YWx1ZTo6Yml0 c19zeW50aGV0aWNfcG9pbnRlciwgYWxsIGNhbGxlcnMgYnV0Cit0d28gYXJlIG5vdyBwYXNzaW5n IGVpdGhlciB0aGUgb2Zmc2V0IG9mIGEgZmllbGQgd2l0aGluIHRoZSB2YWx1ZSwgb3IKK2hhcmQt Y29kZWQgemVybyBhcyB0aGV5IHdhbnQgdG8gYXNrIGFib3V0IHRoZSBlbnRpcmUgdmFsdWUuCisK K1RoZSB0d28gZXhjZXB0aW9ucyBhcmUgaW4gY29lcmNlX3BpZWNlZF9yZWYgKGluIGR3YXJmMi9l eHByLmMpIGFuZCBpbgordmFsdWVfYWRkciAoaW4gdmFsb3BzLmMpIHdoZXJlIHdlIHN0aWxsIHBh c3MgdmFsdWU6OmVtYmVkZGVkX29mZnNldC4KKworVGhlIHByb2JsZW0gaXMgdGhhdCBzb21lIG9m IHRoZSBvdGhlciBjYWxsZXJzLCB3aGVyZSB3ZSBjdXJyZW50bHkgcGFzcworanVzdCBhIGZpZWxk IG9mZnNldCwgbWlnaHQgYWxzbyBoYXZlIGEgbm9uLXplcm8gZW1iZWRkZWQgb2Zmc2V0LAorc3Bl Y2lmaWNhbGx5LCB0aGUgY2FsbCBpbiBjcF9wcmludF92YWx1ZV9maWVsZHMgaXMgaW4gdGhpcyBj YXRlZ29yeS4KK0luIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyB3ZSBhcmUgcHJpbnRpbmcgZmllbGRz IGZyb20gYSB2YWx1ZSB3aGljaCBpcworcG90ZW50aWFsbHkgYSBiYXNlIGNsYXNzIGNvbnRhaW5l ZCB3aXRoaW4gYW4gaW5zdGFuY2Ugb2YgYSBkZXJpdmVkCitjbGFzcywgdGhpcyB3aWxsIGJlIHJl cHJlc2VudGVkIGJ5IGEgbm9uLXplcm8gZW1iZWRkZWRfb2Zmc2V0LCB3aGljaAoraXMgY3VycmVu dGx5IG5vdCB0YWtlbiBpbnRvIGFjY291bnQuCisKK0FkZGl0aW9uYWxseSwgdGhlIHR3byBjYWxs ZXJzIHRoYXQgY3VycmVudGx5IHBhc3MgdGhlCit2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0IGRvbid0 IHNjYWxlIHRoZSBlbWJlZGRlZCBvZmZzZXQgZnJvbSBieXRlcyB0bworYml0cy4KKworVGhlIGZh aWx1cmUgdG8gc2NhbGUgZnJvbSBieXRlcyB0byBiaXRzIGlzIGludGVyZXN0aW5nLCBJIG9yaWdp bmFsbHkKK3RyaWVkIHRvIGNyZWF0ZSBzb21lIHRlc3RzIHRoYXQgZXhwb3NlZCB0aGlzLCBidXQg Y29uc3RhbnRseSBmYWlsZWQuCitJdCB0dXJucyBvdXQsIHRoYXQgaW4gYm90aCB0aGVzZSBsb2Nh dGlvbnMsIGluIGFsbCBjb2RlIHBhdGhzIHRoYXQgSQorY291bGQgZmluZCwgdGhlIHZhbHVlOjpl bWJlZGRlZF9vZmZzZXQgd2lsbCBhbHdheXMgYmUgemVyby4gIEZvcgorZXhhbXBsZSBpbiBjb2Vy Y2VfcGllY2VkX3JlZiwgYSByZWZlcmVuY2UgY2Fubm90IGJlIGEgYmFzZSBjbGFzcywgYW5kCitz byB3ZSBuZXZlciBleHBlY3QgdG8gc2VlIGEgbm9uLXplcm8gZW1iZWRkZWRfb2Zmc2V0IGluIHRo aXMgY2FzZS4KKworU2ltaWxhcmx5LCBpbiB2YWx1ZV9hZGRyLCB0aGUgdXNlIG9mIHZhbHVlOjpi aXRzX3N5bnRoZXRpY19wb2ludGVyIGlzCit3aXRoaW4gYSBibG9jayB0aGF0IG9ubHkgYXBwbGll cyB0byByZWZlcmVuY2UgdHlwZXMsIHdoaWNoIG1lYW5zIHRoZQorZW1iZWRkZWRfb2Zmc2V0IHdp bGwgYmUgemVyby4KKworTm93IHdpdGhpbiBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIg d2UgYWxyZWFkeSBhZGQgdGhlCit2YWx1ZTo6b2Zmc2V0IGludG8gdGhlIGJpdF9vZmZzZXQgd2hp Y2ggaXMgcGFzc2VkIGluLiAgUmVtZW1iZXIsIGFmdGVyCit0aGUgcHJldmlvdXMgdHdvIGNvbW1p dHMsIHRoZSBpbmNvbWluZyBiaXRfb2Zmc2V0IGlzIChhbG1vc3QpIGFsd2F5cwordGhlIG9mZnNl dCBvZiBhIGZpZWxkIHdpdGhpbiB0aGUgdmFsdWUuICBUaGUgYWxtb3N0IGhlcmUgaXMgdGhlIHR3 bworY2FzZXMgbWVudGlvbmVkIGFib3ZlLgorCitJIHByb3Bvc2UgdGhhdCB3aXRoaW4gY2hlY2tf cGllY2VkX3N5bnRoZXRpY19wb2ludGVyIHdlIHNob3VsZCB0YWtlCitpbnRvIGFjY291bnQgYm90 aCB2YWx1ZTo6b2Zmc2V0IGFuZCB2YWx1ZTo6ZW1iZWRkZWRfb2Zmc2V0LiAgVGhlbiB0aGUKK3R3 byBjYXNlcyB0aGF0IGN1cnJlbnRseSBwYXNzIHZhbHVlOjplbWJlZGRlZF9vZmZzZXQgY2FuIGJl IGNoYW5nZWQgdG8KK2p1c3QgcGFzcyB6ZXJvLgorCitXaXRoIHRoaXMgZG9uZSwgYW5kIHRoZSBw cmV2aW91cyB0d28gY29tbWl0cywgd2Ugbm93IGhhdmUgYSBjb25zaXN0ZW50Cittb2RlbC4gIHZh bHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyIGV4cGVjdHMgdGhlIChiaXQpIG9mZnNldCBvZiBh CitmaWVsZCB3aXRoaW4gdGhlIHZhbHVlIHRvIGNoZWNrLiAgSW4gbWFueSBjYXNlcyB0aGlzIHdp bGwgYmUgemVybworbWVhbmluZyB3ZSB3YW50IHRvIGNoZWNrIGZyb20gdGhlIHN0YXJ0IG9mIHRo ZSB2YWx1ZSwgYnV0IGluIHNvbWUKK2Nhc2VzIGl0IGNhbiBiZSBub24temVyby4KKworVGhlbiB3 aXRoaW4gdmFsdWU6OmJpdHNfc3ludGhldGljX3BvaW50ZXIgaW1wbGVtZW50YXRpb25zLCBsaWtl CitjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIsIHdlIHdpbGwgdGFrZSB0aGUgdmFsdWU6 Om9mZnNldCBhbmQKK3ZhbHVlOjplbWJlZGRlZF9vZmZzZXQgaW50byBhY2NvdW50LCByZW1lbWJl cmluZyB0byBzY2FsZSB0aGVtIGZyb20KK2J5dGVzIHRvIGJpdHMuCisKK0kgaGF2ZSBhbHNvIGNo YW5nZWQgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIHRvIGFsc28gdGFrZSB0aGUKK2VtYmVkZGVkX29m ZnNldCBpbnRvIGFjY291bnQuICBJIGhhdmUgZG9uZSB0aGlzIGZvciBjb25zaXN0ZW5jeSByYXRo ZXIKK3RoYW4gbmVjZXNzaXR5LiAgSSBiZWxpZXZlIHRoYXQgdGhlIGVtYmVkZGVkX29mZnNldCB3 aWxsIGFsd2F5cyBiZQoremVybyB3aXRoaW4gaW5kaXJlY3RfcGllY2VkX3ZhbHVlLiAgVGhlIGlu ZGlyZWN0X3BpZWNlZF92YWx1ZSBmdW5jdGlvbgoraXMgb25seSBjYWxsZWQgZnJvbSB2YWx1ZV9p bmQgKGluIHZhbG9wcy5jKSwgYW5kIG9ubHkgb3BlcmF0ZXMgb24KK1RZUEVfQ09ERV9QVFIgdHlw ZXMgKGNoZWNrZWQgZm9yIGluIGluZGlyZWN0X3BpZWNlZF92YWx1ZSkuICBBcyBhCitUWVBFX0NP REVfUFRSIGNhbm5vdCBiZSB0aGUgYmFzZSBjbGFzcyBmb3IgYSBkZXJpdmVkIHR5cGUsIHRoZW4g d2UKK2Rvbid0IGV4cGVjdCB0byBldmVyIHNlZSBhIFRZUEVfQ09ERV9QVFIgdmFsdWUgd2l0aCBh IG5vbi16ZXJvCitlbWJlZGRlZF9vZmZzZXQuICBCdXQsIGhhdmluZyBpbmRpcmVjdF9waWVjZWRf dmFsdWUgdGFrZSB0aGUgZW1iZWRkZWQKK29mZnNldCBpbnRvIGFjY291bnQgaXMgc2ltcGxlIGVu b3VnaCwgYW5kIGZ1dHVyZSBwcm9vZnMgdGhlIGNvZGUuCisKK0luIGJvdGggY2hlY2tfcGllY2Vk X3N5bnRoZXRpY19wb2ludGVyIGFuZCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgSQoraGF2ZSBjaGFu Z2VkIHVzZXMgb2YgJzgnIHRvICdUQVJHRVRfQ0hBUl9CSVQnLCBJIHdhcyBhbHJlYWR5IHRvdWNo aW5nCitzb21lIG9mIHRoZXNlIGxpbmVzLCBhbmQgSSB0aGluayBUQVJHRVRfQ0hBUl9CSVQgaXMg Y2xlYXJlciwgYnV0IG9uZQorbGluZSBpbiBpbmRpcmVjdF9waWVjZWRfdmFsdWUgd2FzIGp1c3Qg dXBkYXRlZCB0byB1c2UgVEFSR0VUX0NIQVJfQklULAordGhpcyBpcyBkb25lIGZvciBjb25zaXN0 ZW5jeS4KKworVGhlIGdkYi5kd2FyZjIvbXVsdGktcGllY2UtaW5oZXJpdGVkLWJpdGZpZWxkLmV4 cCB0ZXN0IGZhaWxzIHdpdGhvdXQKK3RoaXMgcGF0Y2gsIHRoaXMgZXhwb3NlcyB0aGUgY2FzZSB3 aGVyZSB0aGUgZW1iZWRkZWRfb2Zmc2V0IGlzCitub24temVybyBhbmQgd2Ugd2VyZSBwcmV2aW91 c2x5IGZhaWxpbmcgdG8gdGFrZSB0aGlzIGludG8gYWNjb3VudC4KKworVGhlIGdkYi5kd2FyZjIv bXVsdGktcGllY2UtcHJpbWl0aXZlLWZpZWxkLmV4cCB0ZXN0IHdhcyBzb21ldGhpbmcgSQord3Jv dGUgd2hpbGUgdHJ5aW5nIHRvIGV4ZXJjaXNlIHRoZSBjb2VyY2VfcGllY2VkX3JlZiBjb2RlIHBh dGggc29tZQorbW9yZS4gIEl0IGlzIGFuIGluaGVyaXRhbmNlIGJhc2VkIHZlcnNpb24gb2YgdGhl IGV4aXN0aW5nIHRlc3QsIEkgd2FzCit3b25kZXJpbmcgaWYgdGhpcyB3b3VsZCByZXN1bHQgaW4g YSB2YWx1ZSB3aXRoIGEgbm9uLXplcm8KK2VtYmVkZGVkX29mZnNldCwgYnV0IGR1ZSB0byBob3cg dGhlIGZpZWxkcyBhcmUgZXh0cmFjdGVkIGZyb20gdGhlCithZ2dyZWdhdGUgcHJpb3IgdG8gY2Fs bGluZyBjb2VyY2VfcGllY2VkX3JlZiB0aGUgZW1iZWRkZWRfb2Zmc2V0IGlzCithbHdheXMgemVy byBpbiB0aGlzIGZ1bmN0aW9uLgorCitBcHByb3ZlZC1CeTogVG9tIFRyb21leSA8dG9tQHRyb21l eS5jb20+CisKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYyL2V4cHIuYyBiL2dkYi9kd2FyZjIvZXhw ci5jCistLS0gYS9nZGIvZHdhcmYyL2V4cHIuYworKysrIGIvZ2RiL2R3YXJmMi9leHByLmMKK0BA IC00OTIsNyArNDkyLDggQEAgY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCB2 YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKKyAgIHBpZWNlX2Nsb3N1cmUgKmMgPSAo cGllY2VfY2xvc3VyZSAqKSB2YWx1ZS0+Y29tcHV0ZWRfY2xvc3VyZSAoKTsKKyAgIGludCBpOwor IAorLSAgYml0X29mZnNldCArPSA4ICogdmFsdWUtPm9mZnNldCAoKTsKKysgIGJpdF9vZmZzZXQg Kz0gKFRBUkdFVF9DSEFSX0JJVAorKwkJICogKHZhbHVlLT5vZmZzZXQgKCkgKyB2YWx1ZS0+ZW1i ZWRkZWRfb2Zmc2V0ICgpKSk7CisgICBpZiAodmFsdWUtPmJpdHNpemUgKCkpCisgICAgIGJpdF9v ZmZzZXQgKz0gdmFsdWUtPmJpdHBvcyAoKTsKKyAKK0BAIC01MzcsOCArNTM4LDkgQEAgaW5kaXJl Y3RfcGllY2VkX3ZhbHVlICh2YWx1ZSAqdmFsdWUpCisgICBpZiAodHlwZS0+Y29kZSAoKSAhPSBU WVBFX0NPREVfUFRSKQorICAgICByZXR1cm4gTlVMTDsKKyAKKy0gIGludCBiaXRfbGVuZ3RoID0g OCAqIHR5cGUtPmxlbmd0aCAoKTsKKy0gIExPTkdFU1QgYml0X29mZnNldCA9IDggKiB2YWx1ZS0+ b2Zmc2V0ICgpOworKyAgaW50IGJpdF9sZW5ndGggPSBUQVJHRVRfQ0hBUl9CSVQgKiB0eXBlLT5s ZW5ndGggKCk7CisrICBMT05HRVNUIGJpdF9vZmZzZXQKKysgICAgPSAoVEFSR0VUX0NIQVJfQklU ICogKHZhbHVlLT5vZmZzZXQgKCkgKyB2YWx1ZS0+ZW1iZWRkZWRfb2Zmc2V0ICgpKSk7CisgICBp ZiAodmFsdWUtPmJpdHNpemUgKCkpCisgICAgIGJpdF9vZmZzZXQgKz0gdmFsdWUtPmJpdHBvcyAo KTsKKyAKK0BAIC02MDIsMjIgKzYwNCw2MiBAQCBjb2VyY2VfcGllY2VkX3JlZiAoY29uc3QgdmFs dWUgKnZhbHVlKQorIHsKKyAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFs dWUtPnR5cGUgKCkpOworIAorLSAgaWYgKHZhbHVlLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyICh2 YWx1ZS0+ZW1iZWRkZWRfb2Zmc2V0ICgpLAorLQkJCQkgICAgIFRBUkdFVF9DSEFSX0JJVCAqIHR5 cGUtPmxlbmd0aCAoKSkpCisrICBpZiAodmFsdWUtPmJpdHNfc3ludGhldGljX3BvaW50ZXIgKDAs IFRBUkdFVF9DSEFSX0JJVCAqIHR5cGUtPmxlbmd0aCAoKSkpCisgICAgIHsKKyAgICAgICBjb25z dCBwaWVjZV9jbG9zdXJlICpjbG9zdXJlCisgCT0gKHBpZWNlX2Nsb3N1cmUgKikgdmFsdWUtPmNv bXB1dGVkX2Nsb3N1cmUgKCk7CisgICAgICAgZnJhbWVfaW5mb19wdHIgZnJhbWUKKyAJPSBnZXRf c2VsZWN0ZWRfZnJhbWUgKF8oIk5vIGZyYW1lIHNlbGVjdGVkLiIpKTsKKyAKKy0gICAgICAvKiBn ZGIgcmVwcmVzZW50cyBzeW50aGV0aWMgcG9pbnRlcnMgYXMgcGllY2VkIHZhbHVlcyB3aXRoIGEg c2luZ2xlCistCSBwaWVjZS4gICovCistICAgICAgZ2RiX2Fzc2VydCAoY2xvc3VyZSAhPSBOVUxM KTsKKy0gICAgICBnZGJfYXNzZXJ0IChjbG9zdXJlLT5waWVjZXMuc2l6ZSAoKSA9PSAxKTsKKysg ICAgICBnZGJfYXNzZXJ0IChjbG9zdXJlICE9IG51bGxwdHIpOworKworKyAgICAgIC8qIFRoZSB2 YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciB3aWxsIHJldHVybiB0cnVlIGlmIG11bHRpcGxl CisrCSBwaWVjZXMgYXJlIHVzZWQgdG8gY292ZXIgVkFMVUUsIHNvIGxvbmcgYXMgZWFjaCBwaWVj ZSBpcworKwkgRFdBUkZfVkFMVUVfSU1QTElDSVRfUE9JTlRFUi4gIEkgZ3Vlc3MgbWF5YmUgdGhp cyBpcyBwb3NzaWJsZSwgYnV0CisrCSB3ZSd2ZSBub3Qgc2VlbiBzdWNoIGEgY2FzZSBpbiB0aGUg d2lsZCB5ZXQuICBGb3Igbm93IHRoZW4gd2UgbG9vaworKwkgaW4gQ0xPU1VSRSBmb3IgYSBzaW5n bGUgRFdBUkZfVkFMVUVfSU1QTElDSVRfUE9JTlRFUiBwaWVjZSB0aGF0CisrCSBjb3ZlcnMgVkFM VUUuICAqLworKyAgICAgIExPTkdFU1QgYml0X29mZnNldCA9IFRBUkdFVF9DSEFSX0JJVCAqICh2 YWx1ZS0+ZW1iZWRkZWRfb2Zmc2V0ICgpCisrCQkJCQkgICAgICArIHZhbHVlLT5vZmZzZXQgKCkp OworKyAgICAgIGlmICh2YWx1ZS0+Yml0c2l6ZSAoKSkKKysJYml0X29mZnNldCArPSB2YWx1ZS0+ Yml0cG9zICgpOworKyAgICAgIGludCBiaXRfbGVuZ3RoID0gVEFSR0VUX0NIQVJfQklUICogdHlw ZS0+bGVuZ3RoICgpOworKworKyAgICAgIGNvbnN0IGR3YXJmX2V4cHJfcGllY2UgKnBpZWNlID0g bnVsbHB0cjsKKysgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNsb3N1cmUtPnBpZWNlcy5z aXplICgpOyBpKyspCisrCXsKKysJICBjb25zdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmNsb3N1 cmUtPnBpZWNlc1tpXTsKKysJICBzaXplX3QgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplOworKwor KwkgIGlmIChiaXRfb2Zmc2V0ID49IHRoaXNfc2l6ZV9iaXRzKQorKwkgICAgeworKwkgICAgICBi aXRfb2Zmc2V0IC09IHRoaXNfc2l6ZV9iaXRzOworKwkgICAgICBjb250aW51ZTsKKysJICAgIH0K KysKKysJICAvKiB2YWx1ZTo6Yml0c19zeW50aGV0aWNfcG9pbnRlciBkb2VzIGFsbG93IGZvciBt dWx0aXBsZQorKwkgICAgIHBpZWNlcyB0byBkZXNjcmliZSB0aGUgbG9jYXRpb24gb2YgYSBzaW5n bGUgc3ludGhldGljCisrCSAgICAgcG9pbnRlciwgb3IgZm9yIGEgc3ludGhldGljIHBvaW50ZXIg dG8gbm90IHN0YXJ0IGF0IHRoZQorKwkgICAgIGV4YWN0IHN0YXJ0IG9mIGEgcGllY2UsIGhvd2V2 ZXIsIHdlIGRvbid0IGN1cnJlbnRseQorKwkgICAgIHN1cHBvcnQgdGhpcyBjYXNlLiAgKi8KKysJ ICBpZiAoYml0X29mZnNldCAhPSAwIHx8IGJpdF9sZW5ndGggIT0gdGhpc19zaXplX2JpdHMpCisr CSAgICBlcnJvciAoXygidW5zdXBwb3J0ZWQgdmFsdWUtcGllY2UgY29uZmlndXJhdGlvbiAiCisr CQkgICAgICJiaXRfb2Zmc2V0ID0gJXMsIGJpdF9sZW5ndGggPSAlZCwgdGhpc19zaXplX2JpdHMg PSAlcyIpLAorKwkJICAgcGxvbmdlc3QgKGJpdF9vZmZzZXQpLCBiaXRfbGVuZ3RoLAorKwkJICAg cHVsb25nZXN0ICh0aGlzX3NpemVfYml0cykpOworKworKwkgIHBpZWNlID0gcDsKKysJICBicmVh azsKKysJfQorKworKyAgICAgIC8qIElmIHZhbHVlOjpiaXRzX3N5bnRoZXRpY19wb2ludGVyIHJl dHVybmVkIHRydWUgdGhlbiB3ZSBzaG91bGQgaGF2ZQorKwkgZm91bmQgYSBzdWl0YWJsZSBwaWVj ZS4gICovCisrICAgICAgZ2RiX2Fzc2VydCAocGllY2UgIT0gbnVsbHB0cik7CisrICAgICAgZ2Ri X2Fzc2VydCAocGllY2UtPmxvY2F0aW9uID09IERXQVJGX1ZBTFVFX0lNUExJQ0lUX1BPSU5URVIp OworIAorICAgICAgIHJldHVybiBpbmRpcmVjdF9zeW50aGV0aWNfcG9pbnRlcgorLQkoY2xvc3Vy ZS0+cGllY2VzWzBdLnYucHRyLmRpZV9zZWN0X29mZiwKKy0JIGNsb3N1cmUtPnBpZWNlc1swXS52 LnB0ci5vZmZzZXQsCisrCShwaWVjZS0+di5wdHIuZGllX3NlY3Rfb2ZmLAorKwkgcGllY2UtPnYu cHRyLm9mZnNldCwKKyAJIGNsb3N1cmUtPnBlcl9jdSwgY2xvc3VyZS0+cGVyX29iamZpbGUsIGZy YW1lLCB0eXBlKTsKKyAgICAgfQorICAgZWxzZQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9tdWx0aS1waWVjZS1pbmhlcml0ZWQtYml0ZmllbGQuYyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVjZS1pbmhlcml0ZWQtYml0ZmllbGQuYworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJm Mi9tdWx0aS1waWVjZS1pbmhlcml0ZWQtYml0ZmllbGQuYworQEAgLTAsMCArMSwyNSBAQAorKy8q IENvcHlyaWdodCAoQykgMjAyNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworKworK2ludCB0YXJnZXRfdmFyID0gNDI7CisrCisraW50CisrbWFp biAodm9pZCkKKyt7CisrICBhc20gKCJtYWluX2xhYmVsOiAuZ2xvYmwgbWFpbl9sYWJlbCIpOwor KyAgcmV0dXJuIDA7CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9t dWx0aS1waWVjZS1pbmhlcml0ZWQtYml0ZmllbGQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL211bHRpLXBpZWNlLWluaGVyaXRlZC1iaXRmaWVsZC5leHAKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbXVsdGkt cGllY2UtaW5oZXJpdGVkLWJpdGZpZWxkLmV4cAorQEAgLTAsMCArMSwxNTEgQEAKKysjIENvcHly aWdodCAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBTZXR1cCBhIGRlcml2ZWQgc3RydWN0IHRoYXQgdXNl cyBtdWx0aXBsZSBpbmhlcml0YW5jZSBhbmQgaXMgZGVzY3JpYmVkCisrIyBieSBhIG11bHRpLXBp ZWNlIERXQVJGIGxvY2F0aW9uLiAgVGhlIHNlY29uZCBiYXNlIGNsYXNzIGNvbnRhaW5zIGEKKysj IGJpdGZpZWxkIG1lbWJlci4gIEF0IG9uZSB0aW1lLCBwcmludGluZyBzdWNoIGEgc3RydWN0IHdv dWxkIGluY29ycmVjdGx5CisrIyBkaXNwbGF5IHRoZSBiaXRmaWVsZCBhcyA8c3ludGhldGljIHBv aW50ZXI+LgorKyMKKysjIFRoZSBjYXVzZSB3YXMgdGhhdCBjaGVja19waWVjZWRfc3ludGhldGlj X3BvaW50ZXIgKGR3YXJmMi9leHByLmMpCisrIyBjb21wdXRlcyB0aGUgYml0IG9mZnNldCBhcyA4 ICogdmFsdWUtPm9mZnNldCgpIGJ1dCBkb2VzIG5vdCBhZGQKKysjIDggKiB2YWx1ZS0+ZW1iZWRk ZWRfb2Zmc2V0KCkuICBXaGVuIGEgYmFzZSBzdWJvYmplY3QgaXMgZXh0cmFjdGVkIHZpYQorKyMg cHJpbWl0aXZlX2ZpZWxkLCBpdCBnZXRzIGEgbm9uLXplcm8gZW1iZWRkZWRfb2Zmc2V0IGJ1dCBv ZmZzZXQgcmVtYWlucworKyMgemVyby4gIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciB0 aGVuIGNoZWNrcyBwaWVjZSAwIGluc3RlYWQgb2YKKysjIHRoZSBjb3JyZWN0IHBpZWNlLCBhbmQg aWYgcGllY2UgMCBoYXBwZW5zIHRvIGJlIGFuIGltcGxpY2l0IHBvaW50ZXIsCisrIyBpdCBpbmNv cnJlY3RseSByZXBvcnRzIHRoZSBiaXRmaWVsZCBhcyBhIHN5bnRoZXRpYyBwb2ludGVyLgorKwor K3JlcXVpcmUgYWxsb3dfY3BsdXNfdGVzdHMKKysKKytsb2FkX2xpYiBkd2FyZi5leHAKKysKKysj IFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERXQVJG LTIgYW5kIHVzZSBnYXMuCisrcmVxdWlyZSBkd2FyZjJfc3VwcG9ydAorKworK3N0YW5kYXJkX3Rl c3RmaWxlIC5jIC5TCisrCisrc2V0IGFzbV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Ny Y2ZpbGUyfV0KKysKKysjIEZpcnN0IGNvbXBpbGUgdGhlIEMgZmlsZSBvbmx5LCBzbyB3ZSBjYW4g cXVlcnkgc29tZSB0eXBlIHNpemVzLgorK2lmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVk IHRvIHByZXBhcmUiICR7dGVzdGZpbGV9ICR7c3JjZmlsZX1dfSB7CisrICAgIHJldHVybgorK30K KysKKytEd2FyZjo6YXNzZW1ibGUgJHthc21fZmlsZX0geworKyAgICBjdSB7fSB7CisrCURXX1RB R19jb21waWxlX3VuaXQgeworKwkgICAge0RXX0FUX2xhbmd1YWdlIEBEV19MQU5HX0NfcGx1c19w bHVzfQorKwl9IHsKKysJICAgIGRlY2xhcmVfbGFiZWxzIGNoYXJfbGFiZWwgaW50X2xhYmVsIGZp cnN0X2xhYmVsIHNlY29uZF9sYWJlbCBcCisrCQlkZXJpdmVkX2xhYmVsIHRhcmdldF9sYWJlbAor KwkgICAgc2V0IGludF9zaXplIFtnZXRfc2l6ZW9mICJpbnQiIC0xXQorKworKwkgICAgY2hhcl9s YWJlbDogRFdfVEFHX2Jhc2VfdHlwZSB7CisrCQl7RFdfQVRfYnl0ZV9zaXplIDEgRFdfRk9STV91 ZGF0YX0KKysJCXtEV19BVF9lbmNvZGluZyBARFdfQVRFX3Vuc2lnbmVkX2NoYXJ9CisrCQl7RFdf QVRfbmFtZSAiY2hhciJ9CisrCSAgICB9CisrCisrCSAgICBpbnRfbGFiZWw6IERXX1RBR19iYXNl X3R5cGUgeworKwkJe0RXX0FUX2J5dGVfc2l6ZSAke2ludF9zaXplfSBEV19GT1JNX3VkYXRhfQor KwkJe0RXX0FUX2VuY29kaW5nIEBEV19BVEVfc2lnbmVkfQorKwkJe0RXX0FUX25hbWUgImludCJ9 CisrCSAgICB9CisrCisrCSAgICBmaXJzdF9sYWJlbDogRFdfVEFHX3N0cnVjdHVyZV90eXBlIHsK KysJCXtEV19BVF9uYW1lICJGaXJzdCJ9CisrCQl7RFdfQVRfYnl0ZV9zaXplIDEgRFdfRk9STV91 ZGF0YX0KKysJICAgIH0geworKwkJRFdfVEFHX21lbWJlciB7CisrCQkgICAge0RXX0FUX25hbWUg ImEifQorKwkJICAgIHtEV19BVF90eXBlIDoke2NoYXJfbGFiZWx9fQorKwkJICAgIHtEV19BVF9k YXRhX21lbWJlcl9sb2NhdGlvbiAwIERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCSAgICB9CisrCisr CSAgICBzZWNvbmRfbGFiZWw6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSB7CisrCQl7RFdfQVRfbmFt ZSAiU2Vjb25kIn0KKysJCXtEV19BVF9ieXRlX3NpemUgMSBEV19GT1JNX3VkYXRhfQorKwkgICAg fSB7CisrCQlEV19UQUdfbWVtYmVyIHsKKysJCSAgICB7RFdfQVRfbmFtZSAiYmYifQorKwkJICAg IHtEV19BVF90eXBlIDoke2ludF9sYWJlbH19CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVyX2xv Y2F0aW9uIDAgRFdfRk9STV91ZGF0YX0KKysJCSAgICB7RFdfQVRfYml0X3NpemUgOCBEV19GT1JN X3VkYXRhfQorKwkJfQorKwkgICAgfQorKworKwkgICAgZGVyaXZlZF9sYWJlbDogRFdfVEFHX3N0 cnVjdHVyZV90eXBlIHsKKysJCXtEV19BVF9uYW1lICJEZXJpdmVkIn0KKysJCXtEV19BVF9ieXRl X3NpemUgMiBEV19GT1JNX3VkYXRhfQorKwkgICAgfSB7CisrCQlEV19UQUdfaW5oZXJpdGFuY2Ug eworKwkJICAgIHtEV19BVF90eXBlIDoke2ZpcnN0X2xhYmVsfX0KKysJCSAgICB7RFdfQVRfZGF0 YV9tZW1iZXJfbG9jYXRpb24gMCBEV19GT1JNX3VkYXRhfQorKwkJfQorKworKwkJRFdfVEFHX2lu aGVyaXRhbmNlIHsKKysJCSAgICB7RFdfQVRfdHlwZSA6JHtzZWNvbmRfbGFiZWx9fQorKwkJICAg IHtEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiAxIERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCSAg ICB9CisrCisrCSAgICB0YXJnZXRfbGFiZWw6IERXX1RBR192YXJpYWJsZSB7CisrCQl7RFdfQVRf bmFtZSAidGFyZ2V0X3ZhciJ9CisrCQl7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQorKwkJe0RX X0FUX2V4dGVybmFsIDEgRFdfRk9STV9mbGFnfQorKwkJe0RXX0FUX2xvY2F0aW9uIHsKKysJCSAg ICBEV19PUF9hZGRyIFtnZGJfdGFyZ2V0X3N5bWJvbCAidGFyZ2V0X3ZhciJdCisrCQl9IFNQRUNJ QUxfZXhwcn0KKysJICAgIH0KKysKKysJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKysJCXtNQUNS T19BVF9mdW5jIHsgIm1haW4iIH19CisrCQl7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQorKwkJ e0RXX0FUX2V4dGVybmFsIDEgRFdfRk9STV9mbGFnfQorKwkgICAgfSB7CisrCQlEV19UQUdfdmFy aWFibGUgeworKwkJICAgIHtEV19BVF9uYW1lICJkIn0KKysJCSAgICB7RFdfQVRfdHlwZSA6JHtk ZXJpdmVkX2xhYmVsfX0KKysJCSAgICB7RFdfQVRfbG9jYXRpb24geworKwkJCURXX09QX0dOVV9p bXBsaWNpdF9wb2ludGVyICR0YXJnZXRfbGFiZWwgMAorKwkJCURXX09QX3BpZWNlIDEKKysJCQlE V19PUF9jb25zdDF1IDQyCisrCQkJRFdfT1Bfc3RhY2tfdmFsdWUKKysJCQlEV19PUF9waWVjZSAx CisrCQkgICAgfSBTUEVDSUFMX2V4cHJ9CisrCQl9CisrCSAgICB9CisrCX0KKysgICAgfQorK30K KysKKysjIE5vdyBjb21waWxlIGJvdGggQyBzb3VyY2UgYW5kIGdlbmVyYXRlZCBEV0FSRiBhc3Nl bWJseS4KKytpZiB7W3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBwcmVwYXJlIiAke3Rl c3RmaWxlfSBcCisrCSBbbGlzdCAke2FzbV9maWxlfSAke3NyY2ZpbGV9XSB7fV19IHsKKysgICAg cmV0dXJuCisrfQorKworKyMgU3RhcnQgdGhlIGluZmVyaW9yIHNvIHRoYXQgJ2QnIGlzIGluIHNj b3BlLgorK2lmIHshW3J1bnRvX21haW5dfSB7CisrICAgIHJldHVybgorK30KKysKKysjIFdpdGgg dGhlIGJ1ZyBpbiBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIsIHRoZSBiaXRmaWVsZCBi ZiBpbiB0aGUKKysjIFNlY29uZCBiYXNlIHN1Ym9iamVjdCBpcyBpbmNvcnJlY3RseSByZXBvcnRl ZCBhcyA8c3ludGhldGljIHBvaW50ZXI+LgorKyMgVGhpcyBoYXBwZW5zIGJlY2F1c2UgY2hlY2tf cGllY2VkX3N5bnRoZXRpY19wb2ludGVyIGRvZXMgbm90IGFjY291bnQgZm9yCisrIyBlbWJlZGRl ZF9vZmZzZXQsIHNvIGl0IGNoZWNrcyBwaWVjZSAwICh0aGUgaW1wbGljaXQgcG9pbnRlciBjb3Zl cmluZworKyMgRmlyc3QpIGluc3RlYWQgb2YgcGllY2UgMSAodGhlIHN0YWNrIHZhbHVlIGNvdmVy aW5nIFNlY29uZCkuCisrZ2RiX3Rlc3QgInByaW50IGQiICIgPSB7PEZpcnN0PiA9IHthID0gPHN5 bnRoZXRpYyBwb2ludGVyPn0sIDxTZWNvbmQ+ID0ge2JmID0gNDJ9LCA8Tm8gZGF0YSBmaWVsZHM+ fSIgXAorKyAgICAiYml0ZmllbGQgaW4gYmFzZSBzdWJvYmplY3QgaXMgbm90IHN5bnRoZXRpYyBw b2ludGVyIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVj ZS1wcmltaXRpdmUtZmllbGQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVj ZS1wcmltaXRpdmUtZmllbGQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwK KysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVjZS1wcmltaXRpdmUtZmll bGQuYworQEAgLTAsMCArMSwyNSBAQAorKy8qIENvcHlyaWdodCAoQykgMjAyNiBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCisr CisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworK2ludCB0YXJn ZXRfdmFyID0gNDI7CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBhc20gKCJtYWluX2xh YmVsOiAuZ2xvYmwgbWFpbl9sYWJlbCIpOworKyAgcmV0dXJuIDA7CisrfQorZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9tdWx0aS1waWVjZS1wcmltaXRpdmUtZmllbGQuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL211bHRpLXBpZWNlLXByaW1pdGl2ZS1maWVsZC5l eHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvbXVsdGktcGllY2UtcHJpbWl0aXZlLWZpZWxkLmV4cAorQEAgLTAsMCAr MSwxOTAgQEAKKysjIENvcHlyaWdodCAyMDI2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrIyBTZXR1cCBhIHN0cnVj dCB2YXJpYWJsZSB0aGF0IGlzIGRlc2NyaWJlZCBieSBhIG11bHRpLXBpZWNlIERXQVJGIGxvY2F0 aW9uLgorKyMgT25lIG9mIHRoZSBzdHJ1Y3QncyBmaWVsZHMgaXMgYSBDKysgcmVmZXJlbmNlIHR5 cGUgaW1wbGVtZW50ZWQgdmlhCisrIyBEV19PUF9HTlVfaW1wbGljaXRfcG9pbnRlci4gIEF0IG9u ZSB0aW1lLCBhdHRlbXB0aW5nIHRvIHByaW50IHN1Y2ggYSBmaWVsZAorKyMgd291bGQgdHJpZ2dl ciBhbiBhc3NlcnRpb24gaW4gR0RCLgorKyMKKysjIFRoZSBjYXVzZSB3YXMgdGhhdCBwcmltaXRp dmVfZmllbGQgZXh0cmFjdHMgdGhlIHJlZmVyZW5jZSBmaWVsZCBhbmQKKysjIHNldF9jb21wb25l bnRfbG9jYXRpb24gY29waWVzIHRoZSBwYXJlbnQncyBlbnRpcmUgcGllY2VfY2xvc3VyZSAoanVz dAorKyMgaW5jcmVtZW50aW5nIGl0cyByZWZjb3VudCkuICBUaGVuIGNvZXJjZV9waWVjZWRfcmVm IHdvdWxkIGFzc2VydAorKyMgY2xvc3VyZS0+cGllY2VzLnNpemUoKSA9PSAxLCB3aGljaCBmYWls ZWQgYmVjYXVzZSB0aGUgY2xvc3VyZSBzdGlsbCBoYWQKKysjIGFsbCB0aGUgcGFyZW50J3MgcGll Y2VzLgorKyMKKysjIFRoaXMgdGVzdCBjb25maXJtcyB0aGF0IHRoaXMgaXNzdWUgaGFzIG5vdyBi ZWVuIGZpeGVkLgorKworK3JlcXVpcmUgYWxsb3dfY3BsdXNfdGVzdHMKKysKKytsb2FkX2xpYiBk d2FyZi5leHAKKysKKysjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGlj aCBzdXBwb3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCisrcmVxdWlyZSBkd2FyZjJfc3VwcG9ydAor KworK3N0YW5kYXJkX3Rlc3RmaWxlIC5jIC5TCisrCisrc2V0IGFzbV9maWxlIFtzdGFuZGFyZF9v dXRwdXRfZmlsZSAke3NyY2ZpbGUyfV0KKysKKysjIEZpcnN0IGNvbXBpbGUgdGhlIEMgZmlsZSBv bmx5LCBzbyB3ZSBjYW4gcXVlcnkgc29tZSB0eXBlIHNpemVzLgorK2lmIHtbcHJlcGFyZV9mb3Jf dGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR7dGVzdGZpbGV9ICR7c3JjZmlsZX1dfSB7Cisr ICAgIHJldHVybgorK30KKysKKytEd2FyZjo6YXNzZW1ibGUgJHthc21fZmlsZX0geworKyAgICBj dSB7fSB7CisrCURXX1RBR19jb21waWxlX3VuaXQgeworKwkgICAge0RXX0FUX2xhbmd1YWdlIEBE V19MQU5HX0NfcGx1c19wbHVzfQorKwl9IHsKKysJICAgIGRlY2xhcmVfbGFiZWxzIGludF9sYWJl bCBzdHJ1Y3RfbGFiZWwgcmVmX3R5cGVfbGFiZWwgdGFyZ2V0X2xhYmVsIFwKKysJCWZpcnN0X2xh YmVsIHNlY29uZF9sYWJlbCBkZXJpdmVkX2xhYmVsCisrCSAgICBzZXQgaW50X3NpemUgW2dldF9z aXplb2YgImludCIgLTFdCisrCSAgICBzZXQgYWRkcl9zaXplIFtnZXRfc2l6ZW9mICJ2b2lkICoi IC0xXQorKwkgICAgc2V0IHN0cnVjdF9zaXplIFtleHByIHskaW50X3NpemUgKyAkYWRkcl9zaXpl fV0KKysKKysJICAgIGludF9sYWJlbDogRFdfVEFHX2Jhc2VfdHlwZSB7CisrCQl7RFdfQVRfYnl0 ZV9zaXplICR7aW50X3NpemV9IERXX0ZPUk1fdWRhdGF9CisrCQl7RFdfQVRfZW5jb2RpbmcgQERX X0FURV9zaWduZWR9CisrCQl7RFdfQVRfbmFtZSAiaW50In0KKysJICAgIH0KKysKKysJICAgIHJl Zl90eXBlX2xhYmVsOiBEV19UQUdfcmVmZXJlbmNlX3R5cGUgeworKwkJe0RXX0FUX2J5dGVfc2l6 ZSAke2FkZHJfc2l6ZX0gRFdfRk9STV91ZGF0YX0KKysJCXtEV19BVF90eXBlIDoke2ludF9sYWJl bH19CisrCSAgICB9CisrCisrCSAgICBzdHJ1Y3RfbGFiZWw6IERXX1RBR19zdHJ1Y3R1cmVfdHlw ZSB7CisrCQl7RFdfQVRfbmFtZSAiUyJ9CisrCQl7RFdfQVRfYnl0ZV9zaXplICR7c3RydWN0X3Np emV9IERXX0ZPUk1fdWRhdGF9CisrCSAgICB9IHsKKysJCURXX1RBR19tZW1iZXIgeworKwkJICAg IHtEV19BVF9uYW1lICJ4In0KKysJCSAgICB7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQorKwkJ ICAgIHtEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiAwIERXX0ZPUk1fdWRhdGF9CisrCQl9Cisr CisrCQlEV19UQUdfbWVtYmVyIHsKKysJCSAgICB7RFdfQVRfbmFtZSAicmVmIn0KKysJCSAgICB7 RFdfQVRfdHlwZSA6JHtyZWZfdHlwZV9sYWJlbH19CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVy X2xvY2F0aW9uICR7aW50X3NpemV9IERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCSAgICB9CisrCisr CSAgICBmaXJzdF9sYWJlbDogRFdfVEFHX3N0cnVjdHVyZV90eXBlIHsKKysJCXtEV19BVF9uYW1l ICJmaXJzdCJ9CisrCQl7RFdfQVRfYnl0ZV9zaXplICR7aW50X3NpemV9IERXX0ZPUk1fdWRhdGF9 CisrCSAgICB9IHsKKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9uYW1lICJ4In0K KysJCSAgICB7RFdfQVRfdHlwZSA6JHtpbnRfbGFiZWx9fQorKwkJICAgIHtEV19BVF9kYXRhX21l bWJlcl9sb2NhdGlvbiAwIERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCSAgICB9CisrCisrCSAgICBz ZWNvbmRfbGFiZWw6IERXX1RBR19zdHJ1Y3R1cmVfdHlwZSB7CisrCQl7RFdfQVRfbmFtZSAic2Vj b25kIn0KKysJCXtEV19BVF9ieXRlX3NpemUgJHthZGRyX3NpemV9IERXX0ZPUk1fdWRhdGF9Cisr CSAgICB9IHsKKysJCURXX1RBR19tZW1iZXIgeworKwkJICAgIHtEV19BVF9uYW1lICJyZWYifQor KwkJICAgIHtEV19BVF90eXBlIDoke3JlZl90eXBlX2xhYmVsfX0KKysJCSAgICB7RFdfQVRfZGF0 YV9tZW1iZXJfbG9jYXRpb24gMCBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkgICAgfQorKworKwkg ICAgZGVyaXZlZF9sYWJlbDogRFdfVEFHX3N0cnVjdHVyZV90eXBlIHsKKysJCXtEV19BVF9uYW1l ICJkZXJpdmVkIn0KKysJCXtEV19BVF9ieXRlX3NpemUgJHtzdHJ1Y3Rfc2l6ZX0gRFdfRk9STV91 ZGF0YX0KKysJICAgIH0geworKwkJRFdfVEFHX2luaGVyaXRhbmNlIHsKKysJCSAgICB7RFdfQVRf dHlwZSA6JHtmaXJzdF9sYWJlbH19CisrCQkgICAge0RXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9u IDAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysKKysJCURXX1RBR19pbmhlcml0YW5jZSB7CisrCQkg ICAge0RXX0FUX3R5cGUgOiR7c2Vjb25kX2xhYmVsfX0KKysJCSAgICB7RFdfQVRfZGF0YV9tZW1i ZXJfbG9jYXRpb24gJHtpbnRfc2l6ZX0gRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysK KysJICAgIHRhcmdldF9sYWJlbDogRFdfVEFHX3ZhcmlhYmxlIHsKKysJCXtEV19BVF9uYW1lICJ0 YXJnZXRfdmFyIn0KKysJCXtEV19BVF90eXBlIDoke2ludF9sYWJlbH19CisrCQl7RFdfQVRfZXh0 ZXJuYWwgMSBEV19GT1JNX2ZsYWd9CisrCQl7RFdfQVRfbG9jYXRpb24geworKwkJICAgIERXX09Q X2FkZHIgW2dkYl90YXJnZXRfc3ltYm9sICJ0YXJnZXRfdmFyIl0KKysJCX0gU1BFQ0lBTF9leHBy fQorKwkgICAgfQorKworKwkgICAgRFdfVEFHX3N1YnByb2dyYW0geworKwkJe01BQ1JPX0FUX2Z1 bmMgeyAibWFpbiIgfX0KKysJCXtEV19BVF90eXBlIDoke2ludF9sYWJlbH19CisrCQl7RFdfQVRf ZXh0ZXJuYWwgMSBEV19GT1JNX2ZsYWd9CisrCSAgICB9IHsKKysJCURXX1RBR192YXJpYWJsZSB7 CisrCQkgICAge0RXX0FUX25hbWUgInMifQorKwkJICAgIHtEV19BVF90eXBlIDoke3N0cnVjdF9s YWJlbH19CisrCQkgICAge0RXX0FUX2xvY2F0aW9uIHsKKysJCQlEV19PUF9jb25zdDR1IDEyMwor KwkJCURXX09QX3N0YWNrX3ZhbHVlCisrCQkJRFdfT1BfcGllY2UgJGludF9zaXplCisrCQkJRFdf T1BfR05VX2ltcGxpY2l0X3BvaW50ZXIgJHRhcmdldF9sYWJlbCAwCisrCQkJRFdfT1BfcGllY2Ug JGFkZHJfc2l6ZQorKwkJICAgIH0gU1BFQ0lBTF9leHByfQorKwkJfQorKworKwkJRFdfVEFHX3Zh cmlhYmxlIHsKKysJCSAgICB7RFdfQVRfbmFtZSAiZCJ9CisrCQkgICAge0RXX0FUX3R5cGUgOiR7 ZGVyaXZlZF9sYWJlbH19CisrCQkgICAge0RXX0FUX2xvY2F0aW9uIHsKKysJCQlEV19PUF9jb25z dDR1IDQ1NgorKwkJCURXX09QX3N0YWNrX3ZhbHVlCisrCQkJRFdfT1BfcGllY2UgJGludF9zaXpl CisrCQkJRFdfT1BfR05VX2ltcGxpY2l0X3BvaW50ZXIgJHRhcmdldF9sYWJlbCAwCisrCQkJRFdf T1BfcGllY2UgJGFkZHJfc2l6ZQorKwkJICAgIH0gU1BFQ0lBTF9leHByfQorKwkJfQorKwkgICAg fQorKwl9CisrICAgIH0KKyt9CisrCisrIyBOb3cgY29tcGlsZSBib3RoIEMgc291cmNlIGFuZCBn ZW5lcmF0ZWQgRFdBUkYgYXNzZW1ibHkuCisraWYge1twcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWls ZWQgdG8gcHJlcGFyZSIgJHt0ZXN0ZmlsZX0gXAorKwkgW2xpc3QgJHthc21fZmlsZX0gJHtzcmNm aWxlfV0ge31dfSB7CisrICAgIHJldHVybgorK30KKysKKysjIFN0YXJ0IHRoZSBpbmZlcmlvciBz byB0aGF0ICdzJyBpcyBpbiBzY29wZS4KKytpZiB7IVtydW50b19tYWluXX0geworKyAgICByZXR1 cm4KKyt9CisrCisrIyBQcmludGluZyBgc2AgdXNlZCB0byBjcmFzaCB3aXRoIGFuIGFzc2VydGlv biBmYWlsdXJlIGluIGNvZXJjZV9waWVjZWRfcmVmCisrIyBiZWNhdXNlIHRoZSByZWYgZmllbGQg aW5oZXJpdGVkIHRoZSBwYXJlbnQgc3RydWN0J3MgbXVsdGktcGllY2UgY2xvc3VyZS4KKytnZGJf dGVzdCAicHJpbnQgcyIgIiA9IHt4ID0gMTIzLCByZWYgPSBAJGhleH0iIFwKKysgICAgInByaW50 IG11bHRpLXBpZWNlIHN0cnVjdCB3aXRoIGltcGxpY2l0IHBvaW50ZXIgcmVmZXJlbmNlIGZpZWxk IgorKworK2dkYl90ZXN0ICJwcmludCBzLnJlZiIgIiA9IFxcKGludCAmXFwpIEAkaGV4OiA0MiIg XAorKyAgICAicHJpbnQgcmVmIG1lbWJlciBvZiBtdWx0aS1waWVjZSBzdHJ1Y3QiCisrCisrIyBT YW1lIHRlc3QgYnV0IHdpdGggaW5oZXJpdGFuY2UuICBUaGUgcmVmZXJlbmNlIGZpZWxkIGlzIGlu IHRoZQorKyMgc2Vjb25kIGJhc2UgY2xhc3MsIHNvIGl0IHJlYWNoZXMgY29lcmNlX3BpZWNlZF9y ZWYgdGhyb3VnaCBhCisrIyBkaWZmZXJlbnQgcGF0aCB0byB0aGUgYWJvdmUgY2FzZS4KKytnZGJf dGVzdCAicHJpbnQgZCIgXAorKyAgICAiID0gezxmaXJzdD4gPSB7eCA9IDQ1Nn0sIDxzZWNvbmQ+ ID0ge3JlZiA9IEAkaGV4fSwgPE5vIGRhdGEgZmllbGRzPn0iIFwKKysgICAgInByaW50IGluaGVy aXRlZCBtdWx0aS1waWVjZSBzdHJ1Y3Qgd2l0aCBpbXBsaWNpdCBwb2ludGVyIHJlZiIKKysKKytn ZGJfdGVzdCAicHJpbnQgZC5yZWYiICIgPSBcXChpbnQgJlxcKSBAJGhleDogNDIiIFwKKysgICAg InByaW50IHJlZiBtZW1iZXIgb2YgaW5oZXJpdGVkIG11bHRpLXBpZWNlIHN0cnVjdCIKK2RpZmYg LS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKKy0tLSBhL2dkYi92YWxvcHMuYwor KysrIGIvZ2RiL3ZhbG9wcy5jCitAQCAtMTU0NSw4ICsxNTQ1LDcgQEAgdmFsdWVfYWRkciAoc3Ry dWN0IHZhbHVlICphcmcxKQorIAorICAgaWYgKFRZUEVfSVNfUkVGRVJFTkNFICh0eXBlKSkKKyAg ICAgeworLSAgICAgIGlmIChhcmcxLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyIChhcmcxLT5lbWJl ZGRlZF9vZmZzZXQgKCksCistCQkJCQlUQVJHRVRfQ0hBUl9CSVQgKiB0eXBlLT5sZW5ndGggKCkp KQorKyAgICAgIGlmIChhcmcxLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyICgwLCBUQVJHRVRfQ0hB Ul9CSVQgKiB0eXBlLT5sZW5ndGggKCkpKQorIAlhcmcxID0gY29lcmNlX3JlZiAoYXJnMSk7Cisg ICAgICAgZWxzZQorIAl7CitkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHByaW50LmMgYi9nZGIvdmFscHJp bnQuYworLS0tIGEvZ2RiL3ZhbHByaW50LmMKKysrKyBiL2dkYi92YWxwcmludC5jCitAQCAtOTIs NyArOTIsNiBAQCBzdGF0aWMgdm9pZCBzZXRfb3V0cHV0X3JhZGl4XzEgKGludCwgdW5zaWduZWQp OworIAorIHN0YXRpYyB2b2lkIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBl ICp0eXBlLAorIAkJCQkgICAgICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKKy0JCQkJ ICAgICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKTsKKyAKKyAvKiBTdGFydCBwcmludF9tYXggYXQgdGhpcyB2YWx1ZS4gICovCitAQCAt MzEwLDExICszMDksOSBAQCBzaG93X3N5bWJvbF9wcmludCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUs IGludCBmcm9tX3R0eSwKKyAKKyAMCisgCistLyogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIHZhbF9w cmludC4gIFdoZW4gcHJpbnRpbmcgaW4gInN1bW1hcnkiIG1vZGUsCistICAgd2Ugd2FudCB0byBw cmludCBzY2FsYXIgYXJndW1lbnRzLCBidXQgbm90IGFnZ3JlZ2F0ZSBhcmd1bWVudHMuCistICAg VGhpcyBmdW5jdGlvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gdGhlIHR3by4gICovCisrLyogU2Vl IHZhbHByaW50LmguICAqLworIAorLWludAorK2Jvb2wKKyB2YWxfcHJpbnRfc2NhbGFyX3R5cGVf cCAoc3RydWN0IHR5cGUgKnR5cGUpCisgeworICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUp OworQEAgLTMzMCw5ICszMjcsOSBAQCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5 cGUgKnR5cGUpCisgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgorICAgICBjYXNlIFRZUEVfQ09E RV9TRVQ6CisgICAgIGNhc2UgVFlQRV9DT0RFX1NUUklORzoKKy0gICAgICByZXR1cm4gMDsKKysg ICAgICByZXR1cm4gZmFsc2U7CisgICAgIGRlZmF1bHQ6CistICAgICAgcmV0dXJuIDE7CisrICAg ICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyB9CisgCitAQCAtMzUwLDEwICszNDcsMTAgQEAgdmFs X3ByaW50X3NjYWxhcl9vcl9zdHJpbmdfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAKKyAv KiBTZWUgdmFscHJpbnQuaC4gICovCisgCistaW50CisrYm9vbAorIHZhbHByaW50X2NoZWNrX3Zh bGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwK Ky0JCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJIExPTkdFU1QgZmllbGRfYnl0ZV9v ZmZzZXQsCisgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQorIHsKKyAgIHR5cGUgPSBjaGVj a190eXBlZGVmICh0eXBlKTsKK0BAIC0zNjEsMzEgKzM1OCwzMSBAQCB2YWxwcmludF9jaGVja192 YWxpZGl0eSAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAgIGlmICh0eXBlX25vdF9hc3NvY2lh dGVkICh0eXBlKSkKKyAgICAgeworICAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3Ry ZWFtKTsKKy0gICAgICByZXR1cm4gMDsKKysgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAK KyAgIGlmICh0eXBlX25vdF9hbGxvY2F0ZWQgKHR5cGUpKQorICAgICB7CisgICAgICAgdmFsX3By aW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7CistICAgICAgcmV0dXJuIDA7CisrICAgICAgcmV0 dXJuIGZhbHNlOworICAgICB9CisgCisgICBpZiAodHlwZS0+Y29kZSAoKSAhPSBUWVBFX0NPREVf VU5JT04KKyAgICAgICAmJiB0eXBlLT5jb2RlICgpICE9IFRZUEVfQ09ERV9TVFJVQ1QKKyAgICAg ICAmJiB0eXBlLT5jb2RlICgpICE9IFRZUEVfQ09ERV9BUlJBWSkKKyAgICAgeworLSAgICAgIGlm ICh2YWwtPmJpdHNfYW55X29wdGltaXplZF9vdXQgKFRBUkdFVF9DSEFSX0JJVCAqIGVtYmVkZGVk X29mZnNldCwKKysgICAgICBpZiAodmFsLT5iaXRzX2FueV9vcHRpbWl6ZWRfb3V0IChUQVJHRVRf Q0hBUl9CSVQgKiBmaWVsZF9ieXRlX29mZnNldCwKKyAJCQkJICAgICAgIFRBUkdFVF9DSEFSX0JJ VCAqIHR5cGUtPmxlbmd0aCAoKSkpCisgCXsKKyAJICB2YWxfcHJpbnRfb3B0aW1pemVkX291dCAo dmFsLCBzdHJlYW0pOworLQkgIHJldHVybiAwOworKwkgIHJldHVybiBmYWxzZTsKKyAJfQorIAor LSAgICAgIGlmICh2YWwtPmJpdHNfc3ludGhldGljX3BvaW50ZXIgKFRBUkdFVF9DSEFSX0JJVCAq IGVtYmVkZGVkX29mZnNldCwKKysgICAgICBpZiAodmFsLT5iaXRzX3N5bnRoZXRpY19wb2ludGVy IChUQVJHRVRfQ0hBUl9CSVQgKiBmaWVsZF9ieXRlX29mZnNldCwKKyAJCQkJICAgICAgIFRBUkdF VF9DSEFSX0JJVCAqIHR5cGUtPmxlbmd0aCAoKSkpCisgCXsKKy0JICBjb25zdCBpbnQgaXNfcmVm ID0gdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfUkVGOworLQkgIGludCByZWZfaXNfYWRkcmVz c2FibGUgPSAwOworKwkgIGNvbnN0IGJvb2wgaXNfcmVmID0gdHlwZS0+Y29kZSAoKSA9PSBUWVBF X0NPREVfUkVGOworKwkgIGJvb2wgcmVmX2lzX2FkZHJlc3NhYmxlID0gZmFsc2U7CisgCisgCSAg aWYgKGlzX3JlZikKKyAJICAgIHsKK0BAIC00MDMsMTQgKzQwMCwxNCBAQCB2YWxwcmludF9jaGVj a192YWxpZGl0eSAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAJICByZXR1cm4gaXNfcmVmOwor IAl9CisgCistICAgICAgaWYgKCF2YWwtPmJ5dGVzX2F2YWlsYWJsZSAoZW1iZWRkZWRfb2Zmc2V0 LCB0eXBlLT5sZW5ndGggKCkpKQorKyAgICAgIGlmICghdmFsLT5ieXRlc19hdmFpbGFibGUgKGZp ZWxkX2J5dGVfb2Zmc2V0LCB0eXBlLT5sZW5ndGggKCkpKQorIAl7CisgCSAgdmFsX3ByaW50X3Vu YXZhaWxhYmxlIChzdHJlYW0pOworLQkgIHJldHVybiAwOworKwkgIHJldHVybiBmYWxzZTsKKyAJ fQorICAgICB9CisgCistICByZXR1cm4gMTsKKysgIHJldHVybiB0cnVlOworIH0KKyAKKyB2b2lk CitAQCAtNTk1LDE0ICs1OTIsMTMgQEAgZ2VuZXJpY192YWx1ZV9wcmludF9wdHIgKHN0cnVjdCB2 YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorIAorIHN0YXRpYyB2b2lkCisgcHJp bnRfcmVmX2FkZHJlc3MgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqYWRkcmVz c19idWZmZXIsCistCQkgIGludCBlbWJlZGRlZF9vZmZzZXQsIHN0cnVjdCB1aV9maWxlICpzdHJl YW0pCisrCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorIHsKKyAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoID0gdHlwZS0+YXJjaCAoKTsKKyAKKyAgIGlmIChhZGRyZXNzX2J1ZmZlciAhPSBO VUxMKQorICAgICB7CistICAgICAgQ09SRV9BRERSIGFkZHJlc3MKKy0JPSBleHRyYWN0X3R5cGVk X2FkZHJlc3MgKGFkZHJlc3NfYnVmZmVyICsgZW1iZWRkZWRfb2Zmc2V0LCB0eXBlKTsKKysgICAg ICBDT1JFX0FERFIgYWRkcmVzcyA9IGV4dHJhY3RfdHlwZWRfYWRkcmVzcyAoYWRkcmVzc19idWZm ZXIsIHR5cGUpOworIAorICAgICAgIGdkYl9wcmludGYgKHN0cmVhbSwgIkAiKTsKKyAgICAgICBn ZGJfcHV0cyAocGFkZHJlc3MgKGdkYmFyY2gsIGFkZHJlc3MpLCBzdHJlYW0pOworQEAgLTYzMSwz MiArNjI3LDI3IEBAIGdldF92YWx1ZV9hZGRyX2NvbnRlbnRzIChzdHJ1Y3QgdmFsdWUgKmRlcmVm X3ZhbCkKKyAKKyBzdGF0aWMgdm9pZAorIGdlbmVyaWNfdmFsX3ByaW50X3JlZiAoc3RydWN0IHR5 cGUgKnR5cGUsCistCQkgICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCisrCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCisgCQkgICAgICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKKyAJ CSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7Cisg ICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUtPnRhcmdldF90eXBl ICgpKTsKKyAgIHN0cnVjdCB2YWx1ZSAqZGVyZWZfdmFsID0gTlVMTDsKKyAgIGNvbnN0IGJvb2wg dmFsdWVfaXNfc3ludGhldGljCistICAgID0gb3JpZ2luYWxfdmFsdWUtPmJpdHNfc3ludGhldGlj X3BvaW50ZXIgKFRBUkdFVF9DSEFSX0JJVCAqIGVtYmVkZGVkX29mZnNldCwKKy0JCQkJCSAgICAg IFRBUkdFVF9DSEFSX0JJVCAqIHR5cGUtPmxlbmd0aCAoKSk7CistICBjb25zdCBpbnQgbXVzdF9j b2VyY2VfcmVmID0gKChvcHRpb25zLT5hZGRyZXNzcHJpbnQgJiYgdmFsdWVfaXNfc3ludGhldGlj KQorLQkJCSAgICAgICB8fCBvcHRpb25zLT5kZXJlZl9yZWYpOworLSAgY29uc3QgaW50IHR5cGVf aXNfZGVmaW5lZCA9IGVsdHR5cGUtPmNvZGUgKCkgIT0gVFlQRV9DT0RFX1VOREVGOworKyAgICA9 IG9yaWdpbmFsX3ZhbHVlLT5iaXRzX3N5bnRoZXRpY19wb2ludGVyICgwLCAoVEFSR0VUX0NIQVJf QklUCisrCQkJCQkJICAqIHR5cGUtPmxlbmd0aCAoKSkpOworKyAgY29uc3QgYm9vbCBtdXN0X2Nv ZXJjZV9yZWYgPSAoKG9wdGlvbnMtPmFkZHJlc3NwcmludCAmJiB2YWx1ZV9pc19zeW50aGV0aWMp CisrCQkJCXx8IG9wdGlvbnMtPmRlcmVmX3JlZik7CisrICBjb25zdCBib29sIHR5cGVfaXNfZGVm aW5lZCA9IGVsdHR5cGUtPmNvZGUgKCkgIT0gVFlQRV9DT0RFX1VOREVGOworICAgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIgPSBvcmlnaW5hbF92YWx1ZS0+Y29udGVudHNfZm9yX3ByaW50aW5nICgp LmRhdGEgKCk7CisgCisgICBpZiAobXVzdF9jb2VyY2VfcmVmICYmIHR5cGVfaXNfZGVmaW5lZCkK KyAgICAgeworICAgICAgIGRlcmVmX3ZhbCA9IGNvZXJjZV9yZWZfaWZfY29tcHV0ZWQgKG9yaWdp bmFsX3ZhbHVlKTsKKyAKKy0gICAgICBpZiAoZGVyZWZfdmFsICE9IE5VTEwpCistCXsKKy0JICAv KiBNb3JlIGNvbXBsaWNhdGVkIGNvbXB1dGVkIHJlZmVyZW5jZXMgYXJlIG5vdCBzdXBwb3J0ZWQu ICAqLworLQkgIGdkYl9hc3NlcnQgKGVtYmVkZGVkX29mZnNldCA9PSAwKTsKKy0JfQorLSAgICAg IGVsc2UKKysgICAgICBpZiAoZGVyZWZfdmFsID09IG51bGxwdHIpCisgCWRlcmVmX3ZhbCA9IHZh bHVlX2F0ICh0eXBlLT50YXJnZXRfdHlwZSAoKSwKKy0JCQkgICAgICB1bnBhY2tfcG9pbnRlciAo dHlwZSwgdmFsYWRkciArIGVtYmVkZGVkX29mZnNldCkpOworKwkJCSAgICAgIHVucGFja19wb2lu dGVyICh0eXBlLCB2YWxhZGRyKSk7CisgICAgIH0KKyAgIC8qIEVsc2UsIG9yaWdpbmFsX3ZhbHVl IGlzbid0IGEgc3ludGhldGljIHJlZmVyZW5jZSBvciB3ZSBkb24ndCBoYXZlIHRvIHByaW50Cisg ICAgICB0aGUgcmVmZXJlbmNlJ3MgY29udGVudHMuCitAQCAtNjc2LDcgKzY2Nyw3IEBAIGdlbmVy aWNfdmFsX3ByaW50X3JlZiAoc3RydWN0IHR5cGUgKnR5cGUsCisgCQkJCSA/IGdldF92YWx1ZV9h ZGRyX2NvbnRlbnRzIChkZXJlZl92YWwpCisgCQkJCSA6IHZhbGFkZHIpOworIAorLSAgICAgIHBy aW50X3JlZl9hZGRyZXNzICh0eXBlLCBhZGRyZXNzLCBlbWJlZGRlZF9vZmZzZXQsIHN0cmVhbSk7 CisrICAgICAgcHJpbnRfcmVmX2FkZHJlc3MgKHR5cGUsIGFkZHJlc3MsIHN0cmVhbSk7CisgCisg ICAgICAgaWYgKG9wdGlvbnMtPmRlcmVmX3JlZikKKyAJZ2RiX3B1dHMgKCI6ICIsIHN0cmVhbSk7 CitAQCAtNzE4LDcgKzcwOSw3IEBAIGdlbmVyaWNfdmFsX3ByaW50X2VudW1fMSAoc3RydWN0IHR5 cGUgKnR5cGUsIExPTkdFU1QgdmFsLAorICAgICB9CisgICBlbHNlIGlmICh0eXBlLT5pc19mbGFn X2VudW0gKCkpCisgICAgIHsKKy0gICAgICBpbnQgZmlyc3QgPSAxOworKyAgICAgIGJvb2wgZmly c3QgPSB0cnVlOworIAorICAgICAgIC8qIFdlIGhhdmUgYSAiZmxhZyIgZW51bSwgc28gd2UgdHJ5 IHRvIGRlY29tcG9zZSBpdCBpbnRvIHBpZWNlcyBhcworIAkgYXBwcm9wcmlhdGUuICBUaGUgZW51 bSBtYXkgaGF2ZSBtdWx0aXBsZSBlbnVtZXJhdG9ycyByZXByZXNlbnRpbmcKK0BAIC03MzgsNyAr NzI5LDcgQEAgZ2VuZXJpY192YWxfcHJpbnRfZW51bV8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9O R0VTVCB2YWwsCisgCSAgICAgIGlmIChmaXJzdCkKKyAJCXsKKyAJCSAgZ2RiX3B1dHMgKCIoIiwg c3RyZWFtKTsKKy0JCSAgZmlyc3QgPSAwOworKwkJICBmaXJzdCA9IGZhbHNlOworIAkJfQorIAkg ICAgICBlbHNlCisgCQlnZGJfcHV0cyAoIiB8ICIsIHN0cmVhbSk7CitAQCAtNzgwLDIwICs3NzEs MTUgQEAgZ2VuZXJpY192YWxfcHJpbnRfZW51bV8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VT VCB2YWwsCisgLyogZ2VuZXJpY192YWxfcHJpbnQgaGVscGVyIGZvciBUWVBFX0NPREVfRU5VTS4g ICovCisgCisgc3RhdGljIHZvaWQKKy1nZW5lcmljX3ZhbF9wcmludF9lbnVtIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKKy0JCQlpbnQgZW1iZWRkZWRfb2Zmc2V0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAorK2dlbmVyaWNfdmFsX3ByaW50X2VudW0gKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLAorIAkJCXN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCisgCQkJY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworLSAgTE9OR0VTVCB2 YWw7CistICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHR5cGUtPmFyY2ggKCk7CistICBpbnQg dW5pdF9zaXplID0gZ2RiYXJjaF9hZGRyZXNzYWJsZV9tZW1vcnlfdW5pdF9zaXplIChnZGJhcmNo KTsKKy0KKyAgIGdkYl9hc3NlcnQgKCFvcHRpb25zLT5mb3JtYXQpOworIAorICAgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIgPSBvcmlnaW5hbF92YWx1ZS0+Y29udGVudHNfZm9yX3ByaW50aW5nICgp LmRhdGEgKCk7CisgCistICB2YWwgPSB1bnBhY2tfbG9uZyAodHlwZSwgdmFsYWRkciArIGVtYmVk ZGVkX29mZnNldCAqIHVuaXRfc2l6ZSk7CisrICBMT05HRVNUIHZhbCA9IHVucGFja19sb25nICh0 eXBlLCB2YWxhZGRyKTsKKyAKKyAgIGdlbmVyaWNfdmFsX3ByaW50X2VudW1fMSAodHlwZSwgdmFs LCBzdHJlYW0pOworIH0KK0BAIC04MDEsOCArNzg3LDcgQEAgZ2VuZXJpY192YWxfcHJpbnRfZW51 bSAoc3RydWN0IHR5cGUgKnR5cGUsCisgLyogZ2VuZXJpY192YWxfcHJpbnQgaGVscGVyIGZvciBU WVBFX0NPREVfRlVOQyBhbmQgVFlQRV9DT0RFX01FVEhPRC4gICovCisgCisgc3RhdGljIHZvaWQK Ky1nZW5lcmljX3ZhbF9wcmludF9mdW5jIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0JCQlpbnQgZW1i ZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKytnZW5lcmljX3ZhbF9wcmludF9mdW5j IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKyAJCQlzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAorIAkJCWNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQorQEAgLTEwMTUsNyArMTAwMCw3 IEBAIGdlbmVyaWNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAKKyAgICAgY2FzZSBUWVBFX0NPREVfUkVGOgorICAg ICBjYXNlIFRZUEVfQ09ERV9SVkFMVUVfUkVGOgorLSAgICAgIGdlbmVyaWNfdmFsX3ByaW50X3Jl ZiAodHlwZSwgMCwgc3RyZWFtLCByZWN1cnNlLAorKyAgICAgIGdlbmVyaWNfdmFsX3ByaW50X3Jl ZiAodHlwZSwgc3RyZWFtLCByZWN1cnNlLAorIAkJCSAgICAgdmFsLCBvcHRpb25zKTsKKyAgICAg ICBicmVhazsKKyAKK0BAIC0xMDIzLDE0ICsxMDA4LDE0IEBAIGdlbmVyaWNfdmFsdWVfcHJpbnQg KHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwK KyAgICAgICBpZiAob3B0aW9ucy0+Zm9ybWF0KQorIAl2YWx1ZV9wcmludF9zY2FsYXJfZm9ybWF0 dGVkICh2YWwsIG9wdGlvbnMsIDAsIHN0cmVhbSk7CisgICAgICAgZWxzZQorLQlnZW5lcmljX3Zh bF9wcmludF9lbnVtICh0eXBlLCAwLCBzdHJlYW0sIHZhbCwgb3B0aW9ucyk7CisrCWdlbmVyaWNf dmFsX3ByaW50X2VudW0gKHR5cGUsIHN0cmVhbSwgdmFsLCBvcHRpb25zKTsKKyAgICAgICBicmVh azsKKyAKKyAgICAgY2FzZSBUWVBFX0NPREVfRkxBR1M6CisgICAgICAgaWYgKG9wdGlvbnMtPmZv cm1hdCkKKyAJdmFsdWVfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAodmFsLCBvcHRpb25zLCAwLCBz dHJlYW0pOworICAgICAgIGVsc2UKKy0JdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAodHlwZSwg dmFsLCAwLCBzdHJlYW0pOworKwl2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzICh0eXBlLCB2YWws IHN0cmVhbSk7CisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgVFlQRV9DT0RFX0ZVTkM6CitA QCAtMTAzOCw3ICsxMDIzLDcgQEAgZ2VuZXJpY192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2 YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorICAgICAgIGlmIChvcHRp b25zLT5mb3JtYXQpCisgCXZhbHVlX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKHZhbCwgb3B0aW9u cywgMCwgc3RyZWFtKTsKKyAgICAgICBlbHNlCistCWdlbmVyaWNfdmFsX3ByaW50X2Z1bmMgKHR5 cGUsIDAsIHZhbC0+YWRkcmVzcyAoKSwgc3RyZWFtLAorKwlnZW5lcmljX3ZhbF9wcmludF9mdW5j ICh0eXBlLCB2YWwtPmFkZHJlc3MgKCksIHN0cmVhbSwKKyAJCQkJdmFsLCBvcHRpb25zKTsKKyAg ICAgICBicmVhazsKKyAKK0BAIC0xMTkwLDExICsxMTc1LDExIEBAIHZhbF9wcmludF9jaGVja19t YXhfZGVwdGggKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAorICAgcmV0dXJu IGZhbHNlOworIH0KKyAKKy0vKiBDaGVjayB3aGV0aGVyIHRoZSB2YWx1ZSBWQUwgaXMgcHJpbnRh YmxlLiAgUmV0dXJuIDEgaWYgaXQgaXM7CistICAgcmV0dXJuIDAgYW5kIHByaW50IGFuIGFwcHJv cHJpYXRlIGVycm9yIG1lc3NhZ2UgdG8gU1RSRUFNIGFjY29yZGluZyB0bworLSAgIE9QVElPTlMg aWYgaXQgaXMgbm90LiAgKi8KKysvKiBDaGVjayB3aGV0aGVyIHRoZSB2YWx1ZSBWQUwgaXMgcHJp bnRhYmxlLiAgUmV0dXJuIHRydWUgaWYgaXQgaXM7CisrICAgcmV0dXJuIGZhbHNlIGFuZCBwcmlu dCBhbiBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlIHRvIFNUUkVBTQorKyAgIGFjY29yZGluZyB0 byBPUFRJT05TIGlmIGl0IGlzIG5vdC4gICovCisgCistc3RhdGljIGludAorK3N0YXRpYyBib29s CisgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwKKyAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucykKKyB7CitAQCAtMTIwMiw3ICsxMTg3LDcgQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxl IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAgICAgeworICAg ICAgIGZwcmludGZfc3R5bGVkIChzdHJlYW0sIG1ldGFkYXRhX3N0eWxlLnN0eWxlICgpLAorIAkJ ICAgICAgXygiPGFkZHJlc3Mgb2YgdmFsdWUgdW5rbm93bj4iKSk7CistICAgICAgcmV0dXJuIDA7 CisrICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCisgICBpZiAodmFsLT5lbnRpcmVseV9v cHRpbWl6ZWRfb3V0ICgpKQorQEAgLTEyMTEsNyArMTE5Niw3IEBAIHZhbHVlX2NoZWNrX3ByaW50 YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCWdkYl9w cmludGYgKHN0cmVhbSwgIi4uLiIpOworICAgICAgIGVsc2UKKyAJdmFsX3ByaW50X29wdGltaXpl ZF9vdXQgKHZhbCwgc3RyZWFtKTsKKy0gICAgICByZXR1cm4gMDsKKysgICAgICByZXR1cm4gZmFs c2U7CisgICAgIH0KKyAKKyAgIGlmICh2YWwtPmVudGlyZWx5X3VuYXZhaWxhYmxlICgpKQorQEAg LTEyMjAsNyArMTIwNSw3IEBAIHZhbHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2 YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCisgCWdkYl9wcmludGYgKHN0cmVhbSwgIi4uLiIp OworICAgICAgIGVsc2UKKyAJdmFsX3ByaW50X3VuYXZhaWxhYmxlIChzdHJlYW0pOworLSAgICAg IHJldHVybiAwOworKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorICAgaWYgKHZhbC0+ dHlwZSAoKS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfSU5URVJOQUxfRlVOQ1RJT04pCitAQCAtMTIy OCwxNiArMTIxMywxNiBAQCB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFs LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorICAgICAgIGZwcmludGZfc3R5bGVkIChzdHJlYW0s IG1ldGFkYXRhX3N0eWxlLnN0eWxlICgpLAorIAkJICAgICAgXygiPGludGVybmFsIGZ1bmN0aW9u ICVzPiIpLAorIAkJICAgICAgdmFsdWVfaW50ZXJuYWxfZnVuY3Rpb25fbmFtZSAodmFsKSk7Cist ICAgICAgcmV0dXJuIDA7CisrICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCisgICBpZiAo dHlwZV9ub3RfYWxsb2NhdGVkICh2YWwtPnR5cGUgKCkpKQorICAgICB7CisgICAgICAgdmFsX3By aW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7CistICAgICAgcmV0dXJuIDA7CisrICAgICAgcmV0 dXJuIGZhbHNlOworICAgICB9CisgCistICByZXR1cm4gMTsKKysgIHJldHVybiB0cnVlOworIH0K KyAKKyAvKiBTZWUgdmFscHJpbnQuaC4gICovCitAQCAtMTI5MiwxMCArMTI3Nyw5IEBAIGRlYnVn X3ZhbCAoc3RydWN0IHZhbHVlICp2YWwpCisgCisgc3RhdGljIHZvaWQKKyB2YWxfcHJpbnRfdHlw ZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92 YWx1ZSwKKy0JCQkgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt KQorKwkJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCisgeworLSAgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIgPSAob3JpZ2luYWxfdmFsdWUtPmNvbnRlbnRzX2Zvcl9wcmludGluZyAoKS5kYXRh ICgpCistCQkJICAgICArIGVtYmVkZGVkX29mZnNldCk7CisrICBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciA9IChvcmlnaW5hbF92YWx1ZS0+Y29udGVudHNfZm9yX3ByaW50aW5nICgpLmRhdGEgKCkp OworICAgVUxPTkdFU1QgdmFsID0gdW5wYWNrX2xvbmcgKHR5cGUsIHZhbGFkZHIpOworICAgaW50 IGZpZWxkLCBuZmllbGRzID0gdHlwZS0+bnVtX2ZpZWxkcyAoKTsKKyAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoID0gdHlwZS0+YXJjaCAoKTsKK0BAIC0zMTg4LDcgKzMxNzIsNyBAQCB0ZXN0X3By aW50X2ZsYWdzIChnZGJhcmNoICphcmNoKQorICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoY29u dGVudHMsIDQsIGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJjaCksIDB4YWEpOworIAorICAgc3RyaW5n X2ZpbGUgb3V0OworLSAgdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAoZmxhZ3NfdHlwZSwgdmFs LCAwLCAmb3V0KTsKKysgIHZhbF9wcmludF90eXBlX2NvZGVfZmxhZ3MgKGZsYWdzX3R5cGUsIHZh bCwgJm91dCk7CisgICBTRUxGX0NIRUNLIChvdXQuc3RyaW5nICgpID09ICJbIEE9MiBCPTEgQz01 IF0iKTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHByaW50LmggYi9nZGIvdmFscHJpbnQu aAorLS0tIGEvZ2RiL3ZhbHByaW50LmgKKysrKyBiL2dkYi92YWxwcmludC5oCitAQCAtMTk3LDE3 ICsxOTcsMTUgQEAgZXh0ZXJuIHZvaWQgcHJpbnRfZnVuY3Rpb25fcG9pbnRlcl9hZGRyZXNzIChj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3AKKyAKKyAvKiBIZWxwZXIgZnVuY3Rp b24gdG8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHNvbWUgYml0cyBvZiBhIHZhbHVlLgorIAorLSAg IElmIFRZUEUgcmVwcmVzZW50cyBzb21lIGFnZ3JlZ2F0ZSB0eXBlIChlLmcuLCBhIHN0cnVjdHVy ZSksIHJldHVybiAxLgorKyAgIElmIFRZUEUgcmVwcmVzZW50cyBzb21lIGFnZ3JlZ2F0ZSB0eXBl IChlLmcuLCBhIHN0cnVjdHVyZSksIHJldHVybiB0cnVlLgorIAorLSAgIE90aGVyd2lzZSwgYW55 IG9mIHRoZSBieXRlcyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IKKy0gICBU WVBFLT5sZW5ndGggKCkgYnl0ZXMgYXJlIGludmFsaWQsIHByaW50IGEgbWVzc2FnZSB0byBTVFJF QU0gYW5kCistICAgcmV0dXJuIDAuICBUaGUgY2hlY2tpbmcgaXMgZG9uZSB1c2luZyBGVU5DUy4K KysgICBGb3Igbm9uLWFnZ3JlZ2F0ZSBUWVBFcywgaWYgYW55IG9mIHRoZSBieXRlcyBzdGFydGlu ZyBhdCBGSUVMRF9CWVRFX09GRlNFVAorKyAgIGFuZCBleHRlbmRpbmcgZm9yIFRZUEUtPmxlbmd0 aCAoKSBieXRlcyBhcmUgaW52YWxpZCwgcHJpbnQgYSBtZXNzYWdlIHRvCisrICAgU1RSRUFNIGFu ZCByZXR1cm4gZmFsc2UuICBPdGhlcndpc2UsIHJldHVybiB0cnVlLiAgKi8KKyAKKy0gICBPdGhl cndpc2UsIHJldHVybiAxLiAgKi8KKy0KKy1leHRlcm4gaW50IHZhbHByaW50X2NoZWNrX3ZhbGlk aXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0JCQkJICAg IExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorLQkJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwpOworK2V4dGVybiBib29sIHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKysJCQkJICAgICBMT05HRVNUIGZpZWxkX2J5 dGVfb2Zmc2V0LAorKwkJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKKyAKKyBleHRl cm4gdm9pZCB2YWxfcHJpbnRfb3B0aW1pemVkX291dCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWws CisgCQkJCSAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CitAQCAtMjcyLDcgKzI3MCwxMSBA QCBleHRlcm4gdm9pZCBnZW5lcmljX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBz dHJ1Y3QgdHlwZSAqdHlwZSwKKyAKKyBleHRlcm4gdm9pZCBvdXRwdXRfY29tbWFuZCAoY29uc3Qg Y2hhciAqYXJncywgaW50IGZyb21fdHR5KTsKKyAKKy1leHRlcm4gaW50IHZhbF9wcmludF9zY2Fs YXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CisrLyogV2hlbiBwcmludGluZyBpbiAic3Vt bWFyeSIgbW9kZSB3ZSB3YW50IHRvIHByaW50IHNjYWxhciBhcmd1bWVudHMKKysgICBidXQgbm90 IGFnZ3JlZ2F0ZSBhcmd1bWVudHMuICBSZXR1cm4gdHJ1ZSBpZiBUWVBFIGlzIGEgc2NhbGFyIHR5 cGUsCisrICAgZmFsc2UgaWYgaXQgaXMgYW4gYWdncmVnYXRlLiAgKi8KKysKKytleHRlcm4gYm9v bCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5cGUpOworIAorIHN0cnVj dCBmb3JtYXRfZGF0YQorICAgewoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5k ZXggZmNmYTcxMS4uM2MyOGMwMCAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMK QEAgLTQ1LDcgKzQ1LDcgQEAgVmVyc2lvbjogMTcuMQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBj b250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBz dHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVu Y2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDUlez9kaXN0fQorUmVs ZWFzZTogNiV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTC0zLjAtb3ItbGF0ZXIgQU5EIEJTRC0zLUNs YXVzZSBBTkQgRlNGQVAgQU5EIExHUEwtMi4xLW9yLWxhdGVyIEFORCBHUEwtMi4wLW9yLWxhdGVy IEFORCBMR1BMLTIuMC1vci1sYXRlciBBTkQgTGljZW5zZVJlZi1GZWRvcmEtUHVibGljLURvbWFp biBBTkQgR0ZETC0xLjMtb3ItbGF0ZXIgQU5EIExHUEwtMi4wLW9yLWxhdGVyIFdJVEggR0NDLWV4 Y2VwdGlvbi0yLjAgQU5EIEdQTC0zLjAtb3ItbGF0ZXIgV0lUSCBHQ0MtZXhjZXB0aW9uLTMuMSBB TkQgR1BMLTIuMC1vci1sYXRlciBXSVRIIEdOVS1jb21waWxlci1leGNlcHRpb24gQU5EIE1JVAog IyBEbyBub3QgcHJvdmlkZSBVUkwgZm9yIHNuYXBzaG90cyBhcyB0aGUgZmlsZSBsYXN0cyB0aGVy ZSBvbmx5IGZvciAyIGRheXMuCkBAIC05MzIsNiArOTMyLDEyIEBAIGZpCiAjIGVuZGlmIHNjbAog CiAlY2hhbmdlbG9nCisqIFNhdCBNYXkgMTYgMjAyNiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NA cmVkaGF0LmNvbT4KKy0gQmFja3BvcnQgdGhlIGZvbGxvd2luZyB1cHN0cmVhbSBjb21taXRzIGlu IG9yZGVyIHRvIGFkZHJlc3MgUkhCWgorICAyNDY3MjUxOiBkOTgwMzE3YzdmMSwgOTU4ZDA2MjYy YTcsIDdkMWQ3Mzg2NTYxLCA4OTE1ZGUwODgzYywKKyAgOGY2NWFiN2I3MWYuICBUaGVzZSBjb21t aXRzIHdpbGwgYWxsIGRyb3Agb3V0IHdoZW4gd2UgcmViYXNlIHRvIEdEQgorICAxOC4KKwogKiBU dWUgTWF5IDUgMjAyNiBLZWl0aCBTZWl0eiA8a2VpdGhzQHJlZGhhdC5jb20+CiAtIEJhY2twb3J0 IHVwc3RyZWFtIGNvbW1pdCBlZjc3MjdhZSBmcm9tIFRvbSBkZSBWcmllcyB0bwogICBmaXggdGhl IHRlc3Qgc3VpdGUgZm9yIG5ld2VyIFRjbCByZWxlYXNlcy4K