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,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 25373 invoked from network); 26 Aug 2022 08:39:24 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 26 Aug 2022 08:39:24 -0000 Content-Type: multipart/mixed; boundary="===============7561090048602133258==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5Bci_skip=5D_freecad=3A_update_to_0=2E20=2E1=2C_update_pyside_to_5=2E15=2E5_and_others_related?= To: ml@inbox.vuxu.org From: yopito Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 26 Aug 2022 10:39:24 +0200 List-Id: Message-ID: <20220826083924.AV90_HEiD7YWXQ_BZ6cAEytOcLKGqrn4_lhBv4Cna0M@z> GitHub notification mails are now in MIME to allow UTF8. --===============7561090048602133258== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgeW9waXRvIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS95b3Bp dG8vdm9pZC1wYWNrYWdlcyBweXNpZGU1LjE1LjVfYW5kX2ZyZWVjYWQwLjIwCmh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg1NgoKW2NpIHNraXBdIGZy ZWVjYWQ6IHVwZGF0ZSB0byAwLjIwLjEsIHVwZGF0ZSBweXNpZGUgdG8gNS4xNS41IGFuZCBvdGhl cnMgcmVsYXRlZAo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9w dGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNo YW5nZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKg0KDQo8IS0t DQojIyMjIE5ldyBwYWNrYWdlDQotIFRoaXMgbmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtw YWNrYWdlIHJlcXVpcmVtZW50c10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjcGFja2FnZS1yZXF1aXJlbWVudHMp OiAqKllFUyoqfCoqTk8qKg0KLS0+DQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1aWxkIGlzIGxpa2Vs eSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgYWRkIGNpIHNraXAgdGFnIGFzIGRl c2NyaWJlZCBpbg0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9i bG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlvbg0KYW5kIHRl c3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQgbGVhc3Qg b25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlzIG5vdCBz a2lwcGluZyBDSS4NCi0tPg0KDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0 aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUgKHg4Nl82NC1tdXNsKSA6 ICoqWUVTKioNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVy ZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2NCAoZ2xpYmMp OiBwYXJ0aWFsLCBzaW5jZSBzb21lIHBhY2thZ2VzIGNhbid0IGJlIGNyb3NzYnVpbGRlZA0KDQoj IyMjIEFkZGl0aW9uYWwgY29tbWVudHMNCg0KKiBydW50aW1lIHRlc3QgYXJlIE9LLCBhcGFydCB0 aGVzZSByZWxhdGVkIHRvIHBpdnksIHNlZSBiZWxvdw0KKiBzdXBlcnNlZWRzIFBSICMzNjM1NiBy ZWdhcmRpbmcgRnJlZUNBRCB1cGRhdGUNCiogYWJvdXQgcGl2eTogfn5zb21lICBTSUdTRUdWIG9u IHJ1bm5pbmcgRnJlZUNBRCB3aGVuIGl0J3MgdXNpbmcgQ29pbi9waXZ5LiAgDQogIFNlZSBodHRw czovL2dpdGh1Yi5jb20vY29pbjNkL3BpdnkvaXNzdWVzLzk4ICANCiAgSG93ZXZlciwgdGhpcyBp cyBhZmZlY3RpbmcgY3VycmVudCBGcmVlQ0FEIGJpbmFyeSBwYWNrYWdpbmcgdG9vLn5+ICANCiAg fn5VcGRhdGU6IGFkZGVkIHBhdGNoIG9uIGNvaW4vcGl2eSB0aGF0IGZpeGVkIGl0fn4gIA0KICAy bmQgdXBkYXRlOiBidW1wIHBpdnkgdG8gMC42LjggKGp1c3QgcmVsZWFzZWQpIHRoYXQgaW5jbHVk ZXMgdGhpcyBmaXgNCg0KcGluZyBAbHV6cGF6IEBrYXJsLW5pbHNzb24gQFBpcmF0eQ0KCgpBIHBh dGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2Vz L3B1bGwvMzg4NTYucGF0Y2ggaXMgYXR0YWNoZWQ= --===============7561090048602133258== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-pyside5.15.5_and_freecad0.20-38856.patch" RnJvbSAxMzU2YTI3NDhkMGQxNTIwNWJkNDJmNzEwNjA1OWExNjczM2E0M2I0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2luQGZyZWUuZnI+CkRhdGU6 IE1vbiwgMjIgQXVnIDIwMjIgMTM6NDI6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDEvN10gc2hp Ym9rZW4yOiB1cGRhdGUgdG8gNS4xNS41CgotLS0KIC4uLi9wYXRjaGVzL2ZpeC1mb3ItbnVtcHkt MS4yMy4wLnBhdGNoICAgICAgICB8ICAxOCArKysKIC4uLi9wYXRjaGVzL25vLXB5dGhvbi1hcmNo LXN1ZmZpeC5wYXRjaCAgICAgICB8ICAgMiArLQogc3JjcGtncy9zaGlib2tlbjIvcGF0Y2hlcy9w eXRob24zMTAucGF0Y2ggICAgIHwgMTE0IC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL3BhdGNoZXMv dGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaCAgICAgICAgIHwgIDkxIC0tLS0tLS0tLS0tLS0tCiBz cmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIDUg ZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjA5IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2hpYm9rZW4yL3BhdGNoZXMvZml4LWZvci1udW1weS0xLjIz LjAucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL3B5 dGhvbjMxMC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2hpYm9rZW4yL3BhdGNo ZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2hpYm9r ZW4yL3BhdGNoZXMvZml4LWZvci1udW1weS0xLjIzLjAucGF0Y2ggYi9zcmNwa2dzL3NoaWJva2Vu Mi9wYXRjaGVzL2ZpeC1mb3ItbnVtcHktMS4yMy4wLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNzA4Y2ViZTNmOWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9zaGlib2tlbjIvcGF0Y2hlcy9maXgtZm9yLW51bXB5LTEuMjMuMC5wYXRjaApAQCAtMCww ICsxLDE4IEBACityZXdvcmsgb2YgY29tbWl0IDE0MjJjZjRhN2YyNzdmYjEzZmQyMDlmMjRhOTBk NmMwMjY0MTQ5N2QgKHNoaWJva2VuNikKKworLS0tIGEvc291cmNlcy9zaGlib2tlbjIvbGlic2hp Ym9rZW4vc2JrbnVtcHlhcnJheWNvbnZlcnRlci5jcHAKKysrKyBiL3NvdXJjZXMvc2hpYm9rZW4y L2xpYnNoaWJva2VuL3Nia251bXB5YXJyYXljb252ZXJ0ZXIuY3BwCitAQCAtMTE2LDggKzExNiwx MyBAQAorICAgICAgICAgICAgIHN0ciA8PCAiIE5QWV9BUlJBWV9OT1RTV0FQUEVEIjsKKyAgICAg ICAgIGlmICgoZmxhZ3MgJiBOUFlfQVJSQVlfV1JJVEVBQkxFKSAhPSAwKQorICAgICAgICAgICAg IHN0ciA8PCAiIE5QWV9BUlJBWV9XUklURUFCTEUiOworKyNpZiBOUFlfVkVSU0lPTiA+PSAweDAw MDAwMDEwIC8vIE5QWV8xXzIzX0FQSV9WRVJTSU9OCisrICAgICAgICBpZiAoKGZsYWdzICYgTlBZ X0FSUkFZX1dSSVRFQkFDS0lGQ09QWSkgIT0gMCkKKysgICAgICAgICAgICBzdHIgPDwgIiBOUFlf QVJSQVlfV1JJVEVCQUNLSUZDT1BZIjsKKysjZWxzZQorICAgICAgICAgaWYgKChmbGFncyAmIE5Q WV9BUlJBWV9VUERBVEVJRkNPUFkpICE9IDApCisgICAgICAgICAgICAgc3RyIDw8ICIgTlBZX0FS UkFZX1VQREFURUlGQ09QWSI7CisrI2VuZGlmCisgICAgIH0gZWxzZSB7CisgICAgICAgICBzdHIg PDwgJzAnOworICAgICB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL25v LXB5dGhvbi1hcmNoLXN1ZmZpeC5wYXRjaCBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3BhdGNoZXMvbm8t cHl0aG9uLWFyY2gtc3VmZml4LnBhdGNoCmluZGV4IDAyYmFhNjg5NmY3Yi4uMzFlOWM1NWRiNmYy IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL25vLXB5dGhvbi1hcmNoLXN1 ZmZpeC5wYXRjaAorKysgYi9zcmNwa2dzL3NoaWJva2VuMi9wYXRjaGVzL25vLXB5dGhvbi1hcmNo LXN1ZmZpeC5wYXRjaApAQCAtMSw1ICsxLDUgQEAKIENvbnNpc3RlbnQgZmlsZSBuYW1pbmcgYWNy b3NzIGFyY2hpdGVjdHVyZXMgZm9yIHNvIGxpYnMgYW5kIGNtYWtlIGZpbGVzOgotcmVtb3ZlIGlu dGVybWVkaWF0ZSBzdWZmaXggbGlrZSAiLmNweXRob24tMzZtLXg4Nl82NC1saW51eC1nbnUiLgor cmVtb3ZlIHB5dGhvbiBzdWZmaXggbGlrZSAiLmNweXRob24tMzZtLXg4Nl82NC1saW51eC1nbnUi LgogQXZvaWQgb3ZlcndyaXRpbmcgdGhlICJyZWFsIiBjbWFrZSBmaWxlIHdpdGggdGhlIGdlbmVy aWMgd3JhcHBlcidzIG9uZSAoc2FtZQogbmFtZSBpbiBzdWNoIGEgY2FzZSkKIApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9zaGlib2tlbjIvcGF0Y2hlcy9weXRob24zMTAucGF0Y2ggYi9zcmNwa2dzL3No aWJva2VuMi9wYXRjaGVzL3B5dGhvbjMxMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMTYwMGRlZGE0NmYyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9zaGlib2tlbjIv cGF0Y2hlcy9weXRob24zMTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTQgKzAsMCBAQAot VGhlIGZpcnN0IHBhdGNoIGlzIHRha2VuIGZyb20gdGhlIGlzc3VlIGFuZCByZXNvbHV0aW9uIGRv Y3VtZW50ZWQgYXQKLQotICAgIGh0dHBzOi8vYnVncmVwb3J0cy5xdC5pby9icm93c2UvUFlTSURF LTE0MzYKLQotTm90ZSB0aGF0IHN0cmluZ3MgY3JlYXRlZCBhcyBwYXJ0IG9mIHRoZSBgc3RhdGlj U3RyaW5ncygpYCBzZXQgdXNlZCBpbiB0aGUKLWBmaW5hbGl6ZVN0YXRpY1N0cmluZ3MoKWAgZnVu Y3Rpb24gYXJlIGNyZWF0ZWQgYnkgYGNyZWF0ZVN0YXRpY1N0cmluZygpYCwgd2hpY2gKLXVzZXMg YFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nYCB0byBjcmVhdGUgYW4gb3duZWQgcmVmZXJlbmNl IHRvIGFuIGludGVybmVkCi1QeXRob24gc3RyaW5nICoqYW5kKiogY2FsbHMgUHlfSU5DUkVGIHRv IGZ1cnRoZXIgZ3VhcmQgYWdhaW5zdCB0aGUgc3RyaW5ncwotZGlzYXBwZWFyaW5nLiBUaHVzLCBp biBgZmluYWxpemVTdGF0aWNTdHJpbmdzKClgLCB3ZSBuZWVkICp0d28qIGNhbGxzIHRvCi1QeV9E RUNSRUY6IG9uZSB0byBjbGVhciB0aGUgImd1YXJkIiBpbmNyZW1lbnQgYWZ0ZXIgY3JlYXRpb24g YW5kIG9uZSB0byByZWxlYXNlCi1vd25lcnNoaXAgZnJvbSB0aGUgY3JlYXRpb24gaXRzZWxmLgot Ci1UaGUgc2Vjb25kIGFuZCB0aGlyZCBwYXRjaGVzIGFyZSBhZGFwdGVkIGZyb20KLQotICAgIGh0 dHBzOi8vY29kZXJldmlldy5xdC1wcm9qZWN0Lm9yZy9jL3B5c2lkZS9weXNpZGUtc2V0dXAvKy8z NDgzOTAKLQotVGhlIHNlY29uZCBhZGRyZXNzZXMgdGhlIGRpc2FwcGVhcmFuY2Ugb2YgX1B5X01h bmdsZSBmcm9tIFB5dGhvbiAzLjEwIGJ5Ci1wcm92aWRpbmcgYW4gYWx0ZXJuYXRpdmUgaW1wbGVt ZW50YXRpb24gdGhhdCB3YXMgcHJldmlvdXNseSByZXNlcnZlZCBmb3IKLVB5X0xJTUlURURfQVBJ LgotCi1UaGUgZm91cnRoIHBhdGNoIHdhcyBhZGFwdGVkIGZyb20KLQotICAgIGh0dHBzOi8vY29k ZXJldmlldy5xdC1wcm9qZWN0Lm9yZy9jL3B5c2lkZS9weXNpZGUtc2V0dXAvKy8zNjU0MDMvNAot Ci1Ub2dldGhlciB3aXRoIHRoZSB0aGlyZCBwYXRjaCx0IGhpcyBhZGRyZXNzZXMgY2hhbmdlcyB0 byB0aGUgdHlwaW5nIG1vZHVsZSB0aGF0Ci1jYXVzZWQgdGhlIHB5aSBiaW5kaW5nIGdlbmVyYXRv ciB0byBmYWlsIGluIHNvbWUgY2FzZXMuCi0KLWRpZmYgLXVyIGEvc291cmNlcy9zaGlib2tlbjIv bGlic2hpYm9rZW4vcGVwMzg0aW1wbC5jcHAgYi9zb3VyY2VzL3NoaWJva2VuMi9saWJzaGlib2tl bi9wZXAzODRpbXBsLmNwcAotLS0tIGEvc291cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4vcGVw Mzg0aW1wbC5jcHAJMjAyMC0xMS0xMSAwNzo1MTozMC4wMDAwMDAwMDAgLTA1MDAKLSsrKyBiL3Nv dXJjZXMvc2hpYm9rZW4yL2xpYnNoaWJva2VuL3BlcDM4NGltcGwuY3BwCTIwMjEtMDktMjYgMDg6 NDc6MDAuNjE0MTg0OTI2IC0wNDAwCi1AQCAtNzUxLDE0ICs3NTEsMTQgQEAKLSAjZW5kaWYgLy8g SVNfUFkyCi0gICAgIFNoaWJva2VuOjpBdXRvRGVjUmVmIHByaXZhdGVvYmooUHlPYmplY3RfR2V0 QXR0cigKLSAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UHlPYmplY3QgKj4oUHlfVFlQRShzZWxm KSksIFNoaWJva2VuOjpQeU1hZ2ljTmFtZTo6bmFtZSgpKSk7Ci0tI2lmbmRlZiBQeV9MSU1JVEVE X0FQSQotLSAgICByZXR1cm4gX1B5X01hbmdsZShwcml2YXRlb2JqLCBuYW1lKTsKLS0jZWxzZQot LSAgICAvLyBGb3Igc29tZSByZWFzb24sIF9QeV9NYW5nbGUgaXMgbm90IGluIHRoZSBMaW1pdGVk IEFQSS4gV2h5PwotLSAgICBzaXplX3QgcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHByaXZh dGVvYmopOwotKwotKyAgICAvLyBQWVNJREUtMTQzNjogX1B5X01hbmdsZSBpcyBubyBsb25nZXIg ZXhwb3NlZDsgaW1wbGVtZW50IGl0IGFsd2F5cy4KLSsgICAgLy8gVGhlIHJlc3Qgb2YgdGhpcyBm dW5jdGlvbiBpcyBvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIF9QeV9NYW5nbGUuCi0rICAgIC8v IFBsZWFzZSBjb21wYXJlIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBpbiBjb21waWxlLmMgLgotKyAg ICBzaXplX3QgcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHByaXZhdGVvYmoub2JqZWN0KCkp OwotICAgICAvKiBTdHJpcCBsZWFkaW5nIHVuZGVyc2NvcmVzIGZyb20gY2xhc3MgbmFtZSAqLwot ICAgICBzaXplX3QgaXByaXYgPSAwOwotLSAgICB3aGlsZSAoUHlVbmljb2RlX1JFQURfQ0hBUihw cml2YXRlb2JqLCBpcHJpdikgPT0gJ18nKQotKyAgICB3aGlsZSAoUHlVbmljb2RlX1JFQURfQ0hB Uihwcml2YXRlb2JqLm9iamVjdCgpLCBpcHJpdikgPT0gJ18nKQotICAgICAgICAgaXByaXYrKzsK LSAgICAgaWYgKGlwcml2ID09IHBsZW4pIHsKLSAgICAgICAgIFB5X0lOQ1JFRihuYW1lKTsKLUBA IC03ODcsNyArNzg3LDYgQEAKLSAgICAgaWYgKGFtb3VudCA+IGJpZ19zdGFjaykKLSAgICAgICAg IGZyZWUocmVzYnVmKTsKLSAgICAgcmV0dXJuIHJlc3VsdDsKLS0jZW5kaWYgLy8gZWxzZSBQeV9M SU1JVEVEX0FQSQotIH0KLSAKLSAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLWRpZmYgLXVyIGEvc291 cmNlcy9zaGlib2tlbjIvbGlic2hpYm9rZW4vc2Jrc3RyaW5nLmNwcCBiL3NvdXJjZXMvc2hpYm9r ZW4yL2xpYnNoaWJva2VuL3Nia3N0cmluZy5jcHAKLS0tLSBhL3NvdXJjZXMvc2hpYm9rZW4yL2xp YnNoaWJva2VuL3Nia3N0cmluZy5jcHAJMjAyMC0xMS0xMSAwNzo1MTozMC4wMDAwMDAwMDAgLTA1 MDAKLSsrKyBiL3NvdXJjZXMvc2hpYm9rZW4yL2xpYnNoaWJva2VuL3Nia3N0cmluZy5jcHAJMjAy MS0wOS0yNiAwODo0NzowMC42MTQxODQ5MjYgLTA0MDAKLUBAIC0yNDcsOCArMjQ3LDE1IEBACi0g ewotICAgICBhdXRvICZzZXQgPSBzdGF0aWNTdHJpbmdzKCk7Ci0gICAgIGZvciAoUHlPYmplY3Qg Km9iIDogc2V0KSB7Ci0rICAgICAgICAvLyBTaW5jZSBQeXRob24gMy4xMCwgaW50ZXJuZWQgc3Ry aW5ncyBhdCBkZWxldGVkIGF0IFB5dGhvbiBleGl0LgotKyNpZiBQWV9WRVJTSU9OX0hFWCA+PSAw eDAzMGEwMDAwCi0rICAgICAgICBQeV9ERUNSRUYob2IpOwotKyAgICAgICAgLy8gY3JlYXRlU3Rh dGljU3RyaW5nKCkgY2FsbHMgUHlfSU5DUkVGKCkKLSsgICAgICAgIFB5X0RFQ1JFRihvYik7Ci0r I2Vsc2UKLSAgICAgICAgIFB5X1JFRkNOVChvYikgPSAxOwotICAgICAgICAgUHlfREVDUkVGKG9i KTsKLSsjZW5kaWYKLSAgICAgfQotICAgICBzZXQuY2xlYXIoKTsKLSB9Ci1kaWZmIC11ciBhL3Nv dXJjZXMvc2hpYm9rZW4yL3NoaWJva2VubW9kdWxlL2ZpbGVzLmRpci9zaGlib2tlbnN1cHBvcnQv c2lnbmF0dXJlL21hcHBpbmcucHkgYi9zb3VyY2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9m aWxlcy5kaXIvc2hpYm9rZW5zdXBwb3J0L3NpZ25hdHVyZS9tYXBwaW5nLnB5Ci0tLS0gYS9zb3Vy Y2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9maWxlcy5kaXIvc2hpYm9rZW5zdXBwb3J0L3Np Z25hdHVyZS9tYXBwaW5nLnB5CTIwMjAtMTEtMTEgMDc6NTE6MzAuMDAwMDAwMDAwIC0wNTAwCi0r KysgYi9zb3VyY2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9maWxlcy5kaXIvc2hpYm9rZW5z dXBwb3J0L3NpZ25hdHVyZS9tYXBwaW5nLnB5CTIwMjEtMDktMjYgMDg6NDc6MDAuNjE0MTg0OTI2 IC0wNDAwCi1AQCAtMzAwLDYgKzMwMCw3IEBACi0gICAgICJ6ZXJvKG9iamVjdCkiOiBOb25lLAot ICAgICAiemVybyhzdHIpIjogIiIsCi0gICAgICJ6ZXJvKHR5cGluZy5BbnkpIjogTm9uZSwKLSsg ICAgInplcm8oQW55KSI6IE5vbmUsCi0gICAgIH0pCi0gCi0gdHlwZV9tYXAudXBkYXRlKHsKLWRp ZmYgLXVyIGEvc291cmNlcy9zaGlib2tlbjIvc2hpYm9rZW5tb2R1bGUvZmlsZXMuZGlyL3NoaWJv a2Vuc3VwcG9ydC9zaWduYXR1cmUvcGFyc2VyLnB5IGIvc291cmNlcy9zaGlib2tlbjIvc2hpYm9r ZW5tb2R1bGUvZmlsZXMuZGlyL3NoaWJva2Vuc3VwcG9ydC9zaWduYXR1cmUvcGFyc2VyLnB5Ci0t LS0gYS9zb3VyY2VzL3NoaWJva2VuMi9zaGlib2tlbm1vZHVsZS9maWxlcy5kaXIvc2hpYm9rZW5z dXBwb3J0L3NpZ25hdHVyZS9wYXJzZXIucHkJMjAyMC0xMS0xMSAwNzo1MTozMC4wMDAwMDAwMDAg LTA1MDAKLSsrKyBiL3NvdXJjZXMvc2hpYm9rZW4yL3NoaWJva2VubW9kdWxlL2ZpbGVzLmRpci9z aGlib2tlbnN1cHBvcnQvc2lnbmF0dXJlL3BhcnNlci5weQkyMDIxLTA5LTI2IDA4OjQ4OjI3Ljc0 MzE3MTU4NyAtMDQwMAotQEAgLTQzLDEwICs0MywxMSBAQAotIGltcG9ydCByZQotIGltcG9ydCB3 YXJuaW5ncwotIGltcG9ydCB0eXBlcwotK2ltcG9ydCB0eXBpbmcKLSBpbXBvcnQga2V5d29yZAot IGltcG9ydCBmdW5jdG9vbHMKLSBmcm9tIHNoaWJva2Vuc3VwcG9ydC5zaWduYXR1cmUubWFwcGlu ZyBpbXBvcnQgKHR5cGVfbWFwLCB1cGRhdGVfbWFwcGluZywKLS0gICAgbmFtZXNwYWNlLCB0eXBp bmcsIF9Ob3RDYWxsZWQsIFJlc3VsdFZhcmlhYmxlLCBBcnJheUxpa2VWYXJpYWJsZSkKLSsgICAg bmFtZXNwYWNlLCBfTm90Q2FsbGVkLCBSZXN1bHRWYXJpYWJsZSwgQXJyYXlMaWtlVmFyaWFibGUp Ci0gZnJvbSBzaGlib2tlbnN1cHBvcnQuc2lnbmF0dXJlLmxpYi50b29sIGltcG9ydCAoU2ltcGxl TmFtZXNwYWNlLAotICAgICBidWlsZF9icmFjZV9wYXR0ZXJuKQotIAotQEAgLTIyMiw3ICsyMjMs NyBAQAotIGRlZiB0b19zdHJpbmcodGhpbmcpOgotICAgICBpZiBpc2luc3RhbmNlKHRoaW5nLCBz dHIpOgotICAgICAgICAgcmV0dXJuIHRoaW5nCi0tICAgIGlmIGhhc2F0dHIodGhpbmcsICJfX25h bWVfXyIpOgotKyAgICBpZiBoYXNhdHRyKHRoaW5nLCAiX19uYW1lX18iKSBhbmQgdGhpbmcuX19t b2R1bGVfXyAhPSAidHlwaW5nIjoKLSAgICAgICAgIGRvdCA9ICIuIiBpbiBzdHIodGhpbmcpCi0g ICAgICAgICBuYW1lID0gZ2V0X25hbWUodGhpbmcpCi0gICAgICAgICByZXR1cm4gdGhpbmcuX19t b2R1bGVfXyArICIuIiArIG5hbWUgaWYgZG90IGVsc2UgbmFtZQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9zaGlib2tlbjIvcGF0Y2hlcy90ZXN0cy1weXRob24tc3ludGF4LnBhdGNoIGIvc3JjcGtncy9z aGlib2tlbjIvcGF0Y2hlcy90ZXN0cy1weXRob24tc3ludGF4LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAzMjc0M2E2Mjk1Y2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L3NoaWJva2VuMi9wYXRjaGVzL3Rlc3RzLXB5dGhvbi1zeW50YXgucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw5MSArMCwwIEBACi1UaGlzIGNoYW5nZXNldCBpcyBhYm91dCBib3RoIHNoaWJva2Vu MiBhbmQgcHl0aG9uMy1weXNpZGUyCi0odGhhdCBhcmUgc2VwYXJhdGVkIHBhY2thZ2VzKQotdXBz dHJlYW06IHllcwotCi1Gcm9tIGM2MTg0ZTAxZTk5M2RjY2E5Nzk4ZjMwNmZiOGU5Y2IzMjJmZGQw ZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBDaHJpc3RpYW4gVGlzbWVyIDx0aXNt ZXJAc3RhY2tsZXNzLmNvbT4KLURhdGU6IFRodSwgMyBEZWMgMjAyMCAxMzozODo1OCArMDEwMAot U3ViamVjdDogW1BBVENIXSBmaXggYm90aCBxZmxhZ3NfdGVzdCBhbmQgdGhlIHFmbGFncyBjcHBn ZW5lcmF0b3IgY29kZQotCi1UaGVyZSB3YXMgYSB5ZWFycy1vbGQgcWZsYWdzIHRlc3QgZmFpbGlu ZyBvbiBQeXRob24gMy4KLUl0IHdhcyBibGFja2xpc3RlZCB3aXRoIHRoZSBjb21tZW50Ci0KLSAg ICAiIyAgTmVzdGVkIGV4Y2VwdGlvbiBpbiBQeXRob24gMyIKLQotVGhpcyB3YXMgbm9uc2Vuc2U6 IFRoZSB0ZXN0IHdhcyB3cm9uZyBhbHNvIGZvciBQeXRob24gMi4KLUl0IGp1c3QgaGFwcGVuZWQg dG8gd29yaywgYmVjYXVzZSBQeXRob24gMiBoYWQgc29tZSB3ZWlyZAotZXJyb3JzIGxlYWtpbmcu IFRoZSByZWFsIGJ1ZyB3YXMgaW4gbWlzc2luZyBlcnJvciBoYW5kbGluZwotaW4gY3BwZ2VuZXJh dG9yLmNwcCAuCi0KLVNlZSB0aGUgbWFpbiBkZXNjcmlwdGlvbiBpbiB0aGUgaXNzdWUuCi0KLUNo YW5nZS1JZDogSWEwZjk0NjY2NDBlMGViMzNmMWI4YjI2MTc4ZDMzZjJiZTBiY2IzMmYKLVRhc2st bnVtYmVyOiBQWVNJREUtMTQ0MgotUmV2aWV3ZWQtYnk6IEZyaWVkZW1hbm4gS2xlaW50IDxGcmll ZGVtYW5uLktsZWludEBxdC5pbz4KLShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDI4OGZhZGI3 OTZlYzRlMTFlOTllMzc1MmQ1MzFhZGE3ZWRmMTVkNzUpCi0tLS0KLSBidWlsZF9oaXN0b3J5L2Js YWNrbGlzdC50eHQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgLS0tCi0gc291cmNlcy9w eXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVzdC5weSAgICAgICAgICB8IDEyICsrKysrKyst LS0tLQotIC4uLi9zaGlib2tlbjIvZ2VuZXJhdG9yL3NoaWJva2VuMi9jcHBnZW5lcmF0b3IuY3Bw ICAgfCAgMiArKwotIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGJ1aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dCBidWlsZF9oaXN0 b3J5L2JsYWNrbGlzdC50eHQKLWluZGV4IDliNjNmOTc4NC4uMmEyYTVkNGM0IDEwMDY0NAotLS0t IGEvYnVpbGRfaGlzdG9yeS9ibGFja2xpc3QudHh0Ci0rKysgYi9idWlsZF9oaXN0b3J5L2JsYWNr bGlzdC50eHQKLUBAIC0xOCw5ICsxOCw2IEBACi0gICAgIGRhcndpbiBweTMKLSBbUXRDb3JlOjpx ZmlsZXJlYWRfdGVzdF0KLSAgICAgZGFyd2luCi0tIyAgTmVzdGVkIGV4Y2VwdGlvbiBpbiBQeXRo b24gMwotLVtRdENvcmU6OnFmbGFnc190ZXN0XQotLSAgICBweTMKLSBbUXRDb3JlOjpxb2JqZWN0 X2Nvbm5lY3Rfbm90aWZ5X3Rlc3RdCi0gICAgIGxpbnV4Ci0gICAgIGRhcndpbgotZGlmZiAtLWdp dCBzb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRDb3JlL3FmbGFnc190ZXN0LnB5IHNvdXJjZXMvcHlz aWRlMi90ZXN0cy9RdENvcmUvcWZsYWdzX3Rlc3QucHkKLWluZGV4IDA4YTdjNTViMS4uZTFlOTg5 YzFlIDEwMDY0NAotLS0tIGEvc291cmNlcy9weXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVz dC5weQotKysrIGIvc291cmNlcy9weXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVzdC5weQot QEAgLTMwLDYgKzMwLDcgQEAKLSAKLSAnJydUZXN0IGNhc2VzIGZvciBRRmxhZ3MnJycKLSAKLStp bXBvcnQgb3BlcmF0b3IKLSBpbXBvcnQgb3MKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IHVuaXR0ZXN0 Ci1AQCAtMTE3LDEyICsxMTgsMTMgQEAgY2xhc3MgUUZsYWdzT25RVmFyaWFudCh1bml0dGVzdC5U ZXN0Q2FzZSk6Ci0gY2xhc3MgUUZsYWdzV3JvbmdUeXBlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAg ICAgZGVmIHRlc3RXcm9uZ1R5cGUoc2VsZik6Ci0gICAgICAgICAnJydXcm9uZyB0eXBlIHBhc3Nl ZCB0byBRRmxhZ3MgYmluYXJ5IG9wZXJhdG9ycycnJwotKyAgICAgICAgZm9yIG9wIGluIG9wZXJh dG9yLm9yXywgb3BlcmF0b3IuYW5kXywgb3BlcmF0b3IueG9yOgotKyAgICAgICAgICAgIGZvciB4 IGluICc0MycsICdqYWJiYScsIFFPYmplY3QsIG9iamVjdDoKLSsgICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBvcCwgUXQuTm9JdGVtRmxhZ3MsIHgpCi0rICAgICAg ICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3AsIHgsIFF0Lk5vSXRlbUZs YWdzKQotKyAgICAgICAgIyBtYWtpbmcgc3VyZSB0aGlzIGFjdHVhbGx5IGRvZXMgbm90IGZhaWwg YWxsIHRoZSB0aW1lCi0rICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZXJhdG9yLm9yXyhRdC5O b0l0ZW1GbGFncywgNDMpLCA0MykKLSAKLS0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVF cnJvciwgUXQuTm9JdGVtRmxhZ3MgfCAnNDMnKQotLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo VHlwZUVycm9yLCBRdC5Ob0l0ZW1GbGFncyAmICc0MycpCi0tICAgICAgICBzZWxmLmFzc2VydFJh aXNlcyhUeXBlRXJyb3IsICdqYWJiYScgJiBRdC5Ob0l0ZW1GbGFncykKLS0gICAgICAgIHNlbGYu YXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgJ2h1dCcgJiBRdC5Ob0l0ZW1GbGFncykKLS0gICAgICAg IHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgUXQuTm9JdGVtRmxhZ3MgJiBRT2JqZWN0KCkp Ci0gCi0gaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgdW5pdHRlc3QubWFpbigpCi1k aWZmIC0tZ2l0IHNvdXJjZXMvc2hpYm9rZW4yL2dlbmVyYXRvci9zaGlib2tlbjIvY3BwZ2VuZXJh dG9yLmNwcCBzb3VyY2VzL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4yL2NwcGdlbmVyYXRv ci5jcHAKLWluZGV4IGZmNDRkYjk1NS4uODdkZGQ3M2E1IDEwMDY0NAotLS0tIGEvc291cmNlcy9z aGlib2tlbjIvZ2VuZXJhdG9yL3NoaWJva2VuMi9jcHBnZW5lcmF0b3IuY3BwCi0rKysgYi9zb3Vy Y2VzL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4yL2NwcGdlbmVyYXRvci5jcHAKLUBAIC01 MjMwLDYgKzUyMzAsOCBAQCB2b2lkIENwcEdlbmVyYXRvcjo6d3JpdGVGbGFnc0JpbmFyeU9wZXJh dG9yKFFUZXh0U3RyZWFtICZzLCBjb25zdCBBYnN0cmFjdE1ldGFFbgotICAgICBzIDw8IElOREVO VCA8PCAiY3BwQXJnID0gc3RhdGljX2Nhc3Q8IiA8PCBmbGFnc0VudHJ5LT5vcmlnaW5hbE5hbWUo KQotICAgICAgICAgPDwgIj4oaW50KFB5SW50X0FzTG9uZygiIDw8IFBZVEhPTl9BUkcgPDwgIikp KTtcbiI7Ci0gICAgIHMgPDwgIiNlbmRpZlxuXG4iOwotKyAgICBzIDw8IElOREVOVCA8PCAiaWYg KFB5RXJyX09jY3VycmVkKCkpXG4iIDw8IGluZGVudChJTkRFTlQpCi0rICAgICAgICA8PCBJTkRF TlQgPDwgInJldHVybiBudWxscHRyO1xuIiA8PCBvdXRkZW50KElOREVOVCk7Ci0gICAgIHMgPDwg SU5ERU5UIDw8ICJjcHBSZXN1bHQgPSAiIDw8IENQUF9TRUxGX1ZBUiA8PCAiICIgPDwgY3BwT3BO YW1lIDw8ICIgY3BwQXJnO1xuIjsKLSAgICAgcyA8PCBJTkRFTlQgPDwgInJldHVybiAiOwotICAg ICB3cml0ZVRvUHl0aG9uQ29udmVyc2lvbihzLCBmbGFnc1R5cGUsIG51bGxwdHIsIFFMYXRpbjFT dHJpbmcoImNwcFJlc3VsdCIpKTsKLS0tIAotMi4yOS4yCmRpZmYgLS1naXQgYS9zcmNwa2dzL3No aWJva2VuMi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2hpYm9rZW4yL3RlbXBsYXRlCmluZGV4IGI1NjYx MzIyOWMxMy4uZDAzMzViMjJiZjUxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NoaWJva2VuMi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3NoaWJva2VuMi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ3NoaWJva2VuMicKIHBrZ25hbWU9c2hpYm9rZW4yCi12ZXJzaW9u PTUuMTUuMgotcmV2aXNpb249NAordmVyc2lvbj01LjE1LjUKK3JldmlzaW9uPTEKIF9wa2duYW1l PSJweXNpZGUtc2V0dXAtb3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIHdya3NyYz0iJHtfcGtn bmFtZS8lNS4xNC4yLjEvNS4xNC4yfSIKIGJ1aWxkX3dya3NyYz0ic291cmNlcy9zaGlib2tlbjIi CkBAIC0xNSw3ICsxNSw3IEBAIG1haW50YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJl ZS5mcj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5xdC5pby9RdF9mb3JfUHl0aG9uL1NoaWJva2VuIgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25s b2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIvUHlTaWRlMi0k e3ZlcnNpb259LXNyYy8ke19wa2duYW1lfS50YXIueHoiCi1jaGVja3N1bT1iMzA2NTA0YjBiODAz NzA3OWE4ZWFiNzcyZWU3NzRiOWU4NzdhMmQ4NGJhYjJkYmVmYmU0ZmE2ZjgzOTQxNDE4CitjaGVj a3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZmNzBmMWZiOTc1YzVlN2VmYTIyZTlkNTEyMjI1 ODg5MjhjZTE5YjMzCiAKIHB5dGhvbl92ZXJzaW9uPTMKIGV4cG9ydCBDTEFOR19JTlNUQUxMX0RJ Uj0ke1hCUFNfQ1JPU1NfQkFTRX0vdXNyCgpGcm9tIGI4NDk5ZWI2NjUzYmUzOGQ2MzYyMzE2ZjRl YjU1Yzg4ZjE4NGFjOTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHlvcGl0byA8cGll cnJlLmJvdXJnaW5AZnJlZS5mcj4KRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxMzo0MjozNSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMi83XSBweXRob24zLXB5c2lkZTI6IHVwZGF0ZSB0byA1LjE1LjUK Ci0tLQogLi4uL3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaCAgICAgICAgIHwgMTA2 IC0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9weXRob24zLXB5c2lkZTIvdGVtcGxhdGUgICAg ICAgICAgICAgIHwgICA2ICstCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTA5 IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcHl0aG9uMy1weXNpZGUy L3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaCBiL3NyY3Br Z3MvcHl0aG9uMy1weXNpZGUyL3BhdGNoZXMvdGVzdHMtcHl0aG9uLXN5bnRheC5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YzYWIxMTcyZjlmLi4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9weXRob24zLXB5c2lkZTIvcGF0Y2hlcy90ZXN0cy1weXRob24tc3ludGF4LnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLVRoaXMgY2hhbmdlc2V0IGlzIGFi b3V0IGJvdGggc2hpYm9rZW4yIGFuZCBweXRob24zLXB5c2lkZTIKLSh0aGF0IGFyZSBzZXBhcmF0 ZWQgcGFja2FnZXMpCi11cHN0cmVhbTogeWVzCi0KLUZyb20gYzYxODRlMDFlOTkzZGNjYTk3OThm MzA2ZmI4ZTljYjMyMmZkZDBkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IENocmlz dGlhbiBUaXNtZXIgPHRpc21lckBzdGFja2xlc3MuY29tPgotRGF0ZTogVGh1LCAzIERlYyAyMDIw IDEzOjM4OjU4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeCBib3RoIHFmbGFnc190ZXN0IGFu ZCB0aGUgcWZsYWdzIGNwcGdlbmVyYXRvciBjb2RlCi0KLVRoZXJlIHdhcyBhIHllYXJzLW9sZCBx ZmxhZ3MgdGVzdCBmYWlsaW5nIG9uIFB5dGhvbiAzLgotSXQgd2FzIGJsYWNrbGlzdGVkIHdpdGgg dGhlIGNvbW1lbnQKLQotICAgICIjICBOZXN0ZWQgZXhjZXB0aW9uIGluIFB5dGhvbiAzIgotCi1U aGlzIHdhcyBub25zZW5zZTogVGhlIHRlc3Qgd2FzIHdyb25nIGFsc28gZm9yIFB5dGhvbiAyLgot SXQganVzdCBoYXBwZW5lZCB0byB3b3JrLCBiZWNhdXNlIFB5dGhvbiAyIGhhZCBzb21lIHdlaXJk Ci1lcnJvcnMgbGVha2luZy4gVGhlIHJlYWwgYnVnIHdhcyBpbiBtaXNzaW5nIGVycm9yIGhhbmRs aW5nCi1pbiBjcHBnZW5lcmF0b3IuY3BwIC4KLQotU2VlIHRoZSBtYWluIGRlc2NyaXB0aW9uIGlu IHRoZSBpc3N1ZS4KLQotQ2hhbmdlLUlkOiBJYTBmOTQ2NjY0MGUwZWIzM2YxYjhiMjYxNzhkMzNm MmJlMGJjYjMyZgotVGFzay1udW1iZXI6IFBZU0lERS0xNDQyCi1SZXZpZXdlZC1ieTogRnJpZWRl bWFubiBLbGVpbnQgPEZyaWVkZW1hbm4uS2xlaW50QHF0LmlvPgotKGNoZXJyeSBwaWNrZWQgZnJv bSBjb21taXQgMjg4ZmFkYjc5NmVjNGUxMWU5OWUzNzUyZDUzMWFkYTdlZGYxNWQ3NSkKLS0tLQot IGJ1aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MyAtLS0KLSBzb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRDb3JlL3FmbGFnc190ZXN0LnB5ICAgICAg ICAgIHwgMTIgKysrKysrKy0tLS0tCi0gLi4uL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4y L2NwcGdlbmVyYXRvci5jcHAgICB8ICAyICsrCi0gMyBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYnVpbGRfaGlzdG9yeS9ibGFja2xp c3QudHh0IGJ1aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dAotaW5kZXggOWI2M2Y5Nzg0Li4yYTJh NWQ0YzQgMTAwNjQ0Ci0tLS0gYS9idWlsZF9oaXN0b3J5L2JsYWNrbGlzdC50eHQKLSsrKyBiL2J1 aWxkX2hpc3RvcnkvYmxhY2tsaXN0LnR4dAotQEAgLTE4LDkgKzE4LDYgQEAKLSAgICAgZGFyd2lu IHB5MwotIFtRdENvcmU6OnFmaWxlcmVhZF90ZXN0XQotICAgICBkYXJ3aW4KLS0jICBOZXN0ZWQg ZXhjZXB0aW9uIGluIFB5dGhvbiAzCi0tW1F0Q29yZTo6cWZsYWdzX3Rlc3RdCi0tICAgIHB5Mwot IFtRdENvcmU6OnFvYmplY3RfY29ubmVjdF9ub3RpZnlfdGVzdF0KLSAgICAgbGludXgKLSAgICAg ZGFyd2luCi1kaWZmIC0tZ2l0IHNvdXJjZXMvcHlzaWRlMi90ZXN0cy9RdENvcmUvcWZsYWdzX3Rl c3QucHkgc291cmNlcy9weXNpZGUyL3Rlc3RzL1F0Q29yZS9xZmxhZ3NfdGVzdC5weQotaW5kZXgg MDhhN2M1NWIxLi5lMWU5ODljMWUgMTAwNjQ0Ci0tLS0gYS9zb3VyY2VzL3B5c2lkZTIvdGVzdHMv UXRDb3JlL3FmbGFnc190ZXN0LnB5Ci0rKysgYi9zb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRDb3Jl L3FmbGFnc190ZXN0LnB5Ci1AQCAtMzAsNiArMzAsNyBAQAotIAotICcnJ1Rlc3QgY2FzZXMgZm9y IFFGbGFncycnJwotIAotK2ltcG9ydCBvcGVyYXRvcgotIGltcG9ydCBvcwotIGltcG9ydCBzeXMK LSBpbXBvcnQgdW5pdHRlc3QKLUBAIC0xMTcsMTIgKzExOCwxMyBAQCBjbGFzcyBRRmxhZ3NPblFW YXJpYW50KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSBjbGFzcyBRRmxhZ3NXcm9uZ1R5cGUodW5pdHRl c3QuVGVzdENhc2UpOgotICAgICBkZWYgdGVzdFdyb25nVHlwZShzZWxmKToKLSAgICAgICAgICcn J1dyb25nIHR5cGUgcGFzc2VkIHRvIFFGbGFncyBiaW5hcnkgb3BlcmF0b3JzJycnCi0rICAgICAg ICBmb3Igb3AgaW4gb3BlcmF0b3Iub3JfLCBvcGVyYXRvci5hbmRfLCBvcGVyYXRvci54b3I6Ci0r ICAgICAgICAgICAgZm9yIHggaW4gJzQzJywgJ2phYmJhJywgUU9iamVjdCwgb2JqZWN0OgotKyAg ICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wLCBRdC5Ob0l0ZW1G bGFncywgeCkKLSsgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBv cCwgeCwgUXQuTm9JdGVtRmxhZ3MpCi0rICAgICAgICAjIG1ha2luZyBzdXJlIHRoaXMgYWN0dWFs bHkgZG9lcyBub3QgZmFpbCBhbGwgdGhlIHRpbWUKLSsgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo b3BlcmF0b3Iub3JfKFF0Lk5vSXRlbUZsYWdzLCA0MyksIDQzKQotIAotLSAgICAgICAgc2VsZi5h c3NlcnRSYWlzZXMoVHlwZUVycm9yLCBRdC5Ob0l0ZW1GbGFncyB8ICc0MycpCi0tICAgICAgICBz ZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIFF0Lk5vSXRlbUZsYWdzICYgJzQzJykKLS0gICAg ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgJ2phYmJhJyAmIFF0Lk5vSXRlbUZsYWdz KQotLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCAnaHV0JyAmIFF0Lk5vSXRl bUZsYWdzKQotLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBRdC5Ob0l0ZW1G bGFncyAmIFFPYmplY3QoKSkKLSAKLSBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICB1 bml0dGVzdC5tYWluKCkKLWRpZmYgLS1naXQgc291cmNlcy9zaGlib2tlbjIvZ2VuZXJhdG9yL3No aWJva2VuMi9jcHBnZW5lcmF0b3IuY3BwIHNvdXJjZXMvc2hpYm9rZW4yL2dlbmVyYXRvci9zaGli b2tlbjIvY3BwZ2VuZXJhdG9yLmNwcAotaW5kZXggZmY0NGRiOTU1Li44N2RkZDczYTUgMTAwNjQ0 Ci0tLS0gYS9zb3VyY2VzL3NoaWJva2VuMi9nZW5lcmF0b3Ivc2hpYm9rZW4yL2NwcGdlbmVyYXRv ci5jcHAKLSsrKyBiL3NvdXJjZXMvc2hpYm9rZW4yL2dlbmVyYXRvci9zaGlib2tlbjIvY3BwZ2Vu ZXJhdG9yLmNwcAotQEAgLTUyMzAsNiArNTIzMCw4IEBAIHZvaWQgQ3BwR2VuZXJhdG9yOjp3cml0 ZUZsYWdzQmluYXJ5T3BlcmF0b3IoUVRleHRTdHJlYW0gJnMsIGNvbnN0IEFic3RyYWN0TWV0YUVu Ci0gICAgIHMgPDwgSU5ERU5UIDw8ICJjcHBBcmcgPSBzdGF0aWNfY2FzdDwiIDw8IGZsYWdzRW50 cnktPm9yaWdpbmFsTmFtZSgpCi0gICAgICAgICA8PCAiPihpbnQoUHlJbnRfQXNMb25nKCIgPDwg UFlUSE9OX0FSRyA8PCAiKSkpO1xuIjsKLSAgICAgcyA8PCAiI2VuZGlmXG5cbiI7Ci0rICAgIHMg PDwgSU5ERU5UIDw8ICJpZiAoUHlFcnJfT2NjdXJyZWQoKSlcbiIgPDwgaW5kZW50KElOREVOVCkK LSsgICAgICAgIDw8IElOREVOVCA8PCAicmV0dXJuIG51bGxwdHI7XG4iIDw8IG91dGRlbnQoSU5E RU5UKTsKLSAgICAgcyA8PCBJTkRFTlQgPDwgImNwcFJlc3VsdCA9ICIgPDwgQ1BQX1NFTEZfVkFS IDw8ICIgIiA8PCBjcHBPcE5hbWUgPDwgIiBjcHBBcmc7XG4iOwotICAgICBzIDw8IElOREVOVCA8 PCAicmV0dXJuICI7Ci0gICAgIHdyaXRlVG9QeXRob25Db252ZXJzaW9uKHMsIGZsYWdzVHlwZSwg bnVsbHB0ciwgUUxhdGluMVN0cmluZygiY3BwUmVzdWx0IikpOwotLS0gCi0yLjI5LjIKLQotRml4 IHB5dGhvbiB3YXJuaW5nIGFib3V0ICdpcyBub3QnIHVzYWdlLgotVGhpcyBkaWZmIGlzIERJU1RJ TkNUIGZyb20gdGhlIHByZXZpb3VzIHBhdGNoCi0KLS0tLSBhL3NvdXJjZXMvcHlzaWRlMi90ZXN0 cy9RdFdpZGdldHMvcXdpZGdldF90ZXN0LnB5CTIwMjAtMTEtMTEgMTM6NTE6MzAuMDAwMDAwMDAw ICswMTAwCi0rKysgYi9zb3VyY2VzL3B5c2lkZTIvdGVzdHMvUXRXaWRnZXRzL3F3aWRnZXRfdGVz dC5weQkyMDIwLTExLTI0IDE0OjI4OjA2LjEwMzA5MzY0OSArMDEwMAotQEAgLTczLDcgKzczLDcg QEAKLSAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3Qgd2lkZ2V0LmlzVmlzaWJsZSgpKQotICAg ICAgICAgd2lkZ2V0LnNldFZpc2libGUoVHJ1ZSkKLSAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh3 aWRnZXQuaXNWaXNpYmxlKCkpCi0tICAgICAgICBzZWxmLmFzc2VydFRydWUod2lkZ2V0Lndpbklk KCkgaXMgbm90IDApCi0rICAgICAgICBzZWxmLmFzc2VydFRydWUod2lkZ2V0LndpbklkKCkgIT0g MCkKLSAgICAgICAgICMgc2tpcCB0aGlzIHRlc3Qgb24gbWFjT1Mgc2luY2Ugbm8gbmF0aXZlIGV2 ZW50cyBhcmUgcmVjZWl2ZWQKLSAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoK LSAgICAgICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUy L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLXB5c2lkZTIvdGVtcGxhdGUKaW5kZXggZWRhZDg1 YTUxMTJmLi45NzFiNzdmZTFlZjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUy L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1weXNpZGUyL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1weXNpZGUyJwogcGtnbmFtZT1w eXRob24zLXB5c2lkZTIKLXZlcnNpb249NS4xNS4yCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTUuMTUu NQorcmV2aXNpb249MQogX3BrZ25hbWU9InB5c2lkZS1zZXR1cC1vcGVuc291cmNlLXNyYy0ke3Zl cnNpb259Igogd3Jrc3JjPSIke19wa2duYW1lLyU1LjE0LjIuMS81LjE0LjJ9IgogYnVpbGRfd3Jr c3JjPSJzb3VyY2VzL3B5c2lkZTIiCkBAIC0yNCw3ICsyNCw3IEBAIG1haW50YWluZXI9InlvcGl0 byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4iCiBsaWNlbnNlPSJMR1BMLTMuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kucXQuaW8vUXRfZm9yX1B5dGhvbiIKIGRpc3RmaWxlcz0i aHR0cHM6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9RdEZvclB5dGhvbi9weXNp ZGUyL1B5U2lkZTItJHt2ZXJzaW9ufS1zcmMvJHtfcGtnbmFtZX0udGFyLnh6IgotY2hlY2tzdW09 YjMwNjUwNGIwYjgwMzcwNzlhOGVhYjc3MmVlNzc0YjllODc3YTJkODRiYWIyZGJlZmJlNGZhNmY4 Mzk0MTQxOAorY2hlY2tzdW09MzkyMGE0ZmIzNTMzMDAyNjBjOWJjNDZmZjcwZjFmYjk3NWM1ZTdl ZmEyMmU5ZDUxMjIyNTg4OTI4Y2UxOWIzMwogCiBidWlsZF9vcHRpb25zPSJ3ZWJlbmdpbmUiCiBk ZXNjX29wdGlvbl93ZWJlbmdpbmU9IkJ1aWxkIFF0NSBXZWJFbmdpbmUgYmluZGluZ3MiCgpGcm9t IGM2YTYyZDM5NjQ3OTgyNWViMTg1YzM4NDRjZjc0NzVkNDIwNzQyNzggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IHlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4KRGF0ZTogTW9u LCAyMiBBdWcgMjAyMiAxMzo0MjozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy83XSBweXNpZGUy LXRvb2xzOiB1cGRhdGUgdG8gNS4xNS41CgotLS0KIHNyY3BrZ3MvcHlzaWRlMi10b29scy90ZW1w bGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5c2lkZTItdG9vbHMvdGVtcGxhdGUgYi9zcmNw a2dzL3B5c2lkZTItdG9vbHMvdGVtcGxhdGUKaW5kZXggMzVkMzUzYWJhOTVkLi4wYWEyZDhlYTll ODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHlzaWRlMi10b29scy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3B5c2lkZTItdG9vbHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdweXNpZGUyLXRvb2xzJwogcGtnbmFtZT1weXNpZGUyLXRvb2xzCi12ZXJzaW9uPTUu MTUuMgordmVyc2lvbj01LjE1LjUKIHJldmlzaW9uPTEKIF9wa2duYW1lPSJweXNpZGUtc2V0dXAt b3BlbnNvdXJjZS1zcmMtJHt2ZXJzaW9ufSIKIHdya3NyYz0iJHtfcGtnbmFtZS8lNS4xNC4yLjEv NS4xNC4yfSIKQEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5lcj0ieW9waXRvIDxwaWVycmUuYm91 cmdpbkBmcmVlLmZyPiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5xdC5pby9RdF9mb3JfUHl0aG9uL1NoaWJva2VuIgogZGlzdGZpbGVzPSJodHRw czovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL1F0Rm9yUHl0aG9uL3B5c2lkZTIv UHlTaWRlMi0ke3ZlcnNpb259LXNyYy8ke19wa2duYW1lfS50YXIueHoiCi1jaGVja3N1bT1iMzA2 NTA0YjBiODAzNzA3OWE4ZWFiNzcyZWU3NzRiOWU4NzdhMmQ4NGJhYjJkYmVmYmU0ZmE2ZjgzOTQx NDE4CitjaGVja3N1bT0zOTIwYTRmYjM1MzMwMDI2MGM5YmM0NmZmNzBmMWZiOTc1YzVlN2VmYTIy ZTlkNTEyMjI1ODg5MjhjZTE5YjMzCiBweXRob25fdmVyc2lvbj0zCiAKIGlmIFsgJHtDUk9TU19C VUlMRH0gXTsgdGhlbgoKRnJvbSAzM2Q1ZWZkY2FiZjg2ZTBlMDI4YTY5Y2UzYjJjNmRjOGU1YzIx ZGZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB5b3BpdG8gPHBpZXJyZS5ib3VyZ2lu QGZyZWUuZnI+CkRhdGU6IE1vbiwgMjIgQXVnIDIwMjIgMTM6NDI6MzcgKzAyMDAKU3ViamVjdDog W1BBVENIIDQvN10gcHl0aG9uMy1RdFB5OiByZWJ1aWxkIHdpdGggcHl0aG9uMy1weXNpZGUyIDUu MTUuNQoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtUXRQeS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvcHl0aG9uMy1RdFB5L3RlbXBsYXRlIGIvc3JjcGtncy9weXRob24zLVF0UHkvdGVtcGxhdGUK aW5kZXggYjlkZGVmMWFmMTkyLi45MmMwYjUwOWRlYzYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0 aG9uMy1RdFB5L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHl0aG9uMy1RdFB5L3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1RdFB5JwogcGtnbmFt ZT1weXRob24zLVF0UHkKIHZlcnNpb249MS45LjAKLXJldmlzaW9uPTMKK3JldmlzaW9uPTQKIHdy a3NyYz1RdFB5LSR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBob3N0bWFr ZWRlcGVuZHM9InB5dGhvbjMtc2V0dXB0b29scyIKCkZyb20gMWIzMTUwN2ZhNzNkNzkwZjliNjky NGU2MWFjNDk5MGI1ODI3NzVjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogeW9waXRv IDxwaWVycmUuYm91cmdpbkBmcmVlLmZyPgpEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDEzOjQyOjM4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1LzddIGxpYnNwbmF2OiB1cGRhdGUgdG8gMS4wLCBmaXgg bGljZW5zaW5nCgotLS0KIC4uLi9wYXRjaGVzL09PLk1ha2VmaWxlLmZpeC1saWJsaW5rcy5wYXRj aCAgICAgICB8IDE2IC0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbGlic3BuYXYvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpYnNwbmF2L3BhdGNoZXMvT08uTWFrZWZpbGUuZml4LWxpYmxpbmtzLnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJzcG5hdi9wYXRjaGVzL09PLk1ha2VmaWxlLmZpeC1saWJsaW5r cy5wYXRjaCBiL3NyY3BrZ3MvbGlic3BuYXYvcGF0Y2hlcy9PTy5NYWtlZmlsZS5maXgtbGlibGlu a3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1MGFhZTUxZmUwMi4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGlic3BuYXYvcGF0Y2hlcy9PTy5NYWtlZmlsZS5maXgt bGlibGlua3MucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1GaXggbGluayBn ZW5lcmF0aW9uIG9mIC5zbyBmaWxlcwotU291cmNlOiBodHRwczovL2dpdC5hcmNobGludXgub3Jn L3N2bnRvZ2l0L3BhY2thZ2VzLmdpdC9wbGFpbi90cnVuay9NYWtlZmlsZS5wYXRjaD9oPXBhY2th Z2VzL2xpYnNwbmF2Ci0KLS0tLSBhL01ha2VmaWxlLmlufgkyMDE1LTAxLTEwIDA5OjA4OjM1LjA0 MzQxNzk1NSArMDAwMAotKysrIGIvTWFrZWZpbGUuaW4JMjAxNS0wMS0xMCAwOTowOTowMC44MzMz MTUyNjkgKzAwMDAKLUBAIC01NCw4ICs1NCw4IEBACi0gCWNwICQobGliX3NvKSAkKERFU1RESVIp JChQUkVGSVgpLyQobGliZGlyKS8kKGxpYl9zbykKLSAJWyAtbiAiJChzb25hbWUpIiBdICYmIFwK LSAJCXJtIC1mICQoREVTVERJUikkKFBSRUZJWCkvJChsaWJkaXIpLyQoc29uYW1lKSAkKERFU1RE SVIpJChQUkVGSVgpLyQobGliZGlyKS8kKGRldmxpbmspICYmIFwKLS0JCWxuIC1zICQoREVTVERJ UikkKFBSRUZJWCkvJChsaWJkaXIpLyQobGliX3NvKSAkKERFU1RESVIpJChQUkVGSVgpLyQobGli ZGlyKS8kKHNvbmFtZSkgJiYgXAotLQkJbG4gLXMgJChERVNURElSKSQoUFJFRklYKS8kKGxpYmRp cikvJChzb25hbWUpICQoREVTVERJUikkKFBSRUZJWCkvJChsaWJkaXIpLyQoZGV2bGluaykgfHwg XAotKwkJbG4gLXMgJChsaWJfc28pICQoREVTVERJUikkKFBSRUZJWCkvJChsaWJkaXIpLyQoc29u YW1lKSAmJiBcCi0rCQlsbiAtcyAkKHNvbmFtZSkgJChERVNURElSKSQoUFJFRklYKS8kKGxpYmRp cikvJChkZXZsaW5rKSB8fCBcCi0gCQl0cnVlCi0gCWZvciBoIGluICQoaGRyKTsgZG8gY3AgLXAg JChzcmNkaXIpLyQkaCAkKERFU1RESVIpJChQUkVGSVgpL2luY2x1ZGUvOyBkb25lCi0gCmRpZmYg LS1naXQgYS9zcmNwa2dzL2xpYnNwbmF2L3RlbXBsYXRlIGIvc3JjcGtncy9saWJzcG5hdi90ZW1w bGF0ZQppbmRleCBkZjM1MDcyYjI0MDQuLjRjMmE2YWMzNDc1NiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9saWJzcG5hdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNwbmF2L3RlbXBsYXRlCkBAIC0x LDIxICsxLDI0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJzcG5hdicKIHBrZ25hbWU9bGli c3BuYXYKLXZlcnNpb249MC4yLjMKK3ZlcnNpb249MS4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLW9wdCIKIG1ha2VkZXBl bmRzPSJsaWJYMTEtZGV2ZWwiCiBzaG9ydF9kZXNjPSJPcGVuIHNvdXJjZSBhbHRlcm5hdGl2ZSB0 byAzRENvbm5leHRpb24gZHJpdmVycyIKIG1haW50YWluZXI9InlvcGl0byA8cGllcnJlLmJvdXJn aW5AZnJlZS5mcj4iCi1saWNlbnNlPSJHUEwtMyIKK2xpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhv bWVwYWdlPSJodHRwOi8vc3BhY2VuYXYuc291cmNlZm9yZ2UubmV0LyIKIGRpc3RmaWxlcz0iJHtT T1VSQ0VGT1JHRV9TSVRFfS9zcGFjZW5hdi8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLmd6Igot Y2hlY2tzdW09N2FlNGQ3YmI3ZjZhNWRkYTI4YjQ4Nzg5MWUwMWFjY2M4NTYzMTE0NDBmNTgyMjk5 NzYwZGFjZTZlZTVmMWY5MworY2hlY2tzdW09ODg0OWI3Zjc4MjZkNzUwZjY5NTZjZjhmNGY1Mzkz N2YyMzU5YWI2ZGE5N2Q2YzgzNGM3MWQ1Zjc3MTIxMmU3YwogCiBkb19idWlsZCgpIHsKIAltYWtl IENDPSIke0NDfSIgQVI9IiR7QVJ9IgogfQogCitwb3N0X2luc3RhbGwoKSB7CisJdmxpY2Vuc2Ug TElDRU5TRQorfQogbGlic3BuYXYtZGV2ZWxfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0g ZGV2ZWxvcG1lbnQgZmlsZXMiCiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gJHtzb3VyY2Vwa2d9 Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgpAQCAtMjMsNSArMjYsNiBAQCBsaWJzcG5hdi1kZXZl bF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSAidXNyL2xpYi8qLmEi CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3ZlIHVzci9zaGFyZS9wa2djb25maWcKIAl9 CiB9CgpGcm9tIDQ0MjFiZmYwNWViZTAyNjU0OWQ1YTM2M2NkY2FjOTY1Njk1M2ZhZDkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IHlvcGl0byA8cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4K RGF0ZTogVGh1LCAyNSBBdWcgMjAyMiAxMzo1NjozNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNi83 XSBweXRob24zLXBpdnk6IHVwZGF0ZSB0byAwLjYuOAoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtcGl2 eS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtcGl2eS90ZW1wbGF0ZSBi L3NyY3BrZ3MvcHl0aG9uMy1waXZ5L3RlbXBsYXRlCmluZGV4IGE0NDJiNmE5NGM4Ny4uYjA5ODY1 YTAzZWMxIDEwMDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbjMtcGl2eS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3B5dGhvbjMtcGl2eS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3B5dGhvbjMtcGl2eScKIHBrZ25hbWU9cHl0aG9uMy1waXZ5Ci12ZXJzaW9uPTAu Ni43Cit2ZXJzaW9uPTAuNi44CiByZXZpc2lvbj0xCiB3cmtzcmM9InBpdnktJHt2ZXJzaW9ufSIK IGJ1aWxkX3N0eWxlPWNtYWtlCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9InlvcGl0byA8 cGllcnJlLmJvdXJnaW5AZnJlZS5mcj4iCiBsaWNlbnNlPSJJU0MiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRodWIuY29tL2NvaW4zZC9waXZ5IgogZGlzdGZpbGVzPSIke2hvbWVwYWdlfS9hcmNoaXZl LyR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09MzdlMzNkODUxMTdhYWMyNzY0MGUwMTFkZjc0 ZGRjZDc3ZjI3MDQyODMwMGRmOTE2YjQ2ZWU1YzUwNjQ1ZDU4MgorY2hlY2tzdW09YzQ0M2RkN2Rk NzI0YjBiZmEwNjQyNzQ3OGI5ZDI0ZDMxZTBjM2I1MTM4YWM1NzQxYTI5MTdhNDQzYjI4ZjM0Ngog CiAjIHN0aWxsIHJlbGV2YW50IHdpdGggcGl2eSAwLjYuNiA/CiBjYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KCkZyb20gYTVhOTBjYzIzYjBjY2Y4YTdhNWMwMTBlYzhhNzFmOTBkY2E1Yjhl NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogeW9waXRvIDxwaWVycmUuYm91cmdpbkBm cmVlLmZyPgpEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDEzOjQyOjM5ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA3LzddIGZyZWVjYWQ6IHVwZGF0ZSB0byAwLjIwLjEKCi0tLQogc3JjcGtncy9mcmVlY2Fk L3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoICAgIHwgIDMwIC0KIC4uLi9wYXRjaGVzLzAxMC1z YWxvbWVzbWVzaC1leGVjaW5mby5wYXRjaCAgICB8ICAzMCAtCiBzcmNwa2dzL2ZyZWVjYWQvcGF0 Y2hlcy8xNTAtdnRrOS5wYXRjaCAgICAgICAgfCA3OTYgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNw a2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaCAgfCAgNTMgLS0KIC4uLi9w YXRjaGVzLzE1My1saW1pdHMuaC1mb3ItbXVzbC5wYXRjaCAgICAgICB8ICAxMyArCiAuLi4vMTU0 LXJldmVydC1ndWktdG1wLXJlZGlyZWN0LXN0ZGVyci5wYXRjaCAgfCAgNzMgKysKIHNyY3BrZ3Mv ZnJlZWNhZC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgOSArLQogNyBmaWxlcyBj aGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCA5MTQgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDAyLWV4ZWNpbmZvLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMDEwLXNhbG9tZXNtZXNoLWV4ZWNp bmZvLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUw LXZ0azkucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8x NTItY21ha2UtdnRrOS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZnJlZWNhZC9w YXRjaGVzLzE1My1saW1pdHMuaC1mb3ItbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzE1NC1yZXZlcnQtZ3VpLXRtcC1yZWRpcmVjdC1zdGRlcnIu cGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2luZm8u cGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMDItZXhlY2luZm8ucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjZGNhNzdhNzJhNC4uMDAwMDAwMDAwMDAwCi0tLSBh L3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAwMi1leGVjaW5mby5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDMwICswLDAgQEAKLS0tLSBhL3NyYy9BcHAvQXBwbGljYXRpb24uY3BwCTIwMjAtMDEt MjIgMjM6Mjc6NDIuNzA5MjczMDg3ICswMTAwCi0rKysgYi9zcmMvQXBwL0FwcGxpY2F0aW9uLmNw cAkyMDIwLTAxLTIyIDIzOjUwOjUzLjkxNTA3NTk1NSArMDEwMAotQEAgLTE0ODUsNyArMTQ4NSw5 IEBACi0gI2VuZGlmDQotIA0KLSAjaWYgZGVmaW5lZChGQ19PU19MSU5VWCkNCi0rI2lmZGVmIF9f R0xJQkNfXw0KLSAjaW5jbHVkZSA8ZXhlY2luZm8uaD4NCi0rI2VuZGlmDQotICNpbmNsdWRlIDxk bGZjbi5oPg0KLSAjaW5jbHVkZSA8Y3h4YWJpLmg+DQotIA0KLUBAIC0xNDk3LDYgKzE0OTksNyBA QAotIC8vIFRoaXMgZnVuY3Rpb24gcHJvZHVjZXMgYSBzdGFjayBiYWNrdHJhY2Ugd2l0aCBkZW1h bmdsZWQgZnVuY3Rpb24gJiBtZXRob2QgbmFtZXMuDQotIHZvaWQgcHJpbnRCYWNrdHJhY2Uoc2l6 ZV90IHNraXA9MCkNCi0gew0KLSsjaWZkZWYgX19HTElCQ19fDQotICAgICB2b2lkICpjYWxsc3Rh Y2tbMTI4XTsNCi0gICAgIHNpemVfdCBuTWF4RnJhbWVzID0gc2l6ZW9mKGNhbGxzdGFjaykgLyBz aXplb2YoY2FsbHN0YWNrWzBdKTsNCi0gICAgIHNpemVfdCBuRnJhbWVzID0gYmFja3RyYWNlKGNh bGxzdGFjaywgbk1heEZyYW1lcyk7DQotQEAgLTE1MjcsNiArMTUzMCw5IEBACi0gICAgIH0NCi0g DQotICAgICBmcmVlKHN5bWJvbHMpOw0KLSsjZWxzZQ0KLSsgICAgc3RkOjpjZXJyIDw8ICJzb3Jy eSwgbm8gYmFja3RyYWNlIG9uIG11c2wgbGliYyI7DQotKyNlbmRpZg0KLSB9DQotICNlbmRpZg0K LSANCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMTAtc2Fsb21lc21lc2gt ZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8wMTAtc2Fsb21lc21lc2gt ZXhlY2luZm8ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjNmJkYzlmZjQ4 NS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZnJlZWNhZC9wYXRjaGVzLzAxMC1zYWxvbWVz bWVzaC1leGVjaW5mby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLS0tLSBh L3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvRHJpdmVyU1RML0Jhc2ljc19VdGlscy5jcHAK LSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvRHJpdmVyU1RML0Jhc2ljc19VdGls cy5jcHAKLUBAIC0yOSw3ICsyOSw5IEBACi0gI2lmbmRlZiBXSU4zMgotICNpbmNsdWRlIDx1bmlz dGQuaD4KLSAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSsjaWZkZWYgX19HTElCQ19fCi0gI2luY2x1 ZGUgPGV4ZWNpbmZvLmg+Ci0rI2VuZGlmCi0gI2VuZGlmCi0gCi0gCi1AQCAtMTA5LDYgKzExMSw3 IEBACi0gI2lmbmRlZiBXSU4zMgotICAgdm9pZCBwcmludF90cmFjZWJhY2soKQotICAgewotKyNp ZmRlZiBfX0dMSUJDX18KLSAgICAgdm9pZCAqYXJyYXlbNTBdOwotICAgICBzaXplX3Qgc2l6ZTsK LSAgICAgY2hhciAqKnN0cmluZ3M7Ci1AQCAtMTIzLDYgKzEyNiw5IEBACi0gICAgICAgfQotIAot ICAgICBmcmVlIChzdHJpbmdzKTsKLSsjZWxzZSAgICAgCi0rICAgc3RkOjpjZXJyIDw8ICJzb3Jy eSwgbm8gYmFja3RyYWNlIG9uIG11c2wgbGliYyI7Ci0rI2VuZGlmCi0gICB9Ci0gI2Vsc2UKLSAg ICNpZiAoX01TQ19WRVIgPj0gMTQwMCkgLy8gVmlzdWFsIFN0dWRpbyAyMDA1CmRpZmYgLS1naXQg YS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTAtdnRrOS5wYXRjaCBiL3NyY3BrZ3MvZnJlZWNh ZC9wYXRjaGVzLzE1MC12dGs5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5 MjY3M2U3YzliOWYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8x NTAtdnRrOS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc5NiArMCwwIEBACi1UYWtlbiBmcm9t IGh0dHBzOi8vZ2l0aHViLmNvbS93d21heWVyL0ZyZWVDQUQvY29tbWl0L2JiOWJjYmQ1MWRmN2Mz Y2I3NmM1ODIzMDM4ZTRlYTBmN2UyNWE5ZmYKLWJ1dCByZW1vdmVkIHBhdGNoIG9uIGZpbGUgc3Jj L01vZC9GZW0vR3VpL1ZpZXdQcm92aWRlckZlbVBvc3RPYmplY3QuY3BwIDogYWxyZWFkeSBhcHBs aWVkICgyMDIxLTAxLTIwKQotCi1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9p bmMvU01EU19NZXNoRWxlbWVudC5oeHggYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NN RFNfTWVzaEVsZW1lbnQuaHh4Ci1pbmRleCAxNGE2ZDlhNzYzZi4uMGU5YjllNmM5MDUgMTAwNjQ0 Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfTWVzaEVsZW1lbnQuaHh4 Ci0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvaW5jL1NNRFNfTWVzaEVsZW1lbnQuaHh4 Ci1AQCAtNDAsMTEgKzQwLDE2IEBACi0gCi0gI2luY2x1ZGUgPHZ0a1R5cGUuaD4KLSAjaW5jbHVk ZSA8dnRrQ2VsbFR5cGUuaD4KLSsjaW5jbHVkZSA8dnRrQ2VsbEFycmF5Lmg+Ci0gCi0gLy90eXBl ZGVmIHVuc2lnbmVkIHNob3J0IFVTaG9ydFR5cGU7Ci0gdHlwZWRlZiBzaG9ydCBTaG9ydFR5cGU7 Ci0gdHlwZWRlZiBpbnQgICBMb25nVHlwZTsKLS0KLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIK LSt0eXBlZGVmIGNvbnN0IHZ0a0lkVHlwZSogdnRrSWRUeXBlUHRyOwotKyNlbHNlCi0rdHlwZWRl ZiB2dGtJZFR5cGUqIHZ0a0lkVHlwZVB0cjsKLSsjZW5kaWYKLSBjbGFzcyBTTURTX01lc2hOb2Rl OwotIGNsYXNzIFNNRFNfTWVzaEVkZ2U7Ci0gY2xhc3MgU01EU19NZXNoRmFjZTsKLUBAIC0xOTIs NyArMTk3LDcgQEAgcHJvdGVjdGVkOgotICAgLy8hIEVsZW1lbnQgaW5kZXggaW4gdmVjdG9yIFNN RFNfTWVzaDo6bXlOb2RlcyBvciBTTURTX01lc2g6Om15Q2VsbHMKLSAgIGludCBteUlEOwotICAg Ly8hIGluZGV4IGluIHZ0a1Vuc3RydWN0dXJlZEdyaWQKLS0gIGludCBteVZ0a0lEOwotKyAgdnRr SWRUeXBlIG15VnRrSUQ7Ci0gICAvLyEgU01EU19NZXNoIGlkZW50aWZpY2F0aW9uIGluIFNNRVNI Ci0gICBTaG9ydFR5cGUgbXlNZXNoSWQ7Ci0gICAvLyEgU3ViU2hhcGUgYW5kIFN1Yk1lc2ggaWRl bnRpZmljYXRpb24gaW4gU01FU0hEUwotZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHggYi9zcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvaW5jL1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5oeHgKLWluZGV4IDllNGEyM2VkZGZiLi43NzQ2 NTgxNDU0MSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9pbmMvU01EU19V bnN0cnVjdHVyZWRHcmlkLmh4eAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL2luYy9T TURTX1Vuc3RydWN0dXJlZEdyaWQuaHh4Ci1AQCAtOTUsNyArOTUsMTEgQEAgcHVibGljOgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFwPGludCwgc3RkOjpt YXA8bG9uZyxpbnQ+ID4mIG5vZGVRdWFkRG9tYWlucyk7Ci0gICB2dGtDZWxsTGlua3MqIEdldExp bmtzKCkKLSAgIHsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgICAgcmV0dXJuIHN0YXRp Y19jYXN0PHZ0a0NlbGxMaW5rcyo+KEdldENlbGxMaW5rcygpKTsKLSsjZWxzZQotICAgICByZXR1 cm4gTGlua3M7Ci0rI2VuZGlmCi0gICB9Ci0gICBTTURTX0Rvd253YXJkKiBnZXREb3duQXJyYXko dW5zaWduZWQgY2hhciB2dGtUeXBlKQotICAgewotZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fs b21lc21lc2gvc3JjL1NNRFMvU01EU19CYWxsRWxlbWVudC5jcHAKLWluZGV4IDI5OTA5M2M5NGY2 Li4yNjgwYzIxNzMwNSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMv U01EUy9TTURTX0JhbGxFbGVtZW50LmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNo L3NyYy9TTURTL1NNRFNfQmFsbEVsZW1lbnQuY3BwCi1AQCAtNjcsMTAgKzY3LDE2IEBAIHZvaWQg U01EU19CYWxsRWxlbWVudDo6U2V0RGlhbWV0ZXIoZG91YmxlIGRpYW1ldGVyKQotIGJvb2wgU01E U19CYWxsRWxlbWVudDo6Q2hhbmdlTm9kZSAoY29uc3QgU01EU19NZXNoTm9kZSAqIG5vZGUpCi0g ewotICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXS0+Z2V0R3JpZCgpOwotKyNpZmRlZiBWVEtfQ0VMTF9BUlJBWV9WMgotKyAgdnRrTmV3 PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKLSsgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwg Y2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOwotKyAgY2VsbFBvaW50cy0+U2V0SWQoMCwgbm9kZS0+ Z2V0VnRrSWQoKSk7Ci0rI2Vsc2UKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLSAgIHZ0a0lkVHlw ZSogcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRzKTsK LSAgIHB0c1swXSA9IG5vZGUtPmdldFZ0a0lkKCk7Ci0rI2VuZGlmCi0gICBTTURTX01lc2g6Ol9t ZXNoTGlzdFtteU1lc2hJZF0tPnNldE15TW9kaWZpZWQoKTsKLSAgIHJldHVybiB0cnVlOwotIH0K LUBAIC04Myw3ICs4OSw4IEBAIHZvaWQgU01EU19CYWxsRWxlbWVudDo6UHJpbnQgKHN0ZDo6b3N0 cmVhbSAmIE9TKSBjb25zdAotIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfQmFsbEVsZW1lbnQ6 OkdldE5vZGUgKGNvbnN0IGludCBpbmQpIGNvbnN0Ci0gewotICAgdnRrVW5zdHJ1Y3R1cmVkR3Jp ZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwotLSAg dnRrSWRUeXBlIG5wdHMsICpwdHM7Ci0rICB2dGtJZFR5cGUgbnB0czsKLSsgIHZ0a0lkVHlwZVB0 ciBwdHM7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKCBteVZ0a0lELCBucHRzLCBwdHMgKTsKLSAg IHJldHVybiBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmROb2RlVnRrKCBwdHNb IDAgXSk7Ci0gfQotZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMv U01EU19Eb3dud2FyZC5jcHAgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01E U19Eb3dud2FyZC5jcHAKLWluZGV4IGQ2MDQ5YzBiZDE5Li5hNDFmNWMxOGU3OCAxMDA2NDQKLS0t LSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX0Rvd253YXJkLmNwcAot KysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfRG93bndhcmQuY3Bw Ci1AQCAtMzAzLDcgKzMwMyw3IEBAIGludCBTTURTX0Rvd24xRDo6Z2V0Tm9kZVNldChpbnQgY2Vs bElkLCBpbnQqIG5vZGVTZXQpCi0gdm9pZCBTTURTX0Rvd24xRDo6c2V0Tm9kZXMoaW50IGNlbGxJ ZCwgaW50IHZ0a0lkKQotIHsKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAq cHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCi0rICB2dGtJ ZFR5cGVQdHIgcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNl Ci0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh2dGtJZCwgbnB0cywgcHRzKTsKLSAgIC8vIE1FU1NB R0UodnRrSWQgPDwgIiAiIDw8IG5wdHMgPDwgIiAgIiA8PCBfbmJEb3duQ2VsbHMpOwotICAgLy9B U1NFUlQobnB0cyA9PSBfbmJEb3duQ2VsbHMpOwotQEAgLTM1Nyw3ICszNTcsNyBAQCBpbnQgU01E U19Eb3duMUQ6OmNvbXB1dGVWdGtDZWxscyhpbnQgKnB0cywgc3RkOjp2ZWN0b3I8aW50PiYgdnRr SWRzKQotICAgICB7Ci0gICAgICAgdnRrSWRUeXBlIHBvaW50ID0gcHRzW2ldOwotICAgICAgIGlu dCBudW1DZWxscyA9IF9ncmlkLT5HZXRMaW5rcygpLT5HZXROY2VsbHMocG9pbnQpOwotLSAgICAg IHZ0a0lkVHlwZSAqY2VsbHMgPSBfZ3JpZC0+R2V0TGlua3MoKS0+R2V0Q2VsbHMocG9pbnQpOwot KyAgICAgIHZ0a0lkVHlwZVB0ciBjZWxscyA9IF9ncmlkLT5HZXRMaW5rcygpLT5HZXRDZWxscyhw b2ludCk7Ci0gICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBudW1DZWxsczsgaisrKQotICAgICAg ICAgewotICAgICAgICAgICBpbnQgdnRrQ2VsbElkID0gY2VsbHNbal07Ci1AQCAtNTMyLDcgKzUz Miw3IEBAIGludCBTTURTX0Rvd24yRDo6Y29tcHV0ZVZvbHVtZUlkcyhpbnQgY2VsbElkLCBpbnQq IGlkcykKLSAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhlIGZhY2UKLSAKLSAgIHZ0a0lk VHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqcHRzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBw b2ludCBpZCdzIG9mIHRoZSBmYWNlCi0rICB2dGtJZFR5cGVQdHIgcHRzOyAvLyB3aWxsIHJlZmVy IHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSBmYWNlCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyhj ZWxsSWQsIG5wdHMsIHB0cyk7Ci0gICB2ZWN0b3I8aW50PiBub2RlczsKLSAgIGZvciAoaW50IGkg PSAwOyBpIDwgbnB0czsgaSsrKQotQEAgLTU3Nyw3ICs1NzcsNyBAQCBpbnQgU01EU19Eb3duMkQ6 OmNvbXB1dGVWb2x1bWVJZHNGcm9tTm9kZXNGYWNlKGludCogcHRzLCBpbnQgbnB0cywgaW50KiBp ZHMpCi0gICAgICAgdnRrSWRUeXBlIHBvaW50ID0gcHRzW2ldOwotICAgICAgIGludCBudW1DZWxs cyA9IF9ncmlkLT5HZXRMaW5rcygpLT5HZXROY2VsbHMocG9pbnQpOwotICAgICAgIC8vTUVTU0FH RSgiY2VsbHMgcG91ciAiIDw8IGkgPDwgIiAiIDw8IG51bUNlbGxzKTsKLS0gICAgICB2dGtJZFR5 cGUgKmNlbGxzID0gX2dyaWQtPkdldExpbmtzKCktPkdldENlbGxzKHBvaW50KTsKLSsgICAgICB2 dGtJZFR5cGVQdHIgY2VsbHMgPSBfZ3JpZC0+R2V0TGlua3MoKS0+R2V0Q2VsbHMocG9pbnQpOwot ICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbnVtQ2VsbHM7IGorKykKLSAgICAgICAgIHsKLSAg ICAgICAgICAgaW50IHZ0a0NlbGxJZCA9IGNlbGxzW2pdOwotQEAgLTYyNyw3ICs2MjcsNyBAQCBp bnQgU01EU19Eb3duMkQ6OmNvbXB1dGVWb2x1bWVJZHNGcm9tTm9kZXNGYWNlKGludCogcHRzLCBp bnQgbnB0cywgaW50KiBpZHMpCi0gdm9pZCBTTURTX0Rvd24yRDo6c2V0VGVtcE5vZGVzKGludCBj ZWxsSWQsIGludCB2dGtJZCkKLSB7Ci0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5 cGUgKnB0czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotKyAg dnRrSWRUeXBlUHRyIHB0czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUg ZmFjZQotICAgX2dyaWQtPkdldENlbGxQb2ludHModnRrSWQsIG5wdHMsIHB0cyk7Ci0gICAvLyBN RVNTQUdFKHZ0a0lkIDw8ICIgIiA8PCBucHRzIDw8ICIgICIgPDwgX25iTm9kZXMpOwotICAgLy9B U1NFUlQobnB0cyA9PSBfbmJOb2Rlcyk7Ci1AQCAtNzk1LDcgKzc5NSw3IEBAIHZvaWQgU01EU19E b3duM0Q6OmdldE5vZGVJZHMoaW50IGNlbGxJZCwgc3RkOjpzZXQ8aW50PiYgbm9kZVNldCkKLSB7 Ci0gICBpbnQgdnRrSWQgPSB0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdOwotICAgdnRrSWRUeXBl IG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9p bnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVm ZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2lu dHModnRrSWQsIG5wdHMsIG5vZGVzKTsKLSAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnB0czsgaSsr KQotICAgICBub2RlU2V0Lmluc2VydChub2Rlc1tpXSk7Ci1AQCAtMTEyNiw3ICsxMTI2LDcgQEAg dm9pZCBTTURTX0Rvd25UZXRyYTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0 ZDo6dmVjdG9yPHZ0a0lkVHlwZT4mIG8KLSAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxs SWQpOwotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8g d2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQ dHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQot ICAgX2dyaWQtPkdldENlbGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywg bm9kZXMpOwotIAotICAgc2V0PGludD4gdG9maW5kOwotQEAgLTExNzgsNyArMTE3OCw3IEBAIHZv aWQgU01EU19Eb3duVGV0cmE6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0 RWxlbUJ5Tm9kZXNUeXBlJiBmYWNlCi0gICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2 b2x1bWUKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8v IHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBl UHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUK LSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOwotIAotICAgLy8g LS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFj ZQotQEAgLTEyMzQsNyArMTIzNCw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFRldHJhOjpnZXRPcmRl cmVkTm9kZXNPZkZhY2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlCi0gICAvL01F U1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsK LS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2Yg dGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBw b2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92 dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKLSAKLSAgIHNldDxpbnQ+IHRvZmluZDsK LUBAIC0xMjg4LDcgKzEyODgsNyBAQCB2b2lkIFNNRFNfRG93blF1YWRUZXRyYTo6Y29tcHV0ZUZh Y2VzV2l0aE5vZGVzKGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmCi0gICAvLyAtLS0g ZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsK LS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2Yg dGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBw b2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwg bnB0cywgbm9kZXMpOwotIAotICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBv ZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQotQEAgLTEzNTcsNyArMTM1Nyw3IEBAIHZvaWQgU01E U19Eb3duUHlyYW1pZDo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6dmVj dG9yPHZ0a0lkVHlwZT4mCi0gICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKLSAK LSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVm ZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVz OyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlk LT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsK LSAKLSAgIHNldDxpbnQ+IHRvZmluZDsKLUBAIC0xNDM1LDcgKzE0MzUsNyBAQCB2b2lkIFNNRFNf RG93blB5cmFtaWQ6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0RWxlbUJ5 Tm9kZXNUeXBlJiBmYQotICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0g Ci0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJl ZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2Rl czsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3Jp ZC0+R2V0Q2VsbFBvaW50cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8vIC0tLSBjcmVh dGUgYWxsIHRoZSBvcmRlcmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKLUBAIC0x NTAwLDcgKzE1MDAsNyBAQCB2b2lkIFNNRFNfRG93blF1YWRQeXJhbWlkOjpnZXRPcmRlcmVkTm9k ZXNPZkZhY2UoaW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeQotICAgLy9NRVNTQUdFKCJj ZWxsSWQgPSAiIDw8IGNlbGxJZCk7Ci0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJ ZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1 bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQn cyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElk c1tjZWxsSWRdLCBucHRzLCBub2Rlcyk7Ci0gCi0gICBzZXQ8aW50PiB0b2ZpbmQ7Ci1AQCAtMTU4 MCw3ICsxNTgwLDcgQEAgdm9pZCBTTURTX0Rvd25RdWFkUHlyYW1pZDo6Y29tcHV0ZUZhY2VzV2l0 aE5vZGVzKGludCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUKLSAgIC8vIC0tLSBmaW5kIHBv aW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRr SWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9s dW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlk J3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBu b2Rlcyk7Ci0gCi0gICAvLyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUg aWQncyBmb3IgZWFjaCBmYWNlCi1AQCAtMTY2MCw3ICsxNjYwLDcgQEAgdm9pZCBTTURTX0Rvd25Q ZW50YTo6Z2V0T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6dmVjdG9yPHZ0a0lk VHlwZT4mIG8KLSAgIC8vTUVTU0FHRSgiY2VsbElkID0gIiA8PCBjZWxsSWQpOwotIAotICAgdnRr SWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2RlczsgLy8gd2lsbCByZWZlciB0byB0 aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5cGVQdHIgbm9kZXM7IC8vIHdp bGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotICAgX2dyaWQtPkdldENl bGxQb2ludHModGhpcy0+X3Z0a0NlbGxJZHNbY2VsbElkXSwgbnB0cywgbm9kZXMpOwotIAotICAg c2V0PGludD4gdG9maW5kOwotQEAgLTE3NDQsNyArMTc0NCw3IEBAIHZvaWQgU01EU19Eb3duUGVu dGE6OmNvbXB1dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0RWxlbUJ5Tm9kZXNUeXBl JiBmYWNlCi0gICAvLyAtLS0gZmluZCBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAKLSAgIHZ0 a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8g dGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3 aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRD ZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOwotIAotICAgLy8gLS0tIGNyZWF0ZSBhbGwg dGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9yIGVhY2ggZmFjZQotQEAgLTE4MTAsNyAr MTgxMCw3IEBAIHZvaWQgU01EU19Eb3duUXVhZFBlbnRhOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2Uo aW50IGNlbGxJZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlCi0gICAvL01FU1NBR0UoImNlbGxJZCA9 ICIgPDwgY2VsbElkKTsKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAq bm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAg dnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRo ZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJ ZF0sIG5wdHMsIG5vZGVzKTsKLSAKLSAgIHNldDxpbnQ+IHRvZmluZDsKLUBAIC0xODk2LDcgKzE4 OTYsNyBAQCB2b2lkIFNNRFNfRG93blF1YWRQZW50YTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGlu dCBjZWxsSWQsIExpc3RFbGVtQnlOb2Rlc1R5cGUmCi0gICAvLyAtLS0gZmluZCBwb2ludCBpZCdz IG9mIHRoZSB2b2x1bWUKLSAKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAq bm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAg dnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRo ZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRzKGNlbGxJZCwgbnB0cywgbm9kZXMpOwot IAotICAgLy8gLS0tIGNyZWF0ZSBhbGwgdGhlIG9yZGVyZWQgbGlzdCBvZiBub2RlIGlkJ3MgZm9y IGVhY2ggZmFjZQotQEAgLTE5ODEsNyArMTk4MSw3IEBAIHZvaWQgU01EU19Eb3duSGV4YTo6Z2V0 T3JkZXJlZE5vZGVzT2ZGYWNlKGludCBjZWxsSWQsIHN0ZDo6dmVjdG9yPHZ0a0lkVHlwZT4mIG9y Ci0gICAvL01FU1NBR0UoImNlbGxJZCA9ICIgPDwgY2VsbElkKTsKLSAKLSAgIHZ0a0lkVHlwZSBu cHRzID0gMDsKLS0gIHZ0a0lkVHlwZSAqbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50 IGlkJ3Mgb2YgdGhlIHZvbHVtZQotKyAgdnRrSWRUeXBlUHRyIG5vZGVzOyAvLyB3aWxsIHJlZmVy IHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSAgIF9ncmlkLT5HZXRDZWxsUG9pbnRz KHRoaXMtPl92dGtDZWxsSWRzW2NlbGxJZF0sIG5wdHMsIG5vZGVzKTsKLSAKLSAgIHNldDxpbnQ+ IHRvZmluZDsKLUBAIC0yMDM2LDcgKzIwMzYsNyBAQCB2b2lkIFNNRFNfRG93bkhleGE6OmNvbXB1 dGVGYWNlc1dpdGhOb2RlcyhpbnQgY2VsbElkLCBMaXN0RWxlbUJ5Tm9kZXNUeXBlJiBmYWNlcwot ICAgLy8gLS0tIGZpbmQgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gCi0gICB2dGtJZFR5cGUg bnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAvLyB3aWxsIHJlZmVyIHRvIHRoZSBwb2lu dCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlwZVB0ciBub2RlczsgLy8gd2lsbCByZWZl ciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50 cyhjZWxsSWQsIG5wdHMsIG5vZGVzKTsKLSAKLSAgIC8vIC0tLSBjcmVhdGUgYWxsIHRoZSBvcmRl cmVkIGxpc3Qgb2Ygbm9kZSBpZCdzIGZvciBlYWNoIGZhY2UKLUBAIC0yMTEyLDcgKzIxMTIsNyBA QCB2b2lkIFNNRFNfRG93blF1YWRIZXhhOjpnZXRPcmRlcmVkTm9kZXNPZkZhY2UoaW50IGNlbGxJ ZCwgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPgotICAgLy9NRVNTQUdFKCJjZWxsSWQgPSAiIDw8IGNl bGxJZCk7Ci0gCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUgKm5vZGVzOyAv LyB3aWxsIHJlZmVyIHRvIHRoZSBwb2ludCBpZCdzIG9mIHRoZSB2b2x1bWUKLSsgIHZ0a0lkVHlw ZVB0ciBub2RlczsgLy8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1l Ci0gICBfZ3JpZC0+R2V0Q2VsbFBvaW50cyh0aGlzLT5fdnRrQ2VsbElkc1tjZWxsSWRdLCBucHRz LCBub2Rlcyk7Ci0gCi0gICBzZXQ8aW50PiB0b2ZpbmQ7Ci1AQCAtMjE2Nyw3ICsyMTY3LDcgQEAg dm9pZCBTTURTX0Rvd25RdWFkSGV4YTo6Y29tcHV0ZUZhY2VzV2l0aE5vZGVzKGludCBjZWxsSWQs IExpc3RFbGVtQnlOb2Rlc1R5cGUmIGYKLSAgIC8vIC0tLSBmaW5kIHBvaW50IGlkJ3Mgb2YgdGhl IHZvbHVtZQotIAotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlICpub2Rlczsg Ly8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgdm9sdW1lCi0rICB2dGtJZFR5 cGVQdHIgbm9kZXM7IC8vIHdpbGwgcmVmZXIgdG8gdGhlIHBvaW50IGlkJ3Mgb2YgdGhlIHZvbHVt ZQotICAgX2dyaWQtPkdldENlbGxQb2ludHMoY2VsbElkLCBucHRzLCBub2Rlcyk7Ci0gCi0gICAv LyAtLS0gY3JlYXRlIGFsbCB0aGUgb3JkZXJlZCBsaXN0IG9mIG5vZGUgaWQncyBmb3IgZWFjaCBm YWNlCi1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01l c2guY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfTWVzaC5jcHAK LWluZGV4IDYxYzhlNzUxZDk0Li4xZWFjMjkwN2QzZCAxMDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX01lc2guY3BwCi0rKysgYi9zcmMvM3JkUGFydHkv c2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoLmNwcAotQEAgLTQ3NjgsNyArNDc2OCwxMSBA QCB2b2lkIFNNRFNfTWVzaDo6ZHVtcEdyaWQoc3RyaW5nIGZpY2R1bXApCi0gICAgICAgICBmaWNj b24gPDwgZW5kbDsKLSAgIH0KLSAgIGZpY2NvbiA8PCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gY29ubmVjdGl2aXR5ICIgPDwgIG5iUG9pbnRzIDw8IGVuZGw7Ci0tICAgICAgICB2 dGtDZWxsTGlua3MgKmxpbmtzID0gbXlHcmlkLT5HZXRDZWxsTGlua3MoKTsKLSsjaWZkZWYgVlRL X0NFTExfQVJSQVlfVjIKLSsgIHZ0a0NlbGxMaW5rcyAqbGlua3MgPSBzdGF0aWNfY2FzdDx2dGtD ZWxsTGlua3MqPihteUdyaWQtPkdldENlbGxMaW5rcygpKTsKLSsjZWxzZQotKyAgdnRrQ2VsbExp bmtzICpsaW5rcyA9IG15R3JpZC0+R2V0Q2VsbExpbmtzKCk7Ci0rI2VuZGlmCi0gICBmb3IgKGlu dCBpPTA7IGk8bmJQb2ludHM7IGkrKykKLSAgIHsKLSAgICAgICAgIGludCBuY2VsbHMgPSBsaW5r cy0+R2V0TmNlbGxzKGkpOwotZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3Jj L1NNRFMvU01EU19NZXNoMERFbGVtZW50LmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9z cmMvU01EUy9TTURTX01lc2gwREVsZW1lbnQuY3BwCi1pbmRleCA5NTQzOGVhYjA2NC4uMGRmMzJl M2I5N2MgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01E U19NZXNoMERFbGVtZW50LmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9T TURTL1NNRFNfTWVzaDBERWxlbWVudC5jcHAKLUBAIC0xNDYsNiArMTQ2LDE3IEBAIGJvb2wgU01E U19NZXNoMERFbGVtZW50OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1td LCBjb25zdCBpbnQgbmJOCi0gICBpZiAoIG5iTm9kZXMgPT0gMSApCi0gICB7Ci0gICAgIHZ0a1Vu c3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdl dEdyaWQoKTsKLSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgICAgdnRrTmV3PHZ0a0lkTGlz dD4gY2VsbFBvaW50czsKLSsgICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9p bnRzLkdldFBvaW50ZXIoKSk7Ci0rICAgIGlmIChuYk5vZGVzICE9IGNlbGxQb2ludHMtPkdldE51 bWJlck9mSWRzKCkpCi0rICAgIHsKLSsgICAgICBNRVNTQUdFKCJDaGFuZ2VOb2RlcyBwcm9ibGVt OiBub3QgdGhlIHNhbWUgbnVtYmVyIG9mIG5vZGVzICIgPDwgY2VsbFBvaW50cy0+R2V0TnVtYmVy T2ZJZHMoKSA8PCAiIC0+ICIgPDwgbmJOb2Rlcyk7Ci0rICAgICAgcmV0dXJuIGZhbHNlOwotKyAg ICB9Ci0rICAgIG15Tm9kZSA9IG5vZGVzWzBdOwotKyAgICBjZWxsUG9pbnRzLT5TZXRJZCgwLCBt eU5vZGUtPmdldFZ0a0lkKCkpOwotKyNlbHNlCi0gICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLSAg ICAgdnRrSWRUeXBlKiBwdHMgPSAwOwotICAgICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQs IG5wdHMsIHB0cyk7Ci1AQCAtMTU2LDYgKzE2Nyw3IEBAIGJvb2wgU01EU19NZXNoMERFbGVtZW50 OjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJO Ci0gICAgIH0KLSAgICAgbXlOb2RlID0gbm9kZXNbMF07Ci0gICAgIHB0c1swXSA9IG15Tm9kZS0+ Z2V0VnRrSWQoKTsKLSsjZW5kaWYKLSAKLSAgICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNo SWRdLT5zZXRNeU1vZGlmaWVkKCk7Ci0gICAgIHJldHVybiB0cnVlOwotZGlmZiAtLWdpdCBzcmMv M3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9kZS5jcHAgYi9zcmMvM3Jk UGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19NZXNoTm9kZS5jcHAKLWluZGV4IGY2NDdh NWYxYjhmLi41YjkwM2M4ZmI1NSAxMDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01EUy9TTURTX01lc2hOb2RlLmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNt ZXNoL3NyYy9TTURTL1NNRFNfTWVzaE5vZGUuY3BwCi1AQCAtMTkxLDcgKzE5MSw3IEBAIGNsYXNz IFNNRFNfTWVzaE5vZGVfTXlJbnZJdGVyYXRvcjogcHVibGljIFNNRFNfRWxlbUl0ZXJhdG9yCi0g U01EU19FbGVtSXRlcmF0b3JQdHIgU01EU19NZXNoTm9kZTo6Ci0gR2V0SW52ZXJzZUVsZW1lbnRJ dGVyYXRvcihTTURTQWJzX0VsZW1lbnRUeXBlIHR5cGUpIGNvbnN0Ci0gewotLSAgdnRrQ2VsbExp bmtzOjpMaW5rIGwgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+ R2V0Q2VsbExpbmtzKCktPkdldExpbmsobXlWdGtJRCk7Ci0rICB2dGtDZWxsTGlua3M6Okxpbmsg bCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVz aElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsobXlWdGtJRCk7Ci0gICAv L01FU1NBR0UoIm15SUQgIiA8PCBteUlEIDw8ICIgbmNlbGxzICIgPDwgbC5uY2VsbHMpOwotICAg cmV0dXJuIFNNRFNfRWxlbUl0ZXJhdG9yUHRyKG5ldyBTTURTX01lc2hOb2RlX015SW52SXRlcmF0 b3IoU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLCBsLmNlbGxzLCBsLm5jZWxscywgdHlw ZSkpOwotIH0KLUBAIC0yNTEsNyArMjUxLDcgQEAgZWxlbWVudHNJdGVyYXRvcihTTURTQWJzX0Vs ZW1lbnRUeXBlIHR5cGUpIGNvbnN0Ci0gICAgIHJldHVybiBTTURTX01lc2hFbGVtZW50OjplbGVt ZW50c0l0ZXJhdG9yKFNNRFNBYnNfTm9kZSk7Ci0gICBlbHNlCi0gICB7Ci0tICAgIHZ0a0NlbGxM aW5rczo6TGluayBsID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCkt PkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG15VnRrSUQpOwotKyAgICB2dGtDZWxsTGlua3M6Okxp bmsgbCA9IHN0YXRpY19jYXN0PHZ0a0NlbGxMaW5rcyo+KFNNRFNfTWVzaDo6X21lc2hMaXN0W215 TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsobXlWdGtJRCk7Ci0g ICAgIHJldHVybiBTTURTX0VsZW1JdGVyYXRvclB0cihuZXcgU01EU19NZXNoTm9kZV9NeUl0ZXJh dG9yKFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXSwgbC5jZWxscywgbC5uY2VsbHMsIHR5 cGUpKTsKLSAgIH0KLSB9Ci1AQCAtMzUwLDcgKzM1MCw3IEBAIHZvaWQgU01EU19NZXNoTm9kZTo6 QWRkSW52ZXJzZUVsZW1lbnQoY29uc3QgU01EU19NZXNoRWxlbWVudCogTUUpCi0gICBjb25zdCBT TURTX01lc2hDZWxsICpjZWxsID0gZHluYW1pY19jYXN0PGNvbnN0IFNNRFNfTWVzaENlbGwqPiAo TUUpOwotICAgYXNzZXJ0KGNlbGwpOwotICAgU01EU19VbnN0cnVjdHVyZWRHcmlkKiBncmlkID0g U01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0tICB2dGtDZWxsTGlu a3MgKkxpbmtzID0gZ3JpZC0+R2V0Q2VsbExpbmtzKCk7Ci0rICB2dGtDZWxsTGlua3MgKkxpbmtz ID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oZ3JpZC0+R2V0Q2VsbExpbmtzKCkpOwotICAg TGlua3MtPlJlc2l6ZUNlbGxMaXN0KG15VnRrSUQsIDEpOwotICAgTGlua3MtPkFkZENlbGxSZWZl cmVuY2UoY2VsbC0+Z2V0VnRrSWQoKSwgbXlWdGtJRCk7Ci0gfQotQEAgLTM2Niw3ICszNjYsNyBA QCB2b2lkIFNNRFNfTWVzaE5vZGU6OkNsZWFySW52ZXJzZUVsZW1lbnRzKCkKLSAKLSBib29sIFNN RFNfTWVzaE5vZGU6OmVtcHR5SW52ZXJzZUVsZW1lbnRzKCkKLSB7Ci0tICB2dGtDZWxsTGlua3M6 OkxpbmsgbCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpLT5HZXRD ZWxsTGlua3MoKS0+R2V0TGluayhteVZ0a0lEKTsKLSsgIHZ0a0NlbGxMaW5rczo6TGluayBsID0g c3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4oU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRd LT5nZXRHcmlkKCktPkdldENlbGxMaW5rcygpKS0+R2V0TGluayhteVZ0a0lEKTsKLSAgIHJldHVy biAobC5uY2VsbHMgPT0gMCk7Ci0gfQotIAotQEAgLTM3OCw3ICszNzgsNyBAQCBib29sIFNNRFNf TWVzaE5vZGU6OmVtcHR5SW52ZXJzZUVsZW1lbnRzKCkKLSAKLSBpbnQgU01EU19NZXNoTm9kZTo6 TmJJbnZlcnNlRWxlbWVudHMoU01EU0Fic19FbGVtZW50VHlwZSB0eXBlKSBjb25zdAotIHsKLS0g IHZ0a0NlbGxMaW5rczo6TGluayBsID0gU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5n ZXRHcmlkKCktPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG15VnRrSUQpOwotKyAgdnRrQ2VsbExp bmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxsTGlua3MqPihTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKS0+R2V0Q2VsbExpbmtzKCkpLT5HZXRMaW5rKG15VnRr SUQpOwotIAotICAgaWYgKCB0eXBlID09IFNNRFNBYnNfQWxsICkKLSAgICAgcmV0dXJuIGwubmNl bGxzOwotZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19V bnN0cnVjdHVyZWRHcmlkLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9T TURTX1Vuc3RydWN0dXJlZEdyaWQuY3BwCi1pbmRleCBmYmQ5MDNiMWU3NC4uZmYyYjgxZTk2OTQg MTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19VbnN0 cnVjdHVyZWRHcmlkLmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURT L1NNRFNfVW5zdHJ1Y3R1cmVkR3JpZC5jcHAKLUBAIC0xMzksOCArMTM5LDggQEAgaW50IFNNRFNf VW5zdHJ1Y3R1cmVkR3JpZDo6SW5zZXJ0TmV4dExpbmtlZENlbGwoaW50IHR5cGUsIGludCBucHRz LCB2dGtJZFR5cGUgKnAKLSAgIGZvciAoOyBpdCAhPSBzZXRPZk5vZGVzLmVuZCgpOyArK2l0KQot ICAgICB7Ci0gICAgICAgLy9NRVNTQUdFKCJyZXZlcnNlIGxpbmsgZm9yIG5vZGUgIiA8PCAqaXQg PDwgIiBjZWxsICIgPDwgY2VsbGlkKTsKLS0gICAgICB0aGlzLT5MaW5rcy0+UmVzaXplQ2VsbExp c3QoKml0LCAxKTsKLS0gICAgICB0aGlzLT5MaW5rcy0+QWRkQ2VsbFJlZmVyZW5jZShjZWxsaWQs ICppdCk7Ci0rICAgICAgdGhpcy0+R2V0TGlua3MoKS0+UmVzaXplQ2VsbExpc3QoKml0LCAxKTsK LSsgICAgICB0aGlzLT5HZXRMaW5rcygpLT5BZGRDZWxsUmVmZXJlbmNlKGNlbGxpZCwgKml0KTsK LSAgICAgfQotIAotICAgcmV0dXJuIGNlbGxpZDsKLUBAIC0zMzIsOSArMzMyLDEzIEBAIHZvaWQg U01EU19VbnN0cnVjdHVyZWRHcmlkOjpjb3B5QmxvYyh2dGtVbnNpZ25lZENoYXJBcnJheSAqbmV3 VHlwZXMsCi0gICAgIHsKLSAgICAgICBuZXdUeXBlcy0+U2V0VmFsdWUoYWxyZWFkeUNvcGllZCwg dGhpcy0+VHlwZXMtPkdldFZhbHVlKGopKTsKLSAgICAgICBpZENlbGxzT2xkVG9OZXdbal0gPSBh bHJlYWR5Q29waWVkOyAvLyBvbGQgdnRrSWQgLS0+IG5ldyB2dGtJZAotKyNpZmRlZiBWVEtfQ0VM TF9BUlJBWV9WMgotKyAgICAgIHZ0a0lkVHlwZSBvbGRMb2MgPSB0aGlzLT5HZXRDZWxsTG9jYXRp b25zQXJyYXkoKS0+R2V0VmFsdWUoaik7Ci0rI2Vsc2UKLSAgICAgICB2dGtJZFR5cGUgb2xkTG9j ID0gdGhpcy0+TG9jYXRpb25zLT5HZXRWYWx1ZShqKTsKLSsjZW5kaWYKLSAgICAgICB2dGtJZFR5 cGUgbmJwdHM7Ci0tICAgICAgdnRrSWRUeXBlICpvbGRQdHNDZWxsID0gMDsKLSsgICAgICB2dGtJ ZFR5cGVQdHIgb2xkUHRzQ2VsbCA9IDA7Ci0gICAgICAgdGhpcy0+Q29ubmVjdGl2aXR5LT5HZXRD ZWxsKG9sZExvYywgbmJwdHMsIG9sZFB0c0NlbGwpOwotICAgICAgIGFzc2VydChuYnB0cyA8IE5C TUFYTk9ERVNJTkNFTEwpOwotICAgICAgIC8vTUVTU0FHRShqIDw8ICIgIiA8PCBhbHJlYWR5Q29w aWVkIDw8ICIgIiA8PCAoaW50KXRoaXMtPlR5cGVzLT5HZXRWYWx1ZShqKSA8PCAiICIgPDwgb2xk TG9jIDw8ICIgIiA8PCBuYnB0cyApOwotQEAgLTk1Miw2ICs5NTYsMjEgQEAgdm9pZCBTTURTX1Vu c3RydWN0dXJlZEdyaWQ6OkdldE5vZGVJZHMoc3RkOjpzZXQ8aW50PiYgbm9kZVNldCwgaW50IGRv d25JZCwgdW5zaWcKLSAgKi8KLSB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6TW9kaWZ5Q2Vs bE5vZGVzKGludCB2dGtWb2xJZCwgc3RkOjptYXA8aW50LCBpbnQ+IGxvY2FsQ2xvbmVkTm9kZUlk cykKLSB7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rICB2dGtOZXc8dnRrSWRMaXN0PiBj ZWxsUG9pbnRzOwotKyAgdGhpcy0+R2V0Q2VsbFBvaW50cyh2dGtWb2xJZCwgY2VsbFBvaW50cy5H ZXRQb2ludGVyKCkpOwotKyAgZm9yICh2dGtJZFR5cGUgaSA9IDA7IGkgPCBjZWxsUG9pbnRzLT5H ZXROdW1iZXJPZklkcygpOyBpKyspCi0rICAgIHsKLSsgICAgICBpZiAobG9jYWxDbG9uZWROb2Rl SWRzLmNvdW50KGNlbGxQb2ludHMtPkdldElkKGkpKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAg dnRrSWRUeXBlIG9sZHB0ID0gY2VsbFBvaW50cy0+R2V0SWQoaSk7Ci0rICAgICAgICAgIGNlbGxQ b2ludHMtPlNldElkKGksIGxvY2FsQ2xvbmVkTm9kZUlkc1tvbGRwdF0pOwotKyAgICAgICAgICAv L01FU1NBR0Uob2xkcHQgPDwgIiAtLT4gIiA8PCBwdHNbaV0pOwotKyAgICAgICAgICAvL3RoaXMt PlJlbW92ZVJlZmVyZW5jZVRvQ2VsbChvbGRwdCwgdnRrVm9sSWQpOwotKyAgICAgICAgICAvL3Ro aXMtPkFkZFJlZmVyZW5jZVRvQ2VsbChwdHNbaV0sIHZ0a1ZvbElkKTsKLSsgICAgICAgIH0KLSsg ICAgfQotKyNlbHNlCi0gICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0gICB2dGtJZFR5cGUgKnB0czsg Ly8gd2lsbCByZWZlciB0byB0aGUgcG9pbnQgaWQncyBvZiB0aGUgZmFjZQotICAgdGhpcy0+R2V0 Q2VsbFBvaW50cyh2dGtWb2xJZCwgbnB0cywgcHRzKTsKLUBAIC05NjYsNiArOTg1LDcgQEAgdm9p ZCBTTURTX1Vuc3RydWN0dXJlZEdyaWQ6Ok1vZGlmeUNlbGxOb2RlcyhpbnQgdnRrVm9sSWQsIHN0 ZDo6bWFwPGludCwgaW50PiBsb2MKLSAgICAgICAgICAgLy90aGlzLT5BZGRSZWZlcmVuY2VUb0Nl bGwocHRzW2ldLCB2dGtWb2xJZCk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSsjZW5kaWYKLSB9Ci0g Ci0gLyohIHJlb3JkZXIgdGhlIG5vZGVzIG9mIGEgZmFjZQotQEAgLTk5NSwxMSArMTAxNSwyMCBA QCB2b2lkIFNNRFNfVW5zdHJ1Y3R1cmVkR3JpZDo6QnVpbGRMaW5rcygpCi0gICAgIHRoaXMtPkxp bmtzLT5VblJlZ2lzdGVyKHRoaXMpOwotICAgICB9Ci0gCi0rI2lmZGVmIFZUS19DRUxMX0FSUkFZ X1YyCi0rICB0aGlzLT5MaW5rcyA9IFNNRFNfQ2VsbExpbmtzOjpOZXcoKTsKLSsgIEdldExpbmtz KCktPkFsbG9jYXRlKHRoaXMtPkdldE51bWJlck9mUG9pbnRzKCkpOwotKyAgR2V0TGlua3MoKS0+ UmVnaXN0ZXIodGhpcyk7Ci0rLy9GSVhNRTogdnRrOQotKyAgR2V0TGlua3MoKS0+QnVpbGRMaW5r cyh0aGlzKTsKLSsgIEdldExpbmtzKCktPkRlbGV0ZSgpOwotKyNlbHNlCi0gICB0aGlzLT5MaW5r cyA9IFNNRFNfQ2VsbExpbmtzOjpOZXcoKTsKLSAgIHRoaXMtPkxpbmtzLT5BbGxvY2F0ZSh0aGlz LT5HZXROdW1iZXJPZlBvaW50cygpKTsKLSAgIHRoaXMtPkxpbmtzLT5SZWdpc3Rlcih0aGlzKTsK LSAgIHRoaXMtPkxpbmtzLT5CdWlsZExpbmtzKHRoaXMsIHRoaXMtPkNvbm5lY3Rpdml0eSk7Ci0g ICB0aGlzLT5MaW5rcy0+RGVsZXRlKCk7Ci0rI2VuZGlmCi0gfQotIAotIC8qISBDcmVhdGUgYSB2 b2x1bWUgKHByaXNtIG9yIGhleGFoZWRyb24pIGJ5IGR1cGxpY2F0aW9uIG9mIGEgZmFjZS4KLWRp ZmYgLS1naXQgc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNfVnRrQ2VsbEl0 ZXJhdG9yLmNwcCBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0Nl bGxJdGVyYXRvci5jcHAKLWluZGV4IGRlYjA1OTg1ZjAwLi42M2I2ZWFiYjcwNCAxMDA2NDQKLS0t LSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0NlbGxJdGVyYXRv ci5jcHAKLSsrKyBiL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0Nl bGxJdGVyYXRvci5jcHAKLUBAIC0zMyw3ICszMyw4IEBAIFNNRFNfVnRrQ2VsbEl0ZXJhdG9yOjpT TURTX1Z0a0NlbGxJdGVyYXRvcihTTURTX01lc2gqIG1lc2gsIGludCB2dGtDZWxsSWQsIFNNRFNB Ci0gICB9Ci0gICBlbHNlCi0gICB7Ci0tICAgIHZ0a0lkVHlwZSBucHRzLCAqcHRzOwotKyAgICB2 dGtJZFR5cGUgbnB0czsKLSsgICAgdnRrSWRUeXBlUHRyIHB0czsKLSAgICAgZ3JpZC0+R2V0Q2Vs bFBvaW50cyggX2NlbGxJZCwgbnB0cywgcHRzICk7Ci0gICAgIF92dGtJZExpc3QtPlNldE51bWJl ck9mSWRzKCBfbmJOb2RlcyA9IG5wdHMgKTsKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBfbmJO b2RlczsgaSsrKQotQEAgLTY3LDcgKzY4LDcgQEAgU01EU19WdGtDZWxsSXRlcmF0b3JUb1VOVjo6 U01EU19WdGtDZWxsSXRlcmF0b3JUb1VOVihTTURTX01lc2gqIG1lc2gsIGludCB2dGtDZWwKLSAg IC8vTUVTU0FHRSgiU01EU19WdGtDZWxsSW50ZXJsYWNlZEl0ZXJhdG9yIChVTlYpIiA8PCBfdHlw ZSk7Ci0gCi0gICBfdnRrSWRMaXN0ID0gdnRrSWRMaXN0OjpOZXcoKTsKLS0gIHZ0a0lkVHlwZSog cHRzOwotKyAgdnRrSWRUeXBlUHRyIHB0czsKLSAgIHZ0a0lkVHlwZSBucHRzOwotICAgdnRrVW5z dHJ1Y3R1cmVkR3JpZCogZ3JpZCA9IF9tZXNoLT5nZXRHcmlkKCk7Ci0gICBncmlkLT5HZXRDZWxs UG9pbnRzKCh2dGtJZFR5cGUpX2NlbGxJZCwgbnB0cywgcHRzKTsKLUBAIC0xODIsNyArMTgzLDcg QEAgU01EU19WdGtDZWxsSXRlcmF0b3JQb2x5SDo6U01EU19WdGtDZWxsSXRlcmF0b3JQb2x5SChT TURTX01lc2gqIG1lc2gsIGludCB2dGtDZWwKLSAgIHsKLSAgICAgLy9NRVNTQUdFKCJTTURTX1Z0 a0NlbGxJdGVyYXRvciBQb2x5aGVkcmEiKTsKLSAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7Ci0t ICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOwotKyAgICB2dGtJZFR5cGVQdHIgcHRJZHMgPSAwOwot ICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKF9jZWxsSWQsIG5GYWNlcywgcHRJZHMpOwotICAgICBp bnQgaWQgPSAwOwotICAgICBfbmJOb2Rlc0luRmFjZXMgPSAwOwotZGlmZiAtLWdpdCBzcmMvM3Jk UGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtFZGdlLmNwcCBiL3NyYy8zcmRQYXJ0 eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0VkZ2UuY3BwCi1pbmRleCA5Nzg2YWJmOWFh ZS4uNmQ3NzJhM2NkNGEgMTAwNjQ0Ci0tLS0gYS9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3Jj L1NNRFMvU01EU19WdGtFZGdlLmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfVnRrRWRnZS5jcHAKLUBAIC02Nyw2ICs2NywxOSBAQCBib29sIFNNRFNfVnRr RWRnZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSAqIG5vZGUxLCBjb25zdCBTTURT X01lc2hOb2RlCi0gYm9vbCBTTURTX1Z0a0VkZ2U6OkNoYW5nZU5vZGVzKGNvbnN0IFNNRFNfTWVz aE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQotIHsKLSAgIHZ0a1Vuc3RydWN0dXJl ZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsK LSsjaWZkZWYgVlRLX0NFTExfQVJSQVlfVjIKLSsgIHZ0a05ldzx2dGtJZExpc3Q+IGNlbGxQb2lu dHM7Ci0rICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRrSUQsIGNlbGxQb2ludHMuR2V0UG9pbnRl cigpKTsKLSsgIGlmIChuYk5vZGVzICE9IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkpCi0r ICAgIHsKLSsgICAgICBNRVNTQUdFKCJDaGFuZ2VOb2RlcyBwcm9ibGVtOiBub3QgdGhlIHNhbWUg bnVtYmVyIG9mIG5vZGVzICIgPDwgY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSA8PCAiIC0+ ICIgPDwgbmJOb2Rlcyk7Ci0rICAgICAgcmV0dXJuIGZhbHNlOwotKyAgICB9Ci0rICBmb3IgKGlu dCBpID0gMDsgaSA8IG5iTm9kZXM7IGkrKykKLSsgICAgewotKyAgICAgIGNlbGxQb2ludHMtPlNl dElkKGksIG5vZGVzW2ldLT5nZXRWdGtJZCgpKTsKLSsgICAgfQotKyNlbHNlCi0gICB2dGtJZFR5 cGUgbnB0cyA9IDA7Ci0gICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0gICBncmlkLT5HZXRDZWxsUG9p bnRzKG15VnRrSUQsIG5wdHMsIHB0cyk7Ci1AQCAtNzksNiArOTIsNyBAQCBib29sIFNNRFNfVnRr RWRnZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNbXSwgY29uc3QgaW50 IG5iTm9kZXMpCi0gICAgIHsKLSAgICAgICBwdHNbaV0gPSBub2Rlc1tpXS0+Z2V0VnRrSWQoKTsK LSAgICAgfQotKyNlbmRpZgotICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5zZXRN eU1vZGlmaWVkKCk7Ci0gICByZXR1cm4gdHJ1ZTsKLSB9Ci1AQCAtODcsNyArMTAxLDcgQEAgYm9v bCBTTURTX1Z0a0VkZ2U6OklzTWVkaXVtTm9kZShjb25zdCBTTURTX01lc2hOb2RlKiBub2RlKSBj b25zdAotIHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNo TGlzdFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gIHZ0 a0lkVHlwZSogcHRzID0gMDsKLSsgIHZ0a0lkVHlwZVB0ciBwdHMgPSAwOwotICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyhteVZ0a0lELCBucHRzLCBwdHMpOwotICAgLy9NRVNTQUdFKCJJc01lZGl1bU5v ZGUgIiA8PCBucHRzICA8PCAiICIgPDwgKG5vZGUtPmdldFZ0a0lkKCkgPT0gcHRzW25wdHMtMV0p KTsKLSAgIHJldHVybiAoKG5wdHMgPT0gMykgJiYgKG5vZGUtPmdldFZ0a0lkKCkgPT0gcHRzWzJd KSk7Ci1AQCAtMTM3LDcgKzE1MSw4IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqCi0gU01EU19WdGtF ZGdlOjpHZXROb2RlKGNvbnN0IGludCBpbmQpIGNvbnN0Ci0gewotICAgdnRrVW5zdHJ1Y3R1cmVk R3JpZCogZ3JpZCA9IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwot LSAgdnRrSWRUeXBlIG5wdHMsICpwdHM7Ci0rICB2dGtJZFR5cGUgbnB0czsKLSsgIHZ0a0lkVHlw ZVB0ciBwdHM7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKCB0aGlzLT5teVZ0a0lELCBucHRzLCBw dHMgKTsKLSAgIHJldHVybiBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmROb2Rl VnRrKCBwdHNbIGluZCBdKTsKLSB9Ci1kaWZmIC0tZ2l0IHNyYy8zcmRQYXJ0eS9zYWxvbWVzbWVz aC9zcmMvU01EUy9TTURTX1Z0a0ZhY2UuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3Ny Yy9TTURTL1NNRFNfVnRrRmFjZS5jcHAKLWluZGV4IDEzODllMGQzNTg1Li5jYjk4MWJmYjE4ZSAx MDA2NDQKLS0tLSBhL3NyYy8zcmRQYXJ0eS9zYWxvbWVzbWVzaC9zcmMvU01EUy9TTURTX1Z0a0Zh Y2UuY3BwCi0rKysgYi9zcmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRFMvU01EU19WdGtG YWNlLmNwcAotQEAgLTEwMSw2ICsxMDEsMTkgQEAgdm9pZCBTTURTX1Z0a0ZhY2U6OmluaXRRdWFk UG9seShjb25zdCBzdGQ6OnZlY3Rvcjx2dGtJZFR5cGU+JiBub2RlSWRzLCBTTURTX01lc2gKLSBi b29sIFNNRFNfVnRrRmFjZTo6Q2hhbmdlTm9kZXMoY29uc3QgU01EU19NZXNoTm9kZSogbm9kZXNb XSwgY29uc3QgaW50IG5iTm9kZXMpCi0gewotICAgdnRrVW5zdHJ1Y3R1cmVkR3JpZCogZ3JpZCA9 IFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+Z2V0R3JpZCgpOwotKyNpZmRlZiBWVEtf Q0VMTF9BUlJBWV9WMgotKyAgdnRrTmV3PHZ0a0lkTGlzdD4gY2VsbFBvaW50czsKLSsgIGdyaWQt PkdldENlbGxQb2ludHMobXlWdGtJRCwgY2VsbFBvaW50cy5HZXRQb2ludGVyKCkpOwotKyAgaWYg KG5iTm9kZXMgIT0gY2VsbFBvaW50cy0+R2V0TnVtYmVyT2ZJZHMoKSkKLSsgICAgewotKyAgICAg IE1FU1NBR0UoIkNoYW5nZU5vZGVzIHByb2JsZW06IG5vdCB0aGUgc2FtZSBudW1iZXIgb2Ygbm9k ZXMgIiA8PCBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpIDw8ICIgLT4gIiA8PCBuYk5vZGVz KTsKLSsgICAgICByZXR1cm4gZmFsc2U7Ci0rICAgIH0KLSsgIGZvciAoaW50IGkgPSAwOyBpIDwg bmJOb2RlczsgaSsrKQotKyAgICB7Ci0rICAgICAgY2VsbFBvaW50cy0+U2V0SWQoaSwgbm9kZXNb aV0tPmdldFZ0a0lkKCkpOwotKyAgICB9Ci0rI2Vsc2UKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsK LSAgIHZ0a0lkVHlwZSogcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwg bnB0cywgcHRzKTsKLUBAIC0xMTMsNiArMTI2LDcgQEAgYm9vbCBTTURTX1Z0a0ZhY2U6OkNoYW5n ZU5vZGVzKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGVzW10sIGNvbnN0IGludCBuYk5vZGVzKQot ICAgICB7Ci0gICAgICAgcHRzW2ldID0gbm9kZXNbaV0tPmdldFZ0a0lkKCk7Ci0gICAgIH0KLSsj ZW5kaWYKLSAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgp OwotICAgcmV0dXJuIHRydWU7Ci0gfQotQEAgLTE3Myw3ICsxODcsOCBAQCBjb25zdCBTTURTX01l c2hOb2RlKgotIFNNRFNfVnRrRmFjZTo6R2V0Tm9kZShjb25zdCBpbnQgaW5kKSBjb25zdAotIHsK LSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlzdFtteU1l c2hJZF0tPmdldEdyaWQoKTsKLS0gIHZ0a0lkVHlwZSBucHRzLCAqcHRzOwotKyAgdnRrSWRUeXBl IG5wdHM7Ci0rICB2dGtJZFR5cGVQdHIgcHRzOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyggdGhp cy0+bXlWdGtJRCwgbnB0cywgcHRzICk7Ci0gICByZXR1cm4gU01EU19NZXNoOjpfbWVzaExpc3Rb bXlNZXNoSWRdLT5GaW5kTm9kZVZ0ayggcHRzWyBpbmQgXSk7Ci0gfQotQEAgLTE4Niw3ICsyMDEs OCBAQCBTTURTX1Z0a0ZhY2U6OkdldE5vZGUoY29uc3QgaW50IGluZCkgY29uc3QKLSBpbnQgU01E U19WdGtGYWNlOjpHZXROb2RlSW5kZXgoIGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUgKSBjb25z dAotIHsKLSAgIHZ0a1Vuc3RydWN0dXJlZEdyaWQqIGdyaWQgPSBTTURTX01lc2g6Ol9tZXNoTGlz dFtteU1lc2hJZF0tPmdldEdyaWQoKTsKLS0gIHZ0a0lkVHlwZSBucHRzLCAqcHRzOwotKyAgdnRr SWRUeXBlIG5wdHM7Ci0rICB2dGtJZFR5cGVQdHIgcHRzOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50 cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7Ci0gICBmb3IgKCB2dGtJZFR5cGUgaSA9IDA7 IGkgPCBucHRzOyArK2kgKQotICAgICBpZiAoIHB0c1tpXSA9PSBub2RlLT5nZXRWdGtJZCgpICkK LUBAIC0yNTEsNyArMjY3LDcgQEAgYm9vbCBTTURTX1Z0a0ZhY2U6OklzTWVkaXVtTm9kZShjb25z dCBTTURTX01lc2hOb2RlKiBub2RlKSBjb25zdAotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0g ICB2dGtJZFR5cGUgbnB0cyA9IDA7Ci0tICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0rICB2dGtJZFR5 cGVQdHIgcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwgbnB0cywgcHRz KTsKLSAgIHZ0a0lkVHlwZSBub2RlSWQgPSBub2RlLT5nZXRWdGtJZCgpOwotICAgZm9yIChpbnQg cmFuayA9IDA7IHJhbmsgPCBucHRzOyByYW5rKyspCi1AQCAtMzU2LDExICszNzIsMTggQEAgU01E U19Ob2RlSXRlcmF0b3JQdHIgU01EU19WdGtGYWNlOjppbnRlcmxhY2VkTm9kZXNJdGVyYXRvcigp IGNvbnN0Ci0gdm9pZCBTTURTX1Z0a0ZhY2U6OkNoYW5nZUFwZXgoU01EU19NZXNoTm9kZSogbm9k ZSkKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0gU01EU19NZXNoOjpfbWVzaExp c3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0rI2lmZGVmIFZUS19DRUxMX0FSUkFZX1YyCi0rICB2 dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOwotKyAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0 a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7Ci0rICBncmlkLT5SZW1vdmVSZWZlcmVuY2VU b0NlbGwoY2VsbFBvaW50cy0+R2V0SWQoMCksIG15VnRrSUQpOwotKyAgY2VsbFBvaW50cy0+U2V0 SWQoMCwgbm9kZS0+Z2V0VnRrSWQoKSk7Ci0rI2Vsc2UKLSAgIHZ0a0lkVHlwZSBucHRzID0gMDsK LSAgIHZ0a0lkVHlwZSogcHRzID0gMDsKLSAgIGdyaWQtPkdldENlbGxQb2ludHMobXlWdGtJRCwg bnB0cywgcHRzKTsKLSAgIGdyaWQtPlJlbW92ZVJlZmVyZW5jZVRvQ2VsbChwdHNbMF0sIG15VnRr SUQpOwotICAgcHRzWzBdID0gbm9kZS0+Z2V0VnRrSWQoKTsKLSsjZW5kaWYKLSAgIG5vZGUtPkFk ZEludmVyc2VFbGVtZW50KHRoaXMpLAotICAgU01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRd LT5zZXRNeU1vZGlmaWVkKCk7Ci0gfQotZGlmZiAtLWdpdCBzcmMvM3JkUGFydHkvc2Fsb21lc21l c2gvc3JjL1NNRFMvU01EU19WdGtWb2x1bWUuY3BwIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNo L3NyYy9TTURTL1NNRFNfVnRrVm9sdW1lLmNwcAotaW5kZXggMDE1ZWRmNzVmZDIuLjE5ZWJkMDc0 NmM4IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NNRFNf VnRrVm9sdW1lLmNwcAotKysrIGIvc3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTURTL1NN RFNfVnRrVm9sdW1lLmNwcAotQEAgLTEzMyw2ICsxMzMsMTkgQEAgdm9pZCBTTURTX1Z0a1ZvbHVt ZTo6aW5pdFBvbHkoY29uc3Qgc3RkOjp2ZWN0b3I8dnRrSWRUeXBlPiYgbm9kZUlkcywKLSBib29s IFNNRFNfVnRrVm9sdW1lOjpDaGFuZ2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1td LCBjb25zdCBpbnQgbmJOb2RlcykKLSB7Ci0gICB2dGtVbnN0cnVjdHVyZWRHcmlkKiBncmlkID0g U01EU19NZXNoOjpfbWVzaExpc3RbbXlNZXNoSWRdLT5nZXRHcmlkKCk7Ci0rI2lmZGVmIFZUS19D RUxMX0FSUkFZX1YyCi0rICB2dGtOZXc8dnRrSWRMaXN0PiBjZWxsUG9pbnRzOwotKyAgZ3JpZC0+ R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBjZWxsUG9pbnRzLkdldFBvaW50ZXIoKSk7Ci0rICBpZiAo bmJOb2RlcyAhPSBjZWxsUG9pbnRzLT5HZXROdW1iZXJPZklkcygpKQotKyAgICB7Ci0rICAgICAg TUVTU0FHRSgiQ2hhbmdlTm9kZXMgcHJvYmxlbTogbm90IHRoZSBzYW1lIG51bWJlciBvZiBub2Rl cyAiIDw8IGNlbGxQb2ludHMtPkdldE51bWJlck9mSWRzKCkgPDwgIiAtPiAiIDw8IG5iTm9kZXMp OwotKyAgICAgIHJldHVybiBmYWxzZTsKLSsgICAgfQotKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBu Yk5vZGVzOyBpKyspCi0rICAgIHsKLSsgICAgICBjZWxsUG9pbnRzLT5TZXRJZChpLCBub2Rlc1tp XS0+Z2V0VnRrSWQoKSk7Ci0rICAgIH0KLSsjZWxzZQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwot ICAgdnRrSWRUeXBlKiBwdHMgPSAwOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyhteVZ0a0lELCBu cHRzLCBwdHMpOwotQEAgLTE0NSw2ICsxNTgsNyBAQCBib29sIFNNRFNfVnRrVm9sdW1lOjpDaGFu Z2VOb2Rlcyhjb25zdCBTTURTX01lc2hOb2RlKiBub2Rlc1tdLCBjb25zdCBpbnQgbmJOb2Rlcwot ICAgICB7Ci0gICAgICAgcHRzW2ldID0gbm9kZXNbaV0tPmdldFZ0a0lkKCk7Ci0gICAgIH0KLSsj ZW5kaWYKLSAgIFNNRFNfTWVzaDo6X21lc2hMaXN0W215TWVzaElkXS0+c2V0TXlNb2RpZmllZCgp OwotICAgcmV0dXJuIHRydWU7Ci0gfQotQEAgLTIwNyw3ICsyMjEsNyBAQCBpbnQgU01EU19WdGtW b2x1bWU6Ok5iRmFjZXMoKSBjb25zdAotICAgICBjYXNlIFZUS19QT0xZSEVEUk9OOgotICAgICAg IHsKLSAgICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICAgICAgdnRrSWRUeXBlKiBw dElkcyA9IDA7Ci0rICAgICAgICB2dGtJZFR5cGVQdHIgcHRJZHMgPSAwOwotICAgICAgICAgZ3Jp ZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgICAg IG5iRmFjZXMgPSBuRmFjZXM7Ci0gICAgICAgICBicmVhazsKLUBAIC0yMzYsNyArMjUwLDcgQEAg aW50IFNNRFNfVnRrVm9sdW1lOjpOYk5vZGVzKCkgY29uc3QKLSAgIGVsc2UKLSAgICAgewotICAg ICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICAgIHZ0a0lkVHlwZSogcHRJZHMgPSAwOwot KyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgICAgZ3JpZC0+R2V0RmFjZVN0cmVh bSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgICBpbnQgaWQgPSAwOwotICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAtMjc2LDcgKzI5MCw3IEBA IGludCBTTURTX1Z0a1ZvbHVtZTo6TmJFZGdlcygpIGNvbnN0Ci0gICAgIGNhc2UgVlRLX1BPTFlI RURST046Ci0gICAgICAgewotICAgICAgICAgdnRrSWRUeXBlIG5GYWNlcyA9IDA7Ci0tICAgICAg ICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7 Ci0gICAgICAgICBncmlkLT5HZXRGYWNlU3RyZWFtKHRoaXMtPm15VnRrSUQsIG5GYWNlcywgcHRJ ZHMpOwotICAgICAgICAgbmJFZGdlcyA9IDA7Ci0gICAgICAgICBpbnQgaWQgPSAwOwotQEAgLTMx Miw3ICszMjYsNyBAQCBpbnQgU01EU19WdGtWb2x1bWU6Ok5iRmFjZU5vZGVzKGNvbnN0IGludCBm YWNlX2luZCkgY29uc3QKLSAgIGlmIChhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikKLSAgICAg ewotICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICAgIHZ0a0lkVHlwZSogcHRJZHMg PSAwOwotKyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgICAgZ3JpZC0+R2V0RmFj ZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgICBpbnQgaWQgPSAw OwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAtMzQyLDcgKzM1 Niw3IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXRGYWNlTm9kZShj b25zdCBpbnQgZmFjZV9pbmQsIGNvbnN0IGludCBuCi0gICBpZiAoYVZ0a1R5cGUgPT0gVlRLX1BP TFlIRURST04pCi0gICAgIHsKLSAgICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKLS0gICAgICB2 dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAgICB2dGtJZFR5cGVQdHIgcHRJZHMgPSAwOwotICAg ICAgIGdyaWQtPkdldEZhY2VTdHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7Ci0g ICAgICAgaW50IGlkID0gMDsKLSAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5GYWNlczsgaSsr KQotQEAgLTM3Miw3ICszODYsNyBAQCBzdGQ6OnZlY3RvcjxpbnQ+IFNNRFNfVnRrVm9sdW1lOjpH ZXRRdWFudGl0aWVzKCkgY29uc3QKLSAgIGlmIChhVnRrVHlwZSA9PSBWVEtfUE9MWUhFRFJPTikK LSAgICAgewotICAgICAgIHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICAgIHZ0a0lkVHlwZSog cHRJZHMgPSAwOwotKyAgICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgICAgZ3JpZC0+ R2V0RmFjZVN0cmVhbSh0aGlzLT5teVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgICBpbnQg aWQgPSAwOwotICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbkZhY2VzOyBpKyspCi1AQCAtNDMw LDcgKzQ0NCw3IEBAIGNvbnN0IFNNRFNfTWVzaE5vZGUqIFNNRFNfVnRrVm9sdW1lOjpHZXROb2Rl KGNvbnN0IGludCBpbmQpIGNvbnN0Ci0gICBpZiAoIGFWdGtUeXBlID09IFZUS19QT0xZSEVEUk9O KQotICAgewotICAgICB2dGtJZFR5cGUgbkZhY2VzID0gMDsKLS0gICAgdnRrSWRUeXBlKiBwdElk cyA9IDA7Ci0rICAgIHZ0a0lkVHlwZVB0ciBwdElkcyA9IDA7Ci0gICAgIGdyaWQtPkdldEZhY2VT dHJlYW0odGhpcy0+bXlWdGtJRCwgbkZhY2VzLCBwdElkcyk7Ci0gICAgIGludCBpZCA9IDAsIG5i UG9pbnRzID0gMDsKLSAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuRmFjZXM7IGkrKykKLUBAIC00 NDMsNyArNDU3LDggQEAgY29uc3QgU01EU19NZXNoTm9kZSogU01EU19WdGtWb2x1bWU6OkdldE5v ZGUoY29uc3QgaW50IGluZCkgY29uc3QKLSAgICAgfQotICAgICByZXR1cm4gMDsKLSAgIH0KLS0g IHZ0a0lkVHlwZSBucHRzLCAqcHRzOwotKyAgdnRrSWRUeXBlIG5wdHM7Ci0rICB2dGtJZFR5cGVQ dHIgcHRzOwotICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRz ICk7Ci0gICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiBpbnRlcmxhY2UgPSBTTURTX01lc2hDZWxs Ojpmcm9tVnRrT3JkZXIoIFZUS0NlbGxUeXBlKCBhVnRrVHlwZSApKTsKLSAgIHJldHVybiBTTURT X01lc2g6Ol9tZXNoTGlzdFtteU1lc2hJZF0tPkZpbmROb2RlVnRrKCBwdHNbIGludGVybGFjZS5l bXB0eSgpID8gaW5kIDogaW50ZXJsYWNlW2luZF1dICk7Ci1AQCAtNDYwLDcgKzQ3NSw3IEBAIGlu dCBTTURTX1Z0a1ZvbHVtZTo6R2V0Tm9kZUluZGV4KCBjb25zdCBTTURTX01lc2hOb2RlKiBub2Rl ICkgY29uc3QKLSAgIGlmICggYVZ0a1R5cGUgPT0gVlRLX1BPTFlIRURST04pCi0gICB7Ci0gICAg IHZ0a0lkVHlwZSBuRmFjZXMgPSAwOwotLSAgICB2dGtJZFR5cGUqIHB0SWRzID0gMDsKLSsgICAg dnRrSWRUeXBlUHRyIHB0SWRzID0gMDsKLSAgICAgZ3JpZC0+R2V0RmFjZVN0cmVhbSh0aGlzLT5t eVZ0a0lELCBuRmFjZXMsIHB0SWRzKTsKLSAgICAgaW50IGlkID0gMDsKLSAgICAgZm9yIChpbnQg aUYgPSAwOyBpRiA8IG5GYWNlczsgaUYrKykKLUBAIC00NzMsNyArNDg4LDggQEAgaW50IFNNRFNf VnRrVm9sdW1lOjpHZXROb2RlSW5kZXgoIGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUgKSBjb25z dAotICAgICB9Ci0gICAgIHJldHVybiAtMTsKLSAgIH0KLS0gIHZ0a0lkVHlwZSBucHRzLCAqcHRz OwotKyAgdnRrSWRUeXBlIG5wdHM7Ci0rICB2dGtJZFR5cGVQdHIgcHRzOwotICAgZ3JpZC0+R2V0 Q2VsbFBvaW50cyggdGhpcy0+bXlWdGtJRCwgbnB0cywgcHRzICk7Ci0gICBmb3IgKCB2dGtJZFR5 cGUgaSA9IDA7IGkgPCBucHRzOyArK2kgKQotICAgICBpZiAoIHB0c1tpXSA9PSBub2RlLT5nZXRW dGtJZCgpICkKLUBAIC01MzQsNyArNTUwLDcgQEAgYm9vbCBTTURTX1Z0a1ZvbHVtZTo6SXNNZWRp dW1Ob2RlKGNvbnN0IFNNRFNfTWVzaE5vZGUqIG5vZGUpIGNvbnN0Ci0gICAgICAgcmV0dXJuIGZh bHNlOwotICAgfQotICAgdnRrSWRUeXBlIG5wdHMgPSAwOwotLSAgdnRrSWRUeXBlKiBwdHMgPSAw OwotKyAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7Ci0gICBncmlkLT5HZXRDZWxsUG9pbnRzKG15VnRr SUQsIG5wdHMsIHB0cyk7Ci0gICB2dGtJZFR5cGUgbm9kZUlkID0gbm9kZS0+Z2V0VnRrSWQoKTsK LSAgIGZvciAoaW50IHJhbmsgPSAwOyByYW5rIDwgbnB0czsgcmFuaysrKQotZGlmZiAtLWdpdCBz cmMvM3JkUGFydHkvc2Fsb21lc21lc2gvc3JjL1NNRVNIL1NNRVNIX01lc2hFZGl0b3IuY3BwIGIv c3JjLzNyZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAot aW5kZXggZmNkMDQ0YjAwZjIuLmY1NGMyNGY4NjE4IDEwMDY0NAotLS0tIGEvc3JjLzNyZFBhcnR5 L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAotKysrIGIvc3JjLzNy ZFBhcnR5L3NhbG9tZXNtZXNoL3NyYy9TTUVTSC9TTUVTSF9NZXNoRWRpdG9yLmNwcAotQEAgLTEx MzQ4LDcgKzExMzQ4LDcgQEAgYm9vbCBTTUVTSF9NZXNoRWRpdG9yOjpEb3VibGVOb2Rlc09uR3Jv dXBCb3VuZGFyaWVzKCBjb25zdCBzdGQ6OnZlY3RvcjxUSURTb3J0ZWQKLSAgICAgICAgICAgICB7 Ci0gICAgICAgICAgICAgICBpbnQgb2xkSWQgPSAqaXRuOwotICAgICAgICAgICAgICAgLy9NRVNT QUdFKCIgICAgIG5vZGUgIiA8PCBvbGRJZCk7Ci0tICAgICAgICAgICAgICB2dGtDZWxsTGlua3M6 OkxpbmsgbCA9IGdyaWQtPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG9sZElkKTsKLSsgICAgICAg ICAgICAgIHZ0a0NlbGxMaW5rczo6TGluayBsID0gc3RhdGljX2Nhc3Q8dnRrQ2VsbExpbmtzKj4o Z3JpZC0+R2V0Q2VsbExpbmtzKCkpLT5HZXRMaW5rKG9sZElkKTsKLSAgICAgICAgICAgICAgIGZv ciAoaW50IGk9MDsgaTxsLm5jZWxsczsgaSsrKQotICAgICAgICAgICAgICAgICB7Ci0gICAgICAg ICAgICAgICAgICAgaW50IHZ0a0lkID0gbC5jZWxsc1tpXTsKLUBAIC0xMTUyNyw3ICsxMTUyNyw3 IEBAIGJvb2wgU01FU0hfTWVzaEVkaXRvcjo6RG91YmxlTm9kZXNPbkdyb3VwQm91bmRhcmllcygg Y29uc3Qgc3RkOjp2ZWN0b3I8VElEU29ydGVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy9NRVNTQUdFKCIgIGRvbWFpbiAiIDw8IGlkb20gPDwgIiB2b2x1bWUg IiA8PCBlbGVtLT5HZXRJRCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkb3VibGUgdmFsdWVzWzNdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2dGtJZFR5cGUqIHB0cyA9IDA7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdnRrSWRUeXBlUHRyIHB0cyA9IDA7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC0+R2V0Q2VsbFBvaW50cyh2 dGtWb2xJZHNbaXZvbF0sIG5wdHMsIHB0cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU01EU19WdGtWb2x1bWU6OmdyYXZpdHlDZW50ZXIoZ3JpZCwgcHRzLCBu cHRzLCB2YWx1ZXMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIChpZCA9PTApCi1AQCAtMTE3MDgsNyArMTE3MDgsNyBAQCBib29sIFNNRVNIX01lc2hFZGl0 b3I6OkRvdWJsZU5vZGVzT25Hcm91cEJvdW5kYXJpZXMoIGNvbnN0IHN0ZDo6dmVjdG9yPFRJRFNv cnRlZAotICAgICAgICAgewotICAgICAgICAgICBpbnQgb2xkSWQgPSBpdG5vZC0+Zmlyc3Q7Ci0g ICAgICAgICAgIC8vTUVTU0FHRSgiICAgICBub2RlICIgPDwgb2xkSWQpOwotLSAgICAgICAgICB2 dGtDZWxsTGlua3M6OkxpbmsgbCA9IGdyaWQtPkdldENlbGxMaW5rcygpLT5HZXRMaW5rKG9sZElk KTsKLSsgICAgICAgICAgdnRrQ2VsbExpbmtzOjpMaW5rIGwgPSBzdGF0aWNfY2FzdDx2dGtDZWxs TGlua3MqPihncmlkLT5HZXRDZWxsTGlua3MoKSktPkdldExpbmsob2xkSWQpOwotICAgICAgICAg ICBmb3IgKGludCBpID0gMDsgaSA8IGwubmNlbGxzOyBpKyspCi0gICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgaW50IHZ0a0lkID0gbC5jZWxsc1tpXTsKLUBAIC0xMjE2NSw3ICsxMjE2NSw3 IEBAIHZvaWQgU01FU0hfTWVzaEVkaXRvcjo6Q3JlYXRlSG9sZVNraW4oZG91YmxlIHJhZGl1cywK LSAgICAgICAgICAgTUVTU0FHRSgidm9sdW1lIHRvIGNoZWNrLCAgdnRrSWQgIiA8PCB2dGtJZCA8 PCAiIHNtZHNJZCAiIDw8IG1lc2hEUy0+ZnJvbVZ0a1RvU21kcyh2dGtJZCkpOwotICAgICAgICAg ICBib29sIHZvbEluc2lkZSA9IGZhbHNlOwotICAgICAgICAgICB2dGtJZFR5cGUgbnB0cyA9IDA7 Ci0tICAgICAgICAgIHZ0a0lkVHlwZSogcHRzID0gMDsKLSsgICAgICAgICAgdnRrSWRUeXBlUHRy IHB0cyA9IDA7Ci0gICAgICAgICAgIGdyaWQtPkdldENlbGxQb2ludHModnRrSWQsIG5wdHMsIHB0 cyk7Ci0gICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxucHRzOyBpKyspCi0gICAgICAgICAgICAg ewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUyLWNtYWtlLXZ0azkucGF0 Y2ggYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTItY21ha2UtdnRrOS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FiZmZjZjU3ZTg0Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTUyLWNtYWtlLXZ0azkucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw1MyArMCwwIEBACi0tLS0gYS9jTWFrZS9GcmVlQ0FEX0hlbHBlcnMvU2V0dXBTYWxv bWVTTUVTSC5jbWFrZQkyMDIwLTExLTI2IDE1OjU5OjI3LjAwMDAwMDAwMCArMDEwMAotKysrIGIv Y01ha2UvRnJlZUNBRF9IZWxwZXJzL1NldHVwU2Fsb21lU01FU0guY21ha2UJMjAyMC0xMS0yNiAy MzowOToxMi43NzgyNjI2MzYgKzAxMDAKLUBAIC0xMSw2ICsxMSw4IEBACi0gICAgICAgICBzZXQo U01FU0hfVkVSU0lPTl9UV0VBSyAwKQotIAotICAgICAgICAgI2lmIHdlIHVzZSBzbWVzaCB3ZSBk ZWZpbml0ZWx5IGFsc28gbmVlZCB2dGssIG5vIG1hdHRlciBvZiBleHRlcm5hbCBvciBpbnRlcm5h bCBzbWVzaAotKyAgICAgICAgZmluZF9wYWNrYWdlKFZUSyBSRVFVSVJFRCBOT19NT0RVTEUpCi0r ICAgICAgICBpZigke1ZUS19NQUpPUl9WRVJTSU9OfSBMRVNTIDkpCi0gICAgICAgICBzZXQgKFZU S19DT01QT05FTlRTCi0gICAgICAgICAgICAgdnRrQ29tbW9uQ29yZQotICAgICAgICAgICAgIHZ0 a0NvbW1vbkRhdGFNb2RlbAotQEAgLTIzLDE4ICsyNSwzNyBAQAotICAgICAgICAgICAgIHZ0a0Zp bHRlcnNTb3VyY2VzCi0gICAgICAgICAgICAgdnRrRmlsdGVyc0dlb21ldHJ5Ci0gICAgICAgICAp Ci0tCi0tICAgICAgICAjIGNoZWNrIHdoaWNoIG1vZHVsZXMgYXJlIGF2YWlsYWJsZQotLSAgICAg ICAgaWYoVU5JWCBPUiBXSU4zMikKLSAgICAgICAgICAgICBmaW5kX3BhY2thZ2UoVlRLIENPTVBP TkVOVFMgdnRrQ29tbW9uQ29yZSBSRVFVSVJFRCBOT19NT0RVTEUpCi0gICAgICAgICAgICAgbGlz dChBUFBFTkQgVlRLX0NPTVBPTkVOVFMgdnRrSU9NUElQYXJhbGxlbCB2dGtQYXJhbGxlbE1QSSB2 dGtoZGY1IHZ0a0ZpbHRlcnNQYXJhbGxlbERJWTIgdnRrUmVuZGVyaW5nQ29yZSB2dGtJbnRlcmFj dGlvblN0eWxlIHZ0a1JlbmRlcmluZ0ZyZWVUeXBlIHZ0a1JlbmRlcmluZ09wZW5HTDIpCi0rICAg ICAgICBlbHNlKCkKLSsgICAgICAgICAgICAjIFZUSyA5IGNoYW5nZWQgaXRzIGNvbXBvbmVudCBu YW1lcwotKyAgICAgICAgICAgIHNldCAoVlRLX0NPTVBPTkVOVFMKLSsgICAgICAgICAgICAgICAg Q29tbW9uQ29yZQotKyAgICAgICAgICAgICAgICBDb21tb25EYXRhTW9kZWwKLSsgICAgICAgICAg ICAgICAgRmlsdGVyc1ZlcmRpY3QKLSsgICAgICAgICAgICAgICAgSU9YTUwKLSsgICAgICAgICAg ICAgICAgRmlsdGVyc0NvcmUKLSsgICAgICAgICAgICAgICAgRmlsdGVyc0dlbmVyYWwKLSsgICAg ICAgICAgICAgICAgSU9MZWdhY3kKLSsgICAgICAgICAgICAgICAgRmlsdGVyc0V4dHJhY3Rpb24K LSsgICAgICAgICAgICAgICAgRmlsdGVyc1NvdXJjZXMKLSsgICAgICAgICAgICAgICAgRmlsdGVy c0dlb21ldHJ5Ci0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIGZpbmRfcGFja2FnZShWVEsg Q09NUE9ORU5UUyBDb21tb25Db3JlIFJFUVVJUkVEIE5PX01PRFVMRSkKLSsgICAgICAgICAgICBs aXN0KEFQUEVORCBWVEtfQ09NUE9ORU5UUyBJT01QSVBhcmFsbGVsIFBhcmFsbGVsTVBJIGhkZjUg RmlsdGVyc1BhcmFsbGVsRElZMiBSZW5kZXJpbmdDb3JlIEludGVyYWN0aW9uU3R5bGUgUmVuZGVy aW5nRnJlZVR5cGUgUmVuZGVyaW5nT3BlbkdMMikKLSsgICAgICAgIGVuZGlmKCkKLSsKLSsgICAg ICAgICMgY2hlY2sgd2hpY2ggbW9kdWxlcyBhcmUgYXZhaWxhYmxlCi0gICAgICAgICAgICAgZm9y ZWFjaChfbW9kdWxlICR7VlRLX0NPTVBPTkVOVFN9KQotKyAgICAgICAgICAgIGlmKCR7VlRLX01B Sk9SX1ZFUlNJT059IExFU1MgOSkKLSAgICAgICAgICAgICAgICAgbGlzdCAoRklORCBWVEtfTU9E VUxFU19FTkFCTEVEICR7X21vZHVsZX0gX2luZGV4KQotKyAgICAgICAgICAgIGVsc2UoKQotKyAg ICAgICAgICAgICAgICBsaXN0IChGSU5EIFZUS19BVkFJTEFCTEVfQ09NUE9ORU5UUyAke19tb2R1 bGV9IF9pbmRleCkKLSsgICAgICAgICAgICBlbmRpZigpCi0gICAgICAgICAgICAgICAgIGlmICgk e19pbmRleH0gR1JFQVRFUiAtMSkKLSAgICAgICAgICAgICAgICAgICAgIGxpc3QoQVBQRU5EIEFW QUlMQUJMRV9WVEtfQ09NUE9ORU5UUyAke19tb2R1bGV9KQotICAgICAgICAgICAgICAgICBlbmRp ZigpCi0gICAgICAgICAgICAgZW5kZm9yZWFjaCgpCi0tICAgICAgICBlbmRpZigpCi0gCi0gICAg ICAgICAjIGRvbid0IGNoZWNrIFZFUlNJT04gNiBhcyB0aGlzIHdvdWxkIGV4Y2x1ZGUgVkVSU0lP TiA3Ci0gICAgICAgICBpZihBVkFJTEFCTEVfVlRLX0NPTVBPTkVOVFMpCmRpZmYgLS1naXQgYS9z cmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTMtbGltaXRzLmgtZm9yLW11c2wucGF0Y2ggYi9zcmNw a2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTMtbGltaXRzLmgtZm9yLW11c2wucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41OWIwZmYxNzhlZjgKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTMtbGltaXRzLmgtZm9yLW11c2wucGF0 Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvc3JjL0ZDQ29uZmlnLmguT1JJRworKysrIGIvc3Jj L0ZDQ29uZmlnLmgKK0BAIC0zMjEsNCArMzIxLDEwIEBACisgLy8jCWRlZmluZSBfUHJlQ29tcF8g ICAgICAgICAgICAgICAgICAvLyB1c2UgcHJlY29tcGlsZWQgaGVhZGVyDQorICNlbmRpZg0KKyAN CisrI2lmIGRlZmluZWQoRkNfT1NfTElOVVgpIHx8IGRlZmluZWQoRkNfT1NfTUFDT1NYKSB8fCBk ZWZpbmVkKEZDX09TX0JTRCkNCisrI2lmICghZGVmaW5lZChQQVRIX01BWCkpDQorKyNpbmNsdWRl IDxsaW1pdHMuaD4NCisrI2VuZGlmDQorKyNlbmRpZg0KKysNCisgI2VuZGlmIC8vRkNfQ09ORklH X0gNCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZyZWVjYWQvcGF0Y2hlcy8xNTQtcmV2ZXJ0LWd1aS10 bXAtcmVkaXJlY3Qtc3RkZXJyLnBhdGNoIGIvc3JjcGtncy9mcmVlY2FkL3BhdGNoZXMvMTU0LXJl dmVydC1ndWktdG1wLXJlZGlyZWN0LXN0ZGVyci5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjI4NzE3OWEyM2MzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvZnJlZWNhZC9wYXRjaGVzLzE1NC1yZXZlcnQtZ3VpLXRtcC1yZWRpcmVjdC1zdGRlcnIucGF0 Y2gKQEAgLTAsMCArMSw3MyBAQAorc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9GcmVlQ0FEL0ZyZWVD QUQvY29tbWl0L2NmZTk0YjAwZDM0MzRmM2UyYzhiNTExNGQyOTA5ZjYyOGMzMzBmYTgjY29tbWl0 Y29tbWVudC03MTQxMzQwNworCit1cHN0cmVhbTogeWVzCisKK0Zyb20gN2IzNzdhMjE2YjkxODU5 NjBlNGNlZTk4MGE2NTA0ZGMxYTc1NWY1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IHdtYXllciA8d21heWVyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KK0RhdGU6IFdlZCwgMjkgSnVu IDIwMjIgMTU6MTk6MTggKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gR3VpOiByZW1vdmUgd29ya2Fy b3VuZCBmb3Igc3BuYXYgMC4yMyBkdWUgdG8gYnVpbGQgZmFpbHVyZQorIHdpdGggbXVzbCBsaWJj CisKKy0tLQorIHNyYy9HdWkvM0Rjb25uZXhpb24vR3VpTmF0aXZlRXZlbnRMaW51eC5jcHAgfCAy NyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjcgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9zcmMvR3VpLzNEY29ubmV4aW9uL0d1aU5hdGl2ZUV2ZW50TGludXgu Y3BwIGIvc3JjL0d1aS8zRGNvbm5leGlvbi9HdWlOYXRpdmVFdmVudExpbnV4LmNwcAoraW5kZXgg N2YwZGRkNzVkLi40NTVlY2UwYjMgMTAwNjQ0CistLS0gYS9zcmMvR3VpLzNEY29ubmV4aW9uL0d1 aU5hdGl2ZUV2ZW50TGludXguY3BwCisrKysgYi9zcmMvR3VpLzNEY29ubmV4aW9uL0d1aU5hdGl2 ZUV2ZW50TGludXguY3BwCitAQCAtMjEsNDIgKzIxLDE3IEBACisgICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKyAKKyAjaW5jbHVkZSA8RkNDb25maWcuaD4KKy0jaW5jbHVkZSA8Y3N0ZGlvPgorIAorICNp bmNsdWRlICJHdWlOYXRpdmVFdmVudExpbnV4LmgiCisgCisgI2luY2x1ZGUgIkd1aUFwcGxpY2F0 aW9uTmF0aXZlRXZlbnRBd2FyZS5oIgorICNpbmNsdWRlIDxCYXNlL0NvbnNvbGUuaD4KKy0jaW5j bHVkZSA8QmFzZS9GaWxlSW5mby5oPgorICNpbmNsdWRlIDxRTWFpbldpbmRvdz4KKyAKKyAjaW5j bHVkZSA8UVNvY2tldE5vdGlmaWVyPgorIAorICNpbmNsdWRlIDxzcG5hdi5oPgorIAorLW5hbWVz cGFjZSB7CistY2xhc3MgUmVkaXJlY3RTdGRFcnIKKy17CistcHVibGljOgorLSAgICBSZWRpcmVj dFN0ZEVycigpCistICAgICAgICA6IGZpKEJhc2U6OkZpbGVJbmZvOjpnZXRUZW1wRmlsZU5hbWUo KSkKKy0gICAgICAgICwgZmlsZShzdGRlcnIpCistICAgIHsKKy0gICAgICAgIHN0ZGVyciA9IGZv cGVuKGZpLmZpbGVQYXRoKCkuY19zdHIoKSwgInciKTsKKy0gICAgfQorLSAgICB+UmVkaXJlY3RT dGRFcnIoKQorLSAgICB7CistICAgICAgICBmY2xvc2Uoc3RkZXJyKTsKKy0gICAgICAgIGZpLmRl bGV0ZUZpbGUoKTsKKy0gICAgICAgIHN0ZGVyciA9IGZpbGU7CistICAgIH0KKy0KKy1wcml2YXRl OgorLSAgICBCYXNlOjpGaWxlSW5mbyBmaTsKKy0gICAgRklMRSogZmlsZTsKKy19OworLX0KKy0K KyBHdWk6Okd1aU5hdGl2ZUV2ZW50OjpHdWlOYXRpdmVFdmVudChHdWk6OkdVSUFwcGxpY2F0aW9u TmF0aXZlRXZlbnRBd2FyZSAqYXBwKQorIDogR3VpQWJzdHJhY3ROYXRpdmVFdmVudChhcHApCisg eworQEAgLTcyLDggKzQ3LDYgQEAgR3VpOjpHdWlOYXRpdmVFdmVudDo6fkd1aU5hdGl2ZUV2ZW50 KCkKKyAKKyB2b2lkIEd1aTo6R3VpTmF0aXZlRXZlbnQ6OmluaXRTcGFjZWJhbGwoUU1haW5XaW5k b3cgKndpbmRvdykKKyB7CistICAgIC8vIHRtcC4gcmVkaXJlY3Qgc3RkZXJyIHRvIGEgZmlsZSB0 byBzdXBwcmVzcyBhbiBlcnJvciBtZXNzYWdlIGZyb20gc3BuYXZfb3BlbigpCistICAgIFJlZGly ZWN0U3RkRXJyIGVycjsKKyAgICAgUV9VTlVTRUQod2luZG93KQorICAgICBpZiAoc3BuYXZfb3Bl bigpID09IC0xKSB7CisgICAgICAgICBCYXNlOjpDb25zb2xlKCkuTG9nKCJDb3VsZG4ndCBjb25u ZWN0IHRvIHNwYWNlbmF2IGRhZW1vbi4gUGxlYXNlIGlnbm9yZSBpZiB5b3UgZG9uJ3QgaGF2ZSBh IHNwYWNlbW91c2UuXG4iKTsKKy0tIAorMi4zNy4xCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZnJl ZWNhZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZQppbmRleCAxZTJhZWMwMjRm ZDcuLmU5YzY5N2FkYmUxYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9mcmVlY2FkL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZnJlZWNhZC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2ZyZWVjYWQnCiBwa2duYW1lPWZyZWVjYWQKLXZlcnNpb249MC4xOS40Cit2ZXJz aW9uPTAuMjAuMQogcmV2aXNpb249MQogd3Jrc3JjPSJGcmVlQ0FELSR7dmVyc2lvbn0iCiBidWls ZF9zdHlsZT1jbWFrZQpAQCAtMjMsMTAgKzIzLDkgQEAgbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2 ZWwgYm9vc3QtZGV2ZWwgbGlieGVyY2VzLWMtZGV2ZWwgemxpYi1kZXZlbCBvY2N0LWRldmVsCiAg Y29pbjMtZGV2ZWwgbGlic2hpYm9rZW4yLWRldmVsIGxpYnNwbmF2LWRldmVsIHB5c2lkZTItdG9v bHMKICBsaWJsejQtZGV2ZWwgbGlicHlzaWRlMi1weXRob24zLWRldmVsIHB5dGhvbjMtbWF0cGxv dGxpYiBuZXRjZGYtZGV2ZWwKICBqc29uY3BwLWRldmVsIHF0NS1kZXZlbCBxdDUtc3ZnLWRldmVs IHF0NS10b29scy1kZXZlbCBxdDUtd2Via2l0LWRldmVsCi0gcXQ1LXhtbHBhdHRlcm5zLWRldmVs IGNvaW4zLWRvYyBnbGV3LWRldmVsIgorIHF0NS14bWxwYXR0ZXJucy1kZXZlbCBjb2luMy1kb2Mg Z2xldy1kZXZlbCBweXRob24zLXBpdnkiCiAKLSMgRnJlZUNBRCBoZWxwOiBxdDUvYXNzaXN0YW50 IHdpdGggU1FMaXRlIHN0b3JhZ2UKLWRlcGVuZHM9InB5dGhvbjMtbWF0cGxvdGxpYiBweXRob24z LXB5c2lkZTIgcXQ1LXBsdWdpbi1zcWxpdGUgcHl0aG9uMy1waXZ5IgorZGVwZW5kcz0icHl0aG9u My1tYXRwbG90bGliIHB5dGhvbjMtcHlzaWRlMi13ZWJlbmdpbmUgcHl0aG9uMy1waXZ5IgogCiBw eXRob25fdmVyc2lvbj0zCiBweWNvbXBpbGVfZGlycz0idXNyL2xpYi8ke3BrZ25hbWV9L01vZCIK QEAgLTM2LDcgKzM1LDcgQEAgbWFpbnRhaW5lcj0ieW9waXRvIDxwaWVycmUuYm91cmdpbkBmcmVl LmZyPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZnJl ZWNhZHdlYi5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vRnJlZUNBRC9GcmVl Q0FEL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCi1jaGVja3N1bT1lNDBhMWMzNDM5NTZlMTNj NTZjYzg1NzhkMDI1YWU4M2Q2OGQ5ZDIwYWNkYTE3MzI5NTNiYzhhMzg4M2U5NzIyCitjaGVja3N1 bT03MGMxNWY3YzFjNjc2ZTMzNzZjZGMyYTY2YzEzNjAzMGM1NTAyZjk4MDI5MzVlNWI2MjZjYThj ZTNmODgxMmVkCiAKIGlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9IG11c2wgXTsgdGhlbgogCW1h a2VkZXBlbmRzKz0iIGxpYmV4ZWNpbmZvLWRldmVsIgo= --===============7561090048602133258==--