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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27237 invoked from network); 27 Apr 2021 01:26:53 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 27 Apr 2021 01:26:53 -0000 Content-Type: multipart/mixed; boundary="===============0324548062243509819==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_mozc=3A_update_to_2=2E26=2E4346=2E100=2E_=28new_package_for_fcitx5-mozc=29?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 27 Apr 2021 03:26:49 +0200 List-Id: Message-ID: <20210427012649.ElVlwjkh24sPlckW6FnpM9flN5AM9NBzphhxukOzJ7o@z> GitHub notification mails are now in MIME to allow UTF8. --===============0324548062243509819== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBmY2l0eDUtbW96YwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMzA0OTIKCltXSVBdIG1vemM6IHVwZGF0ZSB0byAyLjI2LjQzNDYuMTAw LiAobmV3IHBhY2thZ2UgZm9yIGZjaXR4NS1tb3pjKQo8IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0g d2hlcmUgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBHZW5lcmFsDQotIFsgXSBUaGlzIGlzIGEgbmV3 IHBhY2thZ2UgYW5kIGl0IGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFu dWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2Yg dGhlIHByb3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFsgXSBJIHVzZSB0aGUgcGFja2Fn ZXMgYWZmZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFu ZCBjb25maXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQotIFsgXSBJIGdlbmVyYWxseSBkb24ndCB1 c2UgdGhlIGFmZmVjdGVkIHBhY2thZ2VzIGJ1dCBicmllZmx5IHRlc3RlZCB0aGlzIFBSDQoNCjwh LS0NCklmIEdpdEh1YiBDSSBjYW5ub3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgYnVpbGQgcmVz dWx0IChmb3IgZXhhbXBsZSwgaWYgdGhlDQpidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBzZXZlcmFs IGhvdXJzKSwgbWFrZSBzdXJlIHRvDQpbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91 cy1pbnRlZ3JhdGlvbikuDQpXaGVuIHNraXBwaW5nIENJLCB1bmNvbW1lbnQgYW5kIGZpbGwgb3V0 IHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4NCk5vdGU6IGZvciBidWlsZHMgdGhhdCBhcmUgbGlrZWx5 IHRvIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAyIGhvdXJzLCBpdCBpcyBub3QNCmFjY2VwdGFibGUg dG8gc2tpcCBDSS4NCi0tPg0KPCEtLSANCiMjIyMgRG9lcyBpdCBidWlsZCBhbmQgcnVuIHN1Y2Nl c3NmdWxseT8gDQooUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwg aWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuIE1vcmUgYXJlIGJldHRlci4p DQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVy ZSwgKEFSQ0gtTElCQykNCi0gWyBdIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBh cmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIFsgXSBh YXJjaDY0LW11c2wNCiAgLSBbIF0gYXJtdjdsDQogIC0gWyBdIGFybXY2bC1tdXNsDQotLT4NCgoK QSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzMwNDkyLnBhdGNoIGlzIGF0dGFjaGVk --===============0324548062243509819== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-fcitx5-mozc-30492.patch" RnJvbSBjMGU1N2EwODk2MmQ1MDVlNDc4YzJiMjJjNjYwZTQ0ZDc0OGIzNmNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCAyNSBBcHIgMjAyMSAyMjo1MzoxNCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBtb3pjOiB1 cGRhdGUgdG8gMi4yNi40MzQ2LjEwMC4KCi0tLQogc3JjcGtncy9mY2l0eDUtbW96YyAgICAgICAg ICAgICAgICAgIHwgIDEgKwogc3JjcGtncy9tb3pjL3BhdGNoZXMvZmNpdHgucGF0Y2ggICAgIHwg MTMgKysrKysKIHNyY3BrZ3MvbW96Yy9wYXRjaGVzL2ZjaXR4NS5wYXRjaCAgICB8IDQxICsrKysr KysrKysrKysrCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2ggfCAxMyArKysr Kwogc3JjcGtncy9tb3pjL3BhdGNoZXMvc3RhbmRhcmQucGF0Y2ggIHwgMTYgKysrKysrCiBzcmNw a2dzL21vemMvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCA4MiArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tCiA2IGZpbGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2ZjaXR4NS1tb3pjCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tb3pjL3BhdGNoZXMvZmNpdHgucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL21vemMvcGF0Y2hlcy9mY2l0eDUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL21vemMvcGF0Y2hlcy9zdGFuZGFyZC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZmNpdHg1LW1vemMgYi9zcmNwa2dzL2ZjaXR4NS1tb3pjCm5ldyBmaWxlIG1vZGUgMTIwMDAw CmluZGV4IDAwMDAwMDAwMDAwMC4uNjg3NGNhNDI2YjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9mY2l0eDUtbW96YwpAQCAtMCwwICsxIEBACittb3pjClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvZmNpdHgucGF0Y2ggYi9z cmNwa2dzL21vemMvcGF0Y2hlcy9mY2l0eC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjFlZDZkMDE1MTZmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv bW96Yy9wYXRjaGVzL2ZjaXR4LnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK0luZGV4OiBtb3pjL3Ny Yy91bml4L2ZjaXR4L2ZjaXR4Lmd5cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG1vemMvc3JjL3VuaXgvZmNp dHgvZmNpdHguZ3lwLm9yaWcKKysrKyBtb3pjL3NyYy91bml4L2ZjaXR4L2ZjaXR4Lmd5cAorQEAg LTk2LDcgKzk2LDcgQEAKKyAgICAgICAgICc8QChmY2l0eF9kZXBfaW5jbHVkZV9kaXJzKScsCisg ICAgICAgXSwKKyAgICAgICAnZGVmaW5lcyc6IFsKKy0gICAgICAgICdMT0NBTEVESVI9IjwhQChm Y2l0eDQtY29uZmlnIC0tcHJlZml4KS9zaGFyZS9sb2NhbGUvIicsCisrICAgICAgICAnTE9DQUxF RElSPSIvdXNyL3NoYXJlL2xvY2FsZS8iJywKKyAgICAgICBdLAorICAgICB9LAorICAgXSwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2ZjaXR4NS5wYXRjaCBiL3NyY3BrZ3MvbW96 Yy9wYXRjaGVzL2ZjaXR4NS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjM4OGE2ZGUwYWU1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96Yy9wYXRj aGVzL2ZjaXR4NS5wYXRjaApAQCAtMCwwICsxLDQxIEBACitJbmRleDogbW96Yy9zcmMvdW5peC9m Y2l0eDUvbW96Y19yZXNwb25zZV9wYXJzZXIuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBtb3pjL3NyYy91 bml4L2ZjaXR4NS9tb3pjX3Jlc3BvbnNlX3BhcnNlci5jYy5vcmlnCisrKysgbW96Yy9zcmMvdW5p eC9mY2l0eDUvbW96Y19yZXNwb25zZV9wYXJzZXIuY2MKK0BAIC0xNjksOSArMTY5LDkgQEAgY2xh c3MgTW96Y0NhbmRpZGF0ZUxpc3QgZmluYWwgOiBwdWJsaWMgQworICAgICByZXR1cm4gbGFiZWxz X1tpZHhdOworICAgfQorIAorLSAgc3RkOjpzaGFyZWRfcHRyPGNvbnN0IENhbmRpZGF0ZVdvcmQ+ IGNhbmRpZGF0ZShpbnQgaWR4KSBjb25zdCBvdmVycmlkZSB7CisrICBjb25zdCBDYW5kaWRhdGVX b3JkJiBjYW5kaWRhdGUoaW50IGlkeCkgY29uc3Qgb3ZlcnJpZGUgeworICAgICBjaGVja0luZGV4 KGlkeCk7CistICAgIHJldHVybiBjYW5kaWRhdGVXb3Jkc19baWR4XTsKKysgICAgcmV0dXJuICpj YW5kaWRhdGVXb3Jkc19baWR4XTsKKyAgIH0KKyAgIGludCBzaXplKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gY2FuZGlkYXRlV29yZHNfLnNpemUoKTsgfQorIAorSW5kZXg6IG1vemMvc3JjL3Vu aXgvZmNpdHg1L21vemNfc3RhdGUuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBtb3pjL3NyYy91bml4L2Zj aXR4NS9tb3pjX3N0YXRlLmNjLm9yaWcKKysrKyBtb3pjL3NyYy91bml4L2ZjaXR4NS9tb3pjX3N0 YXRlLmNjCitAQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wgTW96Y1N0YXRlOjpQcm9jZXNzS2V5RXZl bnQoS2V5U3ltIHMKKyAKKyAgICAgaWYgKG5vcm1hbGl6ZWRfa2V5LmNoZWNrKEtleShGY2l0eEtl eV9Fc2NhcGUpKSkgeworICAgICAgIGRpc3BsYXlVc2FnZV8gPSBmYWxzZTsKKy0gICAgICBQcm9j ZXNzS2V5RXZlbnQoRmNpdHhLZXlfVm9pZFN5bWJvbCwgMCwgS2V5U3RhdGU6Ok5vbmUsIGxheW91 dF9pc19qcCwKKysgICAgICBQcm9jZXNzS2V5RXZlbnQoRmNpdHhLZXlfVm9pZFN5bWJvbCwgMCwg S2V5U3RhdGU6Ok5vU3RhdGUsIGxheW91dF9pc19qcCwKKyAgICAgICAgICAgICAgICAgICAgICAg ZmFsc2UpOworICAgICB9CisgICAgIHJldHVybiB0cnVlOworSW5kZXg6IG1vemMvc3JjL3VuaXgv ZmNpdHg1L21vemMuY29uZgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG1vemMvc3JjL3VuaXgvZmNpdHg1L21v emMuY29uZi5vcmlnCisrKysgbW96Yy9zcmMvdW5peC9mY2l0eDUvbW96Yy5jb25mCitAQCAtMSw2 ICsxLDYgQEAKKyBbSW5wdXRNZXRob2RdCisgTmFtZT1Nb3pjCistSWNvbj1QUkVGSVgvc2hhcmUv ZmNpdHg1L21vemMvaWNvbi9tb3pjLnBuZworK0ljb249L3Vzci9zaGFyZS9mY2l0eDUvbW96Yy9p Y29uL21vemMucG5nCisgTGFiZWw944GCCisgTGFuZ0NvZGU9amEKKyBBZGRvbj1tb3pjCmRpZmYg LS1naXQgYS9zcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2ggYi9zcmNwa2dzL21v emMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5hZDllYjQ0NDRlMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vemMv cGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorSW5kZXg6IG1vemMvc3Jj L2RhdGEvZGljdGlvbmFyeV9vc3MvZGljdGlvbmFyeTA4LnR4dAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG1v emMvc3JjL2RhdGEvZGljdGlvbmFyeV9vc3MvZGljdGlvbmFyeTA4LnR4dC5vcmlnCisrKysgbW96 Yy9zcmMvZGF0YS9kaWN0aW9uYXJ5X29zcy9kaWN0aW9uYXJ5MDgudHh0CitAQCAtODU5MSw2ICs4 NTkxLDggQEAKKyDjgozjgYTjgozjgYTjgagJMTIJMTIJNzM0OQnjgozjgYTjgozjgYTjgagKKyDj gozjgYTjgo3jgYYJMTg0NwkxODQ3CTcyNzYJ546y55OPCisg44KM44GE44KPCTE4NDcJMTg0Nwk4 MjUxCeS+i+ipsQorK+OCjOOBhOOCjwkxODk1CTE4OTUJMTY5MAnku6TlkowKKyvjgozjgYTjgo8J MTg5OAkxODk4CTQwMDAJ5Luk5ZKMCisg44KM44GE44KT44GT44O844GoCTE4NDcJMTg0Nwk1NTY4 CeODrOOCpOODs+OCs+ODvOODiAorIOOCjOOBhOOCk+OBmOOCg+ODvAkxODQ3CTE4NDcJNzQ1OQnj g6zjgqTjg7Pjgrjjg6Pjg7wKKyDjgozjgYTjgpPjgZoJMTkxNwkxOTE3CTM1NDgJ44Os44Kk44Oz 44K6CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vemMvcGF0Y2hlcy9zdGFuZGFyZC5wYXRjaCBiL3Ny Y3BrZ3MvbW96Yy9wYXRjaGVzL3N0YW5kYXJkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uY2EwMDJlOGI5ODU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9tb3pjL3BhdGNoZXMvc3RhbmRhcmQucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorSW5kZXg6IG1v emMvc3JjL3VuaXgvZmNpdHg1L2ZjaXR4NS5neXAKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBtb3pjL3NyYy91 bml4L2ZjaXR4NS9mY2l0eDUuZ3lwLm9yaWcKKysrKyBtb3pjL3NyYy91bml4L2ZjaXR4NS9mY2l0 eDUuZ3lwCitAQCAtMTEyLDEwICsxMTIsMTAgQEAKKyAgICAgICAgICdmY2l0eDVfYnVpbGRfZW52 aXJvbm1lbnQnLAorICAgICAgIF0sCisgICAgICAgJ2NmbGFnc19jYyc6IFsKKy0gICAgICAgICct c3RkPWMrKzE0JywKKysgICAgICAgICctc3RkPWMrKzE3JywKKyAgICAgICBdLAorICAgICAgICdj ZmxhZ3NfY2MhJzogWworICAgICAgICAgJy1zdGQ9Z251KysweCcKKyAgICAgICBdLAorICAgICAg ICdjZmxhZ3MhJzogWworICAgICAgICAgJy1mbm8tZXhjZXB0aW9ucycsCmRpZmYgLS1naXQgYS9z cmNwa2dzL21vemMvdGVtcGxhdGUgYi9zcmNwa2dzL21vemMvdGVtcGxhdGUKaW5kZXggNzFkMzJl YjViOWNkLi41NjUzMTBmNjBiZGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbW96Yy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL21vemMvdGVtcGxhdGUKQEAgLTEsMzIgKzEsMzAgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ21vemMnCiBwa2duYW1lPW1vemMKLXZlcnNpb249Mi4yMy4yODE1LjEwMgotcmV2 aXNpb249MTAKK3ZlcnNpb249Mi4yNi40MzQ2LjEwMAorcmV2aXNpb249MQogY3JlYXRlX3dya3Ny Yz15ZXMKIGJ1aWxkX3dya3NyYz1tb3pjL3NyYwotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IG5p bmphIHBrZy1jb25maWcgcHJvdG9idWYgcHJvdG9idWYtZGV2ZWwgcHl0aG9uIHdoaWNoIgoraG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IG5pbmphIHBrZy1jb25maWcgcHJvdG9idWYgcHJvdG9idWYt ZGV2ZWwgcHl0aG9uIHdoaWNoCisgcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIgogbWFrZWRlcGVu ZHM9Imd0aystZGV2ZWwgaWJ1cy1kZXZlbCBsaWJ6aW5uaWEtZGV2ZWwgcHJvdG9idWYtZGV2ZWwg cXQ1LWRldmVsCi0gZmNpdHgtZGV2ZWwiCisgZmNpdHgtZGV2ZWwgbGliZmNpdHg1LWRldmVsIgog ZGVwZW5kcz0idGVnYWtpLXppbm5pYS1qYXBhbmVzZT49MC4zIgogc2hvcnRfZGVzYz0iSmFwYW5l c2UgSU1FIChPcGVuIFNvdXJjZSB2ZXJzaW9uIG9mIEdvb2dsZSBKYXBhbmVzZSBJbnB1dCkiCiBt YWludGFpbmVyPSJNYXR0aGlhcyB2b24gRmFiZXIgPG12ZkBnbXguZXU+IgogbGljZW5zZT0iQlNE LTMtQ2xhdXNlIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGUvbW96YyIKIGRp c3RmaWxlcz0iCi0gaHR0cHM6Ly9naXRsYWIuY29tL2ZjaXR4L21vemMvcmVwb3NpdG9yeS9kYWQ5 NDU4NGVhNTAxMjExMGFkMWQyMDRlNDMzOTY0MjQzYTE2MzlkL2FyY2hpdmUudGFyLmJ6Mj4ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLmJ6MgotIGh0dHBzOi8vZ2l0aHViLmNvbS9ibm9vcmRodWlz L2d5cC9hcmNoaXZlL2M2ZjQ3MTY4NzQwN2JmMjhkZGZjNjNmMWE4ZjQ3YWViN2JmNTRlZGMudGFy Lmd6CisgaHR0cHM6Ly9naXRodWIuY29tL2ZjaXR4L21vemMvYXJjaGl2ZS9kYWQ5NDU4NGVhNTAx MjExMGFkMWQyMDRlNDMzOTY0MjQzYTE2MzlkLnRhci5negorICR7REVCSUFOX1NJVEV9L21haW4v Zy9neXAvZ3lwXzAuMSsyMDIwMDUxM2dpdGNhYTYwMDIub3JpZy50YXIuZ3oKICBodHRwczovL2dp dGh1Yi5jb20vaGlyb3l1a2kta29tYXRzdS9qYXBhbmVzZS11c2FnZS1kaWN0aW9uYXJ5L2FyY2hp dmUvZTViMzQyNTU3NTczNGMzMjNlMWQ5NDcwMDlkZDc0NzA5NDM3YjY4NC50YXIuZ3oKICIKLWNo ZWNrc3VtPSIKLSBlMzg0NTdlNjNhN2ZhOGQ2MmQ4N2I0ZjhiM2U4OWZlNWY2OTM5ZDkyZTNjNGZk Mjg3YTkzMzU4Mzc1NjkzODkyCi0gODgyZjA3NGNiYjNhNGYyYmJhNTUwZmI2MTVlNjM5NDljMGZi ZjM5ZWViMTcxOGEwMzMwYjRhNTQ1YWI5NzYxNgotIDBiNmVmZWUwZWViYWMyYzFhOGVlZWEzMzMy NzhhYTQwZmNlZjc4NDZiYmE5YTM3OTk2MmM2ZTU2N2U3ZTNkYzEKLSIKK2NoZWNrc3VtPSIwOTgz NTk5NGU0ZmEwZjRlNGUyZWE0ZTE3MTkwMGM1ZTM3YzM1NjgwYzRkYjg2ZWI1YTg5YmU3YmQ4MmM0 MjBmCisgOGQ1MzFiYzdkMzMwMjQ2MWQ3NmEzMjM2NzQ1M2NlYzYwZWQwOGI0NTVmMjdhNTNkOGYz MTNkODE3NjE3MTNhOAorIDBiNmVmZWUwZWViYWMyYzFhOGVlZWEzMzMyNzhhYTQwZmNlZjc4NDZi YmE5YTM3OTk2MmM2ZTU2N2U3ZTNkYzEiCiAKIENYWEZMQUdTPSItRF9HTlVfU09VUkNFIgogCiBp ZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlob3N0bWFrZWRlcGVuZHMrPSIgcXQ1LWRldmVs IgogCXN1YnBhY2thZ2VzPSJpYnVzLW1vemMgZmNpdHgtbW96YyIKIGZpCiAKQEAgLTM2LDcgKzM0 LDYgQEAgZmkKIAogcG9zdF9leHRyYWN0KCkgewogCWxuIC1zIG1vemMtKiBtb3pjCi0Jcm0gLXJm IG1vemMvc3JjL3VuaXgvZmNpdHg1CiAKIAkjIHN5bWxpbmsgInN1Ym1vZHVsZXMiIGludG8gcGxh Y2UKIAlmb3IgX3NyY19kZXN0IGluIGd5cCBqYXBhbmVzZS11c2FnZS1kaWN0aW9uYXJ5OmphcGFu ZXNlX3VzYWdlX2RpY3Rpb25hcnk7IGRvCkBAIC00NSwxNyArNDIsMTUgQEAgcG9zdF9leHRyYWN0 KCkgewogCQlybWRpciAkX2RzdAogCQlsbiAtc3IgJF9zcmMtKiAkX2RzdAogCWRvbmUKK30KIAot CWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCQkjIGZpbmQgZmNpdHg0LWNvbmZpZwotCQlz ZWQgLWkgLWUgInM7ZmNpdHg0LWNvbmZpZzske1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2Jpbi9mY2l0 eDQtY29uZmlnOyIgbW96Yy9zcmMvdW5peC9mY2l0eC9mY2l0eC5neXAKK3Bvc3RfcGF0Y2goKSB7 CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCisJCXZzZWQgLWkgLWUg J3N8UFRIUkVBRF9NVVRFWF9SRUNVUlNJVkVfTlB8UFRIUkVBRF9NVVRFWF9SRUNVUlNJVkV8Zycg YmFzZS9tdXRleC5jYwogCWZpCiB9CiAKIGRvX2NvbmZpZ3VyZSgpIHsKLQljYXNlICIkWEJQU19U QVJHRVRfTUFDSElORSIgaW4KLQkJKi1tdXNsKSBzZWQgLWkgLWUgJ3N8UFRIUkVBRF9NVVRFWF9S RUNVUlNJVkVfTlB8UFRIUkVBRF9NVVRFWF9SRUNVUlNJVkV8ZycgYmFzZS9tdXRleC5jYyA7Owot CWVzYWMKIAlHWVBfREVGSU5FUz0iCiAJIGRvY3VtZW50X2Rpcj0vdXNyL3NoYXJlL2xpY2Vuc2Vz LyR7cGtnbmFtZX0KIAkgdXNlX2xpYnByb3RvYnVmPTEKQEAgLTY0LDE2ICs1OSwxNCBAQCBkb19j b25maWd1cmUoKSB7CiB9CiAKIGRvX2J1aWxkKCkgewotCWxvY2FsIHRhcmdldHMKLQl0YXJnZXRz PSIKLQkgc2VydmVyL3NlcnZlci5neXA6bW96Y19zZXJ2ZXIKLQkgZ3VpL2d1aS5neXA6bW96Y190 b29sCi0JIHVuaXgvZW1hY3MvZW1hY3MuZ3lwOm1vemNfZW1hY3NfaGVscGVyCi0JIHVuaXgvaWJ1 cy9pYnVzLmd5cDppYnVzX21vemMKLQkgcmVuZGVyZXIvcmVuZGVyZXIuZ3lwOm1vemNfcmVuZGVy ZXIKLQkgdW5peC9mY2l0eC9mY2l0eC5neXA6ZmNpdHgtbW96YwotCSIKLQlweXRob24yIGJ1aWxk X21vemMucHkgYnVpbGQgLWMgUmVsZWFzZSAkdGFyZ2V0cworCXB5dGhvbjIgYnVpbGRfbW96Yy5w eSBidWlsZCAtYyBSZWxlYXNlIFwKKwkJc2VydmVyL3NlcnZlci5neXA6bW96Y19zZXJ2ZXIgXAor CQlndWkvZ3VpLmd5cDptb3pjX3Rvb2wgXAorCQl1bml4L2VtYWNzL2VtYWNzLmd5cDptb3pjX2Vt YWNzX2hlbHBlciBcCisJCXVuaXgvaWJ1cy9pYnVzLmd5cDppYnVzX21vemMgXAorCQlyZW5kZXJl ci9yZW5kZXJlci5neXA6bW96Y19yZW5kZXJlciBcCisJCXVuaXgvZmNpdHgvZmNpdHguZ3lwOmZj aXR4LW1vemMgXAorCQl1bml4L2ZjaXR4NS9mY2l0eDUuZ3lwOmZjaXR4NS1tb3pjCiAKIAlzZWQg LWkgJ3N8L3Vzci9saWJleGVjL3wvdXNyL2xpYi9pYnVzLW1vemMvfGcnIG91dF9saW51eC9SZWxl YXNlL2dlbi91bml4L2lidXMvbW96Yy54bWwKIH0KQEAgLTgyLDcgKzc1LDcgQEAgZG9faW5zdGFs bCgpIHsKIAl2aW5zdGFsbCBvdXRfbGludXgvUmVsZWFzZS9tb3pjX3NlcnZlciA3NTUgdXNyL2xp Yi9tb3pjCiAJdmluc3RhbGwgb3V0X2xpbnV4L1JlbGVhc2UvbW96Y190b29sIDc1NSB1c3IvbGli L21vemMKIAotCWhlYWQgLW4gMjkgc2VydmVyL21vemNfc2VydmVyLmNjID4gTElDRU5TRQorCWhl YWQgLW4gMjkgdW5peC9mY2l0eDUvZmNpdHhfa2V5X3RyYW5zbGF0b3IuY2MgPkxJQ0VOU0UKIAlm b3IgaSBpbiBMSUNFTlNFIGRhdGEvaW5zdGFsbGVyLyouaHRtbDsgZG8KIAkJdmxpY2Vuc2UgIiRp IgogCWRvbmUKQEAgLTExNSwxMCArMTA4LDM3IEBAIGZjaXR4LW1vemNfcGFja2FnZSgpIHsKIAlz aG9ydF9kZXNjPSJNb3pjIGVuZ2luZSBmb3IgZmNpdHggLSBDbGllbnQgb2YgdGhlIE1vemMgaW5w dXQgbWV0aG9kIgogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259 IGZjaXR4Pj00LjIuOSIKIAlob21lcGFnZT0iaHR0cHM6Ly9mY2l0eC1pbS5vcmcvIgotCWxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiAJcGtnX2luc3RhbGwoKSB7CisJCWxvY2FsIF9maWxlIF9s YW5nCisJCWhlYWQgLW4gMjkgdW5peC9mY2l0eC9mY2l0eF9rZXlfdHJhbnNsYXRvci5jYyBcCisJ CQk+dW5peC9mY2l0eC9MSUNFTlNFCisJCXZsaWNlbnNlIHVuaXgvZmNpdHgvTElDRU5TRQogCQl2 aW5zdGFsbCBvdXRfbGludXgvUmVsZWFzZS9mY2l0eC1tb3pjLnNvIDY0NCB1c3IvbGliL2ZjaXR4 CiAJCXZpbnN0YWxsIHVuaXgvZmNpdHgvZmNpdHgtbW96Yy5jb25mIDY0NCB1c3Ivc2hhcmUvZmNp dHgvYWRkb24KIAkJdmluc3RhbGwgdW5peC9mY2l0eC9tb3pjLmNvbmYgNjQ0IHVzci9zaGFyZS9m Y2l0eC9pbnB1dG1ldGhvZAorCQlmb3IgX2ZpbGUgaW4gb3V0X2xpbnV4L1JlbGVhc2UvZ2VuL3Vu aXgvZmNpdHgvcG8vKi5tbworCQlkbworCQkJX2xhbmc9JHtfZmlsZSMjKi99CisJCQlfbGFuZz0k e19sYW5nJS5tb30KKwkJCXZpbnN0YWxsICIkX2ZpbGUiIDY0NCB1c3Ivc2hhcmUvbG9jYWxlLyRf bGFuZyBmY2l0eC1tb3pjLm1vCisJCWRvbmUKKwl9Cit9CisKK2ZjaXR4NS1tb3pjX3BhY2thZ2Uo KSB7CisJc2hvcnRfZGVzYz0iTW96YyBlbmdpbmUgZm9yIGZjaXR4IHY1IgorCWRlcGVuZHM9IiR7 c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259IGZjaXR4NSIKKwlob21lcGFnZT0iaHR0 cHM6Ly9mY2l0eC1pbS5vcmcvIgorCXBrZ19pbnN0YWxsKCkgeworCQlsb2NhbCBfZmlsZSBfbGFu ZworCQl2aW5zdGFsbCBvdXRfbGludXgvUmVsZWFzZS9mY2l0eDUtbW96Yy5zbyA2NDQgdXNyL2xp Yi9mY2l0eDUKKwkJdmluc3RhbGwgdW5peC9mY2l0eDUvbW96Yy1hZGRvbi5jb25mIDY0NCB1c3Iv c2hhcmUvZmNpdHgvYWRkb24KKwkJdmluc3RhbGwgdW5peC9mY2l0eC9tb3pjLmNvbmYgNjQ0IHVz ci9zaGFyZS9mY2l0eC9pbnB1dG1ldGhvZAorCQlmb3IgX2ZpbGUgaW4gb3V0X2xpbnV4L1JlbGVh c2UvZ2VuL3VuaXgvZmNpdHg1L3BvLyoubW8KKwkJZG8KKwkJCV9sYW5nPSR7X2ZpbGUjIyovfQor CQkJX2xhbmc9JHtfbGFuZyUubW99CisJCQl2aW5zdGFsbCAiJF9maWxlIiA2NDQgdXNyL3NoYXJl L2xvY2FsZS8kX2xhbmcgZmNpdHg1LW1vemMubW8KKwkJZG9uZQogCX0KIH0KCkZyb20gNmI4YmUy NDE0MjhmMmJlOGUxZmJiZDAxNGE5NDkyYTk0MTM2ZGE3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1C NG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjcgQXByIDIw MjEgMDg6MjQ6MzcgKzA3MDAKU3ViamVjdDogW1BBVENIIDIvMl0gbW96YzogdXBkYXRlIHRvIDIu MjYuNDM1My4xMDAuCgotLS0KIHNyY3BrZ3MvbW96Yy9wYXRjaGVzL2Fic2VpbC5wYXRjaCAgICAg ICAgICAgICB8ICA5MyArKysrKwogc3JjcGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2ggICAg ICAgICAgICAgIHwgIDEwICstCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9jeHgtc3RkbGliLnBhdGNo ICAgICAgICAgfCAgMjkgKysKIC4uLi9kZWZhdWx0X2hpcmFnYW5hX2Zyb21fZW52aXJvbm1lbnQu cGF0Y2ggICB8ICAyMCAtLQogc3JjcGtncy9tb3pjL3BhdGNoZXMvZmNpdHg1LnBhdGNoICAgICAg ICAgICAgIHwgIDQxIC0tLQogc3JjcGtncy9tb3pjL3BhdGNoZXMvbm8tcGFyYWxsZWwucGF0Y2gg ICAgICAgIHwgICA2ICstCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9wcm90b2J1Zi0zNzAucGF0Y2gg ICAgICAgfCAzMjcgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3 YS1lcmEucGF0Y2ggICAgICAgICAgfCAgMTQgKy0KIHNyY3BrZ3MvbW96Yy9wYXRjaGVzL3N0YW5k YXJkLnBhdGNoICAgICAgICAgICB8ICAxNiAtCiBzcmNwa2dzL21vemMvcGF0Y2hlcy91bnNpZ25l ZC1pbnQucGF0Y2ggICAgICAgfCAyMTAgKysrKysrKysrKysKIHNyY3BrZ3MvbW96Yy90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0MyArKy0KIDExIGZpbGVzIGNoYW5nZWQsIDM3 MyBpbnNlcnRpb25zKCspLCA0MzYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9tb3pjL3BhdGNoZXMvYWJzZWlsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tb3pjL3BhdGNoZXMvY3h4LXN0ZGxpYi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbW96Yy9wYXRjaGVzL2RlZmF1bHRfaGlyYWdhbmFfZnJvbV9lbnZpcm9ubWVudC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96Yy9wYXRjaGVzL2ZjaXR4NS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96Yy9wYXRjaGVzL3Byb3RvYnVmLTM3MC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96Yy9wYXRjaGVzL3N0YW5kYXJkLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pjL3BhdGNoZXMvdW5zaWduZWQtaW50LnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvYWJzZWlsLnBhdGNoIGIvc3JjcGtn cy9tb3pjL3BhdGNoZXMvYWJzZWlsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uODg4NzYyZDU1NTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pj L3BhdGNoZXMvYWJzZWlsLnBhdGNoCkBAIC0wLDAgKzEsOTMgQEAKKworUG9ydGVkIGZyb20gZ3Jw YydzIHBhdGNoZXMKKworQW4gYWxsLWluLW9uZSBwYXRjaCB0aGF0IGZpeGVzIHNldmVyYWwgaXNz dWVzOgorCisxKSBVbnNjYWxlZEN5Y2xlQ2xvY2sgbm90IGZ1bGx5IGltcGxlbWVudGVkIGZvciBw cGMqLW11c2wgKGRpc2FibGVkIG9uIG11c2wpCisyKSBwb3dlcnBjIHN0YWNrdHJhY2UgaW1wbGVt ZW50YXRpb24gb25seSB3b3JrcyBvbiBnbGliYyAoZGlzYWJsZWQgb24gbXVzbCkKKzMpIHBvd2Vy cGMgc3RhY2t0cmFjZSBpbXBsZW1lbnRhdGlvbiBoYXMgcHBjNjQgYXNzdW1wdGlvbnMgKGZpeGVk KQorNCkgZXhhbWluZV9zdGFjay5jcHAgbWFrZXMgZ2xpYmMgYXNzdW1wdGlvbnMgb24gcG93ZXJw YyAoZml4ZWQpCisKKy0tLSBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFz ZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suY2MKKysrKyBtb3pjL3NyYy90aGlyZF9wYXJ0 eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suY2MKK0BA IC0yMCw3ICsyMCw3IEBACisgI2luY2x1ZGUgPGludHJpbi5oPgorICNlbmRpZgorIAorLSNpZiBk ZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pCisrI2lmIChkZWZpbmVkKF9f cG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAj aWZkZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS9wcGMuaD4KKyAjZWxpZiBk ZWZpbmVkKF9fRnJlZUJTRF9fKQorQEAgLTU5LDcgKzU5LDcgQEAKKyAgIHJldHVybiBiYXNlX2lu dGVybmFsOjpOb21pbmFsQ1BVRnJlcXVlbmN5KCk7CisgfQorIAorLSNlbGlmIGRlZmluZWQoX19w b3dlcnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykKKysjZWxpZiAoZGVmaW5lZChfX3Bvd2VycGNf XykgfHwgZGVmaW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgCisgaW50NjRf dCBVbnNjYWxlZEN5Y2xlQ2xvY2s6Ok5vdygpIHsKKyAjaWZkZWYgX19HTElCQ19fCistLS0gbW96 Yy9zcmMvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRj eWNsZWNsb2NrLmgKKysrKyBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFz ZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAorQEAgLTQ2LDcgKzQ2LDcgQEAKKyAKKyAv LyBUaGUgZm9sbG93aW5nIHBsYXRmb3JtcyBoYXZlIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgaGFy ZHdhcmUgY291bnRlci4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICBkZWZpbmVkKF9fcG93ZXJwY19f KSB8fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKysgICgoZGVmaW5lZChfX3Bvd2VycGNfXykgfHwg ZGVmaW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBcCisgICBkZWZpbmVk KF9NX0lYODYpIHx8IGRlZmluZWQoX01fWDY0KQorICNkZWZpbmUgQUJTTF9IQVZFX1VOU0NBTEVE X0NZQ0xFQ0xPQ0tfSU1QTEVNRU5UQVRJT04gMQorICNlbHNlCistLS0gbW96Yy9zcmMvdGhpcmRf cGFydHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9leGFtaW5lX3N0YWNrLmNj CisrKysgbW96Yy9zcmMvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRl cm5hbC9leGFtaW5lX3N0YWNrLmNjCitAQCAtMjcsNiArMjcsMTAgQEAKKyAjaW5jbHVkZSA8Y3Np Z25hbD4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQor KyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisgI2luY2x1ZGUgImFic2wvYmFz ZS9hdHRyaWJ1dGVzLmgiCisgI2luY2x1ZGUgImFic2wvYmFzZS9pbnRlcm5hbC9yYXdfbG9nZ2lu Zy5oIgorICNpbmNsdWRlICJhYnNsL2Jhc2UvbWFjcm9zLmgiCitAQCAtNTUsOCArNTksMTAgQEAK KyAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQtPnVjX21jb250ZXh0 LnBjKTsKKyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIHJldHVybiByZWludGVy cHJldF9jYXN0PHZvaWQqPihjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7CistI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSAmJiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv bnRleHQtPnVjX21jb250ZXh0LnJlZ3MtPm5pcCk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNf XykKKysgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KCgoc3RydWN0IHB0X3JlZ3Mg Kiljb250ZXh0LT51Y19yZWdzKS0+bmlwKTsKKyAjZWxpZiBkZWZpbmVkKF9fcmlzY3YpCisgICAg IHJldHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LT51Y19tY29udGV4dC5fX2dy ZWdzW1JFR19QQ10pOworICNlbGlmIGRlZmluZWQoX19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5 MHhfXykKKy0tLSBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5n L2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKKysrKyBtb3pjL3NyYy90aGlyZF9wYXJ0eS9h YnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKK0BA IC02NCw3ICs2NCw3IEBACisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKQorICNkZWZpbmUgQUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAorICAgImFic2wv ZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfeDg2LWlubC5pbmMiCistI2VsaWYgZGVmaW5l ZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fUFBDX18pCisrI2VsaWYgKGRlZmluZWQoX19wcGNfXykg fHwgZGVmaW5lZChfX1BQQ19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgI2RlZmluZSBBQlNM X1NUQUNLVFJBQ0VfSU5MX0hFQURFUiBcCisgICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3Rh Y2t0cmFjZV9wb3dlcnBjLWlubC5pbmMiCisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKy0t LSBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFs L3N0YWNrdHJhY2VfcG93ZXJwYy1pbmwuaW5jCisrKysgbW96Yy9zcmMvdGhpcmRfcGFydHkvYWJz ZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5sLmlu YworQEAgLTEzMCw4ICsxMzAsMTMgQEAKKyAgICAgICAgIFN0YWNrdHJhY2VQb3dlclBDR2V0TFIo bmV3X3NwKSA9PSBrZXJuZWxfc2lndHJhbXBfcnQ2NF9hZGRyZXNzKSB7CisgICAgICAgY29uc3Qg dWNvbnRleHRfdCogc2lnbmFsX2NvbnRleHQgPQorICAgICAgICAgICByZWludGVycHJldF9jYXN0 PGNvbnN0IHVjb250ZXh0X3QqPih1Yyk7CisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAg ICAgICB2b2lkICoqY29uc3Qgc3BfYmVmb3JlX3NpZ25hbCA9CisgICAgICAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8dm9pZCoqPihzaWduYWxfY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9S MV0pOworKyNlbHNlCisrICAgICAgdm9pZCAqKmNvbnN0IHNwX2JlZm9yZV9zaWduYWwgPQorKyAg ICAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqKj4oc2lnbmFsX2NvbnRleHQtPnVjX21jb250 ZXh0LnVjX3JlZ3MtPmdyZWdzW1BUX1IxXSk7CisrI2VuZGlmCisgICAgICAgLy8gQ2hlY2sgdGhh dCBhbGxlZ2VkIHNwIGJlZm9yZSBzaWduYWwgaXMgbm9ubnVsbCBhbmQgaXMgcmVhc29uYWJseQor ICAgICAgIC8vIGFsaWduZWQuCisgICAgICAgaWYgKHNwX2JlZm9yZV9zaWduYWwgIT0gbnVsbHB0 ciAmJgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2ggYi9zcmNw a2dzL21vemMvcGF0Y2hlcy9jcm9zcy5wYXRjaAppbmRleCAxN2Q0N2E5MDBlYjkuLmQ3M2M1Zjgy YjQzMCAxMDA2NDQKLS0tIGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2gKKysrIGIv c3JjcGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2gKQEAgLTEsNyArMSw5IEBACi0tLS0gbW96 Yy9zcmMvZ3lwL2NvbW1vbi5neXBpCitJbmRleDogbW96Yy9zcmMvZ3lwL2NvbW1vbi5neXBpCis9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLS0gbW96Yy9zcmMvZ3lwL2NvbW1vbi5neXBpLm9yaWcKICsrKyBtb3pjL3Ny Yy9neXAvY29tbW9uLmd5cGkKLUBAIC00NDQsMTIgKzQ0NCwxMiBAQAotICAgICB9XSwKK0BAIC00 MDksMTIgKzQwOSwxMiBAQAorICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgIFsndGFyZ2V0X3BsYXRm b3JtPT0iTGludXgiJywgewogICAgICAgICdtYWtlX2dsb2JhbF9zZXR0aW5ncyc6IFsKIC0gICAg ICAgIFsnQVInLCAnPCEod2hpY2ggYXIpJ10sCkBAIC0xOSw3ICsyMSw3IEBACiAgICAgICAgXSwK ICAgICAgfV0sCiAgICAgIFsndGFyZ2V0X3BsYXRmb3JtPT0iQW5kcm9pZCInLCB7Ci1AQCAtNDk0 LDEyICs0OTQsMTIgQEAKK0BAIC00NTksMTIgKzQ1OSwxMiBAQAogICAgICAgICAgWydMRCcsICc8 KG5ka19iaW5fZGlyKS88KHRvb2xjaGFpbl9wcmVmaXgpLWxkJ10sCiAgICAgICAgICBbJ05NJywg JzwobmRrX2Jpbl9kaXIpLzwodG9vbGNoYWluX3ByZWZpeCktbm0nXSwKICAgICAgICAgIFsnUkVB REVMRicsICc8KG5ka19iaW5fZGlyKS88KHRvb2xjaGFpbl9wcmVmaXgpLXJlYWRlbGYnXSwKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2N4eC1zdGRsaWIucGF0Y2ggYi9zcmNwa2dz L21vemMvcGF0Y2hlcy9jeHgtc3RkbGliLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uMGJjY2FmOGRkYzRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9t b3pjL3BhdGNoZXMvY3h4LXN0ZGxpYi5wYXRjaApAQCAtMCwwICsxLDI5IEBACitJbmRleDogbW96 Yy9zcmMvZ3lwL2NvbW1vbi5neXBpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbW96Yy9zcmMvZ3lwL2NvbW1v bi5neXBpCisrKysgbW96Yy9zcmMvZ3lwL2NvbW1vbi5neXBpCitAQCAtMTA1LDcgKzEwNSw3IEBA CisgICAgIF0sCisgICAgICMgTGlicmFyaWVzIGZvciBHTlUvTGludXggZW52aXJvbm1lbnQuCisg ICAgICdsaW51eF9sZGZsYWdzJzogWworLSAgICAgICctbGMrKycsCisrICAgICAgJy1sc3RkYysr JywKKyAgICAgICAnLXB0aHJlYWQnLAorICAgICBdLAorIAorQEAgLTIwNSw3ICsyMDUsNiBAQAor ICAgICAgICAgICAgICAgJy1XdHlwZS1saW1pdHMnLAorICAgICAgICAgICAgIF0sCisgICAgICAg ICAgICAgJ2NmbGFnc19jYyc6IFsKKy0gICAgICAgICAgICAgICctc3RkbGliPWxpYmMrKycsCisg ICAgICAgICAgICAgICAnLVduby1jb3ZlcmVkLXN3aXRjaC1kZWZhdWx0JywKKyAgICAgICAgICAg ICAgICctV25vLXVubmFtZWQtdHlwZS10ZW1wbGF0ZS1hcmdzJywKKyAgICAgICAgICAgICAgICct V25vLWMrKzExLW5hcnJvd2luZycsCitAQCAtMjI1LDcgKzIyNCw2IEBACisgICAgICAgICAgICAg ICAnLVd0eXBlLWxpbWl0cycsCisgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAnY2ZsYWdz X2NjJzogWworLSAgICAgICAgICAgICAgJy1zdGRsaWI9bGliYysrJywKKyAgICAgICAgICAgICAg ICctV25vLWNvdmVyZWQtc3dpdGNoLWRlZmF1bHQnLAorICAgICAgICAgICAgICAgJy1Xbm8tdW5u YW1lZC10eXBlLXRlbXBsYXRlLWFyZ3MnLAorICAgICAgICAgICAgICAgJy1Xbm8tYysrMTEtbmFy cm93aW5nJywKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2RlZmF1bHRfaGlyYWdh bmFfZnJvbV9lbnZpcm9ubWVudC5wYXRjaCBiL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2RlZmF1bHRf aGlyYWdhbmFfZnJvbV9lbnZpcm9ubWVudC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZDczMzYzNWFjNWExLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tb3pjL3BhdGNo ZXMvZGVmYXVsdF9oaXJhZ2FuYV9mcm9tX2Vudmlyb25tZW50LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMjAgKzAsMCBAQAotLS0tIG1vemMvc3JjL3VuaXgvaWJ1cy9wcm9wZXJ0eV9oYW5kbGVy LmNjCi0rKysgbW96Yy9zcmMvdW5peC9pYnVzL3Byb3BlcnR5X2hhbmRsZXIuY2MKLUBAIC00MCw2 ICs0MCw4IEBACi0gI2luY2x1ZGUgInVuaXgvaWJ1cy9tb3pjX2VuZ2luZV9wcm9wZXJ0eS5oIgot ICNpbmNsdWRlICJ1bml4L2lidXMvcGF0aF91dGlsLmgiCi0gCi0rI2luY2x1ZGUgPGNzdGRsaWI+ Ci0rCi0gLy8gT24gR25vbWUgU2hlbGwgd2l0aCBJQnVzIDEuNSwgbmV3IHByb3BlcnR5IG5hbWVk ICJzeW1ib2wiIGlzIHVzZWQgdG8KLSAvLyByZXByZXNlbnQgdGhlIG1vZGUgaW5kaWNhdG9yIG9u IHRoZSBzeXN0ZW0gcGFuZWwuIE5vdGUgdGhhdCAic3ltYm9sIiBkb2VzCi0gLy8gbm90IGV4aXN0 IGluIElCdXMgMS40LnguCi1AQCAtODAsNyArODIsNyBAQCBib29sIEdldERpc2FibGVkKElCdXNF bmdpbmUgKmVuZ2luZSkgewotIC8vIE9uIElCdXMgMS40LngsIElCdXMgZXhwZWN0cyB0aGF0IGFu IElNRSBzaG91bGQgYWx3YXlzIGJlIHR1cm5lZCBvbiBhbmQKLSAvLyBJTUUgb24vb2ZmIGtleXMg YXJlIGhhbmRsZWQgYnkgSUJ1cyBpdHNlbGYgcmF0aGVyIHRoYW4gZWFjaCBJTUUuCi0gI2lmIElC VVNfQ0hFQ0tfVkVSU0lPTigxLCA1LCAwKQotLWNvbnN0IGJvb2wga0FjdGl2YXRlZE9uTGF1bmNo ID0gZmFsc2U7Ci0rY29uc3QgYm9vbCBrQWN0aXZhdGVkT25MYXVuY2ggPSAhITo6c3RkOjpnZXRl bnYoIklCVVNfTU9aQ19ERUZBVUxUX0hJUkFHQU5BIik7Ci0gI2Vsc2UKLSBjb25zdCBib29sIGtB Y3RpdmF0ZWRPbkxhdW5jaCA9IHRydWU7Ci0gI2VuZGlmICAvLyBJQnVzPj0xLjUuMApkaWZmIC0t Z2l0IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvZmNpdHg1LnBhdGNoIGIvc3JjcGtncy9tb3pjL3Bh dGNoZXMvZmNpdHg1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODhhNmRl MGFlNTUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL21vemMvcGF0Y2hlcy9mY2l0eDUucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1JbmRleDogbW96Yy9zcmMvdW5peC9m Y2l0eDUvbW96Y19yZXNwb25zZV9wYXJzZXIuY2MKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBtb3pjL3NyYy91 bml4L2ZjaXR4NS9tb3pjX3Jlc3BvbnNlX3BhcnNlci5jYy5vcmlnCi0rKysgbW96Yy9zcmMvdW5p eC9mY2l0eDUvbW96Y19yZXNwb25zZV9wYXJzZXIuY2MKLUBAIC0xNjksOSArMTY5LDkgQEAgY2xh c3MgTW96Y0NhbmRpZGF0ZUxpc3QgZmluYWwgOiBwdWJsaWMgQwotICAgICByZXR1cm4gbGFiZWxz X1tpZHhdOwotICAgfQotIAotLSAgc3RkOjpzaGFyZWRfcHRyPGNvbnN0IENhbmRpZGF0ZVdvcmQ+ IGNhbmRpZGF0ZShpbnQgaWR4KSBjb25zdCBvdmVycmlkZSB7Ci0rICBjb25zdCBDYW5kaWRhdGVX b3JkJiBjYW5kaWRhdGUoaW50IGlkeCkgY29uc3Qgb3ZlcnJpZGUgewotICAgICBjaGVja0luZGV4 KGlkeCk7Ci0tICAgIHJldHVybiBjYW5kaWRhdGVXb3Jkc19baWR4XTsKLSsgICAgcmV0dXJuICpj YW5kaWRhdGVXb3Jkc19baWR4XTsKLSAgIH0KLSAgIGludCBzaXplKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gY2FuZGlkYXRlV29yZHNfLnNpemUoKTsgfQotIAotSW5kZXg6IG1vemMvc3JjL3Vu aXgvZmNpdHg1L21vemNfc3RhdGUuY2MKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBtb3pjL3NyYy91bml4L2Zj aXR4NS9tb3pjX3N0YXRlLmNjLm9yaWcKLSsrKyBtb3pjL3NyYy91bml4L2ZjaXR4NS9tb3pjX3N0 YXRlLmNjCi1AQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wgTW96Y1N0YXRlOjpQcm9jZXNzS2V5RXZl bnQoS2V5U3ltIHMKLSAKLSAgICAgaWYgKG5vcm1hbGl6ZWRfa2V5LmNoZWNrKEtleShGY2l0eEtl eV9Fc2NhcGUpKSkgewotICAgICAgIGRpc3BsYXlVc2FnZV8gPSBmYWxzZTsKLS0gICAgICBQcm9j ZXNzS2V5RXZlbnQoRmNpdHhLZXlfVm9pZFN5bWJvbCwgMCwgS2V5U3RhdGU6Ok5vbmUsIGxheW91 dF9pc19qcCwKLSsgICAgICBQcm9jZXNzS2V5RXZlbnQoRmNpdHhLZXlfVm9pZFN5bWJvbCwgMCwg S2V5U3RhdGU6Ok5vU3RhdGUsIGxheW91dF9pc19qcCwKLSAgICAgICAgICAgICAgICAgICAgICAg ZmFsc2UpOwotICAgICB9Ci0gICAgIHJldHVybiB0cnVlOwotSW5kZXg6IG1vemMvc3JjL3VuaXgv ZmNpdHg1L21vemMuY29uZgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIG1vemMvc3JjL3VuaXgvZmNpdHg1L21v emMuY29uZi5vcmlnCi0rKysgbW96Yy9zcmMvdW5peC9mY2l0eDUvbW96Yy5jb25mCi1AQCAtMSw2 ICsxLDYgQEAKLSBbSW5wdXRNZXRob2RdCi0gTmFtZT1Nb3pjCi0tSWNvbj1QUkVGSVgvc2hhcmUv ZmNpdHg1L21vemMvaWNvbi9tb3pjLnBuZwotK0ljb249L3Vzci9zaGFyZS9mY2l0eDUvbW96Yy9p Y29uL21vemMucG5nCi0gTGFiZWw944GCCi0gTGFuZ0NvZGU9amEKLSBBZGRvbj1tb3pjCmRpZmYg LS1naXQgYS9zcmNwa2dzL21vemMvcGF0Y2hlcy9uby1wYXJhbGxlbC5wYXRjaCBiL3NyY3BrZ3Mv bW96Yy9wYXRjaGVzL25vLXBhcmFsbGVsLnBhdGNoCmluZGV4IDE0YjIzMzY3ZjA5ZS4uNTk1MmNi YzZhMDQwIDEwMDY0NAotLS0gYS9zcmNwa2dzL21vemMvcGF0Y2hlcy9uby1wYXJhbGxlbC5wYXRj aAorKysgYi9zcmNwa2dzL21vemMvcGF0Y2hlcy9uby1wYXJhbGxlbC5wYXRjaApAQCAtMSw2ICsx LDggQEAKLS0tLSBtb3pjL3NyYy9idWlsZF9tb3pjLnB5CitJbmRleDogbW96Yy9zcmMvYnVpbGRf bW96Yy5weQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIG1vemMvc3JjL2J1aWxkX21vemMucHkub3JpZwogKysr IG1vemMvc3JjL2J1aWxkX21vemMucHkKLUBAIC03MjgsNiArNzI4LDcgQEAgZGVmIEd5cE1haW4o b3B0aW9ucywgdW51c2VkX2FyZ3MpOgorQEAgLTQ5Niw2ICs0OTYsNyBAQCBkZWYgR3lwTWFpbihv cHRpb25zLCB1bnVzZWRfYXJncyk6CiAgICBneXBfb3B0aW9ucy5leHRlbmQoWyctLWdlbmVyYXRv ci1vdXRwdXQ9LiddKQogICAgc2hvcnRfYmFzZW5hbWUgPSBHZXRCdWlsZFNob3J0QmFzZU5hbWUo dGFyZ2V0X3BsYXRmb3JtKQogICAgZ3lwX29wdGlvbnMuZXh0ZW5kKFsnLUcnLCAnb3V0cHV0X2Rp cj0lcycgJSBzaG9ydF9iYXNlbmFtZV0pCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vemMvcGF0Y2hl cy9wcm90b2J1Zi0zNzAucGF0Y2ggYi9zcmNwa2dzL21vemMvcGF0Y2hlcy9wcm90b2J1Zi0zNzAu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5ZDRlMGJiOTk1ZC4uMDAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Byb3RvYnVmLTM3MC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDMyNyArMCwwIEBACi0tLS0gbW96Yy9zcmMvZGljdGlvbmFyeS91c2Vy X2RpY3Rpb25hcnkuY2MKLSsrKyBtb3pjL3NyYy9kaWN0aW9uYXJ5L3VzZXJfZGljdGlvbmFyeS5j YwotQEAgLTI4OSw3ICsyODksNyBAQCBjbGFzcyBVc2VyRGljdGlvbmFyeTo6VXNlckRpY3Rpb25h cnlSZWxvYWRlciA6IHB1YmxpYyBUaHJlYWQgewotICAgICB9Ci0gCi0gICAgIGF1dG9fcmVnaXN0 ZXJfbW9kZV8gPSBmYWxzZTsKLS0gICAgZGljXy0+TG9hZCgqKHN0b3JhZ2UuZ2V0KCkpKTsKLSsg ICAgZGljXy0+TG9hZCgqKHN0b3JhZ2UtPnN0b3JhZ2UoKSkpOwotICAgfQotIAotICBwcml2YXRl OgotLS0tIG1vemMvc3JjL2RpY3Rpb25hcnkvdXNlcl9kaWN0aW9uYXJ5X3Nlc3Npb24uY2MKLSsr KyBtb3pjL3NyYy9kaWN0aW9uYXJ5L3VzZXJfZGljdGlvbmFyeV9zZXNzaW9uLmNjCi1AQCAtMTQ0 LDcgKzE0NCw3IEBAIGNsYXNzIFVuZG9SZW5hbWVEaWN0aW9uYXJ5Q29tbWFuZCA6IHB1YmxpYyBV c2VyRGljdGlvbmFyeVNlc3Npb246OlVuZG9Db21tYW5kIHsKLSAgIHZpcnR1YWwgYm9vbCBSdW5V bmRvKG1vemM6OlVzZXJEaWN0aW9uYXJ5U3RvcmFnZSAqc3RvcmFnZSkgewotICAgICBVc2VyRGlj dGlvbmFyeSAqZGljdGlvbmFyeSA9Ci0gICAgICAgICBVc2VyRGljdGlvbmFyeVV0aWw6OkdldE11 dGFibGVVc2VyRGljdGlvbmFyeUJ5SWQoCi0tICAgICAgICAgICAgc3RvcmFnZSwgZGljdGlvbmFy eV9pZF8pOwotKyAgICAgICAgICAgIHN0b3JhZ2UtPnN0b3JhZ2UoKSwgZGljdGlvbmFyeV9pZF8p OwotICAgICBpZiAoZGljdGlvbmFyeSA9PSBOVUxMKSB7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwot ICAgICB9Ci1AQCAtMTY5LDcgKzE2OSw3IEBAIGNsYXNzIFVuZG9BZGRFbnRyeUNvbW1hbmQgOiBw dWJsaWMgVXNlckRpY3Rpb25hcnlTZXNzaW9uOjpVbmRvQ29tbWFuZCB7Ci0gICB2aXJ0dWFsIGJv b2wgUnVuVW5kbyhtb3pjOjpVc2VyRGljdGlvbmFyeVN0b3JhZ2UgKnN0b3JhZ2UpIHsKLSAgICAg VXNlckRpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPQotICAgICAgICAgVXNlckRpY3Rpb25hcnlVdGls OjpHZXRNdXRhYmxlVXNlckRpY3Rpb25hcnlCeUlkKAotLSAgICAgICAgICAgIHN0b3JhZ2UsIGRp Y3Rpb25hcnlfaWRfKTsKLSsgICAgICAgICAgICBzdG9yYWdlLT5zdG9yYWdlKCksIGRpY3Rpb25h cnlfaWRfKTsKLSAgICAgaWYgKGRpY3Rpb25hcnkgPT0gTlVMTCB8fCBkaWN0aW9uYXJ5LT5lbnRy aWVzX3NpemUoKSA9PSAwKSB7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci1AQCAtMTk1 LDcgKzE5NSw3IEBAIGNsYXNzIFVuZG9FZGl0RW50cnlDb21tYW5kIDogcHVibGljIFVzZXJEaWN0 aW9uYXJ5U2Vzc2lvbjo6VW5kb0NvbW1hbmQgewotICAgdmlydHVhbCBib29sIFJ1blVuZG8obW96 Yzo6VXNlckRpY3Rpb25hcnlTdG9yYWdlICpzdG9yYWdlKSB7Ci0gICAgIFVzZXJEaWN0aW9uYXJ5 ICpkaWN0aW9uYXJ5ID0KLSAgICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVz ZXJEaWN0aW9uYXJ5QnlJZCgKLS0gICAgICAgICAgICBzdG9yYWdlLCBkaWN0aW9uYXJ5X2lkXyk7 Ci0rICAgICAgICAgICAgc3RvcmFnZS0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lkXyk7Ci0gICAg IGlmIChkaWN0aW9uYXJ5ID09IE5VTEwgfHwKLSAgICAgICAgIGluZGV4XyA8IDAgfHwgZGljdGlv bmFyeS0+ZW50cmllc19zaXplKCkgPD0gaW5kZXhfKSB7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwot QEAgLTI0MCw3ICsyNDAsNyBAQCBjbGFzcyBVbmRvRGVsZXRlRW50cnlDb21tYW5kIDogcHVibGlj IFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6VW5kb0NvbW1hbmQgewotICAgdmlydHVhbCBib29sIFJ1 blVuZG8obW96Yzo6VXNlckRpY3Rpb25hcnlTdG9yYWdlICpzdG9yYWdlKSB7Ci0gICAgIFVzZXJE aWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0KLSAgICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0 TXV0YWJsZVVzZXJEaWN0aW9uYXJ5QnlJZCgKLS0gICAgICAgICAgICBzdG9yYWdlLCBkaWN0aW9u YXJ5X2lkXyk7Ci0rICAgICAgICAgICAgc3RvcmFnZS0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lk Xyk7Ci0gICAgIGlmIChkaWN0aW9uYXJ5ID09IE5VTEwpIHsKLSAgICAgICByZXR1cm4gZmFsc2U7 Ci0gICAgIH0KLUBAIC0zMDYsNyArMzA2LDcgQEAgY2xhc3MgVW5kb0ltcG9ydEZyb21TdHJpbmdD b21tYW5kIDogcHVibGljIFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6VW5kb0NvbW1hbmQgewotICAg dmlydHVhbCBib29sIFJ1blVuZG8obW96Yzo6VXNlckRpY3Rpb25hcnlTdG9yYWdlICpzdG9yYWdl KSB7Ci0gICAgIFVzZXJEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0KLSAgICAgICAgIFVzZXJEaWN0 aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVzZXJEaWN0aW9uYXJ5QnlJZCgKLS0gICAgICAgICAgICBz dG9yYWdlLCBkaWN0aW9uYXJ5X2lkXyk7Ci0rICAgICAgICAgICAgc3RvcmFnZS0+c3RvcmFnZSgp LCBkaWN0aW9uYXJ5X2lkXyk7Ci0gICAgIGlmIChkaWN0aW9uYXJ5ID09IE5VTEwpIHsKLSAgICAg ICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLUBAIC0zNDUsNyArMzQ1LDcgQEAgVXNlckRpY3Rpb25h cnlTZXNzaW9uOjp+VXNlckRpY3Rpb25hcnlTZXNzaW9uKCkgewotIAotIC8vIFRPRE8oaGlkZWhp a28pIG1vdmUgdGhpcyB0byBoZWFkZXIuCi0gY29uc3QgVXNlckRpY3Rpb25hcnlTdG9yYWdlICZV c2VyRGljdGlvbmFyeVNlc3Npb246OnN0b3JhZ2UoKSBjb25zdCB7Ci0tICByZXR1cm4gKnN0b3Jh Z2VfOwotKyAgcmV0dXJuICpzdG9yYWdlXy0+c3RvcmFnZSgpOwotIH0KLSBtb3pjOjpVc2VyRGlj dGlvbmFyeVN0b3JhZ2UgKlVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6bXV0YWJsZV9zdG9yYWdlKCkg ewotICAgcmV0dXJuIHN0b3JhZ2VfLmdldCgpOwotQEAgLTQ2NCw3ICs0NjQsNyBAQCBVc2VyRGlj dGlvbmFyeUNvbW1hbmRTdGF0dXM6OlN0YXR1cyBVc2VyRGljdGlvbmFyeVNlc3Npb246OkNyZWF0 ZURpY3Rpb25hcnkoCi0gICAgIGNvbnN0IHN0cmluZyAmZGljdGlvbmFyeV9uYW1lLCB1aW50NjQg Km5ld19kaWN0aW9uYXJ5X2lkKSB7Ci0gICBVc2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OlN0 YXR1cyBzdGF0dXMgPQotICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6Q3JlYXRlRGljdGlvbmFy eSgKLS0gICAgICAgICAgc3RvcmFnZV8uZ2V0KCksIGRpY3Rpb25hcnlfbmFtZSwgbmV3X2RpY3Rp b25hcnlfaWQpOwotKyAgICAgICAgICBzdG9yYWdlXy0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X25h bWUsIG5ld19kaWN0aW9uYXJ5X2lkKTsKLSAgIGlmIChzdGF0dXMgPT0gVXNlckRpY3Rpb25hcnlD b21tYW5kU3RhdHVzOjpVU0VSX0RJQ1RJT05BUllfQ09NTUFORF9TVUNDRVNTKSB7Ci0gICAgIEFk ZFVuZG9Db21tYW5kKG5ldyBVbmRvQ3JlYXRlRGljdGlvbmFyeUNvbW1hbmQpOwotICAgfQotQEAg LTQ4OCw3ICs0ODgsNyBAQCBVc2VyRGljdGlvbmFyeVNlc3Npb246OkRlbGV0ZURpY3Rpb25hcnlJ bnRlcm5hbCgKLSAgIGludCBvcmlnaW5hbF9pbmRleDsKLSAgIFVzZXJEaWN0aW9uYXJ5ICpkZWxl dGVkX2RpY3Rpb25hcnk7Ci0gICBpZiAoIVVzZXJEaWN0aW9uYXJ5VXRpbDo6RGVsZXRlRGljdGlv bmFyeSgKLS0gICAgICAgICAgc3RvcmFnZV8uZ2V0KCksIGRpY3Rpb25hcnlfaWQsCi0rICAgICAg ICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfaWQsCi0gICAgICAgICAgICZvcmln aW5hbF9pbmRleCwgJmRlbGV0ZWRfZGljdGlvbmFyeSkpIHsKLSAgICAgLy8gRmFpbGVkIHRvIGRl bGV0ZSB0aGUgZGljdGlvbmFyeS4KLSAgICAgcmV0dXJuIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0 YXR1czo6VU5LTk9XTl9ESUNUSU9OQVJZX0lEOwotQEAgLTUxMCw3ICs1MTAsNyBAQCBVc2VyRGlj dGlvbmFyeUNvbW1hbmRTdGF0dXM6OlN0YXR1cyBVc2VyRGljdGlvbmFyeVNlc3Npb246OlJlbmFt ZURpY3Rpb25hcnkoCi0gICAgIHVpbnQ2NCBkaWN0aW9uYXJ5X2lkLCBjb25zdCBzdHJpbmcgJmRp Y3Rpb25hcnlfbmFtZSkgewotICAgc3RyaW5nIG9yaWdpbmFsX25hbWU7Ci0gICBjb25zdCBVc2Vy RGljdGlvbmFyeSAqZGljdGlvbmFyeSA9Ci0tICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRV c2VyRGljdGlvbmFyeUJ5SWQoKnN0b3JhZ2VfLCBkaWN0aW9uYXJ5X2lkKTsKLSsgICAgICBVc2Vy RGljdGlvbmFyeVV0aWw6OkdldFVzZXJEaWN0aW9uYXJ5QnlJZCgqc3RvcmFnZV8tPnN0b3JhZ2Uo KSwgZGljdGlvbmFyeV9pZCk7Ci0gICBpZiAoZGljdGlvbmFyeSAhPSBOVUxMKSB7Ci0gICAgIC8v IE5vdGUgdGhhdCBpZiBkaWN0aW9uYXJ5IGlzIG51bGwsIGl0IG1lYW5zIHRoZSBkaWN0aW9uYXJ5 X2lkIGlzIGludmFsaWQKLSAgICAgLy8gc28gZm9sbG93aW5nIFJlbmFtZURpY3Rpb25hcnkgd2ls bCBmYWlsLCBhbmQgZXJyb3IgaGFuZGxpbmcgaXMgZG9uZQotQEAgLTU0Nyw3ICs1NDcsNyBAQCBV c2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OlN0YXR1cyBVc2VyRGljdGlvbmFyeVNlc3Npb246 OkFkZEVudHJ5KAotICAgICB1aW50NjQgZGljdGlvbmFyeV9pZCwgY29uc3QgVXNlckRpY3Rpb25h cnk6OkVudHJ5ICZlbnRyeSkgewotICAgVXNlckRpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPQotICAg ICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVzZXJEaWN0aW9uYXJ5QnlJZCgKLS0g ICAgICAgICAgc3RvcmFnZV8uZ2V0KCksIGRpY3Rpb25hcnlfaWQpOwotKyAgICAgICAgICBzdG9y YWdlXy0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lkKTsKLSAgIGlmIChkaWN0aW9uYXJ5ID09IE5V TEwpIHsKLSAgICAgcmV0dXJuIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6VU5LTk9XTl9E SUNUSU9OQVJZX0lEOwotICAgfQotQEAgLTU3NSw3ICs1NzUsNyBAQCBVc2VyRGljdGlvbmFyeUNv bW1hbmRTdGF0dXM6OlN0YXR1cyBVc2VyRGljdGlvbmFyeVNlc3Npb246OkVkaXRFbnRyeSgKLSAg ICAgdWludDY0IGRpY3Rpb25hcnlfaWQsIGludCBpbmRleCwgY29uc3QgVXNlckRpY3Rpb25hcnk6 OkVudHJ5ICZlbnRyeSkgewotICAgVXNlckRpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPQotICAgICAg IFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVzZXJEaWN0aW9uYXJ5QnlJZCgKLS0gICAg ICAgICAgc3RvcmFnZV8uZ2V0KCksIGRpY3Rpb25hcnlfaWQpOwotKyAgICAgICAgICBzdG9yYWdl Xy0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lkKTsKLSAgIGlmIChkaWN0aW9uYXJ5ID09IE5VTEwp IHsKLSAgICAgcmV0dXJuIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6VU5LTk9XTl9ESUNU SU9OQVJZX0lEOwotICAgfQotQEAgLTYwNCw3ICs2MDQsNyBAQCBVc2VyRGljdGlvbmFyeUNvbW1h bmRTdGF0dXM6OlN0YXR1cyBVc2VyRGljdGlvbmFyeVNlc3Npb246OkRlbGV0ZUVudHJ5KAotICAg ICB1aW50NjQgZGljdGlvbmFyeV9pZCwgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiAmaW5kZXhfbGlz dCkgewotICAgVXNlckRpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPQotICAgICAgIFVzZXJEaWN0aW9u YXJ5VXRpbDo6R2V0TXV0YWJsZVVzZXJEaWN0aW9uYXJ5QnlJZCgKLS0gICAgICAgICAgc3RvcmFn ZV8uZ2V0KCksIGRpY3Rpb25hcnlfaWQpOwotKyAgICAgICAgICBzdG9yYWdlXy0+c3RvcmFnZSgp LCBkaWN0aW9uYXJ5X2lkKTsKLSAgIGlmIChkaWN0aW9uYXJ5ID09IE5VTEwpIHsKLSAgICAgcmV0 dXJuIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6VU5LTk9XTl9ESUNUSU9OQVJZX0lEOwot ICAgfQotQEAgLTY0NCw3ICs2NDQsNyBAQCBVc2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OlN0 YXR1cyBVc2VyRGljdGlvbmFyeVNlc3Npb246OkltcG9ydEZyb21TdHJpbmcoCi0gICAgIHVpbnQ2 NCBkaWN0aW9uYXJ5X2lkLCBjb25zdCBzdHJpbmcgJmRhdGEpIHsKLSAgIFVzZXJEaWN0aW9uYXJ5 ICpkaWN0aW9uYXJ5ID0KLSAgICAgICBVc2VyRGljdGlvbmFyeVV0aWw6OkdldE11dGFibGVVc2Vy RGljdGlvbmFyeUJ5SWQoCi0tICAgICAgICAgIHN0b3JhZ2VfLmdldCgpLCBkaWN0aW9uYXJ5X2lk KTsKLSsgICAgICAgICAgc3RvcmFnZV8tPnN0b3JhZ2UoKSwgZGljdGlvbmFyeV9pZCk7Ci0gICBp ZiAoZGljdGlvbmFyeSA9PSBOVUxMKSB7Ci0gICAgIHJldHVybiBVc2VyRGljdGlvbmFyeUNvbW1h bmRTdGF0dXM6OlVOS05PV05fRElDVElPTkFSWV9JRDsKLSAgIH0KLUBAIC02OTksNyArNjk5LDcg QEAgVXNlckRpY3Rpb25hcnlTZXNzaW9uOjpJbXBvcnRUb05ld0RpY3Rpb25hcnlGcm9tU3RyaW5n KAotICAgICB1aW50NjQgKm5ld19kaWN0aW9uYXJ5X2lkKSB7Ci0gICBVc2VyRGljdGlvbmFyeUNv bW1hbmRTdGF0dXM6OlN0YXR1cyBzdGF0dXMgPQotICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6 Q3JlYXRlRGljdGlvbmFyeSgKLS0gICAgICAgICAgc3RvcmFnZV8uZ2V0KCksIGRpY3Rpb25hcnlf bmFtZSwgbmV3X2RpY3Rpb25hcnlfaWQpOwotKyAgICAgICAgICBzdG9yYWdlXy0+c3RvcmFnZSgp LCBkaWN0aW9uYXJ5X25hbWUsIG5ld19kaWN0aW9uYXJ5X2lkKTsKLSAgIGlmIChzdGF0dXMgIT0g VXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVzOjpVU0VSX0RJQ1RJT05BUllfQ09NTUFORF9TVUND RVNTKSB7Ci0gICAgIHJldHVybiBzdGF0dXM7Ci0gICB9Ci1AQCAtNzA5LDcgKzcwOSw3IEBAIFVz ZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6SW1wb3J0VG9OZXdEaWN0aW9uYXJ5RnJvbVN0cmluZygKLSAK LSAgIFVzZXJEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5ID0KLSAgICAgICBVc2VyRGljdGlvbmFyeVV0 aWw6OkdldE11dGFibGVVc2VyRGljdGlvbmFyeUJ5SWQoCi0tICAgICAgICAgIHN0b3JhZ2VfLmdl dCgpLCAqbmV3X2RpY3Rpb25hcnlfaWQpOwotKyAgICAgICAgICBzdG9yYWdlXy0+c3RvcmFnZSgp LCAqbmV3X2RpY3Rpb25hcnlfaWQpOwotICAgaWYgKGRpY3Rpb25hcnkgPT0gTlVMTCkgewotICAg ICAvLyBUaGUgZGljdGlvbmFyeSBzaG91bGQgYmUgYWx3YXlzIGZvdW5kLgotICAgICByZXR1cm4g VXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVzOjpVTktOT1dOX0VSUk9SOwotQEAgLTcyOCw3ICs3 MjgsNyBAQCBib29sIFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6RW5zdXJlTm9uRW1wdHlTdG9yYWdl KCkgewotICAgdWludDY0IG5ld19kaWN0aW9uYXJ5X2lkOwotICAgVXNlckRpY3Rpb25hcnlDb21t YW5kU3RhdHVzOjpTdGF0dXMgc3RhdHVzID0KLSAgICAgICBVc2VyRGljdGlvbmFyeVV0aWw6OkNy ZWF0ZURpY3Rpb25hcnkoCi0tICAgICAgICAgIHN0b3JhZ2VfLmdldCgpLCBkZWZhdWx0X2RpY3Rp b25hcnlfbmFtZV8sICZuZXdfZGljdGlvbmFyeV9pZCk7Ci0rICAgICAgICAgIHN0b3JhZ2VfLT5z dG9yYWdlKCksIGRlZmF1bHRfZGljdGlvbmFyeV9uYW1lXywgJm5ld19kaWN0aW9uYXJ5X2lkKTsK LSAgIENIRUNLX0VRKAotICAgICAgIHN0YXR1cywgVXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVz OjpVU0VSX0RJQ1RJT05BUllfQ09NTUFORF9TVUNDRVNTKTsKLSAgIHJldHVybiB0cnVlOwotLS0t IG1vemMvc3JjL2RpY3Rpb25hcnkvdXNlcl9kaWN0aW9uYXJ5X3N0b3JhZ2UuY2MKLSsrKyBtb3pj L3NyYy9kaWN0aW9uYXJ5L3VzZXJfZGljdGlvbmFyeV9zdG9yYWdlLmNjCi1AQCAtMTA5LDcgKzEw OSw3IEBAIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9yYWdlOjpMb2FkSW50ZXJuYWwoKSB7Ci0gICBt b3pjOjpwcm90b2J1Zjo6aW86OklzdHJlYW1JbnB1dFN0cmVhbSB6ZXJvX2NvcHlfaW5wdXQoJmlm cyk7Ci0gICBtb3pjOjpwcm90b2J1Zjo6aW86OkNvZGVkSW5wdXRTdHJlYW0gZGVjb2RlcigmemVy b19jb3B5X2lucHV0KTsKLSAgIGRlY29kZXIuU2V0VG90YWxCeXRlc0xpbWl0KGtEZWZhdWx0VG90 YWxCeXRlc0xpbWl0LCAtMSk7Ci0tICBpZiAoIVBhcnNlRnJvbUNvZGVkU3RyZWFtKCZkZWNvZGVy KSkgewotKyAgaWYgKCFzdG9yYWdlXy5QYXJzZUZyb21Db2RlZFN0cmVhbSgmZGVjb2RlcikpIHsK LSAgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHBhcnNlIjsKLSAgICAgaWYgKCFkZWNvZGVy LkNvbnN1bWVkRW50aXJlTWVzc2FnZSgpIHx8ICFpZnMuZW9mKCkpIHsKLSAgICAgICBMT0coRVJS T1IpIDw8ICJQYXJzZUZyb21TdHJlYW0gZmFpbGVkOiBmaWxlIHNlZW1zIGJyb2tlbiI7Ci1AQCAt MTQxLDcgKzE0MSw3IEBAIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9yYWdlOjpMb2FkKCkgewotICAg ICBjb25zdCBVc2VyRGljdGlvbmFyeSAmZGljdCA9IGRpY3Rpb25hcmllcyhpKTsKLSAgICAgaWYg KGRpY3QuaWQoKSA9PSAwKSB7Ci0gICAgICAgbXV0YWJsZV9kaWN0aW9uYXJpZXMoaSktPnNldF9p ZCgKLS0gICAgICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVOZXdEaWN0aW9uYXJ5SWQo KnRoaXMpKTsKLSsgICAgICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVOZXdEaWN0aW9u YXJ5SWQoc3RvcmFnZV8pKTsKLSAgICAgfQotICAgfQotIAotQEAgLTE3MSw3ICsxNzEsNyBAQCBi b29sIFVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6U2F2ZSgpIHsKLSAgICAgICByZXR1cm4gZmFsc2U7 Ci0gICAgIH0KLSAKLS0gICAgaWYgKCFTZXJpYWxpemVUb09zdHJlYW0oJm9mcykpIHsKLSsgICAg aWYgKCFzdG9yYWdlXy5TZXJpYWxpemVUb09zdHJlYW0oJm9mcykpIHsKLSAgICAgICBMT0coRVJS T1IpIDw8ICJTZXJpYWxpemVUb1N0cmluZyBmYWlsZWQiOwotICAgICAgIGxhc3RfZXJyb3JfdHlw ZV8gPSBTWU5DX0ZBSUxVUkU7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTI0MSw3ICsyNDEs NyBAQCBib29sIFVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6RXhwb3J0RGljdGlvbmFyeSgKLSBib29s IFVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6Q3JlYXRlRGljdGlvbmFyeSgKLSAgICAgY29uc3Qgc3Ry aW5nICZkaWNfbmFtZSwgdWludDY0ICpuZXdfZGljX2lkKSB7Ci0gICBVc2VyRGljdGlvbmFyeUNv bW1hbmRTdGF0dXM6OlN0YXR1cyBzdGF0dXMgPQotLSAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6 Q3JlYXRlRGljdGlvbmFyeSh0aGlzLCBkaWNfbmFtZSwgbmV3X2RpY19pZCk7Ci0rICAgICAgVXNl ckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVEaWN0aW9uYXJ5KCZzdG9yYWdlXywgZGljX25hbWUsIG5l d19kaWNfaWQpOwotICAgLy8gVXBkYXRlIGxhc3RfZXJyb3JfdHlwZV8KLSAgIHN3aXRjaCAoc3Rh dHVzKSB7Ci0gICAgIGNhc2UgVXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVzOjpESUNUSU9OQVJZ X05BTUVfRU1QVFk6Ci1AQCAtMjczLDcgKzI3Myw3IEBAIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9y YWdlOjpDcmVhdGVEaWN0aW9uYXJ5KAotIH0KLSAKLSBib29sIFVzZXJEaWN0aW9uYXJ5U3RvcmFn ZTo6RGVsZXRlRGljdGlvbmFyeSh1aW50NjQgZGljX2lkKSB7Ci0tICBpZiAoIVVzZXJEaWN0aW9u YXJ5VXRpbDo6RGVsZXRlRGljdGlvbmFyeSh0aGlzLCBkaWNfaWQsIE5VTEwsIE5VTEwpKSB7Ci0r ICBpZiAoIVVzZXJEaWN0aW9uYXJ5VXRpbDo6RGVsZXRlRGljdGlvbmFyeSgmc3RvcmFnZV8sIGRp Y19pZCwgTlVMTCwgTlVMTCkpIHsKLSAgICAgLy8gRmFpbGVkIHRvIGRlbGV0ZSBkaWN0aW9uYXJ5 LgotICAgICBsYXN0X2Vycm9yX3R5cGVfID0gSU5WQUxJRF9ESUNUSU9OQVJZX0lEOwotICAgICBy ZXR1cm4gZmFsc2U7Ci1AQCAtMzE4LDcgKzMxOCw3IEBAIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9y YWdlOjpSZW5hbWVEaWN0aW9uYXJ5KHVpbnQ2NCBkaWNfaWQsCi0gfQotIAotIGludCBVc2VyRGlj dGlvbmFyeVN0b3JhZ2U6OkdldFVzZXJEaWN0aW9uYXJ5SW5kZXgodWludDY0IGRpY19pZCkgY29u c3QgewotLSAgcmV0dXJuIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0VXNlckRpY3Rpb25hcnlJbmRl eEJ5SWQoKnRoaXMsIGRpY19pZCk7Ci0rICByZXR1cm4gVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRV c2VyRGljdGlvbmFyeUluZGV4QnlJZChzdG9yYWdlXywgZGljX2lkKTsKLSB9Ci0gCi0gYm9vbCBV c2VyRGljdGlvbmFyeVN0b3JhZ2U6OkdldFVzZXJEaWN0aW9uYXJ5SWQoY29uc3Qgc3RyaW5nICZk aWNfbmFtZSwKLUBAIC0zMzUsNyArMzM1LDcgQEAgYm9vbCBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6 OkdldFVzZXJEaWN0aW9uYXJ5SWQoY29uc3Qgc3RyaW5nICZkaWNfbmFtZSwKLSAKLSB1c2VyX2Rp Y3Rpb25hcnk6OlVzZXJEaWN0aW9uYXJ5ICpVc2VyRGljdGlvbmFyeVN0b3JhZ2U6OkdldFVzZXJE aWN0aW9uYXJ5KAotICAgICB1aW50NjQgZGljX2lkKSB7Ci0tICByZXR1cm4gVXNlckRpY3Rpb25h cnlVdGlsOjpHZXRNdXRhYmxlVXNlckRpY3Rpb25hcnlCeUlkKHRoaXMsIGRpY19pZCk7Ci0rICBy ZXR1cm4gVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRNdXRhYmxlVXNlckRpY3Rpb25hcnlCeUlkKCZz dG9yYWdlXywgZGljX2lkKTsKLSB9Ci0gCi0gVXNlckRpY3Rpb25hcnlTdG9yYWdlOjpVc2VyRGlj dGlvbmFyeVN0b3JhZ2VFcnJvclR5cGUKLUBAIC0zNjEsMTQgKzM2MSwxNCBAQCBib29sIFVzZXJE aWN0aW9uYXJ5U3RvcmFnZTo6QWRkVG9BdXRvUmVnaXN0ZXJlZERpY3Rpb25hcnkoCi0gCi0gICBV c2VyRGljdGlvbmFyeSAqZGljID0gTlVMTDsKLSAgIGlmIChhdXRvX2luZGV4ID09IC0xKSB7Ci0t ICAgIGlmIChVc2VyRGljdGlvbmFyeVV0aWw6OklzU3RvcmFnZUZ1bGwoKnRoaXMpKSB7Ci0rICAg IGlmIChVc2VyRGljdGlvbmFyeVV0aWw6OklzU3RvcmFnZUZ1bGwoc3RvcmFnZV8pKSB7Ci0gICAg ICAgbGFzdF9lcnJvcl90eXBlXyA9IFRPT19NQU5ZX0RJQ1RJT05BUklFUzsKLSAgICAgICBMT0co RVJST1IpIDw8ICJ0b28gbWFueSBkaWN0aW9uYXJpZXMiOwotICAgICAgIFVuTG9jaygpOwotICAg ICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotICAgICBkaWMgPSBhZGRfZGljdGlvbmFyaWVzKCk7 Ci0tICAgIGRpYy0+c2V0X2lkKFVzZXJEaWN0aW9uYXJ5VXRpbDo6Q3JlYXRlTmV3RGljdGlvbmFy eUlkKCp0aGlzKSk7Ci0rICAgIGRpYy0+c2V0X2lkKFVzZXJEaWN0aW9uYXJ5VXRpbDo6Q3JlYXRl TmV3RGljdGlvbmFyeUlkKHN0b3JhZ2VfKSk7Ci0gICAgIGRpYy0+c2V0X25hbWUoa0F1dG9SZWdp c3RlcmVkRGljdGlvbmFyeU5hbWUpOwotICAgfSBlbHNlIHsKLSAgICAgZGljID0gbXV0YWJsZV9k aWN0aW9uYXJpZXMoYXV0b19pbmRleCk7Ci1AQCAtNDEwLDcgKzQxMCw3IEBAIGJvb2wgVXNlckRp Y3Rpb25hcnlTdG9yYWdlOjpBZGRUb0F1dG9SZWdpc3RlcmVkRGljdGlvbmFyeSgKLSB9Ci0gCi0g Ym9vbCBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6OkNvbnZlcnRTeW5jRGljdGlvbmFyaWVzVG9Ob3Jt YWxEaWN0aW9uYXJpZXMoKSB7Ci0tICBpZiAoQ291bnRTeW5jYWJsZURpY3Rpb25hcmllcygqdGhp cykgPT0gMCkgewotKyAgaWYgKENvdW50U3luY2FibGVEaWN0aW9uYXJpZXMoc3RvcmFnZV8pID09 IDApIHsKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotIAotQEAgLTQ0NSw3ICs0NDUsNyBAQCBi b29sIFVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6Q29udmVydFN5bmNEaWN0aW9uYXJpZXNUb05vcm1h bERpY3Rpb25hcmllcygpIHsKLSAgICAgICAgICAga0RpY3Rpb25hcnlOYW1lQ29udmVydGVkRnJv bVN5bmNhYmxlRGljdGlvbmFyeTsKLSAgICAgICBpbnQgaW5kZXggPSAwOwotICAgICAgIHdoaWxl IChVc2VyRGljdGlvbmFyeVV0aWw6OlZhbGlkYXRlRGljdGlvbmFyeU5hbWUoCi0tICAgICAgICAg ICAgICAgICAqdGhpcywgbmV3X2RpY3Rpb25hcnlfbmFtZSkKLSsgICAgICAgICAgICAgICAgIHN0 b3JhZ2VfLCBuZXdfZGljdGlvbmFyeV9uYW1lKQotICAgICAgICAgICAgICAhPSBVc2VyRGljdGlv bmFyeUNvbW1hbmRTdGF0dXM6OlVTRVJfRElDVElPTkFSWV9DT01NQU5EX1NVQ0NFU1MpIHsKLSAg ICAgICAgICsraW5kZXg7Ci0gICAgICAgICBuZXdfZGljdGlvbmFyeV9uYW1lID0gVXRpbDo6U3Ry aW5nUHJpbnRmKAotQEAgLTQ1Niw3ICs0NTYsNyBAQCBib29sIFVzZXJEaWN0aW9uYXJ5U3RvcmFn ZTo6Q29udmVydFN5bmNEaWN0aW9uYXJpZXNUb05vcm1hbERpY3Rpb25hcmllcygpIHsKLSAgICAg ZGljLT5zZXRfc3luY2FibGUoZmFsc2UpOwotICAgfQotIAotLSAgRENIRUNLX0VRKDAsIENvdW50 U3luY2FibGVEaWN0aW9uYXJpZXMoKnRoaXMpKTsKLSsgIERDSEVDS19FUSgwLCBDb3VudFN5bmNh YmxlRGljdGlvbmFyaWVzKHN0b3JhZ2VfKSk7Ci0gCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0tLS0g bW96Yy9zcmMvZGljdGlvbmFyeS91c2VyX2RpY3Rpb25hcnlfc3RvcmFnZS5oCi0rKysgbW96Yy9z cmMvZGljdGlvbmFyeS91c2VyX2RpY3Rpb25hcnlfc3RvcmFnZS5oCi1AQCAtNzQsOCArNzQsMjAg QEAgY2xhc3MgUHJvY2Vzc011dGV4OwotIAotIC8vIEluaGVyaXQgZnJvbSBQcm90b2NvbEJ1ZmZl cgotIC8vIFRPRE8oaGlkZWhpa28pOiBHZXQgcmlkIG9mIHRoaXMgaW1wbGVtZW50YXRpb24uCi0t Y2xhc3MgVXNlckRpY3Rpb25hcnlTdG9yYWdlIDogcHVibGljIHVzZXJfZGljdGlvbmFyeTo6VXNl ckRpY3Rpb25hcnlTdG9yYWdlIHsKLStjbGFzcyBVc2VyRGljdGlvbmFyeVN0b3JhZ2UgewotKyBw cml2YXRlOgotKyAgdXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeVN0b3JhZ2Ugc3RvcmFn ZV87Ci0gIHB1YmxpYzoKLSsgIHN0YXRpYyBjb25zdCB1c2VyX2RpY3Rpb25hcnk6OlVzZXJEaWN0 aW9uYXJ5U3RvcmFnZSYgZGVmYXVsdF9pbnN0YW5jZSgpIHsgcmV0dXJuIHVzZXJfZGljdGlvbmFy eTo6VXNlckRpY3Rpb25hcnlTdG9yYWdlOjpkZWZhdWx0X2luc3RhbmNlKCk7IH0KLSsgIHVzZXJf ZGljdGlvbmFyeTo6VXNlckRpY3Rpb25hcnlTdG9yYWdlICpzdG9yYWdlKCkgeyByZXR1cm4gJnN0 b3JhZ2VfOyB9Ci0rICBpbnQgZGljdGlvbmFyaWVzX3NpemUoKSBjb25zdCB7IHJldHVybiBzdG9y YWdlXy5kaWN0aW9uYXJpZXNfc2l6ZSgpOyB9Ci0rICB2b2lkIGNsZWFyX2RpY3Rpb25hcmllcygp IHsgc3RvcmFnZV8uY2xlYXJfZGljdGlvbmFyaWVzKCk7IH0KLSsgIHVzZXJfZGljdGlvbmFyeTo6 VXNlckRpY3Rpb25hcnkqIG11dGFibGVfZGljdGlvbmFyaWVzKGludCBpbmRleCkgeyByZXR1cm4g c3RvcmFnZV8ubXV0YWJsZV9kaWN0aW9uYXJpZXMoaW5kZXgpOyB9Ci0rICA6Omdvb2dsZTo6cHJv dG9idWY6OlJlcGVhdGVkUHRyRmllbGQ8dXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeSA+ KiBtdXRhYmxlX2RpY3Rpb25hcmllcygpIHsgcmV0dXJuIHN0b3JhZ2VfLm11dGFibGVfZGljdGlv bmFyaWVzKCk7IH0KLSsgIGNvbnN0IDo6Z29vZ2xlOjpwcm90b2J1Zjo6UmVwZWF0ZWRQdHJGaWVs ZDx1c2VyX2RpY3Rpb25hcnk6OlVzZXJEaWN0aW9uYXJ5ID4mIGRpY3Rpb25hcmllcygpIGNvbnN0 IHsgcmV0dXJuIHN0b3JhZ2VfLmRpY3Rpb25hcmllcygpOyB9Ci0rICBjb25zdCB1c2VyX2RpY3Rp b25hcnk6OlVzZXJEaWN0aW9uYXJ5JiBkaWN0aW9uYXJpZXMoaW50IGluZGV4KSBjb25zdCB7IHJl dHVybiBzdG9yYWdlXy5kaWN0aW9uYXJpZXMoaW5kZXgpOyB9Ci0rICB1c2VyX2RpY3Rpb25hcnk6 OlVzZXJEaWN0aW9uYXJ5KiBhZGRfZGljdGlvbmFyaWVzKCkgeyByZXR1cm4gc3RvcmFnZV8uYWRk X2RpY3Rpb25hcmllcygpOyB9Ci0rCi0gICB0eXBlZGVmIHVzZXJfZGljdGlvbmFyeTo6VXNlckRp Y3Rpb25hcnkgVXNlckRpY3Rpb25hcnk7Ci0gICB0eXBlZGVmIHVzZXJfZGljdGlvbmFyeTo6VXNl ckRpY3Rpb25hcnk6OkVudHJ5IFVzZXJEaWN0aW9uYXJ5RW50cnk7Ci0gCi0tLS0gbW96Yy9zcmMv cHJlZGljdGlvbi91c2VyX2hpc3RvcnlfcHJlZGljdG9yLmNjCi0rKysgbW96Yy9zcmMvcHJlZGlj dGlvbi91c2VyX2hpc3RvcnlfcHJlZGljdG9yLmNjCi1AQCAtMjkxLDcgKzI5MSw3IEBAIGJvb2wg VXNlckhpc3RvcnlTdG9yYWdlOjpMb2FkKCkgewotICAgICByZXR1cm4gZmFsc2U7Ci0gICB9Ci0g Ci0tICBpZiAoIVBhcnNlRnJvbVN0cmluZyhpbnB1dCkpIHsKLSsgIGlmICghdXNlckhpc3Rvcnlf LlBhcnNlRnJvbVN0cmluZyhpbnB1dCkpIHsKLSAgICAgTE9HKEVSUk9SKSA8PCAiUGFyc2VGcm9t U3RyaW5nIGZhaWxlZC4gbWVzc2FnZSBsb29rcyBicm9rZW4iOwotICAgICByZXR1cm4gZmFsc2U7 Ci0gICB9Ci1AQCAtMzA3LDcgKzMwNyw3IEBAIGJvb2wgVXNlckhpc3RvcnlTdG9yYWdlOjpTYXZl KCkgY29uc3QgewotICAgfQotIAotICAgc3RyaW5nIG91dHB1dDsKLS0gIGlmICghQXBwZW5kVG9T dHJpbmcoJm91dHB1dCkpIHsKLSsgIGlmICghdXNlckhpc3RvcnlfLkFwcGVuZFRvU3RyaW5nKCZv dXRwdXQpKSB7Ci0gICAgIExPRyhFUlJPUikgPDwgIkFwcGVuZFRvU3RyaW5nIGZhaWxlZCI7Ci0g ICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLS0tLSBtb3pjL3NyYy9wcmVkaWN0aW9uL3VzZXJfaGlz dG9yeV9wcmVkaWN0b3IuaAotKysrIG1vemMvc3JjL3ByZWRpY3Rpb24vdXNlcl9oaXN0b3J5X3By ZWRpY3Rvci5oCi1AQCAtNjEsOCArNjEsMTMgQEAgY2xhc3MgU2VnbWVudHM7Ci0gY2xhc3MgVXNl ckhpc3RvcnlQcmVkaWN0b3JTeW5jZXI7Ci0gCi0gLy8gQWRkZWQgc2VyaWFsaXphdGlvbiBtZXRo b2QgZm9yIFVzZXJIaXN0b3J5LgotLWNsYXNzIFVzZXJIaXN0b3J5U3RvcmFnZSA6IHB1YmxpYyBt b3pjOjp1c2VyX2hpc3RvcnlfcHJlZGljdG9yOjpVc2VySGlzdG9yeSB7Ci0rY2xhc3MgVXNlckhp c3RvcnlTdG9yYWdlIHsKLSsgcHJpdmF0ZToKLSsgIHVzZXJfaGlzdG9yeV9wcmVkaWN0b3I6OlVz ZXJIaXN0b3J5IHVzZXJIaXN0b3J5XzsKLSAgcHVibGljOgotKyAgaW50IGVudHJpZXNfc2l6ZSgp IGNvbnN0IHsgcmV0dXJuIHVzZXJIaXN0b3J5Xy5lbnRyaWVzX3NpemUoKTsgfQotKyAgY29uc3Qg dXNlcl9oaXN0b3J5X3ByZWRpY3Rvcjo6VXNlckhpc3RvcnlfRW50cnkmIGVudHJpZXMoaW50IGlu ZGV4KSBjb25zdCB7IHJldHVybiB1c2VySGlzdG9yeV8uZW50cmllcyhpbmRleCk7IH0KLSsgIHVz ZXJfaGlzdG9yeV9wcmVkaWN0b3I6OlVzZXJIaXN0b3J5X0VudHJ5KiBhZGRfZW50cmllcygpIHsg cmV0dXJuIHVzZXJIaXN0b3J5Xy5hZGRfZW50cmllcygpOyB9Ci0gICBleHBsaWNpdCBVc2VySGlz dG9yeVN0b3JhZ2UoY29uc3Qgc3RyaW5nICZmaWxlbmFtZSk7Ci0gICB+VXNlckhpc3RvcnlTdG9y YWdlKCk7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0 Y2ggYi9zcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2gKaW5kZXggYWQ5ZWI0NDQ0 ZTBjLi5hYjE3OGEwOWEwYjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3JlaXdh LWVyYS5wYXRjaAorKysgYi9zcmNwa2dzL21vemMvcGF0Y2hlcy9yZWl3YS1lcmEucGF0Y2gKQEAg LTIsMTIgKzIsMTIgQEAgSW5kZXg6IG1vemMvc3JjL2RhdGEvZGljdGlvbmFyeV9vc3MvZGljdGlv bmFyeTA4LnR4dAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIG1vemMvc3JjL2RhdGEvZGljdGlvbmFyeV9vc3Mv ZGljdGlvbmFyeTA4LnR4dC5vcmlnCiArKysgbW96Yy9zcmMvZGF0YS9kaWN0aW9uYXJ5X29zcy9k aWN0aW9uYXJ5MDgudHh0Ci1AQCAtODU5MSw2ICs4NTkxLDggQEAKLSDjgozjgYTjgozjgYTjgagJ MTIJMTIJNzM0OQnjgozjgYTjgozjgYTjgagKLSDjgozjgYTjgo3jgYYJMTg0NwkxODQ3CTcyNzYJ 546y55OPCi0g44KM44GE44KPCTE4NDcJMTg0Nwk4MjUxCeS+i+ipsQorQEAgLTYyNjYsNiArNjI2 Niw4IEBACisg44KM44GE44KM44GE44GoCTEyCTEyCTcyODgJ44KM44GE44KM44GE44GoCisg44KM 44GE44KN44GGCTE4NDcJMTg0Nwk3MTUxCeeOsueTjworIOOCjOOBhOOCjwkxODQ3CTE4NDcJODI1 MwnkvovoqbEKICvjgozjgYTjgo8JMTg5NQkxODk1CTE2OTAJ5Luk5ZKMCiAr44KM44GE44KPCTE4 OTgJMTg5OAk0MDAwCeS7pOWSjAotIOOCjOOBhOOCk+OBk+ODvOOBqAkxODQ3CTE4NDcJNTU2OAnj g6zjgqTjg7PjgrPjg7zjg4gKLSDjgozjgYTjgpPjgZjjgoPjg7wJMTg0NwkxODQ3CTc0NTkJ44Os 44Kk44Oz44K444Oj44O8Ci0g44KM44GE44KT44GaCTE5MTcJMTkxNwkzNTQ4CeODrOOCpOODs+OC ugorIOOCjOOBhOOCk+OBk+ODvOOBqAkxODQ3CTE4NDcJNTU2NAnjg6zjgqTjg7PjgrPjg7zjg4gK KyDjgozjgYTjgpPjgZjjgoPjg7wJMTg0NwkxODQ3CTc1NTkJ44Os44Kk44Oz44K444Oj44O8Cisg 44KM44GE44KT44GaCTE5MTcJMTkxNwkzNDk3CeODrOOCpOODs+OCugpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tb3pjL3BhdGNoZXMvc3RhbmRhcmQucGF0Y2ggYi9zcmNwa2dzL21vemMvcGF0Y2hlcy9z dGFuZGFyZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EwMDJlOGI5ODU0 Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvc3RhbmRhcmQucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1JbmRleDogbW96Yy9zcmMvdW5peC9mY2l0 eDUvZmNpdHg1Lmd5cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIG1vemMvc3JjL3VuaXgvZmNpdHg1L2ZjaXR4 NS5neXAub3JpZwotKysrIG1vemMvc3JjL3VuaXgvZmNpdHg1L2ZjaXR4NS5neXAKLUBAIC0xMTIs MTAgKzExMiwxMCBAQAotICAgICAgICAgJ2ZjaXR4NV9idWlsZF9lbnZpcm9ubWVudCcsCi0gICAg ICAgXSwKLSAgICAgICAnY2ZsYWdzX2NjJzogWwotLSAgICAgICAgJy1zdGQ9YysrMTQnLAotKyAg ICAgICAgJy1zdGQ9YysrMTcnLAotICAgICAgIF0sCi0gICAgICAgJ2NmbGFnc19jYyEnOiBbCi0g ICAgICAgICAnLXN0ZD1nbnUrKzB4JwotICAgICAgIF0sCi0gICAgICAgJ2NmbGFncyEnOiBbCi0g ICAgICAgICAnLWZuby1leGNlcHRpb25zJywKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRj aGVzL3Vuc2lnbmVkLWludC5wYXRjaCBiL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Vuc2lnbmVkLWlu dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgyM2RiOWYy MTk5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Vuc2lnbmVkLWlu dC5wYXRjaApAQCAtMCwwICsxLDIxMCBAQAorSW5kZXg6IG1vemMvc3JjL2d1aS93b3JkX3JlZ2lz dGVyX2RpYWxvZy93b3JkX3JlZ2lzdGVyX2RpYWxvZy5jYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG1vemMv c3JjL2d1aS93b3JkX3JlZ2lzdGVyX2RpYWxvZy93b3JkX3JlZ2lzdGVyX2RpYWxvZy5jYworKysr IG1vemMvc3JjL2d1aS93b3JkX3JlZ2lzdGVyX2RpYWxvZy93b3JkX3JlZ2lzdGVyX2RpYWxvZy5j YworQEAgLTk0LDcgKzk0LDcgQEAgUVN0cmluZyBHZXRFbnYoY29uc3QgY2hhciAqZW52bmFtZSkg eworICAgICAgIHJldHVybiBRU3RyaW5nOjpmcm9tVXRmMTYocmVpbnRlcnByZXRfY2FzdDxjb25z dCB1c2hvcnQgKj4oYnVmZmVyLmdldCgpKSk7CisgICAgIH0gZWxzZSB7CisgICAgICAgLy8gVGhp cyBpcyBhIGZhbGxiYWNrIGp1c3QgaW4gY2FzZS4KKy0gICAgICByZXR1cm4gUVN0cmluZzo6ZnJv bVVjczQocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50ICo+KGJ1ZmZlci5nZXQoKSkpOworKyAg ICAgIHJldHVybiBRU3RyaW5nOjpmcm9tVWNzNChyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2ln bmVkICo+KGJ1ZmZlci5nZXQoKSkpOworICAgICB9CisgICB9CisgICByZXR1cm4gUUxhdGluMVN0 cmluZygiIik7CitJbmRleDogbW96Yy9zcmMvdW5peC9mY2l0eC9zdXJyb3VuZGluZ190ZXh0X3V0 aWwuY2MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tLSBtb3pjL3NyYy91bml4L2ZjaXR4L3N1cnJvdW5kaW5nX3Rl eHRfdXRpbC5jYworKysrIG1vemMvc3JjL3VuaXgvZmNpdHgvc3Vycm91bmRpbmdfdGV4dF91dGls LmNjCitAQCAtNDEsMTAgKzQxLDEwIEBACisgbmFtZXNwYWNlIG1vemMgeworIG5hbWVzcGFjZSBm Y2l0eCB7CisgCistYm9vbCBTdXJyb3VuZGluZ1RleHRVdGlsOjpHZXRTYWZlRGVsdGEodWludCBm cm9tLCB1aW50IHRvLCBpbnQzMiAqZGVsdGEpIHsKKytib29sIFN1cnJvdW5kaW5nVGV4dFV0aWw6 OkdldFNhZmVEZWx0YSh1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgaW50MzIgKmRlbHRhKSB7 CisgICBEQ0hFQ0soZGVsdGEpOworIAorLSAgc3RhdGljX2Fzc2VydChzaXplb2YoaW50NjQpID49 IHNpemVvZih1aW50KSwKKysgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludDY0KSA+PSBzaXplb2Yo dW5zaWduZWQpLAorICAgICAgICAgICAgICAgICAiaW50NjQgbXVzdCBiZSBzdWZmaWNpZW50IHRv IHN0b3JlIGEgZ3VpbnQgdmFsdWUuIik7CisgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihpbnQ2NCkg PT0gc2l6ZW9mKGxsYWJzKDApKSwKKyAgICAgICAgICAgICAgICAgInxsbGFicygwKXwgbXVzdCBy ZXR1cm5zIGEgNjQtYml0IGludGVnZXIuIik7CitAQCAtMTEzLDggKzExMyw4IEBAIGJvb2wgU2Vh cmNoQW5jaG9yUG9zRm9yd2FyZCgKKyAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5n X3RleHQsCisgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZzZWxlY3RlZF90ZXh0LAorICAgICBzaXpl X3Qgc2VsZWN0ZWRfY2hhcnNfbGVuLAorLSAgICB1aW50IGN1cnNvcl9wb3MsCistICAgIHVpbnQg KmFuY2hvcl9wb3MpIHsKKysgICAgdW5zaWduZWQgY3Vyc29yX3BvcywKKysgICAgdW5zaWduZWQg KmFuY2hvcl9wb3MpIHsKKyAKKyAgIENvbnN0Q2hhcjMySXRlcmF0b3IgaXRlcihzdXJyb3VuZGlu Z190ZXh0KTsKKyAgIC8vIE1vdmUgfGl0ZXJ8IHRvIGN1cnNvciBwb3MuCitAQCAtMTM3LDE1ICsx MzcsMTUgQEAgYm9vbCBTZWFyY2hBbmNob3JQb3NCYWNrd2FyZCgKKyAgICAgY29uc3Qgc3RkOjpz dHJpbmcgJnN1cnJvdW5kaW5nX3RleHQsCisgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZzZWxlY3Rl ZF90ZXh0LAorICAgICBzaXplX3Qgc2VsZWN0ZWRfY2hhcnNfbGVuLAorLSAgICB1aW50IGN1cnNv cl9wb3MsCistICAgIHVpbnQgKmFuY2hvcl9wb3MpIHsKKysgICAgdW5zaWduZWQgY3Vyc29yX3Bv cywKKysgICAgdW5zaWduZWQgKmFuY2hvcl9wb3MpIHsKKyAgIGlmIChjdXJzb3JfcG9zIDwgc2Vs ZWN0ZWRfY2hhcnNfbGVuKSB7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKyAKKyAgIENvbnN0 Q2hhcjMySXRlcmF0b3IgaXRlcihzdXJyb3VuZGluZ190ZXh0KTsKKyAgIC8vIFNraXAgfGl0ZXJ8 IHRvIChwb3RlbnRpYWwpIGFuY2hvciBwb3MuCistICBjb25zdCB1aW50IHNraXBfY291bnQgPSBj dXJzb3JfcG9zIC0gc2VsZWN0ZWRfY2hhcnNfbGVuOworKyAgY29uc3QgdW5zaWduZWQgc2tpcF9j b3VudCA9IGN1cnNvcl9wb3MgLSBzZWxlY3RlZF9jaGFyc19sZW47CisgICBEQ0hFQ0tfTEUoc2tp cF9jb3VudCwgY3Vyc29yX3Bvcyk7CisgICBpZiAoIVNraXAoJml0ZXIsIHNraXBfY291bnQpKSB7 CisgICAgIHJldHVybiBmYWxzZTsKK0BAIC0xNjQsOCArMTY0LDggQEAgYm9vbCBTZWFyY2hBbmNo b3JQb3NCYWNrd2FyZCgKKyBib29sIFN1cnJvdW5kaW5nVGV4dFV0aWw6OkdldEFuY2hvclBvc0Zy b21TZWxlY3Rpb24oCisgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZzdXJyb3VuZGluZ190ZXh0LAor ICAgICBjb25zdCBzdGQ6OnN0cmluZyAmc2VsZWN0ZWRfdGV4dCwKKy0gICAgdWludCBjdXJzb3Jf cG9zLAorLSAgICB1aW50ICphbmNob3JfcG9zKSB7CisrICAgIHVuc2lnbmVkIGN1cnNvcl9wb3Ms CisrICAgIHVuc2lnbmVkICphbmNob3JfcG9zKSB7CisgICBEQ0hFQ0soYW5jaG9yX3Bvcyk7Cisg CisgICBpZiAoc3Vycm91bmRpbmdfdGV4dC5lbXB0eSgpKSB7CitAQCAtMTk2LDggKzE5Niw4IEBA IGJvb2wgR2V0U3Vycm91bmRpbmdUZXh0KEZjaXR4SW5zdGFuY2UqIGkKKyAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgfQorIAorLSAgICB1aW50IGN1cnNvcl9wb3MgPSAwOworLSAgICB1aW50 IGFuY2hvcl9wb3MgPSAwOworKyAgICB1bnNpZ25lZCBjdXJzb3JfcG9zID0gMDsKKysgICAgdW5z aWduZWQgYW5jaG9yX3BvcyA9IDA7CisgICAgIGNoYXIqIHN0ciA9IE5VTEw7CisgCisgICAgIGlm ICghRmNpdHhJbnN0YW5jZUdldFN1cnJvdW5kaW5nVGV4dChpbnN0YW5jZSwgaWMsICZzdHIsICZj dXJzb3JfcG9zLCAmYW5jaG9yX3BvcykpIHsKK0BAIC0yMTEsNyArMjExLDcgQEAgYm9vbCBHZXRT dXJyb3VuZGluZ1RleHQoRmNpdHhJbnN0YW5jZSogaQorICAgICAgICAgY29uc3QgY2hhciogcHJp bWFyeSA9IE5VTEw7CisgCisgICAgICAgICBpZiAoKHByaW1hcnkgPSBGY2l0eENsaXBib2FyZEdl dFByaW1hcnlTZWxlY3Rpb24oaW5zdGFuY2UsIE5VTEwpKSAhPSBOVUxMKSB7CistICAgICAgICAg ICAgdWludCBuZXdfYW5jaG9yX3BvcyA9IDA7CisrICAgICAgICAgICAgdW5zaWduZWQgbmV3X2Fu Y2hvcl9wb3MgPSAwOworICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHByaW1hcnlfdGV4 dChwcmltYXJ5KTsKKyAgICAgICAgICAgICBpZiAoU3Vycm91bmRpbmdUZXh0VXRpbDo6R2V0QW5j aG9yUG9zRnJvbVNlbGVjdGlvbigKKyAgICAgICAgICAgICAgICAgc3Vycm91bmRpbmdfdGV4dCwg cHJpbWFyeV90ZXh0LAorSW5kZXg6IG1vemMvc3JjL3VuaXgvZmNpdHgvc3Vycm91bmRpbmdfdGV4 dF91dGlsLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBtb3pjL3NyYy91bml4L2ZjaXR4L3N1cnJvdW5kaW5n X3RleHRfdXRpbC5oCisrKysgbW96Yy9zcmMvdW5peC9mY2l0eC9zdXJyb3VuZGluZ190ZXh0X3V0 aWwuaAorQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgU3Vycm91bmRpbmdUZXh0VXRpbCB7CisgICAv LyBSZXR1cm5zIHRydWUgd2hlbiBuZWl0aGVyIHxhYnMoZGVsdGEpfCBub3IgfC1kZWx0YXwgZG9l cyBub3QgY2F1c2UKKyAgIC8vIGludGVnZXIgb3ZlcmZsb3csIHRoYXQgaXMsIHxkZWx0YXwgaXMg aW4gYSBzYWZlIHJhbmdlLgorICAgLy8gUmV0dXJucyBmYWxzZSBvdGhlcndpc2UuCistICBzdGF0 aWMgYm9vbCBHZXRTYWZlRGVsdGEodWludCBmcm9tLCB1aW50IHRvLCBpbnQzMiAqZGVsdGEpOwor KyAgc3RhdGljIGJvb2wgR2V0U2FmZURlbHRhKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBp bnQzMiAqZGVsdGEpOworIAorICAgLy8gUmV0dXJucyB0cnVlIGlmCisgICAvLyAxLiB8c3Vycm91 bmRpbmdfdGV4dHwgY29udGFpbnMgfHNlbGVjdGVkX3RleHR8CitAQCAtNzEsOCArNzEsOCBAQCBj bGFzcyBTdXJyb3VuZGluZ1RleHRVdGlsIHsKKyAgIHN0YXRpYyBib29sIEdldEFuY2hvclBvc0Zy b21TZWxlY3Rpb24oCisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5nX3RleHQs CisgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnNlbGVjdGVkX3RleHQsCistICAgICAgdWludCBj dXJzb3JfcG9zLAorLSAgICAgIHVpbnQgKmFuY2hvcl9wb3MpOworKyAgICAgIHVuc2lnbmVkIGN1 cnNvcl9wb3MsCisrICAgICAgdW5zaWduZWQgKmFuY2hvcl9wb3MpOworIAorICBwcml2YXRlOgor ICAgRElTQUxMT1dfSU1QTElDSVRfQ09OU1RSVUNUT1JTKFN1cnJvdW5kaW5nVGV4dFV0aWwpOwor SW5kZXg6IG1vemMvc3JjL3VuaXgvZmNpdHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5jYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIG1vemMvc3JjL3VuaXgvZmNpdHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5j YworKysrIG1vemMvc3JjL3VuaXgvZmNpdHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5jYworQEAg LTQzLDEwICs0MywxMCBAQCBuYW1lc3BhY2UgZmNpdHggeworIAorIHVzaW5nIG5hbWVzcGFjZSBt b3pjOworIAorLWJvb2wgU3Vycm91bmRpbmdUZXh0VXRpbDo6R2V0U2FmZURlbHRhKHVpbnQgZnJv bSwgdWludCB0bywgaW50MzIgKmRlbHRhKSB7CisrYm9vbCBTdXJyb3VuZGluZ1RleHRVdGlsOjpH ZXRTYWZlRGVsdGEodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIGludDMyICpkZWx0YSkgewor ICAgRENIRUNLKGRlbHRhKTsKKyAKKy0gIHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludDY0KSA+PSBz aXplb2YodWludCksCisrICBzdGF0aWNfYXNzZXJ0KHNpemVvZihpbnQ2NCkgPj0gc2l6ZW9mKHVu c2lnbmVkKSwKKyAgICAgICAgICAgICAgICAgImludDY0IG11c3QgYmUgc3VmZmljaWVudCB0byBz dG9yZSBhIGd1aW50IHZhbHVlLiIpOworICAgc3RhdGljX2Fzc2VydChzaXplb2YoaW50NjQpID09 IHNpemVvZihsbGFicygwKSksCisgICAgICAgICAgICAgICAgICJ8bGxhYnMoMCl8IG11c3QgcmV0 dXJucyBhIDY0LWJpdCBpbnRlZ2VyLiIpOworQEAgLTExMCw4ICsxMTAsOCBAQCBib29sIFN0YXJ0 c1dpdGgoQ29uc3RDaGFyMzJJdGVyYXRvciAqaXRlCisgLy8gT3RoZXJ3aXNlIHJldHVybnMgZmFs c2UuCisgYm9vbCBTZWFyY2hBbmNob3JQb3NGb3J3YXJkKGNvbnN0IHN0ZDo6c3RyaW5nICZzdXJy b3VuZGluZ190ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0 cmluZyAmc2VsZWN0ZWRfdGV4dCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 IHNlbGVjdGVkX2NoYXJzX2xlbiwgdWludCBjdXJzb3JfcG9zLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50ICphbmNob3JfcG9zKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVfdCBzZWxlY3RlZF9jaGFyc19sZW4sIHVuc2lnbmVkIGN1cnNvcl9wb3MsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICphbmNob3JfcG9zKSB7CisgICBDb25z dENoYXIzMkl0ZXJhdG9yIGl0ZXIoc3Vycm91bmRpbmdfdGV4dCk7CisgICAvLyBNb3ZlIHxpdGVy fCB0byBjdXJzb3IgcG9zLgorICAgaWYgKCFTa2lwKCZpdGVyLCBjdXJzb3JfcG9zKSkgeworQEAg LTEzMSwxNSArMTMxLDE1IEBAIGJvb2wgU2VhcmNoQW5jaG9yUG9zRm9yd2FyZChjb25zdCBzdGQ6 OnMKKyAvLyBPdGhlcndpc2UgcmV0dXJucyBmYWxzZS4KKyBib29sIFNlYXJjaEFuY2hvclBvc0Jh Y2t3YXJkKGNvbnN0IHN0ZDo6c3RyaW5nICZzdXJyb3VuZGluZ190ZXh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnNlbGVjdGVkX3RleHQsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2VsZWN0ZWRfY2hhcnNfbGVuLCB1aW50 IGN1cnNvcl9wb3MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50ICphbmNob3Jf cG9zKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2VsZWN0ZWRfY2hh cnNfbGVuLCB1bnNpZ25lZCBjdXJzb3JfcG9zLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgKmFuY2hvcl9wb3MpIHsKKyAgIGlmIChjdXJzb3JfcG9zIDwgc2VsZWN0ZWRf Y2hhcnNfbGVuKSB7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKyAKKyAgIENvbnN0Q2hhcjMy SXRlcmF0b3IgaXRlcihzdXJyb3VuZGluZ190ZXh0KTsKKyAgIC8vIFNraXAgfGl0ZXJ8IHRvIChw b3RlbnRpYWwpIGFuY2hvciBwb3MuCistICBjb25zdCB1aW50IHNraXBfY291bnQgPSBjdXJzb3Jf cG9zIC0gc2VsZWN0ZWRfY2hhcnNfbGVuOworKyAgY29uc3QgdW5zaWduZWQgc2tpcF9jb3VudCA9 IGN1cnNvcl9wb3MgLSBzZWxlY3RlZF9jaGFyc19sZW47CisgICBEQ0hFQ0tfTEUoc2tpcF9jb3Vu dCwgY3Vyc29yX3Bvcyk7CisgICBpZiAoIVNraXAoJml0ZXIsIHNraXBfY291bnQpKSB7CisgICAg IHJldHVybiBmYWxzZTsKK0BAIC0xNTcsNyArMTU3LDcgQEAgYm9vbCBTZWFyY2hBbmNob3JQb3NC YWNrd2FyZChjb25zdCBzdGQ6OgorIAorIGJvb2wgU3Vycm91bmRpbmdUZXh0VXRpbDo6R2V0QW5j aG9yUG9zRnJvbVNlbGVjdGlvbigKKyAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5n X3RleHQsIGNvbnN0IHN0ZDo6c3RyaW5nICZzZWxlY3RlZF90ZXh0LAorLSAgICB1aW50IGN1cnNv cl9wb3MsIHVpbnQgKmFuY2hvcl9wb3MpIHsKKysgICAgdW5zaWduZWQgY3Vyc29yX3BvcywgdW5z aWduZWQgKmFuY2hvcl9wb3MpIHsKKyAgIERDSEVDSyhhbmNob3JfcG9zKTsKKyAKKyAgIGlmIChz dXJyb3VuZGluZ190ZXh0LmVtcHR5KCkpIHsKK0BAIC0xODcsMTMgKzE4NywxMyBAQCBib29sIEdl dFN1cnJvdW5kaW5nVGV4dChJbnB1dENvbnRleHQgKmljCisgICB9CisgCisgICBjb25zdCBhdXRv IHN1cnJvdW5kaW5nX3RleHQgPSBpYy0+c3Vycm91bmRpbmdUZXh0KCkudGV4dCgpOworLSAgdWlu dCBjdXJzb3JfcG9zID0gaWMtPnN1cnJvdW5kaW5nVGV4dCgpLmN1cnNvcigpOworLSAgdWludCBh bmNob3JfcG9zID0gaWMtPnN1cnJvdW5kaW5nVGV4dCgpLmFuY2hvcigpOworKyAgdW5zaWduZWQg Y3Vyc29yX3BvcyA9IGljLT5zdXJyb3VuZGluZ1RleHQoKS5jdXJzb3IoKTsKKysgIHVuc2lnbmVk IGFuY2hvcl9wb3MgPSBpYy0+c3Vycm91bmRpbmdUZXh0KCkuYW5jaG9yKCk7CisgCisgICBpZiAo Y3Vyc29yX3BvcyA9PSBhbmNob3JfcG9zICYmIGNsaXBib2FyZCkgeworICAgICBzdGQ6OnN0cmlu ZyBwcmltYXJ5ID0gY2xpcGJvYXJkLT5jYWxsPElDbGlwYm9hcmQ6OnByaW1hcnk+KGljKTsKKyAg ICAgaWYgKCFwcmltYXJ5LmVtcHR5KCkpIHsKKy0gICAgICB1aW50IG5ld19hbmNob3JfcG9zID0g MDsKKysgICAgICB1bnNpZ25lZCBuZXdfYW5jaG9yX3BvcyA9IDA7CisgICAgICAgaWYgKFN1cnJv dW5kaW5nVGV4dFV0aWw6OkdldEFuY2hvclBvc0Zyb21TZWxlY3Rpb24oCisgICAgICAgICAgICAg ICBzdXJyb3VuZGluZ190ZXh0LCBwcmltYXJ5LCBjdXJzb3JfcG9zLCAmbmV3X2FuY2hvcl9wb3Mp KSB7CisgICAgICAgICBhbmNob3JfcG9zID0gbmV3X2FuY2hvcl9wb3M7CitJbmRleDogbW96Yy9z cmMvdW5peC9mY2l0eDUvc3Vycm91bmRpbmdfdGV4dF91dGlsLmgKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBt b3pjL3NyYy91bml4L2ZjaXR4NS9zdXJyb3VuZGluZ190ZXh0X3V0aWwuaAorKysrIG1vemMvc3Jj L3VuaXgvZmNpdHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5oCitAQCAtNTYsNyArNTYsNyBAQCBj bGFzcyBTdXJyb3VuZGluZ1RleHRVdGlsIHsKKyAgIC8vIFJldHVybnMgdHJ1ZSB3aGVuIG5laXRo ZXIgfGFicyhkZWx0YSl8IG5vciB8LWRlbHRhfCBkb2VzIG5vdCBjYXVzZQorICAgLy8gaW50ZWdl ciBvdmVyZmxvdywgdGhhdCBpcywgfGRlbHRhfCBpcyBpbiBhIHNhZmUgcmFuZ2UuCisgICAvLyBS ZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4KKy0gIHN0YXRpYyBib29sIEdldFNhZmVEZWx0YSh1aW50 IGZyb20sIHVpbnQgdG8sIGludDMyICpkZWx0YSk7CisrICBzdGF0aWMgYm9vbCBHZXRTYWZlRGVs dGEodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIGludDMyICpkZWx0YSk7CisgCisgICAvLyBS ZXR1cm5zIHRydWUgaWYKKyAgIC8vIDEuIHxzdXJyb3VuZGluZ190ZXh0fCBjb250YWlucyB8c2Vs ZWN0ZWRfdGV4dHwKK0BAIC03MSw3ICs3MSw3IEBAIGNsYXNzIFN1cnJvdW5kaW5nVGV4dFV0aWwg eworICAgLy8gT3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCisgICBzdGF0aWMgYm9vbCBHZXRBbmNo b3JQb3NGcm9tU2VsZWN0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nICZzdXJyb3VuZGluZ190ZXh0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmlu ZyAmc2VsZWN0ZWRfdGV4dCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludCBjdXJzb3JfcG9zLCB1aW50ICphbmNob3JfcG9zKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY3Vyc29yX3BvcywgdW5zaWduZWQgKmFu Y2hvcl9wb3MpOworIAorICBwcml2YXRlOgorICAgRElTQUxMT1dfSU1QTElDSVRfQ09OU1RSVUNU T1JTKFN1cnJvdW5kaW5nVGV4dFV0aWwpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3RlbXBs YXRlIGIvc3JjcGtncy9tb3pjL3RlbXBsYXRlCmluZGV4IDU2NTMxMGY2MGJkZC4uYzNkODgyZTlk NzIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL21vemMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tb3pj L3RlbXBsYXRlCkBAIC0xLDExICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtb3pjJwog cGtnbmFtZT1tb3pjCi12ZXJzaW9uPTIuMjYuNDM0Ni4xMDAKKyMgc3JjL2RhdGEvdmVyc2lvbi9t b3pjX3ZlcnNpb25fdGVtcGxhdGUuYnpsCit2ZXJzaW9uPTIuMjYuNDM1My4xMDAKIHJldmlzaW9u PTEKIGNyZWF0ZV93cmtzcmM9eWVzCiBidWlsZF93cmtzcmM9bW96Yy9zcmMKLWhvc3RtYWtlZGVw ZW5kcz0iZ2V0dGV4dCBuaW5qYSBwa2ctY29uZmlnIHByb3RvYnVmIHByb3RvYnVmLWRldmVsIHB5 dGhvbiB3aGljaAotIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyIKK2hvc3RtYWtlZGVwZW5kcz0i Z2V0dGV4dCBuaW5qYSBwa2ctY29uZmlnIHByb3RvYnVmIHByb3RvYnVmLWRldmVsCisgcHl0aG9u My1zaXggd2hpY2ggcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIgogbWFrZWRlcGVuZHM9Imd0ayst ZGV2ZWwgaWJ1cy1kZXZlbCBsaWJ6aW5uaWEtZGV2ZWwgcHJvdG9idWYtZGV2ZWwgcXQ1LWRldmVs CiAgZmNpdHgtZGV2ZWwgbGliZmNpdHg1LWRldmVsIgogZGVwZW5kcz0idGVnYWtpLXppbm5pYS1q YXBhbmVzZT49MC4zIgpAQCAtMTQsMTggKzE1LDIxIEBAIG1haW50YWluZXI9Ik1hdHRoaWFzIHZv biBGYWJlciA8bXZmQGdteC5ldT4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1c2UiCiBob21lcGFnZT0i aHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9tb3pjIgogZGlzdGZpbGVzPSIKLSBodHRwczovL2dp dGh1Yi5jb20vZmNpdHgvbW96Yy9hcmNoaXZlL2RhZDk0NTg0ZWE1MDEyMTEwYWQxZDIwNGU0MzM5 NjQyNDNhMTYzOWQudGFyLmd6CisgaHR0cHM6Ly9naXRodWIuY29tL2ZjaXR4L21vemMvYXJjaGl2 ZS9kMzg0YzNiM2U3ZWVkMWFhNTRhNmFmMzM2Mzc4MTYwNGZlNTM4ZDY1LnRhci5negorIGh0dHBz Oi8vZ2l0aHViLmNvbS9hYnNlaWwvYWJzZWlsLWNwcC9hcmNoaXZlLzBmM2JiNDY2Yjg2OGI1MjNj ZjFkYzliMmFhYWVkNjVjNzdiMjg4NjIudGFyLmd6CiAgJHtERUJJQU5fU0lURX0vbWFpbi9nL2d5 cC9neXBfMC4xKzIwMjAwNTEzZ2l0Y2FhNjAwMi5vcmlnLnRhci5negogIGh0dHBzOi8vZ2l0aHVi LmNvbS9oaXJveXVraS1rb21hdHN1L2phcGFuZXNlLXVzYWdlLWRpY3Rpb25hcnkvYXJjaGl2ZS9l NWIzNDI1NTc1NzM0YzMyM2UxZDk0NzAwOWRkNzQ3MDk0MzdiNjg0LnRhci5negogIgotY2hlY2tz dW09IjA5ODM1OTk0ZTRmYTBmNGU0ZTJlYTRlMTcxOTAwYzVlMzdjMzU2ODBjNGRiODZlYjVhODli ZTdiZDgyYzQyMGYKK2NoZWNrc3VtPSI2OWNiMjZlMWY5YzAzZTIwNzE1MzU2ZWY1NjhiNTgzZjJi YWY5OTZkZjVmZDg1MzZhY2EyZWQ4ZTdiZDk0NDRmCisgM2Q3NGNkYzk4YjQyZmQ0MjU3ZDkxZjY1 MjU3NTIwNmRlMTk1ZTJjODI0ZmNkOGQ2ZTZkMjI3Zjg1Y2IxNDNlZgogIDhkNTMxYmM3ZDMzMDI0 NjFkNzZhMzIzNjc0NTNjZWM2MGVkMDhiNDU1ZjI3YTUzZDhmMzEzZDgxNzYxNzEzYTgKICAwYjZl ZmVlMGVlYmFjMmMxYThlZWVhMzMzMjc4YWE0MGZjZWY3ODQ2YmJhOWEzNzk5NjJjNmU1NjdlN2Uz ZGMxIgogCiBDWFhGTEFHUz0iLURfR05VX1NPVVJDRSIKK3BhdGNoX2FyZ3M9LU5wMAogCiBpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlzdWJwYWNrYWdlcz0iaWJ1cy1tb3pjIGZjaXR4LW1v emMiCisJc3VicGFja2FnZXM9ImlidXMtbW96YyBmY2l0eC1tb3pjIGZjaXR4NS1tb3pjIgogZmkK IAogaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgPSAiYmUiIF07IHRoZW4KQEAgLTMzLDEwICsz NywxMyBAQCBpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhlbgogZmkKIAog cG9zdF9leHRyYWN0KCkgewotCWxuIC1zIG1vemMtKiBtb3pjCisJbXYgbW96Yy0qIG1vemMKIAog CSMgc3ltbGluayAic3VibW9kdWxlcyIgaW50byBwbGFjZQotCWZvciBfc3JjX2Rlc3QgaW4gZ3lw IGphcGFuZXNlLXVzYWdlLWRpY3Rpb25hcnk6amFwYW5lc2VfdXNhZ2VfZGljdGlvbmFyeTsgZG8K Kwlmb3IgX3NyY19kZXN0IGluIGd5cCBcCisJCWFic2VpbC1jcHAgXAorCQlqYXBhbmVzZS11c2Fn ZS1kaWN0aW9uYXJ5OmphcGFuZXNlX3VzYWdlX2RpY3Rpb25hcnkKKwlkbwogCQlfc3JjPSR7X3Ny Y19kZXN0JToqfQogCQlfZHN0PW1vemMvc3JjL3RoaXJkX3BhcnR5LyR7X3NyY19kZXN0Iyo6fQog CQlybWRpciAkX2RzdApAQCAtNTUsMTEgKzYyLDExIEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkgZG9j dW1lbnRfZGlyPS91c3Ivc2hhcmUvbGljZW5zZXMvJHtwa2duYW1lfQogCSB1c2VfbGlicHJvdG9i dWY9MQogCSB1c2VfbGliemlubmlhPTEKLQkiIHB5dGhvbjIgYnVpbGRfbW96Yy5weSBneXAgLS10 YXJnZXRfcGxhdGZvcm09TGludXgKKwkiIHB5dGhvbjMgYnVpbGRfbW96Yy5weSBneXAgLS10YXJn ZXRfcGxhdGZvcm09TGludXgKIH0KIAogZG9fYnVpbGQoKSB7Ci0JcHl0aG9uMiBidWlsZF9tb3pj LnB5IGJ1aWxkIC1jIFJlbGVhc2UgXAorCXB5dGhvbjMgYnVpbGRfbW96Yy5weSBidWlsZCAtYyBS ZWxlYXNlIFwKIAkJc2VydmVyL3NlcnZlci5neXA6bW96Y19zZXJ2ZXIgXAogCQlndWkvZ3VpLmd5 cDptb3pjX3Rvb2wgXAogCQl1bml4L2VtYWNzL2VtYWNzLmd5cDptb3pjX2VtYWNzX2hlbHBlciBc CkBAIC03NSwxMCArODIsMTAgQEAgZG9faW5zdGFsbCgpIHsKIAl2aW5zdGFsbCBvdXRfbGludXgv UmVsZWFzZS9tb3pjX3NlcnZlciA3NTUgdXNyL2xpYi9tb3pjCiAJdmluc3RhbGwgb3V0X2xpbnV4 L1JlbGVhc2UvbW96Y190b29sIDc1NSB1c3IvbGliL21vemMKIAotCWhlYWQgLW4gMjkgdW5peC9m Y2l0eDUvZmNpdHhfa2V5X3RyYW5zbGF0b3IuY2MgPkxJQ0VOU0UKLQlmb3IgaSBpbiBMSUNFTlNF IGRhdGEvaW5zdGFsbGVyLyouaHRtbDsgZG8KLQkJdmxpY2Vuc2UgIiRpIgotCWRvbmUKKwloZWFk IC1uIDI5IHVuaXgvZmNpdHg1L2ZjaXR4X2tleV90cmFuc2xhdG9yLmNjID5tb3pjLkxJQ0VOU0UK Kwl2bGljZW5zZSBtb3pjLkxJQ0VOU0UKKwl2bGljZW5zZSBkYXRhL2luc3RhbGxlci9jcmVkaXRz X2VuLmh0bWwKKwl2bGljZW5zZSB0aGlyZF9wYXJ0eS9qYXBhbmVzZV91c2FnZV9kaWN0aW9uYXJ5 L0xJQ0VOU0UgZGljdC5MSUNFTlNFCiB9CiAKIGlidXMtbW96Y19wYWNrYWdlKCkgewpAQCAtMTEw LDkgKzExNyw2IEBAIGZjaXR4LW1vemNfcGFja2FnZSgpIHsKIAlob21lcGFnZT0iaHR0cHM6Ly9m Y2l0eC1pbS5vcmcvIgogCXBrZ19pbnN0YWxsKCkgewogCQlsb2NhbCBfZmlsZSBfbGFuZwotCQlo ZWFkIC1uIDI5IHVuaXgvZmNpdHgvZmNpdHhfa2V5X3RyYW5zbGF0b3IuY2MgXAotCQkJPnVuaXgv ZmNpdHgvTElDRU5TRQotCQl2bGljZW5zZSB1bml4L2ZjaXR4L0xJQ0VOU0UKIAkJdmluc3RhbGwg b3V0X2xpbnV4L1JlbGVhc2UvZmNpdHgtbW96Yy5zbyA2NDQgdXNyL2xpYi9mY2l0eAogCQl2aW5z dGFsbCB1bml4L2ZjaXR4L2ZjaXR4LW1vemMuY29uZiA2NDQgdXNyL3NoYXJlL2ZjaXR4L2FkZG9u CiAJCXZpbnN0YWxsIHVuaXgvZmNpdHgvbW96Yy5jb25mIDY0NCB1c3Ivc2hhcmUvZmNpdHgvaW5w dXRtZXRob2QKQEAgLTEzMiw4ICsxMzYsOSBAQCBmY2l0eDUtbW96Y19wYWNrYWdlKCkgewogCXBr Z19pbnN0YWxsKCkgewogCQlsb2NhbCBfZmlsZSBfbGFuZwogCQl2aW5zdGFsbCBvdXRfbGludXgv UmVsZWFzZS9mY2l0eDUtbW96Yy5zbyA2NDQgdXNyL2xpYi9mY2l0eDUKLQkJdmluc3RhbGwgdW5p eC9mY2l0eDUvbW96Yy1hZGRvbi5jb25mIDY0NCB1c3Ivc2hhcmUvZmNpdHgvYWRkb24KLQkJdmlu c3RhbGwgdW5peC9mY2l0eC9tb3pjLmNvbmYgNjQ0IHVzci9zaGFyZS9mY2l0eC9pbnB1dG1ldGhv ZAorCQl2aW5zdGFsbCB1bml4L2ZjaXR4NS9tb3pjLWFkZG9uLmNvbmYgNjQ0IFwKKwkJCXVzci9z aGFyZS9mY2l0eDUvYWRkb24gbW96Yy5jb25mCisJCXZpbnN0YWxsIHVuaXgvZmNpdHgvbW96Yy5j b25mIDY0NCB1c3Ivc2hhcmUvZmNpdHg1L2lucHV0bWV0aG9kCiAJCWZvciBfZmlsZSBpbiBvdXRf bGludXgvUmVsZWFzZS9nZW4vdW5peC9mY2l0eDUvcG8vKi5tbwogCQlkbwogCQkJX2xhbmc9JHtf ZmlsZSMjKi99Cg== --===============0324548062243509819==--