From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Nicolas Chauvet To: git-commits@fedoraproject.org Subject: [rpms/frei0r-plugins] rawhide: Remove unused-patches Date: Fri, 11 Sep 2026 06:55:56 GMT Message-ID: <178910975601.1.10750001780465860811.rpms-frei0r-plugins-22fb1ded8838@fedoraproject.org> List-ID: X-Git-Repo: rpms/frei0r-plugins X-Git-Branch: rawhide X-Git-Rev: 22fb1ded88388068e3d2f2efde34ae8ca544ef41 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZnJlaTByLXBsdWdp bnMKQnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiAyMmZiMWRlZDg4Mzg4MDY4ZTNkMmYyZWZkZTM0 YWU4Y2E1NDRlZjQxCkF1dGhvciA6IE5pY29sYXMgQ2hhdXZldCA8a3dpemFydEBnbWFpbC5jb20+ CkRhdGUgICA6IDIwMjYtMDktMTFUMDg6NTQ6MTkrMDI6MDAKU3RhdHMgIDogKzAvLTgyMSBpbiA3 IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9mcmVp MHItcGx1Z2lucy9jLzIyZmIxZGVkODgzODgwNjhlM2QyZjJlZmRlMzRhZThjYTU0NGVmNDE/YnJh bmNoPXJhd2hpZGUKCkxvZzoKUmVtb3ZlIHVudXNlZC1wYXRjaGVzCgotLS0KZGlmZiAtLWdpdCBh LzM1ZWQ4NzBhM2I0ZTc5NzcxMTkyNzJkMzIzMmFhYTk0N2JlYTIyYWMucGF0Y2ggYi8zNWVkODcw YTNiNGU3OTc3MTE5MjcyZDMyMzJhYWE5NDdiZWEyMmFjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBkMmY5YzYyLi4wMDAwMDAwCi0tLSBhLzM1ZWQ4NzBhM2I0ZTc5NzcxMTky NzJkMzIzMmFhYTk0N2JlYTIyYWMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAsMCBA QAotRnJvbSAzNWVkODcwYTNiNGU3OTc3MTE5MjcyZDMyMzJhYWE5NDdiZWEyMmFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbToga3dpemFydCA8a3dpemFydEBnbWFpbC5jb20+Ci1EYXRl OiBNb24sIDMwIERlYyAyMDE5IDE0OjQ0OjUxICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0 ZSBmYWNlYmwwciB0byBjKysgYXBpCi0KLVNpZ25lZC1vZmYtYnk6IGt3aXphcnQgPGt3aXphcnRA Z21haWwuY29tPgotLS0tCi0gc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmwwci5jcHAgfCA1NiAr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNl cnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9maWx0ZXIvZmFj ZWJsMHIvZmFjZWJsMHIuY3BwIGIvc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmwwci5jcHAKLWlu ZGV4IDE3NDQ2Y2MuLmJhMTQ2ZDAgMTAwNjQ0Ci0tLS0gYS9zcmMvZmlsdGVyL2ZhY2VibDByL2Zh Y2VibDByLmNwcAotKysrIGIvc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmwwci5jcHAKLUBAIC0x OCw3ICsxOCwxMSBAQAotICNpbmNsdWRlIDxzdGRsaWIuaD4KLSAjaW5jbHVkZSA8c3RkaW8uaD4K LSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0tI2luY2x1ZGUgPG9wZW5jdjIvb3BlbmN2LmhwcD4KLSsj aW5jbHVkZSA8b3BlbmN2Mi9jb3JlLmhwcD4KLSsjaW5jbHVkZSA8b3BlbmN2Mi9pbWdwcm9jL2lt Z3Byb2NfYy5oPgotKyNpbmNsdWRlIDxvcGVuY3YyL2ltZ3Byb2MuaHBwPgotKyNpbmNsdWRlIDxv cGVuY3YyL29iamRldGVjdC5ocHA+Ci0rI2luY2x1ZGUgPG9wZW5jdjIvdmlkZW8vdHJhY2tpbmcu aHBwPgotICNpbmNsdWRlICJmcmVpMHIuaHBwIgotICNpbmNsdWRlICJmcmVpMHJfbWF0aC5oIgot IAotQEAgLTMwLDcgKzM0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewotIAotICAgQ3ZIaXN0b2dyYW0q IGhpc3Q7IC8vaGlzdG9ncmFtIG9mIGh1ZSBpbiBvcmlnaW5hbCBmYWNlIGltYWdlCi0gCi0tICBD dlJlY3QgcHJldl9yZWN0OyAgLy9sb2NhdGlvbiBvZiBmYWNlIGluIHByZXZpb3VzIGZyYW1lCi0r ICBjdjo6UmVjdCBwcmV2X3JlY3Q7ICAvL2xvY2F0aW9uIG9mIGZhY2UgaW4gcHJldmlvdXMgZnJh bWUKLSAgIEN2Qm94MkQgY3Vycl9ib3g7ICAvL2N1cnJlbnQgZmFjZSBsb2NhdGlvbiBlc3RpbWF0 ZQotIH0gVHJhY2tlZE9iajsKLSAKLUBAIC01Myw3ICs1Nyw3IEBAIGNsYXNzIEZhY2VCbDByOiBw dWJsaWMgZnJlaTByOjpmaWx0ZXIgewotICAgICB2b2lkIHVwZGF0ZV9odWVfaW1hZ2UgKGNvbnN0 IElwbEltYWdlKiBpbWFnZSwgVHJhY2tlZE9iaiogaW1ncyk7Ci0gICAgIAotIC8vdHJhY2tmYWNl Ci0tICAgIEN2UmVjdCogZGV0ZWN0X2ZhY2UgKElwbEltYWdlKiwgQ3ZIYWFyQ2xhc3NpZmllckNh c2NhZGUqLCBDdk1lbVN0b3JhZ2UqKTsKLSsgICAgQ3ZSZWN0KiBkZXRlY3RfZmFjZSAoSXBsSW1h Z2UqLCBjdjo6Q2FzY2FkZUNsYXNzaWZpZXImLCBDdk1lbVN0b3JhZ2UqKTsKLSAgICAgCi0gCi0g ICAgIFRyYWNrZWRPYmoqIHRyYWNrZWRfb2JqOwotQEAgLTYzLDcgKzY3LDcgQEAgY2xhc3MgRmFj ZUJsMHI6IHB1YmxpYyBmcmVpMHI6OmZpbHRlciB7Ci0gLy91c2VkIGJ5IGNhcHR1cmVfdmlkZW9f ZnJhbWUsIHNvIHdlIGRvbid0IGhhdmUgdG8ga2VlcCBjcmVhdGluZy4KLSAgICAgSXBsSW1hZ2Uq IGltYWdlOwotIAotLSAgICBDdkhhYXJDbGFzc2lmaWVyQ2FzY2FkZSogY2FzY2FkZTsKLSsgICAg Y3Y6OkNhc2NhZGVDbGFzc2lmaWVyIGNhc2NhZGU7Ci0gICAgIEN2TWVtU3RvcmFnZSogc3RvcmFn ZTsKLSAKLSAgICAgLy8gcGx1Z2luIHBhcmFtZXRlcnMKLUBAIC05Niw3ICsxMDAsNyBAQCBGYWNl Qmwwcjo6RmFjZUJsMHIoaW50IHdkdCwgaW50IGhndCkgewotICAgdHJhY2tlZF9vYmogPSAwOwot ICAgZmFjZV9mb3VuZCA9IDA7Ci0gICAKLS0gIGNhc2NhZGUgPSAwOwotKyAgLy9jYXNjYWRlID0g MDsKLSAgIHN0b3JhZ2UgPSAwOwotICAgCi0gICBjbGFzc2lmaWVyID0gIi91c3Ivc2hhcmUvb3Bl bmN2L2hhYXJjYXNjYWRlcy9oYWFyY2FzY2FkZV9mcm9udGFsZmFjZV9kZWZhdWx0LnhtbCI7Ci1A QCAtMTI0LDcgKzEyOCw3IEBAIEZhY2VCbDByOjp+RmFjZUJsMHIoKSB7Ci0gICAgIGlmKHRyYWNr ZWRfb2JqKQotICAgICAgICAgZGVzdHJveV90cmFja2VkX29iamVjdCh0cmFja2VkX29iaik7Ci0g Ci0tICAgIGlmKGNhc2NhZGUpIGN2UmVsZWFzZUhhYXJDbGFzc2lmaWVyQ2FzY2FkZSgmY2FzY2Fk ZSk7Ci0rICAgIC8vaWYoY2FzY2FkZSkgY3ZSZWxlYXNlSGFhckNsYXNzaWZpZXJDYXNjYWRlKCZj YXNjYWRlKTsKLSAgICAgaWYoc3RvcmFnZSkgY3ZSZWxlYXNlTWVtU3RvcmFnZSgmc3RvcmFnZSk7 Ci0gICAgIAotIH0KLUBAIC0xMzMsNyArMTM3LDcgQEAgdm9pZCBGYWNlQmwwcjo6dXBkYXRlKGRv dWJsZSB0aW1lLAotICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogb3V0LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGluKSB7Ci0gCi0tICBpZiAoIWNh c2NhZGUpIHsKLSsgIGlmIChjYXNjYWRlLmVtcHR5KCkpIHsKLSAgICAgICBjdlNldE51bVRocmVh ZHMoY3ZSb3VuZCh0aHJlYWRzICogMTAwKSk7Ci0gICAgICAgaWYgKGNsYXNzaWZpZXIubGVuZ3Ro KCkgPiAwKSB7Ci0gCWlmIChjbGFzc2lmaWVyID09IG9sZF9jbGFzc2lmaWVyKSB7Ci1AQCAtMTQy LDggKzE0Niw3IEBAIHZvaWQgRmFjZUJsMHI6OnVwZGF0ZShkb3VibGUgdGltZSwKLSAJICByZXR1 cm47Ci0gCX0gZWxzZSBvbGRfY2xhc3NpZmllciA9IGNsYXNzaWZpZXI7Ci0gCi0tCWNhc2NhZGUg PSAoQ3ZIYWFyQ2xhc3NpZmllckNhc2NhZGUqKSBjdkxvYWQoY2xhc3NpZmllci5jX3N0cigpLCAw LCAwLCAwICk7Ci0tCWlmICghY2FzY2FkZSkgewotKwlpZiAoIWNhc2NhZGUubG9hZChjbGFzc2lm aWVyLmNfc3RyKCkpKSB7Ci0gCSAgZnByaW50ZihzdGRlcnIsICJFUlJPUiBpbiBmaWx0ZXIgZmFj ZWJsMHIsIGNsYXNzaWZpZXIgY2FzY2FkZSBub3QgZm91bmQ6XG4iKTsKLSAJICBmcHJpbnRmKHN0 ZGVyciwgIiAlc1xuIiwgY2xhc3NpZmllci5jX3N0cigpKTsKLSAJICBtZW1jcHkob3V0LCBpbiwg c2l6ZSAqIDQpOwotQEAgLTIzNCwzMCArMjM3LDMzIEBAIHZvaWQgRmFjZUJsMHI6OnVwZGF0ZShk b3VibGUgdGltZSwKLSAKLSAvKiBHaXZlbiBhbiBpbWFnZSBhbmQgYSBjbGFzc2lkZXIsIGRldGVj dCBhbmQgcmV0dXJuIHJlZ2lvbi4gKi8KLSBDdlJlY3QqIEZhY2VCbDByOjpkZXRlY3RfZmFjZSAo SXBsSW1hZ2UqIGltYWdlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdkhhYXJD bGFzc2lmaWVyQ2FzY2FkZSogY2FzY2FkZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3Y6OkNhc2NhZGVDbGFzc2lmaWVyICZjYXNjYWRlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDdk1lbVN0b3JhZ2UqIHN0b3JhZ2UpIHsKLSAgICAgCi0gICBDdlJlY3QqIHJl Y3QgPSAwOwotKyAgc3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+IGZhY2VzOwotKyAgY3Y6Ok1hdCBncmF5 X21hdDsKLSAgIAotLSAgaWYgKGNhc2NhZGUgJiYgc3RvcmFnZSkgewotKyAgaWYgKCFjYXNjYWRl LmVtcHR5KCkgJiYgc3RvcmFnZSkgewotICAgICAgLy91c2UgYW4gZXF1YWxpemVkIGdyYXkgaW1h Z2UgZm9yIGJldHRlciByZWNvZ25pdGlvbgotICAgICAgSXBsSW1hZ2UqIGdyYXkgPSBjdkNyZWF0 ZUltYWdlKGN2U2l6ZShpbWFnZS0+d2lkdGgsIGltYWdlLT5oZWlnaHQpLCA4LCAxKTsKLSAgICAg IGN2Q3Z0Q29sb3IoaW1hZ2UsIGdyYXksIENWX0JHUjJHUkFZKTsKLSAgICAgIGN2RXF1YWxpemVI aXN0KGdyYXksIGdyYXkpOwotICAgICAgY3ZDbGVhck1lbVN0b3JhZ2Uoc3RvcmFnZSk7Ci0rICAg ICBncmF5X21hdCA9IGN2OjpjdmFyclRvTWF0KCZncmF5KTsKLSAKLSAgICAgICAvL2dldCBhIHNl cXVlbmNlIG9mIGZhY2VzIGluIGltYWdlCi0gICAgICAgaW50IG1pbiA9IGN2Um91bmQoc21hbGxl c3QgKiAxMDAwKTsKLS0gICAgICBDdlNlcSAqZmFjZXMgPSBjdkhhYXJEZXRlY3RPYmplY3RzKGdy YXksIGNhc2NhZGUsIHN0b3JhZ2UsCi0rICAgICAgY2FzY2FkZS5kZXRlY3RNdWx0aVNjYWxlKGdy YXlfbWF0LCBmYWNlcywKLSAgICAgICAgICBzZWFyY2hfc2NhbGUgKiAxMC4wLAotICAgICAgICAg IGN2Um91bmQobmVpZ2hib3JzICogMTAwKSwKLS0gICAgICAgICBDVl9IQUFSX0ZJTkRfQklHR0VT VF9PQkpFQ1R8Ly9zaW5jZSB3ZSB0cmFjayBvbmx5IHRoZSBmaXJzdCwgZ2V0IHRoZSBiaWdnZXN0 Ci0tICAgICAgICAgQ1ZfSEFBUl9ET19DQU5OWV9QUlVOSU5HLCAgLy9za2lwIHJlZ2lvbnMgdW5s aWtlbHkgdG8gY29udGFpbiBhIGZhY2UKLS0gICAgICAgICBjdlNpemUobWluLCBtaW4pKTsKLSsg ICAgICAgICBjdjo6Q0FTQ0FERV9GSU5EX0JJR0dFU1RfT0JKRUNUfC8vc2luY2Ugd2UgdHJhY2sg b25seSB0aGUgZmlyc3QsIGdldCB0aGUgYmlnZ2VzdAotKyAgICAgICAgIGN2OjpDQVNDQURFX0RP X0NBTk5ZX1BSVU5JTkcsICAvL3NraXAgcmVnaW9ucyB1bmxpa2VseSB0byBjb250YWluIGEgZmFj ZQotKyAgICAgICAgIGN2U2l6ZShtaW4sbWluKSk7Ci0gICAgIAotICAgICAgIC8vaWYgb25lIG9y IG1vcmUgZmFjZXMgYXJlIGRldGVjdGVkLCByZXR1cm4gdGhlIGZpcnN0IG9uZQotLSAgICAgIGlm KGZhY2VzICYmIGZhY2VzLT50b3RhbCkKLS0gICAgICAgIHJlY3QgPSAoQ3ZSZWN0KikgY3ZHZXRT ZXFFbGVtKGZhY2VzLCAwKTsKLSsgICAgICBpZihmYWNlcy5zaXplKCkgPiAwKQotKyAgICAgICAg cmVjdCA9IChDdlJlY3QqKSAmZmFjZXMuZnJvbnQoKTsKLSAKLSAgICAgICBjdlJlbGVhc2VJbWFn ZSgmZ3JheSk7Ci0gICB9Ci1AQCAtMzIxLDcgKzMyNyw3IEBAIHZvaWQgRmFjZUJsMHI6OmRlc3Ry b3lfdHJhY2tlZF9vYmplY3QgKFRyYWNrZWRPYmoqIG9iaikgewotIAotIC8qIEdpdmVuIGFuIGlt YWdlIGFuZCB0cmFja2VkIG9iamVjdCwgcmV0dXJuIGJveCBwb3NpdGlvbi4gKi8KLSBDdkJveDJE IEZhY2VCbDByOjpjYW1zaGlmdF90cmFja19mYWNlIChJcGxJbWFnZSogaW1hZ2UsIFRyYWNrZWRP YmoqIG9iaikgewotLSAgQ3ZDb25uZWN0ZWRDb21wIGNvbXBvbmVudHM7Ci0rICAvL0N2Q29ubmVj dGVkQ29tcCBjb21wb25lbnRzOwotIAotICAgLy9jcmVhdGUgYSBuZXcgaHVlIGltYWdlCi0gICB1 cGRhdGVfaHVlX2ltYWdlKGltYWdlLCBvYmopOwotQEAgLTMzMCwxNiArMzM2LDE4IEBAIEN2Qm94 MkQgRmFjZUJsMHI6OmNhbXNoaWZ0X3RyYWNrX2ZhY2UgKElwbEltYWdlKiBpbWFnZSwgVHJhY2tl ZE9iaiogb2JqKSB7Ci0gICBjdkNhbGNCYWNrUHJvamVjdCgmb2JqLT5odWUsIG9iai0+cHJvYiwg b2JqLT5oaXN0KTsKLSAgIGN2QW5kKG9iai0+cHJvYiwgb2JqLT5tYXNrLCBvYmotPnByb2IsIDAp OwotIAotKyAgY3Y6Ok1hdCBvYmpfcHJvYl9tYXQgPSBjdjo6Y3ZhcnJUb01hdCgmb2JqLT5wcm9i KTsKLSsKLSAgIC8vdXNlIENhbVNoaWZ0IHRvIGZpbmQgdGhlIGNlbnRlciBvZiB0aGUgbmV3IGZh Y2UgcHJvYmFiaWxpdHkKLS0gIGN2Q2FtU2hpZnQob2JqLT5wcm9iLCBvYmotPnByZXZfcmVjdCwK LS0gICAgICAgICAgICAgY3ZUZXJtQ3JpdGVyaWEoQ1ZfVEVSTUNSSVRfRVBTIHwgQ1ZfVEVSTUNS SVRfSVRFUiwgMTAsIDEpLAotLSAgICAgICAgICAgICAmY29tcG9uZW50cywgJm9iai0+Y3Vycl9i b3gpOwotKyAgY3Y6OlJvdGF0ZWRSZWN0IHJvdF9yZWN0ID0gY3Y6OkNhbVNoaWZ0KG9ial9wcm9i X21hdCwgb2JqLT5wcmV2X3JlY3QsCi0rICAgICAgICAgICAgIGN2VGVybUNyaXRlcmlhKENWX1RF Uk1DUklUX0VQUyB8IENWX1RFUk1DUklUX0lURVIsIDEwLCAxKSk7Ci0rICAvLyAgICAgICAgICAg JmNvbXBvbmVudHMsICZvYmotPmN1cnJfYm94KTsKLSAKLSAgIC8vdXBkYXRlIGZhY2UgbG9jYXRp b24gYW5kIGFuZ2xlCi0tICBvYmotPnByZXZfcmVjdCA9IGNvbXBvbmVudHMucmVjdDsKLS0gIG9i ai0+Y3Vycl9ib3guYW5nbGUgPSAtb2JqLT5jdXJyX2JveC5hbmdsZTsKLSsgIC8vb2JqLT5wcmV2 X3JlY3QgPSBjb21wb25lbnRzLnJlY3Q7Ci0rICAvL29iai0+Y3Vycl9ib3guYW5nbGUgPSAtb2Jq LT5jdXJyX2JveC5hbmdsZTsKLSAKLS0gIHJldHVybiBvYmotPmN1cnJfYm94OwotKyAgcmV0dXJu IHJvdF9yZWN0OwotIH0KLSAKLSB2b2lkIEZhY2VCbDByOjp1cGRhdGVfaHVlX2ltYWdlIChjb25z dCBJcGxJbWFnZSogaW1hZ2UsIFRyYWNrZWRPYmoqIG9iaikgewoKZGlmZiAtLWdpdCBhLzc0ODJj MzIwYjUyOTU2NzEzZDBiNTExNzcxYjIzMDIwZmFiZDA3YTIucGF0Y2ggYi83NDgyYzMyMGI1Mjk1 NjcxM2QwYjUxMTc3MWIyMzAyMGZhYmQwN2EyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAzMGQ1MzFjLi4wMDAwMDAwCi0tLSBhLzc0ODJjMzIwYjUyOTU2NzEzZDBiNTExNzcx YjIzMDIwZmFiZDA3YTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NDEgKzAsMCBAQAotRnJv bSA3NDgyYzMyMGI1Mjk1NjcxM2QwYjUxMTc3MWIyMzAyMGZhYmQwN2EyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP1N0ZWZhbj0yMEJyPUMzPUJDbnM/PSA8c3RlZmFu LmJydWVuc0Byd3RoLWFhY2hlbi5kZT4KLURhdGU6IFdlZCwgMSBKYW4gMjAyMCAyMjo1OToyNCAr MDEwMAotU3ViamVjdDogW1BBVENIXSBQb3J0IGZhY2VibDByIHRvIE9wZW5DViBDKysgQVBJCi0K LVRyYWNrZWRPYmogaGFzIGJlZW4gY29udmVydGVkIHRvIGEgY2xhc3MsIGFuZCB0aGUgdXBkYXRl X2h1ZV9pbWFnZSBhbmQKLWNhbXNoaWZ0X3RyYWNrX2ZhY2UgbWV0aG9kcyBhcmUgbm93IG1lbWJl cnMgb2YgaXQsIGluc3RlYWQgb2YgcGFzc2luZwotdGhlIG9iamVjdCBhcyBhIHBhcmFtZXRlci4K LQotQWxzbywgdGhlIHZhcmlvdXMgY3Y6Ok1hdCBpbnN0YW5jZXMgYXJlIGtlcHQsIGluc3RlYWQg b2YgZGVzdHJveWluZyBhbmQKLXJlY3JlYXRpbmcgdGhlc2Ugb24gdmFyaW91cyBvY2Nhc2lvbnMu Ci0KLVRoZSBwbHVnaW4gbm93IG9ubHkgYWNjZXB0cyBCR1JBODg4OCBhcyBpbWFnZSBmb3JtYXQs IGFzIHRoaXMgaXMgdGhlCi1leHBlY3RlZCBsYXlvdXQgdGhyb3VnaG91dCB0aGUgY29kZSAoZGVm YXVsdCBvcGVuQ1YgY2hhbm5lbCBvcmRlcikuCi0KLVRoZSBwbHVnaW4gaGFzIGJlZW4gdGVzdGVk IHVzaW5nIHRoZSBmb2xsb3dpbmcgZ3N0cmVhbWVyIHBpcGVsaW5lOgotZ3N0LWxhdW5jaC0xLjAg djRsMnNyYyAhIGltYWdlL2pwZWcsd2lkdGg9NjQwLHJhdGU9MS8xNSBcCi0gICEganBlZ2RlYyAh IHZpZGVvY29udmVydCBcCi0gICEgZnJlaTByLWZpbHRlci1mYWNlYmwwciBlbGxpcHNlPTEgXAot ICAgIGNsYXNzaWZpZXI9L3Vzci9zaGFyZS9PcGVuQ1YvaGFhcmNhc2NhZGVzL2hhYXJjYXNjYWRl X2Zyb250YWxmYWNlX2RlZmF1bHQueG1sIFwKLSAgISB2aWRlb2NvbnZlcnQgISBhdXRvdmlkZW9z aW5rCi0tLS0KLSBzcmMvZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcCB8IDI5MiArKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25z KCspLCAxOTAgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvZmlsdGVyL2ZhY2VibDBy L2ZhY2VibDByLmNwcCBiL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwCi1pbmRleCAx NzQ0NmNjLi45NjIyMmQ4IDEwMDY0NAotLS0tIGEvc3JjL2ZpbHRlci9mYWNlYmwwci9mYWNlYmww ci5jcHAKLSsrKyBiL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwCi1AQCAtMjIsNDkg KzIyLDQ5IEBACi0gI2luY2x1ZGUgImZyZWkwci5ocHAiCi0gI2luY2x1ZGUgImZyZWkwcl9tYXRo LmgiCi0gCi0tdHlwZWRlZiBzdHJ1Y3QgewotLSAgSXBsSW1hZ2UqIGhzdjsgICAgIC8vaW5wdXQg aW1hZ2UgY29udmVydGVkIHRvIEhTVgotLSAgSXBsSW1hZ2UqIGh1ZTsgICAgIC8vaHVlIGNoYW5u ZWwgb2YgSFNWIGltYWdlCi0tICBJcGxJbWFnZSogbWFzazsgICAgLy9pbWFnZSBmb3IgbWFza2lu ZyBwaXhlbHMKLS0gIElwbEltYWdlKiBwcm9iOyAgICAvL2ZhY2UgcHJvYmFiaWxpdHkgZXN0aW1h dGVzIGZvciBlYWNoIHBpeGVsCi0rY2xhc3MgVHJhY2tlZE9iaiB7Ci0rcHVibGljOgotKyAgdm9p ZCB1cGRhdGVfaGlzdCgpOwotKyAgdm9pZCB1cGRhdGVfaHVlX2ltYWdlIChjb25zdCBjdjo6TWF0 JiBpbWFnZSk7Ci0rICBjdjo6Um90YXRlZFJlY3QgY2Ftc2hpZnRfdHJhY2tfZmFjZSgpOwotKwot KyAgY3Y6Ok1hdCBoc3Y7ICAgICAvL2lucHV0IGltYWdlIGNvbnZlcnRlZCB0byBIU1YKLSsgIGN2 OjpNYXQgaHVlOyAgICAgLy9odWUgY2hhbm5lbCBvZiBIU1YgaW1hZ2UKLSsgIGN2OjpNYXQgbWFz azsgICAgLy9pbWFnZSBmb3IgbWFza2luZyBwaXhlbHMKLSsgIGN2OjpNYXQgcHJvYjsgICAgLy9m YWNlIHByb2JhYmlsaXR5IGVzdGltYXRlcyBmb3IgZWFjaCBwaXhlbAotIAotLSAgQ3ZIaXN0b2dy YW0qIGhpc3Q7IC8vaGlzdG9ncmFtIG9mIGh1ZSBpbiBvcmlnaW5hbCBmYWNlIGltYWdlCi0rICBj djo6TWF0IGhpc3Q7ICAgIC8vaGlzdG9ncmFtIG9mIGh1ZSBpbiBvcmlnaW5hbCBmYWNlIGltYWdl Ci0rICBzdGF0aWMgY29uc3QgaW50IGhpc3RfYmluczsgICAgICAgLy9udW1iZXIgb2YgaGlzdG9n cmFtIGJpbnMKLSsgIHN0YXRpYyBjb25zdCBmbG9hdCBoaXN0X3JhbmdlWzJdOyAvL2hpc3RvZ3Jh bSByYW5nZQotKwotKyAgY3Y6OlJlY3QgcHJldl9yZWN0OyAgLy9sb2NhdGlvbiBvZiBmYWNlIGlu IHByZXZpb3VzIGZyYW1lCi0rICBjdjo6Um90YXRlZFJlY3QgY3Vycl9ib3g7ICAvL2N1cnJlbnQg ZmFjZSBsb2NhdGlvbiBlc3RpbWF0ZQotK307Ci0gCi0tICBDdlJlY3QgcHJldl9yZWN0OyAgLy9s b2NhdGlvbiBvZiBmYWNlIGluIHByZXZpb3VzIGZyYW1lCi0tICBDdkJveDJEIGN1cnJfYm94OyAg Ly9jdXJyZW50IGZhY2UgbG9jYXRpb24gZXN0aW1hdGUKLS19IFRyYWNrZWRPYmo7Ci0rY29uc3Qg ZmxvYXQgVHJhY2tlZE9iajo6aGlzdF9yYW5nZVsyXSA9IHsgMCwgMTgwIH07Ci0rY29uc3QgaW50 IFRyYWNrZWRPYmo6Omhpc3RfYmlucyA9IDMwOwotIAotIGNsYXNzIEZhY2VCbDByOiBwdWJsaWMg ZnJlaTByOjpmaWx0ZXIgewotIAotIHB1YmxpYzoKLSAgICAgRmFjZUJsMHIoaW50IHdkdCwgaW50 IGhndCk7Ci0tICAgIH5GYWNlQmwwcigpOwotKyAgICB+RmFjZUJsMHIoKSA9IGRlZmF1bHQ7Ci0g Ci0gICAgIHZvaWQgdXBkYXRlKGRvdWJsZSB0aW1lLAotICAgICAgICAgICAgICAgICB1aW50MzJf dCogb3V0LAotICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCogaW4pOwotIAotIHByaXZh dGU6Ci0tICAgIAotLS8vIGNhbXNoaWZ0Ci0tICAgIFRyYWNrZWRPYmoqIGNyZWF0ZV90cmFja2Vk X29iamVjdCAoSXBsSW1hZ2UqIGltYWdlLCBDdlJlY3QqIGZhY2VfcmVjdCk7Ci0tICAgIHZvaWQg ZGVzdHJveV90cmFja2VkX29iamVjdCAoVHJhY2tlZE9iaiogdHJhY2tlZF9vYmopOwotLSAgICBD dkJveDJEIGNhbXNoaWZ0X3RyYWNrX2ZhY2UgKElwbEltYWdlKiBpbWFnZSwgVHJhY2tlZE9iaiog aW1ncyk7Ci0tICAgIHZvaWQgdXBkYXRlX2h1ZV9pbWFnZSAoY29uc3QgSXBsSW1hZ2UqIGltYWdl LCBUcmFja2VkT2JqKiBpbWdzKTsKLS0gICAgCi0rCi0gLy90cmFja2ZhY2UKLS0gICAgQ3ZSZWN0 KiBkZXRlY3RfZmFjZSAoSXBsSW1hZ2UqLCBDdkhhYXJDbGFzc2lmaWVyQ2FzY2FkZSosIEN2TWVt U3RvcmFnZSopOwotLSAgICAKLSsgICAgc3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+IGRldGVjdF9mYWNl KCk7Ci0rCi0rICAgIFRyYWNrZWRPYmogdHJhY2tlZF9vYmo7Ci0gCi0tICAgIFRyYWNrZWRPYmoq IHRyYWNrZWRfb2JqOwotLSAgICBDdkJveDJEIGZhY2VfYm94OyAvL2FyZWEgdG8gZHJhdwotLSAg ICBDdlJlY3QqIGZhY2VfcmVjdDsKLS0gICAgCi0gLy91c2VkIGJ5IGNhcHR1cmVfdmlkZW9fZnJh bWUsIHNvIHdlIGRvbid0IGhhdmUgdG8ga2VlcCBjcmVhdGluZy4KLS0gICAgSXBsSW1hZ2UqIGlt YWdlOwotKyAgICBjdjo6TWF0IGltYWdlOwotIAotLSAgICBDdkhhYXJDbGFzc2lmaWVyQ2FzY2Fk ZSogY2FzY2FkZTsKLS0gICAgQ3ZNZW1TdG9yYWdlKiBzdG9yYWdlOwotKyAgICBjdjo6Q2FzY2Fk ZUNsYXNzaWZpZXIgY2FzY2FkZTsKLSAKLSAgICAgLy8gcGx1Z2luIHBhcmFtZXRlcnMKLSAgICAg c3RkOjpzdHJpbmcgY2xhc3NpZmllcjsKLUBAIC03Nyw3ICs3Nyw2IEBAIGNsYXNzIEZhY2VCbDBy OiBwdWJsaWMgZnJlaTByOjpmaWx0ZXIgewotICAgICBkb3VibGUgbGFyZ2VzdDsKLSAKLSAgICAg c3RkOjpzdHJpbmcgb2xkX2NsYXNzaWZpZXI7Ci0tICAKLSAKLSAgICAgdW5zaWduZWQgaW50IGZh Y2VfZm91bmQ7Ci0gICAgIHVuc2lnbmVkIGludCBmYWNlX25vdGZvdW5kOwotQEAgLTg3LDE4ICs4 NiwxMiBAQCBjbGFzcyBGYWNlQmwwcjogcHVibGljIGZyZWkwcjo6ZmlsdGVyIHsKLSBmcmVpMHI6 OmNvbnN0cnVjdDxGYWNlQmwwcj4gcGx1Z2luKCJGYWNlQmwwciIsCi0gCQkJCSAgImF1dG9tYXRp YyBmYWNlIGJsdXIiLAotIAkJCQkgICJaaW9LZXJuZWwsIEJpaWxseSwgSmlsdCwgSmFyb21pbCwg ZGRlbm5lZHkiLAotLQkJCQkgIDEsMSwgRjBSX0NPTE9SX01PREVMX1BBQ0tFRDMyKTsKLSsJCQkJ ICAxLDEsIEYwUl9DT0xPUl9NT0RFTF9CR1JBODg4OCk7Ci0gCi0gRmFjZUJsMHI6OkZhY2VCbDBy KGludCB3ZHQsIGludCBoZ3QpIHsKLSAKLS0gIGZhY2VfcmVjdCA9IDA7Ci0tICBpbWFnZSA9IDA7 Ci0tICB0cmFja2VkX29iaiA9IDA7Ci0gICBmYWNlX2ZvdW5kID0gMDsKLS0gIAotLSAgY2FzY2Fk ZSA9IDA7Ci0tICBzdG9yYWdlID0gMDsKLS0gIAotKwotICAgY2xhc3NpZmllciA9ICIvdXNyL3No YXJlL29wZW5jdi9oYWFyY2FzY2FkZXMvaGFhcmNhc2NhZGVfZnJvbnRhbGZhY2VfZGVmYXVsdC54 bWwiOwotICAgcmVnaXN0ZXJfcGFyYW0oY2xhc3NpZmllciwKLSAgICAgICAgICAgICAgICAgICJD bGFzc2lmaWVyIiwKLUBAIC0xMjAsNTIgKzExMywzNSBAQCBGYWNlQmwwcjo6RmFjZUJsMHIoaW50 IHdkdCwgaW50IGhndCkgewotICAgcmVnaXN0ZXJfcGFyYW0obGFyZ2VzdCwgIkxhcmdlc3QiLCAi TWF4aW11bSBvYmplY3Qgc2l6ZSBpbiBwaXhlbHMsIGRpdmlkZWQgYnkgMTAwMDAiKTsKLSB9Ci0g Ci0tRmFjZUJsMHI6On5GYWNlQmwwcigpIHsKLS0gICAgaWYodHJhY2tlZF9vYmopCi0tICAgICAg ICBkZXN0cm95X3RyYWNrZWRfb2JqZWN0KHRyYWNrZWRfb2JqKTsKLS0KLS0gICAgaWYoY2FzY2Fk ZSkgY3ZSZWxlYXNlSGFhckNsYXNzaWZpZXJDYXNjYWRlKCZjYXNjYWRlKTsKLS0gICAgaWYoc3Rv cmFnZSkgY3ZSZWxlYXNlTWVtU3RvcmFnZSgmc3RvcmFnZSk7Ci0tICAgIAotLX0KLS0KLSB2b2lk IEZhY2VCbDByOjp1cGRhdGUoZG91YmxlIHRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90KiBvdXQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCog aW4pIHsKLS0KLS0gIGlmICghY2FzY2FkZSkgewotLSAgICAgIGN2U2V0TnVtVGhyZWFkcyhjdlJv dW5kKHRocmVhZHMgKiAxMDApKTsKLS0gICAgICBpZiAoY2xhc3NpZmllci5sZW5ndGgoKSA+IDAp IHsKLS0JaWYgKGNsYXNzaWZpZXIgPT0gb2xkX2NsYXNzaWZpZXIpIHsKLS0JICAvLyBzYW1lIGFz IGJlZm9yZSwgYXZvaWQgcmVwZWF0aW5nIGVycm9yIG1lc3NhZ2VzCi0tCSAgbWVtY3B5KG91dCwg aW4sIHNpemUgKiA0KTsgLy8gb2YgY291cnNlIGFzc3VtaW5nIHdlIGFyZSBSR0JBIG9ubHkKLS0J ICByZXR1cm47Ci0tCX0gZWxzZSBvbGRfY2xhc3NpZmllciA9IGNsYXNzaWZpZXI7Ci0tCi0tCWNh c2NhZGUgPSAoQ3ZIYWFyQ2xhc3NpZmllckNhc2NhZGUqKSBjdkxvYWQoY2xhc3NpZmllci5jX3N0 cigpLCAwLCAwLCAwICk7Ci0tCWlmICghY2FzY2FkZSkgewotLQkgIGZwcmludGYoc3RkZXJyLCAi RVJST1IgaW4gZmlsdGVyIGZhY2VibDByLCBjbGFzc2lmaWVyIGNhc2NhZGUgbm90IGZvdW5kOlxu Iik7Ci0tCSAgZnByaW50ZihzdGRlcnIsICIgJXNcbiIsIGNsYXNzaWZpZXIuY19zdHIoKSk7Ci0t CSAgbWVtY3B5KG91dCwgaW4sIHNpemUgKiA0KTsKLS0JICByZXR1cm47Ci0tCX0KLS0Jc3RvcmFn ZSA9IGN2Q3JlYXRlTWVtU3RvcmFnZSgwKTsKLS0gICAgICB9Ci0tICAgICAgZWxzZSB7Ci0tCW1l bWNweShvdXQsIGluLCBzaXplICogNCk7Ci0tCXJldHVybjsKLS0gICAgICB9Ci0tICB9Ci0rICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90KiBpbikKLSt7Ci0rICAgIGlmIChjYXNj YWRlLmVtcHR5KCkpIHsKLSsgICAgICAgIGN2OjpzZXROdW1UaHJlYWRzKGN2Um91bmQodGhyZWFk cyAqIDEwMCkpOwotKyAgICAgICAgaWYgKGNsYXNzaWZpZXIubGVuZ3RoKCkgPT0gMCB8fCBjbGFz c2lmaWVyID09IG9sZF9jbGFzc2lmaWVyKSB7Ci0rICAgICAgICAgICAgLy8gc2FtZSBhcyBiZWZv cmUsIGF2b2lkIHJlcGVhdGluZyBlcnJvciBtZXNzYWdlcwotKyAgICAgICAgICAgIG1lbWNweShv dXQsIGluLCBzaXplICogNCk7IC8vIG9mIGNvdXJzZSBhc3N1bWluZyB3ZSBhcmUgUkdCQSBvbmx5 Ci0rICAgICAgICAgICAgcmV0dXJuOwotKyAgICAgICAgfQotKyAgICAgICAgb2xkX2NsYXNzaWZp ZXIgPSBjbGFzc2lmaWVyOwotKyAgICB9Ci0rCi0rICAgIGlmICghY2FzY2FkZS5sb2FkKGNsYXNz aWZpZXIuY19zdHIoKSkpIHsKLSsgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1IgaW4gZmls dGVyIGZhY2VibDByLCBjbGFzc2lmaWVyIGNhc2NhZGUgbm90IGZvdW5kOlxuIik7Ci0rICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIiAlc1xuIiwgY2xhc3NpZmllci5jX3N0cigpKTsKLSsgICAgICAg IG1lbWNweShvdXQsIGluLCBzaXplICogNCk7Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSAK LSAgIC8vIHNhbml0aXplIHBhcmFtZXRlcnMKLSAgIHJlY2hlY2sgPSBDTEFNUChyZWNoZWNrLCAw LjAwMSwgMS4wKTsKLSAgIHNlYXJjaF9zY2FsZSA9IENMQU1QKHNlYXJjaF9zY2FsZSwgMC4xMSwg MS4wKTsKLSAgIG5laWdoYm9ycyA9IENMQU1QKG5laWdoYm9ycywgMC4wMSwgMS4wKTsKLSAKLS0g IGlmKCAhaW1hZ2UgKQotLSAgICAgIGltYWdlID0gY3ZDcmVhdGVJbWFnZSggY3ZTaXplKHdpZHRo LGhlaWdodCksIElQTF9ERVBUSF84VSwgNCApOwotLQotLSAgbWVtY3B5KGltYWdlLT5pbWFnZURh dGEsIGluLCBzaXplICogNCk7Ci0rICAvLyBjb3B5IGlucHV0IGltYWdlIHRvIE9wZW5DVgotKyAg aW1hZ2UgPSBjdjo6TWF0KGhlaWdodCwgd2lkdGgsIENWXzhVQzQsICh2b2lkKilpbik7Ci0rICB0 cmFja2VkX29iai51cGRhdGVfaHVlX2ltYWdlKGltYWdlKTsKLSAKLSAgIC8qCi0gICAgIG5vIGZh Y2UqCi1AQCAtMTc2LDI3ICsxNTIsMjQgQEAgdm9pZCBGYWNlQmwwcjo6dXBkYXRlKGRvdWJsZSB0 aW1lLAotICAgICAgICBubyBmYWNlKgotICAgICovCi0gICBpZihmYWNlX25vdGZvdW5kPjApIHsK LS0KLSsgICAgICBzdGQ6OnZlY3Rvcjxjdjo6UmVjdD4gZmFjZXM7Ci0gICAgICAgaWYoZmFjZV9u b3Rmb3VuZCAlIGN2Um91bmQocmVjaGVjayAqIDEwMDApID09IDApCi0tICAgICAgICAgIGZhY2Vf cmVjdCA9IGRldGVjdF9mYWNlKGltYWdlLCBjYXNjYWRlLCBzdG9yYWdlKTsKLSsgICAgICAgICAg ZmFjZXMgPSBkZXRlY3RfZmFjZSgpOwotIAotICAgICAgIC8vIGlmIG5vIGZhY2UgZGV0ZWN0ZWQK LS0gICAgICBpZiAoIWZhY2VfcmVjdCkgewotKyAgICAgIGlmIChmYWNlcy5lbXB0eSgpKSB7Ci0g ICAgICAgICAgIGZhY2Vfbm90Zm91bmQrKzsKLSAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAv L3RyYWNrIGRldGVjdGVkIGZhY2Ugd2l0aCBjYW1zaGlmdAotLSAgICAgICAgICBpZih0cmFja2Vk X29iaikKLS0gICAgICAgICAgICAgIGRlc3Ryb3lfdHJhY2tlZF9vYmplY3QodHJhY2tlZF9vYmop OwotLSAgICAgICAgICB0cmFja2VkX29iaiA9IGNyZWF0ZV90cmFja2VkX29iamVjdChpbWFnZSwg ZmFjZV9yZWN0KTsKLSsgICAgICAgICAgdHJhY2tlZF9vYmoucHJldl9yZWN0ID0gZmFjZXNbMF07 Ci0rICAgICAgICAgIHRyYWNrZWRfb2JqLnVwZGF0ZV9oaXN0KCk7Ci0gICAgICAgICAgIGZhY2Vf bm90Zm91bmQgPSAwOwotICAgICAgICAgICBmYWNlX2ZvdW5kKys7Ci0gICAgICAgfQotLQotICAg fQotIAotLSAgaWYoZmFjZV9mb3VuZD4wKSB7IAotKyAgaWYgKGZhY2VfZm91bmQgPiAwKSB7Ci0g ICAgICAgLy90cmFjayB0aGUgZmFjZSBpbiB0aGUgbmV3IGZyYW1lCi0tICAgICAgZmFjZV9ib3gg PSBjYW1zaGlmdF90cmFja19mYWNlKGltYWdlLCB0cmFja2VkX29iaik7Ci0rICAgICAgY3Y6OlJv dGF0ZWRSZWN0IGZhY2VfYm94ID0gdHJhY2tlZF9vYmouY2Ftc2hpZnRfdHJhY2tfZmFjZSgpOwot IAotICAgICAgIGludCBtaW4gPSBjdlJvdW5kKHNtYWxsZXN0ICogMTAwMCk7Ci0gICAgICAgICAg IG1pbiA9IG1pbj8gbWluIDogMTA7Ci1AQCAtMjEwLDE3ICsxODMsMTMgQEAgdm9pZCBGYWNlQmww cjo6dXBkYXRlKGRvdWJsZSB0aW1lLAotICAgICAgICAgICBmYWNlX25vdGZvdW5kKys7Ci0gICAg ICAgfQotICAgICAgIGVsc2UgewotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLQkgICAgICBjdlNldEltYWdl Uk9JIChpbWFnZSwgdHJhY2tlZF9vYmotPnByZXZfcmVjdCk7Ci0tLy8gICAgICAgICAgY3ZTbW9v dGggKGltYWdlLCBpbWFnZSwgQ1ZfQkxVUiwgMjIsIDIyLCAwLCAwKTsKLS0JCSAgY3ZTbW9vdGgg KGltYWdlLCBpbWFnZSwgQ1ZfQkxVUiwgMjMsIDIzLCAwLCAwKTsKLS0vLyAgICAgICAgICBjdlNt b290aCAoaW1hZ2UsIGltYWdlLCBDVl9HQVVTU0lBTiwgMTEsIDExLCAwLCAwKTsKLS0JCSAgY3ZS ZXNldEltYWdlUk9JIChpbWFnZSk7Ci0tLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0tICAgICAgCi0rICAgICAg ICAgIGN2OjpSZWN0IGJsdXJfcmVnaW9uID0gdHJhY2tlZF9vYmoucHJldl9yZWN0ICYgY3Y6OlJl Y3QoezAsIDB9LCBpbWFnZS5zaXplKCkpOwotKyAgICAgICAgICBjdjo6TWF0IGJsdXIoaW1hZ2Us IGJsdXJfcmVnaW9uKTsKLSsgICAgICAgICAgY3Y6OmJsdXIoYmx1ciwgYmx1ciwgezIzLCAyM30s IGN2OjpQb2ludCgtMSwgLTEpKTsKLSsKLSAgICAgICAgICAgLy9vdXRsaW5lIGZhY2UgZWxsaXBz ZQotICAgICAgICAgICBpZiAoZWxsaXBzZSkKLS0gICAgICAgICAgICAgIGN2RWxsaXBzZUJveChp bWFnZSwgZmFjZV9ib3gsIENWX1JHQigyNTUsMCwwKSwgMiwgQ1ZfQUEsIDApOwotKyAgICAgICAg ICAgICAgY3Y6OmVsbGlwc2UoaW1hZ2UsIGZhY2VfYm94LCBDVl9SR0IoMjU1LDAsMCksIDIsIGN2 OjpMSU5FX0FBKTsKLSAKLSAgICAgICAgICAgZmFjZV9mb3VuZCsrOwotICAgICAgICAgICBpZihm YWNlX2ZvdW5kICUgY3ZSb3VuZChyZWNoZWNrICogMTAwMCkgPT0gMCkKLUBAIC0yMjgsMTMzICsx OTcsNzYgQEAgdm9pZCBGYWNlQmwwcjo6dXBkYXRlKGRvdWJsZSB0aW1lLAotICAgICAgIH0KLSAg IH0KLSAKLS0gIG1lbWNweShvdXQsIGltYWdlLT5pbWFnZURhdGEsIHNpemUgKiA0KTsKLS0gIGN2 UmVsZWFzZUltYWdlKCZpbWFnZSk7Ci0rICBtZW1jcHkob3V0LCBpbWFnZS5kYXRhLCBzaXplICog NCk7Ci0gfQotIAotIC8qIEdpdmVuIGFuIGltYWdlIGFuZCBhIGNsYXNzaWRlciwgZGV0ZWN0IGFu ZCByZXR1cm4gcmVnaW9uLiAqLwotLUN2UmVjdCogRmFjZUJsMHI6OmRldGVjdF9mYWNlIChJcGxJ bWFnZSogaW1hZ2UsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN2SGFhckNsYXNz aWZpZXJDYXNjYWRlKiBjYXNjYWRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD dk1lbVN0b3JhZ2UqIHN0b3JhZ2UpIHsKLS0gICAgCi0tICBDdlJlY3QqIHJlY3QgPSAwOwotLSAg Ci0tICBpZiAoY2FzY2FkZSAmJiBzdG9yYWdlKSB7Ci0rc3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+IEZh Y2VCbDByOjpkZXRlY3RfZmFjZSgpCi0rewotKyAgICBpZiAoY2FzY2FkZS5lbXB0eSgpKSB7Ci0r ICAgICAgICByZXR1cm4gc3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+KCk7Ci0rICAgIH0KLSsKLSAgICAg IC8vdXNlIGFuIGVxdWFsaXplZCBncmF5IGltYWdlIGZvciBiZXR0ZXIgcmVjb2duaXRpb24KLS0g ICAgIElwbEltYWdlKiBncmF5ID0gY3ZDcmVhdGVJbWFnZShjdlNpemUoaW1hZ2UtPndpZHRoLCBp bWFnZS0+aGVpZ2h0KSwgOCwgMSk7Ci0tICAgICBjdkN2dENvbG9yKGltYWdlLCBncmF5LCBDVl9C R1IyR1JBWSk7Ci0tICAgICBjdkVxdWFsaXplSGlzdChncmF5LCBncmF5KTsKLS0gICAgIGN2Q2xl YXJNZW1TdG9yYWdlKHN0b3JhZ2UpOwotKyAgICAgY3Y6Ok1hdCBncmF5OwotKyAgICAgY3Y6OmN2 dENvbG9yKGltYWdlLCBncmF5LCBDVl9CR1IyR1JBWSk7Ci0rICAgICBjdjo6ZXF1YWxpemVIaXN0 KGdyYXksIGdyYXkpOwotIAotICAgICAgIC8vZ2V0IGEgc2VxdWVuY2Ugb2YgZmFjZXMgaW4gaW1h Z2UKLSAgICAgICBpbnQgbWluID0gY3ZSb3VuZChzbWFsbGVzdCAqIDEwMDApOwotLSAgICAgIEN2 U2VxICpmYWNlcyA9IGN2SGFhckRldGVjdE9iamVjdHMoZ3JheSwgY2FzY2FkZSwgc3RvcmFnZSwK LSsgICAgICBzdGQ6OnZlY3Rvcjxjdjo6UmVjdD4gZmFjZXM7Ci0rICAgICAgY2FzY2FkZS5kZXRl Y3RNdWx0aVNjYWxlKGdyYXksIGZhY2VzLAotICAgICAgICAgIHNlYXJjaF9zY2FsZSAqIDEwLjAs Ci0gICAgICAgICAgY3ZSb3VuZChuZWlnaGJvcnMgKiAxMDApLAotICAgICAgICAgIENWX0hBQVJf RklORF9CSUdHRVNUX09CSkVDVHwvL3NpbmNlIHdlIHRyYWNrIG9ubHkgdGhlIGZpcnN0LCBnZXQg dGhlIGJpZ2dlc3QKLSAgICAgICAgICBDVl9IQUFSX0RPX0NBTk5ZX1BSVU5JTkcsICAvL3NraXAg cmVnaW9ucyB1bmxpa2VseSB0byBjb250YWluIGEgZmFjZQotLSAgICAgICAgIGN2U2l6ZShtaW4s IG1pbikpOwotLSAgICAKLS0gICAgICAvL2lmIG9uZSBvciBtb3JlIGZhY2VzIGFyZSBkZXRlY3Rl ZCwgcmV0dXJuIHRoZSBmaXJzdCBvbmUKLS0gICAgICBpZihmYWNlcyAmJiBmYWNlcy0+dG90YWwp Ci0tICAgICAgICByZWN0ID0gKEN2UmVjdCopIGN2R2V0U2VxRWxlbShmYWNlcywgMCk7Ci0rICAg ICAgICAgY3Y6OlNpemUobWluLCBtaW4pKTsKLSAKLS0gICAgICBjdlJlbGVhc2VJbWFnZSgmZ3Jh eSk7Ci0tICB9Ci0tCi0tICByZXR1cm4gcmVjdDsKLSsgICAgcmV0dXJuIGZhY2VzOwotIH0KLSAK LS0vKiBDcmVhdGUgYSBjYW1zaGlmdCB0cmFja2VkIG9iamVjdCBmcm9tIGEgcmVnaW9uIGluIGlt YWdlLiAqLwotLVRyYWNrZWRPYmoqIEZhY2VCbDByOjpjcmVhdGVfdHJhY2tlZF9vYmplY3QgKElw bEltYWdlKiBpbWFnZSwgQ3ZSZWN0KiByZWdpb24pIHsKLS0gIFRyYWNrZWRPYmoqIG9iajsKLS0g IAotLSAgLy9hbGxvY2F0ZSBtZW1vcnkgZm9yIHRyYWNrZWQgb2JqZWN0IHN0cnVjdAotLSAgaWYo KG9iaiA9IChUcmFja2VkT2JqICopIG1hbGxvYyhzaXplb2YgKm9iaikpICE9IE5VTEwpIHsKLS0g ICAgLy9jcmVhdGUtaW1hZ2U6IHNpemUodyxoKSwgYml0IGRlcHRoLCBjaGFubmVscwotLSAgICBv YmotPmhzdiAgPSBjdkNyZWF0ZUltYWdlKGN2R2V0U2l6ZShpbWFnZSksIDgsIDMpOwotLSAgICBv YmotPm1hc2sgPSBjdkNyZWF0ZUltYWdlKGN2R2V0U2l6ZShpbWFnZSksIDgsIDEpOwotLSAgICBv YmotPmh1ZSAgPSBjdkNyZWF0ZUltYWdlKGN2R2V0U2l6ZShpbWFnZSksIDgsIDEpOwotLSAgICBv YmotPnByb2IgPSBjdkNyZWF0ZUltYWdlKGN2R2V0U2l6ZShpbWFnZSksIDgsIDEpOwotLQotLSAg ICBpbnQgaGlzdF9iaW5zID0gMzA7ICAgICAgICAgICAvL251bWJlciBvZiBoaXN0b2dyYW0gYmlu cwotLSAgICBmbG9hdCBoaXN0X3JhbmdlW10gPSB7MCwxODB9OyAvL2hpc3RvZ3JhbSByYW5nZQot LSAgICBmbG9hdCogcmFuZ2UgPSBoaXN0X3JhbmdlOwotLSAgICBvYmotPmhpc3QgPSBjdkNyZWF0 ZUhpc3QoMSwgICAgICAgICAgICAgLy9udW1iZXIgb2YgaGlzdCBkaW1lbnNpb25zCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmaGlzdF9iaW5zLCAgICAvL2FycmF5IG9mIGRpbWVuc2lv biBzaXplcwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZfSElTVF9BUlJBWSwgLy9y ZXByZXNlbnRhdGlvbiBmb3JtYXQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyYW5n ZSwgICAgICAgIC8vYXJyYXkgb2YgcmFuZ2VzIGZvciBiaW5zCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxKTsgICAgICAgICAgICAvL3VuaWZvcm1pdHkgZmxhZwotLSAgfQotLSAgCi0t ICAvL2NyZWF0ZSBhIG5ldyBodWUgaW1hZ2UKLS0gIHVwZGF0ZV9odWVfaW1hZ2UoaW1hZ2UsIG9i aik7Ci0tCi0tICBmbG9hdCBtYXhfdmFsID0gMC5mOwotLSAgCi0rdm9pZCBUcmFja2VkT2JqOjp1 cGRhdGVfaGlzdCgpCi0rewotICAgLy9jcmVhdGUgYSBoaXN0b2dyYW0gcmVwcmVzZW50YXRpb24g Zm9yIHRoZSBmYWNlCi0tICBjdlNldEltYWdlUk9JKG9iai0+aHVlLCAqcmVnaW9uKTsKLS0gIGN2 U2V0SW1hZ2VST0kob2JqLT5tYXNrLCAqcmVnaW9uKTsKLS0gIGN2Q2FsY0hpc3QoJm9iai0+aHVl LCBvYmotPmhpc3QsIDAsIG9iai0+bWFzayk7Ci0tICBjdkdldE1pbk1heEhpc3RWYWx1ZShvYmot Pmhpc3QsIDAsICZtYXhfdmFsLCAwLCAwICk7Ci0tICBjdkNvbnZlcnRTY2FsZShvYmotPmhpc3Qt PmJpbnMsIG9iai0+aGlzdC0+YmlucywKLS0gICAgICAgICAgICAgICAgIG1heF92YWwgPyAyNTUu MC9tYXhfdmFsIDogMCwgMCk7Ci0tICBjdlJlc2V0SW1hZ2VST0kob2JqLT5odWUpOwotLSAgY3ZS ZXNldEltYWdlUk9JKG9iai0+bWFzayk7Ci0tICAKLS0gIC8vc3RvcmUgdGhlIHByZXZpb3VzIGZh Y2UgbG9jYXRpb24KLS0gIG9iai0+cHJldl9yZWN0ID0gKnJlZ2lvbjsKLS0KLS0gIHJldHVybiBv Ymo7Ci0tfQotLQotLS8qIFJlbGVhc2UgcmVzb3VyY2VzIGZyb20gdHJhY2tlZCBvYmplY3QuICov Ci0tdm9pZCBGYWNlQmwwcjo6ZGVzdHJveV90cmFja2VkX29iamVjdCAoVHJhY2tlZE9iaiogb2Jq KSB7Ci0tICBjdlJlbGVhc2VJbWFnZSgmb2JqLT5oc3YpOwotLSAgY3ZSZWxlYXNlSW1hZ2UoJm9i ai0+aHVlKTsKLS0gIGN2UmVsZWFzZUltYWdlKCZvYmotPm1hc2spOwotLSAgY3ZSZWxlYXNlSW1h Z2UoJm9iai0+cHJvYik7Ci0tICBjdlJlbGVhc2VIaXN0KCZvYmotPmhpc3QpOwotKyAgY3Y6Ok1h dCBodWVfcm9pKGh1ZSwgcHJldl9yZWN0KTsKLSsgIGN2OjpNYXQgbWFza19yb2kobWFzaywgcHJl dl9yZWN0KTsKLSAKLS0gIGZyZWUob2JqKTsKLSsgIGNvbnN0IGZsb2F0KiByYW5nZSA9IGhpc3Rf cmFuZ2U7Ci0rICBjdjo6Y2FsY0hpc3QoJmh1ZV9yb2ksIDEsIG51bGxwdHIsIG1hc2tfcm9pLCBo aXN0LCAxLCAmaGlzdF9iaW5zLCAmcmFuZ2UpOwotKyAgbm9ybWFsaXplKGhpc3QsIGhpc3QsIDAs IDI1NSwgY3Y6Ok5PUk1fTUlOTUFYKTsKLSB9Ci0gCi0gLyogR2l2ZW4gYW4gaW1hZ2UgYW5kIHRy YWNrZWQgb2JqZWN0LCByZXR1cm4gYm94IHBvc2l0aW9uLiAqLwotLUN2Qm94MkQgRmFjZUJsMHI6 OmNhbXNoaWZ0X3RyYWNrX2ZhY2UgKElwbEltYWdlKiBpbWFnZSwgVHJhY2tlZE9iaiogb2JqKSB7 Ci0tICBDdkNvbm5lY3RlZENvbXAgY29tcG9uZW50czsKLS0KLS0gIC8vY3JlYXRlIGEgbmV3IGh1 ZSBpbWFnZQotLSAgdXBkYXRlX2h1ZV9pbWFnZShpbWFnZSwgb2JqKTsKLS0KLStjdjo6Um90YXRl ZFJlY3QgVHJhY2tlZE9iajo6Y2Ftc2hpZnRfdHJhY2tfZmFjZSgpCi0rewotICAgLy9jcmVhdGUg YSBwcm9iYWJpbGl0eSBpbWFnZSBiYXNlZCBvbiB0aGUgZmFjZSBoaXN0b2dyYW0KLS0gIGN2Q2Fs Y0JhY2tQcm9qZWN0KCZvYmotPmh1ZSwgb2JqLT5wcm9iLCBvYmotPmhpc3QpOwotLSAgY3ZBbmQo b2JqLT5wcm9iLCBvYmotPm1hc2ssIG9iai0+cHJvYiwgMCk7Ci0rICBjb25zdCBmbG9hdCogcmFu Z2UgPSBoaXN0X3JhbmdlOwotKyAgY3Y6OmNhbGNCYWNrUHJvamVjdCgmaHVlLCAxLCBudWxscHRy LCBoaXN0LCBwcm9iLCAmcmFuZ2UpOwotKyAgcHJvYiAmPSBtYXNrOwotIAotICAgLy91c2UgQ2Ft U2hpZnQgdG8gZmluZCB0aGUgY2VudGVyIG9mIHRoZSBuZXcgZmFjZSBwcm9iYWJpbGl0eQotLSAg Y3ZDYW1TaGlmdChvYmotPnByb2IsIG9iai0+cHJldl9yZWN0LAotLSAgICAgICAgICAgICBjdlRl cm1Dcml0ZXJpYShDVl9URVJNQ1JJVF9FUFMgfCBDVl9URVJNQ1JJVF9JVEVSLCAxMCwgMSksCi0t ICAgICAgICAgICAgICZjb21wb25lbnRzLCAmb2JqLT5jdXJyX2JveCk7Ci0rICBjdjo6Um90YXRl ZFJlY3QgY3Vycl9ib3ggPSBDYW1TaGlmdChwcm9iLCBwcmV2X3JlY3QsCi0rICAgIGN2OjpUZXJt Q3JpdGVyaWEoY3Y6OlRlcm1Dcml0ZXJpYTo6RVBTIHwgY3Y6OlRlcm1Dcml0ZXJpYTo6TUFYX0lU RVIsIDEwLCAxICkpOwotIAotLSAgLy91cGRhdGUgZmFjZSBsb2NhdGlvbiBhbmQgYW5nbGUKLS0g IG9iai0+cHJldl9yZWN0ID0gY29tcG9uZW50cy5yZWN0OwotLSAgb2JqLT5jdXJyX2JveC5hbmds ZSA9IC1vYmotPmN1cnJfYm94LmFuZ2xlOwotKyAgLy91cGRhdGUgZmFjZSBsb2NhdGlvbgotKyAg cHJldl9yZWN0ID0gY3Vycl9ib3guYm91bmRpbmdSZWN0KCk7Ci0gCi0tICByZXR1cm4gb2JqLT5j dXJyX2JveDsKLSsgIHJldHVybiBjdXJyX2JveDsKLSB9Ci0gCi0tdm9pZCBGYWNlQmwwcjo6dXBk YXRlX2h1ZV9pbWFnZSAoY29uc3QgSXBsSW1hZ2UqIGltYWdlLCBUcmFja2VkT2JqKiBvYmopIHsK LSt2b2lkIFRyYWNrZWRPYmo6OnVwZGF0ZV9odWVfaW1hZ2UgKGNvbnN0IGN2OjpNYXQmIGltYWdl KSB7Ci0gICAvL2xpbWl0cyBmb3IgY2FsY3VsYXRpbmcgaHVlCi0gICBpbnQgdm1pbiA9IDY1LCB2 bWF4ID0gMjU2LCBzbWluID0gNTU7Ci0tICAKLSsKLSAgIC8vY29udmVydCB0byBIU1YgY29sb3Ig bW9kZWwKLS0gIGN2Q3Z0Q29sb3IoaW1hZ2UsIG9iai0+aHN2LCBDVl9CR1IySFNWKTsKLS0gIAot KyAgY3Y6OmN2dENvbG9yKGltYWdlLCBoc3YsIENWX0JHUjJIU1YpOwotKwotICAgLy9tYXNrIG91 dC1vZi1yYW5nZSB2YWx1ZXMKLS0gIGN2SW5SYW5nZVMob2JqLT5oc3YsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vc291cmNlCi0tICAgICAgICAgICAgIGN2U2NhbGFyKDAsIHNtaW4s IE1JTih2bWluLCB2bWF4KSwgMCksICAvL2xvd2VyIGJvdW5kCi0tICAgICAgICAgICAgIGN2U2Nh bGFyKDE4MCwgMjU2LCBNQVgodm1pbiwgdm1heCkgLDApLCAvL3VwcGVyIGJvdW5kCi0tICAgICAg ICAgICAgIG9iai0+bWFzayk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Rlc3RpbmF0 aW9uCi0tICAKLSsgIGN2OjppblJhbmdlKGhzdiwgICAgICAgICAgICAgICAgICAgICAgICAgICAv L3NvdXJjZQotKyAgICAgIGN2OjpTY2FsYXIoMCwgc21pbiwgTUlOKHZtaW4sIHZtYXgpKSwgIC8v bG93ZXIgYm91bmQKLSsgICAgICBjdjo6U2NhbGFyKDE4MCwgMjU2LCBNQVgodm1pbiwgdm1heCkp LCAvL3VwcGVyIGJvdW5kCi0rICAgICAgbWFzayk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy9kZXN0aW5hdGlvbgotKwotICAgLy9leHRyYWN0IHRoZSBodWUgY2hhbm5lbCwgc3Bs aXQ6IHNyYywgZGVzdCBjaGFubmVscwotLSAgY3ZTcGxpdChvYmotPmhzdiwgb2JqLT5odWUsIDAs IDAsIDAgKTsKLSsgIGN2OjpleHRyYWN0Q2hhbm5lbChoc3YsIGh1ZSwgMCk7Ci0gfQoKZGlmZiAt LWdpdCBhL0J1bXAtb3BlbmN2LXRvLTIuMy1jLUFQSS5wYXRjaCBiL0J1bXAtb3BlbmN2LXRvLTIu My1jLUFQSS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWEzZTUxZC4uMDAw MDAwMAotLS0gYS9CdW1wLW9wZW5jdi10by0yLjMtYy1BUEkucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0NCArMCwwIEBACi1Gcm9tIGZhNDQ1MTkyYTllMzA5MWI4MzdhZDkzZmNjY2E4NjA3NWRh YjgwYjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBOaWNvbGFzIENoYXV2ZXQgPGt3 aXphcnRAZ21haWwuY29tPgotRGF0ZTogTW9uLCAyNSBNYXkgMjAyMCAwOTo1Njo1OSArMDIwMAot U3ViamVjdDogW1BBVENIIDQvNF0gQnVtcCBvcGVuY3YgdG8gMi4zIChjKysgQVBJKQotCi0tLS0K LSBjb25maWd1cmUuYWMgICAgfCAyICstCi0gc3JjL01ha2VmaWxlLmFtIHwgNCArKy0tCi0gMiBm aWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDQyZGQ2MjkuLmJkOGIxY2Yg MTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZpZ3VyZS5hYwotQEAgLTk0LDcg Kzk0LDcgQEAgQUNfRlVOQ19NQUxMT0MKLSBBQ19DSEVDS19GVU5DUyhbZmxvb3IgbWVtc2V0IHBv dyBzcXJ0XSkKLSAKLSBIQVZFX09QRU5DVj1mYWxzZQotLVBLR19DSEVDS19NT0RVTEVTKE9QRU5D Viwgb3BlbmN2ID49IDEuMC4wLCBbSEFWRV9PUEVOQ1Y9dHJ1ZV0sIFt0cnVlXSkKLStQS0dfQ0hF Q0tfTU9EVUxFUyhPUEVOQ1YsIG9wZW5jdiA+PSAyLjMsIFtIQVZFX09QRU5DVj10cnVlXSwgW3Ry dWVdKQotIEFNX0NPTkRJVElPTkFMKFtIQVZFX09QRU5DVl0sIFt0ZXN0IHgkSEFWRV9PUEVOQ1Yg PSB4dHJ1ZV0pCi0gaWYgdGVzdCB4JEhBVkVfT1BFTkNWID0geHRydWU7IHRoZW4KLSAjICAgIE9Q RU5DVl9DRkxBR1M9IiRPUEVOQ1ZfQ0ZMQUdTIC1ET1BFTkNWX1BSRUZJWD1gcGtnLWNvbmZpZyBv cGVuY3YgLS12YXJpYWJsZT1wcmVmaXhgIgotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBi L3NyYy9NYWtlZmlsZS5hbQotaW5kZXggOWU4YTljNC4uYzc3ODMxMiAxMDA2NDQKLS0tLSBhL3Ny Yy9NYWtlZmlsZS5hbQotKysrIGIvc3JjL01ha2VmaWxlLmFtCi1AQCAtMTU2LDExICsxNTYsMTEg QEAgZW5kaWYKLSBpZiBIQVZFX09QRU5DVgotIHBsdWdpbl9MVExJQlJBUklFUyArPSBmYWNlYmww ci5sYQotIGZhY2VibDByX2xhX1NPVVJDRVMgPSBmaWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3Bw Ci0tZmFjZWJsMHJfbGFfQ0ZMQUdTID0gQE9QRU5DVl9DRkxBR1NAIEBDRkxBR1NAIAotK2ZhY2Vi bDByX2xhX0NGTEFHUyA9IEBPUEVOQ1ZfQ1hYRkxBR1NAIEBDRkxBR1NACi0gZmFjZWJsMHJfbGFf TElCQUREID0gQE9QRU5DVl9MSUJTQAotIHBsdWdpbl9MVExJQlJBUklFUyArPSBmYWNlZGV0ZWN0 LmxhCi0gZmFjZWRldGVjdF9sYV9TT1VSQ0VTID0gZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVj dC5jcHAKLS1mYWNlZGV0ZWN0X2xhX0NGTEFHUyA9IEBPUEVOQ1ZfQ0ZMQUdTQCBAQ0ZMQUdTQAot K2ZhY2VkZXRlY3RfbGFfQ0ZMQUdTID0gQE9QRU5DVl9DWFhGTEFHU0AgQENGTEFHU0AKLSBmYWNl ZGV0ZWN0X2xhX0xJQkFERCA9IEBPUEVOQ1ZfTElCU0AKLSBlbmRpZgotIAotLS0gCi0yLjI1LjQK LQoKZGlmZiAtLWdpdCBhL1N3aXRjaC10by1PcGVuQ1Y0LWVudW1zLnBhdGNoIGIvU3dpdGNoLXRv LU9wZW5DVjQtZW51bXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjN2I2 YjcuLjAwMDAwMDAKLS0tIGEvU3dpdGNoLXRvLU9wZW5DVjQtZW51bXMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw0NiArMCwwIEBACi1Gcm9tIDc5NmQxMjI1ODcyMDdhZmJmMGMzNWM3NWVkZjZl OTU4OGVkYzBiOTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBOaWNvbGFzIENoYXV2 ZXQgPGt3aXphcnRAZ21haWwuY29tPgotRGF0ZTogTW9uLCAyNSBNYXkgMjAyMCAwOTo1MToxNiAr MDIwMAotU3ViamVjdDogW1BBVENIIDMvNF0gU3dpdGNoIHRvIE9wZW5DVjQgZW51bXMKLQotU2ln bmVkLW9mZi1ieTogTmljb2xhcyBDaGF1dmV0IDxrd2l6YXJ0QGdtYWlsLmNvbT4KLS0tLQotIHNy Yy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIuY3BwIHwgOCArKysrLS0tLQotIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMv ZmlsdGVyL2ZhY2VibDByL2ZhY2VibDByLmNwcCBiL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJs MHIuY3BwCi1pbmRleCA5NjIyMmQ4Li5mYTIxYTM1IDEwMDY0NAotLS0tIGEvc3JjL2ZpbHRlci9m YWNlYmwwci9mYWNlYmwwci5jcHAKLSsrKyBiL3NyYy9maWx0ZXIvZmFjZWJsMHIvZmFjZWJsMHIu Y3BwCi1AQCAtMjA5LDcgKzIwOSw3IEBAIHN0ZDo6dmVjdG9yPGN2OjpSZWN0PiBGYWNlQmwwcjo6 ZGV0ZWN0X2ZhY2UoKQotIAotICAgICAgLy91c2UgYW4gZXF1YWxpemVkIGdyYXkgaW1hZ2UgZm9y IGJldHRlciByZWNvZ25pdGlvbgotICAgICAgY3Y6Ok1hdCBncmF5OwotLSAgICAgY3Y6OmN2dENv bG9yKGltYWdlLCBncmF5LCBDVl9CR1IyR1JBWSk7Ci0rICAgICBjdjo6Y3Z0Q29sb3IoaW1hZ2Us IGdyYXksIGN2OjpDT0xPUl9CR1IyR1JBWSk7Ci0gICAgICBjdjo6ZXF1YWxpemVIaXN0KGdyYXks IGdyYXkpOwotIAotICAgICAgIC8vZ2V0IGEgc2VxdWVuY2Ugb2YgZmFjZXMgaW4gaW1hZ2UKLUBA IC0yMTgsOCArMjE4LDggQEAgc3RkOjp2ZWN0b3I8Y3Y6OlJlY3Q+IEZhY2VCbDByOjpkZXRlY3Rf ZmFjZSgpCi0gICAgICAgY2FzY2FkZS5kZXRlY3RNdWx0aVNjYWxlKGdyYXksIGZhY2VzLAotICAg ICAgICAgIHNlYXJjaF9zY2FsZSAqIDEwLjAsCi0gICAgICAgICAgY3ZSb3VuZChuZWlnaGJvcnMg KiAxMDApLAotLSAgICAgICAgIENWX0hBQVJfRklORF9CSUdHRVNUX09CSkVDVHwvL3NpbmNlIHdl IHRyYWNrIG9ubHkgdGhlIGZpcnN0LCBnZXQgdGhlIGJpZ2dlc3QKLS0gICAgICAgICBDVl9IQUFS X0RPX0NBTk5ZX1BSVU5JTkcsICAvL3NraXAgcmVnaW9ucyB1bmxpa2VseSB0byBjb250YWluIGEg ZmFjZQotKyAgICAgICAgIGN2OjpDQVNDQURFX0ZJTkRfQklHR0VTVF9PQkpFQ1R8Ly9zaW5jZSB3 ZSB0cmFjayBvbmx5IHRoZSBmaXJzdCwgZ2V0IHRoZSBiaWdnZXN0Ci0rICAgICAgICAgY3Y6OkNB U0NBREVfRE9fQ0FOTllfUFJVTklORywgIC8vc2tpcCByZWdpb25zIHVubGlrZWx5IHRvIGNvbnRh aW4gYSBmYWNlCi0gICAgICAgICAgY3Y6OlNpemUobWluLCBtaW4pKTsKLSAKLSAgICAgcmV0dXJu IGZhY2VzOwotQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lkIFRyYWNrZWRPYmo6OnVwZGF0ZV9odWVf aW1hZ2UgKGNvbnN0IGN2OjpNYXQmIGltYWdlKSB7Ci0gICBpbnQgdm1pbiA9IDY1LCB2bWF4ID0g MjU2LCBzbWluID0gNTU7Ci0gCi0gICAvL2NvbnZlcnQgdG8gSFNWIGNvbG9yIG1vZGVsCi0tICBj djo6Y3Z0Q29sb3IoaW1hZ2UsIGhzdiwgQ1ZfQkdSMkhTVik7Ci0rICBjdjo6Y3Z0Q29sb3IoaW1h Z2UsIGhzdiwgY3Y6OkNPTE9SX0JHUjJIU1YpOwotIAotICAgLy9tYXNrIG91dC1vZi1yYW5nZSB2 YWx1ZXMKLSAgIGN2OjppblJhbmdlKGhzdiwgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3Nv dXJjZQotLS0gCi0yLjI1LjQKLQoKZGlmZiAtLWdpdCBhL2IyN2YwM2M4ZDUxYzM0Y2Q1Zjc5ZTAz OTliYjAwMjRjYTk0ZWE4MTMucGF0Y2ggYi9iMjdmMDNjOGQ1MWMzNGNkNWY3OWUwMzk5YmIwMDI0 Y2E5NGVhODEzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWI4ZTAxLi4w MDAwMDAwCi0tLSBhL2IyN2YwM2M4ZDUxYzM0Y2Q1Zjc5ZTAzOTliYjAwMjRjYTk0ZWE4MTMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9tIGIyN2YwM2M4ZDUxYzM0Y2Q1 Zjc5ZTAzOTliYjAwMjRjYTk0ZWE4MTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiA9 P1VURi04P3E/SU9oYW5uZXM9MjBtPTIwem09QzM9QjZsbmlnPz0gPHptb2VsbmlnQGllbS5hdD4K LURhdGU6IFR1ZSwgMTAgRGVjIDIwMTkgMTU6MDE6NTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0g ZmFjZWRldGVjdDogaW5jbHVkZSBpbWdwcm9jL2ltZ3Byb2NfYy5oIHdoZW4gdXNpbmcgT3BlbkNW LTQrCi0KLWltZ3Byb2NfYy5oIGRlZmluZXMgdGhlIGNvbnN0YW50cyBDVl9CR1IyR1JBWSwgQ1Zf RklMTEVEICYgQ1ZfQUEuCi0KLWl0IGFsc28gaW5jbHVkZXMgImNvcmUvY29yZV9jLmgiLCB3aGlj aCB0aGVuIHByb3ZpZGVzCi0gIGBjdkdldFRpY2tDb3VudCgpYCBhbmQgYGN2R2V0VGlja0ZyZXF1 ZW5jeSgpYAotLS0tCi0gc3JjL2ZpbHRlci9mYWNlZGV0ZWN0L2ZhY2VkZXRlY3QuY3BwIHwgMyAr KysKLSAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9zcmMv ZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAgYi9zcmMvZmlsdGVyL2ZhY2VkZXRlY3Qv ZmFjZWRldGVjdC5jcHAKLWluZGV4IDE5MDY5NjIuLjRlN2Q0NzYgMTAwNjQ0Ci0tLS0gYS9zcmMv ZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAKLSsrKyBiL3NyYy9maWx0ZXIvZmFjZWRl dGVjdC9mYWNlZGV0ZWN0LmNwcAotQEAgLTIxLDYgKzIxLDkgQEAKLSAjaW5jbHVkZSA8c3RkaW8u aD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0gI2luY2x1ZGUgPG9wZW5jdjIvb3BlbmN2LmhwcD4K LSsjaWYgQ1ZfTUFKT1JfVkVSU0lPTiA+PSA0Ci0rIyBpbmNsdWRlIDxvcGVuY3YyL2ltZ3Byb2Mv aW1ncHJvY19jLmg+Ci0rI2VuZGlmCi0gI2luY2x1ZGUgImZyZWkwci5ocHAiCi0gI2luY2x1ZGUg ImZyZWkwcl9tYXRoLmgiCi0gCgpkaWZmIC0tZ2l0IGEvYjQ1NjJkYjRjYTIwZmVmY2NlNjJkYmU3 YjI1NWMyYjc1OTUxODUzZS5wYXRjaCBiL2I0NTYyZGI0Y2EyMGZlZmNjZTYyZGJlN2IyNTVjMmI3 NTk1MTg1M2UucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjNzM5ZGQuLjAw MDAwMDAKLS0tIGEvYjQ1NjJkYjRjYTIwZmVmY2NlNjJkYmU3YjI1NWMyYjc1OTUxODUzZS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLUZyb20gYjQ1NjJkYjRjYTIwZmVmY2Nl NjJkYmU3YjI1NWMyYjc1OTUxODUzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFJh cGhhZWwgR3JhZiA8ckB1bmRlZmluZWQuY2g+Ci1EYXRlOiBUaHUsIDUgTWFyIDIwMjAgMTU6Mzk6 MzcgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gZmFjZWRldGVjdDogU3VwcG9ydCBvcGVuY3Y0Ci0K LS0tLQotIHNyYy9maWx0ZXIvZmFjZWRldGVjdC9mYWNlZGV0ZWN0LmNwcCB8IDEyICsrKysrKy0t LS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9zcmMvZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAgYi9zcmMv ZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAKLWluZGV4IDE5MDY5NjIuLjU4MGI1M2Ig MTAwNjQ0Ci0tLS0gYS9zcmMvZmlsdGVyL2ZhY2VkZXRlY3QvZmFjZWRldGVjdC5jcHAKLSsrKyBi L3NyYy9maWx0ZXIvZmFjZWRldGVjdC9mYWNlZGV0ZWN0LmNwcAotQEAgLTE0OCwxMyArMTQ4LDEz IEBAIGNsYXNzIEZhY2VEZXRlY3Q6IHB1YmxpYyBmcmVpMHI6OmZpbHRlcgotICAgICAgICAgICAg IGNvdW50ID0gMTsgICAvLyByZXNldCB0aGUgcmVjaGVjayBjb3VudGVyCi0gICAgICAgICAgICAg aWYgKG9iamVjdHMuc2l6ZSgpID4gMCkgLy8gcmVzZXQgdGhlIGxpc3Qgb2Ygb2JqZWN0cwotICAg ICAgICAgICAgICAgICBvYmplY3RzLmNsZWFyKCk7Ci0tICAgICAgICAgICAgZG91YmxlIGVsYXBz ZWQgPSAoZG91YmxlKSBjdkdldFRpY2tDb3VudCgpOwotKyAgICAgICAgICAgIGRvdWJsZSBlbGFw c2VkID0gKGRvdWJsZSkgY3Y6OmdldFRpY2tDb3VudCgpOwotIAotICAgICAgICAgICAgIG9iamVj dHMgPSBkZXRlY3QoKTsKLSAKLSAgICAgICAgICAgICAvLyB1c2UgZGV0ZWN0aW9uIHRpbWUgdG8g dGhyb3R0bGUgZnJlcXVlbmN5IG9mIHJlLWRldGVjdCB2cy4gcmVkcmF3IChhdXRvbWF0aWMgcmVj aGVjaykKLS0gICAgICAgICAgICBlbGFwc2VkID0gY3ZHZXRUaWNrQ291bnQoKSAtIGVsYXBzZWQ7 Ci0tICAgICAgICAgICAgZWxhcHNlZCA9IGVsYXBzZWQgLyAoKGRvdWJsZSkgY3ZHZXRUaWNrRnJl cXVlbmN5KCkgKiAxMDAwLjApOwotKyAgICAgICAgICAgIGVsYXBzZWQgPSBjdjo6Z2V0VGlja0Nv dW50KCkgLSBlbGFwc2VkOwotKyAgICAgICAgICAgIGVsYXBzZWQgPSBlbGFwc2VkIC8gKChkb3Vi bGUpIGN2OjpnZXRUaWNrRnJlcXVlbmN5KCkgKiAxMDAwLjApOwotIAotICAgICAgICAgICAgIC8v IEF1dG9tYXRpYyByZWNoZWNrIHVzZXMgYW4gdW5kb2N1bWVudGVkIG5lZ2F0aXZlIHBhcmFtZXRl ciB2YWx1ZSwKLSAgICAgICAgICAgICAvLyB3aGljaCBpcyBub3QgY29tcGxpYW50LCBidXQgdGVj aG5pY2FsbHkgZmVhc2libGUuCi1AQCAtMTg4LDcgKzE4OCw3IEBAIGNsYXNzIEZhY2VEZXRlY3Q6 IHB1YmxpYyBmcmVpMHI6OmZpbHRlcgotICAgICAgICAgfQotIAotICAgICAgICAgLy8gdXNlIGFu IGVxdWFsaXplZCBncmF5c2NhbGUgdG8gaW1wcm92ZSBkZXRlY3Rpb24KLS0gICAgICAgIGN2Ojpj dnRDb2xvcihpbWFnZV9yb2ksIGdyYXksIENWX0JHUjJHUkFZKTsKLSsgICAgICAgIGN2OjpjdnRD b2xvcihpbWFnZV9yb2ksIGdyYXksIGN2OjpDT0xPUl9CR1IyR1JBWSk7Ci0gCi0gICAgICAgICAv LyB1c2UgYSBzbWFsbGVyIGltYWdlIHRvIGltcHJvdmUgcGVyZm9ybWFuY2UKLSAgICAgICAgIGN2 OjpyZXNpemUoZ3JheSwgc21hbGwsIGN2OjpTaXplKGN2Um91bmQoZ3JheS5jb2xzICogc2NhbGUp LCBjdlJvdW5kKGdyYXkucm93cyAqIHNjYWxlKSkpOwotQEAgLTI0OSw4ICsyNDksOCBAQCBjbGFz cyBGYWNlRGV0ZWN0OiBwdWJsaWMgZnJlaTByOjpmaWx0ZXIKLSAgICAgICAgIHsKLSAgICAgICAg ICAgICBjdjo6UmVjdCogciA9IChjdjo6UmVjdCopICZvYmplY3RzW2ldOwotICAgICAgICAgICAg IGN2OjpQb2ludCBjZW50ZXI7Ci0tICAgICAgICAgICAgaW50IHRoaWNrbmVzcyA9IHN0cm9rZSA8 PSAwPyBDVl9GSUxMRUQgOiBjdlJvdW5kKHN0cm9rZSAqIDEwMCk7Ci0tICAgICAgICAgICAgaW50 IGxpbmV0eXBlID0gYW50aWFsaWFzPyBDVl9BQSA6IDg7Ci0rICAgICAgICAgICAgaW50IHRoaWNr bmVzcyA9IHN0cm9rZSA8PSAwPyBjdjo6RklMTEVEIDogY3ZSb3VuZChzdHJva2UgKiAxMDApOwot KyAgICAgICAgICAgIGludCBsaW5ldHlwZSA9IGFudGlhbGlhcz8gY3Y6OkxJTkVfQUEgOiA4Owot ICAgICAgICAgICAgIAotICAgICAgICAgICAgIGNlbnRlci54ID0gY3ZSb3VuZCgoci0+eCArIHIt PndpZHRoICogMC41KSAvIHNjYWxlKTsKLSAgICAgICAgICAgICBjZW50ZXIueSA9IGN2Um91bmQo KHItPnkgKyByLT5oZWlnaHQgKiAwLjUpIC8gc2NhbGUpOwoKZGlmZiAtLWdpdCBhL2I4ZDRlMDU5 NWM4MTM0YjJiM2M3ZTgyZWNiOGRhMzZjOTM1NGY2OGEucGF0Y2ggYi9iOGQ0ZTA1OTVjODEzNGIy YjNjN2U4MmVjYjhkYTM2YzkzNTRmNjhhLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBkM2UzNjE2Li4wMDAwMDAwCi0tLSBhL2I4ZDRlMDU5NWM4MTM0YjJiM2M3ZTgyZWNiOGRh MzZjOTM1NGY2OGEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi1Gcm9tIGI4 ZDRlMDU5NWM4MTM0YjJiM2M3ZTgyZWNiOGRhMzZjOTM1NGY2OGEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBEYW4gRGVubmVkeSA8ZGFuQGRlbm5lZHkub3JnPgotRGF0ZTogU2F0LCAx MSBBcHIgMjAyMCAxMTo1NDozNyAtMDcwMAotU3ViamVjdDogW1BBVENIXSBmaXggYzBybmVycyBm aWx0ZXIgdG9wIGFuZCBsZWZ0IGVkZ2UgYXJ0aWZhY3RzIGF0IGRlZmF1bHQKLSBmdWxsIHNpemUK LQotLS0tCi0gc3JjL2ZpbHRlci9jMHJuZXJzL2Mwcm5lcnMuYyB8IDE4ICsrKysrKysrKysrKysr KysrKwotIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9z cmMvZmlsdGVyL2Mwcm5lcnMvYzBybmVycy5jIGIvc3JjL2ZpbHRlci9jMHJuZXJzL2Mwcm5lcnMu YwotaW5kZXggZTI3MDI1My4uZjUxMDkyNiAxMDA2NDQKLS0tLSBhL3NyYy9maWx0ZXIvYzBybmVy cy9jMHJuZXJzLmMKLSsrKyBiL3NyYy9maWx0ZXIvYzBybmVycy9jMHJuZXJzLmMKLUBAIC05NzQs NiArOTc0LDggQEAgdm9pZCBmMHJfZ2V0X3BhcmFtX3ZhbHVlKGYwcl9pbnN0YW5jZV90IGluc3Rh bmNlLCBmMHJfcGFyYW1fdCBwYXJhbSwgaW50IHBhcmFtX2kKLSAJfQotIH0KLSAKLSsjZGVmaW5l IEVQU0lMT04gMWUtNWYKLSsjZGVmaW5lIEVRVUlWQUxFTlRfRkxPQVRTKHgsIHkpIChmYWJzZigo eCkgLSAoeSkpIDwgRVBTSUxPTikKLSAKLSAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB2b2lkIGYwcl91cGRhdGUoZjByX2luc3RhbmNlX3QgaW5z dGFuY2UsIGRvdWJsZSB0aW1lLCBjb25zdCB1aW50MzJfdCogaW5mcmFtZSwgdWludDMyX3QqIG91 dGZyYW1lKQotQEAgLTk4Myw2ICs5ODUsMjIgQEAgdm9pZCBmMHJfdXBkYXRlKGYwcl9pbnN0YW5j ZV90IGluc3RhbmNlLCBkb3VibGUgdGltZSwgY29uc3QgdWludDMyX3QqIGluZnJhbWUsIHUKLSAK LSAJcD0oaW5zdCopaW5zdGFuY2U7Ci0gCi0rICAgIGlmIChFUVVJVkFMRU5UX0ZMT0FUUyhwLT54 MSwgMC4zMzMzMzNmKSAmJgotKyAgICAgICAgRVFVSVZBTEVOVF9GTE9BVFMocC0+eTEsIDAuMzMz MzMzZikgJiYKLSsgICAgICAgIEVRVUlWQUxFTlRfRkxPQVRTKHAtPngyLCAwLjY2NjY2NmYpICYm Ci0rICAgICAgICBFUVVJVkFMRU5UX0ZMT0FUUyhwLT55MiwgMC4zMzMzMzNmKSAmJgotKyAgICAg ICAgRVFVSVZBTEVOVF9GTE9BVFMocC0+eDMsIDAuNjY2NjY2ZikgJiYKLSsgICAgICAgIEVRVUlW QUxFTlRfRkxPQVRTKHAtPnkzLCAwLjY2NjY2NmYpICYmCi0rICAgICAgICBFUVVJVkFMRU5UX0ZM T0FUUyhwLT54NCwgMC4zMzMzMzNmKSAmJgotKyAgICAgICAgRVFVSVZBTEVOVF9GTE9BVFMocC0+ eTQsIDAuNjY2NjY2ZikgJiYKLSsgICAgICAgICghcC0+c3RyZXRjaE9OIHx8ICgKLSsgICAgICAg ICAgICBFUVVJVkFMRU5UX0ZMT0FUUyhwLT5zdHJldGNoeCwgMC41ZikgJiYKLSsgICAgICAgICAg ICBFUVVJVkFMRU5UX0ZMT0FUUyhwLT5zdHJldGNoeSwgMC41ZikpKSkKLSsgICAgewotKyAgICAg ICAgbWVtY3B5KG91dGZyYW1lLCBpbmZyYW1lLCBwLT53ICogcC0+aCAqIDQpOwotKyAgICAgICAg cmV0dXJuOwotKyAgICB9Ci0rICAgICAgICAgICAgCi0gCWlmIChwLT5tYXBJc0RpcnR5KSB7Ci0g CQl0b2NrYTIgdm9nWzRdOwotIAkJaW50IG5vdHNbNF07Cg==