From kde-kimageshop Tue Jun 28 15:54:46 2016 From: Wolthera van Hovell tot Westerflier Date: Tue, 28 Jun 2016 15:54:46 +0000 To: kde-kimageshop Subject: [krita] /: Merge in softproofing and ocio looks. Message-Id: X-MARC-Message: https://marc.info/?l=kde-kimageshop&m=146712944720270 R2l0IGNvbW1pdCAwODA3ZWViMDFkMDI4NzMwMTliZGM4M2UzOWYxNWYwNWI0YzIzMWQ2IGJ5IFdv bHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyLgpDb21taXR0ZWQgb24gMjgvMDYvMjAx NiBhdCAxNTo1MC4KUHVzaGVkIGJ5IHdvbHRoZXJhdiBpbnRvIGJyYW5jaCAnbWFzdGVyJy4KCk1l cmdlIGluIHNvZnRwcm9vZmluZyBhbmQgb2NpbyBsb29rcy4KClRoZXNlIGZlYXR1cmVzIGFsbG93 IGZvciBiZXR0ZXIgd29ya2Zsb3cgaW4gZm9yIFByaW50IGFuZCBWRlggcmVzcGVjdGl2ZWx5LgpD aGVjayBodHRwczovL2RvY3Mua3JpdGEub3JnL1NvZnRfUHJvb2Zpbmcgb24gaG93IHRvIHVzZSBz b2Z0cHJvb2ZpbmcuCgpMb29rcyB3aWxsIHN0aWxsIG5lZWQgYSBsaXR0bGUgbm90ZSBhZGRlZCB0 byBMdXQgbWFuYWdlbWVudCBwYWdlLgoKQ0NNQUlMOmtpbWFnZXNob3BAa2RlLm9yZwpGaXhlcyBU MjM5NQoKU3F1YXNoZWQgY29tbWl0IG9mIHRoZSBmb2xsb3dpbmc6Cgpjb21taXQgMzhjNGZjMzIw MjFhZjc3OGI5NDQ2YTA1NTAyYzg4NTA4N2JjMGZmMgpNZXJnZTogNTQ3NzYxMSBlMzA4ZWQwCkF1 dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlA Z21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdW4gMjggMTc6NDY6MTYgMjAxNiArMDIwMAoKICAgIE1l cmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIGtyaXRhLXRlc3Rpbmctd29sdGhlcmEKCmNvbW1pdCA1 NDc3NjExOGI3OGEzZjMyYjQwOGRlMjVmOWM3YjM1MzI2MzBiNWRmCkF1dGhvcjogV29sdGhlcmEg dmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21haWwuY29tPgpEYXRl OiAgIFR1ZSBKdW4gMjggMTc6NDM6MjAgMjAxNiArMDIwMAoKICAgIEFkZCByYW50IHdoeSBwZXIt c2hvdCBsb29rcyB3b24ndCB3b3JrIGFmdGVyIHdhc3RpbmcgYWZ0ZXJub29uIG9uIGl0LgoKICAg IFRoZSB0bDtkciBpcyB0aGF0IE9DSU8ncyBkb2N1bWVudGF0aW9uIGlzIGV4dHJlbWVseSB2YWd1 ZS4KCiAgICBSZWYgVDIzMzcKCmNvbW1pdCBhM2IyMjRiNjk1OGRiMGMzMWEyZGY0YmE0N2QxOWQ4 N2JmOWY5ODMzCkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdy aWZmaW52YWxsZXlAZ21haWwuY29tPgpEYXRlOiAgIEZyaSBKdW4gMjQgMTM6MTY6MDEgMjAxNiAr MDIwMAoKICAgIEZpeCBsb2FkaW5nIG9mIGRlZmF1bHQgZ2FtdXQgd2FybmluZyBjb2xvci4KCiAg ICBBbHdheXMgc2V0IHRoZSBjb2xvciBzcGFjZSBvZiB0aGUga29jb2xvciwga2lkcy4KCiAgICBy ZWYgVDIzMzcKCmNvbW1pdCA2NTI0MDVkM2FjZDY3ZDRlODdkNzg4ZDBiNzdmYjY3NzY4YTVjYzNi CkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxs ZXlAZ21haWwuY29tPgpEYXRlOiAgIEZyaSBKdW4gMjQgMTI6NTQ6MTcgMjAxNiArMDIwMAoKICAg IEFkZCBhZGFwdGF0aW9uIHN0YXRlIHNsaWRlci4KCiAgICBUaGlzIGFsbG93cyB5b3UgdG8gc2V0 IHdoZXRoZXIgb3Igbm90IHRvIGFkYXB0IHRoZSB3aGl0ZSBwb2ludCwgdGhhdCBpcywKICAgIHRv IHNldCB0aGUgd2hpdGUgcG9pbnQgdG8gdGhlIHNjcmVlbiB3aGl0ZShmdWxsIHNsaWRlcikgb3Ig dG8gY29udmVydCBhbGwgd2hpdGVzb24gc2NyZWVuIHRvIHRoZSB3aGl0ZSBwb2ludCBvZiB0aGUg cHJvZmlsZSB3aGVuIHVzaW5nIGFic29sdXRlIGNvbG9yaW1ldHJpYwogICAgYXMgaW50ZW50LgoK ICAgIFRoaXMgaXMgdXNlZnVsIHRvIHNpbXVsYXRlIHBhcGVyLWNvbG91ci4KCiAgICBSZWYgVDIz MzcKCmNvbW1pdCBhZWE1MjVjYTZkYzEwYjY4NjcxNTNkYTUyZmNmMjE1YTgwYWRjMGJhCkF1dGhv cjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21h aWwuY29tPgpEYXRlOiAgIEZyaSBKdW4gMjQgMTA6MzI6MzcgMjAxNiArMDIwMAoKICAgIEZpeCBi dWlsZHMgb24gZ2NjIDYKCmNvbW1pdCA2N2Y0ZTVhMjFmODczZjVhM2QwOGQzYmI5MDI1MGNiNWI1 ODA2ZTJiCk1lcmdlOiA1MTlmOWMxIDE1OWE2MTIKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxs IHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1 biAyMyAyMjowMDoyMiAyMDE2ICswMjAwCgogICAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8g a3JpdGEtdGVzdGluZy13b2x0aGVyYQoKY29tbWl0IDUxOWY5YzFmYmU0M2VkZDY5MjJiMGNjNWVm NGVkODVmMTdmZDZkZmMKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGll ciA8Z3JpZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1biAyMyAxOTo0OTo1NiAy MDE2ICswMjAwCgogICAgQWRkIG9wdGlvbiB0byBzZXQgZGVmYXVsdCBQcm9vZmluZyBPcHRpb25z LgoKICAgIFRoZXNlIHdpbGwgd29yayBmb3IgaW1hZ2VzIHdpdGggbm8gcHJvb2Zpbmcgb3B0aW9u cywgc28sIG9sZCBsb2FkZWQgaW1hZ2VzCiAgICBhbmQgbmV3IGltYWdlcy4gV2l0aCB0aGlzIGl0 IGlzIGZlYXR1cmUgY29tcGxldGUsIGFuZCBwZW9wbGUgY2FuIHN0YXJ0IHRlc3RpbmcuCgogICAg UmVmIFQyMzM3CiAgICBSZWYgVDEyMzgKCmNvbW1pdCAwNjJkYjc0ZDI0ZmI3ZTY1NmU4YTA2Y2Jk ZGRlNTYwYWIwMzE2NmI2Ck1lcmdlOiAyZTA1N2U3IDc2MjU1MzkKQXV0aG9yOiBXb2x0aGVyYSB2 YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6 ICAgVGh1IEp1biAyMyAxNToxNjo1NCAyMDE2ICswMjAwCgogICAgTWVyZ2UgYnJhbmNoICdtYXN0 ZXInIGludG8ga3JpdGEtdGVzdGluZy13b2x0aGVyYQoKY29tbWl0IDJlMDU3ZTdhNTMzOWMzZTM2 NTdmZWY1NjJiYmU3MTZjNjcyODA1YjQKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBX ZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1biAyMyAx NToxNToyNCAyMDE2ICswMjAwCgogICAgQ2xlYW4gdXAgYWxsIHRoZSBkZWJ1ZyBtZXNzYWdlcy4K CiAgICBJdCdzLi4uIHF1aWV0ZXIgaW4gdGhlIHRlcm1pbmFsIG5vdy4KCiAgICBSZWYgVDIzMzcK CmNvbW1pdCA3ZmY3ZTYwYjVmNDIzY2RiZWFhNDA4OWQ4YTZlN2IyY2QzMzEyOWNhCkF1dGhvcjog V29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21haWwu Y29tPgpEYXRlOiAgIFRodSBKdW4gMjMgMTU6MDE6MDIgMjAxNiArMDIwMAoKICAgIENsZWFudXA6 IE1ha2UgcHJvamVjdGlvbiBjb2xvciBhIGRlZmluZWQgdGFnLgoKY29tbWl0IDYwNGVmYzhkZGIy MWQzOGFkOGEwNDBiMTlhYzdmYTMzY2ZlMmU4ZDkKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxs IHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1 biAyMyAxNDo1MDoyMCAyMDE2ICswMjAwCgogICAgTm90IHN1cmUgaWYgdGhpcyBpc24ndCB0aGUg Y29ycmVjdCBjb2RlIGluc3RlYWQuLi4KCiAgICBSZWYgVDIzMzcKCmNvbW1pdCA3YzY2OTcwM2Zm MGM3ZmRmNzU1ZDgwNzA1MzdjMzM5YmJjYjAyNTMzCkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVs bCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21haWwuY29tPgpEYXRlOiAgIFRodSBK dW4gMjMgMTQ6NDI6MDQgMjAxNiArMDIwMAoKICAgIExvYWQgZW1iZWRkZWQgcHJvb2ZpbmcgcHJv ZmlsZXMgaWYgdGhleSBleGlzdCwgYW5kIGFkZCB0aGVtIHRvIHRoZSBwcm9maWxlIHJlZ2lzdGVy eS4KCiAgICBOZWVkcyB0ZXN0aW5nIGZvciBvYnZpb3VzIHJlYXNvbnMuCgogICAgUmVmIFQyMzM3 Cgpjb21taXQgMTE5OTA2YjIzYmYwZTFhM2I4YWNmYWY1ODI4Y2RmY2JhYTkyZTc3ZApBdXRob3I6 IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmludmFsbGV5QGdtYWls LmNvbT4KRGF0ZTogICBUaHUgSnVuIDIzIDE0OjI3OjA3IDIwMTYgKzAyMDAKCiAgICBBZGQgZW1i ZWRkaW5nIG9mIHRoZSBwcm9vZmluZyBwcm9maWxlLgoKICAgIFRoaXMgaXMgc28gdGhhdCB3ZSBj YW4gbGF0ZXIgdW5lbWJlZCB0aGVtLgoKICAgIFJlZiBUMjMzNwoKY29tbWl0IDllZjFkYWQ3NzM2 MDVlMzJkNzAxOGNjZjdhOTBjMTgxN2Q0MzBkODkKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxs IHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1 biAyMyAxNDoxNTo0NyAyMDE2ICswMjAwCgogICAgTG9hZCBXYXJuaW5nIENvbG9ycyBwcm9wZXJs eSBmcm9tIGZpbGUuCgogICAgTm93IHRoZSBvdXQgb2YgZ2FtdXQgd2FybmluZyBjYW4gYmUgd3Jp dHRlbiBpbnRvIGZpbGUgYXMgWE1MCiAgICBhbmQgbG9hZGVkIGZyb20gZmlsZSBhcyBYTUwuCgog ICAgUmVmIFQyMzM3Cgpjb21taXQgNmE1N2NmMDhmYjE3MGU0ZDMyMzQxZWRlMGYzNzMzYmUzYWIx ZjM3ZQpBdXRob3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmlu dmFsbGV5QGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgSnVuIDIzIDEzOjQ5OjQ5IDIwMTYgKzAyMDAK CiAgICBGaXggbmFtaW5nIGNvbnZlbnRpb25zLgoKICAgIEkgd2FzIHVzaW5nIGdhbXV0IHdhcm5p bmdzL2FsYXJtcywgYW5kIHNvZnRwcm9vZmluZyBhbmQgc29mdCBwcm9vZmluZy4KCiAgICBUaGUg c3RhbmRhcmQgaXMgKE91dCBvZiApR2FtdXQgV2FybmluZ3MgYW5kIFNvZnQgUHJvb2ZpbmcuCgog ICAgUmVmIFQyMzM3Cgpjb21taXQgNGZhYThiNTc0ZGEwMzlkOWRjODZmMDk5ODQxYmI5MDE0OTVl MTlhOQpBdXRob3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmlu dmFsbGV5QGdtYWlsLmNvbT4KRGF0ZTogICBUaHUgSnVuIDIzIDEzOjM3OjQ5IDIwMTYgKzAyMDAK CiAgICBEaXNhYmxlIHNvZnRwcm9vZmluZyBpbiBmbG9hdGluZyBwb2ludCBzcGFjZXMuCgogICAg VGhlcmUncyBhIGJ1bmNoIG9mIGxpdHRsZSBuaWdnbGluZyBidWdzIHRoYXQgY3JvcCB1cCB3aGVu IHNvZnQgcHJvb2ZpbmcKICAgIGluIGZsb2F0aW5nIHBvaW50IHNwYWNlcywgYW1vbmdzdCB3aGlj aCB0aGUgaW5hYmlsaXR5IG9mIHRoZSBwcm9vZmluZwogICAgbWVjaGFuaXNtIHRvIHNlZSBmbG9h dGluZyBwb2ludCB2YWx1ZXMgaGlnaGVyIHRoYW4gMS4wIGZhbGwgb3V0c2lkZSBvZgogICAgdGhl IGdhbXV0IG9mIHRoZSBjb2xvciBzcGFjZSwgbGV0IGFsb25lIHJlY29nbmlzaW5nIHdoZXRoZXIg aXQgY2FuIGdvCiAgICBpbnNpZGUgdGhlIGdhbXV0IG9mIHRoZSBwcm9vZmluZyBzcGFjZS4KCiAg ICBTZWUgYWxzbyBodHRwOi8vbmluZWRlZ3JlZXNiZWxvdy5jb20vYnVnLXJlcG9ydHMvc29mdC1w cm9vZmluZy1wcm9ibGVtcy5odG1sCgogICAgRm9yIG5vdywgaXQncyBiZXN0IHRvIGRpc2FibGUg c29mdHByb29maW5nIG9uIGZsb2F0aW5nIHBvaW50IHNwYWNlcy4KICAgIE1pZ2h0IG5lZWQgYSBt b3JlIG9mZmljaWFsIGNoZWNrLCB0aG91Z2guCgogICAgUmVmIDIzMzcKCmNvbW1pdCA5MWQ3ZGE4 YzQxYzQyMDA3MjllODdmOTgyNjlmZGYwMTE0MjJiYjA3CkF1dGhvcjogV29sdGhlcmEgdmFuIEhv dmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21haWwuY29tPgpEYXRlOiAgIFdl ZCBKdW4gMjIgMTY6MjY6NTIgMjAxNiArMDIwMAoKICAgIE1ha2Ugdmlld3Mgc21hcnQgZW5vdWdo IHRvIHRyYWNrIHNvZnRwcm9vZi9nYW11dGNoZWNrLXN0YXRlLgoKICAgIEFsc28gYWRkIGEgZmxv YXRpbmcgbWVzc2FnZSB0byBzYXkgd2hlbiB0aGUgc29mdHByb29maW5nIG9yIGdhbXV0Y2hlY2sK ICAgIGlzIHR1cm5lZCBvbiBpbiB0aGUgdmlldy4gV29yZGluZyBtYXkgY2hhbmdlLgoKICAgIFJl ZiBUMjMzNwoKY29tbWl0IDVjNDhkZDJjMTJlMzdmZjBhNzVlMDk4MzY4NDQ5ZDI2MGZmNTI0YmMK QXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxl eUBnbWFpbC5jb20+CkRhdGU6ICAgV2VkIEp1biAyMiAxNjoyNjozNSAyMDE2ICswMjAwCgogICAg Rml4IEJ1aWxkCgpjb21taXQgNmJhY2ZjZGE2MDA1NjIyNjY5YTNmNGE0N2RhNTlhNzU5ODM4Nzk3 YwpBdXRob3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmludmFs bGV5QGdtYWlsLmNvbT4KRGF0ZTogICBXZWQgSnVuIDIyIDE0OjQ1OjUyIDIwMTYgKzAyMDAKCiAg ICBBZGQgYXR0ZW1wdCBhdCBzYXZpbmcgY29sb3IgdG8geG1sLgoKICAgIFRoaXMgZmFpbHMgZHVl IHRvIG1lIG5vdCBiZWluZyBhYmxlIHRvIGxvYWQgdGhlIHhtbCwgZHVlIG9iamVjdC1ib25hbnph LgoKICAgIHJlZiBUMjMzNwoKY29tbWl0IDNiYmYwMjViMzJhZTUzZmY0NjAxZjE4ODkwMTU0MWZj YjgwZjYzYTcKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGllciA8Z3Jp ZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgV2VkIEp1biAyMiAxMjo0OTowNiAyMDE2ICsw MjAwCgogICAgSW50aXRpYWwgc2F2aW5nL2xvYWRpbmcgb2YgY29uZmlnLlt1bnN0YWJsZV0KCiAg ICBXb3JrcywgYnV0IG1pZ2h0IGNoYW5nZSBsYXRlci4KCmNvbW1pdCAxZjczM2UyOGNiN2Y4N2Zi NGJlYTVhMTQxNTllODZjNWE1ZGQ4NTJmCkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3Qg V2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdW4gMjEg MjA6MjE6MTUgMjAxNiArMDIwMAoKICAgIFJlZmFjdG9yIHRoZSBwcm9vZmluZyB0cmFuc2Zvcm0g c3lzdGVtIGZvciBiZXR0ZXIgY2FjaGluZy4KCiAgICBUaGlzIG5vdyBtYWtlcyB0aGUgdHJhbnNm b3JtIHNlcGFyYXRlbHkgZnJvbSB0aGUgYWN0dWFsIHRyYW5zZm9ybWluZywKICAgIHdoaWNoIG1l YW5zIGl0J3MgZWFzaWVyIHRvIGNhY2hlIGFuZCB0byB1cGRhdGUuIFNvZnRwcm9vZmluZyBpcyBu b3cKICAgIGdvbmUgZnJvbSB1c2FibGUgdG8gdXNlci1mcmllbmRseS4KCiAgICBTdGlsbCBuZWVk cyBzYXZpbmcvbG9hZGluZyBhbmQgbGl0dGxlIHNldHRpbmctYnVncyBmaXhlZC4KCiAgICByZWYg VDIzMzcKCmNvbW1pdCA4MzcxYzQxNzliMWE4MDI1ZTcyNzUyOGM1YjdjZTA5ZWUzNTYyZWM5CkF1 dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlA Z21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdW4gMjEgMTg6MjA6NDggMjAxNiArMDIwMAoKICAgIEVu YWJsZSBHYW11dCBjb2xvciBhbmQgcHJvb2ZpbmcgaW50ZW50LgoKICAgIFRoZSBpbWFnZSBub3cg c3RvcmVkIHByb29maW5nIGludGVudCwgYW5kIHRoZSBtb25pdG9yIGludGVudCBpcyB0aGUgZ2Vu ZXJhbAogICAgcmVuZGVyaW5nIGludGVudC4KCiAgICBUaGlzIGFsc28gYWxsb3dzIHVzIHRvIHNl dCB0aGUgZ2FtdXQgd2FybmluZyBjb2xvciwgaG93ZXZlciwgZm9yIHVwZGF0aW5nCiAgICB5b3Ug Y3VycmVudGx5IG5lZWQgdG8gc3dpdGNoIHByb2ZpbGVzIGFzIHdlbGwuIEknbGwgbWFrZSBhIHNl cGVyYXRlCiAgICBnZW5lcmF0ZVNvZnRQcm9vZmluZ1RyYW5zZm9ybSBmdW5jdGlvbiwgdG8gY2Fj aGUgdGhlIHRyYW5zZm9ybSBiZXR0ZXIsIHNvIGl0J3MKICAgIGVhc2llciB0byB1cGRhdGUuCgog ICAgUmVmIDIzMzcKCmNvbW1pdCA5ZDljZTM4MDc5YzYwZWQwNGE2M2EyOTg1YTljNWVjYjA4NjUy NjI2CkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52 YWxsZXlAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBKdW4gMjEgMTQ6MTg6MDUgMjAxNiArMDIwMAoK ICAgIEFkZCBzb2Z0cHJvb2Zpbmcgc2VjdGlvbiB0byBpbWFnZSBwcm9wZXJ0aWVzIG1lbnUuCgog ICAgTm93LCB0aGUgcHJvb2ZpbmcgaW4gdGhlIGltYWdlIGNhbiBiZSBjaGFuZ2VkLgoKICAgIEFs c28gZml4ZXMgdGhhdCB1Z2x5IGxpdHRsZSBzcXVhcmUgcHJvYmxlbSB3aXRoIHRoZSBrb2NvbG9y YWN0aW9ucG9wdXAgYnV0dG9uLgoKICAgIFJlZiBUMTIzOCwgVDIzMzcKCmNvbW1pdCA4ZDdiNDQx OGU3OTg5NzhlZDVlNGM5ZmJiMjg1MDllN2I5ZTA5OGQ0Ck1lcmdlOiBlMmVlOWZmIGQ1ODY0NWUK QXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxl eUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1biAxNiAxMzoyODoyNCAyMDE2ICswMjAwCgogICAg TWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byBrcml0YS10 ZXN0aW5nLXdvbHRoZXJhCgpjb21taXQgZTJlZTlmZjU3NzRjODBlYmI3MmMwMmJjMDJkOGNlN2E3 OWFjZTcyZgpBdXRob3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlm ZmludmFsbGV5QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVuIDE0IDE1OjU2OjUwIDIwMTYgKzAy MDAKCiAgICBDYWNoZSB0aGUgdHJhbnNmb3JtIHVuZWxlZ2FudGx5LgoKICAgIFRoaXMgZG9lcyBj YXVzZSBhIHNpZ25pZmljYW50IHNwZWVkLXVwLCBidXQgaXQncyBhIGJpdCBmaWRkbHkuCiAgICBS ZWdhcmRsZXNzLCB0aGUgc3BlZWQtdXAgaXMgZW5vdWdoIHRvIG1ha2UgdGhpcyB1c2FibGUuCgpj b21taXQgZjY0M2ZjN2JjMmRlYjkzMTdiNmI3ZWYyOTlmOWQ3NmEwYzRlMjE2MApBdXRob3I6IFdv bHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmludmFsbGV5QGdtYWlsLmNv bT4KRGF0ZTogICBUdWUgSnVuIDE0IDE0OjQ5OjE2IDIwMTYgKzAyMDAKCiAgICBGaXggc29mdHBy b29maW5nCgogICAgSXQncyBzbG93IGFnYWluIDovCgpjb21taXQgY2JjOTFjMDc2MzEwMTg4NDU2 OTgwNTYzZTNjMDYxY2ExYTQ3MTQ3ZgpBdXRob3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdl c3RlcmZsaWVyIDxncmlmZmludmFsbGV5QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVuIDE0IDEy OjQ1OjQzIDIwMTYgKzAyMDAKCiAgICBGaXggc2V0dGluZyBzb2Z0cHJvb2ZpbmcgYW5kIGdhbXV0 Y2hlY2sgZmxhZ3MuCgpjb21taXQgOWFlMzM2ZWQ5NDIwN2JhYjc4ODUwMTA3MjA2NDc4MTRjOTY0 OGU5ZApBdXRob3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmlu dmFsbGV5QGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVuIDE0IDEyOjQ0OjUwIDIwMTYgKzAyMDAK CiAgICBDYWNoZSB0aGUgY29sb3Igc3BhY2UgZW5naW5lIHRvIG1ha2UgaXQgZmFzdGVyCgogICAg SXQgZG9lc24ndCBmaXggZXZlcnl0aGluZywgYnV0IGl0IGZpeGVzIHF1aXRlIGEgYml0LgogICAg UmVmIFQyMTAKCmNvbW1pdCBkNDM1ODkwMTZiMzVlYTg1OTQzYzU1ZmYyNDRlODNlNmJjNWNkMTVh CkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVsbCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxs ZXlAZ21haWwuY29tPgpEYXRlOiAgIE1vbiBKdW4gMTMgMTc6NTk6MTggMjAxNiArMDIwMAoKICAg IEFkZCBiYXNlIGltcGxlbWVudGF0aW9uIHNvZnRwcm9vZmluZyB3aXRoIHRvZ2dsZXMuCgogICAg SXQgZG9lc24ndCByZWFsbHkgd29yayB5ZXQgOi8KCiAgICBSZWY6IFQyMTAKICAgIFJlZjogVDIz MzcKCmNvbW1pdCA3ZGUwMjU2OTYwYTYwMjE1OTEyMTdlYTM5MzVkYmExYjM5MTQzYjU4CkF1dGhv cjogQm91ZGV3aWpuIFJlbXB0IDxib3VkQHZhbGR5YXMub3JnPgpEYXRlOiAgIFN1biBKdW4gMTIg MTY6MTA6MzEgMjAxNiArMDIwMAoKICAgIENyZWF0ZSB0aGUgcHJvb2ZpbmcgdHJhbnNmb3JtCgog ICAgVGhpcyBkb2Vzbid0IHVzZSB0aGUgY2FjaGluZyBncmFwaCBzdHVmZiwgd2hpY2ggaXMgdG9v IGNvbXBsZXgKICAgIHRvIHJlZmFjdG9yIGZvciBub3cuCgpjb21taXQgMDBlZmQ2MjdhZjIzZjI4 NTU1YWEzM2E3OGExOGZkZDEzMzkzNGNmMwpBdXRob3I6IEJvdWRld2lqbiBSZW1wdCA8Ym91ZEB2 YWxkeWFzLm9yZz4KRGF0ZTogICBTdW4gSnVuIDEyIDE2OjEwOjA1IDIwMTYgKzAyMDAKCiAgICBB ZGQgYSBwZXItaW1hZ2UgcHJvb2Zpbmcgc2V0dGluZ3MgY2xhc3MKCmNvbW1pdCBkM2JkNTM3NWIz MDRkZmVhOTI4MmE5YWQ1ODExMzBjN2RkZjgyMDBhCkF1dGhvcjogV29sdGhlcmEgdmFuIEhvdmVs bCB0b3QgV2VzdGVyZmxpZXIgPGdyaWZmaW52YWxsZXlAZ21haWwuY29tPgpEYXRlOiAgIFN1biBK dW4gMTIgMTQ6NDQ6NTAgMjAxNiArMDIwMAoKICAgIFB1c2ggd29yay1pbi1wcm9ncmVzcyBwcm9v ZmluZwoKY29tbWl0IGJiOTc5NDdhYmMyOWY3NjkxMzkyNGRlOWYxZDJjYjRhMjc2MmNmODAKQXV0 aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGllciA8Z3JpZmZpbnZhbGxleUBn bWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1biA5IDE2OjQyOjE4IDIwMTYgKzAyMDAKCiAgICBGaXgg Y29weS1wYXN0ZSBlcnJvcgoKY29tbWl0IDllZDkzNGE4MjA2ZWExZTExMDc3ZjkzMzIyNTJiNDY1 YzA4OTlkMWYKQXV0aG9yOiBXb2x0aGVyYSB2YW4gSG92ZWxsIHRvdCBXZXN0ZXJmbGllciA8Z3Jp ZmZpbnZhbGxleUBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IEp1biA5IDE2OjMwOjA5IDIwMTYgKzAy MDAKCiAgICBBZGQgT0NJTyBMb29rIHN1cHBvcnQuCgogICAgVGhlIGNvZGUgaXMgYmFzZWQgb2Yg dGhhdCBvZiBCbGVuZGVyLCBhcyBJIGNvdWxkbid0IGZpZ3VyZSBvdXQgaG93IGVsc2UgdG8KICAg IGFwcGx5IGxvb2tzLiBUaGUgT0NJTyBhcGkgd2Fzbid0IGNsZWFyIGFib3V0IGl0LCBub3IgY291 bGQgSSBmaW5kIG11Y2ggaW5mb3JtYXRpb24sCiAgICBidXQgaXQgc29tZXdoYXQgd29ya3MgYW5k IGRvZXNuJ3QgY3Jhc2guCgogICAgQXVkaXRvcnM6IHJlbXB0LCBka2F6YWtvdgogICAgUmVmOiBU MjEwCgpjb21taXQgMjgxOWFkNjY1NTRmMzNlMjI5NzI5ZjhkODZlYjExYTAxNDEzZjIzZgpBdXRo b3I6IFdvbHRoZXJhIHZhbiBIb3ZlbGwgdG90IFdlc3RlcmZsaWVyIDxncmlmZmludmFsbGV5QGdt YWlsLmNvbT4KRGF0ZTogICBXZWQgSnVuIDggMTI6MjE6MjUgMjAxNiArMDIwMAoKICAgIEFkZCBz b2Z0cHJvb2ZpbmcgdG8gdGhlIGxjbXMgY29udmVyc2lvbiB0ZXN0cwoKICAgIEkgYW0gbm90IGZ1 bGx5IHN1cmUgaWYgSSB1bmRlcnN0YW5kIHRoZSBzb2Z0cHJvb2ZpbmcgZnVuY3Rpb24sIGJ1dCB0 aGUgYWxhcm0gd29ya3MuCgpNICArMyAgICAtMSAgICBrcml0YS9rcml0YS54bWxndWkKTSAgKzIw ICAgLTAgICAga3JpdGEva3JpdGFtZW51LmFjdGlvbgpNICArMSAgICAtMCAgICBsaWJzL2ltYWdl L0NNYWtlTGlzdHMudHh0CkEgICszMyAgIC0wICAgIGxpYnMvaW1hZ2UvS2lzUHJvb2ZpbmdDb25m aWd1cmF0aW9uLmggICAgIFtMaWNlbnNlOiBVTktOT1dOXSAgKgpNICArMTcgICAtMCAgICBsaWJz L2ltYWdlL2tpc19pbWFnZS5jYwpNICArMTkgICAtMSAgICBsaWJzL2ltYWdlL2tpc19pbWFnZS5o Ck0gICszOCAgIC0wICAgIGxpYnMvaW1hZ2Uva2lzX2ltYWdlX2NvbmZpZy5jcHAKTSAgKzUgICAg LTAgICAgbGlicy9pbWFnZS9raXNfaW1hZ2VfY29uZmlnLmgKTSAgKzEgICAgLTAgICAgbGlicy9w aWdtZW50L0NNYWtlTGlzdHMudHh0Ck0gICsyMyAgIC0wICAgIGxpYnMvcGlnbWVudC9Lb0NvbG9y Q29udmVyc2lvblRyYW5zZm9ybWF0aW9uQWJzdHJhY3RGYWN0b3J5LmgKQSAgKzQ5ICAgLTAgICAg bGlicy9waWdtZW50L0tvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbi5jcHAg ICAgIFtMaWNlbnNlOiBMR1BMICh2Mi4xKyldCkEgICs2MyAgIC0wICAgIGxpYnMvcGlnbWVudC9L b0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaCAgICAgW0xpY2Vuc2U6IExH UEwgKHYyLjErKV0KTSAgKzI1ICAgLTMgICAgbGlicy9waWdtZW50L0tvQ29sb3JTcGFjZS5jcHAK TSAgKzI5ICAgLTMgICAgbGlicy9waWdtZW50L0tvQ29sb3JTcGFjZS5oCk0gICsxICAgIC0wICAg IGxpYnMvcGlnbWVudC9Lb0NvbG9yU3BhY2VFbmdpbmUuaApNICArNCAgICAtMCAgICBsaWJzL3Bp Z21lbnQvS29Db2xvclNwYWNlX3AuaApNICArNTUgICAtMCAgICBsaWJzL3VpL0tpc1ZpZXcuY3Bw Ck0gICsyMSAgIC0wICAgIGxpYnMvdWkvS2lzVmlldy5oCk0gICsxMCAgIC0wICAgIGxpYnMvdWkv S2lzVmlld01hbmFnZXIuY3BwCk0gICs3NSAgIC0xICAgIGxpYnMvdWkvY2FudmFzL2tpc19jYW52 YXMyLmNwcApNICArMjIgICAtMiAgICBsaWJzL3VpL2NhbnZhcy9raXNfY2FudmFzMi5oCk0gICs0 NSAgIC0xICAgIGxpYnMvdWkvZGlhbG9ncy9raXNfZGxnX2ltYWdlX3Byb3BlcnRpZXMuY2MKTSAg KzQgICAgLTEgICAgbGlicy91aS9kaWFsb2dzL2tpc19kbGdfaW1hZ2VfcHJvcGVydGllcy5oCk0g ICszMSAgIC00MyAgIGxpYnMvdWkvZGlhbG9ncy9raXNfZGxnX3ByZWZlcmVuY2VzLmNjCk0gICsy ICAgIC0xICAgIGxpYnMvdWkvZGlhbG9ncy9raXNfZGxnX3ByZWZlcmVuY2VzLmgKTSAgKzEyNCAg LTUwICAgbGlicy91aS9mb3Jtcy93ZGdjb2xvcnNldHRpbmdzLnVpCk0gICsxMjQgIC0yNiAgIGxp YnMvdWkvZm9ybXMvd2RnaW1hZ2Vwcm9wZXJ0aWVzLnVpCk0gICsxICAgIC0wICAgIGxpYnMvdWkv a2lzX2NvbmZpZy5jYwpNICArMCAgICAtMSAgICBsaWJzL3VpL2tpc19jb25maWcuaApNICArNTYg ICAtMiAgICBsaWJzL3VpL2tyYS9raXNfa3JhX2xvYWRlci5jcHAKTSAgKzQyICAgLTIgICAgbGli cy91aS9rcmEva2lzX2tyYV9zYXZlci5jcHAKTSAgKzEgICAgLTAgICAgbGlicy91aS9rcmEva2lz X2tyYV9zYXZlci5oCk0gICsxMCAgIC0wICAgIGxpYnMvdWkva3JhL2tpc19rcmFfdGFncy5oCk0g ICs2ICAgIC0wICAgIGxpYnMvdWkvb3BlbmdsL2tpc19vcGVuZ2xfY2FudmFzMi5jcHAKTSAgKzI0 ICAgLTIgICAgbGlicy91aS9vcGVuZ2wva2lzX29wZW5nbF9pbWFnZV90ZXh0dXJlcy5jcHAKTSAg KzcgICAgLTAgICAgbGlicy91aS9vcGVuZ2wva2lzX29wZW5nbF9pbWFnZV90ZXh0dXJlcy5oCk0g ICsyOSAgIC0wICAgIGxpYnMvdWkvb3BlbmdsL2tpc190ZXh0dXJlX3RpbGVfdXBkYXRlX2luZm8u aApNICArMTA3ICAtNyAgICBwbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL0ljY0NvbG9yU3BhY2VF bmdpbmUuY3BwCk0gICs1ICAgIC0wICAgIHBsdWdpbnMvY29sb3IvbGNtczJlbmdpbmUvSWNjQ29s b3JTcGFjZUVuZ2luZS5oCk0gICs0MSAgIC0wICAgIHBsdWdpbnMvY29sb3IvbGNtczJlbmdpbmUv dGVzdHMvVGVzdEtvTGNtc0NvbG9yUHJvZmlsZS5jcHAKTSAgKzIgICAgLTAgICAgcGx1Z2lucy9j b2xvci9sY21zMmVuZ2luZS90ZXN0cy9UZXN0S29MY21zQ29sb3JQcm9maWxlLmgKTSAgKzE0ICAg LTAgICAgcGx1Z2lucy9kb2NrZXJzL2x1dC9sdXRkb2NrZXJfZG9jay5jcHAKTSAgKzI5ICAgLTAg ICAgcGx1Z2lucy9kb2NrZXJzL2x1dC9vY2lvX2Rpc3BsYXlfZmlsdGVyLmNwcApNICArMSAgICAt MCAgICBwbHVnaW5zL2RvY2tlcnMvbHV0L29jaW9fZGlzcGxheV9maWx0ZXIuaApNICArMzkgICAt OCAgICBwbHVnaW5zL2RvY2tlcnMvbHV0L3dkZ2x1dC51aQoKVGhlIGZpbGVzIG1hcmtlZCB3aXRo IGEgKiBhdCB0aGUgZW5kIGhhdmUgYSBub24gdmFsaWQgbGljZW5zZS4gUGxlYXNlIHJlYWQ6IGh0 dHA6Ly90ZWNoYmFzZS5rZGUub3JnL1BvbGljaWVzL0xpY2Vuc2luZ19Qb2xpY3kgYW5kIHVzZSB0 aGUgaGVhZGVycyB3aGljaCBhcmUgbGlzdGVkIGF0IHRoYXQgcGFnZS4KCgpodHRwOi8vY29tbWl0 cy5rZGUub3JnL2tyaXRhLzA4MDdlZWIwMWQwMjg3MzAxOWJkYzgzZTM5ZjE1ZjA1YjRjMjMxZDYK CmRpZmYgLS1naXQgYS9rcml0YS9rcml0YS54bWxndWkgYi9rcml0YS9rcml0YS54bWxndWkKaW5k ZXggNmZmMzMwMS4uMjk4OTY0NiAxMDA2NDQKLS0tIGEva3JpdGEva3JpdGEueG1sZ3VpCisrKyBi L2tyaXRhL2tyaXRhLnhtbGd1aQpAQCAtMiw3ICsyLDcgQEAKIDxrcGFydGd1aSB4bWxucz0iaHR0 cDovL3d3dy5rZGUub3JnL3N0YW5kYXJkcy9reG1sZ3VpLzEuMCIKIHhtbG5zOnhzaT0iaHR0cDov L3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCiBuYW1lPSJLcml0YSIKLXZlcnNp b249IjkyIgordmVyc2lvbj0iOTMiCiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cua2Rl Lm9yZy9zdGFuZGFyZHMva3htbGd1aS8xLjAgIGh0dHA6Ly93d3cua2RlLm9yZy9zdGFuZGFyZHMv a3htbGd1aS8xLjAva3htbGd1aS54c2QiPgogICA8TWVudUJhcj4KICAgICA8TWVudSBuYW1lPSJm aWxlIiBub01lcmdlPSIxIj4KQEAgLTYyLDYgKzYyLDggQEAgeHNpOnNjaGVtYUxvY2F0aW9uPSJo dHRwOi8vd3d3LmtkZS5vcmcvc3RhbmRhcmRzL2t4bWxndWkvMS4wICBodHRwOi8vd3d3LmtkZS5v cmcKICAgICAgIDxBY3Rpb24gbmFtZT0iZnVsbHNjcmVlbiIvPgogICAgICAgPEFjdGlvbiBuYW1l PSJ3cmFwX2Fyb3VuZF9tb2RlIi8+CiAgICAgICA8QWN0aW9uIG5hbWU9ImxldmVsX29mX2RldGFp bF9tb2RlIi8+CisgICAgICA8QWN0aW9uIG5hbWU9InNvZnRQcm9vZiIvPgorICAgICAgPEFjdGlv biBuYW1lPSJnYW11dENoZWNrIi8+CiAgICAgICA8U2VwYXJhdG9yLz4KICAgICAgIDxNZW51IG5h bWU9IkNhbnZhcyI+CiAgICAgICAgICAgPHRleHQ+JmFtcDtDYW52YXM8L3RleHQ+CmRpZmYgLS1n aXQgYS9rcml0YS9rcml0YW1lbnUuYWN0aW9uIGIva3JpdGEva3JpdGFtZW51LmFjdGlvbgppbmRl eCA0MWZkZWNkLi4yMWYyY2YxIDEwMDY0NAotLS0gYS9rcml0YS9rcml0YW1lbnUuYWN0aW9uCisr KyBiL2tyaXRhL2tyaXRhbWVudS5hY3Rpb24KQEAgLTUyOCw2ICs1MjgsMjYgQEAKICAgICAgIDxp c0NoZWNrYWJsZT50cnVlPC9pc0NoZWNrYWJsZT4KICAgICAgIDxzdGF0dXNUaXA+PC9zdGF0dXNU aXA+CiAgICAgPC9BY3Rpb24+CisgICAgPEFjdGlvbiBuYW1lPSJzb2Z0UHJvb2YiPgorICAgICAg PGljb24+PC9pY29uPgorICAgICAgPHRleHQ+U29mdCBQcm9vZmluZzwvdGV4dD4KKyAgICAgIDx3 aGF0c1RoaXM+PC93aGF0c1RoaXM+CisgICAgICA8dG9vbFRpcD5UdXJucyBvbiBTb2Z0IFByb29m aW5nPC90b29sVGlwPgorICAgICAgPGljb25UZXh0PlR1cm5zIG9uIFNvZnQgUHJvb2Zpbmc8L2lj b25UZXh0PgorICAgICAgPHNob3J0Y3V0PkN0cmwrWTwvc2hvcnRjdXQ+CisgICAgICA8aXNDaGVj a2FibGU+dHJ1ZTwvaXNDaGVja2FibGU+CisgICAgICA8c3RhdHVzVGlwPjwvc3RhdHVzVGlwPgor ICAgIDwvQWN0aW9uPgorICAgIDxBY3Rpb24gbmFtZT0iZ2FtdXRDaGVjayI+CisgICAgICA8aWNv bj48L2ljb24+CisgICAgICA8dGV4dD5PdXQgb2YgR2FtdXQgV2FybmluZ3M8L3RleHQ+CisgICAg ICA8d2hhdHNUaGlzPjwvd2hhdHNUaGlzPgorICAgICAgPHRvb2xUaXA+VHVybnMgb24gd2Fybmlu Z3MgZm9yIGNvbG9ycyBvdXIgb2YgcHJvb2ZlZCBnYW11dCwgbmVlZHMgc29mdCBwcm9vZmluZyB0 byBiZSB0dXJuZWQgb24uPC90b29sVGlwPgorICAgICAgPGljb25UZXh0PlR1cm5zIG9uIHdhcm5p bmdzIGZvciBjb2xvcnMgb3VyIG9mIHByb29mZWQgZ2FtdXQsIG5lZWRzIHNvZnQgcHJvb2Zpbmcg dG8gYmUgdHVybmVkIG9uLjwvaWNvblRleHQ+CisgICAgICA8c2hvcnRjdXQ+Q3RybCtTaGlmdCtZ PC9zaG9ydGN1dD4KKyAgICAgIDxpc0NoZWNrYWJsZT50cnVlPC9pc0NoZWNrYWJsZT4KKyAgICAg IDxzdGF0dXNUaXA+PC9zdGF0dXNUaXA+CisgICAgPC9BY3Rpb24+CiAgICAgPEFjdGlvbiBuYW1l PSJtaXJyb3JfY2FudmFzIj4KICAgICAgIDxpY29uPjwvaWNvbj4KICAgICAgIDx0ZXh0Pk1pcnJv ciBWaWV3PC90ZXh0PgpkaWZmIC0tZ2l0IGEvbGlicy9pbWFnZS9DTWFrZUxpc3RzLnR4dCBiL2xp YnMvaW1hZ2UvQ01ha2VMaXN0cy50eHQKaW5kZXggODM2ODY5Ni4uMDc4OGEwZiAxMDA2NDQKLS0t IGEvbGlicy9pbWFnZS9DTWFrZUxpc3RzLnR4dAorKysgYi9saWJzL2ltYWdlL0NNYWtlTGlzdHMu dHh0CkBAIC0yNDcsNiArMjQ3LDcgQEAgc2V0KGtyaXRhaW1hZ2VfTElCX1NSQ1MKICAgIGtpc19v dXRsaW5lX2dlbmVyYXRvci5jcHAKICAgIGtpc19sYXllcl9jb21wb3NpdGlvbi5jcHAKICAgIGtp c19zZWxlY3Rpb25fZmlsdGVycy5jcHAKKyAgIEtpc1Byb29maW5nQ29uZmlndXJhdGlvbi5oCiAg ICBtZXRhZGF0YS9raXNfbWV0YV9kYXRhX2VudHJ5LmNjCiAgICBtZXRhZGF0YS9raXNfbWV0YV9k YXRhX2ZpbHRlci5jYwogICAgbWV0YWRhdGEva2lzX21ldGFfZGF0YV9maWx0ZXJfcC5jYwpkaWZm IC0tZ2l0IGEvbGlicy9pbWFnZS9LaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24uaCBiL2xpYnMvaW1h Z2UvS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMzJhZDIyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnMvaW1hZ2UvS2lzUHJvb2Zp bmdDb25maWd1cmF0aW9uLmgKQEAgLTAsMCArMSwzMyBAQAorI2lmbmRlZiBLSVNQUk9PRklOR0NP TkZJR1VSQVRJT05fSAorI2RlZmluZSBLSVNQUk9PRklOR0NPTkZJR1VSQVRJT05fSAorCisjaW5j bHVkZSAiS29Db2xvci5oIgorI2luY2x1ZGUgIktvQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgIktv Q29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaCIKKworLyoqCisgKiBAYnJpZWYgVGhlIEtp c1Byb29maW5nQ29uZmlndXJhdGlvbiBzdHJ1Y3QKKyAqIExpdHRsZSBzdHJ1Y3QgdGhhdCBzdG9y ZXMgdGhlIHByb29maW5nIGNvbmZpZ3VyYXRpb24gZm9yIGEgZ2l2ZW4gZmlsZS4KKyAqIFRoZSBh Y3R1YWwgc29mdHByb29maW5nIGFuZCBnYW11dGNoZWNrIHRvZ2dsZXMgYXJlIHNldCBpbiB0aGUg Y2FudmFzLgorICogaW50ZXQsIGNvbnZlcnNpb25mbGFncyBhbmQgd2FybmluZyBjb2xvciBoYXZl IGRlZmF1bHQgc2V0IHRvIHRoZW0uIFRoaXMKKyAqIHdhc24ndCBwb3NzaWJsZSBmb3IgcHJvZmls ZVNwYWNlLgorICovCitzdHJ1Y3QgS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uIHsKKyAgICBLaXNQ cm9vZmluZ0NvbmZpZ3VyYXRpb24oKSA6IGludGVudChLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uOjpJbnRlbnRBYnNvbHV0ZUNvbG9yaW1ldHJpYyksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb252ZXJzaW9uRmxhZ3MoS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1h dGlvbjo6QmxhY2twb2ludENvbXBlbnNhdGlvbiksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3YXJuaW5nQ29sb3IoS29Db2xvcigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHByb29maW5nUHJvZmlsZSgiQ2hlbWljYWwgcHJvb2YiKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByb29maW5nTW9kZWwoIkNNWUtBIiksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcm9vZmluZ0RlcHRoKCJVOCIpLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWRhcHRhdGlvblN0YXRlKDEuMCl7fQorICAgIEtvQ29sb3JD b252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkludGVudCBpbnRlbnQ7CisgICAgS29Db2xvckNvbnZl cnNpb25UcmFuc2Zvcm1hdGlvbjo6Q29udmVyc2lvbkZsYWdzIGNvbnZlcnNpb25GbGFnczsKKyAg ICBLb0NvbG9yIHdhcm5pbmdDb2xvcjsKKyAgICBRU3RyaW5nIHByb29maW5nUHJvZmlsZTsKKyAg ICBRU3RyaW5nIHByb29maW5nTW9kZWw7CisgICAgUVN0cmluZyBwcm9vZmluZ0RlcHRoOworICAg IGRvdWJsZSBhZGFwdGF0aW9uU3RhdGU7CisKK307CisKKyNlbmRpZiAvLyBLSVNQUk9PRklOR0NP TkZJR1VSQVRJT05fSApkaWZmIC0tZ2l0IGEvbGlicy9pbWFnZS9raXNfaW1hZ2UuY2MgYi9saWJz L2ltYWdlL2tpc19pbWFnZS5jYwppbmRleCA5YzUyNTg2Li43Y2QzYWFmIDEwMDY0NAotLS0gYS9s aWJzL2ltYWdlL2tpc19pbWFnZS5jYworKysgYi9saWJzL2ltYWdlL2tpc19pbWFnZS5jYwpAQCAt MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIktvQ29sb3IuaCIKICNpbmNsdWRlICJLb0NvbG9yUHJv ZmlsZS5oIgogI2luY2x1ZGUgPEtvQ29tcG9zaXRlT3BSZWdpc3RyeS5oPgorI2luY2x1ZGUgIktp c1Byb29maW5nQ29uZmlndXJhdGlvbi5oIgogCiAjaW5jbHVkZSAicmVjb3JkZXIva2lzX2FjdGlv bl9yZWNvcmRlci5oIgogI2luY2x1ZGUgImtpc19hZGp1c3RtZW50X2xheWVyLmgiCkBAIC0xNDUs NiArMTQ2LDcgQEAgcHVibGljOgogICAgIGRvdWJsZSB5cmVzID0gMS4wOwogCiAgICAgY29uc3Qg S29Db2xvclNwYWNlICogY29sb3JTcGFjZTsKKyAgICBLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24g KnByb29maW5nQ29uZmlnID0gMDsKIAogICAgIEtpc1NlbGVjdGlvblNQIGRlc2VsZWN0ZWRHbG9i YWxTZWxlY3Rpb247CiAgICAgS2lzR3JvdXBMYXllclNQIHJvb3RMYXllcjsgLy8gVGhlIGxheWVy cyBhcmUgY29udGFpbmVkIGluIGhlcmUKQEAgLTE1OTQsMyArMTU5NiwxOCBAQCBLaXNJbWFnZUFu aW1hdGlvbkludGVyZmFjZSogS2lzSW1hZ2U6OmFuaW1hdGlvbkludGVyZmFjZSgpIGNvbnN0CiB7 CiAgICAgcmV0dXJuIG1fZC0+YW5pbWF0aW9uSW50ZXJmYWNlOwogfQorCit2b2lkIEtpc0ltYWdl OjpzZXRQcm9vZmluZ0NvbmZpZ3VyYXRpb24oS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uICpwcm9v ZmluZ0NvbmZpZykKK3sKKyAgICBtX2QtPnByb29maW5nQ29uZmlnID0gcHJvb2ZpbmdDb25maWc7 CisgICAgZW1pdCBzaWdQcm9vZmluZ0NvbmZpZ0NoYW5nZWQoKTsKK30KKworS2lzUHJvb2ZpbmdD b25maWd1cmF0aW9uICpLaXNJbWFnZTo6cHJvb2ZpbmdDb25maWd1cmF0aW9uKCkgY29uc3QKK3sK KyAgICBpZiAoIW1fZC0+cHJvb2ZpbmdDb25maWcpIHsKKyAgICAgICAgS2lzSW1hZ2VDb25maWcg Y2ZnOworICAgICAgICBtX2QtPnByb29maW5nQ29uZmlnID0gY2ZnLmRlZmF1bHRQcm9vZmluZ2Nv bmZpZ3VyYXRpb24oKTsKKyAgICB9CisgICAgcmV0dXJuIG1fZC0+cHJvb2ZpbmdDb25maWc7Cit9 CmRpZmYgLS1naXQgYS9saWJzL2ltYWdlL2tpc19pbWFnZS5oIGIvbGlicy9pbWFnZS9raXNfaW1h Z2UuaAppbmRleCBmMGM4NGExLi5hZTU1MDU2IDEwMDY0NAotLS0gYS9saWJzL2ltYWdlL2tpc19p bWFnZS5oCisrKyBiL2xpYnMvaW1hZ2Uva2lzX2ltYWdlLmgKQEAgLTUzLDcgKzUzLDcgQEAgY2xh c3MgS2lzTGF5ZXJDb21wb3NpdGlvbjsKIGNsYXNzIEtpc1Nwb250YW5lb3VzSm9iOwogY2xhc3Mg S2lzSW1hZ2VBbmltYXRpb25JbnRlcmZhY2U7CiBjbGFzcyBLVW5kbzJNYWdpY1N0cmluZzsKLQor Y2xhc3MgS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uOwogCiBuYW1lc3BhY2UgS2lzTWV0YURhdGEK IHsKQEAgLTU2Myw2ICs1NjMsMTggQEAgcHVibGljOgogCiAgICAgS2lzSW1hZ2VBbmltYXRpb25J bnRlcmZhY2UgKmFuaW1hdGlvbkludGVyZmFjZSgpIGNvbnN0OwogCisgICAgLyoqCisgICAgICog QGJyaWVmIHNldFByb29maW5nQ29uZmlndXJhdGlvbiwgdGhpcyBzZXRzIHRoZSBpbWFnZSdzIHBy b29maW5nIGNvbmZpZ3VyYXRpb24sIGFuZCBzaWduYWxzCisgICAgICogdGhlIHByb29maW5nQ29u ZmlndXJhdGlvbiBoYXMgY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gcHJvb2ZpbmdDb25maWcgLSB0 aGUga2lzIHByb29maW5nIGNvbmZpZyB0aGF0IHdpbGwgYmUgdXNlZCBpbnN0ZWFkLgorICAgICAq LworICAgIHZvaWQgc2V0UHJvb2ZpbmdDb25maWd1cmF0aW9uKEtpc1Byb29maW5nQ29uZmlndXJh dGlvbiAqcHJvb2ZpbmdDb25maWcpOworICAgIC8qKgorICAgICAqIEBicmllZiBwcm9vZmluZ0Nv bmZpZ3VyYXRpb24KKyAgICAgKiBAcmV0dXJuIHRoZSBwcm9vZmluZyBjb25maWd1cmF0aW9uIG9m IHRoZSBpbWFnZS4KKyAgICAgKi8KKyAgICBLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24gKnByb29m aW5nQ29uZmlndXJhdGlvbigpIGNvbnN0OworCiBwdWJsaWM6CiAgICAgYm9vbCBzdGFydElzb2xh dGVkTW9kZShLaXNOb2RlU1Agbm9kZSk7CiAgICAgdm9pZCBzdG9wSXNvbGF0ZWRNb2RlKCk7CkBA IC03MDksNiArNzIxLDEyIEBAIFFfU0lHTkFMUzoKICAgICAgKi8KICAgICB2b2lkIHNpZ05vZGVD b2xsYXBzZWRDaGFuZ2VkKCk7CiAKKyAgICAvKioKKyAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBy b29maW5nIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGltYWdlIGlzIGJlaW5nIGNoYW5nZWQuCisgICAg ICoKKyAgICAgKi8KKyAgICB2b2lkIHNpZ1Byb29maW5nQ29uZmlnQ2hhbmdlZCgpOworCiBwdWJs aWMgUV9TTE9UUzoKICAgICBLaXNDb21wb3NpdGVQcm9ncmVzc1Byb3h5KiBjb21wb3NpdGVQcm9n cmVzc1Byb3h5KCk7CiAKZGlmZiAtLWdpdCBhL2xpYnMvaW1hZ2Uva2lzX2ltYWdlX2NvbmZpZy5j cHAgYi9saWJzL2ltYWdlL2tpc19pbWFnZV9jb25maWcuY3BwCmluZGV4IGRjYmI4ODIuLmFmODJl NjEgMTAwNjQ0Ci0tLSBhL2xpYnMvaW1hZ2Uva2lzX2ltYWdlX2NvbmZpZy5jcHAKKysrIGIvbGli cy9pbWFnZS9raXNfaW1hZ2VfY29uZmlnLmNwcApAQCAtMjEsNiArMjEsOSBAQAogI2luY2x1ZGUg PGtzaGFyZWRjb25maWcuaD4KIAogI2luY2x1ZGUgPEtvQ29uZmlnLmg+CisjaW5jbHVkZSA8S29D b2xvclByb2ZpbGUuaD4KKyNpbmNsdWRlIDxLb0NvbG9yU3BhY2VSZWdpc3RyeS5oPgorI2luY2x1 ZGUgPEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaD4KIAogI2luY2x1ZGUgImtpc19k ZWJ1Zy5oIgogCkBAIC0zOTQsMyArMzk3LDM4IEBAIHZvaWQgS2lzSW1hZ2VDb25maWc6OnNldFNo b3dBZGRpdGlvbmFsT25pb25Ta2luc1NldHRpbmdzKGJvb2wgdmFsdWUpCiB7CiAgICAgbV9jb25m aWcud3JpdGVFbnRyeSgic2hvd0FkZGl0aW9uYWxPbmlvblNraW5zU2V0dGluZ3MiLCB2YWx1ZSk7 CiB9CisKK0tpc1Byb29maW5nQ29uZmlndXJhdGlvbiAqS2lzSW1hZ2VDb25maWc6OmRlZmF1bHRQ cm9vZmluZ2NvbmZpZ3VyYXRpb24oKQoreworICAgIEtpc1Byb29maW5nQ29uZmlndXJhdGlvbiAq cHJvb2ZpbmdDb25maWc9IG5ldyBLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24oKTsKKyAgICBwcm9v ZmluZ0NvbmZpZy0+cHJvb2ZpbmdQcm9maWxlID0gbV9jb25maWcucmVhZEVudHJ5KCJkZWZhdWx0 UHJvb2ZpbmdQcm9maWxlTmFtZSIsICJDaGVtaWNhbCBwcm9vZiIpOworICAgIHByb29maW5nQ29u ZmlnLT5wcm9vZmluZ01vZGVsID0gbV9jb25maWcucmVhZEVudHJ5KCJkZWZhdWx0UHJvb2ZpbmdQ cm9maWxlTW9kZWwiLCAiQ01ZS0EiKTsKKyAgICBwcm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdEZXB0 aCA9IG1fY29uZmlnLnJlYWRFbnRyeSgiZGVmYXVsdFByb29maW5nUHJvZmlsZURlcHRoIiwgIlU4 Iik7CisgICAgcHJvb2ZpbmdDb25maWctPmludGVudCA9IChLb0NvbG9yQ29udmVyc2lvblRyYW5z Zm9ybWF0aW9uOjpJbnRlbnQpbV9jb25maWcucmVhZEVudHJ5KCJkZWZhdWx0UHJvb2ZpbmdQcm9m aWxlSW50ZW50IiwgMyk7CisgICAgaWYgKG1fY29uZmlnLnJlYWRFbnRyeSgiZGVmYXVsdFByb29m aW5nQmxhY2twb2ludENvbXBlbnNhdGlvbiIsIHRydWUpKSB7CisgICAgICAgIHByb29maW5nQ29u ZmlnLT5jb252ZXJzaW9uRmxhZ3MgIHw9IEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246 OkNvbnZlcnNpb25GbGFnOjpCbGFja3BvaW50Q29tcGVuc2F0aW9uOworICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgcHJvb2ZpbmdDb25maWctPmNvbnZlcnNpb25GbGFncyAgPSBwcm9vZmlu Z0NvbmZpZy0+Y29udmVyc2lvbkZsYWdzICYgfktvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRp b246OkNvbnZlcnNpb25GbGFnOjpCbGFja3BvaW50Q29tcGVuc2F0aW9uOworICAgIH0KKyAgICBR Q29sb3IgZGVmOworICAgIGRlZiA9ICBtX2NvbmZpZy5yZWFkRW50cnkoImRlZmF1bHRQcm9vZmlu Z0dhbXV0d2FybmluZyIsIFFDb2xvcihRdDo6Z3JheSkpOworICAgIEtvQ29sb3IgY29sKEtvQ29s b3JTcGFjZVJlZ2lzdHJ5OjppbnN0YW5jZSgpLT5yZ2I4KCkpOworICAgIGNvbC5mcm9tUUNvbG9y KGRlZik7CisgICAgY29sLnNldE9wYWNpdHkoMS4wKTsKKyAgICBwcm9vZmluZ0NvbmZpZy0+d2Fy bmluZ0NvbG9yID0gY29sOworICAgIHByb29maW5nQ29uZmlnLT5hZGFwdGF0aW9uU3RhdGUgPSAo ZG91YmxlKW1fY29uZmlnLnJlYWRFbnRyeSgiZGVmYXVsdFByb29maW5nQWRhcHRhdGlvblN0YXRl IiwgMS4wKTsKKyAgICByZXR1cm4gcHJvb2ZpbmdDb25maWc7Cit9CisKK3ZvaWQgS2lzSW1hZ2VD b25maWc6OnNldERlZmF1bHRQcm9vZmluZ0NvbmZpZyhjb25zdCBLb0NvbG9yU3BhY2UgKnByb29m aW5nU3BhY2UsIGludCBwcm9vZmluZ0ludGVudCwgYm9vbCBibGFja1BvaW50Q29tcGVuc2F0aW9u LCBLb0NvbG9yIHdhcm5pbmdDb2xvciwgZG91YmxlIGFkYXB0YXRpb25TdGF0ZSkKK3sKKyAgICBt X2NvbmZpZy53cml0ZUVudHJ5KCJkZWZhdWx0UHJvb2ZpbmdQcm9maWxlTmFtZSIsIHByb29maW5n U3BhY2UtPnByb2ZpbGUoKS0+bmFtZSgpKTsKKyAgICBtX2NvbmZpZy53cml0ZUVudHJ5KCJkZWZh dWx0UHJvb2ZpbmdQcm9maWxlTW9kZWwiLCBwcm9vZmluZ1NwYWNlLT5jb2xvck1vZGVsSWQoKS5p ZCgpKTsKKyAgICBtX2NvbmZpZy53cml0ZUVudHJ5KCJkZWZhdWx0UHJvb2ZpbmdQcm9maWxlRGVw dGgiLCBwcm9vZmluZ1NwYWNlLT5jb2xvckRlcHRoSWQoKS5pZCgpKTsKKyAgICBtX2NvbmZpZy53 cml0ZUVudHJ5KCJkZWZhdWx0UHJvb2ZpbmdQcm9maWxlSW50ZW50IiwgcHJvb2ZpbmdJbnRlbnQp OworICAgIG1fY29uZmlnLndyaXRlRW50cnkoImRlZmF1bHRQcm9vZmluZ0JsYWNrcG9pbnRDb21w ZW5zYXRpb24iLCBibGFja1BvaW50Q29tcGVuc2F0aW9uKTsKKyAgICBRQ29sb3IgYzsKKyAgICB3 YXJuaW5nQ29sb3IudG9RQ29sb3IoJmMpOworICAgIG1fY29uZmlnLndyaXRlRW50cnkoImRlZmF1 bHRQcm9vZmluZ0dhbXV0d2FybmluZyIsIGMpOworICAgIG1fY29uZmlnLndyaXRlRW50cnkoImRl ZmF1bHRQcm9vZmluZ0FkYXB0YXRpb25TdGF0ZSIsYWRhcHRhdGlvblN0YXRlKTsKK30KZGlmZiAt LWdpdCBhL2xpYnMvaW1hZ2Uva2lzX2ltYWdlX2NvbmZpZy5oIGIvbGlicy9pbWFnZS9raXNfaW1h Z2VfY29uZmlnLmgKaW5kZXggMzBlYzRjMi4uYWFiNTJhOSAxMDA2NDQKLS0tIGEvbGlicy9pbWFn ZS9raXNfaW1hZ2VfY29uZmlnLmgKKysrIGIvbGlicy9pbWFnZS9raXNfaW1hZ2VfY29uZmlnLmgK QEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgPGtjb25maWdncm91cC5oPgogI2luY2x1ZGUg ImtyaXRhaW1hZ2VfZXhwb3J0LmgiCisjaW5jbHVkZSAiS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9u LmgiCiAKIAogY2xhc3MgS1JJVEFJTUFHRV9FWFBPUlQgS2lzSW1hZ2VDb25maWcKQEAgLTEwMSw2 ICsxMDIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgc2hvd0FkZGl0aW9uYWxPbmlvblNraW5zU2V0 dGluZ3MoYm9vbCByZXF1ZXN0RGVmYXVsdCA9IGZhbHNlKSBjb25zdDsKICAgICB2b2lkIHNldFNo b3dBZGRpdGlvbmFsT25pb25Ta2luc1NldHRpbmdzKGJvb2wgdmFsdWUpOwogCisgICAgS2lzUHJv b2ZpbmdDb25maWd1cmF0aW9uICpkZWZhdWx0UHJvb2Zpbmdjb25maWd1cmF0aW9uKCk7CisgICAg dm9pZCBzZXREZWZhdWx0UHJvb2ZpbmdDb25maWcoY29uc3QgS29Db2xvclNwYWNlICpwcm9vZmlu Z1NwYWNlLCBpbnQgcHJvb2ZpbmdJbnRlbnQsIGJvb2wgYmxhY2tQb2ludENvbXBlbnNhdGlvbiwg S29Db2xvciB3YXJuaW5nQ29sb3IsIGRvdWJsZSBhZGFwdGF0aW9uU3RhdGUpOworCisKIHByaXZh dGU6CiAgICAgUV9ESVNBQkxFX0NPUFkoS2lzSW1hZ2VDb25maWcpCiAKZGlmZiAtLWdpdCBhL2xp YnMvcGlnbWVudC9DTWFrZUxpc3RzLnR4dCBiL2xpYnMvcGlnbWVudC9DTWFrZUxpc3RzLnR4dApp bmRleCBmNzJlNTE2Li42N2QxZTY4IDEwMDY0NAotLS0gYS9saWJzL3BpZ21lbnQvQ01ha2VMaXN0 cy50eHQKKysrIGIvbGlicy9waWdtZW50L0NNYWtlTGlzdHMudHh0CkBAIC00Nyw2ICs0Nyw3IEBA IHNldChrcml0YXBpZ21lbnRfU1JDUwogICAgIEtvQ29sb3JDb252ZXJzaW9ucy5jcHAKICAgICBL b0NvbG9yQ29udmVyc2lvblN5c3RlbS5jcHAKICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uLmNwcAorICAgIEtvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbi5j cHAKICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uRmFjdG9yeS5jcHAKICAgICBL b0NvbG9yTW9kZWxTdGFuZGFyZElkcy5jcHAKICAgICBLb0NvbG9yUHJvZmlsZS5jcHAKZGlmZiAt LWdpdCBhL2xpYnMvcGlnbWVudC9Lb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uQWJzdHJh Y3RGYWN0b3J5LmggYi9saWJzL3BpZ21lbnQvS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlv bkFic3RyYWN0RmFjdG9yeS5oCmluZGV4IDJiZWZkMWQuLjQ0OTY0OGUgMTAwNjQ0Ci0tLSBhL2xp YnMvcGlnbWVudC9Lb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uQWJzdHJhY3RGYWN0b3J5 LmgKKysrIGIvbGlicy9waWdtZW50L0tvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb25BYnN0 cmFjdEZhY3RvcnkuaApAQCAtMjMsMTIgKzIzLDE0IEBACiAjaW5jbHVkZSAia3JpdGFwaWdtZW50 X2V4cG9ydC5oIgogCiAjaW5jbHVkZSA8S29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbi5o PgorI2luY2x1ZGUgPEtvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbi5oPgog CiBjbGFzcyBLUklUQVBJR01FTlRfRVhQT1JUIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRp b25BYnN0cmFjdEZhY3RvcnkKIHsKIHB1YmxpYzoKICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5z Zm9ybWF0aW9uQWJzdHJhY3RGYWN0b3J5KCkge30KICAgICB2aXJ0dWFsIH5Lb0NvbG9yQ29udmVy c2lvblRyYW5zZm9ybWF0aW9uQWJzdHJhY3RGYWN0b3J5KCkge30KKwogICAgIC8qKgogICAgICAq IENyZWF0ZXMgYSBjb2xvciB0cmFuc2Zvcm1hdGlvbiBiZXR3ZWVuIHRoZSBzb3VyY2UgY29sb3Ig c3BhY2UgYW5kIHRoZSBkZXN0aW5hdGlvbgogICAgICAqIGNvbG9yIHNwYWNlLgpAQCAtNDAsNiAr NDIsMjcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLb0NvbG9yU3BhY2UqIGRzdENv bG9yU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246 OkludGVudCByZW5kZXJpbmdJbnRlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9u VHJhbnNmb3JtYXRpb246OkNvbnZlcnNpb25GbGFncyBjb252ZXJzaW9uRmxhZ3MpIGNvbnN0ID0g MDsKKworICAgIHZpcnR1YWwgS29Db2xvclByb29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9u KiBjcmVhdGVDb2xvclByb29maW5nVHJhbnNmb3JtYXRpb24oY29uc3QgS29Db2xvclNwYWNlKiBz cmNDb2xvclNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLb0NvbG9yU3BhY2UqIGRzdENvbG9y U3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtvQ29sb3JTcGFjZSogcHJvb2ZpbmdTcGFjZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgS29Db2xvclByb29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpJ bnRlbnQgcmVuZGVyaW5nSW50ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLb0NvbG9yUHJvb2ZpbmdDb252 ZXJzaW9uVHJhbnNmb3JtYXRpb246OkludGVudCBwcm9vZmluZ0ludGVudCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgS29Db2xvclByb29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpDb252ZXJzaW9uRmxh Z3MgY29udmVyc2lvbkZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWludDggKmdhbXV0V2FybmluZywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG91YmxlIGFkYXB0YXRpb25TdGF0ZSkgY29uc3QKKyAgICB7CisgICAg ICAgIFFfVU5VU0VEKHNyY0NvbG9yU3BhY2UpOworICAgICAgICBRX1VOVVNFRChkc3RDb2xvclNw YWNlKTsKKyAgICAgICAgUV9VTlVTRUQocHJvb2ZpbmdTcGFjZSk7CisgICAgICAgIFFfVU5VU0VE KHJlbmRlcmluZ0ludGVudCk7CisgICAgICAgIFFfVU5VU0VEKHByb29maW5nSW50ZW50KTsKKyAg ICAgICAgUV9VTlVTRUQoY29udmVyc2lvbkZsYWdzKTsKKyAgICAgICAgUV9VTlVTRUQoZ2FtdXRX YXJuaW5nKTsKKyAgICAgICAgUV9VTlVTRUQoYWRhcHRhdGlvblN0YXRlKTsKKyAgICAgICAgcUZh dGFsKCJjcmVhdGVDb2xvclByb29maW5UcmFuc2Zvcm0gdW5kZWZpbmVkLiIpOworICAgICAgICBy ZXR1cm4gMDsKKyAgICB9CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYnMvcGlnbWVudC9L b0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uY3BwIGIvbGlicy9waWdtZW50 L0tvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbi5jcHAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMxNmI0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnMv cGlnbWVudC9Lb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uY3BwCkBAIC0w LDAgKzEsNDkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDA3IEN5cmlsbGUgQmVyZ2VyIDxj YmVyZ2VyQGNiZXJnZXIubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt MTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgIktvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFu c2Zvcm1hdGlvbi5oIgorCisjaW5jbHVkZSAiS29Db2xvclNwYWNlLmgiCisKKworS29Db2xvclBy b29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpLb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9u VHJhbnNmb3JtYXRpb24oY29uc3QgS29Db2xvclNwYWNlKiBzcmNDcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg S29Db2xvclNwYWNlKiBkc3RDcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS29Db2xvclNwYWNlKiBwcm9vZmlu Z1NwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJbnRlbnQgcmVuZGVyaW5nSW50ZW50LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlbnQg cHJvb2ZpbmdJbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENvbnZlcnNpb25GbGFncyBjb252ZXJzaW9uRmxhZ3Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHF1aW50OCAqZ2FtdXRXYXJuaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgYWRhcHRhdGlv blN0YXRlKQorICAgIDogS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbihzcmNDcywgZHN0 Q3MsIHJlbmRlcmluZ0ludGVudCwgY29udmVyc2lvbkZsYWdzKQoreworICAgIFFfQVNTRVJUKHBy b29maW5nU3BhY2UpOworICAgIG1fcHJvb2ZpbmdJbnRlbnQgPSBwcm9vZmluZ0ludGVudDsKKyAg ICBtX2dhbXV0V2FybmluZyA9IGdhbXV0V2FybmluZzsKKyAgICBtX2FkYXB0YXRpb25TdGF0ZSA9 IGFkYXB0YXRpb25TdGF0ZTsKKyAgICBtX3Byb29maW5nU3BhY2UgPSBwcm9vZmluZ1NwYWNlOwor fQorCitLb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246On5Lb0NvbG9yUHJv b2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24oKQoreworfQorCitjb25zdCBLb0NvbG9yU3Bh Y2UqIEtvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6cHJvb2ZpbmdTcGFj ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJvb2ZpbmdTcGFjZTsKK30KZGlmZiAtLWdpdCBh L2xpYnMvcGlnbWVudC9Lb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaCBi L2xpYnMvcGlnbWVudC9Lb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzkxNWJjCi0tLSAvZGV2L251bGwK KysrIGIvbGlicy9waWdtZW50L0tvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlv bi5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDA3IEN5cmlsbGUg QmVyZ2VyIDxjYmVyZ2VyQGNiZXJnZXIubmV0PgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor ICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3Rvbiwg TUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBfS09fQ09MT1JfUFJPT0ZJTkdfQ09O VkVSU0lPTl9UUkFOU0ZPUk1BVElPTl9IXworI2RlZmluZSBfS09fQ09MT1JfUFJPT0ZJTkdfQ09O VkVSU0lPTl9UUkFOU0ZPUk1BVElPTl9IXworCisjaW5jbHVkZSAiS29Db2xvckNvbnZlcnNpb25U cmFuc2Zvcm1hdGlvbi5oIgorCisjaW5jbHVkZSAia3JpdGFwaWdtZW50X2V4cG9ydC5oIgorCitj bGFzcyBLb0NvbG9yU3BhY2U7CitjbGFzcyBLb0NvbG9yQ29udmVyc2lvbkNhY2hlOworCisvKioK KyAqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3Mgb2YgYWxsIGNvbG9yIHRyYW5zZm9ybSB0aGF0IGNv bnZlcnQgdGhlIGNvbG9yIG9mIGEgcGl4ZWwKKyAqLworY2xhc3MgS1JJVEFQSUdNRU5UX0VYUE9S VCBLb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24gOiBwdWJsaWMgS29Db2xv ckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbgoreworCitwdWJsaWM6CisgICAgS29Db2xvclByb29m aW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uKGNvbnN0IEtvQ29sb3JTcGFjZSAqc3JjQ3MsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtvQ29sb3JT cGFjZSAqZHN0Q3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEtvQ29sb3JTcGFjZSAqcHJvb2ZpbmdTcGFjZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSW50ZW50IHJlbmRlcmluZ0ludGVudCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZW50IHByb29maW5nSW50ZW50 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9u RmxhZ3MgY29udmVyc2lvbkZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBxdWludDggKmdhbXV0V2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGFkYXB0YXRpb25TdGF0ZSk7CisgICAgdmlydHVh bCB+S29Db2xvclByb29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uKCk7CisKK3B1YmxpYzoK KworICAgIC8qKgorICAgICAqIEBicmllZiBwcm9vZmluZ1NwYWNlCisgICAgICogQHJldHVybiB0 aGUgc3BhY2UgdGhhdCBpcyB1c2VkIHRvIHByb29mIHRoZSBjb2xvciB0cmFuc2Zvcm0KKyAgICAg Ki8KKyAgICBjb25zdCBLb0NvbG9yU3BhY2UgKnByb29maW5nU3BhY2UoKSBjb25zdDsKKworcHJp dmF0ZToKKworICAgIEludGVudCBtX3Byb29maW5nSW50ZW50OworICAgIHF1aW50OCAqbV9nYW11 dFdhcm5pbmc7CisgICAgZG91YmxlIG1fYWRhcHRhdGlvblN0YXRlOworICAgIGNvbnN0IEtvQ29s b3JTcGFjZSAqbV9wcm9vZmluZ1NwYWNlOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9saWJz L3BpZ21lbnQvS29Db2xvclNwYWNlLmNwcCBiL2xpYnMvcGlnbWVudC9Lb0NvbG9yU3BhY2UuY3Bw CmluZGV4IDIzODYyN2IuLjZiNzFmOTIgMTAwNjQ0Ci0tLSBhL2xpYnMvcGlnbWVudC9Lb0NvbG9y U3BhY2UuY3BwCisrKyBiL2xpYnMvcGlnbWVudC9Lb0NvbG9yU3BhY2UuY3BwCkBAIC0zNiw2ICsz Niw3IEBACiAjaW5jbHVkZSAiS29NaXhDb2xvcnNPcC5oIgogI2luY2x1ZGUgIktvQ29udm9sdXRp b25PcC5oIgogI2luY2x1ZGUgIktvQ29tcG9zaXRlT3BSZWdpc3RyeS5oIgorI2luY2x1ZGUgIktv Q29sb3JTcGFjZUVuZ2luZS5oIgogCiAjaW5jbHVkZSA8UVRocmVhZFN0b3JhZ2U+CiAjaW5jbHVk ZSA8UUJ5dGVBcnJheT4KQEAgLTY2LDYgKzY3LDcgQEAgS29Db2xvclNwYWNlOjpLb0NvbG9yU3Bh Y2UoY29uc3QgUVN0cmluZyAmaWQsIGNvbnN0IFFTdHJpbmcgJm5hbWUsIEtvTWl4Q29sb3JzT3AK ICAgICBkLT5UUkNYWVkgPSBRUG9seWdvbkYoKTsKICAgICBkLT5jb2xvcmFudHMgPSBRVmVjdG9y IDxxcmVhbD4gKDApOwogICAgIGQtPmx1bWFDb2VmZmljaWVudHMgPSBRVmVjdG9yIDxxcmVhbD4g KDApOworICAgIGQtPmljY0VuZ2luZSA9IDA7CiAgICAgZC0+ZGVsZXRhYmlsaXR5ID0gTm90T3du ZWRCeVJlZ2lzdHJ5OwogfQogCkBAIC0xMTksNyArMTIxLDcgQEAgUVBvbHlnb25GIEtvQ29sb3JT cGFjZTo6Z2FtdXRYWVkoKSBjb25zdAogICAgICAgICBpZiAoKGNvbG9yTW9kZWxJZCgpLmlkKCk9 PSJDTVlLQSIgfHwgY29sb3JNb2RlbElkKCkuaWQoKT09IkxBQkEiKSAmJiBjb2xvckRlcHRoSWQo KS5pZCgpPT0iRjMyIikgewogICAgICAgICAgICAgLy9ib3VuZGFyaWVzIGZvciBjbXlrYS9sYWJh IGhhdmUgdHJvdWJsZSBnZXR0aW5nIHRoZSBtYXggdmFsdWVzIGZvciBGbG9hdCwgYW5kIGFyZSBw cmV0dHkgYXdrd2FyZCBpbiBnZW5lcmFsLgogICAgICAgICAgICAgbWF4ID0gdGhpcy0+Y2hhbm5l bHMoKVswXS0+Z2V0VUlNYXgoKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgIH0KICAgICAgICAg aW50IHNhbXBsZXMgPSA1Oy8vYW1vdW50IG9mIHNhbXBsZXMgaW4gb3VyIGNvbG9yIHNwYWNlLgog ICAgICAgICBRU3RyaW5nIG5hbWUgPSBLb0NvbG9yU3BhY2VSZWdpc3RyeTo6aW5zdGFuY2UoKS0+ Y29sb3JTcGFjZUZhY3RvcnkoIlhZWkFGMzIiKS0+ZGVmYXVsdFByb2ZpbGUoKTsKQEAgLTE3NSw3 ICsxNzcsNyBAQCBRUG9seWdvbkYgS29Db2xvclNwYWNlOjpnYW11dFhZWSgpIGNvbnN0CiAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg ICAgICBkZWxldGVbXSBkYXRhOwpAQCAtMjMwLDcgKzIzMiw3IEBAIFFQb2x5Z29uRiBLb0NvbG9y U3BhY2U6OmVzdGltYXRlZFRSQ1hZWSgpIGNvbnN0CiAgICAgICAgICAgICAgICAgZm9yIChpbnQg aj0wOyBqPDU7IGorKyl7CiAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxWYWx1ZXNGLmZpbGwo MC4wKTsKICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbFZhbHVlc0ZbaV0gPSAoKG1heC80KSoo aikpOwotICAgICAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgICAgICBmcm9tTm9y bWFsaXNlZENoYW5uZWxzVmFsdWUoZGF0YSwgY2hhbm5lbFZhbHVlc0YpOwogCiAgICAgICAgICAg ICAgICAgICAgIGNvbnZlcnRQaXhlbHNUbyhkYXRhLCBkYXRhMiwgeHl6Q29sb3JTcGFjZSwgMSwg S29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6SW50ZW50QWJzb2x1dGVDb2xvcmltZXRy aWMsICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6YWRqdXN0bWVudENv bnZlcnNpb25GbGFncygpKTsKQEAgLTQzNSw2ICs0MzcsMjYgQEAgYm9vbCBLb0NvbG9yU3BhY2U6 OmNvbnZlcnRQaXhlbHNUbyhjb25zdCBxdWludDggKiBzcmMsCiAgICAgcmV0dXJuIHRydWU7CiB9 CiAKK0tvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24gKiBLb0NvbG9yU3BhY2U6OmNyZWF0 ZVByb29maW5nVHJhbnNmb3JtKGNvbnN0IEtvQ29sb3JTcGFjZSAqZHN0Q29sb3JTcGFjZSwgY29u c3QgS29Db2xvclNwYWNlICpwcm9vZmluZ1NwYWNlLCBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uOjpJbnRlbnQgcmVuZGVyaW5nSW50ZW50LCBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uOjpJbnRlbnQgcHJvb2ZpbmdJbnRlbnQsIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3Jt YXRpb246OkNvbnZlcnNpb25GbGFncyBjb252ZXJzaW9uRmxhZ3MsIHF1aW50OCAqZ2FtdXRXYXJu aW5nLCBkb3VibGUgYWRhcHRhdGlvblN0YXRlKSBjb25zdAoreworICAgIGlmICghZC0+aWNjRW5n aW5lKSB7CisgICAgICAgIGQtPmljY0VuZ2luZSA9IEtvQ29sb3JTcGFjZUVuZ2luZVJlZ2lzdHJ5 OjppbnN0YW5jZSgpLT5nZXQoImljYyIpOworICAgIH0KKyAgICBpZiAoIWQtPmljY0VuZ2luZSkg cmV0dXJuIDA7CisKKyAgICByZXR1cm4gZC0+aWNjRW5naW5lLT5jcmVhdGVDb2xvclByb29maW5n VHJhbnNmb3JtYXRpb24odGhpcywgZHN0Q29sb3JTcGFjZSwgcHJvb2ZpbmdTcGFjZSwgcmVuZGVy aW5nSW50ZW50LCBwcm9vZmluZ0ludGVudCwgY29udmVyc2lvbkZsYWdzLCBnYW11dFdhcm5pbmcs IGFkYXB0YXRpb25TdGF0ZSk7Cit9CisKK2Jvb2wgS29Db2xvclNwYWNlOjpwcm9vZlBpeGVsc1Rv KGNvbnN0IHF1aW50OCAqc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVp bnQ4ICpkc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWludDMyIG51bVBp eGVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9u VHJhbnNmb3JtYXRpb24gKnByb29maW5nVHJhbnNmb3JtKSBjb25zdAoreworICAgIHByb29maW5n VHJhbnNmb3JtLT50cmFuc2Zvcm0oc3JjLCBkc3QsIG51bVBpeGVscyk7CisKKyAgICAvL3RoZSB0 cmFuc2Zvcm0gaXMgZGVsZXRlZCBpbiB0aGUgZGVzdHJ1Y3Rvci4KKyAgICByZXR1cm4gdHJ1ZTsK K30KIAogdm9pZCBLb0NvbG9yU3BhY2U6OmJpdEJsdChjb25zdCBLb0NvbG9yU3BhY2UqIHNyY1Nw YWNlLCBjb25zdCBLb0NvbXBvc2l0ZU9wOjpQYXJhbWV0ZXJJbmZvJiBwYXJhbXMsIGNvbnN0IEtv Q29tcG9zaXRlT3AqIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICBLb0NvbG9yQ29udmVy c2lvblRyYW5zZm9ybWF0aW9uOjpJbnRlbnQgcmVuZGVyaW5nSW50ZW50LApkaWZmIC0tZ2l0IGEv bGlicy9waWdtZW50L0tvQ29sb3JTcGFjZS5oIGIvbGlicy9waWdtZW50L0tvQ29sb3JTcGFjZS5o CmluZGV4IGYyOWI4ZTkuLmEyNWY5NjMgMTAwNjQ0Ci0tLSBhL2xpYnMvcGlnbWVudC9Lb0NvbG9y U3BhY2UuaAorKysgYi9saWJzL3BpZ21lbnQvS29Db2xvclNwYWNlLmgKQEAgLTI5LDYgKzI5LDcg QEAKIAogI2luY2x1ZGUgIktvQ29sb3JTcGFjZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIktvQ29s b3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaCIKKyNpbmNsdWRlICJLb0NvbG9yUHJvb2ZpbmdD b252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaCIKICNpbmNsdWRlICJLb0NvbXBvc2l0ZU9wLmgiCiAj aW5jbHVkZSA8S29JRC5oPgogI2luY2x1ZGUgImtyaXRhcGlnbWVudF9leHBvcnQuaCIKQEAgLTEw NywxNyArMTA4LDE3IEBAIHB1YmxpYzoKICAgICAgKiBtYXliZSBjb252ZXJ0IHRvIDNkIHNwYWNl IGluIGZ1dHVyZT8KICAgICAgKi8KICAgICBRUG9seWdvbkYgZ2FtdXRYWVkoKSBjb25zdDsKLSAg ICAKKwogICAgIC8qCiAgICAgICogQHJldHVybnMgYSBwb2x5Z29uIHdpdGggNSBzYW1wbGVzIHBl ciBjaGFubmVsIGNvbnZlcnRlZCB0byB4eVksIGJ1dCB1bmxpa2UKICAgICAgKiBnYW11dHh5WSBp dCBmb2N1c2VzIG9uIHRoZSBsdW1pbmFuY2UuIFRoaXMgdGhlbiBjYW4gYmUgdXNlZCB0byB2aXN1 YWxpc2UKICAgICAgKiB0aGUgYXBwcm94aW1hdGUgdHJjIG9mIGEgZ2l2ZW4gY29sb3JzcGFjZS4K ICAgICAgKi8KICAgICBRUG9seWdvbkYgZXN0aW1hdGVkVFJDWFlZKCkgY29uc3Q7Ci0gICAgCisK ICAgICBRVmVjdG9yIDxxcmVhbD4gY29sb3JhbnRzKCkgY29uc3Q7CiAgICAgUVZlY3RvciA8cXJl YWw+IGx1bWFDb2VmZmljaWVudHMoKSBjb25zdDsKLSAgICAKKwogICAgIC8vPT09PT09PT09PSBD aGFubmVscyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PS8vCiAKICAgICAvLy8gUmV0dXJuIGEgbGlzdCBkZXNjcmliaW5nIGFsbCB0aGUgY2hhbm5l bHMgdGhpcyBjb2xvciBtb2RlbCBoYXMuIFRoZSBvcmRlcgpAQCAtMzcxLDYgKzM3MiwzMSBAQCBw dWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLb0NvbG9yQ29udmVyc2lv blRyYW5zZm9ybWF0aW9uOjpJbnRlbnQgcmVuZGVyaW5nSW50ZW50LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6Q29udmVy c2lvbkZsYWdzIGNvbnZlcnNpb25GbGFncykgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIEtvQ29sb3JD b252ZXJzaW9uVHJhbnNmb3JtYXRpb24gKmNyZWF0ZVByb29maW5nVHJhbnNmb3JtKGNvbnN0IEtv Q29sb3JTcGFjZSAqIGRzdENvbG9yU3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS29Db2xvclNwYWNlICogcHJv b2ZpbmdTcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpJbnRlbnQg cmVuZGVyaW5nSW50ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246Oklu dGVudCBwcm9vZmluZ0ludGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9u OjpDb252ZXJzaW9uRmxhZ3MgY29udmVyc2lvbkZsYWdzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1aW50OCAqZ2FtdXRXYXJu aW5nLCBkb3VibGUgYWRhcHRhdGlvblN0YXRlKSBjb25zdDsKKyAgICAvKioKKyAgICAgKiBAYnJp ZWYgcHJvb2ZQaXhlbHNUbworICAgICAqIEBwYXJhbSBzcmMKKyAgICAgKiBAcGFyYW0gZHN0Cisg ICAgICogQHBhcmFtIGRzdENvbG9yU3BhY2UgdGhlIGNvbG9yc3BhY2UgdG8gd2hpY2ggd2UgZ28g dG8uCisgICAgICogQHBhcmFtIHByb29maW5nU3BhY2UgdGhlIHByb29maW5nIHNwYWNlLgorICAg ICAqIEBwYXJhbSBudW1QaXhlbHMgdGhlIGFtb3VudCBvZiBwaXhlbHMuCisgICAgICogQHBhcmFt IHJlbmRlcmluZ0ludGVudCB0aGUgcmVuZGVyaW5nIGludGVudCB1c2VkIGZvciByZW5kZXJpbmcu CisgICAgICogQHBhcmFtIHByb29maW5nSW50ZW50IHRoZSBpbnRlbnQgdXNlZCBmb3IgcHJvb2Zp bmcuCisgICAgICogQHBhcmFtIGNvbnZlcnNpb25GbGFncyB0aGUgY29udmVyc2lvbiBmbGFncy4K KyAgICAgKiBAcGFyYW0gZ2FtdXRXYXJuaW5nIHRoZSBkYXRhKCkgb2YgYSBLb0NvbG9yLgorICAg ICAqIEBwYXJhbSBhZGFwdGF0aW9uU3RhdGUgdGhlIHN0YXRlIG9mIGFkYXB0YXRpb24sIG9ubHkg YWZmZWN0cyBhYnNvbHV0ZSBjb2xvcmltZXRyaWMuCisgICAgICogQHJldHVybgorICAgICAqLwor ICAgIHZpcnR1YWwgYm9vbCBwcm9vZlBpeGVsc1RvKGNvbnN0IHF1aW50OCAqIHNyYywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBxdWludDggKiBkc3QsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcXVpbnQzMiBudW1QaXhlbHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbiAqcHJvb2ZpbmdUcmFuc2Zv cm0pIGNvbnN0OworCiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBNYW5pcHVsYXRp b24gZnVuY3Rpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09Ly8KIAogCmRpZmYgLS1naXQg YS9saWJzL3BpZ21lbnQvS29Db2xvclNwYWNlRW5naW5lLmggYi9saWJzL3BpZ21lbnQvS29Db2xv clNwYWNlRW5naW5lLmgKaW5kZXggZGVmYmE1Ni4uMTE1YThhNiAxMDA2NDQKLS0tIGEvbGlicy9w aWdtZW50L0tvQ29sb3JTcGFjZUVuZ2luZS5oCisrKyBiL2xpYnMvcGlnbWVudC9Lb0NvbG9yU3Bh Y2VFbmdpbmUuaApAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgUVN0cmluZyYg bmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhZGRQcm9maWxlKGNvbnN0IFFTdHJpbmcg JmZpbGVuYW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVByb2ZpbGUoY29uc3QgUVN0 cmluZyAmZmlsZW5hbWUpID0gMDsKKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgUHJpdmF0ZTsKICAg ICBQcml2YXRlKiBjb25zdCBkOwpkaWZmIC0tZ2l0IGEvbGlicy9waWdtZW50L0tvQ29sb3JTcGFj ZV9wLmggYi9saWJzL3BpZ21lbnQvS29Db2xvclNwYWNlX3AuaAppbmRleCAxYTgyZjI0Li5jOGUx MzIzIDEwMDY0NAotLS0gYS9saWJzL3BpZ21lbnQvS29Db2xvclNwYWNlX3AuaAorKysgYi9saWJz L3BpZ21lbnQvS29Db2xvclNwYWNlX3AuaApAQCAtMjEsNiArMjEsOCBAQAogI2RlZmluZSBfS09D T0xPUlNQQUNFX1BfSF8KIAogI2luY2x1ZGUgIktvQ29sb3JTcGFjZS5oIgorI2luY2x1ZGUgIktv Q29sb3JTcGFjZUVuZ2luZS5oIgorI2luY2x1ZGUgIktvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3Jt YXRpb24uaCIKICNpbmNsdWRlIDxRVGhyZWFkU3RvcmFnZT4KICNpbmNsdWRlIDxRUG9seWdvbkY+ CiAKQEAgLTQ1LDYgKzQ3LDggQEAgc3RydWN0IFFfREVDTF9ISURERU4gS29Db2xvclNwYWNlOjpQ cml2YXRlIHsKICAgICBRVmVjdG9yIDxxcmVhbD4gY29sb3JhbnRzOwogICAgIFFWZWN0b3IgPHFy ZWFsPiBsdW1hQ29lZmZpY2llbnRzOwogCisgICAgS29Db2xvclNwYWNlRW5naW5lICppY2NFbmdp bmU7CisKICAgICBEZWxldGFiaWxpdHkgZGVsZXRhYmlsaXR5OwogfTsKIApkaWZmIC0tZ2l0IGEv bGlicy91aS9LaXNWaWV3LmNwcCBiL2xpYnMvdWkvS2lzVmlldy5jcHAKaW5kZXggYjYwNjk3Ni4u ZDU2YmQ0NiAxMDA2NDQKLS0tIGEvbGlicy91aS9LaXNWaWV3LmNwcAorKysgYi9saWJzL3VpL0tp c1ZpZXcuY3BwCkBAIC0xNDcsNiArMTQ3LDkgQEAgcHVibGljOgogICAgIFFQb2ludGVyPEtpc0Zs b2F0aW5nTWVzc2FnZT4gc2F2ZWRGbG9hdGluZ01lc3NhZ2U7CiAgICAgS2lzU2lnbmFsQ29tcHJl c3NvciBmbG9hdGluZ01lc3NhZ2VDb21wcmVzc29yOwogCisgICAgYm9vbCBzb2Z0UHJvb2Zpbmcg PSBmYWxzZTsKKyAgICBib29sIGdhbXV0Q2hlY2sgPSBmYWxzZTsKKwogICAgIC8vIEhtbSBzb3Jy eSBmb3IgcG9sbHV0aW5nIHRoZSBwcml2YXRlIGNsYXNzIHdpdGggc3VjaCBhIGJpZyBpbm5lciBj bGFzcy4KICAgICAvLyBBdCB0aGUgYmVnaW5uaW5nIGl0IHdhcyBhIGxpdHRsZSBzdHJ1Y3QgOikK ICAgICBjbGFzcyBTdGF0dXNCYXJJdGVtCkBAIC04MDUsNiArODA4LDU4IEBAIEtpc1NlbGVjdGlv blNQIEtpc1ZpZXc6OnNlbGVjdGlvbigpCiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgS2lzVmll dzo6c2xvdFNvZnRQcm9vZmluZyhib29sIHNvZnRQcm9vZmluZykKK3sKKyAgICBkLT5zb2Z0UHJv b2ZpbmcgPSBzb2Z0UHJvb2Zpbmc7CisgICAgUVN0cmluZyBtZXNzYWdlOworICAgIGlmIChjYW52 YXNCYXNlKCktPmltYWdlKCktPmNvbG9yU3BhY2UoKS0+Y29sb3JEZXB0aElkKCkuaWQoKS5jb250 YWlucygiRiIpKQorICAgIHsKKyAgICAgICAgbWVzc2FnZSA9IGkxOG4oIlNvZnQgUHJvb2Zpbmcg ZG9lc24ndCB3b3JrIGluIGZsb2F0aW5nIHBvaW50LiIpOworICAgICAgICB2aWV3TWFuYWdlcigp LT5zaG93RmxvYXRpbmdNZXNzYWdlKG1lc3NhZ2UsUUljb24oKSk7CisgICAgICAgIHJldHVybjsK KyAgICB9CisgICAgaWYgKHNvZnRQcm9vZmluZyl7CisgICAgICAgIG1lc3NhZ2UgPSBpMThuKCJT b2Z0IFByb29maW5nIHR1cm5lZCBvbi4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtZXNzYWdl ID0gaTE4bigiU29mdCBQcm9vZmluZyB0dXJuZWQgb2ZmLiIpOworICAgIH0KKyAgICB2aWV3TWFu YWdlcigpLT5zaG93RmxvYXRpbmdNZXNzYWdlKG1lc3NhZ2UsUUljb24oKSk7CisgICAgY2FudmFz QmFzZSgpLT5zbG90U29mdFByb29maW5nKHNvZnRQcm9vZmluZyk7Cit9CisKK3ZvaWQgS2lzVmll dzo6c2xvdEdhbXV0Q2hlY2soYm9vbCBnYW11dENoZWNrKQoreworICAgIGQtPmdhbXV0Q2hlY2sg PSBnYW11dENoZWNrOworICAgIFFTdHJpbmcgbWVzc2FnZTsKKyAgICBpZiAoY2FudmFzQmFzZSgp LT5pbWFnZSgpLT5jb2xvclNwYWNlKCktPmNvbG9yRGVwdGhJZCgpLmlkKCkuY29udGFpbnMoIkYi KSkKKyAgICB7CisgICAgICAgIG1lc3NhZ2UgPSBpMThuKCJHYW11dCBXYXJuaW5ncyBkb24ndCB3 b3JrIGluIGZsb2F0aW5nIHBvaW50LiIpOworICAgICAgICB2aWV3TWFuYWdlcigpLT5zaG93Rmxv YXRpbmdNZXNzYWdlKG1lc3NhZ2UsUUljb24oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK KyAgICBpZiAoZ2FtdXRDaGVjayl7CisgICAgICAgIG1lc3NhZ2UgPSBpMThuKCJHYW11dCBXYXJu aW5ncyB0dXJuZWQgb24uIik7CisgICAgICAgIGlmICghZC0+c29mdFByb29maW5nKXsKKyAgICAg ICAgICAgIG1lc3NhZ2UgKz0gIlxuICIraTE4bigiQnV0IFNvZnQgUHJvb2ZpbmcgaXMgc3RpbGwg b2ZmLiIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgbWVzc2FnZSA9IGkxOG4o IkdhbXV0IFdhcm5pbmdzIHR1cm5lZCBvZmYuIik7CisgICAgfQorICAgIHZpZXdNYW5hZ2VyKCkt PnNob3dGbG9hdGluZ01lc3NhZ2UobWVzc2FnZSxRSWNvbigpKTsKKyAgICBjYW52YXNCYXNlKCkt PnNsb3RHYW11dENoZWNrKGdhbXV0Q2hlY2spOworfQorCitib29sIEtpc1ZpZXc6OnNvZnRQcm9v ZmluZygpCit7CisgICAgcmV0dXJuIGQtPnNvZnRQcm9vZmluZzsKK30KKworYm9vbCBLaXNWaWV3 OjpnYW11dENoZWNrKCkKK3sKKyAgICByZXR1cm4gZC0+Z2FtdXRDaGVjazsKK30KKwogdm9pZCBL aXNWaWV3OjpzbG90TG9hZGluZ0ZpbmlzaGVkKCkKIHsKICAgICBpZiAoIWRvY3VtZW50KCkpIHJl dHVybjsKZGlmZiAtLWdpdCBhL2xpYnMvdWkvS2lzVmlldy5oIGIvbGlicy91aS9LaXNWaWV3LmgK aW5kZXggYWNmMmMyNy4uMDM5MDJmMyAxMDA2NDQKLS0tIGEvbGlicy91aS9LaXNWaWV3LmgKKysr IGIvbGlicy91aS9LaXNWaWV3LmgKQEAgLTE5Miw2ICsxOTIsMTYgQEAgcHVibGljOgogICAgIEtp c05vZGVTUCBjdXJyZW50Tm9kZSgpIGNvbnN0OwogICAgIEtpc0xheWVyU1AgY3VycmVudExheWVy KCkgY29uc3Q7CiAgICAgS2lzTWFza1NQIGN1cnJlbnRNYXNrKCkgY29uc3Q7CisgICAgLyoqCisg ICAgICogQGJyaWVmIHNvZnRQcm9vZmluZworICAgICAqIEByZXR1cm4gd2hldGhlciBvciBub3Qg d2UncmUgc29mdHByb29maW5nIGluIHRoaXMgdmlldy4KKyAgICAgKi8KKyAgICBib29sIHNvZnRQ cm9vZmluZygpOworICAgIC8qKgorICAgICAqIEBicmllZiBnYW11dENoZWNrCisgICAgICogQHJl dHVybiB3aGV0aGVyIG9yIG5vdCB3ZSdyZSB1c2luZyBnYW11dCB3YXJuaW5ncyBpbiB0aGlzIHZp ZXcuCisgICAgICovCisgICAgYm9vbCBnYW11dENoZWNrKCk7CiAKICAgICAvLy8gQ29udmVuaWVu Y2UgbWV0aG9kIHRvIGdldCBhdCB0aGUgYWN0aXZlIHNlbGVjdGlvbiAodGhlCiAgICAgLy8vIHNl bGVjdGlvbiBvZiB0aGUgY3VycmVudCBsYXllciwgb3IsIGlmIHRoYXQgZG9lcyBub3QgZXhpc3Qs CkBAIC0yMTYsNiArMjI2LDE2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgICAqIEB0b2RvIHJlbmFt ZSB0byBzb21ldGhpbmcgbW9yZSBnZW5lcmljCiAgICAgICovCiAgICAgdm9pZCBzbG90Q2xlYXJT dGF0dXNUZXh0KCk7CisgICAgLyoqCisgICAgICogQGJyaWVmIHNsb3RTb2Z0UHJvb2Zpbmcgc2V0 IHdoZXRoZXIgb3Igbm90IHdlJ3JlIHNvZnRwcm9vZmluZyBpbiB0aGlzIHZpZXcuCisgICAgICog V2lsbCBiZSBzZXR0aW5nIHRoZSBzYW1lIGluIHRoZSBjYW52YXMgYmVsb25naW5nIHRvIHRoZSB2 aWV3LgorICAgICAqLworICAgIHZvaWQgc2xvdFNvZnRQcm9vZmluZyhib29sIHNvZnRQcm9vZmlu Zyk7CisgICAgLyoqCisgICAgICogQGJyaWVmIHNsb3RHYW11dENoZWNrIHNldCB3aGV0aGVyIG9y IG5vdCB3ZSdyZSBnYW11dGNoZWNraW5nIGluIHRoaXMgdmlldy4KKyAgICAgKiBXaWxsIGJlIHNl dHRpbmcgdGhlIHNhbWUgaW4gdGhlIHZhbnMgYmVsb25naW5nIHRvIHRoZSB2aWV3LgorICAgICAq LworICAgIHZvaWQgc2xvdEdhbXV0Q2hlY2soYm9vbCBnYW11dENoZWNrKTsKIAogICAgIGJvb2wg cXVlcnlDbG9zZSgpOwogCkBAIC0yNTQsNiArMjc0LDcgQEAgcHVibGljIFFfU0xPVFM6CiAgICAg dm9pZCBzbG90SW1hZ2VSZXNvbHV0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgc2xvdEltYWdlU2l6 ZUNoYW5nZWQoY29uc3QgUVBvaW50RiAmb2xkU3RpbGxQb2ludCwgY29uc3QgUVBvaW50RiAmbmV3 U3RpbGxQb2ludCk7CiAKKwogcHJpdmF0ZToKIAogICAgIGNsYXNzIFByaXZhdGU7CmRpZmYgLS1n aXQgYS9saWJzL3VpL0tpc1ZpZXdNYW5hZ2VyLmNwcCBiL2xpYnMvdWkvS2lzVmlld01hbmFnZXIu Y3BwCmluZGV4IDI2NTE3ZjIuLmJmNDEwZDcgMTAwNjQ0Ci0tLSBhL2xpYnMvdWkvS2lzVmlld01h bmFnZXIuY3BwCisrKyBiL2xpYnMvdWkvS2lzVmlld01hbmFnZXIuY3BwCkBAIC0yMDgsNiArMjA4 LDggQEAgcHVibGljOgogICAgIEtpc0FjdGlvbiAqem9vbVRvMTAwcGN0OwogICAgIEtpc0FjdGlv biAqem9vbUluOwogICAgIEtpc0FjdGlvbiAqem9vbU91dDsKKyAgICBLaXNBY3Rpb24gKnNvZnRQ cm9vZjsKKyAgICBLaXNBY3Rpb24gKmdhbXV0Q2hlY2s7CiAKICAgICBLaXNTZWxlY3Rpb25NYW5h Z2VyIHNlbGVjdGlvbk1hbmFnZXI7CiAgICAgS2lzR3VpZGVzTWFuYWdlciBndWlkZXNNYW5hZ2Vy OwpAQCAtMzU2LDYgKzM1OCw5IEBAIHZvaWQgS2lzVmlld01hbmFnZXI6OnNldEN1cnJlbnRWaWV3 KEtpc1ZpZXcgKnZpZXcpCiAKICAgICB9CiAKKyAgICBkLT5zb2Z0UHJvb2YtPnNldENoZWNrZWQo dmlldy0+c29mdFByb29maW5nKCkpOworICAgIGQtPmdhbXV0Q2hlY2stPnNldENoZWNrZWQodmll dy0+Z2FtdXRDaGVjaygpKTsKKwogICAgIFFQb2ludGVyPEtpc1ZpZXc+aW1hZ2VWaWV3ID0gcW9i amVjdF9jYXN0PEtpc1ZpZXcqPih2aWV3KTsKIAogICAgIGlmIChpbWFnZVZpZXcpIHsKQEAgLTM4 NCw2ICszODksOSBAQCB2b2lkIEtpc1ZpZXdNYW5hZ2VyOjpzZXRDdXJyZW50VmlldyhLaXNWaWV3 ICp2aWV3KQogICAgICAgICBkLT52aWV3Q29ubmVjdGlvbnMuYWRkVW5pcXVlQ29ubmVjdGlvbihk LT56b29tSW4sIFNJR05BTCh0cmlnZ2VyZWQoKSksIGltYWdlVmlldy0+em9vbUNvbnRyb2xsZXIo KS0+em9vbUFjdGlvbigpLCBTTE9UKHpvb21JbigpKSk7CiAgICAgICAgIGQtPnZpZXdDb25uZWN0 aW9ucy5hZGRVbmlxdWVDb25uZWN0aW9uKGQtPnpvb21PdXQsIFNJR05BTCh0cmlnZ2VyZWQoKSks IGltYWdlVmlldy0+em9vbUNvbnRyb2xsZXIoKS0+em9vbUFjdGlvbigpLCBTTE9UKHpvb21PdXQo KSkpOwogCisgICAgICAgIGQtPnZpZXdDb25uZWN0aW9ucy5hZGRVbmlxdWVDb25uZWN0aW9uKGQt PnNvZnRQcm9vZiwgU0lHTkFMKHRvZ2dsZWQoYm9vbCkpLCB2aWV3LCBTTE9UKHNsb3RTb2Z0UHJv b2ZpbmcoYm9vbCkpICk7CisgICAgICAgIGQtPnZpZXdDb25uZWN0aW9ucy5hZGRVbmlxdWVDb25u ZWN0aW9uKGQtPmdhbXV0Q2hlY2ssIFNJR05BTCh0b2dnbGVkKGJvb2wpKSwgdmlldywgU0xPVChz bG90R2FtdXRDaGVjayhib29sKSkgKTsKKwogICAgICAgICBpbWFnZVZpZXctPnpvb21NYW5hZ2Vy KCktPnNldFNob3dSdWxlcnMoZC0+c2hvd1J1bGVyc0FjdGlvbi0+aXNDaGVja2VkKCkpOwogICAg ICAgICBpbWFnZVZpZXctPnpvb21NYW5hZ2VyKCktPnNldFJ1bGVyc1RyYWNrTW91c2UoZC0+cnVs ZXJzVHJhY2tNb3VzZUFjdGlvbi0+aXNDaGVja2VkKCkpOwogCkBAIC02MDIsNiArNjEwLDggQEAg dm9pZCBLaXNWaWV3TWFuYWdlcjo6Y3JlYXRlQWN0aW9ucygpCiAgICAgZC0+cmVzZXRDYW52YXNS b3RhdGlvbiA9IGFjdGlvbk1hbmFnZXIoKS0+Y3JlYXRlQWN0aW9uKCJyZXNldF9jYW52YXNfcm90 YXRpb24iKTsKICAgICBkLT53cmFwQXJvdW5kQWN0aW9uICAgID0gYWN0aW9uTWFuYWdlcigpLT5j cmVhdGVBY3Rpb24oIndyYXBfYXJvdW5kX21vZGUiKTsKICAgICBkLT5sZXZlbE9mRGV0YWlsQWN0 aW9uID0gYWN0aW9uTWFuYWdlcigpLT5jcmVhdGVBY3Rpb24oImxldmVsX29mX2RldGFpbF9tb2Rl Iik7CisgICAgZC0+c29mdFByb29mICAgICAgICAgICA9IGFjdGlvbk1hbmFnZXIoKS0+Y3JlYXRl QWN0aW9uKCJzb2Z0UHJvb2YiKTsKKyAgICBkLT5nYW11dENoZWNrICAgICAgICAgID0gYWN0aW9u TWFuYWdlcigpLT5jcmVhdGVBY3Rpb24oImdhbXV0Q2hlY2siKTsKIAogICAgIEtpc0FjdGlvbiAq dEFjdGlvbiA9IGFjdGlvbk1hbmFnZXIoKS0+Y3JlYXRlQWN0aW9uKCJzaG93U3RhdHVzQmFyIik7 CiAgICAgdEFjdGlvbi0+c2V0Q2hlY2tlZChjZmcuc2hvd1N0YXR1c0JhcigpKTsKZGlmZiAtLWdp dCBhL2xpYnMvdWkvY2FudmFzL2tpc19jYW52YXMyLmNwcCBiL2xpYnMvdWkvY2FudmFzL2tpc19j YW52YXMyLmNwcAppbmRleCBkNTE4NzlkLi5kNTMyMTI2IDEwMDY0NAotLS0gYS9saWJzL3VpL2Nh bnZhcy9raXNfY2FudmFzMi5jcHAKKysrIGIvbGlicy91aS9jYW52YXMva2lzX2NhbnZhczIuY3Bw CkBAIC03NCw2ICs3NCw5IEBACiAjaW5jbHVkZSAib3BlbmdsL2tpc19vcGVuZ2wuaCIKICNpbmNs dWRlICJraXNfZnBzX2RlY29yYXRpb24uaCIKIAorI2luY2x1ZGUgIktvQ29sb3JDb252ZXJzaW9u VHJhbnNmb3JtYXRpb24uaCIKKyNpbmNsdWRlICJLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24uaCIK KwogI2luY2x1ZGUgPGtpc19mYXZvcml0ZV9yZXNvdXJjZV9tYW5hZ2VyLmg+CiAjaW5jbHVkZSA8 a2lzX3BvcHVwX3BhbGV0dGUuaD4KIApAQCAtMTEwLDYgKzExMywxMCBAQCBwdWJsaWM6CiAgICAg UVJlY3Qgc2F2ZWRVcGRhdGVSZWN0OwogCiAgICAgUUJpdEFycmF5IGNoYW5uZWxGbGFnczsKKyAg ICBLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24gKnByb29maW5nQ29uZmlnID0gMDsKKyAgICBib29s IHNvZnRQcm9vZmluZyA9IGZhbHNlOworICAgIGJvb2wgZ2FtdXRDaGVjayA9IGZhbHNlOworICAg IGJvb2wgcHJvb2ZpbmdDb25maWdVcGRhdGVkID0gZmFsc2U7CiAKICAgICBLaXNQb3B1cFBhbGV0 dGUgKnBvcHVwUGFsZXR0ZSA9IDA7CiAgICAgS2lzRGlzcGxheUNvbG9yQ29udmVydGVyIGRpc3Bs YXlDb2xvckNvbnZlcnRlcjsKQEAgLTE4MCw3ICsxODcsNiBAQCB2b2lkIEtpc0NhbnZhczI6OnNl dHVwKCkKICAgICBjb25uZWN0KGtyaXRhU2hhcGVDb250cm9sbGVyLCBTSUdOQUwoY3VycmVudExh eWVyQ2hhbmdlZChjb25zdCBLb1NoYXBlTGF5ZXIqKSksCiAgICAgICAgICAgICBnbG9iYWxTaGFw ZU1hbmFnZXIoKS0+c2VsZWN0aW9uKCksIFNJR05BTChjdXJyZW50TGF5ZXJDaGFuZ2VkKGNvbnN0 IEtvU2hhcGVMYXllciopKSk7CiAKLQogICAgIGNvbm5lY3QoJm1fZC0+dXBkYXRlU2lnbmFsQ29t cHJlc3NvciwgU0lHTkFMKHRpbWVvdXQoKSksIFNMT1Qoc2xvdERvQ2FudmFzVXBkYXRlKCkpKTsK IH0KIApAQCAtNDUzLDYgKzQ1OSw3IEBAIHZvaWQgS2lzQ2FudmFzMjo6aW5pdGlhbGl6ZUltYWdl KCkKIAogICAgIGNvbm5lY3QoaW1hZ2UsIFNJR05BTChzaWdJbWFnZVVwZGF0ZWQoUVJlY3QpKSwg U0xPVChzdGFydFVwZGF0ZUNhbnZhc1Byb2plY3Rpb24oUVJlY3QpKSwgUXQ6OkRpcmVjdENvbm5l Y3Rpb24pOwogICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHNpZ0NhbnZhc0NhY2hlVXBkYXRlZCgp KSwgU0xPVCh1cGRhdGVDYW52YXNQcm9qZWN0aW9uKCkpKTsKKyAgICBjb25uZWN0KGltYWdlLCBT SUdOQUwoc2lnUHJvb2ZpbmdDb25maWdDaGFuZ2VkKCkpLCBTTE9UKHNsb3RDaGFuZ2VQcm9vZmlu Z0NvbmZpZygpKSk7CiAgICAgY29ubmVjdChpbWFnZSwgU0lHTkFMKHNpZ1NpemVDaGFuZ2VkKGNv bnN0IFFQb2ludEYmLCBjb25zdCBRUG9pbnRGJikpLCBTTE9UKHN0YXJ0UmVzaXppbmdJbWFnZSgp KSwgUXQ6OkRpcmVjdENvbm5lY3Rpb24pOwogICAgIGNvbm5lY3QodGhpcywgU0lHTkFMKHNpZ0Nv bnRpbnVlUmVzaXplSW1hZ2UocWludDMyLHFpbnQzMikpLCBTTE9UKGZpbmlzaFJlc2l6aW5nSW1h Z2UocWludDMyLHFpbnQzMikpKTsKIApAQCAtNTQ0LDYgKzU1MSw3MyBAQCBLaXNFeHBvc3VyZUdh bW1hQ29ycmVjdGlvbkludGVyZmFjZSogS2lzQ2FudmFzMjo6ZXhwb3N1cmVHYW1tYUNvcnJlY3Rp b25JbnRlcmZhYwogICAgICAgICBLaXNEdW1iRXhwb3N1cmVHYW1tYUNvcnJlY3Rpb25JbnRlcmZh Y2U6Omluc3RhbmNlKCk7CiB9CiAKK3ZvaWQgS2lzQ2FudmFzMjo6c2V0UHJvb2ZpbmdPcHRpb25z KGJvb2wgc29mdFByb29mLCBib29sIGdhbXV0Q2hlY2spCit7CisgICAgbV9kLT5wcm9vZmluZ0Nv bmZpZyA9IHRoaXMtPmltYWdlKCktPnByb29maW5nQ29uZmlndXJhdGlvbigpOworICAgIGlmICgh bV9kLT5wcm9vZmluZ0NvbmZpZykgeworICAgICAgICBxRGVidWcoKTw8IkNhbnZhczogTm8gcHJv b2ZpbmcgY29uZmlnIGZvdW5kLCBnZW5lcmF0aW5nIG9uZS4iOworICAgICAgICBLaXNJbWFnZUNv bmZpZyBjZmc7CisgICAgICAgIG1fZC0+cHJvb2ZpbmdDb25maWcgPSBjZmcuZGVmYXVsdFByb29m aW5nY29uZmlndXJhdGlvbigpOworICAgIH0KKyAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uOjpDb252ZXJzaW9uRmxhZ3MgY29udmVyc2lvbkZsYWdzID0gbV9kLT5wcm9vZmluZ0Nv bmZpZy0+Y29udmVyc2lvbkZsYWdzOworCisgICAgaWYgKHNvZnRQcm9vZiAmJiB0aGlzLT5pbWFn ZSgpLT5jb2xvclNwYWNlKCktPmNvbG9yRGVwdGhJZCgpLmlkKCkuY29udGFpbnMoIlUiKSkgewor ICAgICAgICBjb252ZXJzaW9uRmxhZ3MgfD0gS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlv bjo6U29mdFByb29maW5nOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnZlcnNpb25GbGFncyA9 IGNvbnZlcnNpb25GbGFncyAmICB+S29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6U29m dFByb29maW5nOworICAgIH0KKyAgICBpZiAoZ2FtdXRDaGVjayAmJiBzb2Z0UHJvb2YgJiYgdGhp cy0+aW1hZ2UoKS0+Y29sb3JTcGFjZSgpLT5jb2xvckRlcHRoSWQoKS5pZCgpLmNvbnRhaW5zKCJV IikpIHsKKyAgICAgICAgY29udmVyc2lvbkZsYWdzIHw9IEtvQ29sb3JDb252ZXJzaW9uVHJhbnNm b3JtYXRpb246OkdhbXV0Q2hlY2s7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29udmVyc2lvbkZs YWdzID0gY29udmVyc2lvbkZsYWdzICYgfktvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246 OkdhbXV0Q2hlY2s7CisgICAgfQorICAgIG1fZC0+cHJvb2ZpbmdDb25maWctPmNvbnZlcnNpb25G bGFncyA9IGNvbnZlcnNpb25GbGFnczsKKworICAgIG1fZC0+cHJvb2ZpbmdDb25maWdVcGRhdGVk ID0gdHJ1ZTsKKyAgICBzdGFydFVwZGF0ZUluUGF0Y2hlcyh0aGlzLT5pbWFnZSgpLT5ib3VuZHMo KSk7CisKK30KKwordm9pZCBLaXNDYW52YXMyOjpzbG90U29mdFByb29maW5nKGJvb2wgc29mdFBy b29maW5nKQoreworICAgIG1fZC0+c29mdFByb29maW5nID0gc29mdFByb29maW5nOworICAgIHNl dFByb29maW5nT3B0aW9ucyhtX2QtPnNvZnRQcm9vZmluZywgbV9kLT5nYW11dENoZWNrKTsKK30K Kwordm9pZCBLaXNDYW52YXMyOjpzbG90R2FtdXRDaGVjayhib29sIGdhbXV0Q2hlY2spCit7Cisg ICAgbV9kLT5nYW11dENoZWNrID0gZ2FtdXRDaGVjazsKKyAgICBzZXRQcm9vZmluZ09wdGlvbnMo bV9kLT5zb2Z0UHJvb2ZpbmcsIG1fZC0+Z2FtdXRDaGVjayk7Cit9CisKK3ZvaWQgS2lzQ2FudmFz Mjo6c2xvdENoYW5nZVByb29maW5nQ29uZmlnKCkKK3sKKyAgICBzZXRQcm9vZmluZ09wdGlvbnMo bV9kLT5zb2Z0UHJvb2ZpbmcsIG1fZC0+Z2FtdXRDaGVjayk7Cit9CisKK3ZvaWQgS2lzQ2FudmFz Mjo6c2V0UHJvb2ZpbmdDb25maWdVcGRhdGVkKGJvb2wgdXBkYXRlZCkKK3sKKyAgICBtX2QtPnBy b29maW5nQ29uZmlnVXBkYXRlZCA9IHVwZGF0ZWQ7Cit9CisKK2Jvb2wgS2lzQ2FudmFzMjo6cHJv b2ZpbmdDb25maWdVcGRhdGVkKCkKK3sKKyAgICByZXR1cm4gbV9kLT5wcm9vZmluZ0NvbmZpZ1Vw ZGF0ZWQ7Cit9CisKK0tpc1Byb29maW5nQ29uZmlndXJhdGlvbiAqS2lzQ2FudmFzMjo6cHJvb2Zp bmdDb25maWd1cmF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZC0+cHJvb2ZpbmdDb25maWcp IHsKKyAgICAgICAgbV9kLT5wcm9vZmluZ0NvbmZpZyA9IHRoaXMtPmltYWdlKCktPnByb29maW5n Q29uZmlndXJhdGlvbigpOworICAgICAgICBpZiAoIW1fZC0+cHJvb2ZpbmdDb25maWcpIHsKKyAg ICAgICAgICAgIHFEZWJ1ZygpPDwiQ2FudmFzOiBObyBwcm9vZmluZyBjb25maWcgZm91bmQsIGdl bmVyYXRpbmcgb25lLiI7CisgICAgICAgICAgICBLaXNJbWFnZUNvbmZpZyBjZmc7CisgICAgICAg ICAgICBtX2QtPnByb29maW5nQ29uZmlnID0gY2ZnLmRlZmF1bHRQcm9vZmluZ2NvbmZpZ3VyYXRp b24oKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbV9kLT5wcm9vZmluZ0NvbmZpZzsK K30KKwogdm9pZCBLaXNDYW52YXMyOjpzdGFydFJlc2l6aW5nSW1hZ2UoKQogewogICAgIEtpc0lt YWdlV1NQIGltYWdlID0gdGhpcy0+aW1hZ2UoKTsKZGlmZiAtLWdpdCBhL2xpYnMvdWkvY2FudmFz L2tpc19jYW52YXMyLmggYi9saWJzL3VpL2NhbnZhcy9raXNfY2FudmFzMi5oCmluZGV4IDkzYjBj MTguLjM2ZDJhZTcgMTAwNjQ0Ci0tLSBhL2xpYnMvdWkvY2FudmFzL2tpc19jYW52YXMyLmgKKysr IGIvbGlicy91aS9jYW52YXMva2lzX2NhbnZhczIuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6 CiAgICAgICogQHBhcmFtIHZpZXdDb252ZXJ0ZXIgdGhlIHZpZXdjb252ZXJ0ZXIgZm9yIGNvbnZl cnRpbmcgYmV0d2VlbgogICAgICAqICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cgYW5kIGRv Y3VtZW50IGNvb3JkaW5hdGVzLgogICAgICAqLwotICAgIEtpc0NhbnZhczIoS2lzQ29vcmRpbmF0 ZXNDb252ZXJ0ZXIqIGNvb3JkQ29udmVydGVyLCBLb0NhbnZhc1Jlc291cmNlTWFuYWdlciAqcmVz b3VyY2VNYW5hZ2VyLCBLaXNWaWV3ICp2aWV3LCBLb1NoYXBlQmFzZWREb2N1bWVudEJhc2UqIHNj KTsKKyAgICBLaXNDYW52YXMyKEtpc0Nvb3JkaW5hdGVzQ29udmVydGVyICpjb29yZENvbnZlcnRl ciwgS29DYW52YXNSZXNvdXJjZU1hbmFnZXIgKnJlc291cmNlTWFuYWdlciwgS2lzVmlldyAqdmll dywgS29TaGFwZUJhc2VkRG9jdW1lbnRCYXNlICpzYyk7CiAKICAgICB2aXJ0dWFsIH5LaXNDYW52 YXMyKCk7CiAKQEAgLTE2NCw4ICsxNjQsMjUgQEAgcHVibGljOiAvLyBLaXNDYW52YXMyIG1ldGhv ZHMKICAgICB2b2lkIHNldERpc3BsYXlGaWx0ZXIoS2lzRGlzcGxheUZpbHRlciAqZGlzcGxheUZp bHRlcik7CiAgICAgS2lzRGlzcGxheUZpbHRlciAqZGlzcGxheUZpbHRlcigpIGNvbnN0OwogCi0g ICAgS2lzRGlzcGxheUNvbG9yQ29udmVydGVyKiBkaXNwbGF5Q29sb3JDb252ZXJ0ZXIoKSBjb25z dDsKKyAgICBLaXNEaXNwbGF5Q29sb3JDb252ZXJ0ZXIgKmRpc3BsYXlDb2xvckNvbnZlcnRlcigp IGNvbnN0OwogICAgIEtpc0V4cG9zdXJlR2FtbWFDb3JyZWN0aW9uSW50ZXJmYWNlKiBleHBvc3Vy ZUdhbW1hQ29ycmVjdGlvbkludGVyZmFjZSgpIGNvbnN0OworICAgIC8qKgorICAgICAqIEBicmll ZiBzZXRQcm9vZmluZ09wdGlvbnMKKyAgICAgKiBzZXQgdGhlIG9wdGlvbnMgZm9yIHNvZnRwcm9v ZmluZywgd2l0aG91dCBhZmZlY3RpbmcgdGhlIHByb29maW5nIG9wdGlvbnMgYXMgc3RvcmVkIGlu c2lkZSB0aGUgaW1hZ2UuCisgICAgICovCisgICAgdm9pZCBzZXRQcm9vZmluZ09wdGlvbnMoYm9v bCBzb2Z0UHJvb2YsIGJvb2wgZ2FtdXRDaGVjayk7CisgICAgS2lzUHJvb2ZpbmdDb25maWd1cmF0 aW9uICpwcm9vZmluZ0NvbmZpZ3VyYXRpb24oKSBjb25zdDsKKyAgICAvKioKKyAgICAgKiBAYnJp ZWYgc2V0UHJvb2ZpbmdDb25maWdVcGRhdGVkIFRoaXMgZnVuY3Rpb24gaXMgdG8gc2V0IHdoZXRo ZXIgdGhlIHByb29maW5nIGNvbmZpZyBpcyB1cGRhdGVkLAorICAgICAqIHRoaXMgaXMgbmVlZGVk IGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSBhIG5ldyBwcm9vZmlu ZyB0cmFuc2Zvcm0uCisgICAgICogQHBhcmFtIHVwZGF0ZWQgd2hldGhlciBpdCdzIHVwZGF0ZWQu IEp1c3Qgc2V0IGl0IHRvIGZhbHNlIGluIG5vcm1hbCB1c2FnZS4KKyAgICAgKi8KKyAgICB2b2lk IHNldFByb29maW5nQ29uZmlnVXBkYXRlZChib29sIHVwZGF0ZWQpOworICAgIC8qKgorICAgICAq IEBicmllZiBwcm9vZmluZ0NvbmZpZ1VwZGF0ZWQgYXNrIHRoZSBjYW52YXMgd2hldGhlciBvciBu b3QgaXQgdXBkYXRlZCB0aGUgcHJvb2ZpbmcgY29uZmlnLgorICAgICAqIEByZXR1cm4gd2hldGhl ciBvciBub3QgdGhlIHByb29maW5nIGNvbmZpZyBpcyB1cGRhdGVkLCBpZiBzbywgYSBuZXcgcHJv b2ZpbmcgdHJhbnNmb3JtIG5lZWRzIHRvIGJlIG1hZGUKKyAgICAgKiBpbiBLaXNPcGVuR0wgY2Fu dmFzLgorICAgICAqL2Jvb2wgcHJvb2ZpbmdDb25maWdVcGRhdGVkKCk7CiAKICAgICB2b2lkIHNl dEN1cnNvcihjb25zdCBRQ3Vyc29yICZjdXJzb3IpOwogICAgIEtpc0FuaW1hdGlvbkZyYW1lQ2Fj aGVTUCBmcmFtZUNhY2hlKCkgY29uc3Q7CkBAIC0xOTYsNiArMjEzLDkgQEAgcHVibGljIFFfU0xP VFM6CiAgICAgLy8vIEJvb2xzIGluZGljYXRpbmcgY2FudmFzbWlycm9yaW5nLgogICAgIGJvb2wg eEF4aXNNaXJyb3JlZCgpIGNvbnN0OwogICAgIGJvb2wgeUF4aXNNaXJyb3JlZCgpIGNvbnN0Owor ICAgIHZvaWQgc2xvdFNvZnRQcm9vZmluZyhib29sIHNvZnRQcm9vZmluZyk7CisgICAgdm9pZCBz bG90R2FtdXRDaGVjayhib29sIGdhbXV0Q2hlY2spOworICAgIHZvaWQgc2xvdENoYW5nZVByb29m aW5nQ29uZmlnKCk7CiAKICAgICB2b2lkIGNoYW5uZWxTZWxlY3Rpb25DaGFuZ2VkKCk7CiAKZGlm ZiAtLWdpdCBhL2xpYnMvdWkvZGlhbG9ncy9raXNfZGxnX2ltYWdlX3Byb3BlcnRpZXMuY2MgYi9s aWJzL3VpL2RpYWxvZ3Mva2lzX2RsZ19pbWFnZV9wcm9wZXJ0aWVzLmNjCmluZGV4IDhhNzk1ZTUu LjI0NGNiOTcgMTAwNjQ0Ci0tLSBhL2xpYnMvdWkvZGlhbG9ncy9raXNfZGxnX2ltYWdlX3Byb3Bl cnRpZXMuY2MKKysrIGIvbGlicy91aS9kaWFsb2dzL2tpc19kbGdfaW1hZ2VfcHJvcGVydGllcy5j YwpAQCAtMzMsNyArMzMsOSBAQAogCiAjaW5jbHVkZSA8S29Db2xvclNwYWNlLmg+CiAjaW5jbHVk ZSAiS29Db2xvclByb2ZpbGUuaCIKKyNpbmNsdWRlICJLb0NvbG9yU3BhY2VSZWdpc3RyeS5oIgog I2luY2x1ZGUgIktvQ29sb3IuaCIKKyNpbmNsdWRlICJLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uLmgiCiAjaW5jbHVkZSAiS29Db2xvclBvcHVwQWN0aW9uLmgiCiAjaW5jbHVkZSAia2lz X2ljb25fdXRpbHMuaCIKICNpbmNsdWRlICJLb0lELmgiCkBAIC02Niw5ICs2OCw5IEBAIEtpc0Rs Z0ltYWdlUHJvcGVydGllczo6S2lzRGxnSW1hZ2VQcm9wZXJ0aWVzKEtpc0ltYWdlV1NQIGltYWdl LCBRV2lkZ2V0ICpwYXJlbnQsCiAKICAgICBtX3BhZ2UtPmxibFJlc29sdXRpb25WYWx1ZS0+c2V0 VGV4dChRTG9jYWxlKCkudG9TdHJpbmcoaW1hZ2UtPnhSZXMoKSo3MiwgMikpOyAvLyBYWFg6IHNl cGFyYXRlIHZhbHVlcyBmb3IgeCAmIHk/CiAKKyAgICAvL1NldCB0aGUgY2FudmFzIHByb2plY3Rp b24gY29sb3I6CiAgICAgbV9kZWZhdWx0Q29sb3JBY3Rpb24gPSBuZXcgS29Db2xvclBvcHVwQWN0 aW9uKHRoaXMpOwogICAgIG1fZGVmYXVsdENvbG9yQWN0aW9uLT5zZXRDdXJyZW50Q29sb3IobV9p bWFnZS0+ZGVmYXVsdFByb2plY3Rpb25Db2xvcigpKTsKLSAgICBtX2RlZmF1bHRDb2xvckFjdGlv bi0+c2V0SWNvbihLaXNJY29uVXRpbHM6OmxvYWRJY29uKCJmb3JtYXQtc3Ryb2tlLWNvbG9yIikp OwogICAgIG1fZGVmYXVsdENvbG9yQWN0aW9uLT5zZXRUb29sVGlwKGkxOG4oIkNoYW5nZSB0aGUg YmFja2dyb3VuZCBjb2xvciBvZiB0aGUgaW1hZ2UiKSk7CiAgICAgbV9wYWdlLT5ibkJhY2tncm91 bmRDb2xvci0+c2V0RGVmYXVsdEFjdGlvbihtX2RlZmF1bHRDb2xvckFjdGlvbik7CiAKQEAgLTc4 LDggKzgwLDM2IEBAIEtpc0RsZ0ltYWdlUHJvcGVydGllczo6S2lzRGxnSW1hZ2VQcm9wZXJ0aWVz KEtpc0ltYWdlV1NQIGltYWdlLCBRV2lkZ2V0ICpwYXJlbnQsCiAKICAgICBjb25uZWN0KG1fZGVm YXVsdENvbG9yQWN0aW9uLCBTSUdOQUwoY29sb3JDaGFuZ2VkKGNvbnN0IEtvQ29sb3ImKSksIHRo aXMsIFNMT1Qoc2V0Q3VycmVudENvbG9yKCkpKTsKIAorICAgIC8vU2V0IHRoZSBjb2xvciBzcGFj ZQogICAgIG1fcGFnZS0+Y29sb3JTcGFjZVNlbGVjdG9yLT5zZXRDdXJyZW50Q29sb3JTcGFjZShp bWFnZS0+Y29sb3JTcGFjZSgpKTsKIAorICAgIC8vc2V0IHRoZSBwcm9vZmluZyBzcGFjZQorICAg IG1fcHJvb2ZpbmdDb25maWcgPSBtX2ltYWdlLT5wcm9vZmluZ0NvbmZpZ3VyYXRpb24oKTsKKyAg ICBtX3BhZ2UtPnByb29mU3BhY2VTZWxlY3Rvci0+c2V0Q3VycmVudENvbG9yU3BhY2UoS29Db2xv clNwYWNlUmVnaXN0cnk6Omluc3RhbmNlKCktPmNvbG9yU3BhY2UobV9wcm9vZmluZ0NvbmZpZy0+ cHJvb2ZpbmdNb2RlbCwgbV9wcm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdEZXB0aCxtX3Byb29maW5n Q29uZmlnLT5wcm9vZmluZ1Byb2ZpbGUpKTsKKworICAgIG1fcGFnZS0+Y21iSW50ZW50LT5zZXRD dXJyZW50SW5kZXgoKGludCltX3Byb29maW5nQ29uZmlnLT5pbnRlbnQpOworCisgICAgbV9wYWdl LT5ja2JCbGFja1BvaW50Q29tcC0+c2V0Q2hlY2tlZChtX3Byb29maW5nQ29uZmlnLT5jb252ZXJz aW9uRmxhZ3MudGVzdEZsYWcoS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6QmxhY2tw b2ludENvbXBlbnNhdGlvbikpOworCisgICAgbV9nYW11dFdhcm5pbmcgPSBuZXcgS29Db2xvclBv cHVwQWN0aW9uKHRoaXMpOworICAgIG1fZ2FtdXRXYXJuaW5nLT5zZXRDdXJyZW50Q29sb3IobV9w cm9vZmluZ0NvbmZpZy0+d2FybmluZ0NvbG9yKTsKKyAgICBtX2dhbXV0V2FybmluZy0+c2V0VG9v bFRpcChpMThuKCJTZXQgY29sb3IgdXNlZCBmb3Igd2FybmluZyIpKTsKKyAgICBtX3BhZ2UtPmdh bXV0QWxhcm0tPnNldERlZmF1bHRBY3Rpb24obV9nYW11dFdhcm5pbmcpOworICAgIG1fcGFnZS0+ c2xkQWRhcHRhdGlvblN0YXRlLT5zZXRNYXhpbXVtKDIwKTsKKyAgICBtX3BhZ2UtPnNsZEFkYXB0 YXRpb25TdGF0ZS0+c2V0TWluaW11bSgwKTsKKyAgICBtX3BhZ2UtPnNsZEFkYXB0YXRpb25TdGF0 ZS0+c2V0VmFsdWUoKGludCltX3Byb29maW5nQ29uZmlnLT5hZGFwdGF0aW9uU3RhdGUqMjApOwor CisgICAgS2lzU2lnbmFsQ29tcHJlc3NvciAqc29mdFByb29mQ29uZmlnQ29tcHJlc3NvciA9IG5l dyBLaXNTaWduYWxDb21wcmVzc29yKDUwMCwgS2lzU2lnbmFsQ29tcHJlc3Nvcjo6UE9TVFBPTkUs dGhpcyk7CisKKyAgICBjb25uZWN0KG1fZ2FtdXRXYXJuaW5nLCBTSUdOQUwoY29sb3JDaGFuZ2Vk KEtvQ29sb3IpKSwgc29mdFByb29mQ29uZmlnQ29tcHJlc3NvciwgU0xPVChzdGFydCgpKSk7Cisg ICAgY29ubmVjdChtX3BhZ2UtPnByb29mU3BhY2VTZWxlY3RvciwgU0lHTkFMKGNvbG9yU3BhY2VD aGFuZ2VkKGNvbnN0IEtvQ29sb3JTcGFjZSopKSwgc29mdFByb29mQ29uZmlnQ29tcHJlc3Nvciwg U0xPVChzdGFydCgpKSk7CisgICAgY29ubmVjdChtX3BhZ2UtPmNtYkludGVudCwgU0lHTkFMKGN1 cnJlbnRJbmRleENoYW5nZWQoaW50KSksIHNvZnRQcm9vZkNvbmZpZ0NvbXByZXNzb3IsIFNMT1Qo c3RhcnQoKSkpOworICAgIGNvbm5lY3QobV9wYWdlLT5ja2JCbGFja1BvaW50Q29tcCwgU0lHTkFM KHN0YXRlQ2hhbmdlZChpbnQpKSwgc29mdFByb29mQ29uZmlnQ29tcHJlc3NvciwgU0xPVChzdGFy dCgpKSk7CisgICAgY29ubmVjdChtX3BhZ2UtPnNsZEFkYXB0YXRpb25TdGF0ZSwgU0lHTkFMKHZh bHVlQ2hhbmdlZChpbnQpKSwgc29mdFByb29mQ29uZmlnQ29tcHJlc3NvciwgU0xPVChzdGFydCgp KSk7CisKKyAgICBjb25uZWN0KHNvZnRQcm9vZkNvbmZpZ0NvbXByZXNzb3IsIFNJR05BTCh0aW1l b3V0KCkpLCB0aGlzLCBTTE9UKHNldFByb29maW5nQ29uZmlnKCkpKTsKKworICAgIC8vYW5ub3Rh dGlvbnMKICAgICB2S2lzQW5ub3RhdGlvblNQX2l0IGJlZ2luSXQgPSBpbWFnZS0+YmVnaW5Bbm5v dGF0aW9ucygpOwogICAgIHZLaXNBbm5vdGF0aW9uU1BfaXQgZW5kSXQgPSBpbWFnZS0+ZW5kQW5u b3RhdGlvbnMoKTsKIApAQCAtMTE1LDYgKzE0NSwyMCBAQCB2b2lkIEtpc0RsZ0ltYWdlUHJvcGVy dGllczo6c2V0Q3VycmVudENvbG9yKCkKICAgICBLaXNMYXllclV0aWxzOjpjaGFuZ2VJbWFnZURl ZmF1bHRQcm9qZWN0aW9uQ29sb3IobV9pbWFnZSwgbV9kZWZhdWx0Q29sb3JBY3Rpb24tPmN1cnJl bnRLb0NvbG9yKCkpOwogfQogCit2b2lkIEtpc0RsZ0ltYWdlUHJvcGVydGllczo6c2V0UHJvb2Zp bmdDb25maWcoKQoreworICAgIG1fcHJvb2ZpbmdDb25maWctPmNvbnZlcnNpb25GbGFncyA9IEtv Q29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkhpZ2hRdWFsaXR5OworICAgIGlmIChtX3Bh Z2UtPmNrYkJsYWNrUG9pbnRDb21wKSBtX3Byb29maW5nQ29uZmlnLT5jb252ZXJzaW9uRmxhZ3Mg fD0gS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6QmxhY2twb2ludENvbXBlbnNhdGlv bjsKKyAgICBtX3Byb29maW5nQ29uZmlnLT5pbnRlbnQgPSAoS29Db2xvckNvbnZlcnNpb25UcmFu c2Zvcm1hdGlvbjo6SW50ZW50KW1fcGFnZS0+Y21iSW50ZW50LT5jdXJyZW50SW5kZXgoKTsKKyAg ICBtX3Byb29maW5nQ29uZmlnLT5wcm9vZmluZ1Byb2ZpbGUgPSBtX3BhZ2UtPnByb29mU3BhY2VT ZWxlY3Rvci0+Y3VycmVudENvbG9yU3BhY2UoKS0+cHJvZmlsZSgpLT5uYW1lKCk7CisgICAgbV9w cm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdNb2RlbCA9IG1fcGFnZS0+cHJvb2ZTcGFjZVNlbGVjdG9y LT5jdXJyZW50Q29sb3JTcGFjZSgpLT5jb2xvck1vZGVsSWQoKS5pZCgpOworICAgIG1fcHJvb2Zp bmdDb25maWctPnByb29maW5nRGVwdGggPSAiVTgiOy8vZGVmYXVsdCB0byB0aGlzCisgICAgbV9w cm9vZmluZ0NvbmZpZy0+d2FybmluZ0NvbG9yID0gbV9nYW11dFdhcm5pbmctPmN1cnJlbnRLb0Nv bG9yKCk7CisgICAgbV9wcm9vZmluZ0NvbmZpZy0+YWRhcHRhdGlvblN0YXRlID0gKGRvdWJsZSlt X3BhZ2UtPnNsZEFkYXB0YXRpb25TdGF0ZS0+dmFsdWUoKS8yMC4wOworICAgIHFEZWJ1ZygpPDwi c2V0IHByb29maW5nIGNvbmZpZyBpbiBwcm9wZXJ0aWVzOiAiPDxtX3Byb29maW5nQ29uZmlnLT5w cm9vZmluZ1Byb2ZpbGU7CisgICAgbV9pbWFnZS0+c2V0UHJvb2ZpbmdDb25maWd1cmF0aW9uKG1f cHJvb2ZpbmdDb25maWcpOworfQorCiB2b2lkIEtpc0RsZ0ltYWdlUHJvcGVydGllczo6c2V0QW5u b3RhdGlvbihjb25zdCBRU3RyaW5nICZ0eXBlKQogewogICAgIEtpc0Fubm90YXRpb25TUCBhbm5v dGF0aW9uID0gbV9pbWFnZS0+YW5ub3RhdGlvbih0eXBlKTsKZGlmZiAtLWdpdCBhL2xpYnMvdWkv ZGlhbG9ncy9raXNfZGxnX2ltYWdlX3Byb3BlcnRpZXMuaCBiL2xpYnMvdWkvZGlhbG9ncy9raXNf ZGxnX2ltYWdlX3Byb3BlcnRpZXMuaAppbmRleCBlZmY5ZGExLi41MzAyZWE2IDEwMDY0NAotLS0g YS9saWJzL3VpL2RpYWxvZ3Mva2lzX2RsZ19pbWFnZV9wcm9wZXJ0aWVzLmgKKysrIGIvbGlicy91 aS9kaWFsb2dzL2tpc19kbGdfaW1hZ2VfcHJvcGVydGllcy5oCkBAIC0xOSw3ICsxOSw3IEBACiAj ZGVmaW5lIEtJU19ETEdfSU1BR0VfUFJPUEVSVElFU19IXwogCiAjaW5jbHVkZSA8S29EaWFsb2cu aD4KLQorI2luY2x1ZGUgIktpc1Byb29maW5nQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgPGtp c190eXBlcy5oPgogI2luY2x1ZGUgInVpX3dkZ2ltYWdlcHJvcGVydGllcy5oIgogCkBAIC01Mywx MSArNTMsMTQgQEAgcHJpdmF0ZSBRX1NMT1RTOgogCiAgICAgdm9pZCBzZXRBbm5vdGF0aW9uKGNv bnN0IFFTdHJpbmcmIHR5cGUpOwogICAgIHZvaWQgc2V0Q3VycmVudENvbG9yKCk7CisgICAgdm9p ZCBzZXRQcm9vZmluZ0NvbmZpZygpOwogcHJpdmF0ZToKIAogICAgIFdkZ0ltYWdlUHJvcGVydGll cyAqIG1fcGFnZTsKICAgICBLaXNJbWFnZVdTUCBtX2ltYWdlOwogICAgIEtvQ29sb3JQb3B1cEFj dGlvbiAqbV9kZWZhdWx0Q29sb3JBY3Rpb247CisgICAgS29Db2xvclBvcHVwQWN0aW9uICptX2dh bXV0V2FybmluZzsKKyAgICBLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24gKm1fcHJvb2ZpbmdDb25m aWc7CiB9OwogCiAKZGlmZiAtLWdpdCBhL2xpYnMvdWkvZGlhbG9ncy9raXNfZGxnX3ByZWZlcmVu Y2VzLmNjIGIvbGlicy91aS9kaWFsb2dzL2tpc19kbGdfcHJlZmVyZW5jZXMuY2MKaW5kZXggN2U1 Y2Q1Ny4uNjY1NzA3NCAxMDA2NDQKLS0tIGEvbGlicy91aS9kaWFsb2dzL2tpc19kbGdfcHJlZmVy ZW5jZXMuY2MKKysrIGIvbGlicy91aS9kaWFsb2dzL2tpc19kbGdfcHJlZmVyZW5jZXMuY2MKQEAg LTY0LDExICs2NCwxNCBAQAogI2luY2x1ZGUgIndpZGdldHMva2lzX2NtYl9pZGxpc3QuaCIKICNp bmNsdWRlICJLb0NvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJLb0NvbG9yU3BhY2VSZWdpc3RyeS5o IgorI2luY2x1ZGUgIktvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24uaCIKICNpbmNsdWRl ICJraXNfY3Vyc29yLmgiCiAjaW5jbHVkZSAia2lzX2NvbmZpZy5oIgogI2luY2x1ZGUgImtpc19j YW52YXNfcmVzb3VyY2VfcHJvdmlkZXIuaCIKICNpbmNsdWRlICJraXNfcHJlZmVyZW5jZV9zZXRf cmVnaXN0cnkuaCIKICNpbmNsdWRlICJraXNfY29sb3JfbWFuYWdlci5oIgorI2luY2x1ZGUgIktp c1Byb29maW5nQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgImtpc19pbWFnZV9jb25maWcuaCIK IAogI2luY2x1ZGUgInNsaWRlcl9hbmRfc3Bpbl9ib3hfc3luYy5oIgogCkBAIC0zMDksMTggKzMx MiwxMCBAQCBDb2xvclNldHRpbmdzVGFiOjpDb2xvclNldHRpbmdzVGFiKFFXaWRnZXQgKnBhcmVu dCwgY29uc3QgY2hhciAqbmFtZSkKICAgICBtX3BhZ2UtPmNtYldvcmtpbmdDb2xvclNwYWNlLT5z ZXRJRExpc3QoS29Db2xvclNwYWNlUmVnaXN0cnk6Omluc3RhbmNlKCktPmxpc3RLZXlzKCkpOwog ICAgIG1fcGFnZS0+Y21iV29ya2luZ0NvbG9yU3BhY2UtPnNldEN1cnJlbnQoY2ZnLndvcmtpbmdD b2xvclNwYWNlKCkpOwogCi0gICAgbV9wYWdlLT5jbWJQcmludGluZ0NvbG9yU3BhY2UtPnNldElE TGlzdChLb0NvbG9yU3BhY2VSZWdpc3RyeTo6aW5zdGFuY2UoKS0+bGlzdEtleXMoKSk7Ci0gICAg bV9wYWdlLT5jbWJQcmludGluZ0NvbG9yU3BhY2UtPnNldEN1cnJlbnQoY2ZnLnByaW50ZXJDb2xv clNwYWNlKCkpOwotCiAgICAgbV9wYWdlLT5ibkFkZENvbG9yUHJvZmlsZS0+c2V0SWNvbihLaXNJ Y29uVXRpbHM6OmxvYWRJY29uKCJkb2N1bWVudC1vcGVuIikpOwogICAgIG1fcGFnZS0+Ym5BZGRD b2xvclByb2ZpbGUtPnNldFRvb2xUaXAoIGkxOG4oIk9wZW4gQ29sb3IgUHJvZmlsZSIpICk7CiAg ICAgY29ubmVjdChtX3BhZ2UtPmJuQWRkQ29sb3JQcm9maWxlLCBTSUdOQUwoY2xpY2tlZCgpKSwg U0xPVChpbnN0YWxsUHJvZmlsZSgpKSk7CiAKLSAgICByZWZpbGxQcmludFByb2ZpbGVzKEtvSUQo Y2ZnLnByaW50ZXJDb2xvclNwYWNlKCksICIiKSk7Ci0KLSAgICAvL2hpZGUgcHJpbnRpbmcgc2V0 dGluZ3MKLSAgICBtX3BhZ2UtPmdyb3VwQm94Mi0+aGlkZSgpOwotCiAgICAgUUdyaWRMYXlvdXQg Km1vbml0b3JQcm9maWxlR3JpZCA9IG5ldyBRR3JpZExheW91dChtX3BhZ2UtPm1vbml0b3Jwcm9m aWxlaG9sZGVyKTsKICAgICBmb3IoaW50IGkgPSAwOyBpIDwgUUFwcGxpY2F0aW9uOjpkZXNrdG9w KCktPnNjcmVlbkNvdW50KCk7ICsraSkgewogICAgICAgICBRTGFiZWwgKmxibCA9IG5ldyBRTGFi ZWwoaTE4bmMoIlRoZSBudW1iZXIgb2YgdGhlIHNjcmVlbiIsICJTY3JlZW4gJTE6IiwgaSArIDEp KTsKQEAgLTMzOSwxMiArMzM0LDI2IEBAIENvbG9yU2V0dGluZ3NUYWI6OkNvbG9yU2V0dGluZ3NU YWIoUVdpZGdldCAqcGFyZW50LCBjb25zdCBjaGFyICpuYW1lKQogICAgICAgICB9CiAgICAgfQog Ci0gICAgaWYgKG1fcGFnZS0+Y21iUHJpbnRQcm9maWxlLT5jb250YWlucyhjZmcucHJpbnRlclBy b2ZpbGUoKSkpCi0gICAgICAgIG1fcGFnZS0+Y21iUHJpbnRQcm9maWxlLT5zZXRDdXJyZW50SW5k ZXgobV9wYWdlLT5jbWJQcmludFByb2ZpbGUtPmZpbmRUZXh0KGNmZy5wcmludGVyUHJvZmlsZSgp KSk7Ci0KICAgICBtX3BhZ2UtPmNoa0JsYWNrcG9pbnQtPnNldENoZWNrZWQoY2ZnLnVzZUJsYWNr UG9pbnRDb21wZW5zYXRpb24oKSk7CiAgICAgbV9wYWdlLT5jaGtBbGxvd0xDTVNPcHRpbWl6YXRp b24tPnNldENoZWNrZWQoY2ZnLmFsbG93TENNU09wdGltaXphdGlvbigpKTsKIAorICAgIEtpc0lt YWdlQ29uZmlnIGNmZ0ltYWdlOworCisgICAgS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uICpwcm9v ZmluZ0NvbmZpZyA9IGNmZ0ltYWdlLmRlZmF1bHRQcm9vZmluZ2NvbmZpZ3VyYXRpb24oKTsKKyAg ICBtX2dhbXV0V2FybmluZyA9IG5ldyBLb0NvbG9yUG9wdXBBY3Rpb24odGhpcyk7CisgICAgbV9n YW11dFdhcm5pbmctPnNldFRvb2xUaXAoaTE4bigiU2V0IGRlZmF1bHQgY29sb3IgdXNlZCBmb3Ig b3V0IG9mIEdhbXV0IFdhcm5pbmciKSk7CisgICAgbV9nYW11dFdhcm5pbmctPnNldEN1cnJlbnRD b2xvcihwcm9vZmluZ0NvbmZpZy0+d2FybmluZ0NvbG9yKTsKKyAgICBtX3BhZ2UtPmdhbXV0QWxh cm0tPnNldERlZmF1bHRBY3Rpb24obV9nYW11dFdhcm5pbmcpOworICAgIG1fcGFnZS0+c2xkQWRh cHRhdGlvblN0YXRlLT5zZXRNYXhpbXVtKDIwKTsKKyAgICBtX3BhZ2UtPnNsZEFkYXB0YXRpb25T dGF0ZS0+c2V0TWluaW11bSgwKTsKKyAgICBtX3BhZ2UtPnNsZEFkYXB0YXRpb25TdGF0ZS0+c2V0 VmFsdWUoKGludClwcm9vZmluZ0NvbmZpZy0+YWRhcHRhdGlvblN0YXRlKjIwKTsKKworICAgIGNv bnN0IEtvQ29sb3JTcGFjZSAqcHJvb2ZpbmdTcGFjZSA9ICBLb0NvbG9yU3BhY2VSZWdpc3RyeTo6 aW5zdGFuY2UoKS0+Y29sb3JTcGFjZShwcm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdNb2RlbCxwcm9v ZmluZ0NvbmZpZy0+cHJvb2ZpbmdEZXB0aCxwcm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdQcm9maWxl KTsKKyAgICBtX3BhZ2UtPnByb29maW5nU3BhY2VTZWxlY3Rvci0+c2V0Q3VycmVudENvbG9yU3Bh Y2UocHJvb2ZpbmdTcGFjZSk7CisKKyAgICBtX3BhZ2UtPmNtYlByb29maW5nSW50ZW50LT5zZXRD dXJyZW50SW5kZXgoKGludClwcm9vZmluZ0NvbmZpZy0+aW50ZW50KTsKKyAgICBtX3BhZ2UtPmNr YlByb29mQmxhY2tQb2ludC0+c2V0Q2hlY2tlZChwcm9vZmluZ0NvbmZpZy0+Y29udmVyc2lvbkZs YWdzLnRlc3RGbGFnKEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkJsYWNrcG9pbnRD b21wZW5zYXRpb24pKTsKKwogICAgIG1fcGFzdGVCZWhhdmlvdXJHcm91cC5hZGRCdXR0b24obV9w YWdlLT5yYWRpb1Bhc3RlV2ViLCBQQVNURV9BU1NVTUVfV0VCKTsKICAgICBtX3Bhc3RlQmVoYXZp b3VyR3JvdXAuYWRkQnV0dG9uKG1fcGFnZS0+cmFkaW9QYXN0ZU1vbml0b3IsIFBBU1RFX0FTU1VN RV9NT05JVE9SKTsKICAgICBtX3Bhc3RlQmVoYXZpb3VyR3JvdXAuYWRkQnV0dG9uKG1fcGFnZS0+ cmFkaW9QYXN0ZUFzaywgUEFTVEVfQVNLKTsKQEAgLTM2MCw4ICszNjksNiBAQCBDb2xvclNldHRp bmdzVGFiOjpDb2xvclNldHRpbmdzVGFiKFFXaWRnZXQgKnBhcmVudCwgY29uc3QgY2hhciAqbmFt ZSkKIAogICAgIHRvZ2dsZUFsbG93TW9uaXRvclByb2ZpbGVTZWxlY3Rpb24oY2ZnLnVzZVN5c3Rl bU1vbml0b3JQcm9maWxlKCkpOwogCi0gICAgY29ubmVjdChtX3BhZ2UtPmNtYlByaW50aW5nQ29s b3JTcGFjZSwgU0lHTkFMKGFjdGl2YXRlZChjb25zdCBLb0lEICYpKSwKLSAgICAgICAgICAgIHRo aXMsIFNMT1QocmVmaWxsUHJpbnRQcm9maWxlcyhjb25zdCBLb0lEICYpKSk7CiB9CiAKIHZvaWQg Q29sb3JTZXR0aW5nc1RhYjo6aW5zdGFsbFByb2ZpbGUoKQpAQCAtMzg5LDcgKzM5Niw2IEBAIHZv aWQgQ29sb3JTZXR0aW5nc1RhYjo6aW5zdGFsbFByb2ZpbGUoKQogCiAgICAgS2lzQ29uZmlnIGNm ZzsKICAgICByZWZpbGxNb25pdG9yUHJvZmlsZXMoS29JRCgiUkdCQSIsICIiKSk7Ci0gICAgcmVm aWxsUHJpbnRQcm9maWxlcyhLb0lEKGNmZy5wcmludGVyQ29sb3JTcGFjZSgpLCAiIikpOwogCiAg ICAgZm9yKGludCBpID0gMDsgaSA8IFFBcHBsaWNhdGlvbjo6ZGVza3RvcCgpLT5zY3JlZW5Db3Vu dCgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fbW9uaXRvclByb2ZpbGVXaWRnZXRzW2ldLT5jb250 YWlucyhjZmcubW9uaXRvclByb2ZpbGUoaSkpKSB7CkBAIC0zOTcsMTAgKzQwMyw2IEBAIHZvaWQg Q29sb3JTZXR0aW5nc1RhYjo6aW5zdGFsbFByb2ZpbGUoKQogICAgICAgICB9CiAgICAgfQogCi0g ICAgaWYgKG1fcGFnZS0+Y21iUHJpbnRQcm9maWxlLT5jb250YWlucyhjZmcucHJpbnRlclByb2Zp bGUoKSkpCi0gICAgICAgIG1fcGFnZS0+Y21iUHJpbnRQcm9maWxlLT5zZXRDdXJyZW50SW5kZXgo bV9wYWdlLT5jbWJQcmludFByb2ZpbGUtPmZpbmRUZXh0KGNmZy5wcmludGVyUHJvZmlsZSgpKSk7 Ci0KLQogfQogCiB2b2lkIENvbG9yU2V0dGluZ3NUYWI6OnRvZ2dsZUFsbG93TW9uaXRvclByb2Zp bGVTZWxlY3Rpb24oYm9vbCB1c2VTeXN0ZW1Qcm9maWxlKQpAQCAtNDM4LDEyICs0NDAsMTggQEAg dm9pZCBDb2xvclNldHRpbmdzVGFiOjpzZXREZWZhdWx0KCkKIHsKICAgICBtX3BhZ2UtPmNtYldv cmtpbmdDb2xvclNwYWNlLT5zZXRDdXJyZW50KCJSR0JBIik7CiAKLSAgICBtX3BhZ2UtPmNtYlBy aW50aW5nQ29sb3JTcGFjZS0+c2V0Q3VycmVudCgiQ01ZSyIpOwotICAgIHJlZmlsbFByaW50UHJv ZmlsZXMoS29JRCgiQ01ZSyIsICIiKSk7Ci0KICAgICByZWZpbGxNb25pdG9yUHJvZmlsZXMoS29J RCgiUkdCQSIsICIiKSk7CiAKICAgICBLaXNDb25maWcgY2ZnOworICAgIEtpc0ltYWdlQ29uZmln IGNmZ0ltYWdlOworICAgIEtpc1Byb29maW5nQ29uZmlndXJhdGlvbiAqcHJvb2ZpbmdDb25maWcg PSAgY2ZnSW1hZ2UuZGVmYXVsdFByb29maW5nY29uZmlndXJhdGlvbigpOworICAgIGNvbnN0IEtv Q29sb3JTcGFjZSAqcHJvb2ZpbmdTcGFjZSA9ICBLb0NvbG9yU3BhY2VSZWdpc3RyeTo6aW5zdGFu Y2UoKS0+Y29sb3JTcGFjZShwcm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdNb2RlbCxwcm9vZmluZ0Nv bmZpZy0+cHJvb2ZpbmdEZXB0aCxwcm9vZmluZ0NvbmZpZy0+cHJvb2ZpbmdQcm9maWxlKTsKKyAg ICBtX3BhZ2UtPnByb29maW5nU3BhY2VTZWxlY3Rvci0+c2V0Q3VycmVudENvbG9yU3BhY2UocHJv b2ZpbmdTcGFjZSk7CisgICAgbV9wYWdlLT5jbWJQcm9vZmluZ0ludGVudC0+c2V0Q3VycmVudElu ZGV4KChpbnQpcHJvb2ZpbmdDb25maWctPmludGVudCk7CisgICAgbV9wYWdlLT5ja2JQcm9vZkJs YWNrUG9pbnQtPnNldENoZWNrZWQocHJvb2ZpbmdDb25maWctPmNvbnZlcnNpb25GbGFncy50ZXN0 RmxhZyhLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpCbGFja3BvaW50Q29tcGVuc2F0 aW9uKSk7CisgICAgbV9wYWdlLT5zbGRBZGFwdGF0aW9uU3RhdGUtPnNldFZhbHVlKDApOworCisg ICAgbV9nYW11dFdhcm5pbmctPnNldEN1cnJlbnRDb2xvcihwcm9vZmluZ0NvbmZpZy0+d2Fybmlu Z0NvbG9yKTsKIAogICAgIG1fcGFnZS0+Y2hrQmxhY2twb2ludC0+c2V0Q2hlY2tlZChjZmcudXNl QmxhY2tQb2ludENvbXBlbnNhdGlvbih0cnVlKSk7CiAgICAgbV9wYWdlLT5jaGtBbGxvd0xDTVNP cHRpbWl6YXRpb24tPnNldENoZWNrZWQoY2ZnLmFsbG93TENNU09wdGltaXphdGlvbih0cnVlKSk7 CkBAIC00ODUsMjQgKzQ5Myw2IEBAIHZvaWQgQ29sb3JTZXR0aW5nc1RhYjo6cmVmaWxsTW9uaXRv clByb2ZpbGVzKGNvbnN0IEtvSUQgJiBzKQogICAgIH0KIH0KIAotdm9pZCBDb2xvclNldHRpbmdz VGFiOjpyZWZpbGxQcmludFByb2ZpbGVzKGNvbnN0IEtvSUQgJiBzKQotewotICAgIGNvbnN0IEtv Q29sb3JTcGFjZUZhY3RvcnkgKiBjc2YgPSBLb0NvbG9yU3BhY2VSZWdpc3RyeTo6aW5zdGFuY2Uo KS0+Y29sb3JTcGFjZUZhY3Rvcnkocy5pZCgpKTsKLQotICAgIG1fcGFnZS0+Y21iUHJpbnRQcm9m aWxlLT5jbGVhcigpOwotCi0gICAgaWYgKCFjc2YpCi0gICAgICAgIHJldHVybjsKLQotICAgIFFM aXN0PGNvbnN0IEtvQ29sb3JQcm9maWxlICo+IHByb2ZpbGVMaXN0ID0gS29Db2xvclNwYWNlUmVn aXN0cnk6Omluc3RhbmNlKCktPnByb2ZpbGVzRm9yKGNzZik7Ci0KLSAgICBRX0ZPUkVBQ0ggKGNv bnN0IEtvQ29sb3JQcm9maWxlICpwcm9maWxlLCBwcm9maWxlTGlzdCkgewotICAgICAgICBpZiAo cHJvZmlsZS0+aXNTdWl0YWJsZUZvclByaW50aW5nKCkpCi0gICAgICAgICAgICBtX3BhZ2UtPmNt YlByaW50UHJvZmlsZS0+YWRkU3F1ZWV6ZWRJdGVtKHByb2ZpbGUtPm5hbWUoKSk7Ci0gICAgfQot Ci0gICAgbV9wYWdlLT5jbWJQcmludFByb2ZpbGUtPnNldEN1cnJlbnQoY3NmLT5kZWZhdWx0UHJv ZmlsZSgpKTsKLX0KIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIApAQCAtNTMyLDcgKzUyMiw2IEBAIFRhYmxldFNldHRpbmdzVGFiOjpUYWJsZXRTZXR0aW5n c1RhYihRV2lkZ2V0KiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUpOiBRV2lkZ2V0CiAKIAogLy8t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSNpbmNsdWRlICJraXNf aW1hZ2VfY29uZmlnLmgiCiAjaW5jbHVkZSAia2lzX2FjeWNsaWNfc2lnbmFsX2Nvbm5lY3Rvci5o IgogCiBpbnQgZ2V0VG90YWxSQU0oKSB7CkBAIC03MTQsNyArNzAzLDYgQEAgRGlzcGxheVNldHRp bmdzVGFiOjpEaXNwbGF5U2V0dGluZ3NUYWIoUVdpZGdldCAqcGFyZW50LCBjb25zdCBjaGFyICpu YW1lKQogICAgIGMuZnJvbVFDb2xvcihjZmcuc2VsZWN0aW9uT3ZlcmxheU1hc2tDb2xvcigpKTsK ICAgICBtX3NlbGVjdGlvbk92ZXJsYXlDb2xvckFjdGlvbiA9IG5ldyBLb0NvbG9yUG9wdXBBY3Rp b24odGhpcyk7CiAgICAgbV9zZWxlY3Rpb25PdmVybGF5Q29sb3JBY3Rpb24tPnNldEN1cnJlbnRD b2xvcihjKTsKLSAgICBtX3NlbGVjdGlvbk92ZXJsYXlDb2xvckFjdGlvbi0+c2V0SWNvbihLaXNJ Y29uVXRpbHM6OmxvYWRJY29uKCJmb3JtYXQtc3Ryb2tlLWNvbG9yIikpOwogICAgIG1fc2VsZWN0 aW9uT3ZlcmxheUNvbG9yQWN0aW9uLT5zZXRUb29sVGlwKGkxOG4oIkNoYW5nZSB0aGUgYmFja2dy b3VuZCBjb2xvciBvZiB0aGUgaW1hZ2UiKSk7CiAgICAgYnRuU2VsZWN0aW9uT3ZlcmxheUNvbG9y LT5zZXREZWZhdWx0QWN0aW9uKG1fc2VsZWN0aW9uT3ZlcmxheUNvbG9yQWN0aW9uKTsKIApAQCAt MTAwMSw5ICs5ODksOSBAQCBib29sIEtpc0RsZ1ByZWZlcmVuY2VzOjplZGl0UHJlZmVyZW5jZXMo KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGNmZy5zZXRXb3JraW5nQ29sb3JT cGFjZShkaWFsb2ctPm1fY29sb3JTZXR0aW5ncy0+bV9wYWdlLT5jbWJXb3JraW5nQ29sb3JTcGFj ZS0+Y3VycmVudEl0ZW0oKS5pZCgpKTsKLSAgICAgICAgY2ZnLnNldFByaW50ZXJDb2xvclNwYWNl KGRpYWxvZy0+bV9jb2xvclNldHRpbmdzLT5tX3BhZ2UtPmNtYlByaW50aW5nQ29sb3JTcGFjZS0+ Y3VycmVudEl0ZW0oKS5pZCgpKTsKLSAgICAgICAgY2ZnLnNldFByaW50ZXJQcm9maWxlKGRpYWxv Zy0+bV9jb2xvclNldHRpbmdzLT5tX3BhZ2UtPmNtYlByaW50UHJvZmlsZS0+aXRlbUhpZ2hsaWdo dGVkKCkpOwogCisgICAgICAgIEtpc0ltYWdlQ29uZmlnIGNmZ0ltYWdlOworICAgICAgICBjZmdJ bWFnZS5zZXREZWZhdWx0UHJvb2ZpbmdDb25maWcoZGlhbG9nLT5tX2NvbG9yU2V0dGluZ3MtPm1f cGFnZS0+cHJvb2ZpbmdTcGFjZVNlbGVjdG9yLT5jdXJyZW50Q29sb3JTcGFjZSgpLCBkaWFsb2ct Pm1fY29sb3JTZXR0aW5ncy0+bV9wYWdlLT5jbWJQcm9vZmluZ0ludGVudC0+Y3VycmVudEluZGV4 KCksIGRpYWxvZy0+bV9jb2xvclNldHRpbmdzLT5tX3BhZ2UtPmNrYlByb29mQmxhY2tQb2ludC0+ aXNDaGVja2VkKCksIGRpYWxvZy0+bV9jb2xvclNldHRpbmdzLT5tX2dhbXV0V2FybmluZy0+Y3Vy cmVudEtvQ29sb3IoKSwgKGRvdWJsZSlkaWFsb2ctPm1fY29sb3JTZXR0aW5ncy0+bV9wYWdlLT5z bGRBZGFwdGF0aW9uU3RhdGUtPnZhbHVlKCkvMjApOwogICAgICAgICBjZmcuc2V0VXNlQmxhY2tQ b2ludENvbXBlbnNhdGlvbihkaWFsb2ctPm1fY29sb3JTZXR0aW5ncy0+bV9wYWdlLT5jaGtCbGFj a3BvaW50LT5pc0NoZWNrZWQoKSk7CiAgICAgICAgIGNmZy5zZXRBbGxvd0xDTVNPcHRpbWl6YXRp b24oZGlhbG9nLT5tX2NvbG9yU2V0dGluZ3MtPm1fcGFnZS0+Y2hrQWxsb3dMQ01TT3B0aW1pemF0 aW9uLT5pc0NoZWNrZWQoKSk7CiAgICAgICAgIGNmZy5zZXRQYXN0ZUJlaGF2aW91cihkaWFsb2ct Pm1fY29sb3JTZXR0aW5ncy0+bV9wYXN0ZUJlaGF2aW91ckdyb3VwLmNoZWNrZWRJZCgpKTsKZGlm ZiAtLWdpdCBhL2xpYnMvdWkvZGlhbG9ncy9raXNfZGxnX3ByZWZlcmVuY2VzLmggYi9saWJzL3Vp L2RpYWxvZ3Mva2lzX2RsZ19wcmVmZXJlbmNlcy5oCmluZGV4IGM0ZWM2MmUuLmVhMDQ0OTQgMTAw NjQ0Ci0tLSBhL2xpYnMvdWkvZGlhbG9ncy9raXNfZGxnX3ByZWZlcmVuY2VzLmgKKysrIGIvbGli cy91aS9kaWFsb2dzL2tpc19kbGdfcHJlZmVyZW5jZXMuaApAQCAtMjUsNiArMjUsNyBAQAogI2lu Y2x1ZGUgPFFXaWRnZXQ+CiAKICNpbmNsdWRlIDxrcGFnZWRpYWxvZy5oPgorI2luY2x1ZGUgIktv Q29sb3JQb3B1cEFjdGlvbi5oIgogCiAjaW5jbHVkZSAia2lzX2dsb2JhbC5oIgogCkBAIC0xNDks MTMgKzE1MCwxMyBAQCBwdWJsaWM6CiBwcml2YXRlIFFfU0xPVFM6CiAKICAgICB2b2lkIHJlZmls bE1vbml0b3JQcm9maWxlcyhjb25zdCBLb0lEICYgcyk7Ci0gICAgdm9pZCByZWZpbGxQcmludFBy b2ZpbGVzKGNvbnN0IEtvSUQgJiBzKTsKICAgICB2b2lkIGluc3RhbGxQcm9maWxlKCk7CiAgICAg dm9pZCB0b2dnbGVBbGxvd01vbml0b3JQcm9maWxlU2VsZWN0aW9uKGJvb2wgdXNlU3lzdGVtUHJv ZmlsZSk7CiAKIHB1YmxpYzoKICAgICB2b2lkIHNldERlZmF1bHQoKTsKICAgICBXZGdDb2xvclNl dHRpbmdzICAqbV9wYWdlOworICAgIEtvQ29sb3JQb3B1cEFjdGlvbiAqbV9nYW11dFdhcm5pbmc7 CiAgICAgUUJ1dHRvbkdyb3VwIG1fcGFzdGVCZWhhdmlvdXJHcm91cDsKICAgICBRTGlzdDxRTGFi ZWwqPiBtX21vbml0b3JQcm9maWxlTGFiZWxzOwogICAgIFFMaXN0PFNxdWVlemVkQ29tYm9Cb3gq PiBtX21vbml0b3JQcm9maWxlV2lkZ2V0czsKZGlmZiAtLWdpdCBhL2xpYnMvdWkvZm9ybXMvd2Rn Y29sb3JzZXR0aW5ncy51aSBiL2xpYnMvdWkvZm9ybXMvd2RnY29sb3JzZXR0aW5ncy51aQppbmRl eCAwZmQ4ZGRhLi4wYmJkY2E1IDEwMDY0NAotLS0gYS9saWJzL3VpL2Zvcm1zL3dkZ2NvbG9yc2V0 dGluZ3MudWkKKysrIGIvbGlicy91aS9mb3Jtcy93ZGdjb2xvcnNldHRpbmdzLnVpCkBAIC0xNiw3 ICsxNiwxNiBAQAogICA8bGF5b3V0IGNsYXNzPSJRVkJveExheW91dCIgbmFtZT0idmVydGljYWxM YXlvdXRfNCI+CiAgICA8aXRlbT4KICAgICA8bGF5b3V0IGNsYXNzPSJRSEJveExheW91dCI+Ci0g ICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW4iPgorICAgICA8cHJvcGVydHkgbmFtZT0ibGVmdE1h cmdpbiI+CisgICAgICA8bnVtYmVyPjA8L251bWJlcj4KKyAgICAgPC9wcm9wZXJ0eT4KKyAgICAg PHByb3BlcnR5IG5hbWU9InRvcE1hcmdpbiI+CisgICAgICA8bnVtYmVyPjA8L251bWJlcj4KKyAg ICAgPC9wcm9wZXJ0eT4KKyAgICAgPHByb3BlcnR5IG5hbWU9InJpZ2h0TWFyZ2luIj4KKyAgICAg IDxudW1iZXI+MDwvbnVtYmVyPgorICAgICA8L3Byb3BlcnR5PgorICAgICA8cHJvcGVydHkgbmFt ZT0iYm90dG9tTWFyZ2luIj4KICAgICAgIDxudW1iZXI+MDwvbnVtYmVyPgogICAgICA8L3Byb3Bl cnR5PgogICAgICA8aXRlbT4KQEAgLTY1LDE3ICs3NCwzNSBAQAogICAgICAgPC9pdGVtPgogICAg ICAgPGl0ZW0+CiAgICAgICAgPGxheW91dCBjbGFzcz0iUUhCb3hMYXlvdXQiPgotICAgICAgICA8 cHJvcGVydHkgbmFtZT0ibWFyZ2luIj4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxlZnRNYXJn aW4iPgorICAgICAgICAgPG51bWJlcj4wPC9udW1iZXI+CisgICAgICAgIDwvcHJvcGVydHk+Cisg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0b3BNYXJnaW4iPgorICAgICAgICAgPG51bWJlcj4wPC9u dW1iZXI+CisgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWdo dE1hcmdpbiI+CisgICAgICAgICA8bnVtYmVyPjA8L251bWJlcj4KKyAgICAgICAgPC9wcm9wZXJ0 eT4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9ImJvdHRvbU1hcmdpbiI+CiAgICAgICAgICA8bnVt YmVyPjA8L251bWJlcj4KICAgICAgICAgPC9wcm9wZXJ0eT4KICAgICAgICAgPGl0ZW0+Ci0gICAg ICAgICA8d2lkZ2V0IGNsYXNzPSJRV2lkZ2V0IiBuYW1lPSJtb25pdG9ycHJvZmlsZWhvbGRlciIv PgorICAgICAgICAgPHdpZGdldCBjbGFzcz0iUVdpZGdldCIgbmFtZT0ibW9uaXRvcnByb2ZpbGVo b2xkZXIiIG5hdGl2ZT0idHJ1ZSIvPgogICAgICAgICA8L2l0ZW0+CiAgICAgICAgPC9sYXlvdXQ+ CiAgICAgICA8L2l0ZW0+CiAgICAgICA8aXRlbT4KICAgICAgICA8bGF5b3V0IGNsYXNzPSJRSEJv eExheW91dCI+Ci0gICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW4iPgorICAgICAgICA8cHJv cGVydHkgbmFtZT0ibGVmdE1hcmdpbiI+CisgICAgICAgICA8bnVtYmVyPjA8L251bWJlcj4KKyAg ICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InRvcE1hcmdpbiI+Cisg ICAgICAgICA8bnVtYmVyPjA8L251bWJlcj4KKyAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAg PHByb3BlcnR5IG5hbWU9InJpZ2h0TWFyZ2luIj4KKyAgICAgICAgIDxudW1iZXI+MDwvbnVtYmVy PgorICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYm90dG9tTWFy Z2luIj4KICAgICAgICAgIDxudW1iZXI+MDwvbnVtYmVyPgogICAgICAgICA8L3Byb3BlcnR5Pgog ICAgICAgICA8aXRlbT4KQEAgLTE1NCw1NiArMTgxLDg4IEBACiAgICAgPC93aWRnZXQ+CiAgICA8 L2l0ZW0+CiAgICA8aXRlbT4KLSAgICA8d2lkZ2V0IGNsYXNzPSJRR3JvdXBCb3giIG5hbWU9Imdy b3VwQm94MiI+CisgICAgPHdpZGdldCBjbGFzcz0iUUdyb3VwQm94IiBuYW1lPSJncnBQcm9vZmlu Z09wdGlvbnMiPgogICAgICA8cHJvcGVydHkgbmFtZT0iZW5hYmxlZCI+CiAgICAgICA8Ym9vbD50 cnVlPC9ib29sPgogICAgICA8L3Byb3BlcnR5PgogICAgICA8cHJvcGVydHkgbmFtZT0idGl0bGUi PgotICAgICAgPHN0cmluZz5QcmludGluZzwvc3RyaW5nPgorICAgICAgPHN0cmluZz5Tb2Z0IFBy b29mIE9wdGlvbnM8L3N0cmluZz4KICAgICAgPC9wcm9wZXJ0eT4KLSAgICAgPGxheW91dCBjbGFz cz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRpY2FsTGF5b3V0Ij4KLSAgICAgIDxpdGVtPgotICAg ICAgIDxsYXlvdXQgY2xhc3M9IlFHcmlkTGF5b3V0IiBuYW1lPSJncmlkTGF5b3V0XzIiPgotICAg ICAgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMCI+Ci0gICAgICAgICA8d2lkZ2V0IGNsYXNzPSJR TGFiZWwiIG5hbWU9ImxibGRlZmF1bHRwcmludGVyc3BhY2UiPgotICAgICAgICAgIDxwcm9wZXJ0 eSBuYW1lPSJ0ZXh0Ij4KLSAgICAgICAgICAgPHN0cmluZz5EZWZhdWx0IHByaW50ZXIgY29sb3Ig bW9kZWw6PC9zdHJpbmc+Ci0gICAgICAgICAgPC9wcm9wZXJ0eT4KLSAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0iYWxpZ25tZW50Ij4KLSAgICAgICAgICAgPHNldD5RdDo6QWxpZ25SaWdodHxRdDo6 QWxpZ25UcmFpbGluZ3xRdDo6QWxpZ25WQ2VudGVyPC9zZXQ+Ci0gICAgICAgICAgPC9wcm9wZXJ0 eT4KLSAgICAgICAgIDwvd2lkZ2V0PgorICAgICA8bGF5b3V0IGNsYXNzPSJRR3JpZExheW91dCIg bmFtZT0iZ3JpZExheW91dCI+CisgICAgICA8aXRlbSByb3c9IjUiIGNvbHVtbj0iMSI+CisgICAg ICAgPHdpZGdldCBjbGFzcz0iUVRvb2xCdXR0b24iIG5hbWU9ImdhbXV0QWxhcm0iPgorICAgICAg ICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICA8c3RyaW5nPi4uLjwvc3RyaW5nPgor ICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgIDwvd2lkZ2V0PgorICAgICAgPC9pdGVtPgorICAg ICAgPGl0ZW0gcm93PSIzIiBjb2x1bW49IjAiPgorICAgICAgIDx3aWRnZXQgY2xhc3M9IlFMYWJl bCIgbmFtZT0ibGJsUHJvb2ZpbmdJbnRlbnQiPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4 dCI+CisgICAgICAgICA8c3RyaW5nPlByb29maW5nIFJlbmRlcmluZyBJbnRlbnQ6PC9zdHJpbmc+ CisgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgPC93aWRnZXQ+CisgICAgICA8L2l0ZW0+Cisg ICAgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMCIgY29sc3Bhbj0iNCI+CisgICAgICAgPHdpZGdl dCBjbGFzcz0iS2lzQ29sb3JTcGFjZVNlbGVjdG9yIiBuYW1lPSJwcm9vZmluZ1NwYWNlU2VsZWN0 b3IiIG5hdGl2ZT0idHJ1ZSIvPgorICAgICAgPC9pdGVtPgorICAgICAgPGl0ZW0gcm93PSI1IiBj b2x1bW49IjIiIGNvbHNwYW49IjIiPgorICAgICAgIDx3aWRnZXQgY2xhc3M9IlFDaGVja0JveCIg bmFtZT0iY2tiUHJvb2ZCbGFja1BvaW50Ij4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQi PgorICAgICAgICAgPHN0cmluZz5CYWNrIFBvaW50IENvbXBlbnNhdGlvbjwvc3RyaW5nPgorICAg ICAgICA8L3Byb3BlcnR5PgorICAgICAgIDwvd2lkZ2V0PgorICAgICAgPC9pdGVtPgorICAgICAg PGl0ZW0gcm93PSI1IiBjb2x1bW49IjAiPgorICAgICAgIDx3aWRnZXQgY2xhc3M9IlFMYWJlbCIg bmFtZT0ibGJsR2FtdXRXYXJuaW5nIj4KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgor ICAgICAgICAgPHN0cmluZz5HYW11dCBXYXJuaW5nOjwvc3RyaW5nPgorICAgICAgICA8L3Byb3Bl cnR5PgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iYWxpZ25tZW50Ij4KKyAgICAgICAgIDxzZXQ+ UXQ6OkFsaWduUmlnaHR8UXQ6OkFsaWduVHJhaWxpbmd8UXQ6OkFsaWduVkNlbnRlcjwvc2V0Pgor ICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgIDwvd2lkZ2V0PgorICAgICAgPC9pdGVtPgorICAg ICAgPGl0ZW0gcm93PSIzIiBjb2x1bW49IjEiIGNvbHNwYW49IjMiPgorICAgICAgIDx3aWRnZXQg Y2xhc3M9IlFDb21ib0JveCIgbmFtZT0iY21iUHJvb2ZpbmdJbnRlbnQiPgorICAgICAgICA8aXRl bT4KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICA8c3RyaW5nPlBl cmNlcHR1YWw8L3N0cmluZz4KKyAgICAgICAgIDwvcHJvcGVydHk+CiAgICAgICAgIDwvaXRlbT4K LSAgICAgICAgPGl0ZW0gcm93PSIxIiBjb2x1bW49IjAiPgotICAgICAgICAgPHdpZGdldCBjbGFz cz0iUUxhYmVsIiBuYW1lPSJ0ZXh0TGFiZWw0Ij4KLSAgICAgICAgICA8cHJvcGVydHkgbmFtZT0i dG9vbFRpcCI+Ci0gICAgICAgICAgIDxzdHJpbmc+VGhlIGljbSBwcm9maWxlIGZvciB5b3VyIGNh bGlicmF0ZWQgcHJpbnRlcjwvc3RyaW5nPgotICAgICAgICAgIDwvcHJvcGVydHk+Ci0gICAgICAg ICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgotICAgICAgICAgICA8c3RyaW5nPkRlZmF1bHQgJmFt cDtwcmludGVyIHByb2ZpbGU6PC9zdHJpbmc+Ci0gICAgICAgICAgPC9wcm9wZXJ0eT4KLSAgICAg ICAgICA8cHJvcGVydHkgbmFtZT0iYWxpZ25tZW50Ij4KLSAgICAgICAgICAgPHNldD5RdDo6QWxp Z25SaWdodHxRdDo6QWxpZ25UcmFpbGluZ3xRdDo6QWxpZ25WQ2VudGVyPC9zZXQ+Ci0gICAgICAg ICAgPC9wcm9wZXJ0eT4KLSAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iYnVkZHkiPgotICAgICAg ICAgICA8Y3N0cmluZz5jbWJQcmludFByb2ZpbGU8L2NzdHJpbmc+Ci0gICAgICAgICAgPC9wcm9w ZXJ0eT4KLSAgICAgICAgIDwvd2lkZ2V0PgorICAgICAgICA8aXRlbT4KKyAgICAgICAgIDxwcm9w ZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICA8c3RyaW5nPlJlbGF0aXZlIENvbG9yaW1ldHJp Yzwvc3RyaW5nPgorICAgICAgICAgPC9wcm9wZXJ0eT4KICAgICAgICAgPC9pdGVtPgotICAgICAg ICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMSI+Ci0gICAgICAgICA8d2lkZ2V0IGNsYXNzPSJLaXND bWJJRExpc3QiIG5hbWU9ImNtYlByaW50aW5nQ29sb3JTcGFjZSI+Ci0gICAgICAgICAgPHByb3Bl cnR5IG5hbWU9InNpemVQb2xpY3kiPgotICAgICAgICAgICA8c2l6ZXBvbGljeSBoc2l6ZXR5cGU9 IkV4cGFuZGluZyIgdnNpemV0eXBlPSJQcmVmZXJyZWQiPgotICAgICAgICAgICAgPGhvcnN0cmV0 Y2g+MDwvaG9yc3RyZXRjaD4KLSAgICAgICAgICAgIDx2ZXJzdHJldGNoPjA8L3ZlcnN0cmV0Y2g+ Ci0gICAgICAgICAgIDwvc2l6ZXBvbGljeT4KLSAgICAgICAgICA8L3Byb3BlcnR5PgotICAgICAg ICAgPC93aWRnZXQ+CisgICAgICAgIDxpdGVtPgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRl eHQiPgorICAgICAgICAgIDxzdHJpbmc+U2F0dXJhdGlvbjwvc3RyaW5nPgorICAgICAgICAgPC9w cm9wZXJ0eT4KICAgICAgICAgPC9pdGVtPgotICAgICAgICA8aXRlbSByb3c9IjEiIGNvbHVtbj0i MSI+Ci0gICAgICAgICA8d2lkZ2V0IGNsYXNzPSJTcXVlZXplZENvbWJvQm94IiBuYW1lPSJjbWJQ cmludFByb2ZpbGUiLz4KKyAgICAgICAgPGl0ZW0+CisgICAgICAgICA8cHJvcGVydHkgbmFtZT0i dGV4dCI+CisgICAgICAgICAgPHN0cmluZz5BYnNvbHV0ZSBDb2xvcmltZXRyaWM8L3N0cmluZz4K KyAgICAgICAgIDwvcHJvcGVydHk+CiAgICAgICAgIDwvaXRlbT4KLSAgICAgICA8L2xheW91dD4K KyAgICAgICA8L3dpZGdldD4KKyAgICAgIDwvaXRlbT4KKyAgICAgIDxpdGVtIHJvdz0iNCIgY29s dW1uPSIxIiBjb2xzcGFuPSIzIj4KKyAgICAgICA8d2lkZ2V0IGNsYXNzPSJRU2xpZGVyIiBuYW1l PSJzbGRBZGFwdGF0aW9uU3RhdGUiPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0ib3JpZW50YXRp b24iPgorICAgICAgICAgPGVudW0+UXQ6Okhvcml6b250YWw8L2VudW0+CisgICAgICAgIDwvcHJv cGVydHk+CisgICAgICAgPC93aWRnZXQ+CisgICAgICA8L2l0ZW0+CisgICAgICA8aXRlbSByb3c9 IjQiIGNvbHVtbj0iMCI+CisgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJsYmxB ZGFwdGF0aW9uU3RhdGUiPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAg ICA8c3RyaW5nPkFkYXB0YXRpb24gU3RhdGU6PC9zdHJpbmc+CisgICAgICAgIDwvcHJvcGVydHk+ CisgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJhbGlnbm1lbnQiPgorICAgICAgICAgPHNldD5RdDo6 QWxpZ25SaWdodHxRdDo6QWxpZ25UcmFpbGluZ3xRdDo6QWxpZ25WQ2VudGVyPC9zZXQ+CisgICAg ICAgIDwvcHJvcGVydHk+CisgICAgICAgPC93aWRnZXQ+CiAgICAgICA8L2l0ZW0+CiAgICAgIDwv bGF5b3V0PgogICAgIDwvd2lkZ2V0PgpAQCAtMjUwLDcgKzMwOSwxNiBAQAogICAgICA8cHJvcGVy dHkgbmFtZT0ic3BhY2luZyI+CiAgICAgICA8bnVtYmVyPjY8L251bWJlcj4KICAgICAgPC9wcm9w ZXJ0eT4KLSAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbiI+CisgICAgIDxwcm9wZXJ0eSBuYW1l PSJsZWZ0TWFyZ2luIj4KKyAgICAgIDxudW1iZXI+MDwvbnVtYmVyPgorICAgICA8L3Byb3BlcnR5 PgorICAgICA8cHJvcGVydHkgbmFtZT0idG9wTWFyZ2luIj4KKyAgICAgIDxudW1iZXI+MDwvbnVt YmVyPgorICAgICA8L3Byb3BlcnR5PgorICAgICA8cHJvcGVydHkgbmFtZT0icmlnaHRNYXJnaW4i PgorICAgICAgPG51bWJlcj4wPC9udW1iZXI+CisgICAgIDwvcHJvcGVydHk+CisgICAgIDxwcm9w ZXJ0eSBuYW1lPSJib3R0b21NYXJnaW4iPgogICAgICAgPG51bWJlcj4wPC9udW1iZXI+CiAgICAg IDwvcHJvcGVydHk+CiAgICAgIDxpdGVtPgpAQCAtMjk1LDE5ICszNjMsMjUgQEAKICA8L3dpZGdl dD4KICA8Y3VzdG9td2lkZ2V0cz4KICAgPGN1c3RvbXdpZGdldD4KKyAgIDxjbGFzcz5LaXNDb2xv clNwYWNlU2VsZWN0b3I8L2NsYXNzPgorICAgPGV4dGVuZHM+UVdpZGdldDwvZXh0ZW5kcz4KKyAg IDxoZWFkZXI+d2lkZ2V0cy9raXNfY29sb3Jfc3BhY2Vfc2VsZWN0b3IuaDwvaGVhZGVyPgorICAg PGNvbnRhaW5lcj4xPC9jb250YWluZXI+CisgIDwvY3VzdG9td2lkZ2V0PgorICA8Y3VzdG9td2lk Z2V0PgogICAgPGNsYXNzPktDb21ib0JveDwvY2xhc3M+CiAgICA8ZXh0ZW5kcz5RQ29tYm9Cb3g8 L2V4dGVuZHM+CiAgICA8aGVhZGVyPmtjb21ib2JveC5oPC9oZWFkZXI+CiAgIDwvY3VzdG9td2lk Z2V0PgogICA8Y3VzdG9td2lkZ2V0PgotICAgPGNsYXNzPlNxdWVlemVkQ29tYm9Cb3g8L2NsYXNz PgorICAgPGNsYXNzPktpc0NtYklETGlzdDwvY2xhc3M+CiAgICA8ZXh0ZW5kcz5RQ29tYm9Cb3g8 L2V4dGVuZHM+Ci0gICA8aGVhZGVyPndpZGdldHMvc3F1ZWV6ZWRjb21ib2JveC5oPC9oZWFkZXI+ CisgICA8aGVhZGVyPndpZGdldHMva2lzX2NtYl9pZGxpc3QuaDwvaGVhZGVyPgogICA8L2N1c3Rv bXdpZGdldD4KICAgPGN1c3RvbXdpZGdldD4KLSAgIDxjbGFzcz5LaXNDbWJJRExpc3Q8L2NsYXNz PgorICAgPGNsYXNzPlNxdWVlemVkQ29tYm9Cb3g8L2NsYXNzPgogICAgPGV4dGVuZHM+UUNvbWJv Qm94PC9leHRlbmRzPgotICAgPGhlYWRlcj53aWRnZXRzL2tpc19jbWJfaWRsaXN0Lmg8L2hlYWRl cj4KKyAgIDxoZWFkZXI+d2lkZ2V0cy9zcXVlZXplZGNvbWJvYm94Lmg8L2hlYWRlcj4KICAgPC9j dXN0b213aWRnZXQ+CiAgPC9jdXN0b213aWRnZXRzPgogIDxyZXNvdXJjZXMvPgpkaWZmIC0tZ2l0 IGEvbGlicy91aS9mb3Jtcy93ZGdpbWFnZXByb3BlcnRpZXMudWkgYi9saWJzL3VpL2Zvcm1zL3dk Z2ltYWdlcHJvcGVydGllcy51aQppbmRleCBkZGM1NGQ5Li44YTAzYzU0IDEwMDY0NAotLS0gYS9s aWJzL3VpL2Zvcm1zL3dkZ2ltYWdlcHJvcGVydGllcy51aQorKysgYi9saWJzL3VpL2Zvcm1zL3dk Z2ltYWdlcHJvcGVydGllcy51aQpAQCAtNyw3ICs3LDcgQEAKICAgICA8eD4wPC94PgogICAgIDx5 PjA8L3k+CiAgICAgPHdpZHRoPjQ0ODwvd2lkdGg+Ci0gICAgPGhlaWdodD4zNDA8L2hlaWdodD4K KyAgICA8aGVpZ2h0PjU2ODwvaGVpZ2h0PgogICAgPC9yZWN0PgogICA8L3Byb3BlcnR5PgogICA8 cHJvcGVydHkgbmFtZT0id2luZG93VGl0bGUiPgpAQCAtMTM4LDMxICsxMzgsNiBAQAogICAgICA8 L2xheW91dD4KICAgICA8L3dpZGdldD4KICAgIDwvaXRlbT4KLSAgIDxpdGVtIHJvdz0iMSIgY29s dW1uPSIwIj4KLSAgICA8d2lkZ2V0IGNsYXNzPSJRR3JvdXBCb3giIG5hbWU9ImdycE1vZGUiPgot ICAgICA8cHJvcGVydHkgbmFtZT0idGl0bGUiPgotICAgICAgPHN0cmluZz5Nb2RlPC9zdHJpbmc+ Ci0gICAgIDwvcHJvcGVydHk+Ci0gICAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0IiBuYW1l PSJ2ZXJ0aWNhbExheW91dCI+Ci0gICAgICA8aXRlbT4KLSAgICAgICA8d2lkZ2V0IGNsYXNzPSJL aXNDb2xvclNwYWNlU2VsZWN0b3IiIG5hbWU9ImNvbG9yU3BhY2VTZWxlY3RvciIvPgotICAgICAg PC9pdGVtPgotICAgICAgPGl0ZW0+Ci0gICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1l PSJsYWJlbF8yIj4KLSAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgotICAgICAgICAgPHN0 cmluZz4mbHQ7aHRtbCZndDsmbHQ7aGVhZC8mZ3Q7Jmx0O2JvZHkmZ3Q7Jmx0O3AmZ3Q7Jmx0O3Nw YW4gc3R5bGU9JnF1b3Q7IGZvbnQtd2VpZ2h0OjYwMDsmcXVvdDsmZ3Q7Tm90ZTombHQ7L3NwYW4m Z3Q7IFRoaXMgY2hhbmdlcyBvbmx5IHRoZSBjb2xvcnNwYWNlIG9mIHRoZSByZW5kZXJlZCBpbWFn ZS4gVG8gY29udmVydCB0aGUgY29sb3JzcGFjZSBvZiB0aGUgbGF5ZXJzLCB1c2UgQ29udmVydCBJ bWFnZSBDb2xvcnNwYWNlLiZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwvc3Ry aW5nPgotICAgICAgICA8L3Byb3BlcnR5PgotICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dEZv cm1hdCI+Ci0gICAgICAgICA8ZW51bT5RdDo6UmljaFRleHQ8L2VudW0+Ci0gICAgICAgIDwvcHJv cGVydHk+Ci0gICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ3b3JkV3JhcCI+Ci0gICAgICAgICA8Ym9v bD50cnVlPC9ib29sPgotICAgICAgICA8L3Byb3BlcnR5PgotICAgICAgIDwvd2lkZ2V0PgotICAg ICAgPC9pdGVtPgotICAgICA8L2xheW91dD4KLSAgICA8L3dpZGdldD4KLSAgIDwvaXRlbT4KICAg IDxpdGVtIHJvdz0iMiIgY29sdW1uPSIwIj4KICAgICA8d2lkZ2V0IGNsYXNzPSJRR3JvdXBCb3gi IG5hbWU9ImdycEFubm90YXRpb25zIj4KICAgICAgPHByb3BlcnR5IG5hbWU9InRpdGxlIj4KQEAg LTIxOSw2ICsxOTQsMTI5IEBACiAgICAgIDwvcHJvcGVydHk+CiAgICAgPC9zcGFjZXI+CiAgICA8 L2l0ZW0+CisgICA8aXRlbSByb3c9IjEiIGNvbHVtbj0iMCI+CisgICAgPHdpZGdldCBjbGFzcz0i UVRhYldpZGdldCIgbmFtZT0iZ3JwQ29sb3JNIj4KKyAgICAgPHByb3BlcnR5IG5hbWU9ImN1cnJl bnRJbmRleCI+CisgICAgICA8bnVtYmVyPjA8L251bWJlcj4KKyAgICAgPC9wcm9wZXJ0eT4KKyAg ICAgPHdpZGdldCBjbGFzcz0iUVdpZGdldCIgbmFtZT0iZ3JwTW9kZSI+CisgICAgICA8YXR0cmli dXRlIG5hbWU9InRpdGxlIj4KKyAgICAgICA8c3RyaW5nPkltYWdlIENvbG9yIFNwYWNlPC9zdHJp bmc+CisgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgIDxsYXlvdXQgY2xhc3M9IlFWQm94TGF5b3V0 IiBuYW1lPSJ2ZXJ0aWNhbExheW91dCI+CisgICAgICAgPGl0ZW0+CisgICAgICAgIDx3aWRnZXQg Y2xhc3M9Iktpc0NvbG9yU3BhY2VTZWxlY3RvciIgbmFtZT0iY29sb3JTcGFjZVNlbGVjdG9yIiBu YXRpdmU9InRydWUiLz4KKyAgICAgICA8L2l0ZW0+CisgICAgICAgPGl0ZW0+CisgICAgICAgIDx3 aWRnZXQgY2xhc3M9IlFMYWJlbCIgbmFtZT0ibGFiZWxfMiI+CisgICAgICAgICA8cHJvcGVydHkg bmFtZT0idGV4dCI+CisgICAgICAgICAgPHN0cmluZz4mbHQ7aHRtbCZndDsmbHQ7aGVhZC8mZ3Q7 Jmx0O2JvZHkmZ3Q7Jmx0O3AmZ3Q7Jmx0O3NwYW4gc3R5bGU9JnF1b3Q7IGZvbnQtd2VpZ2h0OjYw MDsmcXVvdDsmZ3Q7Tm90ZTombHQ7L3NwYW4mZ3Q7IFRoaXMgY2hhbmdlcyBvbmx5IHRoZSBjb2xv cnNwYWNlIG9mIHRoZSByZW5kZXJlZCBpbWFnZS4gVG8gY29udmVydCB0aGUgY29sb3JzcGFjZSBv ZiB0aGUgbGF5ZXJzLCB1c2UgQ29udmVydCBJbWFnZSBDb2xvcnNwYWNlLiZsdDsvcCZndDsmbHQ7 L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwvc3RyaW5nPgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Rm9ybWF0Ij4KKyAgICAgICAgICA8ZW51bT5RdDo6 UmljaFRleHQ8L2VudW0+CisgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgPHByb3BlcnR5 IG5hbWU9IndvcmRXcmFwIj4KKyAgICAgICAgICA8Ym9vbD50cnVlPC9ib29sPgorICAgICAgICAg PC9wcm9wZXJ0eT4KKyAgICAgICAgPC93aWRnZXQ+CisgICAgICAgPC9pdGVtPgorICAgICAgPC9s YXlvdXQ+CisgICAgIDwvd2lkZ2V0PgorICAgICA8d2lkZ2V0IGNsYXNzPSJRV2lkZ2V0IiBuYW1l PSJncnBTb2Z0UHJvb2YiPgorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJ0aXRsZSI+CisgICAgICAg PHN0cmluZz5Tb2Z0cHJvb2Zpbmc8L3N0cmluZz4KKyAgICAgIDwvYXR0cmlidXRlPgorICAgICAg PGxheW91dCBjbGFzcz0iUUdyaWRMYXlvdXQiIG5hbWU9ImdyaWRMYXlvdXQiPgorICAgICAgIDxp dGVtIHJvdz0iMyIgY29sdW1uPSIxIj4KKyAgICAgICAgPHdpZGdldCBjbGFzcz0iUVRvb2xCdXR0 b24iIG5hbWU9ImdhbXV0QWxhcm0iPgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgor ICAgICAgICAgIDxzdHJpbmc+Li4uPC9zdHJpbmc+CisgICAgICAgICA8L3Byb3BlcnR5PgorICAg ICAgICA8L3dpZGdldD4KKyAgICAgICA8L2l0ZW0+CisgICAgICAgPGl0ZW0gcm93PSIzIiBjb2x1 bW49IjAiPgorICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRTGFiZWwiIG5hbWU9ImxibEdhbXV0V2Fy bmluZyI+CisgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CisgICAgICAgICAgPHN0cmlu Zz5HYW11dCBXYXJuaW5nOjwvc3RyaW5nPgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAg PC93aWRnZXQ+CisgICAgICAgPC9pdGVtPgorICAgICAgIDxpdGVtIHJvdz0iMiIgY29sdW1uPSIw Ij4KKyAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJsYmxBZGFwdGF0aW9uU3Rh dGUiPgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxheW91dERpcmVjdGlvbiI+CisgICAgICAg ICAgPGVudW0+UXQ6OkxlZnRUb1JpZ2h0PC9lbnVtPgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICA8c3RyaW5nPkFkYXB0YXRp b24gU3RhdGU6PC9zdHJpbmc+CisgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgPHByb3Bl cnR5IG5hbWU9ImFsaWdubWVudCI+CisgICAgICAgICAgPHNldD5RdDo6QWxpZ25SaWdodHxRdDo6 QWxpZ25UcmFpbGluZ3xRdDo6QWxpZ25WQ2VudGVyPC9zZXQ+CisgICAgICAgICA8L3Byb3BlcnR5 PgorICAgICAgICA8L3dpZGdldD4KKyAgICAgICA8L2l0ZW0+CisgICAgICAgPGl0ZW0gcm93PSIy IiBjb2x1bW49IjEiIGNvbHNwYW49IjMiPgorICAgICAgICA8d2lkZ2V0IGNsYXNzPSJRU2xpZGVy IiBuYW1lPSJzbGRBZGFwdGF0aW9uU3RhdGUiPgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRv b2xUaXAiPgorICAgICAgICAgIDxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQvJmd0OyZsdDti b2R5Jmd0OyZsdDtwJmd0O1NldCBob3cgbXVjaCB5b3Ugd2lzaCB0byBjb3JyZWN0IHRoZSBhZGFw dGF0aW9uIHN0YXRlLiBUaGlzIHdpbGwgYWZmZWN0IGhvdyAmbHQ7c3BhbiBzdHlsZT0mcXVvdDsg Zm9udC1zdHlsZTppdGFsaWM7JnF1b3Q7Jmd0O0Fic29sdXRlIENvbG9yaW1ldHJpYyZsdDsvc3Bh biZndDsgY2hhbmdlcyB0aGUgd2hpdGVzIG9mIHlvdXIgaW1hZ2UuIEluIExheW1hbidzIHRlcm1z OiBob3cgbXVjaCBkbyB5b3Ugd2lzaCB0byBoYXZlIHRoZSBjb2xvciBtYW5hZ2VtZW50IGNvcnJl Y3QgdGhlIHBhcGVyLWNvbG9yIHRvIHNjcmVlbiB3aGl0ZSB3aGlsZSB1c2luZyAmbHQ7c3BhbiBz dHlsZT0mcXVvdDsgZm9udC1zdHlsZTppdGFsaWM7JnF1b3Q7Jmd0O0Fic29sdXRlIENvbG9yaW1l dHJpYyZsdDsvc3BhbiZndDs/Jmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7PC9z dHJpbmc+CisgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9y aWVudGF0aW9uIj4KKyAgICAgICAgICA8ZW51bT5RdDo6SG9yaXpvbnRhbDwvZW51bT4KKyAgICAg ICAgIDwvcHJvcGVydHk+CisgICAgICAgIDwvd2lkZ2V0PgorICAgICAgIDwvaXRlbT4KKyAgICAg ICA8aXRlbSByb3c9IjMiIGNvbHVtbj0iMiIgY29sc3Bhbj0iMiI+CisgICAgICAgIDx3aWRnZXQg Y2xhc3M9IlFDaGVja0JveCIgbmFtZT0iY2tiQmxhY2tQb2ludENvbXAiPgorICAgICAgICAgPHBy b3BlcnR5IG5hbWU9InRvb2xUaXAiPgorICAgICAgICAgIDxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0 O2hlYWQvJmd0OyZsdDtib2R5Jmd0OyZsdDtwJmd0O0JsYWNrIFBvaW50IGNvbXBlbnNhdGlvbiBt YXRjaGVzIHRoZSBkYXJrZXN0IGNvbG9yIG9mIHRoZSBzb3VyY2UgZGV2aWNlIHRvIHRoZSBkYXJr ZXN0IGNvbG9yIG9mIHRoZSBkZXN0aW5hdGlvbiBkZXZpY2UuIFJlbGF0aXZlIENvbG9yaW1ldHJp YyB3aXRob3V0IEJsYWNrIFBvaW50IENvbXBlbnNhdGlvbiB3aWxsIHNob3cgdGhlIGRpZmZlcmVu Y2UgYmV0d2VlbiB0aGUgZGFya2VzdCB2YWx1ZXMuIFdpdGggYmxhY2twb2ludCBjb21wZW5zYXRp b24sIGJsYWNrIGlzIGJsYWNrLiZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwv c3RyaW5nPgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0 ZXh0Ij4KKyAgICAgICAgICA8c3RyaW5nPkJsYWNrIFBvaW50IENvbXBlbnNhdGlvbjwvc3RyaW5n PgorICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAgPC93aWRnZXQ+CisgICAgICAgPC9pdGVt PgorICAgICAgIDxpdGVtIHJvdz0iMCIgY29sdW1uPSIwIiBjb2xzcGFuPSI0Ij4KKyAgICAgICAg PHdpZGdldCBjbGFzcz0iS2lzQ29sb3JTcGFjZVNlbGVjdG9yIiBuYW1lPSJwcm9vZlNwYWNlU2Vs ZWN0b3IiIG5hdGl2ZT0idHJ1ZSIvPgorICAgICAgIDwvaXRlbT4KKyAgICAgICA8aXRlbSByb3c9 IjEiIGNvbHVtbj0iMCIgY29sc3Bhbj0iNCI+CisgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFHcm91 cEJveCIgbmFtZT0iZ3JvdXBCb3giPgorICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRpdGxlIj4K KyAgICAgICAgICA8c3RyaW5nPlJlbmRlcmluZyBJbnRlbnQ8L3N0cmluZz4KKyAgICAgICAgIDwv cHJvcGVydHk+CisgICAgICAgICA8bGF5b3V0IGNsYXNzPSJRRm9ybUxheW91dCIgbmFtZT0iZm9y bUxheW91dF8yIj4KKyAgICAgICAgICA8aXRlbSByb3c9IjAiIGNvbHVtbj0iMCIgY29sc3Bhbj0i MiI+CisgICAgICAgICAgIDx3aWRnZXQgY2xhc3M9IlFDb21ib0JveCIgbmFtZT0iY21iSW50ZW50 Ij4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjdXJyZW50SW5kZXgiPgorICAgICAgICAg ICAgIDxudW1iZXI+MDwvbnVtYmVyPgorICAgICAgICAgICAgPC9wcm9wZXJ0eT4KKyAgICAgICAg ICAgIDxpdGVtPgorICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAg ICAgICAgPHN0cmluZz5QZXJjZXB0dWFsPC9zdHJpbmc+CisgICAgICAgICAgICAgPC9wcm9wZXJ0 eT4KKyAgICAgICAgICAgIDwvaXRlbT4KKyAgICAgICAgICAgIDxpdGVtPgorICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICAgICAgPHN0cmluZz5SZWxhdGl2ZSBD b2xvcmltZXRyaWM8L3N0cmluZz4KKyAgICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAg ICAgPC9pdGVtPgorICAgICAgICAgICAgPGl0ZW0+CisgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9InRleHQiPgorICAgICAgICAgICAgICA8c3RyaW5nPlNhdHVyYXRpb248L3N0cmluZz4KKyAg ICAgICAgICAgICA8L3Byb3BlcnR5PgorICAgICAgICAgICAgPC9pdGVtPgorICAgICAgICAgICAg PGl0ZW0+CisgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InRleHQiPgorICAgICAgICAgICAg ICA8c3RyaW5nPkFic29sdXRlIENvbG9yaW1ldHJpYzwvc3RyaW5nPgorICAgICAgICAgICAgIDwv cHJvcGVydHk+CisgICAgICAgICAgICA8L2l0ZW0+CisgICAgICAgICAgIDwvd2lkZ2V0PgorICAg ICAgICAgIDwvaXRlbT4KKyAgICAgICAgIDwvbGF5b3V0PgorICAgICAgICA8L3dpZGdldD4KKyAg ICAgICA8L2l0ZW0+CisgICAgICA8L2xheW91dD4KKyAgICAgPC93aWRnZXQ+CisgICAgPC93aWRn ZXQ+CisgICA8L2l0ZW0+CiAgIDwvbGF5b3V0PgogIDwvd2lkZ2V0PgogIDxjdXN0b213aWRnZXRz PgpkaWZmIC0tZ2l0IGEvbGlicy91aS9raXNfY29uZmlnLmNjIGIvbGlicy91aS9raXNfY29uZmln LmNjCmluZGV4IDQ1MmIwNmIuLjYxYjdkOTIgMTAwNjQ0Ci0tLSBhL2xpYnMvdWkva2lzX2NvbmZp Zy5jYworKysgYi9saWJzL3VpL2tpc19jb25maWcuY2MKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lu Y2x1ZGUgPEtpc0RvY3VtZW50Lmg+CiAKKyNpbmNsdWRlIDxLb0NvbG9yLmg+CiAjaW5jbHVkZSA8 S29Db2xvclNwYWNlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxLb0NvbG9yTW9kZWxTdGFuZGFyZElk cy5oPgogI2luY2x1ZGUgPEtvQ29sb3JQcm9maWxlLmg+CmRpZmYgLS1naXQgYS9saWJzL3VpL2tp c19jb25maWcuaCBiL2xpYnMvdWkva2lzX2NvbmZpZy5oCmluZGV4IDUxODEwYzYuLjJkMDliYjIg MTAwNjQ0Ci0tLSBhL2xpYnMvdWkva2lzX2NvbmZpZy5oCisrKyBiL2xpYnMvdWkva2lzX2NvbmZp Zy5oCkBAIC00NzksNyArNDc5LDYgQEAgcHVibGljOgogICAgIFFTdHJpbmcgY3VzdG9tRkZNcGVn UGF0aChib29sIGRlZmF1bHRWYWx1ZSA9IGZhbHNlKSBjb25zdDsKICAgICB2b2lkIHNldEN1c3Rv bUZGTXBlZ1BhdGgoY29uc3QgUVN0cmluZyAmdmFsdWUpIGNvbnN0OwogCi0KICAgICB0ZW1wbGF0 ZTxjbGFzcyBUPgogICAgIHZvaWQgd3JpdGVFbnRyeShjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25z dCBUJiB2YWx1ZSkgewogICAgICAgICBtX2NmZy53cml0ZUVudHJ5KG5hbWUsIHZhbHVlKTsKZGlm ZiAtLWdpdCBhL2xpYnMvdWkva3JhL2tpc19rcmFfbG9hZGVyLmNwcCBiL2xpYnMvdWkva3JhL2tp c19rcmFfbG9hZGVyLmNwcAppbmRleCA1NzE1OTQ2Li4zNTUyNjc1IDEwMDY0NAotLS0gYS9saWJz L3VpL2tyYS9raXNfa3JhX2xvYWRlci5jcHAKKysrIGIvbGlicy91aS9rcmEva2lzX2tyYV9sb2Fk ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlIDxLb1N0b3JlLmg+CiAjaW5jbHVk ZSA8S29Db2xvclNwYWNlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxLb0NvbG9yU3BhY2VFbmdpbmUu aD4KICNpbmNsdWRlIDxLb0NvbG9yUHJvZmlsZS5oPgogI2luY2x1ZGUgPEtvRG9jdW1lbnRJbmZv Lmg+CiAjaW5jbHVkZSA8S29GaWxlRGlhbG9nLmg+CkBAIC03NSw2ICs3Niw4IEBACiAjaW5jbHVk ZSAia2lzX3RpbWVfcmFuZ2UuaCIKICNpbmNsdWRlICJraXNfZ3JpZF9jb25maWcuaCIKICNpbmNs dWRlICJraXNfZ3VpZGVzX2NvbmZpZy5oIgorI2luY2x1ZGUgImtpc19pbWFnZV9jb25maWcuaCIK KyNpbmNsdWRlICJLaXNQcm9vZmluZ0NvbmZpZ3VyYXRpb24uaCIKIAogLyoKIApAQCAtMjYzLDYg KzI2NiwyNCBAQCBLaXNJbWFnZVdTUCBLaXNLcmFMb2FkZXI6OmxvYWRYTUwoY29uc3QgS29YbWxF bGVtZW50JiBlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBLaXNJbWFnZVdTUCgwKTsK ICAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBLaXNJbWFnZUNvbmZpZyBjZmdJbWFn ZTsKKyAgICAgICAgS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uICpwcm9vZmluZ0NvbmZpZyA9IGNm Z0ltYWdlLmRlZmF1bHRQcm9vZmluZ2NvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgaWYgKCEoYXR0 ciA9IGVsZW1lbnQuYXR0cmlidXRlKFBST09GSU5HUFJPRklMRU5BTUUpKS5pc051bGwoKSkgewor ICAgICAgICAgICAgcHJvb2ZpbmdDb25maWctPnByb29maW5nUHJvZmlsZSA9IGF0dHI7CisgICAg ICAgIH0KKyAgICAgICAgaWYgKCEoYXR0ciA9IGVsZW1lbnQuYXR0cmlidXRlKFBST09GSU5HTU9E RUwpKS5pc051bGwoKSkgeworICAgICAgICAgICAgcHJvb2ZpbmdDb25maWctPnByb29maW5nTW9k ZWwgPSBhdHRyOworICAgICAgICB9CisgICAgICAgIGlmICghKGF0dHIgPSBlbGVtZW50LmF0dHJp YnV0ZShQUk9PRklOR0RFUFRIKSkuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIHByb29maW5nQ29u ZmlnLT5wcm9vZmluZ0RlcHRoID0gYXR0cjsKKyAgICAgICAgfQorICAgICAgICBpZiAoIShhdHRy ID0gZWxlbWVudC5hdHRyaWJ1dGUoUFJPT0ZJTkdJTlRFTlQpKS5pc051bGwoKSkgeworICAgICAg ICAgICAgcHJvb2ZpbmdDb25maWctPmludGVudCA9IChLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uOjpJbnRlbnQpIEtpc0RvbVV0aWxzOjp0b0ludChhdHRyKTsKKyAgICAgICAgfQorCisg ICAgICAgIGlmICghKGF0dHIgPSBlbGVtZW50LmF0dHJpYnV0ZShQUk9PRklOR0FEQVBUQVRJT05T VEFURSkpLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBwcm9vZmluZ0NvbmZpZy0+YWRhcHRhdGlv blN0YXRlID0gS2lzRG9tVXRpbHM6OnRvRG91YmxlKGF0dHIpOworICAgICAgICB9CiAKICAgICAg ICAgaWYgKG1fZC0+ZG9jdW1lbnQpIHsKICAgICAgICAgICAgIGltYWdlID0gbmV3IEtpc0ltYWdl KG1fZC0+ZG9jdW1lbnQtPmNyZWF0ZVVuZG9TdG9yZSgpLCB3aWR0aCwgaGVpZ2h0LCBjcywgbmFt ZSk7CkBAIC0yNzMsMjIgKzI5NCwzMiBAQCBLaXNJbWFnZVdTUCBLaXNLcmFMb2FkZXI6OmxvYWRY TUwoY29uc3QgS29YbWxFbGVtZW50JiBlbGVtZW50KQogICAgICAgICBpbWFnZS0+c2V0UmVzb2x1 dGlvbih4cmVzLCB5cmVzKTsKICAgICAgICAgbG9hZE5vZGVzKGVsZW1lbnQsIGltYWdlLCBjb25z dF9jYXN0PEtpc0dyb3VwTGF5ZXIqPihpbWFnZS0+cm9vdExheWVyKCkuZGF0YSgpKSk7CiAKKwog ICAgICAgICBLb1htbE5vZGUgY2hpbGQ7CiAgICAgICAgIGZvciAoY2hpbGQgPSBlbGVtZW50Lmxh c3RDaGlsZCgpOyAhY2hpbGQuaXNOdWxsKCk7IGNoaWxkID0gY2hpbGQucHJldmlvdXNTaWJsaW5n KCkpIHsKICAgICAgICAgICAgIEtvWG1sRWxlbWVudCBlID0gY2hpbGQudG9FbGVtZW50KCk7Ci0g ICAgICAgICAgICBpZihlLnRhZ05hbWUoKSA9PSAiUHJvamVjdGlvbkJhY2tncm91bmRDb2xvciIp IHsKLSAgICAgICAgICAgICAgICBpZiAoZS5oYXNBdHRyaWJ1dGUoIkNvbG9yRGF0YSIpKSB7Cisg ICAgICAgICAgICBpZihlLnRhZ05hbWUoKSA9PSBDQU5WQVNQUk9KRUNUSU9OQ09MT1IpIHsKKyAg ICAgICAgICAgICAgICBpZiAoZS5oYXNBdHRyaWJ1dGUoQ09MT1JCWVRFREFUQSkpIHsKICAgICAg ICAgICAgICAgICAgICAgUUJ5dGVBcnJheSBjb2xvckRhdGEgPSBRQnl0ZUFycmF5Ojpmcm9tQmFz ZTY0KGUuYXR0cmlidXRlKCJDb2xvckRhdGEiKS50b0xhdGluMSgpKTsKICAgICAgICAgICAgICAg ICAgICAgS29Db2xvciBjb2xvcigoY29uc3QgcXVpbnQ4Kiljb2xvckRhdGEuZGF0YSgpLCBpbWFn ZS0+Y29sb3JTcGFjZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaW1hZ2UtPnNldERlZmF1bHRQ cm9qZWN0aW9uQ29sb3IoY29sb3IpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K IAorICAgICAgICAgICAgaWYoZS50YWdOYW1lKCk9PSBQUk9PRklOR1dBUk5JTkdDT0xPUikgewor ICAgICAgICAgICAgICAgIFFEb21Eb2N1bWVudCBkb207CisgICAgICAgICAgICAgICAgS29YbWw6 OmFzUURvbUVsZW1lbnQoZG9tLCBlKTsKKyAgICAgICAgICAgICAgICBRRG9tRWxlbWVudCBlcSA9 IGRvbS5maXJzdENoaWxkRWxlbWVudCgpOworICAgICAgICAgICAgICAgIHByb29maW5nQ29uZmln LT53YXJuaW5nQ29sb3IgPSBLb0NvbG9yOjpmcm9tWE1MKGVxLmZpcnN0Q2hpbGRFbGVtZW50KCks IEludGVnZXI4Qml0c0NvbG9yRGVwdGhJRC5pZCgpLCBRSGFzaDxRU3RyaW5nLCBRU3RyaW5nPigp KTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKGUudGFnTmFtZSgpLnRvTG93ZXIo KSA9PSAiYW5pbWF0aW9uIikgewogICAgICAgICAgICAgICAgIGxvYWRBbmltYXRpb25NZXRhZGF0 YShlLCBpbWFnZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICBpbWFnZS0+ c2V0UHJvb2ZpbmdDb25maWd1cmF0aW9uKHByb29maW5nQ29uZmlnKTsKKwogICAgICAgICBmb3Ig KGNoaWxkID0gZWxlbWVudC5sYXN0Q2hpbGQoKTsgIWNoaWxkLmlzTnVsbCgpOyBjaGlsZCA9IGNo aWxkLnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAgICBLb1htbEVsZW1lbnQgZSA9IGNo aWxkLnRvRWxlbWVudCgpOwogICAgICAgICAgICAgaWYoZS50YWdOYW1lKCkgPT0gImNvbXBvc2l0 aW9ucyIpIHsKQEAgLTMzNSw2ICszNjYsMjkgQEAgdm9pZCBLaXNLcmFMb2FkZXI6OmxvYWRCaW5h cnlEYXRhKEtvU3RvcmUgKiBzdG9yZSwgS2lzSW1hZ2VXU1AgaW1hZ2UsIGNvbnN0IFFTdHIKICAg ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KKyAgICAvL2xvYWQgdGhlIGVtYmVkIHByb29m aW5nIHByb2ZpbGUsIGl0IG9ubHkgbmVlZHMgdG8gYmUgbG9hZGVkIGludG8gS3JpdGEsIG5vdCBh c3NpZ25lZC4KKyAgICBsb2NhdGlvbiA9IGV4dGVybmFsID8gUVN0cmluZygpIDogdXJpOworICAg IGxvY2F0aW9uICs9IG1fZC0+aW1hZ2VOYW1lICsgSUNDX1BST09GSU5HX1BBVEg7CisgICAgaWYg KHN0b3JlLT5oYXNGaWxlKGxvY2F0aW9uKSkgeworICAgICAgICBpZiAoc3RvcmUtPm9wZW4obG9j YXRpb24pKSB7CisgICAgICAgICAgICBRQnl0ZUFycmF5IHByb29maW5nRGF0YTsKKyAgICAgICAg ICAgIHByb29maW5nRGF0YS5yZXNpemUoc3RvcmUtPnNpemUoKSk7CisgICAgICAgICAgICBib29s IHByb29maW5nUHJvZmlsZVJlcyA9IChzdG9yZS0+cmVhZChwcm9vZmluZ0RhdGEuZGF0YSgpLCBz dG9yZS0+c2l6ZSgpKT4tMSk7CisgICAgICAgICAgICBzdG9yZS0+Y2xvc2UoKTsKKyAgICAgICAg ICAgIGlmIChwcm9vZmluZ1Byb2ZpbGVSZXMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgY29uc3QgS29Db2xvclByb2ZpbGUgKnByb29maW5nUHJvZmlsZSA9IEtvQ29sb3JTcGFjZVJl Z2lzdHJ5OjppbnN0YW5jZSgpLT5jcmVhdGVDb2xvclByb2ZpbGUoaW1hZ2UtPnByb29maW5nQ29u ZmlndXJhdGlvbigpLT5wcm9vZmluZ01vZGVsLCBpbWFnZS0+cHJvb2ZpbmdDb25maWd1cmF0aW9u KCktPnByb29maW5nRGVwdGgsIHByb29maW5nRGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKHBy b29maW5nUHJvZmlsZS0+dmFsaWQoKSl7CisKKyAgICAgICAgICAgICAgICAgICAgLy9pZiAoS29D b2xvclNwYWNlRW5naW5lUmVnaXN0cnk6Omluc3RhbmNlKCktPmdldCgiaWNjIikpIHsKKyAgICAg ICAgICAgICAgICAgICAgLy8gICAgS29Db2xvclNwYWNlRW5naW5lUmVnaXN0cnk6Omluc3RhbmNl KCktPmdldCgiaWNjIiktPmFkZFByb2ZpbGUocHJvb2ZpbmdQcm9maWxlLT5maWxlTmFtZSgpKTsK KyAgICAgICAgICAgICAgICAgICAgLy99CisgICAgICAgICAgICAgICAgICAgIEtvQ29sb3JTcGFj ZVJlZ2lzdHJ5OjppbnN0YW5jZSgpLT5hZGRQcm9maWxlKHByb29maW5nUHJvZmlsZSk7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCiAKICAgICAv LyBMb2FkIHRoZSBsYXllcnMgZGF0YTogaWYgdGhlcmUgaXMgYSBwcm9maWxlIGFzc29jaWF0ZWQg d2l0aCBhIGxheWVyIGl0IHdpbGwgYmUgc2V0IG5vdy4KICAgICBLaXNLcmFMb2FkVmlzaXRvciB2 aXNpdG9yKGltYWdlLCBzdG9yZSwgbV9kLT5sYXllckZpbGVuYW1lcywgbV9kLT5pbWFnZU5hbWUs IG1fZC0+c3ludGF4VmVyc2lvbik7CmRpZmYgLS1naXQgYS9saWJzL3VpL2tyYS9raXNfa3JhX3Nh dmVyLmNwcCBiL2xpYnMvdWkva3JhL2tpc19rcmFfc2F2ZXIuY3BwCmluZGV4IGY1ZGZhY2QuLmVh NWYyZTYgMTAwNjQ0Ci0tLSBhL2xpYnMvdWkva3JhL2tpc19rcmFfc2F2ZXIuY3BwCisrKyBiL2xp YnMvdWkva3JhL2tpc19rcmFfc2F2ZXIuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAi a2lzX2RvbV91dGlscy5oIgogI2luY2x1ZGUgImtpc19ncmlkX2NvbmZpZy5oIgogI2luY2x1ZGUg Imtpc19ndWlkZXNfY29uZmlnLmgiCisjaW5jbHVkZSAiS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9u LmgiCiAKIAogdXNpbmcgbmFtZXNwYWNlIEtSQTsKQEAgLTEwMiw2ICsxMDMsMTIgQEAgUURvbUVs ZW1lbnQgS2lzS3JhU2F2ZXI6OnNhdmVYTUwoUURvbURvY3VtZW50JiBkb2MsICBLaXNJbWFnZVdT UCBpbWFnZSkKICAgICB9CiAgICAgaW1hZ2VFbGVtZW50LnNldEF0dHJpYnV0ZShYX1JFU09MVVRJ T04sIEtpc0RvbVV0aWxzOjp0b1N0cmluZyhpbWFnZS0+eFJlcygpKjcyLjApKTsKICAgICBpbWFn ZUVsZW1lbnQuc2V0QXR0cmlidXRlKFlfUkVTT0xVVElPTiwgS2lzRG9tVXRpbHM6OnRvU3RyaW5n KGltYWdlLT55UmVzKCkqNzIuMCkpOworICAgIC8vbm93IHRoZSBwcm9vZmluZyBvcHRpb25zOgor ICAgIGltYWdlRWxlbWVudC5zZXRBdHRyaWJ1dGUoUFJPT0ZJTkdQUk9GSUxFTkFNRSwgS2lzRG9t VXRpbHM6OnRvU3RyaW5nKGltYWdlLT5wcm9vZmluZ0NvbmZpZ3VyYXRpb24oKS0+cHJvb2ZpbmdQ cm9maWxlKSk7CisgICAgaW1hZ2VFbGVtZW50LnNldEF0dHJpYnV0ZShQUk9PRklOR01PREVMLCBL aXNEb21VdGlsczo6dG9TdHJpbmcoaW1hZ2UtPnByb29maW5nQ29uZmlndXJhdGlvbigpLT5wcm9v ZmluZ01vZGVsKSk7CisgICAgaW1hZ2VFbGVtZW50LnNldEF0dHJpYnV0ZShQUk9PRklOR0RFUFRI LCBLaXNEb21VdGlsczo6dG9TdHJpbmcoaW1hZ2UtPnByb29maW5nQ29uZmlndXJhdGlvbigpLT5w cm9vZmluZ0RlcHRoKSk7CisgICAgaW1hZ2VFbGVtZW50LnNldEF0dHJpYnV0ZShQUk9PRklOR0lO VEVOVCwgS2lzRG9tVXRpbHM6OnRvU3RyaW5nKGltYWdlLT5wcm9vZmluZ0NvbmZpZ3VyYXRpb24o KS0+aW50ZW50KSk7CisgICAgaW1hZ2VFbGVtZW50LnNldEF0dHJpYnV0ZShQUk9PRklOR0FEQVBU QVRJT05TVEFURSwgS2lzRG9tVXRpbHM6OnRvU3RyaW5nKGltYWdlLT5wcm9vZmluZ0NvbmZpZ3Vy YXRpb24oKS0+YWRhcHRhdGlvblN0YXRlKSk7CiAKICAgICBxdWludDMyIGNvdW50ID0gMTsgLy8g V2UgZG9uJ3Qgc2F2ZSB0aGUgcm9vdCBsYXllciwgYnV0IGl0IGRvZXMgY291bnQKICAgICBLaXNT YXZlWG1sVmlzaXRvciB2aXNpdG9yKGRvYywgaW1hZ2VFbGVtZW50LCBjb3VudCwgbV9kLT5kb2Mt PnVybCgpLnRvTG9jYWxGaWxlKCksIHRydWUpOwpAQCAtMTE0LDYgKzEyMSw3IEBAIFFEb21FbGVt ZW50IEtpc0tyYVNhdmVyOjpzYXZlWE1MKFFEb21Eb2N1bWVudCYgZG9jLCAgS2lzSW1hZ2VXU1Ag aW1hZ2UpCiAgICAgbV9kLT5rZXlmcmFtZUZpbGVuYW1lcyA9IHZpc2l0b3Iua2V5ZnJhbWVGaWxl TmFtZXMoKTsKIAogICAgIHNhdmVCYWNrZ3JvdW5kQ29sb3IoZG9jLCBpbWFnZUVsZW1lbnQsIGlt YWdlKTsKKyAgICBzYXZlV2FybmluZ0NvbG9yKGRvYywgaW1hZ2VFbGVtZW50LCBpbWFnZSk7CiAg ICAgc2F2ZUNvbXBvc2l0aW9ucyhkb2MsIGltYWdlRWxlbWVudCwgaW1hZ2UpOwogICAgIHNhdmVB c3Npc3RhbnRzTGlzdChkb2MsaW1hZ2VFbGVtZW50KTsKICAgICBzYXZlR3JpZChkb2MsaW1hZ2VF bGVtZW50KTsKQEAgLTIyNSw2ICsyMzMsMjYgQEAgYm9vbCBLaXNLcmFTYXZlcjo6c2F2ZUJpbmFy eURhdGEoS29TdG9yZSogc3RvcmUsIEtpc0ltYWdlV1NQIGltYWdlLCBjb25zdCBRU3RyaW4KICAg ICAgICAgfQogICAgIH0KIAorICAgIC8vVGhpcydsbCBlbWJlZCB0aGUgcHJvZmlsZSB1c2VkIGZv ciBwcm9vZmluZyBpbnRvIHRoZSBrcmEgZmlsZS4KKyAgICBpZiAoaW1hZ2UtPnByb29maW5nQ29u ZmlndXJhdGlvbigpKSB7CisgICAgICAgIGNvbnN0IEtvQ29sb3JQcm9maWxlICpwcm9vZmluZ1By b2ZpbGUgPSBLb0NvbG9yU3BhY2VSZWdpc3RyeTo6aW5zdGFuY2UoKS0+cHJvZmlsZUJ5TmFtZShp bWFnZS0+cHJvb2ZpbmdDb25maWd1cmF0aW9uKCktPnByb29maW5nUHJvZmlsZSk7CisgICAgICAg IGlmIChwcm9vZmluZ1Byb2ZpbGUgJiYgcHJvb2ZpbmdQcm9maWxlLT52YWxpZCgpKSB7CisgICAg ICAgICAgICBRQnl0ZUFycmF5IHByb29maW5nUHJvZmlsZVJhdyA9IHByb29maW5nUHJvZmlsZS0+ cmF3RGF0YSgpOworICAgICAgICAgICAgaWYgKCFwcm9vZmluZ1Byb2ZpbGVSYXcuaXNFbXB0eSgp KSB7CisgICAgICAgICAgICAgICAgYW5ub3RhdGlvbiA9IG5ldyBLaXNBbm5vdGF0aW9uKElDQ1BS T09GSU5HUFJPRklMRSwgcHJvb2ZpbmdQcm9maWxlLT5uYW1lKCksIHByb29maW5nUHJvZmlsZS0+ cmF3RGF0YSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYW5ub3Rh dGlvbikgeworICAgICAgICAgICAgbG9jYXRpb24gPSBleHRlcm5hbCA/IFFTdHJpbmcoKSA6IHVy aTsKKyAgICAgICAgICAgIGxvY2F0aW9uICs9IG1fZC0+aW1hZ2VOYW1lICsgSUNDX1BST09GSU5H X1BBVEg7CisgICAgICAgICAgICBpZiAoc3RvcmUtPm9wZW4obG9jYXRpb24pKSB7CisgICAgICAg ICAgICAgICAgc3RvcmUtPndyaXRlKGFubm90YXRpb24tPmFubm90YXRpb24oKSk7CisgICAgICAg ICAgICAgICAgc3RvcmUtPmNsb3NlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg IH0KKwogICAgIHsKICAgICAgICAgS2lzUFNETGF5ZXJTdHlsZUNvbGxlY3Rpb25SZXNvdXJjZSBj b2xsZWN0aW9uKCJub3QtbmV4aXN0cy5hc2wiKTsKICAgICAgICAgS0lTX0FTU0VSVF9SRUNPVkVS X05PT1AoIWNvbGxlY3Rpb24udmFsaWQoKSk7CkBAIC0yNjcsMTMgKzI5NSwyNSBAQCBRU3RyaW5n TGlzdCBLaXNLcmFTYXZlcjo6ZXJyb3JNZXNzYWdlcygpIGNvbnN0CiAKIHZvaWQgS2lzS3JhU2F2 ZXI6OnNhdmVCYWNrZ3JvdW5kQ29sb3IoUURvbURvY3VtZW50JiBkb2MsIFFEb21FbGVtZW50JiBl bGVtZW50LCBLaXNJbWFnZVdTUCBpbWFnZSkKIHsKLSAgICBRRG9tRWxlbWVudCBlID0gZG9jLmNy ZWF0ZUVsZW1lbnQoIlByb2plY3Rpb25CYWNrZ3JvdW5kQ29sb3IiKTsKKyAgICBRRG9tRWxlbWVu dCBlID0gZG9jLmNyZWF0ZUVsZW1lbnQoQ0FOVkFTUFJPSkVDVElPTkNPTE9SKTsKICAgICBLb0Nv bG9yIGNvbG9yID0gaW1hZ2UtPmRlZmF1bHRQcm9qZWN0aW9uQ29sb3IoKTsKICAgICBRQnl0ZUFy cmF5IGNvbG9yRGF0YSA9IFFCeXRlQXJyYXk6OmZyb21SYXdEYXRhKChjb25zdCBjaGFyKiljb2xv ci5kYXRhKCksIGNvbG9yLmNvbG9yU3BhY2UoKS0+cGl4ZWxTaXplKCkpOwotICAgIGUuc2V0QXR0 cmlidXRlKCJDb2xvckRhdGEiLCBRU3RyaW5nKGNvbG9yRGF0YS50b0Jhc2U2NCgpKSk7CisgICAg ZS5zZXRBdHRyaWJ1dGUoQ09MT1JCWVRFREFUQSwgUVN0cmluZyhjb2xvckRhdGEudG9CYXNlNjQo KSkpOwogICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZSk7CiB9CiAKK3ZvaWQgS2lzS3JhU2F2ZXI6 OnNhdmVXYXJuaW5nQ29sb3IoUURvbURvY3VtZW50JiBkb2MsIFFEb21FbGVtZW50JiBlbGVtZW50 LCBLaXNJbWFnZVdTUCBpbWFnZSkKK3sKKyAgICBpZiAoaW1hZ2UtPnByb29maW5nQ29uZmlndXJh dGlvbigpKSB7CisgICAgICAgIFFEb21FbGVtZW50IGUgPSBkb2MuY3JlYXRlRWxlbWVudChQUk9P RklOR1dBUk5JTkdDT0xPUik7CisgICAgICAgIEtvQ29sb3IgY29sb3IgPSBpbWFnZS0+cHJvb2Zp bmdDb25maWd1cmF0aW9uKCktPndhcm5pbmdDb2xvcjsKKyAgICAgICAgY29sb3IudG9YTUwoZG9j LCBlKTsKKyAgICAgICAgLy9RQnl0ZUFycmF5IGNvbG9yRGF0YSA9IFFCeXRlQXJyYXk6OmZyb21S YXdEYXRhKChjb25zdCBjaGFyKiljb2xvci5kYXRhKCksIGNvbG9yLmNvbG9yU3BhY2UoKS0+cGl4 ZWxTaXplKCkpOworICAgICAgICAvL2Uuc2V0QXR0cmlidXRlKCJDb2xvckRhdGEiLCBRU3RyaW5n KGNvbG9yRGF0YS50b0Jhc2U2NCgpKSk7CisgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZSk7 CisgICAgfQorfQorCiB2b2lkIEtpc0tyYVNhdmVyOjpzYXZlQ29tcG9zaXRpb25zKFFEb21Eb2N1 bWVudCYgZG9jLCBRRG9tRWxlbWVudCYgZWxlbWVudCwgS2lzSW1hZ2VXU1AgaW1hZ2UpCiB7CiAg ICAgaWYgKCFpbWFnZS0+Y29tcG9zaXRpb25zKCkuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9s aWJzL3VpL2tyYS9raXNfa3JhX3NhdmVyLmggYi9saWJzL3VpL2tyYS9raXNfa3JhX3NhdmVyLmgK aW5kZXggN2M5MTgwZi4uMmY4ZWY1YiAxMDA2NDQKLS0tIGEvbGlicy91aS9rcmEva2lzX2tyYV9z YXZlci5oCisrKyBiL2xpYnMvdWkva3JhL2tpc19rcmFfc2F2ZXIuaApAQCAtNDcsNiArNDcsNyBA QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzYXZlQmFja2dyb3VuZENvbG9yKFFEb21E b2N1bWVudCYgZG9jLCBRRG9tRWxlbWVudCYgZWxlbWVudCwgS2lzSW1hZ2VXU1AgaW1hZ2UpOwor ICAgIHZvaWQgc2F2ZVdhcm5pbmdDb2xvcihRRG9tRG9jdW1lbnQmIGRvYywgUURvbUVsZW1lbnQm IGVsZW1lbnQsIEtpc0ltYWdlV1NQIGltYWdlKTsKICAgICB2b2lkIHNhdmVDb21wb3NpdGlvbnMo UURvbURvY3VtZW50JiBkb2MsIFFEb21FbGVtZW50JiBlbGVtZW50LCBLaXNJbWFnZVdTUCBpbWFn ZSk7CiAgICAgYm9vbCBzYXZlQXNzaXN0YW50cyhLb1N0b3JlICpzdG9yZSxRU3RyaW5nIHVyaSwg Ym9vbCBleHRlcm5hbCk7CiAgICAgYm9vbCBzYXZlQXNzaXN0YW50c0xpc3QoUURvbURvY3VtZW50 JiBkb2MsIFFEb21FbGVtZW50JiBlbGVtZW50KTsKZGlmZiAtLWdpdCBhL2xpYnMvdWkva3JhL2tp c19rcmFfdGFncy5oIGIvbGlicy91aS9rcmEva2lzX2tyYV90YWdzLmgKaW5kZXggZWEzZmM3MS4u ZmMyN2E1OSAxMDA2NDQKLS0tIGEvbGlicy91aS9rcmEva2lzX2tyYV90YWdzLmgKKysrIGIvbGli cy91aS9rcmEva2lzX2tyYV90YWdzLmgKQEAgLTM3LDYgKzM3LDcgQEAgY29uc3QgUVN0cmluZyBT RVBBUkFUT1IgPSAiLyI7CiBjb25zdCBRU3RyaW5nIFNIQVBFX0xBWUVSX1BBVEggPSAiL3NoYXBl bGF5ZXJzLyI7CiBjb25zdCBRU3RyaW5nIEVYSUZfUEFUSCA9ICIvYW5ub3RhdGlvbnMvZXhpZiI7 CiBjb25zdCBRU3RyaW5nIElDQ19QQVRIID0gIi9hbm5vdGF0aW9ucy9pY2MiOworY29uc3QgUVN0 cmluZyBJQ0NfUFJPT0ZJTkdfUEFUSCA9ICIvYW5ub3RhdGlvbnMvcHJvb2ZpbmcvaWNjIjsKIGNv bnN0IFFTdHJpbmcgTEFZRVJfU1RZTEVTX1BBVEggPSAiL2Fubm90YXRpb25zL2xheWVyc3R5bGVz LmFzbCI7CiBjb25zdCBRU3RyaW5nIEFTU0lTVEFOVFNfUEFUSCA9ICIvYXNzaXN0YW50cy8iOwog Y29uc3QgUVN0cmluZyBMQVlFUl9QQVRIID0gIi9sYXllcnMvIjsKQEAgLTEwOSw2ICsxMTAsMTUg QEAgY29uc3QgUVN0cmluZyBBQ1RJVkUgPSAiYWN0aXZlIjsKIGNvbnN0IFFTdHJpbmcgTEFZRVJf U1RZTEVfVVVJRCA9ICJsYXllcnN0eWxlIjsKIGNvbnN0IFFTdHJpbmcgUEFTU19USFJPVUdIX01P REUgPSAicGFzc3Rocm91Z2giOwogY29uc3QgUVN0cmluZyBLRVlGUkFNRV9GSUxFID0gImtleWZy YW1lcyI7Citjb25zdCBRU3RyaW5nIFBST09GSU5HUFJPRklMRU5BTUUgPSAicHJvb2ZpbmctcHJv ZmlsZS1uYW1lIjsKK2NvbnN0IFFTdHJpbmcgUFJPT0ZJTkdNT0RFTCA9ICJwcm9vZmluZy1tb2Rl bCI7Citjb25zdCBRU3RyaW5nIFBST09GSU5HREVQVEggPSAicHJvb2ZpbmctZGVwdGgiOworY29u c3QgUVN0cmluZyBQUk9PRklOR0lOVEVOVCA9ICJwcm9vZmluZy1pbnRlbnQiOworY29uc3QgUVN0 cmluZyBQUk9PRklOR1dBUk5JTkdDT0xPUiA9IlByb29maW5nV2FybmluZ0NvbG9yIjsKK2NvbnN0 IFFTdHJpbmcgUFJPT0ZJTkdBREFQVEFUSU9OU1RBVEUgPSAicHJvb2ZpbmctYWRhcHRhdGlvbi1z dGF0ZSI7Citjb25zdCBRU3RyaW5nIElDQ1BST09GSU5HUFJPRklMRSA9ImljYy1wcm9vZmluZy1w cm9maWxlIjsKK2NvbnN0IFFTdHJpbmcgQ0FOVkFTUFJPSkVDVElPTkNPTE9SID0gIlByb2plY3Rp b25CYWNrZ3JvdW5kQ29sb3IiOworY29uc3QgUVN0cmluZyBDT0xPUkJZVEVEQVRBID0gIkNvbG9y RGF0YSI7CiB9CiAKIApkaWZmIC0tZ2l0IGEvbGlicy91aS9vcGVuZ2wva2lzX29wZW5nbF9jYW52 YXMyLmNwcCBiL2xpYnMvdWkvb3BlbmdsL2tpc19vcGVuZ2xfY2FudmFzMi5jcHAKaW5kZXggOTEx NDljMy4uNGQwMDNkZCAxMDA2NDQKLS0tIGEvbGlicy91aS9vcGVuZ2wva2lzX29wZW5nbF9jYW52 YXMyLmNwcAorKysgYi9saWJzL3VpL29wZW5nbC9raXNfb3BlbmdsX2NhbnZhczIuY3BwCkBAIC05 NCw2ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIEtpc0Rpc3BsYXlGaWx0ZXIqIGRpc3BsYXlGaWx0 ZXI7CiAgICAgS2lzT3BlbkdMOjpGaWx0ZXJNb2RlIGZpbHRlck1vZGU7CisgICAgYm9vbCBwcm9v ZmluZ0NvbmZpZ0lzVXBkYXRlZD1mYWxzZTsKIAogICAgIEdMc3luYyBnbFN5bmNPYmplY3R7MH07 CiAKQEAgLTIxNyw2ICsyMTgsNyBAQCB2b2lkIEtpc09wZW5HTENhbnZhczI6OmluaXRpYWxpemVH TCgpCiAgICAgaW5pdGlhbGl6ZU9wZW5HTEZ1bmN0aW9ucygpOwogCiAgICAgS2lzQ29uZmlnIGNm ZzsKKyAgICBkLT5vcGVuR0xJbWFnZVRleHR1cmVzLT5zZXRQcm9vZmluZ0NvbmZpZyhjYW52YXMo KS0+cHJvb2ZpbmdDb25maWd1cmF0aW9uKCkpOwogICAgIGQtPm9wZW5HTEltYWdlVGV4dHVyZXMt PmluaXRHTChjb250ZXh0KCktPmZ1bmN0aW9ucygpKTsKICAgICBkLT5vcGVuR0xJbWFnZVRleHR1 cmVzLT5nZW5lcmF0ZUNoZWNrZXJUZXh0dXJlKGNyZWF0ZUNoZWNrZXJzSW1hZ2UoY2ZnLmNoZWNr U2l6ZSgpKSk7CiAgICAgaW5pdGlhbGl6ZUNoZWNrZXJTaGFkZXIoKTsKQEAgLTc4OCw2ICs3OTAs MTAgQEAgdm9pZCBLaXNPcGVuR0xDYW52YXMyOjpmaW5pc2hSZXNpemluZ0ltYWdlKHFpbnQzMiB3 LCBxaW50MzIgaCkKIEtpc1VwZGF0ZUluZm9TUCBLaXNPcGVuR0xDYW52YXMyOjpzdGFydFVwZGF0 ZUNhbnZhc1Byb2plY3Rpb24oY29uc3QgUVJlY3QgJiByYywgY29uc3QgUUJpdEFycmF5ICZjaGFu bmVsRmxhZ3MpCiB7CiAgICAgZC0+b3BlbkdMSW1hZ2VUZXh0dXJlcy0+c2V0Q2hhbm5lbEZsYWdz KGNoYW5uZWxGbGFncyk7CisgICAgaWYgKGNhbnZhcygpLT5wcm9vZmluZ0NvbmZpZ1VwZGF0ZWQo KSkgeworICAgICAgICBkLT5vcGVuR0xJbWFnZVRleHR1cmVzLT5zZXRQcm9vZmluZ0NvbmZpZyhj YW52YXMoKS0+cHJvb2ZpbmdDb25maWd1cmF0aW9uKCkpOworICAgICAgICBjYW52YXMoKS0+c2V0 UHJvb2ZpbmdDb25maWdVcGRhdGVkKGZhbHNlKTsKKyAgICB9CiAgICAgcmV0dXJuIGQtPm9wZW5H TEltYWdlVGV4dHVyZXMtPnVwZGF0ZUNhY2hlKHJjKTsKIH0KIApkaWZmIC0tZ2l0IGEvbGlicy91 aS9vcGVuZ2wva2lzX29wZW5nbF9pbWFnZV90ZXh0dXJlcy5jcHAgYi9saWJzL3VpL29wZW5nbC9r aXNfb3BlbmdsX2ltYWdlX3RleHR1cmVzLmNwcAppbmRleCA4MzVkNDFlLi5mYTBjMjVmIDEwMDY0 NAotLS0gYS9saWJzL3VpL29wZW5nbC9raXNfb3BlbmdsX2ltYWdlX3RleHR1cmVzLmNwcAorKysg Yi9saWJzL3VpL29wZW5nbC9raXNfb3BlbmdsX2ltYWdlX3RleHR1cmVzLmNwcApAQCAtNTEsNiAr NTEsOSBAQCBLaXNPcGVuR0xJbWFnZVRleHR1cmVzOjpJbWFnZVRleHR1cmVzTWFwIEtpc09wZW5H TEltYWdlVGV4dHVyZXM6OmltYWdlVGV4dHVyZXNNYQogS2lzT3BlbkdMSW1hZ2VUZXh0dXJlczo6 S2lzT3BlbkdMSW1hZ2VUZXh0dXJlcygpCiAgICAgOiBtX2ltYWdlKDApCiAgICAgLCBtX21vbml0 b3JQcm9maWxlKDApCisgICAgLCBtX3Byb29maW5nQ29uZmlnKDApCisgICAgLCBtX3Byb29maW5n VHJhbnNmb3JtKDApCisgICAgLCBtX2NyZWF0ZU5ld1Byb29maW5nVHJhbnNmb3JtKHRydWUpCiAg ICAgLCBtX3RpbGVzRGVzdGluYXRpb25Db2xvclNwYWNlKDApCiAgICAgLCBtX2ludGVybmFsQ29s b3JNYW5hZ2VtZW50QWN0aXZlKHRydWUpCiAgICAgLCBtX2NoZWNrZXJUZXh0dXJlKDApCkBAIC02 NSw3ICs2OCw2IEBAIEtpc09wZW5HTEltYWdlVGV4dHVyZXM6Oktpc09wZW5HTEltYWdlVGV4dHVy ZXMoKQogICAgIG1fY29udmVyc2lvbkZsYWdzID0gS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1h dGlvbjo6SGlnaFF1YWxpdHk7CiAgICAgaWYgKGNmZy51c2VCbGFja1BvaW50Q29tcGVuc2F0aW9u KCkpIG1fY29udmVyc2lvbkZsYWdzIHw9IEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246 OkJsYWNrcG9pbnRDb21wZW5zYXRpb247CiAgICAgaWYgKCFjZmcuYWxsb3dMQ01TT3B0aW1pemF0 aW9uKCkpIG1fY29udmVyc2lvbkZsYWdzIHw9IEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRp b246Ok5vT3B0aW1pemF0aW9uOwotCiAgICAgbV91c2VPY2lvID0gY2ZnLnVzZU9jaW8oKTsKIH0K IApAQCAtNzcsNyArNzksMTAgQEAgS2lzT3BlbkdMSW1hZ2VUZXh0dXJlczo6S2lzT3BlbkdMSW1h Z2VUZXh0dXJlcyhLaXNJbWFnZVdTUCBpbWFnZSwKICAgICAsIG1fbW9uaXRvclByb2ZpbGUobW9u aXRvclByb2ZpbGUpCiAgICAgLCBtX3JlbmRlcmluZ0ludGVudChyZW5kZXJpbmdJbnRlbnQpCiAg ICAgLCBtX2NvbnZlcnNpb25GbGFncyhjb252ZXJzaW9uRmxhZ3MpCisgICAgLCBtX3Byb29maW5n Q29uZmlnKDApCisgICAgLCBtX3Byb29maW5nVHJhbnNmb3JtKDApCiAgICAgLCBtX3RpbGVzRGVz dGluYXRpb25Db2xvclNwYWNlKDApCisgICAgLCBtX2NyZWF0ZU5ld1Byb29maW5nVHJhbnNmb3Jt KHRydWUpCiAgICAgLCBtX2ludGVybmFsQ29sb3JNYW5hZ2VtZW50QWN0aXZlKHRydWUpCiAgICAg LCBtX2NoZWNrZXJUZXh0dXJlKDApCiAgICAgLCBtX2dsRnVuY3MoMCkKQEAgLTMyNCw4ICszMjks MTkgQEAgS2lzT3BlbkdMVXBkYXRlSW5mb1NQIEtpc09wZW5HTEltYWdlVGV4dHVyZXM6OnVwZGF0 ZUNhY2hlSW1wbChjb25zdCBRUmVjdCYgcmVjdCwKICAgICAgICAgICAgIGlmICh0aWxlSW5mby0+ dmFsaWQoKSkgewogICAgICAgICAgICAgICAgIHRpbGVJbmZvLT5yZXRyaWV2ZURhdGEobV9pbWFn ZSwgY2hhbm5lbEZsYWdzLCBtX29ubHlPbmVDaGFubmVsU2VsZWN0ZWQsIG1fc2VsZWN0ZWRDaGFu bmVsSW5kZXgpOwogCisgICAgICAgICAgICAgICAgLy9jcmVhdGUgdHJhbnNmb3JtCisgICAgICAg ICAgICAgICAgaWYgKG1fY3JlYXRlTmV3UHJvb2ZpbmdUcmFuc2Zvcm0pIHsKKyAgICAgICAgICAg ICAgICAgICAgY29uc3QgS29Db2xvclNwYWNlICpwcm9vZmluZ1NwYWNlID0gS29Db2xvclNwYWNl UmVnaXN0cnk6Omluc3RhbmNlKCktPmNvbG9yU3BhY2UobV9wcm9vZmluZ0NvbmZpZy0+cHJvb2Zp bmdNb2RlbCxtX3Byb29maW5nQ29uZmlnLT5wcm9vZmluZ0RlcHRoLG1fcHJvb2ZpbmdDb25maWct PnByb29maW5nUHJvZmlsZSk7CisgICAgICAgICAgICAgICAgICAgIG1fcHJvb2ZpbmdUcmFuc2Zv cm0gPSB0aWxlSW5mby0+Z2VuZXJhdGVQcm9vZmluZ1RyYW5zZm9ybShkc3RDUywgcHJvb2ZpbmdT cGFjZSwgbV9yZW5kZXJpbmdJbnRlbnQsIG1fcHJvb2ZpbmdDb25maWctPmludGVudCwgbV9wcm9v ZmluZ0NvbmZpZy0+Y29udmVyc2lvbkZsYWdzLCBtX3Byb29maW5nQ29uZmlnLT53YXJuaW5nQ29s b3IsIG1fcHJvb2ZpbmdDb25maWctPmFkYXB0YXRpb25TdGF0ZSk7CisgICAgICAgICAgICAgICAg ICAgIG1fY3JlYXRlTmV3UHJvb2ZpbmdUcmFuc2Zvcm0gPSBmYWxzZTsKKyAgICAgICAgICAgICAg ICB9CisKICAgICAgICAgICAgICAgICBpZiAoY29udmVydENvbG9yU3BhY2UpIHsKLSAgICAgICAg ICAgICAgICAgICAgdGlsZUluZm8tPmNvbnZlcnRUbyhkc3RDUywgbV9yZW5kZXJpbmdJbnRlbnQs IG1fY29udmVyc2lvbkZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fcHJvb2ZpbmdD b25maWcgJiYgbV9wcm9vZmluZ1RyYW5zZm9ybSAmJiBtX3Byb29maW5nQ29uZmlnLT5jb252ZXJz aW9uRmxhZ3MudGVzdEZsYWcoS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6U29mdFBy b29maW5nKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGlsZUluZm8tPnByb29mVG8oZHN0 Q1MsIG1fcHJvb2ZpbmdDb25maWctPmNvbnZlcnNpb25GbGFncywgbV9wcm9vZmluZ1RyYW5zZm9y bSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg ICB0aWxlSW5mby0+Y29udmVydFRvKGRzdENTLCBtX3JlbmRlcmluZ0ludGVudCwgbV9jb252ZXJz aW9uRmxhZ3MpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCiAg ICAgICAgICAgICAgICAgaW5mby0+dGlsZUxpc3QuYXBwZW5kKHRpbGVJbmZvKTsKQEAgLTQ0OSw2 ICs0NjUsMTIgQEAgdm9pZCBLaXNPcGVuR0xJbWFnZVRleHR1cmVzOjpzZXRDaGFubmVsRmxhZ3Mo Y29uc3QgUUJpdEFycmF5ICZjaGFubmVsRmxhZ3MpCiAgICAgbV9vbmx5T25lQ2hhbm5lbFNlbGVj dGVkID0gKHNlbGVjdGVkQ2hhbm5lbHMgPT0gMSk7CiB9CiAKK3ZvaWQgS2lzT3BlbkdMSW1hZ2VU ZXh0dXJlczo6c2V0UHJvb2ZpbmdDb25maWcoS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uICpwcm9v ZmluZ0NvbmZpZykKK3sKKyAgICBtX3Byb29maW5nQ29uZmlnID0gcHJvb2ZpbmdDb25maWc7Cisg ICAgbV9jcmVhdGVOZXdQcm9vZmluZ1RyYW5zZm9ybSA9IHRydWU7Cit9CisKIHZvaWQgS2lzT3Bl bkdMSW1hZ2VUZXh0dXJlczo6Z2V0VGV4dHVyZVNpemUoS2lzR0xUZXh0dXJlc0luZm8gKnRleHR1 cmVzSW5mbykKIHsKICAgICBLaXNDb25maWcgY2ZnOwpkaWZmIC0tZ2l0IGEvbGlicy91aS9vcGVu Z2wva2lzX29wZW5nbF9pbWFnZV90ZXh0dXJlcy5oIGIvbGlicy91aS9vcGVuZ2wva2lzX29wZW5n bF9pbWFnZV90ZXh0dXJlcy5oCmluZGV4IGQ2ODEzNjYuLmIyM2U5YWIgMTAwNjQ0Ci0tLSBhL2xp YnMvdWkvb3BlbmdsL2tpc19vcGVuZ2xfaW1hZ2VfdGV4dHVyZXMuaAorKysgYi9saWJzL3VpL29w ZW5nbC9raXNfb3BlbmdsX2ltYWdlX3RleHR1cmVzLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lu Y2x1ZGUgImNhbnZhcy9raXNfdXBkYXRlX2luZm8uaCIKICNpbmNsdWRlICJvcGVuZ2wva2lzX3Rl eHR1cmVfdGlsZS5oIgorI2luY2x1ZGUgIktpc1Byb29maW5nQ29uZmlndXJhdGlvbi5oIgorI2lu Y2x1ZGUgPEtvQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbi5oPgogCiBjbGFz cyBLaXNPcGVuR0xJbWFnZVRleHR1cmVzOwogY2xhc3MgUU9wZW5HTEZ1bmN0aW9uczsKQEAgLTc5 LDYgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdEdMKFFPcGVuR0xGdW5jdGlvbnMgKmYp OwogCiAgICAgdm9pZCBzZXRDaGFubmVsRmxhZ3MoY29uc3QgUUJpdEFycmF5ICZjaGFubmVsRmxh Z3MpOworICAgIHZvaWQgc2V0UHJvb2ZpbmdDb25maWcoS2lzUHJvb2ZpbmdDb25maWd1cmF0aW9u Kik7CiAKICAgICBib29sIGludGVybmFsQ29sb3JNYW5hZ2VtZW50QWN0aXZlKCkgY29uc3Q7CiAg ICAgYm9vbCBzZXRJbnRlcm5hbENvbG9yTWFuYWdlbWVudEFjdGl2ZShib29sIHZhbHVlKTsKQEAg LTE2MCw2ICsxNjMsMTAgQEAgcHJpdmF0ZToKICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9y bWF0aW9uOjpJbnRlbnQgbV9yZW5kZXJpbmdJbnRlbnQ7CiAgICAgS29Db2xvckNvbnZlcnNpb25U cmFuc2Zvcm1hdGlvbjo6Q29udmVyc2lvbkZsYWdzIG1fY29udmVyc2lvbkZsYWdzOwogCisgICAg S2lzUHJvb2ZpbmdDb25maWd1cmF0aW9uICptX3Byb29maW5nQ29uZmlnOworICAgIEtvQ29sb3JD b252ZXJzaW9uVHJhbnNmb3JtYXRpb24gKm1fcHJvb2ZpbmdUcmFuc2Zvcm07CisgICAgYm9vbCBt X2NyZWF0ZU5ld1Byb29maW5nVHJhbnNmb3JtOworCiAgICAgLyoqCiAgICAgICogSWYgdGhlIGRl c3RpbmF0aW9uIGNvbG9yIHNwYWNlIGNvaW5jaWRlcyB3aXRoIHRoZSBvbmUgb2YgdGhlIGltYWdl LAogICAgICAqIHRoZW4gZWZmZWN0aXZlbHksIHRoZXJlIGlzIG5vIGNvbnZlcnNpb24gaGFwcGVu cy4gVGhhdCBpcyB1c2VkCmRpZmYgLS1naXQgYS9saWJzL3VpL29wZW5nbC9raXNfdGV4dHVyZV90 aWxlX3VwZGF0ZV9pbmZvLmggYi9saWJzL3VpL29wZW5nbC9raXNfdGV4dHVyZV90aWxlX3VwZGF0 ZV9pbmZvLmgKaW5kZXggNmIzODQxZS4uOGEwYTE3NCAxMDA2NDQKLS0tIGEvbGlicy91aS9vcGVu Z2wva2lzX3RleHR1cmVfdGlsZV91cGRhdGVfaW5mby5oCisrKyBiL2xpYnMvdWkvb3BlbmdsL2tp c190ZXh0dXJlX3RpbGVfdXBkYXRlX2luZm8uaApAQCAtMjA5LDYgKzIwOSwzNSBAQCBwdWJsaWM6 CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHByb29mVG8oY29uc3QgS29Db2xvclNwYWNl KiBkc3RDUywKKyAgICAgICAgICAgICAgICAgICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0 aW9uOjpDb252ZXJzaW9uRmxhZ3MgY29udmVyc2lvbkZsYWdzLAorICAgICAgICAgICAgICAgICAg IEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24gKnByb29maW5nVHJhbnNmb3JtKQorICAg IHsKKyAgICAgICAgaWYgKGRzdENTID09IG1fcGF0Y2hDb2xvclNwYWNlICYmIGNvbnZlcnNpb25G bGFncyA9PSBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpFbXB0eSkgcmV0dXJuOwor CisgICAgICAgIGlmIChtX3BhdGNoUmVjdC5pc1ZhbGlkKCkpIHsKKyAgICAgICAgICAgIGNvbnN0 IHFpbnQzMiBudW1QaXhlbHMgPSBtX3BhdGNoUmVjdC53aWR0aCgpICogbV9wYXRjaFJlY3QuaGVp Z2h0KCk7CisgICAgICAgICAgICBjb25zdCBxdWludDMyIGNvbnZlcnNpb25DYWNoZUxlbmd0aCA9 IG51bVBpeGVscyAqIGRzdENTLT5waXhlbFNpemUoKTsKKworICAgICAgICAgICAgbV9jb252ZXJz aW9uQ2FjaGUuZW5zdXJlTm90U21hbGxlcihjb252ZXJzaW9uQ2FjaGVMZW5ndGgpOworICAgICAg ICAgICAgbV9wYXRjaENvbG9yU3BhY2UtPnByb29mUGl4ZWxzVG8obV9wYXRjaFBpeGVscy5kYXRh KCksIG1fY29udmVyc2lvbkNhY2hlLmRhdGEoKSwgbnVtUGl4ZWxzLCBwcm9vZmluZ1RyYW5zZm9y bSk7CisKKyAgICAgICAgICAgIG1fcGF0Y2hDb2xvclNwYWNlID0gZHN0Q1M7CisgICAgICAgICAg ICBtX2NvbnZlcnNpb25DYWNoZS5zd2FwKG1fcGF0Y2hQaXhlbHMpOworICAgICAgICAgICAgbV9w YXRjaFBpeGVsc0xlbmd0aCA9IGNvbnZlcnNpb25DYWNoZUxlbmd0aDsKKyAgICAgICAgfQorICAg IH0KKworICAgIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24gKmdlbmVyYXRlUHJvb2Zp bmdUcmFuc2Zvcm0oY29uc3QgS29Db2xvclNwYWNlKiBkc3RDUywgY29uc3QgS29Db2xvclNwYWNl KiBwcm9vZmluZ1NwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkludGVudCBy ZW5kZXJpbmdJbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6SW50ZW50IHBy b29maW5nSW50ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkNvbnZlcnNpb25G bGFncyBjb252ZXJzaW9uRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgS29Db2xvciBnYW11dFdhcm5pbmcsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGFkYXB0YXRp b25TdGF0ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBtX3BhdGNoQ29sb3JTcGFjZS0+Y3JlYXRl UHJvb2ZpbmdUcmFuc2Zvcm0oZHN0Q1MsIHByb29maW5nU3BhY2UsIHJlbmRlcmluZ0ludGVudCwg cHJvb2ZpbmdJbnRlbnQsIGNvbnZlcnNpb25GbGFncywgZ2FtdXRXYXJuaW5nLmRhdGEoKSwgYWRh cHRhdGlvblN0YXRlKTsKKyAgICB9CisKICAgICBpbmxpbmUgcXVpbnQ4KiBkYXRhKCkgY29uc3Qg ewogICAgICAgICByZXR1cm4gbV9wYXRjaFBpeGVscy5kYXRhKCk7CiAgICAgfQpkaWZmIC0tZ2l0 IGEvcGx1Z2lucy9jb2xvci9sY21zMmVuZ2luZS9JY2NDb2xvclNwYWNlRW5naW5lLmNwcCBiL3Bs dWdpbnMvY29sb3IvbGNtczJlbmdpbmUvSWNjQ29sb3JTcGFjZUVuZ2luZS5jcHAKaW5kZXggY2U3 ZWMzMC4uN2ZlMGVkNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9jb2xvci9sY21zMmVuZ2luZS9JY2ND b2xvclNwYWNlRW5naW5lLmNwcAorKysgYi9wbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL0ljY0Nv bG9yU3BhY2VFbmdpbmUuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg ICAgICB8fCBzcmNDcy0+Y29sb3JEZXB0aElkKCkgPT0gSW50ZWdlcjE2Qml0c0NvbG9yRGVwdGhJ RCkgewogCiAgICAgICAgICAgICBpZiAoKHNyY1Byb2ZpbGUtPm5hbWUoKS5jb250YWlucyhRTGF0 aW4xU3RyaW5nKCJsaW5lYXIiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkgfHwKLSAgICAgICAgICAg ICAgICAgICAgZHN0UHJvZmlsZS0+bmFtZSgpLmNvbnRhaW5zKFFMYXRpbjFTdHJpbmcoImxpbmVh ciIpLCBRdDo6Q2FzZUluc2Vuc2l0aXZlKSkgJiYKKyAgICAgICAgICAgICAgICAgZHN0UHJvZmls ZS0+bmFtZSgpLmNvbnRhaW5zKFFMYXRpbjFTdHJpbmcoImxpbmVhciIpLCBRdDo6Q2FzZUluc2Vu c2l0aXZlKSkgJiYKICAgICAgICAgICAgICAgICAgICAgIWNvbnZlcnNpb25GbGFncy50ZXN0Rmxh ZyhLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpOb09wdGltaXphdGlvbikpIHsKICAg ICAgICAgICAgICAgICBjb252ZXJzaW9uRmxhZ3MgfD0gS29Db2xvckNvbnZlcnNpb25UcmFuc2Zv cm1hdGlvbjo6Tm9PcHRpbWl6YXRpb247CiAgICAgICAgICAgICB9CkBAIC03OSw3ICs3OSw4NiBA QCBwdWJsaWM6CiAgICAgICAgIHFpbnQzMiBkc3RQaXhlbFNpemUgPSBkc3RDb2xvclNwYWNlKCkt PnBpeGVsU2l6ZSgpOwogCiAgICAgICAgIGNtc0RvVHJhbnNmb3JtKG1fdHJhbnNmb3JtLCBjb25z dF9jYXN0PHF1aW50OCAqPihzcmMpLCBkc3QsIG51bVBpeGVscyk7CisgICAgICAgIC8vIExjbXMg ZG9lcyBub3RoaW5nIHRvIHRoZSBkZXN0aW5hdGlvbiBhbHBoYSBjaGFubmVsIHNvIHdlIG11c3Qg Y29udmVydCB0aGF0IG1hbnVhbGx5LgorICAgICAgICB3aGlsZSAobnVtUGl4ZWxzID4gMCkgewor ICAgICAgICAgICAgcXJlYWwgYWxwaGEgPSBzcmNDb2xvclNwYWNlKCktPm9wYWNpdHlGKHNyYyk7 CisgICAgICAgICAgICBkc3RDb2xvclNwYWNlKCktPnNldE9wYWNpdHkoZHN0LCBhbHBoYSwgMSk7 CisKKyAgICAgICAgICAgIHNyYyArPSBzcmNQaXhlbFNpemU7CisgICAgICAgICAgICBkc3QgKz0g ZHN0UGl4ZWxTaXplOworICAgICAgICAgICAgbnVtUGl4ZWxzLS07CisgICAgICAgIH0KKworICAg IH0KK3ByaXZhdGU6CisgICAgbXV0YWJsZSBjbXNIVFJBTlNGT1JNIG1fdHJhbnNmb3JtOworfTsK IAorY2xhc3MgS29MY21zQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbiA6IHB1 YmxpYyBLb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24KK3sKK3B1YmxpYzoK KyAgICBLb0xjbXNDb2xvclByb29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uKGNvbnN0IEtv Q29sb3JTcGFjZSAqc3JjQ3MsIHF1aW50MzIgc3JjQ29sb3JTcGFjZVR5cGUsIExjbXNDb2xvclBy b2ZpbGVDb250YWluZXIgKnNyY1Byb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBLb0NvbG9yU3BhY2UgKmRzdENzLCBxdWludDMyIGRz dENvbG9yU3BhY2VUeXBlLCBMY21zQ29sb3JQcm9maWxlQ29udGFpbmVyICpkc3RQcm9maWxlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS29D b2xvclNwYWNlICpwcm9vZmluZ1NwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSW50ZW50IHJlbmRlcmluZ0ludGVudCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVudCBwcm9vZmluZ0ludGVudCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnZlcnNp b25GbGFncyBjb252ZXJzaW9uRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBxdWludDggKmdhbXV0V2FybmluZywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBhZGFwdGF0aW9uU3RhdGUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg OiBLb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3JtYXRpb24oc3JjQ3MsIGRzdENzLCBw cm9vZmluZ1NwYWNlLCByZW5kZXJpbmdJbnRlbnQsIHByb29maW5nSW50ZW50LCBjb252ZXJzaW9u RmxhZ3MsIGdhbXV0V2FybmluZywgYWRhcHRhdGlvblN0YXRlKQorICAgICAgICAsIG1fdHJhbnNm b3JtKDApCisgICAgeworICAgICAgICBRX0FTU0VSVChzcmNDcyk7CisgICAgICAgIFFfQVNTRVJU KGRzdENzKTsKKyAgICAgICAgUV9BU1NFUlQocmVuZGVyaW5nSW50ZW50IDwgNCk7CisKKyAgICAg ICAgaWYgKHNyY0NzLT5jb2xvckRlcHRoSWQoKSA9PSBJbnRlZ2VyOEJpdHNDb2xvckRlcHRoSUQK KyAgICAgICAgICAgICAgICB8fCBzcmNDcy0+Y29sb3JEZXB0aElkKCkgPT0gSW50ZWdlcjE2Qml0 c0NvbG9yRGVwdGhJRCkgeworCisgICAgICAgICAgICBpZiAoKHNyY1Byb2ZpbGUtPm5hbWUoKS5j b250YWlucyhRTGF0aW4xU3RyaW5nKCJsaW5lYXIiKSwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkgfHwK KyAgICAgICAgICAgICAgICAgZHN0UHJvZmlsZS0+bmFtZSgpLmNvbnRhaW5zKFFMYXRpbjFTdHJp bmcoImxpbmVhciIpLCBRdDo6Q2FzZUluc2Vuc2l0aXZlKSkgJiYKKyAgICAgICAgICAgICAgICAg ICAgIWNvbnZlcnNpb25GbGFncy50ZXN0RmxhZyhLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0 aW9uOjpOb09wdGltaXphdGlvbikpIHsKKyAgICAgICAgICAgICAgICBjb252ZXJzaW9uRmxhZ3Mg fD0gS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6Tm9PcHRpbWl6YXRpb247CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBxdWludDE2IGFsYXJtW2Ntc01BWENIQU5O RUxTXTsvL3RoaXMgc2VlbXMgdG8gYmUgYmdyPz8/CisgICAgICAgIGFsYXJtWzBdID0gKGNtc1VJ bnQxNk51bWJlcilnYW11dFdhcm5pbmdbMl0qMjU2OworICAgICAgICBhbGFybVsxXSA9IChjbXNV SW50MTZOdW1iZXIpZ2FtdXRXYXJuaW5nWzFdKjI1NjsKKyAgICAgICAgYWxhcm1bMl0gPSAoY21z VUludDE2TnVtYmVyKWdhbXV0V2FybmluZ1swXSoyNTY7CisgICAgICAgIGNtc1NldEFsYXJtQ29k ZXMoYWxhcm0pOworICAgICAgICBjbXNTZXRBZGFwdGF0aW9uU3RhdGUoYWRhcHRhdGlvblN0YXRl KTsKKworICAgICAgICBtX3RyYW5zZm9ybSA9IGNtc0NyZWF0ZVByb29maW5nVHJhbnNmb3JtKHNy Y1Byb2ZpbGUtPmxjbXNQcm9maWxlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3JjQ29sb3JTcGFjZVR5cGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0UHJvZmlsZS0+bGNtc1Byb2ZpbGUoKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkc3RDb2xv clNwYWNlVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkeW5hbWljX2Nhc3Q8Y29uc3QgSWNjQ29sb3JQcm9maWxlICo+KHByb29maW5nU3BhY2Ut PnByb2ZpbGUoKSktPmFzTGNtcygpLT5sY21zUHJvZmlsZSgpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmluZ0ludGVudCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9vZmluZ0ludGVudCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJz aW9uRmxhZ3MpOworICAgICAgICBjbXNTZXRBZGFwdGF0aW9uU3RhdGUoMSk7CisKKyAgICAgICAg UV9BU1NFUlQobV90cmFuc2Zvcm0pOworICAgIH0KKworICAgIH5Lb0xjbXNDb2xvclByb29maW5n Q29udmVyc2lvblRyYW5zZm9ybWF0aW9uKCkKKyAgICB7CisgICAgICAgIGNtc0RlbGV0ZVRyYW5z Zm9ybShtX3RyYW5zZm9ybSk7CisgICAgfQorCitwdWJsaWM6CisKKyAgICB2aXJ0dWFsIHZvaWQg dHJhbnNmb3JtKGNvbnN0IHF1aW50OCAqc3JjLCBxdWludDggKmRzdCwgcWludDMyIG51bVBpeGVs cykgY29uc3QKKyAgICB7CisgICAgICAgIFFfQVNTRVJUKG1fdHJhbnNmb3JtKTsKKworICAgICAg ICBxaW50MzIgc3JjUGl4ZWxTaXplID0gc3JjQ29sb3JTcGFjZSgpLT5waXhlbFNpemUoKTsKKyAg ICAgICAgcWludDMyIGRzdFBpeGVsU2l6ZSA9IGRzdENvbG9yU3BhY2UoKS0+cGl4ZWxTaXplKCk7 CisgICAgICAgIC8vY21zU2V0QWRhcHRhdGlvblN0YXRlKDApOworCisgICAgICAgIGNtc0RvVHJh bnNmb3JtKG1fdHJhbnNmb3JtLCBjb25zdF9jYXN0PHF1aW50OCAqPihzcmMpLCBkc3QsIG51bVBp eGVscyk7CiAgICAgICAgIC8vIExjbXMgZG9lcyBub3RoaW5nIHRvIHRoZSBkZXN0aW5hdGlvbiBh bHBoYSBjaGFubmVsIHNvIHdlIG11c3QgY29udmVydCB0aGF0IG1hbnVhbGx5LgogICAgICAgICB3 aGlsZSAobnVtUGl4ZWxzID4gMCkgewogICAgICAgICAgICAgcXJlYWwgYWxwaGEgPSBzcmNDb2xv clNwYWNlKCktPm9wYWNpdHlGKHNyYyk7CkBAIC04OSw2ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAg ICAgICAgICBkc3QgKz0gZHN0UGl4ZWxTaXplOwogICAgICAgICAgICAgbnVtUGl4ZWxzLS07CiAg ICAgICAgIH0KKyAgICAgICAgLy9jbXNTZXRBZGFwdGF0aW9uU3RhdGUoMSk7CiAKICAgICB9CiBw cml2YXRlOgpAQCAtMTQ4LDE5ICsyMjgsMzkgQEAgdm9pZCBJY2NDb2xvclNwYWNlRW5naW5lOjpy ZW1vdmVQcm9maWxlKGNvbnN0IFFTdHJpbmcgJmZpbGVuYW1lKQogfQogCiBLb0NvbG9yQ29udmVy c2lvblRyYW5zZm9ybWF0aW9uICpJY2NDb2xvclNwYWNlRW5naW5lOjpjcmVhdGVDb2xvclRyYW5z Zm9ybWF0aW9uKGNvbnN0IEtvQ29sb3JTcGFjZSAqc3JjQ29sb3JTcGFjZSwKLSAgICAgICAgY29u c3QgS29Db2xvclNwYWNlICpkc3RDb2xvclNwYWNlLAotICAgICAgICBLb0NvbG9yQ29udmVyc2lv blRyYW5zZm9ybWF0aW9uOjpJbnRlbnQgcmVuZGVyaW5nSW50ZW50LAotICAgICAgICBLb0NvbG9y Q29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpDb252ZXJzaW9uRmxhZ3MgY29udmVyc2lvbkZsYWdz KSBjb25zdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLb0NvbG9yU3BhY2UgKmRzdENv bG9yU3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtvQ29sb3JDb252ZXJzaW9uVHJhbnNm b3JtYXRpb246OkludGVudCByZW5kZXJpbmdJbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEtvQ29sb3JDb252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkNvbnZlcnNpb25GbGFncyBjb252ZXJz aW9uRmxhZ3MpIGNvbnN0CiB7CiAgICAgUV9BU1NFUlQoc3JjQ29sb3JTcGFjZSk7CiAgICAgUV9B U1NFUlQoZHN0Q29sb3JTcGFjZSk7CiAKICAgICByZXR1cm4gbmV3IEtvTGNtc0NvbG9yQ29udmVy c2lvblRyYW5zZm9ybWF0aW9uKAotICAgICAgICAgICAgICAgc3JjQ29sb3JTcGFjZSwgY29tcHV0 ZUNvbG9yU3BhY2VUeXBlKHNyY0NvbG9yU3BhY2UpLAotICAgICAgICAgICAgICAgZHluYW1pY19j YXN0PGNvbnN0IEljY0NvbG9yUHJvZmlsZSAqPihzcmNDb2xvclNwYWNlLT5wcm9maWxlKCkpLT5h c0xjbXMoKSwgZHN0Q29sb3JTcGFjZSwgY29tcHV0ZUNvbG9yU3BhY2VUeXBlKGRzdENvbG9yU3Bh Y2UpLAotICAgICAgICAgICAgICAgZHluYW1pY19jYXN0PGNvbnN0IEljY0NvbG9yUHJvZmlsZSAq Pihkc3RDb2xvclNwYWNlLT5wcm9maWxlKCkpLT5hc0xjbXMoKSwgcmVuZGVyaW5nSW50ZW50LCBj b252ZXJzaW9uRmxhZ3MpOworICAgICAgICAgICAgICAgIHNyY0NvbG9yU3BhY2UsIGNvbXB1dGVD b2xvclNwYWNlVHlwZShzcmNDb2xvclNwYWNlKSwKKyAgICAgICAgICAgICAgICBkeW5hbWljX2Nh c3Q8Y29uc3QgSWNjQ29sb3JQcm9maWxlICo+KHNyY0NvbG9yU3BhY2UtPnByb2ZpbGUoKSktPmFz TGNtcygpLCBkc3RDb2xvclNwYWNlLCBjb21wdXRlQ29sb3JTcGFjZVR5cGUoZHN0Q29sb3JTcGFj ZSksCisgICAgICAgICAgICAgICAgZHluYW1pY19jYXN0PGNvbnN0IEljY0NvbG9yUHJvZmlsZSAq Pihkc3RDb2xvclNwYWNlLT5wcm9maWxlKCkpLT5hc0xjbXMoKSwgcmVuZGVyaW5nSW50ZW50LCBj b252ZXJzaW9uRmxhZ3MpOwogCiB9CitLb0NvbG9yUHJvb2ZpbmdDb252ZXJzaW9uVHJhbnNmb3Jt YXRpb24gKkljY0NvbG9yU3BhY2VFbmdpbmU6OmNyZWF0ZUNvbG9yUHJvb2ZpbmdUcmFuc2Zvcm1h dGlvbihjb25zdCBLb0NvbG9yU3BhY2UgKnNyY0NvbG9yU3BhY2UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLb0NvbG9yU3BhY2UgKmRzdENvbG9yU3BhY2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLb0NvbG9yU3Bh Y2UgKnByb29maW5nU3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBLb0NvbG9yQ29udmVyc2lvblRyYW5zZm9ybWF0aW9uOjpJbnRlbnQgcmVuZGVyaW5nSW50ZW50 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS29Db2xvckNvbnZlcnNp b25UcmFuc2Zvcm1hdGlvbjo6SW50ZW50IHByb29maW5nSW50ZW50LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6 Q29udmVyc2lvbkZsYWdzIGNvbnZlcnNpb25GbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHF1aW50OCAqZ2FtdXRXYXJuaW5nLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGFkYXB0YXRpb25TdGF0ZSkgY29uc3QKK3sKKyAg ICBRX0FTU0VSVChzcmNDb2xvclNwYWNlKTsKKyAgICBRX0FTU0VSVChkc3RDb2xvclNwYWNlKTsK KworICAgIHJldHVybiBuZXcgS29MY21zQ29sb3JQcm9vZmluZ0NvbnZlcnNpb25UcmFuc2Zvcm1h dGlvbigKKyAgICAgICAgICAgICAgICBzcmNDb2xvclNwYWNlLCBjb21wdXRlQ29sb3JTcGFjZVR5 cGUoc3JjQ29sb3JTcGFjZSksCisgICAgICAgICAgICAgICAgZHluYW1pY19jYXN0PGNvbnN0IElj Y0NvbG9yUHJvZmlsZSAqPihzcmNDb2xvclNwYWNlLT5wcm9maWxlKCkpLT5hc0xjbXMoKSwgZHN0 Q29sb3JTcGFjZSwgY29tcHV0ZUNvbG9yU3BhY2VUeXBlKGRzdENvbG9yU3BhY2UpLAorICAgICAg ICAgICAgICAgIGR5bmFtaWNfY2FzdDxjb25zdCBJY2NDb2xvclByb2ZpbGUgKj4oZHN0Q29sb3JT cGFjZS0+cHJvZmlsZSgpKS0+YXNMY21zKCksIHByb29maW5nU3BhY2UsIHJlbmRlcmluZ0ludGVu dCwgcHJvb2ZpbmdJbnRlbnQsIGNvbnZlcnNpb25GbGFncywgZ2FtdXRXYXJuaW5nLAorICAgICAg ICAgICAgICAgIGFkYXB0YXRpb25TdGF0ZQorICAgICAgICAgICAgICAgICk7Cit9CisKIHF1aW50 MzIgSWNjQ29sb3JTcGFjZUVuZ2luZTo6Y29tcHV0ZUNvbG9yU3BhY2VUeXBlKGNvbnN0IEtvQ29s b3JTcGFjZSAqY3MpIGNvbnN0CiB7CiAgICAgUV9BU1NFUlQoY3MpOwpkaWZmIC0tZ2l0IGEvcGx1 Z2lucy9jb2xvci9sY21zMmVuZ2luZS9JY2NDb2xvclNwYWNlRW5naW5lLmggYi9wbHVnaW5zL2Nv bG9yL2xjbXMyZW5naW5lL0ljY0NvbG9yU3BhY2VFbmdpbmUuaAppbmRleCA0ZjhiZTUzLi5jYzE2 NTRjIDEwMDY0NAotLS0gYS9wbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL0ljY0NvbG9yU3BhY2VF bmdpbmUuaAorKysgYi9wbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL0ljY0NvbG9yU3BhY2VFbmdp bmUuaApAQCAtMzMsNiArMzMsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgY29uc3QgS29Db2xv clNwYWNlICpkc3RDb2xvclNwYWNlLAogICAgICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFu c2Zvcm1hdGlvbjo6SW50ZW50IHJlbmRlcmluZ0ludGVudCwKICAgICAgICAgICAgIEtvQ29sb3JD b252ZXJzaW9uVHJhbnNmb3JtYXRpb246OkNvbnZlcnNpb25GbGFncyBjb252ZXJzaW9uRmxhZ3Mp IGNvbnN0OworICAgIHZpcnR1YWwgS29Db2xvclByb29maW5nQ29udmVyc2lvblRyYW5zZm9ybWF0 aW9uICpjcmVhdGVDb2xvclByb29maW5nVHJhbnNmb3JtYXRpb24oY29uc3QgS29Db2xvclNwYWNl ICpzcmNDb2xvclNwYWNlLAorICAgICAgICAgICAgY29uc3QgS29Db2xvclNwYWNlICpkc3RDb2xv clNwYWNlLAorICAgICAgICAgICAgY29uc3QgS29Db2xvclNwYWNlICpwcm9vZmluZ1NwYWNlLAor ICAgICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6SW50ZW50IHJlbmRl cmluZ0ludGVudCwgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6SW50ZW50IHByb29m aW5nSW50ZW50LAorICAgICAgICAgICAgS29Db2xvckNvbnZlcnNpb25UcmFuc2Zvcm1hdGlvbjo6 Q29udmVyc2lvbkZsYWdzIGNvbnZlcnNpb25GbGFncywgcXVpbnQ4ICpnYW11dFdhcm5pbmcsIGRv dWJsZSBhZGFwdGF0aW9uU3RhdGUpIGNvbnN0OwogICAgIHF1aW50MzIgY29tcHV0ZUNvbG9yU3Bh Y2VUeXBlKGNvbnN0IEtvQ29sb3JTcGFjZSAqY3MpIGNvbnN0OwogcHJpdmF0ZToKICAgICBzdHJ1 Y3QgUHJpdmF0ZTsKZGlmZiAtLWdpdCBhL3BsdWdpbnMvY29sb3IvbGNtczJlbmdpbmUvdGVzdHMv VGVzdEtvTGNtc0NvbG9yUHJvZmlsZS5jcHAgYi9wbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL3Rl c3RzL1Rlc3RLb0xjbXNDb2xvclByb2ZpbGUuY3BwCmluZGV4IDg2YmMxMTEuLjZiMTYxNzggMTAw NjQ0Ci0tLSBhL3BsdWdpbnMvY29sb3IvbGNtczJlbmdpbmUvdGVzdHMvVGVzdEtvTGNtc0NvbG9y UHJvZmlsZS5jcHAKKysrIGIvcGx1Z2lucy9jb2xvci9sY21zMmVuZ2luZS90ZXN0cy9UZXN0S29M Y21zQ29sb3JQcm9maWxlLmNwcApAQCAtMTcwLDQgKzE3MCw0NSBAQCB2b2lkIFRlc3RLb0xjbXND b2xvclByb2ZpbGU6OnRlc3RDb252ZXJzaW9uKCkKIAogfQogCit2b2lkIFRlc3RLb0xjbXNDb2xv clByb2ZpbGU6OnRlc3RQcm9vZmluZ0NvbnZlcnNpb24oKQoreworICAgIGNvbnN0IEtvQ29sb3JT cGFjZSAqc1JnYiA9IEtvQ29sb3JTcGFjZVJlZ2lzdHJ5OjppbnN0YW5jZSgpLT5yZ2IxNigic1JH QiBidWlsdC1pbiIpOworICAgIFFfQVNTRVJUKHNSZ2IpOworICAgIGNvbnN0IEtvQ29sb3JTcGFj ZSAqbGFiID0gS29Db2xvclNwYWNlUmVnaXN0cnk6Omluc3RhbmNlKCktPmxhYjE2KCk7Ly90aGVy ZSdzIG9ubHkgb25lIGxhYiBwcm9maWxlLCByZXBsYWNlIHdpdGggaXQncyBuYW1lLgorICAgIFFf QVNTRVJUKGxhYik7CisKKyAgICBxdWludDE2IHNyY1s0XTsvL3RoZSBmb2xsb3dpbmcgb3VnaHQg dG8gZ2l2ZSB1cyBhIHB1cnBsZSBvbmx5IHBvc3NpYmxlIGluIGxhYi4gSSBjYW4ndCBzZWVtIHRv IHByb29mIHRoaXMgYXdheSwgc29tZWhvdy4uLgorICAgIHNyY1swXSA9IDMyODk2OworICAgIHNy Y1sxXSA9IDY1NTM1OworICAgIHNyY1syXSA9IDA7CisgICAgc3JjWzNdID0gNjU1MzU7CisKKyAg ICBxdWludDE2IGRzdFs0XTsKKyAgICBtZW1zZXQoJmRzdCwgMCwgOCk7CisKKyAgICBjbXNIUFJP RklMRSBzUmdiUHJvZmlsZSA9IGNtc0NyZWF0ZV9zUkdCUHJvZmlsZSgpOworICAgIGNtc0hQUk9G SUxFIExhYlByb2ZpbGUgPSBjbXNDcmVhdGVMYWI0UHJvZmlsZShOVUxMKTsKKworICAgIHF1aW50 MTYgYWxhcm1bNF07Ly9jeWFuIQorICAgIGFsYXJtWzBdID0gNjU1MzU7CisgICAgYWxhcm1bMV0g PSAwOworICAgIGFsYXJtWzJdID0gMDsKKyAgICBhbGFybVszXSA9IDY1NTM1OworICAgIGNtc1Nl dEFsYXJtQ29kZXMoYWxhcm0pOworCisgICAgY21zSFRSQU5TRk9STSB0ZiA9IGNtc0NyZWF0ZVBy b29maW5nVHJhbnNmb3JtKExhYlByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUWVBFX0xhYl8xNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhYlByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBUWVBFX0xhYl8xNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNSZ2JQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSU5URU5UX0FCU09MVVRFX0NPTE9SSU1FVFJJQywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElOVEVOVF9BQlNPTFVURV9DT0xPUklNRVRSSUMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXNGTEFHU19TT0ZUUFJP T0ZJTkd8Y21zRkxBR1NfR0FNVVRDSEVDSyk7CisKKyAgICBjbXNEb1RyYW5zZm9ybSh0ZiwgKHF1 aW50OCAqKSZzcmMsIChxdWludDggKikmZHN0LCAxKTsKKworICAgIHFEZWJ1ZygpPDxkc3RbMF08 PCIsIjw8ZHN0WzFdPDwiLCI8PGRzdFsyXTw8IiwiPDxkc3RbM107CisgICAgUV9BU1NFUlQoZHN0 WzBdICE9IGFsYXJtWzBdKTsKKworfQogUVRFU1RfTUFJTihUZXN0S29MY21zQ29sb3JQcm9maWxl KQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9jb2xvci9sY21zMmVuZ2luZS90ZXN0cy9UZXN0S29MY21z Q29sb3JQcm9maWxlLmggYi9wbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL3Rlc3RzL1Rlc3RLb0xj bXNDb2xvclByb2ZpbGUuaAppbmRleCA0Zjk4YmNkLi42ZDIzYzNkIDEwMDY0NAotLS0gYS9wbHVn aW5zL2NvbG9yL2xjbXMyZW5naW5lL3Rlc3RzL1Rlc3RLb0xjbXNDb2xvclByb2ZpbGUuaAorKysg Yi9wbHVnaW5zL2NvbG9yL2xjbXMyZW5naW5lL3Rlc3RzL1Rlc3RLb0xjbXNDb2xvclByb2ZpbGUu aApAQCAtMTEsNiArMTEsOCBAQCBjbGFzcyBUZXN0S29MY21zQ29sb3JQcm9maWxlIDogcHVibGlj IFFPYmplY3QKICAgICB2b2lkIHRlc3RQcm9maWxlQ3JlYXRpb25Gcm9tQ2hyb21hdGljaXRpZXMo KTsKIHByaXZhdGUgUV9TTE9UUzoKICAgICB2b2lkIHRlc3RDb252ZXJzaW9uKCk7CisgICAgdm9p ZCB0ZXN0UHJvb2ZpbmdDb252ZXJzaW9uKCk7CisKIH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv cGx1Z2lucy9kb2NrZXJzL2x1dC9sdXRkb2NrZXJfZG9jay5jcHAgYi9wbHVnaW5zL2RvY2tlcnMv bHV0L2x1dGRvY2tlcl9kb2NrLmNwcAppbmRleCAxMTE0ZjE1Li41NGJjMDRkIDEwMDY0NAotLS0g YS9wbHVnaW5zL2RvY2tlcnMvbHV0L2x1dGRvY2tlcl9kb2NrLmNwcAorKysgYi9wbHVnaW5zL2Rv Y2tlcnMvbHV0L2x1dGRvY2tlcl9kb2NrLmNwcApAQCAtMTY0LDYgKzE2NCw3IEBAIEx1dERvY2tl ckRvY2s6Okx1dERvY2tlckRvY2soKQogICAgIGNvbm5lY3QobV9jbWJJbnB1dENvbG9yU3BhY2Us IFNJR05BTChjdXJyZW50SW5kZXhDaGFuZ2VkKGludCkpLCBTTE9UKHVwZGF0ZURpc3BsYXlTZXR0 aW5ncygpKSk7CiAgICAgY29ubmVjdChtX2NtYkRpc3BsYXlEZXZpY2UsIFNJR05BTChjdXJyZW50 SW5kZXhDaGFuZ2VkKGludCkpLCBTTE9UKHVwZGF0ZURpc3BsYXlTZXR0aW5ncygpKSk7CiAgICAg Y29ubmVjdChtX2NtYlZpZXcsIFNJR05BTChjdXJyZW50SW5kZXhDaGFuZ2VkKGludCkpLCBTTE9U KHVwZGF0ZURpc3BsYXlTZXR0aW5ncygpKSk7CisgICAgY29ubmVjdChtX2NtYkxvb2ssIFNJR05B TChjdXJyZW50SW5kZXhDaGFuZ2VkKGludCkpLCBTTE9UKHVwZGF0ZURpc3BsYXlTZXR0aW5ncygp KSk7CiAgICAgY29ubmVjdChtX2NtYkNvbXBvbmVudHMsIFNJR05BTChjdXJyZW50SW5kZXhDaGFu Z2VkKGludCkpLCBTTE9UKHVwZGF0ZURpc3BsYXlTZXR0aW5ncygpKSk7CiAKICAgICBtX2RyYWdn aW5nU2xpZGVyID0gZmFsc2U7CkBAIC0zNTcsNiArMzU4LDggQEAgdm9pZCBMdXREb2NrZXJEb2Nr OjplbmFibGVDb250cm9scygpCiAgICAgbV9jbWJEaXNwbGF5RGV2aWNlLT5zZXRFbmFibGVkKG9j aW9FbmFibGVkICYmIGV4dGVybmFsQ29sb3JNYW5hZ2VtZW50RW5hYmxlZCk7CiAgICAgbV9sYmxW aWV3LT5zZXRFbmFibGVkKG9jaW9FbmFibGVkICYmIGV4dGVybmFsQ29sb3JNYW5hZ2VtZW50RW5h YmxlZCk7CiAgICAgbV9jbWJWaWV3LT5zZXRFbmFibGVkKG9jaW9FbmFibGVkICYmIGV4dGVybmFs Q29sb3JNYW5hZ2VtZW50RW5hYmxlZCk7CisgICAgbV9sYmxMb29rLT5zZXRFbmFibGVkKG9jaW9F bmFibGVkICYmIGV4dGVybmFsQ29sb3JNYW5hZ2VtZW50RW5hYmxlZCk7CisgICAgbV9jbWJMb29r LT5zZXRFbmFibGVkKG9jaW9FbmFibGVkICYmIGV4dGVybmFsQ29sb3JNYW5hZ2VtZW50RW5hYmxl ZCk7CiAKICAgICBib29sIGVuYWJsZUNvbmZpZ1BhdGggPSBtX2NvbG9yTWFuYWdlbWVudC0+Y3Vy cmVudEluZGV4KCkgPT0gKGludCkgS2lzQ29uZmlnOjpPQ0lPX0NPTkZJRzsKIApAQCAtMzc5LDYg KzM4Miw3IEBAIHZvaWQgTHV0RG9ja2VyRG9jazo6dXBkYXRlRGlzcGxheVNldHRpbmdzKCkKICAg ICAgICAgbV9kaXNwbGF5RmlsdGVyLT5pbnB1dENvbG9yU3BhY2VOYW1lID0gbV9vY2lvQ29uZmln LT5nZXRDb2xvclNwYWNlTmFtZUJ5SW5kZXgobV9jbWJJbnB1dENvbG9yU3BhY2UtPmN1cnJlbnRJ bmRleCgpKTsKICAgICAgICAgbV9kaXNwbGF5RmlsdGVyLT5kaXNwbGF5RGV2aWNlID0gbV9vY2lv Q29uZmlnLT5nZXREaXNwbGF5KG1fY21iRGlzcGxheURldmljZS0+Y3VycmVudEluZGV4KCkpOwog ICAgICAgICBtX2Rpc3BsYXlGaWx0ZXItPnZpZXcgPSBtX29jaW9Db25maWctPmdldFZpZXcobV9k aXNwbGF5RmlsdGVyLT5kaXNwbGF5RGV2aWNlLCBtX2NtYlZpZXctPmN1cnJlbnRJbmRleCgpKTsK KyAgICAgICAgbV9kaXNwbGF5RmlsdGVyLT5sb29rID0gbV9vY2lvQ29uZmlnLT5nZXRMb29rTmFt ZUJ5SW5kZXgobV9jbWJMb29rLT5jdXJyZW50SW5kZXgoKSk7CiAgICAgICAgIG1fZGlzcGxheUZp bHRlci0+Z2FtbWEgPSBtX2dhbW1hRG91YmxlV2lkZ2V0LT52YWx1ZSgpOwogICAgICAgICBtX2Rp c3BsYXlGaWx0ZXItPmV4cG9zdXJlID0gbV9leHBvc3VyZURvdWJsZVdpZGdldC0+dmFsdWUoKTsK ICAgICAgICAgbV9kaXNwbGF5RmlsdGVyLT5zd2l6emxlID0gKE9DSU9fQ0hBTk5FTF9TV0laWkxF KW1fY21iQ29tcG9uZW50cy0+Y3VycmVudEluZGV4KCk7CkBAIC01MzEsNiArNTM1LDE2IEBAIHZv aWQgTHV0RG9ja2VyRG9jazo6cmVmaWxsQ29udHJvbHMoKQogICAgIH0KIAogICAgIHJlZmlsbFZp ZXdDb21ib2JveCgpOworCisgICAgeworICAgICAgICBLaXNTaWduYWxzQmxvY2tlciBMb29rQ29t Ym9Mb2NrZXIobV9jbWJMb29rKTsKKyAgICAgICAgbV9jbWJMb29rLT5jbGVhcigpOworICAgICAg ICBpbnQgbnVtTG9va3MgPSBtX29jaW9Db25maWctPmdldE51bUxvb2tzKCk7CisgICAgICAgIGZv ciAoaW50IGsgPSAwOyBrIDwgbnVtTG9va3M7IGsrKykgeworICAgICAgICAgICBtX2NtYkxvb2st PmFkZFNxdWVlemVkSXRlbShRU3RyaW5nOjpmcm9tVXRmOChtX29jaW9Db25maWctPmdldExvb2tO YW1lQnlJbmRleChrKSkpOworICAgICAgICB9CisgICAgICAgIG1fY21iTG9vay0+YWRkU3F1ZWV6 ZWRJdGVtKGkxOG5jKCJJdGVtIHRvIGluZGljYXRlIG5vIGxvb2sgdHJhbnNmb3JtIGJlaW5nIHNl bGVjdGVkIiwiTm9uZSIpKTsKKyAgICB9CiAgICAgdXBkYXRlRGlzcGxheVNldHRpbmdzKCk7CiB9 CiAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvZG9ja2Vycy9sdXQvb2Npb19kaXNwbGF5X2ZpbHRlci5j cHAgYi9wbHVnaW5zL2RvY2tlcnMvbHV0L29jaW9fZGlzcGxheV9maWx0ZXIuY3BwCmluZGV4IDcw ZTRjNTAuLjZmOGJiZTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvZG9ja2Vycy9sdXQvb2Npb19kaXNw bGF5X2ZpbHRlci5jcHAKKysrIGIvcGx1Z2lucy9kb2NrZXJzL2x1dC9vY2lvX2Rpc3BsYXlfZmls dGVyLmNwcApAQCAtMzksNiArMzksNyBAQCBPY2lvRGlzcGxheUZpbHRlcjo6T2Npb0Rpc3BsYXlG aWx0ZXIoS2lzRXhwb3N1cmVHYW1tYUNvcnJlY3Rpb25JbnRlcmZhY2UgKmludGVyZgogICAgICwg aW5wdXRDb2xvclNwYWNlTmFtZSgwKQogICAgICwgZGlzcGxheURldmljZSgwKQogICAgICwgdmll dygwKQorICAgICwgbG9vaygwKQogICAgICwgc3dpenpsZShSR0JBKQogICAgICwgbV9pbnRlcmZh Y2UoaW50ZXJmYWNlKQogICAgICwgbV9sdXQzZFRleElEKDApCkBAIC0xMjQsMTIgKzEyNSw0MCBA QCB2b2lkIE9jaW9EaXNwbGF5RmlsdGVyOjp1cGRhdGVQcm9jZXNzb3IoKQogICAgIGlmICghaW5w dXRDb2xvclNwYWNlTmFtZSkgewogICAgICAgICBpbnB1dENvbG9yU3BhY2VOYW1lID0gY29uZmln LT5nZXRDb2xvclNwYWNlTmFtZUJ5SW5kZXgoMCk7CiAgICAgfQorICAgIGlmICghbG9vaykgewor CWxvb2sgPSBjb25maWctPmdldExvb2tOYW1lQnlJbmRleCgwKTsKKyAgICB9CisKKyAgICBpZiAo IWRpc3BsYXlEZXZpY2UgfHwgIXZpZXcgfHwgIWlucHV0Q29sb3JTcGFjZU5hbWUpIHsKKyAgICAg ICAgcmV0dXJuOworICAgIH0KIAogICAgIE9DSU86OkRpc3BsYXlUcmFuc2Zvcm1SY1B0ciB0cmFu c2Zvcm0gPSBPQ0lPOjpEaXNwbGF5VHJhbnNmb3JtOjpDcmVhdGUoKTsKICAgICB0cmFuc2Zvcm0t PnNldElucHV0Q29sb3JTcGFjZU5hbWUoaW5wdXRDb2xvclNwYWNlTmFtZSk7CiAgICAgdHJhbnNm b3JtLT5zZXREaXNwbGF5KGRpc3BsYXlEZXZpY2UpOwogICAgIHRyYW5zZm9ybS0+c2V0Vmlldyh2 aWV3KTsKIAorICAgIC8qKgorICAgICAqIExvb2sgc3VwcG9ydDoKKyAgICAgKiBBcyB0aGUgT0NJ TyBkb2NzIHdpbGwgdGVsbCB5b3UsIGxvb2tzIGFyZSBhIGFlc3RoZXRpYyB0cmFuc2Zvcm0gdGhh dCBpcworICAgICAqIGFkZGVkIG9udG8gdGhlIG1peC4KKyAgICAgKiBBIHZpZXcrZGlzcGxheSBj YW4gaGF2ZSBpdCdzIG93biBhc3NpZ25lZCBMb29rLCBvciBsaXN0IG9mIGxvb2tzLCBhbmQgdGhl c2UKKyAgICAgKiBjYW4gYmUgb3ZlcnJpZGVuIG9wdGlvbmFsbHkuCisgICAgICogV2hhdCB0aGUg T0NJTyBkb2NzIHdvbid0IHRlbGwgeW91IGlzIHRoYXQgYSBkaXNwbGF5IHRyYW5zZm9ybSB3b24n dCB1c2UgdGhlCisgICAgICogbG9va3MgYXR0YWNoZWQgdG8gaXQgdW5sZXNzICJza2lwQ29sb3JT cGFjZUNvbnZlcnNpb25zIiBpcyBmYWxzZS4uLgorICAgICAqIEkgaGF2ZSBubyBpZGVhIHdoYXQg InNraXBDb2xvclNwYWNlQ29udmVyc2lvbnMiIGlzIGJleW9uZCB3aGF0IGl0IHNheXMgb24gdGhl CisgICAgICogdGluLiBJdCBpcyBub3QgbWVudGlvbmVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu eXdoZXJlLiBPciBvbiB0aGUgd2Vic2l0ZS4KKyAgICAgKiBPciBob3cgdG8gc2V0IGl0LiBPciB1 bnNldCBpdC4gV2h5IGl0IGlzIGFwcGFyYW50bHkgc2V0IHRydWUgdG8gYmVnaW4gd2l0aC4KKyAg ICAgKiBPbmx5IHRoYXQsIGFwcGFyYW50bHksIHRoaXMgd2FzIGRvbmUgd2l0aCBub24tY29sb3Ig ZGF0YSBpbiBtaW5kLi4uCisgICAgICoKKyAgICAgKiBVbnRpbCB0aGVyZSdzIGNsZWFyIGRvY3Vt ZW50YXRpb24gb24gaG93IHRvIHVzZSB0aGlzIGZlYXR1cmUsIEkgYW0gYWZyYWlkIHRoZQorICAg ICAqIG92ZXJyaWRlIGlzIGFsbCB3ZSBjYW4gb2ZmZXIuCisgICAgICovCisgICAgaWYgKGNvbmZp Zy0+Z2V0TG9vayhsb29rKSkgeworICAgICAgIHRyYW5zZm9ybS0+c2V0TG9va3NPdmVycmlkZShs b29rKTsKKyAgICAgICB0cmFuc2Zvcm0tPnNldExvb2tzT3ZlcnJpZGVFbmFibGVkKHRydWUpOwor ICAgIH0KKwogICAgIE9DSU86Okdyb3VwVHJhbnNmb3JtUmNQdHIgYXBwcm94aW1hdGVUcmFuc2Zv cm0gPSBPQ0lPOjpHcm91cFRyYW5zZm9ybTo6Q3JlYXRlKCk7CiAKICAgICAvLyBmc3RvcCBleHBv c3VyZSBjb250cm9sIC0tIG5vdCBzdXJlIGhvdyB0aGF0IHRyYW5zbGF0ZXMgdG8gb3VyIGV4cG9z dXJlCmRpZmYgLS1naXQgYS9wbHVnaW5zL2RvY2tlcnMvbHV0L29jaW9fZGlzcGxheV9maWx0ZXIu aCBiL3BsdWdpbnMvZG9ja2Vycy9sdXQvb2Npb19kaXNwbGF5X2ZpbHRlci5oCmluZGV4IDI2MjIx NTYuLjMwNGJjYzAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvZG9ja2Vycy9sdXQvb2Npb19kaXNwbGF5 X2ZpbHRlci5oCisrKyBiL3BsdWdpbnMvZG9ja2Vycy9sdXQvb2Npb19kaXNwbGF5X2ZpbHRlci5o CkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBjaGFyICppbnB1dENvbG9yU3Bh Y2VOYW1lOwogICAgIGNvbnN0IGNoYXIgKmRpc3BsYXlEZXZpY2U7CiAgICAgY29uc3QgY2hhciAq dmlldzsKKyAgICBjb25zdCBjaGFyICpsb29rOwogICAgIE9DSU9fQ0hBTk5FTF9TV0laWkxFIHN3 aXp6bGU7CiAgICAgZmxvYXQgZXhwb3N1cmU7CiAgICAgZmxvYXQgZ2FtbWE7CmRpZmYgLS1naXQg YS9wbHVnaW5zL2RvY2tlcnMvbHV0L3dkZ2x1dC51aSBiL3BsdWdpbnMvZG9ja2Vycy9sdXQvd2Rn bHV0LnVpCmluZGV4IDg0ODBkNWUuLmQ5MGRjZmIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvZG9ja2Vy cy9sdXQvd2RnbHV0LnVpCisrKyBiL3BsdWdpbnMvZG9ja2Vycy9sdXQvd2RnbHV0LnVpCkBAIC0y LDYgKzIsMTQgQEAKIDx1aSB2ZXJzaW9uPSI0LjAiPgogIDxjbGFzcz5XZGdMdXQ8L2NsYXNzPgog IDx3aWRnZXQgY2xhc3M9IlFXaWRnZXQiIG5hbWU9IldkZ0x1dCI+CisgIDxwcm9wZXJ0eSBuYW1l PSJnZW9tZXRyeSI+CisgICA8cmVjdD4KKyAgICA8eD4wPC94PgorICAgIDx5PjA8L3k+CisgICAg PHdpZHRoPjM1Nzwvd2lkdGg+CisgICAgPGhlaWdodD4yODY8L2hlaWdodD4KKyAgIDwvcmVjdD4K KyAgPC9wcm9wZXJ0eT4KICAgPGxheW91dCBjbGFzcz0iUVZCb3hMYXlvdXQiIG5hbWU9InZlcnRp Y2FsTGF5b3V0XzIiIHN0cmV0Y2g9IjAsMSI+CiAgICA8cHJvcGVydHkgbmFtZT0ic3BhY2luZyI+ CiAgICAgPG51bWJlcj4wPC9udW1iZXI+CkBAIC04OCw3ICs5Niw3IEBACiAgICAgICAgICAgPC9w cm9wZXJ0eT4KICAgICAgICAgIDwvd2lkZ2V0PgogICAgICAgICA8L2l0ZW0+Ci0gICAgICAgIDxp dGVtIHJvdz0iNiIgY29sdW1uPSIwIj4KKyAgICAgICAgPGl0ZW0gcm93PSI3IiBjb2x1bW49IjAi PgogICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJsYWJlbF81Ij4KICAgICAg ICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CiAgICAgICAgICAgIDxzdHJpbmc+Q29tcG9uZW50 czo8L3N0cmluZz4KQEAgLTEyMSw3ICsxMjksNyBAQAogICAgICAgICAgIDwvcHJvcGVydHk+CiAg ICAgICAgICA8L3dpZGdldD4KICAgICAgICAgPC9pdGVtPgotICAgICAgICA8aXRlbSByb3c9Ijci IGNvbHVtbj0iMCI+CisgICAgICAgIDxpdGVtIHJvdz0iOCIgY29sdW1uPSIwIj4KICAgICAgICAg IDx3aWRnZXQgY2xhc3M9IlFMYWJlbCIgbmFtZT0ibGFiZWxfNyI+CiAgICAgICAgICAgPHByb3Bl cnR5IG5hbWU9InRleHQiPgogICAgICAgICAgICA8c3RyaW5nPkV4cG9zdXJlOjwvc3RyaW5nPgpA QCAtMTQ3LDggKzE1NSw4IEBACiAgICAgICAgICAgPC9wcm9wZXJ0eT4KICAgICAgICAgIDwvd2lk Z2V0PgogICAgICAgICA8L2l0ZW0+Ci0gICAgICAgIDxpdGVtIHJvdz0iNyIgY29sdW1uPSIxIj4K LSAgICAgICAgIDx3aWRnZXQgY2xhc3M9Iktpc0RvdWJsZVdpZGdldCIgbmFtZT0ibV9leHBvc3Vy ZURvdWJsZVdpZGdldCI+CisgICAgICAgIDxpdGVtIHJvdz0iOCIgY29sdW1uPSIxIj4KKyAgICAg ICAgIDx3aWRnZXQgY2xhc3M9Iktpc0RvdWJsZVdpZGdldCIgbmFtZT0ibV9leHBvc3VyZURvdWJs ZVdpZGdldCIgbmF0aXZlPSJ0cnVlIj4KICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ic2l6ZVBv bGljeSI+CiAgICAgICAgICAgIDxzaXplcG9saWN5IGhzaXpldHlwZT0iRXhwYW5kaW5nIiB2c2l6 ZXR5cGU9IlByZWZlcnJlZCI+CiAgICAgICAgICAgICA8aG9yc3RyZXRjaD4wPC9ob3JzdHJldGNo PgpAQCAtMjMyLDcgKzI0MCw3IEBACiAgICAgICAgICAgPC9pdGVtPgogICAgICAgICAgPC9sYXlv dXQ+CiAgICAgICAgIDwvaXRlbT4KLSAgICAgICAgPGl0ZW0gcm93PSI2IiBjb2x1bW49IjEiPgor ICAgICAgICA8aXRlbSByb3c9IjciIGNvbHVtbj0iMSI+CiAgICAgICAgICA8d2lkZ2V0IGNsYXNz PSJTcXVlZXplZENvbWJvQm94IiBuYW1lPSJtX2NtYkNvbXBvbmVudHMiPgogICAgICAgICAgIDxw cm9wZXJ0eSBuYW1lPSJzaXplUG9saWN5Ij4KICAgICAgICAgICAgPHNpemVwb2xpY3kgaHNpemV0 eXBlPSJFeHBhbmRpbmciIHZzaXpldHlwZT0iRml4ZWQiPgpAQCAtMjQyLDggKzI1MCw4IEBACiAg ICAgICAgICAgPC9wcm9wZXJ0eT4KICAgICAgICAgIDwvd2lkZ2V0PgogICAgICAgICA8L2l0ZW0+ Ci0gICAgICAgIDxpdGVtIHJvdz0iOCIgY29sdW1uPSIxIj4KLSAgICAgICAgIDx3aWRnZXQgY2xh c3M9Iktpc0RvdWJsZVdpZGdldCIgbmFtZT0ibV9nYW1tYURvdWJsZVdpZGdldCI+CisgICAgICAg IDxpdGVtIHJvdz0iOSIgY29sdW1uPSIxIj4KKyAgICAgICAgIDx3aWRnZXQgY2xhc3M9Iktpc0Rv dWJsZVdpZGdldCIgbmFtZT0ibV9nYW1tYURvdWJsZVdpZGdldCIgbmF0aXZlPSJ0cnVlIj4KICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0ic2l6ZVBvbGljeSI+CiAgICAgICAgICAgIDxzaXplcG9s aWN5IGhzaXpldHlwZT0iRXhwYW5kaW5nIiB2c2l6ZXR5cGU9IlByZWZlcnJlZCI+CiAgICAgICAg ICAgICA8aG9yc3RyZXRjaD4wPC9ob3JzdHJldGNoPgpAQCAtMjUyLDcgKzI2MCw3IEBACiAgICAg ICAgICAgPC9wcm9wZXJ0eT4KICAgICAgICAgIDwvd2lkZ2V0PgogICAgICAgICA8L2l0ZW0+Ci0g ICAgICAgIDxpdGVtIHJvdz0iOCIgY29sdW1uPSIwIj4KKyAgICAgICAgPGl0ZW0gcm93PSI5IiBj b2x1bW49IjAiPgogICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJsYWJlbF84 Ij4KICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCI+CiAgICAgICAgICAgIDxzdHJpbmc+ R2FtbWE6PC9zdHJpbmc+CkBAIC0zMTAsNiArMzE4LDIzIEBACiAgICAgICAgICAgPC9pdGVtPgog ICAgICAgICAgPC93aWRnZXQ+CiAgICAgICAgIDwvaXRlbT4KKyAgICAgICAgPGl0ZW0gcm93PSI2 IiBjb2x1bW49IjAiPgorICAgICAgICAgPHdpZGdldCBjbGFzcz0iUUxhYmVsIiBuYW1lPSJtX2xi bExvb2siPgorICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0Ij4KKyAgICAgICAgICAgPHN0 cmluZz5Mb29rOjwvc3RyaW5nPgorICAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAgICA8L3dp ZGdldD4KKyAgICAgICAgPC9pdGVtPgorICAgICAgICA8aXRlbSByb3c9IjYiIGNvbHVtbj0iMSI+ CisgICAgICAgICA8d2lkZ2V0IGNsYXNzPSJTcXVlZXplZENvbWJvQm94IiBuYW1lPSJtX2NtYkxv b2siPgorICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaXplUG9saWN5Ij4KKyAgICAgICAgICAg PHNpemVwb2xpY3kgaHNpemV0eXBlPSJFeHBhbmRpbmciIHZzaXpldHlwZT0iRml4ZWQiPgorICAg ICAgICAgICAgPGhvcnN0cmV0Y2g+MDwvaG9yc3RyZXRjaD4KKyAgICAgICAgICAgIDx2ZXJzdHJl dGNoPjA8L3ZlcnN0cmV0Y2g+CisgICAgICAgICAgIDwvc2l6ZXBvbGljeT4KKyAgICAgICAgICA8 L3Byb3BlcnR5PgorICAgICAgICAgPC93aWRnZXQ+CisgICAgICAgIDwvaXRlbT4KICAgICAgICA8 L2xheW91dD4KICAgICAgIDwvaXRlbT4KICAgICAgIDxpdGVtPgpAQCAtMzI4LDYgKzM1MywxMiBA QAogICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcmllbnRhdGlvbiI+CiAgICAgICAgICAgIDxl bnVtPlF0OjpIb3Jpem9udGFsPC9lbnVtPgogICAgICAgICAgIDwvcHJvcGVydHk+CisgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9InNpemVIaW50IiBzdGRzZXQ9IjAiPgorICAgICAgICAgICA8c2l6 ZT4KKyAgICAgICAgICAgIDx3aWR0aD4wPC93aWR0aD4KKyAgICAgICAgICAgIDxoZWlnaHQ+MDwv aGVpZ2h0PgorICAgICAgICAgICA8L3NpemU+CisgICAgICAgICAgPC9wcm9wZXJ0eT4KICAgICAg ICAgIDwvc3BhY2VyPgogICAgICAgICA8L2l0ZW0+CiAgICAgICAgIDxpdGVtPgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpLcml0YSBtYWlsaW5nIGxpc3QK a2ltYWdlc2hvcEBrZGUub3JnCmh0dHBzOi8vbWFpbC5rZGUub3JnL21haWxtYW4vbGlzdGluZm8v a2ltYWdlc2hvcAo=