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: - 20090923git snapshot Date: Mon, 06 Jul 2026 18:30:55 GMT Message-ID: <178336265533.1.24544008807803271.rpms-amarok-64b737e0ef4c@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10.2 X-Git-Rev: 64b737e0ef4cd288315a3d606a74b17f0f5d80d5 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMC4yCkNvbW1pdCA6IDY0YjczN2UwZWY0Y2QyODgzMTVhM2Q2MDZhNzRiMTdmMGY1 ZDgwZDUKQXV0aG9yIDogUmV4IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4KRGF0 ZSAgIDogMjAwOS0wOS0yNFQwMTozNDoxNyswMDowMApTdGF0cyAgOiArMTM1Ni8tNiBpbiAyIGZp bGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9hbWFyb2sv Yy82NGI3MzdlMGVmNGNkMjg4MzE1YTNkNjA2YTc0YjE3ZjBmNWQ4MGQ1P2JyYW5jaD1lcGVsMTAu MgoKTG9nOgotIDIwMDkwOTIzZ2l0IHNuYXBzaG90CgotLS0KZGlmZiAtLWdpdCBhL2FtYXJvay5z cGVjIGIvYW1hcm9rLnNwZWMKaW5kZXggYWVlZTNlMy4uYzdhYjhjYSAxMDA2NDQKLS0tIGEvYW1h cm9rLnNwZWMKKysrIGIvYW1hcm9rLnNwZWMKQEAgLTEsMTcgKzEsMjMgQEAKIAorJWRlZmluZSBz bmFwIDIwMDkwOTIzZ2l0CisKIE5hbWU6ICAgIGFtYXJvawogU3VtbWFyeTogTWVkaWEgcGxheWVy CiBWZXJzaW9uOiAyLjEuOTAKLVJlbGVhc2U6IDElez9kaXN0fQorUmVsZWFzZTogMi4le3NuYXB9 JXs/ZGlzdH0KIAogR3JvdXA6IAkgQXBwbGljYXRpb25zL011bHRpbWVkaWEKIExpY2Vuc2U6IEdQ THYyKwogVXJsOiAgICAgaHR0cDovL2FtYXJvay5rZGUub3JnLwogU291cmNlMDogaHR0cDovL2Rv d25sb2FkLmtkZS5vcmcvdW5zdGFibGUvYW1hcm9rLyV7dmVyc2lvbn0vc3JjL2FtYXJvay0le3Zl cnNpb259LnRhci5iejIKKyNTb3VyY2UwOiAgYW1hcm9rLSV7dmVyc2lvbn0tJXtzbmFwfS50YXIu YnoyCiBCdWlsZFJvb3Q6ICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9 LXJvb3QtJSgle19faWRfdX0gLW4pCiAKIFBhdGNoNTA6IGFtYXJvay0yLjAuOTAtcXRzY3JpcHRf bm90X3JlcXVpcmVkLnBhdGNoCiAKKyMgbW9zdGx5IGE6ICBnaXQgZGlmZiB2Mi4xLjkwCitQYXRj aDEwMDogcG9zdC0yLjEuOTAtJXtzbmFwfS5wYXRjaCAKKwogQnVpbGRSZXF1aXJlczogY3VybC1k ZXZlbAogQnVpbGRSZXF1aXJlczogZGVza3RvcC1maWxlLXV0aWxzCiBCdWlsZFJlcXVpcmVzOiBn ZXR0ZXh0CkBAIC03Miw5ICs3OCwxMCBAQCBPYnNvbGV0ZXM6IGFtYXJvay11dGlsaXRpZXMgPCAy LjAuOTYKIAogCiAlcHJlcAotJXNldHVwIC1xCislc2V0dXAgLXEgCiAKICVwYXRjaDUwIC1wMSAt YiAucXRzY3JpcHRfbm90X3JlcXVpcmVkCislcGF0Y2gxMDAgLXAxIC1iIC4yMDA5MDkyM2dpdAog CiAKICVidWlsZApAQCAtOTEsMTAgKzk4LDEwIEBAIHJtIC1yZiAle2J1aWxkcm9vdH0KIAogbWFr ZSBpbnN0YWxsIERFU1RESVI9JXtidWlsZHJvb3R9IC1DICV7X3RhcmdldF9wbGF0Zm9ybX0KIAot JWZpbmRfbGFuZyBhbWFyb2sKLSVmaW5kX2xhbmcgYW1hcm9rY29sbGVjdGlvbnNjYW5uZXJfcXQK LSVmaW5kX2xhbmcgYW1hcm9rcGtnCi0lZmluZF9sYW5nIGFtYXJva19zY3JpcHRlbmdpbmVfcXNj cmlwdAorJWZpbmRfbGFuZyBhbWFyb2sgCislZmluZF9sYW5nIGFtYXJva2NvbGxlY3Rpb25zY2Fu bmVyX3F0IAorJWZpbmRfbGFuZyBhbWFyb2twa2cgCislZmluZF9sYW5nIGFtYXJva19zY3JpcHRl bmdpbmVfcXNjcmlwdCAKIGNhdCBhbWFyb2twa2cubGFuZyA+PiBhbWFyb2subGFuZwogY2F0IGFt YXJva19zY3JpcHRlbmdpbmVfcXNjcmlwdC5sYW5nID4+IGFtYXJvay5sYW5nCiAKQEAgLTE2Niw2 ICsxNzMsOSBAQCBmaQogCiAKICVjaGFuZ2Vsb2cKKyogV2VkIFNlcCAyMyAyMDA5IFJleCBEaWV0 ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+IDIuMS45MC0yLjIwMDkwOTIzZ2l0CistIDIw MDkwOTIzZ2l0IHNuYXBzaG90CisKICogTW9uIFNlcCAyMSAyMDA5IFJleCBEaWV0ZXIgPHJkaWV0 ZXJAZmVkb3JhcHJvamVjdC5vcmc+IDIuMS45MC0xCiAtIGFtYXJvay0yLjEuOTAgKDIuMnJjMSkK IAoKZGlmZiAtLWdpdCBhL3Bvc3QtMi4xLjkwLTIwMDkwOTIzZ2l0LnBhdGNoIGIvcG9zdC0yLjEu OTAtMjAwOTA5MjNnaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZjdiMTQ0ZQotLS0gL2Rldi9udWxsCisrKyBiL3Bvc3QtMi4xLjkwLTIwMDkwOTIzZ2l0LnBhdGNo CkBAIC0wLDAgKzEsMTM0MCBAQAorZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwor aW5kZXggMmQ5NzU1OS4uNmE0ZTMwNyAxMDA2NDQKKy0tLSBhL0NoYW5nZUxvZworKysrIGIvQ2hh bmdlTG9nCitAQCAtMiw2ICsyLDIwIEBAIEFtYXJvayBDaGFuZ2VMb2cKKyA9PT09PT09PT09PT09 PT09CisgKEMpIDIwMDItMjAwOSB0aGUgQW1hcm9rIGF1dGhvcnMuCisgCisrVkVSU0lPTiAyLjIK KysgIENIQU5HRVM6CisrICAgICogTW9yZSBjb2xsZWN0aW9uIHNjYW5uaW5nIHNwZWVkdXBzLgor KworKyAgQlVHRklYRVM6CisrICAgICogRml4IHBob3RvcyBhcHBsZXQgbm90IHdvcmtpbmcgYWZ0 ZXIgcmVzdW1pbmcgcGxheWJhY2suIChCUiAyMDY4MjkpCisrICAgICogRml4IHJlZ3Jlc3Npb24g d2hlcmUgdGhlIGdlbnJlIGZpZWxkIGluIHRoZSBUYWcgRGlhbG9nIHdvdWxkIHNob3cgdGhlCisr ICAgICAgY29tcG9zZXIgb2YgdGhlIHRyYWNrLiAoQlIgMjA4MjU1KQorKyAgICAqIERvbid0IHJl c2h1ZmZsZSB0aGUgcGxheWxpc3QgZXZlcnkgdGltZSB0aGUgYWN0aXZlIHRyYWNrIGNoYW5nZXMg d2hlbgorKyAgICAqIHVzaW5nIGEgcmFuZG9tIHNvcnQgb3JkZXIuCisrICAgICogRml4IHRoZSBW YXJpb3VzIEFydGlzdCBub2RlIHNvbWV0aW1lcyBiZWluZyBzaG93biBpbiB0aGUgQ29sbGVjdGlv bgorKyAgICAgIEJyb3dzZXIgd2l0aCBub3RoaW5nIHVuZGVybmVhdGggaXQgKG9yIGFuIGVtcHR5 ICJVbmtub3duIiBhbGJ1bSkuCisrICAgICogRml4IHNvbWUgdHJhY2tzJyB0YWdzIG5vdCBiZWlu ZyBzYXZlZCBjb3JyZWN0bHkgdG8gdGhlIGRhdGFiYXNlLgorKyAgICAgIChCUiAyMDIwMjEpCisg CisgVkVSU0lPTiAyLjItcmMxCisgICBGRUFUVVJFUzoKK0BAIC0yMyw2ICszNyw3IEBAIFZFUlNJ T04gMi4yLXJjMQorICAgICAqIEFkZGVkICJMb2NrIGxheW91dCIgb3B0aW9uIHRvIHRoZSBtYWlu IHdpbmRvdydzIGNvbnRleHQgbWVudS4gICAgCisgCisgICBCVUdGSVhFUzoKKysgICAgKiBGaXgg d2lraXBlZGlhIGVuZ2luZSByZWZpbmVkIHNlYXJjaCBicm9rZW4uIChCUiAyMDgwMjQpCisgICAg ICogQ3Jhc2ggaW4gUVRleHRDb2RlYyB3aGlsZSBzY2FubmluZyBjb2xsZWN0aW9uIGhhcyBiZWVu IGZpeGVkLgorICAgICAgIEFwcGFyZW50bHkuIChCUiAxOTE0NDcpCisgICAgICogQSBkaWFsb2cg d2l0aCAiQ2FuIG5vdCB3cml0ZSBwbGF5bGlzdCAoLykiIHdhcyBkaXNwbGF5ZWQgd2hlbiB1c2lu ZworZGlmZiAtLWdpdCBhL3NyYy9jb2xsZWN0aW9uL2lwaG9uZW9zL2FtYXJva19jb2xsZWN0aW9u LWlwaG9uZW9zY29sbGVjdGlvbi5kZXNrdG9wIGIvc3JjL2NvbGxlY3Rpb24vaXBob25lb3MvYW1h cm9rX2NvbGxlY3Rpb24taXBob25lb3Njb2xsZWN0aW9uLmRlc2t0b3AKK2luZGV4IDgwMzk2ZWYu LjM3M2Q3MWMgMTAwNjQ0CistLS0gYS9zcmMvY29sbGVjdGlvbi9pcGhvbmVvcy9hbWFyb2tfY29s bGVjdGlvbi1pcGhvbmVvc2NvbGxlY3Rpb24uZGVza3RvcAorKysrIGIvc3JjL2NvbGxlY3Rpb24v aXBob25lb3MvYW1hcm9rX2NvbGxlY3Rpb24taXBob25lb3Njb2xsZWN0aW9uLmRlc2t0b3AKK0BA IC0xNyw2ICsxNyw3IEBAIE5hbWVbbm5dPVNrcml2ZXZlcm5hIHNhbWxpbmcgZm9yIGlQaG9uZSBP UyAzLjAKKyBOYW1lW3BsXT1Lb2xla2NqYSB0eWxrby1kby1vZGN6eXR1IGlQaG9uZSBPUyAzLjAK KyBOYW1lW3B0XT1Db2xlY8Onw6NvIEFwZW5hcyBwYXJhIExlaXR1cmEgZG8gaVBob25lIE9TIDMu MAorIE5hbWVbcHRfQlJdPUNvbGXDp8OjbyBTb21lbnRlIHBhcmEgTGVpdHVyYSBkbyBpUGhvbmUg T1MgMy4wCisrTmFtZVtydV090JrQvtC70LvQtdC60YbQuNGPIGlQaG9uZSBPUyAzLjAgKNGC0L7Q u9GM0LrQviDQtNC70Y8g0YfRgtC10L3QuNGPKQorIE5hbWVbc3JdPdCX0LHQuNGA0LrQsCDQmOKA kdGE0L7QvSDQntCh4oCR0LAgMy4wICAo0YHQsNC80L4g0LfQsCDRh9C40YLQsNGa0LUpCisgTmFt ZVtzckBsYXRpbl09WmJpcmthIGlQaG9uZU9T4oCRYSAzLjAgIChzYW1vIHphIMSNaXRhbmplKQor IE5hbWVbc3ZdPWlQaG9uZSBPUyAzLjAgc2tyaXZza3lkZGFkIHNhbWxpbmcKK0BAIC00MCw2ICs0 MSw3IEBAIENvbW1lbnRbbm5dPUFtYXJvay1zYW1saW5nc3RpbGxlZ2cgZm9yIGlQaG9uZSBPUyAz LjAKKyBDb21tZW50W3BsXT1XdHljemthIGtvbGVrY2ppIHR5bGtvLWRvLW9kY3p5dHUgaVBob25l IE9TIDMuMCBkbGEgQW1hcm9rYQorIENvbW1lbnRbcHRdPVVtICdwbHVnaW4nIGRhIGNvbGVjw6fD o28sIGFwZW5hcyBwYXJhIGxlaXR1cmEsIGRvIGlQaG9uZSBPUyAzLjAgcGFyYSBvIEFtYXJvawor IENvbW1lbnRbcHRfQlJdPVBsdWdpbiBkZSBjb2xlw6fDo28gc29tZW50ZSBwYXJhIExlaXR1cmEg ZG8gaVBob25lIE9TIDMuMCwgcGFyYSBvIEFtYXJvaworK0NvbW1lbnRbcnVdPdCc0L7QtNGD0LvR jCDQutC+0LvQu9C10LrRhtC40Y8gaVBob25lIE9TIDMuMCAo0YLQvtC70YzQutC+INC00LvRjyDR h9GC0LXQvdC40Y8pCisgQ29tbWVudFtzcl090J/RgNC40LrRmdGD0YfQsNC6INC30LHQuNGA0LrQ tSDQvdCwINCY4oCR0YTQvtC9INCe0KHigJHRgyAzLjAgKNGB0LDQvNC+INC30LAg0YfQuNGC0LDR mtC1KSDQt9CwINCQ0LzQsNGA0L7QugorIENvbW1lbnRbc3JAbGF0aW5dPVByaWtsanXEjWFrIHpi aXJrZSBuYSBpUGhvbmVPU+KAkXUgMy4wIChzYW1vIHphIMSNaXRhbmplKSB6YSBBbWFyb2sKKyBD b21tZW50W3N2XT1JbnN0aWNrc3Byb2dyYW0gbWVkIGlQaG9uZSBPUyAzLjAgc2tyaXZza3lkZGFk IHNhbWxpbmcgZsO2ciBBbWFyb2sKK2RpZmYgLS1naXQgYS9zcmMvY29sbGVjdGlvbi9pcG9kY29s bGVjdGlvbi9hbWFyb2tfY29sbGVjdGlvbi1pcG9kY29sbGVjdGlvbi5kZXNrdG9wIGIvc3JjL2Nv bGxlY3Rpb24vaXBvZGNvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24taXBvZGNvbGxlY3Rpb24u ZGVza3RvcAoraW5kZXggNGZkYTYxNy4uNDhjNjQwYSAxMDA2NDQKKy0tLSBhL3NyYy9jb2xsZWN0 aW9uL2lwb2Rjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9uLWlwb2Rjb2xsZWN0aW9uLmRlc2t0 b3AKKysrKyBiL3NyYy9jb2xsZWN0aW9uL2lwb2Rjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9u LWlwb2Rjb2xsZWN0aW9uLmRlc2t0b3AKK0BAIC0zNiw3ICszNiw3IEBAIE5hbWVbcGxdPUtvbGVr Y2phIGlQb2QKKyBOYW1lW3B0XT1Db2xlY8Onw6NvIGRvIElQb2QKKyBOYW1lW3B0X0JSXT1Db2xl w6fDo28gaVBvZAorIE5hbWVbcm9dPUNvbGVjyJtpZSBJcG9kCistTmFtZVtydV090JrQvtC70LvQ tdC60YbQuNGPIElwb2QKKytOYW1lW3J1XT3QmtC+0LvQu9C10LrRhtC40Y8gaVBvZAorIE5hbWVb c2xdPVpiaXJrYSBpUG9kCisgTmFtZVtzcl090JfQsdC40YDQutCwINC44oCR0L/QvtC00LAKKyBO YW1lW3NyQGxhdGluXT1aYmlya2EgaVBvZGEKK0BAIC04NCw3ICs4NCw3IEBAIENvbW1lbnRbcGxd PVd0eWN6a2Ega29sZWtjamkgaVBvZGEgZGxhIEFtYXJva2EKKyBDb21tZW50W3B0XT1VbSAncGx1 Z2luJyBkYSBjb2xlY8Onw6NvIGRvIElQb2QgcGFyYSBvIEFtYXJvaworIENvbW1lbnRbcHRfQlJd PVBsdWctaW4gZGUgY29sZcOnw6NvIGlQb2QgcGFyYSBvIEFtYXJvaworIENvbW1lbnRbcm9dPU1v ZHVsIGRlIGNvbGVjyJtpZSBJcG9kIHBlbnRydSBBbWFyb2sKKy1Db21tZW50W3J1XT3QnNC+0LTR g9C70Ywg0LrQvtC70LvQtdC60YbQuNC4IElwb2Qg0LTQu9GPIEFtYXJvaworK0NvbW1lbnRbcnVd PdCc0L7QtNGD0LvRjCDQutC+0LvQu9C10LrRhtC40LggaVBvZCDQtNC70Y8gQW1hcm9rCisgQ29t bWVudFtzbF09VnN0YXZlayB6YSB6Ymlya28gaVBvZCB6YSBBbWFyb2sKKyBDb21tZW50W3NyXT3Q n9GA0LjQutGZ0YPRh9Cw0Log0LfQsdC40YDQutC1INC90LAg0LjigJHQv9C+0LTRgyDQt9CwINCQ 0LzQsNGA0L7QugorIENvbW1lbnRbc3JAbGF0aW5dPVByaWtsanXEjWFrIHpiaXJrZSBuYSBpUG9k dSB6YSBBbWFyb2sKK2RpZmYgLS1naXQgYS9zcmMvY29sbGVjdGlvbi9teXNxbGVjb2xsZWN0aW9u L2FtYXJva19jb2xsZWN0aW9uLW15c3FsZWNvbGxlY3Rpb24uZGVza3RvcCBiL3NyYy9jb2xsZWN0 aW9uL215c3FsZWNvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24tbXlzcWxlY29sbGVjdGlvbi5k ZXNrdG9wCitpbmRleCBjM2FlMTJkLi4xZGVjZWJiIDEwMDY0NAorLS0tIGEvc3JjL2NvbGxlY3Rp b24vbXlzcWxlY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlvbi1teXNxbGVjb2xsZWN0aW9uLmRl c2t0b3AKKysrKyBiL3NyYy9jb2xsZWN0aW9uL215c3FsZWNvbGxlY3Rpb24vYW1hcm9rX2NvbGxl Y3Rpb24tbXlzcWxlY29sbGVjdGlvbi5kZXNrdG9wCitAQCAtMTgsNiArMTgsNyBAQCBOYW1lW25u XT1NeVNRTGUtc2FtbGluZworIE5hbWVbcGxdPUtvbGVrY2phIE15U1FMZQorIE5hbWVbcHRdPUNv bGVjw6fDo28gZGUgTXlTUUxlCisgTmFtZVtwdF9CUl09Q29sZcOnw6NvIE15U1FMZQorK05hbWVb cnVdPdCa0L7Qu9C70LXQutGG0LjRjyBNeVNRTGUKKyBOYW1lW3NyXT3Ql9Cx0LjRgNC60LAg0L3Q sCDQnNCw0ZjQodCa0YPQm2XigJHRgworIE5hbWVbc3JAbGF0aW5dPVpiaXJrYSBuYSBNeVNRTGXi gJF1CisgTmFtZVtzdl09TXlTUUwtc2FtbGluZworZGlmZiAtLWdpdCBhL3NyYy9jb2xsZWN0aW9u L215c3Fsc2VydmVyY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlvbi1teXNxbHNlcnZlcmNvbGxl Y3Rpb24uZGVza3RvcCBiL3NyYy9jb2xsZWN0aW9uL215c3Fsc2VydmVyY29sbGVjdGlvbi9hbWFy b2tfY29sbGVjdGlvbi1teXNxbHNlcnZlcmNvbGxlY3Rpb24uZGVza3RvcAoraW5kZXggMzk1N2Q2 NS4uZDI3MjZkMiAxMDA2NDQKKy0tLSBhL3NyYy9jb2xsZWN0aW9uL215c3Fsc2VydmVyY29sbGVj dGlvbi9hbWFyb2tfY29sbGVjdGlvbi1teXNxbHNlcnZlcmNvbGxlY3Rpb24uZGVza3RvcAorKysr IGIvc3JjL2NvbGxlY3Rpb24vbXlzcWxzZXJ2ZXJjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9u LW15c3Fsc2VydmVyY29sbGVjdGlvbi5kZXNrdG9wCitAQCAtMTgsNiArMTgsNyBAQCBOYW1lW25u XT1NeVNRTFNlcnZlci1zYW1saW5nCisgTmFtZVtwbF09S29sZWtjamEgTXlTUUxTZXJ2ZXIKKyBO YW1lW3B0XT1Db2xlY8Onw6NvIGRlIE15U1FMIChTZXJ2aWRvcikKKyBOYW1lW3B0X0JSXT1Db2xl w6fDo28gTXlTUUxTZXJ2ZXIKKytOYW1lW3J1XT3QmtC+0LvQu9C10LrRhtC40Y8gTXlTUUxTZXJ2 ZXIKKyBOYW1lW3NyXT3Ql9Cx0LjRgNC60LAg0L3QsCDRgdC10YDQstC10YDRgyDQnNCw0ZjQodCa 0YPQm+KAkdCwCisgTmFtZVtzckBsYXRpbl09WmJpcmthIG5hIHNlcnZlcnUgTXlTUUzigJFhCisg TmFtZVtzdl09TXlTUUxTZXJ2ZXItc2FtbGluZworZGlmZiAtLWdpdCBhL3NyYy9jb2xsZWN0aW9u L3NxbGNvbGxlY3Rpb24vU2NhblJlc3VsdFByb2Nlc3Nvci5jcHAgYi9zcmMvY29sbGVjdGlvbi9z cWxjb2xsZWN0aW9uL1NjYW5SZXN1bHRQcm9jZXNzb3IuY3BwCitpbmRleCBkY2M0NWY4Li5jOTY5 NGY0IDEwMDY0NAorLS0tIGEvc3JjL2NvbGxlY3Rpb24vc3FsY29sbGVjdGlvbi9TY2FuUmVzdWx0 UHJvY2Vzc29yLmNwcAorKysrIGIvc3JjL2NvbGxlY3Rpb24vc3FsY29sbGVjdGlvbi9TY2FuUmVz dWx0UHJvY2Vzc29yLmNwcAorQEAgLTExNCw3ICsxMTQsNyBAQCBTY2FuUmVzdWx0UHJvY2Vzc29y Ojpkb25lV2l0aEltYWdlcygpCisgICAgICAgICBpZigga2V5LmZpcnN0LmlzRW1wdHkoKSB8fCBr ZXkuc2Vjb25kLmlzRW1wdHkoKSApCisgICAgICAgICAgICAgY29udGludWU7CisgCistICAgICAg ICBpbnQgYXJ0aXN0ID0gYXJ0aXN0SWQoIGtleS5maXJzdCApOworKyAgICAgICAgaW50IGFydGlz dCA9IGdlbmVyaWNJZCggImFydGlzdHMiLCBrZXkuZmlyc3QgKTsKKyAgICAgICAgIGludCBhbGJ1 bSAgPSBhbGJ1bUlkKCBrZXkuc2Vjb25kLCBhcnRpc3QgKTsKKyAKKyAgICAgICAgIC8vIFdpbGwg YXV0b21hdGljYWxseSBhZGQgdGhlIGltYWdlIHBhdGggdG8gdGhlIGRhdGFiYXNlIGlmIG5lZWRl ZAorQEAgLTI2MSw3ICsyNjEsNyBAQCBTY2FuUmVzdWx0UHJvY2Vzc29yOjpwcm9jZXNzRGlyZWN0 b3J5KCBjb25zdCBRTGlzdDxRVmFyaWFudE1hcCA+ICZkYXRhICkKKyAgICAgeworICAgICAgICAg Zm9yZWFjaCggY29uc3QgUVZhcmlhbnRNYXAgJnJvdywgZGF0YSApCisgICAgICAgICB7CistICAg ICAgICAgICAgaW50IGFydGlzdCA9IGFydGlzdElkKCByb3cudmFsdWUoIEZpZWxkOjpBUlRJU1Qg KS50b1N0cmluZygpICk7CisrICAgICAgICAgICAgaW50IGFydGlzdCA9IGdlbmVyaWNJZCggImFy dGlzdHMiLCByb3cudmFsdWUoIEZpZWxkOjpBUlRJU1QgKS50b1N0cmluZygpICk7CisgICAgICAg ICAgICAgYWRkVHJhY2soIHJvdywgYXJ0aXN0ICk7CisgICAgICAgICB9CisgICAgIH0KK0BAIC0y NjksNyArMjY5LDcgQEAgU2NhblJlc3VsdFByb2Nlc3Nvcjo6cHJvY2Vzc0RpcmVjdG9yeSggY29u c3QgUUxpc3Q8UVZhcmlhbnRNYXAgPiAmZGF0YSApCisgICAgIHsKKyAgICAgICAgIFFTdHJpbmcg YWxidW1BcnRpc3QgPSBmaW5kQWxidW1BcnRpc3QoIGFydGlzdHMsIGRhdGEuY291bnQoKSApOwor ICAgICAgICAgLy9hbiBlbXB0eSBzdHJpbmcgbWVhbnMgdGhhdCBubyBhbGJ1bWFydGlzdCB3YXMg Zm91bmQKKy0gICAgICAgIGludCBhcnRpc3QgPSBhbGJ1bUFydGlzdC5pc0VtcHR5KCkgPyAwIDog YXJ0aXN0SWQoIGFsYnVtQXJ0aXN0ICk7CisrICAgICAgICBpbnQgYXJ0aXN0ID0gYWxidW1BcnRp c3QuaXNFbXB0eSgpID8gMCA6IGdlbmVyaWNJZCggImFydGlzdHMiLCBhbGJ1bUFydGlzdCApOwor IAorICAgICAgICAgZGVidWcoKSA8PCAiYWxidW1hcnRpc3QgIiA8PCBhbGJ1bUFydGlzdCA8PCAi Zm9yIGFydGlzdHMiIDw8IGFydGlzdHM7CisgICAgICAgICBmb3JlYWNoKCBjb25zdCBRVmFyaWFu dE1hcCAmcm93LCBkYXRhICkKK0BAIC0zODMsMzcgKzM4MywyMyBAQCBTY2FuUmVzdWx0UHJvY2Vz c29yOjphZGRUcmFjayggY29uc3QgUVZhcmlhbnRNYXAgJnRyYWNrRGF0YSwgaW50IGFsYnVtQXJ0 aXN0SWQgKQorICAgICB9CisgCisgICAgIGlmKCBkaXIuY291bnQoKSA9PSAxICkKKy0gICAgewor ICAgICAgICAgY29tcGlsYXRpb25JZCA9IGNoZWNrRXhpc3RpbmdBbGJ1bXMoIGFsYnVtTmFtZSAp OworLSAgICB9CisgCistICAgIGlmKCAwID09IGNvbXBpbGF0aW9uSWQgKQorLSAgICB7CistICAg ICAgICBhbGJ1bSA9IGFsYnVtSWQoIGFsYnVtTmFtZSwgYWxidW1BcnRpc3RJZCApOworLSAgICB9 CisrICAgIC8vcnVuIGEgc2luZ2xlIHF1ZXJ5IHRvIGZldGNoIHRoZXNlIGF0IG9uY2UsIHRvIHNh dmUgdGltZQorKyAgICAvL3RoZW4gdmFsdWVzIHdpbGwgYmUgY2FjaGVkIGluIGxvY2FsIG1hcHMs IHNvIGNhbiB1c2UgdGhlIHNhbWUgY2FsbHMgYmVsb3cKKysgICAgZGF0YWJhc2VJZEZldGNoKCB0 cmFja0RhdGEudmFsdWUoIEZpZWxkOjpBUlRJU1QgKS50b1N0cmluZygpLAorKyAgICAgICAgICAg ICAgICAgICAgIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkdFTlJFICkudG9TdHJpbmcoKSwKKysg ICAgICAgICAgICAgICAgICAgICB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpDT01QT1NFUiApLnRv U3RyaW5nKCksCisrICAgICAgICAgICAgICAgICAgICAgdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6 WUVBUiApLnRvU3RyaW5nKCksCisrICAgICAgICAgICAgICAgICAgICAgYWxidW1OYW1lLCBhbGJ1 bUFydGlzdElkLCBjb21waWxhdGlvbklkICk7CisgCistICAgIGJvb2wgbmVlZFRvUXVlcnkgPSBm YWxzZTsKKy0gICAgaWYoICFtX2FydGlzdHMuY29udGFpbnMoIHRyYWNrRGF0YS52YWx1ZSggRmll bGQ6OkFSVElTVCApLnRvU3RyaW5nKCkgKSB8fAorLSAgICAgICAgIW1fZ2VucmUuY29udGFpbnMo IHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkdFTlJFICkudG9TdHJpbmcoKSApICB8fAorLSAgICAg ICAgIW1fY29tcG9zZXIuY29udGFpbnMoIHRyYWNrRGF0YS52YWx1ZSggRmllbGQ6OkNPTVBPU0VS ICkudG9TdHJpbmcoKSApIHx8CistICAgICAgICAhbV95ZWFyLmNvbnRhaW5zKCB0cmFja0RhdGEu dmFsdWUoIEZpZWxkOjpZRUFSICkudG9TdHJpbmcoKSApICkKKy0gICAgICAgICAgICBuZWVkVG9R dWVyeSA9IHRydWU7CisrICAgIGludCBhcnRpc3QgPSBnZW5lcmljSWQoICJhcnRpc3RzIiwgdHJh Y2tEYXRhLnZhbHVlKCBGaWVsZDo6QVJUSVNUICkudG9TdHJpbmcoKSApOworKyAgICBpbnQgZ2Vu cmUgPSBnZW5lcmljSWQoICJnZW5yZXMiLCB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpHRU5SRSAp LnRvU3RyaW5nKCkgKTsKKysgICAgaW50IGNvbXBvc2VyID0gZ2VuZXJpY0lkKCAiY29tcG9zZXJz IiwgdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6Q09NUE9TRVIgKS50b1N0cmluZygpICk7CisrICAg IGludCB5ZWFyID0gZ2VuZXJpY0lkKCAieWVhcnMiLCB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpZ RUFSICkudG9TdHJpbmcoKSApOworIAorLSAgICBpZiggbmVlZFRvUXVlcnkgKQorLSAgICB7Cist ICAgICAgICAvL3J1biBhIHNpbmdsZSBxdWVyeSB0byBmZXRjaCB0aGVzZSBhdCBvbmNlLCB0byBz YXZlIHRpbWUKKy0gICAgICAgIC8vdGhlbiB2YWx1ZXMgd2lsbCBiZSBjYWNoZWQgaW4gbG9jYWwg bWFwcywgc28gY2FuIHVzZSB0aGUgc2FtZSBjYWxscyBiZWxvdworLSAgICAgICAgZGF0YWJhc2VJ ZEZldGNoKCB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpBUlRJU1QgKS50b1N0cmluZygpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpHRU5SRSApLnRv U3RyaW5nKCksCistICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRGF0YS52YWx1ZSggRmll bGQ6OkNPTVBPU0VSICkudG9TdHJpbmcoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgdHJh Y2tEYXRhLnZhbHVlKCBGaWVsZDo6WUVBUiApLnRvU3RyaW5nKCksCistICAgICAgICAgICAgICAg ICAgICAgICAgIGFsYnVtTmFtZSwgYWxidW1BcnRpc3RJZCApOworLSAgICB9CistCistICAgIGlu dCBhcnRpc3QgPSBhcnRpc3RJZCggdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6QVJUSVNUICkudG9T dHJpbmcoKSApOworLSAgICBpbnQgZ2VucmUgPSBnZW5yZUlkKCB0cmFja0RhdGEudmFsdWUoIEZp ZWxkOjpHRU5SRSApLnRvU3RyaW5nKCkgKTsKKy0gICAgaW50IGNvbXBvc2VyID0gY29tcG9zZXJJ ZCggdHJhY2tEYXRhLnZhbHVlKCBGaWVsZDo6Q09NUE9TRVIgKS50b1N0cmluZygpICk7CistICAg IGludCB5ZWFyID0geWVhcklkKCB0cmFja0RhdGEudmFsdWUoIEZpZWxkOjpZRUFSICkudG9TdHJp bmcoKSApOworKyAgICBpZiggIWNvbXBpbGF0aW9uSWQgKQorKyAgICAgICAgYWxidW0gPSBhbGJ1 bUlkKCBhbGJ1bU5hbWUsIGFsYnVtQXJ0aXN0SWQgKTsKKyAKKyAgICAgUVN0cmluZyB1aWQgPSB0 cmFja0RhdGEudmFsdWUoIEZpZWxkOjpVTklRVUVJRCApLnRvU3RyaW5nKCk7CisgCitAQCAtNDcz LDEzMSArNDU5LDg2IEBAIFNjYW5SZXN1bHRQcm9jZXNzb3I6OmFkZFRyYWNrKCBjb25zdCBRVmFy aWFudE1hcCAmdHJhY2tEYXRhLCBpbnQgYWxidW1BcnRpc3RJZCApCisgfQorIAorIGludAorLVNj YW5SZXN1bHRQcm9jZXNzb3I6OmFydGlzdElkKCBjb25zdCBRU3RyaW5nICZhcnRpc3QgKQorK1Nj YW5SZXN1bHRQcm9jZXNzb3I6OmdlbmVyaWNJZCggY29uc3QgUVN0cmluZyAma2V5LCBjb25zdCBR U3RyaW5nICZ2YWx1ZSApCisgeworLSAgICBpZiggbV9hcnRpc3RzLmNvbnRhaW5zKCBhcnRpc3Qg KSApCistICAgICAgICByZXR1cm4gbV9hcnRpc3RzLnZhbHVlKCBhcnRpc3QgKTsKKy0gICAgUVN0 cmluZyBxdWVyeSA9IFFTdHJpbmcoICJTRUxFQ1QgaWQgRlJPTSBhcnRpc3RzX3RlbXAgV0hFUkUg bmFtZSA9ICclMSc7IiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGFydGlzdCApICk7Cist ICAgIFFTdHJpbmdMaXN0IHJlcyA9IG1fY29sbGVjdGlvbi0+cXVlcnkoIHF1ZXJ5ICk7CistICAg IGludCBpZCA9IDA7CistICAgIGlmKCByZXMuaXNFbXB0eSgpICkKKy0gICAgICAgIGlkID0gYXJ0 aXN0SW5zZXJ0KCBhcnRpc3QgKTsKKysgICAgUU1hcDxRU3RyaW5nLCBpbnQ+ICpjdXJyTWFwOwor KyAgICBpZigga2V5ID09ICJhcnRpc3RzIiApCisrICAgICAgICBjdXJyTWFwID0gJm1fYXJ0aXN0 czsKKysgICAgZWxzZSBpZigga2V5ID09ICJnZW5yZXMiICkKKysgICAgICAgIGN1cnJNYXAgPSAm bV9nZW5yZXM7CisrICAgIGVsc2UgaWYoIGtleSA9PSAieWVhcnMiICkKKysgICAgICAgIGN1cnJN YXAgPSAmbV95ZWFyczsKKysgICAgZWxzZSBpZigga2V5ID09ICJjb21wb3NlcnMiICkKKysgICAg ICAgIGN1cnJNYXAgPSAmbV9jb21wb3NlcnM7CisgICAgIGVsc2UKKy0gICAgICAgIGlkID0gcmVz WzBdLnRvSW50KCk7CistICAgIG1fYXJ0aXN0cy5pbnNlcnQoIGFydGlzdCwgaWQgKTsKKy0gICAg cmV0dXJuIGlkOworLX0KKy0KKy1pbnQKKy1TY2FuUmVzdWx0UHJvY2Vzc29yOjphcnRpc3RJbnNl cnQoIGNvbnN0IFFTdHJpbmcgJmFydGlzdCApCisteworLSAgICBRU3RyaW5nIGluc2VydCA9IFFT dHJpbmcoICJJTlNFUlQgSU5UTyBhcnRpc3RzX3RlbXAoIG5hbWUgKSBWQUxVRVMgKCclMScpOyIg KS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBhcnRpc3QgKSApOworLSAgICBpbnQgaWQgPSBt X2NvbGxlY3Rpb24tPmluc2VydCggaW5zZXJ0LCAiYXJ0aXN0c190ZW1wIiApOworLSAgICByZXR1 cm4gaWQ7CistfQorLQorLWludAorLVNjYW5SZXN1bHRQcm9jZXNzb3I6OmdlbnJlSWQoIGNvbnN0 IFFTdHJpbmcgJmdlbnJlICkKKy17CistICAgIGlmKCBtX2dlbnJlLmNvbnRhaW5zKCBnZW5yZSAp ICkKKy0gICAgICAgIHJldHVybiBtX2dlbnJlLnZhbHVlKCBnZW5yZSApOworLSAgICBRU3RyaW5n IHF1ZXJ5ID0gUVN0cmluZyggIlNFTEVDVCBpZCBGUk9NIGdlbnJlc190ZW1wIFdIRVJFIG5hbWUg PSAnJTEnOyIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBnZW5yZSApICk7CistICAgIFFT dHJpbmdMaXN0IHJlcyA9IG1fY29sbGVjdGlvbi0+cXVlcnkoIHF1ZXJ5ICk7CistICAgIGludCBp ZCA9IDA7CistICAgIGlmKCByZXMuaXNFbXB0eSgpICkKKy0gICAgICAgIGlkID0gZ2VucmVJbnNl cnQoIGdlbnJlICk7CistICAgIGVsc2UKKy0gICAgICAgIGlkID0gcmVzWzBdLnRvSW50KCk7Cist ICAgIG1fZ2VucmUuaW5zZXJ0KCBnZW5yZSwgaWQgKTsKKy0gICAgcmV0dXJuIGlkOworLX0KKy0K Ky1pbnQKKy1TY2FuUmVzdWx0UHJvY2Vzc29yOjpnZW5yZUluc2VydCggY29uc3QgUVN0cmluZyAm Z2VucmUgKQorLXsKKy0gICAgUVN0cmluZyBpbnNlcnQgPSBRU3RyaW5nKCAiSU5TRVJUIElOVE8g Z2VucmVzX3RlbXAoIG5hbWUgKSBWQUxVRVMgKCclMScpOyIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ ZXNjYXBlKCBnZW5yZSApICk7CistICAgIGludCBpZCA9IG1fY29sbGVjdGlvbi0+aW5zZXJ0KCBp bnNlcnQsICJnZW5yZXNfdGVtcCIgKTsKKy0gICAgcmV0dXJuIGlkOworLX0KKy0KKy1pbnQKKy1T Y2FuUmVzdWx0UHJvY2Vzc29yOjpjb21wb3NlcklkKCBjb25zdCBRU3RyaW5nICZjb21wb3NlciAp CisteworLSAgICBpZiggbV9jb21wb3Nlci5jb250YWlucyggY29tcG9zZXIgKSApCistICAgICAg ICByZXR1cm4gbV9jb21wb3Nlci52YWx1ZSggY29tcG9zZXIgKTsKKy0gICAgUVN0cmluZyBxdWVy eSA9IFFTdHJpbmcoICJTRUxFQ1QgaWQgRlJPTSBjb21wb3NlcnNfdGVtcCBXSEVSRSBuYW1lID0g JyUxJzsiICkuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggY29tcG9zZXIgKSApOworLSAgICBR U3RyaW5nTGlzdCByZXMgPSBtX2NvbGxlY3Rpb24tPnF1ZXJ5KCBxdWVyeSApOworLSAgICBpbnQg aWQgPSAwOworLSAgICBpZiggcmVzLmlzRW1wdHkoKSApCistICAgICAgICBpZCA9IGNvbXBvc2Vy SW5zZXJ0KCBjb21wb3NlciApOworLSAgICBlbHNlCistICAgICAgICBpZCA9IHJlc1swXS50b0lu dCgpOworLSAgICBtX2NvbXBvc2VyLmluc2VydCggY29tcG9zZXIsIGlkICk7CistICAgIHJldHVy biBpZDsKKy19CisrICAgIHsKKysgICAgICAgIGRlYnVnKCkgPDwgIkhvbHkgaGVsbCBCYXRtYW4s IHdoYXQganVzdCBoYXBwZW5lZCBpbiBnZW5lcmljSWQ/IjsKKysgICAgICAgIHJldHVybiAtOTk5 OTsKKysgICAgfQorIAorLWludAorLVNjYW5SZXN1bHRQcm9jZXNzb3I6OmNvbXBvc2VySW5zZXJ0 KCBjb25zdCBRU3RyaW5nICZjb21wb3NlciApCisteworLSAgICBRU3RyaW5nIGluc2VydCA9IFFT dHJpbmcoICJJTlNFUlQgSU5UTyBjb21wb3NlcnNfdGVtcCggbmFtZSApIFZBTFVFUyAoJyUxJyk7 IiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGNvbXBvc2VyICkgKTsKKy0gICAgaW50IGlk ID0gbV9jb2xsZWN0aW9uLT5pbnNlcnQoIGluc2VydCwgImNvbXBvc2Vyc190ZW1wIiApOworLSAg ICByZXR1cm4gaWQ7CistfQorKyAgICBpZiggY3Vyck1hcC0+Y29udGFpbnMoIHZhbHVlICkgKQor KyAgICAgICAgcmV0dXJuIGN1cnJNYXAtPnZhbHVlKCB2YWx1ZSApOworIAorLWludAorLVNjYW5S ZXN1bHRQcm9jZXNzb3I6OnllYXJJZCggY29uc3QgUVN0cmluZyAmeWVhciApCisteworLSAgICBp ZiggbV95ZWFyLmNvbnRhaW5zKCB5ZWFyICkgKQorLSAgICAgICAgcmV0dXJuIG1feWVhci52YWx1 ZSggeWVhciApOworLSAgICBRU3RyaW5nIHF1ZXJ5ID0gUVN0cmluZyggIlNFTEVDVCBpZCBGUk9N IHllYXJzX3RlbXAgV0hFUkUgbmFtZSA9ICclMSc7IiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2Nh cGUoIHllYXIgKSApOworKyAgICBRU3RyaW5nIHF1ZXJ5ID0gUVN0cmluZyggIlNFTEVDVCBpZCBG Uk9NICUxX3RlbXAgV0hFUkUgbmFtZSA9ICclMic7IiApLmFyZygga2V5LCBtX2NvbGxlY3Rpb24t PmVzY2FwZSggdmFsdWUgKSApOworICAgICBRU3RyaW5nTGlzdCByZXMgPSBtX2NvbGxlY3Rpb24t PnF1ZXJ5KCBxdWVyeSApOworICAgICBpbnQgaWQgPSAwOworICAgICBpZiggcmVzLmlzRW1wdHko KSApCistICAgICAgICBpZCA9IHllYXJJbnNlcnQoIHllYXIgKTsKKysgICAgICAgIGlkID0gZ2Vu ZXJpY0luc2VydCgga2V5LCB2YWx1ZSApOworICAgICBlbHNlCisgICAgICAgICBpZCA9IHJlc1sw XS50b0ludCgpOworLSAgICBtX3llYXIuaW5zZXJ0KCB5ZWFyLCBpZCApOworKyAgICBjdXJyTWFw LT5pbnNlcnQoIHZhbHVlLCBpZCApOworICAgICByZXR1cm4gaWQ7CisgfQorIAorIGludAorLVNj YW5SZXN1bHRQcm9jZXNzb3I6OnllYXJJbnNlcnQoIGNvbnN0IFFTdHJpbmcgJnllYXIgKQorK1Nj YW5SZXN1bHRQcm9jZXNzb3I6OmdlbmVyaWNJbnNlcnQoIGNvbnN0IFFTdHJpbmcgJmtleSwgY29u c3QgUVN0cmluZyAmdmFsdWUgKQorIHsKKy0gICAgUVN0cmluZyBpbnNlcnQgPSBRU3RyaW5nKCAi SU5TRVJUIElOVE8geWVhcnNfdGVtcCggbmFtZSApIFZBTFVFUyAoJyUxJyk7IiApLmFyZyggbV9j b2xsZWN0aW9uLT5lc2NhcGUoIHllYXIgKSApOworLSAgICBpbnQgaWQgPSBtX2NvbGxlY3Rpb24t Pmluc2VydCggaW5zZXJ0LCAieWVhcnNfdGVtcCIgKTsKKysgICAgUVN0cmluZyBpbnNlcnQgPSBR U3RyaW5nKCAiSU5TRVJUIElOVE8gJTFfdGVtcCggbmFtZSApIFZBTFVFUyAoJyUyJyk7IiApLmFy Zygga2V5LCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggdmFsdWUgKSApOworKyAgICBpbnQgaWQgPSBt X2NvbGxlY3Rpb24tPmluc2VydCggaW5zZXJ0LCBRU3RyaW5nKCAiJTFfdGVtcCIgKS5hcmcoIGtl eSApICk7CisgICAgIHJldHVybiBpZDsKKyB9CisgCisgdm9pZAorLVNjYW5SZXN1bHRQcm9jZXNz b3I6OmRhdGFiYXNlSWRGZXRjaCggY29uc3QgUVN0cmluZyAmYXJ0aXN0LCBjb25zdCBRU3RyaW5n ICZnZW5yZSwgY29uc3QgUVN0cmluZyAmY29tcG9zZXIsIGNvbnN0IFFTdHJpbmcgJnllYXIsIGNv bnN0IFFTdHJpbmcgJmFsYnVtLCBpbnQgYWxidW1BcnRpc3RJZCApCisrU2NhblJlc3VsdFByb2Nl c3Nvcjo6ZGF0YWJhc2VJZEZldGNoKCBjb25zdCBRU3RyaW5nICZhcnRpc3QsIGNvbnN0IFFTdHJp bmcgJmdlbnJlLCBjb25zdCBRU3RyaW5nICZjb21wb3NlciwgY29uc3QgUVN0cmluZyAmeWVhciwg Y29uc3QgUVN0cmluZyAmYWxidW0sIGludCBhbGJ1bUFydGlzdElkLCBpbnQgY29tcGlsYXRpb25J ZCApCisgeworICAgICAvL0RFQlVHX0JMT0NLCistICAgIFFfVU5VU0VEKCBhbGJ1bSApOworLSAg ICBRX1VOVVNFRCggYWxidW1BcnRpc3RJZCApOworKyAgICBRUGFpcjxRU3RyaW5nLCBpbnQ+IGFs YnVtS2V5KCBhbGJ1bSwgYWxidW1BcnRpc3RJZCApOworKyAgICBib29sIGFsYnVtRm91bmQgPSBj b21waWxhdGlvbklkIHx8IG1fYWxidW1zLmNvbnRhaW5zKCBhbGJ1bUtleSApOworKyAgICBib29s IGFydGlzdEZvdW5kID0gbV9hcnRpc3RzLmNvbnRhaW5zKCBhcnRpc3QgKTsKKysgICAgYm9vbCBn ZW5yZUZvdW5kID0gbV9nZW5yZXMuY29udGFpbnMoIGdlbnJlICk7CisrICAgIGJvb2wgY29tcG9z ZXJGb3VuZCA9IG1fY29tcG9zZXJzLmNvbnRhaW5zKCBjb21wb3NlciApOworKyAgICBib29sIHll YXJGb3VuZCA9IG1feWVhcnMuY29udGFpbnMoIHllYXIgKTsKKysKKysgICAgaWYoIGFsYnVtRm91 bmQgJiYgYXJ0aXN0Rm91bmQgJiYgZ2VucmVGb3VuZCAmJiBjb21wb3NlckZvdW5kICYmIHllYXJG b3VuZCApCisrICAgICAgICByZXR1cm47IC8vbm90aGluZyB0byBkbworKworICAgICBpbnQgbCA9 IDA7IC8vYWxidW0KKy0gICAgYm9vbCBhbGJ1bUZvdW5kID0gZmFsc2U7CisgICAgIGludCBhID0g MDsgLy9hcnRpc3QKKy0gICAgYm9vbCBhcnRpc3RGb3VuZCA9IGZhbHNlOworICAgICBpbnQgZyA9 IDA7IC8vZ2VucmUKKy0gICAgYm9vbCBnZW5yZUZvdW5kID0gZmFsc2U7CisgICAgIGludCBjID0g MDsgLy9jb21wb3NlcgorLSAgICBib29sIGNvbXBvc2VyRm91bmQgPSBmYWxzZTsKKyAgICAgaW50 IHkgPSAwOyAvL3llYXIKKy0gICAgYm9vbCB5ZWFyRm91bmQgPSBmYWxzZTsKKyAKKyAgICAgUVN0 cmluZyBxdWVyeTsKKy0vKgorLSAgICBpZiggYWxidW1BcnRpc3RJZCA9PSAwICkKKy0gICAgICAg IHF1ZXJ5ICs9IFFTdHJpbmcoICJTRUxFQ1QgaWQsIENPTkNBVCgnQUxCVU1OQU1FXycsIG5hbWUp IEFTIG5hbWUgRlJPTSBhbGJ1bXNfdGVtcCBXSEVSRSBhcnRpc3QgSVMgTlVMTCBBTkQgbmFtZSA9 ICclMScgIiApCistICAgICAgICAgICAgICAgICAgICAuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2Fw ZSggYWxidW0gKSApOworLSAgICBlbHNlCistICAgICAgICBxdWVyeSArPSBRU3RyaW5nKCAiU0VM RUNUIGlkLCBDT05DQVQoJ0FMQlVNTkFNRV8nLCBuYW1lKSBBUyBuYW1lIEZST00gYWxidW1zX3Rl bXAgV0hFUkUgYXJ0aXN0ID0gJTEgQU5EIG5hbWUgPSAnJTInICIgKQorLSAgICAgICAgICAgICAg ICAgICAgICAgIC5hcmcoIFFTdHJpbmc6Om51bWJlciggYWxidW1BcnRpc3RJZCApLCBtX2NvbGxl Y3Rpb24tPmVzY2FwZSggYWxidW0gKSApOworLSovCistICAgIHF1ZXJ5ICs9IFFTdHJpbmcoICJT RUxFQ1QgaWQsIENPTkNBVCgnQVJUSVNUTkFNRV8nLCBuYW1lKSBBUyBuYW1lIEZST00gYXJ0aXN0 c190ZW1wIFdIRVJFIG5hbWUgPSAnJTEnICIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBh cnRpc3QgKSApOworLSAgICBxdWVyeSArPSBRU3RyaW5nKCAiVU5JT04gQUxMIFNFTEVDVCBpZCwg Q09OQ0FUKCdHRU5SRU5BTUVfJywgbmFtZSkgQVMgbmFtZSBGUk9NIGdlbnJlc190ZW1wIFdIRVJF IG5hbWUgPSAnJTEnICIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCBnZW5yZSApICk7Cist ICAgIHF1ZXJ5ICs9IFFTdHJpbmcoICJVTklPTiBBTEwgU0VMRUNUIGlkLCBDT05DQVQoJ0NPTVBP U0VSTkFNRV8nLCBuYW1lKSBBUyBuYW1lIEZST00gY29tcG9zZXJzX3RlbXAgV0hFUkUgbmFtZSA9 ICclMScgIiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUoIGNvbXBvc2VyICkgKTsKKy0gICAg cXVlcnkgKz0gUVN0cmluZyggIlVOSU9OIEFMTCBTRUxFQ1QgaWQsIENPTkNBVCgnWUVBUlNOQU1F XycsIG5hbWUpIEFTIG5hbWUgRlJPTSB5ZWFyc190ZW1wIFdIRVJFIG5hbWUgPSAnJTEnOyIgKS5h cmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBlKCB5ZWFyICkgKTsKKysgICAgaWYoICFhbGJ1bUZvdW5k ICkKKysgICAgeworKyAgICAgICAgaWYoIGFsYnVtQXJ0aXN0SWQgPT0gMCApCisrICAgICAgICAg ICAgcXVlcnkgKz0gUVN0cmluZyggIlNFTEVDVCBpZCwgQ09OQ0FUKCdBTEJVTU5BTUVfJywgbmFt ZSkgQVMgbmFtZSBGUk9NIGFsYnVtc190ZW1wIFdIRVJFIGFydGlzdCBJUyBOVUxMIEFORCBuYW1l ID0gJyUxJyAiICkKKysgICAgICAgICAgICAgICAgICAgICAgICAuYXJnKCBtX2NvbGxlY3Rpb24t PmVzY2FwZSggYWxidW0gKSApOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHF1ZXJ5ICs9 IFFTdHJpbmcoICJTRUxFQ1QgaWQsIENPTkNBVCgnQUxCVU1OQU1FXycsIG5hbWUpIEFTIG5hbWUg RlJPTSBhbGJ1bXNfdGVtcCBXSEVSRSBhcnRpc3QgPSAlMSBBTkQgbmFtZSA9ICclMicgIiApCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcmcoIFFTdHJpbmc6Om51bWJlciggYWxidW1B cnRpc3RJZCApLCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggYWxidW0gKSApOworKyAgICB9CisrICAg IGlmKCAhYXJ0aXN0Rm91bmQgKQorKyAgICAgICAgcXVlcnkgKz0gUVN0cmluZyggIlVOSU9OIEFM TCBTRUxFQ1QgaWQsIENPTkNBVCgnQVJUSVNUTkFNRV8nLCBuYW1lKSBBUyBuYW1lIEZST00gYXJ0 aXN0c190ZW1wIFdIRVJFIG5hbWUgPSAnJTEnICIgKS5hcmcoIG1fY29sbGVjdGlvbi0+ZXNjYXBl KCBhcnRpc3QgKSApOworKyAgICBpZiggIWdlbnJlRm91bmQgKQorKyAgICAgICAgcXVlcnkgKz0g UVN0cmluZyggIlVOSU9OIEFMTCBTRUxFQ1QgaWQsIENPTkNBVCgnR0VOUkVOQU1FXycsIG5hbWUp IEFTIG5hbWUgRlJPTSBnZW5yZXNfdGVtcCBXSEVSRSBuYW1lID0gJyUxJyAiICkuYXJnKCBtX2Nv bGxlY3Rpb24tPmVzY2FwZSggZ2VucmUgKSApOworKyAgICBpZiggIWNvbXBvc2VyRm91bmQgKQor KyAgICAgICAgcXVlcnkgKz0gUVN0cmluZyggIlVOSU9OIEFMTCBTRUxFQ1QgaWQsIENPTkNBVCgn Q09NUE9TRVJOQU1FXycsIG5hbWUpIEFTIG5hbWUgRlJPTSBjb21wb3NlcnNfdGVtcCBXSEVSRSBu YW1lID0gJyUxJyAiICkuYXJnKCBtX2NvbGxlY3Rpb24tPmVzY2FwZSggY29tcG9zZXIgKSApOwor KyAgICBpZiggIXllYXJGb3VuZCApCisrICAgICAgICBxdWVyeSArPSBRU3RyaW5nKCAiVU5JT04g QUxMIFNFTEVDVCBpZCwgQ09OQ0FUKCdZRUFSU05BTUVfJywgbmFtZSkgQVMgbmFtZSBGUk9NIHll YXJzX3RlbXAgV0hFUkUgbmFtZSA9ICclMSc7IiApLmFyZyggbV9jb2xsZWN0aW9uLT5lc2NhcGUo IHllYXIgKSApOworKyAgICBpZiggcXVlcnkuc3RhcnRzV2l0aCggIlVOSU9OIEFMTCAiICkgKQor KyAgICAgICAgcXVlcnkucmVtb3ZlKCAwLCAxMCApOworKyAgICAgICAgCisgICAgIFFTdHJpbmdM aXN0IHJlcyA9IG1fY29sbGVjdGlvbi0+cXVlcnkoIHF1ZXJ5ICk7CisgICAgIGludCBpbmRleCA9 IDA7CisgICAgIFFTdHJpbmcgZmlyc3Q7CitAQCAtNjA3LDU4ICs1NDgsNTUgQEAgU2NhblJlc3Vs dFByb2Nlc3Nvcjo6ZGF0YWJhc2VJZEZldGNoKCBjb25zdCBRU3RyaW5nICZhcnRpc3QsIGNvbnN0 IFFTdHJpbmcgJmdlbnIKKyAgICAgICAgIGZpcnN0ID0gcmVzLmF0KCBpbmRleCsrICk7CisgICAg ICAgICBzZWNvbmQgPSByZXMuYXQoIGluZGV4KysgKTsKKyAgICAgICAgICAgICAgYSA9IGZpcnN0 LnRvSW50KCk7CistICAgICAgICBpZiggc2Vjb25kID09IFFTdHJpbmcoICJBTEJVTU5BTUVfIiAr IGFsYnVtICkgKQorKyAgICAgICAgaWYoICFhbGJ1bUZvdW5kICYmIHNlY29uZCA9PSBRU3RyaW5n KCAiQUxCVU1OQU1FXyIgKyBhbGJ1bSApICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBsID0g Zmlyc3QudG9JbnQoKTsKKyAgICAgICAgICAgICBhbGJ1bUZvdW5kID0gdHJ1ZTsKKyAgICAgICAg IH0KKy0gICAgICAgIGVsc2UgaWYoIHNlY29uZCA9PSBRU3RyaW5nKCAiQVJUSVNUTkFNRV8iICsg YXJ0aXN0ICkgKQorKyAgICAgICAgZWxzZSBpZiggIWFydGlzdEZvdW5kICYmIHNlY29uZCA9PSBR U3RyaW5nKCAiQVJUSVNUTkFNRV8iICsgYXJ0aXN0ICkgKQorICAgICAgICAgeworICAgICAgICAg ICAgIGEgPSBmaXJzdC50b0ludCgpOworICAgICAgICAgICAgIGFydGlzdEZvdW5kID0gdHJ1ZTsK KyAgICAgICAgIH0KKy0gICAgICAgIGVsc2UgaWYoIHNlY29uZCA9PSBRU3RyaW5nKCAiR0VOUkVO QU1FXyIgKyBnZW5yZSApICkKKysgICAgICAgIGVsc2UgaWYoICFnZW5yZUZvdW5kICYmIHNlY29u ZCA9PSBRU3RyaW5nKCAiR0VOUkVOQU1FXyIgKyBnZW5yZSApICkKKyAgICAgICAgIHsKKyAgICAg ICAgICAgICBnID0gZmlyc3QudG9JbnQoKTsKKyAgICAgICAgICAgICBnZW5yZUZvdW5kID0gdHJ1 ZTsKKyAgICAgICAgIH0KKy0gICAgICAgIGVsc2UgaWYoIHNlY29uZCA9PSBRU3RyaW5nKCAiQ09N UE9TRVJOQU1FXyIgKyBjb21wb3NlciApICkKKysgICAgICAgIGVsc2UgaWYoICFjb21wb3NlckZv dW5kICYmIHNlY29uZCA9PSBRU3RyaW5nKCAiQ09NUE9TRVJOQU1FXyIgKyBjb21wb3NlciApICkK KyAgICAgICAgIHsKKyAgICAgICAgICAgICBjID0gZmlyc3QudG9JbnQoKTsKKyAgICAgICAgICAg ICBjb21wb3NlckZvdW5kID0gdHJ1ZTsKKyAgICAgICAgIH0KKy0gICAgICAgIGVsc2UgaWYoIHNl Y29uZCA9PSBRU3RyaW5nKCAiWUVBUlNOQU1FXyIgKyB5ZWFyICkgKQorKyAgICAgICAgZWxzZSBp ZiggIXllYXJGb3VuZCAmJiBzZWNvbmQgPT0gUVN0cmluZyggIllFQVJTTkFNRV8iICsgeWVhciAp ICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICB5ID0gZmlyc3QudG9JbnQoKTsKKyAgICAgICAg ICAgICB5ZWFyRm91bmQgPSB0cnVlOworICAgICAgICAgfQorICAgICB9CistICAgIC8qCisgICAg IGlmKCAhYWxidW1Gb3VuZCApCisgICAgIHsKKy0gICAgICAgIFFQYWlyPFFTdHJpbmcsIGludD4g a2V5KCBhbGJ1bSwgYWxidW1BcnRpc3RJZCApOworLSAgICAgICAgbV9hbGJ1bXMuaW5zZXJ0KCBr ZXksIGFsYnVtSW5zZXJ0KCBhbGJ1bSwgYWxidW1BcnRpc3RJZCApICk7CisrICAgICAgICBtX2Fs YnVtcy5pbnNlcnQoIGFsYnVtS2V5LCBhbGJ1bUluc2VydCggYWxidW0sIGFsYnVtQXJ0aXN0SWQg KSApOworICAgICAgICAgYWxidW1Gb3VuZCA9IHRydWU7CisgICAgIH0KKy0gICAgKi8KKyAgICAg aWYoICFhcnRpc3RGb3VuZCApCisgICAgIHsKKy0gICAgICAgIG1fYXJ0aXN0cy5pbnNlcnQoIGFy dGlzdCwgYXJ0aXN0SW5zZXJ0KCBhcnRpc3QgKSApOworKyAgICAgICAgbV9hcnRpc3RzLmluc2Vy dCggYXJ0aXN0LCBnZW5lcmljSW5zZXJ0KCAiYXJ0aXN0cyIsIGFydGlzdCApICk7CisgICAgICAg ICBhcnRpc3RGb3VuZCA9IHRydWU7CisgICAgIH0KKyAgICAgaWYoICFnZW5yZUZvdW5kICkKKyAg ICAgeworLSAgICAgICAgbV9nZW5yZS5pbnNlcnQoIGdlbnJlLCBnZW5yZUluc2VydCggZ2VucmUg KSApOworKyAgICAgICAgbV9nZW5yZXMuaW5zZXJ0KCBnZW5yZSwgZ2VuZXJpY0luc2VydCggImdl bnJlcyIsIGdlbnJlICkgKTsKKyAgICAgICAgIGdlbnJlRm91bmQgPSB0cnVlOworICAgICB9Cisg ICAgIGlmKCAhY29tcG9zZXJGb3VuZCApCisgICAgIHsKKy0gICAgICAgIG1fY29tcG9zZXIuaW5z ZXJ0KCBjb21wb3NlciwgY29tcG9zZXJJbnNlcnQoIGNvbXBvc2VyICkgKTsKKysgICAgICAgIG1f Y29tcG9zZXJzLmluc2VydCggY29tcG9zZXIsIGdlbmVyaWNJbnNlcnQoICJjb21wb3NlcnMiLCBj b21wb3NlciApICk7CisgICAgICAgICBjb21wb3NlckZvdW5kID0gdHJ1ZTsKKyAgICAgfQorICAg ICBpZiggIXllYXJGb3VuZCApCisgICAgIHsKKy0gICAgICAgIG1feWVhci5pbnNlcnQoIHllYXIs IHllYXJJbnNlcnQoIHllYXIgKSApOworKyAgICAgICAgbV95ZWFycy5pbnNlcnQoIHllYXIsIGdl bmVyaWNJbnNlcnQoICJ5ZWFycyIsIHllYXIgKSApOworICAgICAgICAgeWVhckZvdW5kID0gdHJ1 ZTsKKyAgICAgfQorIH0KK2RpZmYgLS1naXQgYS9zcmMvY29sbGVjdGlvbi9zcWxjb2xsZWN0aW9u L1NjYW5SZXN1bHRQcm9jZXNzb3IuaCBiL3NyYy9jb2xsZWN0aW9uL3NxbGNvbGxlY3Rpb24vU2Nh blJlc3VsdFByb2Nlc3Nvci5oCitpbmRleCBmZmZjOWU3Li40OWMyYjhiIDEwMDY0NAorLS0tIGEv c3JjL2NvbGxlY3Rpb24vc3FsY29sbGVjdGlvbi9TY2FuUmVzdWx0UHJvY2Vzc29yLmgKKysrKyBi L3NyYy9jb2xsZWN0aW9uL3NxbGNvbGxlY3Rpb24vU2NhblJlc3VsdFByb2Nlc3Nvci5oCitAQCAt NTgsMTUgKzU4LDkgQEAgY2xhc3MgU2NhblJlc3VsdFByb2Nlc3NvciA6IHB1YmxpYyBRT2JqZWN0 CisgICAgIHByaXZhdGU6CisgICAgICAgICB2b2lkIGFkZFRyYWNrKCBjb25zdCBRVmFyaWFudE1h cCAmdHJhY2tEYXRhLCBpbnQgYWxidW1BcnRpc3RJZCApOworIAorLSAgICAgICAgaW50IGFydGlz dElkKCBjb25zdCBRU3RyaW5nICZhcnRpc3QgKTsKKy0gICAgICAgIGludCBhcnRpc3RJbnNlcnQo IGNvbnN0IFFTdHJpbmcgJmFydGlzdCApOworLSAgICAgICAgaW50IGdlbnJlSWQoIGNvbnN0IFFT dHJpbmcgJmdlbnJlICk7CistICAgICAgICBpbnQgZ2VucmVJbnNlcnQoIGNvbnN0IFFTdHJpbmcg JmdlbnJlICk7CistICAgICAgICBpbnQgY29tcG9zZXJJZCggY29uc3QgUVN0cmluZyAmY29tcG9z ZXIgKTsKKy0gICAgICAgIGludCBjb21wb3Nlckluc2VydCggY29uc3QgUVN0cmluZyAmY29tcG9z ZXIgKTsKKy0gICAgICAgIGludCB5ZWFySWQoIGNvbnN0IFFTdHJpbmcgJnllYXIgKTsKKy0gICAg ICAgIGludCB5ZWFySW5zZXJ0KCBjb25zdCBRU3RyaW5nICZ5ZWFyICk7CistICAgICAgICB2b2lk IGRhdGFiYXNlSWRGZXRjaCggY29uc3QgUVN0cmluZyAmYXJ0aXN0LCBjb25zdCBRU3RyaW5nICZn ZW5yZSwgY29uc3QgUVN0cmluZyAmY29tcG9zZXIsIGNvbnN0IFFTdHJpbmcgJnllYXIsIGNvbnN0 IFFTdHJpbmcgJmFsYnVtLCBpbnQgYWxidW1BcnRpc3RJZCApOworKyAgICAgICAgaW50IGdlbmVy aWNJZCggY29uc3QgUVN0cmluZyAma2V5LCBjb25zdCBRU3RyaW5nICZ2YWx1ZSApOworKyAgICAg ICAgaW50IGdlbmVyaWNJbnNlcnQoIGNvbnN0IFFTdHJpbmcgJmtleSwgY29uc3QgUVN0cmluZyAm dmFsdWUgKTsKKysgICAgICAgIHZvaWQgZGF0YWJhc2VJZEZldGNoKCBjb25zdCBRU3RyaW5nICZh cnRpc3QsIGNvbnN0IFFTdHJpbmcgJmdlbnJlLCBjb25zdCBRU3RyaW5nICZjb21wb3NlciwgY29u c3QgUVN0cmluZyAmeWVhciwgY29uc3QgUVN0cmluZyAmYWxidW0sIGludCBhbGJ1bUFydGlzdElk LCBpbnQgY29tcGlsYXRpb25JZCApOworICAgICAgICAgaW50IGltYWdlSWQoIGNvbnN0IFFTdHJp bmcgJmltYWdlLCBpbnQgYWxidW1JZCApOworICAgICAgICAgaW50IGFsYnVtSWQoIGNvbnN0IFFT dHJpbmcgJmFsYnVtLCBpbnQgYXJ0aXN0SWQgKTsKKyAgICAgICAgIGludCBhbGJ1bUluc2VydCgg Y29uc3QgUVN0cmluZyAmYWxidW0sIGludCBhcnRpc3RJZCApOworQEAgLTkwLDkgKzg0LDkgQEAg Y2xhc3MgU2NhblJlc3VsdFByb2Nlc3NvciA6IHB1YmxpYyBRT2JqZWN0CisgICAgICAgICBib29s IG1fc2V0dXBDb21wbGV0ZTsKKyAKKyAgICAgICAgIFFNYXA8UVN0cmluZywgaW50PiBtX2FydGlz dHM7CistICAgICAgICBRTWFwPFFTdHJpbmcsIGludD4gbV9nZW5yZTsKKy0gICAgICAgIFFNYXA8 UVN0cmluZywgaW50PiBtX3llYXI7CistICAgICAgICBRTWFwPFFTdHJpbmcsIGludD4gbV9jb21w b3NlcjsKKysgICAgICAgIFFNYXA8UVN0cmluZywgaW50PiBtX2dlbnJlczsKKysgICAgICAgIFFN YXA8UVN0cmluZywgaW50PiBtX3llYXJzOworKyAgICAgICAgUU1hcDxRU3RyaW5nLCBpbnQ+IG1f Y29tcG9zZXJzOworICAgICAgICAgUU1hcDxRUGFpcjxRU3RyaW5nLCBpbnQ+LCBpbnQ+IG1fYWxi dW1zOworICAgICAgICAgUU1hcDxRUGFpcjxRU3RyaW5nLCBpbnQ+LCBpbnQ+IG1faW1hZ2VzOwor ICAgICAgICAgUU1hcDxRU3RyaW5nLCBpbnQ+IG1fZGlyZWN0b3JpZXM7CitkaWZmIC0tZ2l0IGEv c3JjL2NvbGxlY3Rpb24vc3FsY29sbGVjdGlvbi9TcWxRdWVyeU1ha2VyLmNwcCBiL3NyYy9jb2xs ZWN0aW9uL3NxbGNvbGxlY3Rpb24vU3FsUXVlcnlNYWtlci5jcHAKK2luZGV4IGE2Zjk4ZmIuLjEw Y2M2MjkgMTAwNjQ0CistLS0gYS9zcmMvY29sbGVjdGlvbi9zcWxjb2xsZWN0aW9uL1NxbFF1ZXJ5 TWFrZXIuY3BwCisrKysgYi9zcmMvY29sbGVjdGlvbi9zcWxjb2xsZWN0aW9uL1NxbFF1ZXJ5TWFr ZXIuY3BwCitAQCAtOTkyLDYgKzk5Miw3IEBAIFNxbFF1ZXJ5TWFrZXI6OmhhbmRsZUFydGlzdHMo IGNvbnN0IFFTdHJpbmdMaXN0ICZyZXN1bHQgKQorIHZvaWQKKyBTcWxRdWVyeU1ha2VyOjpoYW5k bGVBbGJ1bXMoIGNvbnN0IFFTdHJpbmdMaXN0ICZyZXN1bHQgKQorIHsKKysgICAgREVCVUdfQkxP Q0sKKyAgICAgQWxidW1MaXN0IGFsYnVtczsKKyAgICAgU3FsUmVnaXN0cnkqIHJlZyA9IG1fY29s bGVjdGlvbi0+cmVnaXN0cnkoKTsKKyAgICAgZm9yKCBRU3RyaW5nTGlzdEl0ZXJhdG9yIGl0ZXIo IHJlc3VsdCApOyBpdGVyLmhhc05leHQoKTsgKQorQEAgLTk5OSw2ICsxMDAwLDEwIEBAIFNxbFF1 ZXJ5TWFrZXI6OmhhbmRsZUFsYnVtcyggY29uc3QgUVN0cmluZ0xpc3QgJnJlc3VsdCApCisgICAg ICAgICBRU3RyaW5nIG5hbWUgPSBpdGVyLm5leHQoKTsKKyAgICAgICAgIFFTdHJpbmcgaWQgPSBp dGVyLm5leHQoKTsKKyAgICAgICAgIFFTdHJpbmcgYXJ0aXN0ID0gaXRlci5uZXh0KCk7CisrICAg ICAgICAvL0hBQ0s6IFRoZSBmb2xsb3dpbmcgaXMgYSBIQUNLIGFuZCBzaG91bGQgYmUgZml4ZWQg YnkgZml4aW5nIHRoZSBIQUNLCisrICAgICAgICAvL29mIGFsd2F5cyBpbmNsdWRpbmcgdGhlICJ0 cmFja3MiIHRhYmxlIGluIHF1ZXJpZXMgaW4gU3FsUXVlcnlNYWtlcgorKyAgICAgICAgaWYoIG5h bWUuaXNFbXB0eSgpICYmIGlkLmlzRW1wdHkoKSAmJiBhcnRpc3QuaXNFbXB0eSgpICkKKysgICAg ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgIGFsYnVtcy5hcHBlbmQoIHJlZy0+Z2V0QWxidW0o IG5hbWUsIGlkLnRvSW50KCksIGFydGlzdC50b0ludCgpICkgKTsKKyAgICAgfQorICAgICBlbWl0 T3JTdG9yZVByb3BlclJlc3VsdCggQWxidW1QdHIsIGFsYnVtcyApOworZGlmZiAtLWdpdCBhL3Ny Yy9jb2xsZWN0aW9uL3Vtc2NvbGxlY3Rpb24vYW1hcm9rX2NvbGxlY3Rpb24tdW1zY29sbGVjdGlv bi5kZXNrdG9wIGIvc3JjL2NvbGxlY3Rpb24vdW1zY29sbGVjdGlvbi9hbWFyb2tfY29sbGVjdGlv bi11bXNjb2xsZWN0aW9uLmRlc2t0b3AKK2luZGV4IDAxMjRjMWIuLjFiMDE2ZTAgMTAwNjQ0Cist LS0gYS9zcmMvY29sbGVjdGlvbi91bXNjb2xsZWN0aW9uL2FtYXJva19jb2xsZWN0aW9uLXVtc2Nv bGxlY3Rpb24uZGVza3RvcAorKysrIGIvc3JjL2NvbGxlY3Rpb24vdW1zY29sbGVjdGlvbi9hbWFy b2tfY29sbGVjdGlvbi11bXNjb2xsZWN0aW9uLmRlc2t0b3AKK0BAIC0xNSw2ICsxNSw3IEBAIE5h bWVbbm5dPVVuaXZlcnNlbGwgbWFzc2VsYWdyaW5nc3NhbWxpbmcKKyBOYW1lW3BsXT1Lb2xla2Nq YSBuYSB1cnrEhWR6ZW5pdSBkYW55Y2gKKyBOYW1lW3B0XT1Db2xlY8Onw6NvIGRlIEFybWF6ZW5h bWVudG8gZW0gTWFzc2EgVW5pdmVyc2FsCisgTmFtZVtwdF9CUl09Q29sZcOnw6NvIGRlIEFybWF6 ZW5hbWVudG8gVW5pdmVyc2FsIGVtIE1hc3NhCisrTmFtZVtydV090JrQvtC70LvQtdC60YbQuNGP IFVNUworIE5hbWVbc3JdPdCX0LHQuNGA0LrQsCDQvdCwINGD0L3QuNCy0LXRgNC30LDQu9C90L7Q vCDQvNCw0YHQvtCy0L3QvtC8INGB0LrQu9Cw0LTQuNGI0YLRgworIE5hbWVbc3JAbGF0aW5dPVpi aXJrYSBuYSB1bml2ZXJ6YWxub20gbWFzb3Zub20gc2tsYWRpxaF0dQorIE5hbWVbc3ZdPVNhbWxp bmcgcMOlIGdlbmVyZWxsIGxhZ3JpbmdzZW5oZXQKK2RpZmYgLS1naXQgYS9zcmMvY29udGV4dC9B cHBsZXQuY3BwIGIvc3JjL2NvbnRleHQvQXBwbGV0LmNwcAoraW5kZXggMzhiYzcwOS4uYWIyYzBh YyAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0L0FwcGxldC5jcHAKKysrKyBiL3NyYy9jb250ZXh0 L0FwcGxldC5jcHAKK0BAIC0zOSw3ICszOSw4IEBAIG5hbWVzcGFjZSBDb250ZXh0CisgQ29udGV4 dDo6QXBwbGV0OjpBcHBsZXQoIFFPYmplY3QgKiBwYXJlbnQsIGNvbnN0IFFWYXJpYW50TGlzdCYg YXJncyApCisgICAgIDogUGxhc21hOjpBcHBsZXQoIHBhcmVudCwgYXJncyApCisgICAgICwgbV9j b2xsYXBzZWQoIGZhbHNlICkKKy0gICAgLCBtX2FuaW1hdGlvbklkKCAwICkKKysgICAgLCBtX2Fu aW1hdGlvbklkT24oIDAgKQorKyAgICAsIG1fYW5pbWF0aW9uSWRPZmYoIDAgKQorICAgICAsIG1f dHJhbnNpZW50KCAwICkKKyAgICAgLCBtX3N0YW5kYXJkUGFkZGluZyggNi4wICkKKyAgICAgLCBt X3RleHRCYWNrZ3JvdW5kKCAwICkKK0BAIC01MCw4ICs1MSwxMCBAQCBDb250ZXh0OjpBcHBsZXQ6 OkFwcGxldCggUU9iamVjdCAqIHBhcmVudCwgY29uc3QgUVZhcmlhbnRMaXN0JiBhcmdzICkKKyAK KyBDb250ZXh0OjpBcHBsZXQ6On5BcHBsZXQoICkKKyB7CistICAgIGlmICggbV9hbmltYXRpb25J ZCAhPSAwKQorLSAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9tQW5p bWF0aW9uKCBtX2FuaW1hdGlvbklkICk7CisrICAgIGlmICggbV9hbmltYXRpb25JZE9uICE9IDAg KQorKyAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9tQW5pbWF0aW9u KCBtX2FuaW1hdGlvbklkT24gKTsKKysgICAgaWYgKCBtX2FuaW1hdGlvbklkT2ZmICE9IDAgKQor KyAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9tQW5pbWF0aW9uKCBt X2FuaW1hdGlvbklkT2ZmICk7CisgfQorIAorIAorQEAgLTIyOCwzOSArMjMxLDUxIEBAIENvbnRl eHQ6OkFwcGxldDo6YWRkQWN0aW9uKCBRQWN0aW9uICphY3Rpb24sIGNvbnN0IGludCBzaXplICkK KyB2b2lkCisgQ29udGV4dDo6QXBwbGV0OjpzZXRDb2xsYXBzZU9uKCkKKyB7CisrICAgIC8vIFdl IGFyZSBhc2tlZCB0byBjb2xsYXBzZSwgYnV0IHRoZSBhcHBsZXQgaXMgYWxyZWFkeSBhbmltYXRp bmcgdG8gY29sbGFwc2UsIGRvIG5vdGhpbmcKKysgICAgaWYgKCBtX2FuaW1hdGlvbklkT24gIT0g MCApCisrICAgICAgICByZXR1cm47CisrCisrICAgIC8vIFdlIGFyZSBhbHJlYWR5IGNvbGxhcHNl ZAorICAgICBpZiAoIHNpemUoKS5oZWlnaHQoKSA9PSBtX2hlaWdodENvbGxhcHNlT24gKQorICAg ICAgICAgcmV0dXJuOworKworICAgICBkZWJ1ZygpIDw8ICJjb2xsYXBzaW5nIGFwcGxldCB0by4u LiIgPDwgbV9oZWlnaHRDb2xsYXBzZU9uOworICAgICBpZiggbV9oZWlnaHRDb2xsYXBzZU9mZiA9 PSAtMSApCisgICAgICAgICBtX2FuaW1Gcm9tSGVpZ2h0ID0gc2l6ZSgpLmhlaWdodCgpOworICAg ICBlbHNlCisgICAgICAgICBtX2FuaW1Gcm9tSGVpZ2h0ID0gbV9oZWlnaHRDb2xsYXBzZU9mZjsK KyAKKy0gICAgaWYgKCBtX2FuaW1hdGlvbklkICE9IDAgKSAvLyB3YXJuaW5nIHdlIGFyZSBtb3Zp bmcgcmlnaHQgbm93CisrICAgIGlmICggbV9hbmltYXRpb25JZE9mZiAhPSAwICkgLy8gd2Fybmlu ZyB3ZSBhcmUgZXh0YW5kaW5nIHJpZ2h0IG5vdyB3ZSBzaG91bGQgc3RvcAorICAgICB7CisgICAg ICAgICAvLyBzdG9wIHRoZSBhbmltCistICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCkt PnN0b3BDdXN0b21BbmltYXRpb24oIG1fYW5pbWF0aW9uSWQgKTsKKy0gICAgICAgIG1fYW5pbWF0 aW9uSWQgPSAwOworKyAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9t QW5pbWF0aW9uKCBtX2FuaW1hdGlvbklkT2ZmICk7CisrICAgICAgICBtX2FuaW1hdGlvbklkT2Zm ID0gMDsKKyAgICAgfQorICAgICBtX2NvbGxhcHNlZCA9IGZhbHNlOworLSAgICBtX2FuaW1hdGlv bklkID0gUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5jdXN0b21BbmltYXRpb24oMjAsIDEwMDAs IFBsYXNtYTo6QW5pbWF0b3I6OkVhc2VJbkN1cnZlLCB0aGlzLCAiYW5pbWF0ZU9uIiApOworKyAg ICBtX2FuaW1hdGlvbklkT24gPSBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCktPmN1c3RvbUFuaW1h dGlvbigyMCwgMTAwMCwgUGxhc21hOjpBbmltYXRvcjo6RWFzZUluQ3VydmUsIHRoaXMsICJhbmlt YXRlT24iICk7CisgfQorIAorIHZvaWQKKyBDb250ZXh0OjpBcHBsZXQ6OnNldENvbGxhcHNlT2Zm KCkKKyB7CisgICAgIERFQlVHX0JMT0NLCistICAgIGRlYnVnKCkgPDwgImhlaWdodDoiIDw8IHNp emUoKS5oZWlnaHQoKSA8PCAidGFyZ2V0OiIgPDwgbV9oZWlnaHRDb2xsYXBzZU9mZiA8PCAibV9j b2xsYXBzZWQ6IiA8PCBtX2NvbGxhcHNlZDsKKysKKysgICAgLy8gV2UgYXJlIGFza2VkIHRvIGV4 dGVuZCwgYnV0IHRoZSBhcHBsZXQgaXMgYWxyZWFkeSBhbmltYXRpbmcgdG8gZXh0ZW5kLCBkbyBu b3RoaW5nCisrICAgIGlmICggbV9hbmltYXRpb25JZE9mZiAhPSAwICkKKysgICAgICAgIHJldHVy bjsKKysgICAgCisrICAgIC8vIEFwcGxldCBhbHJlYWR5IGV4dGVuZGVkCisgICAgIGlmICggc2l6 ZSgpLmhlaWdodCgpID09IG1faGVpZ2h0Q29sbGFwc2VPZmYgKQorICAgICAgICAgcmV0dXJuOwor IAorKyAgICBkZWJ1ZygpIDw8ICJoZWlnaHQ6IiA8PCBzaXplKCkuaGVpZ2h0KCkgPDwgInRhcmdl dDoiIDw8IG1faGVpZ2h0Q29sbGFwc2VPZmYgPDwgIm1fY29sbGFwc2VkOiIgPDwgbV9jb2xsYXBz ZWQ7CisgICAgIGlmKCBtX2hlaWdodENvbGxhcHNlT2ZmID09IC0xKSAvLyBpZiBpdCdzIHNlbGYt ZXhwYW5kaW5nLCBkb24ndCBhbmltYXRlIGFzIHdlIGRvbid0IGtub3cgd2hlcmUgd2UncmUgZ29p bmcuIGFsc28sIGlmIHdlJ3JlIHNocmlua2luZworICAgICB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdG9w IHRoYXQgYW5kIGV4cGFuZCByZWdhcmRsZXNzCistICAgICAgICAvLyBzdG9wIHRoZSBhbmltCist ICAgICAgICBpZiggbV9hbmltYXRpb25JZCAhPSAwICkKKysgICAgICAgIC8vIHN0b3AgdGhlIGFu aW1hdGlvbiBvbiBub3cKKysgICAgICAgIGlmKCBtX2FuaW1hdGlvbklkT24gIT0gMCApCisgICAg ICAgICB7CistICAgICAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9t QW5pbWF0aW9uKCBtX2FuaW1hdGlvbklkICk7CistICAgICAgICAgICAgbV9hbmltYXRpb25JZCA9 IDA7CisrICAgICAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9tQW5p bWF0aW9uKCBtX2FuaW1hdGlvbklkT24gKTsKKysgICAgICAgICAgICBtX2FuaW1hdGlvbklkT24g PSAwOworICAgICAgICAgfQorICAgICAgICAgbV9oZWlnaHRDdXJyZW50ID0gIG1faGVpZ2h0Q29s bGFwc2VPZmY7CisgICAgICAgICBlbWl0IHNpemVIaW50Q2hhbmdlZChRdDo6UHJlZmVycmVkU2l6 ZSk7CitAQCAtMjY5LDE0ICsyODQsMTQgQEAgQ29udGV4dDo6QXBwbGV0OjpzZXRDb2xsYXBzZU9m ZigpCisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKKy0gICAgaWYgKCBtX2FuaW1hdGlvbklk ICE9IDAgKSAvLyB3YXJuaW5nIHdlIGFyZSBtb3ZpbmcgcmlnaHQgbm93CisrICAgIGlmICggbV9h bmltYXRpb25JZE9uICE9IDAgKSAvLyB3YXJuaW5nIHdlIGFyZSBjb2xsYXBzaW5nIHJpZ2h0IG5v dywgc3RvcCB0aGF0IGFuZCByZXZlcnNlIGl0ICEKKyAgICAgeworICAgICAgICAgLy8gc3RvcCB0 aGUgYW5pbQorLSAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5zdG9wQ3VzdG9tQW5p bWF0aW9uKCBtX2FuaW1hdGlvbklkICk7CistICAgICAgICBtX2FuaW1hdGlvbklkID0gMDsKKysg ICAgICAgIFBsYXNtYTo6QW5pbWF0b3I6OnNlbGYoKS0+c3RvcEN1c3RvbUFuaW1hdGlvbiggbV9h bmltYXRpb25JZE9uICk7CisrICAgICAgICBtX2FuaW1hdGlvbklkT24gPSAwOworICAgICB9Cisg ICAgIG1fY29sbGFwc2VkID0gdHJ1ZSA7CistICAgIG1fYW5pbWF0aW9uSWQgPSBQbGFzbWE6OkFu aW1hdG9yOjpzZWxmKCktPmN1c3RvbUFuaW1hdGlvbigyMCwgMTAwMCwgUGxhc21hOjpBbmltYXRv cjo6RWFzZUluQ3VydmUsIHRoaXMsICJhbmltYXRlT2ZmIiApOworKyAgICBtX2FuaW1hdGlvbklk T2ZmID0gUGxhc21hOjpBbmltYXRvcjo6c2VsZigpLT5jdXN0b21BbmltYXRpb24oMjAsIDEwMDAs IFBsYXNtYTo6QW5pbWF0b3I6OkVhc2VJbkN1cnZlLCB0aGlzLCAiYW5pbWF0ZU9mZiIgKTsKKyB9 CisgCisgdm9pZAorQEAgLTI4NSw2ICszMDAsMTkgQEAgQ29udGV4dDo6QXBwbGV0OjpzZXRDb2xs YXBzZUhlaWdodCggaW50IGggKQorICAgICBtX2hlaWdodENvbGxhcHNlT24gPSBoOworIH0KKyAK Kytib29sCisrQ29udGV4dDo6QXBwbGV0Ojppc0FwcGxldENvbGxhcHNlZCgpCisreworKyAgICBy ZXR1cm4gKCBtX2hlaWdodENvbGxhcHNlT24gPT0gbV9oZWlnaHRDdXJyZW50ICk7CisrfQorKwor K2Jvb2wKKytDb250ZXh0OjpBcHBsZXQ6OmlzQXBwbGV0RXh0ZW5kZWQoKQorK3sKKysgICAgcmV0 dXJuICggbV9oZWlnaHRDb2xsYXBzZU9mZiA9PSBtX2hlaWdodEN1cnJlbnQgKTsKKyt9CisrCisr Cisgdm9pZAorIENvbnRleHQ6OkFwcGxldDo6YW5pbWF0ZU9uKCBxcmVhbCBhbmltICkKKyB7CitA QCAtMzAyLDIyICszMzAsMjAgQEAgQ29udGV4dDo6QXBwbGV0OjphbmltYXRlT2ZmKCBxcmVhbCBh bmltICkKKyB2b2lkCisgQ29udGV4dDo6QXBwbGV0OjphbmltYXRlRW5kKCBpbnQgaWQgKQorIHsK Ky0gICAgaWYoIGlkID09IG1fYW5pbWF0aW9uSWQgKQorKyAgICBpZiggaWQgPT0gbV9hbmltYXRp b25JZE9uICkKKyAgICAgeworLSAgICAgICAgaWYoICFtX2NvbGxhcHNlZCApCistICAgICAgICB7 CistICAgICAgICAgICAgUGxhc21hOjpBcHBsZXQ6OnJlc2l6ZSggc2l6ZSgpLndpZHRoKCksIG1f aGVpZ2h0Q29sbGFwc2VPbiApOworLSAgICAgICAgICAgIG1fY29sbGFwc2VkID0gdHJ1ZTsKKy0g ICAgICAgIH0KKy0gICAgICAgIGVsc2UKKy0gICAgICAgIHsKKy0gICAgICAgICAgICBQbGFzbWE6 OkFwcGxldDo6cmVzaXplKCBzaXplKCkud2lkdGgoKSwgbV9oZWlnaHRDb2xsYXBzZU9mZiApOwor LSAgICAgICAgICAgIG1fY29sbGFwc2VkID0gZmFsc2U7CistICAgICAgICB9CistICAgICAgICB1 cGRhdGVHZW9tZXRyeSgpOworLSAgICAgICAgZW1pdCBzaXplSGludENoYW5nZWQoUXQ6OlByZWZl cnJlZFNpemUpOworLSAgICAgICAgbV9hbmltYXRpb25JZCA9IDA7CisrICAgICAgICBQbGFzbWE6 OkFwcGxldDo6cmVzaXplKCBzaXplKCkud2lkdGgoKSwgbV9oZWlnaHRDb2xsYXBzZU9uICk7Cisr ICAgICAgICBtX2NvbGxhcHNlZCA9IHRydWU7CisrICAgICAgICBtX2FuaW1hdGlvbklkT24gPSAw OworKyAgICB9CisrICAgIGlmICggaWQgPT0gbV9hbmltYXRpb25JZE9mZiApCisrICAgIHsKKysg ICAgICAgIFBsYXNtYTo6QXBwbGV0OjpyZXNpemUoIHNpemUoKS53aWR0aCgpLCBtX2hlaWdodENv bGxhcHNlT2ZmICk7CisrICAgICAgICBtX2NvbGxhcHNlZCA9IGZhbHNlOworKyAgICAgICAgbV9h bmltYXRpb25JZE9mZiA9IDA7CisgICAgIH0KKysgICAgdXBkYXRlR2VvbWV0cnkoKTsKKysgICAg ZW1pdCBzaXplSGludENoYW5nZWQoUXQ6OlByZWZlcnJlZFNpemUpOworIH0KKyAKKyAKK2RpZmYg LS1naXQgYS9zcmMvY29udGV4dC9BcHBsZXQuaCBiL3NyYy9jb250ZXh0L0FwcGxldC5oCitpbmRl eCA3ODExNjI0Li45Zjg2MTU4IDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvQXBwbGV0LmgKKysr KyBiL3NyYy9jb250ZXh0L0FwcGxldC5oCitAQCAtNjIsNiArNjIsOSBAQCBjbGFzcyBBTUFST0tf RVhQT1JUIEFwcGxldCA6IHB1YmxpYyBQbGFzbWE6OkFwcGxldAorICAgICAgICAgdm9pZCBzZXRD b2xsYXBzZU9mZigpOworICAgICAgICAgdm9pZCBzZXRDb2xsYXBzZUhlaWdodCggaW50ICk7Cisg CisrICAgICAgICBib29sIGlzQXBwbGV0Q29sbGFwc2VkKCk7CisrICAgICAgICBib29sIGlzQXBw bGV0RXh0ZW5kZWQoKTsKKysKKyAgICAgICAgIC8qKgorICAgICAgICAgICAqIHNpemVIaW50IGlz IHJlaW1wbGVtZW50ZWQgaGVyZSBvbmx5IGZvciBhbGwgdGhlIGFwcGxldC4KKyAgICAgICAgICAg Ki8KK0BAIC04Niw3ICs4OSw4IEBAIGNsYXNzIEFNQVJPS19FWFBPUlQgQXBwbGV0IDogcHVibGlj IFBsYXNtYTo6QXBwbGV0CisgICAgICAgICBpbnQgIG1faGVpZ2h0Q3VycmVudDsKKyAgICAgICAg IGludCAgbV9oZWlnaHRDb2xsYXBzZU9uOworICAgICAgICAgaW50ICBtX2hlaWdodENvbGxhcHNl T2ZmOworLSAgICAgICAgaW50ICBtX2FuaW1hdGlvbklkOworKyAgICAgICAgaW50ICBtX2FuaW1h dGlvbklkT247CisrICAgICAgICBpbnQgIG1fYW5pbWF0aW9uSWRPZmY7CisgICAgICAgICBpbnQg IG1fYW5pbUZyb21IZWlnaHQ7CisgCisgICAgIHByaXZhdGU6CitkaWZmIC0tZ2l0IGEvc3JjL2Nv bnRleHQvYXBwbGV0cy9pbmZvL2FtYXJvay1jb250ZXh0LWFwcGxldC1pbmZvLmRlc2t0b3AgYi9z cmMvY29udGV4dC9hcHBsZXRzL2luZm8vYW1hcm9rLWNvbnRleHQtYXBwbGV0LWluZm8uZGVza3Rv cAoraW5kZXggN2M2MTgxNS4uODFmMmUxZCAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0L2FwcGxl dHMvaW5mby9hbWFyb2stY29udGV4dC1hcHBsZXQtaW5mby5kZXNrdG9wCisrKysgYi9zcmMvY29u dGV4dC9hcHBsZXRzL2luZm8vYW1hcm9rLWNvbnRleHQtYXBwbGV0LWluZm8uZGVza3RvcAorQEAg LTE2LDYgKzE2LDcgQEAgTmFtZVtubl09SW5mbworIE5hbWVbcGxdPUluZm9ybWFjamEKKyBOYW1l W3B0XT1JbmZvcm1hw6fDo28KKyBOYW1lW3B0X0JSXT1JbmZvcm1hw6fDo28KKytOYW1lW3J1XT3Q odCy0LXQtNC10L3QuNGPCisgTmFtZVtzcl090J/QvtC00LDRhtC4CisgTmFtZVtzckBsYXRpbl09 UG9kYWNpCisgTmFtZVtzdl09SW5mb3JtYXRpb24KK2RpZmYgLS1naXQgYS9zcmMvY29udGV4dC9h cHBsZXRzL3Bob3Rvcy9QaG90b3NBcHBsZXQuY3BwIGIvc3JjL2NvbnRleHQvYXBwbGV0cy9waG90 b3MvUGhvdG9zQXBwbGV0LmNwcAoraW5kZXggNGNjNDcxNC4uODg0YTdmMyAxMDA2NDQKKy0tLSBh L3NyYy9jb250ZXh0L2FwcGxldHMvcGhvdG9zL1Bob3Rvc0FwcGxldC5jcHAKKysrKyBiL3NyYy9j b250ZXh0L2FwcGxldHMvcGhvdG9zL1Bob3Rvc0FwcGxldC5jcHAKK0BAIC0xMTYsNyArMTE2LDcg QEAgUGhvdG9zQXBwbGV0Ojp+UGhvdG9zQXBwbGV0KCkKKyB2b2lkCisgUGhvdG9zQXBwbGV0Ojpl bmdpbmVOZXdUcmFja1BsYXlpbmcoICkKKyB7CistIC8vICAgREVCVUdfQkxPQ0sKKysgICAgREVC VUdfQkxPQ0sKKyAgICAgbV9zdG9wcGVkc3RhdGUgPSBmYWxzZTsKKyAgICAgZGF0YUVuZ2luZSgg ImFtYXJvay1waG90b3MiICktPnF1ZXJ5KCBRU3RyaW5nKCAicGhvdG9zIiApICk7CisgfQorQEAg LTEyNCwxMyArMTI0LDE0IEBAIFBob3Rvc0FwcGxldDo6ZW5naW5lTmV3VHJhY2tQbGF5aW5nKCAp Cisgdm9pZAorIFBob3Rvc0FwcGxldDo6ZW5naW5lUGxheWJhY2tFbmRlZCggaW50LCBpbnQsIFBs YXliYWNrRW5kZWRSZWFzb24gKQorIHsKKy0vLyAgICBERUJVR19CTE9DSworKyAgICBERUJVR19C TE9DSworICAgICBtX3N0b3BwZWRzdGF0ZSA9IHRydWU7OworICAgICBtX2hlYWRlclRleHQtPnNl dFRleHQoIGkxOG4oICJQaG90b3MiICkgKyBRU3RyaW5nKCAiIDogIiApICsgaTE4biggIk5vIHRy YWNrIHBsYXlpbmciICkgKTsKKyAgICAgbV93aWRnZXQtPmNsZWFyKCk7CisgICAgIG1fd2lkZ2V0 LT5oaWRlKCk7CisgICAgIHNldEJ1c3koIGZhbHNlICk7CisgICAgIHNldENvbGxhcHNlT24oKTsK KysgICAgZGF0YUVuZ2luZSggImFtYXJvay1waG90b3MiICktPnF1ZXJ5KCBRU3RyaW5nKCAicGhv dG9zOnN0b3BwZWQiICkgKTsKKyB9CisgCisgdm9pZCAKK0BAIC0yMTUsMTQgKzIxNiwyMiBAQCBQ aG90b3NBcHBsZXQ6OmRhdGFVcGRhdGVkKCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBQbGFz bWE6OkRhdGFFbmdpbmU6OkRhdGEmCisgICAgIH0KKyAgICAgZWxzZSBpZiAoIGRhdGEuY29udGFp bnMoICJkYXRhIiApICkKKyAgICAgeworLSAgICAgICAgbV9oZWFkZXJUZXh0LT5zZXRUZXh0KCBp MThuKCAiUGhvdG9zIiApICsgUVN0cmluZyggIiA6ICIgKSArIGRhdGFbICJhcnRpc3QiIF0udG9T dHJpbmcoKSApOworLSAgICAgICAgdXBkYXRlQ29uc3RyYWludHMoKTsKKy0gICAgICAgIHVwZGF0 ZSgpOworLSAgICAgICAgc2V0Q29sbGFwc2VPZmYoKTsKKy0gICAgICAgIC8vIFNlbmQgdGhlIGRh dGEgdG8gdGhlIHNjcm9sbGluZyB3aWRnZXQKKy0gICAgICAgIG1fd2lkZ2V0LT5zZXRQaXhtYXBM aXN0KCBkYXRhWyAiZGF0YSIgXS52YWx1ZTwgUUxpc3QgPCBQaG90b3NJbmZvICogPiA+KCkgKTsK Ky0gICAgICAgIG1fd2lkZ2V0LT5zaG93KCk7CistICAgICAgICBzZXRCdXN5KGZhbHNlKTsKKysg ICAgICAgIC8vIERvIG5vdCBzaG93IHNvbWUgcGljdHVyZSBpZiB3ZSdyZSBzdGlsbCBhbmltYXRp bmcgYXMgaXQgY2FuIGxlYWQgdG8gdHJvdWJsZQorKyAgICAgICAgLy8gbGV0J3MgaG9wZSBhbmlt YXRpbmcgdGltZSB3aWxsIGJlIHNob3J0ZXIgdGhhbiBmZXRjaGluZyB0aW1lIG9mIGFsbCB0aGUg cGljdHVyZSA6LworKyAgICAgICAgLy8gdGhpcyBhbHNvIHByZXZlbnQgdGhlIHN0dXBpZCBlZmZl Y3Qgb2YgcmVhbmltYXRpbmcgc2V2ZXJhbCB0aW1lLgorKyAgICAgICAgaWYgKCBpc0FwcGxldEV4 dGVuZGVkKCkgKQorKyAgICAgICAgeworKyAgICAgICAgICAgIG1faGVhZGVyVGV4dC0+c2V0VGV4 dCggaTE4biggIlBob3RvcyIgKSArIFFTdHJpbmcoICIgOiAiICkgKyBkYXRhWyAiYXJ0aXN0IiBd LnRvU3RyaW5nKCkgKTsKKysgICAgICAgICAgICB1cGRhdGVDb25zdHJhaW50cygpOworKyAgICAg ICAgICAgIHVwZGF0ZSgpOworKyAgICAgICAgICAgIHNldENvbGxhcHNlT2ZmKCk7CisrICAgICAg ICAgICAgLy8gU2VuZCB0aGUgZGF0YSB0byB0aGUgc2Nyb2xsaW5nIHdpZGdldAorKyAgICAgICAg ICAgIG1fd2lkZ2V0LT5zZXRQaXhtYXBMaXN0KCBkYXRhWyAiZGF0YSIgXS52YWx1ZTwgUUxpc3Qg PCBQaG90b3NJbmZvICogPiA+KCkgKTsKKysgICAgICAgICAgICBtX3dpZGdldC0+c2hvdygpOwor KyAgICAgICAgICAgIHNldEJ1c3koZmFsc2UpOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZQor KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgfQorICAgICB1cGRhdGVDb25zdHJhaW50cygpOwor ICAgICB1cGRhdGUoKTsKK2RpZmYgLS1naXQgYS9zcmMvY29udGV4dC9hcHBsZXRzL3Bob3Rvcy9Q aG90b3NTY3JvbGxXaWRnZXQuY3BwIGIvc3JjL2NvbnRleHQvYXBwbGV0cy9waG90b3MvUGhvdG9z U2Nyb2xsV2lkZ2V0LmNwcAoraW5kZXggNzFkM2QyOC4uMzFjNzFhZCAxMDA2NDQKKy0tLSBhL3Ny Yy9jb250ZXh0L2FwcGxldHMvcGhvdG9zL1Bob3Rvc1Njcm9sbFdpZGdldC5jcHAKKysrKyBiL3Ny Yy9jb250ZXh0L2FwcGxldHMvcGhvdG9zL1Bob3Rvc1Njcm9sbFdpZGdldC5jcHAKK0BAIC0xMTIs OTAgKzExMiw5NCBAQCB2b2lkIFBob3Rvc1Njcm9sbFdpZGdldDo6c2V0UGl4bWFwTGlzdCAoUUxp c3QgPCBQaG90b3NJbmZvICogPiBsaXN0KQorICAgICBpZiAoIGxpc3QgPT0gbV9jdXJyZW50bGlz dCApCisgICAgICAgICByZXR1cm47CisgCistICAgIGRlYnVnKCkgPDwgImFkZGluZyAiIDw8IGxp c3QuY291bnQoKSA8PCAibmV3IHBpY3MiOworKyAgLy8gIGRlYnVnKCkgPDwgImFkZGluZyAiIDw8 IGxpc3QuY291bnQoKSA8PCAibmV3IHBpY3MiOworICAgICAvLyBJZiBhIG5ldyBvbmUgYXJyaXZl ZCwgd2UgY2hhbmdlLgorICAgICBmb3JlYWNoKCBQaG90b3NJbmZvICppdGVtLCBsaXN0ICkKKyAg ICAgeworICAgICAgICAgaWYgKCAhbV9jdXJyZW50bGlzdC5jb250YWlucyggaXRlbSApICkKKyAg ICAgICAgIHsKKy0gICAgICAgICAgICBzd2l0Y2ggKCBtX21vZGUgKQorKyAgICAgICAgICAgIGlm ICggIWl0ZW0tPnBob3RvLT5pc051bGwoKSApCisgICAgICAgICAgICAgeworLSAgICAgICAgICAg ICAgICBjYXNlIFBIT1RPU19NT0RFX0lOVEVSQUNUSVZFIDoKKysgICAgICAgICAgICAgICAgc3dp dGNoICggbV9tb2RlICkKKyAgICAgICAgICAgICAgICAgeworLQorLSAgICAgICAgICAgICAgICAg ICAgaWYgKCAhbV9pZCApIC8vIGNhcmVmdWwgd2UncmUgYW5pbWF0aW5nCisrICAgICAgICAgICAg ICAgICAgICBjYXNlIFBIT1RPU19NT0RFX0lOVEVSQUNUSVZFIDoKKyAgICAgICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBQbGFzbWE6OkFuaW1hdG9yOjpzZWxmKCkt PnN0b3BDdXN0b21BbmltYXRpb24oIG1faWQgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBt X2lkID0gMDsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIERy YWdQaXhtYXBJdGVtICpkcmFncGl4ID0gbmV3IERyYWdQaXhtYXBJdGVtKCB0aGlzICk7CistICAg ICAgICAgICAgICAgICAgICBkcmFncGl4LT5zZXRQaXhtYXAoIFRoZTo6c3ZnSGFuZGxlcigpLT5h ZGRCb3JkZXJzVG9QaXhtYXAoCistICAgICAgICAgICAgICAgICAgICBpdGVtLT5waG90by0+c2Nh bGVkVG9IZWlnaHQoIChpbnQpIHNpemUoKS5oZWlnaHQoKSAtIDQgKiBtX21hcmdpbiwgIFF0OjpT bW9vdGhUcmFuc2Zvcm1hdGlvbiApLCA1LCAiIiwgdHJ1ZSApICk7CistICAgICAgICAgICAgICAg ICAgICBkcmFncGl4LT5zZXRQb3MoIG1fYWN0dWFscG9zLCAwICk7CistICAgICAgICAgICAgICAg ICAgICBkcmFncGl4LT5TZXRDbGlja2FibGVVcmwoIGl0ZW0tPnVybHBhZ2UgKTsKKy0gICAgICAg ICAgICAgICAgICAgIGRyYWdwaXgtPnNob3coKTsKKyAKKy0gICAgICAgICAgICAgICAgICAgIG1f cGl4bWFwbGlzdCA8PCBkcmFncGl4OworKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIW1f aWQgKSAvLyBjYXJlZnVsIHdlJ3JlIGFuaW1hdGluZworKyAgICAgICAgICAgICAgICAgICAgICAg IHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGxhc21hOjpBbmltYXRvcjo6c2VsZigp LT5zdG9wQ3VzdG9tQW5pbWF0aW9uKCBtX2lkICk7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1faWQgPSAwOworKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAKKy0gICAgICAgICAg ICAgICAgICAgIGludCBkZWx0YSA9IGRyYWdwaXgtPmJvdW5kaW5nUmVjdCgpLndpZHRoKCkgKyBt X21hcmdpbjsKKy0gICAgICAgICAgICAgICAgICAgIG1fc2Nyb2xsbWF4ICs9IGRlbHRhOworLSAg ICAgICAgICAgICAgICAgICAgbV9hY3R1YWxwb3MgKz0gZGVsdGE7CisrICAgICAgICAgICAgICAg ICAgICAgICAgRHJhZ1BpeG1hcEl0ZW0gKmRyYWdwaXggPSBuZXcgRHJhZ1BpeG1hcEl0ZW0oIHRo aXMgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5zZXRQaXhtYXAoIFRoZTo6 c3ZnSGFuZGxlcigpLT5hZGRCb3JkZXJzVG9QaXhtYXAoCisrICAgICAgICAgICAgICAgICAgICAg ICAgaXRlbS0+cGhvdG8tPnNjYWxlZFRvSGVpZ2h0KCAoaW50KSBzaXplKCkuaGVpZ2h0KCkgLSA0 ICogbV9tYXJnaW4sICBRdDo6U21vb3RoVHJhbnNmb3JtYXRpb24gKSwgNSwgIiIsIHRydWUgKSAp OworKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPnNldFBvcyggbV9hY3R1YWxwb3Ms IDAgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5TZXRDbGlja2FibGVVcmwo IGl0ZW0tPnVybHBhZ2UgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5zaG93 KCk7CisgCistICAgICAgICAgICAgICAgICAgICBicmVhazsKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICBjYXNlIFBIT1RPU19NT0RFX0FVVE9NQVRJQyA6CistICAgICAgICAg ICAgICAgIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBtX3BpeG1hcGxpc3QgPDwgZHJhZ3Bp eDsKKyAKKy0gICAgICAgICAgICAgICAgICAgIERyYWdQaXhtYXBJdGVtICpkcmFncGl4ID0gbmV3 IERyYWdQaXhtYXBJdGVtKCB0aGlzICk7CistICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5z ZXRQaXhtYXAoIFRoZTo6c3ZnSGFuZGxlcigpLT5hZGRCb3JkZXJzVG9QaXhtYXAoCistICAgICAg ICAgICAgICAgICAgICAgICAgaXRlbS0+cGhvdG8tPnNjYWxlZFRvSGVpZ2h0KCAoaW50KSBzaXpl KCkuaGVpZ2h0KCkgLSA0ICogbV9tYXJnaW4sICBRdDo6U21vb3RoVHJhbnNmb3JtYXRpb24gKSwg NSwgIiIsIHRydWUgKSApOworLSAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+U2V0Q2xpY2th YmxlVXJsKCBpdGVtLT51cmxwYWdlICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRl bHRhID0gZHJhZ3BpeC0+Ym91bmRpbmdSZWN0KCkud2lkdGgoKSArIG1fbWFyZ2luOworKyAgICAg ICAgICAgICAgICAgICAgICAgIG1fc2Nyb2xsbWF4ICs9IGRlbHRhOworKyAgICAgICAgICAgICAg ICAgICAgICAgIG1fYWN0dWFscG9zICs9IGRlbHRhOworIAorLSAgICAgICAgICAgICAgICAgICAg aWYgKCBtX2lkID09IDAgKSAvLyBvbmx5IHBvcyBhbmQgc2hvdyBpZiBubyBhbmltYXRpb24sIG90 aGVyd2lzZSBpdCB3aWxsIGJlIHNldCBhdCB0aGUgZW5kIGF1dG9tYXRpY2FsbHkKKysgICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAg ICAgICAgICAgICAgIGNhc2UgUEhPVE9TX01PREVfQVVUT01BVElDIDoKKyAgICAgICAgICAgICAg ICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoICEgbV9waXhtYXBsaXN0LmVt cHR5KCkgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgZHJhZ3BpeC0+c2V0UG9zKCBtX3BpeG1hcGxpc3QubGFzdCgpLT5ib3VuZGluZ1Jl Y3QoKS53aWR0aCgpICsgbV9waXhtYXBsaXN0Lmxhc3QoKS0+cG9zKCkueCgpICsgbV9tYXJnaW4g LCAwICkgOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFncGl4LT5zaG93KCk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UK KysKKysgICAgICAgICAgICAgICAgICAgICAgICBEcmFnUGl4bWFwSXRlbSAqZHJhZ3BpeCA9IG5l dyBEcmFnUGl4bWFwSXRlbSggdGhpcyApOworKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdw aXgtPnNldFBpeG1hcCggVGhlOjpzdmdIYW5kbGVyKCktPmFkZEJvcmRlcnNUb1BpeG1hcCgKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+cGhvdG8tPnNjYWxlZFRvSGVpZ2h0KCAo aW50KSBzaXplKCkuaGVpZ2h0KCkgLSA0ICogbV9tYXJnaW4sICBRdDo6U21vb3RoVHJhbnNmb3Jt YXRpb24gKSwgNSwgIiIsIHRydWUgKSApOworKyAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdw aXgtPlNldENsaWNrYWJsZVVybCggaXRlbS0+dXJscGFnZSApOworKworKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmICggbV9pZCA9PSAwICkgLy8gb25seSBwb3MgYW5kIHNob3cgaWYgbm8gYW5p bWF0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCBiZSBzZXQgYXQgdGhlIGVuZCBhdXRvbWF0aWNhbGx5 CisgICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtX2FjdHVhbHBvcyA9IDA7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgt PnNldFBvcyggbV9hY3R1YWxwb3MsIDAgKSA7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRyYWdwaXgtPnNob3coKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhIG1f cGl4bWFwbGlzdC5lbXB0eSgpICkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2V0UG9zKCBtX3BpeG1hcGxp c3QubGFzdCgpLT5ib3VuZGluZ1JlY3QoKS53aWR0aCgpICsgbV9waXhtYXBsaXN0Lmxhc3QoKS0+ cG9zKCkueCgpICsgbV9tYXJnaW4gLCAwICkgOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZHJhZ3BpeC0+c2hvdygpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9hY3R1YWxwb3MgPSAw OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2V0UG9zKCBtX2Fj dHVhbHBvcywgMCApIDsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgt PnNob3coKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKyAKKy0gICAgICAgICAgICAgICAg ICAgIG1fcGl4bWFwbGlzdCA8PCBkcmFncGl4OworKyAgICAgICAgICAgICAgICAgICAgICAgIG1f cGl4bWFwbGlzdCA8PCBkcmFncGl4OworIAorLSAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGEg dGltZXIgYWZ0ZXIgYW5kIGxhdW5jaAorLSAgICAgICAgICAgICAgICAgICAgUVRpbWVyOjpzaW5n bGVTaG90KCBtX2ludGVydmFsLCB0aGlzLCBTTE9UKCBhdXRvbWF0aWNBbmltQmVnaW4oKSApICk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGEgdGltZXIgYWZ0ZXIgYW5kIGxhdW5j aAorKyAgICAgICAgICAgICAgICAgICAgICAgIFFUaW1lcjo6c2luZ2xlU2hvdCggbV9pbnRlcnZh bCwgdGhpcywgU0xPVCggYXV0b21hdGljQW5pbUJlZ2luKCkgKSApOworIAorLSAgICAgICAgICAg ICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgY2Fz ZSBQSE9UT1NfTU9ERV9GQURJTkcgOgorLSAgICAgICAgICAgICAgICB7CistCistICAgICAgICAg ICAgICAgICAgICBEcmFnUGl4bWFwSXRlbSAqZHJhZ3BpeCA9IG5ldyBEcmFnUGl4bWFwSXRlbSgg dGhpcyApOworLSAgICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2V0UGl4bWFwKCBUaGU6OnN2 Z0hhbmRsZXIoKS0+YWRkQm9yZGVyc1RvUGl4bWFwKAorLSAgICAgICAgICAgICAgICAgICAgaXRl bS0+cGhvdG8tPnNjYWxlZFRvSGVpZ2h0KCAoaW50KSBzaXplKCkuaGVpZ2h0KCkgLSA0ICogbV9t YXJnaW4sICBRdDo6U21vb3RoVHJhbnNmb3JtYXRpb24gKSwgNSwgIiIsIHRydWUgKSApOworLSAg ICAgICAgICAgICAgICAgICAgZHJhZ3BpeC0+c2V0UG9zKCAoIHNpemUoKS53aWR0aCgpIC0gZHJh Z3BpeC0+Ym91bmRpbmdSZWN0KCkud2lkdGgoKSApIC8gMiwgMCApOworLSAgICAgICAgICAgICAg ICAgICAgZHJhZ3BpeC0+U2V0Q2xpY2thYmxlVXJsKCBpdGVtLT51cmxwYWdlICk7CistICAgICAg ICAgICAgICAgICAgICBkcmFncGl4LT5oaWRlKCk7CistICAgICAgICAgICAgICAgICAgICBtX3Bp eG1hcGxpc3QgPDwgZHJhZ3BpeDsKKy0gICAgICAgICAgICAgICAgICAgIGlmICggbV9waXhtYXBs aXN0LnNpemUoKSA9PSAxICkKKy0gICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBkcmFncGl4LT5zaG93KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbV90 aW1lci0+c3RhcnQoIG1faW50ZXJ2YWwgKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIGNhc2UgUEhP VE9TX01PREVfRkFESU5HIDoKKysgICAgICAgICAgICAgICAgICAgIHsKKyAKKy0gICAgICAgICAg ICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgICAgICAgICAgIERyYWdQaXhtYXBJdGVt ICpkcmFncGl4ID0gbmV3IERyYWdQaXhtYXBJdGVtKCB0aGlzICk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgZHJhZ3BpeC0+c2V0UGl4bWFwKCBUaGU6OnN2Z0hhbmRsZXIoKS0+YWRkQm9yZGVy c1RvUGl4bWFwKAorKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0tPnBob3RvLT5zY2FsZWRU b0hlaWdodCggKGludCkgc2l6ZSgpLmhlaWdodCgpIC0gNCAqIG1fbWFyZ2luLCAgUXQ6OlNtb290 aFRyYW5zZm9ybWF0aW9uICksIDUsICIiLCB0cnVlICkgKTsKKysgICAgICAgICAgICAgICAgICAg ICAgICBkcmFncGl4LT5zZXRQb3MoICggc2l6ZSgpLndpZHRoKCkgLSBkcmFncGl4LT5ib3VuZGlu Z1JlY3QoKS53aWR0aCgpICkgLyAyLCAwICk7CisrICAgICAgICAgICAgICAgICAgICAgICAgZHJh Z3BpeC0+U2V0Q2xpY2thYmxlVXJsKCBpdGVtLT51cmxwYWdlICk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgZHJhZ3BpeC0+aGlkZSgpOworKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcGl4 bWFwbGlzdCA8PCBkcmFncGl4OworKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICggbV9waXht YXBsaXN0LnNpemUoKSA9PSAxICkKKysgICAgICAgICAgICAgICAgICAgICAgICB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRyYWdwaXgtPnNob3coKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbV90aW1lci0+c3RhcnQoIG1faW50ZXJ2YWwgKTsKKysgICAgICAgICAgICAg ICAgICAgICAgICB9CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAg ICAgICB9CisgICAgIH0KKyAgICAgbV9jdXJyZW50bGlzdCA9IGxpc3Q7CistICAgIGRlYnVnKCkg PDwgInRvdGFsIGNvdW50OiAiIDw8IG1fcGl4bWFwbGlzdC5jb3VudCgpOworKyAgLy8gIGRlYnVn KCkgPDwgInRvdGFsIGNvdW50OiAiIDw8IG1fcGl4bWFwbGlzdC5jb3VudCgpOworIH0KKyAKKyB2 b2lkIFBob3Rvc1Njcm9sbFdpZGdldDo6aG92ZXJFbnRlckV2ZW50KFFHcmFwaGljc1NjZW5lSG92 ZXJFdmVudCopCitAQCAtMjY2LDEwICsyNzAsMTMgQEAgdm9pZCBQaG90b3NTY3JvbGxXaWRnZXQ6 OnJlc2l6ZShxcmVhbCB3aWQsIHFyZWFsIGhlaSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBm b3JlYWNoIChEcmFnUGl4bWFwSXRlbSAqaXRlbSwgbV9waXhtYXBsaXN0KQorICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgaWYgKCBzaXplKCkuaGVpZ2h0KCkgIT0gaGVpICkKKy0gICAg ICAgICAgICAgICAgICAgIGl0ZW0tPnNldFBpeG1hcCggaXRlbS0+cGl4bWFwKCkuc2NhbGVkVG9I ZWlnaHQoIChpbnQpIGhlaSAtIDQgKiBtX21hcmdpbiwgIFF0OjpTbW9vdGhUcmFuc2Zvcm1hdGlv biApICk7CistICAgICAgICAgICAgICAgIGlmICggc2l6ZSgpLndpZHRoKCkgIT0gd2lkICkKKy0g ICAgICAgICAgICAgICAgICAgIGl0ZW0tPnNldFBvcyggKCB3aWQgLSBpdGVtLT5ib3VuZGluZ1Jl Y3QoKS53aWR0aCgpICkgLyAyLCAwICk7CisrICAgICAgICAgICAgICAgIGlmICggIWl0ZW0tPnBp eG1hcCgpLmlzTnVsbCgpICkKKysgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAg ICAgaWYgKCBzaXplKCkuaGVpZ2h0KCkgIT0gaGVpICkKKysgICAgICAgICAgICAgICAgICAgICAg ICBpdGVtLT5zZXRQaXhtYXAoIGl0ZW0tPnBpeG1hcCgpLnNjYWxlZFRvSGVpZ2h0KCAoaW50KSBo ZWkgLSA0ICogbV9tYXJnaW4sICBRdDo6U21vb3RoVHJhbnNmb3JtYXRpb24gKSApOworKyAgICAg ICAgICAgICAgICAgICAgaWYgKCBzaXplKCkud2lkdGgoKSAhPSB3aWQgKQorKyAgICAgICAgICAg ICAgICAgICAgICAgIGl0ZW0tPnNldFBvcyggKCB3aWQgLSBpdGVtLT5ib3VuZGluZ1JlY3QoKS53 aWR0aCgpICkgLyAyLCAwICk7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRleHQv YXBwbGV0cy9waG90b3MvYW1hcm9rLWNvbnRleHQtYXBwbGV0LXBob3Rvcy5kZXNrdG9wIGIvc3Jj L2NvbnRleHQvYXBwbGV0cy9waG90b3MvYW1hcm9rLWNvbnRleHQtYXBwbGV0LXBob3Rvcy5kZXNr dG9wCitpbmRleCAyZmVkMzM3Li44NjY2MmU4IDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvYXBw bGV0cy9waG90b3MvYW1hcm9rLWNvbnRleHQtYXBwbGV0LXBob3Rvcy5kZXNrdG9wCisrKysgYi9z cmMvY29udGV4dC9hcHBsZXRzL3Bob3Rvcy9hbWFyb2stY29udGV4dC1hcHBsZXQtcGhvdG9zLmRl c2t0b3AKK0BAIC0xNyw2ICsxNyw3IEBAIE5hbWVbbm5dPUJpbGV0ZQorIE5hbWVbcGxdPVpkasSZ Y2lhCisgTmFtZVtwdF09Rm90b2dyYWZpYXMKKyBOYW1lW3B0X0JSXT1Gb3RvcworK05hbWVbcnVd PdCk0L7RgtC+0LPRgNCw0YTQuNC4CisgTmFtZVtzcl090KTQvtGC0L7Qs9GA0LDRhNC40ZjQtQor IE5hbWVbc3JAbGF0aW5dPUZvdG9ncmFmaWplCisgTmFtZVtzdl09Rm90b24KK2RpZmYgLS1naXQg YS9zcmMvY29udGV4dC9lbmdpbmVzL2N1cnJlbnQvYW1hcm9rLWRhdGEtZW5naW5lLWN1cnJlbnQu ZGVza3RvcCBiL3NyYy9jb250ZXh0L2VuZ2luZXMvY3VycmVudC9hbWFyb2stZGF0YS1lbmdpbmUt Y3VycmVudC5kZXNrdG9wCitpbmRleCA2NjMxNTNmLi40NTM1NGI5IDEwMDY0NAorLS0tIGEvc3Jj L2NvbnRleHQvZW5naW5lcy9jdXJyZW50L2FtYXJvay1kYXRhLWVuZ2luZS1jdXJyZW50LmRlc2t0 b3AKKysrKyBiL3NyYy9jb250ZXh0L2VuZ2luZXMvY3VycmVudC9hbWFyb2stZGF0YS1lbmdpbmUt Y3VycmVudC5kZXNrdG9wCitAQCAtMzMsNyArMzMsNyBAQCBOYW1lW3BsXT1Nb2R1xYIgZGFueWNo IGJpZcW8xIVjeWNoIGluZm9ybWFjamkKKyBOYW1lW3B0XT1Nb3RvciBkZSBEYWRvcyBkYSBJbmZv cm1hw6fDo28gQWN0dWFsCisgTmFtZVtwdF9CUl09TWVjYW5pc21vIGRlIERhZG9zIGRhcyBJbmZv cm1hw6fDtWVzIEF0dWFpcworIE5hbWVbcm9dPU1vdG9yIGRlIGRhdGUgSW5mb3JtYcibaWUgY3Vy ZW50xIMKKy1OYW1lW3J1XT3QlNCy0LjQttC+0Log0LTQsNC90L3Ri9GFINC00LvRjyDRgtC10LrR g9GJ0LjRhSDRgdCy0LXQtNC10L3QuNC5CisrTmFtZVtydV090JjRgdGC0L7Rh9C90LjQuiDQtNCw 0L3QvdGL0YUg0LTQu9GPINGC0LXQutGD0YnQuNGFINGB0LLQtdC00LXQvdC40LkKKyBOYW1lW3Ns XT1Qb2RhdGtvdm5pIHBvZ29uIHphIHBvZGF0a2UgdHJlbnV0bmkgc2tsYWRiaQorIE5hbWVbc3Jd PdCU0LDRgtC+0LzQvtGC0L7RgCDRgtC10LrRg9Gb0LjRhSDQv9C+0LTQsNGC0LDQutCwCisgTmFt ZVtzckBsYXRpbl09RGF0b21vdG9yIHRla3XEh2loIHBvZGF0YWthCitkaWZmIC0tZ2l0IGEvc3Jj L2NvbnRleHQvZW5naW5lcy9pbmZvL2FtYXJvay1kYXRhLWVuZ2luZS1pbmZvLmRlc2t0b3AgYi9z cmMvY29udGV4dC9lbmdpbmVzL2luZm8vYW1hcm9rLWRhdGEtZW5naW5lLWluZm8uZGVza3RvcAor aW5kZXggYTI5MDQwYy4uZGUxNmI2YiAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0L2VuZ2luZXMv aW5mby9hbWFyb2stZGF0YS1lbmdpbmUtaW5mby5kZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9l bmdpbmVzL2luZm8vYW1hcm9rLWRhdGEtZW5naW5lLWluZm8uZGVza3RvcAorQEAgLTE0LDYgKzE0 LDcgQEAgTmFtZVtubl09RGF0YW1vdG9yIGZvciBpbmZvcm1hc2pvbgorIE5hbWVbcGxdPU1vZHXF giBkYW55Y2ggaW5mb3JtYWNqaQorIE5hbWVbcHRdPU1vdG9yIGRlIERhZG9zIGRhIEluZm9ybWHD p8OjbworIE5hbWVbcHRfQlJdPU1lY2FuaXNtbyBkZSBEYWRvcyBkYXMgSW5mb3JtYcOnw7Vlcwor K05hbWVbcnVdPdCY0YHRgtC+0YfQvdC40Log0LTQsNC90L3Ri9GFINC00LvRjyDRgdCy0LXQtNC1 0L3QuNC5CisgTmFtZVtzcl090JTQsNGC0L7QvNC+0YLQvtGAINC/0L7QtNCw0YLQsNC60LAKKyBO YW1lW3NyQGxhdGluXT1EYXRvbW90b3IgcG9kYXRha2EKKyBOYW1lW3N2XT1EYXRhZ3LDpG5zc25p dHQgZsO2ciBpbmZvcm1hdGlvbgorZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2VuZ2luZXMvbHly aWNzL2FtYXJvay1kYXRhLWVuZ2luZS1seXJpY3MuZGVza3RvcCBiL3NyYy9jb250ZXh0L2VuZ2lu ZXMvbHlyaWNzL2FtYXJvay1kYXRhLWVuZ2luZS1seXJpY3MuZGVza3RvcAoraW5kZXggZmNkYjE4 OS4uMTM0MTc2ZSAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0L2VuZ2luZXMvbHlyaWNzL2FtYXJv ay1kYXRhLWVuZ2luZS1seXJpY3MuZGVza3RvcAorKysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy9s eXJpY3MvYW1hcm9rLWRhdGEtZW5naW5lLWx5cmljcy5kZXNrdG9wCitAQCAtMzMsNyArMzMsNyBA QCBOYW1lW3BsXT1Nb2R1xYIgZGFueWNoIHRla3N0w7N3CisgTmFtZVtwdF09TW90b3IgZGUgRGFk b3MgZGUgTGV0cmFzIE11c2ljYWlzCisgTmFtZVtwdF9CUl09TWVjYW5pc21vIGRlIERhZG9zIGRh cyBMZXRyYXMKKyBOYW1lW3JvXT1Nb3RvciBkZSBkYXRlIFZlcnN1cmkKKy1OYW1lW3J1XT3QlNCy 0LjQttC+0Log0LTQsNC90L3Ri9GFINC00LvRjyDRgtC10LrRgdGC0L7QsiDQv9C10YHQtdC9Cisr TmFtZVtydV090JjRgdGC0L7Rh9C90LjQuiDQtNCw0L3QvdGL0YUg0LTQu9GPINGC0LXQutGB0YLQ vtCyINC/0LXRgdC10L0KKyBOYW1lW3NsXT1Qb2RhdGtvdm5pIHBvZ29uIHphIGJlc2VkaWxhCisg TmFtZVtzcl090JTQsNGC0L7QvNC+0YLQvtGAINGB0YLQuNGF0L7QstCwCisgTmFtZVtzckBsYXRp bl09RGF0b21vdG9yIHN0aWhvdmEKK2RpZmYgLS1naXQgYS9zcmMvY29udGV4dC9lbmdpbmVzL3Bo b3Rvcy9QaG90b3NFbmdpbmUuY3BwIGIvc3JjL2NvbnRleHQvZW5naW5lcy9waG90b3MvUGhvdG9z RW5naW5lLmNwcAoraW5kZXggNzU1OGRhOC4uZGZiMTNhZiAxMDA2NDQKKy0tLSBhL3NyYy9jb250 ZXh0L2VuZ2luZXMvcGhvdG9zL1Bob3Rvc0VuZ2luZS5jcHAKKysrKyBiL3NyYy9jb250ZXh0L2Vu Z2luZXMvcGhvdG9zL1Bob3Rvc0VuZ2luZS5jcHAKK0BAIC02NSw2ICs2NSw3IEBAIFBob3Rvc0Vu Z2luZTo6c291cmNlcygpIGNvbnN0CisgYm9vbCAKKyBQaG90b3NFbmdpbmU6OnNvdXJjZVJlcXVl c3RFdmVudCggY29uc3QgUVN0cmluZyYgbmFtZSApCisgeworKyAgICBERUJVR19CTE9DSworICAg ICBtX3JlcXVlc3RlZCA9IHRydWU7IC8vIHNvbWVvbmUgaXMgYXNraW5nIGZvciBkYXRhLCBzbyB3 ZSB0dXJuIG91cnNlbHZlcyBvbiA6KQorICAgICBRU3RyaW5nTGlzdCB0b2tlbnMgPSBuYW1lLnNw bGl0KCAnOicgKTsKKyAKK0BAIC04Niw3ICs4NywxOCBAQCBQaG90b3NFbmdpbmU6OnNvdXJjZVJl cXVlc3RFdmVudCggY29uc3QgUVN0cmluZyYgbmFtZSApCisgICAgICAgICAgICAgbV9yZWxvYWQg PSB0cnVlOworICAgICAgICAgfQorICAgICB9CistICAgICAgICAKKysKKysgICAgLy8gd2UndmUg YmVlbiBub3RpZmllZCBieSB0aGUgYXBwbGV0IHRvIGJlIGluIHN0YXRlIHN0b3AgPDMKKysgICAg ZWxzZSBpZiAoIHRva2Vucy5jb250YWlucyggInN0b3BwZWQiICkgJiYgdG9rZW5zLnNpemUoKSA+ IDEgKQorKyAgICB7CisrICAgICAgICBpZiAoIHRva2Vucy5hdCggMSApID09IFFTdHJpbmcoICJz dG9wcGVkIiApICkKKysgICAgICAgIHsKKysgICAgICAgICAgICByZW1vdmVTb3VyY2UoICJwaG90 b3MiICk7CisrICAgICAgICAgICAgbV9yZWxvYWQgPSB0cnVlOworKyAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKysgICAgICAgIH0KKysgICAgfQorKyAgICAKKyAgICAgcmVtb3ZlQWxsRGF0YSgg bmFtZSApOworICAgICBzZXREYXRhKCBuYW1lLCBRVmFyaWFudCgpICk7CisgICAgIHVwZGF0ZSgp OworZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2VuZ2luZXMvcGhvdG9zL2FtYXJvay1kYXRhLWVu Z2luZS1waG90b3MuZGVza3RvcCBiL3NyYy9jb250ZXh0L2VuZ2luZXMvcGhvdG9zL2FtYXJvay1k YXRhLWVuZ2luZS1waG90b3MuZGVza3RvcAoraW5kZXggYzBlODkzZi4uZDExYzQzYyAxMDA2NDQK Ky0tLSBhL3NyYy9jb250ZXh0L2VuZ2luZXMvcGhvdG9zL2FtYXJvay1kYXRhLWVuZ2luZS1waG90 b3MuZGVza3RvcAorKysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy9waG90b3MvYW1hcm9rLWRhdGEt ZW5naW5lLXBob3Rvcy5kZXNrdG9wCitAQCAtMTUsNiArMTUsNyBAQCBOYW1lW25uXT1EYXRhbW90 b3IgZm9yIGJpbGV0ZQorIE5hbWVbcGxdPU1vZHXFgiBkYW55Y2ggemRqxJnEhworIE5hbWVbcHRd PU1vdG9yIGRlIERhZG9zIGRlIEZvdG9ncmFmaWFzCisgTmFtZVtwdF9CUl09TWVjYW5pc21vIGRl IERhZG9zIGRlIEZvdG9zCisrTmFtZVtydV090JjRgdGC0L7Rh9C90LjQuiDQtNCw0L3QvdGL0YUg 0YTQvtGC0L7Qs9GA0LDRhNC40LkKKyBOYW1lW3NyXT3QlNCw0YLQvtC80L7RgtC+0YAg0YTQvtGC 0L7Qs9GA0LDRhNC40ZjQsAorIE5hbWVbc3JAbGF0aW5dPURhdG9tb3RvciBmb3RvZ3JhZmlqYQor IE5hbWVbc3ZdPURhdGFncsOkbnNzbml0dCBmw7ZyIGZvdG9uCitkaWZmIC0tZ2l0IGEvc3JjL2Nv bnRleHQvZW5naW5lcy9zb25na2ljay9hbWFyb2stZGF0YS1lbmdpbmUtc29uZ2tpY2suZGVza3Rv cCBiL3NyYy9jb250ZXh0L2VuZ2luZXMvc29uZ2tpY2svYW1hcm9rLWRhdGEtZW5naW5lLXNvbmdr aWNrLmRlc2t0b3AKK2luZGV4IGVlMWNhOTMuLjIyMTM1MzMgMTAwNjQ0CistLS0gYS9zcmMvY29u dGV4dC9lbmdpbmVzL3NvbmdraWNrL2FtYXJvay1kYXRhLWVuZ2luZS1zb25na2ljay5kZXNrdG9w CisrKysgYi9zcmMvY29udGV4dC9lbmdpbmVzL3NvbmdraWNrL2FtYXJvay1kYXRhLWVuZ2luZS1z b25na2ljay5kZXNrdG9wCitAQCAtMzMsNyArMzMsNyBAQCBOYW1lW3BsXT1Nb2R1xYIgZGFueWNo IFNvbmdraWNrCisgTmFtZVtwdF09TW90b3IgZGUgRGFkb3MgZG8gU29uZ2tpY2sKKyBOYW1lW3B0 X0JSXT1NZWNhbmlzbW8gZGUgRGFkb3MgZG8gU29uZ2tpY2sKKyBOYW1lW3JvXT1Nb3RvciBkZSBk YXRlIFNvbmdraWNrCistTmFtZVtydV090JTQstC40LbQvtC6INC00LDQvdC90YvRhSBTb25na2lj aworK05hbWVbcnVdPdCY0YHRgtC+0YfQvdC40Log0LTQsNC90L3Ri9GFIFNvbmdraWNrCisgTmFt ZVtzbF09UG9kYXRrb3ZuaSBwb2dvbiB6YSBTb25na2ljaworIE5hbWVbc3JdPdCU0LDRgtC+0LzQ vtGC0L7RgCDQodC+0L3Qs9C60LjQutCwCisgTmFtZVtzckBsYXRpbl09RGF0b21vdG9yIFNvbmdr aWNrYQorZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L2VuZ2luZXMvdmlkZW9jbGlwL2FtYXJvay1k YXRhLWVuZ2luZS12aWRlb2NsaXAuZGVza3RvcCBiL3NyYy9jb250ZXh0L2VuZ2luZXMvdmlkZW9j bGlwL2FtYXJvay1kYXRhLWVuZ2luZS12aWRlb2NsaXAuZGVza3RvcAoraW5kZXggOWZjZTVkNy4u N2QzYzk4YiAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0L2VuZ2luZXMvdmlkZW9jbGlwL2FtYXJv ay1kYXRhLWVuZ2luZS12aWRlb2NsaXAuZGVza3RvcAorKysrIGIvc3JjL2NvbnRleHQvZW5naW5l cy92aWRlb2NsaXAvYW1hcm9rLWRhdGEtZW5naW5lLXZpZGVvY2xpcC5kZXNrdG9wCitAQCAtMjAs NyArMjAsNyBAQCBOYW1lW3BhXT3gqLXgqYDgqKHgqL/gqJMg4KiV4Kiy4Ki/4Kmx4KiqIOCooeCo vuCon+CoviDgqIfgqbDgqJzgqKMKKyBOYW1lW3BsXT1Nb2R1xYIgZGFueWNoIGtsaXDDs3cgd2lk ZW8KKyBOYW1lW3B0XT1Nb3RvciBkZSBEYWRvcyBkZSAnQ2xpcHMnIGRlIFbDrWRlbworIE5hbWVb cHRfQlJdPU1vdG9yIGRlIGRhZG9zIGRlIGNsaXBlIGRlIHbDrWRlbworLU5hbWVbcnVdPdCU0LLQ uNC20L7QuiDQtNCw0L3QvdGL0YUg0LTQu9GPINCy0LjQtNC10L7QutC70LjQv9C+0LIKKytOYW1l W3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC90YvRhSDQtNC70Y8g0LLQuNC00LXQvtC60LvQ uNC/0L7QsgorIE5hbWVbc2xdPVBvZGF0a292bmkgcG9nb24gemEgdmlkZW8gcG9zbmV0a2UKKyBO YW1lW3NyXT3QlNCw0YLQvtC80L7RgtC+0YAg0LLQuNC00LXQviDQuNGB0LXRh9Cw0LrQsAorIE5h bWVbc3JAbGF0aW5dPURhdG9tb3RvciB2aWRlbyBpc2XEjWFrYQorZGlmZiAtLWdpdCBhL3NyYy9j b250ZXh0L2VuZ2luZXMvd2lraXBlZGlhL1dpa2lwZWRpYUVuZ2luZS5jcHAgYi9zcmMvY29udGV4 dC9lbmdpbmVzL3dpa2lwZWRpYS9XaWtpcGVkaWFFbmdpbmUuY3BwCitpbmRleCAxMTAyM2NiLi4x M2RlNThkIDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQvZW5naW5lcy93aWtpcGVkaWEvV2lraXBl ZGlhRW5naW5lLmNwcAorKysrIGIvc3JjL2NvbnRleHQvZW5naW5lcy93aWtpcGVkaWEvV2lraXBl ZGlhRW5naW5lLmNwcAorQEAgLTIyMiw5ICsyMjIsMTEgQEAgV2lraXBlZGlhRW5naW5lOjp3aWtp UmVzdWx0KCBLSm9iKiBqb2IgKQorICAgICAgICAgbV93aWtpID0gUVN0cmluZzo6ZnJvbVV0Zjgo IHN0b3JlZEpvYi0+ZGF0YSgpLmRhdGEoKSwgc3RvcmVkSm9iLT5kYXRhKCkuc2l6ZSgpICk7Cisg CisgCistICAgIC8vIFJlZmluZWQgc2VhcmNoIHRoaW5nCisrICAgIC8vIEZJWE1FOiBGb3Igbm93 IHdlIHRlc3QgaWYgd2UgZ290IGFuIGFydGljbGUgb3Igbm90IHdpdGggYSB0ZXN0IG9uIHRoaXMg c3RyaW5nICJ3Z0FydGljbGVJZD0wIgorKyAgICAvLyBUaGlzIGlzIGJhZAorICAgICBpZiggbV93 aWtpLmNvbnRhaW5zKCAid2dBcnRpY2xlSWQ9MCIgKSApIC8vIFRoZSBhcnRpY2xlIGRvZXMgbm90 IGV4aXN0CisgICAgIHsKKysgICAgICAgIC8vIFJlZmluZWQgc2VhcmNoIGlzIGRvbmUgaGVyZSAK KyAgICAgICAgIGlmICggbV90cmllZFJlZmluZWRTZWFyY2ggPT0gLTEgKQorICAgICAgICAgewor ICAgICAgICAgICAgIGRlYnVnKCkgPDwgIldlIGFscmVhZHkgdHJpZWQgc29tZSByZWZpbmVkIHNl YXJjaC4gTGV0cyBlbmQgdGhpcyBtYWRuZXNzLi4uIjsKK2RpZmYgLS1naXQgYS9zcmMvY29udGV4 dC9lbmdpbmVzL3dpa2lwZWRpYS9hbWFyb2stZGF0YS1lbmdpbmUtd2lraXBlZGlhLmRlc2t0b3Ag Yi9zcmMvY29udGV4dC9lbmdpbmVzL3dpa2lwZWRpYS9hbWFyb2stZGF0YS1lbmdpbmUtd2lraXBl ZGlhLmRlc2t0b3AKK2luZGV4IDRlODY0ZWIuLmE5N2ZjM2MgMTAwNjQ0CistLS0gYS9zcmMvY29u dGV4dC9lbmdpbmVzL3dpa2lwZWRpYS9hbWFyb2stZGF0YS1lbmdpbmUtd2lraXBlZGlhLmRlc2t0 b3AKKysrKyBiL3NyYy9jb250ZXh0L2VuZ2luZXMvd2lraXBlZGlhL2FtYXJvay1kYXRhLWVuZ2lu ZS13aWtpcGVkaWEuZGVza3RvcAorQEAgLTMzLDcgKzMzLDcgQEAgTmFtZVtwbF09TW9kdcWCIGRh bnljaCBXaWtpcGVkaWkKKyBOYW1lW3B0XT1Nb3RvciBkZSBEYWRvcyBkbyBXaWtpcMOpZGlhCisg TmFtZVtwdF9CUl09TWVjYW5pc21vIGRlIERhZG9zIGRhIFdpa2lwZWRpYQorIE5hbWVbcm9dPU1v dG9yIGRlIGRhdGUgV2lraXBlZGlhCistTmFtZVtydV090JTQstC40LbQvtC6INC00LDQvdC90YvR hSDQktC40LrQuNC/0LXQtNC40LgKKytOYW1lW3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC9 0YvRhSDQktC40LrQuNC/0LXQtNC40LgKKyBOYW1lW3NsXT1Qb2RhdGtvdm5pIHBvZ29uIHphIFdp a2lwZWRpam8KKyBOYW1lW3NyXT3QlNCw0YLQvtC80L7RgtC+0YAg0JLQuNC60LjQv9C10LTQuNGY 0LUKKyBOYW1lW3NyQGxhdGluXT1EYXRvbW90b3IgV2lraXBlZGlqZQorZGlmZiAtLWdpdCBhL3Ny Yy9jb250ZXh0L3NjcmlwdGVuZ2luZS9qYXZhc2NyaXB0L2FtYXJvay1zY3JpcHRlbmdpbmUtYXBw bGV0LXNpbXBsZS1qYXZhc2NyaXB0LmRlc2t0b3AgYi9zcmMvY29udGV4dC9zY3JpcHRlbmdpbmUv amF2YXNjcmlwdC9hbWFyb2stc2NyaXB0ZW5naW5lLWFwcGxldC1zaW1wbGUtamF2YXNjcmlwdC5k ZXNrdG9wCitpbmRleCA0OTljNTg3Li5kNGI1MGU5IDEwMDY0NAorLS0tIGEvc3JjL2NvbnRleHQv c2NyaXB0ZW5naW5lL2phdmFzY3JpcHQvYW1hcm9rLXNjcmlwdGVuZ2luZS1hcHBsZXQtc2ltcGxl LWphdmFzY3JpcHQuZGVza3RvcAorKysrIGIvc3JjL2NvbnRleHQvc2NyaXB0ZW5naW5lL2phdmFz Y3JpcHQvYW1hcm9rLXNjcmlwdGVuZ2luZS1hcHBsZXQtc2ltcGxlLWphdmFzY3JpcHQuZGVza3Rv cAorQEAgLTE4LDYgKzE4LDcgQEAgTmFtZVtubl09SmF2YVNjcmlwdC1lbGVtZW50IGZvciBBbWFy b2sKKyBOYW1lW3BsXT1BcGxldCBKYXZhU2NyaXB0dSBBbWFyb2thCisgTmFtZVtwdF09J0FwcGxl dCcgZGUgSmF2YVNjcmlwdCBkbyBBbWFyb2sKKyBOYW1lW3B0X0JSXT1NaW5pYXBsaWNhdGl2byBK YXZhU2NyaXB0IGRvIEFtYXJvaworK05hbWVbcnVdPdCQ0L/Qu9C10YIgSmF2YVNjcmlwdCDQtNC7 0Y8gQW1hcm9rCisgTmFtZVtzcl090IjQsNCy0LDRgdC60YDQuNC/0YLQvdC4INCw0L/Qu9C10YIg 0LfQsCDQkNC80LDRgNC+0LoKKyBOYW1lW3NyQGxhdGluXT1KYXZhc2NyaXB0IGFwbGV0IHphIEFt YXJvaworIE5hbWVbc3ZdPUFtYXJvayBKYXZhc2NyaXB0LW1pbmlwcm9ncmFtCitAQCAtNDUsNiAr NDYsNyBAQCBDb21tZW50W25uXT1Jbm5lYnlnZCBBbWFyb2stZWxlbWVudCBza3JpdmVuIGkgSmF2 YVNjcmlwdAorIENvbW1lbnRbcGxdPU5hdHl3bnkgYXBwbGV0IEFtYXJva2EgbmFwaXNhbnkgdyBK YXZhU2NyaXBjaWUKKyBDb21tZW50W3B0XT1VbWEgJ2FwcGxldCcgbmF0aXZhIGRvIEFtYXJvaywg ZmVpdGEgZW0gSmF2YVNjcmlwdAorIENvbW1lbnRbcHRfQlJdPU1pbmlhcGxpY2F0aXZvIG5hdGl2 byBkbyBBbWFyb2sgZXNjcml0byBlbSBKYXZhU2NyaXB0CisrQ29tbWVudFtydV090JDQv9C70LXR giBBbWFyb2ssINC90LDQv9C40YHQsNC90L3Ri9C5INC90LAg0Y/Qt9GL0LrQtSBKYXZhU2NyaXB0 CisgQ29tbWVudFtzcl090KHQsNC80L7RgdCy0L7RmNC90Lgg0JDQvNCw0YDQvtC60L7QsiDQsNC/ 0LvQtdGCINC90LDQv9C40YHQsNC9INGDINGY0LDQstCw0YHQutGA0LjQv9GC0YMKKyBDb21tZW50 W3NyQGxhdGluXT1TYW1vc3Zvam5pIEFtYXJva292IGFwbGV0IG5hcGlzYW4gdSBKYXZhU2NyaXB0 dQorIENvbW1lbnRbc3ZdPUVnZXQgQW1hcm9rIG1pbmlwcm9ncmFtIHNrcml2ZXQgaSBKYXZhc2Ny aXB0CitkaWZmIC0tZ2l0IGEvc3JjL2NvbnRleHQvc2NyaXB0ZW5naW5lL2phdmFzY3JpcHQvYW1h cm9rLXNjcmlwdGVuZ2luZS1ydW5uZXItamF2YXNjcmlwdC5kZXNrdG9wIGIvc3JjL2NvbnRleHQv c2NyaXB0ZW5naW5lL2phdmFzY3JpcHQvYW1hcm9rLXNjcmlwdGVuZ2luZS1ydW5uZXItamF2YXNj cmlwdC5kZXNrdG9wCitpbmRleCBhYTc5ZDczLi41NjcyYjhmIDEwMDY0NAorLS0tIGEvc3JjL2Nv bnRleHQvc2NyaXB0ZW5naW5lL2phdmFzY3JpcHQvYW1hcm9rLXNjcmlwdGVuZ2luZS1ydW5uZXIt amF2YXNjcmlwdC5kZXNrdG9wCisrKysgYi9zcmMvY29udGV4dC9zY3JpcHRlbmdpbmUvamF2YXNj cmlwdC9hbWFyb2stc2NyaXB0ZW5naW5lLXJ1bm5lci1qYXZhc2NyaXB0LmRlc2t0b3AKK0BAIC0x Nyw2ICsxNyw3IEBAIE5hbWVbbm5dPUphdmFTY3JpcHQta8O4eXJhciBmb3IgQW1hcm9rCisgTmFt ZVtwbF09SmF2YVNjcmlwdCBSdW5uZXIgQW1hcm9rYQorIE5hbWVbcHRdPUV4ZWN1w6fDo28gZGUg SmF2YVNjcmlwdCBkbyBBbWFyb2sKKyBOYW1lW3B0X0JSXT1FeGVjdXRvciBKYXZhU2NyaXB0IGRv IEFtYXJvaworK05hbWVbcnVdPdCc0L7QtNGD0LvRjCDQt9Cw0L/Rg9GB0LrQsCBKYXZhU2NyaXB0 INC00LvRjyBBbWFyb2sKKyBOYW1lW3NyXT3QkNC80LDRgNC+0LrQvtCyINC40LfQstC+0ZLQsNGH INGY0LDQstCw0YHQutGA0LjQv9GC0LAKKyBOYW1lW3NyQGxhdGluXT1BbWFyb2tvdiBpenZvxJFh xI0gSmF2YVNjcmlwdGEKKyBOYW1lW3N2XT1BbWFyb2sgSmF2YXNjcmlwdC1rw7ZycHJvZ3JhbQor ZGlmZiAtLWdpdCBhL3NyYy9jb250ZXh0L3NlcnZpY2V0eXBlcy9hbWFyb2tfZGF0YV9lbmdpbmUu ZGVza3RvcCBiL3NyYy9jb250ZXh0L3NlcnZpY2V0eXBlcy9hbWFyb2tfZGF0YV9lbmdpbmUuZGVz a3RvcAoraW5kZXggNmU0MmIyYi4uZmFjMWQxZiAxMDA2NDQKKy0tLSBhL3NyYy9jb250ZXh0L3Nl cnZpY2V0eXBlcy9hbWFyb2tfZGF0YV9lbmdpbmUuZGVza3RvcAorKysrIGIvc3JjL2NvbnRleHQv c2VydmljZXR5cGVzL2FtYXJva19kYXRhX2VuZ2luZS5kZXNrdG9wCitAQCAtMzMsNyArMzMsNyBA QCBOYW1lW3BsXT1Nb2R1xYIgZGFueWNoIEFtYXJva2EKKyBOYW1lW3B0XT1Nb3RvciBkZSBEYWRv cyBkbyBBbWFyb2sKKyBOYW1lW3B0X0JSXT1Nb3RvciBkZSBEYWRvcyBkbyBBbWFyb2sKKyBOYW1l W3JvXT1Nb3RvciBkZSBkYXRlIEFtYXJvaworLU5hbWVbcnVdPdCU0LLQuNC20L7QuiDQtNCw0L3Q vdGL0YUgQW1hcm9rCisrTmFtZVtydV090JjRgdGC0L7Rh9C90LjQuiDQtNCw0L3QvdGL0YUgQW1h cm9rCisgTmFtZVtzbF09UG9kYXRrb3ZuaSBwb2dvbiB6YSBBbWFyb2sKKyBOYW1lW3NyXT3QlNCw 0YLQvtC80L7RgtC+0YAg0JDQvNCw0YDQvtC60LAKKyBOYW1lW3NyQGxhdGluXT1EYXRvbW90b3Ig QW1hcm9rYQorQEAgLTgzLDcgKzgzLDcgQEAgQ29tbWVudFtwbF09TW9kdcWCIGRhbnljaCBBbWFy b2thCisgQ29tbWVudFtwdF09TW90b3IgZGUgRGFkb3MgZG8gQW1hcm9rCisgQ29tbWVudFtwdF9C Ul09TWVjYW5pc21vIGRlIERhZG9zIGRvIEFtYXJvaworIENvbW1lbnRbcm9dPU1vdG9yIGRlIGRh dGUgQW1hcm9rCistQ29tbWVudFtydV090JTQstC40LbQvtC6INC00LDQvdC90YvRhSBBbWFyb2sK KytDb21tZW50W3J1XT3QmNGB0YLQvtGH0L3QuNC6INC00LDQvdC90YvRhSBBbWFyb2sKKyBDb21t ZW50W3NsXT1Qb2RhdGtvdm5pIHBvZ29uIHphIEFtYXJvaworIENvbW1lbnRbc3JdPdCU0LDRgtC+ 0LzQvtGC0L7RgCDQkNC80LDRgNC+0LrQsAorIENvbW1lbnRbc3JAbGF0aW5dPURhdG9tb3RvciBB bWFyb2thCitkaWZmIC0tZ2l0IGEvc3JjL2RpYWxvZ3MvVGFnRGlhbG9nLmNwcCBiL3NyYy9kaWFs b2dzL1RhZ0RpYWxvZy5jcHAKK2luZGV4IDU4ZjJlZjQuLjA4ZGY4NjggMTAwNjQ0CistLS0gYS9z cmMvZGlhbG9ncy9UYWdEaWFsb2cuY3BwCisrKysgYi9zcmMvZGlhbG9ncy9UYWdEaWFsb2cuY3Bw CitAQCAtODg4LDcgKzg4OCw3IEBAIHZvaWQgVGFnRGlhbG9nOjpyZWFkVGFncygpCisgICAgIGlm KCBtX2N1cnJlbnREYXRhLmNvbnRhaW5zKCBNZXRhOjpGaWVsZDo6Q09NUE9TRVIgKSApCisgICAg ICAgICBzZWxlY3RPckluc2VydFRleHQoIG1fY3VycmVudERhdGEudmFsdWUoIE1ldGE6OkZpZWxk OjpDT01QT1NFUiApLnRvU3RyaW5nKCksIHVpLT5rQ29tYm9Cb3hfY29tcG9zZXIgKTsKKyAgICAg ZWxzZQorLSAgICAgICAgc2VsZWN0T3JJbnNlcnRUZXh0KCBRU3RyaW5nKCksIHVpLT5rQ29tYm9C b3hfZ2VucmUgKTsKKysgICAgICAgIHNlbGVjdE9ySW5zZXJ0VGV4dCggUVN0cmluZygpLCB1aS0+ a0NvbWJvQm94X2NvbXBvc2VyICk7CisgICAgIHVpLT5yYXRpbmdXaWRnZXQtPnNldFJhdGluZygg bV9jdXJyZW50RGF0YS52YWx1ZSggTWV0YTo6RmllbGQ6OlJBVElORyApLnRvSW50KCkgKTsKKyAg ICAgdWktPnJhdGluZ1dpZGdldC0+c2V0TWF4UmF0aW5nKCAxMCApOworICAgICB1aS0+cVNwaW5C b3hfdHJhY2stPnNldFZhbHVlKCBtX2N1cnJlbnREYXRhLnZhbHVlKCBNZXRhOjpGaWVsZDo6VFJB Q0tOVU1CRVIgKS50b0ludCgpICk7CitkaWZmIC0tZ2l0IGEvc3JjL2ltYWdlcy9zcGxhc2hfc2Ny ZWVuLmpwZyBiL3NyYy9pbWFnZXMvc3BsYXNoX3NjcmVlbi5qcGcKK2luZGV4IDY1MjFlYWQuLjcw YTYzM2IgMTAwNjQ0CitCaW5hcnkgZmlsZXMgYS9zcmMvaW1hZ2VzL3NwbGFzaF9zY3JlZW4uanBn IGFuZCBiL3NyYy9pbWFnZXMvc3BsYXNoX3NjcmVlbi5qcGcgZGlmZmVyCitkaWZmIC0tZ2l0IGEv c3JjL21haW4uY3BwIGIvc3JjL21haW4uY3BwCitpbmRleCA4NWU3Yzg4Li5lYmM4MzAwIDEwMDY0 NAorLS0tIGEvc3JjL21haW4uY3BwCisrKysgYi9zcmMvbWFpbi5jcHAKK0BAIC00MCw3ICs0MCw3 IEBAIGludCBtYWluKCBpbnQgYXJnYywgY2hhciAqYXJndltdICkKKyAgICAgICAgICAgICBraTE4 bigiRGV2ZWxvcGVyIChoeWRyb2dlbikiKSwgInBhcmFsbGVsZ3JhcGVmcnVpdEBnbWFpbC5jb20i ICk7CisgICAgIGFib3V0RGF0YS5hZGRBdXRob3IoIGtpMThuKCJJYW4gJ1RoZSBCZWFyZCcgTW9u cm9lIiksCisgICAgICAgICAgICAga2kxOG4oIkRldmVsb3BlciAoZWVhbikiKSwgImlhbkBtb25y b2UubnUiLCAiaHR0cDovL3d3dy5tb25yb2UubnUvIiApOworLSAgICBhYm91dERhdGEuYWRkQXV0 aG9yKCBraTE4bigiSmVmZiAnSVJPQ0tTT0hBUkQnIE1pdGNoZWxsIiksCisrICAgIGFib3V0RGF0 YS5hZGRBdXRob3IoIGtpMThuKCJKZWZmICdJUk9LU09IQVJEJyBNaXRjaGVsbCIpLAorICAgICAg ICAgICAgIGtpMThuKCJEZXZlbG9wZXIgKGplZmZlcmFpKSIpLCAibWl0Y2hlbGxAa2RlLm9yZyIs ICJodHRwOi8vYW1hcm9rLmtkZS5vcmcvYmxvZy9jYXRlZ29yaWVzLzEzLWplZmZlcmFpIiApOwor ICAgICBhYm91dERhdGEuYWRkQXV0aG9yKCBraTE4bigiTGVvIEZyYW5jaGkiKSwKKyAgICAgICAg ICAgICBraTE4bigiRGV2ZWxvcGVyIChsZnJhbmNoaSkiKSwgImxmcmFuY2hpQGtkZS5vcmciICk7 CitkaWZmIC0tZ2l0IGEvc3JjL3BsYXlsaXN0L1BsYXlsaXN0TW9kZWwuY3BwIGIvc3JjL3BsYXls aXN0L1BsYXlsaXN0TW9kZWwuY3BwCitpbmRleCBiNDYzMDBjLi5jNmFkNjE2IDEwMDY0NAorLS0t IGEvc3JjL3BsYXlsaXN0L1BsYXlsaXN0TW9kZWwuY3BwCisrKysgYi9zcmMvcGxheWxpc3QvUGxh eWxpc3RNb2RlbC5jcHAKK0BAIC02MTAsNiArNjEwLDcgQEAgUGxheWxpc3Q6Ok1vZGVsOjptZXRh ZGF0YUNoYW5nZWQoIE1ldGE6OlRyYWNrUHRyIHRyYWNrICkKKyAgICAgICAgIHsKKyAgICAgICAg ICAgICBlbWl0IGRhdGFDaGFuZ2VkKCBjcmVhdGVJbmRleCggaSwgMCApLCBjcmVhdGVJbmRleCgg aSwgY29sdW1uQ291bnQoKSAtIDEgKSApOworICAgICAgICAgICAgIGVtaXQgbWV0YWRhdGFVcGRh dGVkKCk7CisrICAgICAgICAgICAgZGVidWcoKTw8Ik1ldGFkYXRhIHVwZGF0ZWQgZm9yIHRyYWNr Ijw8dHJhY2stPnByZXR0eU5hbWUoKTsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0K KyAgICAgfQorQEAgLTYyMSwxMyArNjIyLDEyIEBAIFBsYXlsaXN0OjpNb2RlbDo6bWV0YWRhdGFD aGFuZ2VkKCBNZXRhOjpBbGJ1bVB0ciBhbGJ1bSApCisgICAgIE1ldGE6OlRyYWNrTGlzdCB0cmFj a3MgPSBhbGJ1bS0+dHJhY2tzKCk7CisgICAgIGZvcmVhY2goIE1ldGE6OlRyYWNrUHRyIHRyYWNr LCB0cmFja3MgKQorICAgICAgICAgbWV0YWRhdGFDaGFuZ2VkKCB0cmFjayApOworKyAgICBkZWJ1 ZygpPDwiQWxidW0gbWV0YWRhdGEgY2hhbmdlZCI7CisgfQorIAorIGJvb2wKKyBQbGF5bGlzdDo6 TW9kZWw6OmV4cG9ydFBsYXlsaXN0KCBjb25zdCBRU3RyaW5nICZwYXRoICkgY29uc3QKKyB7Cist ICAgIERFQlVHX0JMT0NLCistICAgIGRlYnVnKCkgPDwgIldBUk5JTkc6IFlvdSBzaG91bGRuJ3Qg c2VlIHRoaXMgYXQgYW55IHRpbWUgZXhjZXB0IG9uIGV4aXQuIjsKKyAgICAgcmV0dXJuIFRoZTo6 cGxheWxpc3RNYW5hZ2VyKCktPmV4cG9ydFBsYXlsaXN0KCB0cmFja3MoKSwgcGF0aCApOworIH0K KyAKK2RpZmYgLS1naXQgYS9zcmMvcGxheWxpc3QvcHJveHltb2RlbHMvRmlsdGVyUHJveHkuY3Bw IGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL0ZpbHRlclByb3h5LmNwcAoraW5kZXggMjM0MWJl NC4uNTI1NDIzNiAxMDA2NDQKKy0tLSBhL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9GaWx0ZXJQ cm94eS5jcHAKKysrKyBiL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9GaWx0ZXJQcm94eS5jcHAK K0BAIC0zMiw3ICszMiw3IEBAIEZpbHRlclByb3h5OjpGaWx0ZXJQcm94eSggQWJzdHJhY3RNb2Rl bCAqYmVsb3dNb2RlbCwgUU9iamVjdCAqcGFyZW50ICkKKyAgICAgY29ubmVjdCggc291cmNlTW9k ZWwoKSwgU0lHTkFMKCByZW1vdmVkSWRzKCBjb25zdCBRTGlzdDxxdWludDY0PiYgKSApLCB0aGlz LCBTTE9UKCBzbG90UmVtb3ZlZElkcyggY29uc3QgUUxpc3Q8cXVpbnQ2ND4mICkgKSApOworICAg ICBjb25uZWN0KCBzb3VyY2VNb2RlbCgpLCBTSUdOQUwoIGFjdGl2ZVRyYWNrQ2hhbmdlZCggY29u c3QgcXVpbnQ2NCApICksIHRoaXMsIFNJR05BTCggYWN0aXZlVHJhY2tDaGFuZ2VkKCBxdWludDY0 ICkgKSApOworICAgICBjb25uZWN0KCBzb3VyY2VNb2RlbCgpLCBTSUdOQUwoIG1ldGFkYXRhVXBk YXRlZCgpICksIHRoaXMsIFNJR05BTCggbWV0YWRhdGFVcGRhdGVkKCkgKSApOworLSAgICBjb25u ZWN0KCB0aGlzLCBTSUdOQUwoIG1ldGFkYXRhVXBkYXRlZCgpICksIHRoaXMsIFNMT1QoIGludmFs aWRhdGUoKSApICk7CisrICAgIGNvbm5lY3QoIHRoaXMsIFNJR05BTCggbWV0YWRhdGFVcGRhdGVk KCkgKSwgdGhpcywgU0xPVCggc2xvdEludmFsaWRhdGVGaWx0ZXIoKSApICk7CisgCisgICAgIEtD b25maWdHcm91cCBjb25maWcgPSBBbWFyb2s6OmNvbmZpZygiUGxheWxpc3QgU2VhcmNoIik7Cisg ICAgIG1fcGFzc1Rocm91Z2ggPSAhY29uZmlnLnJlYWRFbnRyeSggIlNob3dPbmx5TWF0Y2hlcyIs IHRydWUgKTsKK2RpZmYgLS1naXQgYS9zcmMvcGxheWxpc3QvcHJveHltb2RlbHMvRmlsdGVyUHJv eHkuaCBiL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9GaWx0ZXJQcm94eS5oCitpbmRleCA0Nzg3 NmFkLi42NWVjZTA5IDEwMDY0NAorLS0tIGEvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL0ZpbHRl clByb3h5LmgKKysrKyBiL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9GaWx0ZXJQcm94eS5oCitA QCAtMTIyLDYgKzEyMiwxMiBAQCBwcm90ZWN0ZWQgc2xvdHM6CisgICAgICAqLworICAgICB2b2lk IHNsb3RSZW1vdmVkSWRzKCBjb25zdCBRTGlzdDxxdWludDY0PiAmaWRzICk7CisgCisrICAgIC8q KgorKyAgICAgKiBTbG90IHRoYXQgd3JhcHMgYXJvdW5kIHRoZSBtZXRob2QgaW52YWxpZGF0ZUZp bHRlcigpIHNvIG9uZSBkb2Vzbid0IHRyaWdnZXIgdGhlCisrICAgICAqIHNvcnRpbmcgaW52YWxp ZGF0aW9uIHRvbyBieSB1c2luZyBpbnZhbGlkYXRlKCkuCisrICAgICAqLworKyAgICB2b2lkIHNs b3RJbnZhbGlkYXRlRmlsdGVyKCl7IGludmFsaWRhdGVGaWx0ZXIoKTsgfQorKworIHNpZ25hbHM6 CisgICAgIC8qKgorICAgICAgKiBTaWduYWwgZm9yd2FyZGVkIGZyb20gdGhlIHNvdXJjZSBtb2Rl bC4KK2RpZmYgLS1naXQgYS9zcmMvcGxheWxpc3QvcHJveHltb2RlbHMvU29ydFByb3h5LmNwcCBi L3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9Tb3J0UHJveHkuY3BwCitpbmRleCA0NjY1M2MxLi5l ZmJhMmNkIDEwMDY0NAorLS0tIGEvc3JjL3BsYXlsaXN0L3Byb3h5bW9kZWxzL1NvcnRQcm94eS5j cHAKKysrKyBiL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9Tb3J0UHJveHkuY3BwCitAQCAtMzUs NyArMzUsNyBAQCBTb3J0UHJveHk6OlNvcnRQcm94eSggQWJzdHJhY3RNb2RlbCAqYmVsb3dNb2Rl bCwgUU9iamVjdCAqcGFyZW50ICkKKyAgICAgY29ubmVjdCggc291cmNlTW9kZWwoKSwgU0lHTkFM KCByZW1vdmVkSWRzKCBjb25zdCBRTGlzdDxxdWludDY0PiYgKSApLCB0aGlzLCBTSUdOQUwoIHJl bW92ZWRJZHMoIGNvbnN0IFFMaXN0PCBxdWludDY0ID4mICkgKSApOworICAgICBjb25uZWN0KCBz b3VyY2VNb2RlbCgpLCBTSUdOQUwoIGFjdGl2ZVRyYWNrQ2hhbmdlZCggY29uc3QgcXVpbnQ2NCAp ICksIHRoaXMsIFNJR05BTCggYWN0aXZlVHJhY2tDaGFuZ2VkKCBxdWludDY0ICkgKSApOworICAg ICBjb25uZWN0KCBzb3VyY2VNb2RlbCgpLCBTSUdOQUwoIG1ldGFkYXRhVXBkYXRlZCgpICksIHRo aXMsIFNJR05BTCggbWV0YWRhdGFVcGRhdGVkKCkgKSApOworLSAgICBjb25uZWN0KCB0aGlzLCBT SUdOQUwoIG1ldGFkYXRhVXBkYXRlZCgpICksIHRoaXMsIFNMT1QoIGludmFsaWRhdGUoKSApICk7 CisrICAgIGNvbm5lY3QoIHRoaXMsIFNJR05BTCggbWV0YWRhdGFVcGRhdGVkKCkgKSwgdGhpcywg U0xPVCggaW52YWxpZGF0ZVNvcnRpbmcoKSApICk7CisgCisgICAgIC8vbmVlZGVkIGJ5IEdyb3Vw aW5nUHJveHk6CisgICAgIGNvbm5lY3QoIHNvdXJjZU1vZGVsKCksIFNJR05BTCggbGF5b3V0Q2hh bmdlZCgpICksIHRoaXMsIFNJR05BTCggbGF5b3V0Q2hhbmdlZCgpICkgKTsKK0BAIC00OCw2ICs0 OCwyNyBAQCBTb3J0UHJveHk6On5Tb3J0UHJveHkoKQorIHZvaWQKKyBTb3J0UHJveHk6OmludmFs aWRhdGVTb3J0aW5nKCkKKyB7CisrICAgIGlmKCBtX3NjaGVtZS5sZW5ndGgoKSApCisrICAgIHsK KysgICAgICAgIGlmKCAhKCBtX3NjaGVtZS5sZXZlbCggbV9zY2hlbWUubGVuZ3RoKCkgLSAxICku Y2F0ZWdvcnkoKSA9PSAtMSApICkgLy9pZiBpdCdzIG5vdCByYW5kb20KKysgICAgICAgIHsKKysg ICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisrICAgICAgICB9CisrICAgIH0KKysgICAgZWxzZQor KyAgICAgICAgaW52YWxpZGF0ZSgpOworKyAgICAvL0ZJWE1FOiB0aGlzIGlzIGEgYmFuZC1haWQg c28gdGhhdCB0aGUgcGxheWxpc3QgZG9lc24ndCByZXNodWZmbGUgZXZlcnkgdGltZSB0aGUgY3Vy cmVudCB0cmFjayBjaGFuZ2VzCisrICAgIC8vIEhvd2V2ZXIgdGhlIHJlYWwgaXNzdWUgaXMgZGVl cGVyLCB0aGUgT2JzZXJ2ZXIgc2VlbXMgdG8gbm90aWZ5IG1ldGFkYXRhQ2hhbmdlZCgpIGV2ZW4g aWYgdGhlIG1ldGFkYXRhCisrICAgIC8vIG9mIGEgdHJhY2sgZG9lc24ndCBjaGFuZ2UgYnV0IGp1 c3QgdGhlIGN1cnJlbnRseSBhY3RpdmUgdHJhY2sgY2hhbmdlcywgYW5kIHRoaXMgcmVzdWx0cyBp biB0aGUgcGxheWxpc3QKKysgICAgLy8gYmVpbmcgcmVzb3J0ZWQgb24gZXZlcnkgIm5leHQiLCAi cHJldmlvdXMiIG9yIHRyYWNrIHNlbGVjdGlvbi4gVHdpY2UuIFRoaXMgaXMgYSBCYWQgVGhpbmcg KFRNKSBhbmQgdmVyeQorKyAgICAvLyBpbmVmZmljaWVudC4KKysgICAgLy8gV2UncmUgc2hpcHBp bmcgMi4yIGFzIGl0IGlzLCBiZWNhdXNlIGl0J3Mgd2F5IHRvbyBsYXRlIHRvIGdvIHBva2luZyBh cm91bmQgT2JzZXJ2ZXIsIGJ1dCB0aGlzIG5lZWRzCisrICAgIC8vIHRvIGJlIHNvbHZlZCBBU0FQ IHBvc3QtMi4yLiAgICAgIC0tVMOpbyAyMy85LzIwMDkKKyt9CisrCisrdm9pZAorK1NvcnRQcm94 eTo6cmVzZXRTb3J0aW5nKCkKKyt7CisgICAgIG1fc2NoZW1lID0gU29ydFNjaGVtZSgpOworICAg ICByZXNldCgpOworIH0KK0BAIC02NCw3ICs4NSw3IEBAIFNvcnRQcm94eTo6bGVzc1RoYW4oIGNv bnN0IFFNb2RlbEluZGV4ICYgbGVmdCwgY29uc3QgUU1vZGVsSW5kZXggJiByaWdodCApIGNvbnN0 Cisgdm9pZAorIFNvcnRQcm94eTo6dXBkYXRlU29ydE1hcCggU29ydFNjaGVtZSBzY2hlbWUgKQor IHsKKy0gICAgaW52YWxpZGF0ZVNvcnRpbmcoKTsKKysgICAgcmVzZXRTb3J0aW5nKCk7CisgICAg IG1fc2NoZW1lID0gc2NoZW1lOworICAgICBzb3J0KCAwICk7ICAvLzAgaXMgYSBkdW1teSBjb2x1 bW4KKyAgICAgLy9IQUNLOiBzb3J0KCkgaW52ZXJ0cyB0aGUgc29ydE9yZGVyIG9uIGVhY2ggY2Fs bCwgdGhpcyBrZWVwcyB0aGUgb3JkZXIgYXNjZW5kaW5nLgorZGlmZiAtLWdpdCBhL3NyYy9wbGF5 bGlzdC9wcm94eW1vZGVscy9Tb3J0UHJveHkuaCBiL3NyYy9wbGF5bGlzdC9wcm94eW1vZGVscy9T b3J0UHJveHkuaAoraW5kZXggZWJjNzQ1Zi4uMzZjYjcwNCAxMDA2NDQKKy0tLSBhL3NyYy9wbGF5 bGlzdC9wcm94eW1vZGVscy9Tb3J0UHJveHkuaAorKysrIGIvc3JjL3BsYXlsaXN0L3Byb3h5bW9k ZWxzL1NvcnRQcm94eS5oCitAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWMgc2xvdHM6CisgICAgIC8q KgorICAgICAgKiBSZXNldHMgdGhlIHByb3h5IHRvIGl0cyBvcmlnaW5hbCBwYXNzLXRocm91Z2gg c3RhdGUuCisgICAgICAqLworLSAgICB2b2lkIGludmFsaWRhdGVTb3J0aW5nKCk7CisrICAgIHZv aWQgcmVzZXRTb3J0aW5nKCk7CisgCisgcHJvdGVjdGVkOgorICAgICAvKioKK0BAIC04Miw2ICs4 MiwxMiBAQCBwcm90ZWN0ZWQ6CisgICAgICAqLworICAgICB2aXJ0dWFsIGludCByb3dUb1NvdXJj ZSggaW50IHJvdyApIGNvbnN0OworIAorK3Byb3RlY3RlZCBzbG90czoKKysgICAgLyoqCisrICAg ICAqIFJlYXBwbGllcyB0aGUgY3VycmVudCBzb3J0aW5nIHNjaGVtZS4KKysgICAgICovCisrICAg IHZvaWQgaW52YWxpZGF0ZVNvcnRpbmcoKTsKKysKKyBwcml2YXRlOgorICAgICBTb3J0U2NoZW1l IG1fc2NoZW1lOyAgICAgICAgICAgICAgIC8vISBUaGUgY3VycmVudCBzb3J0aW5nIHNjaGVtZS4K KyB9OworZGlmZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9tcDN0dW5lcy9hbWFyb2tfc2VydmljZV9t cDN0dW5lcy5kZXNrdG9wIGIvc3JjL3NlcnZpY2VzL21wM3R1bmVzL2FtYXJva19zZXJ2aWNlX21w M3R1bmVzLmRlc2t0b3AKK2luZGV4IGQyYjNhNzkuLjhiMDkzN2QgMTAwNjQ0CistLS0gYS9zcmMv c2VydmljZXMvbXAzdHVuZXMvYW1hcm9rX3NlcnZpY2VfbXAzdHVuZXMuZGVza3RvcAorKysrIGIv c3JjL3NlcnZpY2VzL21wM3R1bmVzL2FtYXJva19zZXJ2aWNlX21wM3R1bmVzLmRlc2t0b3AKK0BA IC03MCw3ICs3MCw3IEBAIENvbW1lbnRbcGxdPVByemVnbMSFZGFqIGkgc8WCdWNoYWogbXV6eWtp IHByemVjaG93eXdhbmVqIG5hIHR3b2ltIGtvbmNpZSBNcDN0dW5lCisgQ29tbWVudFtwdF09TmF2 ZWdhciBlIGVzY3V0YXIgYSBtw7pzaWNhIGdyYXZhZGEgbmEgc3VhIGNvbnRhIGRvIG1wM3R1bmVz CisgQ29tbWVudFtwdF9CUl09TmF2ZWd1ZSBlIGVzY3V0ZSBhcyBtw7pzaWNhcyBhcm1hemVuYWRh cyBuYSBzdWEgY29udGEgZG8gbXAzdHVuZXMKKyBDb21tZW50W3JvXT1SxINzZm9pyJtpIMiZaSBh c2N1bHRhyJtpIG11emljYSBzdG9jYXTEgyDDrm4gY29udHVsIGR1bW5lYXZvYXN0csSDIG1wM3R1 bmVzCistQ29tbWVudFtydV090J7QsdC30L7RgCDQuCDQv9GA0L7RgdC70YPRiNC40LLQsNC90LjQ tSDQvNGD0LfRi9C60LgsINGB0L7RhdGA0LDQvdC10L3QvdC+0Lkg0LIg0LDQutC60LDRg9C90YLQ tSBNcDN0dW5lcworK0NvbW1lbnRbcnVdPdCe0LHQt9C+0YAg0Lgg0L/RgNC+0YHQu9GD0YjQuNCy 0LDQvdC40LUg0LzRg9C30YvQutC4LCDRgdC+0YXRgNCw0L3QtdC90L3QvtC5INCyINGD0YfRkdGC 0L3QvtC5INC30LDQv9C40YHQuCBNcDN0dW5lcworIENvbW1lbnRbc2xdPUJyc2thanRlIHBvIGds YXNiaSwga2kgam8gaW1hdGUgc2hyYW5qZW5vIG5hIHN2b2plbSByYcSNdW51IE1QM3R1bmVzLCBp biBqbyBwb3NsdcWhYWp0ZQorIENvbW1lbnRbc3JdPdCf0YDQtdCz0LvQtdC00LDRmNGC0LUg0Lgg 0YHQu9GD0YjQsNGY0YLQtSDQvNGD0LfQuNC60YMg0YHQsCDRgdCy0L7QsyDQvdCw0LvQvtCz0LAg 0L3QsCDQnNCfM+KAkdGC0ZjRg9C90YHRgworIENvbW1lbnRbc3JAbGF0aW5dPVByZWdsZWRhanRl IGkgc2x1xaFhanRlIG11emlrdSBzYSBzdm9nIG5hbG9nYSBuYSBNUDNUdW5lc3UKK2RpZmYgLS1n aXQgYS9zcmMvc2VydmljZXMvb3BtbGRpcmVjdG9yeS9hbWFyb2tfc2VydmljZV9vcG1sZGlyZWN0 b3J5LmRlc2t0b3AgYi9zcmMvc2VydmljZXMvb3BtbGRpcmVjdG9yeS9hbWFyb2tfc2VydmljZV9v cG1sZGlyZWN0b3J5LmRlc2t0b3AKK2luZGV4IGY4MjFlMTcuLjAzYzA4YzggMTAwNjQ0CistLS0g YS9zcmMvc2VydmljZXMvb3BtbGRpcmVjdG9yeS9hbWFyb2tfc2VydmljZV9vcG1sZGlyZWN0b3J5 LmRlc2t0b3AKKysrKyBiL3NyYy9zZXJ2aWNlcy9vcG1sZGlyZWN0b3J5L2FtYXJva19zZXJ2aWNl X29wbWxkaXJlY3RvcnkuZGVza3RvcAorQEAgLTI3LDcgKzI3LDcgQEAgTmFtZVtwbF09S2F0YWxv ZyBwb2RjYXN0w7N3CisgTmFtZVtwdF09UGFzdGEgZGUgJ1BvZGNhc3RzJworIE5hbWVbcHRfQlJd PVBvZGNhc3QgRGlyZWN0b3J5CisgTmFtZVtyb109RGlyZWN0b3IgUG9kY2FzdAorLU5hbWVbcnVd PdCa0LDRgtCw0LvQvtCzINC00LvRjyBwb2RjYXN0J9C+0LIKKytOYW1lW3J1XT3QmtCw0YLQsNC7 0L7QsyDQv9C+0LTQutCw0YHRgtC+0LIKKyBOYW1lW3NsXT1JbWVuaWsgcG9kY2FzdG92CisgTmFt ZVtzcl090KTQsNGB0YbQuNC60LvQsCDQv9C+0LTQtdC80LjRgdC40ZjQsAorIE5hbWVbc3JAbGF0 aW5dPUZhc2Npa2xhIHBvZGVtaXNpamEKK0BAIC02OSw3ICs2OSw3IEBAIENvbW1lbnRbcGxdPVBy emVnbMSFZGFqIGkgemFwaXN6IHNpxJkgZG8gb2dyb21uZWogbGlzdHkgcG9kY2FzdMOzdworIENv bW1lbnRbcHRdPU5hdmVnYXIgZSBpbnNjcmV2ZXIgbnVtYSBlbm9ybWUgbGlzdGEgZGUgJ3BvZGNh c3RzJworIENvbW1lbnRbcHRfQlJdPU5hdmVndWUgZSBpbnNjcsOqdmEtc2Ugw6AgdW1hIGxpc3Rh IGVub3JtZSBkZSBwb2RjYXN0cworIENvbW1lbnRbcm9dPVLEg3Nmb2nIm2kgyJlpIGFib25hyJtp LXbEgyBsYSBvIGxpc3TEgyB1cmlhyJnEgyBkZSBwb2RjYXN0dXJpCistQ29tbWVudFtydV090J7Q sdC30L7RgCDQuCDQv9C+0LTQv9C40YHQutCwINC90LAg0L7Qs9GA0L7QvNC90YvQuSDRgdC/0LjR gdC+0LogcG9kY2FzdCfQvtCyCisrQ29tbWVudFtydV090J7QsdC30L7RgCDQuCDQv9C+0LTQv9C4 0YHQutCwINC90LAg0L7Qs9GA0L7QvNC90YvQuSDRgdC/0LjRgdC+0Log0L/QvtC00LrQsNGB0YLQ vtCyCisgQ29tbWVudFtzbF09QnJza2FqdGUgcG8gb2JzZcW+bmkgemJpcmtpIHBvZGNhc3RvdiBp biBzZSBuYXJvxI1pdGUgbmFuamUKKyBDb21tZW50W3NyXT3Qn9GA0LXQs9C70LXQtNCw0ZjRgtC1 INC4INC/0YDQtdGC0L/Qu9Cw0YLQuNGC0LUg0YHQtSDQvdCwINC+0LPRgNC+0LzQvdGDINC70LjR gdGC0YMg0L/QvtC00LXQvNC40YHQuNGY0LAKKyBDb21tZW50W3NyQGxhdGluXT1QcmVnbGVkYWp0 ZSBpIHByZXRwbGF0aXRlIHNlIG5hIG9ncm9tbnUgbGlzdHUgcG9kZW1pc2lqYQo=