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: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10: 2.5.90 Date: Mon, 06 Jul 2026 18:05:01 GMT Message-ID: <178336110143.1.18059310224961477256.rpms-amarok-9db95044ae9b@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10 X-Git-Rev: 9db95044ae9b1ae0fa05a4e8771caed64980dec2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMApDb21taXQgOiA5ZGI5NTA0NGFlOWIxYWUwZmEwNWE0ZTg3NzFjYWVkNjQ5ODBk ZWMyCkF1dGhvciA6IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+CkRhdGUg ICA6IDIwMTItMDUtMzBUMTE6MzU6NDgtMDU6MDAKU3RhdHMgIDogKzcvLTEyMzcgaW4gNSBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvYW1hcm9rL2Mv OWRiOTUwNDRhZTliMWFlMGZhMDVhNGU4NzcxY2FlZDY0OTgwZGVjMj9icmFuY2g9ZXBlbDEwCgpM b2c6CjIuNS45MAoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRl eCBmZGJhMDAzLi5jZjIwMDNkIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25v cmUKQEAgLTEsMiArMSwyIEBACi0vYW1hcm9rLTIuNC4zLnRhci5iejIKIC9hbWFyb2stMi41LjAu dGFyLmJ6MgorL2FtYXJvay0yLjUuOTAudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2FtYXJvay0yLjUu MC1rZGU0OF9jb250ZXh0X3ZpZXcucGF0Y2ggYi9hbWFyb2stMi41LjAta2RlNDhfY29udGV4dF92 aWV3LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzEwNDkxLi4wMDAwMDAw Ci0tLSBhL2FtYXJvay0yLjUuMC1rZGU0OF9jb250ZXh0X3ZpZXcucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw1OSArMCwwIEBACi1kaWZmIC11cCBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQvdG9v bGJhci9BcHBsZXRUb29sYmFyLmNwcC5rZGU0OC0xIGFtYXJvay0yLjUuMC9zcmMvY29udGV4dC90 b29sYmFyL0FwcGxldFRvb2xiYXIuY3BwCi0tLS0gYW1hcm9rLTIuNS4wL3NyYy9jb250ZXh0L3Rv b2xiYXIvQXBwbGV0VG9vbGJhci5jcHAua2RlNDgtMQkyMDExLTEyLTE1IDAxOjM2OjQ4LjAwMDAw MDAwMCAtMDYwMAotKysrIGFtYXJvay0yLjUuMC9zcmMvY29udGV4dC90b29sYmFyL0FwcGxldFRv b2xiYXIuY3BwCTIwMTItMDEtMjcgMDg6MDc6NDAuMTI1OTE2MTUxIC0wNjAwCi1AQCAtNjcsNiAr NjcsMTkgQEAgQ29udGV4dDo6QXBwbGV0VG9vbGJhcjo6fkFwcGxldFRvb2xiYXIoKQotIH0KLSAK LSB2b2lkCi0rCi0rQ29udGV4dDo6QXBwbGV0VG9vbGJhcjo6c2V0Q29udGFpbm1lbnQoIENvbnRh aW5tZW50ICogY29udGFpbm1lbnQgKQotK3sKLSsgICAgbV9jb250ID0gY29udGFpbm1lbnQ7Ci0r fQotKwotK0NvbnRleHQ6OkNvbnRhaW5tZW50ICoKLStDb250ZXh0OjpBcHBsZXRUb29sYmFyOjpj b250YWlubWVudCgpIGNvbnN0Ci0rewotKyAgICByZXR1cm4gbV9jb250OwotK30KLSsKLSt2b2lk Ci0gQ29udGV4dDo6QXBwbGV0VG9vbGJhcjo6cmVzaXplRXZlbnQoIFFHcmFwaGljc1NjZW5lUmVz aXplRXZlbnQgKiBldmVudCApCi0gewotICAgICBkZWJ1ZygpIDw8ICJzZXR0aW5nIGxheW91dCB0 byIgPDwgUVJlY3RGKCBRUG9pbnRGKCAwLCAwICksIGV2ZW50LT5uZXdTaXplKCkgKTsKLWRpZmYg LXVwIGFtYXJvay0yLjUuMC9zcmMvY29udGV4dC90b29sYmFyL0FwcGxldFRvb2xiYXIuaC5rZGU0 OC0xIGFtYXJvay0yLjUuMC9zcmMvY29udGV4dC90b29sYmFyL0FwcGxldFRvb2xiYXIuaAotLS0t IGFtYXJvay0yLjUuMC9zcmMvY29udGV4dC90b29sYmFyL0FwcGxldFRvb2xiYXIuaC5rZGU0OC0x CTIwMTEtMTItMTUgMDE6MzY6NDguMDAwMDAwMDAwIC0wNjAwCi0rKysgYW1hcm9rLTIuNS4wL3Ny Yy9jb250ZXh0L3Rvb2xiYXIvQXBwbGV0VG9vbGJhci5oCTIwMTItMDEtMjcgMDg6MDc6NDAuMTIz OTE2MTgwIC0wNjAwCi1AQCAtNTUsNiArNTUsOSBAQCBjbGFzcyBBcHBsZXRUb29sYmFyIDogcHVi bGljIFFHcmFwaGljc1dpCi0gICAgICAgICAKLSAgICAgICAgIHZvaWQgYXBwbGV0UmVtb3ZlZCgg UGxhc21hOjpBcHBsZXQqIGFwcGxldCApOwotIAotKyAgICAgICAgdm9pZCBzZXRDb250YWlubWVu dCggQ29udGFpbm1lbnQgKiBjb250YWlubWVudCApOwotKyAgICAgICAgQ29udGFpbm1lbnQqIGNv bnRhaW5tZW50KCkgY29uc3Q7Ci0rCi0gICAgIHNpZ25hbHM6Ci0gICAgICAgICB2b2lkIHNob3dB cHBsZXQoIFBsYXNtYTo6QXBwbGV0KiApOwotICAgICAgICAgdm9pZCBhcHBsZXRBZGRlZFRvVG9v bGJhciggUGxhc21hOjpBcHBsZXQqIGFwcGxldCwgaW50IGxvYyApOwotZGlmZiAtdXAgYW1hcm9r LTIuNS4wL3NyYy9jb250ZXh0L1Rvb2xiYXJWaWV3LmNwcC5rZGU0OC0xIGFtYXJvay0yLjUuMC9z cmMvY29udGV4dC9Ub29sYmFyVmlldy5jcHAKLS0tLSBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQv VG9vbGJhclZpZXcuY3BwLmtkZTQ4LTEJMjAxMS0xMi0xNSAwMTozNjo0OC4wMDAwMDAwMDAgLTA2 MDAKLSsrKyBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQvVG9vbGJhclZpZXcuY3BwCTIwMTItMDEt MjcgMDg6MDc6NDAuMTIyOTE2MTk0IC0wNjAwCi1AQCAtNzQsNyArNzQsOSBAQCBDb250ZXh0OjpU b29sYmFyVmlldzo6VG9vbGJhclZpZXcoIFBsYXNtCi0gICAgIHNldFZlcnRpY2FsU2Nyb2xsQmFy UG9saWN5KCBRdDo6U2Nyb2xsQmFyQWx3YXlzT2ZmICk7Ci0gCi0gICAgIC8vIG5vdyB3ZSBjcmVh dGUgdGhlIHRvb2xiYXIKLS0gICAgbV90b29sYmFyID0gbmV3IEFwcGxldFRvb2xiYXIoIGNvbnRh aW5tZW50ICk7Ci0rICAgIG1fdG9vbGJhciA9IG5ldyBBcHBsZXRUb29sYmFyKDApOwotKyAgICBz Y2VuZS0+YWRkSXRlbShtX3Rvb2xiYXIuZGF0YSgpKTsKLSsgICAgbV90b29sYmFyLmRhdGEoKS0+ c2V0Q29udGFpbm1lbnQoIHFvYmplY3RfY2FzdDxDb250ZXh0OjpDb250YWlubWVudCAqPihjb250 YWlubWVudCkgKTsKLSAgICAgbV90b29sYmFyLmRhdGEoKS0+c2V0WlZhbHVlKCBtX3Rvb2xiYXIu ZGF0YSgpLT56VmFsdWUoKSArIDEwMDAgKTsKLSAgICAgbV90b29sYmFyLmRhdGEoKS0+c2V0UG9z KCBUT09MQkFSX1hfT0ZGU0VULCAwICk7Ci0gCi1AQCAtOTYsNyArOTgsNyBAQCBDb250ZXh0OjpU b29sYmFyVmlldzo6VG9vbGJhclZpZXcoIFBsYXNtCi0gCi0gQ29udGV4dDo6VG9vbGJhclZpZXc6 On5Ub29sYmFyVmlldygpCi0gewotLQotKyAgICBkZWxldGUgbV90b29sYmFyLmRhdGEoKTsKLSB9 Ci0gCi0gdm9pZAoKZGlmZiAtLWdpdCBhL2FtYXJvay0yLjUuMC1wcm94eV9sb2FkaW5nLnBhdGNo IGIvYW1hcm9rLTIuNS4wLXByb3h5X2xvYWRpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDY3YTJmMzEuLjAwMDAwMDAKLS0tIGEvYW1hcm9rLTIuNS4wLXByb3h5X2xvYWRp bmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMTY3ICswLDAgQEAKLWRpZmYgLS1naXQgYS9z cmMvQ01ha2VMaXN0cy50eHQgYi9zcmMvQ01ha2VMaXN0cy50eHQKLWluZGV4IDZlNTkwZTguLjk1 NmIzZGEgMTAwNjQ0Ci0tLS0gYS9zcmMvQ01ha2VMaXN0cy50eHQKLSsrKyBiL3NyYy9DTWFrZUxp c3RzLnR4dAotQEAgLTI4NCw2ICsyODQsNyBAQCBzZXQobGlibWV0YWltcGxfU1JDUwotICAgICBj b3JlLWltcGwvbWV0YS9tdWx0aS9NdWx0aVRyYWNrLmNwcAotICAgICBjb3JlLWltcGwvbWV0YS9j dWUvQ3VlRmlsZVN1cHBvcnQuY3BwCi0gICAgIGNvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94 eS5jcHAKLSsgICAgY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5V29ya2VyLmNwcAotICAg ICBjb3JlLWltcGwvbWV0YS9zdHJlYW0vU3RyZWFtLmNwcAotICAgICBjb3JlLWltcGwvcGxheWxp c3RzL3R5cGVzL2ZpbGUvUGxheWxpc3RGaWxlLmNwcAotICAgICBjb3JlLWltcGwvc3RhdGlzdGlj cy9wcm92aWRlcnMvdXJsL1Blcm1hbmVudFVybFN0YXRpc3RpY3NQcm92aWRlci5jcHAKLWRpZmYg LS1naXQgYS9zcmMvY29yZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQvQ29sbGVjdGlvbk1hbmFn ZXIuY3BwIGIvc3JjL2NvcmUtaW1wbC9jb2xsZWN0aW9ucy9zdXBwb3J0L0NvbGxlY3Rpb25NYW5h Z2VyLmNwcAotaW5kZXggMzdmZTAzYS4uOTA4NWI1YSAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlLWlt cGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdlci5jcHAKLSsrKyBiL3NyYy9j b3JlLWltcGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdlci5jcHAKLUBAIC00 NjMsNiArNDYzLDcgQEAgQ29sbGVjdGlvbk1hbmFnZXI6OnRyYWNrRm9yVXJsKCBjb25zdCBLVXJs ICZ1cmwgKQotICAgICAgICAgfQotICAgICB9Ci0gCi0rICAgIC8vVE9ETzogY3JlYXRlIHNwZWNp ZmljIFRyYWNrUHJvdmlkZXJzIGZvciB0aGVzZToKLSAgICAgaWYoIHVybC5wcm90b2NvbCgpID09 IFFMYXRpbjFTdHJpbmcoImh0dHAiKSB8fCB1cmwucHJvdG9jb2woKSA9PSBRTGF0aW4xU3RyaW5n KCJtbXMiKSB8fAotICAgICAgICAgdXJsLnByb3RvY29sKCkgPT0gUUxhdGluMVN0cmluZygic21i IikgKQotICAgICAgICAgcmV0dXJuIE1ldGE6OlRyYWNrUHRyKCBuZXcgTWV0YVN0cmVhbTo6VHJh Y2soIHVybCApICk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQ cm94eS5oIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eS5oCi1pbmRleCBkODMy OWJlLi4wNjAyMjNmIDEwMDY0NAotLS0tIGEvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQ cm94eS5oCi0rKysgYi9zcmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5LmgKLUBAIC0x Nyw2ICsxNyw4IEBACi0gI2lmbmRlZiBBTUFST0tfTUVUQVBST1hZX0gKLSAjZGVmaW5lIEFNQVJP S19NRVRBUFJPWFlfSAotIAotKyNpbmNsdWRlICJNZXRhUHJveHlXb3JrZXIuaCIKLSsKLSAjaW5j bHVkZSAiY29yZS9tZXRhL01ldGEuaCIKLSAjaW5jbHVkZSAiY29yZS9jYXBhYmlsaXRpZXMvQ2Fw YWJpbGl0eS5oIgotIAotQEAgLTgyLDYgKzg0LDcgQEAgbmFtZXNwYWNlIE1ldGFQcm94eQotICAg ICAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXREaXNjTnVtYmVyKCBpbnQgZGlzY051bWJlciApOwot IAotICAgICAgICAgICAgIHZpcnR1YWwgcWludDY0IGxlbmd0aCgpIGNvbnN0OwotKyAgICAgICAg ICAgIHZpcnR1YWwgdm9pZCBzZXRMZW5ndGgoIHFpbnQ2NCBsZW5ndGggKTsKLSAgICAgICAgICAg ICB2aXJ0dWFsIGludCBmaWxlc2l6ZSgpIGNvbnN0OwotICAgICAgICAgICAgIHZpcnR1YWwgaW50 IHNhbXBsZVJhdGUoKSBjb25zdDsKLSAgICAgICAgICAgICB2aXJ0dWFsIGludCBiaXRyYXRlKCkg Y29uc3Q7Ci1AQCAtMTEwLDExICsxMTMsMTIgQEAgbmFtZXNwYWNlIE1ldGFQcm94eQotIAkJICog YWxsb3dzIHN1YmNsYXNzZXMgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRyYWNrcHJvdmlkZXIg d2hpY2ggd2lsbCBvbmx5IGNoZWNrIHRoZSBUcmFja1Byb3ZpZGVyCi0gCQkgKiBwYXNzZWQgdG8g bG9va3VwVHJhY2soVHJhY2tQcm92aWRlciopIGZvciB0aGUgcmVhbCB0cmFjay4KLSAJCSAqLwot LQkJVHJhY2soIGNvbnN0IEtVcmwgJnVybCwgYm9vbCBhd2FpdExvb2t1cE5vdGlmaWNhdGlvbik7 Ci0rICAgICAgICBUcmFjayggY29uc3QgS1VybCAmdXJsLCBib29sIGF3YWl0TG9va3VwTm90aWZp Y2F0aW9uICk7Ci0rCi0gCQkvKioKLSAJCSAqIE1ldGFQcm94eSB3aWxsIGNoZWNrIHRoZSBnaXZl biB0cmFja3Byb3ZpZGVyIGlmIGl0IGNhbiBwcm92aWRlIHRoZSB0cmFjayBmb3IgdGhlIHByb3h5 J3MgdXJsLgotIAkJICovCi0tCQl2b2lkIGxvb2t1cFRyYWNrKENvbGxlY3Rpb25zOjpUcmFja1By b3ZpZGVyICpwcm92aWRlcik7Ci0rICAgICAgICB2b2lkIGxvb2t1cFRyYWNrKCBDb2xsZWN0aW9u czo6VHJhY2tQcm92aWRlciAqcHJvdmlkZXIgKTsKLSAKLSAgICAgICAgIC8qKgotICAgICAgICAg ICogTWV0YVByb3h5IHdpbGwgdXBkYXRlIHRoZSBwcm94eSB3aXRoIHRoZSB0cmFjay4KLUBAIC0x MjMsNyArMTI3LDcgQEAgbmFtZXNwYWNlIE1ldGFQcm94eQotIAotICAgICAgICAgcHJpdmF0ZToK LSAJCQl2b2lkIGluaXQoIGNvbnN0IEtVcmwgJnVybCwgYm9vbCBhd2FpdExvb2t1cE5vdGlmaWNh dGlvbiApOwotLSAgICAgICAgICAgIFByaXZhdGUgKiBjb25zdCBkOwotKyAgICAgICAgICAgIFBy aXZhdGUgKmNvbnN0IGQ7Ci0gICAgIH07Ci0gCi0gfQotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWlt cGwvbWV0YS9wcm94eS9NZXRhUHJveHkuY3BwIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01l dGFQcm94eS5jcHAKLWluZGV4IGQxNTc3YTIuLjZhMjdmMGUgMTAwNjQ0Ci0tLS0gYS9zcmMvY29y ZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5LmNwcAotKysrIGIvc3JjL2NvcmUtaW1wbC9tZXRh L3Byb3h5L01ldGFQcm94eS5jcHAKLUBAIC0xNyw2ICsxNyw3IEBACi0gI2luY2x1ZGUgImNvcmUt aW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eS5oIgotICNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9w cm94eS9NZXRhUHJveHlfcC5oIgotICNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9wcm94eS9NZXRh UHJveHlfcC5tb2MiCi0rI2luY2x1ZGUgImNvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eVdv cmtlci5oIgotIAotICNpbmNsdWRlICJjb3JlL2NhcGFiaWxpdGllcy9FZGl0Q2FwYWJpbGl0eS5o IgotIAotQEAgLTI3LDYgKzI4LDcgQEAKLSAjaW5jbHVkZSA8UVRpbWVyPgotIAotICNpbmNsdWRl IDxLU2hhcmVkUHRyPgotKyNpbmNsdWRlIDx0aHJlYWR3ZWF2ZXIvVGhyZWFkV2VhdmVyLmg+Ci0g Ci0gdXNpbmcgbmFtZXNwYWNlIE1ldGFQcm94eTsKLSAKLUBAIC04MywxOCArODUsMjAgQEAgTWV0 YVByb3h5OjpUcmFjazo6aW5pdCggY29uc3QgS1VybCAmdXJsLCBib29sIGF3YWl0TG9va3VwTm90 aWZpY2F0aW9uICkKLSAJZC0+dXJsID0gdXJsOwotICAgICBkLT5wcm94eSA9IHRoaXM7Ci0gICAg IGQtPmNhY2hlZExlbmd0aCA9IDA7Ci0tCi0tCWlmKCAhYXdhaXRMb29rdXBOb3RpZmljYXRpb24g KQotLSAgICB7Ci0tICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KCBDb2xsZWN0aW9uTWFuYWdlcjo6 aW5zdGFuY2UoKSwgU0lHTkFMKCB0cmFja1Byb3ZpZGVyQWRkZWQoIENvbGxlY3Rpb25zOjpUcmFj a1Byb3ZpZGVyKiApICksIGQsIFNMT1QoIHNsb3ROZXdUcmFja1Byb3ZpZGVyKCBDb2xsZWN0aW9u czo6VHJhY2tQcm92aWRlciogKSApICk7Ci0tICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KCBDb2xs ZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKSwgU0lHTkFMKCBjb2xsZWN0aW9uQWRkZWQoIENvbGxl Y3Rpb25zOjpDb2xsZWN0aW9uKiApICksIGQsIFNMT1QoIHNsb3ROZXdDb2xsZWN0aW9uKCBDb2xs ZWN0aW9uczo6Q29sbGVjdGlvbiogKSApICk7Ci0tICAgIH0KLS0KLSAgICAgZC0+YWxidW1QdHIg PSBNZXRhOjpBbGJ1bVB0ciggbmV3IFByb3h5QWxidW0oIGQgKSApOwotICAgICBkLT5hcnRpc3RQ dHIgPSBNZXRhOjpBcnRpc3RQdHIoIG5ldyBQcm94eUFydGlzdCggZCApICk7Ci0gICAgIGQtPmdl bnJlUHRyID0gTWV0YTo6R2VucmVQdHIoIG5ldyBQcm94eUdlbnJlKCBkICkgKTsKLSAgICAgZC0+ Y29tcG9zZXJQdHIgPSBNZXRhOjpDb21wb3NlclB0ciggbmV3IFByb3h5Q29tcG9zZXIoIGQgKSAp OwotICAgICBkLT55ZWFyUHRyID0gTWV0YTo6WWVhclB0ciggbmV3IFByb3h5WWVhciggZCApICk7 Ci0rCi0rICAgIGlmKCAhYXdhaXRMb29rdXBOb3RpZmljYXRpb24gKQotKyAgICB7Ci0rICAgICAg ICBXb3JrZXIgKndvcmtlciA9IG5ldyBXb3JrZXIoIGQtPnVybCApOwotKyAgICAgICAgUU9iamVj dDo6Y29ubmVjdCggd29ya2VyLCBTSUdOQUwoZmluaXNoZWRMb29rdXAoIGNvbnN0IE1ldGE6OlRy YWNrUHRyICYgKSksCi0rICAgICAgICAgICAgICAgIGQsIFNMT1Qoc2xvdFVwZGF0ZVRyYWNrKE1l dGE6OlRyYWNrUHRyKSkgKTsKLSsKLSsgICAgICAgIFRocmVhZFdlYXZlcjo6V2VhdmVyOjppbnN0 YW5jZSgpLT5lbnF1ZXVlKCB3b3JrZXIgKTsKLSsgICAgfQotIH0KLSAKLSBNZXRhUHJveHk6OlRy YWNrOjp+VHJhY2soKQotQEAgLTM0NSw2ICszNDksMTIgQEAgTWV0YVByb3h5OjpUcmFjazo6bGVu Z3RoKCkgY29uc3QKLSAgICAgcmV0dXJuIGQtPmNhY2hlZExlbmd0aDsKLSB9Ci0gCi0rdm9pZAot K01ldGFQcm94eTo6VHJhY2s6OnNldExlbmd0aCggcWludDY0IGxlbmd0aCApCi0rewotKyAgICBk LT5jYWNoZWRMZW5ndGggPSBsZW5ndGg7Ci0rfQotKwotIGludAotIE1ldGFQcm94eTo6VHJhY2s6 OmZpbGVzaXplKCkgY29uc3QKLSB7Ci1AQCAtNDI0LDcgKzQzNCw3IEBAIE1ldGFQcm94eTo6VHJh Y2s6OmluQ29sbGVjdGlvbigpIGNvbnN0Ci0gICAgIHJldHVybiBmYWxzZTsKLSB9Ci0gCi0tQ29s bGVjdGlvbnM6OkNvbGxlY3Rpb24qCi0rQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24gKgotIE1ldGFQ cm94eTo6VHJhY2s6OmNvbGxlY3Rpb24oKSBjb25zdAotIHsKLSAgICAgaWYoIGQtPnJlYWxUcmFj ayApCi1AQCAtNDUwLDcgKzQ2MCwxMSBAQCBNZXRhUHJveHk6OlRyYWNrOjp1bnN1YnNjcmliZSgg TWV0YTo6T2JzZXJ2ZXIgKm9ic2VydmVyICkKLSB2b2lkCi0gTWV0YVByb3h5OjpUcmFjazo6bG9v a3VwVHJhY2soIENvbGxlY3Rpb25zOjpUcmFja1Byb3ZpZGVyICpwcm92aWRlciApCi0gewotLQlk LT5zbG90TmV3VHJhY2tQcm92aWRlciggcHJvdmlkZXIgKTsKLSsgICAgaWYoIHByb3ZpZGVyLT5w b3NzaWJseUNvbnRhaW5zVHJhY2soIGQtPnVybCApICkKLSsgICAgewotKyAgICAgICAgTWV0YTo6 VHJhY2tQdHIgdHJhY2sgPSBwcm92aWRlci0+dHJhY2tGb3JVcmwoIGQtPnVybCApOwotKyAgICAg ICAgZC0+c2xvdFVwZGF0ZVRyYWNrKCB0cmFjayApOwotKyAgICB9Ci0gfQotIAotIHZvaWQKLUBA IC00NzAsNyArNDg0LDcgQEAgTWV0YVByb3h5OjpUcmFjazo6aGFzQ2FwYWJpbGl0eUludGVyZmFj ZSggQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpUeXBlIHR5cGUgKQotICAgICByZXR1cm4gZmFs c2U7Ci0gfQotIAotLUNhcGFiaWxpdGllczo6Q2FwYWJpbGl0eSoKLStDYXBhYmlsaXRpZXM6OkNh cGFiaWxpdHkgKgotIE1ldGFQcm94eTo6VHJhY2s6OmNyZWF0ZUNhcGFiaWxpdHlJbnRlcmZhY2Uo IENhcGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6VHlwZSB0eXBlICkKLSB7Ci0gICAgIGlmKCBkLT5y ZWFsVHJhY2sgKQotQEAgLTQ4NCw3ICs0OTgsNyBAQCBNZXRhUHJveHk6OlRyYWNrOjpjcmVhdGVD YXBhYmlsaXR5SW50ZXJmYWNlKCBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OlR5cGUgdHlwZQot IGJvb2wKLSBNZXRhUHJveHk6OlRyYWNrOjpvcGVyYXRvcj09KCBjb25zdCBNZXRhOjpUcmFjayAm dHJhY2sgKSBjb25zdAotIHsKLS0gICAgY29uc3QgTWV0YVByb3h5OjpUcmFjayAqcHJveHkgPSBk eW5hbWljX2Nhc3Q8Y29uc3QgTWV0YVByb3h5OjpUcmFjayo+KCAmdHJhY2sgKTsKLSsgICAgY29u c3QgTWV0YVByb3h5OjpUcmFjayAqcHJveHkgPSBkeW5hbWljX2Nhc3Q8Y29uc3QgTWV0YVByb3h5 OjpUcmFjayAqPiggJnRyYWNrICk7Ci0gICAgIGlmKCBwcm94eSAmJiBkLT5yZWFsVHJhY2sgKQot ICAgICAgICAgcmV0dXJuIGQtPnJlYWxUcmFjayA9PSBwcm94eS0+ZC0+cmVhbFRyYWNrOwotICAg ICBlbHNlIGlmKCBwcm94eSApCi1kaWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5 L01ldGFQcm94eVdvcmtlci5oIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eVdv cmtlci5oCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNTU3ZjI5ZAotLS0t IC9kZXYvbnVsbAotKysrIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eVdvcmtl ci5oCi1AQCAtMCwwICsxLDQyIEBACi0rLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK LSsgKiBDb3B5cmlnaHQgKGMpIDIwMTIgQmFydCBDZXJuZWVscyA8YmFydC5jZXJuZWVsc0BrZGUu b3JnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgotKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgICAgICAgICoKLSsgKiB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSAgICAgICAgKgotKyAqIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyICAgICAgICAg ICAqCi0rICogdmVyc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKLSsgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgICAgICAqCi0rICog V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSAgICAgICoKLSsgKiBQQVJUSUNVTEFSIFBVUlBPU0UuIFNl ZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4gICAgICAg ICAgICAgKgotKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCi0rICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YWxvbmcgd2l0aCAgICAgICAgICoKLSsgKiB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAgICAgICAgICAgICAgICAgICAgICAgICAgKgot KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKwotKyNpZm5kZWYgTUVUQVBST1hZ X01FVEFQUk9YWVdPUktFUl9ICi0rI2RlZmluZSBNRVRBUFJPWFlfTUVUQVBST1hZV09SS0VSX0gK LSsKLSsjaW5jbHVkZSA8Y29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1RyYWNrRm9yVXJsV29ya2Vy Lmg+Ci0rI2luY2x1ZGUgPGNvcmUvY29sbGVjdGlvbnMvQ29sbGVjdGlvbi5oPgotKwotK25hbWVz cGFjZSBNZXRhUHJveHkgewotKwotK2NsYXNzIFdvcmtlciA6IHB1YmxpYyBBbWFyb2s6OlRyYWNr Rm9yVXJsV29ya2VyCi0rewotKyAgICBRX09CSkVDVAotKyAgICBwdWJsaWM6Ci0rICAgICAgICBl eHBsaWNpdCBXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCApOwotKwotKyAgICAgICAgLy9UcmFja0Zv clVybFdvcmtlciB2aXJ0dWFsIG1ldGhvZHMKLSsgICAgICAgIHZpcnR1YWwgdm9pZCBydW4oKTsK LSsKLSsgICAgcHJpdmF0ZSBzbG90czoKLSsgICAgICAgIHZvaWQgc2xvdE5ld1RyYWNrUHJvdmlk ZXIoIENvbGxlY3Rpb25zOjpUcmFja1Byb3ZpZGVyICpuZXdUcmFja1Byb3ZpZGVyICk7Ci0rICAg ICAgICB2b2lkIHNsb3ROZXdDb2xsZWN0aW9uKCBDb2xsZWN0aW9uczo6Q29sbGVjdGlvbiAqbmV3 Q29sbGVjdGlvbiApOwotKwotK307Ci0rCi0rfSAvLyBuYW1lc3BhY2UgTWV0YVByb3h5Ci0rCi0r I2VuZGlmIC8vIE1FVEFQUk9YWV9NRVRBUFJPWFlXT1JLRVJfSAotZGlmZiAtLWdpdCBhL3NyYy9j b3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuY3BwIGIvc3JjL2NvcmUtaW1wbC9t ZXRhL3Byb3h5L01ldGFQcm94eVdvcmtlci5jcHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwLi4wY2RlMjgwCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvY29yZS1pbXBsL21l dGEvcHJveHkvTWV0YVByb3h5V29ya2VyLmNwcAotQEAgLTAsMCArMSw4MiBAQAotKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCi0rICogQ29weXJpZ2h0IChjKSAyMDEyIEJhcnQgQ2Vy bmVlbHMgPGJhcnQuY2VybmVlbHNAa2RlLm9yZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICoKLSsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgotKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0 IHVuZGVyICAgICAgICAqCi0rICogdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgICAgICAgICoKLSsgKiBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciAgICAgICAgICAgKgotKyAqIHZlcnNpb24uICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqCi0rICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKLSsgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0 IFdJVEhPVVQgQU5ZICAgICAgKgotKyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgICAgICAqCi0r ICogUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuICAgICAgICAgICAgICoKLSsgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGggICAgICAgICAqCi0rICogdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgICAg ICAgICAgICAgICAgICAgICAgICAgICoKLSsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KLSsKLSsjaW5jbHVkZSAiTWV0YVByb3h5V29ya2VyLmgiCi0rCi0rI2luY2x1ZGUgImNvcmUt aW1wbC9jb2xsZWN0aW9ucy9zdXBwb3J0L0NvbGxlY3Rpb25NYW5hZ2VyLmgiCi0rCi0rbmFtZXNw YWNlIE1ldGFQcm94eSB7Ci0rCi0rV29ya2VyOjpXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCApCi0r ICAgIDogQW1hcm9rOjpUcmFja0ZvclVybFdvcmtlciggdXJsICkKLSt7Ci0rCi0rfQotKwotK3Zv aWQKLStXb3JrZXI6OnJ1bigpCi0rewotKyAgICBNZXRhOjpUcmFja1B0ciB0cmFjayA9IENvbGxl Y3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLT50cmFja0ZvclVybCggbV91cmwgKTsKLSsKLSsgICAg Ly9ubyBUcmFja1Byb3ZpZGVyIGhhcyBhIHRyYWNrIGZvciB1cyB5ZXQsIHF1ZXJ5IG5ldyBvbmVz IHRoYXQgYXJlIGFkZGVkLgotKyAgICBpZiggdHJhY2suaXNOdWxsKCkgKQotKyAgICB7Ci0rICAg ICAgICAvL1RPRE86IHNob3VsZCBvbmx5IGhhdmUgdG8gY29ubmVjdG8gdG8gVHJhY2tQcm92aWRl ciBzaWduYWxzLgotKyAgICAgICAgLy9FYWNoIENvbGxlY3Rpb24gY29udGFpbnMgYSBUcmFja1By b3ZpZGVyCi0rICAgICAgICBjb25uZWN0KCBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKSwK LSsgICAgICAgICAgICAgICAgIFNJR05BTCh0cmFja1Byb3ZpZGVyQWRkZWQoIENvbGxlY3Rpb25z OjpUcmFja1Byb3ZpZGVyICogKSksCi0rICAgICAgICAgICAgICAgICBTTE9UKHNsb3ROZXdUcmFj a1Byb3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqICkpICk7Ci0rICAgICAgICBj b25uZWN0KCBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKSwKLSsgICAgICAgICAgICAgICAg IFNJR05BTChjb2xsZWN0aW9uQWRkZWQoIENvbGxlY3Rpb25zOjpDb2xsZWN0aW9uICogKSksCi0r ICAgICAgICAgICAgICAgICBTTE9UKHNsb3ROZXdDb2xsZWN0aW9uKCBDb2xsZWN0aW9uczo6Q29s bGVjdGlvbiAqICkpICk7Ci0rCi0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgICAgZW1p dCggZmluaXNoZWRMb29rdXAoIHRyYWNrICkgKTsKLSt9Ci0rCi0rdm9pZAotK1dvcmtlcjo6c2xv dE5ld1RyYWNrUHJvdmlkZXIoIENvbGxlY3Rpb25zOjpUcmFja1Byb3ZpZGVyICpuZXdUcmFja1By b3ZpZGVyICkKLSt7Ci0rICAgIGlmKCAhbmV3VHJhY2tQcm92aWRlciApCi0rICAgIHsKLSsgICAg ICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgICBpZiggbmV3VHJhY2tQcm92aWRlci0+cG9zc2li bHlDb250YWluc1RyYWNrKCBtX3VybCApICkKLSsgICAgewotKyAgICAgICAgTWV0YTo6VHJhY2tQ dHIgdHJhY2sgPSBuZXdUcmFja1Byb3ZpZGVyLT50cmFja0ZvclVybCggbV91cmwgKTsKLSsgICAg ICAgIGVtaXQoIGZpbmlzaGVkTG9va3VwKCB0cmFjayApICk7Ci0rICAgIH0KLSt9Ci0rCi0rdm9p ZAotK1dvcmtlcjo6c2xvdE5ld0NvbGxlY3Rpb24oIENvbGxlY3Rpb25zOjpDb2xsZWN0aW9uICpu ZXdDb2xsZWN0aW9uICkKLSt7Ci0rICAgIGlmKCAhbmV3Q29sbGVjdGlvbiApCi0rICAgIHsKLSsg ICAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgICBpZiggbmV3Q29sbGVjdGlvbi0+cG9zc2li bHlDb250YWluc1RyYWNrKCBtX3VybCApICkKLSsgICAgewotKyAgICAgICAgTWV0YTo6VHJhY2tQ dHIgdHJhY2sgPSBuZXdDb2xsZWN0aW9uLT50cmFja0ZvclVybCggbV91cmwgKTsKLSsgICAgICAg IGVtaXQoIGZpbmlzaGVkTG9va3VwKCB0cmFjayApICk7Ci0rICAgIH0KLSt9Ci0rCi0rfSAvLyBu YW1lc3BhY2UgTWV0YVByb3h5Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5 L01ldGFQcm94eV9wLmggYi9zcmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5X3AuaAot aW5kZXggNzkyNjc1ZC4uMzYwYmUyMSAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlLWltcGwvbWV0YS9w cm94eS9NZXRhUHJveHlfcC5oCi0rKysgYi9zcmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVBy b3h5X3AuaAotQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgTWV0YVByb3h5OjpUcmFjazo6UHJpdmF0 ZSA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgTWV0YTo6T2JzZXJ2ZXIKLSAKLSAgICAgICAgIE1l dGE6OlRyYWNrUHRyIHJlYWxUcmFjazsKLSAKLS0gICAgICAgIFFMaXN0PE1ldGE6Ok9ic2VydmVy Kj4gb2JzZXJ2ZXJzOwotKyAgICAgICAgUUxpc3Q8TWV0YTo6T2JzZXJ2ZXIgKj4gb2JzZXJ2ZXJz OwotIAotICAgICAgICAgUVN0cmluZyBjYWNoZWRBcnRpc3Q7Ci0gICAgICAgICBRU3RyaW5nIGNh Y2hlZEFsYnVtOwotQEAgLTgyLDM0ICs4Miw2IEBAIGNsYXNzIE1ldGFQcm94eTo6VHJhY2s6OlBy aXZhdGUgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIE1ldGE6Ok9ic2VydmVyCi0gICAgICAgICB9 Ci0gCi0gICAgIHB1YmxpYyBzbG90czoKLS0gICAgICAgIHZvaWQgc2xvdE5ld1RyYWNrUHJvdmlk ZXIoIENvbGxlY3Rpb25zOjpUcmFja1Byb3ZpZGVyICpuZXdUcmFja1Byb3ZpZGVyICkKLS0gICAg ICAgIHsKLS0gICAgICAgICAgICBpZiAoICFuZXdUcmFja1Byb3ZpZGVyICkKLS0gICAgICAgICAg ICB7Ci0tICAgICAgICAgICAgICAgIHJldHVybjsKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgaWYoIG5ld1RyYWNrUHJvdmlkZXItPnBvc3NpYmx5Q29udGFpbnNUcmFjayggdXJsICkg KQotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgTWV0YTo6VHJhY2tQdHIgdHJhY2sg PSBuZXdUcmFja1Byb3ZpZGVyLT50cmFja0ZvclVybCggdXJsICk7Ci0tICAgICAgICAgICAgICAg IHNsb3RVcGRhdGVUcmFjayggdHJhY2sgKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t Ci0tICAgICAgICB2b2lkIHNsb3ROZXdDb2xsZWN0aW9uKCBDb2xsZWN0aW9uczo6Q29sbGVjdGlv biAqbmV3Q29sbGVjdGlvbiApCi0tICAgICAgICB7Ci0tICAgICAgICAgICAgaWYgKCAhbmV3Q29s bGVjdGlvbiApCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICByZXR1cm47Ci0tICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgIGlmKCBuZXdDb2xsZWN0aW9uLT5wb3NzaWJseUNv bnRhaW5zVHJhY2soIHVybCApICkKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIE1l dGE6OlRyYWNrUHRyIHRyYWNrID0gbmV3Q29sbGVjdGlvbi0+dHJhY2tGb3JVcmwoIHVybCApOwot LSAgICAgICAgICAgICAgICBzbG90VXBkYXRlVHJhY2soIHRyYWNrICk7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotICAgICAgICAgdm9pZCBzbG90VXBkYXRlVHJhY2soIE1ldGE6OlRy YWNrUHRyIHRyYWNrICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBpZiggdHJhY2sgKQotQEAg LTExNyw4ICs4OSw2IEBAIGNsYXNzIE1ldGFQcm94eTo6VHJhY2s6OlByaXZhdGUgOiBwdWJsaWMg UU9iamVjdCwgcHVibGljIE1ldGE6Ok9ic2VydmVyCi0gICAgICAgICAgICAgICAgIHN1YnNjcmli ZVRvKCB0cmFjayApOwotICAgICAgICAgICAgICAgICByZWFsVHJhY2sgPSB0cmFjazsKLSAgICAg ICAgICAgICAgICAgbm90aWZ5T2JzZXJ2ZXJzKCk7Ci0tICAgICAgICAgICAgICAgIGRpc2Nvbm5l Y3QoIENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLCBTSUdOQUwoIHRyYWNrUHJvdmlkZXJB ZGRlZCggQ29sbGVjdGlvbnM6OlRyYWNrUHJvdmlkZXIqICkgKSwgdGhpcywgU0xPVCggc2xvdE5l d1RyYWNrUHJvdmlkZXIoIENvbGxlY3Rpb25zOjpUcmFja1Byb3ZpZGVyKiApICkgKTsKLS0gICAg ICAgICAgICAgICAgZGlzY29ubmVjdCggQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCksIFNJ R05BTCggY29sbGVjdGlvbkFkZGVkKCBDb2xsZWN0aW9uczo6Q29sbGVjdGlvbiogKSApLCB0aGlz LCBTTE9UKCBzbG90TmV3Q29sbGVjdGlvbiggQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24qICkgKSAp OwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSB9OwotZGlmZiAtLWdpdCBhL3NyYy9jb3Jl LWltcGwvcGxheWxpc3RzL3R5cGVzL2ZpbGUvbTN1L00zVVBsYXlsaXN0LmNwcCBiL3NyYy9jb3Jl LWltcGwvcGxheWxpc3RzL3R5cGVzL2ZpbGUvbTN1L00zVVBsYXlsaXN0LmNwcAotaW5kZXggYzY0 Y2I5Ny4uOTg5ZThkNyAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlLWltcGwvcGxheWxpc3RzL3R5cGVz L2ZpbGUvbTN1L00zVVBsYXlsaXN0LmNwcAotKysrIGIvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMv dHlwZXMvZmlsZS9tM3UvTTNVUGxheWxpc3QuY3BwCi1AQCAtMjEsNiArMjEsNyBAQAotICNpbmNs dWRlICJjb3JlL3N1cHBvcnQvQW1hcm9rLmgiCi0gI2luY2x1ZGUgImNvcmUvc3VwcG9ydC9EZWJ1 Zy5oIgotICNpbmNsdWRlICJjb3JlLWltcGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9u TWFuYWdlci5oIgotKyNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaCIK LSAjaW5jbHVkZSAiY29yZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL1BsYXlsaXN0RmlsZVN1 cHBvcnQuaCIKLSAjaW5jbHVkZSAicGxheWxpc3RtYW5hZ2VyL2ZpbGUvUGxheWxpc3RGaWxlUHJv dmlkZXIuaCIKLSAjaW5jbHVkZSAiUGxheWxpc3RNYW5hZ2VyLmgiCi1AQCAtMTUwLDIwICsxNTEs MjUgQEAgYm9vbAotIE0zVVBsYXlsaXN0Ojpsb2FkTTN1KCBRVGV4dFN0cmVhbSAmc3RyZWFtICkK LSB7Ci0gICAgIGNvbnN0IFFTdHJpbmcgZGlyZWN0b3J5ID0gbV91cmwuZGlyZWN0b3J5KCk7Ci0t ICAgIGJvb2wgaGFzVHJhY2tzID0gZmFsc2U7Ci0gICAgIG1fdHJhY2tzTG9hZGVkID0gZmFsc2U7 Ci0gCi0rICAgIGludCBsZW5ndGggPSAtMTsKLSsgICAgUVN0cmluZyBleHRpbmZUaXRsZTsKLSAg ICAgZG8KLSAgICAgewotICAgICAgICAgUVN0cmluZyBsaW5lID0gc3RyZWFtLnJlYWRMaW5lKCk7 Ci0gICAgICAgICBpZiggbGluZS5zdGFydHNXaXRoKCAiI0VYVElORiIgKSApCi0gICAgICAgICB7 Ci0tICAgICAgICAgICAgLy9jb25zdCBRU3RyaW5nIGV4dGluZiA9IGxpbmUuc2VjdGlvbiggJzon LCAxICk7Ci0tICAgICAgICAgICAgLy9jb25zdCBpbnQgbGVuZ3RoID0gZXh0aW5mLnNlY3Rpb24o ICcsJywgMCwgMCApLnRvSW50KCk7Ci0rICAgICAgICAgICAgY29uc3QgUVN0cmluZyBleHRpbmYg PSBsaW5lLnNlY3Rpb24oICc6JywgMSApOwotKyAgICAgICAgICAgIGJvb2wgb2s7Ci0rICAgICAg ICAgICAgbGVuZ3RoID0gZXh0aW5mLnNlY3Rpb24oICcsJywgMCwgMCApLnRvSW50KCAmb2sgKTsK LSsgICAgICAgICAgICBpZiggIW9rICkKLSsgICAgICAgICAgICAgICAgbGVuZ3RoID0gLTE7Ci0r ICAgICAgICAgICAgZXh0aW5mVGl0bGUgPSBleHRpbmYuc2VjdGlvbiggJywnLCAxICk7Ci0gICAg ICAgICB9Ci0gICAgICAgICBlbHNlIGlmKCAhbGluZS5zdGFydHNXaXRoKCAnIycgKSAmJiAhbGlu ZS5pc0VtcHR5KCkgKQotICAgICAgICAgewotLSAgICAgICAgICAgIE1ldGE6OlRyYWNrUHRyIHRy YWNrUHRyOwotKyAgICAgICAgICAgIE1ldGFQcm94eTo6VHJhY2sgKnByb3h5VHJhY2s7Ci0gICAg ICAgICAgICAgbGluZSA9IGxpbmUucmVwbGFjZSggIlxcIiwgIi8iICk7Ci0gCi0gICAgICAgICAg ICAgLy8gS1VybDo6aXNSZWxhdGl2ZVVybCgpIGV4cGVjdHMgYWJzb2x1dGUgVVJMcyB0byBzdGFy dCB3aXRoIGEgcHJvdG9jb2wsIHNvIHByZXBlbmQgaXQgaWYgbWlzc2luZwotQEAgLTE4MCwyMiAr MTg2LDMwIEBAIE0zVVBsYXlsaXN0Ojpsb2FkTTN1KCBRVGV4dFN0cmVhbSAmc3RyZWFtICkKLSAg ICAgICAgICAgICAgICAga3VybC5hZGRQYXRoKCBsaW5lICk7IC8vIGFkZHMgZGlyZWN0b3J5IHNl cGFyYXRvciBpZiByZXF1aXJlZAotICAgICAgICAgICAgICAgICBrdXJsLmNsZWFuUGF0aCgpOwot IAotLSAgICAgICAgICAgICAgICB0cmFja1B0ciA9IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5j ZSgpLT50cmFja0ZvclVybCgga3VybCApOwotKyAgICAgICAgICAgICAgICB1cmwgPSBrdXJsLnVy bCgpOwotICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBlbHNlCi0rCi0rICAgICAgICAgICAg cHJveHlUcmFjayA9IG5ldyBNZXRhUHJveHk6OlRyYWNrKCBLVXJsKCB1cmwgKSApOwotKyAgICAg ICAgICAgIFFTdHJpbmcgYXJ0aXN0ID0gZXh0aW5mVGl0bGUuc2VjdGlvbiggIiAtICIsIDAsIDAg KTsKLSsgICAgICAgICAgICBRU3RyaW5nIHRpdGxlID0gZXh0aW5mVGl0bGUuc2VjdGlvbiggIiAt ICIsIDEsIDEgKTsKLSsgICAgICAgICAgICAvL2lmIHRpdGxlIGFuZCBhcnRpc3QgYXJlIHNhdmVk IHN1Y2ggYXMgaW4gTTNVUGxheWxpc3Q6OnNhdmUoKQotKyAgICAgICAgICAgIGlmKCAhdGl0bGUu aXNFbXB0eSgpICYmICFhcnRpc3QuaXNFbXB0eSgpICkKLSAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgIHRyYWNrUHRyID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnRyYWNr Rm9yVXJsKCBLVXJsKCBsaW5lICkgKTsKLSsgICAgICAgICAgICAgICAgcHJveHlUcmFjay0+c2V0 TmFtZSggdGl0bGUgKTsKLSsgICAgICAgICAgICAgICAgcHJveHlUcmFjay0+c2V0QXJ0aXN0KCBh cnRpc3QgKTsKLSAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgaWYoIHRyYWNrUHRyICkK LSsgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBtX3Ry YWNrcy5hcHBlbmQoIHRyYWNrUHRyICk7Ci0tICAgICAgICAgICAgICAgIGhhc1RyYWNrcyA9IHRy dWU7Ci0tICAgICAgICAgICAgICAgIG1fdHJhY2tzTG9hZGVkID0gdHJ1ZTsKLSsgICAgICAgICAg ICAgICAgcHJveHlUcmFjay0+c2V0TmFtZSggZXh0aW5mVGl0bGUgKTsKLSAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgcHJveHlUcmFjay0+c2V0TGVuZ3RoKCBsZW5ndGggKTsKLSsgICAgICAg ICAgICBtX3RyYWNrcyA8PCBNZXRhOjpUcmFja1B0ciggcHJveHlUcmFjayApOwotKyAgICAgICAg ICAgIG1fdHJhY2tzTG9hZGVkID0gdHJ1ZTsKLSAgICAgICAgIH0KLSAgICAgfSB3aGlsZSggIXN0 cmVhbS5hdEVuZCgpICk7Ci0tICAgIHJldHVybiBoYXNUcmFja3M7Ci0rCi0rICAgIC8vVE9ETzog cmV0dXJuIGZhbHNlIGlmIHN0cmVhbSBpcyBub3QgcmVhZGFibGUsIGVtcHR5IG9yIGhhcyBlcnJv cnMKLSsgICAgcmV0dXJuIHRydWU7Ci0gfQotIAotIGJvb2wKLWRpZmYgLS1naXQgYS9zcmMvY29y ZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL3Bscy9QTFNQbGF5bGlzdC5jcHAgYi9zcmMvY29y ZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL3Bscy9QTFNQbGF5bGlzdC5jcHAKLWluZGV4IDY3 ZWQ2OGUuLjM4NjczNGEgMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS1pbXBsL3BsYXlsaXN0cy90eXBl cy9maWxlL3Bscy9QTFNQbGF5bGlzdC5jcHAKLSsrKyBiL3NyYy9jb3JlLWltcGwvcGxheWxpc3Rz L3R5cGVzL2ZpbGUvcGxzL1BMU1BsYXlsaXN0LmNwcAotQEAgLTIxLDYgKzIxLDcgQEAKLSAjaW5j bHVkZSAiY29yZS9jYXBhYmlsaXRpZXMvRWRpdENhcGFiaWxpdHkuaCIKLSAjaW5jbHVkZSAiY29y ZS9tZXRhL01ldGEuaCIKLSAjaW5jbHVkZSAiUGxheWxpc3RNYW5hZ2VyLmgiCi0rI2luY2x1ZGUg ImNvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eS5oIgotICNpbmNsdWRlICJjb3JlLWltcGwv cGxheWxpc3RzL3R5cGVzL2ZpbGUvUGxheWxpc3RGaWxlU3VwcG9ydC5oIgotIAotICNpbmNsdWRl IDxLTWltZVR5cGU+Ci1AQCAtNzIsNyArNzMsNyBAQCBQTFNQbGF5bGlzdDo6dHJhY2tDb3VudCgp IGNvbnN0Ci0gICAgIGlmKCBtX3RyYWNrc0xvYWRlZCApCi0gICAgICAgICByZXR1cm4gbV90cmFj a3MuY291bnQoKTsKLSAKLS0gICAgLy9UT0RPOiBjb3VudCB0aGUgbnVtYmVyIG9mIGxpbmVzIHN0 YXJ0aW5nIHdpdGggIwotKyAgICAvL1RPRE86IHJlYWQgTnVtYmVyT2ZFbnRyaWVzIGZyb20gZm9v dGVyCi0gICAgIHJldHVybiAtMTsKLSB9Ci0gCi1AQCAtMTQ2LDExICsxNDcsOSBAQCBQTFNQbGF5 bGlzdDo6cmVtb3ZlVHJhY2soIGludCBwb3NpdGlvbiApCi0gfQotIAotIGJvb2wKLS1QTFNQbGF5 bGlzdDo6bG9hZFBscyggUVRleHRTdHJlYW0gJnN0cmVhbSApCi0rUExTUGxheWxpc3Q6OmxvYWRQ bHMoIFFUZXh0U3RyZWFtICZ0ZXh0U3RyZWFtICkKLSB7Ci0tICAgIERFQlVHX0JMT0NLCi0tCi0t ICAgIE1ldGE6OlRyYWNrUHRyIGN1cnJlbnRUcmFjazsKLSsgICAgTWV0YVByb3h5OjpUcmFjayAq cHJveHlUcmFjazsKLSAKLSAgICAgLy8gQ291bnRlZCBudW1iZXIgb2YgIkZpbGUjPSIgbGluZXMu Ci0gICAgIHVuc2lnbmVkIGludCBlbnRyeUNudCA9IDA7Ci1AQCAtMTcyLDI3ICsxNzEsMzIgQEAg UExTUGxheWxpc3Q6OmxvYWRQbHMoIFFUZXh0U3RyZWFtICZzdHJlYW0gKQotICAgICAqIFJlYWQg dGhlIGxpbmVzIGludG8gYSBidWZmZXI7IENsZWFudXAgdGhlIGxpbmUgc3RyaW5nczsKLSAgICAg KiBDb3VudCB0aGUgZW50cmllcyBtYW51YWxseSBhbmQgcmVhZCAiTnVtYmVyT2ZFbnRyaWVzIi4K LSAgICAgKi8KLS0gICAgd2hpbGUgKCFzdHJlYW0uYXRFbmQoKSkgewotLSAgICAgICAgdG1wID0g c3RyZWFtLnJlYWRMaW5lKCk7Ci0rICAgIHdoaWxlKCAhdGV4dFN0cmVhbS5hdEVuZCgpICkKLSsg ICAgewotKyAgICAgICAgdG1wID0gdGV4dFN0cmVhbS5yZWFkTGluZSgpOwotICAgICAgICAgdG1w ID0gdG1wLnRyaW1tZWQoKTsKLS0gICAgICAgIGlmICh0bXAuaXNFbXB0eSgpKQotKyAgICAgICAg aWYoIHRtcC5pc0VtcHR5KCkgKQotICAgICAgICAgICAgIGNvbnRpbnVlOwotLSAgICAgICAgbGlu ZXMuYXBwZW5kKHRtcCk7Ci0rICAgICAgICBsaW5lcy5hcHBlbmQoIHRtcCApOwotIAotLSAgICAg ICAgaWYgKHRtcC5jb250YWlucyhyZWdFeHBfRmlsZSkpIHsKLSsgICAgICAgIGlmKCB0bXAuY29u dGFpbnMoIHJlZ0V4cF9GaWxlICkgKQotKyAgICAgICAgewotICAgICAgICAgICAgIGVudHJ5Q250 Kys7Ci0gICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAodG1w ID09IHNlY3Rpb25fcGxheWxpc3QpIHsKLSsgICAgICAgIGlmKCB0bXAgPT0gc2VjdGlvbl9wbGF5 bGlzdCApCi0rICAgICAgICB7Ci0gICAgICAgICAgICAgaGF2ZVBsYXlsaXN0U2VjdGlvbiA9IHRy dWU7Ci0gICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAodG1w LmNvbnRhaW5zKHJlZ0V4cF9OdW1iZXJPZkVudHJpZXMpKSB7Ci0tICAgICAgICAgICAgbnVtYmVy T2ZFbnRyaWVzID0gdG1wLnNlY3Rpb24oJz0nLCAtMSkudHJpbW1lZCgpLnRvVUludCgpOwotKyAg ICAgICAgaWYoIHRtcC5jb250YWlucyggcmVnRXhwX051bWJlck9mRW50cmllcyApICkKLSsgICAg ICAgIHsKLSsgICAgICAgICAgICBudW1iZXJPZkVudHJpZXMgPSB0bXAuc2VjdGlvbiggJz0nLCAt MSApLnRyaW1tZWQoKS50b1VJbnQoKTsKLSAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg IH0KLSAgICAgfQotLSAgICBpZiAobnVtYmVyT2ZFbnRyaWVzICE9IGVudHJ5Q250KSB7Ci0rICAg IGlmKCBudW1iZXJPZkVudHJpZXMgIT0gZW50cnlDbnQgKQotKyAgICB7Ci0gICAgICAgICB3YXJu aW5nKCkgPDwgIi5wbHMgcGxheWxpc3Q6IEludmFsaWQgXCJOdW1iZXJPZkVudHJpZXNcIiB2YWx1 ZS4gICIKLSAgICAgICAgICAgICAgICAgPDwgIk51bWJlck9mRW50cmllcz0iIDw8IG51bWJlck9m RW50cmllcyA8PCAiICBjb3VudGVkPSIKLSAgICAgICAgICAgICAgICAgPDwgZW50cnlDbnQgPDwg ZW5kbDsKLUBAIC0yMDIsNyArMjA2LDcgQEAgUExTUGxheWxpc3Q6OmxvYWRQbHMoIFFUZXh0U3Ry ZWFtICZzdHJlYW0gKQotICAgICAgICAgKi8KLSAgICAgICAgIG51bWJlck9mRW50cmllcyA9IGVu dHJ5Q250OwotICAgICB9Ci0tICAgIGlmICghbnVtYmVyT2ZFbnRyaWVzKQotKyAgICBpZiggbnVt YmVyT2ZFbnRyaWVzID09IDAgKQotICAgICAgICAgcmV0dXJuIHRydWU7Ci0gCi0gICAgIHVuc2ln bmVkIGludCBpbmRleDsKLUBAIC0yMTMsNjcgKzIxNyw2OSBAQCBQTFNQbGF5bGlzdDo6bG9hZFBs cyggUVRleHRTdHJlYW0gJnN0cmVhbSApCi0gICAgICogYW5kIHBhcnNlIHRoZSBwbGF5bGlzdCBk YXRhLgotICAgICAqLwotICAgICBRU3RyaW5nTGlzdDo6Y29uc3RfaXRlcmF0b3IgaSA9IGxpbmVz LmNvbnN0QmVnaW4oKSwgZW5kID0gbGluZXMuY29uc3RFbmQoKTsKLS0gICAgZm9yICggOyBpICE9 IGVuZDsgKytpKSB7Ci0tICAgICAgICBpZiAoIWluUGxheWxpc3RTZWN0aW9uICYmIGhhdmVQbGF5 bGlzdFNlY3Rpb24pIHsKLSsgICAgZm9yKCA7IGkgIT0gZW5kOyArK2kgKQotKyAgICB7Ci0rICAg ICAgICBpZiggIWluUGxheWxpc3RTZWN0aW9uICYmIGhhdmVQbGF5bGlzdFNlY3Rpb24gKQotKyAg ICAgICAgewotICAgICAgICAgICAgIC8qIFRoZSBwbGF5bGlzdCBiZWdpbnMgd2l0aCB0aGUgIltw bGF5bGlzdF0iIHRhZy4KLSAgICAgICAgICAgICAqIFNraXAgZXZlcnl0aGluZyBiZWZvcmUgdGhp cy4KLSAgICAgICAgICAgICAqLwotLSAgICAgICAgICAgIGlmICgoKmkpID09IHNlY3Rpb25fcGxh eWxpc3QpCi0rICAgICAgICAgICAgaWYoICgqaSkgPT0gc2VjdGlvbl9wbGF5bGlzdCApCi0gICAg ICAgICAgICAgICAgIGluUGxheWxpc3RTZWN0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgICBjb250 aW51ZTsKLSAgICAgICAgIH0KLS0gICAgICAgIGlmICgoKmkpLmNvbnRhaW5zKHJlZ0V4cF9GaWxl KSkgewotKyAgICAgICAgaWYoICgqaSkuY29udGFpbnMoIHJlZ0V4cF9GaWxlICkgKQotKyAgICAg ICAgewotICAgICAgICAgICAgIC8vIEhhdmUgYSAiRmlsZSM9WFlaIiBsaW5lLgotLSAgICAgICAg ICAgIGluZGV4ID0gbG9hZFBsc19leHRyYWN0SW5kZXgoKmkpOwotLSAgICAgICAgICAgIGlmIChp bmRleCA+IG51bWJlck9mRW50cmllcyB8fCBpbmRleCA9PSAwKQotKyAgICAgICAgICAgIGluZGV4 ID0gbG9hZFBsc19leHRyYWN0SW5kZXgoICppICk7Ci0rICAgICAgICAgICAgaWYoIGluZGV4ID4g bnVtYmVyT2ZFbnRyaWVzIHx8IGluZGV4ID09IDAgKQotICAgICAgICAgICAgICAgICBjb250aW51 ZTsKLS0gICAgICAgICAgICB0bXAgPSAoKmkpLnNlY3Rpb24oJz0nLCAxKS50cmltbWVkKCk7Ci0t ICAgICAgICAgICAgY3VycmVudFRyYWNrID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCkt PnRyYWNrRm9yVXJsKCB0bXAgKTsKLS0gICAgICAgICAgICBpZiggY3VycmVudFRyYWNrLmlzTnVs bCgpICkKLSsgICAgICAgICAgICB0bXAgPSAoKmkpLnNlY3Rpb24oICc9JywgMSApLnRyaW1tZWQo KTsKLSsgICAgICAgICAgICBLVXJsIHVybCggdG1wICk7Ci0rICAgICAgICAgICAgaWYoIHVybC5p c1JlbGF0aXZlKCkgKQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgZGVidWcoKSA8 PCAidHJhY2sgY291bGQgbm90IGJlIGxvYWRlZDogIiA8PCB0bXA7Ci0tICAgICAgICAgICAgICAg IGNvbnRpbnVlOwotKyAgICAgICAgICAgICAgICB1cmwgPSBtX3VybDsKLSsgICAgICAgICAgICAg ICAgdXJsLmFkZFBhdGgoIHRtcCApOwotICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBtX3Ry YWNrcy5hcHBlbmQoIGN1cnJlbnRUcmFjayApOwotKyAgICAgICAgICAgIHByb3h5VHJhY2sgPSBu ZXcgTWV0YVByb3h5OjpUcmFjayggdXJsICk7Ci0rICAgICAgICAgICAgbV90cmFja3MgPDwgTWV0 YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsKLSAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg ICAgIH0KLS0gICAgICAgIGlmICgoKmkpLmNvbnRhaW5zKHJlZ0V4cF9UaXRsZSkpIHsKLSsgICAg ICAgIGlmKCAoKmkpLmNvbnRhaW5zKHJlZ0V4cF9UaXRsZSkgKQotKyAgICAgICAgewotICAgICAg ICAgICAgIC8vIEhhdmUgYSAiVGl0bGUjPVhZWiIgbGluZS4KLSAgICAgICAgICAgICBpbmRleCA9 IGxvYWRQbHNfZXh0cmFjdEluZGV4KCppKTsKLS0gICAgICAgICAgICBpZiAoaW5kZXggPiBudW1i ZXJPZkVudHJpZXMgfHwgaW5kZXggPT0gMCkKLSsgICAgICAgICAgICBpZiggaW5kZXggPiBudW1i ZXJPZkVudHJpZXMgfHwgaW5kZXggPT0gMCApCi0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot LSAgICAgICAgICAgIHRtcCA9ICgqaSkuc2VjdGlvbignPScsIDEpLnRyaW1tZWQoKTsKLS0KLS0g ICAgICAgICAgICBpZiAoIGN1cnJlbnRUcmFjay5kYXRhKCkgIT0gMCAmJiBjdXJyZW50VHJhY2st PmlzPENhcGFiaWxpdGllczo6RWRpdENhcGFiaWxpdHk+KCkgKQotLSAgICAgICAgICAgIHsKLS0g ICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzOjpFZGl0Q2FwYWJpbGl0eSAqZWMgPSBjdXJyZW50 VHJhY2stPmNyZWF0ZTxDYXBhYmlsaXRpZXM6OkVkaXRDYXBhYmlsaXR5PigpOwotLSAgICAgICAg ICAgICAgICBpZiggZWMgKQotLSAgICAgICAgICAgICAgICAgICAgZWMtPnNldFRpdGxlKCB0bXAg KTsKLS0gICAgICAgICAgICAgICAgZGVsZXRlIGVjOwotLSAgICAgICAgICAgIH0KLSsgICAgICAg ICAgICB0bXAgPSAoKmkpLnNlY3Rpb24oICc9JywgMSApLnRyaW1tZWQoKTsKLSsgICAgICAgICAg ICBwcm94eVRyYWNrLT5zZXROYW1lKCB0bXAgKTsKLSAgICAgICAgICAgICBjb250aW51ZTsKLSAg ICAgICAgIH0KLS0gICAgICAgIGlmICgoKmkpLmNvbnRhaW5zKHJlZ0V4cF9MZW5ndGgpKSB7Ci0r ICAgICAgICBpZiggKCppKS5jb250YWlucyggcmVnRXhwX0xlbmd0aCApICkKLSsgICAgICAgIHsK LSAgICAgICAgICAgICAvLyBIYXZlIGEgIkxlbmd0aCM9WFlaIiBsaW5lLgotICAgICAgICAgICAg IGluZGV4ID0gbG9hZFBsc19leHRyYWN0SW5kZXgoKmkpOwotLSAgICAgICAgICAgIGlmIChpbmRl eCA+IG51bWJlck9mRW50cmllcyB8fCBpbmRleCA9PSAwKQotKyAgICAgICAgICAgIGlmKCBpbmRl eCA+IG51bWJlck9mRW50cmllcyB8fCBpbmRleCA9PSAwICkKLSAgICAgICAgICAgICAgICAgY29u dGludWU7Ci0tICAgICAgICAgICAgdG1wID0gKCppKS5zZWN0aW9uKCc9JywgMSkudHJpbW1lZCgp OwotLSAgICAgICAgICAgIC8vdHJhY2tzLmFwcGVuZCggS1VybCh0bXApICk7Ci0tLy8gICAgICAg ICAgICAgUV9BU1NFUlQob2spOwotKyAgICAgICAgICAgIHRtcCA9ICgqaSkuc2VjdGlvbiggJz0n LCAxICkudHJpbW1lZCgpOwotKyAgICAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLSsgICAgICAg ICAgICBpbnQgc2Vjb25kcyA9IHRtcC50b0ludCggJm9rICk7Ci0rICAgICAgICAgICAgaWYoIG9r ICkKLSsgICAgICAgICAgICAgICAgcHJveHlUcmFjay0+c2V0TGVuZ3RoKCBzZWNvbmRzICogMTAw MCApOyAvL2xlbmd0aCBpcyBpbiBtaWxsaXNlY29uZHMKLSAgICAgICAgICAgICBjb250aW51ZTsK LSAgICAgICAgIH0KLS0gICAgICAgIGlmICgoKmkpLmNvbnRhaW5zKHJlZ0V4cF9OdW1iZXJPZkVu dHJpZXMpKSB7Ci0rICAgICAgICBpZiggKCppKS5jb250YWlucyggcmVnRXhwX051bWJlck9mRW50 cmllcyApICkKLSsgICAgICAgIHsKLSAgICAgICAgICAgICAvLyBIYXZlIHRoZSAiTnVtYmVyT2ZF bnRyaWVzPSMiIGxpbmUuCi0gICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICB9Ci0tICAg ICAgICBpZiAoKCppKS5jb250YWlucyhyZWdFeHBfVmVyc2lvbikpIHsKLSsgICAgICAgIGlmKCAo KmkpLmNvbnRhaW5zKCByZWdFeHBfVmVyc2lvbiApICkKLSsgICAgICAgIHsKLSAgICAgICAgICAg ICAvLyBIYXZlIHRoZSAiVmVyc2lvbj0jIiBsaW5lLgotLSAgICAgICAgICAgIHRtcCA9ICgqaSku c2VjdGlvbignPScsIDEpLnRyaW1tZWQoKTsKLSsgICAgICAgICAgICB0bXAgPSAoKmkpLnNlY3Rp b24oICc9JywgMSApLnRyaW1tZWQoKTsKLSAgICAgICAgICAgICAvLyBXZSBvbmx5IHN1cHBvcnQg VmVyc2lvbj0yCi0tICAgICAgICAgICAgaWYgKHRtcC50b1VJbnQoJm9rKSAhPSAyKQotKyAgICAg ICAgICAgIGlmICh0bXAudG9VSW50KCAmb2sgKSAhPSAyKQotICAgICAgICAgICAgICAgICB3YXJu aW5nKCkgPDwgIi5wbHMgcGxheWxpc3Q6IFVuc3VwcG9ydGVkIHZlcnNpb24uIiA8PCBlbmRsOwot LS8vICAgICAgICAgICAgIFFfQVNTRVJUKG9rKTsKLSAgICAgICAgICAgICBjb250aW51ZTsKLSAg ICAgICAgIH0KLSAgICAgICAgIHdhcm5pbmcoKSA8PCAiLnBscyBwbGF5bGlzdDogVW5yZWNvZ25p emVkIGxpbmU6IFwiIiA8PCAqaSA8PCAiXCIiIDw8IGVuZGw7Ci1AQCAtMzAwLDE0ICszMDYsMzEg QEAgUExTUGxheWxpc3Q6OnNhdmUoIGNvbnN0IEtVcmwgJmxvY2F0aW9uLCBib29sIHJlbGF0aXZl ICkKLSAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotIAotKyAgICAvL0Zvcm1hdDogaHR0 cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QTFNfKGZpbGVfZm9ybWF0KQotICAgICBRVGV4dFN0 cmVhbSBzdHJlYW0oICZmaWxlICk7Ci0rICAgIC8vaGVhZGVyCi0gICAgIHN0cmVhbSA8PCAiW1Bs YXlsaXN0XVxuIjsKLS0gICAgc3RyZWFtIDw8ICJOdW1iZXJPZkVudHJpZXM9IiA8PCBtX3RyYWNr cy5jb3VudCgpIDw8IGVuZGw7Ci0rCi0rICAgIC8vYm9keQotICAgICBpbnQgaSA9IDE7IC8vUExT IHN0YXJ0cyBhdCBGaWxlMT0KLSAgICAgZm9yZWFjaCggTWV0YTo6VHJhY2tQdHIgdHJhY2ssIG1f dHJhY2tzICkKLSAgICAgewotLSAgICAgICAgc3RyZWFtIDw8ICJGaWxlIiA8PCBpIDw8ICI9IjsK LS0gICAgICAgIHN0cmVhbSA8PCBLVXJsKCB0cmFjay0+cGxheWFibGVVcmwoKSApLnBhdGgoKTsK LSsgICAgICAgIEtVcmwgcGxheWFibGVVcmwoIHRyYWNrLT5wbGF5YWJsZVVybCgpICk7Ci0rICAg ICAgICBRU3RyaW5nIGZpbGUgPSBwbGF5YWJsZVVybC51cmwoKTsKLSsKLSsgICAgICAgIGlmKCBw bGF5YWJsZVVybC5pc0xvY2FsRmlsZSgpICkKLSsgICAgICAgIHsKLSsgICAgICAgICAgICBpZigg cmVsYXRpdmUgKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAgZmlsZSA9IEtVcmw6 OnJlbGF0aXZlUGF0aCggc2F2ZVBhdGgudG9Mb2NhbEZpbGUoKSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheWFibGVVcmwudG9Mb2NhbEZpbGUoKSApOwot KyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgewotKyAgICAg ICAgICAgICAgICBmaWxlID0gcGxheWFibGVVcmwudG9Mb2NhbEZpbGUoKTsKLSsgICAgICAgICAg ICB9Ci0rICAgICAgICB9Ci0rICAgICAgICBzdHJlYW0gPDwgIkZpbGUiIDw8IGkgPDwgIj0iIDw8 IGZpbGU7Ci0gICAgICAgICBzdHJlYW0gPDwgIlxuVGl0bGUiIDw8IGkgPDwgIj0iOwotICAgICAg ICAgc3RyZWFtIDw8IHRyYWNrLT5uYW1lKCk7Ci0gICAgICAgICBzdHJlYW0gPDwgIlxuTGVuZ3Ro IiA8PCBpIDw8ICI9IjsKLUBAIC0zMTYsNiArMzM5LDggQEAgUExTUGxheWxpc3Q6OnNhdmUoIGNv bnN0IEtVcmwgJmxvY2F0aW9uLCBib29sIHJlbGF0aXZlICkKLSAgICAgICAgIGkrKzsKLSAgICAg fQotIAotKyAgICAvL2Zvb3RlcgotKyAgICBzdHJlYW0gPDwgIk51bWJlck9mRW50cmllcz0iIDw8 IG1fdHJhY2tzLmNvdW50KCkgPDwgZW5kbDsKLSAgICAgc3RyZWFtIDw8ICJWZXJzaW9uPTJcbiI7 Ci0gICAgIGZpbGUuY2xvc2UoKTsKLSAgICAgcmV0dXJuIHRydWU7Ci1AQCAtMzMwLDkgKzM1NSw5 IEBAIFBMU1BsYXlsaXN0Ojpsb2FkUGxzX2V4dHJhY3RJbmRleCggY29uc3QgUVN0cmluZyAmc3Ry ICkgY29uc3QKLSAgICAgKi8KLSAgICAgYm9vbCBvayA9IGZhbHNlOwotICAgICB1bnNpZ25lZCBp bnQgcmV0OwotLSAgICBRU3RyaW5nIHRtcChzdHIuc2VjdGlvbignPScsIDAsIDApKTsKLS0gICAg dG1wLnJlbW92ZShRUmVnRXhwKCJeXFxEKiIpKTsKLS0gICAgcmV0ID0gdG1wLnRyaW1tZWQoKS50 b1VJbnQoJm9rKTsKLSsgICAgUVN0cmluZyB0bXAoIHN0ci5zZWN0aW9uKCAnPScsIDAsIDAgKSAp OwotKyAgICB0bXAucmVtb3ZlKCBRUmVnRXhwKCAiXlxcRCoiICkgKTsKLSsgICAgcmV0ID0gdG1w LnRyaW1tZWQoKS50b1VJbnQoICZvayApOwotICAgICBRX0FTU0VSVChvayk7Ci0gICAgIHJldHVy biByZXQ7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvcGxheWxpc3RzL3R5cGVzL2Zp bGUveHNwZi9YU1BGUGxheWxpc3QuY3BwIGIvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMv ZmlsZS94c3BmL1hTUEZQbGF5bGlzdC5jcHAKLWluZGV4IDRjYjQ5ZmIuLjAxY2YxZTYgMTAwNjQ0 Ci0tLS0gYS9zcmMvY29yZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL3hzcGYvWFNQRlBsYXls aXN0LmNwcAotKysrIGIvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS94c3BmL1hT UEZQbGF5bGlzdC5jcHAKLUBAIC0yMzMsOCArMjMzLDcgQEAgWFNQRlBsYXlsaXN0Ojp0cmFja0Nv dW50KCkgY29uc3QKLSBNZXRhOjpUcmFja0xpc3QKLSBYU1BGUGxheWxpc3Q6OnRyYWNrcygpCi0g ewotLSAgICAvL0lmIHlvdSBkbyBub3QgbG9hZCBiZWZvcmUsIG1fdHJhY2tzCi0tICAgIC8vY2Fu IGJlIGVtcHR5IGJlZm9yZSB1c2FnZS4KLSsgICAgLy9JZiB5b3UgZG8gbm90IGxvYWQsIG1fdHJh Y2tzIGNhbiBiZSBlbXB0eSBiZWZvcmUgdXNhZ2UuCi0gICAgIHRyaWdnZXJUcmFja0xvYWQoKTsK LSAKLSAgICAgcmV0dXJuIG1fdHJhY2tzOwotQEAgLTI1MSw3NiArMjUwLDE0IEBAIFhTUEZQbGF5 bGlzdDo6dHJpZ2dlclRyYWNrTG9hZCgpCi0gCi0gICAgIGZvcmVhY2goIGNvbnN0IFhTUEZUcmFj ayAmdHJhY2ssIHhzcGZUcmFja3MgKQotICAgICB7Ci0tICAgICAgICBNZXRhOjpUcmFja1B0ciB0 cmFja1B0cjsKLS0gICAgICAgIGlmKCAhdHJhY2suaWRlbnRpZmllci5pc0VtcHR5KCkgKQotLSAg ICAgICAgICAgIHRyYWNrUHRyID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnRyYWNr Rm9yVXJsKCB0cmFjay5pZGVudGlmaWVyICk7Ci0tICAgICAgICBlbHNlCi0tICAgICAgICAgICAg dHJhY2tQdHIgPSBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKS0+dHJhY2tGb3JVcmwoIHRy YWNrLmxvY2F0aW9uICk7Ci0tICAgICAgICBpZiggdHJhY2tQdHIgKQotLSAgICAgICAgewotLSAg ICAgICAgICAgIC8qKgotLSAgICAgICAgICAgICAqIE5PVEU6IElmIHRoaXMgaXMgYSBNZXRhUHJv eHk6OlRyYWNrLCBpdCBwcm9iYWJseSBpc24ndCBwbGF5YWJsZSB5ZXQsCi0tICAgICAgICAgICAg ICogICAgICAgYnV0IHRoYXQncyBva2F5LiBIb3dldmVyLCBpdCdzIG5vdCBhIGdvb2QgaWRlYSB0 byBnZXQgYW5vdGhlcgotLSAgICAgICAgICAgICAqICAgICAgIG9uZSBmcm9tIHRoZSBzYW1lIHBy b3ZpZGVyLCBzaW5jZSB0aGUgcHJveHkgcHJvYmFibHkgbWVhbnMgdGhhdAotLSAgICAgICAgICAg ICAqICAgICAgIG1ha2luZyBvbmUgaW52b2x2ZXMgcXVpdGUgYSBiaXQgb2Ygd29yay4KLS0gICAg ICAgICAgICAgKiAgICAgICAgIC0gQW5keSBDb2RlciA8YW5kcmV3LmNvZGVyQGdtYWlsLmNvbT4K LS0gICAgICAgICAgICAgKi8KLS0gICAgICAgICAgICBpZiggIXRyYWNrUHRyLT5pc1BsYXlhYmxl KCkgJiYgKCB0eXBlaWQoICogdHJhY2tQdHIuZGF0YSgpICkgIT0gdHlwZWlkKCBNZXRhUHJveHk6 OlRyYWNrICkgKSApCi0tICAgICAgICAgICAgICAgIHRyYWNrUHRyID0gQ29sbGVjdGlvbk1hbmFn ZXI6Omluc3RhbmNlKCktPnRyYWNrRm9yVXJsKCB0cmFjay5pZGVudGlmaWVyICk7Ci0tICAgICAg ICB9Ci0tCi0tICAgICAgICBpZiggdHJhY2tQdHIgKQotLSAgICAgICAgewotLSAgICAgICAgICAg IGlmKCB0eXBlaWQoICogdHJhY2tQdHIuZGF0YSgpICkgPT0gdHlwZWlkKCBNZXRhU3RyZWFtOjpU cmFjayApICkKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIE1ldGFTdHJlYW06OlRy YWNrICogc3RyZWFtVHJhY2sgPSBkeW5hbWljX2Nhc3Q8TWV0YVN0cmVhbTo6VHJhY2sgKj4gKCB0 cmFja1B0ci5kYXRhKCkgKTsKLS0gICAgICAgICAgICAgICAgaWYgKCBzdHJlYW1UcmFjayApCi0t ICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHN0cmVhbVRyYWNrLT5zZXRU aXRsZSggdHJhY2sudGl0bGUgKTsKLS0gICAgICAgICAgICAgICAgICAgIHN0cmVhbVRyYWNrLT5z ZXRBbGJ1bSggdHJhY2suYWxidW0gKTsKLS0gICAgICAgICAgICAgICAgICAgIHN0cmVhbVRyYWNr LT5zZXRBcnRpc3QoIHRyYWNrLmNyZWF0b3IgKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICBlbHNlIGlmKCB0eXBlaWQoICogdHJhY2tQdHIuZGF0YSgp ICkgPT0gdHlwZWlkKCBNZXRhOjpUaW1lY29kZVRyYWNrICkgKQotLSAgICAgICAgICAgIHsKLS0g ICAgICAgICAgICAgICAgTWV0YTo6VGltZWNvZGVUcmFjayAqIHRpbWVjb2RlVHJhY2sgPQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNfY2FzdDxNZXRhOjpUaW1lY29kZVRyYWNrICo+ KCB0cmFja1B0ci5kYXRhKCkgKTsKLS0gICAgICAgICAgICAgICAgaWYoIHRpbWVjb2RlVHJhY2sg KQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB0aW1lY29kZVRyYWNr LT5iZWdpbk1ldGFEYXRhVXBkYXRlKCk7Ci0tICAgICAgICAgICAgICAgICAgICB0aW1lY29kZVRy YWNrLT5zZXRUaXRsZSggdHJhY2sudGl0bGUgKTsKLS0gICAgICAgICAgICAgICAgICAgIHRpbWVj b2RlVHJhY2stPnNldEFsYnVtKCB0cmFjay5hbGJ1bSApOwotLSAgICAgICAgICAgICAgICAgICAg dGltZWNvZGVUcmFjay0+c2V0QXJ0aXN0KCB0cmFjay5jcmVhdG9yICk7Ci0tICAgICAgICAgICAg ICAgICAgICB0aW1lY29kZVRyYWNrLT5lbmRNZXRhRGF0YVVwZGF0ZSgpOwotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIG1fdHJhY2tzIDw8IHRyYWNr UHRyOwotLSAgICAgICAgfQotLQotLQotLSAgICAgICAgLy8gd2h5IGRvIHdlIG5lZWQgdGhpcz8g c3FscGxheWxpc3QgaXMgbm90IGRvaW5nIHRoaXMKLS0gICAgICAgIC8vIHdlIGRvbid0IHdhbnQg KHByb2JhYmx5KSB1bnBsYXlhYmxlIHRyYWNrcwotLSAgICAgICAgLy8gYW5kIGl0IGNhdXNlcyBw cm9ibGVtcyBmb3IgbWUgKERhbmllbFcpIGFzIGxvbmcKLS0gICAgICAgIC8vIGFtYXJvayBub3Qg cmVzcGVjdHMgVHJhY2s6OmlzUGxheWFibGUoKQotLSAgICAgICAgLyplbHNlIHsKLS0KLS0gICAg ICAgICAgICBNZXRhUHJveHk6OlRyYWNrICpwcm94eVRyYWNrID0gbmV3IE1ldGFQcm94eTo6VHJh Y2soIHRyYWNrLmxvY2F0aW9uICk7Ci0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAv L0ZpbGwgaW4gdmFsdWVzIGZyb20geHNwZi4uCi0tICAgICAgICAgICAgICAgIFFWYXJpYW50TWFw IG1hcDsKLS0gICAgICAgICAgICAgICAgbWFwLmluc2VydCggTWV0YTo6RmllbGQ6OlRJVExFLCB0 cmFjay50aXRsZSApOwotLSAgICAgICAgICAgICAgICBtYXAuaW5zZXJ0KCBNZXRhOjpGaWVsZDo6 QUxCVU0sIHRyYWNrLmFsYnVtICk7Ci0tICAgICAgICAgICAgICAgIG1hcC5pbnNlcnQoIE1ldGE6 OkZpZWxkOjpBUlRJU1QsIHRyYWNrLmNyZWF0b3IgKTsKLS0gICAgICAgICAgICAgICAgbWFwLmlu c2VydCggTWV0YTo6RmllbGQ6OkxFTkdUSCwgdHJhY2suZHVyYXRpb24gKTsKLS0gICAgICAgICAg ICAgICAgbWFwLmluc2VydCggTWV0YTo6RmllbGQ6OlRSQUNLTlVNQkVSLCB0cmFjay50cmFja051 bSApOwotLSAgICAgICAgICAgICAgICBtYXAuaW5zZXJ0KCBNZXRhOjpGaWVsZDo6VVJMLCB0cmFj ay5sb2NhdGlvbiApOwotLSAgICAgICAgICAgICAgICBNZXRhOjpGaWVsZDo6dXBkYXRlVHJhY2so IHByb3h5VHJhY2ssIG1hcCApOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBtX3RyYWNr cyA8PCBNZXRhOjpUcmFja1B0ciggcHJveHlUcmFjayApOwotLSAgICAvLyAgICAgICAgIG1fdHJh Y2tzIDw8IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLT50cmFja0ZvclVybCggdHJhY2su bG9jYXRpb24gKTsKLS0gICAgICAgIH0qLwotLQotKyAgICAgICBNZXRhUHJveHk6OlRyYWNrICpw cm94eVRyYWNrID0gbmV3IE1ldGFQcm94eTo6VHJhY2soIHRyYWNrLmxvY2F0aW9uICk7Ci0rICAg ICAgIC8vRmlsbCBpbiB2YWx1ZXMgZnJvbSB4c3BmLi4KLSsgICAgICAgcHJveHlUcmFjay0+c2V0 TmFtZSggdHJhY2sudGl0bGUgKTsKLSsgICAgICAgcHJveHlUcmFjay0+c2V0QWxidW0oIHRyYWNr LmFsYnVtICk7Ci0rICAgICAgIHByb3h5VHJhY2stPnNldEFydGlzdCggdHJhY2suY3JlYXRvciAp OwotKyAgICAgICBwcm94eVRyYWNrLT5zZXRMZW5ndGgoIHRyYWNrLmR1cmF0aW9uICk7Ci0rICAg ICAgIHByb3h5VHJhY2stPnNldFRyYWNrTnVtYmVyKCB0cmFjay50cmFja051bSApOwotKyAgICAg ICBtX3RyYWNrcyA8PCBNZXRhOjpUcmFja1B0ciggcHJveHlUcmFjayApOwotICAgICB9Ci0gCi0g ICAgIG1fdHJhY2tzTG9hZGVkID0gdHJ1ZTsKLWRpZmYgLS1naXQgYS9zcmMvY29yZS9jb2xsZWN0 aW9ucy9zdXBwb3J0L1RyYWNrRm9yVXJsV29ya2VyLmggYi9zcmMvY29yZS9jb2xsZWN0aW9ucy9z dXBwb3J0L1RyYWNrRm9yVXJsV29ya2VyLmgKLWluZGV4IDY0ZDIzYmQuLjE2ZDc2NGUgMTAwNjQ0 Ci0tLS0gYS9zcmMvY29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1RyYWNrRm9yVXJsV29ya2VyLmgK LSsrKyBiL3NyYy9jb3JlL2NvbGxlY3Rpb25zL3N1cHBvcnQvVHJhY2tGb3JVcmxXb3JrZXIuaAot QEAgLTM1LDE3ICszNSwxNyBAQCBjbGFzcyBBTUFST0tfQ09SRV9FWFBPUlQgVHJhY2tGb3JVcmxX b3JrZXIgOiBwdWJsaWMgVGhyZWFkV2VhdmVyOjpKb2IKLSB7Ci0gICAgIFFfT0JKRUNUCi0gcHVi bGljOgotLSAgICBUcmFja0ZvclVybFdvcmtlciAoIGNvbnN0IEtVcmwgJnVybCApOwotLSAgICBU cmFja0ZvclVybFdvcmtlciAoIGNvbnN0IFFTdHJpbmcgJnVybCApOwotKyAgICBUcmFja0ZvclVy bFdvcmtlciggY29uc3QgS1VybCAmdXJsICk7Ci0rICAgIFRyYWNrRm9yVXJsV29ya2VyKCBjb25z dCBRU3RyaW5nICZ1cmwgKTsKLSAgICAgflRyYWNrRm9yVXJsV29ya2VyKCk7Ci0gCi0tICAgIHZp cnR1YWwgdm9pZCBydW4gKCkgPSAwOwotKyAgICB2aXJ0dWFsIHZvaWQgcnVuKCkgPSAwOwotIHNp Z25hbHM6Ci0tICAgIHZvaWQgZmluaXNoZWRMb29rdXAgKCBjb25zdCBNZXRhOjpUcmFja1B0ciAg JnRyYWNrICk7Ci0rICAgIHZvaWQgZmluaXNoZWRMb29rdXAoIGNvbnN0IE1ldGE6OlRyYWNrUHRy ICZ0cmFjayApOwotIAotIHByb3RlY3RlZDoKLS0gICAgS1VybCBtVXJsOwotLSAgICBNZXRhOjpU cmFja1B0ciBtVHJhY2s7Ci0rICAgIEtVcmwgbV91cmw7Ci0rICAgIE1ldGE6OlRyYWNrUHRyIG1f dHJhY2s7Ci0gCi0gcHJpdmF0ZSBzbG90czoKLSAgICAgdm9pZCBjb21wbGV0ZUpvYigpOwotZGlm ZiAtLWdpdCBhL3NyYy9jb3JlL2NvbGxlY3Rpb25zL3N1cHBvcnQvVHJhY2tGb3JVcmxXb3JrZXIu Y3BwIGIvc3JjL2NvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5jcHAK LWluZGV4IDdlOGYyODkuLjI4ZDkyYmIgMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS9jb2xsZWN0aW9u cy9zdXBwb3J0L1RyYWNrRm9yVXJsV29ya2VyLmNwcAotKysrIGIvc3JjL2NvcmUvY29sbGVjdGlv bnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5jcHAKLUBAIC0xNiwxNCArMTYsMTggQEAKLSAK LSAjaW5jbHVkZSAiVHJhY2tGb3JVcmxXb3JrZXIuaCIKLSAKLS1BbWFyb2s6OlRyYWNrRm9yVXJs V29ya2VyOjpUcmFja0ZvclVybFdvcmtlciAoIGNvbnN0IEtVcmwgJnVybCApIDogVGhyZWFkV2Vh dmVyOjpKb2IoKSwgbVVybCAoIHVybCApCi0rQW1hcm9rOjpUcmFja0ZvclVybFdvcmtlcjo6VHJh Y2tGb3JVcmxXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCApCi0rICAgIDogVGhyZWFkV2VhdmVyOjpK b2IoKQotKyAgICAsIG1fdXJsKCB1cmwgKQotIHsKLS0gICAgY29ubmVjdCAoIHRoaXMsIFNJR05B TCAoIGRvbmUgKCBUaHJlYWRXZWF2ZXI6OkpvYiogKSApLCBTTE9UICggY29tcGxldGVKb2IoKSAp ICk7Ci0rICAgIGNvbm5lY3QoIHRoaXMsIFNJR05BTChkb25lKCBUaHJlYWRXZWF2ZXI6OkpvYiAq ICkpLCBTTE9UKCBjb21wbGV0ZUpvYigpKSApOwotIH0KLSAKLS1BbWFyb2s6OlRyYWNrRm9yVXJs V29ya2VyOjpUcmFja0ZvclVybFdvcmtlciggY29uc3QgUVN0cmluZyAmdXJsICkgOiBUaHJlYWRX ZWF2ZXI6OkpvYigpLCBtVXJsICggS1VybCAoIHVybCApICkKLStBbWFyb2s6OlRyYWNrRm9yVXJs V29ya2VyOjpUcmFja0ZvclVybFdvcmtlciggY29uc3QgUVN0cmluZyAmdXJsICkKLSsgICAgOiBU aHJlYWRXZWF2ZXI6OkpvYigpCi0rICAgICwgbV91cmwoIEtVcmwoIHVybCApICkKLSB7Ci0tICAg IGNvbm5lY3QgKCB0aGlzLCBTSUdOQUwgKCBkb25lICggVGhyZWFkV2VhdmVyOjpKb2IqICkgKSwg U0xPVCAoIGNvbXBsZXRlSm9iKCkgKSApOwotKyAgICBjb25uZWN0KCB0aGlzLCBTSUdOQUwoZG9u ZSggVGhyZWFkV2VhdmVyOjpKb2IgKiApKSwgU0xPVCggY29tcGxldGVKb2IoKSkgKTsKLSB9Ci0g Ci0gQW1hcm9rOjpUcmFja0ZvclVybFdvcmtlcjo6flRyYWNrRm9yVXJsV29ya2VyKCkKLUBAIC0z Miw2ICszNiw2IEBAIEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXI6On5UcmFja0ZvclVybFdvcmtl cigpCi0gdm9pZAotIEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXI6OmNvbXBsZXRlSm9iKCkKLSB7 Ci0tICAgIGVtaXQgKCBmaW5pc2hlZExvb2t1cCAoIG1UcmFjayApICk7Ci0rICAgIGVtaXQoIGZp bmlzaGVkTG9va3VwKCBtX3RyYWNrICkgKTsKLSAgICAgZGVsZXRlTGF0ZXIoKTsKLSB9Ci1kaWZm IC0tZ2l0IGEvc3JjL3BsYXlsaXN0bWFuYWdlci9zcWwvU3FsUGxheWxpc3QuY3BwIGIvc3JjL3Bs YXlsaXN0bWFuYWdlci9zcWwvU3FsUGxheWxpc3QuY3BwCi1pbmRleCAzOWFkNzU5Li4zYTIyZGE0 IDEwMDY0NAotLS0tIGEvc3JjL3BsYXlsaXN0bWFuYWdlci9zcWwvU3FsUGxheWxpc3QuY3BwCi0r KysgYi9zcmMvcGxheWxpc3RtYW5hZ2VyL3NxbC9TcWxQbGF5bGlzdC5jcHAKLUBAIC0xNiwxMCAr MTYsMTEgQEAKLSAKLSAjaW5jbHVkZSAiU3FsUGxheWxpc3QuaCIKLSAKLS0jaW5jbHVkZSAiY29y ZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQvQ29sbGVjdGlvbk1hbmFnZXIuaCIKLSsjaW5jbHVk ZSAiY29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1NxbFN0b3JhZ2UuaCIKLSAjaW5jbHVkZSAiY29y ZS9zdXBwb3J0L0RlYnVnLmgiCi0rI2luY2x1ZGUgImNvcmUtaW1wbC9jb2xsZWN0aW9ucy9zdXBw b3J0L0NvbGxlY3Rpb25NYW5hZ2VyLmgiCi0rI2luY2x1ZGUgImNvcmUtaW1wbC9tZXRhL3Byb3h5 L01ldGFQcm94eS5oIgotICNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9zdHJlYW0vU3RyZWFtLmgi Ci0tI2luY2x1ZGUgImNvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9TcWxTdG9yYWdlLmgiCi0gI2lu Y2x1ZGUgImNvcmUtaW1wbC9tZXRhL3RpbWVjb2RlL1RpbWVjb2RlTWV0YS5oIgotICNpbmNsdWRl ICJwbGF5bGlzdG1hbmFnZXIvUGxheWxpc3RNYW5hZ2VyLmgiCi0gI2luY2x1ZGUgInBsYXlsaXN0 bWFuYWdlci9zcWwvU3FsUGxheWxpc3RHcm91cC5oIgotQEAgLTI3OCw2ICsyNzksOSBAQCBTcWxQ bGF5bGlzdDo6cmVtb3ZlVHJhY2soIGludCBwb3NpdGlvbiApCi0gdm9pZAotIFNxbFBsYXlsaXN0 OjptZXRhZGF0YUNoYW5nZWQoIE1ldGE6OlRyYWNrUHRyIHRyYWNrICkKLSB7Ci0rICAgIC8vVE9E TzogZG8gd2UgcmVhbGx5IG5lZWQgdG8gb2JzZXJ2ZSB0cmFjayBjaGFuZ2VzPyBNZXRhZGF0YSB3 aWxsIGJlIHByb3Blcmx5IHNhdmVkCi0rICAgIC8vb24gZXhpdCBhbmQgcHJveHkgdHJhY2tzIGFy ZSBsb2FkZWQgd2l0aCB1aWRVcmwuIFNvIGF0IHdvcnNlIHRoZSBzYXZlIG1ldGFkYXRhIGluCi0r ICAgIC8vcGxheWxpc3RfdHJhY2tzIHdpbGwgYmUgb3V0ZGF0ZWQgdW50aWwgcmVhbCB0cmFjayBp cyBsb2FkZWQuCi0gICAgIGlmKCAhbV90cmFja3NMb2FkZWQgKQotICAgICAgICAgbG9hZFRyYWNr cygpOwotIAotQEAgLTMwOCw0MyArMzEyLDE1IEBAIFNxbFBsYXlsaXN0Ojpsb2FkVHJhY2tzKCkK LSAgICAgICAgIFFTdHJpbmdMaXN0IHJvdyA9IHJlc3VsdC5taWQoIGkqNywgNyApOwotICAgICAg ICAgS1VybCB1cmwgPSBLVXJsKCByb3dbMl0gKTsKLSAKLS0gICAgICAgIE1ldGE6OlRyYWNrUHRy IHRyYWNrUHRyID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnRyYWNrRm9yVXJsKCB1 cmwgKTsKLSsgICAgICAgIE1ldGFQcm94eTo6VHJhY2sgKnByb3h5VHJhY2sgPSBuZXcgTWV0YVBy b3h5OjpUcmFjayggdXJsICk7Ci0gCi0tICAgICAgICBpZiggdHJhY2tQdHIgKQotLSAgICAgICAg ewotLSAgICAgICAgICAgIGlmKCB0eXBlaWQoICogdHJhY2tQdHIuZGF0YSgpICkgPT0gdHlwZWlk KCBNZXRhU3RyZWFtOjpUcmFjayApICkKLS0gICAgICAgICAgICB7Ci0tCi0tICAgICAgICAgICAg ICAgIGRlYnVnKCkgPDwgImdvdCBzdHJlYW0gZnJvbSB0cmFja0ZvclVybCwgc2V0dGluZyBhbGJ1 bSB0byAiIDw8IHJvd1s0XTsKLS0KLS0gICAgICAgICAgICAgICAgTWV0YVN0cmVhbTo6VHJhY2sg KiBzdHJlYW1UcmFjayA9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY19jYXN0PE1l dGFTdHJlYW06OlRyYWNrICo+ICggdHJhY2tQdHIuZGF0YSgpICk7Ci0tICAgICAgICAgICAgICAg IAotLSAgICAgICAgICAgICAgICBpZiggc3RyZWFtVHJhY2sgKQotLSAgICAgICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgICAgICBzdHJlYW1UcmFjay0+c2V0VGl0bGUoIHJvd1szXSApOwot LSAgICAgICAgICAgICAgICAgICAgc3RyZWFtVHJhY2stPnNldEFsYnVtKCByb3dbNF0gKTsKLS0g ICAgICAgICAgICAgICAgICAgIHN0cmVhbVRyYWNrLT5zZXRBcnRpc3QoIHJvd1s1XSApOwotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgIGVsc2UgaWYoIHR5 cGVpZCggKiB0cmFja1B0ci5kYXRhKCkgKSA9PSB0eXBlaWQoIE1ldGE6OlRpbWVjb2RlVHJhY2sg KSApCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBNZXRhOjpUaW1lY29kZVRyYWNr ICogdGltZWNvZGVUcmFjayA9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY19jYXN0 PE1ldGE6OlRpbWVjb2RlVHJhY2sgKj4gKCB0cmFja1B0ci5kYXRhKCkgKTsKLS0KLS0gICAgICAg ICAgICAgICAgaWYoIHRpbWVjb2RlVHJhY2sgKQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgICAgICB0aW1lY29kZVRyYWNrLT5iZWdpbk1ldGFEYXRhVXBkYXRlKCk7Ci0tICAg ICAgICAgICAgICAgICAgICB0aW1lY29kZVRyYWNrLT5zZXRUaXRsZSggcm93WzNdICk7Ci0tICAg ICAgICAgICAgICAgICAgICB0aW1lY29kZVRyYWNrLT5zZXRBbGJ1bSggcm93WzRdICk7Ci0tICAg ICAgICAgICAgICAgICAgICB0aW1lY29kZVRyYWNrLT5zZXRBcnRpc3QoIHJvd1s1XSApOwotLSAg ICAgICAgICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+ZW5kTWV0YURhdGFVcGRhdGUoKTsKLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICBzdWJzY3Jp YmVUbyggdHJhY2tQdHIgKTsKLS0gICAgICAgICAgICBtX3RyYWNrcyA8PCB0cmFja1B0cjsKLS0g ICAgICAgIH0KLSsgICAgICAgIHByb3h5VHJhY2stPnNldE5hbWUoIHJvd1szXSApOwotKyAgICAg ICAgcHJveHlUcmFjay0+c2V0QWxidW0oIHJvd1s0XSApOwotKyAgICAgICAgcHJveHlUcmFjay0+ c2V0QXJ0aXN0KCByb3dbNV0gKTsKLSsgICAgICAgIE1ldGE6OlRyYWNrUHRyIHRyYWNrUHRyID0g TWV0YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsKLSsgICAgICAgIC8vc3Vic2NyaWJlZCB0byBm b3JjZSBhIHNhdmUgdG8gZGIgb24gYW55IGNoYW5nZSAoc3VjaCBhcyBBRlQgZmlsZSBtb3ZlKQot KyAgICAgICAgc3Vic2NyaWJlVG8oIHRyYWNrUHRyICk7Ci0rICAgICAgICBtX3RyYWNrcyA8PCB0 cmFja1B0cjsKLSAgICAgfQotIAotICAgICBtX3RyYWNrc0xvYWRlZCA9IHRydWU7Ci1kaWZmIC0t Z2l0IGEvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uLmggYi9z cmMvc2VydmljZXMvYW1wYWNoZS9BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24uaAotaW5kZXggYTQ4 YzhmMi4uY2M0OTc3NSAxMDA2NDQKLS0tLSBhL3NyYy9zZXJ2aWNlcy9hbXBhY2hlL0FtcGFjaGVT ZXJ2aWNlQ29sbGVjdGlvbi5oCi0rKysgYi9zcmMvc2VydmljZXMvYW1wYWNoZS9BbXBhY2hlU2Vy dmljZUNvbGxlY3Rpb24uaAotQEAgLTI1LDE0ICsyNSwxNiBAQCBjbGFzcyBBbXBhY2hlVHJhY2tG b3JVcmxXb3JrZXIgOiBwdWJsaWMgQW1hcm9rOjpUcmFja0ZvclVybFdvcmtlcgotIHsKLSAgICAg UV9PQkpFQ1QKLSAgICAgcHVibGljOgotLSAgICAgICAgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2Vy KCBjb25zdCBLVXJsICZ1cmwsIE1ldGFQcm94eTo6VHJhY2tQdHIgdHJhY2ssIGNvbnN0IFFTdHJp bmcgJnNlcnZlciwgY29uc3QgUVN0cmluZyAmc2Vzc2lvbklkLCBTZXJ2aWNlQmFzZSogc2Vydmlj ZSk7Ci0rICAgICAgICBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCwg TWV0YVByb3h5OjpUcmFja1B0ciB0cmFjaywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgUVN0cmluZyAmc2VydmVyLCBjb25zdCBRU3RyaW5nICZzZXNzaW9uSWQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VCYXNlICpzZXJ2aWNlKTsK LSAgICAgICAgIH5BbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIoKTsKLS0gICAgICAgIHZpcnR1YWwg dm9pZCBydW4gKCk7Ci0rICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuKCk7Ci0gICAgICAgICB2b2lk IHBhcnNlVHJhY2soIGNvbnN0IFFTdHJpbmcgJnhtbCApOwotICAgICBzaWduYWxzOgotICAgICAg ICAgdm9pZCBhdXRoZW50aWNhdGlvbk5lZWRlZCgpOwotICAgICBwcml2YXRlOgotLSAgICAgICAg TWV0YVByb3h5OjpUcmFja1B0ciBtUHJveHk7Ci0rICAgICAgICBNZXRhUHJveHk6OlRyYWNrUHRy IG1fcHJveHk7Ci0gICAgICAgICBpbnQgbV91cmxUcmFja0lkOwotICAgICAgICAgaW50IG1fdXJs QWxidW1JZDsKLSAgICAgICAgIGludCBtX3VybEFydGlzdElkOwotQEAgLTQ0LDcgKzQ2LDcgQEAg Y2xhc3MgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyIDogcHVibGljIEFtYXJvazo6VHJhY2tGb3JV cmxXb3JrZXIKLSAgICAgICAgIFFTdHJpbmcgbV9zZXJ2ZXI7Ci0gICAgICAgICBRU3RyaW5nIG1f c2Vzc2lvbklkOwotIAotLSAgICAgICAgU2VydmljZUJhc2UqIG1fc2VydmljZTsKLSsgICAgICAg IFNlcnZpY2VCYXNlICptX3NlcnZpY2U7Ci0gfTsKLSAKLSBuYW1lc3BhY2UgQ29sbGVjdGlvbnMg ewotQEAgLTU5LDExICs2MSwxMiBAQCBjbGFzcyBBbXBhY2hlU2VydmljZUNvbGxlY3Rpb24gOiBw dWJsaWMgU2VydmljZUNvbGxlY3Rpb24KLSAgICAgUV9PQkpFQ1QKLSAKLSBwdWJsaWM6Ci0tICAg IEFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbiggU2VydmljZUJhc2UgKiBzZXJ2aWNlLCBjb25zdCBR U3RyaW5nICZzZXJ2ZXIsIGNvbnN0IFFTdHJpbmcgJnNlc3Npb25JZCApOwotKyAgICBBbXBhY2hl U2VydmljZUNvbGxlY3Rpb24oIFNlcnZpY2VCYXNlICpzZXJ2aWNlLCBjb25zdCBRU3RyaW5nICZz ZXJ2ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyAmc2Vz c2lvbklkICk7Ci0gCi0gICAgIHZpcnR1YWwgfkFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbigpOwot IAotLSAgICB2aXJ0dWFsIFF1ZXJ5TWFrZXIqIHF1ZXJ5TWFrZXIoKTsKLSsgICAgdmlydHVhbCBR dWVyeU1ha2VyICpxdWVyeU1ha2VyKCk7Ci0gCi0gICAgIHZpcnR1YWwgUVN0cmluZyBjb2xsZWN0 aW9uSWQoKSBjb25zdDsKLSAgICAgdmlydHVhbCBRU3RyaW5nIHByZXR0eU5hbWUoKSBjb25zdDsK LUBAIC03NiwxNiArNzksMTMgQEAgc2lnbmFsczoKLSAKLSBwdWJsaWMgc2xvdHM6Ci0gICAgIHZv aWQgc2xvdEF1dGhlbnRpY2F0aW9uTmVlZGVkKCk7Ci0tICAgIHZvaWQgc2xvdExvb2t1cENvbXBs ZXRlKCBjb25zdCBNZXRhOjpUcmFja1B0ciYgKTsKLSsgICAgdm9pZCBzbG90TG9va3VwQ29tcGxl dGUoIGNvbnN0IE1ldGE6OlRyYWNrUHRyICYgKTsKLSAKLSBwcml2YXRlOgotLSAgICAvKnZvaWQg cGFyc2VBbGJ1bSggY29uc3QgUVN0cmluZyAmeG1sICk7Ci0tICAgIHZvaWQgcGFyc2VBcnRpc3Qo IGNvbnN0IFFTdHJpbmcgJnhtbCApOyovCi0tCi0gICAgIFFTdHJpbmcgbV9zZXJ2ZXI7Ci0gICAg IFFTdHJpbmcgbV9zZXNzaW9uSWQ7Ci0gCi0tICAgIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlciAq IG1fdHJhY2tGb3JVcmxXb3JrZXI7Ci0rICAgIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlciAqbV90 cmFja0ZvclVybFdvcmtlcjsKLSB9OwotIAotIH0gLy9uYW1lc3BhY2UgQ29sbGVjdGlvbnMKLWRp ZmYgLS1naXQgYS9zcmMvc2VydmljZXMvYW1wYWNoZS9BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24u Y3BwIGIvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uLmNwcAot aW5kZXggYjY4NGUzNC4uYzNiNTExNSAxMDA2NDQKLS0tLSBhL3NyYy9zZXJ2aWNlcy9hbXBhY2hl L0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbi5jcHAKLSsrKyBiL3NyYy9zZXJ2aWNlcy9hbXBhY2hl L0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbi5jcHAKLUBAIC0yNyw3ICsyNyw5IEBACi0gCi0gdXNp bmcgbmFtZXNwYWNlIENvbGxlY3Rpb25zOwotIAotLUFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6 QW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uKCBTZXJ2aWNlQmFzZSAqIHNlcnZpY2UsIGNvbnN0IFFT dHJpbmcgJnNlcnZlciwgY29uc3QgUVN0cmluZyAmc2Vzc2lvbklkICkKLStBbXBhY2hlU2Vydmlj ZUNvbGxlY3Rpb246OkFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbiggU2VydmljZUJhc2UgKnNlcnZp Y2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IFFTdHJpbmcgJnNlcnZlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyAmc2Vzc2lvbklkICkKLSAgICAgOiBT ZXJ2aWNlQ29sbGVjdGlvbiggc2VydmljZSwgIkFtcGFjaGVDb2xsZWN0aW9uIiwgIkFtcGFjaGVD b2xsZWN0aW9uIiApCi0gICAgICwgbV9zZXJ2ZXIoIHNlcnZlciApCi0gICAgICwgbV9zZXNzaW9u SWQoIHNlc3Npb25JZCApCi1AQCAtNTgsNyArNjAsNyBAQCBBbXBhY2hlU2VydmljZUNvbGxlY3Rp b246OnByZXR0eU5hbWUoKSBjb25zdAotIH0KLSAKLSBib29sCi0tQW1wYWNoZVNlcnZpY2VDb2xs ZWN0aW9uOjpwb3NzaWJseUNvbnRhaW5zVHJhY2soY29uc3QgS1VybCAmIHVybCkgY29uc3QKLStB bXBhY2hlU2VydmljZUNvbGxlY3Rpb246OnBvc3NpYmx5Q29udGFpbnNUcmFjayggY29uc3QgS1Vy bCAmdXJsICkgY29uc3QKLSB7Ci0gICAgIHJldHVybiB1cmwudXJsKCkuY29udGFpbnMoIG1fc2Vy dmVyICk7Ci0gfQotQEAgLTcwLDc3ICs3Miw4MiBAQCBBbXBhY2hlU2VydmljZUNvbGxlY3Rpb246 OnNsb3RBdXRoZW50aWNhdGlvbk5lZWRlZCgpCi0gfQotIAotIE1ldGE6OlRyYWNrUHRyCi0tQW1w YWNoZVNlcnZpY2VDb2xsZWN0aW9uOjp0cmFja0ZvclVybCggY29uc3QgS1VybCAmIHVybCApCi0r QW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uOjp0cmFja0ZvclVybCggY29uc3QgS1VybCAmdXJsICkK LSB7Ci0tICAgIE1ldGFQcm94eTo6VHJhY2sqIHB0cmFjayA9IG5ldyBNZXRhUHJveHk6OlRyYWNr KCB1cmwudXJsKCksIHRydWUgKTsKLS0gICAgTWV0YVByb3h5OjpUcmFja1B0ciB0cmFja3B0cihw dHJhY2spOwotLSAgICBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIgKiB3b3JrZXIgPSAgbmV3IEFt cGFjaGVUcmFja0ZvclVybFdvcmtlcih1cmwsIHRyYWNrcHRyLCBtX3NlcnZlciwgbV9zZXNzaW9u SWQsIHNlcnZpY2UoKSApOwotLS8vICAgICBjb25uZWN0KCB3b3JrZXIsIFNJR05BTCggZmluaXNo ZWRMb29rdXAgKCBjb25zdCBNZXRhOjpUcmFja1B0ciYgKSApLCB0aGlzLAotLS8vICAgICAgICAg ICAgICBTTE9UKCBzbG90TG9va3VwQ29tcGxldGUoIGNvbnN0IE1ldGE6OlRyYWNrUHRyJiApICkg KTsKLS0gICAgY29ubmVjdCggd29ya2VyLCBTSUdOQUwoIGF1dGhlbnRpY2F0aW9uTmVlZGVkKCkg KSwgdGhpcywKLS0gICAgICAgICAgICAgU0xPVCggc2xvdEF1dGhlbnRpY2F0aW9uTmVlZGVkKCkg KSApOwotKyAgICBNZXRhUHJveHk6OlRyYWNrICpwdHJhY2sgPSBuZXcgTWV0YVByb3h5OjpUcmFj ayggdXJsLnVybCgpLCB0cnVlICk7Ci0rICAgIE1ldGFQcm94eTo6VHJhY2tQdHIgdHJhY2twdHIo IHB0cmFjayApOwotKyAgICBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIgKndvcmtlciA9IG5ldyBB bXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIoIHVybCwgdHJhY2twdHIsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9z ZXJ2ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbV9zZXNzaW9uSWQsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZSgp ICk7Ci0rICAgIGNvbm5lY3QoIHdvcmtlciwgU0lHTkFMKGF1dGhlbnRpY2F0aW9uTmVlZGVkKCkp LCBTTE9UKHNsb3RBdXRoZW50aWNhdGlvbk5lZWRlZCgpKSApOwotICAgICBUaHJlYWRXZWF2ZXI6 OldlYXZlcjo6aW5zdGFuY2UoKS0+ZW5xdWV1ZSggd29ya2VyICk7Ci0gCi0gICAgIHJldHVybiBN ZXRhOjpUcmFja1B0cjo6c3RhdGljQ2FzdCggdHJhY2twdHIgKTsKLSB9Ci0rCi0gdm9pZCBBbXBh Y2hlU2VydmljZUNvbGxlY3Rpb246OnNsb3RMb29rdXBDb21wbGV0ZSggY29uc3QgTWV0YTo6VHJh Y2tQdHImICkKLSB7Ci0gfQotIAotIHZvaWQgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyOjpwYXJz ZVRyYWNrKCBjb25zdCBRU3RyaW5nICZ4bWwgKQotIHsKLS0vLyAgICAgREVCVUdfQkxPQ0sKLS0K LS0vLyAgICAgIGRlYnVnKCkgPDwgIlJlY2VpdmVkIHRyYWNrIHJlc3BvbnNlOiAiIDw8IHhtbDsK LS0KLS0gICAgIC8vc28gbGV0cyBmaWd1cmUgb3V0IHdoYXQgd2UgZ290IGhlcmU6Ci0rICAgIC8v c28gbGV0cyBmaWd1cmUgb3V0IHdoYXQgd2UgZ290IGhlcmU6Ci0gICAgIFFEb21Eb2N1bWVudCBk b2MoICJyZXBseSIgKTsKLSAgICAgZG9jLnNldENvbnRlbnQoIHhtbCApOwotLSAgICBRRG9tRWxl bWVudCByb290ID0gZG9jLmZpcnN0Q2hpbGRFbGVtZW50KCJyb290Iik7Ci0tICAgIFFEb21FbGVt ZW50IHNvbmcgPSByb290LmZpcnN0Q2hpbGRFbGVtZW50KCJzb25nIik7Ci0rICAgIFFEb21FbGVt ZW50IHJvb3QgPSBkb2MuZmlyc3RDaGlsZEVsZW1lbnQoICJyb290IiApOwotKyAgICBRRG9tRWxl bWVudCBzb25nID0gcm9vdC5maXJzdENoaWxkRWxlbWVudCggInNvbmciICk7Ci0gCi0tICAgIG1f dXJsVHJhY2tJZCA9IHNvbmcuYXR0cmlidXRlKCAiaWQiLCAiMCIpLnRvSW50KCk7Ci0rICAgIG1f dXJsVHJhY2tJZCA9IHNvbmcuYXR0cmlidXRlKCAiaWQiLCAiMCIgKS50b0ludCgpOwotIAotLSAg ICBRRG9tRWxlbWVudCBlbGVtZW50ID0gc29uZy5maXJzdENoaWxkRWxlbWVudCgidGl0bGUiKTsK LSsgICAgUURvbUVsZW1lbnQgZWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJ0aXRs ZSIgKTsKLSAKLSAgICAgUVN0cmluZyB0aXRsZSA9IGVsZW1lbnQudGV4dCgpOwotICAgICBpZiAo IHRpdGxlLmlzRW1wdHkoKSApIHRpdGxlID0gIlVua25vd24iOwotIAotLSAgICBlbGVtZW50ID0g c29uZy5maXJzdENoaWxkRWxlbWVudCgidXJsIik7Ci0rICAgIGVsZW1lbnQgPSBzb25nLmZpcnN0 Q2hpbGRFbGVtZW50KCAidXJsIiApOwotIAotICAgICBtX3VybFRyYWNrID0gbmV3IE1ldGE6OkFt cGFjaGVUcmFjayggdGl0bGUsIG1fc2VydmljZSApOwotICAgICBNZXRhOjpUcmFja1B0ciB0cmFj a1B0ciggbV91cmxUcmFjayApOwotIAotLSAgICAvL2RlYnVnKCkgPDwgIkFkZGluZyB0cmFjazog IiA8PCAgdGl0bGU7Ci0gICAgIG1fdXJsVHJhY2stPnNldFVpZFVybCggZWxlbWVudC50ZXh0KCkg KTsKLSAgICAgbV91cmxUcmFjay0+c2V0SWQoIG1fdXJsVHJhY2tJZCApOwotIAotLSAgICBlbGVt ZW50ID0gc29uZy5maXJzdENoaWxkRWxlbWVudCgidGltZSIpOwotKyAgICBlbGVtZW50ID0gc29u Zy5maXJzdENoaWxkRWxlbWVudCggInRpbWUiICk7Ci0gICAgIG1fdXJsVHJhY2stPnNldExlbmd0 aCggZWxlbWVudC50ZXh0KCkudG9JbnQoKSAqIDEwMDAgKTsKLSAKLS0gICAgZWxlbWVudCA9IHNv bmcuZmlyc3RDaGlsZEVsZW1lbnQoInRyYWNrIik7Ci0rICAgIGVsZW1lbnQgPSBzb25nLmZpcnN0 Q2hpbGRFbGVtZW50KCAidHJhY2siICk7Ci0gICAgIG1fdXJsVHJhY2stPnNldFRyYWNrTnVtYmVy KCBlbGVtZW50LnRleHQoKS50b0ludCgpICk7Ci0gCi0tICAgIFFEb21FbGVtZW50IGFsYnVtRWxl bWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoImFsYnVtIik7Ci0tICAgIC8vbV91cmxBbGJ1 bUlkID0gYWxidW1FbGVtZW50LmF0dHJpYnV0ZSggImlkIiwgIjAiKS50b0ludCgpOwotKyAgICBR RG9tRWxlbWVudCBhbGJ1bUVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCAiYWxidW0i ICk7Ci0rICAgIG1fdXJsQWxidW1JZCA9IGFsYnVtRWxlbWVudC5hdHRyaWJ1dGUoICJpZCIsICIw IiApLnRvSW50KCk7Ci0gCi0tICAgIE1ldGE6OkFtcGFjaGVBbGJ1bSAqIGFsYnVtID0gbmV3IE1l dGE6OkFtcGFjaGVBbGJ1bSggYWxidW1FbGVtZW50LnRleHQoKSApOwotKyAgICBNZXRhOjpBbXBh Y2hlQWxidW0gKmFsYnVtID0gbmV3IE1ldGE6OkFtcGFjaGVBbGJ1bSggYWxidW1FbGVtZW50LnRl eHQoKSApOwotIAotLSAgICBRRG9tRWxlbWVudCBhcnRFbGVtZW50ID0gc29uZy5maXJzdENoaWxk RWxlbWVudCgiYXJ0Iik7Ci0rICAgIFFEb21FbGVtZW50IGFydEVsZW1lbnQgPSBzb25nLmZpcnN0 Q2hpbGRFbGVtZW50KCAiYXJ0IiApOwotICAgICBhbGJ1bS0+c2V0Q292ZXJVcmwoIGFydEVsZW1l bnQudGV4dCgpICk7Ci0gCi0gICAgIGFsYnVtLT5hZGRUcmFjayggdHJhY2tQdHIgKTsKLSAgICAg bV91cmxUcmFjay0+c2V0QWxidW1QdHIoIE1ldGE6OkFsYnVtUHRyKCBhbGJ1bSApICk7Ci0gCi0t ICAgIFFEb21FbGVtZW50IGFydGlzdEVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCJh cnRpc3QiKTsKLS0gICAgTWV0YTo6U2VydmljZUFydGlzdCAqIGFydGlzdCA9IG5ldyBNZXRhOjpT ZXJ2aWNlQXJ0aXN0KCBhcnRpc3RFbGVtZW50LnRleHQoKSApOwotKyAgICBRRG9tRWxlbWVudCBh cnRpc3RFbGVtZW50ID0gc29uZy5maXJzdENoaWxkRWxlbWVudCggImFydGlzdCIgKTsKLSsgICAg TWV0YTo6U2VydmljZUFydGlzdCAqYXJ0aXN0ID0gbmV3IE1ldGE6OlNlcnZpY2VBcnRpc3QoIGFy dGlzdEVsZW1lbnQudGV4dCgpICk7Ci0gCi0gICAgIE1ldGE6OkFydGlzdFB0ciBhcnRpc3RQdHIo IGFydGlzdCApOwotICAgICBtX3VybFRyYWNrLT5zZXRBcnRpc3QoIGFydGlzdFB0ciApOwotICAg ICBhbGJ1bS0+c2V0QWxidW1BcnRpc3QoIGFydGlzdFB0ciApOwotIH0KLSAKLS1BbXBhY2hlVHJh Y2tGb3JVcmxXb3JrZXI6OkFtcGFjaGVUcmFja0ZvclVybFdvcmtlcihjb25zdCBLVXJsICZ1cmws IE1ldGFQcm94eTo6VHJhY2tQdHIgdHJhY2ssIGNvbnN0IFFTdHJpbmcgJnNlcnZlciwgY29uc3Qg UVN0cmluZyAmc2Vzc2lvbklkLCBTZXJ2aWNlQmFzZSogc2VydmljZSkgOiBBbWFyb2s6OlRyYWNr Rm9yVXJsV29ya2VyKHVybCksIG1Qcm94eSh0cmFjayksIG1fc2VydmVyKHNlcnZlciksIG1fc2Vz c2lvbklkKHNlc3Npb25JZCksIG1fc2VydmljZShzZXJ2aWNlKQotK0FtcGFjaGVUcmFja0ZvclVy bFdvcmtlcjo6QW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCBjb25zdCBLVXJsICZ1cmwsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ldGFQcm94 eTo6VHJhY2tQdHIgdHJhY2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgJnNlcnZlciwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyAmc2Vzc2lv bklkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTZXJ2aWNlQmFzZSAqc2VydmljZSApCi0rICAgIDogQW1hcm9rOjpUcmFja0ZvclVybFdvcmtl ciggdXJsICkKLSsgICAgLCBtX3Byb3h5KCB0cmFjayApCi0rICAgICwgbV9zZXJ2ZXIoIHNlcnZl ciApCi0rICAgICwgbV9zZXNzaW9uSWQoIHNlc3Npb25JZCApCi0rICAgICwgbV9zZXJ2aWNlKCBz ZXJ2aWNlICkKLSB7Ci0gfQotIAotQEAgLTE1MCw4ICsxNTcsNiBAQCBBbXBhY2hlVHJhY2tGb3JV cmxXb3JrZXI6On5BbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIoKQotIHZvaWQKLSBBbXBhY2hlVHJh Y2tGb3JVcmxXb3JrZXI6OnJ1bigpCi0gewotLSAgICAvLyBERUJVR19CTE9DSzsKLS0KLSAgICAg bV91cmxUcmFjayA9IDA7Ci0gICAgIG1fdXJsQWxidW0gPSAwOwotICAgICBtX3VybEFydGlzdCA9 IDA7Ci1AQCAtMTYyLDkgKzE2Nyw5IEBAIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlcjo6cnVuKCkK LSAKLSAgICAgLy9zZW5kIHVybF90b19zb25nIHRvIEFtcGFjaGUKLSAKLS0gICAgUVN0cmluZyBy ZXF1ZXN0VXJsID0gUVN0cmluZyggIiUxL3NlcnZlci94bWwuc2VydmVyLnBocD9hY3Rpb249dXJs X3RvX3NvbmcmYXV0aD0lMiZ1cmw9JTMiKQotLSAgICAuIGFyZyggIG1fc2VydmVyLCAgbV9zZXNz aW9uSWQsICBRVXJsOjp0b1BlcmNlbnRFbmNvZGluZyggbVVybC51cmwoKSApICk7Ci0tICAgIC8v ICAgICBkZWJ1ZygpIDw8ICJyZXF1ZXN0IHVybDogIiA8PCByZXF1ZXN0VXJsOwotKyAgICBRU3Ry aW5nIHJlcXVlc3RVcmwgPQotKyAgICAgICAgICAgIFFTdHJpbmcoICIlMS9zZXJ2ZXIveG1sLnNl cnZlci5waHA/YWN0aW9uPXVybF90b19zb25nJmF1dGg9JTImdXJsPSUzIiApCi0rICAgICAgICAg ICAgICAgICAgICAuYXJnKCBtX3NlcnZlciwgbV9zZXNzaW9uSWQsIFFVcmw6OnRvUGVyY2VudEVu Y29kaW5nKCBtX3VybC51cmwoKSApICk7Ci0gCi0gICAgIFFOZXR3b3JrUmVxdWVzdCByZXEoIHJl cXVlc3RVcmwgKTsKLSAgICAgUU5ldHdvcmtSZXBseSAqcmVwbHkgPSBUaGU6Om5ldHdvcmtBY2Nl c3NNYW5hZ2VyKCktPmdldCggcmVxICk7Ci1AQCAtMTc4LDcgKzE4Myw3IEBAIEFtcGFjaGVUcmFj a0ZvclVybFdvcmtlcjo6cnVuKCkKLSAgICAgICAgIH0KLSAgICAgfQotICAgICBwYXJzZVRyYWNr KCByZXBseS0+cmVhZEFsbCgpICk7Ci0tICAgIG1UcmFjayA9IE1ldGE6OlRyYWNrUHRyKCBtX3Vy bFRyYWNrICk7Ci0tICAgIG1Qcm94eS0+dXBkYXRlVHJhY2soIG1UcmFjayApOwotKyAgICBtX3Ry YWNrID0gTWV0YTo6VHJhY2tQdHIoIG1fdXJsVHJhY2sgKTsKLSsgICAgbV9wcm94eS0+dXBkYXRl VHJhY2soIG1fdHJhY2sgKTsKLSAgICAgcmVwbHktPmRlbGV0ZUxhdGVyKCk7Ci0gfQoKZGlmZiAt LWdpdCBhL2FtYXJvay5zcGVjIGIvYW1hcm9rLnNwZWMKaW5kZXggMThmOWEzZi4uZDE5MWY5ZiAx MDA2NDQKLS0tIGEvYW1hcm9rLnNwZWMKKysrIGIvYW1hcm9rLnNwZWMKQEAgLTEsOCArMSw4IEBA CiAKIE5hbWU6ICAgIGFtYXJvawogU3VtbWFyeTogTWVkaWEgcGxheWVyCi1WZXJzaW9uOiAyLjUu MAotUmVsZWFzZTogOSV7P2Rpc3R9CitWZXJzaW9uOiAyLjUuOTAKK1JlbGVhc2U6IDElez9kaXN0 fQogCiAjIEtERSBlLlYuIG1heSBkZXRlcm1pbmUgdGhhdCBmdXR1cmUgR1BMIHZlcnNpb25zIGFy ZSBhY2NlcHRlZAogTGljZW5zZTogR1BMdjIgb3IgR1BMdjMKQEAgLTE3LDExICsxNyw2IEBAIFBh dGNoMDogIGFtYXJvay0yLjUuMC1vbmxpbmVkb2MucGF0Y2gKICNQYXRjaDUwOiBhbWFyb2stMi4y LjEuOTAtcXRzY3JpcHRfbm90X3JlcXVpcmVkLnBhdGNoCiAKICMjIHVwc3RyZWFtIHBhdGNoZXMK LSMgaHR0cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDEyMwotUGF0Y2gxMDA6 IGFtYXJvay0yLjUuMC1rZGU0OF9jb250ZXh0X3ZpZXcucGF0Y2ggCi0jIExvYWQgYWxsIHRyYWNr cyBmcm9tIFhTUEYgdXNpbmcgTWV0YVByb3h5LgotIyBodHRwczovL2J1Z3Mua2RlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9Mjk1MTk5Ci1QYXRjaDEwMTogYW1hcm9rLTIuNS4wLXByb3h5X2xvYWRpbmcu cGF0Y2ggCiAKIEJ1aWxkUmVxdWlyZXM6IGN1cmwtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6IGRlc2t0 b3AtZmlsZS11dGlscwpAQCAtOTIsOCArODcsNiBAQCBCdWlsZEFyY2g6IG5vYXJjaAogCiAlcGF0 Y2gwIC1wMSAtYiAub25saW5lZG9jCiAjcGF0Y2g1MCAtcDEgLWIgLnF0c2NyaXB0X25vdF9yZXF1 aXJlZAotJXBhdGNoMTAwIC1wMSAtYiAua2RlNDhfY29udGV4dF92aWV3Ci0lcGF0Y2gxMDEgLXAx IC1iIC5wcm94eV9sb2FkaW5nCiAKIAogJWJ1aWxkCkBAIC0xODMsNiArMTc2LDkgQEAgZmkKIAog CiAlY2hhbmdlbG9nCisqIFdlZCBNYXkgMzAgMjAxMiBSZXggRGlldGVyIDxyZGlldGVyQGZlZG9y YXByb2plY3Qub3JnPiAyLjUuOTAtMQorLSAyLjUuOTAKKwogKiBXZWQgTWFyIDIxIDIwMTIgUmV4 IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4gMi41LjAtOQogLSBuZXcgaXRlcmF0 aW9uIG9mIHByb3h5X2xvYWRpbmcgcGF0Y2ggKGtkZSMyOTUxOTkpCiAKCmRpZmYgLS1naXQgYS9z b3VyY2VzIGIvc291cmNlcwppbmRleCBlZDk2NzhlLi5lOGUyNzY0IDEwMDY0NAotLS0gYS9zb3Vy Y2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLWI3OTgzZWFhMzNlNDc3MTc2OWFlOWUzMzBj ODExOTk1ICBhbWFyb2stMi41LjAudGFyLmJ6MgorMTVmODRlMjI2NzU5OTU4ZmIzZTc2ZWJmNDM4 YzlmYzcgIGFtYXJvay0yLjUuOTAudGFyLmJ6Mgo=