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: Tom Callaway To: git-commits@fedoraproject.org Subject: [rpms/chromium] epel9-next: Merge #32 `Fix for systems with page size larger than 4k` Date: Fri, 07 Aug 2026 16:04:54 GMT Message-ID: <178611869482.1.11112899029926028299.rpms-chromium-fc64fd023d2c@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9-next X-Git-Rev: fc64fd023d2cd6227b0cad37ce127ccc4e1716df QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDktbmV4dApDb21taXQgOiBmYzY0ZmQwMjNkMmNkNjIyN2IwY2FkMzdjZTEyN2Nj YzRlMTcxNmRmCkF1dGhvciA6IFRvbSBDYWxsYXdheSA8c3BvdEBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAyMy0wMy0wN1QxMToxMjozMiswMDowMApTdGF0cyAgOiArMTI4Ly0zMjI0IGlu IDIzIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9j aHJvbWl1bS9jL2ZjNjRmZDAyM2QyY2Q2MjI3YjBjYWQzN2NlMTI3Y2NjNGUxNzE2ZGY/YnJhbmNo PWVwZWw5LW5leHQKCkxvZzoKTWVyZ2UgIzMyIGBGaXggZm9yIHN5c3RlbXMgd2l0aCBwYWdlIHNp emUgbGFyZ2VyIHRoYW4gNGtgCgotLS0KZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExMC1MYXJnZXJU aGFuNGsucGF0Y2ggYi9jaHJvbWl1bS0xMTAtTGFyZ2VyVGhhbjRrLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3NGY0ODcKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJv bWl1bS0xMTAtTGFyZ2VyVGhhbjRrLnBhdGNoCkBAIC0wLDAgKzEsODYgQEAKK0Zyb20gOTZlZTJh OGUyMGJiN2E3YzRmYjE5ZTI3ZGMzMWZmNWM2YTQ3Mjg0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IFJ5YW4gR29uemFsZXogPHJ5bWcxOUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDA2 IE1hciAyMDIzIDIwOjIyOjI1IC0wNjAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZHJlc3NUcmFja2Vy TGludXg6IEluY3JlYXNlIHRoZSBtZXNzYWdlIGJ1ZmZlciBzaXplCisKK09uIG5vbi00ay1wYWdl IHN5c3RlbXMsIHRoZSBtZXNzYWdlIHNpemVzIG1heSBiZSB0b28gbGFyZ2UgdG8gZml0IGludG8K K3RoZSBidWZmZXIsIHJlc3VsdGluZyBpbiBNU0dfVFJVTkMuIEluc3RlYWQgb2YgdXNpbmcgdGhl IGZpeGVkIDRrYiBzaXplLAorZm9sbG93IHRoZSBrZXJuZWwgZG9jdW1lbnRhdGlvbiBndWlkZWxp bmVzIGFzIHRvIGhvdyBsYXJnZSB0aGUgYnVmZmVyCitzaG91bGQgYmUuCisKK09yaWdpbmFsbHkg Zm91bmQgYnkgQXNhaGkgTGluYToKKworaHR0cHM6Ly92dC5zb2NpYWwvQGxpbmEvMTA5OTc2ODky NzU4NjgwODIyCisKK0J1ZzogTm9uZQorQ2hhbmdlLUlkOiBJNDc5MDQzNTE5MDE2N2E3MDZmYTc0 OTBhYjU3NzA2ZGIxZjRhNjEyMAorLS0tCisKK2RpZmYgLS1naXQgYS9uZXQvYmFzZS9hZGRyZXNz X3RyYWNrZXJfbGludXguY2MgYi9uZXQvYmFzZS9hZGRyZXNzX3RyYWNrZXJfbGludXguY2MKK2lu ZGV4IDQ5NzZjYWUuLmYxYTFmZmYgMTAwNjQ0CistLS0gYS9uZXQvYmFzZS9hZGRyZXNzX3RyYWNr ZXJfbGludXguY2MKKysrKyBiL25ldC9iYXNlL2FkZHJlc3NfdHJhY2tlcl9saW51eC5jYworQEAg LTE0LDYgKzE0LDcgQEAKKyAjaW5jbHVkZSAiYmFzZS9maWxlcy9zY29wZWRfZmlsZS5oIgorICNp bmNsdWRlICJiYXNlL2Z1bmN0aW9uYWwvY2FsbGJhY2tfaGVscGVycy5oIgorICNpbmNsdWRlICJi YXNlL2xvZ2dpbmcuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcGFnZV9zaXplLmgiCisgI2lu Y2x1ZGUgImJhc2UvcG9zaXgvZWludHJfd3JhcHBlci5oIgorICNpbmNsdWRlICJiYXNlL3Rhc2sv Y3VycmVudF90aHJlYWQuaCIKKyAjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvc2NvcGVkX2Jsb2Nr aW5nX2NhbGwuaCIKK0BAIC0zMjMsOCArMzI0LDMwIEBACisgICAqYWRkcmVzc19jaGFuZ2VkID0g ZmFsc2U7CisgICAqbGlua19jaGFuZ2VkID0gZmFsc2U7CisgICAqdHVubmVsX2NoYW5nZWQgPSBm YWxzZTsKKy0gIGNoYXIgYnVmZmVyWzQwOTZdOworICAgYm9vbCBmaXJzdF9sb29wID0gdHJ1ZTsK KysKKysgIC8vIFZhcnlpbmcgc291cmNlcyBoYXZlIGRpZmZlcmVudCBvcGluaW9ucyByZWdhcmRp bmcgdGhlIGJ1ZmZlciBzaXplIG5lZWRlZAorKyAgLy8gZm9yIG5ldGxpbmsgbWVzc2FnZXMgdG8g YXZvaWQgdHJ1bmNhdGlvbjoKKysgIC8vIC0gVGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb24gb24g bmV0bGluayBzYXlzIG1lc3NhZ2VzIGFyZSBnZW5lcmFsbHkgOGtiCisrICAvLyAgIG9yIHRoZSBz eXN0ZW0gcGFnZSBzaXplLCB3aGljaGV2ZXIgaXMgKmxhcmdlcio6CisrICAvLyAgIGh0dHBzOi8v d3d3Lmtlcm5lbC5vcmcvZG9jL2h0bWwvdjYuMi91c2Vyc3BhY2UtYXBpL25ldGxpbmsvaW50cm8u aHRtbCNidWZmZXItc2l6aW5nCisrICAvLyAtIFRoZSBrZXJuZWwgaGVhZGVycyB3b3VsZCBpbXBs eSB0aGF0IG1lc3NhZ2VzIGFyZSBnZW5lcmFsbHkgdGhlIHN5c3RlbQorKyAgLy8gICBwYWdlIHNp emUgb3IgOGtiLCB3aGljaGV2ZXIgaXMgKnNtYWxsZXIqOgorKyAgLy8gICBodHRwczovL2dpdC5r ZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9zdGFibGUvbGludXguZ2l0L3RyZWUv aW5jbHVkZS9saW51eC9uZXRsaW5rLmg/aD12Ni4yLjIjbjIyNgorKyAgLy8gICAobGlibW5sIGZv bGxvd3MgdGhpcy4pCisrICAvLyAtIFRoZSBuZXRsaW5rKDcpIG1hbiBwYWdlJ3MgZXhhbXBsZSBh bHdheXMgdXNlcyBhIGZpeGVkIHNpemUgOGtiIGJ1ZmZlcjoKKysgIC8vICAgaHR0cHM6Ly9tYW43 Lm9yZy9saW51eC9tYW4tcGFnZXMvbWFuNy9uZXRsaW5rLjcuaHRtbAorKyAgLy8gSGVyZSwgd2Ug Zm9sbG93IHRoZSBndWlkZWxpbmVzIGluIHRoZSBkb2N1bWVudGF0aW9uLCBmb3IgdHdvIHByaW1h cnkKKysgIC8vIHJlYXNvbnM6CisrICAvLyAtIEVycmluZyBvbiB0aGUgc2lkZSBvZiBhIGxhcmdl ciBzaXplIGlzIHRoZSBzYWZlciB3YXkgdG8gZ28gdG8gYXZvaWQKKysgIC8vICAgTVNHX1RSVU5D LgorKyAgLy8gLSBTaW5jZSB0aGlzIGlzIGhlYXAtYWxsb2NhdGVkIGFueXdheSwgdGhlcmUncyBu byByaXNrIHRvIHRoZSBzdGFjayBieQorKyAgLy8gICB1c2luZyB0aGUgbGFyZ2VyIHNpemUuCisr CisrICBjb25zdGV4cHIgc2l6ZV90IGtNaW5OZXRsaW5rQnVmZmVyU2l6ZSA9IDggKiAxMDI0Owor KyAgc3RkOjp2ZWN0b3I8Y2hhcj4gYnVmZmVyKAorKyAgICAgIHN0ZDo6bWF4KGJhc2U6OkdldFBh Z2VTaXplKCksIGtNaW5OZXRsaW5rQnVmZmVyU2l6ZSkpOworKworICAgeworICAgICBhYnNsOjpv cHRpb25hbDxiYXNlOjpTY29wZWRCbG9ja2luZ0NhbGw+IGJsb2NraW5nX2NhbGw7CisgICAgIGlm ICh0cmFja2luZ18pIHsKK0BAIC0zMzQsOSArMzU3LDEwIEBACisgICAgIH0KKyAKKyAgICAgZm9y ICg7OykgeworLSAgICAgIGludCBydiA9IEhBTkRMRV9FSU5UUihyZWN2KG5ldGxpbmtfZmRfLmdl dCgpLCBidWZmZXIsIHNpemVvZihidWZmZXIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEJsb2NrIHRoZSBmaXJzdCB0aW1lIHRocm91Z2ggbG9vcC4KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9sb29wID8gMCA6IE1TR19ET05UV0FJVCkpOwor KyAgICAgIGludCBydiA9CisrICAgICAgICAgIEhBTkRMRV9FSU5UUihyZWN2KG5ldGxpbmtfZmRf LmdldCgpLCBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBCbG9jayB0aGUgZmlyc3QgdGltZSB0aHJvdWdoIGxvb3AuCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X2xvb3AgPyAwIDogTVNHX0RPTlRXQUlUKSk7Cisg ICAgICAgZmlyc3RfbG9vcCA9IGZhbHNlOworICAgICAgIGlmIChydiA9PSAwKSB7CisgICAgICAg ICBMT0coRVJST1IpIDw8ICJVbmV4cGVjdGVkIHNodXRkb3duIG9mIE5FVExJTksgc29ja2V0LiI7 CitAQCAtMzQ4LDcgKzM3Miw4IEBACisgICAgICAgICBQTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRv IHJlY3YgZnJvbSBuZXRsaW5rIHNvY2tldCI7CisgICAgICAgICByZXR1cm47CisgICAgICAgfQor LSAgICAgIEhhbmRsZU1lc3NhZ2UoYnVmZmVyLCBydiwgYWRkcmVzc19jaGFuZ2VkLCBsaW5rX2No YW5nZWQsIHR1bm5lbF9jaGFuZ2VkKTsKKysgICAgICBIYW5kbGVNZXNzYWdlKGJ1ZmZlci5kYXRh KCksIHJ2LCBhZGRyZXNzX2NoYW5nZWQsIGxpbmtfY2hhbmdlZCwKKysgICAgICAgICAgICAgICAg ICAgIHR1bm5lbF9jaGFuZ2VkKTsKKyAgICAgfQorICAgfQorICAgaWYgKCpsaW5rX2NoYW5nZWQg fHwgKmFkZHJlc3NfY2hhbmdlZCkKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS5zcGVjIGIvY2hyb21p dW0uc3BlYwppbmRleCA4MWE2YzY0Li40NGU5YjU0IDEwMDY0NAotLS0gYS9jaHJvbWl1bS5zcGVj CisrKyBiL2Nocm9taXVtLnNwZWMKQEAgLTM2NSw2ICszNjUsOCBAQCBQYXRjaDEyMjogY2hyb21p dW0tMTA5LWdjYzEzLnBhdGNoCiAjIFBhdGNoZXMgYnkgU3RlcGhhbiBIYXJ0bWFubiwgaHR0cHM6 Ly9naXRodWIuY29tL3N0aGEwOS9jaHJvbWl1bS1wYXRjaGVzCiBQYXRjaDEzMDogY2hyb21pdW0t MTAzLVZpcnR1YWxDdXJzb3Itc3RkLWxheW91dC5wYXRjaAogCitQYXRjaDE0NjogY2hyb21pdW0t MTEwLUxhcmdlclRoYW40ay5wYXRjaAorCiAjIFZBQVBJCiAjIFVwc3RyZWFtIHR1cm5lZCBWQUFQ SSBvbiBpbiBMaW51eCBpbiA4NgogUGF0Y2gyMDI6IGNocm9taXVtLTEwNC4wLjUxMTIuMTAxLWVu YWJsZS1oYXJkd2FyZS1hY2NlbGVyYXRlZC1tanBlZy5wYXRjaApAQCAtOTU3LDYgKzk1OSw4IEBA IHVkZXYuCiAKICVwYXRjaDEzMCAtcDEgLWIgLlZpcnR1YWxDdXJzb3Itc3RkLWxheW91dAogCisl cGF0Y2gxNDYgLXAxIC1iIC5MYXJnZXJUaGFuNGsKKwogJWlmICV7dXNlX3F0fQogJXBhdGNoMTIx IC1wMSAtYiAuZW5hYmxlLWFsbG93cXQKICVlbmRpZgoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTEw NS4wLjUxOTUuNTItdXBkYXRlLXdheWxhbmQtY2xpZW50LWNvcmUucGF0Y2ggYi9jaHJvbWl1bS0x MDUuMC41MTk1LjUyLXVwZGF0ZS13YXlsYW5kLWNsaWVudC1jb3JlLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA4NmM1YzIyLi4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTEwNS4w LjUxOTUuNTItdXBkYXRlLXdheWxhbmQtY2xpZW50LWNvcmUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwzMSArMCwwIEBACi1kaWZmIC11cCBjaHJvbWl1bS0xMDUuMC41MTk1LjUyL3RoaXJkX3Bh cnR5L3dheWxhbmQvc3JjL3NyYy93YXlsYW5kLWNsaWVudC1jb3JlLmgub2xkLXdheWxhbmQgY2hy b21pdW0tMTA1LjAuNTE5NS41Mi90aGlyZF9wYXJ0eS93YXlsYW5kL3NyYy9zcmMvd2F5bGFuZC1j bGllbnQtY29yZS5oCi0tLS0gY2hyb21pdW0tMTA1LjAuNTE5NS41Mi90aGlyZF9wYXJ0eS93YXls YW5kL3NyYy9zcmMvd2F5bGFuZC1jbGllbnQtY29yZS5oLm9sZC13YXlsYW5kCTIwMjItMDktMDEg MTk6MzY6MDYuMDk5NDgzMzc0ICswMDAwCi0rKysgY2hyb21pdW0tMTA1LjAuNTE5NS41Mi90aGly ZF9wYXJ0eS93YXlsYW5kL3NyYy9zcmMvd2F5bGFuZC1jbGllbnQtY29yZS5oCTIwMjItMDktMDEg MjI6MDk6NTYuNTIzMzUzNjE5ICswMDAwCi1AQCAtMTE5LDkgKzExOSwyNyBAQCBzdHJ1Y3Qgd2xf ZGlzcGxheTsKLSAgKi8KLSBzdHJ1Y3Qgd2xfZXZlbnRfcXVldWU7Ci0gCi0rLyoqIERlc3Ryb3kg cHJveHkgYWZ0ZXIgbWFyc2hhbGxpbmcKLSsgKiBAaW5ncm91cCB3bF9wcm94eQotKyAqLwotKyNk ZWZpbmUgV0xfTUFSU0hBTF9GTEFHX0RFU1RST1kgKDEgPDwgMCkKLSsKLSB2b2lkCi0gd2xfZXZl bnRfcXVldWVfZGVzdHJveShzdHJ1Y3Qgd2xfZXZlbnRfcXVldWUgKnF1ZXVlKTsKLSAKLStzdHJ1 Y3Qgd2xfcHJveHkgKgotK3dsX3Byb3h5X21hcnNoYWxfZmxhZ3Moc3RydWN0IHdsX3Byb3h5ICpw cm94eSwgdWludDMyX3Qgb3Bjb2RlLAotKwkJICAgICAgIGNvbnN0IHN0cnVjdCB3bF9pbnRlcmZh Y2UgKmludGVyZmFjZSwKLSsJCSAgICAgICB1aW50MzJfdCB2ZXJzaW9uLAotKwkJICAgICAgIHVp bnQzMl90IGZsYWdzLCAuLi4pOwotKwotK3N0cnVjdCB3bF9wcm94eSAqCi0rd2xfcHJveHlfbWFy c2hhbF9hcnJheV9mbGFncyhzdHJ1Y3Qgd2xfcHJveHkgKnByb3h5LCB1aW50MzJfdCBvcGNvZGUs Ci0rCQkJICAgICBjb25zdCBzdHJ1Y3Qgd2xfaW50ZXJmYWNlICppbnRlcmZhY2UsCi0rCQkJICAg ICB1aW50MzJfdCB2ZXJzaW9uLAotKwkJCSAgICAgdWludDMyX3QgZmxhZ3MsCi0rCQkJICAgICB1 bmlvbiB3bF9hcmd1bWVudCAqYXJncyk7Ci0rCi0gdm9pZAotIHdsX3Byb3h5X21hcnNoYWwoc3Ry dWN0IHdsX3Byb3h5ICpwLCB1aW50MzJfdCBvcGNvZGUsIC4uLik7Ci0gCgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTEwLUNhbnZhc1Jlc291cmNlUHJvdmlkZXItcHJhZ21hLnBhdGNoIGIvY2hyb21p dW0tMTEwLUNhbnZhc1Jlc291cmNlUHJvdmlkZXItcHJhZ21hLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA1NzMyZTQ5Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTExMC1DYW52 YXNSZXNvdXJjZVByb3ZpZGVyLXByYWdtYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICsw LDAgQEAKLUZyb20gM2UxZTg2YWM4ODJhZTBjZTRiOWVjNTA4MzRhNGZmOGJlY2Q5MTJhYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29n bGVtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTkgRGVjIDIwMjIgMTY6NTk6NDYgKzAwMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gR0NDOiBtb3ZlIHByYWdtYXMgaW4gYmxpbms6OkNhbnZhc1Jlc291cmNlUHJv dmlkZXIKLQotR0NDIGRvZXMgbm90IGFsbG93IHVzaW5nICNwcmFnbWEgaW5zaWRlIGFuIGVudW0u Ci0KLUJ1ZzogODE5Mjk0Ci1DaGFuZ2UtSWQ6IEk2MzdiNWE2MTZiMDgwZDE3YmI3MTlhYWU5ZWM4 Y2YwNmQwZjhjNDY0Ci1SZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xl c291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzQxMTE4NDgKLVJldmlld2VkLWJ5OiBTdGVwaGVu IENoZW5uZXkgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KLUNvbW1pdC1RdWV1ZTogU3RlcGhhbiBI YXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZz L2hlYWRzL21haW5AeyMxMDg0OTgzfQotLS0tCi0KLWRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9i bGluay9yZW5kZXJlci9wbGF0Zm9ybS9ncmFwaGljcy9jYW52YXNfcmVzb3VyY2VfcHJvdmlkZXIu aCBiL3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2NhbnZhc19y ZXNvdXJjZV9wcm92aWRlci5oCi1pbmRleCBlODk4Mzk3Zi4uMjE0YWIwMSAxMDA2NDQKLS0tLSBh L3RoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2NhbnZhc19yZXNv dXJjZV9wcm92aWRlci5oCi0rKysgYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9y bS9ncmFwaGljcy9jYW52YXNfcmVzb3VyY2VfcHJvdmlkZXIuaAotQEAgLTY4LDYgKzY4LDggQEAK LSAgcHVibGljOgotICAgLy8gVGhlc2UgdmFsdWVzIGFyZSBwZXJzaXN0ZWQgdG8gbG9ncy4gRW50 cmllcyBzaG91bGQgbm90IGJlIHJlbnVtYmVyZWQgYW5kCi0gICAvLyBudW1lcmljIHZhbHVlcyBz aG91bGQgbmV2ZXIgYmUgcmV1c2VkLgotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAotKyNw cmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK LSAgIGVudW0gUmVzb3VyY2VQcm92aWRlclR5cGUgewotICAgICBrVGV4dHVyZSBbW2RlcHJlY2F0 ZWRdXSA9IDAsCi0gICAgIGtCaXRtYXAgPSAxLAotQEAgLTc5LDExICs4MSw5IEBACi0gICAgIGtQ YXNzVGhyb3VnaCA9IDcsCi0gICAgIGtTd2FwQ2hhaW4gPSA4LAotICAgICBrU2tpYURhd25TaGFy ZWRJbWFnZSBbW2RlcHJlY2F0ZWRdXSA9IDksCi0tI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo Ci0tI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp b25zIgotICAgICBrTWF4VmFsdWUgPSBrU2tpYURhd25TaGFyZWRJbWFnZSwKLS0jcHJhZ21hIEdD QyBkaWFnbm9zdGljIHBvcAotICAgfTsKLSsjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAotIAot ICAgLy8gVGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGF0dGVtcHQgdG8gcmVhY2ggYSBjb21wcm9t aXNlIGJldHdlZW4gbm90IGZsdXNoaW5nCi0gICAvLyB0b28gb2Z0ZW4sIGFuZCBub3QgYWNjdW11 bGF0aW5nIGFuIHVucmVhc29uYWJsZSBiYWNrbG9nLiAgRmx1c2hpbmcgdG9vCgpkaWZmIC0tZ2l0 IGEvY2hyb21pdW0tMTEwLUNyZWRlbnRpYWxVSUVudHJ5LWNvbnN0LnBhdGNoIGIvY2hyb21pdW0t MTEwLUNyZWRlbnRpYWxVSUVudHJ5LWNvbnN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBlYjY4YWEyLi4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLTExMC1DcmVkZW50aWFsVUlF bnRyeS1jb25zdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gYjRl NTZkMjIyNzVjYWU1YTkxMDQ2M2E5NjZhOTYzNDU0MzBhODNlYSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IEl2YW4gTXVyYXNob3YgPGl2YW4ubXVyYXNob3ZAbGdlLmNvbT4KLURhdGU6 IFNhdCwgMTcgRGVjIDIwMjIgMTI6MDY6MDEgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gbGlic3Rk YysrOiBEb24ndCB1c2UgY29uc3QgbWVtYmVycyBpbiBzdGQ6OnZlY3RvciBpbiBwYXNzd29yZF9t YW5hZ2VyOjpDcmVkZW50aWFsVUlFbnRyeQotCi1PdGhlcndpc2UgYnVpbGQgZmFpbHMgd2hlbiBi dWlsZGluZyB3aXRoIHVzZV9jdXN0b21fbGliY3h4PWZhbHNlLgotVGhlIGVycm9yIGV4YW1wbGU6 Ci1zdGQ6OnZlY3RvciBtdXN0IGhhdmUgYSBub24tY29uc3QsIG5vbi12b2xhdGlsZSB2YWx1ZV90 eXBlCi0KLUltcGxlbWVudGF0aW9uIG9mIHN0ZDo6dmVjdG9yIGluIGxpYnN0ZGMrKyBkb2VzIG5v dCBhbGxvdyBjb25zdC4KLQotQnVnOiA5NTc1MTkKLUNoYW5nZS1JZDogSTA4OWRlMmQ1MmRmMjUx MzhkNzRkYmYwMWZkZjYxZDYzMDFiNGQ4NzEKLVJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVt LXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNDExMTAzNwotUmV2aWV3 ZWQtYnk6IE1vaGFtZWQgQW1pciBZb3NlZiA8bWFtaXJAY2hyb21pdW0ub3JnPgotQ29tbWl0LVF1 ZXVlOiBNb2hhbWVkIEFtaXIgWW9zZWYgPG1hbWlyQGNocm9taXVtLm9yZz4KLUNyLUNvbW1pdC1Q b3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4NDY5N30KLS0tLQotCi1kaWZmIC0tZ2l0IGEv Y29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci91aS9jcmVkZW50aWFsX3Vp X2VudHJ5LmNjIGIvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci91aS9j cmVkZW50aWFsX3VpX2VudHJ5LmNjCi1pbmRleCAxZTA3NjZhLi5hOWEzNGY3IDEwMDY0NAotLS0t IGEvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUvYnJvd3Nlci91aS9jcmVkZW50aWFs X3VpX2VudHJ5LmNjCi0rKysgYi9jb21wb25lbnRzL3Bhc3N3b3JkX21hbmFnZXIvY29yZS9icm93 c2VyL3VpL2NyZWRlbnRpYWxfdWlfZW50cnkuY2MKLUBAIC05Nyw3ICs5Nyw3IEBACi0gICAvLyBG b3IgY2FzZXMgd2hlbiB0aGUgbm90ZXMgZGlmZmVyIHdpdGhpbiBncm91cGVkIHBhc3N3b3JkcyAo ZS5nOiBhCi0gICAvLyBjcmVkZW50aWFsIGV4aXN0cyBpbiBib3RoIGFjY291bnQgYW5kIHByb2Zp bGUgc3RvcmVzKSwgcmVzcGVjdGl2ZSBub3RlcwotICAgLy8gc2hvdWxkIGJlIGNvbmNhdGVuYXRl ZCBhbmQgbGluZWJyZWFrIHVzZWQgYXMgYSBkZWxpbWl0ZXIuCi0tICBzdGQ6OnZlY3Rvcjxjb25z dCBzdGQ6OnUxNnN0cmluZz4gbm90ZXNfd2l0aF9kdXBsaWNhdGVzOwotKyAgc3RkOjp2ZWN0b3I8 c3RkOjp1MTZzdHJpbmc+IG5vdGVzX3dpdGhfZHVwbGljYXRlczsKLSAgIGZvciAoY29uc3QgYXV0 byYgZm9ybSA6IGZvcm1zKSB7Ci0gICAgIC8vIE9ubHkgbm90ZXMgd2l0aCBhbiBlbXB0eSBgdW5p cXVlX2Rpc3BsYXlfbmFtZWAgYXJlIHN1cHBvcnRlZCBpbiB0aGUKLSAgICAgLy8gc2V0dGluZ3Mg VUkuCi1AQCAtMTA5LDcgKzEwOSw3IEBACi0gICB9Ci0gICBhdXRvIHVuaXF1ZV9ub3RlcyA9Ci0g ICAgICAgYmFzZTo6TWFrZUZsYXRTZXQ8c3RkOjp1MTZzdHJpbmc+KHN0ZDo6bW92ZShub3Rlc193 aXRoX2R1cGxpY2F0ZXMpKTsKLS0gIG5vdGUgPSBiYXNlOjpKb2luU3RyaW5nKHN0ZDo6dmVjdG9y PGNvbnN0IHN0ZDo6dTE2c3RyaW5nPigKLSsgIG5vdGUgPSBiYXNlOjpKb2luU3RyaW5nKHN0ZDo6 dmVjdG9yPHN0ZDo6dTE2c3RyaW5nPigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bmlxdWVfbm90ZXMuYmVnaW4oKSwgdW5pcXVlX25vdGVzLmVuZCgpKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHUiXG4iKTsKLSAKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAtRGFya01v ZGVMQUJDb2xvclNwYWNlLXBvdy5wYXRjaCBiL2Nocm9taXVtLTExMC1EYXJrTW9kZUxBQkNvbG9y U3BhY2UtcG93LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWYxYWVlLi4w MDAwMDAwCi0tLSBhL2Nocm9taXVtLTExMC1EYXJrTW9kZUxBQkNvbG9yU3BhY2UtcG93LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotRnJvbSA3OTVjMzExYWFlNGI3MTg1ODVi YzYxOTQxODlmMDYxMDAwYzgyM2ExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3Rl cGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogRnJpLCAyMyBEZWMg MjAyMiAxNDoyODo1NSArMDAwMAotU3ViamVjdDogW1BBVENIXSBsaWJzdGRjKys6IGZpeCBuYXJy b3dpbmcgaW4gYmxpbms6OkRhcmtNb2RlTEFCQ29sb3JTcGFjZQotCi1DbGFuZy0xNCBlcnJvcnMg b3V0IHdpdGggbmFycm93aW5nIGZyb20gZG91YmxlIHRvIGZsb2F0LiBVc2Ugc3RkOjpwb3cKLWlu c3RlYWQuCi0tLS0KLSAuLi4vcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhpY3MvZGFya19tb2RlX2xh Yl9jb2xvcl9zcGFjZS5oICAgfCA1ICsrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2RhcmtfbW9kZV9sYWJfY29sb3Jfc3BhY2UuaCBiL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2RhcmtfbW9kZV9sYWJf Y29sb3Jfc3BhY2UuaAotaW5kZXggOTk5YzNlNS4uYzE4ZWE3YiAxMDA2NDQKLS0tLSBhL3RoaXJk X3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL2dyYXBoaWNzL2RhcmtfbW9kZV9sYWJfY29s b3Jfc3BhY2UuaAotKysrIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3Jh cGhpY3MvZGFya19tb2RlX2xhYl9jb2xvcl9zcGFjZS5oCi1AQCAtMTI1LDcgKzEyNSw3IEBAIGNs YXNzIERhcmtNb2RlTEFCQ29sb3JTcGFjZSB7Ci0gICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5v cmcvd2lraS9DSUVMQUJfY29sb3Jfc3BhY2UjUmV2ZXJzZV90cmFuc2Zvcm1hdGlvbi4KLSAgIFNr VjMgRnJvbVhZWihjb25zdCBTa1YzJiB2KSBjb25zdCB7Ci0gICAgIGF1dG8gZiA9IFtdKGZsb2F0 IHgpIHsKLS0gICAgICByZXR1cm4geCA+IGtTaWdtYTMgPyBwb3coeCwgMS4wZiAvIDMuMGYpCi0r ICAgICAgcmV0dXJuIHggPiBrU2lnbWEzID8gc3RkOjpwb3coeCwgMS4wZiAvIDMuMGYpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIDogeCAvICgzICoga1NpZ21hMikgKyA0LjBmIC8gMjkuMGY7 Ci0gICAgIH07Ci0gCi1AQCAtMTQ1LDcgKzE0NSw4IEBAIGNsYXNzIERhcmtNb2RlTEFCQ29sb3JT cGFjZSB7Ci0gICAvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DSUVMQUJfY29sb3Jf c3BhY2UjRm9yd2FyZF90cmFuc2Zvcm1hdGlvbi4KLSAgIFNrVjMgVG9YWVooY29uc3QgU2tWMyYg bGFiKSBjb25zdCB7Ci0gICAgIGF1dG8gaW52ZiA9IFtdKGZsb2F0IHgpIHsKLS0gICAgICByZXR1 cm4geCA+IGtTaWdtYSA/IHBvdyh4LCAzLjBmKSA6IDMuMGYgKiBrU2lnbWEyICogKHggLSA0LjBm IC8gMjkuMGYpOwotKyAgICAgIHJldHVybiB4ID4ga1NpZ21hID8gc3RkOjpwb3coeCwgMy4wZikK LSsgICAgICAgICAgICAgICAgICAgICAgICA6IDMuMGYgKiBrU2lnbWEyICogKHggLSA0LjBmIC8g MjkuMGYpOwotICAgICB9OwotIAotICAgICBTa1YzIHYgPSB7Q2xhbXAobGFiLngsIDAuMGYsIDEw MC4wZiksIENsYW1wKGxhYi55LCAtMTI4LjBmLCAxMjguMGYpLAotLS0gCi0yLjM4LjIKLQoKZGlm ZiAtLWdpdCBhL2Nocm9taXVtLTExMC1JblByb2dyZXNzRG93bmxvYWRNYW5hZ2VyLWluY2x1ZGUu cGF0Y2ggYi9jaHJvbWl1bS0xMTAtSW5Qcm9ncmVzc0Rvd25sb2FkTWFuYWdlci1pbmNsdWRlLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZGM1MWRiLi4wMDAwMDAwCi0tLSBh L2Nocm9taXVtLTExMC1JblByb2dyZXNzRG93bmxvYWRNYW5hZ2VyLWluY2x1ZGUucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1Gcm9tIDYzMDI3YzYyZWFhMWI2YzViMGQyNzYy YTUxMWYxNjExYjE1ZDM3MjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFu IEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBNb24sIDE5IERlYyAyMDIy IDEzOjU2OjE3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIGxpYnN0ZGMrKzogZml4IGluY29tcGxl dGUgdHlwZSBvZiBkb3dubG9hZDo6SW5Qcm9ncmVzc0Rvd25sb2FkTWFuYWdlcgotCi1EZXN0cnVj dG9yIG9mIHN0ZDo6dW5pcXVlX3B0ciBpbiBsaWJzdGRjKysgdXNlcyBzaXplb2YoKSB3aGljaAot cmVxdWlyZXMgZnVsbCBkZWZpbml0aW9uIG9mIGRvd25sb2FkOjpJblByb2dyZXNzRG93bmxvYWRN YW5hZ2VyCi1mb3IgcmV0dXJuIHR5cGUgb2YgY29udGVudDo6QnJvd3NlckNvbnRleHQ6OgotUmV0 cmlldmVJblByb2dyZXNzRG93bmxvYWRNYW5hZ2VyKCkuCi0KLUJ1ZzogOTU3NTE5Ci1DaGFuZ2Ut SWQ6IElmOTlhYThkNTIyMzhiYWNiMWNiNTU5YTMwMGUxNGVkM2EwNWI3Mjk3Ci1SZXZpZXdlZC1v bjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3Ny Yy8rLzQxMTE1MjYKLVJldmlld2VkLWJ5OiBCbyBMaXUgPGJvbGl1QGNocm9taXVtLm9yZz4KLUNv bW1pdC1RdWV1ZTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotQ3It Q29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyMxMDg0OTI0fQotLS0tCi0KLWRpZmYg LS1naXQgYS9jb250ZW50L2Jyb3dzZXIvYnJvd3Nlcl9jb250ZXh0LmNjIGIvY29udGVudC9icm93 c2VyL2Jyb3dzZXJfY29udGV4dC5jYwotaW5kZXggNjE4MDk2OS4uMjJlOWRiYiAxMDA2NDQKLS0t LSBhL2NvbnRlbnQvYnJvd3Nlci9icm93c2VyX2NvbnRleHQuY2MKLSsrKyBiL2NvbnRlbnQvYnJv d3Nlci9icm93c2VyX2NvbnRleHQuY2MKLUBAIC0zMCw2ICszMCw3IEBACi0gI2luY2x1ZGUgImJh c2UvdW5ndWVzc2FibGVfdG9rZW4uaCIKLSAjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgi Ci0gI2luY2x1ZGUgImJ1aWxkL2Nocm9tZW9zX2J1aWxkZmxhZ3MuaCIKLSsjaW5jbHVkZSAiY29t cG9uZW50cy9kb3dubG9hZC9wdWJsaWMvY29tbW9uL2luX3Byb2dyZXNzX2Rvd25sb2FkX21hbmFn ZXIuaCIKLSAjaW5jbHVkZSAiY29tcG9uZW50cy9zZXJ2aWNlcy9zdG9yYWdlL3ByaXZpbGVnZWQv bW9qb20vaW5kZXhlZF9kYl9jb250cm9sLm1vam9tLmgiCi0gI2luY2x1ZGUgImNvbnRlbnQvYnJv d3Nlci9ibG9iX3N0b3JhZ2UvY2hyb21lX2Jsb2Jfc3RvcmFnZV9jb250ZXh0LmgiCi0gI2luY2x1 ZGUgImNvbnRlbnQvYnJvd3Nlci9icm93c2VyX2NvbnRleHRfaW1wbC5oIgoKZGlmZiAtLWdpdCBh L2Nocm9taXVtLTExMC1OYXRpdmVUaGVtZUJhc2UtZmFicy5wYXRjaCBiL2Nocm9taXVtLTExMC1O YXRpdmVUaGVtZUJhc2UtZmFicy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg YzdkMGU4Yi4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMTAtTmF0aXZlVGhlbWVCYXNlLWZhYnMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi1Gcm9tIDA3ZjBhODdlNDQwOWYy Nzg1NGIzYTFkMTdmMjcwYTM0OTdmMzg5NDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBNb24sIDE5 IERlYyAyMDIyIDE5OjA3OjM3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIEdDQzogdXNlIGZhYnNm IGluIHVpOjpOYXRpdmVUaGVtZUJhc2U6Ok91dGxpbmVDb2xvcgotCi1UZW1wbGF0ZSBkZWR1Y3Rp b24gZmFpbHMgZm9yIGJhc2U6OmNsYW1wLCBiZWNhdXNlIHJldHVybiB0eXBlIG9mCi1mYWJzIGlz IGRvdWJsZSBhbmQgYWxsIG90aGVyIHBhcmFtZXRlcnMgYXJlIGZsb2F0LgotCi1CdWc6IDgxOTI5 NAotQ2hhbmdlLUlkOiBJMzRmMWM5Yzk5ZDEzZjY5MDk3ZDg5OWJmY2IwNTI2Y2JkZjRmZTFjMQot UmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9j aHJvbWl1bS9zcmMvKy80MTEwODY5Ci1SZXZpZXdlZC1ieTogUGV0ZXIgS2FzdGluZyA8cGthc3Rp bmdAY2hyb21pdW0ub3JnPgotQ29tbWl0LVF1ZXVlOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlA Z29vZ2xlbWFpbC5jb20+Ci1Dci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzEw ODUwMzR9Ci0tLS0KLQotZGlmZiAtLWdpdCBhL3VpL25hdGl2ZV90aGVtZS9uYXRpdmVfdGhlbWVf YmFzZS5jYyBiL3VpL25hdGl2ZV90aGVtZS9uYXRpdmVfdGhlbWVfYmFzZS5jYwotaW5kZXggMTY5 YzYwYy4uMzZkYjQ5YSAxMDA2NDQKLS0tLSBhL3VpL25hdGl2ZV90aGVtZS9uYXRpdmVfdGhlbWVf YmFzZS5jYwotKysrIGIvdWkvbmF0aXZlX3RoZW1lL25hdGl2ZV90aGVtZV9iYXNlLmNjCi1AQCAt MTMzNiw3ICsxMzM2LDcgQEAKLSAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBoYXMgYmVlbiB0ZXN0 ZWQgdG8gbG9vayBPSyB3aXRoIGFsbCBvZiB0aGUKLSAgIC8vIGRlZmF1bHQgR1RLIHRoZW1lcy4K LSAgIFNrU2NhbGFyIG1pbl9kaWZmID0gYmFzZTo6Y2xhbXAoKGhzdjFbMV0gKyBoc3YyWzFdKSAq IDEuMmYsIDAuMjhmLCAwLjVmKTsKLS0gIFNrU2NhbGFyIGRpZmYgPSBiYXNlOjpjbGFtcChmYWJz KGhzdjFbMl0gLSBoc3YyWzJdKSAvIDIsIG1pbl9kaWZmLCAwLjVmKTsKLSsgIFNrU2NhbGFyIGRp ZmYgPSBiYXNlOjpjbGFtcChmYWJzZihoc3YxWzJdIC0gaHN2MlsyXSkgLyAyLCBtaW5fZGlmZiwg MC41Zik7Ci0gCi0gICBpZiAoaHN2MVsyXSArIGhzdjJbMl0gPiAxLjApCi0gICAgIGRpZmYgPSAt ZGlmZjsKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAtUHJlc2VudGVyLWluY2x1ZGUucGF0Y2gg Yi9jaHJvbWl1bS0xMTAtUHJlc2VudGVyLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDdjZmI4NGIuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTEwLVByZXNlbnRl ci1pbmNsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotRnJvbSBjNjli ODE4YTlmY2UyYmYwZmI4MWIyODBkNmY0Y2MxNWU2ZmRiOGFmIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0 ZTogRnJpLCAxNiBEZWMgMjAyMiAxNzoxMzo0MyArMDAwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6 IGZpeCBpbmNvbXBsZXRlIHR5cGUgb2YgZ2w6OlByZXNlbnRlcgotCi1HQ0MgcmVxdWlyZXMgZnVs bCBkZWZpbml0aW9uIG9mIGdsOjpQcmVzZW50ZXIgZm9yIHJldHVybiB0eXBlCi1vZiBnbDo6R0xP em9uZUVHTDo6Q3JlYXRlR0xDb250ZXh0KCkgd2l0aCBiYXNlOjpzY29wZWRfcmVmcHRyLgotLS0t Ci0gdWkvb3pvbmUvY29tbW9uL2dsX296b25lX2VnbC5jYyB8IDEgKwotIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQotCi1kaWZmIC0tZ2l0IGEvdWkvb3pvbmUvY29tbW9uL2dsX296b25l X2VnbC5jYyBiL3VpL296b25lL2NvbW1vbi9nbF9vem9uZV9lZ2wuY2MKLWluZGV4IDliMWQzN2Uu LmU3NDVkZDcgMTAwNjQ0Ci0tLS0gYS91aS9vem9uZS9jb21tb24vZ2xfb3pvbmVfZWdsLmNjCi0r KysgYi91aS9vem9uZS9jb21tb24vZ2xfb3pvbmVfZWdsLmNjCi1AQCAtMTMsNiArMTMsNyBAQAot ICNpbmNsdWRlICJ1aS9nbC9nbF9zaGFyZV9ncm91cC5oIgotICNpbmNsdWRlICJ1aS9nbC9nbF9z dXJmYWNlLmgiCi0gI2luY2x1ZGUgInVpL2dsL2dsX3V0aWxzLmgiCi0rI2luY2x1ZGUgInVpL2ds L3ByZXNlbnRlci5oIgotIAotIG5hbWVzcGFjZSB1aSB7Ci0gCi0tLSAKLTIuMzcuNAotCgpkaWZm IC0tZ2l0IGEvY2hyb21pdW0tMTEwLVN0b3JhZ2VRdWV1ZS1kZWNsdHlwZS5wYXRjaCBiL2Nocm9t aXVtLTExMC1TdG9yYWdlUXVldWUtZGVjbHR5cGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGNkMGU2NmMuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTEwLVN0b3JhZ2VRdWV1 ZS1kZWNsdHlwZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLUZyb20gMjAw ZmM3YzNlYzk1YmM4NmY2YWZiNTVjYTNjNjkxZTkyMzQ2MzEwNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IExlb25pZCBCYXJheiA8bGJhcmF6QGNocm9taXVtLm9yZz4KLURhdGU6IE1v biwgMTkgRGVjIDIwMjIgMjE6NDY6MDQgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gR0NDOiBmaXgg dXNhZ2Ugb2YgZGVjbHR5cGUgaW4gcmVwb3J0aW5nOjpTdG9yYWdlUXVldWUKLQotR0NDIGRvZXMg bm90IGFsbG93IHRvIHVzZSBkZWNsdHlwZSBmb3IgdGhlIGRlZmF1bHQgdmFsdWUgb2YKLWEgZnVu Y3Rpb24gcGFyYW1ldGVyLgotCi1CdWc6IDgxOTI5NAotQ2hhbmdlLUlkOiBJN2ViYjI1NTYzNDM3 NWNlODg5OTMzZjhiNjdhY2IxMGYwZTU2Y2E4ZAotUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21p dW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80MTExNTQ4Ci1SZXZp ZXdlZC1ieTogTGVvbmlkIEJhcmF6IDxsYmFyYXpAY2hyb21pdW0ub3JnPgotQ29tbWl0LVF1ZXVl OiBMZW9uaWQgQmFyYXogPGxiYXJhekBjaHJvbWl1bS5vcmc+Ci1SZXZpZXdlZC1ieTogSG9uZyBY dSA8eHVob25nQGdvb2dsZS5jb20+Ci1Dci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFp bkB7IzEwODUxMjl9Ci0tLS0KLQotZGlmZiAtLWdpdCBhL2NvbXBvbmVudHMvcmVwb3J0aW5nL3N0 b3JhZ2Uvc3RvcmFnZV9xdWV1ZS5jYyBiL2NvbXBvbmVudHMvcmVwb3J0aW5nL3N0b3JhZ2Uvc3Rv cmFnZV9xdWV1ZS5jYwotaW5kZXggYzU0NmQ1NWEuLjQ5ZTBmMmMgMTAwNjQ0Ci0tLS0gYS9jb21w b25lbnRzL3JlcG9ydGluZy9zdG9yYWdlL3N0b3JhZ2VfcXVldWUuY2MKLSsrKyBiL2NvbXBvbmVu dHMvcmVwb3J0aW5nL3N0b3JhZ2Uvc3RvcmFnZV9xdWV1ZS5jYwotQEAgLTIwMyw3ICsyMDMsNiBA QAotICAgICAgIGVuY3J5cHRpb25fbW9kdWxlXyhlbmNyeXB0aW9uX21vZHVsZSksCi0gICAgICAg Y29tcHJlc3Npb25fbW9kdWxlXyhjb21wcmVzc2lvbl9tb2R1bGUpIHsKLSAgIERFVEFDSF9GUk9N X1NFUVVFTkNFKHN0b3JhZ2VfcXVldWVfc2VxdWVuY2VfY2hlY2tlcl8pOwotLSAgRENIRUNLKHdy aXRlX2NvbnRleHRzX3F1ZXVlXy5lbXB0eSgpKTsKLSB9Ci0gCi0gU3RvcmFnZVF1ZXVlOjp+U3Rv cmFnZVF1ZXVlKCkgewotQEAgLTIxMzMsOSArMjEzMiw3IEBACi0gfQotIAotIHZvaWQgU3RvcmFn ZVF1ZXVlOjpUZXN0SW5qZWN0RXJyb3JzRm9yT3BlcmF0aW9uKAotLSAgICBiYXNlOjpSZXBlYXRp bmdDYWxsYmFjazwKLS0gICAgICAgIFN0YXR1cyh0ZXN0OjpTdG9yYWdlUXVldWVPcGVyYXRpb25L aW5kIG9wZXJhdGlvbl9raW5kLCBpbnQ2NF90KT4KLS0gICAgICAgIGhhbmRsZXIpIHsKLSsgICAg dGVzdDo6RXJyb3JJbmplY3Rpb25IYW5kbGVyVHlwZSBoYW5kbGVyKSB7Ci0gICB0ZXN0X2luamVj dGlvbl9oYW5kbGVyXyA9IGhhbmRsZXI7Ci0gfQotIAotZGlmZiAtLWdpdCBhL2NvbXBvbmVudHMv cmVwb3J0aW5nL3N0b3JhZ2Uvc3RvcmFnZV9xdWV1ZS5oIGIvY29tcG9uZW50cy9yZXBvcnRpbmcv c3RvcmFnZS9zdG9yYWdlX3F1ZXVlLmgKLWluZGV4IDM5ZWRkOGIuLjA0ZDVmOWYgMTAwNjQ0Ci0t LS0gYS9jb21wb25lbnRzL3JlcG9ydGluZy9zdG9yYWdlL3N0b3JhZ2VfcXVldWUuaAotKysrIGIv Y29tcG9uZW50cy9yZXBvcnRpbmcvc3RvcmFnZS9zdG9yYWdlX3F1ZXVlLmgKLUBAIC01Miw2ICs1 Miw5IEBACi0gICBrV3JpdGVMb3dEaXNrU3BhY2UsCi0gfTsKLSAKLSt1c2luZyBFcnJvckluamVj dGlvbkhhbmRsZXJUeXBlID0KLSsgICAgYmFzZTo6UmVwZWF0aW5nQ2FsbGJhY2s8U3RhdHVzKHRl c3Q6OlN0b3JhZ2VRdWV1ZU9wZXJhdGlvbktpbmQsIGludDY0X3QpPjsKLSsKLSB9ICAvLyBuYW1l c3BhY2UgdGVzdAotIAotIC8vIFN0b3JhZ2UgcXVldWUgcmVwcmVzZW50cyBzaW5nbGUgcXVldWUg b2YgZGF0YSB0byBiZSBjb2xsZWN0ZWQgYW5kIHN0b3JlZAotQEAgLTE0Miw4ICsxNDUsNyBAQAot ICAgLy8gY2FuIGJlIHJldHVybmVkIGFzIGEgcmVzdWx0aW5nIG9wZXJhdGlvbiBzdGF0dXMgdG9v LgotICAgLy8gSWYgYGhhbmRsZXJgIGlzIG51bGwsIGVycm9yIGluamVjdGlvbnMgaXMgZGlzYWJs ZWQuCi0gICB2b2lkIFRlc3RJbmplY3RFcnJvcnNGb3JPcGVyYXRpb24oCi0tICAgICAgYmFzZTo6 UmVwZWF0aW5nQ2FsbGJhY2s8U3RhdHVzKHRlc3Q6OlN0b3JhZ2VRdWV1ZU9wZXJhdGlvbktpbmQs IGludDY0X3QpPgotLSAgICAgICAgICBoYW5kbGVyID0gZGVjbHR5cGUoaGFuZGxlcikoKSk7Ci0r ICAgICAgdGVzdDo6RXJyb3JJbmplY3Rpb25IYW5kbGVyVHlwZSBoYW5kbGVyID0gYmFzZTo6TnVs bENhbGxiYWNrKCkpOwotIAotICAgLy8gQWNjZXNzIHF1ZXVlIG9wdGlvbnMuCi0gICBjb25zdCBR dWV1ZU9wdGlvbnMmIG9wdGlvbnMoKSBjb25zdCB7IHJldHVybiBvcHRpb25zXzsgfQotQEAgLTQ5 Miw4ICs0OTQsNyBAQAotICAgLy8gVGVzdCBvbmx5OiByZWNvcmRzIGNhbGxiYWNrIHRvIGJlIGlu dm9rZWQuIEl0IHdpbGwgYmUgY2FsbGVkIHdpdGggb3BlcmF0aW9uCi0gICAvLyBraW5kIGFuZCBz ZXEgaWQsIGFuZCB3aWxsIHJldHVybiBTdGF0dXMgKG5vbi1PSyBzdGF0dXMgaW5kaWNhdGVzIHRo ZQotICAgLy8gZmFpbHVyZSB0byBiZSBpbmplY3RlZCkuIEluIHByb2R1Y3Rpb24gY29kZSBtdXN0 IGJlIG51bGwuCi0tICBiYXNlOjpSZXBlYXRpbmdDYWxsYmFjazxTdGF0dXModGVzdDo6U3RvcmFn ZVF1ZXVlT3BlcmF0aW9uS2luZCwgaW50NjRfdCk+Ci0tICAgICAgdGVzdF9pbmplY3Rpb25faGFu ZGxlcl87Ci0rICB0ZXN0OjpFcnJvckluamVjdGlvbkhhbmRsZXJUeXBlIHRlc3RfaW5qZWN0aW9u X2hhbmRsZXJfe2Jhc2U6Ok51bGxDYWxsYmFjaygpfTsKLSAKLSAgIC8vIFdlYWsgcG9pbnRlciBm YWN0b3J5IChtdXN0IGJlIGxhc3QgbWVtYmVyIGluIGNsYXNzKS4KLSAgIGJhc2U6OldlYWtQdHJG YWN0b3J5PFN0b3JhZ2VRdWV1ZT4gd2Vha3B0cl9mYWN0b3J5X3t0aGlzfTsKCmRpZmYgLS1naXQg YS9jaHJvbWl1bS0xMTAtU3luY0l0ZXJhdG9yLXRlbXBsYXRlLnBhdGNoIGIvY2hyb21pdW0tMTEw LVN5bmNJdGVyYXRvci10ZW1wbGF0ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggYzY1YzdlMi4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMTAtU3luY0l0ZXJhdG9yLXRlbXBs YXRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSBkYTgwMjk0Mzhl YThmMDBhMTU0Y2I2YTFiYmM4MjQzZGUzOTY5MGRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogU3Vu LCAxOCBEZWMgMjAyMiAyMjoxMTo1OCArMDAwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6IHJlbW92 ZSByZWR1bmRhbnQgdGVtcGxhdGUgcGFyYW1ldGVyIGZyb20gU3luY0l0ZXJhdG9yCi0KLUdDQyAx MiBpbiBDKysyMCBtb2RlIGRvZXMgbm90IGFsbG93IHRoaXMgYW55bW9yZS4KLQotQnVnOiA4MTky OTQKLUNoYW5nZS1JZDogSTZiMjJkMzkxOWYwOGZiNzJhNWIxZDY5ZWVhNTljNmU5NTI1OWMxNmYK LVJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv Y2hyb21pdW0vc3JjLysvNDExMTU0NwotQ29tbWl0LVF1ZXVlOiBTdGVwaGFuIEhhcnRtYW5uIDxz dGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1SZXZpZXdlZC1ieTogS2VudGFybyBIYXJhIDxoYXJha2Vu QGNocm9taXVtLm9yZz4KLUNyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4 NDgwOH0KLS0tLQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmlu ZGluZ3Mvc2NyaXB0cy9iaW5kX2dlbi9zeW5jX2l0ZXJhdG9yLnB5IGIvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvYmluZGluZ3Mvc2NyaXB0cy9iaW5kX2dlbi9zeW5jX2l0ZXJhdG9yLnB5Ci1p bmRleCAxZDY3ZmEyLi45Y2VjNTA5NCAxMDA2NDQKLS0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2JpbmRpbmdzL3NjcmlwdHMvYmluZF9nZW4vc3luY19pdGVyYXRvci5weQotKysrIGIv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3Mvc2NyaXB0cy9iaW5kX2dlbi9zeW5j X2l0ZXJhdG9yLnB5Ci1AQCAtMzYsNyArMzYsNyBAQAotICAgICAgICAgICAgICAgICAgICAgICAg bWVtYmVyX2luaXRpYWxpemVyX2xpc3Q9WwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIk e2Jhc2VfY2xhc3NfbmFtZX0oc291cmNlLCBraW5kKSIsCi0gICAgICAgICAgICAgICAgICAgICAg ICBdKSwKLS0gICAgICAgIEN4eEZ1bmNEZWNsTm9kZShuYW1lPSJ+JHtjbGFzc19uYW1lfSIsCi0r ICAgICAgICBDeHhGdW5jRGVjbE5vZGUobmFtZT0iflN5bmNJdGVyYXRvciIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgYXJnX2RlY2xzPVtdLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl90eXBlPSIiLAotICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlPVRydWUsCgpk aWZmIC0tZ2l0IGEvY2hyb21pdW0tMTEwLWRwZi1hcm02NC5wYXRjaCBiL2Nocm9taXVtLTExMC1k cGYtYXJtNjQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0YmE4N2IuLjAw MDAwMDAKLS0tIGEvY2hyb21pdW0tMTEwLWRwZi1hcm02NC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDk0ICswLDAgQEAKLUZyb20gZGY3MjhkMmUyZmU4Mjg0MzE2ZWQwODNjNWEyMTBiY2ExZTUw OTg2ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEpvc2UgRGFwZW5hIFBheiA8amRh cGVuYUBpZ2FsaWEuY29tPgotRGF0ZTogTW9uLCAxNiBKYW4gMjAyMyAxMjo1MzoyMSArMDEwMAot U3ViamVjdDogW1BBVENIXSBHQ0M6IGZpeCBkaXN0cmlidXRlZCBwb2ludCBmdW5jdGlvbnMgYnVp bGQgaW4gQVJNNjQgd2l0aCBTVkUKLQotU1ZFIGJ1aWxkIGlzIGJyb2tlbiBpbiBBUk02NCwgYmVj YXVzZSBkaXN0cmlidXRlZF9wb2ludF9mdW5jdGlvbnMKLWlzIHRyeWluZyB0byB1c2Ugb3BlcmF0 b3ImIGFuZCBvcGVyYXRvcnwuCi0KLUJ1Zzo4MTkyOTQKLUNoYW5nZS1JZDogSTQ2NWVmYTQ3NWVk NTkwMzFhMmNmYWY0MTcyZWY5ZmJkOGJiMDUwNTAKLS0tLQotIGRwZi9pbnRlcm5hbC9ldmFsdWF0 ZV9wcmdfaHd5LmNjIHwgMzQgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KLSAxIGZp bGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9kcGYvaW50ZXJuYWwvZXZhbHVhdGVfcHJnX2h3eS5jYyBiL2RwZi9pbnRlcm5hbC9ldmFs dWF0ZV9wcmdfaHd5LmNjCi1pbmRleCAzZDc0M2Y0Li5hMWRkOGUwIDEwMDY0NAotLS0tIGEvL3Ro aXJkX3BhcnR5L2Rpc3RyaWJ1dGVkX3BvaW50X2Z1bmN0aW9ucy9jb2RlL2RwZi9pbnRlcm5hbC9l dmFsdWF0ZV9wcmdfaHd5LmNjCi0rKysgYi8vdGhpcmRfcGFydHkvZGlzdHJpYnV0ZWRfcG9pbnRf ZnVuY3Rpb25zL2NvZGUvZHBmL2ludGVybmFsL2V2YWx1YXRlX3ByZ19od3kuY2MKLUBAIC0xMjQs MTQgKzEyNCwxNCBAQCBhdXRvIElzQml0U2V0KEQgZCwgY29uc3QgViBpbnB1dCwgaW50IGluZGV4 KSB7Ci0gCi0gICAvLyBDb21wdXRlIGlucHV0IEFORCBpbmRleF82NCBvbiA2NC1iaXQgaW50ZWdl cnMuCi0gICBhdXRvIGlucHV0XzY0ID0gaG46OkJpdENhc3QoZDY0LCBpbnB1dCk7Ci0tICBpbnB1 dF82NCAmPSBpbmRleF82NDsKLSsgIGlucHV0XzY0ID0gaG46OkFuZChpbnB1dF82NCwgaW5kZXhf NjQpOwotIAotICAgLy8gVGFrZSB0aGUgT1Igb2YgZXZlcnkgdHdvIGFkamFjZW50IDY0LWJpdCBp bnRlZ2Vycy4gVGhpcyBlbnN1cmVzIHRoYXQgZWFjaAotICAgLy8gaGFsZiBvZiBhbiAxMjgtYml0 IGJsb2NrIGlzIG5vbnplcm8gaWZmIGF0IGxlYXN0IG9uZSBoYWxmIHdhcyBub256ZXJvLgotLSAg aW5wdXRfNjQgfD0gaG46OlNodWZmbGUwMShpbnB1dF82NCk7Ci0rICBpbnB1dF82NCA9IGhuOjpP cihpbnB1dF82NCwgaG46OlNodWZmbGUwMShpbnB1dF82NCkpOwotIAotICAgLy8gQ29tcHV0ZSBh IDY0LWJpdCBtYXNrIHRoYXQgY2hlY2tzIHdoaWNoIGludGVnZXJzIGFyZSBub256ZXJvLgotLSAg cmV0dXJuIGlucHV0XzY0ICE9IGhuOjpaZXJvKGQ2NCk7Ci0rICByZXR1cm4gaG46Ok5lKGlucHV0 XzY0LCBobjo6WmVybyhkNjQpKTsKLSB9Ci0gCi0gLy8gRHVtbXkgc3RydWN0IHRvIGdldCBIV1lf QUxJR04gYXMgYSBudW1iZXIsIGZvciB0ZXN0aW5nIGlmIGFuIGFycmF5IG9mCi1AQCAtMjM2LDI0 ICsyMzYsMjAgQEAgYWJzbDo6U3RhdHVzIEV2YWx1YXRlU2VlZHNId3koCi0gICAgICAgLy8gQXBw bHkgY29ycmVjdGlvbi4KLSAgICAgICBjb25zdCBhdXRvIGNvcnJlY3Rpb25fc2VlZCA9IGhuOjpM b2FkRHVwMTI4KAotICAgICAgICAgICBkNjQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0 X3QqPihjb3JyZWN0aW9uX3NlZWRzICsgaikpOwotLSAgICAgIHZlY18wIF49Ci0tICAgICAgICAg IGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZUaGVuRWxzZVplcm8oY29udHJvbF9tYXNrXzAsIGNvcnJl Y3Rpb25fc2VlZCkpOwotLSAgICAgIHZlY18xIF49Ci0tICAgICAgICAgIGhuOjpCaXRDYXN0KGQ4 LCBobjo6SWZUaGVuRWxzZVplcm8oY29udHJvbF9tYXNrXzEsIGNvcnJlY3Rpb25fc2VlZCkpOwot LSAgICAgIHZlY18yIF49Ci0tICAgICAgICAgIGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZUaGVuRWxz ZVplcm8oY29udHJvbF9tYXNrXzIsIGNvcnJlY3Rpb25fc2VlZCkpOwotLSAgICAgIHZlY18zIF49 Ci0tICAgICAgICAgIGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZUaGVuRWxzZVplcm8oY29udHJvbF9t YXNrXzMsIGNvcnJlY3Rpb25fc2VlZCkpOwotKyAgICAgIHZlY18wID0gaG46Olhvcih2ZWNfMCwg aG46OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhjb250cm9sX21hc2tfMCwgY29ycmVj dGlvbl9zZWVkKSkpOwotKyAgICAgIHZlY18xID0gaG46Olhvcih2ZWNfMSwgaG46OkJpdENhc3Qo ZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhjb250cm9sX21hc2tfMSwgY29ycmVjdGlvbl9zZWVkKSkp OwotKyAgICAgIHZlY18yID0gaG46Olhvcih2ZWNfMiwgaG46OkJpdENhc3QoZDgsIGhuOjpJZlRo ZW5FbHNlWmVybyhjb250cm9sX21hc2tfMiwgY29ycmVjdGlvbl9zZWVkKSkpOwotKyAgICAgIHZl Y18zID0gaG46Olhvcih2ZWNfMywgaG46OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhj b250cm9sX21hc2tfMywgY29ycmVjdGlvbl9zZWVkKSkpOwotIAotICAgICAgIC8vIEV4dHJhY3Qg Y29udHJvbCBiaXQgZm9yIG5leHQgbGV2ZWwuCi0gICAgICAgY29uc3QgYXV0byBuZXh0X2NvbnRy b2xfbWFza18wID0gSXNCaXRTZXQoZDgsIHZlY18wLCAwKTsKLSAgICAgICBjb25zdCBhdXRvIG5l eHRfY29udHJvbF9tYXNrXzEgPSBJc0JpdFNldChkOCwgdmVjXzEsIDApOwotICAgICAgIGNvbnN0 IGF1dG8gbmV4dF9jb250cm9sX21hc2tfMiA9IElzQml0U2V0KGQ4LCB2ZWNfMiwgMCk7Ci0gICAg ICAgY29uc3QgYXV0byBuZXh0X2NvbnRyb2xfbWFza18zID0gSXNCaXRTZXQoZDgsIHZlY18zLCAw KTsKLS0gICAgICB2ZWNfMCAmPSBjbGVhcl9sb3dlc3RfYml0OwotLSAgICAgIHZlY18xICY9IGNs ZWFyX2xvd2VzdF9iaXQ7Ci0tICAgICAgdmVjXzIgJj0gY2xlYXJfbG93ZXN0X2JpdDsKLS0gICAg ICB2ZWNfMyAmPSBjbGVhcl9sb3dlc3RfYml0OwotKyAgICAgIHZlY18wID0gaG46OkFuZCh2ZWNf MCwgY2xlYXJfbG93ZXN0X2JpdCk7Ci0rICAgICAgdmVjXzEgPSBobjo6QW5kKHZlY18xLCBjbGVh cl9sb3dlc3RfYml0KTsKLSsgICAgICB2ZWNfMiA9IGhuOjpBbmQodmVjXzIsIGNsZWFyX2xvd2Vz dF9iaXQpOwotKyAgICAgIHZlY18zID0gaG46OkFuZCh2ZWNfMywgY2xlYXJfbG93ZXN0X2JpdCk7 Ci0gCi0gICAgICAgLy8gUGVyZm9ybSBjb250cm9sIGJpdCBjb3JyZWN0aW9uLgotICAgICAgIGNv bnN0IGF1dG8gY29ycmVjdGlvbl9jb250cm9sX21hc2tfbGVmdCA9Ci1AQCAtMzIxLDEwICszMTcs MTAgQEAgYWJzbDo6U3RhdHVzIEV2YWx1YXRlU2VlZHNId3koCi0gICAgICAgLy8gQXBwbHkgY29y cmVjdGlvbi4KLSAgICAgICBjb25zdCBhdXRvIGNvcnJlY3Rpb25fc2VlZCA9IGhuOjpMb2FkRHVw MTI4KAotICAgICAgICAgICBkNjQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihj b3JyZWN0aW9uX3NlZWRzICsgaikpOwotLSAgICAgIHZlYyBePSBobjo6Qml0Q2FzdChkOCwgaG46 OklmVGhlbkVsc2VaZXJvKGNvbnRyb2xfbWFzaywgY29ycmVjdGlvbl9zZWVkKSk7Ci0rICAgICAg dmVjID0gaG46Olhvcih2ZWMsIGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZUaGVuRWxzZVplcm8oY29u dHJvbF9tYXNrLCBjb3JyZWN0aW9uX3NlZWQpKSk7Ci0gICAgICAgLy8gRXh0cmFjdCBjb250cm9s IGJpdCBmb3IgbmV4dCBsZXZlbC4KLSAgICAgICBjb25zdCBhdXRvIG5leHRfY29udHJvbF9tYXNr ID0gSXNCaXRTZXQoZDgsIHZlYywgMCk7Ci0tICAgICAgdmVjICY9IGNsZWFyX2xvd2VzdF9iaXQ7 Ci0rICAgICAgdmVjID0gaG46OkFuZCh2ZWMsIGNsZWFyX2xvd2VzdF9iaXQpOwotIAotICAgICAg IC8vIFBlcmZvcm0gY29udHJvbCBiaXQgY29ycmVjdGlvbi4KLSAgICAgICBjb25zdCBhdXRvIGNv cnJlY3Rpb25fY29udHJvbF9tYXNrX2xlZnQgPQotQEAgLTM3Niw5ICszNzIsOSBAQCBhYnNsOjpT dGF0dXMgRXZhbHVhdGVTZWVkc0h3eSgKLSAgICAgICAvLyBQZXJmb3JtIHNlZWQgY29ycmVjdGlv bi4KLSAgICAgICBjb25zdCBhdXRvIGNvcnJlY3Rpb25fc2VlZCA9IGhuOjpMb2FkRHVwMTI4KAot ICAgICAgICAgICBkNjQsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihjb3JyZWN0 aW9uX3NlZWRzICsgaikpOwotLSAgICAgIHZlYyBePSBobjo6Qml0Q2FzdChkOCwgaG46OklmVGhl bkVsc2VaZXJvKGNvbnRyb2xfbWFzaywgY29ycmVjdGlvbl9zZWVkKSk7Ci0rICAgICAgdmVjID0g aG46Olhvcih2ZWMsIGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZUaGVuRWxzZVplcm8oY29udHJvbF9t YXNrLCBjb3JyZWN0aW9uX3NlZWQpKSk7Ci0gICAgICAgY29uc3QgYXV0byBuZXh0X2NvbnRyb2xf bWFzayA9IElzQml0U2V0KGQ4LCB2ZWMsIDApOwotLSAgICAgIHZlYyAmPSBjbGVhcl9sb3dlc3Rf Yml0OwotKyAgICAgIHZlYyA9IGhuOjpBbmQodmVjLCBjbGVhcl9sb3dlc3RfYml0KTsKLSAgICAg ICBjb25zdCBhdXRvIGNvcnJlY3Rpb25fY29udHJvbF9tYXNrX2xlZnQgPQotICAgICAgICAgICBj b3JyZWN0aW9uX2NvbnRyb2xzX2xlZnRbal0gPyBtYXNrX2FsbF9vbmUgOiBtYXNrX2FsbF96ZXJv OwotICAgICAgIGNvbnN0IGF1dG8gY29ycmVjdGlvbl9jb250cm9sX21hc2tfcmlnaHQgPQoKZGlm ZiAtLWdpdCBhL2Nocm9taXVtLTExMC1ndGt0aGVtZS5wYXRjaCBiL2Nocm9taXVtLTExMC1ndGt0 aGVtZS5wYXRjaAppbmRleCBlYjk0ZTA0Li4zZmNhYTI2IDEwMDY0NAotLS0gYS9jaHJvbWl1bS0x MTAtZ3RrdGhlbWUucGF0Y2gKKysrIGIvY2hyb21pdW0tMTEwLWd0a3RoZW1lLnBhdGNoCkBAIC0y Myw2ICsyMywyNSBAQCBpbmRleCA3NThkMGJmLi44YzkxMTQ2IDEwMDY0NAogIExlbm55IEtoYXph biA8bGVubnkua2hhemFuQGdtYWlsLmNvbT4KICBMZW8gV29sZiA8amNsd0B5bWFpbC5jb20+CiAg TGVvbiBIYW4gPGxlb24uaGFuQGludGVsLmNvbT4KK2RpZmYgLS1naXQgYS9jaHJvbWUvY29tbW9u L2Nocm9tZV9mZWF0dXJlcy5jYyBiL2Nocm9tZS9jb21tb24vY2hyb21lX2ZlYXR1cmVzLmNjCitp bmRleCA4NWMzOTMxLi4yYjBjMmE4NCAxMDA2NDQKKy0tLSBhL2Nocm9tZS9jb21tb24vY2hyb21l X2ZlYXR1cmVzLmNjCisrKysgYi9jaHJvbWUvY29tbW9uL2Nocm9tZV9mZWF0dXJlcy5jYworQEAg LTE0MzAsMTIgKzE0MzAsMTIgQEAKKyBCQVNFX0ZFQVRVUkUoa1dlYlVJRGFya01vZGUsCisgICAg ICAgICAgICAgICJXZWJVSURhcmtNb2RlIiwKKyAjaWYgQlVJTERGTEFHKElTX01BQykgfHwgQlVJ TERGTEFHKElTX1dJTikgfHwgQlVJTERGTEFHKElTX0FORFJPSUQpIHx8IFwKKy0gICAgQlVJTERG TEFHKElTX0NIUk9NRU9TKQorKyAgICBCVUlMREZMQUcoSVNfQ0hST01FT1MpIHx8IEJVSUxERkxB RyhJU19MSU5VWCkKKyAgICAgICAgICAgICAgYmFzZTo6RkVBVFVSRV9FTkFCTEVEX0JZX0RFRkFV TFQKKyAjZWxzZQorICAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0RJU0FCTEVEX0JZX0RFRkFV TFQKKyAjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19NQUMpIHx8IEJVSUxERkxBRyhJU19XSU4pIHx8 IEJVSUxERkxBRyhJU19BTkRST0lEKSB8fAorLSAgICAgICAgLy8gQlVJTERGTEFHKElTX0NIUk9N RU9TKQorKyAgICAgICAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKSB8fCBCVUlMREZMQUcoSVNf TElOVVgpCisgKTsKKyAKKyAjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TX0FTSCkKIGRpZmYgLS1n aXQgYS91aS9ndGsvbmF0aXZlX3RoZW1lX2d0ay5jYyBiL3VpL2d0ay9uYXRpdmVfdGhlbWVfZ3Rr LmNjCiBpbmRleCBhNjBkNmUzLi4xMjAwYTgwIDEwMDY0NAogLS0tIGEvdWkvZ3RrL25hdGl2ZV90 aGVtZV9ndGsuY2MKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAta0N1c3RvbWl6ZUNocm9tZUNv bG9ycy10eXBlLnBhdGNoIGIvY2hyb21pdW0tMTEwLWtDdXN0b21pemVDaHJvbWVDb2xvcnMtdHlw ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMyMTRkYS4uMDAwMDAwMAot LS0gYS9jaHJvbWl1bS0xMTAta0N1c3RvbWl6ZUNocm9tZUNvbG9ycy10eXBlLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotRnJvbSAzMDg0ZTgzNGEyMTFlODVmNmExN2U2Zjhk Y2ViNmI0NDExNzIxMWQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhhbiBI YXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAx OToyMjo0NiArMDAwMAotU3ViamVjdDogW1BBVENIXSBHQ0M6IGZpeCBjb25mbGljdGluZyB0eXBl IGZvciBrQ3VzdG9taXplQ2hyb21lQ29sb3JzCi0KLUdDQyBjYW5ub3QgbWF0Y2ggYXV0byB3aXRo IHByZXZpb3VzIGRlY2xhcmF0aW9uLgotCi1CdWc6IDgxOTI5NAotQ2hhbmdlLUlkOiBJZTY0OGRh YWYyNjRmYjJlYTE3N2FjNDZjOGE1MTBkNDgxZjZmYTJmNAotUmV2aWV3ZWQtb246IGh0dHBzOi8v Y2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80MTEwODcw Ci1SZXZpZXdlZC1ieTogVGlib3IgR29sZHNjaHdlbmR0IDx0aWJvcmdAY2hyb21pdW0ub3JnPgot Q29tbWl0LVF1ZXVlOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1D ci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFpbkB7IzEwODYwMTF9Ci0tLS0KLQotZGlm ZiAtLWdpdCBhL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL3NpZGVfcGFuZWwvY3VzdG9taXplX2No cm9tZS9jdXN0b21pemVfY2hyb21lX2NvbG9ycy5jYyBiL2Nocm9tZS9icm93c2VyL3VpL3dlYnVp L3NpZGVfcGFuZWwvY3VzdG9taXplX2Nocm9tZS9jdXN0b21pemVfY2hyb21lX2NvbG9ycy5jYwot aW5kZXggMmZjY2FkYi4uMzgzYzllNSAxMDA2NDQKLS0tLSBhL2Nocm9tZS9icm93c2VyL3VpL3dl YnVpL3NpZGVfcGFuZWwvY3VzdG9taXplX2Nocm9tZS9jdXN0b21pemVfY2hyb21lX2NvbG9ycy5j YwotKysrIGIvY2hyb21lL2Jyb3dzZXIvdWkvd2VidWkvc2lkZV9wYW5lbC9jdXN0b21pemVfY2hy b21lL2N1c3RvbWl6ZV9jaHJvbWVfY29sb3JzLmNjCi1AQCAtMzEsNSArMzEsNiBAQAotIAotIH0g IC8vIG5hbWVzcGFjZQotIAotLWNvbnN0IGF1dG8ga0N1c3RvbWl6ZUNocm9tZUNvbG9ycyA9IE1h a2VDdXN0b21pemVDaHJvbWVDb2xvcnMoCi0tICAgIHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxz dGQ6OnNpemUoa0N1c3RvbWl6ZUNocm9tZUNvbG9ySWRzKT57fSk7Ci0rY29uc3QgZGVjbHR5cGUo a0N1c3RvbWl6ZUNocm9tZUNvbG9ycykga0N1c3RvbWl6ZUNocm9tZUNvbG9ycyA9Ci0rICAgIE1h a2VDdXN0b21pemVDaHJvbWVDb2xvcnMoCi0rICAgICAgICBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVu Y2U8c3RkOjpzaXplKGtDdXN0b21pemVDaHJvbWVDb2xvcklkcyk+e30pOwoKZGlmZiAtLWdpdCBh L2Nocm9taXVtLTExMC1saW1pdHMucGF0Y2ggYi9jaHJvbWl1bS0xMTAtbGltaXRzLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWE0YzFlLi4wMDAwMDAwCi0tLSBhL2Nocm9t aXVtLTExMC1saW1pdHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1kaWZm IC11cCBjaHJvbWl1bS0xMTAuMC41NDgxLjE3Ny9iYXNlL21lbW9yeS9yZWZfY291bnRlZC5oLm1l IGNocm9taXVtLTExMC4wLjU0ODEuMTc3L2Jhc2UvbWVtb3J5L3JlZl9jb3VudGVkLmgKLS0tLSBj aHJvbWl1bS0xMTAuMC41NDgxLjE3Ny9iYXNlL21lbW9yeS9yZWZfY291bnRlZC5oLm1lCTIwMjMt MDItMjMgMTM6MzQ6MzMuMTc0ODE3MjU1IC0wNTAwCi0rKysgY2hyb21pdW0tMTEwLjAuNTQ4MS4x NzcvYmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaAkyMDIzLTAyLTIzIDEzOjQyOjI4LjY0NjA1MjQ2 OSAtMDUwMAotQEAgLTYsNiArNiw3IEBACi0gI2RlZmluZSBCQVNFX01FTU9SWV9SRUZfQ09VTlRF RF9IXwotIAotICNpbmNsdWRlIDxzdGRkZWYuaD4KLSsjaW5jbHVkZSA8bGltaXRzPgotIAotICNp bmNsdWRlIDx1dGlsaXR5PgotIAoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExMC1yYXdfcHRyLWNv bnN0ZXhwci5wYXRjaCBiL2Nocm9taXVtLTExMC1yYXdfcHRyLWNvbnN0ZXhwci5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGVkNTg1NS4uMDAwMDAwMAotLS0gYS9jaHJvbWl1 bS0xMTAtcmF3X3B0ci1jb25zdGV4cHIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCww IEBACi1Gcm9tIGJkM2FmOTk4NDM5NDI0ODg2YzY0MTI3OWI2ZjliYjZlOTUwYzcxNDIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xl bWFpbC5jb20+Ci1EYXRlOiBTdW4sIDE4IERlYyAyMDIyIDE2OjEyOjI5ICswMDAwCi1TdWJqZWN0 OiBbUEFUQ0hdIEdDQzogbWFrZSByYXdfcHRyOjpvcGVyYXRvciBib29sIGNvbnN0ZXhwcgotCi1S ZXF1aXJlZCBiZWNhdXNlIGF1dG9maWxsOjppbnRlcm5hbDo6Rm9ybUZvcmVzdCB1c2VzIGl0IGlu Ci1hIGNvbnN0ZXhwciBtZXRob2QuCi0KLUJ1ZzogODE5Mjk0Ci1DaGFuZ2UtSWQ6IEliMjI1OGM5 ZDk4YzJlN2Y4OGFkMTkyYjUxN2I0ODdmODM0YTg3NDgxCi1SZXZpZXdlZC1vbjogaHR0cHM6Ly9j aHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzQxMTA5MjQK LVJldmlld2VkLWJ5OiBCYXJ0ZWsgTm93aWVyc2tpIDxiYXJ0ZWtuQGNocm9taXVtLm9yZz4KLUNv bW1pdC1RdWV1ZTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotQ3It Q29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyMxMDg0Nzg1fQotLS0tCi0KLWRpZmYg LS1naXQgYS9iYXNlL21lbW9yeS9yYXdfcHRyLmggYi9iYXNlL21lbW9yeS9yYXdfcHRyLmgKLWlu ZGV4IDQxOTFmMGUuLmEyMmY2NGI3IDEwMDY0NAotLS0tIGEvYmFzZS9tZW1vcnkvcmF3X3B0ci5o Ci0rKysgYi9iYXNlL21lbW9yeS9yYXdfcHRyLmgKLUBAIC0xMzAxLDcgKzEzMDEsOSBAQAotICAg Ly8gcG9zc2libGUsIHNvIHVzZSBpdCBvbmx5IGlmIGFic29sdXRlbHkgbmVjZXNzYXJ5IChlLmcu IGZvciBjb25zdF9jYXN0KS4KLSAgIFBBX0FMV0FZU19JTkxJTkUgVCogZ2V0KCkgY29uc3QgeyBy ZXR1cm4gR2V0Rm9yRXh0cmFjdGlvbigpOyB9Ci0gCi0tICBleHBsaWNpdCBQQV9BTFdBWVNfSU5M SU5FIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiAhIXdyYXBwZWRfcHRyXzsgfQotKyAg Y29uc3RleHByIGV4cGxpY2l0IFBBX0FMV0FZU19JTkxJTkUgb3BlcmF0b3IgYm9vbCgpIGNvbnN0 IHsKLSsgICAgcmV0dXJuICEhd3JhcHBlZF9wdHJfOwotKyAgfQotIAotICAgdGVtcGxhdGUgPHR5 cGVuYW1lIFUgPSBULAotICAgICAgICAgICAgIHR5cGVuYW1lIFVudXNlZCA9IHN0ZDo6ZW5hYmxl X2lmX3Q8CgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTEwLXVybF9jYW5vbl9pbnRlcm5hbC1jYXN0 LnBhdGNoIGIvY2hyb21pdW0tMTEwLXVybF9jYW5vbl9pbnRlcm5hbC1jYXN0LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTA2NGE3Li4wMDAwMDAwCi0tLSBhL2Nocm9taXVt LTExMC11cmxfY2Fub25faW50ZXJuYWwtY2FzdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0 ICswLDAgQEAKLUZyb20gNzQwZDExMDJlM2ZkYWFlZDU0NDFiNTY1NjIwNWRmOWQ3ZTQyMmMzYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBn b29nbGVtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjAgRGVjIDIwMjIgMjA6NDE6MTIgKzAwMDAKLVN1 YmplY3Q6IFtQQVRDSF0gR0NDOiBhZGQgY2FzdCBmb3IgdmVjdG9yIHR5cGVzIGluIHVybC91cmxf Y2Fub25faW50ZXJuYWwuY2MKLQotR0NDIHJlcXVpcmVzIGxheCB2ZWN0b3IgY29udmVyc2lvbiBm b3IgY29udmVydGluZyBfX3ZlY3RvcigxNikgdG8KLVNJTUQgdHlwZXMuIEFkZCBleHBsaWNpdCBj YXN0IGluc3RlYWQuCi0KLUJ1ZzogODE5Mjk0Ci1DaGFuZ2UtSWQ6IEljZmM5ZDM1ODYzNTBhZjQ2 OWJmZDlkODNiMzU1ZDk0ODA2NDMwYzQzCi1SZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1y ZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzQxMTA3ODYKLUNvbW1pdC1R dWV1ZTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotUmV2aWV3ZWQt Ynk6IERhbmllbCBDaGVuZyA8ZGNoZW5nQGNocm9taXVtLm9yZz4KLUNyLUNvbW1pdC1Qb3NpdGlv bjogcmVmcy9oZWFkcy9tYWluQHsjMTA4NTYxN30KLS0tLQotCi1kaWZmIC0tZ2l0IGEvdXJsL3Vy bF9jYW5vbl9pbnRlcm5hbC5jYyBiL3VybC91cmxfY2Fub25faW50ZXJuYWwuY2MKLWluZGV4IGU0 Zjc5NDkuLmY2MjE5MjAgMTAwNjQ0Ci0tLS0gYS91cmwvdXJsX2Nhbm9uX2ludGVybmFsLmNjCi0r KysgYi91cmwvdXJsX2Nhbm9uX2ludGVybmFsLmNjCi1AQCAtNDksMTEgKzQ5LDExIEBACi0gICAg IGF1dG8gbWFzayA9IGIgPj0gMHgyNCAmJiBiIDw9IDB4N2UgJiYgYiAhPSAweDI3ICYmIGIgIT0g MHgzYyAmJiBiICE9IDB4M2U7Ci0gCi0gI2lmZGVmIF9fU1NFMl9fCi0tICAgIGlmIChfbW1fbW92 ZW1hc2tfZXBpOChtYXNrKSAhPSAweGZmZmYpIHsKLSsgICAgaWYgKF9tbV9tb3ZlbWFza19lcGk4 KHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4aT4obWFzaykpICE9IDB4ZmZmZikgewotICAgICAgIHJl dHVybiBpOwotICAgICB9Ci0gI2Vsc2UKLS0gICAgaWYgKHZtaW52cV91OChtYXNrKSA9PSAwKSB7 Ci0rICAgIGlmICh2bWludnFfdTgocmVpbnRlcnByZXRfY2FzdDx1aW50OHgxNl90PihtYXNrKSkg PT0gMCkgewotICAgICAgIHJldHVybiBpOwotICAgICB9Ci0gI2VuZGlmCgpkaWZmIC0tZ2l0IGEv Y2hyb21pdW0tMTEwLXY4LWdjYy5wYXRjaCBiL2Nocm9taXVtLTExMC12OC1nY2MucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiY2ExOWEuLjAwMDAwMDAKLS0tIGEvY2hyb21p dW0tMTEwLXY4LWdjYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLUZyb20g MTVkMTIzMDA5YjdlOTg3ZTk0NjMwOWNkNTcyNGFlMTdmMzc2YmQxNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4K LURhdGU6IFN1biwgMTggRGVjIDIwMjIgMTY6MjY6MDIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0g R0NDOiBmaXggc2VsZWN0aW9uIG9mIElNTUVESUFURV9DUkFTSAotCi1pbW1lZGlhdGVfY3Jhc2gu aCBzdGlsbCB1c2VzIFY4X0NDX0dDQyBkZWZpbmUgdG8gZGV0ZXJtaW5lIHdoaWNoCi1JTU1FRElB VEVfQ1JBU0ggbWFjcm8gaXMgdXNlZC4gVGhpcyBzaG91bGQgYmUgVjhfQ0NfR05VIGluc3RlYWQu Ci1PdGhlcndpc2Ugd2VpcmQgY29tcGlsZSBlcnJvcnMgYXJlIGhhcHBlbmluZyB3aXRoIHR1cmJv c2hhZnQuCi0KLUJ1ZzogY2hyb21pdW06ODE5Mjk0Ci1DaGFuZ2UtSWQ6IElkNzdmZTc0MDZhZTE2 YTgwNGUxZTQ2Njg0NGY4MWQ2YzcyOGVjMDA4Ci1SZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1 bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL3Y4L3Y4LysvNDExMTg0OQotQ29tbWl0LVF1ZXVl OiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1SZXZpZXdlZC1ieTog TWljaGFlbCBMaXBwYXV0eiA8bWxpcHBhdXR6QGNocm9taXVtLm9yZz4KLUNyLUNvbW1pdC1Qb3Np dGlvbjogcmVmcy9oZWFkcy9tYWluQHsjODQ5MjN9Ci0tLS0KLQotZGlmZiAtLWdpdCBhL3NyYy9i YXNlL2ltbWVkaWF0ZS1jcmFzaC5oIGIvc3JjL2Jhc2UvaW1tZWRpYXRlLWNyYXNoLmgKLWluZGV4 IDc3MGNiMjcuLmNlNjI0MGIgMTAwNjQ0Ci0tLS0gYS92OC9zcmMvYmFzZS9pbW1lZGlhdGUtY3Jh c2guaAotKysrIGIvdjgvc3JjL2Jhc2UvaW1tZWRpYXRlLWNyYXNoLmgKLUBAIC0xNDAsOSArMTQw LDkgQEAKLSAgICAgW10geyBUUkFQX1NFUVVFTkNFXygpOyB9KCk7ICBcCi0gICB9IHdoaWxlIChm YWxzZSkKLSAKLS0jZW5kaWYgIC8vICFWOF9DQ19HQ0MKLSsjZW5kaWYgIC8vICFWOF9DQ19HTlUK LSAKLS0jaWYgZGVmaW5lZChfX2NsYW5nX18pIHx8IFY4X0NDX0dDQwotKyNpZiBkZWZpbmVkKF9f Y2xhbmdfXykgfHwgVjhfQ0NfR05VCi0gCi0gLy8gX19idWlsdGluX3VucmVhY2hhYmxlKCkgaGlu dHMgdG8gdGhlIGNvbXBpbGVyIHRoYXQgdGhpcyBpcyBub3JldHVybiBhbmQgY2FuCi0gLy8gYmUg cGFja2VkIGluIHRoZSBmdW5jdGlvbiBlcGlsb2d1ZS4KCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0x MTEtdjgtc3RkLWxheW91dDEucGF0Y2ggYi9jaHJvbWl1bS0xMTEtdjgtc3RkLWxheW91dDEucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1YjI2MzMuLjAwMDAwMDAKLS0tIGEv Y2hyb21pdW0tMTExLXY4LXN0ZC1sYXlvdXQxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIy OSArMCwwIEBACi1Gcm9tIDQ3MjQyOWU2MjNjZjQ4ZTg2NGE3YTJmMTBkNTg5ODE3YTg4Mjg5YTEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBOaWtvbGFvcyBQYXBhc3B5cm91IDxuaWtv bGFvc0BjaHJvbWl1bS5vcmc+Ci1EYXRlOiBXZWQsIDE4IEphbiAyMDIzIDIxOjExOjU5ICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIFtoZWFwXSBGaXggc2F2aW5nIHRoZSBjYWxsZWUtc2F2ZWQgcmVn aXN0ZXJzIG9uIHN0YWNrCi0KLVRoaXMgQ0wgcmVpbnN0YXRlcyB0aGUgdHJhbXBvbGluZSBmb3Ig cHVzaGluZyB0aGUgdmFsdWVzIG9mCi1jYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIG9uIHRoZSBzdGFj aywgd2hpY2ggaXMgdXNlZCBmb3Igc3RhY2sgc2Nhbm5pbmcuCi1JdCByZWludHJvZHVjZXMgdGhl IHNldCBvZiBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZnVuY3Rpb25zCi1QdXNoQWxsUmVnaXN0ZXJz QW5kSXRlcmF0ZVN0YWNrLCByZW1vdmVkIGluIGNycmV2LmNvbS9jLzM5ODkxNDMuCi1UaGUgcmVh c29uIGZvciB0aGlzIGNoYW5nZSBpcyB0aGF0IHRoZSBzaW1wbGVyIGFyY2hpdGVjdHVyZS1zcGVj aWZpYwotZnVuY3Rpb25zIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyBmYWlsZWQgdG8gY29ycmVj dGx5IHNhdmUgdGhlCi12YWx1ZXMgb2YgdGhlIHJlZ2lzdGVycywgaW4gdGhlIHByZXNlbmNlIG9m IEMrKyBjb21waWxlciBvcHRpbWl6YXRpb25zLgotCi1JdCBhbHNvIHJlbW92ZXMgdGhlIHN0YWNr IGNvbnRleHQsIGludHJvZHVjZWQgaW4gY3JyZXYuY29tL2MvNDAxNzUxMiwKLWFuZCB1c2VzIGFn YWluIHRoZSB0cmFtcG9saW5lIGZvciBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgc3RhY2suCi0KLUJ1 Zzogdjg6MTMyNTcKLUNoYW5nZS1JZDogSTllNjU2YTliM2JhNjYxNjE2ODYwMjMwMGYyMTgwYjRm MzQwNTkzZjMKLVJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3Vy Y2UuY29tL2MvdjgvdjgvKy80MTcxNjM5Ci1Db21taXQtUXVldWU6IE5pa29sYW9zIFBhcGFzcHly b3UgPG5pa29sYW9zQGNocm9taXVtLm9yZz4KLVJldmlld2VkLWJ5OiBPbWVyIEthdHogPG9tZXJr YXR6QGNocm9taXVtLm9yZz4KLVJldmlld2VkLWJ5OiBNaWNoYWVsIExpcHBhdXR6IDxtbGlwcGF1 dHpAY2hyb21pdW0ub3JnPgotQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyM4 NTM5NH0KLQotKHN0cmlwcGVkIHRlc3RzKQotLS0tCi0KLWRpZmYgLS1naXQgYS9CVUlMRC5iYXpl bCBiL0JVSUxELmJhemVsCi1pbmRleCAyODNlZWZmLi5lMzI2OWE0IDEwMDY0NAotLS0tIGEvdjgv QlVJTEQuYmF6ZWwKLSsrKyBiL3Y4L0JVSUxELmJhemVsCi1AQCAtMzIwMSwxNiArMzIwMSwxNiBA QAotICAgICAgICAgIyBOb3RlIHRoZXNlIGNhbm5vdCBiZSB2OF90YXJnZXRfaXNfKiBzZWxlY3Rz IGJlY2F1c2UgdGhlc2UgY29udGFpbgotICAgICAgICAgIyBpbmxpbmUgYXNzZW1ibHkgdGhhdCBy dW5zIGluc2lkZSB0aGUgZXhlY3V0YWJsZS4gU2luY2UgdGhlc2UgYXJlCi0gICAgICAgICAjIGxp bmtlZCBkaXJlY3RseSBpbnRvIG1rc25hcHNob3QsIHRoZXkgbXVzdCB1c2UgdGhlIGFjdHVhbCB0 YXJnZXQgY3B1LgotLSAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGluZV9hc21faWEz MiI6IFsic3JjL2hlYXAvYmFzZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVyc19hc20uY2MiXSwKLS0g ICAgICAgICJAdjgvL2JhemVsL2NvbmZpZzppc19pbmxpbmVfYXNtX3g2NCI6IFsic3JjL2hlYXAv YmFzZS9hc20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyJdLAotLSAgICAgICAgIkB2OC8vYmF6 ZWwvY29uZmlnOmlzX2lubGluZV9hc21fYXJtIjogWyJzcmMvaGVhcC9iYXNlL2FzbS9hcm0vc2F2 ZV9yZWdpc3RlcnNfYXNtLmNjIl0sCi0tICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfaW5s aW5lX2FzbV9hcm02NCI6IFsic3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvc2F2ZV9yZWdpc3RlcnNf YXNtLmNjIl0sCi0tICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV9zMzkw eCI6IFsic3JjL2hlYXAvYmFzZS9hc20vczM5MC9zYXZlX3JlZ2lzdGVyc19hc20uY2MiXSwKLS0g ICAgICAgICJAdjgvL2JhemVsL2NvbmZpZzppc19pbmxpbmVfYXNtX3Jpc2N2NjQiOiBbInNyYy9o ZWFwL2Jhc2UvYXNtL3Jpc2N2NjQvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIl0sCi0tICAgICAgICAi QHY4Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV9wcGM2NGxlIjogWyJzcmMvaGVhcC9iYXNl L2FzbS9wcGMvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIl0sCi0tICAgICAgICAiQHY4Ly9iYXplbC9j b25maWc6aXNfbXN2Y19hc21faWEzMiI6IFsic3JjL2hlYXAvYmFzZS9hc20vaWEzMi9zYXZlX3Jl Z2lzdGVyc19tYXNtLmFzbSJdLAotLSAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX21zdmNf YXNtX3g2NCI6IFsic3JjL2hlYXAvYmFzZS9hc20veDY0L3NhdmVfcmVnaXN0ZXJzX21hc20uYXNt Il0sCi0tICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfbXN2Y19hc21fYXJtNjQiOiBbInNy Yy9oZWFwL2Jhc2UvYXNtL2FybTY0L3NhdmVfcmVnaXN0ZXJzX21hc20uUyJdLAotKyAgICAgICAg IkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGluZV9hc21faWEzMiI6IFsic3JjL2hlYXAvYmFzZS9h c20vaWEzMi9wdXNoX3JlZ2lzdGVyc19hc20uY2MiXSwKLSsgICAgICAgICJAdjgvL2JhemVsL2Nv bmZpZzppc19pbmxpbmVfYXNtX3g2NCI6IFsic3JjL2hlYXAvYmFzZS9hc20veDY0L3B1c2hfcmVn aXN0ZXJzX2FzbS5jYyJdLAotKyAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGluZV9h c21fYXJtIjogWyJzcmMvaGVhcC9iYXNlL2FzbS9hcm0vcHVzaF9yZWdpc3RlcnNfYXNtLmNjIl0s Ci0rICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV9hcm02NCI6IFsic3Jj L2hlYXAvYmFzZS9hc20vYXJtNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIl0sCi0rICAgICAgICAi QHY4Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV9zMzkweCI6IFsic3JjL2hlYXAvYmFzZS9h c20vczM5MC9wdXNoX3JlZ2lzdGVyc19hc20uY2MiXSwKLSsgICAgICAgICJAdjgvL2JhemVsL2Nv bmZpZzppc19pbmxpbmVfYXNtX3Jpc2N2NjQiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL3Jpc2N2NjQv cHVzaF9yZWdpc3RlcnNfYXNtLmNjIl0sCi0rICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNf aW5saW5lX2FzbV9wcGM2NGxlIjogWyJzcmMvaGVhcC9iYXNlL2FzbS9wcGMvcHVzaF9yZWdpc3Rl cnNfYXNtLmNjIl0sCi0rICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfbXN2Y19hc21faWEz MiI6IFsic3JjL2hlYXAvYmFzZS9hc20vaWEzMi9wdXNoX3JlZ2lzdGVyc19tYXNtLmFzbSJdLAot KyAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX21zdmNfYXNtX3g2NCI6IFsic3JjL2hlYXAv YmFzZS9hc20veDY0L3B1c2hfcmVnaXN0ZXJzX21hc20uYXNtIl0sCi0rICAgICAgICAiQHY4Ly9i YXplbC9jb25maWc6aXNfbXN2Y19hc21fYXJtNjQiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0 L3B1c2hfcmVnaXN0ZXJzX21hc20uUyJdLAotICAgICB9KSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEv QlVJTEQuZ24gYi9CVUlMRC5nbgotaW5kZXggODBhN2ViNi4uNTY3OThkYiAxMDA2NDQKLS0tLSBh L3Y4L0JVSUxELmduCi0rKysgYi92OC9CVUlMRC5nbgotQEAgLTU5ODksMzEgKzU5ODksMzEgQEAK LSAKLSAgIGlmIChpc19jbGFuZyB8fCAhaXNfd2luKSB7Ci0gICAgIGlmIChjdXJyZW50X2NwdSA9 PSAieDY0IikgewotLSAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20veDY0L3Nh dmVfcmVnaXN0ZXJzX2FzbS5jYyIgXQotKyAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFz ZS9hc20veDY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyIgXQotICAgICB9IGVsc2UgaWYgKGN1cnJl bnRfY3B1ID09ICJ4ODYiKSB7Ci0tICAgICAgc291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2Fz bS9pYTMyL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyIgXQotKyAgICAgIHNvdXJjZXMgKz0gWyAic3Jj L2hlYXAvYmFzZS9hc20vaWEzMi9wdXNoX3JlZ2lzdGVyc19hc20uY2MiIF0KLSAgICAgfSBlbHNl IGlmIChjdXJyZW50X2NwdSA9PSAiYXJtIikgewotLSAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hl YXAvYmFzZS9hc20vYXJtL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyIgXQotKyAgICAgIHNvdXJjZXMg Kz0gWyAic3JjL2hlYXAvYmFzZS9hc20vYXJtL3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyIgXQotICAg ICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLS0gICAgICBzb3VyY2VzICs9 IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyIgXQotKyAg ICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvcHVzaF9yZWdpc3RlcnNf YXNtLmNjIiBdCi0gICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0IikgewotLSAg ICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vcHBjL3NhdmVfcmVnaXN0ZXJzX2Fz bS5jYyIgXQotKyAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vcHBjL3B1c2hf cmVnaXN0ZXJzX2FzbS5jYyIgXQotICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJzMzkw eCIpIHsKLS0gICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL3MzOTAvc2F2ZV9y ZWdpc3RlcnNfYXNtLmNjIiBdCi0rICAgICAgc291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2Fz bS9zMzkwL3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyIgXQotICAgICB9IGVsc2UgaWYgKGN1cnJlbnRf Y3B1ID09ICJtaXBzNjRlbCIpIHsKLS0gICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2Uv YXNtL21pcHM2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MiIF0KLSsgICAgICBzb3VyY2VzICs9IFsg InNyYy9oZWFwL2Jhc2UvYXNtL21pcHM2NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MiIF0KLSAgICAg fSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAibG9vbmc2NCIpIHsKLS0gICAgICBzb3VyY2VzICs9 IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2xvb25nNjQvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIiBdCi0r ICAgICAgc291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2FzbS9sb29uZzY0L3B1c2hfcmVnaXN0 ZXJzX2FzbS5jYyIgXQotICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJyaXNjdjY0IiB8 fCBjdXJyZW50X2NwdSA9PSAicmlzY3YzMiIpIHsKLS0gICAgICBzb3VyY2VzICs9IFsgInNyYy9o ZWFwL2Jhc2UvYXNtL3Jpc2N2L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyIgXQotKyAgICAgIHNvdXJj ZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vcmlzY3YvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIiBd Ci0gICAgIH0KLSAgIH0gZWxzZSBpZiAoaXNfd2luKSB7Ci0gICAgIGlmIChjdXJyZW50X2NwdSA9 PSAieDY0IikgewotLSAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20veDY0L3Nh dmVfcmVnaXN0ZXJzX21hc20uYXNtIiBdCi0rICAgICAgc291cmNlcyArPSBbICJzcmMvaGVhcC9i YXNlL2FzbS94NjQvcHVzaF9yZWdpc3RlcnNfbWFzbS5hc20iIF0KLSAgICAgfSBlbHNlIGlmIChj dXJyZW50X2NwdSA9PSAieDg2IikgewotLSAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFz ZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVyc19tYXNtLmFzbSIgXQotKyAgICAgIHNvdXJjZXMgKz0g WyAic3JjL2hlYXAvYmFzZS9hc20vaWEzMi9wdXNoX3JlZ2lzdGVyc19tYXNtLmFzbSIgXQotICAg ICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJhcm02NCIpIHsKLS0gICAgICBzb3VyY2VzICs9 IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3NhdmVfcmVnaXN0ZXJzX21hc20uUyIgXQotKyAg ICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvcHVzaF9yZWdpc3RlcnNf bWFzbS5TIiBdCi0gICAgIH0KLSAgIH0KLSAKLWRpZmYgLS1naXQgYS9zcmMvZXhlY3V0aW9uL2lz b2xhdGUuY2MgYi9zcmMvZXhlY3V0aW9uL2lzb2xhdGUuY2MKLWluZGV4IDhhMmVjODAuLjMxNTM2 YTEgMTAwNjQ0Ci0tLS0gYS92OC9zcmMvZXhlY3V0aW9uL2lzb2xhdGUuY2MKLSsrKyBiL3Y4L3Ny Yy9leGVjdXRpb24vaXNvbGF0ZS5jYwotQEAgLTMwNzUsOCArMzA3NSw3IEBACi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLmdldCgpOwotICAgY3VycmVudCA9IFdhc21Db250aW51YXRpb25PYmplY3Q6OmNh c3QoY3VycmVudCkucGFyZW50KCk7Ci0tICB0aHJlYWRfbG9jYWxfdG9wKCktPnN0YWNrXy5TZXRT dGFja1N0YXJ0KAotLSAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHN0YWNrLT5iYXNlKCkp KTsKLSsgIGhlYXAoKS0+U2V0U3RhY2tTdGFydChyZWludGVycHJldF9jYXN0PHZvaWQqPihzdGFj ay0+YmFzZSgpKSk7Ci0gICAvLyBXZSBkb24ndCBuZWVkIHRvIGFkZCBhbGwgaW5hY3RpdmUgc3Rh Y2tzLiBPbmx5IHRoZSBvbmVzIGluIHRoZSBhY3RpdmUgY2hhaW4KLSAgIC8vIG1heSBjb250YWlu IGNwcCBoZWFwIHBvaW50ZXJzLgotICAgd2hpbGUgKCFjdXJyZW50LklzVW5kZWZpbmVkKCkpIHsK LUBAIC0zMzcyLDkgKzMzNzEsMTIgQEAKLSAgIElzb2xhdGUqIHNhdmVkX2lzb2xhdGUgPSBpc29s YXRlLT5UcnlHZXRDdXJyZW50KCk7Ci0gICBTZXRJc29sYXRlVGhyZWFkTG9jYWxzKGlzb2xhdGUs IG51bGxwdHIpOwotICAgaXNvbGF0ZS0+c2V0X3RocmVhZF9pZChUaHJlYWRJZDo6Q3VycmVudCgp KTsKLS0gIGlzb2xhdGUtPnRocmVhZF9sb2NhbF90b3AoKS0+c3RhY2tfID0KLS0gICAgICBzYXZl ZF9pc29sYXRlID8gc3RkOjptb3ZlKHNhdmVkX2lzb2xhdGUtPnRocmVhZF9sb2NhbF90b3AoKS0+ c3RhY2tfKQotLSAgICAgICAgICAgICAgICAgICAgOiA6OmhlYXA6OmJhc2U6OlN0YWNrKGJhc2U6 OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOwotKyAgaWYgKHNhdmVkX2lzb2xhdGUpIHsKLSsgICAg aXNvbGF0ZS0+dGhyZWFkX2xvY2FsX3RvcCgpLT5zdGFja18gPQotKyAgICAgICAgc3RkOjptb3Zl KHNhdmVkX2lzb2xhdGUtPnRocmVhZF9sb2NhbF90b3AoKS0+c3RhY2tfKTsKLSsgIH0gZWxzZSB7 Ci0rICAgIGlzb2xhdGUtPmhlYXAoKS0+U2V0U3RhY2tTdGFydChiYXNlOjpTdGFjazo6R2V0U3Rh Y2tTdGFydCgpKTsKLSsgIH0KLSAKLSAgIGJvb2wgb3duc19zaGFyZWRfaXNvbGF0ZSA9IGlzb2xh dGUtPm93bnNfc2hhcmVkX2lzb2xhdGVfOwotICAgSXNvbGF0ZSogbWF5YmVfc2hhcmVkX2lzb2xh dGUgPSBpc29sYXRlLT5zaGFyZWRfaXNvbGF0ZV87Ci1kaWZmIC0tZ2l0IGEvc3JjL2V4ZWN1dGlv bi90aHJlYWQtbG9jYWwtdG9wLmNjIGIvc3JjL2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmNj Ci1pbmRleCAwZDcwNzFkLi5jMTE1YWUwIDEwMDY0NAotLS0tIGEvdjgvc3JjL2V4ZWN1dGlvbi90 aHJlYWQtbG9jYWwtdG9wLmNjCi0rKysgYi92OC9zcmMvZXhlY3V0aW9uL3RocmVhZC1sb2NhbC10 b3AuY2MKLUBAIC00NCwxMCArNDQsMTMgQEAKLSAgIENsZWFyKCk7Ci0gICBpc29sYXRlXyA9IGlz b2xhdGU7Ci0gICB0aHJlYWRfaWRfID0gVGhyZWFkSWQ6OkN1cnJlbnQoKTsKLS0gIHN0YWNrXy5T ZXRTdGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOwotICNpZiBWOF9FTkFC TEVfV0VCQVNTRU1CTFkKLSsgIHN0YWNrXy5TZXRTdGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRT dGFja1N0YXJ0KCksCi0rICAgICAgICAgICAgICAgICAgICAgICB2OF9mbGFncy5leHBlcmltZW50 YWxfd2FzbV9zdGFja19zd2l0Y2hpbmcpOwotICAgdGhyZWFkX2luX3dhc21fZmxhZ19hZGRyZXNz XyA9IHJlaW50ZXJwcmV0X2Nhc3Q8QWRkcmVzcz4oCi0gICAgICAgdHJhcF9oYW5kbGVyOjpHZXRU aHJlYWRJbldhc21UaHJlYWRMb2NhbEFkZHJlc3MoKSk7Ci0rI2Vsc2UKLSsgIHN0YWNrXy5TZXRT dGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCksIGZhbHNlKTsKLSAjZW5kaWYg IC8vIFY4X0VOQUJMRV9XRUJBU1NFTUJMWQotICNpZmRlZiBVU0VfU0lNVUxBVE9SCi0gICBzaW11 bGF0b3JfID0gU2ltdWxhdG9yOjpjdXJyZW50KGlzb2xhdGUpOwotZGlmZiAtLWdpdCBhL3NyYy9o ZWFwL2Jhc2UvYXNtL2FybS9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2Fz bS9hcm0vcHVzaF9yZWdpc3RlcnNfYXNtLmNjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDAwMDAwMC4uNTI0NmMzZgotLS0tIC9kZXYvbnVsbAotKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9h c20vYXJtL3B1c2hfcmVnaXN0ZXJzX2FzbS5jYwotQEAgLTAsMCArMSwzOSBAQAotKy8vIENvcHly aWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0r Ly8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGlj ZW5zZSB0aGF0IGNhbiBiZQotKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0rLy8g UHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyB0byBnZXQgdGhlbSBvbiB0aGUgc3RhY2sg Zm9yIGNvbnNlcnZhdGl2ZQotKy8vIHN0YWNrIHNjYW5uaW5nLgotKy8vCi0rLy8gU2VlIGFzbS94 NjQvcHVzaF9yZWdpc3RlcnNfY2xhbmcuY2MgZm9yIHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90IGdl bmVyYXRlZAotKy8vIHVzaW5nIGNsYW5nLgotKy8vCi0rLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9U QVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKLSsv LyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFuZCBub3QgcHJvdmlkZSB0aGVtLgotKwot Ky8vIFdlIG1haW50YWluIDgtYnl0ZSBhbGlnbm1lbnQgYXQgY2FsbHMgYnkgcHVzaGluZyBhbiBh ZGRpdGlvbmFsCi0rLy8gbm9uLWNhbGxlZS1zYXZlZCByZWdpc3RlciAocjMpLgotKy8vCi0rLy8g Q2FsbGluZyBjb252ZW50aW9uIHNvdXJjZToKLSsvLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcv d2lraS9DYWxsaW5nX2NvbnZlbnRpb24jQVJNXyhBMzIpCi0rLy8gaHR0cDovL2luZm9jZW50ZXIu YXJtLmNvbS9oZWxwL2luZGV4LmpzcD90b3BpYz0vY29tLmFybS5kb2MuZmFxcy9rYTQxMjcuaHRt bAotK2FzbSgiLmdsb2JsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sgICAgICAgICAg ICAgXG4iCi0rICAgICIudHlwZSBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrLCAlZnVu Y3Rpb24gICBcbiIKLSsgICAgIi5oaWRkZW4gUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFj ayAgICAgICAgICAgIFxuIgotKyAgICAiUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjazog ICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFB1c2ggYWxsIGNhbGxlZS1zYXZlZCByZWdp c3RlcnMgYW5kIHNhdmUgcmV0dXJuIGFkZHJlc3MuCi0rICAgIC8vIE9ubHkge3I0LXIxMX0gYXJl IGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuIFB1c2ggcjMgaW4gYWRkaXRpb24gdG8gYWxpZ24KLSsg ICAgLy8gdGhlIHN0YWNrIGJhY2sgdG8gOCBieXRlcy4KLSsgICAgIiAgcHVzaCB7cjMtcjExLCBs cn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBQYXNzIDFzdCBw YXJhbWV0ZXIgKHIwKSB1bmNoYW5nZWQgKFN0YWNrKikuCi0rICAgIC8vIFBhc3MgMm5kIHBhcmFt ZXRlciAocjEpIHVuY2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCi0rICAgIC8vIFNhdmUgM3JkIHBh cmFtZXRlciAocjI7IEl0ZXJhdGVTdGFja0NhbGxiYWNrKS4KLSsgICAgIiAgbW92IHIzLCByMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBQYXNzIDNy ZCBwYXJhbWV0ZXIgYXMgc3AgKHN0YWNrIHBvaW50ZXIpLgotKyAgICAiICBtb3YgcjIsIHNwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIENhbGwgdGhl IGNhbGxiYWNrLgotKyAgICAiICBibHggcjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0rICAgIC8vIERpc2NhcmQgYWxsIHRoZSByZWdpc3RlcnMuCi0rICAg ICIgIGFkZCBzcCwgc3AsICMzNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LSsgICAgLy8gUG9wIGxyIGludG8gcGMgd2hpY2ggcmV0dXJucyBhbmQgc3dpdGNoZXMgbW9kZSBp ZiBuZWVkZWQuCi0rICAgICIgIHBvcCB7cGN9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIpOwotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL2FybS9zYXZl X3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9hcm0vc2F2ZV9yZWdpc3RlcnNf YXNtLmNjCi1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGFjZTk1MDMuLjAwMDAwMDAK LS0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL2FybS9zYXZlX3JlZ2lzdGVyc19hc20uY2MKLSsr KyAvZGV2L251bGwKLUBAIC0xLDM2ICswLDAgQEAKLS0vLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjgg cHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLS8vIFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK LS0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLQotLSNpbmNsdWRlIDxzcmMvaGVhcC9i YXNlL3N0YWNrLmg+Ci0tCi0tLy8gU2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpbiB0 aGUgc3BlY2lmaWVkIGJ1ZmZlci4KLS0vLyBleHRlcm4gIkMiIHZvaWQgU2F2ZUNhbGxlZVNhdmVk UmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOwotLQotLS8vIFNlZSBhc20veDY0L3NhdmVfcmVn aXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCi0tLy8g dXNpbmcgY2xhbmcuCi0tLy8KLS0vLyBEbyBub3QgZGVwZW5kIG9uIFY4X1RBUkdFVF9PU18qIGRl ZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRoZQotLS8vIEdOIHRvb2xjaGFp biAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92aWRlIHRoZW0uCi0tLy8KLS0vLyBXZSBtYWlu dGFpbiA4LWJ5dGUgYWxpZ25tZW50IGF0IGNhbGxzIGJ5IHB1c2hpbmcgYW4gYWRkaXRpb25hbAot LS8vIG5vbi1jYWxsZWUtc2F2ZWQgcmVnaXN0ZXIgKHIzKS4KLS0vLwotLS8vIENhbGxpbmcgY29u dmVudGlvbiBzb3VyY2U6Ci0tLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2FsbGlu Z19jb252ZW50aW9uI0FSTV8oQTMyKQotLS8vIGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVs cC9pbmRleC5qc3A/dG9waWM9L2NvbS5hcm0uZG9jLmZhcXMva2E0MTI3Lmh0bWwKLS0KLS0vLyA4 IDMyLWJpdCByZWdpc3RlcnMgPSA4IGludHBydF90Ci0tc3RhdGljX2Fzc2VydChoZWFwOjpiYXNl OjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDgsCi0tICAgICAgICAg ICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7 Ci0tc3RhdGljX2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDQsICJNaXNtYXRjaCBpbiB3b3Jk IHNpemUiKTsKLS0KLS1hc20oIi5nbG9ibCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAg ICAgICAgXG4iCi0tICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMsICVmdW5jdGlv biAgIFxuIgotLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAg ICBcbiIKLS0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAgICAgICAg XG4iCi0tICAgIC8vIHIwOiBbIGludHB0cl90KiBidWZmZXIgXQotLSAgICAvLyBTYXZlIHRoZSBj YWxsZWUtc2F2ZWQgcmVnaXN0ZXJzOiB7cjQtcjExfS4KLS0gICAgIiAgc3RtIHIwLCB7cjQtcjEx fSAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgIC8vIFJldHVybi4KLS0gICAgIiAg YnggbHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iKTsKLWRpZmYgLS1n aXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMv aGVhcC9iYXNlL2FzbS9hcm02NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4xZWZjYzM0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi92OC9z cmMvaGVhcC9iYXNlL2FzbS9hcm02NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MKLUBAIC0wLDAgKzEs NjIgQEAKLSsvLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmln aHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5 IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5T RSBmaWxlLgotKwotKy8vIFB1c2ggYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgdG8gZ2V0IHRo ZW0gb24gdGhlIHN0YWNrIGZvciBjb25zZXJ2YXRpdmUKLSsvLyBzdGFjayBzY2FubmluZy4KLSsv LwotKy8vIFNlZSBhc20veDY0L3B1c2hfcmVnaXN0ZXJzX2NsYW5nLmNjIGZvciB3aHkgdGhlIGZ1 bmN0aW9uIGlzIG5vdCBnZW5lcmF0ZWQKLSsvLyB1c2luZyBjbGFuZy4KLSsvLwotKy8vIERvIG5v dCBkZXBlbmQgb24gVjhfVEFSR0VUX09TXyogZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkg b3ZlcnJpZGUgdGhlCi0rLy8gR04gdG9vbGNoYWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHBy b3ZpZGUgdGhlbS4KLSsKLSsvLyBXZSBtYWludGFpbiAxNi1ieXRlIGFsaWdubWVudC4KLSsvLwot Ky8vIENhbGxpbmcgY29udmVudGlvbiBzb3VyY2U6Ci0rLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEu b3JnL3dpa2kvQ2FsbGluZ19jb252ZW50aW9uI0FSTV8oQTY0KQotKwotK2FzbSgKLSsjaWYgZGVm aW5lZChfX0FQUExFX18pCi0rICAgICIuZ2xvYmwgX1B1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRl U3RhY2sgICAgICAgICAgICBcbiIKLSsgICAgIi5wcml2YXRlX2V4dGVybiBfUHVzaEFsbFJlZ2lz dGVyc0FuZEl0ZXJhdGVTdGFjayAgIFxuIgotKyAgICAiLnAyYWxpZ24gMiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICJfUHVzaEFsbFJlZ2lzdGVyc0Fu ZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICBcbiIKLSsjZWxzZSAgLy8gIWRlZmluZWQo X19BUFBMRV9fKQotKyAgICAiLmdsb2JsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sg ICAgICAgICAgICAgXG4iCi0rI2lmICFkZWZpbmVkKF9XSU42NCkKLSsgICAgIi50eXBlIFB1c2hB bGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2ssICVmdW5jdGlvbiAgIFxuIgotKyAgICAiLmhpZGRl biBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgXG4iCi0rI2VuZGlm ICAvLyAhZGVmaW5lZChfV0lONjQpCi0rICAgICIucDJhbGlnbiAyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVy YXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgIFxuIgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX19B UFBMRV9fKQotKyAgICAvLyB4MTkteDI5IGFyZSBjYWxsZWUtc2F2ZWQuCi0rICAgICIgIHN0cCB4 MTksIHgyMCwgW3NwLCAjLTE2XSEgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAg c3RwIHgyMSwgeDIyLCBbc3AsICMtMTZdISAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAiICBzdHAgeDIzLCB4MjQsIFtzcCwgIy0xNl0hICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgICIgIHN0cCB4MjUsIHgyNiwgW3NwLCAjLTE2XSEgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLSsgICAgIiAgc3RwIHgyNywgeDI4LCBbc3AsICMtMTZdISAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotKyNpZmRlZiBWOF9FTkFCTEVfQ09OVFJPTF9GTE9XX0lOVEVHUklUWQotKyAg ICAvLyBTaWduIHJldHVybiBhZGRyZXNzLgotKyAgICAiICBwYWNpYXNwICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rI2VuZGlmCi0rICAgICIgIHN0cCBmcCwg bHIsICAgW3NwLCAjLTE2XSEgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gTWFp bnRhaW4gZnJhbWUgcG9pbnRlci4KLSsgICAgIiAgbW92IGZwLCBzcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBQYXNzIDFzdCBwYXJhbWV0ZXIgKHgw KSB1bmNoYW5nZWQgKFN0YWNrKikuCi0rICAgIC8vIFBhc3MgMm5kIHBhcmFtZXRlciAoeDEpIHVu Y2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCi0rICAgIC8vIFNhdmUgM3JkIHBhcmFtZXRlciAoeDI7 IEl0ZXJhdGVTdGFja0NhbGxiYWNrKQotKyAgICAiICBtb3YgeDcsIHgyICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBhc3MgM3JkIHBhcmFtZXRlciBh cyBzcCAoc3RhY2sgcG9pbnRlcikuCi0rICAgICIgIG1vdiB4Miwgc3AgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgYmxyIHg3ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBMb2FkIHJldHVybiBhZGRy ZXNzIGFuZCBmcmFtZSBwb2ludGVyLgotKyAgICAiICBsZHAgZnAsIGxyLCBbc3BdLCAjMTYgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rI2lmZGVmIFY4X0VOQUJMRV9DT05UUk9MX0ZM T1dfSU5URUdSSVRZCi0rICAgIC8vIEF1dGhlbnRpY2F0ZSByZXR1cm4gYWRkcmVzcy4KLSsgICAg IiAgYXV0aWFzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgot KyNlbmRpZgotKyAgICAvLyBEcm9wIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgotKyAgICAi ICBhZGQgc3AsIHNwLCAjODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgICIgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIpOwotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3B1c2hfcmVnaXN0ZXJz X21hc20uUyBiL3NyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3B1c2hfcmVnaXN0ZXJzX21hc20uUwot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjg4ODUyM2EKLS0tLSAvZGV2L251 bGwKLSsrKyBiL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3B1c2hfcmVnaXN0ZXJzX21hc20u UwotQEAgLTAsMCArMSwzMiBAQAotKzsgQ29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0 aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSs7IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSs7IGZvdW5kIGlu IHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0rOyBUaGlzIGZpbGUgaXMgZXhhY3RseSB0aGUgc2FtZSBh cyBwdXNoX3JlZ2lzdGVyc19hc20uY2MsIGp1c3QgZm9ybWF0dGVkIGZvcgotKzsgdGhlIE1pY3Jv c29mdCBBcm0gQXNzZW1ibGVyLgotKwotKyAgICBBUkVBIHwudGV4dHwsIENPREUsIEFMSUdOPTQs IFJFQURPTkxZCi0rICAgIEVYUE9SVCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrCi0r UHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjawotKyAgICA7IHgxOS14MjkgYXJlIGNhbGxl ZS1zYXZlZAotKyAgICBTVFAgeDE5LCB4MjAsIFtzcCwgIy0xNl0hCi0rICAgIFNUUCB4MjEsIHgy MiwgW3NwLCAjLTE2XSEKLSsgICAgU1RQIHgyMywgeDI0LCBbc3AsICMtMTZdIQotKyAgICBTVFAg eDI1LCB4MjYsIFtzcCwgIy0xNl0hCi0rICAgIFNUUCB4MjcsIHgyOCwgW3NwLCAjLTE2XSEKLSsg ICAgU1RQIGZwLCBsciwgW3NwLCAjLTE2XSEKLSsgICAgOyBNYWludGFpbiBmcmFtZSBwb2ludGVy Ci0rICAgIE1PViBmcCwgc3AKLSsgICAgOyBQYXNzIDFzdCBwYXJhbWV0ZXIgKHgwKSB1bmNoYW5n ZWQgKFN0YWNrKikuCi0rICAgIDsgUGFzcyAybmQgcGFyYW1ldGVyICh4MSkgdW5jaGFuZ2VkIChT dGFja1Zpc2l0b3IqKS4KLSsgICAgOyBTYXZlIDNyZCBwYXJhbWV0ZXIgKHgyOyBJdGVyYXRlU3Rh Y2tDYWxsYmFjaykKLSsgICAgTU9WIHg3LCB4MgotKyAgICA7IFBhc3MgM3JkIHBhcmFtZXRlciBh cyBzcCAoc3RhY2sgcG9pbnRlcikKLSsgICAgTU9WIHgyLCBzcAotKyAgICBCTFIgeDcKLSsgICAg OyBMb2FkIHJldHVybiBhZGRyZXNzCi0rICAgIExEUiBsciwgW3NwLCAjOF0KLSsgICAgOyBSZXN0 b3JlIGZyYW1lIHBvaW50ZXIgYW5kIHBvcCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KLSsg ICAgTERSIGZwLCBbc3BdLCAjOTYKLSsgICAgUkVUCi0rICAgIEVORAotZGlmZiAtLWdpdCBhL3Ny Yy9oZWFwL2Jhc2UvYXNtL2FybTY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jh c2UvYXNtL2FybTY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0Ci1pbmRleCA1ZmU4MWQ4Li4wMDAwMDAwCi0tLS0gYS92OC9zcmMvaGVhcC9iYXNlL2FzbS9h cm02NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MKLSsrKyAvZGV2L251bGwKLUBAIC0xLDUwICswLDAg QEAKLS0vLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgotLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLS0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgotLQotLSNpbmNsdWRlIDxzcmMvaGVhcC9iYXNlL3N0YWNrLmg+Ci0tCi0tLy8gU2F2ZSBh bGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KLS0vLyBl eHRlcm4gIkMiIHZvaWQgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIp OwotLQotLS8vIFNlZSBhc20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBm dW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCi0tLy8gdXNpbmcgY2xhbmcuCi0tLy8KLS0vLyBEbyBu b3QgZGVwZW5kIG9uIFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5 IG92ZXJyaWRlIHRoZQotLS8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBw cm92aWRlIHRoZW0uCi0tLy8KLS0vLyBXZSBtYWludGFpbiAxNi1ieXRlIGFsaWdubWVudC4KLS0v LwotLS8vIENhbGxpbmcgY29udmVudGlvbiBzb3VyY2U6Ci0tLy8gaHR0cHM6Ly9lbi53aWtpcGVk aWEub3JnL3dpa2kvQ2FsbGluZ19jb252ZW50aW9uI0FSTV8oQTY0KQotLQotLS8vIDExIDY0LWJp dCByZWdpc3RlcnMgPSAxMSBpbnRwcnRfdAotLXN0YXRpY19hc3NlcnQoaGVhcDo6YmFzZTo6U3Rh Y2s6Ok51bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoKSA9PSAxMSwKLS0gICAgICAgICAgICAg ICJNaXNtYXRjaCBpbiB0aGUgbnVtYmVyIG9mIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMiKTsKLS1z dGF0aWNfYXNzZXJ0KHNpemVvZihpbnRwdHJfdCkgPT0gOCwgIk1pc21hdGNoIGluIHdvcmQgc2l6 ZSIpOwotLQotLWFzbSgKLS0jaWYgZGVmaW5lZChfX0FQUExFX18pCi0tICAgICIuZ2xvYmwgX1Nh dmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAgICAgIFxuIgotLSAgICAiLnByaXZhdGVfZXh0 ZXJuIF9TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICBcbiIKLS0gICAgIi5wMmFsaWduIDIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICJfU2F2ZUNhbGxlZVNhdmVk UmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAgIFxuIgotLSNlbHNlICAvLyAhZGVmaW5lZChfX0FQ UExFX18pCi0tICAgICIuZ2xvYmwgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAgICAgICAgICAg IFxuIgotLSNpZiAhZGVmaW5lZChfV0lONjQpCi0tICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMsICVmdW5jdGlvbiAgIFxuIgotLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMgICAgICAgICAgICBcbiIKLS0jZW5kaWYgIC8vICFkZWZpbmVkKF9XSU42NCkKLS0g ICAgIi5wMmFsaWduIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAg ICJTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAgICAgICAgICAgICAgICAgIFxuIgotLSNlbmRp ZiAgLy8gIWRlZmluZWQoX19BUFBMRV9fKQotLSAgICAvLyAkeDA6IFsgaW50cHRyX3QqIGJ1ZmZl ciBdCi0tICAgIC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnM6IHgxOS14MjkuCi0t ICAgICIgIHN0cCB4MTksIHgyMCwgW3gwXSwgIzE2ICAgICAgICAgICAgICAgICAgIFxuIgotLSAg ICAiICBzdHAgeDIxLCB4MjIsIFt4MF0sICMxNiAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAg IiAgc3RwIHgyMywgeDI0LCBbeDBdLCAjMTYgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIg IHN0cCB4MjUsIHgyNiwgW3gwXSwgIzE2ICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBz dHAgeDI3LCB4MjgsIFt4MF0sICMxNiAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3Ry IHgyOSwgW3gwXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgIC8vIFJldHVy bi4KLS0gICAgIiAgcmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i KTsKLWRpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19t YXNtLlMgYi9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19tYXNtLlMKLWRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggYWI3OTA1NS4uMDAwMDAwMAotLS0tIGEvdjgv c3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvc2F2ZV9yZWdpc3RlcnNfbWFzbS5TCi0rKysgL2Rldi9u dWxsCi1AQCAtMSwyNCArMCwwIEBACi0tOyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBh dXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLTsgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLTsgZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0KLS07IFRoaXMgZmlsZSBpcyBleGFjdGx5IHRoZSBzYW1l IGFzIHNhdmVfcmVnaXN0ZXJzX2FzbS5jYywganVzdCBmb3JtYXR0ZWQgZm9yCi0tOyB0aGUgTWlj cm9zb2Z0IEFybSBBc3NlbWJsZXIuCi0tCi0tOyBTYXZlIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0 ZXJzIGluIHRoZSBzcGVjaWZpZWQgYnVmZmVyLgotLTsgZXh0ZXJuICJDIiB2b2lkIFNhdmVDYWxs ZWVTYXZlZFJlZ2lzdGVycyhpbnRwdHJfdCogYnVmZmVyKTsKLS0KLS0gICAgQVJFQSB8LnRleHR8 LCBDT0RFLCBBTElHTj00LCBSRUFET05MWQotLSAgICBFWFBPUlQgU2F2ZUNhbGxlZVNhdmVkUmVn aXN0ZXJzCi0tU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzCi0tICAgIDsgeDA6IFsgaW50cHRyX3Qq IGJ1ZmZlciBdCi0tICAgIDsgeDE5LXgyOSBhcmUgY2FsbGVlLXNhdmVkCi0tICAgIFNUUCB4MTks IHgyMCwgW3gwXSwgIzE2Ci0tICAgIFNUUCB4MjEsIHgyMiwgW3gwXSwgIzE2Ci0tICAgIFNUUCB4 MjMsIHgyNCwgW3gwXSwgIzE2Ci0tICAgIFNUUCB4MjUsIHgyNiwgW3gwXSwgIzE2Ci0tICAgIFNU UCB4MjcsIHgyOCwgW3gwXSwgIzE2Ci0tICAgIFNUUiB4MjksIFt4MF0KLS0gICAgOyBSZXR1cm4u Ci0tICAgIFJFVAotLSAgICBFTkQKLWRpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9pYTMy L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdp c3RlcnNfYXNtLmNjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZWQ5YzE0 YQotLS0tIC9kZXYvbnVsbAotKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9hc20vaWEzMi9wdXNoX3Jl Z2lzdGVyc19hc20uY2MKLUBAIC0wLDAgKzEsNTMgQEAKLSsvLyBDb3B5cmlnaHQgMjAyMCB0aGUg VjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlz IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4g YmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKy8vIFB1c2ggYWxsIGNhbGxl ZS1zYXZlZCByZWdpc3RlcnMgdG8gZ2V0IHRoZW0gb24gdGhlIHN0YWNrIGZvciBjb25zZXJ2YXRp dmUKLSsvLyBzdGFjayBzY2FubmluZy4KLSsvLwotKy8vIFNlZSBhc20veDY0L3B1c2hfcmVnaXN0 ZXJzX2NsYW5nLmNjIGZvciB3aHkgdGhlIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmF0ZWQKLSsvLyB1 c2luZyBjbGFuZy4KLSsvLwotKy8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VUX09TXyogZGVm aW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCi0rLy8gR04gdG9vbGNoYWlu IChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KLSsKLSsvLyBXZSBtYWludGFp biAxNi1ieXRlIGFsaWdubWVudCBhdCBjYWxscy4gVGhlcmUgaXMgYW4gNC1ieXRlIHJldHVybiBh ZGRyZXNzCi0rLy8gb24gdGhlIHN0YWNrIGFuZCB3ZSBwdXNoIDI4IGJ5dGVzIHdoaWNoIG1haW50 YWlucyAxNi1ieXRlIHN0YWNrIGFsaWdubWVudAotKy8vIGF0IHRoZSBjYWxsLgotKy8vCi0rLy8g VGhlIGZvbGxvd2luZyBhc3N1bWVzIGNkZWNsIGNhbGxpbmcgY29udmVudGlvbi4KLSsvLyBTb3Vy Y2U6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1g4Nl9jYWxsaW5nX2NvbnZlbnRpb25z I2NkZWNsCi0rYXNtKAotKyNpZmRlZiBfV0lOMzIKLSsgICAgIi5nbG9ibCBfUHVzaEFsbFJlZ2lz dGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAgICAgIFxuIgotKyAgICAiX1B1c2hBbGxSZWdpc3Rl cnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgXG4iCi0rI2Vsc2UgICAvLyAhX1dJ TjMyCi0rICAgICIuZ2xvYmwgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAg ICAgICBcbiIKLSsgICAgIi50eXBlIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2ssICVm dW5jdGlvbiAgIFxuIgotKyAgICAiLmhpZGRlbiBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0 YWNrICAgICAgICAgICAgXG4iCi0rICAgICJQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNr OiAgICAgICAgICAgICAgICAgICBcbiIKLSsjZW5kaWYgIC8vICFfV0lOMzIKLSsgICAgLy8gWyBJ dGVyYXRlU3RhY2tDYWxsYmFjayBdCi0rICAgIC8vIFsgU3RhY2tWaXNpdG9yKiAgICAgICAgXQot KyAgICAvLyBbIFN0YWNrKiAgICAgICAgICAgICAgIF0KLSsgICAgLy8gWyByZXQgICAgICAgICAg ICAgICAgICBdCi0rICAgIC8vIGVicCBpcyBjYWxsZWUtc2F2ZWQuIE1haW50YWluIHByb3BlciBm cmFtZSBwb2ludGVyIGZvciBkZWJ1Z2dpbmcuCi0rICAgICIgIHB1c2ggJWVicCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgbW92bCAlZXNwLCAlZWJw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBwdXNoICVlYngg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHB1c2gg JWVzaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAg cHVzaCAlZWRpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAvLyBTYXZlIDNyZCBwYXJhbWV0ZXIgKEl0ZXJhdGVTdGFja0NhbGxiYWNrKS4KLSsgICAgIiAg bW92bCAyOCglZXNwKSwgJWVjeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAvLyBQYXNzIDNyZCBwYXJhbWV0ZXIgYXMgZXNwIChzdGFjayBwb2ludGVyKS4KLSsgICAgIiAg cHVzaCAlZXNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAvLyBQYXNzIDJuZCBwYXJhbWV0ZXIgKFN0YWNrVmlzaXRvciopLgotKyAgICAiICBwdXNoIDI4 KCVlc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBh c3MgMXN0IHBhcmFtZXRlciAoU3RhY2sqKS4KLSsgICAgIiAgcHVzaCAyOCglZXNwKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBjYWxsIColZWN4ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBvcCB0aGUgY2Fs bGVlLXNhdmVkIHJlZ2lzdGVycy4KLSsgICAgIiAgYWRkbCAkMjQsICVlc3AgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBSZXN0b3JlIHJicCBhcyBpdCB3YXMg dXNlZCBhcyBmcmFtZSBwb2ludGVyLgotKyAgICAiICBwb3AgJWVicCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHJldCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOwotZGlmZiAtLWdpdCBhL3NyYy9oZWFw L2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdpc3RlcnNfbWFzbS5hc20gYi9zcmMvaGVhcC9iYXNlL2Fz bS9pYTMyL3B1c2hfcmVnaXN0ZXJzX21hc20uYXNtCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMC4uYTM1ZmQ2ZQotLS0tIC9kZXYvbnVsbAotKysrIGIvdjgvc3JjL2hlYXAvYmFz ZS9hc20vaWEzMi9wdXNoX3JlZ2lzdGVyc19tYXNtLmFzbQotQEAgLTAsMCArMSw0OCBAQAotKzs7 IENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCi0rOzsgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5 bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotKzs7IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0r Ci0rOzsgTUFTTSBzeW50YXgKLSs7OyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9j cHAvYXNzZW1ibGVyL21hc20vbWljcm9zb2Z0LW1hY3JvLWFzc2VtYmxlci1yZWZlcmVuY2U/dmll dz12cy0yMDE5Ci0rCi0rLm1vZGVsIGZsYXQsIEMKLSsKLStwdWJsaWMgUHVzaEFsbFJlZ2lzdGVy c0FuZEl0ZXJhdGVTdGFjawotKwotKy5jb2RlCi0rUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVT dGFjazoKLSsgICAgOzsgUHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyB0byBnZXQgdGhl bSBvbiB0aGUgc3RhY2sgZm9yIGNvbnNlcnZhdGl2ZQotKyAgICA7OyBzdGFjayBzY2FubmluZy4K LSsgICAgOzsKLSsgICAgOzsgV2UgbWFpbnRhaW4gMTYtYnl0ZSBhbGlnbm1lbnQgYXQgY2FsbHMu IFRoZXJlIGlzIGFuIDgtYnl0ZSByZXR1cm4gYWRkcmVzcwotKyAgICA7OyBvbiB0aGUgc3RhY2sg YW5kIHdlIHB1c2ggNzIgYnl0ZXMgd2hpY2ggbWFpbnRhaW5zIDE2LWJ5dGUgc3RhY2sgYWxpZ25t ZW50Ci0rICAgIDs7IGF0IHRoZSBjYWxsLgotKyAgICA7OwotKyAgICA7OyBUaGUgZm9sbG93aW5n IGFzc3VtZXMgY2RlY2wgY2FsbGluZyBjb252ZW50aW9uLgotKyAgICA7OyBTb3VyY2U6IGh0dHBz Oi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9jcHAvY2RlY2w/dmlldz12cy0yMDE5Ci0r ICAgIDs7Ci0rICAgIDs7IFsgSXRlcmF0ZVN0YWNrQ2FsbGJhY2sgXQotKyAgICA7OyBbIFN0YWNr VmlzaXRvciogICAgICAgIF0KLSsgICAgOzsgWyBTdGFjayogICAgICAgICAgICAgICBdCi0rICAg IDs7IFsgcmV0ICAgICAgICAgICAgICAgICAgXQotKyAgICBwdXNoIGVicAotKyAgICBtb3YgZWJw LCBlc3AKLSsgICAgcHVzaCBlYngKLSsgICAgcHVzaCBlc2kKLSsgICAgcHVzaCBlZGkKLSsgICAg OzsgU2F2ZSAzcmQgcGFyYW1ldGVyIChJdGVyYXRlU3RhY2tDYWxsYmFjaykuCi0rICAgIG1vdiBl Y3gsIFsgZXNwICsgMjggXQotKyAgICA7OyBQYXNzIDNyZCBwYXJhbWV0ZXIgYXMgZXNwIChzdGFj ayBwb2ludGVyKS4KLSsgICAgcHVzaCBlc3AKLSsgICAgOzsgUGFzcyAybmQgcGFyYW1ldGVyIChT dGFja1Zpc2l0b3IqKS4KLSsgICAgcHVzaCBbIGVzcCArIDI4IF0KLSsgICAgOzsgUGFzcyAxc3Qg cGFyYW1ldGVyIChTdGFjayopLgotKyAgICBwdXNoIFsgZXNwICsgMjggXQotKyAgICBjYWxsIGVj eAotKyAgICA7OyBQb3AgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCi0rICAgIGFkZCBlc3As IDI0Ci0rICAgIDs7IFJlc3RvcmUgcmJwIGFzIGl0IHdhcyB1c2VkIGFzIGZyYW1lIHBvaW50ZXIu Ci0rICAgIHBvcCBlYnAKLSsgICAgcmV0Ci0rCi0rZW5kCi1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAv YmFzZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9p YTMyL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCA3YzA1MjQ3Li4wMDAwMDAwCi0tLS0gYS92OC9zcmMvaGVhcC9iYXNlL2FzbS9pYTMyL3NhdmVf cmVnaXN0ZXJzX2FzbS5jYwotKysrIC9kZXYvbnVsbAotQEAgLTEsNDggKzAsMCBAQAotLS8vIENv cHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu Ci0tLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQotLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tCi0t I2luY2x1ZGUgPHNyYy9oZWFwL2Jhc2Uvc3RhY2suaD4KLS0KLS0vLyBTYXZlIGFsbCBjYWxsZWUt c2F2ZWQgcmVnaXN0ZXJzIGluIHRoZSBzcGVjaWZpZWQgYnVmZmVyLgotLS8vIGV4dGVybiAiQyIg dm9pZCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7Ci0tCi0tLy8g U2VlIGFzbS94NjQvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIGZvciB3aHkgdGhlIGZ1bmN0aW9uIGlz IG5vdCBnZW5lcmF0ZWQKLS0vLyB1c2luZyBjbGFuZy4KLS0vLwotLS8vIERvIG5vdCBkZXBlbmQg b24gVjhfVEFSR0VUX09TXyogZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUg dGhlCi0tLy8gR04gdG9vbGNoYWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhl bS4KLS0vLwotLS8vIFRoZSBmb2xsb3dpbmcgYXNzdW1lcyBjZGVjbCBjYWxsaW5nIGNvbnZlbnRp b24uCi0tLy8gU291cmNlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9YODZfY2FsbGlu Z19jb252ZW50aW9ucyNjZGVjbAotLQotLS8vIDMgMzItYml0IHJlZ2lzdGVycyA9IDMgaW50cHJ0 X3QKLS1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJhc2U6OlN0YWNrOjpOdW1iZXJPZkNhbGxlZVNhdmVk UmVnaXN0ZXJzKCkgPT0gMywKLS0gICAgICAgICAgICAgICJNaXNtYXRjaCBpbiB0aGUgbnVtYmVy IG9mIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMiKTsKLS1zdGF0aWNfYXNzZXJ0KHNpemVvZihpbnRw dHJfdCkgPT0gNCwgIk1pc21hdGNoIGluIHdvcmQgc2l6ZSIpOwotLQotLWFzbSgKLS0jaWZkZWYg X1dJTjMyCi0tICAgICIuZ2xvYmwgX1NhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAgICAg IFxuIgotLSAgICAiX1NhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAgICAgICBc biIKLS0jZWxzZSAgIC8vICFfV0lOMzIKLS0gICAgIi5nbG9ibCBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMgICAgICAgICAgICAgXG4iCi0tICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3Rl cnMsICVmdW5jdGlvbiAgIFxuIgotLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3Rl cnMgICAgICAgICAgICBcbiIKLS0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAg ICAgICAgICAgICAgXG4iCi0tI2VuZGlmICAvLyAhX1dJTjMyCi0tICAgIC8vIDg6IFsgaW50cHRy X3QqIGJ1ZmZlciBdCi0tICAgIC8vIDQ6IFsgcmV0ICAgICAgICAgICAgICBdCi0tICAgIC8vIDA6 IFsgc2F2ZWQgJWVicCAgICAgICBdCi0tICAgIC8vICVlYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWlu dGFpbiBwcm9wZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgotLSAgICAiICBwdXNoICVl YnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIG1v dmwgJWVzcCwgJWVicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAg Ly8gTG9hZCB0aGUgYnVmZmVyJ3MgYWRkcmVzcyBpbiAlZWN4LgotLSAgICAiICBtb3ZsIDgoJWVi cCksICVlY3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgIC8vIFNhdmUg dGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCi0tICAgICIgIG1vdmwgJWVieCwgMCglZWN4KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgbW92bCAlZXNpLCA0KCVl Y3gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBtb3ZsICVlZGks IDgoJWVjeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgIC8vIFJlc3Rv cmUgJWVicCBhcyBpdCB3YXMgdXNlZCBhcyBmcmFtZSBwb2ludGVyIGFuZCByZXR1cm4uCi0tICAg ICIgIHBvcCAlZWJwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LS0gICAgIiAgcmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVy c19tYXNtLmFzbSBiL3NyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvc2F2ZV9yZWdpc3RlcnNfbWFzbS5h c20KLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDg5MmIwMi4uMDAwMDAwMAotLS0t IGEvdjgvc3JjL2hlYXAvYmFzZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVyc19tYXNtLmFzbQotKysr IC9kZXYvbnVsbAotQEAgLTEsMzYgKzAsMCBAQAotLTs7IENvcHlyaWdodCAyMDIwIHRoZSBWOCBw cm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tOzsgVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQot LTs7IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tCi0tOzsgTUFTTSBzeW50YXgKLS07OyBo dHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvYXNzZW1ibGVyL21hc20vbWljcm9z b2Z0LW1hY3JvLWFzc2VtYmxlci1yZWZlcmVuY2U/dmlldz12cy0yMDE5Ci0tCi0tLm1vZGVsIGZs YXQsIEMKLS0KLS1wdWJsaWMgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzCi0tCi0tLmNvZGUKLS0g ICAgOzsgU2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1 ZmZlci4KLS0gICAgOzsgZXh0ZXJuICJDIiB2b2lkIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhp bnRwdHJfdCogYnVmZmVyKTsKLS0gICAgOzsKLS0gICAgOzsgVGhlIGZvbGxvd2luZyBhc3N1bWVz IGNkZWNsIGNhbGxpbmcgY29udmVudGlvbi4KLS0gICAgOzsgU291cmNlOiBodHRwczovL2RvY3Mu bWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvY3BwL2NkZWNsP3ZpZXc9dnMtMjAxOQotLQotLVNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVyczoKLS0gICAgOzsgODogWyBpbnRwdHJfdCogYnVmZmVyIF0KLS0g ICAgOzsgNDogWyByZXQgICAgICAgICAgICAgIF0KLS0gICAgOzsgMDogWyBzYXZlZCAlZWJwICAg ICAgIF0KLS0gICAgOzsgJWVicCBpcyBjYWxsZWUtc2F2ZWQuIE1haW50YWluIHByb3BlciBmcmFt ZSBwb2ludGVyIGZvciBkZWJ1Z2dpbmcuCi0tICAgIHB1c2ggZWJwCi0tICAgIG1vdiBlYnAsIGVz cAotLSAgICA7OyBMb2FkIHRoZSBidWZmZXIncyBhZGRyZXNzIGluICVlY3guCi0tICAgIG1vdiBl Y3gsIFtlYnAgKyA4XQotLSAgICA7OyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgot LSAgICBtb3YgW2VjeF0sIGVieAotLSAgICBtb3YgW2VjeCArIDRdLCBlc2kKLS0gICAgbW92IFtl Y3ggKyA4XSwgZWRpCi0tICAgIDs7IFJlc3RvcmUgJWVicCBhcyBpdCB3YXMgdXNlZCBhcyBmcmFt ZSBwb2ludGVyIGFuZCByZXR1cm4uCi0tICAgIHBvcCBlYnAKLS0gICAgcmV0Ci0tCi0tZW5kCi1k aWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vbG9vbmc2NC9wdXNoX3JlZ2lzdGVyc19hc20u Y2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9sb29uZzY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYwotbmV3 IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmFhOGRjZDMKLS0tLSAvZGV2L251bGwK LSsrKyBiL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL2xvb25nNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNj Ci1AQCAtMCwwICsxLDQ4IEBACi0rLy8gQ29weXJpZ2h0IDIwMjEgdGhlIFY4IHByb2plY3QgYXV0 aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBp cyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQg aW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsvLyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0 ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBzdGFjayBmb3IgY29uc2VydmF0aXZlCi0rLy8gc3RhY2sg c2Nhbm5pbmcuCi0rLy8KLSsvLyBTZWUgYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19jbGFuZy5jYyBm b3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCi0rLy8gdXNpbmcgY2xhbmcuCi0r Ly8KLSsvLyBEbyBub3QgZGVwZW5kIG9uIFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBl bWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRoZQotKy8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVP UykgYW5kIG5vdCBwcm92aWRlIHRoZW0uCi0rYXNtKCIudGV4dCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIuZ2xvYmFsIFB1c2hBbGxSZWdp c3RlcnNBbmRJdGVyYXRlU3RhY2sgICAgICAgICAgICAgXG4iCi0rICAgICIudHlwZSBQdXNoQWxs UmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrLCAlZnVuY3Rpb24gICAgXG4iCi0rICAgICIuaGlkZGVu IFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sgICAgICAgICAgICAgXG4iCi0rICAgICJQ dXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgIC8vIFB1c2ggYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgYW5kIHNhdmUgcmV0dXJuIGFk ZHJlc3MuCi0rICAgICIgIGFkZGkuZCAkc3AsICRzcCwgLTk2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHJhLCAkc3AsIDg4ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHM4LCAkc3AsIDgwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHNwLCAkc3AsIDcyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJGZwLCAkc3AsIDY0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHM3LCAk c3AsIDU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQg JHM2LCAkc3AsIDQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIg IHN0LmQgJHM1LCAkc3AsIDQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgICIgIHN0LmQgJHM0LCAkc3AsIDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCi0rICAgICIgIHN0LmQgJHMzLCAkc3AsIDI0ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHMyLCAkc3AsIDE2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHMxLCAkc3AsICA4ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0LmQgJHMwLCAkc3AsICAwICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIE1haW50YWluIGZyYW1lIHBvaW50 ZXIuCi0rICAgICIgIGFkZGkuZCAkczgsICRzcCwgMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0rICAgIC8vIFBhc3MgMXN0IHBhcmFtZXRlciAoYTApIHVuY2hhbmdlZCAoU3Rh Y2sqKS4KLSsgICAgLy8gUGFzcyAybmQgcGFyYW1ldGVyIChhMSkgdW5jaGFuZ2VkIChTdGFja1Zp c2l0b3IqKS4KLSsgICAgLy8gU2F2ZSAzcmQgcGFyYW1ldGVyIChhMjsgSXRlcmF0ZVN0YWNrQ2Fs bGJhY2spLgotKyAgICAiICBhZGRpLmQgJGEzLCAkYTIsIDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgotKyAgICAvLyBDYWxsIHRoZSBjYWxsYmFjay4KLSsgICAgLy8gUGFzcyAz cmQgcGFyYW1ldGVyIGFzIHNwIChzdGFjayBwb2ludGVyKS4KLSsgICAgIiAgYWRkaS5kICRhMiwg JHNwLCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgamlybCAk cmEsICRhMywgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8g TG9hZCByZXR1cm4gYWRkcmVzcy4KLSsgICAgIiAgbGQuZCAkcmEsICRzcCwgODggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gUmVzdG9yZSBmcmFtZSBwb2ludGVy LgotKyAgICAiICBsZC5kICRzOCwgJHNwLCA4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgotKyAgICAvLyBEaXNjYXJkIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgotKyAg ICAiICBhZGRpLmQgJHNwLCAkc3AsIDk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotKyAgICAiICBqaXJsICR6ZXJvLCAkcmEsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vbG9vbmc2NC9zYXZlX3Jl Z2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9sb29uZzY0L3NhdmVfcmVnaXN0ZXJz X2FzbS5jYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBkNWIxMTBkLi4wMDAwMDAw Ci0tLS0gYS92OC9zcmMvaGVhcC9iYXNlL2FzbS9sb29uZzY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5j YwotKysrIC9kZXYvbnVsbAotQEAgLTEsNDAgKzAsMCBAQAotLS8vIENvcHlyaWdodCAyMDIxIHRo ZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tLy8gVXNlIG9mIHRo aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNh biBiZQotLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tCi0tI2luY2x1ZGUgPHNyYy9o ZWFwL2Jhc2Uvc3RhY2suaD4KLS0KLS0vLyBTYXZlIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJz IGluIHRoZSBzcGVjaWZpZWQgYnVmZmVyLgotLS8vIGV4dGVybiAiQyIgdm9pZCBTYXZlQ2FsbGVl U2F2ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7Ci0tCi0tLy8gU2VlIGFzbS94NjQvc2F2 ZV9yZWdpc3RlcnNfYXNtLmNjIGZvciB3aHkgdGhlIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmF0ZWQK LS0vLyB1c2luZyBjbGFuZy4KLS0vLwotLS8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VUX09T XyogZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCi0tLy8gR04gdG9v bGNoYWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KLS0KLS0vLyAxMSA2 NC1iaXQgcmVnaXN0ZXJzID0gMTEgaW50cHJ0X3QKLS1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJhc2U6 OlN0YWNrOjpOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzKCkgPT0gMTEsCi0tICAgICAgICAg ICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7 Ci0tc3RhdGljX2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBpbiB3b3Jk IHNpemUiKTsKLS0KLS1hc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotLSAgICAiLmdsb2JhbCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAg ICAgICAgXG4iCi0tICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMsICVmdW5jdGlv biAgICBcbiIKLS0gICAgIi5oaWRkZW4gU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAgICAgICAg ICAgIFxuIgotLSAgICAiU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAg ICAgXG4iCi0tICAgIC8vICRhMDogWyBpbnRwdHJfdCogYnVmZmVyIF0KLS0gICAgLy8gU2F2ZSB0 aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KLS0gICAgIiAgc3QuZCAkczgsICRhMCwgMCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdC5kICRzcCwgJGEwLCA4ICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0LmQgJGZwLCAkYTAsIDE2ICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3QuZCAkczcsICRhMCwgMjQgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdC5kICRzNiwgJGEwLCAzMiAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0LmQgJHM1LCAkYTAsIDQwICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3QuZCAkczQsICRhMCwgNDggICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdC5kICRzMywgJGEwLCA1NiAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0LmQgJHMyLCAkYTAsIDY0ICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3QuZCAkczEsICRhMCwgNzIgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdC5kICRzMCwgJGEwLCA4MCAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0tICAgIC8vIFJldHVybi4KLS0gICAgIiAgamlybCAkemVybywgJHJh LCAwICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAv YmFzZS9hc20vbWlwczY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2UvYXNt L21pcHM2NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi40Nzc3OWUwCi0tLS0gL2Rldi9udWxsCi0rKysgYi92OC9zcmMvaGVhcC9iYXNl L2FzbS9taXBzNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCi1AQCAtMCwwICsxLDQ5IEBACi0rLy8g Q29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsK LSsvLyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBz dGFjayBmb3IgY29uc2VydmF0aXZlCi0rLy8gc3RhY2sgc2Nhbm5pbmcuCi0rLy8KLSsvLyBTZWUg YXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19jbGFuZy5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBu b3QgZ2VuZXJhdGVkCi0rLy8gdXNpbmcgY2xhbmcuCi0rLy8KLSsvLyBEbyBub3QgZGVwZW5kIG9u IFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRo ZQotKy8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92aWRlIHRoZW0u Ci0rYXNtKCIudGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0rICAgICIuc2V0IG5vcmVvcmRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCi0rICAgICIuZ2xvYmFsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3Rh Y2sgICAgICAgICAgICAgXG4iCi0rICAgICIudHlwZSBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0 ZVN0YWNrLCAlZnVuY3Rpb24gICAgXG4iCi0rICAgICIuaGlkZGVuIFB1c2hBbGxSZWdpc3RlcnNB bmRJdGVyYXRlU3RhY2sgICAgICAgICAgICAgXG4iCi0rICAgICJQdXNoQWxsUmVnaXN0ZXJzQW5k SXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFB1c2ggYWxsIGNh bGxlZS1zYXZlZCByZWdpc3RlcnMgYW5kIHNhdmUgcmV0dXJuIGFkZHJlc3MuCi0rICAgICIgIGRh ZGRpdSAkc3AsICRzcCwgLTk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAg ICIgIHNkICRyYSwgODgoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgICIgIHNkICRzOCwgODAoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0rICAgICIgIHNkICRzcCwgNzIoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCi0rICAgICIgIHNkICRncCwgNjQoJHNwKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHNkICRzNywgNTYoJHNwKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHNkICRzNiwgNDgoJHNwKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHNkICRzNSwgNDAoJHNwKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHNkICRzNCwgMzIo JHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHNkICRz MywgMjQoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIg IHNkICRzMiwgMTYoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgICIgIHNkICRzMSwgIDgoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCi0rICAgICIgIHNkICRzMCwgIDAoJHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0rICAgIC8vIE1haW50YWluIGZyYW1lIHBvaW50ZXIuCi0rICAgICIgIG1vdmUg JHM4LCAkc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8v IFBhc3MgMXN0IHBhcmFtZXRlciAoYTApIHVuY2hhbmdlZCAoU3RhY2sqKS4KLSsgICAgLy8gUGFz cyAybmQgcGFyYW1ldGVyIChhMSkgdW5jaGFuZ2VkIChTdGFja1Zpc2l0b3IqKS4KLSsgICAgLy8g U2F2ZSAzcmQgcGFyYW1ldGVyIChhMjsgSXRlcmF0ZVN0YWNrQ2FsbGJhY2spLgotKyAgICAiICBt b3ZlICRhMywgJGEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAvLyBDYWxsIHRoZSBjYWxsYmFjay4KLSsgICAgIiAgamFsciAkYTMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gRGVsYXkgc2xvdDogUGFzcyAz cmQgcGFyYW1ldGVyIGFzIHNwIChzdGFjayBwb2ludGVyKS4KLSsgICAgIiAgbW92ZSAkYTIsICRz cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gTG9hZCBy ZXR1cm4gYWRkcmVzcy4KLSsgICAgIiAgbGQgJHJhLCA4OCgkc3ApICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gUmVzdG9yZSBmcmFtZSBwb2ludGVyLgotKyAg ICAiICBsZCAkczgsIDgwKCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotKyAgICAiICBqciAkcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgotKyAgICAvLyBEZWxheSBzbG90OiBEaXNjYXJkIGFsbCBjYWxsZWUtc2F2ZWQgcmVn aXN0ZXJzLgotKyAgICAiICBkYWRkaXUgJHNwLCAkc3AsIDk2ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vbWlwczY0L3Nh dmVfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2UvYXNtL21pcHM2NC9zYXZlX3JlZ2lz dGVyc19hc20uY2MKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggOTViY2MzMS4uMDAw MDAwMAotLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20vbWlwczY0L3NhdmVfcmVnaXN0ZXJzX2Fz bS5jYwotKysrIC9kZXYvbnVsbAotQEAgLTEsNDEgKzAsMCBAQAotLS8vIENvcHlyaWdodCAyMDIw IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tLy8gVXNlIG9m IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0 IGNhbiBiZQotLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tCi0tI2luY2x1ZGUgPHNy Yy9oZWFwL2Jhc2Uvc3RhY2suaD4KLS0KLS0vLyBTYXZlIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0 ZXJzIGluIHRoZSBzcGVjaWZpZWQgYnVmZmVyLgotLS8vIGV4dGVybiAiQyIgdm9pZCBTYXZlQ2Fs bGVlU2F2ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7Ci0tCi0tLy8gU2VlIGFzbS94NjQv c2F2ZV9yZWdpc3RlcnNfYXNtLmNjIGZvciB3aHkgdGhlIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmF0 ZWQKLS0vLyB1c2luZyBjbGFuZy4KLS0vLwotLS8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VU X09TXyogZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCi0tLy8gR04g dG9vbGNoYWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KLS0KLS0vLyA5 IDY0LWJpdCByZWdpc3RlcnMgPSA5IGludHBydF90Ci0tc3RhdGljX2Fzc2VydChoZWFwOjpiYXNl OjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDksCi0tICAgICAgICAg ICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7 Ci0tc3RhdGljX2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBpbiB3b3Jk IHNpemUiKTsKLS0KLS1hc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotLSAgICAiLnNldCBub3Jlb3JkZXIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0tICAgICIuZ2xvYmFsIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAg ICAgICBcbiIKLS0gICAgIi50eXBlIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycywgJWZ1bmN0aW9u ICAgIFxuIgotLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAg ICAgXG4iCi0tICAgICJTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAgICAgICAgICAgICAgICAg ICBcbiIKLS0gICAgLy8gJGEwOiBbIGludHB0cl90KiBidWZmZXIgXQotLSAgICAvLyBTYXZlIHRo ZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgotLSAgICAiICBzZCAkZ3AsIDY0KCRhMCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkICRzNywgNTYoJGEwKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc2QgJHM2LCA0OCgkYTApICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzZCAkczUsIDQwKCRhMCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkICRzNCwgMzIoJGEwKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc2QgJHMzLCAyNCgkYTApICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzZCAkczIsIDE2KCRhMCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkICRzMSwgIDgoJGEwKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKLS0gICAgLy8gLi4uIG9uZSBtb3JlIGluIHRoZSBkZWxheSBzbG90 IQotLSAgICAvLyBSZXR1cm4uCi0tICAgICIgIGpyICRyYSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKLS0gICAgLy8gRGVsYXkgc2xvdDoKLS0gICAgIiAgc2QgJHMwLCAg MCgkYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7Ci1kaWZmIC0tZ2l0IGEvc3Jj L2hlYXAvYmFzZS9hc20vcHBjL3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2Uv YXNtL3BwYy9wdXNoX3JlZ2lzdGVyc19hc20uY2MKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi5mODc5OTgwCi0tLS0gL2Rldi9udWxsCi0rKysgYi92OC9zcmMvaGVhcC9iYXNl L2FzbS9wcGMvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCi1AQCAtMCwwICsxLDk3IEBACi0rLy8gQ29w eXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K LSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLSsKLSsv LyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBzdGFj ayBmb3IgY29uc2VydmF0aXZlCi0rLy8gc3RhY2sgc2Nhbm5pbmcuCi0rLy8KLSsvLyBTZWUgYXNt L3g2NC9wdXNoX3JlZ2lzdGVyc19jbGFuZy5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3Qg Z2VuZXJhdGVkCi0rLy8gdXNpbmcgY2xhbmcuCi0rCi0rLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9U QVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKLSsv LyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFuZCBub3QgcHJvdmlkZSB0aGVtLgotKwot Ky8vIFBQQyBBQkkgc291cmNlOgotKy8vIGh0dHA6Ly9yZWZzcGVjcy5saW51eGZvdW5kYXRpb24u b3JnL0VMRi9wcGM2NC9QUEMtZWxmNjRhYmkuaHRtbAotKwotKy8vIEFJWCBSdW50aW1lIHByb2Nl c3Mgc3RhY2s6Ci0rLy8gaHR0cHM6Ly93d3cuaWJtLmNvbS9zdXBwb3J0L2tub3dsZWRnZWNlbnRl ci9zc3dfYWl4XzcxL2Fzc2VtYmxlci9pZGFsYW5ncmVmX3J1bnRpbWVfcHJvY2Vzcy5odG1sCi0r YXNtKAotKyNpZiBkZWZpbmVkKF9BSVgpCi0rICAgICIuY3NlY3QgLnRleHRbUFJdICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIi5hbGlnbiAyICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiLmdsb2JsIC5QdXNoQWxs UmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrLCBoaWRkZW4gICAgXG4iCi0rICAgICIuUHVzaEFsbFJl Z2lzdGVyc0FuZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICBcbiIKLSsjZWxzZQotKyAg ICAiLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgICIuYWxpZ24gMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLSsgICAgIi5nbG9ibCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAg ICAgICAgIFxuIgotKyAgICAiLnR5cGUgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjaywg JWZ1bmN0aW9uICAgXG4iCi0rICAgICIuaGlkZGVuIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRl U3RhY2sgICAgICAgICAgICBcbiIKLSsgICAgIlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3Rh Y2s6ICAgICAgICAgICAgICAgICAgIFxuIgotKyNlbmRpZgotKyAgICAvLyBQdXNoIGFsbCBjYWxs ZWUtc2F2ZWQgcmVnaXN0ZXJzLgotKyAgICAvLyBsciwgVE9DIHBvaW50ZXIsIHIxNiB0byByMzEu IDE2MCBieXRlcy4KLSsgICAgLy8gVGhlIHBhcmFtZXRlciBzYXZlIGFyZWEgc2hhbGwgYmUgYWxs b2NhdGVkIGJ5IHRoZSBjYWxsZXIuIDExMiBieXRlcy4KLSsgICAgLy8gQXQgYW55dGltZSwgU1Ag KHIxKSBuZWVkcyB0byBiZSBtdWx0aXBsZSBvZiAxNiAoaS5lLiAxNi1hbGlnbmVkKS4KLSsgICAg IiAgbWZsciAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgICIgIHN0ZCAwLCAxNigxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotKyNpZiBkZWZpbmVkKF9BSVgpCi0rICAgICIgIHN0ZCAyLCA0MCgxKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyNlbHNlCi0rICAgICIgIHN0ZCAyLCAyNCgxKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyNlbmRpZgotKyAgICAiICBz dGR1IDEsIC0yNTYoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAg IiAgc3RkIDE0LCAxMTIoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgICIgIHN0ZCAxNSwgMTIwKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotKyAgICAiICBzdGQgMTYsIDEyOCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLSsgICAgIiAgc3RkIDE3LCAxMzYoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0rICAgICIgIHN0ZCAxOCwgMTQ0KDEpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgotKyAgICAiICBzdGQgMTksIDE1MigxKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgc3RkIDIwLCAxNjAoMSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0ZCAyMSwgMTY4KDEpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzdGQgMjIsIDE3NigxKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgc3RkIDIzLCAxODQoMSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0ZCAyNCwgMTkyKDEp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzdGQgMjUsIDIw MCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgc3RkIDI2 LCAyMDgoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN0 ZCAyNywgMjE2KDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAi ICBzdGQgMjgsIDIyNCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsg ICAgIiAgc3RkIDI5LCAyMzIoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgICIgIHN0ZCAzMCwgMjQwKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgotKyAgICAiICBzdGQgMzEsIDI0OCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKLSsgICAgLy8gUGFzcyAxc3QgcGFyYW1ldGVyIChyMykgdW5jaGFuZ2VkIChTdGFj ayopLgotKyAgICAvLyBQYXNzIDJuZCBwYXJhbWV0ZXIgKHI0KSB1bmNoYW5nZWQgKFN0YWNrVmlz aXRvciopLgotKyAgICAvLyBTYXZlIDNyZCBwYXJhbWV0ZXIgKHI1OyBJdGVyYXRlU3RhY2tDYWxs YmFjaykuCi0rICAgICIgIG1yIDYsIDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotKyNpZiBkZWZpbmVkKF9BSVgpCi0rICAgIC8vIFNldCB1cCBUT0MgZm9yIGNh bGxlZS4KLSsgICAgIiAgbGQgMiw4KDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0rICAgIC8vIEFJWCB1c2VzIGZ1bmN0aW9uIGRlc2NyaXB0b3JzLCB3aGljaCBt ZWFucyB0aGF0Ci0rICAgIC8vIHBvaW50ZXJzIHRvIGZ1bmN0aW9ucyBkbyBub3QgcG9pbnQgdG8g Y29kZSwgYnV0Ci0rICAgIC8vIGluc3RlYWQgcG9pbnQgdG8gbWV0YWRhdGEgYWJvdXQgdGhlbSwg aGVuY2UKLSsgICAgLy8gbmVlZCB0byBkZXRlcnJlbmNlLgotKyAgICAiICBsZCA2LDAoNikgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsjZW5kaWYKLSsgICAgLy8g UGFzcyAzcmQgcGFyYW1ldGVyIGFzIHNwIChzdGFjayBwb2ludGVyKS4KLSsgICAgIiAgbXIgNSwg MSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rI2lmICFkZWZp bmVkKF9BSVgpCi0rICAgIC8vIFNldCB1cCByMTIgdG8gYmUgZXF1YWwgdG8gdGhlIGNhbGxlZSBh ZGRyZXNzIChpbiBvcmRlciBmb3IgVE9DCi0rICAgIC8vIHJlbG9jYXRpb24pLiBPbmx5IG5lZWRl ZCBvbiBMRSBMaW51eC4KLSsgICAgIiAgbXIgMTIsIDYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0rI2VuZGlmCi0rICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgot KyAgICAiICBtdGN0ciA2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKLSsgICAgIiAgYmN0cmwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0rICAgIC8vIERpc2NhcmQgYWxsIHRoZSByZWdpc3RlcnMuCi0rICAgICIgIGFkZGkg MSwgMSwgMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBS ZXN0b3JlIGxyLgotKyAgICAiICBsZCAwLCAxNigxKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKLSsgICAgIiAgbXRsciAgMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0rI2lmIGRlZmluZWQoX0FJWCkKLSsgICAgLy8gUmVzdG9yZSBU T0MgcG9pbnRlci4KLSsgICAgIiAgbGQgMiwgNDAoMSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0rI2Vsc2UKLSsgICAgIiAgbGQgMiwgMjQoMSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rI2VuZGlmCi0rICAgICIgIGJsciAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7Ci1kaWZmIC0tZ2l0IGEv c3JjL2hlYXAvYmFzZS9hc20vcHBjL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jh c2UvYXNtL3BwYy9zYXZlX3JlZ2lzdGVyc19hc20uY2MKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggOWU4MTAyYS4uMDAwMDAwMAotLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20vcHBj L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYwotKysrIC9kZXYvbnVsbAotQEAgLTEsMTEzICswLDAgQEAK LS0vLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJl c2VydmVkLgotLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLS0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl LgotLQotLSNpbmNsdWRlIDxzcmMvaGVhcC9iYXNlL3N0YWNrLmg+Ci0tCi0tLy8gU2F2ZSBhbGwg Y2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KLS0vLyBleHRl cm4gIkMiIHZvaWQgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOwot LQotLS8vIFNlZSBhc20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBmdW5j dGlvbiBpcyBub3QgZ2VuZXJhdGVkCi0tLy8gdXNpbmcgY2xhbmcuCi0tLy8KLS0vLyBEbyBub3Qg ZGVwZW5kIG9uIFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92 ZXJyaWRlIHRoZQotLS8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92 aWRlIHRoZW0uCi0tLy8KLS0vLyBQUEMgQUJJIHNvdXJjZToKLS0vLyBodHRwOi8vcmVmc3BlY3Mu bGludXhmb3VuZGF0aW9uLm9yZy9FTEYvcHBjNjQvUFBDLWVsZjY0YWJpLmh0bWwKLS0KLS0vLyBB SVggUnVudGltZSBwcm9jZXNzIHN0YWNrOgotLS8vIGh0dHBzOi8vd3d3LmlibS5jb20vc3VwcG9y dC9rbm93bGVkZ2VjZW50ZXIvc3N3X2FpeF83MS9hc3NlbWJsZXIvaWRhbGFuZ3JlZl9ydW50aW1l X3Byb2Nlc3MuaHRtbAotLQotLSNpZmRlZiBfX1BQQzY0X18KLS0KLS0vLyAyMCA2NC1iaXQgcmVn aXN0ZXJzID0gMjAgaW50cHJ0X3QKLS1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJhc2U6OlN0YWNrOjpO dW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzKCkgPT0gMjAsCi0tICAgICAgICAgICAgICAiTWlz bWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7Ci0tc3RhdGlj X2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBpbiB3b3JkIHNpemUiKTsK LS0KLS1hc20oCi0tI2lmIGRlZmluZWQoX0FJWCkKLS0gICAgIi5jc2VjdCAudGV4dFtQUl0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIuYWxpZ24gMiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiLmdsb2JsIC5TYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMsIGhpZGRlbiAgICBcbiIKLS0gICAgIi5TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6 ICAgICAgICAgICAgICAgICAgXG4iCi0tI2Vsc2UKLS0gICAgIi50ZXh0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIuYWxpZ24gMiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiLmdsb2JsIFNhdmVDYWxsZWVTYXZlZFJl Z2lzdGVycyAgICAgICAgICAgICBcbiIKLS0gICAgIi50eXBlIFNhdmVDYWxsZWVTYXZlZFJlZ2lz dGVycywgJWZ1bmN0aW9uICAgXG4iCi0tICAgICIuaGlkZGVuIFNhdmVDYWxsZWVTYXZlZFJlZ2lz dGVycyAgICAgICAgICAgIFxuIgotLSAgICAiU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAg ICAgICAgICAgICAgICBcbiIKLS0jZW5kaWYKLS0gICAgLy8gcjM6IFsgaW50cHRyX3QqIGJ1ZmZl ciBdCi0tICAgIC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnM6IGxyLCBUT0MgcG9p bnRlciAocjIpLCByMTQtcjMxLgotLSAgICAiICBtZmxyIDAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3RkIDAsIDgoMykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0ZCAyLCAxNigzKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgotLSAgICAiICBzdGQgMTQsIDI0KDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKLS0gICAgIiAgc3RkIDE1LCAzMigzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0tICAgICIgIHN0ZCAxNiwgNDAoMykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgotLSAgICAiICBzdGQgMTcsIDQ4KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLS0gICAgIiAgc3RkIDE4LCA1NigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCi0tICAgICIgIHN0ZCAxOSwgNjQoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotLSAgICAiICBzdGQgMjAsIDcyKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LS0gICAgIiAgc3RkIDIxLCA4MCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0t ICAgICIgIHN0ZCAyMiwgODgoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAg ICAiICBzdGQgMjMsIDk2KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAg IiAgc3RkIDI0LCAxMDQoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIg IHN0ZCAyNSwgMTEyKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBz dGQgMjYsIDEyMCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3Rk IDI3LCAxMjgoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0ZCAy OCwgMTM2KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdGQgMjks IDE0NCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3RkIDMwLCAx NTIoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0ZCAzMSwgMTYw KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAvLyBSZXR1cm4uCi0tICAg ICIgIGJsciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7Ci0tCi0t I2Vsc2UgIC8vICFfX1BQQzY0X18KLS0KLS0vLyAyMCAzMi1iaXQgcmVnaXN0ZXJzID0gMjAgaW50 cHJ0X3QKLS1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJhc2U6OlN0YWNrOjpOdW1iZXJPZkNhbGxlZVNh dmVkUmVnaXN0ZXJzKCkgPT0gMjAsCi0tICAgICAgICAgICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51 bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7Ci0tc3RhdGljX2Fzc2VydChzaXplb2Yo aW50cHRyX3QpID09IDQsICJNaXNtYXRjaCBpbiB3b3JkIHNpemUiKTsKLS0KLS1hc20oCi0tI2lm IGRlZmluZWQoX0FJWCkKLS0gICAgIi5nbG9ibCAuU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzLCBo aWRkZW4gICAgXG4iCi0tICAgICIuY3NlY3QgLnRleHRbUFJdICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotLSAgICAiLlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAg ICAgICBcbiIKLS0jZWxzZQotLSAgICAiLmdsb2JsIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAg ICAgICAgICAgICBcbiIKLS0gICAgIi50eXBlIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycywgJWZ1 bmN0aW9uICAgXG4iCi0tICAgICIuaGlkZGVuIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAg ICAgICAgIFxuIgotLSAgICAiU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAgICAgICAg ICAgICBcbiIKLS0jZW5kaWYKLS0gICAgLy8gcjM6IFsgaW50cHRyX3QqIGJ1ZmZlciBdCi0tICAg IC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnM6IGxyLCBUT0MgcG9pbnRlciAocjIp LCByMTQtcjMxLgotLSAgICAiICBtZmxyIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKLS0gICAgIiAgc3QgMCwgNCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0tICAgICIgIHN0IDIsIDgoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgotLSAgICAiICBzdCAxNCwgMTIoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKLS0gICAgIiAgc3QgMTUsIDE2KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0tICAgICIgIHN0IDE2LCAyMCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgot LSAgICAiICBzdCAxNywgMjQoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0g ICAgIiAgc3QgMTgsIDI4KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAg ICIgIHN0IDE5LCAzMigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAi ICBzdCAyMCwgMzYoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAg c3QgMjEsIDQwKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0 IDIyLCA0NCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdCAy MywgNDgoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3QgMjQs IDUyKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0IDI1LCA1 NigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdCAyNiwgNjAo MykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3QgMjcsIDY0KDMp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0IDI4LCA2OCgzKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzdCAyOSwgNzIoMykgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc3QgMzAsIDc2KDMpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHN0IDMxLCA4MCgzKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAvLyBSZXR1cm4uCi0tICAgICIgIGJsciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7Ci0tCi0tI2VuZGlmICAv LyBfX1BQQzY0X18KLWRpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9yaXNjdi9wdXNoX3Jl Z2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9yaXNjdi9wdXNoX3JlZ2lzdGVyc19h c20uY2MKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi43Y2MxM2VhCi0tLS0g L2Rldi9udWxsCi0rKysgYi92OC9zcmMvaGVhcC9iYXNlL2FzbS9yaXNjdi9wdXNoX3JlZ2lzdGVy c19hc20uY2MKLUBAIC0wLDAgKzEsOTMgQEAKLSsvLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJv amVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKLSsv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKy8vIFB1c2ggYWxsIGNhbGxlZS1zYXZl ZCByZWdpc3RlcnMgdG8gZ2V0IHRoZW0gb24gdGhlIHN0YWNrIGZvciBjb25zZXJ2YXRpdmUKLSsv LyBzdGFjayBzY2FubmluZy4KLSsvLwotKy8vIFNlZSBhc20veDY0L3B1c2hfcmVnaXN0ZXJzX2Fz bS5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCi0rLy8gdXNpbmcgY2xh bmcuCi0rLy8KLSsvLyBDYWxsaW5nIGNvbnZlbnRpb24gc291cmNlOgotKy8vIGh0dHBzOi8vcmlz Y3Yub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzAxL3Jpc2N2LWNhbGxpbmcucGRmIFRhYmxl IDE4LjIKLSsjaWZkZWYgVjhfVEFSR0VUX0FSQ0hfUklTQ1Y2NAotK2FzbSgiLmdsb2JhbCBQdXNo QWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgotKyAgICAiLnR5cGUg UHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjaywgJWZ1bmN0aW9uICAgIFxuIgotKyAgICAi LmhpZGRlbiBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgot KyAgICAiUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICAg IFxuIgotKyAgICAvLyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGFuZCBzYXZlIHJl dHVybiBhZGRyZXNzLgotKyAgICAiICBhZGRpIHNwLCBzcCwgLTExMiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBTYXZlIHJldHVybiBhZGRyZXNzLgotKyAgICAi ICBzZCByYSwgMTA0KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgot KyAgICAvLyBzcCBpcyBjYWxsZWUtc2F2ZWQuCi0rICAgICIgIHNkIHNwLCA5NihzcCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIHMwLXMxMSBhcmUgY2Fs bGVlLXNhdmVkLgotKyAgICAiICBzZCBzMTEsIDg4KHNwKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzMTAsIDgwKHNwKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzOSwgNzIoc3ApICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzOCwgNjQoc3ApICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzNywgNTYoc3Ap ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzNiwg NDgoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBz ZCBzNSwgNDAoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAiICBzZCBzNCwgMzIoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotKyAgICAiICBzZCBzMywgMjQoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgotKyAgICAiICBzZCBzMiwgMTYoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzMSwgIDgoc3ApICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBzZCBzMCwgIDAoc3ApICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBNYWludGFpbiBmcmFtZSBwb2ludGVy KGZwIGlzIHMwKS4KLSsgICAgIiAgbXYgczAsIHNwICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gUGFzcyAxc3QgcGFyYW1ldGVyIChhMCkgdW5jaGFu Z2VkIChTdGFjayopLgotKyAgICAvLyBQYXNzIDJuZCBwYXJhbWV0ZXIgKGExKSB1bmNoYW5nZWQg KFN0YWNrVmlzaXRvciopLgotKyAgICAvLyBTYXZlIDNyZCBwYXJhbWV0ZXIgKGEyOyBJdGVyYXRl U3RhY2tDYWxsYmFjaykgdG8gYTMuCi0rICAgICIgIG12IGEzLCBhMiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBhc3MgM3JkIHBhcmFtZXRlciBh cyBzcCAoc3RhY2sgcG9pbnRlcikuCi0rICAgICIgIG12IGEyLCBzcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgot KyAgICAiICBqYWxyIGEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgotKyAgICAvLyBMb2FkIHJldHVybiBhZGRyZXNzLgotKyAgICAiICBsZCByYSwgMTA0KHNw KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBSZXN0b3Jl IGZyYW1lIHBvaW50ZXIuCi0rICAgICIgIGxkIHMwLCAwKHNwKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIGFkZGkgc3AsIHNwLCAxMTIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIGpyIHJhICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iKTsKLSsjZWxpZiBWOF9UQVJHRVRfQVJD SF9SSVNDVjMyCi0rYXNtKCIuZ2xvYmFsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sg ICAgICAgICAgICAgXG4iCi0rICAgICIudHlwZSBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0 YWNrLCAlZnVuY3Rpb24gICAgXG4iCi0rICAgICIuaGlkZGVuIFB1c2hBbGxSZWdpc3RlcnNBbmRJ dGVyYXRlU3RhY2sgICAgICAgICAgICAgXG4iCi0rICAgICJQdXNoQWxsUmVnaXN0ZXJzQW5kSXRl cmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFB1c2ggYWxsIGNhbGxl ZS1zYXZlZCByZWdpc3RlcnMgYW5kIHNhdmUgcmV0dXJuIGFkZHJlc3MuCi0rICAgICIgIGFkZGkg c3AsIHNwLCAtNTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8v IFNhdmUgcmV0dXJuIGFkZHJlc3MuCi0rICAgICIgIHN3IHJhLCA1MihzcCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIHNwIGlzIGNhbGxlZS1zYXZlZC4K LSsgICAgIiAgc3cgc3AsIDQ4KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLSsgICAgLy8gczAtczExIGFyZSBjYWxsZWUtc2F2ZWQuCi0rICAgICIgIHN3IHMxMSwg NDQoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN3 IHMxMCwgNDAoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAg ICIgIHN3IHM5LCAzNihzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgICIgIHN3IHM4LCAzMihzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0rICAgICIgIHN3IHM3LCAyOChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCi0rICAgICIgIHN3IHM2LCAyNChzcCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN3IHM1LCAyMChzcCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN3IHM0LCAxNihzcCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN3IHMzLCAxMihzcCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN3IHMyLCA4KHNw KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHN3IHMx LCAgNChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIg IHN3IHMwLCAgMChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgIC8vIE1haW50YWluIGZyYW1lIHBvaW50ZXIoZnAgaXMgczApLgotKyAgICAiICBtdiBzMCwg c3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBQ YXNzIDFzdCBwYXJhbWV0ZXIgKGEwKSB1bmNoYW5nZWQgKFN0YWNrKikuCi0rICAgIC8vIFBhc3Mg Mm5kIHBhcmFtZXRlciAoYTEpIHVuY2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCi0rICAgIC8vIFNh dmUgM3JkIHBhcmFtZXRlciAoYTI7IEl0ZXJhdGVTdGFja0NhbGxiYWNrKSB0byBhMy4KLSsgICAg IiAgbXYgYTMsIGEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LSsgICAgLy8gUGFzcyAzcmQgcGFyYW1ldGVyIGFzIHNwIChzdGFjayBwb2ludGVyKS4KLSsgICAg IiAgbXYgYTIsIHNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LSsgICAgLy8gQ2FsbCB0aGUgY2FsbGJhY2suCi0rICAgICIgIGphbHIgYTMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIExvYWQgcmV0dXJuIGFk ZHJlc3MuCi0rICAgICIgIGx3IHJhLCA1MihzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCi0rICAgIC8vIFJlc3RvcmUgZnJhbWUgcG9pbnRlci4KLSsgICAgIiAgbHcg czAsIDAoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAg IiAgYWRkaSBzcCwgc3AsIDU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LSsgICAgIiAganIgcmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIpOwotKyNlbmRpZgotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL3Jpc2N2L3Nh dmVfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2UvYXNtL3Jpc2N2L3NhdmVfcmVnaXN0 ZXJzX2FzbS5jYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBhZDBiZjk4Li4wMDAw MDAwCi0tLS0gYS92OC9zcmMvaGVhcC9iYXNlL2FzbS9yaXNjdi9zYXZlX3JlZ2lzdGVyc19hc20u Y2MKLSsrKyAvZGV2L251bGwKLUBAIC0xLDY4ICswLDAgQEAKLS0vLyBDb3B5cmlnaHQgMjAyMCB0 aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLS8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKLS0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLQotLSNpbmNsdWRlIDxzcmMv aGVhcC9iYXNlL3N0YWNrLmg+Ci0tCi0tLy8gU2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVy cyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KLS0vLyBleHRlcm4gIkMiIHZvaWQgU2F2ZUNhbGxl ZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOwotLQotLS8vIFNlZSBhc20veDY0L3Nh dmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVk Ci0tLy8gdXNpbmcgY2xhbmcuCi0tLy8KLS0vLyBDYWxsaW5nIGNvbnZlbnRpb24gc291cmNlOgot LS8vIGh0dHBzOi8vcmlzY3Yub3JnL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzAxL3Jpc2N2LWNh bGxpbmcucGRmIFRhYmxlIDE4LjIKLS0KLS0jaWYgVjhfSE9TVF9BUkNIX1JJU0NWNjQKLS0vLyAx MiA2NC1iaXQgcmVnaXN0ZXJzID0gMTIgaW50cHJ0X3QKLS1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJh c2U6OlN0YWNrOjpOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzKCkgPT0gMTIsCi0tICAgICAg ICAgICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJz Iik7Ci0tc3RhdGljX2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBpbiB3 b3JkIHNpemUiKTsKLS0KLS1hc20oIi5nbG9iYWwgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAg ICAgICAgICAgIFxuIgotLSAgICAiLnR5cGUgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzLCAlZnVu Y3Rpb24gICAgXG4iCi0tICAgICIuaGlkZGVuIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAg ICAgICAgICBcbiIKLS0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAg ICAgICAgIFxuIgotLSAgICAvLyBhMDogWyBpbnRwdHJfdCogYnVmZmVyIF0KLS0gICAgLy8gU2F2 ZSB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVyczogczAtczExLgotLSAgICAiICBzZCBzMTEsIDg4 KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkIHMxMCwgODAo YTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc2QgczksIDcyKGEw KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzZCBzOCwgNjQoYTAp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkIHM3LCA1NihhMCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc2QgczYsIDQ4KGEwKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzZCBzNSwgNDAoYTApICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkIHM0LCAzMihhMCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc2QgczMsIDI0KGEwKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBzZCBzMiwgMTYoYTApICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHNkIHMxLCAgOChhMCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgc2QgczAsICAwKGEwKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAvLyBSZXR1cm4uCi0tICAgICIgIGpyIHJh ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOwotLSNlbGlmIFY4X0hP U1RfQVJDSF9SSVNDVjMyCi0tLy8gMTIgMzItYml0IHJlZ2lzdGVycyA9IDEyIGludHBydF90Ci0t c3RhdGljX2Fzc2VydChoZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lz dGVycygpID09IDEyLAotLSAgICAgICAgICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIgb2Yg Y2FsbGVlLXNhdmVkIHJlZ2lzdGVycyIpOwotLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0cl90 KSA9PSA0LCAiTWlzbWF0Y2ggaW4gd29yZCBzaXplIik7Ci0tCi0tYXNtKCIuZ2xvYmFsIFNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAgICAgICBcbiIKLS0gICAgIi50eXBlIFNhdmVDYWxs ZWVTYXZlZFJlZ2lzdGVycywgJWZ1bmN0aW9uICAgIFxuIgotLSAgICAiLmhpZGRlbiBTYXZlQ2Fs bGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICAgXG4iCi0tICAgICJTYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnM6ICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgLy8gYTA6IFsgaW50cHRyX3Qq IGJ1ZmZlciBdCi0tICAgIC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnM6IHMwLXMx MS4KLS0gICAgIiAgc3cgczExLCA0NChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotLSAgICAiICBzdyBzMTAsIDQwKGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0tICAgICIgIHN3IHM5LCAzNihhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LS0gICAgIiAgc3cgczgsIDMyKGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgot LSAgICAiICBzdyBzNywgMjgoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0t ICAgICIgIHN3IHM2LCAyNChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0g ICAgIiAgc3cgczUsIDIwKGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAg ICAiICBzdyBzNCwgMTYoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAg ICIgIHN3IHMzLCAxMihhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAg IiAgc3cgczIsICA4KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAi ICBzdyBzMSwgIDQoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIg IHN3IHMwLCAgMChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgLy8g UmV0dXJuLgotLSAgICAiICBqciByYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iKTsKLS0jZW5kaWYKLWRpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9zMzkwL3B1 c2hfcmVnaXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2UvYXNtL3MzOTAvcHVzaF9yZWdpc3Rl cnNfYXNtLmNjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZWY5NTRmYQot LS0tIC9kZXYvbnVsbAotKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9hc20vczM5MC9wdXNoX3JlZ2lz dGVyc19hc20uY2MKLUBAIC0wLDAgKzEsMzcgQEAKLSsvLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjgg cHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8vIFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK LSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKy8vIFB1c2ggYWxsIGNhbGxlZS1z YXZlZCByZWdpc3RlcnMgdG8gZ2V0IHRoZW0gb24gdGhlIHN0YWNrIGZvciBjb25zZXJ2YXRpdmUK LSsvLyBzdGFjayBzY2FubmluZy4KLSsKLSsvLyBTZWUgYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19j bGFuZy5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCi0rLy8gdXNpbmcg Y2xhbmcuCi0rCi0rLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFz IHNvbWUgZW1iZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKLSsvLyBHTiB0b29sY2hhaW4gKGUuZy4g Q2hyb21lT1MpIGFuZCBub3QgcHJvdmlkZSB0aGVtLgotKwotKy8vIFMzOTAgQUJJIHNvdXJjZToK LSsvLyBodHRwOi8vcmVmc3BlY3MubGludXhiYXNlLm9yZy9FTEYvelNlcmllcy9senNhYmkwX3pT ZXJpZXMuaHRtbAotK2FzbSgiLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0rICAgICIuYWxpZ24gOCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIi5nbG9ibCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRl cmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgotKyAgICAiLnR5cGUgUHVzaEFsbFJlZ2lzdGVyc0Fu ZEl0ZXJhdGVTdGFjaywgJWZ1bmN0aW9uICAgXG4iCi0rICAgICIuaGlkZGVuIFB1c2hBbGxSZWdp c3RlcnNBbmRJdGVyYXRlU3RhY2sgICAgICAgICAgICBcbiIKLSsgICAgIlB1c2hBbGxSZWdpc3Rl cnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBQdXNoIGFs bCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgotKyAgICAvLyByNi1yMTMsIHIxNCBhbmQgc3AocjE1 KQotKyAgICAiICBzdG1nICVyNiwgJXNwLCA0OCglc3ApICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0rICAgIC8vIEFsbG9jYXRlIGZyYW1lLgotKyAgICAiICBsYXkgJXNwLCAtMTYwKCVz cCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBhc3MgMXN0IHBh cmFtZXRlciAocjIpIHVuY2hhbmdlZCAoU3RhY2sqKS4KLSsgICAgLy8gUGFzcyAybmQgcGFyYW1l dGVyIChyMykgdW5jaGFuZ2VkIChTdGFja1Zpc2l0b3IqKS4KLSsgICAgLy8gU2F2ZSAzcmQgcGFy YW1ldGVyIChyNDsgSXRlcmF0ZVN0YWNrQ2FsbGJhY2spLgotKyAgICAiICBsZ3IgJXI1LCAlcjQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBhc3Mgc3Ag YXMgM3JkIHBhcmFtZXRlci4gMTYwKzQ4IHRvIHBvaW50Ci0rICAgIC8vIHRvIGNhbGxlZSBzYXZl ZCByZWdpb24gc3RvcmVkIGFib3ZlLgotKyAgICAiICBsYXkgJXI0LCAyMDgoJXNwKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgot KyAgICAiICBiYXNyICVyMTQsICVyNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCi0rICAgICIgIGxtZyAlcjE0LCVzcCwgMjcyKCVzcCkgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKLSsgICAgIiAgYnIgJXIxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vczM5MC9zYXZl X3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9zMzkwL3NhdmVfcmVnaXN0ZXJz X2FzbS5jYwotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBiZTkyY2MyLi4wMDAwMDAw Ci0tLS0gYS92OC9zcmMvaGVhcC9iYXNlL2FzbS9zMzkwL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYwot KysrIC9kZXYvbnVsbAotQEAgLTEsMzQgKzAsMCBAQAotLS8vIENvcHlyaWdodCAyMDIwIHRoZSBW OCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tLy8gVXNlIG9mIHRoaXMg c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBi ZQotLS8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tCi0tI2luY2x1ZGUgPHNyYy9oZWFw L2Jhc2Uvc3RhY2suaD4KLS0KLS0vLyBTYXZlIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGlu IHRoZSBzcGVjaWZpZWQgYnVmZmVyLgotLS8vIGV4dGVybiAiQyIgdm9pZCBTYXZlQ2FsbGVlU2F2 ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7Ci0tCi0tLy8gU2VlIGFzbS94NjQvc2F2ZV9y ZWdpc3RlcnNfYXNtLmNjIGZvciB3aHkgdGhlIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmF0ZWQKLS0v LyB1c2luZyBjbGFuZy4KLS0vLwotLS8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VUX09TXyog ZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCi0tLy8gR04gdG9vbGNo YWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KLS0KLS0vLyBTMzkwIEFC SSBzb3VyY2U6Ci0tLy8gaHR0cDovL3JlZnNwZWNzLmxpbnV4YmFzZS5vcmcvRUxGL3pTZXJpZXMv bHpzYWJpMF96U2VyaWVzLmh0bWwKLS0KLS0vLyAxMCA2NC1iaXQgcmVnaXN0ZXJzID0gMTAgaW50 cHJ0X3QKLS1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJhc2U6OlN0YWNrOjpOdW1iZXJPZkNhbGxlZVNh dmVkUmVnaXN0ZXJzKCkgPT0gMTAsCi0tICAgICAgICAgICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51 bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7Ci0tc3RhdGljX2Fzc2VydChzaXplb2Yo aW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBpbiB3b3JkIHNpemUiKTsKLS0KLS1hc20oIi50ZXh0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIuYWxpZ24g OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiLmdsb2JsIFNh dmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAgICAgICBcbiIKLS0gICAgIi50eXBlIFNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVycywgJWZ1bmN0aW9uICAgXG4iCi0tICAgICIuaGlkZGVuIFNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAgICAgIFxuIgotLSAgICAiU2F2ZUNhbGxlZVNhdmVk UmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgLy8gcjI6IFsgaW50cHRyX3Qq IGJ1ZmZlciBdCi0tICAgIC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnM6IHI2LXIx MywgcjE0IGFuZCBzcChyMTUpLgotLSAgICAiICBzdG1nICVyNiwgJXNwLCAwKCVyMikgICAgICAg ICAgICAgICAgICAgICBcbiIKLS0gICAgLy8gUmV0dXJuLgotLSAgICAiICBiciAlcjE0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOwotZGlmZiAtLWdpdCBhL3NyYy9oZWFw L2Jhc2UvYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS94 NjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAw MDAwMC4uMTc4MWE1OAotLS0tIC9kZXYvbnVsbAotKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9hc20v eDY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYwotQEAgLTAsMCArMSwxMDYgQEAKLSsvLyBDb3B5cmln aHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKy8v IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu c2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKy8vIFB1 c2ggYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgdG8gZ2V0IHRoZW0gb24gdGhlIHN0YWNrIGZv ciBjb25zZXJ2YXRpdmUKLSsvLyBzdGFjayBzY2FubmluZy4KLSsvLwotKy8vIFdlIGNhbm5vdCBy ZWx5IG9uIGNsYW5nIGdlbmVyYXRpbmcgdGhlIGZ1bmN0aW9uIGFuZCByaWdodCBzeW1ib2wgbWFu Z2xpbmcKLSsvLyBhcyBgX19hdHRyaWJ1dGVfXygobmFrZWQpKWAgZG9lcyBub3QgcHJldmVudCBj bGFuZyBmcm9tIGdlbmVyYXRpbmcgVFNBTgotKy8vIGZ1bmN0aW9uIGVudHJ5IHN0dWJzIChgX190 c2FuX2Z1bmNfZW50cnlgKS4gRXZlbiB3aXRoCi0rLy8gYF9fYXR0cmlidXRlX18oKG5vX3Nhbml0 aXplX3RocmVhZClgIGFubm90YXRpb24gY2xhbmcgZ2VuZXJhdGVzIHRoZSBlbnRyeQotKy8vIHN0 dWIuCi0rLy8gU2VlIGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU0MDAu Ci0rCi0rLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUg ZW1iZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKLSsvLyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21l T1MpIGFuZCBub3QgcHJvdmlkZSB0aGVtLgotKy8vIF9XSU42NCBEZWZpbmVkIGFzIDEgd2hlbiB0 aGUgY29tcGlsYXRpb24gdGFyZ2V0IGlzIDY0LWJpdCBBUk0gb3IgeDY0LgotKy8vIE90aGVyd2lz ZSwgdW5kZWZpbmVkLgotKyNpZmRlZiBfV0lONjQKLSsKLSsvLyBXZSBtYWludGFpbiAxNi1ieXRl IGFsaWdubWVudCBhdCBjYWxscy4gVGhlcmUgaXMgYW4gOC1ieXRlIHJldHVybiBhZGRyZXNzCi0r Ly8gb24gdGhlIHN0YWNrIGFuZCB3ZSBwdXNoIDIzMiBieXRlcyB3aGljaCBtYWludGFpbnMgMTYt Ynl0ZSBzdGFjayBhbGlnbm1lbnQKLSsvLyBhdCB0aGUgY2FsbC4KLSsvLyBTb3VyY2U6IGh0dHBz Oi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9idWlsZC94NjQtY2FsbGluZy1jb252ZW50 aW9uCi0rYXNtKCIuZ2xvYmwgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAg ICAgICBcbiIKLSsgICAgIlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAg ICAgICAgICAgIFxuIgotKyAgICAvLyByYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWludGFpbiBwcm9w ZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgotKyAgICAiICBwdXNoICVyYnAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIG1vdiAlcnNwLCAl cmJwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gRHVtbXkg Zm9yIGFsaWdubWVudC4KLSsgICAgIiAgcHVzaCAkMHhDRENEQ0QgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBwdXNoICVyc2kgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHB1c2ggJXJkaSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgcHVzaCAlcmJ4ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBwdXNoICVyMTIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIHB1c2ggJXIx MyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgcHVz aCAlcjE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAi ICBwdXNoICVyMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0r ICAgICIgIHN1YiAkMTYwLCAlcnNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKLSsgICAgLy8gVXNlIGFsaWduZWQgaW5zdHJzIGFzIHdlIGFyZSBjZXJ0YWluIHRoYXQgdGhl IHN0YWNrIGlzIHByb3Blcmx5IGFsaWduZWQuCi0rICAgICIgIG1vdmRxYSAleG1tNiwgMTQ0KCVy c3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAgbW92ZHFhICV4bW03LCAx MjgoJXJzcCkgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAiICBtb3ZkcWEgJXht bTgsIDExMiglcnNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIgIG1vdmRx YSAleG1tOSwgOTYoJXJzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLSsgICAgIiAg bW92ZHFhICV4bW0xMCwgODAoJXJzcCkgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAg ICAiICBtb3ZkcWEgJXhtbTExLCA2NCglcnNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgICIgIG1vdmRxYSAleG1tMTIsIDQ4KCVyc3ApICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLSsgICAgIiAgbW92ZHFhICV4bW0xMywgMzIoJXJzcCkgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotKyAgICAiICBtb3ZkcWEgJXhtbTE0LCAxNiglcnNwKSAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCi0rICAgICIgIG1vdmRxYSAleG1tMTUsICglcnNwKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKLSsgICAgLy8gUGFzcyAxc3QgcGFyYW1ldGVyIChyY3gpIHVu Y2hhbmdlZCAoU3RhY2sqKS4KLSsgICAgLy8gUGFzcyAybmQgcGFyYW1ldGVyIChyZHgpIHVuY2hh bmdlZCAoU3RhY2tWaXNpdG9yKikuCi0rICAgIC8vIFNhdmUgM3JkIHBhcmFtZXRlciAocjg7IEl0 ZXJhdGVTdGFja0NhbGxiYWNrKQotKyAgICAiICBtb3YgJXI4LCAlcjkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBhc3MgM3JkIHBhcmFtZXRlciBhcyBy c3AgKHN0YWNrIHBvaW50ZXIpLgotKyAgICAiICBtb3YgJXJzcCwgJXI4ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgotKyAg ICAiICBjYWxsIColcjkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgIC8vIFBvcCB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KLSsgICAgIiAgYWRkICQy MjQsICVyc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBS ZXN0b3JlIHJicCBhcyBpdCB3YXMgdXNlZCBhcyBmcmFtZSBwb2ludGVyLgotKyAgICAiICBwb3Ag JXJicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIg IHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOwot KwotKyNlbHNlICAvLyAhX1dJTjY0Ci0rCi0rLy8gV2UgbWFpbnRhaW4gMTYtYnl0ZSBhbGlnbm1l bnQgYXQgY2FsbHMuIFRoZXJlIGlzIGFuIDgtYnl0ZSByZXR1cm4gYWRkcmVzcwotKy8vIG9uIHRo ZSBzdGFjayBhbmQgd2UgcHVzaCA1NiBieXRlcyB3aGljaCBtYWludGFpbnMgMTYtYnl0ZSBzdGFj ayBhbGlnbm1lbnQKLSsvLyBhdCB0aGUgY2FsbC4KLSsvLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHVi LmNvbS9oamwtdG9vbHMveDg2LXBzQUJJL3dpa2kveDg2LTY0LXBzQUJJLTEuMC5wZGYKLSthc20o Ci0rI2lmZGVmIF9fQVBQTEVfXwotKyAgICAiLmdsb2JsIF9QdXNoQWxsUmVnaXN0ZXJzQW5kSXRl cmF0ZVN0YWNrICAgICAgICAgICAgXG4iCi0rICAgICIucHJpdmF0ZV9leHRlcm4gX1B1c2hBbGxS ZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sgICBcbiIKLSsgICAgIl9QdXNoQWxsUmVnaXN0ZXJzQW5k SXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgIFxuIgotKyNlbHNlICAgLy8gIV9fQVBQTEVf XwotKyAgICAiLmdsb2JsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sgICAgICAgICAg ICAgXG4iCi0rICAgICIudHlwZSBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrLCAlZnVu Y3Rpb24gICBcbiIKLSsgICAgIi5oaWRkZW4gUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFj ayAgICAgICAgICAgIFxuIgotKyAgICAiUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjazog ICAgICAgICAgICAgICAgICAgXG4iCi0rI2VuZGlmICAvLyAhX19BUFBMRV9fCi0rICAgIC8vIHJi cCBpcyBjYWxsZWUtc2F2ZWQuIE1haW50YWluIHByb3BlciBmcmFtZSBwb2ludGVyIGZvciBkZWJ1 Z2dpbmcuCi0rICAgICIgIHB1c2ggJXJicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKLSsgICAgIiAgbW92ICVyc3AsICVyYnAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgotKyAgICAvLyBEdW1teSBmb3IgYWxpZ25tZW50LgotKyAgICAiICBw dXNoICQweENEQ0RDRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAg ICIgIHB1c2ggJXJieCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK LSsgICAgIiAgcHVzaCAlcjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgotKyAgICAiICBwdXNoICVyMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0rICAgICIgIHB1c2ggJXIxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKLSsgICAgIiAgcHVzaCAlcjE1ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBQYXNzIDFzdCBwYXJhbWV0ZXIgKHJkaSkgdW5j aGFuZ2VkIChTdGFjayopLgotKyAgICAvLyBQYXNzIDJuZCBwYXJhbWV0ZXIgKHJzaSkgdW5jaGFu Z2VkIChTdGFja1Zpc2l0b3IqKS4KLSsgICAgLy8gU2F2ZSAzcmQgcGFyYW1ldGVyIChyZHg7IEl0 ZXJhdGVTdGFja0NhbGxiYWNrKQotKyAgICAiICBtb3YgJXJkeCwgJXI4ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIFBhc3MgM3JkIHBhcmFtZXRlciBhcyBy c3AgKHN0YWNrIHBvaW50ZXIpLgotKyAgICAiICBtb3YgJXJzcCwgJXJkeCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgotKyAg ICAiICBjYWxsIColcjggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0rICAgIC8vIFBvcCB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KLSsgICAgIiAgYWRkICQ0 OCwgJXJzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotKyAgICAvLyBS ZXN0b3JlIHJicCBhcyBpdCB3YXMgdXNlZCBhcyBmcmFtZSBwb2ludGVyLgotKyAgICAiICBwb3Ag JXJicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0rICAgICIg IHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOwot KwotKyNlbmRpZiAgLy8gIV9XSU42NAotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL3g2 NC9wdXNoX3JlZ2lzdGVyc19tYXNtLmFzbSBiL3NyYy9oZWFwL2Jhc2UvYXNtL3g2NC9wdXNoX3Jl Z2lzdGVyc19tYXNtLmFzbQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmEz MmUxOTMKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL3g2NC9wdXNo X3JlZ2lzdGVyc19tYXNtLmFzbQotQEAgLTAsMCArMSw1NyBAQAotKzs7IENvcHlyaWdodCAyMDIw IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rOzsgVXNlIG9m IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0 IGNhbiBiZQotKzs7IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0rCi0rOzsgTUFTTSBzeW50 YXgKLSs7OyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvYXNzZW1ibGVyL21h c20vbWljcm9zb2Z0LW1hY3JvLWFzc2VtYmxlci1yZWZlcmVuY2U/dmlldz12cy0yMDE5Ci0rCi0r cHVibGljIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sKLSsKLSsuY29kZQotK1B1c2hB bGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2s6Ci0rICAgIDs7IFB1c2ggYWxsIGNhbGxlZS1zYXZl ZCByZWdpc3RlcnMgdG8gZ2V0IHRoZW0gb24gdGhlIHN0YWNrIGZvciBjb25zZXJ2YXRpdmUKLSsg ICAgOzsgc3RhY2sgc2Nhbm5pbmcuCi0rICAgIDs7Ci0rICAgIDs7IFdlIG1haW50YWluIDE2LWJ5 dGUgYWxpZ25tZW50IGF0IGNhbGxzLiBUaGVyZSBpcyBhbiA4LWJ5dGUgcmV0dXJuIGFkZHJlc3MK LSsgICAgOzsgb24gdGhlIHN0YWNrIGFuZCB3ZSBwdXNoIDIzMiBieXRlcyB3aGljaCBtYWludGFp bnMgMTYtYnl0ZSBzdGFjawotKyAgICA7OyBhbGlnbm1lbnQgYXQgdGhlIGNhbGwuCi0rICAgIDs7 IFNvdXJjZTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvY3BwL2J1aWxkL3g2NC1j YWxsaW5nLWNvbnZlbnRpb24KLSsgICAgOzsKLSsgICAgOzsgcmJwIGlzIGNhbGxlZS1zYXZlZC4g TWFpbnRhaW4gcHJvcGVyIGZyYW1lIHBvaW50ZXIgZm9yIGRlYnVnZ2luZy4KLSsgICAgcHVzaCBy YnAKLSsgICAgbW92IHJicCwgcnNwCi0rICAgIHB1c2ggMENEQ0RDRGggIDs7IER1bW15IGZvciBh bGlnbm1lbnQuCi0rICAgIHB1c2ggcnNpCi0rICAgIHB1c2ggcmRpCi0rICAgIHB1c2ggcmJ4Ci0r ICAgIHB1c2ggcjEyCi0rICAgIHB1c2ggcjEzCi0rICAgIHB1c2ggcjE0Ci0rICAgIHB1c2ggcjE1 Ci0rICAgIHN1YiByc3AsIDE2MAotKyAgICA7OyBVc2UgYWxpZ25lZCBpbnN0cnMgYXMgd2UgYXJl IGNlcnRhaW4gdGhhdCB0aGUgc3RhY2sgaXMgcHJvcGVybHkgYWxpZ25lZC4KLSsgICAgbW92ZHFh ICB4bW13b3JkIHB0ciBbcnNwICsgMTQ0XSwgeG1tNgotKyAgICBtb3ZkcWEgIHhtbXdvcmQgcHRy IFtyc3AgKyAxMjhdLCB4bW03Ci0rICAgIG1vdmRxYSAgeG1td29yZCBwdHIgW3JzcCArIDExMl0s IHhtbTgKLSsgICAgbW92ZHFhICB4bW13b3JkIHB0ciBbcnNwICsgOTZdLCB4bW05Ci0rICAgIG1v dmRxYSAgeG1td29yZCBwdHIgW3JzcCArIDgwXSwgeG1tMTAKLSsgICAgbW92ZHFhICB4bW13b3Jk IHB0ciBbcnNwICsgNjRdLCB4bW0xMQotKyAgICBtb3ZkcWEgIHhtbXdvcmQgcHRyIFtyc3AgKyA0 OF0sIHhtbTEyCi0rICAgIG1vdmRxYSAgeG1td29yZCBwdHIgW3JzcCArIDMyXSwgeG1tMTMKLSsg ICAgbW92ZHFhICB4bW13b3JkIHB0ciBbcnNwICsgMTZdLCB4bW0xNAotKyAgICBtb3ZkcWEgIHht bXdvcmQgcHRyIFtyc3BdLCB4bW0xNQotKyAgICA7OyBQYXNzIDFzdCBwYXJhbWV0ZXIgKHJjeCkg dW5jaGFuZ2VkIChTdGFjayopLgotKyAgICA7OyBQYXNzIDJuZCBwYXJhbWV0ZXIgKHJkeCkgdW5j aGFuZ2VkIChTdGFja1Zpc2l0b3IqKS4KLSsgICAgOzsgU2F2ZSAzcmQgcGFyYW1ldGVyIChyODsg SXRlcmF0ZVN0YWNrQ2FsbGJhY2spCi0rICAgIG1vdiByOSwgcjgKLSsgICAgOzsgUGFzcyAzcmQg cGFyYW1ldGVyIGFzIHJzcCAoc3RhY2sgcG9pbnRlcikuCi0rICAgIG1vdiByOCwgcnNwCi0rICAg IDs7IENhbGwgdGhlIGNhbGxiYWNrLgotKyAgICBjYWxsIHI5Ci0rICAgIDs7IFBvcCB0aGUgY2Fs bGVlLXNhdmVkIHJlZ2lzdGVycy4KLSsgICAgYWRkIHJzcCwgMjI0Ci0rICAgIDs7IFJlc3RvcmUg cmJwIGFzIGl0IHdhcyB1c2VkIGFzIGZyYW1lIHBvaW50ZXIuCi0rICAgIHBvcCByYnAKLSsgICAg cmV0Ci0rCi0rZW5kCi1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20veDY0L3NhdmVfcmVn aXN0ZXJzX2FzbS5jYyBiL3NyYy9oZWFwL2Jhc2UvYXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20u Y2MKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggODU1YTY1NC4uMDAwMDAwMAotLS0t IGEvdjgvc3JjL2hlYXAvYmFzZS9hc20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYwotKysrIC9k ZXYvbnVsbAotQEAgLTEsOTQgKzAsMCBAQAotLS8vIENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9q ZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLS8v IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0tCi0tI2luY2x1ZGUgPHNyYy9oZWFwL2Jhc2Uv c3RhY2suaD4KLS0KLS0vLyBTYXZlIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGluIHRoZSBz cGVjaWZpZWQgYnVmZmVyLgotLS8vIGV4dGVybiAiQyIgdm9pZCBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7Ci0tLy8KLS0vLyBXZSBjYW5ub3QgcmVseSBvbiBjbGFu ZyBnZW5lcmF0aW5nIHRoZSBmdW5jdGlvbiBhbmQgcmlnaHQgc3ltYm9sIG1hbmdsaW5nCi0tLy8g YXMgYF9fYXR0cmlidXRlX18oKG5ha2VkKSlgIGRvZXMgbm90IHByZXZlbnQgY2xhbmcgZnJvbSBn ZW5lcmF0aW5nIFRTQU4KLS0vLyBmdW5jdGlvbiBlbnRyeSBzdHVicyAoYF9fdHNhbl9mdW5jX2Vu dHJ5YCkuIEV2ZW4gd2l0aAotLS8vIGBfX2F0dHJpYnV0ZV9fKChub19zYW5pdGl6ZV90aHJlYWQp YCBhbm5vdGF0aW9uIGNsYW5nIGdlbmVyYXRlcyB0aGUgZW50cnkKLS0vLyBzdHViLgotLS8vIFNl ZSBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NDAwLgotLS8vCi0tLy8g RG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRkZXJz IG1heSBvdmVycmlkZSB0aGUKLS0vLyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFuZCBu b3QgcHJvdmlkZSB0aGVtLgotLS8vIF9XSU42NCBEZWZpbmVkIGFzIDEgd2hlbiB0aGUgY29tcGls YXRpb24gdGFyZ2V0IGlzIDY0LWJpdCBBUk0gb3IgeDY0LgotLS8vIE90aGVyd2lzZSwgdW5kZWZp bmVkLgotLQotLSNpZmRlZiBfV0lONjQKLS0vLyBTb3VyY2U6IGh0dHBzOi8vZG9jcy5taWNyb3Nv ZnQuY29tL2VuLXVzL2NwcC9idWlsZC94NjQtY2FsbGluZy1jb252ZW50aW9uCi0tCi0tLy8gNyA2 NC1iaXQgcmVnaXN0ZXJzICsgMSBmb3IgYWxpZ25tZW50IHB1cnBvc2VzID0gOCAqIDEgPSA4IGlu dHBydF90Ci0tLy8gMTAgMTI4LWJpdCByZWdpc3RlcnMgPSAxMCAqIDIgPSAyMCBpbnRwdHJfdAot LXN0YXRpY19hc3NlcnQoaGVhcDo6YmFzZTo6U3RhY2s6Ok51bWJlck9mQ2FsbGVlU2F2ZWRSZWdp c3RlcnMoKSA9PSAyOCwKLS0gICAgICAgICAgICAgICJNaXNtYXRjaCBpbiB0aGUgbnVtYmVyIG9m IGNhbGxlZS1zYXZlZCByZWdpc3RlcnMiKTsKLS1zdGF0aWNfYXNzZXJ0KHNpemVvZihpbnRwdHJf dCkgPT0gOCwgIk1pc21hdGNoIGluIHdvcmQgc2l6ZSIpOwotLQotLWFzbSgiLmdsb2JsIFNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVycyAgICAgICAgICAgICBcbiIKLS0gICAgIlNhdmVDYWxsZWVTYXZl ZFJlZ2lzdGVyczogICAgICAgICAgICAgICAgICAgXG4iCi0tICAgIC8vICVyY3g6IFsgaW50cHRy X3QqIGJ1ZmZlciBdCi0tICAgIC8vICVyYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWludGFpbiBwcm9w ZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgotLSAgICAiICBwdXNoICVyYnAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgbW92ICVyc3AsICVyYnAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgIC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZl ZCByZWdpc3RlcnMuCi0tICAgICIgIG1vdiAlcnNpLCAwKCVyY3gpICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgotLSAgICAiICBtb3YgJXJkaSwgOCglcmN4KSAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKLS0gICAgIiAgbW92ICVyYngsIDE2KCVyY3gpICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCi0tICAgICIgIG1vdiAlcjEyLCAyNCglcmN4KSAgICAgICAgICAgICAgICAgICAgICAg IFxuIgotLSAgICAiICBtb3YgJXIxMywgMzIoJXJjeCkgICAgICAgICAgICAgICAgICAgICAgICBc biIKLS0gICAgIiAgbW92ICVyMTQsIDQwKCVyY3gpICAgICAgICAgICAgICAgICAgICAgICAgXG4i Ci0tICAgICIgIG1vdiAlcjE1LCA0OCglcmN4KSAgICAgICAgICAgICAgICAgICAgICAgIFxuIgot LSAgICAvLyBTa2lwIG9uZSBzbG90IHRvIGFjaGlldmUgcHJvcGVyIGFsaWdubWVudCBhbmQgdXNl IGFsaWduZWQgaW5zdHJ1Y3Rpb25zLAotLSAgICAvLyBhcyB3ZSBhcmUgc3VyZSB0aGF0IHRoZSBi dWZmZXIgaXMgcHJvcGVybHkgYWxpZ25lZC4KLS0gICAgIiAgbW92ZHFhICV4bW02LCA2NCglcmN4 KSAgICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIG1vdmRxYSAleG1tNywgODAoJXJjeCkg ICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBtb3ZkcWEgJXhtbTgsIDk2KCVyY3gpICAg ICAgICAgICAgICAgICAgICBcbiIKLS0gICAgIiAgbW92ZHFhICV4bW05LCAxMTIoJXJjeCkgICAg ICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIG1vdmRxYSAleG1tMTAsIDEyOCglcmN4KSAgICAg ICAgICAgICAgICAgIFxuIgotLSAgICAiICBtb3ZkcWEgJXhtbTExLCAxNDQoJXJjeCkgICAgICAg ICAgICAgICAgICBcbiIKLS0gICAgIiAgbW92ZHFhICV4bW0xMiwgMTYwKCVyY3gpICAgICAgICAg ICAgICAgICAgXG4iCi0tICAgICIgIG1vdmRxYSAleG1tMTMsIDE3NiglcmN4KSAgICAgICAgICAg ICAgICAgIFxuIgotLSAgICAiICBtb3ZkcWEgJXhtbTE0LCAxOTIoJXJjeCkgICAgICAgICAgICAg ICAgICBcbiIKLS0gICAgIiAgbW92ZHFhICV4bW0xNSwgMjA4KCVyY3gpICAgICAgICAgICAgICAg ICAgXG4iCi0tICAgIC8vIFJldHVybi4KLS0gICAgIiAgcG9wICVyYnAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCi0tICAgICIgIHJldCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIik7Ci0tCi0tI2Vsc2UgIC8vICFfV0lONjQKLS0vLyBTb3VyY2U6 IGh0dHBzOi8vZ2l0aHViLmNvbS9oamwtdG9vbHMveDg2LXBzQUJJL3dpa2kveDg2LTY0LXBzQUJJ LTEuMC5wZGYKLS0KLS0vLyA1IDY0LWJpdCByZWdpc3RlcnMgPSA1IGludHBydF90Ci0tc3RhdGlj X2Fzc2VydChoZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygp ID09IDUsCi0tICAgICAgICAgICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUt c2F2ZWQgcmVnaXN0ZXJzIik7Ci0tc3RhdGljX2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDgs ICJNaXNtYXRjaCBpbiB3b3JkIHNpemUiKTsKLS0KLS1hc20oCi0tI2lmZGVmIF9fQVBQTEVfXwot LSAgICAiLmdsb2JsIF9TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICBcbiIKLS0g ICAgIi5wcml2YXRlX2V4dGVybiBfU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAgXG4iCi0tICAg ICJfU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAgIFxuIgotLSNlbHNl ICAgLy8gIV9fQVBQTEVfXwotLSAgICAiLmdsb2JsIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAg ICAgICAgICAgICBcbiIKLS0gICAgIi50eXBlIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycywgJWZ1 bmN0aW9uICAgXG4iCi0tICAgICIuaGlkZGVuIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAgICAg ICAgICAgIFxuIgotLSAgICAiU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAgICAgICAg ICAgICBcbiIKLS0jZW5kaWYgIC8vICFfX0FQUExFX18KLS0gICAgLy8gJXJkaTogWyBpbnRwdHJf dCogYnVmZmVyIF0KLS0gICAgLy8gJXJicCBpcyBjYWxsZWUtc2F2ZWQuIE1haW50YWluIHByb3Bl ciBmcmFtZSBwb2ludGVyIGZvciBkZWJ1Z2dpbmcuCi0tICAgICIgIHB1c2ggJXJicCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgotLSAgICAiICBtb3YgJXJzcCwgJXJicCAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKLS0gICAgLy8gU2F2ZSB0aGUgY2FsbGVlLXNhdmVk IHJlZ2lzdGVycy4KLS0gICAgIiAgbW92ICVyYngsIDAoJXJkaSkgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCi0tICAgICIgIG1vdiAlcjEyLCA4KCVyZGkpICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgotLSAgICAiICBtb3YgJXIxMywgMTYoJXJkaSkgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKLS0gICAgIiAgbW92ICVyMTQsIDI0KCVyZGkpICAgICAgICAgICAgICAgICAgICAgICAg XG4iCi0tICAgICIgIG1vdiAlcjE1LCAzMiglcmRpKSAgICAgICAgICAgICAgICAgICAgICAgIFxu IgotLSAgICAvLyBSZXN0b3JlICVyYnAgYXMgaXQgd2FzIHVzZWQgYXMgZnJhbWUgcG9pbnRlciBh bmQgcmV0dXJuLgotLSAgICAiICBwb3AgJXJicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKLS0gICAgIiAgcmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iKTsKLS0KLS0jZW5kaWYgIC8vICFfV0lONjQKLWRpZmYgLS1naXQgYS9zcmMvaGVhcC9i YXNlL2FzbS94NjQvc2F2ZV9yZWdpc3RlcnNfbWFzbS5hc20gYi9zcmMvaGVhcC9iYXNlL2FzbS94 NjQvc2F2ZV9yZWdpc3RlcnNfbWFzbS5hc20KLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMjk5NDZhNC4uMDAwMDAwMAotLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20veDY0L3NhdmVf cmVnaXN0ZXJzX21hc20uYXNtCi0rKysgL2Rldi9udWxsCi1AQCAtMSw0MyArMCwwIEBACi0tOzsg Q29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KLS07OyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0tOzsgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS0K LS07OyBNQVNNIHN5bnRheAotLTs7IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2Nw cC9hc3NlbWJsZXIvbWFzbS9taWNyb3NvZnQtbWFjcm8tYXNzZW1ibGVyLXJlZmVyZW5jZT92aWV3 PXZzLTIwMTkKLS0KLS1wdWJsaWMgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzCi0tCi0tLmNvZGUK LS0gICAgOzsgU2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVk IGJ1ZmZlci4KLS0gICAgOzsgZXh0ZXJuICJDIiB2b2lkIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVy cyhpbnRwdHJfdCogYnVmZmVyKTsKLS0KLS1TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6Ci0tICAg IDs7ICVyY3g6IFsgaW50cHRyX3QqIGJ1ZmZlciBdCi0tICAgIDs7ICVyYnAgaXMgY2FsbGVlLXNh dmVkLiBNYWludGFpbiBwcm9wZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgotLSAgICBw dXNoIHJicAotLSAgICBtb3YgcmJwLCByc3AKLS0gICAgOzsgU2F2ZSB0aGUgY2FsbGVlLXNhdmVk IHJlZ2lzdGVycy4KLS0gICAgbW92IHF3b3JkIHB0ciBbcmN4XSwgcnNpCi0tICAgIG1vdiBxd29y ZCBwdHIgW3JjeCArIDhdLCByZGkKLS0gICAgbW92IHF3b3JkIHB0ciBbcmN4ICsgMTZdLCByYngK LS0gICAgbW92IHF3b3JkIHB0ciBbcmN4ICsgMjRdLCByMTIKLS0gICAgbW92IHF3b3JkIHB0ciBb cmN4ICsgMzJdLCByMTMKLS0gICAgbW92IHF3b3JkIHB0ciBbcmN4ICsgNDBdLCByMTQKLS0gICAg bW92IHF3b3JkIHB0ciBbcmN4ICsgNDhdLCByMTUKLS0gICAgOzsgU2tpcCBvbmUgc2xvdCB0byBh Y2hpZXZlIHByb3BlciBhbGlnbm1lbnQgYW5kIHVzZSBhbGlnbmVkIGluc3RydWN0aW9ucywKLS0g ICAgOzsgYXMgd2UgYXJlIHN1cmUgdGhhdCB0aGUgYnVmZmVyIGlzIHByb3Blcmx5IGFsaWduZWQu Ci0tICAgIG1vdmRxYSB4bW13b3JkIHB0ciBbcmN4ICsgNjRdLCB4bW02Ci0tICAgIG1vdmRxYSB4 bW13b3JkIHB0ciBbcmN4ICsgODBdLCB4bW03Ci0tICAgIG1vdmRxYSB4bW13b3JkIHB0ciBbcmN4 ICsgOTZdLCB4bW04Ci0tICAgIG1vdmRxYSB4bW13b3JkIHB0ciBbcmN4ICsgMTEyXSwgeG1tOQot LSAgICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDEyOF0sIHhtbTEwCi0tICAgIG1vdmRxYSB4 bW13b3JkIHB0ciBbcmN4ICsgMTQ0XSwgeG1tMTEKLS0gICAgbW92ZHFhIHhtbXdvcmQgcHRyIFty Y3ggKyAxNjBdLCB4bW0xMgotLSAgICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDE3Nl0sIHht bTEzCi0tICAgIG1vdmRxYSB4bW13b3JkIHB0ciBbcmN4ICsgMTkyXSwgeG1tMTQKLS0gICAgbW92 ZHFhIHhtbXdvcmQgcHRyIFtyY3ggKyAyMDhdLCB4bW0xNQotLSAgICA7OyBSZXN0b3JlICVyYnAg YXMgaXQgd2FzIHVzZWQgYXMgZnJhbWUgcG9pbnRlciBhbmQgcmV0dXJuLgotLSAgICBwb3AgcmJw Ci0tICAgIHJldAotLQotLWVuZAotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2Uvc3RhY2suY2Mg Yi9zcmMvaGVhcC9iYXNlL3N0YWNrLmNjCi1pbmRleCBkOGU2MThkLi41NGE4Njk3IDEwMDY0NAot LS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9zdGFjay5jYwotKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9z dGFjay5jYwotQEAgLTYsMTggKzYsMjEgQEAKLSAKLSAjaW5jbHVkZSA8bGltaXRzPgotIAotKyNp bmNsdWRlICJzcmMvYmFzZS9wbGF0Zm9ybS9wbGF0Zm9ybS5oIgotICNpbmNsdWRlICJzcmMvYmFz ZS9zYW5pdGl6ZXIvYXNhbi5oIgotICNpbmNsdWRlICJzcmMvYmFzZS9zYW5pdGl6ZXIvbXNhbi5o IgotICNpbmNsdWRlICJzcmMvYmFzZS9zYW5pdGl6ZXIvdHNhbi5oIgotIAotIG5hbWVzcGFjZSBo ZWFwOjpiYXNlIHsKLSAKLS1TdGFjazo6U3RhY2soY29uc3Qgdm9pZCogc3RhY2tfc3RhcnQpIDog c3RhY2tfc3RhcnRfKHN0YWNrX3N0YXJ0KSB7fQotLQotLXZvaWQgU3RhY2s6OlNldFN0YWNrU3Rh cnQoY29uc3Qgdm9pZCogc3RhY2tfc3RhcnQpIHsKLS0gIERDSEVDSyghY29udGV4dF8pOwotLSAg c3RhY2tfc3RhcnRfID0gc3RhY2tfc3RhcnQ7Ci0tfQotKy8vIEZ1bmN0aW9uIHdpdGggYXJjaGl0 ZWN0dXJlLXNwZWNpZmljIGltcGxlbWVudGF0aW9uOgotKy8vIFB1c2hlcyBhbGwgY2FsbGVlLXNh dmVkIHJlZ2lzdGVycyB0byB0aGUgc3RhY2sgYW5kIGludm9rZXMgdGhlIGNhbGxiYWNrLAotKy8v IHBhc3NpbmcgdGhlIHN1cHBsaWVkIHBvaW50ZXJzIChzdGFjayBhbmQgYXJndW1lbnQpIGFuZCB0 aGUgaW50ZW5kZWQgc3RhY2sKLSsvLyBtYXJrZXIuCi0rdXNpbmcgSXRlcmF0ZVN0YWNrQ2FsbGJh Y2sgPSB2b2lkICgqKShjb25zdCBTdGFjayosIFN0YWNrVmlzaXRvciosIGNvbnN0IHZvaWQqKTsK LStleHRlcm4gIkMiIHZvaWQgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayhjb25zdCBT dGFjayogc3RhY2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU3RhY2tWaXNpdG9yKiB2aXNpdG9yLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEl0ZXJhdGVTdGFja0NhbGxiYWNrIGNhbGxiYWNrKTsKLSAK LSBib29sIFN0YWNrOjpJc09uU3RhY2soY29uc3Qgdm9pZCogc2xvdCkgY29uc3QgewotICAgRENI RUNLX05PVF9OVUxMKHN0YWNrX3N0YXJ0Xyk7Ci1AQCAtMTQxLDk3ICsxNDQsNjIgQEAKLSAKLSB9 ICAvLyBuYW1lc3BhY2UKLSAKLS12b2lkIFN0YWNrOjpJdGVyYXRlUG9pbnRlcnMoU3RhY2tWaXNp dG9yKiB2aXNpdG9yKSBjb25zdCB7Ci0tICBEQ0hFQ0tfTk9UX05VTEwoc3RhY2tfc3RhcnRfKTsK LS0gIERDSEVDSyhjb250ZXh0Xyk7Ci0tICBEQ0hFQ0tfTk9UX05VTEwoY29udGV4dF8tPnN0YWNr X21hcmtlcik7Ci0tCi0rLy8gc3RhdGljCi0rdm9pZCBTdGFjazo6SXRlcmF0ZVBvaW50ZXJzSW1w bChjb25zdCBTdGFjayogc3RhY2ssIFN0YWNrVmlzaXRvciogdmlzaXRvciwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIHN0YWNrX2VuZCkgewotICNpZmRlZiBW OF9VU0VfQUREUkVTU19TQU5JVElaRVIKLSAgIGNvbnN0IHZvaWQqIGFzYW5fZmFrZV9zdGFjayA9 IF9fYXNhbl9nZXRfY3VycmVudF9mYWtlX3N0YWNrKCk7Ci0gI2Vsc2UKLSAgIGNvbnN0IHZvaWQq IGFzYW5fZmFrZV9zdGFjayA9IG51bGxwdHI7Ci0gI2VuZGlmICAvLyBWOF9VU0VfQUREUkVTU19T QU5JVElaRVIKLSAKLS0gIC8vIEl0ZXJhdGUgdGhyb3VnaCB0aGUgcmVnaXN0ZXJzLgotLSAgZm9y IChpbnRwdHJfdCB2YWx1ZSA6IGNvbnRleHRfLT5yZWdpc3RlcnMpIHsKLS0gICAgY29uc3Qgdm9p ZCogYWRkcmVzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHZhbHVlKTsKLS0gICAg TVNBTl9NRU1PUllfSVNfSU5JVElBTElaRUQoJmFkZHJlc3MsIHNpemVvZihhZGRyZXNzKSk7Ci0t ICAgIGlmIChhZGRyZXNzID09IG51bGxwdHIpIGNvbnRpbnVlOwotLSAgICB2aXNpdG9yLT5WaXNp dFBvaW50ZXIoYWRkcmVzcyk7Ci0tICAgIEl0ZXJhdGVBc2FuRmFrZUZyYW1lSWZOZWNlc3Nhcnko dmlzaXRvciwgYXNhbl9mYWtlX3N0YWNrLCBzdGFja19zdGFydF8sCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udGV4dF8tPnN0YWNrX21hcmtlciwgYWRkcmVzcyk7Ci0t ICB9Ci0tCi0gICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHN0YWNrLgotICAgLy8gQWxsIHN1cHBv cnRlZCBwbGF0Zm9ybXMgc2hvdWxkIGhhdmUgdGhlaXIgc3RhY2sgYWxpZ25lZCB0byBhdCBsZWFz dAotICAgLy8gc2l6ZW9mKHZvaWQqKS4KLSAgIGNvbnN0ZXhwciBzaXplX3Qga01pblN0YWNrQWxp Z25tZW50ID0gc2l6ZW9mKHZvaWQqKTsKLS0gIENIRUNLX0VRKDB1LCByZWludGVycHJldF9jYXN0 PHVpbnRwdHJfdD4oY29udGV4dF8tPnN0YWNrX21hcmtlcikgJgotLSAgICAgICAgICAgICAgICAg ICAoa01pblN0YWNrQWxpZ25tZW50IC0gMSkpOwotLSAgSXRlcmF0ZVBvaW50ZXJzSW5TdGFjaygK LS0gICAgICB2aXNpdG9yLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqIGNvbnN0Kj4oY29u dGV4dF8tPnN0YWNrX21hcmtlciksCi0tICAgICAgc3RhY2tfc3RhcnRfLCBhc2FuX2Zha2Vfc3Rh Y2spOwotKyAgQ0hFQ0tfRVEoMHUsCi0rICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRw dHJfdD4oc3RhY2tfZW5kKSAmIChrTWluU3RhY2tBbGlnbm1lbnQgLSAxKSk7Ci0rICBJdGVyYXRl UG9pbnRlcnNJblN0YWNrKHZpc2l0b3IsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCogY29uc3QqPihzdGFja19lbmQpLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICBzdGFjay0+c3RhY2tfc3RhcnRfLCBhc2FuX2Zha2Vfc3RhY2spOwotIAot LSAgZm9yIChjb25zdCBhdXRvJiBzdGFjayA6IGluYWN0aXZlX3N0YWNrc18pIHsKLS0gICAgSXRl cmF0ZVBvaW50ZXJzSW5TdGFjayh2aXNpdG9yLCBzdGFjay50b3AsIHN0YWNrLnN0YXJ0LCBhc2Fu X2Zha2Vfc3RhY2spOwotKyAgZm9yIChjb25zdCBhdXRvJiBzZWdtZW50IDogc3RhY2stPmluYWN0 aXZlX3N0YWNrc18pIHsKLSsgICAgSXRlcmF0ZVBvaW50ZXJzSW5TdGFjayh2aXNpdG9yLCBzZWdt ZW50LnRvcCwgc2VnbWVudC5zdGFydCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2Fu X2Zha2Vfc3RhY2spOwotICAgfQotIAotICAgSXRlcmF0ZVVuc2FmZVN0YWNrSWZOZWNlc3Nhcnko dmlzaXRvcik7Ci0gfQotIAotLW5hbWVzcGFjZSB7Ci0tLy8gRnVuY3Rpb24gd2l0aCBhcmNoaXRl Y3R1cmUtc3BlY2lmaWMgaW1wbGVtZW50YXRpb246Ci0tLy8gU2F2ZXMgYWxsIGNhbGxlZS1zYXZl ZCByZWdpc3RlcnMgaW4gdGhlIHNwZWNpZmllZCBidWZmZXIuCi0tZXh0ZXJuICJDIiB2b2lkIFNh dmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhpbnRwdHJfdCogYnVmZmVyKTsKLSt2b2lkIFN0YWNrOjpJ dGVyYXRlUG9pbnRlcnMoU3RhY2tWaXNpdG9yKiB2aXNpdG9yKSBjb25zdCB7Ci0rICAvLyBUT0RP KHY4OjEzNDkzKTogUmVtb3ZlIHRoZSBpbXBsaWNhdGlvbiBhcyBzb29uIGFzIElzT25DdXJyZW50 U3RhY2sgaXMKLSsgIC8vIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCi0rICBEQ0hF Q0tfSU1QTElFUyghd2FzbV9zdGFja19zd2l0Y2hpbmdfLCBJc09uQ3VycmVudFN0YWNrKHN0YWNr X3N0YXJ0XykpOwotKyAgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayh0aGlzLCB2aXNp dG9yLCAmSXRlcmF0ZVBvaW50ZXJzSW1wbCk7Ci0rICAvLyBObyBuZWVkIHRvIGRlYWwgd2l0aCBj YWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGFzIHRoZXkgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5Ci0rICAv LyB0aGUgcmVndWxhciBjb25zZXJ2YXRpdmUgc3RhY2sgaXRlcmF0aW9uLgotKyAgLy8gVE9ETyhj aHJvbWl1bToxMDU2MTcwKTogQWRkIHN1cHBvcnQgZm9yIFNJTUQgYW5kL29yIGZpbHRlcmluZy4K LSsgIEl0ZXJhdGVVbnNhZmVTdGFja0lmTmVjZXNzYXJ5KHZpc2l0b3IpOwotK30KLSsKLSt2b2lk IFN0YWNrOjpJdGVyYXRlUG9pbnRlcnNVbnNhZmUoU3RhY2tWaXNpdG9yKiB2aXNpdG9yLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkKiBzdGFja19lbmQpIGNv bnN0IHsKLSsgIERDSEVDS19OT1RfTlVMTChzdGFja19zdGFydF8pOwotKyAgRENIRUNLX05PVF9O VUxMKHN0YWNrX2VuZCk7Ci0rICBEQ0hFQ0tfR0Uoc3RhY2tfc3RhcnRfLCBzdGFja19lbmQpOwot KyAgSXRlcmF0ZVBvaW50ZXJzSW1wbCh0aGlzLCB2aXNpdG9yLCBzdGFja19lbmQpOwotK30KLSAK LSAjaWZkZWYgREVCVUcKLS0KLS1ib29sIElzT25DdXJyZW50U3RhY2soY29uc3Qgdm9pZCogcHRy KSB7Ci0rLy8gc3RhdGljCi0rYm9vbCBTdGFjazo6SXNPbkN1cnJlbnRTdGFjayhjb25zdCB2b2lk KiBwdHIpIHsKLSAgIERDSEVDS19OT1RfTlVMTChwdHIpOwotICAgY29uc3Qgdm9pZCogY3VycmVu dF9zdGFja19zdGFydCA9IHY4OjpiYXNlOjpTdGFjazo6R2V0U3RhY2tTdGFydCgpOwotICAgY29u c3Qgdm9pZCogY3VycmVudF9zdGFja190b3AgPSB2ODo6YmFzZTo6U3RhY2s6OkdldEN1cnJlbnRT dGFja1Bvc2l0aW9uKCk7Ci0gICByZXR1cm4gcHRyIDw9IGN1cnJlbnRfc3RhY2tfc3RhcnQgJiYg cHRyID49IGN1cnJlbnRfc3RhY2tfdG9wOwotIH0KLS0KLSAjZW5kaWYgIC8vIERFQlVHCi0gCi0t fSAgLy8gbmFtZXNwYWNlCi0tCi0tdm9pZCBTdGFjazo6U2F2ZUNvbnRleHQoYm9vbCBjaGVja19p bnZhcmlhbnQpIHsKLS0gIC8vIFRPRE8odjg6MTM0OTMpOiBSZW1vdmUgdGhlIG1ldGhvZCdzIHBh cmFtZXRlciBhbmQgdGhlIGltcGxpY2F0aW9uIGFzIHNvb24KLS0gIC8vIGFzIElzT25DdXJyZW50 U3RhY2sgaXMgY29tcGF0aWJsZSB3aXRoIHN0YWNrIHN3aXRjaGluZy4KLS0gIERDSEVDS19JTVBM SUVTKGNoZWNrX2ludmFyaWFudCwgSXNPbkN1cnJlbnRTdGFjayhzdGFja19zdGFydF8pKTsKLS0g IC8vIENvbnRleHRzIGNhbiBiZSBuZXN0ZWQgYnV0IHRoZSBtYXJrZXIgYW5kIHRoZSByZWdpc3Rl cnMgYXJlIG9ubHkgc2F2ZWQgb24KLS0gIC8vIHRoZSBmaXJzdCBpbnZvY2F0aW9uLgotLSAgaWYg KGNvbnRleHRfKSB7Ci0tICAgICsrY29udGV4dF8tPm5lc3RpbmdfY291bnRlcjsKLS0gICAgcmV0 dXJuOwotLSAgfQotLSAgLy8gQWxsb2NhdGUgdGhlIGNvbnRleHQgYW5kIHNldCB0aGUgbWFya2Vy LgotLSAgY29uc3Qgdm9pZCogc3RhY2tfdG9wID0gdjg6OmJhc2U6OlN0YWNrOjpHZXRDdXJyZW50 U3RhY2tQb3NpdGlvbigpOwotLSAgRENIRUNLX05PVF9OVUxMKHN0YWNrX3RvcCk7Ci0tICBjb250 ZXh0XyA9IHN0ZDo6bWFrZV91bmlxdWU8Q29udGV4dD4oc3RhY2tfdG9wKTsKLS0gIC8vIFRPRE8o djg6MTM0OTMpOiBSZW1vdmUgdGhlIGltcGxpY2F0aW9uIGFzIHNvb24gYXMgSXNWYWxpZE1hcmtl ciBpcwotLSAgLy8gY29tcGF0aWJsZSB3aXRoIHN0YWNrIHN3aXRjaGluZy4KLS0gIERDSEVDS19J TVBMSUVTKGNoZWNrX2ludmFyaWFudCwgc3RhY2tfdG9wIDw9IHN0YWNrX3N0YXJ0Xyk7Ci0tICBj b250ZXh0Xy0+c3RhY2tfbWFya2VyID0gc3RhY2tfdG9wOwotLSAgLy8gU2F2ZSB0aGUgcmVnaXN0 ZXJzLgotLSAgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGNvbnRleHRfLT5yZWdpc3RlcnMuZGF0 YSgpKTsKLS19Ci0tCi0tdm9pZCBTdGFjazo6Q2xlYXJDb250ZXh0KGJvb2wgY2hlY2tfaW52YXJp YW50KSB7Ci0tICAvLyBUT0RPKHY4OjEzNDkzKTogUmVtb3ZlIHRoZSBtZXRob2QncyBwYXJhbWV0 ZXIgYW5kIHRoZSBpbXBsaWNhdGlvbiBhcyBzb29uCi0tICAvLyBhcyBJc09uQ3VycmVudFN0YWNr IGlzIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCi0tICBEQ0hFQ0tfSU1QTElFUyhj aGVja19pbnZhcmlhbnQsIElzT25DdXJyZW50U3RhY2soc3RhY2tfc3RhcnRfKSk7Ci0tICBEQ0hF Q0soY29udGV4dF8pOwotLSAgLy8gU2tpcCBjbGVhcmluZyB0aGUgY29udGV4dCBpZiB0aGF0IHdh cyBhIG5lc3RlZCBpbnZvY2F0aW9uLgotLSAgaWYgKGNvbnRleHRfLT5uZXN0aW5nX2NvdW50ZXIg PiAwKSB7Ci0tICAgIC0tY29udGV4dF8tPm5lc3RpbmdfY291bnRlcjsKLS0gICAgcmV0dXJuOwot LSAgfQotLSAgY29udGV4dF8ucmVzZXQoKTsKLS19Ci0tCi0gdm9pZCBTdGFjazo6QWRkU3RhY2tT ZWdtZW50KGNvbnN0IHZvaWQqIHN0YXJ0LCBjb25zdCB2b2lkKiB0b3ApIHsKLSAgIERDSEVDS19M RSh0b3AsIHN0YXJ0KTsKLSAgIGluYWN0aXZlX3N0YWNrc18ucHVzaF9iYWNrKHtzdGFydCwgdG9w fSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9zdGFjay5oIGIvc3JjL2hlYXAvYmFzZS9z dGFjay5oCi1pbmRleCAwNmVkZjRjLi40YjBhMTRlIDEwMDY0NAotLS0tIGEvdjgvc3JjL2hlYXAv YmFzZS9zdGFjay5oCi0rKysgYi92OC9zcmMvaGVhcC9iYXNlL3N0YWNrLmgKLUBAIC01LDEwICs1 LDkgQEAKLSAjaWZuZGVmIFY4X0hFQVBfQkFTRV9TVEFDS19IXwotICNkZWZpbmUgVjhfSEVBUF9C QVNFX1NUQUNLX0hfCi0gCi0tI2luY2x1ZGUgPG1lbW9yeT4KLSsjaW5jbHVkZSA8dmVjdG9yPgot IAotICNpbmNsdWRlICJzcmMvYmFzZS9tYWNyb3MuaCIKLS0jaW5jbHVkZSAic3JjL2Jhc2UvcGxh dGZvcm0vcGxhdGZvcm0uaCIKLSAKLSBuYW1lc3BhY2UgaGVhcDo6YmFzZSB7Ci0gCi1AQCAtMzAs OTYgKzI5LDU0IEBACi0gLy8gb2YgcmVsZXZhbnQgR0Mgc3RhY2sgcmVnaW9ucyB3aGVyZSBpbnRl cmVzdGluZyBwb2ludGVycyBjYW4gYmUgZm91bmQuCi0gY2xhc3MgVjhfRVhQT1JUX1BSSVZBVEUg U3RhY2sgZmluYWwgewotICBwdWJsaWM6Ci0tICAvLyBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyIGZv ciBzdG9yaW5nIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGlzIGdvaW5nIHRvCi0tICAvLyBi ZSBlcXVhbCB0byBrTnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycyAqIHNpemVvZihpbnRwdHJf dCkuCi0tICAvLyBUaGlzIGlzIGFyY2hpdGVjdHVyZS1zcGVjaWZpYy4KLS0gIHN0YXRpYyBjb25z dGV4cHIgaW50IE51bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoKSB7Ci0tICAgIHJldHVybiBD b250ZXh0OjprTnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVyczsKLS0gIH0KLS0KLS0gIGV4cGxp Y2l0IFN0YWNrKGNvbnN0IHZvaWQqIHN0YWNrX3N0YXJ0ID0gbnVsbHB0cik7Ci0rICBleHBsaWNp dCBTdGFjayhjb25zdCB2b2lkKiBzdGFja19zdGFydCA9IG51bGxwdHIsCi0rICAgICAgICAgICAg ICAgICBib29sIHdhc21fc3RhY2tfc3dpdGNoaW5nID0gZmFsc2UpCi0rICAgICAgOiBzdGFja19z dGFydF8oc3RhY2tfc3RhcnQpLAotKyAgICAgICAgd2FzbV9zdGFja19zd2l0Y2hpbmdfKHdhc21f c3RhY2tfc3dpdGNoaW5nKSB7fQotIAotICAgLy8gU2V0cyB0aGUgc3RhcnQgb2YgdGhlIHN0YWNr LgotLSAgdm9pZCBTZXRTdGFja1N0YXJ0KGNvbnN0IHZvaWQqIHN0YWNrX3N0YXJ0KTsKLSsgIHZv aWQgU2V0U3RhY2tTdGFydChjb25zdCB2b2lkKiBzdGFja19zdGFydCwgYm9vbCB3YXNtX3N0YWNr X3N3aXRjaGluZykgewotKyAgICBzdGFja19zdGFydF8gPSBzdGFja19zdGFydDsKLSsgICAgd2Fz bV9zdGFja19zd2l0Y2hpbmdfID0gd2FzbV9zdGFja19zd2l0Y2hpbmc7Ci0rICB9Ci0gCi0gICAv LyBSZXR1cm5zIHRydWUgaWYgfHNsb3R8IGlzIHBhcnQgb2YgdGhlIHN0YWNrIGFuZCBmYWxzZSBv dGhlcndpc2UuCi0gICBib29sIElzT25TdGFjayhjb25zdCB2b2lkKiBzbG90KSBjb25zdDsKLSAK LS0gIC8vIFdvcmQtYWxpZ25lZCBpdGVyYXRpb24gb2YgdGhlIHN0YWNrIGFuZCB0aGUgc2F2ZWQg cmVnaXN0ZXJzLgotLSAgLy8gU2xvdCB2YWx1ZXMgYXJlIHBhc3NlZCBvbiB0byBgdmlzaXRvcmAu Ci0rICAvLyBXb3JkLWFsaWduZWQgaXRlcmF0aW9uIG9mIHRoZSBzdGFjay4gQ2FsbGVlLXNhdmVk IHJlZ2lzdGVycyBhcmUgcHVzaGVkIHRvCi0rICAvLyB0aGUgc3RhY2sgYmVmb3JlIGl0ZXJhdGlu ZyBwb2ludGVycy4gU2xvdCB2YWx1ZXMgYXJlIHBhc3NlZCBvbiB0bwotKyAgLy8gYHZpc2l0b3Jg LgotICAgdm9pZCBJdGVyYXRlUG9pbnRlcnMoU3RhY2tWaXNpdG9yKiB2aXNpdG9yKSBjb25zdDsK LSAKLS0gIC8vIFNhdmVzIGFuZCBjbGVhcnMgdGhlIHN0YWNrIGNvbnRleHQsIGkuZS4sIGl0IHNl dHMgdGhlIHN0YWNrIG1hcmtlciBhbmQKLS0gIC8vIHNhdmVzIHRoZSByZWdpc3RlcnMuCi0tICAv LyBUT0RPKHY4OjEzNDkzKTogVGhlIHBhcmFtZXRlciBpcyBmb3Igc3VwcHJlc3NpbmcgdGhlIGlu dmFyaWFudCBjaGVjayBpbgotLSAgLy8gdGhlIGNhc2Ugb2YgV0FTTSBzdGFjayBzd2l0Y2hpbmcu IEl0IHdpbGwgYmUgcmVtb3ZlZCBhcyBzb29uIGFzIGNvbnRleHQKLS0gIC8vIHNhdmluZyBiZWNv bWVzIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCi0tICB2b2lkIFNhdmVDb250ZXh0 KGJvb2wgY2hlY2tfaW52YXJpYW50ID0gdHJ1ZSk7Ci0tICB2b2lkIENsZWFyQ29udGV4dChib29s IGNoZWNrX2ludmFyaWFudCA9IHRydWUpOwotKyAgLy8gV29yZC1hbGlnbmVkIGl0ZXJhdGlvbiBv ZiB0aGUgc3RhY2ssIHN0YXJ0aW5nIGF0IGBzdGFja19lbmRgLiBTbG90IHZhbHVlcwotKyAgLy8g YXJlIHBhc3NlZCBvbiB0byBgdmlzaXRvcmAuIFRoaXMgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3 aXRoIHZlcmlmaWVycyB0aGF0Ci0rICAvLyBvbmx5IHZpc2l0IGEgc3Vic2V0IG9mIHRoZSBzdGFj ayBvZiBJdGVyYXRlUG9pbnRlcnMoKS4KLSsgIC8vCi0rICAvLyAqKklnbm9yZXM6KioKLSsgIC8v IC0gQ2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KLSsgIC8vIC0gU2FmZVN0YWNrLgotKyAgdm9pZCBJ dGVyYXRlUG9pbnRlcnNVbnNhZmUoU3RhY2tWaXNpdG9yKiB2aXNpdG9yLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCogc3RhY2tfZW5kKSBjb25zdDsKLSAKLSAgIHZv aWQgQWRkU3RhY2tTZWdtZW50KGNvbnN0IHZvaWQqIHN0YXJ0LCBjb25zdCB2b2lkKiB0b3ApOwot ICAgdm9pZCBDbGVhclN0YWNrU2VnbWVudHMoKTsKLSAKLSAgcHJpdmF0ZToKLS0gIHN0cnVjdCBD b250ZXh0IHsKLS0gICAgLy8gVGhlIGZvbGxvd2luZyBjb25zdGFudCBpcyBhcmNoaXRlY3R1cmUt c3BlY2lmaWMuCi0tI2lmIFY4X0hPU1RfQVJDSF9JQTMyCi0tICAgIC8vIE11c3QgYmUgY29uc2lz dGVudCB3aXRoIGhlYXAvYmFzZS9hc20vaWEzMi8uCi0tICAgIHN0YXRpYyBjb25zdGV4cHIgaW50 IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gMzsKLS0jZWxpZiBWOF9IT1NUX0FSQ0hf WDY0Ci0tI2lmZGVmIF9XSU42NAotLSAgICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFw L2Jhc2UvYXNtL3g2NC8uCi0tICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxl ZVNhdmVkUmVnaXN0ZXJzID0gMjg7Ci0tI2Vsc2UgICAvLyAhX1dJTjY0Ci0tICAgIC8vIE11c3Qg YmUgY29uc2lzdGVudCB3aXRoIGhlYXAvYmFzZS9hc20veDY0Ly4KLS0gICAgc3RhdGljIGNvbnN0 ZXhwciBpbnQga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSA1OwotLSNlbmRpZiAgLy8g IV9XSU42NAotLSNlbGlmIFY4X0hPU1RfQVJDSF9BUk02NAotLSAgICAvLyBNdXN0IGJlIGNvbnNp c3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL2FybTY0Ly4KLS0gICAgc3RhdGljIGNvbnN0ZXhwciBp bnQga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSAxMTsKLS0jZWxpZiBWOF9IT1NUX0FS Q0hfQVJNCi0tICAgIC8vIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIGhlYXAvYmFzZS9hc20vYXJt Ly4KLS0gICAgc3RhdGljIGNvbnN0ZXhwciBpbnQga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3Rl cnMgPSA4OwotLSNlbGlmIFY4X0hPU1RfQVJDSF9QUEM2NAotLSAgICAvLyBNdXN0IGJlIGNvbnNp c3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL3BwYy8uCi0tICAgIHN0YXRpYyBjb25zdGV4cHIgaW50 IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gMjA7Ci0tI2VsaWYgVjhfSE9TVF9BUkNI X1BQQwotLSAgICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL3BwYy8u Ci0tICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJz ID0gMjA7Ci0tI2VsaWYgVjhfSE9TVF9BUkNIX01JUFM2NAotLSAgICAvLyBNdXN0IGJlIGNvbnNp c3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL21pcHM2NGVsLy4KLS0gICAgc3RhdGljIGNvbnN0ZXhw ciBpbnQga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSA5OwotLSNlbGlmIFY4X0hPU1Rf QVJDSF9MT09ORzY0Ci0tICAgIC8vIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIGhlYXAvYmFzZS9h c20vbG9vbmc2NC8uCi0tICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNh dmVkUmVnaXN0ZXJzID0gMTE7Ci0tI2VsaWYgVjhfSE9TVF9BUkNIX1MzOTAKLS0gICAgLy8gTXVz dCBiZSBjb25zaXN0ZW50IHdpdGggaGVhcC9iYXNlL2FzbS9zMzkwLy4KLS0gICAgc3RhdGljIGNv bnN0ZXhwciBpbnQga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSAxMDsKLS0jZWxpZiBW OF9IT1NUX0FSQ0hfUklTQ1YzMgotLSAgICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFw L2Jhc2UvYXNtL3Jpc2N2Ly4KLS0gICAgc3RhdGljIGNvbnN0ZXhwciBpbnQga051bWJlck9mQ2Fs bGVlU2F2ZWRSZWdpc3RlcnMgPSAxMjsKLS0jZWxpZiBWOF9IT1NUX0FSQ0hfUklTQ1Y2NAotLSAg ICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL3Jpc2N2Ly4KLS0gICAg c3RhdGljIGNvbnN0ZXhwciBpbnQga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgPSAxMjsK LS0jZWxzZQotLSNlcnJvciBVbmtub3duIGFyY2hpdGVjdHVyZS4KLSsjaWZkZWYgREVCVUcKLSsg IHN0YXRpYyBib29sIElzT25DdXJyZW50U3RhY2soY29uc3Qgdm9pZCogcHRyKTsKLSAjZW5kaWYK LSAKLS0gICAgZXhwbGljaXQgQ29udGV4dChjb25zdCB2b2lkKiBtYXJrZXIpIDogc3RhY2tfbWFy a2VyKG1hcmtlcikge30KLS0KLS0gICAgaW50IG5lc3RpbmdfY291bnRlciA9IDA7Ci0tICAgIGNv bnN0IHZvaWQqIHN0YWNrX21hcmtlcjsKLS0gICAgLy8gV2UgYWx3YXlzIGRvdWJsZS1hbGlnbiB0 aGlzIGJ1ZmZlciwgdG8gc3VwcG9ydCBmb3IgbG9uZ2VyIHJlZ2lzdGVycywKLS0gICAgLy8gZS5n LiwgMTI4LWJpdCByZWdpc3RlcnMgaW4gV0lONjQuCi0tICAgIGFsaWduYXMoMiAqIHNpemVvZihp bnRwdHJfdCkpCi0tICAgICAgICBzdGQ6OmFycmF5PGludHB0cl90LCBrTnVtYmVyT2ZDYWxsZWVT YXZlZFJlZ2lzdGVycz4gcmVnaXN0ZXJzOwotLSAgfTsKLSsgIHN0YXRpYyB2b2lkIEl0ZXJhdGVQ b2ludGVyc0ltcGwoY29uc3QgU3RhY2sqIHN0YWNrLCBTdGFja1Zpc2l0b3IqIHZpc2l0b3IsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIHN0YWNrX2VuZCk7 Ci0gCi0gICBjb25zdCB2b2lkKiBzdGFja19zdGFydF87Ci0tICBzdGQ6OnVuaXF1ZV9wdHI8Q29u dGV4dD4gY29udGV4dF87Ci0gCi0tICAvLyBTdGFjayBzZWdtZW50cyB0aGF0IG1heSBhbHNvIGNv bnRhaW4gcG9pbnRlcnMgYW5kIHNob3VsZCBiZQotLSAgLy8gc2Nhbm5lZC4KLSsgIC8vIFRPRE8o djg6MTM0OTMpOiBUaGlzIGlzIGZvciBzdXBwcmVzc2luZyB0aGUgY2hlY2sgdGhhdCB3ZSBhcmUg aW4gdGhlCi0rICAvLyBjb3JyZWN0IHN0YWNrLCBpbiB0aGUgY2FzZSBvZiAgV0FTTSBzdGFjayBz d2l0Y2hpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBhcwotKyAgLy8gc29vbiBhcyBjb250ZXh0IHNh dmluZyBiZWNvbWVzIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCi0rICBib29sIHdh c21fc3RhY2tfc3dpdGNoaW5nXzsKLSsKLSsgIC8vIFN0YWNrIHNlZ21lbnRzIHRoYXQgbWF5IGFs c28gY29udGFpbiBwb2ludGVycyBhbmQgc2hvdWxkIGJlIHNjYW5uZWQuCi0gICBzdHJ1Y3QgU3Rh Y2tTZWdtZW50cyB7Ci0gICAgIGNvbnN0IHZvaWQqIHN0YXJ0OwotICAgICBjb25zdCB2b2lkKiB0 b3A7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvY3BwZ2MtanMvY3BwLWhlYXAuY2MgYi9zcmMvaGVh cC9jcHBnYy1qcy9jcHAtaGVhcC5jYwotaW5kZXggYzI3YzYxMi4uNjNjNTIxMiAxMDA2NDQKLS0t LSBhL3Y4L3NyYy9oZWFwL2NwcGdjLWpzL2NwcC1oZWFwLmNjCi0rKysgYi92OC9zcmMvaGVhcC9j cHBnYy1qcy9jcHAtaGVhcC5jYwotQEAgLTE2LDYgKzE2LDcgQEAKLSAjaW5jbHVkZSAic3JjL2Jh c2UvbG9nZ2luZy5oIgotICNpbmNsdWRlICJzcmMvYmFzZS9tYWNyb3MuaCIKLSAjaW5jbHVkZSAi c3JjL2Jhc2Uvb3B0aW9uYWwuaCIKLSsjaW5jbHVkZSAic3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZv cm0uaCIKLSAjaW5jbHVkZSAic3JjL2Jhc2UvcGxhdGZvcm0vdGltZS5oIgotICNpbmNsdWRlICJz cmMvZXhlY3V0aW9uL2lzb2xhdGUtaW5sLmgiCi0gI2luY2x1ZGUgInNyYy9mbGFncy9mbGFncy5o IgotQEAgLTgzOSw3ICs4NDAsNyBAQAotICAgY29uc3Qgc2l6ZV90IGJ5dGVzX2FsbG9jYXRlZF9p bl9wcmVmaW5hbGl6ZXJzID0gRXhlY3V0ZVByZUZpbmFsaXplcnMoKTsKLSAjaWYgQ1BQR0NfVkVS SUZZX0hFQVAKLSAgIFVuaWZpZWRIZWFwTWFya2luZ1ZlcmlmaWVyIHZlcmlmaWVyKCp0aGlzLCAq Y29sbGVjdGlvbl90eXBlXyk7Ci0tICB2ZXJpZmllci5SdW4oc3RhY2tfc3RhdGVfb2ZfcHJldl9n YygpLAotKyAgdmVyaWZpZXIuUnVuKHN0YWNrX3N0YXRlX29mX3ByZXZfZ2MoKSwgc3RhY2tfZW5k X29mX2N1cnJlbnRfZ2MoKSwKLSAgICAgICAgICAgICAgICBzdGF0c19jb2xsZWN0b3IoKS0+bWFy a2VkX2J5dGVzX29uX2N1cnJlbnRfY3ljbGUoKSArCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVz X2FsbG9jYXRlZF9pbl9wcmVmaW5hbGl6ZXJzKTsKLSAjZW5kaWYgIC8vIENQUEdDX1ZFUklGWV9I RUFQCi1AQCAtOTQyLDcgKzk0Myw3IEBACi0gICAvLyBGaW5pc2ggc3dlZXBpbmcgaW4gY2FzZSBp dCBpcyBzdGlsbCBydW5uaW5nLgotICAgc3dlZXBlcigpLkZpbmlzaElmUnVubmluZygpOwotIAot LSAgU2F2ZVN0YWNrQ29udGV4dFNjb3BlIHN0YWNrX2NvbnRleHRfc2NvcGUoc3RhY2soKSk7Ci0r ICBTZXRTdGFja0VuZE9mQ3VycmVudEdDKHY4OjpiYXNlOjpTdGFjazo6R2V0Q3VycmVudFN0YWNr UG9zaXRpb24oKSk7Ci0gCi0gICBpZiAoaXNvbGF0ZV8pIHsKLSAgICAgcmVpbnRlcnByZXRfY2Fz dDx2ODo6SXNvbGF0ZSo+KGlzb2xhdGVfKQotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2NwcGdjL2hl YXAtYmFzZS5oIGIvc3JjL2hlYXAvY3BwZ2MvaGVhcC1iYXNlLmgKLWluZGV4IGFjMWRkM2YuLjI5 YTg4YjIgMTAwNjQ0Ci0tLS0gYS92OC9zcmMvaGVhcC9jcHBnYy9oZWFwLWJhc2UuaAotKysrIGIv djgvc3JjL2hlYXAvY3BwZ2MvaGVhcC1iYXNlLmgKLUBAIC0xODMsNiArMTgzLDEzIEBACi0gICAg IHN0YWNrX3N0YXRlX29mX3ByZXZfZ2NfID0gc3RhY2tfc3RhdGU7Ci0gICB9Ci0gCi0rICBjb25z dCB2b2lkKiBzdGFja19lbmRfb2ZfY3VycmVudF9nYygpIGNvbnN0IHsKLSsgICAgcmV0dXJuIHN0 YWNrX2VuZF9vZl9jdXJyZW50X2djXzsKLSsgIH0KLSsgIHZvaWQgU2V0U3RhY2tFbmRPZkN1cnJl bnRHQyhjb25zdCB2b2lkKiBzdGFja19lbmQpIHsKLSsgICAgc3RhY2tfZW5kX29mX2N1cnJlbnRf Z2NfID0gc3RhY2tfZW5kOwotKyAgfQotKwotICAgdm9pZCBTZXRJbkF0b21pY1BhdXNlRm9yVGVz dGluZyhib29sIHZhbHVlKSB7IGluX2F0b21pY19wYXVzZV8gPSB2YWx1ZTsgfQotIAotICAgdmly dHVhbCB2b2lkIFN0YXJ0SW5jcmVtZW50YWxHYXJiYWdlQ29sbGVjdGlvbkZvclRlc3RpbmcoKSA9 IDA7Ci1AQCAtMjg4LDYgKzI5NSwxMCBAQAotICAgICAgIEVtYmVkZGVyU3RhY2tTdGF0ZTo6a05v SGVhcFBvaW50ZXJzOwotICAgc3RkOjp1bmlxdWVfcHRyPEVtYmVkZGVyU3RhY2tTdGF0ZT4gb3Zl cnJpZGVfc3RhY2tfc3RhdGVfOwotIAotKyAgLy8gTWFya2VyIHRoYXQgc2lnbmFscyBlbmQgb2Yg dGhlIGludGVyZXN0aW5nIHN0YWNrIHJlZ2lvbiBpbiB3aGljaCBvbi1oZWFwCi0rICAvLyBwb2lu dGVycyBjYW4gYmUgZm91bmQuCi0rICBjb25zdCB2b2lkKiBzdGFja19lbmRfb2ZfY3VycmVudF9n Y18gPSBudWxscHRyOwotKwotICAgYm9vbCBpbl9hdG9taWNfcGF1c2VfID0gZmFsc2U7Ci0gCi0g ICBpbnQgY3JlYXRpb25fdGhyZWFkX2lkXyA9IHY4OjpiYXNlOjpPUzo6R2V0Q3VycmVudFRocmVh ZElkKCk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvY3BwZ2MvaGVhcC5jYyBiL3NyYy9oZWFwL2Nw cGdjL2hlYXAuY2MKLWluZGV4IDc3Njk0MTIuLjI4YTExZmMgMTAwNjQ0Ci0tLS0gYS92OC9zcmMv aGVhcC9jcHBnYy9oZWFwLmNjCi0rKysgYi92OC9zcmMvaGVhcC9jcHBnYy9oZWFwLmNjCi1AQCAt MTY2LDEwICsxNjYsOSBAQAotICAgRENIRUNLKCFpbl9ub19nY19zY29wZSgpKTsKLSAgIENIRUNL KCFpbl9kaXNhbGxvd19nY19zY29wZSgpKTsKLSAgIGNvbmZpZ18uc3RhY2tfc3RhdGUgPSBzdGFj a19zdGF0ZTsKLSsgIFNldFN0YWNrRW5kT2ZDdXJyZW50R0Modjg6OmJhc2U6OlN0YWNrOjpHZXRD dXJyZW50U3RhY2tQb3NpdGlvbigpKTsKLSAgIGluX2F0b21pY19wYXVzZV8gPSB0cnVlOwotIAot LSAgc3RhY2soKS0+U2F2ZUNvbnRleHQoKTsKLS0KLSAjaWYgZGVmaW5lZChDUFBHQ19ZT1VOR19H RU5FUkFUSU9OKQotICAgLy8gQ2hlY2sgaWYgdGhlIHlvdW5nIGdlbmVyYXRpb24gd2FzIGVuYWJs ZWQuIFdlIG11c3QgZW5hYmxlIHlvdW5nIGdlbmVyYXRpb24KLSAgIC8vIGJlZm9yZSBjYWxsaW5n IHRoZSBjdXN0b20gd2VhayBjYWxsYmFja3MgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNhbGxiYWNr cwotQEAgLTE4OCw3ICsxODcsNyBAQAotICAgY29uc3Qgc2l6ZV90IGJ5dGVzX2FsbG9jYXRlZF9p bl9wcmVmaW5hbGl6ZXJzID0gRXhlY3V0ZVByZUZpbmFsaXplcnMoKTsKLSAjaWYgQ1BQR0NfVkVS SUZZX0hFQVAKLSAgIE1hcmtpbmdWZXJpZmllciB2ZXJpZmllcigqdGhpcywgY29uZmlnXy5jb2xs ZWN0aW9uX3R5cGUpOwotLSAgdmVyaWZpZXIuUnVuKGNvbmZpZ18uc3RhY2tfc3RhdGUsCi0rICB2 ZXJpZmllci5SdW4oY29uZmlnXy5zdGFja19zdGF0ZSwgc3RhY2tfZW5kX29mX2N1cnJlbnRfZ2Mo KSwKLSAgICAgICAgICAgICAgICBzdGF0c19jb2xsZWN0b3IoKS0+bWFya2VkX2J5dGVzX29uX2N1 cnJlbnRfY3ljbGUoKSArCi0gICAgICAgICAgICAgICAgICAgIGJ5dGVzX2FsbG9jYXRlZF9pbl9w cmVmaW5hbGl6ZXJzKTsKLSAjZW5kaWYgIC8vIENQUEdDX1ZFUklGWV9IRUFQCi1AQCAtMTk3LDgg KzE5Niw2IEBACi0gI2VuZGlmCi0gICBVU0UoYnl0ZXNfYWxsb2NhdGVkX2luX3ByZWZpbmFsaXpl cnMpOwotIAotLSAgc3RhY2soKS0+Q2xlYXJDb250ZXh0KCk7Ci0tCi0gI2lmIGRlZmluZWQoQ1BQ R0NfWU9VTkdfR0VORVJBVElPTikKLSAgIFJlc2V0UmVtZW1iZXJlZFNldCgpOwotICNlbmRpZiAg Ly8gZGVmaW5lZChDUFBHQ19ZT1VOR19HRU5FUkFUSU9OKQotZGlmZiAtLWdpdCBhL3NyYy9oZWFw L2NwcGdjL21hcmtpbmctdmVyaWZpZXIuY2MgYi9zcmMvaGVhcC9jcHBnYy9tYXJraW5nLXZlcmlm aWVyLmNjCi1pbmRleCA1NTA4NzY2Li5iNzEyN2MyIDEwMDY0NAotLS0tIGEvdjgvc3JjL2hlYXAv Y3BwZ2MvbWFya2luZy12ZXJpZmllci5jYwotKysrIGIvdjgvc3JjL2hlYXAvY3BwZ2MvbWFya2lu Zy12ZXJpZmllci5jYwotQEAgLTQ1LDcgKzQ1LDggQEAKLSAgICAgICBjb2xsZWN0aW9uX3R5cGVf KGNvbGxlY3Rpb25fdHlwZSkge30KLSAKLSB2b2lkIE1hcmtpbmdWZXJpZmllckJhc2U6OlJ1bigK LS0gICAgU3RhY2tTdGF0ZSBzdGFja19zdGF0ZSwgdjg6OmJhc2U6Ok9wdGlvbmFsPHNpemVfdD4g ZXhwZWN0ZWRfbWFya2VkX2J5dGVzKSB7Ci0rICAgIFN0YWNrU3RhdGUgc3RhY2tfc3RhdGUsIGNv bnN0IHZvaWQqIHN0YWNrX2VuZCwKLSsgICAgdjg6OmJhc2U6Ok9wdGlvbmFsPHNpemVfdD4gZXhw ZWN0ZWRfbWFya2VkX2J5dGVzKSB7Ci0gICBUcmF2ZXJzZShoZWFwXy5yYXdfaGVhcCgpKTsKLSAv LyBBdm9pZCB2ZXJpZnlpbmcgdGhlIHN0YWNrIHdoZW4gcnVubmluZyB3aXRoIFRTQU4gYXMgdGhl IFRTQU4gcnVudGltZSBjaGFuZ2VzCi0gLy8gc3RhY2sgY29udGVudHMgd2hlbiBlLmcuIHdvcmtp bmcgd2l0aCBsb2Nrcy4gU3BlY2lmaWNhbGx5LCB0aGUgbWFya2VyIHVzZXMKLUBAIC02Miw3ICs2 Myw3IEBACi0gI2lmICFkZWZpbmVkKFRIUkVBRF9TQU5JVElaRVIpICYmICFkZWZpbmVkKENQUEdD X1BPSU5URVJfQ09NUFJFU1NJT04pCi0gICBpZiAoc3RhY2tfc3RhdGUgPT0gU3RhY2tTdGF0ZTo6 a01heUNvbnRhaW5IZWFwUG9pbnRlcnMpIHsKLSAgICAgaW5fY29uc3RydWN0aW9uX29iamVjdHNf ID0gJmluX2NvbnN0cnVjdGlvbl9vYmplY3RzX3N0YWNrXzsKLS0gICAgaGVhcF8uc3RhY2soKS0+ SXRlcmF0ZVBvaW50ZXJzKHRoaXMpOwotKyAgICBoZWFwXy5zdGFjaygpLT5JdGVyYXRlUG9pbnRl cnNVbnNhZmUodGhpcywgc3RhY2tfZW5kKTsKLSAgICAgLy8gVGhlIG9iamVjdHMgZm91bmQgdGhy b3VnaCB0aGUgdW5zYWZlIGl0ZXJhdGlvbiBhcmUgb25seSBhIHN1YnNldCBvZiB0aGUKLSAgICAg Ly8gcmVndWxhciBpdGVyYXRpb24gYXMgdGhleSBtaXNzIG9iamVjdHMgaGVsZCBhbGl2ZSBvbmx5 IGZyb20gY2FsbGVlLXNhdmVkCi0gICAgIC8vIHJlZ2lzdGVycyB0aGF0IGFyZSBuZXZlciBwdXNo ZWQgb24gdGhlIHN0YWNrIGFuZCBTYWZlU3RhY2suCi1kaWZmIC0tZ2l0IGEvc3JjL2hlYXAvY3Bw Z2MvbWFya2luZy12ZXJpZmllci5oIGIvc3JjL2hlYXAvY3BwZ2MvbWFya2luZy12ZXJpZmllci5o Ci1pbmRleCA1MTMyYjNhLi41MTM2ZjI5IDEwMDY0NAotLS0tIGEvdjgvc3JjL2hlYXAvY3BwZ2Mv bWFya2luZy12ZXJpZmllci5oCi0rKysgYi92OC9zcmMvaGVhcC9jcHBnYy9tYXJraW5nLXZlcmlm aWVyLmgKLUBAIC00MSw3ICs0MSw3IEBACi0gICBNYXJraW5nVmVyaWZpZXJCYXNlKGNvbnN0IE1h cmtpbmdWZXJpZmllckJhc2UmKSA9IGRlbGV0ZTsKLSAgIE1hcmtpbmdWZXJpZmllckJhc2UmIG9w ZXJhdG9yPShjb25zdCBNYXJraW5nVmVyaWZpZXJCYXNlJikgPSBkZWxldGU7Ci0gCi0tICB2b2lk IFJ1bihTdGFja1N0YXRlLCB2ODo6YmFzZTo6T3B0aW9uYWw8c2l6ZV90Pik7Ci0rICB2b2lkIFJ1 bihTdGFja1N0YXRlLCBjb25zdCB2b2lkKiwgdjg6OmJhc2U6Ok9wdGlvbmFsPHNpemVfdD4pOwot IAotICBwcm90ZWN0ZWQ6Ci0gICBNYXJraW5nVmVyaWZpZXJCYXNlKEhlYXBCYXNlJiwgQ29sbGVj dGlvblR5cGUsIFZlcmlmaWNhdGlvblN0YXRlJiwKLWRpZmYgLS1naXQgYS9zcmMvaGVhcC9oZWFw LmNjIGIvc3JjL2hlYXAvaGVhcC5jYwotaW5kZXggNDk5NGEzYS4uZjRiN2RhMCAxMDA2NDQKLS0t LSBhL3Y4L3NyYy9oZWFwL2hlYXAuY2MKLSsrKyBiL3Y4L3NyYy9oZWFwL2hlYXAuY2MKLUBAIC0x Njg1LDcgKzE2ODUsMjIgQEAKLSAgICAgRGV2VG9vbHNUcmFjZUV2ZW50U2NvcGUgZGV2dG9vbHNf dHJhY2VfZXZlbnRfc2NvcGUoCi0gICAgICAgICB0aGlzLCBJc1lvdW5nR2VuZXJhdGlvbkNvbGxl Y3Rvcihjb2xsZWN0b3IpID8gIk1pbm9yR0MiIDogIk1ham9yR0MiLAotICAgICAgICAgR2FyYmFn ZUNvbGxlY3Rpb25SZWFzb25Ub1N0cmluZyhnY19yZWFzb24pKTsKLS0gICAgU2F2ZVN0YWNrQ29u dGV4dFNjb3BlIHN0YWNrX2NvbnRleHRfc2NvcGUoJnN0YWNrKCkpOwotKwotKyAgICBpZiAoY3Bw X2hlYXAoKSkgewotKyAgICAgIGlmIChjb2xsZWN0b3IgPT0gR2FyYmFnZUNvbGxlY3Rvcjo6TUFS S19DT01QQUNUT1IgfHwKLSsgICAgICAgICAgKGNvbGxlY3RvciA9PSBHYXJiYWdlQ29sbGVjdG9y OjpNSU5PUl9NQVJLX0NPTVBBQ1RPUiAmJgotKyAgICAgICAgICAgQ3BwSGVhcDo6RnJvbShjcHBf aGVhcCgpKS0+Z2VuZXJhdGlvbmFsX2djX3N1cHBvcnRlZCgpKSkgewotKyAgICAgICAgLy8gQ3Bw SGVhcCBuZWVkcyBhIHN0YWNrIG1hcmtlciBhdCB0aGUgdG9wIG9mIGFsbCBlbnRyeSBwb2ludHMg dG8gYWxsb3cKLSsgICAgICAgIC8vIGRldGVybWluaXN0aWMgcGFzc2VzIG92ZXIgdGhlIHN0YWNr LiBFLmcuLCBhIHZlcmlmaWVyIHRoYXQgc2hvdWxkCi0rICAgICAgICAvLyBvbmx5IGZpbmQgYSBz dWJzZXQgb2YgcmVmZXJlbmNlcyBvZiB0aGUgbWFya2VyLgotKyAgICAgICAgLy8KLSsgICAgICAg IC8vIFRPRE8oY2hyb21pdW06MTA1NjE3MCk6IENvbnNpZGVyIGFkZGluZyBhIGNvbXBvbmVudCB0 aGF0IGtlZXBzIHRyYWNrCi0rICAgICAgICAvLyBvZiByZWxldmFudCBHQyBzdGFjayByZWdpb25z IHdoZXJlIGludGVyZXN0aW5nIHBvaW50ZXJzIGNhbiBiZSBmb3VuZC4KLSsgICAgICAgIHN0YXRp Y19jYXN0PHY4OjppbnRlcm5hbDo6Q3BwSGVhcCo+KGNwcF9oZWFwKCkpCi0rICAgICAgICAgICAg LT5TZXRTdGFja0VuZE9mQ3VycmVudEdDKAotKyAgICAgICAgICAgICAgICB2ODo6YmFzZTo6U3Rh Y2s6OkdldEN1cnJlbnRTdGFja1Bvc2l0aW9uKCkpOwotKyAgICAgIH0KLSsgICAgfQotIAotICAg ICBHYXJiYWdlQ29sbGVjdGlvblByb2xvZ3VlKGdjX3JlYXNvbiwgZ2NfY2FsbGJhY2tfZmxhZ3Mp OwotICAgICB7Ci1AQCAtMjM5Niw4ICsyNDExLDYgQEAKLSAgIERDSEVDSyhpbmNyZW1lbnRhbF9t YXJraW5nXy0+SXNTdG9wcGVkKCkpOwotICAgRENIRUNLX05PVF9OVUxMKGlzb2xhdGUoKS0+Z2xv YmFsX3NhZmVwb2ludCgpKTsKLSAKLS0gIFNhdmVTdGFja0NvbnRleHRTY29wZSBzdGFja19jb250 ZXh0X3Njb3BlKCZzdGFjaygpKTsKLS0KLSAgIGlzb2xhdGUoKS0+Z2xvYmFsX3NhZmVwb2ludCgp LT5JdGVyYXRlQ2xpZW50SXNvbGF0ZXMoW10oSXNvbGF0ZSogY2xpZW50KSB7Ci0gICAgIGNsaWVu dC0+aGVhcCgpLT5GcmVlU2hhcmVkTGluZWFyQWxsb2NhdGlvbkFyZWFzKCk7Ci0gCi1AQCAtNTgw OSw3ICs1ODIyLDEyIEBACi0gfQotIAotIHZvaWQgSGVhcDo6U2V0U3RhY2tTdGFydCh2b2lkKiBz dGFja19zdGFydCkgewotLSAgc3RhY2soKS5TZXRTdGFja1N0YXJ0KHN0YWNrX3N0YXJ0KTsKLSsj aWYgVjhfRU5BQkxFX1dFQkFTU0VNQkxZCi0rICBzdGFjaygpLlNldFN0YWNrU3RhcnQoc3RhY2tf c3RhcnQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgdjhfZmxhZ3MuZXhwZXJpbWVudGFsX3dh c21fc3RhY2tfc3dpdGNoaW5nKTsKLSsjZWxzZQotKyAgc3RhY2soKS5TZXRTdGFja1N0YXJ0KHN0 YWNrX3N0YXJ0LCBmYWxzZSk7Ci0rI2VuZGlmICAvLyBWOF9FTkFCTEVfV0VCQVNTRU1CTFkKLSB9 Ci0gCi0gOjpoZWFwOjpiYXNlOjpTdGFjayYgSGVhcDo6c3RhY2soKSB7Ci1AQCAtNjM5MSw4ICs2 NDA5LDcgQEAKLSAgICAgICBmaWx0ZXJpbmdfKGZpbHRlcmluZyksCi0gICAgICAgZmlsdGVyXyhu dWxscHRyKSwKLSAgICAgICBzcGFjZV9pdGVyYXRvcl8obnVsbHB0ciksCi0tICAgICAgb2JqZWN0 X2l0ZXJhdG9yXyhudWxscHRyKSwKLS0gICAgICBzdGFja19jb250ZXh0X3Njb3BlXygmaGVhcC0+ c3RhY2soKSkgewotKyAgICAgIG9iamVjdF9pdGVyYXRvcl8obnVsbHB0cikgewotICAgaGVhcF8t Pk1ha2VIZWFwSXRlcmFibGUoKTsKLSAgIC8vIFN0YXJ0IHRoZSBpdGVyYXRpb24uCi0gICBzcGFj ZV9pdGVyYXRvcl8gPSBuZXcgU3BhY2VJdGVyYXRvcihoZWFwXyk7Ci1AQCAtNzM3MSwyOCArNzM4 OCw1IEBACi0gQ3BwQ2xhc3NOYW1lc0FzSGVhcE9iamVjdE5hbWVTY29wZTo6fkNwcENsYXNzTmFt ZXNBc0hlYXBPYmplY3ROYW1lU2NvcGUoKSA9Ci0gICAgIGRlZmF1bHQ7Ci0gCi0tU2F2ZVN0YWNr Q29udGV4dFNjb3BlOjpTYXZlU3RhY2tDb250ZXh0U2NvcGUoOjpoZWFwOjpiYXNlOjpTdGFjayog c3RhY2spCi0tICAgIDogc3RhY2tfKHN0YWNrKSB7Ci0tI2lmIFY4X0VOQUJMRV9XRUJBU1NFTUJM WQotLSAgLy8gVE9ETyh2ODoxMzQ5Myk6IERvIG5vdCBjaGVjayB0aGUgc3RhY2sgY29udGV4dCBp bnZhcmlhbnQgaWYgV0FTTSBzdGFjawotLSAgLy8gc3dpdGNoaW5nIGlzIGVuYWJsZWQuIFRoaXMg d2lsbCBiZSByZW1vdmVkIGFzIHNvb24gYXMgY29udGV4dCBzYXZpbmcKLS0gIC8vIGJlY29tZXMg Y29tcGF0aWJsZSB3aXRoIHN0YWNrIHN3aXRjaGluZy4KLS0gIHN0YWNrXy0+U2F2ZUNvbnRleHQo IXY4X2ZsYWdzLmV4cGVyaW1lbnRhbF93YXNtX3N0YWNrX3N3aXRjaGluZyk7Ci0tI2Vsc2UKLS0g IHN0YWNrXy0+U2F2ZUNvbnRleHQoKTsKLS0jZW5kaWYgIC8vIFY4X0VOQUJMRV9XRUJBU1NFTUJM WQotLX0KLS0KLS1TYXZlU3RhY2tDb250ZXh0U2NvcGU6On5TYXZlU3RhY2tDb250ZXh0U2NvcGUo KSB7Ci0tI2lmIFY4X0VOQUJMRV9XRUJBU1NFTUJMWQotLSAgLy8gVE9ETyh2ODoxMzQ5Myk6IERv IG5vdCBjaGVjayB0aGUgc3RhY2sgY29udGV4dCBpbnZhcmlhbnQgaWYgV0FTTSBzdGFjawotLSAg Ly8gc3dpdGNoaW5nIGlzIGVuYWJsZWQuIFRoaXMgd2lsbCBiZSByZW1vdmVkIGFzIHNvb24gYXMg Y29udGV4dCBzYXZpbmcKLS0gIC8vIGJlY29tZXMgY29tcGF0aWJsZSB3aXRoIHN0YWNrIHN3aXRj aGluZy4KLS0gIHN0YWNrXy0+Q2xlYXJDb250ZXh0KCF2OF9mbGFncy5leHBlcmltZW50YWxfd2Fz bV9zdGFja19zd2l0Y2hpbmcpOwotLSNlbHNlCi0tICBzdGFja18tPkNsZWFyQ29udGV4dCgpOwot LSNlbmRpZiAgLy8gVjhfRU5BQkxFX1dFQkFTU0VNQkxZCi0tfQotLQotIH0gIC8vIG5hbWVzcGFj ZSBpbnRlcm5hbAotIH0gIC8vIG5hbWVzcGFjZSB2OAotZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2hl YXAuaCBiL3NyYy9oZWFwL2hlYXAuaAotaW5kZXggYzkzZDg5Yy4uYmM1NjVjYSAxMDA2NDQKLS0t LSBhL3Y4L3NyYy9oZWFwL2hlYXAuaAotKysrIGIvdjgvc3JjL2hlYXAvaGVhcC5oCi1AQCAtMjYz MywxNyArMjYzMyw2IEBACi0gICBIZWFwKiBoZWFwXzsKLSB9OwotIAotLS8vIFRPRE8odjg6MTM0 OTMpOiBUaGlzIGNsYXNzIHdpbGwgbW92ZSB0byBzcmMvaGVhcC9iYXNlL3N0YWNrLmggb25jZSBp dHMKLS0vLyBpbXBsZW1lbnRhdGlvbiBubyBsb25nZXIgbmVlZHMgYWNjZXNzIHRvIFY4IGZsYWdz LgotLWNsYXNzIFY4X0VYUE9SVF9QUklWQVRFIFY4X05PRElTQ0FSRCBTYXZlU3RhY2tDb250ZXh0 U2NvcGUgewotLSBwdWJsaWM6Ci0tICBleHBsaWNpdCBTYXZlU3RhY2tDb250ZXh0U2NvcGUoOjpo ZWFwOjpiYXNlOjpTdGFjayogc3RhY2spOwotLSAgflNhdmVTdGFja0NvbnRleHRTY29wZSgpOwot LQotLSBwcm90ZWN0ZWQ6Ci0tICA6OmhlYXA6OmJhc2U6OlN0YWNrKiBzdGFja187Ci0tfTsKLS0K LSBjbGFzcyBWOF9OT0RJU0NBUkQgRGlzYWJsZUNvbnNlcnZhdGl2ZVN0YWNrU2Nhbm5pbmdTY29w ZUZvclRlc3RpbmcgewotICBwdWJsaWM6Ci0gICBleHBsaWNpdCBpbmxpbmUgRGlzYWJsZUNvbnNl cnZhdGl2ZVN0YWNrU2Nhbm5pbmdTY29wZUZvclRlc3RpbmcoSGVhcCogaGVhcCkKLUBAIC0yNjk1 LDcgKzI2ODQsNiBAQAotICAgU3BhY2VJdGVyYXRvciogc3BhY2VfaXRlcmF0b3JfOwotICAgLy8g T2JqZWN0IGl0ZXJhdG9yIGZvciB0aGUgc3BhY2UgY3VycmVudGx5IGJlaW5nIGl0ZXJhdGVkLgot ICAgc3RkOjp1bmlxdWVfcHRyPE9iamVjdEl0ZXJhdG9yPiBvYmplY3RfaXRlcmF0b3JfOwotLSAg U2F2ZVN0YWNrQ29udGV4dFNjb3BlIHN0YWNrX2NvbnRleHRfc2NvcGVfOwotIAotICAgRElTQUxM T1dfR0FSQkFHRV9DT0xMRUNUSU9OKG5vX2hlYXBfYWxsb2NhdGlvbl8pCi0gfTsKLWRpZmYgLS1n aXQgYS9zcmMvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZW5lcmF0b3IuY2MgYi9zcmMvcHJvZmls ZXIvaGVhcC1zbmFwc2hvdC1nZW5lcmF0b3IuY2MKLWluZGV4IGUwNzY0MTguLmYwYjMwNTggMTAw NjQ0Ci0tLS0gYS92OC9zcmMvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZW5lcmF0b3IuY2MKLSsr KyBiL3Y4L3NyYy9wcm9maWxlci9oZWFwLXNuYXBzaG90LWdlbmVyYXRvci5jYwotQEAgLTIwNTUs MTYgKzIwNTUsMTQgQEAKLSAgIC8vIGl0cyBjdXN0b20gbmFtZSB0byBhIGdlbmVyaWMgYnVpbHRp bi4KLSAgIFJvb3RzUmVmZXJlbmNlc0V4dHJhY3RvciBleHRyYWN0b3IodGhpcyk7Ci0gICBSZWFk T25seVJvb3RzKGhlYXBfKS5JdGVyYXRlKCZleHRyYWN0b3IpOwotLSAgewotLSAgICBTYXZlU3Rh Y2tDb250ZXh0U2NvcGUgc2NvcGUoJmhlYXBfLT5zdGFjaygpKTsKLS0gICAgaGVhcF8tPkl0ZXJh dGVSb290cygmZXh0cmFjdG9yLCBiYXNlOjpFbnVtU2V0PFNraXBSb290PntTa2lwUm9vdDo6a1dl YWt9KTsKLS0gICAgLy8gVE9ETyh2ODoxMTgwMCk6IFRoZSBoZWFwIHNuYXBzaG90IGdlbmVyYXRv ciBpbmNvcnJlY3RseSBjb25zaWRlcnMgdGhlCi0tICAgIC8vIHdlYWsgc3RyaW5nIHRhYmxlcyBh cyBzdHJvbmcgcmV0YWluZXJzLiBNb3ZlIEl0ZXJhdGVXZWFrUm9vdHMgYWZ0ZXIKLS0gICAgLy8g U2V0VmlzaXRpbmdXZWFrUm9vdHMuCi0tICAgIGhlYXBfLT5JdGVyYXRlV2Vha1Jvb3RzKCZleHRy YWN0b3IsIHt9KTsKLS0gICAgZXh0cmFjdG9yLlNldFZpc2l0aW5nV2Vha1Jvb3RzKCk7Ci0tICAg IGhlYXBfLT5JdGVyYXRlV2Vha0dsb2JhbEhhbmRsZXMoJmV4dHJhY3Rvcik7Ci0tICB9Ci0rICBo ZWFwXy0+SXRlcmF0ZVJvb3RzKCZleHRyYWN0b3IsIGJhc2U6OkVudW1TZXQ8U2tpcFJvb3Q+e1Nr aXBSb290OjprV2Vha30pOwotKyAgLy8gVE9ETyh2ODoxMTgwMCk6IFRoZSBoZWFwIHNuYXBzaG90 IGdlbmVyYXRvciBpbmNvcnJlY3RseSBjb25zaWRlcnMgdGhlIHdlYWsKLSsgIC8vIHN0cmluZyB0 YWJsZXMgYXMgc3Ryb25nIHJldGFpbmVycy4gTW92ZSBJdGVyYXRlV2Vha1Jvb3RzIGFmdGVyCi0r ICAvLyBTZXRWaXNpdGluZ1dlYWtSb290cy4KLSsgIGhlYXBfLT5JdGVyYXRlV2Vha1Jvb3RzKCZl eHRyYWN0b3IsIHt9KTsKLSsgIGV4dHJhY3Rvci5TZXRWaXNpdGluZ1dlYWtSb290cygpOwotKyAg aGVhcF8tPkl0ZXJhdGVXZWFrR2xvYmFsSGFuZGxlcygmZXh0cmFjdG9yKTsKLSsKLSAgIGJvb2wg aW50ZXJydXB0ZWQgPSBmYWxzZTsKLSAKLSAgIENvbWJpbmVkSGVhcE9iamVjdEl0ZXJhdG9yIGl0 ZXJhdG9yKGhlYXBfLAoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExMS12OC1zdGQtbGF5b3V0Mi5w YXRjaCBiL2Nocm9taXVtLTExMS12OC1zdGQtbGF5b3V0Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZGI5ODNhZi4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS0xMTEtdjgtc3Rk LWxheW91dDIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTggKzAsMCBAQAotRnJvbSA5MTY2 NDFjMDhkZTQ0ZTBhOTE1ZGYyMjNkNTU3ODFjNmM5MTI3MTdjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogTmlrb2xhb3MgUGFwYXNweXJvdSA8bmlrb2xhb3NAY2hyb21pdW0ub3JnPgot RGF0ZTogVGh1LCAxOSBKYW4gMjAyMyAxMzo0MzoxMCArMDEwMAotU3ViamVjdDogW1BBVENIXSBb aGVhcF0gTW92ZSB0aGUgU3RhY2sgb2JqZWN0IGZyb20gVGhyZWFkTG9jYWxUb3AgdG8gSXNvbGF0 ZQotCi1TdGFjayBpbmZvcm1hdGlvbiBpcyB0aHJlYWQtc3BlY2lmaWMgYW5kLCB1bnRpbCBub3cs IGl0IHdhcyBzdG9yZWQgaW4gYQotZmllbGQgaW4gVGhyZWFkTG9jYWxUb3AuIFRoaXMgQ0wgbW92 ZXMgc3RhY2sgaW5mb3JtYXRpb24gdG8gdGhlIGlzb2xhdGUKLWFuZCBtYWtlcyBzdXJlIHRvIHVw ZGF0ZSB0aGUgc3RhY2sgc3RhcnQgd2hlbmV2ZXIgYSBtYWluIHRocmVhZCBlbnRlcnMKLXRoZSBp c29sYXRlLiBBdCB0aGUgc2FtZSB0aW1lLCB0aGUgU3RhY2sgb2JqZWN0IGlzIHJlZmFjdG9yZWQg YW5kCi1zaW1wbGlmaWVkLgotCi1BcyBhIHNpZGUgZWZmZWN0LCBhZnRlciByZW1vdmluZyB0aGUg U3RhY2sgb2JqZWN0LCBUaHJlYWRMb2NhbFRvcAotc2F0aXNmaWVzIHRoZSBzdGQ6OnN0YW5kYXJk X2xheW91dCB0cmFpdDsgdGhpcyBmaXhlcyBzb21lIGlzc3Vlcwotb2JzZXJ2ZWQgd2l0aCBkaWZm ZXJlbnQgQysrIGNvbXBpbGVycy4KLQotQnVnOiB2ODoxMzYzMAotQnVnOiB2ODoxMzI1NwotQ2hh bmdlLUlkOiBJMDI2YTM1YWYzYmM2OTk5YTA5YjIxZjI3Nzc1NmQ0NDU0YzA4NjM0MwotCi0oc3Ry aXBwZWQgdGVzdHMpCi0tLS0KLQotZGlmZiAtLWdpdCBhL3NyYy9leGVjdXRpb24vaXNvbGF0ZS5j YyBiL3NyYy9leGVjdXRpb24vaXNvbGF0ZS5jYwotaW5kZXggMzE1MzZhMS4uMjJiODQ5MiAxMDA2 NDQKLS0tLSBhL3Y4L3NyYy9leGVjdXRpb24vaXNvbGF0ZS5jYwotKysrIGIvdjgvc3JjL2V4ZWN1 dGlvbi9pc29sYXRlLmNjCi1AQCAtMzA2OSwyMSArMzA2OSwyMyBAQAotIHZvaWQgSXNvbGF0ZTo6 UmVjb3JkU3RhY2tTd2l0Y2hGb3JTY2FubmluZygpIHsKLSAgIE9iamVjdCBjdXJyZW50ID0gcm9v dChSb290SW5kZXg6OmtBY3RpdmVDb250aW51YXRpb24pOwotICAgRENIRUNLKCFjdXJyZW50Lklz VW5kZWZpbmVkKCkpOwotLSAgdGhyZWFkX2xvY2FsX3RvcCgpLT5zdGFja18uQ2xlYXJTdGFja1Nl Z21lbnRzKCk7Ci0tICB3YXNtOjpTdGFja01lbW9yeSogc3RhY2sgPSBNYW5hZ2VkPHdhc206OlN0 YWNrTWVtb3J5Pjo6Y2FzdCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYXNt Q29udGludWF0aW9uT2JqZWN0OjpjYXN0KGN1cnJlbnQpLnN0YWNrKCkpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLmdldCgpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLmdldCgpOwotKyAgc3RhY2soKS5DbGVhclN0YWNrU2VnbWVudHMoKTsKLSsgIHdhc206 OlN0YWNrTWVtb3J5KiB3YXNtX3N0YWNrID0KLSsgICAgICBNYW5hZ2VkPHdhc206OlN0YWNrTWVt b3J5Pjo6Y2FzdCgKLSsgICAgICAgICAgV2FzbUNvbnRpbnVhdGlvbk9iamVjdDo6Y2FzdChjdXJy ZW50KS5zdGFjaygpKQotKyAgICAgICAgICAuZ2V0KCkKLSsgICAgICAgICAgLmdldCgpOwotICAg Y3VycmVudCA9IFdhc21Db250aW51YXRpb25PYmplY3Q6OmNhc3QoY3VycmVudCkucGFyZW50KCk7 Ci0tICBoZWFwKCktPlNldFN0YWNrU3RhcnQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3RhY2st PmJhc2UoKSkpOwotKyAgaGVhcCgpLT5TZXRTdGFja1N0YXJ0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9p ZCo+KHdhc21fc3RhY2stPmJhc2UoKSkpOwotICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhZGQgYWxs IGluYWN0aXZlIHN0YWNrcy4gT25seSB0aGUgb25lcyBpbiB0aGUgYWN0aXZlIGNoYWluCi0gICAv LyBtYXkgY29udGFpbiBjcHAgaGVhcCBwb2ludGVycy4KLSAgIHdoaWxlICghY3VycmVudC5Jc1Vu ZGVmaW5lZCgpKSB7Ci0gICAgIGF1dG8gY29udCA9IFdhc21Db250aW51YXRpb25PYmplY3Q6OmNh c3QoY3VycmVudCk7Ci0tICAgIGF1dG8qIHN0YWNrID0gTWFuYWdlZDx3YXNtOjpTdGFja01lbW9y eT46OmNhc3QoY29udC5zdGFjaygpKS5nZXQoKS5nZXQoKTsKLS0gICAgdGhyZWFkX2xvY2FsX3Rv cCgpLT5zdGFja18uQWRkU3RhY2tTZWdtZW50KAotLSAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxj b25zdCB2b2lkKj4oc3RhY2stPmJhc2UoKSksCi0tICAgICAgICByZWludGVycHJldF9jYXN0PGNv bnN0IHZvaWQqPihzdGFjay0+am1wYnVmKCktPnNwKSk7Ci0rICAgIGF1dG8qIHdhc21fc3RhY2sg PQotKyAgICAgICAgTWFuYWdlZDx3YXNtOjpTdGFja01lbW9yeT46OmNhc3QoY29udC5zdGFjaygp KS5nZXQoKS5nZXQoKTsKLSsgICAgc3RhY2soKS5BZGRTdGFja1NlZ21lbnQoCi0rICAgICAgICBy ZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih3YXNtX3N0YWNrLT5iYXNlKCkpLAotKyAgICAg ICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4od2FzbV9zdGFjay0+am1wYnVmKCktPnNw KSk7Ci0gICAgIGN1cnJlbnQgPSBjb250LnBhcmVudCgpOwotICAgfQotIH0KLUBAIC0zMzcxLDIz ICszMzczLDEzIEBACi0gICBJc29sYXRlKiBzYXZlZF9pc29sYXRlID0gaXNvbGF0ZS0+VHJ5R2V0 Q3VycmVudCgpOwotICAgU2V0SXNvbGF0ZVRocmVhZExvY2Fscyhpc29sYXRlLCBudWxscHRyKTsK LSAgIGlzb2xhdGUtPnNldF90aHJlYWRfaWQoVGhyZWFkSWQ6OkN1cnJlbnQoKSk7Ci0tICBpZiAo c2F2ZWRfaXNvbGF0ZSkgewotLSAgICBpc29sYXRlLT50aHJlYWRfbG9jYWxfdG9wKCktPnN0YWNr XyA9Ci0tICAgICAgICBzdGQ6Om1vdmUoc2F2ZWRfaXNvbGF0ZS0+dGhyZWFkX2xvY2FsX3RvcCgp LT5zdGFja18pOwotLSAgfSBlbHNlIHsKLS0gICAgaXNvbGF0ZS0+aGVhcCgpLT5TZXRTdGFja1N0 YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOwotLSAgfQotKyAgaXNvbGF0ZS0+aGVh cCgpLT5TZXRTdGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOwotIAotICAg Ym9vbCBvd25zX3NoYXJlZF9pc29sYXRlID0gaXNvbGF0ZS0+b3duc19zaGFyZWRfaXNvbGF0ZV87 Ci0gICBJc29sYXRlKiBtYXliZV9zaGFyZWRfaXNvbGF0ZSA9IGlzb2xhdGUtPnNoYXJlZF9pc29s YXRlXzsKLSAKLSAgIGlzb2xhdGUtPkRlaW5pdCgpOwotIAotLSAgLy8gUmVzdG9yZSB0aGUgc2F2 ZWQgaXNvbGF0ZSdzIHN0YWNrLgotLSAgaWYgKHNhdmVkX2lzb2xhdGUpCi0tICAgIHNhdmVkX2lz b2xhdGUtPnRocmVhZF9sb2NhbF90b3AoKS0+c3RhY2tfID0KLS0gICAgICAgIHN0ZDo6bW92ZShp c29sYXRlLT50aHJlYWRfbG9jYWxfdG9wKCktPnN0YWNrXyk7Ci0tCi0gI2lmZGVmIERFQlVHCi0g ICBub25fZGlzcG9zZWRfaXNvbGF0ZXNfLS07Ci0gI2VuZGlmICAvLyBERUJVRwotQEAgLTQ2NTIs NiArNDY0NCwxMCBAQAotIHZvaWQgSXNvbGF0ZTo6RW50ZXIoKSB7Ci0gICBJc29sYXRlKiBjdXJy ZW50X2lzb2xhdGUgPSBudWxscHRyOwotICAgUGVySXNvbGF0ZVRocmVhZERhdGEqIGN1cnJlbnRf ZGF0YSA9IEN1cnJlbnRQZXJJc29sYXRlVGhyZWFkRGF0YSgpOwotKwotKyAgLy8gU2V0IHRoZSBz dGFjayBzdGFydCBmb3IgdGhlIG1haW4gdGhyZWFkIHRoYXQgZW50ZXJzIHRoZSBpc29sYXRlLgot KyAgaGVhcCgpLT5TZXRTdGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOwot KwotICAgaWYgKGN1cnJlbnRfZGF0YSAhPSBudWxscHRyKSB7Ci0gICAgIGN1cnJlbnRfaXNvbGF0 ZSA9IGN1cnJlbnRfZGF0YS0+aXNvbGF0ZV87Ci0gICAgIERDSEVDS19OT1RfTlVMTChjdXJyZW50 X2lzb2xhdGUpOwotZGlmZiAtLWdpdCBhL3NyYy9leGVjdXRpb24vaXNvbGF0ZS5oIGIvc3JjL2V4 ZWN1dGlvbi9pc29sYXRlLmgKLWluZGV4IGFmYzNkMGIuLjQxNWU0NzYgMTAwNjQ0Ci0tLS0gYS92 OC9zcmMvZXhlY3V0aW9uL2lzb2xhdGUuaAotKysrIGIvdjgvc3JjL2V4ZWN1dGlvbi9pc29sYXRl LmgKLUBAIC0zMiw2ICszMiw3IEBACi0gI2luY2x1ZGUgInNyYy9leGVjdXRpb24vc3RhY2stZ3Vh cmQuaCIKLSAjaW5jbHVkZSAic3JjL2hhbmRsZXMvaGFuZGxlcy5oIgotICNpbmNsdWRlICJzcmMv aGFuZGxlcy90cmFjZWQtaGFuZGxlcy5oIgotKyNpbmNsdWRlICJzcmMvaGVhcC9iYXNlL3N0YWNr LmgiCi0gI2luY2x1ZGUgInNyYy9oZWFwL2ZhY3RvcnkuaCIKLSAjaW5jbHVkZSAic3JjL2hlYXAv aGVhcC5oIgotICNpbmNsdWRlICJzcmMvaGVhcC9yZWFkLW9ubHktaGVhcC5oIgotQEAgLTIwMjgs NiArMjAyOSw4IEBACi0gICBTaW11bGF0b3JEYXRhKiBzaW11bGF0b3JfZGF0YSgpIHsgcmV0dXJu IHNpbXVsYXRvcl9kYXRhXzsgfQotICNlbmRpZgotIAotKyAgOjpoZWFwOjpiYXNlOjpTdGFjayYg c3RhY2soKSB7IHJldHVybiBzdGFja187IH0KLSsKLSAjaWZkZWYgVjhfRU5BQkxFX1dFQkFTU0VN QkxZCi0gICB3YXNtOjpTdGFja01lbW9yeSomIHdhc21fc3RhY2tzKCkgeyByZXR1cm4gd2FzbV9z dGFja3NfOyB9Ci0gICAvLyBVcGRhdGUgdGhlIHRocmVhZCBsb2NhbCdzIFN0YWNrIG9iamVjdCBz byB0aGF0IGl0IGlzIGF3YXJlIG9mIHRoZSBuZXcgc3RhY2sKLUBAIC0yNTI2LDYgKzI1MjksOSBA QAotICAgLy8gVGhlIG11dGV4IG9ubHkgZ3VhcmRzIGFkZGluZyBwYWdlcywgdGhlIHJldHJpZXZh bCBpcyBzaWduYWwgc2FmZS4KLSAgIGJhc2U6Ok11dGV4IGNvZGVfcGFnZXNfbXV0ZXhfOwotIAot KyAgLy8gU3RhY2sgaW5mb3JtYXRpb24gZm9yIHRoZSBtYWluIHRocmVhZC4KLSsgIDo6aGVhcDo6 YmFzZTo6U3RhY2sgc3RhY2tfOwotKwotICNpZmRlZiBWOF9FTkFCTEVfV0VCQVNTRU1CTFkKLSAg IHdhc206OlN0YWNrTWVtb3J5KiB3YXNtX3N0YWNrc187Ci0gI2VuZGlmCi1kaWZmIC0tZ2l0IGEv c3JjL2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmNjIGIvc3JjL2V4ZWN1dGlvbi90aHJlYWQt bG9jYWwtdG9wLmNjCi1pbmRleCBjMTE1YWUwLi4wNWNjMjBiIDEwMDY0NAotLS0tIGEvdjgvc3Jj L2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmNjCi0rKysgYi92OC9zcmMvZXhlY3V0aW9uL3Ro cmVhZC1sb2NhbC10b3AuY2MKLUBAIC0zNyw3ICszNyw2IEBACi0gICBjdXJyZW50X2VtYmVkZGVy X3N0YXRlXyA9IG51bGxwdHI7Ci0gICBmYWlsZWRfYWNjZXNzX2NoZWNrX2NhbGxiYWNrXyA9IG51 bGxwdHI7Ci0gICB0aHJlYWRfaW5fd2FzbV9mbGFnX2FkZHJlc3NfID0ga051bGxBZGRyZXNzOwot LSAgc3RhY2tfID0gOjpoZWFwOjpiYXNlOjpTdGFjaygpOwotIH0KLSAKLSB2b2lkIFRocmVhZExv Y2FsVG9wOjpJbml0aWFsaXplKElzb2xhdGUqIGlzb2xhdGUpIHsKLUBAIC00NSwxMiArNDQsOCBA QAotICAgaXNvbGF0ZV8gPSBpc29sYXRlOwotICAgdGhyZWFkX2lkXyA9IFRocmVhZElkOjpDdXJy ZW50KCk7Ci0gI2lmIFY4X0VOQUJMRV9XRUJBU1NFTUJMWQotLSAgc3RhY2tfLlNldFN0YWNrU3Rh cnQoYmFzZTo6U3RhY2s6OkdldFN0YWNrU3RhcnQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg IHY4X2ZsYWdzLmV4cGVyaW1lbnRhbF93YXNtX3N0YWNrX3N3aXRjaGluZyk7Ci0gICB0aHJlYWRf aW5fd2FzbV9mbGFnX2FkZHJlc3NfID0gcmVpbnRlcnByZXRfY2FzdDxBZGRyZXNzPigKLSAgICAg ICB0cmFwX2hhbmRsZXI6OkdldFRocmVhZEluV2FzbVRocmVhZExvY2FsQWRkcmVzcygpKTsKLS0j ZWxzZQotLSAgc3RhY2tfLlNldFN0YWNrU3RhcnQoYmFzZTo6U3RhY2s6OkdldFN0YWNrU3RhcnQo KSwgZmFsc2UpOwotICNlbmRpZiAgLy8gVjhfRU5BQkxFX1dFQkFTU0VNQkxZCi0gI2lmZGVmIFVT RV9TSU1VTEFUT1IKLSAgIHNpbXVsYXRvcl8gPSBTaW11bGF0b3I6OmN1cnJlbnQoaXNvbGF0ZSk7 Ci1kaWZmIC0tZ2l0IGEvc3JjL2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmggYi9zcmMvZXhl Y3V0aW9uL3RocmVhZC1sb2NhbC10b3AuaAotaW5kZXggNDNmZWMwYS4uOTg5YzgxNyAxMDA2NDQK LS0tLSBhL3Y4L3NyYy9leGVjdXRpb24vdGhyZWFkLWxvY2FsLXRvcC5oCi0rKysgYi92OC9zcmMv ZXhlY3V0aW9uL3RocmVhZC1sb2NhbC10b3AuaAotQEAgLTEwLDcgKzEwLDYgQEAKLSAjaW5jbHVk ZSAiaW5jbHVkZS92OC11bndpbmRlci5oIgotICNpbmNsdWRlICJzcmMvY29tbW9uL2dsb2JhbHMu aCIKLSAjaW5jbHVkZSAic3JjL2V4ZWN1dGlvbi90aHJlYWQtaWQuaCIKLS0jaW5jbHVkZSAic3Jj L2hlYXAvYmFzZS9zdGFjay5oIgotICNpbmNsdWRlICJzcmMvb2JqZWN0cy9jb250ZXh0cy5oIgot ICNpbmNsdWRlICJzcmMvdXRpbHMvdXRpbHMuaCIKLSAKLUBAIC0zMCw3ICsyOSw3IEBACi0gICAv LyBUT0RPKGFsbCk6IFRoaXMgaXMgbm90IHBhcnRpY3VsYXJseSBiZWF1dGlmdWwuIFdlIHNob3Vs ZCBwcm9iYWJseQotICAgLy8gcmVmYWN0b3IgdGhpcyB0byByZWFsbHkgY29uc2lzdCBvZiBqdXN0 IEFkZHJlc3NlcyBhbmQgMzItYml0Ci0gICAvLyBpbnRlZ2VyIGZpZWxkcy4KLS0gIHN0YXRpYyBj b25zdGV4cHIgdWludDMyX3Qga1NpemVJbkJ5dGVzID0gMzAgKiBrU3lzdGVtUG9pbnRlclNpemU7 Ci0rICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtTaXplSW5CeXRlcyA9IDI1ICoga1N5c3Rl bVBvaW50ZXJTaXplOwotIAotICAgLy8gRG9lcyBlYXJseSBsb3ctbGV2ZWwgaW5pdGlhbGl6YXRp b24gdGhhdCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlCi0gICAvLyBpc29sYXRlIGJlaW5nIHByZXNl bnQuCi1AQCAtMTQ3LDkgKzE0Niw2IEBACi0gCi0gICAvLyBBZGRyZXNzIG9mIHRoZSB0aHJlYWQt bG9jYWwgInRocmVhZCBpbiB3YXNtIiBmbGFnLgotICAgQWRkcmVzcyB0aHJlYWRfaW5fd2FzbV9m bGFnX2FkZHJlc3NfOwotLQotLSAgLy8gU3RhY2sgaW5mb3JtYXRpb24uCi0tICA6OmhlYXA6OmJh c2U6OlN0YWNrIHN0YWNrXzsKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5hbAotZGlm ZiAtLWdpdCBhL3NyYy9oZWFwL2hlYXAuY2MgYi9zcmMvaGVhcC9oZWFwLmNjCi1pbmRleCBmNGI3 ZGEwLi42ZWZkNDg2IDEwMDY0NAotLS0tIGEvdjgvc3JjL2hlYXAvaGVhcC5jYwotKysrIGIvdjgv c3JjL2hlYXAvaGVhcC5jYwotQEAgLTU4MzAsOSArNTgzMCw3IEBACi0gI2VuZGlmICAvLyBWOF9F TkFCTEVfV0VCQVNTRU1CTFkKLSB9Ci0gCi0tOjpoZWFwOjpiYXNlOjpTdGFjayYgSGVhcDo6c3Rh Y2soKSB7Ci0tICByZXR1cm4gaXNvbGF0ZV8tPnRocmVhZF9sb2NhbF90b3AoKS0+c3RhY2tfOwot LX0KLSs6OmhlYXA6OmJhc2U6OlN0YWNrJiBIZWFwOjpzdGFjaygpIHsgcmV0dXJuIGlzb2xhdGVf LT5zdGFjaygpOyB9Ci0gCi0gdm9pZCBIZWFwOjpTdGFydFRlYXJEb3duKCkgewotICAgLy8gRmlu aXNoIGFueSBvbmdvaW5nIHN3ZWVwaW5nIHRvIGF2b2lkIHN0cmF5IGJhY2tncm91bmQgdGFza3Mg c3RpbGwgYWNjZXNzaW5nCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tOTQuMC40NjA2LjcxLUlua0Ry b3BIb3N0LWNyYXNoLnBhdGNoIGIvY2hyb21pdW0tOTQuMC40NjA2LjcxLUlua0Ryb3BIb3N0LWNy YXNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNWUyNzk0Li4wMDAwMDAw Ci0tLSBhL2Nocm9taXVtLTk0LjAuNDYwNi43MS1JbmtEcm9wSG9zdC1jcmFzaC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTk0LjAuNDYwNi43 MS91aS92aWV3cy9hbmltYXRpb24vaW5rX2Ryb3BfaG9zdF92aWV3LmguSW5rRHJvcEhvc3QtY3Jh c2ggY2hyb21pdW0tOTQuMC40NjA2LjcxL3VpL3ZpZXdzL2FuaW1hdGlvbi9pbmtfZHJvcF9ob3N0 X3ZpZXcuaAotLS0tIGNocm9taXVtLTk0LjAuNDYwNi43MS91aS92aWV3cy9hbmltYXRpb24vaW5r X2Ryb3BfaG9zdF92aWV3LmguSW5rRHJvcEhvc3QtY3Jhc2gJMjAyMS0xMC0wNSAxNjowNDo0Ni4z MTM1ODY1MDkgLTA0MDAKLSsrKyBjaHJvbWl1bS05NC4wLjQ2MDYuNzEvdWkvdmlld3MvYW5pbWF0 aW9uL2lua19kcm9wX2hvc3Rfdmlldy5oCTIwMjEtMTAtMDUgMTY6MDU6MTIuMjEzNzMyNTU4IC0w NDAwCi1AQCAtMjI4LDYgKzIyOCwxMSBAQCBjbGFzcyBWSUVXU19FWFBPUlQgSW5rRHJvcEhvc3Qg ewotICAgLy8gVXNlZCB0byBvYnNlcnZlIFZpZXcgYW5kIGluZm9ybSB0aGUgSW5rRHJvcCBvZiBo b3N0LXRyYW5zZm9ybSBjaGFuZ2VzLgotICAgVmlld0xheWVyVHJhbnNmb3JtT2JzZXJ2ZXIgaG9z dF92aWV3X3RyYW5zZm9ybV9vYnNlcnZlcl87Ci0gCi0rICAvLyBEZWNsYXJlZCBiZWZvcmUgfGlu a19kcm9wX3wsIGJlY2F1c2UgSW5rRHJvcEltcGwgbWF5IGNhbGwKLSsgIC8vIFJlbW92ZUlua0Ry b3BMYXllciBvbiBwYXJ0bHkgZGVzdHJ1Y3RlZCBJbmtEcm9wSG9zdC4gSW4KLSsgIC8vIHRoYXQg Y2FzZSB8aW5rX2Ryb3BfbWFza198IG11c3QgYmUgc3RpbGwgdmFsaWQuCi0rICBzdGQ6OnVuaXF1 ZV9wdHI8dmlld3M6Oklua0Ryb3BNYXNrPiBpbmtfZHJvcF9tYXNrXzsKLSsKLSAgIC8vIFNob3Vs ZCBub3QgYmUgYWNjZXNzZWQgZGlyZWN0bHkuIFVzZSBHZXRJbmtEcm9wKCkgaW5zdGVhZC4KLSAg IHN0ZDo6dW5pcXVlX3B0cjxJbmtEcm9wPiBpbmtfZHJvcF87Ci0gCi1AQCAtMjQ5LDggKzI1NCw2 IEBAIGNsYXNzIFZJRVdTX0VYUE9SVCBJbmtEcm9wSG9zdCB7Ci0gICBpbnQgaW5rX2Ryb3Bfc21h bGxfY29ybmVyX3JhZGl1c18gPSAyOwotICAgaW50IGlua19kcm9wX2xhcmdlX2Nvcm5lcl9yYWRp dXNfID0gNDsKLSAKLS0gIHN0ZDo6dW5pcXVlX3B0cjx2aWV3czo6SW5rRHJvcE1hc2s+IGlua19k cm9wX21hc2tfOwotLQotICAgYmFzZTo6UmVwZWF0aW5nQ2FsbGJhY2s8c3RkOjp1bmlxdWVfcHRy PElua0Ryb3A+KCk+IGNyZWF0ZV9pbmtfZHJvcF9jYWxsYmFja187Ci0gICBiYXNlOjpSZXBlYXRp bmdDYWxsYmFjazxzdGQ6OnVuaXF1ZV9wdHI8SW5rRHJvcFJpcHBsZT4oKT4KLSAgICAgICBjcmVh dGVfaW5rX2Ryb3BfcmlwcGxlX2NhbGxiYWNrXzsKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS12NGwy LWZpeC5wYXRjaCBiL2Nocm9taXVtLXY0bDItZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAxYWU3NTMwLi4wMDAwMDAwCi0tLSBhL2Nocm9taXVtLXY0bDItZml4LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLWNvbW1pdCBlNzc1YWM0NzcwYmIxZTVk ZmJmZTIyYzViNTY3NTJlZDRhMjMxN2M1Ci1BdXRob3I6IEhpcm9rYXp1IEhvbmRhIDxoaXJvaEBj aHJvbWl1bS5vcmc+Ci1EYXRlOiAgIFR1ZSBKYW4gMTcgMTc6NTQ6MDIgMjAyMyArMDAwMAotCi0g ICAgUmV2ZXJ0ICJtZWRpYS9ncHUvdjRsMlZFQSxJUDogV29ya2Fyb3VuZCB0byBVU0VSUFRSIEFQ SSBhZ2FpbnN0IHJlYWQtb25seSBidWYiCi0gICAgCi0gICAgVGhpcyByZXZlcnRzIGNvbW1pdCAy MDNmZGQwM2E0MzE3ZjJlYWM1NzE2MWVlMTAxNTE1YTgyZGY3MDRmLgotICAgIAotICAgIFJlYXNv biBmb3IgcmV2ZXJ0OiBUaGlzIHdvcmthcm91bmQgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGJlY2F1 c2Ugb2YKLSAgICB0aGUga2VybmVsIHBhdGNoIHdhcyByZXZlcnRlZC4KLSAgICAKLSAgICBPcmln aW5hbCBjaGFuZ2UncyBkZXNjcmlwdGlvbjoKLSAgICA+IG1lZGlhL2dwdS92NGwyVkVBLElQOiBX b3JrYXJvdW5kIHRvIFVTRVJQVFIgQVBJIGFnYWluc3QgcmVhZC1vbmx5IGJ1ZgotICAgID4KLSAg ICA+IFZpZGVvRnJhbWUgZmVkIGluIFZFQTo6RW5jb2RlKCkgaXMgcmVhZC1vbmx5IHNpbmNlIFIx MDcgaWYgdGhlCi0gICAgPiBWaWRlb0ZyYW1lIGhhcyBhIHNoYXJlZCBtZW1vcnkuIFY0TDJWaWRl b0VuY29kZUFjY2VsZXJhdG9yIGZhaWxzCi0gICAgPiBiZWNhdXNlIFZJRE9DX1FCVUYgd2l0aCBV U0VSUFRSIGJ1ZmZlciBmYWlscyBpZiB0aGUgcG9pbnRlcnMKLSAgICA+IHJlZmVyZW5jZXMgYSBy ZWFkLW9ubHkgYnVmZmVyLgotICAgID4gVGhlIFVTRVJQVFIgQVBJIGlzc3VlIGlzIGFwcGFyZW50 bHkgdG8gYmUgZml4ZWQgYnkgYSBrZXJuZWwgc2lkZS4KLSAgICA+IEluIHRoZSBtZWFudGltZSwg dGhpcyBDTCBhZGRzIHRoZSB3b3JrYXJvdW5kIHRvIHRoZSBpc3N1ZTsgdGhlIHJlYWQKLSAgICA+ IG9ubHkgYnVmZmVyIGlzIGNvcGllZCB0byBhIHdyaXRhYmxlIHRlbXBvcmFyeSBidWZmZXIgZXZl cnkgRW5jb2RlCi0gICAgPiBiZWZvcmUgVklESU9DX1FCVUYuCi0gICAgPiBOb3QgdGhhdCBWaWRl b0ZyYW1lIGhhcyBhIHNoYXJlZCBtZW1vcnkgaW4gdGhlIGNhc2Ugb2Ygc2NyZWVuIHNoYXJlCi0g ICAgPiBiZWNhdXNlIGEgY2FtZXJhIHN0YWNrIHByb2R1Y2VzIEdwdU1lbW9yeUJ1ZmZlci4KLSAg ICA+Ci0gICAgPiBCdWc6IGI6MjQzODgzMzEyCi0gICAgPiBUZXN0OiB2aWRlb19lbmNvZGVfYWNj ZWxlcmF0b3JfdGVzdHMgb24gZWxtLCBrZXZpbiBhbmQgdHJvZ2RvcgotICAgID4gVGVzdDogc2Ny ZWVuIHNoYXJlIGluIEdvb2dsZSBNZWV0IG9uIGVsbSwga2V2aW4gYW5kIHRyb2dkb3IKLSAgICA+ IENoYW5nZS1JZDogSTkyMmQ5OGVhZjUyZjgwZDljZDZjMzc4NGE4NTQ0YmZmYjEyMzI4NTYKLSAg ICA+IFJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29t L2MvY2hyb21pdW0vc3JjLysvMzg5MTQyMQotICAgID4gUmV2aWV3ZWQtYnk6IE5hdGhhbiBIZWJl cnQgPG5oZWJlcnRAY2hyb21pdW0ub3JnPgotICAgID4gQ29tbWl0LVF1ZXVlOiBIaXJva2F6dSBI b25kYSA8aGlyb2hAY2hyb21pdW0ub3JnPgotICAgID4gQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZz L2hlYWRzL21haW5AeyMxMDQ2NjU5fQotICAgIAotICAgIEJ1ZzogYjoyNDM4ODMzMTIsIGI6MjYx NjYwMjI0Ci0gICAgQ2hhbmdlLUlkOiBJNmZlMzcyNzZmMmViZThjODczMGNmZDNkZDc2NmIwNDI3 N2IzMmE2NwotICAgIFJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVz b3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNDA5MTIwNQotICAgIFJldmlld2VkLWJ5OiBOYXRo YW4gSGViZXJ0IDxuaGViZXJ0QGNocm9taXVtLm9yZz4KLSAgICBDb21taXQtUXVldWU6IEhpcm9r YXp1IEhvbmRhIDxoaXJvaEBjaHJvbWl1bS5vcmc+Ci0gICAgQ3ItQ29tbWl0LVBvc2l0aW9uOiBy ZWZzL2hlYWRzL21haW5AeyMxMDkzMzg4fQotCi1kaWZmIC0tZ2l0IGEvbWVkaWEvZ3B1L3Y0bDIv djRsMl9pbWFnZV9wcm9jZXNzb3JfYmFja2VuZC5jYyBiL21lZGlhL2dwdS92NGwyL3Y0bDJfaW1h Z2VfcHJvY2Vzc29yX2JhY2tlbmQuY2MKLWluZGV4IGRjNzJhNGFjMDYwYTkuLmYzMDQ5ZjQ1NDZl MmUgMTAwNjQ0Ci0tLS0gYS9tZWRpYS9ncHUvdjRsMi92NGwyX2ltYWdlX3Byb2Nlc3Nvcl9iYWNr ZW5kLmNjCi0rKysgYi9tZWRpYS9ncHUvdjRsMi92NGwyX2ltYWdlX3Byb2Nlc3Nvcl9iYWNrZW5k LmNjCi1AQCAtOTI1LDM1ICs5MjUsMTYgQEAgYm9vbCBWNEwySW1hZ2VQcm9jZXNzb3JCYWNrZW5k OjpFbnF1ZXVlSW5wdXRSZWNvcmQoCi0gCi0gICBzd2l0Y2ggKGlucHV0X21lbW9yeV90eXBlXykg ewotICAgICBjYXNlIFY0TDJfTUVNT1JZX1VTRVJQVFI6IHsKLS0gICAgICBWaWRlb0ZyYW1lJiBm cmFtZSA9ICpqb2JfcmVjb3JkLT5pbnB1dF9mcmFtZTsKLSAgICAgICBjb25zdCBzaXplX3QgbnVt X3BsYW5lcyA9IFY0TDJEZXZpY2U6OkdldE51bVBsYW5lc09mVjRMMlBpeEZtdCgKLSAgICAgICAg ICAgaW5wdXRfY29uZmlnXy5mb3VyY2MuVG9WNEwyUGl4Rm10KCkpOwotICAgICAgIHN0ZDo6dmVj dG9yPHZvaWQqPiB1c2VyX3B0cnMobnVtX3BsYW5lcyk7Ci0tICAgICAgaWYgKGZyYW1lLnN0b3Jh Z2VfdHlwZSgpID09IFZpZGVvRnJhbWU6OlNUT1JBR0VfU0hNRU0pIHsKLS0gICAgICAgIC8vIFRP RE8oYi8yNDM4ODMzMTIpOiBUaGlzIGNvcGllcyB0aGUgdmlkZW8gZnJhbWUgdG8gYSB3cml0YWJs ZSBidWZmZXIKLS0gICAgICAgIC8vIHNpbmNlIHRoZSBVU0VSUFRSIEFQSSByZXF1aXJlcyB3cml0 YWJsZSBwZXJtaXNzaW9uLiBSZW1vdmUgdGhpcwotLSAgICAgICAgLy8gd29ya2Fyb3VuZCBvbmNl IHRoZSB1bnJlYXNvbmFibGUgcGVybWlzc2lvbiBpcyBmaXhlZC4KLS0gICAgICAgIGNvbnN0IHNp emVfdCBidWZmZXJfc2l6ZSA9IGZyYW1lLnNobV9yZWdpb24oKS0+R2V0U2l6ZSgpOwotLSAgICAg ICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gd3JpdGFibGVfYnVmZmVyKGJ1ZmZlcl9zaXplKTsKLS0g ICAgICAgIHN0ZDo6bWVtY3B5KHdyaXRhYmxlX2J1ZmZlci5kYXRhKCksIGZyYW1lLmRhdGEoMCks IGJ1ZmZlcl9zaXplKTsKLS0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX3BsYW5l czsgKytpKSB7Ci0tICAgICAgICAgIGNvbnN0IHN0ZDo6aW50cHRyX3QgcGxhbmVfb2Zmc2V0ID0K LS0gICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8c3RkOjppbnRwdHJfdD4oZnJhbWUuZGF0 YShpKSkgLQotLSAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxzdGQ6OmludHB0cl90Pihm cmFtZS5kYXRhKDApKTsKLS0gICAgICAgICAgdXNlcl9wdHJzW2ldID0gd3JpdGFibGVfYnVmZmVy LmRhdGEoKSArIHBsYW5lX29mZnNldDsKLS0gICAgICAgIH0KLS0gICAgICAgIGpvYl9yZWNvcmQt PmlucHV0X2ZyYW1lLT5BZGREZXN0cnVjdGlvbk9ic2VydmVyKGJhc2U6OkJpbmRPbmNlKAotLSAg ICAgICAgICAgIFtdKHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KSB7fSwgc3RkOjptb3ZlKHdyaXRhYmxl X2J1ZmZlcikpKTsKLS0gICAgICB9IGVsc2UgewotLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7 IGkgPCBudW1fcGxhbmVzOyArK2kpCi0tICAgICAgICAgIHVzZXJfcHRyc1tpXSA9IGZyYW1lLndy aXRhYmxlX2RhdGEoaSk7Ci0tICAgICAgfQotLQotICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp IDwgbnVtX3BsYW5lczsgKytpKSB7Ci0gICAgICAgICBpbnQgYnl0ZXNfdXNlZCA9Ci0tICAgICAg ICAgICAgVmlkZW9GcmFtZTo6UGxhbmVTaXplKGZyYW1lLmZvcm1hdCgpLCBpLCBpbnB1dF9jb25m aWdfLnNpemUpCi0rICAgICAgICAgICAgVmlkZW9GcmFtZTo6UGxhbmVTaXplKGpvYl9yZWNvcmQt PmlucHV0X2ZyYW1lLT5mb3JtYXQoKSwgaSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5wdXRfY29uZmlnXy5zaXplKQotICAgICAgICAgICAgICAgICAuR2V0QXJlYSgpOwot ICAgICAgICAgYnVmZmVyLlNldFBsYW5lQnl0ZXNVc2VkKGksIGJ5dGVzX3VzZWQpOwotKyAgICAg ICAgdXNlcl9wdHJzW2ldID0gY29uc3RfY2FzdDx1aW50OF90Kj4oam9iX3JlY29yZC0+aW5wdXRf ZnJhbWUtPmRhdGEoaSkpOwotICAgICAgIH0KLSAgICAgICBpZiAoIXN0ZDo6bW92ZShidWZmZXIp LlF1ZXVlVXNlclB0cih1c2VyX3B0cnMpKSB7Ci0gICAgICAgICBWUExPR0YoMSkgPDwgIkZhaWxl ZCB0byBxdWV1ZSBhIERNQUJVRiBidWZmZXIgdG8gaW5wdXQgcXVldWUiOwotZGlmZiAtLWdpdCBh L21lZGlhL2dwdS92NGwyL3Y0bDJfdmlkZW9fZW5jb2RlX2FjY2VsZXJhdG9yLmNjIGIvbWVkaWEv Z3B1L3Y0bDIvdjRsMl92aWRlb19lbmNvZGVfYWNjZWxlcmF0b3IuY2MKLWluZGV4IDU2Mzg5ZWEz ZWVjMDguLmQ0NTJiYTQ4YTY5ZTIgMTAwNjQ0Ci0tLS0gYS9tZWRpYS9ncHUvdjRsMi92NGwyX3Zp ZGVvX2VuY29kZV9hY2NlbGVyYXRvci5jYwotKysrIGIvbWVkaWEvZ3B1L3Y0bDIvdjRsMl92aWRl b19lbmNvZGVfYWNjZWxlcmF0b3IuY2MKLUBAIC03ODMsNyArNzgzLDcgQEAgdm9pZCBWNEwyVmlk ZW9FbmNvZGVBY2NlbGVyYXRvcjo6RW5jb2RlVGFzayhzY29wZWRfcmVmcHRyPFZpZGVvRnJhbWU+ IGZyYW1lLAotICAgICBjb25zdCBib29sIGlzX2V4cGVjdGVkX3N0b3JhZ2VfdHlwZSA9Ci0gICAg ICAgICBuYXRpdmVfaW5wdXRfbW9kZV8KLSAgICAgICAgICAgICA/IGZyYW1lLT5zdG9yYWdlX3R5 cGUoKSA9PSBWaWRlb0ZyYW1lOjpTVE9SQUdFX0dQVV9NRU1PUllfQlVGRkVSCi0tICAgICAgICAg ICAgOiBmcmFtZS0+c3RvcmFnZV90eXBlKCkgPT0gVmlkZW9GcmFtZTo6U1RPUkFHRV9TSE1FTTsK LSsgICAgICAgICAgICA6IGZyYW1lLT5Jc01hcHBhYmxlKCk7Ci0gICAgIGlmICghaXNfZXhwZWN0 ZWRfc3RvcmFnZV90eXBlKSB7Ci0gICAgICAgVkxPR0YoMSkgPDwgIlVuZXhwZWN0ZWQgc3RvcmFn ZTogIgotICAgICAgICAgICAgICAgIDw8IFZpZGVvRnJhbWU6OlN0b3JhZ2VUeXBlVG9TdHJpbmco ZnJhbWUtPnN0b3JhZ2VfdHlwZSgpKTsKLUBAIC0xMzkyLDI3ICsxMzkyLDE2IEBAIGJvb2wgVjRM MlZpZGVvRW5jb2RlQWNjZWxlcmF0b3I6OkVucXVldWVJbnB1dFJlY29yZCgKLSAgICAgICAgIE5P VElGWV9FUlJPUihrUGxhdGZvcm1GYWlsdXJlRXJyb3IpOwotICAgICAgIH0KLSAKLS0gICAgICAv LyBUT0RPKGIvMjQzODgzMzEyKTogVGhpcyBjb3BpZXMgdGhlIHZpZGVvIGZyYW1lIHRvIGEgd3Jp dGFibGUgYnVmZmVyCi0tICAgICAgLy8gc2luY2UgdGhlIFVTRVJQVFIgQVBJIHJlcXVpcmVzIHdy aXRhYmxlIHBlcm1pc3Npb24uIFJlbW92ZSB0aGlzCi0tICAgICAgLy8gd29ya2Fyb3VuZCBvbmNl IHRoZSB1bnJlYXNvbmFibGUgcGVybWlzc2lvbiBpcyBmaXhlZC4KLS0gICAgICBjb25zdCBzaXpl X3QgYnVmZmVyX3NpemUgPSBmcmFtZS0+c2htX3JlZ2lvbigpLT5HZXRTaXplKCk7Ci0tICAgICAg c3RkOjp2ZWN0b3I8dWludDhfdD4gd3JpdGFibGVfYnVmZmVyKGJ1ZmZlcl9zaXplKTsKLS0gICAg ICBzdGQ6Om1lbWNweSh3cml0YWJsZV9idWZmZXIuZGF0YSgpLCBmcmFtZS0+ZGF0YSgwKSwgYnVm ZmVyX3NpemUpOwotKyAgICAgIC8vIFRoZSBmcmFtZSBkYXRhIGlzIHJlYWRhYmxlIG9ubHkgYW5k IHRoZSBkcml2ZXIgZG9lc24ndCBhY3R1YWxseSB3cml0ZQotKyAgICAgIC8vIHRoZSBidWZmZXIu IEJ1dCBVU1JQVFIgYnVmZmVyIG5lZWRzIHZvaWQqLiBTbyBjb25zdF9jYXN0PD4gaXMgcmVxdWly ZWQuCi0gICAgICAgc3RkOjp2ZWN0b3I8dm9pZCo+IHVzZXJfcHRycyhudW1fcGxhbmVzKTsKLSAg ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bV9wbGFuZXM7ICsraSkgewotLSAgICAgICAg Y29uc3Qgc3RkOjppbnRwdHJfdCBwbGFuZV9vZmZzZXQgPQotLSAgICAgICAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8c3RkOjppbnRwdHJfdD4oZnJhbWUtPmRhdGEoaSkpIC0KLS0gICAgICAgICAgICBy ZWludGVycHJldF9jYXN0PHN0ZDo6aW50cHRyX3Q+KGZyYW1lLT5kYXRhKDApKTsKLS0gICAgICAg IHVzZXJfcHRyc1tpXSA9IHdyaXRhYmxlX2J1ZmZlci5kYXRhKCkgKyBwbGFuZV9vZmZzZXQ7Ci0r ICAgICAgICB1c2VyX3B0cnNbaV0gPSBjb25zdF9jYXN0PHVpbnQ4X3QqPihmcmFtZS0+ZGF0YShp KSk7Ci0gICAgICAgfQotLQotICAgICAgIGlmICghc3RkOjptb3ZlKGlucHV0X2J1ZikuUXVldWVV c2VyUHRyKHN0ZDo6bW92ZSh1c2VyX3B0cnMpKSkgewotLSAgICAgICAgVlBMT0dGKDEpIDw8ICJG YWlsZWQgdG8gcXVldWUgYSBVU1JQVFIgYnVmZmVyIHRvIGlucHV0IHF1ZXVlIjsKLS0gICAgICAg IE5PVElGWV9FUlJPUihrUGxhdGZvcm1GYWlsdXJlRXJyb3IpOwotKyAgICAgICAgVlBMT0dGKDEp IDw8ICJGYWlsZWQgcXVldWUgYSBVU1JQVFIgYnVmZmVyIHRvIGlucHV0IHF1ZXVlIjsKLSAgICAg ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICB9Ci0tICAgICAgZnJhbWUtPkFkZERlc3RydWN0aW9u T2JzZXJ2ZXIoCi0tICAgICAgICAgIGJhc2U6OkRvTm90aGluZ1dpdGhCb3VuZEFyZ3Moc3RkOjpt b3ZlKHdyaXRhYmxlX2J1ZmZlcikpKTsKLSAgICAgICBicmVhazsKLSAgICAgfQotICAgICBjYXNl IFY0TDJfTUVNT1JZX0RNQUJVRjogewotQEAgLTE0MjEsNiArMTQxMCw3IEBAIGJvb2wgVjRMMlZp ZGVvRW5jb2RlQWNjZWxlcmF0b3I6OkVucXVldWVJbnB1dFJlY29yZCgKLSAgICAgICAgIFZQTE9H RigxKSA8PCAiRmFpbGVkIHF1ZXVlIGEgRE1BQlVGIGJ1ZmZlciB0byBpbnB1dCBxdWV1ZSI7Ci0g ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgfQotKwotICAgICAgIC8vIEtlZXAgfGdtYl9o YW5kbGV8IGFsaXZlIGFzIGxvbmcgYXMgfGZyYW1lfCBpcyBhbGl2ZSBzbyB0aGF0IGZkcyBwYXNz ZWQKLSAgICAgICAvLyB0byB0aGUgZHJpdmVyIGFyZSB2YWxpZCBkdXJpbmcgZW5jb2RpbmcuCi0g ICAgICAgZnJhbWUtPkFkZERlc3RydWN0aW9uT2JzZXJ2ZXIoYmFzZTo6QmluZE9uY2UoCgpkaWZm IC0tZ2l0IGEvY2hyb21pdW0uc3BlYyBiL2Nocm9taXVtLnNwZWMKaW5kZXggOTQ1MzVmMy4uNDRl OWI1NCAxMDA2NDQKLS0tIGEvY2hyb21pdW0uc3BlYworKysgYi9jaHJvbWl1bS5zcGVjCkBAIC0x OTAsOCArMTkwLDYgQEAKICVnbG9iYWwgYnVuZGxlbGlid2VicCAwCiAlZ2xvYmFsIGJ1bmRsZWxp YnBuZyAwCiAlZ2xvYmFsIGJ1bmRsZWxpYmpwZWcgMAotIyBOZWVkcyBGVF9DbGlwQm94IHdoaWNo IHdhcyBpbXBsZW1lbnRlZCBhZnRlciAyLjExLjAuIFNob3VsZCBiZSBhYmxlIHRvIHNldCB0aGlz IGJhY2sgdG8gMCBsYXRlci4KLSVnbG9iYWwgYnVuZGxlZnJlZXR5cGUgMQogJWdsb2JhbCBidW5k bGVsaWJkcm0gMAogJWdsb2JhbCBidW5kbGVmb250Y29uZmlnIDAKICVnbG9iYWwgYnVuZGxlZmZt cGVnZnJlZSAwCkBAIC0yMDEsNiArMTk5LDEyIEBACiAlZWxzZQogJWdsb2JhbCBidW5kbGVsaWJh b20gMAogJWVuZGlmCisjIHN5c3RlbSBmcmVldHlwZSBvbiBmZWRvcmEgPiAzNgorJWlmIDAlez9m ZWRvcmF9ID4gMzYKKyVnbG9iYWwgYnVuZGxlZnJlZXR5cGUgMAorJWVsc2UKKyVnbG9iYWwgYnVu ZGxlZnJlZXR5cGUgMQorJWVuZGlmCiAlZW5kaWYKIAogIyMjIEZyb20gMjAxMyB1bnRpbCBlYXJs eSAyMDIxLCBHb29nbGUgcGVybWl0dGVkIGRpc3RyaWJ1dGlvbiBidWlsZHMgb2YKQEAgLTIzNyw3 ICsyNDEsNyBAQAogJWVuZGlmCiAKIE5hbWU6CWNocm9taXVtJXtjaHJvbWl1bV9jaGFubmVsfQot VmVyc2lvbjogMTEwLjAuNTQ4MS4xNzcKK1ZlcnNpb246IDExMS4wLjU1NjMuNTAKIFJlbGVhc2U6 IDElez9kaXN0fQogU3VtbWFyeTogQSBXZWJLaXQgKEJsaW5rKSBwb3dlcmVkIHdlYiBicm93c2Vy IHRoYXQgR29vZ2xlIGRvZXNuJ3Qgd2FudCB5b3UgdG8gdXNlCiBVcmw6IGh0dHA6Ly93d3cuY2hy b21pdW0ub3JnL0hvbWUKQEAgLTI3NCw5ICsyNzgsNiBAQCBQYXRjaDExOiBjaHJvbWl1bS05My4w LjQ1NzcuNjMtcHkzLWJvb3RzdHJhcC5wYXRjaAogIyBBZGQgIkZlZG9yYSIgdG8gdGhlIHVzZXIg YWdlbnQgc3RyaW5nCiBQYXRjaDEyOiBjaHJvbWl1bS0xMDEuMC40OTUxLjQxLWZlZG9yYS11c2Vy LWFnZW50LnBhdGNoCiAKLSMgbnVtZXJpY19saW1pdHMgaXMgbm90IGEgbWVtYmVyIG9mIHN0ZAot UGF0Y2gxMzogY2hyb21pdW0tMTEwLWxpbWl0cy5wYXRjaAotCiAjIGRlYmlhbiBwYXRjaCwgZGlz YWJsZSBmb250LXRlc3QgCiBQYXRjaDIwOiBjaHJvbWl1bS1kaXNhYmxlLWZvbnQtdGVzdHMucGF0 Y2gKIApAQCAtMjkyLDkgKzI5Myw2IEBAIFBhdGNoNTc6IGNocm9taXVtLTk2LjAuNDY2NC40NS1t aXNzaW5nLWNzdHJpbmcucGF0Y2gKICMgRml4IGhlYWRlcnMgdG8gbG9vayBmb3Igc3lzdGVtIHBh dGhzIHdoZW4gd2UgYXJlIHVzaW5nIHN5c3RlbSBtaW5pemlwCiBQYXRjaDYxOiBjaHJvbWl1bS0x MDktc3lzdGVtLW1pbml6aXAtaGVhZGVyLWZpeC5wYXRjaAogCi0jIFVwZGF0ZSBidW5kbGVkIGNv cHkgb2Ygd2F5bGFuZC1jbGllbnQtY29yZS5oCi1QYXRjaDYyOiBjaHJvbWl1bS0xMDUuMC41MTk1 LjUyLXVwZGF0ZS13YXlsYW5kLWNsaWVudC1jb3JlLnBhdGNoCi0KICMgRml4IGlzc3VlIHdoZXJl IGNsb3N1cmVfY29tcGlsZXIgdGhpbmtzIGphdmEgaXMgb25seSBhbGxvd2VkIGluIGFuZHJvaWQg YnVpbGRzCiAjIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0 YWlsP2lkPTExOTI4NzUKIFBhdGNoNjU6IGNocm9taXVtLTkxLjAuNDQ3Mi43Ny1qYXZhLW9ubHkt YWxsb3dlZC1pbi1hbmRyb2lkLWJ1aWxkcy5wYXRjaApAQCAtMzIxLDkgKzMxOSw2IEBAIFBhdGNo OTE6IGNocm9taXVtLTEwOC1zeXN0ZW0tb3B1cy5wYXRjaAogIyBmaXggcHJlZmVycy1jb2xvci1z Y2hlbWUKIFBhdGNoOTI6IGNocm9taXVtLTExMC1ndGt0aGVtZS5wYXRjaAogCi0jIEZyb20gZ2Vu dG9vCi1QYXRjaDk4OiBjaHJvbWl1bS05NC4wLjQ2MDYuNzEtSW5rRHJvcEhvc3QtY3Jhc2gucGF0 Y2gKLQogIyBuZWVkIHRvIGV4cGxpY2l0bHkgaW5jbHVkZSBhIGtlcm5lbCBoZWFkZXIgb24gRUw3 IHRvIHN1cHBvcnQgTUZEX0NMT0VYRUMsIEZfU0VBTF9TSFJJTkssIEZfQUREX1NFQUxTLCBGX1NF QUxfU0VBTAogUGF0Y2gxMDA6IGNocm9taXVtLTEwOC1lbDctaW5jbHVkZS1mY250bC1tZW1mZC5w YXRjaAogCkBAIC0zNjksMjEgKzM2NCw2IEBAIFBhdGNoMTIyOiBjaHJvbWl1bS0xMDktZ2NjMTMu cGF0Y2gKIAogIyBQYXRjaGVzIGJ5IFN0ZXBoYW4gSGFydG1hbm4sIGh0dHBzOi8vZ2l0aHViLmNv bS9zdGhhMDkvY2hyb21pdW0tcGF0Y2hlcwogUGF0Y2gxMzA6IGNocm9taXVtLTEwMy1WaXJ0dWFs Q3Vyc29yLXN0ZC1sYXlvdXQucGF0Y2gKLVBhdGNoMTMxOiBjaHJvbWl1bS0xMTAtQ2FudmFzUmVz b3VyY2VQcm92aWRlci1wcmFnbWEucGF0Y2gKLVBhdGNoMTMyOiBjaHJvbWl1bS0xMTAtQ3JlZGVu dGlhbFVJRW50cnktY29uc3QucGF0Y2gKLVBhdGNoMTMzOiBjaHJvbWl1bS0xMTAtRGFya01vZGVM QUJDb2xvclNwYWNlLXBvdy5wYXRjaAotUGF0Y2gxMzQ6IGNocm9taXVtLTExMC1kcGYtYXJtNjQu cGF0Y2gKLVBhdGNoMTM1OiBjaHJvbWl1bS0xMTAtSW5Qcm9ncmVzc0Rvd25sb2FkTWFuYWdlci1p bmNsdWRlLnBhdGNoCi1QYXRjaDEzNjogY2hyb21pdW0tMTEwLWtDdXN0b21pemVDaHJvbWVDb2xv cnMtdHlwZS5wYXRjaAotUGF0Y2gxMzc6IGNocm9taXVtLTExMC1OYXRpdmVUaGVtZUJhc2UtZmFi cy5wYXRjaAotUGF0Y2gxMzg6IGNocm9taXVtLTExMC1QcmVzZW50ZXItaW5jbHVkZS5wYXRjaAot UGF0Y2gxMzk6IGNocm9taXVtLTExMC1yYXdfcHRyLWNvbnN0ZXhwci5wYXRjaAotUGF0Y2gxNDA6 IGNocm9taXVtLTExMC1TdG9yYWdlUXVldWUtZGVjbHR5cGUucGF0Y2gKLVBhdGNoMTQxOiBjaHJv bWl1bS0xMTAtU3luY0l0ZXJhdG9yLXRlbXBsYXRlLnBhdGNoCi1QYXRjaDE0MjogY2hyb21pdW0t MTEwLXVybF9jYW5vbl9pbnRlcm5hbC1jYXN0LnBhdGNoCi1QYXRjaDE0MzogY2hyb21pdW0tMTEw LXY4LWdjYy5wYXRjaAotUGF0Y2gxNDQ6IGNocm9taXVtLTExMS12OC1zdGQtbGF5b3V0MS5wYXRj aAotUGF0Y2gxNDU6IGNocm9taXVtLTExMS12OC1zdGQtbGF5b3V0Mi5wYXRjaAogCiBQYXRjaDE0 NjogY2hyb21pdW0tMTEwLUxhcmdlclRoYW40ay5wYXRjaAogCkBAIC0zOTMsMTAgKzM3Myw2IEBA IFBhdGNoMjAyOiBjaHJvbWl1bS0xMDQuMC41MTEyLjEwMS1lbmFibGUtaGFyZHdhcmUtYWNjZWxl cmF0ZWQtbWpwZWcucGF0Y2gKIFBhdGNoMjA1OiBjaHJvbWl1bS04Ni4wLjQyNDAuNzUtZml4LXZh YXBpLW9uLWludGVsLnBhdGNoCiBQYXRjaDIwNjogY2hyb21pdW0tMTEwLW96b25lLXdheWxhbmQt dmFhcGktc3VwcG9ydC5wYXRjaAogCi0jIFY0TDIKLSMgVXBzdHJlYW0KLVBhdGNoMjUwOiBjaHJv bWl1bS12NGwyLWZpeC5wYXRjaAotCiAjIEFwcGx5IHRoZXNlIHBhdGNoZXMgdG8gd29yayBhcm91 bmQgRVBFTDggaXNzdWVzCiBQYXRjaDMwMDogY2hyb21pdW0tOTkuMC40ODQ0LjUxLXJoZWw4LWZv cmNlLWRpc2FibGUtdXNlX2dub21lX2tleXJpbmcucGF0Y2gKIApAQCAtOTA5LDggKzg4NSw4IEBA IHdpdGhvdXQgc3VwcG9ydCBmb3IgYWxzYSwgY3VwcywgZGJ1cywgZ2NvbmYsIGdpbywga2VyYmVy b3MsIHB1bHNlYXVkaW8sIG9yCiB1ZGV2LgogCiAlcHJlcAotCiAlc2V0dXAgLXEgLW4gY2hyb21p dW0tJXt2ZXJzaW9ufQorCiAjIyMgQ2hyb21pdW0gRmVkb3JhIFBhdGNoZXMgIyMjCiAlcGF0Y2gw IC1wMSAtYiAuc2FuZGJveHBpZQogJXBhdGNoMSAtcDEgLWIgLmV0YwpAQCAtOTIyLDEzICs4OTgs NiBAQCB1ZGV2LgogJXBhdGNoOSAtcDEgLWIgLndpZGV2aW5lLW5vLWRvd25sb2FkCiAlcGF0Y2gx MSAtcDEgLWIgLnB5MwogCi0jIEZlZG9yYSBicmFuZGVkIHVzZXIgYWdlbnQKLSVpZiAwJXs/ZmVk b3JhfQotJXBhdGNoMTIgLXAxIC1iIC5mZWRvcmEtdXNlci1hZ2VudAotJWVuZGlmCi0KLSVwYXRj aDEzIC1wMSAtYiAubGltaXRzCi0KICVwYXRjaDIwIC1wMSAtYiAuZGlzYWJsZS1mb250LXRlc3QK IAogJWlmIDAlez9mZWRvcmF9IHx8IDAlez9yaGVsfSA+PSA4CkBAIC05NTksNyArOTI4LDEwIEBA IHVkZXYuCiAKICVwYXRjaDkyIC1wMSAtYiAuZ3RrLXByZWZlcnMtY29sb3Itc2NoZW1lCiAKLSVw YXRjaDk4IC1wMSAtYiAuSW5rRHJvcEhvc3QtY3Jhc2gKKyMgRmVkb3JhIGJyYW5kZWQgdXNlciBh Z2VudAorJWlmIDAlez9mZWRvcmF9CislcGF0Y2gxMiAtcDEgLWIgLmZlZG9yYS11c2VyLWFnZW50 CislZW5kaWYKIAogJWlmICEgJXtidW5kbGVmZm1wZWdmcmVlfQogJXBhdGNoMTE0IC1wMSAtYiAu c3lzdGVtLWZmbXBwZWcKQEAgLTk4NiwyMSArOTU4LDYgQEAgdWRldi4KICVlbmRpZgogCiAlcGF0 Y2gxMzAgLXAxIC1iIC5WaXJ0dWFsQ3Vyc29yLXN0ZC1sYXlvdXQKLSVwYXRjaDEzMSAtcDEgLWIg LkNhbnZhc1Jlc291cmNlUHJvdmlkZXItcHJhZ21hCi0lcGF0Y2gxMzIgLXAxIC1iIC5DcmVkZW50 aWFsVUlFbnRyeS1jb25zdAotJXBhdGNoMTMzIC1wMSAtYiAuRGFya01vZGVMQUJDb2xvclNwYWNl LXBvdwotJXBhdGNoMTM0IC1wMSAtYiAuZHBmLWFybTY0Ci0lcGF0Y2gxMzUgLXAxIC1iIC5JblBy b2dyZXNzRG93bmxvYWRNYW5hZ2VyLWluY2x1ZGUKLSVwYXRjaDEzNiAtcDEgLWIgLmtDdXN0b21p emVDaHJvbWVDb2xvcnMtdHlwZQotJXBhdGNoMTM3IC1wMSAtYiAuTmF0aXZlVGhlbWVCYXNlLWZh YnMKLSVwYXRjaDEzOCAtcDEgLWIgLlByZXNlbnRlci1pbmNsdWRlCi0lcGF0Y2gxMzkgLXAxIC1i IC5yYXdfcHRyLWNvbnN0ZXhwcgotJXBhdGNoMTQwIC1wMSAtYiAuU3RvcmFnZVF1ZXVlLWRlY2x0 eXBlCi0lcGF0Y2gxNDEgLXAxIC1iIC5TeW5jSXRlcmF0b3ItdGVtcGxhdGUKLSVwYXRjaDE0MiAt cDEgLWIgLnVybF9jYW5vbl9pbnRlcm5hbC1jYXN0Ci0lcGF0Y2gxNDMgLXAxIC1iIC52OC1nY2MK LSVwYXRjaDE0NCAtcDEgLWIgLnY4LXN0ZC1sYXlvdXQxCi0lcGF0Y2gxNDUgLXAxIC1iIC52OC1z dGQtbGF5b3V0MgogCiAlcGF0Y2gxNDYgLXAxIC1iIC5MYXJnZXJUaGFuNGsKIApAQCAtMTAxNywx MCArOTc0LDYgQEAgdWRldi4KICVwYXRjaDIwNiAtcDEgLWIgLndheWxhbmQtdmFhcGkKICVlbmRp ZgogCi0laWYgJXt1c2VfdjRsMl9jb2RlY30KLSVwYXRjaDI1MCAtcDEgLWIgLnY0bDItZml4Ci0l ZW5kaWYKLQogJWlmIDAlez9yaGVsfSA+PSA4CiAlcGF0Y2gzMDAgLXAxIC1iIC5kaXNibGVnbm9t ZWtleXJpbmcKICVlbmRpZgpAQCAtMTE4NCwxMiArMTEzNyw2IEBAIENIUk9NSVVNX0NPUkVfR05f REVGSU5FUys9JyBlbmFibGVfdnI9ZmFsc2UnCiBDSFJPTUlVTV9DT1JFX0dOX0RFRklORVMrPScg YnVpbGRfZGF3bl90ZXN0cz1mYWxzZSBlbmFibGVfcGVyZmV0dG9fdW5pdHRlc3RzPWZhbHNlJwog Q0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGRpc2FibGVfZmllbGR0cmlhbF90ZXN0aW5nX2Nv bmZpZz10cnVlJwogQ0hST01JVU1fQ09SRV9HTl9ERUZJTkVTKz0nIGJsaW5rX3N5bWJvbF9sZXZl bD0wIHN5bWJvbF9sZXZlbD0wIHY4X3N5bWJvbF9sZXZlbD0wJwotJWlmYXJjaCBhYXJjaDY0Ci0l aWYgMCV7P3JoZWx9ID09IDgKLSMgd29ya2Fyb3VuZCBjcmFzaCBvbiBlbDgKLUNIUk9NSVVNX0NP UkVfR05fREVGSU5FUys9JyB1c2VfcGFydGl0aW9uX2FsbG9jX2FzX21hbGxvYz1mYWxzZSBlbmFi bGVfYmFja3VwX3JlZl9wdHJfc3VwcG9ydD1mYWxzZScKLSVlbmRpZgotJWVuZGlmCiBleHBvcnQg Q0hST01JVU1fQ09SRV9HTl9ERUZJTkVTCiAKICMgYnJvd3NlciBnbiBkZWZpbmVzCkBAIC0xNTk3 LDExICsxNTQ0LDExIEBAIGdldGVudCBncm91cCBjaHJvbWUtcmVtb3RlLWRlc2t0b3AgPi9kZXYv bnVsbCB8fCBncm91cGFkZCAtciBjaHJvbWUtcmVtb3RlLWRlc2t0CiAle2Nocm9taXVtX3BhdGh9 L2xpYmNsZWFya2V5Y2RtLnNvCiAlZW5kaWYKICVpZmFyY2ggeDg2XzY0IGFhcmNoNjQKLSV7Y2hy b21pdW1fcGF0aH0vbGliRUdMLnNvKgotJXtjaHJvbWl1bV9wYXRofS9saWJHTEVTdjIuc28qCiAl e2Nocm9taXVtX3BhdGh9L2xpYnZrX3N3aWZ0c2hhZGVyLnNvKgogJXtjaHJvbWl1bV9wYXRofS9s aWJ2dWxrYW4uc28qCiAle2Nocm9taXVtX3BhdGh9L3ZrX3N3aWZ0c2hhZGVyX2ljZC5qc29uCisl e2Nocm9taXVtX3BhdGh9L2xpYkVHTC5zbyoKKyV7Y2hyb21pdW1fcGF0aH0vbGliR0xFU3YyLnNv KgogJWVuZGlmCiAle2Nocm9taXVtX3BhdGh9L2ljdWR0bC5kYXQKICVkaXIgJXtjaHJvbWl1bV9w YXRofS8KQEAgLTE3MDMsNiArMTY1MCwxMCBAQCBnZXRlbnQgZ3JvdXAgY2hyb21lLXJlbW90ZS1k ZXNrdG9wID4vZGV2L251bGwgfHwgZ3JvdXBhZGQgLXIgY2hyb21lLXJlbW90ZS1kZXNrdAogJXtj aHJvbWl1bV9wYXRofS9jaHJvbWVkcml2ZXIKIAogJWNoYW5nZWxvZworKiBNb24gTWFyIDA2IDIw MjMgVGhhbiBOZ28gPHRoYW5AcmVkaGF0LmNvbT4gLSAxMTEuMC41NTYzLjUwLTEKKy0gdXBkYXRl IHRvIDExMS4wLjU1NjMuNTAKKy0gc3lzdGVtIGZyZWV0eXBlIG9uIGZlZG9yYSA+IDM2CisKICog VGh1IEZlYiAyMyAyMDIzIFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+IC0gMTEwLjAuNTQ4MS4x NzctMQogLSB1cGRhdGUgdG8gMTEwLjAuNTQ4MS4xNzcKIC0gd29ya2Fyb3VuZCBmb3IgY3Jhc2gg b24gYWFyY2g2NCwgcmhlbDgKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCA5 YWNhMzljLi43ZjJkNGY4IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEs MyArMSwzIEBACiBTSEE1MTIgKG5vZGUtdjE2LjE3LjAtbGludXgteDY0LnRhci54eikgPSBhZWRm ZWViNzE0MjBhN2ZiY2IwN2ZiYzRjNWQyYmE3NGZmZTRmODhjMTU5OTg4MDkzNDZhODQxNDgxMzJl Yzg2NmRiYWU0ZTg0ODUzMWEyYTc3Y2E0MTQxM2Y0NDJlMTA0NmY5ODFkNGYxODhiZGY2NjdmYWY4 ODA2OWFhMjhjZAogU0hBNTEyIChub2RlLXYxNi4xNy4wLWxpbnV4LWFybTY0LnRhci54eikgPSBh ZTRhYWJjMjM4OTc3OWM5ZTFiNGExNTYyMmNhZTNiYTUwZTBjMzEzY2EzZDdhMWRjN2IyMzQ0ZGYw NmFkZTFmMzAzZDZhNzViOTQxZDM3ZTJhMGVmMzY4Y2YwNDdjODYyYTgyMmE4OTM2ODQ0OTRmNTU0 NDZhZmQ2YWIwNjEwZQotU0hBNTEyIChjaHJvbWl1bS0xMTAuMC41NDgxLjE3Ny1jbGVhbi50YXIu eHopID0gM2NjM2ZlMzI1YmY3NzNlNWRhOTEzNzI3Mjc0MWVkYTYxY2E2MjAyODlhMjdjMWJjMTZj ZDNlMTY1ZjVhZGM2ZWJhYTAwMTM5MzUxYzMyNGZjYzQ5MTQ5N2U0NzY1OTE4ODY3M2VkZDliN2Zk MzNhMjc3MTYzNmQxNTNiNjkyMTMKK1NIQTUxMiAoY2hyb21pdW0tMTExLjAuNTU2My41MC1jbGVh bi50YXIueHopID0gNDU3NmUwODBhNTVjYzFkYWJmNjVlMTRkNTM4MDMxMGVlOTNiZmU1MGU0MDgy M2FkYjk2M2JmNDdkM2JiZTY2OGIzOWVmNDFjM2Y1ZTdiOGMyYWViYzgxNjE5MTU5MjZhMmY2YjM3 YzM5Y2MwMjg5ODk4ZTUxNWU2MDA3NDNlM2MK