ZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0NSRURJVFMudHh0IGIvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKaW5kZXggZWY5YzQ1MC4uNmY0ZTk1ZCAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKKysrIGIvTGliL2lkbGVsaWIvQ1JFRElUUy50eHQKQEAgLTIzLDggKzIzLDggQEAKIGludGVncmF0aW9uIGFuZCBwZXJzaXN0ZW50IGJyZWFrcG9pbnRzKS4KIAogU2NvdHQgRGF2aWQgRGFuaWVscywgSGVybmFuIEZvZmZhbmksIENocmlzdG9zIEdlb3JnaW91LCBNYXJ0aW4gdi4gTPZ3aXMsIAotSmFzb24gT3JlbmRvcmZmLCBOb2FtIFJhcGhhZWwsIEpvc2ggUm9iYiwgTmlnZWwgUm93ZSwgYW5kIEJydWNlIFNoZXJ3b29kIGhhdmUKLXN1Ym1pdHRlZCB1c2VmdWwgcGF0Y2hlcy4gIFRoYW5rcywgZ3V5cyEKK0phc29uIE9yZW5kb3JmZiwgTm9hbSBSYXBoYWVsLCBKb3NoIFJvYmIsIE5pZ2VsIFJvd2UsIEJydWNlIFNoZXJ3b29kLCBhbmQKK0plZmYgU2h1dGUgaGF2ZSBzdWJtaXR0ZWQgdXNlZnVsIHBhdGNoZXMuICBUaGFua3MsIGd1eXMhCiAKIEZvciBhZGRpdGlvbmFsIGRldGFpbHMgcmVmZXIgdG8gTkVXUy50eHQgYW5kIENoYW5nZWxvZy4KIApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvQ29sb3JEZWxlZ2F0b3IucHkgYi9MaWIvaWRsZWxpYi9Db2xvckRlbGVnYXRvci5weQppbmRleCAwMTllNWQ0Li5mMjU4YjM0IDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9Db2xvckRlbGVnYXRvci5weQorKysgYi9MaWIvaWRsZWxpYi9Db2xvckRlbGVnYXRvci5weQpAQCAtMjM3LDYgKzIzNyw5IEBACiAgICAgICAgICAgICAgICAgICAgIGlmIERFQlVHOiBwcmludCAiY29sb3JpemluZyBzdG9wcGVkIgogICAgICAgICAgICAgICAgICAgICByZXR1cm4KIAorICAgIGRlZiByZW1vdmVjb2xvcnMoc2VsZik6CisgICAgICAgIGZvciB0YWcgaW4gc2VsZi50YWdkZWZzLmtleXMoKToKKyAgICAgICAgICAgIHNlbGYudGFnX3JlbW92ZSh0YWcsICIxLjAiLCAiZW5kIikKIAogZGVmIG1haW4oKToKICAgICBmcm9tIFBlcmNvbGF0b3IgaW1wb3J0IFBlcmNvbGF0b3IKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0VkaXRvcldpbmRvdy5weSBiL0xpYi9pZGxlbGliL0VkaXRvcldpbmRvdy5weQppbmRleCBlZDZiMWExLi5lZjgyNWYxIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9FZGl0b3JXaW5kb3cucHkKKysrIGIvTGliL2lkbGVsaWIvRWRpdG9yV2luZG93LnB5CkBAIC00OTEsNyArNDkxLDcgQEAKICAgICAgICAgICAgIHNlbGYuY2VudGVyKCkKIAogICAgIGRlZiBpc3B5dGhvbnNvdXJjZShzZWxmLCBmaWxlbmFtZSk6Ci0gICAgICAgIGlmIG5vdCBmaWxlbmFtZToKKyAgICAgICAgaWYgbm90IGZpbGVuYW1lIG9yIG9zLnBhdGguaXNkaXIoZmlsZW5hbWUpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgYmFzZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGZpbGVuYW1lKSkKICAgICAgICAgaWYgb3MucGF0aC5ub3JtY2FzZShleHQpIGluICgiLnB5IiwgIi5weXciKToKQEAgLTUzMiw2ICs1MzIsNyBAQAogICAgIGRlZiBybWNvbG9yaXplcihzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuY29sb3I6CiAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi5jb2xvci5yZW1vdmVjb2xvcnMoKQogICAgICAgICBzZWxmLnBlci5yZW1vdmVmaWx0ZXIoc2VsZi51bmRvKQogICAgICAgICBzZWxmLnBlci5yZW1vdmVmaWx0ZXIoc2VsZi5jb2xvcikKICAgICAgICAgc2VsZi5jb2xvciA9IE5vbmUKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL05FV1MudHh0IGIvTGliL2lkbGVsaWIvTkVXUy50eHQKaW5kZXggMDNiYTExNC4uMzQxZTI0MSAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvTkVXUy50eHQKKysrIGIvTGliL2lkbGVsaWIvTkVXUy50eHQKQEAgLTMsNiArMywxMCBAQAogCiAqUmVsZWFzZSBkYXRlOiBYWC1YWFgtMjAwNSoKIAorLSBOZXcgZmlsZXMgYXJlIGNvbG9yaXplZCBieSBkZWZhdWx0LCBhbmQgY29sb3JpemluZyBpcyByZW1vdmVkIHdoZW4KKyAgc2F2aW5nIGFzIG5vbi1QeXRob24gZmlsZXMuIFBhdGNoIDExOTY4OTUgSmVmZiBTaHV0ZQorICBDbG9zZXMgUHl0aG9uIEJ1Z3MgNzc1MDEyIGFuZCA4MDA0MzIsIHBhcnRpYWwgZml4IElETEVmb3JrIDc2MzUyNAorCiAtIEltcHJvdmUgc3VicHJvY2VzcyBsaW5rIGVycm9yIG5vdGlmaWNhdGlvbi4KIAogLSBydW4ucHk6IHVzZSBRdWV1ZSdzIGJsb2NraW5nIGZlYXR1cmUgaW5zdGVhZCBvZiBzbGVlcGluZyBpbiB0aGUgbWFpbgpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvaGVscC50eHQgYi9MaWIvaWRsZWxpYi9oZWxwLnR4dAppbmRleCBlOTFlOGM2Li42ZDJiYTJmIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9oZWxwLnR4dAorKysgYi9MaWIvaWRsZWxpYi9oZWxwLnR4dApAQCAtMTMyLDcgKzEzMiw4IEBACiAKIEJhc2ljIGVkaXRpbmcgYW5kIG5hdmlnYXRpb246CiAKLQlCYWNrc3BhY2UgZGVsZXRlcyB0byB0aGUgbGVmdDsgREVMIGRlbGV0ZXMgdG8gdGhlIHJpZ2h0LgorCUJhY2tzcGFjZSBkZWxldGVzIGNoYXIgdG8gdGhlIGxlZnQ7IERFTCBkZWxldGVzIGNoYXIgdG8gdGhlIHJpZ2h0LgorCUNvbnRyb2wtYmFja3NwYWNlIGRlbGV0ZXMgd29yZCBsZWZ0LCBDb250cm9sLURFTCBkZWxldGVzIHdvcmQgcmlnaHQuCiAJQXJyb3cga2V5cyBhbmQgUGFnZSBVcC9Eb3duIG1vdmUgYXJvdW5kLgogCUNvbnRyb2wtbGVmdC9yaWdodCBBcnJvdyBtb3ZlcyBieSB3b3JkcyBpbiBhIHN0cmFuZ2UgYnV0IHVzZWZ1bCB3YXkuCiAJSG9tZS9FbmQgZ28gdG8gYmVnaW4vZW5kIG9mIGxpbmUuCg==