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: Than Ngo To: git-commits@fedoraproject.org Subject: [rpms/chromium] epel9-next: update to 110.0.5481.61 Date: Fri, 07 Aug 2026 16:04:39 GMT Message-ID: <178611867963.1.1751122987910041152.rpms-chromium-2f9dd6729b77@fedoraproject.org> List-ID: X-Git-Repo: rpms/chromium X-Git-Branch: epel9-next X-Git-Rev: 2f9dd6729b774b7aad299680fa39715dcc4a9a9a QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvY2hyb21pdW0KQnJh bmNoIDogZXBlbDktbmV4dApDb21taXQgOiAyZjlkZDY3MjliNzc0YjdhYWQyOTk2ODBmYTM5NzE1 ZGNjNGE5YTlhCkF1dGhvciA6IFRoYW4gTmdvIDx0aGFuQHJlZGhhdC5jb20+CkRhdGUgICA6IDIw MjMtMDItMDZUMTI6NDM6NDIrMDE6MDAKU3RhdHMgIDogKzM1ODIvLTk4NSBpbiAyNCBmaWxlKHMp ClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvY2hyb21pdW0vYy8y ZjlkZDY3MjliNzc0YjdhYWQyOTk2ODBmYTM5NzE1ZGNjNGE5YTlhP2JyYW5jaD1lcGVsOS1uZXh0 CgpMb2c6CnVwZGF0ZSB0byAxMTAuMC41NDgxLjYxCgotLS0KZGlmZiAtLWdpdCBhL2Nocm9taXVt LTEwNy4wLjUzMDQuMTEwLXJlbW90aW5nLWV4dHJhLXF1YWxpZmljYXRpb24ucGF0Y2ggYi9jaHJv bWl1bS0xMDcuMC41MzA0LjExMC1yZW1vdGluZy1leHRyYS1xdWFsaWZpY2F0aW9uLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjljZTE4Li4wMDAwMDAwCi0tLSBhL2Nocm9t aXVtLTEwNy4wLjUzMDQuMTEwLXJlbW90aW5nLWV4dHJhLXF1YWxpZmljYXRpb24ucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMzcgKzAsMCBAQAotZGlmZiAtdXAgY2hyb21pdW0tMTA3LjAuNTMw NC4xMTAvcmVtb3RpbmcvaG9zdC9tb2pvbS9yZW1vdGluZ19tb2pvbV90cmFpdHMuaC5yZW1vdGlu Zy1leHRyYS1xdWFsaWZpY2F0aW9uIGNocm9taXVtLTEwNy4wLjUzMDQuMTEwL3JlbW90aW5nL2hv c3QvbW9qb20vcmVtb3RpbmdfbW9qb21fdHJhaXRzLmgKLS0tLSBjaHJvbWl1bS0xMDcuMC41MzA0 LjExMC9yZW1vdGluZy9ob3N0L21vam9tL3JlbW90aW5nX21vam9tX3RyYWl0cy5oLnJlbW90aW5n LWV4dHJhLXF1YWxpZmljYXRpb24JMjAyMi0xMS0yMCAxOTo1NjowMC44OTc3NDA2MTYgKzAxMDAK LSsrKyBjaHJvbWl1bS0xMDcuMC41MzA0LjExMC9yZW1vdGluZy9ob3N0L21vam9tL3JlbW90aW5n X21vam9tX3RyYWl0cy5oCTIwMjItMTEtMjEgMDk6MjE6NDcuOTY3MTgwMTM3ICswMTAwCi1AQCAt NDIsNyArNDIsNyBAQAotIG5hbWVzcGFjZSBtb2pvIHsKLSAKLSB0ZW1wbGF0ZSA8PgotLWNsYXNz IG1vam86OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OkJvb2xEYXRhVmlldywgYm9vbD4g ewotK2NsYXNzIFN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OkJvb2xEYXRhVmlldywgYm9v bD4gewotICBwdWJsaWM6Ci0gICBzdGF0aWMgYm9vbCB2YWx1ZShib29sIHZhbHVlKSB7IHJldHVy biB2YWx1ZTsgfQotIAotQEAgLTUzLDcgKzUzLDcgQEAgY2xhc3MgbW9qbzo6U3RydWN0VHJhaXRz PHJlbW90aW5nOjptb2pvbQotIH07Ci0gCi0gdGVtcGxhdGUgPD4KLS1jbGFzcyBtb2pvOjpTdHJ1 Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpGbG9hdERhdGFWaWV3LCBmbG9hdD4gewotK2NsYXNz IFN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OkZsb2F0RGF0YVZpZXcsIGZsb2F0PiB7Ci0g IHB1YmxpYzoKLSAgIHN0YXRpYyBmbG9hdCB2YWx1ZShmbG9hdCB2YWx1ZSkgeyByZXR1cm4gdmFs dWU7IH0KLSAKLUBAIC02NCw3ICs2NCw3IEBAIGNsYXNzIG1vam86OlN0cnVjdFRyYWl0czxyZW1v dGluZzo6bW9qb20KLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3MgbW9qbzo6U3RydWN0VHJh aXRzPHJlbW90aW5nOjptb2pvbTo6SW50MzJEYXRhVmlldywgaW50MzJfdD4gewotK2NsYXNzIFN0 cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OkludDMyRGF0YVZpZXcsIGludDMyX3Q+IHsKLSAg cHVibGljOgotICAgc3RhdGljIGludDMyX3QgdmFsdWUoaW50MzJfdCB2YWx1ZSkgeyByZXR1cm4g dmFsdWU7IH0KLSAKLUBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIG1vam86OlN0cnVjdFRyYWl0czxy ZW1vdGluZzo6bW9qb20KLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3MgbW9qbzo6U3RydWN0 VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6VUludDMyRGF0YVZpZXcsIHVpbnQzMl90PiB7Ci0rY2xh c3MgU3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6VUludDMyRGF0YVZpZXcsIHVpbnQzMl90 PiB7Ci0gIHB1YmxpYzoKLSAgIHN0YXRpYyB1aW50MzJfdCB2YWx1ZSh1aW50MzJfdCB2YWx1ZSkg eyByZXR1cm4gdmFsdWU7IH0KLSAKLUBAIC04OCw3ICs4OCw3IEBAIGNsYXNzIG1vam86OlN0cnVj dFRyYWl0czxyZW1vdGluZzo6bW9qb20KLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3MgbW9q bzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6RGVza3RvcENhcHR1cmVPcHRpb25zRGF0 YVZpZXcsCi0rY2xhc3MgU3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6RGVza3RvcENhcHR1 cmVPcHRpb25zRGF0YVZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDo6d2VicnRjOjpE ZXNrdG9wQ2FwdHVyZU9wdGlvbnM+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGJvb2wgdXNlX3Vw ZGF0ZV9ub3RpZmljYXRpb25zKAotQEAgLTExMyw3ICsxMTMsNyBAQCBjbGFzcyBtb2pvOjpTdHJ1 Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tCi0gfTsKLSAKLSB0ZW1wbGF0ZSA8PgotLWNsYXNzIG1v am86OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OkRlc2t0b3BFbnZpcm9ubWVudE9wdGlv bnNEYXRhVmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpEZXNrdG9w RW52aXJvbm1lbnRPcHRpb25zRGF0YVZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDo6 cmVtb3Rpbmc6OkRlc2t0b3BFbnZpcm9ubWVudE9wdGlvbnM+IHsKLSAgcHVibGljOgotICAgc3Rh dGljIGJvb2wgZW5hYmxlX2N1cnRhaW5pbmcoCi1AQCAtMjEwLDcgKzIxMCw3IEBAIHN0cnVjdCBF bnVtVHJhaXRzPHJlbW90aW5nOjptb2pvbTo6RGVza3QKLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0t Y2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6RGVza3RvcFJlY3REYXRh VmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpEZXNrdG9wUmVjdERh dGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OndlYnJ0Yzo6RGVza3RvcFJlY3Q+ IHsKLSAgcHVibGljOgotICAgc3RhdGljIGludDMyX3QgbGVmdChjb25zdCA6OndlYnJ0Yzo6RGVz a3RvcFJlY3QmIHJlY3QpIHsgcmV0dXJuIHJlY3QubGVmdCgpOyB9Ci1AQCAtMjMwLDcgKzIzMCw3 IEBAIGNsYXNzIG1vam86OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb20KLSB9OwotIAotIHRl bXBsYXRlIDw+Ci0tY2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6RGVz a3RvcFNpemVEYXRhVmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpE ZXNrdG9wU2l6ZURhdGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OndlYnJ0Yzo6 RGVza3RvcFNpemU+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGludDMyX3Qgd2lkdGgoY29uc3Qg Ojp3ZWJydGM6OkRlc2t0b3BTaXplJiBzaXplKSB7Ci1AQCAtMjQ2LDcgKzI0Niw3IEBAIGNsYXNz IG1vam86OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb20KLSB9OwotIAotIHRlbXBsYXRlIDw+ Ci0tY2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6RGVza3RvcFZlY3Rv ckRhdGFWaWV3LAotK2NsYXNzIFN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OkRlc2t0b3BW ZWN0b3JEYXRhVmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOjp3ZWJydGM6OkRlc2t0 b3BWZWN0b3I+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGludDMyX3QgeChjb25zdCA6OndlYnJ0 Yzo6RGVza3RvcFZlY3RvciYgdmVjdG9yKSB7IHJldHVybiB2ZWN0b3IueCgpOyB9Ci1AQCAtMjU4 LDcgKzI1OCw3IEBAIGNsYXNzIG1vam86OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb20KLSB9 OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjpt b2pvbTo6TW91c2VDdXJzb3JEYXRhVmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6 Om1vam9tOjpNb3VzZUN1cnNvckRhdGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6 OndlYnJ0Yzo6TW91c2VDdXJzb3I+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGNvbnN0IHdlYnJ0 Yzo6RGVza3RvcFNpemUmIGltYWdlX3NpemUoCi1AQCAtNTExLDcgKzUxMSw3IEBAIHN0cnVjdCBF bnVtVHJhaXRzPHJlbW90aW5nOjptb2pvbTo6QXVkaW8KLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0t Y2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6QXVkaW9QYWNrZXREYXRh VmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpBdWRpb1BhY2tldERh dGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OnN0ZDo6dW5pcXVlX3B0cjw6OnJl bW90aW5nOjpBdWRpb1BhY2tldD4+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGludDMyX3QgdGlt ZXN0YW1wKAotQEAgLTU0OSw3ICs1NDksNyBAQCBjbGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVt b3Rpbmc6Om1vam9tCi0gfTsKLSAKLSB0ZW1wbGF0ZSA8PgotLWNsYXNzIG1vam86OlN0cnVjdFRy YWl0czxyZW1vdGluZzo6bW9qb206OkNsaXBib2FyZEV2ZW50RGF0YVZpZXcsCi0rY2xhc3MgU3Ry dWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6Q2xpcGJvYXJkRXZlbnREYXRhVmlldywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgOjpyZW1vdGluZzo6cHJvdG9jb2w6OkNsaXBib2FyZEV2ZW50 PiB7Ci0gIHB1YmxpYzoKLSAgIHN0YXRpYyBjb25zdCBzdGQ6OnN0cmluZyYgbWltZV90eXBlKAot QEAgLTU2Nyw3ICs1NjcsNyBAQCBjbGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1v am9tCi0gfTsKLSAKLSB0ZW1wbGF0ZSA8PgotLWNsYXNzIG1vam86OlVuaW9uVHJhaXRzPAotK2Ns YXNzIFVuaW9uVHJhaXRzPAotICAgICByZW1vdGluZzo6bW9qb206OlJlYWRDaHVua1Jlc3VsdERh dGFWaWV3LAotICAgICA6OnJlbW90aW5nOjpSZXN1bHQ8c3RkOjp2ZWN0b3I8dWludDhfdD4sCi0g ICAgICAgICAgICAgICAgICAgICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6RmlsZVRyYW5zZmVy X0Vycm9yPj4gewotQEAgLTYwNiw3ICs2MDYsNyBAQCBjbGFzcyBtb2pvOjpVbmlvblRyYWl0czwK LSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5n Ojptb2pvbTo6RmlsZVRyYW5zZmVyRXJyb3JEYXRhVmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8 cmVtb3Rpbmc6Om1vam9tOjpGaWxlVHJhbnNmZXJFcnJvckRhdGFWaWV3LAotICAgICAgICAgICAg ICAgICAgICAgICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6RmlsZVRyYW5zZmVyX0Vycm9yPiB7 Ci0gIHB1YmxpYzoKLSAgIHN0YXRpYyA6OnJlbW90aW5nOjpwcm90b2NvbDo6RmlsZVRyYW5zZmVy X0Vycm9yX1R5cGUgdHlwZSgKLUBAIC03NDUsNyArNzQ1LDcgQEAgY2xhc3MgbW9qbzo6VW5pb25U cmFpdHM8Ci0gI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfV0lOKQotIAotIHRlbXBsYXRlIDw+Ci0t Y2xhc3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6S2V5Ym9hcmRMYXlvdXRE YXRhVmlldywKLStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpLZXlib2FyZExh eW91dERhdGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OnJlbW90aW5nOjpwcm90 b2NvbDo6S2V5Ym9hcmRMYXlvdXQ+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGNvbnN0IDo6Z29v Z2xlOjpwcm90b2J1Zjo6Ci1AQCAtNzU5LDcgKzc1OSw3IEBAIGNsYXNzIG1vam86OlN0cnVjdFRy YWl0czxyZW1vdGluZzo6bW9qb20KLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3MgbW9qbzo6 VW5pb25UcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpLZXlBY3Rpb25EYXRhVmlldywKLStjbGFzcyBV bmlvblRyYWl0czxyZW1vdGluZzo6bW9qb206OktleUFjdGlvbkRhdGFWaWV3LAotICAgICAgICAg ICAgICAgICAgICAgICAgIDo6cmVtb3Rpbmc6OnByb3RvY29sOjpLZXlib2FyZExheW91dF9LZXlB Y3Rpb24+IHsKLSAgcHVibGljOgotICAgc3RhdGljIHJlbW90aW5nOjptb2pvbTo6S2V5QWN0aW9u RGF0YVZpZXc6OlRhZyBHZXRUYWcoCi1AQCAtNzkyLDcgKzc5Miw3IEBAIGNsYXNzIG1vam86OlVu aW9uVHJhaXRzPHJlbW90aW5nOjptb2pvbToKLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3Mg bW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6S2V5QmVoYXZpb3JEYXRhVmlldywK LStjbGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpLZXlCZWhhdmlvckRhdGFWaWV3 LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6S2V5Ym9h cmRMYXlvdXRfS2V5QmVoYXZpb3I+IHsKLSAgcHVibGljOgotICAgc3RhdGljIGNvbnN0IDo6Z29v Z2xlOjpwcm90b2J1Zjo6TWFwPAotQEAgLTExNTAsNyArMTE1MCw3IEBAIHN0cnVjdCBFbnVtVHJh aXRzPHJlbW90aW5nOjptb2pvbTo6TGF5b3UKLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xhc3Mg bW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6S2V5RXZlbnREYXRhVmlldywKLStj bGFzcyBTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpLZXlFdmVudERhdGFWaWV3LAotICAg ICAgICAgICAgICAgICAgICAgICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6S2V5RXZlbnQ+IHsK LSAgcHVibGljOgotICAgc3RhdGljIGJvb2wgcHJlc3NlZChjb25zdCA6OnJlbW90aW5nOjpwcm90 b2NvbDo6S2V5RXZlbnQmIGV2ZW50KSB7Ci1AQCAtMTE4Niw3ICsxMTg2LDcgQEAgY2xhc3MgbW9q bzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbQotIH07Ci0gCi0gdGVtcGxhdGUgPD4KLS1j bGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpNb3VzZUV2ZW50RGF0YVZp ZXcsCi0rY2xhc3MgU3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6TW91c2VFdmVudERhdGFW aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6TW91 c2VFdmVudD4gewotICBwdWJsaWM6Ci0gICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8aW50MzJfdD4g eCgKLUBAIC0xMjc1LDcgKzEyNzUsNyBAQCBjbGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVtb3Rp bmc6Om1vam9tCi0gfTsKLSAKLSB0ZW1wbGF0ZSA8PgotLWNsYXNzIG1vam86OlN0cnVjdFRyYWl0 czxyZW1vdGluZzo6bW9qb206OlNjcmVlblJlc29sdXRpb25EYXRhVmlldywKLStjbGFzcyBTdHJ1 Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpTY3JlZW5SZXNvbHV0aW9uRGF0YVZpZXcsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIDo6cmVtb3Rpbmc6OlNjcmVlblJlc29sdXRpb24+IHsKLSAg cHVibGljOgotICAgc3RhdGljIGNvbnN0IDo6d2VicnRjOjpEZXNrdG9wU2l6ZSYgZGltZW5zaW9u cygKLUBAIC0xMjkzLDcgKzEyOTMsNyBAQCBjbGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVtb3Rp bmc6Om1vam9tCi0gfTsKLSAKLSB0ZW1wbGF0ZSA8PgotLWNsYXNzIG1vam86OlN0cnVjdFRyYWl0 czxyZW1vdGluZzo6bW9qb206OlRleHRFdmVudERhdGFWaWV3LAotK2NsYXNzIFN0cnVjdFRyYWl0 czxyZW1vdGluZzo6bW9qb206OlRleHRFdmVudERhdGFWaWV3LAotICAgICAgICAgICAgICAgICAg ICAgICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6VGV4dEV2ZW50PiB7Ci0gIHB1YmxpYzoKLSAg IHN0YXRpYyBjb25zdCBzdGQ6OnN0cmluZyYgdGV4dChjb25zdCA6OnJlbW90aW5nOjpwcm90b2Nv bDo6VGV4dEV2ZW50JiBldmVudCkgewotQEAgLTEzMDUsNyArMTMwNSw3IEBAIGNsYXNzIG1vam86 OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb20KLSB9OwotIAotIHRlbXBsYXRlIDw+Ci0tY2xh c3MgbW9qbzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6VG91Y2hFdmVudFBvaW50RGF0 YVZpZXcsCi0rY2xhc3MgU3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6VG91Y2hFdmVudFBv aW50RGF0YVZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDo6cmVtb3Rpbmc6OnByb3Rv Y29sOjpUb3VjaEV2ZW50UG9pbnQ+IHsKLSAgcHVibGljOgotICAgc3RhdGljIHVpbnQzMl90IGlk KGNvbnN0IDo6cmVtb3Rpbmc6OnByb3RvY29sOjpUb3VjaEV2ZW50UG9pbnQmIGV2ZW50KSB7Ci1A QCAtMTM4Miw3ICsxMzgyLDcgQEAgc3RydWN0IEVudW1UcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpU b3VjaAotIH07Ci0gCi0gdGVtcGxhdGUgPD4KLS1jbGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVt b3Rpbmc6Om1vam9tOjpUb3VjaEV2ZW50RGF0YVZpZXcsCi0rY2xhc3MgU3RydWN0VHJhaXRzPHJl bW90aW5nOjptb2pvbTo6VG91Y2hFdmVudERhdGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAg ICAgICA6OnJlbW90aW5nOjpwcm90b2NvbDo6VG91Y2hFdmVudD4gewotICBwdWJsaWM6Ci0gICBz dGF0aWMgOjpyZW1vdGluZzo6cHJvdG9jb2w6OlRvdWNoRXZlbnQ6OlRvdWNoRXZlbnRUeXBlIGV2 ZW50X3R5cGUoCi1AQCAtMTQ0Miw3ICsxNDQyLDcgQEAgc3RydWN0IEVudW1UcmFpdHM8cmVtb3Rp bmc6Om1vam9tOjpUcmFucwotIH07Ci0gCi0gdGVtcGxhdGUgPD4KLS1jbGFzcyBtb2pvOjpTdHJ1 Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpUcmFuc3BvcnRSb3V0ZURhdGFWaWV3LAotK2NsYXNz IFN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OlRyYW5zcG9ydFJvdXRlRGF0YVZpZXcsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgIDo6cmVtb3Rpbmc6OnByb3RvY29sOjpUcmFuc3BvcnRS b3V0ZT4gewotICBwdWJsaWM6Ci0gICBzdGF0aWMgOjpyZW1vdGluZzo6cHJvdG9jb2w6OlRyYW5z cG9ydFJvdXRlOjpSb3V0ZVR5cGUgdHlwZSgKLUBAIC0xNTg5LDcgKzE1ODksNyBAQCBzdHJ1Y3Qg RW51bVRyYWl0czxyZW1vdGluZzo6bW9qb206OlByb3RvCi0gfTsKLSAKLSB0ZW1wbGF0ZSA8Pgot LWNsYXNzIG1vam86OlN0cnVjdFRyYWl0czxyZW1vdGluZzo6bW9qb206OlZpZGVvTGF5b3V0RGF0 YVZpZXcsCi0rY2xhc3MgU3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6VmlkZW9MYXlvdXRE YXRhVmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOjpyZW1vdGluZzo6cHJvdG9jb2w6 OlZpZGVvTGF5b3V0PiB7Ci0gIHB1YmxpYzoKLSAgIHN0YXRpYyBjb25zdCA6Omdvb2dsZTo6cHJv dG9idWY6OlJlcGVhdGVkUHRyRmllbGQ8Ci1AQCAtMTYwOCw3ICsxNjA4LDcgQEAgY2xhc3MgbW9q bzo6U3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbQotIH07Ci0gCi0gdGVtcGxhdGUgPD4KLS1j bGFzcyBtb2pvOjpTdHJ1Y3RUcmFpdHM8cmVtb3Rpbmc6Om1vam9tOjpWaWRlb1RyYWNrTGF5b3V0 RGF0YVZpZXcsCi0rY2xhc3MgU3RydWN0VHJhaXRzPHJlbW90aW5nOjptb2pvbTo6VmlkZW9UcmFj a0xheW91dERhdGFWaWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICA6OnJlbW90aW5nOjpw cm90b2NvbDo6VmlkZW9UcmFja0xheW91dD4gewotICBwdWJsaWM6Ci0gICBzdGF0aWMgaW50NjRf dCBzY3JlZW5faWQoCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTA4LWVuYWJsZS1XZWJSVENQaXBl V2lyZUNhcHR1cmVyLWJ5RGVmYXVsdC5wYXRjaCBiL2Nocm9taXVtLTEwOC1lbmFibGUtV2ViUlRD UGlwZVdpcmVDYXB0dXJlci1ieURlZmF1bHQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGE4YmFkMWIuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTA4LWVuYWJsZS1XZWJSVENQ aXBlV2lyZUNhcHR1cmVyLWJ5RGVmYXVsdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICsw LDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L2NvbnRlbnQvcHVibGljL2Nv bW1vbi9jb250ZW50X2ZlYXR1cmVzLmNjLm1lIGNocm9taXVtLTEwOC4wLjUzNTkuMTI0L2NvbnRl bnQvcHVibGljL2NvbW1vbi9jb250ZW50X2ZlYXR1cmVzLmNjCi0tLS0gY2hyb21pdW0tMTA4LjAu NTM1OS4xMjQvY29udGVudC9wdWJsaWMvY29tbW9uL2NvbnRlbnRfZmVhdHVyZXMuY2MubWUJMjAy Mi0xMi0yNCAxMTowMjo1Ni40MTc3NzM5MjIgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMDguMC41MzU5 LjEyNC9jb250ZW50L3B1YmxpYy9jb21tb24vY29udGVudF9mZWF0dXJlcy5jYwkyMDIyLTEyLTI0 IDExOjA0OjQxLjY0MTY5NjY4MSArMDEwMAotQEAgLTE0NzksNyArMTQ3OSw3IEBAIEJBU0VfRkVB VFVSRShrUmV0cnlHZXRWaWRlb0NhcHR1cmVEZXZpY2UKLSAvLyBXYXlsYW5kIGRpc3BsYXkgc2Vy dmVyLgotIEJBU0VfRkVBVFVSRShrV2ViUnRjUGlwZVdpcmVDYXB0dXJlciwKLSAgICAgICAgICAg ICAgIldlYlJUQ1BpcGVXaXJlQ2FwdHVyZXIiLAotLSAgICAgICAgICAgICBiYXNlOjpGRUFUVVJF X0RJU0FCTEVEX0JZX0RFRkFVTFQpOwotKyAgICAgICAgICAgICBiYXNlOjpGRUFUVVJFX0VOQUJM RURfQllfREVGQVVMVCk7Ci0gI2VuZGlmICAvLyBkZWZpbmVkKFdFQlJUQ19VU0VfUElQRVdJUkUp Ci0gCi0gZW51bSBjbGFzcyBWaWRlb0NhcHR1cmVTZXJ2aWNlQ29uZmlndXJhdGlvbiB7CgpkaWZm IC0tZ2l0IGEvY2hyb21pdW0tMTA5LW96b25lLXdheWxhbmQtdmFhcGktc3VwcG9ydC5wYXRjaCBi L2Nocm9taXVtLTEwOS1vem9uZS13YXlsYW5kLXZhYXBpLXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhYTYxMzEuLjAwMDAwMDAKLS0tIGEvY2hyb21pdW0tMTA5 LW96b25lLXdheWxhbmQtdmFhcGktc3VwcG9ydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY2 NiArMCwwIEBACi1hdXRob3IJSmlhbmh1aSBEYWkgPGppYW5odWkuai5kYWlAaW50ZWwuY29tPglU dWUgTm92IDE1IDA2OjE4OjA0IDIwMjIKLWNvbW1pdHRlcglKaWFuaHVpIERhaSA8amlhbmh1aS5q LmRhaUBpbnRlbC5jb20+CVR1ZSBOb3YgMTUgMDY6MTg6MDQgMjAyMgotCi1bT3pvbmUvTGludXhd IFN1cHBvcnQgVkEtQVBJIG9uIExpbnV4IE96b25lL1dheWxhbmQKLQotVkEtQVBJIHN1cHBvcnRz IGRpZmZlcmVudCBkaXNwbGF5IGJhY2tlbmRzIFsxXS4gVkEvRFJNIGFuZCBWQS9YMTEgYXJlCi11 c2VkIGJ5IENocm9taXVtIGF0IHRoZSBtb21lbnQuIEFsbCBPem9uZSBwbGF0Zm9ybXMgc3VwcG9y dCBWQS9EUk0gYnkKLWRlZmF1bHQuIFZBL1gxMSBpcyBzdXBwb3J0ZWQgb25seSBvbiBPem9uZS9Y MTEuCi0KLVRoaXMgQ0wgcmVuYW1lcyAnc3VwcG9ydHNfdmFhcGknIHRvICdzdXBwb3J0c192YWFw aV94MTEnOyBpdCBpbmRpY2F0ZXMKLWlmIFZBL1gxMSBzdXBwb3J0ZWQuIExpbnV4IE96b25lL1gx MSBzdXBwb3J0cyBib3RoIFZBL1gxMSBhbmQgVkEvRFJNOwotTGludXggT3pvbmUvV2F5bGFuZCBz dXBwb3J0cyBvbmx5IFZBL0RSTS4gYFZhYXBpUGljdHVyZUZhY3RvcnlgIGFsc28KLXRha2VzIHRo aXMgZmxhZyB0byBkZXRlcm1pbmUgcGljdHVyZSBjcmVhdGlvbiBhbmQgZG93bmxvYWRpbmcgbWVj aGFuaXNtCi1vbiBMaW51eC4KLQotWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9pbnRlbC9saWJ2YS9i bG9iL21hc3Rlci92YS92YV9iYWNrZW5kLmgKLQotVGVzdDogVkRBIHZpZGVvIHBsYXliYWNrIG9u IExpbnV4IFgxMSBhbmQgTGludXggV2F5bGFuZAotQnVnOiAxMzI2NzU0LDExMTY3MDEKLUNoYW5n ZS1JZDogSTZkNmJmNzgxODMzYTc3NTJkMjNkYWZiMmI2MzExMmMyZmM4MWIxN2EKLWRpZmYgLXVw IGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9hcmdzLmduaS53YXlsYW5kLXZhYXBp IGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9hcmdzLmduaQotLS0tIGNocm9taXVt LTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9hcmdzLmduaS53YXlsYW5kLXZhYXBpCTIwMjItMTIt MTQgMDE6Mzk6NTIuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQv bWVkaWEvZ3B1L2FyZ3MuZ25pCTIwMjMtMDEtMDUgMTA6MTM6MDguMjkxNDAzMjYxICswMTAwCi1A QCAtNiwxMCArNiwxNCBAQCBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2Nocm9tZW9zL3VpX21vZGUu Ci0gaW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9vem9uZS5nbmkiKQotIAotIGRlY2xhcmVfYXJncygp IHsKLS0gICMgSW5kaWNhdGVzIGlmIFgxMSBWQS1BUEktYmFzZWQgaGFyZHdhcmUgYWNjZWxlcmF0 aW9uIGlzIHRvIGJlIHVzZWQuCi0tICAjIFNlZSBhbHNvIHRoZSBjb21tZW50IG5lYXIgdGhlIHx1 c2VfdmFhcGl8IGFyZy4KLS0gIHVzZV92YWFwaV94MTEgPSBpc19saW51eCAmJiBvem9uZV9wbGF0 Zm9ybV94MTEgJiYKLS0gICAgICAgICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0 YXJnZXRfY3B1ID09ICJ4NjQiKSAmJiAhaXNfY2FzdG9zCi0rICAjIEJ1aWxkIENocm9tZSBzdXBw b3J0IGZvciB1c2luZyBWQS1BUEkgb3ZlciBYMTEuIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgdG8g dHJ1ZSBpcwotKyAgIyBub3QgYSBndWFyYW50ZWUgdGhhdCBDaHJvbWUgd2lsbCB1c2UgKG9yIGV2 ZW4gdHJ5IHRvIHVzZSkgVkEtQVBJIG92ZXIgWDExLiBJbgotKyAgIyBwYXJ0aWN1bGFyLCBpdCBp cyBwb3NzaWJsZSB0byBidWlsZCBDaHJvbWUgd2l0aCBzdXBwb3J0IGZvciBWQS1BUEkgb3ZlciBY MTEgYnV0Ci0rICAjIHBpY2sgV2F5bGFuZCBhcyB0aGUgT3pvbmUgYmFja2VuZCBhdCBydW50aW1l LiBJbiB0aGlzIGNhc2UsIENocm9tZSB3aWxsIHRyeSB0bwotKyAgIyB1c2UgVkEtQVBJIG92ZXIg RFJNLgotKyAgc3VwcG9ydF92YWFwaV9vdmVyX3gxMSA9Ci0rICAgICAgaXNfbGludXggJiYgb3pv bmVfcGxhdGZvcm1feDExICYmCi0rICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0 X2NwdSA9PSAieDY0IikgJiYgIWlzX2Nhc3RvcwotIH0KLSAKLSBkZWNsYXJlX2FyZ3MoKSB7Ci1A QCAtMjksOCArMzMsOSBAQCBkZWNsYXJlX2FyZ3MoKSB7Ci0gICAjIGlzIHR5cGljYWxseSB0aGUg Y2FzZSBvbiB4ODYtYmFzZWQgQ2hyb21lT1MgZGV2aWNlcy4KLSAgICMgVkEtQVBJIHNob3VsZCBh bHNvIGJlIGNvbXBpbGVkIGJ5IGRlZmF1bHQgb24geDExLXVzaW5nIGxpbnV4IGRldmljZXMKLSAg ICMgdXNpbmcgeDg2L3g2NC4KLS0gIHVzZV92YWFwaSA9IHVzZV92YWFwaV94MTEgfHwgKGlzX2No cm9tZW9zX2xhY3JvcyAmJgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdl dF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IikpCi0rICB1c2VfdmFhcGkgPQot KyAgICAgIHN1cHBvcnRfdmFhcGlfb3Zlcl94MTEgfHwKLSsgICAgICAoaXNfY2hyb21lb3NfbGFj cm9zICYmICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIpKQotIAot ICAgIyBJbmRpY2F0ZXMgaWYgQ2hyb21lT1MgcHJvdGVjdGVkIG1lZGlhIHN1cHBvcnQgZXhpc3Rz LiBUaGlzIGlzIHVzZWQKLSAgICMgdG8gZW5hYmxlIHRoZSBDRE0gZGFlbW9uIGluIENocm9tZSBP UyBhcyB3ZWxsIGFzIHN1cHBvcnQgZm9yCi1kaWZmIC11cCBjaHJvbWl1bS0xMDkuMC41MzU5LjEy NC9tZWRpYS9ncHUvQlVJTEQuZ24ud2F5bGFuZC12YWFwaSBjaHJvbWl1bS0xMDkuMC41MzU5LjEy NC9tZWRpYS9ncHUvQlVJTEQuZ24KLS0tLSBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9n cHUvQlVJTEQuZ24ud2F5bGFuZC12YWFwaQkyMDIyLTEyLTE0IDAxOjM5OjUyLjAwMDAwMDAwMCAr MDEwMAotKysrIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9CVUlMRC5nbgkyMDIz LTAxLTA1IDEwOjEzOjA4LjI5MTQwMzI2MSArMDEwMAotQEAgLTIwLDcgKzIwLDcgQEAgYnVpbGRm bGFnX2hlYWRlcigiYnVpbGRmbGFncyIpIHsKLSAgICAgIlVTRV9WQUFQSV9JTUFHRV9DT0RFQ1M9 JHVzZV92YWFwaV9pbWFnZV9jb2RlY3MiLAotICAgICAiVVNFX1Y0TDJfQ09ERUM9JHVzZV92NGwy X2NvZGVjIiwKLSAgICAgIlVTRV9MSUJWNEwyPSR1c2VfdjRscGx1Z2luIiwKLS0gICAgIlVTRV9W QUFQSV9YMTE9JHVzZV92YWFwaV94MTEiLAotKyAgICAiU1VQUE9SVF9WQUFQSV9PVkVSX1gxMT0k c3VwcG9ydF92YWFwaV9vdmVyX3gxMSIsCi0gICBdCi0gfQotIAotZGlmZiAtdXAgY2hyb21pdW0t MTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduLndheWxhbmQtdmFhcGkgY2hy b21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduCi0tLS0gY2hyb21p dW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmduLndheWxhbmQtdmFhcGkJ MjAyMi0xMi0xNCAwMTozOTo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMDkuMC41 MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24JMjAyMy0wMS0wNSAxMDoxMzowOC4yOTE0 MDMyNjEgKzAxMDAKLUBAIC0xNyw3ICsxNyw3IEBAIGFzc2VydCh1c2VfdmFhcGkpCi0gZ2VuZXJh dGVfc3R1YnMoImxpYnZhX3N0dWJzIikgewotICAgZXh0cmFfaGVhZGVyID0gInZhX3N0dWJfaGVh ZGVyLmZyYWdtZW50IgotICAgc2lncyA9IFsgInZhLnNpZ3MiIF0KLS0gIGlmICh1c2VfdmFhcGlf eDExKSB7Ci0rICBpZiAoc3VwcG9ydF92YWFwaV9vdmVyX3gxMSkgewotICAgICBzaWdzICs9IFsg InZhX3gxMS5zaWdzIiBdCi0gICB9Ci0gICBpZiAoaXNfY2hyb21lb3NfYXNoKSB7Ci1AQCAtMTM4 LDcgKzEzOCw3IEBAIHNvdXJjZV9zZXQoInZhYXBpIikgewotICAgICBdCi0gICB9Ci0gCi0tICBp ZiAodXNlX3ZhYXBpX3gxMSkgewotKyAgaWYgKHN1cHBvcnRfdmFhcGlfb3Zlcl94MTEpIHsKLSAg ICAgZGVwcyArPSBbICIvL3VpL2dmeC94IiBdCi0gICAgIHNvdXJjZXMgKz0gWwotICAgICAgICJ2 YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBfYW5nbGUuY2MiLAotQEAgLTIxNCw3ICsyMTQsNyBA QCBzb3VyY2Vfc2V0KCJjb21tb24iKSB7Ci0gICAgIGRlcHMgKz0gWyAiLy91aS9vem9uZSIgXQot ICAgfQotIAotLSAgaWYgKHVzZV92YWFwaV94MTEpIHsKLSsgIGlmIChzdXBwb3J0X3ZhYXBpX292 ZXJfeDExKSB7Ci0gICAgIGRlcHMgKz0gWyAiLy91aS9nZngveCIgXQotICAgfQotIAotZGlmZiAt dXAgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVf ZmFjdG9yeS5oLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1 L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5oCi0tLS0gY2hyb21pdW0tMTA5LjAuNTM1OS4x MjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5oLndheWxhbmQtdmFhcGkJ MjAyMi0xMi0xNCAwMTozOTo1My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMDkuMC41 MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9mYWN0b3J5LmgJMjAyMy0wMS0w NSAxMDoxMzowOC4yOTE0MDMyNjEgKzAxMDAKLUBAIC0zNiw3ICszNiwxMSBAQCBjbGFzcyBNRURJ QV9HUFVfRVhQT1JUIFZhYXBpUGljdHVyZUZhY3RvCi0gICAgIGtWYWFwaUltcGxlbWVudGF0aW9u QW5nbGUsCi0gICB9OwotIAotKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK LSsgIGV4cGxpY2l0IFZhYXBpUGljdHVyZUZhY3RvcnkoYWJzbDo6b3B0aW9uYWw8Ym9vbD4gbWF5 X3VzZV92YWFwaV9vdmVyX3gxMSk7Ci0rI2Vsc2UKLSAgIFZhYXBpUGljdHVyZUZhY3RvcnkoKTsK LSsjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotIAotICAgVmFh cGlQaWN0dXJlRmFjdG9yeShjb25zdCBWYWFwaVBpY3R1cmVGYWN0b3J5JikgPSBkZWxldGU7Ci0g ICBWYWFwaVBpY3R1cmVGYWN0b3J5JiBvcGVyYXRvcj0oY29uc3QgVmFhcGlQaWN0dXJlRmFjdG9y eSYpID0gZGVsZXRlOwotQEAgLTg1LDYgKzg5LDExIEBAIGNsYXNzIE1FRElBX0dQVV9FWFBPUlQg VmFhcGlQaWN0dXJlRmFjdG8KLSAKLSAgIENyZWF0ZVBpY3R1cmVDQiBjcmVhdGVfcGljdHVyZV9j Yl87Ci0gICBib29sIG5lZWRzX3ZwcF9mb3JfZG93bmxvYWRpbmdfID0gZmFsc2U7Ci0rCi0rI2lm IEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKyAgLy8gU2VlIGNvbW1lbnQgaW4g YFZhYXBpV3JhcHBlcjo6TWF5VXNlVmFhcGlPdmVyWDExKClgLgotKyAgYWJzbDo6b3B0aW9uYWw8 Ym9vbD4gbWF5X3VzZV92YWFwaV9vdmVyX3gxMV87Ci0rI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQ UE9SVF9WQUFQSV9PVkVSX1gxMSkKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBtZWRpYQotZGlm ZiAtdXAgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3ZpZGVv X2RlY29kZV9hY2NlbGVyYXRvci5jYy53YXlsYW5kLXZhYXBpIGNocm9taXVtLTEwOS4wLjUzNTku MTI0L21lZGlhL2dwdS92YWFwaS92YWFwaV92aWRlb19kZWNvZGVfYWNjZWxlcmF0b3IuY2MKLS0t LSBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVj b2RlX2FjY2VsZXJhdG9yLmNjLndheWxhbmQtdmFhcGkJMjAyMy0wMS0wNSAxMDoxMzowOC4yOTA0 MDMyNTEgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkv dmFhcGlfdmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yLmNjCTIwMjMtMDEtMDUgMTA6MTM6MDguMjky NDAzMjcxICswMTAwCi1AQCAtMTg0LDcgKzE4NCwxMiBAQCBib29sIFZhYXBpVmlkZW9EZWNvZGVB Y2NlbGVyYXRvcjo6SW5pdGlhCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2xpZW50KiBjbGllbnQpIHsKLSAgIERDSEVDSyh0YXNrX3J1bm5lcl8tPkJlbG9u Z3NUb0N1cnJlbnRUaHJlYWQoKSk7Ci0gCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09W RVJfWDExKQotKyAgdmFhcGlfcGljdHVyZV9mYWN0b3J5XyA9Ci0rICAgICAgc3RkOjptYWtlX3Vu aXF1ZTxWYWFwaVBpY3R1cmVGYWN0b3J5PihWYWFwaVdyYXBwZXI6Ok1heVVzZVZhYXBpT3Zlclgx MSgpKTsKLSsjZWxzZQotICAgdmFhcGlfcGljdHVyZV9mYWN0b3J5XyA9IHN0ZDo6bWFrZV91bmlx dWU8VmFhcGlQaWN0dXJlRmFjdG9yeT4oKTsKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JU X1ZBQVBJX09WRVJfWDExKQotIAotICAgaWYgKGNvbmZpZy5pc19lbmNyeXB0ZWQoKSkgewotICAg ICBOT1RSRUFDSEVEKCkgPDwgIkVuY3J5cHRlZCBzdHJlYW1zIGFyZSBub3Qgc3VwcG9ydGVkIGZv ciB0aGlzIFZEQSI7Ci1AQCAtMTIxMCw3ICsxMjE1LDcgQEAgVmFhcGlWaWRlb0RlY29kZUFjY2Vs ZXJhdG9yOjpHZXRTdXBwb3J0ZQotIAotIFZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvcjo6QnVm ZmVyQWxsb2NhdGlvbk1vZGUKLSBWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkRlY2lkZUJ1 ZmZlckFsbG9jYXRpb25Nb2RlKCkgewotLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLSsj aWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCi0gICAvLyBUaGUgSU1QT1JUIG1v ZGUgaXMgdXNlZCBmb3IgQW5kcm9pZCBvbiBDaHJvbWUgT1MsIHNvIHRoaXMgZG9lc24ndCBhcHBs eQotICAgLy8gaGVyZS4KLSAgIERDSEVDS19ORShvdXRwdXRfbW9kZV8sIFZpZGVvRGVjb2RlQWNj ZWxlcmF0b3I6OkNvbmZpZzo6T3V0cHV0TW9kZTo6SU1QT1JUKTsKLWRpZmYgLXVwIGNocm9taXVt LTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmgud2F5bGFuZC12 YWFwaSBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBl ci5oCi0tLS0gY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dy YXBwZXIuaC53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6Mzk6NTMuMDAwMDAwMDAwICswMTAw Ci0rKysgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBw ZXIuaAkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MjQwMzI3MSArMDEwMAotQEAgLTM2LDkgKzM2LDkg QEAKLSAjaW5jbHVkZSAidGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL3R5cGVzL29wdGlvbmFs LmgiCi0gI2luY2x1ZGUgInVpL2dmeC9nZW9tZXRyeS9zaXplLmgiCi0gCi0tI2lmIEJVSUxERkxB RyhVU0VfVkFBUElfWDExKQotKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK LSAjaW5jbHVkZSAidWkvZ2Z4L3gveHByb3RvLmgiICAvLyBub2duY2hlY2sKLS0jZW5kaWYgICAg ICAgICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLSsjZW5kaWYg ICAgICAgICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gx MSkKLSAKLSBuYW1lc3BhY2UgZ2Z4IHsKLSBlbnVtIGNsYXNzIEJ1ZmZlckZvcm1hdDsKLUBAIC0x ODYsNiArMTg2LDE2IEBAIGNsYXNzIE1FRElBX0dQVV9FWFBPUlQgVmFhcGlXcmFwcGVyCi0gICBW YWFwaVdyYXBwZXIoY29uc3QgVmFhcGlXcmFwcGVyJikgPSBkZWxldGU7Ci0gICBWYWFwaVdyYXBw ZXImIG9wZXJhdG9yPShjb25zdCBWYWFwaVdyYXBwZXImKSA9IGRlbGV0ZTsKLSAKLSsjaWYgQlVJ TERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCi0rICAvLyBSZXR1cm5zIHRydWUgaWYgVmFh cGlXcmFwcGVyIGluc3RhbmNlcyBtYXkgdXNlIFZBLUFQSSBvdmVyIFgxMSBhbmQgZmFsc2UKLSsg IC8vIG90aGVyd2lzZSAoVkEtQVBJIG92ZXIgRFJNIHdpbGwgYmUgdXNlZCkuIElmIHRoaXMgcmV0 dXJucyBhYnNsOjpudWxsb3B0LAotKyAgLy8gaXQncyBiZWNhdXNlIGl0IHdhcyBub3QgcG9zc2li bGUgdG8gZGV0ZXJtaW5lIGhvdyBWQS1BUEkgbWF5IGJlIHVzZWQuIFRoaXMKLSsgIC8vIHNob3Vs ZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBQcmVTYW5kYm94SW5pdGlhbGl6YXRpb24oKSAod2hpY2gg aXMgYXNzdW1lZCB0bwotKyAgLy8gYmUgY2FsbGVkIG9ubHkgb25jZSBkdXJpbmcgdGhlIEdQVSBw cm9jZXNzIHN0YXJ0dXApIGFuZCBpcyBzYWZlIHRvIGNhbGwKLSsgIC8vIGZyb20gYW55IHRocmVh ZC4gQWRkaXRpb25hbGx5LCB0aGlzIHNob3VsZCBhbHdheXMgcmV0dXJuIHRoZSBzYW1lIHZhbHVl LgotKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPGJvb2w+IE1heVVzZVZhYXBpT3ZlclgxMSgpOwot KyNlbmRpZgotKwotICAgLy8gUmV0dXJucyB0aGUgc3VwcG9ydGVkIFNWQyBzY2FsYWJpbGl0eSBt b2RlcyBmb3Igc3BlY2lmaWVkIHByb2ZpbGUuCi0gICBzdGF0aWMgc3RkOjp2ZWN0b3I8U1ZDU2Nh bGFiaWxpdHlNb2RlPiBHZXRTdXBwb3J0ZWRTY2FsYWJpbGl0eU1vZGVzKAotICAgICAgIFZpZGVv Q29kZWNQcm9maWxlIG1lZGlhX3Byb2ZpbGUsCi1AQCAtNDM5LDEzICs0NDksMTMgQEAgY2xhc3Mg TUVESUFfR1BVX0VYUE9SVCBWYWFwaVdyYXBwZXIKLSAgICAgICBWQVN1cmZhY2VJRCB2YV9zdXJm YWNlX2lkLAotICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6cGFpcjxWQUJ1ZmZlcklELCBW QUJ1ZmZlckRlc2NyaXB0b3I+PiYgdmFfYnVmZmVycyk7Ci0gCi0tI2lmIEJVSUxERkxBRyhVU0Vf VkFBUElfWDExKQotKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKLSAgIC8v IFB1dCBkYXRhIGZyb20gfHZhX3N1cmZhY2VfaWR8IGludG8gfHhfcGl4bWFwfCBvZiBzaXplCi0g ICAvLyB8ZGVzdF9zaXplfCwgY29udmVydGluZy9zY2FsaW5nIHRvIGl0LgotICAgW1tub2Rpc2Nh cmRdXSBib29sIFB1dFN1cmZhY2VJbnRvUGl4bWFwKFZBU3VyZmFjZUlEIHZhX3N1cmZhY2VfaWQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDExOjpQaXhtYXAg eF9waXhtYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Z4 OjpTaXplIGRlc3Rfc2l6ZSk7Ci0tI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkK LSsjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotIAotICAgLy8g Q3JlYXRlcyBhIFNjb3BlZFZBSW1hZ2UgZnJvbSBhIFZBU3VyZmFjZSB8dmFfc3VyZmFjZV9pZHwg YW5kIG1hcCBpdCBpbnRvCi0gICAvLyBtZW1vcnkgd2l0aCB0aGUgZ2l2ZW4gfGZvcm1hdHwgYW5k IHxzaXplfC4gSWYgfGZvcm1hdHwgaXMgbm90IGVxdWFsIHRvIHRoZQotZGlmZiAtdXAgY2hyb21p dW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhX3N0dWJfaGVhZGVyLmZyYWdtZW50 LndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3Zh X3N0dWJfaGVhZGVyLmZyYWdtZW50Ci0tLS0gY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEv Z3B1L3ZhYXBpL3ZhX3N0dWJfaGVhZGVyLmZyYWdtZW50LndheWxhbmQtdmFhcGkJMjAyMi0xMi0x NCAwMTozOTo1Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9t ZWRpYS9ncHUvdmFhcGkvdmFfc3R1Yl9oZWFkZXIuZnJhZ21lbnQJMjAyMy0wMS0wNSAxMDoxMzow OC4yOTE0MDMyNjEgKzAxMDAKLUBAIC03LDggKzcsOCBAQCBleHRlcm4gIkMiIHsKLSAKLSAjaW5j bHVkZSA8dmEvdmFfZHJtLmg+Ci0gI2luY2x1ZGUgPHZhL3ZhLmg+Ci0tI2lmIEJVSUxERkxBRyhV U0VfVkFBUElfWDExKQotKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKLSAj aW5jbHVkZSA8dmEvdmFfeDExLmg+Ci0tI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gx MSkKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotIAotIH0K LWRpZmYgLXVwIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L3VpL296b25lL3BsYXRmb3JtL3gxMS9v em9uZV9wbGF0Zm9ybV94MTEuY2Mud2F5bGFuZC12YWFwaSBjaHJvbWl1bS0xMDkuMC41MzU5LjEy NC91aS9vem9uZS9wbGF0Zm9ybS94MTEvb3pvbmVfcGxhdGZvcm1feDExLmNjCi0tLS0gY2hyb21p dW0tMTA5LjAuNTM1OS4xMjQvdWkvb3pvbmUvcGxhdGZvcm0veDExL296b25lX3BsYXRmb3JtX3gx MS5jYy53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6NDA6MTQuMDAwMDAwMDAwICswMTAwCi0r KysgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvdWkvb3pvbmUvcGxhdGZvcm0veDExL296b25lX3Bs YXRmb3JtX3gxMS5jYwkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MjQwMzI3MSArMDEwMAotQEAgLTE5 Niw3ICsxOTYsNyBAQCBjbGFzcyBPem9uZVBsYXRmb3JtWDExIDogcHVibGljIE96b25lUGxhCi0g ICAgICAgcHJvcGVydGllcy0+YXBwX21vZGFsX2RpYWxvZ3NfdXNlX2V2ZW50X2Jsb2NrZXIgPSB0 cnVlOwotICAgICAgIHByb3BlcnRpZXMtPmZldGNoX2J1ZmZlcl9mb3JtYXRzX2Zvcl9nbWJfb25f Z3B1ID0gdHJ1ZTsKLSAjaWYgQlVJTERGTEFHKElTX0xJTlVYKQotLSAgICAgIHByb3BlcnRpZXMt PnN1cHBvcnRzX3ZhYXBpID0gdHJ1ZTsKLSsgICAgICBwcm9wZXJ0aWVzLT5zdXBwb3J0c192YWFw aV94MTEgPSB0cnVlOwotICNlbmRpZgotIAotICAgICAgIGluaXRpYWxpc2VkID0gdHJ1ZTsKLWRp ZmYgLXVwIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L3VpL296b25lL3B1YmxpYy9vem9uZV9wbGF0 Zm9ybS5oLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvdWkvb3pvbmUvcHVi bGljL296b25lX3BsYXRmb3JtLmgKLS0tLSBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC91aS9vem9u ZS9wdWJsaWMvb3pvbmVfcGxhdGZvcm0uaC53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6NDA6 MTQuMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvdWkvb3pvbmUv cHVibGljL296b25lX3BsYXRmb3JtLmgJMjAyMy0wMS0wNSAxMDoxMzowOC4yOTM0MDMyODEgKzAx MDAKLUBAIC0xNDUsMTIgKzE0NSwxMyBAQCBjbGFzcyBDT01QT05FTlRfRVhQT1JUKE9aT05FKSBP em9uZVBsYXRmCi0gICAgIGJvb2wgZmV0Y2hfYnVmZmVyX2Zvcm1hdHNfZm9yX2dtYl9vbl9ncHUg PSBmYWxzZTsKLSAKLSAjaWYgQlVJTERGTEFHKElTX0xJTlVYKQotLSAgICAvLyBUT0RPKGNyYnVn LmNvbS8xMTE2NzAxKTogYWRkIHZhYXBpIHN1cHBvcnQgZm9yIG90aGVyIE96b25lIHBsYXRmb3Jt cyBvbgotLSAgICAvLyBMaW51eC4gQXQgdGhlIG1vbWVudCwgVkEtQVBJIExpbnV4IGltcGxlbWVu dGF0aW9uIHN1cHBvcnRzIG9ubHkgWDExCi0tICAgIC8vIGJhY2tlbmQuIFRoaXMgaW1wbGVtZW50 YXRpb24gbXVzdCBiZSByZWZhY3RvcmVkIHRvIHN1cHBvcnQgT3pvbmUKLS0gICAgLy8gcHJvcGVy bHkuIEFzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCBWQS1BUEkgb24gTGludXggY2hlY2tzIGlmIHZh YXBpIGlzCi0tICAgIC8vIHN1cHBvcnRlZCAod2hpY2ggaW1wbGljaXRseSBtZWFucyB0aGF0IGl0 IGlzIE96b25lL1gxMSkuCi0tICAgIGJvb2wgc3VwcG9ydHNfdmFhcGkgPSBmYWxzZTsKLSsgICAg Ly8gVkEtQVBJIHN1cHBvcnRzIGRpZmZlcmVudCBkaXNwbGF5IGJhY2tlbmRzLgotKyAgICAvLyBT ZWUgaHR0cHM6Ly9naXRodWIuY29tL2ludGVsL2xpYnZhL2Jsb2IvbWFzdGVyL3ZhL3ZhX2JhY2tl bmQuaAotKyAgICAvLwotKyAgICAvLyBWQS9EUk0gYW5kIFZBL1gxMSBhcmUgdXNlZCBieSBDaHJv bWl1bSBhdCB0aGUgbW9tZW50LiBBbGwgT3pvbmUgcGxhdGZvcm1zCi0rICAgIC8vIHN1cHBvcnQg VkEvRFJNIGJ5IGRlZmF1bHQuIGBzdXBwb3J0c192YWFwaV94MTFgIGluZGljYXRlcyBpZiBWQS9Y MTEKLSsgICAgLy8gc3VwcG9ydGVkOyBpdCBpcyB0cnVlIG9ubHkgb24gT3pvbmUvWDExIHBsYXRm b3JtLgotKyAgICBib29sIHN1cHBvcnRzX3ZhYXBpX3gxMSA9IGZhbHNlOwotICNlbmRpZgotIAot ICAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxhdGZvcm0gYWxsb3dzIGNsaWVudCBhcHBsaWNh dGlvbnMgdG8gbWFuaXB1bGF0ZQotZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9tZWRp YS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yX3VuaXR0ZXN0LmNjLm9y aWcgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVj b2RlX2FjY2VsZXJhdG9yX3VuaXR0ZXN0LmNjCi0tLS0gY2hyb21pdW0tMTA5LjAuNTQxNC43NC9t ZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yX3VuaXR0ZXN0LmNj Lm9yaWcJMjAyMy0wMS0wNCAyMDoyMDoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MDkuMC41NDE0Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV92aWRlb19kZWNvZGVfYWNjZWxlcmF0 b3JfdW5pdHRlc3QuY2MJMjAyMy0wMS0xMSAxNDozMTowMS4wMzM0OTYxMjEgKzAxMDAKLUBAIC0z OSw2ICszOSwxMSBAQCBzdHJ1Y3QgVGVzdFBhcmFtcyB7Ci0gICBib29sIGRlY29kZV91c2luZ19j bGllbnRfcGljdHVyZV9idWZmZXJzOwotIH07Ci0gCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZB QVBJX09WRVJfWDExKQotKy8vIFRPRE86IEFkZCBpdCBpbiBUZXN0UGFyYW1zIHRvIGNvdmVyIE96 b25lL1dheWxhbmQuCi0rYm9vbCBrTWF5VXNlVmFhcGlPdmVyWDExID0gdHJ1ZTsKLSsjZW5kaWYg IC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKwotIGNvbnN0ZXhwciBpbnQz Ml90IGtCaXRzdHJlYW1JZCA9IDEyMzsKLSBjb25zdGV4cHIgc2l6ZV90IGtJbnB1dFNpemUgPSAy NTY7Ci0gCi1AQCAtMTMxLDcgKzEzNiwxMyBAQCBjbGFzcyBNb2NrVmFhcGlQaWN0dXJlIDogcHVi bGljIFZhYXBpUGljCi0gCi0gY2xhc3MgTW9ja1ZhYXBpUGljdHVyZUZhY3RvcnkgOiBwdWJsaWMg VmFhcGlQaWN0dXJlRmFjdG9yeSB7Ci0gIHB1YmxpYzoKLSsjaWYgQlVJTERGTEFHKFNVUFBPUlRf VkFBUElfT1ZFUl9YMTEpCi0rICBleHBsaWNpdCBNb2NrVmFhcGlQaWN0dXJlRmFjdG9yeShhYnNs OjpvcHRpb25hbDxib29sPiBtYXlfdXNlX3ZhYXBpX292ZXJfeDExKQotKyAgICAgIDogVmFhcGlQ aWN0dXJlRmFjdG9yeShtYXlfdXNlX3ZhYXBpX292ZXJfeDExKSB7fQotKyNlbHNlCi0gICBNb2Nr VmFhcGlQaWN0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhT VVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKwotICAgfk1vY2tWYWFwaVBpY3R1cmVGYWN0b3J5KCkg b3ZlcnJpZGUgPSBkZWZhdWx0OwotIAotICAgTU9DS19NRVRIT0QzKE1vY2tDcmVhdGVWYWFwaVBp Y3R1cmUsCi1AQCAtMTY1LDcgKzE3NiwxMiBAQCBjbGFzcyBWYWFwaVZpZGVvRGVjb2RlQWNjZWxl cmF0b3JUZXN0IDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2Fu X2JpbmRfdG9fc2FtcGxlcikgeyByZXR1cm4gdHJ1ZTsgfSkpLAotICAgICAgICAgZGVjb2Rlcl90 aHJlYWRfKCJWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3JUZXN0VGhyZWFkIiksCi0gICAgICAg ICBtb2NrX2RlY29kZXJfKG5ldyA6OnRlc3Rpbmc6OlN0cmljdE1vY2s8TW9ja0FjY2VsZXJhdGVk VmlkZW9EZWNvZGVyPiksCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQot KyAgICAgICAgbW9ja192YWFwaV9waWN0dXJlX2ZhY3RvcnlfKAotKyAgICAgICAgICAgIG5ldyBN b2NrVmFhcGlQaWN0dXJlRmFjdG9yeShrTWF5VXNlVmFhcGlPdmVyWDExKSksCi0rI2Vsc2UKLSAg ICAgICAgIG1vY2tfdmFhcGlfcGljdHVyZV9mYWN0b3J5XyhuZXcgTW9ja1ZhYXBpUGljdHVyZUZh Y3RvcnkoKSksCi0rI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK LSAgICAgICAgIG1vY2tfdmFhcGlfd3JhcHBlcl8obmV3IE1vY2tWYWFwaVdyYXBwZXIoVmFhcGlX cmFwcGVyOjprRGVjb2RlKSksCi0gICAgICAgICBtb2NrX3ZwcF92YWFwaV93cmFwcGVyXyhuZXcg TW9ja1ZhYXBpV3JhcHBlcihWYWFwaVdyYXBwZXI6OmtEZWNvZGUpKSwKLSAgICAgICAgIHdlYWtf cHRyX2ZhY3RvcnlfKHRoaXMpIHsKLUBAIC00MjEsMTQgKzQzNywxNiBAQCBURVNUX1AoVmFhcGlW aWRlb0RlY29kZUFjY2VsZXJhdG9yVGVzdCwKLSAgICAgICAgICAgICBtb2NrX3ZhYXBpX3BpY3R1 cmVfZmFjdG9yeV8tPkdldFZhYXBpSW1wbGVtZW50YXRpb24oCi0gICAgICAgICAgICAgICAgIGds OjprR0xJbXBsZW1lbnRhdGlvbkVHTEdMRVMyKSk7Ci0gCi0tI2lmIEJVSUxERkxBRyhVU0VfVkFB UElfWDExKQotLSAgRVhQRUNUX0VRKFZhYXBpUGljdHVyZUZhY3Rvcnk6OmtWYWFwaUltcGxlbWVu dGF0aW9uQW5nbGUsCi0tICAgICAgICAgICAgbW9ja192YWFwaV9waWN0dXJlX2ZhY3RvcnlfLT5H ZXRWYWFwaUltcGxlbWVudGF0aW9uKAotLSAgICAgICAgICAgICAgICBnbDo6a0dMSW1wbGVtZW50 YXRpb25FR0xBTkdMRSkpOwotLSAgRVhQRUNUX0VRKFZhYXBpUGljdHVyZUZhY3Rvcnk6OmtWYWFw aUltcGxlbWVudGF0aW9uWDExLAotLSAgICAgICAgICAgIG1vY2tfdmFhcGlfcGljdHVyZV9mYWN0 b3J5Xy0+R2V0VmFhcGlJbXBsZW1lbnRhdGlvbigKLS0gICAgICAgICAgICAgICAgZ2w6OmtHTElt cGxlbWVudGF0aW9uRGVza3RvcEdMKSk7Ci0tI2VsaWYgQlVJTERGTEFHKElTX09aT05FKQotKyNp ZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKLSsgIGlmIChrTWF5VXNlVmFhcGlP dmVyWDExKSB7Ci0rICAgIEVYUEVDVF9FUShWYWFwaVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJbXBs ZW1lbnRhdGlvbkFuZ2xlLAotKyAgICAgICAgICAgICAgbW9ja192YWFwaV9waWN0dXJlX2ZhY3Rv cnlfLT5HZXRWYWFwaUltcGxlbWVudGF0aW9uKAotKyAgICAgICAgICAgICAgICAgIGdsOjprR0xJ bXBsZW1lbnRhdGlvbkVHTEFOR0xFKSk7Ci0rICAgIEVYUEVDVF9FUShWYWFwaVBpY3R1cmVGYWN0 b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlvblgxMSwKLSsgICAgICAgICAgICAgIG1vY2tfdmFhcGlf cGljdHVyZV9mYWN0b3J5Xy0+R2V0VmFhcGlJbXBsZW1lbnRhdGlvbigKLSsgICAgICAgICAgICAg ICAgICBnbDo6a0dMSW1wbGVtZW50YXRpb25EZXNrdG9wR0wpKTsKLSsgIH0KLSsjZWxzZQotICAg RVhQRUNUX0VRKFZhYXBpUGljdHVyZUZhY3Rvcnk6OmtWYWFwaUltcGxlbWVudGF0aW9uRHJtLAot ICAgICAgICAgICAgIG1vY2tfdmFhcGlfcGljdHVyZV9mYWN0b3J5Xy0+R2V0VmFhcGlJbXBsZW1l bnRhdGlvbigKLSAgICAgICAgICAgICAgICAgZ2w6OmtHTEltcGxlbWVudGF0aW9uRUdMQU5HTEUp KTsKLWRpZmYgLXVwIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBp X3BpY3R1cmVfZmFjdG9yeS5jYy5vcmlnIGNocm9taXVtLTEwOS4wLjU0MTQuNzQvbWVkaWEvZ3B1 L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5jYwotLS0tIGNocm9taXVtLTEwOS4wLjU0MTQu NzQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5jYy5vcmlnCTIwMjMtMDEt MDQgMjA6MjA6MTguMDAwMDAwMDAwICswMTAwCi0rKysgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9t ZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9mYWN0b3J5LmNjCTIwMjMtMDEtMTEgMTQ6NDU6 MzYuNDA1NTA2NDc5ICswMTAwCi1AQCAtMTMsMTAgKzEzLDEwIEBACi0gI2lmIEJVSUxERkxBRyhJ U19PWk9ORSkKLSAjaW5jbHVkZSAibWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfbmF0aXZl X3BpeG1hcF9vem9uZS5oIgotICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX09aT05FKQotLSNpZiBC VUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLSsjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZF Ul9YMTEpCi0gI2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2ZV9w aXhtYXBfYW5nbGUuaCIKLSAjaW5jbHVkZSAibWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVf dGZwLmgiCi0tI2VuZGlmICAvLyBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLSsjZW5kaWYgIC8v IEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotICNpZiBkZWZpbmVkKFVTRV9FR0wp Ci0gI2luY2x1ZGUgIm1lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBf ZWdsLmgiCi0gI2VuZGlmCi1AQCAtNDIsMjIgKzQyLDMyIEBACi0gCi0gfSAgLy8gbmFtZXNwYWNl Ci0gCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotK1ZhYXBpUGljdHVy ZUZhY3Rvcnk6OlZhYXBpUGljdHVyZUZhY3RvcnkoCi0rICAgIGFic2w6Om9wdGlvbmFsPGJvb2w+ IG1heV91c2VfdmFhcGlfb3Zlcl94MTEpCi0rICAgIDogbWF5X3VzZV92YWFwaV9vdmVyX3gxMV8o bWF5X3VzZV92YWFwaV9vdmVyX3gxMSkgewotKyNlbHNlCi0gVmFhcGlQaWN0dXJlRmFjdG9yeTo6 VmFhcGlQaWN0dXJlRmFjdG9yeSgpIHsKLSsjZW5kaWYgICAvLyBCVUlMREZMQUcoU1VQUE9SVF9W QUFQSV9PVkVSX1gxMSkKLSAgIHZhYXBpX2ltcGxfcGFpcnNfLmluc2VydCgKLSAgICAgICBzdGQ6 Om1ha2VfcGFpcihnbDo6a0dMSW1wbGVtZW50YXRpb25FR0xHTEVTMiwKLSAgICAgICAgICAgICAg ICAgICAgICBWYWFwaVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlvbkRybSkpOwot LSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLS0gIHZhYXBpX2ltcGxfcGFpcnNfLmluc2Vy dCgKLS0gICAgICBzdGQ6Om1ha2VfcGFpcihnbDo6a0dMSW1wbGVtZW50YXRpb25FR0xBTkdMRSwK LS0gICAgICAgICAgICAgICAgICAgICBWYWFwaVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJbXBsZW1l bnRhdGlvbkFuZ2xlKSk7Ci0tICB2YWFwaV9pbXBsX3BhaXJzXy5pbnNlcnQoCi0tICAgICAgc3Rk OjptYWtlX3BhaXIoZ2w6OmtHTEltcGxlbWVudGF0aW9uRGVza3RvcEdMLAotLSAgICAgICAgICAg ICAgICAgICAgIFZhYXBpUGljdHVyZUZhY3Rvcnk6OmtWYWFwaUltcGxlbWVudGF0aW9uWDExKSk7 Ci0tI2VsaWYgQlVJTERGTEFHKElTX09aT05FKQotKwotKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9W QUFQSV9PVkVSX1gxMSkKLSsgIENIRUNLKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLmhhc192YWx1 ZSgpKTsKLSsgIGlmIChtYXlfdXNlX3ZhYXBpX292ZXJfeDExXy52YWx1ZSgpKSB7Ci0rICAgIHZh YXBpX2ltcGxfcGFpcnNfLmluc2VydCgKLSsgICAgICAgIHN0ZDo6bWFrZV9wYWlyKGdsOjprR0xJ bXBsZW1lbnRhdGlvbkVHTEFOR0xFLAotKyAgICAgICAgICAgICAgICAgICAgICAgVmFhcGlQaWN0 dXJlRmFjdG9yeTo6a1ZhYXBpSW1wbGVtZW50YXRpb25BbmdsZSkpOwotKyAgICB2YWFwaV9pbXBs X3BhaXJzXy5pbnNlcnQoCi0rICAgICAgICBzdGQ6Om1ha2VfcGFpcihnbDo6a0dMSW1wbGVtZW50 YXRpb25EZXNrdG9wR0wsCi0rICAgICAgICAgICAgICAgICAgICAgICBWYWFwaVBpY3R1cmVGYWN0 b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlvblgxMSkpOwotKyAgfQotKyNlbHNlCi0gICB2YWFwaV9p bXBsX3BhaXJzXy5pbnNlcnQoCi0gICAgICAgc3RkOjptYWtlX3BhaXIoZ2w6OmtHTEltcGxlbWVu dGF0aW9uRUdMQU5HTEUsCi0gICAgICAgICAgICAgICAgICAgICAgVmFhcGlQaWN0dXJlRmFjdG9y eTo6a1ZhYXBpSW1wbGVtZW50YXRpb25Ecm0pKTsKLS0jZW5kaWYKLSsjZW5kaWYgIC8vIEJVSUxE RkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotIAotICAgRGV0ZXJtaW5lUGljdHVyZUNyZWF0 aW9uQW5kRG93bmxvYWRpbmdNZWNoYW5pc20oKTsKLSB9Ci1AQCAtOTgsMTkgKzEwOCwxOSBAQAot IH0KLSAKLSB1aW50MzJfdCBWYWFwaVBpY3R1cmVGYWN0b3J5OjpHZXRHTFRleHR1cmVUYXJnZXQo KSB7Ci0tI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQotLSAgcmV0dXJuIEdMX1RFWFRVUkVf MkQ7Ci0tI2Vsc2UKLSsjaWYgQlVJTERGTEFHKElTX0NIUk9NRU9TKQotICAgcmV0dXJuIEdMX1RF WFRVUkVfRVhURVJOQUxfT0VTOwotLSNlbmRpZgotKyNlbHNlCi0rICByZXR1cm4gR0xfVEVYVFVS RV8yRDsKLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSB9Ci0gCi0gZ2Z4OjpC dWZmZXJGb3JtYXQgVmFhcGlQaWN0dXJlRmFjdG9yeTo6R2V0QnVmZmVyRm9ybWF0KCkgewotLSNp ZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLS0gIHJldHVybiBnZng6OkJ1ZmZlckZvcm1hdDo6 UkdCWF84ODg4OwotLSNlbHNlCi0rI2lmIEJVSUxERkxBRyhJU19DSFJPTUVPUykKLSAgIHJldHVy biBnZng6OkJ1ZmZlckZvcm1hdDo6WVVWXzQyMF9CSVBMQU5BUjsKLS0jZW5kaWYKLSsjZWxzZQot KyAgcmV0dXJuIGdmeDo6QnVmZmVyRm9ybWF0OjpSR0JYXzg4ODg7Ci0rI2VuZGlmICAvLyBCVUlM REZMQUcoSVNfQ0hST01FT1MpCi0gfQotIAotIHZvaWQgVmFhcGlQaWN0dXJlRmFjdG9yeTo6RGV0 ZXJtaW5lUGljdHVyZUNyZWF0aW9uQW5kRG93bmxvYWRpbmdNZWNoYW5pc20oKSB7Ci1AQCAtMTE4 LDI1ICsxMjgsMzAgQEAKLSAjaWYgQlVJTERGTEFHKElTX09aT05FKQotICAgICAvLyBXZSBjYW4g YmUgY2FsbGVkIHdpdGhvdXQgR0wgaW5pdGlhbGl6ZWQsIHdoaWNoIGlzIHZhbGlkIGlmIHdlIHVz ZSBPem9uZS4KLSAgICAgY2FzZSBrVmFhcGlJbXBsZW1lbnRhdGlvbk5vbmU6Ci0rI2lmIEJVSUxE RkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKyAgICAgIERDSEVDSyhtYXlfdXNlX3ZhYXBp X292ZXJfeDExXy52YWx1ZV9vcihmYWxzZSkpOwotKyNlbmRpZgotICAgICAgIGNyZWF0ZV9waWN0 dXJlX2NiXyA9IGJhc2U6OkJpbmRSZXBlYXRpbmcoCi0gICAgICAgICAgICZDcmVhdGVWYWFwaVBp Y3R1cmVOYXRpdmVJbXBsPFZhYXBpUGljdHVyZU5hdGl2ZVBpeG1hcE96b25lPik7Ci0gICAgICAg bmVlZHNfdnBwX2Zvcl9kb3dubG9hZGluZ18gPSB0cnVlOwotICAgICAgIGJyZWFrOwotICNlbmRp ZiAgLy8gQlVJTERGTEFHKElTX09aT05FKQotLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkK LSsjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCi0gICAgIGNhc2Uga1ZhYXBp SW1wbGVtZW50YXRpb25YMTE6Ci0rICAgICAgRENIRUNLKG1heV91c2VfdmFhcGlfb3Zlcl94MTFf LnZhbHVlX29yKGZhbHNlKSk7Ci0gICAgICAgY3JlYXRlX3BpY3R1cmVfY2JfID0KLSAgICAgICAg ICAgYmFzZTo6QmluZFJlcGVhdGluZygmQ3JlYXRlVmFhcGlQaWN0dXJlTmF0aXZlSW1wbDxWYWFw aVRGUFBpY3R1cmU+KTsKLSAgICAgICAvLyBOZWl0aGVyIFZhYXBpVEZQUGljdHVyZSBvciBWYWFw aVBpY3R1cmVOYXRpdmVQaXhtYXBBbmdsZSBuZWVkcyB0aGUgVlBQLgotICAgICAgIG5lZWRzX3Zw cF9mb3JfZG93bmxvYWRpbmdfID0gZmFsc2U7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2Uga1Zh YXBpSW1wbGVtZW50YXRpb25BbmdsZToKLSsgICAgICBEQ0hFQ0sobWF5X3VzZV92YWFwaV9vdmVy X3gxMV8udmFsdWVfb3IoZmFsc2UpKTsKLSAgICAgICBjcmVhdGVfcGljdHVyZV9jYl8gPSBiYXNl OjpCaW5kUmVwZWF0aW5nKAotICAgICAgICAgICAmQ3JlYXRlVmFhcGlQaWN0dXJlTmF0aXZlSW1w bDxWYWFwaVBpY3R1cmVOYXRpdmVQaXhtYXBBbmdsZT4pOwotICAgICAgIC8vIE5laXRoZXIgVmFh cGlURlBQaWN0dXJlIG9yIFZhYXBpUGljdHVyZU5hdGl2ZVBpeG1hcEFuZ2xlIG5lZWRzIHRoZSBW UFAuCi0gICAgICAgbmVlZHNfdnBwX2Zvcl9kb3dubG9hZGluZ18gPSBmYWxzZTsKLSAgICAgICBi cmVhazsKLS0jZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQotKyNlbmRpZiAgLy8g QlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCi0gICAgIGNhc2Uga1ZhYXBpSW1wbGVt ZW50YXRpb25Ecm06Ci0gI2lmIEJVSUxERkxBRyhJU19PWk9ORSkKLSAgICAgICBjcmVhdGVfcGlj dHVyZV9jYl8gPSBiYXNlOjpCaW5kUmVwZWF0aW5nKAotZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAu NTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5jYy5vcmlnIGNocm9taXVtLTEw OS4wLjU0MTQuNzQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuY2MKLS0tLSBjaHJvbWl1 bS0xMDkuMC41NDE0Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjLm9yaWcJMjAy My0wMS0wNCAyMDoyMDoxOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBjaHJvbWl1bS0xMDkuMC41NDE0 Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjCTIwMjMtMDEtMTEgMTU6MDg6MDIu NzIxNzY4MjQzICswMTAwCi1AQCAtNjIsNyArNjIsNyBAQAotICNpbmNsdWRlICJ1aS9nbC9nbF9i aW5kaW5ncy5oIgotICNpbmNsdWRlICJ1aS9nbC9nbF9pbXBsZW1lbnRhdGlvbi5oIgotIAotLSNp ZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLSsjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElf T1ZFUl9YMTEpCi0gdHlwZWRlZiBYSUQgRHJhd2FibGU7Ci0gCi0gZXh0ZXJuICJDIiB7Ci1AQCAt NzAsNyArNzAsNyBAQAotIH0KLSAKLSAjaW5jbHVkZSAidWkvZ2Z4L3gvY29ubmVjdGlvbi5oIiAg Ly8gbm9nbmNoZWNrCi0tI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJVSUxE RkxBRyhVU0VfVkFBUElfWDExKQotKyNlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkgCi0gCi0gI2lmIEJVSUxERkxBRyhJ U19PWk9ORSkKLSAjaW5jbHVkZSAidWkvb3pvbmUvcHVibGljL296b25lX3BsYXRmb3JtLmgiCi1A QCAtODQsMTQgKzg0LDE0IEBACi0gCi0gdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmE7 Ci0gdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmFfZHJtOwotLSNpZiBCVUlMREZMQUco VVNFX1ZBQVBJX1gxMSkKLSsjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCi0g dXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmFfeDExOwotLSNlbmRpZiAgLy8gQlVJTERG TEFHKFVTRV9WQUFQSV9YMTEpCi0rI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9P VkVSX1gxMSkKLSB1c2luZyBtZWRpYV9ncHVfdmFhcGk6OkluaXRpYWxpemVTdHViczsKLSB1c2lu ZyBtZWRpYV9ncHVfdmFhcGk6OklzVmFJbml0aWFsaXplZDsKLS0jaWYgQlVJTERGTEFHKFVTRV9W QUFQSV9YMTEpCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotIHVzaW5n IG1lZGlhX2dwdV92YWFwaTo6SXNWYV94MTFJbml0aWFsaXplZDsKLS0jZW5kaWYgIC8vIEJVSUxE RkxBRyhVU0VfVkFBUElfWDExKQotKyNlbmRpZiAgLy8gQlVJTERGTEFHKFNVUFBPUlRfVkFBUElf T1ZFUl9YMTEpCi0gdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjpJc1ZhX2RybUluaXRpYWxpemVkOwot IHVzaW5nIG1lZGlhX2dwdV92YWFwaTo6U3R1YlBhdGhNYXA7Ci0gCi1AQCAtNjY4LDYgKzY2OCwx MiBAQAotIAotICAgdm9pZCBTZXREcm1GZChiYXNlOjpQbGF0Zm9ybUZpbGUgZmQpIHsgZHJtX2Zk Xy5yZXNldChIQU5ETEVfRUlOVFIoZHVwKGZkKSkpOyB9Ci0gCi0rI2lmIEJVSUxERkxBRyhTVVBQ T1JUX1ZBQVBJX09WRVJfWDExKQotKyAgYWJzbDo6b3B0aW9uYWw8Ym9vbD4gTWF5VXNlVmFhcGlP dmVyWDExKCkgY29uc3QgewotKyAgICByZXR1cm4gbWF5X3VzZV92YWFwaV9vdmVyX3gxMV87Ci0r ICB9Ci0rI2VuZGlmCi0rCi0gIHByaXZhdGU6Ci0gICBmcmllbmQgY2xhc3MgYmFzZTo6Tm9EZXN0 cnVjdG9yPFZBRGlzcGxheVN0YXRlPjsKLSAKLUBAIC02OTAsNiArNjk2LDEzIEBACi0gICAvLyBE cm0gZmQgdXNlZCB0byBvYnRhaW4gYWNjZXNzIHRvIHRoZSBkcml2ZXIgaW50ZXJmYWNlIGJ5IFZB LgotICAgYmFzZTo6U2NvcGVkRkQgZHJtX2ZkXzsKLSAKLSsjaWYgQlVJTERGTEFHKFNVUFBPUlRf VkFBUElfT1ZFUl9YMTEpCi0rICAvLyBXaGV0aGVyIHdlJ2xsIGJlIHBvc3NpYmx5IHVzaW5nIFZB LUFQSSBvdmVyIE96b25lL1gxMS4gVGhpcyBzaG91bGQgb25seSBiZQotKyAgLy8gc2V0IChpZiBh dCBhbGwpIGR1cmluZyB0aGUgcHJlLXNhbmRib3ggaW5pdGlhbGl6YXRpb24uIElmIGFic2w6Om51 bGxvcHQsCi0rICAvLyBhbGwgY2FsbHMgdG8gSW5pdGlhbGl6ZSgpIHdpbGwgcmV0dXJuIGZhbHNl IGltbWVkaWF0ZWx5LgotKyAgYWJzbDo6b3B0aW9uYWw8Ym9vbD4gbWF5X3VzZV92YWFwaV9vdmVy X3gxMV87Ci0rI2VuZGlmCi0rCi0gICAvLyBUaGUgVkFEaXNwbGF5IGhhbmRsZS4gVmFsaWQgYmV0 d2VlbiBJbml0aWFsaXplKCkgYW5kIERlaW5pdGlhbGl6ZSgpLgotICAgVkFEaXNwbGF5IHZhX2Rp c3BsYXlfOwotIAotQEAgLTcwOCw2ICs3MjEsMTUgQEAKLSAKLSAvLyBzdGF0aWMKLSB2b2lkIFZB RGlzcGxheVN0YXRlOjpQcmVTYW5kYm94SW5pdGlhbGl6YXRpb24oKSB7Ci0rI2lmIEJVSUxERkxB RyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKyAgaWYgKHVpOjpPem9uZVBsYXRmb3JtOjpJc0lu aXRpYWxpemVkKCkpIHsKLSsgICAgVkFEaXNwbGF5U3RhdGU6OkdldCgpLT5tYXlfdXNlX3ZhYXBp X292ZXJfeDExXyA9Ci0rICAgICAgICB1aTo6T3pvbmVQbGF0Zm9ybTo6R2V0SW5zdGFuY2UoKQot KyAgICAgICAgICAgIC0+R2V0UGxhdGZvcm1Qcm9wZXJ0aWVzKCkKLSsgICAgICAgICAgICAuc3Vw cG9ydHNfdmFhcGlfeDExOwotKyAgfQotKyNlbmRpZgotKwotICAgY29uc3RleHByIGNoYXIga1Jl bmRlck5vZGVGaWxlUGF0dGVybltdID0gIi9kZXYvZHJpL3JlbmRlckQlZCI7Ci0gICAvLyBUaGlz IGxvb3AgZW5kcyBvbiBlaXRoZXIgdGhlIGZpcnN0IGNhcmQgdGhhdCBkb2VzIG5vdCBleGlzdCBv ciB0aGUgZmlyc3QKLSAgIC8vIHJlbmRlciBub2RlIHRoYXQgaXMgbm90IHZnZW0uCi1AQCAtNzQw LDIwICs3NjIsMTggQEAKLSBib29sIFZBRGlzcGxheVN0YXRlOjpJbml0aWFsaXplKCkgewotICAg YmFzZTo6QXV0b0xvY2sgYXV0b19sb2NrKHZhX2xvY2tfKTsKLSAKLS0jaWYgQlVJTERGTEFHKElT X09aT05FKSAmJiBCVUlMREZMQUcoSVNfTElOVVgpCi0tICAvLyBUT0RPKGNyYnVnLmNvbS8xMTE2 NzAxKTogYWRkIHZhYXBpIHN1cHBvcnQgZm9yIG90aGVyIE96b25lIHBsYXRmb3JtcyBvbgotLSAg Ly8gTGludXguIFNlZSBjb21tZW50IGluIE96b25lUGxhdGZvcm06OlBsYXRmb3JtUHJvcGVydGll czo6c3VwcG9ydHNfdmFhcGkKLS0gIC8vIGZvciBtb3JlIGRldGFpbHMuIFRoaXMgd2lsbCBhbHNv IHJlcXVpcmUgcmV2aXNpdGluZyBldmVyeXRoaW5nIHRoYXQncwotLSAgLy8gZ3VhcmRlZCBieSBV U0VfVkFBUElfWDExLiBGb3IgZXhhbXBsZSwgaWYgVVNFX1ZBQVBJX1gxMSBpcyB0cnVlLCBidXQg dGhlCi0tICAvLyB1c2VyIGNob29zZXMgdGhlIFdheWxhbmQgYmFja2VuZCBmb3IgT3pvbmUgYXQg cnVudGltZSwgdGhlbiBtYW55IHRoaW5ncyAoaWYKLS0gIC8vIG5vdCBhbGwpIHRoYXQgd2UgZG8g Zm9yIFgxMSB3b24ndCBhcHBseS4KLS0gIGlmICghdWk6Ok96b25lUGxhdGZvcm06OkdldEluc3Rh bmNlKCktPkdldFBsYXRmb3JtUHJvcGVydGllcygpLnN1cHBvcnRzX3ZhYXBpKQotKyNpZiBCVUlM REZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKLSsgIGlmICghbWF5X3VzZV92YWFwaV9vdmVy X3gxMV8uaGFzX3ZhbHVlKCkpCi0gICAgIHJldHVybiBmYWxzZTsKLSAjZW5kaWYKLSAKLSAgIGJv b2wgbGlicmFyaWVzX2luaXRpYWxpemVkID0gSXNWYUluaXRpYWxpemVkKCkgJiYgSXNWYV9kcm1J bml0aWFsaXplZCgpOwotLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKLS0gIGxpYnJhcmll c19pbml0aWFsaXplZCA9IGxpYnJhcmllc19pbml0aWFsaXplZCAmJiBJc1ZhX3gxMUluaXRpYWxp emVkKCk7Ci0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKyAgLy8gSW5p dGlhbGl6ZSBWQS1BUEkgWDExIGRpc3BsYXkgYmFja2VuZCBmb3IgTGludXggT3pvbmUvWDExLgot KyAgLy8gU2VlIGNvbW1lbnQgaW4gT3pvbmVQbGF0Zm9ybTo6UGxhdGZvcm1Qcm9wZXJ0aWVzOjpz dXBwb3J0c192YWFwaV94MTEgZm9yCi0rICAvLyBtb3JlIGRldGFpbHMuCi0rICBpZiAobWF5X3Vz ZV92YWFwaV9vdmVyX3gxMV8udmFsdWUoKSkKLSsgICAgbGlicmFyaWVzX2luaXRpYWxpemVkID0g bGlicmFyaWVzX2luaXRpYWxpemVkICYmIElzVmFfeDExSW5pdGlhbGl6ZWQoKTsKLSAjZW5kaWYK LSAgIGlmICghbGlicmFyaWVzX2luaXRpYWxpemVkKQotICAgICByZXR1cm4gZmFsc2U7Ci1AQCAt NzY4LDcgKzc4OCw3IEBACi0gICByZXR1cm4gc3VjY2VzczsKLSB9Ci0gCi0tI2lmIEJVSUxERkxB RyhVU0VfVkFBUElfWDExKQotKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK LSAKLSBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IEdldFZBRGlzcGxheVN0YXRlWDExKGNvbnN0 IGJhc2U6OlNjb3BlZEZEJiBkcm1fZmQpIHsKLSAgIHN3aXRjaCAoZ2w6OkdldEdMSW1wbGVtZW50 YXRpb24oKSkgewotQEAgLTc5NiwxMyArODE2LDE5IEBACi0gICB9Ci0gfQotIAotLSNlbHNlCi0r I2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKLSAKLSBhYnNsOjpv cHRpb25hbDxWQURpc3BsYXk+IEdldFZBRGlzcGxheVN0YXRlKGNvbnN0IGJhc2U6OlNjb3BlZEZE JiBkcm1fZmQpIHsKLSAgIHN3aXRjaCAoZ2w6OkdldEdMSW1wbGVtZW50YXRpb24oKSkgewotICAg ICBjYXNlIGdsOjprR0xJbXBsZW1lbnRhdGlvbkVHTEdMRVMyOgotKyNpZiBCVUlMREZMQUcoSVNf Q0hST01FT1MpCi0rICAgIC8vIEdldFZBRGlzcGxheVN0YXRlKCkgc2hvdWxkIG5vdCBnZXQgY2Fs bGVkIG9uIExpbnV4IHdpdGggT3pvbmUvWDExCi0rICAgIC8vIChHZXRWQURpc3BsYXlTdGF0ZVgx MSgpIHNob3VsZCBnZXQgY2FsbGVkIGluc3RlYWQpLCBhbmQgd2UgaGF2ZW4ndCB0cmllZAotKyAg ICAvLyBWQS1BUEkgZGVjb2Rpbmcgb24gTGludXggd2l0aCBPem9uZS9XYXlsYW5kIGFuZCBhbnl0 aGluZyBvdGhlciB0aGFuCi0rICAgIC8vIG5hdGl2ZSBFR0wvR0xFUzIuCi0gICAgIGNhc2UgZ2w6 OmtHTEltcGxlbWVudGF0aW9uRUdMQU5HTEU6Ci0gICAgIGNhc2UgZ2w6OmtHTEltcGxlbWVudGF0 aW9uTm9uZToKLSsjZW5kaWYKLSAgICAgICByZXR1cm4gdmFHZXREaXNwbGF5RFJNKGRybV9mZC5n ZXQoKSk7Ci0gICAgIGRlZmF1bHQ6Ci0gICAgICAgTE9HKFdBUk5JTkcpIDw8ICJWQUFQSSB2aWRl byBhY2NlbGVyYXRpb24gbm90IGF2YWlsYWJsZSBmb3IgIgotQEAgLTgxMiwxOCArODM4LDIzIEBA Ci0gICB9Ci0gfQotIAotLSNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCi0tCi0g Ym9vbCBWQURpc3BsYXlTdGF0ZTo6SW5pdGlhbGl6ZVZhRGlzcGxheV9Mb2NrZWQoKSB7Ci0tICBh YnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IGRpc3BsYXkgPQotLSNpZiBCVUlMREZMQUcoVVNFX1ZB QVBJX1gxMSkKLS0gICAgICBHZXRWQURpc3BsYXlTdGF0ZVgxMShkcm1fZmRfKTsKLS0jZWxzZQot LSAgICAgIEdldFZBRGlzcGxheVN0YXRlKGRybV9mZF8pOwotLSNlbmRpZgotKyAgYWJzbDo6b3B0 aW9uYWw8VkFEaXNwbGF5PiBkaXNwbGF5OwotIAotLSAgaWYgKCFkaXNwbGF5KQotLSAgICByZXR1 cm4gZmFsc2U7Ci0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotKyAgRENI RUNLKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLmhhc192YWx1ZSgpKTsKLSsgIGlmIChtYXlfdXNl X3ZhYXBpX292ZXJfeDExXy52YWx1ZSgpKSB7Ci0rICAgIGRpc3BsYXkgPSBHZXRWQURpc3BsYXlT dGF0ZVgxMShkcm1fZmRfKTsKLSsgICAgaWYgKCFkaXNwbGF5KQotKyAgICAgIHJldHVybiBmYWxz ZTsKLSsgIH0KLSsjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQot KwotKyAgaWYgKCFkaXNwbGF5KSB7Ci0rICAgIGRpc3BsYXkgPSBHZXRWQURpc3BsYXlTdGF0ZShk cm1fZmRfKTsKLSsgICAgaWYgKCFkaXNwbGF5KQotKyAgICAgIHJldHVybiBmYWxzZTsKLSsgIH0K LSAKLSAgIHZhX2Rpc3BsYXlfID0gKmRpc3BsYXk7Ci0gICBpZiAoIXZhRGlzcGxheUlzVmFsaWQo dmFfZGlzcGxheV8pKSB7Ci1AQCAtMTY1Niw2ICsxNjg3LDEzIEBACi0gICAgICAgICAgICAgICAg IGVuZm9yY2Vfc2VxdWVuY2VfYWZmaW5pdHkpOwotIH0KLSAKLSsjaWYgQlVJTERGTEFHKFNVUFBP UlRfVkFBUElfT1ZFUl9YMTEpCi0rLy8gc3RhdGljCi0rYWJzbDo6b3B0aW9uYWw8Ym9vbD4gVmFh cGlXcmFwcGVyOjpNYXlVc2VWYWFwaU92ZXJYMTEoKSB7Ci0rICByZXR1cm4gVkFEaXNwbGF5U3Rh dGU6OkdldCgpLT5NYXlVc2VWYWFwaU92ZXJYMTEoKTsKLSt9Ci0rI2VuZGlmCi0rCi0gLy8gc3Rh dGljCi0gc3RkOjp2ZWN0b3I8U1ZDU2NhbGFiaWxpdHlNb2RlPiBWYWFwaVdyYXBwZXI6OkdldFN1 cHBvcnRlZFNjYWxhYmlsaXR5TW9kZXMoCi0gICAgIFZpZGVvQ29kZWNQcm9maWxlIG1lZGlhX3By b2ZpbGUsCi1AQCAtMjY2NSwxMiArMjcwMywxMyBAQAotICAgcmV0dXJuIEV4ZWN1dGVfTG9ja2Vk KHZhX3N1cmZhY2VfaWQsIHZhX2J1ZmZlcl9pZHMpOwotIH0KLSAKLS0jaWYgQlVJTERGTEFHKFVT RV9WQUFQSV9YMTEpCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotIGJv b2wgVmFhcGlXcmFwcGVyOjpQdXRTdXJmYWNlSW50b1BpeG1hcChWQVN1cmZhY2VJRCB2YV9zdXJm YWNlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MTE6OlBp eG1hcCB4X3BpeG1hcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2Z4OjpTaXplIGRlc3Rfc2l6ZSkgewotICAgQ0hFQ0soIWVuZm9yY2Vfc2VxdWVuY2VfYWZmaW5p dHlfIHx8Ci0gICAgICAgICBzZXF1ZW5jZV9jaGVja2VyXy5DYWxsZWRPblZhbGlkU2VxdWVuY2Uo KSk7Ci0rICBDSEVDSyhNYXlVc2VWYWFwaU92ZXJYMTEoKS52YWx1ZV9vcihmYWxzZSkpOwotICAg YmFzZTo6QXV0b0xvY2tNYXliZSBhdXRvX2xvY2sodmFfbG9ja18uZ2V0KCkpOwotIAotICAgVkFT dGF0dXMgdmFfcmVzID0gdmFTeW5jU3VyZmFjZSh2YV9kaXNwbGF5XywgdmFfc3VyZmFjZV9pZCk7 Ci1AQCAtMjY4NCw3ICsyNzIzLDcgQEAKLSAgIFZBX1NVQ0NFU1NfT1JfUkVUVVJOKHZhX3Jlcywg VmFhcGlGdW5jdGlvbnM6OmtWQVB1dFN1cmZhY2UsIGZhbHNlKTsKLSAgIHJldHVybiB0cnVlOwot IH0KLS0jZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQotKyNlbmRpZiAgLy8gQlVJ TERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCi0gCi0gc3RkOjp1bmlxdWVfcHRyPFNjb3Bl ZFZBSW1hZ2U+IFZhYXBpV3JhcHBlcjo6Q3JlYXRlVmFJbWFnZSgKLSAgICAgVkFTdXJmYWNlSUQg dmFfc3VyZmFjZV9pZCwKLUBAIC0zMDg2LDcgKzMxMjUsNyBAQAotIAotICAgcGF0aHNba01vZHVs ZVZhXS5wdXNoX2JhY2soc3RkOjpzdHJpbmcoImxpYnZhLnNvLiIpICsgdmFfc3VmZml4KTsKLSAg IHBhdGhzW2tNb2R1bGVWYV9kcm1dLnB1c2hfYmFjayhzdGQ6OnN0cmluZygibGlidmEtZHJtLnNv LiIpICsgdmFfc3VmZml4KTsKLS0jaWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCi0rI2lmIEJV SUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQotICAgcGF0aHNba01vZHVsZVZhX3gxMV0u cHVzaF9iYWNrKHN0ZDo6c3RyaW5nKCJsaWJ2YS14MTEuc28uIikgKyB2YV9zdWZmaXgpOwotICNl bmRpZgotICNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1NfQVNIKQotZGlmZiAtdXAgY2hyb21pdW0t MTA5LjAuNTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFw X296b25lLmNjLm9yaWcgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFh cGlfcGljdHVyZV9uYXRpdmVfcGl4bWFwX296b25lLmNjCi0tLS0gY2hyb21pdW0tMTA5LjAuNTQx NC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFwX296b25lLmNj Lm9yaWcJMjAyMy0wMS0xMSAyMDo0NToxNy4zNDc5NDA0MjYgKzAxMDAKLSsrKyBjaHJvbWl1bS0x MDkuMC41NDE0Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBf b3pvbmUuY2MJMjAyMy0wMS0xMSAyMDo0NTo1OC4zMTQ2NzA3NTIgKzAxMDAKLUBAIC0xMDksNyAr MTA5LDcgQEAKLSAgIHVpOjpPem9uZVBsYXRmb3JtKiBwbGF0Zm9ybSA9IHVpOjpPem9uZVBsYXRm b3JtOjpHZXRJbnN0YW5jZSgpOwotICAgdWk6OlN1cmZhY2VGYWN0b3J5T3pvbmUqIGZhY3Rvcnkg PSBwbGF0Zm9ybS0+R2V0U3VyZmFjZUZhY3RvcnlPem9uZSgpOwotICAgZ2Z4OjpCdWZmZXJVc2Fn ZSBidWZmZXJfdXNhZ2UgPSBnZng6OkJ1ZmZlclVzYWdlOjpTQ0FOT1VUX1ZEQV9XUklURTsKLS0j aWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCi0rI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJ X09WRVJfWDExKQotICAgLy8gVGhlICdWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3InIHJlcXVp cmVzIHRoZSBWUFAgdG8gZG93bmxvYWQgdGhlIGRlY29kZWQKLSAgIC8vIGZyYW1lIGZyb20gdGhl IGludGVybmFsIHN1cmZhY2UgdG8gdGhlIGFsbG9jYXRlZCBuYXRpdmUgcGl4bWFwLgotICAgLy8g J1NDQU5PVVRfVkRBX1dSSVRFJyBpcyB1c2VkIGZvciAnWVVWXzQyMF9CSVBMQU5BUicgb24gQ2hy b21lT1M7IEZvciBMaW51eCwKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAtQ2FudmFzUmVzb3Vy Y2VQcm92aWRlci1wcmFnbWEucGF0Y2ggYi9jaHJvbWl1bS0xMTAtQ2FudmFzUmVzb3VyY2VQcm92 aWRlci1wcmFnbWEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTcz MmU0OQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTExMC1DYW52YXNSZXNvdXJjZVByb3Zp ZGVyLXByYWdtYS5wYXRjaApAQCAtMCwwICsxLDQxIEBACitGcm9tIDNlMWU4NmFjODgyYWUwY2U0 YjllYzUwODM0YTRmZjhiZWNkOTEyYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBT dGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitEYXRlOiBNb24sIDE5IERl YyAyMDIyIDE2OjU5OjQ2ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEdDQzogbW92ZSBwcmFnbWFz IGluIGJsaW5rOjpDYW52YXNSZXNvdXJjZVByb3ZpZGVyCisKK0dDQyBkb2VzIG5vdCBhbGxvdyB1 c2luZyAjcHJhZ21hIGluc2lkZSBhbiBlbnVtLgorCitCdWc6IDgxOTI5NAorQ2hhbmdlLUlkOiBJ NjM3YjVhNjE2YjA4MGQxN2JiNzE5YWFlOWVjOGNmMDZkMGY4YzQ2NAorUmV2aWV3ZWQtb246IGh0 dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80 MTExODQ4CitSZXZpZXdlZC1ieTogU3RlcGhlbiBDaGVubmV5IDxzY2hlbm5leUBjaHJvbWl1bS5v cmc+CitDb21taXQtUXVldWU6IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNv bT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4NDk4M30KKy0tLQor CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhp Y3MvY2FudmFzX3Jlc291cmNlX3Byb3ZpZGVyLmggYi90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJl ci9wbGF0Zm9ybS9ncmFwaGljcy9jYW52YXNfcmVzb3VyY2VfcHJvdmlkZXIuaAoraW5kZXggZTg5 ODM5N2YuLjIxNGFiMDEgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9w bGF0Zm9ybS9ncmFwaGljcy9jYW52YXNfcmVzb3VyY2VfcHJvdmlkZXIuaAorKysrIGIvdGhpcmRf cGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhpY3MvY2FudmFzX3Jlc291cmNlX3By b3ZpZGVyLmgKK0BAIC02OCw2ICs2OCw4IEBACisgIHB1YmxpYzoKKyAgIC8vIFRoZXNlIHZhbHVl cyBhcmUgcGVyc2lzdGVkIHRvIGxvZ3MuIEVudHJpZXMgc2hvdWxkIG5vdCBiZSByZW51bWJlcmVk IGFuZAorICAgLy8gbnVtZXJpYyB2YWx1ZXMgc2hvdWxkIG5ldmVyIGJlIHJldXNlZC4KKysjcHJh Z21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQg Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICBlbnVtIFJlc291cmNlUHJvdmlkZXJUeXBl IHsKKyAgICAga1RleHR1cmUgW1tkZXByZWNhdGVkXV0gPSAwLAorICAgICBrQml0bWFwID0gMSwK K0BAIC03OSwxMSArODEsOSBAQAorICAgICBrUGFzc1Rocm91Z2ggPSA3LAorICAgICBrU3dhcENo YWluID0gOCwKKyAgICAga1NraWFEYXduU2hhcmVkSW1hZ2UgW1tkZXByZWNhdGVkXV0gPSA5LAor LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAga01heFZhbHVlID0ga1NraWFE YXduU2hhcmVkSW1hZ2UsCistI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAgIH07CisrI3By YWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAKKyAgIC8vIFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVy cyBhdHRlbXB0IHRvIHJlYWNoIGEgY29tcHJvbWlzZSBiZXR3ZWVuIG5vdCBmbHVzaGluZworICAg Ly8gdG9vIG9mdGVuLCBhbmQgbm90IGFjY3VtdWxhdGluZyBhbiB1bnJlYXNvbmFibGUgYmFja2xv Zy4gIEZsdXNoaW5nIHRvbwoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExMC1DcmVkZW50aWFsVUlF bnRyeS1jb25zdC5wYXRjaCBiL2Nocm9taXVtLTExMC1DcmVkZW50aWFsVUlFbnRyeS1jb25zdC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjY4YWEyCi0tLSAvZGV2 L251bGwKKysrIGIvY2hyb21pdW0tMTEwLUNyZWRlbnRpYWxVSUVudHJ5LWNvbnN0LnBhdGNoCkBA IC0wLDAgKzEsNDEgQEAKK0Zyb20gYjRlNTZkMjIyNzVjYWU1YTkxMDQ2M2E5NjZhOTYzNDU0MzBh ODNlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEl2YW4gTXVyYXNob3YgPGl2YW4u bXVyYXNob3ZAbGdlLmNvbT4KK0RhdGU6IFNhdCwgMTcgRGVjIDIwMjIgMTI6MDY6MDEgKzAwMDAK K1N1YmplY3Q6IFtQQVRDSF0gbGlic3RkYysrOiBEb24ndCB1c2UgY29uc3QgbWVtYmVycyBpbiBz dGQ6OnZlY3RvciBpbiBwYXNzd29yZF9tYW5hZ2VyOjpDcmVkZW50aWFsVUlFbnRyeQorCitPdGhl cndpc2UgYnVpbGQgZmFpbHMgd2hlbiBidWlsZGluZyB3aXRoIHVzZV9jdXN0b21fbGliY3h4PWZh bHNlLgorVGhlIGVycm9yIGV4YW1wbGU6CitzdGQ6OnZlY3RvciBtdXN0IGhhdmUgYSBub24tY29u c3QsIG5vbi12b2xhdGlsZSB2YWx1ZV90eXBlCisKK0ltcGxlbWVudGF0aW9uIG9mIHN0ZDo6dmVj dG9yIGluIGxpYnN0ZGMrKyBkb2VzIG5vdCBhbGxvdyBjb25zdC4KKworQnVnOiA5NTc1MTkKK0No YW5nZS1JZDogSTA4OWRlMmQ1MmRmMjUxMzhkNzRkYmYwMWZkZjYxZDYzMDFiNGQ4NzEKK1Jldmll d2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21p dW0vc3JjLysvNDExMTAzNworUmV2aWV3ZWQtYnk6IE1vaGFtZWQgQW1pciBZb3NlZiA8bWFtaXJA Y2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBNb2hhbWVkIEFtaXIgWW9zZWYgPG1hbWlyQGNo cm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4NDY5 N30KKy0tLQorCitkaWZmIC0tZ2l0IGEvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2NvcmUv YnJvd3Nlci91aS9jcmVkZW50aWFsX3VpX2VudHJ5LmNjIGIvY29tcG9uZW50cy9wYXNzd29yZF9t YW5hZ2VyL2NvcmUvYnJvd3Nlci91aS9jcmVkZW50aWFsX3VpX2VudHJ5LmNjCitpbmRleCAxZTA3 NjZhLi5hOWEzNGY3IDEwMDY0NAorLS0tIGEvY29tcG9uZW50cy9wYXNzd29yZF9tYW5hZ2VyL2Nv cmUvYnJvd3Nlci91aS9jcmVkZW50aWFsX3VpX2VudHJ5LmNjCisrKysgYi9jb21wb25lbnRzL3Bh c3N3b3JkX21hbmFnZXIvY29yZS9icm93c2VyL3VpL2NyZWRlbnRpYWxfdWlfZW50cnkuY2MKK0BA IC05Nyw3ICs5Nyw3IEBACisgICAvLyBGb3IgY2FzZXMgd2hlbiB0aGUgbm90ZXMgZGlmZmVyIHdp dGhpbiBncm91cGVkIHBhc3N3b3JkcyAoZS5nOiBhCisgICAvLyBjcmVkZW50aWFsIGV4aXN0cyBp biBib3RoIGFjY291bnQgYW5kIHByb2ZpbGUgc3RvcmVzKSwgcmVzcGVjdGl2ZSBub3RlcworICAg Ly8gc2hvdWxkIGJlIGNvbmNhdGVuYXRlZCBhbmQgbGluZWJyZWFrIHVzZWQgYXMgYSBkZWxpbWl0 ZXIuCistICBzdGQ6OnZlY3Rvcjxjb25zdCBzdGQ6OnUxNnN0cmluZz4gbm90ZXNfd2l0aF9kdXBs aWNhdGVzOworKyAgc3RkOjp2ZWN0b3I8c3RkOjp1MTZzdHJpbmc+IG5vdGVzX3dpdGhfZHVwbGlj YXRlczsKKyAgIGZvciAoY29uc3QgYXV0byYgZm9ybSA6IGZvcm1zKSB7CisgICAgIC8vIE9ubHkg bm90ZXMgd2l0aCBhbiBlbXB0eSBgdW5pcXVlX2Rpc3BsYXlfbmFtZWAgYXJlIHN1cHBvcnRlZCBp biB0aGUKKyAgICAgLy8gc2V0dGluZ3MgVUkuCitAQCAtMTA5LDcgKzEwOSw3IEBACisgICB9Cisg ICBhdXRvIHVuaXF1ZV9ub3RlcyA9CisgICAgICAgYmFzZTo6TWFrZUZsYXRTZXQ8c3RkOjp1MTZz dHJpbmc+KHN0ZDo6bW92ZShub3Rlc193aXRoX2R1cGxpY2F0ZXMpKTsKKy0gIG5vdGUgPSBiYXNl OjpKb2luU3RyaW5nKHN0ZDo6dmVjdG9yPGNvbnN0IHN0ZDo6dTE2c3RyaW5nPigKKysgIG5vdGUg PSBiYXNlOjpKb2luU3RyaW5nKHN0ZDo6dmVjdG9yPHN0ZDo6dTE2c3RyaW5nPigKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVfbm90ZXMuYmVnaW4oKSwgdW5pcXVlX25vdGVz LmVuZCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHUiXG4iKTsKKyAKCmRpZmYgLS1n aXQgYS9jaHJvbWl1bS0xMTAtRGFya01vZGVMQUJDb2xvclNwYWNlLXBvdy5wYXRjaCBiL2Nocm9t aXVtLTExMC1EYXJrTW9kZUxBQkNvbG9yU3BhY2UtcG93LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjkxZjFhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0x MTAtRGFya01vZGVMQUJDb2xvclNwYWNlLXBvdy5wYXRjaApAQCAtMCwwICsxLDM3IEBACitGcm9t IDc5NWMzMTFhYWU0YjcxODU4NWJjNjE5NDE4OWYwNjEwMDBjODIzYTEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+ CitEYXRlOiBGcmksIDIzIERlYyAyMDIyIDE0OjI4OjU1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hd IGxpYnN0ZGMrKzogZml4IG5hcnJvd2luZyBpbiBibGluazo6RGFya01vZGVMQUJDb2xvclNwYWNl CisKK0NsYW5nLTE0IGVycm9ycyBvdXQgd2l0aCBuYXJyb3dpbmcgZnJvbSBkb3VibGUgdG8gZmxv YXQuIFVzZSBzdGQ6OnBvdworaW5zdGVhZC4KKy0tLQorIC4uLi9yZW5kZXJlci9wbGF0Zm9ybS9n cmFwaGljcy9kYXJrX21vZGVfbGFiX2NvbG9yX3NwYWNlLmggICB8IDUgKysrLS0KKyAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhpY3MvZGFya19tb2RlX2xh Yl9jb2xvcl9zcGFjZS5oIGIvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3Jh cGhpY3MvZGFya19tb2RlX2xhYl9jb2xvcl9zcGFjZS5oCitpbmRleCA5OTljM2U1Li5jMThlYTdi IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vZ3JhcGhp Y3MvZGFya19tb2RlX2xhYl9jb2xvcl9zcGFjZS5oCisrKysgYi90aGlyZF9wYXJ0eS9ibGluay9y ZW5kZXJlci9wbGF0Zm9ybS9ncmFwaGljcy9kYXJrX21vZGVfbGFiX2NvbG9yX3NwYWNlLmgKK0BA IC0xMjUsNyArMTI1LDcgQEAgY2xhc3MgRGFya01vZGVMQUJDb2xvclNwYWNlIHsKKyAgIC8vIGh0 dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NJRUxBQl9jb2xvcl9zcGFjZSNSZXZlcnNlX3Ry YW5zZm9ybWF0aW9uLgorICAgU2tWMyBGcm9tWFlaKGNvbnN0IFNrVjMmIHYpIGNvbnN0IHsKKyAg ICAgYXV0byBmID0gW10oZmxvYXQgeCkgeworLSAgICAgIHJldHVybiB4ID4ga1NpZ21hMyA/IHBv dyh4LCAxLjBmIC8gMy4wZikKKysgICAgICByZXR1cm4geCA+IGtTaWdtYTMgPyBzdGQ6OnBvdyh4 LCAxLjBmIC8gMy4wZikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiB4IC8gKDMgKiBrU2ln bWEyKSArIDQuMGYgLyAyOS4wZjsKKyAgICAgfTsKKyAKK0BAIC0xNDUsNyArMTQ1LDggQEAgY2xh c3MgRGFya01vZGVMQUJDb2xvclNwYWNlIHsKKyAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL0NJRUxBQl9jb2xvcl9zcGFjZSNGb3J3YXJkX3RyYW5zZm9ybWF0aW9uLgorICAgU2tW MyBUb1hZWihjb25zdCBTa1YzJiBsYWIpIGNvbnN0IHsKKyAgICAgYXV0byBpbnZmID0gW10oZmxv YXQgeCkgeworLSAgICAgIHJldHVybiB4ID4ga1NpZ21hID8gcG93KHgsIDMuMGYpIDogMy4wZiAq IGtTaWdtYTIgKiAoeCAtIDQuMGYgLyAyOS4wZik7CisrICAgICAgcmV0dXJuIHggPiBrU2lnbWEg PyBzdGQ6OnBvdyh4LCAzLjBmKQorKyAgICAgICAgICAgICAgICAgICAgICAgIDogMy4wZiAqIGtT aWdtYTIgKiAoeCAtIDQuMGYgLyAyOS4wZik7CisgICAgIH07CisgCisgICAgIFNrVjMgdiA9IHtD bGFtcChsYWIueCwgMC4wZiwgMTAwLjBmKSwgQ2xhbXAobGFiLnksIC0xMjguMGYsIDEyOC4wZiks CistLSAKKzIuMzguMgorCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTEwLUluUHJvZ3Jlc3NEb3du bG9hZE1hbmFnZXItaW5jbHVkZS5wYXRjaCBiL2Nocm9taXVtLTExMC1JblByb2dyZXNzRG93bmxv YWRNYW5hZ2VyLWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYWRjNTFkYgotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTExMC1JblByb2dyZXNzRG93 bmxvYWRNYW5hZ2VyLWluY2x1ZGUucGF0Y2gKQEAgLTAsMCArMSwzMCBAQAorRnJvbSA2MzAyN2M2 MmVhYTFiNmM1YjBkMjc2MmE1MTFmMTYxMWIxNWQzNzI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0ZTog TW9uLCAxOSBEZWMgMjAyMiAxMzo1NjoxNyArMDAwMAorU3ViamVjdDogW1BBVENIXSBsaWJzdGRj Kys6IGZpeCBpbmNvbXBsZXRlIHR5cGUgb2YgZG93bmxvYWQ6OkluUHJvZ3Jlc3NEb3dubG9hZE1h bmFnZXIKKworRGVzdHJ1Y3RvciBvZiBzdGQ6OnVuaXF1ZV9wdHIgaW4gbGlic3RkYysrIHVzZXMg c2l6ZW9mKCkgd2hpY2gKK3JlcXVpcmVzIGZ1bGwgZGVmaW5pdGlvbiBvZiBkb3dubG9hZDo6SW5Q cm9ncmVzc0Rvd25sb2FkTWFuYWdlcgorZm9yIHJldHVybiB0eXBlIG9mIGNvbnRlbnQ6OkJyb3dz ZXJDb250ZXh0OjoKK1JldHJpZXZlSW5Qcm9ncmVzc0Rvd25sb2FkTWFuYWdlcigpLgorCitCdWc6 IDk1NzUxOQorQ2hhbmdlLUlkOiBJZjk5YWE4ZDUyMjM4YmFjYjFjYjU1OWEzMDBlMTRlZDNhMDVi NzI5NworUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5j b20vYy9jaHJvbWl1bS9zcmMvKy80MTExNTI2CitSZXZpZXdlZC1ieTogQm8gTGl1IDxib2xpdUBj aHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29n bGVtYWlsLmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4NDky NH0KKy0tLQorCitkaWZmIC0tZ2l0IGEvY29udGVudC9icm93c2VyL2Jyb3dzZXJfY29udGV4dC5j YyBiL2NvbnRlbnQvYnJvd3Nlci9icm93c2VyX2NvbnRleHQuY2MKK2luZGV4IDYxODA5NjkuLjIy ZTlkYmIgMTAwNjQ0CistLS0gYS9jb250ZW50L2Jyb3dzZXIvYnJvd3Nlcl9jb250ZXh0LmNjCisr KysgYi9jb250ZW50L2Jyb3dzZXIvYnJvd3Nlcl9jb250ZXh0LmNjCitAQCAtMzAsNiArMzAsNyBA QAorICNpbmNsdWRlICJiYXNlL3VuZ3Vlc3NhYmxlX3Rva2VuLmgiCisgI2luY2x1ZGUgImJ1aWxk L2J1aWxkX2NvbmZpZy5oIgorICNpbmNsdWRlICJidWlsZC9jaHJvbWVvc19idWlsZGZsYWdzLmgi CisrI2luY2x1ZGUgImNvbXBvbmVudHMvZG93bmxvYWQvcHVibGljL2NvbW1vbi9pbl9wcm9ncmVz c19kb3dubG9hZF9tYW5hZ2VyLmgiCisgI2luY2x1ZGUgImNvbXBvbmVudHMvc2VydmljZXMvc3Rv cmFnZS9wcml2aWxlZ2VkL21vam9tL2luZGV4ZWRfZGJfY29udHJvbC5tb2pvbS5oIgorICNpbmNs dWRlICJjb250ZW50L2Jyb3dzZXIvYmxvYl9zdG9yYWdlL2Nocm9tZV9ibG9iX3N0b3JhZ2VfY29u dGV4dC5oIgorICNpbmNsdWRlICJjb250ZW50L2Jyb3dzZXIvYnJvd3Nlcl9jb250ZXh0X2ltcGwu aCIKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAtTmF0aXZlVGhlbWVCYXNlLWZhYnMucGF0Y2gg Yi9jaHJvbWl1bS0xMTAtTmF0aXZlVGhlbWVCYXNlLWZhYnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYzdkMGU4YgotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVt LTExMC1OYXRpdmVUaGVtZUJhc2UtZmFicy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDA3 ZjBhODdlNDQwOWYyNzg1NGIzYTFkMTdmMjcwYTM0OTdmMzg5NDcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitE YXRlOiBNb24sIDE5IERlYyAyMDIyIDE5OjA3OjM3ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEdD QzogdXNlIGZhYnNmIGluIHVpOjpOYXRpdmVUaGVtZUJhc2U6Ok91dGxpbmVDb2xvcgorCitUZW1w bGF0ZSBkZWR1Y3Rpb24gZmFpbHMgZm9yIGJhc2U6OmNsYW1wLCBiZWNhdXNlIHJldHVybiB0eXBl IG9mCitmYWJzIGlzIGRvdWJsZSBhbmQgYWxsIG90aGVyIHBhcmFtZXRlcnMgYXJlIGZsb2F0Lgor CitCdWc6IDgxOTI5NAorQ2hhbmdlLUlkOiBJMzRmMWM5Yzk5ZDEzZjY5MDk3ZDg5OWJmY2IwNTI2 Y2JkZjRmZTFjMQorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80MTEwODY5CitSZXZpZXdlZC1ieTogUGV0ZXIgS2Fz dGluZyA8cGthc3RpbmdAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBTdGVwaGFuIEhhcnRt YW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVh ZHMvbWFpbkB7IzEwODUwMzR9CistLS0KKworZGlmZiAtLWdpdCBhL3VpL25hdGl2ZV90aGVtZS9u YXRpdmVfdGhlbWVfYmFzZS5jYyBiL3VpL25hdGl2ZV90aGVtZS9uYXRpdmVfdGhlbWVfYmFzZS5j YworaW5kZXggMTY5YzYwYy4uMzZkYjQ5YSAxMDA2NDQKKy0tLSBhL3VpL25hdGl2ZV90aGVtZS9u YXRpdmVfdGhlbWVfYmFzZS5jYworKysrIGIvdWkvbmF0aXZlX3RoZW1lL25hdGl2ZV90aGVtZV9i YXNlLmNjCitAQCAtMTMzNiw3ICsxMzM2LDcgQEAKKyAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBo YXMgYmVlbiB0ZXN0ZWQgdG8gbG9vayBPSyB3aXRoIGFsbCBvZiB0aGUKKyAgIC8vIGRlZmF1bHQg R1RLIHRoZW1lcy4KKyAgIFNrU2NhbGFyIG1pbl9kaWZmID0gYmFzZTo6Y2xhbXAoKGhzdjFbMV0g KyBoc3YyWzFdKSAqIDEuMmYsIDAuMjhmLCAwLjVmKTsKKy0gIFNrU2NhbGFyIGRpZmYgPSBiYXNl OjpjbGFtcChmYWJzKGhzdjFbMl0gLSBoc3YyWzJdKSAvIDIsIG1pbl9kaWZmLCAwLjVmKTsKKysg IFNrU2NhbGFyIGRpZmYgPSBiYXNlOjpjbGFtcChmYWJzZihoc3YxWzJdIC0gaHN2MlsyXSkgLyAy LCBtaW5fZGlmZiwgMC41Zik7CisgCisgICBpZiAoaHN2MVsyXSArIGhzdjJbMl0gPiAxLjApCisg ICAgIGRpZmYgPSAtZGlmZjsKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAtUHJlc2VudGVyLWlu Y2x1ZGUucGF0Y2ggYi9jaHJvbWl1bS0xMTAtUHJlc2VudGVyLWluY2x1ZGUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NmYjg0YgotLS0gL2Rldi9udWxsCisrKyBi L2Nocm9taXVtLTExMC1QcmVzZW50ZXItaW5jbHVkZS5wYXRjaApAQCAtMCwwICsxLDI2IEBACitG cm9tIGM2OWI4MThhOWZjZTJiZjBmYjgxYjI4MGQ2ZjRjYzE1ZTZmZGI4YWYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTdGVwaGFuIEhhcnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5j b20+CitEYXRlOiBGcmksIDE2IERlYyAyMDIyIDE3OjEzOjQzICswMDAwCitTdWJqZWN0OiBbUEFU Q0hdIEdDQzogZml4IGluY29tcGxldGUgdHlwZSBvZiBnbDo6UHJlc2VudGVyCisKK0dDQyByZXF1 aXJlcyBmdWxsIGRlZmluaXRpb24gb2YgZ2w6OlByZXNlbnRlciBmb3IgcmV0dXJuIHR5cGUKK29m IGdsOjpHTE96b25lRUdMOjpDcmVhdGVHTENvbnRleHQoKSB3aXRoIGJhc2U6OnNjb3BlZF9yZWZw dHIuCistLS0KKyB1aS9vem9uZS9jb21tb24vZ2xfb3pvbmVfZWdsLmNjIHwgMSArCisgMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS91aS9vem9uZS9jb21tb24v Z2xfb3pvbmVfZWdsLmNjIGIvdWkvb3pvbmUvY29tbW9uL2dsX296b25lX2VnbC5jYworaW5kZXgg OWIxZDM3ZS4uZTc0NWRkNyAxMDA2NDQKKy0tLSBhL3VpL296b25lL2NvbW1vbi9nbF9vem9uZV9l Z2wuY2MKKysrKyBiL3VpL296b25lL2NvbW1vbi9nbF9vem9uZV9lZ2wuY2MKK0BAIC0xMyw2ICsx Myw3IEBACisgI2luY2x1ZGUgInVpL2dsL2dsX3NoYXJlX2dyb3VwLmgiCisgI2luY2x1ZGUgInVp L2dsL2dsX3N1cmZhY2UuaCIKKyAjaW5jbHVkZSAidWkvZ2wvZ2xfdXRpbHMuaCIKKysjaW5jbHVk ZSAidWkvZ2wvcHJlc2VudGVyLmgiCisgCisgbmFtZXNwYWNlIHVpIHsKKyAKKy0tIAorMi4zNy40 CisKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTAtU3RvcmFnZVF1ZXVlLWRlY2x0eXBlLnBhdGNo IGIvY2hyb21pdW0tMTEwLVN0b3JhZ2VRdWV1ZS1kZWNsdHlwZS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDBlNjZjCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21p dW0tMTEwLVN0b3JhZ2VRdWV1ZS1kZWNsdHlwZS5wYXRjaApAQCAtMCwwICsxLDc0IEBACitGcm9t IDIwMGZjN2MzZWM5NWJjODZmNmFmYjU1Y2EzYzY5MWU5MjM0NjMxMDQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBMZW9uaWQgQmFyYXogPGxiYXJhekBjaHJvbWl1bS5vcmc+CitEYXRl OiBNb24sIDE5IERlYyAyMDIyIDIxOjQ2OjA0ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIEdDQzog Zml4IHVzYWdlIG9mIGRlY2x0eXBlIGluIHJlcG9ydGluZzo6U3RvcmFnZVF1ZXVlCisKK0dDQyBk b2VzIG5vdCBhbGxvdyB0byB1c2UgZGVjbHR5cGUgZm9yIHRoZSBkZWZhdWx0IHZhbHVlIG9mCith IGZ1bmN0aW9uIHBhcmFtZXRlci4KKworQnVnOiA4MTkyOTQKK0NoYW5nZS1JZDogSTdlYmIyNTU2 MzQzNzVjZTg4OTkzM2Y4YjY3YWNiMTBmMGU1NmNhOGQKK1Jldmlld2VkLW9uOiBodHRwczovL2No cm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNDExMTU0OAor UmV2aWV3ZWQtYnk6IExlb25pZCBCYXJheiA8bGJhcmF6QGNocm9taXVtLm9yZz4KK0NvbW1pdC1R dWV1ZTogTGVvbmlkIEJhcmF6IDxsYmFyYXpAY2hyb21pdW0ub3JnPgorUmV2aWV3ZWQtYnk6IEhv bmcgWHUgPHh1aG9uZ0Bnb29nbGUuY29tPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRz L21haW5AeyMxMDg1MTI5fQorLS0tCisKK2RpZmYgLS1naXQgYS9jb21wb25lbnRzL3JlcG9ydGlu Zy9zdG9yYWdlL3N0b3JhZ2VfcXVldWUuY2MgYi9jb21wb25lbnRzL3JlcG9ydGluZy9zdG9yYWdl L3N0b3JhZ2VfcXVldWUuY2MKK2luZGV4IGM1NDZkNTVhLi40OWUwZjJjIDEwMDY0NAorLS0tIGEv Y29tcG9uZW50cy9yZXBvcnRpbmcvc3RvcmFnZS9zdG9yYWdlX3F1ZXVlLmNjCisrKysgYi9jb21w b25lbnRzL3JlcG9ydGluZy9zdG9yYWdlL3N0b3JhZ2VfcXVldWUuY2MKK0BAIC0yMDMsNyArMjAz LDYgQEAKKyAgICAgICBlbmNyeXB0aW9uX21vZHVsZV8oZW5jcnlwdGlvbl9tb2R1bGUpLAorICAg ICAgIGNvbXByZXNzaW9uX21vZHVsZV8oY29tcHJlc3Npb25fbW9kdWxlKSB7CisgICBERVRBQ0hf RlJPTV9TRVFVRU5DRShzdG9yYWdlX3F1ZXVlX3NlcXVlbmNlX2NoZWNrZXJfKTsKKy0gIERDSEVD Syh3cml0ZV9jb250ZXh0c19xdWV1ZV8uZW1wdHkoKSk7CisgfQorIAorIFN0b3JhZ2VRdWV1ZTo6 flN0b3JhZ2VRdWV1ZSgpIHsKK0BAIC0yMTMzLDkgKzIxMzIsNyBAQAorIH0KKyAKKyB2b2lkIFN0 b3JhZ2VRdWV1ZTo6VGVzdEluamVjdEVycm9yc0Zvck9wZXJhdGlvbigKKy0gICAgYmFzZTo6UmVw ZWF0aW5nQ2FsbGJhY2s8CistICAgICAgICBTdGF0dXModGVzdDo6U3RvcmFnZVF1ZXVlT3BlcmF0 aW9uS2luZCBvcGVyYXRpb25fa2luZCwgaW50NjRfdCk+CistICAgICAgICBoYW5kbGVyKSB7Cisr ICAgIHRlc3Q6OkVycm9ySW5qZWN0aW9uSGFuZGxlclR5cGUgaGFuZGxlcikgeworICAgdGVzdF9p bmplY3Rpb25faGFuZGxlcl8gPSBoYW5kbGVyOworIH0KKyAKK2RpZmYgLS1naXQgYS9jb21wb25l bnRzL3JlcG9ydGluZy9zdG9yYWdlL3N0b3JhZ2VfcXVldWUuaCBiL2NvbXBvbmVudHMvcmVwb3J0 aW5nL3N0b3JhZ2Uvc3RvcmFnZV9xdWV1ZS5oCitpbmRleCAzOWVkZDhiLi4wNGQ1ZjlmIDEwMDY0 NAorLS0tIGEvY29tcG9uZW50cy9yZXBvcnRpbmcvc3RvcmFnZS9zdG9yYWdlX3F1ZXVlLmgKKysr KyBiL2NvbXBvbmVudHMvcmVwb3J0aW5nL3N0b3JhZ2Uvc3RvcmFnZV9xdWV1ZS5oCitAQCAtNTIs NiArNTIsOSBAQAorICAga1dyaXRlTG93RGlza1NwYWNlLAorIH07CisgCisrdXNpbmcgRXJyb3JJ bmplY3Rpb25IYW5kbGVyVHlwZSA9CisrICAgIGJhc2U6OlJlcGVhdGluZ0NhbGxiYWNrPFN0YXR1 cyh0ZXN0OjpTdG9yYWdlUXVldWVPcGVyYXRpb25LaW5kLCBpbnQ2NF90KT47CisrCisgfSAgLy8g bmFtZXNwYWNlIHRlc3QKKyAKKyAvLyBTdG9yYWdlIHF1ZXVlIHJlcHJlc2VudHMgc2luZ2xlIHF1 ZXVlIG9mIGRhdGEgdG8gYmUgY29sbGVjdGVkIGFuZCBzdG9yZWQKK0BAIC0xNDIsOCArMTQ1LDcg QEAKKyAgIC8vIGNhbiBiZSByZXR1cm5lZCBhcyBhIHJlc3VsdGluZyBvcGVyYXRpb24gc3RhdHVz IHRvby4KKyAgIC8vIElmIGBoYW5kbGVyYCBpcyBudWxsLCBlcnJvciBpbmplY3Rpb25zIGlzIGRp c2FibGVkLgorICAgdm9pZCBUZXN0SW5qZWN0RXJyb3JzRm9yT3BlcmF0aW9uKAorLSAgICAgIGJh c2U6OlJlcGVhdGluZ0NhbGxiYWNrPFN0YXR1cyh0ZXN0OjpTdG9yYWdlUXVldWVPcGVyYXRpb25L aW5kLCBpbnQ2NF90KT4KKy0gICAgICAgICAgaGFuZGxlciA9IGRlY2x0eXBlKGhhbmRsZXIpKCkp OworKyAgICAgIHRlc3Q6OkVycm9ySW5qZWN0aW9uSGFuZGxlclR5cGUgaGFuZGxlciA9IGJhc2U6 Ok51bGxDYWxsYmFjaygpKTsKKyAKKyAgIC8vIEFjY2VzcyBxdWV1ZSBvcHRpb25zLgorICAgY29u c3QgUXVldWVPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gb3B0aW9uc187IH0KK0BA IC00OTIsOCArNDk0LDcgQEAKKyAgIC8vIFRlc3Qgb25seTogcmVjb3JkcyBjYWxsYmFjayB0byBi ZSBpbnZva2VkLiBJdCB3aWxsIGJlIGNhbGxlZCB3aXRoIG9wZXJhdGlvbgorICAgLy8ga2luZCBh bmQgc2VxIGlkLCBhbmQgd2lsbCByZXR1cm4gU3RhdHVzIChub24tT0sgc3RhdHVzIGluZGljYXRl cyB0aGUKKyAgIC8vIGZhaWx1cmUgdG8gYmUgaW5qZWN0ZWQpLiBJbiBwcm9kdWN0aW9uIGNvZGUg bXVzdCBiZSBudWxsLgorLSAgYmFzZTo6UmVwZWF0aW5nQ2FsbGJhY2s8U3RhdHVzKHRlc3Q6OlN0 b3JhZ2VRdWV1ZU9wZXJhdGlvbktpbmQsIGludDY0X3QpPgorLSAgICAgIHRlc3RfaW5qZWN0aW9u X2hhbmRsZXJfOworKyAgdGVzdDo6RXJyb3JJbmplY3Rpb25IYW5kbGVyVHlwZSB0ZXN0X2luamVj dGlvbl9oYW5kbGVyX3tiYXNlOjpOdWxsQ2FsbGJhY2soKX07CisgCisgICAvLyBXZWFrIHBvaW50 ZXIgZmFjdG9yeSAobXVzdCBiZSBsYXN0IG1lbWJlciBpbiBjbGFzcykuCisgICBiYXNlOjpXZWFr UHRyRmFjdG9yeTxTdG9yYWdlUXVldWU+IHdlYWtwdHJfZmFjdG9yeV97dGhpc307CgpkaWZmIC0t Z2l0IGEvY2hyb21pdW0tMTEwLVN5bmNJdGVyYXRvci10ZW1wbGF0ZS5wYXRjaCBiL2Nocm9taXVt LTExMC1TeW5jSXRlcmF0b3ItdGVtcGxhdGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYzY1YzdlMgotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTExMC1TeW5j SXRlcmF0b3ItdGVtcGxhdGUucGF0Y2gKQEAgLTAsMCArMSwyOCBAQAorRnJvbSBkYTgwMjk0Mzhl YThmMDBhMTU0Y2I2YTFiYmM4MjQzZGUzOTY5MGRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0ZTogU3Vu LCAxOCBEZWMgMjAyMiAyMjoxMTo1OCArMDAwMAorU3ViamVjdDogW1BBVENIXSBHQ0M6IHJlbW92 ZSByZWR1bmRhbnQgdGVtcGxhdGUgcGFyYW1ldGVyIGZyb20gU3luY0l0ZXJhdG9yCisKK0dDQyAx MiBpbiBDKysyMCBtb2RlIGRvZXMgbm90IGFsbG93IHRoaXMgYW55bW9yZS4KKworQnVnOiA4MTky OTQKK0NoYW5nZS1JZDogSTZiMjJkMzkxOWYwOGZiNzJhNWIxZDY5ZWVhNTljNmU5NTI1OWMxNmYK K1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv Y2hyb21pdW0vc3JjLysvNDExMTU0NworQ29tbWl0LVF1ZXVlOiBTdGVwaGFuIEhhcnRtYW5uIDxz dGhhMDlAZ29vZ2xlbWFpbC5jb20+CitSZXZpZXdlZC1ieTogS2VudGFybyBIYXJhIDxoYXJha2Vu QGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4 NDgwOH0KKy0tLQorCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmlu ZGluZ3Mvc2NyaXB0cy9iaW5kX2dlbi9zeW5jX2l0ZXJhdG9yLnB5IGIvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvYmluZGluZ3Mvc2NyaXB0cy9iaW5kX2dlbi9zeW5jX2l0ZXJhdG9yLnB5Citp bmRleCAxZDY3ZmEyLi45Y2VjNTA5NCAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L2JsaW5rL3Jl bmRlcmVyL2JpbmRpbmdzL3NjcmlwdHMvYmluZF9nZW4vc3luY19pdGVyYXRvci5weQorKysrIGIv dGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvYmluZGluZ3Mvc2NyaXB0cy9iaW5kX2dlbi9zeW5j X2l0ZXJhdG9yLnB5CitAQCAtMzYsNyArMzYsNyBAQAorICAgICAgICAgICAgICAgICAgICAgICAg bWVtYmVyX2luaXRpYWxpemVyX2xpc3Q9WworICAgICAgICAgICAgICAgICAgICAgICAgICAgICIk e2Jhc2VfY2xhc3NfbmFtZX0oc291cmNlLCBraW5kKSIsCisgICAgICAgICAgICAgICAgICAgICAg ICBdKSwKKy0gICAgICAgIEN4eEZ1bmNEZWNsTm9kZShuYW1lPSJ+JHtjbGFzc19uYW1lfSIsCisr ICAgICAgICBDeHhGdW5jRGVjbE5vZGUobmFtZT0iflN5bmNJdGVyYXRvciIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgYXJnX2RlY2xzPVtdLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl90eXBlPSIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlPVRydWUsCgpk aWZmIC0tZ2l0IGEvY2hyb21pdW0tMTEwLWRwZi1hcm02NC5wYXRjaCBiL2Nocm9taXVtLTExMC1k cGYtYXJtNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTRiYTg3 YgotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTExMC1kcGYtYXJtNjQucGF0Y2gKQEAgLTAs MCArMSw5NCBAQAorRnJvbSBkZjcyOGQyZTJmZTgyODQzMTZlZDA4M2M1YTIxMGJjYTFlNTA5ODZl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSm9zZSBEYXBlbmEgUGF6IDxqZGFwZW5h QGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE2IEphbiAyMDIzIDEyOjUzOjIxICswMTAwCitTdWJq ZWN0OiBbUEFUQ0hdIEdDQzogZml4IGRpc3RyaWJ1dGVkIHBvaW50IGZ1bmN0aW9ucyBidWlsZCBp biBBUk02NCB3aXRoIFNWRQorCitTVkUgYnVpbGQgaXMgYnJva2VuIGluIEFSTTY0LCBiZWNhdXNl IGRpc3RyaWJ1dGVkX3BvaW50X2Z1bmN0aW9ucworaXMgdHJ5aW5nIHRvIHVzZSBvcGVyYXRvciYg YW5kIG9wZXJhdG9yfC4KKworQnVnOjgxOTI5NAorQ2hhbmdlLUlkOiBJNDY1ZWZhNDc1ZWQ1OTAz MWEyY2ZhZjQxNzJlZjlmYmQ4YmIwNTA1MAorLS0tCisgZHBmL2ludGVybmFsL2V2YWx1YXRlX3By Z19od3kuY2MgfCAzNCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBj aGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2RwZi9pbnRlcm5hbC9ldmFsdWF0ZV9wcmdfaHd5LmNjIGIvZHBmL2ludGVybmFsL2V2YWx1YXRl X3ByZ19od3kuY2MKK2luZGV4IDNkNzQzZjQuLmExZGQ4ZTAgMTAwNjQ0CistLS0gYS8vdGhpcmRf cGFydHkvZGlzdHJpYnV0ZWRfcG9pbnRfZnVuY3Rpb25zL2NvZGUvZHBmL2ludGVybmFsL2V2YWx1 YXRlX3ByZ19od3kuY2MKKysrKyBiLy90aGlyZF9wYXJ0eS9kaXN0cmlidXRlZF9wb2ludF9mdW5j dGlvbnMvY29kZS9kcGYvaW50ZXJuYWwvZXZhbHVhdGVfcHJnX2h3eS5jYworQEAgLTEyNCwxNCAr MTI0LDE0IEBAIGF1dG8gSXNCaXRTZXQoRCBkLCBjb25zdCBWIGlucHV0LCBpbnQgaW5kZXgpIHsK KyAKKyAgIC8vIENvbXB1dGUgaW5wdXQgQU5EIGluZGV4XzY0IG9uIDY0LWJpdCBpbnRlZ2Vycy4K KyAgIGF1dG8gaW5wdXRfNjQgPSBobjo6Qml0Q2FzdChkNjQsIGlucHV0KTsKKy0gIGlucHV0XzY0 ICY9IGluZGV4XzY0OworKyAgaW5wdXRfNjQgPSBobjo6QW5kKGlucHV0XzY0LCBpbmRleF82NCk7 CisgCisgICAvLyBUYWtlIHRoZSBPUiBvZiBldmVyeSB0d28gYWRqYWNlbnQgNjQtYml0IGludGVn ZXJzLiBUaGlzIGVuc3VyZXMgdGhhdCBlYWNoCisgICAvLyBoYWxmIG9mIGFuIDEyOC1iaXQgYmxv Y2sgaXMgbm9uemVybyBpZmYgYXQgbGVhc3Qgb25lIGhhbGYgd2FzIG5vbnplcm8uCistICBpbnB1 dF82NCB8PSBobjo6U2h1ZmZsZTAxKGlucHV0XzY0KTsKKysgIGlucHV0XzY0ID0gaG46Ok9yKGlu cHV0XzY0LCBobjo6U2h1ZmZsZTAxKGlucHV0XzY0KSk7CisgCisgICAvLyBDb21wdXRlIGEgNjQt Yml0IG1hc2sgdGhhdCBjaGVja3Mgd2hpY2ggaW50ZWdlcnMgYXJlIG5vbnplcm8uCistICByZXR1 cm4gaW5wdXRfNjQgIT0gaG46Olplcm8oZDY0KTsKKysgIHJldHVybiBobjo6TmUoaW5wdXRfNjQs IGhuOjpaZXJvKGQ2NCkpOworIH0KKyAKKyAvLyBEdW1teSBzdHJ1Y3QgdG8gZ2V0IEhXWV9BTElH TiBhcyBhIG51bWJlciwgZm9yIHRlc3RpbmcgaWYgYW4gYXJyYXkgb2YKK0BAIC0yMzYsMjQgKzIz NiwyMCBAQCBhYnNsOjpTdGF0dXMgRXZhbHVhdGVTZWVkc0h3eSgKKyAgICAgICAvLyBBcHBseSBj b3JyZWN0aW9uLgorICAgICAgIGNvbnN0IGF1dG8gY29ycmVjdGlvbl9zZWVkID0gaG46OkxvYWRE dXAxMjgoCisgICAgICAgICAgIGQ2NCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+ KGNvcnJlY3Rpb25fc2VlZHMgKyBqKSk7CistICAgICAgdmVjXzAgXj0KKy0gICAgICAgICAgaG46 OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhjb250cm9sX21hc2tfMCwgY29ycmVjdGlv bl9zZWVkKSk7CistICAgICAgdmVjXzEgXj0KKy0gICAgICAgICAgaG46OkJpdENhc3QoZDgsIGhu OjpJZlRoZW5FbHNlWmVybyhjb250cm9sX21hc2tfMSwgY29ycmVjdGlvbl9zZWVkKSk7CistICAg ICAgdmVjXzIgXj0KKy0gICAgICAgICAgaG46OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVy byhjb250cm9sX21hc2tfMiwgY29ycmVjdGlvbl9zZWVkKSk7CistICAgICAgdmVjXzMgXj0KKy0g ICAgICAgICAgaG46OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhjb250cm9sX21hc2tf MywgY29ycmVjdGlvbl9zZWVkKSk7CisrICAgICAgdmVjXzAgPSBobjo6WG9yKHZlY18wLCBobjo6 Qml0Q2FzdChkOCwgaG46OklmVGhlbkVsc2VaZXJvKGNvbnRyb2xfbWFza18wLCBjb3JyZWN0aW9u X3NlZWQpKSk7CisrICAgICAgdmVjXzEgPSBobjo6WG9yKHZlY18xLCBobjo6Qml0Q2FzdChkOCwg aG46OklmVGhlbkVsc2VaZXJvKGNvbnRyb2xfbWFza18xLCBjb3JyZWN0aW9uX3NlZWQpKSk7Cisr ICAgICAgdmVjXzIgPSBobjo6WG9yKHZlY18yLCBobjo6Qml0Q2FzdChkOCwgaG46OklmVGhlbkVs c2VaZXJvKGNvbnRyb2xfbWFza18yLCBjb3JyZWN0aW9uX3NlZWQpKSk7CisrICAgICAgdmVjXzMg PSBobjo6WG9yKHZlY18zLCBobjo6Qml0Q2FzdChkOCwgaG46OklmVGhlbkVsc2VaZXJvKGNvbnRy b2xfbWFza18zLCBjb3JyZWN0aW9uX3NlZWQpKSk7CisgCisgICAgICAgLy8gRXh0cmFjdCBjb250 cm9sIGJpdCBmb3IgbmV4dCBsZXZlbC4KKyAgICAgICBjb25zdCBhdXRvIG5leHRfY29udHJvbF9t YXNrXzAgPSBJc0JpdFNldChkOCwgdmVjXzAsIDApOworICAgICAgIGNvbnN0IGF1dG8gbmV4dF9j b250cm9sX21hc2tfMSA9IElzQml0U2V0KGQ4LCB2ZWNfMSwgMCk7CisgICAgICAgY29uc3QgYXV0 byBuZXh0X2NvbnRyb2xfbWFza18yID0gSXNCaXRTZXQoZDgsIHZlY18yLCAwKTsKKyAgICAgICBj b25zdCBhdXRvIG5leHRfY29udHJvbF9tYXNrXzMgPSBJc0JpdFNldChkOCwgdmVjXzMsIDApOwor LSAgICAgIHZlY18wICY9IGNsZWFyX2xvd2VzdF9iaXQ7CistICAgICAgdmVjXzEgJj0gY2xlYXJf bG93ZXN0X2JpdDsKKy0gICAgICB2ZWNfMiAmPSBjbGVhcl9sb3dlc3RfYml0OworLSAgICAgIHZl Y18zICY9IGNsZWFyX2xvd2VzdF9iaXQ7CisrICAgICAgdmVjXzAgPSBobjo6QW5kKHZlY18wLCBj bGVhcl9sb3dlc3RfYml0KTsKKysgICAgICB2ZWNfMSA9IGhuOjpBbmQodmVjXzEsIGNsZWFyX2xv d2VzdF9iaXQpOworKyAgICAgIHZlY18yID0gaG46OkFuZCh2ZWNfMiwgY2xlYXJfbG93ZXN0X2Jp dCk7CisrICAgICAgdmVjXzMgPSBobjo6QW5kKHZlY18zLCBjbGVhcl9sb3dlc3RfYml0KTsKKyAK KyAgICAgICAvLyBQZXJmb3JtIGNvbnRyb2wgYml0IGNvcnJlY3Rpb24uCisgICAgICAgY29uc3Qg YXV0byBjb3JyZWN0aW9uX2NvbnRyb2xfbWFza19sZWZ0ID0KK0BAIC0zMjEsMTAgKzMxNywxMCBA QCBhYnNsOjpTdGF0dXMgRXZhbHVhdGVTZWVkc0h3eSgKKyAgICAgICAvLyBBcHBseSBjb3JyZWN0 aW9uLgorICAgICAgIGNvbnN0IGF1dG8gY29ycmVjdGlvbl9zZWVkID0gaG46OkxvYWREdXAxMjgo CisgICAgICAgICAgIGQ2NCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGNvcnJl Y3Rpb25fc2VlZHMgKyBqKSk7CistICAgICAgdmVjIF49IGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZU aGVuRWxzZVplcm8oY29udHJvbF9tYXNrLCBjb3JyZWN0aW9uX3NlZWQpKTsKKysgICAgICB2ZWMg PSBobjo6WG9yKHZlYywgaG46OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhjb250cm9s X21hc2ssIGNvcnJlY3Rpb25fc2VlZCkpKTsKKyAgICAgICAvLyBFeHRyYWN0IGNvbnRyb2wgYml0 IGZvciBuZXh0IGxldmVsLgorICAgICAgIGNvbnN0IGF1dG8gbmV4dF9jb250cm9sX21hc2sgPSBJ c0JpdFNldChkOCwgdmVjLCAwKTsKKy0gICAgICB2ZWMgJj0gY2xlYXJfbG93ZXN0X2JpdDsKKysg ICAgICB2ZWMgPSBobjo6QW5kKHZlYywgY2xlYXJfbG93ZXN0X2JpdCk7CisgCisgICAgICAgLy8g UGVyZm9ybSBjb250cm9sIGJpdCBjb3JyZWN0aW9uLgorICAgICAgIGNvbnN0IGF1dG8gY29ycmVj dGlvbl9jb250cm9sX21hc2tfbGVmdCA9CitAQCAtMzc2LDkgKzM3Miw5IEBAIGFic2w6OlN0YXR1 cyBFdmFsdWF0ZVNlZWRzSHd5KAorICAgICAgIC8vIFBlcmZvcm0gc2VlZCBjb3JyZWN0aW9uLgor ICAgICAgIGNvbnN0IGF1dG8gY29ycmVjdGlvbl9zZWVkID0gaG46OkxvYWREdXAxMjgoCisgICAg ICAgICAgIGQ2NCwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGNvcnJlY3Rpb25f c2VlZHMgKyBqKSk7CistICAgICAgdmVjIF49IGhuOjpCaXRDYXN0KGQ4LCBobjo6SWZUaGVuRWxz ZVplcm8oY29udHJvbF9tYXNrLCBjb3JyZWN0aW9uX3NlZWQpKTsKKysgICAgICB2ZWMgPSBobjo6 WG9yKHZlYywgaG46OkJpdENhc3QoZDgsIGhuOjpJZlRoZW5FbHNlWmVybyhjb250cm9sX21hc2ss IGNvcnJlY3Rpb25fc2VlZCkpKTsKKyAgICAgICBjb25zdCBhdXRvIG5leHRfY29udHJvbF9tYXNr ID0gSXNCaXRTZXQoZDgsIHZlYywgMCk7CistICAgICAgdmVjICY9IGNsZWFyX2xvd2VzdF9iaXQ7 CisrICAgICAgdmVjID0gaG46OkFuZCh2ZWMsIGNsZWFyX2xvd2VzdF9iaXQpOworICAgICAgIGNv bnN0IGF1dG8gY29ycmVjdGlvbl9jb250cm9sX21hc2tfbGVmdCA9CisgICAgICAgICAgIGNvcnJl Y3Rpb25fY29udHJvbHNfbGVmdFtqXSA/IG1hc2tfYWxsX29uZSA6IG1hc2tfYWxsX3plcm87Cisg ICAgICAgY29uc3QgYXV0byBjb3JyZWN0aW9uX2NvbnRyb2xfbWFza19yaWdodCA9CgpkaWZmIC0t Z2l0IGEvY2hyb21pdW0tMTEwLWtDdXN0b21pemVDaHJvbWVDb2xvcnMtdHlwZS5wYXRjaCBiL2No cm9taXVtLTExMC1rQ3VzdG9taXplQ2hyb21lQ29sb3JzLXR5cGUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMyMTRkYQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9t aXVtLTExMC1rQ3VzdG9taXplQ2hyb21lQ29sb3JzLXR5cGUucGF0Y2gKQEAgLTAsMCArMSwyOCBA QAorRnJvbSAzMDg0ZTgzNGEyMTFlODVmNmExN2U2ZjhkY2ViNmI0NDExNzIxMWQyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1h aWwuY29tPgorRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxOToyMjo0NiArMDAwMAorU3ViamVjdDog W1BBVENIXSBHQ0M6IGZpeCBjb25mbGljdGluZyB0eXBlIGZvciBrQ3VzdG9taXplQ2hyb21lQ29s b3JzCisKK0dDQyBjYW5ub3QgbWF0Y2ggYXV0byB3aXRoIHByZXZpb3VzIGRlY2xhcmF0aW9uLgor CitCdWc6IDgxOTI5NAorQ2hhbmdlLUlkOiBJZTY0OGRhYWYyNjRmYjJlYTE3N2FjNDZjOGE1MTBk NDgxZjZmYTJmNAorUmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNv dXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy80MTEwODcwCitSZXZpZXdlZC1ieTogVGlib3IgR29s ZHNjaHdlbmR0IDx0aWJvcmdAY2hyb21pdW0ub3JnPgorQ29tbWl0LVF1ZXVlOiBTdGVwaGFuIEhh cnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+CitDci1Db21taXQtUG9zaXRpb246IHJlZnMv aGVhZHMvbWFpbkB7IzEwODYwMTF9CistLS0KKworZGlmZiAtLWdpdCBhL2Nocm9tZS9icm93c2Vy L3VpL3dlYnVpL3NpZGVfcGFuZWwvY3VzdG9taXplX2Nocm9tZS9jdXN0b21pemVfY2hyb21lX2Nv bG9ycy5jYyBiL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL3NpZGVfcGFuZWwvY3VzdG9taXplX2No cm9tZS9jdXN0b21pemVfY2hyb21lX2NvbG9ycy5jYworaW5kZXggMmZjY2FkYi4uMzgzYzllNSAx MDA2NDQKKy0tLSBhL2Nocm9tZS9icm93c2VyL3VpL3dlYnVpL3NpZGVfcGFuZWwvY3VzdG9taXpl X2Nocm9tZS9jdXN0b21pemVfY2hyb21lX2NvbG9ycy5jYworKysrIGIvY2hyb21lL2Jyb3dzZXIv dWkvd2VidWkvc2lkZV9wYW5lbC9jdXN0b21pemVfY2hyb21lL2N1c3RvbWl6ZV9jaHJvbWVfY29s b3JzLmNjCitAQCAtMzEsNSArMzEsNiBAQAorIAorIH0gIC8vIG5hbWVzcGFjZQorIAorLWNvbnN0 IGF1dG8ga0N1c3RvbWl6ZUNocm9tZUNvbG9ycyA9IE1ha2VDdXN0b21pemVDaHJvbWVDb2xvcnMo CistICAgIHN0ZDo6bWFrZV9pbmRleF9zZXF1ZW5jZTxzdGQ6OnNpemUoa0N1c3RvbWl6ZUNocm9t ZUNvbG9ySWRzKT57fSk7CisrY29uc3QgZGVjbHR5cGUoa0N1c3RvbWl6ZUNocm9tZUNvbG9ycykg a0N1c3RvbWl6ZUNocm9tZUNvbG9ycyA9CisrICAgIE1ha2VDdXN0b21pemVDaHJvbWVDb2xvcnMo CisrICAgICAgICBzdGQ6Om1ha2VfaW5kZXhfc2VxdWVuY2U8c3RkOjpzaXplKGtDdXN0b21pemVD aHJvbWVDb2xvcklkcyk+e30pOwoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExMC1vem9uZS13YXls YW5kLXZhYXBpLXN1cHBvcnQucGF0Y2ggYi9jaHJvbWl1bS0xMTAtb3pvbmUtd2F5bGFuZC12YWFw aS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkY2Zm MjYKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMTAtb3pvbmUtd2F5bGFuZC12YWFwaS1z dXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsNTg0IEBACithdXRob3IJSmlhbmh1aSBEYWkgPGppYW5o dWkuai5kYWlAaW50ZWwuY29tPglUdWUgTm92IDE1IDA2OjE4OjA0IDIwMjIKK2NvbW1pdHRlcglK aWFuaHVpIERhaSA8amlhbmh1aS5qLmRhaUBpbnRlbC5jb20+CVR1ZSBOb3YgMTUgMDY6MTg6MDQg MjAyMgorCitbT3pvbmUvTGludXhdIFN1cHBvcnQgVkEtQVBJIG9uIExpbnV4IE96b25lL1dheWxh bmQKKworVkEtQVBJIHN1cHBvcnRzIGRpZmZlcmVudCBkaXNwbGF5IGJhY2tlbmRzIFsxXS4gVkEv RFJNIGFuZCBWQS9YMTEgYXJlCit1c2VkIGJ5IENocm9taXVtIGF0IHRoZSBtb21lbnQuIEFsbCBP em9uZSBwbGF0Zm9ybXMgc3VwcG9ydCBWQS9EUk0gYnkKK2RlZmF1bHQuIFZBL1gxMSBpcyBzdXBw b3J0ZWQgb25seSBvbiBPem9uZS9YMTEuCisKK1RoaXMgQ0wgcmVuYW1lcyAnc3VwcG9ydHNfdmFh cGknIHRvICdzdXBwb3J0c192YWFwaV94MTEnOyBpdCBpbmRpY2F0ZXMKK2lmIFZBL1gxMSBzdXBw b3J0ZWQuIExpbnV4IE96b25lL1gxMSBzdXBwb3J0cyBib3RoIFZBL1gxMSBhbmQgVkEvRFJNOwor TGludXggT3pvbmUvV2F5bGFuZCBzdXBwb3J0cyBvbmx5IFZBL0RSTS4gYFZhYXBpUGljdHVyZUZh Y3RvcnlgIGFsc28KK3Rha2VzIHRoaXMgZmxhZyB0byBkZXRlcm1pbmUgcGljdHVyZSBjcmVhdGlv biBhbmQgZG93bmxvYWRpbmcgbWVjaGFuaXNtCitvbiBMaW51eC4KKworWzFdIGh0dHBzOi8vZ2l0 aHViLmNvbS9pbnRlbC9saWJ2YS9ibG9iL21hc3Rlci92YS92YV9iYWNrZW5kLmgKKworVGVzdDog VkRBIHZpZGVvIHBsYXliYWNrIG9uIExpbnV4IFgxMSBhbmQgTGludXggV2F5bGFuZAorQnVnOiAx MzI2NzU0LDExMTY3MDEKK0NoYW5nZS1JZDogSTZkNmJmNzgxODMzYTc3NTJkMjNkYWZiMmI2MzEx MmMyZmM4MWIxN2EKK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9h cmdzLmduaS53YXlsYW5kLXZhYXBpIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9h cmdzLmduaQorLS0tIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS9hcmdzLmduaS53 YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6Mzk6NTIuMDAwMDAwMDAwICswMTAwCisrKysgY2hy b21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L2FyZ3MuZ25pCTIwMjMtMDEtMDUgMTA6MTM6 MDguMjkxNDAzMjYxICswMTAwCitAQCAtNiwxMCArNiwxNCBAQCBpbXBvcnQoIi8vYnVpbGQvY29u ZmlnL2Nocm9tZW9zL3VpX21vZGUuCisgaW1wb3J0KCIvL2J1aWxkL2NvbmZpZy9vem9uZS5nbmki KQorIAorIGRlY2xhcmVfYXJncygpIHsKKy0gICMgSW5kaWNhdGVzIGlmIFgxMSBWQS1BUEktYmFz ZWQgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIHRvIGJlIHVzZWQuCistICAjIFNlZSBhbHNvIHRo ZSBjb21tZW50IG5lYXIgdGhlIHx1c2VfdmFhcGl8IGFyZy4KKy0gIHVzZV92YWFwaV94MTEgPSBp c19saW51eCAmJiBvem9uZV9wbGF0Zm9ybV94MTEgJiYKKy0gICAgICAgICAgICAgICAgICAodGFy Z2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiKSAmJiAhaXNfY2FzdG9zCisr ICAjIEJ1aWxkIENocm9tZSBzdXBwb3J0IGZvciB1c2luZyBWQS1BUEkgb3ZlciBYMTEuIE5vdGUg dGhhdCBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBpcworKyAgIyBub3QgYSBndWFyYW50ZWUgdGhhdCBD aHJvbWUgd2lsbCB1c2UgKG9yIGV2ZW4gdHJ5IHRvIHVzZSkgVkEtQVBJIG92ZXIgWDExLiBJbgor KyAgIyBwYXJ0aWN1bGFyLCBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBDaHJvbWUgd2l0aCBzdXBw b3J0IGZvciBWQS1BUEkgb3ZlciBYMTEgYnV0CisrICAjIHBpY2sgV2F5bGFuZCBhcyB0aGUgT3pv bmUgYmFja2VuZCBhdCBydW50aW1lLiBJbiB0aGlzIGNhc2UsIENocm9tZSB3aWxsIHRyeSB0bwor KyAgIyB1c2UgVkEtQVBJIG92ZXIgRFJNLgorKyAgc3VwcG9ydF92YWFwaV9vdmVyX3gxMSA9Cisr ICAgICAgaXNfbGludXggJiYgb3pvbmVfcGxhdGZvcm1feDExICYmCisrICAgICAgKHRhcmdldF9j cHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IikgJiYgIWlzX2Nhc3RvcworIH0KKyAK KyBkZWNsYXJlX2FyZ3MoKSB7CitAQCAtMjksOCArMzMsOSBAQCBkZWNsYXJlX2FyZ3MoKSB7Cisg ICAjIGlzIHR5cGljYWxseSB0aGUgY2FzZSBvbiB4ODYtYmFzZWQgQ2hyb21lT1MgZGV2aWNlcy4K KyAgICMgVkEtQVBJIHNob3VsZCBhbHNvIGJlIGNvbXBpbGVkIGJ5IGRlZmF1bHQgb24geDExLXVz aW5nIGxpbnV4IGRldmljZXMKKyAgICMgdXNpbmcgeDg2L3g2NC4KKy0gIHVzZV92YWFwaSA9IHVz ZV92YWFwaV94MTEgfHwgKGlzX2Nocm9tZW9zX2xhY3JvcyAmJgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHRhcmdldF9jcHUgPT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0 IikpCisrICB1c2VfdmFhcGkgPQorKyAgICAgIHN1cHBvcnRfdmFhcGlfb3Zlcl94MTEgfHwKKysg ICAgICAoaXNfY2hyb21lb3NfbGFjcm9zICYmICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdl dF9jcHUgPT0gIng2NCIpKQorIAorICAgIyBJbmRpY2F0ZXMgaWYgQ2hyb21lT1MgcHJvdGVjdGVk IG1lZGlhIHN1cHBvcnQgZXhpc3RzLiBUaGlzIGlzIHVzZWQKKyAgICMgdG8gZW5hYmxlIHRoZSBD RE0gZGFlbW9uIGluIENocm9tZSBPUyBhcyB3ZWxsIGFzIHN1cHBvcnQgZm9yCitkaWZmIC11cCBj aHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvQlVJTEQuZ24ud2F5bGFuZC12YWFwaSBj aHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvQlVJTEQuZ24KKy0tLSBjaHJvbWl1bS0x MDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvQlVJTEQuZ24ud2F5bGFuZC12YWFwaQkyMDIyLTEyLTE0 IDAxOjM5OjUyLjAwMDAwMDAwMCArMDEwMAorKysrIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21l ZGlhL2dwdS9CVUlMRC5nbgkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MTQwMzI2MSArMDEwMAorQEAg LTIwLDcgKzIwLDcgQEAgYnVpbGRmbGFnX2hlYWRlcigiYnVpbGRmbGFncyIpIHsKKyAgICAgIlVT RV9WQUFQSV9JTUFHRV9DT0RFQ1M9JHVzZV92YWFwaV9pbWFnZV9jb2RlY3MiLAorICAgICAiVVNF X1Y0TDJfQ09ERUM9JHVzZV92NGwyX2NvZGVjIiwKKyAgICAgIlVTRV9MSUJWNEwyPSR1c2VfdjRs cGx1Z2luIiwKKy0gICAgIlVTRV9WQUFQSV9YMTE9JHVzZV92YWFwaV94MTEiLAorKyAgICAiU1VQ UE9SVF9WQUFQSV9PVkVSX1gxMT0kc3VwcG9ydF92YWFwaV9vdmVyX3gxMSIsCisgICBdCisgfQor IAorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL0JVSUxE LmduLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBp L0JVSUxELmduCistLS0gY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL0JV SUxELmduLndheWxhbmQtdmFhcGkJMjAyMi0xMi0xNCAwMTozOTo1Mi4wMDAwMDAwMDAgKzAxMDAK KysrKyBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvQlVJTEQuZ24JMjAy My0wMS0wNSAxMDoxMzowOC4yOTE0MDMyNjEgKzAxMDAKK0BAIC0xNyw3ICsxNyw3IEBAIGFzc2Vy dCh1c2VfdmFhcGkpCisgZ2VuZXJhdGVfc3R1YnMoImxpYnZhX3N0dWJzIikgeworICAgZXh0cmFf aGVhZGVyID0gInZhX3N0dWJfaGVhZGVyLmZyYWdtZW50IgorICAgc2lncyA9IFsgInZhLnNpZ3Mi IF0KKy0gIGlmICh1c2VfdmFhcGlfeDExKSB7CisrICBpZiAoc3VwcG9ydF92YWFwaV9vdmVyX3gx MSkgeworICAgICBzaWdzICs9IFsgInZhX3gxMS5zaWdzIiBdCisgICB9CisgICBpZiAoaXNfY2hy b21lb3NfYXNoKSB7CitAQCAtMTM4LDcgKzEzOCw3IEBAIHNvdXJjZV9zZXQoInZhYXBpIikgewor ICAgICBdCisgICB9CisgCistICBpZiAodXNlX3ZhYXBpX3gxMSkgeworKyAgaWYgKHN1cHBvcnRf dmFhcGlfb3Zlcl94MTEpIHsKKyAgICAgZGVwcyArPSBbICIvL3VpL2dmeC94IiBdCisgICAgIHNv dXJjZXMgKz0gWworICAgICAgICJ2YWFwaV9waWN0dXJlX25hdGl2ZV9waXhtYXBfYW5nbGUuY2Mi LAorQEAgLTIxNCw3ICsyMTQsNyBAQCBzb3VyY2Vfc2V0KCJjb21tb24iKSB7CisgICAgIGRlcHMg Kz0gWyAiLy91aS9vem9uZSIgXQorICAgfQorIAorLSAgaWYgKHVzZV92YWFwaV94MTEpIHsKKysg IGlmIChzdXBwb3J0X3ZhYXBpX292ZXJfeDExKSB7CisgICAgIGRlcHMgKz0gWyAiLy91aS9nZngv eCIgXQorICAgfQorIAorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1 L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5oLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5 LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5oCistLS0g Y2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFj dG9yeS5oLndheWxhbmQtdmFhcGkJMjAyMi0xMi0xNCAwMTozOTo1My4wMDAwMDAwMDAgKzAxMDAK KysrKyBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVy ZV9mYWN0b3J5LmgJMjAyMy0wMS0wNSAxMDoxMzowOC4yOTE0MDMyNjEgKzAxMDAKK0BAIC0zNiw3 ICszNiwxMSBAQCBjbGFzcyBNRURJQV9HUFVfRVhQT1JUIFZhYXBpUGljdHVyZUZhY3RvCisgICAg IGtWYWFwaUltcGxlbWVudGF0aW9uQW5nbGUsCisgICB9OworIAorKyNpZiBCVUlMREZMQUcoU1VQ UE9SVF9WQUFQSV9PVkVSX1gxMSkKKysgIGV4cGxpY2l0IFZhYXBpUGljdHVyZUZhY3RvcnkoYWJz bDo6b3B0aW9uYWw8Ym9vbD4gbWF5X3VzZV92YWFwaV9vdmVyX3gxMSk7CisrI2Vsc2UKKyAgIFZh YXBpUGljdHVyZUZhY3RvcnkoKTsKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJ X09WRVJfWDExKQorIAorICAgVmFhcGlQaWN0dXJlRmFjdG9yeShjb25zdCBWYWFwaVBpY3R1cmVG YWN0b3J5JikgPSBkZWxldGU7CisgICBWYWFwaVBpY3R1cmVGYWN0b3J5JiBvcGVyYXRvcj0oY29u c3QgVmFhcGlQaWN0dXJlRmFjdG9yeSYpID0gZGVsZXRlOworQEAgLTg1LDYgKzg5LDExIEBAIGNs YXNzIE1FRElBX0dQVV9FWFBPUlQgVmFhcGlQaWN0dXJlRmFjdG8KKyAKKyAgIENyZWF0ZVBpY3R1 cmVDQiBjcmVhdGVfcGljdHVyZV9jYl87CisgICBib29sIG5lZWRzX3ZwcF9mb3JfZG93bmxvYWRp bmdfID0gZmFsc2U7CisrCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQor KyAgLy8gU2VlIGNvbW1lbnQgaW4gYFZhYXBpV3JhcHBlcjo6TWF5VXNlVmFhcGlPdmVyWDExKClg LgorKyAgYWJzbDo6b3B0aW9uYWw8Ym9vbD4gbWF5X3VzZV92YWFwaV9vdmVyX3gxMV87CisrI2Vu ZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyB9OworIAorIH0gIC8v IG5hbWVzcGFjZSBtZWRpYQorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEv Z3B1L3ZhYXBpL3ZhYXBpX3ZpZGVvX2RlY29kZV9hY2NlbGVyYXRvci5jYy53YXlsYW5kLXZhYXBp IGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFwaV92aWRlb19kZWNv ZGVfYWNjZWxlcmF0b3IuY2MKKy0tLSBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUv dmFhcGkvdmFhcGlfdmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yLmNjLndheWxhbmQtdmFhcGkJMjAy My0wMS0wNSAxMDoxMzowOC4yOTA0MDMyNTEgKzAxMDAKKysrKyBjaHJvbWl1bS0xMDkuMC41MzU5 LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9fZGVjb2RlX2FjY2VsZXJhdG9yLmNjCTIw MjMtMDEtMDUgMTA6MTM6MDguMjkyNDAzMjcxICswMTAwCitAQCAtMTg0LDcgKzE4NCwxMiBAQCBi b29sIFZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvcjo6SW5pdGlhCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xpZW50KiBjbGllbnQpIHsKKyAgIERDSEVD Syh0YXNrX3J1bm5lcl8tPkJlbG9uZ3NUb0N1cnJlbnRUaHJlYWQoKSk7CisgCisrI2lmIEJVSUxE RkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgdmFhcGlfcGljdHVyZV9mYWN0b3J5XyA9 CisrICAgICAgc3RkOjptYWtlX3VuaXF1ZTxWYWFwaVBpY3R1cmVGYWN0b3J5PihWYWFwaVdyYXBw ZXI6Ok1heVVzZVZhYXBpT3ZlclgxMSgpKTsKKysjZWxzZQorICAgdmFhcGlfcGljdHVyZV9mYWN0 b3J5XyA9IHN0ZDo6bWFrZV91bmlxdWU8VmFhcGlQaWN0dXJlRmFjdG9yeT4oKTsKKysjZW5kaWYg IC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorIAorICAgaWYgKGNvbmZpZy5p c19lbmNyeXB0ZWQoKSkgeworICAgICBOT1RSRUFDSEVEKCkgPDwgIkVuY3J5cHRlZCBzdHJlYW1z IGFyZSBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIFZEQSI7CitAQCAtMTIxMCw3ICsxMjE1LDcgQEAg VmFhcGlWaWRlb0RlY29kZUFjY2VsZXJhdG9yOjpHZXRTdXBwb3J0ZQorIAorIFZhYXBpVmlkZW9E ZWNvZGVBY2NlbGVyYXRvcjo6QnVmZmVyQWxsb2NhdGlvbk1vZGUKKyBWYWFwaVZpZGVvRGVjb2Rl QWNjZWxlcmF0b3I6OkRlY2lkZUJ1ZmZlckFsbG9jYXRpb25Nb2RlKCkgeworLSNpZiBCVUlMREZM QUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEp CisgICAvLyBUaGUgSU1QT1JUIG1vZGUgaXMgdXNlZCBmb3IgQW5kcm9pZCBvbiBDaHJvbWUgT1Ms IHNvIHRoaXMgZG9lc24ndCBhcHBseQorICAgLy8gaGVyZS4KKyAgIERDSEVDS19ORShvdXRwdXRf bW9kZV8sIFZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkNvbmZpZzo6T3V0cHV0TW9kZTo6SU1QT1JU KTsKK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L21lZGlhL2dwdS92YWFwaS92YWFw aV93cmFwcGVyLmgud2F5bGFuZC12YWFwaSBjaHJvbWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9n cHUvdmFhcGkvdmFhcGlfd3JhcHBlci5oCistLS0gY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVk aWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaC53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6 Mzk6NTMuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEv Z3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaAkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5MjQwMzI3MSAr MDEwMAorQEAgLTM2LDkgKzM2LDkgQEAKKyAjaW5jbHVkZSAidGhpcmRfcGFydHkvYWJzZWlsLWNw cC9hYnNsL3R5cGVzL29wdGlvbmFsLmgiCisgI2luY2x1ZGUgInVpL2dmeC9nZW9tZXRyeS9zaXpl LmgiCisgCistI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQ UE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAjaW5jbHVkZSAidWkvZ2Z4L3gveHByb3RvLmgiICAvLyBu b2duY2hlY2sKKy0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUcoVVNF X1ZBQVBJX1gxMSkKKysjZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAvLyBCVUlMREZMQUco U1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAKKyBuYW1lc3BhY2UgZ2Z4IHsKKyBlbnVtIGNsYXNz IEJ1ZmZlckZvcm1hdDsKK0BAIC0xODYsNiArMTg2LDE2IEBAIGNsYXNzIE1FRElBX0dQVV9FWFBP UlQgVmFhcGlXcmFwcGVyCisgICBWYWFwaVdyYXBwZXIoY29uc3QgVmFhcGlXcmFwcGVyJikgPSBk ZWxldGU7CisgICBWYWFwaVdyYXBwZXImIG9wZXJhdG9yPShjb25zdCBWYWFwaVdyYXBwZXImKSA9 IGRlbGV0ZTsKKyAKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrICAv LyBSZXR1cm5zIHRydWUgaWYgVmFhcGlXcmFwcGVyIGluc3RhbmNlcyBtYXkgdXNlIFZBLUFQSSBv dmVyIFgxMSBhbmQgZmFsc2UKKysgIC8vIG90aGVyd2lzZSAoVkEtQVBJIG92ZXIgRFJNIHdpbGwg YmUgdXNlZCkuIElmIHRoaXMgcmV0dXJucyBhYnNsOjpudWxsb3B0LAorKyAgLy8gaXQncyBiZWNh dXNlIGl0IHdhcyBub3QgcG9zc2libGUgdG8gZGV0ZXJtaW5lIGhvdyBWQS1BUEkgbWF5IGJlIHVz ZWQuIFRoaXMKKysgIC8vIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBhZnRlciBQcmVTYW5kYm94SW5p dGlhbGl6YXRpb24oKSAod2hpY2ggaXMgYXNzdW1lZCB0bworKyAgLy8gYmUgY2FsbGVkIG9ubHkg b25jZSBkdXJpbmcgdGhlIEdQVSBwcm9jZXNzIHN0YXJ0dXApIGFuZCBpcyBzYWZlIHRvIGNhbGwK KysgIC8vIGZyb20gYW55IHRocmVhZC4gQWRkaXRpb25hbGx5LCB0aGlzIHNob3VsZCBhbHdheXMg cmV0dXJuIHRoZSBzYW1lIHZhbHVlLgorKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPGJvb2w+IE1h eVVzZVZhYXBpT3ZlclgxMSgpOworKyNlbmRpZgorKworICAgLy8gUmV0dXJucyB0aGUgc3VwcG9y dGVkIFNWQyBzY2FsYWJpbGl0eSBtb2RlcyBmb3Igc3BlY2lmaWVkIHByb2ZpbGUuCisgICBzdGF0 aWMgc3RkOjp2ZWN0b3I8U1ZDU2NhbGFiaWxpdHlNb2RlPiBHZXRTdXBwb3J0ZWRTY2FsYWJpbGl0 eU1vZGVzKAorICAgICAgIFZpZGVvQ29kZWNQcm9maWxlIG1lZGlhX3Byb2ZpbGUsCitAQCAtNDM5 LDEzICs0NDksMTMgQEAgY2xhc3MgTUVESUFfR1BVX0VYUE9SVCBWYWFwaVdyYXBwZXIKKyAgICAg ICBWQVN1cmZhY2VJRCB2YV9zdXJmYWNlX2lkLAorICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHN0 ZDo6cGFpcjxWQUJ1ZmZlcklELCBWQUJ1ZmZlckRlc2NyaXB0b3I+PiYgdmFfYnVmZmVycyk7Cisg CistI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9W QUFQSV9PVkVSX1gxMSkKKyAgIC8vIFB1dCBkYXRhIGZyb20gfHZhX3N1cmZhY2VfaWR8IGludG8g fHhfcGl4bWFwfCBvZiBzaXplCisgICAvLyB8ZGVzdF9zaXplfCwgY29udmVydGluZy9zY2FsaW5n IHRvIGl0LgorICAgW1tub2Rpc2NhcmRdXSBib29sIFB1dFN1cmZhY2VJbnRvUGl4bWFwKFZBU3Vy ZmFjZUlEIHZhX3N1cmZhY2VfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeDExOjpQaXhtYXAgeF9waXhtYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2Z4OjpTaXplIGRlc3Rfc2l6ZSk7CistI2VuZGlmICAvLyBCVUlM REZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJ X09WRVJfWDExKQorIAorICAgLy8gQ3JlYXRlcyBhIFNjb3BlZFZBSW1hZ2UgZnJvbSBhIFZBU3Vy ZmFjZSB8dmFfc3VyZmFjZV9pZHwgYW5kIG1hcCBpdCBpbnRvCisgICAvLyBtZW1vcnkgd2l0aCB0 aGUgZ2l2ZW4gfGZvcm1hdHwgYW5kIHxzaXplfC4gSWYgfGZvcm1hdHwgaXMgbm90IGVxdWFsIHRv IHRoZQorZGlmZiAtdXAgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3Zh X3N0dWJfaGVhZGVyLmZyYWdtZW50LndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5LjAuNTM1OS4x MjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhX3N0dWJfaGVhZGVyLmZyYWdtZW50CistLS0gY2hyb21pdW0t MTA5LjAuNTM1OS4xMjQvbWVkaWEvZ3B1L3ZhYXBpL3ZhX3N0dWJfaGVhZGVyLmZyYWdtZW50Lndh eWxhbmQtdmFhcGkJMjAyMi0xMi0xNCAwMTozOTo1Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJv bWl1bS0xMDkuMC41MzU5LjEyNC9tZWRpYS9ncHUvdmFhcGkvdmFfc3R1Yl9oZWFkZXIuZnJhZ21l bnQJMjAyMy0wMS0wNSAxMDoxMzowOC4yOTE0MDMyNjEgKzAxMDAKK0BAIC03LDggKzcsOCBAQCBl eHRlcm4gIkMiIHsKKyAKKyAjaW5jbHVkZSA8dmEvdmFfZHJtLmg+CisgI2luY2x1ZGUgPHZhL3Zh Lmg+CistI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQUE9S VF9WQUFQSV9PVkVSX1gxMSkKKyAjaW5jbHVkZSA8dmEvdmFfeDExLmg+CistI2VuZGlmICAvLyBC VUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZB QVBJX09WRVJfWDExKQorIAorIH0KK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L3Vp L296b25lL3BsYXRmb3JtL3gxMS9vem9uZV9wbGF0Zm9ybV94MTEuY2Mud2F5bGFuZC12YWFwaSBj aHJvbWl1bS0xMDkuMC41MzU5LjEyNC91aS9vem9uZS9wbGF0Zm9ybS94MTEvb3pvbmVfcGxhdGZv cm1feDExLmNjCistLS0gY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvdWkvb3pvbmUvcGxhdGZvcm0v eDExL296b25lX3BsYXRmb3JtX3gxMS5jYy53YXlsYW5kLXZhYXBpCTIwMjItMTItMTQgMDE6NDA6 MTQuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTA5LjAuNTM1OS4xMjQvdWkvb3pvbmUv cGxhdGZvcm0veDExL296b25lX3BsYXRmb3JtX3gxMS5jYwkyMDIzLTAxLTA1IDEwOjEzOjA4LjI5 MjQwMzI3MSArMDEwMAorQEAgLTE5Niw3ICsxOTYsNyBAQCBjbGFzcyBPem9uZVBsYXRmb3JtWDEx IDogcHVibGljIE96b25lUGxhCisgICAgICAgcHJvcGVydGllcy0+YXBwX21vZGFsX2RpYWxvZ3Nf dXNlX2V2ZW50X2Jsb2NrZXIgPSB0cnVlOworICAgICAgIHByb3BlcnRpZXMtPmZldGNoX2J1ZmZl cl9mb3JtYXRzX2Zvcl9nbWJfb25fZ3B1ID0gdHJ1ZTsKKyAjaWYgQlVJTERGTEFHKElTX0xJTlVY KQorLSAgICAgIHByb3BlcnRpZXMtPnN1cHBvcnRzX3ZhYXBpID0gdHJ1ZTsKKysgICAgICBwcm9w ZXJ0aWVzLT5zdXBwb3J0c192YWFwaV94MTEgPSB0cnVlOworICNlbmRpZgorIAorICAgICAgIGlu aXRpYWxpc2VkID0gdHJ1ZTsKK2RpZmYgLXVwIGNocm9taXVtLTEwOS4wLjUzNTkuMTI0L3VpL296 b25lL3B1YmxpYy9vem9uZV9wbGF0Zm9ybS5oLndheWxhbmQtdmFhcGkgY2hyb21pdW0tMTA5LjAu NTM1OS4xMjQvdWkvb3pvbmUvcHVibGljL296b25lX3BsYXRmb3JtLmgKKy0tLSBjaHJvbWl1bS0x MDkuMC41MzU5LjEyNC91aS9vem9uZS9wdWJsaWMvb3pvbmVfcGxhdGZvcm0uaC53YXlsYW5kLXZh YXBpCTIwMjItMTItMTQgMDE6NDA6MTQuMDAwMDAwMDAwICswMTAwCisrKysgY2hyb21pdW0tMTA5 LjAuNTM1OS4xMjQvdWkvb3pvbmUvcHVibGljL296b25lX3BsYXRmb3JtLmgJMjAyMy0wMS0wNSAx MDoxMzowOC4yOTM0MDMyODEgKzAxMDAKK0BAIC0xNDUsMTIgKzE0NSwxMyBAQCBjbGFzcyBDT01Q T05FTlRfRVhQT1JUKE9aT05FKSBPem9uZVBsYXRmCisgICAgIGJvb2wgZmV0Y2hfYnVmZmVyX2Zv cm1hdHNfZm9yX2dtYl9vbl9ncHUgPSBmYWxzZTsKKyAKKyAjaWYgQlVJTERGTEFHKElTX0xJTlVY KQorLSAgICAvLyBUT0RPKGNyYnVnLmNvbS8xMTE2NzAxKTogYWRkIHZhYXBpIHN1cHBvcnQgZm9y IG90aGVyIE96b25lIHBsYXRmb3JtcyBvbgorLSAgICAvLyBMaW51eC4gQXQgdGhlIG1vbWVudCwg VkEtQVBJIExpbnV4IGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIG9ubHkgWDExCistICAgIC8vIGJh Y2tlbmQuIFRoaXMgaW1wbGVtZW50YXRpb24gbXVzdCBiZSByZWZhY3RvcmVkIHRvIHN1cHBvcnQg T3pvbmUKKy0gICAgLy8gcHJvcGVybHkuIEFzIGEgdGVtcG9yYXJ5IHNvbHV0aW9uLCBWQS1BUEkg b24gTGludXggY2hlY2tzIGlmIHZhYXBpIGlzCistICAgIC8vIHN1cHBvcnRlZCAod2hpY2ggaW1w bGljaXRseSBtZWFucyB0aGF0IGl0IGlzIE96b25lL1gxMSkuCistICAgIGJvb2wgc3VwcG9ydHNf dmFhcGkgPSBmYWxzZTsKKysgICAgLy8gVkEtQVBJIHN1cHBvcnRzIGRpZmZlcmVudCBkaXNwbGF5 IGJhY2tlbmRzLgorKyAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ludGVsL2xpYnZhL2Js b2IvbWFzdGVyL3ZhL3ZhX2JhY2tlbmQuaAorKyAgICAvLworKyAgICAvLyBWQS9EUk0gYW5kIFZB L1gxMSBhcmUgdXNlZCBieSBDaHJvbWl1bSBhdCB0aGUgbW9tZW50LiBBbGwgT3pvbmUgcGxhdGZv cm1zCisrICAgIC8vIHN1cHBvcnQgVkEvRFJNIGJ5IGRlZmF1bHQuIGBzdXBwb3J0c192YWFwaV94 MTFgIGluZGljYXRlcyBpZiBWQS9YMTEKKysgICAgLy8gc3VwcG9ydGVkOyBpdCBpcyB0cnVlIG9u bHkgb24gT3pvbmUvWDExIHBsYXRmb3JtLgorKyAgICBib29sIHN1cHBvcnRzX3ZhYXBpX3gxMSA9 IGZhbHNlOworICNlbmRpZgorIAorICAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgcGxhdGZvcm0g YWxsb3dzIGNsaWVudCBhcHBsaWNhdGlvbnMgdG8gbWFuaXB1bGF0ZQorZGlmZiAtdXAgY2hyb21p dW0tMTA5LjAuNTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5jYy5vcmlnIGNo cm9taXVtLTEwOS4wLjU0MTQuNzQvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuY2MKKy0t LSBjaHJvbWl1bS0xMDkuMC41NDE0Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNj Lm9yaWcJMjAyMy0wMS0wNCAyMDoyMDoxOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBjaHJvbWl1bS0x MDkuMC41NDE0Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV93cmFwcGVyLmNjCTIwMjMtMDEtMTEg MTU6MDg6MDIuNzIxNzY4MjQzICswMTAwCitAQCAtNjIsNyArNjIsNyBAQAorICNpbmNsdWRlICJ1 aS9nbC9nbF9iaW5kaW5ncy5oIgorICNpbmNsdWRlICJ1aS9nbC9nbF9pbXBsZW1lbnRhdGlvbi5o IgorIAorLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBP UlRfVkFBUElfT1ZFUl9YMTEpCisgdHlwZWRlZiBYSUQgRHJhd2FibGU7CisgCisgZXh0ZXJuICJD IiB7CitAQCAtNzAsNyArNzAsNyBAQAorIH0KKyAKKyAjaW5jbHVkZSAidWkvZ2Z4L3gvY29ubmVj dGlvbi5oIiAgLy8gbm9nbmNoZWNrCistI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNlbmRpZiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkgCisgCisgI2lmIEJV SUxERkxBRyhJU19PWk9ORSkKKyAjaW5jbHVkZSAidWkvb3pvbmUvcHVibGljL296b25lX3BsYXRm b3JtLmgiCitAQCAtODQsMTQgKzg0LDE0IEBACisgCisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjpr TW9kdWxlVmE7CisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmFfZHJtOworLSNpZiBC VUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZF Ul9YMTEpCisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjprTW9kdWxlVmFfeDExOworLSNlbmRpZiAg Ly8gQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9S VF9WQUFQSV9PVkVSX1gxMSkKKyB1c2luZyBtZWRpYV9ncHVfdmFhcGk6OkluaXRpYWxpemVTdHVi czsKKyB1c2luZyBtZWRpYV9ncHVfdmFhcGk6OklzVmFJbml0aWFsaXplZDsKKy0jaWYgQlVJTERG TEFHKFVTRV9WQUFQSV9YMTEpCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDEx KQorIHVzaW5nIG1lZGlhX2dwdV92YWFwaTo6SXNWYV94MTFJbml0aWFsaXplZDsKKy0jZW5kaWYg IC8vIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNlbmRpZiAgLy8gQlVJTERGTEFHKFNVUFBP UlRfVkFBUElfT1ZFUl9YMTEpCisgdXNpbmcgbWVkaWFfZ3B1X3ZhYXBpOjpJc1ZhX2RybUluaXRp YWxpemVkOworIHVzaW5nIG1lZGlhX2dwdV92YWFwaTo6U3R1YlBhdGhNYXA7CisgCitAQCAtNjY4 LDYgKzY2OCwxMiBAQAorIAorICAgdm9pZCBTZXREcm1GZChiYXNlOjpQbGF0Zm9ybUZpbGUgZmQp IHsgZHJtX2ZkXy5yZXNldChIQU5ETEVfRUlOVFIoZHVwKGZkKSkpOyB9CisgCisrI2lmIEJVSUxE RkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgYWJzbDo6b3B0aW9uYWw8Ym9vbD4gTWF5 VXNlVmFhcGlPdmVyWDExKCkgY29uc3QgeworKyAgICByZXR1cm4gbWF5X3VzZV92YWFwaV9vdmVy X3gxMV87CisrICB9CisrI2VuZGlmCisrCisgIHByaXZhdGU6CisgICBmcmllbmQgY2xhc3MgYmFz ZTo6Tm9EZXN0cnVjdG9yPFZBRGlzcGxheVN0YXRlPjsKKyAKK0BAIC02OTAsNiArNjk2LDEzIEBA CisgICAvLyBEcm0gZmQgdXNlZCB0byBvYnRhaW4gYWNjZXNzIHRvIHRoZSBkcml2ZXIgaW50ZXJm YWNlIGJ5IFZBLgorICAgYmFzZTo6U2NvcGVkRkQgZHJtX2ZkXzsKKyAKKysjaWYgQlVJTERGTEFH KFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrICAvLyBXaGV0aGVyIHdlJ2xsIGJlIHBvc3NpYmx5 IHVzaW5nIFZBLUFQSSBvdmVyIE96b25lL1gxMS4gVGhpcyBzaG91bGQgb25seSBiZQorKyAgLy8g c2V0IChpZiBhdCBhbGwpIGR1cmluZyB0aGUgcHJlLXNhbmRib3ggaW5pdGlhbGl6YXRpb24uIElm IGFic2w6Om51bGxvcHQsCisrICAvLyBhbGwgY2FsbHMgdG8gSW5pdGlhbGl6ZSgpIHdpbGwgcmV0 dXJuIGZhbHNlIGltbWVkaWF0ZWx5LgorKyAgYWJzbDo6b3B0aW9uYWw8Ym9vbD4gbWF5X3VzZV92 YWFwaV9vdmVyX3gxMV87CisrI2VuZGlmCisrCisgICAvLyBUaGUgVkFEaXNwbGF5IGhhbmRsZS4g VmFsaWQgYmV0d2VlbiBJbml0aWFsaXplKCkgYW5kIERlaW5pdGlhbGl6ZSgpLgorICAgVkFEaXNw bGF5IHZhX2Rpc3BsYXlfOworIAorQEAgLTcwOCw2ICs3MjEsMTUgQEAKKyAKKyAvLyBzdGF0aWMK KyB2b2lkIFZBRGlzcGxheVN0YXRlOjpQcmVTYW5kYm94SW5pdGlhbGl6YXRpb24oKSB7CisrI2lm IEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgaWYgKHVpOjpPem9uZVBsYXRm b3JtOjpJc0luaXRpYWxpemVkKCkpIHsKKysgICAgVkFEaXNwbGF5U3RhdGU6OkdldCgpLT5tYXlf dXNlX3ZhYXBpX292ZXJfeDExXyA9CisrICAgICAgICB1aTo6T3pvbmVQbGF0Zm9ybTo6R2V0SW5z dGFuY2UoKQorKyAgICAgICAgICAgIC0+R2V0UGxhdGZvcm1Qcm9wZXJ0aWVzKCkKKysgICAgICAg ICAgICAuc3VwcG9ydHNfdmFhcGlfeDExOworKyAgfQorKyNlbmRpZgorKworICAgY29uc3RleHBy IGNoYXIga1JlbmRlck5vZGVGaWxlUGF0dGVybltdID0gIi9kZXYvZHJpL3JlbmRlckQlZCI7Cisg ICAvLyBUaGlzIGxvb3AgZW5kcyBvbiBlaXRoZXIgdGhlIGZpcnN0IGNhcmQgdGhhdCBkb2VzIG5v dCBleGlzdCBvciB0aGUgZmlyc3QKKyAgIC8vIHJlbmRlciBub2RlIHRoYXQgaXMgbm90IHZnZW0u CitAQCAtNzQwLDIwICs3NjIsMTggQEAKKyBib29sIFZBRGlzcGxheVN0YXRlOjpJbml0aWFsaXpl KCkgeworICAgYmFzZTo6QXV0b0xvY2sgYXV0b19sb2NrKHZhX2xvY2tfKTsKKyAKKy0jaWYgQlVJ TERGTEFHKElTX09aT05FKSAmJiBCVUlMREZMQUcoSVNfTElOVVgpCistICAvLyBUT0RPKGNyYnVn LmNvbS8xMTE2NzAxKTogYWRkIHZhYXBpIHN1cHBvcnQgZm9yIG90aGVyIE96b25lIHBsYXRmb3Jt cyBvbgorLSAgLy8gTGludXguIFNlZSBjb21tZW50IGluIE96b25lUGxhdGZvcm06OlBsYXRmb3Jt UHJvcGVydGllczo6c3VwcG9ydHNfdmFhcGkKKy0gIC8vIGZvciBtb3JlIGRldGFpbHMuIFRoaXMg d2lsbCBhbHNvIHJlcXVpcmUgcmV2aXNpdGluZyBldmVyeXRoaW5nIHRoYXQncworLSAgLy8gZ3Vh cmRlZCBieSBVU0VfVkFBUElfWDExLiBGb3IgZXhhbXBsZSwgaWYgVVNFX1ZBQVBJX1gxMSBpcyB0 cnVlLCBidXQgdGhlCistICAvLyB1c2VyIGNob29zZXMgdGhlIFdheWxhbmQgYmFja2VuZCBmb3Ig T3pvbmUgYXQgcnVudGltZSwgdGhlbiBtYW55IHRoaW5ncyAoaWYKKy0gIC8vIG5vdCBhbGwpIHRo YXQgd2UgZG8gZm9yIFgxMSB3b24ndCBhcHBseS4KKy0gIGlmICghdWk6Ok96b25lUGxhdGZvcm06 OkdldEluc3RhbmNlKCktPkdldFBsYXRmb3JtUHJvcGVydGllcygpLnN1cHBvcnRzX3ZhYXBpKQor KyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKysgIGlmICghbWF5X3VzZV92 YWFwaV9vdmVyX3gxMV8uaGFzX3ZhbHVlKCkpCisgICAgIHJldHVybiBmYWxzZTsKKyAjZW5kaWYK KyAKKyAgIGJvb2wgbGlicmFyaWVzX2luaXRpYWxpemVkID0gSXNWYUluaXRpYWxpemVkKCkgJiYg SXNWYV9kcm1Jbml0aWFsaXplZCgpOworLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gxMSkKKy0g IGxpYnJhcmllc19pbml0aWFsaXplZCA9IGxpYnJhcmllc19pbml0aWFsaXplZCAmJiBJc1ZhX3gx MUluaXRpYWxpemVkKCk7CisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQor KyAgLy8gSW5pdGlhbGl6ZSBWQS1BUEkgWDExIGRpc3BsYXkgYmFja2VuZCBmb3IgTGludXggT3pv bmUvWDExLgorKyAgLy8gU2VlIGNvbW1lbnQgaW4gT3pvbmVQbGF0Zm9ybTo6UGxhdGZvcm1Qcm9w ZXJ0aWVzOjpzdXBwb3J0c192YWFwaV94MTEgZm9yCisrICAvLyBtb3JlIGRldGFpbHMuCisrICBp ZiAobWF5X3VzZV92YWFwaV9vdmVyX3gxMV8udmFsdWUoKSkKKysgICAgbGlicmFyaWVzX2luaXRp YWxpemVkID0gbGlicmFyaWVzX2luaXRpYWxpemVkICYmIElzVmFfeDExSW5pdGlhbGl6ZWQoKTsK KyAjZW5kaWYKKyAgIGlmICghbGlicmFyaWVzX2luaXRpYWxpemVkKQorICAgICByZXR1cm4gZmFs c2U7CitAQCAtNzY4LDcgKzc4OCw3IEBACisgICByZXR1cm4gc3VjY2VzczsKKyB9CisgCistI2lm IEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9P VkVSX1gxMSkKKyAKKyBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IEdldFZBRGlzcGxheVN0YXRl WDExKGNvbnN0IGJhc2U6OlNjb3BlZEZEJiBkcm1fZmQpIHsKKyAgIHN3aXRjaCAoZ2w6OkdldEdM SW1wbGVtZW50YXRpb24oKSkgeworQEAgLTc5NiwxMyArODE2LDE5IEBACisgICB9CisgfQorIAor LSNlbHNlCisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAK KyBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IEdldFZBRGlzcGxheVN0YXRlKGNvbnN0IGJhc2U6 OlNjb3BlZEZEJiBkcm1fZmQpIHsKKyAgIHN3aXRjaCAoZ2w6OkdldEdMSW1wbGVtZW50YXRpb24o KSkgeworICAgICBjYXNlIGdsOjprR0xJbXBsZW1lbnRhdGlvbkVHTEdMRVMyOgorKyNpZiBCVUlM REZMQUcoSVNfQ0hST01FT1MpCisrICAgIC8vIEdldFZBRGlzcGxheVN0YXRlKCkgc2hvdWxkIG5v dCBnZXQgY2FsbGVkIG9uIExpbnV4IHdpdGggT3pvbmUvWDExCisrICAgIC8vIChHZXRWQURpc3Bs YXlTdGF0ZVgxMSgpIHNob3VsZCBnZXQgY2FsbGVkIGluc3RlYWQpLCBhbmQgd2UgaGF2ZW4ndCB0 cmllZAorKyAgICAvLyBWQS1BUEkgZGVjb2Rpbmcgb24gTGludXggd2l0aCBPem9uZS9XYXlsYW5k IGFuZCBhbnl0aGluZyBvdGhlciB0aGFuCisrICAgIC8vIG5hdGl2ZSBFR0wvR0xFUzIuCisgICAg IGNhc2UgZ2w6OmtHTEltcGxlbWVudGF0aW9uRUdMQU5HTEU6CisgICAgIGNhc2UgZ2w6OmtHTElt cGxlbWVudGF0aW9uTm9uZToKKysjZW5kaWYKKyAgICAgICByZXR1cm4gdmFHZXREaXNwbGF5RFJN KGRybV9mZC5nZXQoKSk7CisgICAgIGRlZmF1bHQ6CisgICAgICAgTE9HKFdBUk5JTkcpIDw8ICJW QUFQSSB2aWRlbyBhY2NlbGVyYXRpb24gbm90IGF2YWlsYWJsZSBmb3IgIgorQEAgLTgxMiwxOCAr ODM4LDIzIEBACisgICB9CisgfQorIAorLSNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQSV9Y MTEpCistCisgYm9vbCBWQURpc3BsYXlTdGF0ZTo6SW5pdGlhbGl6ZVZhRGlzcGxheV9Mb2NrZWQo KSB7CistICBhYnNsOjpvcHRpb25hbDxWQURpc3BsYXk+IGRpc3BsYXkgPQorLSNpZiBCVUlMREZM QUcoVVNFX1ZBQVBJX1gxMSkKKy0gICAgICBHZXRWQURpc3BsYXlTdGF0ZVgxMShkcm1fZmRfKTsK Ky0jZWxzZQorLSAgICAgIEdldFZBRGlzcGxheVN0YXRlKGRybV9mZF8pOworLSNlbmRpZgorKyAg YWJzbDo6b3B0aW9uYWw8VkFEaXNwbGF5PiBkaXNwbGF5OworIAorLSAgaWYgKCFkaXNwbGF5KQor LSAgICByZXR1cm4gZmFsc2U7CisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDEx KQorKyAgRENIRUNLKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLmhhc192YWx1ZSgpKTsKKysgIGlm IChtYXlfdXNlX3ZhYXBpX292ZXJfeDExXy52YWx1ZSgpKSB7CisrICAgIGRpc3BsYXkgPSBHZXRW QURpc3BsYXlTdGF0ZVgxMShkcm1fZmRfKTsKKysgICAgaWYgKCFkaXNwbGF5KQorKyAgICAgIHJl dHVybiBmYWxzZTsKKysgIH0KKysjZW5kaWYgIC8vIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09W RVJfWDExKQorKworKyAgaWYgKCFkaXNwbGF5KSB7CisrICAgIGRpc3BsYXkgPSBHZXRWQURpc3Bs YXlTdGF0ZShkcm1fZmRfKTsKKysgICAgaWYgKCFkaXNwbGF5KQorKyAgICAgIHJldHVybiBmYWxz ZTsKKysgIH0KKyAKKyAgIHZhX2Rpc3BsYXlfID0gKmRpc3BsYXk7CisgICBpZiAoIXZhRGlzcGxh eUlzVmFsaWQodmFfZGlzcGxheV8pKSB7CitAQCAtMTY1Niw2ICsxNjg3LDEzIEBACisgICAgICAg ICAgICAgICAgIGVuZm9yY2Vfc2VxdWVuY2VfYWZmaW5pdHkpOworIH0KKyAKKysjaWYgQlVJTERG TEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisrLy8gc3RhdGljCisrYWJzbDo6b3B0aW9uYWw8 Ym9vbD4gVmFhcGlXcmFwcGVyOjpNYXlVc2VWYWFwaU92ZXJYMTEoKSB7CisrICByZXR1cm4gVkFE aXNwbGF5U3RhdGU6OkdldCgpLT5NYXlVc2VWYWFwaU92ZXJYMTEoKTsKKyt9CisrI2VuZGlmCisr CisgLy8gc3RhdGljCisgc3RkOjp2ZWN0b3I8U1ZDU2NhbGFiaWxpdHlNb2RlPiBWYWFwaVdyYXBw ZXI6OkdldFN1cHBvcnRlZFNjYWxhYmlsaXR5TW9kZXMoCisgICAgIFZpZGVvQ29kZWNQcm9maWxl IG1lZGlhX3Byb2ZpbGUsCitAQCAtMjY2NSwxMiArMjcwMywxMyBAQAorICAgcmV0dXJuIEV4ZWN1 dGVfTG9ja2VkKHZhX3N1cmZhY2VfaWQsIHZhX2J1ZmZlcl9pZHMpOworIH0KKyAKKy0jaWYgQlVJ TERGTEFHKFVTRV9WQUFQSV9YMTEpCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJf WDExKQorIGJvb2wgVmFhcGlXcmFwcGVyOjpQdXRTdXJmYWNlSW50b1BpeG1hcChWQVN1cmZhY2VJ RCB2YV9zdXJmYWNlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4MTE6OlBpeG1hcCB4X3BpeG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2Z4OjpTaXplIGRlc3Rfc2l6ZSkgeworICAgQ0hFQ0soIWVuZm9yY2Vfc2VxdWVu Y2VfYWZmaW5pdHlfIHx8CisgICAgICAgICBzZXF1ZW5jZV9jaGVja2VyXy5DYWxsZWRPblZhbGlk U2VxdWVuY2UoKSk7CisrICBDSEVDSyhNYXlVc2VWYWFwaU92ZXJYMTEoKS52YWx1ZV9vcihmYWxz ZSkpOworICAgYmFzZTo6QXV0b0xvY2tNYXliZSBhdXRvX2xvY2sodmFfbG9ja18uZ2V0KCkpOwor IAorICAgVkFTdGF0dXMgdmFfcmVzID0gdmFTeW5jU3VyZmFjZSh2YV9kaXNwbGF5XywgdmFfc3Vy ZmFjZV9pZCk7CitAQCAtMjY4NCw3ICsyNzIzLDcgQEAKKyAgIFZBX1NVQ0NFU1NfT1JfUkVUVVJO KHZhX3JlcywgVmFhcGlGdW5jdGlvbnM6OmtWQVB1dFN1cmZhY2UsIGZhbHNlKTsKKyAgIHJldHVy biB0cnVlOworIH0KKy0jZW5kaWYgIC8vIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNlbmRp ZiAgLy8gQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgCisgc3RkOjp1bmlxdWVf cHRyPFNjb3BlZFZBSW1hZ2U+IFZhYXBpV3JhcHBlcjo6Q3JlYXRlVmFJbWFnZSgKKyAgICAgVkFT dXJmYWNlSUQgdmFfc3VyZmFjZV9pZCwKK0BAIC0zMDg2LDcgKzMxMjUsNyBAQAorIAorICAgcGF0 aHNba01vZHVsZVZhXS5wdXNoX2JhY2soc3RkOjpzdHJpbmcoImxpYnZhLnNvLiIpICsgdmFfc3Vm Zml4KTsKKyAgIHBhdGhzW2tNb2R1bGVWYV9kcm1dLnB1c2hfYmFjayhzdGQ6OnN0cmluZygibGli dmEtZHJtLnNvLiIpICsgdmFfc3VmZml4KTsKKy0jaWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEp CisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorICAgcGF0aHNba01vZHVs ZVZhX3gxMV0ucHVzaF9iYWNrKHN0ZDo6c3RyaW5nKCJsaWJ2YS14MTEuc28uIikgKyB2YV9zdWZm aXgpOworICNlbmRpZgorICNpZiBCVUlMREZMQUcoSVNfQ0hST01FT1NfQVNIKQorZGlmZiAtdXAg Y2hyb21pdW0tMTA5LjAuNTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9uYXRp dmVfcGl4bWFwX296b25lLmNjLm9yaWcgY2hyb21pdW0tMTA5LjAuNTQxNC43NC9tZWRpYS9ncHUv dmFhcGkvdmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFwX296b25lLmNjCistLS0gY2hyb21pdW0t MTA5LjAuNTQxNC43NC9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFw X296b25lLmNjLm9yaWcJMjAyMy0wMS0xMSAyMDo0NToxNy4zNDc5NDA0MjYgKzAxMDAKKysrKyBj aHJvbWl1bS0xMDkuMC41NDE0Ljc0L21lZGlhL2dwdS92YWFwaS92YWFwaV9waWN0dXJlX25hdGl2 ZV9waXhtYXBfb3pvbmUuY2MJMjAyMy0wMS0xMSAyMDo0NTo1OC4zMTQ2NzA3NTIgKzAxMDAKK0BA IC0xMDksNyArMTA5LDcgQEAKKyAgIHVpOjpPem9uZVBsYXRmb3JtKiBwbGF0Zm9ybSA9IHVpOjpP em9uZVBsYXRmb3JtOjpHZXRJbnN0YW5jZSgpOworICAgdWk6OlN1cmZhY2VGYWN0b3J5T3pvbmUq IGZhY3RvcnkgPSBwbGF0Zm9ybS0+R2V0U3VyZmFjZUZhY3RvcnlPem9uZSgpOworICAgZ2Z4OjpC dWZmZXJVc2FnZSBidWZmZXJfdXNhZ2UgPSBnZng6OkJ1ZmZlclVzYWdlOjpTQ0FOT1VUX1ZEQV9X UklURTsKKy0jaWYgQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEpCisrI2lmIEJVSUxERkxBRyhTVVBQ T1JUX1ZBQVBJX09WRVJfWDExKQorICAgLy8gVGhlICdWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0 b3InIHJlcXVpcmVzIHRoZSBWUFAgdG8gZG93bmxvYWQgdGhlIGRlY29kZWQKKyAgIC8vIGZyYW1l IGZyb20gdGhlIGludGVybmFsIHN1cmZhY2UgdG8gdGhlIGFsbG9jYXRlZCBuYXRpdmUgcGl4bWFw LgorICAgLy8gJ1NDQU5PVVRfVkRBX1dSSVRFJyBpcyB1c2VkIGZvciAnWVVWXzQyMF9CSVBMQU5B Uicgb24gQ2hyb21lT1M7IEZvciBMaW51eCwKK2RpZmYgLXVwIGNocm9taXVtLTExMC4wLjU0ODEu NjEvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9yeS5jYy5tZTEgY2hyb21pdW0t MTEwLjAuNTQ4MS42MS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9mYWN0b3J5LmNjCist LS0gY2hyb21pdW0tMTEwLjAuNTQ4MS42MS9tZWRpYS9ncHUvdmFhcGkvdmFhcGlfcGljdHVyZV9m YWN0b3J5LmNjLm1lMQkyMDIzLTAyLTAxIDE2OjQyOjAxLjAwMDAwMDAwMCArMDEwMAorKysrIGNo cm9taXVtLTExMC4wLjU0ODEuNjEvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3BpY3R1cmVfZmFjdG9y eS5jYwkyMDIzLTAyLTA0IDE2OjQ1OjI3Ljc2OTIxMTU4MSArMDEwMAorQEAgLTEzLDkgKzEzLDkg QEAKKyAjaWYgQlVJTERGTEFHKElTX09aT05FKQorICNpbmNsdWRlICJtZWRpYS9ncHUvdmFhcGkv dmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFwX296b25lLmgiCisgI2VuZGlmICAvLyBCVUlMREZM QUcoSVNfT1pPTkUpCistI2lmIEJVSUxERkxBRyhVU0VfVkFBUElfWDExKQorKyNpZiBCVUlMREZM QUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAjaW5jbHVkZSAibWVkaWEvZ3B1L3ZhYXBpL3Zh YXBpX3BpY3R1cmVfbmF0aXZlX3BpeG1hcF9hbmdsZS5oIgorLSNlbmRpZiAgLy8gQlVJTERGTEFH KFVTRV9WQUFQSV9YMTEpCisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVS X1gxMSkKKyAjaWYgZGVmaW5lZChVU0VfRUdMKQorICNpbmNsdWRlICJtZWRpYS9ncHUvdmFhcGkv dmFhcGlfcGljdHVyZV9uYXRpdmVfcGl4bWFwX2VnbC5oIgorICNlbmRpZgorQEAgLTQxLDE5ICs0 MSwyOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmFhcGlQaWN0dXJlPiBDcmVhdGVWYWFwCisgCisgfSAg Ly8gbmFtZXNwYWNlCisgCisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQor K1ZhYXBpUGljdHVyZUZhY3Rvcnk6OlZhYXBpUGljdHVyZUZhY3RvcnkoCisrICAgIGFic2w6Om9w dGlvbmFsPGJvb2w+IG1heV91c2VfdmFhcGlfb3Zlcl94MTEpCisrICAgIDogbWF5X3VzZV92YWFw aV9vdmVyX3gxMV8obWF5X3VzZV92YWFwaV9vdmVyX3gxMSkgeworKyNlbHNlCisgVmFhcGlQaWN0 dXJlRmFjdG9yeTo6VmFhcGlQaWN0dXJlRmFjdG9yeSgpIHsKKysjZW5kaWYKKyAgIHZhYXBpX2lt cGxfcGFpcnNfLmluc2VydCgKKyAgICAgICBzdGQ6Om1ha2VfcGFpcihnbDo6a0dMSW1wbGVtZW50 YXRpb25FR0xHTEVTMiwKKyAgICAgICAgICAgICAgICAgICAgICBWYWFwaVBpY3R1cmVGYWN0b3J5 OjprVmFhcGlJbXBsZW1lbnRhdGlvbkRybSkpOworLSNpZiBCVUlMREZMQUcoVVNFX1ZBQVBJX1gx MSkKKy0gIHZhYXBpX2ltcGxfcGFpcnNfLmluc2VydCgKKy0gICAgICBzdGQ6Om1ha2VfcGFpcihn bDo6a0dMSW1wbGVtZW50YXRpb25FR0xBTkdMRSwKKy0gICAgICAgICAgICAgICAgICAgICBWYWFw aVBpY3R1cmVGYWN0b3J5OjprVmFhcGlJbXBsZW1lbnRhdGlvbkFuZ2xlKSk7CistI2VsaWYgQlVJ TERGTEFHKElTX09aT05FKQorKyNpZiBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkK KysgIENIRUNLKG1heV91c2VfdmFhcGlfb3Zlcl94MTFfLmhhc192YWx1ZSgpKTsKKysgIGlmICht YXlfdXNlX3ZhYXBpX292ZXJfeDExXy52YWx1ZSgpKSB7CisrICAgIHZhYXBpX2ltcGxfcGFpcnNf Lmluc2VydCgKKysgICAgICAgIHN0ZDo6bWFrZV9wYWlyKGdsOjprR0xJbXBsZW1lbnRhdGlvbkVH TEFOR0xFLAorKyAgICAgICAgICAgICAgICAgICAgICAgVmFhcGlQaWN0dXJlRmFjdG9yeTo6a1Zh YXBpSW1wbGVtZW50YXRpb25BbmdsZSkpOworKyAgfQorKyNlbHNlCisgICB2YWFwaV9pbXBsX3Bh aXJzXy5pbnNlcnQoCisgICAgICAgc3RkOjptYWtlX3BhaXIoZ2w6OmtHTEltcGxlbWVudGF0aW9u RUdMQU5HTEUsCisgICAgICAgICAgICAgICAgICAgICAgVmFhcGlQaWN0dXJlRmFjdG9yeTo6a1Zh YXBpSW1wbGVtZW50YXRpb25Ecm0pKTsKKy0jZW5kaWYKKysjZW5kaWYgLy8gQlVJTERGTEFHKFNV UFBPUlRfVkFBUElfT1ZFUl9YMTEpCisgCisgICBEZXRlcm1pbmVQaWN0dXJlQ3JlYXRpb25BbmRE b3dubG9hZGluZ01lY2hhbmlzbSgpOworIH0KK0BAIC05MywxOSArMTAyLDE5IEBAIFZhYXBpUGlj dHVyZUZhY3Rvcnk6OkdldFZhYXBpSW1wbGVtZW50YXQKKyB9CisgCisgdWludDMyX3QgVmFhcGlQ aWN0dXJlRmFjdG9yeTo6R2V0R0xUZXh0dXJlVGFyZ2V0KCkgeworLSNpZiBCVUlMREZMQUcoVVNF X1ZBQVBJX1gxMSkKKy0gIHJldHVybiBHTF9URVhUVVJFXzJEOworLSNlbHNlCisrI2lmIEJVSUxE RkxBRyhJU19DSFJPTUVPUykKKyAgIHJldHVybiBHTF9URVhUVVJFX0VYVEVSTkFMX09FUzsKKy0j ZW5kaWYKKysjZWxzZQorKyAgcmV0dXJuIEdMX1RFWFRVUkVfMkQ7CisrI2VuZGlmICAvLyBCVUlM REZMQUcoSVNfQ0hST01FT1MpCisgfQorIAorIGdmeDo6QnVmZmVyRm9ybWF0IFZhYXBpUGljdHVy ZUZhY3Rvcnk6OkdldEJ1ZmZlckZvcm1hdCgpIHsKKy0jaWYgQlVJTERGTEFHKFVTRV9WQUFQSV9Y MTEpCistICByZXR1cm4gZ2Z4OjpCdWZmZXJGb3JtYXQ6OlJHQlhfODg4ODsKKy0jZWxzZQorKyNp ZiBCVUlMREZMQUcoSVNfQ0hST01FT1MpCisgICByZXR1cm4gZ2Z4OjpCdWZmZXJGb3JtYXQ6OllV Vl80MjBfQklQTEFOQVI7CistI2VuZGlmCisrI2Vsc2UKKysgIHJldHVybiBnZng6OkJ1ZmZlckZv cm1hdDo6UkdCWF84ODg4OworKyNlbmRpZiAgLy8gQlVJTERGTEFHKElTX0NIUk9NRU9TKQorIH0K KyAKKyB2b2lkIFZhYXBpUGljdHVyZUZhY3Rvcnk6OkRldGVybWluZVBpY3R1cmVDcmVhdGlvbkFu ZERvd25sb2FkaW5nTWVjaGFuaXNtKCkgeworQEAgLTExMywxOSArMTIyLDIzIEBAIHZvaWQgVmFh cGlQaWN0dXJlRmFjdG9yeTo6RGV0ZXJtaW5lUGljdHUKKyAjaWYgQlVJTERGTEFHKElTX09aT05F KQorICAgICAvLyBXZSBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgR0wgaW5pdGlhbGl6ZWQsIHdoaWNo IGlzIHZhbGlkIGlmIHdlIHVzZSBPem9uZS4KKyAgICAgY2FzZSBrVmFhcGlJbXBsZW1lbnRhdGlv bk5vbmU6CisrI2lmIEJVSUxERkxBRyhTVVBQT1JUX1ZBQVBJX09WRVJfWDExKQorKyAgICAgIERD SEVDSyhtYXlfdXNlX3ZhYXBpX292ZXJfeDExXy52YWx1ZV9vcihmYWxzZSkpOworKyNlbmRpZgor ICAgICAgIGNyZWF0ZV9waWN0dXJlX2NiXyA9IGJhc2U6OkJpbmRSZXBlYXRpbmcoCisgICAgICAg ICAgICZDcmVhdGVWYWFwaVBpY3R1cmVOYXRpdmVJbXBsPFZhYXBpUGljdHVyZU5hdGl2ZVBpeG1h cE96b25lPik7CisgICAgICAgbmVlZHNfdnBwX2Zvcl9kb3dubG9hZGluZ18gPSB0cnVlOworICAg ICAgIGJyZWFrOworICNlbmRpZiAgLy8gQlVJTERGTEFHKElTX09aT05FKQorLSNpZiBCVUlMREZM QUcoVVNFX1ZBQVBJX1gxMSkKKysjaWYgQlVJTERGTEFHKFNVUFBPUlRfVkFBUElfT1ZFUl9YMTEp CisgICAgIGNhc2Uga1ZhYXBpSW1wbGVtZW50YXRpb25BbmdsZToKKysgICAgICBDSEVDSyhtYXlf dXNlX3ZhYXBpX292ZXJfeDExXy52YWx1ZV9vcihmYWxzZSkpOworICAgICAgIGNyZWF0ZV9waWN0 dXJlX2NiXyA9IGJhc2U6OkJpbmRSZXBlYXRpbmcoCisgICAgICAgICAgICZDcmVhdGVWYWFwaVBp Y3R1cmVOYXRpdmVJbXBsPFZhYXBpUGljdHVyZU5hdGl2ZVBpeG1hcEFuZ2xlPik7CisgICAgICAg Ly8gTmVpdGhlciBWYWFwaVRGUFBpY3R1cmUgb3IgVmFhcGlQaWN0dXJlTmF0aXZlUGl4bWFwQW5n bGUgbmVlZHMgdGhlIFZQUC4KKyAgICAgICBuZWVkc192cHBfZm9yX2Rvd25sb2FkaW5nXyA9IGZh bHNlOworICAgICAgIGJyZWFrOworLSNlbmRpZiAgLy8gQlVJTERGTEFHKFVTRV9WQUFQSV9YMTEp CisrI2VuZGlmICAvLyBCVUlMREZMQUcoU1VQUE9SVF9WQUFQSV9PVkVSX1gxMSkKKyAgICAgY2Fz ZSBrVmFhcGlJbXBsZW1lbnRhdGlvbkRybToKKyAjaWYgQlVJTERGTEFHKElTX09aT05FKQorICAg ICAgIGNyZWF0ZV9waWN0dXJlX2NiXyA9IGJhc2U6OkJpbmRSZXBlYXRpbmcoCgpkaWZmIC0tZ2l0 IGEvY2hyb21pdW0tMTEwLXJhd19wdHItY29uc3RleHByLnBhdGNoIGIvY2hyb21pdW0tMTEwLXJh d19wdHItY29uc3RleHByLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmRlZDU4NTUKLS0tIC9kZXYvbnVsbAorKysgYi9jaHJvbWl1bS0xMTAtcmF3X3B0ci1jb25zdGV4 cHIucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorRnJvbSBiZDNhZjk5ODQzOTQyNDg4NmM2NDEyNzli NmY5YmI2ZTk1MGM3MTQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3RlcGhhbiBI YXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgorRGF0ZTogU3VuLCAxOCBEZWMgMjAyMiAx NjoxMjoyOSArMDAwMAorU3ViamVjdDogW1BBVENIXSBHQ0M6IG1ha2UgcmF3X3B0cjo6b3BlcmF0 b3IgYm9vbCBjb25zdGV4cHIKKworUmVxdWlyZWQgYmVjYXVzZSBhdXRvZmlsbDo6aW50ZXJuYWw6 OkZvcm1Gb3Jlc3QgdXNlcyBpdCBpbgorYSBjb25zdGV4cHIgbWV0aG9kLgorCitCdWc6IDgxOTI5 NAorQ2hhbmdlLUlkOiBJYjIyNThjOWQ5OGMyZTdmODhhZDE5MmI1MTdiNDg3ZjgzNGE4NzQ4MQor UmV2aWV3ZWQtb246IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9j aHJvbWl1bS9zcmMvKy80MTEwOTI0CitSZXZpZXdlZC1ieTogQmFydGVrIE5vd2llcnNraSA8YmFy dGVrbkBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVldWU6IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEw OUBnb29nbGVtYWlsLmNvbT4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsj MTA4NDc4NX0KKy0tLQorCitkaWZmIC0tZ2l0IGEvYmFzZS9tZW1vcnkvcmF3X3B0ci5oIGIvYmFz ZS9tZW1vcnkvcmF3X3B0ci5oCitpbmRleCA0MTkxZjBlLi5hMjJmNjRiNyAxMDA2NDQKKy0tLSBh L2Jhc2UvbWVtb3J5L3Jhd19wdHIuaAorKysrIGIvYmFzZS9tZW1vcnkvcmF3X3B0ci5oCitAQCAt MTMwMSw3ICsxMzAxLDkgQEAKKyAgIC8vIHBvc3NpYmxlLCBzbyB1c2UgaXQgb25seSBpZiBhYnNv bHV0ZWx5IG5lY2Vzc2FyeSAoZS5nLiBmb3IgY29uc3RfY2FzdCkuCisgICBQQV9BTFdBWVNfSU5M SU5FIFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIEdldEZvckV4dHJhY3Rpb24oKTsgfQorIAorLSAg ZXhwbGljaXQgUEFfQUxXQVlTX0lOTElORSBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4g ISF3cmFwcGVkX3B0cl87IH0KKysgIGNvbnN0ZXhwciBleHBsaWNpdCBQQV9BTFdBWVNfSU5MSU5F IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7CisrICAgIHJldHVybiAhIXdyYXBwZWRfcHRyXzsKKysg IH0KKyAKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVID0gVCwKKyAgICAgICAgICAgICB0eXBlbmFt ZSBVbnVzZWQgPSBzdGQ6OmVuYWJsZV9pZl90PAoKZGlmZiAtLWdpdCBhL2Nocm9taXVtLTExMC11 cmxfY2Fub25faW50ZXJuYWwtY2FzdC5wYXRjaCBiL2Nocm9taXVtLTExMC11cmxfY2Fub25faW50 ZXJuYWwtY2FzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTA2 NGE3Ci0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTEwLXVybF9jYW5vbl9pbnRlcm5hbC1j YXN0LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gNzQwZDExMDJlM2ZkYWFlZDU0NDFiNTY1 NjIwNWRmOWQ3ZTQyMmMzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFN0ZXBoYW4g SGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMjAgRGVjIDIwMjIg MjA6NDE6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gR0NDOiBhZGQgY2FzdCBmb3IgdmVjdG9y IHR5cGVzIGluIHVybC91cmxfY2Fub25faW50ZXJuYWwuY2MKKworR0NDIHJlcXVpcmVzIGxheCB2 ZWN0b3IgY29udmVyc2lvbiBmb3IgY29udmVydGluZyBfX3ZlY3RvcigxNikgdG8KK1NJTUQgdHlw ZXMuIEFkZCBleHBsaWNpdCBjYXN0IGluc3RlYWQuCisKK0J1ZzogODE5Mjk0CitDaGFuZ2UtSWQ6 IEljZmM5ZDM1ODYzNTBhZjQ2OWJmZDlkODNiMzU1ZDk0ODA2NDMwYzQzCitSZXZpZXdlZC1vbjog aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8r LzQxMTA3ODYKK0NvbW1pdC1RdWV1ZTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1h aWwuY29tPgorUmV2aWV3ZWQtYnk6IERhbmllbCBDaGVuZyA8ZGNoZW5nQGNocm9taXVtLm9yZz4K K0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYWluQHsjMTA4NTYxN30KKy0tLQorCitk aWZmIC0tZ2l0IGEvdXJsL3VybF9jYW5vbl9pbnRlcm5hbC5jYyBiL3VybC91cmxfY2Fub25faW50 ZXJuYWwuY2MKK2luZGV4IGU0Zjc5NDkuLmY2MjE5MjAgMTAwNjQ0CistLS0gYS91cmwvdXJsX2Nh bm9uX2ludGVybmFsLmNjCisrKysgYi91cmwvdXJsX2Nhbm9uX2ludGVybmFsLmNjCitAQCAtNDks MTEgKzQ5LDExIEBACisgICAgIGF1dG8gbWFzayA9IGIgPj0gMHgyNCAmJiBiIDw9IDB4N2UgJiYg YiAhPSAweDI3ICYmIGIgIT0gMHgzYyAmJiBiICE9IDB4M2U7CisgCisgI2lmZGVmIF9fU1NFMl9f CistICAgIGlmIChfbW1fbW92ZW1hc2tfZXBpOChtYXNrKSAhPSAweGZmZmYpIHsKKysgICAgaWYg KF9tbV9tb3ZlbWFza19lcGk4KHJlaW50ZXJwcmV0X2Nhc3Q8X19tMTI4aT4obWFzaykpICE9IDB4 ZmZmZikgeworICAgICAgIHJldHVybiBpOworICAgICB9CisgI2Vsc2UKKy0gICAgaWYgKHZtaW52 cV91OChtYXNrKSA9PSAwKSB7CisrICAgIGlmICh2bWludnFfdTgocmVpbnRlcnByZXRfY2FzdDx1 aW50OHgxNl90PihtYXNrKSkgPT0gMCkgeworICAgICAgIHJldHVybiBpOworICAgICB9CisgI2Vu ZGlmCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tMTEwLXY4LWdjYy5wYXRjaCBiL2Nocm9taXVtLTEx MC12OC1nY2MucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJjYTE5 YQotLS0gL2Rldi9udWxsCisrKyBiL2Nocm9taXVtLTExMC12OC1nY2MucGF0Y2gKQEAgLTAsMCAr MSwzMyBAQAorRnJvbSAxNWQxMjMwMDliN2U5ODdlOTQ2MzA5Y2Q1NzI0YWUxN2YzNzZiZDE2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU3RlcGhhbiBIYXJ0bWFubiA8c3RoYTA5QGdv b2dsZW1haWwuY29tPgorRGF0ZTogU3VuLCAxOCBEZWMgMjAyMiAxNjoyNjowMiArMDEwMAorU3Vi amVjdDogW1BBVENIXSBHQ0M6IGZpeCBzZWxlY3Rpb24gb2YgSU1NRURJQVRFX0NSQVNICisKK2lt bWVkaWF0ZV9jcmFzaC5oIHN0aWxsIHVzZXMgVjhfQ0NfR0NDIGRlZmluZSB0byBkZXRlcm1pbmUg d2hpY2gKK0lNTUVESUFURV9DUkFTSCBtYWNybyBpcyB1c2VkLiBUaGlzIHNob3VsZCBiZSBWOF9D Q19HTlUgaW5zdGVhZC4KK090aGVyd2lzZSB3ZWlyZCBjb21waWxlIGVycm9ycyBhcmUgaGFwcGVu aW5nIHdpdGggdHVyYm9zaGFmdC4KKworQnVnOiBjaHJvbWl1bTo4MTkyOTQKK0NoYW5nZS1JZDog SWQ3N2ZlNzQwNmFlMTZhODA0ZTFlNDY2ODQ0ZjgxZDZjNzI4ZWMwMDgKK1Jldmlld2VkLW9uOiBo dHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvdjgvdjgvKy80MTExODQ5 CitDb21taXQtUXVldWU6IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4K K1Jldmlld2VkLWJ5OiBNaWNoYWVsIExpcHBhdXR6IDxtbGlwcGF1dHpAY2hyb21pdW0ub3JnPgor Q3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21haW5AeyM4NDkyM30KKy0tLQorCitkaWZm IC0tZ2l0IGEvc3JjL2Jhc2UvaW1tZWRpYXRlLWNyYXNoLmggYi9zcmMvYmFzZS9pbW1lZGlhdGUt Y3Jhc2guaAoraW5kZXggNzcwY2IyNy4uY2U2MjQwYiAxMDA2NDQKKy0tLSBhL3Y4L3NyYy9iYXNl L2ltbWVkaWF0ZS1jcmFzaC5oCisrKysgYi92OC9zcmMvYmFzZS9pbW1lZGlhdGUtY3Jhc2guaAor QEAgLTE0MCw5ICsxNDAsOSBAQAorICAgICBbXSB7IFRSQVBfU0VRVUVOQ0VfKCk7IH0oKTsgIFwK KyAgIH0gd2hpbGUgKGZhbHNlKQorIAorLSNlbmRpZiAgLy8gIVY4X0NDX0dDQworKyNlbmRpZiAg Ly8gIVY4X0NDX0dOVQorIAorLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykgfHwgVjhfQ0NfR0NDCisr I2lmIGRlZmluZWQoX19jbGFuZ19fKSB8fCBWOF9DQ19HTlUKKyAKKyAvLyBfX2J1aWx0aW5fdW5y ZWFjaGFibGUoKSBoaW50cyB0byB0aGUgY29tcGlsZXIgdGhhdCB0aGlzIGlzIG5vcmV0dXJuIGFu ZCBjYW4KKyAvLyBiZSBwYWNrZWQgaW4gdGhlIGZ1bmN0aW9uIGVwaWxvZ3VlLgoKZGlmZiAtLWdp dCBhL2Nocm9taXVtLTExMS12OC1zdGQtbGF5b3V0MS5wYXRjaCBiL2Nocm9taXVtLTExMS12OC1z dGQtbGF5b3V0MS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWIy NjMzCi0tLSAvZGV2L251bGwKKysrIGIvY2hyb21pdW0tMTExLXY4LXN0ZC1sYXlvdXQxLnBhdGNo CkBAIC0wLDAgKzEsMjIyOSBAQAorRnJvbSA0NzI0MjllNjIzY2Y0OGU4NjRhN2EyZjEwZDU4OTgx N2E4ODI4OWExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTmlrb2xhb3MgUGFwYXNw eXJvdSA8bmlrb2xhb3NAY2hyb21pdW0ub3JnPgorRGF0ZTogV2VkLCAxOCBKYW4gMjAyMyAyMTox MTo1OSArMDEwMAorU3ViamVjdDogW1BBVENIXSBbaGVhcF0gRml4IHNhdmluZyB0aGUgY2FsbGVl LXNhdmVkIHJlZ2lzdGVycyBvbiBzdGFjaworCitUaGlzIENMIHJlaW5zdGF0ZXMgdGhlIHRyYW1w b2xpbmUgZm9yIHB1c2hpbmcgdGhlIHZhbHVlcyBvZgorY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBv biB0aGUgc3RhY2ssIHdoaWNoIGlzIHVzZWQgZm9yIHN0YWNrIHNjYW5uaW5nLgorSXQgcmVpbnRy b2R1Y2VzIHRoZSBzZXQgb2YgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZ1bmN0aW9ucworUHVzaEFs bFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjaywgcmVtb3ZlZCBpbiBjcnJldi5jb20vYy8zOTg5MTQz LgorVGhlIHJlYXNvbiBmb3IgdGhpcyBjaGFuZ2UgaXMgdGhhdCB0aGUgc2ltcGxlciBhcmNoaXRl Y3R1cmUtc3BlY2lmaWMKK2Z1bmN0aW9ucyBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgZmFpbGVk IHRvIGNvcnJlY3RseSBzYXZlIHRoZQordmFsdWVzIG9mIHRoZSByZWdpc3RlcnMsIGluIHRoZSBw cmVzZW5jZSBvZiBDKysgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KKworSXQgYWxzbyByZW1vdmVz IHRoZSBzdGFjayBjb250ZXh0LCBpbnRyb2R1Y2VkIGluIGNycmV2LmNvbS9jLzQwMTc1MTIsCith bmQgdXNlcyBhZ2FpbiB0aGUgdHJhbXBvbGluZSBmb3IgaXRlcmF0aW5nIHRocm91Z2ggdGhlIHN0 YWNrLgorCitCdWc6IHY4OjEzMjU3CitDaGFuZ2UtSWQ6IEk5ZTY1NmE5YjNiYTY2MTYxNjg2MDIz MDBmMjE4MGI0ZjM0MDU5M2YzCitSZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcu Z29vZ2xlc291cmNlLmNvbS9jL3Y4L3Y4LysvNDE3MTYzOQorQ29tbWl0LVF1ZXVlOiBOaWtvbGFv cyBQYXBhc3B5cm91IDxuaWtvbGFvc0BjaHJvbWl1bS5vcmc+CitSZXZpZXdlZC1ieTogT21lciBL YXR6IDxvbWVya2F0ekBjaHJvbWl1bS5vcmc+CitSZXZpZXdlZC1ieTogTWljaGFlbCBMaXBwYXV0 eiA8bWxpcHBhdXR6QGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFk cy9tYWluQHsjODUzOTR9CisKKyhzdHJpcHBlZCB0ZXN0cykKKy0tLQorCitkaWZmIC0tZ2l0IGEv QlVJTEQuYmF6ZWwgYi9CVUlMRC5iYXplbAoraW5kZXggMjgzZWVmZi4uZTMyNjlhNCAxMDA2NDQK Ky0tLSBhL3Y4L0JVSUxELmJhemVsCisrKysgYi92OC9CVUlMRC5iYXplbAorQEAgLTMyMDEsMTYg KzMyMDEsMTYgQEAKKyAgICAgICAgICMgTm90ZSB0aGVzZSBjYW5ub3QgYmUgdjhfdGFyZ2V0X2lz Xyogc2VsZWN0cyBiZWNhdXNlIHRoZXNlIGNvbnRhaW4KKyAgICAgICAgICMgaW5saW5lIGFzc2Vt Ymx5IHRoYXQgcnVucyBpbnNpZGUgdGhlIGV4ZWN1dGFibGUuIFNpbmNlIHRoZXNlIGFyZQorICAg ICAgICAgIyBsaW5rZWQgZGlyZWN0bHkgaW50byBta3NuYXBzaG90LCB0aGV5IG11c3QgdXNlIHRo ZSBhY3R1YWwgdGFyZ2V0IGNwdS4KKy0gICAgICAgICJAdjgvL2JhemVsL2NvbmZpZzppc19pbmxp bmVfYXNtX2lhMzIiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvc2F2ZV9yZWdpc3RlcnNfYXNt LmNjIl0sCistICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV94NjQiOiBb InNyYy9oZWFwL2Jhc2UvYXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MiXSwKKy0gICAgICAg ICJAdjgvL2JhemVsL2NvbmZpZzppc19pbmxpbmVfYXNtX2FybSI6IFsic3JjL2hlYXAvYmFzZS9h c20vYXJtL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyJdLAorLSAgICAgICAgIkB2OC8vYmF6ZWwvY29u ZmlnOmlzX2lubGluZV9hc21fYXJtNjQiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3NhdmVf cmVnaXN0ZXJzX2FzbS5jYyJdLAorLSAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGlu ZV9hc21fczM5MHgiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL3MzOTAvc2F2ZV9yZWdpc3RlcnNfYXNt LmNjIl0sCistICAgICAgICAiQHY4Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV9yaXNjdjY0 IjogWyJzcmMvaGVhcC9iYXNlL2FzbS9yaXNjdjY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyJdLAor LSAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGluZV9hc21fcHBjNjRsZSI6IFsic3Jj L2hlYXAvYmFzZS9hc20vcHBjL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyJdLAorLSAgICAgICAgIkB2 OC8vYmF6ZWwvY29uZmlnOmlzX21zdmNfYXNtX2lhMzIiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL2lh MzIvc2F2ZV9yZWdpc3RlcnNfbWFzbS5hc20iXSwKKy0gICAgICAgICJAdjgvL2JhemVsL2NvbmZp Zzppc19tc3ZjX2FzbV94NjQiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL3g2NC9zYXZlX3JlZ2lzdGVy c19tYXNtLmFzbSJdLAorLSAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX21zdmNfYXNtX2Fy bTY0IjogWyJzcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19tYXNtLlMiXSwK KysgICAgICAgICJAdjgvL2JhemVsL2NvbmZpZzppc19pbmxpbmVfYXNtX2lhMzIiOiBbInNyYy9o ZWFwL2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIl0sCisrICAgICAgICAiQHY4 Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV94NjQiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL3g2 NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MiXSwKKysgICAgICAgICJAdjgvL2JhemVsL2NvbmZpZzpp c19pbmxpbmVfYXNtX2FybSI6IFsic3JjL2hlYXAvYmFzZS9hc20vYXJtL3B1c2hfcmVnaXN0ZXJz X2FzbS5jYyJdLAorKyAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGluZV9hc21fYXJt NjQiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyJdLAor KyAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX2lubGluZV9hc21fczM5MHgiOiBbInNyYy9o ZWFwL2Jhc2UvYXNtL3MzOTAvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIl0sCisrICAgICAgICAiQHY4 Ly9iYXplbC9jb25maWc6aXNfaW5saW5lX2FzbV9yaXNjdjY0IjogWyJzcmMvaGVhcC9iYXNlL2Fz bS9yaXNjdjY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYyJdLAorKyAgICAgICAgIkB2OC8vYmF6ZWwv Y29uZmlnOmlzX2lubGluZV9hc21fcHBjNjRsZSI6IFsic3JjL2hlYXAvYmFzZS9hc20vcHBjL3B1 c2hfcmVnaXN0ZXJzX2FzbS5jYyJdLAorKyAgICAgICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX21z dmNfYXNtX2lhMzIiOiBbInNyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdpc3RlcnNfbWFz bS5hc20iXSwKKysgICAgICAgICJAdjgvL2JhemVsL2NvbmZpZzppc19tc3ZjX2FzbV94NjQiOiBb InNyYy9oZWFwL2Jhc2UvYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19tYXNtLmFzbSJdLAorKyAgICAg ICAgIkB2OC8vYmF6ZWwvY29uZmlnOmlzX21zdmNfYXNtX2FybTY0IjogWyJzcmMvaGVhcC9iYXNl L2FzbS9hcm02NC9wdXNoX3JlZ2lzdGVyc19tYXNtLlMiXSwKKyAgICAgfSksCisgKQorIAorZGlm ZiAtLWdpdCBhL0JVSUxELmduIGIvQlVJTEQuZ24KK2luZGV4IDgwYTdlYjYuLjU2Nzk4ZGIgMTAw NjQ0CistLS0gYS92OC9CVUlMRC5nbgorKysrIGIvdjgvQlVJTEQuZ24KK0BAIC01OTg5LDMxICs1 OTg5LDMxIEBACisgCisgICBpZiAoaXNfY2xhbmcgfHwgIWlzX3dpbikgeworICAgICBpZiAoY3Vy cmVudF9jcHUgPT0gIng2NCIpIHsKKy0gICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2Uv YXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MiIF0KKysgICAgICBzb3VyY2VzICs9IFsgInNy Yy9oZWFwL2Jhc2UvYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MiIF0KKyAgICAgfSBlbHNl IGlmIChjdXJyZW50X2NwdSA9PSAieDg2IikgeworLSAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hl YXAvYmFzZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVyc19hc20uY2MiIF0KKysgICAgICBzb3VyY2Vz ICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIiBdCisg ICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybSIpIHsKKy0gICAgICBzb3VyY2VzICs9 IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2FybS9zYXZlX3JlZ2lzdGVyc19hc20uY2MiIF0KKysgICAg ICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2FybS9wdXNoX3JlZ2lzdGVyc19hc20u Y2MiIF0KKyAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CistICAgICAg c291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19hc20u Y2MiIF0KKysgICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3B1c2hf cmVnaXN0ZXJzX2FzbS5jYyIgXQorICAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2 NCIpIHsKKy0gICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL3BwYy9zYXZlX3Jl Z2lzdGVyc19hc20uY2MiIF0KKysgICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNt L3BwYy9wdXNoX3JlZ2lzdGVyc19hc20uY2MiIF0KKyAgICAgfSBlbHNlIGlmIChjdXJyZW50X2Nw dSA9PSAiczM5MHgiKSB7CistICAgICAgc291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2FzbS9z MzkwL3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyIgXQorKyAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hl YXAvYmFzZS9hc20vczM5MC9wdXNoX3JlZ2lzdGVyc19hc20uY2MiIF0KKyAgICAgfSBlbHNlIGlm IChjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKSB7CistICAgICAgc291cmNlcyArPSBbICJzcmMv aGVhcC9iYXNlL2FzbS9taXBzNjQvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIiBdCisrICAgICAgc291 cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2FzbS9taXBzNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNj IiBdCisgICAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImxvb25nNjQiKSB7CistICAgICAg c291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2FzbS9sb29uZzY0L3NhdmVfcmVnaXN0ZXJzX2Fz bS5jYyIgXQorKyAgICAgIHNvdXJjZXMgKz0gWyAic3JjL2hlYXAvYmFzZS9hc20vbG9vbmc2NC9w dXNoX3JlZ2lzdGVyc19hc20uY2MiIF0KKyAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAi cmlzY3Y2NCIgfHwgY3VycmVudF9jcHUgPT0gInJpc2N2MzIiKSB7CistICAgICAgc291cmNlcyAr PSBbICJzcmMvaGVhcC9iYXNlL2FzbS9yaXNjdi9zYXZlX3JlZ2lzdGVyc19hc20uY2MiIF0KKysg ICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL3Jpc2N2L3B1c2hfcmVnaXN0ZXJz X2FzbS5jYyIgXQorICAgICB9CisgICB9IGVsc2UgaWYgKGlzX3dpbikgeworICAgICBpZiAoY3Vy cmVudF9jcHUgPT0gIng2NCIpIHsKKy0gICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2Uv YXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19tYXNtLmFzbSIgXQorKyAgICAgIHNvdXJjZXMgKz0gWyAi c3JjL2hlYXAvYmFzZS9hc20veDY0L3B1c2hfcmVnaXN0ZXJzX21hc20uYXNtIiBdCisgICAgIH0g ZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gIng4NiIpIHsKKy0gICAgICBzb3VyY2VzICs9IFsgInNy Yy9oZWFwL2Jhc2UvYXNtL2lhMzIvc2F2ZV9yZWdpc3RlcnNfbWFzbS5hc20iIF0KKysgICAgICBz b3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdpc3RlcnNfbWFzbS5h c20iIF0KKyAgICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CistICAgICAg c291cmNlcyArPSBbICJzcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19tYXNt LlMiIF0KKysgICAgICBzb3VyY2VzICs9IFsgInNyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3B1c2hf cmVnaXN0ZXJzX21hc20uUyIgXQorICAgICB9CisgICB9CisgCitkaWZmIC0tZ2l0IGEvc3JjL2V4 ZWN1dGlvbi9pc29sYXRlLmNjIGIvc3JjL2V4ZWN1dGlvbi9pc29sYXRlLmNjCitpbmRleCA4YTJl YzgwLi4zMTUzNmExIDEwMDY0NAorLS0tIGEvdjgvc3JjL2V4ZWN1dGlvbi9pc29sYXRlLmNjCisr KysgYi92OC9zcmMvZXhlY3V0aW9uL2lzb2xhdGUuY2MKK0BAIC0zMDc1LDggKzMwNzUsNyBAQAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC5nZXQoKTsKKyAgIGN1cnJlbnQgPSBXYXNtQ29udGludWF0aW9u T2JqZWN0OjpjYXN0KGN1cnJlbnQpLnBhcmVudCgpOworLSAgdGhyZWFkX2xvY2FsX3RvcCgpLT5z dGFja18uU2V0U3RhY2tTdGFydCgKKy0gICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGFj ay0+YmFzZSgpKSk7CisrICBoZWFwKCktPlNldFN0YWNrU3RhcnQocmVpbnRlcnByZXRfY2FzdDx2 b2lkKj4oc3RhY2stPmJhc2UoKSkpOworICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhZGQgYWxsIGlu YWN0aXZlIHN0YWNrcy4gT25seSB0aGUgb25lcyBpbiB0aGUgYWN0aXZlIGNoYWluCisgICAvLyBt YXkgY29udGFpbiBjcHAgaGVhcCBwb2ludGVycy4KKyAgIHdoaWxlICghY3VycmVudC5Jc1VuZGVm aW5lZCgpKSB7CitAQCAtMzM3Miw5ICszMzcxLDEyIEBACisgICBJc29sYXRlKiBzYXZlZF9pc29s YXRlID0gaXNvbGF0ZS0+VHJ5R2V0Q3VycmVudCgpOworICAgU2V0SXNvbGF0ZVRocmVhZExvY2Fs cyhpc29sYXRlLCBudWxscHRyKTsKKyAgIGlzb2xhdGUtPnNldF90aHJlYWRfaWQoVGhyZWFkSWQ6 OkN1cnJlbnQoKSk7CistICBpc29sYXRlLT50aHJlYWRfbG9jYWxfdG9wKCktPnN0YWNrXyA9Cist ICAgICAgc2F2ZWRfaXNvbGF0ZSA/IHN0ZDo6bW92ZShzYXZlZF9pc29sYXRlLT50aHJlYWRfbG9j YWxfdG9wKCktPnN0YWNrXykKKy0gICAgICAgICAgICAgICAgICAgIDogOjpoZWFwOjpiYXNlOjpT dGFjayhiYXNlOjpTdGFjazo6R2V0U3RhY2tTdGFydCgpKTsKKysgIGlmIChzYXZlZF9pc29sYXRl KSB7CisrICAgIGlzb2xhdGUtPnRocmVhZF9sb2NhbF90b3AoKS0+c3RhY2tfID0KKysgICAgICAg IHN0ZDo6bW92ZShzYXZlZF9pc29sYXRlLT50aHJlYWRfbG9jYWxfdG9wKCktPnN0YWNrXyk7Cisr ICB9IGVsc2UgeworKyAgICBpc29sYXRlLT5oZWFwKCktPlNldFN0YWNrU3RhcnQoYmFzZTo6U3Rh Y2s6OkdldFN0YWNrU3RhcnQoKSk7CisrICB9CisgCisgICBib29sIG93bnNfc2hhcmVkX2lzb2xh dGUgPSBpc29sYXRlLT5vd25zX3NoYXJlZF9pc29sYXRlXzsKKyAgIElzb2xhdGUqIG1heWJlX3No YXJlZF9pc29sYXRlID0gaXNvbGF0ZS0+c2hhcmVkX2lzb2xhdGVfOworZGlmZiAtLWdpdCBhL3Ny Yy9leGVjdXRpb24vdGhyZWFkLWxvY2FsLXRvcC5jYyBiL3NyYy9leGVjdXRpb24vdGhyZWFkLWxv Y2FsLXRvcC5jYworaW5kZXggMGQ3MDcxZC4uYzExNWFlMCAxMDA2NDQKKy0tLSBhL3Y4L3NyYy9l eGVjdXRpb24vdGhyZWFkLWxvY2FsLXRvcC5jYworKysrIGIvdjgvc3JjL2V4ZWN1dGlvbi90aHJl YWQtbG9jYWwtdG9wLmNjCitAQCAtNDQsMTAgKzQ0LDEzIEBACisgICBDbGVhcigpOworICAgaXNv bGF0ZV8gPSBpc29sYXRlOworICAgdGhyZWFkX2lkXyA9IFRocmVhZElkOjpDdXJyZW50KCk7Cist ICBzdGFja18uU2V0U3RhY2tTdGFydChiYXNlOjpTdGFjazo6R2V0U3RhY2tTdGFydCgpKTsKKyAj aWYgVjhfRU5BQkxFX1dFQkFTU0VNQkxZCisrICBzdGFja18uU2V0U3RhY2tTdGFydChiYXNlOjpT dGFjazo6R2V0U3RhY2tTdGFydCgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgdjhfZmxhZ3Mu ZXhwZXJpbWVudGFsX3dhc21fc3RhY2tfc3dpdGNoaW5nKTsKKyAgIHRocmVhZF9pbl93YXNtX2Zs YWdfYWRkcmVzc18gPSByZWludGVycHJldF9jYXN0PEFkZHJlc3M+KAorICAgICAgIHRyYXBfaGFu ZGxlcjo6R2V0VGhyZWFkSW5XYXNtVGhyZWFkTG9jYWxBZGRyZXNzKCkpOworKyNlbHNlCisrICBz dGFja18uU2V0U3RhY2tTdGFydChiYXNlOjpTdGFjazo6R2V0U3RhY2tTdGFydCgpLCBmYWxzZSk7 CisgI2VuZGlmICAvLyBWOF9FTkFCTEVfV0VCQVNTRU1CTFkKKyAjaWZkZWYgVVNFX1NJTVVMQVRP UgorICAgc2ltdWxhdG9yXyA9IFNpbXVsYXRvcjo6Y3VycmVudChpc29sYXRlKTsKK2RpZmYgLS1n aXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9hcm0vcHVzaF9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hl YXAvYmFzZS9hc20vYXJtL3B1c2hfcmVnaXN0ZXJzX2FzbS5jYworbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAuLjUyNDZjM2YKKy0tLSAvZGV2L251bGwKKysrKyBiL3Y4L3NyYy9o ZWFwL2Jhc2UvYXNtL2FybS9wdXNoX3JlZ2lzdGVyc19hc20uY2MKK0BAIC0wLDAgKzEsMzkgQEAK KysvLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJl c2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE LXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl LgorKworKy8vIFB1c2ggYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgdG8gZ2V0IHRoZW0gb24g dGhlIHN0YWNrIGZvciBjb25zZXJ2YXRpdmUKKysvLyBzdGFjayBzY2FubmluZy4KKysvLworKy8v IFNlZSBhc20veDY0L3B1c2hfcmVnaXN0ZXJzX2NsYW5nLmNjIGZvciB3aHkgdGhlIGZ1bmN0aW9u IGlzIG5vdCBnZW5lcmF0ZWQKKysvLyB1c2luZyBjbGFuZy4KKysvLworKy8vIERvIG5vdCBkZXBl bmQgb24gVjhfVEFSR0VUX09TXyogZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJp ZGUgdGhlCisrLy8gR04gdG9vbGNoYWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUg dGhlbS4KKysKKysvLyBXZSBtYWludGFpbiA4LWJ5dGUgYWxpZ25tZW50IGF0IGNhbGxzIGJ5IHB1 c2hpbmcgYW4gYWRkaXRpb25hbAorKy8vIG5vbi1jYWxsZWUtc2F2ZWQgcmVnaXN0ZXIgKHIzKS4K KysvLworKy8vIENhbGxpbmcgY29udmVudGlvbiBzb3VyY2U6CisrLy8gaHR0cHM6Ly9lbi53aWtp cGVkaWEub3JnL3dpa2kvQ2FsbGluZ19jb252ZW50aW9uI0FSTV8oQTMyKQorKy8vIGh0dHA6Ly9p bmZvY2VudGVyLmFybS5jb20vaGVscC9pbmRleC5qc3A/dG9waWM9L2NvbS5hcm0uZG9jLmZhcXMv a2E0MTI3Lmh0bWwKKythc20oIi5nbG9ibCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNr ICAgICAgICAgICAgIFxuIgorKyAgICAiLnR5cGUgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVT dGFjaywgJWZ1bmN0aW9uICAgXG4iCisrICAgICIuaGlkZGVuIFB1c2hBbGxSZWdpc3RlcnNBbmRJ dGVyYXRlU3RhY2sgICAgICAgICAgICBcbiIKKysgICAgIlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVy YXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQdXNoIGFsbCBjYWxsZWUt c2F2ZWQgcmVnaXN0ZXJzIGFuZCBzYXZlIHJldHVybiBhZGRyZXNzLgorKyAgICAvLyBPbmx5IHty NC1yMTF9IGFyZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLiBQdXNoIHIzIGluIGFkZGl0aW9uIHRv IGFsaWduCisrICAgIC8vIHRoZSBzdGFjayBiYWNrIHRvIDggYnl0ZXMuCisrICAgICIgIHB1c2gg e3IzLXIxMSwgbHJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8g UGFzcyAxc3QgcGFyYW1ldGVyIChyMCkgdW5jaGFuZ2VkIChTdGFjayopLgorKyAgICAvLyBQYXNz IDJuZCBwYXJhbWV0ZXIgKHIxKSB1bmNoYW5nZWQgKFN0YWNrVmlzaXRvciopLgorKyAgICAvLyBT YXZlIDNyZCBwYXJhbWV0ZXIgKHIyOyBJdGVyYXRlU3RhY2tDYWxsYmFjaykuCisrICAgICIgIG1v diByMywgcjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAg Ly8gUGFzcyAzcmQgcGFyYW1ldGVyIGFzIHNwIChzdGFjayBwb2ludGVyKS4KKysgICAgIiAgbW92 IHIyLCBzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAv LyBDYWxsIHRoZSBjYWxsYmFjay4KKysgICAgIiAgYmx4IHIzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBEaXNjYXJkIGFsbCB0aGUgcmVnaXN0 ZXJzLgorKyAgICAiICBhZGQgc3AsIHNwLCAjMzYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCisrICAgIC8vIFBvcCBsciBpbnRvIHBjIHdoaWNoIHJldHVybnMgYW5kIHN3aXRj aGVzIG1vZGUgaWYgbmVlZGVkLgorKyAgICAiICBwb3Age3BjfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iKTsKK2RpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2Fz bS9hcm0vc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAvYmFzZS9hc20vYXJtL3NhdmVf cmVnaXN0ZXJzX2FzbS5jYworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBhY2U5NTAz Li4wMDAwMDAwCistLS0gYS92OC9zcmMvaGVhcC9iYXNlL2FzbS9hcm0vc2F2ZV9yZWdpc3RlcnNf YXNtLmNjCisrKysgL2Rldi9udWxsCitAQCAtMSwzNiArMCwwIEBACistLy8gQ29weXJpZ2h0IDIw MjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0vLyBVc2Ug b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo YXQgY2FuIGJlCistLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0KKy0jaW5jbHVkZSA8 c3JjL2hlYXAvYmFzZS9zdGFjay5oPgorLQorLS8vIFNhdmUgYWxsIGNhbGxlZS1zYXZlZCByZWdp c3RlcnMgaW4gdGhlIHNwZWNpZmllZCBidWZmZXIuCistLy8gZXh0ZXJuICJDIiB2b2lkIFNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVycyhpbnRwdHJfdCogYnVmZmVyKTsKKy0KKy0vLyBTZWUgYXNtL3g2 NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgZm9yIHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVy YXRlZAorLS8vIHVzaW5nIGNsYW5nLgorLS8vCistLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9UQVJH RVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKKy0vLyBH TiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFuZCBub3QgcHJvdmlkZSB0aGVtLgorLS8vCist Ly8gV2UgbWFpbnRhaW4gOC1ieXRlIGFsaWdubWVudCBhdCBjYWxscyBieSBwdXNoaW5nIGFuIGFk ZGl0aW9uYWwKKy0vLyBub24tY2FsbGVlLXNhdmVkIHJlZ2lzdGVyIChyMykuCistLy8KKy0vLyBD YWxsaW5nIGNvbnZlbnRpb24gc291cmNlOgorLS8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93 aWtpL0NhbGxpbmdfY29udmVudGlvbiNBUk1fKEEzMikKKy0vLyBodHRwOi8vaW5mb2NlbnRlci5h cm0uY29tL2hlbHAvaW5kZXguanNwP3RvcGljPS9jb20uYXJtLmRvYy5mYXFzL2thNDEyNy5odG1s CistCistLy8gOCAzMi1iaXQgcmVnaXN0ZXJzID0gOCBpbnRwcnRfdAorLXN0YXRpY19hc3NlcnQo aGVhcDo6YmFzZTo6U3RhY2s6Ok51bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoKSA9PSA4LAor LSAgICAgICAgICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVkIHJl Z2lzdGVycyIpOworLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0cl90KSA9PSA0LCAiTWlzbWF0 Y2ggaW4gd29yZCBzaXplIik7CistCistYXNtKCIuZ2xvYmwgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0 ZXJzICAgICAgICAgICAgIFxuIgorLSAgICAiLnR5cGUgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJz LCAlZnVuY3Rpb24gICBcbiIKKy0gICAgIi5oaWRkZW4gU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJz ICAgICAgICAgICAgXG4iCistICAgICJTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAgICAgICAg ICAgICAgICAgIFxuIgorLSAgICAvLyByMDogWyBpbnRwdHJfdCogYnVmZmVyIF0KKy0gICAgLy8g U2F2ZSB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVyczoge3I0LXIxMX0uCistICAgICIgIHN0bSBy MCwge3I0LXIxMX0gICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAvLyBSZXR1cm4u CistICAgICIgIGJ4IGxyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7 CitkaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvcHVzaF9yZWdpc3RlcnNfYXNt LmNjIGIvc3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMWVmY2MzNAorLS0tIC9kZXYvbnVsbAor KysrIGIvdjgvc3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCitA QCAtMCwwICsxLDYyIEBACisrLy8gQ29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KKysKKysvLyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJz IHRvIGdldCB0aGVtIG9uIHRoZSBzdGFjayBmb3IgY29uc2VydmF0aXZlCisrLy8gc3RhY2sgc2Nh bm5pbmcuCisrLy8KKysvLyBTZWUgYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19jbGFuZy5jYyBmb3Ig d2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCisrLy8gdXNpbmcgY2xhbmcuCisrLy8K KysvLyBEbyBub3QgZGVwZW5kIG9uIFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJl ZGRlcnMgbWF5IG92ZXJyaWRlIHRoZQorKy8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykg YW5kIG5vdCBwcm92aWRlIHRoZW0uCisrCisrLy8gV2UgbWFpbnRhaW4gMTYtYnl0ZSBhbGlnbm1l bnQuCisrLy8KKysvLyBDYWxsaW5nIGNvbnZlbnRpb24gc291cmNlOgorKy8vIGh0dHBzOi8vZW4u d2lraXBlZGlhLm9yZy93aWtpL0NhbGxpbmdfY29udmVudGlvbiNBUk1fKEE2NCkKKysKKythc20o CisrI2lmIGRlZmluZWQoX19BUFBMRV9fKQorKyAgICAiLmdsb2JsIF9QdXNoQWxsUmVnaXN0ZXJz QW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgXG4iCisrICAgICIucHJpdmF0ZV9leHRlcm4gX1B1 c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sgICBcbiIKKysgICAgIi5wMmFsaWduIDIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiX1B1c2hBbGxS ZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgXG4iCisrI2Vsc2UgIC8v ICFkZWZpbmVkKF9fQVBQTEVfXykKKysgICAgIi5nbG9ibCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRl cmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgorKyNpZiAhZGVmaW5lZChfV0lONjQpCisrICAgICIu dHlwZSBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrLCAlZnVuY3Rpb24gICBcbiIKKysg ICAgIi5oaWRkZW4gUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAgICAgIFxu IgorKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjY0KQorKyAgICAiLnAyYWxpZ24gMiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICJQdXNoQWxsUmVnaXN0 ZXJzQW5kSXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgICBcbiIKKysjZW5kaWYgIC8vICFk ZWZpbmVkKF9fQVBQTEVfXykKKysgICAgLy8geDE5LXgyOSBhcmUgY2FsbGVlLXNhdmVkLgorKyAg ICAiICBzdHAgeDE5LCB4MjAsIFtzcCwgIy0xNl0hICAgICAgICAgICAgICAgICAgICAgICAgXG4i CisrICAgICIgIHN0cCB4MjEsIHgyMiwgW3NwLCAjLTE2XSEgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgIiAgc3RwIHgyMywgeDI0LCBbc3AsICMtMTZdISAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAiICBzdHAgeDI1LCB4MjYsIFtzcCwgIy0xNl0hICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCisrICAgICIgIHN0cCB4MjcsIHgyOCwgW3NwLCAjLTE2XSEgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKysjaWZkZWYgVjhfRU5BQkxFX0NPTlRST0xfRkxPV19JTlRF R1JJVFkKKysgICAgLy8gU2lnbiByZXR1cm4gYWRkcmVzcy4KKysgICAgIiAgcGFjaWFzcCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyNlbmRpZgorKyAgICAi ICBzdHAgZnAsIGxyLCAgIFtzcCwgIy0xNl0hICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisr ICAgIC8vIE1haW50YWluIGZyYW1lIHBvaW50ZXIuCisrICAgICIgIG1vdiBmcCwgc3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gUGFzcyAxc3QgcGFy YW1ldGVyICh4MCkgdW5jaGFuZ2VkIChTdGFjayopLgorKyAgICAvLyBQYXNzIDJuZCBwYXJhbWV0 ZXIgKHgxKSB1bmNoYW5nZWQgKFN0YWNrVmlzaXRvciopLgorKyAgICAvLyBTYXZlIDNyZCBwYXJh bWV0ZXIgKHgyOyBJdGVyYXRlU3RhY2tDYWxsYmFjaykKKysgICAgIiAgbW92IHg3LCB4MiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQYXNzIDNyZCBw YXJhbWV0ZXIgYXMgc3AgKHN0YWNrIHBvaW50ZXIpLgorKyAgICAiICBtb3YgeDIsIHNwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIGJsciB4NyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gTG9hZCBy ZXR1cm4gYWRkcmVzcyBhbmQgZnJhbWUgcG9pbnRlci4KKysgICAgIiAgbGRwIGZwLCBsciwgW3Nw XSwgIzE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyNpZmRlZiBWOF9FTkFCTEVf Q09OVFJPTF9GTE9XX0lOVEVHUklUWQorKyAgICAvLyBBdXRoZW50aWNhdGUgcmV0dXJuIGFkZHJl c3MuCisrICAgICIgIGF1dGlhc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKKysjZW5kaWYKKysgICAgLy8gRHJvcCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVy cy4KKysgICAgIiAgYWRkIHNwLCBzcCwgIzgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAiICByZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iKTsKK2RpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9wdXNo X3JlZ2lzdGVyc19tYXNtLlMgYi9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9wdXNoX3JlZ2lzdGVy c19tYXNtLlMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi44ODg1MjNhCist LS0gL2Rldi9udWxsCisrKysgYi92OC9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9wdXNoX3JlZ2lz dGVyc19tYXNtLlMKK0BAIC0wLDAgKzEsMzIgQEAKKys7IENvcHlyaWdodCAyMDIwIHRoZSBWOCBw cm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrOyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisr OyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKzsgVGhpcyBmaWxlIGlzIGV4YWN0bHkg dGhlIHNhbWUgYXMgcHVzaF9yZWdpc3RlcnNfYXNtLmNjLCBqdXN0IGZvcm1hdHRlZCBmb3IKKys7 IHRoZSBNaWNyb3NvZnQgQXJtIEFzc2VtYmxlci4KKysKKysgICAgQVJFQSB8LnRleHR8LCBDT0RF LCBBTElHTj00LCBSRUFET05MWQorKyAgICBFWFBPUlQgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJh dGVTdGFjaworK1B1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sKKysgICAgOyB4MTkteDI5 IGFyZSBjYWxsZWUtc2F2ZWQKKysgICAgU1RQIHgxOSwgeDIwLCBbc3AsICMtMTZdIQorKyAgICBT VFAgeDIxLCB4MjIsIFtzcCwgIy0xNl0hCisrICAgIFNUUCB4MjMsIHgyNCwgW3NwLCAjLTE2XSEK KysgICAgU1RQIHgyNSwgeDI2LCBbc3AsICMtMTZdIQorKyAgICBTVFAgeDI3LCB4MjgsIFtzcCwg Iy0xNl0hCisrICAgIFNUUCBmcCwgbHIsIFtzcCwgIy0xNl0hCisrICAgIDsgTWFpbnRhaW4gZnJh bWUgcG9pbnRlcgorKyAgICBNT1YgZnAsIHNwCisrICAgIDsgUGFzcyAxc3QgcGFyYW1ldGVyICh4 MCkgdW5jaGFuZ2VkIChTdGFjayopLgorKyAgICA7IFBhc3MgMm5kIHBhcmFtZXRlciAoeDEpIHVu Y2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCisrICAgIDsgU2F2ZSAzcmQgcGFyYW1ldGVyICh4Mjsg SXRlcmF0ZVN0YWNrQ2FsbGJhY2spCisrICAgIE1PViB4NywgeDIKKysgICAgOyBQYXNzIDNyZCBw YXJhbWV0ZXIgYXMgc3AgKHN0YWNrIHBvaW50ZXIpCisrICAgIE1PViB4Miwgc3AKKysgICAgQkxS IHg3CisrICAgIDsgTG9hZCByZXR1cm4gYWRkcmVzcworKyAgICBMRFIgbHIsIFtzcCwgIzhdCisr ICAgIDsgUmVzdG9yZSBmcmFtZSBwb2ludGVyIGFuZCBwb3AgYWxsIGNhbGxlZS1zYXZlZCByZWdp c3RlcnMuCisrICAgIExEUiBmcCwgW3NwXSwgIzk2CisrICAgIFJFVAorKyAgICBFTkQKK2RpZmYg LS1naXQgYS9zcmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgYi9z cmMvaGVhcC9iYXNlL2FzbS9hcm02NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggNWZlODFkOC4uMDAwMDAwMAorLS0tIGEvdjgvc3JjL2hlYXAv YmFzZS9hc20vYXJtNjQvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjCisrKysgL2Rldi9udWxsCitAQCAt MSw1MCArMCwwIEBACistLy8gQ29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4g QWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCistLy8gZm91bmQgaW4gdGhl IExJQ0VOU0UgZmlsZS4KKy0KKy0jaW5jbHVkZSA8c3JjL2hlYXAvYmFzZS9zdGFjay5oPgorLQor LS8vIFNhdmUgYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgaW4gdGhlIHNwZWNpZmllZCBidWZm ZXIuCistLy8gZXh0ZXJuICJDIiB2b2lkIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhpbnRwdHJf dCogYnVmZmVyKTsKKy0KKy0vLyBTZWUgYXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgZm9y IHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVyYXRlZAorLS8vIHVzaW5nIGNsYW5nLgorLS8v CistLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1i ZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKKy0vLyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1Mp IGFuZCBub3QgcHJvdmlkZSB0aGVtLgorLS8vCistLy8gV2UgbWFpbnRhaW4gMTYtYnl0ZSBhbGln bm1lbnQuCistLy8KKy0vLyBDYWxsaW5nIGNvbnZlbnRpb24gc291cmNlOgorLS8vIGh0dHBzOi8v ZW4ud2lraXBlZGlhLm9yZy93aWtpL0NhbGxpbmdfY29udmVudGlvbiNBUk1fKEE2NCkKKy0KKy0v LyAxMSA2NC1iaXQgcmVnaXN0ZXJzID0gMTEgaW50cHJ0X3QKKy1zdGF0aWNfYXNzZXJ0KGhlYXA6 OmJhc2U6OlN0YWNrOjpOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzKCkgPT0gMTEsCistICAg ICAgICAgICAgICAiTWlzbWF0Y2ggaW4gdGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0 ZXJzIik7Cistc3RhdGljX2Fzc2VydChzaXplb2YoaW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBp biB3b3JkIHNpemUiKTsKKy0KKy1hc20oCistI2lmIGRlZmluZWQoX19BUFBMRV9fKQorLSAgICAi Lmdsb2JsIF9TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICBcbiIKKy0gICAgIi5w cml2YXRlX2V4dGVybiBfU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAgXG4iCistICAgICIucDJh bGlnbiAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiX1NhdmVD YWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAgICAgICBcbiIKKy0jZWxzZSAgLy8gIWRl ZmluZWQoX19BUFBMRV9fKQorLSAgICAiLmdsb2JsIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAg ICAgICAgICAgICBcbiIKKy0jaWYgIWRlZmluZWQoX1dJTjY0KQorLSAgICAiLnR5cGUgU2F2ZUNh bGxlZVNhdmVkUmVnaXN0ZXJzLCAlZnVuY3Rpb24gICBcbiIKKy0gICAgIi5oaWRkZW4gU2F2ZUNh bGxlZVNhdmVkUmVnaXN0ZXJzICAgICAgICAgICAgXG4iCistI2VuZGlmICAvLyAhZGVmaW5lZChf V0lONjQpCistICAgICIucDJhbGlnbiAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgorLSAgICAiU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAgICBc biIKKy0jZW5kaWYgIC8vICFkZWZpbmVkKF9fQVBQTEVfXykKKy0gICAgLy8gJHgwOiBbIGludHB0 cl90KiBidWZmZXIgXQorLSAgICAvLyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzOiB4 MTkteDI5LgorLSAgICAiICBzdHAgeDE5LCB4MjAsIFt4MF0sICMxNiAgICAgICAgICAgICAgICAg ICBcbiIKKy0gICAgIiAgc3RwIHgyMSwgeDIyLCBbeDBdLCAjMTYgICAgICAgICAgICAgICAgICAg XG4iCistICAgICIgIHN0cCB4MjMsIHgyNCwgW3gwXSwgIzE2ICAgICAgICAgICAgICAgICAgIFxu IgorLSAgICAiICBzdHAgeDI1LCB4MjYsIFt4MF0sICMxNiAgICAgICAgICAgICAgICAgICBcbiIK Ky0gICAgIiAgc3RwIHgyNywgeDI4LCBbeDBdLCAjMTYgICAgICAgICAgICAgICAgICAgXG4iCist ICAgICIgIHN0ciB4MjksIFt4MF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAg ICAvLyBSZXR1cm4uCistICAgICIgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIik7CitkaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvc2F2ZV9y ZWdpc3RlcnNfbWFzbS5TIGIvc3JjL2hlYXAvYmFzZS9hc20vYXJtNjQvc2F2ZV9yZWdpc3RlcnNf bWFzbS5TCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGFiNzkwNTUuLjAwMDAwMDAK Ky0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL2FybTY0L3NhdmVfcmVnaXN0ZXJzX21hc20uUwor KysrIC9kZXYvbnVsbAorQEAgLTEsMjQgKzAsMCBAQAorLTsgQ29weXJpZ2h0IDIwMjAgdGhlIFY4 IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy07IFVzZSBvZiB0aGlzIHNv dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUK Ky07IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCistCistOyBUaGlzIGZpbGUgaXMgZXhhY3Rs eSB0aGUgc2FtZSBhcyBzYXZlX3JlZ2lzdGVyc19hc20uY2MsIGp1c3QgZm9ybWF0dGVkIGZvcgor LTsgdGhlIE1pY3Jvc29mdCBBcm0gQXNzZW1ibGVyLgorLQorLTsgU2F2ZSBhbGwgY2FsbGVlLXNh dmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KKy07IGV4dGVybiAiQyIgdm9p ZCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7CistCistICAgIEFS RUEgfC50ZXh0fCwgQ09ERSwgQUxJR049NCwgUkVBRE9OTFkKKy0gICAgRVhQT1JUIFNhdmVDYWxs ZWVTYXZlZFJlZ2lzdGVycworLVNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycworLSAgICA7IHgwOiBb IGludHB0cl90KiBidWZmZXIgXQorLSAgICA7IHgxOS14MjkgYXJlIGNhbGxlZS1zYXZlZAorLSAg ICBTVFAgeDE5LCB4MjAsIFt4MF0sICMxNgorLSAgICBTVFAgeDIxLCB4MjIsIFt4MF0sICMxNgor LSAgICBTVFAgeDIzLCB4MjQsIFt4MF0sICMxNgorLSAgICBTVFAgeDI1LCB4MjYsIFt4MF0sICMx NgorLSAgICBTVFAgeDI3LCB4MjgsIFt4MF0sICMxNgorLSAgICBTVFIgeDI5LCBbeDBdCistICAg IDsgUmV0dXJuLgorLSAgICBSRVQKKy0gICAgRU5ECitkaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFz ZS9hc20vaWEzMi9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9pYTMy L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAuLmVkOWMxNGEKKy0tLSAvZGV2L251bGwKKysrKyBiL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL2lh MzIvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCitAQCAtMCwwICsxLDUzIEBACisrLy8gQ29weXJpZ2h0 IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBV c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl IHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysvLyBQdXNo IGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBzdGFjayBmb3Ig Y29uc2VydmF0aXZlCisrLy8gc3RhY2sgc2Nhbm5pbmcuCisrLy8KKysvLyBTZWUgYXNtL3g2NC9w dXNoX3JlZ2lzdGVyc19jbGFuZy5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2VuZXJh dGVkCisrLy8gdXNpbmcgY2xhbmcuCisrLy8KKysvLyBEbyBub3QgZGVwZW5kIG9uIFY4X1RBUkdF VF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRoZQorKy8vIEdO IHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92aWRlIHRoZW0uCisrCisrLy8g V2UgbWFpbnRhaW4gMTYtYnl0ZSBhbGlnbm1lbnQgYXQgY2FsbHMuIFRoZXJlIGlzIGFuIDQtYnl0 ZSByZXR1cm4gYWRkcmVzcworKy8vIG9uIHRoZSBzdGFjayBhbmQgd2UgcHVzaCAyOCBieXRlcyB3 aGljaCBtYWludGFpbnMgMTYtYnl0ZSBzdGFjayBhbGlnbm1lbnQKKysvLyBhdCB0aGUgY2FsbC4K KysvLworKy8vIFRoZSBmb2xsb3dpbmcgYXNzdW1lcyBjZGVjbCBjYWxsaW5nIGNvbnZlbnRpb24u CisrLy8gU291cmNlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9YODZfY2FsbGluZ19j b252ZW50aW9ucyNjZGVjbAorK2FzbSgKKysjaWZkZWYgX1dJTjMyCisrICAgICIuZ2xvYmwgX1B1 c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sgICAgICAgICAgICBcbiIKKysgICAgIl9QdXNo QWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgIFxuIgorKyNlbHNl ICAgLy8gIV9XSU4zMgorKyAgICAiLmdsb2JsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3Rh Y2sgICAgICAgICAgICAgXG4iCisrICAgICIudHlwZSBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0 ZVN0YWNrLCAlZnVuY3Rpb24gICBcbiIKKysgICAgIi5oaWRkZW4gUHVzaEFsbFJlZ2lzdGVyc0Fu ZEl0ZXJhdGVTdGFjayAgICAgICAgICAgIFxuIgorKyAgICAiUHVzaEFsbFJlZ2lzdGVyc0FuZEl0 ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICAgXG4iCisrI2VuZGlmICAvLyAhX1dJTjMyCisr ICAgIC8vIFsgSXRlcmF0ZVN0YWNrQ2FsbGJhY2sgXQorKyAgICAvLyBbIFN0YWNrVmlzaXRvciog ICAgICAgIF0KKysgICAgLy8gWyBTdGFjayogICAgICAgICAgICAgICBdCisrICAgIC8vIFsgcmV0 ICAgICAgICAgICAgICAgICAgXQorKyAgICAvLyBlYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWludGFp biBwcm9wZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgorKyAgICAiICBwdXNoICVlYnAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIG1vdmwg JWVzcCwgJWVicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAg cHVzaCAlZWJ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAg ICAiICBwdXNoICVlc2kgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i CisrICAgICIgIHB1c2ggJWVkaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgLy8gU2F2ZSAzcmQgcGFyYW1ldGVyIChJdGVyYXRlU3RhY2tDYWxsYmFjayku CisrICAgICIgIG1vdmwgMjgoJWVzcCksICVlY3ggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgLy8gUGFzcyAzcmQgcGFyYW1ldGVyIGFzIGVzcCAoc3RhY2sgcG9pbnRlciku CisrICAgICIgIHB1c2ggJWVzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgLy8gUGFzcyAybmQgcGFyYW1ldGVyIChTdGFja1Zpc2l0b3IqKS4KKysgICAg IiAgcHVzaCAyOCglZXNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgor KyAgICAvLyBQYXNzIDFzdCBwYXJhbWV0ZXIgKFN0YWNrKikuCisrICAgICIgIHB1c2ggMjgoJWVz cCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgY2FsbCAq JWVjeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQ b3AgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCisrICAgICIgIGFkZGwgJDI0LCAlZXNwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gUmVzdG9yZSByYnAg YXMgaXQgd2FzIHVzZWQgYXMgZnJhbWUgcG9pbnRlci4KKysgICAgIiAgcG9wICVlYnAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICByZXQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iKTsKK2RpZmYgLS1naXQg YS9zcmMvaGVhcC9iYXNlL2FzbS9pYTMyL3B1c2hfcmVnaXN0ZXJzX21hc20uYXNtIGIvc3JjL2hl YXAvYmFzZS9hc20vaWEzMi9wdXNoX3JlZ2lzdGVyc19tYXNtLmFzbQorbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAuLmEzNWZkNmUKKy0tLSAvZGV2L251bGwKKysrKyBiL3Y4L3Ny Yy9oZWFwL2Jhc2UvYXNtL2lhMzIvcHVzaF9yZWdpc3RlcnNfbWFzbS5hc20KK0BAIC0wLDAgKzEs NDggQEAKKys7OyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmln aHRzIHJlc2VydmVkLgorKzs7IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5 IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKys7OyBmb3VuZCBpbiB0aGUgTElDRU5T RSBmaWxlLgorKworKzs7IE1BU00gc3ludGF4CisrOzsgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5j b20vZW4tdXMvY3BwL2Fzc2VtYmxlci9tYXNtL21pY3Jvc29mdC1tYWNyby1hc3NlbWJsZXItcmVm ZXJlbmNlP3ZpZXc9dnMtMjAxOQorKworKy5tb2RlbCBmbGF0LCBDCisrCisrcHVibGljIFB1c2hB bGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2sKKysKKysuY29kZQorK1B1c2hBbGxSZWdpc3RlcnNB bmRJdGVyYXRlU3RhY2s6CisrICAgIDs7IFB1c2ggYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMg dG8gZ2V0IHRoZW0gb24gdGhlIHN0YWNrIGZvciBjb25zZXJ2YXRpdmUKKysgICAgOzsgc3RhY2sg c2Nhbm5pbmcuCisrICAgIDs7CisrICAgIDs7IFdlIG1haW50YWluIDE2LWJ5dGUgYWxpZ25tZW50 IGF0IGNhbGxzLiBUaGVyZSBpcyBhbiA4LWJ5dGUgcmV0dXJuIGFkZHJlc3MKKysgICAgOzsgb24g dGhlIHN0YWNrIGFuZCB3ZSBwdXNoIDcyIGJ5dGVzIHdoaWNoIG1haW50YWlucyAxNi1ieXRlIHN0 YWNrIGFsaWdubWVudAorKyAgICA7OyBhdCB0aGUgY2FsbC4KKysgICAgOzsKKysgICAgOzsgVGhl IGZvbGxvd2luZyBhc3N1bWVzIGNkZWNsIGNhbGxpbmcgY29udmVudGlvbi4KKysgICAgOzsgU291 cmNlOiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvY3BwL2NkZWNsP3ZpZXc9 dnMtMjAxOQorKyAgICA7OworKyAgICA7OyBbIEl0ZXJhdGVTdGFja0NhbGxiYWNrIF0KKysgICAg OzsgWyBTdGFja1Zpc2l0b3IqICAgICAgICBdCisrICAgIDs7IFsgU3RhY2sqICAgICAgICAgICAg ICAgXQorKyAgICA7OyBbIHJldCAgICAgICAgICAgICAgICAgIF0KKysgICAgcHVzaCBlYnAKKysg ICAgbW92IGVicCwgZXNwCisrICAgIHB1c2ggZWJ4CisrICAgIHB1c2ggZXNpCisrICAgIHB1c2gg ZWRpCisrICAgIDs7IFNhdmUgM3JkIHBhcmFtZXRlciAoSXRlcmF0ZVN0YWNrQ2FsbGJhY2spLgor KyAgICBtb3YgZWN4LCBbIGVzcCArIDI4IF0KKysgICAgOzsgUGFzcyAzcmQgcGFyYW1ldGVyIGFz IGVzcCAoc3RhY2sgcG9pbnRlcikuCisrICAgIHB1c2ggZXNwCisrICAgIDs7IFBhc3MgMm5kIHBh cmFtZXRlciAoU3RhY2tWaXNpdG9yKikuCisrICAgIHB1c2ggWyBlc3AgKyAyOCBdCisrICAgIDs7 IFBhc3MgMXN0IHBhcmFtZXRlciAoU3RhY2sqKS4KKysgICAgcHVzaCBbIGVzcCArIDI4IF0KKysg ICAgY2FsbCBlY3gKKysgICAgOzsgUG9wIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgorKyAg ICBhZGQgZXNwLCAyNAorKyAgICA7OyBSZXN0b3JlIHJicCBhcyBpdCB3YXMgdXNlZCBhcyBmcmFt ZSBwb2ludGVyLgorKyAgICBwb3AgZWJwCisrICAgIHJldAorKworK2VuZAorZGlmZiAtLWdpdCBh L3NyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAv YmFzZS9hc20vaWEzMi9zYXZlX3JlZ2lzdGVyc19hc20uY2MKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggN2MwNTI0Ny4uMDAwMDAwMAorLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20v aWEzMi9zYXZlX3JlZ2lzdGVyc19hc20uY2MKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ4ICswLDAg QEAKKy0vLyBDb3B5cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorLQorLSNpbmNsdWRlIDxzcmMvaGVhcC9iYXNlL3N0YWNrLmg+CistCistLy8gU2F2ZSBh bGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KKy0vLyBl eHRlcm4gIkMiIHZvaWQgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIp OworLQorLS8vIFNlZSBhc20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBm dW5jdGlvbiBpcyBub3QgZ2VuZXJhdGVkCistLy8gdXNpbmcgY2xhbmcuCistLy8KKy0vLyBEbyBu b3QgZGVwZW5kIG9uIFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5 IG92ZXJyaWRlIHRoZQorLS8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBw cm92aWRlIHRoZW0uCistLy8KKy0vLyBUaGUgZm9sbG93aW5nIGFzc3VtZXMgY2RlY2wgY2FsbGlu ZyBjb252ZW50aW9uLgorLS8vIFNvdXJjZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv WDg2X2NhbGxpbmdfY29udmVudGlvbnMjY2RlY2wKKy0KKy0vLyAzIDMyLWJpdCByZWdpc3RlcnMg PSAzIGludHBydF90Cistc3RhdGljX2Fzc2VydChoZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVyT2ZD YWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDMsCistICAgICAgICAgICAgICAiTWlzbWF0Y2ggaW4g dGhlIG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7Cistc3RhdGljX2Fzc2VydChz aXplb2YoaW50cHRyX3QpID09IDQsICJNaXNtYXRjaCBpbiB3b3JkIHNpemUiKTsKKy0KKy1hc20o CistI2lmZGVmIF9XSU4zMgorLSAgICAiLmdsb2JsIF9TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMg ICAgICAgICAgICBcbiIKKy0gICAgIl9TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAgICAgICAg ICAgICAgICAgXG4iCistI2Vsc2UgICAvLyAhX1dJTjMyCistICAgICIuZ2xvYmwgU2F2ZUNhbGxl ZVNhdmVkUmVnaXN0ZXJzICAgICAgICAgICAgIFxuIgorLSAgICAiLnR5cGUgU2F2ZUNhbGxlZVNh dmVkUmVnaXN0ZXJzLCAlZnVuY3Rpb24gICBcbiIKKy0gICAgIi5oaWRkZW4gU2F2ZUNhbGxlZVNh dmVkUmVnaXN0ZXJzICAgICAgICAgICAgXG4iCistICAgICJTYXZlQ2FsbGVlU2F2ZWRSZWdpc3Rl cnM6ICAgICAgICAgICAgICAgICAgIFxuIgorLSNlbmRpZiAgLy8gIV9XSU4zMgorLSAgICAvLyA4 OiBbIGludHB0cl90KiBidWZmZXIgXQorLSAgICAvLyA0OiBbIHJldCAgICAgICAgICAgICAgXQor LSAgICAvLyAwOiBbIHNhdmVkICVlYnAgICAgICAgXQorLSAgICAvLyAlZWJwIGlzIGNhbGxlZS1z YXZlZC4gTWFpbnRhaW4gcHJvcGVyIGZyYW1lIHBvaW50ZXIgZm9yIGRlYnVnZ2luZy4KKy0gICAg IiAgcHVzaCAlZWJwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgor LSAgICAiICBtb3ZsICVlc3AsICVlYnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCistICAgIC8vIExvYWQgdGhlIGJ1ZmZlcidzIGFkZHJlc3MgaW4gJWVjeC4KKy0gICAgIiAg bW92bCA4KCVlYnApLCAlZWN4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAg ICAvLyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgorLSAgICAiICBtb3ZsICVlYngs IDAoJWVjeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIG1vdmwg JWVzaSwgNCglZWN4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAg bW92bCAlZWRpLCA4KCVlY3gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAg ICAvLyBSZXN0b3JlICVlYnAgYXMgaXQgd2FzIHVzZWQgYXMgZnJhbWUgcG9pbnRlciBhbmQgcmV0 dXJuLgorLSAgICAiICBwb3AgJWVicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCistICAgICIgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIpOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvc2F2 ZV9yZWdpc3RlcnNfbWFzbS5hc20gYi9zcmMvaGVhcC9iYXNlL2FzbS9pYTMyL3NhdmVfcmVnaXN0 ZXJzX21hc20uYXNtCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDA4OTJiMDIuLjAw MDAwMDAKKy0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL2lhMzIvc2F2ZV9yZWdpc3RlcnNfbWFz bS5hc20KKysrKyAvZGV2L251bGwKK0BAIC0xLDM2ICswLDAgQEAKKy07OyBDb3B5cmlnaHQgMjAy MCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLTs7IFVzZSBv ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhh dCBjYW4gYmUKKy07OyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQorLTs7IE1BU00gc3lu dGF4CistOzsgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvY3BwL2Fzc2VtYmxlci9t YXNtL21pY3Jvc29mdC1tYWNyby1hc3NlbWJsZXItcmVmZXJlbmNlP3ZpZXc9dnMtMjAxOQorLQor LS5tb2RlbCBmbGF0LCBDCistCistcHVibGljIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycworLQor LS5jb2RlCistICAgIDs7IFNhdmUgYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgaW4gdGhlIHNw ZWNpZmllZCBidWZmZXIuCistICAgIDs7IGV4dGVybiAiQyIgdm9pZCBTYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7CistICAgIDs7CistICAgIDs7IFRoZSBmb2xsb3dp bmcgYXNzdW1lcyBjZGVjbCBjYWxsaW5nIGNvbnZlbnRpb24uCistICAgIDs7IFNvdXJjZTogaHR0 cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvY3BwL2NwcC9jZGVjbD92aWV3PXZzLTIwMTkK Ky0KKy1TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6CistICAgIDs7IDg6IFsgaW50cHRyX3QqIGJ1 ZmZlciBdCistICAgIDs7IDQ6IFsgcmV0ICAgICAgICAgICAgICBdCistICAgIDs7IDA6IFsgc2F2 ZWQgJWVicCAgICAgICBdCistICAgIDs7ICVlYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWludGFpbiBw cm9wZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgorLSAgICBwdXNoIGVicAorLSAgICBt b3YgZWJwLCBlc3AKKy0gICAgOzsgTG9hZCB0aGUgYnVmZmVyJ3MgYWRkcmVzcyBpbiAlZWN4Lgor LSAgICBtb3YgZWN4LCBbZWJwICsgOF0KKy0gICAgOzsgU2F2ZSB0aGUgY2FsbGVlLXNhdmVkIHJl Z2lzdGVycy4KKy0gICAgbW92IFtlY3hdLCBlYngKKy0gICAgbW92IFtlY3ggKyA0XSwgZXNpCist ICAgIG1vdiBbZWN4ICsgOF0sIGVkaQorLSAgICA7OyBSZXN0b3JlICVlYnAgYXMgaXQgd2FzIHVz ZWQgYXMgZnJhbWUgcG9pbnRlciBhbmQgcmV0dXJuLgorLSAgICBwb3AgZWJwCistICAgIHJldAor LQorLWVuZAorZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL2xvb25nNjQvcHVzaF9yZWdp c3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAvYmFzZS9hc20vbG9vbmc2NC9wdXNoX3JlZ2lzdGVyc19h c20uY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5hYThkY2QzCistLS0g L2Rldi9udWxsCisrKysgYi92OC9zcmMvaGVhcC9iYXNlL2FzbS9sb29uZzY0L3B1c2hfcmVnaXN0 ZXJzX2FzbS5jYworQEAgLTAsMCArMSw0OCBAQAorKy8vIENvcHlyaWdodCAyMDIxIHRoZSBWOCBw cm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrLy8gUHVzaCBhbGwgY2FsbGVlLXNh dmVkIHJlZ2lzdGVycyB0byBnZXQgdGhlbSBvbiB0aGUgc3RhY2sgZm9yIGNvbnNlcnZhdGl2ZQor Ky8vIHN0YWNrIHNjYW5uaW5nLgorKy8vCisrLy8gU2VlIGFzbS94NjQvcHVzaF9yZWdpc3RlcnNf Y2xhbmcuY2MgZm9yIHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVyYXRlZAorKy8vIHVzaW5n IGNsYW5nLgorKy8vCisrLy8gRG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVz IGFzIHNvbWUgZW1iZWRkZXJzIG1heSBvdmVycmlkZSB0aGUKKysvLyBHTiB0b29sY2hhaW4gKGUu Zy4gQ2hyb21lT1MpIGFuZCBub3QgcHJvdmlkZSB0aGVtLgorK2FzbSgiLnRleHQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiLmdsb2JhbCBQ dXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgorKyAgICAiLnR5 cGUgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjaywgJWZ1bmN0aW9uICAgIFxuIgorKyAg ICAiLmhpZGRlbiBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxu IgorKyAgICAiUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAvLyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGFuZCBzYXZl IHJldHVybiBhZGRyZXNzLgorKyAgICAiICBhZGRpLmQgJHNwLCAkc3AsIC05NiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRyYSwgJHNwLCA4OCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRzOCwgJHNwLCA4MCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRzcCwgJHNw LCA3MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRm cCwgJHNwLCA2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBz dC5kICRzNywgJHNwLCA1NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAg ICAiICBzdC5kICRzNiwgJHNwLCA0OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAiICBzdC5kICRzNSwgJHNwLCA0MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAiICBzdC5kICRzNCwgJHNwLCAzMiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRzMywgJHNwLCAyNCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRzMiwgJHNwLCAxNiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRzMSwgJHNwLCAgOCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdC5kICRzMCwgJHNwLCAg MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBNYWludGFpbiBm cmFtZSBwb2ludGVyLgorKyAgICAiICBhZGRpLmQgJHM4LCAkc3AsIDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQYXNzIDFzdCBwYXJhbWV0ZXIgKGEwKSB1bmNo YW5nZWQgKFN0YWNrKikuCisrICAgIC8vIFBhc3MgMm5kIHBhcmFtZXRlciAoYTEpIHVuY2hhbmdl ZCAoU3RhY2tWaXNpdG9yKikuCisrICAgIC8vIFNhdmUgM3JkIHBhcmFtZXRlciAoYTI7IEl0ZXJh dGVTdGFja0NhbGxiYWNrKS4KKysgICAgIiAgYWRkaS5kICRhMywgJGEyLCAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gQ2FsbCB0aGUgY2FsbGJhY2suCisrICAg IC8vIFBhc3MgM3JkIHBhcmFtZXRlciBhcyBzcCAoc3RhY2sgcG9pbnRlcikuCisrICAgICIgIGFk ZGkuZCAkYTIsICRzcCwgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAg ICIgIGppcmwgJHJhLCAkYTMsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i CisrICAgIC8vIExvYWQgcmV0dXJuIGFkZHJlc3MuCisrICAgICIgIGxkLmQgJHJhLCAkc3AsIDg4 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgIC8vIFJlc3RvcmUgZnJh bWUgcG9pbnRlci4KKysgICAgIiAgbGQuZCAkczgsICRzcCwgODAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKKysgICAgLy8gRGlzY2FyZCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lz dGVycy4KKysgICAgIiAgYWRkaS5kICRzcCwgJHNwLCA5NiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKysgICAgIiAgamlybCAkemVybywgJHJhLCAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIpOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL2xvb25n NjQvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAvYmFzZS9hc20vbG9vbmc2NC9zYXZl X3JlZ2lzdGVyc19hc20uY2MKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggZDViMTEw ZC4uMDAwMDAwMAorLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20vbG9vbmc2NC9zYXZlX3JlZ2lz dGVyc19hc20uY2MKKysrKyAvZGV2L251bGwKK0BAIC0xLDQwICswLDAgQEAKKy0vLyBDb3B5cmln aHQgMjAyMSB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLS8v IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu c2UgdGhhdCBjYW4gYmUKKy0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQorLSNpbmNs dWRlIDxzcmMvaGVhcC9iYXNlL3N0YWNrLmg+CistCistLy8gU2F2ZSBhbGwgY2FsbGVlLXNhdmVk IHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KKy0vLyBleHRlcm4gIkMiIHZvaWQg U2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOworLQorLS8vIFNlZSBh c20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3Qg Z2VuZXJhdGVkCistLy8gdXNpbmcgY2xhbmcuCistLy8KKy0vLyBEbyBub3QgZGVwZW5kIG9uIFY4 X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRoZQor LS8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92aWRlIHRoZW0uCist CistLy8gMTEgNjQtYml0IHJlZ2lzdGVycyA9IDExIGludHBydF90Cistc3RhdGljX2Fzc2VydCho ZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDExLAor LSAgICAgICAgICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVkIHJl Z2lzdGVycyIpOworLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0cl90KSA9PSA4LCAiTWlzbWF0 Y2ggaW4gd29yZCBzaXplIik7CistCistYXNtKCIudGV4dCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIi5nbG9iYWwgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0 ZXJzICAgICAgICAgICAgIFxuIgorLSAgICAiLnR5cGUgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJz LCAlZnVuY3Rpb24gICAgXG4iCistICAgICIuaGlkZGVuIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVy cyAgICAgICAgICAgICBcbiIKKy0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAg ICAgICAgICAgICAgIFxuIgorLSAgICAvLyAkYTA6IFsgaW50cHRyX3QqIGJ1ZmZlciBdCistICAg IC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCistICAgICIgIHN0LmQgJHM4LCAk YTAsIDAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3QuZCAkc3AsICRh MCwgOCAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdC5kICRmcCwgJGEw LCAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0LmQgJHM3LCAkYTAs IDI0ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3QuZCAkczYsICRhMCwg MzIgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdC5kICRzNSwgJGEwLCA0 MCAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0LmQgJHM0LCAkYTAsIDQ4 ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3QuZCAkczMsICRhMCwgNTYg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdC5kICRzMiwgJGEwLCA2NCAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0LmQgJHMxLCAkYTAsIDcyICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3QuZCAkczAsICRhMCwgODAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAvLyBSZXR1cm4uCistICAgICIgIGppcmwg JHplcm8sICRyYSwgMCAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOworZGlmZiAtLWdpdCBh L3NyYy9oZWFwL2Jhc2UvYXNtL21pcHM2NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVh cC9iYXNlL2FzbS9taXBzNjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uNDc3NzllMAorLS0tIC9kZXYvbnVsbAorKysrIGIvdjgvc3Jj L2hlYXAvYmFzZS9hc20vbWlwczY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYworQEAgLTAsMCArMSw0 OSBAQAorKy8vIENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCisrCisrLy8gUHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyB0byBnZXQgdGhl bSBvbiB0aGUgc3RhY2sgZm9yIGNvbnNlcnZhdGl2ZQorKy8vIHN0YWNrIHNjYW5uaW5nLgorKy8v CisrLy8gU2VlIGFzbS94NjQvcHVzaF9yZWdpc3RlcnNfY2xhbmcuY2MgZm9yIHdoeSB0aGUgZnVu Y3Rpb24gaXMgbm90IGdlbmVyYXRlZAorKy8vIHVzaW5nIGNsYW5nLgorKy8vCisrLy8gRG8gbm90 IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRkZXJzIG1heSBv dmVycmlkZSB0aGUKKysvLyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFuZCBub3QgcHJv dmlkZSB0aGVtLgorK2FzbSgiLnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorKyAgICAiLnNldCBub3Jlb3JkZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiLmdsb2JhbCBQdXNoQWxsUmVnaXN0ZXJzQW5k SXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgorKyAgICAiLnR5cGUgUHVzaEFsbFJlZ2lzdGVy c0FuZEl0ZXJhdGVTdGFjaywgJWZ1bmN0aW9uICAgIFxuIgorKyAgICAiLmhpZGRlbiBQdXNoQWxs UmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgorKyAgICAiUHVzaEFsbFJl Z2lzdGVyc0FuZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQ dXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGFuZCBzYXZlIHJldHVybiBhZGRyZXNzLgor KyAgICAiICBkYWRkaXUgJHNwLCAkc3AsIC05NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgorKyAgICAiICBzZCAkcmEsIDg4KCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAiICBzZCAkczgsIDgwKCRzcCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorKyAgICAiICBzZCAkc3AsIDcyKCRzcCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzZCAkZ3AsIDY0KCRzcCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzZCAkczcsIDU2KCRzcCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzZCAkczYsIDQ4KCRz cCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzZCAkczUs IDQwKCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBz ZCAkczQsIDMyKCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAg ICAiICBzZCAkczMsIDI0KCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAiICBzZCAkczIsIDE2KCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAiICBzZCAkczEsICA4KCRzcCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgorKyAgICAiICBzZCAkczAsICAwKCRzcCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBNYWludGFpbiBmcmFtZSBwb2ludGVyLgorKyAg ICAiICBtb3ZlICRzOCwgJHNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAvLyBQYXNzIDFzdCBwYXJhbWV0ZXIgKGEwKSB1bmNoYW5nZWQgKFN0YWNrKikuCisr ICAgIC8vIFBhc3MgMm5kIHBhcmFtZXRlciAoYTEpIHVuY2hhbmdlZCAoU3RhY2tWaXNpdG9yKiku CisrICAgIC8vIFNhdmUgM3JkIHBhcmFtZXRlciAoYTI7IEl0ZXJhdGVTdGFja0NhbGxiYWNrKS4K KysgICAgIiAgbW92ZSAkYTMsICRhMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgLy8gQ2FsbCB0aGUgY2FsbGJhY2suCisrICAgICIgIGphbHIgJGEzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgIC8vIERlbGF5IHNs b3Q6IFBhc3MgM3JkIHBhcmFtZXRlciBhcyBzcCAoc3RhY2sgcG9pbnRlcikuCisrICAgICIgIG1v dmUgJGEyLCAkc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAg IC8vIExvYWQgcmV0dXJuIGFkZHJlc3MuCisrICAgICIgIGxkICRyYSwgODgoJHNwKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgIC8vIFJlc3RvcmUgZnJhbWUgcG9p bnRlci4KKysgICAgIiAgbGQgJHM4LCA4MCgkc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKysgICAgIiAganIgJHJhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKKysgICAgLy8gRGVsYXkgc2xvdDogRGlzY2FyZCBhbGwgY2FsbGVl LXNhdmVkIHJlZ2lzdGVycy4KKysgICAgIiAgZGFkZGl1ICRzcCwgJHNwLCA5NiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIpOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNt L21pcHM2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9taXBzNjQv c2F2ZV9yZWdpc3RlcnNfYXNtLmNjCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDk1 YmNjMzEuLjAwMDAwMDAKKy0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL21pcHM2NC9zYXZlX3Jl Z2lzdGVyc19hc20uY2MKKysrKyAvZGV2L251bGwKK0BAIC0xLDQxICswLDAgQEAKKy0vLyBDb3B5 cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor LS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKy0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQorLSNp bmNsdWRlIDxzcmMvaGVhcC9iYXNlL3N0YWNrLmg+CistCistLy8gU2F2ZSBhbGwgY2FsbGVlLXNh dmVkIHJlZ2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KKy0vLyBleHRlcm4gIkMiIHZv aWQgU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOworLQorLS8vIFNl ZSBhc20veDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBu b3QgZ2VuZXJhdGVkCistLy8gdXNpbmcgY2xhbmcuCistLy8KKy0vLyBEbyBub3QgZGVwZW5kIG9u IFY4X1RBUkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRo ZQorLS8vIEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92aWRlIHRoZW0u CistCistLy8gOSA2NC1iaXQgcmVnaXN0ZXJzID0gOSBpbnRwcnRfdAorLXN0YXRpY19hc3NlcnQo aGVhcDo6YmFzZTo6U3RhY2s6Ok51bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoKSA9PSA5LAor LSAgICAgICAgICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVkIHJl Z2lzdGVycyIpOworLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0cl90KSA9PSA4LCAiTWlzbWF0 Y2ggaW4gd29yZCBzaXplIik7CistCistYXNtKCIudGV4dCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIi5zZXQgbm9yZW9yZGVyICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorLSAgICAiLmdsb2JhbCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3Rl cnMgICAgICAgICAgICAgXG4iCistICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMs ICVmdW5jdGlvbiAgICBcbiIKKy0gICAgIi5oaWRkZW4gU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJz ICAgICAgICAgICAgIFxuIgorLSAgICAiU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAg ICAgICAgICAgICAgXG4iCistICAgIC8vICRhMDogWyBpbnRwdHJfdCogYnVmZmVyIF0KKy0gICAg Ly8gU2F2ZSB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KKy0gICAgIiAgc2QgJGdwLCA2NCgk YTApICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzZCAkczcsIDU2KCRh MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHNkICRzNiwgNDgoJGEw KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc2QgJHM1LCA0MCgkYTAp ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzZCAkczQsIDMyKCRhMCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHNkICRzMywgMjQoJGEwKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc2QgJHMyLCAxNigkYTApICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzZCAkczEsICA4KCRhMCkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgIC8vIC4uLiBvbmUgbW9yZSBpbiB0aGUg ZGVsYXkgc2xvdCEKKy0gICAgLy8gUmV0dXJuLgorLSAgICAiICBqciAkcmEgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgIC8vIERlbGF5IHNsb3Q6CistICAgICIg IHNkICRzMCwgIDAoJGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOworZGlmZiAt LWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL3BwYy9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMv aGVhcC9iYXNlL2FzbS9wcGMvcHVzaF9yZWdpc3RlcnNfYXNtLmNjCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uZjg3OTk4MAorLS0tIC9kZXYvbnVsbAorKysrIGIvdjgvc3Jj L2hlYXAvYmFzZS9hc20vcHBjL3B1c2hfcmVnaXN0ZXJzX2FzbS5jYworQEAgLTAsMCArMSw5NyBA QAorKy8vIENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC U0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp bGUuCisrCisrLy8gUHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyB0byBnZXQgdGhlbSBv biB0aGUgc3RhY2sgZm9yIGNvbnNlcnZhdGl2ZQorKy8vIHN0YWNrIHNjYW5uaW5nLgorKy8vCisr Ly8gU2VlIGFzbS94NjQvcHVzaF9yZWdpc3RlcnNfY2xhbmcuY2MgZm9yIHdoeSB0aGUgZnVuY3Rp b24gaXMgbm90IGdlbmVyYXRlZAorKy8vIHVzaW5nIGNsYW5nLgorKworKy8vIERvIG5vdCBkZXBl bmQgb24gVjhfVEFSR0VUX09TXyogZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJp ZGUgdGhlCisrLy8gR04gdG9vbGNoYWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUg dGhlbS4KKysKKysvLyBQUEMgQUJJIHNvdXJjZToKKysvLyBodHRwOi8vcmVmc3BlY3MubGludXhm b3VuZGF0aW9uLm9yZy9FTEYvcHBjNjQvUFBDLWVsZjY0YWJpLmh0bWwKKysKKysvLyBBSVggUnVu dGltZSBwcm9jZXNzIHN0YWNrOgorKy8vIGh0dHBzOi8vd3d3LmlibS5jb20vc3VwcG9ydC9rbm93 bGVkZ2VjZW50ZXIvc3N3X2FpeF83MS9hc3NlbWJsZXIvaWRhbGFuZ3JlZl9ydW50aW1lX3Byb2Nl c3MuaHRtbAorK2FzbSgKKysjaWYgZGVmaW5lZChfQUlYKQorKyAgICAiLmNzZWN0IC50ZXh0W1BS XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIuYWxpZ24gMiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIi5nbG9i bCAuUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjaywgaGlkZGVuICAgIFxuIgorKyAgICAi LlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgXG4iCisr I2Vsc2UKKysgICAgIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAiLmFsaWduIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCisrICAgICIuZ2xvYmwgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVT dGFjayAgICAgICAgICAgICBcbiIKKysgICAgIi50eXBlIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVy YXRlU3RhY2ssICVmdW5jdGlvbiAgIFxuIgorKyAgICAiLmhpZGRlbiBQdXNoQWxsUmVnaXN0ZXJz QW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgXG4iCisrICAgICJQdXNoQWxsUmVnaXN0ZXJzQW5k SXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgICBcbiIKKysjZW5kaWYKKysgICAgLy8gUHVz aCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KKysgICAgLy8gbHIsIFRPQyBwb2ludGVyLCBy MTYgdG8gcjMxLiAxNjAgYnl0ZXMuCisrICAgIC8vIFRoZSBwYXJhbWV0ZXIgc2F2ZSBhcmVhIHNo YWxsIGJlIGFsbG9jYXRlZCBieSB0aGUgY2FsbGVyLiAxMTIgYnl0ZXMuCisrICAgIC8vIEF0IGFu eXRpbWUsIFNQIChyMSkgbmVlZHMgdG8gYmUgbXVsdGlwbGUgb2YgMTYgKGkuZS4gMTYtYWxpZ25l ZCkuCisrICAgICIgIG1mbHIgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAiICBzdGQgMCwgMTYoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKysjaWYgZGVmaW5lZChfQUlYKQorKyAgICAiICBzdGQgMiwgNDAoMSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysjZWxzZQorKyAgICAiICBzdGQg MiwgMjQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysjZW5kaWYK KysgICAgIiAgc3RkdSAxLCAtMjU2KDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCisrICAgICIgIHN0ZCAxNCwgMTEyKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAiICBzdGQgMTUsIDEyMCgxKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKysgICAgIiAgc3RkIDE2LCAxMjgoMSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCisrICAgICIgIHN0ZCAxNywgMTM2KDEpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdGQgMTgsIDE0NCgxKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc3RkIDE5LCAxNTIoMSkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIHN0ZCAyMCwgMTYwKDEpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdGQgMjEsIDE2OCgxKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc3RkIDIyLCAxNzYo MSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIHN0ZCAyMywg MTg0KDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdGQg MjQsIDE5MigxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAg c3RkIDI1LCAyMDAoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAg ICIgIHN0ZCAyNiwgMjA4KDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgor KyAgICAiICBzdGQgMjcsIDIxNigxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKysgICAgIiAgc3RkIDI4LCAyMjQoMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCisrICAgICIgIHN0ZCAyOSwgMjMyKDEpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAiICBzdGQgMzAsIDI0MCgxKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKKysgICAgIiAgc3RkIDMxLCAyNDgoMSkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCisrICAgIC8vIFBhc3MgMXN0IHBhcmFtZXRlciAocjMpIHVuY2hh bmdlZCAoU3RhY2sqKS4KKysgICAgLy8gUGFzcyAybmQgcGFyYW1ldGVyIChyNCkgdW5jaGFuZ2Vk IChTdGFja1Zpc2l0b3IqKS4KKysgICAgLy8gU2F2ZSAzcmQgcGFyYW1ldGVyIChyNTsgSXRlcmF0 ZVN0YWNrQ2FsbGJhY2spLgorKyAgICAiICBtciA2LCA1ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKysjaWYgZGVmaW5lZChfQUlYKQorKyAgICAvLyBTZXQgdXAg VE9DIGZvciBjYWxsZWUuCisrICAgICIgIGxkIDIsOCg1KSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBBSVggdXNlcyBmdW5jdGlvbiBkZXNjcmlwdG9y cywgd2hpY2ggbWVhbnMgdGhhdAorKyAgICAvLyBwb2ludGVycyB0byBmdW5jdGlvbnMgZG8gbm90 IHBvaW50IHRvIGNvZGUsIGJ1dAorKyAgICAvLyBpbnN0ZWFkIHBvaW50IHRvIG1ldGFkYXRhIGFi b3V0IHRoZW0sIGhlbmNlCisrICAgIC8vIG5lZWQgdG8gZGV0ZXJyZW5jZS4KKysgICAgIiAgbGQg NiwwKDYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrI2VuZGlm CisrICAgIC8vIFBhc3MgM3JkIHBhcmFtZXRlciBhcyBzcCAoc3RhY2sgcG9pbnRlcikuCisrICAg ICIgIG1yIDUsIDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgor KyNpZiAhZGVmaW5lZChfQUlYKQorKyAgICAvLyBTZXQgdXAgcjEyIHRvIGJlIGVxdWFsIHRvIHRo ZSBjYWxsZWUgYWRkcmVzcyAoaW4gb3JkZXIgZm9yIFRPQworKyAgICAvLyByZWxvY2F0aW9uKS4g T25seSBuZWVkZWQgb24gTEUgTGludXguCisrICAgICIgIG1yIDEyLCA2ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyNlbmRpZgorKyAgICAvLyBDYWxsIHRoZSBj YWxsYmFjay4KKysgICAgIiAgbXRjdHIgNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCisrICAgICIgIGJjdHJsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorKyAgICAvLyBEaXNjYXJkIGFsbCB0aGUgcmVnaXN0ZXJzLgorKyAg ICAiICBhZGRpIDEsIDEsIDI1NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK KysgICAgLy8gUmVzdG9yZSBsci4KKysgICAgIiAgbGQgMCwgMTYoMSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIG10bHIgIDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyNpZiBkZWZpbmVkKF9BSVgpCisrICAgIC8v IFJlc3RvcmUgVE9DIHBvaW50ZXIuCisrICAgICIgIGxkIDIsIDQwKDEpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyNlbHNlCisrICAgICIgIGxkIDIsIDI0KDEpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyNlbmRpZgorKyAgICAiICBi bHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOworZGlm ZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL3BwYy9zYXZlX3JlZ2lzdGVyc19hc20uY2MgYi9z cmMvaGVhcC9iYXNlL2FzbS9wcGMvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDllODEwMmEuLjAwMDAwMDAKKy0tLSBhL3Y4L3NyYy9oZWFwL2Jh c2UvYXNtL3BwYy9zYXZlX3JlZ2lzdGVyc19hc20uY2MKKysrKyAvZGV2L251bGwKK0BAIC0xLDEx MyArMCwwIEBACistLy8gQ29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KKy0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCistLy8gZm91bmQgaW4gdGhlIExJ Q0VOU0UgZmlsZS4KKy0KKy0jaW5jbHVkZSA8c3JjL2hlYXAvYmFzZS9zdGFjay5oPgorLQorLS8v IFNhdmUgYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgaW4gdGhlIHNwZWNpZmllZCBidWZmZXIu CistLy8gZXh0ZXJuICJDIiB2b2lkIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhpbnRwdHJfdCog YnVmZmVyKTsKKy0KKy0vLyBTZWUgYXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgZm9yIHdo eSB0aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVyYXRlZAorLS8vIHVzaW5nIGNsYW5nLgorLS8vCist Ly8gRG8gbm90IGRlcGVuZCBvbiBWOF9UQVJHRVRfT1NfKiBkZWZpbmVzIGFzIHNvbWUgZW1iZWRk ZXJzIG1heSBvdmVycmlkZSB0aGUKKy0vLyBHTiB0b29sY2hhaW4gKGUuZy4gQ2hyb21lT1MpIGFu ZCBub3QgcHJvdmlkZSB0aGVtLgorLS8vCistLy8gUFBDIEFCSSBzb3VyY2U6CistLy8gaHR0cDov L3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlvbi5vcmcvRUxGL3BwYzY0L1BQQy1lbGY2NGFiaS5odG1s CistCistLy8gQUlYIFJ1bnRpbWUgcHJvY2VzcyBzdGFjazoKKy0vLyBodHRwczovL3d3dy5pYm0u Y29tL3N1cHBvcnQva25vd2xlZGdlY2VudGVyL3Nzd19haXhfNzEvYXNzZW1ibGVyL2lkYWxhbmdy ZWZfcnVudGltZV9wcm9jZXNzLmh0bWwKKy0KKy0jaWZkZWYgX19QUEM2NF9fCistCistLy8gMjAg NjQtYml0IHJlZ2lzdGVycyA9IDIwIGludHBydF90Cistc3RhdGljX2Fzc2VydChoZWFwOjpiYXNl OjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDIwLAorLSAgICAgICAg ICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyIp OworLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0cl90KSA9PSA4LCAiTWlzbWF0Y2ggaW4gd29y ZCBzaXplIik7CistCistYXNtKAorLSNpZiBkZWZpbmVkKF9BSVgpCistICAgICIuY3NlY3QgLnRl eHRbUFJdICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiLmFsaWduIDIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIi5nbG9ibCAuU2F2ZUNh bGxlZVNhdmVkUmVnaXN0ZXJzLCBoaWRkZW4gICAgXG4iCistICAgICIuU2F2ZUNhbGxlZVNhdmVk UmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAgIFxuIgorLSNlbHNlCistICAgICIudGV4dCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiLmFsaWduIDIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIi5nbG9ibCBTYXZlQ2Fs bGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICAgXG4iCistICAgICIudHlwZSBTYXZlQ2FsbGVl U2F2ZWRSZWdpc3RlcnMsICVmdW5jdGlvbiAgIFxuIgorLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVl U2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICBcbiIKKy0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lz dGVyczogICAgICAgICAgICAgICAgICAgXG4iCistI2VuZGlmCistICAgIC8vIHIzOiBbIGludHB0 cl90KiBidWZmZXIgXQorLSAgICAvLyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzOiBs ciwgVE9DIHBvaW50ZXIgKHIyKSwgcjE0LXIzMS4KKy0gICAgIiAgbWZsciAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0ZCAwLCA4KDMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdGQgMiwgMTYoMykgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3RkIDE0LCAyNCgzKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0ZCAxNSwgMzIoMykgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdGQgMTYsIDQwKDMpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3RkIDE3LCA0OCgzKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCistICAgICIgIHN0ZCAxOCwgNTYoMykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgorLSAgICAiICBzdGQgMTksIDY0KDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKy0gICAgIiAgc3RkIDIwLCA3MigzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCistICAgICIgIHN0ZCAyMSwgODAoMykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorLSAgICAiICBzdGQgMjIsIDg4KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKy0gICAgIiAgc3RkIDIzLCA5NigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCistICAgICIgIHN0ZCAyNCwgMTA0KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorLSAgICAiICBzdGQgMjUsIDExMigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK Ky0gICAgIiAgc3RkIDI2LCAxMjAoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCist ICAgICIgIHN0ZCAyNywgMTI4KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAg ICAiICBzdGQgMjgsIDEzNigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAg IiAgc3RkIDI5LCAxNDQoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIg IHN0ZCAzMCwgMTUyKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBz dGQgMzEsIDE2MCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgLy8gUmV0 dXJuLgorLSAgICAiICBibHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIpOworLQorLSNlbHNlICAvLyAhX19QUEM2NF9fCistCistLy8gMjAgMzItYml0IHJlZ2lzdGVy cyA9IDIwIGludHBydF90Cistc3RhdGljX2Fzc2VydChoZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVy T2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDIwLAorLSAgICAgICAgICAgICAgIk1pc21hdGNo IGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyIpOworLXN0YXRpY19hc3Nl cnQoc2l6ZW9mKGludHB0cl90KSA9PSA0LCAiTWlzbWF0Y2ggaW4gd29yZCBzaXplIik7CistCist YXNtKAorLSNpZiBkZWZpbmVkKF9BSVgpCistICAgICIuZ2xvYmwgLlNhdmVDYWxsZWVTYXZlZFJl Z2lzdGVycywgaGlkZGVuICAgIFxuIgorLSAgICAiLmNzZWN0IC50ZXh0W1BSXSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIi5TYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAg ICAgICAgICAgICAgICAgXG4iCistI2Vsc2UKKy0gICAgIi5nbG9ibCBTYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMgICAgICAgICAgICAgXG4iCistICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMsICVmdW5jdGlvbiAgIFxuIgorLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMgICAgICAgICAgICBcbiIKKy0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAg ICAgICAgICAgICAgICAgXG4iCistI2VuZGlmCistICAgIC8vIHIzOiBbIGludHB0cl90KiBidWZm ZXIgXQorLSAgICAvLyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzOiBsciwgVE9DIHBv aW50ZXIgKHIyKSwgcjE0LXIzMS4KKy0gICAgIiAgbWZsciAwICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0IDAsIDQoMykgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdCAyLCA4KDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKKy0gICAgIiAgc3QgMTQsIDEyKDMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCistICAgICIgIHN0IDE1LCAxNigzKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorLSAgICAiICBzdCAxNiwgMjAoMykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKKy0gICAgIiAgc3QgMTcsIDI0KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCistICAgICIgIHN0IDE4LCAyOCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgorLSAgICAiICBzdCAxOSwgMzIoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKy0gICAgIiAgc3QgMjAsIDM2KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i CistICAgICIgIHN0IDIxLCA0MCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgor LSAgICAiICBzdCAyMiwgNDQoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0g ICAgIiAgc3QgMjMsIDQ4KDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAg ICIgIHN0IDI0LCA1MigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAi ICBzdCAyNSwgNTYoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAg c3QgMjYsIDYwKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0 IDI3LCA2NCgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdCAy OCwgNjgoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc3QgMjks IDcyKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHN0IDMwLCA3 NigzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzdCAzMSwgODAo MykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgLy8gUmV0dXJuLgorLSAg ICAiICBibHIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOworLQor LSNlbmRpZiAgLy8gX19QUEM2NF9fCitkaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9hc20vcmlz Y3YvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAvYmFzZS9hc20vcmlzY3YvcHVzaF9y ZWdpc3RlcnNfYXNtLmNjCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uN2Nj MTNlYQorLS0tIC9kZXYvbnVsbAorKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9hc20vcmlzY3YvcHVz aF9yZWdpc3RlcnNfYXNtLmNjCitAQCAtMCwwICsxLDkzIEBACisrLy8gQ29weXJpZ2h0IDIwMjAg dGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2Yg dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQg Y2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysvLyBQdXNoIGFsbCBj YWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBzdGFjayBmb3IgY29uc2Vy dmF0aXZlCisrLy8gc3RhY2sgc2Nhbm5pbmcuCisrLy8KKysvLyBTZWUgYXNtL3g2NC9wdXNoX3Jl Z2lzdGVyc19hc20uY2MgZm9yIHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVyYXRlZAorKy8v IHVzaW5nIGNsYW5nLgorKy8vCisrLy8gQ2FsbGluZyBjb252ZW50aW9uIHNvdXJjZToKKysvLyBo dHRwczovL3Jpc2N2Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wMS9yaXNjdi1jYWxsaW5n LnBkZiBUYWJsZSAxOC4yCisrI2lmZGVmIFY4X1RBUkdFVF9BUkNIX1JJU0NWNjQKKythc20oIi5n bG9iYWwgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAgICAgICBcbiIKKysg ICAgIi50eXBlIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2ssICVmdW5jdGlvbiAgICBc biIKKysgICAgIi5oaWRkZW4gUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAg ICAgICBcbiIKKysgICAgIlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2s6ICAgICAgICAg ICAgICAgICAgICBcbiIKKysgICAgLy8gUHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBh bmQgc2F2ZSByZXR1cm4gYWRkcmVzcy4KKysgICAgIiAgYWRkaSBzcCwgc3AsIC0xMTIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gU2F2ZSByZXR1cm4gYWRkcmVz cy4KKysgICAgIiAgc2QgcmEsIDEwNChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKKysgICAgLy8gc3AgaXMgY2FsbGVlLXNhdmVkLgorKyAgICAiICBzZCBzcCwgOTYo c3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBzMC1z MTEgYXJlIGNhbGxlZS1zYXZlZC4KKysgICAgIiAgc2QgczExLCA4OChzcCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczEwLCA4MChzcCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczksIDcyKHNwKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczgsIDY0 KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2Qg czcsIDU2KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAg IiAgc2QgczYsIDQ4KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK KysgICAgIiAgc2QgczUsIDQwKHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgIiAgc2QgczQsIDMyKHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKysgICAgIiAgc2QgczMsIDI0KHNwKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczIsIDE2KHNwKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczEsICA4KHNwKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgc2QgczAsICAwKHNwKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gTWFpbnRhaW4gZnJh bWUgcG9pbnRlcihmcCBpcyBzMCkuCisrICAgICIgIG12IHMwLCBzcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgIC8vIFBhc3MgMXN0IHBhcmFtZXRlciAo YTApIHVuY2hhbmdlZCAoU3RhY2sqKS4KKysgICAgLy8gUGFzcyAybmQgcGFyYW1ldGVyIChhMSkg dW5jaGFuZ2VkIChTdGFja1Zpc2l0b3IqKS4KKysgICAgLy8gU2F2ZSAzcmQgcGFyYW1ldGVyIChh MjsgSXRlcmF0ZVN0YWNrQ2FsbGJhY2spIHRvIGEzLgorKyAgICAiICBtdiBhMywgYTIgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQYXNzIDNyZCBw YXJhbWV0ZXIgYXMgc3AgKHN0YWNrIHBvaW50ZXIpLgorKyAgICAiICBtdiBhMiwgc3AgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBDYWxsIHRoZSBj YWxsYmFjay4KKysgICAgIiAgamFsciBhMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKKysgICAgLy8gTG9hZCByZXR1cm4gYWRkcmVzcy4KKysgICAgIiAgbGQg cmEsIDEwNChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAg Ly8gUmVzdG9yZSBmcmFtZSBwb2ludGVyLgorKyAgICAiICBsZCBzMCwgMChzcCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBhZGRpIHNwLCBzcCwgMTEy ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBqciByYSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIik7CisrI2VsaWYgVjhf VEFSR0VUX0FSQ0hfUklTQ1YzMgorK2FzbSgiLmdsb2JhbCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRl cmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgorKyAgICAiLnR5cGUgUHVzaEFsbFJlZ2lzdGVyc0Fu ZEl0ZXJhdGVTdGFjaywgJWZ1bmN0aW9uICAgIFxuIgorKyAgICAiLmhpZGRlbiBQdXNoQWxsUmVn aXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgIFxuIgorKyAgICAiUHVzaEFsbFJlZ2lz dGVyc0FuZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQdXNo IGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGFuZCBzYXZlIHJldHVybiBhZGRyZXNzLgorKyAg ICAiICBhZGRpIHNwLCBzcCwgLTU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAvLyBTYXZlIHJldHVybiBhZGRyZXNzLgorKyAgICAiICBzdyByYSwgNTIoc3ApICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBzcCBpcyBjYWxs ZWUtc2F2ZWQuCisrICAgICIgIHN3IHNwLCA0OChzcCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCisrICAgIC8vIHMwLXMxMSBhcmUgY2FsbGVlLXNhdmVkLgorKyAgICAi ICBzdyBzMTEsIDQ0KHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgor KyAgICAiICBzdyBzMTAsIDQwKHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgorKyAgICAiICBzdyBzOSwgMzYoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAiICBzdyBzOCwgMzIoc3ApICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdyBzNywgMjgoc3ApICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdyBzNiwgMjQoc3ApICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdyBzNSwgMjAoc3ApICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdyBzNCwgMTYoc3Ap ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBzdyBzMywg MTIoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBz dyBzMiwgOChzcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAg ICAiICBzdyBzMSwgIDQoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAiICBzdyBzMCwgIDAoc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAvLyBNYWludGFpbiBmcmFtZSBwb2ludGVyKGZwIGlzIHMwKS4KKysgICAg IiAgbXYgczAsIHNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK KysgICAgLy8gUGFzcyAxc3QgcGFyYW1ldGVyIChhMCkgdW5jaGFuZ2VkIChTdGFjayopLgorKyAg ICAvLyBQYXNzIDJuZCBwYXJhbWV0ZXIgKGExKSB1bmNoYW5nZWQgKFN0YWNrVmlzaXRvciopLgor KyAgICAvLyBTYXZlIDNyZCBwYXJhbWV0ZXIgKGEyOyBJdGVyYXRlU3RhY2tDYWxsYmFjaykgdG8g YTMuCisrICAgICIgIG12IGEzLCBhMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCisrICAgIC8vIFBhc3MgM3JkIHBhcmFtZXRlciBhcyBzcCAoc3RhY2sgcG9pbnRl cikuCisrICAgICIgIG12IGEyLCBzcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCisrICAgIC8vIENhbGwgdGhlIGNhbGxiYWNrLgorKyAgICAiICBqYWxyIGEzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBMb2Fk IHJldHVybiBhZGRyZXNzLgorKyAgICAiICBsdyByYSwgNTIoc3ApICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBSZXN0b3JlIGZyYW1lIHBvaW50ZXIuCisr ICAgICIgIGx3IHMwLCAwKHNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCisrICAgICIgIGFkZGkgc3AsIHNwLCA1NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCisrICAgICIgIGpyIHJhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iKTsKKysjZW5kaWYKK2RpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNlL2Fz bS9yaXNjdi9zYXZlX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9yaXNjdi9z YXZlX3JlZ2lzdGVyc19hc20uY2MKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggYWQw YmY5OC4uMDAwMDAwMAorLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20vcmlzY3Yvc2F2ZV9yZWdp c3RlcnNfYXNtLmNjCisrKysgL2Rldi9udWxsCitAQCAtMSw2OCArMCwwIEBACistLy8gQ29weXJp Z2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0v LyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl bnNlIHRoYXQgY2FuIGJlCistLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKy0KKy0jaW5j bHVkZSA8c3JjL2hlYXAvYmFzZS9zdGFjay5oPgorLQorLS8vIFNhdmUgYWxsIGNhbGxlZS1zYXZl ZCByZWdpc3RlcnMgaW4gdGhlIHNwZWNpZmllZCBidWZmZXIuCistLy8gZXh0ZXJuICJDIiB2b2lk IFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhpbnRwdHJfdCogYnVmZmVyKTsKKy0KKy0vLyBTZWUg YXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgZm9yIHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90 IGdlbmVyYXRlZAorLS8vIHVzaW5nIGNsYW5nLgorLS8vCistLy8gQ2FsbGluZyBjb252ZW50aW9u IHNvdXJjZToKKy0vLyBodHRwczovL3Jpc2N2Lm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8w MS9yaXNjdi1jYWxsaW5nLnBkZiBUYWJsZSAxOC4yCistCistI2lmIFY4X0hPU1RfQVJDSF9SSVND VjY0CistLy8gMTIgNjQtYml0IHJlZ2lzdGVycyA9IDEyIGludHBydF90Cistc3RhdGljX2Fzc2Vy dChoZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDEy LAorLSAgICAgICAgICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVk IHJlZ2lzdGVycyIpOworLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0cl90KSA9PSA4LCAiTWlz bWF0Y2ggaW4gd29yZCBzaXplIik7CistCistYXNtKCIuZ2xvYmFsIFNhdmVDYWxsZWVTYXZlZFJl Z2lzdGVycyAgICAgICAgICAgICBcbiIKKy0gICAgIi50eXBlIFNhdmVDYWxsZWVTYXZlZFJlZ2lz dGVycywgJWZ1bmN0aW9uICAgIFxuIgorLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMgICAgICAgICAgICAgXG4iCistICAgICJTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAg ICAgICAgICAgICAgICAgICBcbiIKKy0gICAgLy8gYTA6IFsgaW50cHRyX3QqIGJ1ZmZlciBdCist ICAgIC8vIFNhdmUgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnM6IHMwLXMxMS4KKy0gICAgIiAg c2QgczExLCA4OChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBz ZCBzMTAsIDgwKGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHNk IHM5LCA3MihhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc2Qg czgsIDY0KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzZCBz NywgNTYoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHNkIHM2 LCA0OChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc2QgczUs IDQwKGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzZCBzNCwg MzIoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHNkIHMzLCAy NChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgc2QgczIsIDE2 KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBzZCBzMSwgIDgo YTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIHNkIHMwLCAgMChh MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgLy8gUmV0dXJuLgorLSAg ICAiICBqciByYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iKTsKKy0j ZWxpZiBWOF9IT1NUX0FSQ0hfUklTQ1YzMgorLS8vIDEyIDMyLWJpdCByZWdpc3RlcnMgPSAxMiBp bnRwcnRfdAorLXN0YXRpY19hc3NlcnQoaGVhcDo6YmFzZTo6U3RhY2s6Ok51bWJlck9mQ2FsbGVl U2F2ZWRSZWdpc3RlcnMoKSA9PSAxMiwKKy0gICAgICAgICAgICAgICJNaXNtYXRjaCBpbiB0aGUg bnVtYmVyIG9mIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMiKTsKKy1zdGF0aWNfYXNzZXJ0KHNpemVv ZihpbnRwdHJfdCkgPT0gNCwgIk1pc21hdGNoIGluIHdvcmQgc2l6ZSIpOworLQorLWFzbSgiLmds b2JhbCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICAgXG4iCistICAgICIudHlw ZSBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMsICVmdW5jdGlvbiAgICBcbiIKKy0gICAgIi5oaWRk ZW4gU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAgICAgICAgICAgIFxuIgorLSAgICAiU2F2ZUNh bGxlZVNhdmVkUmVnaXN0ZXJzOiAgICAgICAgICAgICAgICAgICAgXG4iCistICAgIC8vIGEwOiBb IGludHB0cl90KiBidWZmZXIgXQorLSAgICAvLyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0 ZXJzOiBzMC1zMTEuCistICAgICIgIHN3IHMxMSwgNDQoYTApICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKy0gICAgIiAgc3cgczEwLCA0MChhMCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorLSAgICAiICBzdyBzOSwgMzYoYTApICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCistICAgICIgIHN3IHM4LCAzMihhMCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKKy0gICAgIiAgc3cgczcsIDI4KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorLSAgICAiICBzdyBzNiwgMjQoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iCistICAgICIgIHN3IHM1LCAyMChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKy0gICAgIiAgc3cgczQsIDE2KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgorLSAgICAiICBzdyBzMywgMTIoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XG4iCistICAgICIgIHN3IHMyLCAgOChhMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKy0gICAgIiAgc3cgczEsICA0KGEwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorLSAgICAiICBzdyBzMCwgIDAoYTApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i CistICAgIC8vIFJldHVybi4KKy0gICAgIiAganIgcmEgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIik7CistI2VuZGlmCitkaWZmIC0tZ2l0IGEvc3JjL2hlYXAvYmFzZS9h c20vczM5MC9wdXNoX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS9zMzkwL3B1 c2hfcmVnaXN0ZXJzX2FzbS5jYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAu LmVmOTU0ZmEKKy0tLSAvZGV2L251bGwKKysrKyBiL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL3MzOTAv cHVzaF9yZWdpc3RlcnNfYXNtLmNjCitAQCAtMCwwICsxLDM3IEBACisrLy8gQ29weXJpZ2h0IDIw MjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ug b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRo YXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysvLyBQdXNoIGFs bCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBzdGFjayBmb3IgY29u c2VydmF0aXZlCisrLy8gc3RhY2sgc2Nhbm5pbmcuCisrCisrLy8gU2VlIGFzbS94NjQvcHVzaF9y ZWdpc3RlcnNfY2xhbmcuY2MgZm9yIHdoeSB0aGUgZnVuY3Rpb24gaXMgbm90IGdlbmVyYXRlZAor Ky8vIHVzaW5nIGNsYW5nLgorKworKy8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VUX09TXyog ZGVmaW5lcyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCisrLy8gR04gdG9vbGNo YWluIChlLmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KKysKKysvLyBTMzkwIEFC SSBzb3VyY2U6CisrLy8gaHR0cDovL3JlZnNwZWNzLmxpbnV4YmFzZS5vcmcvRUxGL3pTZXJpZXMv bHpzYWJpMF96U2VyaWVzLmh0bWwKKythc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiLmFsaWduIDggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIuZ2xvYmwgUHVzaEFsbFJlZ2lz dGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAgICAgICBcbiIKKysgICAgIi50eXBlIFB1c2hBbGxS ZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2ssICVmdW5jdGlvbiAgIFxuIgorKyAgICAiLmhpZGRlbiBQ dXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgICAgICAgICAgXG4iCisrICAgICJQdXNo QWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrOiAgICAgICAgICAgICAgICAgICBcbiIKKysgICAg Ly8gUHVzaCBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycy4KKysgICAgLy8gcjYtcjEzLCByMTQg YW5kIHNwKHIxNSkKKysgICAgIiAgc3RtZyAlcjYsICVzcCwgNDgoJXNwKSAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorKyAgICAvLyBBbGxvY2F0ZSBmcmFtZS4KKysgICAgIiAgbGF5ICVz cCwgLTE2MCglc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQ YXNzIDFzdCBwYXJhbWV0ZXIgKHIyKSB1bmNoYW5nZWQgKFN0YWNrKikuCisrICAgIC8vIFBhc3Mg Mm5kIHBhcmFtZXRlciAocjMpIHVuY2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCisrICAgIC8vIFNh dmUgM3JkIHBhcmFtZXRlciAocjQ7IEl0ZXJhdGVTdGFja0NhbGxiYWNrKS4KKysgICAgIiAgbGdy ICVyNSwgJXI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAv LyBQYXNzIHNwIGFzIDNyZCBwYXJhbWV0ZXIuIDE2MCs0OCB0byBwb2ludAorKyAgICAvLyB0byBj YWxsZWUgc2F2ZWQgcmVnaW9uIHN0b3JlZCBhYm92ZS4KKysgICAgIiAgbGF5ICVyNCwgMjA4KCVz cCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBDYWxsIHRoZSBj YWxsYmFjay4KKysgICAgIiAgYmFzciAlcjE0LCAlcjUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgorKyAgICAiICBsbWcgJXIxNCwlc3AsIDI3Miglc3ApICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCisrICAgICIgIGJyICVyMTQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcbiIpOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNt L3MzOTAvc2F2ZV9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAvYmFzZS9hc20vczM5MC9zYXZl X3JlZ2lzdGVyc19hc20uY2MKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggYmU5MmNj Mi4uMDAwMDAwMAorLS0tIGEvdjgvc3JjL2hlYXAvYmFzZS9hc20vczM5MC9zYXZlX3JlZ2lzdGVy c19hc20uY2MKKysrKyAvZGV2L251bGwKK0BAIC0xLDM0ICswLDAgQEAKKy0vLyBDb3B5cmlnaHQg MjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLS8vIFVz ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2Ug dGhhdCBjYW4gYmUKKy0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQorLSNpbmNsdWRl IDxzcmMvaGVhcC9iYXNlL3N0YWNrLmg+CistCistLy8gU2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJl Z2lzdGVycyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KKy0vLyBleHRlcm4gIkMiIHZvaWQgU2F2 ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOworLQorLS8vIFNlZSBhc20v eDY0L3NhdmVfcmVnaXN0ZXJzX2FzbS5jYyBmb3Igd2h5IHRoZSBmdW5jdGlvbiBpcyBub3QgZ2Vu ZXJhdGVkCistLy8gdXNpbmcgY2xhbmcuCistLy8KKy0vLyBEbyBub3QgZGVwZW5kIG9uIFY4X1RB UkdFVF9PU18qIGRlZmluZXMgYXMgc29tZSBlbWJlZGRlcnMgbWF5IG92ZXJyaWRlIHRoZQorLS8v IEdOIHRvb2xjaGFpbiAoZS5nLiBDaHJvbWVPUykgYW5kIG5vdCBwcm92aWRlIHRoZW0uCistCist Ly8gUzM5MCBBQkkgc291cmNlOgorLS8vIGh0dHA6Ly9yZWZzcGVjcy5saW51eGJhc2Uub3JnL0VM Ri96U2VyaWVzL2x6c2FiaTBfelNlcmllcy5odG1sCistCistLy8gMTAgNjQtYml0IHJlZ2lzdGVy cyA9IDEwIGludHBydF90Cistc3RhdGljX2Fzc2VydChoZWFwOjpiYXNlOjpTdGFjazo6TnVtYmVy T2ZDYWxsZWVTYXZlZFJlZ2lzdGVycygpID09IDEwLAorLSAgICAgICAgICAgICAgIk1pc21hdGNo IGluIHRoZSBudW1iZXIgb2YgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyIpOworLXN0YXRpY19hc3Nl cnQoc2l6ZW9mKGludHB0cl90KSA9PSA4LCAiTWlzbWF0Y2ggaW4gd29yZCBzaXplIik7CistCist YXNtKCIudGV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAg ICAiLmFsaWduIDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAg Ii5nbG9ibCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICAgXG4iCistICAgICIu dHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMsICVmdW5jdGlvbiAgIFxuIgorLSAgICAiLmhp ZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICBcbiIKKy0gICAgIlNhdmVD YWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAgICAgICAgXG4iCistICAgIC8vIHIyOiBb IGludHB0cl90KiBidWZmZXIgXQorLSAgICAvLyBTYXZlIHRoZSBjYWxsZWUtc2F2ZWQgcmVnaXN0 ZXJzOiByNi1yMTMsIHIxNCBhbmQgc3AocjE1KS4KKy0gICAgIiAgc3RtZyAlcjYsICVzcCwgMCgl cjIpICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgIC8vIFJldHVybi4KKy0gICAgIiAgYnIg JXIxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iKTsKK2RpZmYgLS1naXQg YS9zcmMvaGVhcC9iYXNlL2FzbS94NjQvcHVzaF9yZWdpc3RlcnNfYXNtLmNjIGIvc3JjL2hlYXAv YmFzZS9hc20veDY0L3B1c2hfcmVnaXN0ZXJzX2FzbS5jYworbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAuLjE3ODFhNTgKKy0tLSAvZGV2L251bGwKKysrKyBiL3Y4L3NyYy9oZWFw L2Jhc2UvYXNtL3g2NC9wdXNoX3JlZ2lzdGVyc19hc20uY2MKK0BAIC0wLDAgKzEsMTA2IEBACisr Ly8gQ29weXJpZ2h0IDIwMjAgdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1z dHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4K KysKKysvLyBQdXNoIGFsbCBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRo ZSBzdGFjayBmb3IgY29uc2VydmF0aXZlCisrLy8gc3RhY2sgc2Nhbm5pbmcuCisrLy8KKysvLyBX ZSBjYW5ub3QgcmVseSBvbiBjbGFuZyBnZW5lcmF0aW5nIHRoZSBmdW5jdGlvbiBhbmQgcmlnaHQg c3ltYm9sIG1hbmdsaW5nCisrLy8gYXMgYF9fYXR0cmlidXRlX18oKG5ha2VkKSlgIGRvZXMgbm90 IHByZXZlbnQgY2xhbmcgZnJvbSBnZW5lcmF0aW5nIFRTQU4KKysvLyBmdW5jdGlvbiBlbnRyeSBz dHVicyAoYF9fdHNhbl9mdW5jX2VudHJ5YCkuIEV2ZW4gd2l0aAorKy8vIGBfX2F0dHJpYnV0ZV9f KChub19zYW5pdGl6ZV90aHJlYWQpYCBhbm5vdGF0aW9uIGNsYW5nIGdlbmVyYXRlcyB0aGUgZW50 cnkKKysvLyBzdHViLgorKy8vIFNlZSBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dp P2lkPTQ1NDAwLgorKworKy8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VUX09TXyogZGVmaW5l cyBhcyBzb21lIGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCisrLy8gR04gdG9vbGNoYWluIChl LmcuIENocm9tZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KKysvLyBfV0lONjQgRGVmaW5lZCBh cyAxIHdoZW4gdGhlIGNvbXBpbGF0aW9uIHRhcmdldCBpcyA2NC1iaXQgQVJNIG9yIHg2NC4KKysv LyBPdGhlcndpc2UsIHVuZGVmaW5lZC4KKysjaWZkZWYgX1dJTjY0CisrCisrLy8gV2UgbWFpbnRh aW4gMTYtYnl0ZSBhbGlnbm1lbnQgYXQgY2FsbHMuIFRoZXJlIGlzIGFuIDgtYnl0ZSByZXR1cm4g YWRkcmVzcworKy8vIG9uIHRoZSBzdGFjayBhbmQgd2UgcHVzaCAyMzIgYnl0ZXMgd2hpY2ggbWFp bnRhaW5zIDE2LWJ5dGUgc3RhY2sgYWxpZ25tZW50CisrLy8gYXQgdGhlIGNhbGwuCisrLy8gU291 cmNlOiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvYnVpbGQveDY0LWNhbGxp bmctY29udmVudGlvbgorK2FzbSgiLmdsb2JsIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3Rh Y2sgICAgICAgICAgICAgXG4iCisrICAgICJQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNr OiAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gcmJwIGlzIGNhbGxlZS1zYXZlZC4gTWFp bnRhaW4gcHJvcGVyIGZyYW1lIHBvaW50ZXIgZm9yIGRlYnVnZ2luZy4KKysgICAgIiAgcHVzaCAl cmJwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBt b3YgJXJzcCwgJXJicCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAg IC8vIER1bW15IGZvciBhbGlnbm1lbnQuCisrICAgICIgIHB1c2ggJDB4Q0RDRENEICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgcHVzaCAlcnNpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBwdXNoICVyZGkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIHB1c2ggJXJi eCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgcHVz aCAlcjEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAi ICBwdXNoICVyMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisr ICAgICIgIHB1c2ggJXIxNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc biIKKysgICAgIiAgcHVzaCAlcjE1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFxuIgorKyAgICAiICBzdWIgJDE2MCwgJXJzcCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCisrICAgIC8vIFVzZSBhbGlnbmVkIGluc3RycyBhcyB3ZSBhcmUgY2VydGFp biB0aGF0IHRoZSBzdGFjayBpcyBwcm9wZXJseSBhbGlnbmVkLgorKyAgICAiICBtb3ZkcWEgJXht bTYsIDE0NCglcnNwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIG1vdmRx YSAleG1tNywgMTI4KCVyc3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAg bW92ZHFhICV4bW04LCAxMTIoJXJzcCkgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAg ICAiICBtb3ZkcWEgJXhtbTksIDk2KCVyc3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4i CisrICAgICIgIG1vdmRxYSAleG1tMTAsIDgwKCVyc3ApICAgICAgICAgICAgICAgICAgICAgICAg ICBcbiIKKysgICAgIiAgbW92ZHFhICV4bW0xMSwgNjQoJXJzcCkgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAiICBtb3ZkcWEgJXhtbTEyLCA0OCglcnNwKSAgICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCisrICAgICIgIG1vdmRxYSAleG1tMTMsIDMyKCVyc3ApICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKysgICAgIiAgbW92ZHFhICV4bW0xNCwgMTYoJXJzcCkgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBtb3ZkcWEgJXhtbTE1LCAoJXJzcCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgIC8vIFBhc3MgMXN0IHBhcmFtZXRl ciAocmN4KSB1bmNoYW5nZWQgKFN0YWNrKikuCisrICAgIC8vIFBhc3MgMm5kIHBhcmFtZXRlciAo cmR4KSB1bmNoYW5nZWQgKFN0YWNrVmlzaXRvciopLgorKyAgICAvLyBTYXZlIDNyZCBwYXJhbWV0 ZXIgKHI4OyBJdGVyYXRlU3RhY2tDYWxsYmFjaykKKysgICAgIiAgbW92ICVyOCwgJXI5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQYXNzIDNyZCBwYXJh bWV0ZXIgYXMgcnNwIChzdGFjayBwb2ludGVyKS4KKysgICAgIiAgbW92ICVyc3AsICVyOCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBDYWxsIHRoZSBjYWxs YmFjay4KKysgICAgIiAgY2FsbCAqJXI5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAvLyBQb3AgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCisrICAg ICIgIGFkZCAkMjI0LCAlcnNwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK KysgICAgLy8gUmVzdG9yZSByYnAgYXMgaXQgd2FzIHVzZWQgYXMgZnJhbWUgcG9pbnRlci4KKysg ICAgIiAgcG9wICVyYnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAiICByZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iKTsKKysKKysjZWxzZSAgLy8gIV9XSU42NAorKworKy8vIFdlIG1haW50YWluIDE2LWJ5 dGUgYWxpZ25tZW50IGF0IGNhbGxzLiBUaGVyZSBpcyBhbiA4LWJ5dGUgcmV0dXJuIGFkZHJlc3MK KysvLyBvbiB0aGUgc3RhY2sgYW5kIHdlIHB1c2ggNTYgYnl0ZXMgd2hpY2ggbWFpbnRhaW5zIDE2 LWJ5dGUgc3RhY2sgYWxpZ25tZW50CisrLy8gYXQgdGhlIGNhbGwuCisrLy8gU291cmNlOiBodHRw czovL2dpdGh1Yi5jb20vaGpsLXRvb2xzL3g4Ni1wc0FCSS93aWtpL3g4Ni02NC1wc0FCSS0xLjAu cGRmCisrYXNtKAorKyNpZmRlZiBfX0FQUExFX18KKysgICAgIi5nbG9ibCBfUHVzaEFsbFJlZ2lz dGVyc0FuZEl0ZXJhdGVTdGFjayAgICAgICAgICAgIFxuIgorKyAgICAiLnByaXZhdGVfZXh0ZXJu IF9QdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrICAgXG4iCisrICAgICJfUHVzaEFsbFJl Z2lzdGVyc0FuZEl0ZXJhdGVTdGFjazogICAgICAgICAgICAgICAgICBcbiIKKysjZWxzZSAgIC8v ICFfX0FQUExFX18KKysgICAgIi5nbG9ibCBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNr ICAgICAgICAgICAgIFxuIgorKyAgICAiLnR5cGUgUHVzaEFsbFJlZ2lzdGVyc0FuZEl0ZXJhdGVT dGFjaywgJWZ1bmN0aW9uICAgXG4iCisrICAgICIuaGlkZGVuIFB1c2hBbGxSZWdpc3RlcnNBbmRJ dGVyYXRlU3RhY2sgICAgICAgICAgICBcbiIKKysgICAgIlB1c2hBbGxSZWdpc3RlcnNBbmRJdGVy YXRlU3RhY2s6ICAgICAgICAgICAgICAgICAgIFxuIgorKyNlbmRpZiAgLy8gIV9fQVBQTEVfXwor KyAgICAvLyByYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWludGFpbiBwcm9wZXIgZnJhbWUgcG9pbnRl ciBmb3IgZGVidWdnaW5nLgorKyAgICAiICBwdXNoICVyYnAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIG1vdiAlcnNwLCAlcmJwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gRHVtbXkgZm9yIGFsaWdubWVudC4K KysgICAgIiAgcHVzaCAkMHhDRENEQ0QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFxuIgorKyAgICAiICBwdXNoICVyYnggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXG4iCisrICAgICIgIHB1c2ggJXIxMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKKysgICAgIiAgcHVzaCAlcjEzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorKyAgICAiICBwdXNoICVyMTQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXG4iCisrICAgICIgIHB1c2ggJXIxNSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKysgICAgLy8gUGFzcyAxc3QgcGFyYW1ldGVy IChyZGkpIHVuY2hhbmdlZCAoU3RhY2sqKS4KKysgICAgLy8gUGFzcyAybmQgcGFyYW1ldGVyIChy c2kpIHVuY2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCisrICAgIC8vIFNhdmUgM3JkIHBhcmFtZXRl ciAocmR4OyBJdGVyYXRlU3RhY2tDYWxsYmFjaykKKysgICAgIiAgbW92ICVyZHgsICVyOCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBQYXNzIDNyZCBwYXJh bWV0ZXIgYXMgcnNwIChzdGFjayBwb2ludGVyKS4KKysgICAgIiAgbW92ICVyc3AsICVyZHggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorKyAgICAvLyBDYWxsIHRoZSBjYWxs YmFjay4KKysgICAgIiAgY2FsbCAqJXI4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorKyAgICAvLyBQb3AgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCisrICAg ICIgIGFkZCAkNDgsICVyc3AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIK KysgICAgLy8gUmVzdG9yZSByYnAgYXMgaXQgd2FzIHVzZWQgYXMgZnJhbWUgcG9pbnRlci4KKysg ICAgIiAgcG9wICVyYnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxu IgorKyAgICAiICByZXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXG4iKTsKKysKKysjZW5kaWYgIC8vICFfV0lONjQKK2RpZmYgLS1naXQgYS9zcmMvaGVhcC9i YXNlL2FzbS94NjQvcHVzaF9yZWdpc3RlcnNfbWFzbS5hc20gYi9zcmMvaGVhcC9iYXNlL2FzbS94 NjQvcHVzaF9yZWdpc3RlcnNfbWFzbS5hc20KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwLi5hMzJlMTkzCistLS0gL2Rldi9udWxsCisrKysgYi92OC9zcmMvaGVhcC9iYXNlL2Fz bS94NjQvcHVzaF9yZWdpc3RlcnNfbWFzbS5hc20KK0BAIC0wLDAgKzEsNTcgQEAKKys7OyBDb3B5 cmlnaHQgMjAyMCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor Kzs7IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKKys7OyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKzs7 IE1BU00gc3ludGF4CisrOzsgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvY3BwL2Fz c2VtYmxlci9tYXNtL21pY3Jvc29mdC1tYWNyby1hc3NlbWJsZXItcmVmZXJlbmNlP3ZpZXc9dnMt MjAxOQorKworK3B1YmxpYyBQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrCisrCisrLmNv ZGUKKytQdXNoQWxsUmVnaXN0ZXJzQW5kSXRlcmF0ZVN0YWNrOgorKyAgICA7OyBQdXNoIGFsbCBj YWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIHRvIGdldCB0aGVtIG9uIHRoZSBzdGFjayBmb3IgY29uc2Vy dmF0aXZlCisrICAgIDs7IHN0YWNrIHNjYW5uaW5nLgorKyAgICA7OworKyAgICA7OyBXZSBtYWlu dGFpbiAxNi1ieXRlIGFsaWdubWVudCBhdCBjYWxscy4gVGhlcmUgaXMgYW4gOC1ieXRlIHJldHVy biBhZGRyZXNzCisrICAgIDs7IG9uIHRoZSBzdGFjayBhbmQgd2UgcHVzaCAyMzIgYnl0ZXMgd2hp Y2ggbWFpbnRhaW5zIDE2LWJ5dGUgc3RhY2sKKysgICAgOzsgYWxpZ25tZW50IGF0IHRoZSBjYWxs LgorKyAgICA7OyBTb3VyY2U6IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2NwcC9i dWlsZC94NjQtY2FsbGluZy1jb252ZW50aW9uCisrICAgIDs7CisrICAgIDs7IHJicCBpcyBjYWxs ZWUtc2F2ZWQuIE1haW50YWluIHByb3BlciBmcmFtZSBwb2ludGVyIGZvciBkZWJ1Z2dpbmcuCisr ICAgIHB1c2ggcmJwCisrICAgIG1vdiByYnAsIHJzcAorKyAgICBwdXNoIDBDRENEQ0RoICA7OyBE dW1teSBmb3IgYWxpZ25tZW50LgorKyAgICBwdXNoIHJzaQorKyAgICBwdXNoIHJkaQorKyAgICBw dXNoIHJieAorKyAgICBwdXNoIHIxMgorKyAgICBwdXNoIHIxMworKyAgICBwdXNoIHIxNAorKyAg ICBwdXNoIHIxNQorKyAgICBzdWIgcnNwLCAxNjAKKysgICAgOzsgVXNlIGFsaWduZWQgaW5zdHJz IGFzIHdlIGFyZSBjZXJ0YWluIHRoYXQgdGhlIHN0YWNrIGlzIHByb3Blcmx5IGFsaWduZWQuCisr ICAgIG1vdmRxYSAgeG1td29yZCBwdHIgW3JzcCArIDE0NF0sIHhtbTYKKysgICAgbW92ZHFhICB4 bW13b3JkIHB0ciBbcnNwICsgMTI4XSwgeG1tNworKyAgICBtb3ZkcWEgIHhtbXdvcmQgcHRyIFty c3AgKyAxMTJdLCB4bW04CisrICAgIG1vdmRxYSAgeG1td29yZCBwdHIgW3JzcCArIDk2XSwgeG1t OQorKyAgICBtb3ZkcWEgIHhtbXdvcmQgcHRyIFtyc3AgKyA4MF0sIHhtbTEwCisrICAgIG1vdmRx YSAgeG1td29yZCBwdHIgW3JzcCArIDY0XSwgeG1tMTEKKysgICAgbW92ZHFhICB4bW13b3JkIHB0 ciBbcnNwICsgNDhdLCB4bW0xMgorKyAgICBtb3ZkcWEgIHhtbXdvcmQgcHRyIFtyc3AgKyAzMl0s IHhtbTEzCisrICAgIG1vdmRxYSAgeG1td29yZCBwdHIgW3JzcCArIDE2XSwgeG1tMTQKKysgICAg bW92ZHFhICB4bW13b3JkIHB0ciBbcnNwXSwgeG1tMTUKKysgICAgOzsgUGFzcyAxc3QgcGFyYW1l dGVyIChyY3gpIHVuY2hhbmdlZCAoU3RhY2sqKS4KKysgICAgOzsgUGFzcyAybmQgcGFyYW1ldGVy IChyZHgpIHVuY2hhbmdlZCAoU3RhY2tWaXNpdG9yKikuCisrICAgIDs7IFNhdmUgM3JkIHBhcmFt ZXRlciAocjg7IEl0ZXJhdGVTdGFja0NhbGxiYWNrKQorKyAgICBtb3YgcjksIHI4CisrICAgIDs7 IFBhc3MgM3JkIHBhcmFtZXRlciBhcyByc3AgKHN0YWNrIHBvaW50ZXIpLgorKyAgICBtb3Ygcjgs IHJzcAorKyAgICA7OyBDYWxsIHRoZSBjYWxsYmFjay4KKysgICAgY2FsbCByOQorKyAgICA7OyBQ b3AgdGhlIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMuCisrICAgIGFkZCByc3AsIDIyNAorKyAgICA7 OyBSZXN0b3JlIHJicCBhcyBpdCB3YXMgdXNlZCBhcyBmcmFtZSBwb2ludGVyLgorKyAgICBwb3Ag cmJwCisrICAgIHJldAorKworK2VuZAorZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2UvYXNtL3g2 NC9zYXZlX3JlZ2lzdGVyc19hc20uY2MgYi9zcmMvaGVhcC9iYXNlL2FzbS94NjQvc2F2ZV9yZWdp c3RlcnNfYXNtLmNjCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDg1NWE2NTQuLjAw MDAwMDAKKy0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2UvYXNtL3g2NC9zYXZlX3JlZ2lzdGVyc19hc20u Y2MKKysrKyAvZGV2L251bGwKK0BAIC0xLDk0ICswLDAgQEAKKy0vLyBDb3B5cmlnaHQgMjAyMCB0 aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLS8vIFVzZSBvZiB0 aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBj YW4gYmUKKy0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorLQorLSNpbmNsdWRlIDxzcmMv aGVhcC9iYXNlL3N0YWNrLmg+CistCistLy8gU2F2ZSBhbGwgY2FsbGVlLXNhdmVkIHJlZ2lzdGVy cyBpbiB0aGUgc3BlY2lmaWVkIGJ1ZmZlci4KKy0vLyBleHRlcm4gIkMiIHZvaWQgU2F2ZUNhbGxl ZVNhdmVkUmVnaXN0ZXJzKGludHB0cl90KiBidWZmZXIpOworLS8vCistLy8gV2UgY2Fubm90IHJl bHkgb24gY2xhbmcgZ2VuZXJhdGluZyB0aGUgZnVuY3Rpb24gYW5kIHJpZ2h0IHN5bWJvbCBtYW5n bGluZworLS8vIGFzIGBfX2F0dHJpYnV0ZV9fKChuYWtlZCkpYCBkb2VzIG5vdCBwcmV2ZW50IGNs YW5nIGZyb20gZ2VuZXJhdGluZyBUU0FOCistLy8gZnVuY3Rpb24gZW50cnkgc3R1YnMgKGBfX3Rz YW5fZnVuY19lbnRyeWApLiBFdmVuIHdpdGgKKy0vLyBgX19hdHRyaWJ1dGVfXygobm9fc2FuaXRp emVfdGhyZWFkKWAgYW5ub3RhdGlvbiBjbGFuZyBnZW5lcmF0ZXMgdGhlIGVudHJ5CistLy8gc3R1 Yi4KKy0vLyBTZWUgaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQwMC4K Ky0vLworLS8vIERvIG5vdCBkZXBlbmQgb24gVjhfVEFSR0VUX09TXyogZGVmaW5lcyBhcyBzb21l IGVtYmVkZGVycyBtYXkgb3ZlcnJpZGUgdGhlCistLy8gR04gdG9vbGNoYWluIChlLmcuIENocm9t ZU9TKSBhbmQgbm90IHByb3ZpZGUgdGhlbS4KKy0vLyBfV0lONjQgRGVmaW5lZCBhcyAxIHdoZW4g dGhlIGNvbXBpbGF0aW9uIHRhcmdldCBpcyA2NC1iaXQgQVJNIG9yIHg2NC4KKy0vLyBPdGhlcndp c2UsIHVuZGVmaW5lZC4KKy0KKy0jaWZkZWYgX1dJTjY0CistLy8gU291cmNlOiBodHRwczovL2Rv Y3MubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvYnVpbGQveDY0LWNhbGxpbmctY29udmVudGlvbgor LQorLS8vIDcgNjQtYml0IHJlZ2lzdGVycyArIDEgZm9yIGFsaWdubWVudCBwdXJwb3NlcyA9IDgg KiAxID0gOCBpbnRwcnRfdAorLS8vIDEwIDEyOC1iaXQgcmVnaXN0ZXJzID0gMTAgKiAyID0gMjAg aW50cHRyX3QKKy1zdGF0aWNfYXNzZXJ0KGhlYXA6OmJhc2U6OlN0YWNrOjpOdW1iZXJPZkNhbGxl ZVNhdmVkUmVnaXN0ZXJzKCkgPT0gMjgsCistICAgICAgICAgICAgICAiTWlzbWF0Y2ggaW4gdGhl IG51bWJlciBvZiBjYWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIik7Cistc3RhdGljX2Fzc2VydChzaXpl b2YoaW50cHRyX3QpID09IDgsICJNaXNtYXRjaCBpbiB3b3JkIHNpemUiKTsKKy0KKy1hc20oIi5n bG9ibCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgICAgICAgICAgICAgXG4iCistICAgICJTYXZl Q2FsbGVlU2F2ZWRSZWdpc3RlcnM6ICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAvLyAlcmN4 OiBbIGludHB0cl90KiBidWZmZXIgXQorLSAgICAvLyAlcmJwIGlzIGNhbGxlZS1zYXZlZC4gTWFp bnRhaW4gcHJvcGVyIGZyYW1lIHBvaW50ZXIgZm9yIGRlYnVnZ2luZy4KKy0gICAgIiAgcHVzaCAl cmJwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIG1vdiAlcnNw LCAlcmJwICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAvLyBTYXZlIHRoZSBj YWxsZWUtc2F2ZWQgcmVnaXN0ZXJzLgorLSAgICAiICBtb3YgJXJzaSwgMCglcmN4KSAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ICVyZGksIDgoJXJjeCkgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCistICAgICIgIG1vdiAlcmJ4LCAxNiglcmN4KSAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorLSAgICAiICBtb3YgJXIxMiwgMjQoJXJjeCkgICAgICAgICAgICAg ICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ICVyMTMsIDMyKCVyY3gpICAgICAgICAgICAgICAg ICAgICAgICAgXG4iCistICAgICIgIG1vdiAlcjE0LCA0MCglcmN4KSAgICAgICAgICAgICAgICAg ICAgICAgIFxuIgorLSAgICAiICBtb3YgJXIxNSwgNDgoJXJjeCkgICAgICAgICAgICAgICAgICAg ICAgICBcbiIKKy0gICAgLy8gU2tpcCBvbmUgc2xvdCB0byBhY2hpZXZlIHByb3BlciBhbGlnbm1l bnQgYW5kIHVzZSBhbGlnbmVkIGluc3RydWN0aW9ucywKKy0gICAgLy8gYXMgd2UgYXJlIHN1cmUg dGhhdCB0aGUgYnVmZmVyIGlzIHByb3Blcmx5IGFsaWduZWQuCistICAgICIgIG1vdmRxYSAleG1t NiwgNjQoJXJjeCkgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBtb3ZkcWEgJXhtbTcs IDgwKCVyY3gpICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ZHFhICV4bW04LCA5 NiglcmN4KSAgICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIG1vdmRxYSAleG1tOSwgMTEy KCVyY3gpICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBtb3ZkcWEgJXhtbTEwLCAxMjgo JXJjeCkgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ZHFhICV4bW0xMSwgMTQ0KCVy Y3gpICAgICAgICAgICAgICAgICAgXG4iCistICAgICIgIG1vdmRxYSAleG1tMTIsIDE2MCglcmN4 KSAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBtb3ZkcWEgJXhtbTEzLCAxNzYoJXJjeCkg ICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ZHFhICV4bW0xNCwgMTkyKCVyY3gpICAg ICAgICAgICAgICAgICAgXG4iCistICAgICIgIG1vdmRxYSAleG1tMTUsIDIwOCglcmN4KSAgICAg ICAgICAgICAgICAgIFxuIgorLSAgICAvLyBSZXR1cm4uCistICAgICIgIHBvcCAlcmJwICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICByZXQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIpOworLQorLSNlbHNlICAvLyAhX1dJTjY0Cist Ly8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaGpsLXRvb2xzL3g4Ni1wc0FCSS93aWtpL3g4 Ni02NC1wc0FCSS0xLjAucGRmCistCistLy8gNSA2NC1iaXQgcmVnaXN0ZXJzID0gNSBpbnRwcnRf dAorLXN0YXRpY19hc3NlcnQoaGVhcDo6YmFzZTo6U3RhY2s6Ok51bWJlck9mQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMoKSA9PSA1LAorLSAgICAgICAgICAgICAgIk1pc21hdGNoIGluIHRoZSBudW1iZXIg b2YgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyIpOworLXN0YXRpY19hc3NlcnQoc2l6ZW9mKGludHB0 cl90KSA9PSA4LCAiTWlzbWF0Y2ggaW4gd29yZCBzaXplIik7CistCistYXNtKAorLSNpZmRlZiBf X0FQUExFX18KKy0gICAgIi5nbG9ibCBfU2F2ZUNhbGxlZVNhdmVkUmVnaXN0ZXJzICAgICAgICAg ICAgXG4iCistICAgICIucHJpdmF0ZV9leHRlcm4gX1NhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyAg IFxuIgorLSAgICAiX1NhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAgICAgICAgICAgICAgICBc biIKKy0jZWxzZSAgIC8vICFfX0FQUExFX18KKy0gICAgIi5nbG9ibCBTYXZlQ2FsbGVlU2F2ZWRS ZWdpc3RlcnMgICAgICAgICAgICAgXG4iCistICAgICIudHlwZSBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMsICVmdW5jdGlvbiAgIFxuIgorLSAgICAiLmhpZGRlbiBTYXZlQ2FsbGVlU2F2ZWRSZWdp c3RlcnMgICAgICAgICAgICBcbiIKKy0gICAgIlNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVyczogICAg ICAgICAgICAgICAgICAgXG4iCistI2VuZGlmICAvLyAhX19BUFBMRV9fCistICAgIC8vICVyZGk6 IFsgaW50cHRyX3QqIGJ1ZmZlciBdCistICAgIC8vICVyYnAgaXMgY2FsbGVlLXNhdmVkLiBNYWlu dGFpbiBwcm9wZXIgZnJhbWUgcG9pbnRlciBmb3IgZGVidWdnaW5nLgorLSAgICAiICBwdXNoICVy YnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ICVyc3As ICVyYnAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCistICAgIC8vIFNhdmUgdGhlIGNh bGxlZS1zYXZlZCByZWdpc3RlcnMuCistICAgICIgIG1vdiAlcmJ4LCAwKCVyZGkpICAgICAgICAg ICAgICAgICAgICAgICAgIFxuIgorLSAgICAiICBtb3YgJXIxMiwgOCglcmRpKSAgICAgICAgICAg ICAgICAgICAgICAgICBcbiIKKy0gICAgIiAgbW92ICVyMTMsIDE2KCVyZGkpICAgICAgICAgICAg ICAgICAgICAgICAgXG4iCistICAgICIgIG1vdiAlcjE0LCAyNCglcmRpKSAgICAgICAgICAgICAg ICAgICAgICAgIFxuIgorLSAgICAiICBtb3YgJXIxNSwgMzIoJXJkaSkgICAgICAgICAgICAgICAg ICAgICAgICBcbiIKKy0gICAgLy8gUmVzdG9yZSAlcmJwIGFzIGl0IHdhcyB1c2VkIGFzIGZyYW1l IHBvaW50ZXIgYW5kIHJldHVybi4KKy0gICAgIiAgcG9wICVyYnAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCistICAgICIgIHJldCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIik7CistCistI2VuZGlmICAvLyAhX1dJTjY0CitkaWZmIC0tZ2l0IGEv c3JjL2hlYXAvYmFzZS9hc20veDY0L3NhdmVfcmVnaXN0ZXJzX21hc20uYXNtIGIvc3JjL2hlYXAv YmFzZS9hc20veDY0L3NhdmVfcmVnaXN0ZXJzX21hc20uYXNtCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDI5OTQ2YTQuLjAwMDAwMDAKKy0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2UvYXNt L3g2NC9zYXZlX3JlZ2lzdGVyc19tYXNtLmFzbQorKysrIC9kZXYvbnVsbAorQEAgLTEsNDMgKzAs MCBAQAorLTs7IENvcHlyaWdodCAyMDIwIHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCistOzsgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLTs7IGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCistCistOzsgTUFTTSBzeW50YXgKKy07OyBodHRwczovL2RvY3MubWljcm9zb2Z0LmNv bS9lbi11cy9jcHAvYXNzZW1ibGVyL21hc20vbWljcm9zb2Z0LW1hY3JvLWFzc2VtYmxlci1yZWZl cmVuY2U/dmlldz12cy0yMDE5CistCistcHVibGljIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycwor LQorLS5jb2RlCistICAgIDs7IFNhdmUgYWxsIGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgaW4gdGhl IHNwZWNpZmllZCBidWZmZXIuCistICAgIDs7IGV4dGVybiAiQyIgdm9pZCBTYXZlQ2FsbGVlU2F2 ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7CistCistU2F2ZUNhbGxlZVNhdmVkUmVnaXN0 ZXJzOgorLSAgICA7OyAlcmN4OiBbIGludHB0cl90KiBidWZmZXIgXQorLSAgICA7OyAlcmJwIGlz IGNhbGxlZS1zYXZlZC4gTWFpbnRhaW4gcHJvcGVyIGZyYW1lIHBvaW50ZXIgZm9yIGRlYnVnZ2lu Zy4KKy0gICAgcHVzaCByYnAKKy0gICAgbW92IHJicCwgcnNwCistICAgIDs7IFNhdmUgdGhlIGNh bGxlZS1zYXZlZCByZWdpc3RlcnMuCistICAgIG1vdiBxd29yZCBwdHIgW3JjeF0sIHJzaQorLSAg ICBtb3YgcXdvcmQgcHRyIFtyY3ggKyA4XSwgcmRpCistICAgIG1vdiBxd29yZCBwdHIgW3JjeCAr IDE2XSwgcmJ4CistICAgIG1vdiBxd29yZCBwdHIgW3JjeCArIDI0XSwgcjEyCistICAgIG1vdiBx d29yZCBwdHIgW3JjeCArIDMyXSwgcjEzCistICAgIG1vdiBxd29yZCBwdHIgW3JjeCArIDQwXSwg cjE0CistICAgIG1vdiBxd29yZCBwdHIgW3JjeCArIDQ4XSwgcjE1CistICAgIDs7IFNraXAgb25l IHNsb3QgdG8gYWNoaWV2ZSBwcm9wZXIgYWxpZ25tZW50IGFuZCB1c2UgYWxpZ25lZCBpbnN0cnVj dGlvbnMsCistICAgIDs7IGFzIHdlIGFyZSBzdXJlIHRoYXQgdGhlIGJ1ZmZlciBpcyBwcm9wZXJs eSBhbGlnbmVkLgorLSAgICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDY0XSwgeG1tNgorLSAg ICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDgwXSwgeG1tNworLSAgICBtb3ZkcWEgeG1td29y ZCBwdHIgW3JjeCArIDk2XSwgeG1tOAorLSAgICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDEx Ml0sIHhtbTkKKy0gICAgbW92ZHFhIHhtbXdvcmQgcHRyIFtyY3ggKyAxMjhdLCB4bW0xMAorLSAg ICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDE0NF0sIHhtbTExCistICAgIG1vdmRxYSB4bW13 b3JkIHB0ciBbcmN4ICsgMTYwXSwgeG1tMTIKKy0gICAgbW92ZHFhIHhtbXdvcmQgcHRyIFtyY3gg KyAxNzZdLCB4bW0xMworLSAgICBtb3ZkcWEgeG1td29yZCBwdHIgW3JjeCArIDE5Ml0sIHhtbTE0 CistICAgIG1vdmRxYSB4bW13b3JkIHB0ciBbcmN4ICsgMjA4XSwgeG1tMTUKKy0gICAgOzsgUmVz dG9yZSAlcmJwIGFzIGl0IHdhcyB1c2VkIGFzIGZyYW1lIHBvaW50ZXIgYW5kIHJldHVybi4KKy0g ICAgcG9wIHJicAorLSAgICByZXQKKy0KKy1lbmQKK2RpZmYgLS1naXQgYS9zcmMvaGVhcC9iYXNl L3N0YWNrLmNjIGIvc3JjL2hlYXAvYmFzZS9zdGFjay5jYworaW5kZXggZDhlNjE4ZC4uNTRhODY5 NyAxMDA2NDQKKy0tLSBhL3Y4L3NyYy9oZWFwL2Jhc2Uvc3RhY2suY2MKKysrKyBiL3Y4L3NyYy9o ZWFwL2Jhc2Uvc3RhY2suY2MKK0BAIC02LDE4ICs2LDIxIEBACisgCisgI2luY2x1ZGUgPGxpbWl0 cz4KKyAKKysjaW5jbHVkZSAic3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZvcm0uaCIKKyAjaW5jbHVk ZSAic3JjL2Jhc2Uvc2FuaXRpemVyL2FzYW4uaCIKKyAjaW5jbHVkZSAic3JjL2Jhc2Uvc2FuaXRp emVyL21zYW4uaCIKKyAjaW5jbHVkZSAic3JjL2Jhc2Uvc2FuaXRpemVyL3RzYW4uaCIKKyAKKyBu YW1lc3BhY2UgaGVhcDo6YmFzZSB7CisgCistU3RhY2s6OlN0YWNrKGNvbnN0IHZvaWQqIHN0YWNr X3N0YXJ0KSA6IHN0YWNrX3N0YXJ0XyhzdGFja19zdGFydCkge30KKy0KKy12b2lkIFN0YWNrOjpT ZXRTdGFja1N0YXJ0KGNvbnN0IHZvaWQqIHN0YWNrX3N0YXJ0KSB7CistICBEQ0hFQ0soIWNvbnRl eHRfKTsKKy0gIHN0YWNrX3N0YXJ0XyA9IHN0YWNrX3N0YXJ0OworLX0KKysvLyBGdW5jdGlvbiB3 aXRoIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbjoKKysvLyBQdXNoZXMgYWxs IGNhbGxlZS1zYXZlZCByZWdpc3RlcnMgdG8gdGhlIHN0YWNrIGFuZCBpbnZva2VzIHRoZSBjYWxs YmFjaywKKysvLyBwYXNzaW5nIHRoZSBzdXBwbGllZCBwb2ludGVycyAoc3RhY2sgYW5kIGFyZ3Vt ZW50KSBhbmQgdGhlIGludGVuZGVkIHN0YWNrCisrLy8gbWFya2VyLgorK3VzaW5nIEl0ZXJhdGVT dGFja0NhbGxiYWNrID0gdm9pZCAoKikoY29uc3QgU3RhY2sqLCBTdGFja1Zpc2l0b3IqLCBjb25z dCB2b2lkKik7CisrZXh0ZXJuICJDIiB2b2lkIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3Rh Y2soY29uc3QgU3RhY2sqIHN0YWNrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFN0YWNrVmlzaXRvciogdmlzaXRvciwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVyYXRlU3RhY2tDYWxsYmFjayBjYWxs YmFjayk7CisgCisgYm9vbCBTdGFjazo6SXNPblN0YWNrKGNvbnN0IHZvaWQqIHNsb3QpIGNvbnN0 IHsKKyAgIERDSEVDS19OT1RfTlVMTChzdGFja19zdGFydF8pOworQEAgLTE0MSw5NyArMTQ0LDYy IEBACisgCisgfSAgLy8gbmFtZXNwYWNlCisgCistdm9pZCBTdGFjazo6SXRlcmF0ZVBvaW50ZXJz KFN0YWNrVmlzaXRvciogdmlzaXRvcikgY29uc3QgeworLSAgRENIRUNLX05PVF9OVUxMKHN0YWNr X3N0YXJ0Xyk7CistICBEQ0hFQ0soY29udGV4dF8pOworLSAgRENIRUNLX05PVF9OVUxMKGNvbnRl eHRfLT5zdGFja19tYXJrZXIpOworLQorKy8vIHN0YXRpYworK3ZvaWQgU3RhY2s6Okl0ZXJhdGVQ b2ludGVyc0ltcGwoY29uc3QgU3RhY2sqIHN0YWNrLCBTdGFja1Zpc2l0b3IqIHZpc2l0b3IsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkKiBzdGFja19lbmQpIHsK KyAjaWZkZWYgVjhfVVNFX0FERFJFU1NfU0FOSVRJWkVSCisgICBjb25zdCB2b2lkKiBhc2FuX2Zh a2Vfc3RhY2sgPSBfX2FzYW5fZ2V0X2N1cnJlbnRfZmFrZV9zdGFjaygpOworICNlbHNlCisgICBj b25zdCB2b2lkKiBhc2FuX2Zha2Vfc3RhY2sgPSBudWxscHRyOworICNlbmRpZiAgLy8gVjhfVVNF X0FERFJFU1NfU0FOSVRJWkVSCisgCistICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHJlZ2lzdGVy cy4KKy0gIGZvciAoaW50cHRyX3QgdmFsdWUgOiBjb250ZXh0Xy0+cmVnaXN0ZXJzKSB7CistICAg IGNvbnN0IHZvaWQqIGFkZHJlc3MgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih2YWx1 ZSk7CistICAgIE1TQU5fTUVNT1JZX0lTX0lOSVRJQUxJWkVEKCZhZGRyZXNzLCBzaXplb2YoYWRk cmVzcykpOworLSAgICBpZiAoYWRkcmVzcyA9PSBudWxscHRyKSBjb250aW51ZTsKKy0gICAgdmlz aXRvci0+VmlzaXRQb2ludGVyKGFkZHJlc3MpOworLSAgICBJdGVyYXRlQXNhbkZha2VGcmFtZUlm TmVjZXNzYXJ5KHZpc2l0b3IsIGFzYW5fZmFrZV9zdGFjaywgc3RhY2tfc3RhcnRfLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRfLT5zdGFja19tYXJrZXIsIGFk ZHJlc3MpOworLSAgfQorLQorICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBzdGFjay4KKyAgIC8v IEFsbCBzdXBwb3J0ZWQgcGxhdGZvcm1zIHNob3VsZCBoYXZlIHRoZWlyIHN0YWNrIGFsaWduZWQg dG8gYXQgbGVhc3QKKyAgIC8vIHNpemVvZih2b2lkKikuCisgICBjb25zdGV4cHIgc2l6ZV90IGtN aW5TdGFja0FsaWdubWVudCA9IHNpemVvZih2b2lkKik7CistICBDSEVDS19FUSgwdSwgcmVpbnRl cnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvbnRleHRfLT5zdGFja19tYXJrZXIpICYKKy0gICAgICAg ICAgICAgICAgICAgKGtNaW5TdGFja0FsaWdubWVudCAtIDEpKTsKKy0gIEl0ZXJhdGVQb2ludGVy c0luU3RhY2soCistICAgICAgdmlzaXRvciwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKiBj b25zdCo+KGNvbnRleHRfLT5zdGFja19tYXJrZXIpLAorLSAgICAgIHN0YWNrX3N0YXJ0XywgYXNh bl9mYWtlX3N0YWNrKTsKKysgIENIRUNLX0VRKDB1LAorKyAgICAgICAgICAgcmVpbnRlcnByZXRf Y2FzdDx1aW50cHRyX3Q+KHN0YWNrX2VuZCkgJiAoa01pblN0YWNrQWxpZ25tZW50IC0gMSkpOwor KyAgSXRlcmF0ZVBvaW50ZXJzSW5TdGFjayh2aXNpdG9yLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqIGNvbnN0Kj4oc3RhY2tfZW5kKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2stPnN0YWNrX3N0YXJ0XywgYXNhbl9mYWtlX3N0 YWNrKTsKKyAKKy0gIGZvciAoY29uc3QgYXV0byYgc3RhY2sgOiBpbmFjdGl2ZV9zdGFja3NfKSB7 CistICAgIEl0ZXJhdGVQb2ludGVyc0luU3RhY2sodmlzaXRvciwgc3RhY2sudG9wLCBzdGFjay5z dGFydCwgYXNhbl9mYWtlX3N0YWNrKTsKKysgIGZvciAoY29uc3QgYXV0byYgc2VnbWVudCA6IHN0 YWNrLT5pbmFjdGl2ZV9zdGFja3NfKSB7CisrICAgIEl0ZXJhdGVQb2ludGVyc0luU3RhY2sodmlz aXRvciwgc2VnbWVudC50b3AsIHNlZ21lbnQuc3RhcnQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNhbl9mYWtlX3N0YWNrKTsKKyAgIH0KKyAKKyAgIEl0ZXJhdGVVbnNhZmVTdGFja0lm TmVjZXNzYXJ5KHZpc2l0b3IpOworIH0KKyAKKy1uYW1lc3BhY2UgeworLS8vIEZ1bmN0aW9uIHdp dGggYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGltcGxlbWVudGF0aW9uOgorLS8vIFNhdmVzIGFsbCBj YWxsZWUtc2F2ZWQgcmVnaXN0ZXJzIGluIHRoZSBzcGVjaWZpZWQgYnVmZmVyLgorLWV4dGVybiAi QyIgdm9pZCBTYXZlQ2FsbGVlU2F2ZWRSZWdpc3RlcnMoaW50cHRyX3QqIGJ1ZmZlcik7Cisrdm9p ZCBTdGFjazo6SXRlcmF0ZVBvaW50ZXJzKFN0YWNrVmlzaXRvciogdmlzaXRvcikgY29uc3Qgewor KyAgLy8gVE9ETyh2ODoxMzQ5Myk6IFJlbW92ZSB0aGUgaW1wbGljYXRpb24gYXMgc29vbiBhcyBJ c09uQ3VycmVudFN0YWNrIGlzCisrICAvLyBjb21wYXRpYmxlIHdpdGggc3RhY2sgc3dpdGNoaW5n LgorKyAgRENIRUNLX0lNUExJRVMoIXdhc21fc3RhY2tfc3dpdGNoaW5nXywgSXNPbkN1cnJlbnRT dGFjayhzdGFja19zdGFydF8pKTsKKysgIFB1c2hBbGxSZWdpc3RlcnNBbmRJdGVyYXRlU3RhY2so dGhpcywgdmlzaXRvciwgJkl0ZXJhdGVQb2ludGVyc0ltcGwpOworKyAgLy8gTm8gbmVlZCB0byBk ZWFsIHdpdGggY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBhcyB0aGV5IHdpbGwgYmUga2VwdCBhbGl2 ZSBieQorKyAgLy8gdGhlIHJlZ3VsYXIgY29uc2VydmF0aXZlIHN0YWNrIGl0ZXJhdGlvbi4KKysg IC8vIFRPRE8oY2hyb21pdW06MTA1NjE3MCk6IEFkZCBzdXBwb3J0IGZvciBTSU1EIGFuZC9vciBm aWx0ZXJpbmcuCisrICBJdGVyYXRlVW5zYWZlU3RhY2tJZk5lY2Vzc2FyeSh2aXNpdG9yKTsKKyt9 CisrCisrdm9pZCBTdGFjazo6SXRlcmF0ZVBvaW50ZXJzVW5zYWZlKFN0YWNrVmlzaXRvciogdmlz aXRvciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCogc3Rh Y2tfZW5kKSBjb25zdCB7CisrICBEQ0hFQ0tfTk9UX05VTEwoc3RhY2tfc3RhcnRfKTsKKysgIERD SEVDS19OT1RfTlVMTChzdGFja19lbmQpOworKyAgRENIRUNLX0dFKHN0YWNrX3N0YXJ0Xywgc3Rh Y2tfZW5kKTsKKysgIEl0ZXJhdGVQb2ludGVyc0ltcGwodGhpcywgdmlzaXRvciwgc3RhY2tfZW5k KTsKKyt9CisgCisgI2lmZGVmIERFQlVHCistCistYm9vbCBJc09uQ3VycmVudFN0YWNrKGNvbnN0 IHZvaWQqIHB0cikgeworKy8vIHN0YXRpYworK2Jvb2wgU3RhY2s6OklzT25DdXJyZW50U3RhY2so Y29uc3Qgdm9pZCogcHRyKSB7CisgICBEQ0hFQ0tfTk9UX05VTEwocHRyKTsKKyAgIGNvbnN0IHZv aWQqIGN1cnJlbnRfc3RhY2tfc3RhcnQgPSB2ODo6YmFzZTo6U3RhY2s6OkdldFN0YWNrU3RhcnQo KTsKKyAgIGNvbnN0IHZvaWQqIGN1cnJlbnRfc3RhY2tfdG9wID0gdjg6OmJhc2U6OlN0YWNrOjpH ZXRDdXJyZW50U3RhY2tQb3NpdGlvbigpOworICAgcmV0dXJuIHB0ciA8PSBjdXJyZW50X3N0YWNr X3N0YXJ0ICYmIHB0ciA+PSBjdXJyZW50X3N0YWNrX3RvcDsKKyB9CistCisgI2VuZGlmICAvLyBE RUJVRworIAorLX0gIC8vIG5hbWVzcGFjZQorLQorLXZvaWQgU3RhY2s6OlNhdmVDb250ZXh0KGJv b2wgY2hlY2tfaW52YXJpYW50KSB7CistICAvLyBUT0RPKHY4OjEzNDkzKTogUmVtb3ZlIHRoZSBt ZXRob2QncyBwYXJhbWV0ZXIgYW5kIHRoZSBpbXBsaWNhdGlvbiBhcyBzb29uCistICAvLyBhcyBJ c09uQ3VycmVudFN0YWNrIGlzIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCistICBE Q0hFQ0tfSU1QTElFUyhjaGVja19pbnZhcmlhbnQsIElzT25DdXJyZW50U3RhY2soc3RhY2tfc3Rh cnRfKSk7CistICAvLyBDb250ZXh0cyBjYW4gYmUgbmVzdGVkIGJ1dCB0aGUgbWFya2VyIGFuZCB0 aGUgcmVnaXN0ZXJzIGFyZSBvbmx5IHNhdmVkIG9uCistICAvLyB0aGUgZmlyc3QgaW52b2NhdGlv bi4KKy0gIGlmIChjb250ZXh0XykgeworLSAgICArK2NvbnRleHRfLT5uZXN0aW5nX2NvdW50ZXI7 CistICAgIHJldHVybjsKKy0gIH0KKy0gIC8vIEFsbG9jYXRlIHRoZSBjb250ZXh0IGFuZCBzZXQg dGhlIG1hcmtlci4KKy0gIGNvbnN0IHZvaWQqIHN0YWNrX3RvcCA9IHY4OjpiYXNlOjpTdGFjazo6 R2V0Q3VycmVudFN0YWNrUG9zaXRpb24oKTsKKy0gIERDSEVDS19OT1RfTlVMTChzdGFja190b3Ap OworLSAgY29udGV4dF8gPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHQ+KHN0YWNrX3RvcCk7Cist ICAvLyBUT0RPKHY4OjEzNDkzKTogUmVtb3ZlIHRoZSBpbXBsaWNhdGlvbiBhcyBzb29uIGFzIElz VmFsaWRNYXJrZXIgaXMKKy0gIC8vIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCist ICBEQ0hFQ0tfSU1QTElFUyhjaGVja19pbnZhcmlhbnQsIHN0YWNrX3RvcCA8PSBzdGFja19zdGFy dF8pOworLSAgY29udGV4dF8tPnN0YWNrX21hcmtlciA9IHN0YWNrX3RvcDsKKy0gIC8vIFNhdmUg dGhlIHJlZ2lzdGVycy4KKy0gIFNhdmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhjb250ZXh0Xy0+cmVn aXN0ZXJzLmRhdGEoKSk7CistfQorLQorLXZvaWQgU3RhY2s6OkNsZWFyQ29udGV4dChib29sIGNo ZWNrX2ludmFyaWFudCkgeworLSAgLy8gVE9ETyh2ODoxMzQ5Myk6IFJlbW92ZSB0aGUgbWV0aG9k J3MgcGFyYW1ldGVyIGFuZCB0aGUgaW1wbGljYXRpb24gYXMgc29vbgorLSAgLy8gYXMgSXNPbkN1 cnJlbnRTdGFjayBpcyBjb21wYXRpYmxlIHdpdGggc3RhY2sgc3dpdGNoaW5nLgorLSAgRENIRUNL X0lNUExJRVMoY2hlY2tfaW52YXJpYW50LCBJc09uQ3VycmVudFN0YWNrKHN0YWNrX3N0YXJ0Xykp OworLSAgRENIRUNLKGNvbnRleHRfKTsKKy0gIC8vIFNraXAgY2xlYXJpbmcgdGhlIGNvbnRleHQg aWYgdGhhdCB3YXMgYSBuZXN0ZWQgaW52b2NhdGlvbi4KKy0gIGlmIChjb250ZXh0Xy0+bmVzdGlu Z19jb3VudGVyID4gMCkgeworLSAgICAtLWNvbnRleHRfLT5uZXN0aW5nX2NvdW50ZXI7CistICAg IHJldHVybjsKKy0gIH0KKy0gIGNvbnRleHRfLnJlc2V0KCk7CistfQorLQorIHZvaWQgU3RhY2s6 OkFkZFN0YWNrU2VnbWVudChjb25zdCB2b2lkKiBzdGFydCwgY29uc3Qgdm9pZCogdG9wKSB7Cisg ICBEQ0hFQ0tfTEUodG9wLCBzdGFydCk7CisgICBpbmFjdGl2ZV9zdGFja3NfLnB1c2hfYmFjayh7 c3RhcnQsIHRvcH0pOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2Jhc2Uvc3RhY2suaCBiL3NyYy9o ZWFwL2Jhc2Uvc3RhY2suaAoraW5kZXggMDZlZGY0Yy4uNGIwYTE0ZSAxMDA2NDQKKy0tLSBhL3Y4 L3NyYy9oZWFwL2Jhc2Uvc3RhY2suaAorKysrIGIvdjgvc3JjL2hlYXAvYmFzZS9zdGFjay5oCitA QCAtNSwxMCArNSw5IEBACisgI2lmbmRlZiBWOF9IRUFQX0JBU0VfU1RBQ0tfSF8KKyAjZGVmaW5l IFY4X0hFQVBfQkFTRV9TVEFDS19IXworIAorLSNpbmNsdWRlIDxtZW1vcnk+CisrI2luY2x1ZGUg PHZlY3Rvcj4KKyAKKyAjaW5jbHVkZSAic3JjL2Jhc2UvbWFjcm9zLmgiCistI2luY2x1ZGUgInNy Yy9iYXNlL3BsYXRmb3JtL3BsYXRmb3JtLmgiCisgCisgbmFtZXNwYWNlIGhlYXA6OmJhc2Ugewor IAorQEAgLTMwLDk2ICsyOSw1NCBAQAorIC8vIG9mIHJlbGV2YW50IEdDIHN0YWNrIHJlZ2lvbnMg d2hlcmUgaW50ZXJlc3RpbmcgcG9pbnRlcnMgY2FuIGJlIGZvdW5kLgorIGNsYXNzIFY4X0VYUE9S VF9QUklWQVRFIFN0YWNrIGZpbmFsIHsKKyAgcHVibGljOgorLSAgLy8gVGhlIHNpemUgb2YgdGhl IGJ1ZmZlciBmb3Igc3RvcmluZyB0aGUgY2FsbGVlLXNhdmVkIHJlZ2lzdGVycyBpcyBnb2luZyB0 bworLSAgLy8gYmUgZXF1YWwgdG8ga051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnMgKiBzaXpl b2YoaW50cHRyX3QpLgorLSAgLy8gVGhpcyBpcyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMuCistICBz dGF0aWMgY29uc3RleHByIGludCBOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzKCkgeworLSAg ICByZXR1cm4gQ29udGV4dDo6a051bWJlck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnM7CistICB9Cist CistICBleHBsaWNpdCBTdGFjayhjb25zdCB2b2lkKiBzdGFja19zdGFydCA9IG51bGxwdHIpOwor KyAgZXhwbGljaXQgU3RhY2soY29uc3Qgdm9pZCogc3RhY2tfc3RhcnQgPSBudWxscHRyLAorKyAg ICAgICAgICAgICAgICAgYm9vbCB3YXNtX3N0YWNrX3N3aXRjaGluZyA9IGZhbHNlKQorKyAgICAg IDogc3RhY2tfc3RhcnRfKHN0YWNrX3N0YXJ0KSwKKysgICAgICAgIHdhc21fc3RhY2tfc3dpdGNo aW5nXyh3YXNtX3N0YWNrX3N3aXRjaGluZykge30KKyAKKyAgIC8vIFNldHMgdGhlIHN0YXJ0IG9m IHRoZSBzdGFjay4KKy0gIHZvaWQgU2V0U3RhY2tTdGFydChjb25zdCB2b2lkKiBzdGFja19zdGFy dCk7CisrICB2b2lkIFNldFN0YWNrU3RhcnQoY29uc3Qgdm9pZCogc3RhY2tfc3RhcnQsIGJvb2wg d2FzbV9zdGFja19zd2l0Y2hpbmcpIHsKKysgICAgc3RhY2tfc3RhcnRfID0gc3RhY2tfc3RhcnQ7 CisrICAgIHdhc21fc3RhY2tfc3dpdGNoaW5nXyA9IHdhc21fc3RhY2tfc3dpdGNoaW5nOworKyAg fQorIAorICAgLy8gUmV0dXJucyB0cnVlIGlmIHxzbG90fCBpcyBwYXJ0IG9mIHRoZSBzdGFjayBh bmQgZmFsc2Ugb3RoZXJ3aXNlLgorICAgYm9vbCBJc09uU3RhY2soY29uc3Qgdm9pZCogc2xvdCkg Y29uc3Q7CisgCistICAvLyBXb3JkLWFsaWduZWQgaXRlcmF0aW9uIG9mIHRoZSBzdGFjayBhbmQg dGhlIHNhdmVkIHJlZ2lzdGVycy4KKy0gIC8vIFNsb3QgdmFsdWVzIGFyZSBwYXNzZWQgb24gdG8g YHZpc2l0b3JgLgorKyAgLy8gV29yZC1hbGlnbmVkIGl0ZXJhdGlvbiBvZiB0aGUgc3RhY2suIENh bGxlZS1zYXZlZCByZWdpc3RlcnMgYXJlIHB1c2hlZCB0bworKyAgLy8gdGhlIHN0YWNrIGJlZm9y ZSBpdGVyYXRpbmcgcG9pbnRlcnMuIFNsb3QgdmFsdWVzIGFyZSBwYXNzZWQgb24gdG8KKysgIC8v IGB2aXNpdG9yYC4KKyAgIHZvaWQgSXRlcmF0ZVBvaW50ZXJzKFN0YWNrVmlzaXRvciogdmlzaXRv cikgY29uc3Q7CisgCistICAvLyBTYXZlcyBhbmQgY2xlYXJzIHRoZSBzdGFjayBjb250ZXh0LCBp LmUuLCBpdCBzZXRzIHRoZSBzdGFjayBtYXJrZXIgYW5kCistICAvLyBzYXZlcyB0aGUgcmVnaXN0 ZXJzLgorLSAgLy8gVE9ETyh2ODoxMzQ5Myk6IFRoZSBwYXJhbWV0ZXIgaXMgZm9yIHN1cHByZXNz aW5nIHRoZSBpbnZhcmlhbnQgY2hlY2sgaW4KKy0gIC8vIHRoZSBjYXNlIG9mIFdBU00gc3RhY2sg c3dpdGNoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgYXMgc29vbiBhcyBjb250ZXh0CistICAvLyBz YXZpbmcgYmVjb21lcyBjb21wYXRpYmxlIHdpdGggc3RhY2sgc3dpdGNoaW5nLgorLSAgdm9pZCBT YXZlQ29udGV4dChib29sIGNoZWNrX2ludmFyaWFudCA9IHRydWUpOworLSAgdm9pZCBDbGVhckNv bnRleHQoYm9vbCBjaGVja19pbnZhcmlhbnQgPSB0cnVlKTsKKysgIC8vIFdvcmQtYWxpZ25lZCBp dGVyYXRpb24gb2YgdGhlIHN0YWNrLCBzdGFydGluZyBhdCBgc3RhY2tfZW5kYC4gU2xvdCB2YWx1 ZXMKKysgIC8vIGFyZSBwYXNzZWQgb24gdG8gYHZpc2l0b3JgLiBUaGlzIGlzIGludGVuZGVkIHRv IGJlIHVzZWQgd2l0aCB2ZXJpZmllcnMgdGhhdAorKyAgLy8gb25seSB2aXNpdCBhIHN1YnNldCBv ZiB0aGUgc3RhY2sgb2YgSXRlcmF0ZVBvaW50ZXJzKCkuCisrICAvLworKyAgLy8gKipJZ25vcmVz OioqCisrICAvLyAtIENhbGxlZS1zYXZlZCByZWdpc3RlcnMuCisrICAvLyAtIFNhZmVTdGFjay4K KysgIHZvaWQgSXRlcmF0ZVBvaW50ZXJzVW5zYWZlKFN0YWNrVmlzaXRvciogdmlzaXRvciwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIHN0YWNrX2VuZCkgY29uc3Q7 CisgCisgICB2b2lkIEFkZFN0YWNrU2VnbWVudChjb25zdCB2b2lkKiBzdGFydCwgY29uc3Qgdm9p ZCogdG9wKTsKKyAgIHZvaWQgQ2xlYXJTdGFja1NlZ21lbnRzKCk7CisgCisgIHByaXZhdGU6Cist ICBzdHJ1Y3QgQ29udGV4dCB7CistICAgIC8vIFRoZSBmb2xsb3dpbmcgY29uc3RhbnQgaXMgYXJj aGl0ZWN0dXJlLXNwZWNpZmljLgorLSNpZiBWOF9IT1NUX0FSQ0hfSUEzMgorLSAgICAvLyBNdXN0 IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL2lhMzIvLgorLSAgICBzdGF0aWMgY29u c3RleHByIGludCBrTnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycyA9IDM7CistI2VsaWYgVjhf SE9TVF9BUkNIX1g2NAorLSNpZmRlZiBfV0lONjQKKy0gICAgLy8gTXVzdCBiZSBjb25zaXN0ZW50 IHdpdGggaGVhcC9iYXNlL2FzbS94NjQvLgorLSAgICBzdGF0aWMgY29uc3RleHByIGludCBrTnVt YmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycyA9IDI4OworLSNlbHNlICAgLy8gIV9XSU42NAorLSAg ICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFwL2Jhc2UvYXNtL3g2NC8uCistICAgIHN0 YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gNTsKKy0j ZW5kaWYgIC8vICFfV0lONjQKKy0jZWxpZiBWOF9IT1NUX0FSQ0hfQVJNNjQKKy0gICAgLy8gTXVz dCBiZSBjb25zaXN0ZW50IHdpdGggaGVhcC9iYXNlL2FzbS9hcm02NC8uCistICAgIHN0YXRpYyBj b25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gMTE7CistI2VsaWYg VjhfSE9TVF9BUkNIX0FSTQorLSAgICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBoZWFwL2Jh c2UvYXNtL2FybS8uCistICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNh dmVkUmVnaXN0ZXJzID0gODsKKy0jZWxpZiBWOF9IT1NUX0FSQ0hfUFBDNjQKKy0gICAgLy8gTXVz dCBiZSBjb25zaXN0ZW50IHdpdGggaGVhcC9iYXNlL2FzbS9wcGMvLgorLSAgICBzdGF0aWMgY29u c3RleHByIGludCBrTnVtYmVyT2ZDYWxsZWVTYXZlZFJlZ2lzdGVycyA9IDIwOworLSNlbGlmIFY4 X0hPU1RfQVJDSF9QUEMKKy0gICAgLy8gTXVzdCBiZSBjb25zaXN0ZW50IHdpdGggaGVhcC9iYXNl L2FzbS9wcGMvLgorLSAgICBzdGF0aWMgY29uc3RleHByIGludCBrTnVtYmVyT2ZDYWxsZWVTYXZl ZFJlZ2lzdGVycyA9IDIwOworLSNlbGlmIFY4X0hPU1RfQVJDSF9NSVBTNjQKKy0gICAgLy8gTXVz dCBiZSBjb25zaXN0ZW50IHdpdGggaGVhcC9iYXNlL2FzbS9taXBzNjRlbC8uCistICAgIHN0YXRp YyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gOTsKKy0jZWxp ZiBWOF9IT1NUX0FSQ0hfTE9PTkc2NAorLSAgICAvLyBNdXN0IGJlIGNvbnNpc3RlbnQgd2l0aCBo ZWFwL2Jhc2UvYXNtL2xvb25nNjQvLgorLSAgICBzdGF0aWMgY29uc3RleHByIGludCBrTnVtYmVy T2ZDYWxsZWVTYXZlZFJlZ2lzdGVycyA9IDExOworLSNlbGlmIFY4X0hPU1RfQVJDSF9TMzkwCist ICAgIC8vIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIGhlYXAvYmFzZS9hc20vczM5MC8uCistICAg IHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gMTA7 CistI2VsaWYgVjhfSE9TVF9BUkNIX1JJU0NWMzIKKy0gICAgLy8gTXVzdCBiZSBjb25zaXN0ZW50 IHdpdGggaGVhcC9iYXNlL2FzbS9yaXNjdi8uCistICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtO dW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0ZXJzID0gMTI7CistI2VsaWYgVjhfSE9TVF9BUkNIX1JJ U0NWNjQKKy0gICAgLy8gTXVzdCBiZSBjb25zaXN0ZW50IHdpdGggaGVhcC9iYXNlL2FzbS9yaXNj di8uCistICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IGtOdW1iZXJPZkNhbGxlZVNhdmVkUmVnaXN0 ZXJzID0gMTI7CistI2Vsc2UKKy0jZXJyb3IgVW5rbm93biBhcmNoaXRlY3R1cmUuCisrI2lmZGVm IERFQlVHCisrICBzdGF0aWMgYm9vbCBJc09uQ3VycmVudFN0YWNrKGNvbnN0IHZvaWQqIHB0cik7 CisgI2VuZGlmCisgCistICAgIGV4cGxpY2l0IENvbnRleHQoY29uc3Qgdm9pZCogbWFya2VyKSA6 IHN0YWNrX21hcmtlcihtYXJrZXIpIHt9CistCistICAgIGludCBuZXN0aW5nX2NvdW50ZXIgPSAw OworLSAgICBjb25zdCB2b2lkKiBzdGFja19tYXJrZXI7CistICAgIC8vIFdlIGFsd2F5cyBkb3Vi bGUtYWxpZ24gdGhpcyBidWZmZXIsIHRvIHN1cHBvcnQgZm9yIGxvbmdlciByZWdpc3RlcnMsCist ICAgIC8vIGUuZy4sIDEyOC1iaXQgcmVnaXN0ZXJzIGluIFdJTjY0LgorLSAgICBhbGlnbmFzKDIg KiBzaXplb2YoaW50cHRyX3QpKQorLSAgICAgICAgc3RkOjphcnJheTxpbnRwdHJfdCwga051bWJl ck9mQ2FsbGVlU2F2ZWRSZWdpc3RlcnM+IHJlZ2lzdGVyczsKKy0gIH07CisrICBzdGF0aWMgdm9p ZCBJdGVyYXRlUG9pbnRlcnNJbXBsKGNvbnN0IFN0YWNrKiBzdGFjaywgU3RhY2tWaXNpdG9yKiB2 aXNpdG9yLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkKiBz dGFja19lbmQpOworIAorICAgY29uc3Qgdm9pZCogc3RhY2tfc3RhcnRfOworLSAgc3RkOjp1bmlx dWVfcHRyPENvbnRleHQ+IGNvbnRleHRfOworIAorLSAgLy8gU3RhY2sgc2VnbWVudHMgdGhhdCBt YXkgYWxzbyBjb250YWluIHBvaW50ZXJzIGFuZCBzaG91bGQgYmUKKy0gIC8vIHNjYW5uZWQuCisr ICAvLyBUT0RPKHY4OjEzNDkzKTogVGhpcyBpcyBmb3Igc3VwcHJlc3NpbmcgdGhlIGNoZWNrIHRo YXQgd2UgYXJlIGluIHRoZQorKyAgLy8gY29ycmVjdCBzdGFjaywgaW4gdGhlIGNhc2Ugb2YgIFdB U00gc3RhY2sgc3dpdGNoaW5nLiBJdCB3aWxsIGJlIHJlbW92ZWQgYXMKKysgIC8vIHNvb24gYXMg Y29udGV4dCBzYXZpbmcgYmVjb21lcyBjb21wYXRpYmxlIHdpdGggc3RhY2sgc3dpdGNoaW5nLgor KyAgYm9vbCB3YXNtX3N0YWNrX3N3aXRjaGluZ187CisrCisrICAvLyBTdGFjayBzZWdtZW50cyB0 aGF0IG1heSBhbHNvIGNvbnRhaW4gcG9pbnRlcnMgYW5kIHNob3VsZCBiZSBzY2FubmVkLgorICAg c3RydWN0IFN0YWNrU2VnbWVudHMgeworICAgICBjb25zdCB2b2lkKiBzdGFydDsKKyAgICAgY29u c3Qgdm9pZCogdG9wOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2NwcGdjLWpzL2NwcC1oZWFwLmNj IGIvc3JjL2hlYXAvY3BwZ2MtanMvY3BwLWhlYXAuY2MKK2luZGV4IGMyN2M2MTIuLjYzYzUyMTIg MTAwNjQ0CistLS0gYS92OC9zcmMvaGVhcC9jcHBnYy1qcy9jcHAtaGVhcC5jYworKysrIGIvdjgv c3JjL2hlYXAvY3BwZ2MtanMvY3BwLWhlYXAuY2MKK0BAIC0xNiw2ICsxNiw3IEBACisgI2luY2x1 ZGUgInNyYy9iYXNlL2xvZ2dpbmcuaCIKKyAjaW5jbHVkZSAic3JjL2Jhc2UvbWFjcm9zLmgiCisg I2luY2x1ZGUgInNyYy9iYXNlL29wdGlvbmFsLmgiCisrI2luY2x1ZGUgInNyYy9iYXNlL3BsYXRm b3JtL3BsYXRmb3JtLmgiCisgI2luY2x1ZGUgInNyYy9iYXNlL3BsYXRmb3JtL3RpbWUuaCIKKyAj aW5jbHVkZSAic3JjL2V4ZWN1dGlvbi9pc29sYXRlLWlubC5oIgorICNpbmNsdWRlICJzcmMvZmxh Z3MvZmxhZ3MuaCIKK0BAIC04MzksNyArODQwLDcgQEAKKyAgIGNvbnN0IHNpemVfdCBieXRlc19h bGxvY2F0ZWRfaW5fcHJlZmluYWxpemVycyA9IEV4ZWN1dGVQcmVGaW5hbGl6ZXJzKCk7CisgI2lm IENQUEdDX1ZFUklGWV9IRUFQCisgICBVbmlmaWVkSGVhcE1hcmtpbmdWZXJpZmllciB2ZXJpZmll cigqdGhpcywgKmNvbGxlY3Rpb25fdHlwZV8pOworLSAgdmVyaWZpZXIuUnVuKHN0YWNrX3N0YXRl X29mX3ByZXZfZ2MoKSwKKysgIHZlcmlmaWVyLlJ1bihzdGFja19zdGF0ZV9vZl9wcmV2X2djKCks IHN0YWNrX2VuZF9vZl9jdXJyZW50X2djKCksCisgICAgICAgICAgICAgICAgc3RhdHNfY29sbGVj dG9yKCktPm1hcmtlZF9ieXRlc19vbl9jdXJyZW50X2N5Y2xlKCkgKworICAgICAgICAgICAgICAg ICAgICBieXRlc19hbGxvY2F0ZWRfaW5fcHJlZmluYWxpemVycyk7CisgI2VuZGlmICAvLyBDUFBH Q19WRVJJRllfSEVBUAorQEAgLTk0Miw3ICs5NDMsNyBAQAorICAgLy8gRmluaXNoIHN3ZWVwaW5n IGluIGNhc2UgaXQgaXMgc3RpbGwgcnVubmluZy4KKyAgIHN3ZWVwZXIoKS5GaW5pc2hJZlJ1bm5p bmcoKTsKKyAKKy0gIFNhdmVTdGFja0NvbnRleHRTY29wZSBzdGFja19jb250ZXh0X3Njb3BlKHN0 YWNrKCkpOworKyAgU2V0U3RhY2tFbmRPZkN1cnJlbnRHQyh2ODo6YmFzZTo6U3RhY2s6OkdldEN1 cnJlbnRTdGFja1Bvc2l0aW9uKCkpOworIAorICAgaWYgKGlzb2xhdGVfKSB7CisgICAgIHJlaW50 ZXJwcmV0X2Nhc3Q8djg6Oklzb2xhdGUqPihpc29sYXRlXykKK2RpZmYgLS1naXQgYS9zcmMvaGVh cC9jcHBnYy9oZWFwLWJhc2UuaCBiL3NyYy9oZWFwL2NwcGdjL2hlYXAtYmFzZS5oCitpbmRleCBh YzFkZDNmLi4yOWE4OGIyIDEwMDY0NAorLS0tIGEvdjgvc3JjL2hlYXAvY3BwZ2MvaGVhcC1iYXNl LmgKKysrKyBiL3Y4L3NyYy9oZWFwL2NwcGdjL2hlYXAtYmFzZS5oCitAQCAtMTgzLDYgKzE4Mywx MyBAQAorICAgICBzdGFja19zdGF0ZV9vZl9wcmV2X2djXyA9IHN0YWNrX3N0YXRlOworICAgfQor IAorKyAgY29uc3Qgdm9pZCogc3RhY2tfZW5kX29mX2N1cnJlbnRfZ2MoKSBjb25zdCB7CisrICAg IHJldHVybiBzdGFja19lbmRfb2ZfY3VycmVudF9nY187CisrICB9CisrICB2b2lkIFNldFN0YWNr RW5kT2ZDdXJyZW50R0MoY29uc3Qgdm9pZCogc3RhY2tfZW5kKSB7CisrICAgIHN0YWNrX2VuZF9v Zl9jdXJyZW50X2djXyA9IHN0YWNrX2VuZDsKKysgIH0KKysKKyAgIHZvaWQgU2V0SW5BdG9taWNQ YXVzZUZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBpbl9hdG9taWNfcGF1c2VfID0gdmFsdWU7IH0K KyAKKyAgIHZpcnR1YWwgdm9pZCBTdGFydEluY3JlbWVudGFsR2FyYmFnZUNvbGxlY3Rpb25Gb3JU ZXN0aW5nKCkgPSAwOworQEAgLTI4OCw2ICsyOTUsMTAgQEAKKyAgICAgICBFbWJlZGRlclN0YWNr U3RhdGU6OmtOb0hlYXBQb2ludGVyczsKKyAgIHN0ZDo6dW5pcXVlX3B0cjxFbWJlZGRlclN0YWNr U3RhdGU+IG92ZXJyaWRlX3N0YWNrX3N0YXRlXzsKKyAKKysgIC8vIE1hcmtlciB0aGF0IHNpZ25h bHMgZW5kIG9mIHRoZSBpbnRlcmVzdGluZyBzdGFjayByZWdpb24gaW4gd2hpY2ggb24taGVhcAor KyAgLy8gcG9pbnRlcnMgY2FuIGJlIGZvdW5kLgorKyAgY29uc3Qgdm9pZCogc3RhY2tfZW5kX29m X2N1cnJlbnRfZ2NfID0gbnVsbHB0cjsKKysKKyAgIGJvb2wgaW5fYXRvbWljX3BhdXNlXyA9IGZh bHNlOworIAorICAgaW50IGNyZWF0aW9uX3RocmVhZF9pZF8gPSB2ODo6YmFzZTo6T1M6OkdldEN1 cnJlbnRUaHJlYWRJZCgpOworZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2NwcGdjL2hlYXAuY2MgYi9z cmMvaGVhcC9jcHBnYy9oZWFwLmNjCitpbmRleCA3NzY5NDEyLi4yOGExMWZjIDEwMDY0NAorLS0t IGEvdjgvc3JjL2hlYXAvY3BwZ2MvaGVhcC5jYworKysrIGIvdjgvc3JjL2hlYXAvY3BwZ2MvaGVh cC5jYworQEAgLTE2NiwxMCArMTY2LDkgQEAKKyAgIERDSEVDSyghaW5fbm9fZ2Nfc2NvcGUoKSk7 CisgICBDSEVDSyghaW5fZGlzYWxsb3dfZ2Nfc2NvcGUoKSk7CisgICBjb25maWdfLnN0YWNrX3N0 YXRlID0gc3RhY2tfc3RhdGU7CisrICBTZXRTdGFja0VuZE9mQ3VycmVudEdDKHY4OjpiYXNlOjpT dGFjazo6R2V0Q3VycmVudFN0YWNrUG9zaXRpb24oKSk7CisgICBpbl9hdG9taWNfcGF1c2VfID0g dHJ1ZTsKKyAKKy0gIHN0YWNrKCktPlNhdmVDb250ZXh0KCk7CistCisgI2lmIGRlZmluZWQoQ1BQ R0NfWU9VTkdfR0VORVJBVElPTikKKyAgIC8vIENoZWNrIGlmIHRoZSB5b3VuZyBnZW5lcmF0aW9u IHdhcyBlbmFibGVkLiBXZSBtdXN0IGVuYWJsZSB5b3VuZyBnZW5lcmF0aW9uCisgICAvLyBiZWZv cmUgY2FsbGluZyB0aGUgY3VzdG9tIHdlYWsgY2FsbGJhY2tzIHRvIG1ha2Ugc3VyZSB0aGF0IHRo ZSBjYWxsYmFja3MKK0BAIC0xODgsNyArMTg3LDcgQEAKKyAgIGNvbnN0IHNpemVfdCBieXRlc19h bGxvY2F0ZWRfaW5fcHJlZmluYWxpemVycyA9IEV4ZWN1dGVQcmVGaW5hbGl6ZXJzKCk7CisgI2lm IENQUEdDX1ZFUklGWV9IRUFQCisgICBNYXJraW5nVmVyaWZpZXIgdmVyaWZpZXIoKnRoaXMsIGNv bmZpZ18uY29sbGVjdGlvbl90eXBlKTsKKy0gIHZlcmlmaWVyLlJ1bihjb25maWdfLnN0YWNrX3N0 YXRlLAorKyAgdmVyaWZpZXIuUnVuKGNvbmZpZ18uc3RhY2tfc3RhdGUsIHN0YWNrX2VuZF9vZl9j dXJyZW50X2djKCksCisgICAgICAgICAgICAgICAgc3RhdHNfY29sbGVjdG9yKCktPm1hcmtlZF9i eXRlc19vbl9jdXJyZW50X2N5Y2xlKCkgKworICAgICAgICAgICAgICAgICAgICBieXRlc19hbGxv Y2F0ZWRfaW5fcHJlZmluYWxpemVycyk7CisgI2VuZGlmICAvLyBDUFBHQ19WRVJJRllfSEVBUAor QEAgLTE5Nyw4ICsxOTYsNiBAQAorICNlbmRpZgorICAgVVNFKGJ5dGVzX2FsbG9jYXRlZF9pbl9w cmVmaW5hbGl6ZXJzKTsKKyAKKy0gIHN0YWNrKCktPkNsZWFyQ29udGV4dCgpOworLQorICNpZiBk ZWZpbmVkKENQUEdDX1lPVU5HX0dFTkVSQVRJT04pCisgICBSZXNldFJlbWVtYmVyZWRTZXQoKTsK KyAjZW5kaWYgIC8vIGRlZmluZWQoQ1BQR0NfWU9VTkdfR0VORVJBVElPTikKK2RpZmYgLS1naXQg YS9zcmMvaGVhcC9jcHBnYy9tYXJraW5nLXZlcmlmaWVyLmNjIGIvc3JjL2hlYXAvY3BwZ2MvbWFy a2luZy12ZXJpZmllci5jYworaW5kZXggNTUwODc2Ni4uYjcxMjdjMiAxMDA2NDQKKy0tLSBhL3Y4 L3NyYy9oZWFwL2NwcGdjL21hcmtpbmctdmVyaWZpZXIuY2MKKysrKyBiL3Y4L3NyYy9oZWFwL2Nw cGdjL21hcmtpbmctdmVyaWZpZXIuY2MKK0BAIC00NSw3ICs0NSw4IEBACisgICAgICAgY29sbGVj dGlvbl90eXBlXyhjb2xsZWN0aW9uX3R5cGUpIHt9CisgCisgdm9pZCBNYXJraW5nVmVyaWZpZXJC YXNlOjpSdW4oCistICAgIFN0YWNrU3RhdGUgc3RhY2tfc3RhdGUsIHY4OjpiYXNlOjpPcHRpb25h bDxzaXplX3Q+IGV4cGVjdGVkX21hcmtlZF9ieXRlcykgeworKyAgICBTdGFja1N0YXRlIHN0YWNr X3N0YXRlLCBjb25zdCB2b2lkKiBzdGFja19lbmQsCisrICAgIHY4OjpiYXNlOjpPcHRpb25hbDxz aXplX3Q+IGV4cGVjdGVkX21hcmtlZF9ieXRlcykgeworICAgVHJhdmVyc2UoaGVhcF8ucmF3X2hl YXAoKSk7CisgLy8gQXZvaWQgdmVyaWZ5aW5nIHRoZSBzdGFjayB3aGVuIHJ1bm5pbmcgd2l0aCBU U0FOIGFzIHRoZSBUU0FOIHJ1bnRpbWUgY2hhbmdlcworIC8vIHN0YWNrIGNvbnRlbnRzIHdoZW4g ZS5nLiB3b3JraW5nIHdpdGggbG9ja3MuIFNwZWNpZmljYWxseSwgdGhlIG1hcmtlciB1c2VzCitA QCAtNjIsNyArNjMsNyBAQAorICNpZiAhZGVmaW5lZChUSFJFQURfU0FOSVRJWkVSKSAmJiAhZGVm aW5lZChDUFBHQ19QT0lOVEVSX0NPTVBSRVNTSU9OKQorICAgaWYgKHN0YWNrX3N0YXRlID09IFN0 YWNrU3RhdGU6OmtNYXlDb250YWluSGVhcFBvaW50ZXJzKSB7CisgICAgIGluX2NvbnN0cnVjdGlv bl9vYmplY3RzXyA9ICZpbl9jb25zdHJ1Y3Rpb25fb2JqZWN0c19zdGFja187CistICAgIGhlYXBf LnN0YWNrKCktPkl0ZXJhdGVQb2ludGVycyh0aGlzKTsKKysgICAgaGVhcF8uc3RhY2soKS0+SXRl cmF0ZVBvaW50ZXJzVW5zYWZlKHRoaXMsIHN0YWNrX2VuZCk7CisgICAgIC8vIFRoZSBvYmplY3Rz IGZvdW5kIHRocm91Z2ggdGhlIHVuc2FmZSBpdGVyYXRpb24gYXJlIG9ubHkgYSBzdWJzZXQgb2Yg dGhlCisgICAgIC8vIHJlZ3VsYXIgaXRlcmF0aW9uIGFzIHRoZXkgbWlzcyBvYmplY3RzIGhlbGQg YWxpdmUgb25seSBmcm9tIGNhbGxlZS1zYXZlZAorICAgICAvLyByZWdpc3RlcnMgdGhhdCBhcmUg bmV2ZXIgcHVzaGVkIG9uIHRoZSBzdGFjayBhbmQgU2FmZVN0YWNrLgorZGlmZiAtLWdpdCBhL3Ny Yy9oZWFwL2NwcGdjL21hcmtpbmctdmVyaWZpZXIuaCBiL3NyYy9oZWFwL2NwcGdjL21hcmtpbmct dmVyaWZpZXIuaAoraW5kZXggNTEzMmIzYS4uNTEzNmYyOSAxMDA2NDQKKy0tLSBhL3Y4L3NyYy9o ZWFwL2NwcGdjL21hcmtpbmctdmVyaWZpZXIuaAorKysrIGIvdjgvc3JjL2hlYXAvY3BwZ2MvbWFy a2luZy12ZXJpZmllci5oCitAQCAtNDEsNyArNDEsNyBAQAorICAgTWFya2luZ1ZlcmlmaWVyQmFz ZShjb25zdCBNYXJraW5nVmVyaWZpZXJCYXNlJikgPSBkZWxldGU7CisgICBNYXJraW5nVmVyaWZp ZXJCYXNlJiBvcGVyYXRvcj0oY29uc3QgTWFya2luZ1ZlcmlmaWVyQmFzZSYpID0gZGVsZXRlOwor IAorLSAgdm9pZCBSdW4oU3RhY2tTdGF0ZSwgdjg6OmJhc2U6Ok9wdGlvbmFsPHNpemVfdD4pOwor KyAgdm9pZCBSdW4oU3RhY2tTdGF0ZSwgY29uc3Qgdm9pZCosIHY4OjpiYXNlOjpPcHRpb25hbDxz aXplX3Q+KTsKKyAKKyAgcHJvdGVjdGVkOgorICAgTWFya2luZ1ZlcmlmaWVyQmFzZShIZWFwQmFz ZSYsIENvbGxlY3Rpb25UeXBlLCBWZXJpZmljYXRpb25TdGF0ZSYsCitkaWZmIC0tZ2l0IGEvc3Jj L2hlYXAvaGVhcC5jYyBiL3NyYy9oZWFwL2hlYXAuY2MKK2luZGV4IDQ5OTRhM2EuLmY0YjdkYTAg MTAwNjQ0CistLS0gYS92OC9zcmMvaGVhcC9oZWFwLmNjCisrKysgYi92OC9zcmMvaGVhcC9oZWFw LmNjCitAQCAtMTY4NSw3ICsxNjg1LDIyIEBACisgICAgIERldlRvb2xzVHJhY2VFdmVudFNjb3Bl IGRldnRvb2xzX3RyYWNlX2V2ZW50X3Njb3BlKAorICAgICAgICAgdGhpcywgSXNZb3VuZ0dlbmVy YXRpb25Db2xsZWN0b3IoY29sbGVjdG9yKSA/ICJNaW5vckdDIiA6ICJNYWpvckdDIiwKKyAgICAg ICAgIEdhcmJhZ2VDb2xsZWN0aW9uUmVhc29uVG9TdHJpbmcoZ2NfcmVhc29uKSk7CistICAgIFNh dmVTdGFja0NvbnRleHRTY29wZSBzdGFja19jb250ZXh0X3Njb3BlKCZzdGFjaygpKTsKKysKKysg ICAgaWYgKGNwcF9oZWFwKCkpIHsKKysgICAgICBpZiAoY29sbGVjdG9yID09IEdhcmJhZ2VDb2xs ZWN0b3I6Ok1BUktfQ09NUEFDVE9SIHx8CisrICAgICAgICAgIChjb2xsZWN0b3IgPT0gR2FyYmFn ZUNvbGxlY3Rvcjo6TUlOT1JfTUFSS19DT01QQUNUT1IgJiYKKysgICAgICAgICAgIENwcEhlYXA6 OkZyb20oY3BwX2hlYXAoKSktPmdlbmVyYXRpb25hbF9nY19zdXBwb3J0ZWQoKSkpIHsKKysgICAg ICAgIC8vIENwcEhlYXAgbmVlZHMgYSBzdGFjayBtYXJrZXIgYXQgdGhlIHRvcCBvZiBhbGwgZW50 cnkgcG9pbnRzIHRvIGFsbG93CisrICAgICAgICAvLyBkZXRlcm1pbmlzdGljIHBhc3NlcyBvdmVy IHRoZSBzdGFjay4gRS5nLiwgYSB2ZXJpZmllciB0aGF0IHNob3VsZAorKyAgICAgICAgLy8gb25s eSBmaW5kIGEgc3Vic2V0IG9mIHJlZmVyZW5jZXMgb2YgdGhlIG1hcmtlci4KKysgICAgICAgIC8v CisrICAgICAgICAvLyBUT0RPKGNocm9taXVtOjEwNTYxNzApOiBDb25zaWRlciBhZGRpbmcgYSBj b21wb25lbnQgdGhhdCBrZWVwcyB0cmFjaworKyAgICAgICAgLy8gb2YgcmVsZXZhbnQgR0Mgc3Rh Y2sgcmVnaW9ucyB3aGVyZSBpbnRlcmVzdGluZyBwb2ludGVycyBjYW4gYmUgZm91bmQuCisrICAg ICAgICBzdGF0aWNfY2FzdDx2ODo6aW50ZXJuYWw6OkNwcEhlYXAqPihjcHBfaGVhcCgpKQorKyAg ICAgICAgICAgIC0+U2V0U3RhY2tFbmRPZkN1cnJlbnRHQygKKysgICAgICAgICAgICAgICAgdjg6 OmJhc2U6OlN0YWNrOjpHZXRDdXJyZW50U3RhY2tQb3NpdGlvbigpKTsKKysgICAgICB9CisrICAg IH0KKyAKKyAgICAgR2FyYmFnZUNvbGxlY3Rpb25Qcm9sb2d1ZShnY19yZWFzb24sIGdjX2NhbGxi YWNrX2ZsYWdzKTsKKyAgICAgeworQEAgLTIzOTYsOCArMjQxMSw2IEBACisgICBEQ0hFQ0soaW5j cmVtZW50YWxfbWFya2luZ18tPklzU3RvcHBlZCgpKTsKKyAgIERDSEVDS19OT1RfTlVMTChpc29s YXRlKCktPmdsb2JhbF9zYWZlcG9pbnQoKSk7CisgCistICBTYXZlU3RhY2tDb250ZXh0U2NvcGUg c3RhY2tfY29udGV4dF9zY29wZSgmc3RhY2soKSk7CistCisgICBpc29sYXRlKCktPmdsb2JhbF9z YWZlcG9pbnQoKS0+SXRlcmF0ZUNsaWVudElzb2xhdGVzKFtdKElzb2xhdGUqIGNsaWVudCkgewor ICAgICBjbGllbnQtPmhlYXAoKS0+RnJlZVNoYXJlZExpbmVhckFsbG9jYXRpb25BcmVhcygpOwor IAorQEAgLTU4MDksNyArNTgyMiwxMiBAQAorIH0KKyAKKyB2b2lkIEhlYXA6OlNldFN0YWNrU3Rh cnQodm9pZCogc3RhY2tfc3RhcnQpIHsKKy0gIHN0YWNrKCkuU2V0U3RhY2tTdGFydChzdGFja19z dGFydCk7CisrI2lmIFY4X0VOQUJMRV9XRUJBU1NFTUJMWQorKyAgc3RhY2soKS5TZXRTdGFja1N0 YXJ0KHN0YWNrX3N0YXJ0LAorKyAgICAgICAgICAgICAgICAgICAgICAgIHY4X2ZsYWdzLmV4cGVy aW1lbnRhbF93YXNtX3N0YWNrX3N3aXRjaGluZyk7CisrI2Vsc2UKKysgIHN0YWNrKCkuU2V0U3Rh Y2tTdGFydChzdGFja19zdGFydCwgZmFsc2UpOworKyNlbmRpZiAgLy8gVjhfRU5BQkxFX1dFQkFT U0VNQkxZCisgfQorIAorIDo6aGVhcDo6YmFzZTo6U3RhY2smIEhlYXA6OnN0YWNrKCkgeworQEAg LTYzOTEsOCArNjQwOSw3IEBACisgICAgICAgZmlsdGVyaW5nXyhmaWx0ZXJpbmcpLAorICAgICAg IGZpbHRlcl8obnVsbHB0ciksCisgICAgICAgc3BhY2VfaXRlcmF0b3JfKG51bGxwdHIpLAorLSAg ICAgIG9iamVjdF9pdGVyYXRvcl8obnVsbHB0ciksCistICAgICAgc3RhY2tfY29udGV4dF9zY29w ZV8oJmhlYXAtPnN0YWNrKCkpIHsKKysgICAgICBvYmplY3RfaXRlcmF0b3JfKG51bGxwdHIpIHsK KyAgIGhlYXBfLT5NYWtlSGVhcEl0ZXJhYmxlKCk7CisgICAvLyBTdGFydCB0aGUgaXRlcmF0aW9u LgorICAgc3BhY2VfaXRlcmF0b3JfID0gbmV3IFNwYWNlSXRlcmF0b3IoaGVhcF8pOworQEAgLTcz NzEsMjggKzczODgsNSBAQAorIENwcENsYXNzTmFtZXNBc0hlYXBPYmplY3ROYW1lU2NvcGU6On5D cHBDbGFzc05hbWVzQXNIZWFwT2JqZWN0TmFtZVNjb3BlKCkgPQorICAgICBkZWZhdWx0OworIAor LVNhdmVTdGFja0NvbnRleHRTY29wZTo6U2F2ZVN0YWNrQ29udGV4dFNjb3BlKDo6aGVhcDo6YmFz ZTo6U3RhY2sqIHN0YWNrKQorLSAgICA6IHN0YWNrXyhzdGFjaykgeworLSNpZiBWOF9FTkFCTEVf V0VCQVNTRU1CTFkKKy0gIC8vIFRPRE8odjg6MTM0OTMpOiBEbyBub3QgY2hlY2sgdGhlIHN0YWNr IGNvbnRleHQgaW52YXJpYW50IGlmIFdBU00gc3RhY2sKKy0gIC8vIHN3aXRjaGluZyBpcyBlbmFi bGVkLiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBhcyBzb29uIGFzIGNvbnRleHQgc2F2aW5nCistICAv LyBiZWNvbWVzIGNvbXBhdGlibGUgd2l0aCBzdGFjayBzd2l0Y2hpbmcuCistICBzdGFja18tPlNh dmVDb250ZXh0KCF2OF9mbGFncy5leHBlcmltZW50YWxfd2FzbV9zdGFja19zd2l0Y2hpbmcpOwor LSNlbHNlCistICBzdGFja18tPlNhdmVDb250ZXh0KCk7CistI2VuZGlmICAvLyBWOF9FTkFCTEVf V0VCQVNTRU1CTFkKKy19CistCistU2F2ZVN0YWNrQ29udGV4dFNjb3BlOjp+U2F2ZVN0YWNrQ29u dGV4dFNjb3BlKCkgeworLSNpZiBWOF9FTkFCTEVfV0VCQVNTRU1CTFkKKy0gIC8vIFRPRE8odjg6 MTM0OTMpOiBEbyBub3QgY2hlY2sgdGhlIHN0YWNrIGNvbnRleHQgaW52YXJpYW50IGlmIFdBU00g c3RhY2sKKy0gIC8vIHN3aXRjaGluZyBpcyBlbmFibGVkLiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBh cyBzb29uIGFzIGNvbnRleHQgc2F2aW5nCistICAvLyBiZWNvbWVzIGNvbXBhdGlibGUgd2l0aCBz dGFjayBzd2l0Y2hpbmcuCistICBzdGFja18tPkNsZWFyQ29udGV4dCghdjhfZmxhZ3MuZXhwZXJp bWVudGFsX3dhc21fc3RhY2tfc3dpdGNoaW5nKTsKKy0jZWxzZQorLSAgc3RhY2tfLT5DbGVhckNv bnRleHQoKTsKKy0jZW5kaWYgIC8vIFY4X0VOQUJMRV9XRUJBU1NFTUJMWQorLX0KKy0KKyB9ICAv LyBuYW1lc3BhY2UgaW50ZXJuYWwKKyB9ICAvLyBuYW1lc3BhY2UgdjgKK2RpZmYgLS1naXQgYS9z cmMvaGVhcC9oZWFwLmggYi9zcmMvaGVhcC9oZWFwLmgKK2luZGV4IGM5M2Q4OWMuLmJjNTY1Y2Eg MTAwNjQ0CistLS0gYS92OC9zcmMvaGVhcC9oZWFwLmgKKysrKyBiL3Y4L3NyYy9oZWFwL2hlYXAu aAorQEAgLTI2MzMsMTcgKzI2MzMsNiBAQAorICAgSGVhcCogaGVhcF87CisgfTsKKyAKKy0vLyBU T0RPKHY4OjEzNDkzKTogVGhpcyBjbGFzcyB3aWxsIG1vdmUgdG8gc3JjL2hlYXAvYmFzZS9zdGFj ay5oIG9uY2UgaXRzCistLy8gaW1wbGVtZW50YXRpb24gbm8gbG9uZ2VyIG5lZWRzIGFjY2VzcyB0 byBWOCBmbGFncy4KKy1jbGFzcyBWOF9FWFBPUlRfUFJJVkFURSBWOF9OT0RJU0NBUkQgU2F2ZVN0 YWNrQ29udGV4dFNjb3BlIHsKKy0gcHVibGljOgorLSAgZXhwbGljaXQgU2F2ZVN0YWNrQ29udGV4 dFNjb3BlKDo6aGVhcDo6YmFzZTo6U3RhY2sqIHN0YWNrKTsKKy0gIH5TYXZlU3RhY2tDb250ZXh0 U2NvcGUoKTsKKy0KKy0gcHJvdGVjdGVkOgorLSAgOjpoZWFwOjpiYXNlOjpTdGFjayogc3RhY2tf OworLX07CistCisgY2xhc3MgVjhfTk9ESVNDQVJEIERpc2FibGVDb25zZXJ2YXRpdmVTdGFja1Nj YW5uaW5nU2NvcGVGb3JUZXN0aW5nIHsKKyAgcHVibGljOgorICAgZXhwbGljaXQgaW5saW5lIERp c2FibGVDb25zZXJ2YXRpdmVTdGFja1NjYW5uaW5nU2NvcGVGb3JUZXN0aW5nKEhlYXAqIGhlYXAp CitAQCAtMjY5NSw3ICsyNjg0LDYgQEAKKyAgIFNwYWNlSXRlcmF0b3IqIHNwYWNlX2l0ZXJhdG9y XzsKKyAgIC8vIE9iamVjdCBpdGVyYXRvciBmb3IgdGhlIHNwYWNlIGN1cnJlbnRseSBiZWluZyBp dGVyYXRlZC4KKyAgIHN0ZDo6dW5pcXVlX3B0cjxPYmplY3RJdGVyYXRvcj4gb2JqZWN0X2l0ZXJh dG9yXzsKKy0gIFNhdmVTdGFja0NvbnRleHRTY29wZSBzdGFja19jb250ZXh0X3Njb3BlXzsKKyAK KyAgIERJU0FMTE9XX0dBUkJBR0VfQ09MTEVDVElPTihub19oZWFwX2FsbG9jYXRpb25fKQorIH07 CitkaWZmIC0tZ2l0IGEvc3JjL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2VuZXJhdG9yLmNjIGIv c3JjL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2VuZXJhdG9yLmNjCitpbmRleCBlMDc2NDE4Li5m MGIzMDU4IDEwMDY0NAorLS0tIGEvdjgvc3JjL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtZ2VuZXJh dG9yLmNjCisrKysgYi92OC9zcmMvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1nZW5lcmF0b3IuY2MK K0BAIC0yMDU1LDE2ICsyMDU1LDE0IEBACisgICAvLyBpdHMgY3VzdG9tIG5hbWUgdG8gYSBnZW5l cmljIGJ1aWx0aW4uCisgICBSb290c1JlZmVyZW5jZXNFeHRyYWN0b3IgZXh0cmFjdG9yKHRoaXMp OworICAgUmVhZE9ubHlSb290cyhoZWFwXykuSXRlcmF0ZSgmZXh0cmFjdG9yKTsKKy0gIHsKKy0g ICAgU2F2ZVN0YWNrQ29udGV4dFNjb3BlIHNjb3BlKCZoZWFwXy0+c3RhY2soKSk7CistICAgIGhl YXBfLT5JdGVyYXRlUm9vdHMoJmV4dHJhY3RvciwgYmFzZTo6RW51bVNldDxTa2lwUm9vdD57U2tp cFJvb3Q6OmtXZWFrfSk7CistICAgIC8vIFRPRE8odjg6MTE4MDApOiBUaGUgaGVhcCBzbmFwc2hv dCBnZW5lcmF0b3IgaW5jb3JyZWN0bHkgY29uc2lkZXJzIHRoZQorLSAgICAvLyB3ZWFrIHN0cmlu ZyB0YWJsZXMgYXMgc3Ryb25nIHJldGFpbmVycy4gTW92ZSBJdGVyYXRlV2Vha1Jvb3RzIGFmdGVy CistICAgIC8vIFNldFZpc2l0aW5nV2Vha1Jvb3RzLgorLSAgICBoZWFwXy0+SXRlcmF0ZVdlYWtS b290cygmZXh0cmFjdG9yLCB7fSk7CistICAgIGV4dHJhY3Rvci5TZXRWaXNpdGluZ1dlYWtSb290 cygpOworLSAgICBoZWFwXy0+SXRlcmF0ZVdlYWtHbG9iYWxIYW5kbGVzKCZleHRyYWN0b3IpOwor LSAgfQorKyAgaGVhcF8tPkl0ZXJhdGVSb290cygmZXh0cmFjdG9yLCBiYXNlOjpFbnVtU2V0PFNr aXBSb290PntTa2lwUm9vdDo6a1dlYWt9KTsKKysgIC8vIFRPRE8odjg6MTE4MDApOiBUaGUgaGVh cCBzbmFwc2hvdCBnZW5lcmF0b3IgaW5jb3JyZWN0bHkgY29uc2lkZXJzIHRoZSB3ZWFrCisrICAv LyBzdHJpbmcgdGFibGVzIGFzIHN0cm9uZyByZXRhaW5lcnMuIE1vdmUgSXRlcmF0ZVdlYWtSb290 cyBhZnRlcgorKyAgLy8gU2V0VmlzaXRpbmdXZWFrUm9vdHMuCisrICBoZWFwXy0+SXRlcmF0ZVdl YWtSb290cygmZXh0cmFjdG9yLCB7fSk7CisrICBleHRyYWN0b3IuU2V0VmlzaXRpbmdXZWFrUm9v dHMoKTsKKysgIGhlYXBfLT5JdGVyYXRlV2Vha0dsb2JhbEhhbmRsZXMoJmV4dHJhY3Rvcik7Cisr CisgICBib29sIGludGVycnVwdGVkID0gZmFsc2U7CisgCisgICBDb21iaW5lZEhlYXBPYmplY3RJ dGVyYXRvciBpdGVyYXRvcihoZWFwXywKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS0xMTEtdjgtc3Rk LWxheW91dDIucGF0Y2ggYi9jaHJvbWl1bS0xMTEtdjgtc3RkLWxheW91dDIucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI5ODNhZgotLS0gL2Rldi9udWxsCisrKyBi L2Nocm9taXVtLTExMS12OC1zdGQtbGF5b3V0Mi5wYXRjaApAQCAtMCwwICsxLDE5OCBAQAorRnJv bSA5MTY2NDFjMDhkZTQ0ZTBhOTE1ZGYyMjNkNTU3ODFjNmM5MTI3MTdjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTmlrb2xhb3MgUGFwYXNweXJvdSA8bmlrb2xhb3NAY2hyb21pdW0u b3JnPgorRGF0ZTogVGh1LCAxOSBKYW4gMjAyMyAxMzo0MzoxMCArMDEwMAorU3ViamVjdDogW1BB VENIXSBbaGVhcF0gTW92ZSB0aGUgU3RhY2sgb2JqZWN0IGZyb20gVGhyZWFkTG9jYWxUb3AgdG8g SXNvbGF0ZQorCitTdGFjayBpbmZvcm1hdGlvbiBpcyB0aHJlYWQtc3BlY2lmaWMgYW5kLCB1bnRp bCBub3csIGl0IHdhcyBzdG9yZWQgaW4gYQorZmllbGQgaW4gVGhyZWFkTG9jYWxUb3AuIFRoaXMg Q0wgbW92ZXMgc3RhY2sgaW5mb3JtYXRpb24gdG8gdGhlIGlzb2xhdGUKK2FuZCBtYWtlcyBzdXJl IHRvIHVwZGF0ZSB0aGUgc3RhY2sgc3RhcnQgd2hlbmV2ZXIgYSBtYWluIHRocmVhZCBlbnRlcnMK K3RoZSBpc29sYXRlLiBBdCB0aGUgc2FtZSB0aW1lLCB0aGUgU3RhY2sgb2JqZWN0IGlzIHJlZmFj dG9yZWQgYW5kCitzaW1wbGlmaWVkLgorCitBcyBhIHNpZGUgZWZmZWN0LCBhZnRlciByZW1vdmlu ZyB0aGUgU3RhY2sgb2JqZWN0LCBUaHJlYWRMb2NhbFRvcAorc2F0aXNmaWVzIHRoZSBzdGQ6OnN0 YW5kYXJkX2xheW91dCB0cmFpdDsgdGhpcyBmaXhlcyBzb21lIGlzc3Vlcworb2JzZXJ2ZWQgd2l0 aCBkaWZmZXJlbnQgQysrIGNvbXBpbGVycy4KKworQnVnOiB2ODoxMzYzMAorQnVnOiB2ODoxMzI1 NworQ2hhbmdlLUlkOiBJMDI2YTM1YWYzYmM2OTk5YTA5YjIxZjI3Nzc1NmQ0NDU0YzA4NjM0Mwor Cisoc3RyaXBwZWQgdGVzdHMpCistLS0KKworZGlmZiAtLWdpdCBhL3NyYy9leGVjdXRpb24vaXNv bGF0ZS5jYyBiL3NyYy9leGVjdXRpb24vaXNvbGF0ZS5jYworaW5kZXggMzE1MzZhMS4uMjJiODQ5 MiAxMDA2NDQKKy0tLSBhL3Y4L3NyYy9leGVjdXRpb24vaXNvbGF0ZS5jYworKysrIGIvdjgvc3Jj L2V4ZWN1dGlvbi9pc29sYXRlLmNjCitAQCAtMzA2OSwyMSArMzA2OSwyMyBAQAorIHZvaWQgSXNv bGF0ZTo6UmVjb3JkU3RhY2tTd2l0Y2hGb3JTY2FubmluZygpIHsKKyAgIE9iamVjdCBjdXJyZW50 ID0gcm9vdChSb290SW5kZXg6OmtBY3RpdmVDb250aW51YXRpb24pOworICAgRENIRUNLKCFjdXJy ZW50LklzVW5kZWZpbmVkKCkpOworLSAgdGhyZWFkX2xvY2FsX3RvcCgpLT5zdGFja18uQ2xlYXJT dGFja1NlZ21lbnRzKCk7CistICB3YXNtOjpTdGFja01lbW9yeSogc3RhY2sgPSBNYW5hZ2VkPHdh c206OlN0YWNrTWVtb3J5Pjo6Y2FzdCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBXYXNtQ29udGludWF0aW9uT2JqZWN0OjpjYXN0KGN1cnJlbnQpLnN0YWNrKCkpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLmdldCgpOworKyAgc3RhY2soKS5DbGVhclN0YWNrU2VnbWVudHMoKTsKKysg IHdhc206OlN0YWNrTWVtb3J5KiB3YXNtX3N0YWNrID0KKysgICAgICBNYW5hZ2VkPHdhc206OlN0 YWNrTWVtb3J5Pjo6Y2FzdCgKKysgICAgICAgICAgV2FzbUNvbnRpbnVhdGlvbk9iamVjdDo6Y2Fz dChjdXJyZW50KS5zdGFjaygpKQorKyAgICAgICAgICAuZ2V0KCkKKysgICAgICAgICAgLmdldCgp OworICAgY3VycmVudCA9IFdhc21Db250aW51YXRpb25PYmplY3Q6OmNhc3QoY3VycmVudCkucGFy ZW50KCk7CistICBoZWFwKCktPlNldFN0YWNrU3RhcnQocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o c3RhY2stPmJhc2UoKSkpOworKyAgaGVhcCgpLT5TZXRTdGFja1N0YXJ0KHJlaW50ZXJwcmV0X2Nh c3Q8dm9pZCo+KHdhc21fc3RhY2stPmJhc2UoKSkpOworICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBh ZGQgYWxsIGluYWN0aXZlIHN0YWNrcy4gT25seSB0aGUgb25lcyBpbiB0aGUgYWN0aXZlIGNoYWlu CisgICAvLyBtYXkgY29udGFpbiBjcHAgaGVhcCBwb2ludGVycy4KKyAgIHdoaWxlICghY3VycmVu dC5Jc1VuZGVmaW5lZCgpKSB7CisgICAgIGF1dG8gY29udCA9IFdhc21Db250aW51YXRpb25PYmpl Y3Q6OmNhc3QoY3VycmVudCk7CistICAgIGF1dG8qIHN0YWNrID0gTWFuYWdlZDx3YXNtOjpTdGFj a01lbW9yeT46OmNhc3QoY29udC5zdGFjaygpKS5nZXQoKS5nZXQoKTsKKy0gICAgdGhyZWFkX2xv Y2FsX3RvcCgpLT5zdGFja18uQWRkU3RhY2tTZWdtZW50KAorLSAgICAgICAgcmVpbnRlcnByZXRf Y2FzdDxjb25zdCB2b2lkKj4oc3RhY2stPmJhc2UoKSksCistICAgICAgICByZWludGVycHJldF9j YXN0PGNvbnN0IHZvaWQqPihzdGFjay0+am1wYnVmKCktPnNwKSk7CisrICAgIGF1dG8qIHdhc21f c3RhY2sgPQorKyAgICAgICAgTWFuYWdlZDx3YXNtOjpTdGFja01lbW9yeT46OmNhc3QoY29udC5z dGFjaygpKS5nZXQoKS5nZXQoKTsKKysgICAgc3RhY2soKS5BZGRTdGFja1NlZ21lbnQoCisrICAg ICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih3YXNtX3N0YWNrLT5iYXNlKCkpLAor KyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4od2FzbV9zdGFjay0+am1wYnVm KCktPnNwKSk7CisgICAgIGN1cnJlbnQgPSBjb250LnBhcmVudCgpOworICAgfQorIH0KK0BAIC0z MzcxLDIzICszMzczLDEzIEBACisgICBJc29sYXRlKiBzYXZlZF9pc29sYXRlID0gaXNvbGF0ZS0+ VHJ5R2V0Q3VycmVudCgpOworICAgU2V0SXNvbGF0ZVRocmVhZExvY2Fscyhpc29sYXRlLCBudWxs cHRyKTsKKyAgIGlzb2xhdGUtPnNldF90aHJlYWRfaWQoVGhyZWFkSWQ6OkN1cnJlbnQoKSk7Cist ICBpZiAoc2F2ZWRfaXNvbGF0ZSkgeworLSAgICBpc29sYXRlLT50aHJlYWRfbG9jYWxfdG9wKCkt PnN0YWNrXyA9CistICAgICAgICBzdGQ6Om1vdmUoc2F2ZWRfaXNvbGF0ZS0+dGhyZWFkX2xvY2Fs X3RvcCgpLT5zdGFja18pOworLSAgfSBlbHNlIHsKKy0gICAgaXNvbGF0ZS0+aGVhcCgpLT5TZXRT dGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOworLSAgfQorKyAgaXNvbGF0 ZS0+aGVhcCgpLT5TZXRTdGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0KCkpOwor IAorICAgYm9vbCBvd25zX3NoYXJlZF9pc29sYXRlID0gaXNvbGF0ZS0+b3duc19zaGFyZWRfaXNv bGF0ZV87CisgICBJc29sYXRlKiBtYXliZV9zaGFyZWRfaXNvbGF0ZSA9IGlzb2xhdGUtPnNoYXJl ZF9pc29sYXRlXzsKKyAKKyAgIGlzb2xhdGUtPkRlaW5pdCgpOworIAorLSAgLy8gUmVzdG9yZSB0 aGUgc2F2ZWQgaXNvbGF0ZSdzIHN0YWNrLgorLSAgaWYgKHNhdmVkX2lzb2xhdGUpCistICAgIHNh dmVkX2lzb2xhdGUtPnRocmVhZF9sb2NhbF90b3AoKS0+c3RhY2tfID0KKy0gICAgICAgIHN0ZDo6 bW92ZShpc29sYXRlLT50aHJlYWRfbG9jYWxfdG9wKCktPnN0YWNrXyk7CistCisgI2lmZGVmIERF QlVHCisgICBub25fZGlzcG9zZWRfaXNvbGF0ZXNfLS07CisgI2VuZGlmICAvLyBERUJVRworQEAg LTQ2NTIsNiArNDY0NCwxMCBAQAorIHZvaWQgSXNvbGF0ZTo6RW50ZXIoKSB7CisgICBJc29sYXRl KiBjdXJyZW50X2lzb2xhdGUgPSBudWxscHRyOworICAgUGVySXNvbGF0ZVRocmVhZERhdGEqIGN1 cnJlbnRfZGF0YSA9IEN1cnJlbnRQZXJJc29sYXRlVGhyZWFkRGF0YSgpOworKworKyAgLy8gU2V0 IHRoZSBzdGFjayBzdGFydCBmb3IgdGhlIG1haW4gdGhyZWFkIHRoYXQgZW50ZXJzIHRoZSBpc29s YXRlLgorKyAgaGVhcCgpLT5TZXRTdGFja1N0YXJ0KGJhc2U6OlN0YWNrOjpHZXRTdGFja1N0YXJ0 KCkpOworKworICAgaWYgKGN1cnJlbnRfZGF0YSAhPSBudWxscHRyKSB7CisgICAgIGN1cnJlbnRf aXNvbGF0ZSA9IGN1cnJlbnRfZGF0YS0+aXNvbGF0ZV87CisgICAgIERDSEVDS19OT1RfTlVMTChj dXJyZW50X2lzb2xhdGUpOworZGlmZiAtLWdpdCBhL3NyYy9leGVjdXRpb24vaXNvbGF0ZS5oIGIv c3JjL2V4ZWN1dGlvbi9pc29sYXRlLmgKK2luZGV4IGFmYzNkMGIuLjQxNWU0NzYgMTAwNjQ0Cist LS0gYS92OC9zcmMvZXhlY3V0aW9uL2lzb2xhdGUuaAorKysrIGIvdjgvc3JjL2V4ZWN1dGlvbi9p c29sYXRlLmgKK0BAIC0zMiw2ICszMiw3IEBACisgI2luY2x1ZGUgInNyYy9leGVjdXRpb24vc3Rh Y2stZ3VhcmQuaCIKKyAjaW5jbHVkZSAic3JjL2hhbmRsZXMvaGFuZGxlcy5oIgorICNpbmNsdWRl ICJzcmMvaGFuZGxlcy90cmFjZWQtaGFuZGxlcy5oIgorKyNpbmNsdWRlICJzcmMvaGVhcC9iYXNl L3N0YWNrLmgiCisgI2luY2x1ZGUgInNyYy9oZWFwL2ZhY3RvcnkuaCIKKyAjaW5jbHVkZSAic3Jj L2hlYXAvaGVhcC5oIgorICNpbmNsdWRlICJzcmMvaGVhcC9yZWFkLW9ubHktaGVhcC5oIgorQEAg LTIwMjgsNiArMjAyOSw4IEBACisgICBTaW11bGF0b3JEYXRhKiBzaW11bGF0b3JfZGF0YSgpIHsg cmV0dXJuIHNpbXVsYXRvcl9kYXRhXzsgfQorICNlbmRpZgorIAorKyAgOjpoZWFwOjpiYXNlOjpT dGFjayYgc3RhY2soKSB7IHJldHVybiBzdGFja187IH0KKysKKyAjaWZkZWYgVjhfRU5BQkxFX1dF QkFTU0VNQkxZCisgICB3YXNtOjpTdGFja01lbW9yeSomIHdhc21fc3RhY2tzKCkgeyByZXR1cm4g d2FzbV9zdGFja3NfOyB9CisgICAvLyBVcGRhdGUgdGhlIHRocmVhZCBsb2NhbCdzIFN0YWNrIG9i amVjdCBzbyB0aGF0IGl0IGlzIGF3YXJlIG9mIHRoZSBuZXcgc3RhY2sKK0BAIC0yNTI2LDYgKzI1 MjksOSBAQAorICAgLy8gVGhlIG11dGV4IG9ubHkgZ3VhcmRzIGFkZGluZyBwYWdlcywgdGhlIHJl dHJpZXZhbCBpcyBzaWduYWwgc2FmZS4KKyAgIGJhc2U6Ok11dGV4IGNvZGVfcGFnZXNfbXV0ZXhf OworIAorKyAgLy8gU3RhY2sgaW5mb3JtYXRpb24gZm9yIHRoZSBtYWluIHRocmVhZC4KKysgIDo6 aGVhcDo6YmFzZTo6U3RhY2sgc3RhY2tfOworKworICNpZmRlZiBWOF9FTkFCTEVfV0VCQVNTRU1C TFkKKyAgIHdhc206OlN0YWNrTWVtb3J5KiB3YXNtX3N0YWNrc187CisgI2VuZGlmCitkaWZmIC0t Z2l0IGEvc3JjL2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmNjIGIvc3JjL2V4ZWN1dGlvbi90 aHJlYWQtbG9jYWwtdG9wLmNjCitpbmRleCBjMTE1YWUwLi4wNWNjMjBiIDEwMDY0NAorLS0tIGEv djgvc3JjL2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmNjCisrKysgYi92OC9zcmMvZXhlY3V0 aW9uL3RocmVhZC1sb2NhbC10b3AuY2MKK0BAIC0zNyw3ICszNyw2IEBACisgICBjdXJyZW50X2Vt YmVkZGVyX3N0YXRlXyA9IG51bGxwdHI7CisgICBmYWlsZWRfYWNjZXNzX2NoZWNrX2NhbGxiYWNr XyA9IG51bGxwdHI7CisgICB0aHJlYWRfaW5fd2FzbV9mbGFnX2FkZHJlc3NfID0ga051bGxBZGRy ZXNzOworLSAgc3RhY2tfID0gOjpoZWFwOjpiYXNlOjpTdGFjaygpOworIH0KKyAKKyB2b2lkIFRo cmVhZExvY2FsVG9wOjpJbml0aWFsaXplKElzb2xhdGUqIGlzb2xhdGUpIHsKK0BAIC00NSwxMiAr NDQsOCBAQAorICAgaXNvbGF0ZV8gPSBpc29sYXRlOworICAgdGhyZWFkX2lkXyA9IFRocmVhZElk OjpDdXJyZW50KCk7CisgI2lmIFY4X0VOQUJMRV9XRUJBU1NFTUJMWQorLSAgc3RhY2tfLlNldFN0 YWNrU3RhcnQoYmFzZTo6U3RhY2s6OkdldFN0YWNrU3RhcnQoKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgIHY4X2ZsYWdzLmV4cGVyaW1lbnRhbF93YXNtX3N0YWNrX3N3aXRjaGluZyk7CisgICB0 aHJlYWRfaW5fd2FzbV9mbGFnX2FkZHJlc3NfID0gcmVpbnRlcnByZXRfY2FzdDxBZGRyZXNzPigK KyAgICAgICB0cmFwX2hhbmRsZXI6OkdldFRocmVhZEluV2FzbVRocmVhZExvY2FsQWRkcmVzcygp KTsKKy0jZWxzZQorLSAgc3RhY2tfLlNldFN0YWNrU3RhcnQoYmFzZTo6U3RhY2s6OkdldFN0YWNr U3RhcnQoKSwgZmFsc2UpOworICNlbmRpZiAgLy8gVjhfRU5BQkxFX1dFQkFTU0VNQkxZCisgI2lm ZGVmIFVTRV9TSU1VTEFUT1IKKyAgIHNpbXVsYXRvcl8gPSBTaW11bGF0b3I6OmN1cnJlbnQoaXNv bGF0ZSk7CitkaWZmIC0tZ2l0IGEvc3JjL2V4ZWN1dGlvbi90aHJlYWQtbG9jYWwtdG9wLmggYi9z cmMvZXhlY3V0aW9uL3RocmVhZC1sb2NhbC10b3AuaAoraW5kZXggNDNmZWMwYS4uOTg5YzgxNyAx MDA2NDQKKy0tLSBhL3Y4L3NyYy9leGVjdXRpb24vdGhyZWFkLWxvY2FsLXRvcC5oCisrKysgYi92 OC9zcmMvZXhlY3V0aW9uL3RocmVhZC1sb2NhbC10b3AuaAorQEAgLTEwLDcgKzEwLDYgQEAKKyAj aW5jbHVkZSAiaW5jbHVkZS92OC11bndpbmRlci5oIgorICNpbmNsdWRlICJzcmMvY29tbW9uL2ds b2JhbHMuaCIKKyAjaW5jbHVkZSAic3JjL2V4ZWN1dGlvbi90aHJlYWQtaWQuaCIKKy0jaW5jbHVk ZSAic3JjL2hlYXAvYmFzZS9zdGFjay5oIgorICNpbmNsdWRlICJzcmMvb2JqZWN0cy9jb250ZXh0 cy5oIgorICNpbmNsdWRlICJzcmMvdXRpbHMvdXRpbHMuaCIKKyAKK0BAIC0zMCw3ICsyOSw3IEBA CisgICAvLyBUT0RPKGFsbCk6IFRoaXMgaXMgbm90IHBhcnRpY3VsYXJseSBiZWF1dGlmdWwuIFdl IHNob3VsZCBwcm9iYWJseQorICAgLy8gcmVmYWN0b3IgdGhpcyB0byByZWFsbHkgY29uc2lzdCBv ZiBqdXN0IEFkZHJlc3NlcyBhbmQgMzItYml0CisgICAvLyBpbnRlZ2VyIGZpZWxkcy4KKy0gIHN0 YXRpYyBjb25zdGV4cHIgdWludDMyX3Qga1NpemVJbkJ5dGVzID0gMzAgKiBrU3lzdGVtUG9pbnRl clNpemU7CisrICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtTaXplSW5CeXRlcyA9IDI1ICog a1N5c3RlbVBvaW50ZXJTaXplOworIAorICAgLy8gRG9lcyBlYXJseSBsb3ctbGV2ZWwgaW5pdGlh bGl6YXRpb24gdGhhdCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlCisgICAvLyBpc29sYXRlIGJlaW5n IHByZXNlbnQuCitAQCAtMTQ3LDkgKzE0Niw2IEBACisgCisgICAvLyBBZGRyZXNzIG9mIHRoZSB0 aHJlYWQtbG9jYWwgInRocmVhZCBpbiB3YXNtIiBmbGFnLgorICAgQWRkcmVzcyB0aHJlYWRfaW5f d2FzbV9mbGFnX2FkZHJlc3NfOworLQorLSAgLy8gU3RhY2sgaW5mb3JtYXRpb24uCistICA6Omhl YXA6OmJhc2U6OlN0YWNrIHN0YWNrXzsKKyB9OworIAorIH0gIC8vIG5hbWVzcGFjZSBpbnRlcm5h bAorZGlmZiAtLWdpdCBhL3NyYy9oZWFwL2hlYXAuY2MgYi9zcmMvaGVhcC9oZWFwLmNjCitpbmRl eCBmNGI3ZGEwLi42ZWZkNDg2IDEwMDY0NAorLS0tIGEvdjgvc3JjL2hlYXAvaGVhcC5jYworKysr IGIvdjgvc3JjL2hlYXAvaGVhcC5jYworQEAgLTU4MzAsOSArNTgzMCw3IEBACisgI2VuZGlmICAv LyBWOF9FTkFCTEVfV0VCQVNTRU1CTFkKKyB9CisgCistOjpoZWFwOjpiYXNlOjpTdGFjayYgSGVh cDo6c3RhY2soKSB7CistICByZXR1cm4gaXNvbGF0ZV8tPnRocmVhZF9sb2NhbF90b3AoKS0+c3Rh Y2tfOworLX0KKys6OmhlYXA6OmJhc2U6OlN0YWNrJiBIZWFwOjpzdGFjaygpIHsgcmV0dXJuIGlz b2xhdGVfLT5zdGFjaygpOyB9CisgCisgdm9pZCBIZWFwOjpTdGFydFRlYXJEb3duKCkgeworICAg Ly8gRmluaXNoIGFueSBvbmdvaW5nIHN3ZWVwaW5nIHRvIGF2b2lkIHN0cmF5IGJhY2tncm91bmQg dGFza3Mgc3RpbGwgYWNjZXNzaW5nCgpkaWZmIC0tZ2l0IGEvY2hyb21pdW0tNjAuMC4zMTEyLjc4 LW5vLWxpYnBuZy1wcmVmaXgucGF0Y2ggYi9jaHJvbWl1bS02MC4wLjMxMTIuNzgtbm8tbGlicG5n LXByZWZpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRiZGNmOS4uMDAw MDAwMAotLS0gYS9jaHJvbWl1bS02MC4wLjMxMTIuNzgtbm8tbGlicG5nLXByZWZpeC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWRpZmYgLXVwIGNocm9taXVtLTYwLjAuMzEx Mi43OC90aGlyZF9wYXJ0eS9saWJwbmcvcG5nbGliY29uZi5oLm5vcHJlZml4IGNocm9taXVtLTYw LjAuMzExMi43OC90aGlyZF9wYXJ0eS9saWJwbmcvcG5nbGliY29uZi5oCi0tLS0gY2hyb21pdW0t NjAuMC4zMTEyLjc4L3RoaXJkX3BhcnR5L2xpYnBuZy9wbmdsaWJjb25mLmgubm9wcmVmaXgJMjAx Ny0wOC0wMSAxNDo0Mjo1NC4zMjE5ODY3NTggLTA0MDAKLSsrKyBjaHJvbWl1bS02MC4wLjMxMTIu NzgvdGhpcmRfcGFydHkvbGlicG5nL3BuZ2xpYmNvbmYuaAkyMDE3LTA4LTAxIDE0OjQzOjAxLjQ5 Mzg0NTgzMiAtMDQwMAotQEAgLTIyNSwxMyArMjI1LDQgQEAKLSAjZGVmaW5lIFBOR19VU0VSX0NI VU5LX01BTExPQ19NQVggNDAwMDAwMEwKLSAvKiBlbmQgb2YgY2hyb21pdW0gc2V0dGluZ3MgKi8K LSAKLS0vKiBjaHJvbWl1bSBwcmVmaXhpbmcgKi8KLS0vKgotLSAqIFRoaXMgaXMgbmVjZXNzYXJ5 IHRvIGJ1aWxkIG11bHRpcGxlIGNvcGllcyBvZiBsaWJwbmcuICBXZSBuZWVkIHRoaXMgd2hpbGUg cGRmaXVtIGJ1aWxkcwotLSAqIGl0cyBvd24gY29weSBvZiBsaWJwbmcuCi0tICovCi0tI2RlZmlu ZSBQTkdfUFJFRklYCi0tI2luY2x1ZGUgInBuZ3ByZWZpeC5oIgotLS8qIGVuZCBvZiBjaHJvbWl1 bSBwcmVmaXhpbmcgKi8KLS0KLSAjZW5kaWYgLyogUE5HTENPTkZfSCAqLwoKZGlmZiAtLWdpdCBh L2Nocm9taXVtLTkwLjAuNDQzMC45My1lcGVsOC1hYXJjaDY0LWxpYnBuZzE2LXN5bWJvbC1wcmVm aXhlcy5wYXRjaCBiL2Nocm9taXVtLTkwLjAuNDQzMC45My1lcGVsOC1hYXJjaDY0LWxpYnBuZzE2 LXN5bWJvbC1wcmVmaXhlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRk ZTcxZS4uMDAwMDAwMAotLS0gYS9jaHJvbWl1bS05MC4wLjQ0MzAuOTMtZXBlbDgtYWFyY2g2NC1s aWJwbmcxNi1zeW1ib2wtcHJlZml4ZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww IEBACi1kaWZmIC11cCBjaHJvbWl1bS05MC4wLjQ0MzAuOTMvdGhpcmRfcGFydHkvbGx2bS9sbGRi L3Rlc3QvQVBJL2Z1bmN0aW9uYWxpdGllcy9wb3N0bW9ydGVtL25ldGJzZC1jb3JlLzFsd3BfU0lH U0VHVi5hYXJjaDY0IGNocm9taXVtLTkwLjAuNDQzMC45My90aGlyZF9wYXJ0eS9sbHZtL2xsZGIv dGVzdC9BUEkvZnVuY3Rpb25hbGl0aWVzL3Bvc3Rtb3J0ZW0vbmV0YnNkLWNvcmUvMWx3cF9TSUdT RUdWCi1kaWZmIC11cCBjaHJvbWl1bS05MC4wLjQ0MzAuOTMvdGhpcmRfcGFydHkvbGx2bS9sbGRi L3Rlc3QvQVBJL2Z1bmN0aW9uYWxpdGllcy9wb3N0bW9ydGVtL25ldGJzZC1jb3JlLzJsd3BfcHJv Y2Vzc19TSUdTRUdWLmFhcmNoNjQgY2hyb21pdW0tOTAuMC40NDMwLjkzL3RoaXJkX3BhcnR5L2xs dm0vbGxkYi90ZXN0L0FQSS9mdW5jdGlvbmFsaXRpZXMvcG9zdG1vcnRlbS9uZXRic2QtY29yZS8y bHdwX3Byb2Nlc3NfU0lHU0VHVgotZGlmZiAtdXAgY2hyb21pdW0tOTAuMC40NDMwLjkzL3RoaXJk X3BhcnR5L2xsdm0vbGxkYi90ZXN0L0FQSS9mdW5jdGlvbmFsaXRpZXMvcG9zdG1vcnRlbS9uZXRi c2QtY29yZS8ybHdwX3QyX1NJR1NFR1YuYWFyY2g2NCBjaHJvbWl1bS05MC4wLjQ0MzAuOTMvdGhp cmRfcGFydHkvbGx2bS9sbGRiL3Rlc3QvQVBJL2Z1bmN0aW9uYWxpdGllcy9wb3N0bW9ydGVtL25l dGJzZC1jb3JlLzJsd3BfdDJfU0lHU0VHVgotZGlmZiAtdXAgY2hyb21pdW0tOTAuMC40NDMwLjkz L3RoaXJkX3BhcnR5L3BkZml1bS90aGlyZF9wYXJ0eS9saWJwbmcxNi9wbmdwcmVmaXguaC5hYXJj aDY0IGNocm9taXVtLTkwLjAuNDQzMC45My90aGlyZF9wYXJ0eS9wZGZpdW0vdGhpcmRfcGFydHkv bGlicG5nMTYvcG5ncHJlZml4LmgKLS0tLSBjaHJvbWl1bS05MC4wLjQ0MzAuOTMvdGhpcmRfcGFy dHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByZWZpeC5oLmFhcmNoNjQJMjAyMS0w NS0wMyAxNDowODo0Ny4xODQ0Mzg3ODYgLTA0MDAKLSsrKyBjaHJvbWl1bS05MC4wLjQ0MzAuOTMv dGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByZWZpeC5oCTIwMjEt MDUtMDMgMTQ6MDk6NTkuMjg5Nzk3MzE3IC0wNDAwCi1AQCAtNDU4LDQgKzQ1OCwxMSBAQAotICNk ZWZpbmUgcG5nX3psaWJfaW5mbGF0ZSBQREZJVU1fcG5nX3psaWJfaW5mbGF0ZQotICNkZWZpbmUg cG5nX3pzdHJlYW1fZXJyb3IgUERGSVVNX3BuZ196c3RyZWFtX2Vycm9yCi0gCi0rI2lmIFBOR19B Uk1fTkVPTl9JTVBMRU1FTlRBVElPTiA9PSAxCi0rI2RlZmluZSBwbmdfcmlmZmxlX3BhbGV0dGVf bmVvbiBQREZJVU1fcG5nX3JpZmZsZV9wYWxldHRlX25lb24KLSsjZGVmaW5lIHBuZ19kb19leHBh bmRfcGFsZXR0ZV9yZ2JhOF9uZW9uIFBERklVTV9wbmdfZG9fZXhwYW5kX3BhbGV0dGVfcmdiYThf bmVvbgotKyNkZWZpbmUgcG5nX2RvX2V4cGFuZF9wYWxldHRlX3JnYjhfbmVvbiBQREZJVU1fcG5n X2RvX2V4cGFuZF9wYWxldHRlX3JnYjhfbmVvbgotKyNlbmRpZgotKwotKwotICNlbmRpZiAgLy8g UE5HUFJFRklYX0gKCmRpZmYgLS1naXQgYS9jaHJvbWl1bS5zcGVjIGIvY2hyb21pdW0uc3BlYwpp bmRleCAwZGI2ZGVlLi41MGY0NzcwIDEwMDY0NAotLS0gYS9jaHJvbWl1bS5zcGVjCisrKyBiL2No cm9taXVtLnNwZWMKQEAgLTIyNyw4ICsyMjcsOCBAQAogJWVuZGlmCiAKIE5hbWU6CWNocm9taXVt JXtjaHJvbWl1bV9jaGFubmVsfQotVmVyc2lvbjogMTA5LjAuNTQxNC4xMTkKLVJlbGVhc2U6IDIl ez9kaXN0fQorVmVyc2lvbjogMTEwLjAuNTQ4MS42MQorUmVsZWFzZTogMSV7P2Rpc3R9CiBTdW1t YXJ5OiBBIFdlYktpdCAoQmxpbmspIHBvd2VyZWQgd2ViIGJyb3dzZXIgdGhhdCBHb29nbGUgZG9l c24ndCB3YW50IHlvdSB0byB1c2UKIFVybDogaHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvSG9tZQog TGljZW5zZTogQlNEIGFuZCBMR1BMdjIrIGFuZCBBU0wgMi4wIGFuZCBJSkcgYW5kIE1JVCBhbmQg R1BMdjIrIGFuZCBJU0MgYW5kIE9wZW5TU0wgYW5kIChNUEx2MS4xIG9yIEdQTHYyIG9yIExHUEx2 MikKQEAgLTI0Miw5ICsyNDIsNiBAQCBQYXRjaDE6IGNocm9taXVtLTkxLjAuNDQ3Mi43Ny1pbml0 aWFsX3ByZWZzLWV0Yy1wYXRoLnBhdGNoCiAjIFVzZSBnbiBzeXN0ZW0gZmlsZXMKIFBhdGNoMjog Y2hyb21pdW0tMTA3LjAuNTMwNC4xMTAtZ24tc3lzdGVtLnBhdGNoCiAKLSMgRG8gbm90IHByZWZp eCBsaWJwbmcgZnVuY3Rpb25zCi1QYXRjaDM6IGNocm9taXVtLTYwLjAuMzExMi43OC1uby1saWJw bmctcHJlZml4LnBhdGNoCi0KICMgRG8gbm90IG1hbmdsZSB6bGliCiBQYXRjaDU6IGNocm9taXVt LTc3LjAuMzg2NS43NS1uby16bGliLW1hbmdsZS5wYXRjaAogCkBAIC0yNzksOSArMjc2LDYgQEAg UGF0Y2g1NjogY2hyb21pdW0tOTYuMC40NjY0LjQ1LW1pc3NpbmctY3N0ZGludC1oZWFkZXIucGF0 Y2gKICMgTWlzc2luZyA8Y3N0cmluZz4gKHRoYW5rcyBjKysxNykKIFBhdGNoNTc6IGNocm9taXVt LTk2LjAuNDY2NC40NS1taXNzaW5nLWNzdHJpbmcucGF0Y2gKIAotIyBodHRwczovL2dpdGh1Yi5j b20vc3RoYTA5L2Nocm9taXVtLXBhdGNoZXMvYmxvYi9tYXN0ZXIvY2hyb21pdW0tMTAzLVZpcnR1 YWxDdXJzb3Itc3RkLWxheW91dC5wYXRjaAotUGF0Y2g1OTogY2hyb21pdW0tMTAzLVZpcnR1YWxD dXJzb3Itc3RkLWxheW91dC5wYXRjaAotCiAjIEZpeCBoZWFkZXJzIHRvIGxvb2sgZm9yIHN5c3Rl bSBwYXRocyB3aGVuIHdlIGFyZSB1c2luZyBzeXN0ZW0gbWluaXppcAogUGF0Y2g2MTogY2hyb21p dW0tMTA5LXN5c3RlbS1taW5pemlwLWhlYWRlci1maXgucGF0Y2gKIApAQCAtMzE1LDE1ICszMDks OSBAQCBQYXRjaDkwOiBjaHJvbWl1bS0xMDktZGlzYWJsZS1HbG9iYWxNZWRpYUNvbnRyb2xzQ2Fz dFN0YXJ0U3RvcC5wYXRjaAogIyBwYXRjaCBmb3IgdXNpbmcgc3lzdGVtIG9wdXMKIFBhdGNoOTE6 IGNocm9taXVtLTEwOC1zeXN0ZW0tb3B1cy5wYXRjaAogCi0jIEZpeCBleHRyYSBxdWFsaWZpY2F0 aW9uIGVycm9yCi1QYXRjaDk3OiBjaHJvbWl1bS0xMDcuMC41MzA0LjExMC1yZW1vdGluZy1leHRy YS1xdWFsaWZpY2F0aW9uLnBhdGNoCi0KICMgRnJvbSBnZW50b28KIFBhdGNoOTg6IGNocm9taXVt LTk0LjAuNDYwNi43MS1JbmtEcm9wSG9zdC1jcmFzaC5wYXRjaAogCi0jIEVuYWJsZSBXZWJSVENQ UGlwZVdpcmVDYXB0dXJlciBieSBkZWZhdWx0Ci1QYXRjaDk5OiBjaHJvbWl1bS0xMDgtZW5hYmxl LVdlYlJUQ1BpcGVXaXJlQ2FwdHVyZXItYnlEZWZhdWx0LnBhdGNoCi0KICMgbmVlZCB0byBleHBs aWNpdGx5IGluY2x1ZGUgYSBrZXJuZWwgaGVhZGVyIG9uIEVMNyB0byBzdXBwb3J0IE1GRF9DTE9F WEVDLCBGX1NFQUxfU0hSSU5LLCBGX0FERF9TRUFMUywgRl9TRUFMX1NFQUwKIFBhdGNoMTAwOiBj aHJvbWl1bS0xMDgtZWw3LWluY2x1ZGUtZmNudGwtbWVtZmQucGF0Y2gKIApAQCAtMzQ5LDEwICsz MzcsNiBAQCBQYXRjaDEwNjogY2hyb21pdW0tOTguMC40NzU4LjgwLWVwZWw3LWVyYXNlLWZpeC5w YXRjaAogIyBBZGQgYWRkaXRpb25hbCBvcGVyYXRvcj09IHRvIG1ha2UgZWw3IGhhcHB5LgogUGF0 Y2gxMDc6IGNocm9taXVtLTk5LjAuNDg0NC41MS1lbDctZXh0cmEtb3BlcmF0b3I9PS5wYXRjaAog Ci0jIEFnYWluLCBub3Qgc3VyZSBob3cgZXBlbDggaXMgdGhlIG9ubHkgb25lIHRvIGhpdCB0aGlz Li4uCi0jIEFBUkNINjQgbmVvbiBzeW1ib2xzIG5lZWQgdG8gYmUgcHJlZml4ZWQgdG9vIHRvIHBy ZXZlbnQgbXVsdGlwbGUgZGVmaW5pdGlvbiBpc3N1ZSBhdCBsaW5rdGltZQotUGF0Y2gxMTA6IGNo cm9taXVtLTkwLjAuNDQzMC45My1lcGVsOC1hYXJjaDY0LWxpYnBuZzE2LXN5bWJvbC1wcmVmaXhl cy5wYXRjaAotCiAjIHN5c3RlbSBmZm1wZWcKIFBhdGNoMTE0OiBjaHJvbWl1bS0xMDctZmZtcGVn LWR1cmF0aW9uLnBhdGNoCiBQYXRjaDExNTogY2hyb21pdW0tMTA3LXByb3ByaWV0YXJ5LWNvZGVj cy5wYXRjaApAQCAtMzcxLDExICszNTUsMjkgQEAgUGF0Y2gxMjE6IGNocm9taXVtLTEwOC1lbmFi bGUtYWxsb3dxdC5wYXRjaAogIyBnY2MxMwogUGF0Y2gxMjI6IGNocm9taXVtLTEwOS1nY2MxMy5w YXRjaAogCisjIFBhdGNoZXMgYnkgU3RlcGhhbiBIYXJ0bWFubiwgaHR0cHM6Ly9naXRodWIuY29t L3N0aGEwOS9jaHJvbWl1bS1wYXRjaGVzCitQYXRjaDEzMDogY2hyb21pdW0tMTAzLVZpcnR1YWxD dXJzb3Itc3RkLWxheW91dC5wYXRjaAorUGF0Y2gxMzE6IGNocm9taXVtLTExMC1DYW52YXNSZXNv dXJjZVByb3ZpZGVyLXByYWdtYS5wYXRjaAorUGF0Y2gxMzI6IGNocm9taXVtLTExMC1DcmVkZW50 aWFsVUlFbnRyeS1jb25zdC5wYXRjaAorUGF0Y2gxMzM6IGNocm9taXVtLTExMC1EYXJrTW9kZUxB QkNvbG9yU3BhY2UtcG93LnBhdGNoCitQYXRjaDEzNDogY2hyb21pdW0tMTEwLWRwZi1hcm02NC5w YXRjaAorUGF0Y2gxMzU6IGNocm9taXVtLTExMC1JblByb2dyZXNzRG93bmxvYWRNYW5hZ2VyLWlu Y2x1ZGUucGF0Y2gKK1BhdGNoMTM2OiBjaHJvbWl1bS0xMTAta0N1c3RvbWl6ZUNocm9tZUNvbG9y cy10eXBlLnBhdGNoCitQYXRjaDEzNzogY2hyb21pdW0tMTEwLU5hdGl2ZVRoZW1lQmFzZS1mYWJz LnBhdGNoCitQYXRjaDEzODogY2hyb21pdW0tMTEwLVByZXNlbnRlci1pbmNsdWRlLnBhdGNoCitQ YXRjaDEzOTogY2hyb21pdW0tMTEwLXJhd19wdHItY29uc3RleHByLnBhdGNoCitQYXRjaDE0MDog Y2hyb21pdW0tMTEwLVN0b3JhZ2VRdWV1ZS1kZWNsdHlwZS5wYXRjaAorUGF0Y2gxNDE6IGNocm9t aXVtLTExMC1TeW5jSXRlcmF0b3ItdGVtcGxhdGUucGF0Y2gKK1BhdGNoMTQyOiBjaHJvbWl1bS0x MTAtdXJsX2Nhbm9uX2ludGVybmFsLWNhc3QucGF0Y2gKK1BhdGNoMTQzOiBjaHJvbWl1bS0xMTAt djgtZ2NjLnBhdGNoCitQYXRjaDE0NDogY2hyb21pdW0tMTExLXY4LXN0ZC1sYXlvdXQxLnBhdGNo CitQYXRjaDE0NTogY2hyb21pdW0tMTExLXY4LXN0ZC1sYXlvdXQyLnBhdGNoCisKICMgVkFBUEkK ICMgVXBzdHJlYW0gdHVybmVkIFZBQVBJIG9uIGluIExpbnV4IGluIDg2CiBQYXRjaDIwMjogY2hy b21pdW0tMTA0LjAuNTExMi4xMDEtZW5hYmxlLWhhcmR3YXJlLWFjY2VsZXJhdGVkLW1qcGVnLnBh dGNoCiBQYXRjaDIwNTogY2hyb21pdW0tODYuMC40MjQwLjc1LWZpeC12YWFwaS1vbi1pbnRlbC5w YXRjaAotUGF0Y2gyMDY6IGNocm9taXVtLTEwOS1vem9uZS13YXlsYW5kLXZhYXBpLXN1cHBvcnQu cGF0Y2gKK1BhdGNoMjA2OiBjaHJvbWl1bS0xMTAtb3pvbmUtd2F5bGFuZC12YWFwaS1zdXBwb3J0 LnBhdGNoCiAKICMgQXBwbHkgdGhlc2UgcGF0Y2hlcyB0byB3b3JrIGFyb3VuZCBFUEVMOCBpc3N1 ZXMKIFBhdGNoMzAwOiBjaHJvbWl1bS05OS4wLjQ4NDQuNTEtcmhlbDgtZm9yY2UtZGlzYWJsZS11 c2VfZ25vbWVfa2V5cmluZy5wYXRjaApAQCAtOTQ3LDcgKzk0OSw2IEBAIHVkZXYuCiAlcGF0Y2gw IC1wMSAtYiAuc2FuZGJveHBpZQogJXBhdGNoMSAtcDEgLWIgLmV0YwogJXBhdGNoMiAtcDEgLWIg Lmduc3lzdGVtCi0lcGF0Y2gzIC1wMSAtYiAubm9saWJwbmdwcmVmaXgKICVwYXRjaDUgLXAxIC1i IC5ub3psaWJtYW5nbGUKICVwYXRjaDYgLXAxIC1iIC5ub3VucmFyCiAlcGF0Y2g3IC1wMSAtYiAu d2lkZXZpbmUtaGFjawpAQCAtOTY0LDcgKzk2NSw2IEBAIHVkZXYuCiAKICVwYXRjaDU2IC1wMSAt YiAubWlzc2luZy1jc3RkaW50CiAlcGF0Y2g1NyAtcDEgLWIgLm1pc3NpbmctY3N0cmluZwotJXBh dGNoNTkgLXAxIC1iIC5WaXJ0dWFsQ3Vyc29yLXN0ZC1sYXlvdXQKIAogJWlmICEgJXtidW5kbGVt aW5pemlwfQogJXBhdGNoNjEgLXAxIC1iIC5zeXN0ZW0tbWluaXppcApAQCAtOTg2LDkgKzk4Niw3 IEBAIHVkZXYuCiAlcGF0Y2g5MSAtcDEgLWIgLnN5c3RlbS1vcHVzCiAlZW5kaWYKIAotJXBhdGNo OTcgLXAxIC1iIC5yZW1vdGluZy1leHRyYS1xdWFsaWZpY2F0aW9uCiAlcGF0Y2g5OCAtcDEgLWIg Lklua0Ryb3BIb3N0LWNyYXNoCi0lcGF0Y2g5OSAtcDEgLWIgLmVuYWJsZS1XZWJSVENQaXBlV2ly ZUNhcHR1cmVyLWJ5RGVmYXVsdAogCiAjIEZlZG9yYSBicmFuZGVkIHVzZXIgYWdlbnQKICVpZiAw JXs/ZmVkb3JhfQpAQCAtMTAxNSwxNCArMTAxMywyNyBAQCB1ZGV2LgogJXBhdGNoMTA3IC1wMSAt YiAuZWw3LWV4dHJhLW9wZXJhdG9yLWVxdWFsZXF1YWwKICVlbmRpZgogCi0laWYgMCV7P3JoZWx9 ID09IDgKLSVwYXRjaDExMCAtcDEgLWIgLmVsOC1hYXJjaDY0LWxpYnBuZzE2LXN5bWJvbC1wcmVm aXhlcwotJWVuZGlmCi0KICVpZiAwJXs/cmhlbH0gfHwgMCV7P2ZlZG9yYX0gPT0gMzYKICVwYXRj aDEyMCAtcDEgLWIgLmxpbmstZXJyb3ItY2xhbmcxNAogJWVuZGlmCiAKKyVwYXRjaDEzMCAtcDEg LWIgLlZpcnR1YWxDdXJzb3Itc3RkLWxheW91dAorJXBhdGNoMTMxIC1wMSAtYiAuQ2FudmFzUmVz b3VyY2VQcm92aWRlci1wcmFnbWEKKyVwYXRjaDEzMiAtcDEgLWIgLkNyZWRlbnRpYWxVSUVudHJ5 LWNvbnN0CislcGF0Y2gxMzMgLXAxIC1iIC5EYXJrTW9kZUxBQkNvbG9yU3BhY2UtcG93CislcGF0 Y2gxMzQgLXAxIC1iIC5kcGYtYXJtNjQKKyVwYXRjaDEzNSAtcDEgLWIgLkluUHJvZ3Jlc3NEb3du bG9hZE1hbmFnZXItaW5jbHVkZQorJXBhdGNoMTM2IC1wMSAtYiAua0N1c3RvbWl6ZUNocm9tZUNv bG9ycy10eXBlCislcGF0Y2gxMzcgLXAxIC1iIC5OYXRpdmVUaGVtZUJhc2UtZmFicworJXBhdGNo MTM4IC1wMSAtYiAuUHJlc2VudGVyLWluY2x1ZGUKKyVwYXRjaDEzOSAtcDEgLWIgLnJhd19wdHIt Y29uc3RleHByCislcGF0Y2gxNDAgLXAxIC1iIC5TdG9yYWdlUXVldWUtZGVjbHR5cGUKKyVwYXRj aDE0MSAtcDEgLWIgLlN5bmNJdGVyYXRvci10ZW1wbGF0ZQorJXBhdGNoMTQyIC1wMSAtYiAudXJs X2Nhbm9uX2ludGVybmFsLWNhc3QKKyVwYXRjaDE0MyAtcDEgLWIgLnY4LWdjYworJXBhdGNoMTQ0 IC1wMSAtYiAudjgtc3RkLWxheW91dDEKKyVwYXRjaDE0NSAtcDEgLWIgLnY4LXN0ZC1sYXlvdXQy CisKICVpZiAle3VzZV9xdH0KICVwYXRjaDEyMSAtcDEgLWIgLmVuYWJsZS1hbGxvd3F0CiAlZW5k aWYKQEAgLTExNjgsNyArMTE3OSw3IEBAIHNlZCAtaSAnc3xtb2N8bW9jLXF0NXxnJyB1aS9xdC9t b2Nfd3JhcHBlci5weQogZXhwb3J0IExBTkc9ZW5fVVMuVVRGLTgKIAogIyBUdXJuaW5nIHRoZSBi dWlsZHN5c3RlbSB1cCB0byAxMS4KLXVsaW1pdCAtbiA0MDk2Cit1bGltaXQgLW4gMjA0OAogCiAj IHJlZHVjZSB3YXJuaW5ncwogRkxBR1M9JyAtV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIC1X bm8tdW5rbm93bi13YXJuaW5nLW9wdGlvbiAtV25vLXVudXNlZC1jb21tYW5kLWxpbmUtYXJndW1l bnQnCkBAIC0xMTg3LDYgKzExOTgsNyBAQCBDWFhGTEFHUz0iJENGTEFHUyIKICMgb3ZlcnJpZGUg c3lzdGVtIGJ1aWxkIGZsYWdzCiBDRkxBR1M9IiRGTEFHUyIKIENYWEZMQUdTPSIkRkxBR1MiCitM REZMQUdTPSIiCiAlZW5kaWYKIAogJWlmICV7Y2xhbmd9CkBAIC0xMTk4LDYgKzEyMTAsNyBAQCBl eHBvcnQgQ1hYPWcrKwogJWVuZGlmCiBleHBvcnQgQ0ZMQUdTCiBleHBvcnQgQ1hYRkxBR1MKK2V4 cG9ydCBMREZMQUdTCiBleHBvcnQgQVI9YXIKIGV4cG9ydCBOTT1ubQogCkBAIC0xNzg4LDYgKzE4 MDEsOSBAQCBnZXRlbnQgZ3JvdXAgY2hyb21lLXJlbW90ZS1kZXNrdG9wID4vZGV2L251bGwgfHwg Z3JvdXBhZGQgLXIgY2hyb21lLXJlbW90ZS1kZXNrdAogJXtjaHJvbWl1bV9wYXRofS9jaHJvbWVk cml2ZXIKIAogJWNoYW5nZWxvZworKiBTYXQgRmViIDA0IDIwMjMgVGhhbiBOZ28gPHRoYW5AcmVk aGF0LmNvbT4gLSAxMTAuMC41NDgxLjYxLTEKKy0gdXBkYXRlIHRvIDExMC4wLjU0ODEuNjEKKwog KiBUaHUgRmViIDAyIDIwMjMgSmFuIEdydWxpY2ggPGpncnVsaWNoQHJlZGhhdC5jb20+IC0gMTA5 LjAuNTQxNC4xMTktMgogLSBVc2UgZmZtcGVnIGRlY29kZXJzIGZvciBoMjY0IHN1cHBvcnQKIAoK ZGlmZiAtLWdpdCBhL2NsZWFuX2ZmbXBlZy5zaCBiL2NsZWFuX2ZmbXBlZy5zaAppbmRleCAxNmE1 OWE3Li5kMmY1MGFkIDEwMDc1NQotLS0gYS9jbGVhbl9mZm1wZWcuc2gKKysrIGIvY2xlYW5fZmZt cGVnLnNoCkBAIC0xMDUsOCArMTA1LDYgQEAgaGVhZGVyX2ZpbGVzPSIJbGliYXZjb2RlYy94ODYv aW5saW5lX2FzbS5oIFwKIAkJbGliYXZjb2RlYy9pbnRlcm5hbC5oIFwKIAkJbGliYXZjb2RlYy9r YmR3aW4uaCBcCiAJCWxpYmF2Y29kZWMvbWF0aG9wcy5oIFwKLQkJbGliYXZjb2RlYy9tZGN0MTUu YyBcCi0JCWxpYmF2Y29kZWMvbWRjdDE1LmggXAogCQlsaWJhdmNvZGVjL21lX2NtcC5oIFwKIAkJ bGliYXZjb2RlYy9tbHBfcGFyc2UuaCBcCiAJCWxpYmF2Y29kZWMvbW90aW9uX2VzdC5oIFwKQEAg LTIzNSwxNSArMjMzLDEyIEBAIG1hbnVhbF9maWxlcz0iCWxpYmF2Y29kZWMvYWFyY2g2NC9mZnRf bmVvbi5TIFwKIAkJbGliYXZjb2RlYy9hYXJjaDY0L3ZwOGRzcF9uZW9uLlMgXAogCQlsaWJhdmNv ZGVjL3g4Ni9ocGVsZHNwLmFzbSBcCiAJCWxpYmF2Y29kZWMveDg2L2hwZWxkc3Bfcm5kX3RlbXBs YXRlLmMgXAotCQlsaWJhdmNvZGVjL3g4Ni9tZGN0MTUuYXNtIFwKLQkJbGliYXZjb2RlYy94ODYv bWRjdDE1X2luaXQuYyBcCiAJCWxpYmF2Y29kZWMveDg2L3JuZF90ZW1wbGF0ZS5jIFwKIAkJbGli YXZjb2RlYy94ODYvdmlkZW9kc3AuYXNtIFwKIAkJbGliYXZjb2RlYy94ODYvdmlkZW9kc3BfaW5p dC5jIFwKIAkJbGliYXZjb2RlYy94ODYvdm9yYmlzZHNwX2luaXQuYyBcCiAJCWxpYmF2Y29kZWMv eDg2L3ZwM2RzcC5hc20gXAogCQlsaWJhdmNvZGVjL3g4Ni92cDhkc3AuYXNtIFwKLQkJbGliYXZj b2RlYy9hdXRvcmVuYW1lX2xpYmF2Y29kZWNfbWRjdDE1LmMgXAogCQlsaWJhdmNvZGVjL2JpdF9k ZXB0aF90ZW1wbGF0ZS5jIFwKIAkJbGliYXZjb2RlYy9mZnRfdGVtcGxhdGUuYyBcCiAJCWxpYmF2 Y29kZWMvZmxhY2RlYy5jIFwKQEAgLTI1Myw3ICsyNDgsNiBAQCBtYW51YWxfZmlsZXM9IglsaWJh dmNvZGVjL2FhcmNoNjQvZmZ0X25lb24uUyBcCiAJCWxpYmF2Y29kZWMvaDI2NHByZWRfdGVtcGxh dGUuYyBcCiAJCWxpYmF2Y29kZWMvaHBlbF90ZW1wbGF0ZS5jIFwKIAkJbGliYXZjb2RlYy9ocGVs ZHNwLmMgXAotCQlsaWJhdmNvZGVjL21kY3QxNS5jIFwKIAkJbGliYXZjb2RlYy9tZGN0X3RlbXBs YXRlLmMgXAogCQlsaWJhdmNvZGVjL29wdGlvbnMuYyBcCiAJCWxpYmF2Y29kZWMvcGNtLmMgXAoK ZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDI4YjlkMzMuLjM4Yjg3M2YgMTAw NjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMTksNCArMTksNCBAQCBTSEE1MTIg KE5vdG9TYW5zU3ltYm9sczItUmVndWxhci50dGYpID0gMjY0NGI0MmMzZmRjY2ZlMTIzOTVmOWI2 MTU1M2FjZWQxNjlhMGYxZAogU0hBNTEyIChOb3RvU2Fuc1RpYmV0YW4tUmVndWxhci50dGYpID0g ZmI1YTQ4ZmNhZWE4MGVlYmU3ZDY5MmY2ZmNmMDBkNTlkNDc2NThhMzU4ZDBlYzhlMDQ2ZmM1NTk4 NzNmODhiZDU5NWIyZGE0NzRkMjgyNmFiZDllOTMwNWYzNzQxYzY5MDU4ZDg2N2IxZTYwNDhmMzdm ZTdkNzFiNWQzYWYzNmEKIFNIQTUxMiAobm9kZS12MTYuMTcuMC1saW51eC14NjQudGFyLnh6KSA9 IGFlZGZlZWI3MTQyMGE3ZmJjYjA3ZmJjNGM1ZDJiYTc0ZmZlNGY4OGMxNTk5ODgwOTM0NmE4NDE0 ODEzMmVjODY2ZGJhZTRlODQ4NTMxYTJhNzdjYTQxNDEzZjQ0MmUxMDQ2Zjk4MWQ0ZjE4OGJkZjY2 N2ZhZjg4MDY5YWEyOGNkCiBTSEE1MTIgKG5vZGUtdjE2LjE3LjAtbGludXgtYXJtNjQudGFyLnh6 KSA9IGFlNGFhYmMyMzg5Nzc5YzllMWI0YTE1NjIyY2FlM2JhNTBlMGMzMTNjYTNkN2ExZGM3YjIz NDRkZjA2YWRlMWYzMDNkNmE3NWI5NDFkMzdlMmEwZWYzNjhjZjA0N2M4NjJhODIyYTg5MzY4NDQ5 NGY1NTQ0NmFmZDZhYjA2MTBlCi1TSEE1MTIgKGNocm9taXVtLTEwOS4wLjU0MTQuMTE5LWNsZWFu LnRhci54eikgPSAxNDBkMTBiMDI1Mzc5NzgxYWM4Yjk0Mzg2ZWQ0NTNiZDM4MTQyMjhjNzBhMzAz MzkyYzE1MDY0OTQyMjhiZjNiNWY4MzlhNTE2NmRjYjExODJhZjBkOTQyMDM5ZGZjMWQ2NzEwYjVm NDE3YzlkNzRmMjFiMWYxODVkMmYxMDdiNworU0hBNTEyIChjaHJvbWl1bS0xMTAuMC41NDgxLjYx LWNsZWFuLnRhci54eikgPSBiYzY1NWU3MmNhOTRjNzQxZWVkZTg5ZjY2ZTc2Zjc4MjllNTliZjJl ZGMxYzNiNWMxOTI3MTMxN2EyMDYxYTlhNmIxNzZkYTkwMzU3Y2E3M2QzMjUwNDdjZDliYTI0NTQ5 ZGEyOWU3MzViOTZlY2MzMTI0NGUyYzJhZGJlNjVmZAo=